<?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>CGGoogleMaps</name>
	<version>1.5.6</version>
  <mincmsversion>1.8.1</mincmsversion>
	<help><![CDATA[PGgzPldoYXQgZG9lcyB0aGlzIGRvPC9oMz4KPHA+VGhpcyBpcyBhIHJlcGxhY2VtZW50IChpbiBwcm9ncmVzcykgZm9yIHRzdydzIGdvb2dsZW1hcHMgbW9kdWxlIHRoYXQgYWxsb3dzIHVzZXJzIHRvIGVhc2lseSBjcmVhdGUgZ29vZ2xlIG1hcHMsIHdoaWxzdCBhbGxvd2luZyBhdG9taWMgcGVybWlzc2lvbnMgc28gdGhhdCBvbmx5IGF1dGhvcml6ZWQgdXNlcnMgaGF2ZSBjZXJ0YWluIGFiaWxpdGllcy4gIEl0IGFsc28gYWxsb3dzIGZvciBkeW5hbWljIGdlb2xvY2F0aW5nICh3aXRoIGNhY2hpbmcpIHNvIHRoYXQgeW91IGNhbiBzcGVjaWZ5IGEgbG9jYXRpb24gYnkgYWRkcmVzcyBpbnN0ZWFkIG9mIGJ5IGxhdGl0dWRlIGFuZCBsb25naXR1ZGUuPC9wPgo8cD5UaGlzIG1vZHVsZSBhbGxvd3MgbXVsdGlwbGUgbWFwcyB0byBiZSBkaXNwbGF5ZWQgb24gYSBzaW5nbGUgcGFnZSwgYW5kIG11bHRpcGxlICdtYXJrZXJzJyBvciBwb2ludHMgb24gZWFjaCBtYXAsIHNvIHRoYXQgaXQgY2FuIGJlIHVzZWQgaW4gYSB3YXkgc2ltaWxhciB0byBmcmFwcGVyLjwvcD4KPGgzPkZlYXR1cmVzOjwvaDM+Cjx1bD4KICA8bGk+U3RhdGljIG1hcCBjcmVhdGlvbiB1c2luZyBhIGZ1bGwgYWRtaW4gaW50ZXJmYWNlIGZvciBtYW5hZ2luZyBtYXBzIGFuZCBtYXJrZXJzIHdpdGhpbiBhIG1hcC48L2xpPgogIDxsaT5GbGV4aWJsZSBtYXJrZXIgaWNvbiBtYW5hZ2VtZW50LjwvbGk+CiAgPGxpPlRoZSBhYmlsaXR5IHRvIGR5bmFtaWNhbGx5IGFkZCBtYXJrZXJzIGdpdmVuIGRhdGEgZnJvbSBhbiBvdXRzaWRlIHBvaW50IDxlbT4oc2VlIHtjZ2dtX2FkZF9keW5wb2ludH0pPC9lbT4KICA8bGk+VGhlIGFiaWxpdHkgdG8gZ3JvdXAgbWFya2VycyB0aGF0IGFyZSB3aXRoaW4gYSBsYXQvbG9uZyByYWRpdXMgdG8gYSBzaW5nbGUgbWFya2VyIHdpdGggYSBzcGVjaWFsIGljb24uPC9saT4KICA8bGk+RHluYW1pYyBpY29uIGNvbnRyb2wgZm9yIGVhY2ggbWFya2VyIHBvaW50LjwvbGk+CjwvdWw+CjxoMz5Ib3cgRG8gSSBVc2UgSXQ/PC9oMz4KPHVsPgo8bGk+SW5zdGFsbCB0aGUgbW9kdWxlIHZpYSB0aGUgbm9ybWFsIG1ldGhvZHM8L2xpPgo8bGk+U2V0dXAgeW91ciB1c2VycyBhbmQgZ3JvdXBzIHdpdGggdGhlIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zOgogIDx1bD4KICAgIDxsaT5UaGUgJ01hbmFnZSBNYXBzJyBQZXJtaXNzaW9uIGFsbG93cyBhZG1pbmlzdHJhdG9ycyB0byBhZGQvZWRpdCBhbmQgZGVsZXRlIG1hcHM8L2xpPgogICAgPGxpPlRoZSAnTWFuYWdlIE1hcCBMb2NhdGlvbnMnIHBlcm1pc3Npb24gYWxsb3dzIGFkbWluaXN0cmF0b3JzIHRvIGFkZC9lZGl0L2RlbGV0ZSBwb2ludHMgd2l0aGluIGEgbWFwPC9saT4KICA8L3VsPgo8L2xpPgo8bGk+Q3JlYXRlIGEgbWFwLiAgR2l2ZSB0aGUgbWFwIGEgbmFtZSwgYW5kIGFkanVzdCB0aGUgcGFyYW10ZXJzIG9mIHRoZSBwYXJ0aWN1bGFyIG1hcCB0byBtZWV0IHlvdXIgbGlraW5nPC9wPgo8bGk+TWFyayBvbmUgb2YgeW91ciBtYXBzIGFzIGRlZmF1bHQsIGJ5IGNsaWNraW5nIG9uIHRoZSByZWQgJ1gnIGJlc2lkZSBhIHBhcnRpY3VsYXIgbWFwLiAgVGhpcyBpcyB1c2VmdWwgaWYgeW91IGRvbid0IHNwZWNpZnkgdGhlICdtYXAnIHBhcmFtZXRlciBvbiB0aGUgdGFnLjwvbGk+CjxsaT5DcmVhdGUgb25lIG9yIG1vcmUgcG9pbnRzIHdpdGhpbiB0aGUgbWFwLCBlaXRoZXIgYnkgc3BlY2lmeWluZyBhIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUsIG9yIHdpdGggYW4gYWRkcmVzcy48L2xpPgo8bGk+QWRkIHRoZSB7Q0dHb29nbGVNYXBzfSB0YWcgaW5zaWRlIHRoZSBjb250ZW50IGJsb2NrIG9mIGEgcGFnZSwgb3IgaW5zaWRlIGEgcGFnZSB0ZW1wbGF0ZS4gIFRoZW4geW91J3JlIGZpbmlzaGVkLjwvbGk+CjwvdWw+Cjxici8+CjxoMz5BZGRpbmcgUG9pbnRzIHRvIGEgTWFwIER5bmFtaWNhbGx5PC9oMz4KPHA+WW91IGNhbiB1c2Ugc21hcnR5IHRvIGFkZCBwb2ludHMgdG8gYSBtb2R1bGUgZHluYW1pY2FsbHkuICBZb3UgY2FuIHVzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgdG8gYnVpbGQgYSBmcmFwcHIgbGlrZSBtYXAgd2l0aCBtdWx0aXBsZSBwb2ludHMgdGhhdCBhcmUgY29udHJvbGxlZCBkeW5hbWljYWxseSBmcm9tIGFub3RoZXIgbW9kdWxlIChsaWtlIENvbXBhbnlEaXJlY3Rvcnkgb3IgRnJvbnRFbmRVc2VycykuPC9wPgo8aDQ+VGhlIHtjZ2dtX2FkZF9keW5wb2ludH0gU21hcnR5IFBsdWdpbjwvaDQ+CjxwPlRoaXMgc21hcnR5IHBsdWdpbiA8ZW0+KG9ubHkgYXZhaWxhYmxlIHdoZW4gQ0dHb29nbGVNYXBzIGlzIGluc3RhbGxlZCk8L2VtPiBhbGxvd3MgYWRkaW5nIGEgcG9pbnQgZHluYW1pY2FsbHkgdG8gYSBzcGVjaWZpZWQgbWFwLjwvcD4KPGg1PlBhcmFtZXRlcnM6PGg1PgogIDx1bD4gCjxsaT48c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+IC0gbWFwIDogVGhlIElEIG9mIHRoZSBtYXAgdG8gYWRkIHRoZSBwb2ludCB0bzwvbGk+CjxsaT48c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+IC0gbmFtZSA6IFRoZSBuYW1lIG9mIHRoZSBwb2ludCB0byBhZGQ8L2xpPgo8bGk+PGVtPm9wdGlvbmFsPC9lbT4gLSBkZXNjcmlwdGlvbiA6IFRoZSBIVE1MIGNvbnRlbnQgdG8gc2hvdyBpbiB0aGUgcG9wdXAgYnViYmxlPC9saT4KPGxpPjxlbT5vcHRpb25hbDwvZW0+IC0gYWRkcmVzcyA6IFRoZSBhZGRyZXNzIG9mIHRoZSBsb2NhdGlvbiB5b3UgYXJlIGFkZGluZy48L2xpPgo8bGk+PGVtPm9wdGlvbmFsPC9lbT4gLSBsYXQgOiBUaGUgbGF0aXR1ZGUgb2YgdGhlIGxvY2F0aW9uIHlvdSBhcmUgYWRkaW5nLjwvbGk+CjxsaT48ZW0+b3B0aW9uYWw8L2VtPiAtIGxvbmcgOiBUaGUgbG9uZ2l0dWRlIG9mIHRoZSBsb2NhdGlvbiB5b3UgYXJlIGFkZGluZy48L2xpPgo8bGk+PGVtPm9wdGlvbmFsPC9lbT4gLSBpY29uIDogVGhlIG5hbWUgb2YgYW4gaWNvbiB0byB1c2UgZm9yIHRoaXMgcG9pbnQuPC9saT4KPGxpPjxlbT5vcHRpb25hbDwvZW0+IC0gdG9vbHRpcCA6IFRpdGxlIHRleHQgdG8gZGlzcGxheSB3aGVuIGhvdmVyaW5nIGEgcG9pbnQ8L2xpPgo8bGk+PGVtPm9wdGlvbmFsPC9lbT4gLSBzaWRlYmFyX2NsYXNzIDogT3B0aW9uYWwgY2xhc3MgdG8gYXNzb2NpYXRlIHdpdGggdGhlIHNpZGViYXIgbGlzdCBpdGVtIGZvciB0aGlzIHBvaW50LjwvbGk+CiAgPC91bD4KPGJyLz4KPHA+PHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiBFaXRoZXIgdGhlIGxhdCBhbmQgbG9uZyBwYXJhbWV0ZXJzIG11c3QgYmUgc3BlY2lmaWVkLCBvciB0aGUgYWRkcmVzcy48L3A+CjxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhpcyBwbHVnaW4gcmV0dXJucyBubyBkaXJlY3Qgb3V0cHV0LCBhbmQgaWYgZXJyb3JzIG9jY3VyLCBpdCB3aWxsIHNpbGVudGx5IGZhaWwuICBTdWNjZXNzIG1lYW5zIHRoYXQgdGhlIHBvaW50IHdpbGwgc2hvdyB1cCBvbiB5b3VyIGdvb2dsZSBtYXAuPC9wPgo8L3VsPjxoMz5EZXBlbmRlbmNpZXM8L2gzPjx1bD48bGk+Q0dFeHRlbnNpb25zID0mZ3Q7IDEuMTkuNDwvbGk+PGxpPkNHU2ltcGxlU21hcnR5ID0mZ3Q7IDEuNDwvbGk+PC91bD48aDM+UGFyYW1ldGVyczwvaDM+PHVsPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGxhbmc9ImVuX1VTIiAtIFBhcmFtZXRlciBpcyB1c2VkIHRvIHNwZWNpZnkgd2hhdCBsYW5ndWFnZSB0byB1c2UgZm9yIGRpc3BsYXkgb24gdGhlIGZyb250ZW5kLiBOb3QgYWxsIG1vZHVsZXMgc3VwcG9ydCBvciBuZWVkIHRoaXMuPC9saT48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBtYXA9IiIgLSBTcGVjaWZ5IHRoZSBJRCBvciBtYXAgbmFtZSB0byB1c2UgZm9yIGxheWluZyBvdXQgdGhlIGdvb2dsZSBtYXAuICBJZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBtYXAgKGlmIGFueSkgaXMgdXNlZC48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IGRlZmVyPSIwIiAtIFNwZWNpZnkgdGhhdCBhbGwgamF2YXNjcmlwdCB0YWdzIHNob3VsZCBoYXZlIHRoZSBkZWZlciBhdHRyaWJ1dGUgc2V0LiAgVGhpcyBtYXkgYmUgdXNlZnVsIGZvciBwcm9ibGVtcyB3aXRoIElFNyBhbmQgSUU4IHdoZXJlIEludGVybmV0IGV4cGxvcmVyIHRyaWVzIHRvIGV4ZWN1dGUgamF2YXNjcmlwdCBvbiBhbiBpbmNvbXBsZXRlbHkgcmVuZGVyZWQgcGFnZS48L2xpPjxsaT48ZW0+KG9wdGlvbmFsKTwvZW0+IG1hcHRlbXBsYXRlPSIiIC0gU3BlY2lmeSB0aGUgbmFtZSBvZiBhbiBleGlzdGluZywgbm9uIGRlZmF1bHQgbWFwIHRlbXBsYXRlIHRvIHVzZSBmb3IgdGhpcyBvdXRwdXQuICBJZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBkZWZhdWx0IG1hcCB0ZW1wbGF0ZSB3aWxsIGJlIHVzZWQ8L2xpPjwvdWw+]]></help>
	<about><![CDATA[PGJyIC8+QXV0aG9yOiBjYWxndXkxMDAwICZsdDtjYWxndXkxMDAwQGhvdG1haWwuY29tJmd0OzxiciAvPjxiciAvPlZlcnNpb246IDEuNS42PGJyIC8+]]></about>
	<description><![CDATA[A simple module for creating google maps]]></description>
	<requires>
	  <requiredname>CGExtensions</requiredname>
	  <requiredversion>1.19.4</requiredversion>
	</requires>
	<requires>
	  <requiredname>CGSimpleSmarty</requiredname>
	  <requiredversion>1.4</requiredversion>
	</requires>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.admin_addmappoint.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBNYXAgTG9jYXRpb25zJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKSk7CiAgICByZXR1cm47CiAgfQppZiggIWlzc2V0KCRwYXJhbXNbJ21hcF9pZCddKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgIHJldHVybjsKICB9CiRtYXBfaWQgPSAoaW50KSRwYXJhbXNbJ21hcF9pZCddOwoKIwojIFNldHVwCiMgCiRxdWVyeSA9ICdTRUxFQ1QgbmFtZSx1cmwgRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnZ29vZ2xlbWFwc19pY29ucyBPUkRFUiBCWSBuYW1lJzsKJHRtcCA9ICRkYi0+R2V0QXJyYXkoJHF1ZXJ5KTsKJGljb25zID0gYXJyYXkoKTsKJGljb25zYnluYW1lID0gYXJyYXkoKTsKaWYoIGlzX2FycmF5KCR0bXApICkKICB7CiAgICBmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCiAgICAgIHsKCSRpY29uc1skdG1wWyRpXVsnbmFtZSddXSA9ICR0bXBbJGldWyduYW1lJ107CgkkaWNvbnNieW5hbWVbJHRtcFskaV1bJ25hbWUnXV0gPSAkdG1wWyRpXVsndXJsJ107CiAgICAgIH0KICB9CgovLyBHZXQgdGhlIGRldGFpbHMgYWJvdXQgdGhlIG1hcAokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnZ29vZ2xlbWFwcwogICAgICAgICAgIFdIRVJFIG1hcF9pZCA9ID8nOwokbWFwaW5mbyA9ICRkYi0+R2V0Um93KCAkcXVlcnksIGFycmF5KCAkbWFwX2lkICkgKTsKaWYoICEkbWFwaW5mbyApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgIHJldHVybjsKICB9CgovLyBkZWZhdWx0IHZhcmlhYmxlcwokbmFtZSA9ICcnOwokaW5mbyA9ICcnOwokYWRkcmVzcyA9ICcnOwokbGF0aXR1ZGUgPSAnJzsKJGxvbmdpdHVkZSA9ICcnOwokc2VsX2ljb24gPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVmYXVsdF9tYXJrZXInKTsKCmlmKCBpc3NldCgkcGFyYW1zWydtYXJrZXJfaWQnXSkgKQogIHsKICAgIC8vIGxvYWQgdGhlIG1hcmtlciAKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzX3BvaW50cwogICAgICAgICAgICAgICBXSEVSRSBtYXBfaWQgPSA/IEFORCBtYXJrZXJfaWQgPSA/JzsKICAgICRyb3cgPSAkZGItPkdldFJvdyggJHF1ZXJ5LCBhcnJheSggJG1hcF9pZCwgJHBhcmFtc1snbWFya2VyX2lkJ10gKSApOwogICAgaWYoICEkcm93ICkKICAgICAgewoJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKCXJldHVybjsKICAgICAgfQoKICAgICRuYW1lID0gJHJvd1snbmFtZSddOwogICAgJGluZm8gPSAkcm93WydpbmZvJ107CiAgICAkYWRkcmVzcyA9ICRyb3dbJ2FkZHJlc3MnXTsKICAgICRzZWxfaWNvbiA9ICRyb3dbJ2ljb24nXTsKICAgICRsYXRpdHVkZSA9ICRyb3dbJ2xhdCddOwogICAgJGxvbmdpdHVkZSA9ICRyb3dbJ2xvbiddOwogIH0KCgovLyBoYW5kbGUgZm9ybSBhY3Rpb25zCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQogIHsKICAgICR0aGlzLT5SZWRpcmVjdCgkaWQsJ2FkbWluX2VkaXRtYXBwb2ludHMnLCRyZXR1cm5pZCxhcnJheSgnbWFwX2lkJz0+JG1hcF9pZCkpOwogICAgcmV0dXJuOwogIH0KZWxzZSBpZiggaXNzZXQoJHBhcmFtc1snc3VibWl0J10pICkKICB7CiAgICAvLwogICAgLy8gaGFuZGxlIHRoZSBzdWJtaXQKICAgIC8vCiAgICBpZiggaXNzZXQoJHBhcmFtc1snbmFtZSddKSApICRuYW1lID0gdHJpbSgkcGFyYW1zWyduYW1lJ10pOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2luZm8nXSkgKSAkaW5mbyA9IHRyaW0oJHBhcmFtc1snaW5mbyddKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydhZGRyZXNzJ10pICkgJGFkZHJlc3MgPSB0cmltKCRwYXJhbXNbJ2FkZHJlc3MnXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snaWNvbiddKSApICRzZWxfaWNvbiA9IHRyaW0oJHBhcmFtc1snaWNvbiddKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydsYXRpdHVkZSddKSApICRsYXRpdHVkZSA9IHRyaW0oJHBhcmFtc1snbGF0aXR1ZGUnXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snbG9uZ2l0dWRlJ10pICkgJGxvbmdpdHVkZSA9IHRyaW0oJHBhcmFtc1snbG9uZ2l0dWRlJ10pOwoKICAgIGlmKCAkbmFtZSA9PSAnJyB8fCAkc2VsX2ljb24gPT0gJycgfHwKCSgkYWRkcmVzcyA9PSAnJyAmJiAoJGxhdGl0dWRlID09ICcnIHx8ICRsb25naXR1ZGUgPT0gJycgKSkgKQogICAgICB7CgllY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkcGFyYW1zJykpOwogICAgICB9CiAgICBlbHNlCiAgICAgIHsKCS8vIG1hcCBpbmZvIGlzIHZhbGlkCglpZiggaXNzZXQoJHBhcmFtc1snbWFya2VyX2lkJ10pICkKCSAgewoJICAgIC8vIHVwZGF0ZSB0aGUgcG9pbnQKCSAgICAvLyBub3RlLCBkdXBsaWNhdGUgbmFtZXMgYXJlIHZhbGlkIGluIHRoaXMgdGFibGUKCSAgICAkcXVlcnkgPSAnVVBEQVRFICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzX3BvaW50cwogICAgICAgICAgICAgICAgICAgICAgICAgU0VUIG5hbWUgPSA/LCBpbmZvID0gPywgYWRkcmVzcyA9ID8sIGxhdCA9ID8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9uID0gPywgaWNvbiA9ID8KICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSBtYXBfaWQgPSA/IEFORCBtYXJrZXJfaWQgPSA/JzsKCSAgICAkZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCRuYW1lLCRpbmZvLCRhZGRyZXNzLCRsYXRpdHVkZSwKCQkJCQkgICAgICAgJGxvbmdpdHVkZSwkc2VsX2ljb24sCgkJCQkJICAgICAgICRtYXBfaWQsJHBhcmFtc1snbWFya2VyX2lkJ10pKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgLy8gaW5zZXJ0IHRoZSBwb2ludAoJICAgIC8vIG5vdGUsIGR1cGxpY2F0ZSBuYW1lcyBhcmUgdmFsaWQgaW4gdGhpcyB0YWJsZQoJICAgICRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnZ29vZ2xlbWFwc19wb2ludHMKICAgICAgICAgICAgICAgICAgICAobWFwX2lkLCBuYW1lLCBpbmZvLCBhZGRyZXNzLCBsYXQsIGxvbiwgaWNvbikKICAgICAgICAgICAgICAgICAgVkFMVUVTICg/LD8sPyw/LD8sPyw/KSc7CgkgICAgJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSgkbWFwX2lkLCRuYW1lLCRpbmZvLCRhZGRyZXNzLAoJCQkJCSAgICAgICAkbGF0aXR1ZGUsJGxvbmdpdHVkZSwkc2VsX2ljb24pKTsKCSAgfQoJaWYoICEkZGJyICkKCSAgewoJICAgIGVjaG8gIkRFQlVHOiBlcnJvciA9ICIuJGRiLT5FcnJvck1zZygpLic8YnIvPicuJGRiLT5zcWw7CgkgICAgZGllKCk7CgkgIH0KCQoJJHRoaXMtPlJlZGlyZWN0KCRpZCwnYWRtaW5fZWRpdG1hcHBvaW50cycsJHJldHVybmlkLGFycmF5KCdtYXBfaWQnPT4kbWFwX2lkKSk7CiAgICAgIH0KICB9CgovLyBidWlsZCB0aGUgZm9ybQppZiggaXNzZXQoJHBhcmFtc1snbWFya2VyX2lkJ10pICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsCgkJICAgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsJ21hcmtlcl9pZCcsJHBhcmFtc1snbWFya2VyX2lkJ10pKTsKICB9CmlmKCBjb3VudCgkaWNvbnMpICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2ljb25zJywkaWNvbnMpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdpY29uc2J5bmFtZScsJGljb25zYnluYW1lKTsKICAgICRzbWFydHktPmFzc2lnbignc2VsX2ljb24nLCRzZWxfaWNvbik7CiAgfQokc21hcnR5LT5hc3NpZ24oJ2Zvcm1zdGFydCcsCgkJJHRoaXMtPkNHQ3JlYXRlRm9ybVN0YXJ0KCRpZCwnYWRtaW5fYWRkbWFwcG9pbnQnLCRyZXR1cm5pZCwKCQkJCQkgYXJyYXkoJ21hcF9pZCc9PiRtYXBfaWQpKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbigndGl0bGUnLCR0aGlzLT5MYW5nKCdhZGRfcG9pbnRfZm9yX21hcCcsJG1hcGluZm9bJ25hbWUnXSkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKJHNtYXJ0eS0+YXNzaWduKCdjYW5jZWwnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ2NhbmNlbCcsJHRoaXMtPkxhbmcoJ2NhbmNlbCcpKSk7CgppZiggIWVtcHR5KCRhZGRyZXNzKSApCiAgewogICAgJHNtYXJ0eS0+YXNzaWduKCdwb2ludF9hZGRyZXNzJywkYWRkcmVzcyk7CiAgfQokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9uYW1lJywkdGhpcy0+TGFuZygncG9pbnRfbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9uYW1lJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnbmFtZScsJG5hbWUsNDAsODApKTsKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaW5mbycsJHRoaXMtPkxhbmcoJ3RleHQnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfaW5mbycsJHRoaXMtPkNyZWF0ZVRleHRBcmVhKHRydWUsJGlkLCRpbmZvLCdpbmZvJykpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hZGRyZXNzJywkdGhpcy0+TGFuZygnYWRkcmVzcycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hZGRyZXNzJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnYWRkcmVzcycsJGFkZHJlc3MsMTAwLDI1NSkpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9sYXQnLCR0aGlzLT5MYW5nKCdsYXRpdHVkZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sYXQnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdsYXRpdHVkZScsJGxhdGl0dWRlLDEwLDE1KSk7CiRzbWFydHktPmFzc2lnbigncHJvbXB0X2xvbicsJHRoaXMtPkxhbmcoJ2xvbmdpdHVkZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9sb24nLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdsb25naXR1ZGUnLCRsb25naXR1ZGUsMTAsMTUpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbmZvX2FkZHJlc3NfbGF0bG9uZycsJHRoaXMtPkxhbmcoJ2luZm9fYWRkcmVzc19sYXRsb25nJykpOwoKLy8gcHJvY2VzcyB0aGUgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZGRtYXBwb2ludC50cGwnKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_add_map.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBNYXBzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKSk7CiAgICByZXR1cm47CiAgfQokdGhpcy0+U2V0Q3VycmVudFRhYignbWFwcycpOwoKJG5hbWUgPSAnJzsKJGRlc2NyaXB0aW9uID0gJyc7CiRjZW50ZXJfbGF0ID0gJyc7CiRjZW50ZXJfbG9uID0gJyc7CiR0eXBlID0gJ21hcCc7CiR3aWR0aCA9IDQwMDsKJGhlaWdodCA9IDQwMDsKJGNvbnRyb2xzID0gMTsKJGNvbnRyb2xzX3NpemUgPSAnbGFyZ2UnOwokdHlwZV9jb250cm9scyA9IDE7CiRzaWRlYmFyID0gMDsKJGRpcmVjdGlvbnMgPSAwOwokem9vbSA9IDc7CiR6b29tX2VuY29tcGFzcyA9IDE7CiRpbmZvX3dpbmRvdyA9IDE7CiRpbmZvX3RyaWdnZXIgPSAnY2xpY2snOwokY29tYmluZV9wb2ludHMgPSAwOwokcG9pbnRfY29tYmluZV9mdWRnZSA9IDA7CiRjb21iaW5lZF9pY29uID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfbWFya2VyJyk7CgppZiggaXNzZXQoJHBhcmFtc1snbWFwX2lkJ10gKSApCiAgewogICAgJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHMgCiAgICAgICAgICAgICAgIFdIRVJFIG1hcF9pZCA9ID8nOwogICAgJHJvdyA9ICRkYi0+R2V0Um93KCRxdWVyeSwgYXJyYXkoJHBhcmFtc1snbWFwX2lkJ10pKTsKICAgIGlmKCAhJHJvdyApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXJhbXMnKSk7CiAgICAgIH0KICAgICRuYW1lID0gJHJvd1snbmFtZSddOwogICAgJGRlc2NyaXB0aW9uID0gJHJvd1snZGVzY3JpcHRpb24nXTsKICAgICRjZW50ZXJfbGF0ID0gJHJvd1snY2VudGVyX2xhdCddOwogICAgJGNlbnRlcl9sb24gPSAkcm93WydjZW50ZXJfbG9uJ107CiAgICAkdHlwZSA9ICRyb3dbJ3R5cGUnXTsKICAgICR3aWR0aCA9ICRyb3dbJ3dpZHRoJ107CiAgICAkaGVpZ2h0ID0gJHJvd1snaGVpZ2h0J107CiAgICAkY29udHJvbHMgPSAkcm93Wydjb250cm9scyddOwogICAgJGNvbnRyb2xzX3NpemUgPSAkcm93Wydjb250cm9sc19zaXplJ107CiAgICAkdHlwZV9jb250cm9scyA9ICRyb3dbJ3R5cGVfY29udHJvbHMnXTsKICAgICRzaWRlYmFyID0gJHJvd1snc2lkZWJhciddOwogICAgJGRpcmVjdGlvbnMgPSAkcm93WydkaXJlY3Rpb25zJ107CiAgICAkem9vbSA9ICRyb3dbJ3pvb20nXTsKICAgICR6b29tX2VuY29tcGFzcyA9ICRyb3dbJ3pvb21fZW5jb21wYXNzJ107CiAgICAkaW5mb193aW5kb3cgPSAkcm93WydpbmZvX3dpbmRvdyddOwogICAgJGluZm9fdHJpZ2dlciA9ICRyb3dbJ2luZm9fdHJpZ2dlciddOwogICAgJGNvbWJpbmVfcG9pbnRzID0gJHJvd1snY29tYmluZV9wb2ludHMnXTsKICAgICRwb2ludF9jb21iaW5lX2Z1ZGdlID0gJHJvd1sncG9pbnRfY29tYmluZV9mdWRnZSddOwogICAgJGNvbWJpbmVkX2ljb24gPSAkcm93Wydjb21iaW5lZF9pY29uJ107CiAgfQoKaWYoIGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSApCiAgewogICAgJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKICB9CmVsc2UgaWYoIGlzc2V0KCRwYXJhbXNbJ3N1Ym1pdCddKSApCiAgewogICAgLy8gR2V0IHZhcmlhYmxlcyBmcm9tIHRoZSBwYXJhbXMKICAgIGlmKCBpc3NldCgkcGFyYW1zWyduYW1lJ10pICkgJG5hbWUgPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZGVzY3JpcHRpb24nXSkgKSAkZGVzY3JpcHRpb24gPSB0cmltKCRwYXJhbXNbJ2Rlc2NyaXB0aW9uJ10pOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NlbnRlcl9sYXQnXSkgKSAkY2VudGVyX2xhdCA9IHRyaW0oJHBhcmFtc1snY2VudGVyX2xhdCddKTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjZW50ZXJfbG9uJ10pICkgJGNlbnRlcl9sb24gPSB0cmltKCRwYXJhbXNbJ2NlbnRlcl9sb24nXSk7CiAgICBpZiggaXNzZXQoJHBhcmFtc1sndHlwZSddKSApICR0eXBlID0gJHBhcmFtc1sndHlwZSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3dpZHRoJ10pICkgJHdpZHRoID0gKGludCkkcGFyYW1zWyd3aWR0aCddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2hlaWdodCddKSApICRoZWlnaHQgPSAkcGFyYW1zWydoZWlnaHQnXTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjb250cm9scyddKSApICRjb250cm9scyA9ICRwYXJhbXNbJ2NvbnRyb2xzJ107CiAgICBpZiggaXNzZXQoJHBhcmFtc1snY29udHJvbHNfc2l6ZSddKSApICRjb250cm9sc19zaXplID0gJHBhcmFtc1snY29udHJvbHNfc2l6ZSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3R5cGVfY29udHJvbHMnXSkgKSAkdHlwZV9jb250cm9scyA9ICRwYXJhbXNbJ3R5cGVfY29udHJvbHMnXTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydzaWRlYmFyJ10pICkgJHNpZGViYXIgPSAkcGFyYW1zWydzaWRlYmFyJ107CiAgICBpZiggaXNzZXQoJHBhcmFtc1snZGlyZWN0aW9ucyddKSApICRkaXJlY3Rpb25zID0gJHBhcmFtc1snZGlyZWN0aW9ucyddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ3pvb20nXSkgKSAkem9vbSA9ICRwYXJhbXNbJ3pvb20nXTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWyd6b29tX2VuY29tcGFzcyddKSApICR6b29tX2VuY29tcGFzcyA9ICRwYXJhbXNbJ3pvb21fZW5jb21wYXNzJ107CiAgICBpZiggaXNzZXQoJHBhcmFtc1snaW5mb193aW5kb3cnXSkgKSAkaW5mb193aW5kb3cgPSAkcGFyYW1zWydpbmZvX3dpbmRvdyddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2luZm9fdHJpZ2dlciddKSApICRpbmZvX3RyaWdnZXIgPSAkcGFyYW1zWydpbmZvX3RyaWdnZXInXTsKICAgIGlmKCBpc3NldCgkcGFyYW1zWydjb21iaW5lX3BvaW50cyddKSApICRjb21iaW5lX3BvaW50cyA9ICRwYXJhbXNbJ2NvbWJpbmVfcG9pbnRzJ107CiAgICBpZiggaXNzZXQoJHBhcmFtc1sncG9pbnRfY29tYmluZV9mdWRnZSddKSApICRwb2ludF9jb21iaW5lX2Z1ZGdlID0gJHBhcmFtc1sncG9pbnRfY29tYmluZV9mdWRnZSddOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2NvbWJpbmVkX2ljb24nXSkgKSAkY29tYmluZWRfaWNvbiA9ICRwYXJhbXNbJ2NvbWJpbmVkX2ljb24nXTsKCiAgICAvLyBtYWtlIHN1cmUgdGhhdCBoZWlnaHQsIHdpZHRoLCBhbmQgbmFtZSBhcmUgc3BlY2lmaWVkCiAgICBpZiggZW1wdHkoJG5hbWUpIHx8ICRoZWlnaHQgPD0gMCB8fCAkd2lkdGggPD0gMCApCiAgICAgIHsKCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXJhbXMnKSk7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJaWYoIGlzc2V0KCRwYXJhbXNbJ21hcF9pZCddKSApCgkgIHsKCSAgICAvLyBtYWtlIHN1cmUgdGhhdCBhbiBpdGVtIGJ5IHRoaXMgbmFtZSBkb2Vzbid0IGFscmVhZHkgZXhpc3QKCSAgICAkcXVlcnkgPSAnU0VMRUNUIG1hcF9pZCBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzCiAgICAgICAgICAgICAgICAgICBXSEVSRSBuYW1lID0gPyBBTkQgbWFwX2lkICE9ID8nOwoJICAgICRtYXBpZCA9ICRkYi0+R2V0T25lKCRxdWVyeSwgYXJyYXkoJG5hbWUsJHBhcmFtc1snbWFwX2lkJ10pKTsKCgkgICAgaWYoICRtYXBpZCApCgkgICAgICB7CgkJZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfbmFtZXhpc3RzJykpOwoJICAgICAgfQoJICAgIGVsc2UKCSAgICAgIHsKCQkvLyB1cGRhdGUgdGhlIHJlY29yZAoJCSRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHMKICAgICAgICAgICAgICAgICAgICAgICBTRVQgbmFtZSA9ID8sIGRlc2NyaXB0aW9uID0gPywgY2VudGVyX2xhdCA9ID8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNlbnRlcl9sb24gPSA/LCB0eXBlID0gPywgd2lkdGggPSA/LCBoZWlnaHQgPSA/LAogICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9scyA9ID8sIGNvbnRyb2xzX3NpemUgPSA/LAogICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlX2NvbnRyb2xzID0gPywgc2lkZWJhciA9ID8sIGRpcmVjdGlvbnMgPSA/LAogICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tID0gPywgem9vbV9lbmNvbXBhc3MgPSA/LAogICAgICAgICAgICAgICAgICAgICAgICAgICBpbmZvX3dpbmRvdyA9ID8sIGluZm9fdHJpZ2dlciA9ID8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbWJpbmVfcG9pbnRzID0gPywgcG9pbnRfY29tYmluZV9mdWRnZSA9ID8sIGNvbWJpbmVkX2ljb24gPSA/CiAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgbWFwX2lkID0gPyc7CgkJJGRiciA9ICRkYi0+RXhlY3V0ZSggJHF1ZXJ5LCBhcnJheSggJG5hbWUsCgkJCQkJCSAgICAkZGVzY3JpcHRpb24sCgkJCQkJCSAgICAkY2VudGVyX2xhdCwKCQkJCQkJICAgICRjZW50ZXJfbG9uLAoJCQkJCQkgICAgJHR5cGUsCgkJCQkJCSAgICAkd2lkdGgsCgkJCQkJCSAgICAkaGVpZ2h0LAoJCQkJCQkgICAgJGNvbnRyb2xzLAoJCQkJCQkgICAgJGNvbnRyb2xzX3NpemUsCgkJCQkJCSAgICAkdHlwZV9jb250cm9scywKCQkJCQkJICAgICRzaWRlYmFyLAoJCQkJCQkgICAgJGRpcmVjdGlvbnMsCgkJCQkJCSAgICAkem9vbSwKCQkJCQkJICAgICR6b29tX2VuY29tcGFzcywKCQkJCQkJICAgICRpbmZvX3dpbmRvdywKCQkJCQkJICAgICRpbmZvX3RyaWdnZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY29tYmluZV9wb2ludHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcG9pbnRfY29tYmluZV9mdWRnZSwKCQkJCQkJICAgICRjb21iaW5lZF9pY29uLAoJCQkJCQkgICAgJHBhcmFtc1snbWFwX2lkJ10pKTsKCQlpZiggISRkYnIgKQoJCSAgewoJCSAgICBlY2hvICJERUJVRzogc3FsIGVycm9yID0gIi4kZGItPkVycm9yTXNnKCkuJzxici8+Jy4kZGItPnNxbDsgZGllKCk7CgkJICB9CgkgICAgICB9CgkgIH0KCWVsc2UKCSAgewoJICAgIC8vIG1ha2Ugc3VyZSB0aGF0IGFuIGl0ZW0gYnkgdGhpcyBuYW1lIGRvZXNuJ3QgYWxyZWFkeSBleGlzdAoJICAgICRxdWVyeSA9ICdTRUxFQ1QgbWFwX2lkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHMKICAgICAgICAgICAgICAgICAgIFdIRVJFIG5hbWUgPSA/JzsKCSAgICAkbWFwaWQgPSAkZGItPkdldE9uZSgkcXVlcnksIGFycmF5KCRuYW1lKSk7CgkgICAgCgkgICAgaWYoICRtYXBpZCApIAoJICAgICAgewoJCWVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX25hbWV4aXN0cycpKTsKCSAgICAgIH0KCSAgICBlbHNlCgkgICAgICB7CgkJLy8gYWRkIGl0CgkJJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzIAogICAgICAgICAgICAgICAgICAgICAgIChuYW1lLGRlc2NyaXB0aW9uLGNlbnRlcl9sYXQsY2VudGVyX2xvbix0eXBlLHdpZHRoLGhlaWdodCxjb250cm9scyxjb250cm9sc19zaXplLHR5cGVfY29udHJvbHMsc2lkZWJhcixkaXJlY3Rpb25zLHpvb20sem9vbV9lbmNvbXBhc3MsaW5mb193aW5kb3csaW5mb190cmlnZ2VyLGNvbWJpbmVfcG9pbnRzLHBvaW50X2NvbWJpbmVfZnVkZ2UsY29tYmluZWRfaWNvbikKICAgICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyknOwoJCSRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRuYW1lLAoJCQkJCQkgICAgJGRlc2NyaXB0aW9uLAoJCQkJCQkgICAgJGNlbnRlcl9sYXQsCgkJCQkJCSAgICAkY2VudGVyX2xvbiwKCQkJCQkJICAgICR0eXBlLAoJCQkJCQkgICAgJHdpZHRoLAoJCQkJCQkgICAgJGhlaWdodCwKCQkJCQkJICAgICRjb250cm9scywKCQkJCQkJICAgICRjb250cm9sc19zaXplLAoJCQkJCQkgICAgJHR5cGVfY29udHJvbHMsCgkJCQkJCSAgICAkc2lkZWJhciwKCQkJCQkJICAgICRkaXJlY3Rpb25zLAoJCQkJCQkgICAgJHpvb20sCgkJCQkJCSAgICAkem9vbV9lbmNvbXBhc3MsCgkJCQkJCSAgICAkaW5mb193aW5kb3csCgkJCQkJCSAgICAkaW5mb190cmlnZ2VyLAoJCQkJCQkgICAgJGNvbWJpbmVfcG9pbnRzLAoJCQkJCQkgICAgJHBvaW50X2NvbWJpbmVfZnVkZ2UsCgkJCQkJCSAgICAkY29tYmluZWRfaWNvbikpOwoJCWlmKCAhJGRiciApCgkJICB7CgkJICAgIGVjaG8gIkRFQlVHOiBzcWwgZXJyb3IgPSAiLiRkYi0+RXJyb3JNc2coKS4nPGJyLz4nLiRkYi0+c3FsOyBkaWUoKTsKCQkgIH0KCSAgICAgIH0KCSAgfQoKCS8vIHJlZGlyZWN0CgkkdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwogICAgICB9CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLCR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2FkZF9tYXAnLCRyZXR1cm5pZCkpOwppZiggaXNzZXQoJHBhcmFtc1snbWFwX2lkJ10pICkKICB7CiAgICAkc21hcnR5LT5hc3NpZ24oJ2hpZGRlbicsJHRoaXMtPkNyZWF0ZUlucHV0SGlkZGVuKCRpZCwnbWFwX2lkJywkcGFyYW1zWydtYXBfaWQnXSkpOwogIH0KJHNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKJHNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsJ3N1Ym1pdCcsJHRoaXMtPkxhbmcoJ3N1Ym1pdCcpKSk7CiRzbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQoJGlkLCdjYW5jZWwnLCR0aGlzLT5MYW5nKCdjYW5jZWwnKSkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfbmFtZScsJHRoaXMtPkxhbmcoJ21hcF9uYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X25hbWUnLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCduYW1lJywkbmFtZSw0MCw4MCkpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGVzY3JpcHRpb24nLCR0aGlzLT5MYW5nKCdkZXNjcmlwdGlvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9kZXNjcmlwdGlvbicsJHRoaXMtPkNyZWF0ZVRleHRBcmVhKGZhbHNlLCRpZCwkZGVzY3JpcHRpb24sJ2Rlc2NyaXB0aW9uJykpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfY2VudGVyX2xhdCcsJHRoaXMtPkxhbmcoJ2NlbnRlcl9sYXQnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfY2VudGVyX2xhdCcsJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsJ2NlbnRlcl9sYXQnLCRjZW50ZXJfbGF0LDEwLDE1KSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9jZW50ZXJfbG9uJywkdGhpcy0+TGFuZygnY2VudGVyX2xvbicpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9jZW50ZXJfbG9uJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnY2VudGVyX2xvbicsJGNlbnRlcl9sb24sMTAsMTUpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3R5cGUnLCR0aGlzLT5MYW5nKCd0eXBlJykpOwokbWFwdHlwZXMgPSBhcnJheSgpOwokbWFwdHlwZXNbJHRoaXMtPkxhbmcoJ21hcCcpXSA9ICdtYXAnOwokbWFwdHlwZXNbJHRoaXMtPkxhbmcoJ3NhdGVsbGl0ZScpXSA9ICdzYXRlbGxpdGUnOwokbWFwdHlwZXNbJHRoaXMtPkxhbmcoJ2h5YnJpZCcpXSA9ICdoeWJyaWQnOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3R5cGUnLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwndHlwZScsJG1hcHR5cGVzLC0xLCR0eXBlKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF93aWR0aCcsJHRoaXMtPkxhbmcoJ3dpZHRoJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3dpZHRoJywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnd2lkdGgnLCR3aWR0aCw1LDEwKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9oZWlnaHQnLCR0aGlzLT5MYW5nKCdoZWlnaHQnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfaGVpZ2h0JywkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwnaGVpZ2h0JywkaGVpZ2h0LDUsMTApKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X2NvbnRyb2xzJywgJHRoaXMtPmxhbmcoJ2NvbnRyb2xzJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2NvbnRyb2xzJywkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnY29udHJvbHMnLCRjb250cm9scykpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfY29udHJvbHNfc2l6ZScsICR0aGlzLT5sYW5nKCdjb250cm9sc19zaXplJykpOwokY29udHJvbHNfc2l6ZXMgPSBhcnJheSgpOwokY29udHJvbHNfc2l6ZXNbJHRoaXMtPkxhbmcoJ2xhcmdlJyldID0gJ2xhcmdlJzsKJGNvbnRyb2xzX3NpemVzWyR0aGlzLT5MYW5nKCdzbWFsbCcpXSA9ICdzbWFsbCc7CiRzbWFydHktPmFzc2lnbignaW5wdXRfY29udHJvbHNfc2l6ZScsJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCdjb250cm9sc19zaXplJywkY29udHJvbHNfc2l6ZXMsLTEsJGNvbnRyb2xzX3NpemUpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3R5cGVfY29udHJvbHMnLCAkdGhpcy0+TGFuZygndHlwZV9jb250cm9scycpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF90eXBlX2NvbnRyb2xzJywkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwndHlwZV9jb250cm9scycsJHR5cGVfY29udHJvbHMpKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3NpZGViYXInLCR0aGlzLT5MYW5nKCdzaWRlYmFyJykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3NpZGViYXInLCR0aGlzLT5DcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCdzaWRlYmFyJywkc2lkZWJhcikpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfZGlyZWN0aW9ucycsJHRoaXMtPkxhbmcoJ2RpcmVjdGlvbnMnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfZGlyZWN0aW9ucycsJHRoaXMtPkNyZWF0ZUlucHV0WWVzTm9Ecm9wZG93bigkaWQsJ2RpcmVjdGlvbnMnLCRkaXJlY3Rpb25zKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF96b29tJywkdGhpcy0+TGFuZygnem9vbScpKTsKJHpvb21sZXZlbHMgPSBhcnJheSgpOwpmb3IoICRpID0gMTsgJGkgPCAxNzsgJGkrKyApCiAgewogICAgJHpvb21sZXZlbHNbJGldID0gJGk7CiAgfQokc21hcnR5LT5hc3NpZ24oJ2lucHV0X3pvb20nLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnem9vbScsJHpvb21sZXZlbHMsLTEsJHpvb20pKTsKCiRzbWFydHktPmFzc2lnbigncHJvbXB0X3pvb21fZW5jb21wYXNzJywkdGhpcy0+TGFuZygnem9vbV9lbmNvbXBhc3MnKSk7CiRzbWFydHktPmFzc2lnbignaW5wdXRfem9vbV9lbmNvbXBhc3MnLCR0aGlzLT5DcmVhdGVJbnB1dFllc05vRHJvcGRvd24oJGlkLCd6b29tX2VuY29tcGFzcycsJHpvb21fZW5jb21wYXNzKSk7Cgokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9pbmZvX3dpbmRvdycsJHRoaXMtPkxhbmcoJ2luZm9fd2luZG93JykpOwokc21hcnR5LT5hc3NpZ24oJ2lucHV0X2luZm9fd2luZG93JywkdGhpcy0+Q3JlYXRlSW5wdXRZZXNOb0Ryb3Bkb3duKCRpZCwnaW5mb193aW5kb3cnLCRpbmZvX3dpbmRvdykpOwoKJHNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfaW5mb190cmlnZ2VyJywkdGhpcy0+TGFuZygnaW5mb190cmlnZ2VyJykpOwokaW5mb190cmlnZ2VycyA9IGFycmF5KCk7CiRpbmZvX3RyaWdnZXJzWyR0aGlzLT5MYW5nKCdjbGljaycpXSA9ICdjbGljayc7CiRpbmZvX3RyaWdnZXJzWyR0aGlzLT5MYW5nKCdtb3VzZW92ZXInKV0gPSAnbW91c2VvdmVyJzsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9pbmZvX3RyaWdnZXInLCR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwnaW5mb190cmlnZ2VyJywkaW5mb190cmlnZ2VycywtMSwkaW5mb190cmlnZ2VyKSk7Cgokc21hcnR5LT5hc3NpZ24oJ2NvbWJpbmVfcG9pbnRzJywkY29tYmluZV9wb2ludHMpOwokc21hcnR5LT5hc3NpZ24oJ3BvaW50X2NvbWJpbmVfZnVkZ2UnLCRwb2ludF9jb21iaW5lX2Z1ZGdlKTsKCiRxdWVyeSA9ICdTRUxFQ1QgbmFtZSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzX2ljb25zIE9SREVSIEJZIG5hbWUnOwokdG1wID0gJGRiLT5HZXRDb2woJHF1ZXJ5KTsKJHRtcDIgPSBhcnJheSgpOwpmb3IoICRpID0gMDsgJGkgPCBjb3VudCgkdG1wKTsgJGkrKyApCiAgewogICAgJHRtcDJbJHRtcFskaV1dID0gJHRtcFskaV07CiAgfQokc21hcnR5LT5hc3NpZ24oJ2FsbF9pY29ucycsJHRtcDIpOwokc21hcnR5LT5hc3NpZ24oJ2NvbWJpbmVkX2ljb24nLCRjb21iaW5lZF9pY29uKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRkX21hcC50cGwnKTsKLy8gRU9GCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_deletemap.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBNYXBzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKSk7CiAgICByZXR1cm47CiAgfQppZiggIWlzc2V0KCRwYXJhbXNbJ21hcF9pZCddKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgIHJldHVybjsKICB9CiRtYXBfaWQgPSAoaW50KSRwYXJhbXNbJ21hcF9pZCddOwokdGhpcy0+U2V0Q3VycmVudFRhYignbWFwcycpOwoKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzIFdIRVJFIG1hcF9pZCA9ID8nOwokZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRtYXBfaWQgKSApOwoKJHRoaXMtPlJlZGlyZWN0VG9UYWIoICRpZCApOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_deletemappoint.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBNYXAgTG9jYXRpb25zJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKSk7CiAgICByZXR1cm47CiAgfQppZiggIWlzc2V0KCRwYXJhbXNbJ21hcF9pZCddKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgIHJldHVybjsKICB9CiRtYXBfaWQgPSAoaW50KSRwYXJhbXNbJ21hcF9pZCddOwppZiggIWlzc2V0KCRwYXJhbXNbJ21hcmtlcl9pZCddKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgIHJldHVybjsKICB9CiRtYXJrZXJfaWQgPSAoaW50KSRwYXJhbXNbJ21hcmtlcl9pZCddOwoKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzX3BvaW50cwogICAgICAgICAgIFdIRVJFIG1hcmtlcl9pZCA9ID8gQU5EIG1hcF9pZCA9ID8nOwokZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRtYXJrZXJfaWQsICRtYXBfaWQgKSApOwoKJHRoaXMtPlJlZGlyZWN0KCRpZCwnYWRtaW5fZWRpdG1hcHBvaW50cycsJHJldHVybmlkLGFycmF5KCdtYXBfaWQnPT4kbWFwX2lkKSk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_delete_icon.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdpY29ucycpOwppZiggIWlzc2V0KCRwYXJhbXNbJ2ljb24nXSkgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKJHF1ZXJ5ID0gJ1NFTEVDVCBuYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHNfaWNvbnMgV0hFUkUgaWQgPSA/JzsKJG5hbWUgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoKGludCkkcGFyYW1zWydpY29uJ10pKTsKaWYoICEkbmFtZSApCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3Rmb3VuZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKaWYoICRuYW1lID09ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X21hcmtlcicpICkKICB7CiAgICAkdGhpcy0+U2V0RXJyb3IoJHRoaXMtPkxhbmcoJ2Vycm9yX2Nhbm5vdGRlbGV0ZScpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzX2ljb25zIFdIRVJFIGlkID0gPyc7CiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoKGludCkkcGFyYW1zWydpY29uJ10pKTsKCiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfaWNvbl9yZW1vdmVkJykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_editmappoints.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBNYXAgTG9jYXRpb25zJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKSk7CiAgICByZXR1cm47CiAgfQppZiggIWlzc2V0KCRwYXJhbXNbJ21hcF9pZCddKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgIHJldHVybjsKICB9CiRtYXBfaWQgPSAoaW50KSRwYXJhbXNbJ21hcF9pZCddOwokdGhpcy0+U2V0Q3VycmVudFRhYignbWFwcycpOwoKLy8gR2V0IHRoZSBkZXRhaWxzIGFib3V0IHRoZSBtYXAKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHMKICAgICAgICAgICBXSEVSRSBtYXBfaWQgPSA/JzsKJG1hcGluZm8gPSAkZGItPkdldFJvdyggJHF1ZXJ5LCBhcnJheSggJG1hcF9pZCApICk7CmlmKCAhJG1hcGluZm8gKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX2ludmFsaWRwYXJhbXMnKSk7CiAgICByZXR1cm47CiAgfQoKJHNtYXJ0eS0+YXNzaWduKCd0aXRsZScsJHRoaXMtPkxhbmcoJ2VkaXRfcG9pbnRzX2Zvcl9tYXAnLCRtYXBpbmZvWyduYW1lJ10pKTsKJHNtYXJ0eS0+YXNzaWduKCdtYXBpbmZvJyxjZ2VfYXJyYXk6OnRvX29iamVjdCgkbWFwaW5mbykpOwoKLy8gR2V0IHRoZSBsaXN0IG9mIHBvaW50cyBhbmQgc2VuZCBpdCB0byBzbWFydHkKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHNfcG9pbnRzCiAgICAgICAgICAgV0hFUkUgbWFwX2lkID0gPyc7CiRkYnIgPSAkZGItPkV4ZWN1dGUoICRxdWVyeSwgYXJyYXkoICRtYXBfaWQgKSApOwoKJHBvaW50bGlzdCA9IGFycmF5KCk7CndoaWxlKCAkZGJyICYmICgkcm93ID0gJGRici0+RmV0Y2hSb3coKSkgKQogIHsKICAgICRvYmogPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkcm93KTsKICAgICRvYmotPmVkaXRfbGluayA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9hZGRtYXBwb2ludCcsJHJldHVybmlkLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ2VkaXRfbWFwX3BvaW50JyksCgkJCQkJICAgICAnaWNvbnMvc3lzdGVtL2VkaXQuZ2lmJywKCQkJCQkgICAgIGFycmF5KCdtYXBfaWQnPT4kbWFwX2lkLAoJCQkJCQkgICAnbWFya2VyX2lkJz0+JG9iai0+bWFya2VyX2lkKSk7CiAgICAkb2JqLT5kZWxldGVfbGluayA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9kZWxldGVtYXBwb2ludCcsJHJldHVybmlkLAoJCQkJCSAgICAgJHRoaXMtPkxhbmcoJ2RlbGV0ZV9tYXBfcG9pbnQnKSwKCQkJCQkgICAgICdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsCgkJCQkJICAgICBhcnJheSgnbWFwX2lkJz0+JG1hcF9pZCwKCQkJCQkJICAgJ21hcmtlcl9pZCc9PiRvYmotPm1hcmtlcl9pZCkpOwogICAgJHBvaW50bGlzdFtdID0gJG9iajsKICB9CgovLyBhZGQgaXRlbXMgZm9yIHRoZSB0YWJsZSB0byBzbWFydHkKJHNtYXJ0eS0+YXNzaWduKCdwb2ludGxpc3QnLCRwb2ludGxpc3QpOwokc21hcnR5LT5hc3NpZ24oJ2lkdGV4dCcsJHRoaXMtPkxhbmcoJ2lkJykpOwokc21hcnR5LT5hc3NpZ24oJ25hbWV0ZXh0JywkdGhpcy0+TGFuZygnbmFtZScpKTsKJHNtYXJ0eS0+YXNzaWduKCdsb2NhdGlvbnRleHQnLCR0aGlzLT5MYW5nKCdsb2NhdGlvbicpKTsKCi8vIEFkZCB0aGUgYWRkIHBvaW50IGxpbmsKJHNtYXJ0eS0+YXNzaWduKCdhZGRfbGluaycsCgkJJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2FkZG1hcHBvaW50JywkcmV0dXJuaWQsCgkJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2FkZF9tYXBfcG9pbnQnKSwKCQkJCSAgICAgICAnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLAoJCQkJICAgICAgIGFycmF5KCdtYXBfaWQnPT4kbWFwX2lkKSwnJywnJyxmYWxzZSkpOwoKLy8gcHJvY2VzcyB0aGUgdGVtcGxhdGUKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0bWFwcG9pbnRzLnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_edit_icon.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2ljb25zJyk7CgojCiMgSW5pdGlhbGl6YXRpb24KIwokaWNvbmlkID0gLTE7CiRlcnJvciA9ICcnOwokaWNvbl9kYXRhID0gYXJyYXkoKTsKJGljb25fZGF0YVsnbmFtZSddID0gJyc7CiRpY29uX2RhdGFbJ3VybCddID0gJyc7CiRpY29uX2RhdGFbJ2FuY2hvcl94J10gPSAnJzsKJGljb25fZGF0YVsnYW5jaG9yX3knXSA9ICcnOwokaWNvbl9kYXRhWydpbmZvX2FuY2hvcl94J10gPSAnJzsKJGljb25fZGF0YVsnaW5mb19hbmNob3JfeSddID0gJyc7CgojCiMgU2V0dXAKIwppZiggaXNzZXQoJHBhcmFtc1snaWNvbiddKSApCiAgewogICAgLy8gd2UgbXVzdCBiZSBlZGl0aW5nCiAgICAkaWNvbmlkID0gKGludCkkcGFyYW1zWydpY29uJ107CiAgfQplbHNlCiAgewogICAgLy8gYWRkaW5nIGEgbmV3IGljb24uCiAgICAkcGFyYW1zWydpY29uJ10gPSAkaWNvbmlkOwogIH0KCgoKIwojIEdldCBUaGUgRGF0YQojCmlmKCAkaWNvbmlkID49IDAgKQogIHsKICAgICRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzX2ljb25zCiAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKICAgICRpY29uX2RhdGEgPSAkZGItPkdldFJvdygkcXVlcnksYXJyYXkoJGljb25pZCkpOwogICAgaWYoICEkaWNvbl9kYXRhICkKICAgICAgewoJJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3Rmb3VuZCcpKTsKCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICAgIH0KICB9CgojCiMgSGFuZGxlIEZvcm0gU3VibWlzc2lvbgojCmlmKCBpc3NldCgkcGFyYW1zWydjYW5jZWwnXSkgKQogIHsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQplbHNlIGlmKCBpc3NldCgkcGFyYW1zWydzdWJtaXQnXSkgKQogIHsKICAgIGlmKCAhaXNzZXQoJHBhcmFtc1snbmFtZSddKSB8fCB0cmltKCRwYXJhbXNbJ25hbWUnXSkgPT0gJycgKQogICAgICB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpOwogICAgICB9CiAgICAkaWNvbl9kYXRhWyduYW1lJ10gPSB0cmltKCRwYXJhbXNbJ25hbWUnXSk7CgogICAgaWYoICFpc3NldCgkcGFyYW1zWyd1cmwnXSkgfHwgdHJpbSgkcGFyYW1zWyd1cmwnXSkgPT0gJycgKQogICAgICB7CgkkZXJyb3IgPSAkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpOwogICAgICB9CiAgICAkaWNvbl9kYXRhWyd1cmwnXSA9IHRyaW0oJHBhcmFtc1sndXJsJ10pOwoKICAgICRpY29uX2RhdGFbJ2FuY2hvcl94J10gPSAoaW50KSRwYXJhbXNbJ2FuY2hvcl94J107CiAgICAkaWNvbl9kYXRhWydhbmNob3JfeSddID0gKGludCkkcGFyYW1zWydhbmNob3JfeSddOwogICAgJGljb25fZGF0YVsnaW5mb19hbmNob3JfeCddID0gKGludCkkcGFyYW1zWydpbmZvX2FuY2hvcl94J107CiAgICAkaWNvbl9kYXRhWydpbmZvX2FuY2hvcl95J10gPSAoaW50KSRwYXJhbXNbJ2luZm9fYW5jaG9yX3knXTsKCiAgICBpZiggZW1wdHkoJGVycm9yKSApCiAgICAgIHsKCS8vIENoZWNrIGZvciBhIGR1cGxpY2F0ZSBuYW1lCgkkcXVlcnkgPSAnU0VMRUNUIGlkIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHNfaWNvbnMKICAgICAgICAgICAgICAgICAgV0hFUkUgbmFtZSA9ID8gQU5EIGlkICE9ID8nOwoJJHRtcCA9ICRkYi0+R2V0T25lKCRxdWVyeSxhcnJheSgkaWNvbl9kYXRhWyduYW1lJ10sJGljb25pZCkpOwoJaWYoICR0bXAgKQoJICB7CgkgICAgJGVycm9yID0gJHRoaXMtPkxhbmcoJ2Vycm9yX25hbWVleGlzdHMnKTsKCSAgfQogICAgICB9CgogICAgaWYoIGVtcHR5KCRlcnJvcikgKQogICAgICB7CglpZiggJGljb25pZCA+IDAgKQoJICB7CgkgICAgLy8gZG8gdGhlIHVwZGF0ZQoJICAgICRxdWVyeSA9ICdVUERBVEUgJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHNfaWNvbnMKICAgICAgICAgICAgICAgICAgICAgICAgIFNFVCBuYW1lID0gPywgdXJsID0gPywgYW5jaG9yX3ggPSA/LCBhbmNob3JfeSA9ID8sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mb19hbmNob3JfeCA9ID8sIGluZm9fYW5jaG9yX3kgPSA/CiAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgaWQgPSA/JzsKCSAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpY29uX2RhdGFbJ25hbWUnXSwKCQkJCSAgICAgICRpY29uX2RhdGFbJ3VybCddLAoJCQkJICAgICAgJGljb25fZGF0YVsnYW5jaG9yX3gnXSwKCQkJCSAgICAgICRpY29uX2RhdGFbJ2FuY2hvcl95J10sCgkJCQkgICAgICAkaWNvbl9kYXRhWydpbmZvX2FuY2hvcl94J10sCgkJCQkgICAgICAkaWNvbl9kYXRhWydpbmZvX2FuY2hvcl95J10sCgkJCQkgICAgICAkaWNvbmlkKSk7CgkgIH0KCWVsc2UKCSAgewoJICAgIC8vIGRvIHRoZSBpbnNlcnQKCSAgICAkcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHNfaWNvbnMKICAgICAgICAgICAgICAgICAgICAgICAgIChuYW1lLCB1cmwsIGFuY2hvcl94LCBhbmNob3JfeSwgaW5mb19hbmNob3JfeCwgaW5mb19hbmNob3JfeSkKICAgICAgICAgICAgICAgICAgICAgIFZBTFVFUyAoPyw/LD8sPyw/LD8pJzsKCSAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRpY29uX2RhdGFbJ25hbWUnXSwKCQkJCSAgICAgICRpY29uX2RhdGFbJ3VybCddLAoJCQkJICAgICAgJGljb25fZGF0YVsnYW5jaG9yX3gnXSwKCQkJCSAgICAgICRpY29uX2RhdGFbJ2FuY2hvcl95J10sCgkJCQkgICAgICAkaWNvbl9kYXRhWydpbmZvX2FuY2hvcl94J10sCgkJCQkgICAgICAkaWNvbl9kYXRhWydpbmZvX2FuY2hvcl95J10pKTsKCSAgfQoKCS8vIGFsbCBkb25lCgkkdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2ljb25fdXBkYXRlZCcpKTsKCSR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgICAgIH0KICB9CgoKIyAKIyBHaXZlIEV2ZXJ5dGhpbmcgdG8gU21hcnR5CiMKJHNtYXJ0eS0+YXNzaWduKCdmb3Jtc3RhcnQnLAoJCSR0aGlzLT5DR0NyZWF0ZUZvcm1TdGFydCgkaWQsJ2FkbWluX2VkaXRfaWNvbicsCgkJCQkJICRyZXR1cm5pZCwkcGFyYW1zKSk7CiRzbWFydHktPmFzc2lnbignZm9ybWVuZCcsJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiRzbWFydHktPmFzc2lnbignaWNvbl9kYXRhJywkaWNvbl9kYXRhKTsKCiMKIyBQcm9jZXNzIFRoZSBUZW1wbGF0ZQojCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5fZWRpdF9pY29uLnRwbCcpOwovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/action.admin_makeicondefault.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdpY29ucycpOwppZiggIWlzc2V0KCRwYXJhbXNbJ2ljb24nXSkgKQogIHsKICAgICR0aGlzLT5TZXRFcnJvcigkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKJHF1ZXJ5ID0gJ1NFTEVDVCBuYW1lIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHNfaWNvbnMgV0hFUkUgaWQgPSA/JzsKJG5hbWUgPSAkZGItPkdldE9uZSgkcXVlcnksYXJyYXkoKGludCkkcGFyYW1zWydpY29uJ10pKTsKaWYoICEkbmFtZSApCiAgewogICAgJHRoaXMtPlNldEVycm9yKCR0aGlzLT5MYW5nKCdlcnJvcl9ub3Rmb3VuZCcpKTsKICAgICR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7CiAgfQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfbWFya2VyJywkbmFtZSk7CiR0aGlzLT5TZXRNZXNzYWdlKCR0aGlzLT5MYW5nKCdtc2dfZGVmYXVsdF9pY29uX2NoYW5nZWQnKSk7CiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_reset_icons.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKJHRoaXMtPlNldEN1cnJlbnRUYWIoJ2ljb25zJyk7CgojIERlbGV0ZSBleGlzdGluZyBpY29ucwokcXVlcnkgPSAnREVMRVRFIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHNfaWNvbnMnOwokZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCiMgQWRkIE5ldyBvbmVzCiRxdWVyeSA9ICdJTlNFUlQgSU5UTyAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnZ29vZ2xlbWFwc19pY29ucyAobmFtZSx1cmwsIGFuY2hvcl94LCBhbmNob3JfeSkgVkFMVUVTICg/LD8sPyw/KSc7CiRwYXRoID0gZGlybmFtZShfX0ZJTEVfXykuJy9pY29ucy8nOwokdXJsYmFzZSA9ICdtb2R1bGVzLycuJHRoaXMtPkdldE5hbWUoKS4nL2ljb25zLyc7CiRpY29ucyA9IGdldF9tYXRjaGluZ19maWxlcygkcGF0aCwncG5nJyk7CmZvcmVhY2goICRpY29ucyBhcyAkb25lICkKewogICRyZXMgPSBnZXRpbWFnZXNpemUoJHBhdGguJy8nLiRvbmUpOwogIGlmKCAkcmVzICE9PSBGQUxTRSApCiAgICB7CiAgICAgICRuYW1lID0gc3Vic3RyKCRvbmUsMCxzdHJsZW4oJG9uZSktNCk7CiAgICAgICRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJG5hbWUsJHVybGJhc2UuJG9uZSwoaW50KSRyZXNbMF0vMiwoaW50KSRyZXNbMV0vMikpOwogICAgfQp9CgokdGhpcy0+U2V0TWVzc2FnZSgkdGhpcy0+TGFuZygnbXNnX2ljb25zX3Jlc2V0JykpOwokdGhpcy0+UmVkaXJlY3RUb1RhYigkaWQpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.admin_saveprefs.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJykpOwogICAgcmV0dXJuOwogIH0KCiR0aGlzLT5TZXRDdXJyZW50VGFiKCdwcmVmcycpOwoKJGdvb2dsZV9hcGlrZXkgPSAnJzsKaWYoIGlzc2V0KCRwYXJhbXNbJ2dvb2dsZV9hcGlrZXknXSkgKQogIHsKICAgICRnb29nbGVfYXBpa2V5ID0gdHJpbSgkcGFyYW1zWydnb29nbGVfYXBpa2V5J10pOwogIH0KJHRoaXMtPlNldFByZWZlcmVuY2UoJ2dvb2dsZV9hcGlrZXknLCRnb29nbGVfYXBpa2V5KTsKCiR0aGlzLT5SZWRpcmVjdFRvVGFiKCRpZCk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.admin_setdfltmap.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdCgpOwppZiggISR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01hbmFnZSBNYXBzJykgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHRoaXMtPkxhbmcoJ2Vycm9yX3Blcm1pc3Npb25kZW5pZWQnKSk7CiAgICByZXR1cm47CiAgfQppZiggIWlzc2V0KCRwYXJhbXNbJ21hcF9pZCddKSApCiAgewogICAgZWNobyAkdGhpcy0+U2hvd0Vycm9ycygkdGhpcy0+TGFuZygnZXJyb3JfaW52YWxpZHBhcmFtcycpKTsKICAgIHJldHVybjsKICB9CiRtYXBfaWQgPSAoaW50KSRwYXJhbXNbJ21hcF9pZCddOwokdGhpcy0+U2V0Q3VycmVudFRhYignbWFwcycpOwoKJHRoaXMtPlNldFBSZWZlcmVuY2UoJ2RlZmF1bHRfbWFwJywkbWFwX2lkKTsKJHRoaXMtPlJlZGlyZWN0VG9UYWIoJGlkKTsKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICFpc3NldCgkZ0Ntcy0+dmFyaWFibGVzWyR0aGlzLT5HZXROYW1lKCkuJ21hcF9jb3VudCddKSApCiAgewogICAgJGdDbXMtPnZhcmlhYmxlc1skdGhpcy0+R2V0TmFtZSgpLidtYXBfY291bnQnXSA9IDA7CiAgfQokbWFwX2NvdW50ID0gJGdDbXMtPnZhcmlhYmxlc1skdGhpcy0+R2V0TmFtZSgpLidtYXBfY291bnQnXSsrOwoKJHRoZXRlbXBsYXRlID0gJHRoaXMtPkdldFByZWZlcmVuY2UoQ0dHTV9QUkVGX0RGTFRNQVBfVEVNUExBVEUpOwppZiggaXNzZXQoJHBhcmFtc1snbWFwdGVtcGxhdGUnXSkgKQogIHsKICAgIHRyaW0oJHBhcmFtc1snbWFwdGVtcGxhdGUnXSk7CiAgfQokZGVmZXIgPSAwOwppZiggaXNzZXQoJHBhcmFtc1snZGVmZXInXSkgJiYgJHBhcmFtc1snZGVmZXInXSA9PSAxICkKICB7CiAgICAkZGVmZXIgPSAxOwogIH0KCi8vIEdldCBpY29uIGluZm9ybWF0aW9uCiRpY29ucyA9ICcnOwokZGVmYXVsdF9pY29uID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfbWFya2VyJyk7CnsKICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnZ29vZ2xlbWFwc19pY29ucyBPUkRFUiBCWSBuYW1lJzsKICAkdG1wID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwogIGlmKCBpc19hcnJheSgkdG1wKSApCiAgICB7CiAgICAgICRpY29ucyA9IGNnZV9hcnJheTo6dG9faGFzaCgkdG1wLCduYW1lJyk7CiAgICB9Cn0KCi8vIEdldCB0aGUgbWFwIGluZm9ybWF0aW9uCiRtYXBpZCA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X21hcCcsMCk7CmlmKCBpc3NldCgkcGFyYW1zWydtYXAnXSkgKQogIHsKICAgICRtYXBpZCA9ICRwYXJhbXNbJ21hcCddOwogIH0KJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHMKICAgICAgICAgICAgICAgV0hFUkUgbWFwX2lkID0gPyBPUiBuYW1lID0gPyc7CiRtYXBfZGF0YSA9ICRkYi0+R2V0Um93KCRxdWVyeSxhcnJheSgkbWFwaWQsJG1hcGlkKSk7CmlmKCAhJG1hcF9kYXRhICkKICB7CiAgICBlY2hvICR0aGlzLT5EaXNwbGF5RXJyb3JNZXNzYWdlKCR0aGlzLT5MYW5nKCdlcnJvcl9pbnZhbGlkcGFyYW1zJykpOwogICAgcmV0dXJuOwogIH0KCiRhcGlrZXkgPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZ29vZ2xlX2FwaWtleScsJycpOwppZiggZW1wdHkoJGFwaWtleSkgKQogIHsKICAgIGVjaG8gJHRoaXMtPkRpc3BsYXlFcnJvck1lc3NhZ2UoJHRoaXMtPkxhbmcoJ2Vycm9yX25vYXBpa2V5JykpOwogICAgcmV0dXJuOwogIH0KCiRjdXJyZW50TG9jYWxlID0gc2V0bG9jYWxlKExDX0FMTCwgMCk7CnNldGxvY2FsZShMQ19BTEwsICdlbl9VUycpOwokZG4gPSBkaXJuYW1lKF9fRklMRV9fKS4nL2xpYi9wZWFyJzsKaW5pX3NldCgnaW5jbHVkZV9wYXRoJyxpbmlfZ2V0KCdpbmNsdWRlX3BhdGgnKS4iOiRkbiIpOwpyZXF1aXJlX29uY2UoJ2xpYi9Hb29nbGVNYXBBUEktMi40L0dvb2dsZU1hcEFQSS5jbGFzcy5waHAnKTsKJG1hcCA9IG5ldyBHb29nbGVNYXBBUEkoJHRoaXMtPkdldE5hbWUoKS4kbWFwX2NvdW50LCAkdGhpcy0+R2V0TmFtZSgpKTsKCi8vIFNldHVwIGRhdGFiYXNlIGNvbm5lY3Rpb24KJGNvbmZpZyA9JiAkZ0Ntcy0+R2V0Q29uZmlnKCk7Ci8vJG1hcC0+c2V0RmlsZVJvb3QoJGNvbmZpZ1sncm9vdF9wYXRoJ10pOwp7CiAgJGljb24gPSAkaWNvbnNbJGRlZmF1bHRfaWNvbl07CiAgJGFuY2hvclggPSAneCc7CiAgJGFuY2hvclkgPSAneCc7CiAgJGluZm9fYW5jaG9yWCA9ICd4JzsKICAkaW5mb19hbmNob3JZID0gJ3gnOwogIGlmKCAhZW1wdHkoJGljb25bJ2FuY2hvcl94J10pICkgJGFuY2hvclggPSAoaW50KSRpY29uWydhbmNob3JfeCddOwogIGlmKCAhZW1wdHkoJGljb25bJ2FuY2hvcl95J10pICkgJGFuY2hvclkgPSAoaW50KSRpY29uWydhbmNob3JfeSddOwogIGlmKCAhZW1wdHkoJGljb25bJ2FuY2hvcl94J10pICkgJGluZm9fYW5jaG9yWCA9IChpbnQpJGljb25bJ2luZm9fYW5jaG9yX3gnXTsKICBpZiggIWVtcHR5KCRpY29uWydhbmNob3JfeSddKSApICRpbmZvX2FuY2hvclkgPSAoaW50KSRpY29uWydpbmZvX2FuY2hvcl95J107CiAgJG1hcC0+YWRkTWFya2VySWNvbihHb29nbGVNYXBBUEk6OmRmbHRfaWNvbl9uYW1lLCRjb25maWdbJ3Jvb3RfdXJsJ10uJy8nLiRpY29uWyd1cmwnXSwnJywkYW5jaG9yWCwkYW5jaG9yWSwkaW5mb19hbmNob3JYLCRpbmZvX2FuY2hvclkpOwp9CiRtYXAtPnNldERTTigkZGIpOwokbWFwLT5zZXREQlRhYmxlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NnZ29vZ2xlbWFwc19jYWNoZSIpOwokbWFwLT5zZXRBUElLZXkoJGFwaWtleSk7CiRtYXAtPnNldExvb2t1cFNlcnZpY2UoJ0dPT0dMRScpOwokbWFwLT5zZXRXaWR0aCgkbWFwX2RhdGFbJ3dpZHRoJ10pOwokbWFwLT5zZXRIZWlnaHQoJG1hcF9kYXRhWydoZWlnaHQnXSk7CnsKICAkaWNvbl9uYW1lID0gJG1hcF9kYXRhWydjb21iaW5lZF9pY29uJ107CiAgJGljb24gPSAkaWNvbnNbJGljb25fbmFtZV07CiAgaWYoIGlzX2FycmF5KCRpY29uKSApCiAgICB7CiAgICAgICRhbmNob3JYID0gJ3gnOwogICAgICAkYW5jaG9yWSA9ICd4JzsKICAgICAgJGluZm9fYW5jaG9yWCA9ICd4JzsKICAgICAgJGluZm9fYW5jaG9yWSA9ICd4JzsKICAgICAgaWYoICFlbXB0eSgkaWNvblsnYW5jaG9yX3gnXSkgKSAkYW5jaG9yWCA9IChpbnQpJGljb25bJ2FuY2hvcl94J107CiAgICAgIGlmKCAhZW1wdHkoJGljb25bJ2FuY2hvcl95J10pICkgJGFuY2hvclkgPSAoaW50KSRpY29uWydhbmNob3JfeSddOwogICAgICBpZiggIWVtcHR5KCRpY29uWydhbmNob3JfeCddKSApICRpbmZvX2FuY2hvclggPSAoaW50KSRpY29uWydpbmZvX2FuY2hvcl94J107CiAgICAgIGlmKCAhZW1wdHkoJGljb25bJ2FuY2hvcl95J10pICkgJGluZm9fYW5jaG9yWSA9IChpbnQpJGljb25bJ2luZm9fYW5jaG9yX3knXTsKICAgICAgJG1hcC0+YWRkTWFya2VySWNvbigkaWNvbl9uYW1lLCRjb25maWdbJ3Jvb3RfdXJsJ10uJy8nLiRpY29uWyd1cmwnXSwnJywkYW5jaG9yWCwkYW5jaG9yWSwkaW5mb19hbmNob3JYLCRpbmZvX2FuY2hvclkpOwogICAgfQogIGVsc2UKICAgIHsKICAgICAgJGljb25fbmFtZSA9ICcnOwogICAgfQogICRtYXAtPnNldF9jb21iaW5lX3BvaW50cygkbWFwX2RhdGFbJ2NvbWJpbmVfcG9pbnRzJ10sJG1hcF9kYXRhWydwb2ludF9jb21iaW5lX2Z1ZGdlJ10sJGljb25fbmFtZSk7Cn0KaWYgKCRtYXBfZGF0YVsnY29udHJvbHMnXSA9PSAwKSB7CiAgJG1hcC0+ZGlzYWJsZU1hcENvbnRyb2xzKCk7Cn0KaWYgKCRtYXBfZGF0YVsndHlwZV9jb250cm9scyddID09IDApIHsKICAkbWFwLT5kaXNhYmxlVHlwZUNvbnRyb2xzKCRtYXBfZGF0YVsndHlwZV9jb250cm9scyddKTsKfQppZiggJG1hcF9kYXRhWyd6b29tJ10gPiAwICkgewogICRtYXAtPnNldFpvb21MZXZlbCgkbWFwX2RhdGFbJ3pvb20nXSk7Cn0KJG1hcC0+c2V0Q29udHJvbFNpemUoJG1hcF9kYXRhWydjb250cm9sc19zaXplJ10pOwokbWFwLT5zZXRNYXBUeXBlKCRtYXBfZGF0YVsndHlwZSddKTsKaWYgKCRtYXBfZGF0YVsnc2lkZWJhciddID09IDApIHsKICAkbWFwLT5kaXNhYmxlU2lkZWJhcigpOwp9CmlmICgkbWFwX2RhdGFbJ2RpcmVjdGlvbnMnXSA9PSAwKSB7CiAgJG1hcC0+ZGlzYWJsZURpcmVjdGlvbnMoKTsKfQppZigkbWFwX2RhdGFbJ3pvb21fZW5jb21wYXNzJ10gPT0gMCkgewogICRtYXAtPmRpc2FibGVab29tRW5jb21wYXNzKCk7Cn0KaWYoJG1hcF9kYXRhWydpbmZvX3dpbmRvdyddID09IDApIHsKICAkbWFwLT5kaXNhYmxlSW5mb1dpbmRvdygpOwp9CiRtYXAtPnNldEluZm9XaW5kb3dUcmlnZ2VyKCRtYXBfZGF0YVsnaW5mb190cmlnZ2VyJ10pOwoKJHVzZWRfaWNvbnMgPSBhcnJheSgpOwokbnVtX21hcF9wb2ludHMgPSAwOwoKLy8gZ2V0IGZpeGVkIG1hcmtlcnMgZm9yIHRoaXMgbWFwCiRxdWVyeSA9ICdTRUxFQ1QgKiBGUk9NICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzX3BvaW50cwogICAgICAgICAgIFdIRVJFIG1hcF9pZCA9ID8nOwokZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnksIGFycmF5KCAkbWFwX2RhdGFbJ21hcF9pZCddICkpOwp3aGlsZSggJGRiciAmJiAoJHJvdyA9ICRkYnItPkZldGNoUm93KCkpICkKICB7CiAgICAkdG1wID0gVFJVRTsKICAgIGlmKCBlbXB0eSgkcm93WydsYXQnXSkgfHwgZW1wdHkoJHJvd1snbG9uJ10pICYmICFlbXB0eSgkcm93WydhZGRyZXNzJ10pICkKICAgICAgewoJJHRtcDIgPSAkbWFwLT5hZGRNYXJrZXJCeUFkZHJlc3MoJHJvd1snbmFtZSddLCRyb3dbJ2FkZHJlc3MnXSwkcm93WyduYW1lJ10sJHJvd1snaW5mbyddLCcnLCRyb3dbJ2ljb24nXSk7CglpZiggJHRtcDIgPT09IEZBTFNFICkgewoJICBlY2hvICc8IS0tIEVSUk9SOiBBZGRyZXNzICInLiRyb3dbJ2FkZHJlc3MuJ10uJyIgZmFpbGVkIGdlb2xvY2F0aW9uIHRlc3QgLS0+Jy4iXG4iOwoJICAkdG1wID0gRkFMU0U7Cgl9CgllbHNlIHsKCSAgJHVzZWRfaWNvbnNbXSA9ICRyb3dbJ2ljb24nXTsKCSAgJG51bV9tYXBfcG9pbnRzKys7Cgl9CiAgICAgIH0KICAgIGVsc2UgaWYoICFlbXB0eSgkcm93WydsYXQnXSkgJiYgIWVtcHR5KCRyb3dbJ2xvbiddKSApCiAgICAgIHsKCSRtYXAtPmFkZE1hcmtlckJ5Q29vcmRzKCRyb3dbJ25hbWUnXSwkcm93Wydsb24nXSwkcm93WydsYXQnXSwKCQkJCSRyb3dbJ25hbWUnXSwkcm93WydpbmZvJ10sJycsJHJvd1snaWNvbiddKTsKCSRudW1fbWFwX3BvaW50cysrOwoJJHVzZWRfaWNvbnNbXSA9ICRyb3dbJ2ljb24nXTsKICAgICAgfQogIH0KCi8vIGdldCBkeW5hbWljIG1hcmtlcnMgZm9yIHRoaXMgbWFwCmlmKCBpc19hcnJheSgkdGhpcy0+X2R5bmFtaWNfcG9pbnRzKSAmJgogICAgaXNfYXJyYXkoJHRoaXMtPl9keW5hbWljX3BvaW50c1skbWFwaWRdKSApCiAgewogICAgZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJHRoaXMtPl9keW5hbWljX3BvaW50c1skbWFwaWRdKTsgJGkrKyApCiAgICAgIHsKCSRvYmogPSYgJHRoaXMtPl9keW5hbWljX3BvaW50c1skbWFwaWRdWyRpXTsKCgkkdG1wID0gVFJVRTsKCWlmKCBlbXB0eSgkb2JqLT5sYXQpIHx8IGVtcHR5KCRvYmotPmxvbmcpICYmICFlbXB0eSgkb2JqLT5hZGRyZXNzKSApCgkgIHsKCSAgICAkdG1wMiA9ICRtYXAtPmFkZE1hcmtlckJ5QWRkcmVzcygkb2JqLT5uYW1lLAoJCQkJCSAgICAgJG9iai0+YWRkcmVzcywKCQkJCQkgICAgICRvYmotPm5hbWUsCgkJCQkJICAgICAkb2JqLT5kZXNjcmlwdGlvbiwKCQkJCQkgICAgICRvYmotPnRvb2x0aXAsCgkJCQkJICAgICAkb2JqLT5pY29uLAoJCQkJCSAgICAgJG9iai0+c2lkZWJhcl9jbGFzcyk7CgkgICAgaWYoICR0bXAyID09PSBGQUxTRSApIHsKCSAgICAgIGVjaG8gJzwhLS0gRVJST1I6IEFkZHJlc3MgIicuJG9iai0+YWRkcmVzcy4nIiBmYWlsZWQgZ2VvbG9jYXRpb24gdGVzdCAtLT4nLiJcbiI7CgkgICAgICAkdG1wID0gRkFMU0U7CgkgICAgfQoJICAgIGVsc2UgewoJICAgICAgJHVzZWRfaWNvbnNbXSA9ICRvYmotPmljb247CgkgICAgICAkbnVtX21hcF9wb2ludHMrKzsKCSAgICB9CgkgICAgICAKCSAgfQoJZWxzZSBpZiggIWVtcHR5KCRvYmotPmxhdCkgJiYgIWVtcHR5KCRvYmotPmxvbmcpICkKCSAgewoJICAgICRtYXAtPmFkZE1hcmtlckJ5Q29vcmRzKCRvYmotPm5hbWUsJG9iai0+bG9uZywkb2JqLT5sYXQsCgkJCQkgICAgJG9iai0+bmFtZSwkb2JqLT5kZXNjcmlwdGlvbiwkb2JqLT50b29sdGlwLAoJCQkJICAgICRvYmotPmljb24sJG9iai0+c2lkZWJhcl9jbGFzcyk7CgkgICAgJHVzZWRfaWNvbnNbXSA9ICRvYmotPmljb247CgkgICAgJG51bV9tYXBfcG9pbnRzKys7CgkgIH0KICAgICAgfQogIH0KCmlmKCBjb3VudCgkdXNlZF9pY29ucykgPiAwICkKICB7CiAgICAkdXNlZF9pY29ucyA9IGFycmF5X3VuaXF1ZSgkdXNlZF9pY29ucyk7CiAgICBmb3JlYWNoKCAkdXNlZF9pY29ucyBhcyAkbmFtZSApCiAgICAgIHsKCWlmKCAkbmFtZSA9PSAnJyApIGNvbnRpbnVlOwoJJGljb24gPSAkaWNvbnNbJG5hbWVdOwoJaWYoIGlzX2FycmF5KCRpY29uKSApIAoJICB7CgkgICAgJGFuY2hvclggPSAneCc7CgkgICAgJGFuY2hvclkgPSAneCc7CgkgICAgJGluZm9fYW5jaG9yWCA9ICd4JzsKCSAgICAkaW5mb19hbmNob3JZID0gJ3gnOwoJICAgIGlmKCAhZW1wdHkoJGljb25bJ2FuY2hvcl94J10pICkgJGFuY2hvclggPSAoaW50KSRpY29uWydhbmNob3JfeCddOwoJICAgIGlmKCAhZW1wdHkoJGljb25bJ2FuY2hvcl95J10pICkgJGFuY2hvclkgPSAoaW50KSRpY29uWydhbmNob3JfeSddOwoJICAgIGlmKCAhZW1wdHkoJGljb25bJ2FuY2hvcl94J10pICkgJGluZm9fYW5jaG9yWCA9IChpbnQpJGljb25bJ2luZm9fYW5jaG9yX3gnXTsKCSAgICBpZiggIWVtcHR5KCRpY29uWydhbmNob3JfeSddKSApICRpbmZvX2FuY2hvclkgPSAoaW50KSRpY29uWydpbmZvX2FuY2hvcl95J107CgkgICAgJG1hcC0+YWRkTWFya2VySWNvbigkaWNvblsnbmFtZSddLCRjb25maWdbJ3Jvb3RfdXJsJ10uJy8nLiRpY29uWyd1cmwnXSwnJywkYW5jaG9yWCwkYW5jaG9yWSwkaW5mb19hbmNob3JYLCRpbmZvX2FuY2hvclkpOwoJICB9CiAgICAgIH0KICB9CgppZiggJG51bV9tYXBfcG9pbnRzID4gMCApCiAgewogICAgJG1hcC0+ZGlzYWJsZU9uTG9hZCgpOwogICAgaWYgKCRtYXBfZGF0YVsnY2VudGVyX2xhdCddICE9ICcnICYmIGlzX251bWVyaWMoJG1hcF9kYXRhWydjZW50ZXJfbGF0J10pICYmCgkkbWFwX2RhdGFbJ2NlbnRlcl9sb24nXSAhPSAnJyAmJiBpc19udW1lcmljKCRtYXBfZGF0YVsnY2VudGVyX2xvbiddKSkKICAgICAgewoJJG1hcC0+c2V0Q2VudGVyQ29vcmRzKCRtYXBfZGF0YVsnY2VudGVyX2xvbiddLCRtYXBfZGF0YVsnY2VudGVyX2xhdCddKTsKICAgICAgfQogICAgCiAgICAvLyBhc3NpZ24gU21hcnR5IHZhcmlhYmxlczsKICAgICRzbWFydHktPmFzc2lnbignZ29vZ2xlX21hcF9oZWFkZXInLCRtYXAtPmdldEhlYWRlckpTKCRkZWZlcikpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdnb29nbGVfbWFwX2pzJywkbWFwLT5nZXRNYXBKUygkZGVmZXIpKTsKICAgICRzbWFydHktPmFzc2lnbignZ29vZ2xlX21hcF9zaWRlYmFyJywkbWFwLT5nZXRTaWRlYmFyKCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdnb29nbGVfbWFwJywkbWFwLT5nZXRNYXAoJGRlZmVyKSk7CiAgICAkc21hcnR5LT5hc3NpZ24oJ21hcF9kZXNjcmlwdGlvbicsICRtYXBfZGF0YVsnZGVzY3JpcHRpb24nXSk7CiAgICAKICAgIC8vIFByb2Nlc3MgdGhlIHRlbXBsYXRlCiAgICBlY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YWJhc2UoJ21hcF8nLiR0aGV0ZW1wbGF0ZSk7CiAgfQogICAgCiNTZXQgbG9jYWxlIGFnYWluCmFkb2RiX2Nvbm5lY3QoKTsKc2V0bG9jYWxlKExDX0FMTCwgJGN1cnJlbnRMb2NhbGUpOwovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokdG1wID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2dvb2dsZV9hcGlrZXknLCcnKTsKaWYoIGVtcHR5KCR0bXApICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9ub2FwaWtleTInKSk7CiAgfQoKZWNobyAkdGhpcy0+U3RhcnRUYWJIZWFkZXJzKCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwcycpIHx8CiAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwIExvY2F0aW9ucycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ21hcHMnLCR0aGlzLT5MYW5nKCdtYXBzJykpOwogIH0KaWYoICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdtYXBfdGVtcGxhdGVzJywkdGhpcy0+TGFuZygnbWFwX3RlbXBsYXRlcycpKTsKICAgIGVjaG8gJHRoaXMtPlNldFRhYkhlYWRlcignZGVmYXVsdF90ZW1wbGF0ZXMnLCR0aGlzLT5MYW5nKCdkZWZhdWx0X3RlbXBsYXRlcycpKTsKICB9CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TZXRUYWJIZWFkZXIoJ2ljb25zJywkdGhpcy0+TGFuZygnbWFya2VyX2ljb25zJykpOwogICAgZWNobyAkdGhpcy0+U2V0VGFiSGVhZGVyKCdwcmVmcycsJHRoaXMtPkxhbmcoJ3ByZWZlcmVuY2VzJykpOwogIH0KZWNobyAkdGhpcy0+RW5kVGFiSGVhZGVycygpOwoKZWNobyAkdGhpcy0+U3RhcnRUYWJDb250ZW50KCk7CmlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwcycpIHx8CiAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwIExvY2F0aW9ucycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignbWFwcycpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX21hcHNfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TdGFydFRhYignbWFwX3RlbXBsYXRlcycpOwogICAgaW5jbHVkZShkaXJuYW1lKF9fRklMRV9fKS4nL2Z1bmN0aW9uLmFkbWluX21hcF90ZW1wbGF0ZXNfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2RlZmF1bHRfdGVtcGxhdGVzJyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fZGVmYXVsdF90ZW1wbGF0ZXNfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQppZiggJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnKSApCiAgewogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ2ljb25zJyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5faWNvbnNfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CgogICAgZWNobyAkdGhpcy0+U3RhcnRUYWIoJ3ByZWZzJyk7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fcHJlZnNfdGFiLnBocCcpOwogICAgZWNobyAkdGhpcy0+RW5kVGFiKCk7CiAgfQplY2hvICR0aGlzLT5FbmRUYWJDb250ZW50KCk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.getgeocode.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKaWYoICFpc3NldCgkcGFyYW1zWydhZGRyZXNzJ10pICkgcmV0dXJuOwoKJHJlcyA9ICR0aGlzLT5HZXRDb29yZHNGcm9tQWRkcmVzcygkcGFyYW1zWydhZGRyZXNzJ10pOwppZiggISRyZXMgKQogIHsKICAgIGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoJ3N0YXR1cyc9PidlcnJvcicpKTsKICB9CmVsc2UKICB7CiAgICAkcmVzWydzdGF0dXMnXSA9ICdzdWNjZXNzJzsKICAgIGVjaG8ganNvbl9lbmNvZGUoJHJlcyk7CiAgfQpleGl0KCk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/CGGoogleMaps.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoKJGNnZXh0ZW5zaW9ucyA9IGNtc19qb2luX3BhdGgoJGdDbXMtPmNvbmZpZ1sncm9vdF9wYXRoJ10sJ21vZHVsZXMnLAoJCQkgICAgICAnQ0dFeHRlbnNpb25zJywnQ0dFeHRlbnNpb25zLm1vZHVsZS5waHAnKTsKaWYoICFpc19yZWFkYWJsZSggJGNnZXh0ZW5zaW9ucyApICkKewogIGVjaG8gJzxoMT48Zm9udCBjb2xvcj0icmVkIj5FUlJPUjogVGhlIENHRXh0ZW5zaW9ucyBtb2R1bGUgY291bGQgbm90IGJlIGZvdW5kLjwvZm9udD48L2gxPic7CiAgcmV0dXJuOwp9CnJlcXVpcmVfb25jZSgkY2dleHRlbnNpb25zKTsKCmRlZmluZSgnQ0dHTV9QUkVGX05FV01BUF9URU1QTEFURScsJ2NnZ21fcHJlZl9uZXdtYXBfdGVtcGxhdGUnKTsKZGVmaW5lKCdDR0dNX1BSRUZfREZMVE1BUF9URU1QTEFURScsJ2NnZ21fcHJlZl9kZmx0bWFwX3RlbXBsYXRlJyk7CgovKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogY2dnbV9hZGRfZHlucG9pbnQoKQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KZnVuY3Rpb24gY2dnbV9hZGRfZHlucG9pbnQoJHBhcmFtcywgJiRzbWFydHkpCnsKICAkbWFwID0gJyc7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ21hcCddKSApCiAgICB7CiAgICAgICRtYXAgPSAkcGFyYW1zWydtYXAnXTsKICAgIH0KICBlbHNlCiAgIHsKICAgICAgZ2xvYmFsICRnQ21zOwogICAgICAkbW9kID0mICRnQ21zLT5tb2R1bGVzWydDR0dvb2dsZU1hcHMnXVsnb2JqZWN0J107CiAgICAgICRtYXAgPSAkbW9kLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X21hcCcsMCk7CiAgIH0KICAKICBpZiggIWlzc2V0KCRwYXJhbXNbJ25hbWUnXSkgKQogICAgewogICAgICAvLyBuYW1lIGlzIHJlcXVpcmVkCiAgICAgIHJldHVybjsgCiAgICB9CiAgJG5hbWUgPSAkcGFyYW1zWyduYW1lJ107CiAgCiAgJGRlc2NyaXB0aW9uID0gJyc7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Rlc2MnXSkgKQogICAgewogICAgICAkZGVzY3JpcHRpb24gPSAkcGFyYW1zWydkZXNjJ107CiAgICB9CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ2Rlc2NyaXB0aW9uJ10pICkKICAgIHsKICAgICAgJGRlc2NyaXB0aW9uID0gJHBhcmFtc1snZGVzY3JpcHRpb24nXTsKICAgIH0KICAKICAkYWRkcmVzcyA9ICcnOwogIGlmKCBpc3NldCgkcGFyYW1zWydhZGRyZXNzJ10pICkKICAgIHsKICAgICAgJGFkZHJlc3MgPSAkcGFyYW1zWydhZGRyZXNzJ107CiAgICB9CiAgCiAgJGxhdCA9ICcnOwogIGlmKCBpc3NldCgkcGFyYW1zWydsYXQnXSkgKQogICAgewogICAgICAkbGF0ID0gJHBhcmFtc1snbGF0J107CiAgICB9CiAgCiAgJGxvbmcgPSAnJzsKICBpZiggaXNzZXQoJHBhcmFtc1snbG9uZyddKSApCiAgICB7CiAgICAgICRsb25nID0gJHBhcmFtc1snbG9uZyddOwogICAgfQoKICAkaWNvbiA9ICcnOwogIGlmKCBpc3NldCgkcGFyYW1zWydpY29uJ10pICkKICAgIHsKICAgICAgJGljb24gPSAkcGFyYW1zWydpY29uJ107CiAgICB9CgogICR0b29sdGlwID0gJyc7CiAgaWYoIGlzc2V0KCRwYXJhbXNbJ3Rvb2x0aXAnXSkgKQogICAgewogICAgICAkdG9vbHRpcCA9ICRwYXJhbXNbJ3Rvb2x0aXAnXTsKICAgIH0KCiAgJHNpZGViYXJfY2xhc3MgPSAnJzsKICBpZiggaXNzZXQoJHBhcmFtc1snc2lkZWJhcl9jbGFzcyddKSApCiAgICB7CiAgICAgICRzaWRlYmFyX2NsYXNzID0gJHBhcmFtc1snc2lkZWJhcl9jbGFzcyddOwogICAgfQoKICBnbG9iYWwgJGdDbXM7CiAgJG1vZCA9JiAkZ0Ntcy0+bW9kdWxlc1snQ0dHb29nbGVNYXBzJ11bJ29iamVjdCddOwogICRtb2QtPkFkZER5bmFtaWNQb2ludCgkbWFwLCRuYW1lLCRkZXNjcmlwdGlvbiwKCQkJJGFkZHJlc3MsJGxhdCwkbG9uZywkaWNvbiwkdG9vbHRpcCwkc2lkZWJhcl9jbGFzcyk7Cn0KCgovKiAtLS0tIEJlZ2luIENsYXNzIC0tLSAqLwpjbGFzcyBDR0dvb2dsZU1hcHMgZXh0ZW5kcyBDR0V4dGVuc2lvbnMKewogIHZhciAkX2R5bmFtaWNfcG9pbnRzOwoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBDR0dvb2dsZU1hcHMoKSAtLSBDb25zdHJ1Y3RvcgogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIENHR29vZ2xlTWFwcygpCiAgewogICAgcGFyZW50OjpDTVNNb2R1bGUoKTsKICAgICR0aGlzLT5fZHluYW1pY19wb2ludHMgPSBudWxsOwogICAgJHRoaXMtPkFkZEltYWdlRGlyKCdpY29ucycpOwoKICAgIGdsb2JhbCAkZ0NtczsKICAgICRzbWFydHkgPSYgJGdDbXMtPkdldFNtYXJ0eSgpOwogICAgJHNtYXJ0eS0+cmVnaXN0ZXJfZnVuY3Rpb24oJ2NnZ21fYWRkX2R5bnBvaW50JywnY2dnbV9hZGRfZHlucG9pbnQnKTsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldE5hbWUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldE5hbWUoKQogIHsKICAgIHJldHVybiAnQ0dHb29nbGVNYXBzJzsKICB9CgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEZyaWVuZGx5TmFtZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0RnJpZW5kbHlOYW1lKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpOwogIH0KCgkKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRWZXJzaW9uKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRWZXJzaW9uKCkKICB7CiAgICByZXR1cm4gJzEuNS42JzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRIZWxwKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRIZWxwKCkKICB7CiAgICByZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3IoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEF1dGhvcigpCiAgewogICAgcmV0dXJuICdjYWxndXkxMDAwJzsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRBdXRob3JFbWFpbCgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKQogIHsKICAgIHJldHVybiAnY2FsZ3V5MTAwMEBob3RtYWlsLmNvbSc7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0Q2hhbmdlTG9nKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRDaGFuZ2VMb2coKQogIHsKICAgIHJldHVybiBmaWxlX2dldF9jb250ZW50cyhkaXJuYW1lKF9fRklMRV9fKS4nL2NoYW5nZWxvZy5pbmMnKTsKICB9CiAgCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgSXNQbHVnaW5Nb2R1bGUoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIElzUGx1Z2luTW9kdWxlKCkKICB7CiAgICByZXR1cm4gdHJ1ZTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBIYXNBZG1pbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gSGFzQWRtaW4oKQogIHsKICAgIHJldHVybiB0cnVlOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEFkbWluU2VjdGlvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCkKICB7CiAgICByZXR1cm4gJ2V4dGVuc2lvbnMnOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEdldEFkbWluRGVzY3JpcHRpb24oKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEdldEFkbWluRGVzY3JpcHRpb24oKQogIHsKICAgIHJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRIZWFkZXJIVE1MKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXRIZWFkZXJIVE1MKCkKICB7CiAgICAkb2JqID0mICR0aGlzLT5HZXRNb2R1bGVJbnN0YW5jZSgnSlF1ZXJ5VG9vbHMnKTsKICAgIGlmKCBpc19vYmplY3QoJG9iaikgKQogICAgICB7CiR0bXBsID0gPDw8RU9UCntKUXVlcnlUb29scyBhY3Rpb249J2luY2pzJyBleGNsdWRlPSdmb3JtJ30Ke0pRdWVyeVRvb2xzIGFjdGlvbj0ncmVhZHknfQpFT1Q7CiAgICAgICAgcmV0dXJuICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdG1wbCk7CiAgICAgIH0KICB9CQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVmlzaWJsZVRvQWRtaW5Vc2VyKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBWaXNpYmxlVG9BZG1pblVzZXIoKQogIHsKICAgIHJldHVybiAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwcycpIHx8CiAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBUZW1wbGF0ZXMnKSB8fAogICAgICAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwIExvY2F0aW9ucycpIHx8CiAgICAgICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBTaXRlIFByZWZlcmVuY2VzJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgR2V0RGVwZW5kZW5jaWVzKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKQogIHsKICAgIHJldHVybiBhcnJheSgnQ0dFeHRlbnNpb25zJz0+JzEuMTkuNCcsCgkJICdDR1NpbXBsZVNtYXJ0eSc9PicxLjQnKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBNaW5pbXVtQ01TVmVyc2lvbigpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKQogIHsKICAgIHJldHVybiAiMS44LjEiOwogIH0KCQoJCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgU2V0UGFyYW1ldGVycygpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gU2V0UGFyYW1ldGVycygpCiAgewogICAgJHRoaXMtPlJlZ2lzdGVyTW9kdWxlUGx1Z2luKCk7CiAgICAkdGhpcy0+UmVzdHJpY3RVbmtub3duUGFyYW1zKCk7CgogICAgJHRoaXMtPkNyZWF0ZVBhcmFtZXRlcignbWFwJywnJywkdGhpcy0+TGFuZygnaGVscF9wYXJhbV9tYXAnKSk7CiAgICAkdGhpcy0+U2V0UGFyYW1ldGVyVHlwZSgnbWFwJyxDTEVBTl9TVFJJTkcpOwogICAgCiAgICAkdGhpcy0+Q3JlYXRlUGFyYW1ldGVyKCdkZWZlcicsJzAnLCR0aGlzLT5MYW5nKCdoZWxwX3BhcmFtX2RlZmVyJykpOwogICAgJHRoaXMtPlNldFBhcmFtZXRlclR5cGUoJ2RlZmVyJyxDTEVBTl9JTlQpOwoKICAgICR0aGlzLT5DcmVhdGVQYXJhbWV0ZXIoJ21hcHRlbXBsYXRlJywnJywkdGhpcy0+TGFuZygnaGVscF9wYXJhbV9tYXB0ZW1wbGF0ZScpKTsKICAgICR0aGlzLT5TZXRQYXJhbWV0ZXJUeXBlKCdtYXB0ZW1wbGF0ZScsQ0xFQU5fU1RSSU5HKTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBJbnN0YWxsUG9zdE1lc3NhZ2UoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwogIH0KCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIFVuaW5zdGFsbFBvc3RNZXNzYWdlKCkKICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KICBmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0dW5pbnN0YWxsJyk7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgVW5pbnN0YWxsUHJlTWVzc2FnZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gVW5pbnN0YWxsUHJlTWVzc2FnZSgpCiAgewogICAgcmV0dXJuICR0aGlzLT5MYW5nKCdyZWFsbHlfdW5pbnN0YWxsJyk7CiAgfQkKCgogIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgIEFsbG93QXV0b0luc3RhbGwoKQogICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwogIGZ1bmN0aW9uIEFsbG93QXV0b0luc3RhbGwoKSB7CiAgICByZXR1cm4gRkFMU0U7CiAgfQoKCiAgLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgQWxsb3dBdXRvVXBncmFkZSgpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gQWxsb3dBdXRvVXBncmFkZSgpIHsKICAgIHJldHVybiBGQUxTRTsKICB9CgoKICAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICBHZXRDb29yZHNGcm9tQWRkcmVzcygpCiAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCiAgZnVuY3Rpb24gR2V0Q29vcmRzRnJvbUFkZHJlc3MoJGFkZHJlc3MpCiAgewogICAgcmVxdWlyZV9vbmNlKCdsaWIvR29vZ2xlTWFwQVBJLTIuNC9Hb29nbGVNYXBBUEkuY2xhc3MucGhwJyk7CgogICAgZ2xvYmFsICRnQ21zOwogICAgJG1hcCA9ICcnOwogICAgaWYoICFpc3NldCgkZ0Ntcy0+dmFyaWFibGVzWydjZ2dtX2dlb2NvZGVfbWFwJ10pICkKICAgICAgewoJJGdDbXMtPnZhcmlhYmxlc1snY2dnbV9nZW9jb2RlX21hcCddID0gbmV3IEdvb2dsZU1hcEFQSSgnY2dnbV9nZW9jb2RlX21hcCcsJHRoaXMtPkdldE5hbWUoKSk7CiAgICAgIH0KCiAgICAkbWFwID0mICRnQ21zLT52YXJpYWJsZXNbJ2NnZ21fZ2VvY29kZV9tYXAnXTsKCiAgICAkcmVzID0gJG1hcC0+Z2VvR2V0Q29vcmRzKCRhZGRyZXNzKTsKICAgIHJldHVybiAkcmVzOwogIH0KCgogIC8vIGdldEJvdW5kaW5nQm94CiAgLy8gaGFja2VkIG91dCBieSBiZW4gYnJvd24gPGJlbkB4b3hjby5jb20+CiAgLy8gaHR0cDovL3hveGNvLmNvbS9jbGlja2FibGUvcGhwLWdldGJvdW5kaW5nYm94CiAgLy8gZ2l2ZW4gYSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIGluIGRlZ3JlZXMgKDQwLjEyMzEyMywtNzIuMjM0MjM0KSBhbmQgYSBkaXN0YW5jZSBpbiBtaWxlcwogIC8vIGNhbGN1bGF0ZXMgYSBib3VuZGluZyBib3ggd2l0aCBjb3JuZXJzICRkaXN0YW5jZV9pbl9taWxlcyBhd2F5IGZyb20gdGhlIHBvaW50IHNwZWNpZmllZC4KICAvLyByZXR1cm5zICRtaW5fbGF0LCRtYXhfbGF0LCRtaW5fbG9uLCRtYXhfbG9uIAogIGZ1bmN0aW9uIEdldEJvdW5kaW5nQm94KCRsYXRfZGVncmVlcywkbG9uX2RlZ3JlZXMsJGRpc3RhbmNlX2luX21pbGVzKSAKICB7CgkKICAgICRyYWRpdXMgPSAzOTYzLjE7IC8vIG9mIGVhcnRoIGluIG1pbGVzCgkKICAgIC8vIGJlYXJpbmdzCQogICAgJGR1ZV9ub3J0aCA9IDA7CiAgICAkZHVlX3NvdXRoID0gMTgwOwogICAgJGR1ZV9lYXN0ID0gOTA7CiAgICAkZHVlX3dlc3QgPSAyNzA7CgkKICAgIC8vIGNvbnZlcnQgbGF0aXR1ZGUgYW5kIGxvbmdpdHVkZSBpbnRvIHJhZGlhbnMgCiAgICAkbGF0X3IgPSBkZWcycmFkKCRsYXRfZGVncmVlcyk7CiAgICAkbG9uX3IgPSBkZWcycmFkKCRsb25fZGVncmVlcyk7CgkJCQogICAgLy8gZmluZCB0aGUgbm9ydGhtb3N0LCBzb3V0aG1vc3QsIGVhc3Rtb3N0IGFuZCB3ZXN0bW9zdCBjb3JuZXJzICRkaXN0YW5jZV9pbl9taWxlcyBhd2F5CiAgICAvLyBvcmlnaW5hbCBmb3JtdWxhIGZyb20KICAgIC8vIGh0dHA6Ly93d3cubW92YWJsZS10eXBlLmNvLnVrL3NjcmlwdHMvbGF0bG9uZy5odG1sCgkKICAgICRub3J0aG1vc3QgID0gYXNpbihzaW4oJGxhdF9yKSAqIGNvcygkZGlzdGFuY2VfaW5fbWlsZXMvJHJhZGl1cykgKyBjb3MoJGxhdF9yKSAqIHNpbiAoJGRpc3RhbmNlX2luX21pbGVzLyRyYWRpdXMpICogY29zKCRkdWVfbm9ydGgpKTsKICAgICRzb3V0aG1vc3QgID0gYXNpbihzaW4oJGxhdF9yKSAqIGNvcygkZGlzdGFuY2VfaW5fbWlsZXMvJHJhZGl1cykgKyBjb3MoJGxhdF9yKSAqIHNpbiAoJGRpc3RhbmNlX2luX21pbGVzLyRyYWRpdXMpICogY29zKCRkdWVfc291dGgpKTsKCQkKICAgICRlYXN0bW9zdCA9ICRsb25fciArIGF0YW4yKHNpbigkZHVlX2Vhc3QpKnNpbigkZGlzdGFuY2VfaW5fbWlsZXMvJHJhZGl1cykqY29zKCRsYXRfciksY29zKCRkaXN0YW5jZV9pbl9taWxlcy8kcmFkaXVzKS1zaW4oJGxhdF9yKSpzaW4oJGxhdF9yKSk7CiAgICAkd2VzdG1vc3QgPSAkbG9uX3IgKyBhdGFuMihzaW4oJGR1ZV93ZXN0KSpzaW4oJGRpc3RhbmNlX2luX21pbGVzLyRyYWRpdXMpKmNvcygkbGF0X3IpLGNvcygkZGlzdGFuY2VfaW5fbWlsZXMvJHJhZGl1cyktc2luKCRsYXRfcikqc2luKCRsYXRfcikpOwoJCQkKCQkJCiAgICAkbm9ydGhtb3N0ID0gcmFkMmRlZygkbm9ydGhtb3N0KTsKICAgICRzb3V0aG1vc3QgPSByYWQyZGVnKCRzb3V0aG1vc3QpOwogICAgJGVhc3Rtb3N0ID0gcmFkMmRlZygkZWFzdG1vc3QpOwogICAgJHdlc3Rtb3N0ID0gcmFkMmRlZygkd2VzdG1vc3QpOwoJCQkKICAgIC8vIHNvcnQgdGhlIGxhdCBhbmQgbG9uZyBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBmb3IgYSBiZXR3ZWVuIHF1ZXJ5CQkKICAgIGlmICgkbm9ydGhtb3N0ID4gJHNvdXRobW9zdCkgeyAKICAgICAgJGxhdDEgPSAkc291dGhtb3N0OwogICAgICAkbGF0MiA9ICRub3J0aG1vc3Q7CgkJCiAgICB9IGVsc2UgewogICAgICAkbGF0MSA9ICRub3J0aG1vc3Q7CiAgICAgICRsYXQyID0gJHNvdXRobW9zdDsKICAgIH0KCQoJCiAgICBpZiAoJGVhc3Rtb3N0ID4gJHdlc3Rtb3N0KSB7IAogICAgICAkbG9uMSA9ICR3ZXN0bW9zdDsKICAgICAgJGxvbjIgPSAkZWFzdG1vc3Q7CgkJCiAgICB9IGVsc2UgewogICAgICAkbG9uMSA9ICRlYXN0bW9zdDsKICAgICAgJGxvbjIgPSAkd2VzdG1vc3Q7CiAgICB9CgkJCiAgICByZXR1cm4gYXJyYXkoJGxhdDEsJGxhdDIsJGxvbjEsJGxvbjIpOwogIH0KCmZ1bmN0aW9uIEFkZER5bmFtaWNQb2ludCgkbWFwLCRuYW1lLCRkZXNjcmlwdGlvbiwkYWRkcmVzcz0nJywkbGF0PScnLCRsb25nPScnLCRpY29uPScnLCR0b29sdGlwID0gJycsJHNpZGViYXJfY2xhc3MgPSAnJykKICB7CiAgICBpZiggZW1wdHkoJG1hcCkgKSByZXR1cm4gRkFMU0U7CiAgICBpZiggZW1wdHkoJG5hbWUpICkgcmV0dXJuIEZBTFNFOwogICAgaWYoIGVtcHR5KCRhZGRyZXNzKSAmJiAoZW1wdHkoJGxhdCkgfHwgZW1wdHkoJGxvbmcpKSApIHJldHVybiBGQUxTRTsKCiAgICBpZiggIWlzX2FycmF5KCR0aGlzLT5fZHluYW1pY19wb2ludHMpICkKICAgICAgewoJJHRoaXMtPl9keW5hbWljX3BvaW50cyA9IGFycmF5KCk7CiAgICAgIH0KICAgIGlmKCAhaXNzZXQoJHRoaXMtPl9keW5hbWljX3BvaW50c1skbWFwXSkgKQogICAgICB7CgkkdGhpcy0+X2R5bmFtaWNfcG9pbnRzWyRtYXBdID0gYXJyYXkoKTsKICAgICAgfQoKICAgIC8vIGV2ZXJ5dGhpbmcgaXMgZ29vZCB0byBnbywgYnVpbGQgdGhlIHBvaW50IG9iamVjdC4KICAgICRvYmogPSBuZXcgU3RkQ2xhc3M7CiAgICAkb2JqLT5uYW1lID0gJG5hbWU7CiAgICAkb2JqLT5kZXNjcmlwdGlvbiA9ICRkZXNjcmlwdGlvbjsKICAgICRvYmotPmljb24gPSAkaWNvbjsKICAgICRvYmotPnRvb2x0aXAgPSAkdG9vbHRpcDsKICAgICRvYmotPnNpZGViYXJfY2xhc3MgPSAkc2lkZWJhcl9jbGFzczsKICAgIGlmKCAhZW1wdHkoJGFkZHJlc3MpICkKICAgICAgewoJJG9iai0+YWRkcmVzcyA9ICRhZGRyZXNzOwogICAgICB9CiAgICBlbHNlIGlmKCAhZW1wdHkoJGxhdCkgJiYgIWVtcHR5KCRsb25nKSApCiAgICAgIHsKCSRvYmotPmxhdCA9ICRsYXQ7Cgkkb2JqLT5sb25nID0gJGxvbmc7CiAgICAgIH0KICAgIGVsc2UKICAgICAgewoJcmV0dXJuIEZBTFNFOwogICAgICB9CgogICAgLy8gYWRkIHRoZSBwb2ludCB0byB0aGUgbGlzdAogICAgJHRoaXMtPl9keW5hbWljX3BvaW50c1skbWFwXVtdID0gJG9iajsKICB9CgoKfSAvLyBjbGFzcwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/chanelog.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHVsPgo8bGk+MS4wIC0gRGVjZW1iZXIsIDIwMDcKICA8cD5Jbml0aWFsIFJlbGVhc2U8L3A+PC9saT4KPGxpPjEuMSAtIEp1bHksIDIwMDgKICA8cD5BZGRlZCB0aGUge2NnZ21fYWRkX2R5bnBvaW50fSBzbWFydHkgcGx1Z2luIHRvIGFsbG93IGFkZGluZyBwb2ludHMgdG8gdGhlIG1hcCBkeW5hbWljYWxseSB3aXRoaW4gc21hcnR5LjwvcD48L3VsPgo8L2xpPgo8bGk+MS4yIC0gRmVicnVhcnksIDIwMDkKICA8cD5BZGQgdGhlIGFiaWxpdHkgdG8gY3VzdG9taXplIG1hcmtlciBpY29ucy48L3A+CjwvbGk+CjxsaT4xLjMgLSBBcHJpbCwgMjAwOQogIDxwPkFkZCB0aGUgYWJpbGl0eSB0byBjdXN0b21pemUgbWFwIHRlbXBsYXRlcy48L3A+CjwvbGk+CjxsaT4xLjMuMSAtIEFwcmlsLCAyMDA5CiAgPHA+Rml4IHByb2JsZW0gd2l0aCBkZWZhdWx0IGljb25zLjwvcD4KICA8cD5GaXggcHJvYmxlbSB3aXRoIGludmFsaWQgYWRkcmVzc2VzLjwvcD4KPC9saT4KPGxpPjEuMy4yIC0gQXByaWwsIDIwMDkKICA8cD5GaXggcHJvYmxlbSB3aXRoIG9iamVjdCByZWZlcmVuY2UgaW4gdGhlIHdyb25nIHNwb3QuPC9wPgo8L2xpPgo8bGk+MS4zLjMgLSBBcHJpbCwgMjAwOQogIDxwPk5vdyBhYm9ydCBzaG93aW5nIHRoZSBtYXAgaWYgdGhlcmUgYXJlIG5vIHZhbGlkIHBvaW50cy48L3A+CjwvbGk+CjxsaT4xLjQgLSBKdWx5LCAyMDA5CiAgPHA+QWRkIGFiaWxpdHkgdG8gZG8gZ2VvbG9va3VwIGZ1bmN0aW9uYWxpdHkgdXNpbmcgdGhlIHBvc3Rjb2RlIG1vZHVsZS48L3A+CjwvbGk+CjxsaT4xLjQuMSAtIE9jdG9iZXIsIDIwMDkKICA8cD5BZGRzIGRlZmVyIHBhcmFtZXRlci48L3A+CiAgPHA+QnVtcHMgZ29vZ2xlIG1hcCBhcGkgdmVyc2lvbiBudW1iZXIgZnJvbSAyIHRvIDIuMTE4PC9wPgo8L2xpPgo8bGk+MS40LjIgLSBTZXB0ZW1iZXIsIDIwMTAKICA8cD5Ob3cgcmVxdWlyZXMgQ0dFeHRlbnNpb25zIDEuMTkuNAogIDxwPkZpeGVzIHByb2JsZW1zIHdpdGggamF2YXNjcmlwdC48L3A+CiAgPHA+TWlub3Igb3B0aW1pemF0aW9ucyB0byBtYXAgcG9pbnRzLCBhbmQgaWNvbnMuPC9wPgo8L2xpPgo8bGk+MS41LjYgLSBTZXB0ZW1iZXIsIDIwMTAKICA8dWw+CiAgICA8bGk+UmV3b3JrIG9mIHRoZSBqYXZhc2NyaXB0IHN0dWZmIGZvciBpY29uIGhhbmRsaW5nLjwvbGk+CiAgICA8bGk+QWRkcyB0aGUgYWJpbGl0eSB0byBjb21iaW5lIG11bHRpcGxlIG5lYXJieSBwb2ludHMgaW50byBvbmUgbWFya2VyIHdpdGggdGFiYmVkIGluZm8gd2luZG93LjwvbGk+CiAgICA8bGk+RW5haGNuZW1lbnRzIHRvIHNpZGViYXIgZnVuY3Rpb25hbGl0eS48L2xpPgogICAgPGxpPkFkZHMgdG9vbHRpcCBzdXBwb3J0LjwvbGk+CiAgICA8bGk+VmFyaW91cyBidWcgZml4ZXMuPC9saT4KPC9saT4KPC91bD4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_default_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKCmVjaG8gJHRoaXMtPkdldERlZmF1bHRUZW1wbGF0ZUZvcm0oJHRoaXMsJGlkLCRyZXR1cm5pZCwKCQkJCSAgIENHR01fUFJFRl9ORVdNQVBfVEVNUExBVEUsCgkJCQkgICAnZGVmYXVsdGFkbWluJywnZGVmYXVsdF90ZW1wbGF0ZXMnLAoJCQkJICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF9tYXBfdGVtcGxhdGUnKSwKCQkJCSAgICdvcmlnX21hcF90ZW1wbGF0ZS50cGwnLAoJCQkJICAgJHRoaXMtPkxhbmcoJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZScpKTsKCi8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_icons_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgokcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnZ29vZ2xlbWFwc19pY29ucwogICAgICAgICAgICBPUkRFUiBCWSBuYW1lIEFTQyc7CiRkYXRhID0gJGRiLT5HZXRBcnJheSgkcXVlcnkpOwoKJGRlZmF1bHRfaWNvbiA9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWZhdWx0X21hcmtlcicpOwoKZm9yKCAkaSA9IDA7ICRpIDwgY291bnQoJGRhdGEpOyAkaSsrICkKICB7CiAgICBpZiggJGRhdGFbJGldWyduYW1lJ10gIT0gJGRlZmF1bHRfaWNvbiApCiAgICAgIHsKCSRkYXRhWyRpXVsnZGVmYXVsdF91cmwnXSA9ICR0aGlzLT5DcmVhdGVVUkwoJGlkLCdhZG1pbl9tYWtlaWNvbmRlZmF1bHQnLAoJCQkJCQkgICAgJHJldHVybmlkLAoJCQkJCQkgICAgYXJyYXkoJ2ljb24nPT4kZGF0YVskaV1bJ2lkJ10pKTsKICAgICAgfQogICAgJGRhdGFbJGldWydkZWxldGVfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnYWRtaW5fZGVsZXRlX2ljb24nLAoJCQkJCSAgICAgICAkcmV0dXJuaWQsCgkJCQkJICAgICAgIGFycmF5KCdpY29uJz0+JGRhdGFbJGldWydpZCddKSk7CiAgICAkZGF0YVskaV1bJ2VkaXRfdXJsJ10gPSAkdGhpcy0+Q3JlYXRlVVJMKCRpZCwnYWRtaW5fZWRpdF9pY29uJywKCQkJCQkgICAgICAgJHJldHVybmlkLAoJCQkJCSAgICAgICBhcnJheSgnaWNvbic9PiRkYXRhWyRpXVsnaWQnXSkpOwogIH0KCiRzbWFydHktPmFzc2lnbignaWNvbnMnLCRkYXRhKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnYWRtaW5faWNvbnNfdGFiLnRwbCcpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_maps_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJykpOwogICAgcmV0dXJuOwogIH0KCiRtYXBsaXN0ID0gYXJyYXkoKTsKJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHMnOwokZGJyID0gJGRiLT5FeGVjdXRlKCAkcXVlcnkgKTsKJGRmbHRfbWFwID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfbWFwJywwKTsKd2hpbGUoICRkYnIgJiYgKCRyb3cgPSAkZGJyLT5GZXRjaFJvdygpICkgKQogIHsKICAgICRvYmogPSBjZ2VfYXJyYXk6OnRvX29iamVjdCgkcm93KTsKICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwcycpICkKICAgICAgewoJaWYoICRvYmotPm1hcF9pZCAhPSAkZGZsdF9tYXAgKQoJICB7CgkgICAgJG9iai0+ZGVsZXRlX2xpbmsgPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZGVsZXRlbWFwJywkcmV0dXJuaWQsCgkJCQkJCSAgICAgICAkdGhpcy0+TGFuZygnZGVsZXRlX21hcCcpLAoJCQkJCQkgICAgICAgJ2ljb25zL3N5c3RlbS9kZWxldGUuZ2lmJywKCQkJCQkJICAgICAgIGFycmF5KCdtYXBfaWQnPT4kb2JqLT5tYXBfaWQpKTsKCSAgfQoJZWxzZQoJICB7CgkgICAgJG9iai0+ZGVsZXRlX2xpbmsgPSAnJm5ic3A7JzsKCSAgfQoJJG9iai0+ZWRpdF9saW5rID0gJHRoaXMtPkNyZWF0ZUltYWdlTGluaygkaWQsJ2FkbWluX2FkZF9tYXAnLCRyZXR1cm5pZCwKCQkJCQkJICR0aGlzLT5MYW5nKCdlZGl0X21hcCcpLAoJCQkJCQkgJ2ljb25zL3N5c3RlbS9lZGl0LmdpZicsCgkJCQkJCSBhcnJheSgnbWFwX2lkJz0+JG9iai0+bWFwX2lkKSk7CgkKCWlmKCAkb2JqLT5tYXBfaWQgIT0gJGRmbHRfbWFwICkKCSAgewoJICAgICRvYmotPmRlZmF1bHRfbGluayA9ICR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9zZXRkZmx0bWFwJywkcmV0dXJuaWQsCgkJCQkJCQkkdGhpcy0+TGFuZygnc2V0X2RmbHRfbWFwJyksCgkJCQkJCQknaWNvbnMvc3lzdGVtL2ZhbHNlLmdpZicsCgkJCQkJCQlhcnJheSgnbWFwX2lkJz0+JG9iai0+bWFwX2lkKSk7CgkgIH0KCWVsc2UKCSAgewoJICAgICRvYmotPmRlZmF1bHRfbGluayA9ICR0aGlzLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJ3N5c3RlbWljb24nKTsKCSAgfQogICAgICB9CiAgICAKICAgIGlmKCAkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwIExvY2F0aW9ucycpICkKICAgICAgewoJJG9iai0+cG9pbnRzX2xpbmsgPSAkdGhpcy0+Q3JlYXRlSW1hZ2VMaW5rKCRpZCwnYWRtaW5fZWRpdG1hcHBvaW50cycsCgkJCQkJCSAgICRyZXR1cm5pZCwKCQkJCQkJICAgJHRoaXMtPkxhbmcoJ2VkaXRfbWFwX3BvaW50cycpLAoJCQkJCQkgICAnZGQtZW5kLXNtYWxsLnBuZycsCgkJCQkJCSAgIGFycmF5KCdtYXBfaWQnPT4kb2JqLT5tYXBfaWQpKTsKICAgICAgfQoKICAgICRtYXBsaXN0W10gPSAkb2JqOwogIH0KCiRzbWFydHktPmFzc2lnbignaWR0ZXh0JywkdGhpcy0+TGFuZygnaWQnKSk7CiRzbWFydHktPmFzc2lnbignbmFtZXRleHQnLCR0aGlzLT5MYW5nKCduYW1lJykpOwokc21hcnR5LT5hc3NpZ24oJ2RlZmF1bHR0ZXh0JywkdGhpcy0+TGFuZygnZGVmYXVsdCcpKTsKJHNtYXJ0eS0+YXNzaWduKCdtYXBsaXN0JywkbWFwbGlzdCk7CiRzbWFydHktPmFzc2lnbignYWRkX2xpbmsnLAoJCSR0aGlzLT5DcmVhdGVJbWFnZUxpbmsoJGlkLCdhZG1pbl9hZGRfbWFwJywkcmV0dXJuaWQsCgkJCQkgICAgICAgJHRoaXMtPkxhbmcoJ2FkZF9tYXAnKSwKCQkJCSAgICAgICAnaWNvbnMvc3lzdGVtL25ld29iamVjdC5naWYnLAoJCQkJICAgICAgIGFycmF5KCksJycsJycsZmFsc2UpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnbWFwc190YWIudHBsJyk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/function.admin_map_templates_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgplY2hvICR0aGlzLT5TaG93VGVtcGxhdGVMaXN0KCRpZCwkcmV0dXJuaWQsJ21hcF8nLAoJCQkgICAgIENHR01fUFJFRl9ORVdNQVBfVEVNUExBVEUsCgkJCSAgICAgJ21hcF90ZW1wbGF0ZXMnLAoJCQkgICAgIENHR01fUFJFRl9ERkxUTUFQX1RFTVBMQVRFLAoJCQkgICAgICR0aGlzLT5MYW5nKCdtYXB0ZW1wbGF0ZV9hZGRlZGl0JykpOwoKLy8gRU9GCj8+]]></data>
	</file>
	<file>
	  <filename>/function.admin_points_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNYW5hZ2UgTWFwIExvY2F0aW9ucycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJykpOwogICAgcmV0dXJuOwogIH0KCmVjaG8gJ1BPSU5UUyBUQUInOwovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_prefs_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmKCAhaXNzZXQoJGdDbXMpICkgZXhpdDsKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgU2l0ZSBQcmVmZXJlbmNlcycpICkKICB7CiAgICBlY2hvICR0aGlzLT5TaG93RXJyb3JzKCR0aGlzLT5MYW5nKCdlcnJvcl9wZXJtaXNzaW9uZGVuaWVkJykpOwogICAgcmV0dXJuOwogIH0KCiRzbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkkdGhpcy0+Q0dDcmVhdGVGb3JtU3RhcnQoJGlkLCdhZG1pbl9zYXZlcHJlZnMnLCRyZXR1cm5pZCkpOwokc21hcnR5LT5hc3NpZ24oJ2Zvcm1lbmQnLCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwokc21hcnR5LT5hc3NpZ24oJ3Byb21wdF9hcGlrZXknLCR0aGlzLT5MYW5nKCdnb29nbGVfYXBpX2tleScpKTsKJHNtYXJ0eS0+YXNzaWduKCdpbnB1dF9hcGlrZXknLCR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCdnb29nbGVfYXBpa2V5JywKCQkJCQkJICAgICAgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2dvb2dsZV9hcGlrZXknLCcnKSwxMDAsMTAyNCkpOwokc21hcnR5LT5hc3NpZ24oJ3N1Ym1pdCcsJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwnc3VibWl0JywkdGhpcy0+TGFuZygnc3VibWl0JykpKTsKCmVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgncHJlZnNfdGFiLnBocCcpOwovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/icons/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/icons/airport.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIVSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOYwcUzgSGvg4FBw4iBbHDjHAPDpAoGhm9fCgACiBnIXcFQ3CdAkYEgICLJwKCszcBwZJsGQAAxAbkKFBsIAxBzFAACiImBBgAggIg3tCMb6LWtRCkFCCDiDb1xnoHhzQuilAIEEE28DxBALARVvHnOwLBhLoQN8r6IBAODjTdeLQABxAhOuAuOYU93IMNA3sZIPkCDA5KxG55gxQAQQJiGPrrFwLBsInbDsBnuFg7BSIYCBBCm92GRoWGIGVEgQ0CJHD140ABAAGEaamQHwVi8BfYuyNsEAEAA0ST2AQKIJoYCBBATUaUPyOsgAEoNoJxFAAAEEAtRpQ9yOIIiiwAACCDSDSUCAAQQyPsPwF6kBoCY8wAggJjBnHOHPMAFLHoaJKfk//2rASCAGJHqqAJwgQ0C2LItDOxaCclxmOABEE8A4okAAQSLfZAqRWhZcAHocuwGfvsMK1wcoGqRsSLUHAaAAMKWpDbgNHROC6hiWwBkHcQXEgABRLyhILFzhz9AgwkvAAggbIZeBLrmAbi0Qvb2sgngEgCIPxIyFCCAcOWoDcCqFok3F1R6HQCyNhKTEAACCJehB+BBAEoqu1Z9gLqSKAAQQPjQe4aetf8Z5FT/w5ozxAKAAMKH5gPzOcjA86RqBAggfCge2vDSJ1UjQADhQ/zkehsgwABr05OG1Tv8eAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/bank.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJWSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcXDMaGgLYJB01CBgVxw/fwDhglVKxi+fflRABBAzED+itKeGAFKDAQBUUkBBhVtGYbD2y9oAAQQE5CvQKmBMAA1RwEggJgYaAAAAogoQ18//8Cwbt4BME0MAAggFkIKDm27wLB08g4GYGQy7Fx9giE614PBzssArx6AACLoUpCBVZMSGGw9DcA0yGBCACCAiPI+yJUgIK8qwdA6P4OgeoAAImgoyLs1STMYzh6+AcbEAIAAImgoKPxa5mUwiEgIMOxYdYKhOnEGQUMBAoiJmJgHJWyQ16snJ4DFHt5+gVcPQADhNRSkGeT1r59/wMWA2ZCgSwECCG+SArlOTkWCoS1vATiyWnMXgIMBJI4PAAQQQe+DvOweagFmg5IVLAjwAYAAYiEmNkGRBQpXYssIgABiIrGwIAoABBBNChSAAAIZ+gBUwFIDQM15ABBAoEIalFM8QAUsKNwoLfl///rTABBAjEh1VAGogAVxFh9uwKkZlKtAhQwWAHLmBCCeCBBAsDCdCMSK0DrrAq48DsoE6+cfADEdoGqRsSLUHAaAAMIWURtwGTqrbQMoRy0AMg/iCwqAACLaUJDYuSM3PkCDCS8ACCBshl4EuuYBcqEB8vaSSeBwBGWnj4QMBQggXOl0A7CqhXNA4fjmxQdQYG4kJiUABBAuQw/AggCUVIBVyAeoK4kCAAGED73vW1XwH1hK/Yc1Z4gFAAGED80HFnMgA8+TqhEggPCheGjDS59UjQABhA/xk+ttgAADABIuxx4Oj+zlAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/boatramp.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAMBSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwczJM0E5s5eBV92YgVzw+eZZhrvTixn+fv9SABBAzED+CtW8yQKUGAgC7CJSDNyKugxvj2/RAAggJiBfgVIDYQBqjgJAADEx0AAABBCGoQ8WNDC8ObaZ4c+3zxhhBhInBgAEEAu6AJuwFMPDhY1gLGzpwyBg4AA27MutswwyYcVEGQoQQBiGggx6vmUWmA0MdDAGATGnSAZeNeLCHiCAmLDFIr++PYbCV/uWM1yp9mO42ZtOMBgAAghrRIk7RzEA0y5WDaBgAAXNhQIHcPh/e3wTQw1AAIES/3/jmWfAHFDksHDxwiVBLgJ5H2QQPgDTDwJn000YAAIIJUzvTi9h+As0WNjKBxi2vgwiVhD8880zaPhuZvj19jlGHKADgADCiKgQR22Gp09PMOwr7AOHLchQUAqQ8k0DY1DSAhkOi0CQHDoACCAMQ52drBnMzPSBBr9g2Lv3GMOixd3gsAO5HOQDUK4BYVDy+nDhAFZDAQKIBVc4SUtLMMTFBYHx9Rt3GDZs2MWwYWIaw082PgYx50gGAX0HsC+wAYAAwjD0xo27WBWCfADCe/cdBVowk+HJKkjwgFIKetkBEEAohnLJqDFMWX8KyDqFP3VLajDwSDKAijmGn2+fMfAyoBoKEEAohsqGF1OlQAEIIFDifwCKUWoAqDkPAAIIVEiDYtEDVMCCsiilJf//P78aAAKIEamOKgAVsOg5BB283LsMHElYwAMgngDEEwECCJb3JwKxIjTbXgClP2wAlI2fbwaXYA5QtchYEWoOA0AAYStQNuAyFJQJgDG+AMg8iC8oAAKIaENBYh8vHvwADSa8ACCAsBl6EeiaB8hFGsjbj1f1gpgJQPyRkKEAAYSr4tvw9tgWOAcUjsDSCeT8jcSkBIAAwmXogQ8XD8CTCrDU/wB1JVEAIIDwofc6rZv+c8qo/Yc1Z4gFAAGED81nE5YEGXieVI0AAYQPxUMbXvqkagQIIHyIn1xvAwQYAEmeHlrR+LOoAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/building.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJ/SURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcXOOqEkyIFBW06CgVxw9dELhp51Bxi+/fxdABBAzED+isowZwFKDAQBMX4eBlUpEYaDV+5pAAQQC5CvgGxg47JdJBlmr6vM4ADEIAA1RwEggFjQFV17/JJhwfweogzcsGEXw+s3LzDEAQKICZtiMzN9MH369EUM9tNnL8AYxJaWFsdqGUAAMeFyBciQqdMWY7BBrgNhfAAggFhwSQQEuDGYmupjsCsqMgkGC0AA4XTp06cvwS5EZ9+4cReM8QGAAKKJ9wECiCbeBwggmngfIIBo4n2AAMJpaHZ2HMO1q7sx2AsX9IIxPgAQQDgNXb9hJ0N8QjGY3d4xDcy+fuMOmA3C+ABAADERkx1BYXj69CWGz5++EpV9AQIIa+yfOnWRQVpKgiE7Kw7MhhkGMtzZyRquBhSB2AwACCAMMS1ZcYauum4M74DENy1bx7AJSymFDgACCGToA2ABCy/+6qPcKCqoQeYBBBAzOMncfuwBKmBBBS2lJf/vv/8aAAKIEamOKgAVsCDOyvJYnJq3nb7OsHDfGWxSD4B4AhBPBAggWOxPBGJFaJ114fStR1gN/PrjF8Pqo+Cc5QBVi4wVoeYwAAQQtiS1ARgcWA2dtu0YqGJbAGQexBcUAAFEtKEg15+5/fgDNJjwAoAAwmboRaBrHjx4+Q7F2wv3gsMxAYg/EjIUIIBw5agNB64gSiJQOL7+9PUAkLmRmJQAEEC4DD1w5tZjeFLZfubGB6griQIAAYQPvZ+cEfhfXkzwP6w5QywACCB8aL4oHzfIwPOkagQIIHwoHtrw0idVI0AA4UP85HobIMAA+WIjlWvPlWkAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/campground.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKKSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwc/JPGFDpjKDgzovA7ngwM3PDAHT7zJ8/P63ACCAQIbe31+kpkCJgcgGO/bdegAQQExANl4DDZqvMTx48xPOL1j5mGHBsTdY1ULNUQAIICZCtjuo8TIkLHwAZm+48IFhwfG3DAEGAnj1AAQQQUMbfCUZHrz9xdCw+RlDwoIHDAsSFBgEuFjw6gEIIIKGggxYEK/A0LjlOdDVPARdCQIAAcREVATc+gymP3z/S1SEAQQQQUMvPP4GdiUIHLz1hWHC3pcEDQUIIIKGgsIRJYw3P0dJDdgAQADhNRQUOfc+MjGYmurB8T8WDnhqwAUAAoiFkLdBBi1c0AsXj08oZjh4+hI4GAqcxbHqBQggJmK9jekL3MEAEEBMuLx98cl3vIYC8zjOYAAIICZ8sU0I4EoNAAHEQsjbT5++ZJg6dREKHz0YAvQFGBRE2OFiAAGEYuiHb38YJoTJYnHTSTgrJIIfSPLj9QFAALGgZ0lqFIEAAQQK0wegcpAaAGrOA4AAYoYWaR4Witwo4UJuyf/zz/8GgABiRKqjCkAFLIjzf6YxTs2g2C5c9QSbFCiGJwDxRIAAgiWpiUCsCK2zLoAKY2wAFJGg2AaV3VC1yFgRag4DQABhS/wbcBkKSm7ARL8AlETxBQVAABFtKEhs48WPH6DBhBcABBA2Qy8CXfMAlLOQvV2w6jHYsaAcSshQgADCVaBsWHDsLUquefj21wEgcyMxKQEggHAhf3lhtv/AVPAf2CYAtT7eA7E8sZoBAggfen+/Vee/vgznf1hzhlgAEED40HyQa4H0eVI1AgQQPhQPbXjpk6oRIIDwIX5yvQ0QYADdrvqPYBJZ8gAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/dd-end-small.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAAkAAAAQEAYAAACU2IkAAAAABGdBTUEAAK/INwWK6QAAAAZiS0dE////////CVj33AAAAAlwSFlzAAAASAAAAEgARslrPgAAAAl2cEFnAAAACQAAABAAeB/+kAAAA6FJREFUOMuNkHtMUwcUxr9723KLSm0pD4EW6KA8lEelGC3IK4ENH1VDMkQY6maMj5EtAxxOkm0Ziy7DmWXMbMP4QLfpFlSYshkgDGw2BoUI1YrQgimtoCusUkrppY+7P8q2jGRhv3++nHO+c07OASiwwMIivnn+v3BbKd2B7Vlx4sbQoa7uohtrD8dIh9lZ+nB+WIAqUqj1JbkbD5q9/hWl4IEDDsAGDTfc3HUJ/QHP/Acrdx19JKeTGir9lfzoS5GJvE2CA1wBdQnO5xbHr7QoBi3CUT9DT/LY2d/7Cc16kVwTZBZNSz8yswTD3H1UWeHV4xsUylS6JrVUkdAcW8DP/GOHPdZxHbDo5zsctwD3B54QRg2kj4hloTcpAdfA+YrTKuv8TfMkZbLEmEFkWyOoMNWdwctHlPwXS15KmmyZmZjdD+xNaYlt7wVmsmnZghFY3UkN+IQDDde3deVGAaIpfg3PA+yfuVXRFtyxihTv5iX7UZITAUHcPm4gYL/tynd1AhOztpm5BODpu3ONdu1ivA6Y73XtdvUBwjruJmorELGRH89rErWQtif0XWeBLWLB5F7p3gIQVnyC9wFUQwE5/qEaCqQCxCRO4W3AecNd6DkDWPX0qwsr7I0sz3dMN1P1wg9yItQVbFGMSaUCGf8tMjjgpO8VKh/ISBP7hFwBclsjWeL7QGZp+L6wzcDQRUvi8wRP8YW7A3HaVdfGCe86yfdFB+MHpN+eTzz5YU5dWlpOnCSI38SbAgDPU8YJAISbGAfG8631sy7gxJrOn7vLVPnfNGhvDlteKyD509RFH+Pjwms7h2S64iric13/BY1Jr7b10WrnEQDASiYamD/nkrjagC9T7408YBnEV5O09cNdxx2Byb7t3Gb9ob9fwDDnjKeVQLiW1+6X86aimXlZur3ceZZhqvFGPcO0i/eM7TJ7HsYIBDZ+dnXZYls8lsKRk++RqX9Fos1H16c8Smy+p7YIy42Hchmm6gtFurxG99hblw5Sn7HqWJlYFlV6SNhEyOu1x+48LFLvHGGYLZejiiPaz3/tLbMqlzaQSxPymjV+gb3IMP80v2He3ZvTpTVsM6kcItMea57tfk/dDmH0j5IU9+llBz1rm1Pa1wLWcnrvwqjBv2O1QWGaNh221Doe0O/oP9bkmWunKpY/CWyarCCsAPsUmUV0xXxKbWUdIxd6KHYTGUUwiSWcGPIVMul/DPo3YaNevZ3u1Ujdfzn/BDEoc2twm1KpAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/dd-end.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAAiCAYAAABfqvm9AAAABGdBTUEAAK/INwWK6QAAAwRJREFUSMetlktMU1EQhi+PAkJ5iAoULFBoQRA1QQVBCopQg0ahajSlC0UoEWhpiw8UH0hckAgioCs3mBhXLo0bF7hwrYlRYmLiRkAjFIOPSEzIHf8pbYXSCvR2ki9pes792jlzZlpB8B8ZoBEMg4cu7oNmkC2sIaJBD5iKkcmoSJFMx3Oz6QTYk5pC8ggZYW0G9ILYlWQq8Eohj6G+/aU00XpapCsWka7byAlef247Iw4d0JIyVs7id2CLP5kajOsyleSwNorU3UHU1U7U2baULgvx2qy9mWrVKpZ+BQXesnXg9UGVkv50momu+hB5gz3zkOs1WSx9D+IWC7vTkOaUzSSuSub5tu00e/6cmJUQx9I+t0wBPg1UlTlTcW/u3rubKpSpPuE1jxTPPKipZOGUqwaCIVoWThPmBj50z0Z+EGs+4TWPEM84kNn6qEhea2Jh/86UpGUFWLWQuWal8oX9gywcOapR4VrYAxfesFN9fg6vjTiFtagUvylFaNya6xEO7FJITdlGFelpvDbEwnpusUnL2QCLYqYZu6coJhamgcl7uorArg3SHTlcxTKHq9uccXMzLrbD3iz6bDe/F9tCPy60iOqEeBb2L+4UORirQ7XneRgsSt0vSBUfLrqq+xEkevdzLqduyNOgT61El83/F6IQph35LJsG2/1NnELwvaesGGfT4V+Gsx6uLmfZHNCuNBNPhaCSL4zHFmbgsiljpbcmoxgdHs7C1tVO7UcFmzbQ3KVWcVnqEB7KymDZ6Fp+BjLB7N0q7dIOwrk9O3nEfR9LhTXGbRXm3O+LLf++JYaATpXOsqdCAKEEP5/oaxbOEvdzzGSk0JAQFuqEAOOxc3CwEKn3aItZ9kaQEPrEqCj6ZjM50y1KTWbhLSnCjVycUUMdTVubKDIsjIUlgsR4eaeyjEYNepZ9ATFShYMN2/Kod18JC58LQQiTFiOL/454T5RAQ5cRH0s5iQnk+vMkOQojwkLdBakOhlADRFe7FQdDmAR+uYTqYAgjwQcwDuJX2vwXyqPiGx8g6JAAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/dd-start.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABQAAAAiCAYAAABfqvm9AAAABGdBTUEAAK/INwWK6QAAAwBJREFUSMetll9IU2EUwK9zbro5V1PnbIrz35y6JNTMTeyfNm1t056kkFJz4u7Ulx56LOmhKBGL3hWih8CgMkgq1NQ9FgRFEPSSRGQFFUFv3+mc671yN9sftx34wbj37Mc93/m+cy/HRY8y5AJyG5kTuYOMIJXcLkKDTCKbyuxMMNbooaLdBBWHTWC07YGsnEzAez+Qa4gunqwceZWzVwWtI7XQf7+D8ateNhbqAYJf87L++Q7m5OtAW5hN4reILZqsCtkoacqHgUddbCLUSwIYXfaEQdfo3tCTblbmKCLpV8QeKctBXpc0F8Dokofx674dop1iH/ArXmZpM5H0PZInF17W5Ktg8HH3tswZrE9A6gX/05NMV6wh6U1JVox8onWhUqTkmq4SSoLm89aY0nH8z9GLDZS7KfaAO6NUK+DcfCeTr5kklIgm5lc9MLTQxVRaJeUNk3Cq0KoXOihPjBTGEgdDPmbab6D7MyScpYUdk5UbSyhh77WElV3VaabrsyScS4ewWiacTkfJxQ1CybdIeFZoyoPkmhKgpuAmV+VmUZ6fhGbkc9uEXXj0ZLbNsUsHKPe7eNqEuKLJV2P7u7efMuGNveiWNvaU/KTkIu/KnEXAL3toIMSVBV4KQlZ5fB/JPiKGyPNcQ6VTAp5TFliJLQyGepjNXUqyb0hDtInTiPxqHrCGref/1q1tvJ5kf5H2eDOxj5rhm3EIc3DHuoV80Dd3hGWqFCTkE53adw3lOvC/OMVorcJKXfex0hYjyZZ28xqwID+dwbqw0umJ3ddbmLg3ndwu44bOpAH/c/d2g+hE0BDGewtcElGK/HZNNm29T9a9wtplZGSQ0MUlGfe2BkePUPrBQSvJ3nApxGk1ntFBPEFUrtGmJ+HVVIQF1BzPdCsMPHQxRZawVRxcirHmCNSCF6X4+wuiTVU4Q5OnZdhGwmdcGsJvshuEz5HIiZJsuHKN2ZBn1oL48ZRyNCqUChAbciIdwmpEOm6H0iE0In9EYVU6hGrkA7KB6OMl/wPLiZ+E0u9WtQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/dive.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKmSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOYwc49gTGkkYFRXp+BXPD/4UWG/2vqGRh+fi0ACCBmIH8FY0S7ACUGgl0nIMHAIK3JwHB5lwZAALEA+QowA/9/eMHA8PEl6SaKKzMwcvCAfQoMBwWAAGJBkby8i0Hu0SEGBQUFBoZPHxgYrl4kaN6F30ClUT0MDEg+BQggFnRFCQkJDA0NDRBOL5Dua8RrqMMbBoZDaGIAAcSEV0cx0ND++SSHBkAAYRoKctmqBQh+WALJBgMEEHaXFiYyMMyegGrwrvMMDHz8RBkKEEC4vd9QyMBQkIDgaxswMKw5QJTBAAGEP0xXL2RgSAoAJrMPCIN3XWBg0MKfpgECiImgtTs3MjCEOCAMllWAuBiPwQABxERUIF27CDH46gUIn18AYrClPVblAAHERHSU4jJYG9PFAAHERFJa+fQRYjBykuMTwFAGEEAYOWrBNwaGAz/xGPwGaHAsMMlNgxh84QLQ5TK+KEoAAgjVUF03hkdy+gyPSHE9yEBggYIMAAKIBaP4AmEKAUAAgcL0AaiApQaAmvMAIICYwbxbRz1ABSwjBa6El/x/fzcABBAjUh1VACqwwc6v2o1b86l1DP/3TMcm9QCIQQXGRIAAgiWpiUCsCK2zLvy/eRS7gT++MPw/vAhcjELVImNFqDkMAAGELZ1u+H/rGHZDt3SDKjZQWjqILygAAgirocAwxjQQ5Ppbxz5AgwkvAAggbIZeBLrmwf+Xd1C9DQlHUFn4kZChAAGEK5tu+H9pF8JQUDh+fAnM6AwbiUkJAAGEy9ADDNBwBae90+s/QF1JFAAIIHzoPWPW4v8MYsr/Yc0ZYgFAAOFD8xn4xUEGnidVI0AA4UPx0IYXye0hgADCh/jJ9TZAgAEAHSnLNIALEIIAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/drinks.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAK+SURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcPMOaFXOZPBmFedgVxw9vNNhuK70xm+/P1eABBAzED+ismqeQKUGAgCUuwiDLrcigxb3h7XAAggJiBfAZeBz36+AWNiAdQcBYAAYsKlYPObYwx+9+oZoq63MNz89pgkVwMEEE5Dgd5gYMgxZPjiIQlkHyPJUIAAYkEXKL4zDRTYDDe/A1236gUDw9ffDJvfPWe49e0JVgN8hC0ZfEWsUMQAAgjTUNkwhhJgLArLiDEs7p/AICAggGHQhg0bGCZOnMhQJBOGYSAIAAQQKEn9P2M8E0Xw859vDA0PFjB8UIAYoKCgAJdbsGABQ25KFkMxDgNNzqYzAAQQ1jDlZeFi6FXJYtB6LsxgYGDAcOHCBbB4QkIC2MCZasVYDYQBgABiwRfgxbLhDGpvZBkMDQ0Z7O3tGZ6fusuwTLMGnCbxAYAAYiEUkzAXzTq+BWwgyBeEAEAAMRGXW4QZpNiEiTIQBAACiImBBgAggGhiKEAAsRAqec5+vsXw7NdbMJ71bDODJDAY8MU8CAAEEAtRYQo0SAqYc4gFAAHEQqjUIadIBAggUJg+AHmTGgBqzgOAAAIV0gwHPlzwABWwhBI1MSX/r/9/GgACiBGpjioAFbAgDnpZgAyWvdzL0PdkFTapB0A8AYgnAgQQLElNBGJFaAFzAehyrAaCCppZzzeDmA5QtchYEWoOA0AAYUunG3AZCiq5gGXtAiDzIL6gAAggog0FiR38ePEDNJjwAoAAwmboRaBrHiDXSyBv9z4Gh2MCEH8kZChAAOHKphuQ6yVQOD7/9fYAkLmRmJQAEEC4DD1w4MNFeFJZ/mrfB6griQIAAYQPvd+k0/pfjVPmP6w5QywACCB8aD6w8AAZeJ5UjQABhA/FQxte+qRqBAggfIifXG8DBBgAojDrowvdqMgAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/entertain.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJXSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwc/FP2FtxQYGex0HBnLBwSsHGII7Ahg+fvtYABBAIEPv72nar0CJgcgGu9Q5PgAIIJCh/3+v+89ALcAaxMgAEEBMDDQAAAGE09CmlQ1gW0EY2XswMRAbFwAIIJq4FCCAMML0wasHYFpBTAGvGL4wBQggBqihcFwbXo81HfqZ+f8HJj0UsTk581H0gjBIHCCAsHofaDAYg4Cdtj2YvenURgZ9RQO4mt7EfoaUKYkMF+5fwNAPEEBEhynQpQx14Q1wPsgCoEsZPn79gKEWIIBY0AXstSGZ4ODVAyhiIAwLWxC4CHRhnm8BVgcABBCGS0E5Cz13wfiTt0yAixXPL8SZrAACiGjvg9ItMtBX0McQgwGAACLa0L3NBxh6kxAuBbFBYtgAQACxkJKo+bkFwKkBxsYFAAKIJgUKQADRJJsCBBDI0Af4CgdSy1OQeQABxAwiN57c4GGuZkFU3iZU8v/8/bMBIIAYkeooUEoGm4ovjCdtngBOo1gAKGeAksdEgABixCJ5fk35egN/8wAMiQ/ALKmSrgCqh0C54SAuiwECCFtEbdh0agNWxcmTE0AGLsBnIAgABBA2pA8q4tCLNKDrQWHyHpRECRkAEEC40P3TvefhBr5e/P6/vKg8yFB/YjQDBBCudLph0f4FKPn+4euHoPSykRhDAQIIF/IHuQzkSmCbAOZteWI1AwQQPvT+9oz7/4Gl0X9Yc4ZYABBA+NB8aDieJ1UjQADhQ/HQCk6fVI0AAYS3pCPX2wABBgBwnglBooDj5AAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/fishing.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALDSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOYwcUzgSGvg4FBw4iBbHDjHAPDpAoGhm9fCgACiBnIXcFQ3CdAkYEgICLJwKCszcBwZJsGQAAxAbkKFBsIAxBzFAACiImBBgAggGhiKEAAsWAVffOcgWHXSgaGR7chfCM7Bga3cEx13z4zMJw7BJHn4oULAwQQpqEgw5ZNZIiMDGaIyilj+PjxE8P0GfMYjmbNBYaZIQODnBrEUhC+cR7IV2VgsPFGMQIggFjQDeTbMo/BG2ignJwMg42NBVjY29uN4fLla2D86PETBn5TYwZdXS2Gjs4JDEc1XTDcBRBALChe2TCXYcv2lQxbt+0CuxAZgAwBYWRw1O8kA0N0E4ahAAHEghyOssL8WDXjBUhhCQMAAYSIfWBYPf7+l2H69HkEzTly5ATYJzo6mkDOVgx5gABCDVNgVq1qzWH4+OkTQ2ZGEgM/Px9Y+NGjJ+DwAxn2+PFTSOTAUsaLuRixDxBAjODCYMExhMGPboFjn+/ZHXAEgcDy5WuBMewFTFZhkNhHTnqgJAXKoiCDQSDBigEggDANRTYclGRg6RSkkRgANBQggFhwSoJchOwqEgBAANEkmwIEEE0MBQggkKEPwAUsNQDEnAcAAcQM5pw75AEuYImNDHwl/+9fDQABxIhURxWAC2wQwJYa0AocLOABEE8A4okAAQQLU5AqRWi6vQBOe9gAtHwAAgeoWmSsCDWHASCAsEXUBpyGzmkBVWwLgKyD+EICIICINxQkdu7wB2gw4QUAAYTN0ItA1zwA5yhkby+bAM4vQPyRkKEAAYQrnW4AVrVIPGA4vnlxAMjaSExCAAggXIYegAcBKKnsWvUB6kqiAEAA4UPvGXrW/gcWc/9hzRliAUAA4UPzGUQkQAaeJ1UjQADhQ/HQhpc+qRoBAggf4ifX2wABBgBcq9znM7dAggAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/food.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAI+SURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcfNMWF+fTyDlb4yA7ng2MW7DImNCxk+ff1RABBAIEPvr+1KV6DEQGSDg8tmPgAIICYgmyoGggDUHAWAAGLCJvn4xTswJhcABBALNsGVu89CvHPpLoOVnjKYXtedAZfvWbwbTJfEumI1FCCAmEh1xcpdZ4CWnsGrBiCAmEiNCJCBT16+x6sOIICwel9WXJChoHcVmH380j0GD0ttaHDcA/MJAYAAwmpouJsJGAeVzmAoiXElOf0CBBATAw0AQACRZKiVnhKDJRATAgABxERq4gYlMUIAIICY8CWdx8BYJpR8sAGAAMJtKDTprIJmBFIAQADRJKIAAogFl0S4qwnW8ANFFgMomeGJMIAAAhV9/5/v7KKaKyXdyxgAAgjk/Qeg7EcNADXnAUAAMYPIHceuehhryDHISghRXPL//P2nASCAGJHqqAJQAQvi4AuOWesPM9TP2IxN6gEQTwDiiQABBIv9iUCsCA3jC9uPXcFq4Mcv3xl6IWWpA1QtMlaEmsMAEEDYktQGYHBgNbSgZxWoYlsAZB7EFxQAAUS0oSDX7zh+9QM0mPACgADCZuhFoGseXLn7DMXbdZBwTABxCRkKEEC4ctSGVbsQeR4UjsAsewDI3EhMSgAIIFzIX0ZcEJQp/gPbBKDWB6j+kCdWM0AA4UPvTy2s+K+tJPkf1pwhFgAEED40H+RaIH2eVI0AAYQPxUMbXvqkagQIIHyIn1xvAwQYAPlGx7oVdw1MAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/gas.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKBSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcfNMWF+fTyDlb4yA7ng2MW7DImNCxk+ff1RABBAIEPvr+1KV6DEQGSDg8tmPgAIIBYgm6CBIMUgoK0sxcDPw4lTHdQcBYAAYsFnWM/i3Qyz1x8GeQkuFuZqzNCU4YfXcIAAwmnoLKBhvUt2g9n19fVgesGCBQyrdp9l+PTlB8P8hnichgIEEBMuCZBGGGhoaABjBQUFSHBcugv2BS4AEEBM5EQIH9DrIF88fvEOqzxAAJFlqKy4IIO2kiTD45fvscoDBBALMYaAvA4CDx48gIuBUsKxS/ewpm2AACLK0MbGRgyxcFcTUJpksNJTwjAYIICYyE3oIINSA2wYVu4+gyEHEEBMlOQgDyttrOEKEEBMDDQAAAFEkaEgV/JzY+YsgAAi29CPX74z1M3YxBDmZowhBxBAZBl69e4zBrO4dnCYelrpYMgDBBDOJAVKKgwxrngjSQeYVrEBgAACGfoAWLRhFH8gPqllLLSIfAAQQMwgcsexqx7GGnIMshJCFJf8P3//aQAIIEakOqoAVMCCOM93djHgKxLrZ2zGJgXKwxOAeCJAAMEiaiIQK0LrrAvbj13BGeO9kCLPAaoWGStCzWEACCBssb8BGBxYDS3oWQWqBRYAmQfxBQVAABFtKMj1O45f/QANJrwAIICwGXoR6JoHV4BpETWhg8MxAcQlZChAAOFK/BtW7UKUPqBwfPLy/QEgcyMxKQEggHAhfxlxwf/AVPAf2CYAtT5ARZE8sZoBAggfen9qYcV/YLXxH9acIRYABBA+NB/kWiB9nlSNAAGED8VDG176pGoECCB8iJ9cbwMEGAD/XNW3BYYEhAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/golf.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALYSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOYwcUygaHcjIFRR4SBXPD/yhsGhs5TDAzf/hQABBAzkL+CocZCAJ+B/1feZGCYf4WB4fdfBgYBDgZGblYMNYxiXAwMaoIMDAceawAEEBOQr0CUCx98Ahp8lYEhcw/Df5CLsACoOQoAAcRCtP9EORkYzCQZGBxlGRgV+fEqBQgg4g11lGNgDFcnSilAADEx0AAABBBNDAUIIJoYChBANDEUIIBoYihAAOGM/f8nnzMwXH0LTJ8fGRhefYOIXQXmGlDC1xYGJy9wgscCAAIIw9D/X38zMNQdZZD/L8gQEBDAEFASwLBgwQKwXEJCAsODBw8YDhw4wLAwcyHD/zB1rMkMIIAwXTrlPEO8fSDcIBAAGQICDg4OcMMLCgrA/I9mEhiZASCAMA0FuhSmGQbQ+SBgYGDAoKCgwHARFDRohgIEEKhAaUDxAhcrw8ayaWAmSJOAgACYBmEY2LBhA0NGRgbDyZfXGRjCNRgY2ZgR+lfdZAAIIFDR959xrR9quN4HRs6WewwMp54z8LNyg10FAh8+fGC4ePEipBwAZlsGHyWMEut/8CYGgADCaiiKIpD3oLGPVBLhVg80FCCAQGH6AFjA4iz+wMkGR9LBWlADzQMIIEhgnHruASpgGYnUjLfk//2vASCAGJHqqAJQ3IBdhy84ttyFFNZYinEgngDEEwECCJZNJwKxIrTOugDOTdgMBGUMUNUCTGVQtchYEWoOA0AAYcv7GxhOvcDuTGDGAFZsoFxxEF9QAAQQDkOfYy8LTr34AA0mvAAggLAZehHomgfgtIrsbVBtCsyhQPyRkKEAAYSr6NvAsP8xggcKx9ffQQXARmJSAkAA4TL0ACwIwEll670PUFcSBQACCB96zzDd5T+DAt9/WHOGWAAQQPjQfGAeBxl4nlSNAAGED8VDG176pGoECCB8iJ9cbwMEGABtVdr5oMgPkgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/hike.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKSSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOYwcUygaHcjIFRR4SBXPD/yhsGhs5TDAzf/hQABBAzkL+CocZCgBIDwa4T42JgUBNkYDjwWAMggFiAfAVcBoJth2kiwlKQGmA4KAAEEAteVfXHEOy1fkS7GiCAmEgKt6+/Gf7vfwSm8QGAAGIhIyIYGMK+MzCEq+NUCxBAeF3KCPLydBcIZ+s9BgYzSQh7y128DgAIIKyG/l95E4Lvf4S4jgvooVMvGBgcZSEKgK4FBQMuABBAuF166jkDQ91RiOt6HSBi+x8D+RIQNtBSXAAggHAb+uobAzhDAMMOnAYdZEFpEGHo6+8Qn2ABAAGEO6J8lFHT5utvUMuAkZRjwMCgLQKxDAsACCAmomP+6ltI2IIiCRgkuAwEAYAAIi6drroJMTDHEJKkttzDqxwggAga+h8UtiBXglxnDow0BT6CSQoggAi7FBbLsMTuo0QwSQEEEBNBV4JiHBjzsDBkdJRjYBDlxJukAAIIe+xDEznIoP/QmEYBoLDFAwACCGToA2DsohR/yDELdhmWIg5PUfkAIICYobnHA1TA4ksmRBc4v/81AAQQI1IdVQAqsOEFCS7NoJiffxWb1AMgngDEEwECCBZRE4FYEVpnXfh/8jnO8hQaQQ5QtchYEWoOA0AAYYv9DeASCRuYch6UnBYAWQfxBQVAAOEwFNOlYNefevEBGkx4AUAAYTP0ItA1D5BLILC3518BMROA+CMhQwECCFfi3wAuO5Fz1evvB4CsjcSkBIAAwmXoAVgQgJPK1nsfoK4kCgAEED70Hlg//QcWIP9hzRliAUAA4UPzgXkcZOB5UjUCBBA+FA9teOmTqhEggPAhfnK9DRBgACVf3DfVtVJPAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/hotel.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAKvSURBVHjaYmKAgHwgvg/E/ynA96HmMAAEECOIwcnDMyGzt5dB3diYgVxw8+xZhunFxQzfv3wpAAggZiB/Rd7kyQKUGAgCIlJSDIq6ugzHt2zRAAggJiBfgZCBIFeAMCEANUcBIIBYCCncPGsWw+GVi8Fs2/BYBt+0NIKGAwQQEy6JN8+eMTRHRTE8PrmN4cCBYjAGsUFiIDl8ACCAsBp6bPNmhhag5mBPGYYLF2oZDAxkwRjEBomB5C4cOIDTUIAAQvH+t8+fGVYBU8G1w3sZtm3OZHBwUMfQMGFCOENAgAEQ1wINdmYIA8Y4Fy8vihqAAEJxKchAts+3GB48aMNqIAyA5EBqQGpBrkYHAAGEYujb588ZGhp8gBreMnz48A1vuAkIcIHDGaQHHQAEENYwLShYBQy/x2SnWYAAwhn7jo59DIyM6VjlHjx4w7BgwTGchgIEEMF02tCwGYuhb8E4IcEKqx6AAMJpaHy8JYOCgjBZ3gcIIKyGJiRYAmNYDWioCE7vHzhwC6ehAAGEw1ArvC4BWZaQIIJTHiCAWLBFEKUAIIBQDC2eOZOBGgAggEBJ6gExxRqxBTXIPIAAAhXSoMLBA1TAggpaSkv+P79+NQAEECNSHVUAigMQZ+aZMzg17122jGFVH9ZwfwAqb4B4IkAAwXLURCBWhNZZF3AVa6BSDFRog8oUqFpkrAg1hwEggLBl0w24DF3Q0ACq2BYAmQfxBQVAABFtKEjs4sGDH6DBhBcABBA2Qy8CXfPg8c2bGIU3KF8A8UdChgIEEK5SasOxLVtQKj9guQly/kZiUgJAAOFC/sKSkv+BqeB/0cyZoNbHeyCWJ1YzQADhQ+9bN236L6Om9h/WnCEWAAQQPjQf5FogfZ5UjQABhA/FQxte+qRqBAggfIifXG8DBBgArEP1fp0Y0aYAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/house.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALcSURBVHjaYmKAgHwgvg/E/ynA96HmMAAEECOIwcnDMyGzt5dB3diYgVxw8+xZhunFxQzfv3wpAAggZiB/Rd7kyQLEGAjSWO3nx7Bl1iwwH1mPiJQUg6KuLsPxLVs0AAKICchXoMSFyABqjgJAALGgS3z7/Jlh7/LlWDW9ffYMzr4FdPVmoIudIyMZuHh5UdQBBBCGoauAYfvt8WMGAwMDDEOFhYUZ1OLj4fwLJ08yrAJalNDQgKIOIIBQDH188ybDpf37GebMmcMgISFB0LsvXrxgiAS61CctDRymMAAQQEworuzrYwgJCSHKQBAAqQsODoZHHAwABBALcsyCwklXQYFhwYIFJEUQMMYZLH194akBIIBQvA/yxoHNmxl83BQYFBSECRr24MFbhgPHHoD1IQOAAGJBTg4gDHJtQoIlg4ODOkFDDxy4yXD8yi8GXzRDAQKIBZeGBQuOAfFxMBtkSUKCFUNDw2a4PEgMFwAIIBZ8Xjt48BaY7eCgBqYbG7fA5WFi2ABAADEx0AAABBBOl0Jc4kPQVdgAQADhMVSdqMjCBgACCKuhBQWrGAQEuPBqBKmBmCCOIQcQQBiGhhUVMXz78gWrQcZRmGJcPDwYYgABBDL0ATA3wYs/WXV1igpqkHkAAcQMLm0OHPAAFbDIhQK5Jf+fX78aAAKIEamOKgAVsCDOzDNncGreu2wZuODBlrSBeAIQTwQIIFg6nQjEitA66wLQ5VgNBBXgmyElkgNULTJWhJrDABBA2BL/BlyGLgAWxsCKDVSEHcQXFAABRLShILGLBw9+gAYTXgAQQNgMvQh0zQNQLYDsbVA1AypHgPgjIUMBAghX3t9wbAui8ACF49vnz0HO30hMSgAIIFzIX1hS8j8wFfwvmjkT1Pp4D8TyxGoGCCB86H3rpk3/ZdTU/sOaM8QCgADCh+aDXAukz5OqESCA8KF4aMNLn1SNAAGED/GT622AAAMA3wbxV1JvN90AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/hunting.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJFSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcPMPKFXWZnBmJeXgVxw9vNnhuK7dxm+/P1bABBAIEPvz1RTU6DEQGSD02/degAQQExANlUMBAGoOQoAAcTEQAMAEEA4Dd385g0YkwMAAogFl8TzX7/AYQSifYSFGaTY2Yk2FCCAWLC5EGYguQAggDC8v+XtW4ZZz58znP3yheEZ0HBJNjasrux9/Jjh5rdvWA0FCCAWfDaCXAyyAGQROrj5/TuDg4AAVn0AAYRhaJGsLCgBM2wGGgQyDGQwCJMCAAIIw1B1Li54QiYXAAQQCyEFoJj3BWL08LwF9D4uABBABA2VAkYUeo7jZWbGqwcggFjwufAZjrDEJwcCAAGEM0eBkhHIldiAr4gITjkQAAggFkLhiQuAUgkugwECCK+h+LImLJVgAwABBPL+A0qSD3p5CjIPIIDA0XjgwwcPXW5ukgoNXCX/r///GwACiBGpjioAFbAgzhljY5yal718ydD35Ak2qQdAPAGIJwIEECz2JwKxIrTOugB0OVYDP//5Ay4LgMABqhYZK0LNYQAIIGxJagMuQxsePACVCwuAzIP4ggIggIg2FCR28OPHD9BgwgsAAgiboReBrnmAXFaCvA3K70CQAMQfCRkKEEC4ctQG5DIUFI7A4u8AkLmRmJQAEEC4DD0ACwJQUln+6tUHqCuJAgABhA+936Sj81+Nk/M/rDlDLAAIIHxoPrB+Ahl4nlSNAAGED8VDG176pGoECCB8iJ9cbwMEGADsgtwkgbLJCAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/info.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIfSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwc/DPGFDrzKDgzEvA7ngwNnPDAHFdxk+fvlbABBAIEPv75+ppkCJgcgGO6bfegAQQCBD//8/Y8xALcBocpYBIICYGGgAAAKIhRhFF25+Y/jw5S+DgRongwAvYS0AAYRXxYfPfxgc0m8B6b8MClJsQMO/MyxoUGAIcBDAayhAAOE1tGHWcwYFSTaGDctUwPwNBz4wFPQ+JmgoQADhNRSkGWQoDDgY8zA8fP6LoPcBAgivoejJrKD3CUN+pBhBQwECiOjYT2h4AKYnFMsSVAsQQETHPihhP9isS5QDAAKIKJcK8DIzNKRJEp1OAQKIJokfIIBoYihAANEk7wMEEE1cChBANDEUIIBAhj4AJRdqAKg5DwACiBmapz0sdLmBhQY7xSX/z1//GwACiBGpjioAYgUQB1/ETVj2kqGw7wk2KVCWmwDEEwECiBGL5Pn1PcoG2EoiUFGo4HsFVA85ALkHcVkMEEDYImoDqIjDlf+BBi7AZyAIAAQQNpfqA2vXCx8OGKDaBLQosOTuB2gQfcRnKEAA4UL3zy/VBGUKMH6/X/+/vCQbqG73J0YzQADhQv3AchNuKIgNFNtPrGaAAMKF/EEuAxkIbBOADHwPxPLEagYIIHzo/f1NOv/11Tj/w5ozxAKAAMKH5kPD8TypGgECCB+Khza89EnVCBBA+BA/ud4GCDAAhYm7w4O8r6oAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/marina.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALESURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOYwc49gTGkkYFRXp+BXPD/4UWG/2vqGRh+fi0ACCBmIH8FY0S7ACUGgl0nIMHAIK3JwHB5lwZAADEB+QqEDPz/4wvEJR9e4DcYYo4CQAAxEfQW0KD/U2MY9K4sZvg/LRZsOCEAEEAEDQV6h8Hfw4XhwoULDPn5wHh4RNhQgAAibKiuG8PGHXsYHBwcGCZOnMjAIEc47AECiImYCGBMnsFw8OBBBsasxUSlEIAAYiI6ZpFoQgAggJjQ0xrJ6ROUMl7eQREDCCAmlFgGJt5/u6eRZuiWbqC+BrDhMAAQQEzIksDcwMBwej3RLv5/8ygDw61jDAwfXzL8P7wILg4QQCxw02N6Gf5f2gmUXEx0dmVUt2b4r2bFwMAvzsDkmgUXBwgglDBl1HNnYGDnYfi3uZs4lwIdwQD0FaNtHIo4QABhxD5jTA8Dw8u7DP/mZOAMBlDE/AOG///d08HqGTl4UOQBAghUSv1nqtqNqREYRv8v7WJgAEWAuDIwJ10CJnw9cPiBxfTcwC5EN/BfmysDQACx4AwvkAYgBieXH18h2ROamwiFOUAAsRCMDHEVCIOEohEggEBh+oCcRI+roAaZBxBAzGDeraMeoAKW2GyIt+T/+7sBIIAYkeqoAlABC3Y+loiDaz61juH/nunYpB4A8QQgnggQQLAkBSzTGBShqeECOKfgyueQnOMAVYuMFaHmMAAEELZSasN/UNbDkc+BWXkBkHkQX1AABBBWQ4FhjCuff4AGE14AEEDYDL0IdM0D5OIM7G1IOCYA8UdChgIEEK5CegM4NyHlLmBOOgBkbiQmJQAEEC5DDzBAwxWc9k6v/wB1JVEAIIDwoffAOuk/g5jyf1hzhlgAEED40HxgOQky8DypGgECCB+Khza8SG4PAQQQPsRPrrcBAgwAXO8Edv6CGeMAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/markers.ai</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[JVBERi0xLjQNJeLjz9MNCjEgMCBvYmo8PC9QYWdlcyAyIDAgUi9UeXBlL0NhdGFsb2cvTWV0YWRhdGEgMjEzNSAwIFI+Pg1lbmRvYmoNMiAwIG9iajw8L0NvdW50IDEvS2lkc1s2IDAgUl0vVHlwZS9QYWdlcz4+DWVuZG9iag0zIDAgb2JqPDwvTW9kRGF0ZShEOjIwMDYwNzMwMTkxMDI0LTA0JzAwJykvQ3JlYXRpb25EYXRlKEQ6MjAwNjA3MzAxOTE3MTVaKS9DcmVhdG9yKElsbHVzdHJhdG9yKS9Qcm9kdWNlcihBZG9iZSBQREYgbGlicmFyeSA2LjY2KT4+DWVuZG9iag01IDAgb2JqIG51bGwNZW5kb2JqDTYgMCBvYmo8PC9Db250ZW50cyAyMTIzIDAgUi9UeXBlL1BhZ2UvUGFyZW50IDIgMCBSL1RodW1iIDIxMzQgMCBSL01lZGlhQm94WzAuMCAwLjAgMjEuMCAzMS4wXS9Dcm9wQm94WzAuMCAwLjAgMjEuMCAzMS4wXS9CbGVlZEJveFswLjAgMC4wIDIxLjAgMzEuMF0vVHJpbUJveFswLjAgMC4wIDIxLjAgMzEuMF0vQXJ0Qm94WzAuMCAwLjAgMjEuMCAzMS4wXS9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzAgMTgyMyAwIFI+Pi9Qcm9wZXJ0aWVzPDwvTUMwPDwvQ29sb3JbMjAyMjQuMCAtMzI3NjguMCAtMS4wXS9UaXRsZShCYWNrZ3JvdW5kKS9WaXNpYmxlIHRydWUvUHJldmlldyB0cnVlL0VkaXRhYmxlIHRydWUvUHJpbnRlZCB0cnVlL0RpbW1lZCB0cnVlPj4vTUMxPDwvQ29sb3JbLTEuMCAyMDIyNC4wIDIwMjI0LjBdL1RpdGxlKGRyaW5rcykvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzI8PC9Db250ZW50cyAxOTg5IDAgUi9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzAgMTk5MCAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DMzw8L0NvbG9yWy0xLjAgMjAyMjQuMCAyMDIyNC4wXS9UaXRsZShzcGEpL1Zpc2libGUgZmFsc2UvUHJldmlldyB0cnVlL0VkaXRhYmxlIHRydWUvUHJpbnRlZCB0cnVlL0RpbW1lZCB0cnVlPj4vTUM0PDwvQ29udGVudHMgMTk5MiAwIFIvUmVzb3VyY2VzPDwvRXh0R1N0YXRlPDwvR1MwIDE5OTMgMCBSPj4+Pi9BSVR5cGUvSGlkZGVuTGF5ZXI+Pi9NQzU8PC9Db2xvclstMS4wIDIwMjI0LjAgMjAyMjQuMF0vVGl0bGUoaGlrZSkvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzY8PC9Db250ZW50cyAxOTk1IDAgUi9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvSW0wIDE5OTcgMCBSPj4vUHJvY1NldFsvUERGL0ltYWdlQ10vRXh0R1N0YXRlPDwvR1MwIDE5OTggMCBSL0dTMSAxOTk5IDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUM3PDwvQ29sb3JbLTEuMCAyMDIyNC4wIDIwMjI0LjBdL1RpdGxlKHN3aW0pL1Zpc2libGUgZmFsc2UvUHJldmlldyB0cnVlL0VkaXRhYmxlIHRydWUvUHJpbnRlZCB0cnVlL0RpbW1lZCB0cnVlPj4vTUM4PDwvQ29udGVudHMgMjAwMSAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCAyMDAzIDAgUj4+L1Byb2NTZXRbL1BERi9JbWFnZUNdL0V4dEdTdGF0ZTw8L0dTMCAyMDA0IDAgUi9HUzEgMjAwNSAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DOTw8L0NvbG9yWzIwMjI0LjAgLTEuMCAyMDIyNC4wXS9UaXRsZShzc2tpKS9WaXNpYmxlIGZhbHNlL1ByZXZpZXcgdHJ1ZS9FZGl0YWJsZSB0cnVlL1ByaW50ZWQgdHJ1ZS9EaW1tZWQgdHJ1ZT4+L01DMTA8PC9Db250ZW50cyAyMDA3IDAgUi9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzAgMjAwOCAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DMTE8PC9Db2xvclstMS4wIDIwMjI0LjAgMjAyMjQuMF0vVGl0bGUod3NraSkvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzEyPDwvQ29udGVudHMgMjAxMCAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCAyMDEyIDAgUj4+L1Byb2NTZXRbL1BERi9JbWFnZUNdL0V4dEdTdGF0ZTw8L0dTMCAyMDEzIDAgUi9HUzEgMjAxNCAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DMTM8PC9Db2xvclstMS4wIDIwMjI0LjAgMjAyMjQuMF0vVGl0bGUoZGl2ZSkvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzE0PDwvQ29udGVudHMgMjAxNiAwIFIvUmVzb3VyY2VzPDwvRXh0R1N0YXRlPDwvR1MwIDIwMTcgMCBSPj4+Pi9BSVR5cGUvSGlkZGVuTGF5ZXI+Pi9NQzE1PDwvQ29sb3JbLTEuMCAyMDIyNC4wIDIwMjI0LjBdL1RpdGxlKHNjZW5pYykvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzE2PDwvQ29udGVudHMgMjAxOSAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCAyMDIxIDAgUj4+L1Byb2NTZXRbL1BERi9JbWFnZUNdL0V4dEdTdGF0ZTw8L0dTMCAyMDIyIDAgUi9HUzEgMjAyMyAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DMTc8PC9Db2xvclstMS4wIDIwMjI0LjAgMjAyMjQuMF0vVGl0bGUoZW50ZXJ0YWluKS9WaXNpYmxlIGZhbHNlL1ByZXZpZXcgdHJ1ZS9FZGl0YWJsZSB0cnVlL1ByaW50ZWQgdHJ1ZS9EaW1tZWQgdHJ1ZT4+L01DMTg8PC9Db250ZW50cyAyMDI1IDAgUi9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvSW0wIDIwMjcgMCBSPj4vUHJvY1NldFsvUERGL0ltYWdlQ10vRXh0R1N0YXRlPDwvR1MwIDIwMjggMCBSL0dTMSAyMDI5IDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUMxOTw8L0NvbG9yWy0xLjAgMjAyMjQuMCAyMDIyNC4wXS9UaXRsZShmb29kKS9WaXNpYmxlIGZhbHNlL1ByZXZpZXcgdHJ1ZS9FZGl0YWJsZSB0cnVlL1ByaW50ZWQgdHJ1ZS9EaW1tZWQgdHJ1ZT4+L01DMjA8PC9Db250ZW50cyAyMDMxIDAgUi9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvSW0wIDIwMzMgMCBSPj4vUHJvY1NldFsvUERGL0ltYWdlQ10vRXh0R1N0YXRlPDwvR1MwIDIwMzQgMCBSL0dTMSAyMDM1IDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUMyMTw8L0NvbG9yWy0xLjAgMjAyMjQuMCAyMDIyNC4wXS9UaXRsZShwYXJrKS9WaXNpYmxlIGZhbHNlL1ByZXZpZXcgdHJ1ZS9FZGl0YWJsZSB0cnVlL1ByaW50ZWQgdHJ1ZS9EaW1tZWQgdHJ1ZT4+L01DMjI8PC9Db250ZW50cyAyMDM3IDAgUi9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvSW0wIDIwMzkgMCBSPj4vUHJvY1NldFsvUERGL0ltYWdlQ10vRXh0R1N0YXRlPDwvR1MwIDIwNDAgMCBSL0dTMSAyMDQxIDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUMyMzw8L0NvbG9yWzIwMjI0LjAgLTEuMCAyMDIyNC4wXS9UaXRsZShwaWNuaWMpL1Zpc2libGUgZmFsc2UvUHJldmlldyB0cnVlL0VkaXRhYmxlIHRydWUvUHJpbnRlZCB0cnVlL0RpbW1lZCB0cnVlPj4vTUMyNDw8L0NvbnRlbnRzIDIwNDMgMCBSL1Jlc291cmNlczw8L1hPYmplY3Q8PC9JbTAgMjA0NSAwIFI+Pi9Qcm9jU2V0Wy9QREYvSW1hZ2VDXS9FeHRHU3RhdGU8PC9HUzAgMjA0NiAwIFIvR1MxIDIwNDcgMCBSPj4+Pi9BSVR5cGUvSGlkZGVuTGF5ZXI+Pi9NQzI1PDwvQ29sb3JbLTEuMCAyMDIyNC4wIDIwMjI0LjBdL1RpdGxlKExheWVyIDE2KS9WaXNpYmxlIGZhbHNlL1ByZXZpZXcgdHJ1ZS9FZGl0YWJsZSB0cnVlL1ByaW50ZWQgdHJ1ZS9EaW1tZWQgdHJ1ZT4+L01DMjY8PC9Db250ZW50cyAyMDQ5IDAgUi9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvSW0wIDIwNTEgMCBSPj4vUHJvY1NldFsvUERGL0ltYWdlQ10vRXh0R1N0YXRlPDwvR1MwIDIwNTIgMCBSL0dTMSAyMDUzIDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUMyNzw8L0NvbG9yWy0xLjAgMjAyMjQuMCAyMDIyNC4wXS9UaXRsZShMYXllciAxNSkvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzI4PDwvQ29udGVudHMgMjA1NSAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCAyMDU3IDAgUj4+L1Byb2NTZXRbL1BERi9JbWFnZUNdL0V4dEdTdGF0ZTw8L0dTMCAyMDU4IDAgUi9HUzEgMjA1OSAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DMjk8PC9Db2xvclstMS4wIDIwMjI0LjAgMjAyMjQuMF0vVGl0bGUoaW5mbykvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzMwPDwvQ29udGVudHMgMjA2MSAwIFIvUmVzb3VyY2VzPDwvRm9udDw8L0MyXzAgMTkxMSAwIFI+Pi9Qcm9jU2V0Wy9QREYvVGV4dF0vRXh0R1N0YXRlPDwvR1MwIDIwNjIgMCBSPj4+Pi9BSVR5cGUvSGlkZGVuTGF5ZXI+Pi9NQzMxPDwvQ29sb3JbMjAyMjQuMCAtMS4wIDIwMjI0LjBdL1RpdGxlKG1hcmluYSkvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzMyPDwvQ29udGVudHMgMjA2NCAwIFIvUmVzb3VyY2VzPDwvRXh0R1N0YXRlPDwvR1MwIDIwNjUgMCBSPj4+Pi9BSVR5cGUvSGlkZGVuTGF5ZXI+Pi9NQzMzPDwvQ29sb3JbLTEuMCAyMDIyNC4wIDIwMjI0LjBdL1RpdGxlKGh1bnRpbmcpL1Zpc2libGUgZmFsc2UvUHJldmlldyB0cnVlL0VkaXRhYmxlIHRydWUvUHJpbnRlZCB0cnVlL0RpbW1lZCB0cnVlPj4vTUMzNDw8L0NvbnRlbnRzIDIwNjcgMCBSL1Jlc291cmNlczw8L1hPYmplY3Q8PC9JbTAgMjA2OSAwIFI+Pi9Qcm9jU2V0Wy9QREYvSW1hZ2VDXS9FeHRHU3RhdGU8PC9HUzAgMjA3MCAwIFIvR1MxIDIwNzEgMCBSPj4+Pi9BSVR5cGUvSGlkZGVuTGF5ZXI+Pi9NQzM1PDwvQ29sb3JbLTEuMCAyMDIyNC4wIDIwMjI0LjBdL1RpdGxlKGhvdXNlKS9WaXNpYmxlIGZhbHNlL1ByZXZpZXcgdHJ1ZS9FZGl0YWJsZSB0cnVlL1ByaW50ZWQgdHJ1ZS9EaW1tZWQgdHJ1ZT4+L01DMzY8PC9Db250ZW50cyAyMDczIDAgUi9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvSW0wIDIwNzUgMCBSPj4vUHJvY1NldFsvUERGL0ltYWdlQ10vRXh0R1N0YXRlPDwvR1MwIDIwNzYgMCBSL0dTMSAyMDc3IDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUMzNzw8L0NvbG9yWy0xLjAgMjAyMjQuMCAyMDIyNC4wXS9UaXRsZShob3RlbCkvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzM4PDwvQ29udGVudHMgMjA3OSAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCAyMDgxIDAgUj4+L1Byb2NTZXRbL1BERi9JbWFnZUNdL0V4dEdTdGF0ZTw8L0dTMCAyMDgyIDAgUi9HUzEgMjA4MyAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DMzk8PC9Db2xvclswLjAgMC4wIDAuMF0vVGl0bGUoZ29sZikvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzQwPDwvQ29udGVudHMgMjA4NSAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCAyMDg3IDAgUj4+L1Byb2NTZXRbL1BERi9JbWFnZUNdL0V4dEdTdGF0ZTw8L0dTMCAyMDg4IDAgUi9HUzEgMjA4OSAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DNDE8PC9Db2xvclsyMDIyNC4wIC0xLjAgLTEuMF0vVGl0bGUoZmlzaCkvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzQyPDwvQ29udGVudHMgMjA5MSAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCAyMDkzIDAgUj4+L1Byb2NTZXRbL1BERi9JbWFnZUNdL0V4dEdTdGF0ZTw8L0dTMCAyMDk0IDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUM0Mzw8L0NvbG9yWy0zMjc2OC4wIC0zMjc2OC4wIC0zMjc2OC4wXS9UaXRsZShnYXMpL1Zpc2libGUgZmFsc2UvUHJldmlldyB0cnVlL0VkaXRhYmxlIHRydWUvUHJpbnRlZCB0cnVlL0RpbW1lZCB0cnVlPj4vTUM0NDw8L0NvbnRlbnRzIDIwOTYgMCBSL1Jlc291cmNlczw8L1hPYmplY3Q8PC9JbTAgMjA5OCAwIFI+Pi9Qcm9jU2V0Wy9QREYvSW1hZ2VDXS9FeHRHU3RhdGU8PC9HUzAgMjA5OSAwIFIvR1MxIDIxMDAgMCBSPj4+Pi9BSVR5cGUvSGlkZGVuTGF5ZXI+Pi9NQzQ1PDwvQ29sb3JbLTEuMCAyMDIyNC4wIDIwMjI0LjBdL1RpdGxlKEFpcnBvcnQpL1Zpc2libGUgZmFsc2UvUHJldmlldyB0cnVlL0VkaXRhYmxlIHRydWUvUHJpbnRlZCB0cnVlL0RpbW1lZCB0cnVlPj4vTUM0Njw8L0NvbnRlbnRzIDIxMDIgMCBSL1Jlc291cmNlczw8L0V4dEdTdGF0ZTw8L0dTMCAyMTAzIDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUM0Nzw8L0NvbG9yWzIwMjI0LjAgLTEuMCAyMDIyNC4wXS9UaXRsZShCYW5rKS9WaXNpYmxlIGZhbHNlL1ByZXZpZXcgdHJ1ZS9FZGl0YWJsZSB0cnVlL1ByaW50ZWQgdHJ1ZS9EaW1tZWQgdHJ1ZT4+L01DNDg8PC9Db250ZW50cyAyMTA1IDAgUi9SZXNvdXJjZXM8PC9Gb250PDwvQzJfMCAxOTExIDAgUj4+L1Byb2NTZXRbL1BERi9UZXh0XS9FeHRHU3RhdGU8PC9HUzAgMjEwNiAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+L01DNDk8PC9Db2xvclsyMDIyNC4wIDIwMjI0LjAgLTEuMF0vVGl0bGUoYm9hdHJhbXApL1Zpc2libGUgZmFsc2UvUHJldmlldyB0cnVlL0VkaXRhYmxlIHRydWUvUHJpbnRlZCB0cnVlL0RpbW1lZCB0cnVlPj4vTUM1MDw8L0NvbnRlbnRzIDIxMDggMCBSL1Jlc291cmNlczw8L0V4dEdTdGF0ZTw8L0dTMCAyMTA5IDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUM1MTw8L0NvbG9yWy0xLjAgLTEuMCAyMDIyNC4wXS9UaXRsZShjYW1wZ3JvdW5kKS9WaXNpYmxlIGZhbHNlL1ByZXZpZXcgdHJ1ZS9FZGl0YWJsZSB0cnVlL1ByaW50ZWQgdHJ1ZS9EaW1tZWQgdHJ1ZT4+L01DNTI8PC9Db250ZW50cyAyMTExIDAgUi9SZXNvdXJjZXM8PC9YT2JqZWN0PDwvSW0wIDIxMTMgMCBSPj4vUHJvY1NldFsvUERGL0ltYWdlQ10vRXh0R1N0YXRlPDwvR1MwIDIxMTQgMCBSL0dTMSAyMTE1IDAgUj4+Pj4vQUlUeXBlL0hpZGRlbkxheWVyPj4vTUM1Mzw8L0NvbG9yWy0xLjAgMjAyMjQuMCAtMS4wXS9UaXRsZShidWlsZGluZykvVmlzaWJsZSBmYWxzZS9QcmV2aWV3IHRydWUvRWRpdGFibGUgdHJ1ZS9QcmludGVkIHRydWUvRGltbWVkIHRydWU+Pi9NQzU0PDwvQ29udGVudHMgMjExNyAwIFIvUmVzb3VyY2VzPDwvWE9iamVjdDw8L0ltMCAyMTE5IDAgUj4+L1Byb2NTZXRbL1BERi9JbWFnZUNdL0V4dEdTdGF0ZTw8L0dTMCAyMTIwIDAgUi9HUzEgMjEyMSAwIFI+Pj4+L0FJVHlwZS9IaWRkZW5MYXllcj4+Pj4+Pi9QaWVjZUluZm88PC9JbGx1c3RyYXRvciA3IDAgUj4+L0xhc3RNb2RpZmllZChEOjIwMDYwNzMwMTkxMDI0LTA0JzAwJyk+Pg1lbmRvYmoNNyAwIG9iajw8L0xhc3RNb2RpZmllZChEOjIwMDYwNzMwMTkxMDI0LTA0JzAwJykvUHJpdmF0ZSA4IDAgUj4+DWVuZG9iag04IDAgb2JqPDwvQ3JlYXRvclZlcnNpb24gMTEvQ29udGFpbmVyVmVyc2lvbiA5L1JvdW5kdHJpcFZlcnNpb24gMTEvQUlNZXRhRGF0YSAxNzc2IDAgUi9BSVByaXZhdGVEYXRhMSAxNzc3IDAgUi9BSVByaXZhdGVEYXRhMiAxNzc5IDAgUi9BSVByaXZhdGVEYXRhMyAxNzgxIDAgUi9BSVByaXZhdGVEYXRhNCAxNzgzIDAgUi9BSVByaXZhdGVEYXRhNSAxNzg1IDAgUi9BSVByaXZhdGVEYXRhNiAxNzg3IDAgUi9BSVByaXZhdGVEYXRhNyAxNzg5IDAgUi9BSVByaXZhdGVEYXRhOCAxNzkxIDAgUi9BSVByaXZhdGVEYXRhOSAxNzkzIDAgUi9BSVByaXZhdGVEYXRhMTAgMTc5NSAwIFIvQUlQcml2YXRlRGF0YTExIDE3OTcgMCBSL051bUJsb2NrIDIzL0FJUHJpdmF0ZURhdGExMiAxNzk5IDAgUi9BSVByaXZhdGVEYXRhMTMgMTgwMSAwIFIvQUlQcml2YXRlRGF0YTE0IDE4MDMgMCBSL0FJUHJpdmF0ZURhdGExNSAxODA1IDAgUi9BSVByaXZhdGVEYXRhMTYgMTgwNyAwIFIvQUlQcml2YXRlRGF0YTE3IDE4MDkgMCBSL0FJUHJpdmF0ZURhdGExOCAxODExIDAgUi9BSVByaXZhdGVEYXRhMTkgMTgxMyAwIFIvQUlQcml2YXRlRGF0YTIwIDE4MTUgMCBSL0FJUHJpdmF0ZURhdGEyMSAxODE3IDAgUi9BSVByaXZhdGVEYXRhMjIgMTgxOSAwIFIvQUlQcml2YXRlRGF0YTIzIDE4MjEgMCBSPj4NZW5kb2JqDTYzIDAgb2JqIG51bGwNZW5kb2JqDTExOCAwIG9iaiBudWxsDWVuZG9iag0xODYgMCBvYmogbnVsbA1lbmRvYmoNMjU0IDAgb2JqIG51bGwNZW5kb2JqDTMxMSAwIG9iaiBudWxsDWVuZG9iag00MzYgMCBvYmogbnVsbA1lbmRvYmoNNzA0IDAgb2JqIG51bGwNZW5kb2JqDTEwNTMgMCBvYmogbnVsbA1lbmRvYmoNMTQxNCAwIG9iaiBudWxsDWVuZG9iag0xNzc1IDAgb2JqIG51bGwNZW5kb2JqDTE3NzYgMCBvYmo8PC9MZW5ndGggMTMyNj4+c3RyZWFtDQolIVBTLUFkb2JlLTMuMCANCiUlQ3JlYXRvcjogQWRvYmUgSWxsdXN0cmF0b3IoUikgMTEuMA0KJSVBSThfQ3JlYXRvclZlcnNpb246IDExLjAuMA0KJSVGb3I6IChEb3VnIEthcnIpIChDb2RlcnM0aGlyZSkNCiUlVGl0bGU6IChtYXJrZXJzLmFpKQ0KJSVDcmVhdGlvbkRhdGU6IDcvMzAvMjAwNiA3OjEwIFBNDQolJUJvdW5kaW5nQm94OiAtMzYgLTM2IDU3IDY3DQolJUhpUmVzQm91bmRpbmdCb3g6IC0zNiAtMzYgNTcgNjcNCiUlRG9jdW1lbnRQcm9jZXNzQ29sb3JzOiBDeWFuIE1hZ2VudGEgWWVsbG93IEJsYWNrDQolQUk1X0ZpbGVGb3JtYXQgNy4wDQolQUkzX0NvbG9yVXNhZ2U6IENvbG9yDQolQUk3X0ltYWdlU2V0dGluZ3M6IDANCiUlUkdCUHJvY2Vzc0NvbG9yOiAwIDAgMCAoR2xvYmFsIEJsYWNrKQ0KJSUrIDAuNjYyNyAwLjQ2NjcgMC4zNjQ3IChHbG9iYWwgQ2FmZSkNCiUlKyAwLjQ1MSAwLjc0NTEgMC4xMTc2IChHbG9iYWwgR3JlZW4pDQolJSsgMC44IDAuOCAxIChHbG9iYWwgTGlsYWMpDQolJSsgMC4zNTY5IDAuMjQzMSAwLjEwOTggKEdsb2JhbCBNb2NoYSkNCiUlKyAxIDAuNiAwIChHbG9iYWwgT3JhbmdlKQ0KJSUrIDAuNTAyIDAuNTUyOSAxIChHbG9iYWwgUGVyaXdpbmtsZSkNCiUlKyAwLjk4NDMgMC42ODI0IDEgKEdsb2JhbCBQaW5rKQ0KJSUrIDAuNzI5NCAwIDAgKEdsb2JhbCBSdXN0KQ0KJSUrIDAgMC42Mjc1IDAuNzc2NSAoR2xvYmFsIFNlYSkNCiUlKyAwLjU0MTIgMC44NTg4IDEgKEdsb2JhbCBTa3kpDQolJSsgMSAxIDAuMjQzMSAoR2xvYmFsIFllbGxvdykNCiUlKyAwIDAgMCAoW1JlZ2lzdHJhdGlvbl0pDQolQUkzX0Nyb3BtYXJrczogMCAwIDIxIDMxDQolQUkzX1RlbXBsYXRlQm94OiAxMC41IDE1LjUgMTAuNSAxNS41DQolQUkzX1RpbGVCb3g6IC0yNzcuNSAtMzQ0LjQ5OTkgMjk4LjUgNDA4LjYyMDENCiVBSTNfRG9jdW1lbnRQcmV2aWV3OiBOb25lDQolQUk1X0FydFNpemU6IDIxIDMxDQolQUk1X1J1bGVyVW5pdHM6IDYNCiVBSTlfQ29sb3JNb2RlbDogMQ0KJUFJNV9BcnRGbGFnczogMCAwIDAgMSAwIDAgMSAwIDANCiVBSTVfVGFyZ2V0UmVzb2x1dGlvbjogODAwDQolQUk1X051bUxheWVyczogMjgNCiVBSTlfT3BlblRvVmlldzogLTE4LjI1IDQxLjUgMTYgOTcyIDg1OSAxOCAwIDAgNiA3OCAxIDAgMSAxIDEgMCAxDQolQUk1X09wZW5WaWV3TGF5ZXJzOiA2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY3DQolJVBhZ2VPcmlnaW46MCAwDQolQUk3X0dyaWRTZXR0aW5nczogNzIgOCA3MiA4IDEgMCAwLjggMC44IDAuOCAwLjkgMC45IDAuOQ0KJUFJOV9GbGF0dGVuOiAwDQolJUVuZENvbW1lbnRzDQoNCmVuZHN0cmVhbQ1lbmRvYmoNMTc3NyAwIG9iajw8L0xlbmd0aCAxODQ5MT4+c3RyZWFtDQolJUJvdW5kaW5nQm94OiAwIDAgMjEgMzENCiUlSGlSZXNCb3VuZGluZ0JveDogMCAwLjAwNzggMjEgMzENCiVBSTdfVGh1bWJuYWlsOiA4OCAxMjggOA0KJSVCZWdpbkRhdGE6IDE4MzYyIEhleCBCeXRlcw0KJTAwMDAzMzAwMDA2NjAwMDA5OTAwMDBDQzAwMzMwMDAwMzMzMzAwMzM2NjAwMzM5OTAwMzNDQzAwMzNGRg0KJTAwNjYwMDAwNjYzMzAwNjY2NjAwNjY5OTAwNjZDQzAwNjZGRjAwOTkwMDAwOTkzMzAwOTk2NjAwOTk5OQ0KJTAwOTlDQzAwOTlGRjAwQ0MwMDAwQ0MzMzAwQ0M2NjAwQ0M5OTAwQ0NDQzAwQ0NGRjAwRkYzMzAwRkY2Ng0KJTAwRkY5OTAwRkZDQzMzMDAwMDMzMDAzMzMzMDA2NjMzMDA5OTMzMDBDQzMzMDBGRjMzMzMwMDMzMzMzMw0KJTMzMzM2NjMzMzM5OTMzMzNDQzMzMzNGRjMzNjYwMDMzNjYzMzMzNjY2NjMzNjY5OTMzNjZDQzMzNjZGRg0KJTMzOTkwMDMzOTkzMzMzOTk2NjMzOTk5OTMzOTlDQzMzOTlGRjMzQ0MwMDMzQ0MzMzMzQ0M2NjMzQ0M5OQ0KJTMzQ0NDQzMzQ0NGRjMzRkYwMDMzRkYzMzMzRkY2NjMzRkY5OTMzRkZDQzMzRkZGRjY2MDAwMDY2MDAzMw0KJTY2MDA2NjY2MDA5OTY2MDBDQzY2MDBGRjY2MzMwMDY2MzMzMzY2MzM2NjY2MzM5OTY2MzNDQzY2MzNGRg0KJTY2NjYwMDY2NjYzMzY2NjY2NjY2NjY5OTY2NjZDQzY2NjZGRjY2OTkwMDY2OTkzMzY2OTk2NjY2OTk5OQ0KJTY2OTlDQzY2OTlGRjY2Q0MwMDY2Q0MzMzY2Q0M2NjY2Q0M5OTY2Q0NDQzY2Q0NGRjY2RkYwMDY2RkYzMw0KJTY2RkY2NjY2RkY5OTY2RkZDQzY2RkZGRjk5MDAwMDk5MDAzMzk5MDA2Njk5MDA5OTk5MDBDQzk5MDBGRg0KJTk5MzMwMDk5MzMzMzk5MzM2Njk5MzM5OTk5MzNDQzk5MzNGRjk5NjYwMDk5NjYzMzk5NjY2Njk5NjY5OQ0KJTk5NjZDQzk5NjZGRjk5OTkwMDk5OTkzMzk5OTk2Njk5OTk5OTk5OTlDQzk5OTlGRjk5Q0MwMDk5Q0MzMw0KJTk5Q0M2Njk5Q0M5OTk5Q0NDQzk5Q0NGRjk5RkYwMDk5RkYzMzk5RkY2Njk5RkY5OTk5RkZDQzk5RkZGRg0KJUNDMDAwMENDMDAzM0NDMDA2NkNDMDA5OUNDMDBDQ0NDMDBGRkNDMzMwMENDMzMzM0NDMzM2NkNDMzM5OQ0KJUNDMzNDQ0NDMzNGRkNDNjYwMENDNjYzM0NDNjY2NkNDNjY5OUNDNjZDQ0NDNjZGRkNDOTkwMENDOTkzMw0KJUNDOTk2NkNDOTk5OUNDOTlDQ0NDOTlGRkNDQ0MwMENDQ0MzM0NDQ0M2NkNDQ0M5OUNDQ0NDQ0NDQ0NGRg0KJUNDRkYwMENDRkYzM0NDRkY2NkNDRkY5OUNDRkZDQ0NDRkZGRkZGMDAzM0ZGMDA2NkZGMDA5OUZGMDBDQw0KJUZGMzMwMEZGMzMzM0ZGMzM2NkZGMzM5OUZGMzNDQ0ZGMzNGRkZGNjYwMEZGNjYzM0ZGNjY2NkZGNjY5OQ0KJUZGNjZDQ0ZGNjZGRkZGOTkwMEZGOTkzM0ZGOTk2NkZGOTk5OUZGOTlDQ0ZGOTlGRkZGQ0MwMEZGQ0MzMw0KJUZGQ0M2NkZGQ0M5OUZGQ0NDQ0ZGQ0NGRkZGRkYzM0ZGRkY2NkZGRkY5OUZGRkZDQzExMDAwMDAwMTEwMA0KJTAwMDAxMTExMTExMTIyMDAwMDAwMjIwMDAwMDAyMjIyMjIyMjQ0MDAwMDAwNDQwMDAwMDA0NDQ0NDQ0NA0KJTU1MDAwMDAwNTUwMDAwMDA1NTU1NTU1NTc3MDAwMDAwNzcwMDAwMDA3Nzc3Nzc3Nzg4MDAwMDAwODgwMA0KJTAwMDA4ODg4ODg4OEFBMDAwMDAwQUEwMDAwMDBBQUFBQUFBQUJCMDAwMDAwQkIwMDAwMDBCQkJCQkJCQg0KJUREMDAwMDAwREQwMDAwMDBEREREREREREVFMDAwMDAwRUUwMDAwMDBFRUVFRUVFRTAwMDAwMDAwMDBGRg0KJTAwRkYwMDAwRkZGRkZGMDAwMEZGMDBGRkZGRkYwMEZGRkZGRg0KJTUyNEM0NUZEMDlGRkE4N0QyNzI3RkQzREY4Mjc1MjdEQThGRDExRkZBODI3RkQ0NUY4NTJBOEZEMEVGRg0KJTUyRkQ0OUY4N0RGRDBCRkZBODI3RkQ0QkY4NTJGRDA5RkZBODI3RkQwNUY4MjcyRTVBNUE4NTYwODU1QQ0KJTg1NjA4NTVBODU2MDg1NUE4NTYwODU1QTg1NjA4NTVBODU2MDg1NUE4NTYwODU1QTg1NjA4NTVBODU2MA0KJTg1NUE4NTYwODU1QTg1NjA4NTVBODU2MDg1NUE4NTYwODU1QTg1NjA4NTVBODU2MDg1NUE1OTI4MDVGRA0KJTA1Rjg1MkZEMDdGRkE4MjdGRDA1Rjg1MzYwOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qg0KJTg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4Qg0KJTYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCODU4QjYwMkVGRDA1Rjg1MkZEMDZGRjUyRkQwNA0KJUY4MDU4NThCOEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4QjVBRkQwNUY4N0RGRDA0RkZBOEZEMDRGODAwODU2MTg1NjE4NQ0KJTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NQ0KJTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NQ0KJTYxODU2MTg1NjE4NTg1NUFGRDA1RjhGRDA0RkYyN0ZEMDRGODg1ODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCOEI1QUZEMDRGODdERkZGRkE4RkQwNEY4NTk4NTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4Qg0KJTYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NQ0KJTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1ODUyRQ0KJUY4RjhGODI3RkZGRjdERjhGOEY4Mjc2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjVBRkQwNA0KJUY4QThGRjI3RjhGOEY4Mjg4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1RkQwNEY4NTJGRg0KJTI3RjhGOEY4NUE4QjhCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1NTNGOEY4Rjg3REZGRkQwNA0KJUY4NUE4QjYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MThCMkVGOEY4RjgyN0ZGRkQwNEY4ODU4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODQ4NThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4Qjg1NTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1NUFGOA0KJUY4Rjg1MkZGRkQwNEY4NUE4QjYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MThCMkZGOEY4RjgyNw0KJUZGRkQwNEY4ODU4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4QjhCNTlGOEY4Rjg1MkZGRkQwNA0KJUY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODQ4NThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4Qjg1NTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1NUFGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4QjhCNTlGOA0KJUY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyNw0KJUZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4QjhCNTlGOEY4Rjg1MkZGRkQwNA0KJUY4NUE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODQ4NQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4Qjg1NTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1NUFGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4QjhCNTlGOA0KJUY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCMkZGOEY4RjgyNw0KJUZGRkQwNEY4ODQ4NThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4Qjg1NTlGOEY4Rjg1MkZGRkQwNA0KJUY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1NUFGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCMkZGOEY4RjgyN0ZGRkQwNEY4ODQ4NThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4Qjg1NTlGOA0KJUY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyNw0KJUZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1NUFGOEY4Rjg1MkZGRkQwNA0KJUY4NUE4QjYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODQ4NThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4Qjg1NTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1NUFGOA0KJUY4Rjg1MkZGRkQwNEY4NUE4QjYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MThCMkZGOEY4RjgyNw0KJUZGRkQwNEY4ODU4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4QjhCNTlGOEY4Rjg1MkZGRkQwNA0KJUY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4QjhCNTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODQ4NThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4Qjg1NTlGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1NUFGOEY4Rjg1MkZGRkQwNEY4NUE4QjYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJThCMkZGOEY4RjgyN0ZGRkQwNEY4ODU4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4QjhCNTlGOA0KJUY4Rjg1MkZGRkQwNEY4NUE4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCMkZGOEY4RjgyNw0KJUZGRkQwNEY4ODU4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4QjhCNTlGOEY4Rjg1MkZGRkQwNA0KJUY4NTk4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MQ0KJTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCMkVGOEY4RjgyN0ZGMjdGOEY4Rjg1OQ0KJTg1OEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qg0KJTg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4Qg0KJTYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCODUyRUY4RjhGODdERkYyN0Y4RjhGODI3OEI2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NUZEMDRGODdERkY3REY4RjhGODA1NjA4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI1OUZEMDRGOEZGRkZBOEZEMDRGODJFODU4QjYxODU2MThCNjE4NQ0KJTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4Qg0KJTYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NQ0KJTYxOEI2MTg1NjE4QjYxMjdGOEY4RjgyN0ZGRkZGRjUyRkQwNEY4NUE4QjhCODU4QjYxOEI4NThCNjE4Qg0KJTg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4Qg0KJTYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qg0KJTg1OEI4NTUzRkQwNEY4N0RGRkZGRkZBOEZEMDVGODVBODU4QjYxODU2MTg1NjE4NTYxODU2MTg1NjE4NQ0KJTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NQ0KJTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxOEI4NTUzRkQwNA0KJUY4MjdGRDA1RkY3REZEMDVGODVBOEI4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qg0KJTg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qg0KJTg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1NTNGRDA1RjhBOEZEMDZGRjUyRkQwNQ0KJUY4MkU1QTg1ODU4Qjg1OEI4NThCODU4QjYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4Qg0KJTYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qg0KJTg1OEI4NThCODU4Qjg1ODUzNTI3RkQwNUY4N0RGRDA4RkYyN0ZEMDZGODA1MkUyRjU5NTk1OTJGNTk1OQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MQ0KJThCODU4QjVBNTk1OTU5MkY1OTU5NTkyRjU5NTk1OTJGNTk1OTU5MkY1OTU5NTkyRTJFRkQwN0Y4N0RGRA0KJTBBRkY1MkZEMEVGODVBOEI2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NQ0KJTYxODU2MTg1NjE4NTYxOEI2MEZEMUNGODdERkQwQ0ZGQThGRDBERjg1OThCOEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4QjhCMkVGRDFBRjgyN0E4RkQwRg0KJUZGNTIyN0ZEMEFGODA1OEI2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4Qg0KJTYxODU2MThCNjE4NTg1NUFGRDE5RjgyNzdERkQxM0ZGQTg3RDUyMjc1MjI3MjdGOEY4RjgwNTYwOEI2MQ0KJThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4NUZEMDVGOA0KJTUyMjc1MjI3NTIyNzUyMjc1MjI3NTIyNzUyMjc1MjI3NTIyNzUyN0RGRDFDRkZBODI3RjhGOEY4NTk4NQ0KJTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4QjJFRkQwNA0KJUY4N0RGRDMxRkY1MkY4RjhGODI4OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCNUFGRDA0Rjg1MkZEMzJGRjdERjhGOEY4MDU2MDg1NjE4QjYxODU2MThCNjE4NQ0KJTYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI2MTg1NjEyN0ZEMDRGOEE4RkQzMkZGQTgyN0Y4RjhGOA0KJTVBOEI4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCOEI1OUZEMDRGOA0KJTUyRkQzNEZGMjdGOEY4RjgyNzhCNjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NQ0KJTYxODU2MTYwRkQwNEY4MjdGRDM1RkY3REY4RjhGODI3ODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qg0KJTg1OEI4NThCODU4Qjg1OEI4NThCMjdGRDA0RjhBOEZEMzVGRkE4RkQwNEY4NUE4NTg1NjE4QjYxODU2MQ0KJThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCNjE4QjJGRkQwNEY4NTJGRDM3RkYyN0Y4RjhGODJFOEI4NQ0KJThCNjE4Qjg1OEI2MThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCNjEwNUY4RjhGODI3RkQzOEZGN0RGOA0KJUY4RjgyNzYxOEI2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MTJFRkQwNEY4N0RGRA0KJTM4RkZBOEZEMDRGODg1ODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODU1QUZEMDRGOA0KJTUyRkQzQUZGRkQwNEY4MkU4QjYxODU2MThCNjE4NTYxOEI2MTg1NjE4QjYxODU2MThCODU4NUZEMDVGOA0KJUZEM0JGRjUyRjhGOEY4Mjg4NThCODU4QjYxOEI4NThCNjE4Qjg1OEI2MThCODU4QjYxOEIyRUZEMDRGOA0KJTdERkQzQkZGN0RGRDA0Rjg2MDYxODU2MTg1NjE4NTYxODU2MTg1NjE4NTYxODU2MThCNTlGRDA0RjgyNw0KJUZEM0RGRkZEMDRGODJGOEI4NThCODU4Qjg1OEI4NThCODU4Qjg1OEI4NThCODUyN0ZEMDRGOEE4RkQzRA0KJUZGNTJGOEY4RjgyODYxOEI2MTg1NjE4QjYxODU2MThCNjE4NTYxOEI4NTJGRkQwNEY4NTJGRDNFRkY3RA0KJUZEMDRGODg1ODU4Qjg1OEI2MThCODU4QjYxOEI4NThCODU4NUZEMDRGODI3RkQ0MEZGRkQwNEY4MzU4Qg0KJTYxODU2MTg1NjE4NTYxODU2MTg1NjE4QjA1RkQwNEY4QThGRDQwRkY1MkY4RjhGODJFODU4Qjg1OEI4NQ0KJThCODU4Qjg1OEI4NThCMkZGRDA0Rjg3REZENDFGRjdERkQwNEY4ODU2MThCNjE4NTYxOEI2MTg1NjE4Qg0KJTYwRkQwNEY4MjdBOEZENDJGRkZEMDRGODVBOEI2MThCODU4QjYxOEI4NThCODUyRUZEMDRGODdERkQ0Mw0KJUZGMjdGOEY4RjgyRTg1ODU2MTg1NjE4NTYxODU4NTU5RkQwNEY4MjdGRDQ0RkY3REY4RjhGODA1OEI4NQ0KJThCODU4Qjg1OEI4NTg1RkQwNUY4RkQ0NUZGQThGRDA0Rjg1QThCNjE4QjYxODU2MThCMkVGRDA0Rjg3RA0KJUZENDZGRjI3RjhGOEY4NTk4QjhCNjE4Qjg1OEI1QUZEMDRGODUyRkQ0N0ZGNTJGOEY4RjgwNThCNjE4NQ0KJTYxOEI2MTA1RkQwNEY4QThGRDQ3RkZBOEY4RjhGODI3NjA4Qjg1OEI4QjU5RkQwNEY4N0RGRDQ4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p2Up8/DkCSIwDzzNzKlPRgcNzx+S6wWvCi4Tr8ne3nG9bE67GoMq2tiyr/80mEZxKep1c4e3kmXX9Ou2a5L+qr3XiCY5Atrij2+7O48CDABkjv6yDQplbmRzdHJlYW0NZW5kb2JqDTE4MjMgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAwL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTE5MTEgMCBvYmo8PC9UeXBlL0ZvbnQvRW5jb2RpbmcvSWRlbnRpdHktSC9CYXNlRm9udC9KWUtRVlYrQXJpYWxNVC9TdWJ0eXBlL1R5cGUwL0Rlc2NlbmRhbnRGb250cyAxOTEyIDAgUi9Ub1VuaWNvZGUgMjEyOSAwIFI+Pg1lbmRvYmoNMTkxMiAwIG9ialsxOTEzIDAgUl0NZW5kb2JqDTE5MTMgMCBvYmo8PC9XWzdbNTU2XTM0WzU1Nl1dL1R5cGUvRm9udC9CYXNlRm9udC9KWUtRVlYrQXJpYWxNVC9TdWJ0eXBlL0NJREZvbnRUeXBlMi9DSURTeXN0ZW1JbmZvIDE5MTQgMCBSL0ZvbnREZXNjcmlwdG9yIDE5MTUgMCBSL0RXIDEwMDA+Pg1lbmRvYmoNMTkxNCAwIG9iajw8L09yZGVyaW5nKElkZW50aXR5KS9SZWdpc3RyeShBZG9iZSkvU3VwcGxlbWVudCAwPj4NZW5kb2JqDTE5MTUgMCBvYmo8PC9UeXBlL0ZvbnREZXNjcmlwdG9yL0ZvbnRGaWxlMiAyMTI1IDAgUi9Gb250QkJveFstNjY1IC0zMjUgMjAwMCAxMDA2XS9Gb250TmFtZS9KWUtRVlYrQXJpYWxNVC9GbGFncyA0L1N0ZW1WIDg4L0NhcEhlaWdodCA3MTYvWEhlaWdodCA1MTkvQXNjZW50IDEwMDYvRGVzY2VudCAtMzI1L0l0YWxpY0FuZ2xlIDA+Pg1lbmRvYmoNMTk4OCAwIG9iaiAxMzg4DWVuZG9iag0xOTg5IDAgb2JqPDwvTGVuZ3RoIDE5ODggMCBSPj5zdHJlYW0NCjEgMCAwIC0xIDAgMCBjbQowIDAgMCBSRwowIGkgMSB3IDQgTSAwIGogMCBKIFtdMCBkIAovR1MwIGdzCjEwLjI1IC0xOS42ODc1IG0KMTAuMjUgLTE5LjY4NzUgMTAuMjUgLTE0LjU2MjUgMTAuMjUgLTE0LjU2MjUgYwpTCjcuNjI1IC0xNC44MTI1IG0KNy42MjUgLTE0LjgxMjUgMTIuNjg3NSAtMTQuODEyNSAxMi42ODc1IC0xNC44MTI1IGMKUwowLjAwMzkyIDAuNjc4NDQgMC4zMDU4OCByZwo5LjEyNSAtMjQuODEyNSBtCjkuMTI1IC0yMy44ODAzNyA4LjU2NTQzIC0yMy4xMjUgNy44NzUgLTIzLjEyNSBjCjcuMTg0NTcgLTIzLjEyNSA2LjYyNSAtMjMuODgwMzcgNi42MjUgLTI0LjgxMjUgYwo2LjYyNSAtMjUuNzQ0NjMgNy4xODQ1NyAtMjYuNSA3Ljg3NSAtMjYuNSBjCjguNTY1NDMgLTI2LjUgOS4xMjUgLTI1Ljc0NDYzIDkuMTI1IC0yNC44MTI1IGMKaApmCjkuMTI1IC0yNC44MTI1IG0KOS4xMjUgLTIzLjg4MDM3IDguNTY1NDMgLTIzLjEyNSA3Ljg3NSAtMjMuMTI1IGMKNy4xODQ1NyAtMjMuMTI1IDYuNjI1IC0yMy44ODAzNyA2LjYyNSAtMjQuODEyNSBjCjYuNjI1IC0yNS43NDQ2MyA3LjE4NDU3IC0yNi41IDcuODc1IC0yNi41IGMKOC41NjU0MyAtMjYuNSA5LjEyNSAtMjUuNzQ0NjMgOS4xMjUgLTI0LjgxMjUgYwpoClMKMSAxIDEgcmcKMTAuMjk5OCAtMTkuNjMwMzcgbQoxMC4yOTk4IC0xOS42MzAzNyA3LjY3MTg4IC0yMS44MzAwOCA3LjY3MTg4IC0yMS44MzAwOCBjCjcuNjcxODggLTIxLjgzMDA4IDUuMDQzNDYgLTI0LjAyNzgzIDUuMDQzNDYgLTI0LjAyNzgzIGMKNS4wNDM0NiAtMjQuMDI3ODMgMTAuMjc0NDEgLTI0LjA1ODExIDEwLjI3NDQxIC0yNC4wNTgxMSBjCjEwLjI3NDQxIC0yNC4wNTgxMSAxNS41MDQ4OCAtMjQuMDg4MzggMTUuNTA0ODggLTI0LjA4ODM4IGMKMTUuNTA0ODggLTI0LjA4ODM4IDEyLjkwMjM0IC0yMS44NTkzOCAxMi45MDIzNCAtMjEuODU5MzggYwoxMi45MDIzNCAtMjEuODU5MzggMTAuMjk5OCAtMTkuNjMwMzcgMTAuMjk5OCAtMTkuNjMwMzcgYwpoCmYKMTAuMjk5OCAtMTkuNjMwMzcgbQoxMC4yOTk4IC0xOS42MzAzNyA3LjY3MTg4IC0yMS44MzAwOCA3LjY3MTg4IC0yMS44MzAwOCBjCjcuNjcxODggLTIxLjgzMDA4IDUuMDQzNDYgLTI0LjAyNzgzIDUuMDQzNDYgLTI0LjAyNzgzIGMKNS4wNDM0NiAtMjQuMDI3ODMgMTAuMjc0NDEgLTI0LjA1ODExIDEwLjI3NDQxIC0yNC4wNTgxMSBjCjEwLjI3NDQxIC0yNC4wNTgxMSAxNS41MDQ4OCAtMjQuMDg4MzggMTUuNTA0ODggLTI0LjA4ODM4IGMKMTUuNTA0ODggLTI0LjA4ODM4IDEyLjkwMjM0IC0yMS44NTkzOCAxMi45MDIzNCAtMjEuODU5MzggYwoxMi45MDIzNCAtMjEuODU5MzggMTAuMjk5OCAtMTkuNjMwMzcgMTAuMjk5OCAtMTkuNjMwMzcgYwpoClMKDQplbmRzdHJlYW0NZW5kb2JqDTE5OTAgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAwL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTE5OTEgMCBvYmogMTE2NQ1lbmRvYmoNMTk5MiAwIG9iajw8L0xlbmd0aCAxOTkxIDAgUj4+c3RyZWFtDQoxIDAgMCAtMSAwIDAgY20KMSAxIDAuMjQzMTMgcmcKMCBpIAovR1MwIGdzCjguNSAtMjUuMTU2MjUgbQo4LjUgLTI0LjAzNDY3IDcuNTIxNDggLTIzLjEyNSA2LjMxMjUgLTIzLjEyNSBjCjUuMTAzNTIgLTIzLjEyNSA0LjEyNSAtMjQuMDM0NjcgNC4xMjUgLTI1LjE1NjI1IGMKNC4xMjUgLTI2LjI3NzgzIDUuMTAzNTIgLTI3LjE4NzUgNi4zMTI1IC0yNy4xODc1IGMKNy41MjE0OCAtMjcuMTg3NSA4LjUgLTI2LjI3NzgzIDguNSAtMjUuMTU2MjUgYwpoCmYKMCAwIDAgUkcKMSB3IDQgTSAwIGogMCBKIFtdMCBkIAo4LjUgLTI1LjE1NjI1IG0KOC41IC0yNC4wMzQ2NyA3LjUyMTQ4IC0yMy4xMjUgNi4zMTI1IC0yMy4xMjUgYwo1LjEwMzUyIC0yMy4xMjUgNC4xMjUgLTI0LjAzNDY3IDQuMTI1IC0yNS4xNTYyNSBjCjQuMTI1IC0yNi4yNzc4MyA1LjEwMzUyIC0yNy4xODc1IDYuMzEyNSAtMjcuMTg3NSBjCjcuNTIxNDggLTI3LjE4NzUgOC41IC0yNi4yNzc4MyA4LjUgLTI1LjE1NjI1IGMKaApTCjMuMzEyNSAtMTYuNTYyNSBtCjMuMzEyNSAtMTYuNTYyNSAxNS45Mzc1IC0xNi41NjI1IDE1LjkzNzUgLTE2LjU2MjUgYwpTCjE1LjUgLTE2LjYyNSBtCjE1LjUgLTE2LjYyNSAxOC41IC0yMC41NjI1IDE4LjUgLTIwLjU2MjUgYwpTCjAgMCAwIHJnCjE2LjE2Njk5IC0xOS42ODIxMyBtCjE2LjE2Njk5IC0xOS42ODIxMyAxNC4xODc1IC0yMS4yMjA3IDE0LjE4NzUgLTIxLjIyMDcgYwoxNC4xODc1IC0yMS4yMjA3IDE1Ljc2OTUzIC0yMy4yNTUzNyAxNS43Njk1MyAtMjMuMjU1MzcgYwoxNS43Njk1MyAtMjMuMjU1MzcgMTcuNzUgLTIxLjcxNjggMTcuNzUgLTIxLjcxNjggYwoxNy43NSAtMjEuNzE2OCAxNi4xNjY5OSAtMTkuNjgyMTMgMTYuMTY2OTkgLTE5LjY4MjEzIGMKaApmCjE1LjgwODU5IC0yMC4zMjg2MSBtCjE1LjE4NjUyIC0xNy43MTE5MSAxMC4zNjU3MiAtMTcuOTM1MDYgMy42Mjg5MSAtMTcuOTExNjIgYwpTCjUuMTg3NSAtMTYuNTYyNSBtCjUuMTg3NSAtMTYuNTYyNSA0LjA2MjUgLTE0LjA2MjUgNC4wNjI1IC0xNC4wNjI1IGMKUwoxNC4yNTc4MSAtMTYuNzUgbQoxNC4yNTc4MSAtMTYuNzUgMTUuNDI5NjkgLTE0IDE1LjQyOTY5IC0xNCBjClMKMTEuNSAtMjAuMDYyNSBtCjExLjUgLTIwLjA2MjUgMTMuNzUgLTE4Ljc1IDEzLjc1IC0xOC43NSBjClMKDQplbmRzdHJlYW0NZW5kb2JqDTE5OTMgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAwL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTE5OTQgMCBvYmogNzkyDWVuZG9iag0xOTk1IDAgb2JqPDwvTGVuZ3RoIDE5OTQgMCBSPj5zdHJlYW0NCnEKL0dTMCBncwoxNiAwIDAgMTYgMjQgNyBjbQovSW0wIERvClEKMSAwIDAgLTEgMCAwIGNtCjAgMCAwIHJnCjAgaSAKL0dTMSBncwo5Ljg3NSAtMjQgbQo5Ljg3NSAtMjQgNyAtMjQgNyAtMjQgYwo3IC0yNCA3IC0yNy4wNjI1IDcgLTI3LjA2MjUgYwo3IC0yNy4wNjI1IDkuODc1IC0yNy4wNjI1IDkuODc1IC0yNy4wNjI1IGMKOS44NzUgLTI3LjA2MjUgOS44NzUgLTI0IDkuODc1IC0yNCBjCmgKZgowIDAgMCBSRwoxLjUgdyA0IE0gMCBqIDAgSiBbXTAgZCAKOS4xMjUgLTI1IG0KOS4xMjUgLTI1IDE0LjMxMjUgLTEzLjgxMjUgMTQuMzEyNSAtMTMuODEyNSBjClMKOC40Mzc1IC0xMy44MTI1IG0KOC40Mzc1IC0xMy44MTI1IDExLjM3NSAtMjAuMDYyNSAxMS4zNzUgLTIwLjA2MjUgYwpTCjEgdyAKOS40NzY1NiAtMjIuOTYyNCBtCjkuNDc2NTYgLTIyLjk2MjQgNi4xNDg0NCAtMjAuNDEyNiA2LjE0ODQ0IC0yMC40MTI2IGMKUwo2LjA2MjUgLTIyLjg3NSBtCjYuMDYyNSAtMjIuODc1IDYuMDYyNSAtMTMuOTM3NSA2LjA2MjUgLTEzLjkzNzUgYwpTCjEzLjM4OTY1IC0xOS41ODU5NCBtCjEzLjM4OTY1IC0xOS41ODU5NCAxMS4wNDk4IC0yNC41NjI5OSAxMS4wNDk4IC0yNC41NjI5OSBjCjExLjA0OTggLTI0LjU2Mjk5IDEyLjg2MDM1IC0yNS40MTQwNiAxMi44NjAzNSAtMjUuNDE0MDYgYwoxMi44NjAzNSAtMjUuNDE0MDYgMTUuMjAwMiAtMjAuNDM3MDEgMTUuMjAwMiAtMjAuNDM3MDEgYwoxNS4yMDAyIC0yMC40MzcwMSAxMy4zODk2NSAtMTkuNTg1OTQgMTMuMzg5NjUgLTE5LjU4NTk0IGMKaApmCg0KZW5kc3RyZWFtDWVuZG9iag0xOTk2IDAgb2JqIDgyDWVuZG9iag0xOTk3IDAgb2JqPDwvTGVuZ3RoIDE5OTYgMCBSL0ZpbHRlci9GbGF0ZURlY29kZS9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2x1bW5zIDE2L1ByZWRpY3RvciAxNS9Db2xvcnMgMz4+L1dpZHRoIDE2L0hlaWdodCAxNi9CaXRzUGVyQ29tcG9uZW50IDgvQ29sb3JTcGFjZS9EZXZpY2VSR0IvVHlwZS9YT2JqZWN0L05hbWUvWC9TdWJ0eXBlL0ltYWdlPj5zdHJlYW0NCkiJYvz//z8DKYBxIDQwMjICSaA4kIFFFr8GCIOwk/DowacBq8NQOWA5uGpM92DRgGwwVj1YbEDWSZoGwp4mUwOaInQuRRqIASRrAAgwACy3feENCmVuZHN0cmVhbQ1lbmRvYmoNMTk5OCAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDEvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMTk5OSAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDAvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjAwMCAwIG9iaiAxODczDWVuZG9iag0yMDAxIDAgb2JqPDwvTGVuZ3RoIDIwMDAgMCBSPj5zdHJlYW0NCnEKL0dTMCBncwoxNiAwIDAgMTYgMjMuMTg3NSAxMS4zMTI1IGNtCi9JbTAgRG8KUQoxIDAgMCAtMSAwIDAgY20KMCAwIDAgcmcKMCBpIAovR1MxIGdzCjE1LjA2MjUgLTIwLjYyNSBtCjE1LjA2MjUgLTIwLjYyNSAxMi42MjUgLTIwLjYyNSAxMi42MjUgLTIwLjYyNSBjCjEyLjYyNSAtMjAuNjI1IDEyLjYyNSAtMjIuODc1IDEyLjYyNSAtMjIuODc1IGMKMTIuNjI1IC0yMi44NzUgMTUuMDYyNSAtMjIuODc1IDE1LjA2MjUgLTIyLjg3NSBjCjE1LjA2MjUgLTIyLjg3NSAxNS4wNjI1IC0yMC42MjUgMTUuMDYyNSAtMjAuNjI1IGMKaApmCjAgMCAwIFJHCjEgdyA0IE0gMCBqIDAgSiBbXTAgZCAKMTMuNzE1ODIgLTE2LjA4MTU0IG0KMTMuNzU2ODQgLTE5LjY2ODk1IDEwLjA0MTk5IC0yMi42MTUyMyA1LjQwOTE4IC0yMi42Njg0NiBjClMKMTIuNDgxNDUgLTE4LjcyMDIxIG0KMTIuNDgxNDUgLTE4LjcyMDIxIDYuODU5ODYgLTE1LjEyMzA1IDYuODU5ODYgLTE1LjEyMzA1IGMKNi44NTk4NiAtMTUuMTIzMDUgNS4xNDIwOSAtMTcuODA4MTEgNS4xNDIwOSAtMTcuODA4MTEgYwo1LjE0MjA5IC0xNy44MDgxMSAxMC43NjQ2NSAtMjEuNDA1MjcgMTAuNzY0NjUgLTIxLjQwNTI3IGMKMTAuNzY0NjUgLTIxLjQwNTI3IDEyLjQ4MTQ1IC0xOC43MjAyMSAxMi40ODE0NSAtMTguNzIwMjEgYwpoCmYKMCAwLjYyNzUgMC43NzY1IHJnCjE3LjU2MjUgLTE1LjEyNSBtCjE3LjU2MjUgLTE1LjEyNSAzLjEyNSAtMTUuMTI1IDMuMTI1IC0xNS4xMjUgYwozLjEyNSAtMTUuMTI1IDUuMjU5NzcgLTE3Ljg0MDMzIDYuMTU4NjkgLTE3Ljg0MDMzIGMKNy4wNTc2MiAtMTcuODQwMzMgNy4wMDA5OCAtMTYuMDQ2MzkgOC4wNjgzNiAtMTYuMDQ2MzkgYwo5LjEzNTc0IC0xNi4wNDYzOSA5LjUyOTMgLTE3LjkzNzUgMTAuNTQwNTMgLTE3LjkzNzUgYwoxMS41NTE3NiAtMTcuOTM3NSAxMi4xNjk5MiAtMTYuMDQ2MzkgMTMuMDY4MzYgLTE2LjA0NjM5IGMKMTMuOTY2OCAtMTYuMDQ2MzkgMTQuMjQ4MDUgLTE3LjkzNzUgMTUuMjAzMTMgLTE3LjkzNzUgYwoxNi4xNTgyIC0xNy45Mzc1IDE3LjU2MjUgLTE1LjEyNSAxNy41NjI1IC0xNS4xMjUgYwpoCmYKMTcuNTYyNSAtMTUuMTI1IG0KMTcuNTYyNSAtMTUuMTI1IDMuMTI1IC0xNS4xMjUgMy4xMjUgLTE1LjEyNSBjCjMuMTI1IC0xNS4xMjUgNS4yNTk3NyAtMTcuODQwMzMgNi4xNTg2OSAtMTcuODQwMzMgYwo3LjA1NzYyIC0xNy44NDAzMyA3LjAwMDk4IC0xNi4wNDYzOSA4LjA2ODM2IC0xNi4wNDYzOSBjCjkuMTM1NzQgLTE2LjA0NjM5IDkuNTI5MyAtMTcuOTM3NSAxMC41NDA1MyAtMTcuOTM3NSBjCjExLjU1MTc2IC0xNy45Mzc1IDEyLjE2OTkyIC0xNi4wNDYzOSAxMy4wNjgzNiAtMTYuMDQ2MzkgYwoxMy45NjY4IC0xNi4wNDYzOSAxNC4yNDgwNSAtMTcuOTM3NSAxNS4yMDMxMyAtMTcuOTM3NSBjCjE2LjE1ODIgLTE3LjkzNzUgMTcuNTYyNSAtMTUuMTI1IDE3LjU2MjUgLTE1LjEyNSBjCmgKUwoxNy41IC0xNC41NjI1IG0KMTcuNSAtMTQuNTYyNSAzLjA2MjUgLTE0LjU2MjUgMy4wNjI1IC0xNC41NjI1IGMKMy4wNjI1IC0xNC41NjI1IDUuMTk3MjcgLTE3LjMzODM4IDYuMDk2MTkgLTE3LjMzODM4IGMKNi45OTUxMiAtMTcuMzM4MzggNi45Mzg0OCAtMTUuNTA0MzkgOC4wMDU4NiAtMTUuNTA0MzkgYwo5LjA3MzI0IC0xNS41MDQzOSA5LjQ2NjggLTE3LjQzNzUgMTAuNDc4NTIgLTE3LjQzNzUgYwoxMS40ODkyNiAtMTcuNDM3NSAxMi4xMDc0MiAtMTUuNTA0MzkgMTMuMDA1ODYgLTE1LjUwNDM5IGMKMTMuOTA0MyAtMTUuNTA0MzkgMTQuMTg1NTUgLTE3LjQzNzUgMTUuMTQwNjMgLTE3LjQzNzUgYwoxNi4wOTU3IC0xNy40Mzc1IDE3LjUgLTE0LjU2MjUgMTcuNSAtMTQuNTYyNSBjCmgKZgoNCmVuZHN0cmVhbQ1lbmRvYmoNMjAwMiAwIG9iaiA5Mw1lbmRvYmoNMjAwMyAwIG9iajw8L0xlbmd0aCAyMDAyIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGUvRGVjb2RlUGFybXM8PC9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAxNi9QcmVkaWN0b3IgMTUvQ29sb3JzIDM+Pi9XaWR0aCAxNi9IZWlnaHQgMTYvQml0c1BlckNvbXBvbmVudCA4L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1R5cGUvWE9iamVjdC9OYW1lL1gvU3VidHlwZS9JbWFnZT4+c3RyZWFtDQpIidSPURLAMARE62QcnZOJGTNaU5L2L/G11j4RUNXrT8ERAMBsS5pZNLT77qRMNM/FkZsB3SNfT+qY9qRS34C5zExEfnepEyAi3tvMEm+NiPWnl7UhMAQYADFGa+ENCmVuZHN0cmVhbQ1lbmRvYmoNMjAwNCAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDEvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjAwNSAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDAvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjAwNiAwIG9iaiAxOTYyDWVuZG9iag0yMDA3IDAgb2JqPDwvTGVuZ3RoIDIwMDYgMCBSPj5zdHJlYW0NCjEgMCAwIC0xIDAgMCBjbQowIDAuNjI3NSAwLjc3NjUgcmcKMCBpIAovR1MwIGdzCjE1LjYwMTU2IC0xMy42Nzc3MyBtCjE1LjYwMTU2IC0xMy42Nzc3MyAzLjg5Nzk1IC0xOC44NTY0NSAzLjg5Nzk1IC0xOC44NTY0NSBjCjMuODk3OTUgLTE4Ljg1NjQ1IDYuMjkxMDIgLTE5LjU4ODM4IDcuMDE5NTMgLTE5LjI2NTYzIGMKNy43NDg1NCAtMTguOTQzMzYgNy4yNjQ2NSAtMTcuOTc0NjEgOC4xMjk4OCAtMTcuNTkxOCBjCjguOTk0NjMgLTE3LjIwODUgOS43NzUzOSAtMTguMTA5ODYgMTAuNTk1NyAtMTcuNzQ3MDcgYwoxMS40MTUwNCAtMTcuMzg0NzcgMTEuNDU0MSAtMTYuMTIwMTIgMTIuMTgzNTkgLTE1Ljc5Nzg1IGMKMTIuOTEwMTYgLTE1LjQ3NTEgMTMuNTk5NjEgLTE2LjQxNjk5IDE0LjM3NDAyIC0xNi4wNzQ3MSBjCjE1LjE0ODQ0IC0xNS43MzE5MyAxNS42MDE1NiAtMTMuNjc3NzMgMTUuNjAxNTYgLTEzLjY3NzczIGMKaApmCjAgMCAwIFJHCjEgdyA0IE0gMCBqIDAgSiBbXTAgZCAKMTUuNjAxNTYgLTEzLjY3NzczIG0KMTUuNjAxNTYgLTEzLjY3NzczIDMuODk3OTUgLTE4Ljg1NjQ1IDMuODk3OTUgLTE4Ljg1NjQ1IGMKMy44OTc5NSAtMTguODU2NDUgNi4yOTEwMiAtMTkuNTg4MzggNy4wMTk1MyAtMTkuMjY1NjMgYwo3Ljc0ODU0IC0xOC45NDMzNiA3LjI2NDY1IC0xNy45NzQ2MSA4LjEyOTg4IC0xNy41OTE4IGMKOC45OTQ2MyAtMTcuMjA4NSA5Ljc3NTM5IC0xOC4xMDk4NiAxMC41OTU3IC0xNy43NDcwNyBjCjExLjQxNTA0IC0xNy4zODQ3NyAxMS40NTQxIC0xNi4xMjAxMiAxMi4xODM1OSAtMTUuNzk3ODUgYwoxMi45MTAxNiAtMTUuNDc1MSAxMy41OTk2MSAtMTYuNDE2OTkgMTQuMzc0MDIgLTE2LjA3NDcxIGMKMTUuMTQ4NDQgLTE1LjczMTkzIDE1LjYwMTU2IC0xMy42Nzc3MyAxNS42MDE1NiAtMTMuNjc3NzMgYwpoClMKMC41NDEyIDAuODU4OCAxIHJnCjE1LjE5MDQzIC0xMi44NjYyMSBtCjE1LjE5MDQzIC0xMi44NjYyMSAzLjg0MjI5IC0xOC4yMzk3NSAzLjg0MjI5IC0xOC4yMzk3NSBjCjMuODQyMjkgLTE4LjIzOTc1IDYuNDIyODUgLTE5LjM1MTU2IDcuMTI4OTEgLTE5LjAxNjExIGMKNy44MzU5NCAtMTguNjgxNjQgNy4xOTU4IC0xNy40NDQ4MiA4LjAzNDY3IC0xNy4wNDY4OCBjCjguODczNTQgLTE2LjY0OTQxIDkuODExMDQgLTE3LjgzMDU3IDEwLjYwNTk2IC0xNy40NTMxMyBjCjExLjQwMTM3IC0xNy4wNzcxNSAxMS4yNTg3OSAtMTUuNTIwNTEgMTEuOTYzODcgLTE1LjE4NTU1IGMKMTIuNjY4OTUgLTE0Ljg1MDU5IDEzLjUxOTUzIC0xNi4wNzQyMiAxNC4yNjk1MyAtMTUuNzE3NzcgYwoxNS4wMjA1MSAtMTUuMzYyMyAxNS4xOTA0MyAtMTIuODY2MjEgMTUuMTkwNDMgLTEyLjg2NjIxIGMKaApmCjAgMCAwIHJnCjEyLjM3ODkxIC0yNC44MDM3MSBtCjEyLjM3ODkxIC0yNC44MDM3MSAxMC40MTAxNiAtMjUuNzEwNDUgMTAuNDEwMTYgLTI1LjcxMDQ1IGMKMTAuNDEwMTYgLTI1LjcxMDQ1IDExLjIxOTczIC0yNy40NjYzMSAxMS4yMTk3MyAtMjcuNDY2MzEgYwoxMS4yMTk3MyAtMjcuNDY2MzEgMTMuMTg3NSAtMjYuNTYwNTUgMTMuMTg3NSAtMjYuNTYwNTUgYwoxMy4xODc1IC0yNi41NjA1NSAxMi4zNzg5MSAtMjQuODAzNzEgMTIuMzc4OTEgLTI0LjgwMzcxIGMKaApmCjEwLjE4MDY2IC0yNC42OTE0MSBtCjEwLjE4MDY2IC0yNC42OTE0MSAxMy44MDM3MSAtMjEuNTc4MTMgMTMuODAzNzEgLTIxLjU3ODEzIGMKUwo4LjAyNDQxIC0yMC41MjYzNyBtCjguMDI0NDEgLTIwLjUyNjM3IDEzLjIzMjQyIC0xOC4xMjg5MSAxMy4yMzI0MiAtMTguMTI4OTEgYwpTCjEwLjkxNzk3IC0yNC4zNTQ0OSBtCjEwLjkxNzk3IC0yNC4zNTQ0OSAxMC40OTYwOSAtMTkuMzg3NyAxMC40OTYwOSAtMTkuMzg3NyBjClMKMTIuOTQyMzggLTE4LjIwOTk2IG0KMTIuOTQyMzggLTE4LjIwOTk2IDEzLjg4NTc0IC0xOC43NjIyMSAxMy44ODU3NCAtMTguNzYyMjEgYwpTCg0KZW5kc3RyZWFtDWVuZG9iag0yMDA4IDAgb2JqPDwvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9PUCBmYWxzZS9vcCBmYWxzZS9PUE0gMC9jYSAxLjAvQ0EgMS4wL0JNL05vcm1hbC9TTWFzay9Ob25lL0FJUyBmYWxzZT4+DWVuZG9iag0yMDA5IDAgb2JqIDYxOA1lbmRvYmoNMjAxMCAwIG9iajw8L0xlbmd0aCAyMDA5IDAgUj4+c3RyZWFtDQpxCi9HUzAgZ3MKMTYgMCAwIDE2IDI1IDcgY20KL0ltMCBEbwpRCjEgMCAwIC0xIDAgMCBjbQowIDAgMCByZwowIGkgCi9HUzEgZ3MKNy42MjUgLTIzLjg3MjU2IG0KNy42MjUgLTIzLjg3MjU2IDQuOTM3NSAtMjMuODcyNTYgNC45Mzc1IC0yMy44NzI1NiBjCjQuOTM3NSAtMjMuODcyNTYgNC45Mzc1IC0yNi44MTI1IDQuOTM3NSAtMjYuODEyNSBjCjQuOTM3NSAtMjYuODEyNSA3LjYyNSAtMjYuODEyNSA3LjYyNSAtMjYuODEyNSBjCjcuNjI1IC0yNi44MTI1IDcuNjI1IC0yMy44NzI1NiA3LjYyNSAtMjMuODcyNTYgYwpoCmYKMCAwIDAgUkcKMSB3IDQgTSAwIGogMCBKIFtdMCBkIAo0LjkzNzUgLTIyLjM2NzE5IG0KNC45Mzc1IC0yMi4zNjcxOSAxNCAtMjIuMzY3MTkgMTQgLTIyLjM2NzE5IGMKUwo0LjkzNzUgLTE1LjE5Njc4IG0KNC45Mzc1IC0xNS4xOTY3OCAxNS44MTI1IC0xNS4xOTY3OCAxNS44MTI1IC0xNS4xOTY3OCBjClMKNi44ODYyMyAtMjIuMzIzMjQgbQo2Ljg4NjIzIC0yMi4zMjMyNCAxMC4xMDA1OSAtMTUuMTk1OCAxMC4xMDA1OSAtMTUuMTk1OCBjClMKMTUuMjUgLTE1LjEyNSBtCjE1LjI1IC0xNS4xMjUgMTYuNDM3NSAtMTYuNDg3MyAxNi40Mzc1IC0xNi40ODczIGMKUwoNCmVuZHN0cmVhbQ1lbmRvYmoNMjAxMSAwIG9iaiA3Mw1lbmRvYmoNMjAxMiAwIG9iajw8L0xlbmd0aCAyMDExIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGUvRGVjb2RlUGFybXM8PC9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAxNi9QcmVkaWN0b3IgMTUvQ29sb3JzIDM+Pi9XaWR0aCAxNi9IZWlnaHQgMTYvQml0c1BlckNvbXBvbmVudCA4L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1R5cGUvWE9iamVjdC9OYW1lL1gvU3VidHlwZS9JbWFnZT4+c3RyZWFtDQpIiWL8//8/AymAkb4aGBkZgSR+IyjTQKaTkAGmceg2APWQ5iSC3sBiHn5LsGvAYwl2w9AsQeYisTCCCA5QNA++xAcQYADFTE3hDQplbmRzdHJlYW0NZW5kb2JqDTIwMTMgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAxL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwMTQgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAwL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwMTUgMCBvYmogNzM2DWVuZG9iag0yMDE2IDAgb2JqPDwvTGVuZ3RoIDIwMTUgMCBSPj5zdHJlYW0NCjEgMCAwIC0xIDAgMCBjbQoxIDAuMTAxOTYgMCByZwowIGkgCi9HUzAgZ3MKMTYuNTYyNSAtMTUuNDM3NSBtCjE2LjU2MjUgLTE1LjQzNzUgNC4yNSAtMTUuNDM3NSA0LjI1IC0xNS40Mzc1IGMKNC4yNSAtMTUuNDM3NSA0LjI1IC0yNi41IDQuMjUgLTI2LjUgYwo0LjI1IC0yNi41IDE2LjU2MjUgLTI2LjUgMTYuNTYyNSAtMjYuNSBjCjE2LjU2MjUgLTI2LjUgMTYuNTYyNSAtMTUuNDM3NSAxNi41NjI1IC0xNS40Mzc1IGMKaApmCjEgMSAxIHJnCjE2LjU2MjUgLTE3LjA2MjUgbQoxNi41NjI1IC0xNy4wNjI1IDE2LjUgLTE1LjUgMTYuNSAtMTUuNSBjCjE2LjUgLTE1LjUgMTQuNzUgLTE1LjQzNzUgMTQuNzUgLTE1LjQzNzUgYwoxNC43NSAtMTUuNDM3NSA0LjI1IC0yNC42ODc1IDQuMjUgLTI0LjY4NzUgYwo0LjI1IC0yNC42ODc1IDQuMjUgLTI2LjUgNC4yNSAtMjYuNSBjCjQuMjUgLTI2LjUgNi4xODc1IC0yNi40Mzc1IDYuMTg3NSAtMjYuNDM3NSBjCjYuMTg3NSAtMjYuNDM3NSAxNi41NjI1IC0xNy4wNjI1IDE2LjU2MjUgLTE3LjA2MjUgYwpoCmYKMCAwIDAgUkcKMSB3IDQgTSAwIGogMCBKIFtdMCBkIAoxNi43NSAtMTUuMjUgbQoxNi43NSAtMTUuMjUgNCAtMTUuMjUgNCAtMTUuMjUgYwo0IC0xNS4yNSA0IC0yNi44NzUgNCAtMjYuODc1IGMKNCAtMjYuODc1IDE2Ljc1IC0yNi44NzUgMTYuNzUgLTI2Ljg3NSBjCjE2Ljc1IC0yNi44NzUgMTYuNzUgLTE1LjI1IDE2Ljc1IC0xNS4yNSBjCmgKUwoNCmVuZHN0cmVhbQ1lbmRvYmoNMjAxNyAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDAvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjAxOCAwIG9iaiAxNzU4DWVuZG9iag0yMDE5IDAgb2JqPDwvTGVuZ3RoIDIwMTggMCBSPj5zdHJlYW0NCnEKL0dTMCBncwoxNiAwIDAgMTYgMjIgOCBjbQovSW0wIERvClEKMSAwIDAgLTEgMCAwIGNtCjAgMCAwIHJnCjAgaSAKL0dTMSBncwoxNi4xMjUgLTE2LjU2MjUgbQoxNi4xMjUgLTE2LjU2MjUgNCAtMTYuNTYyNSA0IC0xNi41NjI1IGMKNCAtMTYuNTYyNSA0IC0yMS41NjI1IDQgLTIxLjU2MjUgYwo0IC0yMS41NjI1IDE2LjEyNSAtMjEuNTYyNSAxNi4xMjUgLTIxLjU2MjUgYwoxNi4xMjUgLTIxLjU2MjUgMTYuMTI1IC0xNi41NjI1IDE2LjEyNSAtMTYuNTYyNSBjCmgKZgowIDAgMCBSRwoxIHcgNCBNIDAgaiAwIEogW10wIGQgCjE2LjEyNSAtMTYuNTYyNSBtCjE2LjEyNSAtMTYuNTYyNSA0IC0xNi41NjI1IDQgLTE2LjU2MjUgYwo0IC0xNi41NjI1IDQgLTIxLjU2MjUgNCAtMjEuNTYyNSBjCjQgLTIxLjU2MjUgMTYuMTI1IC0yMS41NjI1IDE2LjEyNSAtMjEuNTYyNSBjCjE2LjEyNSAtMjEuNTYyNSAxNi4xMjUgLTE2LjU2MjUgMTYuMTI1IC0xNi41NjI1IGMKaApTCjAuODc4NDMgMC44Nzg0MyAwLjg3ODQzIHJnCjE0LjM3NSAtMjEuNjI1IG0KMTQuMzc1IC0yMS42MjUgMTAuMjUgLTIxLjYyNSAxMC4yNSAtMjEuNjI1IGMKMTAuMjUgLTIxLjYyNSAxMC4yNSAtMjQuMjUgMTAuMjUgLTI0LjI1IGMKMTAuMjUgLTI0LjI1IDE0LjM3NSAtMjQuMjUgMTQuMzc1IC0yNC4yNSBjCjE0LjM3NSAtMjQuMjUgMTQuMzc1IC0yMS42MjUgMTQuMzc1IC0yMS42MjUgYwpoCmYKMTQuMzc1IC0yMS42MjUgbQoxNC4zNzUgLTIxLjYyNSAxMC4yNSAtMjEuNjI1IDEwLjI1IC0yMS42MjUgYwoxMC4yNSAtMjEuNjI1IDEwLjI1IC0yNC4yNSAxMC4yNSAtMjQuMjUgYwoxMC4yNSAtMjQuMjUgMTQuMzc1IC0yNC4yNSAxNC4zNzUgLTI0LjI1IGMKMTQuMzc1IC0yNC4yNSAxNC4zNzUgLTIxLjYyNSAxNC4zNzUgLTIxLjYyNSBjCmgKUwowLjQ1MSAwLjc0NTEgMC4xMTc2IHJnCjYuMzc1IC0yMy4wNjI1IG0KNi4zNzUgLTIzLjA2MjUgNCAtMjMuMDYyNSA0IC0yMy4wNjI1IGMKNCAtMjMuMDYyNSA0IC0yMy42ODc1IDQgLTIzLjY4NzUgYwo0IC0yMy42ODc1IDYuMzc1IC0yMy42ODc1IDYuMzc1IC0yMy42ODc1IGMKNi4zNzUgLTIzLjY4NzUgNi4zNzUgLTIzLjA2MjUgNi4zNzUgLTIzLjA2MjUgYwpoCmYKNi4zNzUgLTIzLjA2MjUgbQo2LjM3NSAtMjMuMDYyNSA0IC0yMy4wNjI1IDQgLTIzLjA2MjUgYwo0IC0yMy4wNjI1IDQgLTIzLjY4NzUgNCAtMjMuNjg3NSBjCjQgLTIzLjY4NzUgNi4zNzUgLTIzLjY4NzUgNi4zNzUgLTIzLjY4NzUgYwo2LjM3NSAtMjMuNjg3NSA2LjM3NSAtMjMuMDYyNSA2LjM3NSAtMjMuMDYyNSBjCmgKUwowLjY3NDUxIDAuNzIxNTcgMC43MzMzNCByZwoxNCAtMTkuMDYyNSBtCjE0IC0xOC4xOTk3MSAxMy4xODg0OCAtMTcuNSAxMi4xODc1IC0xNy41IGMKMTEuMTg2NTIgLTE3LjUgMTAuMzc1IC0xOC4xOTk3MSAxMC4zNzUgLTE5LjA2MjUgYwoxMC4zNzUgLTE5LjkyNTI5IDExLjE4NjUyIC0yMC42MjUgMTIuMTg3NSAtMjAuNjI1IGMKMTMuMTg4NDggLTIwLjYyNSAxNCAtMTkuOTI1MjkgMTQgLTE5LjA2MjUgYwpoCmYKMSAxIDEgUkcKMTQgLTE5LjA2MjUgbQoxNCAtMTguMTk5NzEgMTMuMTg4NDggLTE3LjUgMTIuMTg3NSAtMTcuNSBjCjExLjE4NjUyIC0xNy41IDEwLjM3NSAtMTguMTk5NzEgMTAuMzc1IC0xOS4wNjI1IGMKMTAuMzc1IC0xOS45MjUyOSAxMS4xODY1MiAtMjAuNjI1IDEyLjE4NzUgLTIwLjYyNSBjCjEzLjE4ODQ4IC0yMC42MjUgMTQgLTE5LjkyNTI5IDE0IC0xOS4wNjI1IGMKaApTCg0KZW5kc3RyZWFtDWVuZG9iag0yMDIwIDAgb2JqIDc5DWVuZG9iag0yMDIxIDAgb2JqPDwvTGVuZ3RoIDIwMjAgMCBSL0ZpbHRlci9GbGF0ZURlY29kZS9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2x1bW5zIDE2L1ByZWRpY3RvciAxNS9Db2xvcnMgMz4+L1dpZHRoIDE2L0hlaWdodCAxNi9CaXRzUGVyQ29tcG9uZW50IDgvQ29sb3JTcGFjZS9EZXZpY2VSR0IvVHlwZS9YT2JqZWN0L05hbWUvWC9TdWJ0eXBlL0ltYWdlPj5zdHJlYW0NCkiJYvz//z8DKYBx0GpgZGQEknDNEC4EoJmI3QaghgMHDgAZDg4O2DUgG4kLQFXi0oApjk8DUBDuK7gUVTWQ7CTCniYeDEINAAEGAF41X+ENCmVuZHN0cmVhbQ1lbmRvYmoNMjAyMiAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDEvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjAyMyAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDAvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjAyNCAwIG9iaiAxNDI2DWVuZG9iag0yMDI1IDAgb2JqPDwvTGVuZ3RoIDIwMjQgMCBSPj5zdHJlYW0NCnEKL0dTMCBncwoxNiAwIDAgMTYgMjQuMTI1IDEyIGNtCi9JbTAgRG8KUQoxIDAgMCAtMSAwIDAgY20KMCAwIDAgcmcKMCBpIAovR1MxIGdzCjguODEyNSAtMjQgbQo4LjgxMjUgLTI0IDYuNTYyNSAtMjQgNi41NjI1IC0yNCBjCjYuNTYyNSAtMjQgNi41NjI1IC0yNS45Mzc1IDYuNTYyNSAtMjUuOTM3NSBjCjYuNTYyNSAtMjUuOTM3NSA4LjgxMjUgLTI1LjkzNzUgOC44MTI1IC0yNS45Mzc1IGMKOC44MTI1IC0yNS45Mzc1IDguODEyNSAtMjQgOC44MTI1IC0yNCBjCmgKZgoxNC4wNjI1IC0yNCBtCjE0LjA2MjUgLTI0IDExLjgxMjUgLTI0IDExLjgxMjUgLTI0IGMKMTEuODEyNSAtMjQgMTEuODEyNSAtMjUuOTM3NSAxMS44MTI1IC0yNS45Mzc1IGMKMTEuODEyNSAtMjUuOTM3NSAxNC4wNjI1IC0yNS45Mzc1IDE0LjA2MjUgLTI1LjkzNzUgYwoxNC4wNjI1IC0yNS45Mzc1IDE0LjA2MjUgLTI0IDE0LjA2MjUgLTI0IGMKaApmCjguNzUgLTE1LjE4NzUgbQo4Ljc1IC0xNS4xODc1IDYuNSAtMTUuMTg3NSA2LjUgLTE1LjE4NzUgYwo2LjUgLTE1LjE4NzUgNi41IC0yMi42MjUgNi41IC0yMi42MjUgYwo2LjUgLTIyLjYyNSA4Ljc1IC0yMi42MjUgOC43NSAtMjIuNjI1IGMKOC43NSAtMjIuNjI1IDguNzUgLTE1LjE4NzUgOC43NSAtMTUuMTg3NSBjCmgKZgoxNC4xODc1IC0xNS4zNzUgbQoxNC4xODc1IC0xNS4zNzUgMTEuOTM3NSAtMTUuMzc1IDExLjkzNzUgLTE1LjM3NSBjCjExLjkzNzUgLTE1LjM3NSAxMS45Mzc1IC0yMi42MjUgMTEuOTM3NSAtMjIuNjI1IGMKMTEuOTM3NSAtMjIuNjI1IDE0LjE4NzUgLTIyLjYyNSAxNC4xODc1IC0yMi42MjUgYwoxNC4xODc1IC0yMi42MjUgMTQuMTg3NSAtMTUuMzc1IDE0LjE4NzUgLTE1LjM3NSBjCmgKZgowIDAgMCBSRwoxIHcgNCBNIDAgaiAwIEogW10wIGQgCjUuMDYyNSAtMjIuNjI1IG0KNS4wNjI1IC0yMi42MjUgOS44NzUgLTIyLjYyNSA5Ljg3NSAtMjIuNjI1IGMKUwo1LjA2MjUgLTIzLjEyNSBtCjUuMDYyNSAtMjMuMTI1IDUuMDYyNSAtMTkuNTYyNSA1LjA2MjUgLTE5LjU2MjUgYwpTCjEwIC0yMy4xODc1IG0KMTAgLTIzLjE4NzUgMTAgLTE5LjYyNSAxMCAtMTkuNjI1IGMKUwoxMS41IC0yMi42MjUgbQoxMS41IC0yMi42MjUgMTQuODEyNSAtMjIuNjI1IDE0LjgxMjUgLTIyLjYyNSBjClMKMTEuODc1IC0yMi43NSBtCjExLjg3NSAtMjIuNzUgMTAuMTg3NSAtMjAuODc1IDEwLjE4NzUgLTIwLjg3NSBjClMKMTQuNDM3NSAtMjIuNzUgbQoxNC40Mzc1IC0yMi43NSAxNi4xODc1IC0yMC42ODc1IDE2LjE4NzUgLTIwLjY4NzUgYwpTCjEwLjA2MjUgLTE3LjgxMjUgbQoxMC4wNjI1IC0xNy44MTI1IDE1Ljc1IC0xNy44MTI1IDE1Ljc1IC0xNy44MTI1IGMKUwoxMS4yNSAtMTguNjg3NSBtCjExLjI1IC0xOC42ODc1IDE0Ljc1IC0xOC42ODc1IDE0Ljc1IC0xOC42ODc1IGMKUwoNCmVuZHN0cmVhbQ1lbmRvYmoNMjAyNiAwIG9iaiA3Nw1lbmRvYmoNMjAyNyAwIG9iajw8L0xlbmd0aCAyMDI2IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGUvRGVjb2RlUGFybXM8PC9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAxNi9QcmVkaWN0b3IgMTUvQ29sb3JzIDM+Pi9XaWR0aCAxNi9IZWlnaHQgMTYvQml0c1BlckNvbXBvbmVudCA4L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1R5cGUvWE9iamVjdC9OYW1lL1gvU3VidHlwZS9JbWFnZT4+c3RyZWFtDQpIiWL8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cQovR1MwIGdzCjE2IDAgMCAxNiAyNC4wNjI1IDExLjE4NzUgY20KL0ltMCBEbwpRCjEgMCAwIC0xIDAgMCBjbQowLjM5OTk5IDAuNjAwMDEgMC4yIHJnCjAgaSAKL0dTMSBncwoxMC41NjI1IC0yNy4xMTkxNCBtCjEwLjU2MjUgLTI3LjExOTE0IDEyLjcyNDYxIC0yNC40MzYwNCAxMi43MjQ2MSAtMjQuNDM2MDQgYwoxMi43MjQ2MSAtMjQuNDM2MDQgMTQuODg3NyAtMjEuNzUyOTMgMTQuODg3NyAtMjEuNzUyOTMgYwoxNC44ODc3IC0yMS43NTI5MyAxMi43NDkwMiAtMjEuNzUyOTMgMTIuNzQ5MDIgLTIxLjc1MjkzIGMKMTIuNzQ5MDIgLTIxLjc1MjkzIDE2LjA2MjUgLTE3LjgxMjUgMTYuMDYyNSAtMTcuODEyNSBjCjE2LjA2MjUgLTE3LjgxMjUgMTMgLTE4LjA2MjUgMTMgLTE4LjA2MjUgYwoxMyAtMTguMDYyNSAxNC42ODc1IC0xNS4xMjUgMTQuNjg3NSAtMTUuMTI1IGMKMTQuNjg3NSAtMTUuMTI1IDEwLjQzNzUgLTE2LjQzNzUgMTAuNDM3NSAtMTYuNDM3NSBjCjEwLjQzNzUgLTE2LjQzNzUgNS43NSAtMTUgNS43NSAtMTUgYwo1Ljc1IC0xNSA3LjY4NzUgLTE4LjA2MjUgNy42ODc1IC0xOC4wNjI1IGMKNy42ODc1IC0xOC4wNjI1IDQuODc1IC0xNy44MTI1IDQuODc1IC0xNy44MTI1IGMKNC44NzUgLTE3LjgxMjUgOC40Mzc5OSAtMjEuNzUyOTMgOC40Mzc5OSAtMjEuNzUyOTMgYwo4LjQzNzk5IC0yMS43NTI5MyA2LjIzNzMgLTIxLjc1MjkzIDYuMjM3MyAtMjEuNzUyOTMgYwo2LjIzNzMgLTIxLjc1MjkzIDguMzk5OSAtMjQuNDM2MDQgOC4zOTk5IC0yNC40MzYwNCBjCjguMzk5OSAtMjQuNDM2MDQgMTAuNTYyNSAtMjcuMTE5MTQgMTAuNTYyNSAtMjcuMTE5MTQgYwpoCmYKMCAwIDAgUkcKMSB3IDQgTSAwIGogMCBKIFtdMCBkIAoxMC41NjI1IC0yNy4xMTkxNCBtCjEwLjU2MjUgLTI3LjExOTE0IDEyLjcyNDYxIC0yNC40MzYwNCAxMi43MjQ2MSAtMjQuNDM2MDQgYwoxMi43MjQ2MSAtMjQuNDM2MDQgMTQuODg3NyAtMjEuNzUyOTMgMTQuODg3NyAtMjEuNzUyOTMgYwoxNC44ODc3IC0yMS43NTI5MyAxMi43NDkwMiAtMjEuNzUyOTMgMTIuNzQ5MDIgLTIxLjc1MjkzIGMKMTIuNzQ5MDIgLTIxLjc1MjkzIDE2LjA2MjUgLTE3LjgxMjUgMTYuMDYyNSAtMTcuODEyNSBjCjE2LjA2MjUgLTE3LjgxMjUgMTMgLTE4LjA2MjUgMTMgLTE4LjA2MjUgYwoxMyAtMTguMDYyNSAxNC42ODc1IC0xNS4xMjUgMTQuNjg3NSAtMTUuMTI1IGMKMTQuNjg3NSAtMTUuMTI1IDEwLjQzNzUgLTE2LjQzNzUgMTAuNDM3NSAtMTYuNDM3NSBjCjEwLjQzNzUgLTE2LjQzNzUgNS43NSAtMTUgNS43NSAtMTUgYwo1Ljc1IC0xNSA3LjY4NzUgLTE4LjA2MjUgNy42ODc1IC0xOC4wNjI1IGMKNy42ODc1IC0xOC4wNjI1IDQuODc1IC0xNy44MTI1IDQuODc1IC0xNy44MTI1IGMKNC44NzUgLTE3LjgxMjUgOC40Mzc5OSAtMjEuNzUyOTMgOC40Mzc5OSAtMjEuNzUyOTMgYwo4LjQzNzk5IC0yMS43NTI5MyA2LjIzNzMgLTIxLjc1MjkzIDYuMjM3MyAtMjEuNzUyOTMgYwo2LjIzNzMgLTIxLjc1MjkzIDguMzk5OSAtMjQuNDM2MDQgOC4zOTk5IC0yNC40MzYwNCBjCjguMzk5OSAtMjQuNDM2MDQgMTAuNTYyNSAtMjcuMTE5MTQgMTAuNTYyNSAtMjcuMTE5MTQgYwpoClMKMTAuNDM3NSAtMTQgbQoxMC40Mzc1IC0xNCAxMC40Mzc1IC0xNi42ODc1IDEwLjQzNzUgLTE2LjY4NzUgYwpTCg0KZW5kc3RyZWFtDWVuZG9iag0yMDM4IDAgb2JqIDg3DWVuZG9iag0yMDM5IDAgb2JqPDwvTGVuZ3RoIDIwMzggMCBSL0ZpbHRlci9GbGF0ZURlY29kZS9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2x1bW5zIDE2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NzUgYwoyLjkzNzUgLTIxLjg3NSAxNy4zMTI1IC0yMS44NzUgMTcuMzEyNSAtMjEuODc1IGMKMTcuMzEyNSAtMjEuODc1IDE1LjYyNSAtMjcuNDM3NSA5LjkzNzUgLTI3LjQzNzUgYwpoCmYKMCAwIDAgUkcKMSB3IDQgTSAwIGogMCBKIFtdMCBkIAo5LjkzNzUgLTI3LjQzNzUgbQozLjc1IC0yNy40Mzc1IDIuOTM3NSAtMjEuODc1IDIuOTM3NSAtMjEuODc1IGMKMi45Mzc1IC0yMS44NzUgMTcuMzEyNSAtMjEuODc1IDE3LjMxMjUgLTIxLjg3NSBjCjE3LjMxMjUgLTIxLjg3NSAxNS42MjUgLTI3LjQzNzUgOS45Mzc1IC0yNy40Mzc1IGMKaApTCjAuNzQ5MDIgMC43NDkwMiAwLjc0OTAyIHJnCjEyLjI1IC0xMy44MTI1IG0KMTIuMjUgLTEzLjgxMjUgNy41IC0xMy44MTI1IDcuNSAtMTMuODEyNSBjCjcuNSAtMTMuODEyNSA3LjUgLTE3LjA2MjUgNy41IC0xNy4wNjI1IGMKNy41IC0xNy4wNjI1IDEyLjI1IC0xNy4wNjI1IDEyLjI1IC0xNy4wNjI1IGMKMTIuMjUgLTE3LjA2MjUgMTIuMjUgLTEzLjgxMjUgMTIuMjUgLTEzLjgxMjUgYwpoCmYKMTIuMjUgLTEzLjgxMjUgbQoxMi4yNSAtMTMuODEyNSA3LjUgLTEzLjgxMjUgNy41IC0xMy44MTI1IGMKNy41IC0xMy44MTI1IDcuNSAtMTcuMDYyNSA3LjUgLTE3LjA2MjUgYwo3LjUgLTE3LjA2MjUgMTIuMjUgLTE3LjA2MjUgMTIuMjUgLTE3LjA2MjUgYwoxMi4yNSAtMTcuMDYyNSAxMi4yNSAtMTMuODEyNSAxMi4yNSAtMTMuODEyNSBjCmgKUwo3Ljc1IC0xNi45Mzc1IG0KNy43NSAtMTYuOTM3NSAzLjEyNSAtMjIgMy4xMjUgLTIyIGMKUwoxMi4yNSAtMTYuOTM3NSBtCjEyLjI1IC0xNi45Mzc1IDE3LjI1IC0yMiAxNy4yNSAtMjIgYwpTCjkuMzc1IC0xNy4xMjUgbQo5LjM3NSAtMTcuMTI1IDcuODc1IC0yMS44MTI1IDcuODc1IC0yMS44MTI1IGMK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cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAxL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwNTkgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAwL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwNjAgMCBvYmogMTA1DWVuZG9iag0yMDYxIDAgb2JqPDwvTGVuZ3RoIDIwNjAgMCBSPj5zdHJlYW0NCjAgMCAwIHJnCjAgaSAKL0dTMCBncwpCVAovQzJfMCAxIFRmCjAgVGMgMCBUdyAwICBUcyAxMDAgIFR6IDAgVHIgMTIgMCAwIDEyIDYuODEyNSAxNi40Mzc1IFRtCjwwMDIyPlRqCkVUCg0KZW5kc3RyZWFtDWVuZG9iag0yMDYyIDAgb2JqPDwvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9PUCBmYWxzZS9vcCBmYWxzZS9PUE0gMC9jYSAxLjAvQ0EgMS4wL0JNL05vcm1hbC9TTWFzay9Ob25lL0FJUyBmYWxzZT4+DWVuZG9iag0yMDYzIDAgb2JqIDE0NTANZW5kb2JqDTIwNjQgMCBvYmo8PC9MZW5ndGggMjA2MyAwIFI+PnN0cmVhbQ0KMSAwIDAgLTEgMCAwIGNtCjEgMSAxIHJnCjAgaSAKL0dTMCBncwoxMi4wNjI1IC0yNS40Njg3NSBtCjEyLjA2MjUgLTI0Ljc2MTIzIDExLjM5MDYzIC0yNC4xODc1IDEwLjU2MjUgLTI0LjE4NzUgYwo5LjczMzg5IC0yNC4xODc1IDkuMDYyNSAtMjQuNzYxMjMgOS4wNjI1IC0yNS40Njg3NSBjCjkuMDYyNSAtMjYuMTc2MjcgOS43MzM4OSAtMjYuNzUgMTAuNTYyNSAtMjYuNzUgYwoxMS4zOTA2MyAtMjYuNzUgMTIuMDYyNSAtMjYuMTc2MjcgMTIuMDYyNSAtMjUuNDY4NzUgYwpoCmYKMCAwIDAgUkcKMSB3IDQgTSAwIGogMCBKIFtdMCBkIAoxMi4wNjI1IC0yNS40Njg3NSBtCjEyLjA2MjUgLTI0Ljc2MTIzIDExLjM5MDYzIC0yNC4xODc1IDEwLjU2MjUgLTI0LjE4NzUgYwo5LjczMzg5IC0yNC4xODc1IDkuMDYyNSAtMjQuNzYxMjMgOS4wNjI1IC0yNS40Njg3NSBjCjkuMDYyNSAtMjYuMTc2MjcgOS43MzM4OSAtMjYuNzUgMTAuNTYyNSAtMjYuNzUgYwoxMS4zOTA2MyAtMjYuNzUgMTIuMDYyNSAtMjYuMTc2MjcgMTIuMDYyNSAtMjUuNDY4NzUgYwpoClMKMTAuNSAtMjQuMTI1IG0KMTAuNSAtMjQuMTI1IDEwLjU2MjUgLTE0LjY4NzUgMTAuNTYyNSAtMTQuNjg3NSBjClMKMy44NzUgLTIwLjA2MjUgbQozLjg3NSAtMTcuMzMzNSA2Ljg3OTg4IC0xNS4xMjUgMTAuNTkzNzUgLTE1LjEyNSBjClMKMTcuMzEyNSAtMjAuMDYyNSBtCjE3LjMxMjUgLTE3LjMzMzUgMTQuMzA3NjIgLTE1LjEyNSAxMC41OTM3NSAtMTUuMTI1IGMKUwowIDAgMCByZwoxNy4xMjUgLTIxLjMzNzg5IG0KMTcuMTI1IC0yMS4zMzc4OSAxNy45MTIxMSAtMjAuMjE3MjkgMTcuOTEyMTEgLTIwLjIxNzI5IGMKMTcuOTEyMTEgLTIwLjIxNzI5IDE4LjcwMDIgLTE5LjA5NjY4IDE4LjcwMDIgLTE5LjA5NjY4IGMKMTguNzAwMiAtMTkuMDk2NjggMTcuMTI1IC0xOS4wOTY2OCAxNy4xMjUgLTE5LjA5NjY4IGMKMTcuMTI1IC0xOS4wOTY2OCAxNS41NDk4IC0xOS4wOTY2OCAxNS41NDk4IC0xOS4wOTY2OCBjCjE1LjU0OTggLTE5LjA5NjY4IDE2LjMzNzg5IC0yMC4yMTcyOSAxNi4zMzc4OSAtMjAuMjE3MjkgYwoxNi4zMzc4OSAtMjAuMjE3MjkgMTcuMTI1IC0yMS4zMzc4OSAxNy4xMjUgLTIxLjMzNzg5IGMKaApmCjMuNzUgLTIxLjMzNzg5IG0KMy43NSAtMjEuMzM3ODkgNC41MzcxMSAtMjAuMjE3MjkgNC41MzcxMSAtMjAuMjE3MjkgYwo0LjUzNzExIC0yMC4yMTcyOSA1LjMyNTIgLTE5LjA5NjY4IDUuMzI1MiAtMTkuMDk2NjggYwo1LjMyNTIgLTE5LjA5NjY4IDMuNzUgLTE5LjA5NjY4IDMuNzUgLTE5LjA5NjY4IGMKMy43NSAtMTkuMDk2NjggMi4xNzQ4IC0xOS4wOTY2OCAyLjE3NDggLTE5LjA5NjY4IGMKMi4xNzQ4IC0xOS4wOTY2OCAyLjk2Mjg5IC0yMC4yMTcyOSAyLjk2Mjg5IC0yMC4yMTcyOSBjCjIuOTYyODkgLTIwLjIxNzI5IDMuNzUgLTIxLjMzNzg5IDMuNzUgLTIxLjMzNzg5IGMKaApmCg0KZW5kc3RyZWFtDWVuZG9iag0yMDY1IDAgb2JqPDwvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9PUCBmYWxzZS9vcCBmYWxzZS9PUE0gMC9jYSAxLjAvQ0EgMS4wL0JNL05vcm1hbC9TTWFzay9Ob25lL0FJUyBmYWxzZT4+DWVuZG9iag0yMDY2IDAgb2JqIDExNjcNZW5kb2JqDTIwNjcgMCBvYmo8PC9MZW5ndGggMjA2NiAwIFI+PnN0cmVhbQ0KcQovR1MwIGdzCjE2IDAgMCAxNiAyMi4yNSAxMC45Mzc1IGNtCi9JbTAgRG8KUQoxIDAgMCAtMSAwIDAgY20KMCAwIDAgcmcKMCBpIAovR1MxIGdzCjE0LjUgLTE5LjE4NzUgbQoxNC41IC0xOS4xODc1IDcuMTI1IC0xOS4xODc1IDcuMTI1IC0xOS4xODc1IGMKNy4xMjUgLTE5LjE4NzUgNy4xMjUgLTIxLjE4NzUgNy4xMjUgLTIxLjE4NzUgYwo3LjEyNSAtMjEuMTg3NSAxNC41IC0yMS4xODc1IDE0LjUgLTIxLjE4NzUgYwoxNC41IC0yMS4xODc1IDE0LjUgLTE5LjE4NzUgMTQuNSAtMTkuMTg3NSBjCmgKZgowIDAgMCBSRwoxIHcgNCBNIDAgaiAwIEogW10wIGQgCjE0LjUgLTE5LjE4NzUgbQoxNC41IC0xOS4xODc1IDcuMTI1IC0xOS4xODc1IDcuMTI1IC0xOS4xODc1IGMKNy4xMjUgLTE5LjE4NzUgNy4xMjUgLTIxLjE4NzUgNy4xMjUgLTIxLjE4NzUgYwo3LjEyNSAtMjEuMTg3NSAxNC41IC0yMS4xODc1IDE0LjUgLTIxLjE4NzUgYwoxNC41IC0yMS4xODc1IDE0LjUgLTE5LjE4NzUgMTQuNSAtMTkuMTg3NSBjCmgKUwo3LjA2MjUgLTIxLjI1IG0KNy4wNjI1IC0yMS4yNSA0LjYyNSAtMjEuMjUgNC42MjUgLTIxLjI1IGMKNC42MjUgLTIxLjI1IDQuNjI1IC0yMyA0LjYyNSAtMjMgYwo0LjYyNSAtMjMgNy4wNjI1IC0yMyA3LjA2MjUgLTIzIGMKNy4wNjI1IC0yMyA3LjA2MjUgLTIxLjI1IDcuMDYyNSAtMjEuMjUgYwpoCmYKNy4wNjI1IC0yMS4yNSBtCjcuMDYyNSAtMjEuMjUgNC42MjUgLTIxLjI1IDQuNjI1IC0yMS4yNSBjCjQuNjI1IC0yMS4yNSA0LjYyNSAtMjMgNC42MjUgLTIzIGMKNC42MjUgLTIzIDcuMDYyNSAtMjMgNy4wNjI1IC0yMyBjCjcuMDYyNSAtMjMgNy4wNjI1IC0yMS4yNSA3LjA2MjUgLTIxLjI1IGMKaApTCjguMDYyNSAtMjIuNTYyNSBtCjguMDYyNSAtMjIuNTYyNSA4LjA2MjUgLTE1IDguMDYyNSAtMTUgYwpTCjE0LjYyNSAtMjIuNzUgbQoxNC42MjUgLTIyLjc1IDE0LjYyNSAtMTUgMTQuNjI1IC0xNSBjClMKMTMuNjI1IC0xOS4yNSBtCjEzLjYyNSAtMTkuMjUgMTMuNjI1IC0xNi42MjUgMTMuNjI1IC0xNi42MjUgYwpTCjcuMDYyNSAtMjUuNzUgbQo3LjA2MjUgLTI1Ljc1IDcuMDYyNSAtMTYuODEyNSA3LjA2MjUgLTE2LjgxMjUgYwpTCjcuNDM3NSAtMjQuMTI1IG0KNy40Mzc1IC0yNC4xMjUgOSAtMjQuMTI1IDkgLTI0LjEyNSBjClMKDQplbmRzdHJlYW0NZW5kb2JqDTIwNjggMCBvYmogNjYNZW5kb2JqDTIwNjkgMCBvYmo8PC9MZW5ndGggMjA2OCAwIFIvRmlsdGVyL0ZsYXRlRGVjb2RlL0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbHVtbnMgMTYvUHJlZGljdG9yIDE1L0NvbG9ycyAzPj4vV2lkdGggMTYvSGVpZ2h0IDE2L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvclNwYWNlL0RldmljZVJHQi9UeXBlL1hPYmplY3QvTmFtZS9YL1N1YnR5cGUvSW1hZ2U+PnN0cmVhbQ0KSIli/P//PwMpgHHwa2BkJGAEFg1AEo8ehAaIUvyqsWtA04PmSOxOQgM00IDmTqpqYMD0JX5PEwS01wAQYAAzG1bhDQplbmRzdHJlYW0NZW5kb2JqDTIwNzAgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAxL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwNzEgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAwL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwNzIgMCBvYmogMjIzMg1lbmRvYmoNMjA3MyAwIG9iajw8L0xlbmd0aCAyMDcyIDAgUj4+c3RyZWFtDQpxCi9HUzAgZ3MKMTYgMCAwIDE2IDIyLjg3NSAxMi4xODc1IGNtCi9JbTAgRG8KUQoxIDAgMCAtMSAwIDAgY20KMSAxIDAuNjAwMDEgcmcKMCBpIAovR1MxIGdzCjE2LjEyNSAtMTQuMjUgbQoxNi4xMjUgLTE0LjI1IDQuNjI1IC0xNC4yNSA0LjYyNSAtMTQuMjUgYwo0LjYyNSAtMTQuMjUgNC42MjUgLTIyLjc1IDQuNjI1IC0yMi43NSBjCjQuNjI1IC0yMi43NSAxNi4xMjUgLTIyLjc1IDE2LjEyNSAtMjIuNzUgYwoxNi4xMjUgLTIyLjc1IDE2LjEyNSAtMTQuMjUgMTYuMTI1IC0xNC4yNSBjCmgKZgowIDAgMCBSRwoxIHcgNCBNIDAgaiAwIEogW10wIGQgCjE2LjEyNSAtMTQuMjUgbQoxNi4xMjUgLTE0LjI1IDQuNjI1IC0xNC4yNSA0LjYyNSAtMTQuMjUgYwo0LjYyNSAtMTQuMjUgNC42MjUgLTIyLjc1IDQuNjI1IC0yMi43NSBjCjQuNjI1IC0yMi43NSAxNi4xMjUgLTIyLjc1IDE2LjEyNSAtMjIuNzUgYwoxNi4xMjUgLTIyLjc1IDE2LjEyNSAtMTQuMjUgMTYuMTI1IC0xNC4yNSBjCmgKUwowLjc0OTAyIDAuNzQ5MDIgMC43NDkwMiByZwoxNy44MTI1IC0yMi4wNjI1IG0KMTcuODEyNSAtMjIuMDYyNSAzLjEyNSAtMjIuMTI1IDMuMTI1IC0yMi4xMjUgYwozLjEyNSAtMjIuMTI1IDUuMzU4ODkgLTI2LjEyNSA1LjM1ODg5IC0yNi4xMjUgYwo1LjM1ODg5IC0yNi4xMjUgMTUuNjM0NzcgLTI2LjEyNSAxNS42MzQ3NyAtMjYuMTI1IGMKMTUuNjM0NzcgLTI2LjEyNSAxNy44MTI1IC0yMi4wNjI1IDE3LjgxMjUgLTIyLjA2MjUgYwpoCmYKMTcuODEyNSAtMjIuMDYyNSBtCjE3LjgxMjUgLTIyLjA2MjUgMy4xMjUgLTIyLjEyNSAzLjEyNSAtMjIuMTI1IGMKMy4xMjUgLTIyLjEyNSA1LjM1ODg5IC0yNi4xMjUgNS4zNTg4OSAtMjYuMTI1IGMKNS4zNTg4OSAtMjYuMTI1IDE1LjYzNDc3IC0yNi4xMjUgMTUuNjM0NzcgLTI2LjEyNSBjCjE1LjYzNDc3IC0yNi4xMjUgMTcuODEyNSAtMjIuMDYyNSAxNy44MTI1IC0yMi4wNjI1IGMKaApTCjAgMCAwIHJnCjEzLjYyNSAtMTQuNTYyNSBtCjEzLjYyNSAtMTQuNTYyNSAxMS41NjI1IC0xNC41NjI1IDExLjU2MjUgLTE0LjU2MjUgYwoxMS41NjI1IC0xNC41NjI1IDExLjU2MjUgLTE5LjEyNSAxMS41NjI1IC0xOS4xMjUgYwoxMS41NjI1IC0xOS4xMjUgMTMuNjI1IC0xOS4xMjUgMTMuNjI1IC0xOS4xMjUgYwoxMy42MjUgLTE5LjEyNSAxMy42MjUgLTE0LjU2MjUgMTMuNjI1IC0xNC41NjI1IGMKaApmCjEzLjYyNSAtMTQuNTYyNSBtCjEzLjYyNSAtMTQuNTYyNSAxMS41NjI1IC0xNC41NjI1IDExLjU2MjUgLTE0LjU2MjUgYwoxMS41NjI1IC0xNC41NjI1IDExLjU2MjUgLTE5LjEyNSAxMS41NjI1IC0xOS4xMjUgYwoxMS41NjI1IC0xOS4xMjUgMTMuNjI1IC0xOS4xMjUgMTMuNjI1IC0xOS4xMjUgYwoxMy42MjUgLTE5LjEyNSAxMy42MjUgLTE0LjU2MjUgMTMuNjI1IC0xNC41NjI1IGMKaApTCjkgLTE3LjEyNSBtCjkgLTE3LjEyNSA2LjkzNzUgLTE3LjEyNSA2LjkzNzUgLTE3LjEyNSBjCjYuOTM3NSAtMTcuMTI1IDYuOTM3NSAtMTkuMTg3NSA2LjkzNzUgLTE5LjE4NzUgYwo2LjkzNzUgLTE5LjE4NzUgOSAtMTkuMTg3NSA5IC0xOS4xODc1IGMKOSAtMTkuMTg3NSA5IC0xNy4xMjUgOSAtMTcuMTI1IGMKaApmCjkgLTE3LjEyNSBtCjkgLTE3LjEyNSA2LjkzNzUgLTE3LjEyNSA2LjkzNzUgLTE3LjEyNSBjCjYuOTM3NSAtMTcuMTI1IDYuOTM3NSAtMTkuMTg3NSA2LjkzNzUgLTE5LjE4NzUgYwo2LjkzNzUgLTE5LjE4NzUgOSAtMTkuMTg3NSA5IC0xOS4xODc1IGMKOSAtMTkuMTg3NSA5IC0xNy4xMjUgOSAtMTcuMTI1IGMKaApTCjEzLjg3NSAtMjYuMTI1IG0KMTMuODc1IC0yNi4xMjUgMTIuMzEyNSAtMjYuMTI1IDEyLjMxMjUgLTI2LjEyNSBjCjEyLjMxMjUgLTI2LjEyNSAxMi4zMTI1IC0yOC40Mzc1IDEyLjMxMjUgLTI4LjQzNzUgYwoxMi4zMTI1IC0yOC40Mzc1IDEzLjg3NSAtMjguNDM3NSAxMy44NzUgLTI4LjQzNzUgYwoxMy44NzUgLTI4LjQzNzUgMTMuODc1IC0yNi4xMjUgMTMuODc1IC0yNi4xMjUgYwpoCmYKMTMuODc1IC0yNi4xMjUgbQoxMy44NzUgLTI2LjEyNSAxMi4zMTI1IC0yNi4xMjUgMTIuMzEyNSAtMjYuMTI1IGMKMTIuMzEyNSAtMjYuMTI1IDEyLjMxMjUgLTI4LjQzNzUgMTIuMzEyNSAtMjguNDM3NSBjCjEyLjMxMjUgLTI4LjQzNzUgMTMuODc1IC0yOC40Mzc1IDEzLjg3NSAtMjguNDM3NSBjCjEzLjg3NSAtMjguNDM3NSAxMy44NzUgLTI2LjEyNSAxMy44NzUgLTI2LjEyNSBjCmgKUwoNCmVuZHN0cmVhbQ1lbmRvYmoNMjA3NCAwIG9iaiA5MQ1lbmRvYmoNMjA3NSAwIG9iajw8L0xlbmd0aCAyMDc0IDAgUi9G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tub+ktAWYAClunfhDQplbmRzdHJlYW0NZW5kb2JqDTIwODIgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAxL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwODMgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAwL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwODQgMCBvYmogMTAxOQ1lbmRvYmoNMjA4NSAwIG9iajw8L0xlbmd0aCAyMDg0IDAgUj4+c3RyZWFtDQpxCi9HUzAgZ3MKMTYgMCAwIDE2IDIzIDYgY20KL0ltMCBEbwpRCjEgMCAwIC0xIDAgMCBjbQoxIDEgMSByZwowIGkgCi9HUzEgZ3MKMTUuODc1IC0xNi44MTI1IG0KMTUuODc1IC0xNS4zOTc0NiAxMy4zNzAxMiAtMTQuMjUgMTAuMjgxMjUgLTE0LjI1IGMKNy4xOTE4OSAtMTQuMjUgNC42ODc1IC0xNS4zOTc0NiA0LjY4NzUgLTE2LjgxMjUgYwo0LjY4NzUgLTE4LjIyNzU0IDcuMTkxODkgLTE5LjM3NSAxMC4yODEyNSAtMTkuMzc1IGMKMTMuMzcwMTIgLTE5LjM3NSAxNS44NzUgLTE4LjIyNzU0IDE1Ljg3NSAtMTYuODEyNSBjCmgKZgowIDAgMCBSRwoxIHcgNCBNIDAgaiAwIEogW10wIGQgCjE1Ljg3NSAtMTYuODEyNSBtCjE1Ljg3NSAtMTUuMzk3NDYgMTMuMzcwMTIgLTE0LjI1IDEwLjI4MTI1IC0xNC4yNSBjCjcuMTkxODkgLTE0LjI1IDQuNjg3NSAtMTUuMzk3NDYgNC42ODc1IC0xNi44MTI1IGMKNC42ODc1IC0xOC4yMjc1NCA3LjE5MTg5IC0xOS4zNzUgMTAuMjgxMjUgLTE5LjM3NSBjCjEzLjM3MDEyIC0xOS4zNzUgMTUuODc1IC0xOC4yMjc1NCAxNS44NzUgLTE2LjgxMjUgYwpoClMKMTAuMTE3MTkgLTE2LjU2MjUgbQoxMC4xMTcxOSAtMTYuNTYyNSAxMC4xMTcxOSAtMjcuOTM3NSAxMC4xMTcxOSAtMjcuOTM3NSBjClMKMCAwIDAgcmcKMTMuOTgyNDIgLTI3LjQ2NzI5IG0KMTMuOTgyNDIgLTI3LjQ2NzI5IDExLjgzMjAzIC0yNi43NTg3OSAxMS44MzIwMyAtMjYuNzU4NzkgYwoxMS44MzIwMyAtMjYuNzU4NzkgOS42Nzk2OSAtMjYuMDUwMjkgOS42Nzk2OSAtMjYuMDUwMjkgYwo5LjY3OTY5IC0yNi4wNTAyOSA5LjY4MDY2IC0yNy40NjkyNCA5LjY4MDY2IC0yNy40NjkyNCBjCjkuNjgwNjYgLTI3LjQ2OTI0IDkuNjgxNjQgLTI4Ljg4ODE4IDkuNjgxNjQgLTI4Ljg4ODE4IGMKOS42ODE2NCAtMjguODg4MTggMTEuODMyMDMgLTI4LjE3NzczIDExLjgzMjAzIC0yOC4xNzc3MyBjCjExLjgzMjAzIC0yOC4xNzc3MyAxMy45ODI0MiAtMjcuNDY3MjkgMTMuOTgyNDIgLTI3LjQ2NzI5IGMKaApmCg0KZW5kc3RyZWFtDWVuZG9iag0yMDg2IDAgb2JqIDc4DWVuZG9iag0yMDg3IDAgb2JqPDwvTGVuZ3RoIDIwODYgMCBSL0ZpbHRlci9GbGF0ZURlY29kZS9EZWNvZGVQYXJtczw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2x1bW5zIDE2L1ByZWRpY3RvciAxNS9Db2xvcnMgMz4+L1dpZHRoIDE2L0hlaWdodCAxNi9CaXRzUGVyQ29tcG9uZW50IDgvQ29sb3JTcGFjZS9EZXZpY2VSR0IvVHlwZS9YT2JqZWN0L05hbWUvWC9TdWJ0eXBlL0ltYWdlPj5zdHJlYW0NCkiJYvz//z8DKYBxgDQwMuI0CKcGIIldCo8GrHqoZwPJfiBWA9z1EIDPD8juhtuA6RlGNBVYnYTMxW4Dmgux2ECOH4gEJGsACDAAzIdf4Q0KZW5kc3RyZWFtDWVuZG9iag0yMDg4IDAgb2JqPDwvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9PUCBmYWxzZS9vcCBmYWxzZS9PUE0gMS9jYSAxLjAvQ0EgMS4wL0JNL05vcm1hbC9TTWFzay9Ob25lL0FJUyBmYWxzZT4+DWVuZG9iag0yMDg5IDAgb2JqPDwvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9PUCBmYWxzZS9vcCBmYWxzZS9PUE0gMC9jYSAxLjAvQ0EgMS4wL0JNL05vcm1hbC9TTWFzay9Ob25lL0FJUyBmYWxzZT4+DWVuZG9iag0yMDkwIDAgb2JqIDEwMDUNZW5kb2JqDTIwOTEgMCBvYmo8PC9MZW5ndGggMjA5MCAwIFI+PnN0cmVhbQ0KMSAwIDAgLTEgMCAwIGNtCjAuOTM3MjYgMC45MzMzMyAwLjg3NDUxIHJnCjAgaSAKL0dTMCBncwoxNi43NSAtMjMuODEyNSBtCjE2Ljc1IC0yMy44MTI1IDE1LjgxMjUgLTIxLjU1NjY0IDE1LjgxMjUgLTIwLjgxMjUgYwoxNS44MTI1IC0yMC4xOTE0MSAxNi45Mzc1IC0xOC4xODc1IDE2LjkzNzUgLTE4LjE4NzUgYwoxNi45Mzc1IC0xOC4xODc1IDEzLjM3NSAtMTkuNjg3NSAxMCAtMTcuNTYyNSBjCjcuNTQ2MzkgLTE2LjAxNzU4IDMuNzUgLTE5LjAxMDI1IDMuNzUgLTIwLjcxODc1IGMKMy43NSAtMjIuNDI3MjUgNy4zOTg0NCAtMjUuNDQ0ODIgOS44NzUgLTIzLjkzNzUgYwoxMi43NSAtMjIuMTg3NSAxNi43NSAtMjMuODEyNSAxNi43NSAtMjMuODEyNSBjCmgKZgowIDAgMCBSRwoxIHcgNCBNIDAgaiAwIEogW10wIGQgCjE2Ljc1IC0yMy44MTI1IG0KMTYuNzUgLTIzLjgxMjUgMTUuODEyNSAtMjEuNTU2NjQgMTUuODEyNSAtMjAuODEyNSBjCjE1LjgxMjUgLTIwLjE5MTQxIDE2LjkzNzUgLTE4LjE4NzUgMTYuOTM3NSAtMTguMTg3NSBjCjE2LjkzNzUgLTE4LjE4NzUgMTMuMzc1IC0xOS42ODc1IDEwIC0xNy41NjI1IGMKNy41NDYzOSAtMTYuMDE3NTggMy43NSAtMTkuMDEwMjUgMy43NSAtMjAuNzE4NzUgYwozLjc1IC0yMi40MjcyNSA3LjM5ODQ0IC0yNS40NDQ4MiA5Ljg3NSAtMjMuOTM3NSBjCjEyLjc1IC0yMi4xODc1IDE2Ljc1IC0yMy44MTI1IDE2Ljc1IC0yMy44MTI1IGMKaApTCjAgMCAwIHJnCjcuMTg3NSAtMjEuOTY4NzUgbQo3LjE4NzUgLTIxLjYwNTk2IDYuODc5MzkgLTIxLjMxMjUgNi41IC0yMS4zMTI1IGMKNi4xMjA2MSAtMjEuMzEyNSA1LjgxMjUgLTIxLjYwNTk2IDUuODEyNSAtMjEuOTY4NzUgYwo1LjgxMjUgLTIyLjMzMTU0IDYuMTIwNjEgLTIyLjYyNSA2LjUgLTIyLjYyNSBjCjYuODc5MzkgLTIyLjYyNSA3LjE4NzUgLTIyLjMzMTU0IDcuMTg3NSAtMjEuOTY4NzUgYwpoCmYKcQoxNiAwIDAgLTE2IDI0LjQzNzUgLTMuMDYyNSBjbQovSW0wIERvClEKDQplbmRzdHJlYW0NZW5kb2JqDTIwOTIgMCBvYmogODENZW5kb2JqDTIwOTMgMCBvYmo8PC9MZW5ndGggMjA5MiAwIFIvRmlsdGVyL0ZsYXRlRGVjb2RlL0RlY29kZVBhcm1zPDwvQml0c1BlckNvbXBvbmVudCA4L0NvbHVtbnMgMTYvUHJlZGljdG9yIDE1L0NvbG9ycyAzPj4vV2lkdGggMTYvSGVpZ2h0IDE2L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvclNwYWNlL0RldmljZVJHQi9UeXBlL1hPYmplY3QvTmFtZS9YL1N1YnR5cGUvSW1hZ2U+PnN0cmVhbQ0KSIli/P//PwMpgHEYamBkZISzkaWA4hAuI5rogQMH4FwHBweoIrAp6BogqoGK0PQASYg4igY0szEBugZcenDaQI4fyAklYsAg1AAQYAAi/mjhDQplbmRzdHJlYW0NZW5kb2JqDTIwOTQgMCBvYmo8PC9UeXBlL0V4dEdTdGF0ZS9TQSB0cnVlL09QIGZhbHNlL29wIGZhbHNlL09QTSAwL2NhIDEuMC9DQSAxLjAvQk0vTm9ybWFsL1NNYXNrL05vbmUvQUlTIGZhbHNlPj4NZW5kb2JqDTIwOTUgMCBvYmogODk1DWVuZG9iag0yMDk2IDAgb2JqPDwvTGVuZ3RoIDIwOTUgMCBSPj5zdHJlYW0NCnEKL0dTMCBncwoxNiAwIDAgMTYgMjQgNSBjbQovSW0wIERvClEKMSAwIDAgLTEgMCAwIGNtCjAgMCAwIHJnCjAgaSAKL0dTMSBncwoxMy41NjI1IC0xMy41IG0KMTMuNTYyNSAtMTMuNSA2LjY4NzUgLTEzLjUgNi42ODc1IC0xMy41IGMKNi42ODc1IC0xMy41IDYuNjg3NSAtMjUuNjI1IDYuNjg3NSAtMjUuNjI1IGMKNi42ODc1IC0yNS42MjUgNy44OTg5MyAtMjcuMTI1IDEwLjEyNSAtMjcuMTI1IGMKMTIuMzEyNSAtMjcuMTI1IDEzLjU2MjUgLTI1LjYyNSAxMy41NjI1IC0yNS42MjUgYwoxMy41NjI1IC0yNS42MjUgMTMuNTYyNSAtMTMuNSAxMy41NjI1IC0xMy41IGMKaApmCjEgMSAxIHJnCjExLjE4NzUgLTIxLjUgbQoxMS4xODc1IC0yMS41IDkuMDYyNSAtMjEuNSA5LjA2MjUgLTIxLjUgYwo5LjA2MjUgLTIxLjUgOS4wNjI1IC0yNS4zMTI1IDkuMDYyNSAtMjUuMzEyNSBjCjkuMDYyNSAtMjUuMzEyNSAxMS4xODc1IC0yNS4zMTI1IDExLjE4NzUgLTI1LjMxMjUgYwoxMS4xODc1IC0yNS4zMTI1IDExLjE4NzUgLTIxLjUgMTEuMTg3NSAtMjEuNSBjCmgKZgowIDAgMCBSRwoxIHcgNCBNIDAgaiAwIEogW10wIGQgCjE2LjMxMjUgLTE3LjY4NzUgbQoxNi4zMTI1IC0xNS42ODM1OSAxNC45NDIzOCAtMTQuMDYyNSAxMy4yNSAtMTQuMDYyNSBjClMKMTQuOTM2NTIgLTIwLjc4NjYyIG0KMTUuNjk4MjQgLTIwLjc5MTAyIDE2LjMyMzI0IC0xOS4zOTY0OCAxNi4zMzIwMyAtMTcuNjY4OTUgYwpTCjE1Ljg5NDUzIC0yMC4zNTE1NiBtCjE1LjMwNTY2IC0yMC4yOTk4IDE0LjcwODk4IC0yMS42MjIwNyAxNC41NTg1OSAtMjMuMzA4NTkgYwpTCjEzLjM4MjgxIC0yNC40MTExMyBtCjE0LjE0MzU1IC0yNC40MTU1MyAxNC43NjU2MyAtMjMuNTc5NTkgMTQuNzcwNTEgLTIyLjU0Mjk3IGMKUwoNCmVuZHN0cmVhbQ1lbmRvYmoNMjA5NyAwIG9iaiA2OA1lbmRvYmoNMjA5OCAwIG9iajw8L0xlbmd0aCAyMDk3IDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGUvRGVjb2RlUGFybXM8PC9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAxNi9QcmVkaWN0b3IgMTUvQ29sb3JzIDM+Pi9XaWR0aCAxNi9IZWlnaHQgMTYvQml0c1BlckNvbXBvbmVudCA4L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1R5cGUvWE9iamVjdC9OYW1lL1gvU3VidHlwZS9JbWFnZT4+c3RyZWFtDQpIiWL8//8/AymAke4aGBkZ4WysZqFogKiGiCCzSdCAqYewDUAGihpMDchgcGqAiMOVUVsDsjYsGogBtNcAEGAA6BJo4Q0KZW5kc3RyZWFtDWVuZG9iag0yMDk5IDAgb2JqPDwvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9PUCBmYWxzZS9vcCBmYWxzZS9PUE0gMS9jYSAxLjAvQ0EgMS4wL0JNL05vcm1hbC9TTWFzay9Ob25lL0FJUyBmYWxzZT4+DWVuZG9iag0yMTAwIDAgb2JqPDwvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9PUCBmYWxzZS9vcCBmYWxzZS9PUE0gMC9jYSAxLjAvQ0EgMS4wL0JNL05vcm1hbC9TTWFzay9Ob25lL0FJUyBmYWxzZT4+DWVuZG9iag0yMTAxIDAgb2JqIDk1Nw1lbmRvYmoNMjEwMiAwIG9iajw8L0xlbmd0aCAyMTAxIDAgUj4+c3RyZWFtDQoxIDAgMCAtMSAwIDAgY20KMCAwIDAgUkcKMCBpIDEuNSB3IDQgTSAwIGogMCBKIFtdMCBkIAovR1MwIGdzCjEwLjY4NzUgLTI1LjU2MjUgbQoxMC42ODc1IC0yNS41NjI1IDEwLjY4NzUgLTE0LjgxMjUgMTAuNjg3NSAtMTQuODEyNSBjClMKMCAwIDAgcmcKMTAuNjg3NSAtMjIuNjE5MTQgbQoxMC42ODc1IC0yMi42MTkxNCAxMy42MzA4NiAtMjEuMjE3MjkgMTMuNjMwODYgLTIxLjIxNzI5IGMKMTMuNjMwODYgLTIxLjIxNzI5IDE2LjU3NTIgLTE5LjgxNTQzIDE2LjU3NTIgLTE5LjgxNTQzIGMKMTYuNTc1MiAtMTkuODE1NDMgMTAuNjg3NSAtMTkuODE1NDMgMTAuNjg3NSAtMTkuODE1NDMgYwoxMC42ODc1IC0xOS44MTU0MyA0Ljc5OTggLTE5LjgxNTQzIDQuNzk5OCAtMTkuODE1NDMgYwo0Ljc5OTggLTE5LjgxNTQzIDcuNzQ0MTQgLTIxLjIxNzI5IDcuNzQ0MTQgLTIxLjIxNzI5IGMKNy43NDQxNCAtMjEuMjE3MjkgMTAuNjg3NSAtMjIuNjE5MTQgMTAuNjg3NSAtMjIuNjE5MTQgYwpoCmYKMSB3IAoxMC42ODc1IC0yMi42MTkxNCBtCjEwLjY4NzUgLTIyLjYxOTE0IDEzLjYzMDg2IC0yMS4yMTcyOSAxMy42MzA4NiAtMjEuMjE3MjkgYwoxMy42MzA4NiAtMjEuMjE3MjkgMTYuNTc1MiAtMTkuODE1NDMgMTYuNTc1MiAtMTkuODE1NDMgYwoxNi41NzUyIC0xOS44MTU0MyAxMC42ODc1IC0xOS44MTU0MyAxMC42ODc1IC0xOS44MTU0MyBjCjEwLjY4NzUgLTE5LjgxNTQzIDQuNzk5OCAtMTkuODE1NDMgNC43OTk4IC0xOS44MTU0MyBjCjQuNzk5OCAtMTkuODE1NDMgNy43NDQxNCAtMjEuMjE3MjkgNy43NDQxNCAtMjEuMjE3MjkgYwo3Ljc0NDE0IC0yMS4yMTcyOSAxMC42ODc1IC0yMi42MTkxNCAxMC42ODc1IC0yMi42MTkxNCBjCmgKUwoxLjUgdyAKOC43ODEyNSAtMTUuMTU2MjUgbQo4Ljc4MTI1IC0xNS4xNTYyNSAxMi43MTg3NSAtMTUuMTU2MjUgMTIuNzE4NzUgLTE1LjE1NjI1IGMKUwoNCmVuZHN0cmVhbQ1lbmRvYmoNMjEwMyAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDAvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjEwNCAwIG9iaiAxMDMNZW5kb2JqDTIxMDUgMCBvYmo8PC9MZW5ndGggMjEwNCAwIFI+PnN0cmVhbQ0KMCAwIDAgcmcKMCBpIAovR1MwIGdzCkJUCi9DMl8wIDEgVGYKMCBUYyAwIFR3IDAgIFRzIDEwMCAgVHogMCBUciAxMiAwIDAgMTIgNy4yNSAxNi41NjI1IFRtCjwwMDA3PlRqCkVUCg0KZW5kc3RyZWFtDWVuZG9iag0yMTA2IDAgb2JqPDwvVHlwZS9FeHRHU3RhdGUvU0EgdHJ1ZS9PUCBmYWxzZS9vcCBmYWxzZS9PUE0gMC9jYSAxLjAvQ0EgMS4wL0JNL05vcm1hbC9TTWFzay9Ob25lL0FJUyBmYWxzZT4+DWVuZG9iag0yMTA3IDAgb2JqIDk1NA1lbmRvYmoNMjEwOCAwIG9iajw8L0xlbmd0aCAyMTA3IDAgUj4+c3RyZWFtDQoxIDAgMCAtMSAwIDAgY20KMC44MzkyMiAwLjgzNTMgMC43MzMzNCByZwowIGkgCi9HUzAgZ3MKMTYuMjUgLTE0Ljg3NSBtCjE2LjI1IC0xNC44NzUgMy43NSAtMTQuODc1IDMuNzUgLTE0Ljg3NSBjCjMuNzUgLTE0Ljg3NSAzLjc1IC0xOS41IDMuNzUgLTE5LjUgYwozLjc1IC0xOS41IDE2LjI1IC0xNC44NzUgMTYuMjUgLTE0Ljg3NSBjCmgKZgowIDAgMCBSRwoxIHcgNCBNIDAgaiAwIEogW10wIGQgCjE2LjI1IC0xNC44NzUgbQoxNi4yNSAtMTQuODc1IDMuNzUgLTE0Ljg3NSAzLjc1IC0xNC44NzUgYwozLjc1IC0xNC44NzUgMy43NSAtMTkuNSAzLjc1IC0xOS41IGMKMy43NSAtMTkuNSAxNi4yNSAtMTQuODc1IDE2LjI1IC0xNC44NzUgYwpoClMKMCAwIDAgcmcKMTUuNTYwNTUgLTE4LjE0NjQ4IG0KMTUuNTYwNTUgLTE4LjE0NjQ4IDYuMjE0ODQgLTIxLjcwNTA4IDYuMjE0ODQgLTIxLjcwNTA4IGMKNi4yMTQ4NCAtMjEuNzA1MDggNC44MjYxNyAtMjUuMDg0NDcgNC44MjYxNyAtMjUuMDg0NDcgYwo0LjgyNjE3IC0yNS4wODQ0NyAxNi41MDc4MSAtMjAuNjM1NzQgMTYuNTA3ODEgLTIwLjYzNTc0IGMKMTYuNTA3ODEgLTIwLjYzNTc0IDE1LjU2MDU1IC0xOC4xNDY0OCAxNS41NjA1NSAtMTguMTQ2NDggYwpoCmYKMTUuNTYwNTUgLTE4LjE0NjQ4IG0KMTUuNTYwNTUgLTE4LjE0NjQ4IDYuMjE0ODQgLTIxLjcwNTA4IDYuMjE0ODQgLTIxLjcwNTA4IGMKNi4yMTQ4NCAtMjEuNzA1MDggNC44MjYxNyAtMjUuMDg0NDcgNC44MjYxNyAtMjUuMDg0NDcgYwo0LjgyNjE3IC0yNS4wODQ0NyAxNi41MDc4MSAtMjAuNjM1NzQgMTYuNTA3ODEgLTIwLjYzNTc0IGMKMTYuNTA3ODEgLTIwLjYzNTc0IDE1LjU2MDU1IC0xOC4xNDY0OCAxNS41NjA1NSAtMTguMTQ2NDggYwpoClMKNi41NjI1IC0yMi4yNSBtCjYuNTYyNSAtMjIuMjUgMTEuNDM3NSAtMjUuMTg3NSAxMS40Mzc1IC0yNS4xODc1IGMKUwoNCmVuZHN0cmVhbQ1lbmRvYmoNMjEwOSAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDAvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjExMCAwIG9iaiAxMjEwDWVuZG9iag0yMTExIDAgb2JqPDwvTGVuZ3RoIDIxMTAgMCBSPj5zdHJlYW0NCnEKL0dTMCBncwoxNiAwIDAgMTYgMjMuNTYyNSAxMS45Mzc1IGNtCi9JbTAgRG8KUQoxIDAgMCAtMSAwIDAgY20KMCAwIDAgcmcKMCBpIAovR1MxIGdzCjEwLjMxMjUgLTIzLjc0NDE0IG0KMTAuMzEyNSAtMjMuNzQ0MTQgMTMuMjg3MTEgLTE5LjI3OTc5IDEzLjI4NzExIC0xOS4yNzk3OSBjCjEzLjI4NzExIC0xOS4yNzk3OSAxNi4yNjI3IC0xNC44MTU0MyAxNi4yNjI3IC0xNC44MTU0MyBjCjE2LjI2MjcgLTE0LjgxNTQzIDEwLjMxMjUgLTE0LjgxNTQzIDEwLjMxMjUgLTE0LjgxNTQzIGMKMTAuMzEyNSAtMTQuODE1NDMgNC4zNjIzIC0xNC44MTU0MyA0LjM2MjMgLTE0LjgxNTQzIGMKNC4zNjIzIC0xNC44MTU0MyA3LjMzNzQgLTE5LjI3OTc5IDcuMzM3NCAtMTkuMjc5NzkgYwo3LjMzNzQgLTE5LjI3OTc5IDEwLjMxMjUgLTIzLjc0NDE0IDEwLjMxMjUgLTIzLjc0NDE0IGMKaApmCjAgMCAwIFJHCjEgdyA0IE0gMCBqIDAgSiBbXTAgZCAKMTAuMzEyNSAtMjMuNzQ0MTQgbQoxMC4zMTI1IC0yMy43NDQxNCAxMy4yODcxMSAtMTkuMjc5NzkgMTMuMjg3MTEgLTE5LjI3OTc5IGMKMTMuMjg3MTEgLTE5LjI3OTc5IDE2LjI2MjcgLTE0LjgxNTQzIDE2LjI2MjcgLTE0LjgxNTQzIGMKMTYuMjYyNyAtMTQuODE1NDMgMTAuMzEyNSAtMTQuODE1NDMgMTAuMzEyNSAtMTQuODE1NDMgYwoxMC4zMTI1IC0xNC44MTU0MyA0LjM2MjMgLTE0LjgxNTQzIDQuMzYyMyAtMTQuODE1NDMgYwo0LjM2MjMgLTE0LjgxNTQzIDcuMzM3NCAtMTkuMjc5NzkgNy4zMzc0IC0xOS4yNzk3OSBjCjcuMzM3NCAtMTkuMjc5NzkgMTAuMzEyNSAtMjMuNzQ0MTQgMTAuMzEyNSAtMjMuNzQ0MTQgYwpoClMKMTMuNzUgLTE4LjMxMjUgbQoxMy43NSAtMTguMzEyNSA4LjA2MjUgLTI3LjE4NzUgOC4wNjI1IC0yNy4xODc1IGMKUwo2Ljg3NSAtMTguMzc1IG0KNi44NzUgLTE4LjM3NSAxMi44MTI1IC0yNy4xODc1IDEyLjgxMjUgLTI3LjE4NzUgYwpTCjAuODM5MjIgMC44MzUzIDAuNzMzMzQgcmcKMTEuNzUgLTE1LjE4NzUgbQoxMS43NSAtMTUuMTg3NSA4LjU2MjUgLTE1LjE4NzUgOC41NjI1IC0xNS4xODc1IGMKOC41NjI1IC0xNS4xODc1IDguNTYyNSAtMTkuNjg3NSA4LjU2MjUgLTE5LjY4NzUgYwo4LjU2MjUgLTE5LjY4NzUgMTEuNzUgLTE5LjY4NzUgMTEuNzUgLTE5LjY4NzUgYwoxMS43NSAtMTkuNjg3NSAxMS43NSAtMTUuMTg3NSAxMS43NSAtMTUuMTg3NSBjCmgKZgoNCmVuZHN0cmVhbQ1lbmRvYmoNMjExMiAwIG9iaiA4Nw1lbmRvYmoNMjExMyAwIG9iajw8L0xlbmd0aCAyMTEyIDAgUi9GaWx0ZXIvRmxhdGVEZWNvZGUvRGVjb2RlUGFybXM8PC9CaXRzUGVyQ29tcG9uZW50IDgvQ29sdW1ucyAxNi9QcmVkaWN0b3IgMTUvQ29sb3JzIDM+Pi9XaWR0aCAxNi9IZWlnaHQgMTYvQml0c1BlckNvbXBvbmVudCA4L0NvbG9yU3BhY2UvRGV2aWNlUkdCL1R5cGUvWE9iamVjdC9OYW1lL1gvU3VidHlwZS9JbWFnZT4+c3RyZWFtDQpIiWL8//8/AymAcSA0MDKCBCEksTbgUo3TBgiDWBtI0wBXjUsPiga46gMHDjg4OGDVg0UDUDWEC9GDUwOy8cga0PRANaA5HRMgzB0SaQk/AAgwABZ1VuENCmVuZHN0cmVhbQ1lbmRvYmoNMjExNCAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDEvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjExNSAwIG9iajw8L1R5cGUvRXh0R1N0YXRlL1NBIHRydWUvT1AgZmFsc2Uvb3AgZmFsc2UvT1BNIDAvY2EgMS4wL0NBIDEuMC9CTS9Ob3JtYWwvU01hc2svTm9uZS9BSVMgZmFsc2U+Pg1lbmRvYmoNMjExNiAwIG9iaiAzMDY5DWVuZG9iag0yMTE3IDAgb2JqPDwvTGVuZ3RoIDIxMTYgMCBSPj5zdHJlYW0NCnEKL0dTMCBncwoxNiAwIDAgMTYgMjUgOSBjbQovSW0wIERvClEKMSAwIDAgLTEgMCAwIGNtCjAuODM5MjIgMC44MzUzIDAuNzMzMzQgcmcKMCBpIAovR1MxIGdzCjE2IC0xMy43NSBtCjE2IC0xMy43NSA0LjUgLTEzLjc1IDQuNSAtMTMuNzUgYwo0LjUgLTEzLjc1IDQuNSAtMjcuMzEyNSA0LjUgLTI3LjMxMjUgYwo0LjUgLTI3LjMxMjUgMTYgLTI3LjMxMjUgMTYgLTI3LjMxMjUgYwoxNiAtMjcuMzEyNSAxNiAtMTMuNzUgMTYgLTEzLjc1IGMKaApmCjAgMCAwIFJHCjEgdyA0IE0gMCBqIDAgSiBbXTAgZCAKMTYgLTEzLjc1IG0KMTYgLTEzLjc1IDQuNSAtMTMuNzUgNC41IC0xMy43NSBjCjQuNSAtMTMuNzUgNC41IC0yNy4zMTI1IDQuNSAtMjcuMzEyNSBjCjQuNSAtMjcuMzEyNSAxNiAtMjcuMzEyNSAxNiAtMjcuMzEyNSBjCjE2IC0yNy4zMTI1IDE2IC0xMy43NSAxNiAtMTMuNzUgYwpoClMKMCAwIDAgcmcKMTAuODc1IC0yMy45NTg1IG0KMTAuODc1IC0yMy45NTg1IDkuNTYyNSAtMjMuOTU4NSA5LjU2MjUgLTIzLjk1ODUgYwo5LjU2MjUgLTIzLjk1ODUgOS41NjI1IC0yNS4zMzM1IDkuNTYyNSAtMjUuMzMzNSBjCjkuNTYyNSAtMjUuMzMzNSAxMC44NzUgLTI1LjMzMzUgMTAuODc1IC0yNS4zMzM1IGMKMTAuODc1IC0yNS4zMzM1IDEwLjg3NSAtMjMuOTU4NSAxMC44NzUgLTIzLjk1ODUgYwpoCmYKMTMuNzUgLTIzLjk1ODUgbQoxMy43NSAtMjMuOTU4NSAxMi40Mzc1IC0yMy45NTg1IDEyLjQzNzUgLTIzLjk1ODUgYwoxMi40Mzc1IC0yMy45NTg1IDEyLjQzNzUgLTI1LjMzMzUgMTIuNDM3NSAtMjUuMzMzNSBjCjEyLjQzNzUgLTI1LjMzMzUgMTMuNzUgLTI1LjMzMzUgMTMuNzUgLTI1LjMzMzUgYwoxMy43NSAtMjUuMzMzNSAxMy43NSAtMjMuOTU4NSAxMy43NSAtMjMuOTU4NSBjCmgKZgo3LjkzNzUgLTIzLjk1ODUgbQo3LjkzNzUgLTIzLjk1ODUgNi42MjUgLTIzLjk1ODUgNi42MjUgLTIzLjk1ODUgYwo2LjYyNSAtMjMuOTU4NSA2LjYyNSAtMjUuMzMzNSA2LjYyNSAtMjUuMzMzNSBjCjYuNjI1IC0yNS4zMzM1IDcuOTM3NSAtMjUuMzMzNSA3LjkzNzUgLTI1LjMzMzUgYwo3LjkzNzUgLTI1LjMzMzUgNy45Mzc1IC0yMy45NTg1IDcuOTM3NSAtMjMuOTU4NSBjCmgKZgoxMS4xMjUgLTE0LjA2MjUgbQoxMS4xMjUgLTE0LjA2MjUgOS4zNzUgLTE0LjA2MjUgOS4zNzUgLTE0LjA2MjUgYwo5LjM3NSAtMTQuMDYyNSA5LjM3NSAtMTYuNjg3NSA5LjM3NSAtMTYuNjg3NSBjCjkuMzc1IC0xNi42ODc1IDExLjEyNSAtMTYuNjg3NSAxMS4xMjUgLTE2LjY4NzUgYwoxMS4xMjUgLTE2LjY4NzUgMTEuMTI1IC0xNC4wNjI1IDExLjEyNSAtMTQuMDYyNSBjCmgKZgoxMC44NzUgLTIwLjk1ODUgbQoxMC44NzUgLTIwLjk1ODUgOS41NjI1IC0yMC45NTg1IDkuNTYyNSAtMjAuOTU4NSBjCjkuNTYyNSAtMjAuOTU4NSA5LjU2MjUgLTIyLjMzMzUgOS41NjI1IC0yMi4zMzM1IGMKOS41NjI1IC0yMi4zMzM1IDEwLjg3NSAtMjIuMzMzNSAxMC44NzUgLTIyLjMzMzUgYwoxMC44NzUgLTIyLjMzMzUgMTAuODc1IC0yMC45NTg1IDEwLjg3NSAtMjAuOTU4NSBjCmgKZgoxMy43NSAtMjAuOTU4NSBtCjEzLjc1IC0yMC45NTg1IDEyLjQzNzUgLTIwLjk1ODUgMTIuNDM3NSAtMjAuOTU4NSBjCjEyLjQzNzUgLTIwLjk1ODUgMTIuNDM3NSAtMjIuMzMzNSAxMi40Mzc1IC0yMi4zMzM1IGMKMTIuNDM3NSAtMjIuMzMzNSAxMy43NSAtMjIuMzMzNSAxMy43NSAtMjIuMzMzNSBjCjEzLjc1IC0yMi4zMzM1IDEzLjc1IC0yMC45NTg1IDEzLjc1IC0yMC45NTg1IGMKaApmCjcuOTM3NSAtMjAuOTU4NSBtCjcuOTM3NSAtMjAuOTU4NSA2LjYyNSAtMjAuOTU4NSA2LjYyNSAtMjAuOTU4NSBjCjYuNjI1IC0yMC45NTg1IDYuNjI1IC0yMi4zMzM1IDYuNjI1IC0yMi4zMzM1IGMKNi42MjUgLTIyLjMzMzUgNy45Mzc1IC0yMi4zMzM1IDcuOTM3NSAtMjIuMzMzNSBjCjcuOTM3NSAtMjIuMzMzNSA3LjkzNzUgLTIwLjk1ODUgNy45Mzc1IC0yMC45NTg1IGMKaApmCjEwLjg3NSAtMTguMDgzNSBtCjEwLjg3NSAtMTguMDgzNSA5LjU2MjUgLTE4LjA4MzUgOS41NjI1IC0xOC4wODM1IGMKOS41NjI1IC0xOC4wODM1IDkuNTYyNSAtMTkuNDU4NSA5LjU2MjUgLTE5LjQ1ODUgYwo5LjU2MjUgLTE5LjQ1ODUgMTAuODc1IC0xOS40NTg1IDEwLjg3NSAtMTkuNDU4NSBjCjEwLjg3NSAtMTkuNDU4NSAxMC44NzUgLTE4LjA4MzUgMTAuODc1IC0xOC4wODM1IGMKaApmCjEzLjc1IC0xOC4wODM1IG0KMTMuNzUgLTE4LjA4MzUgMTIuNDM3NSAtMTguMDgzNSAxMi40Mzc1IC0xOC4wODM1IGMKMTIuNDM3NSAtMTguMDgzNSAxMi40Mzc1IC0xOS40NTg1IDEyLjQzNzUgLTE5LjQ1ODUgYwoxMi40Mzc1IC0xOS40NTg1IDEzLjc1IC0xOS40NTg1IDEzLjc1IC0xOS40NTg1IGMKMTMuNzUgLTE5LjQ1ODUgMTMuNzUgLTE4LjA4MzUgMTMuNzUgLTE4LjA4MzUgYwpoCmYKNy45Mzc1IC0xOC4wODM1IG0KNy45Mzc1IC0xOC4wODM1IDYuNjI1IC0xOC4wODM1IDYuNjI1IC0xOC4wODM1IGMKNi42MjUgLTE4LjA4MzUgNi42MjUgLTE5LjQ1ODUgNi42MjUgLTE5LjQ1ODUgYwo2LjYyNSAtMTkuNDU4NSA3LjkzNzUgLTE5LjQ1ODUgNy45Mzc1IC0xOS40NTg1IGMKNy45Mzc1IC0xOS40NTg1IDcuOTM3NSAtMTguMDgzNSA3LjkzNzUgLTE4LjA4MzUgYwpoCmYKMTMuNjg3NSAtMTUuMjcxIG0KMTMuNjg3NSAtMTUuMjcxIDEyLjM3NSAtMTUuMjcxIDEyLjM3NSAtMTUuMjcxIGMKMTIuMzc1IC0xNS4yNzEgMTIuMzc1IC0xNi42NDYgMTIuMzc1IC0xNi42NDYgYwoxMi4zNzUgLTE2LjY0NiAxMy42ODc1IC0xNi42NDYgMTMuNjg3NSAtMTYuNjQ2IGMKMTMuNjg3NSAtMTYuNjQ2IDEzLjY4NzUgLTE1LjI3MSAxMy42ODc1IC0xNS4yNzEgYwpoCmYKNy44NzUgLTE1LjI3MSBtCjcuODc1IC0xNS4yNzEgNi41NjI1IC0xNS4yNzEgNi41NjI1IC0xNS4yNzEgYwo2LjU2MjUgLTE1LjI3MSA2LjU2MjUgLTE2LjY0NiA2LjU2MjUgLTE2LjY0NiBjCjYuNTYyNSAtMTYuNjQ2IDcuODc1IC0xNi42NDYgNy44NzUgLTE2LjY0NiBjCjcuODc1IC0xNi42NDYgNy44NzUgLTE1LjI3MSA3Ljg3NSAtMTUuMjcxIGMKaApmCg0KZW5kc3RyZWFtDWVuZG9iag0yMTE4IDAg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IDAgb2JqIDIyDWVuZG9iag0yMTM0IDAgb2JqPDwvTGVuZ3RoIDIxMzMgMCBSL0ZpbHRlclsvQVNDSUk4NURlY29kZS9GbGF0ZURlY29kZV0vV2lkdGggMi9IZWlnaHQgMy9CaXRzUGVyQ29tcG9uZW50IDgvQ29sb3JTcGFjZSAyMTMwIDAgUj4+c3RyZWFtDQo4O1VlYEAtRDYyISFrN1khT0RjZn4+DQplbmRzdHJlYW0NZW5kb2JqDTIxMzUgMCBvYmo8PC9MZW5ndGggMTI2MTEvVHlwZS9NZXRhZGF0YS9TdWJ0eXBlL1hNTD4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49J++7vycgaWQ9J1c1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCc/Pgo8P2Fkb2JlLXhhcC1maWx0ZXJzIGVzYz0iQ1JMRiI/Pg0KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLycgeDp4bXB0az0nWE1QIHRvb2xraXQgMi45LjEtMTMsIGZyYW1ld29yayAxLjYnPg0KPHJkZjpSREYgeG1sbnM6cmRmPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjJyB4bWxuczppWD0naHR0cDovL25zLmFkb2JlLmNvbS9pWC8xLjAvJz4NCjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjRjNWMyNzI1LTJiOTUtNDU5Ni1iOGEyLWZjOTdjZjUxMTAxNCcgeG1sbnM6cGRmPSdodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvJz48L3JkZjpEZXNjcmlwdGlvbj4NCjxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSd1dWlkOjRjNWMyNzI1LTJiOTUtNDU5Ni1iOGEyLWZjOTdjZjUxMTAxNCcgeG1sbnM6eGFwPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJw0KIHhtbG5zOnhhcEdJbWc9J2h0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9nL2ltZy8nIHhhcDpDcmVhdGVEYXRlPScyMDA2LTA3LTMwVDE5OjE3OjE1WicgeGFwOk1vZGlmeURhdGU9JzIwMDYtMDctMzBUMTk6MTA6MjQtMDQ6MDAnIHhhcDpDcmVhdG9yVG9vbD0nSWxsdXN0cmF0b3InIHhhcDpNZXRhZGF0YURhdGU9JzIwMDYtMDctMzBUMTk6MTA6MjQtMDQ6MDAnPjx4YXA6VGh1bWJuYWlscz48cmRmOkFsdD48cmRmOmxpIHJkZjpwYXJzZVR5cGU9J1Jlc291cmNlJz48eGFwR0ltZzpmb3JtYXQ+SlBFRzwveGFwR0ltZzpmb3JtYXQ+PHhhcEdJbWc6d2lkdGg+MTc2PC94YXBHSW1nOndpZHRoPjx4YXBHSW1nOmhlaWdodD4yNTY8L3hhcEdJbWc6aGVpZ2h0Pjx4YXBHSW1nOmltYWdlPi85ai80QUFRU2taSlJnQUJBZ0VBU0FCSUFBRC83UUFzVUdodmRHOXphRzl3SURNdU1BQTRRa2xOQSswQUFBQUFBQkFBU0FBQUFBRUEmI3hBO0FRQklBQUFBQVFBQi8rNEFEa0ZrYjJKbEFHVEFBQUFBQWYvYkFJUUFCZ1FFQkFVRUJnVUZCZ2tHQlFZSkN3Z0dCZ2dMREFvS0N3b0smI3hBO0RCQU1EQXdNREF3UURBNFBFQThPREJNVEZCUVRFeHdiR3hzY0h4OGZIeDhmSHg4Zkh3RUhCd2NOREEwWUVCQVlHaFVSRlJvZkh4OGYmI3hBO0h4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zkh4OGZIeDhmSHg4Zi84QUFFUWdCQUFDd0F3RVImI3hBO0FBSVJBUU1SQWYvRUFhSUFBQUFIQVFFQkFRRUFBQUFBQUFBQUFBUUZBd0lHQVFBSENBa0tDd0VBQWdJREFRRUJBUUVBQUFBQUFBQUEmI3hBO0FRQUNBd1FGQmdjSUNRb0xFQUFDQVFNREFnUUNCZ2NEQkFJR0FuTUJBZ01SQkFBRklSSXhRVkVHRTJFaWNZRVVNcEdoQnhXeFFpUEImI3hBO1V0SGhNeFppOENSeWd2RWxRelJUa3FLeVkzUENOVVFuazZPek5oZFVaSFREMHVJSUpvTUpDaGdaaEpSRlJxUzBWdE5WS0JyeTQvUEUmI3hBOzFPVDBaWFdGbGFXMXhkWGw5V1oyaHBhbXRzYlc1dlkzUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8rQ2s1U1ZscGVZbVomI3hBO3FibkoyZW41S2pwS1dtcDZpcHFxdXNyYTZ2b1JBQUlDQVFJREJRVUVCUVlFQ0FNRGJRRUFBaEVEQkNFU01VRUZVUk5oSWdaeGdaRXkmI3hBO29iSHdGTUhSNFNOQ0ZWSmljdkV6SkRSRGdoYVNVeVdpWTdMQ0IzUFNOZUpFZ3hkVWt3Z0pDaGdaSmpaRkdpZGtkRlUzOHFPend5Z3AmI3hBOzArUHpoSlNrdE1UVTVQUmxkWVdWcGJYRjFlWDFSbFptZG9hV3ByYkcxdWIyUjFkbmQ0ZVhwN2ZIMStmM09FaFlhSGlJbUtpNHlOam8mI3hBOytEbEpXV2w1aVptcHVjblo2ZmtxT2twYWFucUttcXE2eXRycSt2L2FBQXdEQVFBQ0VRTVJBRDhBOVU0cThXL09iL25KbnkxNURsbDAmI3hBO2JTSTAxcnpPbTBrQ3QvbzFzM1NsdzY3bHgvdnRkL0VyaXI1VDgzL252K2F2bXFaMjFEWDdtM3RuSnBZMkRtMGdDbjlrckVWTGovWEwmI3hBO0hGV0NUVHpUeUdTYVJwWkc2dTVMTWZwT0txZUt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFZHYWRyT3I2WktKZE52cmkmI3hBO3lsQnFKTGFWNG1COGFvVlBiRlhyZmtEL0FKeXIvTTN5MVBGRnExei9BSWswb0VDUzN2ai9BS1FGNzhMb0F5Y3YrTW5NZTJLdnI3OHQmI3hBO3Z6VDhvL21GbzM2UjBDNXJMRlFYdW55MFc1dDNib0pFQk94L1paYXFmR29JQ3JMOFZlTGY4NU0vbk5MNUQ4dFI2Um8wdkR6UHJTTXMmI3hBO0VnKzFiVzMyWHVCVG81UHd4KzlUK3ppcjRzOHQrVzlkODJhN0hwZWx4dGRhaGRNWGQzT3lqcThzcm10QUs3bitPVHg0ek0wR3ZMbGomI3hBO2pqeFM1UHA3eVA4QTg0OCtTdEJnam0xZUZkYzFTZ01qM0lyYkszY1J3SDRTUDlmbDlIVE50aTBjSTg5eTZIUDJqa245UHBEMGUzMFgmI3hBO1I3ZU1SVzloYnd4RHBISEVpcVBvQUF6SkVRT2poR2NqektwK2p0UC9BT1dXSC9rV3Y5TVBDRWNSNzNmbzdULytXV0gvQUpGci9USGgmI3hBO0M4UjczZm83VC84QWxsaC81RnIvQUV4NFF2RWU5MzZPMC84QTVaWWYrUmEvMHg0UXZFZTkzNk8wL3dENVpZZitSYS8weDRRdkVlOTMmI3hBOzZPMC8vbGxoL3dDUmEvMHg0UXZFZTkzNk8wLy9BSlpZZitSYS93Qk1lRUx4SHZkK2p0UC9BT1dXSC9rV3Y5TWVFTHhIdmQranRQOEEmI3hBOytXV0gva1d2OU1lRUx4SHZkK2p0UC81WllmOEFrV3Y5TWVFTHhIdmQranRQL3dDV1dIL2tXdjhBVEhoQzhSNzNmbzdUL3dEbGxoLzUmI3hBO0ZyL1RIaEM4UjczZm83VC9BUGxsaC81RnIvVEhoQzhSNzNmbzdULytXV0gvQUpGci9USGhDOFI3MEJxdmxEeXJxMFJpMUxTTE83UWkmI3hBO243MkNObUgrcTFPUy9RY2pMSEU4d3pobW5Ia1NIaVA1bmY4QU9OME1Ock5xM2tvT1dqQmVYUm5ibVNvM1AxZDIrS29IN0RFazlqMEcmI3hBO1lHZlJkWWZKMm1sN1NzOE9UNS9yZU8rUlBQSG1EeU41b3RkZjBhVXhYZHMzR2FCcWlPYUluOTVES3ZkV3A5QjNHNEdhMTNMOUZmSS8mI3hBO25EU2ZPUGxYVHZNZWx0VzB2NGcvcGsxYU9RSGpKRTlQMmtjRlRpcjRIL1BmemZONXEvTlhYOVFaeTl0YjNMMkZpSzFVUVdoTVNsZlomI3hBO3lwZjV0aXIzZi9uSG55UEJvUGtxSFY1b3grbE5jVVhMeUVmRXRzZDRJd2ZBcjhmK3k5aG01MGVMaGhmVXZPOW81K1BKdzlJdlZNeTMmI3hBO1h1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWOHIvODVLZVI3ZlJmTThHdldVWWp0TmNEdGNJbzJXNmomI3hBO3A2amUzcUJnM3o1SE5ScmNYREt4MWVnN056bVVPRTg0L2M5Si93Q2NKUE44cmY0ZzhvVFB5alFKcXRrbmRkeEJjZlFheGZqNDVoT3kmI3hBO2ZMRTgwazgwazBoNVNTc1hjK0xNYW5GWDN6b3R2SGI2UFlXOFFwRkRieFJ4andWVUFINERPaWlLQWVRbWJrU2pja3dkaXJzVmRpcnMmI3hBO1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJ4Ny9uS0czamsvTDIwbVlmdklOU2hLTjNvMFVxa2ZMTUxYajBmRjJYWlomI3hBOy9lSDNNRS81dytua2kvT0ZFUTBXZlRycU9RZUtqZy8vQUJKQm1vZWdlSTRxL1FIVHYrT2ZhLzhBR0dQL0FJaU02T1BKNCtYTW9uQ3gmI3hBO2RpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJ5UC9uSjMveVc4WC9iUmcvNU55NWg2Nys3K0xzZXkvNzMmI3hBOzRQTy8rY1EvL0p5MjMvTURkLzhBRVJtbmVoZUs0cS9RSFR2K09mYS84WVkvK0lqT2pqeWVQbHpLSndzWFlxN0ZYWXE3RlhZcTdGWFkmI3hBO3E3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxOGovd0NjbmY4QXlXOFgvYlJnL3dDVGN1WWV1L3UvaTdIc3YrOStEenYvQUp4RC93REomI3hBO3kyMy9BREEzZi9FUm1uZWhlSzRxL1FIVHYrT2ZhLzhBR0dQL0FJaU02T1BKNCtYTW9uQ3hkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnMmI3hBO1ZkaXJzVmRpcnNWZGlyc1ZkaXJ5UC9uSjMveVc4WC9iUmcvNU55NWg2Nys3K0xzZXkvNzM0UE8vK2NRLy9KeTIzL01EZC84QUVSbW4mI3hBO2VoZUs0cS9RSFR2K09mYS84WVkvK0lqT2pqeWVQbHpLSndzWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlgmI3hBO1lxOGovd0NjbmY4QXlXOFgvYlJnL3dDVGN1WWV1L3UvaTdIc3YrOStEenYvQUp4RC93REp5MjMvQURBM2YvRVJtbmVoZUs0cS9RSFQmI3hBO3YrT2ZhLzhBR0dQL0FJaU02T1BKNCtYTW9uQ3hkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyeVAvbkomI3hBOzMveVc4WC9iUmcvNU55NWg2Nys3K0xzZXkvNzM0UE8vK2NRLy9KeTIzL01EZC84QUVSbW5laGVLNHEvUUhUditPZmEvOFlZLytJak8mI3hBO2pqeWVQbHpLSndzWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcThqL3dDY25mOEF5VzhYL2JSZy93Q1QmI3hBO2N1WWV1L3UvaTdIc3YrOStEenYvQUp4RC93REp5MjMvQURBM2YvRVJtbmVoZUs0cS9RSFR2K09mYS84QUdHUC9BSWlNNk9QSjQrWE0mI3hBO29uQ3hkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyeVAvbkozL3lXOFgvYlJnLzVOeTVoNjcrNytMc2UmI3hBO3kvNzM0UE8vK2NRLy9KeTIzL01EZC84QUVSbW5laGVLNHEvUUhUditPZmEvOFlZLytJak9qanllUGx6S0p3c1hZcTdGWFlxN0ZYWXEmI3hBOzdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcThqL3dDY25mOEF5VzhYL2JSZy93Q1RjdVlldS91L2k3SHN2KzkrRHp2L0FKeEQmI3hBOy93REp5MjMvQURBM2YvRVJtbmVoZUs0cS9RSFR2K09mYS84QUdHUC9BSWlNNk9QSjQrWE1vbkN4ZGlyc1ZkaXJzVmRpcnNWZGlyc1YmI3hBO2RpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyeVAvbkozL3lXOFgvYlJnLzVOeTVoNjcrNytMc2V5LzczNFBPLytjUS8vSnkyMy9NRGQvOEEmI3hBO0VSbW5laGVLNHEvUUhUditPZmEvOFlZLytJak9qanllUGx6S0p3c1hZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFkmI3hBO3E3RlhZcThqL3dDY25mOEF5VzhYL2JSZy93Q1RjdVlldS91L2k3SHN2KzkrRHp2L0FKeEQvd0RKeTIzL0FEQTNmL0VSbW5laGVLNHEmI3hBOy9RSFR2K09mYS84QUdHUC9BSWlNNk9QSjQrWE1vbkN4ZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnkmI3hBO1AvbkozL3lXOFgvYlJnLzVOeTVoNjcrNytMc2V5LzczNFBPLytjUS8vSnkyMy9NRGQvOEFFUm1uZWhlSzRxL1FIVHYrT2ZhLzhZWS8mI3hBOytJak9qanllUGx6S0p3c1hZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE4ai93Q2NuZjhBeVc4WC9iUmcmI3hBOy93Q1RjdVlldS91L2k3SHN2KzkrRHp2L0FKeEQvd0RKeTIzL0FEQTNmL0VSbW5laGVLNHEvUUhUditPZmEvOEFHR1AvQUlpTTZPUEomI3hBOzQrWE1vbkN4ZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnlQL25KMy95VzhYL2JSZy81Tnk1aDY3KzcmI3hBOytMc2V5LzczNFBPLytjUS8vSnkyMy9NRGQvOEFFUm1uZWhlSzRxL1FIVHYrT2ZhLzhZWS8rSWpPamp5ZVBsektKd3NYWXE3RlhZcTcmI3hBO0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE4ai93Q2NuZjhBeVc4WC9iUmcvd0NUY3VZZXUvdS9pN0hzdis5K0R6di8mI3hBO0FKeEQvd0RKeTIzL0FEQTNmL0VSbW5laGVRNnpwMHVtYXZmYWJLQ0piSzRsdHBBZW9hSnlocjA3cmlyN204b2FyRnEzbFhTTlNpSUsmI3hBO1hkbkJMdDJab3h5WC9ZdFVaME9PVnhCZVN6UTRaa2R4VGpKdFRzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGkmI3hBO3JzVmVKLzhBT1ZHcXhRK1VOSzB6a0JQZVgzckJlNWp0NG1EYmY2MHlaZzYrWHBBODNhZGxRdVpQY0dNLzg0YTZaSmRmbXZjWFlCOUsmI3hBO3cweWVSbTdjcEpJb2xYb2VvY242TTFMdmt1LzV5cjhnVCtXdnpOdWRXaWlJMHJ6SlcrdDVBUGhGeHNMcEsvemVvZlUrVGpGVTkvNXgmI3hBO3UvTTYxaGhIa3JWcGhHeGRuMGFWelJTWCtKN2VwMkI1VlpQRWtqd0diTFJaL3dDQS9CMDNhV2xKL2VSK1A2MzBObXlkTTdGWFlxN0YmI3hBO1hZcTdGWFlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXE3RlhZcWg3Ky9zOVBzNXIyOW1TM3RMZERKUFBJUXFJaWlwSkp3RWdDeXlqRWswT2ImI3hBOzQwL04zOHdXODdlYlpiNkhrdWwyaS9WdE5qYlkra3BKTWpEK2FSalgyRkIyelI2ak40a3I2UFRhUFQrRkN1dlY5Ty84NGQrUVo5RTgmI3hBO2szbm1hOWlNZDM1aWtRMm9ZVVlXZHZVUnR2MDlSM2MrNENuS0hLZW8vbW4rVzJqZm1GNVJ1ZEExSDkxS2YzdW4zb0hKN2U1VUVKSUImI3hBOzNHL0ZsN3FUME5DRlg1K2VlUElubWp5TjVnbDBiWDdWcmE3aVBLQ1phbUthTUg0WllaTnVTbjd4ME5EdGlyMER5UDhBODVLZVo5RnQmI3hBOzQ3TFhvQnJscEdBcVhEUDZkMG8veXBLTUpLZjVRcjR0bWJpMXNvN0hkMXVmczJFamNmU2ZzZWoyL3dEemxEK1hza1lhYTAxS0NUOXAmI3hBO0RERXdyN0ZaZW1aUTE4UE53VDJYazd3ckQvbkp6OHR5UVBUMUFlNWdUL3FwaC9QWS9OSDhtWmZKNnhGTEhMRWtzYkI0NUZESTQzQlUmI3hBO2lvSXpNZGVRdnhRN0ZYWXE3RlhZcTdGWFlxODk4M2ZubjVHOHJhM0xvMSsxek5ld0twbityUnJJaUZ4VUlTWFQ0cVVKK2VZMlRWUWcmI3hBO2FMbTRkRGt5UjRoVkpMLzBNNytXL3dEdnJVZitSRWYvQUZWeUg1N0g1dG44bDVmSjMvUXp2NWIvQU8rdFIvNUVSLzhBVlhIODlqODEmI3hBOy9rdkw1Ty82R2QvTGYvZldvLzhBSWlQL0FLcTQvbnNmbXY4QUplWHlkLzBNNytXLysrdFIvd0NSRWY4QTFWeC9QWS9OZjVMeStTWDYmI3hBO3IvemxSNVFoaWI5R2FYZlhrNEh3aWIwcmVNN2Z6QnBtL3dDRXlNdGZIb0N6aDJWTTh5QThZL01IODNmTm5uWnZSdnBGdE5LVnVVZW0mI3hBO1c5UkZVSFpwQ2Zpa1llKzNnQm1CbTFFc25QazdUVDZPR0xsdWU5bG41QmZrRnF2bi9WWWRXMWFHUzI4bTIwaE54Y0U4R3VtVC9kRUgmI3hBO2NnblozR3dGUUR5eWh5bjNiYlcxdmEyOFZ0YlJMRGJ3SXNjTU1ZQ29pSU9LcXFqWUFBVUF4VlV4Vkl2T0hrZnlyNXgwbHRMOHg2ZEYmI3hBO2YyaHFZK1lJa2pZN2M0cEZvNk43cWNWZk9mbS8vbkNUbEs4M2xEekFFamI3RmxxcUg0VC9BTXhFQU5SL3p5K2s0cXdLZi9uRDc4NFkmI3hBO3BDaUpwMDZqcEpIZFVVLzhHaU4rR0t2TFBPWGxEVy9KL21PNzh2YTNHc1dwV1hEMWxSdWFVa2pXUlNyRHFDcmpGWDFsK1IzbVA5Ty8mI3hBO2xycE1ydHl1TEZUWVhGZjVyZjRVKytMZ2MzbWxueFl3OHpyc2ZCbFBudXozTWh3M1lxN0ZYWXE3RlhZcXhIODBQUGxyNUs4cVhHcU4mI3hBO3hlL2tyQnB0dWYyNTJCNGtqK1ZQdE43YmQ4cHo1ZUNOOVhKMHVuT1dkZE9yNDMwK3cxenpUNWppczdaWHY5YTFpNTRxQ1J5a25tYXAmI3hBO1ppZGh1YWtuWVpvaWJObDZpSUFGQjZ0LzBLSCtjdjhBeXpXUC9TV3Y5TUNYZjlDaC9uTC9BTXMxai8wbHIvVEZYZjhBUW9mNXkvOEEmI3hBO0xOWS85SmEvMHhWMy9Rb2Y1eS84czFqL0FOSmEvd0JNVlIybWY4NGEvbXZkU0FYZHhwbGhGWDRta25ra2FtMzJWaWljSHIzSXhWNjUmI3hBOzVCLzV3NzhrNkpQRmUrWnJ5VHpGZHhrTUxVcDlYc3d3MytLTUYza3A3dUFlNjRxOTh0cmEzdGJlSzJ0b2tndDRWRWNNTWFoRVJGRkYmI3hBO1ZWV2dBQTZBWXFxWXE3RlhZcTdGWFlxK1JQOEFuTm55a2JmWHRDODF3cCs3dm9IMCs3WWRCTGJ0NmtSUHU2U01QOWppcVEvODRxK1kmI3hBOy9UMUhXUExrcmZEY1JyZld3SjJEeEVSeWdlN0s2ZjhBQTVzZEJQY3hkUjJyajJFdmcrajgyYnBIWXE3RlhZcTdGVmtzc2NVVHl5c0UmI3hBO2pqVXM3c2FCVlVWSkpQWVlwQWZHZjV3L21ISjUxODF5WEVESDlEMk5iZlM0elVBb0Q4VXBCL2FsSXI4cUR0bWoxT2JqbDVQVGFQVCsmI3hBO0ZDdjRqemZRSC9PSVA1Ui9VTEJ2ekIxZUdsNWZLME9oUnVOMHR6OE1seHYwTXYyVi93QW12WnN4M0xmVE9LdXhWMkt1eFYyS3V4VjImI3hBO0t1eFYyS3V4VjJLdXhWNWIvd0E1TCtVaDVrL0tEV1ZqUVBkNlNxNnJhazlqYTFNdFAramRwQmlyNG0vTER6SC9BSWQ4KzZMcXJQd2cmI3hBO2p1Rml1bVBRUVQxaWxKLzFWY3Q5R1hZSjhNd1hIMVdQanhrUHVITjg4cTdGWFlxN0ZYWXE4Ty81eVMvTWo5SGFhUEorbXkwdmRRUVAmI3hBO3FicWQ0N1kvWmkyN3k5LzhuL1d6QTF1ZWh3anE3WHMzVGNSNHp5SEo1WCtSWDVXWEg1aWVlTGZUNUZaZEVzZU56clU0cUtRQTdSQmgmI3hBOzBlWS9DUGFyZnM1cW5ldjBMdGJhM3RMYUsxdG9saHRvRVdLQ0ZBRlJFUWNWVlFOZ0FCUVlxcVlxN0ZYWXE3RlhZcTdGWFlxN0ZYWXEmI3hBOzdGWFlxN0ZWTzR0NExtM2x0NTBFc0V5TkhMR3dxckk0b3lrZUJCeFYrWlhuYnkxUDVZODM2eDVmbXFXMHk3bXRsYzlYUkhJamYvWnAmI3hBO1JoODhWZlkzNVgrWlA4UitRdEcxUm41M0QyNnhYVEhxWjRQM1VwUCtzeUZ2cHpmNEo4VUFYbGRWajRNaERLY3RjZDJLdXhWSVBQUG0mI3hBOy9UL0tQbG04MXU5b3dnWGpid1ZvWlptMmpqWDVucjRDcDdaWGx5Q0ViTGRnd25KTVJENG4xQysxcnpONWhrdXArZDdxK3EzQW9pQXMmI3hBO3p5eXNGUkVYZnhDcXYwWm9aU01qWmVwaEFSQUE1QitnUDVJZmxkYmZsMzVIdDlMWlZiV0xxbHpyTnl1L080WWZZRGZ5Ukw4Qy9TMzcmI3hBO1J5TE42Qmlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZmRmYvQURtWDVTT21mbUhaK1lZbytOdnI5b3ZxdjQzTm5TSi8mI3hBOytTSml4VkhmODRxK1kvVTA3V1BMc3IvRmJ5TGZXeWs3OEpSNmN0UFpXUlArQ3paNkNleGk2VHRYSHVKZkI3NW14ZFE3RlhZcStSZnomI3hBOzUvTWovRmZtWTZmWVM4dEQwaG1pdHlwK0dhYXRKSnR1bzI0cDdiajdXYWJWNStPVkRrSG85QnB2RGhaK292VHYrY1FmeWkrdDNiZm0mI3hBO0hyRU5iYTFab2RBamZvOHdxc3R4VHdqK3duK1Z5N3FNeEhQZlcyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdkYmI3hBO1ArY3QvS1g2Yi9LaWJVb28rVjNvRnhIZXFSOXIwWFBvektQYWtnYy82dUt2bFA4QUk3ekgrZ3Z6SzBtVjI0Mjk4eHNMaXY4QUxjZkMmI3hBO24zUzhEbVJwWjhPUU9KcnNmSGlQbHUremMzanpEc1ZlUy84QU9RZjVrLzRiOHZmb1BUNWVPdGF3aktXVS9GRGFuNFpIOW1mN0MvU2UmI3hBOzJZZXN6OE1hSE11eDdQMDNITGlQMGo3M3o5K1ZYNWQ2aitZSG5XeDh2V25LT0J6NjJvM1FGZlF0RUk5V1RmdnVGVWQySXpUdlF2MFomI3hBOzBYUjlPMFhTYlRTZE1nVzNzTEdKSUxhRmVpb2dvUG1mRTk4VlJtS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLb0gmI3hBO1h0SHROYTBUVU5IdkJXMDFHMmx0SngxUENaQ2pVcjdOaXI4eU5VMCsvd0JEMXU3MCs0ckRmNlpjeVFTMDJLelFTRkRUNU11S2tQdVAmI3hBO3lmcnllWVBLMmxhMGxQOEFUcmFPV1FEb3NoV2tpLzdGd1JuUTQ1OFVRWGtzMlBnbVk5eFZ2TWZtRFRmTDJoM21zNmsvcDJkbEdaSkMmI3hBO09wUFJVWC9LZGlGSHVjTTVpSXNveDR6T1FpT1pmRVBtenpOcW5tdnpIZDZ6ZlZhNXZKUGdoV3JDTk9rY1NleWlnSGptZ3laRE9WbDYmI3hBO25EaUdPSWlPajdnLzV4dy9LUWVRZkphejZoRHc4eWF5RXVOVDVENG9WcFdLMi81NWhxdC9sRStBeURhOWF4VjJLdXhWMkt1eFYyS3UmI3hBO3hWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjhKZjhBT1dYbElhRitiVnpmUXB3dE5lZ2p2MHA5bjFkNHBoOHk4Zk0vNjJLczcvNXgmI3hBO2U4eC9YZko5N29ralZsMG00NXhDdlNHNXE0Mi80eUsvMzV0dEJPNGtkem9lMU1kVEV1LzlEQlArY2pmekkvVE90RHl0cDB2TFROS2smI3hBO0p2SFU3UzNZcXBYNVE3ci9BSzFmQVpqNjNQeEhoSElPWDJicHVHUEdlWis1T2Y4QW5FNzhvdjhBRW5tUStjTldnNWFKb2NnK3BvNCsmI3hBO0dlK0h4TDEyS3dDam4vSzQrK1lMczMycGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZlBmL0FEbWYmI3hBOzVUL1NIa0xUdk1jU1ZuME83NFROVHBiM2xJMkpQL0dWSXg5T0t2bFh5UDU4MWZ5Zk5xVnhwaHBQcUZtOW1HSi91MlpsS3pEL0FDa28mI3hBO2VQenkzRmxNTHJxMFo5UEhKUVBRcUhrbnlockhuVHpaWWVYdE1CZTkxR1hpMHJWWVJvUGlsbWYvQUNVVUZqL1hLbTkram5rN3lwcFAmI3hBO2xMeXpwL2w3U1kvVHNkUGlFYWZ6TzMybmtmOEF5cEhKWnZjNHFuT0t1eFYyS3V4VjJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3UmI3hBO3hWMkt1eFZJZlB2bGlMelQ1TDFyeTlKUWZwSzBsZ2pZL3N5bGF4UC9BTEdRSzJLdnpNbWhsZ21lR1pESExFeFNSR0ZDckthRUVleHgmI3hBO1Y5dC84NHFmbEgvaFR5ci9BSW8xV0hocit2eHEwYXVQaXQ3RTBlT1AyYVhaMy8ySTZnNHE5MnhWMkt1eFYyS3V4VjJLdXhWMkt1eFYmI3hBOzJLdXhWMkt1eFYyS3V4VjJLdXhWMkt1eFYyS3ZsdUQvQUp4Mk9xZjg1SWExZVgxdFR5ZmF6UjYwd1lmQmNTM1ZaRnRnRHR4OWRaT1kmI3hBOy9rV20zSVlxK3BBQUJRYkFkQmlyc1ZkaXJzVmRpcnNWZGlyc1ZkaXJzVmRpcnNWZGlyc1ZmLy9aPC94YXBHSW1nOmltYWdlPjwvcmRmOmxpPjwvcmRmOkFsdD48L3hhcDpUaHVtYm5haWxzPjwvcmRmOkRlc2NyaXB0aW9uPg0KPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9J3V1aWQ6NGM1YzI3MjUtMmI5NS00NTk2LWI4YTItZmM5N2NmNTExMDE0JyB4bWxuczpkYz0naHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8nIGRjOmZvcm1hdD0nYXBwbGljYXRpb24vdm5kLmFkb2JlLmlsbHVzdHJhdG9yJy8+DQo8L3JkZjpSREY+DQo8L3g6eG1wbWV0YT4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0ndyc/Pg0KZW5kc3RyZWFtDWVuZG9iag14cmVmDQowIDIxMzYNCjAwMDAwMDAwMDQgNjU1MzUgZg0KMDAwMDAwMDAxNiAwMDAwMCBuDQowMDAwMDAwMDc4IDAwMDAwIG4NCjAwMDAwMDAxMjggMDAwMDAgbg0KMDAwMDAwMDAwOSAwMDAwMSBmDQowMDAwMDAwMjY2IDAwMDAwIG4NCjAwMDAwMDAyODYgMDAwMDAgbg0KMDAwMDAwNzM1MCAwMDAwMCBuDQowMDAwMDA3NDIxIDAwMDAwIG4NCjAwMDAwMDAwMTAgMDAwMDEgZg0KMDAwMDAwMDAxMSAwMDAwMSBmDQowMDAwMDAwMDEyIDAwMDAxIGYNCjAwMDAwMDAwMTMgMDAwMDEgZg0KMDAwMDAwMDAxNCAwMDAwMSBmDQowMDAwMDAwMDE1IDAwMDAxIGYNCjAwMDAwMDAwMTYgMDAwMDEgZg0KMDAwMDAwMDAxNyAwMDAwMSBmDQowMDAwMDAwMDE4IDAwMDAxIGYNCjAwMDAwMDAwMTkgMDAwMDEgZg0KMDAwMDAwMDAyMCAwMDAwMSBmDQowMDAwMDAwMDIxIDAwMDAxIGYNCjAwMDAwMDAwMjIgMDAwMDEgZg0KMDAwMDAwMDAyMyAwMDAwMSBmDQowMDAwMDAwMDI0IDAwMDAxIGYNCjAwMDAwMDAwMjUgMDAwMDEgZg0KMDAwMDAwMDAyNiAwMDAwMSBmDQowMDAwMDAwMDI3IDAwMDAxIGYNCjAwMDAwMDAwMjggMDAwMDEgZg0KMDAwMDAwMDAyOSAwMDAwMSBmDQowMDAwMDAwMDMwIDAwMDAxIGYNCjAwMDAwMDAwMzEgMDAwMDEgZg0KMDAwMDAwMDAzMiAwMDAwMSBmDQowMDAwMDAwMDMzIDAwMDAxIGYNCjAwMDAwMDAwMzQgMDAwMDEgZg0KMDAwMDAwMDAzNSAwMDAwMSBmDQowMDAwMDAwMDM2IDAwMDAxIGYNCjAwMDAwMDAwMzcgMDAwMDEgZg0KMDAwMDAwMDAzOCAwMDAwMSBmDQowMDAwMDAwMDM5IDAwMDAxIGYNCjAwMDAwMDAwNDAgMDAwMDEgZg0KMDAwMDAwMDA0MSAwMDAwMSBmDQowMDAwMDAwMDQyIDAwMDAxIGYNCjAwMDAwMDAwNDMgMDAwMDEgZg0KMDAwMDAwMDA0NCAwMDAwMSBmDQowMDAwMDAwMDQ1IDAwMDAxIGYNCjAwMDAwMDAwNDYgMDAwMDEgZg0KMDAwMDAwMDA0NyAwMDAwMSBmDQowMDAwMDAwMDQ4IDAwMDAxIGYNCjAwMDAwMDAwNDkgMDAwMDEgZg0KMDAwMDAwMDA1MCAwMDAwMSBmDQowMDAwMDAwMDUxIDAwMDAxIGYNCjAwMDAwMDAwNTIgMDAwMDEgZg0KMDAwMDAwMDA1MyAwMDAwMSBmDQowMDAwMDAwMDU0IDAwMDAxIGYNCjAwMDAwMDAwNTUgMDAwMDEgZg0KMDAwMDAwMDA1NiAwMDAwMSBmDQowMDAwMDAwMDU3IDAwMDAxIGYNCjAwMDAwMDAwNTggMDAwMDEgZg0KMDAwMDAwMDA1OSAwMDAwMSBmDQowMDAwMDAwMDYwIDAwMDAxIGYNCjAwMDAwMDAwNjEgMDAwMDEgZg0KMDAwMDAwMDA2MiAwMDAwMSBmDQowMDAwMDAwMDY0IDAwMDAxIGYNCjAwMDAwMDgwOTUgMDAwMDAgbg0KMDAwMDAwMDA2NSAwMDAwMSBmDQowMDAwMDAwMDY2IDAwMDAxIGYNCjAwMDAwMDAwNjcgMDAwMDEgZg0KMDAwMDAwMDA2OCAwMDAwMSBmDQowMDAwMDAwMDY5IDAwMDAxIGYNCjAwMDAwMDAwNzAgMDAwMDEgZg0KMDAwMDAwMDA3MSAwMDAwMSBmDQowMDAwMDAwMDcyIDAwMDAxIGYNCjAwMDAwMDAwNzMgMDAwMDEgZg0KMDAwMDAwMDA3NCAwMDAwMSBmDQowMDAwMDAwMDc1IDAwMDAxIGYNCjAwMDAwMDAwNzYgMDAwMDEgZg0KMDAwMDAwMDA3NyAwMDAwMSBmDQowMDAwMDAwMDc4IDAwMDAxIGYNCjAwMDAwMDAwNzkgMDAwMDEgZg0KMDAwMDAwMDA4MCAwMDAwMSBmDQowMDAwMDAwMDgxIDAwMDAxIGYNCjAwMDAwMDAwODIgMDAwMDEgZg0KMDAwMDAwMDA4MyAwMDAwMSBmDQowMDAwMDAwMDg0IDAwMDAxIGYNCjAwMDAwMDAwODUgMDAwMDEgZg0KMDAwMDAwMDA4NiAwMDAwMSBmDQowMDAwMDAwMDg3IDAwMDAxIGYNCjAwMDAwMDAwODggMDAwMDEgZg0KMDAwMDAwMDA4OSAwMDAwMSBmDQowMDAwMDAwMDkwIDAwMDAxIGYNCjAwMDAwMDAwOTEgMDAwMDEgZg0KMDAwMDAwMDA5MiAwMDAwMSBmDQowMDAwMDAwMDkzIDAwMDAxIGYNCjAwMDAwMDAwOTQgMDAwMDEgZg0KMDAwMDAwMDA5NSAwMDAwMSBmDQowMDAwMDAwMDk2IDAwMDAxIGYNCjAwMDAwMDAwOTcgMDAwMDEgZg0KMDAwMDAwMDA5OCAwMDAwMSBmDQowMDAwMDAwMDk5IDAwMDAxIGYNCjAwMDAwMDAxMDAgMDAwMDEgZg0KMDAwMDAwMDEwMSAwMDAwMSBmDQowMDAwMDAwMTAyIDAwMDAxIGYNCjAwMDAwMDAxMDMgMDAwMDEgZg0KMDAwMDAwMDEwNCAwMDAwMSBmDQowMDAwMDAwMTA1IDAwMDAxIGYNCjAwMDAwMDAxMDYgMDAwMDEgZg0KMDAwMDAwMDEwNyAwMDAwMSBmDQowMDAwMDAwMTA4IDAwMDAxIGYNCjAwMDAwMDAxMDkgMDAwMDEgZg0KMDAwMDAwMDExMCAwMDAwMSBmDQowMDAwMDAwMTExIDAwMDAxIGYNCjAwMDAwMDAxMTIgMDAwMDEgZg0KMDAwMDAwMDExMyAwMDAwMSBmDQowMDAwMDAwMTE0IDAwMDAxIGYNCjAwMDAwMDAxMTUgMDAwMDEgZg0KMDAwMDAwMDExNiAwMDAwMSBmDQowMDAwMDAwMTE3IDAwMDAxIGYNCjAwMDAwMDAxMTkgMDAwMDEgZg0KMDAwMDAwODExNiAwMDAwMCBuDQowMDAwMDAwMTIwIDAwMDAxIGYNCjAwMDAwMDAxMjEgMDAwMDEgZg0KMDAwMDAwMDEyMiAwMDAwMSBmDQowMDAwMDAwMTIzIDAwMDAxIGYNCjAwMDAwMDAxMjQgMDAwMDEgZg0KMDAwMDAwMDEyNSAwMDAwMSBmDQowMDAwMDAwMTI2IDAwMDAxIGYNCjAwMDAwMDAxMjcgMDAwMDEgZg0KMDAwMDAwMDEyOCAwMDAwMSBmDQowMDAwMDAwMTI5IDAwMDAxIGYNCjAwMDAwMDAxMzAgMDAwMDEgZg0KMDAwMDAwMDEzMSAwMDAwMSBmDQowMDAwMDAwMTMyIDAwMDAxIGYNCjAwMDAwMDAxMzMgMDAwMDEgZg0KMDAwMDAwMDEzNCAwMDAwMSBmDQowMDAwMDAwMTM1IDAwMDAxIGYNCjAwMDAwMDAxMzYgMDAwMDEgZg0KMDAwMDAwMDEzNyAwMDAwMSBmDQowMDAwMDAwMTM4IDAwMDAxIGYNCjAwMDAwMDAxMzkgMDAwMDEgZg0KMDAwMDAwMDE0MCAwMDAwMSBmDQowMDAwMDAwMTQxIDAwMDAxIGYNCjAwMDAwMDAxNDIgMDAwMDEgZg0KMDAwMDAwMDE0MyAwMDAwMSBmDQowMDAwMDAwMTQ0IDAwMDAxIGYNCjAwMDAwMDAxNDUgMDAwMDEgZg0KMDAwMDAwMDE0NiAwMDAwMSBmDQowMDAwMDAwMTQ3IDAwMDAxIGYNCjAwMDAwMDAxNDggMDAwMDEgZg0KMDAwMDAwMDE0OSAwMDAwMSBmDQowMDAwMDAwMTUwIDAwMDAxIGYNCjAwMDAwMDAxNTEgMDAwMDEgZg0KMDAwMDAwMDE1MiAwMDAwMSBmDQowMDAwMDAwMTUzIDAwMDAxIGYNCjAwMDAwMDAxNTQgMDAwMDEgZg0KMDAwMDAwMDE1NSAwMDAwMSBmDQowMDAwMDAwMTU2IDAwMDAxIGYNCjAwMDAwMDAxNTcgMDAwMDEgZg0KMDAwMDAwMDE1OCAwMDAwMSBmDQowMDAwMDAwMTU5IDAwMDAxIGYNCjAwMDAwMDAxNjAgMDAwMDEgZg0KMDAwMDAwMDE2MSAwMDAwMSBmDQowMDAwMDAwMTYyIDAwMDAxIGYNCjAwMDAwMDAxNjMgMDAwMDEgZg0KMDAwMDAwMDE2NCAwMDAwMSBmDQowMDAwMDAwMTY1IDAwMDAxIGYNCjAwMDAwMDAxNjYgMDAwMDEgZg0KMDAwMDAwMDE2NyAwMDAwMSBmDQowMDAwMDAwMTY4IDAwMDAxIGYNCjAwMDAwMDAxNjkgMDAwMDEgZg0KMDAwMDAwMDE3MCAwMDAwMSBmDQowMDAwMDAwMTcxIDAwMDAxIGYNCjAwMDAwMDAxNzIgMDAwMDEgZg0KMDAwMDAwMDE3MyAwMDAwMSBmDQowMDAwMDAwMTc0IDAwMDAxIGYNCjAwMDAwMDAxNzUgMDAwMDEgZg0KMDAwMDAwMDE3NiAwMDAwMSBmDQowMDAwMDAwMTc3IDAwMDAxIGYNCjAwMDAwMDAxNzggMDAwMDEgZg0KMDAwMDAwMDE3OSAwMDAwMSBmDQowMDAwMDAwMTgwIDAwMDAxIGYNCjAwMDAwMDAxODEgMDAwMDEgZg0KMDAwMDAwMDE4MiAwMDAwMSBmDQowMDAwMDAwMTgzIDAwMDAxIGYNCjAwMDAwMDAxODQgMDAwMDEgZg0KMDAwMDAwMDE4NSAwMDAwMSBmDQowMDAwMDAwMTg3IDAwMDAxIGYNCjAwMDAwMDgxMzggMDAwMDAgbg0KMDAwMDAwMDE4OCAwMDAwMSBmDQowMDAwMDAwMTg5IDAwMDAxIGYNCjAwMDAwMDAxOTAgMDAwMDEgZg0KMDAwMDAwMDE5MSAwMDAwMSBmDQowMDAwMDAwMTkyIDAwMDAxIGYNCjAwMDAwMDAxOTMgMDAwMDEgZg0KMDAwMDAwMDE5NCAwMDAwMSBmDQowMDAwMDAwMTk1IDAwMDAxIGYNCjAwMDAwMDAxOTYgMDAwMDEgZg0KMDAwMDAwMDE5NyAwMDAwMSBmDQowMDAwMDAwMTk4IDAwMDAxIGYNCjAwMDAwMDAxOTkgMDAwMDEgZg0KMDAwMDAwMDIwMCAwMDAwMSBmDQowMDAwMDAwMjAxIDAwMDAxIGYNCjAwMDAwMDAyMDIgMDAwMDEgZg0KMDAwMDAwMDIwMyAwMDAwMSBmDQowMDAwMDAwMjA0IDAwMDAxIGYNCjAwMDAwMDAyMDUgMDAwMDEgZg0KMDAwMDAwMDIwNiAwMDAwMSBmDQowMDAwMDAwMjA3IDAwMDAxIGYNCjAwMDAwMDAyMDggMDAwMDEgZg0KMDAwMDAwMDIwOSAwMDAwMSBmDQowMDAwMDAwMjEwIDAwMDAxIGYNCjAwMDAwMDAyMTEgMDAwMDEgZg0KMDAwMDAwMDIxMiAwMDAwMSBmDQowMDAwMDAwMjEzIDAwMDAxIGYNCjAwMDAwMDAyMTQgMDAwMDEgZg0KMDAwMDAwMDIxNSAwMDAwMSBmDQowMDAwMDAwMjE2IDAwMDAxIGYNCjAwMDAwMDAyMTcgMDAwMDEgZg0KMDAwMDAwMDIxOCAwMDAwMSBmDQowMDAwMDAwMjE5IDAwMDAxIGYNCjAwMDAwMDAyMjAgMDAwMDEgZg0KMDAwMDAwMDIyMSAwMDAwMSBmDQowMDAwMDAwMjIyIDAwMDAxIGYNCjAwMDAwMDAyMjMgMDAwMDEgZg0KMDAwMDAwMDIyNCAwMDAwMSBmDQowMDAwMDAwMjI1IDAwMDAxIGYNCjAwMDAwMDAyMjYgMDAwMDEgZg0KMDAwMDAwMDIyNyAwMDAwMSBmDQowMDAwMDAwMjI4IDAwMDAxIGYNCjAwMDAwMDAyMjkgMDAwMDEgZg0KMDAwMDAwMDIzMCAwMDAwMSBmDQowMDAwMDAwMjMxIDAwMDAxIGYNCjAwMDAwMDAyMzIgMDAwMDEgZg0KMDAwMDAwMDIzMyAwMDAwMSBmDQowMDAwMDAwMjM0IDAwMDAxIGYNCjAwMDAwMDAyMzUgMDAwMDEgZg0KMDAwMDAwMDIzNiAwMDAwMSBmDQowMDAwMDAwMjM3IDAwMDAxIGYNCjAwMDAwMDAyMzggMDAwMDEgZg0KMDAwMDAwMDIzOSAwMDAwMSBmDQowMDAwMDAwMjQwIDAwMDAxIGYNCjAwMDAwMDAyNDEgMDAwMDEgZg0KMDAwMDAwMDI0MiAwMDAwMSBmDQowMDAwMDAwMjQzIDAwMDAxIGYNCjAwMDAwMDAyNDQgMDAwMDEgZg0KMDAwMDAwMDI0NSAwMDAwMSBmDQowMDAwMDAwMjQ2IDAwMDAxIGYNCjAwMDAwMDAyNDcgMDAwMDEgZg0KMDAwMDAwMDI0OCAwMDAwMSBmDQowMDAwMDAwMjQ5IDAwMDAxIGYNCjAwMDAwMDAyNTAgMDAwMDEgZg0KMDAwMDAwMDI1MSAwMDAwMSBmDQowMDAwMDAwMjUyIDAwMDAxIGYNCjAwMDAwMDAyNTMgMDAwMDEgZg0KMDAwMDAwMDI1NSAwMDAwMSBmDQowMDAwMDA4MTYwIDAwMDAwIG4NCjAwMDAwMDAyNTYgMDAwMDEgZg0KMDAwMDAwMDI1NyAwMDAwMSBmDQowMDAwMDAwMjU4IDAwMDAxIGYNCjAwMDAwMDAyNTkgMDAwMDEgZg0KMDAwMDAwMDI2MCAwMDAwMSBmDQowMDAwMDAwMjYxIDAwMDAxIGYNCjAwMDAwMDAyNjIgMDAwMDEgZg0KMDAwMDAwMDI2MyAwMDAwMSBmDQowMDAwMDAwMjY0IDAwMDAxIGYNCjAwMDAwMDAyNjUgMDAwMDEgZg0KMDAwMDAwMDI2NiAwMDAwMSBmDQowMDAwMDAwMjY3IDAwMDAxIGYNCjAwMDAwMDAyNjggMDAwMDEgZg0KMDAwMDAwMDI2OSAwMDAwMSBmDQowMDAwMDAwMjcwIDAwMDAxIGYNCjAwMDAwMDAyNzEgMDAwMDEgZg0KMDAwMDAwMDI3MiAwMDAwMSBmDQowMDAwMDAwMjczIDAwMDAxIGYNCjAwMDAwMDAyNzQgMDAwMDEgZg0KMDAwMDAwMDI3NSAwMDAwMSBmDQowMDAwMDAwMjc2IDAwMDAxIGYNCjAwMDAwMDAyNzcgMDAwMDEgZg0KMDAwMDAwMDI3OCAwMDAwMSBmDQowMDAwMDAwMjc5IDAwMDAxIGYNCjAwMDAwMDAyODAgMDAwMDEgZg0KMDAwMDAwMDI4MSAwMDAwMSBmDQowMDAwMDAwMjgyIDAwMDAxIGYNCjAwMDAwMDAyODMgMDAwMDEgZg0KMDAwMDAwMDI4NCAwMDAwMSBmDQowMDAwMDAwMjg1IDAwMDAxIGYNCjAwMDAwMDAyODYgMDAwMDEgZg0KMDAwMDAwMDI4NyAwMDAwMSBmDQowMDAwMDAwMjg4IDAwMDAxIGYNCjAwMDAwMDAyODkgMDAwMDEgZg0KMDAwMDAwMDI5MCAwMDAwMSBmDQowMDAwMDAwMjkxIDAwMDAxIGYNCjAwMDAwMDAyOTIgMDAwMDEgZg0KMDAwMDAwMDI5MyAwMDAwMSBmDQowMDAwMDAwMjk0IDAwMDAxIGYNCjAwMDAwMDAyOTUgMDAwMDEgZg0KMDAwMDAwMDI5NiAwMDAwMSBmDQowMDAwMDAwMjk3IDAwMDAxIGYNCjAwMDAwMDAyOTggMDAwMDEgZg0KMDAwMDAwMDI5OSAwMDAwMSBmDQowMDAwMDAwMzAwIDAwMDAxIGYNCjAwMDAwMDAzMDEgMDAwMDEgZg0KMDAwMDAwMDMwMiAwMDAwMSBmDQowMDAwMDAwMzAzIDAwMDAxIGYNCjAwMDAwMDAzMDQgMDAwMDEgZg0KMDAwMDAwMDMwNSAwMDAwMSBmDQowMDAwMDAwMzA2IDAwMDAxIGYNCjAwMDAwMDAzMDcgMDAwMDEgZg0KMDAwMDAwMDMwOCAwMDAwMSBmDQowMDAwMDAwMzA5IDAwMDAxIGYNCjAwMDAwMDAzMTAgMDAwMDEgZg0KMDAwMDAwMDMxMiAwMDAwMSBmDQowMDAwMDA4MTgyIDAwMDAwIG4NCjAwMDAwMDAzMTMgMDAwMDEgZg0KMDAwMDAwMDMxNCAwMDAwMSBmDQowMDAwMDAwMzE1IDAwMDAxIGYNCjAwMDAwMDAzMTYgMDAwMDEgZg0KMDAwMDAwMDMxNyAwMDAwMSBmDQowMDAwMDAwMzE4IDAwMDAxIGYNCjAwMDAwMDAzMTkgMDAwMDEgZg0KMDAwMDAwMDMyMCAwMDAwMSBmDQowMDAwMDAwMzIxIDAwMDAxIGYNCjAwMDAwMDAzMjIgMDAwMDEgZg0KMDAwMDAwMDMyMyAwMDAwMSBmDQowMDAwMDAwMzI0IDAwMDAxIGYNCjAwMDAwMDAzMjUgMDAwMDEgZg0KMDAwMDAwMDMyNiAwMDAwMSBmDQowMDAwMDAwMzI3IDAwMDAxIGYNCjAwMDAwMDAzMjggMDAwMDEgZg0KMDAwMDAwMDMyOSAwMDAwMSBmDQowMDAwMDAwMzMwIDAwMDAxIGYNCjAwMDAwMDAzMzEgMDAwMDEgZg0KMDAwMDAwMDMzMiAwMDAwMSBmDQowMDAwMDAwMzMzIDAwMDAxIGYNCjAwMDAwMDAzMzQgMDAwMDEgZg0KMDAwMDAwMDMzNSAwMDAwMSBmDQowMDAwMDAwMzM2IDAwMDAxIGYNCjAwMDAwMDAzMzcgMDAwMDEgZg0KMDAwMDAwMDMzOCAwMDAwMSBmDQowMDAwMDAwMzM5IDAwMDAxIGYNCjAwMDAwMDAzNDAgMDAwMDEgZg0KMDAwMDAwMDM0MSAwMDAwMSBmDQowMDAwMDAwMzQyIDAwMDAxIGYNCjAwMDAwMDAzNDMgMDAwMDEgZg0KMDAwMDAwMDM0NCAwMDAwMSBmDQowMDAwMDAwMzQ1IDAwMDAxIGYNCjAwMDAwMDAzNDYgMDAwMDEgZg0KMDAwMDAwMDM0NyAwMDAwMSBmDQowMDAwMDAwMzQ4IDAwMDAxIGYNCjAwMDAwMDAzNDkgMDAwMDEgZg0KMDAwMDAwMDM1MCAwMDAwMSBmDQowMDAwMDAwMzUxIDAwMDAxIGYNCjAwMDAwMDAzNTIgMDAwMDEgZg0KMDAwMDAwMDM1MyAwMDAwMSBmDQowMDAwMDAwMzU0IDAwMDAxIGYNCjAwMDAwMDAzNTUgMDAwMDEgZg0KMDAwMDAwMDM1NiAwMDAwMSBmDQowMDAwMDAwMzU3IDAwMDAxIGYNCjAwMDAwMDAzNTggMDAwMDEgZg0KMDAwMDAwMDM1OSAwMDAwMSBmDQowMDAwMDAwMzYwIDAwMDAxIGYNCjAwMDAwMDAzNjEgMDAwMDEgZg0KMDAwMDAwMDM2MiAwMDAwMSBmDQowMDAwMDAwMzYzIDAwMDAxIGYNCjAwMDAwMDAzNjQgMDAwMDEgZg0KMDAwMDAwMDM2NSAwMDAwMSBmDQowMDAwMDAwMzY2IDAwMDAxIGYNCjAwMDAwMDAzNjcgMDAwMDEgZg0KMDAwMDAwMDM2OCAwMDAwMSBmDQowMDAwMDAwMzY5IDAwMDAxIGYNCjAwMDAwMDAzNzAgMDAwMDEgZg0KMDAwMDAwMDM3MSAwMDAwMSBmDQowMDAwMDAwMzcyIDAwMDAxIGYNCjAwMDAwMDAzNzMgMDAwMDEgZg0KMDAwMDAwMDM3NCAwMDAwMSBmDQowMDAwMDAwMzc1IDAwMDAxIGYNCjAwMDAwMDAzNzYgMDAwMDEgZg0KMDAwMDAwMDM3NyAwMDAwMSBmDQowMDAwMDAwMzc4IDAwMDAxIGYNCjAwMDAwMDAzNzkgMDAwMDEgZg0KMDAwMDAwMDM4MCAwMDAwMSBmDQowMDAwMDAwMzgxIDAwMDAxIGYNCjAwMDAwMDAzODIgMDAwMDEgZg0KMDAwMDAwMDM4MyAwMDAwMSBmDQowMDAwMDAwMzg0IDAwMDAxIGYNCjAwMDAwMDAzODUgMDAwMDEgZg0KMDAwMDAwMDM4NiAwMDAwMSBmDQowMDAwMDAwMzg3IDAwMDAxIGYNCjAwMDAwMDAzODggMDAwMDEgZg0KMDAwMDAwMDM4OSAwMDAwMSBmDQowMDAwMDAwMzkwIDAwMDAxIGYNCjAwMDAwMDAzOTEgMDAwMDEgZg0KMDAwMDAwMDM5MiAwMDAwMSBmDQowMDAwMDAwMzkzIDAwMDAxIGYNCjAwMDAwMDAzOTQgMDAwMDEgZg0KMDAwMDAwMDM5NSAwMDAwMSBmDQowMDAwMDAwMzk2IDAwMDAxIGYNCjAwMDAwMDAzOTcgMDAwMDEgZg0KMDAwMDAwMDM5OCAwMDAwMSBmDQowMDAwMDAwMzk5IDAwMDAxIGYNCjAwMDAwMDA0MDAgMDAwMDEgZg0KMDAwMDAwMDQwMSAwMDAwMSBmDQowMDAwMDAwNDAyIDAwMDAxIGYNCjAwMDAwMDA0MDMgMDAwMDEgZg0KMDAwMDAwMDQwNCAwMDAwMSBmDQowMDAwMDAwNDA1IDAwMDAxIGYNCjAwMDAwMDA0MDYgMDAwMDEgZg0KMDAwMDAwMDQwNyAwMDAwMSBmDQowMDAwMDAwNDA4IDAwMDAxIGYNCjAwMDAwMDA0MDkgMDAwMDEgZg0KMDAwMDAwMDQxMCAwMDAwMSBmDQowMDAwMDAwNDExIDAwMDAxIGYNCjAwMDAwMDA0MTIgMDAwMDEgZg0KMDAwMDAwMDQxMyAwMDAwMSBmDQowMDAwMDAwNDE0IDAwMDAxIGYNCjAwMDAwMDA0MTUgMDAwMDEgZg0KMDAwMDAwMDQxNiAwMDAwMSBmDQowMDAwMDAwNDE3IDAwMDAxIGYNCjAwMDAwMDA0MTggMDAwMDEgZg0KMDAwMDAwMDQxOSAwMDAwMSBmDQowMDAwMDAwNDIwIDAwMDAxIGYNCjAwMDAwMDA0MjEgMDAwMDEgZg0KMDAwMDAwMDQyMiAwMDAwMSBmDQowMDAwMDAwNDIzIDAwMDAxIGYNCjAwMDAwMDA0MjQgMDAwMDEgZg0KMDAwMDAwMDQyNSAwMDAwMSBmDQowMDAwMDAwNDI2IDAwMDAxIGYNCjAwMDAwMDA0MjcgMDAwMDEgZg0KMDAwMDAwMDQyOCAwMDAwMSBmDQowMDAwMDAwNDI5IDAwMDAxIGYNCjAwMDAwMDA0MzAgMDAwMDEgZg0KMDAwMDAwMDQzMSAwMDAwMSBmDQowMDAwMDAwNDMyIDAwMDAxIGYNCjAwMDAwMDA0MzMgMDAwMDEgZg0KMDAwMDAwMDQzNCAwMDAwMSBmDQowMDAwMDAwNDM1IDAwMDAxIGYNCjAwMDAwMDA0MzcgMDAwMDEgZg0KMDAwMDAwODIwNCAwMDAwMCBuDQowMDAwMDAwNDM4IDAwMDAxIGYNCjAwMDAwMDA0MzkgMDAwMDEgZg0KMDAwMDAwMDQ0MCAwMDAwMSBmDQowMDAwMDAwNDQxIDAwMDAxIGYNCjAwMDAwMDA0NDIgMDAwMDEgZg0KMDAwMDAwMDQ0MyAwMDAwMSBmDQowMDAwMDAwNDQ0IDAwMDAxIGYNCjAwMDAwMDA0NDUgMDAwMDEgZg0KMDAwMDAwMDQ0NiAwMDAwMSBmDQowMDAwMDAwNDQ3IDAwMDAxIGYNCjAwMDAwMDA0NDggMDAwMDEgZg0KMDAwMDAwMDQ0OSAwMDAwMSBmDQowMDAwMDAwNDUwIDAwMDAxIGYNCjAwMDAwMDA0NTEgMDAwMDEgZg0KMDAwMDAwMDQ1MiAwMDAwMSBmDQowMDAwMDAwNDUzIDAwMDAxIGYNCjAwMDAwMDA0NTQgMDAwMDEgZg0KMDAwMDAwMDQ1NSAwMDAwMSBmDQowMDAwMDAwNDU2IDAwMDAxIGYNCjAwMDAwMDA0NTcgMDAwMDEgZg0KMDAwMDAwMDQ1OCAwMDAwMSBmDQowMDAwMDAwNDU5IDAwMDAxIGYNCjAwMDAwMDA0NjAgMDAwMDEgZg0KMDAwMDAwMDQ2MSAwMDAwMSBmDQowMDAwMDAwNDYyIDAwMDAxIGYNCjAwMDAwMDA0NjMgMDAwMDEgZg0KMDAwMDAwMDQ2NCAwMDAwMSBmDQowMDAwMDAwNDY1IDAwMDAxIGYNCjAwMDAwMDA0NjYgMDAwMDEgZg0KMDAwMDAwMDQ2NyAwMDAwMSBmDQowMDAwMDAwNDY4IDAwMDAxIGYNCjAwMDAwMDA0NjkgMDAwMDEgZg0KMDAwMDAwMDQ3MCAwMDAwMSBmDQowMDAwMDAwNDcxIDAwMDAxIGYNCjAwMDAwMDA0NzIgMDAwMDEgZg0KMDAwMDAwMDQ3MyAwMDAwMSBmDQowMDAwMDAwNDc0IDAwMDAxIGYNCjAwMDAwMDA0NzUgMDAwMDEgZg0KMDAwMDAwMDQ3NiAwMDAwMSBmDQowMDAwMDAwNDc3IDAwMDAxIGYNCjAwMDAwMDA0NzggMDAwMDEgZg0KMDAwMDAwMDQ3OSAwMDAwMSBmDQowMDAwMDAwNDgwIDAwMDAxIGYNCjAwMDAwMDA0ODEgMDAwMDEgZg0KMDAwMDAwMDQ4MiAwMDAwMSBmDQowMDAwMDAwNDgzIDAwMDAxIGYNCjAwMDAwMDA0ODQgMDAwMDEgZg0KMDAwMDAwMDQ4NSAwMDAwMSBmDQowMDAwMDAwNDg2IDAwMDAxIGYNCjAwMDAwMDA0ODcgMDAwMDEgZg0KMDAwMDAwMDQ4OCAwMDAwMSBmDQowMDAwMDAwNDg5IDAwMDAxIGYNCjAwMDAwMDA0OTAgMDAwMDEgZg0KMDAwMDAwMDQ5MSAwMDAwMSBmDQowMDAwMDAwNDkyIDAwMDAxIGYNCjAwMDAwMDA0OTMgMDAwMDEgZg0KMDAwMDAwMDQ5NCAwMDAwMSBmDQowMDAwMDAwNDk1IDAwMDAxIGYNCjAwMDAwMDA0OTYgMDAwMDEgZg0KMDAwMDAwMDQ5NyAwMDAwMSBmDQowMDAwMDAwNDk4IDAwMDAxIGYNCjAwMDAwMDA0OTkgMDAwMDEgZg0KMDAwMDAwMDUwMCAwMDAwMSBmDQowMDAwMDAwNTAxIDAwMDAxIGYNCjAwMDAwMDA1MDIgMDAwMDEgZg0KMDAwMDAwMDUwMyAwMDAwMSBmDQowMDAwMDAwNTA0IDAwMDAxIGYNCjAwMDAwMDA1MDUgMDAwMDEgZg0KMDAwMDAwMDUwNiAwMDAwMSBmDQowMDAwMDAwNTA3IDAwMDAxIGYNCjAwMDAwMDA1MDggMDAwMDEgZg0KMDAwMDAwMDUwOSAwMDAwMSBmDQowMDAwMDAwNTEwIDAwMDAxIGYNCjAwMDAwMDA1MTEgMDAwMDEgZg0KMDAwMDAwMDUxMiAwMDAwMSBmDQowMDAwMDAwNTEzIDAwMDAxIGYNCjAwMDAwMDA1MTQgMDAwMDEgZg0KMDAwMDAwMDUxNSAwMDAwMSBmDQowMDAwMDAwNTE2IDAwMDAxIGYNCjAwMDAwMDA1MTcgMDAwMDEgZg0KMDAwMDAwMDUxOCAwMDAwMSBmDQowMDAwMDAwNTE5IDAwMDAxIGYNCjAwMDAwMDA1MjAgMDAwMDEgZg0KMDAwMDAwMDUyMSAwMDAwMSBmDQowMDAwMDAwNTIyIDAwMDAxIGYNCjAwMDAwMDA1MjMgMDAwMDEgZg0KMDAwMDAwMDUyNCAwMDAwMSBmDQowMDAwMDAwNTI1IDAwMDAxIGYNCjAwMDAwMDA1MjYgMDAwMDEgZg0KMDAwMDAwMDUyNyAwMDAwMSBmDQowMDAwMDAwNTI4IDAwMDAxIGYNCjAwMDAwMDA1MjkgMDAwMDEgZg0KMDAwMDAwMDUzMCAwMDAwMSBmDQowMDAwMDAwNTMxIDAwMDAxIGYNCjAwMDAwMDA1MzIgMDAwMDEgZg0KMDAwMDAwMDUzMyAwMDAwMSBmDQowMDAwMDAwNTM0IDAwMDAxIGYNCjAwMDAwMDA1MzUgMDAwMDEgZg0KMDAwMDAwMDUzNiAwMDAwMSBmDQowMDAwMDAwNTM3IDAwMDAxIGYNCjAwMDAwMDA1MzggMDAwMDEgZg0KMDAwMDAwMDUzOSAwMDAwMSBmDQowMDAwMDAwNTQwIDAwMDAxIGYNCjAwMDAwMDA1NDEgMDAwMDEgZg0KMDAwMDAwMDU0MiAwMDAwMSBmDQowMDAwMDAwNTQzIDAwMDAxIGYNCjAwMDAwMDA1NDQgMDAwMDEgZg0KMDAwMDAwMDU0NSAwMDAwMSBmDQowMDAwMDAwNTQ2IDAwMDAxIGYNCjAwMDAwMDA1NDcgMDAwMDEgZg0KMDAwMDAwMDU0OCAwMDAwMSBmDQowMDAwMDAwNTQ5IDAwMDAxIGYNCjAwMDAwMDA1NTAgMDAwMDEgZg0KMDAwMDAwMDU1MSAwMDAwMSBmDQowMDAwMDAwNTUyIDAwMDAxIGYNCjAwMDAwMDA1NTMgMDAwMDEgZg0KMDAwMDAwMDU1NCAwMDAwMSBmDQowMDAwMDAwNTU1IDAwMDAxIGYNCjAwMDAwMDA1NTYgMDAwMDEgZg0KMDAwMDAwMDU1NyAwMDAwMSBmDQowMDAwMDAwNTU4IDAwMDAxIGYNCjAwMDAwMDA1NTkgMDAwMDEgZg0KMDAwMDAwMDU2MCAwMDAwMSBmDQowMDAwMDAwNTYxIDAwMDAxIGYNCjAwMDAwMDA1NjIgMDAwMDEgZg0KMDAwMDAwMDU2MyAwMDAwMSBmDQowMDAwMDAwNTY0IDAwMDAxIGYNCjAwMDAwMDA1NjUgMDAwMDEgZg0KMDAwMDAwMDU2NiAwMDAwMSBmDQowMDAwMDAwNTY3IDAwMDAxIGYNCjAwMDAwMDA1NjggMDAwMDEgZg0KMDAwMDAwMDU2OSAwMDAwMSBmDQowMDAwMDAwNTcwIDAwMDAxIGYNCjAwMDAwMDA1NzEgMDAwMDEgZg0KMDAwMDAwMDU3MiAwMDAwMSBmDQowMDAwMDAwNTczIDAwMDAxIGYNCjAwMDAwMDA1NzQgMDAwMDEgZg0KMDAwMDAwMDU3NSAwMDAwMSBmDQowMDAwMDAwNTc2IDAwMDAxIGYNCjAwMDAwMDA1NzcgMDAwMDEgZg0KMDAwMDAwMDU3OCAwMDAwMSBmDQowMDAwMDAwNTc5IDAwMDAxIGYNCjAwMDAwMDA1ODAgMDAwMDEgZg0KMDAwMDAwMDU4MSAwMDAwMSBmDQowMDAwMDAwNTgyIDAwMDAxIGYNCjAwMDAwMDA1ODMgMDAwMDEgZg0KMDAwMDAwMDU4NCAwMDAwMSBmDQowMDAwMDAwNTg1IDAwMDAxIGYNCjAwMDAwMDA1ODYgMDAwMDEgZg0KMDAwMDAwMDU4NyAwMDAwMSBmDQowMDAwMDAwNTg4IDAwMDAxIGYNCjAwMDAwMDA1ODkgMDAwMDEgZg0KMDAwMDAwMDU5MCAwMDAwMSBmDQowMDAwMDAwNTkxIDAwMDAxIGYNCjAwMDAwMDA1OTIgMDAwMDEgZg0KMDAwMDAwMDU5MyAwMDAwMSBmDQowMDAwMDAwNTk0IDAwMDAxIGYNCjAwMDAwMDA1OTUgMDAwMDEgZg0KMDAwMDAwMDU5NiAwMDAwMSBmDQowMDAwMDAwNTk3IDAwMDAxIGYNCjAwMDAwMDA1OTggMDAwMDEgZg0KMDAwMDAwMDU5OSAwMDAwMSBmDQowMDAwMDAwNjAwIDAwMDAxIGYNCjAwMDAwMDA2MDEgMDAwMDEgZg0KMDAwMDAwMDYwMiAwMDAwMSBmDQowMDAwMDAwNjAzIDAwMDAxIGYNCjAwMDAwMDA2MDQgMDAwMDEgZg0KMDAwMDAwMDYwNSAwMDAwMSBmDQowMDAwMDAwNjA2IDAwMDAxIGYNCjAwMDAwMDA2MDcgMDAwMDEgZg0KMDAwMDAwMDYwOCAwMDAwMSBmDQowMDAwMDAwNjA5IDAwMDAxIGYNCjAwMDAwMDA2MTAgMDAwMDEgZg0KMDAwMDAwMDYxMSAwMDAwMSBmDQowMDAwMDAwNjEyIDAwMDAxIGYNCjAwMDAwMDA2MTMgMDAwMDEgZg0KMDAwMDAwMDYxNCAwMDAwMSBmDQowMDAwMDAwNjE1IDAwMDAxIGYNCjAwMDAwMDA2MTYgMDAwMDEgZg0KMDAwMDAwMDYxNyAwMDAwMSBmDQowMDAwMDAwNjE4IDAwMDAxIGYNCjAwMDAwMDA2MTkgMDAwMDEgZg0KMDAwMDAwMDYyMCAwMDAwMSBmDQowMDAwMDAwNjIxIDAwMDAxIGYNCjAwMDAwMDA2MjIgMDAwMDEgZg0KMDAwMDAwMDYyMyAwMDAwMSBmDQowMDAwMDAwNjI0IDAwMDAxIGYNCjAwMDAwMDA2MjUgMDAwMDEgZg0KMDAwMDAwMDYyNiAwMDAwMSBmDQowMDAwMDAwNjI3IDAwMDAxIGYNCjAwMDAwMDA2MjggMDAwMDEgZg0KMDAwMDAwMDYyOSAwMDAwMSBmDQowMDAwMDAwNjMwIDAwMDAxIGYNCjAwMDAwMDA2MzEgMDAwMDEgZg0KMDAwMDAwMDYzMiAwMDAwMSBmDQowMDAwMDAwNjMzIDAwMDAxIGYNCjAwMDAwMDA2MzQgMDAwMDEgZg0KMDAwMDAwMDYzNSAwMDAwMSBmDQowMDAwMDAwNjM2IDAwMDAxIGYNCjAwMDAwMDA2MzcgMDAwMDEgZg0KMDAwMDAwMDYzOCAwMDAwMSBmDQowMDAwMDAwNjM5IDAwMDAxIGYNCjAwMDAwMDA2NDAgMDAwMDEgZg0KMDAwMDAwMDY0MSAwMDAwMSBmDQowMDAwMDAwNjQyIDAwMDAxIGYNCjAwMDAwMDA2NDMgMDAwMDEgZg0KMDAwMDAwMDY0NCAwMDAwMSBmDQowMDAwMDAwNjQ1IDAwMDAxIGYNCjAwMDAwMDA2NDYgMDAwMDEgZg0KMDAwMDAwMDY0NyAwMDAwMSBmDQowMDAwMDAwNjQ4IDAwMDAxIGYNCjAwMDAwMDA2NDkgMDAwMDEgZg0KMDAwMDAwMDY1MCAwMDAwMSBmDQowMDAwMDAwNjUxIDAwMDAxIGYNCjAwMDAwMDA2NTIgMDAwMDEgZg0KMDAwMDAwMDY1MyAwMDAwMSBmDQowMDAwMDAwNjU0IDAwMDAxIGYNCjAwMDAwMDA2NTUgMDAwMDEgZg0KMDAwMDAwMDY1NiAwMDAwMSBmDQowMDAwMDAwNjU3IDAwMDAxIGYNCjAwMDAwMDA2NTggMDAwMDEgZg0KMDAwMDAwMDY1OSAwMDAwMSBmDQowMDAwMDAwNjYwIDAwMDAxIGYNCjAwMDAwMDA2NjEgMDAwMDEgZg0KMDAwMDAwMDY2MiAwMDAwMSBmDQowMDAwMDAwNjYzIDAwMDAxIGYNCjAwMDAwMDA2NjQgMDAwMDEgZg0KMDAwMDAwMDY2NSAwMDAwMSBmDQowMDAwMDAwNjY2IDAwMDAxIGYNCjAwMDAwMDA2NjcgMDAwMDEgZg0KMDAwMDAwMDY2OCAwMDAwMSBmDQowMDAwMDAwNjY5IDAwMDAxIGYNCjAwMDAwMDA2NzAgMDAwMDEgZg0KMDAwMDAwMDY3MSAwMDAwMSBmDQowMDAwMDAwNjcyIDAwMDAxIGYNCjAwMDAwMDA2NzMgMDAwMDEgZg0KMDAwMDAwMDY3NCAwMDAwMSBmDQowMDAwMDAwNjc1IDAwMDAxIGYNCjAwMDAwMDA2NzYgMDAwMDEgZg0KMDAwMDAwMDY3NyAwMDAwMSBmDQowMDAwMDAwNjc4IDAwMDAxIGYNCjAwMDAwMDA2NzkgMDAwMDEgZg0KMDAwMDAwMDY4MCAwMDAwMSBmDQowMDAwMDAwNjgxIDAwMDAxIGYNCjAwMDAwMDA2ODIgMDAwMDEgZg0KMDAwMDAwMDY4MyAwMDAwMSBmDQowMDAwMDAwNjg0IDAwMDAxIGYNCjAwMDAwMDA2ODUgMDAwMDEgZg0KMDAwMDAwMDY4NiAwMDAwMSBmDQowMDAwMDAwNjg3IDAwMDAxIGYNCjAwMDAwMDA2ODggMDAwMDEgZg0KMDAwMDAwMDY4OSAwMDAwMSBmDQowMDAwMDAwNjkwIDAwMDAxIGYNCjAwMDAwMDA2OTEgMDAwMDEgZg0KMDAwMDAwMDY5MiAwMDAwMSBmDQowMDAwMDAwNjkzIDAwMDAxIGYNCjAwMDAwMDA2OTQgMDAwMDEgZg0KMDAwMDAwMDY5NSAwMDAwMSBmDQowMDAwMDAwNjk2IDAwMDAxIGYNCjAwMDAwMDA2OTcgMDAwMDEgZg0KMDAwMDAwMDY5OCAwMDAwMSBmDQowMDAwMDAwNjk5IDAwMDAxIGYNCjAwMDAwMDA3MDAgMDAwMDEgZg0KMDAwMDAwMDcwMSAwMDAwMSBmDQowMDAwMDAwNzAyIDAwMDAxIGYNCjAwMDAwMDA3MDMgMDAwMDEgZg0KMDAwMDAwMDcwNSAwMDAwMSBmDQowMDAwMDA4MjI2IDAwMDAwIG4NCjAwMDAwMDA3MDYgMDAwMDEgZg0KMDAwMDAwMDcwNyAwMDAwMSBmDQowMDAwMDAwNzA4IDAwMDAxIGYNCjAwMDAwMDA3MDkgMDAwMDEgZg0KMDAwMDAwMDcxMCAwMDAwMSBmDQowMDAwMDAwNzExIDAwMDAxIGYNCjAwMDAwMDA3MTIgMDAwMDEgZg0KMDAwMDAwMDcxMyAwMDAwMSBmDQowMDAwMDAwNzE0IDAwMDAxIGYNCjAwMDAwMDA3MTUgMDAwMDEgZg0KMDAwMDAwMDcxNiAwMDAwMSBmDQowMDAwMDAwNzE3IDAwMDAxIGYNCjAwMDAwMDA3MTggMDAwMDEgZg0KMDAwMDAwMDcxOSAwMDAwMSBmDQowMDAwMDAwNzIwIDAwMDAxIGYNCjAwMDAwMDA3MjEgMDAwMDEgZg0KMDAwMDAwMDcyMiAwMDAwMSBmDQowMDAwMDAwNzIzIDAwMDAxIGYNCjAwMDAwMDA3MjQgMDAwMDEgZg0KMDAwMDAwMDcyNSAwMDAwMSBmDQowMDAwMDAwNzI2IDAwMDAxIGYNCjAwMDAwMDA3MjcgMDAwMDEgZg0KMDAwMDAwMDcyOCAwMDAwMSBmDQowMDAwMDAwNzI5IDAwMDAxIGYNCjAwMDAwMDA3MzAgMDAwMDEgZg0KMDAwMDAwMDczMSAwMDAwMSBmDQowMDAwMDAwNzMyIDAwMDAxIGYNCjAwMDAwMDA3MzMgMDAwMDEgZg0KMDAwMDAwMDczNCAwMDAwMSBmDQowMDAwMDAwNzM1IDAwMDAxIGYNCjAwMDAwMDA3MzYgMDAwMDEgZg0KMDAwMDAwMDczNyAwMDAwMSBmDQowMDAwMDAwNzM4IDAwMDAxIGYNCjAwMDAwMDA3MzkgMDAwMDEgZg0KMDAwMDAwMDc0MCAwMDAwMSBmDQowMDAwMDAwNzQxIDAwMDAxIGYNCjAwMDAwMDA3NDIgMDAwMDEgZg0KMDAwMDAwMDc0MyAwMDAwMSBmDQowMDAwMDAwNzQ0IDAwMDAxIGYNCjAwMDAwMDA3NDUgMDAwMDEgZg0KMDAwMDAwMDc0NiAwMDAwMSBmDQowMDAwMDAwNzQ3IDAwMDAxIGYNCjAwMDAwMDA3NDggMDAwMDEgZg0KMDAwMDAwMDc0OSAwMDAwMSBmDQowMDAwMDAwNzUwIDAwMDAxIGYNCjAwMDAwMDA3NTEgMDAwMDEgZg0KMDAwMDAwMDc1MiAwMDAwMSBmDQowMDAwMDAwNzUzIDAwMDAxIGYNCjAwMDAwMDA3NTQgMDAwMDEgZg0KMDAwMDAwMDc1NSAwMDAwMSBmDQowMDAwMDAwNzU2IDAwMDAxIGYNCjAwMDAwMDA3NTcgMDAwMDEgZg0KMDAwMDAwMDc1OCAwMDAwMSBmDQowMDAwMDAwNzU5IDAwMDAxIGYNCjAwMDAwMDA3NjAgMDAwMDEgZg0KMDAwMDAwMDc2MSAwMDAwMSBmDQowMDAwMDAwNzYyIDAwMDAxIGYNCjAwMDAwMDA3NjMgMDAwMDEgZg0KMDAwMDAwMDc2NCAwMDAwMSBmDQowMDAwMDAwNzY1IDAwMDAxIGYNCjAwMDAwMDA3NjYgMDAwMDEgZg0KMDAwMDAwMDc2NyAwMDAwMSBmDQowMDAwMDAwNzY4IDAwMDAxIGYNCjAwMDAwMDA3NjkgMDAwMDEgZg0KMDAwMDAwMDc3MCAwMDAwMSBmDQowMDAwMDAwNzcxIDAwMDAxIGYNCjAwMDAwMDA3NzIgMDAwMDEgZg0KMDAwMDAwMDc3MyAwMDAwMSBmDQowMDAwMDAwNzc0IDAwMDAxIGYNCjAwMDAwMDA3NzUgMDAwMDEgZg0KMDAwMDAwMDc3NiAwMDAwMSBmDQowMDAwMDAwNzc3IDAwMDAxIGYNCjAwMDAwMDA3NzggMDAwMDEgZg0KMDAwMDAwMDc3OSAwMDAwMSBmDQowMDAwMDAwNzgwIDAwMDAxIGYNCjAwMDAwMDA3ODEgMDAwMDEgZg0KMDAwMDAwMDc4MiAwMDAwMSBmDQowMDAwMDAwNzgzIDAwMDAxIGYNCjAwMDAwMDA3ODQgMDAwMDEgZg0KMDAwMDAwMDc4NSAwMDAwMSBmDQowMDAwMDAwNzg2IDAwMDAxIGYNCjAwMDAwMDA3ODcgMDAwMDEgZg0KMDAwMDAwMDc4OCAwMDAwMSBmDQowMDAwMDAwNzg5IDAwMDAxIGYNCjAwMDAwMDA3OTAgMDAwMDEgZg0KMDAwMDAwMDc5MSAwMDAwMSBmDQowMDAwMDAwNzkyIDAwMDAxIGYNCjAwMDAwMDA3OTMgMDAwMDEgZg0KMDAwMDAwMDc5NCAwMDAwMSBmDQowMDAwMDAwNzk1IDAwMDAxIGYNCjAwMDAwMDA3OTYgMDAwMDEgZg0KMDAwMDAwMDc5NyAwMDAwMSBmDQowMDAwMDAwNzk4IDAwMDAxIGYNCjAwMDAwMDA3OTkgMDAwMDEgZg0KMDAwMDAwMDgwMCAwMDAwMSBmDQowMDAwMDAwODAxIDAwMDAxIGYNCjAwMDAwMDA4MDIgMDAwMDEgZg0KMDAwMDAwMDgwMyAwMDAwMSBmDQowMDAwMDAwODA0IDAwMDAxIGYNCjAwMDAwMDA4MDUgMDAwMDEgZg0KMDAwMDAwMDgwNiAwMDAwMSBmDQowMDAwMDAwODA3IDAwMDAxIGYNCjAwMDAwMDA4MDggMDAwMDEgZg0KMDAwMDAwMDgwOSAwMDAwMSBmDQowMDAwMDAwODEwIDAwMDAxIGYNCjAwMDAwMDA4MTEgMDAwMDEgZg0KMDAwMDAwMDgxMiAwMDAwMSBmDQowMDAwMDAwODEzIDAwMDAxIGYNCjAwMDAwMDA4MTQgMDAwMDEgZg0KMDAwMDAwMDgxNSAwMDAwMSBmDQowMDAwMDAwODE2IDAwMDAxIGYNCjAwMDAwMDA4MTcgMDAwMDEgZg0KMDAwMDAwMDgxOCAwMDAwMSBmDQowMDAwMDAwODE5IDAwMDAxIGYNCjAwMDAwMDA4MjAgMDAwMDEgZg0KMDAwMDAwMDgyMSAwMDAwMSBmDQowMDAwMDAwODIyIDAwMDAxIGYNCjAwMDAwMDA4MjMgMDAwMDEgZg0KMDAwMDAwMDgyNCAwMDAwMSBmDQowMDAwMDAwODI1IDAwMDAxIGYNCjAwMDAwMDA4MjYgMDAwMDEgZg0KMDAwMDAwMDgyNyAwMDAwMSBmDQowMDAwMDAwODI4IDAwMDAxIGYNCjAwMDAwMDA4MjkgMDAwMDEgZg0KMDAwMDAwMDgzMCAwMDAwMSBmDQowMDAwMDAwODMxIDAwMDAxIGYNCjAwMDAwMDA4MzIgMDAwMDEgZg0KMDAwMDAwMDgzMyAwMDAwMSBmDQowMDAwMDAwODM0IDAwMDAxIGYNCjAwMDAwMDA4MzUgMDAwMDEgZg0KMDAwMDAwMDgzNiAwMDAwMSBmDQowMDAwMDAwODM3IDAwMDAxIGYNCjAwMDAwMDA4MzggMDAwMDEgZg0KMDAwMDAwMDgzOSAwMDAwMSBmDQowMDAwMDAwODQwIDAwMDAxIGYNCjAwMDAwMDA4NDEgMDAwMDEgZg0KMDAwMDAwMDg0MiAwMDAwMSBmDQowMDAwMDAwODQzIDAwMDAxIGYNCjAwMDAwMDA4NDQgMDAwMDEgZg0KMDAwMDAwMDg0NSAwMDAwMSBmDQowMDAwMDAwODQ2IDAwMDAxIGYNCjAwMDAwMDA4NDcgMDAwMDEgZg0KMDAwMDAwMDg0OCAwMDAwMSBmDQowMDAwMDAwODQ5IDAwMDAxIGYNCjAwMDAwMDA4NTAgMDAwMDEgZg0KMDAwMDAwMDg1MSAwMDAwMSBmDQowMDAwMDAwODUyIDAwMDAxIGYNCjAwMDAwMDA4NTMgMDAwMDEgZg0KMDAwMDAwMDg1NCAwMDAwMSBmDQowMDAwMDAwODU1IDAwMDAxIGYNCjAwMDAwMDA4NTYgMDAwMDEgZg0KMDAwMDAwMDg1NyAwMDAwMSBmDQowMDAwMDAwODU4IDAwMDAxIGYNCjAwMDAwMDA4NTkgMDAwMDEgZg0KMDAwMDAwMDg2MCAwMDAwMSBmDQowMDAwMDAwODYxIDAwMDAxIGYNCjAwMDAwMDA4NjIgMDAwMDEgZg0KMDAwMDAwMDg2MyAwMDAwMSBmDQowMDAwMDAwODY0IDAwMDAxIGYNCjAwMDAwMDA4NjUgMDAwMDEgZg0KMDAwMDAwMDg2NiAwMDAwMSBmDQowMDAwMDAwODY3IDAwMDAxIGYNCjAwMDAwMDA4NjggMDAwMDEgZg0KMDAwMDAwMDg2OSAwMDAwMSBmDQowMDAwMDAwODcwIDAwMDAxIGYNCjAwMDAwMDA4NzEgMDAwMDEgZg0KMDAwMDAwMDg3MiAwMDAwMSBmDQowMDAwMDAwODczIDAwMDAxIGYNCjAwMDAwMDA4NzQgMDAwMDEgZg0KMDAwMDAwMDg3NSAwMDAwMSBmDQowMDAwMDAwODc2IDAwMDAxIGYNCjAwMDAwMDA4NzcgMDAwMDEgZg0KMDAwMDAwMDg3OCAwMDAwMSBmDQowMDAwMDAwODc5IDAwMDAxIGYNCjAwMDAwMDA4ODAgMDAwMDEgZg0KMDAwMDAwMDg4MSAwMDAwMSBmDQowMDAwMDAwODgyIDAwMDAxIGYNCjAwMDAwMDA4ODMgMDAwMDEgZg0KMDAwMDAwMDg4NCAwMDAwMSBmDQowMDAwMDAwODg1IDAwMDAxIGYNCjAwMDAwMDA4ODYgMDAwMDEgZg0KMDAwMDAwMDg4NyAwMDAwMSBmDQowMDAwMDAwODg4IDAwMDAxIGYNCjAwMDAwMDA4ODkgMDAwMDEgZg0KMDAwMDAwMDg5MCAwMDAwMSBmDQowMDAwMDAwODkxIDAwMDAxIGYNCjAwMDAwMDA4OTIgMDAwMDEgZg0KMDAwMDAwMDg5MyAwMDAwMSBmDQowMDAwMDAwODk0IDAwMDAxIGYNCjAwMDAwMDA4OTUgMDAwMDEgZg0KMDAwMDAwMDg5NiAwMDAwMSBmDQowMDAwMDAwODk3IDAwMDAxIGYNCjAwMDAwMDA4OTggMDAwMDEgZg0KMDAwMDAwMDg5OSAwMDAwMSBmDQowMDAwMDAwOTAwIDAwMDAxIGYNCjAwMDAwMDA5MDEgMDAwMDEgZg0KMDAwMDAwMDkwMiAwMDAwMSBmDQowMDAwMDAwOTAzIDAwMDAxIGYNCjAwMDAwMDA5MDQgMDAwMDEgZg0KMDAwMDAwMDkwNSAwMDAwMSBmDQowMDAwMDAwOTA2IDAwMDAxIGYNCjAwMDAwMDA5MDcgMDAwMDEgZg0KMDAwMDAwMDkwOCAwMDAwMSBmDQowMDAwMDAwOTA5IDAwMDAxIGYNCjAwMDAwMDA5MTAgMDAwMDEgZg0KMDAwMDAwMDkxMSAwMDAwMSBmDQowMDAwMDAwOTEyIDAwMDAxIGYNCjAwMDAwMDA5MTMgMDAwMDEgZg0KMDAwMDAwMDkxNCAwMDAwMSBmDQowMDAwMDAwOTE1IDAwMDAxIGYNCjAwMDAwMDA5MTYgMDAwMDEgZg0KMDAwMDAwMDkxNyAwMDAwMSBmDQowMDAwMDAwOTE4IDAwMDAxIGYNCjAwMDAwMDA5MTkgMDAwMDEgZg0KMDAwMDAwMDkyMCAwMDAwMSBmDQowMDAwMDAwOTIxIDAwMDAxIGYNCjAwMDAwMDA5MjIgMDAwMDEgZg0KMDAwMDAwMDkyMyAwMDAwMSBmDQowMDAwMDAwOTI0IDAwMDAxIGYNCjAwMDAwMDA5MjUgMDAwMDEgZg0KMDAwMDAwMDkyNiAwMDAwMSBmDQowMDAwMDAwOTI3IDAwMDAxIGYNCjAwMDAwMDA5MjggMDAwMDEgZg0KMDAwMDAwMDkyOSAwMDAwMSBmDQowMDAwMDAwOTMwIDAwMDAxIGYNCjAwMDAwMDA5MzEgMDAwMDEgZg0KMDAwMDAwMDkzMiAwMDAwMSBmDQowMDAwMDAwOTMzIDAwMDAxIGYNCjAwMDAwMDA5MzQgMDAwMDEgZg0KMDAwMDAwMDkzNSAwMDAwMSBmDQowMDAwMDAwOTM2IDAwMDAxIGYNCjAwMDAwMDA5MzcgMDAwMDEgZg0KMDAwMDAwMDkzOCAwMDAwMSBmDQowMDAwMDAwOTM5IDAwMDAxIGYNCjAwMDAwMDA5NDAgMDAwMDEgZg0KMDAwMDAwMDk0MSAwMDAwMSBmDQowMDAwMDAwOTQyIDAwMDAxIGYNCjAwMDAwMDA5NDMgMDAwMDEgZg0KMDAwMDAwMDk0NCAwMDAwMSBmDQowMDAwMDAwOTQ1IDAwMDAxIGYNCjAwMDAwMDA5NDYgMDAwMDEgZg0KMDAwMDAwMDk0NyAwMDAwMSBmDQowMDAwMDAwOTQ4IDAwMDAxIGYNCjAwMDAwMDA5NDkgMDAwMDEgZg0KMDAwMDAwMDk1MCAwMDAwMSBmDQowMDAwMDAwOTUxIDAwMDAxIGYNCjAwMDAwMDA5NTIgMDAwMDEgZg0KMDAwMDAwMDk1MyAwMDAwMSBmDQowMDAwMDAwOTU0IDAwMDAxIGYNCjAwMDAwMDA5NTUgMDAwMDEgZg0KMDAwMDAwMDk1NiAwMDAwMSBmDQowMDAwMDAwOTU3IDAwMDAxIGYNCjAwMDAwMDA5NTggMDAwMDEgZg0KMDAwMDAwMDk1OSAwMDAwMSBmDQowMDAwMDAwOTYwIDAwMDAxIGYNCjAwMDAwMDA5NjEgMDAwMDEgZg0KMDAwMDAwMDk2MiAwMDAwMSBmDQowMDAwMDAwOTYzIDAwMDAxIGYNCjAwMDAwMDA5NjQgMDAwMDEgZg0KMDAwMDAwMDk2NSAwMDAwMSBmDQowMDAwMDAwOTY2IDAwMDAxIGYNCjAwMDAwMDA5NjcgMDAwMDEgZg0KMDAwMDAwMDk2OCAwMDAwMSBmDQowMDAwMDAwOTY5IDAwMDAxIGYNCjAwMDAwMDA5NzAgMDAwMDEgZg0KMDAwMDAwMDk3MSAwMDAwMSBmDQowMDAwMDAwOTcyIDAwMDAxIGYNCjAwMDAwMDA5NzMgMDAwMDEgZg0KMDAwMDAwMDk3NCAwMDAwMSBmDQowMDAwMDAwOTc1IDAwMDAxIGYNCjAwMDAwMDA5NzYgMDAwMDEgZg0KMDAwMDAwMDk3NyAwMDAwMSBmDQowMDAwMDAwOTc4IDAwMDAxIGYNCjAwMDAwMDA5NzkgMDAwMDEgZg0KMDAwMDAwMDk4MCAwMDAwMSBmDQowMDAwMDAwOTgxIDAwMDAxIGYNCjAwMDAwMDA5ODIgMDAwMDEgZg0KMDAwMDAwMDk4MyAwMDAwMSBmDQowMDAwMDAwOTg0IDAwMDAxIGYNCjAwMDAwMDA5ODUgMDAwMDEgZg0KMDAwMDAwMDk4NiAwMDAwMSBmDQowMDAwMDAwOTg3IDAwMDAxIGYNCjAwMDAwMDA5ODggMDAwMDEgZg0KMDAwMDAwMDk4OSAwMDAwMSBmDQowMDAwMDAwOTkwIDAwMDAxIGYNCjAwMDAwMDA5OTEgMDAwMDEgZg0KMDAwMDAwMDk5MiAwMDAwMSBmDQowMDAwMDAwOTkzIDAwMDAxIGYNCjAwMDAwMDA5OTQgMDAwMDEgZg0KMDAwMDAwMDk5NSAwMDAwMSBmDQowMDAwMDAwOTk2IDAwMDAxIGYNCjAwMDAwMDA5OTcgMDAwMDEgZg0KMDAwMDAwMDk5OCAwMDAwMSBmDQowMDAwMDAwOTk5IDAwMDAxIGYNCjAwMDAwMDEwMDAgMDAwMDEgZg0KMDAwMDAwMTAwMSAwMDAwMSBmDQowMDAwMDAxMDAyIDAwMDAxIGYNCjAwMDAwMDEwMDMgMDAwMDEgZg0KMDAwMDAwMTAwNCAwMDAwMSBmDQowMDAwMDAxMDA1IDAwMDAxIGYNCjAwMDAwMDEwMDYgMDAwMDEgZg0KMDAwMDAwMTAwNyAwMDAwMSBmDQowMDAwMDAxMDA4IDAwMDAxIGYNCjAwMDAwMDEwMDkgMDAwMDEgZg0KMDAwMDAwMTAxMCAwMDAwMSBmDQowMDAwMDAxMDExIDAwMDAxIGYNCjAwMDAwMDEwMTIgMDAwMDEgZg0KMDAwMDAwMTAxMyAwMDAwMSBmDQowMDAwMDAxMDE0IDAwMDAxIGYNCjAwMDAwMDEwMTUgMDAwMDEgZg0KMDAwMDAwMTAxNiAwMDAwMSBmDQowMDAwMDAxMDE3IDAwMDAxIGYNCjAwMDAwMDEwMTggMDAwMDEgZg0KMDAwMDAwMTAxOSAwMDAwMSBmDQowMDAwMDAxMDIwIDAwMDAxIGYNCjAwMDAwMDEwMjEgMDAwMDEgZg0KMDAwMDAwMTAyMiAwMDAwMSBmDQowMDAwMDAxMDIzIDAwMDAxIGYNCjAwMDAwMDEwMjQgMDAwMDEgZg0KMDAwMDAwMTAyNSAwMDAwMSBmDQowMDAwMDAxMDI2IDAwMDAxIGYNCjAwMDAwMDEwMjcgMDAwMDEgZg0KMDAwMDAwMTAyOCAwMDAwMSBmDQowMDAwMDAxMDI5IDAwMDAxIGYNCjAwMDAwMDEwMzAgMDAwMDEgZg0KMDAwMDAwMTAzMSAwMDAwMSBmDQowMDAwMDAxMDMyIDAwMDAxIGYNCjAwMDAwMDEwMzMgMDAwMDEgZg0KMDAwMDAwMTAzNCAwMDAwMSBmDQowMDAwMDAxMDM1IDAwMDAxIGYNCjAwMDAwMDEwMzYgMDAwMDEgZg0KMDAwMDAwMTAzNyAwMDAwMSBmDQowMDAwMDAxMDM4IDAwMDAxIGYNCjAwMDAwMDEwMzkgMDAwMDEgZg0KMDAwMDAwMTA0MCAwMDAwMSBmDQowMDAwMDAxMDQxIDAwMDAxIGYNCjAwMDAwMDEwNDIgMDAwMDEgZg0KMDAwMDAwMTA0MyAwMDAwMSBmDQowMDAwMDAxMDQ0IDAwMDAxIGYNCjAwMDAwMDEwNDUgMDAwMDEgZg0KMDAwMDAwMTA0NiAwMDAwMSBmDQowMDAwMDAxMDQ3IDAwMDAxIGYNCjAwMDAwMDEwNDggMDAwMDEgZg0KMDAwMDAwMTA0OSAwMDAwMSBmDQowMDAwMDAxMDUwIDAwMDAxIGYNCjAwMDAwMDEwNTEgMDAwMDEgZg0KMDAwMDAwMTA1MiAwMDAwMSBmDQowMDAwMDAxMDU0IDAwMDAxIGYNCjAwMDAwMDgyNDggMDAwMDAgbg0KMDAwMDAwMTA1NSAwMDAwMSBmDQowMDAwMDAxMDU2IDAwMDAxIGYNCjAwMDAwMDEwNTcgMDAwMDEgZg0KMDAwMDAwMTA1OCAwMDAwMSBmDQowMDAwMDAxMDU5IDAwMDAxIGYNCjAwMDAwMDEwNjAgMDAwMDEgZg0KMDAwMDAwMTA2MSAwMDAwMSBmDQowMDAwMDAxMDYyIDAwMDAxIGYNCjAwMDAwMDEwNjMgMDAwMDEgZg0KMDAwMDAwMTA2NCAwMDAwMSBmDQowMDAwMDAxMDY1IDAwMDAxIGYNCjAwMDAwMDEwNjYgMDAwMDEgZg0KMDAwMDAwMTA2NyAwMDAwMSBmDQowMDAwMDAxMDY4IDAwMDAxIGYNCjAwMDAwMDEwNjkgMDAwMDEgZg0KMDAwMDAwMTA3MCAwMDAwMSBmDQowMDAwMDAxMDcxIDAwMDAxIGYNCjAwMDAwMDEwNzIgMDAwMDEgZg0KMDAwMDAwMTA3MyAwMDAwMSBmDQowMDAwMDAxMDc0IDAwMDAxIGYNCjAwMDAwMDEwNzUgMDAwMDEgZg0KMDAwMDAwMTA3NiAwMDAwMSBmDQowMDAwMDAxMDc3IDAwMDAxIGYNCjAwMDAwMDEwNzggMDAwMDEgZg0KMDAwMDAwMTA3OSAwMDAwMSBmDQowMDAwMDAxMDgwIDAwMDAxIGYNCjAwMDAwMDEwODEgMDAwMDEgZg0KMDAwMDAwMTA4MiAwMDAwMSBmDQowMDAwMDAxMDgzIDAwMDAxIGYNCjAwMDAwMDEwODQgMDAwMDEgZg0KMDAwMDAwMTA4NSAwMDAwMSBmDQowMDAwMDAxMDg2IDAwMDAxIGYNCjAwMDAwMDEwODcgMDAwMDEgZg0KMDAwMDAwMTA4OCAwMDAwMSBmDQowMDAwMDAxMDg5IDAwMDAxIGYNCjAwMDAwMDEwOTAgMDAwMDEgZg0KMDAwMDAwMTA5MSAwMDAwMSBmDQowMDAwMDAxMDkyIDAwMDAxIGYNCjAwMDAwMDEwOTMgMDAwMDEgZg0KMDAwMDAwMTA5NCAwMDAwMSBmDQowMDAwMDAxMDk1IDAwMDAxIGYNCjAwMDAwMDEwOTYgMDAwMDEgZg0KMDAwMDAwMTA5NyAwMDAwMSBmDQowMDAwMDAxMDk4IDAwMDAxIGYNCjAwMDAwMDEwOTkgMDAwMDEgZg0KMDAwMDAwMTEwMCAwMDAwMSBmDQowMDAwMDAxMTAxIDAwMDAxIGYNCjAwMDAwMDExMDIgMDAwMDEgZg0KMDAwMDAwMTEwMyAwMDAwMSBmDQowMDAwMDAxMTA0IDAwMDAxIGYNCjAwMDAwMDExMDUgMDAwMDEgZg0KMDAwMDAwMTEwNiAwMDAwMSBmDQowMDAwMDAxMTA3IDAwMDAxIGYNCjAwMDAwMDExMDggMDAwMDEgZg0KMDAwMDAwMTEwOSAwMDAwMSBmDQowMDAwMDAxMTEwIDAwMDAxIGYNCjAwMDAwMDExMTEgMDAwMDEgZg0KMDAwMDAwMTExMiAwMDAwMSBmDQowMDAwMDAxMTEzIDAwMDAxIGYNCjAwMDAwMDExMTQgMDAwMDEgZg0KMDAwMDAwMTExNSAwMDAwMSBmDQowMDAwMDAxMTE2IDAwMDAxIGYNCjAwMDAwMDExMTcgMDAwMDEgZg0KMDAwMDAwMTExOCAwMDAwMSBmDQowMDAwMDAxMTE5IDAwMDAxIGYNCjAwMDAwMDExMjAgMDAwMDEgZg0KMDAwMDAwMTEyMSAwMDAwMSBmDQowMDAwMDAxMTIyIDAwMDAxIGYNCjAwMDAwMDExMjMgMDAwMDEgZg0KMDAwMDAwMTEyNCAwMDAwMSBmDQowMDAwMDAxMTI1IDAwMDAxIGYNCjAwMDAwMDExMjYgMDAwMDEgZg0KMDAwMDAwMTEyNyAwMDAwMSBmDQowMDAwMDAxMTI4IDAwMDAxIGYNCjAwMDAwMDExMjkgMDAwMDEgZg0KMDAwMDAwMTEzMCAwMDAwMSBmDQowMDAwMDAxMTMxIDAwMDAxIGYNCjAwMDAwMDExMzIgMDAwMDEgZg0KMDAwMDAwMTEzMyAwMDAwMSBmDQowMDAwMDAxMTM0IDAwMDAxIGYNCjAwMDAwMDExMzUgMDAwMDEgZg0KMDAwMDAwMTEzNiAwMDAwMSBmDQowMDAwMDAxMTM3IDAwMDAxIGYNCjAwMDAwMDExMzggMDAwMDEgZg0KMDAwMDAwMTEzOSAwMDAwMSBmDQowMDAwMDAxMTQwIDAwMDAxIGYNCjAwMDAwMDExNDEgMDAwMDEgZg0KMDAwMDAwMTE0MiAwMDAwMSBmDQowMDAwMDAxMTQzIDAwMDAxIGYNCjAwMDAwMDExNDQgMDAwMDEgZg0KMDAwMDAwMTE0NSAwMDAwMSBmDQowMDAwMDAxMTQ2IDAwMDAxIGYNCjAwMDAwMDExNDcgMDAwMDEgZg0KMDAwMDAwMTE0OCAwMDAwMSBmDQowMDAwMDAxMTQ5IDAwMDAxIGYNCjAwMDAwMDExNTAgMDAwMDEgZg0KMDAwMDAwMTE1MSAwMDAwMSBmDQowMDAwMDAxMTUyIDAwMDAxIGYNCjAwMDAwMDExNTMgMDAwMDEgZg0KMDAwMDAwMTE1NCAwMDAwMSBmDQowMDAwMDAxMTU1IDAwMDAxIGYNCjAwMDAwMDExNTYgMDAwMDEgZg0KMDAwMDAwMTE1NyAwMDAwMSBmDQowMDAwMDAxMTU4IDAwMDAxIGYNCjAwMDAwMDExNTkgMDAwMDEgZg0KMDAwMDAwMTE2MCAwMDAwMSBmDQowMDAwMDAxMTYxIDAwMDAxIGYNCjAwMDAwMDExNjIgMDAwMDEgZg0KMDAwMDAwMTE2MyAwMDAwMSBmDQowMDAwMDAxMTY0IDAwMDAxIGYNCjAwMDAwMDExNjUgMDAwMDEgZg0KMDAwMDAwMTE2NiAwMDAwMSBmDQowMDAwMDAxMTY3IDAwMDAxIGYNCjAwMDAwMDExNjggMDAwMDEgZg0KMDAwMDAwMTE2OSAwMDAwMSBmDQowMDAwMDAxMTcwIDAwMDAxIGYNCjAwMDAwMDExNzEgMDAwMDEgZg0KMDAwMDAwMTE3MiAwMDAwMSBmDQowMDAwMDAxMTczIDAwMDAxIGYNCjAwMDAwMDExNzQgMDAwMDEgZg0KMDAwMDAwMTE3NSAwMDAwMSBmDQowMDAwMDAxMTc2IDAwMDAxIGYNCjAwMDAwMDExNzcgMDAwMDEgZg0KMDAwMDAwMTE3OCAwMDAwMSBmDQowMDAwMDAxMTc5IDAwMDAxIGYNCjAwMDAwMDExODAgMDAwMDEgZg0KMDAwMDAwMTE4MSAwMDAwMSBmDQowMDAwMDAxMTgyIDAwMDAxIGYNCjAwMDAwMDExODMgMDAwMDEgZg0KMDAwMDAwMTE4NCAwMDAwMSBmDQowMDAwMDAxMTg1IDAwMDAxIGYNCjAwMDAwMDExODYgMDAwMDEgZg0KMDAwMDAwMTE4NyAwMDAwMSBmDQowMDAwMDAxMTg4IDAwMDAxIGYNCjAwMDAwMDExODkgMDAwMDEgZg0KMDAwMDAwMTE5MCAwMDAwMSBmDQowMDAwMDAxMTkxIDAwMDAxIGYNCjAwMDAwMDExOTIgMDAwMDEgZg0KMDAwMDAwMTE5MyAwMDAwMSBmDQowMDAwMDAxMTk0IDAwMDAxIGYNCjAwMDAwMDExOTUgMDAwMDEgZg0KMDAwMDAwMTE5NiAwMDAwMSBmDQowMDAwMDAxMTk3IDAwMDAxIGYNCjAwMDAwMDExOTggMDAwMDEgZg0KMDAwMDAwMTE5OSAwMDAwMSBmDQowMDAwMDAxMjAwIDAwMDAxIGYNCjAwMDAwMDEyMDEgMDAwMDEgZg0KMDAwMDAwMTIwMiAwMDAwMSBmDQowMDAwMDAxMjAzIDAwMDAxIGYNCjAwMDAwMDEyMDQgMDAwMDEgZg0KMDAwMDAwMTIwNSAwMDAwMSBmDQowMDAwMDAxMjA2IDAwMDAxIGYNCjAwMDAwMDEyMDcgMDAwMDEgZg0KMDAwMDAwMTIwOCAwMDAwMSBmDQowMDAwMDAxMjA5IDAwMDAxIGYNCjAwMDAwMDEyMTAgMDAwMDEgZg0KMDAwMDAwMTIxMSAwMDAwMSBmDQowMDAwMDAxMjEyIDAwMDAxIGYNCjAwMDAwMDEyMTMgMDAwMDEgZg0KMDAwMDAwMTIxNCAwMDAwMSBmDQowMDAwMDAxMjE1IDAwMDAxIGYNCjAwMDAwMDEyMTYgMDAwMDEgZg0KMDAwMDAwMTIxNyAwMDAwMSBmDQowMDAwMDAxMjE4IDAwMDAxIGYNCjAwMDAwMDEyMTkgMDAwMDEgZg0KMDAwMDAwMTIyMCAwMDAwMSBmDQowMDAwMDAxMjIxIDAwMDAxIGYNCjAwMDAwMDEyMjIgMDAwMDEgZg0KMDAwMDAwMTIyMyAwMDAwMSBmDQowMDAwMDAxMjI0IDAwMDAxIGYNCjAwMDAwMDEyMjUgMDAwMDEgZg0KMDAwMDAwMTIyNiAwMDAwMSBmDQowMDAwMDAxMjI3IDAwMDAxIGYNCjAwMDAwMDEyMjggMDAwMDEgZg0KMDAwMDAwMTIyOSAwMDAwMSBmDQowMDAwMDAxMjMwIDAwMDAxIGYNCjAwMDAwMDEyMzEgMDAwMDEgZg0KMDAwMDAwMTIzMiAwMDAwMSBmDQowMDAwMDAxMjMzIDAwMDAxIGYNCjAwMDAwMDEyMzQgMDAwMDEgZg0KMDAwMDAwMTIzNSAwMDAwMSBmDQowMDAwMDAxMjM2IDAwMDAxIGYNCjAwMDAwMDEyMzcgMDAwMDEgZg0KMDAwMDAwMTIzOCAwMDAwMSBmDQowMDAwMDAxMjM5IDAwMDAxIGYNCjAwMDAwMDEyNDAgMDAwMDEgZg0KMDAwMDAwMTI0MSAwMDAwMSBmDQowMDAwMDAxMjQyIDAwMDAxIGYNCjAwMDAwMDEyNDMgMDAwMDEgZg0KMDAwMDAwMTI0NCAwMDAwMSBmDQowMDAwMDAxMjQ1IDAwMDAxIGYNCjAwMDAwMDEyNDYgMDAwMDEgZg0KMDAwMDAwMTI0NyAwMDAwMSBmDQowMDAwMDAxMjQ4IDAwMDAxIGYNCjAwMDAwMDEyNDkgMDAwMDEgZg0KMDAwMDAwMTI1MCAwMDAwMSBmDQowMDAwMDAxMjUxIDAwMDAxIGYNCjAwMDAwMDEyNTIgMDAwMDEgZg0KMDAwMDAwMTI1MyAwMDAwMSBmDQowMDAwMDAxMjU0IDAwMDAxIGYNCjAwMDAwMDEyNTUgMDAwMDEgZg0KMDAwMDAwMTI1NiAwMDAwMSBmDQowMDAwMDAxMjU3IDAwMDAxIGYNCjAwMDAwMDEyNTggMDAwMDEgZg0KMDAwMDAwMTI1OSAwMDAwMSBmDQowMDAwMDAxMjYwIDAwMDAxIGYNCjAwMDAwMDEyNjEgMDAwMDEgZg0KMDAwMDAwMTI2MiAwMDAwMSBmDQowMDAwMDAxMjYzIDAwMDAxIGYNCjAwMDAwMDEyNjQgMDAwMDEgZg0KMDAwMDAwMTI2NSAwMDAwMSBmDQowMDAwMDAxMjY2IDAwMDAxIGYNCjAwMDAwMDEyNjcgMDAwMDEgZg0KMDAwMDAwMTI2OCAwMDAwMSBmDQowMDAwMDAxMjY5IDAwMDAxIGYNCjAwMDAwMDEyNzAgMDAwMDEgZg0KMDAwMDAwMTI3MSAwMDAwMSBmDQowMDAwMDAxMjcyIDAwMDAxIGYNCjAwMDAwMDEyNzMgMDAwMDEgZg0KMDAwMDAwMTI3NCAwMDAwMSBmDQowMDAwMDAxMjc1IDAwMDAxIGYNCjAwMDAwMDEyNzYgMDAwMDEgZg0KMDAwMDAwMTI3NyAwMDAwMSBmDQowMDAwMDAxMjc4IDAwMDAxIGYNCjAwMDAwMDEyNzkgMDAwMDEgZg0KMDAwMDAwMTI4MCAwMDAwMSBmDQowMDAwMDAxMjgxIDAwMDAxIGYNCjAwMDAwMDEyODIgMDAwMDEgZg0KMDAwMDAwMTI4MyAwMDAwMSBmDQowMDAwMDAxMjg0IDAwMDAxIGYNCjAwMDAwMDEyODUgMDAwMDEgZg0KMDAwMDAwMTI4NiAwMDAwMSBmDQowMDAwMDAxMjg3IDAwMDAxIGYNCjAwMDAwMDEyODggMDAwMDEgZg0KMDAwMDAwMTI4OSAwMDAwMSBmDQowMDAwMDAxMjkwIDAwMDAxIGYNCjAwMDAwMDEyOTEgMDAwMDEgZg0KMDAwMDAwMTI5MiAwMDAwMSBmDQowMDAwMDAxMjkzIDAwMDAxIGYNCjAwMDAwMDEyOTQgMDAwMDEgZg0KMDAwMDAwMTI5NSAwMDAwMSBmDQowMDAwMDAxMjk2IDAwMDAxIGYNCjAwMDAwMDEyOTcgMDAwMDEgZg0KMDAwMDAwMTI5OCAwMDAwMSBmDQowMDAwMDAxMjk5IDAwMDAxIGYNCjAwMDAwMDEzMDAgMDAwMDEgZg0KMDAwMDAwMTMwMSAwMDAwMSBmDQowMDAwMDAxMzAyIDAwMDAxIGYNCjAwMDAwMDEzMDMgMDAwMDEgZg0KMDAwMDAwMTMwNCAwMDAwMSBmDQowMDAwMDAxMzA1IDAwMDAxIGYNCjAwMDAwMDEzMDYgMDAwMDEgZg0KMDAwMDAwMTMwNyAwMDAwMSBmDQowMDAwMDAxMzA4IDAwMDAxIGYNCjAwMDAwMDEzMDkgMDAwMDEgZg0KMDAwMDAwMTMxMCAwMDAwMSBmDQowMDAwMDAxMzExIDAwMDAxIGYNCjAwMDAwMDEzMTIgMDAwMDEgZg0KMDAwMDAwMTMxMyAwMDAwMSBmDQowMDAwMDAxMzE0IDAwMDAxIGYNCjAwMDAwMDEzMTUgMDAwMDEgZg0KMDAwMDAwMTMxNiAwMDAwMSBmDQowMDAwMDAxMzE3IDAwMDAxIGYNCjAwMDAwMDEzMTggMDAwMDEgZg0KMDAwMDAwMTMxOSAwMDAwMSBmDQowMDAwMDAxMzIwIDAwMDAxIGYNCjAwMDAwMDEzMjEgMDAwMDEgZg0KMDAwMDAwMTMyMiAwMDAwMSBmDQowMDAwMDAxMzIzIDAwMDAxIGYNCjAwMDAwMDEzMjQgMDAwMDEgZg0KMDAwMDAwMTMyNSAwMDAwMSBmDQowMDAwMDAxMzI2IDAwMDAxIGYNCjAwMDAwMDEzMjcgMDAwMDEgZg0KMDAwMDAwMTMyOCAwMDAwMSBmDQowMDAwMDAxMzI5IDAwMDAxIGYNCjAwMDAwMDEzMzAgMDAwMDEgZg0KMDAwMDAwMTMzMSAwMDAwMSBmDQowMDAwMDAxMzMyIDAwMDAxIGYNCjAwMDAwMDEzMzMgMDAwMDEgZg0KMDAwMDAwMTMzNCAwMDAwMSBmDQowMDAwMDAxMzM1IDAwMDAxIGYNCjAwMDAwMDEzMzYgMDAwMDEgZg0KMDAwMDAwMTMzNyAwMDAwMSBmDQowMDAwMDAxMzM4IDAwMDAxIGYNCjAwMDAwMDEzMzkgMDAwMDEgZg0KMDAwMDAwMTM0MCAwMDAwMSBmDQowMDAwMDAxMzQxIDAwMDAxIGYNCjAwMDAwMDEzNDIgMDAwMDEgZg0KMDAwMDAwMTM0MyAwMDAwMSBmDQowMDAwMDAxMzQ0IDAwMDAxIGYNCjAwMDAwMDEzNDUgMDAwMDEgZg0KMDAwMDAwMTM0NiAwMDAwMSBmDQowMDAwMDAxMzQ3IDAwMDAxIGYNCjAwMDAwMDEzNDggMDAwMDEgZg0KMDAwMDAwMTM0OSAwMDAwMSBmDQowMDAwMDAxMzUwIDAwMDAxIGYNCjAwMDAwMDEzNTEgMDAwMDEgZg0KMDAwMDAwMTM1MiAwMDAwMSBmDQowMDAwMDAxMzUzIDAwMDAxIGYNCjAwMDAwMDEzNTQgMDAwMDEgZg0KMDAwMDAwMTM1NSAwMDAwMSBmDQowMDAwMDAxMzU2IDAwMDAxIGYNCjAwMDAwMDEzNTcgMDAwMDEgZg0KMDAwMDAwMTM1OCAwMDAwMSBmDQowMDAwMDAxMzU5IDAwMDAxIGYNCjAwMDAwMDEzNjAgMDAwMDEgZg0KMDAwMDAwMTM2MSAwMDAwMSBmDQowMDAwMDAxMzYyIDAwMDAxIGYNCjAwMDAwMDEzNjMgMDAwMDEgZg0KMDAwMDAwMTM2NCAwMDAwMSBmDQowMDAwMDAxMzY1IDAwMDAxIGYNCjAwMDAwMDEzNjYgMDAwMDEgZg0KMDAwMDAwMTM2NyAwMDAwMSBmDQowMDAwMDAxMzY4IDAwMDAxIGYNCjAwMDAwMDEzNjkgMDAwMDEgZg0KMDAwMDAwMTM3MCAwMDAwMSBmDQowMDAwMDAxMzcxIDAwMDAxIGYNCjAwMDAwMDEzNzIgMDAwMDEgZg0KMDAwMDAwMTM3MyAwMDAwMSBmDQowMDAwMDAxMzc0IDAwMDAxIGYNCjAwMDAwMDEzNzUgMDAwMDEgZg0KMDAwMDAwMTM3NiAwMDAwMSBmDQowMDAwMDAxMzc3IDAwMDAxIGYNCjAwMDAwMDEzNzggMDAwMDEgZg0KMDAwMDAwMTM3OSAwMDAwMSBmDQowMDAwMDAxMzgwIDAwMDAxIGYNCjAwMDAwMDEzODEgMDAwMDEgZg0KMDAwMDAwMTM4MiAwMDAwMSBmDQowMDAwMDAxMzgzIDAwMDAxIGYNCjAwMDAwMDEzODQgMDAwMDEgZg0KMDAwMDAwMTM4NSAwMDAwMSBmDQowMDAwMDAxMzg2IDAwMDAxIGYNCjAwMDAwMDEzODcgMDAwMDEgZg0KMDAwMDAwMTM4OCAwMDAwMSBmDQowMDAwMDAxMzg5IDAwMDAxIGYNCjAwMDAwMDEzOTAgMDAwMDEgZg0KMDAwMDAwMTM5MSAwMDAwMSBmDQowMDAwMDAxMzkyIDAwMDAxIGYNCjAwMDAwMDEzOTMgMDAwMDEgZg0KMDAwMDAwMTM5NCAwMDAwMSBmDQowMDAwMDAxMzk1IDAwMDAxIGYNCjAwMDAwMDEzOTYgMDAwMDEgZg0KMDAwMDAwMTM5NyAwMDAwMSBmDQowMDAwMDAxMzk4IDAwMDAxIGYNCjAwMDAwMDEzOTkgMDAwMDEgZg0KMDAwMDAwMTQwMCAwMDAwMSBmDQowMDAwMDAxNDAxIDAwMDAxIGYNCjAwMDAwMDE0MDIgMDAwMDEgZg0KMDAwMDAwMTQwMyAwMDAwMSBmDQowMDAwMDAxNDA0IDAwMDAxIGYNCjAwMDAwMDE0MDUgMDAwMDEgZg0KMDAwMDAwMTQwNiAwMDAwMSBmDQowMDAwMDAxNDA3IDAwMDAxIGYNCjAwMDAwMDE0MDggMDAwMDEgZg0KMDAwMDAwMTQwOSAwMDAwMSBmDQowMDAwMDAxNDEwIDAwMDAxIGYNCjAwMDAwMDE0MTEgMDAwMDEgZg0KMDAwMDAwMTQxMiAwMDAwMSBmDQowMDAwMDAxNDEzIDAwMDAxIGYNCjAwMDAwMDE0MTUgMDAwMDEgZg0KMDAwMDAwODI3MSAwMDAwMCBuDQowMDAwMDAxNDE2IDAwMDAxIGYNCjAwMDAwMDE0MTcgMDAwMDEgZg0KMDAwMDAwMTQxOCAwMDAwMSBmDQowMDAwMDAxNDE5IDAwMDAxIGYNCjAwMDAwMDE0MjAgMDAwMDEgZg0KMDAwMDAwMTQyMSAwMDAwMSBmDQowMDAwMDAxNDIyIDAwMDAxIGYNCjAwMDAwMDE0MjMgMDAwMDEgZg0KMDAwMDAwMTQyNCAwMDAwMSBmDQowMDAwMDAxNDI1IDAwMDAxIGYNCjAwMDAwMDE0MjYgMDAwMDEgZg0KMDAwMDAwMTQyNyAwMDAwMSBmDQowMDAwMDAxNDI4IDAwMDAxIGYNCjAwMDAwMDE0MjkgMDAwMDEgZg0KMDAwMDAwMTQzMCAwMDAwMSBmDQowMDAwMDAxNDMxIDAwMDAxIGYNCjAwMDAwMDE0MzIgMDAwMDEgZg0KMDAwMDAwMTQzMyAwMDAwMSBmDQowMDAwMDAxNDM0IDAwMDAxIGYNCjAwMDAwMDE0MzUgMDAwMDEgZg0KMDAwMDAwMTQzNiAwMDAwMSBmDQowMDAwMDAxNDM3IDAwMDAxIGYNCjAwMDAwMDE0MzggMDAwMDEgZg0KMDAwMDAwMTQzOSAwMDAwMSBmDQowMDAwMDAxNDQwIDAwMDAxIGYNCjAwMDAwMDE0NDEgMDAwMDEgZg0KMDAwMDAwMTQ0MiAwMDAwMSBmDQowMDAwMDAxNDQzIDAwMDAxIGYNCjAwMDAwMDE0NDQgMDAwMDEgZg0KMDAwMDAwMTQ0NSAwMDAwMSBmDQowMDAwMDAxNDQ2IDAwMDAxIGYNCjAwMDAwMDE0NDcgMDAwMDEgZg0KMDAwMDAwMTQ0OCAwMDAwMSBmDQowMDAwMDAxNDQ5IDAwMDAxIGYNCjAwMDAwMDE0NTAgMDAwMDEgZg0KMDAwMDAwMTQ1MSAwMDAwMSBmDQowMDAwMDAxNDUyIDAwMDAxIGYNCjAwMDAwMDE0NTMgMDAwMDEgZg0KMDAwMDAwMTQ1NCAwMDAwMSBmDQowMDAwMDAxNDU1IDAwMDAxIGYNCjAwMDAwMDE0NTYgMDAwMDEgZg0KMDAwMDAwMTQ1NyAwMDAwMSBmDQowMDAwMDAxNDU4IDAwMDAxIGYNCjAwMDAwMDE0NTkgMDAwMDEgZg0KMDAwMDAwMTQ2MCAwMDAwMSBmDQowMDAwMDAxNDYxIDAwMDAxIGYNCjAwMDAwMDE0NjIgMDAwMDEgZg0KMDAwMDAwMTQ2MyAwMDAwMSBmDQowMDAwMDAxNDY0IDAwMDAxIGYNCjAwMDAwMDE0NjUgMDAwMDEgZg0KMDAwMDAwMTQ2NiAwMDAwMSBmDQowMDAwMDAxNDY3IDAwMDAxIGYNCjAwMDAwMDE0NjggMDAwMDEgZg0KMDAwMDAwMTQ2OSAwMDAwMSBmDQowMDAwMDAxNDcwIDAwMDAxIGYNCjAwMDAwMDE0NzEgMDAwMDEgZg0KMDAwMDAwMTQ3MiAwMDAwMSBmDQowMDAwMDAxNDczIDAwMDAxIGYNCjAwMDAwMDE0NzQgMDAwMDEgZg0KMDAwMDAwMTQ3NSAwMDAwMSBmDQowMDAwMDAxNDc2IDAwMDAxIGYNCjAwMDAwMDE0NzcgMDAwMDEgZg0KMDAwMDAwMTQ3OCAwMDAwMSBmDQowMDAwMDAxNDc5IDAwMDAxIGYNCjAwMDAwMDE0ODAgMDAwMDEgZg0KMDAwMDAwMTQ4MSAwMDAwMSBmDQowMDAwMDAxNDgyIDAwMDAxIGYNCjAwMDAwMDE0ODMgMDAwMDEgZg0KMDAwMDAwMTQ4NCAwMDAwMSBmDQowMDAwMDAxNDg1IDAwMDAxIGYNCjAwMDAwMDE0ODYgMDAwMDEgZg0KMDAwMDAwMTQ4NyAwMDAwMSBmDQowMDAwMDAxNDg4IDAwMDAxIGYNCjAwMDAwMDE0ODkgMDAwMDEgZg0KMDAwMDAwMTQ5MCAwMDAwMSBmDQowMDAwMDAxNDkxIDAwMDAxIGYNCjAwMDAwMDE0OTIgMDAwMDEgZg0KMDAwMDAwMTQ5MyAwMDAwMSBmDQowMDAwMDAxNDk0IDAwMDAxIGYNCjAwMDAwMDE0OTUgMDAwMDEgZg0KMDAwMDAwMTQ5NiAwMDAwMSBmDQowMDAwMDAxNDk3IDAwMDAxIGYNCjAwMDAwMDE0OTggMDAwMDEgZg0KMDAwMDAwMTQ5OSAwMDAwMSBmDQowMDAwMDAxNTAwIDAwMDAxIGYNCjAwMDAwMDE1MDEgMDAwMDEgZg0KMDAwMDAwMTUwMiAwMDAwMSBmDQowMDAwMDAxNTAzIDAwMDAxIGYNCjAwMDAwMDE1MDQgMDAwMDEgZg0KMDAwMDAwMTUwNSAwMDAwMSBmDQowMDAwMDAxNTA2IDAwMDAxIGYNCjAwMDAwMDE1MDcgMDAwMDEgZg0KMDAwMDAwMTUwOCAwMDAwMSBmDQowMDAwMDAxNTA5IDAwMDAxIGYNCjAwMDAwMDE1MTAgMDAwMDEgZg0KMDAwMDAwMTUxMSAwMDAwMSBmDQowMDAwMDAxNTEyIDAwMDAxIGYNCjAwMDAwMDE1MTMgMDAwMDEgZg0KMDAwMDAwMTUxNCAwMDAwMSBmDQowMDAwMDAxNTE1IDAwMDAxIGYNCjAwMDAwMDE1MTYgMDAwMDEgZg0KMDAwMDAwMTUxNyAwMDAwMSBmDQowMDAwMDAxNTE4IDAwMDAxIGYNCjAwMDAwMDE1MTkgMDAwMDEgZg0KMDAwMDAwMTUyMCAwMDAwMSBmDQowMDAwMDAxNTIxIDAwMDAxIGYNCjAwMDAwMDE1MjIgMDAwMDEgZg0KMDAwMDAwMTUyMyAwMDAwMSBmDQowMDAwMDAxNTI0IDAwMDAxIGYNCjAwMDAwMDE1MjUgMDAwMDEgZg0KMDAwMDAwMTUyNiAwMDAwMSBmDQowMDAwMDAxNTI3IDAwMDAxIGYNCjAwMDAwMDE1MjggMDAwMDEgZg0KMDAwMDAwMTUyOSAwMDAwMSBmDQowMDAwMDAxNTMwIDAwMDAxIGYNCjAwMDAwMDE1MzEgMDAwMDEgZg0KMDAwMDAwMTUzMiAwMDAwMSBmDQowMDAwMDAxNTMzIDAwMDAxIGYNCjAwMDAwMDE1MzQgMDAwMDEgZg0KMDAwMDAwMTUzNSAwMDAwMSBmDQowMDAwMDAxNTM2IDAwMDAxIGYNCjAwMDAwMDE1MzcgMDAwMDEgZg0KMDAwMDAwMTUzOCAwMDAwMSBmDQowMDAwMDAxNTM5IDAwMDAxIGYNCjAwMDAwMDE1NDAgMDAwMDEgZg0KMDAwMDAwMTU0MSAwMDAwMSBmDQowMDAwMDAxNTQyIDAwMDAxIGYNCjAwMDAwMDE1NDMgMDAwMDEgZg0KMDAwMDAwMTU0NCAwMDAwMSBmDQowMDAwMDAxNTQ1IDAwMDAxIGYNCjAwMDAwMDE1NDYgMDAwMDEgZg0KMDAwMDAwMTU0NyAwMDAwMSBmDQowMDAwMDAxNTQ4IDAwMDAxIGYNCjAwMDAwMDE1NDkgMDAwMDEgZg0KMDAwMDAwMTU1MCAwMDAwMSBmDQowMDAwMDAxNTUxIDAwMDAxIGYNCjAwMDAwMDE1NTIgMDAwMDEgZg0KMDAwMDAwMTU1MyAwMDAwMSBmDQowMDAwMDAxNTU0IDAwMDAxIGYNCjAwMDAwMDE1NTUgMDAwMDEgZg0KMDAwMDAwMTU1NiAwMDAwMSBmDQowMDAwMDAxNTU3IDAwMDAxIGYNCjAwMDAwMDE1NTggMDAwMDEgZg0KMDAwMDAwMTU1OSAwMDAwMSBmDQowMDAwMDAxNTYwIDAwMDAxIGYNCjAwMDAwMDE1NjEgMDAwMDEgZg0KMDAwMDAwMTU2MiAwMDAwMSBmDQowMDAwMDAxNTYzIDAwMDAxIGYNCjAwMDAwMDE1NjQgMDAwMDEgZg0KMDAwMDAwMTU2NSAwMDAwMSBmDQowMDAwMDAxNTY2IDAwMDAxIGYNCjAwMDAwMDE1NjcgMDAwMDEgZg0KMDAwMDAwMTU2OCAwMDAwMSBmDQowMDAwMDAxNTY5IDAwMDAxIGYNCjAwMDAwMDE1NzAgMDAwMDEgZg0KMDAwMDAwMTU3MSAwMDAwMSBmDQowMDAwMDAxNTcyIDAwMDAxIGYNCjAwMDAwMDE1NzMgMDAwMDEgZg0KMDAwMDAwMTU3NCAwMDAwMSBmDQowMDAwMDAxNTc1IDAwMDAxIGYNCjAwMDAwMDE1NzYgMDAwMDEgZg0KMDAwMDAwMTU3NyAwMDAwMSBmDQowMDAwMDAxNTc4IDAwMDAxIGYNCjAwMDAwMDE1NzkgMDAwMDEgZg0KMDAwMDAwMTU4MCAwMDAwMSBmDQowMDAwMDAxNTgxIDAwMDAxIGYNCjAwMDAwMDE1ODIgMDAwMDEgZg0KMDAwMDAwMTU4MyAwMDAwMSBmDQowMDAwMDAxNTg0IDAwMDAxIGYNCjAwMDAwMDE1ODUgMDAwMDEgZg0KMDAwMDAwMTU4NiAwMDAwMSBmDQowMDAwMDAxNTg3IDAwMDAxIGYNCjAwMDAwMDE1ODggMDAwMDEgZg0KMDAwMDAwMTU4OSAwMDAwMSBmDQowMDAwMDAxNTkwIDAwMDAxIGYNCjAwMDAwMDE1OTEgMDAwMDEgZg0KMDAwMDAwMTU5MiAwMDAwMSBmDQowMDAwMDAxNTkzIDAwMDAxIGYNCjAwMDAwMDE1OTQgMDAwMDEgZg0KMDAwMDAwMTU5NSAwMDAwMSBmDQowMDAwMDAxNTk2IDAwMDAxIGYNCjAwMDAwMDE1OTcgMDAwMDEgZg0KMDAwMDAwMTU5OCAwMDAwMSBmDQowMDAwMDAxNTk5IDAwMDAxIGYNCjAwMDAwMDE2MDAgMDAwMDEgZg0KMDAwMDAwMTYwMSAwMDAwMSBmDQowMDAwMDAxNjAyIDAwMDAxIGYNCjAwMDAwMDE2MDMgMDAwMDEgZg0KMDAwMDAwMTYwNCAwMDAwMSBmDQowMDAwMDAxNjA1IDAwMDAxIGYNCjAwMDAwMDE2MDYgMDAwMDEgZg0KMDAwMDAwMTYwNyAwMDAwMSBmDQowMDAwMDAxNjA4IDAwMDAxIGYNCjAwMDAwMDE2MDkgMDAwMDEgZg0KMDAwMDAwMTYxMCAwMDAwMSBmDQowMDAwMDAxNjExIDAwMDAxIGYNCjAwMDAwMDE2MTIgMDAwMDEgZg0KMDAwMDAwMTYxMyAwMDAwMSBmDQowMDAwMDAxNjE0IDAwMDAxIGYNCjAwMDAwMDE2MTUgMDAwMDEgZg0KMDAwMDAwMTYxNiAwMDAwMSBmDQowMDAwMDAxNjE3IDAwMDAxIGYNCjAwMDAwMDE2MTggMDAwMDEgZg0KMDAwMDAwMTYxOSAwMDAwMSBmDQowMDAwMDAxNjIwIDAwMDAxIGYNCjAwMDAwMDE2MjEgMDAwMDEgZg0KMDAwMDAwMTYyMiAwMDAwMSBmDQowMDAwMDAxNjIzIDAwMDAxIGYNCjAwMDAwMDE2MjQgMDAwMDEgZg0KMDAwMDAwMTYyNSAwMDAwMSBmDQowMDAwMDAxNjI2IDAwMDAxIGYNCjAwMDAwMDE2MjcgMDAwMDEgZg0KMDAwMDAwMTYyOCAwMDAwMSBmDQowMDAwMDAxNjI5IDAwMDAxIGYNCjAwMDAwMDE2MzAgMDAwMDEgZg0KMDAwMDAwMTYzMSAwMDAwMSBmDQowMDAwMDAxNjMyIDAwMDAxIGYNCjAwMDAwMDE2MzMgMDAwMDEgZg0KMDAwMDAwMTYzNCAwMDAwMSBmDQowMDAwMDAxNjM1IDAwMDAxIGYNCjAwMDAwMDE2MzYgMDAwMDEgZg0KMDAwMDAwMTYzNyAwMDAwMSBmDQowMDAwMDAxNjM4IDAwMDAxIGYNCjAwMDAwMDE2MzkgMDAwMDEgZg0KMDAwMDAwMTY0MCAwMDAwMSBmDQowMDAwMDAxNjQxIDAwMDAxIGYNCjAwMDAwMDE2NDIgMDAwMDEgZg0KMDAwMDAwMTY0MyAwMDAwMSBmDQowMDAwMDAxNjQ0IDAwMDAxIGYNCjAwMDAwMDE2NDUgMDAwMDEgZg0KMDAwMDAwMTY0NiAwMDAwMSBmDQowMDAwMDAxNjQ3IDAwMDAxIGYNCjAwMDAwMDE2NDggMDAwMDEgZg0KMDAwMDAwMTY0OSAwMDAwMSBmDQowMDAwMDAxNjUwIDAwMDAxIGYNCjAwMDAwMDE2NTEgMDAwMDEgZg0KMDAwMDAwMTY1MiAwMDAwMSBmDQowMDAwMDAxNjUzIDAwMDAxIGYNCjAwMDAwMDE2NTQgMDAwMDEgZg0KMDAwMDAwMTY1NSAwMDAwMSBmDQowMDAwMDAxNjU2IDAwMDAxIGYNCjAwMDAwMDE2NTcgMDAwMDEgZg0KMDAwMDAwMTY1OCAwMDAwMSBmDQowMDAwMDAxNjU5IDAwMDAxIGYNCjAwMDAwMDE2NjAgMDAwMDEgZg0KMDAwMDAwMTY2MSAwMDAwMSBmDQowMDAwMDAxNjYyIDAwMDAxIGYNCjAwMDAwMDE2NjMgMDAwMDEgZg0KMDAwMDAwMTY2NCAwMDAwMSBmDQowMDAwMDAxNjY1IDAwMDAxIGYNCjAwMDAwMDE2NjYgMDAwMDEgZg0KMDAwMDAwMTY2NyAwMDAwMSBmDQowMDAwMDAxNjY4IDAwMDAxIGYNCjAwMDAwMDE2NjkgMDAwMDEgZg0KMDAwMDAwMTY3MCAwMDAwMSBmDQowMDAwMDAxNjcxIDAwMDAxIGYNCjAwMDAwMDE2NzIgMDAwMDEgZg0KMDAwMDAwMTY3MyAwMDAwMSBmDQowMDAwMDAxNjc0IDAwMDAxIGYNCjAwMDAwMDE2NzUgMDAwMDEgZg0KMDAwMDAwMTY3NiAwMDAwMSBmDQowMDAwMDAxNjc3IDAwMDAxIGYNCjAwMDAwMDE2NzggMDAwMDEgZg0KMDAwMDAwMTY3OSAwMDAwMSBmDQowMDAwMDAxNjgwIDAwMDAxIGYNCjAwMDAwMDE2ODEgMDAwMDEgZg0KMDAwMDAwMTY4MiAwMDAwMSBmDQowMDAwMDAxNjgzIDAwMDAxIGYNCjAwMDAwMDE2ODQgMDAwMDEgZg0KMDAwMDAwMTY4NSAwMDAwMSBmDQowMDAwMDAxNjg2IDAwMDAxIGYNCjAwMDAwMDE2ODcgMDAwMDEgZg0KMDAwMDAwMTY4OCAwMDAwMSBmDQowMDAwMDAxNjg5IDAwMDAxIGYNCjAwMDAwMDE2OTAgMDAwMDEgZg0KMDAwMDAwMTY5MSAwMDAwMSBmDQowMDAwMDAxNjkyIDAwMDAxIGYNCjAwMDAwMDE2OTMgMDAwMDEgZg0KMDAwMDAwMTY5NCAwMDAwMSBmDQowMDAwMDAxNjk1IDAwMDAxIGYNCjAwMDAwMDE2OTYgMDAwMDEgZg0KMDAwMDAwMTY5NyAwMDAwMSBmDQowMDAwMDAxNjk4IDAwMDAxIGYNCjAwMDAwMDE2OTkgMDAwMDEgZg0KMDAwMDAwMTcwMCAwMDAwMSBmDQowMDAwMDAxNzAxIDAwMDAxIGYNCjAwMDAwMDE3MDIgMDAwMDEgZg0KMDAwMDAwMTcwMyAwMDAwMSBmDQowMDAwMDAxNzA0IDAwMDAxIGYNCjAwMDAwMDE3MDUgMDAwMDEgZg0KMDAwMDAwMTcwNiAwMDAwMSBmDQowMDAwMDAxNzA3IDAwMDAxIGYNCjAwMDAwMDE3MDggMDAwMDEgZg0KMDAwMDAwMTcwOSAwMDAwMSBmDQowMDAwMDAxNzEwIDAwMDAxIGYNCjAwMDAwMDE3MTEgMDAwMDEgZg0KMDAwMDAwMTcxMiAwMDAwMSBmDQowMDAwMDAxNzEzIDAwMDAxIGYNCjAwMDAwMDE3MTQgMDAwMDEgZg0KMDAwMDAwMTcxNSAwMDAwMSBmDQowMDAwMDAxNzE2IDAwMDAxIGYNCjAwMDAwMDE3MTcgMDAwMDEgZg0KMDAwMDAwMTcxOCAwMDAwMSBmDQowMDAwMDAxNzE5IDAwMDAxIGYNCjAwMDAwMDE3MjAgMDAwMDEgZg0KMDAwMDAwMTcyMSAwMDAwMSBmDQowMDAwMDAxNzIyIDAwMDAxIGYNCjAwMDAwMDE3MjMgMDAwMDEgZg0KMDAwMDAwMTcyNCAwMDAwMSBmDQowMDAwMDAxNzI1IDAwMDAxIGYNCjAwMDAwMDE3MjYgMDAwMDEgZg0KMDAwMDAwMTcyNyAwMDAwMSBmDQowMDAwMDAxNzI4IDAwMDAxIGYNCjAwMDAwMDE3MjkgMDAwMDEgZg0KMDAwMDAwMTczMCAwMDAwMSBmDQowMDAwMDAxNzMxIDAwMDAxIGYNCjAwMDAwMDE3MzIgMDAwMDEgZg0KMDAwMDAwMTczMyAwMDAwMSBmDQowMDAwMDAxNzM0IDAwMDAxIGYNCjAwMDAwMDE3MzUgMDAwMDEgZg0KMDAwMDAwMTczNiAwMDAwMSBmDQowMDAwMDAxNzM3IDAwMDAxIGYNCjAwMDAwMDE3MzggMDAwMDEgZg0KMDAwMDAwMTczOSAwMDAwMSBmDQowMDAwMDAxNzQwIDAwMDAxIGYNCjAwMDAwMDE3NDEgMDAwMDEgZg0KMDAwMDAwMTc0MiAwMDAwMSBmDQowMDAwMDAxNzQzIDAwMDAxIGYNCjAwMDAwMDE3NDQgMDAwMDEgZg0KMDAwMDAwMTc0NSAwMDAwMSBmDQowMDAwMDAxNzQ2IDAwMDAxIGYNCjAwMDAwMDE3NDcgMDAwMDEgZg0KMDAwMDAwMTc0OCAwMDAwMSBmDQowMDAwMDAxNzQ5IDAwMDAxIGYNCjAwMDAwMDE3NTAgMDAwMDEgZg0KMDAwMDAwMTc1MSAwMDAwMSBmDQowMDAwMDAxNzUyIDAwMDAxIGYNCjAwMDAwMDE3NTMgMDAwMDEgZg0KMDAwMDAwMTc1NCAwMDAwMSBmDQowMDAwMDAxNzU1IDAwMDAxIGYNCjAwMDAwMDE3NTYgMDAwMDEgZg0KMDAwMDAwMTc1NyAwMDAwMSBmDQowMDAwMDAxNzU4IDAwMDAxIGYNCjAwMDAwMDE3NTkgMDAwMDEgZg0KMDAwMDAwMTc2MCAwMDAwMSBmDQowMDAwMDAxNzYxIDAwMDAxIGYNCjAwMDAwMDE3NjIgMDAwMDEgZg0KMDAwMDAwMTc2MyAwMDAwMSBmDQowMDAwMDAxNzY0IDAwMDAxIGYNCjAwMDAwMDE3NjUgMDAwMDEgZg0KMDAwMDAwMTc2NiAwMDAwMSBmDQowMDAwMDAxNzY3IDAwMDAxIGYNCjAwMDAwMDE3NjggMDAwMDEgZg0KMDAwMDAwMTc2OSAwMDAwMSBmDQowMDAwMDAxNzcwIDAwMDAxIGYNCjAwMDAwMDE3NzEgMDAwMDEgZg0KMDAwMDAwMTc3MiAwMDAwMSBmDQowMDAwMDAxNzczIDAwMDAxIGYNCjAwMDAwMDE3NzQgMDAwMDEgZg0KMDAwMDAwMTgyMiAwMDAwMSBmDQowMDAwMDA4Mjk0IDAwMDAwIG4NCjAwMDAwMDgzMTcgMDAwMDAgbg0KMDAwMDAwOTY5NiAwMDAwMCBuDQowMDAwMDI4MjQxIDAwMDAwIG4NCjAwMDAwMjgyNjUgMDAwMDAgbg0KMDAwMDA0NTQwNiAwMDAwMCBuDQowMDAwMDQ1NDMwIDAwMDAwIG4NCjAwMDAwNTk5NzQgMDAwMDAgbg0KMDAwMDA1OTk5OCAwMDAwMCBuDQowMDAwMDc1NzY2IDAwMDAwIG4NCjAwMDAwNzU3OTAgMDAwMDAgbg0KMDAwMDA5Nzk5MyAwMDAwMCBuDQowMDAwMDk4MDE3IDAwMDAwIG4NCjAwMDAxMjM4OTMgMDAwMDAgbg0KMDAwMDEyMzkxNyAwMDAwMCBuDQowMDAwMTQ3NzY5IDAwMDAwIG4NCjAwMDAxNDc3OTMgMDAwMDAgbg0KMDAwMDE2ODg3NSAwMDAwMCBuDQowMDAwMTY4ODk5IDAwMDAwIG4NCjAwMDAxOTAwOTEgMDAwMDAgbg0KMDAwMDE5MDExNSAwMDAwMCBuDQowMDAwMjEzMDMyIDAwMDAwIG4NCjAwMDAyMTMwNTYgMDAwMDAgbg0KMDAwMDIzNDM1MyAwMDAwMCBuDQowMDAwMjM0Mzc2IDAwMDAwIG4NCjAwMDAyNDE0MjcgMDAwMDAgbg0KMDAwMDI0MTQ1MCAwMDAwMCBuDQowMDAwMjQ1NzE1IDAwMDAwIG4NCjAwMDAyNDU3MzkgMDAwMDAgbg0KMDAwMDI2Njc5NyAwMDAwMCBuDQowMDAwMjY2ODIxIDAwMDAwIG4NCjAwMDAyODU3MDIgMDAwMDAgbg0KMDAwMDI4NTcyNiAwMDAwMCBuDQowMDAwMzAzNzQ4IDAwMDAwIG4NCjAwMDAzMDM3NzIgMDAwMDAgbg0KMDAwMDMyNDQxOSAwMDAwMCBuDQowMDAwMzI0NDQzIDAwMDAwIG4NCjAwMDAzNDU1MjkgMDAwMDAgbg0KMDAwMDM0NTU1MyAwMDAwMCBuDQowMDAwMzcxMTM0IDAwMDAwIG4NCjAwMDAzNzExNTggMDAwMDAgbg0KMDAwMDM4OTEyMyAwMDAwMCBuDQowMDAwMzg5MTQ3IDAwMDAwIG4NCjAwMDA0MDEyOTggMDAwMDAgbg0KMDAwMDQwMTMyMiAwMDAwMCBuDQowMDAwNDE4MjI4IDAwMDAwIG4NCjAwMDA0MTgyNTIgMDAwMDAgbg0KMDAwMDAwMTgyNCAwMDAwMSBmDQowMDAwNDI5NDAzIDAwMDAwIG4NCjAwMDAwMDE4MjUgMDAwMDEgZg0KMDAwMDAwMTgyNiAwMDAwMSBmDQowMDAwMDAxODI3IDAwMDAxIGYNCjAwMDAwMDE4MjggMDAwMDEgZg0KMDAwMDAwMTgyOSAwMDAwMSBmDQowMDAwMDAxODMwIDAwMDAxIGYNCjAwMDAwMDE4MzEgMDAwMDEgZg0KMDAwMDAwMTgzMiAwMDAwMSBmDQowMDAwMDAxODMzIDAwMDAxIGYNCjAwMDAwMDE4MzQgMDAwMDEgZg0KMDAwMDAwMTgzNSAwMDAwMSBmDQowMDAwMDAxODM2IDAwMDAxIGYNCjAwMDAwMDE4MzcgMDAwMDEgZg0KMDAwMDAwMTgzOCAwMDAwMSBmDQowMDAwMDAxODM5IDAwMDAxIGYNCjAwMDAwMDE4NDAgMDAwMDEgZg0KMDAwMDAwMTg0MSAwMDAwMSBmDQowMDAwMDAxODQyIDAwMDAxIGYNCjAwMDAwMDE4NDMgMDAwMDEgZg0KMDAwMDAwMTg0NCAwMDAwMSBmDQowMDAwMDAxODQ1IDAwMDAxIGYNCjAwMDAwMDE4NDYgMDAwMDEgZg0KMDAwMDAwMTg0NyAwMDAwMSBmDQowMDAwMDAxODQ4IDAwMDAxIGYNCjAwMDAwMDE4NDkgMDAwMDEgZg0KMDAwMDAwMTg1MCAwMDAwMSBmDQowMDAwMDAxODUxIDAwMDAxIGYNCjAwMDAwMDE4NTIgMDAwMDEgZg0KMDAwMDAwMTg1MyAwMDAwMSBmDQowMDAwMDAxODU0IDAwMDAxIGYNCjAwMDAwMDE4NTUgMDAwMDEgZg0KMDAwMDAwMTg1NiAwMDAwMSBmDQowMDAwMDAxODU3IDAwMDAxIGYNCjAwMDAwMDE4NTggMDAwMDEgZg0KMDAwMDAwMTg1OSAwMDAwMSBmDQowMDAwMDAxODYwIDAwMDAxIGYNCjAwMDAwMDE4NjEgMDAwMDEgZg0KMDAwMDAwMTg2MiAwMDAwMSBmDQowMDAwMDAxODYzIDAwMDAxIGYNCjAwMDAwMDE4NjQgMDAwMDEgZg0KMDAwMDAwMTg2NSAwMDAwMSBmDQowMDAwMDAxODY2IDAwMDAxIGYNCjAwMDAwMDE4NjcgMDAwMDEgZg0KMDAwMDAwMTg2OCAwMDAwMSBmDQowMDAwMDAxODY5IDAwMDAxIGYNCjAwMDAwMDE4NzAgMDAwMDEgZg0KMDAwMDAwMTg3MSAwMDAwMSBmDQowMDAwMDAxODcyIDAwMDAxIGYNCjAwMDAwMDE4NzMgMDAwMDEgZg0KMDAwMDAwMTg3NCAwMDAwMSBmDQowMDAwMDAxODc1IDAwMDAxIGYNCjAwMDAwMDE4NzYgMDAwMDEgZg0KMDAwMDAwMTg3NyAwMDAwMSBmDQowMDAwMDAxODc4IDAwMDAxIGYNCjAwMDAwMDE4NzkgMDAwMDEgZg0KMDAwMDAwMTg4MCAwMDAwMSBmDQowMDAwMDAxODgxIDAwMDAxIGYNCjAwMDAwMDE4ODIgMDAwMDEgZg0KMDAwMDAwMTg4MyAwMDAwMSBmDQowMDAwMDAxODg0IDAwMDAxIGYNCjAwMDAwMDE4ODUgMDAwMDEgZg0KMDAwMDAwMTg4NiAwMDAwMSBmDQowMDAwMDAxODg3IDAwMDAxIGYNCjAwMDAwMDE4ODggMDAwMDEgZg0KMDAwMDAwMTg4OSAwMDAwMSBmDQowMDAwMDAxODkwIDAwMDAxIGYNCjAwMDAwMDE4OTEgMDAwMDEgZg0KMDAwMDAwMTg5MiAwMDAwMSBmDQowMDAwMDAxODkzIDAwMDAxIGYNCjAwMDAwMDE4OTQgMDAwMDEgZg0KMDAwMDAwMTg5NSAwMDAwMSBmDQowMDAwMDAxODk2IDAwMDAxIGYNCjAwMDAwMDE4OTcgMDAwMDEgZg0KMDAwMDAwMTg5OCAwMDAwMSBmDQowMDAwMDAxODk5IDAwMDAxIGYNCjAwMDAwMDE5MDAgMDAwMDEgZg0KMDAwMDAwMTkwMSAwMDAwMSBmDQowMDAwMDAxOTAyIDAwMDAxIGYNCjAwMDAwMDE5MDMgMDAwMDEgZg0KMDAwMDAwMTkwNCAwMDAwMSBmDQowMDAwMDAxOTA1IDAwMDAxIGYNCjAwMDAwMDE5MDYgMDAwMDEgZg0KMDAwMDAwMTkwNyAwMDAwMSBmDQowMDAwMDAxOTA4IDAwMDAxIGYNCjAwMDAwMDE5MDkgMDAwMDEgZg0KMDAwMDAwMTkxMCAwMDAwMSBmDQowMDAwMDAxOTE2IDAwMDAxIGYNCjAwMDA0Mjk1MTcgMDAwMDAgbg0KMDAwMDQyOTY1MSAwMDAwMCBuDQowMDAwNDI5Njc5IDAwMDAwIG4NCjAwMDA0Mjk4MjggMDAwMDAgbg0KMDAwMDQyOTg5OCAwMDAwMCBuDQowMDAwMDAxOTE3IDAwMDAxIGYNCjAwMDAwMDE5MTggMDAwMDEgZg0KMDAwMDAwMTkxOSAwMDAwMSBmDQowMDAwMDAxOTIwIDAwMDAxIGYNCjAwMDAwMDE5MjEgMDAwMDEgZg0KMDAwMDAwMTkyMiAwMDAwMSBmDQowMDAwMDAxOTIzIDAwMDAxIGYNCjAwMDAwMDE5MjQgMDAwMDEgZg0KMDAwMDAwMTkyNSAwMDAwMSBmDQowMDAwMDAxOTI2IDAwMDAxIGYNCjAwMDAwMDE5MjcgMDAwMDEgZg0KMDAwMDAwMTkyOCAwMDAwMSBmDQowMDAwMDAxOTI5IDAwMDAxIGYNCjAwMDAwMDE5MzAgMDAwMDEgZg0KMDAwMDAwMTkzMSAwMDAwMSBmDQowMDAwMDAxOTMyIDAwMDAxIGYNCjAwMDAwMDE5MzMgMDAwMDEgZg0KMDAwMDAwMTkzNCAwMDAwMSBmDQowMDAwMDAxOTM1IDAwMDAxIGYNCjAwMDAwMDE5MzYgMDAwMDEgZg0KMDAwMDAwMTkzNyAwMDAwMSBmDQowMDAwMDAxOTM4IDAwMDAxIGYNCjAwMDAwMDE5MzkgMDAwMDEgZg0KMDAwMDAwMTk0MCAwMDAwMSBmDQowMDAwMDAxOTQxIDAwMDAxIGYNCjAwMDAwMDE5NDIgMDAwMDEgZg0KMDAwMDAwMTk0MyAwMDAwMSBmDQowMDAwMDAxOTQ0IDAwMDAxIGYNCjAwMDAwMDE5NDUgMDAwMDEgZg0KMDAwMDAwMTk0NiAwMDAwMSBmDQowMDAwMDAxOTQ3IDAwMDAxIGYNCjAwMDAwMDE5NDggMDAwMDEgZg0KMDAwMDAwMTk0OSAwMDAwMSBmDQowMDAwMDAxOTUwIDAwMDAxIGYNCjAwMDAwMDE5NTEgMDAwMDEgZg0KMDAwMDAwMTk1MiAwMDAwMSBmDQowMDAwMDAxOTUzIDAwMDAxIGYNCjAwMDAwMDE5NTQgMDAwMDEgZg0KMDAwMDAwMTk1NSAwMDAwMSBmDQowMDAwMDAxOTU2IDAwMDAxIGYNCjAwMDAwMDE5NTcgMDAwMDEgZg0KMDAwMDAwMTk1OCAwMDAwMSBmDQowMDAwMDAxOTU5IDAwMDAxIGYNCjAwMDAwMDE5NjAgMDAwMDEgZg0KMDAwMDAwMTk2MSAwMDAwMSBmDQowMDAwMDAxOTYyIDAwMDAxIGYNCjAwMDAwMDE5NjMgMDAwMDEgZg0KMDAwMDAwMTk2NCAwMDAwMSBmDQowMDAwMDAxOTY1IDAwMDAxIGYNCjAwMDAwMDE5NjYgMDAwMDEgZg0KMDAwMDAwMTk2NyAwMDAwMSBmDQowMDAwMDAxOTY4IDAwMDAxIGYNCjAwMDAwMDE5NjkgMDAwMDEgZg0KMDAwMDAwMTk3MCAwMDAwMSBmDQowMDAwMDAxOTcxIDAwMDAxIGYNCjAwMDAwMDE5NzIgMDAwMDEgZg0KMDAwMDAwMTk3MyAwMDAwMSBmDQowMDAwMDAxOTc0IDAwMDAxIGYNCjAwMDAwMDE5NzUgMDAwMDEgZg0KMDAwMDAwMTk3NiAwMDAwMSBmDQowMDAwMDAxOTc3IDAwMDAxIGYNCjAwMDAwMDE5NzggMDAwMDEgZg0KMDAwMDAwMTk3OSAwMDAwMSBmDQowMDAwMDAxOTgwIDAwMDAxIGYNCjAwMDAwMDE5ODEgMDAwMDEgZg0KMDAwMDAwMTk4MiAwMDAwMSBmDQowMDAwMDAxOTgzIDAwMDAxIGYNCjAwMDAwMDE5ODQgMDAwMDEgZg0KMDAwMDAwMTk4NSAwMDAwMSBmDQowMDAwMDAxOTg2IDAwMDAxIGYNCjAwMDAwMDE5ODcgMDAwMDEgZg0KMDAwMDAwMjEyNiAwMDAwMSBmDQowMDAwNDMwMDk1IDAwMDAwIG4NCjAwMDA0MzAxMTggMDAwMDAgbg0KMDAwMDQzMTU2MyAwMDAwMCBuDQowMDAwNDMxNjc3IDAwMDAwIG4NCjAwMDA0MzE3MDAgMDAwMDAgbg0KMDAwMDQzMjkyMiAwMDAwMCBuDQowMDAwNDMzMDM2IDAwMDAwIG4NCjAwMDA0MzMwNTggMDAwMDAgbg0KMDAwMDQzMzkwNyAwMDAwMCBuDQowMDAwNDMzOTI4IDAwMDAwIG4NCjAwMDA0MzQyNDcgMDAwMDAgbg0KMDAwMDQzNDM2MSAwMDAwMCBuDQowMDAwNDM0NDc1IDAwMDAwIG4NCjAwMDA0MzQ0OTggMDAwMDAgbg0KMDAwMDQzNjQyOCAwMDAwMCBuDQowMDAwNDM2NDQ5IDAwMDAwIG4NCjAwMDA0MzY3NzkgMDAwMDAgbg0KMDAwMDQzNjg5MyAwMDAwMCBuDQowMDAwNDM3MDA3IDAwMDAwIG4NCjAwMDA0MzcwMzAgMDAwMDAgbg0KMDAwMDQzOTA0OSAwMDAwMCBuDQowMDAwNDM5MTYzIDAwMDAwIG4NCjAwMDA0MzkxODUgMDAwMDAgbg0KMDAwMDQzOTg2MCAwMDAwMCBuDQowMDAwNDM5ODgxIDAwMDAwIG4NCjAwMDA0NDAxOTEgMDAwMDAgbg0KMDAwMDQ0MDMwNSAwMDAwMCBuDQowMDAwNDQwNDE5IDAwMDAwIG4NCjAwMDA0NDA0NDEgMDAwMDAgbg0KMDAwMDQ0MTIzNCAwMDAwMCBuDQowMDAwNDQxMzQ4IDAwMDAwIG4NCjAwMDA0NDEzNzEgMDAwMDAgbg0KMDAwMDQ0MzE4NiAwMDAwMCBuDQowMDAwNDQzMjA3IDAwMDAwIG4NCjAwMDA0NDM1MjMgMDAwMDAgbg0KMDAwMDQ0MzYzNyAwMDAwMCBuDQowMDAwNDQzNzUxIDAwMDAwIG4NCjAwMDA0NDM3NzQgMDAwMDAgbg0KMDAwMDQ0NTI1NyAwMDAwMCBuDQowMDAwNDQ1Mjc4IDAwMDAwIG4NCjAwMDA0NDU1OTIgMDAwMDAgbg0KMDAwMDQ0NTcwNiAwMDAwMCBuDQowMDAwNDQ1ODIwIDAwMDAwIG4NCjAwMDA0NDU4NDIgMDAwMDAgbg0KMDAwMDQ0NjY4NCAwMDAwMCBuDQowMDAwNDQ2NzA1IDAwMDAwIG4NCjAwMDA0NDcwMTEgMDAwMDAgbg0KMDAwMDQ0NzEyNSAwMDAwMCBuDQowMDAwNDQ3MjM5IDAwMDAwIG4NCjAwMDA0NDcyNjIgMDAwMDAgbg0KMDAwMDQ0ODk4OCAwMDAwMCBuDQowMDAwNDQ5MDA5IDAwMDAwIG4NCjAwMDA0NDkzMzMgMDAwMDAgbg0KMDAwMDQ0OTQ0NyAwMDAwMCBuDQowMDAwNDQ5NTYxIDAwMDAwIG4NCjAwMDA0NDk1ODMgMDAwMDAgbg0KMDAwMDQ1MDE0MCAwMDAwMCBuDQowMDAwNDUwMTYxIDAwMDAwIG4NCjAwMDA0NTA0NjcgMDAwMDAgbg0KMDAwMDQ1MDU4MSAwMDAwMCBuDQowMDAwNDUwNjk1IDAwMDAwIG4NCjAwMDA0NTA3MTggMDAwMDAgbg0KMDAwMDQ1MTg4OSAwMDAwMCBuDQowMDAwNDUxOTExIDAwMDAwIG4NCjAwMDA0NTIyNDkgMDAwMDAgbg0KMDAwMDQ1MjM2MyAwMDAwMCBuDQowMDAwNDUyNDc3IDAwMDAwIG4NCjAwMDA0NTI0OTkgMDAwMDAgbg0KMDAwMDQ1MzI0MSAwMDAwMCBuDQowMDAwNDUzMjYyIDAwMDAwIG4NCjAwMDA0NTM1NjggMDAwMDAgbg0KMDAwMDQ1MzY4MiAwMDAwMCBuDQowMDAwNDUzNzk2IDAwMDAwIG4NCjAwMDA0NTM4MTggMDAwMDAgbg0KMDAwMDQ1Mzk4MCAwMDAwMCBuDQowMDAwNDU0MDk0IDAwMDAwIG4NCjAwMDA0NTQxMTcgMDAwMDAgbg0KMDAwMDQ1NTYyNCAwMDAwMCBuDQowMDAwNDU1NzM4IDAwMDAwIG4NCjAwMDA0NTU3NjEgMDAwMDAgbg0KMDAwMDQ1Njk4NSAwMDAwMCBuDQowMDAwNDU3MDA2IDAwMDAwIG4NCjAwMDA0NTczMDkgMDAwMDAgbg0KMDAwMDQ1NzQyMyAwMDAwMCBuDQowMDAwNDU3NTM3IDAwMDAwIG4NCjAwMDA0NTc1NjAgMDAwMDAgbg0KMDAwMDQ1OTg0OSAwMDAwMCBuDQowMDAwNDU5ODcwIDAwMDAwIG4NCjAwMDA0NjAxOTggMDAwMDAgbg0KMDAwMDQ2MDMxMiAwMDAwMCBuDQowMDAwNDYwNDI2IDAwMDAwIG4NCjAwMDA0NjA0NDggMDAwMDAgbg0KMDAwMDQ2MTM5MiAwMDAwMCBuDQowMDAwNDYxNDEzIDAwMDAwIG4NCjAwMDA0NjE3MzEgMDAwMDAgbg0KMDAwMDQ2MTg0NSAwMDAwMCBuDQowMDAwNDYxOTU5IDAwMDAwIG4NCjAwMDA0NjE5ODIgMDAwMDAgbg0KMDAwMDQ2MzA1OCAwMDAwMCBuDQowMDAwNDYzMDc5IDAwMDAwIG4NCjAwMDA0NjMzOTQgMDAwMDAgbg0KMDAwMDQ2MzUwOCAwMDAwMCBuDQowMDAwNDYzNjIyIDAwMDAwIG4NCjAwMDA0NjM2NDUgMDAwMDAgbg0KMDAwMDQ2NDcwNyAwMDAwMCBuDQowMDAwNDY0NzI4IDAwMDAwIG4NCjAwMDA0NjUwNDYgMDAwMDAgbg0KMDAwMDQ2NTE2MCAwMDAwMCBuDQowMDAwNDY1MTgyIDAwMDAwIG4NCjAwMDA0NjYxMzQgMDAwMDAgbg0KMDAwMDQ2NjE1NSAwMDAwMCBuDQowMDAwNDY2NDYwIDAwMDAwIG4NCjAwMDA0NjY1NzQgMDAwMDAgbg0KMDAwMDQ2NjY4OCAwMDAwMCBuDQowMDAwNDY2NzEwIDAwMDAwIG4NCjAwMDA0Njc3MjQgMDAwMDAgbg0KMDAwMDQ2NzgzOCAwMDAwMCBuDQowMDAwNDY3ODYwIDAwMDAwIG4NCjAwMDA0NjgwMjAgMDAwMDAgbg0KMDAwMDQ2ODEzNCAwMDAwMCBuDQowMDAwNDY4MTU2IDAwMDAwIG4NCjAwMDA0NjkxNjcgMDAwMDAgbg0KMDAwMDQ2OTI4MSAwMDAwMCBuDQowMDAwNDY5MzA0IDAwMDAwIG4NCjAwMDA0NzA1NzEgMDAwMDAgbg0KMDAwMDQ3MDU5MiAwMDAwMCBuDQowMDAwNDcwOTE2IDAwMDAwIG4NCjAwMDA0NzEwMzAgMDAwMDAgbg0KMDAwMDQ3MTE0NCAwMDAwMCBuDQowMDAwNDcxMTY3IDAwMDAwIG4NCjAwMDA0NzQyOTMgMDAwMDAgbg0KMDAwMDQ3NDMxNCAwMDAwMCBuDQowMDAwNDc0NjA4IDAwMDAwIG4NCjAwMDA0NzQ3MjIgMDAwMDAgbg0KMDAwMDQ3NDgzNiAwMDAwMCBuDQowMDAwNDc0ODU4IDAwMDAwIG4NCjAwMDA0NzUzMjEgMDAwMDAgbg0KMDAwMDQ3NTM0NSAwMDAwMCBuDQowMDAwMDAyMTI3IDAwMDAxIGYNCjAwMDAwMDAwMDAgMDAwMDEgZg0KMDAwMDQ5Njc3MCAwMDAwMCBuDQowMDAwNDk2NzkyIDAwMDAwIG4NCjAwMDA0OTcxMDMgMDAwMDAgbg0KMDAwMDQ5NzE1NCAwMDAwMCBuDQowMDAwNDk3MTc2IDAwMDAwIG4NCjAwMDA0OTc2OTYgMDAwMDAgbg0KMDAwMDQ5NzcxNyAwMDAwMCBuDQowMDAwNDk3ODg3IDAwMDAwIG4NCnRyYWlsZXINCjw8L1NpemUgMjEzNi9Sb290IDEgMCBSL0luZm8gMyAwIFIvSURbPGM1MWNmOTUyM2RhOTlmNGI5Nzk2ZWQyMWRmZjg1ZjBmPjwzMDgxZGUxZjQzNmFlMjQwOGQyYTdhMzNjZjkxYmU0NT5dPj4NCnN0YXJ0eHJlZg0KNTEwNTc4DQolJUVPRg0K]]></data>
	</file>
	<file>
	  <filename>/icons/medical.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAItSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwc/APGEDgzKDAwMvA7ngAMNnhgCGuwwfGf4WAAQQyND7+xnUFCgxENlgR4ZbDwACCGTo//8MxgzUAowMZxkAAogFXdCB4SZJhiQwCAOxCIoYQABhGHqQ4QvD/v37iTJwwYIFDA8W7sIQBwggFmyKHRwcUPgNDQ0oNDwMDxzAahlAADER46LGxkYwJhYABBALLokHDx6AMTaXKSgogDEuABBATPjCy9HREYxhAMYHyeEDAAGE06Ugl9jb20Mi7+BBMA3j43MlCAAEEE5DExISwBic9hgZ8UYMOgAIICYGGgCAAGIhRlF9fT1JhgIEEFZD0b0JS7fo4qDUgS10AQIIw1B7Bh6GBkdfol3lAMym6AAggFgwSxp1isMUIIBoElEAAQQy9AGoHKQGgJrzACCAmEHkBoYPHhYM3MBAZ6e45P/J8L8BIIAYsNVRwEIbJ+5nkCFYRwEEECMWS8+vZ1A2CGAQwJD4wPAH6JsroHrIAVz04gAAAYQtojYAgwNHKf8AZOACfAaCAEAAYUP6wNoVw9tA14O8+B6I+QkZABBAuND98wyacAPfM+j/l2dgAxnqT4xmgADClU43LGB4i6hOGJ4zPGT4BcqjG4kxFCCAcCF/kMtArgS2CWDelidWM0AA4UPv7zPo/Ndn4PwPSyrEAoAAwofmQ8PxPKkaAQIIH4qHJmp9UjUCBBA+xE+utwECDAAQGb3pV/ObMwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/icons/parachute.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAANwSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcbJM8Ets5dBSt2YgVzw7OZZhl3Tixl+ff9SABBAzED+Cs+8yQKUGAgCvCJSDGKKugy3jm/RAAggFiBfAZuBIJtvHd/M8PbxLYa3T26BxSTVjBmEZdQYdJ0jwYagA6g5CgABxIIu8fPbZ6A3ShjY3l5mKHAWYzCw5GJwACr+8O0Pw4XHnxk2XNjLsKBlFYOsZRiDVXgxVlcDBBAoTP+nzTwDN3BLbzqDj+xbhglhMgwCXCxYNT1485MhYPpdhldcWgy+xTNR5GalmzAABBATssDxVb0MNsIvGRYkKOA0EOw/EXaGA8VqDGLfrjEcW9mLIQ8QQHBDP795xvDywnawgcQAkKUbMpUZHh9fxfDm8U0UOYAAgjvnwcUDDAaynMBw+05SrDuo8TBc2bucwSGhAS4GEEBwQ9k4eRmOP2ZgcJ/+jEFYVh3i+rfPGH4BwxnGf37rLDgFwH0HlP/y9iNQ7DmKRQABBDdU3cqXgVdYimFLXzqDsU8aOHk8uHCA4RgwnEGRAfIiKFXAIgYUXGtbohjULH1QXAkCAAHEhJ7O7OPrwTkDZIiCgQPYpSD2wwsHGaSgroQlO5A8uoEgABBATOgCIBdbhhWDkxbMYJC3Qa4GsWHJTlhWDauBIAAQQFjTDchgUE4CuQaUgy4DI+LL2+dgsbObZ+E1EAQAAghnYgTlliv7ljME+7gxMBhAktmLFw8ZHoBiHI+BIAAQQCyEkkxCQgKcfeHCBYZL95cQTGYAAUTQUJBBMHDnzh2i0i5AAOE1FJQmu6ajugwUxoQAQACBDH0ALOawFn/ohQUxBTXIPIAAYgaTFw54gApYbGUkqSX/3z+/GgACiBGpjioAFUAgDqwoxAYu710GLM36sJaIQDwBiCcCBBAs8U8EYkVo+XoBlNCxAVDCB6VTUKqCqkXGilBzGAACiAmL3g24DD2woAFUsS0AMg/iCwqAACLaUJDYw4sHP0CDCS8ACCBshl4EuuYBcsEL8jaotALlBSD+SMhQgABiwiG+4daxLXAOKByBeR/k/I3EpASAAMJl6AFQTQBLKsAy4APUlUQBgADCh95Htm76D8xB/2HNGWIBQADhQ/N5hCVBBp4nVSNAAOFD8dCGlz6pGgECCB/iJ9fbAAEGAAy5T65bL+CzAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/park.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAM6SURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcHLPyF++gYGZXMHBnLB3ZMHGBZmBjD8+PyxACCAQIbeT1+yX4ESA5ENnhnj+AAggJiAbIIGfv/0gWFleQKYxgeg5igABBATMS7Y1FrAcHn7ErD3iAEAAUTQ0MMLJjDcPLicIbhGk+Hjs1NgFxMCAAHERCiMdvaVMLhlKjPwirCDaZCLz6xdgNdQgADCaei7Jw/A3rUMk2EQkeUCi8EMXlWRyPDs2gWchgIEEBOuiFmYFcAgKPmXgVeYneHzm59g8Z/f/oBpNUthhhkxDjgjDiCAsBp6dfcGBk5eAYb3z5kZjq96zMDGxQwWZ+diYTi75RnDreNvGaQ0DRiOAMMbGwAIIKyGmgQnMJgEJTD8+/OFwT5BAWwYDIC8LyzDCTbUNa8Bq6EAAYTVUFBEbGhMYfApVoOHJwyALABZdGrVFJwRBhBATNhiHBQRkmo8DA8vfGB4cAE13G4eewMWB8njijCAAGJCjyBQOGm7+DMwsxswXN77CqwZ3aVntzxnkDVIAKvbPRkzCAACiAWZw8knwAAqWECGT/AzYDD2lQS7FISf3/oCtkDBQAAcpiC1fjUbsHofIICwhunuSQ0M758+BMb8E4Y3Tw0YzCMnMPz6/pdBz6eB4fF1BYa3T74DXdgITsvYAEAAgUqp/123/6MkepCXtF0CwAUEyEUgUKbKyABTB/IJKNlxAOV0XFHLA5A6gADCMBRfliWmeAQZChBAIO8/AGkgBIgxEGrOA4AAYobmIA85AwsGIRkFikv+P79+NgAEECNSHVUAKmBBHHzBASoKN7cWYpMCxRoo304ECCBY7E8EYkVoxF24snsDzhoAlDKAwAGqFhkrQs1hAAggbElqw9U92A1dBSyggRUbKG8exBcUAAGE3VAsLgW5/uqejR+gwYQXAAQQNkMvAl3zADlPg7y9uRVsFqgu+UjIUIAAwlXybzizbgF6DgOll43EpASAAMKF/AWl5UGZ4j+wTQBKCu+BWJ5YzQABhA+9r9h//7+kpv5/WHOGWAAQQPjQfJBrgfR5UjUCBBA+FA9teOmTqhEggPAhfnK9DRBgADYAQPt03disAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/picnic.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJqSURBVHjaYmKAgHwgvg/E/ynA96HmMAAEECOYwcUygaHcjIFRR4SBXPD/yhsGhs5TDAzf/hQABBAzkL+CocZCgBIDwa4T42JgUBNkYDjwWAMggJiAfAVKDYQbDDFHASCAmBhoAAACiCaGAgQQTQwFCCCaGAoQQDQxFCCAWLCmt/pjxJvQaIWRvgECiAVrsljrB7Gg+AADQ5g6A6O5JMLSk88ZGFbdZGDsdcBpD0AAwQ39f/8jA8P8KxCOAj8DQ7g6A8ODTygGggHI0q7TDP9ffWNg+PoboSdRh4FRkR/MBAggUDb9zwh02X+QApDB+x8zMJwCugaUQ0AaoQpRAEgdSB7mAEdZsDpGblaG/8GbGAACCO5SkADIFf9BikGKgF5kMJOEsNHB1bcQi4GuAxnOCLMACgACiAVrHgbi/1POo3gJJTJBakDhiiN7AwQQ7iQFcgE2r8Ms1haGxAMWABBA8DClFgCFKUAA0STxAwQQyNAH4ARPDVdCzHkAEEDMYN6p5x6gAhY9Fskq+X//awAIIEakOqoAlOrAAY0njP9vuQtM8FexST0A4glAPBEggGBhOhGIFaERdwGcFbEZCMogK2+CmA5QtchYEWoOA0AAYYuoDQynXmB3JijtfvuzAMg6iC8oAAIIh6GYLgW7/tSLD9BgwgsAAgiboReBrnmAnLD/IwqOBCD+SMhQgADClU43gAsWGACF4+vvwHKQYSMxKQEggHAZegAWBOCksvXeB6griQIAAYQPvWeY7vKfQYHvP6w5QywACCB8aD6DKCfIwPOkagQIIHwoHtrw0idVI0AA4UP85HobIMAAd2W4921S0DQAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/scenic.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJtSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwc7NOMG/WZRB1oCDgVzw+MIPho21rxl+fv1fABBAzED+iuBOMQFKDAQBfgkWBkktdoarO79qAAQQE5CvQKmBMAA1RwEggJgYaAAAAogmhgIEEAsy5+OLPwyfgBjNOwyv7vxi2D/1PYbm8H5xrIYCBBCKocBAZji+8COcX7xPDkz//PKPge+3MkNdXR1cLiIiAqdLAQIIxVBZfXYGhnh+rAr5+PgYLCwsiPI+QAChGPr44k8UlyKzgYHAoKCggKK51+kRgwzQIejBABBAREdUfX09w////8H4/PnzDPz8/DjVAgQQ0YY2NDQw7Dl2gmHtzj0MYpJSDAkJCTjVAgQQSUmKlYUViFkYuDg58aoDCCCiDQW5TF9NmcHP2YFhw7q1DAsWLMCpFiCAWIg1dOHChWBMDAAIIBRDrYDJySqen+IcBRBANMmmAAFEE0MBAghk6ANQAUsNADXnAUAAgQpphjtHvnmAClhQQUtpyf/3N0MDQAAxItVRBaACFrkgwQbOrvnEcGDaB2xSD4B4AhBPBAggWJhOBGJFaJ11AehyrAb+AJZW0PLAAaoWGStCzWEACCBsEbXhztHvWA3d0fkWVLGBUv1BfEEBEEDYDcXiUpDY3aPfP0CDCS8ACCBshl4EuuYBqLRH9ja05AeVIh8JGQoQQLjS6QZQLYBcrn56+fcAkLmRmJQAEEC4DD0ACwJQUjm39vMHqCuJAgABhA+9T1km9V9UmfU/rDlDLAAIIHxoPp84M8jA86RqBAggfCge2vDSJ1UjQADhbR6R622AAAMA+P/IqnIAo18AAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/shadow.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAADQAAAAdCAYAAADl208VAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAPlSURBVHja3JjbThNRFIY7x870KC1UDiIQYjQioCbe+QAm3vmg3pn4GuKVAcKFFGpooZR22jn7/2WPASGlY2eoocmf3Zl29ppv1mGvPVIYhpmH9JEzD+yjjvpRkqTEDS7NVfkQpUI+L9mOk+jcpWJxNFDSINVKRbFtO4swz0FaVtelIAgmDzNZzmCecDAYeKkDffr4Qdrb21dc1zUcxykCZAaqwvuEUhKKAhYCH+pKo4rCpMa2nj+TepalyZJUgJVZjPM4PQMVIC3BHA5wrzbGk9Q8RJh+v6+rilLCQ1vIhOEiTlcgA1L4vBIyNfQObFjQqZpWvni+r/tB8AiHi3h61AzE/EmyshLGhc6hOnSkpgFjGIbue15FkeUlwuA0wbSUYNrQIeY+1HS9neg69P7dW9k0TQMQczDwFOOyyBk94TXvVhiEt60mCdNstgz5EmYZMPMYi2KtkxKGcUSYXYPZ+bGbTAgQ5rjxy8Tkj6FVhhnGUoowbdi4ATOszJOWbVQzGWtMDgtbDYcrEKFyd3UhE8LUYe8Q4X3GcxHMxEDry0tcGE18nUeoDWEgU5Tle4eZpDmV4BkVE+dRyRaAvSpgctOE+ScgtjIozSoWzYKuacyVNRiKwkyeJkzskCPMt53vGrzC6sU2htVsFoZYqlOFYUXLZrMjYeICSS/WVlT8vxxetjFPoGoKqz+6pJC9mYOR68wRuumxYDJxKhF7M9fzzMDzajDEDqCK00nC8EYDzMeueYD5CdPA8TFg2uPAxALCPkZGaOls+yE2mDK9O2ZHHkY3LHQtCsLLMPHYMUM92CHACehOkatd5I07DkwsIDylDCan0S67WnEzxTvammif4uK/fdzoQNx4eCW8OPiEwfcLqKMoygV2s71ioeBsbb7yP3/5OvaLjziLn48nZQGqgZh2uENk/gigW8NH5EGPbQrGFsYOrw1vJi5PefAIoWxT1z1d1316BYq3nsSpcuyky+Vy1nPdGn5b59YA1xtXPBSFFRtHS+RBE2oh/y7QhQ8sy/Kw9b5hq9vrhWurK2GtVgvjeGQSD2WqlQr3OezZKmJLEIXbHxButOCFc3iwBaAm1PF9v1/I55kHI18g1E9a6b71+ds7juMQgBu1mthGy1GOCI8MQ4tSVbUzsG0LeXAnyDTey0kIF8KX8OTnMJbFtVEb34AOoF2AHCC8Go7rdt683nbuE2bsHIJ3FBSEAneg3B4IIHqlw7DCyKp3rqhqH+Xd3d7aDCbJg1SBxJubLLrpWRw/Ze5gJMyZSPj/AiRODimsZLKiGAg3htgRq5cfBB2UVosgGxsvhyD7P+tTfxX8W4ABAISGgj+nOjXDAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/spa.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALISURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwc/JMGFDJgODgzoD2eDATQaGgOkMDB+/MxQABBDI0Pv7ixgUKDEQ2WDHPoYHAAEEMvT//5kIiQdvGBgatgDpt0CbDRgYCpxJM5gxnYEBIICYkAU+fGNgMGgBMtTEGQo6tRgW3ORmKFhJuosBAogFmXPhMQODgho3w4IFkLBwcBBgEBQ8xjAhnDRDAQKICV3gw4c/YAy25MIXBmAkkgwAAgjFpaDIUmD/yWBgcJZBQYEDbOiEMNyawT4TZmAQ4EIVBwggjIiCxSIoohzUgJpEsBsIilBQ+IMMXZAAZMsiIgoggLAaSgwwaGZguPgEwvbXZ2DYkIUwFCCAmEgxaMMFiAtBABQsoPAG4QQroK96EeoAAogkQ0FhqFgNTMebgWyoK0E5MWEBEFsi1AEEEAt6WB64hdtQUDjLA8OwEZg57IHhfaAYmDlWQTIJyLUwABBALKS4FBwp8RAaFIEgF4MyzIRMVHUAAYRiKCh7HryF3+BGNP75GswkBRBAqN4HekehChIJIC8Rin1QuQBLSsgAIIBQImrBMQhNyEAQABk4YS92OYAAwlpK4Urw2DIAulpQOgUIIJBLH4BiHR4ZIiREnAhmTgSZBxBAzNBE7WGhSJqBuEr+n38YGgACiBGpjioAWQ7i4Mu2oHAsXIU9NEDSQDwRIIAYsUieX5/JYIAtskBpEpQ6gPWQA5B7EJfFAAGELZtuAOVxbACUHYEGLsBnIAgABBDRhoLENl5k+AANJrwAIICwGXoR6JoHoMID2dsFkHAElpwMHwkZChBAuEqpDbCMAM6+wDz+8C3DASBzIzEpASCAcCF/YGkEyhT/gW0CUOvjPRDLE6sZIIDwoff3Wxn+68uADc0nRSNAAOFD80GuBSUxUjUCBBA+FA9teOmTqhEggPAhfnK9DRBgAAx/0ziiRTEzAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/sski.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAK1SURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcHLPyF++gYGZXMHBnLB3ZMHGBZmBjD8+PyxACCAQIbeT1+yX4ESA5ENnhnj+AAggJiAbKINPLxgAsP3Tx9wykPNUQAIICZiXXFm7QKGza2FDPXGggzPrl3AqxYggFiINfT75w8MwLBn4OQTYJDSMsCrFiCAiDIU5OXdkxoY/KonMCgREVQAAUSU98Gu0zRgWFWRyHAPGBmEAEAAMZESu77V/QybWgsYVpYn4FUHEEAkGQpybcGmC/AgwQUAAghvmL578gCY7hwYbBIKGO6dOgg2FBQU4Z0L8FoOEEAohl7ZvQEcZs+uX4DnrjCgAaBIAoEjwHQKsgAWzrgAQACxIMfwc6BhoNj1q5kAT5sg17nmNYAte/f0ATidgkDF/vsMQjIKWA0FCCAW5BgGaUYPwxlA7+u4BDBIahrADQMBXAaCAEAA4Q1TUCIv3ITIPbCggSUrkCOwBQNAAJEU+yZBCQxX92wAhysomEBhjA0ABBColPrfdfs/WaVSu4MCQ+WBByhiZaqMDAABxERJUQcKc2yFC0AAgQx9cJeIrIcNgAp25MIFas4DgABiBpFXd2/wkDOwwBujxJb8f379bAAIIEakOgqUqsGm4gtjUEENKlexAFDggmJuIkAAwcJ0IhArQiPuAihn4SsCgcABqhYZK0LNYQAIIGwRtQGUbLCBVcDSCVixgTL+QXxBARBA2A3F4lKQ66/u2fgBGkx4AUAAYTP0ItA1D5CTCsjbm1vBZoEK0o+EDAUIIFzpdMOZdYjiDRSO758+BKWXjcSkBIAAwoX8BaXlQTntP7BNAEoK74FYnljNAAGED70Hlkj/JTX1/8OaM8QCgADCh+aDXAukz5OqESCA8OZCaMNLn1SNAAGED/GT622AAAMAauz3jARpB6sAAAAASUVORK5CYII=]]></data>
	</file>
	<file>
	  <filename>/icons/swim.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAALaSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcHLPyF++gYGZXMHBnLB3ZMHGBZmBjD8+PyxACCAQIbeT1+yX4ESA5ENnhnj+AAggECG/u+6/Z+BWqBMlZEBIICYGGgAAAKIJoYCBBBNDAUIIKyGPrt2geHdkwdkGwoQQFgNPbNuAUOHoyI40EHJ5MzaBXC53ZMawOIgDIptbAAggLAa6lczgQGUIir232fQdglgOLxwAkO7gwJOQ9ABQACx4JMUklFg+PHJAMx+//QhKA0yGAfFM7jm1oPFBKUVsOoDCCC86RTk1d2TGzHECzaeZ5DSMsCZTgECCKuhIG+uKk8Auw4ZALMzg5QmxDDXvAaG98DINAlOwDAUIIAwDAVFyqoFkxgYuHgYGM4dhgjKqTIwGNkxcNy+xBBf2QUOBgYjWwYGEUkGYx5OhvDOBSiGAgQQiqFgA7esZmBIqYGoKAliYPj2hYGhaSHYAIZvnxk4GpMZOJU0Gd6nQ4Nl10oGX0UFBtuEArihAAEEN/TK7g0Mi5bNRhgIAm+eQ2iQgXjEOLrzGSoX7WLg5BMAGwoQQPDY//HpA4Nr4wzUUJeVwYwJbGJZNQzfgfpBhoIAQADRpJQCCCBQ4n9AbKImpjwFmQcQQMwg8uruDR5yBhbgxE5pyf/n188GgABiRKqjQNEHNhVfcBxeMIFhc2shNilQCTQBiCcCBBAjFsnzcdPWG+i4BmBIgCIDVAYA6yFQ3XMQl8UAAYStQNlwdc8GrIpBuQxo4AJ8BoIAQABhc6k+MDteaDr3AUUQnI6zAj9Ag+gjPkMBAgibSy8CXfMAVFAje3tzKzjHJBAyEAQAAghXdbIBVFAjl1bAwgWUXjYSkxIAAggX8heUlgdliv/ANgEoKbwHYnliNQMEED70Hljy/5fU1P8Pa84QCwACCB+aD3ItKImRqhEggPCheGjDS59UjQABhA/xk+ttgAADACkbCspoCZ6eAAAAAElFTkSuQmCC]]></data>
	</file>
	<file>
	  <filename>/icons/Thumbs.db</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAEAAAAgAAAAgAAAD+////AAAAAAAAAAB/AAAA///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9////CQAAABUAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAARAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEgAAABoAAAATAAAAFAAAABYAAAAnAAAAFwAAABgAAAAZAAAAGwAAACEAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACIAAAAqAAAAIwAAACQAAAAlAAAAJgAAACgAAAA8AAAAKQAAACsAAAAzAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADQAAAA7AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAPQAAAEQAAABMAAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARQAAAFAAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABNAAAAYQAAAE4AAABPAAAAUQAAAFsAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABcAAAAZwAAAF0AAABeAAAAXwAAAGAAAABiAAAA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qVJVZOc3ds//2QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAK8EAAD/2P/gABBKRklGAAEBAQBgAGAAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/AABEIAB8AFQMBIgACEQEDEQH/xAAxADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUDAAC7BAAAAAAAADIANQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAIA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAMAAMUEAAAAAAAAMwA1AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAgD///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsAwAAsQQAAAAAAAA0ADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH8DAADDBAAAAAAAAIEAAACCAAAAgwAAAIQAAACFAAAAhgAAAIgAAAD+////iQAAAIoAAACMAAAAlwAAAI0AAACOAAAAjwAAAJAAAACRAAAAkgAAAJMAAACUAAAAlQAAAJYAAACYAAAA/v///5kAAAD+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDbt9G8A2H7ONl8V/HPgzS/GuuXOgwa/ql/qlhDeXl5cTRLK/72YEhd8mAucIuABgAVxPhfxJ8Orbxn4F0L4gfAnwL4Ri8d6Pba54evrW1tLxHguP8AURzj7Onluxwvf5iBgZzXT+Of+UdNt/2I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]]></data>
	</file>
	<file>
	  <filename>/icons/wski.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABUAAAAfCAYAAAAIjIbwAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJUSURBVHjaYmCAgHwgvg/E/ynA96HmMAAEECOIwcHLPyF++gYGZXMHBnLB3ZMHGBZmBjD8+PyxACCAQIbeT1+yX4ESA5ENnhnj+AAggECG/u+6/Z+BWqBMlZEBIICYsNkGkgDhGdHkuR4ggJgYaAAAAogmhgIEEAu6gJSmAQMw4sBsTl4BsgwFCCAMQ98/ecCwe1IDQY1+1RMYpLQMsMoBBBCGoYIyCgyueQ0M94ARdnjBBAZQ+sUGQOpwAYAAwjCUk08AnAlA+My6BQzfP31g0HENIMn7AAGEN6JsEgoYjgBdSyoACCC8hpoEJTA8u36B4dm1CyQZChBAeA0FBYUt0LWHF5LmWoAAIphOjYGuPbtuIcM7YKpAB1d2b8CaUgACCCOiQF7d1FqAIgYsxYAFhQODoDRqjIOCBpS00AFAAOFMUsQCbKUbQADhTFKUAIAAAoXpA1DJRA0ANecBQAAxg8iruzd4yBlYMAjhySXElvx/fv1sAAggRqQ6ChQ7YFPxFdqgrLu5tRCbFCh5gGJtIkAAwZLURCBWhNZZF0BJBRsAZVloEnKAqkXGilBzGAACCFs63XB1D3ZDV5UngCq2BUDmQXxBARBA2A3F4lKQ66/u2fgBGkx4AUAAYTP0ItA1D5DzO8jbmyEZIgGIPxIyFCCAcGXTDaBiDwZA4fj+6UNQetlITEoACCBcyF9QWh5Udf8HVi2gpPAeiOWJ1QwQQPjQ+4r99/9Laur/hzVniAUAAYQPzQe5FkifJ1UjQADhQ/HQhpc+qRoBAggf4ifX2wABBgB+QsUKmrWcuQAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/icon.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIyBBCiRsYW5nWydhZGRyZXNzJ10gPSAnQWRkcmVzcyc7CiRsYW5nWydhZGRfaWNvbiddID0gJ0FkZCBJY29uJzsKJGxhbmdbJ2FkZF9tYXAnXSA9ICdBZGQgTWFwJzsKJGxhbmdbJ2FkZF9tYXBfcG9pbnQnXSA9ICdBZGQgTWFwIFBvaW50JzsKJGxhbmdbJ2FkZF9wb2ludF9mb3JfbWFwJ10gPSAnQWRkIFBvaW50IHRvIE1hcCAmcXVvdDslcyZxdW90Oyc7CiRsYW5nWydhbmNob3JfeCddID0gJ0FuY2hvciBYIFBpeGVsIExvY2F0aW9uJzsKJGxhbmdbJ2FuY2hvcl95J10gPSAnQW5jaG9yIFkgUGl4ZWwgTG9jYXRpb24nOwokbGFuZ1snYXNrX2RlbGV0ZV9pY29uJ10gPSAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHJlbW92ZSB0aGlzIGljb24gZnJvbSB0aGUgbGlzdCAobm8gZmlsZXMgd2lsbCBiZSBkZWxldGVkKSc7CiRsYW5nWydhc2tfcmVzZXRfaWNvbnMnXSA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gcmVtb3ZlIGFsbCBpY29ucywgYW5kIHJlc2V0IHRvIGZhY3RvcnkgZGVmYXVsdHM/JzsKCiMgQwokbGFuZ1snY2FuY2VsJ10gPSAnQ2FuY2VsJzsKJGxhbmdbJ2NlbnRlcl9sYXQnXSA9ICdDZW50ZXIgTGF0aXR1ZGUnOwokbGFuZ1snY2VudGVyX2xvbiddID0gJ0NlbnRlciBMb25naXR1ZGUnOwokbGFuZ1snY2xpY2snXSA9ICdDbGljayc7CiRsYW5nWydjb21iaW5lX3BvaW50cyddID0gJ0NvbWJpbmUgaW5kaXZpZHVhbCBtYXJrZXJzIHRoYXQgYXJlIHdpdGhpbiByYW5nZSc7CiRsYW5nWydjb21iaW5lZF9wb2ludHNfaWNvbiddID0gJ0ljb24gdG8gdXNlIGZvciBjb21iaW5lZCBwb2ludHMnOwokbGFuZ1snY29udHJvbHMnXSA9ICdDb250cm9scyc7CiRsYW5nWydjb250cm9sc19zaXplJ10gPSAnU2l6ZSBvZiBDb250cm9scyc7CgojIEQKJGxhbmdbJ2RlZmF1bHQnXSA9ICdEZWZhdWx0JzsKJGxhbmdbJ2RlZmF1bHRfdGVtcGxhdGVzJ10gPSAnRGVmYXVsdCBUZW1wbGF0ZXMnOwokbGFuZ1snZGVsZXRlJ10gPSAnRGVsZXRlJzsKJGxhbmdbJ2RlbGV0ZV9pY29uJ10gPSAnRGVsZXRlIHRoaXMgaWNvbic7CiRsYW5nWydkZWxldGVfbWFwJ10gPSAnRGVsZXRlIE1hcCc7CiRsYW5nWydkZWxldGVfbWFwX3BvaW50J10gPSAnRGVsZXRlIE1hcCBQb2ludCc7CiRsYW5nWydkZXNjcmlwdGlvbiddID0gJ0Rlc2NyaXB0aW9uJzsKJGxhbmdbJ2RpcmVjdGlvbnMnXSA9ICdTaG93IERpcmVjdGlvbnMnOwoKIyBFCiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydlZGl0X2ljb24nXSA9ICdFZGl0IHRoaXMgaWNvbic7CiRsYW5nWydlZGl0X21hcCddID0gJ0VkaXQgTWFwJzsKJGxhbmdbJ2VkaXRfbWFwX3BvaW50J10gPSAnRWRpdCBNYXAgUG9pbnQnOwokbGFuZ1snZWRpdF9tYXBfcG9pbnRzJ10gPSAnRWRpdCBNYXAgUG9pbnRzJzsKJGxhbmdbJ2VkaXRfcG9pbnRzX2Zvcl9tYXAnXSA9ICdFZGl0IFBvaW50cyBmb3IgTWFwICZxdW90OyVzJnF1b3Q7JzsKJGxhbmdbJ2Vycm9yX2Nhbm5vdGRlbGV0ZSddID0gJ1RoaXMgaXRlbSBjYW5ub3QgYmUgcmVtb3ZlZCc7CiRsYW5nWydlcnJvcl9pbnZhbGlkcGFyYW1zJ10gPSAnT25lIG9yIG1vcmUgcGFyYW1ldGVycyBpcyBtaXNzaW5nIG9yIGludmFsaWQnOwokbGFuZ1snZXJyb3JfbmFtZWV4aXN0cyddID0gJ0FuIGl0ZW0gYnkgdGhhdCBuYW1lIGFscmVhZHkgZXhpc3RzJzsKJGxhbmdbJ2Vycm9yX25vYXBpa2V5J10gPSAnVGhlIEdvb2dsZSBBUEkgS2V5IGlzIGVtcHR5JzsKJGxhbmdbJ2Vycm9yX25vYXBpa2V5MiddID0gJ1RoZSBHb29nbGUgQVBJIEtleSBpcyBlbXB0eS4gIFRoaXMgbW9kdWxlIHdpbGwgbm90IGZ1bmN0aW9uIHByb3Blcmx5IHVudGlsIGl0IGlzIHNldCB3aXRoIGEgdmFsaWQgdmFsdWUgYXMgc3VwcGxpZWQgYnkgZ29vZ2xlLic7CiRsYW5nWydlcnJvcl9ub3Rmb3VuZCddID0gJ1RoZSByZXF1ZXN0ZWQgaXRlbSBjb3VsZCBub3QgYmUgZm91bmQnOwokbGFuZ1snZXJyb3JfcGVybWlzc2lvbmRlbmllZCddID0gJ1lvdSBkb25cJ3QgaGF2ZSB0aGUgYXBwcm9wcmlhdGUgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRoaXMgYWN0aW9uJzsKCiMgRiAKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ0NhbGd1eXMgR29vZ2xlIE1hcHMnOwoKIyBHCiRsYW5nWydnb29nbGVfYXBpX2tleSddID0gJ0dvb2dsZSBBUEkgS2V5JzsKCiMgSAokbGFuZ1snaGVscCddID0gPDw8RU9UCjxoMz5XaGF0IGRvZXMgdGhpcyBkbzwvaDM+CjxwPlRoaXMgaXMgYSByZXBsYWNlbWVudCAoaW4gcHJvZ3Jlc3MpIGZvciB0c3cncyBnb29nbGVtYXBzIG1vZHVsZSB0aGF0IGFsbG93cyB1c2VycyB0byBlYXNpbHkgY3JlYXRlIGdvb2dsZSBtYXBzLCB3aGlsc3QgYWxsb3dpbmcgYXRvbWljIHBlcm1pc3Npb25zIHNvIHRoYXQgb25seSBhdXRob3JpemVkIHVzZXJzIGhhdmUgY2VydGFpbiBhYmlsaXRpZXMuICBJdCBhbHNvIGFsbG93cyBmb3IgZHluYW1pYyBnZW9sb2NhdGluZyAod2l0aCBjYWNoaW5nKSBzbyB0aGF0IHlvdSBjYW4gc3BlY2lmeSBhIGxvY2F0aW9uIGJ5IGFkZHJlc3MgaW5zdGVhZCBvZiBieSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlLjwvcD4KPHA+VGhpcyBtb2R1bGUgYWxsb3dzIG11bHRpcGxlIG1hcHMgdG8gYmUgZGlzcGxheWVkIG9uIGEgc2luZ2xlIHBhZ2UsIGFuZCBtdWx0aXBsZSAnbWFya2Vycycgb3IgcG9pbnRzIG9uIGVhY2ggbWFwLCBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIGEgd2F5IHNpbWlsYXIgdG8gZnJhcHBlci48L3A+CjxoMz5GZWF0dXJlczo8L2gzPgo8dWw+CiAgPGxpPlN0YXRpYyBtYXAgY3JlYXRpb24gdXNpbmcgYSBmdWxsIGFkbWluIGludGVyZmFjZSBmb3IgbWFuYWdpbmcgbWFwcyBhbmQgbWFya2VycyB3aXRoaW4gYSBtYXAuPC9saT4KICA8bGk+RmxleGlibGUgbWFya2VyIGljb24gbWFuYWdlbWVudC48L2xpPgogIDxsaT5UaGUgYWJpbGl0eSB0byBkeW5hbWljYWxseSBhZGQgbWFya2VycyBnaXZlbiBkYXRhIGZyb20gYW4gb3V0c2lkZSBwb2ludCA8ZW0+KHNlZSB7Y2dnbV9hZGRfZHlucG9pbnR9KTwvZW0+CiAgPGxpPlRoZSBhYmlsaXR5IHRvIGdyb3VwIG1hcmtlcnMgdGhhdCBhcmUgd2l0aGluIGEgbGF0L2xvbmcgcmFkaXVzIHRvIGEgc2luZ2xlIG1hcmtlciB3aXRoIGEgc3BlY2lhbCBpY29uLjwvbGk+CiAgPGxpPkR5bmFtaWMgaWNvbiBjb250cm9sIGZvciBlYWNoIG1hcmtlciBwb2ludC48L2xpPgo8L3VsPgo8aDM+SG93IERvIEkgVXNlIEl0PzwvaDM+Cjx1bD4KPGxpPkluc3RhbGwgdGhlIG1vZHVsZSB2aWEgdGhlIG5vcm1hbCBtZXRob2RzPC9saT4KPGxpPlNldHVwIHlvdXIgdXNlcnMgYW5kIGdyb3VwcyB3aXRoIHRoZSBhcHByb3ByaWF0ZSBwZXJtaXNzaW9uczoKICA8dWw+CiAgICA8bGk+VGhlICdNYW5hZ2UgTWFwcycgUGVybWlzc2lvbiBhbGxvd3MgYWRtaW5pc3RyYXRvcnMgdG8gYWRkL2VkaXQgYW5kIGRlbGV0ZSBtYXBzPC9saT4KICAgIDxsaT5UaGUgJ01hbmFnZSBNYXAgTG9jYXRpb25zJyBwZXJtaXNzaW9uIGFsbG93cyBhZG1pbmlzdHJhdG9ycyB0byBhZGQvZWRpdC9kZWxldGUgcG9pbnRzIHdpdGhpbiBhIG1hcDwvbGk+CiAgPC91bD4KPC9saT4KPGxpPkNyZWF0ZSBhIG1hcC4gIEdpdmUgdGhlIG1hcCBhIG5hbWUsIGFuZCBhZGp1c3QgdGhlIHBhcmFtdGVycyBvZiB0aGUgcGFydGljdWxhciBtYXAgdG8gbWVldCB5b3VyIGxpa2luZzwvcD4KPGxpPk1hcmsgb25lIG9mIHlvdXIgbWFwcyBhcyBkZWZhdWx0LCBieSBjbGlja2luZyBvbiB0aGUgcmVkICdYJyBiZXNpZGUgYSBwYXJ0aWN1bGFyIG1hcC4gIFRoaXMgaXMgdXNlZnVsIGlmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSAnbWFwJyBwYXJhbWV0ZXIgb24gdGhlIHRhZy48L2xpPgo8bGk+Q3JlYXRlIG9uZSBvciBtb3JlIHBvaW50cyB3aXRoaW4gdGhlIG1hcCwgZWl0aGVyIGJ5IHNwZWNpZnlpbmcgYSBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlLCBvciB3aXRoIGFuIGFkZHJlc3MuPC9saT4KPGxpPkFkZCB0aGUge0NHR29vZ2xlTWFwc30gdGFnIGluc2lkZSB0aGUgY29udGVudCBibG9jayBvZiBhIHBhZ2UsIG9yIGluc2lkZSBhIHBhZ2UgdGVtcGxhdGUuICBUaGVuIHlvdSdyZSBmaW5pc2hlZC48L2xpPgo8L3VsPgo8YnIvPgo8aDM+QWRkaW5nIFBvaW50cyB0byBhIE1hcCBEeW5hbWljYWxseTwvaDM+CjxwPllvdSBjYW4gdXNlIHNtYXJ0eSB0byBhZGQgcG9pbnRzIHRvIGEgbW9kdWxlIGR5bmFtaWNhbGx5LiAgWW91IGNhbiB1c2UgdGhpcyBmdW5jdGlvbmFsaXR5IHRvIGJ1aWxkIGEgZnJhcHByIGxpa2UgbWFwIHdpdGggbXVsdGlwbGUgcG9pbnRzIHRoYXQgYXJlIGNvbnRyb2xsZWQgZHluYW1pY2FsbHkgZnJvbSBhbm90aGVyIG1vZHVsZSAobGlrZSBDb21wYW55RGlyZWN0b3J5IG9yIEZyb250RW5kVXNlcnMpLjwvcD4KPGg0PlRoZSB7Y2dnbV9hZGRfZHlucG9pbnR9IFNtYXJ0eSBQbHVnaW48L2g0Pgo8cD5UaGlzIHNtYXJ0eSBwbHVnaW4gPGVtPihvbmx5IGF2YWlsYWJsZSB3aGVuIENHR29vZ2xlTWFwcyBpcyBpbnN0YWxsZWQpPC9lbT4gYWxsb3dzIGFkZGluZyBhIHBvaW50IGR5bmFtaWNhbGx5IHRvIGEgc3BlY2lmaWVkIG1hcC48L3A+CjxoNT5QYXJhbWV0ZXJzOjxoNT4KICA8dWw+IAo8bGk+PHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPiAtIG1hcCA6IFRoZSBJRCBvZiB0aGUgbWFwIHRvIGFkZCB0aGUgcG9pbnQgdG88L2xpPgo8bGk+PHN0cm9uZz5yZXF1aXJlZDwvc3Ryb25nPiAtIG5hbWUgOiBUaGUgbmFtZSBvZiB0aGUgcG9pbnQgdG8gYWRkPC9saT4KPGxpPjxlbT5vcHRpb25hbDwvZW0+IC0gZGVzY3JpcHRpb24gOiBUaGUgSFRNTCBjb250ZW50IHRvIHNob3cgaW4gdGhlIHBvcHVwIGJ1YmJsZTwvbGk+CjxsaT48ZW0+b3B0aW9uYWw8L2VtPiAtIGFkZHJlc3MgOiBUaGUgYWRkcmVzcyBvZiB0aGUgbG9jYXRpb24geW91IGFyZSBhZGRpbmcuPC9saT4KPGxpPjxlbT5vcHRpb25hbDwvZW0+IC0gbGF0IDogVGhlIGxhdGl0dWRlIG9mIHRoZSBsb2NhdGlvbiB5b3UgYXJlIGFkZGluZy48L2xpPgo8bGk+PGVtPm9wdGlvbmFsPC9lbT4gLSBsb25nIDogVGhlIGxvbmdpdHVkZSBvZiB0aGUgbG9jYXRpb24geW91IGFyZSBhZGRpbmcuPC9saT4KPGxpPjxlbT5vcHRpb25hbDwvZW0+IC0gaWNvbiA6IFRoZSBuYW1lIG9mIGFuIGljb24gdG8gdXNlIGZvciB0aGlzIHBvaW50LjwvbGk+CjxsaT48ZW0+b3B0aW9uYWw8L2VtPiAtIHRvb2x0aXAgOiBUaXRsZSB0ZXh0IHRvIGRpc3BsYXkgd2hlbiBob3ZlcmluZyBhIHBvaW50PC9saT4KPGxpPjxlbT5vcHRpb25hbDwvZW0+IC0gc2lkZWJhcl9jbGFzcyA6IE9wdGlvbmFsIGNsYXNzIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBzaWRlYmFyIGxpc3QgaXRlbSBmb3IgdGhpcyBwb2ludC48L2xpPgogIDwvdWw+Cjxici8+CjxwPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRWl0aGVyIHRoZSBsYXQgYW5kIGxvbmcgcGFyYW1ldGVycyBtdXN0IGJlIHNwZWNpZmllZCwgb3IgdGhlIGFkZHJlc3MuPC9wPgo8cD48c3Ryb25nPk5vdGU6PC9zdHJvbmc+IFRoaXMgcGx1Z2luIHJldHVybnMgbm8gZGlyZWN0IG91dHB1dCwgYW5kIGlmIGVycm9ycyBvY2N1ciwgaXQgd2lsbCBzaWxlbnRseSBmYWlsLiAgU3VjY2VzcyBtZWFucyB0aGF0IHRoZSBwb2ludCB3aWxsIHNob3cgdXAgb24geW91ciBnb29nbGUgbWFwLjwvcD4KPC91bD4KRU9UOwokbGFuZ1snaGVpZ2h0J10gPSAnSGVpZ2h0JzsKJGxhbmdbJ2hlbHBfYW5jaG9yX2xvY2F0aW9uJ10gPSAnPHN0cm9uZz5Ob3RlOjwvc3Ryb25nPiZuYnNwO0FuY2hvciBsb2NhdGlvbnMgc3BlY2lmeSB0aGUgcGl4ZWwgbG9jYXRpb24gKHJlbGF0aXZlIHRvIHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhpZSBpbWFnZSkgd2hlcmUgdGhlIGljb24gc2hvdWxkIGJlIGFuY2hvcmVkIHRvIHRoZSBtYXJrZXIuICBJZiBubyB2YWx1ZSBpcyBzcGVjaWZpZWQsIHRoZSBjZW50ZXIgb2YgdGhlIGljb24gd2lsbCBiZSB1c2VkJzsKJGxhbmdbJ2hlbHBfaWNvbl91cmwnXSA9ICdTcGVjaWZ5IHRoZSBVUkwgdG8gdGhlIHByZS11cGxvYWRlZCBQTkcgaW1hZ2UuICBUaGlzIGltYWdlIHNob3VsZCBub3QgYmUgbGFyZ2VyIHRoYW4gMzJ4MzIsIGFuZCBzaG91bGQgc3VwcG9ydCB0cmFuc3BhcmVuY3kuICBUaGUgVVJMIGNhbiB1c3VhbGx5IGJlIHNwZWNpZmllZCByZWxhdGl2ZSB0byB0aGUgcm9vdCBvZiB5b3VyIGluc3RhbGxhdGlvbic7CiRsYW5nWydoZWxwX3BhcmFtX2RlZmVyJ10gPSAnU3BlY2lmeSB0aGF0IGFsbCBqYXZhc2NyaXB0IHRhZ3Mgc2hvdWxkIGhhdmUgdGhlIGRlZmVyIGF0dHJpYnV0ZSBzZXQuICBUaGlzIG1heSBiZSB1c2VmdWwgZm9yIHByb2JsZW1zIHdpdGggSUU3IGFuZCBJRTggd2hlcmUgSW50ZXJuZXQgZXhwbG9yZXIgdHJpZXMgdG8gZXhlY3V0ZSBqYXZhc2NyaXB0IG9uIGFuIGluY29tcGxldGVseSByZW5kZXJlZCBwYWdlLic7CiRsYW5nWydoZWxwX3BhcmFtX21hcCddID0gJ1NwZWNpZnkgdGhlIElEIG9yIG1hcCBuYW1lIHRvIHVzZSBmb3IgbGF5aW5nIG91dCB0aGUgZ29vZ2xlIG1hcC4gIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IG1hcCAoaWYgYW55KSBpcyB1c2VkLic7CiRsYW5nWydoZWxwX3BhcmFtX21hcHRlbXBsYXRlJ10gPSAnU3BlY2lmeSB0aGUgbmFtZSBvZiBhbiBleGlzdGluZywgbm9uIGRlZmF1bHQgbWFwIHRlbXBsYXRlIHRvIHVzZSBmb3IgdGhpcyBvdXRwdXQuICBJZiB0aGlzIHBhcmFtZXRlciBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgY3VycmVudCBkZWZhdWx0IG1hcCB0ZW1wbGF0ZSB3aWxsIGJlIHVzZWQnOwokbGFuZ1snaHlicmlkJ10gPSAnSHlicmlkJzsKCiMgSQokbGFuZ1snaWQnXSA9ICdJZCc7CiRsYW5nWydpY29uJ10gPSAnSWNvbic7CiRsYW5nWydpbmZvX2FkZHJlc3NfbGF0bG9uZyddID0gJzxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gRW50ZXIgPHN0cm9uZz5laXRoZXI8L3N0cm9uZz4gYW4gYWRkcmVzcyA8c3Ryb25nPm9yPC9zdHJvbmc+IGEgbGF0dGl0dWRlIGFuZCBsb25naXR1ZGUuICBJZiBib3RoIHRoZSBhZGRyZXNzIGFuZCBsYXRpdHVkZSBhbmQgbG9uZ2l0dWRlIGFyZSBzcGVjaWZpZWQsIGxhdGl0dWRlIGFuZCBsb25naXR1ZGUgd2lsbCBiZSBnaXZlbiBwcmVmZXJlbmNlLic7CiRsYW5nWydpbmZvX2FuY2hvcl94J10gPSAnSW5mbyBXaW5kb3cgQW5jaG9yIFggUGl4ZWwgTG9jYXRpb24nOwokbGFuZ1snaW5mb19hbmNob3JfeSddID0gJ0luZm8gV2luZG93IEFuY2hvciBZIFBpeGVsIExvY2F0aW9uJzsKJGxhbmdbJ2luZm9fY29tYmluZV9wb2ludHMnXSA9ICdJZiBzZWxlY3RlZCwgcG9pbnRzIHRoYXQgYXJlIHdpdGhpbiBhIHNwZWNpZmllZCByYWRpdXMgb2YgZWFjaCBvdGhlciB3aWxsIGJlIGNvbWJpbmVkIGludG8gb25lIG1hcmtlciBvbiB0aGUgbWFwLiAgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIHVzZWZ1bCBpZiBtdWx0aXBsZSBlbnRyaWVzIGV4aXN0IGF0IHRoZSBzYW1lIChvciBhbG1vc3QgdGhlIHNhbWUpIGNvb3JkaW5hdGVzLCB0byBlYXNlIGluIHNlbGVjdGlvbi4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBpbmRlcGVuZGFudCBvZiB0aGUgbWFwIHpvb20gbGV2ZWwuJzsKJGxhbmdbJ2luZm9fcG9pbnRfY29tYmluZV9mdWRnZSddID0gJ1RoZSBzbWFsbGVyIHRoZSByYWRpdXMgbWVhbnMgdGhhdCBmZXdlciBwb2ludHMgd2lsbCBiZSBjb21iaW5lZCBpbnRvIG9uZSBtYXAgbWFya2VyLiAgTmVnYXRpdmUgdmFsdWVzIGFyZSBpbnZhbGlkLic7CiRsYW5nWydpbmZvX3N5c2RmbHRfbWFwX3RlbXBsYXRlJ10gPSAnU3lzdGVtIERlZmF1bHQgbWFwIHRlbXBsYXRlJzsKJGxhbmdbJ2luZm9fc3lzZGZsdF90ZW1wbGF0ZSddID0gJ1RoaXMgZm9ybSBwcm92aWRlcyB0aGUgYWJpbGl0eSB0byBzcGVjaWZ5IHRoZSBjb250ZW50IHRoYXQgd2lsbCBiZSBkaXNwbGF5ZWQgd2hlbiB5b3UgY3JlYXRlIGEgbmV3IHRlbXBsYXRlIG9mIHRoaXMgdHlwZS4gIEVkaXRpbmcgdGhlIGNvbnRlbnQgaW4gdGhpcyBmb3JtIHdpbGwgaGF2ZSBubyBpbW1lZGlhdGUgZWZmZWN0IG9uIHlvdXIgd2Vic2l0ZSc7CiRsYW5nWydpbmZvX3dpbmRvdyddID0gJ1Nob3cgSW5mbyBXaW5kb3cnOwokbGFuZ1snaW5mb190cmlnZ2VyJ10gPSAnSW5mbyBXaW5kb3cgVHJpZ2dlcic7CgojIEwKJGxhbmdbJ2xhcmdlJ10gPSAnTGFyZ2UnOwokbGFuZ1snbGF0aXR1ZGUnXSA9ICdMYXRpdHVkZSc7CiRsYW5nWydsYXRsb25nJ10gPSAnTGF0aXR1ZGUgLyBMb25naXR1ZGUnOwokbGFuZ1snbG9jYXRpb24nXSA9ICdMb2NhdGlvbic7CiRsYW5nWydsb25naXR1ZGUnXSA9ICdMb25naXR1ZGUnOwoKIyBNCiRsYW5nWydtYWtlX2RlZmF1bHQnXSA9ICdNYWtlIHRoaXMgaWNvbiB0aGUgZGVmYXVsdCBpY29uJzsKJGxhbmdbJ21hcmtlcl9pY29ucyddID0gJ01hcmtlciBJY29ucyc7CiRsYW5nWydtYXAnXSA9ICdNYXAnOwokbGFuZ1snbWFwcyddID0gJ01hcHMnOwokbGFuZ1snbWFwdGVtcGxhdGVfYWRkZWRpdCddID0gJ0FkZC9FZGl0IE1hcCBUZW1wbGF0ZSc7CiRsYW5nWydtYXBfbmFtZSddID0gJ01hcCBOYW1lJzsKJGxhbmdbJ21hcF90ZW1wbGF0ZXMnXSA9ICdNYXAgVGVtcGxhdGVzJzsKJGxhbmdbJ21vZGRlc2NyaXB0aW9uJ10gPSAnQSBzaW1wbGUgbW9kdWxlIGZvciBjcmVhdGluZyBnb29nbGUgbWFwcyc7CiRsYW5nWydtb3VzZW92ZXInXSA9ICdNb3VzZU92ZXInOwokbGFuZ1snbXNnX2RlZmF1bHRfaWNvbl91Y2hhbmdlZCddID0gJ1RoZSBkZWZhdWx0IGljb24gaGFzIGJlZW4gY2hhbmdlZCc7CiRsYW5nWydtc2dfaWNvbnNfcmVzZXQnXSA9ICdJY29ucyBoYXZlIGJlZW4gcmVzZXQgdG8gZmFjdG9yeSBkZWZhdWx0IHNldHRpbmdzJzsKJGxhbmdbJ21zZ19pY29uX3JlbW92ZWQnXSA9ICdJY29uIHJlbW92ZWQgZnJvbSB0aGUgZGF0YWJhc2UuICBObyBmaWxlcyB3ZXJlIGRlbGV0ZWQnOwokbGFuZ1snbXNnX2ljb25fdXBkYXRlZCddID0gJ0ljb24gaW5mb3JtYXRpb24gY2hhbmdlZCc7CgojIE4KJGxhbmdbJ25hbWUnXSA9ICdOYW1lJzsKCiMgUAokbGFuZ1sncG9pbnRzJ10gPSAnUG9pbnRzJzsKJGxhbmdbJ3BvaW50X2NvbWJpbmVfZnVkZ2UnXSA9ICdTcGVjaWZ5IGEgcmFkaXVzIHRoYXQgc3BlY2lmaWVzIHdoaWNoIHBvaW50cyBzaG91bGQgYmUgY29tYmluZWQuJzsKJGxhbmdbJ3BvaW50X25hbWUnXSA9ICdQb2ludCBOYW1lJzsKJGxhbmdbJ3BvaW50X3R5cGUnXSA9ICdQb2ludCBUeXBlJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIENHR29vZ2xlTWFwcyBtb2R1bGUgaGFzIGJlZW4gaW5zdGFsbGVkJzs7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnVGhlIENHR29vZ2xlTWFwcyBtb2R1bGUgYW5kIGFsbCByZWxldmFudCBkYXRhIGhhcyBiZWVuIHJlbW92ZWQnOwokbGFuZ1sncHJlZmVyZW5jZXMnXSA9ICdQcmVmZXJlbmNlcyc7CgojIFIKJGxhbmdbJ3JlYWxseV91bmluc3RhbGwnXSA9ICdBcmUgeW91IHN1cmUgeW91IHJlYWxseSB3YW50IHRvIHJlbW92ZSB0aGlzIG1vZHVsZT8nOwokbGFuZ1sncmVzZXRfaWNvbnMnXSA9ICdSZXNldCBJY29ucyc7CgojIFMKJGxhbmdbJ3NhdGVsbGl0ZSddID0gJ1NhdGVsbGl0ZSc7CiRsYW5nWydzZXRfZGZsdF9tYXAnXSA9ICdTZXQgTWFwIEFzIERlZmF1bHQnOwokbGFuZ1snc2lkZWJhciddID0gJ1Nob3cgU2lkZWJhcic7CiRsYW5nWydzbWFsbCddID0gJ1NtYWxsJzsKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CgojIFQKJGxhbmdbJ3RleHQnXSA9ICdUZXh0JzsKJGxhbmdbJ3R5cGUnXSA9ICdUeXBlJzsKJGxhbmdbJ3R5cGVfY29udHJvbHMnXSA9ICdTaG93IFR5cGUgQ29udHJvbHMnOwoKIyBVCiRsYW5nWyd1cmwnXSA9ICdVUkwnOwoKIyBXCiRsYW5nWyd3aWR0aCddID0gJ1dpZHRoJzsKCiMgWgokbGFuZ1snem9vbSddID0gJ1pvb20gTGV2ZWwnOwokbGFuZ1snem9vbV9lbmNvbXBhc3MnXSA9ICdab29tIEVuY29tcGFzcyc7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/GoogleMapAPI-2.4/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/GoogleMapAPI-2.4/COPYING.lib</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CQkgIEdOVSBMRVNTRVIgR0VORVJBTCBQVUJMSUMgTElDRU5TRQoJCSAgICAgICBWZXJzaW9uIDIuMSwgRmVicnVhcnkgMTk5OQoKIENvcHlyaWdodCAoQykgMTk5MSwgMTk5OSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICAgICA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiBFdmVyeW9uZSBpcyBwZXJtaXR0ZWQgdG8gY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMKIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5naW5nIGl0IGlzIG5vdCBhbGxvd2VkLgoKW1RoaXMgaXMgdGhlIGZpcnN0IHJlbGVhc2VkIHZlcnNpb24gb2YgdGhlIExlc3NlciBHUEwuICBJdCBhbHNvIGNvdW50cwogYXMgdGhlIHN1Y2Nlc3NvciBvZiB0aGUgR05VIExpYnJhcnkgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiwgaGVuY2UKIHRoZSB2ZXJzaW9uIG51bWJlciAyLjEuXQoKCQkJICAgIFByZWFtYmxlCgogIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhcmUgZGVzaWduZWQgdG8gdGFrZSBhd2F5IHlvdXIKZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIGl0LiAgQnkgY29udHJhc3QsIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMKTGljZW5zZXMgYXJlIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZQpmcmVlIHNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuCgogIFRoaXMgbGljZW5zZSwgdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBhcHBsaWVzIHRvIHNvbWUKc3BlY2lhbGx5IGRlc2lnbmF0ZWQgc29mdHdhcmUgcGFja2FnZXMtLXR5cGljYWxseSBsaWJyYXJpZXMtLW9mIHRoZQpGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gYW5kIG90aGVyIGF1dGhvcnMgd2hvIGRlY2lkZSB0byB1c2UgaXQuICBZb3UKY2FuIHVzZSBpdCB0b28sIGJ1dCB3ZSBzdWdnZXN0IHlvdSBmaXJzdCB0aGluayBjYXJlZnVsbHkgYWJvdXQgd2hldGhlcgp0aGlzIGxpY2Vuc2Ugb3IgdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgdGhlIGJldHRlcgpzdHJhdGVneSB0byB1c2UgaW4gYW55IHBhcnRpY3VsYXIgY2FzZSwgYmFzZWQgb24gdGhlIGV4cGxhbmF0aW9ucyBiZWxvdy4KCiAgV2hlbiB3ZSBzcGVhayBvZiBmcmVlIHNvZnR3YXJlLCB3ZSBhcmUgcmVmZXJyaW5nIHRvIGZyZWVkb20gb2YgdXNlLApub3QgcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0CnlvdSBoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UKZm9yIHRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCk7IHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldAppdCBpZiB5b3Ugd2FudCBpdDsgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgYW5kIHVzZSBwaWVjZXMgb2YKaXQgaW4gbmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBhcmUgaW5mb3JtZWQgdGhhdCB5b3UgY2FuIGRvCnRoZXNlIHRoaW5ncy4KCiAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBtYWtlIHJlc3RyaWN0aW9ucyB0aGF0IGZvcmJpZApkaXN0cmlidXRvcnMgdG8gZGVueSB5b3UgdGhlc2UgcmlnaHRzIG9yIHRvIGFzayB5b3UgdG8gc3VycmVuZGVyIHRoZXNlCnJpZ2h0cy4gIFRoZXNlIHJlc3RyaWN0aW9ucyB0cmFuc2xhdGUgdG8gY2VydGFpbiByZXNwb25zaWJpbGl0aWVzIGZvcgp5b3UgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHRoZSBsaWJyYXJ5IG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIGxpYnJhcnksIHdoZXRoZXIgZ3JhdGlzCm9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0IHdlIGdhdmUKeW91LiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlIHNvdXJjZQpjb2RlLiAgSWYgeW91IGxpbmsgb3RoZXIgY29kZSB3aXRoIHRoZSBsaWJyYXJ5LCB5b3UgbXVzdCBwcm92aWRlCmNvbXBsZXRlIG9iamVjdCBmaWxlcyB0byB0aGUgcmVjaXBpZW50cywgc28gdGhhdCB0aGV5IGNhbiByZWxpbmsgdGhlbQp3aXRoIHRoZSBsaWJyYXJ5IGFmdGVyIG1ha2luZyBjaGFuZ2VzIHRvIHRoZSBsaWJyYXJ5IGFuZCByZWNvbXBpbGluZwppdC4gIEFuZCB5b3UgbXVzdCBzaG93IHRoZW0gdGhlc2UgdGVybXMgc28gdGhleSBrbm93IHRoZWlyIHJpZ2h0cy4KCiAgV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIGEgdHdvLXN0ZXAgbWV0aG9kOiAoMSkgd2UgY29weXJpZ2h0IHRoZQpsaWJyYXJ5LCBhbmQgKDIpIHdlIG9mZmVyIHlvdSB0aGlzIGxpY2Vuc2UsIHdoaWNoIGdpdmVzIHlvdSBsZWdhbApwZXJtaXNzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgbGlicmFyeS4KCiAgVG8gcHJvdGVjdCBlYWNoIGRpc3RyaWJ1dG9yLCB3ZSB3YW50IHRvIG1ha2UgaXQgdmVyeSBjbGVhciB0aGF0CnRoZXJlIGlzIG5vIHdhcnJhbnR5IGZvciB0aGUgZnJlZSBsaWJyYXJ5LiAgQWxzbywgaWYgdGhlIGxpYnJhcnkgaXMKbW9kaWZpZWQgYnkgc29tZW9uZSBlbHNlIGFuZCBwYXNzZWQgb24sIHRoZSByZWNpcGllbnRzIHNob3VsZCBrbm93CnRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90IHRoZSBvcmlnaW5hbCB2ZXJzaW9uLCBzbyB0aGF0IHRoZSBvcmlnaW5hbAphdXRob3IncyByZXB1dGF0aW9uIHdpbGwgbm90IGJlIGFmZmVjdGVkIGJ5IHByb2JsZW1zIHRoYXQgbWlnaHQgYmUKaW50cm9kdWNlZCBieSBvdGhlcnMuCgwKICBGaW5hbGx5LCBzb2Z0d2FyZSBwYXRlbnRzIHBvc2UgYSBjb25zdGFudCB0aHJlYXQgdG8gdGhlIGV4aXN0ZW5jZSBvZgphbnkgZnJlZSBwcm9ncmFtLiAgV2Ugd2lzaCB0byBtYWtlIHN1cmUgdGhhdCBhIGNvbXBhbnkgY2Fubm90CmVmZmVjdGl2ZWx5IHJlc3RyaWN0IHRoZSB1c2VycyBvZiBhIGZyZWUgcHJvZ3JhbSBieSBvYnRhaW5pbmcgYQpyZXN0cmljdGl2ZSBsaWNlbnNlIGZyb20gYSBwYXRlbnQgaG9sZGVyLiAgVGhlcmVmb3JlLCB3ZSBpbnNpc3QgdGhhdAphbnkgcGF0ZW50IGxpY2Vuc2Ugb2J0YWluZWQgZm9yIGEgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSBtdXN0IGJlCmNvbnNpc3RlbnQgd2l0aCB0aGUgZnVsbCBmcmVlZG9tIG9mIHVzZSBzcGVjaWZpZWQgaW4gdGhpcyBsaWNlbnNlLgoKICBNb3N0IEdOVSBzb2Z0d2FyZSwgaW5jbHVkaW5nIHNvbWUgbGlicmFyaWVzLCBpcyBjb3ZlcmVkIGJ5IHRoZQpvcmRpbmFyeSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIFRoaXMgbGljZW5zZSwgdGhlIEdOVSBMZXNzZXIKR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgYXBwbGllcyB0byBjZXJ0YWluIGRlc2lnbmF0ZWQgbGlicmFyaWVzLCBhbmQKaXMgcXVpdGUgZGlmZmVyZW50IGZyb20gdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBXZSB1c2UKdGhpcyBsaWNlbnNlIGZvciBjZXJ0YWluIGxpYnJhcmllcyBpbiBvcmRlciB0byBwZXJtaXQgbGlua2luZyB0aG9zZQpsaWJyYXJpZXMgaW50byBub24tZnJlZSBwcm9ncmFtcy4KCiAgV2hlbiBhIHByb2dyYW0gaXMgbGlua2VkIHdpdGggYSBsaWJyYXJ5LCB3aGV0aGVyIHN0YXRpY2FsbHkgb3IgdXNpbmcKYSBzaGFyZWQgbGlicmFyeSwgdGhlIGNvbWJpbmF0aW9uIG9mIHRoZSB0d28gaXMgbGVnYWxseSBzcGVha2luZyBhCmNvbWJpbmVkIHdvcmssIGEgZGVyaXZhdGl2ZSBvZiB0aGUgb3JpZ2luYWwgbGlicmFyeS4gIFRoZSBvcmRpbmFyeQpHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHRoZXJlZm9yZSBwZXJtaXRzIHN1Y2ggbGlua2luZyBvbmx5IGlmIHRoZQplbnRpcmUgY29tYmluYXRpb24gZml0cyBpdHMgY3JpdGVyaWEgb2YgZnJlZWRvbS4gIFRoZSBMZXNzZXIgR2VuZXJhbApQdWJsaWMgTGljZW5zZSBwZXJtaXRzIG1vcmUgbGF4IGNyaXRlcmlhIGZvciBsaW5raW5nIG90aGVyIGNvZGUgd2l0aAp0aGUgbGlicmFyeS4KCiAgV2UgY2FsbCB0aGlzIGxpY2Vuc2UgdGhlICJMZXNzZXIiIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYmVjYXVzZSBpdApkb2VzIExlc3MgdG8gcHJvdGVjdCB0aGUgdXNlcidzIGZyZWVkb20gdGhhbiB0aGUgb3JkaW5hcnkgR2VuZXJhbApQdWJsaWMgTGljZW5zZS4gIEl0IGFsc28gcHJvdmlkZXMgb3RoZXIgZnJlZSBzb2Z0d2FyZSBkZXZlbG9wZXJzIExlc3MKb2YgYW4gYWR2YW50YWdlIG92ZXIgY29tcGV0aW5nIG5vbi1mcmVlIHByb2dyYW1zLiAgVGhlc2UgZGlzYWR2YW50YWdlcwphcmUgdGhlIHJlYXNvbiB3ZSB1c2UgdGhlIG9yZGluYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1hbnkKbGlicmFyaWVzLiAgSG93ZXZlciwgdGhlIExlc3NlciBsaWNlbnNlIHByb3ZpZGVzIGFkdmFudGFnZXMgaW4gY2VydGFpbgpzcGVjaWFsIGNpcmN1bXN0YW5jZXMuCgogIEZvciBleGFtcGxlLCBvbiByYXJlIG9jY2FzaW9ucywgdGhlcmUgbWF5IGJlIGEgc3BlY2lhbCBuZWVkIHRvCmVuY291cmFnZSB0aGUgd2lkZXN0IHBvc3NpYmxlIHVzZSBvZiBhIGNlcnRhaW4gbGlicmFyeSwgc28gdGhhdCBpdCBiZWNvbWVzCmEgZGUtZmFjdG8gc3RhbmRhcmQuICBUbyBhY2hpZXZlIHRoaXMsIG5vbi1mcmVlIHByb2dyYW1zIG11c3QgYmUKYWxsb3dlZCB0byB1c2UgdGhlIGxpYnJhcnkuICBBIG1vcmUgZnJlcXVlbnQgY2FzZSBpcyB0aGF0IGEgZnJlZQpsaWJyYXJ5IGRvZXMgdGhlIHNhbWUgam9iIGFzIHdpZGVseSB1c2VkIG5vbi1mcmVlIGxpYnJhcmllcy4gIEluIHRoaXMKY2FzZSwgdGhlcmUgaXMgbGl0dGxlIHRvIGdhaW4gYnkgbGltaXRpbmcgdGhlIGZyZWUgbGlicmFyeSB0byBmcmVlCnNvZnR3YXJlIG9ubHksIHNvIHdlIHVzZSB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCgogIEluIG90aGVyIGNhc2VzLCBwZXJtaXNzaW9uIHRvIHVzZSBhIHBhcnRpY3VsYXIgbGlicmFyeSBpbiBub24tZnJlZQpwcm9ncmFtcyBlbmFibGVzIGEgZ3JlYXRlciBudW1iZXIgb2YgcGVvcGxlIHRvIHVzZSBhIGxhcmdlIGJvZHkgb2YKZnJlZSBzb2Z0d2FyZS4gIEZvciBleGFtcGxlLCBwZXJtaXNzaW9uIHRvIHVzZSB0aGUgR05VIEMgTGlicmFyeSBpbgpub24tZnJlZSBwcm9ncmFtcyBlbmFibGVzIG1hbnkgbW9yZSBwZW9wbGUgdG8gdXNlIHRoZSB3aG9sZSBHTlUKb3BlcmF0aW5nIHN5c3RlbSwgYXMgd2VsbCBhcyBpdHMgdmFyaWFudCwgdGhlIEdOVS9MaW51eCBvcGVyYXRpbmcKc3lzdGVtLgoKICBBbHRob3VnaCB0aGUgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgTGVzcyBwcm90ZWN0aXZlIG9mIHRoZQp1c2VycycgZnJlZWRvbSwgaXQgZG9lcyBlbnN1cmUgdGhhdCB0aGUgdXNlciBvZiBhIHByb2dyYW0gdGhhdCBpcwpsaW5rZWQgd2l0aCB0aGUgTGlicmFyeSBoYXMgdGhlIGZyZWVkb20gYW5kIHRoZSB3aGVyZXdpdGhhbCB0byBydW4KdGhhdCBwcm9ncmFtIHVzaW5nIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgTGlicmFyeS4KCiAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKbW9kaWZpY2F0aW9uIGZvbGxvdy4gIFBheSBjbG9zZSBhdHRlbnRpb24gdG8gdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBhCiJ3b3JrIGJhc2VkIG9uIHRoZSBsaWJyYXJ5IiBhbmQgYSAid29yayB0aGF0IHVzZXMgdGhlIGxpYnJhcnkiLiAgVGhlCmZvcm1lciBjb250YWlucyBjb2RlIGRlcml2ZWQgZnJvbSB0aGUgbGlicmFyeSwgd2hlcmVhcyB0aGUgbGF0dGVyIG11c3QKYmUgY29tYmluZWQgd2l0aCB0aGUgbGlicmFyeSBpbiBvcmRlciB0byBydW4uCgwKCQkgIEdOVSBMRVNTRVIgR0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIEFncmVlbWVudCBhcHBsaWVzIHRvIGFueSBzb2Z0d2FyZSBsaWJyYXJ5IG9yIG90aGVyCnByb2dyYW0gd2hpY2ggY29udGFpbnMgYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIG9yCm90aGVyIGF1dGhvcml6ZWQgcGFydHkgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YKdGhpcyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSAoYWxzbyBjYWxsZWQgInRoaXMgTGljZW5zZSIpLgpFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4KCiAgQSAibGlicmFyeSIgbWVhbnMgYSBjb2xsZWN0aW9uIG9mIHNvZnR3YXJlIGZ1bmN0aW9ucyBhbmQvb3IgZGF0YQpwcmVwYXJlZCBzbyBhcyB0byBiZSBjb252ZW5pZW50bHkgbGlua2VkIHdpdGggYXBwbGljYXRpb24gcHJvZ3JhbXMKKHdoaWNoIHVzZSBzb21lIG9mIHRob3NlIGZ1bmN0aW9ucyBhbmQgZGF0YSkgdG8gZm9ybSBleGVjdXRhYmxlcy4KCiAgVGhlICJMaWJyYXJ5IiwgYmVsb3csIHJlZmVycyB0byBhbnkgc3VjaCBzb2Z0d2FyZSBsaWJyYXJ5IG9yIHdvcmsKd2hpY2ggaGFzIGJlZW4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlc2UgdGVybXMuICBBICJ3b3JrIGJhc2VkIG9uIHRoZQpMaWJyYXJ5IiBtZWFucyBlaXRoZXIgdGhlIExpYnJhcnkgb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRlcgpjb3B5cmlnaHQgbGF3OiB0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIExpYnJhcnkgb3IgYQpwb3J0aW9uIG9mIGl0LCBlaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25zIGFuZC9vciB0cmFuc2xhdGVkCnN0cmFpZ2h0Zm9yd2FyZGx5IGludG8gYW5vdGhlciBsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJhbnNsYXRpb24gaXMKaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluIHRoZSB0ZXJtICJtb2RpZmljYXRpb24iLikKCiAgIlNvdXJjZSBjb2RlIiBmb3IgYSB3b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yayBmb3IKbWFraW5nIG1vZGlmaWNhdGlvbnMgdG8gaXQuICBGb3IgYSBsaWJyYXJ5LCBjb21wbGV0ZSBzb3VyY2UgY29kZSBtZWFucwphbGwgdGhlIHNvdXJjZSBjb2RlIGZvciBhbGwgbW9kdWxlcyBpdCBjb250YWlucywgcGx1cyBhbnkgYXNzb2NpYXRlZAppbnRlcmZhY2UgZGVmaW5pdGlvbiBmaWxlcywgcGx1cyB0aGUgc2NyaXB0cyB1c2VkIHRvIGNvbnRyb2wgY29tcGlsYXRpb24KYW5kIGluc3RhbGxhdGlvbiBvZiB0aGUgbGlicmFyeS4KCiAgQWN0aXZpdGllcyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBvZgpydW5uaW5nIGEgcHJvZ3JhbSB1c2luZyB0aGUgTGlicmFyeSBpcyBub3QgcmVzdHJpY3RlZCwgYW5kIG91dHB1dCBmcm9tCnN1Y2ggYSBwcm9ncmFtIGlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdvcmsgYmFzZWQKb24gdGhlIExpYnJhcnkgKGluZGVwZW5kZW50IG9mIHRoZSB1c2Ugb2YgdGhlIExpYnJhcnkgaW4gYSB0b29sIGZvcgp3cml0aW5nIGl0KS4gIFdoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0aGUgTGlicmFyeSBkb2VzCmFuZCB3aGF0IHRoZSBwcm9ncmFtIHRoYXQgdXNlcyB0aGUgTGlicmFyeSBkb2VzLgogIAogIDEuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIExpYnJhcnkncwpjb21wbGV0ZSBzb3VyY2UgY29kZSBhcyB5b3UgcmVjZWl2ZSBpdCwgaW4gYW55IG1lZGl1bSwgcHJvdmlkZWQgdGhhdAp5b3UgY29uc3BpY3VvdXNseSBhbmQgYXBwcm9wcmlhdGVseSBwdWJsaXNoIG9uIGVhY2ggY29weSBhbgphcHByb3ByaWF0ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCBkaXNjbGFpbWVyIG9mIHdhcnJhbnR5OyBrZWVwIGludGFjdAphbGwgdGhlIG5vdGljZXMgdGhhdCByZWZlciB0byB0aGlzIExpY2Vuc2UgYW5kIHRvIHRoZSBhYnNlbmNlIG9mIGFueQp3YXJyYW50eTsgYW5kIGRpc3RyaWJ1dGUgYSBjb3B5IG9mIHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIHRoZQpMaWJyYXJ5LgoKICBZb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LAphbmQgeW91IG1heSBhdCB5b3VyIG9wdGlvbiBvZmZlciB3YXJyYW50eSBwcm90ZWN0aW9uIGluIGV4Y2hhbmdlIGZvciBhCmZlZS4KDAogIDIuIFlvdSBtYXkgbW9kaWZ5IHlvdXIgY29weSBvciBjb3BpZXMgb2YgdGhlIExpYnJhcnkgb3IgYW55IHBvcnRpb24Kb2YgaXQsIHRodXMgZm9ybWluZyBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnksIGFuZCBjb3B5IGFuZApkaXN0cmlidXRlIHN1Y2ggbW9kaWZpY2F0aW9ucyBvciB3b3JrIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9uIDEKYWJvdmUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gbWVldCBhbGwgb2YgdGhlc2UgY29uZGl0aW9uczoKCiAgICBhKSBUaGUgbW9kaWZpZWQgd29yayBtdXN0IGl0c2VsZiBiZSBhIHNvZnR3YXJlIGxpYnJhcnkuCgogICAgYikgWW91IG11c3QgY2F1c2UgdGhlIGZpbGVzIG1vZGlmaWVkIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGMpIFlvdSBtdXN0IGNhdXNlIHRoZSB3aG9sZSBvZiB0aGUgd29yayB0byBiZSBsaWNlbnNlZCBhdCBubwogICAgY2hhcmdlIHRvIGFsbCB0aGlyZCBwYXJ0aWVzIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UuCgogICAgZCkgSWYgYSBmYWNpbGl0eSBpbiB0aGUgbW9kaWZpZWQgTGlicmFyeSByZWZlcnMgdG8gYSBmdW5jdGlvbiBvciBhCiAgICB0YWJsZSBvZiBkYXRhIHRvIGJlIHN1cHBsaWVkIGJ5IGFuIGFwcGxpY2F0aW9uIHByb2dyYW0gdGhhdCB1c2VzCiAgICB0aGUgZmFjaWxpdHksIG90aGVyIHRoYW4gYXMgYW4gYXJndW1lbnQgcGFzc2VkIHdoZW4gdGhlIGZhY2lsaXR5CiAgICBpcyBpbnZva2VkLCB0aGVuIHlvdSBtdXN0IG1ha2UgYSBnb29kIGZhaXRoIGVmZm9ydCB0byBlbnN1cmUgdGhhdCwKICAgIGluIHRoZSBldmVudCBhbiBhcHBsaWNhdGlvbiBkb2VzIG5vdCBzdXBwbHkgc3VjaCBmdW5jdGlvbiBvcgogICAgdGFibGUsIHRoZSBmYWNpbGl0eSBzdGlsbCBvcGVyYXRlcywgYW5kIHBlcmZvcm1zIHdoYXRldmVyIHBhcnQgb2YKICAgIGl0cyBwdXJwb3NlIHJlbWFpbnMgbWVhbmluZ2Z1bC4KCiAgICAoRm9yIGV4YW1wbGUsIGEgZnVuY3Rpb24gaW4gYSBsaWJyYXJ5IHRvIGNvbXB1dGUgc3F1YXJlIHJvb3RzIGhhcwogICAgYSBwdXJwb3NlIHRoYXQgaXMgZW50aXJlbHkgd2VsbC1kZWZpbmVkIGluZGVwZW5kZW50IG9mIHRoZQogICAgYXBwbGljYXRpb24uICBUaGVyZWZvcmUsIFN1YnNlY3Rpb24gMmQgcmVxdWlyZXMgdGhhdCBhbnkKICAgIGFwcGxpY2F0aW9uLXN1cHBsaWVkIGZ1bmN0aW9uIG9yIHRhYmxlIHVzZWQgYnkgdGhpcyBmdW5jdGlvbiBtdXN0CiAgICBiZSBvcHRpb25hbDogaWYgdGhlIGFwcGxpY2F0aW9uIGRvZXMgbm90IHN1cHBseSBpdCwgdGhlIHNxdWFyZQogICAgcm9vdCBmdW5jdGlvbiBtdXN0IHN0aWxsIGNvbXB1dGUgc3F1YXJlIHJvb3RzLikKClRoZXNlIHJlcXVpcmVtZW50cyBhcHBseSB0byB0aGUgbW9kaWZpZWQgd29yayBhcyBhIHdob2xlLiAgSWYKaWRlbnRpZmlhYmxlIHNlY3Rpb25zIG9mIHRoYXQgd29yayBhcmUgbm90IGRlcml2ZWQgZnJvbSB0aGUgTGlicmFyeSwKYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCnRoZW1zZWx2ZXMsIHRoZW4gdGhpcyBMaWNlbnNlLCBhbmQgaXRzIHRlcm1zLCBkbyBub3QgYXBwbHkgdG8gdGhvc2UKc2VjdGlvbnMgd2hlbiB5b3UgZGlzdHJpYnV0ZSB0aGVtIGFzIHNlcGFyYXRlIHdvcmtzLiAgQnV0IHdoZW4geW91CmRpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZApvbiB0aGUgTGlicmFyeSwgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd2hvbGUgbXVzdCBiZSBvbiB0aGUgdGVybXMgb2YKdGhpcyBMaWNlbnNlLCB3aG9zZSBwZXJtaXNzaW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZCB0byB0aGUKZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlCml0LgoKVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0cyBvciBjb250ZXN0CnlvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJhdGhlciwgdGhlIGludGVudCBpcyB0bwpleGVyY2lzZSB0aGUgcmlnaHQgdG8gY29udHJvbCB0aGUgZGlzdHJpYnV0aW9uIG9mIGRlcml2YXRpdmUgb3IKY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUgTGlicmFyeS4KCkluIGFkZGl0aW9uLCBtZXJlIGFnZ3JlZ2F0aW9uIG9mIGFub3RoZXIgd29yayBub3QgYmFzZWQgb24gdGhlIExpYnJhcnkKd2l0aCB0aGUgTGlicmFyeSAob3Igd2l0aCBhIHdvcmsgYmFzZWQgb24gdGhlIExpYnJhcnkpIG9uIGEgdm9sdW1lIG9mCmEgc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCnRoZSBzY29wZSBvZiB0aGlzIExpY2Vuc2UuCgogIDMuIFlvdSBtYXkgb3B0IHRvIGFwcGx5IHRoZSB0ZXJtcyBvZiB0aGUgb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljCkxpY2Vuc2UgaW5zdGVhZCBvZiB0aGlzIExpY2Vuc2UgdG8gYSBnaXZlbiBjb3B5IG9mIHRoZSBMaWJyYXJ5LiAgVG8gZG8KdGhpcywgeW91IG11c3QgYWx0ZXIgYWxsIHRoZSBub3RpY2VzIHRoYXQgcmVmZXIgdG8gdGhpcyBMaWNlbnNlLCBzbwp0aGF0IHRoZXkgcmVmZXIgdG8gdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIsCmluc3RlYWQgb2YgdG8gdGhpcyBMaWNlbnNlLiAgKElmIGEgbmV3ZXIgdmVyc2lvbiB0aGFuIHZlcnNpb24gMiBvZiB0aGUKb3JkaW5hcnkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaGFzIGFwcGVhcmVkLCB0aGVuIHlvdSBjYW4gc3BlY2lmeQp0aGF0IHZlcnNpb24gaW5zdGVhZCBpZiB5b3Ugd2lzaC4pICBEbyBub3QgbWFrZSBhbnkgb3RoZXIgY2hhbmdlIGluCnRoZXNlIG5vdGljZXMuCgwKICBPbmNlIHRoaXMgY2hhbmdlIGlzIG1hZGUgaW4gYSBnaXZlbiBjb3B5LCBpdCBpcyBpcnJldmVyc2libGUgZm9yCnRoYXQgY29weSwgc28gdGhlIG9yZGluYXJ5IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFwcGxpZXMgdG8gYWxsCnN1YnNlcXVlbnQgY29waWVzIGFuZCBkZXJpdmF0aXZlIHdvcmtzIG1hZGUgZnJvbSB0aGF0IGNvcHkuCgogIFRoaXMgb3B0aW9uIGlzIHVzZWZ1bCB3aGVuIHlvdSB3aXNoIHRvIGNvcHkgcGFydCBvZiB0aGUgY29kZSBvZgp0aGUgTGlicmFyeSBpbnRvIGEgcHJvZ3JhbSB0aGF0IGlzIG5vdCBhIGxpYnJhcnkuCgogIDQuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSAob3IgYSBwb3J0aW9uIG9yCmRlcml2YXRpdmUgb2YgaXQsIHVuZGVyIFNlY3Rpb24gMikgaW4gb2JqZWN0IGNvZGUgb3IgZXhlY3V0YWJsZSBmb3JtCnVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucyAxIGFuZCAyIGFib3ZlIHByb3ZpZGVkIHRoYXQgeW91IGFjY29tcGFueQppdCB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUtcmVhZGFibGUgc291cmNlIGNvZGUsIHdoaWNoCm11c3QgYmUgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb25zIDEgYW5kIDIgYWJvdmUgb24gYQptZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UuCgogIElmIGRpc3RyaWJ1dGlvbiBvZiBvYmplY3QgY29kZSBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5CmZyb20gYSBkZXNpZ25hdGVkIHBsYWNlLCB0aGVuIG9mZmVyaW5nIGVxdWl2YWxlbnQgYWNjZXNzIHRvIGNvcHkgdGhlCnNvdXJjZSBjb2RlIGZyb20gdGhlIHNhbWUgcGxhY2Ugc2F0aXNmaWVzIHRoZSByZXF1aXJlbWVudCB0bwpkaXN0cmlidXRlIHRoZSBzb3VyY2UgY29kZSwgZXZlbiB0aG91Z2ggdGhpcmQgcGFydGllcyBhcmUgbm90CmNvbXBlbGxlZCB0byBjb3B5IHRoZSBzb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuCgogIDUuIEEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIG5vIGRlcml2YXRpdmUgb2YgYW55IHBvcnRpb24gb2YgdGhlCkxpYnJhcnksIGJ1dCBpcyBkZXNpZ25lZCB0byB3b3JrIHdpdGggdGhlIExpYnJhcnkgYnkgYmVpbmcgY29tcGlsZWQgb3IKbGlua2VkIHdpdGggaXQsIGlzIGNhbGxlZCBhICJ3b3JrIHRoYXQgdXNlcyB0aGUgTGlicmFyeSIuICBTdWNoIGEKd29yaywgaW4gaXNvbGF0aW9uLCBpcyBub3QgYSBkZXJpdmF0aXZlIHdvcmsgb2YgdGhlIExpYnJhcnksIGFuZAp0aGVyZWZvcmUgZmFsbHMgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdGhpcyBMaWNlbnNlLgoKICBIb3dldmVyLCBsaW5raW5nIGEgIndvcmsgdGhhdCB1c2VzIHRoZSBMaWJyYXJ5IiB3aXRoIHRoZSBMaWJyYXJ5CmNyZWF0ZXMgYW4gZXhlY3V0YWJsZSB0aGF0IGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSAoYmVjYXVzZSBpdApjb250YWlucyBwb3J0aW9ucyBvZiB0aGUgTGlicmFyeSksIHJhdGhlciB0aGFuIGEgIndvcmsgdGhhdCB1c2VzIHRoZQpsaWJyYXJ5Ii4gIFRoZSBleGVjdXRhYmxlIGlzIHRoZXJlZm9yZSBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZS4KU2VjdGlvbiA2IHN0YXRlcyB0ZXJtcyBmb3IgZGlzdHJpYnV0aW9uIG9mIHN1Y2ggZXhlY3V0YWJsZXMuCgogIFdoZW4gYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHVzZXMgbWF0ZXJpYWwgZnJvbSBhIGhlYWRlciBmaWxlCnRoYXQgaXMgcGFydCBvZiB0aGUgTGlicmFyeSwgdGhlIG9iamVjdCBjb2RlIGZvciB0aGUgd29yayBtYXkgYmUgYQpkZXJpdmF0aXZlIHdvcmsgb2YgdGhlIExpYnJhcnkgZXZlbiB0aG91Z2ggdGhlIHNvdXJjZSBjb2RlIGlzIG5vdC4KV2hldGhlciB0aGlzIGlzIHRydWUgaXMgZXNwZWNpYWxseSBzaWduaWZpY2FudCBpZiB0aGUgd29yayBjYW4gYmUKbGlua2VkIHdpdGhvdXQgdGhlIExpYnJhcnksIG9yIGlmIHRoZSB3b3JrIGlzIGl0c2VsZiBhIGxpYnJhcnkuICBUaGUKdGhyZXNob2xkIGZvciB0aGlzIHRvIGJlIHRydWUgaXMgbm90IHByZWNpc2VseSBkZWZpbmVkIGJ5IGxhdy4KCiAgSWYgc3VjaCBhbiBvYmplY3QgZmlsZSB1c2VzIG9ubHkgbnVtZXJpY2FsIHBhcmFtZXRlcnMsIGRhdGEKc3RydWN0dXJlIGxheW91dHMgYW5kIGFjY2Vzc29ycywgYW5kIHNtYWxsIG1hY3JvcyBhbmQgc21hbGwgaW5saW5lCmZ1bmN0aW9ucyAodGVuIGxpbmVzIG9yIGxlc3MgaW4gbGVuZ3RoKSwgdGhlbiB0aGUgdXNlIG9mIHRoZSBvYmplY3QKZmlsZSBpcyB1bnJlc3RyaWN0ZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBpdCBpcyBsZWdhbGx5IGEgZGVyaXZhdGl2ZQp3b3JrLiAgKEV4ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhpcyBvYmplY3QgY29kZSBwbHVzIHBvcnRpb25zIG9mIHRoZQpMaWJyYXJ5IHdpbGwgc3RpbGwgZmFsbCB1bmRlciBTZWN0aW9uIDYuKQoKICBPdGhlcndpc2UsIGlmIHRoZSB3b3JrIGlzIGEgZGVyaXZhdGl2ZSBvZiB0aGUgTGlicmFyeSwgeW91IG1heQpkaXN0cmlidXRlIHRoZSBvYmplY3QgY29kZSBmb3IgdGhlIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gNi4KQW55IGV4ZWN1dGFibGVzIGNvbnRhaW5pbmcgdGhhdCB3b3JrIGFsc28gZmFsbCB1bmRlciBTZWN0aW9uIDYsCndoZXRoZXIgb3Igbm90IHRoZXkgYXJlIGxpbmtlZCBkaXJlY3RseSB3aXRoIHRoZSBMaWJyYXJ5IGl0c2VsZi4KDAogIDYuIEFzIGFuIGV4Y2VwdGlvbiB0byB0aGUgU2VjdGlvbnMgYWJvdmUsIHlvdSBtYXkgYWxzbyBjb21iaW5lIG9yCmxpbmsgYSAid29yayB0aGF0IHVzZXMgdGhlIExpYnJhcnkiIHdpdGggdGhlIExpYnJhcnkgdG8gcHJvZHVjZSBhCndvcmsgY29udGFpbmluZyBwb3J0aW9ucyBvZiB0aGUgTGlicmFyeSwgYW5kIGRpc3RyaWJ1dGUgdGhhdCB3b3JrCnVuZGVyIHRlcm1zIG9mIHlvdXIgY2hvaWNlLCBwcm92aWRlZCB0aGF0IHRoZSB0ZXJtcyBwZXJtaXQKbW9kaWZpY2F0aW9uIG9mIHRoZSB3b3JrIGZvciB0aGUgY3VzdG9tZXIncyBvd24gdXNlIGFuZCByZXZlcnNlCmVuZ2luZWVyaW5nIGZvciBkZWJ1Z2dpbmcgc3VjaCBtb2RpZmljYXRpb25zLgoKICBZb3UgbXVzdCBnaXZlIHByb21pbmVudCBub3RpY2Ugd2l0aCBlYWNoIGNvcHkgb2YgdGhlIHdvcmsgdGhhdCB0aGUKTGlicmFyeSBpcyB1c2VkIGluIGl0IGFuZCB0aGF0IHRoZSBMaWJyYXJ5IGFuZCBpdHMgdXNlIGFyZSBjb3ZlcmVkIGJ5CnRoaXMgTGljZW5zZS4gIFlvdSBtdXN0IHN1cHBseSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiAgSWYgdGhlIHdvcmsKZHVyaW5nIGV4ZWN1dGlvbiBkaXNwbGF5cyBjb3B5cmlnaHQgbm90aWNlcywgeW91IG11c3QgaW5jbHVkZSB0aGUKY29weXJpZ2h0IG5vdGljZSBmb3IgdGhlIExpYnJhcnkgYW1vbmcgdGhlbSwgYXMgd2VsbCBhcyBhIHJlZmVyZW5jZQpkaXJlY3RpbmcgdGhlIHVzZXIgdG8gdGhlIGNvcHkgb2YgdGhpcyBMaWNlbnNlLiAgQWxzbywgeW91IG11c3QgZG8gb25lCm9mIHRoZXNlIHRoaW5nczoKCiAgICBhKSBBY2NvbXBhbnkgdGhlIHdvcmsgd2l0aCB0aGUgY29tcGxldGUgY29ycmVzcG9uZGluZwogICAgbWFjaGluZS1yZWFkYWJsZSBzb3VyY2UgY29kZSBmb3IgdGhlIExpYnJhcnkgaW5jbHVkaW5nIHdoYXRldmVyCiAgICBjaGFuZ2VzIHdlcmUgdXNlZCBpbiB0aGUgd29yayAod2hpY2ggbXVzdCBiZSBkaXN0cmlidXRlZCB1bmRlcgogICAgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSk7IGFuZCwgaWYgdGhlIHdvcmsgaXMgYW4gZXhlY3V0YWJsZSBsaW5rZWQKICAgIHdpdGggdGhlIExpYnJhcnksIHdpdGggdGhlIGNvbXBsZXRlIG1hY2hpbmUtcmVhZGFibGUgIndvcmsgdGhhdAogICAgdXNlcyB0aGUgTGlicmFyeSIsIGFzIG9iamVjdCBjb2RlIGFuZC9vciBzb3VyY2UgY29kZSwgc28gdGhhdCB0aGUKICAgIHVzZXIgY2FuIG1vZGlmeSB0aGUgTGlicmFyeSBhbmQgdGhlbiByZWxpbmsgdG8gcHJvZHVjZSBhIG1vZGlmaWVkCiAgICBleGVjdXRhYmxlIGNvbnRhaW5pbmcgdGhlIG1vZGlmaWVkIExpYnJhcnkuICAoSXQgaXMgdW5kZXJzdG9vZAogICAgdGhhdCB0aGUgdXNlciB3aG8gY2hhbmdlcyB0aGUgY29udGVudHMgb2YgZGVmaW5pdGlvbnMgZmlsZXMgaW4gdGhlCiAgICBMaWJyYXJ5IHdpbGwgbm90IG5lY2Vzc2FyaWx5IGJlIGFibGUgdG8gcmVjb21waWxlIHRoZSBhcHBsaWNhdGlvbgogICAgdG8gdXNlIHRoZSBtb2RpZmllZCBkZWZpbml0aW9ucy4pCgogICAgYikgVXNlIGEgc3VpdGFibGUgc2hhcmVkIGxpYnJhcnkgbWVjaGFuaXNtIGZvciBsaW5raW5nIHdpdGggdGhlCiAgICBMaWJyYXJ5LiAgQSBzdWl0YWJsZSBtZWNoYW5pc20gaXMgb25lIHRoYXQgKDEpIHVzZXMgYXQgcnVuIHRpbWUgYQogICAgY29weSBvZiB0aGUgbGlicmFyeSBhbHJlYWR5IHByZXNlbnQgb24gdGhlIHVzZXIncyBjb21wdXRlciBzeXN0ZW0sCiAgICByYXRoZXIgdGhhbiBjb3B5aW5nIGxpYnJhcnkgZnVuY3Rpb25zIGludG8gdGhlIGV4ZWN1dGFibGUsIGFuZCAoMikKICAgIHdpbGwgb3BlcmF0ZSBwcm9wZXJseSB3aXRoIGEgbW9kaWZpZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgaWYKICAgIHRoZSB1c2VyIGluc3RhbGxzIG9uZSwgYXMgbG9uZyBhcyB0aGUgbW9kaWZpZWQgdmVyc2lvbiBpcwogICAgaW50ZXJmYWNlLWNvbXBhdGlibGUgd2l0aCB0aGUgdmVyc2lvbiB0aGF0IHRoZSB3b3JrIHdhcyBtYWRlIHdpdGguCgogICAgYykgQWNjb21wYW55IHRoZSB3b3JrIHdpdGggYSB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQKICAgIGxlYXN0IHRocmVlIHllYXJzLCB0byBnaXZlIHRoZSBzYW1lIHVzZXIgdGhlIG1hdGVyaWFscwogICAgc3BlY2lmaWVkIGluIFN1YnNlY3Rpb24gNmEsIGFib3ZlLCBmb3IgYSBjaGFyZ2Ugbm8gbW9yZQogICAgdGhhbiB0aGUgY29zdCBvZiBwZXJmb3JtaW5nIHRoaXMgZGlzdHJpYnV0aW9uLgoKICAgIGQpIElmIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd29yayBpcyBtYWRlIGJ5IG9mZmVyaW5nIGFjY2VzcyB0byBjb3B5CiAgICBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgb2ZmZXIgZXF1aXZhbGVudCBhY2Nlc3MgdG8gY29weSB0aGUgYWJvdmUKICAgIHNwZWNpZmllZCBtYXRlcmlhbHMgZnJvbSB0aGUgc2FtZSBwbGFjZS4KCiAgICBlKSBWZXJpZnkgdGhhdCB0aGUgdXNlciBoYXMgYWxyZWFkeSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlc2UKICAgIG1hdGVyaWFscyBvciB0aGF0IHlvdSBoYXZlIGFscmVhZHkgc2VudCB0aGlzIHVzZXIgYSBjb3B5LgoKICBGb3IgYW4gZXhlY3V0YWJsZSwgdGhlIHJlcXVpcmVkIGZvcm0gb2YgdGhlICJ3b3JrIHRoYXQgdXNlcyB0aGUKTGlicmFyeSIgbXVzdCBpbmNsdWRlIGFueSBkYXRhIGFuZCB1dGlsaXR5IHByb2dyYW1zIG5lZWRlZCBmb3IKcmVwcm9kdWNpbmcgdGhlIGV4ZWN1dGFibGUgZnJvbSBpdC4gIEhvd2V2ZXIsIGFzIGEgc3BlY2lhbCBleGNlcHRpb24sCnRoZSBtYXRlcmlhbHMgdG8gYmUgZGlzdHJpYnV0ZWQgbmVlZCBub3QgaW5jbHVkZSBhbnl0aGluZyB0aGF0IGlzCm5vcm1hbGx5IGRpc3RyaWJ1dGVkIChpbiBlaXRoZXIgc291cmNlIG9yIGJpbmFyeSBmb3JtKSB3aXRoIHRoZSBtYWpvcgpjb21wb25lbnRzIChjb21waWxlciwga2VybmVsLCBhbmQgc28gb24pIG9mIHRoZSBvcGVyYXRpbmcgc3lzdGVtIG9uCndoaWNoIHRoZSBleGVjdXRhYmxlIHJ1bnMsIHVubGVzcyB0aGF0IGNvbXBvbmVudCBpdHNlbGYgYWNjb21wYW5pZXMKdGhlIGV4ZWN1dGFibGUuCgogIEl0IG1heSBoYXBwZW4gdGhhdCB0aGlzIHJlcXVpcmVtZW50IGNvbnRyYWRpY3RzIHRoZSBsaWNlbnNlCnJlc3RyaWN0aW9ucyBvZiBvdGhlciBwcm9wcmlldGFyeSBsaWJyYXJpZXMgdGhhdCBkbyBub3Qgbm9ybWFsbHkKYWNjb21wYW55IHRoZSBvcGVyYXRpbmcgc3lzdGVtLiAgU3VjaCBhIGNvbnRyYWRpY3Rpb24gbWVhbnMgeW91IGNhbm5vdAp1c2UgYm90aCB0aGVtIGFuZCB0aGUgTGlicmFyeSB0b2dldGhlciBpbiBhbiBleGVjdXRhYmxlIHRoYXQgeW91CmRpc3RyaWJ1dGUuCgwKICA3LiBZb3UgbWF5IHBsYWNlIGxpYnJhcnkgZmFjaWxpdGllcyB0aGF0IGFyZSBhIHdvcmsgYmFzZWQgb24gdGhlCkxpYnJhcnkgc2lkZS1ieS1zaWRlIGluIGEgc2luZ2xlIGxpYnJhcnkgdG9nZXRoZXIgd2l0aCBvdGhlciBsaWJyYXJ5CmZhY2lsaXRpZXMgbm90IGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLCBhbmQgZGlzdHJpYnV0ZSBzdWNoIGEgY29tYmluZWQKbGlicmFyeSwgcHJvdmlkZWQgdGhhdCB0aGUgc2VwYXJhdGUgZGlzdHJpYnV0aW9uIG9mIHRoZSB3b3JrIGJhc2VkIG9uCnRoZSBMaWJyYXJ5IGFuZCBvZiB0aGUgb3RoZXIgbGlicmFyeSBmYWNpbGl0aWVzIGlzIG90aGVyd2lzZQpwZXJtaXR0ZWQsIGFuZCBwcm92aWRlZCB0aGF0IHlvdSBkbyB0aGVzZSB0d28gdGhpbmdzOgoKICAgIGEpIEFjY29tcGFueSB0aGUgY29tYmluZWQgbGlicmFyeSB3aXRoIGEgY29weSBvZiB0aGUgc2FtZSB3b3JrCiAgICBiYXNlZCBvbiB0aGUgTGlicmFyeSwgdW5jb21iaW5lZCB3aXRoIGFueSBvdGhlciBsaWJyYXJ5CiAgICBmYWNpbGl0aWVzLiAgVGhpcyBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUKICAgIFNlY3Rpb25zIGFib3ZlLgoKICAgIGIpIEdpdmUgcHJvbWluZW50IG5vdGljZSB3aXRoIHRoZSBjb21iaW5lZCBsaWJyYXJ5IG9mIHRoZSBmYWN0CiAgICB0aGF0IHBhcnQgb2YgaXQgaXMgYSB3b3JrIGJhc2VkIG9uIHRoZSBMaWJyYXJ5LCBhbmQgZXhwbGFpbmluZwogICAgd2hlcmUgdG8gZmluZCB0aGUgYWNjb21wYW55aW5nIHVuY29tYmluZWQgZm9ybSBvZiB0aGUgc2FtZSB3b3JrLgoKICA4LiBZb3UgbWF5IG5vdCBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3IgZGlzdHJpYnV0ZQp0aGUgTGlicmFyeSBleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueQphdHRlbXB0IG90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2UsIGxpbmsgd2l0aCwgb3IKZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBpcyB2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyCnJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UuICBIb3dldmVyLCBwYXJ0aWVzIHdobyBoYXZlIHJlY2VpdmVkIGNvcGllcywKb3IgcmlnaHRzLCBmcm9tIHlvdSB1bmRlciB0aGlzIExpY2Vuc2Ugd2lsbCBub3QgaGF2ZSB0aGVpciBsaWNlbnNlcwp0ZXJtaW5hdGVkIHNvIGxvbmcgYXMgc3VjaCBwYXJ0aWVzIHJlbWFpbiBpbiBmdWxsIGNvbXBsaWFuY2UuCgogIDkuIFlvdSBhcmUgbm90IHJlcXVpcmVkIHRvIGFjY2VwdCB0aGlzIExpY2Vuc2UsIHNpbmNlIHlvdSBoYXZlIG5vdApzaWduZWQgaXQuICBIb3dldmVyLCBub3RoaW5nIGVsc2UgZ3JhbnRzIHlvdSBwZXJtaXNzaW9uIHRvIG1vZGlmeSBvcgpkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IG9yIGl0cyBkZXJpdmF0aXZlIHdvcmtzLiAgVGhlc2UgYWN0aW9ucyBhcmUKcHJvaGliaXRlZCBieSBsYXcgaWYgeW91IGRvIG5vdCBhY2NlcHQgdGhpcyBMaWNlbnNlLiAgVGhlcmVmb3JlLCBieQptb2RpZnlpbmcgb3IgZGlzdHJpYnV0aW5nIHRoZSBMaWJyYXJ5IChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKTGlicmFyeSksIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLCBhbmQKYWxsIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW5nIG9yIG1vZGlmeWluZwp0aGUgTGlicmFyeSBvciB3b3JrcyBiYXNlZCBvbiBpdC4KCiAgMTAuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBMaWJyYXJ5IChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKTGlicmFyeSksIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUKb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSwgbGluayB3aXRoIG9yIG1vZGlmeSB0aGUgTGlicmFyeQpzdWJqZWN0IHRvIHRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLiAgWW91IG1heSBub3QgaW1wb3NlIGFueSBmdXJ0aGVyCnJlc3RyaWN0aW9ucyBvbiB0aGUgcmVjaXBpZW50cycgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBncmFudGVkIGhlcmVpbi4KWW91IGFyZSBub3QgcmVzcG9uc2libGUgZm9yIGVuZm9yY2luZyBjb21wbGlhbmNlIGJ5IHRoaXJkIHBhcnRpZXMgd2l0aAp0aGlzIExpY2Vuc2UuCgwKICAxMS4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAppbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLApjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QKZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91Cm1heSBub3QgZGlzdHJpYnV0ZSB0aGUgTGlicmFyeSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQKbGljZW5zZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgTGlicmFyeSBieQphbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bwpyZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBMaWJyYXJ5LgoKSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyIGFueQpwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8gYXBwbHksCmFuZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyIGNpcmN1bXN0YW5jZXMuCgpJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhpcyBzZWN0aW9uIHRvIGluZHVjZSB5b3UgdG8gaW5mcmluZ2UgYW55CnBhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRvIGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CnN1Y2ggY2xhaW1zOyB0aGlzIHNlY3Rpb24gaGFzIHRoZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUKaW50ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3YXJlIGRpc3RyaWJ1dGlvbiBzeXN0ZW0gd2hpY2ggaXMKaW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2ZSBtYWRlCmdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKdGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZwp0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKaW1wb3NlIHRoYXQgY2hvaWNlLgoKVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCmJlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgoKICAxMi4gSWYgdGhlIGRpc3RyaWJ1dGlvbiBhbmQvb3IgdXNlIG9mIHRoZSBMaWJyYXJ5IGlzIHJlc3RyaWN0ZWQgaW4KY2VydGFpbiBjb3VudHJpZXMgZWl0aGVyIGJ5IHBhdGVudHMgb3IgYnkgY29weXJpZ2h0ZWQgaW50ZXJmYWNlcywgdGhlCm9yaWdpbmFsIGNvcHlyaWdodCBob2xkZXIgd2hvIHBsYWNlcyB0aGUgTGlicmFyeSB1bmRlciB0aGlzIExpY2Vuc2UgbWF5IGFkZAphbiBleHBsaWNpdCBnZW9ncmFwaGljYWwgZGlzdHJpYnV0aW9uIGxpbWl0YXRpb24gZXhjbHVkaW5nIHRob3NlIGNvdW50cmllcywKc28gdGhhdCBkaXN0cmlidXRpb24gaXMgcGVybWl0dGVkIG9ubHkgaW4gb3IgYW1vbmcgY291bnRyaWVzIG5vdCB0aHVzCmV4Y2x1ZGVkLiAgSW4gc3VjaCBjYXNlLCB0aGlzIExpY2Vuc2UgaW5jb3Jwb3JhdGVzIHRoZSBsaW1pdGF0aW9uIGFzIGlmCndyaXR0ZW4gaW4gdGhlIGJvZHkgb2YgdGhpcyBMaWNlbnNlLgoKICAxMy4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlzaCByZXZpc2VkIGFuZC9vciBuZXcKdmVyc2lvbnMgb2YgdGhlIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLgpTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsIGJlIHNpbWlsYXIgaW4gc3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sCmJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0byBhZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIExpYnJhcnkKc3BlY2lmaWVzIGEgdmVyc2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kCiJhbnkgbGF0ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQKY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxpc2hlZCBieQp0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIExpYnJhcnkgZG9lcyBub3Qgc3BlY2lmeSBhCmxpY2Vuc2UgdmVyc2lvbiBudW1iZXIsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkIGJ5CnRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCgwKICAxNC4gSWYgeW91IHdpc2ggdG8gaW5jb3Jwb3JhdGUgcGFydHMgb2YgdGhlIExpYnJhcnkgaW50byBvdGhlciBmcmVlCnByb2dyYW1zIHdob3NlIGRpc3RyaWJ1dGlvbiBjb25kaXRpb25zIGFyZSBpbmNvbXBhdGlibGUgd2l0aCB0aGVzZSwKd3JpdGUgdG8gdGhlIGF1dGhvciB0byBhc2sgZm9yIHBlcm1pc3Npb24uICBGb3Igc29mdHdhcmUgd2hpY2ggaXMKY29weXJpZ2h0ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgd3JpdGUgdG8gdGhlIEZyZWUKU29mdHdhcmUgRm91bmRhdGlvbjsgd2Ugc29tZXRpbWVzIG1ha2UgZXhjZXB0aW9ucyBmb3IgdGhpcy4gIE91cgpkZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzIG9mIHByZXNlcnZpbmcgdGhlIGZyZWUgc3RhdHVzCm9mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIgZnJlZSBzb2Z0d2FyZSBhbmQgb2YgcHJvbW90aW5nIHRoZSBzaGFyaW5nCmFuZCByZXVzZSBvZiBzb2Z0d2FyZSBnZW5lcmFsbHkuCgoJCQkgICAgTk8gV0FSUkFOVFkKCiAgMTUuIEJFQ0FVU0UgVEhFIExJQlJBUlkgSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5PCldBUlJBTlRZIEZPUiBUSEUgTElCUkFSWSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcuCkVYQ0VQVCBXSEVOIE9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SCk9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgTElCUkFSWSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZCktJTkQsIEVJVEhFUiBFWFBSRVNTRUQgT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFCkxJQlJBUlkgSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhFIExJQlJBUlkgUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FClRIRSBDT1NUIE9GIEFMTCBORUNFU1NBUlkgU0VSVklDSU5HLCBSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTYuIElOIE5PIEVWRU5UIFVOTEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4KV1JJVElORyBXSUxMIEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkKQU5EL09SIFJFRElTVFJJQlVURSBUSEUgTElCUkFSWSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZT1UKRk9SIERBTUFHRVMsIElOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUgpDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkgVE8gVVNFIFRIRQpMSUJSQVJZIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIExPU1MgT0YgREFUQSBPUiBEQVRBIEJFSU5HClJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWSBZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBCkZBSUxVUkUgT0YgVEhFIExJQlJBUlkgVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBTT0ZUV0FSRSksIEVWRU4gSUYKU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSApEQU1BR0VTLgoKCQkgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUwo=]]></data>
	</file>
	<file>
	  <filename>/lib/GoogleMapAPI-2.4/GoogleMapAPI.class.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBQcm9qZWN0OiAgICAgR29vZ2xlTWFwQVBJOiBhIFBIUCBsaWJyYXJ5IGludGVmYWNlIHRvIHRoZSBHb29nbGUgTWFwIEFQSQogKiBGaWxlOiAgICAgICAgR29vZ2xlTWFwQVBJLmNsYXNzLnBocAogKiAKICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgogKiB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiAqCiAqIEZvciBxdWVzdGlvbnMsIGhlbHAsIGNvbW1lbnRzLCBkaXNjdXNzaW9uLCBldGMuLCBwbGVhc2Ugam9pbiB0aGUKICogU21hcnR5IG1haWxpbmcgbGlzdC4gU2VuZCBhIGJsYW5rIGUtbWFpbCB0bwogKiBzbWFydHktZ2VuZXJhbC1zdWJzY3JpYmVAbGlzdHMucGhwLm5ldAogKgogKiBAbGluayBodHRwOi8vd3d3LnBocGluc2lkZXIuY29tL3BocC9jb2RlL0dvb2dsZU1hcEFQSS8KICogQGNvcHlyaWdodCAyMDA1IE5ldyBEaWdpdGFsIEdyb3VwLCBJbmMuCiAqIEBhdXRob3IgTW9udGUgT2hydCA8bW9udGUgYXQgb2hydCBkb3QgY29tPgogKiBAcGFja2FnZSBHb29nbGVNYXBBUEkKICogQHZlcnNpb24gMi40CiAqLwoKLyogJElkOiBHb29nbGVNYXBBUEkuY2xhc3MucGhwLHYgMS42MSAyMDA3LzA2LzA2IDIwOjMyOjMxIGNsYXJrIEV4cCAkICovCgovKgoKRm9yIGJlc3QgcmVzdWx0cyB3aXRoIEdvb2dsZU1hcHMsIHVzZSBYSFRNTCBjb21wbGlhbnQgd2ViIHBhZ2VzIHdpdGggdGhpcyBoZWFkZXI6Cgo8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxuczp2PSJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnZtbCI+CgpGb3IgZGF0YWJhc2UgY2FjaGluZywgeW91IHdpbGwgd2FudCB0byB1c2UgdGhpcyBzY2hlbWE6CgpDUkVBVEUgVEFCTEUgR0VPQ09ERVMgKAogIGFkZHJlc3MgdmFyY2hhcigyNTUpIE5PVCBOVUxMIGRlZmF1bHQgJycsCiAgbG9uIGZsb2F0IGRlZmF1bHQgTlVMTCwKICBsYXQgZmxvYXQgZGVmYXVsdCBOVUxMLAogIFBSSU1BUlkgS0VZICAoYWRkcmVzcykKKTsKCiovCgpjbGFzcyBHb29nbGVNYXBBUEkgewoKICBjb25zdCBkZmx0X2ljb25fbmFtZSA9ICcqKmRlZmF1bHQqKic7CiAgY29uc3QgY29tYmluZV90b190YWJzID0gJyoqdGFicyoqJzsKICBjb25zdCBjb21iaW5lX2ZsYXQgPSAnKipmbGF0KionOwoKICAgIC8qKgogICAgICogUEVBUjo6REIgRFNOIGZvciBnZW9jb2RlIGNhY2hpbmcuIGV4YW1wbGU6CiAgICAgKiAkZHNuID0gJ215c3FsOi8vdXNlcjpwYXNzQGxvY2FsaG9zdC9kYm5hbWUnOwogICAgICoKICAgICAqIE9SIGFuIGFkb2RiX29iamVjdAogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkZHNuID0gbnVsbDsKICAgIAogICAgLyoqCiAgICAgKiBZT1VSIEdvb2dsTWFwIEFQSSBLRVkgZm9yIHlvdXIgc2l0ZS4KICAgICAqIChodHRwOi8vbWFwcy5nb29nbGUuY29tL2FwaXMvbWFwcy9zaWdudXAuaHRtbCkKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJGFwaV9rZXkgPSAnJzsKCiAgICAvKioKICAgICAqIGN1cnJlbnQgbWFwIGlkLCBzZXQgd2hlbiB5b3UgaW5zdGFudGlhdGUKICAgICAqIHRoZSBHb29nbGVNYXBBUEkgb2JqZWN0LgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkbWFwX2lkID0gbnVsbDsKCiAgICAvKioKICAgICAqIGN1cnJlbnQganMgbWFwIHZhcmlhYmxlIG5hbWUuLi4gCiAgICAgKiBzZXQgaW4gdGhlIGNvbnN0cnVjdG9yLgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkbWFwX3Zhcl9uYW1lID0gbnVsbDsKCiAgICAvKioKICAgICAqIHNpZGViYXIgPGRpdj4gdXNlZCBhbG9uZyB3aXRoIHRoaXMgbWFwLgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkc2lkZWJhcl9pZCA9IG51bGw7ICAgIAogICAgCiAgICAvKioKICAgICAqIEdvb2dsZU1hcEFQSSB1c2VzIHRoZSBZYWhvbyBnZW9jb2RlIGxvb2t1cCBBUEkuCiAgICAgKiBUaGlzIGlzIHRoZSBhcHBsaWNhdGlvbiBJRCBmb3IgWU9VUiBhcHBsaWNhdGlvbi4KICAgICAqIFRoaXMgaXMgc2V0IHVwb24gaW5zdGFudGlhdGluZyB0aGUgR29vZ2xlTWFwQVBJIG9iamVjdC4KICAgICAqIChodHRwOi8vZGV2ZWxvcGVyLnlhaG9vLm5ldC9mYXEvaW5kZXguaHRtbCNhcHBpZCkKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJGFwcF9pZCA9IG51bGw7CgogICAgLyoqCiAgICAgKiB1c2Ugb25Mb2FkKCkgdG8gbG9hZCB0aGUgbWFwIGphdmFzY3JpcHQuCiAgICAgKiBpZiBlbmFibGVkLCBiZSBzdXJlIHRvIGluY2x1ZGUgb24geW91ciB3ZWJwYWdlOgogICAgICogPGh0bWwgb25sb2FkPSJvbkxvYWQoKSI+CiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRvbmxvYWQgPSB0cnVlOwogICAgCiAgICAvKioKICAgICAqIG1hcCBjZW50ZXIgbGF0aXR1ZGUgKGhvcml6b250YWwpCiAgICAgKiBjYWxjdWxhdGVkIGF1dG9tYXRpY2FsbHkgYXMgbWFya2VycwogICAgICogYXJlIGFkZGVkIHRvIHRoZSBtYXAuCiAgICAgKgogICAgICogQHZhciBmbG9hdAogICAgICovCiAgICB2YXIgJGNlbnRlcl9sYXQgPSBudWxsOwoKICAgIC8qKgogICAgICogbWFwIGNlbnRlciBsb25naXR1ZGUgKHZlcnRpY2FsKQogICAgICogY2FsY3VsYXRlZCBhdXRvbWF0aWNhbGx5IGFzIG1hcmtlcnMKICAgICAqIGFyZSBhZGRlZCB0byB0aGUgbWFwLgogICAgICoKICAgICAqIEB2YXIgZmxvYXQKICAgICAqLwogICAgdmFyICRjZW50ZXJfbG9uID0gbnVsbDsKICAgIAogICAgLyoqCiAgICAgKiBlbmFibGVzIG1hcCBjb250cm9scyAoem9vbS9tb3ZlL2NlbnRlcikKICAgICAqCiAgICAgKiBAdmFyIGJvb2xlYW4KICAgICAqLwogICAgdmFyICRtYXBfY29udHJvbHMgPSB0cnVlOwoKICAgIC8qKgogICAgICogZGV0ZXJtaW5lcyB0aGUgbWFwIGNvbnRyb2wgdHlwZQogICAgICogc21hbGwgLT4gc2hvdyBtb3ZlL2NlbnRlciBjb250cm9scwogICAgICogbGFyZ2UgLT4gc2hvdyBtb3ZlL2NlbnRlci96b29tIGNvbnRyb2xzCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRjb250cm9sX3NpemUgPSAnbGFyZ2UnOwogICAgCiAgICAvKioKICAgICAqIGVuYWJsZXMgbWFwIHR5cGUgY29udHJvbHMgKG1hcC9zYXRlbGxpdGUvaHlicmlkKQogICAgICoKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICB2YXIgJHR5cGVfY29udHJvbHMgPSB0cnVlOwoKICAgIC8qKgogICAgICogZGVmYXVsdCBtYXAgdHlwZSAoR19OT1JNQUxfTUFQL0dfU0FURUxMSVRFX01BUC9HX0hZQlJJRF9NQVApCiAgICAgKgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHZhciAkbWFwX3R5cGUgPSAnR19OT1JNQUxfTUFQJzsKICAgIAogICAgLyoqCiAgICAgKiBlbmFibGVzIHNjYWxlIG1hcCBjb250cm9sCiAgICAgKgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHZhciAkc2NhbGVfY29udHJvbCA9IHRydWU7CiAgICAKICAgIC8qKgogICAgICogZW5hYmxlcyBvdmVydmlldyBtYXAgY29udHJvbAogICAgICoKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICB2YXIgJG92ZXJ2aWV3X2NvbnRyb2wgPSBmYWxzZTsgICAgCiAgICAgCiAgICAvKioKICAgICAqIGRldGVybWluZXMgdGhlIGRlZmF1bHQgem9vbSBsZXZlbAogICAgICoKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICB2YXIgJHpvb20gPSAxNjsKCiAgICAvKioKICAgICAqIGRldGVybWluZXMgdGhlIG1hcCB3aWR0aAogICAgICoKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICB2YXIgJHdpZHRoID0gJzUwMHB4JzsKICAgIAogICAgLyoqCiAgICAgKiBkZXRlcm1pbmVzIHRoZSBtYXAgaGVpZ2h0CiAgICAgKgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKi8KICAgIHZhciAkaGVpZ2h0ID0gJzUwMHB4JzsKCiAgICAvKioKICAgICAqIG1lc3NhZ2UgdGhhdCBwb3BzIHVwIHdoZW4gdGhlIGJyb3dzZXIgaXMgaW5jb21wYXRpYmxlIHdpdGggR29vZ2xlIE1hcHMuCiAgICAgKiBzZXQgdG8gZW1wdHkgc3RyaW5nIHRvIGRpc2FibGUuCiAgICAgKgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKi8KICAgIHZhciAkYnJvd3Nlcl9hbGVydCA9ICdTb3JyeSwgdGhlIEdvb2dsZSBNYXBzIEFQSSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoaXMgYnJvd3Nlci4nOwogICAgCiAgICAvKioKICAgICAqIG1lc3NhZ2UgdGhhdCBhcHBlYXJzIHdoZW4gamF2YXNjcmlwdCBpcyBkaXNhYmxlZC4KICAgICAqIHNldCB0byBlbXB0eSBzdHJpbmcgdG8gZGlzYWJsZS4KICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJGpzX2FsZXJ0ID0gJzxiPkphdmFzY3JpcHQgbXVzdCBiZSBlbmFibGVkIGluIG9yZGVyIHRvIHVzZSBHb29nbGUgTWFwcy48L2I+JzsKCiAgICAvKioKICAgICAqIGRldGVybWluZXMgaWYgc2lkZWJhciBpcyBlbmFibGVkCiAgICAgKgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHZhciAkc2lkZWJhciA9IHRydWU7ICAgIAoKICAgIC8qKgogICAgICogZGV0ZXJtaW5lcyBpZiB0by9mcm9tIGRpcmVjdGlvbnMgYXJlIGluY2x1ZGVkIGluc2lkZSBpbmZvIHdpbmRvdwogICAgICoKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICB2YXIgJGRpcmVjdGlvbnMgPSB0cnVlOwoKICAgIC8qKgogICAgICogZGV0ZXJtaW5lcyBpZiBtYXAgbWFya2VycyBicmluZyB1cCBhbiBpbmZvIHdpbmRvdwogICAgICoKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICB2YXIgJGluZm9fd2luZG93ID0gdHJ1ZTsgICAgCiAgICAKICAgIC8qKgogICAgICogZGV0ZXJtaW5lcyBpZiBpbmZvIHdpbmRvdyBhcHBlYXJzIHdpdGggYSBjbGljayBvciBtb3VzZW92ZXIKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZyBjbGljay9tb3VzZW92ZXIKICAgICAqLwogICAgdmFyICR3aW5kb3dfdHJpZ2dlciA9ICdjbGljayc7ICAgIAoKICAgIHByaXZhdGUgJF9jb21iaW5lX3BvaW50cyA9IDA7CiAgICBwcml2YXRlICRfcG9pbnRfY29tYmluZV9mdWRnZSA9IDA7CiAgICBwcml2YXRlICRfY29tYmluZWRfcG9pbnRzX2ljb24gPSBzZWxmOjpkZmx0X2ljb25fbmFtZTsKICAgIHByaXZhdGUgJF9jb21iaW5lX3BvaW50c19tZXRob2QgPSBzZWxmOjpjb21iaW5lX3RvX3RhYnM7CiAgICBwcml2YXRlICRfc2lkZWJhcl9saXN0OwogICAgcHJpdmF0ZSAkX21hcmtlcl9saXN0OwogICAgcHJpdmF0ZSAkX21hcmtlcl9hbGlhc2VzOwoKICAgIC8qKgogICAgICogd2hhdCBzZXJ2ZXIgZ2VvY29kZSBsb29rdXBzIGNvbWUgZnJvbQogICAgICoKICAgICAqIGF2YWlsYWJsZTogWUFIT08gIFlhaG9vISBBUEkuIFVTIGdlb2NvZGUgbG9va3VwcyBvbmx5LgogICAgICogICAgICAgICAgICBHT09HTEUgR29vZ2xlIE1hcHMuIFRoaXMgY2FuIGRvIGludGVybmF0aW9uYWwgbG9va3VwcywKICAgICAqICAgICAgICAgICAgICAgICAgIGJ1dCBub3QgYW4gb2ZmaWNpYWwgQVBJIHNlcnZpY2Ugc28gbm8gZ3VhcmFudGVlcy4KICAgICAqICAgICAgICAgICAgTm90ZTogR09PR0xFIGlzIHRoZSBkZWZhdWx0IGxvb2t1cCBzZXJ2aWNlLCBwbGVhc2UgcmVhZAogICAgICogICAgICAgICAgICAgICAgICB0aGUgWWFob28hIHRlcm1zIG9mIHNlcnZpY2UgYmVmb3JlIHVzaW5nIHRoZWlyIEFQSS4KICAgICAqCiAgICAgKiBAdmFyIHN0cmluZyBzZXJ2aWNlIG5hbWUKICAgICAqLwogICAgdmFyICRsb29rdXBfc2VydmljZSA9ICdHT09HTEUnOwogICAgdmFyICRsb29rdXBfc2VydmVyID0gYXJyYXkoJ0dPT0dMRScgPT4gJ21hcHMuZ29vZ2xlLmNvbScsICdZQUhPTycgPT4gJ2FwaS5sb2NhbC55YWhvby5jb20nKTsKICAgIAogICAgdmFyICRkcml2aW5nX2Rpcl90ZXh0ID0gYXJyYXkoCiAgICAgICAgICAgICdkaXJfdG8nID0+ICdTdGFydCBhZGRyZXNzOiAoaW5jbHVkZSBhZGRyLCBjaXR5IHN0L3JlZ2lvbiknLAogICAgICAgICAgICAndG9fYnV0dG9uX3ZhbHVlJyA9PiAnR2V0IERpcmVjdGlvbnMnLAogICAgICAgICAgICAndG9fYnV0dG9uX3R5cGUnID0+ICdzdWJtaXQnLAogICAgICAgICAgICAnZGlyX2Zyb20nID0+ICdFbmQgYWRkcmVzczogKGluY2x1ZGUgYWRkciwgY2l0eSBzdC9yZWdpb24pJywKICAgICAgICAgICAgJ2Zyb21fYnV0dG9uX3ZhbHVlJyA9PiAnR2V0IERpcmVjdGlvbnMnLAogICAgICAgICAgICAnZnJvbV9idXR0b25fdHlwZScgPT4gJ3N1Ym1pdCcsCiAgICAgICAgICAgICdkaXJfdGV4dCcgPT4gJ0RpcmVjdGlvbnM6ICcsCiAgICAgICAgICAgICdkaXJfdG9oZXJlJyA9PiAnVG8gaGVyZScsCiAgICAgICAgICAgICdkaXJfZnJvbWhlcmUnID0+ICdGcm9tIGhlcmUnCiAgICAgICAgICAgICk7ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAKICAgIAogICAgLyoqCiAgICAgKiB2ZXJzaW9uIG51bWJlcgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkX3ZlcnNpb24gPSAnMi40JzsKCiAgICAvKioKICAgICAqIGxpc3Qgb2YgYWRkZWQgbWFya2VycwogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRfbWFya2VycyA9IGFycmF5KCk7CiAgICAKICAgIC8qKgogICAgICogbWF4aW11bSBsb25naXR1ZGUgb2YgYWxsIG1hcmtlcnMKICAgICAqIAogICAgICogQHZhciBmbG9hdAogICAgICovCiAgICB2YXIgJF9tYXhfbG9uID0gLTEwMDAwMDA7CiAgICAKICAgIC8qKgogICAgICogbWluaW11bSBsb25naXR1ZGUgb2YgYWxsIG1hcmtlcnMKICAgICAqCiAgICAgKiBAdmFyIGZsb2F0CiAgICAgKi8KICAgIHZhciAkX21pbl9sb24gPSAxMDAwMDAwOwogICAgCiAgICAvKioKICAgICAqIG1heCBsYXRpdHVkZQogICAgICoKICAgICAqIEB2YXIgZmxvYXQKICAgICAqLwogICAgdmFyICRfbWF4X2xhdCA9IC0xMDAwMDAwOwogICAgCiAgICAvKioKICAgICAqIG1pbiBsYXRpdHVkZQogICAgICoKICAgICAqIEB2YXIgZmxvYXQKICAgICAqLwogICAgdmFyICRfbWluX2xhdCA9IDEwMDAwMDA7CiAgICAKICAgIC8qKgogICAgICogZGV0ZXJtaW5lcyBpZiB3ZSBzaG91bGQgem9vbSB0byBtaW5pbXVtIGxldmVsIChhYm92ZSB0aGlzLT56b29tIHZhbHVlKSB0aGF0IHdpbGwgZW5jb21wYXNzIGFsbCBtYXJrZXJzCiAgICAgKgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHZhciAkem9vbV9lbmNvbXBhc3MgPSB0cnVlOwoKICAgIC8qKgogICAgICogZmFjdG9yIGJ5IHdoaWNoIHRvIGZ1ZGdlIHRoZSBib3VuZGFyaWVzIHNvIHRoYXQgd2hlbiB3ZSB6b29tIGVuY29tcGFzcywgdGhlIG1hcmtlcnMgYXJlbid0IHRvbyBjbG9zZSB0byB0aGUgZWRnZQogICAgICoKICAgICAqIEB2YXIgZmxvYXQKICAgICAqLwogICAgdmFyICRib3VuZHNfZnVkZ2UgPSAwLjAxOwoKICAgIC8qKgogICAgICogdXNlIHRoZSBmaXJzdCBzdWdnZXN0aW9uIGJ5IGEgZ29vZ2xlIGxvb2t1cCBpZiBleGFjdCBtYXRjaCBub3QgZm91bmQKICAgICAqCiAgICAgKiBAdmFyIGZsb2F0CiAgICAgKi8KICAgIHZhciAkdXNlX3N1Z2dlc3QgPSBmYWxzZTsKCiAgICAKICAgIC8qKgogICAgICogbGlzdCBvZiBhZGRlZCBwb2x5bGluZXMKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkX3BvbHlsaW5lcyA9IGFycmF5KCk7ICAgIAogICAgCiAgICAvKioKICAgICAqIGljb24gaW5mbyBhcnJheQogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRfaWNvbnMgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogZGF0YWJhc2UgY2FjaGUgdGFibGUgbmFtZQogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkX2RiX2NhY2hlX3RhYmxlID0gJ0dFT0NPREVTJzsKICAgICAgICAKICAgICAgICAKICAgIC8qKgogICAgICogY2xhc3MgY29uc3RydWN0b3IKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRtYXBfaWQgdGhlIGlkIGZvciB0aGlzIG1hcAogICAgICogQHBhcmFtIHN0cmluZyAkYXBwX2lkIFlPVVIgWWFob28gQXBwIElECiAgICAgKi8KICAgIGZ1bmN0aW9uIEdvb2dsZU1hcEFQSSgkbWFwX2lkID0gJ21hcCcsICRhcHBfaWQgPSAnTXlNYXBBcHAnLCAkdmFyX25hbWUgPSAnJykgewogICAgICAgICR0aGlzLT5tYXBfaWQgPSAkbWFwX2lkOwogICAgICAgICR0aGlzLT5zaWRlYmFyX2lkID0gJ3NpZGViYXJfJyAuICRtYXBfaWQ7CiAgICAgICAgJHRoaXMtPmFwcF9pZCA9ICRhcHBfaWQ7CgkkdGhpcy0+bWFwX3Zhcl9uYW1lID0gJG1hcF9pZDsKCWlmKCAhZW1wdHkoJHZhcl9uYW1lKSApCgkgIHsKCSAgICAkdGhpcy0+bWFwX3Zhcl9uYW1lID0gJHZhcl9uYW1lOwoJICB9CgkkdGhpcy0+X21hcmtlcl9hbGlhc2VzID0gYXJyYXkoKTsKICAgIH0KICAgCiAgICAvKioKICAgICAqIHNldHMgdGhlIFBFQVI6OkRCIGRzbgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGRzbgogICAgICovCiAgICBmdW5jdGlvbiBzZXREU04oJGRzbikgewogICAgICAgICR0aGlzLT5kc24gPSYgJGRzbjsgICAKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBzZXRzIHRoZSB0YWJsZSBuYW1lIAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRhYmxlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldERCVGFibGUoJHRhYmxlKQogICAgewogICAgICAkdGhpcy0+X2RiX2NhY2hlX3RhYmxlID0gJHRhYmxlOwogICAgfQoKICAgIC8qKgogICAgICogc2V0cyBZT1VSIEdvb2dsZSBNYXAgQVBJIGtleQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQogICAgICovCiAgICBmdW5jdGlvbiBzZXRBUElLZXkoJGtleSkgewogICAgICAgICR0aGlzLT5hcGlfa2V5ID0gJGtleTsgICAKICAgIH0KCiAgICAvKioKICAgICAqIHNldHMgdGhlIHdpZHRoIG9mIHRoZSBtYXAKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR3aWR0aAogICAgICovCiAgICBmdW5jdGlvbiBzZXRXaWR0aCgkd2lkdGgpIHsKICAgICAgICBpZighcHJlZ19tYXRjaCgnIV4oXGQrKSguKikkIScsJHdpZHRoLCRfbWF0Y2gpKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgICRfd2lkdGggPSAkX21hdGNoWzFdOwogICAgICAgICRfdHlwZSA9ICRfbWF0Y2hbMl07CiAgICAgICAgaWYoJF90eXBlID09ICclJykKICAgICAgICAgICAgJHRoaXMtPndpZHRoID0gJF93aWR0aCAuICclJzsKICAgICAgICBlbHNlCiAgICAgICAgICAgICR0aGlzLT53aWR0aCA9ICRfd2lkdGggLiAncHgnOwogICAgICAgIAogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8qKgogICAgICogc2V0cyB0aGUgaGVpZ2h0IG9mIHRoZSBtYXAKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRoZWlnaHQKICAgICAqLwogICAgZnVuY3Rpb24gc2V0SGVpZ2h0KCRoZWlnaHQpIHsKICAgICAgICBpZighcHJlZ19tYXRjaCgnIV4oXGQrKSguKikkIScsJGhlaWdodCwkX21hdGNoKSkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKICAgICAgICAkX2hlaWdodCA9ICRfbWF0Y2hbMV07CiAgICAgICAgJF90eXBlID0gJF9tYXRjaFsyXTsKICAgICAgICBpZigkX3R5cGUgPT0gJyUnKQogICAgICAgICAgICAkdGhpcy0+aGVpZ2h0ID0gJF9oZWlnaHQgLiAnJSc7CiAgICAgICAgZWxzZQogICAgICAgICAgICAkdGhpcy0+aGVpZ2h0ID0gJF9oZWlnaHQgLiAncHgnOwogICAgICAgIAogICAgICAgIHJldHVybiB0cnVlOwogICAgfSAgICAgICAgCgogICAgLyoqCiAgICAgKiBzZXRzIHRoZSBkZWZhdWx0IG1hcCB6b29tIGxldmVsCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkbGV2ZWwKICAgICAqLwogICAgZnVuY3Rpb24gc2V0Wm9vbUxldmVsKCRsZXZlbCkgewogICAgICAgICR0aGlzLT56b29tID0gKGludCkgJGxldmVsOwogICAgfSAgICAKICAgICAgICAgICAgCiAgICAvKioKICAgICAqIGVuYWJsZXMgdGhlIG1hcCBjb250cm9scyAoem9vbS9tb3ZlKQogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gZW5hYmxlTWFwQ29udHJvbHMoKSB7CiAgICAgICAgJHRoaXMtPm1hcF9jb250cm9scyA9IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBkaXNhYmxlcyB0aGUgbWFwIGNvbnRyb2xzICh6b29tL21vdmUpCiAgICAgKgogICAgICovCiAgICBmdW5jdGlvbiBkaXNhYmxlTWFwQ29udHJvbHMoKSB7CiAgICAgICAgJHRoaXMtPm1hcF9jb250cm9scyA9IGZhbHNlOwogICAgfSAgICAKICAgIAogICAgLyoqCiAgICAgKiBzZXRzIHRoZSBtYXAgY29udHJvbCBzaXplIChsYXJnZS9zbWFsbCkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzaXplCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldENvbnRyb2xTaXplKCRzaXplKSB7CiAgICAgICAgaWYoaW5fYXJyYXkoJHNpemUsYXJyYXkoJ2xhcmdlJywnc21hbGwnKSkpCiAgICAgICAgICAgICR0aGlzLT5jb250cm9sX3NpemUgPSAkc2l6ZTsKICAgIH0gICAgICAgICAgICAKCiAgICAvKioKICAgICAqIGVuYWJsZXMgdGhlIHR5cGUgY29udHJvbHMgKG1hcC9zYXRlbGxpdGUvaHlicmlkKQogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gZW5hYmxlVHlwZUNvbnRyb2xzKCkgewogICAgICAgICR0aGlzLT50eXBlX2NvbnRyb2xzID0gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIGRpc2FibGVzIHRoZSB0eXBlIGNvbnRyb2xzIChtYXAvc2F0ZWxsaXRlL2h5YnJpZCkKICAgICAqCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpc2FibGVUeXBlQ29udHJvbHMoKSB7CiAgICAgICAgJHRoaXMtPnR5cGVfY29udHJvbHMgPSBmYWxzZTsKICAgIH0KCiAgICAvKioKICAgICAqIHNldCBkZWZhdWx0IG1hcCB0eXBlIChtYXAvc2F0ZWxsaXRlL2h5YnJpZCkKICAgICAqCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldE1hcFR5cGUoJHR5cGUpIHsKICAgICAgICBzd2l0Y2goJHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAnaHlicmlkJzoKICAgICAgICAgICAgICAgICR0aGlzLT5tYXBfdHlwZSA9ICdHX0hZQlJJRF9NQVAnOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3NhdGVsbGl0ZSc6CiAgICAgICAgICAgICAgICAkdGhpcy0+bWFwX3R5cGUgPSAnR19TQVRFTExJVEVfTUFQJzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdtYXAnOgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgJHRoaXMtPm1hcF90eXBlID0gJ0dfTk9STUFMX01BUCc7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9ICAgICAgIAogICAgfSAgICAKICAgIAogICAgLyoqCiAgICAgKiBlbmFibGVzIG9ubG9hZAogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gZW5hYmxlT25Mb2FkKCkgewogICAgICAgICR0aGlzLT5vbmxvYWQgPSB0cnVlOwogICAgfQoKICAgIC8qKgogICAgICogZGlzYWJsZXMgb25sb2FkCiAgICAgKgogICAgICovCiAgICBmdW5jdGlvbiBkaXNhYmxlT25Mb2FkKCkgewogICAgICAgICR0aGlzLT5vbmxvYWQgPSBmYWxzZTsKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBlbmFibGVzIHNpZGViYXIKICAgICAqCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVuYWJsZVNpZGViYXIoKSB7CiAgICAgICAgJHRoaXMtPnNpZGViYXIgPSB0cnVlOwogICAgfQoKICAgIC8qKgogICAgICogZGlzYWJsZXMgc2lkZWJhcgogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gZGlzYWJsZVNpZGViYXIoKSB7CiAgICAgICAgJHRoaXMtPnNpZGViYXIgPSBmYWxzZTsKICAgIH0gICAgCgogICAgLyoqCiAgICAgKiBlbmFibGVzIG1hcCBkaXJlY3Rpb25zIGluc2lkZSBpbmZvIHdpbmRvdwogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gZW5hYmxlRGlyZWN0aW9ucygpIHsKICAgICAgICAkdGhpcy0+ZGlyZWN0aW9ucyA9IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBkaXNhYmxlcyBtYXAgZGlyZWN0aW9ucyBpbnNpZGUgaW5mbyB3aW5kb3cKICAgICAqCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpc2FibGVEaXJlY3Rpb25zKCkgewogICAgICAgICR0aGlzLT5kaXJlY3Rpb25zID0gZmFsc2U7CiAgICB9ICAgIAogICAgICAgIAogICAgLyoqCiAgICAgKiBzZXQgYnJvd3NlciBhbGVydCBtZXNzYWdlIGZvciBpbmNvbXBhdGlibGUgYnJvd3NlcnMKICAgICAqCiAgICAgKiBAcGFyYW1zICRtZXNzYWdlIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBzZXRCcm93c2VyQWxlcnQoJG1lc3NhZ2UpIHsKICAgICAgICAkdGhpcy0+YnJvd3Nlcl9hbGVydCA9ICRtZXNzYWdlOwogICAgfQoKICAgIC8qKgogICAgICogc2V0IDxub3NjcmlwdD4gbWVzc2FnZSB3aGVuIGphdmFzY3JpcHQgaXMgZGlzYWJsZWQKICAgICAqCiAgICAgKiBAcGFyYW1zICRtZXNzYWdlIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBzZXRKU0FsZXJ0KCRtZXNzYWdlKSB7CiAgICAgICAgJHRoaXMtPmpzX2FsZXJ0ID0gJG1lc3NhZ2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBlbmFibGUgbWFwIG1hcmtlciBpbmZvIHdpbmRvd3MKICAgICAqLwogICAgZnVuY3Rpb24gZW5hYmxlSW5mb1dpbmRvdygpIHsKICAgICAgICAkdGhpcy0+aW5mb193aW5kb3cgPSB0cnVlOwogICAgfQogICAgCiAgICAvKioKICAgICAqIGRpc2FibGUgbWFwIG1hcmtlciBpbmZvIHdpbmRvd3MKICAgICAqLwogICAgZnVuY3Rpb24gZGlzYWJsZUluZm9XaW5kb3coKSB7CiAgICAgICAgJHRoaXMtPmluZm9fd2luZG93ID0gZmFsc2U7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogc2V0IHRoZSBpbmZvIHdpbmRvdyB0cmlnZ2VyIGFjdGlvbgogICAgICoKICAgICAqIEBwYXJhbXMgJG1lc3NhZ2Ugc3RyaW5nIGNsaWNrL21vdXNlb3ZlcgogICAgICovCiAgICBmdW5jdGlvbiBzZXRJbmZvV2luZG93VHJpZ2dlcigkdHlwZSkgewogICAgICAgIHN3aXRjaCgkdHlwZSkgewogICAgICAgICAgICBjYXNlICdtb3VzZW92ZXInOgogICAgICAgICAgICAgICAgJHRoaXMtPndpbmRvd190cmlnZ2VyID0gJ21vdXNlb3Zlcic7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICR0aGlzLT53aW5kb3dfdHJpZ2dlciA9ICdjbGljayc7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogZW5hYmxlIHpvb20gdG8gZW5jb21wYXNzIG1ha2VycwogICAgICovCiAgICBmdW5jdGlvbiBlbmFibGVab29tRW5jb21wYXNzKCkgewogICAgICAgICR0aGlzLT56b29tX2VuY29tcGFzcyA9IHRydWU7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogZGlzYWJsZSB6b29tIHRvIGVuY29tcGFzcyBtYWtlcnMKICAgICAqLwogICAgZnVuY3Rpb24gZGlzYWJsZVpvb21FbmNvbXBhc3MoKSB7CiAgICAgICAgJHRoaXMtPnpvb21fZW5jb21wYXNzID0gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBzZXQgdGhlIGJvdW5kYXJ5IGZ1ZGdlIGZhY3RvcgogICAgICovCiAgICBmdW5jdGlvbiBzZXRCb3VuZHNGdWRnZSgkdmFsKSB7CiAgICAgICAgJHRoaXMtPmJvdW5kc19mdWRnZSA9ICR2YWw7CiAgICB9CiAgICAKICAgIC8qKgogICAgICogZW5hYmxlcyB0aGUgc2NhbGUgbWFwIGNvbnRyb2wKICAgICAqCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVuYWJsZVNjYWxlQ29udHJvbCgpIHsKICAgICAgICAkdGhpcy0+c2NhbGVfY29udHJvbCA9IHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBkaXNhYmxlcyB0aGUgc2NhbGUgbWFwIGNvbnRyb2wKICAgICAqCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpc2FibGVTY2FsZUNvbnRyb2woKSB7CiAgICAgICAgJHRoaXMtPnNjYWxlX2NvbnRyb2wgPSBmYWxzZTsKICAgIH0gICAgCiAgICAgICAgICAgIAogICAgLyoqCiAgICAgKiBlbmFibGVzIHRoZSBvdmVydmlldyBtYXAgY29udHJvbAogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gZW5hYmxlT3ZlcnZpZXdDb250cm9sKCkgewogICAgICAgICR0aGlzLT5vdmVydmlld19jb250cm9sID0gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIGRpc2FibGVzIHRoZSBvdmVydmlldyBtYXAgY29udHJvbAogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gZGlzYWJsZU92ZXJ2aWV3Q29udHJvbCgpIHsKICAgICAgICAkdGhpcy0+b3ZlcnZpZXdfY29udHJvbCA9IGZhbHNlOwogICAgIH0gICAgCiAgICAKCiAgICAvKioKICAgICAqCiAgICAgKiBzZXQgY29tYmluZSBwb2ludHMgZmxhZwogICAgICovCiAgICBmdW5jdGlvbiBzZXRfY29tYmluZV9wb2ludHMoJGZsYWcgPSBmYWxzZSwkZnVkZ2UgPSAwLCRpY29uID0gJycsJG1ldGhvZCA9IHNlbGY6OmNvbWJpbmVfZmxhdCkKICAgIHsKICAgICAgJHRoaXMtPl9jb21iaW5lX3BvaW50cyA9ICRmbGFnOwogICAgICAkdGhpcy0+X3BvaW50X2NvbWJpbmVfZnVkZ2UgPSAoZmxvYXQpJGZ1ZGdlOwogICAgICBpZiggJGljb24gPT0gJycgKSAkaWNvbiA9IHNlbGY6OmRmbHRfaWNvbl9uYW1lOwogICAgICAkdGhpcy0+X2NvbWJpbmVkX3BvaW50c19pY29uID0gJGljb247CiAgICAgICR0aGlzLT5fY29tYmluZV9wb2ludHNfbWV0aG9kID0gJG1ldGhvZDsKICAgIH0KCgogICAgLyoqCiAgICAgKiBzZXQgdGhlIGxvb2t1cCBzZXJ2aWNlIHRvIHVzZSBmb3IgZ2VvY29kZSBsb29rdXBzCiAgICAgKiBkZWZhdWx0IGlzIFlBSE9PLCB5b3UgY2FuIGFsc28gdXNlIEdPT0dMRS4KICAgICAqIE5PVEU6IEdPT0dMRSBjYW4gdG8gaW50bCBsb29rdXBzLCBidXQgaXMgbm90IGFuCiAgICAgKiBvZmZpY2lhbCBBUEksIHNvIHVzZSBhdCB5b3VyIG93biByaXNrLgogICAgICoKICAgICAqLwogICAgZnVuY3Rpb24gc2V0TG9va3VwU2VydmljZSgkc2VydmljZSkgewogICAgICAgIHN3aXRjaCgkc2VydmljZSkgewogICAgICAgICAgICBjYXNlICdHT09HTEUnOgogICAgICAgICAgICAgICAgJHRoaXMtPmxvb2t1cF9zZXJ2aWNlID0gJ0dPT0dMRSc7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnWUFIT08nOgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgJHRoaXMtPmxvb2t1cF9zZXJ2aWNlID0gJ1lBSE9PJzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0gICAgICAgCiAgICB9CiAgICAKICAgICAgICAKICAgIC8qKgogICAgICogYWRkcyBhIG1hcCBtYXJrZXIgYnkgYWRkcmVzcwogICAgICogCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIHRoZSBtYXAgYWRkcmVzcyB0byBtYXJrIChzdHJlZXQvY2l0eS9zdGF0ZS96aXApCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZSB0aGUgdGl0bGUgZGlzcGxheSBpbiB0aGUgc2lkZWJhcgogICAgICogQHBhcmFtIHN0cmluZyAkaHRtbCB0aGUgSFRNTCBibG9jayB0byBkaXNwbGF5IGluIHRoZSBpbmZvIGJ1YmJsZSAoaWYgZW1wdHksIHRpdGxlIGlzIHVzZWQpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFkZE1hcmtlckJ5QWRkcmVzcygkbmFtZSwkYWRkcmVzcywkdGl0bGUgPSAnJywkaHRtbCA9ICcnLCR0b29sdGlwID0gJycsJGljb24gPSBzZWxmOjpkZmx0X2ljb25fbmFtZSwkc2lkZWJhcl9jbGFzcyA9ICcnKSB7CiAgICAgICAgaWYoKCRfZ2VvY29kZSA9ICR0aGlzLT5nZXRHZW9jb2RlKCRhZGRyZXNzKSkgPT09IGZhbHNlKQoJICB7CiAgICAgICAgICAgIHJldHVybiBGQUxTRTsKCSAgfQogICAgICAgIHJldHVybiAkdGhpcy0+YWRkTWFya2VyQnlDb29yZHMoJG5hbWUsJF9nZW9jb2RlWydsb24nXSwkX2dlb2NvZGVbJ2xhdCddLCR0aXRsZSwKCQkJCQkkaHRtbCwkdG9vbHRpcCwkaWNvbiwkc2lkZWJhcl9jbGFzcyk7CiAgICB9CgogICAgcHJpdmF0ZSBmdW5jdGlvbiBjbGVhbl9mb3JfamF2YXNjcmlwdCgkaW5wdXQpCiAgICB7CiAgICAgICRpbnB1dCA9IGFkZHNsYXNoZXMoJGlucHV0KTsKICAgICAgJGlucHV0ID0gc3RyX3JlcGxhY2UoJ1wiJywnIicsJGlucHV0KTsKICAgICAgJGlucHV0ID0gc3RyX3JlcGxhY2UoYXJyYXkoIlxyIiwiXG4iKSwnJywkaW5wdXQpOwogICAgICByZXR1cm4gJGlucHV0OwogICAgfQoKICAgIC8qKgogICAgICogYWRkcyBhIG1hcCBtYXJrZXIgYnkgZ2VvY29kZQogICAgICogCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsb24gdGhlIG1hcCBsb25naXR1ZGUgKGhvcml6b250YWwpCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsYXQgdGhlIG1hcCBsYXRpdHVkZSAodmVydGljYWwpCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0aXRsZSB0aGUgdGl0bGUgZGlzcGxheSBpbiB0aGUgc2lkZWJhcgogICAgICogQHBhcmFtIHN0cmluZyAkaHRtbHxhcnJheSAkaHRtbCAKICAgICAqICAgICBzdHJpbmc6IHRoZSBIVE1MIGJsb2NrIHRvIGRpc3BsYXkgaW4gdGhlIGluZm8gYnViYmxlIChpZiBlbXB0eSwgdGl0bGUgaXMgdXNlZCkKICAgICAqICAgICBhcnJheTogVGhlIHRpdGxlID0+IGNvbnRlbnQgcGFpcnMgZm9yIGEgdGFiYmVkIGluZm8gYnViYmxlICAgICAKICAgICAqLwogICAgLy8gVE9ETyBtYWtlIGl0IHNvIHlvdSBjYW4gc3BlY2lmeSB3aGljaCB0YWIgeW91IHdhbnQgdGhlIGRpcmVjdGlvbnMgdG8gYXBwZWFyIGluIChhZGQgYW5vdGhlciBhcmcpCiAgICBmdW5jdGlvbiBhZGRNYXJrZXJCeUNvb3JkcygkbmFtZSwkbG9uLCRsYXQsJHRpdGxlID0gJycsJGh0bWwgPSAnJywkdG9vbHRpcCA9ICcnLAoJCQkgICAgICAgJGljb24gPSBzZWxmOjpkZmx0X2ljb25fbmFtZSwkc2lkZWJhcl9jbGFzcyA9ICcnKSAKICAgIHsKICAgICAgLy8gY2xlYW4gdXAgY3J1ZnQuCiAgICAgIC8vJHRpdGxlID0gY21zX2h0bWxlbnRpdGllcygkdGl0bGUsJycsJ1VURi04Jyx0cnVlKTsKICAgICAgJGh0bWwgPSAoaXNfYXJyYXkoJGh0bWwpIHx8IHN0cmxlbigkaHRtbCkgPiAwKSA/ICRodG1sIDogJHRpdGxlOwoKICAgICAgJHRvb2x0aXAgPSAkdGhpcy0+Y2xlYW5fZm9yX2phdmFzY3JpcHQoJHRvb2x0aXApOwogICAgICAkdGl0bGUgPSAkdGhpcy0+Y2xlYW5fZm9yX2phdmFzY3JpcHQoJHRpdGxlKTsKICAgICAgaWYoIGlzX2FycmF5KCRodG1sKSApCgl7CgkgIGZvciggJGkgPSAwOyAkaSA8IGNvdW50KCRodG1sKTsgJGkrKyApCgkgICAgewoJICAgICAgJGh0bWxbJGldID0gJHRoaXMtPmNsZWFuX2Zvcl9qYXZhc2NyaXB0KCRodG1sWyRpXSk7CgkgICAgICAkaHRtbFskaV0gPSAnPGRpdiBjbGFzcz0iY2dnbV9wb2ludCI+Jy4kaHRtbFskaV0uJzwvZGl2Pic7CgkgICAgfQoJfQogICAgICBlbHNlCgl7CgkgICRodG1sID0gJzxkaXYgY2xhc3M9ImNnZ21fcG9pbnQiPicuJHRoaXMtPmNsZWFuX2Zvcl9qYXZhc2NyaXB0KCRodG1sKS4nPC9kaXY+JzsKCX0KCiAgICAgIC8vIGNvbWUgdXAgd2l0aCBhIHNpbXBsZSwgYWxpYXMgdHlwZSBuYW1lLgogICAgICAkbmFtZSA9IG11bmdlX3N0cmluZ190b191cmwoJG5hbWUpOwogICAgICAkbmFtZSA9IHN0cl9yZXBsYWNlKCctJywnXycsJG5hbWUpOwogICAgICBmb3IoICRpID0gMDsgJGkgPCAxMDsgJGkrKyApCgl7CgkgICRuZXdfbmFtZSA9IHN0cl9yZXBsYWNlKCdfXycsJ18nLCRuYW1lKTsKCSAgaWYoICRuZXdfbmFtZSA9PSAkbmFtZSApIGJyZWFrOwoJICAkbmFtZSA9ICRuZXdfbmFtZTsKCX0KICAgICAgaWYoIGlzc2V0KCR0aGlzLT5fbWFya2Vyc1skbmFtZV0pICkKCXsKCSAgLy8gaXQgYWxyZWFkeSBleGlzdHMuCgkgICRzdWZmaXggPSAyOwoJICB3aGlsZSggJHN1ZmZpeCA8IDEwICYmIGlzc2V0KCR0aGlzLT5fbWFya2Vyc1skbmFtZS4nXycuJHN1ZmZpeF0pICkKCSAgICB7CgkgICAgICAkc3VmZml4Kys7CgkgICAgfQoJICAkbmFtZSA9ICRuYW1lLidfJy4kc3VmZml4OwoJfQoKICAgICAgaWYoICR0aGlzLT5zaWRlYmFyICkKCXsKCSAgaWYoICFpc19hcnJheSgkdGhpcy0+X3NpZGViYXJfbGlzdCkgKQoJICAgIHsKCSAgICAgICR0aGlzLT5fc2lkZWJhcl9saXN0ID0gYXJyYXkoKTsKCSAgICAgICR0aGlzLT5fbWFya2VyX2xpc3QgPSBhcnJheSgpOwoJICAgIH0KCSAgJHN0ciA9ICcnOwoJICBpZiggJHNpZGViYXJfY2xhc3MgKQoJICAgIHsKCSAgICAgICRzdHIgPSAnIGNsYXNzPSInLnRyaW0oJHNpZGViYXJfY2xhc3MpLiciJzsKCSAgICB9CgkgICR0aGlzLT5fc2lkZWJhcl9saXN0WyRuYW1lXSA9ICc8bGknLiRzdHIuJz48c3BhbiBjbGFzcz0ic2lkZWJhcl90aXRsZSI+PGEgaHJlZj0iamF2YXNjcmlwdDpjbGlja19zaWRlYmFyKFxcXCcnLiRuYW1lLidcXFwnKSI+Jy4kdGl0bGUuJzwvYT48c3Bhbj48YnIvPicuJGh0bWwuJzwvbGk+JzsKCSAgJHRoaXMtPl9tYXJrZXJfbGlzdFskbmFtZV0gPSAkaHRtbDsKCX0KCiAgICAgIGlmKCAkdGhpcy0+X2NvbWJpbmVfcG9pbnRzICYmICR0aGlzLT5fcG9pbnRfY29tYmluZV9mdWRnZSA+IDAuMCApCgl7CgkgIGZvcmVhY2goICR0aGlzLT5fbWFya2VycyBhcyAka2V5ID0+ICYkdG0gKQoJICAgIHsKCSAgICAgIC8vIGNhbGN1bGF0ZSBib3VuZGluZyBib3guCgkgICAgICAkYm94X3RvcGxhdCA9ICR0bVsnbGF0J10gLSAkdGhpcy0+X3BvaW50X2NvbWJpbmVfZnVkZ2U7CgkgICAgICAkYm94X3RvcGxvbiA9ICR0bVsnbG9uJ10gLSAkdGhpcy0+X3BvaW50X2NvbWJpbmVfZnVkZ2U7CgkgICAgICAkYm94X2JvdGxhdCA9ICR0bVsnbGF0J10gKyAkdGhpcy0+X3BvaW50X2NvbWJpbmVfZnVkZ2U7CgkgICAgICAkYm94X2JvdGxvbiA9ICR0bVsnbG9uJ10gKyAkdGhpcy0+X3BvaW50X2NvbWJpbmVfZnVkZ2U7CgkgICAgICBpZiggJGxhdCA+PSAkYm94X3RvcGxhdCAmJiAkbGF0IDw9ICRib3hfYm90bGF0ICYmCgkJICAkbG9uID49ICRib3hfdG9wbG9uICYmICRsb24gPD0gJGJveF9ib3Rsb24gKQoJCXsKCQkgIC8vIG92ZXJsYXBzIGFuIGV4aXN0aW5nIHBvaW50LgoJCSAgc3dpdGNoKCAkdGhpcy0+X2NvbWJpbmVfcG9pbnRzX21ldGhvZCApCgkJICAgIHsKCQkgICAgY2FzZSBzZWxmOjpjb21iaW5lX3RvX3RhYnM6CgkJICAgICAgaWYoICFpc19hcnJheSgkdG1bJ2h0bWwnXSkgKQoJCQl7CgkJCSAgLy8gbWFrZSBzaW5nbGUgc3RydWN0dXJlIGludG8gYW4gYXJyYXkuCgkJCSAgJHRtcCA9ICR0bVsnaHRtbCddOwoJCQkgICR0bVsnaHRtbCddID0gYXJyYXkoKTsKCQkJICAkdG1bJ2h0bWwnXVskdG1bJ3RpdGxlJ11dID0gJHRtcDsKCQkJfQoJCSAgICAgIAoJCSAgICAgICR0bVsnaHRtbCddWyR0aXRsZV0gPSAkaHRtbDsKCQkgICAgICAkdG1bJ2ljb24nXSA9ICR0aGlzLT5fY29tYmluZWRfcG9pbnRzX2ljb247CgkJICAgICAgJHRtWyducG9pbnRzJ10rKzsKCQkgICAgICBicmVhazsKCgkJICAgIGNhc2Ugc2VsZjo6Y29tYmluZV9mbGF0OgoJCSAgICAgICR0bVsnaWNvbiddID0gJHRoaXMtPl9jb21iaW5lZF9wb2ludHNfaWNvbjsKCQkgICAgICAkdG1bJ25wb2ludHMnXSsrOwoJCSAgICAgICR0bVsnaHRtbCddIC49ICc8ZGl2IGNsYXNzPSJjZ2dtX3BvaW50X3NlcGFyYXRvciI+PC9kaXY+Jy4kaHRtbDsKCQkgICAgICBicmVhazsKCQkgICAgfQoKCQkgIC8vIGNhbiBvbmx5IG92ZXJsYXAgb25jZS4KCQkgICR0aGlzLT5fbWFya2VyX2FsaWFzZXNbJG5hbWVdID0gJHRtWyduYW1lJ107CgkJICByZXR1cm47CgkJfQoJICAgIH0KCX0KCiAgICAgICAgaWYoICRpY29uID09ICcnICkgJGljb24gPSBzZWxmOjpkZmx0X2ljb25fbmFtZTsKCgkkX21hcmtlclsnbmFtZSddID0gJG5hbWU7CiAgICAgICAgJF9tYXJrZXJbJ2xvbiddID0gJGxvbjsKICAgICAgICAkX21hcmtlclsnbGF0J10gPSAkbGF0OwogICAgICAgICRfbWFya2VyWydodG1sJ10gPSAkaHRtbDsKICAgICAgICAkX21hcmtlclsndGl0bGUnXSA9ICR0aXRsZTsKICAgICAgICAkX21hcmtlclsndG9vbHRpcCddID0gJHRvb2x0aXA7CgkkX21hcmtlclsnaWNvbiddID0gJGljb247CgkkX21hcmtlclsnbnBvaW50cyddID0gMTsKCiAgICAgICAgJHRoaXMtPl9tYXJrZXJzWyRuYW1lXSA9ICRfbWFya2VyOwoJJHRoaXMtPl9tYXJrZXJfYWxpYXNlc1skbmFtZV0gPSAkbmFtZTsKICAgICAgICAkdGhpcy0+YWRqdXN0Q2VudGVyQ29vcmRzKCRfbWFya2VyWydsb24nXSwkX21hcmtlclsnbGF0J10pOwogICAgICAgIC8vIHJldHVybiBpbmRleCBvZiBtYXJrZXIKICAgICAgICByZXR1cm4gY291bnQoJHRoaXMtPl9tYXJrZXJzKSAtIDE7CiAgICB9CgogICAgLyoqCiAgICAgKiBhZGRzIGEgbWFwIHBvbHlsaW5lIGJ5IGFkZHJlc3MKICAgICAqIGlmIGNvbG9yLCB3ZWlnaHQgYW5kIG9wYWNpdHkgYXJlIG5vdCBkZWZpbmVkLCB1c2UgdGhlIGdvb2dsZSBtYXBzIGRlZmF1bHRzCiAgICAgKiAKICAgICAqIEBwYXJhbSBzdHJpbmcgJGFkZHJlc3MxIHRoZSBtYXAgYWRkcmVzcyB0byBkcmF3IGZyb20KICAgICAqIEBwYXJhbSBzdHJpbmcgJGFkZHJlc3MyIHRoZSBtYXAgYWRkcmVzcyB0byBkcmF3IHRvCiAgICAgKiBAcGFyYW0gc3RyaW5nICRjb2xvciB0aGUgY29sb3Igb2YgdGhlIGxpbmUgKGZvcm1hdDogIzAwMDAwMCkKICAgICAqIEBwYXJhbSBzdHJpbmcgJHdlaWdodCB0aGUgd2VpZ2h0IG9mIHRoZSBsaW5lIGluIHBpeGVscwogICAgICogQHBhcmFtIHN0cmluZyAkb3BhY2l0eSB0aGUgbGluZSBvcGFjaXR5IChwZXJjZW50YWdlKQogICAgICovCiAgICBmdW5jdGlvbiBhZGRQb2x5TGluZUJ5QWRkcmVzcygkYWRkcmVzczEsJGFkZHJlc3MyLCRjb2xvcj0nJywkd2VpZ2h0PTAsJG9wYWNpdHk9MCkgewogICAgICAgIGlmKCgkX2dlb2NvZGUxID0gJHRoaXMtPmdldEdlb2NvZGUoJGFkZHJlc3MxKSkgPT09IGZhbHNlKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgaWYoKCRfZ2VvY29kZTIgPSAkdGhpcy0+Z2V0R2VvY29kZSgkYWRkcmVzczIpKSA9PT0gZmFsc2UpCiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICByZXR1cm4gJHRoaXMtPmFkZFBvbHlMaW5lQnlDb29yZHMoJF9nZW9jb2RlMVsnbG9uJ10sJF9nZW9jb2RlMVsnbGF0J10sJF9nZW9jb2RlMlsnbG9uJ10sJF9nZW9jb2RlMlsnbGF0J10sJGNvbG9yLCR3ZWlnaHQsJG9wYWNpdHkpOwogICAgfQoKICAgIC8qKgogICAgICogYWRkcyBhIG1hcCBwb2x5bGluZSBieSBtYXAgY29vcmRpbmF0ZXMKICAgICAqIGlmIGNvbG9yLCB3ZWlnaHQgYW5kIG9wYWNpdHkgYXJlIG5vdCBkZWZpbmVkLCB1c2UgdGhlIGdvb2dsZSBtYXBzIGRlZmF1bHRzCiAgICAgKiAKICAgICAqIEBwYXJhbSBzdHJpbmcgJGxvbjEgdGhlIG1hcCBsb25naXR1ZGUgdG8gZHJhdyBmcm9tCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsYXQxIHRoZSBtYXAgbGF0aXR1ZGUgdG8gZHJhdyBmcm9tCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsb24yIHRoZSBtYXAgbG9uZ2l0dWRlIHRvIGRyYXcgdG8KICAgICAqIEBwYXJhbSBzdHJpbmcgJGxhdDIgdGhlIG1hcCBsYXRpdHVkZSB0byBkcmF3IHRvCiAgICAgKiBAcGFyYW0gc3RyaW5nICRjb2xvciB0aGUgY29sb3Igb2YgdGhlIGxpbmUgKGZvcm1hdDogIzAwMDAwMCkKICAgICAqIEBwYXJhbSBzdHJpbmcgJHdlaWdodCB0aGUgd2VpZ2h0IG9mIHRoZSBsaW5lIGluIHBpeGVscwogICAgICogQHBhcmFtIHN0cmluZyAkb3BhY2l0eSB0aGUgbGluZSBvcGFjaXR5IChwZXJjZW50YWdlKQogICAgICovCiAgICBmdW5jdGlvbiBhZGRQb2x5TGluZUJ5Q29vcmRzKCRsb24xLCRsYXQxLCRsb24yLCRsYXQyLCRjb2xvcj0nJywkd2VpZ2h0PTAsJG9wYWNpdHk9MCkgewogICAgICAgICRfcG9seWxpbmVbJ2xvbjEnXSA9ICRsb24xOwogICAgICAgICRfcG9seWxpbmVbJ2xhdDEnXSA9ICRsYXQxOwogICAgICAgICRfcG9seWxpbmVbJ2xvbjInXSA9ICRsb24yOwogICAgICAgICRfcG9seWxpbmVbJ2xhdDInXSA9ICRsYXQyOwogICAgICAgICRfcG9seWxpbmVbJ2NvbG9yJ10gPSAkY29sb3I7CiAgICAgICAgJF9wb2x5bGluZVsnd2VpZ2h0J10gPSAkd2VpZ2h0OwogICAgICAgICRfcG9seWxpbmVbJ29wYWNpdHknXSA9ICRvcGFjaXR5OwogICAgICAgICR0aGlzLT5fcG9seWxpbmVzW10gPSAkX3BvbHlsaW5lOwogICAgICAgICR0aGlzLT5hZGp1c3RDZW50ZXJDb29yZHMoJF9wb2x5bGluZVsnbG9uMSddLCRfcG9seWxpbmVbJ2xhdDEnXSk7CiAgICAgICAgJHRoaXMtPmFkanVzdENlbnRlckNvb3JkcygkX3BvbHlsaW5lWydsb24yJ10sJF9wb2x5bGluZVsnbGF0MiddKTsKICAgICAgICAvLyByZXR1cm4gaW5kZXggb2YgcG9seWxpbmUKICAgICAgICByZXR1cm4gY291bnQoJHRoaXMtPl9wb2x5bGluZXMpIC0gMTsKICAgIH0gICAgICAgIAogICAgICAgIAogICAgLyoqCiAgICAgKiBhZGp1c3QgbWFwIGNlbnRlciBjb29yZGluYXRlcyBieSB0aGUgZ2l2ZW4gbGF0L2xvbiBwb2ludAogICAgICogCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsb24gdGhlIG1hcCBsYXRpdHVkZSAoaG9yaXpvbnRhbCkKICAgICAqIEBwYXJhbSBzdHJpbmcgJGxhdCB0aGUgbWFwIGxhdGl0dWRlICh2ZXJ0aWNhbCkKICAgICAqLwogICAgZnVuY3Rpb24gYWRqdXN0Q2VudGVyQ29vcmRzKCRsb24sJGxhdCkgewogICAgICAgIGlmKHN0cmxlbigoc3RyaW5nKSRsb24pID09IDAgfHwgc3RybGVuKChzdHJpbmcpJGxhdCkgPT0gMCkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICR0aGlzLT5fbWF4X2xvbiA9IChmbG9hdCkgbWF4KCRsb24sICR0aGlzLT5fbWF4X2xvbik7CiAgICAgICAgJHRoaXMtPl9taW5fbG9uID0gKGZsb2F0KSBtaW4oJGxvbiwgJHRoaXMtPl9taW5fbG9uKTsKICAgICAgICAkdGhpcy0+X21heF9sYXQgPSAoZmxvYXQpIG1heCgkbGF0LCAkdGhpcy0+X21heF9sYXQpOwogICAgICAgICR0aGlzLT5fbWluX2xhdCA9IChmbG9hdCkgbWluKCRsYXQsICR0aGlzLT5fbWluX2xhdCk7CiAgICAgICAgCiAgICAgICAgJHRoaXMtPmNlbnRlcl9sb24gPSAoZmxvYXQpICgkdGhpcy0+X21pbl9sb24gKyAkdGhpcy0+X21heF9sb24pIC8gMjsKICAgICAgICAkdGhpcy0+Y2VudGVyX2xhdCA9IChmbG9hdCkgKCR0aGlzLT5fbWluX2xhdCArICR0aGlzLT5fbWF4X2xhdCkgLyAyOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8qKgogICAgICogc2V0IG1hcCBjZW50ZXIgY29vcmRpbmF0ZXMgdG8gbGF0L2xvbiBwb2ludAogICAgICogCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsb24gdGhlIG1hcCBsYXRpdHVkZSAoaG9yaXpvbnRhbCkKICAgICAqIEBwYXJhbSBzdHJpbmcgJGxhdCB0aGUgbWFwIGxhdGl0dWRlICh2ZXJ0aWNhbCkKICAgICAqLwogICAgZnVuY3Rpb24gc2V0Q2VudGVyQ29vcmRzKCRsb24sJGxhdCkgewogICAgICAgICR0aGlzLT5jZW50ZXJfbGF0ID0gKGZsb2F0KSAkbGF0OwogICAgICAgICR0aGlzLT5jZW50ZXJfbG9uID0gKGZsb2F0KSAkbG9uOwogICAgfSAgICAKCiAgICAvKioKICAgICAqIGdlbmVyYXRlIGFuIGFycmF5IG9mIHBhcmFtcyBmb3IgYSBuZXcgbWFya2VyIGljb24gaW1hZ2UKICAgICAqIGljb25TaGFkb3dJbWFnZSBpcyBvcHRpb25hbAogICAgICogSWYgYW5jaG9yIGNvb3JkcyBhcmUgbm90IHN1cHBsaWVkLCB3ZSB1c2UgdGhlIGNlbnRlciBwb2ludCBvZiB0aGUgaW1hZ2UgYnkgZGVmYXVsdC4gCiAgICAgKiBDYW4gYmUgY2FsbGVkIHN0YXRpY2FsbHkuIEZvciBwcml2YXRlIHVzZSBieSBhZGRNYXJrZXJJY29uKCkgYW5kIHNldE1hcmtlckljb24oKQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGljb25JbWFnZSBVUkwgdG8gaWNvbiBpbWFnZQogICAgICogQHBhcmFtIHN0cmluZyAkaWNvblNoYWRvd0ltYWdlIFVSTCB0byBzaGFkb3cgaW1hZ2UKICAgICAqIEBwYXJhbSBzdHJpbmcgJGljb25BbmNob3JYIFggY29vcmRpbmF0ZSBmb3IgaWNvbiBhbmNob3IgcG9pbnQKICAgICAqIEBwYXJhbSBzdHJpbmcgJGljb25BbmNob3JZIFkgY29vcmRpbmF0ZSBmb3IgaWNvbiBhbmNob3IgcG9pbnQKICAgICAqIEBwYXJhbSBzdHJpbmcgJGluZm9XaW5kb3dBbmNob3JYIFggY29vcmRpbmF0ZSBmb3IgaW5mbyB3aW5kb3cgYW5jaG9yIHBvaW50CiAgICAgKiBAcGFyYW0gc3RyaW5nICRpbmZvV2luZG93QW5jaG9yWSBZIGNvb3JkaW5hdGUgZm9yIGluZm8gd2luZG93IGFuY2hvciBwb2ludAogICAgICovCiAgICBwcml2YXRlIGZ1bmN0aW9uIGNyZWF0ZU1hcmtlckljb24oJGljb25OYW1lLCRpY29uSW1hZ2UsJGljb25TaGFkb3dJbWFnZSA9ICcnLCRpY29uQW5jaG9yWCA9ICd4JywkaWNvbkFuY2hvclkgPSAneCcsJGluZm9XaW5kb3dBbmNob3JYID0gJ3gnLCRpbmZvV2luZG93QW5jaG9yWSA9ICd4JykgewogICAgICAgICRfaWNvbl9pbWFnZV9wYXRoID0gc3RycG9zKCRpY29uSW1hZ2UsJ2h0dHAnKSA9PT0gMCA/ICRpY29uSW1hZ2UgOiAkX1NFUlZFUlsnRE9DVU1FTlRfUk9PVCddIC4gJGljb25JbWFnZTsKICAgICAgICBpZighKCRfaW1hZ2VfaW5mbyA9IEBnZXRpbWFnZXNpemUoJF9pY29uX2ltYWdlX3BhdGgpKSkgewogICAgICAgICAgICBkaWUoJ0dvb2dsZU1hcEFQSTpjcmVhdGVNYXJrZXJJY29uOiBFcnJvciByZWFkaW5nIGltYWdlOiAnIC4gJGljb25JbWFnZSk7ICAgCiAgICAgICAgfQogICAgICAgIGlmKCRpY29uU2hhZG93SW1hZ2UpIHsKICAgICAgICAgICAgJF9zaGFkb3dfaW1hZ2VfcGF0aCA9IHN0cnBvcygkaWNvblNoYWRvd0ltYWdlLCdodHRwJykgPT09IDAgPyAkaWNvblNoYWRvd0ltYWdlIDogJF9TRVJWRVJbJ0RPQ1VNRU5UX1JPT1QnXSAuICRpY29uU2hhZG93SW1hZ2U7CiAgICAgICAgICAgIGlmKCEoJF9zaGFkb3dfaW5mbyA9IEBnZXRpbWFnZXNpemUoJF9zaGFkb3dfaW1hZ2VfcGF0aCkpKSB7CiAgICAgICAgICAgICAgICBkaWUoJ0dvb2dsZU1hcEFQSTpjcmVhdGVNYXJrZXJJY29uOiBFcnJvciByZWFkaW5nIGltYWdlOiAnIC4gJGljb25TaGFkb3dJbWFnZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYoJGljb25BbmNob3JYID09PSAneCcpIHsKICAgICAgICAgICAgJGljb25BbmNob3JYID0gKGludCkgKCRfaW1hZ2VfaW5mb1swXSAvIDIpOwogICAgICAgIH0KICAgICAgICBpZigkaWNvbkFuY2hvclkgPT09ICd4JykgewogICAgICAgICAgICAkaWNvbkFuY2hvclkgPSAoaW50KSAoJF9pbWFnZV9pbmZvWzFdIC8gMik7CiAgICAgICAgfQogICAgICAgIGlmKCRpbmZvV2luZG93QW5jaG9yWCA9PT0gJ3gnKSB7CiAgICAgICAgICAgICRpbmZvV2luZG93QW5jaG9yWCA9IChpbnQpICgkX2ltYWdlX2luZm9bMF0gLyAyKTsKICAgICAgICB9CiAgICAgICAgaWYoJGluZm9XaW5kb3dBbmNob3JZID09PSAneCcpIHsKICAgICAgICAgICAgJGluZm9XaW5kb3dBbmNob3JZID0gKGludCkgKCRfaW1hZ2VfaW5mb1sxXSAvIDIpOwogICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgJGljb25faW5mbyA9IGFycmF5KAoJCQkgICAnbmFtZSc9PiRpY29uTmFtZSwKCQkJICAgJ2ltYWdlJyA9PiAkaWNvbkltYWdlLAoJCQkgICAnaWNvbldpZHRoJyA9PiAkX2ltYWdlX2luZm9bMF0sCgkJCSAgICdpY29uSGVpZ2h0JyA9PiAkX2ltYWdlX2luZm9bMV0sCgkJCSAgICdpY29uQW5jaG9yWCcgPT4gJGljb25BbmNob3JYLAoJCQkgICAnaWNvbkFuY2hvclknID0+ICRpY29uQW5jaG9yWSwKCQkJICAgJ2luZm9XaW5kb3dBbmNob3JYJyA9PiAkaW5mb1dpbmRvd0FuY2hvclgsCgkJCSAgICdpbmZvV2luZG93QW5jaG9yWScgPT4gJGluZm9XaW5kb3dBbmNob3JZCgkJCSAgICk7CiAgICAgICAgaWYoJGljb25TaGFkb3dJbWFnZSkgewogICAgICAgICAgICAkaWNvbl9pbmZvID0gYXJyYXlfbWVyZ2UoJGljb25faW5mbywgYXJyYXkoJ3NoYWRvdycgPT4gJGljb25TaGFkb3dJbWFnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dXaWR0aCcgPT4gJF9zaGFkb3dfaW5mb1swXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaGFkb3dIZWlnaHQnID0+ICRfc2hhZG93X2luZm9bMV0pKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRpY29uX2luZm87CiAgICB9CiAgICAKICAgIC8qKgogICAgICogc2V0IHRoZSBtYXJrZXIgaWNvbiBmb3IgQUxMIG1hcmtlcnMgb24gdGhlIG1hcAogICAgICovCiAgICBmdW5jdGlvbiBzZXRNYXJrZXJJY29uKCRpY29uTmFtZSwkaWNvbkltYWdlLCRpY29uU2hhZG93SW1hZ2UgPSAnJywkaWNvbkFuY2hvclggPSAneCcsJGljb25BbmNob3JZID0gJ3gnLCRpbmZvV2luZG93QW5jaG9yWCA9ICd4JywkaW5mb1dpbmRvd0FuY2hvclkgPSAneCcpIHsKICAgICAgJHRoaXMtPl9pY29uc1skaWNvbk5hbWVdID0gYXJyYXkoJHRoaXMtPmNyZWF0ZU1hcmtlckljb24oJGljb25OYW1lLCRpY29uSW1hZ2UsJGljb25TaGFkb3dJbWFnZSwkaWNvbkFuY2hvclgsJGljb25BbmNob3JZLCRpbmZvV2luZG93QW5jaG9yWCwkaW5mb1dpbmRvd0FuY2hvclkpKTsKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBhZGQgYW4gaWNvbiB0byBnbyB3aXRoIHRoZSBjb3JyZXNwb25kaW5nbHkgYWRkZWQgbWFya2VyCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFkZE1hcmtlckljb24oJGljb25OYW1lLCRpY29uSW1hZ2UsJGljb25TaGFkb3dJbWFnZSA9ICcnLCRpY29uQW5jaG9yWCA9ICd4JywkaWNvbkFuY2hvclkgPSAneCcsJGluZm9XaW5kb3dBbmNob3JYID0gJ3gnLCRpbmZvV2luZG93QW5jaG9yWSA9ICd4JykgewogICAgICAkdGhpcy0+X2ljb25zWyRpY29uTmFtZV0gPSAkdGhpcy0+Y3JlYXRlTWFya2VySWNvbigkaWNvbk5hbWUsJGljb25JbWFnZSwkaWNvblNoYWRvd0ltYWdlLCRpY29uQW5jaG9yWCwkaWNvbkFuY2hvclksJGluZm9XaW5kb3dBbmNob3JYLCRpbmZvV2luZG93QW5jaG9yWSk7CiAgICAgIHJldHVybiBjb3VudCgkdGhpcy0+X2ljb25zKSAtIDE7CiAgICB9CgogICAgLyoqCiAgICAgKiBwcmludCBtYXAgaGVhZGVyIGphdmFzY3JpcHQgKGdvZXMgYmV0d2VlbiA8aGVhZD48L2hlYWQ+KQogICAgICogCiAgICAgKi8KICAgIGZ1bmN0aW9uIHByaW50SGVhZGVySlMoKSB7CiAgICAgICAgZWNobyAkdGhpcy0+Z2V0SGVhZGVySlMoKTsgICAKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiByZXR1cm4gbWFwIGhlYWRlciBqYXZhc2NyaXB0IChnb2VzIGJldHdlZW4gPGhlYWQ+PC9oZWFkPikKICAgICAqIAogICAgICovCiAgICBmdW5jdGlvbiBnZXRIZWFkZXJKUygkZGVmZXIgPSAwKSB7CiAgICAgICRkZWZlcnR4dD0nJzsKICAgICAgaWYoICRkZWZlciApICRkZWZlcnR4dCA9ICcgZGVmZXI9ImRlZmVyIic7CiAgICAgIHJldHVybiBzcHJpbnRmKCc8c2NyaXB0IHNyYz0iaHR0cDovL21hcHMuZ29vZ2xlLmNvbS9tYXBzP2ZpbGU9YXBpJmFtcDt2PTIuMTE4JmFtcDtrZXk9JXMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiJy4kZGVmZXJ0eHQuJz48L3NjcmlwdD4nLCAkdGhpcy0+YXBpX2tleSk7CiAgICB9ICAgIAogICAgCiAgIC8qKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAqIHByaW50cyBvbkxvYWQoKSB3aXRob3V0IGhhdmluZyB0byBtYW5pcHVsYXRlIGJvZHkgdGFnLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgKiBjYWxsIHRoaXMgYWZ0ZXIgdGhlIHByaW50IG1hcCBsaWtlIHNvLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICogICAgICAkbWFwLT5wcmludE1hcCgpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAqICAgICAgJG1hcC0+cHJpbnRPbkxvYWQoKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgIGZ1bmN0aW9uIHByaW50T25Mb2FkKCkgewogICAgICAgIGVjaG8gJHRoaXMtPmdldE9uTG9hZCgpOwogICAgfQoKICAgIC8qKgogICAgICogcmV0dXJuIGpzIHRvIHNldCBvbmxvYWQgZnVuY3Rpb24KICAgICAqLwogICAgZnVuY3Rpb24gZ2V0T25Mb2FkKCkgewogICAgICAgIHJldHVybiAnPHNjcmlwdCBsYW5ndWFnZT0iamF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+d2luZG93Lm9ubG9hZD1vbkxvYWQ7PC9zY3JpcHQ+JzsgICAgICAgICAgICAgICAgICAgICAgIAogICAgfQoKICAgIC8qKgogICAgICogcHJpbnQgbWFwIGphdmFzY3JpcHQgKHB1dCBqdXN0IGJlZm9yZSA8L2JvZHk+LCBvciBpbiA8aGVhZGVyPiBpZiB1c2luZyBvbkxvYWQoKSkKICAgICAqIAogICAgICovCiAgICBmdW5jdGlvbiBwcmludE1hcEpTKCkgewogICAgICAgIGVjaG8gJHRoaXMtPmdldE1hcEpTKCk7CiAgICB9ICAgIAoKICAgIC8qKgogICAgICogcmV0dXJuIG1hcCBqYXZhc2NyaXB0CiAgICAgKiAKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0TWFwSlMoJGRlZmVyPTApIHsKICAgICAgJGRlZmVydHh0PScnOwogICAgICBpZiggJGRlZmVyICkgJGRlZmVydHh0PScgZGVmZXI9ImRlZmVyIic7CiAgICAgICAgJF9vdXRwdXQgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IicuJGRlZmVydHh0Lic+JyAuICJcbiI7CiAgICAgICAgJF9vdXRwdXQgLj0gJy8vPCFbQ0RBVEFbJyAuICJcbiI7CiAgICAgICAgJF9vdXRwdXQgLj0gIi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4iOwogICAgICAgICRfb3V0cHV0IC49ICIgKiBDcmVhdGVkIHdpdGggR29vZ2xlTWFwQVBJICIgLiAkdGhpcy0+X3ZlcnNpb24gLiAiXG4iOwogICAgICAgICRfb3V0cHV0IC49ICIgKiBBdXRob3I6IE1vbnRlIE9ocnQgPG1vbnRlIEFUIG9ocnQgRE9UIGNvbT5cbiI7CiAgICAgICAgJF9vdXRwdXQgLj0gIiAqIENvcHlyaWdodCAyMDA1LTIwMDYgTmV3IERpZ2l0YWwgR3JvdXBcbiI7CiAgICAgICAgJF9vdXRwdXQgLj0gIiAqIGh0dHA6Ly93d3cucGhwaW5zaWRlci5jb20vcGhwL2NvZGUvR29vZ2xlTWFwQVBJL1xuIjsKICAgICAgICAkX291dHB1dCAuPSAiICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4iOwoKICAgICAgICAkX291dHB1dCAuPSAndmFyIHBvaW50cyA9IFtdOycgLiAiXG4iOwogICAgICAgICRfb3V0cHV0IC49ICd2YXIgbWFya2VycyA9IG5ldyBBcnJheSgpOycgLiAiXG4iOwogICAgICAgICRfb3V0cHV0IC49ICd2YXIgbWFya2VyX2FsaWFzZXMgPSBuZXcgQXJyYXkoKTsnIC4gIlxuIjsKICAgICAgICBpZigkdGhpcy0+ZGlyZWN0aW9ucykgeyAgICAgICAgCiAgICAgICAgICAgICRfb3V0cHV0IC49ICd2YXIgdG9faHRtbHMgPSBbXTsnIC4gIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ3ZhciBmcm9tX2h0bWxzID0gW107JyAuICJcbiI7CiAgICAgICAgICAgICRfb3V0cHV0IC49ICd2YXIgYXBwZW5kX2h0bWxzID0gW107JyAuICJcbiI7CiAgICAgICAgfSAgICAgICAgCiAgICAgICAgaWYoJHRoaXMtPnNpZGViYXIpIHsgICAgICAgIAoJICAgICR0bXAgPSAnJzsKCSAgICBmb3JlYWNoKCAkdGhpcy0+X3NpZGViYXJfbGlzdCBhcyAkbmFtZSA9PiAkY29udGVudHMgKQoJICAgICAgewoJCSR0bXAgLj0gJGNvbnRlbnRzOwoJICAgICAgfQogICAgICAgICAgICAkX291dHB1dCAuPSAndmFyIHNpZGViYXJfaHRtbCA9IFwnJy4kdG1wLidcJzsnIC4gIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ3ZhciBtYXJrZXJfaHRtbCA9IFtdOycgLiAiXG4iOwoJICAgIGZvcmVhY2goICR0aGlzLT5fbWFya2VyX2xpc3QgYXMgJG5hbWUgPT4gJGNvbnRlbnRzICkKCSAgICAgIHsKCQkkX291dHB1dCAuPSAibWFya2VyX2h0bWxbJ3skbmFtZX0nXSA9ICd7JGNvbnRlbnRzfSc7XG4iOwoJICAgICAgfQoJICAgIAogICAgICAgIH0KCiAgICAgICAgJF9vdXRwdXQgLj0gJHRoaXMtPmdldENyZWF0ZU1hcmtlckpTKCk7CgogICAgICAgIC8vIFV0aWxpdHkgZnVuY3Rpb25zIHVzZWQgdG8gZGlzdGluZ3Vpc2ggYmV0d2VlbiB0YWJiZWQgYW5kIG5vbi10YWJiZWQgaW5mbyB3aW5kb3dzCiAgICAgICAkX291dHB1dCAuPSAnZnVuY3Rpb24gaXNBcnJheShhKSB7cmV0dXJuIGlzT2JqZWN0KGEpICYmIGEuY29uc3RydWN0b3IgPT0gQXJyYXk7fScgLiAiXG4iOwogICAgICAgICRfb3V0cHV0IC49ICdmdW5jdGlvbiBpc09iamVjdChhKSB7cmV0dXJuIChhICYmIHR5cGVvZiBhID09IFwnb2JqZWN0XCcpIHx8IGlzRnVuY3Rpb24oYSk7fScgLiAiXG4iOwogICAgICAgICRfb3V0cHV0IC49ICdmdW5jdGlvbiBpc0Z1bmN0aW9uKGEpIHtyZXR1cm4gdHlwZW9mIGEgPT0gXCdmdW5jdGlvblwnO30nIC4gIlxuIjsKCiAgICAgICAgaWYoJHRoaXMtPnNpZGViYXIpIHsgICAgICAgIAogICAgICAgICAgICAkX291dHB1dCAuPSAnZnVuY3Rpb24gY2xpY2tfc2lkZWJhcihhbGlhcykgeycgLiAiXG4iOwogICAgICAgICAgICAkX291dHB1dCAuPSAnICBuYW1lID0gbWFya2VyX2FsaWFzZXNbYWxpYXNdOycuIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJyAgaWYoaXNBcnJheShtYXJrZXJfaHRtbFtuYW1lXSkpIHsgbWFya2Vyc1tuYW1lXS5vcGVuSW5mb1dpbmRvd1RhYnNIdG1sKG1hcmtlcl9odG1sW2FsaWFzXSk7IH0nIC4gIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJyAgZWxzZSB7IG1hcmtlcnNbbmFtZV0ub3BlbkluZm9XaW5kb3dIdG1sKG1hcmtlcl9odG1sW2FsaWFzXSk7IH0nIC4gIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ30nIC4gIlxuIjsKICAgICAgICB9Ci8vICAgICAgICAgJF9vdXRwdXQgLj0gJ2Z1bmN0aW9uIHNob3dJbmZvV2luZG93KGlkeCxodG1sKSB7JyAuICJcbiI7Ci8vICAgICAgICAgJF9vdXRwdXQgLj0gJHRoaXMtPm1hcF92YXJfbmFtZS4nLmNlbnRlckF0TGF0TG5nKHBvaW50c1tpZHhdKTsnIC4gIlxuIjsKLy8gICAgICAgICAkX291dHB1dCAuPSAnbWFya2Vyc1tpZHhdLm9wZW5JbmZvV2luZG93SHRtbChodG1sKTsnIC4gIlxuIjsKLy8gICAgICAgICAkX291dHB1dCAuPSAnfScgLiAiXG4iOwogICAgICAgIGlmKCR0aGlzLT5kaXJlY3Rpb25zKSB7CiAgICAgICAgICAgICRfb3V0cHV0IC49ICdmdW5jdGlvbiB0b2hlcmUoaWR4KSB7JyAuICJcbiI7CiAgICAgICAgICAgICRfb3V0cHV0IC49ICdtYXJrZXJzW2lkeF0ub3BlbkluZm9XaW5kb3dIdG1sKHRvX2h0bWxzW2lkeF0pOycgLiAiXG4iOwogICAgICAgICAgICAkX291dHB1dCAuPSAnfScgLiAiXG4iOwogICAgICAgICAgICAkX291dHB1dCAuPSAnZnVuY3Rpb24gZnJvbWhlcmUoaWR4KSB7JyAuICJcbiI7CiAgICAgICAgICAgICRfb3V0cHV0IC49ICdtYXJrZXJzW2lkeF0ub3BlbkluZm9XaW5kb3dIdG1sKGZyb21faHRtbHNbaWR4XSk7JyAuICJcbiI7CiAgICAgICAgICAgICRfb3V0cHV0IC49ICd9JyAuICJcbiI7CiAgICAgICAgfQoKLy8gICAgICAgICRfb3V0cHV0IC49ICd2YXIgY291bnRlciA9IDA7JyAuICJcbiI7CgogICAgICAgIGlmKCFlbXB0eSgkdGhpcy0+X2ljb25zKSkgCgkgIHsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ3ZhciBpY29uID0gW107JyAuICJcbiI7CgkgICAgZm9yZWFjaCggJHRoaXMtPl9pY29ucyBhcyAkbmFtZSA9PiAkaW5mbyApCgkgICAgICB7CgkJJF9vdXRwdXQgLj0gImljb25bJ3skbmFtZX0nXSA9IG5ldyBHSWNvbigpO1xuIjsgICAKCQkkX291dHB1dCAuPSBzcHJpbnRmKCdpY29uW1wnJXNcJ10uaW1hZ2UgPSAiJXMiOycsJG5hbWUsJGluZm9bJ2ltYWdlJ10pIC4gIlxuIjsgICAKCQlpZigkaW5mb1snc2hhZG93J10pIHsKCQkgICRfb3V0cHV0IC49IHNwcmludGYoJ2ljb25bXCclc1wnXS5zaGFkb3cgPSAiJXMiOycsJG5hbWUsJGluZm9bJ3NoYWRvdyddKSAuICJcbiI7CgkJICAkX291dHB1dCAuPSBzcHJpbnRmKCdpY29uW1wnJXNcJ10uc2hhZG93U2l6ZSA9IG5ldyBHU2l6ZSglcywlcyk7JywkbmFtZSwkaW5mb1snc2hhZG93V2lkdGgnXSwkaW5mb1snc2hhZG93SGVpZ2h0J10pIC4gIlxuIjsgICAKCQl9CgkJJF9vdXRwdXQgLj0gc3ByaW50ZignaWNvbltcJyVzXCddLmljb25TaXplID0gbmV3IEdTaXplKCVzLCVzKTsnLCRuYW1lLCRpbmZvWydpY29uV2lkdGgnXSwkaW5mb1snaWNvbkhlaWdodCddKSAuICJcbiI7ICAgCgkJJF9vdXRwdXQgLj0gc3ByaW50ZignaWNvbltcJyVzXCddLmljb25BbmNob3IgPSBuZXcgR1BvaW50KCVzLCVzKTsnLCRuYW1lLCRpbmZvWydpY29uQW5jaG9yWCddLCRpbmZvWydpY29uQW5jaG9yWSddKSAuICJcbiI7ICAgCgkJJF9vdXRwdXQgLj0gc3ByaW50ZignaWNvbltcJyVzXCddLmluZm9XaW5kb3dBbmNob3IgPSBuZXcgR1BvaW50KCVzLCVzKTsnLCRuYW1lLCRpbmZvWydpbmZvV2luZG93QW5jaG9yWCddLCRpbmZvWydpbmZvV2luZG93QW5jaG9yWSddKSAuICJcbiI7CgkgICAgICB9CgkgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgJF9vdXRwdXQgLj0gJ3ZhciAnLiR0aGlzLT5tYXBfdmFyX25hbWUuJyA9IG51bGw7JyAuICJcbiI7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgIGlmKCR0aGlzLT5vbmxvYWQpIHsKICAgICAgICAgICAkX291dHB1dCAuPSAnZnVuY3Rpb24gb25Mb2FkKCkgeycgLiAiXG4iOyAgIAogICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgIGlmKCFlbXB0eSgkdGhpcy0+YnJvd3Nlcl9hbGVydCkpIHsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ2lmIChHQnJvd3NlcklzQ29tcGF0aWJsZSgpKSB7JyAuICJcbiI7CiAgICAgICAgfQoKICAgICAgICAkX291dHB1dCAuPSBzcHJpbnRmKCd2YXIgbWFwT2JqID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIiVzIik7JywkdGhpcy0+bWFwX2lkKSAuICJcbiI7CiAgICAgICAgJF9vdXRwdXQgLj0gJ2lmIChtYXBPYmogIT0gInVuZGVmaW5lZCIgJiYgbWFwT2JqICE9IG51bGwpIHsnIC4gIlxuIjsKICAgICAgICAkX291dHB1dCAuPSBzcHJpbnRmKCclcyA9IG5ldyBHTWFwMihkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiJXMiKSk7JywkdGhpcy0+bWFwX3Zhcl9uYW1lLCAkdGhpcy0+bWFwX2lkKSAuICJcbiI7CgogICAgICAgIGlmKGlzc2V0KCR0aGlzLT5jZW50ZXJfbGF0KSAmJiBpc3NldCgkdGhpcy0+Y2VudGVyX2xvbikpIHsKCQkJLy8gU3BlY2lhbCBjYXJlIGZvciBkZWNpbWFsIHBvaW50IGluIGxvbiBhbmQgbGF0LCB3b3VsZCBnZXQgbG9zdCBpZiAid3JvbmciIGxvY2FsZSBpcyBzZXQ7IGFwcGxpZXMgdG8gKHMpcHJpbnRmIG9ubHkKCSAgJF9vdXRwdXQgLj0gc3ByaW50ZignJXMuc2V0Q2VudGVyKG5ldyBHTGF0TG5nKCVzLCAlcyksICVkLCAlcyk7JywgJHRoaXMtPm1hcF92YXJfbmFtZSwgbnVtYmVyX2Zvcm1hdCgkdGhpcy0+Y2VudGVyX2xhdCwgNiwgIi4iLCAiIiksIG51bWJlcl9mb3JtYXQoJHRoaXMtPmNlbnRlcl9sb24sIDYsICIuIiwgIiIpLCAkdGhpcy0+em9vbSwgJHRoaXMtPm1hcF90eXBlKSAuICJcbiI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIHpvb20gc28gdGhhdCBhbGwgbWFya2VycyBhcmUgaW4gdGhlIHZpZXdwb3J0CiAgICAgICAgaWYoJHRoaXMtPnpvb21fZW5jb21wYXNzICYmIGNvdW50KCR0aGlzLT5fbWFya2VycykgPiAxKSB7CiAgICAgICAgICAgIC8vIGluY3JlYXNlIGJvdW5kcyBieSBmdWRnZSBmYWN0b3IgdG8ga2VlcAogICAgICAgICAgICAvLyBtYXJrZXJzIGF3YXkgZnJvbSB0aGUgZWRnZXMKICAgICAgICAgICAgJF9sZW5fbG9uID0gJHRoaXMtPl9tYXhfbG9uIC0gJHRoaXMtPl9taW5fbG9uOwogICAgICAgICAgICAkX2xlbl9sYXQgPSAkdGhpcy0+X21heF9sYXQgLSAkdGhpcy0+X21pbl9sYXQ7CiAgICAgICAgICAgICR0aGlzLT5fbWluX2xvbiAtPSAkX2xlbl9sb24gKiAkdGhpcy0+Ym91bmRzX2Z1ZGdlOwogICAgICAgICAgICAkdGhpcy0+X21heF9sb24gKz0gJF9sZW5fbG9uICogJHRoaXMtPmJvdW5kc19mdWRnZTsKICAgICAgICAgICAgJHRoaXMtPl9taW5fbGF0IC09ICRfbGVuX2xhdCAqICR0aGlzLT5ib3VuZHNfZnVkZ2U7CiAgICAgICAgICAgICR0aGlzLT5fbWF4X2xhdCArPSAkX2xlbl9sYXQgKiAkdGhpcy0+Ym91bmRzX2Z1ZGdlOwoKICAgICAgICAgICAgJF9vdXRwdXQgLj0gInZhciBiZHMgPSBuZXcgR0xhdExuZ0JvdW5kcyhuZXcgR0xhdExuZygkdGhpcy0+X21pbl9sYXQsICR0aGlzLT5fbWluX2xvbiksIG5ldyBHTGF0TG5nKCR0aGlzLT5fbWF4X2xhdCwgJHRoaXMtPl9tYXhfbG9uKSk7XG4iOwogICAgICAgICAgICAkX291dHB1dCAuPSAkdGhpcy0+bWFwX3Zhcl9uYW1lLicuc2V0Wm9vbSgnLiR0aGlzLT5tYXBfdmFyX25hbWUuJy5nZXRCb3VuZHNab29tTGV2ZWwoYmRzKSk7JyAuICJcbiI7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmKCR0aGlzLT5tYXBfY29udHJvbHMpIHsKICAgICAgICAgIGlmKCR0aGlzLT5jb250cm9sX3NpemUgPT0gJ2xhcmdlJykKICAgICAgICAgICAgICAkX291dHB1dCAuPSAkdGhpcy0+bWFwX3Zhcl9uYW1lLicuYWRkQ29udHJvbChuZXcgR0xhcmdlTWFwQ29udHJvbCgpKTsnIC4gIlxuIjsKICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAkX291dHB1dCAuPSAkdGhpcy0+bWFwX3Zhcl9uYW1lLicuYWRkQ29udHJvbChuZXcgR1NtYWxsTWFwQ29udHJvbCgpKTsnIC4gIlxuIjsKICAgICAgICB9CiAgICAgICAgaWYoJHRoaXMtPnR5cGVfY29udHJvbHMpIHsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJHRoaXMtPm1hcF92YXJfbmFtZS4nLmFkZENvbnRyb2wobmV3IEdNYXBUeXBlQ29udHJvbCgpKTsnIC4gIlxuIjsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYoJHRoaXMtPnNjYWxlX2NvbnRyb2wpIHsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJHRoaXMtPm1hcF92YXJfbmFtZS4nLmFkZENvbnRyb2wobmV3IEdTY2FsZUNvbnRyb2woKSk7JyAuICJcbiI7CiAgICAgICAgfQoKICAgICAgICBpZigkdGhpcy0+b3ZlcnZpZXdfY29udHJvbCkgewogICAgICAgICAgICAkX291dHB1dCAuPSAkdGhpcy0+bWFwX3Zhcl9uYW1lLicuYWRkQ29udHJvbChuZXcgR092ZXJ2aWV3TWFwQ29udHJvbCgpKTsnIC4gIlxuIjsKICAgICAgICB9CgogICAgICAgICRfb3V0cHV0IC49ICR0aGlzLT5nZXRBZGRNYXJrZXJzSlMoKTsKCiAgICAgICAgJF9vdXRwdXQgLj0gJHRoaXMtPmdldFBvbHlsaW5lSlMoKTsKCiAgICAgICAgaWYoJHRoaXMtPnNpZGViYXIpIHsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gc3ByaW50ZignZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIiVzIikuaW5uZXJIVE1MID0gIjx1bCBjbGFzcz1cImNnZ21fc2lkZWJhclwiPiIrIHNpZGViYXJfaHRtbCArIjxcL3VsPiI7JywgJHRoaXMtPnNpZGViYXJfaWQpIC4gIlxuIjsKICAgICAgICB9CgogICAgICAgIC8vJF9vdXRwdXQgLj0gJ30nIC4gIlxuIjsgICAgICAgIAogICAgICAgCiAgICAgICAgaWYoIWVtcHR5KCR0aGlzLT5icm93c2VyX2FsZXJ0KSkgewogICAgICAgICAgICAkX291dHB1dCAuPSAnfSBlbHNlIHsnIC4gIlxuIjsKCQkJJF9vdXRwdXQgLj0gJ2FsZXJ0KCInIC4gc3RyX3JlcGxhY2UoJyInLCdcIicsJHRoaXMtPmJyb3dzZXJfYWxlcnQpIC4gJyIpOycgLiAiXG4iOwogICAgICAgICAgICAkX291dHB1dCAuPSAnfScgLiAiXG4iOwogICAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAKCiAgICAgICAgaWYoJHRoaXMtPm9ubG9hZCkgewogICAgICAgICAgICRfb3V0cHV0IC49ICd9JyAuICJcbiI7CiAgICAgICAgfQoKCSRfb3V0cHV0IC49ICJ9XG4iOwogICAgICAgICRfb3V0cHV0IC49ICcvL11dPicgLiAiXG4iOwogICAgICAgICRfb3V0cHV0IC49ICc8L3NjcmlwdD4nIC4gIlxuIjsKICAgICAgICByZXR1cm4gJF9vdXRwdXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBvdmVycmlkYWJsZSBmdW5jdGlvbiBmb3IgZ2VuZXJhdGluZyBqcyB0byBhZGQgbWFya2VycwogICAgICovCiAgICBmdW5jdGlvbiBnZXRBZGRNYXJrZXJzSlMoKSB7CiAgICAgIC8vICAgICAgICAkU0lOR0xFX1RBQl9XSURUSCA9IDg4OyAgICAvLyBjb25zdGFudDogd2lkdGggaW4gcGl4ZWxzIG9mIGVhY2ggdGFiIGhlYWRpbmcgKHNldCBieSBnb29nbGUpCiAgICAgICAgJFNJTkdMRV9UQUJfV0lEVEggPSAxNTA7ICAgIC8vIGNvbnN0YW50OiB3aWR0aCBpbiBwaXhlbHMgb2YgZWFjaCB0YWIgaGVhZGluZyAoc2V0IGJ5IGdvb2dsZSkKICAgICAgICAkX291dHB1dCA9ICcnOwoJJF9vdXRwdXQyID0gJyc7Cglmb3JlYWNoKCAkdGhpcy0+X21hcmtlcl9hbGlhc2VzIGFzICRuYW1lID0+ICRhbGlhcyApCgkgIHsKCSAgICAkX291dHB1dCAuPSAibWFya2VyX2FsaWFzZXNbJ3skbmFtZX0nXSA9ICd7JGFsaWFzfSc7XG4iOwoJICB9CgogICAgICAgIGZvcmVhY2goJHRoaXMtPl9tYXJrZXJzIGFzICRfbWFya2VyKSB7CgkgIGlmKCAkdGhpcy0+ZGlyZWN0aW9ucyApCgkgICAgewoJICAgICAgJG5hbWUgPSAkX21hcmtlclsnbmFtZSddOwoJICAgICAgaWYoIGlzX2FycmF5KCRfbWFya2VyWydodG1sJ10pICYmIGNvdW50KCRfbWFya2VyWydodG1sJ10pID4gMCApCgkJewoJCSAgLy8gbm90ZSwgdGhpcyBhZGRzIHRoZSBkaXJlY3Rpb24gc3R1ZmYgb250byBqdXN0IHRoZSBmaXJzdCB0YWIuCgkJICAkX21hcmtlclsnaHRtbCddWzBdIC49IHNwcmludGYoJzxkaXYgY2xhc3M9ImNnbWFwX2RpciIgc3R5bGU9IndoaXRlLXNwYWNlOiBub3dyYXA7Ij4lczxhIGhyZWY9ImphdmFzY3JpcHQ6dG9oZXJlKFwnJy4kbmFtZS4nXCcpIj4lczwvYT4gLSA8YSBocmVmPSJqYXZhc2NyaXB0OmZyb21oZXJlKFwnJy4kbmFtZS4nXCcpIj4lczwvYT48L2Rpdj4nLAoJCQkJCQkgJHRoaXMtPmRyaXZpbmdfZGlyX3RleHRbJ2Rpcl90ZXh0J10sCgkJCQkJCSAkdGhpcy0+ZHJpdmluZ19kaXJfdGV4dFsnZGlyX3RvaGVyZSddLAoJCQkJCQkgJHRoaXMtPmRyaXZpbmdfZGlyX3RleHRbJ2Rpcl9mcm9taGVyZSddKTsKCQl9CgkgICAgICBlbHNlCgkJewoJCSAgJF9tYXJrZXJbJ2h0bWwnXSAuPSBzcHJpbnRmKCc8ZGl2IGNsYXNzPSJjZ21hcF9kaXIiIHN0eWxlPSJ3aGl0ZS1zcGFjZTogbm93cmFwOyI+JXM8YSBocmVmPSJqYXZhc2NyaXB0OnRvaGVyZShcJycuJG5hbWUuJ1wnKSI+JXM8L2E+IC0gPGEgaHJlZj0iamF2YXNjcmlwdDpmcm9taGVyZShcJycuJG5hbWUuJ1wnKSI+JXM8L2E+PC9kaXY+JywKCQkJCQkgICAgICAkdGhpcy0+ZHJpdmluZ19kaXJfdGV4dFsnZGlyX3RleHQnXSwKCQkJCQkgICAgICAkdGhpcy0+ZHJpdmluZ19kaXJfdGV4dFsnZGlyX3RvaGVyZSddLAoJCQkJCSAgICAgICR0aGlzLT5kcml2aW5nX2Rpcl90ZXh0WydkaXJfZnJvbWhlcmUnXSk7CgkJfQoJICAgIH0KCiAgICAgICAgICAgIGlmKGlzX2FycmF5KCRfbWFya2VyWydodG1sJ10pKSB7CiAgICAgICAgICAgICAgICAvLyB3YXJuaW5nOiB5b3UgY2FuJ3QgaGF2ZSB0d28gdGFicyB3aXRoIHRoZSBzYW1lIGhlYWRlci4gYnV0IHdoeSB3b3VsZCB5b3Ugd2FudCB0bz8KICAgICAgICAgICAgICAgICR0aSA9IDA7CiAgICAgICAgICAgICAgICAkbnVtX3RhYnMgPSBjb3VudCgkX21hcmtlclsnaHRtbCddKTsKICAgICAgICAgICAgICAgICR0YWJfb2JzID0gYXJyYXkoKTsKICAgICAgICAgICAgICAgIGZvcmVhY2goJF9tYXJrZXJbJ2h0bWwnXSBhcyAkdGFiID0+ICRpbmZvKSAKCQkgIHsKCQkgICAgJHdpZHRoX3N0eWxlID0gJyc7CgkJICAgIC8vICAgICAgICAgICAgICAgICAgICAgaWYoJHRpID09IDAgJiYgJG51bV90YWJzID4gMikgewoJCSAgICAvLyAgICAgICAgICAgICAgICAgICAgICAgICAkd2lkdGhfc3R5bGUgPSBzcHJpbnRmKCcgc3R5bGU9XCJ3aWR0aDogJXNweFwiJywgJG51bV90YWJzICogJFNJTkdMRV9UQUJfV0lEVEgpOwoJCSAgICAvLyAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkdGFiID0gc3RyX3JlcGxhY2UoJyInLCdcIicsJHRhYik7CgkJICAgIAoJCSAgICAKICAgICAgICAgICAgICAgICAgICAkaW5mbyA9IHN0cl9yZXBsYWNlKCciJywnXCInLCRpbmZvKTsKCQkgICAgJGluZm8gPSBzdHJfcmVwbGFjZShhcnJheSgiXG4iLCAiXHIiKSwgIiIsICRpbmZvKTsKCQkgICAgJHRhYl9vYnNbXSA9IHNwcmludGYoJ25ldyBHSW5mb1dpbmRvd1RhYigiJXMiLCAiJXMiKScsICR0YWIsICc8ZGl2IGNsYXNzPVwiY2dnbV9tYXJrZXJcIicuJHdpZHRoX3N0eWxlLic+JyAuICRpbmZvIC4gJzwvZGl2PicpOwoJCSAgICAkdGkrKzsKCQkgIH0KCQkkaXdfaHRtbCA9ICdbJyAuIGpvaW4oJywnLCR0YWJfb2JzKSAuICddJzsKCSAgICB9IGVsc2UgewoJICAgICAgJGl3X2h0bWwgPSBzcHJpbnRmKCciJXMiJyxzdHJfcmVwbGFjZSgnIicsJ1wiJywnPGRpdiBjbGFzcz0iY2dnbV9tYXJrZXIiPicgLiBzdHJfcmVwbGFjZShhcnJheSgiXG4iLCAiXHIiKSwgIiIsICRfbWFya2VyWydodG1sJ10pIC4gJzwvZGl2PicpKTsKCSAgICB9CgkgICAgJF9vdXRwdXQgLj0gc3ByaW50ZigndmFyIHBvaW50ID0gbmV3IEdMYXRMbmcoJXMsJXMpOycsJF9tYXJrZXJbJ2xhdCddLCRfbWFya2VyWydsb24nXSkgLiAiXG4iOyAgICAgICAgIAoJICAgICRfb3V0cHV0IC49IHNwcmludGYoJ3ZhciBtYXJrZXIgPSBjcmVhdGVNYXJrZXIocG9pbnQsIiVzIiwiJXMiLCVzLCAlcywiJXMiLCVkKTsnLAoJCQkJJF9tYXJrZXJbJ25hbWUnXSwKCQkJCXN0cl9yZXBsYWNlKCciJywnXCInLCRfbWFya2VyWyd0aXRsZSddKSwKCQkJCXN0cl9yZXBsYWNlKCcvJywnXC8nLCRpd19odG1sKSwKCQkJCSInIi4kX21hcmtlclsnaWNvbiddLiInIiwKCQkJCXN0cl9yZXBsYWNlKCciJywnXCInLCRfbWFya2VyWyd0b29sdGlwJ10pLAoJCQkJKGlzX2FycmF5KCRfbWFya2VyWydodG1sJ10pKT9jb3VudCgkX21hcmtlclsnaHRtbCddKTowKSAuICJcbiI7CgkgICAgJF9vdXRwdXQgLj0gJF9vdXRwdXQyOwoJICAgICRfb3V0cHV0IC49ICR0aGlzLT5tYXBfdmFyX25hbWUuJy5hZGRPdmVybGF5KG1hcmtlcik7JyAuICJcbiI7CgkgICAgCgl9CglyZXR1cm4gJF9vdXRwdXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBvdmVycmlkYWJsZSBmdW5jdGlvbiB0byBnZW5lcmF0ZSBwb2x5bGluZSBqcwogICAgICovCiAgICBmdW5jdGlvbiBnZXRQb2x5bGluZUpTKCkgewogICAgICAgICRfb3V0cHV0ID0gJyc7CiAgICAgICAgZm9yZWFjaCgkdGhpcy0+X3BvbHlsaW5lcyBhcyAkX3BvbHlsaW5lKSB7CiAgICAgICAgICAgICRfb3V0cHV0IC49IHNwcmludGYoJ3ZhciBwb2x5bGluZSA9IG5ldyBHUG9seWxpbmUoW25ldyBHTGF0TG5nKCVzLCVzKSxuZXcgR0xhdExuZyglcywlcyldLCIlcyIsJXMsJXMpOycsCiAgICAgICAgICAgICAgICAgICAgJF9wb2x5bGluZVsnbGF0MSddLCRfcG9seWxpbmVbJ2xvbjEnXSwkX3BvbHlsaW5lWydsYXQyJ10sJF9wb2x5bGluZVsnbG9uMiddLCRfcG9seWxpbmVbJ2NvbG9yJ10sJF9wb2x5bGluZVsnd2VpZ2h0J10sJF9wb2x5bGluZVsnb3BhY2l0eSddIC8gMTAwLjApIC4gIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJHRoaXMtPm1hcF92YXJfbmFtZS4nLmFkZE92ZXJsYXkocG9seWxpbmUpOycgLiAiXG4iOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJF9vdXRwdXQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBvdmVycmlkYWJsZSBmdW5jdGlvbiB0byBnZW5lcmF0ZSB0aGUganMgZm9yIHRoZSBqcyBmdW5jdGlvbiBmb3IgY3JlYXRpbmcgYSBtYXJrZXIuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldENyZWF0ZU1hcmtlckpTKCkgewogICAgICAgICRfb3V0cHV0ID0gJ2Z1bmN0aW9uIGNyZWF0ZU1hcmtlcihwb2ludCwgbmFtZSwgdGl0bGUsIGh0bWwsIGljb25fbmFtZSwgdG9vbHRpcCwgbnRhYnMpIHsnIC4gIlxuIjsKICAgICAgICBpZighZW1wdHkoJHRoaXMtPl9pY29ucykpIHsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ3ZhciBtYXJrZXIgPSBuZXcgR01hcmtlcihwb2ludCx7XCdpY29uXCc6IGljb25baWNvbl9uYW1lXSwgXCd0aXRsZVwnOiB0b29sdGlwfSk7JyAuICJcbiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ3ZhciBtYXJrZXIgPSBuZXcgR01hcmtlcihwb2ludCx7XCd0aXRsZVwnOiB0b29sdGlwfSk7JyAuICJcbiI7CiAgICAgICAgfQoJaWYoJHRoaXMtPmRpcmVjdGlvbnMpIAoJICB7CgkgICAgJF9vdXRwdXQgLj0gJ3RpdGxlID0gdGl0bGUucmVwbGFjZShuZXcgUmVnRXhwKC8iL2cpLFwnJnF1b3Q7XCcpOycuIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ3ZhciBzdHIgPSBwb2ludC55ICsgXCcsXCcgKyBwb2ludC54ICsgXCcoXCcgKyB0aXRsZSArIFwnKVwnJy4iXG4iOwoJICAgICRfb3V0cHV0IC49IHNwcmludGYoCgkJCQkndG9faHRtbHNbbmFtZV0gPSBcJzxmb3JtIGNsYXNzPSJjZ2dtX2RpciIgaWQ9ImdtYXBEaXJUbyIgc3R5bGU9IndoaXRlLXNwYWNlOiBub3dyYXA7IiBhY3Rpb249Imh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcyIgbWV0aG9kPSJnZXQiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iY2dnbV9EaXJIZWFkIiBpZD0iY2dnbV9EaXJIZWFkVG8iPiVzPHN0cm9uZz4lczwvc3Ryb25nPiAtIDxhIGhyZWY9ImphdmFzY3JpcHQ6ZnJvbWhlcmUoXFxcJ1wnICsgbmFtZSArIFwnXFxcJykiPiVzPC9hPjwvc3Bhbj48cCBjbGFzcz0iY2dnbV9EaXJJdGVtIiBpZD0iY2dnbV9EaXJJdGVtVG8iPjxsYWJlbCBmb3I9ImNnZ21fRGlyU2FkZHIiIGNsYXNzPSJjZ2dtX0RpckxhYmVsIiBpZD0iY2dnbV9EaXJMYWJlbFRvIj4lczxiciAvPjwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIHNpemU9IjQwIiBtYXhsZW5ndGg9IjQwIiBuYW1lPSJzYWRkciIgY2xhc3M9ImNnZ21fVGV4dEJveCIgaWQ9ImNnZ21fRGlyU2FkZHIiIHZhbHVlPSIiIG9uZm9jdXM9InRoaXMuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gXFxcJyNlMGUwZTBcXFwnOyIgb25ibHVyPSJ0aGlzLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFxcXCcjZmZmZmZmXFxcJzsiIC8+PHNwYW4gY2xhc3M9ImNnZ21fRGlyQnRucyIgaWQ9ImNnZ21fRGlyQnRuc1RvIj48aW5wdXQgdmFsdWU9IiVzIiB0eXBlPSIlcyIgY2xhc3M9ImNnZ21fRGlyQnV0dG9uIiBpZD0iY2dnbV9EaXJCdXR0b25UbyIgLz48L3NwYW4+PC9wPjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImRhZGRyIiB2YWx1ZT0iXCcrc3RyK1wnIiAvPjwvZm9ybT5cJzsnLiJcbiIuCgkJCQkgJ2Zyb21faHRtbHNbbmFtZV0gPSBcJzxmb3JtIGNsYXNzPSJjZ2dtX0RpciIgaWQ9ImNnZ21fRGlyRnJvbSIgc3R5bGU9IndoaXRlLXNwYWNlOiBub3dyYXA7IiBhY3Rpb249Imh0dHA6Ly9tYXBzLmdvb2dsZS5jb20vbWFwcyIgbWV0aG9kPSJnZXQiIHRhcmdldD0iX2JsYW5rIj48c3BhbiBjbGFzcz0iY2dnbV9EaXJIZWFkIiBpZD0iY2dnbV9EaXJIZWFkRnJvbSI+JXM8YSBocmVmPSJqYXZhc2NyaXB0OnRvaGVyZShcXFwnXCcgKyBuYW1lICsgXCdcXFwnKSI+JXM8L2E+IC0gPHN0cm9uZz4lczwvc3Ryb25nPjwvc3Bhbj48cCBjbGFzcz0iY2dnbV9EaXJJdGVtIiBpZD0iY2dnbV9EaXJJdGVtRnJvbSI+PGxhYmVsIGZvcj0iY2dnbV9EaXJTYWRkciIgY2xhc3M9ImNnZ21fRGlyTGFiZWwiIGlkPSJjZ2dtX0RpckxhYmVsRnJvbSI+JXM8YnIgLz48L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBzaXplPSI0MCIgbWF4bGVuZ3RoPSI0MCIgbmFtZT0ic2FkZHIiIGNsYXNzPSJjZ2dtX1RleHRCb3giIGlkPSJjZ2dtX0RpclNhZGRyIiB2YWx1ZT0iIiBvbmZvY3VzPSJ0aGlzLnN0eWxlLmJhY2tncm91bmRDb2xvciA9IFxcXCcjZTBlMGUwXFxcJzsiIG9uYmx1cj0idGhpcy5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IgPSBcXFwnI2ZmZmZmZlxcXCc7IiAvPjxzcGFuIGNsYXNzPSJjZ2dtX0RpckJ0bnMiIGlkPSJjZ2dtX0RpckJ0bnNGcm9tIj48aW5wdXQgdmFsdWU9IiVzIiB0eXBlPSIlcyIgY2xhc3M9ImNnZ21fRGlyQnV0dG9uIiBpZD0iY2dnbV9EaXJCdXR0b25Gcm9tIiAvPjwvc3Bhbj48L3A+PGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZGFkZHIiIHZhbHVlPSJcJytzdHIrXCciIC8+PC9mb3JtPlwnOycuIlxuIiwKCQkJCSAkdGhpcy0+ZHJpdmluZ19kaXJfdGV4dFsnZGlyX3RleHQnXSwKCQkJCSAkdGhpcy0+ZHJpdmluZ19kaXJfdGV4dFsnZGlyX3RvaGVyZSddLAoJCQkJICR0aGlzLT5kcml2aW5nX2Rpcl90ZXh0WydkaXJfZnJvbWhlcmUnXSwKCQkJCSAkdGhpcy0+ZHJpdmluZ19kaXJfdGV4dFsnZGlyX3RvJ10sCgkJCQkgJHRoaXMtPmRyaXZpbmdfZGlyX3RleHRbJ3RvX2J1dHRvbl92YWx1ZSddLAoJCQkJICR0aGlzLT5kcml2aW5nX2Rpcl90ZXh0Wyd0b19idXR0b25fdHlwZSddLAoJCQkJICR0aGlzLT5kcml2aW5nX2Rpcl90ZXh0WydkaXJfdGV4dCddLAoJCQkJICR0aGlzLT5kcml2aW5nX2Rpcl90ZXh0WydkaXJfdG9oZXJlJ10sCgkJCQkgJHRoaXMtPmRyaXZpbmdfZGlyX3RleHRbJ2Rpcl9mcm9taGVyZSddLAoJCQkJICR0aGlzLT5kcml2aW5nX2Rpcl90ZXh0WydkaXJfZnJvbSddLAoJCQkJICR0aGlzLT5kcml2aW5nX2Rpcl90ZXh0Wydmcm9tX2J1dHRvbl92YWx1ZSddLAoJCQkJICR0aGlzLT5kcml2aW5nX2Rpcl90ZXh0Wydmcm9tX2J1dHRvbl90eXBlJ10pOwoJICB9CgogICAgICAgIAogICAgICAgIGlmKCR0aGlzLT5pbmZvX3dpbmRvdykgewogICAgICAgICAgICAkX291dHB1dCAuPSBzcHJpbnRmKCdpZihudGFicykgeyBHRXZlbnQuYWRkTGlzdGVuZXIobWFya2VyLCAiJXMiLCBmdW5jdGlvbigpIHsgbWFya2VyLm9wZW5JbmZvV2luZG93VGFic0h0bWwoaHRtbCk7IH0pOyB9JywkdGhpcy0+d2luZG93X3RyaWdnZXIpIC4gIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gc3ByaW50ZignZWxzZSB7IEdFdmVudC5hZGRMaXN0ZW5lcihtYXJrZXIsICIlcyIsIGZ1bmN0aW9uKCkgeyBtYXJrZXIub3BlbkluZm9XaW5kb3dIdG1sKGh0bWwpOyB9KTsgfScsJHRoaXMtPndpbmRvd190cmlnZ2VyKSAuICJcbiI7CiAgICAgICAgfQogICAgICAgICRfb3V0cHV0IC49ICdwb2ludHNbbmFtZV0gPSBwb2ludDsnIC4gIlxuIjsKICAgICAgICAkX291dHB1dCAuPSAnbWFya2Vyc1tuYW1lXSA9IG1hcmtlcjsnIC4gIlxuIjsKCS8vJF9vdXRwdXQgLj0gJ2FsZXJ0KG5hbWUgKyBcJy1cJyArIG1hcmtlcnMubGVuZ3RoKTsnOwovLyAgICAgICAgIGlmKCR0aGlzLT5zaWRlYmFyKSB7ICAgICAgICAKLy8gICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ21hcmtlcl9odG1sW25hbWVdID0gaHRtbDsnIC4gIlxuIjsKLy8gICAgICAgICB9CiAgICAgICAgLy8kX291dHB1dCAuPSAnY291bnRlcisrOycgLiAiXG4iOwogICAgICAgICRfb3V0cHV0IC49ICdyZXR1cm4gbWFya2VyOycgLiAiXG4iOwogICAgICAgICRfb3V0cHV0IC49ICd9JyAuICJcbiI7CiAgICAgICAgcmV0dXJuICRfb3V0cHV0OwogICAgfQoKICAgIC8qKgogICAgICogcHJpbnQgbWFwIChwdXQgYXQgbG9jYXRpb24gbWFwIHdpbGwgYXBwZWFyKQogICAgICogCiAgICAgKi8KICAgIGZ1bmN0aW9uIHByaW50TWFwKCkgewogICAgICAgIGVjaG8gJHRoaXMtPmdldE1hcCgpOwogICAgfQoKICAgIC8qKgogICAgICogcmV0dXJuIG1hcAogICAgICogCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldE1hcCgkZGVmZXIgPSAwKSB7CiAgICAgICRkZWZlcnR4dD0nJzsKICAgICAgaWYoICRkZWZlciApICRkZWZlcnR4dCA9ICcgZGVmZXI9ImRlZmVyIic7CiAgICAgICAgJF9vdXRwdXQgPSAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04IicuJGRlZmVydHh0Lic+JyAuICJcbiIgLiAnLy88IVtDREFUQVsnIC4gIlxuIjsKICAgICAgICAkX291dHB1dCAuPSAnaWYgKEdCcm93c2VySXNDb21wYXRpYmxlKCkpIHsnIC4gIlxuIjsKICAgICAgICBpZihzdHJsZW4oJHRoaXMtPndpZHRoKSA+IDAgJiYgc3RybGVuKCR0aGlzLT5oZWlnaHQpID4gMCkgewogICAgICAgICAgICAkX291dHB1dCAuPSBzcHJpbnRmKCdkb2N1bWVudC53cml0ZShcJzxkaXYgaWQ9IiVzIiBzdHlsZT0id2lkdGg6ICVzOyBoZWlnaHQ6ICVzIj48XC9kaXY+XCcpOycsJHRoaXMtPm1hcF9pZCwkdGhpcy0+d2lkdGgsJHRoaXMtPmhlaWdodCkgLiAiXG4iOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRfb3V0cHV0IC49IHNwcmludGYoJ2RvY3VtZW50LndyaXRlKFwnPGRpdiBpZD0iJXMiPjxcL2Rpdj5cJyk7JywkdGhpcy0+bWFwX2lkKSAuICJcbiI7ICAgICAKICAgICAgICB9CiAgICAgICAgJF9vdXRwdXQgLj0gJ30nOwoKICAgICAgICBpZighZW1wdHkoJHRoaXMtPmpzX2FsZXJ0KSkgewogICAgICAgICAgICAkX291dHB1dCAuPSAnIGVsc2UgeycgLiAiXG4iOwogICAgICAgICAgICAkX291dHB1dCAuPSBzcHJpbnRmKCdkb2N1bWVudC53cml0ZShcJyVzXCcpOycsIHN0cl9yZXBsYWNlKCcvJywnXC8nLCR0aGlzLT5qc19hbGVydCkpIC4gIlxuIjsKICAgICAgICAgICAgJF9vdXRwdXQgLj0gJ30nIC4gIlxuIjsKICAgICAgICB9CgogICAgICAgICRfb3V0cHV0IC49ICcvL11dPicgLiAiXG4iIC4gJzwvc2NyaXB0PicgLiAiXG4iOwoKICAgICAgICBpZighZW1wdHkoJHRoaXMtPmpzX2FsZXJ0KSkgewogICAgICAgICAgICAkX291dHB1dCAuPSAnPG5vc2NyaXB0PicgLiAkdGhpcy0+anNfYWxlcnQgLiAnPC9ub3NjcmlwdD4nIC4gIlxuIjsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkX291dHB1dDsKICAgIH0KCiAgICAKICAgIC8qKgogICAgICogcHJpbnQgc2lkZWJhciAocHV0IGF0IGxvY2F0aW9uIHNpZGViYXIgd2lsbCBhcHBlYXIpCiAgICAgKiAKICAgICAqLwogICAgZnVuY3Rpb24gcHJpbnRTaWRlYmFyKCkgewogICAgICAgIGVjaG8gJHRoaXMtPmdldFNpZGViYXIoKTsKICAgIH0gICAgCgogICAgLyoqCiAgICAgKiByZXR1cm4gc2lkZWJhciBodG1sCiAgICAgKiAKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U2lkZWJhcigpIHsKICAgICAgICByZXR1cm4gc3ByaW50ZignPGRpdiBpZD0iJXMiPjwvZGl2PicsJHRoaXMtPnNpZGViYXJfaWQpIC4gIlxuIjsKICAgIH0gICAgCiAgICAgICAgICAgIAogICAgLyoqCiAgICAgKiBnZXQgdGhlIGdlb2NvZGUgbGF0L2xvbiBwb2ludHMgZnJvbSBnaXZlbiBhZGRyZXNzCiAgICAgKiBsb29rIGluIGNhY2hlIGZpcnN0LCBvdGhlcndpc2UgZ2V0IGZyb20gWWFob28KICAgICAqIAogICAgICogQHBhcmFtIHN0cmluZyAkYWRkcmVzcwogICAgICovCiAgICBmdW5jdGlvbiBnZXRHZW9jb2RlKCRhZGRyZXNzKSB7CiAgICAgICAgaWYoZW1wdHkoJGFkZHJlc3MpKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgICRfZ2VvY29kZSA9IGZhbHNlOwoKICAgICAgICBpZigoJF9nZW9jb2RlID0gJHRoaXMtPmdldENhY2hlKCRhZGRyZXNzKSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIGlmKCgkX2dlb2NvZGUgPSAkdGhpcy0+Z2VvR2V0Q29vcmRzKCRhZGRyZXNzKSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+cHV0Q2FjaGUoJGFkZHJlc3MsICRfZ2VvY29kZVsnbG9uJ10sICRfZ2VvY29kZVsnbGF0J10pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJldHVybiAkX2dlb2NvZGU7CiAgICB9CiAgIAogICAgLyoqCiAgICAgKiBnZXQgdGhlIGdlb2NvZGUgbGF0L2xvbiBwb2ludHMgZnJvbSBjYWNoZSBmb3IgZ2l2ZW4gYWRkcmVzcwogICAgICogCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldENhY2hlKCRhZGRyZXNzKSB7CiAgICAgICAgaWYoIWlzc2V0KCR0aGlzLT5kc24pKQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgCiAgICAgICAgJF9yZXQgPSBhcnJheSgpOwogICAgICAgIAoJaWYoIGlzX29iamVjdCggJHRoaXMtPmRzbiApICkKCSAgewoJICAgIC8vIEFET0RCCgkgICAgJF9yZXMgPSYgJHRoaXMtPmRzbi0+R2V0Um93KCJTRUxFQ1QgbG9uLGxhdCBGUk9NIHskdGhpcy0+X2RiX2NhY2hlX3RhYmxlfSB3aGVyZSBhZGRyZXNzID0gPyIsIGFycmF5KCRhZGRyZXNzKSk7CgkgICAgaWYoICEkX3JlcyApIHsKCSAgICAgIHJldHVybiBmYWxzZTsKCSAgICB9CgkgICAgJF9yZXRbJ2xvbiddID0gJF9yZXNbJ2xvbiddOwoJICAgICRfcmV0WydsYXQnXSA9ICRfcmVzWydsYXQnXTsKCSAgfQoJZWxzZQoJICB7CgkgICAgLy8gUEVBUiBEQgoJICAgIHJlcXVpcmVfb25jZSgnREIucGhwJyk7ICAgICAgICAgIAoJICAgICRfZGIgPSYgREI6OmNvbm5lY3QoJHRoaXMtPmRzbik7CgkgICAgaWYgKFBFQVI6OmlzRXJyb3IoJF9kYikpIHsKCSAgICAgIGRpZSgkX2RiLT5nZXRNZXNzYWdlKCkpOwoJICAgIH0KCSAgICAkX3JlcyA9JiAkX2RiLT5xdWVyeSgiU0VMRUNUIGxvbixsYXQgRlJPTSB7JHRoaXMtPl9kYl9jYWNoZV90YWJsZX0gd2hlcmUgYWRkcmVzcyA9ID8iLCAkYWRkcmVzcyk7CgkgICAgaWYgKFBFQVI6OmlzRXJyb3IoJF9yZXMpKSB7CgkgICAgICBkaWUoJF9yZXMtPmdldE1lc3NhZ2UoKSk7CgkgICAgfQoJICAgIGlmKCRfcm93ID0gJF9yZXMtPmZldGNoUm93KCkpIHsgICAgICAgICAgICAKCSAgICAgICRfcmV0Wydsb24nXSA9ICRfcm93WzBdOwoJICAgICAgJF9yZXRbJ2xhdCddID0gJF9yb3dbMV07CgkgICAgfQoJICAgICRfZGItPmRpc2Nvbm5lY3QoKTsKCSAgfQogICAgICAgIAogICAgICAgIHJldHVybiAhZW1wdHkoJF9yZXQpID8gJF9yZXQgOiBmYWxzZTsKICAgIH0KICAgIAogICAgLyoqCiAgICAgKiBwdXQgdGhlIGdlb2NvZGUgbGF0L2xvbiBwb2ludHMgaW50byBjYWNoZSBmb3IgZ2l2ZW4gYWRkcmVzcwogICAgICogCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsb24gdGhlIG1hcCBsYXRpdHVkZSAoaG9yaXpvbnRhbCkKICAgICAqIEBwYXJhbSBzdHJpbmcgJGxhdCB0aGUgbWFwIGxhdGl0dWRlICh2ZXJ0aWNhbCkKICAgICAqLwogICAgZnVuY3Rpb24gcHV0Q2FjaGUoJGFkZHJlc3MsICRsb24sICRsYXQpIHsKICAgICAgICBpZighaXNzZXQoJHRoaXMtPmRzbikgfHwgKHN0cmxlbigkYWRkcmVzcykgPT0gMCB8fCBzdHJsZW4oJGxvbikgPT0gMCB8fCBzdHJsZW4oJGxhdCkgPT0gMCkpCiAgICAgICAgICAgcmV0dXJuIGZhbHNlOwoKCWlmKCBpc19vYmplY3QoICR0aGlzLT5kc24gKSApCgkgIHsKCSAgICAvLyBBRE9EQgoJICAgICRfcmVzID0gJHRoaXMtPmRzbi0+RXhlY3V0ZSgnaW5zZXJ0IGludG8gJy4kdGhpcy0+X2RiX2NhY2hlX3RhYmxlLicgdmFsdWVzICg/LD8sPyknLCBhcnJheSgkYWRkcmVzcywgJGxvbiwgJGxhdCkpOwoJICAgIGlmKCAhJF9yZXMgKSB7CgkgICAgICBkaWUoICR0aGlzLT5kc24tPkVycm9yTXNnKCkgKTsKCSAgICB9CgkgIH0KCWVsc2UKCSAgewoJICAgIC8vIFBFQVIgREIKCSAgICByZXF1aXJlX29uY2UoJ0RCLnBocCcpOyAgICAgICAgICAKCSAgICAkX2RiID0mIERCOjpjb25uZWN0KCR0aGlzLT5kc24pOwoJICAgIGlmIChQRUFSOjppc0Vycm9yKCRfZGIpKSB7CgkgICAgICBkaWUoJF9kYi0+Z2V0TWVzc2FnZSgpKTsKCSAgICB9CiAgICAgICAgCgkgICAgJF9yZXMgPSYgJF9kYi0+cXVlcnkoJ2luc2VydCBpbnRvICcuJHRoaXMtPl9kYl9jYWNoZV90YWJsZS4nIHZhbHVlcyAoPywgPywgPyknLCBhcnJheSgkYWRkcmVzcywgJGxvbiwgJGxhdCkpOwoJICAgIGlmIChQRUFSOjppc0Vycm9yKCRfcmVzKSkgewoJICAgICAgZGllKCRfcmVzLT5nZXRNZXNzYWdlKCkpOwoJICAgIH0KCSAgICAkX2RiLT5kaXNjb25uZWN0KCk7CgkgIH0KICAgICAgICAKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAKICAgIH0KICAgCiAgICAvKioKICAgICAqIGdldCBnZW9jb2RlIGxhdC9sb24gcG9pbnRzIGZvciBnaXZlbiBhZGRyZXNzIGZyb20gWWFob28KICAgICAqIAogICAgICogQHBhcmFtIHN0cmluZyAkYWRkcmVzcwogICAgICovCiAgICBmdW5jdGlvbiBnZW9HZXRDb29yZHMoJGFkZHJlc3MsJGRlcHRoPTApIHsKICAgICAgICAKICAgICAgICBzd2l0Y2goJHRoaXMtPmxvb2t1cF9zZXJ2aWNlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICdHT09HTEUnOgogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAkX3VybCA9IHNwcmludGYoJ2h0dHA6Ly8lcy9tYXBzL2dlbz8mcT0lcyZvdXRwdXQ9Y3N2JmtleT0lcycsJHRoaXMtPmxvb2t1cF9zZXJ2ZXJbJ0dPT0dMRSddLHJhd3VybGVuY29kZSgkYWRkcmVzcyksJHRoaXMtPmFwaV9rZXkpOwoKICAgICAgICAgICAgICAgICRfcmVzdWx0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGlmKCRfcmVzdWx0ID0gJHRoaXMtPmZldGNoVVJMKCRfdXJsKSkgewoKICAgICAgICAgICAgICAgICAgICAkX3Jlc3VsdF9wYXJ0cyA9IGV4cGxvZGUoJywnLCRfcmVzdWx0KTsKICAgICAgICAgICAgICAgICAgICBpZigkX3Jlc3VsdF9wYXJ0c1swXSAhPSAyMDApCiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICAgICAkX2Nvb3Jkc1snbGF0J10gPSAkX3Jlc3VsdF9wYXJ0c1syXTsKICAgICAgICAgICAgICAgICAgICAkX2Nvb3Jkc1snbG9uJ10gPSAkX3Jlc3VsdF9wYXJ0c1szXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIAogICAgICAgICAgICBjYXNlICdZQUhPTyc6CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJF91cmwgPSAnaHR0cDovLyVzL01hcHNTZXJ2aWNlL1YxL2dlb2NvZGUnOwogICAgICAgICAgICAgICAgJF91cmwgLj0gc3ByaW50ZignP2FwcGlkPSVzJmxvY2F0aW9uPSVzJywkdGhpcy0+bG9va3VwX3NlcnZlclsnWUFIT08nXSwkdGhpcy0+YXBwX2lkLHJhd3VybGVuY29kZSgkYWRkcmVzcykpOwoKICAgICAgICAgICAgICAgICRfcmVzdWx0ID0gZmFsc2U7CgogICAgICAgICAgICAgICAgaWYoJF9yZXN1bHQgPSAkdGhpcy0+ZmV0Y2hVUkwoJF91cmwpKSB7CgogICAgICAgICAgICAgICAgICAgIHByZWdfbWF0Y2goJyE8TGF0aXR1ZGU+KC4qKTwvTGF0aXR1ZGU+PExvbmdpdHVkZT4oLiopPC9Mb25naXR1ZGU+IVUnLCAkX3Jlc3VsdCwgJF9tYXRjaCk7CgogICAgICAgICAgICAgICAgICAgICRfY29vcmRzWydsb24nXSA9ICRfbWF0Y2hbMl07CiAgICAgICAgICAgICAgICAgICAgJF9jb29yZHNbJ2xhdCddID0gJF9tYXRjaFsxXTsKCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0gICAgICAgICAKICAgICAgICAKICAgICAgICByZXR1cm4gJF9jb29yZHM7ICAgICAgIAogICAgfQogICAgCiAgICAKCiAgICAvKioKICAgICAqIGZldGNoIGEgVVJMLiBPdmVycmlkZSB0aGlzIG1ldGhvZCB0byBjaGFuZ2UgdGhlIHdheSBVUkxzIGFyZSBmZXRjaGVkLgogICAgICogCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1cmwKICAgICAqLwogICAgZnVuY3Rpb24gZmV0Y2hVUkwoJHVybCkgewoKICAgICAgICByZXR1cm4gZmlsZV9nZXRfY29udGVudHMoJHVybCk7CgogICAgfQoKICAgIC8qKgogICAgICogZ2V0IGRpc3RhbmNlIGJldHdlZW4gdG8gZ2VvY29vcmRzIHVzaW5nIGdyZWF0IGNpcmNsZSBkaXN0YW5jZSBmb3JtdWxhCiAgICAgKiAKICAgICAqIEBwYXJhbSBmbG9hdCAkbGF0MQogICAgICogQHBhcmFtIGZsb2F0ICRsYXQyCiAgICAgKiBAcGFyYW0gZmxvYXQgJGxvbjEKICAgICAqIEBwYXJhbSBmbG9hdCAkbG9uMgogICAgICogQHBhcmFtIGZsb2F0ICR1bml0ICAgTT1taWxlcywgSz1raWxvbWV0ZXJzLCBOPW5hdXRpY2FsIG1pbGVzLCBJPWluY2hlcywgRj1mZWV0CiAgICAgKi8KICAgIGZ1bmN0aW9uIGdlb0dldERpc3RhbmNlKCRsYXQxLCRsb24xLCRsYXQyLCRsb24yLCR1bml0PSdNJykgewogICAgICAgIAogICAgICAvLyBjYWxjdWxhdGUgbWlsZXMKICAgICAgJE0gPSAgNjkuMDkgKiByYWQyZGVnKGFjb3Moc2luKGRlZzJyYWQoJGxhdDEpKSAqIHNpbihkZWcycmFkKCRsYXQyKSkgKyAgY29zKGRlZzJyYWQoJGxhdDEpKSAqIGNvcyhkZWcycmFkKCRsYXQyKSkgKiBjb3MoZGVnMnJhZCgkbG9uMSAtICRsb24yKSkpKTsgCgogICAgICBzd2l0Y2goc3RydG91cHBlcigkdW5pdCkpCiAgICAgIHsKICAgICAgICBjYXNlICdLJzoKICAgICAgICAgIC8vIGtpbG9tZXRlcnMKICAgICAgICAgIHJldHVybiAkTSAqIDEuNjA5MzQ0OwogICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnTic6CiAgICAgICAgICAvLyBuYXV0aWNhbCBtaWxlcwogICAgICAgICAgcmV0dXJuICRNICogMC44Njg5NzYyNDI7CiAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdGJzoKICAgICAgICAgIC8vIGZlZXQKICAgICAgICAgIHJldHVybiAkTSAqIDUyODA7CiAgICAgICAgICBicmVhazsgICAgICAgICAgICAKICAgICAgICBjYXNlICdJJzoKICAgICAgICAgIC8vIGluY2hlcwogICAgICAgICAgcmV0dXJuICRNICogNjMzNjA7CiAgICAgICAgICBicmVhazsgICAgICAgICAgICAKICAgICAgICBjYXNlICdNJzoKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgLy8gbWlsZXMKICAgICAgICAgIHJldHVybiAkTTsKICAgICAgICAgIGJyZWFrOwogICAgICB9CiAgICAgIAogICAgfSAgICAKICAgIAp9Cgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/GoogleMapAPI-2.4/NEWS</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Mi40Ci0tLQoKZml4IGEgY291cGxlIGJ1Z3Mgd2l0aCBkcmF3aW5nIHRoZSBqYXZhc2NyaXB0IG1hcCAoZHJha29zNyxubXdlYixtb2hydCkKZml4IGxhdC9sb24gZGVjaW1hbCB3aGVuIGxvY2FsZSB1c2VzIGEgY29tbWEgKG1vaHJ0LCBSZW5lIFNjaG1pZHQpCmZpeCBqYXZhc2NyaXB0IGVzY2FwZW1lbnQgZXJyb3JzIChHcmVnIFdpbHNvbiwgSmVyb21lIENvbWJheiwgbW9ocnQpCgoyLjMKLS0tCgoqIGZpeGVkIGRiX2NhY2hlX2luc2VydCB0YWJsZSBpc3N1ZSAoZXphciwgbW9ocnQpCgoyLjIKLS0tCgoqIGFkZCBnZW9HZXREaXN0YW5jZSgpIHRvIGNvbXB1dGUgZGlzdGFuY2UgYmV0d2VlbiB0d28gY29vcmRzCiAgdXNpbmcgZ3JlYXQgY2lyY2xlIGRpc3RhbmNlIGZvcm11bGEgKG1vaHJ0KQoqIHVwZGF0ZSBHb29nbGUgbG9va3VwIHRvIHVzZSBvZmZpY2lhbCBHb29nbGUgZ2VvIEFQSSAobW9ocnQpCgoyLjEKLS0tCgoqIGZpeCBhZGp1c3RDZW50ZXJDb29yZHMgdG8gY2FzdCB2YWx1ZXMgYXMgZmxvYXRzIChoZW1tZXRlciwgbW9ocnQpCiogbWFkZSBHT09HTEUgZGVmYXVsdCBsb29rdXAgc2VydmljZQoqIGFkZGVkIHN1cHBvcnQgZm9yIHRhYmJlZCBpbmZvIHdpbmRvd3M6IHBhc3MgYW4gYXJyYXkgb2YgdGl0bGUgPT4gaHRtbCBwYWlycyBhcyB0aGUgJGh0bWwgYXJndW1lbnQKICB0byBhZGRNYXJrZXIuIERpcmVjdGlvbnMsIGlmIGVuYWJsZWQsIGFwcGVhciBpbiB0aGUgZmlyc3QgdGFiLiAoY2xhcmspCiogbWlub3IgYnVnZml4OiBvbmx5IHpvb20gZW5jb21wYXNzIGlmIHRoZXJlIGFyZSB0d28gb3IgbW9yZSBtYXJrZXJzIChjbGFyaykKKiBhZGRlZCBwcmludC9nZXRPbkxvYWQoKSBzbyB5b3UgY2FuIHNldCB3aW5kb3cgb25sb2FkIGR5bmFtaWNhbGx5IChWYXVnaG4gQW5kZXJzb24pCiogYWRkIChkaXMvZW4pYWJsZU92ZXJ2aWV3Q29udHJvbCgpIGZlYXR1cmVzIChBbnRvbmlvIENvc3RhLCBtb250ZSkKKiBhZGQgKGRpcy9lbilhYmxlU2NhbGVDb250cm9sKCkgZmVhdHVyZXMgKEFudG9uaW8gQ29zdGEsIG1vbnRlKQoqIHVzZSBmaXJzdCBzdWdnZXN0aW9uIHdpdGggIkRpZCB5b3UgbWVhbiIgcmVzdWx0IGZyb20gZ29vZ2xlIGxvb2t1cHMsIGF2b2lkIGxvb3BzLCBhZGQgcHJvcGVydHkgJHVzZV9zdWdnZXN0IChBbmdlbG8gQ29uZm9ydGksICBtb250ZSkKKiBtYWtlIEdFT0NPREVTIGRiIHRhYmxlIGNvbmZpZ3VyYWJsZSAoQW5nZWxvIENvbmZvcnRpLCBtb250ZSkKCjIuMAotLS0KCiogY29udmVydGVkIG1hcCB0eXBlIGNvbnN0YW50cyB0byBHX05PUk1BTF9NQVAsIEdfU0FURUxMSVRFX01BUCwgR19IWUJSSURfTUFQLAogIGZvciB2ZXJzaW9uIDIgb2YgR29vZ2xlIE1hcCBhcGkuCiogZml4ZWQgdXAgZHJpdmluZyBkaXJlY3Rpb24gSFRNTCwgcmVtb3ZlIDxwPiwgYWRkIDxkaXY+IChKb2huIFNjaHVseiwgbW9udGUpCiogTW92ZWQgdG8gdmVyc2lvbiAyIG9mIHRoZSBHb29nbGUgTWFwcyBKUyBBUEkuIChjbGFyaykKICBOb3cgdXNlIHRoZSBHTWFwMiBjbGFzcyBpbnN0ZWFkIG9mIEdNYXAgYW5kIEdMYXRMbmcgaW5zdGVhZCBvZgogIEdQb2ludCAoZm9yIGxhdC9sb24gcGFpcnMpIGFsb25nIHdpdGggb3RoZXIgbWlub3IgY2hhbmdlcy4gCiogem9vbSBlbmNvbXBhc3MgbG9vcCByZXBsYWNlZCBieSBhIG5ldyBvZmZpY2lhbCBmdW5jdGlvbiwgbWFwLmdldEJvdW5kc1pvb21MZXZlbChiZHMpLAogIHdoaWNoIHJldHVybnMgdGhlIGFwcHJvcHJpYXRlIHpvb20gbGV2ZWwgZm9yIGEgZ2l2ZW4gR0JvdW5kcyBvYmplY3QuIChjbGFyaykKKiBDb252ZXJ0ZWQgdGhyZWUgc2VjdGlvbnMgb2YgdGhlIGdldE1hcEpTKCkgZnVuY3Rpb24gaW50byB0aGVpciBvd24gZnVuY3Rpb25zOgogIGdldEFkZE1hcmtlcnNKUygpLCBnZXRQb2x5bGluZUpTKCksIGFuZCBnZXRDcmVhdGVNYXJrZXJKUygpLCBzbyB0aGF0IHRoZXkgY2FuIGJlIGV4dGVuZGVkCiAgYnkgc3ViY2xhc3Nlcy4gKGNsYXJrKQoqIGZpeCB6b29tIGVuY29tcGFzcyBmdWRnZSBmYWN0b3IgYnVnOyBub3cgYXBwbHkgdGhlIGZ1ZGdlIGZhY3RvciBpbgogIGdldE1hcEpTKCksIGp1c3QgYmVmb3JlIHdlIHpvb20uIChjbGFyaykKKiBhZGRNYXJrZXJCeUFkZHJlc3MgYW5kIGFkZFBvbHlMaW5lQnlBZGRyZXNzIG5vdyBjYWxsIGFkZE1hcmtlckJ5Q29vcmRzCiAgYW5kIGFkZFBvbHlMaW5lQnlDb29yZHMgaW5zdGVhZCBvZiBkdXBsaWNhdGluZyB0aGUgY29kZSAoY2xhcmspCiogYWRkZWQgc2V0Qm91bmRzRnVkZ2UoKSAoY2xhcmspCgoxLjcKLS0tCgoqIGZpeCBjb21wYXRhYmlsaXR5IHByb2JsZW0gd2l0aCBvbGRlciBQSFAKICAoY2hhbmdlIHByaW50X3IgdG8gc2VyaWFsaXplKSAobW9udGUpCiogZml4IGJ1ZyB3aXRoIHNpZGViYXIgaW5kZXggY291bnRlciAobW9udGUpCiogbWFrZSBtYXAgZGlyZWN0aW9uIGh0bWwgbW9yZSBjb25maWd1cmFibGUgd2l0aCBjc3MgYW5kIGpzIChtb250ZSkKKiBhZGRlZCBtb3JlIGVycm9yIGNoZWNraW5nIHRvIGdvb2dsZSBnZW9jb29yZCBsb29rdXBzIChtb250ZSkKKiBhZGQgZnVkZ2UgZmFjdG9yIHRvIHpvb21fZW5jb21wYXNzIHNvIG1hcmtlcnMKICBhcmUgYXdheSBmcm9tIHRoZSBlZGdlcyAobW9udGUpCgoxLjYKLS0tCgoqIG1vdmUgZHJpdmluZyBkaXIgb3V0cHV0IHRvIHByb3BlcnR5IHZhciAobW9udGUpCiogYWRkIDxkaXY+IGlkcyB0byBkcml2aW5nIGRpcnMgKG1vbnRlKQoqIGZpeCBwcm9ibGVtIHdpdGggcXVvdGVzIGluIHRpdGxlcyBvZiBkcml2aW5nIGRpciAobW9udGUpCiogZml4IGRyaXZpbmcgZGlyIHdyYXBwaW5nIChtb250ZSkKKiBmaXggcHJvYmxlbSB3aXRoIGVtcHR5IGxhdC9sb24gdmFsdWVzIChtb250ZSkKKiBtb3ZlIHNvbWUganMgZnVuY3MgYXJvdW5kLCB0ZXN0IGZvciBtYXAgPGRpdj4gdGFnIChtb250ZSkKKiBkb24ndCBzdXBwbHkgc3R5bGUgdGFncyB0byA8ZGl2PiBpZiB3aWR0aCBhbmQgaGVpZ2h0IGVtcHR5IChtb250ZSkKKiBhZGQganMgZnVuY3Rpb24gc2hvd19pbmZvX3dpbmRvdygpIChtb250ZSkKKiB0cmFjayBwb2ludHMgYW5kIG1hcmtlcnMgaW4gZ2xvYmFsIGpzIGFycmF5cyAobW9udGUpCiogbWFrZSB0aGUgbWFwIGpzIHZhciBnbG9iYWwgKG1vbnRlKQoqIGZpeCBidWcgd2l0aCBpY29uIGFuY2hvciBwb3NpdGlvbmluZyAobW9udGUpCiogYWRkIGVuYWJsZUluZm9XaW5kb3coKSBhbmQgZGlzYWJsZUluZm9XaW5kb3coKSAobW9udGUpCiogcmVtb3ZlIHVudXNlZCBtZXNzYWdlX2lkIChtb250ZSkKCjEuNQotLS0KCiogYWRkIHNldExvb2t1cFNlcnZpY2UoKSB0byBzd2l0Y2ggYmV0d2VlbiBnZW9jb2RlIGxvb2t1cCBzZXJ2aWNlcyAobW9udGUpCiogYWRkIGFkZE1hcmtlckljb24oKSBmb3Igc2V0dGluZyBpY29ucyBmb3IgaW5kaXZpZHVhbCBtYXAgbWFya2VycyAoQ2xhcmsgRnJlaWZlbGQpCiogYWRkICR6b29tX2VuY29tcGFzcyBzbyBkZWZhdWx0IG1hcCB6b29tIGNsb3NlbHkgZW5jb21wYXNzZXMgbWFwIG1hcmtlcnMgKENsYXJrCkZyaWVmZWxkKQoqIGNoYW5nZSBtYXJrZGVyIGRlZmF1bHRzIHRvIG1vcmUgY2xvc2VseSBtYXRjaCBnb29nbGUgbWFwIGRlZmF1bHRzIHdoZW4gbm9uZQphcmUgZ2l2ZW4gKENsYXJrIEZyZWlmZWxkKQoKMS40Ci0tLQoKKiBzcGxpdCBvdXQgVVJMIGZldGNoaW5nIHRvIGl0cyBvd24gbWV0aG9kIHNvIGl0IGNhbiBiZSBlYXNpbHkgb3ZlcnJpZGRlbiAobW9udGUpCiogd3JhcCA8ZGl2PiB0YWdzIGluc2lkZSBqYXZhc2NyaXB0IGZvciBicm93c2VyIGNvbXBhdGFiaWxpdHkgKEpha2UgS3JvaG4sIG1vbnRlKQoqIG1ha2UgSFRNTCBtYXJrZXJzIGRpc3BsYXkgcHJvcGVybHkgaW4gZmlyZWZveCAxLjUgKEpha2UgS3JvaG4sIG1vbnRlKQoqIGZpeGVkIGJ1ZyB3aXRoIHNpZGViYXIgZGlzYWJsZWQgKG1vbnRlKQoKMS4zCi0tLQoKKiByZW1vdmUgZGVidWcgcHJpbnRfciBzdGF0ZW1lbnQgZnJvbSBnZW9HZXRDb29yZHMoKSBmdW5jdGlvbiAobW9udGUpCiogZml4ZWQgYnVnIHdoZW4gc2V0dGluZyBtYXAgdHlwZSBhbmQgZGlzYWJsaW5nIG1hcCBjb250cm9scyAoSm9obiBGcmFuY2lzIExlZSwgbW9udGUpCgoxLjIKLS0tCgoqIGFkZGVkIFVURi04IGNoYXJzZXQgc2V0dGluZyB0byA8amF2YXNjcmlwdD4gdGFncyB0byB3b3JrIHdpdGggSUUgaW4gYWxsIGxhbmdzIChLQURPLCBtb250ZSkKKiBmaXggaXNzdWUgd2l0aCBtdWx0aXBsZSBsYXQvbG9uIGZpbmRpbmdzIGZyb20geWFob28gKGFuZGlnLG1vbnRlKQoqIGFkZCBzZXRNYXBUeXBlKCkgZnVuY3Rpb24gKElzaWRvcjEyOCxtb250ZSkKKiBhbGxvdyBkb3VibGUgcXVvdGVzIGluIHRpdGxlL2h0bWwgb2YgbWFya2VycyAobW9udGUpCiogYWxsb3cgd2lkdGgvaGVpZ2h0IGluIGVpdGhlciBweCBvciAlIChUR0tuSWdodCxtb250ZSkKKiBhZGQgc2V0Wm9vbUxldmVsKCkgZnVuY3Rpb24gKG1vbnRlKQoKMS4xCi0tLQoKKiByZXBsYWNlZCBHb29nbGVNYXBBUEkuY2xhc3MucGhwIHdpdGggR09PRCB2ZXJzaW9uLCAxLjAgaGFkIGluY29ycmVjdCBmaWxlIQoKMS4wCi0tLQoKaW5pdGlhbCByZWxlYXNlCg==]]></data>
	</file>
	<file>
	  <filename>/lib/GoogleMapAPI-2.4/README</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[TkFNRToKCiAgICBHb29nbGVNYXBBUEkgLSBBIGxpYnJhcnkgdXNlZCBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCgpBVVRIT1I6CiAgICBNb250ZSBPaHJ0IDxtb250ZSBbQVRdIG9ocnQgW0RPVF0gY29tPgoKTEFURVNUIFZFUlNJT046CiAgICAyLjQgLSBBdWcgMXN0LCAyMDA3CgpTWU5PUFNJUzoKCiAgICA8P3BocAogICAgcmVxdWlyZSgnR29vZ2xlTWFwQVBJLmNsYXNzLnBocCcpOwoKICAgICRtYXAgPSBuZXcgR29vZ2xlTWFwQVBJKCdtYXAnKTsKICAgIC8vIHNldHVwIGRhdGFiYXNlIGZvciBnZW9jb2RlIGNhY2hpbmcKICAgICRtYXAtPnNldERTTignbXlzcWw6Ly9VU0VSOlBBU1NAbG9jYWxob3N0L0dFT0NPREVTJyk7CiAgICAvLyBlbnRlciBZT1VSIEdvb2dsZSBNYXAgS2V5CiAgICAkbWFwLT5zZXRBUElLZXkoJ1lPVVJHT09HTEVNQVBLRVknKTsKICAgIAogICAgLy8gY3JlYXRlIHNvbWUgbWFwIG1hcmtlcnMKICAgICRtYXAtPmFkZE1hcmtlckJ5QWRkcmVzcygnNjIxIE4gNDh0aCBTdCAjIDYgTGluY29sbiBORSA2ODUwMicsJ1BKIFBpenphJywnPGI+UEogUGl6emE8L2I+Jyk7CiAgICAkbWFwLT5hZGRNYXJrZXJCeUFkZHJlc3MoJzgyNiBQIFN0IExpbmNvbG4gTkUgNjg1MDInLCdPbGQgQ2hpY2FnbycsJzxiPk9sZCBDaGljYWdvPC9iPicpOwogICAgJG1hcC0+YWRkTWFya2VyQnlBZGRyZXNzKCczNDU3IEhvbGRyZWdlIFN0IExpbmNvbG4gTkUgNjg1MDInLCJWYWxlbnRpbm8ncyIsIjxiPlZhbGVudGlubydzPC9iPiIpOwogICAgPz4KCiAgICA8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvVFIveGh0bWwxL0RURC94aHRtbDEtc3RyaWN0LmR0ZCI+CiAgICA8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgeG1sbnM6dj0idXJuOnNjaGVtYXMtbWljcm9zb2Z0LWNvbTp2bWwiPgogICAgPGhlYWQ+CiAgICA8P3BocCAkbWFwLT5wcmludEhlYWRlckpTKCk7ID8+CiAgICA8P3BocCAkbWFwLT5wcmludE1hcEpTKCk7ID8+CiAgICA8IS0tIG5lY2Vzc2FyeSBmb3IgZ29vZ2xlIG1hcHMgcG9seWxpbmUgZHJhd2luZyBpbiBJRSAtLT4KICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiAgICAgIHZcOiogewogICAgICAgIGJlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpOwogICAgICB9CiAgICA8L3N0eWxlPgogICAgPC9oZWFkPgogICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKSI+CiAgICA8dGFibGUgYm9yZGVyPTE+CiAgICA8dHI+PHRkPgogICAgPD9waHAgJG1hcC0+cHJpbnRNYXAoKTsgPz4KICAgIDwvdGQ+PHRkPgogICAgPD9waHAgJG1hcC0+cHJpbnRTaWRlYmFyKCk7ID8+CiAgICA8L3RkPjwvdHI+CiAgICA8L3RhYmxlPgogICAgPC9ib2R5PgogICAgPC9odG1sPgoKCgpPVVRQVVQ6CgogICAgVmlldyB0aGUgb3V0cHV0IG9mIHRoZSBhYm92ZSBleGFtcGxlIGhlcmU6CgogICAgaHR0cDovL3d3dy5waHBpbnNpZGVyLmNvbS9waHAvY29kZS9Hb29nbGVNYXBBUEkvZGVtby8KCiAgICAKREVTQ1JJUFRJT046CgogICAgR29vZ2xlTWFwQVBJIC0gQSBsaWJyYXJ5IHVzZWQgZm9yIGNyZWF0aW5nIGdvb2dsZSBtYXBzIHVzaW5nIHRoZQogICAgR29vZ2xlIE1hcCBwdWJsaWMgQVBJLiBGZWF0dXJlcyBpbmNsdWRlIG11bHRpcGxlIG1hcCBtYXJrZXJzLCBjdXN0b21pemFibGUKICAgIGljb25zLCBtYXAgZGlyZWN0aW9ucyBidWlsdCBpbnRvIGluZm8gd2luZG93LCBhbmQgc2lkZWJhciBnZW5lcmF0aW9uLgogICAgCiAgICBNb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBHb29nbGUgTWFwIEFQSSBjYW4gYmUgZm91bmQgaGVyZToKICAgIAogICAgaHR0cDovL3d3dy5nb29nbGUuY29tL2FwaXMvbWFwcy8KICAgIAoKRElTQ1VTU0lPTjoKLS0tLS0tLS0tLS0KCiAgICBEaXNjdXNzaW9ucyBhcmUgY3VycmVudGx5IGhlbGQgaW4gdGhlIFNtYXJ0eSBhZGQtb24gZm9ydW0gKGFsdGhvdWdoIFNtYXJ0eQogICAgaXMgbm90IG5lY2Vzc2FyeSB0byB1c2UgR29vZ2xlTWFwQVBJLikKCiAgICBodHRwOi8vd3d3LnBocGluc2lkZXIuY29tL3NtYXJ0eS1mb3J1bS92aWV3Zm9ydW0ucGhwP2Y9MTkKICAgIAoKQkFTRSBDTEFTUyBNRVRIT0RTOgotLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgR29vZ2xlTWFwQVBJKCRtYXBfaWQgPSAnbWFwJywgJGFwcF9pZCA9ICdNeU1hcEFwcCcpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIENsYXNzIENvbnN0cnVjdG9yLgogICAgICAgIFRoZSBtYXAgaWQgaXMgbmVlZGVkIG9ubHkgaWYgeW91IGhhdmUgbXVsdGlwbGUgbWFwcyBvbiB0aGUgc2FtZSBwYWdlLgogICAgICAgIFRoZSBBcHAgSUQgaXMgdXNlZCBmb3IgdGhlIFlhaG9vIEdlb0NvZGUgQVBJLCB3aGljaCBpcyB0aGUgZGVmYXVsdAogICAgICAgIGxvb2t1cCBzZXJ2aWNlLiBVc2UgYSB1bmlxdWUgQXBwIElEIHBlciBhcHBsaWNhdGlvbi4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgIC8vIHVzZSBkZWZhdWx0cwogICAgICAgICRtYXAgPSBuZXcgR29vZ2xlTWFwQVBJKCk7CgogICAgICAgIC8vIHNldCBjdXN0b20gbWFwIGlkIGFuZCBhcHAgaWQKICAgICAgICAkbWFwID0gbmV3IEdvb2dsZU1hcEFQSSgnbXltYXAnLCdteWFwcCcpOwoKCiAgICBzZXREU04oJGRzbikKICAgIC0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVXNlZCB0byBzZXQgdGhlIGRhdGFiYXNlIERTTi4gVGhlIGRhdGFiYXNlIGlzIHVzZWQgdG8gY2FjaGUKICAgICAgICBnZW9jb2RlIGxvb2t1cHMgKGhpZ2hseSByZWNvbW1lbmRlZCEpIFRoZSBQRUFSOjpEQiBtb2R1bGUKICAgICAgICBpcyByZXF1aXJlZCBmb3IgZGF0YWJhc2UgYWNjZXNzLiBZb3Ugd2lsbCBuZWVkIHRvIGNyZWF0ZQogICAgICAgIHRoZSBmb2xsb3dpbmcgZGF0YWJhc2Ugc2NoZW1hIChteXNxbCBleGFtcGxlIGdpdmVuKToKICAgICAgICAKICAgICAgICBDUkVBVEUgVEFCTEUgR0VPQ09ERVMgKAogICAgICAgICAgYWRkcmVzcyB2YXJjaGFyKDI1NSkgTk9UIE5VTEwgZGVmYXVsdCAnJywKICAgICAgICAgIGxvbiBmbG9hdCBkZWZhdWx0IE5VTEwsCiAgICAgICAgICBsYXQgZmxvYXQgZGVmYXVsdCBOVUxMLAogICAgICAgICAgUFJJTUFSWSBLRVkgIChhZGRyZXNzKQogICAgICAgICk7CiAgICAgICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAkbWFwLT5zZXREU04oJ215c3FsOi8vREJVU0VSOkRCUEFTU0BEQkhPU1QvREJOQU1FJyk7CiAgICAgICAgJG1hcC0+c2V0RFNOKCdteXNxbDovL2dlbzpmb29iYXJAbG9jYWxob3N0L0dFT0NPREVTJyk7CgogICAgCiAgICBzZXRBUElLZXkoJGtleSkKICAgIC0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgU2V0cyB0aGUgR29vZ2xlIE1hcCBBUEkgS2V5LiBUaGlzIGlzIG1hbmRhdG9yeSwgeW91IHdpbGwgbmVlZAogICAgICAgIGFuIEFQSSBLZXkgZm9yIHlvdXIgaG9zdG5hbWUhIFlvdSBjYW4gcmVnaXN0ZXIgZnJlZSBoZXJlOgogICAgICAgIAogICAgICAgIGh0dHA6Ly93d3cuZ29vZ2xlLmNvbS9hcGlzL21hcHMvc2lnbnVwLmh0bWwKCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAvLyBlbnRlciBZT1VSIHJlZ2lzdGVyZWQgQVBJIEtleQogICAgICAgICRtYXAtPnNldEFQSUtleSgnQUJRSUFBQUF4cDVGRi1BMFJoSE9ublRCd3JsUmJ4Jyk7CgoKICAgIHNldFdpZHRoKCR3aWR0aCkKICAgIC0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFNldHMgdGhlIHdpZHRoIG9mIHRoZSBtYXAgd2luZG93LiBUaGlzIGNhbiBiZSBlaXRoZXIgcHggb3IgJS4KICAgICAgICBEZWZhdWx0IGlzIDUwMHB4LgogICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAkbWFwLT5zZXRXaWR0aCgnNTAwcHgnKTsKICAgICAgICAkbWFwLT5zZXRXaWR0aCgnMTAwJScpOwoKICAgIAogICAgc2V0SGVpZ2h0KCRoZWlnaHQpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFNldHMgdGhlIGhlaWdodCBvZiB0aGUgbWFwIHdpbmRvdy4gVGhpcyBjYW4gYmUgZWl0aGVyIHB4IG9yICUuCiAgICAgICAgRGVmYXVsdCBpcyAnNTAwcHgnLgogICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAkbWFwLT5zZXRIZWlnaHQoJzUwMHB4Jyk7CiAgICAgICAgJG1hcC0+c2V0SGVpZ2h0KCcxMDAlJyk7CiAgICAgICAgCiAgICAgICAgCiAgICBlbmFibGVNYXBDb250cm9scygpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBUaGlzIHdpbGwgZW5hYmxlIHRoZSBtYXAgY29udHJvbHMgdG8gem9vbS9tb3ZlIGFyb3VuZCB0aGUgbWFwLgogICAgICAgIEVuYWJsZWQgYnkgZGVmYXVsdC4KCgogICAgZGlzYWJsZU1hcENvbnRyb2xzKCkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBUaGlzIHdpbGwgZGlzYWJsZSB0aGUgbWFwIGNvbnRyb2xzIHRvIHpvb20vbW92ZSBhcm91bmQgdGhlIG1hcC4KICAgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQuCgoKICAgIHNldFpvb21MZXZlbCgpCiAgICAtLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBzZXRzIHRoZSBkZWZhdWx0IG1hcCB6b29tIGxldmVsLgogICAgICAgIAogICAgICAgIEV4YW1wbGU6CiAgICAgICAgCiAgICAgICAgJG1hcC0+c2V0Wm9vbUxldmVsKDQpOwoKCiAgICBzZXRDb250cm9sU2l6ZSgkc2l6ZSkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBzZXRzIHRoZSBtYXAgY29udHJvbCBzaXplLiBSZWxldmFudCBvbmx5IGlmIG1hcCBjb250cm9scyBhcmUKICAgICAgICBlbmFibGVkLiBsYXJnZSA9IG1hcCB6b29tL21vdmUgd2l0aCBzbGlkZXIuIHNtYWxsID0gem9vbS9tb3ZlIHdpdGhvdXQKICAgICAgICBzbGlkZXIuIExhcmdlIGlzIGRlZmF1bHQuCiAgICAgICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAkbWFwLT5zZXRDb250cm9sU2l6ZSA9ICdzbWFsbCc7CgoKICAgIGVuYWJsZVR5cGVDb250cm9scygpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyB3aWxsIGVuYWJsZSB0aGUgbWFwIHR5cGUgY29udHJvbHMgKG1hcC9zYXRlbGxpdGUvaHlicmlkKS4KICAgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQuCgoKICAgIGRpc2FibGVUeXBlQ29udHJvbHMoKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBUaGlzIHdpbGwgZGlzYWJsZSB0aGUgbWFwIHR5cGUgY29udHJvbHMgKG1hcC9zYXRlbGxpdGUvaHlicmlkKS4KICAgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQuCgoKICAgIHNldE1hcFR5cGUoJHR5cGUpCiAgICAtLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBzZXRzIHRoZSBkZWZhdWx0IG1hcCB0eXBlLiBSZWxldmFudCBvbmx5IGlmIG1hcCB0eXBlIGNvbnRyb2xzIGFyZQogICAgICAgIGVuYWJsZWQuIG1hcCA9IGRlZmF1bHQgbWFwLiBzYXRlbGxpdGUgPSBzYXRlbGxpdGUgdmlldy4gaHlicmlkID0gaHlicmlkCiAgICAgICAgdmlldy4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgICRtYXAtPnNldE1hcFR5cGUoJ21hcCcpOyAvLyBkZWZhdWx0CiAgICAgICAgJG1hcC0+c2V0TWFwVHlwZSgnc2F0ZWxsaXRlJyk7CiAgICAgICAgJG1hcC0+c2V0TWFwVHlwZSgnaHlicmlkJyk7CiAgICAgICAgCiAgICAgICAgCiAgICBlbmFibGVTaWRlYmFyKCkKICAgIC0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBlbmFibGVzIHRoZSBtYXAgc2lkZWJhci4gVXNlIHByaW50U2lkZUJhcigpIG9yIGdldFNpZGVCYXIoKSB0bwogICAgICAgIG91dHB1dCB0aGUgc2lkZWJhciB0ZXh0LiBFbmFibGVkIGJ5IGRlZmF1bHQuCgoKICAgIGRpc2FibGVTaWRlYmFyKCkKICAgIC0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFRoaXMgZGlzYWJsZXMgdGhlIG1hcCBzaWRlYmFyLiBFbmFibGVkIGJ5IGRlZmF1bHQuCgogICAgCiAgICBlbmFibGVEaXJlY3Rpb25zKCkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBlbmFibGVzIG1hcCBkaXJlY3Rpb25zIGluIHRoZSBib3R0b20gb2YgdGhlIHBvcC11cCBpbmZvIHdpbmRvdy4KICAgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQuICAgICAgICAKCgogICAgZGlzYWJsZURpcmVjdGlvbnMoKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBkaXNhYmxlcyBtYXAgZGlyZWN0aW9ucyBpbiB0aGUgYm90dG9tIG9mIHRoZSBwb3AtdXAgaW5mbyB3aW5kb3cuCiAgICAgICAgRW5hYmxlZCBieSBkZWZhdWx0LgoKICAgIGVuYWJsZVpvb21FbmNvbXBhc3MoKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBUaGlzIGVuYWJsZXMgem9vbSBlbmNvbXBhc3Mgc28gZGVmYXVsdCBtYXAgem9vbSBpcyBhcyBzbWFsbCBhcyBwb3NzaWJsZQogICAgICAgIGFuZCBpbmNsdWRlIGFsbCBtYXAgbWFya2Vycy4KICAgICAgICBFbmFibGVkIGJ5IERlZmF1bHQuCgogICAgZGlzYWJsZVpvb21FbmNvbXBhc3MoKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBkaXNhYmxlcyB6b29tIGVuY29tcGFzcy4KICAgICAgICBFbmFibGVkIGJ5IERlZmF1bHQuICAgICAgICAKCgogICAgc2V0Qm91bmRzRnVkZ2UoJHZhbCkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBTZXQgdGhlIG1hcCBib3VuZGFyeSBmdWRnZSBmYWN0b3IuIFRoaXMgd2lsbCBhZGp1c3QgaG93IG11Y2ggbWFwCiAgICAgICAgYm91bmRhcnkgZW5jb21wYXNzZXMgdGhlIG1hcCBtYXJrZXJzLiAoMC4wMSBpcyBkZWZhdWx0LikKICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgICRtYXAtPnNldEJvdW5kc0Z1ZGdlKDAuMDEpOwogICAgICAgIAogICAgICAgIAogICAgc2V0QnJvd3NlckFsZXJ0KCRtZXNzYWdlKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBzZXRzIHRoZSBhbGVydCBtZXNzYWdlIHRoYXQgcG9wcyB1cCB3aGVuIGEgYnJvd3NlciBpcyBub3QKICAgICAgICBjb21wYXRpYmxlIHdpdGggdGhlIEdvb2dsZSBNYXAgQVBJLiBEZWZhdWx0IGlzOgogICAgICAgICJTb3JyeSwgdGhlIEdvb2dsZSBNYXBzIEFQSSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoaXMgYnJvd3Nlci4iCiAgICAgICAgCiAgICAgICAgCiAgICBzZXRKU0FsZXJ0KCRtZXNzYWdlKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFRoaXMgc2V0cyB0aGUgYWxlcnQgbWVzc2FnZSB0aGF0IGRpc3BsYXlzIHdoZW4gamF2YXNjcmlwdCBpcyBkaXNhYmxlZC4KICAgICAgICBEZWZhdWx0OiAiPGI+SmF2YXNjcmlwdCBtdXN0IGJlIGVuYWJsZWQgaW4gb3JkZXIgdG8gdXNlIEdvb2dsZSBNYXBzLjwvYj4iCiAgICAKICAgICAgICAKICAgIGVuYWJsZU9uTG9hZCgpCiAgICAtLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBlbmFibGVzIHRoZSBvbkxvYWQoKSBqYXZhc2NyaXB0IGZ1bmN0aW9uLCB3aGljaCBpcyB1c2VkIGJ5IGRlZmF1bHQuCiAgICAgICAgVGhpcyBhbGxvd3MgdGhlIG1hcCBqYXZhc2NyaXB0IHRvIGJlIHB1dCBpbnRvIHRoZSA8aGVhZD48L2hlYWQ+IHRhZywKICAgICAgICB0aGVuIGxvYWRlZCB1cG9uIHBhZ2UgZW50cnkgd2l0aCBlaXRoZXIgPGJvZHkgb25sb2FkPSJvbkxvYWQoKSI+IHJpZ2h0CiAgICAgICAgaW4gdGhlIGJvZHkgdGFnLCBvciB1c2UgcHJpbnRPbkxvYWQoKSB0byBwbGFjZSB0aGlzIGVsc2V3aGVyZS4gV2l0aCBvbkxvYWQKICAgICAgICBkaXNhYmxlZCwgdGhlIG1hcCBqYXZhc2NyaXB0IG11c3QgYmUgZW1iZWRkZWQgaW5zaWRlIHRoZSA8Ym9keT48L2JvZHk+CiAgICAgICAgdGFncy4gVXNpbmcgb25Mb2FkKCkgaXMgdGhlIGJlc3QgbWV0aG9kIHRvIHVzZSBmb3IgYnJvd3NlcgogICAgICAgIGNvbXBhdGFiaWxpdHkuCgoKICAgIGVuYWJsZUluZm9XaW5kb3coKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBlbmFibGVzIGluZm8gd2luZG93cyBvbiBtYXAgbWFya2Vycy4KICAgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQuCiAgICAKCiAgICBkaXNhYmxlSW5mb1dpbmRvdygpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAgIGRpc2FibGVzIGluZm8gd2luZG93cyBvbiBtYXAgbWFya2Vycy4KICAgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQuCgoKICAgIGVuYWJsZVNjYWxlQ29udHJvbCgpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICBlbmFibGVzIHRoZSBtYXAgc2NhbGUuCiAgICBFbmFibGVkIGJ5IGRlZmF1bHQuCiAgICAKCiAgICBkaXNhYmxlU2NhbGVDb250cm9sKCkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICBkaXNhYmxlcyB0aGUgbWFwIHNjYWxlLgogICAgRW5hYmxlZCBieSBkZWZhdWx0LgoKCiAgICBlbmFibGVPdmVydmlld0NvbnRyb2woKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgZW5hYmxlcyB0aGUgbWFwIG92ZXJ2aWV3LgogICAgRGlzYWJsZWQgYnkgZGVmYXVsdC4KCgogICAgZGlzYWJsZU92ZXJ2aWV3Q29udHJvbCgpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgZGlzYWJsZSB0aGUgbWFwIG92ZXJ2aWV3LgogICAgRGlzYWJsZWQgYnkgZGVmYXVsdC4KCiAgICAgICAgCiAgICBkaXNhYmxlT25Mb2FkKCkKICAgIC0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBkaXNhYmxlcyB0aGUgb25Mb2FkKCkgamF2YXNjcmlwdCBmdW5jdGlvbi4gKHNlZSBlbmFibGVPbkxvYWQoKSkKICAgICAgICBFbmFibGVkIGJ5IGRlZmF1bHQuCiAgICAgICAgCiAgICAgICAgCiAgICBzZXRJbmZvV2luZG93VHJpZ2dlcigkdHlwZSkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBzZXRzIHRoZSBpbmZvIHdpbmRvdyB0cmlnZ2VyIGJlaGF2aW9yLiBjbGljayA9IGluZm8gd2luZG93IGNvbWVzIHVwCiAgICAgICAgd2hlbiBjbGlja2luZyBvbiBhIG1hcmtlci4gbW91c2VvdmVyID0gaW5mbyB3aW5kb3cgY29tZXMgdXAgd2hlbiBtb3VzaW5nCiAgICAgICAgb3ZlciBhIG1hcmtlci4gRGVmYXVsdCBpcyBjbGljay4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgICRtYXAtPnNldEluZm9XaW5kb3dUcmlnZ2VyKCdtb3VzZW92ZXInKTsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgCiAgICBhZGRNYXJrZXJCeUFkZHJlc3MoJGFkZHJlc3MsJHRpdGxlID0gJycsJGh0bWwgPSAnJykKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBhZGRzIGEgbWFya2VyIHRvIHRoZSBtYXAuIFRoZSBhZGRyZXNzIG11c3QgYmUgYSBmdWxseSBxdWFsaWZpZWQKICAgICAgICBhZGRyZXNzIHRoYXQgY2FuIGJlIHVzZWQgYnkgdGhlIGF2YWlsYWJsZSBnZW9jb2RlIGxvb2t1cCBzZXJ2aWNlcy4KICAgICAgICAKICAgICAgICBUbyBhZGQgbWFya2VycyB3aXRoIGdlb2NvZGVzIGRpcmVjdGx5LCBzZWUgYWRkTWFya2VyQnlDb29yZHMoKS4KICAgICAgICAKICAgICAgICBUaGUgdGl0bGUgaXMgdXNlZCBmb3IgdGhlIHNpZGViYXIgbmF2aWdhdGlvbiBsaW5rLiBUaGUgaHRtbCBpcyB1c2VkCiAgICAgICAgaW4gdGhlIGluZm8gd2luZG93IHRoYXQgcG9wcyB1cCB3aGVuIHlvdSBjbGljayBvbiB0aGUgbWFwIG1hcmtlci4gSWYKICAgICAgICBubyBodG1sIGlzIHByb3ZpZGVkLCB0aGUgdGl0bGUgd2lsbCBiZSB1c2VkLgogICAgICAgIAogICAgICAgIE5vdGU6IG1hcCBjZW50ZXJpbmcgaXMgZG9uZSBhdXRvbWF0aWNhbGx5IGFzIG1hcmtlcnMgYXJlIGFkZGVkLgogICAgICAgIAogICAgICAgIE5vdGU6IFlvdSBjYW4gdXNlIHRhYmJlZCB3aW5kb3dzIGJ5IHBhc3NpbmcgYW4gYXJyYXkgb2YKICAgICAgICAgICAgdGl0bGU9PnRleHQgdmFsdWVzIGFzIHRoZSAkaHRtbCBwYXJhbWV0ZXIuIElmIGRyaXZpbmcgZGlyZWN0aW9ucwogICAgICAgICAgICBhcmUgZW5hYmxlZCwgdGhleSBzaG93IHVwIHVuZGVyIHRoZSBmaXJzdCB0YWIuCiAgICAgICAgICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgICRtYXAtPmFkZE1hcmtlckJ5QWRkcmVzcygnNjIxIE4gNDh0aCBTdCAjIDYgTGluY29sbiBORSA2ODUwMicsJ1BKIFBpenphJywnPGI+UEogUGl6emE8L2I+Jyk7CiAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgIAogICAgYWRkTWFya2VyQnlDb29yZHMoJGxvbiwkbGF0LCR0aXRsZSA9ICcnLCRodG1sID0gJycpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFRoaXMgYWRkcyBhIG1hcCBtYXJrZXIgYnkgZ2VvY29kZSAobG9uL2xhdCkgZGlyZWN0bHkuIFNlZQogICAgICAgIGFkZE1hcmtlckJ5QWRkcmVzcygpIGZvciBtb3JlIGRldGFpbHMuCgogICAgICAgIEV4YW1wbGU6CiAgICAgICAgCiAgICAgICAgJG1hcC0+YWRkTWFya2VyQnlBZGRyZXNzKC05Ni42NTM5LDQwLjgxOTEsJ1BKIFBpenphJywnPGI+UEogUGl6emE8L2I+Jyk7CiAgICAgICAgCiAgICAKICAgCiAgICBhZGRQb2x5TGluZUJ5QWRkcmVzcygkYWRkcmVzczEsJGFkZHJlc3MyLCRjb2xvciwkd2VpZ2h0LCRvcGFjaXR5KQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFRoaXMgYWRkcyBhIHBvbHlsaW5lIGJldHdlZW4gdGhlIHR3byBnaXZlbiBhZGRyZXNzZXMuIFlvdSBjYW4gb3B0aW9uYWxseQogICAgICAgIHN1cHBseSBhIGNvbG9yIChpbiAjZmZmZmZmIGhleCBub3RhdGlvbiksIHdlaWdodCAodGhpY2tuZXNzIGluIHBpeGVscyksCiAgICAgICAgYW5kIG9wYWNpdHkgKGluIHBlcmNlbnRhZ2UgMC0xMDApLgogICAgICAgIAogICAgICAgIEV4YW1wbGU6CiAgICAgICAgCiAgICAgICAgJG1hcC0+YWRkUG9seUxpbmVCeUFkZHJlc3MoCiAgICAgICAgICAgICczNDU3IEhvbGRyZWdlIFN0IExpbmNvbG4gTkUgNjg1MDInLAogICAgICAgICAgICAnODI2IFAgU3QgTGluY29sbiBORSA2ODUwMicsJyNlZWVlZWUnLDUsNTApOwogICAgICAgICAgICAgICAgCiAgICAgICAgCiAgICBhZGRQb2x5TGluZUJ5Q29vcmRzKCRsb24xLCRsYXQxLCRsb24yLCRsYXQyLCRjb2xvciwkd2VpZ2h0LCRvcGFjaXR5KQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFRoaXMgYWRkcyBhIHBvbHlsaW5lIGJldHdlZW4gdGhlIHR3byBnaXZlbiBnZW9jb29yZGluYXRlIHBvaW50cy4gWW91IGNhbiBvcHRpb25hbGx5CiAgICAgICAgc3VwcGx5IGEgY29sb3IgKGluICNmZmZmZmYgaGV4IG5vdGF0aW9uKSwgd2VpZ2h0IChsaW5lIHRoaWNrbmVzcyBpbiBwaXhlbHMpLAogICAgICAgIGFuZCBvcGFjaXR5IChpbiBwZXJjZW50YWdlIDAtMTAwKS4KCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAkbWFwLT5hZGRQb2x5TGluZUJ5Q29vcmRzKC05Ni42Nyw0MC44Mjc5LC05Ni43MDk1LDQwLjgxNDksJyNlZWVlZWUnLDUsNTApOwoKICAgICAgICAgICAgICAgIAogICAgYWRqdXN0Q2VudGVyQ29vcmRzKCRsb24sJGxhdCkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBUaGlzIGFkanVzdHMgdGhlIG1hcCBjZW50ZXIgY29vcmRzIGJ5IHRoZSBnaXZlbiBsb24vbGF0LiBUaGlzIGlzIGRvbmUKICAgICAgICBhdXRvbWF0aWNhbGx5IGFzIHlvdSBhZGQgbWFya2VycyB0byB0aGUgbWFwLCBvciB5b3UgY2FuIGRvIGl0IG1hbnVhbGx5CiAgICAgICAgd2l0aCB0aGlzIGZ1bmN0aW9uLiBOb3RlOiB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUKICAgICAgICBsaWJyYXJ5LCBpdCBpc24ndCBub3JtYWxseSBuZWNlc3NhcnkgdW5sZXNzIHlvdSBoYXZlIGEgc3BlY2lmaWMgbmVlZCBhbmQKICAgICAgICB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuCgogICAgICAgIAogICAgc2V0Q2VudGVyQ29vcmRzKCRsb24sJGxhdCkKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAKICAgICAgICBUaGlzIHNldHMgdGhlIG1hcCBjZW50ZXIgY29vcmRzIHRvIHRoZSBnaXZlbiBsb24vbGF0LiBDZW50ZXIgY29vcmRzIGFyZQogICAgICAgIGNhbGN1bGF0ZWQgYXV0b21hdGljYWxseSBhcyB5b3UgYWRkIG1hcmtlcnMgdG8gdGhlIG1hcCwgb3IgeW91IHJlc2V0IGl0CiAgICAgICAgbWFudWFsbHkgd2l0aCB0aGlzIGZ1bmN0aW9uLiBOb3RlOiB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgaW50ZXJuYWxseSBieQogICAgICAgIHRoZSBsaWJyYXJ5LCBpdCBpc24ndCBub3JtYWxseSBuZWNlc3NhcnkgdW5sZXNzIHlvdSBoYXZlIGEgc3BlY2lmaWMgbmVlZAogICAgICAgIGFuZCB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuCgoKICAgIHNldExvb2t1cFNlcnZpY2UoJ0dPT0dMRScpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAKICAgICAgICBUaGlzIHNldHMgdGhlIGdlb2NvZGUgbG9va3VwIHNlcnZpY2UuIERlZmF1bHQgaXMgR09PR0xFLCB3aGljaCB1c2VzIHRoZQogICAgICAgIEdPT0dMRSBHZW9jb2RlIEFQSS4gSWYgeW91IHVzZSB0aGUgWUFIT08gR2VvY29kZSBBUEksIGJlIHN1cmUgdG8gc2V0CiAgICAgICAgeW91ciBhcHBsaWNhdGlvbiBJRCB3aGVuIGluc3RhbnRpYXRpbmcgR29vZ2xlTWFwQVBJLiBOT1RFOiBZYWhvbyBBUEkKICAgICAgICB3b3JrcyBvbmx5IGZvciBVUyBhZGRyZXNzZXMgKEFGQUlLKS4KICAgIAogICAgCiAgICBzZXRNYXJrZXJJY29uKCRpY29uSW1hZ2UsJGljb25TaGFkb3dJbWFnZSwkaWNvbkFuY2hvclgsJGljb25BbmNob3JZLCRpbmZvV2luZG93QW5jaG9yWCwkaW5mb1dpbmRvd0FuY2hvclkpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBUaGlzIHNldHMgdGhlIGljb24gaW1hZ2UgZm9yIEFMTCB0aGUgbWFwIG1hcmtlcnMuIENhbGwgdGhpcyBvbmNlLiBJZiB5b3UKICAgICAgICB3YW50IHRvIHNldCBhIGRpZmZlcmVudCBpY29uIGZvciBlYWNoIG1hcmtlciwgdXNlIGFkZE1hcmtlckljb24oKQogICAgICAgIGluc3RlYWQuCiAgICAgICAgCiAgICAgICAgWW91IG11c3Qgc3VwcGx5IGEgc2VwYXJhdGUgaW1hZ2UgZm9yIHRoZSBpY29uIGFuZCBpdHMgc2hhZG93LgogICAgICAgIGljb25BbmNob3JYL1kgaXMgdGhlIFgvWSBjb29yZGluYXRlcyBvZiB0aGUgaWNvbiBmb3IgdGhlIG1hcCBwb2ludC4KICAgICAgICBpbmZvV2luZG93QW5jaG9yWC9ZIGlzIHRoZSBYL1kgY29vcmRpbmF0ZXMgb2YgdGhlIGljb24gd2hlcmUgdGhlIGluZm8KICAgICAgICB3aW5kb3cgY29ubmVjdHMuCiAgICAgICAgCiAgICAgICAgVGhlIGljb25JbWFnZSBhbmQgaWNvblNoYWRvd0ltYWdlIGNhbiBiZSBlaXRoZXIgZnVsbHkgcXVhbGlmaWVkIFVSTHMsIG9yCiAgICAgICAgYSByZWxhdGl2ZSBwYXRoIGZyb20geW91ciB3ZWIgc2VydmVyIERPQ1VNRU5UX1JPT1QuIFRoZXNlIGltYWdlcyBNVVNUCiAgICAgICAgZXhpc3QgYW5kIHJlYWRhYmxlIHNvIHRoZSBsaWJyYXJ5IGNhbiBjYWxjdWxhdGUgdGhlIGRpbWVuc2lvbnMuCiAgICAgICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAkbWFwLT5zZXRNYXJrZXJJY29uKCcvaW1hZ2VzL2hvdXNlLnBuZycsJy9pbWFnZXMvaG91c2Vfc2hhZG93LnBuZycsMCwwLDEwLDEwKTsKCgogICAgYWRkTWFya2VySWNvbigkaWNvbkltYWdlLCRpY29uU2hhZG93SW1hZ2UsJGljb25BbmNob3JYLCRpY29uQW5jaG9yWSwkaW5mb1dpbmRvd0FuY2hvclgsJGluZm9XaW5kb3dBbmNob3JZKQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyBzZXRzIHRoZSBpY29uIGltYWdlIGZvciB0aGUgQ1VSUkVOVCBtYXAgbWFya2VyLiBJTVBPUlRBTlQ6IHlvdSBNVVNUCiAgICAgICAgY2FsbCBhZGRNYXJrZXJJY29uKCkgb25jZSBmb3IgZXZlcnkgbWFya2VyLiBEbyBub3QgdXNlIHNldE1hcmtlckljb24oKQogICAgICAgIGlmIHlvdSB1c2UgdGhpcyBmdW5jdGlvbi4KICAgICAgICAKICAgICAgICBZb3UgbXVzdCBzdXBwbHkgYSBzZXBhcmF0ZSBpbWFnZSBmb3IgdGhlIGljb24gYW5kIGl0cyBzaGFkb3cuCiAgICAgICAgaWNvbkFuY2hvclgvWSBpcyB0aGUgWC9ZIGNvb3JkaW5hdGVzIG9mIHRoZSBpY29uIGZvciB0aGUgbWFwIHBvaW50LgogICAgICAgIGluZm9XaW5kb3dBbmNob3JYL1kgaXMgdGhlIFgvWSBjb29yZGluYXRlcyBvZiB0aGUgaWNvbiB3aGVyZSB0aGUgaW5mbwogICAgICAgIHdpbmRvdyBjb25uZWN0cy4KICAgICAgICAKICAgICAgICBUaGUgaWNvbkltYWdlIGFuZCBpY29uU2hhZG93SW1hZ2UgY2FuIGJlIGVpdGhlciBmdWxseSBxdWFsaWZpZWQgVVJMcywgb3IKICAgICAgICBhIHJlbGF0aXZlIHBhdGggZnJvbSB5b3VyIHdlYiBzZXJ2ZXIgRE9DVU1FTlRfUk9PVC4gVGhlc2UgaW1hZ2VzIE1VU1QKICAgICAgICBleGlzdCBhbmQgcmVhZGFibGUgc28gdGhlIGxpYnJhcnkgY2FuIGNhbGN1bGF0ZSB0aGUgZGltZW5zaW9ucy4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgICRtYXAtPmFkZE1hcmtlckljb24oJy9pbWFnZXMvaG91c2UucG5nJywnL2ltYWdlcy9ob3VzZV9zaGFkb3cucG5nJywwLDAsMTAsMTApOwoKCiAgICBwcmludEhlYWRlckpTKCkKICAgIC0tLS0tLS0tLS0tLS0tLQoKICAgICAgICBUaGlzIHByaW50cyB0aGUgaGVhZGVyIGphdmFzY3JpcHQgdGhhdCBnb2VzIGludG8gdGhlIDxoZWFkPjwvaGVhZD4gdGFncy4KICAgICAgICBUbyByZXR1cm4gdGhlIGhlYWRlciBqYXZhc2NyaXB0IGluIGEgdmFyaWFibGUsIHVzZSBnZXRIZWFkZXJKUygpLgogICAgICAgIAogICAgICAgIEV4YW1wbGU6CiAgICAgICAgCiAgICAgICAgPGhlYWQ+CiAgICAgICAgPD9waHAgJG1hcC0+cHJpbnRIZWFkZXJKUygpOyA/PgogICAgICAgIDwvaGVhZD4KICAgIAoKICAgIGdldEhlYWRlckpTKCkKICAgIC0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFRoaXMgcmV0dXJucyB0aGUgaGVhZGVyIGphdmFzY3JpcHQgdGhhdCBnb2VzIGludG8gdGhlIDxoZWFkPjwvaGVhZD4gdGFncy4KICAgICAgICBUbyBwcmludCB0aGUgaGVhZGVyIGphdmFzY3JpcHQgZGlyZWN0bHksIHVzZSBwcmludEhlYWRlckpTKCkuCiAgICAgICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICA8P3BocAogICAgICAgICRoZWFkZXJqcyA9IGdldEhlYWRlckpTKCk7CiAgICAgICAgPz4KICAgICAgICA8aGVhZD4KICAgICAgICA8P3BocCBlY2hvICRoZWFkZXJqczsgPz4KICAgICAgICA8L2hlYWQ+CiAgICAgICAgCiAgICAgICAgCiAgICBwcmludE1hcEpTKCkKICAgIC0tLS0tLS0tLS0tLQoKICAgICAgICBUaGlzIHByaW50cyB0aGUgbWFwIGphdmFzY3JpcHQuIElmIG9uTG9hZCgpIGlzIGVuYWJsZWQsIHB1dCB0aGlzIGluIHRoZQogICAgICAgIDxoZWFkPjwvaGVhZD4gdGFncywgYW5kIHN1cHBseSA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpIj4gaW4gdGhlIGJvZHkgdGFnCiAgICAgICAgKG9yIHVzZSBwcmludE9uTG9hZCgpKS4KICAgICAgICAKICAgICAgICBPdGhlcndpc2UsIHB1dCB0aGlzIGp1c3QgYmVmb3JlIHRoZSA8L2JvZHk+IHRhZyB0byBtYWtlIGl0IGxvYWQKICAgICAgICBhdXRvbWF0aWNhbGx5LiBOb3RlIHRoYXQgdXNpbmcgb25Mb2FkKCkgaXMgcmVjb21tZW5kZWQgb3ZlciB0aGlzIG1ldGhvZC4KICAgICAgICAKICAgICAgICBUbyByZXR1cm4gdGhlIG1hcCBqYXZhc2NyaXB0IGluIGEgdmFyaWFibGUsIHVzZSBnZXRNYXBKUygpLgogICAgICAgIAogICAgICAgIEV4YW1wbGU6CiAgICAgICAgCiAgICAgICAgPGhlYWQ+CiAgICAgICAgPD9waHAgJG1hcC0+cHJpbnRNYXBKUygpOyA/PgogICAgICAgIDwvaGVhZD4KICAgIAogICAgCiAgICBnZXRNYXBKUygpCiAgICAtLS0tLS0tLS0tCgogICAgICAgIFRoaXMgcmV0dXJucyB0aGUgbWFwIGphdmFzY3JpcHQgdGhhdCBnb2VzIGludG8gdGhlIDxoZWFkPjwvaGVhZD4gdGFncy4KICAgICAgICBUbyBwcmludCB0aGUgbWFwIGphdmFzY3JpcHQgZGlyZWN0bHksIHVzZSBwcmludE1hcEpTKCkuCiAgICAgICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICA8P3BocAogICAgICAgICRtYXBqcyA9ICRtYXAtPnByaW50TWFwSlMoKTsKICAgICAgICA/PgogICAgICAgIDxoZWFkPgogICAgICAgIDw/cGhwIGVjaG8gJG1hcGpzOyA/PgogICAgICAgIDwvaGVhZD4KCgogICAgcHJpbnRPbkxvYWQoKQogICAgLS0tLS0tLS0tLS0tLQoKICAgICAgICBUaGlzIHByaW50cyB0aGUgb25Mb2FkKCkgamF2YXNjcmlwdCBjYWxsLiBUaGlzIGlzIGFuIGFsdGVybmF0ZSB0bwogICAgICAgIHVzaW5nIDxib2R5IG9ubG9hZD0ib25Mb2FkKCkiPiBpbiB0aGUgYm9keSB0YWcuIFlvdSBjYW4gcGxhY2UKICAgICAgICB0aGlzIGFueXdoZXJlIGluIHRoZSBodG1sIGJvZHkuCiAgICAgICAgCiAgICAgICAgVG8gcmV0dXJuIHRoZSBvbkxvYWQoKSBqYXZhc2NyaXB0IGluIGEgdmFyaWFibGUsIHVzZSBnZXRPbkxvYWQoKS4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgIDxoZWFkPgogICAgICAgIDw/cGhwICRtYXAtPnByaW50TWFwSlMoKTsgPz4KICAgICAgICA8L2hlYWQ+CiAgICAgICAgPGJvZHk+CiAgICAgICAgPD9waHAgZWNobyAkbWFwLT5wcmludE1hcCgpOyA/PgogICAgICAgIDw/cGhwICRtYXAtPnByaW50T25Mb2FkKCk7ID8+CiAgICAgICAgPC9ib2R5PgogICAgCiAgICAKICAgIGdldE9uTG9hZCgpCiAgICAtLS0tLS0tLS0tLQoKICAgICAgICBUaGlzIHJldHVybnMgdGhlIG1hcCBqYXZhc2NyaXB0IHRoYXQgZ29lcyBpbnRvIHRoZSA8aGVhZD48L2hlYWQ+IHRhZ3MuCiAgICAgICAgVG8gcHJpbnQgdGhlIG1hcCBqYXZhc2NyaXB0IGRpcmVjdGx5LCB1c2UgcHJpbnRNYXBKUygpLgogICAgICAgIAogICAgICAgIEV4YW1wbGU6CiAgICAgICAgCiAgICAgICAgPD9waHAKICAgICAgICAkb25sb2FkID0gJG1hcC0+Z2V0T25Mb2FkKCk7CiAgICAgICAgJG1hcGpzID0gJG1hcC0+Z2V0TWFwSlMoKTsKICAgICAgICAkbWFwID0gJG1hcC0+Z2V0TWFwKCk7CiAgICAgICAgPz4KICAgICAgICA8aGVhZD4KICAgICAgICA8P3BocCBlY2hvICRtYXBqczsgPz4KICAgICAgICA8L2hlYWQ+CiAgICAgICAgPGJvZHk+CiAgICAgICAgPD9waHAgZWNobyAkbWFwOyA/PgogICAgICAgIDw/cGhwIGVjaG8gJG9ubG9hZDsgPz4KICAgICAgICA8L2JvZHk+CgogICAgICAgIAogICAgICAgIAogICAgcHJpbnRNYXAoKQogICAgLS0tLS0tLS0tLQoKICAgICAgICBUaGlzIHByaW50cyB0aGUgbWFwIGh0bWwuCiAgICAgICAgVG8gcmV0dXJuIHRoZSBtYXAgaHRtbCBpbiBhIHZhcmlhYmxlLCB1c2UgZ2V0TWFwKCkuCiAgICAgICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICA8aGVhZD4KICAgICAgICA8P3BocCAkbWFwLT5wcmludE1hcEpTKCk7ID8+CiAgICAgICAgPC9oZWFkPgogICAgICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCkiPgogICAgICAgIDw/cGhwIGVjaG8gJG1hcC0+cHJpbnRNYXAoKTsgPz4KICAgICAgICA8L2JvZHk+CgogICAgICAgIEV4YW1wbGUgMiAodXNpbmcgcHJpbnRPbkxvYWQpOgogICAgICAgIAogICAgICAgIDxoZWFkPgogICAgICAgIDw/cGhwICRtYXAtPnByaW50TWFwSlMoKTsgPz4KICAgICAgICA8L2hlYWQ+CiAgICAgICAgPGJvZHk+CiAgICAgICAgPD9waHAgZWNobyAkbWFwLT5wcmludE1hcCgpOyA/PgogICAgICAgIDw/cGhwIGVjaG8gJG1hcC0+cHJpbnRPbkxvYWQoKTsgPz4KICAgICAgICA8L2JvZHk+CgogICAgCiAgICAKICAgIGdldE1hcCgpCiAgICAtLS0tLS0tLQoKICAgICAgICBUaGlzIHJldHVybnMgdGhlIG1hcCBodG1sIGluIGEgdmFyaWFibGUuCiAgICAgICAgVG8gcHJpbnQgdGhlIG1hcCBodG1sIGRpcmVjdGx5LCB1c2UgcHJpbnRNYXAoKS4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgIDw/cGhwCiAgICAgICAgJG1hcCA9ICRtYXAtPmdldE1hcCgpOwogICAgICAgID8+CiAgICAgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKSI+CiAgICAgICAgPD9waHAgZWNobyAkbWFwOyA/PgogICAgICAgIDwvYm9keT4KCgogICAgcHJpbnRTaWRlYmFyKCkKICAgIC0tLS0tLS0tLS0tLS0tCgogICAgICAgIFRoaXMgcHJpbnRzIHRoZSBzaWRlYmFyIGh0bWwuCiAgICAgICAgVG8gcmV0dXJuIHRoZSBzaWRlYmFyIGh0bWwgaW4gYSB2YXJpYWJsZSwgdXNlIGdldFNpZGViYXIoKS4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCkiPgogICAgICAgIDx0YWJsZT4KICAgICAgICAgPHRyPgogICAgICAgICAgPHRkPgogICAgICAgICAgIDw/cGhwICRtYXAtPnByaW50TWFwKCk7ID8+CiAgICAgICAgICA8L3RkPgogICAgICAgICAgPHRkPgogICAgICAgICAgIDw/cGhwICRtYXAtPnByaW50U2lkZWJhcigpOyA/PgogICAgICAgICAgPC90ZD4KICAgICAgICAgPC90cj4KICAgICAgICA8L3RhYmxlPgogICAgICAgIDwvYm9keT4KICAgIAogICAgCiAgICBnZXRTaWRlYmFyKCkKICAgIC0tLS0tLS0tLS0tLQoKICAgICAgICBUaGlzIHJldHVybnMgdGhlIHNpZGViYXIgaHRtbCBpbiBhIHZhcmlhYmxlLgogICAgICAgIFRvIHByaW50IHRoZSBzaWRiYXIgaHRtbCBkaXJlY3RseSwgdXNlIHByaW50U2lkZWJhcigpLgogICAgICAgIAogICAgICAgIEV4YW1wbGU6CiAgICAgICAgCiAgICAgICAgPD9waHAKICAgICAgICAkbWFwID0gJG1hcC0+Z2V0TWFwKCk7CiAgICAgICAgJHNpZGViYXIgPSAkbWFwLT5nZXRTaWRlYmFyKCk7CiAgICAgICAgPz4KICAgICAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpIj4KICAgICAgICA8dGFibGU+CiAgICAgICAgIDx0cj4KICAgICAgICAgIDx0ZD4KICAgICAgICAgIDw/cGhwIGVjaG8gJG1hcDsgPz4KICAgICAgICAgIDwvdGQ+CiAgICAgICAgICA8dGQ+CiAgICAgICAgICAgPD9waHAgZWNobyAkc2lkZWJhcjsgPz4KICAgICAgICAgIDwvdGQ+CiAgICAgICAgIDwvdHI+CiAgICAgICAgPC90YWJsZT4KICAgICAgICA8L2JvZHk+CiAgICAgICAgICAgICAgICAKICAgIAogICAgZ2V0R2VvY29kZSgkYWRkcmVzcykKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBUaGlzIGxvb2tzIHVwIHRoZSBnZW9jb2RlIG9mIGFuIGFkZHJlc3MuIEl0IHdpbGwgdXNlIHRoZSBkYXRhYmFzZSBjYWNoZQogICAgICAgIGlmIGF2YWlsYWJsZS4gSWYgeW91IHdhbnQgdG8gbG9va3VwIGEgZ2VvY29kZSB3aXRob3V0IHVzaW5nIHRoZSBkYXRhYmFzZQogICAgICAgIGNhY2hlLCB1c2UgZ2VvR2V0Q29vcmRzKCkuIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZQogICAgICAgIGxpYnJhcnksIGl0IGlzbid0IG5vcm1hbGx5IG5lY2Vzc2FyeSB1bmxlc3MgeW91IGhhdmUgYSBzcGVjaWZpYyBuZWVkIGFuZAogICAgICAgIHlvdSBrbm93IHdoYXQgeW91IGFyZSBkb2luZy4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgICRnZW9jb2RlID0gJG1hcC0+Z2V0R2VvY29kZSgnMjM3IFMgNzB0aCBzdWl0ZSAyMjAgTGluY29sbiBORSA2ODUxMCcpOwogICAgICAgIAogICAgICAgIGVjaG8gJGdlb2NvZGVbJ2xhdCddOwogICAgICAgIGVjaG8gJGdlb2NvZGVbJ2xvbiddOwogICAgICAgIAogICAgICAgIAogICAgZ2V0Q2FjaGUoJGFkZHJlc3MpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgICAgIFRoaXMgd2lsbCBnZXQgdGhlIGNhY2hlZCBnZW9jb2RlIGluZm8gZm9yIGFuIGFkZHJlc3MgZnJvbSB0aGUgZGF0YWJhc2UKICAgICAgICBjYWNoZSwgb3IgcmV0dXJuIEZBTFNFIGlmIG5vdGhpbmcgaXMgYXZhaWxhYmxlLiBOb3RlOiB0aGlzIGZ1bmN0aW9uIGlzCiAgICAgICAgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBsaWJyYXJ5LCBpdCBpc24ndCBub3JtYWxseSBuZWNlc3NhcnkgdW5sZXNzIHlvdQogICAgICAgIGhhdmUgYSBzcGVjaWZpYyBuZWVkIGFuZCB5b3Uga25vdyB3aGF0IHlvdSBhcmUgZG9pbmcuCiAgICAgICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAkZ2VvY29kZSA9ICRtYXAtPmdldENhY2hlKCcyMzcgUyA3MHRoIHN1aXRlIDIyMCBMaW5jb2xuIE5FIDY4NTEwJyk7CiAgICAgICAgCiAgICAgICAgZWNobyAkZ2VvY29kZVsnbGF0J107CiAgICAgICAgZWNobyAkZ2VvY29kZVsnbG9uJ107CiAgICAgICAgCgogICAgcHV0Q2FjaGUoJGFkZHJlc3MsJGxvbiwkbGF0KQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgCiAgICAgICAgVGhpcyB3aWxsIGluc2VydCBnZW9jb2RlIGluZm8gZm9yIHRoZSBnaXZlbiBhZGRyZXNzIGludG8gdGhlIGRhdGFiYXNlCiAgICAgICAgY2FjaGUuIE5vdGU6IHRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBsaWJyYXJ5LCBpdCBpc24ndAogICAgICAgIG5vcm1hbGx5IG5lY2Vzc2FyeSB1bmxlc3MgeW91IGhhdmUgYSBzcGVjaWZpYyBuZWVkIGFuZCB5b3Uga25vdyB3aGF0IHlvdQogICAgICAgIGFyZSBkb2luZy4KICAgICAgICAKICAgICAgICBFeGFtcGxlOgogICAgICAgIAogICAgICAgICRtYXAtPnB1dENhY2hlKCcyMzcgUyA3MHRoIHN1aXRlIDIyMCBMaW5jb2xuIE5FIDY4NTEwJywtOTYuNjI1MzgsNDAuODEyNDM4KTsKICAgICAgICAKCiAgICBnZW9HZXRDb29yZHMoJGFkZHJlc3MpCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAKICAgICAgICBUaGlzIGxvb2tzIHVwIHRoZSBnZW9jb2RlIG9mIGFuIGFkZHJlc3MgZGlyZWN0bHkgKG5vdCBmcm9tIGNhY2hlLikgTm90ZToKICAgICAgICB0aGlzIGZ1bmN0aW9uIGlzIHVzZWQgaW50ZXJuYWxseSBieSB0aGUgbGlicmFyeSwgaXQgaXNuJ3Qgbm9ybWFsbHkKICAgICAgICBuZWNlc3NhcnkgdW5sZXNzIHlvdSBoYXZlIGEgc3BlY2lmaWMgbmVlZCBhbmQgeW91IGtub3cgd2hhdCB5b3UgYXJlCiAgICAgICAgZG9pbmcuCiAgICAgICAgCiAgICAgICAgRXhhbXBsZToKICAgICAgICAKICAgICAgICAkZ2VvY29kZSA9ICRtYXAtPmdlb0dldENvb3JkcygnMjM3IFMgNzB0aCBzdWl0ZSAyMjAgTGluY29sbiBORSA2ODUxMCcpOwogICAgICAgIAogICAgICAgIGVjaG8gJGdlb2NvZGVbJ2xvbiddOwogICAgICAgIGVjaG8gJGdlb2NvZGVbJ2xhdCddOwoKICAgIGdlb0dldERpc3RhbmNlKCRsYXQxLCRsb24xLCRsYXQyLCRsb24yLCR1bml0KQogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgICAgIFRoaXMgZ2V0cyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0b28gY29vcmluYXRlIHBvaW50cyB1c2luZyB0aGUgZ3JlYXQKICAgICAgICBjaXJjbGUgZm9ybXVsYS4gJHVuaXQgY2FuIGJlIE0gKG1pbGVzKSxLIChraWxvbWV0ZXJzKSxOIChuYXV0aWNhbAogICAgICAgIG1pbGVzKSxJIChpbmNoZXMpLCBvciBGIChmZWV0KS4gRGVmYXVsdCBpcyBNLiAgIAogICAgICAgIAogICAgICAgIEV4YW1wbGU6CiAgICAgICAgCiAgICAgICAgJGRpc3RhbmNlID0gJG1hcC0+Z2VvR2V0RGlzdGFuY2UoJGxhdDEsJGxvbjEsJGxhdDIsJGxvbjIsJHVuaXQpOwoKICAgICAgICAKICAgICAgICAKSU5URUdSQVRJTkcgR09PR0xFIE1BUFMgV0lUSCBTTUFSVFkgVEVNUExBVEVTCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKICAgIEludGVncmF0aW5nIHdpdGggU21hcnR5IGlzIGFzIHNpbXBsZSBhcyBhc3NpZ25pbmcgdGhlIG5lY2Vzc2FyeSB2YXJzIHRvIHRoZQogICAgdGVtcGxhdGUgYW5kIHRoZW4gZGlzcGxheWluZyB0aGVtLiBOb3RlOiBUaGlzIGV4YW1wbGUgZG9lcyBub3QgY292ZXIgaG93IHRvCiAgICBzZXR1cCBTbWFydHksIHBsZWFzZSB1c2UgdGhlIFNtYXJ0eSBkb2N1bWVudGF0aW9uLgogICAgCiAgICBFeGFtcGxlOgogICAgCiAgICA8P3BocAogICAgcmVxdWlyZSgnU21hcnR5LmNsYXNzLnBocCcpOwogICAgcmVxdWlyZSgnR29vZ2xlTWFwQVBJLmNsYXNzLnBocCcpOwoKICAgICRzbWFydHkgPSBuZXcgU21hcnR5KCk7CiAgICAkbWFwID0gbmV3IEdvb2dsZU1hcEFQSSgpOwogICAgCiAgICAvLyBzZXR1cCBkYXRhYmFzZSBmb3IgZ2VvY29kZSBjYWNoaW5nCiAgICAkbWFwLT5zZXREU04oJ215c3FsOi8vVVNFUjpQQVNTQGxvY2FsaG9zdC9HRU9DT0RFUycpOwogICAgLy8gZW50ZXIgWU9VUiBHb29nbGUgTWFwIEtleQogICAgJG1hcC0+c2V0QVBJS2V5KCdZT1VSR09PR0xFTUFQS0VZJyk7CiAgICAKICAgIC8vIGNyZWF0ZSBzb21lIG1hcCBtYXJrZXJzCiAgICAkbWFwLT5hZGRNYXJrZXJCeUFkZHJlc3MoJzYyMSBOIDQ4dGggU3QgIyA2IExpbmNvbG4gTkUgNjg1MDInLCdQSiBQaXp6YScsJzxiPlBKIFBpenphPC9iPicpOwogICAgJG1hcC0+YWRkTWFya2VyQnlBZGRyZXNzKCc4MjYgUCBTdCBMaW5jb2xuIE5FIDY4NTAyJywnT2xkIENoaWNhZ28nLCc8Yj5PbGQgQ2hpY2FnbzwvYj4nKTsKICAgICRtYXAtPmFkZE1hcmtlckJ5QWRkcmVzcygnMzQ1NyBIb2xkcmVnZSBTdCBMaW5jb2xuIE5FIDY4NTAyJywiVmFsZW50aW5vJ3MiLCI8Yj5WYWxlbnRpbm8nczwvYj4iKTsKICAgIAogICAgLy8gYXNzaWduIFNtYXJ0eSB2YXJpYWJsZXM7CiAgICAKICAgICRzbWFydHktPmFzc2lnbignZ29vZ2xlX21hcF9oZWFkZXInLCRtYXAtPmdldEhlYWRlckpTKCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdnb29nbGVfbWFwX2pzJywkbWFwLT5nZXRNYXBKUygpKTsKICAgICRzbWFydHktPmFzc2lnbignZ29vZ2xlX21hcF9zaWRlYmFyJywkbWFwLT5nZXRTaWRlYmFyKCkpOwogICAgJHNtYXJ0eS0+YXNzaWduKCdnb29nbGVfbWFwJywkbWFwLT5nZXRNYXAoKSk7CiAgICAKICAgIC8vIGRpc3BsYXkgdGhlIHRlbXBsYXRlCiAgICAkc21hcnR5LT5kaXNwbGF5KCdpbmRleC50cGwnKTsKICAgID8+CiAgICAKICAgIGNvbnRlbnRzIG9mIGluZGV4LnRwbDoKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgIAogICAgPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgU3RyaWN0Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQiPgogICAgPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbG5zOnY9InVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206dm1sIj4KICAgIDxoZWFkPgogICAgeyRnb29nbGVfbWFwX2hlYWRlcn0KICAgIHskZ29vZ2xlX21hcF9qc30KICAgIDwhLS0gbmVjZXNzYXJ5IGZvciBnb29nbGUgbWFwcyBwb2x5bGluZSBkcmF3aW5nIGluIElFIC0tPgogICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KICAgICAgdlw6KiB7bGRlbGltfQogICAgICAgIGJlaGF2aW9yOnVybCgjZGVmYXVsdCNWTUwpOwogICAgIHtyZGVsaW19IAogICAgPC9zdHlsZT4KICAgIDwvaGVhZD4KICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCkiPgogICAgPHRhYmxlPgogICAgICA8dHI+CiAgICAgICAgPHRkPnskZ29vZ2xlX21hcH08L3RkPgogICAgICAgIDx0ZD57JGdvb2dsZV9tYXBfc2lkZWJhcn08L3RkPgogICAgICA8L3RyPgogICAgPC90YWJsZT4KICAgIDwvYm9keT4KICAgIDwvaHRtbD4KCgpDUkVESVRTOgotLS0tLS0tLQoKRXhjZWxsZW50IEdvb2dsZSBNYXBzIHR1dG9yaWFscyBieSBNaWtlOgpodHRwOi8vd3d3LmVjb255bS5kZW1vbi5jby51ay9nb29nbGVtYXBzL2luZGV4Lmh0bQoKUGVvcGxlIHdobyBoYXZlIGhlbHBlZC9jb250cmlidXRlZDoKCkNoYXJsaWUgRGF3ZXMKSmFrZSBLcm9obgpDbGFyayBGcmVpZmVsZCA8Y2xhcmsgQVQgdXNlcnMgRE9UIHNvdXJjZWZvcmdlIERPVCBuZXQ+CkFuZ2VsbyBDb25mb3J0aQpKZXJvbWUgQ29tYmF6CmRyYWtvczcgKGZyb20gZm9ydW1zKQpubXdlYiAoZnJvbSBmb3J1bXMpCgpBbnlvbmUgSSBtaXNzZWQsIGRyb3AgbWUgYSBsaW5lIQoKTW9udGUgT2hydCA8bW9udGUgW0FUXSBvaHJ0IFtET1RdIGNvbT4K]]></data>
	</file>
	<file>
	  <filename>/lib/package.xml</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHBhY2thZ2UgcGFja2FnZXJ2ZXJzaW9uPSIxLjUuNCIgdmVyc2lvbj0iMi4wIiB4bWxucz0iaHR0cDovL3BlYXIucGhwLm5ldC9kdGQvcGFja2FnZS0yLjAiIHhtbG5zOnRhc2tzPSJodHRwOi8vcGVhci5waHAubmV0L2R0ZC90YXNrcy0xLjAiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0iaHR0cDovL3BlYXIucGhwLm5ldC9kdGQvdGFza3MtMS4wIGh0dHA6Ly9wZWFyLnBocC5uZXQvZHRkL3Rhc2tzLTEuMC54c2QgaHR0cDovL3BlYXIucGhwLm5ldC9kdGQvcGFja2FnZS0yLjAgaHR0cDovL3BlYXIucGhwLm5ldC9kdGQvcGFja2FnZS0yLjAueHNkIj4KIDxuYW1lPkRCPC9uYW1lPgogPGNoYW5uZWw+cGVhci5waHAubmV0PC9jaGFubmVsPgogPHN1bW1hcnk+RGF0YWJhc2UgQWJzdHJhY3Rpb24gTGF5ZXI8L3N1bW1hcnk+CiA8ZGVzY3JpcHRpb24+REIgaXMgYSBkYXRhYmFzZSBhYnN0cmFjdGlvbiBsYXllciBwcm92aWRpbmc6CiogYW4gT08tc3R5bGUgcXVlcnkgQVBJCiogcG9ydGFiaWxpdHkgZmVhdHVyZXMgdGhhdCBtYWtlIHByb2dyYW1zIHdyaXR0ZW4gZm9yIG9uZSBEQk1TIHdvcmsgd2l0aCBvdGhlciBEQk1TJmFwb3M7cwoqIGEgRFNOIChkYXRhIHNvdXJjZSBuYW1lKSBmb3JtYXQgZm9yIHNwZWNpZnlpbmcgZGF0YWJhc2Ugc2VydmVycwoqIHByZXBhcmUvZXhlY3V0ZSAoYmluZCkgZW11bGF0aW9uIGZvciBkYXRhYmFzZXMgdGhhdCBkb24mYXBvczt0IHN1cHBvcnQgaXQgbmF0aXZlbHkKKiBhIHJlc3VsdCBvYmplY3QgZm9yIGVhY2ggcXVlcnkgcmVzcG9uc2UKKiBwb3J0YWJsZSBlcnJvciBjb2RlcwoqIHNlcXVlbmNlIGVtdWxhdGlvbgoqIHNlcXVlbnRpYWwgYW5kIG5vbi1zZXF1ZW50aWFsIHJvdyBmZXRjaGluZyBhcyB3ZWxsIGFzIGJ1bGsgZmV0Y2hpbmcKKiBmb3JtYXRzIGZldGNoZWQgcm93cyBhcyBhc3NvY2lhdGl2ZSBhcnJheXMsIG9yZGVyZWQgYXJyYXlzIG9yIG9iamVjdHMKKiByb3cgbGltaXQgc3VwcG9ydAoqIHRyYW5zYWN0aW9ucyBzdXBwb3J0CiogdGFibGUgaW5mb3JtYXRpb24gaW50ZXJmYWNlCiogRG9jQm9vayBhbmQgcGhwRG9jdW1lbnRvciBBUEkgZG9jdW1lbnRhdGlvbgoKREIgbGF5ZXJzIGl0c2VsZiBvbiB0b3Agb2YgUEhQJmFwb3M7cyBleGlzdGluZwpkYXRhYmFzZSBleHRlbnNpb25zLgoKRHJpdmVycyBmb3IgdGhlIGZvbGxvd2luZyBleHRlbnNpb25zIHBhc3MKdGhlIGNvbXBsZXRlIHRlc3Qgc3VpdGUgYW5kIHByb3ZpZGUKaW50ZXJjaGFuZ2VhYmlsaXR5IHdoZW4gYWxsIG9mIERCJmFwb3M7cwpwb3J0YWJpbGl0eSBvcHRpb25zIGFyZSBlbmFibGVkOgoKICBmYnNxbCwgaWJhc2UsIGluZm9ybWl4LCBtc3FsLCBtc3NxbCwKICBteXNxbCwgbXlzcWxpLCBvY2k4LCBvZGJjLCBwZ3NxbCwKICBzcWxpdGUgYW5kIHN5YmFzZS4KClRoZXJlIGlzIGFsc28gYSBkcml2ZXIgZm9yIHRoZSBkYmFzZQpleHRlbnNpb24sIGJ1dCBpdCBjYW4mYXBvczt0IGJlIHVzZWQKaW50ZXJjaGFuZ2VhYmx5IGJlY2F1c2UgZGJhc2UgZG9lc24mYXBvczt0CnN1cHBvcnQgbWFueSBzdGFuZGFyZCBEQk1TIGZlYXR1cmVzLgoKREIgaXMgY29tcGF0aWJsZSB3aXRoIGJvdGggUEhQIDQgYW5kIFBIUCA1LjwvZGVzY3JpcHRpb24+CiA8bGVhZD4KICA8bmFtZT5EYW5pZWwgQ29udmlzc29yPC9uYW1lPgogIDx1c2VyPmRhbmllbGM8L3VzZXI+CiAgPGVtYWlsPmRhbmllbGNAcGhwLm5ldDwvZW1haWw+CiAgPGFjdGl2ZT55ZXM8L2FjdGl2ZT4KIDwvbGVhZD4KIDxsZWFkPgogIDxuYW1lPkFkYW0gSGFydmV5PC9uYW1lPgogIDx1c2VyPmFoYXJ2ZXk8L3VzZXI+CiAgPGVtYWlsPmFoYXJ2ZXlAcGhwLm5ldDwvZW1haWw+CiAgPGFjdGl2ZT55ZXM8L2FjdGl2ZT4KIDwvbGVhZD4KIDxkZXZlbG9wZXI+CiAgPG5hbWU+U3RpZyBCYWtrZW48L25hbWU+CiAgPHVzZXI+c3NiPC91c2VyPgogIDxlbWFpbD5zdGlnQHBocC5uZXQ8L2VtYWlsPgogIDxhY3RpdmU+eWVzPC9hY3RpdmU+CiA8L2RldmVsb3Blcj4KIDxkZXZlbG9wZXI+CiAgPG5hbWU+VG9tYXMgVi5WLkNveDwvbmFtZT4KICA8dXNlcj5jb3g8L3VzZXI+CiAgPGVtYWlsPmNveEBpZGVjbmV0LmNvbTwvZW1haWw+CiAgPGFjdGl2ZT55ZXM8L2FjdGl2ZT4KIDwvZGV2ZWxvcGVyPgogPGRhdGU+MjAwNy0wNi0yOTwvZGF0ZT4KIDx0aW1lPjIwOjQ2OjM0PC90aW1lPgogPHZlcnNpb24+CiAgPHJlbGVhc2U+MS43LjEyPC9yZWxlYXNlPgogIDxhcGk+MS43LjEyPC9hcGk+CiA8L3ZlcnNpb24+CiA8c3RhYmlsaXR5PgogIDxyZWxlYXNlPnN0YWJsZTwvcmVsZWFzZT4KICA8YXBpPnN0YWJsZTwvYXBpPgogPC9zdGFiaWxpdHk+CiA8bGljZW5zZSB1cmk9Imh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlIj5QSFAgTGljZW5zZTwvbGljZW5zZT4KIDxub3Rlcz5UaGlzIHJlbGVhc2Ugb2YgREIgZml4ZXMgYW4gaXNzdWUgdGhhdCBwcmV2ZW50ZWQgUG9zdGdyZVNRTCB1c2VycyBmcm9tIGVzY2FwaW5nIHZhbHVlcyB3aXRoIFBIUCA1LjIuCgpQbGVhc2Ugbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiBEQiBoYXMgcmVtb3ZlZCB0aGUgdmVyc2lvbiAxIHBhY2thZ2UueG1sIGZpbGUuIENvbnNlcXVlbnRseSwgUEVBUiAxLjQgb3IgbGF0ZXIgbXVzdCBiZSB1c2VkIHRvIGluc3RhbGwgdGhpcyB2ZXJzaW9uIG9mIERCIGFuZCBhbnkgZnV0dXJlIHZlcnNpb25zLgoKb2NpODoKKiBBZGRlZCB2aWV3IHN1cHBvcnQgdG8gZ2V0U3BlY2lhbFF1ZXJ5KCkgZm9yIGZlYXR1cmUgcGFyaXR5IHdpdGggb3RoZXIgYmFja2VuZHMuICBSZXF1ZXN0IDExMTEwLgoKcGdzcWw6CiogQWRkZWQgc2NoZW1hLnZpZXdzIHN1cHBvcnQgdG8gZ2V0U3BlY2lhbFF1ZXJ5KCkgdG8gYXZvaWQgZGlzYWR2YW50YWdpbmcgdmlld3Mgd2l0aGluIHNjaGVtYXMuICBSZXF1ZXN0IDExMDgwLgoqIENoYW5nZWQgcGFyYW1ldGVyIGVzY2FwaW5nIHRvIGNvcnJlY3RseSBwYXNzIHVwIHRoZSBEQiBjb25uZWN0aW9uLiAgQnVnIDExMTI1LgoKdGVzdHM6CiogVXBkYXRlZCBESVZaRVJPIHRlc3RzIHRvIHJlZmxlY3Qgd2hpY2ggREIgYmFja2VuZHMgYWN0dWFsbHkgcmV0dXJuIGVycm9ycyB1cG9uIGRpdmlzaW9uIGJ5IHplcm8uICBCdWcgMTA4OTQuPC9ub3Rlcz4KIDxjb250ZW50cz4KICA8ZGlyIG5hbWU9Ii8iPgogICA8ZmlsZSBtZDVzdW09ImYxZGY3OThkMGY4M2QzZjUyYmVlMGVmZWQ4NGY3NGJkIiBuYW1lPSJEQi9jb21tb24ucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSJhZjhkNTNmNTAyNTRiY2IzMDYyNTg2ZDQzZWUyZDliZCIgbmFtZT0iREIvZGJhc2UucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSIwYTk1OGQwODBjZmFkYTJlMDcyYWUxMWY0MzgzNWZkNCIgbmFtZT0iREIvZmJzcWwucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSJmYmJhOGM1ZmJlODZhMzk5N2Y0ZmM3YjRiZDU5MzM2MiIgbmFtZT0iREIvaWJhc2UucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSJkOTBjZTk1ZDYyOTM0NGU1YzI1N2NjMzczMjJhNjM3ZSIgbmFtZT0iREIvaWZ4LnBocCIgcm9sZT0icGhwIj4KICAgIDx0YXNrczpyZXBsYWNlIGZyb209IkBwYWNrYWdlX3ZlcnNpb25AIiB0bz0idmVyc2lvbiIgdHlwZT0icGFja2FnZS1pbmZvIiAvPgogICA8L2ZpbGU+CiAgIDxmaWxlIG1kNXN1bT0iZmVjYTMyNTkxMGNlYzkwYmMxNmEzMjlhMDk2N2IxM2QiIG5hbWU9IkRCL21zcWwucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSJiNGFiMzZhNmEwYWNmMjA5MGE0YThkNzAzMDljM2QyMyIgbmFtZT0iREIvbXNzcWwucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSIwYTNkMTAzNDlkNzQwZWY0NzI2ZDdhNTVkNTc3NDU0MSIgbmFtZT0iREIvbXlzcWwucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSI2NmYwYTAwZTZlMmI2ODcxYTQyYWI3MTY0NDdkNjAzNSIgbmFtZT0iREIvbXlzcWxpLnBocCIgcm9sZT0icGhwIj4KICAgIDx0YXNrczpyZXBsYWNlIGZyb209IkBwYWNrYWdlX3ZlcnNpb25AIiB0bz0idmVyc2lvbiIgdHlwZT0icGFja2FnZS1pbmZvIiAvPgogICA8L2ZpbGU+CiAgIDxmaWxlIG1kNXN1bT0iZjI1MDM4YzgyNjY4ZmY0YjBjMGJlYWJhNmM1ZThjZjkiIG5hbWU9IkRCL29jaTgucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSI4ODhhMmI0ODYwY2NkNmVkMjIxMWU0YjYxYWFmMzQ5MyIgbmFtZT0iREIvb2RiYy5waHAiIHJvbGU9InBocCI+CiAgICA8dGFza3M6cmVwbGFjZSBmcm9tPSJAcGFja2FnZV92ZXJzaW9uQCIgdG89InZlcnNpb24iIHR5cGU9InBhY2thZ2UtaW5mbyIgLz4KICAgPC9maWxlPgogICA8ZmlsZSBtZDVzdW09Ijc2YzFiNjhiMTUyYzc4MmNlYmZmMTJhMGVlNzEzMjdlIiBuYW1lPSJEQi9wZ3NxbC5waHAiIHJvbGU9InBocCI+CiAgICA8dGFza3M6cmVwbGFjZSBmcm9tPSJAcGFja2FnZV92ZXJzaW9uQCIgdG89InZlcnNpb24iIHR5cGU9InBhY2thZ2UtaW5mbyIgLz4KICAgPC9maWxlPgogICA8ZmlsZSBtZDVzdW09ImY4MWE2NzFlYmVhYmIxOWFkMWM4YTE2OGRjZDBlYWExIiBuYW1lPSJEQi9zcWxpdGUucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSI4Y2IxZGVhYWI2Njg1ZDhlNDQyNDc5NGY3MWYwOWZiZSIgbmFtZT0iREIvc3RvcmFnZS5waHAiIHJvbGU9InBocCI+CiAgICA8dGFza3M6cmVwbGFjZSBmcm9tPSJAcGFja2FnZV92ZXJzaW9uQCIgdG89InZlcnNpb24iIHR5cGU9InBhY2thZ2UtaW5mbyIgLz4KICAgPC9maWxlPgogICA8ZmlsZSBtZDVzdW09IjQ3MWFkNjFmYjExZWFiNzIxNDczZjI0ODM3ODNmMGJjIiBuYW1lPSJEQi9zeWJhc2UucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSI2NTFhNjQ0YjZmMzQ5NWZjMzkyNzlkNzViODA5OTM3MiIgbmFtZT0iZG9jL0lERUFTIiByb2xlPSJkb2MiIC8+CiAgIDxmaWxlIG1kNXN1bT0iOGM1Nzc5ODcxZTA3NzIwYTAzMjYxNTE3NzQwM2I2OTEiIG5hbWU9ImRvYy9NQUlOVEFJTkVSUyIgcm9sZT0iZG9jIiAvPgogICA8ZmlsZSBtZDVzdW09IjMwYmM0Y2VlY2NkNTE0MTNhYjgxZmE5OGMxZmI5YWE4IiBuYW1lPSJkb2MvU1RBVFVTIiByb2xlPSJkb2MiIC8+CiAgIDxmaWxlIG1kNXN1bT0iMzFmMjc2ZDZmZjcxMGExZjA0OGM1MGNkNTMzZmZlNWMiIG5hbWU9ImRvYy9URVNURVJTIiByb2xlPSJkb2MiIC8+CiAgIDxmaWxlIG1kNXN1bT0iODFmM2NiMDE0NDIxNDhmZjc1YTc1MmY2OGI5NDZkZjAiIG5hbWU9InRlc3RzL2RyaXZlci8wMWNvbm5lY3QucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSJmNjFiZDdhYTY0ZWNjMzdhNjUwZWU0MDZlNjczOGVkNyIgbmFtZT0idGVzdHMvZHJpdmVyLzAyZmV0Y2gucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSJiNjcxZWZlYWM5ZmQzNGI4MzMwOWRlODQxMzUzMTMxNyIgbmFtZT0idGVzdHMvZHJpdmVyLzAzc2ltcGxlcXVlcnkucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSJhNWVjZjQ3M2Y2NDgwMjJhZjVkYzlmYmIyZjMzZTM3MSIgbmFtZT0idGVzdHMvZHJpdmVyLzA0bnVtY29scy5waHB0IiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09IjFiNTJlZGIzNDk3OGE4OTI5ZjQzMTViN2VjMmY1NDQ1IiBuYW1lPSJ0ZXN0cy9kcml2ZXIvMDVzZXF1ZW5jZXMucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI4ZDY1MWQyZGE1ODA2MTllZDVhYmVhYWE5ZTFmNzFhZCIgbmFtZT0idGVzdHMvZHJpdmVyLzA2cHJlcGV4ZWMucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSJiMmU1ZWJlMjg5MTZlNjNkODUwMjg0NWQ1OGY3NGQ0OSIgbmFtZT0idGVzdHMvZHJpdmVyLzA4YWZmZWN0ZWRyb3dzLnBocHQiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iN2VmZWU2OTUwOTZlMGNmNmUyNDNlNTU5MDkxNWI2ZmMiIG5hbWU9InRlc3RzL2RyaXZlci8wOW51bXJvd3MucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSJiMmU0ODFmYzZmMzEwZGI0MWUyNDlhMWU1M2YzNTNjMiIgbmFtZT0idGVzdHMvZHJpdmVyLzEwZXJyb3JtYXAucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSIxYWQwMDdiMDY5YmE0ZWU4YWY0ZTBmYWEyZDFkMzhlOSIgbmFtZT0idGVzdHMvZHJpdmVyLzExdHJhbnNhY3Rpb25zLnBocHQiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iYjQ0MDUzNmJhYTM1ZGNkN2Y0MGY0MWYyNmEwYmExODQiIG5hbWU9InRlc3RzL2RyaXZlci8xM2xpbWl0LnBocHQiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iM2NhM2VlMTJjZmU1OWExNDZjYWEyMWU2NWM0YjMyZTEiIG5hbWU9InRlc3RzL2RyaXZlci8xNGZldGNobW9kZV9vYmplY3QucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSIyY2Y4NTM3NjZhMWMxZGMyMWYwYjM4OTg4Y2Q1YTQwNiIgbmFtZT0idGVzdHMvZHJpdmVyLzE1cXVvdGUucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI1MGI2YWQwY2JlYTY0OTg1NGVhNGUwOWU1MjRkMjY0MSIgbmFtZT0idGVzdHMvZHJpdmVyLzE2dGFibGVpbmZvLnBocHQiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iN2Q2OTc3MTY4OTM1Yjk4MTU3NjBkZTFiZDBmMzYzYzYiIG5hbWU9InRlc3RzL2RyaXZlci8xN3F1ZXJ5LnBocHQiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iMDk2Zjc2NGI4NTE5ZTE4YzBhZDJlZWFlZjYyMjllZTEiIG5hbWU9InRlc3RzL2RyaXZlci8xOGdldC5waHB0IiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09ImRlMzU0ZDVmZTMyZjBiOWZiYmNhZWQxYmFkYTdlN2EyIiBuYW1lPSJ0ZXN0cy9kcml2ZXIvMTlnZXRsaXN0b2YucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI0NjU1ZDI3MjIxMWRjNWQ2MDkwNDc5NmQ2ZDdlMWY5OSIgbmFtZT0idGVzdHMvZHJpdmVyLzIwbG9jYWxlLnBocHQiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iMjgxMDU1ZjBkNWFiNTA3NzE4YTJjNzUwMWVkYjNhMTgiIG5hbWU9InRlc3RzL2RyaXZlci8yMWZyZWVSZXN1bHQucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI0MTgwYTVkMDM4ZDQxYTEyNjJkMWNjNDE5NTFmMGYzZCIgbmFtZT0idGVzdHMvZHJpdmVyL2Nvbm5lY3QuaW5jIiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09IjI2YjQyYTExMGJiN2VlNDNiNWJjZWVmNjhmZDIxNWU2IiBuYW1lPSJ0ZXN0cy9kcml2ZXIvZHJvcHRhYmxlLmluYyIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI3MDQwNDA0Y2UwZjZjYmY2N2QyNDMxNzU4MjhkZmJhMSIgbmFtZT0idGVzdHMvZHJpdmVyL21rdGFibGUuaW5jIiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09IjRhZjljZmY4NDFlMTRmMWM5NGUzNTgzNDY3NDdlN2I2IiBuYW1lPSJ0ZXN0cy9kcml2ZXIvbXVsdGljb25uZWN0LnBocCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI3MDIzZDk3OWU4YmNiOTRhOTNkNDg1OTdkODY0ZmViMyIgbmFtZT0idGVzdHMvZHJpdmVyL3J1bi5jdnMiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iYTdlZTI3ZmYwYTJhYWNmMGVmOTA2ZWVhODU2OTcxOGYiIG5hbWU9InRlc3RzL2RyaXZlci9zZXR1cC5pbmMuY3ZzIiByb2xlPSJ0ZXN0Ij4KICAgIDx0YXNrczpyZXBsYWNlIGZyb209IkBpbmNsdWRlX3BhdGhAIiB0bz0icGhwX2RpciIgdHlwZT0icGVhci1jb25maWciIC8+CiAgIDwvZmlsZT4KICAgPGZpbGUgbWQ1c3VtPSIzMDE2ZGJhNDkxOGEzMjJkNDQwZGJiNjg4YmNlMDI0YSIgbmFtZT0idGVzdHMvZHJpdmVyL3NraXBpZi5pbmMiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iMmU3Zjk4NzUwM2I4YjVlMmE3ZmM0YzNjMzBlNzljMTMiIG5hbWU9InRlc3RzL2RiX2Vycm9yLnBocHQiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iNWY1MDY4YThhMWEzNzQyZmYwODEwYmU2MWI1NzI4OGQiIG5hbWU9InRlc3RzL2RiX2Vycm9yMi5waHB0IiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09Ijc5ZTg4ZTZkYjBjMjVjYTFlZTVlMmFhYzM1YTI0ZDZjIiBuYW1lPSJ0ZXN0cy9kYl9mYWN0b3J5LnBocHQiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iZGE3NGU3OTM5ZmUyMmQ5YzUyNjkzOWU5NzhhY2U2MWMiIG5hbWU9InRlc3RzL2RiX2lzbWFuaXAucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSJhNDcwZWExM2NiNzRkODg2MTlmMDhiMTMwODA1NDk3NSIgbmFtZT0idGVzdHMvZGJfcGFyc2Vkc24ucGhwdCIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI1YWJhZGJhNTAyZmM0NGI5YjcwOTg1NmQ2MTRiMTJhZSIgbmFtZT0idGVzdHMvZXJyb3JzLmluYyIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSIyY2RhZDNlNjJjMDU5NDE0ZGRhYjhhNDEwNzgxNDU4YyIgbmFtZT0idGVzdHMvZmV0Y2htb2Rlcy5pbmMiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iMzczMmVkYmUxYzE1OWIxNmQ4MmMwY2VmYjIzZmIyODMiIG5hbWU9InRlc3RzL2ZldGNobW9kZV9vYmplY3QuaW5jIiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09ImYzZDY2M2ZkZjE0NWU1YmIzNzk3Yzk2YjNkMGRjZjQ3IiBuYW1lPSJ0ZXN0cy9pbmNsdWRlLmluYyIgcm9sZT0idGVzdCI+CiAgICA8dGFza3M6cmVwbGFjZSBmcm9tPSJAaW5jbHVkZV9wYXRoQCIgdG89InBocF9kaXIiIHR5cGU9InBlYXItY29uZmlnIiAvPgogICA8L2ZpbGU+CiAgIDxmaWxlIG1kNXN1bT0iYjEwYmI0MjJjNzQzMmJjNzU3YThkYWI4ZTg3ODQ2YzMiIG5hbWU9InRlc3RzL2xpbWl0LmluYyIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI4YjU2ZTk4NzdjOGUzYTYyNzQxYjE5MjU1NzQ3MWMyZCIgbmFtZT0idGVzdHMvbnVtY29scy5pbmMiIHJvbGU9InRlc3QiIC8+CiAgIDxmaWxlIG1kNXN1bT0iNGI3Mjg1YTNiMTM3MGM1MjI0ZDA0YzcxZDc5MmQwMjYiIG5hbWU9InRlc3RzL251bXJvd3MuaW5jIiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09ImFkYWM5ZGVlNmUzMzliYmI0NmVlMGVlNDFkYWM3ZTMxIiBuYW1lPSJ0ZXN0cy9wcmVwZXhlLmluYyIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSJhYWM0NDRmNDdlZDNhZDE2NDIwMTM1MzlkOTlmNTc1NyIgbmFtZT0idGVzdHMvcnVuLmN2cyIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSIwYTNiNmMxNGZiM2E4Y2I2ZTNjZDhlY2U5NzM2ZTllYiIgbmFtZT0idGVzdHMvc2VxdWVuY2VzLmluYyIgcm9sZT0idGVzdCIgLz4KICAgPGZpbGUgbWQ1c3VtPSI4Zjc3M2ViMTBlZTE5MTQ1OTM3Mjk2ZGNhNjBkMjk2ZSIgbmFtZT0idGVzdHMvc2ltcGxlcXVlcnkuaW5jIiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09IjVmNmY2YjYyZjk3NzliOTdhZGY1N2JkYmJjZmZlNDUwIiBuYW1lPSJ0ZXN0cy9za2lwaWYuaW5jIiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBtZDVzdW09ImRkMmU1MWIyMjMwYjIxMTBmNmNjMzI3YmRjZjFjOTkyIiBuYW1lPSJ0ZXN0cy90cmFuc2FjdGlvbnMuaW5jIiByb2xlPSJ0ZXN0IiAvPgogICA8ZmlsZSBiYXNlaW5zdGFsbGRpcj0iLyIgbWQ1c3VtPSJkOGI4YTVmYzcwZmQzZjVkZjM2NjkzZTYyYjcyZjdmMyIgbmFtZT0iREIucGhwIiByb2xlPSJwaHAiPgogICAgPHRhc2tzOnJlcGxhY2UgZnJvbT0iQHBhY2thZ2VfdmVyc2lvbkAiIHRvPSJ2ZXJzaW9uIiB0eXBlPSJwYWNrYWdlLWluZm8iIC8+CiAgIDwvZmlsZT4KICA8L2Rpcj4KIDwvY29udGVudHM+CiA8ZGVwZW5kZW5jaWVzPgogIDxyZXF1aXJlZD4KICAgPHBocD4KICAgIDxtaW4+NC4yLjA8L21pbj4KICAgPC9waHA+CiAgIDxwZWFyaW5zdGFsbGVyPgogICAgPG1pbj4xLjQuMGIxPC9taW4+CiAgIDwvcGVhcmluc3RhbGxlcj4KICAgPHBhY2thZ2U+CiAgICA8bmFtZT5QRUFSPC9uYW1lPgogICAgPGNoYW5uZWw+cGVhci5waHAubmV0PC9jaGFubmVsPgogICAgPG1pbj4xLjBiMTwvbWluPgogICA8L3BhY2thZ2U+CiAgPC9yZXF1aXJlZD4KIDwvZGVwZW5kZW5jaWVzPgogPHBocHJlbGVhc2UgLz4KPC9wYWNrYWdlPgo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/pear/DB.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogRGF0YWJhc2UgaW5kZXBlbmRlbnQgcXVlcnkgaW50ZXJmYWNlCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBTdGlnIEJha2tlbiA8c3NiQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIFRvbWFzIFYuVi5Db3ggPGNveEBpZGVjbmV0LmNvbT4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgQ1ZTOiAkSWQ6IERCLnBocCx2IDEuODYgMjAwNy8wMS8yMiAwMToxNzo0OCBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBPYnRhaW4gdGhlIFBFQVIgY2xhc3Mgc28gaXQgY2FuIGJlIGV4dGVuZGVkIGZyb20KICovCnJlcXVpcmVfb25jZSAnUEVBUi5waHAnOwoKCi8vIHt7eyBjb25zdGFudHMKLy8ge3t7IGVycm9yIGNvZGVzCgovKiojQCsKICogT25lIG9mIFBFQVIgREIncyBwb3J0YWJsZSBlcnJvciBjb2Rlcy4KICogQHNlZSBEQl9jb21tb246OmVycm9yQ29kZSgpLCBEQjo6ZXJyb3JNZXNzYWdlKCkKICoKICoge0BpbnRlcm5hbCBJZiB5b3UgYWRkIGFuIGVycm9yIGNvZGUgaGVyZSwgbWFrZSBzdXJlIHlvdSBhbHNvIGFkZCBhIHRleHR1YWwKICogdmVyc2lvbiBvZiBpdCBpbiBEQjo6ZXJyb3JNZXNzYWdlKCkufX0KICovCgovKioKICogVGhlIGNvZGUgcmV0dXJuZWQgYnkgbWFueSBtZXRob2RzIHVwb24gc3VjY2VzcwogKi8KZGVmaW5lKCdEQl9PSycsIDEpOwoKLyoqCiAqIFVua293biBlcnJvcgogKi8KZGVmaW5lKCdEQl9FUlJPUicsIC0xKTsKCi8qKgogKiBTeW50YXggZXJyb3IKICovCmRlZmluZSgnREJfRVJST1JfU1lOVEFYJywgLTIpOwoKLyoqCiAqIFRyaWVkIHRvIGluc2VydCBhIGR1cGxpY2F0ZSB2YWx1ZSBpbnRvIGEgcHJpbWFyeSBvciB1bmlxdWUgaW5kZXgKICovCmRlZmluZSgnREJfRVJST1JfQ09OU1RSQUlOVCcsIC0zKTsKCi8qKgogKiBBbiBpZGVudGlmaWVyIGluIHRoZSBxdWVyeSByZWZlcnMgdG8gYSBub24tZXhpc3RhbnQgb2JqZWN0CiAqLwpkZWZpbmUoJ0RCX0VSUk9SX05PVF9GT1VORCcsIC00KTsKCi8qKgogKiBUcmllZCB0byBjcmVhdGUgYSBkdXBsaWNhdGUgb2JqZWN0CiAqLwpkZWZpbmUoJ0RCX0VSUk9SX0FMUkVBRFlfRVhJU1RTJywgLTUpOwoKLyoqCiAqIFRoZSBjdXJyZW50IGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSBhY3Rpb24geW91IGF0dGVtcHRlZAogKi8KZGVmaW5lKCdEQl9FUlJPUl9VTlNVUFBPUlRFRCcsIC02KTsKCi8qKgogKiBUaGUgbnVtYmVyIG9mIHBhcmFtZXRlcnMgZG9lcyBub3QgbWF0Y2ggdGhlIG51bWJlciBvZiBwbGFjZWhvbGRlcnMKICovCmRlZmluZSgnREJfRVJST1JfTUlTTUFUQ0gnLCAtNyk7CgovKioKICogQSBsaXRlcmFsIHN1Ym1pdHRlZCBkaWQgbm90IG1hdGNoIHRoZSBkYXRhIHR5cGUgZXhwZWN0ZWQKICovCmRlZmluZSgnREJfRVJST1JfSU5WQUxJRCcsIC04KTsKCi8qKgogKiBUaGUgY3VycmVudCBEQk1TIGRvZXMgbm90IHN1cHBvcnQgdGhlIGFjdGlvbiB5b3UgYXR0ZW1wdGVkCiAqLwpkZWZpbmUoJ0RCX0VSUk9SX05PVF9DQVBBQkxFJywgLTkpOwoKLyoqCiAqIEEgbGl0ZXJhbCBzdWJtaXR0ZWQgd2FzIHRvbyBsb25nIHNvIHRoZSBlbmQgb2YgaXQgd2FzIHJlbW92ZWQKICovCmRlZmluZSgnREJfRVJST1JfVFJVTkNBVEVEJywgLTEwKTsKCi8qKgogKiBBIGxpdGVyYWwgbnVtYmVyIHN1Ym1pdHRlZCBkaWQgbm90IG1hdGNoIHRoZSBkYXRhIHR5cGUgZXhwZWN0ZWQKICovCmRlZmluZSgnREJfRVJST1JfSU5WQUxJRF9OVU1CRVInLCAtMTEpOwoKLyoqCiAqIEEgbGl0ZXJhbCBkYXRlIHN1Ym1pdHRlZCBkaWQgbm90IG1hdGNoIHRoZSBkYXRhIHR5cGUgZXhwZWN0ZWQKICovCmRlZmluZSgnREJfRVJST1JfSU5WQUxJRF9EQVRFJywgLTEyKTsKCi8qKgogKiBBdHRlbXB0IHRvIGRpdmlkZSBzb21ldGhpbmcgYnkgemVybwogKi8KZGVmaW5lKCdEQl9FUlJPUl9ESVZaRVJPJywgLTEzKTsKCi8qKgogKiBBIGRhdGFiYXNlIG5lZWRzIHRvIGJlIHNlbGVjdGVkCiAqLwpkZWZpbmUoJ0RCX0VSUk9SX05PREJTRUxFQ1RFRCcsIC0xNCk7CgovKioKICogQ291bGQgbm90IGNyZWF0ZSB0aGUgb2JqZWN0IHJlcXVlc3RlZAogKi8KZGVmaW5lKCdEQl9FUlJPUl9DQU5OT1RfQ1JFQVRFJywgLTE1KTsKCi8qKgogKiBDb3VsZCBub3QgZHJvcCB0aGUgZGF0YWJhc2UgcmVxdWVzdGVkIGJlY2F1c2UgaXQgZG9lcyBub3QgZXhpc3QKICovCmRlZmluZSgnREJfRVJST1JfQ0FOTk9UX0RST1AnLCAtMTcpOwoKLyoqCiAqIEFuIGlkZW50aWZpZXIgaW4gdGhlIHF1ZXJ5IHJlZmVycyB0byBhIG5vbi1leGlzdGFudCB0YWJsZQogKi8KZGVmaW5lKCdEQl9FUlJPUl9OT1NVQ0hUQUJMRScsIC0xOCk7CgovKioKICogQW4gaWRlbnRpZmllciBpbiB0aGUgcXVlcnkgcmVmZXJzIHRvIGEgbm9uLWV4aXN0YW50IGNvbHVtbgogKi8KZGVmaW5lKCdEQl9FUlJPUl9OT1NVQ0hGSUVMRCcsIC0xOSk7CgovKioKICogVGhlIGRhdGEgc3VibWl0dGVkIHRvIHRoZSBtZXRob2Qgd2FzIGluYXBwcm9wcmlhdGUKICovCmRlZmluZSgnREJfRVJST1JfTkVFRF9NT1JFX0RBVEEnLCAtMjApOwoKLyoqCiAqIFRoZSBhdHRlbXB0IHRvIGxvY2sgdGhlIHRhYmxlIGZhaWxlZAogKi8KZGVmaW5lKCdEQl9FUlJPUl9OT1RfTE9DS0VEJywgLTIxKTsKCi8qKgogKiBUaGUgbnVtYmVyIG9mIGNvbHVtbnMgZG9lc24ndCBtYXRjaCB0aGUgbnVtYmVyIG9mIHZhbHVlcwogKi8KZGVmaW5lKCdEQl9FUlJPUl9WQUxVRV9DT1VOVF9PTl9ST1cnLCAtMjIpOwoKLyoqCiAqIFRoZSBEU04gc3VibWl0dGVkIGhhcyBwcm9ibGVtcwogKi8KZGVmaW5lKCdEQl9FUlJPUl9JTlZBTElEX0RTTicsIC0yMyk7CgovKioKICogQ291bGQgbm90IGNvbm5lY3QgdG8gdGhlIGRhdGFiYXNlCiAqLwpkZWZpbmUoJ0RCX0VSUk9SX0NPTk5FQ1RfRkFJTEVEJywgLTI0KTsKCi8qKgogKiBUaGUgUEhQIGV4dGVuc2lvbiBuZWVkZWQgZm9yIHRoaXMgREJNUyBjb3VsZCBub3QgYmUgZm91bmQKICovCmRlZmluZSgnREJfRVJST1JfRVhURU5TSU9OX05PVF9GT1VORCcsLTI1KTsKCi8qKgogKiBUaGUgcHJlc2VudCB1c2VyIGhhcyBpbmFkZXF1YXRlIHBlcm1pc3Npb25zIHRvIHBlcmZvcm0gdGhlIHRhc2sgcmVxdWVzdGQKICovCmRlZmluZSgnREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTicsIC0yNik7CgovKioKICogVGhlIGRhdGFiYXNlIHJlcXVlc3RlZCBkb2VzIG5vdCBleGlzdAogKi8KZGVmaW5lKCdEQl9FUlJPUl9OT1NVQ0hEQicsIC0yNyk7CgovKioKICogVHJpZWQgdG8gaW5zZXJ0IGEgbnVsbCB2YWx1ZSBpbnRvIGEgY29sdW1uIHRoYXQgZG9lc24ndCBhbGxvdyBudWxscwogKi8KZGVmaW5lKCdEQl9FUlJPUl9DT05TVFJBSU5UX05PVF9OVUxMJywtMjkpOwovKiojQC0qLwoKCi8vIH19fQovLyB7e3sgcHJlcGFyZWQgc3RhdGVtZW50LXJlbGF0ZWQKCgovKiojQCsKICogSWRlbnRpZmllcnMgZm9yIHRoZSBwbGFjZWhvbGRlcnMgdXNlZCBpbiBwcmVwYXJlZCBzdGF0ZW1lbnRzLgogKiBAc2VlIERCX2NvbW1vbjo6cHJlcGFyZSgpCiAqLwoKLyoqCiAqIEluZGljYXRlcyBhIHNjYWxhciAoPGtiZD4/PC9rYmQ+KSBwbGFjZWhvbGRlciB3YXMgdXNlZAogKgogKiBRdW90ZSBhbmQgZXNjYXBlIHRoZSB2YWx1ZSBhcyBuZWNlc3NhcnkuCiAqLwpkZWZpbmUoJ0RCX1BBUkFNX1NDQUxBUicsIDEpOwoKLyoqCiAqIEluZGljYXRlcyBhbiBvcGFxdWUgKDxrYmQ+Jjwva2JkPikgcGxhY2Vob2xkZXIgd2FzIHVzZWQKICoKICogVGhlIHZhbHVlIHByZXNlbnRlZCBpcyBhIGZpbGUgbmFtZS4gIEV4dHJhY3QgdGhlIGNvbnRlbnRzIG9mIHRoYXQgZmlsZQogKiBhbmQgcGxhY2UgdGhlbSBpbiB0aGlzIGNvbHVtbi4KICovCmRlZmluZSgnREJfUEFSQU1fT1BBUVVFJywgMik7CgovKioKICogSW5kaWNhdGVzIGEgbWlzYyAoPGtiZD4hPC9rYmQ+KSBwbGFjZWhvbGRlciB3YXMgdXNlZAogKgogKiBUaGUgdmFsdWUgc2hvdWxkIG5vdCBiZSBxdW90ZWQgb3IgZXNjYXBlZC4KICovCmRlZmluZSgnREJfUEFSQU1fTUlTQycsICAgMyk7Ci8qKiNALSovCgoKLy8gfX19Ci8vIHt7eyBiaW5hcnkgZGF0YS1yZWxhdGVkCgoKLyoqI0ArCiAqIFRoZSBkaWZmZXJlbnQgd2F5cyBvZiByZXR1cm5pbmcgYmluYXJ5IGRhdGEgZnJvbSBxdWVyaWVzLgogKi8KCi8qKgogKiBTZW5kcyB0aGUgZmV0Y2hlZCBkYXRhIHN0cmFpZ2h0IHRocm91Z2ggdG8gb3V0cHV0CiAqLwpkZWZpbmUoJ0RCX0JJTk1PREVfUEFTU1RIUlUnLCAxKTsKCi8qKgogKiBMZXRzIHlvdSByZXR1cm4gZGF0YSBhcyB1c3VhbAogKi8KZGVmaW5lKCdEQl9CSU5NT0RFX1JFVFVSTicsIDIpOwoKLyoqCiAqIENvbnZlcnRzIHRoZSBkYXRhIHRvIGhleCBmb3JtYXQgYmVmb3JlIHJldHVybmluZyBpdAogKgogKiBGb3IgZXhhbXBsZSB0aGUgc3RyaW5nICIxMjMiIHdvdWxkIGJlY29tZSAiMzEzMjMzIi4KICovCmRlZmluZSgnREJfQklOTU9ERV9DT05WRVJUJywgMyk7Ci8qKiNALSovCgoKLy8gfX19Ci8vIHt7eyBmZXRjaCBtb2RlcwoKCi8qKiNAKwogKiBGZXRjaCBNb2Rlcy4KICogQHNlZSBEQl9jb21tb246OnNldEZldGNoTW9kZSgpCiAqLwoKLyoqCiAqIEluZGljYXRlcyB0aGUgY3VycmVudCBkZWZhdWx0IGZldGNoIG1vZGUgc2hvdWxkIGJlIHVzZWQKICogQHNlZSBEQl9jb21tb246OiRmZXRjaG1vZGUKICovCmRlZmluZSgnREJfRkVUQ0hNT0RFX0RFRkFVTFQnLCAwKTsKCi8qKgogKiBDb2x1bW4gZGF0YSBpbmRleGVkIGJ5IG51bWJlcnMsIG9yZGVyZWQgZnJvbSAwIGFuZCB1cAogKi8KZGVmaW5lKCdEQl9GRVRDSE1PREVfT1JERVJFRCcsIDEpOwoKLyoqCiAqIENvbHVtbiBkYXRhIGluZGV4ZWQgYnkgY29sdW1uIG5hbWVzCiAqLwpkZWZpbmUoJ0RCX0ZFVENITU9ERV9BU1NPQycsIDIpOwoKLyoqCiAqIENvbHVtbiBkYXRhIGFzIG9iamVjdCBwcm9wZXJ0aWVzCiAqLwpkZWZpbmUoJ0RCX0ZFVENITU9ERV9PQkpFQ1QnLCAzKTsKCi8qKgogKiBGb3IgbXVsdGktZGltZW5zaW9uYWwgcmVzdWx0cywgbWFrZSB0aGUgY29sdW1uIG5hbWUgdGhlIGZpcnN0IGxldmVsCiAqIG9mIHRoZSBhcnJheSBhbmQgcHV0IHRoZSByb3cgbnVtYmVyIGluIHRoZSBzZWNvbmQgbGV2ZWwgb2YgdGhlIGFycmF5CiAqCiAqIFRoaXMgaXMgZmxpcHBlZCBmcm9tIHRoZSBub3JtYWwgYmVoYXZpb3IsIHdoaWNoIHB1dHMgdGhlIHJvdyBudW1iZXJzCiAqIGluIHRoZSBmaXJzdCBsZXZlbCBvZiB0aGUgYXJyYXkgYW5kIHRoZSBjb2x1bW4gbmFtZXMgaW4gdGhlIHNlY29uZCBsZXZlbC4KICovCmRlZmluZSgnREJfRkVUQ0hNT0RFX0ZMSVBQRUQnLCA0KTsKLyoqI0AtKi8KCi8qKiNAKwogKiBPbGQgZmV0Y2ggbW9kZXMuICBMZWZ0IGhlcmUgZm9yIGNvbXBhdGliaWxpdHkuCiAqLwpkZWZpbmUoJ0RCX0dFVE1PREVfT1JERVJFRCcsIERCX0ZFVENITU9ERV9PUkRFUkVEKTsKZGVmaW5lKCdEQl9HRVRNT0RFX0FTU09DJywgICBEQl9GRVRDSE1PREVfQVNTT0MpOwpkZWZpbmUoJ0RCX0dFVE1PREVfRkxJUFBFRCcsIERCX0ZFVENITU9ERV9GTElQUEVEKTsKLyoqI0AtKi8KCgovLyB9fX0KLy8ge3t7IHRhYmxlSW5mbygpICYmIGF1dG9QcmVwYXJlKCktcmVsYXRlZAoKCi8qKiNAKwogKiBUaGUgdHlwZSBvZiBpbmZvcm1hdGlvbiB0byByZXR1cm4gZnJvbSB0aGUgdGFibGVJbmZvKCkgbWV0aG9kLgogKgogKiBCaXR3aXNlZCBjb25zdGFudHMsIHNvIHRoZXkgY2FuIGJlIGNvbWJpbmVkIHVzaW5nIDxrYmQ+fDwva2JkPgogKiBhbmQgcmVtb3ZlZCB1c2luZyA8a2JkPl48L2tiZD4uCiAqCiAqIEBzZWUgREJfY29tbW9uOjp0YWJsZUluZm8oKQogKgogKiB7QGludGVybmFsIFNpbmNlIHRoZSBUQUJMRUlORk8gY29uc3RhbnRzIGFyZSBiaXR3aXNlZCwgaWYgbW9yZSBvZiB0aGVtIGFyZQogKiBhZGRlZCBpbiB0aGUgZnV0dXJlLCBtYWtlIHN1cmUgdG8gYWRqdXN0IERCX1RBQkxFSU5GT19GVUxMIGFjY29yZGluZ2x5Ln19CiAqLwpkZWZpbmUoJ0RCX1RBQkxFSU5GT19PUkRFUicsIDEpOwpkZWZpbmUoJ0RCX1RBQkxFSU5GT19PUkRFUlRBQkxFJywgMik7CmRlZmluZSgnREJfVEFCTEVJTkZPX0ZVTEwnLCAzKTsKLyoqI0AtKi8KCgovKiojQCsKICogVGhlIHR5cGUgb2YgcXVlcnkgdG8gY3JlYXRlIHdpdGggdGhlIGF1dG9tYXRpYyBxdWVyeSBidWlsZGluZyBtZXRob2RzLgogKiBAc2VlIERCX2NvbW1vbjo6YXV0b1ByZXBhcmUoKSwgREJfY29tbW9uOjphdXRvRXhlY3V0ZSgpCiAqLwpkZWZpbmUoJ0RCX0FVVE9RVUVSWV9JTlNFUlQnLCAxKTsKZGVmaW5lKCdEQl9BVVRPUVVFUllfVVBEQVRFJywgMik7Ci8qKiNALSovCgoKLy8gfX19Ci8vIHt7eyBwb3J0YWJpbGl0eSBtb2RlcwoKCi8qKiNAKwogKiBQb3J0YWJpbGl0eSBNb2Rlcy4KICoKICogQml0d2lzZWQgY29uc3RhbnRzLCBzbyB0aGV5IGNhbiBiZSBjb21iaW5lZCB1c2luZyA8a2JkPnw8L2tiZD4KICogYW5kIHJlbW92ZWQgdXNpbmcgPGtiZD5ePC9rYmQ+LgogKgogKiBAc2VlIERCX2NvbW1vbjo6c2V0T3B0aW9uKCkKICoKICoge0BpbnRlcm5hbCBTaW5jZSB0aGUgUE9SVEFCSUxJVFkgY29uc3RhbnRzIGFyZSBiaXR3aXNlZCwgaWYgbW9yZSBvZiB0aGVtIGFyZQogKiBhZGRlZCBpbiB0aGUgZnV0dXJlLCBtYWtlIHN1cmUgdG8gYWRqdXN0IERCX1BPUlRBQklMSVRZX0FMTCBhY2NvcmRpbmdseS59fQogKi8KCi8qKgogKiBUdXJuIG9mZiBhbGwgcG9ydGFiaWxpdHkgZmVhdHVyZXMKICovCmRlZmluZSgnREJfUE9SVEFCSUxJVFlfTk9ORScsIDApOwoKLyoqCiAqIENvbnZlcnQgbmFtZXMgb2YgdGFibGVzIGFuZCBmaWVsZHMgdG8gbG93ZXIgY2FzZQogKiB3aGVuIHVzaW5nIHRoZSBnZXQqKCksIGZldGNoKigpIGFuZCB0YWJsZUluZm8oKSBtZXRob2RzCiAqLwpkZWZpbmUoJ0RCX1BPUlRBQklMSVRZX0xPV0VSQ0FTRScsIDEpOwoKLyoqCiAqIFJpZ2h0IHRyaW0gdGhlIGRhdGEgb3V0cHV0IGJ5IGdldCooKSBhbmQgZmV0Y2gqKCkKICovCmRlZmluZSgnREJfUE9SVEFCSUxJVFlfUlRSSU0nLCAyKTsKCi8qKgogKiBGb3JjZSByZXBvcnRpbmcgdGhlIG51bWJlciBvZiByb3dzIGRlbGV0ZWQKICovCmRlZmluZSgnREJfUE9SVEFCSUxJVFlfREVMRVRFX0NPVU5UJywgNCk7CgovKioKICogRW5hYmxlIGhhY2sgdGhhdCBtYWtlcyBudW1Sb3dzKCkgd29yayBpbiBPcmFjbGUKICovCmRlZmluZSgnREJfUE9SVEFCSUxJVFlfTlVNUk9XUycsIDgpOwoKLyoqCiAqIE1ha2VzIGNlcnRhaW4gZXJyb3IgbWVzc2FnZXMgaW4gY2VydGFpbiBkcml2ZXJzIGNvbXBhdGlibGUKICogd2l0aCB0aG9zZSBmcm9tIG90aGVyIERCTVMncwogKgogKiArIG15c3FsLCBteXNxbGk6ICBjaGFuZ2UgdW5pcXVlL3ByaW1hcnkga2V5IGNvbnN0cmFpbnRzCiAqICAgREJfRVJST1JfQUxSRUFEWV9FWElTVFMgLT4gREJfRVJST1JfQ09OU1RSQUlOVAogKgogKiArIG9kYmMoYWNjZXNzKTogIE1TJ3MgT0RCQyBkcml2ZXIgcmVwb3J0cyAnbm8gc3VjaCBmaWVsZCcgYXMgY29kZQogKiAgIDA3MDAxLCB3aGljaCBtZWFucyAndG9vIGZldyBwYXJhbWV0ZXJzLicgIFdoZW4gdGhpcyBvcHRpb24gaXMgb24KICogICB0aGF0IGNvZGUgZ2V0cyBtYXBwZWQgdG8gREJfRVJST1JfTk9TVUNIRklFTEQuCiAqLwpkZWZpbmUoJ0RCX1BPUlRBQklMSVRZX0VSUk9SUycsIDE2KTsKCi8qKgogKiBDb252ZXJ0IG51bGwgdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MgaW4gZGF0YSBvdXRwdXQgYnkKICogZ2V0KigpIGFuZCBmZXRjaCooKQogKi8KZGVmaW5lKCdEQl9QT1JUQUJJTElUWV9OVUxMX1RPX0VNUFRZJywgMzIpOwoKLyoqCiAqIFR1cm4gb24gYWxsIHBvcnRhYmlsaXR5IGZlYXR1cmVzCiAqLwpkZWZpbmUoJ0RCX1BPUlRBQklMSVRZX0FMTCcsIDYzKTsKLyoqI0AtKi8KCi8vIH19fQoKCi8vIH19fQovLyB7e3sgY2xhc3MgREIKCi8qKgogKiBEYXRhYmFzZSBpbmRlcGVuZGVudCBxdWVyeSBpbnRlcmZhY2UKICoKICogVGhlIG1haW4gIkRCIiBjbGFzcyBpcyBzaW1wbHkgYSBjb250YWluZXIgY2xhc3Mgd2l0aCBzb21lIHN0YXRpYwogKiBtZXRob2RzIGZvciBjcmVhdGluZyBEQiBvYmplY3RzIGFzIHdlbGwgYXMgc29tZSB1dGlsaXR5IGZ1bmN0aW9ucwogKiBjb21tb24gdG8gYWxsIHBhcnRzIG9mIERCLgogKgogKiBUaGUgb2JqZWN0IG1vZGVsIG9mIERCIGlzIGFzIGZvbGxvd3MgKGluZGVudGF0aW9uIG1lYW5zIGluaGVyaXRhbmNlKToKICogPHByZT4KICogREIgICAgICAgICAgIFRoZSBtYWluIERCIGNsYXNzLiAgVGhpcyBpcyBzaW1wbHkgYSB1dGlsaXR5IGNsYXNzCiAqICAgICAgICAgICAgICB3aXRoIHNvbWUgInN0YXRpYyIgbWV0aG9kcyBmb3IgY3JlYXRpbmcgREIgb2JqZWN0cyBhcwogKiAgICAgICAgICAgICAgd2VsbCBhcyBjb21tb24gdXRpbGl0eSBmdW5jdGlvbnMgZm9yIG90aGVyIERCIGNsYXNzZXMuCiAqCiAqIERCX2NvbW1vbiAgICBUaGUgYmFzZSBmb3IgZWFjaCBEQiBpbXBsZW1lbnRhdGlvbi4gIFByb3ZpZGVzIGRlZmF1bHQKICogfCAgICAgICAgICAgIGltcGxlbWVudGF0aW9ucyAoaW4gT08gbGluZ28gdmlydHVhbCBtZXRob2RzKSBmb3IKICogfCAgICAgICAgICAgIHRoZSBhY3R1YWwgREIgaW1wbGVtZW50YXRpb25zIGFzIHdlbGwgYXMgYSBidW5jaCBvZgogKiB8ICAgICAgICAgICAgcXVlcnkgdXRpbGl0eSBmdW5jdGlvbnMuCiAqIHwKICogKy1EQl9teXNxbCAgIFRoZSBEQiBpbXBsZW1lbnRhdGlvbiBmb3IgTXlTUUwuICBJbmhlcml0cyBEQl9jb21tb24uCiAqICAgICAgICAgICAgICBXaGVuIGNhbGxpbmcgREI6OmZhY3Rvcnkgb3IgREI6OmNvbm5lY3QgZm9yIE15U1FMCiAqICAgICAgICAgICAgICBjb25uZWN0aW9ucywgdGhlIG9iamVjdCByZXR1cm5lZCBpcyBhbiBpbnN0YW5jZSBvZiB0aGlzCiAqICAgICAgICAgICAgICBjbGFzcy4KICogPC9wcmU+CiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFN0aWcgQmFra2VuIDxzc2JAcGhwLm5ldD4KICogQGF1dGhvciAgICAgVG9tYXMgVi5WLkNveCA8Y294QGlkZWNuZXQuY29tPgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAxLjcuMTIKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwpjbGFzcyBEQgp7CiAgICAvLyB7e3sgJmZhY3RvcnkoKQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbmV3IERCIG9iamVjdCBmb3IgdGhlIHNwZWNpZmllZCBkYXRhYmFzZSB0eXBlIGJ1dCBkb24ndAogICAgICogY29ubmVjdCB0byB0aGUgZGF0YWJhc2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlICAgICB0aGUgZGF0YWJhc2UgdHlwZSAoZWcgIm15c3FsIikKICAgICAqIEBwYXJhbSBhcnJheSAgJG9wdGlvbnMgIGFuIGFzc29jaWF0aXZlIGFycmF5IG9mIG9wdGlvbiBuYW1lcyBhbmQgdmFsdWVzCiAgICAgKgogICAgICogQHJldHVybiBvYmplY3QgIGEgbmV3IERCIG9iamVjdC4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnNldE9wdGlvbigpCiAgICAgKi8KICAgIGZ1bmN0aW9uICZmYWN0b3J5KCR0eXBlLCAkb3B0aW9ucyA9IGZhbHNlKQogICAgewogICAgICAgIGlmICghaXNfYXJyYXkoJG9wdGlvbnMpKSB7CiAgICAgICAgICAgICRvcHRpb25zID0gYXJyYXkoJ3BlcnNpc3RlbnQnID0+ICRvcHRpb25zKTsKICAgICAgICB9CgogICAgICAgIGlmIChpc3NldCgkb3B0aW9uc1snZGVidWcnXSkgJiYgJG9wdGlvbnNbJ2RlYnVnJ10gPj0gMikgewogICAgICAgICAgICAvLyBleHBvc2UgcGhwIGVycm9ycyB3aXRoIHN1ZmZpY2llbnQgZGVidWcgbGV2ZWwKICAgICAgICAgICAgaW5jbHVkZV9vbmNlICJEQi97JHR5cGV9LnBocCI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgQGluY2x1ZGVfb25jZSAiREIveyR0eXBlfS5waHAiOwogICAgICAgIH0KCiAgICAgICAgJGNsYXNzbmFtZSA9ICJEQl8ke3R5cGV9IjsKCiAgICAgICAgaWYgKCFjbGFzc19leGlzdHMoJGNsYXNzbmFtZSkpIHsKICAgICAgICAgICAgJHRtcCA9IFBFQVI6OnJhaXNlRXJyb3IobnVsbCwgREJfRVJST1JfTk9UX0ZPVU5ELCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGluY2x1ZGUgdGhlIERCL3skdHlwZX0ucGhwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICIgZmlsZSBmb3IgJyRkc24nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0RCX0Vycm9yJywgdHJ1ZSk7CiAgICAgICAgICAgIHJldHVybiAkdG1wOwogICAgICAgIH0KCiAgICAgICAgQCRvYmogPSYgbmV3ICRjbGFzc25hbWU7CgogICAgICAgIGZvcmVhY2ggKCRvcHRpb25zIGFzICRvcHRpb24gPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICR0ZXN0ID0gJG9iai0+c2V0T3B0aW9uKCRvcHRpb24sICR2YWx1ZSk7CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkdGVzdCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGVzdDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgJmNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ3JlYXRlIGEgbmV3IERCIG9iamVjdCBpbmNsdWRpbmcgYSBjb25uZWN0aW9uIHRvIHRoZSBzcGVjaWZpZWQgZGF0YWJhc2UKICAgICAqCiAgICAgKiBFeGFtcGxlIDEuCiAgICAgKiA8Y29kZT4KICAgICAqIHJlcXVpcmVfb25jZSAnREIucGhwJzsKICAgICAqCiAgICAgKiAkZHNuID0gJ3Bnc3FsOi8vdXNlcjpwYXNzd29yZEBob3N0L2RhdGFiYXNlJzsKICAgICAqICRvcHRpb25zID0gYXJyYXkoCiAgICAgKiAgICAgJ2RlYnVnJyAgICAgICA9PiAyLAogICAgICogICAgICdwb3J0YWJpbGl0eScgPT4gREJfUE9SVEFCSUxJVFlfQUxMLAogICAgICogKTsKICAgICAqCiAgICAgKiAkZGIgPSYgREI6OmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMpOwogICAgICogaWYgKFBFQVI6OmlzRXJyb3IoJGRiKSkgewogICAgICogICAgIGRpZSgkZGItPmdldE1lc3NhZ2UoKSk7CiAgICAgKiB9CiAgICAgKiA8L2NvZGU+CiAgICAgKgogICAgICogQHBhcmFtIG1peGVkICRkc24gICAgICB0aGUgc3RyaW5nICJkYXRhIHNvdXJjZSBuYW1lIiBvciBhcnJheSBpbiB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1hdCByZXR1cm5lZCBieSBEQjo6cGFyc2VEU04oKQogICAgICogQHBhcmFtIGFycmF5ICRvcHRpb25zICBhbiBhc3NvY2lhdGl2ZSBhcnJheSBvZiBvcHRpb24gbmFtZXMgYW5kIHZhbHVlcwogICAgICoKICAgICAqIEByZXR1cm4gb2JqZWN0ICBhIG5ldyBEQiBvYmplY3QuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEB1c2VzIERCX2RiYXNlOjpjb25uZWN0KCksIERCX2Zic3FsOjpjb25uZWN0KCksIERCX2liYXNlOjpjb25uZWN0KCksCiAgICAgKiAgICAgICBEQl9pZng6OmNvbm5lY3QoKSwgREJfbXNxbDo6Y29ubmVjdCgpLCBEQl9tc3NxbDo6Y29ubmVjdCgpLAogICAgICogICAgICAgREJfbXlzcWw6OmNvbm5lY3QoKSwgREJfbXlzcWxpOjpjb25uZWN0KCksIERCX29jaTg6OmNvbm5lY3QoKSwKICAgICAqICAgICAgIERCX29kYmM6OmNvbm5lY3QoKSwgREJfcGdzcWw6OmNvbm5lY3QoKSwgREJfc3FsaXRlOjpjb25uZWN0KCksCiAgICAgKiAgICAgICBEQl9zeWJhc2U6OmNvbm5lY3QoKQogICAgICoKICAgICAqIEB1c2VzIERCOjpwYXJzZURTTigpLCBEQl9jb21tb246OnNldE9wdGlvbigpLCBQRUFSOjppc0Vycm9yKCkKICAgICAqLwogICAgZnVuY3Rpb24gJmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMgPSBhcnJheSgpKQogICAgewogICAgICAgICRkc25pbmZvID0gREI6OnBhcnNlRFNOKCRkc24pOwogICAgICAgICR0eXBlID0gJGRzbmluZm9bJ3BocHR5cGUnXTsKCiAgICAgICAgaWYgKCFpc19hcnJheSgkb3B0aW9ucykpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogRm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiAgJG9wdGlvbnMgdXNlZCB0byBiZSBib29sZWFuLAogICAgICAgICAgICAgKiBpbmRpY2F0aW5nIHdoZXRoZXIgdGhlIGNvbm5lY3Rpb24gc2hvdWxkIGJlIHBlcnNpc3RlbnQuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkb3B0aW9ucyA9IGFycmF5KCdwZXJzaXN0ZW50JyA9PiAkb3B0aW9ucyk7CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJG9wdGlvbnNbJ2RlYnVnJ10pICYmICRvcHRpb25zWydkZWJ1ZyddID49IDIpIHsKICAgICAgICAgICAgLy8gZXhwb3NlIHBocCBlcnJvcnMgd2l0aCBzdWZmaWNpZW50IGRlYnVnIGxldmVsCiAgICAgICAgICAgIGluY2x1ZGVfb25jZSAiREIvJHt0eXBlfS5waHAiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIEBpbmNsdWRlX29uY2UgIkRCLyR7dHlwZX0ucGhwIjsKICAgICAgICB9CgogICAgICAgICRjbGFzc25hbWUgPSAiREJfJHt0eXBlfSI7CiAgICAgICAgaWYgKCFjbGFzc19leGlzdHMoJGNsYXNzbmFtZSkpIHsKICAgICAgICAgICAgJHRtcCA9IFBFQVI6OnJhaXNlRXJyb3IobnVsbCwgREJfRVJST1JfTk9UX0ZPVU5ELCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiVW5hYmxlIHRvIGluY2x1ZGUgdGhlIERCL3skdHlwZX0ucGhwIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICIgZmlsZSBmb3IgJyRkc24nIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0RCX0Vycm9yJywgdHJ1ZSk7CiAgICAgICAgICAgIHJldHVybiAkdG1wOwogICAgICAgIH0KCiAgICAgICAgQCRvYmogPSYgbmV3ICRjbGFzc25hbWU7CgogICAgICAgIGZvcmVhY2ggKCRvcHRpb25zIGFzICRvcHRpb24gPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICR0ZXN0ID0gJG9iai0+c2V0T3B0aW9uKCRvcHRpb24sICR2YWx1ZSk7CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkdGVzdCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGVzdDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJGVyciA9ICRvYmotPmNvbm5lY3QoJGRzbmluZm8sICRvYmotPmdldE9wdGlvbigncGVyc2lzdGVudCcpKTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJGVycikpIHsKICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRkc24pKSB7CiAgICAgICAgICAgICAgICAkZXJyLT5hZGRVc2VySW5mbyhEQjo6Z2V0RFNOU3RyaW5nKCRkc24sIHRydWUpKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRlcnItPmFkZFVzZXJJbmZvKCRkc24pOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkZXJyOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYXBpVmVyc2lvbigpCgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIERCIEFQSSB2ZXJzaW9uCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBEQiBBUEkgdmVyc2lvbiBudW1iZXIKICAgICAqLwogICAgZnVuY3Rpb24gYXBpVmVyc2lvbigpCiAgICB7CiAgICAgICAgcmV0dXJuICcxLjcuMTInOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGlzRXJyb3IoKQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyBpZiBhIHZhcmlhYmxlIGlzIGEgREJfRXJyb3Igb2JqZWN0CiAgICAgKgogICAgICogQHBhcmFtIG1peGVkICR2YWx1ZSAgdGhlIHZhcmlhYmxlIHRvIGNoZWNrCiAgICAgKgogICAgICogQHJldHVybiBib29sICB3aGV0aGVyICR2YWx1ZSBpcyBEQl9FcnJvciBvYmplY3QKICAgICAqLwogICAgZnVuY3Rpb24gaXNFcnJvcigkdmFsdWUpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzX2EoJHZhbHVlLCAnREJfRXJyb3InKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBpc0Nvbm5lY3Rpb24oKQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyBpZiBhIHZhbHVlIGlzIGEgREJfPGRyaXZlcj4gb2JqZWN0CiAgICAgKgogICAgICogQHBhcmFtIG1peGVkICR2YWx1ZSAgdGhlIHZhbHVlIHRvIHRlc3QKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIHdoZXRoZXIgJHZhbHVlIGlzIGEgREJfPGRyaXZlcj4gb2JqZWN0CiAgICAgKi8KICAgIGZ1bmN0aW9uIGlzQ29ubmVjdGlvbigkdmFsdWUpCiAgICB7CiAgICAgICAgcmV0dXJuIChpc19vYmplY3QoJHZhbHVlKSAmJgogICAgICAgICAgICAgICAgaXNfc3ViY2xhc3Nfb2YoJHZhbHVlLCAnZGJfY29tbW9uJykgJiYKICAgICAgICAgICAgICAgIG1ldGhvZF9leGlzdHMoJHZhbHVlLCAnc2ltcGxlUXVlcnknKSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgaXNNYW5pcCgpCgogICAgLyoqCiAgICAgKiBUZWxsIHdoZXRoZXIgYSBxdWVyeSBpcyBhIGRhdGEgbWFuaXB1bGF0aW9uIG9yIGRhdGEgZGVmaW5pdGlvbiBxdWVyeQogICAgICoKICAgICAqIEV4YW1wbGVzIG9mIGRhdGEgbWFuaXB1bGF0aW9uIHF1ZXJpZXMgYXJlIElOU0VSVCwgVVBEQVRFIGFuZCBERUxFVEUuCiAgICAgKiBFeGFtcGxlcyBvZiBkYXRhIGRlZmluaXRpb24gcXVlcmllcyBhcmUgQ1JFQVRFLCBEUk9QLCBBTFRFUiwgR1JBTlQsCiAgICAgKiBSRVZPS0UuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcXVlcnkgIHRoZSBxdWVyeQogICAgICoKICAgICAqIEByZXR1cm4gYm9vbGVhbiAgd2hldGhlciAkcXVlcnkgaXMgYSBkYXRhIG1hbmlwdWxhdGlvbiBxdWVyeQogICAgICovCiAgICBmdW5jdGlvbiBpc01hbmlwKCRxdWVyeSkKICAgIHsKICAgICAgICAkbWFuaXBzID0gJ0lOU0VSVHxVUERBVEV8REVMRVRFfFJFUExBQ0V8JwogICAgICAgICAgICAgICAgLiAnQ1JFQVRFfERST1B8JwogICAgICAgICAgICAgICAgLiAnTE9BRCBEQVRBfFNFTEVDVCAuKiBJTlRPIC4qIEZST018Q09QWXwnCiAgICAgICAgICAgICAgICAuICdBTFRFUnxHUkFOVHxSRVZPS0V8JwogICAgICAgICAgICAgICAgLiAnTE9DS3xVTkxPQ0snOwogICAgICAgIGlmIChwcmVnX21hdGNoKCcvXlxzKiI/KCcgLiAkbWFuaXBzIC4gJylccysvaScsICRxdWVyeSkpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlcnJvck1lc3NhZ2UoKQoKICAgIC8qKgogICAgICogUmV0dXJuIGEgdGV4dHVhbCBlcnJvciBtZXNzYWdlIGZvciBhIERCIGVycm9yIGNvZGUKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ZWdlciAkdmFsdWUgIHRoZSBEQiBlcnJvciBjb2RlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBlcnJvciBtZXNzYWdlIG9yIGZhbHNlIGlmIHRoZSBlcnJvciBjb2RlIHdhcwogICAgICogICAgICAgICAgICAgICAgICBub3QgcmVjb2duaXplZAogICAgICovCiAgICBmdW5jdGlvbiBlcnJvck1lc3NhZ2UoJHZhbHVlKQogICAgewogICAgICAgIHN0YXRpYyAkZXJyb3JNZXNzYWdlczsKICAgICAgICBpZiAoIWlzc2V0KCRlcnJvck1lc3NhZ2VzKSkgewogICAgICAgICAgICAkZXJyb3JNZXNzYWdlcyA9IGFycmF5KAogICAgICAgICAgICAgICAgREJfRVJST1IgICAgICAgICAgICAgICAgICAgID0+ICd1bmtub3duIGVycm9yJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX0FDQ0VTU19WSU9MQVRJT04gICA9PiAnaW5zdWZmaWNpZW50IHBlcm1pc3Npb25zJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTICAgICA9PiAnYWxyZWFkeSBleGlzdHMnLAogICAgICAgICAgICAgICAgREJfRVJST1JfQ0FOTk9UX0NSRUFURSAgICAgID0+ICdjYW4gbm90IGNyZWF0ZScsCiAgICAgICAgICAgICAgICBEQl9FUlJPUl9DQU5OT1RfRFJPUCAgICAgICAgPT4gJ2NhbiBub3QgZHJvcCcsCiAgICAgICAgICAgICAgICBEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRCAgICAgPT4gJ2Nvbm5lY3QgZmFpbGVkJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX0NPTlNUUkFJTlQgICAgICAgICA9PiAnY29uc3RyYWludCB2aW9sYXRpb24nLAogICAgICAgICAgICAgICAgREJfRVJST1JfQ09OU1RSQUlOVF9OT1RfTlVMTD0+ICdudWxsIHZhbHVlIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQnLAogICAgICAgICAgICAgICAgREJfRVJST1JfRElWWkVSTyAgICAgICAgICAgID0+ICdkaXZpc2lvbiBieSB6ZXJvJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX0VYVEVOU0lPTl9OT1RfRk9VTkQ9PiAnZXh0ZW5zaW9uIG5vdCBmb3VuZCcsCiAgICAgICAgICAgICAgICBEQl9FUlJPUl9JTlZBTElEICAgICAgICAgICAgPT4gJ2ludmFsaWQnLAogICAgICAgICAgICAgICAgREJfRVJST1JfSU5WQUxJRF9EQVRFICAgICAgID0+ICdpbnZhbGlkIGRhdGUgb3IgdGltZScsCiAgICAgICAgICAgICAgICBEQl9FUlJPUl9JTlZBTElEX0RTTiAgICAgICAgPT4gJ2ludmFsaWQgRFNOJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX0lOVkFMSURfTlVNQkVSICAgICA9PiAnaW52YWxpZCBudW1iZXInLAogICAgICAgICAgICAgICAgREJfRVJST1JfTUlTTUFUQ0ggICAgICAgICAgID0+ICdtaXNtYXRjaCcsCiAgICAgICAgICAgICAgICBEQl9FUlJPUl9ORUVEX01PUkVfREFUQSAgICAgPT4gJ2luc3VmZmljaWVudCBkYXRhIHN1cHBsaWVkJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX05PREJTRUxFQ1RFRCAgICAgICA9PiAnbm8gZGF0YWJhc2Ugc2VsZWN0ZWQnLAogICAgICAgICAgICAgICAgREJfRVJST1JfTk9TVUNIREIgICAgICAgICAgID0+ICdubyBzdWNoIGRhdGFiYXNlJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX05PU1VDSEZJRUxEICAgICAgICA9PiAnbm8gc3VjaCBmaWVsZCcsCiAgICAgICAgICAgICAgICBEQl9FUlJPUl9OT1NVQ0hUQUJMRSAgICAgICAgPT4gJ25vIHN1Y2ggdGFibGUnLAogICAgICAgICAgICAgICAgREJfRVJST1JfTk9UX0NBUEFCTEUgICAgICAgID0+ICdEQiBiYWNrZW5kIG5vdCBjYXBhYmxlJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX05PVF9GT1VORCAgICAgICAgICA9PiAnbm90IGZvdW5kJywKICAgICAgICAgICAgICAgIERCX0VSUk9SX05PVF9MT0NLRUQgICAgICAgICA9PiAnbm90IGxvY2tlZCcsCiAgICAgICAgICAgICAgICBEQl9FUlJPUl9TWU5UQVggICAgICAgICAgICAgPT4gJ3N5bnRheCBlcnJvcicsCiAgICAgICAgICAgICAgICBEQl9FUlJPUl9VTlNVUFBPUlRFRCAgICAgICAgPT4gJ25vdCBzdXBwb3J0ZWQnLAogICAgICAgICAgICAgICAgREJfRVJST1JfVFJVTkNBVEVEICAgICAgICAgID0+ICd0cnVuY2F0ZWQnLAogICAgICAgICAgICAgICAgREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XID0+ICd2YWx1ZSBjb3VudCBvbiByb3cnLAogICAgICAgICAgICAgICAgREJfT0sgICAgICAgICAgICAgICAgICAgICAgID0+ICdubyBlcnJvcicsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHZhbHVlKSkgewogICAgICAgICAgICAkdmFsdWUgPSAkdmFsdWUtPmdldENvZGUoKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBpc3NldCgkZXJyb3JNZXNzYWdlc1skdmFsdWVdKSA/ICRlcnJvck1lc3NhZ2VzWyR2YWx1ZV0KICAgICAgICAgICAgICAgICAgICAgOiAkZXJyb3JNZXNzYWdlc1tEQl9FUlJPUl07CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcGFyc2VEU04oKQoKICAgIC8qKgogICAgICogUGFyc2UgYSBkYXRhIHNvdXJjZSBuYW1lCiAgICAgKgogICAgICogQWRkaXRpb25hbCBrZXlzIGNhbiBiZSBhZGRlZCBieSBhcHBlbmRpbmcgYSBVUkkgcXVlcnkgc3RyaW5nIHRvIHRoZQogICAgICogZW5kIG9mIHRoZSBEU04uCiAgICAgKgogICAgICogVGhlIGZvcm1hdCBvZiB0aGUgc3VwcGxpZWQgRFNOIGlzIGluIGl0cyBmdWxsZXN0IGZvcm06CiAgICAgKiA8Y29kZT4KICAgICAqICBwaHB0eXBlKGRic3ludGF4KTovL3VzZXJuYW1lOnBhc3N3b3JkQHByb3RvY29sK2hvc3RzcGVjL2RhdGFiYXNlP29wdGlvbj04JmFub3RoZXI9dHJ1ZQogICAgICogPC9jb2RlPgogICAgICoKICAgICAqIE1vc3QgdmFyaWF0aW9ucyBhcmUgYWxsb3dlZDoKICAgICAqIDxjb2RlPgogICAgICogIHBocHR5cGU6Ly91c2VybmFtZTpwYXNzd29yZEBwcm90b2NvbCtob3N0c3BlYzoxMTAvL3Vzci9kYl9maWxlLmRiP21vZGU9MDY0NAogICAgICogIHBocHR5cGU6Ly91c2VybmFtZTpwYXNzd29yZEBob3N0c3BlYy9kYXRhYmFzZV9uYW1lCiAgICAgKiAgcGhwdHlwZTovL3VzZXJuYW1lOnBhc3N3b3JkQGhvc3RzcGVjCiAgICAgKiAgcGhwdHlwZTovL3VzZXJuYW1lQGhvc3RzcGVjCiAgICAgKiAgcGhwdHlwZTovL2hvc3RzcGVjL2RhdGFiYXNlCiAgICAgKiAgcGhwdHlwZTovL2hvc3RzcGVjCiAgICAgKiAgcGhwdHlwZShkYnN5bnRheCkKICAgICAqICBwaHB0eXBlCiAgICAgKiA8L2NvZGU+CiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkZHNuIERhdGEgU291cmNlIE5hbWUgdG8gYmUgcGFyc2VkCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHRoZSBmb2xsb3dpbmcga2V5czoKICAgICAqICArIHBocHR5cGU6ICBEYXRhYmFzZSBiYWNrZW5kIHVzZWQgaW4gUEhQIChteXNxbCwgb2RiYyBldGMuKQogICAgICogICsgZGJzeW50YXg6IERhdGFiYXNlIHVzZWQgd2l0aCByZWdhcmRzIHRvIFNRTCBzeW50YXggZXRjLgogICAgICogICsgcHJvdG9jb2w6IENvbW11bmljYXRpb24gcHJvdG9jb2wgdG8gdXNlICh0Y3AsIHVuaXggZXRjLikKICAgICAqICArIGhvc3RzcGVjOiBIb3N0IHNwZWNpZmljYXRpb24gKGhvc3RuYW1lWzpwb3J0XSkKICAgICAqICArIGRhdGFiYXNlOiBEYXRhYmFzZSB0byB1c2Ugb24gdGhlIERCTVMgc2VydmVyCiAgICAgKiAgKyB1c2VybmFtZTogVXNlciBuYW1lIGZvciBsb2dpbgogICAgICogICsgcGFzc3dvcmQ6IFBhc3N3b3JkIGZvciBsb2dpbgogICAgICovCiAgICBmdW5jdGlvbiBwYXJzZURTTigkZHNuKQogICAgewogICAgICAgICRwYXJzZWQgPSBhcnJheSgKICAgICAgICAgICAgJ3BocHR5cGUnICA9PiBmYWxzZSwKICAgICAgICAgICAgJ2Ric3ludGF4JyA9PiBmYWxzZSwKICAgICAgICAgICAgJ3VzZXJuYW1lJyA9PiBmYWxzZSwKICAgICAgICAgICAgJ3Bhc3N3b3JkJyA9PiBmYWxzZSwKICAgICAgICAgICAgJ3Byb3RvY29sJyA9PiBmYWxzZSwKICAgICAgICAgICAgJ2hvc3RzcGVjJyA9PiBmYWxzZSwKICAgICAgICAgICAgJ3BvcnQnICAgICA9PiBmYWxzZSwKICAgICAgICAgICAgJ3NvY2tldCcgICA9PiBmYWxzZSwKICAgICAgICAgICAgJ2RhdGFiYXNlJyA9PiBmYWxzZSwKICAgICAgICApOwoKICAgICAgICBpZiAoaXNfYXJyYXkoJGRzbikpIHsKICAgICAgICAgICAgJGRzbiA9IGFycmF5X21lcmdlKCRwYXJzZWQsICRkc24pOwogICAgICAgICAgICBpZiAoISRkc25bJ2Ric3ludGF4J10pIHsKICAgICAgICAgICAgICAgICRkc25bJ2Ric3ludGF4J10gPSAkZHNuWydwaHB0eXBlJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRkc247CiAgICAgICAgfQoKICAgICAgICAvLyBGaW5kIHBocHR5cGUgYW5kIGRic3ludGF4CiAgICAgICAgaWYgKCgkcG9zID0gc3RycG9zKCRkc24sICc6Ly8nKSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICRzdHIgPSBzdWJzdHIoJGRzbiwgMCwgJHBvcyk7CiAgICAgICAgICAgICRkc24gPSBzdWJzdHIoJGRzbiwgJHBvcyArIDMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRzdHIgPSAkZHNuOwogICAgICAgICAgICAkZHNuID0gbnVsbDsKICAgICAgICB9CgogICAgICAgIC8vIEdldCBwaHB0eXBlIGFuZCBkYnN5bnRheAogICAgICAgIC8vICRzdHIgPT4gcGhwdHlwZShkYnN5bnRheCkKICAgICAgICBpZiAocHJlZ19tYXRjaCgnfF4oLis/KVwoKC4qPylcKSR8JywgJHN0ciwgJGFycikpIHsKICAgICAgICAgICAgJHBhcnNlZFsncGhwdHlwZSddICA9ICRhcnJbMV07CiAgICAgICAgICAgICRwYXJzZWRbJ2Ric3ludGF4J10gPSAhJGFyclsyXSA/ICRhcnJbMV0gOiAkYXJyWzJdOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRwYXJzZWRbJ3BocHR5cGUnXSAgPSAkc3RyOwogICAgICAgICAgICAkcGFyc2VkWydkYnN5bnRheCddID0gJHN0cjsKICAgICAgICB9CgogICAgICAgIGlmICghY291bnQoJGRzbikpIHsKICAgICAgICAgICAgcmV0dXJuICRwYXJzZWQ7CiAgICAgICAgfQoKICAgICAgICAvLyBHZXQgKGlmIGZvdW5kKTogdXNlcm5hbWUgYW5kIHBhc3N3b3JkCiAgICAgICAgLy8gJGRzbiA9PiB1c2VybmFtZTpwYXNzd29yZEBwcm90b2NvbCtob3N0c3BlYy9kYXRhYmFzZQogICAgICAgIGlmICgoJGF0ID0gc3RycnBvcygkZHNuLCdAJykpICE9PSBmYWxzZSkgewogICAgICAgICAgICAkc3RyID0gc3Vic3RyKCRkc24sIDAsICRhdCk7CiAgICAgICAgICAgICRkc24gPSBzdWJzdHIoJGRzbiwgJGF0ICsgMSk7CiAgICAgICAgICAgIGlmICgoJHBvcyA9IHN0cnBvcygkc3RyLCAnOicpKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgICRwYXJzZWRbJ3VzZXJuYW1lJ10gPSByYXd1cmxkZWNvZGUoc3Vic3RyKCRzdHIsIDAsICRwb3MpKTsKICAgICAgICAgICAgICAgICRwYXJzZWRbJ3Bhc3N3b3JkJ10gPSByYXd1cmxkZWNvZGUoc3Vic3RyKCRzdHIsICRwb3MgKyAxKSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcGFyc2VkWyd1c2VybmFtZSddID0gcmF3dXJsZGVjb2RlKCRzdHIpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBGaW5kIHByb3RvY29sIGFuZCBob3N0c3BlYwoKICAgICAgICBpZiAocHJlZ19tYXRjaCgnfF4oW14oXSspXCgoLio/KVwpLz8oLio/KSR8JywgJGRzbiwgJG1hdGNoKSkgewogICAgICAgICAgICAvLyAkZHNuID0+IHByb3RvKHByb3RvX29wdHMpL2RhdGFiYXNlCiAgICAgICAgICAgICRwcm90byAgICAgICA9ICRtYXRjaFsxXTsKICAgICAgICAgICAgJHByb3RvX29wdHMgID0gJG1hdGNoWzJdID8gJG1hdGNoWzJdIDogZmFsc2U7CiAgICAgICAgICAgICRkc24gICAgICAgICA9ICRtYXRjaFszXTsKCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gJGRzbiA9PiBwcm90b2NvbCtob3N0c3BlYy9kYXRhYmFzZSAob2xkIGZvcm1hdCkKICAgICAgICAgICAgaWYgKHN0cnBvcygkZHNuLCAnKycpICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgbGlzdCgkcHJvdG8sICRkc24pID0gZXhwbG9kZSgnKycsICRkc24sIDIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChzdHJwb3MoJGRzbiwgJy8nKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIGxpc3QoJHByb3RvX29wdHMsICRkc24pID0gZXhwbG9kZSgnLycsICRkc24sIDIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHByb3RvX29wdHMgPSAkZHNuOwogICAgICAgICAgICAgICAgJGRzbiA9IG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIHByb2Nlc3MgdGhlIGRpZmZlcmVudCBwcm90b2NvbCBvcHRpb25zCiAgICAgICAgJHBhcnNlZFsncHJvdG9jb2wnXSA9ICghZW1wdHkoJHByb3RvKSkgPyAkcHJvdG8gOiAndGNwJzsKICAgICAgICAkcHJvdG9fb3B0cyA9IHJhd3VybGRlY29kZSgkcHJvdG9fb3B0cyk7CiAgICAgICAgaWYgKHN0cnBvcygkcHJvdG9fb3B0cywgJzonKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgbGlzdCgkcHJvdG9fb3B0cywgJHBhcnNlZFsncG9ydCddKSA9IGV4cGxvZGUoJzonLCAkcHJvdG9fb3B0cyk7CiAgICAgICAgfQogICAgICAgIGlmICgkcGFyc2VkWydwcm90b2NvbCddID09ICd0Y3AnKSB7CiAgICAgICAgICAgICRwYXJzZWRbJ2hvc3RzcGVjJ10gPSAkcHJvdG9fb3B0czsKICAgICAgICB9IGVsc2VpZiAoJHBhcnNlZFsncHJvdG9jb2wnXSA9PSAndW5peCcpIHsKICAgICAgICAgICAgJHBhcnNlZFsnc29ja2V0J10gPSAkcHJvdG9fb3B0czsKICAgICAgICB9CgogICAgICAgIC8vIEdldCBkYWJhc2UgaWYgYW55CiAgICAgICAgLy8gJGRzbiA9PiBkYXRhYmFzZQogICAgICAgIGlmICgkZHNuKSB7CiAgICAgICAgICAgIGlmICgoJHBvcyA9IHN0cnBvcygkZHNuLCAnPycpKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIC8vIC9kYXRhYmFzZQogICAgICAgICAgICAgICAgJHBhcnNlZFsnZGF0YWJhc2UnXSA9IHJhd3VybGRlY29kZSgkZHNuKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIC9kYXRhYmFzZT9wYXJhbTE9dmFsdWUxJnBhcmFtMj12YWx1ZTIKICAgICAgICAgICAgICAgICRwYXJzZWRbJ2RhdGFiYXNlJ10gPSByYXd1cmxkZWNvZGUoc3Vic3RyKCRkc24sIDAsICRwb3MpKTsKICAgICAgICAgICAgICAgICRkc24gPSBzdWJzdHIoJGRzbiwgJHBvcyArIDEpOwogICAgICAgICAgICAgICAgaWYgKHN0cnBvcygkZHNuLCAnJicpICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICRvcHRzID0gZXhwbG9kZSgnJicsICRkc24pOwogICAgICAgICAgICAgICAgfSBlbHNlIHsgLy8gZGF0YWJhc2U/cGFyYW0xPXZhbHVlMQogICAgICAgICAgICAgICAgICAgICRvcHRzID0gYXJyYXkoJGRzbik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmb3JlYWNoICgkb3B0cyBhcyAkb3B0KSB7CiAgICAgICAgICAgICAgICAgICAgbGlzdCgka2V5LCAkdmFsdWUpID0gZXhwbG9kZSgnPScsICRvcHQpOwogICAgICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJHBhcnNlZFska2V5XSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgYWxsb3cgcGFyYW1zIG92ZXJ3cml0ZQogICAgICAgICAgICAgICAgICAgICAgICAkcGFyc2VkWyRrZXldID0gcmF3dXJsZGVjb2RlKCR2YWx1ZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHBhcnNlZDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXREU05TdHJpbmcoKQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgZ2l2ZW4gRFNOIGluIGEgc3RyaW5nIGZvcm1hdCBzdWl0YWJsZSBmb3Igb3V0cHV0LgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheXxzdHJpbmcgdGhlIERTTiB0byBwYXJzZSBhbmQgZm9ybWF0CiAgICAgKiBAcGFyYW0gYm9vbGVhbiB0cnVlIHRvIGhpZGUgdGhlIHBhc3N3b3JkLCBmYWxzZSB0byBpbmNsdWRlIGl0CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBmdW5jdGlvbiBnZXREU05TdHJpbmcoJGRzbiwgJGhpZGVQYXNzd29yZCkgewogICAgICAgIC8qIENhbGxpbmcgcGFyc2VEU04gd2lsbCBlbnN1cmUgdGhhdCB3ZSBoYXZlIGFsbCB0aGUgYXJyYXkgZWxlbWVudHMKICAgICAgICAgKiBkZWZpbmVkLCBhbmQgbWVhbnMgdGhhdCB3ZSBkZWFsIHdpdGggc3RyaW5ncyBhbmQgYXJyYXkgaW4gdGhlIHNhbWUKICAgICAgICAgKiBtYW5uZXIuICovCiAgICAgICAgJGRzbkFycmF5ID0gREI6OnBhcnNlRFNOKCRkc24pOwogICAgICAgIAogICAgICAgIGlmICgkaGlkZVBhc3N3b3JkKSB7CiAgICAgICAgICAgICRkc25BcnJheVsncGFzc3dvcmQnXSA9ICdQQVNTV09SRCc7CiAgICAgICAgfQoKICAgICAgICAvKiBQcm90b2NvbCBpcyBzcGVjaWFsLWNhc2VkLCBhcyB1c2luZyB0aGUgZGVmYXVsdCAidGNwIiBhbG9uZyB3aXRoIGFuCiAgICAgICAgICogT3JhY2xlIFROUyBjb25uZWN0aW9uIHN0cmluZyBmYWlscy4gKi8KICAgICAgICBpZiAoaXNfc3RyaW5nKCRkc24pICYmIHN0cnBvcygkZHNuLCAndGNwJykgPT09IGZhbHNlICYmICRkc25BcnJheVsncHJvdG9jb2wnXSA9PSAndGNwJykgewogICAgICAgICAgICAkZHNuQXJyYXlbJ3Byb3RvY29sJ10gPSBmYWxzZTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gTm93IHdlIGp1c3QgaGF2ZSB0byBjb25zdHJ1Y3QgdGhlIGFjdHVhbCBzdHJpbmcuIFRoaXMgaXMgdWdseS4KICAgICAgICAkZHNuU3RyaW5nID0gJGRzbkFycmF5WydwaHB0eXBlJ107CiAgICAgICAgaWYgKCRkc25BcnJheVsnZGJzeW50YXgnXSkgewogICAgICAgICAgICAkZHNuU3RyaW5nIC49ICcoJy4kZHNuQXJyYXlbJ2Ric3ludGF4J10uJyknOwogICAgICAgIH0KICAgICAgICAkZHNuU3RyaW5nIC49ICc6Ly8nCiAgICAgICAgICAgICAgICAgICAgIC4kZHNuQXJyYXlbJ3VzZXJuYW1lJ10KICAgICAgICAgICAgICAgICAgICAgLic6JwogICAgICAgICAgICAgICAgICAgICAuJGRzbkFycmF5WydwYXNzd29yZCddCiAgICAgICAgICAgICAgICAgICAgIC4nQCcKICAgICAgICAgICAgICAgICAgICAgLiRkc25BcnJheVsncHJvdG9jb2wnXTsKICAgICAgICBpZiAoJGRzbkFycmF5Wydzb2NrZXQnXSkgewogICAgICAgICAgICAkZHNuU3RyaW5nIC49ICcoJy4kZHNuQXJyYXlbJ3NvY2tldCddLicpJzsKICAgICAgICB9CiAgICAgICAgaWYgKCRkc25BcnJheVsncHJvdG9jb2wnXSAmJiAkZHNuQXJyYXlbJ2hvc3RzcGVjJ10pIHsKICAgICAgICAgICAgJGRzblN0cmluZyAuPSAnKyc7CiAgICAgICAgfQogICAgICAgICRkc25TdHJpbmcgLj0gJGRzbkFycmF5Wydob3N0c3BlYyddOwogICAgICAgIGlmICgkZHNuQXJyYXlbJ3BvcnQnXSkgewogICAgICAgICAgICAkZHNuU3RyaW5nIC49ICc6Jy4kZHNuQXJyYXlbJ3BvcnQnXTsKICAgICAgICB9CiAgICAgICAgJGRzblN0cmluZyAuPSAnLycuJGRzbkFycmF5WydkYXRhYmFzZSddOwogICAgICAgIAogICAgICAgIC8qIE9wdGlvbiBoYW5kbGluZy4gVW5mb3J0dW5hdGVseSwgcGFyc2VEU04gc2ltcGx5IHBsYWNlcyBvcHRpb25zIGludG8KICAgICAgICAgKiB0aGUgdG9wLWxldmVsIGFycmF5LCBzbyB3ZSdsbCBmaXJzdCBnZXQgcmlkIG9mIHRoZSBmaWVsZHMgZGVmaW5lZCBieQogICAgICAgICAqIERCIGFuZCBzZWUgd2hhdCdzIGxlZnQuICovCiAgICAgICAgdW5zZXQoJGRzbkFycmF5WydwaHB0eXBlJ10sCiAgICAgICAgICAgICAgJGRzbkFycmF5WydkYnN5bnRheCddLAogICAgICAgICAgICAgICRkc25BcnJheVsndXNlcm5hbWUnXSwKICAgICAgICAgICAgICAkZHNuQXJyYXlbJ3Bhc3N3b3JkJ10sCiAgICAgICAgICAgICAgJGRzbkFycmF5Wydwcm90b2NvbCddLAogICAgICAgICAgICAgICRkc25BcnJheVsnc29ja2V0J10sCiAgICAgICAgICAgICAgJGRzbkFycmF5Wydob3N0c3BlYyddLAogICAgICAgICAgICAgICRkc25BcnJheVsncG9ydCddLAogICAgICAgICAgICAgICRkc25BcnJheVsnZGF0YWJhc2UnXQogICAgICAgICk7CiAgICAgICAgaWYgKGNvdW50KCRkc25BcnJheSkgPiAwKSB7CiAgICAgICAgICAgICRkc25TdHJpbmcgLj0gJz8nOwogICAgICAgICAgICAkaSA9IDA7CiAgICAgICAgICAgIGZvcmVhY2ggKCRkc25BcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgaWYgKCsrJGkgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgJGRzblN0cmluZyAuPSAnJic7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZHNuU3RyaW5nIC49ICRrZXkuJz0nLiR2YWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRkc25TdHJpbmc7CiAgICB9CiAgICAKICAgIC8vIH19fQp9CgovLyB9fX0KLy8ge3t7IGNsYXNzIERCX0Vycm9yCgovKioKICogREJfRXJyb3IgaW1wbGVtZW50cyBhIGNsYXNzIGZvciByZXBvcnRpbmcgcG9ydGFibGUgZGF0YWJhc2UgZXJyb3IKICogbWVzc2FnZXMKICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgU3RpZyBCYWtrZW4gPHNzYkBwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgUmVsZWFzZTogMS43LjEyCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KY2xhc3MgREJfRXJyb3IgZXh0ZW5kcyBQRUFSX0Vycm9yCnsKICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogREJfRXJyb3IgY29uc3RydWN0b3IKICAgICAqCiAgICAgKiBAcGFyYW0gbWl4ZWQgJGNvZGUgICAgICAgREIgZXJyb3IgY29kZSwgb3Igc3RyaW5nIHdpdGggZXJyb3IgbWVzc2FnZQogICAgICogQHBhcmFtIGludCAgICRtb2RlICAgICAgIHdoYXQgImVycm9yIG1vZGUiIHRvIG9wZXJhdGUgaW4KICAgICAqIEBwYXJhbSBpbnQgICAkbGV2ZWwgICAgICB3aGF0IGVycm9yIGxldmVsIHRvIHVzZSBmb3IgJG1vZGUgJgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBQRUFSX0VSUk9SX1RSSUdHRVIKICAgICAqIEBwYXJhbSBtaXhlZCAkZGVidWdpbmZvICBhZGRpdGlvbmFsIGRlYnVnIGluZm8sIHN1Y2ggYXMgdGhlIGxhc3QgcXVlcnkKICAgICAqCiAgICAgKiBAc2VlIFBFQVJfRXJyb3IKICAgICAqLwogICAgZnVuY3Rpb24gREJfRXJyb3IoJGNvZGUgPSBEQl9FUlJPUiwgJG1vZGUgPSBQRUFSX0VSUk9SX1JFVFVSTiwKICAgICAgICAgICAgICAgICAgICAgICRsZXZlbCA9IEVfVVNFUl9OT1RJQ0UsICRkZWJ1Z2luZm8gPSBudWxsKQogICAgewogICAgICAgIGlmIChpc19pbnQoJGNvZGUpKSB7CiAgICAgICAgICAgICR0aGlzLT5QRUFSX0Vycm9yKCdEQiBFcnJvcjogJyAuIERCOjplcnJvck1lc3NhZ2UoJGNvZGUpLCAkY29kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1vZGUsICRsZXZlbCwgJGRlYnVnaW5mbyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPlBFQVJfRXJyb3IoIkRCIEVycm9yOiAkY29kZSIsIERCX0VSUk9SLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kZSwgJGxldmVsLCAkZGVidWdpbmZvKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19Cn0KCi8vIH19fQovLyB7e3sgY2xhc3MgREJfcmVzdWx0CgovKioKICogVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGEgd3JhcHBlciBmb3IgYSBEQiByZXN1bHQgc2V0CiAqCiAqIEEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY2xhc3Mgd2lsbCBiZSByZXR1cm5lZCBieSB0aGUgREIgaW1wbGVtZW50YXRpb24KICogYWZ0ZXIgcHJvY2Vzc2luZyBhIHF1ZXJ5IHRoYXQgcmV0dXJucyBkYXRhLgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBTdGlnIEJha2tlbiA8c3NiQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAxLjcuMTIKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwpjbGFzcyBEQl9yZXN1bHQKewogICAgLy8ge3t7IHByb3BlcnRpZXMKCiAgICAvKioKICAgICAqIFNob3VsZCByZXN1bHRzIGJlIGZyZWVkIGF1dG9tYXRpY2FsbHkgd2hlbiB0aGVyZSBhcmUgbm8gbW9yZSByb3dzPwogICAgICogQHZhciBib29sZWFuCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6JG9wdGlvbnMKICAgICAqLwogICAgdmFyICRhdXRvZnJlZTsKCiAgICAvKioKICAgICAqIEEgcmVmZXJlbmNlIHRvIHRoZSBEQl88ZHJpdmVyPiBvYmplY3QKICAgICAqIEB2YXIgb2JqZWN0CiAgICAgKi8KICAgIHZhciAkZGJoOwoKICAgIC8qKgogICAgICogVGhlIGN1cnJlbnQgZGVmYXVsdCBmZXRjaCBtb2RlCiAgICAgKiBAdmFyIGludGVnZXIKICAgICAqIEBzZWUgREJfY29tbW9uOjokZmV0Y2htb2RlCiAgICAgKi8KICAgIHZhciAkZmV0Y2htb2RlOwoKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhlIGNsYXNzIGludG8gd2hpY2ggcmVzdWx0cyBzaG91bGQgYmUgZmV0Y2hlZCB3aGVuCiAgICAgKiBEQl9GRVRDSE1PREVfT0JKRUNUIGlzIGluIGVmZmVjdAogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6JGZldGNobW9kZV9vYmplY3RfY2xhc3MKICAgICAqLwogICAgdmFyICRmZXRjaG1vZGVfb2JqZWN0X2NsYXNzOwoKICAgIC8qKgogICAgICogVGhlIG51bWJlciBvZiByb3dzIHRvIGZldGNoIGZyb20gYSBsaW1pdCBxdWVyeQogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKi8KICAgIHZhciAkbGltaXRfY291bnQgPSBudWxsOwoKICAgIC8qKgogICAgICogVGhlIHJvdyB0byBzdGFydCBmZXRjaGluZyBmcm9tIGluIGxpbWl0IHF1ZXJpZXMKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICB2YXIgJGxpbWl0X2Zyb20gPSBudWxsOwoKICAgIC8qKgogICAgICogVGhlIGV4ZWN1dGUgcGFyYW1ldGVycyB0aGF0IGNyZWF0ZWQgdGhpcyByZXN1bHQKICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBzaW5jZSBQcm9wZXJ0eSBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjcuMAogICAgICovCiAgICB2YXIgJHBhcmFtZXRlcnM7CgogICAgLyoqCiAgICAgKiBUaGUgcXVlcnkgc3RyaW5nIHRoYXQgY3JlYXRlZCB0aGlzIHJlc3VsdAogICAgICoKICAgICAqIENvcGllZCBoZXJlIGluY2FzZSBpdCBjaGFuZ2VzIGluICRkYmgsIHdoaWNoIGlzIHJlZmVyZW5jZWQKICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICogQHNpbmNlIFByb3BlcnR5IGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNy4wCiAgICAgKi8KICAgIHZhciAkcXVlcnk7CgogICAgLyoqCiAgICAgKiBUaGUgcXVlcnkgcmVzdWx0IHJlc291cmNlIGlkIGNyZWF0ZWQgYnkgUEhQCiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKi8KICAgIHZhciAkcmVzdWx0OwoKICAgIC8qKgogICAgICogVGhlIHByZXNlbnQgcm93IGJlaW5nIGRlYWx0IHdpdGgKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICB2YXIgJHJvd19jb3VudGVyID0gbnVsbDsKCiAgICAvKioKICAgICAqIFRoZSBwcmVwYXJlZCBzdGF0ZW1lbnQgcmVzb3VyY2UgaWQgY3JlYXRlZCBieSBQSFAgaW4gJGRiaAogICAgICoKICAgICAqIFRoaXMgcmVzb3VyY2UgaXMgb25seSBhdmFpbGFibGUgd2hlbiB0aGUgcmVzdWx0IHNldCB3YXMgY3JlYXRlZCB1c2luZwogICAgICogYSBkcml2ZXIncyBuYXRpdmUgZXhlY3V0ZSgpIG1ldGhvZCwgbm90IFBFQVIgREIncyBlbXVsYXRlZCBvbmUuCiAgICAgKgogICAgICogQ29waWVkIGhlcmUgaW5jYXNlIGl0IGNoYW5nZXMgaW4gJGRiaCwgd2hpY2ggaXMgcmVmZXJlbmNlZAogICAgICoKICAgICAqIHtAaW50ZXJuYWwgIE1haW5seSBoZXJlIGJlY2F1c2UgdGhlIEludGVyQmFzZS9GaXJlYmlyZCBBUEkgaXMgb25seQogICAgICogYWJsZSB0byByZXRyaWV2ZSBkYXRhIGZyb20gcmVzdWx0IHNldHMgaWYgdGhlIHN0YXRlbW50IGhhbmRsZSBpcwogICAgICogc3RpbGwgaW4gc2NvcGUufX0KICAgICAqCiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKiBAc2luY2UgUHJvcGVydHkgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS43LjAKICAgICAqLwogICAgdmFyICRzdGF0ZW1lbnQ7CgoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbnN0cnVjdG9yCgogICAgLyoqCiAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIHNldHMgdGhlIG9iamVjdCdzIHByb3BlcnRpZXMKICAgICAqCiAgICAgKiBAcGFyYW0gb2JqZWN0ICAgJiRkYmggICAgIHRoZSBEQiBvYmplY3QgcmVmZXJlbmNlCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgIHRoZSByZXN1bHQgcmVzb3VyY2UgaWQKICAgICAqIEBwYXJhbSBhcnJheSAgICAkb3B0aW9ucyAgYW4gYXNzb2NpYXRpdmUgYXJyYXkgd2l0aCByZXN1bHQgb3B0aW9ucwogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBEQl9yZXN1bHQoJiRkYmgsICRyZXN1bHQsICRvcHRpb25zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICAkdGhpcy0+YXV0b2ZyZWUgICAgPSAkZGJoLT5vcHRpb25zWydhdXRvZnJlZSddOwogICAgICAgICR0aGlzLT5kYmggICAgICAgICA9ICYkZGJoOwogICAgICAgICR0aGlzLT5mZXRjaG1vZGUgICA9ICRkYmgtPmZldGNobW9kZTsKICAgICAgICAkdGhpcy0+ZmV0Y2htb2RlX29iamVjdF9jbGFzcyA9ICRkYmgtPmZldGNobW9kZV9vYmplY3RfY2xhc3M7CiAgICAgICAgJHRoaXMtPnBhcmFtZXRlcnMgID0gJGRiaC0+bGFzdF9wYXJhbWV0ZXJzOwogICAgICAgICR0aGlzLT5xdWVyeSAgICAgICA9ICRkYmgtPmxhc3RfcXVlcnk7CiAgICAgICAgJHRoaXMtPnJlc3VsdCAgICAgID0gJHJlc3VsdDsKICAgICAgICAkdGhpcy0+c3RhdGVtZW50ICAgPSBlbXB0eSgkZGJoLT5sYXN0X3N0bXQpID8gbnVsbCA6ICRkYmgtPmxhc3Rfc3RtdDsKICAgICAgICBmb3JlYWNoICgkb3B0aW9ucyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAkdGhpcy0+c2V0T3B0aW9uKCRrZXksICR2YWx1ZSk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogU2V0IG9wdGlvbnMgZm9yIHRoZSBEQl9yZXN1bHQgb2JqZWN0CiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAka2V5ICAgIHRoZSBvcHRpb24gdG8gc2V0CiAgICAgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZSAgdGhlIHZhbHVlIHRvIHNldCB0aGUgb3B0aW9uIHRvCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldE9wdGlvbigka2V5LCAkdmFsdWUgPSBudWxsKQogICAgewogICAgICAgIHN3aXRjaCAoJGtleSkgewogICAgICAgICAgICBjYXNlICdsaW1pdF9mcm9tJzoKICAgICAgICAgICAgICAgICR0aGlzLT5saW1pdF9mcm9tID0gJHZhbHVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2xpbWl0X2NvdW50JzoKICAgICAgICAgICAgICAgICR0aGlzLT5saW1pdF9jb3VudCA9ICR2YWx1ZTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hSb3coKQoKICAgIC8qKgogICAgICogRmV0Y2ggYSByb3cgb2YgZGF0YSBhbmQgcmV0dXJuIGl0IGJ5IHJlZmVyZW5jZSBpbnRvIGFuIGFycmF5CiAgICAgKgogICAgICogVGhlIHR5cGUgb2YgYXJyYXkgcmV0dXJuZWQgY2FuIGJlIGNvbnRyb2xsZWQgZWl0aGVyIGJ5IHNldHRpbmcgdGhpcwogICAgICogbWV0aG9kJ3MgPHZhcj4kZmV0Y2htb2RlPC92YXI+IHBhcmFtZXRlciBvciBieSBjaGFuZ2luZyB0aGUgZGVmYXVsdAogICAgICogZmV0Y2ggbW9kZSBzZXRGZXRjaE1vZGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC4KICAgICAqCiAgICAgKiBUaGVyZSBhcmUgdHdvIG9wdGlvbnMgZm9yIHN0YW5kYXJkaXppbmcgdGhlIGluZm9ybWF0aW9uIHJldHVybmVkCiAgICAgKiBmcm9tIGRhdGFiYXNlcywgZW5zdXJpbmcgdGhlaXIgdmFsdWVzIGFyZSBjb25zaXN0ZW50IHdoZW4gY2hhbmdpbmcKICAgICAqIERCTVMncy4gIFRoZXNlIHBvcnRhYmlsaXR5IG9wdGlvbnMgY2FuIGJlIHR1cm5lZCBvbiB3aGVuIGNyZWF0aW5nIGEKICAgICAqIG5ldyBEQiBvYmplY3Qgb3IgYnkgdXNpbmcgc2V0T3B0aW9uKCkuCiAgICAgKgogICAgICogICArIDx2YXI+REJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFPC92YXI+CiAgICAgKiAgICAgY29udmVydCBuYW1lcyBvZiBmaWVsZHMgdG8gbG93ZXIgY2FzZQogICAgICoKICAgICAqICAgKyA8dmFyPkRCX1BPUlRBQklMSVRZX1JUUklNPC92YXI+CiAgICAgKiAgICAgcmlnaHQgdHJpbSB0aGUgZGF0YQogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGZldGNobW9kZSAgdGhlIGNvbnN0YW50IGluZGljYXRpbmcgaG93IHRvIGZvcm1hdCB0aGUgZGF0YQogICAgICogQHBhcmFtIGludCAkcm93bnVtICAgICB0aGUgcm93IG51bWJlciB0byBmZXRjaCAoaW5kZXggc3RhcnRzIGF0IDApCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgYW4gYXJyYXkgb3Igb2JqZWN0IGNvbnRhaW5pbmcgdGhlIHJvdydzIGRhdGEsCiAgICAgKiAgICAgICAgICAgICAgICAgTlVMTCB3aGVuIHRoZSBlbmQgb2YgdGhlIHJlc3VsdCBzZXQgaXMgcmVhY2hlZAogICAgICogICAgICAgICAgICAgICAgIG9yIGEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnNldE9wdGlvbigpLCBEQl9jb21tb246OnNldEZldGNoTW9kZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uICZmZXRjaFJvdygkZmV0Y2htb2RlID0gREJfRkVUQ0hNT0RFX0RFRkFVTFQsICRyb3dudW0gPSBudWxsKQogICAgewogICAgICAgIGlmICgkZmV0Y2htb2RlID09PSBEQl9GRVRDSE1PREVfREVGQVVMVCkgewogICAgICAgICAgICAkZmV0Y2htb2RlID0gJHRoaXMtPmZldGNobW9kZTsKICAgICAgICB9CiAgICAgICAgaWYgKCRmZXRjaG1vZGUgPT09IERCX0ZFVENITU9ERV9PQkpFQ1QpIHsKICAgICAgICAgICAgJGZldGNobW9kZSA9IERCX0ZFVENITU9ERV9BU1NPQzsKICAgICAgICAgICAgJG9iamVjdF9jbGFzcyA9ICR0aGlzLT5mZXRjaG1vZGVfb2JqZWN0X2NsYXNzOwogICAgICAgIH0KICAgICAgICBpZiAoaXNfbnVsbCgkcm93bnVtKSAmJiAkdGhpcy0+bGltaXRfZnJvbSAhPT0gbnVsbCkgewogICAgICAgICAgICBpZiAoJHRoaXMtPnJvd19jb3VudGVyID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+cm93X2NvdW50ZXIgPSAkdGhpcy0+bGltaXRfZnJvbTsKICAgICAgICAgICAgICAgIC8vIFNraXAgcm93cwogICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5kYmgtPmZlYXR1cmVzWydsaW1pdCddID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgICRpID0gMDsKICAgICAgICAgICAgICAgICAgICB3aGlsZSAoJGkrKyA8ICR0aGlzLT5saW1pdF9mcm9tKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5kYmgtPmZldGNoSW50bygkdGhpcy0+cmVzdWx0LCAkYXJyLCAkZmV0Y2htb2RlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCR0aGlzLT5yb3dfY291bnRlciA+PSAoJHRoaXMtPmxpbWl0X2Zyb20gKyAkdGhpcy0+bGltaXRfY291bnQpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmF1dG9mcmVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZyZWUoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0bXAgPSBudWxsOwogICAgICAgICAgICAgICAgcmV0dXJuICR0bXA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCR0aGlzLT5kYmgtPmZlYXR1cmVzWydsaW1pdCddID09PSAnZW11bGF0ZScpIHsKICAgICAgICAgICAgICAgICRyb3dudW0gPSAkdGhpcy0+cm93X2NvdW50ZXI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPnJvd19jb3VudGVyKys7CiAgICAgICAgfQogICAgICAgICRyZXMgPSAkdGhpcy0+ZGJoLT5mZXRjaEludG8oJHRoaXMtPnJlc3VsdCwgJGFyciwgJGZldGNobW9kZSwgJHJvd251bSk7CiAgICAgICAgaWYgKCRyZXMgPT09IERCX09LKSB7CiAgICAgICAgICAgIGlmIChpc3NldCgkb2JqZWN0X2NsYXNzKSkgewogICAgICAgICAgICAgICAgLy8gVGhlIGRlZmF1bHQgbW9kZSBpcyBzcGVjaWZpZWQgaW4gdGhlCiAgICAgICAgICAgICAgICAvLyBEQl9jb21tb246OmZldGNobW9kZV9vYmplY3RfY2xhc3MgcHJvcGVydHkKICAgICAgICAgICAgICAgIGlmICgkb2JqZWN0X2NsYXNzID09ICdzdGRDbGFzcycpIHsKICAgICAgICAgICAgICAgICAgICAkYXJyID0gKG9iamVjdCkgJGFycjsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGFyciA9ICZuZXcgJG9iamVjdF9jbGFzcygkYXJyKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJGFycjsKICAgICAgICB9CiAgICAgICAgaWYgKCRyZXMgPT0gbnVsbCAmJiAkdGhpcy0+YXV0b2ZyZWUpIHsKICAgICAgICAgICAgJHRoaXMtPmZyZWUoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hJbnRvKCkKCiAgICAvKioKICAgICAqIEZldGNoIGEgcm93IG9mIGRhdGEgaW50byBhbiBhcnJheSB3aGljaCBpcyBwYXNzZWQgYnkgcmVmZXJlbmNlCiAgICAgKgogICAgICogVGhlIHR5cGUgb2YgYXJyYXkgcmV0dXJuZWQgY2FuIGJlIGNvbnRyb2xsZWQgZWl0aGVyIGJ5IHNldHRpbmcgdGhpcwogICAgICogbWV0aG9kJ3MgPHZhcj4kZmV0Y2htb2RlPC92YXI+IHBhcmFtZXRlciBvciBieSBjaGFuZ2luZyB0aGUgZGVmYXVsdAogICAgICogZmV0Y2ggbW9kZSBzZXRGZXRjaE1vZGUoKSBiZWZvcmUgY2FsbGluZyB0aGlzIG1ldGhvZC4KICAgICAqCiAgICAgKiBUaGVyZSBhcmUgdHdvIG9wdGlvbnMgZm9yIHN0YW5kYXJkaXppbmcgdGhlIGluZm9ybWF0aW9uIHJldHVybmVkCiAgICAgKiBmcm9tIGRhdGFiYXNlcywgZW5zdXJpbmcgdGhlaXIgdmFsdWVzIGFyZSBjb25zaXN0ZW50IHdoZW4gY2hhbmdpbmcKICAgICAqIERCTVMncy4gIFRoZXNlIHBvcnRhYmlsaXR5IG9wdGlvbnMgY2FuIGJlIHR1cm5lZCBvbiB3aGVuIGNyZWF0aW5nIGEKICAgICAqIG5ldyBEQiBvYmplY3Qgb3IgYnkgdXNpbmcgc2V0T3B0aW9uKCkuCiAgICAgKgogICAgICogICArIDx2YXI+REJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFPC92YXI+CiAgICAgKiAgICAgY29udmVydCBuYW1lcyBvZiBmaWVsZHMgdG8gbG93ZXIgY2FzZQogICAgICoKICAgICAqICAgKyA8dmFyPkRCX1BPUlRBQklMSVRZX1JUUklNPC92YXI+CiAgICAgKiAgICAgcmlnaHQgdHJpbSB0aGUgZGF0YQogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAmJGFyciAgICAgICB0aGUgdmFyaWFibGUgd2hlcmUgdGhlIGRhdGEgc2hvdWxkIGJlIHBsYWNlZAogICAgICogQHBhcmFtIGludCAgICRmZXRjaG1vZGUgIHRoZSBjb25zdGFudCBpbmRpY2F0aW5nIGhvdyB0byBmb3JtYXQgdGhlIGRhdGEKICAgICAqIEBwYXJhbSBpbnQgICAkcm93bnVtICAgICB0aGUgcm93IG51bWJlciB0byBmZXRjaCAoaW5kZXggc3RhcnRzIGF0IDApCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgREJfT0sgaWYgYSByb3cgaXMgcHJvY2Vzc2VkLCBOVUxMIHdoZW4gdGhlIGVuZCBvZiB0aGUKICAgICAqICAgICAgICAgICAgICAgICByZXN1bHQgc2V0IGlzIHJlYWNoZWQgb3IgYSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZQogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpzZXRPcHRpb24oKSwgREJfY29tbW9uOjpzZXRGZXRjaE1vZGUoKQogICAgICovCiAgICBmdW5jdGlvbiBmZXRjaEludG8oJiRhcnIsICRmZXRjaG1vZGUgPSBEQl9GRVRDSE1PREVfREVGQVVMVCwgJHJvd251bSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRmZXRjaG1vZGUgPT09IERCX0ZFVENITU9ERV9ERUZBVUxUKSB7CiAgICAgICAgICAgICRmZXRjaG1vZGUgPSAkdGhpcy0+ZmV0Y2htb2RlOwogICAgICAgIH0KICAgICAgICBpZiAoJGZldGNobW9kZSA9PT0gREJfRkVUQ0hNT0RFX09CSkVDVCkgewogICAgICAgICAgICAkZmV0Y2htb2RlID0gREJfRkVUQ0hNT0RFX0FTU09DOwogICAgICAgICAgICAkb2JqZWN0X2NsYXNzID0gJHRoaXMtPmZldGNobW9kZV9vYmplY3RfY2xhc3M7CiAgICAgICAgfQogICAgICAgIGlmIChpc19udWxsKCRyb3dudW0pICYmICR0aGlzLT5saW1pdF9mcm9tICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+cm93X2NvdW50ZXIgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5yb3dfY291bnRlciA9ICR0aGlzLT5saW1pdF9mcm9tOwogICAgICAgICAgICAgICAgLy8gU2tpcCByb3dzCiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmRiaC0+ZmVhdHVyZXNbJ2xpbWl0J10gPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgJGkgPSAwOwogICAgICAgICAgICAgICAgICAgIHdoaWxlICgkaSsrIDwgJHRoaXMtPmxpbWl0X2Zyb20pIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmRiaC0+ZmV0Y2hJbnRvKCR0aGlzLT5yZXN1bHQsICRhcnIsICRmZXRjaG1vZGUpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJHRoaXMtPnJvd19jb3VudGVyID49ICgKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+bGltaXRfZnJvbSArICR0aGlzLT5saW1pdF9jb3VudCkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+YXV0b2ZyZWUpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZnJlZSgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCR0aGlzLT5kYmgtPmZlYXR1cmVzWydsaW1pdCddID09PSAnZW11bGF0ZScpIHsKICAgICAgICAgICAgICAgICRyb3dudW0gPSAkdGhpcy0+cm93X2NvdW50ZXI7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICR0aGlzLT5yb3dfY291bnRlcisrOwogICAgICAgIH0KICAgICAgICAkcmVzID0gJHRoaXMtPmRiaC0+ZmV0Y2hJbnRvKCR0aGlzLT5yZXN1bHQsICRhcnIsICRmZXRjaG1vZGUsICRyb3dudW0pOwogICAgICAgIGlmICgkcmVzID09PSBEQl9PSykgewogICAgICAgICAgICBpZiAoaXNzZXQoJG9iamVjdF9jbGFzcykpIHsKICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgbW9kZSBzcGVjaWZpZWQgaW4gdGhlCiAgICAgICAgICAgICAgICAvLyBEQl9jb21tb246OmZldGNobW9kZV9vYmplY3RfY2xhc3MgcHJvcGVydHkKICAgICAgICAgICAgICAgIGlmICgkb2JqZWN0X2NsYXNzID09ICdzdGRDbGFzcycpIHsKICAgICAgICAgICAgICAgICAgICAkYXJyID0gKG9iamVjdCkgJGFycjsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGFyciA9IG5ldyAkb2JqZWN0X2NsYXNzKCRhcnIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBEQl9PSzsKICAgICAgICB9CiAgICAgICAgaWYgKCRyZXMgPT0gbnVsbCAmJiAkdGhpcy0+YXV0b2ZyZWUpIHsKICAgICAgICAgICAgJHRoaXMtPmZyZWUoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtQ29scygpCgogICAgLyoqCiAgICAgKiBHZXQgdGhlIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiBjb2x1bW5zLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gbnVtQ29scygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5kYmgtPm51bUNvbHMoJHRoaXMtPnJlc3VsdCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtUm93cygpCgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG51bWJlciBvZiByb3dzIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBudW1Sb3dzKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPmRiaC0+ZmVhdHVyZXNbJ251bXJvd3MnXSA9PT0gJ2VtdWxhdGUnCiAgICAgICAgICAgICYmICR0aGlzLT5kYmgtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9OVU1ST1dTKQogICAgICAgIHsKICAgICAgICAgICAgaWYgKCR0aGlzLT5kYmgtPmZlYXR1cmVzWydwcmVwYXJlJ10pIHsKICAgICAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+ZGJoLT5xdWVyeSgkdGhpcy0+cXVlcnksICR0aGlzLT5wYXJhbWV0ZXJzKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+ZGJoLT5xdWVyeSgkdGhpcy0+cXVlcnkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGkgPSAwOwogICAgICAgICAgICB3aGlsZSAoJHJlcy0+ZmV0Y2hJbnRvKCR0bXAsIERCX0ZFVENITU9ERV9PUkRFUkVEKSkgewogICAgICAgICAgICAgICAgJGkrKzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkY291bnQgPSAkaTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkY291bnQgPSAkdGhpcy0+ZGJoLT5udW1Sb3dzKCR0aGlzLT5yZXN1bHQpOwogICAgICAgIH0KCiAgICAgICAgLyogZmJzcWwgaXMgY2hlY2tlZCBmb3IgaGVyZSBiZWNhdXNlIGxpbWl0IHF1ZXJpZXMgYXJlIGltcGxlbWVudGVkCiAgICAgICAgICogdXNpbmcgYSBUT1AoKSBmdW5jdGlvbiwgd2hpY2ggcmVzdWx0cyBpbiBmYnNxbF9udW1fcm93cyBzdGlsbAogICAgICAgICAqIHJldHVybmluZyB0aGUgdG90YWwgbnVtYmVyIG9mIHJvd3MgdGhhdCB3b3VsZCBoYXZlIGJlZW4gcmV0dXJuZWQsCiAgICAgICAgICogcmF0aGVyIHRoYW4gdGhlIHJlYWwgbnVtYmVyLiBBcyBhIHJlc3VsdCwgd2UnbGwganVzdCBkbyB0aGUgbGltaXQKICAgICAgICAgKiBjYWxjdWxhdGlvbnMgZm9yIGZic3FsIGluIHRoZSBzYW1lIHdheSBhcyBhIGRhdGFiYXNlIHdpdGggZW11bGF0ZWQKICAgICAgICAgKiBsaW1pdHMuIFVuZm9ydHVuYXRlbHksIHdlIGNhbid0IGp1c3QgZG8gdGhpcyBpbiBEQl9mYnNxbDo6bnVtUm93cygpCiAgICAgICAgICogYmVjYXVzZSB0aGF0IG9ubHkgZ2V0cyB0aGUgcmVzdWx0IHJlc291cmNlLCByYXRoZXIgdGhhbiB0aGUgZnVsbAogICAgICAgICAqIERCX1Jlc3VsdCBvYmplY3QuICovCiAgICAgICAgaWYgKCgkdGhpcy0+ZGJoLT5mZWF0dXJlc1snbGltaXQnXSA9PT0gJ2VtdWxhdGUnCiAgICAgICAgICAgICAmJiAkdGhpcy0+bGltaXRfZnJvbSAhPT0gbnVsbCkKICAgICAgICAgICAgfHwgJHRoaXMtPmRiaC0+cGhwdHlwZSA9PSAnZmJzcWwnKSB7CiAgICAgICAgICAgICRsaW1pdF9jb3VudCA9IGlzX251bGwoJHRoaXMtPmxpbWl0X2NvdW50KSA/ICRjb3VudCA6ICR0aGlzLT5saW1pdF9jb3VudDsKICAgICAgICAgICAgaWYgKCRjb3VudCA8ICR0aGlzLT5saW1pdF9mcm9tKSB7CiAgICAgICAgICAgICAgICAkY291bnQgPSAwOwogICAgICAgICAgICB9IGVsc2VpZiAoJGNvdW50IDwgKCR0aGlzLT5saW1pdF9mcm9tICsgJGxpbWl0X2NvdW50KSkgewogICAgICAgICAgICAgICAgJGNvdW50IC09ICR0aGlzLT5saW1pdF9mcm9tOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGNvdW50ID0gJGxpbWl0X2NvdW50OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGNvdW50OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG5leHRSZXN1bHQoKQoKICAgIC8qKgogICAgICogR2V0IHRoZSBuZXh0IHJlc3VsdCBpZiBhIGJhdGNoIG9mIHF1ZXJpZXMgd2FzIGV4ZWN1dGVkCiAgICAgKgogICAgICogQHJldHVybiBib29sICB0cnVlIGlmIGEgbmV3IHJlc3VsdCBpcyBhdmFpbGFibGUgb3IgZmFsc2UgaWYgbm90CiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRSZXN1bHQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+ZGJoLT5uZXh0UmVzdWx0KCR0aGlzLT5yZXN1bHQpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGZyZWUoKQoKICAgIC8qKgogICAgICogRnJlZXMgdGhlIHJlc291cmNlcyBhbGxvY2F0ZWQgZm9yIHRoaXMgcmVzdWx0IHNldAogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgdHJ1ZSBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gZnJlZSgpCiAgICB7CiAgICAgICAgJGVyciA9ICR0aGlzLT5kYmgtPmZyZWVSZXN1bHQoJHRoaXMtPnJlc3VsdCk7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRlcnIpKSB7CiAgICAgICAgICAgIHJldHVybiAkZXJyOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+cmVzdWx0ID0gZmFsc2U7CiAgICAgICAgJHRoaXMtPnN0YXRlbWVudCA9IGZhbHNlOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRhYmxlSW5mbygpCgogICAgLyoqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6dGFibGVJbmZvKCkKICAgICAqIEBkZXByZWNhdGVkIE1ldGhvZCBkZXByZWNhdGVkIHNvbWUgdGltZSBiZWZvcmUgUmVsZWFzZSAxLjIKICAgICAqLwogICAgZnVuY3Rpb24gdGFibGVJbmZvKCRtb2RlID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoaXNfc3RyaW5nKCRtb2RlKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmRiaC0+cmFpc2VFcnJvcihEQl9FUlJPUl9ORUVEX01PUkVfREFUQSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+ZGJoLT50YWJsZUluZm8oJHRoaXMsICRtb2RlKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXRRdWVyeSgpCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmUgdGhlIHF1ZXJ5IHN0cmluZyB0aGF0IGNyZWF0ZWQgdGhpcyByZXN1bHQKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIHF1ZXJ5IHN0cmluZwogICAgICoKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS43LjAKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0UXVlcnkoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cXVlcnk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0Um93Q291bnRlcigpCgogICAgLyoqCiAgICAgKiBUZWxscyB3aGljaCByb3cgbnVtYmVyIGlzIGN1cnJlbnRseSBiZWluZyBwcm9jZXNzZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIGludGVnZXIgIHRoZSBjdXJyZW50IHJvdyBiZWluZyBsb29rZWQgYXQuICBTdGFydHMgYXQgMS4KICAgICAqLwogICAgZnVuY3Rpb24gZ2V0Um93Q291bnRlcigpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yb3dfY291bnRlcjsKICAgIH0KCiAgICAvLyB9fX0KfQoKLy8gfX19Ci8vIHt7eyBjbGFzcyBEQl9yb3cKCi8qKgogKiBQRUFSIERCIFJvdyBPYmplY3QKICoKICogVGhlIG9iamVjdCBjb250YWlucyBhIHJvdyBvZiBkYXRhIGZyb20gYSByZXN1bHQgc2V0LiAgRWFjaCBjb2x1bW4ncyBkYXRhCiAqIGlzIHBsYWNlZCBpbiBhIHByb3BlcnR5IG5hbWVkIGZvciB0aGUgY29sdW1uLgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBTdGlnIEJha2tlbiA8c3NiQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAxLjcuMTIKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqIEBzZWUgICAgICAgIERCX2NvbW1vbjo6c2V0RmV0Y2hNb2RlKCkKICovCmNsYXNzIERCX3Jvdwp7CiAgICAvLyB7e3sgY29uc3RydWN0b3IKCiAgICAvKioKICAgICAqIFRoZSBjb25zdHJ1Y3RvciBwbGFjZXMgYSByb3cncyBkYXRhIGludG8gcHJvcGVydGllcyBvZiB0aGlzIG9iamVjdAogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAgdGhlIGFycmF5IGNvbnRhaW5pbmcgdGhlIHJvdydzIGRhdGEKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gREJfcm93KCYkYXJyKQogICAgewogICAgICAgIGZvcmVhY2ggKCRhcnIgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgJHRoaXMtPiRrZXkgPSAmJGFyclska2V5XTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19Cn0KCi8vIH19fQoKLyoKICogTG9jYWwgdmFyaWFibGVzOgogKiB0YWItd2lkdGg6IDQKICogYy1iYXNpYy1vZmZzZXQ6IDQKICogRW5kOgogKi8KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/pear/DB/common.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogQ29udGFpbnMgdGhlIERCX2NvbW1vbiBiYXNlIGNsYXNzCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBTdGlnIEJha2tlbiA8c3NiQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIFRvbWFzIFYuVi4gQ294IDxjb3hAaWRlY25ldC5jb20+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIENWUzogJElkOiBjb21tb24ucGhwLHYgMS4xNDAgMjAwNy8wMS8xMiAwMjo0MTowNyBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBPYnRhaW4gdGhlIFBFQVIgY2xhc3Mgc28gaXQgY2FuIGJlIGV4dGVuZGVkIGZyb20KICovCnJlcXVpcmVfb25jZSAnUEVBUi5waHAnOwoKLyoqCiAqIERCX2NvbW1vbiBpcyB0aGUgYmFzZSBjbGFzcyBmcm9tIHdoaWNoIGVhY2ggZGF0YWJhc2UgZHJpdmVyIGNsYXNzIGV4dGVuZHMKICoKICogQWxsIGNvbW1vbiBtZXRob2RzIGFyZSBkZWNsYXJlZCBoZXJlLiAgSWYgYSBnaXZlbiBEQk1TIGRyaXZlciBjb250YWlucwogKiBhIHBhcnRpY3VsYXIgbWV0aG9kLCB0aGF0IG1ldGhvZCB3aWxsIG92ZXJsb2FkIHRoZSBvbmUgaGVyZS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgU3RpZyBCYWtrZW4gPHNzYkBwaHAubmV0PgogKiBAYXV0aG9yICAgICBUb21hcyBWLlYuIENveCA8Y294QGlkZWNuZXQuY29tPgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAxLjcuMTIKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwpjbGFzcyBEQl9jb21tb24gZXh0ZW5kcyBQRUFSCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgLyoqCiAgICAgKiBUaGUgY3VycmVudCBkZWZhdWx0IGZldGNoIG1vZGUKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICB2YXIgJGZldGNobW9kZSA9IERCX0ZFVENITU9ERV9PUkRFUkVEOwoKICAgIC8qKgogICAgICogVGhlIG5hbWUgb2YgdGhlIGNsYXNzIGludG8gd2hpY2ggcmVzdWx0cyBzaG91bGQgYmUgZmV0Y2hlZCB3aGVuCiAgICAgKiBEQl9GRVRDSE1PREVfT0JKRUNUIGlzIGluIGVmZmVjdAogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkZmV0Y2htb2RlX29iamVjdF9jbGFzcyA9ICdzdGRDbGFzcyc7CgogICAgLyoqCiAgICAgKiBXYXMgYSBjb25uZWN0aW9uIHByZXNlbnQgd2hlbiB0aGUgb2JqZWN0IHdhcyBzZXJpYWxpemVkKCk/CiAgICAgKiBAdmFyIGJvb2wKICAgICAqIEBzZWUgREJfY29tbW9uOjpfX3NsZWVwKCksIERCX2NvbW1vbjo6X193YWtlKCkKICAgICAqLwogICAgdmFyICR3YXNfY29ubmVjdGVkID0gbnVsbDsKCiAgICAvKioKICAgICAqIFRoZSBtb3N0IHJlY2VudGx5IGV4ZWN1dGVkIHF1ZXJ5CiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJGxhc3RfcXVlcnkgPSAnJzsKCiAgICAvKioKICAgICAqIFJ1bi10aW1lIGNvbmZpZ3VyYXRpb24gb3B0aW9ucwogICAgICoKICAgICAqIFRoZSAnb3B0aW1pemUnIG9wdGlvbiBoYXMgYmVlbiBkZXByZWNhdGVkLiAgVXNlIHRoZSAncG9ydGFiaWxpdHknCiAgICAgKiBvcHRpb24gaW5zdGVhZC4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKiBAc2VlIERCX2NvbW1vbjo6c2V0T3B0aW9uKCkKICAgICAqLwogICAgdmFyICRvcHRpb25zID0gYXJyYXkoCiAgICAgICAgJ3Jlc3VsdF9idWZmZXJpbmcnID0+IDUwMCwKICAgICAgICAncGVyc2lzdGVudCcgPT4gZmFsc2UsCiAgICAgICAgJ3NzbCcgPT4gZmFsc2UsCiAgICAgICAgJ2RlYnVnJyA9PiAwLAogICAgICAgICdzZXFuYW1lX2Zvcm1hdCcgPT4gJyVzX3NlcScsCiAgICAgICAgJ2F1dG9mcmVlJyA9PiBmYWxzZSwKICAgICAgICAncG9ydGFiaWxpdHknID0+IERCX1BPUlRBQklMSVRZX05PTkUsCiAgICAgICAgJ29wdGltaXplJyA9PiAncGVyZm9ybWFuY2UnLCAgLy8gRGVwcmVjYXRlZC4gIFVzZSAncG9ydGFiaWxpdHknLgogICAgKTsKCiAgICAvKioKICAgICAqIFRoZSBwYXJhbWV0ZXJzIGZyb20gdGhlIG1vc3QgcmVjZW50bHkgZXhlY3V0ZWQgcXVlcnkKICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBzaW5jZSBQcm9wZXJ0eSBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjcuMAogICAgICovCiAgICB2YXIgJGxhc3RfcGFyYW1ldGVycyA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiBUaGUgZWxlbWVudHMgZnJvbSBlYWNoIHByZXBhcmVkIHN0YXRlbWVudAogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJHByZXBhcmVfdG9rZW5zID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIFRoZSBkYXRhIHR5cGVzIG9mIHRoZSB2YXJpb3VzIGVsZW1lbnRzIGluIGVhY2ggcHJlcGFyZWQgc3RhdGVtZW50CiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkcHJlcGFyZV90eXBlcyA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiBUaGUgcHJlcGFyZWQgcXVlcmllcwogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJHByZXBhcmVkX3F1ZXJpZXMgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogRmxhZyBpbmRpY2F0aW5nIHRoYXQgdGhlIGxhc3QgcXVlcnkgd2FzIGEgbWFuaXB1bGF0aW9uIHF1ZXJ5LgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICB2YXIgJF9sYXN0X3F1ZXJ5X21hbmlwID0gZmFsc2U7CgogICAgLyoqCiAgICAgKiBGbGFnIGluZGljYXRpbmcgdGhhdCB0aGUgbmV4dCBxdWVyeSA8ZW0+bXVzdDwvZW0+IGJlIGEgbWFuaXB1bGF0aW9uCiAgICAgKiBxdWVyeS4KICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAdmFyIGJvb2xlYW4KICAgICAqLwogICAgdmFyICRfbmV4dF9xdWVyeV9tYW5pcCA9IGZhbHNlOwoKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBEQl9jb21tb24KCiAgICAvKioKICAgICAqIFRoaXMgY29uc3RydWN0b3IgY2FsbHMgPGtiZD4kdGhpcy0+UEVBUignREJfRXJyb3InKTwva2JkPgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBEQl9jb21tb24oKQogICAgewogICAgICAgICR0aGlzLT5QRUFSKCdEQl9FcnJvcicpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9fc2xlZXAoKQoKICAgIC8qKgogICAgICogQXV0b21hdGljYWxseSBpbmRpY2F0ZXMgd2hpY2ggcHJvcGVydGllcyBzaG91bGQgYmUgc2F2ZWQKICAgICAqIHdoZW4gUEhQJ3Mgc2VyaWFsaXplKCkgZnVuY3Rpb24gaXMgY2FsbGVkCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSAgdGhlIGFycmF5IG9mIHByb3BlcnRpZXMgbmFtZXMgdGhhdCBzaG91bGQgYmUgc2F2ZWQKICAgICAqLwogICAgZnVuY3Rpb24gX19zbGVlcCgpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5jb25uZWN0aW9uKSB7CiAgICAgICAgICAgIC8vIERvbid0IGRpc2Nvbm5lY3QoKSwgcGVvcGxlIHVzZSBzZXJpYWxpemUoKSBmb3IgbWFueSByZWFzb25zCiAgICAgICAgICAgICR0aGlzLT53YXNfY29ubmVjdGVkID0gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+d2FzX2Nvbm5lY3RlZCA9IGZhbHNlOwogICAgICAgIH0KICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmF1dG9jb21taXQpKSB7CiAgICAgICAgICAgIHJldHVybiBhcnJheSgnYXV0b2NvbW1pdCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZGJzeW50YXgnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ2RzbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZmVhdHVyZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ2ZldGNobW9kZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZmV0Y2htb2RlX29iamVjdF9jbGFzcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9ucycsCiAgICAgICAgICAgICAgICAgICAgICAgICAnd2FzX2Nvbm5lY3RlZCcsCiAgICAgICAgICAgICAgICAgICApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBhcnJheSgnZGJzeW50YXgnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ2RzbicsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZmVhdHVyZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ2ZldGNobW9kZScsCiAgICAgICAgICAgICAgICAgICAgICAgICAnZmV0Y2htb2RlX29iamVjdF9jbGFzcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9ucycsCiAgICAgICAgICAgICAgICAgICAgICAgICAnd2FzX2Nvbm5lY3RlZCcsCiAgICAgICAgICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBfX3dha2V1cCgpCgogICAgLyoqCiAgICAgKiBBdXRvbWF0aWNhbGx5IHJlY29ubmVjdHMgdG8gdGhlIGRhdGFiYXNlIHdoZW4gUEhQJ3MgdW5zZXJpYWxpemUoKQogICAgICogZnVuY3Rpb24gaXMgY2FsbGVkCiAgICAgKgogICAgICogVGhlIHJlY29ubmVjdGlvbiBhdHRlbXB0IGlzIG9ubHkgcGVyZm9ybWVkIGlmIHRoZSBvYmplY3Qgd2FzIGNvbm5lY3RlZAogICAgICogYXQgdGhlIHRpbWUgUEhQJ3Mgc2VyaWFsaXplKCkgZnVuY3Rpb24gd2FzIHJ1bi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gX193YWtldXAoKQogICAgewogICAgICAgIGlmICgkdGhpcy0+d2FzX2Nvbm5lY3RlZCkgewogICAgICAgICAgICAkdGhpcy0+Y29ubmVjdCgkdGhpcy0+ZHNuLCAkdGhpcy0+b3B0aW9ucyk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9fdG9TdHJpbmcoKQoKICAgIC8qKgogICAgICogQXV0b21hdGljIHN0cmluZyBjb252ZXJzaW9uIGZvciBQSFAgNQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBjdXJyZW50IFBFQVIgREIgb2JqZWN0CiAgICAgKgogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjcuMAogICAgICovCiAgICBmdW5jdGlvbiBfX3RvU3RyaW5nKCkKICAgIHsKICAgICAgICAkaW5mbyA9IHN0cnRvbG93ZXIoZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJGluZm8gLj0gICc6IChwaHB0eXBlPScgLiAkdGhpcy0+cGhwdHlwZSAuCiAgICAgICAgICAgICAgICAgICcsIGRic3ludGF4PScgLiAkdGhpcy0+ZGJzeW50YXggLgogICAgICAgICAgICAgICAgICAnKSc7CiAgICAgICAgaWYgKCR0aGlzLT5jb25uZWN0aW9uKSB7CiAgICAgICAgICAgICRpbmZvIC49ICcgW2Nvbm5lY3RlZF0nOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGluZm87CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgdG9TdHJpbmcoKQoKICAgIC8qKgogICAgICogREVQUkVDQVRFRDogIFN0cmluZyBjb252ZXJzaW9uIG1ldGhvZAogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICBhIHN0cmluZyBkZXNjcmliaW5nIHRoZSBjdXJyZW50IFBFQVIgREIgb2JqZWN0CiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgTWV0aG9kIGRlcHJlY2F0ZWQgaW4gUmVsZWFzZSAxLjcuMAogICAgICovCiAgICBmdW5jdGlvbiB0b1N0cmluZygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5fX3RvU3RyaW5nKCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcXVvdGVTdHJpbmcoKQoKICAgIC8qKgogICAgICogREVQUkVDQVRFRDogUXVvdGVzIGEgc3RyaW5nIHNvIGl0IGNhbiBiZSBzYWZlbHkgdXNlZCB3aXRoaW4gc3RyaW5nCiAgICAgKiBkZWxpbWl0ZXJzIGluIGEgcXVlcnkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcgIHRoZSBzdHJpbmcgdG8gYmUgcXVvdGVkCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBxdW90ZWQgc3RyaW5nCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnF1b3RlU21hcnQoKSwgREJfY29tbW9uOjplc2NhcGVTaW1wbGUoKQogICAgICogQGRlcHJlY2F0ZWQgTWV0aG9kIGRlcHJlY2F0ZWQgc29tZSB0aW1lIGJlZm9yZSBSZWxlYXNlIDEuMgogICAgICovCiAgICBmdW5jdGlvbiBxdW90ZVN0cmluZygkc3RyaW5nKQogICAgewogICAgICAgICRzdHJpbmcgPSAkdGhpcy0+cXVvdGUoJHN0cmluZyk7CiAgICAgICAgaWYgKCRzdHJpbmd7MH0gPT0gIiciKSB7CiAgICAgICAgICAgIHJldHVybiBzdWJzdHIoJHN0cmluZywgMSwgLTEpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHN0cmluZzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdW90ZSgpCgogICAgLyoqCiAgICAgKiBERVBSRUNBVEVEOiBRdW90ZXMgYSBzdHJpbmcgc28gaXQgY2FuIGJlIHNhZmVseSB1c2VkIGluIGEgcXVlcnkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcgIHRoZSBzdHJpbmcgdG8gcXVvdGUKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIHF1b3RlZCBzdHJpbmcgb3IgdGhlIHN0cmluZyA8c2FtcD5OVUxMPC9zYW1wPgogICAgICogICAgICAgICAgICAgICAgICBpZiB0aGUgdmFsdWUgc3VibWl0dGVkIGlzIDxrYmQ+bnVsbDwva2JkPi4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6cXVvdGVTbWFydCgpLCBEQl9jb21tb246OmVzY2FwZVNpbXBsZSgpCiAgICAgKiBAZGVwcmVjYXRlZCBEZXByZWNhdGVkIGluIHJlbGVhc2UgMS42LjAKICAgICAqLwogICAgZnVuY3Rpb24gcXVvdGUoJHN0cmluZyA9IG51bGwpCiAgICB7CiAgICAgICAgcmV0dXJuICgkc3RyaW5nID09PSBudWxsKSA/ICdOVUxMJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAiJyIgLiBzdHJfcmVwbGFjZSgiJyIsICInJyIsICRzdHJpbmcpIC4gIiciOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHF1b3RlSWRlbnRpZmllcigpCgogICAgLyoqCiAgICAgKiBRdW90ZXMgYSBzdHJpbmcgc28gaXQgY2FuIGJlIHNhZmVseSB1c2VkIGFzIGEgdGFibGUgb3IgY29sdW1uIG5hbWUKICAgICAqCiAgICAgKiBEZWxpbWl0aW5nIHN0eWxlIGRlcGVuZHMgb24gd2hpY2ggZGF0YWJhc2UgZHJpdmVyIGlzIGJlaW5nIHVzZWQuCiAgICAgKgogICAgICogTk9URToganVzdCBiZWNhdXNlIHlvdSBDQU4gdXNlIGRlbGltaXRlZCBpZGVudGlmaWVycyBkb2Vzbid0IG1lYW4KICAgICAqIHlvdSBTSE9VTEQgdXNlIHRoZW0uICBJbiBnZW5lcmFsLCB0aGV5IGVuZCB1cCBjYXVzaW5nIHdheSBtb3JlCiAgICAgKiBwcm9ibGVtcyB0aGFuIHRoZXkgc29sdmUuCiAgICAgKgogICAgICogUG9ydGFiaWxpdHkgaXMgYnJva2VuIGJ5IHVzaW5nIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVycyBpbnNpZGUKICAgICAqIGRlbGltaXRlZCBpZGVudGlmaWVyczoKICAgICAqICAgKyBiYWNrdGljayAoPGtiZD5gPC9rYmQ+KSAtLSBkdWUgdG8gTXlTUUwKICAgICAqICAgKyBkb3VibGUgcXVvdGUgKDxrYmQ+Ijwva2JkPikgLS0gZHVlIHRvIE9yYWNsZQogICAgICogICArIGJyYWNrZXRzICg8a2JkPls8L2tiZD4gb3IgPGtiZD5dPC9rYmQ+KSAtLSBkdWUgdG8gQWNjZXNzCiAgICAgKgogICAgICogRGVsaW1pdGVkIGlkZW50aWZpZXJzIGFyZSBrbm93biB0byBnZW5lcmFsbHkgd29yayBjb3JyZWN0bHkgdW5kZXIKICAgICAqIHRoZSBmb2xsb3dpbmcgZHJpdmVyczoKICAgICAqICAgKyBtc3NxbAogICAgICogICArIG15c3FsCiAgICAgKiAgICsgbXlzcWxpCiAgICAgKiAgICsgb2NpOAogICAgICogICArIG9kYmMoYWNjZXNzKQogICAgICogICArIG9kYmMoZGIyKQogICAgICogICArIHBnc3FsCiAgICAgKiAgICsgc3FsaXRlCiAgICAgKiAgICsgc3liYXNlIChtdXN0IGV4ZWN1dGUgPGtiZD5zZXQgcXVvdGVkX2lkZW50aWZpZXIgb248L2tiZD4gc29tZXRpbWUKICAgICAqICAgICBwcmlvciB0byB1c2UpCiAgICAgKgogICAgICogSW50ZXJCYXNlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhYmxlIHRvIHVzZSBkZWxpbWl0ZWQgaWRlbnRpZmllcnMKICAgICAqIHZpYSBQSFAgNC4gIFRoZXkgd29yayBmaW5lIHVuZGVyIFBIUCA1LgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAgdGhlIGlkZW50aWZpZXIgbmFtZSB0byBiZSBxdW90ZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIHF1b3RlZCBpZGVudGlmaWVyCiAgICAgKgogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjYuMAogICAgICovCiAgICBmdW5jdGlvbiBxdW90ZUlkZW50aWZpZXIoJHN0cikKICAgIHsKICAgICAgICByZXR1cm4gJyInIC4gc3RyX3JlcGxhY2UoJyInLCAnIiInLCAkc3RyKSAuICciJzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdW90ZVNtYXJ0KCkKCiAgICAvKioKICAgICAqIEZvcm1hdHMgaW5wdXQgc28gaXQgY2FuIGJlIHNhZmVseSB1c2VkIGluIGEgcXVlcnkKICAgICAqCiAgICAgKiBUaGUgb3V0cHV0IGRlcGVuZHMgb24gdGhlIFBIUCBkYXRhIHR5cGUgb2YgaW5wdXQgYW5kIHRoZSBkYXRhYmFzZQogICAgICogdHlwZSBiZWluZyB1c2VkLgogICAgICoKICAgICAqIEBwYXJhbSBtaXhlZCAkaW4gIHRoZSBkYXRhIHRvIGJlIGZvcm1hdHRlZAogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIHRoZSBmb3JtYXR0ZWQgZGF0YS4gIFRoZSBmb3JtYXQgZGVwZW5kcyBvbiB0aGUgaW5wdXQncwogICAgICogICAgICAgICAgICAgICAgIFBIUCB0eXBlOgogICAgICogPHVsPgogICAgICogIDxsaT4KICAgICAqICAgIDxrYmQ+aW5wdXQ8L2tiZD4gLT4gPHNhbXA+cmV0dXJuczwvc2FtcD4KICAgICAqICA8L2xpPgogICAgICogIDxsaT4KICAgICAqICAgIDxrYmQ+bnVsbDwva2JkPiAtPiB0aGUgc3RyaW5nIDxzYW1wPk5VTEw8L3NhbXA+CiAgICAgKiAgPC9saT4KICAgICAqICA8bGk+CiAgICAgKiAgICA8a2JkPmludGVnZXI8L2tiZD4gb3IgPGtiZD5kb3VibGU8L2tiZD4gLT4gdGhlIHVucXVvdGVkIG51bWJlcgogICAgICogIDwvbGk+CiAgICAgKiAgPGxpPgogICAgICogICAgPGtiZD5ib29sPC9rYmQ+IC0+IG91dHB1dCBkZXBlbmRzIG9uIHRoZSBkcml2ZXIgaW4gdXNlCiAgICAgKiAgICBNb3N0IGRyaXZlcnMgcmV0dXJuIGludGVnZXJzOiA8c2FtcD4xPC9zYW1wPiBpZgogICAgICogICAgPGtiZD50cnVlPC9rYmQ+IG9yIDxzYW1wPjA8L3NhbXA+IGlmCiAgICAgKiAgICA8a2JkPmZhbHNlPC9rYmQ+LgogICAgICogICAgU29tZSByZXR1cm4gc3RyaW5nczogPHNhbXA+VFJVRTwvc2FtcD4gaWYKICAgICAqICAgIDxrYmQ+dHJ1ZTwva2JkPiBvciA8c2FtcD5GQUxTRTwvc2FtcD4gaWYKICAgICAqICAgIDxrYmQ+ZmFsc2U8L2tiZD4uCiAgICAgKiAgICBGaW5hbGx5IG9uZSByZXR1cm5zIHN0cmluZ3M6IDxzYW1wPlQ8L3NhbXA+IGlmCiAgICAgKiAgICA8a2JkPnRydWU8L2tiZD4gb3IgPHNhbXA+Rjwvc2FtcD4gaWYKICAgICAqICAgIDxrYmQ+ZmFsc2U8L2tiZD4uIEhlcmUgaXMgYSBsaXN0IG9mIGVhY2ggREJNUywKICAgICAqICAgIHRoZSB2YWx1ZXMgcmV0dXJuZWQgYW5kIHRoZSBzdWdnZXN0ZWQgY29sdW1uIHR5cGU6CiAgICAgKiAgICA8dWw+CiAgICAgKiAgICAgIDxsaT4KICAgICAqICAgICAgICA8a2JkPmRiYXNlPC9rYmQ+IC0+IDxzYW1wPlQvRjwvc2FtcD4KICAgICAqICAgICAgICAoPGtiZD5Mb2dpY2FsPC9rYmQ+KQogICAgICogICAgICA8L2xpPgogICAgICogICAgICA8bGk+CiAgICAgKiAgICAgICAgPGtiZD5mYmFzZTwva2JkPiAtPiA8c2FtcD5UUlVFL0ZBTFNFPC9zYW1wPgogICAgICogICAgICAgICg8a2JkPkJPT0xFQU48L2tiZD4pCiAgICAgKiAgICAgIDwvbGk+CiAgICAgKiAgICAgIDxsaT4KICAgICAqICAgICAgICA8a2JkPmliYXNlPC9rYmQ+IC0+IDxzYW1wPjEvMDwvc2FtcD4KICAgICAqICAgICAgICAoPGtiZD5TTUFMTElOVDwva2JkPikgWzFdCiAgICAgKiAgICAgIDwvbGk+CiAgICAgKiAgICAgIDxsaT4KICAgICAqICAgICAgICA8a2JkPmlmeDwva2JkPiAtPiA8c2FtcD4xLzA8L3NhbXA+CiAgICAgKiAgICAgICAgKDxrYmQ+U01BTExJTlQ8L2tiZD4pIFsxXQogICAgICogICAgICA8L2xpPgogICAgICogICAgICA8bGk+CiAgICAgKiAgICAgICAgPGtiZD5tc3FsPC9rYmQ+IC0+IDxzYW1wPjEvMDwvc2FtcD4KICAgICAqICAgICAgICAoPGtiZD5JTlRFR0VSPC9rYmQ+KQogICAgICogICAgICA8L2xpPgogICAgICogICAgICA8bGk+CiAgICAgKiAgICAgICAgPGtiZD5tc3NxbDwva2JkPiAtPiA8c2FtcD4xLzA8L3NhbXA+CiAgICAgKiAgICAgICAgKDxrYmQ+QklUPC9rYmQ+KQogICAgICogICAgICA8L2xpPgogICAgICogICAgICA8bGk+CiAgICAgKiAgICAgICAgPGtiZD5teXNxbDwva2JkPiAtPiA8c2FtcD4xLzA8L3NhbXA+CiAgICAgKiAgICAgICAgKDxrYmQ+VElOWUlOVCgxKTwva2JkPikKICAgICAqICAgICAgPC9saT4KICAgICAqICAgICAgPGxpPgogICAgICogICAgICAgIDxrYmQ+bXlzcWxpPC9rYmQ+IC0+IDxzYW1wPjEvMDwvc2FtcD4KICAgICAqICAgICAgICAoPGtiZD5USU5ZSU5UKDEpPC9rYmQ+KQogICAgICogICAgICA8L2xpPgogICAgICogICAgICA8bGk+CiAgICAgKiAgICAgICAgPGtiZD5vY2k4PC9rYmQ+IC0+IDxzYW1wPjEvMDwvc2FtcD4KICAgICAqICAgICAgICAoPGtiZD5OVU1CRVIoMSk8L2tiZD4pCiAgICAgKiAgICAgIDwvbGk+CiAgICAgKiAgICAgIDxsaT4KICAgICAqICAgICAgICA8a2JkPm9kYmM8L2tiZD4gLT4gPHNhbXA+MS8wPC9zYW1wPgogICAgICogICAgICAgICg8a2JkPlNNQUxMSU5UPC9rYmQ+KSBbMV0KICAgICAqICAgICAgPC9saT4KICAgICAqICAgICAgPGxpPgogICAgICogICAgICAgIDxrYmQ+cGdzcWw8L2tiZD4gLT4gPHNhbXA+VFJVRS9GQUxTRTwvc2FtcD4KICAgICAqICAgICAgICAoPGtiZD5CT09MRUFOPC9rYmQ+KQogICAgICogICAgICA8L2xpPgogICAgICogICAgICA8bGk+CiAgICAgKiAgICAgICAgPGtiZD5zcWxpdGU8L2tiZD4gLT4gPHNhbXA+MS8wPC9zYW1wPgogICAgICogICAgICAgICg8a2JkPklOVEVHRVI8L2tiZD4pCiAgICAgKiAgICAgIDwvbGk+CiAgICAgKiAgICAgIDxsaT4KICAgICAqICAgICAgICA8a2JkPnN5YmFzZTwva2JkPiAtPiA8c2FtcD4xLzA8L3NhbXA+CiAgICAgKiAgICAgICAgKDxrYmQ+VElOWUlOVCgxKTwva2JkPikKICAgICAqICAgICAgPC9saT4KICAgICAqICAgIDwvdWw+CiAgICAgKiAgICBbMV0gQWNjb21tb2RhdGUgdGhlIGxvd2VzdCBjb21tb24gZGVub21pbmF0b3IgYmVjYXVzZSBub3QgYWxsCiAgICAgKiAgICB2ZXJzaW9ucyBvZiBoYXZlIDxrYmQ+Qk9PTEVBTjwva2JkPi4KICAgICAqICA8L2xpPgogICAgICogIDxsaT4KICAgICAqICAgIG90aGVyIChpbmNsdWRpbmcgc3RyaW5ncyBhbmQgbnVtZXJpYyBzdHJpbmdzKSAtPgogICAgICogICAgdGhlIGRhdGEgd2l0aCBzaW5nbGUgcXVvdGVzIGVzY2FwZWQgYnkgcHJlY2VlZGluZwogICAgICogICAgc2luZ2xlIHF1b3RlcywgYmFja3NsYXNoZXMgYXJlIGVzY2FwZWQgYnkgcHJlY2VlZGluZwogICAgICogICAgYmFja3NsYXNoZXMsIHRoZW4gdGhlIHdob2xlIHN0cmluZyBpcyBlbmNhcHN1bGF0ZWQKICAgICAqICAgIGJldHdlZW4gc2luZ2xlIHF1b3RlcwogICAgICogIDwvbGk+CiAgICAgKiA8L3VsPgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjplc2NhcGVTaW1wbGUoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjYuMAogICAgICovCiAgICBmdW5jdGlvbiBxdW90ZVNtYXJ0KCRpbikKICAgIHsKICAgICAgICBpZiAoaXNfaW50KCRpbikpIHsKICAgICAgICAgICAgcmV0dXJuICRpbjsKICAgICAgICB9IGVsc2VpZiAoaXNfZmxvYXQoJGluKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnF1b3RlRmxvYXQoJGluKTsKICAgICAgICB9IGVsc2VpZiAoaXNfYm9vbCgkaW4pKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cXVvdGVCb29sZWFuKCRpbik7CiAgICAgICAgfSBlbHNlaWYgKGlzX251bGwoJGluKSkgewogICAgICAgICAgICByZXR1cm4gJ05VTEwnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+ZGJzeW50YXggPT0gJ2FjY2VzcycKICAgICAgICAgICAgICAgICYmIHByZWdfbWF0Y2goJy9eIy4rIyQvJywgJGluKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lc2NhcGVTaW1wbGUoJGluKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gIiciIC4gJHRoaXMtPmVzY2FwZVNpbXBsZSgkaW4pIC4gIiciOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdW90ZUJvb2xlYW4oKQoKICAgIC8qKgogICAgICogRm9ybWF0cyBhIGJvb2xlYW4gdmFsdWUgZm9yIHVzZSB3aXRoaW4gYSBxdWVyeSBpbiBhIGxvY2FsZS1pbmRlcGVuZGVudAogICAgICogbWFubmVyLgogICAgICoKICAgICAqIEBwYXJhbSBib29sZWFuIHRoZSBib29sZWFuIHZhbHVlIHRvIGJlIHF1b3RlZC4KICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBxdW90ZWQgc3RyaW5nLgogICAgICogQHNlZSBEQl9jb21tb246OnF1b3RlU21hcnQoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgcmVsZWFzZSAxLjcuOC4KICAgICAqLwogICAgZnVuY3Rpb24gcXVvdGVCb29sZWFuKCRib29sZWFuKSB7CiAgICAgICAgcmV0dXJuICRib29sZWFuID8gJzEnIDogJzAnOwogICAgfQogICAgIAogICAgLy8gfX19CiAgICAvLyB7e3sgcXVvdGVGbG9hdCgpCgogICAgLyoqCiAgICAgKiBGb3JtYXRzIGEgZmxvYXQgdmFsdWUgZm9yIHVzZSB3aXRoaW4gYSBxdWVyeSBpbiBhIGxvY2FsZS1pbmRlcGVuZGVudAogICAgICogbWFubmVyLgogICAgICoKICAgICAqIEBwYXJhbSBmbG9hdCB0aGUgZmxvYXQgdmFsdWUgdG8gYmUgcXVvdGVkLgogICAgICogQHJldHVybiBzdHJpbmcgdGhlIHF1b3RlZCBzdHJpbmcuCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6cXVvdGVTbWFydCgpCiAgICAgKiBAc2luY2UgTWV0aG9kIGF2YWlsYWJsZSBzaW5jZSByZWxlYXNlIDEuNy44LgogICAgICovCiAgICBmdW5jdGlvbiBxdW90ZUZsb2F0KCRmbG9hdCkgewogICAgICAgIHJldHVybiAiJyIuJHRoaXMtPmVzY2FwZVNpbXBsZShzdHJfcmVwbGFjZSgnLCcsICcuJywgc3RydmFsKGZsb2F0dmFsKCRmbG9hdCkpKSkuIiciOwogICAgfQogICAgIAogICAgLy8gfX19CiAgICAvLyB7e3sgZXNjYXBlU2ltcGxlKCkKCiAgICAvKioKICAgICAqIEVzY2FwZXMgYSBzdHJpbmcgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IERCTVMncyBzdGFuZGFyZHMKICAgICAqCiAgICAgKiBJbiBTUUxpdGUsIHRoaXMgbWFrZXMgdGhpbmdzIHNhZmUgZm9yIGluc2VydHMvdXBkYXRlcywgYnV0IG1heQogICAgICogY2F1c2UgcHJvYmxlbXMgd2hlbiBwZXJmb3JtaW5nIHRleHQgY29tcGFyaXNvbnMgYWdhaW5zdCBjb2x1bW5zCiAgICAgKiBjb250YWluaW5nIGJpbmFyeSBkYXRhLiBTZWUgdGhlCiAgICAgKiB7QGxpbmsgaHR0cDovL3BocC5uZXQvc3FsaXRlX2VzY2FwZV9zdHJpbmcgUEhQIG1hbnVhbH0gZm9yIG1vcmUgaW5mby4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIgIHRoZSBzdHJpbmcgdG8gYmUgZXNjYXBlZAogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgZXNjYXBlZCBzdHJpbmcKICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6cXVvdGVTbWFydCgpCiAgICAgKiBAc2luY2UgTWV0aG9kIGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNi4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVzY2FwZVNpbXBsZSgkc3RyKQogICAgewogICAgICAgIHJldHVybiBzdHJfcmVwbGFjZSgiJyIsICInJyIsICRzdHIpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHByb3ZpZGVzKCkKCiAgICAvKioKICAgICAqIFRlbGxzIHdoZXRoZXIgdGhlIHByZXNlbnQgZHJpdmVyIHN1cHBvcnRzIGEgZ2l2ZW4gZmVhdHVyZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGZlYXR1cmUgIHRoZSBmZWF0dXJlIHlvdSdyZSBjdXJpb3VzIGFib3V0CiAgICAgKgogICAgICogQHJldHVybiBib29sICB3aGV0aGVyIHRoaXMgZHJpdmVyIHN1cHBvcnRzICRmZWF0dXJlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHByb3ZpZGVzKCRmZWF0dXJlKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+ZmVhdHVyZXNbJGZlYXR1cmVdOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHNldEZldGNoTW9kZSgpCgogICAgLyoqCiAgICAgKiBTZXRzIHRoZSBmZXRjaCBtb2RlIHRoYXQgc2hvdWxkIGJlIHVzZWQgYnkgZGVmYXVsdCBmb3IgcXVlcnkgcmVzdWx0cwogICAgICoKICAgICAqIEBwYXJhbSBpbnRlZ2VyICRmZXRjaG1vZGUgICAgREJfRkVUQ0hNT0RFX09SREVSRUQsIERCX0ZFVENITU9ERV9BU1NPQwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3IgREJfRkVUQ0hNT0RFX09CSkVDVAogICAgICogQHBhcmFtIHN0cmluZyAkb2JqZWN0X2NsYXNzICB0aGUgY2xhc3MgbmFtZSBvZiB0aGUgb2JqZWN0IHRvIGJlIHJldHVybmVkCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBieSB0aGUgZmV0Y2ggbWV0aG9kcyB3aGVuIHRoZQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJfRkVUQ0hNT0RFX09CSkVDVCBtb2RlIGlzIHNlbGVjdGVkLgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSWYgbm8gY2xhc3MgaXMgc3BlY2lmaWVkIGJ5IGRlZmF1bHQgYSBjYXN0CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0byBvYmplY3QgZnJvbSB0aGUgYXNzb2MgYXJyYXkgcm93IHdpbGwgYmUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvbmUuICBUaGVyZSBpcyBhbHNvIHRoZSBwb3NpYmlsaXR5IHRvIHVzZQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIGV4dGVuZCB0aGUgJ0RCX3JvdycgY2xhc3MuCiAgICAgKgogICAgICogQHNlZSBEQl9GRVRDSE1PREVfT1JERVJFRCwgREJfRkVUQ0hNT0RFX0FTU09DLCBEQl9GRVRDSE1PREVfT0JKRUNUCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldEZldGNoTW9kZSgkZmV0Y2htb2RlLCAkb2JqZWN0X2NsYXNzID0gJ3N0ZENsYXNzJykKICAgIHsKICAgICAgICBzd2l0Y2ggKCRmZXRjaG1vZGUpIHsKICAgICAgICAgICAgY2FzZSBEQl9GRVRDSE1PREVfT0JKRUNUOgogICAgICAgICAgICAgICAgJHRoaXMtPmZldGNobW9kZV9vYmplY3RfY2xhc3MgPSAkb2JqZWN0X2NsYXNzOwogICAgICAgICAgICBjYXNlIERCX0ZFVENITU9ERV9PUkRFUkVEOgogICAgICAgICAgICBjYXNlIERCX0ZFVENITU9ERV9BU1NPQzoKICAgICAgICAgICAgICAgICR0aGlzLT5mZXRjaG1vZGUgPSAkZmV0Y2htb2RlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJ2ludmFsaWQgZmV0Y2htb2RlIG1vZGUnKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgc2V0T3B0aW9uKCkKCiAgICAvKioKICAgICAqIFNldHMgcnVuLXRpbWUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBQRUFSIERCCiAgICAgKgogICAgICogT3B0aW9ucywgdGhlaXIgZGF0YSB0eXBlcywgZGVmYXVsdCB2YWx1ZXMgYW5kIGRlc2NyaXB0aW9uOgogICAgICogPHVsPgogICAgICogPGxpPgogICAgICogPHZhcj5hdXRvZnJlZTwvdmFyPiA8a2JkPmJvb2xlYW48L2tiZD4gPSA8c2FtcD5mYWxzZTwvc2FtcD4KICAgICAqICAgICAgPGJyIC8+c2hvdWxkIHJlc3VsdHMgYmUgZnJlZWQgYXV0b21hdGljYWxseSB3aGVuIHRoZXJlIGFyZSBubwogICAgICogICAgICAgICAgICBtb3JlIHJvd3M/CiAgICAgKiA8L2xpPjxsaT4KICAgICAqIDx2YXI+cmVzdWx0X2J1ZmZlcmluZzwvdmFyPiA8a2JkPmludGVnZXI8L2tiZD4gPSA8c2FtcD41MDA8L3NhbXA+CiAgICAgKiAgICAgIDxiciAvPmhvdyBtYW55IHJvd3Mgb2YgdGhlIHJlc3VsdCBzZXQgc2hvdWxkIGJlIGJ1ZmZlcmVkPwogICAgICogICAgICA8YnIgLz5JbiBteXNxbDogbXlzcWxfdW5idWZmZXJlZF9xdWVyeSgpIGlzIHVzZWQgaW5zdGVhZCBvZgogICAgICogICAgICAgICAgICBteXNxbF9xdWVyeSgpIGlmIHRoaXMgdmFsdWUgaXMgMC4gIChSZWxlYXNlIDEuNy4wKQogICAgICogICAgICA8YnIgLz5JbiBvY2k4OiB0aGlzIHZhbHVlIGlzIHBhc3NlZCB0byBvY2lzZXRwcmVmZXRjaCgpLgogICAgICogICAgICAgICAgICAoUmVsZWFzZSAxLjcuMCkKICAgICAqIDwvbGk+PGxpPgogICAgICogPHZhcj5kZWJ1ZzwvdmFyPiA8a2JkPmludGVnZXI8L2tiZD4gPSA8c2FtcD4wPC9zYW1wPgogICAgICogICAgICA8YnIgLz5kZWJ1ZyBsZXZlbAogICAgICogPC9saT48bGk+CiAgICAgKiA8dmFyPnBlcnNpc3RlbnQ8L3Zhcj4gPGtiZD5ib29sZWFuPC9rYmQ+ID0gPHNhbXA+ZmFsc2U8L3NhbXA+CiAgICAgKiAgICAgIDxiciAvPnNob3VsZCB0aGUgY29ubmVjdGlvbiBiZSBwZXJzaXN0ZW50PwogICAgICogPC9saT48bGk+CiAgICAgKiA8dmFyPnBvcnRhYmlsaXR5PC92YXI+IDxrYmQ+aW50ZWdlcjwva2JkPiA9IDxzYW1wPkRCX1BPUlRBQklMSVRZX05PTkU8L3NhbXA+CiAgICAgKiAgICAgIDxiciAvPnBvcnRhYmlsaXR5IG1vZGUgY29uc3RhbnQgKHNlZSBiZWxvdykKICAgICAqIDwvbGk+PGxpPgogICAgICogPHZhcj5zZXFuYW1lX2Zvcm1hdDwvdmFyPiA8a2JkPnN0cmluZzwva2JkPiA9IDxzYW1wPiVzX3NlcTwvc2FtcD4KICAgICAqICAgICAgPGJyIC8+dGhlIHNwcmludGYoKSBmb3JtYXQgc3RyaW5nIHVzZWQgb24gc2VxdWVuY2UgbmFtZXMuICBUaGlzCiAgICAgKiAgICAgICAgICAgIGZvcm1hdCBpcyBhcHBsaWVkIHRvIHNlcXVlbmNlIG5hbWVzIHBhc3NlZCB0bwogICAgICogICAgICAgICAgICBjcmVhdGVTZXF1ZW5jZSgpLCBuZXh0SUQoKSBhbmQgZHJvcFNlcXVlbmNlKCkuCiAgICAgKiA8L2xpPjxsaT4KICAgICAqIDx2YXI+c3NsPC92YXI+IDxrYmQ+Ym9vbGVhbjwva2JkPiA9IDxzYW1wPmZhbHNlPC9zYW1wPgogICAgICogICAgICA8YnIgLz51c2Ugc3NsIHRvIGNvbm5lY3Q/CiAgICAgKiA8L2xpPgogICAgICogPC91bD4KICAgICAqCiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICoKICAgICAqIFBPUlRBQklMSVRZIE1PREVTCiAgICAgKgogICAgICogVGhlc2UgbW9kZXMgYXJlIGJpdHdpc2VkLCBzbyB0aGV5IGNhbiBiZSBjb21iaW5lZCB1c2luZyA8a2JkPnw8L2tiZD4KICAgICAqIGFuZCByZW1vdmVkIHVzaW5nIDxrYmQ+Xjwva2JkPi4gIFNlZSB0aGUgZXhhbXBsZXMgc2VjdGlvbiBiZWxvdyBvbiBob3cKICAgICAqIHRvIGRvIHRoaXMuCiAgICAgKgogICAgICogPHNhbXA+REJfUE9SVEFCSUxJVFlfTk9ORTwvc2FtcD4KICAgICAqIHR1cm4gb2ZmIGFsbCBwb3J0YWJpbGl0eSBmZWF0dXJlcwogICAgICoKICAgICAqIFRoaXMgbW9kZSBnZXRzIGF1dG9tYXRpY2FsbHkgdHVybmVkIG9uIGlmIHRoZSBkZXByZWNhdGVkCiAgICAgKiA8dmFyPm9wdGltaXplPC92YXI+IG9wdGlvbiBnZXRzIHNldCB0byA8c2FtcD5wZXJmb3JtYW5jZTwvc2FtcD4uCiAgICAgKgogICAgICoKICAgICAqIDxzYW1wPkRCX1BPUlRBQklMSVRZX0xPV0VSQ0FTRTwvc2FtcD4KICAgICAqIGNvbnZlcnQgbmFtZXMgb2YgdGFibGVzIGFuZCBmaWVsZHMgdG8gbG93ZXIgY2FzZSB3aGVuIHVzaW5nCiAgICAgKiA8a2JkPmdldCooKTwva2JkPiwgPGtiZD5mZXRjaCooKTwva2JkPiBhbmQgPGtiZD50YWJsZUluZm8oKTwva2JkPgogICAgICoKICAgICAqIFRoaXMgbW9kZSBnZXRzIGF1dG9tYXRpY2FsbHkgdHVybmVkIG9uIGluIHRoZSBmb2xsb3dpbmcgZGF0YWJhc2VzCiAgICAgKiBpZiB0aGUgZGVwcmVjYXRlZCBvcHRpb24gPHZhcj5vcHRpbWl6ZTwvdmFyPiBnZXRzIHNldCB0bwogICAgICogPHNhbXA+cG9ydGFiaWxpdHk8L3NhbXA+OgogICAgICogKyBvY2k4CiAgICAgKgogICAgICoKICAgICAqIDxzYW1wPkRCX1BPUlRBQklMSVRZX1JUUklNPC9zYW1wPgogICAgICogcmlnaHQgdHJpbSB0aGUgZGF0YSBvdXRwdXQgYnkgPGtiZD5nZXQqKCk8L2tiZD4gPGtiZD5mZXRjaCooKTwva2JkPgogICAgICoKICAgICAqCiAgICAgKiA8c2FtcD5EQl9QT1JUQUJJTElUWV9ERUxFVEVfQ09VTlQ8L3NhbXA+CiAgICAgKiBmb3JjZSByZXBvcnRpbmcgdGhlIG51bWJlciBvZiByb3dzIGRlbGV0ZWQKICAgICAqCiAgICAgKiBTb21lIERCTVMncyBkb24ndCBjb3VudCB0aGUgbnVtYmVyIG9mIHJvd3MgZGVsZXRlZCB3aGVuIHBlcmZvcm1pbmcKICAgICAqIHNpbXBsZSA8a2JkPkRFTEVURSBGUk9NIHRhYmxlbmFtZTwva2JkPiBxdWVyaWVzLiAgVGhpcyBwb3J0YWJpbGl0eQogICAgICogbW9kZSB0cmlja3Mgc3VjaCBEQk1TJ3MgaW50byB0ZWxsaW5nIHRoZSBjb3VudCBieSBhZGRpbmcKICAgICAqIDxzYW1wPldIRVJFIDE9MTwvc2FtcD4gdG8gdGhlIGVuZCBvZiA8a2JkPkRFTEVURTwva2JkPiBxdWVyaWVzLgogICAgICoKICAgICAqIFRoaXMgbW9kZSBnZXRzIGF1dG9tYXRpY2FsbHkgdHVybmVkIG9uIGluIHRoZSBmb2xsb3dpbmcgZGF0YWJhc2VzCiAgICAgKiBpZiB0aGUgZGVwcmVjYXRlZCBvcHRpb24gPHZhcj5vcHRpbWl6ZTwvdmFyPiBnZXRzIHNldCB0bwogICAgICogPHNhbXA+cG9ydGFiaWxpdHk8L3NhbXA+OgogICAgICogKyBmYnNxbAogICAgICogKyBteXNxbAogICAgICogKyBteXNxbGkKICAgICAqICsgc3FsaXRlCiAgICAgKgogICAgICoKICAgICAqIDxzYW1wPkRCX1BPUlRBQklMSVRZX05VTVJPV1M8L3NhbXA+CiAgICAgKiBlbmFibGUgaGFjayB0aGF0IG1ha2VzIDxrYmQ+bnVtUm93cygpPC9rYmQ+IHdvcmsgaW4gT3JhY2xlCiAgICAgKgogICAgICogVGhpcyBtb2RlIGdldHMgYXV0b21hdGljYWxseSB0dXJuZWQgb24gaW4gdGhlIGZvbGxvd2luZyBkYXRhYmFzZXMKICAgICAqIGlmIHRoZSBkZXByZWNhdGVkIG9wdGlvbiA8dmFyPm9wdGltaXplPC92YXI+IGdldHMgc2V0IHRvCiAgICAgKiA8c2FtcD5wb3J0YWJpbGl0eTwvc2FtcD46CiAgICAgKiArIG9jaTgKICAgICAqCiAgICAgKgogICAgICogPHNhbXA+REJfUE9SVEFCSUxJVFlfRVJST1JTPC9zYW1wPgogICAgICogbWFrZXMgY2VydGFpbiBlcnJvciBtZXNzYWdlcyBpbiBjZXJ0YWluIGRyaXZlcnMgY29tcGF0aWJsZQogICAgICogd2l0aCB0aG9zZSBmcm9tIG90aGVyIERCTVMncwogICAgICoKICAgICAqICsgbXlzcWwsIG15c3FsaTogIGNoYW5nZSB1bmlxdWUvcHJpbWFyeSBrZXkgY29uc3RyYWludHMKICAgICAqICAgREJfRVJST1JfQUxSRUFEWV9FWElTVFMgLT4gREJfRVJST1JfQ09OU1RSQUlOVAogICAgICoKICAgICAqICsgb2RiYyhhY2Nlc3MpOiAgTVMncyBPREJDIGRyaXZlciByZXBvcnRzICdubyBzdWNoIGZpZWxkJyBhcyBjb2RlCiAgICAgKiAgIDA3MDAxLCB3aGljaCBtZWFucyAndG9vIGZldyBwYXJhbWV0ZXJzLicgIFdoZW4gdGhpcyBvcHRpb24gaXMgb24KICAgICAqICAgdGhhdCBjb2RlIGdldHMgbWFwcGVkIHRvIERCX0VSUk9SX05PU1VDSEZJRUxELgogICAgICogICBEQl9FUlJPUl9NSVNNQVRDSCAtPiBEQl9FUlJPUl9OT1NVQ0hGSUVMRAogICAgICoKICAgICAqIDxzYW1wPkRCX1BPUlRBQklMSVRZX05VTExfVE9fRU1QVFk8L3NhbXA+CiAgICAgKiBjb252ZXJ0IG51bGwgdmFsdWVzIHRvIGVtcHR5IHN0cmluZ3MgaW4gZGF0YSBvdXRwdXQgYnkgZ2V0KigpIGFuZAogICAgICogZmV0Y2gqKCkuICBOZWVkZWQgYmVjYXVzZSBPcmFjbGUgY29uc2lkZXJzIGVtcHR5IHN0cmluZ3MgdG8gYmUgbnVsbCwKICAgICAqIHdoaWxlIG1vc3Qgb3RoZXIgREJNUydzIGtub3cgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiBlbXB0eSBhbmQgbnVsbC4KICAgICAqCiAgICAgKgogICAgICogPHNhbXA+REJfUE9SVEFCSUxJVFlfQUxMPC9zYW1wPgogICAgICogdHVybiBvbiBhbGwgcG9ydGFiaWxpdHkgZmVhdHVyZXMKICAgICAqCiAgICAgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgICoKICAgICAqIEV4YW1wbGUgMS4gU2ltcGxlIHNldE9wdGlvbigpIGV4YW1wbGUKICAgICAqIDxjb2RlPgogICAgICogJGRiLT5zZXRPcHRpb24oJ2F1dG9mcmVlJywgdHJ1ZSk7CiAgICAgKiA8L2NvZGU+CiAgICAgKgogICAgICogRXhhbXBsZSAyLiBQb3J0YWJpbGl0eSBmb3IgbG93ZXJjYXNpbmcgYW5kIHRyaW1taW5nCiAgICAgKiA8Y29kZT4KICAgICAqICRkYi0+c2V0T3B0aW9uKCdwb3J0YWJpbGl0eScsCiAgICAgKiAgICAgICAgICAgICAgICAgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFIHwgREJfUE9SVEFCSUxJVFlfUlRSSU0pOwogICAgICogPC9jb2RlPgogICAgICoKICAgICAqIEV4YW1wbGUgMy4gQWxsIHBvcnRhYmlsaXR5IG9wdGlvbnMgZXhjZXB0IHRyaW1taW5nCiAgICAgKiA8Y29kZT4KICAgICAqICRkYi0+c2V0T3B0aW9uKCdwb3J0YWJpbGl0eScsCiAgICAgKiAgICAgICAgICAgICAgICAgREJfUE9SVEFCSUxJVFlfQUxMIF4gREJfUE9SVEFCSUxJVFlfUlRSSU0pOwogICAgICogPC9jb2RlPgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG9wdGlvbiBvcHRpb24gbmFtZQogICAgICogQHBhcmFtIG1peGVkICAkdmFsdWUgdmFsdWUgZm9yIHRoZSBvcHRpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OiRvcHRpb25zCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNldE9wdGlvbigkb3B0aW9uLCAkdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5vcHRpb25zWyRvcHRpb25dKSkgewogICAgICAgICAgICAkdGhpcy0+b3B0aW9uc1skb3B0aW9uXSA9ICR2YWx1ZTsKCiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGNoZWNrIGZvciB0aGUgZGVwcmVjYXRlZCAnb3B0aW1pemUnCiAgICAgICAgICAgICAqIG9wdGlvbi4gIERvbmUgaGVyZSBpbiBjYXNlIHNldHRpbmdzIGNoYW5nZSBhZnRlciBjb25uZWN0aW5nLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgaWYgKCRvcHRpb24gPT0gJ29wdGltaXplJykgewogICAgICAgICAgICAgICAgaWYgKCR2YWx1ZSA9PSAncG9ydGFiaWxpdHknKSB7CiAgICAgICAgICAgICAgICAgICAgc3dpdGNoICgkdGhpcy0+cGhwdHlwZSkgewogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdvY2k4JzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFIHwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJfUE9SVEFCSUxJVFlfTlVNUk9XUzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdmYnNxbCc6CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ215c3FsJzoKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnbXlzcWxpJzoKICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnc3FsaXRlJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgREJfUE9SVEFCSUxJVFlfREVMRVRFX0NPVU5UOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSA9IERCX1BPUlRBQklMSVRZX05PTkU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBEQl9PSzsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCJ1bmtub3duIG9wdGlvbiAkb3B0aW9uIik7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0T3B0aW9uKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG9wdGlvbiAgdGhlIG9wdGlvbiBuYW1lIHlvdSdyZSBjdXJpb3VzIGFib3V0CiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgdGhlIG9wdGlvbidzIHZhbHVlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldE9wdGlvbigkb3B0aW9uKQogICAgewogICAgICAgIGlmIChpc3NldCgkdGhpcy0+b3B0aW9uc1skb3B0aW9uXSkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5vcHRpb25zWyRvcHRpb25dOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoInVua25vd24gb3B0aW9uICRvcHRpb24iKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBwcmVwYXJlKCkKCiAgICAvKioKICAgICAqIFByZXBhcmVzIGEgcXVlcnkgZm9yIG11bHRpcGxlIGV4ZWN1dGlvbiB3aXRoIGV4ZWN1dGUoKQogICAgICoKICAgICAqIENyZWF0ZXMgYSBxdWVyeSB0aGF0IGNhbiBiZSBydW4gbXVsdGlwbGUgdGltZXMuICBFYWNoIHRpbWUgaXQgaXMgcnVuLAogICAgICogdGhlIHBsYWNlaG9sZGVycywgaWYgYW55LCB3aWxsIGJlIHJlcGxhY2VkIGJ5IHRoZSBjb250ZW50cyBvZgogICAgICogZXhlY3V0ZSgpJ3MgJGRhdGEgYXJndW1lbnQuCiAgICAgKgogICAgICogVGhyZWUgdHlwZXMgb2YgcGxhY2Vob2xkZXJzIGNhbiBiZSB1c2VkOgogICAgICogICArIDxrYmQ+Pzwva2JkPiAgc2NhbGFyIHZhbHVlIChpLmUuIHN0cmluZ3MsIGludGVnZXJzKS4gIFRoZSBzeXN0ZW0KICAgICAqICAgICAgICAgICAgICAgICAgIHdpbGwgYXV0b21hdGljYWxseSBxdW90ZSBhbmQgZXNjYXBlIHRoZSBkYXRhLgogICAgICogICArIDxrYmQ+ITwva2JkPiAgdmFsdWUgaXMgaW5zZXJ0ZWQgJ2FzIGlzJwogICAgICogICArIDxrYmQ+Jjwva2JkPiAgcmVxdWlyZXMgYSBmaWxlIG5hbWUuICBUaGUgZmlsZSdzIGNvbnRlbnRzIGdldAogICAgICogICAgICAgICAgICAgICAgICAgaW5zZXJ0ZWQgaW50byB0aGUgcXVlcnkgKGkuZS4gc2F2aW5nIGJpbmFyeQogICAgICogICAgICAgICAgICAgICAgICAgZGF0YSBpbiBhIGRiKQogICAgICoKICAgICAqIEV4YW1wbGUgMS4KICAgICAqIDxjb2RlPgogICAgICogJHN0aCA9ICRkYi0+cHJlcGFyZSgnSU5TRVJUIElOVE8gdGJsIChhLCBiLCBjKSBWQUxVRVMgKD8sICEsICYpJyk7CiAgICAgKiAkZGF0YSA9IGFycmF5KAogICAgICogICAgICJKb2huJ3MgdGV4dCIsCiAgICAgKiAgICAgIidpdCcncyBnb29kJyIsCiAgICAgKiAgICAgJ2ZpbGVuYW1lLnR4dCcKICAgICAqICk7CiAgICAgKiAkcmVzID0gJGRiLT5leGVjdXRlKCRzdGgsICRkYXRhKTsKICAgICAqIDwvY29kZT4KICAgICAqCiAgICAgKiBVc2UgYmFja3NsYXNoZXMgdG8gZXNjYXBlIHBsYWNlaG9sZGVyIGNoYXJhY3RlcnMgaWYgeW91IGRvbid0IHdhbnQKICAgICAqIHRoZW0gdG8gYmUgaW50ZXJwcmV0ZWQgYXMgcGxhY2Vob2xkZXJzOgogICAgICogPHByZT4KICAgICAqICAgICJVUERBVEUgZm9vIFNFVCBjb2w9PyBXSEVSRSBjb2w9J292ZXIgXCYgdW5kZXInIgogICAgICogPC9wcmU+CiAgICAgKgogICAgICogV2l0aCBzb21lIGRhdGFiYXNlIGJhY2tlbmRzLCB0aGlzIGlzIGVtdWxhdGVkLgogICAgICoKICAgICAqIHtAaW50ZXJuYWwgaWJhc2UgYW5kIG9jaTggaGF2ZSB0aGVpciBvd24gcHJlcGFyZSgpIG1ldGhvZHMufX0KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSAgdGhlIHF1ZXJ5IHRvIGJlIHByZXBhcmVkCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgREIgc3RhdGVtZW50IHJlc291cmNlIG9uIHN1Y2Nlc3MuIEEgREJfRXJyb3Igb2JqZWN0CiAgICAgKiAgICAgICAgICAgICAgICAgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6ZXhlY3V0ZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIHByZXBhcmUoJHF1ZXJ5KQogICAgewogICAgICAgICR0b2tlbnMgICA9IHByZWdfc3BsaXQoJy8oKD88IVxcXClbJj8hXSkvJywgJHF1ZXJ5LCAtMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBSRUdfU1BMSVRfREVMSU1fQ0FQVFVSRSk7CiAgICAgICAgJHRva2VuICAgICA9IDA7CiAgICAgICAgJHR5cGVzICAgICA9IGFycmF5KCk7CiAgICAgICAgJG5ld3Rva2VucyA9IGFycmF5KCk7CgogICAgICAgIGZvcmVhY2ggKCR0b2tlbnMgYXMgJHZhbCkgewogICAgICAgICAgICBzd2l0Y2ggKCR2YWwpIHsKICAgICAgICAgICAgICAgIGNhc2UgJz8nOgogICAgICAgICAgICAgICAgICAgICR0eXBlc1skdG9rZW4rK10gPSBEQl9QQVJBTV9TQ0FMQVI7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICcmJzoKICAgICAgICAgICAgICAgICAgICAkdHlwZXNbJHRva2VuKytdID0gREJfUEFSQU1fT1BBUVVFOwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgY2FzZSAnISc6CiAgICAgICAgICAgICAgICAgICAgJHR5cGVzWyR0b2tlbisrXSA9IERCX1BBUkFNX01JU0M7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICRuZXd0b2tlbnNbXSA9IHByZWdfcmVwbGFjZSgnL1xcXChbJj8hXSkvJywgIlxcMSIsICR2YWwpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+cHJlcGFyZV90b2tlbnNbXSA9ICYkbmV3dG9rZW5zOwogICAgICAgIGVuZCgkdGhpcy0+cHJlcGFyZV90b2tlbnMpOwoKICAgICAgICAkayA9IGtleSgkdGhpcy0+cHJlcGFyZV90b2tlbnMpOwogICAgICAgICR0aGlzLT5wcmVwYXJlX3R5cGVzWyRrXSA9ICR0eXBlczsKICAgICAgICAkdGhpcy0+cHJlcGFyZWRfcXVlcmllc1ska10gPSBpbXBsb2RlKCcgJywgJG5ld3Rva2Vucyk7CgogICAgICAgIHJldHVybiAkazsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBhdXRvUHJlcGFyZSgpCgogICAgLyoqCiAgICAgKiBBdXRvbWF0aWNhbHkgZ2VuZXJhdGVzIGFuIGluc2VydCBvciB1cGRhdGUgcXVlcnkgYW5kIHBhc3MgaXQgdG8gcHJlcGFyZSgpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdGFibGUgICAgICAgICB0aGUgdGFibGUgbmFtZQogICAgICogQHBhcmFtIGFycmF5ICAkdGFibGVfZmllbGRzICB0aGUgYXJyYXkgb2YgZmllbGQgbmFtZXMKICAgICAqIEBwYXJhbSBpbnQgICAgJG1vZGUgICAgICAgICAgYSB0eXBlIG9mIHF1ZXJ5IHRvIG1ha2U6CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQl9BVVRPUVVFUllfSU5TRVJUIG9yIERCX0FVVE9RVUVSWV9VUERBVEUKICAgICAqIEBwYXJhbSBzdHJpbmcgJHdoZXJlICAgICAgICAgZm9yIHVwZGF0ZSBxdWVyaWVzOiB0aGUgV0hFUkUgY2xhdXNlIHRvCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdG8gdGhlIFNRTCBzdGF0ZW1lbnQuICBEb24ndAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSB0aGUgIldIRVJFIiBrZXl3b3JkLgogICAgICoKICAgICAqIEByZXR1cm4gcmVzb3VyY2UgIHRoZSBxdWVyeSBoYW5kbGUKICAgICAqCiAgICAgKiBAdXNlcyBEQl9jb21tb246OnByZXBhcmUoKSwgREJfY29tbW9uOjpidWlsZE1hbmlwU1FMKCkKICAgICAqLwogICAgZnVuY3Rpb24gYXV0b1ByZXBhcmUoJHRhYmxlLCAkdGFibGVfZmllbGRzLCAkbW9kZSA9IERCX0FVVE9RVUVSWV9JTlNFUlQsCiAgICAgICAgICAgICAgICAgICAgICAgICAkd2hlcmUgPSBmYWxzZSkKICAgIHsKICAgICAgICAkcXVlcnkgPSAkdGhpcy0+YnVpbGRNYW5pcFNRTCgkdGFibGUsICR0YWJsZV9maWVsZHMsICRtb2RlLCAkd2hlcmUpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcXVlcnkpKSB7CiAgICAgICAgICAgIHJldHVybiAkcXVlcnk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+cHJlcGFyZSgkcXVlcnkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGF1dG9FeGVjdXRlKCkKCiAgICAvKioKICAgICAqIEF1dG9tYXRpY2FseSBnZW5lcmF0ZXMgYW4gaW5zZXJ0IG9yIHVwZGF0ZSBxdWVyeSBhbmQgY2FsbCBwcmVwYXJlKCkKICAgICAqIGFuZCBleGVjdXRlKCkgd2l0aCBpdAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRhYmxlICAgICAgICAgdGhlIHRhYmxlIG5hbWUKICAgICAqIEBwYXJhbSBhcnJheSAgJGZpZWxkc192YWx1ZXMgdGhlIGFzc29jaWF0aXZlIGFycmF5IHdoZXJlICRrZXkgaXMgYQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQgbmFtZSBhbmQgJHZhbHVlIGl0cyB2YWx1ZQogICAgICogQHBhcmFtIGludCAgICAkbW9kZSAgICAgICAgICBhIHR5cGUgb2YgcXVlcnkgdG8gbWFrZToKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIERCX0FVVE9RVUVSWV9JTlNFUlQgb3IgREJfQVVUT1FVRVJZX1VQREFURQogICAgICogQHBhcmFtIHN0cmluZyAkd2hlcmUgICAgICAgICBmb3IgdXBkYXRlIHF1ZXJpZXM6IHRoZSBXSEVSRSBjbGF1c2UgdG8KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCB0byB0aGUgU1FMIHN0YXRlbWVudC4gIERvbid0CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlIHRoZSAiV0hFUkUiIGtleXdvcmQuCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgYSBuZXcgREJfcmVzdWx0IG9iamVjdCBmb3Igc3VjY2Vzc2Z1bCBTRUxFQ1QgcXVlcmllcwogICAgICogICAgICAgICAgICAgICAgIG9yIERCX09LIGZvciBzdWNjZXNzdWwgZGF0YSBtYW5pcHVsYXRpb24gcXVlcmllcy4KICAgICAqICAgICAgICAgICAgICAgICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEB1c2VzIERCX2NvbW1vbjo6YXV0b1ByZXBhcmUoKSwgREJfY29tbW9uOjpleGVjdXRlKCkKICAgICAqLwogICAgZnVuY3Rpb24gYXV0b0V4ZWN1dGUoJHRhYmxlLCAkZmllbGRzX3ZhbHVlcywgJG1vZGUgPSBEQl9BVVRPUVVFUllfSU5TRVJULAogICAgICAgICAgICAgICAgICAgICAgICAgJHdoZXJlID0gZmFsc2UpCiAgICB7CiAgICAgICAgJHN0aCA9ICR0aGlzLT5hdXRvUHJlcGFyZSgkdGFibGUsIGFycmF5X2tleXMoJGZpZWxkc192YWx1ZXMpLCAkbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGVyZSk7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRzdGgpKSB7CiAgICAgICAgICAgIHJldHVybiAkc3RoOwogICAgICAgIH0KICAgICAgICAkcmV0ID0mICR0aGlzLT5leGVjdXRlKCRzdGgsIGFycmF5X3ZhbHVlcygkZmllbGRzX3ZhbHVlcykpOwogICAgICAgICR0aGlzLT5mcmVlUHJlcGFyZWQoJHN0aCk7CiAgICAgICAgcmV0dXJuICRyZXQ7CgogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGJ1aWxkTWFuaXBTUUwoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYW4gU1FMIHF1ZXJ5IHN0cmluZyBmb3IgYXV0b1ByZXBhcmUoKQogICAgICoKICAgICAqIEV4YW1wbGU6CiAgICAgKiA8cHJlPgogICAgICogYnVpbGRNYW5pcFNRTCgndGFibGVfc3FsJywgYXJyYXkoJ2ZpZWxkMScsICdmaWVsZDInLCAnZmllbGQzJyksCiAgICAgKiAgICAgICAgICAgICAgIERCX0FVVE9RVUVSWV9JTlNFUlQpOwogICAgICogPC9wcmU+CiAgICAgKgogICAgICogVGhhdCByZXR1cm5zCiAgICAgKiA8c2FtcD4KICAgICAqIElOU0VSVCBJTlRPIHRhYmxlX3NxbCAoZmllbGQxLGZpZWxkMixmaWVsZDMpIFZBTFVFUyAoPyw/LD8pCiAgICAgKiA8L3NhbXA+CiAgICAgKgogICAgICogTk9URVM6CiAgICAgKiAgIC0gVGhpcyBiZWxvbmdzIG1vcmUgdG8gYSBTUUwgQnVpbGRlciBjbGFzcywgYnV0IHRoaXMgaXMgYSBzaW1wbGUKICAgICAqICAgICBmYWNpbGl0eS4KICAgICAqICAgLSBCZSBjYXJlZnVsbCEgSWYgeW91IGRvbid0IGdpdmUgYSAkd2hlcmUgcGFyYW0gd2l0aCBhbiBVUERBVEUKICAgICAqICAgICBxdWVyeSwgYWxsIHRoZSByZWNvcmRzIG9mIHRoZSB0YWJsZSB3aWxsIGJlIHVwZGF0ZWQhCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdGFibGUgICAgICAgICB0aGUgdGFibGUgbmFtZQogICAgICogQHBhcmFtIGFycmF5ICAkdGFibGVfZmllbGRzICB0aGUgYXJyYXkgb2YgZmllbGQgbmFtZXMKICAgICAqIEBwYXJhbSBpbnQgICAgJG1vZGUgICAgICAgICAgYSB0eXBlIG9mIHF1ZXJ5IHRvIG1ha2U6CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEQl9BVVRPUVVFUllfSU5TRVJUIG9yIERCX0FVVE9RVUVSWV9VUERBVEUKICAgICAqIEBwYXJhbSBzdHJpbmcgJHdoZXJlICAgICAgICAgZm9yIHVwZGF0ZSBxdWVyaWVzOiB0aGUgV0hFUkUgY2xhdXNlIHRvCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBlbmQgdG8gdGhlIFNRTCBzdGF0ZW1lbnQuICBEb24ndAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5jbHVkZSB0aGUgIldIRVJFIiBrZXl3b3JkLgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgc3FsIHF1ZXJ5IGZvciBhdXRvUHJlcGFyZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGJ1aWxkTWFuaXBTUUwoJHRhYmxlLCAkdGFibGVfZmllbGRzLCAkbW9kZSwgJHdoZXJlID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKGNvdW50KCR0YWJsZV9maWVsZHMpID09IDApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX05FRURfTU9SRV9EQVRBKTsKICAgICAgICB9CiAgICAgICAgJGZpcnN0ID0gdHJ1ZTsKICAgICAgICBzd2l0Y2ggKCRtb2RlKSB7CiAgICAgICAgICAgIGNhc2UgREJfQVVUT1FVRVJZX0lOU0VSVDoKICAgICAgICAgICAgICAgICR2YWx1ZXMgPSAnJzsKICAgICAgICAgICAgICAgICRuYW1lcyA9ICcnOwogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHRhYmxlX2ZpZWxkcyBhcyAkdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJGZpcnN0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRmaXJzdCA9IGZhbHNlOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRuYW1lcyAuPSAnLCc7CiAgICAgICAgICAgICAgICAgICAgICAgICR2YWx1ZXMgLj0gJywnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkbmFtZXMgLj0gJHZhbHVlOwogICAgICAgICAgICAgICAgICAgICR2YWx1ZXMgLj0gJz8nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuICJJTlNFUlQgSU5UTyAkdGFibGUgKCRuYW1lcykgVkFMVUVTICgkdmFsdWVzKSI7CiAgICAgICAgICAgIGNhc2UgREJfQVVUT1FVRVJZX1VQREFURToKICAgICAgICAgICAgICAgICRzZXQgPSAnJzsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0YWJsZV9maWVsZHMgYXMgJHZhbHVlKSB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCRmaXJzdCkgewogICAgICAgICAgICAgICAgICAgICAgICAkZmlyc3QgPSBmYWxzZTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkc2V0IC49ICcsJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHNldCAuPSAiJHZhbHVlID0gPyI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkc3FsID0gIlVQREFURSAkdGFibGUgU0VUICRzZXQiOwogICAgICAgICAgICAgICAgaWYgKCR3aGVyZSkgewogICAgICAgICAgICAgICAgICAgICRzcWwgLj0gIiBXSEVSRSAkd2hlcmUiOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmV0dXJuICRzcWw7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfU1lOVEFYKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXhlY3V0ZSgpCgogICAgLyoqCiAgICAgKiBFeGVjdXRlcyBhIERCIHN0YXRlbWVudCBwcmVwYXJlZCB3aXRoIHByZXBhcmUoKQogICAgICoKICAgICAqIEV4YW1wbGUgMS4KICAgICAqIDxjb2RlPgogICAgICogJHN0aCA9ICRkYi0+cHJlcGFyZSgnSU5TRVJUIElOVE8gdGJsIChhLCBiLCBjKSBWQUxVRVMgKD8sICEsICYpJyk7CiAgICAgKiAkZGF0YSA9IGFycmF5KAogICAgICogICAgICJKb2huJ3MgdGV4dCIsCiAgICAgKiAgICAgIidpdCcncyBnb29kJyIsCiAgICAgKiAgICAgJ2ZpbGVuYW1lLnR4dCcKICAgICAqICk7CiAgICAgKiAkcmVzID0mICRkYi0+ZXhlY3V0ZSgkc3RoLCAkZGF0YSk7CiAgICAgKiA8L2NvZGU+CiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRzdG10ICBhIERCIHN0YXRlbWVudCByZXNvdXJjZSByZXR1cm5lZCBmcm9tIHByZXBhcmUoKQogICAgICogQHBhcmFtIG1peGVkICAgICRkYXRhICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICBhIG5ldyBEQl9yZXN1bHQgb2JqZWN0IGZvciBzdWNjZXNzZnVsIFNFTEVDVCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICAgb3IgREJfT0sgZm9yIHN1Y2Nlc3N1bCBkYXRhIG1hbmlwdWxhdGlvbiBxdWVyaWVzLgogICAgICogICAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICoge0BpbnRlcm5hbCBpYmFzZSBhbmQgb2NpOCBoYXZlIHRoZWlyIG93biBleGVjdXRlKCkgbWV0aG9kcy59fQogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpwcmVwYXJlKCkKICAgICAqLwogICAgZnVuY3Rpb24gJmV4ZWN1dGUoJHN0bXQsICRkYXRhID0gYXJyYXkoKSkKICAgIHsKICAgICAgICAkcmVhbHF1ZXJ5ID0gJHRoaXMtPmV4ZWN1dGVFbXVsYXRlUXVlcnkoJHN0bXQsICRkYXRhKTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlYWxxdWVyeSkpIHsKICAgICAgICAgICAgcmV0dXJuICRyZWFscXVlcnk7CiAgICAgICAgfQogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+c2ltcGxlUXVlcnkoJHJlYWxxdWVyeSk7CgogICAgICAgIGlmICgkcmVzdWx0ID09PSBEQl9PSyB8fCBEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdG1wID0mIG5ldyBEQl9yZXN1bHQoJHRoaXMsICRyZXN1bHQpOwogICAgICAgICAgICByZXR1cm4gJHRtcDsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXhlY3V0ZUVtdWxhdGVRdWVyeSgpCgogICAgLyoqCiAgICAgKiBFbXVsYXRlcyBleGVjdXRpbmcgcHJlcGFyZWQgc3RhdGVtZW50cyBpZiB0aGUgREJNUyBub3Qgc3VwcG9ydCB0aGVtCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRzdG10ICBhIERCIHN0YXRlbWVudCByZXNvdXJjZSByZXR1cm5lZCBmcm9tIGV4ZWN1dGUoKQogICAgICogQHBhcmFtIG1peGVkICAgICRkYXRhICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICBhIHN0cmluZyBjb250YWluaW5nIHRoZSByZWFsIHF1ZXJ5IHJ1biB3aGVuIGVtdWxhdGluZwogICAgICogICAgICAgICAgICAgICAgIHByZXBhcmUvZXhlY3V0ZS4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEBzZWUgREJfY29tbW9uOjpleGVjdXRlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZXhlY3V0ZUVtdWxhdGVRdWVyeSgkc3RtdCwgJGRhdGEgPSBhcnJheSgpKQogICAgewogICAgICAgICRzdG10ID0gKGludCkkc3RtdDsKICAgICAgICAkZGF0YSA9IChhcnJheSkkZGF0YTsKICAgICAgICAkdGhpcy0+bGFzdF9wYXJhbWV0ZXJzID0gJGRhdGE7CgogICAgICAgIGlmIChjb3VudCgkdGhpcy0+cHJlcGFyZV90eXBlc1skc3RtdF0pICE9IGNvdW50KCRkYXRhKSkgewogICAgICAgICAgICAkdGhpcy0+bGFzdF9xdWVyeSA9ICR0aGlzLT5wcmVwYXJlZF9xdWVyaWVzWyRzdG10XTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX01JU01BVENIKTsKICAgICAgICB9CgogICAgICAgICRyZWFscXVlcnkgPSAkdGhpcy0+cHJlcGFyZV90b2tlbnNbJHN0bXRdWzBdOwoKICAgICAgICAkaSA9IDA7CiAgICAgICAgZm9yZWFjaCAoJGRhdGEgYXMgJHZhbHVlKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+cHJlcGFyZV90eXBlc1skc3RtdF1bJGldID09IERCX1BBUkFNX1NDQUxBUikgewogICAgICAgICAgICAgICAgJHJlYWxxdWVyeSAuPSAkdGhpcy0+cXVvdGVTbWFydCgkdmFsdWUpOwogICAgICAgICAgICB9IGVsc2VpZiAoJHRoaXMtPnByZXBhcmVfdHlwZXNbJHN0bXRdWyRpXSA9PSBEQl9QQVJBTV9PUEFRVUUpIHsKICAgICAgICAgICAgICAgICRmcCA9IEBmb3BlbigkdmFsdWUsICdyYicpOwogICAgICAgICAgICAgICAgaWYgKCEkZnApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcmVhbHF1ZXJ5IC49ICR0aGlzLT5xdW90ZVNtYXJ0KGZyZWFkKCRmcCwgZmlsZXNpemUoJHZhbHVlKSkpOwogICAgICAgICAgICAgICAgZmNsb3NlKCRmcCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVhbHF1ZXJ5IC49ICR2YWx1ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJlYWxxdWVyeSAuPSAkdGhpcy0+cHJlcGFyZV90b2tlbnNbJHN0bXRdWysrJGldOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRyZWFscXVlcnk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXhlY3V0ZU11bHRpcGxlKCkKCiAgICAvKioKICAgICAqIFBlcmZvcm1zIHNldmVyYWwgZXhlY3V0ZSgpIGNhbGxzIG9uIHRoZSBzYW1lIHN0YXRlbWVudCBoYW5kbGUKICAgICAqCiAgICAgKiAkZGF0YSBtdXN0IGJlIGFuIGFycmF5IGluZGV4ZWQgbnVtZXJpY2FsbHkKICAgICAqIGZyb20gMCwgb25lIGV4ZWN1dGUgY2FsbCBpcyBkb25lIGZvciBldmVyeSAicm93IiBpbiB0aGUgYXJyYXkuCiAgICAgKgogICAgICogSWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyBleGVjdXRlKCksIGV4ZWN1dGVNdWx0aXBsZSgpIGRvZXMgbm90CiAgICAgKiBleGVjdXRlIHRoZSB1bmZpbmlzaGVkIHJvd3MsIGJ1dCByYXRoZXIgcmV0dXJucyB0aGF0IGVycm9yLgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkc3RtdCAgcXVlcnkgaGFuZGxlIGZyb20gcHJlcGFyZSgpCiAgICAgKiBAcGFyYW0gYXJyYXkgICAgJGRhdGEgIG51bWVyaWMgYXJyYXkgY29udGFpbmluZyB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEgdG8gaW5zZXJ0IGludG8gdGhlIHF1ZXJ5CiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpwcmVwYXJlKCksIERCX2NvbW1vbjo6ZXhlY3V0ZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGV4ZWN1dGVNdWx0aXBsZSgkc3RtdCwgJGRhdGEpCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJGRhdGEgYXMgJHZhbHVlKSB7CiAgICAgICAgICAgICRyZXMgPSYgJHRoaXMtPmV4ZWN1dGUoJHN0bXQsICR2YWx1ZSk7CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGZyZWVQcmVwYXJlZCgpCgogICAgLyoqCiAgICAgKiBGcmVlcyB0aGUgaW50ZXJuYWwgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIHByZXBhcmVkIHF1ZXJ5CiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRzdG10ICAgICAgICAgICB0aGUgcHJlcGFyZWQgc3RhdGVtZW50J3MgUEhQIHJlc291cmNlCiAgICAgKiBAcGFyYW0gYm9vbCAgICAgJGZyZWVfcmVzb3VyY2UgIHNob3VsZCB0aGUgUEhQIHJlc291cmNlIGJlIGZyZWVkIHRvbz8KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBmYWxzZSBpZiB5b3UgbmVlZCB0byBnZXQgZGF0YQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcmVzdWx0IHNldCBsYXRlci4KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0UgaWYgJHJlc3VsdCBpcyBpbnZhbGlkCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnByZXBhcmUoKQogICAgICovCiAgICBmdW5jdGlvbiBmcmVlUHJlcGFyZWQoJHN0bXQsICRmcmVlX3Jlc291cmNlID0gdHJ1ZSkKICAgIHsKICAgICAgICAkc3RtdCA9IChpbnQpJHN0bXQ7CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5wcmVwYXJlX3Rva2Vuc1skc3RtdF0pKSB7CiAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5wcmVwYXJlX3Rva2Vuc1skc3RtdF0pOwogICAgICAgICAgICB1bnNldCgkdGhpcy0+cHJlcGFyZV90eXBlc1skc3RtdF0pOwogICAgICAgICAgICB1bnNldCgkdGhpcy0+cHJlcGFyZWRfcXVlcmllc1skc3RtdF0pOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG1vZGlmeVF1ZXJ5KCkKCiAgICAvKioKICAgICAqIENoYW5nZXMgYSBxdWVyeSBzdHJpbmcgZm9yIHZhcmlvdXMgREJNUyBzcGVjaWZpYyByZWFzb25zCiAgICAgKgogICAgICogSXQgaXMgZGVmaW5lZCBoZXJlIHRvIGVuc3VyZSBhbGwgZHJpdmVycyBoYXZlIHRoaXMgbWV0aG9kIGF2YWlsYWJsZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSAgdGhlIHF1ZXJ5IHN0cmluZyB0byBtb2RpZnkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIG1vZGlmaWVkIHF1ZXJ5IHN0cmluZwogICAgICoKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIERCX215c3FsOjptb2RpZnlRdWVyeSgpLCBEQl9vY2k4Ojptb2RpZnlRdWVyeSgpLAogICAgICogICAgICBEQl9zcWxpdGU6Om1vZGlmeVF1ZXJ5KCkKICAgICAqLwogICAgZnVuY3Rpb24gbW9kaWZ5UXVlcnkoJHF1ZXJ5KQogICAgewogICAgICAgIHJldHVybiAkcXVlcnk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbW9kaWZ5TGltaXRRdWVyeSgpCgogICAgLyoqCiAgICAgKiBBZGRzIExJTUlUIGNsYXVzZXMgdG8gYSBxdWVyeSBzdHJpbmcgYWNjb3JkaW5nIHRvIGN1cnJlbnQgREJNUyBzdGFuZGFyZHMKICAgICAqCiAgICAgKiBJdCBpcyBkZWZpbmVkIGhlcmUgdG8gYXNzdXJlIHRoYXQgYWxsIGltcGxlbWVudGF0aW9ucwogICAgICogaGF2ZSB0aGlzIG1ldGhvZCBkZWZpbmVkLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICAgdGhlIHF1ZXJ5IHRvIG1vZGlmeQogICAgICogQHBhcmFtIGludCAgICAkZnJvbSAgICB0aGUgcm93IHRvIHN0YXJ0IHRvIGZldGNoaW5nICgwID0gdGhlIGZpcnN0IHJvdykKICAgICAqIEBwYXJhbSBpbnQgICAgJGNvdW50ICAgdGhlIG51bWJlcnMgb2Ygcm93cyB0byBmZXRjaAogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIHF1ZXJ5IHN0cmluZyB3aXRoIExJTUlUIGNsYXVzZXMgYWRkZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBmdW5jdGlvbiBtb2RpZnlMaW1pdFF1ZXJ5KCRxdWVyeSwgJGZyb20sICRjb3VudCwgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgcmV0dXJuICRxdWVyeTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdWVyeSgpCgogICAgLyoqCiAgICAgKiBTZW5kcyBhIHF1ZXJ5IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBUaGUgcXVlcnkgc3RyaW5nIGNhbiBiZSBlaXRoZXIgYSBub3JtYWwgc3RhdGVtZW50IHRvIGJlIHNlbnQgZGlyZWN0bHkKICAgICAqIHRvIHRoZSBzZXJ2ZXIgT1IgaWYgPHZhcj4kcGFyYW1zPC92YXI+IGFyZSBwYXNzZWQgdGhlIHF1ZXJ5IGNhbiBoYXZlCiAgICAgKiBwbGFjZWhvbGRlcnMgYW5kIGl0IHdpbGwgYmUgcGFzc2VkIHRocm91Z2ggcHJlcGFyZSgpIGFuZCBleGVjdXRlKCkuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcXVlcnkgICB0aGUgU1FMIHF1ZXJ5IG9yIHRoZSBzdGF0ZW1lbnQgdG8gcHJlcGFyZQogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICBhIG5ldyBEQl9yZXN1bHQgb2JqZWN0IGZvciBzdWNjZXNzZnVsIFNFTEVDVCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICAgb3IgREJfT0sgZm9yIHN1Y2Nlc3N1bCBkYXRhIG1hbmlwdWxhdGlvbiBxdWVyaWVzLgogICAgICogICAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQsIERCX2NvbW1vbjo6cHJlcGFyZSgpLCBEQl9jb21tb246OmV4ZWN1dGUoKQogICAgICovCiAgICBmdW5jdGlvbiAmcXVlcnkoJHF1ZXJ5LCAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICBpZiAoc2l6ZW9mKCRwYXJhbXMpID4gMCkgewogICAgICAgICAgICAkc3RoID0gJHRoaXMtPnByZXBhcmUoJHF1ZXJ5KTsKICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRzdGgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHN0aDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmV0ID0mICR0aGlzLT5leGVjdXRlKCRzdGgsICRwYXJhbXMpOwogICAgICAgICAgICAkdGhpcy0+ZnJlZVByZXBhcmVkKCRzdGgsIGZhbHNlKTsKICAgICAgICAgICAgcmV0dXJuICRyZXQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPmxhc3RfcGFyYW1ldGVycyA9IGFycmF5KCk7CiAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+c2ltcGxlUXVlcnkoJHF1ZXJ5KTsKICAgICAgICAgICAgaWYgKCRyZXN1bHQgPT09IERCX09LIHx8IERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICR0bXAgPSYgbmV3IERCX3Jlc3VsdCgkdGhpcywgJHJlc3VsdCk7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBsaW1pdFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIEdlbmVyYXRlcyBhbmQgZXhlY3V0ZXMgYSBMSU1JVCBxdWVyeQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICAgdGhlIHF1ZXJ5CiAgICAgKiBAcGFyYW0gaW50ciAgICRmcm9tICAgIHRoZSByb3cgdG8gc3RhcnQgdG8gZmV0Y2hpbmcgKDAgPSB0aGUgZmlyc3Qgcm93KQogICAgICogQHBhcmFtIGludCAgICAkY291bnQgICB0aGUgbnVtYmVycyBvZiByb3dzIHRvIGZldGNoCiAgICAgKiBAcGFyYW0gbWl4ZWQgICRwYXJhbXMgIGFycmF5LCBzdHJpbmcgb3IgbnVtZXJpYyBkYXRhIHRvIGJlIHVzZWQgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGlvbiBvZiB0aGUgc3RhdGVtZW50LiAgUXVhbnRpdHkgb2YgaXRlbXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZCBtdXN0IG1hdGNoIHF1YW50aXR5IG9mIHBsYWNlaG9sZGVycyBpbgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6ICBtZWFuaW5nIDEgcGxhY2Vob2xkZXIgZm9yIG5vbi1hcnJheQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycyBvciAxIHBsYWNlaG9sZGVyIHBlciBhcnJheSBlbGVtZW50LgogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIGEgbmV3IERCX3Jlc3VsdCBvYmplY3QgZm9yIHN1Y2Nlc3NmdWwgU0VMRUNUIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICBvciBEQl9PSyBmb3Igc3VjY2Vzc3VsIGRhdGEgbWFuaXB1bGF0aW9uIHF1ZXJpZXMuCiAgICAgKiAgICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gJmxpbWl0UXVlcnkoJHF1ZXJ5LCAkZnJvbSwgJGNvdW50LCAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICAkcXVlcnkgPSAkdGhpcy0+bW9kaWZ5TGltaXRRdWVyeSgkcXVlcnksICRmcm9tLCAkY291bnQsICRwYXJhbXMpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcXVlcnkpKXsKICAgICAgICAgICAgcmV0dXJuICRxdWVyeTsKICAgICAgICB9CiAgICAgICAgJHJlc3VsdCA9JiAkdGhpcy0+cXVlcnkoJHF1ZXJ5LCAkcGFyYW1zKTsKICAgICAgICBpZiAoaXNfYSgkcmVzdWx0LCAnREJfcmVzdWx0JykpIHsKICAgICAgICAgICAgJHJlc3VsdC0+c2V0T3B0aW9uKCdsaW1pdF9mcm9tJywgJGZyb20pOwogICAgICAgICAgICAkcmVzdWx0LT5zZXRPcHRpb24oJ2xpbWl0X2NvdW50JywgJGNvdW50KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0T25lKCkKCiAgICAvKioKICAgICAqIEZldGNoZXMgdGhlIGZpcnN0IGNvbHVtbiBvZiB0aGUgZmlyc3Qgcm93IGZyb20gYSBxdWVyeSByZXN1bHQKICAgICAqCiAgICAgKiBUYWtlcyBjYXJlIG9mIGRvaW5nIHRoZSBxdWVyeSBhbmQgZnJlZWluZyB0aGUgcmVzdWx0cyB3aGVuIGZpbmlzaGVkLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICAgdGhlIFNRTCBxdWVyeQogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICB0aGUgcmV0dXJuZWQgdmFsdWUgb2YgdGhlIHF1ZXJ5LgogICAgICogICAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uICZnZXRPbmUoJHF1ZXJ5LCAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICAkcGFyYW1zID0gKGFycmF5KSRwYXJhbXM7CiAgICAgICAgLy8gbW9kaWZ5TGltaXRRdWVyeSgpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IGl0IGNhdXNlcyBCQyBpc3N1ZXMKICAgICAgICBpZiAoc2l6ZW9mKCRwYXJhbXMpID4gMCkgewogICAgICAgICAgICAkc3RoID0gJHRoaXMtPnByZXBhcmUoJHF1ZXJ5KTsKICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRzdGgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHN0aDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzID0mICR0aGlzLT5leGVjdXRlKCRzdGgsICRwYXJhbXMpOwogICAgICAgICAgICAkdGhpcy0+ZnJlZVByZXBhcmVkKCRzdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRyZXMgPSYgJHRoaXMtPnF1ZXJ5KCRxdWVyeSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlcykpIHsKICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgfQoKICAgICAgICAkZXJyID0gJHJlcy0+ZmV0Y2hJbnRvKCRyb3csIERCX0ZFVENITU9ERV9PUkRFUkVEKTsKICAgICAgICAkcmVzLT5mcmVlKCk7CgogICAgICAgIGlmICgkZXJyICE9PSBEQl9PSykgewogICAgICAgICAgICByZXR1cm4gJGVycjsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkcm93WzBdOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldFJvdygpCgogICAgLyoqCiAgICAgKiBGZXRjaGVzIHRoZSBmaXJzdCByb3cgb2YgZGF0YSByZXR1cm5lZCBmcm9tIGEgcXVlcnkgcmVzdWx0CiAgICAgKgogICAgICogVGFrZXMgY2FyZSBvZiBkb2luZyB0aGUgcXVlcnkgYW5kIGZyZWVpbmcgdGhlIHJlc3VsdHMgd2hlbiBmaW5pc2hlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSAgIHRoZSBTUUwgcXVlcnkKICAgICAqIEBwYXJhbSBtaXhlZCAgJHBhcmFtcyAgYXJyYXksIHN0cmluZyBvciBudW1lcmljIGRhdGEgdG8gYmUgdXNlZCBpbgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aW9uIG9mIHRoZSBzdGF0ZW1lbnQuICBRdWFudGl0eSBvZiBpdGVtcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkIG11c3QgbWF0Y2ggcXVhbnRpdHkgb2YgcGxhY2Vob2xkZXJzIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogIG1lYW5pbmcgMSBwbGFjZWhvbGRlciBmb3Igbm9uLWFycmF5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIG9yIDEgcGxhY2Vob2xkZXIgcGVyIGFycmF5IGVsZW1lbnQuCiAgICAgKiBAcGFyYW0gaW50ICRmZXRjaG1vZGUgIHRoZSBmZXRjaCBtb2RlIHRvIHVzZQogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgIHRoZSBmaXJzdCByb3cgb2YgcmVzdWx0cyBhcyBhbiBhcnJheS4KICAgICAqICAgICAgICAgICAgICAgICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiAmZ2V0Um93KCRxdWVyeSwgJHBhcmFtcyA9IGFycmF5KCksCiAgICAgICAgICAgICAgICAgICAgICRmZXRjaG1vZGUgPSBEQl9GRVRDSE1PREVfREVGQVVMVCkKICAgIHsKICAgICAgICAvLyBjb21wYXQgY2hlY2ssIHRoZSBwYXJhbXMgYW5kIGZldGNobW9kZSBwYXJhbWV0ZXJzIHVzZWQgdG8KICAgICAgICAvLyBoYXZlIHRoZSBvcHBvc2l0ZSBvcmRlcgogICAgICAgIGlmICghaXNfYXJyYXkoJHBhcmFtcykpIHsKICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRmZXRjaG1vZGUpKSB7CiAgICAgICAgICAgICAgICBpZiAoJHBhcmFtcyA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgICAgICR0bXAgPSBEQl9GRVRDSE1PREVfREVGQVVMVDsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcCA9ICRwYXJhbXM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcGFyYW1zID0gJGZldGNobW9kZTsKICAgICAgICAgICAgICAgICRmZXRjaG1vZGUgPSAkdG1wOwogICAgICAgICAgICB9IGVsc2VpZiAoJHBhcmFtcyAhPT0gbnVsbCkgewogICAgICAgICAgICAgICAgJGZldGNobW9kZSA9ICRwYXJhbXM7CiAgICAgICAgICAgICAgICAkcGFyYW1zID0gYXJyYXkoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyBtb2RpZnlMaW1pdFF1ZXJ5KCkgd291bGQgYmUgbmljZSBoZXJlLCBidXQgaXQgY2F1c2VzIEJDIGlzc3VlcwogICAgICAgIGlmIChzaXplb2YoJHBhcmFtcykgPiAwKSB7CiAgICAgICAgICAgICRzdGggPSAkdGhpcy0+cHJlcGFyZSgkcXVlcnkpOwogICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHN0aCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkc3RoOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRyZXMgPSYgJHRoaXMtPmV4ZWN1dGUoJHN0aCwgJHBhcmFtcyk7CiAgICAgICAgICAgICR0aGlzLT5mcmVlUHJlcGFyZWQoJHN0aCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHJlcyA9JiAkdGhpcy0+cXVlcnkoJHF1ZXJ5KTsKICAgICAgICB9CgogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgICAgICAgICByZXR1cm4gJHJlczsKICAgICAgICB9CgogICAgICAgICRlcnIgPSAkcmVzLT5mZXRjaEludG8oJHJvdywgJGZldGNobW9kZSk7CgogICAgICAgICRyZXMtPmZyZWUoKTsKCiAgICAgICAgaWYgKCRlcnIgIT09IERCX09LKSB7CiAgICAgICAgICAgIHJldHVybiAkZXJyOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRyb3c7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0Q29sKCkKCiAgICAvKioKICAgICAqIEZldGNoZXMgYSBzaW5nbGUgY29sdW1uIGZyb20gYSBxdWVyeSByZXN1bHQgYW5kIHJldHVybnMgaXQgYXMgYW4KICAgICAqIGluZGV4ZWQgYXJyYXkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSAgIHRoZSBTUUwgcXVlcnkKICAgICAqIEBwYXJhbSBtaXhlZCAgJGNvbCAgICAgd2hpY2ggY29sdW1uIHRvIHJldHVybiAoaW50ZWdlciBbY29sdW1uIG51bWJlciwKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0aW5nIGF0IDBdIG9yIHN0cmluZyBbY29sdW1uIG5hbWVdKQogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICB0aGUgcmVzdWx0cyBhcyBhbiBhcnJheS4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnF1ZXJ5KCkKICAgICAqLwogICAgZnVuY3Rpb24gJmdldENvbCgkcXVlcnksICRjb2wgPSAwLCAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICAkcGFyYW1zID0gKGFycmF5KSRwYXJhbXM7CiAgICAgICAgaWYgKHNpemVvZigkcGFyYW1zKSA+IDApIHsKICAgICAgICAgICAgJHN0aCA9ICR0aGlzLT5wcmVwYXJlKCRxdWVyeSk7CgogICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHN0aCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkc3RoOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkcmVzID0mICR0aGlzLT5leGVjdXRlKCRzdGgsICRwYXJhbXMpOwogICAgICAgICAgICAkdGhpcy0+ZnJlZVByZXBhcmVkKCRzdGgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRyZXMgPSYgJHRoaXMtPnF1ZXJ5KCRxdWVyeSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlcykpIHsKICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgfQoKICAgICAgICAkZmV0Y2htb2RlID0gaXNfaW50KCRjb2wpID8gREJfRkVUQ0hNT0RFX09SREVSRUQgOiBEQl9GRVRDSE1PREVfQVNTT0M7CgogICAgICAgIGlmICghaXNfYXJyYXkoJHJvdyA9ICRyZXMtPmZldGNoUm93KCRmZXRjaG1vZGUpKSkgewogICAgICAgICAgICAkcmV0ID0gYXJyYXkoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMoJGNvbCwgJHJvdykpIHsKICAgICAgICAgICAgICAgICRyZXQgPSYgJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfTk9TVUNIRklFTEQpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHJldCA9IGFycmF5KCRyb3dbJGNvbF0pOwogICAgICAgICAgICAgICAgd2hpbGUgKGlzX2FycmF5KCRyb3cgPSAkcmVzLT5mZXRjaFJvdygkZmV0Y2htb2RlKSkpIHsKICAgICAgICAgICAgICAgICAgICAkcmV0W10gPSAkcm93WyRjb2xdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkcmVzLT5mcmVlKCk7CgogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcm93KSkgewogICAgICAgICAgICAkcmV0ID0gJHJvdzsKICAgICAgICB9CgogICAgICAgIHJldHVybiAkcmV0OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldEFzc29jKCkKCiAgICAvKioKICAgICAqIEZldGNoZXMgYW4gZW50aXJlIHF1ZXJ5IHJlc3VsdCBhbmQgcmV0dXJucyBpdCBhcyBhbgogICAgICogYXNzb2NpYXRpdmUgYXJyYXkgdXNpbmcgdGhlIGZpcnN0IGNvbHVtbiBhcyB0aGUga2V5CiAgICAgKgogICAgICogSWYgdGhlIHJlc3VsdCBzZXQgY29udGFpbnMgbW9yZSB0aGFuIHR3byBjb2x1bW5zLCB0aGUgdmFsdWUKICAgICAqIHdpbGwgYmUgYW4gYXJyYXkgb2YgdGhlIHZhbHVlcyBmcm9tIGNvbHVtbiAyLW4uICBJZiB0aGUgcmVzdWx0CiAgICAgKiBzZXQgY29udGFpbnMgb25seSB0d28gY29sdW1ucywgdGhlIHJldHVybmVkIHZhbHVlIHdpbGwgYmUgYQogICAgICogc2NhbGFyIHdpdGggdGhlIHZhbHVlIG9mIHRoZSBzZWNvbmQgY29sdW1uICh1bmxlc3MgZm9yY2VkIHRvIGFuCiAgICAgKiBhcnJheSB3aXRoIHRoZSAkZm9yY2VfYXJyYXkgcGFyYW1ldGVyKS4gIEEgREIgZXJyb3IgY29kZSBpcwogICAgICogcmV0dXJuZWQgb24gZXJyb3JzLiAgSWYgdGhlIHJlc3VsdCBzZXQgY29udGFpbnMgZmV3ZXIgdGhhbiB0d28KICAgICAqIGNvbHVtbnMsIGEgREJfRVJST1JfVFJVTkNBVEVEIGVycm9yIGlzIHJldHVybmVkLgogICAgICoKICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgdGFibGUgIm15dGFibGUiIGNvbnRhaW5zOgogICAgICoKICAgICAqIDxwcmU+CiAgICAgKiAgSUQgICAgICBURVhUICAgICAgIERBVEUKICAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgKiAgMSAgICAgICAnb25lJyAgICAgIDk0NDY3OTQwOAogICAgICogIDIgICAgICAgJ3R3bycgICAgICA5NDQ2Nzk0MDgKICAgICAqICAzICAgICAgICd0aHJlZScgICAgOTQ0Njc5NDA4CiAgICAgKiA8L3ByZT4KICAgICAqCiAgICAgKiBUaGVuIHRoZSBjYWxsIGdldEFzc29jKCdTRUxFQ1QgaWQsdGV4dCBGUk9NIG15dGFibGUnKSByZXR1cm5zOgogICAgICogPHByZT4KICAgICAqICAgYXJyYXkoCiAgICAgKiAgICAgJzEnID0+ICdvbmUnLAogICAgICogICAgICcyJyA9PiAndHdvJywKICAgICAqICAgICAnMycgPT4gJ3RocmVlJywKICAgICAqICAgKQogICAgICogPC9wcmU+CiAgICAgKgogICAgICogLi4ud2hpbGUgdGhlIGNhbGwgZ2V0QXNzb2MoJ1NFTEVDVCBpZCx0ZXh0LGRhdGUgRlJPTSBteXRhYmxlJykgcmV0dXJuczoKICAgICAqIDxwcmU+CiAgICAgKiAgIGFycmF5KAogICAgICogICAgICcxJyA9PiBhcnJheSgnb25lJywgJzk0NDY3OTQwOCcpLAogICAgICogICAgICcyJyA9PiBhcnJheSgndHdvJywgJzk0NDY3OTQwOCcpLAogICAgICogICAgICczJyA9PiBhcnJheSgndGhyZWUnLCAnOTQ0Njc5NDA4JykKICAgICAqICAgKQogICAgICogPC9wcmU+CiAgICAgKgogICAgICogSWYgdGhlIG1vcmUgdGhhbiBvbmUgcm93IG9jY3VycyB3aXRoIHRoZSBzYW1lIHZhbHVlIGluIHRoZQogICAgICogZmlyc3QgY29sdW1uLCB0aGUgbGFzdCByb3cgb3ZlcndyaXRlcyBhbGwgcHJldmlvdXMgb25lcyBieQogICAgICogZGVmYXVsdC4gIFVzZSB0aGUgJGdyb3VwIHBhcmFtZXRlciBpZiB5b3UgZG9uJ3Qgd2FudCB0bwogICAgICogb3ZlcndyaXRlIGxpa2UgdGhpcy4gIEV4YW1wbGU6CiAgICAgKgogICAgICogPHByZT4KICAgICAqIGdldEFzc29jKCdTRUxFQ1QgY2F0ZWdvcnksaWQsbmFtZSBGUk9NIG15dGFibGUnLCBmYWxzZSwgbnVsbCwKICAgICAqICAgICAgICAgIERCX0ZFVENITU9ERV9BU1NPQywgdHJ1ZSkgcmV0dXJuczoKICAgICAqCiAgICAgKiAgIGFycmF5KAogICAgICogICAgICcxJyA9PiBhcnJheShhcnJheSgnaWQnID0+ICc0JywgJ25hbWUnID0+ICdudW1iZXIgZm91cicpLAogICAgICogICAgICAgICAgICAgICAgICBhcnJheSgnaWQnID0+ICc2JywgJ25hbWUnID0+ICdudW1iZXIgc2l4JykKICAgICAqICAgICAgICAgICAgKSwKICAgICAqICAgICAnOScgPT4gYXJyYXkoYXJyYXkoJ2lkJyA9PiAnNCcsICduYW1lJyA9PiAnbnVtYmVyIGZvdXInKSwKICAgICAqICAgICAgICAgICAgICAgICAgYXJyYXkoJ2lkJyA9PiAnNicsICduYW1lJyA9PiAnbnVtYmVyIHNpeCcpCiAgICAgKiAgICAgICAgICAgICkKICAgICAqICAgKQogICAgICogPC9wcmU+CiAgICAgKgogICAgICogS2VlcCBpbiBtaW5kIHRoYXQgZGF0YWJhc2UgZnVuY3Rpb25zIGluIFBIUCB1c3VhbGx5IHJldHVybiBzdHJpbmcKICAgICAqIHZhbHVlcyBmb3IgcmVzdWx0cyByZWdhcmRsZXNzIG9mIHRoZSBkYXRhYmFzZSdzIGludGVybmFsIHR5cGUuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcXVlcnkgICAgICAgIHRoZSBTUUwgcXVlcnkKICAgICAqIEBwYXJhbSBib29sICAgJGZvcmNlX2FycmF5ICB1c2VkIG9ubHkgd2hlbiB0aGUgcXVlcnkgcmV0dXJucwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGFjdGx5IHR3byBjb2x1bW5zLiAgSWYgdHJ1ZSwgdGhlIHZhbHVlcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZiB0aGUgcmV0dXJuZWQgYXJyYXkgd2lsbCBiZSBvbmUtZWxlbWVudAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcnJheXMgaW5zdGVhZCBvZiBzY2FsYXJzLgogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICAgICAgIGFycmF5LCBzdHJpbmcgb3IgbnVtZXJpYyBkYXRhIHRvIGJlIHVzZWQgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aW9uIG9mIHRoZSBzdGF0ZW1lbnQuICBRdWFudGl0eSBvZgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcyBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcnMgaW4gcXVlcnk6ICBtZWFuaW5nIDEKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXIgZm9yIG5vbi1hcnJheSBwYXJhbWV0ZXJzIG9yCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgcGxhY2Vob2xkZXIgcGVyIGFycmF5IGVsZW1lbnQuCiAgICAgKiBAcGFyYW0gaW50ICAgJGZldGNobW9kZSAgICAgdGhlIGZldGNoIG1vZGUgdG8gdXNlCiAgICAgKiBAcGFyYW0gYm9vbCAgJGdyb3VwICAgICAgICAgaWYgdHJ1ZSwgdGhlIHZhbHVlcyBvZiB0aGUgcmV0dXJuZWQgYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgd3JhcHBlZCBpbiBhbm90aGVyIGFycmF5LiAgSWYgdGhlIHNhbWUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5IHZhbHVlIChpbiB0aGUgZmlyc3QgY29sdW1uKSByZXBlYXRzCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0c2VsZiwgdGhlIHZhbHVlcyB3aWxsIGJlIGFwcGVuZGVkIHRvCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMgYXJyYXkgaW5zdGVhZCBvZiBvdmVyd3JpdGluZyB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhpc3RpbmcgdmFsdWVzLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgIHRoZSBhc3NvY2lhdGl2ZSBhcnJheSBjb250YWluaW5nIHRoZSBxdWVyeSByZXN1bHRzLgogICAgICogICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gJmdldEFzc29jKCRxdWVyeSwgJGZvcmNlX2FycmF5ID0gZmFsc2UsICRwYXJhbXMgPSBhcnJheSgpLAogICAgICAgICAgICAgICAgICAgICAgICRmZXRjaG1vZGUgPSBEQl9GRVRDSE1PREVfREVGQVVMVCwgJGdyb3VwID0gZmFsc2UpCiAgICB7CiAgICAgICAgJHBhcmFtcyA9IChhcnJheSkkcGFyYW1zOwogICAgICAgIGlmIChzaXplb2YoJHBhcmFtcykgPiAwKSB7CiAgICAgICAgICAgICRzdGggPSAkdGhpcy0+cHJlcGFyZSgkcXVlcnkpOwoKICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRzdGgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHN0aDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJlcyA9JiAkdGhpcy0+ZXhlY3V0ZSgkc3RoLCAkcGFyYW1zKTsKICAgICAgICAgICAgJHRoaXMtPmZyZWVQcmVwYXJlZCgkc3RoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcmVzID0mICR0aGlzLT5xdWVyeSgkcXVlcnkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXMpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzOwogICAgICAgIH0KICAgICAgICBpZiAoJGZldGNobW9kZSA9PSBEQl9GRVRDSE1PREVfREVGQVVMVCkgewogICAgICAgICAgICAkZmV0Y2htb2RlID0gJHRoaXMtPmZldGNobW9kZTsKICAgICAgICB9CiAgICAgICAgJGNvbHMgPSAkcmVzLT5udW1Db2xzKCk7CgogICAgICAgIGlmICgkY29scyA8IDIpIHsKICAgICAgICAgICAgJHRtcCA9JiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9UUlVOQ0FURUQpOwogICAgICAgICAgICByZXR1cm4gJHRtcDsKICAgICAgICB9CgogICAgICAgICRyZXN1bHRzID0gYXJyYXkoKTsKCiAgICAgICAgaWYgKCRjb2xzID4gMiB8fCAkZm9yY2VfYXJyYXkpIHsKICAgICAgICAgICAgLy8gcmV0dXJuIGFycmF5IHZhbHVlcwogICAgICAgICAgICAvLyBYWFggdGhpcyBwYXJ0IGNhbiBiZSBvcHRpbWl6ZWQKICAgICAgICAgICAgaWYgKCRmZXRjaG1vZGUgPT0gREJfRkVUQ0hNT0RFX0FTU09DKSB7CiAgICAgICAgICAgICAgICB3aGlsZSAoaXNfYXJyYXkoJHJvdyA9ICRyZXMtPmZldGNoUm93KERCX0ZFVENITU9ERV9BU1NPQykpKSB7CiAgICAgICAgICAgICAgICAgICAgcmVzZXQoJHJvdyk7CiAgICAgICAgICAgICAgICAgICAgJGtleSA9IGN1cnJlbnQoJHJvdyk7CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHJvd1trZXkoJHJvdyldKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJGdyb3VwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHRzWyRrZXldW10gPSAkcm93OwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHRzWyRrZXldID0gJHJvdzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZWlmICgkZmV0Y2htb2RlID09IERCX0ZFVENITU9ERV9PQkpFQ1QpIHsKICAgICAgICAgICAgICAgIHdoaWxlICgkcm93ID0gJHJlcy0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX09CSkVDVCkpIHsKICAgICAgICAgICAgICAgICAgICAkYXJyID0gZ2V0X29iamVjdF92YXJzKCRyb3cpOwogICAgICAgICAgICAgICAgICAgICRrZXkgPSBjdXJyZW50KCRhcnIpOwogICAgICAgICAgICAgICAgICAgIGlmICgkZ3JvdXApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdHNbJGtleV1bXSA9ICRyb3c7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc3VsdHNbJGtleV0gPSAkcm93OwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHdoaWxlIChpc19hcnJheSgkcm93ID0gJHJlcy0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX09SREVSRUQpKSkgewogICAgICAgICAgICAgICAgICAgIC8vIHdlIHNoaWZ0IGF3YXkgdGhlIGZpcnN0IGVsZW1lbnQgdG8gZ2V0CiAgICAgICAgICAgICAgICAgICAgLy8gaW5kaWNlcyBydW5uaW5nIGZyb20gMCBhZ2FpbgogICAgICAgICAgICAgICAgICAgICRrZXkgPSBhcnJheV9zaGlmdCgkcm93KTsKICAgICAgICAgICAgICAgICAgICBpZiAoJGdyb3VwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHRzWyRrZXldW10gPSAkcm93OwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHRzWyRrZXldID0gJHJvdzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyb3cpKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0cyA9ICRyb3c7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyByZXR1cm4gc2NhbGFyIHZhbHVlcwogICAgICAgICAgICB3aGlsZSAoaXNfYXJyYXkoJHJvdyA9ICRyZXMtPmZldGNoUm93KERCX0ZFVENITU9ERV9PUkRFUkVEKSkpIHsKICAgICAgICAgICAgICAgIGlmICgkZ3JvdXApIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0c1skcm93WzBdXVtdID0gJHJvd1sxXTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHJlc3VsdHNbJHJvd1swXV0gPSAkcm93WzFdOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkcm93KSkgewogICAgICAgICAgICAgICAgJHJlc3VsdHMgPSAkcm93OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkcmVzLT5mcmVlKCk7CgogICAgICAgIHJldHVybiAkcmVzdWx0czsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXRBbGwoKQoKICAgIC8qKgogICAgICogRmV0Y2hlcyBhbGwgb2YgdGhlIHJvd3MgZnJvbSBhIHF1ZXJ5IHJlc3VsdAogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICAgICAgdGhlIFNRTCBxdWVyeQogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICAgICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcyBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJzIGluIHF1ZXJ5OiAgbWVhbmluZyAxCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlciBmb3Igbm9uLWFycmF5IHBhcmFtZXRlcnMgb3IKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEgcGxhY2Vob2xkZXIgcGVyIGFycmF5IGVsZW1lbnQuCiAgICAgKiBAcGFyYW0gaW50ICAgICRmZXRjaG1vZGUgIHRoZSBmZXRjaCBtb2RlIHRvIHVzZToKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgREJfRkVUQ0hNT0RFX09SREVSRUQKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgREJfRkVUQ0hNT0RFX0FTU09DCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICArIERCX0ZFVENITU9ERV9PUkRFUkVEIHwgREJfRkVUQ0hNT0RFX0ZMSVBQRUQKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICsgREJfRkVUQ0hNT0RFX0FTU09DIHwgREJfRkVUQ0hNT0RFX0ZMSVBQRUQKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICB0aGUgbmVzdGVkIGFycmF5LiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gJmdldEFsbCgkcXVlcnksICRwYXJhbXMgPSBhcnJheSgpLAogICAgICAgICAgICAgICAgICAgICAkZmV0Y2htb2RlID0gREJfRkVUQ0hNT0RFX0RFRkFVTFQpCiAgICB7CiAgICAgICAgLy8gY29tcGF0IGNoZWNrLCB0aGUgcGFyYW1zIGFuZCBmZXRjaG1vZGUgcGFyYW1ldGVycyB1c2VkIHRvCiAgICAgICAgLy8gaGF2ZSB0aGUgb3Bwb3NpdGUgb3JkZXIKICAgICAgICBpZiAoIWlzX2FycmF5KCRwYXJhbXMpKSB7CiAgICAgICAgICAgIGlmIChpc19hcnJheSgkZmV0Y2htb2RlKSkgewogICAgICAgICAgICAgICAgaWYgKCRwYXJhbXMgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgICAgICAkdG1wID0gREJfRkVUQ0hNT0RFX0RFRkFVTFQ7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICR0bXAgPSAkcGFyYW1zOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHBhcmFtcyA9ICRmZXRjaG1vZGU7CiAgICAgICAgICAgICAgICAkZmV0Y2htb2RlID0gJHRtcDsKICAgICAgICAgICAgfSBlbHNlaWYgKCRwYXJhbXMgIT09IG51bGwpIHsKICAgICAgICAgICAgICAgICRmZXRjaG1vZGUgPSAkcGFyYW1zOwogICAgICAgICAgICAgICAgJHBhcmFtcyA9IGFycmF5KCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmIChzaXplb2YoJHBhcmFtcykgPiAwKSB7CiAgICAgICAgICAgICRzdGggPSAkdGhpcy0+cHJlcGFyZSgkcXVlcnkpOwoKICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRzdGgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHN0aDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJlcyA9JiAkdGhpcy0+ZXhlY3V0ZSgkc3RoLCAkcGFyYW1zKTsKICAgICAgICAgICAgJHRoaXMtPmZyZWVQcmVwYXJlZCgkc3RoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcmVzID0mICR0aGlzLT5xdWVyeSgkcXVlcnkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRyZXMgPT09IERCX09LIHx8IERCOjppc0Vycm9yKCRyZXMpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzOwogICAgICAgIH0KCiAgICAgICAgJHJlc3VsdHMgPSBhcnJheSgpOwogICAgICAgIHdoaWxlIChEQl9PSyA9PT0gJHJlcy0+ZmV0Y2hJbnRvKCRyb3csICRmZXRjaG1vZGUpKSB7CiAgICAgICAgICAgIGlmICgkZmV0Y2htb2RlICYgREJfRkVUQ0hNT0RFX0ZMSVBQRUQpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRyb3cgYXMgJGtleSA9PiAkdmFsKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlc3VsdHNbJGtleV1bXSA9ICR2YWw7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0c1tdID0gJHJvdzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHJlcy0+ZnJlZSgpOwoKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJvdykpIHsKICAgICAgICAgICAgJHRtcCA9JiAkdGhpcy0+cmFpc2VFcnJvcigkcm93KTsKICAgICAgICAgICAgcmV0dXJuICR0bXA7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzdWx0czsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBhdXRvQ29tbWl0KCkKCiAgICAvKioKICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYXV0b21hdGljIGNvbW1pdHMKICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbCAkb25vZmYgIHRydWUgdHVybnMgaXQgb24sIGZhbHNlIHR1cm5zIGl0IG9mZgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3QgaWYgdGhlIGRyaXZlcgogICAgICogICAgICAgICAgICAgICBkb2Vzbid0IHN1cHBvcnQgYXV0by1jb21taXR0aW5nIHRyYW5zYWN0aW9ucy4KICAgICAqLwogICAgZnVuY3Rpb24gYXV0b0NvbW1pdCgkb25vZmYgPSBmYWxzZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfTk9UX0NBUEFCTEUpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbW1pdCgpCgogICAgLyoqCiAgICAgKiBDb21taXRzIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBjb21taXQoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcm9sbGJhY2soKQoKICAgIC8qKgogICAgICogUmV2ZXJ0cyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gcm9sbGJhY2soKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtUm93cygpCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhIHF1ZXJ5IHJlc3VsdAogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICB0aGUgcXVlcnkgcmVzdWx0IGlkZW5pZmllciBwcm9kdWNlZCBieSBQSFAKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gbnVtUm93cygkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYWZmZWN0ZWRSb3dzKCkKCiAgICAvKioKICAgICAqIERldGVybWluZXMgdGhlIG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IGEgZGF0YSBtYW5pdXBsYXRpb24gcXVlcnkKICAgICAqCiAgICAgKiAwIGlzIHJldHVybmVkIGZvciBxdWVyaWVzIHRoYXQgZG9uJ3QgbWFuaXB1bGF0ZSBkYXRhLgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBhZmZlY3RlZFJvd3MoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0U2VxdWVuY2VOYW1lKCkKCiAgICAvKioKICAgICAqIEdlbmVyYXRlcyB0aGUgbmFtZSB1c2VkIGluc2lkZSB0aGUgZGF0YWJhc2UgZm9yIGEgc2VxdWVuY2UKICAgICAqCiAgICAgKiBUaGUgY3JlYXRlU2VxdWVuY2UoKSBkb2NibG9jayBjb250YWlucyBub3RlcyBhYm91dCBzdG9yaW5nIHNlcXVlbmNlCiAgICAgKiBuYW1lcy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzcW4gIHRoZSBzZXF1ZW5jZSdzIHB1YmxpYyBuYW1lCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBzZXF1ZW5jZSdzIG5hbWUgaW4gdGhlIGJhY2tlbmQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHNlZSBEQl9jb21tb246OmNyZWF0ZVNlcXVlbmNlKCksIERCX2NvbW1vbjo6ZHJvcFNlcXVlbmNlKCksCiAgICAgKiAgICAgIERCX2NvbW1vbjo6bmV4dElEKCksIERCX2NvbW1vbjo6c2V0T3B0aW9uKCkKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U2VxdWVuY2VOYW1lKCRzcW4pCiAgICB7CiAgICAgICAgcmV0dXJuIHNwcmludGYoJHRoaXMtPmdldE9wdGlvbignc2VxbmFtZV9mb3JtYXQnKSwKICAgICAgICAgICAgICAgICAgICAgICBwcmVnX3JlcGxhY2UoJy9bXmEtejAtOV8uXS9pJywgJ18nLCAkc3FuKSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dElkKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5leHQgZnJlZSBpZCBpbiBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZQogICAgICogQHBhcmFtIGJvb2xlYW4gJG9uZGVtYW5kICB3aGVuIHRydWUsIHRoZSBzZXFlbmNlIGlzIGF1dG9tYXRpY2FsbHkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG5leHQgaWQgbnVtYmVyIGluIHRoZSBzZXF1ZW5jZS4KICAgICAqICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfY29tbW9uOjpkcm9wU2VxdWVuY2UoKSwKICAgICAqICAgICAgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKQogICAgICovCiAgICBmdW5jdGlvbiBuZXh0SWQoJHNlcV9uYW1lLCAkb25kZW1hbmQgPSB0cnVlKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgY3JlYXRlU2VxdWVuY2UoKQoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBzZXF1ZW5jZQogICAgICoKICAgICAqIFRoZSBuYW1lIG9mIGEgZ2l2ZW4gc2VxdWVuY2UgaXMgZGV0ZXJtaW5lZCBieSBwYXNzaW5nIHRoZSBzdHJpbmcKICAgICAqIHByb3ZpZGVkIGluIHRoZSA8dmFyPiRzZXFfbmFtZTwvdmFyPiBhcmd1bWVudCB0aHJvdWdoIFBIUCdzIHNwcmludGYoKQogICAgICogZnVuY3Rpb24gdXNpbmcgdGhlIHZhbHVlIGZyb20gdGhlIDx2YXI+c2VxbmFtZV9mb3JtYXQ8L3Zhcj4gb3B0aW9uIGFzCiAgICAgKiB0aGUgc3ByaW50ZigpJ3MgZm9ybWF0IGFyZ3VtZW50LgogICAgICoKICAgICAqIDx2YXI+c2VxbmFtZV9mb3JtYXQ8L3Zhcj4gaXMgc2V0IHZpYSBzZXRPcHRpb24oKS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpkcm9wU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfY29tbW9uOjpuZXh0SUQoKQogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGVTZXF1ZW5jZSgkc2VxX25hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX05PVF9DQVBBQkxFKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBkcm9wU2VxdWVuY2UoKQoKICAgIC8qKgogICAgICogRGVsZXRlcyBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIHNlcXVlbmNlIHRvIGJlIGRlbGV0ZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OmNyZWF0ZVNlcXVlbmNlKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX2NvbW1vbjo6bmV4dElEKCkKICAgICAqLwogICAgZnVuY3Rpb24gZHJvcFNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfTk9UX0NBUEFCTEUpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogQ29tbXVuaWNhdGVzIGFuIGVycm9yIGFuZCBpbnZva2UgZXJyb3IgY2FsbGJhY2tzLCBldGMKICAgICAqCiAgICAgKiBCYXNpY2FsbHkgYSB3cmFwcGVyIGZvciBQRUFSOjpyYWlzZUVycm9yIHdpdGhvdXQgdGhlIG1lc3NhZ2Ugc3RyaW5nLgogICAgICoKICAgICAqIEBwYXJhbSBtaXhlZCAgIGludGVnZXIgZXJyb3IgY29kZSwgb3IgYSBQRUFSIGVycm9yIG9iamVjdCAoYWxsCiAgICAgKiAgICAgICAgICAgICAgICAgb3RoZXIgcGFyYW1ldGVycyBhcmUgaWdub3JlZCBpZiB0aGlzIHBhcmFtZXRlciBpcwogICAgICogICAgICAgICAgICAgICAgIGFuIG9iamVjdAogICAgICogQHBhcmFtIGludCAgICAgZXJyb3IgbW9kZSwgc2VlIFBFQVJfRXJyb3IgZG9jcwogICAgICogQHBhcmFtIG1peGVkICAgaWYgZXJyb3IgbW9kZSBpcyBQRUFSX0VSUk9SX1RSSUdHRVIsIHRoaXMgaXMgdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgZXJyb3IgbGV2ZWwgKEVfVVNFUl9OT1RJQ0UgZXRjKS4gIElmIGVycm9yIG1vZGUgaXMKICAgICAqICAgICAgICAgICAgICAgICBQRUFSX0VSUk9SX0NBTExCQUNLLCB0aGlzIGlzIHRoZSBjYWxsYmFjayBmdW5jdGlvbiwKICAgICAqICAgICAgICAgICAgICAgICBlaXRoZXIgYXMgYSBmdW5jdGlvbiBuYW1lLCBvciBhcyBhbiBhcnJheSBvZiBhbgogICAgICogICAgICAgICAgICAgICAgIG9iamVjdCBhbmQgbWV0aG9kIG5hbWUuICBGb3Igb3RoZXIgZXJyb3IgbW9kZXMgdGhpcwogICAgICogICAgICAgICAgICAgICAgIHBhcmFtZXRlciBpcyBpZ25vcmVkLgogICAgICogQHBhcmFtIHN0cmluZyAgZXh0cmEgZGVidWcgaW5mb3JtYXRpb24uICBEZWZhdWx0cyB0byB0aGUgbGFzdAogICAgICogICAgICAgICAgICAgICAgIHF1ZXJ5IGFuZCBuYXRpdmUgZXJyb3IgY29kZS4KICAgICAqIEBwYXJhbSBtaXhlZCAgIG5hdGl2ZSBlcnJvciBjb2RlLCBpbnRlZ2VyIG9yIHN0cmluZyBkZXBlbmRpbmcgdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgYmFja2VuZAogICAgICoKICAgICAqIEByZXR1cm4gb2JqZWN0ICB0aGUgUEVBUl9FcnJvciBvYmplY3QKICAgICAqCiAgICAgKiBAc2VlIFBFQVJfRXJyb3IKICAgICAqLwogICAgZnVuY3Rpb24gJnJhaXNlRXJyb3IoJGNvZGUgPSBEQl9FUlJPUiwgJG1vZGUgPSBudWxsLCAkb3B0aW9ucyA9IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAkdXNlcmluZm8gPSBudWxsLCAkbmF0aXZlY29kZSA9IG51bGwpCiAgICB7CiAgICAgICAgLy8gVGhlIGVycm9yIGlzIHlldCBhIERCIGVycm9yIG9iamVjdAogICAgICAgIGlmIChpc19vYmplY3QoJGNvZGUpKSB7CiAgICAgICAgICAgIC8vIGJlY2F1c2Ugd2UgdGhlIHN0YXRpYyBQRUFSOjpyYWlzZUVycm9yLCBvdXIgZ2xvYmFsCiAgICAgICAgICAgIC8vIGhhbmRsZXIgc2hvdWxkIGJlIHVzZWQgaWYgaXQgaXMgc2V0CiAgICAgICAgICAgIGlmICgkbW9kZSA9PT0gbnVsbCAmJiAhZW1wdHkoJHRoaXMtPl9kZWZhdWx0X2Vycm9yX21vZGUpKSB7CiAgICAgICAgICAgICAgICAkbW9kZSAgICA9ICR0aGlzLT5fZGVmYXVsdF9lcnJvcl9tb2RlOwogICAgICAgICAgICAgICAgJG9wdGlvbnMgPSAkdGhpcy0+X2RlZmF1bHRfZXJyb3Jfb3B0aW9uczsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdG1wID0gUEVBUjo6cmFpc2VFcnJvcigkY29kZSwgbnVsbCwgJG1vZGUsICRvcHRpb25zLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCB0cnVlKTsKICAgICAgICAgICAgcmV0dXJuICR0bXA7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHVzZXJpbmZvID09PSBudWxsKSB7CiAgICAgICAgICAgICR1c2VyaW5mbyA9ICR0aGlzLT5sYXN0X3F1ZXJ5OwogICAgICAgIH0KCiAgICAgICAgaWYgKCRuYXRpdmVjb2RlKSB7CiAgICAgICAgICAgICR1c2VyaW5mbyAuPSAnIFtuYXRpdmVjb2RlPScgLiB0cmltKCRuYXRpdmVjb2RlKSAuICddJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdXNlcmluZm8gLj0gJyBbREIgRXJyb3I6ICcgLiBEQjo6ZXJyb3JNZXNzYWdlKCRjb2RlKSAuICddJzsKICAgICAgICB9CgogICAgICAgICR0bXAgPSBQRUFSOjpyYWlzZUVycm9yKG51bGwsICRjb2RlLCAkbW9kZSwgJG9wdGlvbnMsICR1c2VyaW5mbywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnREJfRXJyb3InLCB0cnVlKTsKICAgICAgICByZXR1cm4gJHRtcDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlcnJvck5hdGl2ZSgpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBEQk1TJyBuYXRpdmUgZXJyb3IgY29kZSBwcm9kdWNlZCBieSB0aGUgbGFzdCBxdWVyeQogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIHRoZSBEQk1TJyBlcnJvciBjb2RlLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JOYXRpdmUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXJyb3JDb2RlKCkKCiAgICAvKioKICAgICAqIE1hcHMgbmF0aXZlIGVycm9yIGNvZGVzIHRvIERCJ3MgcG9ydGFibGUgb25lcwogICAgICoKICAgICAqIFVzZXMgdGhlIDx2YXI+JGVycm9yY29kZV9tYXA8L3Zhcj4gcHJvcGVydHkgZGVmaW5lZCBpbiBlYWNoIGRyaXZlci4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nfGludCAkbmF0aXZlY29kZSAgdGhlIGVycm9yIGNvZGUgcmV0dXJuZWQgYnkgdGhlIERCTVMKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIHBvcnRhYmxlIERCIGVycm9yIGNvZGUuICBSZXR1cm4gREJfRVJST1IgaWYgdGhlCiAgICAgKiAgICAgICAgICAgICAgIGN1cnJlbnQgZHJpdmVyIGRvZXNuJ3QgaGF2ZSBhIG1hcHBpbmcgZm9yIHRoZQogICAgICogICAgICAgICAgICAgICAkbmF0aXZlY29kZSBzdWJtaXR0ZWQuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVycm9yQ29kZSgkbmF0aXZlY29kZSkKICAgIHsKICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmVycm9yY29kZV9tYXBbJG5hdGl2ZWNvZGVdKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVycm9yY29kZV9tYXBbJG5hdGl2ZWNvZGVdOwogICAgICAgIH0KICAgICAgICAvLyBGYWxsIGJhY2sgdG8gREJfRVJST1IgaWYgdGhlcmUgd2FzIG5vIG1hcHBpbmcuCiAgICAgICAgcmV0dXJuIERCX0VSUk9SOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVycm9yTWVzc2FnZSgpCgogICAgLyoqCiAgICAgKiBNYXBzIGEgREIgZXJyb3IgY29kZSB0byBhIHRleHR1YWwgbWVzc2FnZQogICAgICoKICAgICAqIEBwYXJhbSBpbnRlZ2VyICRkYmNvZGUgIHRoZSBEQiBlcnJvciBjb2RlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBlcnJvciBtZXNzYWdlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGVycm9yIGNvZGUKICAgICAqICAgICAgICAgICAgICAgICAgc3VibWl0dGVkLiAgRkFMU0UgaWYgdGhlIGVycm9yIGNvZGUgaXMgdW5rbm93bi4KICAgICAqCiAgICAgKiBAc2VlIERCOjplcnJvck1lc3NhZ2UoKQogICAgICovCiAgICBmdW5jdGlvbiBlcnJvck1lc3NhZ2UoJGRiY29kZSkKICAgIHsKICAgICAgICByZXR1cm4gREI6OmVycm9yTWVzc2FnZSgkdGhpcy0+ZXJyb3Jjb2RlX21hcFskZGJjb2RlXSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgdGFibGVJbmZvKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSB0YWJsZSBvciBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGUgZm9ybWF0IG9mIHRoZSByZXN1bHRpbmcgYXJyYXkgZGVwZW5kcyBvbiB3aGljaCA8dmFyPiRtb2RlPC92YXI+CiAgICAgKiB5b3Ugc2VsZWN0LiAgVGhlIHNhbXBsZSBvdXRwdXQgYmVsb3cgaXMgYmFzZWQgb24gdGhpcyBxdWVyeToKICAgICAqIDxwcmU+CiAgICAgKiAgICBTRUxFQ1QgdGJsRm9vLmZsZElELCB0YmxGb28uZmxkUGhvbmUsIHRibEJhci5mbGRJZAogICAgICogICAgRlJPTSB0YmxGb28KICAgICAqICAgIEpPSU4gdGJsQmFyIE9OIHRibEZvby5mbGRJZCA9IHRibEJhci5mbGRJZAogICAgICogPC9wcmU+CiAgICAgKgogICAgICogPHVsPgogICAgICogPGxpPgogICAgICoKICAgICAqIDxrYmQ+bnVsbDwva2JkPiAoZGVmYXVsdCkKICAgICAqICAgPHByZT4KICAgICAqICAgWzBdID0+IEFycmF5ICgKICAgICAqICAgICAgIFt0YWJsZV0gPT4gdGJsRm9vCiAgICAgKiAgICAgICBbbmFtZV0gPT4gZmxkSWQKICAgICAqICAgICAgIFt0eXBlXSA9PiBpbnQKICAgICAqICAgICAgIFtsZW5dID0+IDExCiAgICAgKiAgICAgICBbZmxhZ3NdID0+IHByaW1hcnlfa2V5IG5vdF9udWxsCiAgICAgKiAgICkKICAgICAqICAgWzFdID0+IEFycmF5ICgKICAgICAqICAgICAgIFt0YWJsZV0gPT4gdGJsRm9vCiAgICAgKiAgICAgICBbbmFtZV0gPT4gZmxkUGhvbmUKICAgICAqICAgICAgIFt0eXBlXSA9PiBzdHJpbmcKICAgICAqICAgICAgIFtsZW5dID0+IDIwCiAgICAgKiAgICAgICBbZmxhZ3NdID0+CiAgICAgKiAgICkKICAgICAqICAgWzJdID0+IEFycmF5ICgKICAgICAqICAgICAgIFt0YWJsZV0gPT4gdGJsQmFyCiAgICAgKiAgICAgICBbbmFtZV0gPT4gZmxkSWQKICAgICAqICAgICAgIFt0eXBlXSA9PiBpbnQKICAgICAqICAgICAgIFtsZW5dID0+IDExCiAgICAgKiAgICAgICBbZmxhZ3NdID0+IHByaW1hcnlfa2V5IG5vdF9udWxsCiAgICAgKiAgICkKICAgICAqICAgPC9wcmU+CiAgICAgKgogICAgICogPC9saT48bGk+CiAgICAgKgogICAgICogPGtiZD5EQl9UQUJMRUlORk9fT1JERVI8L2tiZD4KICAgICAqCiAgICAgKiAgIDxwPkluIGFkZGl0aW9uIHRvIHRoZSBpbmZvcm1hdGlvbiBmb3VuZCBpbiB0aGUgZGVmYXVsdCBvdXRwdXQsCiAgICAgKiAgIGEgbm90YXRpb24gb2YgdGhlIG51bWJlciBvZiBjb2x1bW5zIGlzIHByb3ZpZGVkIGJ5IHRoZQogICAgICogICA8c2FtcD5udW1fZmllbGRzPC9zYW1wPiBlbGVtZW50IHdoaWxlIHRoZSA8c2FtcD5vcmRlcjwvc2FtcD4KICAgICAqICAgZWxlbWVudCBwcm92aWRlcyBhbiBhcnJheSB3aXRoIHRoZSBjb2x1bW4gbmFtZXMgYXMgdGhlIGtleXMgYW5kCiAgICAgKiAgIHRoZWlyIGxvY2F0aW9uIGluZGV4IG51bWJlciAoY29ycmVzcG9uZGluZyB0byB0aGUga2V5cyBpbiB0aGUKICAgICAqICAgdGhlIGRlZmF1bHQgb3V0cHV0KSBhcyB0aGUgdmFsdWVzLjwvcD4KICAgICAqCiAgICAgKiAgIDxwPklmIGEgcmVzdWx0IHNldCBoYXMgaWRlbnRpY2FsIGZpZWxkIG5hbWVzLCB0aGUgbGFzdCBvbmUgaXMKICAgICAqICAgdXNlZC48L3A+CiAgICAgKgogICAgICogICA8cHJlPgogICAgICogICBbbnVtX2ZpZWxkc10gPT4gMwogICAgICogICBbb3JkZXJdID0+IEFycmF5ICgKICAgICAqICAgICAgIFtmbGRJZF0gPT4gMgogICAgICogICAgICAgW2ZsZFRyYW5zXSA9PiAxCiAgICAgKiAgICkKICAgICAqICAgPC9wcmU+CiAgICAgKgogICAgICogPC9saT48bGk+CiAgICAgKgogICAgICogPGtiZD5EQl9UQUJMRUlORk9fT1JERVJUQUJMRTwva2JkPgogICAgICoKICAgICAqICAgPHA+U2ltaWxhciB0byA8a2JkPkRCX1RBQkxFSU5GT19PUkRFUjwva2JkPiBidXQgYWRkcyBtb3JlCiAgICAgKiAgIGRpbWVuc2lvbnMgdG8gdGhlIGFycmF5IGluIHdoaWNoIHRoZSB0YWJsZSBuYW1lcyBhcmUga2V5cyBhbmQKICAgICAqICAgdGhlIGZpZWxkIG5hbWVzIGFyZSBzdWIta2V5cy4gIFRoaXMgaXMgaGVscGZ1bCBmb3IgcXVlcmllcyB0aGF0CiAgICAgKiAgIGpvaW4gdGFibGVzIHdoaWNoIGhhdmUgaWRlbnRpY2FsIGZpZWxkIG5hbWVzLjwvcD4KICAgICAqCiAgICAgKiAgIDxwcmU+CiAgICAgKiAgIFtudW1fZmllbGRzXSA9PiAzCiAgICAgKiAgIFtvcmRlcnRhYmxlXSA9PiBBcnJheSAoCiAgICAgKiAgICAgICBbdGJsRm9vXSA9PiBBcnJheSAoCiAgICAgKiAgICAgICAgICAgW2ZsZElkXSA9PiAwCiAgICAgKiAgICAgICAgICAgW2ZsZFBob25lXSA9PiAxCiAgICAgKiAgICAgICApCiAgICAgKiAgICAgICBbdGJsQmFyXSA9PiBBcnJheSAoCiAgICAgKiAgICAgICAgICAgW2ZsZElkXSA9PiAyCiAgICAgKiAgICAgICApCiAgICAgKiAgICkKICAgICAqICAgPC9wcmU+CiAgICAgKgogICAgICogPC9saT4KICAgICAqIDwvdWw+CiAgICAgKgogICAgICogVGhlIDxzYW1wPmZsYWdzPC9zYW1wPiBlbGVtZW50IGNvbnRhaW5zIGEgc3BhY2Ugc2VwYXJhdGVkIGxpc3QKICAgICAqIG9mIGV4dHJhIGluZm9ybWF0aW9uIGFib3V0IHRoZSBmaWVsZC4gIFRoaXMgZGF0YSBpcyBpbmNvbnNpc3RlbnQKICAgICAqIGJldHdlZW4gREJNUydzIGR1ZSB0byB0aGUgd2F5IGVhY2ggREJNUyB3b3Jrcy4KICAgICAqICAgKyA8c2FtcD5wcmltYXJ5X2tleTwvc2FtcD4KICAgICAqICAgKyA8c2FtcD51bmlxdWVfa2V5PC9zYW1wPgogICAgICogICArIDxzYW1wPm11bHRpcGxlX2tleTwvc2FtcD4KICAgICAqICAgKyA8c2FtcD5ub3RfbnVsbDwvc2FtcD4KICAgICAqCiAgICAgKiBNb3N0IERCTVMncyBvbmx5IHByb3ZpZGUgdGhlIDxzYW1wPnRhYmxlPC9zYW1wPiBhbmQgPHNhbXA+ZmxhZ3M8L3NhbXA+CiAgICAgKiBlbGVtZW50cyBpZiA8dmFyPiRyZXN1bHQ8L3Zhcj4gaXMgYSB0YWJsZSBuYW1lLiAgVGhlIGZvbGxvd2luZyBEQk1TJ3MKICAgICAqIHByb3ZpZGUgZnVsbCBpbmZvcm1hdGlvbiBmcm9tIHF1ZXJpZXM6CiAgICAgKiAgICsgZmJzcWwKICAgICAqICAgKyBteXNxbAogICAgICoKICAgICAqIElmIHRoZSAncG9ydGFiaWxpdHknIG9wdGlvbiBoYXMgPHNhbXA+REJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFPC9zYW1wPgogICAgICogdHVybmVkIG9uLCB0aGUgbmFtZXMgb2YgdGFibGVzIGFuZCBmaWVsZHMgd2lsbCBiZSBsb3dlcmNhc2VkLgogICAgICoKICAgICAqIEBwYXJhbSBvYmplY3R8c3RyaW5nICAkcmVzdWx0ICBEQl9yZXN1bHQgb2JqZWN0IGZyb20gYSBxdWVyeSBvciBhCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgYSB0YWJsZS4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSB0aGlzIGFsc28gYWNjZXB0cyBhIHF1ZXJ5IHJlc3VsdAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlIGlkZW50aWZpZXIsIHRoaXMgYmVoYXZpb3IgaXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGVkLgogICAgICogQHBhcmFtIGludCAgJG1vZGUgICBlaXRoZXIgdW51c2VkIG9yIG9uZSBvZiB0aGUgdGFibGVJbmZvIG1vZGVzOgogICAgICogICAgICAgICAgICAgICAgICAgICA8a2JkPkRCX1RBQkxFSU5GT19PUkRFUlRBQkxFPC9rYmQ+LAogICAgICogICAgICAgICAgICAgICAgICAgICA8a2JkPkRCX1RBQkxFSU5GT19PUkRFUjwva2JkPiBvcgogICAgICogICAgICAgICAgICAgICAgICAgICA8a2JkPkRCX1RBQkxFSU5GT19GVUxMPC9rYmQ+ICh3aGljaCBkb2VzIGJvdGgpLgogICAgICogICAgICAgICAgICAgICAgICAgICBUaGVzZSBhcmUgYml0d2lzZSwgc28gdGhlIGZpcnN0IHR3byBjYW4gYmUKICAgICAqICAgICAgICAgICAgICAgICAgICAgY29tYmluZWQgdXNpbmcgPGtiZD58PC9rYmQ+LgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdGhlIGluZm9ybWF0aW9uIHJlcXVlc3RlZC4KICAgICAqICAgICAgICAgICAgICAgICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpzZXRPcHRpb24oKQogICAgICovCiAgICBmdW5jdGlvbiB0YWJsZUluZm8oJHJlc3VsdCwgJG1vZGUgPSBudWxsKQogICAgewogICAgICAgIC8qCiAgICAgICAgICogSWYgdGhlIERCXzxkcml2ZXI+IGNsYXNzIGhhcyBhIHRhYmxlSW5mbygpIG1ldGhvZCwgdGhhdCBvbmUKICAgICAgICAgKiBvdmVycmlkZXMgdGhpcyBvbmUuICBCdXQsIGlmIHRoZSBkcml2ZXIgZG9lc24ndCBoYXZlIG9uZSwKICAgICAgICAgKiB0aGlzIG1ldGhvZCBydW5zIGFuZCB0ZWxscyB1c2VycyBhYm91dCB0aGF0IGZhY3QuCiAgICAgICAgICovCiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX05PVF9DQVBBQkxFKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXRUYWJsZXMoKQoKICAgIC8qKgogICAgICogTGlzdHMgdGhlIHRhYmxlcyBpbiB0aGUgY3VycmVudCBkYXRhYmFzZQogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgIHRoZSBsaXN0IG9mIHRhYmxlcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQGRlcHJlY2F0ZWQgTWV0aG9kIGRlcHJlY2F0ZWQgc29tZSB0aW1lIGJlZm9yZSBSZWxlYXNlIDEuMgogICAgICovCiAgICBmdW5jdGlvbiBnZXRUYWJsZXMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0TGlzdE9mKCd0YWJsZXMnKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXRMaXN0T2YoKQoKICAgIC8qKgogICAgICogTGlzdHMgaW50ZXJuYWwgZGF0YWJhc2UgaW5mb3JtYXRpb24KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlICB0eXBlIG9mIGluZm9ybWF0aW9uIGJlaW5nIHNvdWdodC4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICBDb21tb24gaXRlbXMgYmVpbmcgc291Z2h0IGFyZToKICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0YWJsZXMsIGRhdGFiYXNlcywgdXNlcnMsIHZpZXdzLCBmdW5jdGlvbnMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICBFYWNoIERCTVMncyBoYXMgaXRzIG93biBjYXBhYmlsaXRpZXMuCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSAgYW4gYXJyYXkgbGlzdGluZyB0aGUgaXRlbXMgc291Z2h0LgogICAgICogICAgICAgICAgICAgICAgIEEgREIgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldExpc3RPZigkdHlwZSkKICAgIHsKICAgICAgICAkc3FsID0gJHRoaXMtPmdldFNwZWNpYWxRdWVyeSgkdHlwZSk7CiAgICAgICAgaWYgKCRzcWwgPT09IG51bGwpIHsKICAgICAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAnJzsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX1VOU1VQUE9SVEVEKTsKICAgICAgICB9IGVsc2VpZiAoaXNfaW50KCRzcWwpIHx8IERCOjppc0Vycm9yKCRzcWwpKSB7CiAgICAgICAgICAgIC8vIFByZXZpb3VzIGVycm9yCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigkc3FsKTsKICAgICAgICB9IGVsc2VpZiAoaXNfYXJyYXkoJHNxbCkpIHsKICAgICAgICAgICAgLy8gQWxyZWFkeSB0aGUgcmVzdWx0CiAgICAgICAgICAgIHJldHVybiAkc3FsOwogICAgICAgIH0KICAgICAgICAvLyBMYXVuY2ggdGhpcyBxdWVyeQogICAgICAgIHJldHVybiAkdGhpcy0+Z2V0Q29sKCRzcWwpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldFNwZWNpYWxRdWVyeSgpCgogICAgLyoqCiAgICAgKiBPYnRhaW5zIHRoZSBxdWVyeSBzdHJpbmcgbmVlZGVkIGZvciBsaXN0aW5nIGEgZ2l2ZW4gdHlwZSBvZiBvYmplY3RzCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSAgdGhlIGtpbmQgb2Ygb2JqZWN0cyB5b3Ugd2FudCB0byByZXRyaWV2ZQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZyBvciBudWxsIGlmIHRoZSBkcml2ZXIgZG9lc24ndAogICAgICogICAgICAgICAgICAgICAgICBzdXBwb3J0IHRoZSBvYmplY3QgdHlwZSByZXF1ZXN0ZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHNlZSBEQl9jb21tb246OmdldExpc3RPZigpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFNwZWNpYWxRdWVyeSgkdHlwZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfVU5TVVBQT1JURUQpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG5leHRRdWVyeUlzTWFuaXAoKQoKICAgIC8qKgogICAgICogU2V0cyAob3IgdW5zZXRzKSBhIGZsYWcgaW5kaWNhdGluZyB0aGF0IHRoZSBuZXh0IHF1ZXJ5IHdpbGwgYmUgYQogICAgICogbWFuaXB1bGF0aW9uIHF1ZXJ5LCByZWdhcmRsZXNzIG9mIHRoZSB1c3VhbCBEQjo6aXNNYW5pcCgpIGhldXJpc3RpY3MuCiAgICAgKgogICAgICogQHBhcmFtIGJvb2xlYW4gdHJ1ZSB0byBzZXQgdGhlIGZsYWcgb3ZlcnJpZGluZyB0aGUgaXNNYW5pcCgpIGJlaGF2aW91ciwKICAgICAqIGZhbHNlIHRvIGNsZWFyIGl0IGFuZCBmYWxsIGJhY2sgb250byBpc01hbmlwKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBuZXh0UXVlcnlJc01hbmlwKCRtYW5pcCkKICAgIHsKICAgICAgICAkdGhpcy0+X25leHRfcXVlcnlfbWFuaXAgPSAkbWFuaXA7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgX2NoZWNrTWFuaXAoKQoKICAgIC8qKgogICAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiBxdWVyeSBpcyBhIG1hbmlwdWxhdGlvbiBxdWVyeS4gVGhpcyBhbHNvIHRha2VzIGludG8KICAgICAqIGFjY291bnQgdGhlIF9uZXh0X3F1ZXJ5X21hbmlwIGZsYWcgYW5kIHNldHMgdGhlIF9sYXN0X3F1ZXJ5X21hbmlwIGZsYWcKICAgICAqIChhbmQgcmVzZXRzIF9uZXh0X3F1ZXJ5X21hbmlwKSBhY2NvcmRpbmcgdG8gdGhlIHJlc3VsdC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nIFRoZSBxdWVyeSB0byBjaGVjay4KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBpZiB0aGUgcXVlcnkgaXMgYSBtYW5pcHVsYXRpb24gcXVlcnksIGZhbHNlCiAgICAgKiBvdGhlcndpc2UKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBmdW5jdGlvbiBfY2hlY2tNYW5pcCgkcXVlcnkpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5fbmV4dF9xdWVyeV9tYW5pcCB8fCBEQjo6aXNNYW5pcCgkcXVlcnkpKSB7CiAgICAgICAgICAgICR0aGlzLT5fbGFzdF9xdWVyeV9tYW5pcCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl9sYXN0X3F1ZXJ5X21hbmlwID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5fbmV4dF9xdWVyeV9tYW5pcCA9IGZhbHNlOwogICAgICAgIHJldHVybiAkdGhpcy0+X2xhc3RfcXVlcnlfbWFuaXA7CiAgICAgICAgJG1hbmlwID0gJHRoaXMtPl9uZXh0X3F1ZXJ5X21hbmlwOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9ydHJpbUFycmF5VmFsdWVzKCkKCiAgICAvKioKICAgICAqIFJpZ2h0LXRyaW1zIGFsbCBzdHJpbmdzIGluIGFuIGFycmF5CiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRhcnJheSAgdGhlIGFycmF5IHRvIGJlIHRyaW1tZWQgKHBhc3NlZCBieSByZWZlcmVuY2UpCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gX3J0cmltQXJyYXlWYWx1ZXMoJiRhcnJheSkKICAgIHsKICAgICAgICBmb3JlYWNoICgkYXJyYXkgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgaWYgKGlzX3N0cmluZygkdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAkYXJyYXlbJGtleV0gPSBydHJpbSgkdmFsdWUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9jb252ZXJ0TnVsbEFycmF5VmFsdWVzVG9FbXB0eSgpCgogICAgLyoqCiAgICAgKiBDb252ZXJ0cyBhbGwgbnVsbCB2YWx1ZXMgaW4gYW4gYXJyYXkgdG8gZW1wdHkgc3RyaW5ncwogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAgJGFycmF5ICB0aGUgYXJyYXkgdG8gYmUgZGUtbnVsbGlmaWVkIChwYXNzZWQgYnkgcmVmZXJlbmNlKQogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICoKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIGZ1bmN0aW9uIF9jb252ZXJ0TnVsbEFycmF5VmFsdWVzVG9FbXB0eSgmJGFycmF5KQogICAgewogICAgICAgIGZvcmVhY2ggKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICBpZiAoaXNfbnVsbCgkdmFsdWUpKSB7CiAgICAgICAgICAgICAgICAkYXJyYXlbJGtleV0gPSAnJzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KfQoKLyoKICogTG9jYWwgdmFyaWFibGVzOgogKiB0YWItd2lkdGg6IDQKICogYy1iYXNpYy1vZmZzZXQ6IDQKICogRW5kOgogKi8KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/dbase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBkYmFzZSBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggZEJhc2UgZGF0YWJhc2VzCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBUb21hcyBWLlYuIENveCA8Y294QGlkZWNuZXQuY29tPgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBDVlM6ICRJZDogZGJhc2UucGhwLHYgMS40MiAyMDA3LzAxLzExIDA3OjQzOjA5IGFoYXJ2ZXkgRXhwICQKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwoKLyoqCiAqIE9idGFpbiB0aGUgREJfY29tbW9uIGNsYXNzIHNvIGl0IGNhbiBiZSBleHRlbmRlZCBmcm9tCiAqLwpyZXF1aXJlX29uY2UgJ0RCL2NvbW1vbi5waHAnOwoKLyoqCiAqIFRoZSBtZXRob2RzIFBFQVIgREIgdXNlcyB0byBpbnRlcmFjdCB3aXRoIFBIUCdzIGRiYXNlIGV4dGVuc2lvbgogKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBkQmFzZSBkYXRhYmFzZXMKICoKICogVGhlc2UgbWV0aG9kcyBvdmVybG9hZCB0aGUgb25lcyBkZWNsYXJlZCBpbiBEQl9jb21tb24uCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFRvbWFzIFYuVi4gQ294IDxjb3hAaWRlY25ldC5jb20+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDEuNy4xMgogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCmNsYXNzIERCX2RiYXNlIGV4dGVuZHMgREJfY29tbW9uCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgLyoqCiAgICAgKiBUaGUgREIgZHJpdmVyIHR5cGUgKG15c3FsLCBvY2k4LCBvZGJjLCBldGMuKQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRwaHB0eXBlID0gJ2RiYXNlJzsKCiAgICAvKioKICAgICAqIFRoZSBkYXRhYmFzZSBzeW50YXggdmFyaWFudCB0byBiZSB1c2VkIChkYjIsIGFjY2VzcywgZXRjLiksIGlmIGFueQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRkYnN5bnRheCA9ICdkYmFzZSc7CgogICAgLyoqCiAgICAgKiBUaGUgY2FwYWJpbGl0aWVzIG9mIHRoaXMgREIgaW1wbGVtZW50YXRpb24KICAgICAqCiAgICAgKiBUaGUgJ25ld19saW5rJyBlbGVtZW50IGNvbnRhaW5zIHRoZSBQSFAgdmVyc2lvbiB0aGF0IGZpcnN0IHByb3ZpZGVkCiAgICAgKiBuZXdfbGluayBzdXBwb3J0IGZvciB0aGlzIERCTVMuICBDb250YWlucyBmYWxzZSBpZiBpdCdzIHVuc3VwcG9ydGVkLgogICAgICoKICAgICAqIE1lYW5pbmcgb2YgdGhlICdsaW1pdCcgZWxlbWVudDoKICAgICAqICAgKyAnZW11bGF0ZScgPSBlbXVsYXRlIHdpdGggZmV0Y2ggcm93IGJ5IG51bWJlcgogICAgICogICArICdhbHRlcicgICA9IGFsdGVyIHRoZSBxdWVyeQogICAgICogICArIGZhbHNlICAgICA9IHNraXAgcm93cwogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRmZWF0dXJlcyA9IGFycmF5KAogICAgICAgICdsaW1pdCcgICAgICAgICA9PiBmYWxzZSwKICAgICAgICAnbmV3X2xpbmsnICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ251bXJvd3MnICAgICAgID0+IHRydWUsCiAgICAgICAgJ3Bjb25uZWN0JyAgICAgID0+IGZhbHNlLAogICAgICAgICdwcmVwYXJlJyAgICAgICA9PiBmYWxzZSwKICAgICAgICAnc3NsJyAgICAgICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ3RyYW5zYWN0aW9ucycgID0+IGZhbHNlLAogICAgKTsKCiAgICAvKioKICAgICAqIEEgbWFwcGluZyBvZiBuYXRpdmUgZXJyb3IgY29kZXMgdG8gREIgZXJyb3IgY29kZXMKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRlcnJvcmNvZGVfbWFwID0gYXJyYXkoCiAgICApOwoKICAgIC8qKgogICAgICogVGhlIHJhdyBkYXRhYmFzZSBjb25uZWN0aW9uIGNyZWF0ZWQgYnkgUEhQCiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKi8KICAgIHZhciAkY29ubmVjdGlvbjsKCiAgICAvKioKICAgICAqIFRoZSBEU04gaW5mb3JtYXRpb24gZm9yIGNvbm5lY3RpbmcgdG8gYSBkYXRhYmFzZQogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGRzbiA9IGFycmF5KCk7CgoKICAgIC8qKgogICAgICogQSBtZWFucyBvZiBlbXVsYXRpbmcgcmVzdWx0IHJlc291cmNlcwogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJHJlc19yb3cgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogVGhlIHF1YW50aXR5IG9mIHJlc3VsdHMgc28gZmFyCiAgICAgKgogICAgICogRm9yIGVtdWxhdGluZyByZXN1bHQgcmVzb3VyY2VzLgogICAgICoKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICB2YXIgJHJlc3VsdCA9IDA7CgogICAgLyoqCiAgICAgKiBNYXBzIGRiYXNlIGRhdGEgdHlwZSBpZCdzIHRvIGh1bWFuIHJlYWRhYmxlIHN0cmluZ3MKICAgICAqCiAgICAgKiBUaGUgaHVtYW4gcmVhZGFibGUgdmFsdWVzIGFyZSBiYXNlZCBvbiB0aGUgb3V0cHV0IG9mIFBIUCdzCiAgICAgKiBkYmFzZV9nZXRfaGVhZGVyX2luZm8oKSBmdW5jdGlvbi4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKiBAc2luY2UgUHJvcGVydHkgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS43LjAKICAgICAqLwogICAgdmFyICR0eXBlcyA9IGFycmF5KAogICAgICAgICdDJyA9PiAnY2hhcmFjdGVyJywKICAgICAgICAnRCcgPT4gJ2RhdGUnLAogICAgICAgICdMJyA9PiAnYm9vbGVhbicsCiAgICAgICAgJ00nID0+ICdtZW1vJywKICAgICAgICAnTicgPT4gJ251bWJlcicsCiAgICApOwoKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogVGhpcyBjb25zdHJ1Y3RvciBjYWxscyA8a2JkPiR0aGlzLT5EQl9jb21tb24oKTwva2JkPgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBEQl9kYmFzZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPkRCX2NvbW1vbigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2UgYW5kIGNyZWF0ZSBpdCBpZiBpdCBkb2Vzbid0IGV4aXN0CiAgICAgKgogICAgICogRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseS4gIFVzZSBEQjo6Y29ubmVjdCgpIGluc3RlYWQuCiAgICAgKgogICAgICogUEVBUiBEQidzIGRiYXNlIGRyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGV4dHJhIERTTiBvcHRpb25zOgogICAgICogICArIG1vZGUgICAgQW4gaW50ZWdlciBzcGVjaWZ5aW5nIHRoZSByZWFkL3dyaXRlIG1vZGUgdG8gdXNlCiAgICAgKiAgICAgICAgICAgICAgKDAgPSByZWFkIG9ubHksIDEgPSB3cml0ZSBvbmx5LCAyID0gcmVhZC93cml0ZSkuCiAgICAgKiAgICAgICAgICAgICAgQXZhaWxhYmxlIHNpbmNlIFBFQVIgREIgMS43LjAuCiAgICAgKiAgICsgZmllbGRzICBBbiBhcnJheSBvZiBhcnJheXMgdGhhdCBQSFAncyBkYmFzZV9jcmVhdGUoKSBmdW5jdGlvbiBuZWVkcwogICAgICogICAgICAgICAgICAgIHRvIGNyZWF0ZSBhIG5ldyBkYXRhYmFzZS4gIFRoaXMgaW5mb3JtYXRpb24gaXMgdXNlZCBpZiB0aGUKICAgICAqICAgICAgICAgICAgICBkQmFzZSBmaWxlIHNwZWNpZmllZCBpbiB0aGUgImRhdGFiYXNlIiBzZWdtZW50IG9mIHRoZSBEU04KICAgICAqICAgICAgICAgICAgICBkb2VzIG5vdCBleGlzdC4gIEZvciBtb3JlIGluZm8sIHNlZSB0aGUgUEhQIG1hbnVhbCdzCiAgICAgKiAgICAgICAgICAgICAge0BsaW5rIGh0dHA6Ly9waHAubmV0L2RiYXNlX2NyZWF0ZSBkYmFzZV9jcmVhdGUoKX0gcGFnZS4KICAgICAqICAgICAgICAgICAgICBBdmFpbGFibGUgc2luY2UgUEVBUiBEQiAxLjcuMC4KICAgICAqCiAgICAgKiBFeGFtcGxlIG9mIGhvdyB0byBjb25uZWN0IGFuZCBlc3RhYmxpc2ggYSBuZXcgZEJhc2UgZmlsZSBpZiBuZWNlc3Nhcnk6CiAgICAgKiA8Y29kZT4KICAgICAqIHJlcXVpcmVfb25jZSAnREIucGhwJzsKICAgICAqCiAgICAgKiAkZHNuID0gYXJyYXkoCiAgICAgKiAgICAgJ3BocHR5cGUnICA9PiAnZGJhc2UnLAogICAgICogICAgICdkYXRhYmFzZScgPT4gJy9wYXRoL2FuZC9uYW1lL29mL2RiYXNlL2ZpbGUnLAogICAgICogICAgICdtb2RlJyAgICAgPT4gMiwKICAgICAqICAgICAnZmllbGRzJyAgID0+IGFycmF5KAogICAgICogICAgICAgICBhcnJheSgnYScsICdOJywgNSwgMCksCiAgICAgKiAgICAgICAgIGFycmF5KCdiJywgJ0MnLCA0MCksCiAgICAgKiAgICAgICAgIGFycmF5KCdjJywgJ0MnLCAyNTUpLAogICAgICogICAgICAgICBhcnJheSgnZCcsICdDJywgMjApLAogICAgICogICAgICksCiAgICAgKiApOwogICAgICogJG9wdGlvbnMgPSBhcnJheSgKICAgICAqICAgICAnZGVidWcnICAgICAgID0+IDIsCiAgICAgKiAgICAgJ3BvcnRhYmlsaXR5JyA9PiBEQl9QT1JUQUJJTElUWV9BTEwsCiAgICAgKiApOwogICAgICoKICAgICAqICRkYiA9JiBEQjo6Y29ubmVjdCgkZHNuLCAkb3B0aW9ucyk7CiAgICAgKiBpZiAoUEVBUjo6aXNFcnJvcigkZGIpKSB7CiAgICAgKiAgICAgZGllKCRkYi0+Z2V0TWVzc2FnZSgpKTsKICAgICAqIH0KICAgICAqIDwvY29kZT4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJGRzbiAgICAgICAgIHRoZSBkYXRhIHNvdXJjZSBuYW1lCiAgICAgKiBAcGFyYW0gYm9vbCAgJHBlcnNpc3RlbnQgIHNob3VsZCB0aGUgY29ubmVjdGlvbiBiZSBwZXJzaXN0ZW50PwogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBjb25uZWN0KCRkc24sICRwZXJzaXN0ZW50ID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCFQRUFSOjpsb2FkRXh0ZW5zaW9uKCdkYmFzZScpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9FWFRFTlNJT05fTk9UX0ZPVU5EKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5kc24gPSAkZHNuOwogICAgICAgIGlmICgkZHNuWydkYnN5bnRheCddKSB7CiAgICAgICAgICAgICR0aGlzLT5kYnN5bnRheCA9ICRkc25bJ2Ric3ludGF4J107CiAgICAgICAgfQoKICAgICAgICAvKgogICAgICAgICAqIFR1cm4gdHJhY2tfZXJyb3JzIG9uIGZvciBlbnRpcmUgc2NyaXB0IHNpbmNlICRwaHBfZXJyb3Jtc2cKICAgICAgICAgKiBpcyB0aGUgb25seSB3YXkgdG8gZmluZCBlcnJvcnMgZnJvbSB0aGUgZGJhc2UgZXh0ZW5zaW9uLgogICAgICAgICAqLwogICAgICAgIEBpbmlfc2V0KCd0cmFja19lcnJvcnMnLCAxKTsKICAgICAgICAkcGhwX2Vycm9ybXNnID0gJyc7CgogICAgICAgIGlmICghZmlsZV9leGlzdHMoJGRzblsnZGF0YWJhc2UnXSkpIHsKICAgICAgICAgICAgJHRoaXMtPmRzblsnbW9kZSddID0gMjsKICAgICAgICAgICAgaWYgKGVtcHR5KCRkc25bJ2ZpZWxkcyddKSB8fCAhaXNfYXJyYXkoJGRzblsnZmllbGRzJ10pKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfQ09OTkVDVF9GQUlMRUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGhlIGRiYXNlIGZpbGUgZG9lcyBub3QgZXhpc3QgYW5kICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdpdCBjb3VsZCBub3QgYmUgY3JlYXRlZCBiZWNhdXNlICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICd0aGUgImZpZWxkcyIgZWxlbWVudCBvZiB0aGUgRFNOICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICdpcyBub3QgcHJvcGVybHkgc2V0Jyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAZGJhc2VfY3JlYXRlKCRkc25bJ2RhdGFiYXNlJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZHNuWydmaWVsZHMnXSk7CiAgICAgICAgICAgIGlmICghJHRoaXMtPmNvbm5lY3Rpb24pIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aGUgZGJhc2UgZmlsZSBkb2VzIG5vdCBleGlzdCBhbmQgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ3RoZSBhdHRlbXB0IHRvIGNyZWF0ZSBpdCBmYWlsZWQ6ICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICRwaHBfZXJyb3Jtc2cpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKCFpc3NldCgkdGhpcy0+ZHNuWydtb2RlJ10pKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZHNuWydtb2RlJ10gPSAwOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQGRiYXNlX29wZW4oJGRzblsnZGF0YWJhc2UnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZHNuWydtb2RlJ10pOwogICAgICAgICAgICBpZiAoISR0aGlzLT5jb25uZWN0aW9uKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfQ09OTkVDVF9GQUlMRUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGhwX2Vycm9ybXNnKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZGlzY29ubmVjdCgpCgogICAgLyoqCiAgICAgKiBEaXNjb25uZWN0cyBmcm9tIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0Ugb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBkaXNjb25uZWN0KCkKICAgIHsKICAgICAgICAkcmV0ID0gQGRiYXNlX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IG51bGw7CiAgICAgICAgcmV0dXJuICRyZXQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgJnF1ZXJ5KCkKCiAgICBmdW5jdGlvbiAmcXVlcnkoJHF1ZXJ5ID0gbnVsbCkKICAgIHsKICAgICAgICAvLyBlbXVsYXRlIHJlc3VsdCByZXNvdXJjZXMKICAgICAgICAkdGhpcy0+cmVzX3Jvd1soaW50KSR0aGlzLT5yZXN1bHRdID0gMDsKICAgICAgICAkdG1wID0mIG5ldyBEQl9yZXN1bHQoJHRoaXMsICR0aGlzLT5yZXN1bHQrKyk7CiAgICAgICAgcmV0dXJuICR0bXA7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hJbnRvKCkKCiAgICAvKioKICAgICAqIFBsYWNlcyBhIHJvdyBmcm9tIHRoZSByZXN1bHQgc2V0IGludG8gdGhlIGdpdmVuIGFycmF5CiAgICAgKgogICAgICogRm9ybWF0aW5nIG9mIHRoZSBhcnJheSBhbmQgdGhlIGRhdGEgdGhlcmVpbiBhcmUgY29uZmlndXJhYmxlLgogICAgICogU2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmZXRjaEludG8oKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICAgIHRoZSBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqIEBwYXJhbSBhcnJheSAgICAkYXJyICAgICAgIHRoZSByZWZlcmVuY2VkIGFycmF5IHRvIHB1dCB0aGUgZGF0YSBpbgogICAgICogQHBhcmFtIGludCAgICAgICRmZXRjaG1vZGUgaG93IHRoZSByZXN1bHRpbmcgYXJyYXkgc2hvdWxkIGJlIGluZGV4ZWQKICAgICAqIEBwYXJhbSBpbnQgICAgICAkcm93bnVtICAgIHRoZSByb3cgbnVtYmVyIHRvIGZldGNoICgwID0gZmlyc3Qgcm93KQogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIERCX09LIG9uIHN1Y2Nlc3MsIE5VTEwgd2hlbiB0aGUgZW5kIG9mIGEgcmVzdWx0IHNldCBpcwogICAgICogICAgICAgICAgICAgICAgIHJlYWNoZWQgb3Igb24gZmFpbHVyZQogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKQogICAgICovCiAgICBmdW5jdGlvbiBmZXRjaEludG8oJHJlc3VsdCwgJiRhcnIsICRmZXRjaG1vZGUsICRyb3dudW0gPSBudWxsKQogICAgewogICAgICAgIGlmICgkcm93bnVtID09PSBudWxsKSB7CiAgICAgICAgICAgICRyb3dudW0gPSAkdGhpcy0+cmVzX3Jvd1soaW50KSRyZXN1bHRdKys7CiAgICAgICAgfQogICAgICAgIGlmICgkZmV0Y2htb2RlICYgREJfRkVUQ0hNT0RFX0FTU09DKSB7CiAgICAgICAgICAgICRhcnIgPSBAZGJhc2VfZ2V0X3JlY29yZF93aXRoX25hbWVzKCR0aGlzLT5jb25uZWN0aW9uLCAkcm93bnVtKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmICRhcnIpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYXJyID0gQGRiYXNlX2dldF9yZWNvcmQoJHRoaXMtPmNvbm5lY3Rpb24sICRyb3dudW0pOwogICAgICAgIH0KICAgICAgICBpZiAoISRhcnIpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX1JUUklNKSB7CiAgICAgICAgICAgICR0aGlzLT5fcnRyaW1BcnJheVZhbHVlcygkYXJyKTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTlVMTF9UT19FTVBUWSkgewogICAgICAgICAgICAkdGhpcy0+X2NvbnZlcnROdWxsQXJyYXlWYWx1ZXNUb0VtcHR5KCRhcnIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZnJlZVJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIHRoZSByZXN1bHQgc2V0IGFuZCBmcmVlcyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXN1bHQgc2V0LgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIGEgbm8tb3AgZm9yIGRiYXNlLCBhcyB0aGVyZSBhcmVuJ3QgcmVzdWx0IHJlc291cmNlcyBpbgogICAgICogdGhlIHNhbWUgc2Vuc2UgYXMgbW9zdCBvdGhlciBkYXRhYmFzZSBiYWNrZW5kcy4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIGlmICRyZXN1bHQgaXMgaW52YWxpZAogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmcmVlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZnJlZVJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG51bUNvbHMoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpudW1Db2xzKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2YgY29sdW1ucy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6Om51bUNvbHMoKQogICAgICovCiAgICBmdW5jdGlvbiBudW1Db2xzKCRmb28pCiAgICB7CiAgICAgICAgcmV0dXJuIEBkYmFzZV9udW1maWVsZHMoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG51bVJvd3MoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpudW1Sb3dzKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2Ygcm93cy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6Om51bVJvd3MoKQogICAgICovCiAgICBmdW5jdGlvbiBudW1Sb3dzKCRmb28pCiAgICB7CiAgICAgICAgcmV0dXJuIEBkYmFzZV9udW1yZWNvcmRzKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdW90ZUJvb2xlYW4oKQoKICAgIC8qKgogICAgICogRm9ybWF0cyBhIGJvb2xlYW4gdmFsdWUgZm9yIHVzZSB3aXRoaW4gYSBxdWVyeSBpbiBhIGxvY2FsZS1pbmRlcGVuZGVudAogICAgICogbWFubmVyLgogICAgICoKICAgICAqIEBwYXJhbSBib29sZWFuIHRoZSBib29sZWFuIHZhbHVlIHRvIGJlIHF1b3RlZC4KICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBxdW90ZWQgc3RyaW5nLgogICAgICogQHNlZSBEQl9jb21tb246OnF1b3RlU21hcnQoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgcmVsZWFzZSAxLjcuOC4KICAgICAqLwogICAgZnVuY3Rpb24gcXVvdGVCb29sZWFuKCRib29sZWFuKSB7CiAgICAgICAgcmV0dXJuICRib29sZWFuID8gJ1QnIDogJ0YnOwogICAgfQogICAgIAogICAgLy8gfX19CiAgICAvLyB7e3sgdGFibGVJbmZvKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGN1cnJlbnQgZGF0YWJhc2UKICAgICAqCiAgICAgKiBAcGFyYW0gbWl4ZWQgJHJlc3VsdCAgVEhJUyBJUyBVTlVTRUQgSU4gREJBU0UuICBUaGUgY3VycmVudCBkYXRhYmFzZQogICAgICogICAgICAgICAgICAgICAgICAgICAgIGlzIGV4YW1pbmVkIHJlZ2FyZGxlc3Mgb2Ygd2hhdCBpcyBwcm92aWRlZCBoZXJlLgogICAgICogQHBhcmFtIGludCAgICRtb2RlICAgIGEgdmFsaWQgdGFibGVJbmZvIG1vZGUKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHRoZSBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQuCiAgICAgKiAgICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6dGFibGVJbmZvKCkKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS43LjAKICAgICAqLwogICAgZnVuY3Rpb24gdGFibGVJbmZvKCRyZXN1bHQgPSBudWxsLCAkbW9kZSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnZGJhc2VfZ2V0X2hlYWRlcl9pbmZvJykpIHsKICAgICAgICAgICAgJGlkID0gQGRiYXNlX2dldF9oZWFkZXJfaW5mbygkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgIGlmICghJGlkICYmICRwaHBfZXJyb3Jtc2cpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaHBfZXJyb3Jtc2cpOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogVGhpcyBzZWdtZW50IGZvciBQSFAgNCBpcyBsb29zZWx5IGJhc2VkIG9uIGNvZGUgYnkKICAgICAgICAgICAgICogSGFkaSBSdXNpYWggPGRlZWdvc0B5YWhvby5jb20+IGluIHRoZSBjb21tZW50cyBvbgogICAgICAgICAgICAgKiB0aGUgZEJhc2UgcmVmZXJlbmNlIHBhZ2UgaW4gdGhlIFBIUCBtYW51YWwuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkZGIgPSBAZm9wZW4oJHRoaXMtPmRzblsnZGF0YWJhc2UnXSwgJ3InKTsKICAgICAgICAgICAgaWYgKCEkZGIpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaHBfZXJyb3Jtc2cpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkaWQgPSBhcnJheSgpOwogICAgICAgICAgICAkaSAgPSAwOwoKICAgICAgICAgICAgJGxpbmUgPSBmcmVhZCgkZGIsIDMyKTsKICAgICAgICAgICAgd2hpbGUgKCFmZW9mKCRkYikpIHsKICAgICAgICAgICAgICAgICRsaW5lID0gZnJlYWQoJGRiLCAzMik7CiAgICAgICAgICAgICAgICBpZiAoc3Vic3RyKCRsaW5lLCAwLCAxKSA9PSBjaHIoMTMpKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRwb3MgPSBzdHJwb3Moc3Vic3RyKCRsaW5lLCAwLCAxMCksIGNocigwKSk7CiAgICAgICAgICAgICAgICAgICAgJHBvcyA9ICgkcG9zID09IDAgPyAxMCA6ICRwb3MpOwogICAgICAgICAgICAgICAgICAgICRpZFskaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgJ25hbWUnICAgPT4gc3Vic3RyKCRsaW5lLCAwLCAkcG9zKSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgPT4gJHRoaXMtPnR5cGVzW3N1YnN0cigkbGluZSwgMTEsIDEpXSwKICAgICAgICAgICAgICAgICAgICAgICAgJ2xlbmd0aCcgPT4gb3JkKHN1YnN0cigkbGluZSwgMTYsIDEpKSwKICAgICAgICAgICAgICAgICAgICAgICAgJ3ByZWNpc2lvbicgPT4gb3JkKHN1YnN0cigkbGluZSwgMTcsIDEpKSwKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGkrKzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZmNsb3NlKCRkYik7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9MT1dFUkNBU0UpIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ0b2xvd2VyJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkY2FzZV9mdW5jID0gJ3N0cnZhbCc7CiAgICAgICAgfQoKICAgICAgICAkcmVzICAgPSBhcnJheSgpOwogICAgICAgICRjb3VudCA9IGNvdW50KCRpZCk7CgogICAgICAgIGlmICgkbW9kZSkgewogICAgICAgICAgICAkcmVzWydudW1fZmllbGRzJ10gPSAkY291bnQ7CiAgICAgICAgfQoKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgJHJlc1skaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICd0YWJsZScgPT4gJHRoaXMtPmRzblsnZGF0YWJhc2UnXSwKICAgICAgICAgICAgICAgICduYW1lJyAgPT4gJGNhc2VfZnVuYygkaWRbJGldWyduYW1lJ10pLAogICAgICAgICAgICAgICAgJ3R5cGUnICA9PiAkaWRbJGldWyd0eXBlJ10sCiAgICAgICAgICAgICAgICAnbGVuJyAgID0+ICRpZFskaV1bJ2xlbmd0aCddLAogICAgICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJwogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVIpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVyJ11bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXJ0YWJsZSddWyRyZXNbJGldWyd0YWJsZSddXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvLyB9fX0KfQoKLyoKICogTG9jYWwgdmFyaWFibGVzOgogKiB0YWItd2lkdGg6IDQKICogYy1iYXNpYy1vZmZzZXQ6IDQKICogRW5kOgogKi8KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/fbsql.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBmYnNxbCBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggRnJvbnRCYXNlIGRhdGFiYXNlcwogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgRnJhbmsgTS4gS3JvbWFubiA8ZnJhbmtAZnJvbnRiYXNlLmNvbT4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgQ1ZTOiAkSWQ6IGZic3FsLnBocCx2IDEuODcgMjAwNy8wMy8yOCAwODowMjozNSBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBPYnRhaW4gdGhlIERCX2NvbW1vbiBjbGFzcyBzbyBpdCBjYW4gYmUgZXh0ZW5kZWQgZnJvbQogKi8KcmVxdWlyZV9vbmNlICdEQi9jb21tb24ucGhwJzsKCi8qKgogKiBUaGUgbWV0aG9kcyBQRUFSIERCIHVzZXMgdG8gaW50ZXJhY3Qgd2l0aCBQSFAncyBmYnNxbCBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggRnJvbnRCYXNlIGRhdGFiYXNlcwogKgogKiBUaGVzZSBtZXRob2RzIG92ZXJsb2FkIHRoZSBvbmVzIGRlY2xhcmVkIGluIERCX2NvbW1vbi4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgRnJhbmsgTS4gS3JvbWFubiA8ZnJhbmtAZnJvbnRiYXNlLmNvbT4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgUmVsZWFzZTogMS43LjEyCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKiBAc2luY2UgICAgICBDbGFzcyBmdW5jdGlvbmFsIHNpbmNlIFJlbGVhc2UgMS43LjAKICovCmNsYXNzIERCX2Zic3FsIGV4dGVuZHMgREJfY29tbW9uCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgLyoqCiAgICAgKiBUaGUgREIgZHJpdmVyIHR5cGUgKG15c3FsLCBvY2k4LCBvZGJjLCBldGMuKQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRwaHB0eXBlID0gJ2Zic3FsJzsKCiAgICAvKioKICAgICAqIFRoZSBkYXRhYmFzZSBzeW50YXggdmFyaWFudCB0byBiZSB1c2VkIChkYjIsIGFjY2VzcywgZXRjLiksIGlmIGFueQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRkYnN5bnRheCA9ICdmYnNxbCc7CgogICAgLyoqCiAgICAgKiBUaGUgY2FwYWJpbGl0aWVzIG9mIHRoaXMgREIgaW1wbGVtZW50YXRpb24KICAgICAqCiAgICAgKiBUaGUgJ25ld19saW5rJyBlbGVtZW50IGNvbnRhaW5zIHRoZSBQSFAgdmVyc2lvbiB0aGF0IGZpcnN0IHByb3ZpZGVkCiAgICAgKiBuZXdfbGluayBzdXBwb3J0IGZvciB0aGlzIERCTVMuICBDb250YWlucyBmYWxzZSBpZiBpdCdzIHVuc3VwcG9ydGVkLgogICAgICoKICAgICAqIE1lYW5pbmcgb2YgdGhlICdsaW1pdCcgZWxlbWVudDoKICAgICAqICAgKyAnZW11bGF0ZScgPSBlbXVsYXRlIHdpdGggZmV0Y2ggcm93IGJ5IG51bWJlcgogICAgICogICArICdhbHRlcicgICA9IGFsdGVyIHRoZSBxdWVyeQogICAgICogICArIGZhbHNlICAgICA9IHNraXAgcm93cwogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRmZWF0dXJlcyA9IGFycmF5KAogICAgICAgICdsaW1pdCcgICAgICAgICA9PiAnYWx0ZXInLAogICAgICAgICduZXdfbGluaycgICAgICA9PiBmYWxzZSwKICAgICAgICAnbnVtcm93cycgICAgICAgPT4gdHJ1ZSwKICAgICAgICAncGNvbm5lY3QnICAgICAgPT4gdHJ1ZSwKICAgICAgICAncHJlcGFyZScgICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ3NzbCcgICAgICAgICAgID0+IGZhbHNlLAogICAgICAgICd0cmFuc2FjdGlvbnMnICA9PiB0cnVlLAogICAgKTsKCiAgICAvKioKICAgICAqIEEgbWFwcGluZyBvZiBuYXRpdmUgZXJyb3IgY29kZXMgdG8gREIgZXJyb3IgY29kZXMKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRlcnJvcmNvZGVfbWFwID0gYXJyYXkoCiAgICAgICAgIDIyID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAgODUgPT4gREJfRVJST1JfQUxSRUFEWV9FWElTVFMsCiAgICAgICAgMTA4ID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAxMTYgPT4gREJfRVJST1JfTk9TVUNIVEFCTEUsCiAgICAgICAgMTI0ID0+IERCX0VSUk9SX1ZBTFVFX0NPVU5UX09OX1JPVywKICAgICAgICAyMTUgPT4gREJfRVJST1JfTk9TVUNIRklFTEQsCiAgICAgICAgMjE3ID0+IERCX0VSUk9SX0lOVkFMSURfTlVNQkVSLAogICAgICAgIDIyNiA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAyMzEgPT4gREJfRVJST1JfSU5WQUxJRCwKICAgICAgICAyMzkgPT4gREJfRVJST1JfVFJVTkNBVEVELAogICAgICAgIDI1MSA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgMjY2ID0+IERCX0VSUk9SX05PVF9GT1VORCwKICAgICAgICAzNTcgPT4gREJfRVJST1JfQ09OU1RSQUlOVF9OT1RfTlVMTCwKICAgICAgICAzNTggPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAzNjAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAzNjEgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICk7CgogICAgLyoqCiAgICAgKiBUaGUgcmF3IGRhdGFiYXNlIGNvbm5lY3Rpb24gY3JlYXRlZCBieSBQSFAKICAgICAqIEB2YXIgcmVzb3VyY2UKICAgICAqLwogICAgdmFyICRjb25uZWN0aW9uOwoKICAgIC8qKgogICAgICogVGhlIERTTiBpbmZvcm1hdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIGRhdGFiYXNlCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZHNuID0gYXJyYXkoKTsKCgogICAgLy8gfX19CiAgICAvLyB7e3sgY29uc3RydWN0b3IKCiAgICAvKioKICAgICAqIFRoaXMgY29uc3RydWN0b3IgY2FsbHMgPGtiZD4kdGhpcy0+REJfY29tbW9uKCk8L2tiZD4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gREJfZmJzcWwoKQogICAgewogICAgICAgICR0aGlzLT5EQl9jb21tb24oKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25uZWN0KCkKCiAgICAvKioKICAgICAqIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNlcnZlciwgbG9nIGluIGFuZCBvcGVuIHRoZSBkYXRhYmFzZQogICAgICoKICAgICAqIERvbid0IGNhbGwgdGhpcyBtZXRob2QgZGlyZWN0bHkuICBVc2UgREI6OmNvbm5lY3QoKSBpbnN0ZWFkLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkZHNuICAgICAgICAgdGhlIGRhdGEgc291cmNlIG5hbWUKICAgICAqIEBwYXJhbSBib29sICAkcGVyc2lzdGVudCAgc2hvdWxkIHRoZSBjb25uZWN0aW9uIGJlIHBlcnNpc3RlbnQ/CiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNvbm5lY3QoJGRzbiwgJHBlcnNpc3RlbnQgPSBmYWxzZSkKICAgIHsKICAgICAgICBpZiAoIVBFQVI6OmxvYWRFeHRlbnNpb24oJ2Zic3FsJykpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0VYVEVOU0lPTl9OT1RfRk9VTkQpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmRzbiA9ICRkc247CiAgICAgICAgaWYgKCRkc25bJ2Ric3ludGF4J10pIHsKICAgICAgICAgICAgJHRoaXMtPmRic3ludGF4ID0gJGRzblsnZGJzeW50YXgnXTsKICAgICAgICB9CgogICAgICAgICRwYXJhbXMgPSBhcnJheSgKICAgICAgICAgICAgJGRzblsnaG9zdHNwZWMnXSA/ICRkc25bJ2hvc3RzcGVjJ10gOiAnbG9jYWxob3N0JywKICAgICAgICAgICAgJGRzblsndXNlcm5hbWUnXSA/ICRkc25bJ3VzZXJuYW1lJ10gOiBudWxsLAogICAgICAgICAgICAkZHNuWydwYXNzd29yZCddID8gJGRzblsncGFzc3dvcmQnXSA6IG51bGwsCiAgICAgICAgKTsKCiAgICAgICAgJGNvbm5lY3RfZnVuY3Rpb24gPSAkcGVyc2lzdGVudCA/ICdmYnNxbF9wY29ubmVjdCcgOiAnZmJzcWxfY29ubmVjdCc7CgogICAgICAgICRpbmkgPSBpbmlfZ2V0KCd0cmFja19lcnJvcnMnKTsKICAgICAgICAkcGhwX2Vycm9ybXNnID0gJyc7CiAgICAgICAgaWYgKCRpbmkpIHsKICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAY2FsbF91c2VyX2Z1bmNfYXJyYXkoJGNvbm5lY3RfZnVuY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIEBpbmlfc2V0KCd0cmFja19lcnJvcnMnLCAxKTsKICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAY2FsbF91c2VyX2Z1bmNfYXJyYXkoJGNvbm5lY3RfZnVuY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXMpOwogICAgICAgICAgICBAaW5pX3NldCgndHJhY2tfZXJyb3JzJywgJGluaSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoISR0aGlzLT5jb25uZWN0aW9uKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGhwX2Vycm9ybXNnKTsKICAgICAgICB9CgogICAgICAgIGlmICgkZHNuWydkYXRhYmFzZSddKSB7CiAgICAgICAgICAgIGlmICghQGZic3FsX3NlbGVjdF9kYigkZHNuWydkYXRhYmFzZSddLCAkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZmJzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBkaXNjb25uZWN0KCkKCiAgICAvKioKICAgICAqIERpc2Nvbm5lY3RzIGZyb20gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgVFJVRSBvbiBzdWNjZXNzLCBGQUxTRSBvbiBmYWlsdXJlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpc2Nvbm5lY3QoKQogICAgewogICAgICAgICRyZXQgPSBAZmJzcWxfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICByZXR1cm4gJHJldDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBzaW1wbGVRdWVyeSgpCgogICAgLyoqCiAgICAgKiBTZW5kcyBhIHF1ZXJ5IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZwogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgICsgYSBQSFAgcmVzdWx0IHJlc3JvdWNlIGZvciBzdWNjZXNzZnVsIFNFTEVDVCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIHRoZSBEQl9PSyBjb25zdGFudCBmb3Igb3RoZXIgc3VjY2Vzc2Z1bCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIGEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUKICAgICAqLwogICAgZnVuY3Rpb24gc2ltcGxlUXVlcnkoJHF1ZXJ5KQogICAgewogICAgICAgICR0aGlzLT5sYXN0X3F1ZXJ5ID0gJHF1ZXJ5OwogICAgICAgICRxdWVyeSA9ICR0aGlzLT5tb2RpZnlRdWVyeSgkcXVlcnkpOwogICAgICAgICRyZXN1bHQgPSBAZmJzcWxfcXVlcnkoIiRxdWVyeTsiLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZmJzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIC8vIERldGVybWluZSB3aGljaCBxdWVyaWVzIHRoYXQgc2hvdWxkIHJldHVybiBkYXRhLCBhbmQgd2hpY2gKICAgICAgICAvLyBzaG91bGQgcmV0dXJuIGFuIGVycm9yIGNvZGUgb25seS4KICAgICAgICBpZiAoJHRoaXMtPl9jaGVja01hbmlwKCRxdWVyeSkpIHsKICAgICAgICAgICAgcmV0dXJuIERCX09LOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBuZXh0UmVzdWx0KCkKCiAgICAvKioKICAgICAqIE1vdmUgdGhlIGludGVybmFsIGZic3FsIHJlc3VsdCBwb2ludGVyIHRvIHRoZSBuZXh0IGF2YWlsYWJsZSByZXN1bHQKICAgICAqCiAgICAgKiBAcGFyYW0gYSB2YWxpZCBmYnNxbCByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICoKICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhIHJlc3VsdCBpcyBhdmFpbGFibGUgb3RoZXJ3aXNlIHJldHVybiBmYWxzZQogICAgICovCiAgICBmdW5jdGlvbiBuZXh0UmVzdWx0KCRyZXN1bHQpCiAgICB7CiAgICAgICAgcmV0dXJuIEBmYnNxbF9uZXh0X3Jlc3VsdCgkcmVzdWx0KTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBmZXRjaEludG8oKQoKICAgIC8qKgogICAgICogUGxhY2VzIGEgcm93IGZyb20gdGhlIHJlc3VsdCBzZXQgaW50byB0aGUgZ2l2ZW4gYXJyYXkKICAgICAqCiAgICAgKiBGb3JtYXRpbmcgb2YgdGhlIGFycmF5IGFuZCB0aGUgZGF0YSB0aGVyZWluIGFyZSBjb25maWd1cmFibGUuCiAgICAgKiBTZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6OmZldGNoSW50bygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgICAgdGhlIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICogQHBhcmFtIGFycmF5ICAgICRhcnIgICAgICAgdGhlIHJlZmVyZW5jZWQgYXJyYXkgdG8gcHV0IHRoZSBkYXRhIGluCiAgICAgKiBAcGFyYW0gaW50ICAgICAgJGZldGNobW9kZSBob3cgdGhlIHJlc3VsdGluZyBhcnJheSBzaG91bGQgYmUgaW5kZXhlZAogICAgICogQHBhcmFtIGludCAgICAgICRyb3dudW0gICAgdGhlIHJvdyBudW1iZXIgdG8gZmV0Y2ggKDAgPSBmaXJzdCByb3cpCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgREJfT0sgb24gc3VjY2VzcywgTlVMTCB3aGVuIHRoZSBlbmQgb2YgYSByZXN1bHQgc2V0IGlzCiAgICAgKiAgICAgICAgICAgICAgICAgcmVhY2hlZCBvciBvbiBmYWlsdXJlCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6OmZldGNoSW50bygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZldGNoSW50bygkcmVzdWx0LCAmJGFyciwgJGZldGNobW9kZSwgJHJvd251bSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRyb3dudW0gIT09IG51bGwpIHsKICAgICAgICAgICAgaWYgKCFAZmJzcWxfZGF0YV9zZWVrKCRyZXN1bHQsICRyb3dudW0pKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoJGZldGNobW9kZSAmIERCX0ZFVENITU9ERV9BU1NPQykgewogICAgICAgICAgICAkYXJyID0gQGZic3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIEZCU1FMX0FTU09DKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmICRhcnIpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYXJyID0gQGZic3FsX2ZldGNoX3JvdygkcmVzdWx0KTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkYXJyKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9SVFJJTSkgewogICAgICAgICAgICAkdGhpcy0+X3J0cmltQXJyYXlWYWx1ZXMoJGFycik7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX05VTExfVE9fRU1QVFkpIHsKICAgICAgICAgICAgJHRoaXMtPl9jb252ZXJ0TnVsbEFycmF5VmFsdWVzVG9FbXB0eSgkYXJyKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGZyZWVSZXN1bHQoKQoKICAgIC8qKgogICAgICogRGVsZXRlcyB0aGUgcmVzdWx0IHNldCBhbmQgZnJlZXMgdGhlIG1lbW9yeSBvY2N1cGllZCBieSB0aGUgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6ZnJlZSgpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgVFJVRSBvbiBzdWNjZXNzLCBGQUxTRSBpZiAkcmVzdWx0IGlzIGludmFsaWQKICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6ZnJlZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZyZWVSZXN1bHQoJHJlc3VsdCkKICAgIHsKICAgICAgICByZXR1cm4gaXNfcmVzb3VyY2UoJHJlc3VsdCkgPyBmYnNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KSA6IGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGF1dG9Db21taXQoKQoKICAgIC8qKgogICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhdXRvbWF0aWMgY29tbWl0cwogICAgICoKICAgICAqIEBwYXJhbSBib29sICRvbm9mZiAgdHJ1ZSB0dXJucyBpdCBvbiwgZmFsc2UgdHVybnMgaXQgb2ZmCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBpZiB0aGUgZHJpdmVyCiAgICAgKiAgICAgICAgICAgICAgIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBhdXRvQ29tbWl0KCRvbm9mZj1mYWxzZSkKICAgIHsKICAgICAgICBpZiAoJG9ub2ZmKSB7CiAgICAgICAgICAgICR0aGlzLT5xdWVyeSgiU0VUIENPTU1JVCBUUlVFIik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPnF1ZXJ5KCJTRVQgQ09NTUlUIEZBTFNFIik7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbW1pdCgpCgogICAgLyoqCiAgICAgKiBDb21taXRzIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBjb21taXQoKQogICAgewogICAgICAgIEBmYnNxbF9jb21taXQoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHJvbGxiYWNrKCkKCiAgICAvKioKICAgICAqIFJldmVydHMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHJvbGxiYWNrKCkKICAgIHsKICAgICAgICBAZmJzcWxfcm9sbGJhY2soJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG51bUNvbHMoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpudW1Db2xzKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2YgY29sdW1ucy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6Om51bUNvbHMoKQogICAgICovCiAgICBmdW5jdGlvbiBudW1Db2xzKCRyZXN1bHQpCiAgICB7CiAgICAgICAgJGNvbHMgPSBAZmJzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTsKICAgICAgICBpZiAoISRjb2xzKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZmJzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkY29sczsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Sb3dzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiByb3dzIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6bnVtUm93cygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpudW1Sb3dzKCkKICAgICAqLwogICAgZnVuY3Rpb24gbnVtUm93cygkcmVzdWx0KQogICAgewogICAgICAgICRyb3dzID0gQGZic3FsX251bV9yb3dzKCRyZXN1bHQpOwogICAgICAgIGlmICgkcm93cyA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmZic3FsUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJvd3M7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYWZmZWN0ZWRSb3dzKCkKCiAgICAvKioKICAgICAqIERldGVybWluZXMgdGhlIG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IGEgZGF0YSBtYW5pdXBsYXRpb24gcXVlcnkKICAgICAqCiAgICAgKiAwIGlzIHJldHVybmVkIGZvciBxdWVyaWVzIHRoYXQgZG9uJ3QgbWFuaXB1bGF0ZSBkYXRhLgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBhZmZlY3RlZFJvd3MoKQogICAgewogICAgICAgIGlmICgkdGhpcy0+X2xhc3RfcXVlcnlfbWFuaXApIHsKICAgICAgICAgICAgJHJlc3VsdCA9IEBmYnNxbF9hZmZlY3RlZF9yb3dzKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcmVzdWx0ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG5leHRJZCgpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGZyZWUgaWQgaW4gYSBzZXF1ZW5jZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgc2VxdWVuY2UKICAgICAqIEBwYXJhbSBib29sZWFuICRvbmRlbWFuZCAgd2hlbiB0cnVlLCB0aGUgc2VxZW5jZSBpcyBhdXRvbWF0aWNhbGx5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkIGlmIGl0IGRvZXMgbm90IGV4aXN0CiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBuZXh0IGlkIG51bWJlciBpbiB0aGUgc2VxdWVuY2UuCiAgICAgKiAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246Om5leHRJRCgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9mYnNxbDo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfZmJzcWw6OmRyb3BTZXF1ZW5jZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRJZCgkc2VxX25hbWUsICRvbmRlbWFuZCA9IHRydWUpCiAgICB7CiAgICAgICAgJHNlcW5hbWUgPSAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSk7CiAgICAgICAgZG8gewogICAgICAgICAgICAkcmVwZWF0ID0gMDsKICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5xdWVyeSgnU0VMRUNUIFVOSVFVRSBGUk9NICcgLiAkc2VxbmFtZSk7CiAgICAgICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgICAgIGlmICgkb25kZW1hbmQgJiYgREI6OmlzRXJyb3IoJHJlc3VsdCkgJiYKICAgICAgICAgICAgICAgICRyZXN1bHQtPmdldENvZGUoKSA9PSBEQl9FUlJPUl9OT1NVQ0hUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlcGVhdCA9IDE7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNyZWF0ZVNlcXVlbmNlKCRzZXFfbmFtZSk7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRyZXBlYXQgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoJHJlcGVhdCk7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZmJzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgICRyZXN1bHQtPmZldGNoSW50bygkdG1wLCBEQl9GRVRDSE1PREVfT1JERVJFRCk7CiAgICAgICAgcmV0dXJuICR0bXBbMF07CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIG5ldyBzZXF1ZW5jZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfZmJzcWw6Om5leHRJRCgpLCBEQl9mYnNxbDo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKQogICAgewogICAgICAgICRzZXFuYW1lID0gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpOwogICAgICAgICRyZXMgPSAkdGhpcy0+cXVlcnkoJ0NSRUFURSBUQUJMRSAnIC4gJHNlcW5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAoaWQgSU5URUdFUiBOT1QgTlVMTCwnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgUFJJTUFSWSBLRVkoaWQpKScpOwogICAgICAgIGlmICgkcmVzKSB7CiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+cXVlcnkoJ1NFVCBVTklRVUUgPSAwIEZPUiAnIC4gJHNlcW5hbWUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBkcm9wU2VxdWVuY2UoKQoKICAgIC8qKgogICAgICogRGVsZXRlcyBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIHNlcXVlbmNlIHRvIGJlIGRlbGV0ZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OmRyb3BTZXF1ZW5jZSgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9mYnNxbDo6bmV4dElEKCksIERCX2Zic3FsOjpjcmVhdGVTZXF1ZW5jZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRyb3BTZXF1ZW5jZSgkc2VxX25hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5xdWVyeSgnRFJPUCBUQUJMRSAnIC4gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgUkVTVFJJQ1QnKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBtb2RpZnlMaW1pdFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIEFkZHMgTElNSVQgY2xhdXNlcyB0byBhIHF1ZXJ5IHN0cmluZyBhY2NvcmRpbmcgdG8gY3VycmVudCBEQk1TIHN0YW5kYXJkcwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICAgdGhlIHF1ZXJ5IHRvIG1vZGlmeQogICAgICogQHBhcmFtIGludCAgICAkZnJvbSAgICB0aGUgcm93IHRvIHN0YXJ0IHRvIGZldGNoaW5nICgwID0gdGhlIGZpcnN0IHJvdykKICAgICAqIEBwYXJhbSBpbnQgICAgJGNvdW50ICAgdGhlIG51bWJlcnMgb2Ygcm93cyB0byBmZXRjaAogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIHF1ZXJ5IHN0cmluZyB3aXRoIExJTUlUIGNsYXVzZXMgYWRkZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBmdW5jdGlvbiBtb2RpZnlMaW1pdFF1ZXJ5KCRxdWVyeSwgJGZyb20sICRjb3VudCwgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgaWYgKERCOjppc01hbmlwKCRxdWVyeSkgfHwgJHRoaXMtPl9uZXh0X3F1ZXJ5X21hbmlwKSB7CiAgICAgICAgICAgIHJldHVybiBwcmVnX3JlcGxhY2UoJy9eKFtccyhdKSpTRUxFQ1QvaScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlxcMVNFTEVDVCBUT1AoJGNvdW50KSIsICRxdWVyeSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIHByZWdfcmVwbGFjZSgnLyhbXHMoXSkqU0VMRUNUL2knLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJcXDFTRUxFQ1QgVE9QKCRmcm9tLCAkY291bnQpIiwgJHF1ZXJ5KTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcXVvdGVCb29sZWFuKCkKCiAgICAvKioKICAgICAqIEZvcm1hdHMgYSBib29sZWFuIHZhbHVlIGZvciB1c2Ugd2l0aGluIGEgcXVlcnkgaW4gYSBsb2NhbGUtaW5kZXBlbmRlbnQKICAgICAqIG1hbm5lci4KICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbGVhbiB0aGUgYm9vbGVhbiB2YWx1ZSB0byBiZSBxdW90ZWQuCiAgICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgcXVvdGVkIHN0cmluZy4KICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZVNtYXJ0KCkKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIHJlbGVhc2UgMS43LjguCiAgICAgKi8KICAgIGZ1bmN0aW9uIHF1b3RlQm9vbGVhbigkYm9vbGVhbikgewogICAgICAgIHJldHVybiAkYm9vbGVhbiA/ICdUUlVFJyA6ICdGQUxTRSc7CiAgICB9CiAgICAgCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdW90ZUZsb2F0KCkKCiAgICAvKioKICAgICAqIEZvcm1hdHMgYSBmbG9hdCB2YWx1ZSBmb3IgdXNlIHdpdGhpbiBhIHF1ZXJ5IGluIGEgbG9jYWxlLWluZGVwZW5kZW50CiAgICAgKiBtYW5uZXIuCiAgICAgKgogICAgICogQHBhcmFtIGZsb2F0IHRoZSBmbG9hdCB2YWx1ZSB0byBiZSBxdW90ZWQuCiAgICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgcXVvdGVkIHN0cmluZy4KICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZVNtYXJ0KCkKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIHJlbGVhc2UgMS43LjguCiAgICAgKi8KICAgIGZ1bmN0aW9uIHF1b3RlRmxvYXQoJGZsb2F0KSB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5lc2NhcGVTaW1wbGUoc3RyX3JlcGxhY2UoJywnLCAnLicsIHN0cnZhbChmbG9hdHZhbCgkZmxvYXQpKSkpOwogICAgfQogICAgIAogICAgLy8gfX19CiAgICAvLyB7e3sgZmJzcWxSYWlzZUVycm9yKCkKCiAgICAvKioKICAgICAqIFByb2R1Y2VzIGEgREJfRXJyb3Igb2JqZWN0IHJlZ2FyZGluZyB0aGUgY3VycmVudCBwcm9ibGVtCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZXJybm8gIGlmIHRoZSBlcnJvciBpcyBiZWluZyBtYW51YWxseSByYWlzZWQgcGFzcyBhCiAgICAgKiAgICAgICAgICAgICAgICAgICAgIERCX0VSUk9SKiBjb25zdGFudCBoZXJlLiAgSWYgdGhpcyBpc24ndCBwYXNzZWQKICAgICAqICAgICAgICAgICAgICAgICAgICAgdGhlIGVycm9yIGluZm9ybWF0aW9uIGdhdGhlcmVkIGZyb20gdGhlIERCTVMuCiAgICAgKgogICAgICogQHJldHVybiBvYmplY3QgIHRoZSBEQl9FcnJvciBvYmplY3QKICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6cmFpc2VFcnJvcigpLAogICAgICogICAgICBEQl9mYnNxbDo6ZXJyb3JOYXRpdmUoKSwgREJfY29tbW9uOjplcnJvckNvZGUoKQogICAgICovCiAgICBmdW5jdGlvbiBmYnNxbFJhaXNlRXJyb3IoJGVycm5vID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoJGVycm5vID09PSBudWxsKSB7CiAgICAgICAgICAgICRlcnJubyA9ICR0aGlzLT5lcnJvckNvZGUoZmJzcWxfZXJybm8oJHRoaXMtPmNvbm5lY3Rpb24pKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRlcnJubywgbnVsbCwgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZic3FsX2Vycm9yKCR0aGlzLT5jb25uZWN0aW9uKSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXJyb3JOYXRpdmUoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgREJNUycgbmF0aXZlIGVycm9yIGNvZGUgcHJvZHVjZWQgYnkgdGhlIGxhc3QgcXVlcnkKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIERCTVMnIGVycm9yIGNvZGUKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JOYXRpdmUoKQogICAgewogICAgICAgIHJldHVybiBAZmJzcWxfZXJybm8oJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRhYmxlSW5mbygpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgdGFibGUgb3IgYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdHxzdHJpbmcgICRyZXN1bHQgIERCX3Jlc3VsdCBvYmplY3QgZnJvbSBhIHF1ZXJ5IG9yIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgYSB0YWJsZS4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgdGhpcyBhbHNvIGFjY2VwdHMgYSBxdWVyeSByZXN1bHQKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgaWRlbnRpZmllciwgdGhpcyBiZWhhdmlvciBpcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICRtb2RlICAgIGEgdmFsaWQgdGFibGVJbmZvIG1vZGUKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHRoZSBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQuCiAgICAgKiAgICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6dGFibGVJbmZvKCkKICAgICAqLwogICAgZnVuY3Rpb24gdGFibGVJbmZvKCRyZXN1bHQsICRtb2RlID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoaXNfc3RyaW5nKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgdGFibGUgbmFtZS4KICAgICAgICAgICAgICogQ3JlYXRlIGEgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSBAZmJzcWxfbGlzdF9maWVsZHMoJHRoaXMtPmRzblsnZGF0YWJhc2UnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRyZXN1bHQsICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSB0cnVlOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkcmVzdWx0LT5yZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgcmVzdWx0IG9iamVjdC4KICAgICAgICAgICAgICogRXh0cmFjdCB0aGUgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSAkcmVzdWx0LT5yZXN1bHQ7CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gZmFsc2U7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICogQ29weSBpdC4KICAgICAgICAgICAgICogRGVwcmVjYXRlZC4gIEhlcmUgZm9yIGNvbXBhdGliaWxpdHkgb25seS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQ7CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoIWlzX3Jlc291cmNlKCRpZCkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5mYnNxbFJhaXNlRXJyb3IoREJfRVJST1JfTkVFRF9NT1JFX0RBVEEpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydG9sb3dlcic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ2YWwnOwogICAgICAgIH0KCiAgICAgICAgJGNvdW50ID0gQGZic3FsX251bV9maWVsZHMoJGlkKTsKICAgICAgICAkcmVzICAgPSBhcnJheSgpOwoKICAgICAgICBpZiAoJG1vZGUpIHsKICAgICAgICAgICAgJHJlc1snbnVtX2ZpZWxkcyddID0gJGNvdW50OwogICAgICAgIH0KCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7CiAgICAgICAgICAgICRyZXNbJGldID0gYXJyYXkoCiAgICAgICAgICAgICAgICAndGFibGUnID0+ICRjYXNlX2Z1bmMoQGZic3FsX2ZpZWxkX3RhYmxlKCRpZCwgJGkpKSwKICAgICAgICAgICAgICAgICduYW1lJyAgPT4gJGNhc2VfZnVuYyhAZmJzcWxfZmllbGRfbmFtZSgkaWQsICRpKSksCiAgICAgICAgICAgICAgICAndHlwZScgID0+IEBmYnNxbF9maWVsZF90eXBlKCRpZCwgJGkpLAogICAgICAgICAgICAgICAgJ2xlbicgICA9PiBAZmJzcWxfZmllbGRfbGVuKCRpZCwgJGkpLAogICAgICAgICAgICAgICAgJ2ZsYWdzJyA9PiBAZmJzcWxfZmllbGRfZmxhZ3MoJGlkLCAkaSksCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkbW9kZSAmIERCX1RBQkxFSU5GT19PUkRFUikgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXInXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkbW9kZSAmIERCX1RBQkxFSU5GT19PUkRFUlRBQkxFKSB7CiAgICAgICAgICAgICAgICAkcmVzWydvcmRlcnRhYmxlJ11bJHJlc1skaV1bJ3RhYmxlJ11dWyRyZXNbJGldWyduYW1lJ11dID0gJGk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGZyZWUgdGhlIHJlc3VsdCBvbmx5IGlmIHdlIHdlcmUgY2FsbGVkIG9uIGEgdGFibGUKICAgICAgICBpZiAoJGdvdF9zdHJpbmcpIHsKICAgICAgICAgICAgQGZic3FsX2ZyZWVfcmVzdWx0KCRpZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldFNwZWNpYWxRdWVyeSgpCgogICAgLyoqCiAgICAgKiBPYnRhaW5zIHRoZSBxdWVyeSBzdHJpbmcgbmVlZGVkIGZvciBsaXN0aW5nIGEgZ2l2ZW4gdHlwZSBvZiBvYmplY3RzCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSAgdGhlIGtpbmQgb2Ygb2JqZWN0cyB5b3Ugd2FudCB0byByZXRyaWV2ZQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZyBvciBudWxsIGlmIHRoZSBkcml2ZXIgZG9lc24ndAogICAgICogICAgICAgICAgICAgICAgICBzdXBwb3J0IHRoZSBvYmplY3QgdHlwZSByZXF1ZXN0ZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHNlZSBEQl9jb21tb246OmdldExpc3RPZigpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFNwZWNpYWxRdWVyeSgkdHlwZSkKICAgIHsKICAgICAgICBzd2l0Y2ggKCR0eXBlKSB7CiAgICAgICAgICAgIGNhc2UgJ3RhYmxlcyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1NFTEVDVCAidGFibGVfbmFtZSIgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzJwogICAgICAgICAgICAgICAgICAgICAgIC4gJyB0MCwgaW5mb3JtYXRpb25fc2NoZW1hLnNjaGVtYXRhIHQxJwogICAgICAgICAgICAgICAgICAgICAgIC4gJyBXSEVSRSB0MC5zY2hlbWFfcGs9dDEuc2NoZW1hX3BrIEFORCcKICAgICAgICAgICAgICAgICAgICAgICAuICcgInRhYmxlX3R5cGUiID0gXCdCQVNFIFRBQkxFXCcnCiAgICAgICAgICAgICAgICAgICAgICAgLiAnIEFORCAic2NoZW1hX25hbWUiID0gY3VycmVudF9zY2hlbWEnOwogICAgICAgICAgICBjYXNlICd2aWV3cyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1NFTEVDVCAidGFibGVfbmFtZSIgRlJPTSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzJwogICAgICAgICAgICAgICAgICAgICAgIC4gJyB0MCwgaW5mb3JtYXRpb25fc2NoZW1hLnNjaGVtYXRhIHQxJwogICAgICAgICAgICAgICAgICAgICAgIC4gJyBXSEVSRSB0MC5zY2hlbWFfcGs9dDEuc2NoZW1hX3BrIEFORCcKICAgICAgICAgICAgICAgICAgICAgICAuICcgInRhYmxlX3R5cGUiID0gXCdWSUVXXCcnCiAgICAgICAgICAgICAgICAgICAgICAgLiAnIEFORCAic2NoZW1hX25hbWUiID0gY3VycmVudF9zY2hlbWEnOwogICAgICAgICAgICBjYXNlICd1c2Vycyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1NFTEVDVCAidXNlcl9uYW1lIiBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS51c2Vycyc7IAogICAgICAgICAgICBjYXNlICdmdW5jdGlvbnMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1QgInJvdXRpbmVfbmFtZSIgRlJPTScKICAgICAgICAgICAgICAgICAgICAgICAuICcgaW5mb3JtYXRpb25fc2NoZW1hLnBzbV9yb3V0aW5lcycKICAgICAgICAgICAgICAgICAgICAgICAuICcgdDAsIGluZm9ybWF0aW9uX3NjaGVtYS5zY2hlbWF0YSB0MScKICAgICAgICAgICAgICAgICAgICAgICAuICcgV0hFUkUgdDAuc2NoZW1hX3BrPXQxLnNjaGVtYV9waycKICAgICAgICAgICAgICAgICAgICAgICAuICcgQU5EICJyb3V0aW5lX2tpbmQiPVwnRlVOQ1RJT05cJycKICAgICAgICAgICAgICAgICAgICAgICAuICcgQU5EICJzY2hlbWFfbmFtZSIgPSBjdXJyZW50X3NjaGVtYSc7CiAgICAgICAgICAgIGNhc2UgJ3Byb2NlZHVyZXMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1QgInJvdXRpbmVfbmFtZSIgRlJPTScKICAgICAgICAgICAgICAgICAgICAgICAuICcgaW5mb3JtYXRpb25fc2NoZW1hLnBzbV9yb3V0aW5lcycKICAgICAgICAgICAgICAgICAgICAgICAuICcgdDAsIGluZm9ybWF0aW9uX3NjaGVtYS5zY2hlbWF0YSB0MScKICAgICAgICAgICAgICAgICAgICAgICAuICcgV0hFUkUgdDAuc2NoZW1hX3BrPXQxLnNjaGVtYV9waycKICAgICAgICAgICAgICAgICAgICAgICAuICcgQU5EICJyb3V0aW5lX2tpbmQiPVwnUFJPQ0VEVVJFXCcnCiAgICAgICAgICAgICAgICAgICAgICAgLiAnIEFORCAic2NoZW1hX25hbWUiID0gY3VycmVudF9zY2hlbWEnOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQp9CgovKgogKiBMb2NhbCB2YXJpYWJsZXM6CiAqIHRhYi13aWR0aDogNAogKiBjLWJhc2ljLW9mZnNldDogNAogKiBFbmQ6CiAqLwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/ibase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBpbnRlcmJhc2UgZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIEludGVyYmFzZSBhbmQgRmlyZWJpcmQgZGF0YWJhc2VzCiAqCiAqIFdoaWxlIHRoaXMgY2xhc3Mgd29ya3Mgd2l0aCBQSFAgNCwgUEhQJ3MgSW50ZXJCYXNlIGV4dGVuc2lvbiBpcwogKiB1bnN0YWJsZSBpbiBQSFAgNC4gIFVzZSBQSFAgNS4KICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFN0ZXJsaW5nIEh1Z2hlcyA8c3RlcmxpbmdAcGhwLm5ldD4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgQ1ZTOiAkSWQ6IGliYXNlLnBocCx2IDEuMTEzIDIwMDcvMDEvMTIgMDM6MTE6MTcgYWhhcnZleSBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogT2J0YWluIHRoZSBEQl9jb21tb24gY2xhc3Mgc28gaXQgY2FuIGJlIGV4dGVuZGVkIGZyb20KICovCnJlcXVpcmVfb25jZSAnREIvY29tbW9uLnBocCc7CgovKioKICogVGhlIG1ldGhvZHMgUEVBUiBEQiB1c2VzIHRvIGludGVyYWN0IHdpdGggUEhQJ3MgaW50ZXJiYXNlIGV4dGVuc2lvbgogKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBJbnRlcmJhc2UgYW5kIEZpcmViaXJkIGRhdGFiYXNlcwogKgogKiBUaGVzZSBtZXRob2RzIG92ZXJsb2FkIHRoZSBvbmVzIGRlY2xhcmVkIGluIERCX2NvbW1vbi4KICoKICogV2hpbGUgdGhpcyBjbGFzcyB3b3JrcyB3aXRoIFBIUCA0LCBQSFAncyBJbnRlckJhc2UgZXh0ZW5zaW9uIGlzCiAqIHVuc3RhYmxlIGluIFBIUCA0LiAgVXNlIFBIUCA1LgogKgogKiBOT1RJQ0U6ICBsaW1pdFF1ZXJ5KCkgb25seSB3b3JrcyBmb3IgRmlyZWJpcmQuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFN0ZXJsaW5nIEh1Z2hlcyA8c3RlcmxpbmdAcGhwLm5ldD4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgUmVsZWFzZTogMS43LjEyCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKiBAc2luY2UgICAgICBDbGFzcyBiZWNhbWUgc3RhYmxlIGluIFJlbGVhc2UgMS43LjAKICovCmNsYXNzIERCX2liYXNlIGV4dGVuZHMgREJfY29tbW9uCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgLyoqCiAgICAgKiBUaGUgREIgZHJpdmVyIHR5cGUgKG15c3FsLCBvY2k4LCBvZGJjLCBldGMuKQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRwaHB0eXBlID0gJ2liYXNlJzsKCiAgICAvKioKICAgICAqIFRoZSBkYXRhYmFzZSBzeW50YXggdmFyaWFudCB0byBiZSB1c2VkIChkYjIsIGFjY2VzcywgZXRjLiksIGlmIGFueQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRkYnN5bnRheCA9ICdpYmFzZSc7CgogICAgLyoqCiAgICAgKiBUaGUgY2FwYWJpbGl0aWVzIG9mIHRoaXMgREIgaW1wbGVtZW50YXRpb24KICAgICAqCiAgICAgKiBUaGUgJ25ld19saW5rJyBlbGVtZW50IGNvbnRhaW5zIHRoZSBQSFAgdmVyc2lvbiB0aGF0IGZpcnN0IHByb3ZpZGVkCiAgICAgKiBuZXdfbGluayBzdXBwb3J0IGZvciB0aGlzIERCTVMuICBDb250YWlucyBmYWxzZSBpZiBpdCdzIHVuc3VwcG9ydGVkLgogICAgICoKICAgICAqIE1lYW5pbmcgb2YgdGhlICdsaW1pdCcgZWxlbWVudDoKICAgICAqICAgKyAnZW11bGF0ZScgPSBlbXVsYXRlIHdpdGggZmV0Y2ggcm93IGJ5IG51bWJlcgogICAgICogICArICdhbHRlcicgICA9IGFsdGVyIHRoZSBxdWVyeQogICAgICogICArIGZhbHNlICAgICA9IHNraXAgcm93cwogICAgICoKICAgICAqIE5PVEU6IG9ubHkgZmlyZWJpcmQgc3VwcG9ydHMgbGltaXQuCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGZlYXR1cmVzID0gYXJyYXkoCiAgICAgICAgJ2xpbWl0JyAgICAgICAgID0+IGZhbHNlLAogICAgICAgICduZXdfbGluaycgICAgICA9PiBmYWxzZSwKICAgICAgICAnbnVtcm93cycgICAgICAgPT4gJ2VtdWxhdGUnLAogICAgICAgICdwY29ubmVjdCcgICAgICA9PiB0cnVlLAogICAgICAgICdwcmVwYXJlJyAgICAgICA9PiB0cnVlLAogICAgICAgICdzc2wnICAgICAgICAgICA9PiBmYWxzZSwKICAgICAgICAndHJhbnNhY3Rpb25zJyAgPT4gdHJ1ZSwKICAgICk7CgogICAgLyoqCiAgICAgKiBBIG1hcHBpbmcgb2YgbmF0aXZlIGVycm9yIGNvZGVzIHRvIERCIGVycm9yIGNvZGVzCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZXJyb3Jjb2RlX21hcCA9IGFycmF5KAogICAgICAgIC0xMDQgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgIC0xNTAgPT4gREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTiwKICAgICAgICAtMTUxID0+IERCX0VSUk9SX0FDQ0VTU19WSU9MQVRJT04sCiAgICAgICAgLTE1NSA9PiBEQl9FUlJPUl9OT1NVQ0hUQUJMRSwKICAgICAgICAtMTU3ID0+IERCX0VSUk9SX05PU1VDSEZJRUxELAogICAgICAgIC0xNTggPT4gREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XLAogICAgICAgIC0xNzAgPT4gREJfRVJST1JfTUlTTUFUQ0gsCiAgICAgICAgLTE3MSA9PiBEQl9FUlJPUl9NSVNNQVRDSCwKICAgICAgICAtMTcyID0+IERCX0VSUk9SX0lOVkFMSUQsCiAgICAgICAgLy8gLTIwNCA9PiAgLy8gQ292ZXJzIHRvbyBtYW55IGVycm9ycywgbmVlZCB0byB1c2UgcmVnZXggb24gbXNnCiAgICAgICAgLTIwNSA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAtMjA2ID0+IERCX0VSUk9SX05PU1VDSEZJRUxELAogICAgICAgIC0yMDggPT4gREJfRVJST1JfSU5WQUxJRCwKICAgICAgICAtMjE5ID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgIC0yOTcgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAtMzAzID0+IERCX0VSUk9SX0lOVkFMSUQsCiAgICAgICAgLTQxMyA9PiBEQl9FUlJPUl9JTlZBTElEX05VTUJFUiwKICAgICAgICAtNTMwID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgLTU1MSA9PiBEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OLAogICAgICAgIC01NTIgPT4gREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTiwKICAgICAgICAvLyAtNjA3ID0+ICAvLyBDb3ZlcnMgdG9vIG1hbnkgZXJyb3JzLCBuZWVkIHRvIHVzZSByZWdleCBvbiBtc2cKICAgICAgICAtNjI1ID0+IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwsCiAgICAgICAgLTgwMyA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgIC04MDQgPT4gREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XLAogICAgICAgIC8vIC05MDIgPT4gIC8vIENvdmVycyB0b28gbWFueSBlcnJvcnMsIG5lZWQgdG8gdXNlIHJlZ2V4IG9uIG1zZwogICAgICAgIC05MDQgPT4gREJfRVJST1JfQ09OTkVDVF9GQUlMRUQsCiAgICAgICAgLTkyMiA9PiBEQl9FUlJPUl9OT1NVQ0hEQiwKICAgICAgICAtOTIzID0+IERCX0VSUk9SX0NPTk5FQ1RfRkFJTEVELAogICAgICAgIC05MjQgPT4gREJfRVJST1JfQ09OTkVDVF9GQUlMRUQKICAgICk7CgogICAgLyoqCiAgICAgKiBUaGUgcmF3IGRhdGFiYXNlIGNvbm5lY3Rpb24gY3JlYXRlZCBieSBQSFAKICAgICAqIEB2YXIgcmVzb3VyY2UKICAgICAqLwogICAgdmFyICRjb25uZWN0aW9uOwoKICAgIC8qKgogICAgICogVGhlIERTTiBpbmZvcm1hdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIGRhdGFiYXNlCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZHNuID0gYXJyYXkoKTsKCgogICAgLyoqCiAgICAgKiBUaGUgbnVtYmVyIG9mIHJvd3MgYWZmZWN0ZWQgYnkgYSBkYXRhIG1hbmlwdWxhdGlvbiBxdWVyeQogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICRhZmZlY3RlZCA9IDA7CgogICAgLyoqCiAgICAgKiBTaG91bGQgZGF0YSBtYW5pcHVsYXRpb24gcXVlcmllcyBiZSBjb21taXR0ZWQgYXV0b21hdGljYWxseT8KICAgICAqIEB2YXIgYm9vbAogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkYXV0b2NvbW1pdCA9IHRydWU7CgogICAgLyoqCiAgICAgKiBUaGUgcHJlcGFyZWQgc3RhdGVtZW50IGhhbmRsZSBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IGV4ZWN1dGVkIHN0YXRlbWVudAogICAgICoKICAgICAqIHtAaW50ZXJuYWwgIE1haW5seSBoZXJlIGJlY2F1c2UgdGhlIEludGVyQmFzZS9GaXJlYmlyZCBBUEkgaXMgb25seQogICAgICogYWJsZSB0byByZXRyaWV2ZSBkYXRhIGZyb20gcmVzdWx0IHNldHMgaWYgdGhlIHN0YXRlbW50IGhhbmRsZSBpcwogICAgICogc3RpbGwgaW4gc2NvcGUufX0KICAgICAqCiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKi8KICAgIHZhciAkbGFzdF9zdG10OwoKICAgIC8qKgogICAgICogSXMgdGhlIGdpdmVuIHByZXBhcmVkIHN0YXRlbWVudCBhIGRhdGEgbWFuaXB1bGF0aW9uIHF1ZXJ5PwogICAgICogQHZhciBhcnJheQogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkbWFuaXBfcXVlcnkgPSBhcnJheSgpOwoKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogVGhpcyBjb25zdHJ1Y3RvciBjYWxscyA8a2JkPiR0aGlzLT5EQl9jb21tb24oKTwva2JkPgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBEQl9pYmFzZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPkRCX2NvbW1vbigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLCBsb2cgaW4gYW5kIG9wZW4gdGhlIGRhdGFiYXNlCiAgICAgKgogICAgICogRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseS4gIFVzZSBEQjo6Y29ubmVjdCgpIGluc3RlYWQuCiAgICAgKgogICAgICogUEVBUiBEQidzIGliYXNlIGRyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGV4dHJhIERTTiBvcHRpb25zOgogICAgICogICArIGJ1ZmZlcnMgICAgVGhlIG51bWJlciBvZiBkYXRhYmFzZSBidWZmZXJzIHRvIGFsbG9jYXRlIGZvciB0aGUKICAgICAqICAgICAgICAgICAgICAgICBzZXJ2ZXItc2lkZSBjYWNoZS4KICAgICAqICAgKyBjaGFyc2V0ICAgIFRoZSBkZWZhdWx0IGNoYXJhY3RlciBzZXQgZm9yIGEgZGF0YWJhc2UuCiAgICAgKiAgICsgZGlhbGVjdCAgICBUaGUgZGVmYXVsdCBTUUwgZGlhbGVjdCBmb3IgYW55IHN0YXRlbWVudAogICAgICogICAgICAgICAgICAgICAgIGV4ZWN1dGVkIHdpdGhpbiBhIGNvbm5lY3Rpb24uICBEZWZhdWx0cyB0byB0aGUKICAgICAqICAgICAgICAgICAgICAgICBoaWdoZXN0IG9uZSBzdXBwb3J0ZWQgYnkgY2xpZW50IGxpYnJhcmllcy4KICAgICAqICAgICAgICAgICAgICAgICBGdW5jdGlvbmFsIG9ubHkgd2l0aCBJbnRlckJhc2UgNiBhbmQgdXAuCiAgICAgKiAgICsgcm9sZSAgICAgICBGdW5jdGlvbmFsIG9ubHkgd2l0aCBJbnRlckJhc2UgNSBhbmQgdXAuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRkc24gICAgICAgICB0aGUgZGF0YSBzb3VyY2UgbmFtZQogICAgICogQHBhcmFtIGJvb2wgICRwZXJzaXN0ZW50ICBzaG91bGQgdGhlIGNvbm5lY3Rpb24gYmUgcGVyc2lzdGVudD8KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29ubmVjdCgkZHNuLCAkcGVyc2lzdGVudCA9IGZhbHNlKQogICAgewogICAgICAgIGlmICghUEVBUjo6bG9hZEV4dGVuc2lvbignaW50ZXJiYXNlJykpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0VYVEVOU0lPTl9OT1RfRk9VTkQpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmRzbiA9ICRkc247CiAgICAgICAgaWYgKCRkc25bJ2Ric3ludGF4J10pIHsKICAgICAgICAgICAgJHRoaXMtPmRic3ludGF4ID0gJGRzblsnZGJzeW50YXgnXTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5kYnN5bnRheCA9PSAnZmlyZWJpcmQnKSB7CiAgICAgICAgICAgICR0aGlzLT5mZWF0dXJlc1snbGltaXQnXSA9ICdhbHRlcic7CiAgICAgICAgfQoKICAgICAgICAkcGFyYW1zID0gYXJyYXkoCiAgICAgICAgICAgICRkc25bJ2hvc3RzcGVjJ10KICAgICAgICAgICAgICAgICAgICA/ICgkZHNuWydob3N0c3BlYyddIC4gJzonIC4gJGRzblsnZGF0YWJhc2UnXSkKICAgICAgICAgICAgICAgICAgICA6ICRkc25bJ2RhdGFiYXNlJ10sCiAgICAgICAgICAgICRkc25bJ3VzZXJuYW1lJ10gPyAkZHNuWyd1c2VybmFtZSddIDogbnVsbCwKICAgICAgICAgICAgJGRzblsncGFzc3dvcmQnXSA/ICRkc25bJ3Bhc3N3b3JkJ10gOiBudWxsLAogICAgICAgICAgICBpc3NldCgkZHNuWydjaGFyc2V0J10pID8gJGRzblsnY2hhcnNldCddIDogbnVsbCwKICAgICAgICAgICAgaXNzZXQoJGRzblsnYnVmZmVycyddKSA/ICRkc25bJ2J1ZmZlcnMnXSA6IG51bGwsCiAgICAgICAgICAgIGlzc2V0KCRkc25bJ2RpYWxlY3QnXSkgPyAkZHNuWydkaWFsZWN0J10gOiBudWxsLAogICAgICAgICAgICBpc3NldCgkZHNuWydyb2xlJ10pICAgID8gJGRzblsncm9sZSddIDogbnVsbCwKICAgICAgICApOwoKICAgICAgICAkY29ubmVjdF9mdW5jdGlvbiA9ICRwZXJzaXN0ZW50ID8gJ2liYXNlX3Bjb25uZWN0JyA6ICdpYmFzZV9jb25uZWN0JzsKCiAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAY2FsbF91c2VyX2Z1bmNfYXJyYXkoJGNvbm5lY3RfZnVuY3Rpb24sICRwYXJhbXMpOwogICAgICAgIGlmICghJHRoaXMtPmNvbm5lY3Rpb24pIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5pYmFzZVJhaXNlRXJyb3IoREJfRVJST1JfQ09OTkVDVF9GQUlMRUQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZGlzY29ubmVjdCgpCgogICAgLyoqCiAgICAgKiBEaXNjb25uZWN0cyBmcm9tIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0Ugb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBkaXNjb25uZWN0KCkKICAgIHsKICAgICAgICAkcmV0ID0gQGliYXNlX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IG51bGw7CiAgICAgICAgcmV0dXJuICRyZXQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgc2ltcGxlUXVlcnkoKQoKICAgIC8qKgogICAgICogU2VuZHMgYSBxdWVyeSB0byB0aGUgZGF0YWJhc2Ugc2VydmVyCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgdGhlIFNRTCBxdWVyeSBzdHJpbmcKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICArIGEgUEhQIHJlc3VsdCByZXNyb3VjZSBmb3Igc3VjY2Vzc2Z1bCBTRUxFQ1QgcXVlcmllcwogICAgICogICAgICAgICAgICAgICAgKyB0aGUgREJfT0sgY29uc3RhbnQgZm9yIG90aGVyIHN1Y2Nlc3NmdWwgcXVlcmllcwogICAgICogICAgICAgICAgICAgICAgKyBhIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNpbXBsZVF1ZXJ5KCRxdWVyeSkKICAgIHsKICAgICAgICAkaXNtYW5pcCA9ICR0aGlzLT5fY2hlY2tNYW5pcCgkcXVlcnkpOwogICAgICAgICR0aGlzLT5sYXN0X3F1ZXJ5ID0gJHF1ZXJ5OwogICAgICAgICRxdWVyeSA9ICR0aGlzLT5tb2RpZnlRdWVyeSgkcXVlcnkpOwogICAgICAgICRyZXN1bHQgPSBAaWJhc2VfcXVlcnkoJHRoaXMtPmNvbm5lY3Rpb24sICRxdWVyeSk7CgogICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmliYXNlUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPmF1dG9jb21taXQgJiYgJGlzbWFuaXApIHsKICAgICAgICAgICAgQGliYXNlX2NvbW1pdCgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmICgkaXNtYW5pcCkgewogICAgICAgICAgICAkdGhpcy0+YWZmZWN0ZWQgPSAkcmVzdWx0OwogICAgICAgICAgICByZXR1cm4gREJfT0s7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPmFmZmVjdGVkID0gMDsKICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG1vZGlmeUxpbWl0UXVlcnkoKQoKICAgIC8qKgogICAgICogQWRkcyBMSU1JVCBjbGF1c2VzIHRvIGEgcXVlcnkgc3RyaW5nIGFjY29yZGluZyB0byBjdXJyZW50IERCTVMgc3RhbmRhcmRzCiAgICAgKgogICAgICogT25seSB3b3JrcyB3aXRoIEZpcmViaXJkLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICAgdGhlIHF1ZXJ5IHRvIG1vZGlmeQogICAgICogQHBhcmFtIGludCAgICAkZnJvbSAgICB0aGUgcm93IHRvIHN0YXJ0IHRvIGZldGNoaW5nICgwID0gdGhlIGZpcnN0IHJvdykKICAgICAqIEBwYXJhbSBpbnQgICAgJGNvdW50ICAgdGhlIG51bWJlcnMgb2Ygcm93cyB0byBmZXRjaAogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIHF1ZXJ5IHN0cmluZyB3aXRoIExJTUlUIGNsYXVzZXMgYWRkZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBmdW5jdGlvbiBtb2RpZnlMaW1pdFF1ZXJ5KCRxdWVyeSwgJGZyb20sICRjb3VudCwgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5kc25bJ2Ric3ludGF4J10gPT0gJ2ZpcmViaXJkJykgewogICAgICAgICAgICAkcXVlcnkgPSBwcmVnX3JlcGxhY2UoJy9eKFtccyhdKSpTRUxFQ1QvaScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0VMRUNUIEZJUlNUICRjb3VudCBTS0lQICRmcm9tIiwgJHF1ZXJ5KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRxdWVyeTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBuZXh0UmVzdWx0KCkKCiAgICAvKioKICAgICAqIE1vdmUgdGhlIGludGVybmFsIGliYXNlIHJlc3VsdCBwb2ludGVyIHRvIHRoZSBuZXh0IGF2YWlsYWJsZSByZXN1bHQKICAgICAqCiAgICAgKiBAcGFyYW0gYSB2YWxpZCBmYnNxbCByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICoKICAgICAqIEByZXR1cm4gdHJ1ZSBpZiBhIHJlc3VsdCBpcyBhdmFpbGFibGUgb3RoZXJ3aXNlIHJldHVybiBmYWxzZQogICAgICovCiAgICBmdW5jdGlvbiBuZXh0UmVzdWx0KCRyZXN1bHQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGZldGNoSW50bygpCgogICAgLyoqCiAgICAgKiBQbGFjZXMgYSByb3cgZnJvbSB0aGUgcmVzdWx0IHNldCBpbnRvIHRoZSBnaXZlbiBhcnJheQogICAgICoKICAgICAqIEZvcm1hdGluZyBvZiB0aGUgYXJyYXkgYW5kIHRoZSBkYXRhIHRoZXJlaW4gYXJlIGNvbmZpZ3VyYWJsZS4KICAgICAqIFNlZSBEQl9yZXN1bHQ6OmZldGNoSW50bygpIGZvciBtb3JlIGluZm9ybWF0aW9uLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgICB0aGUgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKiBAcGFyYW0gYXJyYXkgICAgJGFyciAgICAgICB0aGUgcmVmZXJlbmNlZCBhcnJheSB0byBwdXQgdGhlIGRhdGEgaW4KICAgICAqIEBwYXJhbSBpbnQgICAgICAkZmV0Y2htb2RlIGhvdyB0aGUgcmVzdWx0aW5nIGFycmF5IHNob3VsZCBiZSBpbmRleGVkCiAgICAgKiBAcGFyYW0gaW50ICAgICAgJHJvd251bSAgICB0aGUgcm93IG51bWJlciB0byBmZXRjaCAoMCA9IGZpcnN0IHJvdykKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICBEQl9PSyBvbiBzdWNjZXNzLCBOVUxMIHdoZW4gdGhlIGVuZCBvZiBhIHJlc3VsdCBzZXQgaXMKICAgICAqICAgICAgICAgICAgICAgICByZWFjaGVkIG9yIG9uIGZhaWx1cmUKICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkKICAgICAqLwogICAgZnVuY3Rpb24gZmV0Y2hJbnRvKCRyZXN1bHQsICYkYXJyLCAkZmV0Y2htb2RlLCAkcm93bnVtID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoJHJvd251bSAhPT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmliYXNlUmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICAgICAgfQogICAgICAgIGlmICgkZmV0Y2htb2RlICYgREJfRkVUQ0hNT0RFX0FTU09DKSB7CiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2liYXNlX2ZldGNoX2Fzc29jJykpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBAaWJhc2VfZmV0Y2hfYXNzb2MoJHJlc3VsdCk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkYXJyID0gZ2V0X29iamVjdF92YXJzKGliYXNlX2ZldGNoX29iamVjdCgkcmVzdWx0KSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmICRhcnIpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYXJyID0gQGliYXNlX2ZldGNoX3JvdygkcmVzdWx0KTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkYXJyKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9SVFJJTSkgewogICAgICAgICAgICAkdGhpcy0+X3J0cmltQXJyYXlWYWx1ZXMoJGFycik7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX05VTExfVE9fRU1QVFkpIHsKICAgICAgICAgICAgJHRoaXMtPl9jb252ZXJ0TnVsbEFycmF5VmFsdWVzVG9FbXB0eSgkYXJyKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGZyZWVSZXN1bHQoKQoKICAgIC8qKgogICAgICogRGVsZXRlcyB0aGUgcmVzdWx0IHNldCBhbmQgZnJlZXMgdGhlIG1lbW9yeSBvY2N1cGllZCBieSB0aGUgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6ZnJlZSgpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgVFJVRSBvbiBzdWNjZXNzLCBGQUxTRSBpZiAkcmVzdWx0IGlzIGludmFsaWQKICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6ZnJlZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZyZWVSZXN1bHQoJHJlc3VsdCkKICAgIHsKICAgICAgICByZXR1cm4gaXNfcmVzb3VyY2UoJHJlc3VsdCkgPyBpYmFzZV9mcmVlX3Jlc3VsdCgkcmVzdWx0KSA6IGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGZyZWVRdWVyeSgpCgogICAgZnVuY3Rpb24gZnJlZVF1ZXJ5KCRxdWVyeSkKICAgIHsKICAgICAgICByZXR1cm4gaXNfcmVzb3VyY2UoJHF1ZXJ5KSA/IGliYXNlX2ZyZWVfcXVlcnkoJHF1ZXJ5KSA6IGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGFmZmVjdGVkUm93cygpCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2Ygcm93cyBhZmZlY3RlZCBieSBhIGRhdGEgbWFuaXVwbGF0aW9uIHF1ZXJ5CiAgICAgKgogICAgICogMCBpcyByZXR1cm5lZCBmb3IgcXVlcmllcyB0aGF0IGRvbid0IG1hbmlwdWxhdGUgZGF0YS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gYWZmZWN0ZWRSb3dzKCkKICAgIHsKICAgICAgICBpZiAoaXNfaW50ZWdlcigkdGhpcy0+YWZmZWN0ZWQpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+YWZmZWN0ZWQ7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+aWJhc2VSYWlzZUVycm9yKERCX0VSUk9SX05PVF9DQVBBQkxFKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Db2xzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6bnVtQ29scygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpudW1Db2xzKCkKICAgICAqLwogICAgZnVuY3Rpb24gbnVtQ29scygkcmVzdWx0KQogICAgewogICAgICAgICRjb2xzID0gQGliYXNlX251bV9maWVsZHMoJHJlc3VsdCk7CiAgICAgICAgaWYgKCEkY29scykgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmliYXNlUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvbHM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcHJlcGFyZSgpCgogICAgLyoqCiAgICAgKiBQcmVwYXJlcyBhIHF1ZXJ5IGZvciBtdWx0aXBsZSBleGVjdXRpb24gd2l0aCBleGVjdXRlKCkuCiAgICAgKgogICAgICogcHJlcGFyZSgpIHJlcXVpcmVzIGEgZ2VuZXJpYyBxdWVyeSBhcyBzdHJpbmcgbGlrZSA8Y29kZT4KICAgICAqICAgIElOU0VSVCBJTlRPIG51bWJlcnMgVkFMVUVTICg/LCA/LCA/KQogICAgICogPC9jb2RlPi4gIFRoZSA8a2JkPj88L2tiZD4gY2hhcmFjdGVycyBhcmUgcGxhY2Vob2xkZXJzLgogICAgICoKICAgICAqIFRocmVlIHR5cGVzIG9mIHBsYWNlaG9sZGVycyBjYW4gYmUgdXNlZDoKICAgICAqICAgKyA8a2JkPj88L2tiZD4gIGEgcXVvdGVkIHNjYWxhciB2YWx1ZSwgaS5lLiBzdHJpbmdzLCBpbnRlZ2VycwogICAgICogICArIDxrYmQ+ITwva2JkPiAgdmFsdWUgaXMgaW5zZXJ0ZWQgJ2FzIGlzJwogICAgICogICArIDxrYmQ+Jjwva2JkPiAgcmVxdWlyZXMgYSBmaWxlIG5hbWUuICBUaGUgZmlsZSdzIGNvbnRlbnRzIGdldAogICAgICogICAgICAgICAgICAgICAgICAgICBpbnNlcnRlZCBpbnRvIHRoZSBxdWVyeSAoaS5lLiBzYXZpbmcgYmluYXJ5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgIGRhdGEgaW4gYSBkYikKICAgICAqCiAgICAgKiBVc2UgYmFja3NsYXNoZXMgdG8gZXNjYXBlIHBsYWNlaG9sZGVyIGNoYXJhY3RlcnMgaWYgeW91IGRvbid0IHdhbnQKICAgICAqIHRoZW0gdG8gYmUgaW50ZXJwcmV0ZWQgYXMgcGxhY2Vob2xkZXJzLiAgRXhhbXBsZTogPGNvZGU+CiAgICAgKiAgICAiVVBEQVRFIGZvbyBTRVQgY29sPT8gV0hFUkUgY29sPSdvdmVyIFwmIHVuZGVyJyIKICAgICAqIDwvY29kZT4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSBxdWVyeSB0byBiZSBwcmVwYXJlZAogICAgICogQHJldHVybiBtaXhlZCBEQiBzdGF0ZW1lbnQgcmVzb3VyY2Ugb24gc3VjY2Vzcy4gREJfRXJyb3Igb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gcHJlcGFyZSgkcXVlcnkpCiAgICB7CiAgICAgICAgJHRva2VucyAgID0gcHJlZ19zcGxpdCgnLygoPzwhXFxcKVsmPyFdKS8nLCAkcXVlcnksIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJFR19TUExJVF9ERUxJTV9DQVBUVVJFKTsKICAgICAgICAkdG9rZW4gICAgPSAwOwogICAgICAgICR0eXBlcyAgICA9IGFycmF5KCk7CiAgICAgICAgJG5ld3F1ZXJ5ID0gJyc7CgogICAgICAgIGZvcmVhY2ggKCR0b2tlbnMgYXMgJGtleSA9PiAkdmFsKSB7CiAgICAgICAgICAgIHN3aXRjaCAoJHZhbCkgewogICAgICAgICAgICAgICAgY2FzZSAnPyc6CiAgICAgICAgICAgICAgICAgICAgJHR5cGVzWyR0b2tlbisrXSA9IERCX1BBUkFNX1NDQUxBUjsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJyYnOgogICAgICAgICAgICAgICAgICAgICR0eXBlc1skdG9rZW4rK10gPSBEQl9QQVJBTV9PUEFRVUU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICchJzoKICAgICAgICAgICAgICAgICAgICAkdHlwZXNbJHRva2VuKytdID0gREJfUEFSQU1fTUlTQzsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgJHRva2Vuc1ska2V5XSA9IHByZWdfcmVwbGFjZSgnL1xcXChbJj8hXSkvJywgIlxcMSIsICR2YWwpOwogICAgICAgICAgICAgICAgICAgICRuZXdxdWVyeSAuPSAkdG9rZW5zWyRrZXldIC4gJz8nOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkbmV3cXVlcnkgPSBzdWJzdHIoJG5ld3F1ZXJ5LCAwLCAtMSk7CiAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJG5ld3F1ZXJ5ID0gJHRoaXMtPm1vZGlmeVF1ZXJ5KCRuZXdxdWVyeSk7CiAgICAgICAgJHN0bXQgPSBAaWJhc2VfcHJlcGFyZSgkdGhpcy0+Y29ubmVjdGlvbiwgJG5ld3F1ZXJ5KTsKCiAgICAgICAgaWYgKCRzdG10ID09PSBmYWxzZSkgewogICAgICAgICAgICAkc3RtdCA9ICR0aGlzLT5pYmFzZVJhaXNlRXJyb3IoKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+cHJlcGFyZV90eXBlc1soaW50KSRzdG10XSA9ICR0eXBlczsKICAgICAgICAgICAgJHRoaXMtPm1hbmlwX3F1ZXJ5WyhpbnQpJHN0bXRdICAgPSBEQjo6aXNNYW5pcCgkcXVlcnkpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRzdG10OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGV4ZWN1dGUoKQoKICAgIC8qKgogICAgICogRXhlY3V0ZXMgYSBEQiBzdGF0ZW1lbnQgcHJlcGFyZWQgd2l0aCBwcmVwYXJlKCkuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICAkc3RtdCAgYSBEQiBzdGF0ZW1lbnQgcmVzb3VyY2UgcmV0dXJuZWQgZnJvbSBwcmVwYXJlKCkKICAgICAqIEBwYXJhbSBtaXhlZCAgJGRhdGEgIGFycmF5LCBzdHJpbmcgb3IgbnVtZXJpYyBkYXRhIHRvIGJlIHVzZWQgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGlvbiBvZiB0aGUgc3RhdGVtZW50LiAgUXVhbnRpdHkgb2YgaXRlbXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZCBtdXN0IG1hdGNoIHF1YW50aXR5IG9mIHBsYWNlaG9sZGVycyBpbgogICAgICogICAgICAgICAgICAgICAgICAgICAgcXVlcnk6ICBtZWFuaW5nIDEgZm9yIG5vbi1hcnJheSBpdGVtcyBvciB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgIHF1YW50aXR5IG9mIGVsZW1lbnRzIGluIHRoZSBhcnJheS4KICAgICAqIEByZXR1cm4gb2JqZWN0ICBhIG5ldyBEQl9SZXN1bHQgb3IgYSBEQl9FcnJvciB3aGVuIGZhaWwKICAgICAqIEBzZWUgREJfaWJhc2U6OnByZXBhcmUoKQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gJmV4ZWN1dGUoJHN0bXQsICRkYXRhID0gYXJyYXkoKSkKICAgIHsKICAgICAgICAkZGF0YSA9IChhcnJheSkkZGF0YTsKICAgICAgICAkdGhpcy0+bGFzdF9wYXJhbWV0ZXJzID0gJGRhdGE7CgogICAgICAgICR0eXBlcyA9JiAkdGhpcy0+cHJlcGFyZV90eXBlc1soaW50KSRzdG10XTsKICAgICAgICBpZiAoY291bnQoJHR5cGVzKSAhPSBjb3VudCgkZGF0YSkpIHsKICAgICAgICAgICAgJHRtcCA9JiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9NSVNNQVRDSCk7CiAgICAgICAgICAgIHJldHVybiAkdG1wOwogICAgICAgIH0KCiAgICAgICAgJGkgPSAwOwogICAgICAgIGZvcmVhY2ggKCRkYXRhIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIGlmICgkdHlwZXNbJGldID09IERCX1BBUkFNX01JU0MpIHsKICAgICAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAgICAgKiBpYmFzZSBkb2Vzbid0IHNlZW0gdG8gaGF2ZSB0aGUgYWJpbGl0eSB0byBwYXNzIGEKICAgICAgICAgICAgICAgICAqIHBhcmFtZXRlciBhbG9uZyB1bmNoYW5nZWQsIHNvIHN0cmlwIG9mZiBxdW90ZXMgZnJvbSBzdGFydAogICAgICAgICAgICAgICAgICogYW5kIGVuZCwgcGx1cyB0dXJuIHR3byBzaW5nbGUgcXVvdGVzIHRvIG9uZSBzaW5nbGUgcXVvdGUsCiAgICAgICAgICAgICAgICAgKiBpbiBvcmRlciB0byBhdm9pZCB0aGUgcXVvdGVzIGdldHRpbmcgZXNjYXBlZCBieQogICAgICAgICAgICAgICAgICogaWJhc2UgYW5kIGVuZGluZyB1cCBpbiB0aGUgZGF0YWJhc2UuCiAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICRkYXRhWyRrZXldID0gcHJlZ19yZXBsYWNlKCIvXicoLiopJyQvIiwgIlxcMSIsICRkYXRhWyRrZXldKTsKICAgICAgICAgICAgICAgICRkYXRhWyRrZXldID0gc3RyX3JlcGxhY2UoIicnIiwgIiciLCAkZGF0YVska2V5XSk7CiAgICAgICAgICAgIH0gZWxzZWlmICgkdHlwZXNbJGldID09IERCX1BBUkFNX09QQVFVRSkgewogICAgICAgICAgICAgICAgJGZwID0gQGZvcGVuKCRkYXRhWyRrZXldLCAncmInKTsKICAgICAgICAgICAgICAgIGlmICghJGZwKSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcCA9JiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRkYXRhWyRrZXldID0gZnJlYWQoJGZwLCBmaWxlc2l6ZSgkZGF0YVska2V5XSkpOwogICAgICAgICAgICAgICAgZmNsb3NlKCRmcCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGkrKzsKICAgICAgICB9CgogICAgICAgIGFycmF5X3Vuc2hpZnQoJGRhdGEsICRzdG10KTsKCiAgICAgICAgJHJlcyA9IGNhbGxfdXNlcl9mdW5jX2FycmF5KCdpYmFzZV9leGVjdXRlJywgJGRhdGEpOwogICAgICAgIGlmICghJHJlcykgewogICAgICAgICAgICAkdG1wID0mICR0aGlzLT5pYmFzZVJhaXNlRXJyb3IoKTsKICAgICAgICAgICAgcmV0dXJuICR0bXA7CiAgICAgICAgfQogICAgICAgIC8qIFhYWCBuZWVkIHRoaXM/CiAgICAgICAgaWYgKCR0aGlzLT5hdXRvY29tbWl0ICYmICR0aGlzLT5tYW5pcF9xdWVyeVsoaW50KSRzdG10XSkgewogICAgICAgICAgICBAaWJhc2VfY29tbWl0KCR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICB9Ki8KICAgICAgICAkdGhpcy0+bGFzdF9zdG10ID0gJHN0bXQ7CiAgICAgICAgaWYgKCR0aGlzLT5tYW5pcF9xdWVyeVsoaW50KSRzdG10XSB8fCAkdGhpcy0+X25leHRfcXVlcnlfbWFuaXApIHsKICAgICAgICAgICAgJHRoaXMtPl9sYXN0X3F1ZXJ5X21hbmlwID0gdHJ1ZTsKICAgICAgICAgICAgJHRoaXMtPl9uZXh0X3F1ZXJ5X21hbmlwID0gZmFsc2U7CiAgICAgICAgICAgICR0bXAgPSBEQl9PSzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+X2xhc3RfcXVlcnlfbWFuaXAgPSBmYWxzZTsKICAgICAgICAgICAgJHRtcCA9JiBuZXcgREJfcmVzdWx0KCR0aGlzLCAkcmVzKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0bXA7CiAgICB9CgogICAgLyoqCiAgICAgKiBGcmVlcyB0aGUgaW50ZXJuYWwgcmVzb3VyY2VzIGFzc29jaWF0ZWQgd2l0aCBhIHByZXBhcmVkIHF1ZXJ5CiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRzdG10ICAgICAgICAgICB0aGUgcHJlcGFyZWQgc3RhdGVtZW50J3MgUEhQIHJlc291cmNlCiAgICAgKiBAcGFyYW0gYm9vbCAgICAgJGZyZWVfcmVzb3VyY2UgIHNob3VsZCB0aGUgUEhQIHJlc291cmNlIGJlIGZyZWVkIHRvbz8KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVzZSBmYWxzZSBpZiB5b3UgbmVlZCB0byBnZXQgZGF0YQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZnJvbSB0aGUgcmVzdWx0IHNldCBsYXRlci4KICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0UgaWYgJHJlc3VsdCBpcyBpbnZhbGlkCiAgICAgKgogICAgICogQHNlZSBEQl9pYmFzZTo6cHJlcGFyZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZyZWVQcmVwYXJlZCgkc3RtdCwgJGZyZWVfcmVzb3VyY2UgPSB0cnVlKQogICAgewogICAgICAgIGlmICghaXNfcmVzb3VyY2UoJHN0bXQpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKCRmcmVlX3Jlc291cmNlKSB7CiAgICAgICAgICAgIEBpYmFzZV9mcmVlX3F1ZXJ5KCRzdG10KTsKICAgICAgICB9CiAgICAgICAgdW5zZXQoJHRoaXMtPnByZXBhcmVfdG9rZW5zWyhpbnQpJHN0bXRdKTsKICAgICAgICB1bnNldCgkdGhpcy0+cHJlcGFyZV90eXBlc1soaW50KSRzdG10XSk7CiAgICAgICAgdW5zZXQoJHRoaXMtPm1hbmlwX3F1ZXJ5WyhpbnQpJHN0bXRdKTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBhdXRvQ29tbWl0KCkKCiAgICAvKioKICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYXV0b21hdGljIGNvbW1pdHMKICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbCAkb25vZmYgIHRydWUgdHVybnMgaXQgb24sIGZhbHNlIHR1cm5zIGl0IG9mZgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3QgaWYgdGhlIGRyaXZlcgogICAgICogICAgICAgICAgICAgICBkb2Vzbid0IHN1cHBvcnQgYXV0by1jb21taXR0aW5nIHRyYW5zYWN0aW9ucy4KICAgICAqLwogICAgZnVuY3Rpb24gYXV0b0NvbW1pdCgkb25vZmYgPSBmYWxzZSkKICAgIHsKICAgICAgICAkdGhpcy0+YXV0b2NvbW1pdCA9ICRvbm9mZiA/IDEgOiAwOwogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb21taXQoKQoKICAgIC8qKgogICAgICogQ29tbWl0cyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29tbWl0KCkKICAgIHsKICAgICAgICByZXR1cm4gQGliYXNlX2NvbW1pdCgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcm9sbGJhY2soKQoKICAgIC8qKgogICAgICogUmV2ZXJ0cyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gcm9sbGJhY2soKQogICAgewogICAgICAgIHJldHVybiBAaWJhc2Vfcm9sbGJhY2soJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRyYW5zYWN0aW9uSW5pdCgpCgogICAgZnVuY3Rpb24gdHJhbnNhY3Rpb25Jbml0KCR0cmFuc19hcmdzID0gMCkKICAgIHsKICAgICAgICByZXR1cm4gJHRyYW5zX2FyZ3MKICAgICAgICAgICAgICAgID8gQGliYXNlX3RyYW5zKCR0cmFuc19hcmdzLCAkdGhpcy0+Y29ubmVjdGlvbikKICAgICAgICAgICAgICAgIDogQGliYXNlX3RyYW5zKCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dElkKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5leHQgZnJlZSBpZCBpbiBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZQogICAgICogQHBhcmFtIGJvb2xlYW4gJG9uZGVtYW5kICB3aGVuIHRydWUsIHRoZSBzZXFlbmNlIGlzIGF1dG9tYXRpY2FsbHkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG5leHQgaWQgbnVtYmVyIGluIHRoZSBzZXF1ZW5jZS4KICAgICAqICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6bmV4dElEKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX2liYXNlOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9pYmFzZTo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dElkKCRzZXFfbmFtZSwgJG9uZGVtYW5kID0gdHJ1ZSkKICAgIHsKICAgICAgICAkc3FuID0gc3RydG91cHBlcigkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgICAgICRyZXBlYXQgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgJHJlc3VsdCA9JiAkdGhpcy0+cXVlcnkoIlNFTEVDVCBHRU5fSUQoJHtzcW59LCAxKSAiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnRlJPTSBSREIkR0VORVJBVE9SUyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiV0hFUkUgUkRCXCRHRU5FUkFUT1JfTkFNRT0nJHtzcW59JyIpOwogICAgICAgICAgICAkdGhpcy0+cG9wRXJyb3JIYW5kbGluZygpOwogICAgICAgICAgICBpZiAoJG9uZGVtYW5kICYmIERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAkcmVwZWF0ID0gMTsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKTsKICAgICAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHJlcGVhdCA9IDA7CiAgICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgkcmVwZWF0KTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgIH0KICAgICAgICAkYXJyID0gJHJlc3VsdC0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX09SREVSRUQpOwogICAgICAgICRyZXN1bHQtPmZyZWUoKTsKICAgICAgICByZXR1cm4gJGFyclswXTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjcmVhdGVTZXF1ZW5jZSgpCgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIG5ldyBzZXF1ZW5jZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfaWJhc2U6Om5leHRJRCgpLCBEQl9pYmFzZTo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKQogICAgewogICAgICAgICRzcW4gPSBzdHJ0b3VwcGVyKCR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKSk7CiAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPnF1ZXJ5KCJDUkVBVEUgR0VORVJBVE9SICR7c3FufSIpOwogICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CgogICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRyb3BTZXF1ZW5jZSgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIGEgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgc2VxdWVuY2UgdG8gYmUgZGVsZXRlZAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6ZHJvcFNlcXVlbmNlKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX2liYXNlOjpuZXh0SUQoKSwgREJfaWJhc2U6OmNyZWF0ZVNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZHJvcFNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCdERUxFVEUgRlJPTSBSREIkR0VORVJBVE9SUyAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICJXSEVSRSBSREJcJEdFTkVSQVRPUl9OQU1FPSciCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuIHN0cnRvdXBwZXIoJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiJyIpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9pYmFzZUZpZWxkRmxhZ3MoKQoKICAgIC8qKgogICAgICogR2V0IHRoZSBjb2x1bW4ncyBmbGFncwogICAgICoKICAgICAqIFN1cHBvcnRzICJwcmltYXJ5X2tleSIsICJ1bmlxdWVfa2V5IiwgIm5vdF9udWxsIiwgImRlZmF1bHQiLAogICAgICogImNvbXB1dGVkIiBhbmQgImJsb2IiLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGZpZWxkX25hbWUgIHRoZSBuYW1lIG9mIHRoZSBmaWVsZAogICAgICogQHBhcmFtIHN0cmluZyAkdGFibGVfbmFtZSAgdGhlIG5hbWUgb2YgdGhlIHRhYmxlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBmbGFncwogICAgICoKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICBmdW5jdGlvbiBfaWJhc2VGaWVsZEZsYWdzKCRmaWVsZF9uYW1lLCAkdGFibGVfbmFtZSkKICAgIHsKICAgICAgICAkc3FsID0gJ1NFTEVDVCBSLlJEQiRDT05TVFJBSU5UX1RZUEUgQ1RZUEUnCiAgICAgICAgICAgICAgIC4nIEZST00gUkRCJElOREVYX1NFR01FTlRTIEknCiAgICAgICAgICAgICAgIC4nICBKT0lOIFJEQiRSRUxBVElPTl9DT05TVFJBSU5UUyBSIE9OIEkuUkRCJElOREVYX05BTUU9Ui5SREIkSU5ERVhfTkFNRScKICAgICAgICAgICAgICAgLicgV0hFUkUgSS5SREIkRklFTERfTkFNRT1cJycgLiAkZmllbGRfbmFtZSAuICdcJycKICAgICAgICAgICAgICAgLicgIEFORCBVUFBFUihSLlJEQiRSRUxBVElPTl9OQU1FKT1cJycgLiBzdHJ0b3VwcGVyKCR0YWJsZV9uYW1lKSAuICdcJyc7CgogICAgICAgICRyZXN1bHQgPSBAaWJhc2VfcXVlcnkoJHRoaXMtPmNvbm5lY3Rpb24sICRzcWwpOwogICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmliYXNlUmFpc2VFcnJvcigpOwogICAgICAgIH0KCiAgICAgICAgJGZsYWdzID0gJyc7CiAgICAgICAgaWYgKCRvYmogPSBAaWJhc2VfZmV0Y2hfb2JqZWN0KCRyZXN1bHQpKSB7CiAgICAgICAgICAgIEBpYmFzZV9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgICAgICAgICAgaWYgKGlzc2V0KCRvYmotPkNUWVBFKSAgJiYgdHJpbSgkb2JqLT5DVFlQRSkgPT0gJ1BSSU1BUlkgS0VZJykgewogICAgICAgICAgICAgICAgJGZsYWdzIC49ICdwcmltYXJ5X2tleSAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc3NldCgkb2JqLT5DVFlQRSkgICYmIHRyaW0oJG9iai0+Q1RZUEUpID09ICdVTklRVUUnKSB7CiAgICAgICAgICAgICAgICAkZmxhZ3MgLj0gJ3VuaXF1ZV9rZXkgJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHNxbCA9ICdTRUxFQ1QgUi5SREIkTlVMTF9GTEFHIEFTIE5GTEFHLCcKICAgICAgICAgICAgICAgLicgIFIuUkRCJERFRkFVTFRfU09VUkNFIEFTIERTT1VSQ0UsJwogICAgICAgICAgICAgICAuJyAgRi5SREIkRklFTERfVFlQRSBBUyBGVFlQRSwnCiAgICAgICAgICAgICAgIC4nICBGLlJEQiRDT01QVVRFRF9TT1VSQ0UgQVMgQ1NPVVJDRScKICAgICAgICAgICAgICAgLicgRlJPTSBSREIkUkVMQVRJT05fRklFTERTIFIgJwogICAgICAgICAgICAgICAuJyAgSk9JTiBSREIkRklFTERTIEYgT04gUi5SREIkRklFTERfU09VUkNFPUYuUkRCJEZJRUxEX05BTUUnCiAgICAgICAgICAgICAgIC4nIFdIRVJFIFVQUEVSKFIuUkRCJFJFTEFUSU9OX05BTUUpPVwnJyAuIHN0cnRvdXBwZXIoJHRhYmxlX25hbWUpIC4gJ1wnJwogICAgICAgICAgICAgICAuJyAgQU5EIFIuUkRCJEZJRUxEX05BTUU9XCcnIC4gJGZpZWxkX25hbWUgLiAnXCcnOwoKICAgICAgICAkcmVzdWx0ID0gQGliYXNlX3F1ZXJ5KCR0aGlzLT5jb25uZWN0aW9uLCAkc3FsKTsKICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5pYmFzZVJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgaWYgKCRvYmogPSBAaWJhc2VfZmV0Y2hfb2JqZWN0KCRyZXN1bHQpKSB7CiAgICAgICAgICAgIEBpYmFzZV9mcmVlX3Jlc3VsdCgkcmVzdWx0KTsKICAgICAgICAgICAgaWYgKGlzc2V0KCRvYmotPk5GTEFHKSkgewogICAgICAgICAgICAgICAgJGZsYWdzIC49ICdub3RfbnVsbCAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc3NldCgkb2JqLT5EU09VUkNFKSkgewogICAgICAgICAgICAgICAgJGZsYWdzIC49ICdkZWZhdWx0ICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGlzc2V0KCRvYmotPkNTT1VSQ0UpKSB7CiAgICAgICAgICAgICAgICAkZmxhZ3MgLj0gJ2NvbXB1dGVkICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKGlzc2V0KCRvYmotPkZUWVBFKSAgJiYgJG9iai0+RlRZUEUgPT0gMjYxKSB7CiAgICAgICAgICAgICAgICAkZmxhZ3MgLj0gJ2Jsb2IgJzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHRyaW0oJGZsYWdzKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBpYmFzZVJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYSBEQl9FcnJvciBvYmplY3QgcmVnYXJkaW5nIHRoZSBjdXJyZW50IHByb2JsZW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRlcnJubyAgaWYgdGhlIGVycm9yIGlzIGJlaW5nIG1hbnVhbGx5IHJhaXNlZCBwYXNzIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgREJfRVJST1IqIGNvbnN0YW50IGhlcmUuICBJZiB0aGlzIGlzbid0IHBhc3NlZAogICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGUgREJNUy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgdGhlIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpyYWlzZUVycm9yKCksCiAgICAgKiAgICAgIERCX2liYXNlOjplcnJvck5hdGl2ZSgpLCBEQl9pYmFzZTo6ZXJyb3JDb2RlKCkKICAgICAqLwogICAgZnVuY3Rpb24gJmliYXNlUmFpc2VFcnJvcigkZXJybm8gPSBudWxsKQogICAgewogICAgICAgIGlmICgkZXJybm8gPT09IG51bGwpIHsKICAgICAgICAgICAgJGVycm5vID0gJHRoaXMtPmVycm9yQ29kZSgkdGhpcy0+ZXJyb3JOYXRpdmUoKSk7CiAgICAgICAgfQogICAgICAgICR0bXAgPSYgJHRoaXMtPnJhaXNlRXJyb3IoJGVycm5vLCBudWxsLCBudWxsLCBudWxsLCBAaWJhc2VfZXJybXNnKCkpOwogICAgICAgIHJldHVybiAkdG1wOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVycm9yTmF0aXZlKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIERCTVMnIG5hdGl2ZSBlcnJvciBjb2RlIHByb2R1Y2VkIGJ5IHRoZSBsYXN0IHF1ZXJ5CiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBEQk1TJyBlcnJvciBjb2RlLiAgTlVMTCBpZiB0aGVyZSBpcyBubyBlcnJvciBjb2RlLgogICAgICoKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS43LjAKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JOYXRpdmUoKQogICAgewogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ2liYXNlX2VycmNvZGUnKSkgewogICAgICAgICAgICByZXR1cm4gQGliYXNlX2VycmNvZGUoKTsKICAgICAgICB9CiAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eRHluYW1pYyBTUUwgRXJyb3IgU1FMIGVycm9yIGNvZGUgPSAoWzAtOS1dKykvaScsCiAgICAgICAgICAgICAgICAgICAgICAgQGliYXNlX2Vycm1zZygpLCAkbSkpIHsKICAgICAgICAgICAgcmV0dXJuIChpbnQpJG1bMV07CiAgICAgICAgfQogICAgICAgIHJldHVybiBudWxsOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVycm9yQ29kZSgpCgogICAgLyoqCiAgICAgKiBNYXBzIG5hdGl2ZSBlcnJvciBjb2RlcyB0byBEQidzIHBvcnRhYmxlIG9uZXMKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRuYXRpdmVjb2RlICB0aGUgZXJyb3IgY29kZSByZXR1cm5lZCBieSB0aGUgREJNUwogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgcG9ydGFibGUgREIgZXJyb3IgY29kZS4gIFJldHVybiBEQl9FUlJPUiBpZiB0aGUKICAgICAqICAgICAgICAgICAgICAgY3VycmVudCBkcml2ZXIgZG9lc24ndCBoYXZlIGEgbWFwcGluZyBmb3IgdGhlCiAgICAgKiAgICAgICAgICAgICAgICRuYXRpdmVjb2RlIHN1Ym1pdHRlZC4KICAgICAqCiAgICAgKiBAc2luY2UgTWV0aG9kIGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNy4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVycm9yQ29kZSgkbmF0aXZlY29kZSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5lcnJvcmNvZGVfbWFwWyRuYXRpdmVjb2RlXSkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lcnJvcmNvZGVfbWFwWyRuYXRpdmVjb2RlXTsKICAgICAgICB9CgogICAgICAgIHN0YXRpYyAkZXJyb3JfcmVnZXhwczsKICAgICAgICBpZiAoIWlzc2V0KCRlcnJvcl9yZWdleHBzKSkgewogICAgICAgICAgICAkZXJyb3JfcmVnZXhwcyA9IGFycmF5KAogICAgICAgICAgICAgICAgJy9nZW5lcmF0b3IgLiogaXMgbm90IGRlZmluZWQvJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX1NZTlRBWCwgIC8vIGZvciBjb21wYXQuIHcgaWJhc2VfZXJyY29kZSgpCiAgICAgICAgICAgICAgICAnL3RhYmxlLioobm90IGV4aXN0fG5vdCBmb3VuZHx1bmtub3duKS9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgICAgICAgICAgJy90YWJsZSAuKiBhbHJlYWR5IGV4aXN0cy9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgICAgICAgICAgJy91bnN1Y2Nlc3NmdWwgbWV0YWRhdGEgdXBkYXRlIC4qIGZhaWxlZCBhdHRlbXB0IHRvIHN0b3JlIGR1cGxpY2F0ZSB2YWx1ZS9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgICAgICAgICAgJy91bnN1Y2Nlc3NmdWwgbWV0YWRhdGEgdXBkYXRlIC4qIG5vdCBmb3VuZC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX05PVF9GT1VORCwKICAgICAgICAgICAgICAgICcvdmFsaWRhdGlvbiBlcnJvciBmb3IgY29sdW1uIC4qIHZhbHVlICJcKlwqXCogbnVsbC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwsCiAgICAgICAgICAgICAgICAnL3Zpb2xhdGlvbiBvZiBbXHcgXSsgY29uc3RyYWludC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgICAgICAgICAnL2NvbnZlcnNpb24gZXJyb3IgZnJvbSBzdHJpbmcvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9JTlZBTElEX05VTUJFUiwKICAgICAgICAgICAgICAgICcvbm8gcGVybWlzc2lvbiBmb3IvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OLAogICAgICAgICAgICAgICAgJy9hcml0aG1ldGljIGV4Y2VwdGlvbiwgbnVtZXJpYyBvdmVyZmxvdywgb3Igc3RyaW5nIHRydW5jYXRpb24vaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9JTlZBTElELAogICAgICAgICAgICAgICAgJy9mZWF0dXJlIGlzIG5vdCBzdXBwb3J0ZWQvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9OT1RfQ0FQQUJMRSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICRlcnJvcm1zZyA9IEBpYmFzZV9lcnJtc2coKTsKICAgICAgICBmb3JlYWNoICgkZXJyb3JfcmVnZXhwcyBhcyAkcmVnZXhwID0+ICRjb2RlKSB7CiAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCRyZWdleHAsICRlcnJvcm1zZykpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkY29kZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfRVJST1I7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgdGFibGVJbmZvKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSB0YWJsZSBvciBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBOT1RFOiBvbmx5IHN1cHBvcnRzICd0YWJsZScgYW5kICdmbGFncycgaWYgPHZhcj4kcmVzdWx0PC92YXI+CiAgICAgKiBpcyBhIHRhYmxlIG5hbWUuCiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdHxzdHJpbmcgICRyZXN1bHQgIERCX3Jlc3VsdCBvYmplY3QgZnJvbSBhIHF1ZXJ5IG9yIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgYSB0YWJsZS4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgdGhpcyBhbHNvIGFjY2VwdHMgYSBxdWVyeSByZXN1bHQKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgaWRlbnRpZmllciwgdGhpcyBiZWhhdmlvciBpcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICRtb2RlICAgIGEgdmFsaWQgdGFibGVJbmZvIG1vZGUKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHRoZSBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQuCiAgICAgKiAgICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6dGFibGVJbmZvKCkKICAgICAqLwogICAgZnVuY3Rpb24gdGFibGVJbmZvKCRyZXN1bHQsICRtb2RlID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoaXNfc3RyaW5nKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgdGFibGUgbmFtZS4KICAgICAgICAgICAgICogQ3JlYXRlIGEgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSBAaWJhc2VfcXVlcnkoJHRoaXMtPmNvbm5lY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiU0VMRUNUICogRlJPTSAkcmVzdWx0IFdIRVJFIDE9MCIpOwogICAgICAgICAgICAkZ290X3N0cmluZyA9IHRydWU7CiAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCRyZXN1bHQtPnJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgb2JqZWN0LgogICAgICAgICAgICAgKiBFeHRyYWN0IHRoZSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQtPnJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKiBDb3B5IGl0LgogICAgICAgICAgICAgKiBEZXByZWNhdGVkLiAgSGVyZSBmb3IgY29tcGF0aWJpbGl0eSBvbmx5LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJGlkID0gJHJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNfcmVzb3VyY2UoJGlkKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmliYXNlUmFpc2VFcnJvcihEQl9FUlJPUl9ORUVEX01PUkVfREFUQSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9MT1dFUkNBU0UpIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ0b2xvd2VyJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkY2FzZV9mdW5jID0gJ3N0cnZhbCc7CiAgICAgICAgfQoKICAgICAgICAkY291bnQgPSBAaWJhc2VfbnVtX2ZpZWxkcygkaWQpOwogICAgICAgICRyZXMgICA9IGFycmF5KCk7CgogICAgICAgIGlmICgkbW9kZSkgewogICAgICAgICAgICAkcmVzWydudW1fZmllbGRzJ10gPSAkY291bnQ7CiAgICAgICAgfQoKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgJGluZm8gPSBAaWJhc2VfZmllbGRfaW5mbygkaWQsICRpKTsKICAgICAgICAgICAgJHJlc1skaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICd0YWJsZScgPT4gJGdvdF9zdHJpbmcgPyAkY2FzZV9mdW5jKCRyZXN1bHQpIDogJycsCiAgICAgICAgICAgICAgICAnbmFtZScgID0+ICRjYXNlX2Z1bmMoJGluZm9bJ25hbWUnXSksCiAgICAgICAgICAgICAgICAndHlwZScgID0+ICRpbmZvWyd0eXBlJ10sCiAgICAgICAgICAgICAgICAnbGVuJyAgID0+ICRpbmZvWydsZW5ndGgnXSwKICAgICAgICAgICAgICAgICdmbGFncycgPT4gKCRnb3Rfc3RyaW5nKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAkdGhpcy0+X2liYXNlRmllbGRGbGFncygkaW5mb1snbmFtZSddLCAkcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCRtb2RlICYgREJfVEFCTEVJTkZPX09SREVSKSB7CiAgICAgICAgICAgICAgICAkcmVzWydvcmRlciddWyRyZXNbJGldWyduYW1lJ11dID0gJGk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRtb2RlICYgREJfVEFCTEVJTkZPX09SREVSVEFCTEUpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVydGFibGUnXVskcmVzWyRpXVsndGFibGUnXV1bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gZnJlZSB0aGUgcmVzdWx0IG9ubHkgaWYgd2Ugd2VyZSBjYWxsZWQgb24gYSB0YWJsZQogICAgICAgIGlmICgkZ290X3N0cmluZykgewogICAgICAgICAgICBAaWJhc2VfZnJlZV9yZXN1bHQoJGlkKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0U3BlY2lhbFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIE9idGFpbnMgdGhlIHF1ZXJ5IHN0cmluZyBuZWVkZWQgZm9yIGxpc3RpbmcgYSBnaXZlbiB0eXBlIG9mIG9iamVjdHMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlICB0aGUga2luZCBvZiBvYmplY3RzIHlvdSB3YW50IHRvIHJldHJpZXZlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nIG9yIG51bGwgaWYgdGhlIGRyaXZlciBkb2Vzbid0CiAgICAgKiAgICAgICAgICAgICAgICAgIHN1cHBvcnQgdGhlIG9iamVjdCB0eXBlIHJlcXVlc3RlZAogICAgICoKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Z2V0TGlzdE9mKCkKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U3BlY2lhbFF1ZXJ5KCR0eXBlKQogICAgewogICAgICAgIHN3aXRjaCAoJHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAndGFibGVzJzoKICAgICAgICAgICAgICAgIHJldHVybiAnU0VMRUNUIERJU1RJTkNUIFIuUkRCJFJFTEFUSU9OX05BTUUgRlJPTSAnCiAgICAgICAgICAgICAgICAgICAgICAgLiAnUkRCJFJFTEFUSU9OX0ZJRUxEUyBSIFdIRVJFIFIuUkRCJFNZU1RFTV9GTEFHPTAnOwogICAgICAgICAgICBjYXNlICd2aWV3cyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1NFTEVDVCBESVNUSU5DVCBSREIkVklFV19OQU1FIGZyb20gUkRCJFZJRVdfUkVMQVRJT05TJzsKICAgICAgICAgICAgY2FzZSAndXNlcnMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1QgRElTVElOQ1QgUkRCJFVTRVIgRlJPTSBSREIkVVNFUl9QUklWSUxFR0VTJzsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KCn0KCi8qCiAqIExvY2FsIHZhcmlhYmxlczoKICogdGFiLXdpZHRoOiA0CiAqIGMtYmFzaWMtb2Zmc2V0OiA0CiAqIEVuZDoKICovCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/ifx.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBpZnggZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIEluZm9ybWl4IGRhdGFiYXNlcwogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgVG9tYXMgVi5WLkNveCA8Y294QGlkZWNuZXQuY29tPgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBDVlM6ICRJZDogaWZ4LnBocCx2IDEuNzQgMjAwNy8wMS8xMiAwMzoxMToxNyBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBPYnRhaW4gdGhlIERCX2NvbW1vbiBjbGFzcyBzbyBpdCBjYW4gYmUgZXh0ZW5kZWQgZnJvbQogKi8KcmVxdWlyZV9vbmNlICdEQi9jb21tb24ucGhwJzsKCi8qKgogKiBUaGUgbWV0aG9kcyBQRUFSIERCIHVzZXMgdG8gaW50ZXJhY3Qgd2l0aCBQSFAncyBpZnggZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIEluZm9ybWl4IGRhdGFiYXNlcwogKgogKiBUaGVzZSBtZXRob2RzIG92ZXJsb2FkIHRoZSBvbmVzIGRlY2xhcmVkIGluIERCX2NvbW1vbi4KICoKICogTW9yZSBpbmZvIG9uIEluZm9ybWl4IGVycm9ycyBjYW4gYmUgZm91bmQgYXQ6CiAqIGh0dHA6Ly93d3cuaW5mb3JtaXguY29tL2Fuc3dlcnMvZW5nbGlzaC9pZXJyb3JzLmh0bQogKgogKiBUT0RPOgogKiAgIC0gc2V0IG5lZWRlZCBlbnYgSW5mb3JtaXggdmFycyBvbiBjb25uZWN0CiAqICAgLSBpbXBsZW1lbnQgbmF0aXZlIHByZXBhcmUvZXhlY3V0ZQogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBUb21hcyBWLlYuQ294IDxjb3hAaWRlY25ldC5jb20+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDEuNy4xMgogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCmNsYXNzIERCX2lmeCBleHRlbmRzIERCX2NvbW1vbgp7CiAgICAvLyB7e3sgcHJvcGVydGllcwoKICAgIC8qKgogICAgICogVGhlIERCIGRyaXZlciB0eXBlIChteXNxbCwgb2NpOCwgb2RiYywgZXRjLikKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkcGhwdHlwZSA9ICdpZngnOwoKICAgIC8qKgogICAgICogVGhlIGRhdGFiYXNlIHN5bnRheCB2YXJpYW50IHRvIGJlIHVzZWQgKGRiMiwgYWNjZXNzLCBldGMuKSwgaWYgYW55CiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJGRic3ludGF4ID0gJ2lmeCc7CgogICAgLyoqCiAgICAgKiBUaGUgY2FwYWJpbGl0aWVzIG9mIHRoaXMgREIgaW1wbGVtZW50YXRpb24KICAgICAqCiAgICAgKiBUaGUgJ25ld19saW5rJyBlbGVtZW50IGNvbnRhaW5zIHRoZSBQSFAgdmVyc2lvbiB0aGF0IGZpcnN0IHByb3ZpZGVkCiAgICAgKiBuZXdfbGluayBzdXBwb3J0IGZvciB0aGlzIERCTVMuICBDb250YWlucyBmYWxzZSBpZiBpdCdzIHVuc3VwcG9ydGVkLgogICAgICoKICAgICAqIE1lYW5pbmcgb2YgdGhlICdsaW1pdCcgZWxlbWVudDoKICAgICAqICAgKyAnZW11bGF0ZScgPSBlbXVsYXRlIHdpdGggZmV0Y2ggcm93IGJ5IG51bWJlcgogICAgICogICArICdhbHRlcicgICA9IGFsdGVyIHRoZSBxdWVyeQogICAgICogICArIGZhbHNlICAgICA9IHNraXAgcm93cwogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRmZWF0dXJlcyA9IGFycmF5KAogICAgICAgICdsaW1pdCcgICAgICAgICA9PiAnZW11bGF0ZScsCiAgICAgICAgJ25ld19saW5rJyAgICAgID0+IGZhbHNlLAogICAgICAgICdudW1yb3dzJyAgICAgICA9PiAnZW11bGF0ZScsCiAgICAgICAgJ3Bjb25uZWN0JyAgICAgID0+IHRydWUsCiAgICAgICAgJ3ByZXBhcmUnICAgICAgID0+IGZhbHNlLAogICAgICAgICdzc2wnICAgICAgICAgICA9PiBmYWxzZSwKICAgICAgICAndHJhbnNhY3Rpb25zJyAgPT4gdHJ1ZSwKICAgICk7CgogICAgLyoqCiAgICAgKiBBIG1hcHBpbmcgb2YgbmF0aXZlIGVycm9yIGNvZGVzIHRvIERCIGVycm9yIGNvZGVzCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZXJyb3Jjb2RlX21hcCA9IGFycmF5KAogICAgICAgICctMjAxJyAgICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgJy0yMDYnICAgID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgICctMjE3JyAgICA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAnLTIzNicgICAgPT4gREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XLAogICAgICAgICctMjM5JyAgICA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgICctMjUzJyAgICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgJy0yNjgnICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgJy0yOTInICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwsCiAgICAgICAgJy0zMTAnICAgID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgICctMzE2JyAgICA9PiBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywKICAgICAgICAnLTMxOScgICAgPT4gREJfRVJST1JfTk9UX0ZPVU5ELAogICAgICAgICctMzI5JyAgICA9PiBEQl9FUlJPUl9OT0RCU0VMRUNURUQsCiAgICAgICAgJy0zNDYnICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgJy0zODYnICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwsCiAgICAgICAgJy0zOTEnICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwsCiAgICAgICAgJy01NTQnICAgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAnLTY5MScgICAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAnLTY5MicgICAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAnLTcwMycgICAgPT4gREJfRVJST1JfQ09OU1RSQUlOVF9OT1RfTlVMTCwKICAgICAgICAnLTEyMDInICAgPT4gREJfRVJST1JfRElWWkVSTywKICAgICAgICAnLTEyMDQnICAgPT4gREJfRVJST1JfSU5WQUxJRF9EQVRFLAogICAgICAgICctMTIwNScgICA9PiBEQl9FUlJPUl9JTlZBTElEX0RBVEUsCiAgICAgICAgJy0xMjA2JyAgID0+IERCX0VSUk9SX0lOVkFMSURfREFURSwKICAgICAgICAnLTEyMDknICAgPT4gREJfRVJST1JfSU5WQUxJRF9EQVRFLAogICAgICAgICctMTIxMCcgICA9PiBEQl9FUlJPUl9JTlZBTElEX0RBVEUsCiAgICAgICAgJy0xMjEyJyAgID0+IERCX0VSUk9SX0lOVkFMSURfREFURSwKICAgICAgICAnLTEyMTMnICAgPT4gREJfRVJST1JfSU5WQUxJRF9OVU1CRVIsCiAgICApOwoKICAgIC8qKgogICAgICogVGhlIHJhdyBkYXRhYmFzZSBjb25uZWN0aW9uIGNyZWF0ZWQgYnkgUEhQCiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKi8KICAgIHZhciAkY29ubmVjdGlvbjsKCiAgICAvKioKICAgICAqIFRoZSBEU04gaW5mb3JtYXRpb24gZm9yIGNvbm5lY3RpbmcgdG8gYSBkYXRhYmFzZQogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGRzbiA9IGFycmF5KCk7CgoKICAgIC8qKgogICAgICogU2hvdWxkIGRhdGEgbWFuaXB1bGF0aW9uIHF1ZXJpZXMgYmUgY29tbWl0dGVkIGF1dG9tYXRpY2FsbHk/CiAgICAgKiBAdmFyIGJvb2wKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJGF1dG9jb21taXQgPSB0cnVlOwoKICAgIC8qKgogICAgICogVGhlIHF1YW50aXR5IG9mIHRyYW5zYWN0aW9ucyBiZWd1bgogICAgICoKICAgICAqIHtAaW50ZXJuYWwgIFdoaWxlIHRoaXMgaXMgcHJpdmF0ZSwgaXQgY2FuJ3QgYWN0dWFsbHkgYmUgZGVzaWduYXRlZAogICAgICogcHJpdmF0ZSBpbiBQSFAgNSBiZWNhdXNlIGl0IGlzIGRpcmVjdGx5IGFjY2Vzc2VkIGluIHRoZSB0ZXN0IHN1aXRlLn19CiAgICAgKgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICR0cmFuc2FjdGlvbl9vcGNvdW50ID0gMDsKCiAgICAvKioKICAgICAqIFRoZSBudW1iZXIgb2Ygcm93cyBhZmZlY3RlZCBieSBhIGRhdGEgbWFuaXB1bGF0aW9uIHF1ZXJ5CiAgICAgKiBAdmFyIGludGVnZXIKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJGFmZmVjdGVkID0gMDsKCgogICAgLy8gfX19CiAgICAvLyB7e3sgY29uc3RydWN0b3IKCiAgICAvKioKICAgICAqIFRoaXMgY29uc3RydWN0b3IgY2FsbHMgPGtiZD4kdGhpcy0+REJfY29tbW9uKCk8L2tiZD4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gREJfaWZ4KCkKICAgIHsKICAgICAgICAkdGhpcy0+REJfY29tbW9uKCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgY29ubmVjdCgpCgogICAgLyoqCiAgICAgKiBDb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIsIGxvZyBpbiBhbmQgb3BlbiB0aGUgZGF0YWJhc2UKICAgICAqCiAgICAgKiBEb24ndCBjYWxsIHRoaXMgbWV0aG9kIGRpcmVjdGx5LiAgVXNlIERCOjpjb25uZWN0KCkgaW5zdGVhZC4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJGRzbiAgICAgICAgIHRoZSBkYXRhIHNvdXJjZSBuYW1lCiAgICAgKiBAcGFyYW0gYm9vbCAgJHBlcnNpc3RlbnQgIHNob3VsZCB0aGUgY29ubmVjdGlvbiBiZSBwZXJzaXN0ZW50PwogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBjb25uZWN0KCRkc24sICRwZXJzaXN0ZW50ID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCFQRUFSOjpsb2FkRXh0ZW5zaW9uKCdpbmZvcm1peCcpICYmCiAgICAgICAgICAgICFQRUFSOjpsb2FkRXh0ZW5zaW9uKCdJbmZvcm1peCcpKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0VYVEVOU0lPTl9OT1RfRk9VTkQpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmRzbiA9ICRkc247CiAgICAgICAgaWYgKCRkc25bJ2Ric3ludGF4J10pIHsKICAgICAgICAgICAgJHRoaXMtPmRic3ludGF4ID0gJGRzblsnZGJzeW50YXgnXTsKICAgICAgICB9CgogICAgICAgICRkYmhvc3QgPSAkZHNuWydob3N0c3BlYyddID8gJ0AnIC4gJGRzblsnaG9zdHNwZWMnXSA6ICcnOwogICAgICAgICRkYm5hbWUgPSAkZHNuWydkYXRhYmFzZSddID8gJGRzblsnZGF0YWJhc2UnXSAuICRkYmhvc3QgOiAnJzsKICAgICAgICAkdXNlciA9ICRkc25bJ3VzZXJuYW1lJ10gPyAkZHNuWyd1c2VybmFtZSddIDogJyc7CiAgICAgICAgJHB3ID0gJGRzblsncGFzc3dvcmQnXSA/ICRkc25bJ3Bhc3N3b3JkJ10gOiAnJzsKCiAgICAgICAgJGNvbm5lY3RfZnVuY3Rpb24gPSAkcGVyc2lzdGVudCA/ICdpZnhfcGNvbm5lY3QnIDogJ2lmeF9jb25uZWN0JzsKCiAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAJGNvbm5lY3RfZnVuY3Rpb24oJGRibmFtZSwgJHVzZXIsICRwdyk7CiAgICAgICAgaWYgKCFpc19yZXNvdXJjZSgkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5pZnhSYWlzZUVycm9yKERCX0VSUk9SX0NPTk5FQ1RfRkFJTEVEKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRpc2Nvbm5lY3QoKQoKICAgIC8qKgogICAgICogRGlzY29ubmVjdHMgZnJvbSB0aGUgZGF0YWJhc2Ugc2VydmVyCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIG9uIGZhaWx1cmUKICAgICAqLwogICAgZnVuY3Rpb24gZGlzY29ubmVjdCgpCiAgICB7CiAgICAgICAgJHJldCA9IEBpZnhfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICByZXR1cm4gJHJldDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBzaW1wbGVRdWVyeSgpCgogICAgLyoqCiAgICAgKiBTZW5kcyBhIHF1ZXJ5IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZwogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgICsgYSBQSFAgcmVzdWx0IHJlc3JvdWNlIGZvciBzdWNjZXNzZnVsIFNFTEVDVCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIHRoZSBEQl9PSyBjb25zdGFudCBmb3Igb3RoZXIgc3VjY2Vzc2Z1bCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIGEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUKICAgICAqLwogICAgZnVuY3Rpb24gc2ltcGxlUXVlcnkoJHF1ZXJ5KQogICAgewogICAgICAgICRpc21hbmlwID0gJHRoaXMtPl9jaGVja01hbmlwKCRxdWVyeSk7CiAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJHRoaXMtPmFmZmVjdGVkICAgPSBudWxsOwogICAgICAgIGlmIChwcmVnX21hdGNoKCcvKFNFTEVDVHxFWEVDVVRFKS9pJywgJHF1ZXJ5KSkgeyAgICAvL1RFU1RNRTogVXNlICFEQjo6aXNNYW5pcCgpPwogICAgICAgICAgICAvLyB0aGUgc2Nyb2xsIGlzIG5lZWRlZCBmb3IgZmV0Y2hpbmcgYWJzb2x1dGUgcm93IG51bWJlcnMKICAgICAgICAgICAgLy8gaW4gYSBzZWxlY3QgcXVlcnkgcmVzdWx0CiAgICAgICAgICAgICRyZXN1bHQgPSBAaWZ4X3F1ZXJ5KCRxdWVyeSwgJHRoaXMtPmNvbm5lY3Rpb24sIElGWF9TQ1JPTEwpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICghJHRoaXMtPmF1dG9jb21taXQgJiYgJGlzbWFuaXApIHsKICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgJHJlc3VsdCA9IEBpZnhfcXVlcnkoJ0JFR0lOIFdPUksnLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+aWZ4UmFpc2VFcnJvcigpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50Kys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJlc3VsdCA9IEBpZnhfcXVlcnkoJHF1ZXJ5LCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgfQogICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmlmeFJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPmFmZmVjdGVkID0gQGlmeF9hZmZlY3RlZF9yb3dzKCRyZXN1bHQpOwogICAgICAgIC8vIERldGVybWluZSB3aGljaCBxdWVyaWVzIHNob3VsZCByZXR1cm4gZGF0YSwgYW5kIHdoaWNoCiAgICAgICAgLy8gc2hvdWxkIHJldHVybiBhbiBlcnJvciBjb2RlIG9ubHkuCiAgICAgICAgaWYgKHByZWdfbWF0Y2goJy8oU0VMRUNUfEVYRUNVVEUpL2knLCAkcXVlcnkpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0KICAgICAgICAvLyBYWFggVGVzdG1lOiBmcmVlIHJlc3VsdHMgaW5zaWRlIGEgdHJhbnNhY3Rpb24KICAgICAgICAvLyBtYXkgY2F1c2UgdG8gc3RvcCBpdCBhbmQgY29tbWl0IHRoZSB3b3JrPwoKICAgICAgICAvLyBSZXN1bHQgaGFzIHRvIGJlIGZyZWVkIGV2ZW4gd2l0aCBhIGluc2VydCBvciB1cGRhdGUKICAgICAgICBAaWZ4X2ZyZWVfcmVzdWx0KCRyZXN1bHQpOwoKICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dFJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBNb3ZlIHRoZSBpbnRlcm5hbCBpZnggcmVzdWx0IHBvaW50ZXIgdG8gdGhlIG5leHQgYXZhaWxhYmxlIHJlc3VsdAogICAgICoKICAgICAqIEBwYXJhbSBhIHZhbGlkIGZic3FsIHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKgogICAgICogQHJldHVybiB0cnVlIGlmIGEgcmVzdWx0IGlzIGF2YWlsYWJsZSBvdGhlcndpc2UgcmV0dXJuIGZhbHNlCiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRSZXN1bHQoJHJlc3VsdCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYWZmZWN0ZWRSb3dzKCkKCiAgICAvKioKICAgICAqIERldGVybWluZXMgdGhlIG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IGEgZGF0YSBtYW5pdXBsYXRpb24gcXVlcnkKICAgICAqCiAgICAgKiAwIGlzIHJldHVybmVkIGZvciBxdWVyaWVzIHRoYXQgZG9uJ3QgbWFuaXB1bGF0ZSBkYXRhLgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBhZmZlY3RlZFJvd3MoKQogICAgewogICAgICAgIGlmICgkdGhpcy0+X2xhc3RfcXVlcnlfbWFuaXApIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5hZmZlY3RlZDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hJbnRvKCkKCiAgICAvKioKICAgICAqIFBsYWNlcyBhIHJvdyBmcm9tIHRoZSByZXN1bHQgc2V0IGludG8gdGhlIGdpdmVuIGFycmF5CiAgICAgKgogICAgICogRm9ybWF0aW5nIG9mIHRoZSBhcnJheSBhbmQgdGhlIGRhdGEgdGhlcmVpbiBhcmUgY29uZmlndXJhYmxlLgogICAgICogU2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmZXRjaEludG8oKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICAgIHRoZSBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqIEBwYXJhbSBhcnJheSAgICAkYXJyICAgICAgIHRoZSByZWZlcmVuY2VkIGFycmF5IHRvIHB1dCB0aGUgZGF0YSBpbgogICAgICogQHBhcmFtIGludCAgICAgICRmZXRjaG1vZGUgaG93IHRoZSByZXN1bHRpbmcgYXJyYXkgc2hvdWxkIGJlIGluZGV4ZWQKICAgICAqIEBwYXJhbSBpbnQgICAgICAkcm93bnVtICAgIHRoZSByb3cgbnVtYmVyIHRvIGZldGNoICgwID0gZmlyc3Qgcm93KQogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIERCX09LIG9uIHN1Y2Nlc3MsIE5VTEwgd2hlbiB0aGUgZW5kIG9mIGEgcmVzdWx0IHNldCBpcwogICAgICogICAgICAgICAgICAgICAgIHJlYWNoZWQgb3Igb24gZmFpbHVyZQogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKQogICAgICovCiAgICBmdW5jdGlvbiBmZXRjaEludG8oJHJlc3VsdCwgJiRhcnIsICRmZXRjaG1vZGUsICRyb3dudW0gPSBudWxsKQogICAgewogICAgICAgIGlmICgoJHJvd251bSAhPT0gbnVsbCkgJiYgKCRyb3dudW0gPCAwKSkgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgaWYgKCRyb3dudW0gPT09IG51bGwpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogRXZlbiB0aG91Z2ggZmV0Y2hfcm93KCkgc2hvdWxkIHJldHVybiB0aGUgbmV4dCByb3cgIGlmCiAgICAgICAgICAgICAqICRyb3dudW0gaXMgbnVsbCwgaXQgZG9lc24ndCBpbiBhbGwgY2FzZXMuICBCdWcgNTk4LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJHJvd251bSA9ICdORVhUJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyBJbmRleCBzdGFydHMgYXQgcm93IDEsIHVubGlrZSBtb3N0IERCTVMncyBzdGFydGluZyBhdCAwLgogICAgICAgICAgICAkcm93bnVtKys7CiAgICAgICAgfQogICAgICAgIGlmICghJGFyciA9IEBpZnhfZmV0Y2hfcm93KCRyZXN1bHQsICRyb3dudW0pKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoJGZldGNobW9kZSAhPT0gREJfRkVUQ0hNT0RFX0FTU09DKSB7CiAgICAgICAgICAgICRpPTA7CiAgICAgICAgICAgICRvcmRlciA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2ggKCRhcnIgYXMgJHZhbCkgewogICAgICAgICAgICAgICAgJG9yZGVyWyRpKytdID0gJHZhbDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkYXJyID0gJG9yZGVyOwogICAgICAgIH0gZWxzZWlmICgkZmV0Y2htb2RlID09IERCX0ZFVENITU9ERV9BU1NPQyAmJgogICAgICAgICAgICAgICAgICAkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX0xPV0VSQ0FTRSkKICAgICAgICB7CiAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX1JUUklNKSB7CiAgICAgICAgICAgICR0aGlzLT5fcnRyaW1BcnJheVZhbHVlcygkYXJyKTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTlVMTF9UT19FTVBUWSkgewogICAgICAgICAgICAkdGhpcy0+X2NvbnZlcnROdWxsQXJyYXlWYWx1ZXNUb0VtcHR5KCRhcnIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtQ29scygpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6Om51bUNvbHMoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiBjb2x1bW5zLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6bnVtQ29scygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG51bUNvbHMoJHJlc3VsdCkKICAgIHsKICAgICAgICBpZiAoISRjb2xzID0gQGlmeF9udW1fZmllbGRzKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+aWZ4UmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvbHM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZnJlZVJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIHRoZSByZXN1bHQgc2V0IGFuZCBmcmVlcyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmcmVlKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIGlmICRyZXN1bHQgaXMgaW52YWxpZAogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmcmVlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZnJlZVJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiBpc19yZXNvdXJjZSgkcmVzdWx0KSA/IGlmeF9mcmVlX3Jlc3VsdCgkcmVzdWx0KSA6IGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGF1dG9Db21taXQoKQoKICAgIC8qKgogICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhdXRvbWF0aWMgY29tbWl0cwogICAgICoKICAgICAqIEBwYXJhbSBib29sICRvbm9mZiAgdHJ1ZSB0dXJucyBpdCBvbiwgZmFsc2UgdHVybnMgaXQgb2ZmCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBpZiB0aGUgZHJpdmVyCiAgICAgKiAgICAgICAgICAgICAgIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBhdXRvQ29tbWl0KCRvbm9mZiA9IHRydWUpCiAgICB7CiAgICAgICAgLy8gWFhYIGlmICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID4gMCwgd2Ugc2hvdWxkIHByb2JhYmx5CiAgICAgICAgLy8gaXNzdWUgYSB3YXJuaW5nIGhlcmUuCiAgICAgICAgJHRoaXMtPmF1dG9jb21taXQgPSAkb25vZmYgPyB0cnVlIDogZmFsc2U7CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbW1pdCgpCgogICAgLyoqCiAgICAgKiBDb21taXRzIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBjb21taXQoKQogICAgewogICAgICAgIGlmICgkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA+IDApIHsKICAgICAgICAgICAgJHJlc3VsdCA9IEBpZnhfcXVlcnkoJ0NPTU1JVCBXT1JLJywgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9IDA7CiAgICAgICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5pZnhSYWlzZUVycm9yKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHJvbGxiYWNrKCkKCiAgICAvKioKICAgICAqIFJldmVydHMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHJvbGxiYWNrKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwKSB7CiAgICAgICAgICAgICRyZXN1bHQgPSBAaWZ4X3F1ZXJ5KCdST0xMQkFDSyBXT1JLJywgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9IDA7CiAgICAgICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5pZnhSYWlzZUVycm9yKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGlmeFJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYSBEQl9FcnJvciBvYmplY3QgcmVnYXJkaW5nIHRoZSBjdXJyZW50IHByb2JsZW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRlcnJubyAgaWYgdGhlIGVycm9yIGlzIGJlaW5nIG1hbnVhbGx5IHJhaXNlZCBwYXNzIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgREJfRVJST1IqIGNvbnN0YW50IGhlcmUuICBJZiB0aGlzIGlzbid0IHBhc3NlZAogICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGUgREJNUy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgdGhlIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpyYWlzZUVycm9yKCksCiAgICAgKiAgICAgIERCX2lmeDo6ZXJyb3JOYXRpdmUoKSwgREJfaWZ4OjplcnJvckNvZGUoKQogICAgICovCiAgICBmdW5jdGlvbiBpZnhSYWlzZUVycm9yKCRlcnJubyA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRlcnJubyA9PT0gbnVsbCkgewogICAgICAgICAgICAkZXJybm8gPSAkdGhpcy0+ZXJyb3JDb2RlKGlmeF9lcnJvcigpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRlcnJubywgbnVsbCwgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmVycm9yTmF0aXZlKCkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVycm9yTmF0aXZlKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIERCTVMnIG5hdGl2ZSBlcnJvciBjb2RlIGFuZCBtZXNzYWdlIHByb2R1Y2VkIGJ5IHRoZSBsYXN0IHF1ZXJ5CiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBEQk1TJyBlcnJvciBjb2RlIGFuZCBtZXNzYWdlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVycm9yTmF0aXZlKCkKICAgIHsKICAgICAgICByZXR1cm4gQGlmeF9lcnJvcigpIC4gJyAnIC4gQGlmeF9lcnJvcm1zZygpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVycm9yQ29kZSgpCgogICAgLyoqCiAgICAgKiBNYXBzIG5hdGl2ZSBlcnJvciBjb2RlcyB0byBEQidzIHBvcnRhYmxlIG9uZXMuCiAgICAgKgogICAgICogUmVxdWlyZXMgdGhhdCB0aGUgREIgaW1wbGVtZW50YXRpb24ncyBjb25zdHJ1Y3RvciBmaWxscwogICAgICogaW4gdGhlIDx2YXI+JGVycm9yY29kZV9tYXA8L3Zhcj4gcHJvcGVydHkuCiAgICAgKgogICAgICogQHBhcmFtICBzdHJpbmcgICRuYXRpdmVjb2RlICBlcnJvciBjb2RlIHJldHVybmVkIGJ5IHRoZSBkYXRhYmFzZQogICAgICogQHJldHVybiBpbnQgYSBwb3J0YWJsZSBEQiBlcnJvciBjb2RlLCBvciBEQl9FUlJPUiBpZiB0aGlzIERCCiAgICAgKiBpbXBsZW1lbnRhdGlvbiBoYXMgbm8gbWFwcGluZyBmb3IgdGhlIGdpdmVuIGVycm9yIGNvZGUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVycm9yQ29kZSgkbmF0aXZlY29kZSkKICAgIHsKICAgICAgICBpZiAoZXJlZygnU1FMQ09ERT0oLiopXScsICRuYXRpdmVjb2RlLCAkbWF0Y2gpKSB7CiAgICAgICAgICAgICRjb2RlID0gJG1hdGNoWzFdOwogICAgICAgICAgICBpZiAoaXNzZXQoJHRoaXMtPmVycm9yY29kZV9tYXBbJGNvZGVdKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5lcnJvcmNvZGVfbWFwWyRjb2RlXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfRVJST1I7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgdGFibGVJbmZvKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgaW5mb3JtYXRpb24gYWJvdXQgYSB0YWJsZSBvciBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBOT1RFOiBvbmx5IHN1cHBvcnRzICd0YWJsZScgaWYgPHZhcj4kcmVzdWx0PC92YXI+IGlzIGEgdGFibGUgbmFtZS4KICAgICAqCiAgICAgKiBJZiBhbmFseXppbmcgYSBxdWVyeSByZXN1bHQgYW5kIHRoZSByZXN1bHQgaGFzIGR1cGxpY2F0ZSBmaWVsZCBuYW1lcywKICAgICAqIGFuIGVycm9yIHdpbGwgYmUgcmFpc2VkIHNheWluZwogICAgICogPHNhbXA+Y2FuJ3QgZGlzdGluZ3Vpc2ggZHVwbGljYXRlIGZpZWxkIG5hbWVzPC9zYW1wPi4KICAgICAqCiAgICAgKiBAcGFyYW0gb2JqZWN0fHN0cmluZyAgJHJlc3VsdCAgREJfcmVzdWx0IG9iamVjdCBmcm9tIGEgcXVlcnkgb3IgYQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiBhIHRhYmxlLgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSB0aGlzIGFsc28gYWNjZXB0cyBhIHF1ZXJ5IHJlc3VsdAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSBpZGVudGlmaWVyLCB0aGlzIGJlaGF2aW9yIGlzCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQuCiAgICAgKiBAcGFyYW0gaW50ICAgICAgICAgICAgJG1vZGUgICAgYSB2YWxpZCB0YWJsZUluZm8gbW9kZQogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdGhlIGluZm9ybWF0aW9uIHJlcXVlc3RlZC4KICAgICAqICAgICAgICAgICAgICAgICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjp0YWJsZUluZm8oKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjYuMAogICAgICovCiAgICBmdW5jdGlvbiB0YWJsZUluZm8oJHJlc3VsdCwgJG1vZGUgPSBudWxsKQogICAgewogICAgICAgIGlmIChpc19zdHJpbmcoJHJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSB0YWJsZSBuYW1lLgogICAgICAgICAgICAgKiBDcmVhdGUgYSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9IEBpZnhfcXVlcnkoIlNFTEVDVCAqIEZST00gJHJlc3VsdCBXSEVSRSAxPTAiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSB0cnVlOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkcmVzdWx0LT5yZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgcmVzdWx0IG9iamVjdC4KICAgICAgICAgICAgICogRXh0cmFjdCB0aGUgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSAkcmVzdWx0LT5yZXN1bHQ7CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gZmFsc2U7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICogQ29weSBpdC4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQ7CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoIWlzX3Jlc291cmNlKCRpZCkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5pZnhSYWlzZUVycm9yKERCX0VSUk9SX05FRURfTU9SRV9EQVRBKTsKICAgICAgICB9CgogICAgICAgICRmbGRzID0gQGlmeF9maWVsZHByb3BlcnRpZXMoJGlkKTsKICAgICAgICAkY291bnQgPSBAaWZ4X251bV9maWVsZHMoJGlkKTsKCiAgICAgICAgaWYgKGNvdW50KCRmbGRzKSAhPSAkY291bnQpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCJjYW4ndCBkaXN0aW5ndWlzaCBkdXBsaWNhdGUgZmllbGQgbmFtZXMiKTsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX0xPV0VSQ0FTRSkgewogICAgICAgICAgICAkY2FzZV9mdW5jID0gJ3N0cnRvbG93ZXInOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydmFsJzsKICAgICAgICB9CgogICAgICAgICRpICAgPSAwOwogICAgICAgICRyZXMgPSBhcnJheSgpOwoKICAgICAgICBpZiAoJG1vZGUpIHsKICAgICAgICAgICAgJHJlc1snbnVtX2ZpZWxkcyddID0gJGNvdW50OwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJGZsZHMgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgJHByb3BzID0gZXhwbG9kZSgnOycsICR2YWx1ZSk7CiAgICAgICAgICAgICRyZXNbJGldID0gYXJyYXkoCiAgICAgICAgICAgICAgICAndGFibGUnID0+ICRnb3Rfc3RyaW5nID8gJGNhc2VfZnVuYygkcmVzdWx0KSA6ICcnLAogICAgICAgICAgICAgICAgJ25hbWUnICA9PiAkY2FzZV9mdW5jKCRrZXkpLAogICAgICAgICAgICAgICAgJ3R5cGUnICA9PiAkcHJvcHNbMF0sCiAgICAgICAgICAgICAgICAnbGVuJyAgID0+ICRwcm9wc1sxXSwKICAgICAgICAgICAgICAgICdmbGFncycgPT4gJHByb3BzWzRdID09ICdOJyA/ICdub3RfbnVsbCcgOiAnJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCRtb2RlICYgREJfVEFCTEVJTkZPX09SREVSKSB7CiAgICAgICAgICAgICAgICAkcmVzWydvcmRlciddWyRyZXNbJGldWyduYW1lJ11dID0gJGk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRtb2RlICYgREJfVEFCTEVJTkZPX09SREVSVEFCTEUpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVydGFibGUnXVskcmVzWyRpXVsndGFibGUnXV1bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkaSsrOwogICAgICAgIH0KCiAgICAgICAgLy8gZnJlZSB0aGUgcmVzdWx0IG9ubHkgaWYgd2Ugd2VyZSBjYWxsZWQgb24gYSB0YWJsZQogICAgICAgIGlmICgkZ290X3N0cmluZykgewogICAgICAgICAgICBAaWZ4X2ZyZWVfcmVzdWx0KCRpZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldFNwZWNpYWxRdWVyeSgpCgogICAgLyoqCiAgICAgKiBPYnRhaW5zIHRoZSBxdWVyeSBzdHJpbmcgbmVlZGVkIGZvciBsaXN0aW5nIGEgZ2l2ZW4gdHlwZSBvZiBvYmplY3RzCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSAgdGhlIGtpbmQgb2Ygb2JqZWN0cyB5b3Ugd2FudCB0byByZXRyaWV2ZQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZyBvciBudWxsIGlmIHRoZSBkcml2ZXIgZG9lc24ndAogICAgICogICAgICAgICAgICAgICAgICBzdXBwb3J0IHRoZSBvYmplY3QgdHlwZSByZXF1ZXN0ZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHNlZSBEQl9jb21tb246OmdldExpc3RPZigpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFNwZWNpYWxRdWVyeSgkdHlwZSkKICAgIHsKICAgICAgICBzd2l0Y2ggKCR0eXBlKSB7CiAgICAgICAgICAgIGNhc2UgJ3RhYmxlcyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1NFTEVDVCB0YWJuYW1lIEZST00gc3lzdGFibGVzIFdIRVJFIHRhYmlkID49IDEwMCc7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19Cgp9CgovKgogKiBMb2NhbCB2YXJpYWJsZXM6CiAqIHRhYi13aWR0aDogNAogKiBjLWJhc2ljLW9mZnNldDogNAogKiBFbmQ6CiAqLwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/msql.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBtc3FsIGV4dGVuc2lvbgogKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBNaW5pIFNRTCBkYXRhYmFzZXMKICoKICogUEhQJ3MgbVNRTCBleHRlbnNpb24gZGlkIHdlaXJkIHRoaW5ncyB3aXRoIE5VTEwgdmFsdWVzIHByaW9yIHRvIFBIUAogKiA0LjMuMTEgYW5kIDUuMC40LiAgTWFrZSBzdXJlIHlvdXIgdmVyc2lvbiBvZiBQSFAgbWVldHMgb3IgZXhjZWVkcwogKiB0aG9zZSB2ZXJzaW9ucy4KICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIENWUzogJElkOiBtc3FsLnBocCx2IDEuNjIgMjAwNy8wMS8xMiAwMzoxMToxNyBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBPYnRhaW4gdGhlIERCX2NvbW1vbiBjbGFzcyBzbyBpdCBjYW4gYmUgZXh0ZW5kZWQgZnJvbQogKi8KcmVxdWlyZV9vbmNlICdEQi9jb21tb24ucGhwJzsKCi8qKgogKiBUaGUgbWV0aG9kcyBQRUFSIERCIHVzZXMgdG8gaW50ZXJhY3Qgd2l0aCBQSFAncyBtc3FsIGV4dGVuc2lvbgogKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBNaW5pIFNRTCBkYXRhYmFzZXMKICoKICogVGhlc2UgbWV0aG9kcyBvdmVybG9hZCB0aGUgb25lcyBkZWNsYXJlZCBpbiBEQl9jb21tb24uCiAqCiAqIFBIUCdzIG1TUUwgZXh0ZW5zaW9uIGRpZCB3ZWlyZCB0aGluZ3Mgd2l0aCBOVUxMIHZhbHVlcyBwcmlvciB0byBQSFAKICogNC4zLjExIGFuZCA1LjAuNC4gIE1ha2Ugc3VyZSB5b3VyIHZlcnNpb24gb2YgUEhQIG1lZXRzIG9yIGV4Y2VlZHMKICogdGhvc2UgdmVyc2lvbnMuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDEuNy4xMgogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICogQHNpbmNlICAgICAgQ2xhc3Mgbm90IGZ1bmN0aW9uYWwgdW50aWwgUmVsZWFzZSAxLjcuMAogKi8KY2xhc3MgREJfbXNxbCBleHRlbmRzIERCX2NvbW1vbgp7CiAgICAvLyB7e3sgcHJvcGVydGllcwoKICAgIC8qKgogICAgICogVGhlIERCIGRyaXZlciB0eXBlIChteXNxbCwgb2NpOCwgb2RiYywgZXRjLikKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkcGhwdHlwZSA9ICdtc3FsJzsKCiAgICAvKioKICAgICAqIFRoZSBkYXRhYmFzZSBzeW50YXggdmFyaWFudCB0byBiZSB1c2VkIChkYjIsIGFjY2VzcywgZXRjLiksIGlmIGFueQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRkYnN5bnRheCA9ICdtc3FsJzsKCiAgICAvKioKICAgICAqIFRoZSBjYXBhYmlsaXRpZXMgb2YgdGhpcyBEQiBpbXBsZW1lbnRhdGlvbgogICAgICoKICAgICAqIFRoZSAnbmV3X2xpbmsnIGVsZW1lbnQgY29udGFpbnMgdGhlIFBIUCB2ZXJzaW9uIHRoYXQgZmlyc3QgcHJvdmlkZWQKICAgICAqIG5ld19saW5rIHN1cHBvcnQgZm9yIHRoaXMgREJNUy4gIENvbnRhaW5zIGZhbHNlIGlmIGl0J3MgdW5zdXBwb3J0ZWQuCiAgICAgKgogICAgICogTWVhbmluZyBvZiB0aGUgJ2xpbWl0JyBlbGVtZW50OgogICAgICogICArICdlbXVsYXRlJyA9IGVtdWxhdGUgd2l0aCBmZXRjaCByb3cgYnkgbnVtYmVyCiAgICAgKiAgICsgJ2FsdGVyJyAgID0gYWx0ZXIgdGhlIHF1ZXJ5CiAgICAgKiAgICsgZmFsc2UgICAgID0gc2tpcCByb3dzCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGZlYXR1cmVzID0gYXJyYXkoCiAgICAgICAgJ2xpbWl0JyAgICAgICAgID0+ICdlbXVsYXRlJywKICAgICAgICAnbmV3X2xpbmsnICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ251bXJvd3MnICAgICAgID0+IHRydWUsCiAgICAgICAgJ3Bjb25uZWN0JyAgICAgID0+IHRydWUsCiAgICAgICAgJ3ByZXBhcmUnICAgICAgID0+IGZhbHNlLAogICAgICAgICdzc2wnICAgICAgICAgICA9PiBmYWxzZSwKICAgICAgICAndHJhbnNhY3Rpb25zJyAgPT4gZmFsc2UsCiAgICApOwoKICAgIC8qKgogICAgICogQSBtYXBwaW5nIG9mIG5hdGl2ZSBlcnJvciBjb2RlcyB0byBEQiBlcnJvciBjb2RlcwogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGVycm9yY29kZV9tYXAgPSBhcnJheSgKICAgICk7CgogICAgLyoqCiAgICAgKiBUaGUgcmF3IGRhdGFiYXNlIGNvbm5lY3Rpb24gY3JlYXRlZCBieSBQSFAKICAgICAqIEB2YXIgcmVzb3VyY2UKICAgICAqLwogICAgdmFyICRjb25uZWN0aW9uOwoKICAgIC8qKgogICAgICogVGhlIERTTiBpbmZvcm1hdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIGRhdGFiYXNlCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZHNuID0gYXJyYXkoKTsKCgogICAgLyoqCiAgICAgKiBUaGUgcXVlcnkgcmVzdWx0IHJlc291cmNlIGNyZWF0ZWQgYnkgUEhQCiAgICAgKgogICAgICogVXNlZCB0byBtYWtlIGFmZmVjdGVkUm93cygpIHdvcmsuICBPbmx5IGNvbnRhaW5zIHRoZSByZXN1bHQgZm9yCiAgICAgKiBkYXRhIG1hbmlwdWxhdGlvbiBxdWVyaWVzLiAgQ29udGFpbnMgZmFsc2UgZm9yIG90aGVyIHF1ZXJpZXMuCiAgICAgKgogICAgICogQHZhciByZXNvdXJjZQogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkX3Jlc3VsdDsKCgogICAgLy8gfX19CiAgICAvLyB7e3sgY29uc3RydWN0b3IKCiAgICAvKioKICAgICAqIFRoaXMgY29uc3RydWN0b3IgY2FsbHMgPGtiZD4kdGhpcy0+REJfY29tbW9uKCk8L2tiZD4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gREJfbXNxbCgpCiAgICB7CiAgICAgICAgJHRoaXMtPkRCX2NvbW1vbigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLCBsb2cgaW4gYW5kIG9wZW4gdGhlIGRhdGFiYXNlCiAgICAgKgogICAgICogRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseS4gIFVzZSBEQjo6Y29ubmVjdCgpIGluc3RlYWQuCiAgICAgKgogICAgICogRXhhbXBsZSBvZiBob3cgdG8gY29ubmVjdDoKICAgICAqIDxjb2RlPgogICAgICogcmVxdWlyZV9vbmNlICdEQi5waHAnOwogICAgICogCiAgICAgKiAvLyAkZHNuID0gJ21zcWw6Ly9ob3N0bmFtZS9kYm5hbWUnOyAgLy8gdXNlIGEgVENQIGNvbm5lY3Rpb24KICAgICAqICRkc24gPSAnbXNxbDovLy9kYm5hbWUnOyAgICAgICAgICAgICAvLyB1c2UgYSBzb2NrZXQKICAgICAqICRvcHRpb25zID0gYXJyYXkoCiAgICAgKiAgICAgJ3BvcnRhYmlsaXR5JyA9PiBEQl9QT1JUQUJJTElUWV9BTEwsCiAgICAgKiApOwogICAgICogCiAgICAgKiAkZGIgPSYgREI6OmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMpOwogICAgICogaWYgKFBFQVI6OmlzRXJyb3IoJGRiKSkgewogICAgICogICAgIGRpZSgkZGItPmdldE1lc3NhZ2UoKSk7CiAgICAgKiB9CiAgICAgKiA8L2NvZGU+CiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRkc24gICAgICAgICB0aGUgZGF0YSBzb3VyY2UgbmFtZQogICAgICogQHBhcmFtIGJvb2wgICRwZXJzaXN0ZW50ICBzaG91bGQgdGhlIGNvbm5lY3Rpb24gYmUgcGVyc2lzdGVudD8KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29ubmVjdCgkZHNuLCAkcGVyc2lzdGVudCA9IGZhbHNlKQogICAgewogICAgICAgIGlmICghUEVBUjo6bG9hZEV4dGVuc2lvbignbXNxbCcpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9FWFRFTlNJT05fTk9UX0ZPVU5EKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5kc24gPSAkZHNuOwogICAgICAgIGlmICgkZHNuWydkYnN5bnRheCddKSB7CiAgICAgICAgICAgICR0aGlzLT5kYnN5bnRheCA9ICRkc25bJ2Ric3ludGF4J107CiAgICAgICAgfQoKICAgICAgICAkcGFyYW1zID0gYXJyYXkoKTsKICAgICAgICBpZiAoJGRzblsnaG9zdHNwZWMnXSkgewogICAgICAgICAgICAkcGFyYW1zW10gPSAkZHNuWydwb3J0J10KICAgICAgICAgICAgICAgICAgICAgICAgPyAkZHNuWydob3N0c3BlYyddIC4gJywnIC4gJGRzblsncG9ydCddCiAgICAgICAgICAgICAgICAgICAgICAgIDogJGRzblsnaG9zdHNwZWMnXTsKICAgICAgICB9CgogICAgICAgICRjb25uZWN0X2Z1bmN0aW9uID0gJHBlcnNpc3RlbnQgPyAnbXNxbF9wY29ubmVjdCcgOiAnbXNxbF9jb25uZWN0JzsKCiAgICAgICAgJGluaSA9IGluaV9nZXQoJ3RyYWNrX2Vycm9ycycpOwogICAgICAgICRwaHBfZXJyb3Jtc2cgPSAnJzsKICAgICAgICBpZiAoJGluaSkgewogICAgICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEBjYWxsX3VzZXJfZnVuY19hcnJheSgkY29ubmVjdF9mdW5jdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgQGluaV9zZXQoJ3RyYWNrX2Vycm9ycycsIDEpOwogICAgICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEBjYWxsX3VzZXJfZnVuY19hcnJheSgkY29ubmVjdF9mdW5jdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBhcmFtcyk7CiAgICAgICAgICAgIEBpbmlfc2V0KCd0cmFja19lcnJvcnMnLCAkaW5pKTsKICAgICAgICB9CgogICAgICAgIGlmICghJHRoaXMtPmNvbm5lY3Rpb24pIHsKICAgICAgICAgICAgaWYgKCgkZXJyID0gQG1zcWxfZXJyb3IoKSkgIT0gJycpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcnIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0NPTk5FQ1RfRkFJTEVELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBocF9lcnJvcm1zZyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICghQG1zcWxfc2VsZWN0X2RiKCRkc25bJ2RhdGFiYXNlJ10sICR0aGlzLT5jb25uZWN0aW9uKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1zcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBkaXNjb25uZWN0KCkKCiAgICAvKioKICAgICAqIERpc2Nvbm5lY3RzIGZyb20gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgVFJVRSBvbiBzdWNjZXNzLCBGQUxTRSBvbiBmYWlsdXJlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpc2Nvbm5lY3QoKQogICAgewogICAgICAgICRyZXQgPSBAbXNxbF9jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBudWxsOwogICAgICAgIHJldHVybiAkcmV0OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHNpbXBsZVF1ZXJ5KCkKCiAgICAvKioKICAgICAqIFNlbmRzIGEgcXVlcnkgdG8gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgKyBhIFBIUCByZXN1bHQgcmVzcm91Y2UgZm9yIHN1Y2Nlc3NmdWwgU0VMRUNUIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgdGhlIERCX09LIGNvbnN0YW50IGZvciBvdGhlciBzdWNjZXNzZnVsIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgYSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBzaW1wbGVRdWVyeSgkcXVlcnkpCiAgICB7CiAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJHF1ZXJ5ID0gJHRoaXMtPm1vZGlmeVF1ZXJ5KCRxdWVyeSk7CiAgICAgICAgJHJlc3VsdCA9IEBtc3FsX3F1ZXJ5KCRxdWVyeSwgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1zcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIC8vIERldGVybWluZSB3aGljaCBxdWVyaWVzIHRoYXQgc2hvdWxkIHJldHVybiBkYXRhLCBhbmQgd2hpY2gKICAgICAgICAvLyBzaG91bGQgcmV0dXJuIGFuIGVycm9yIGNvZGUgb25seS4KICAgICAgICBpZiAoJHRoaXMtPl9jaGVja01hbmlwKCRxdWVyeSkpIHsKICAgICAgICAgICAgJHRoaXMtPl9yZXN1bHQgPSAkcmVzdWx0OwogICAgICAgICAgICByZXR1cm4gREJfT0s7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPl9yZXN1bHQgPSBmYWxzZTsKICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgICAgfQogICAgfQoKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBuZXh0UmVzdWx0KCkKCiAgICAvKioKICAgICAqIE1vdmUgdGhlIGludGVybmFsIG1zcWwgcmVzdWx0IHBvaW50ZXIgdG8gdGhlIG5leHQgYXZhaWxhYmxlIHJlc3VsdAogICAgICoKICAgICAqIEBwYXJhbSBhIHZhbGlkIGZic3FsIHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKgogICAgICogQHJldHVybiB0cnVlIGlmIGEgcmVzdWx0IGlzIGF2YWlsYWJsZSBvdGhlcndpc2UgcmV0dXJuIGZhbHNlCiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRSZXN1bHQoJHJlc3VsdCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hJbnRvKCkKCiAgICAvKioKICAgICAqIFBsYWNlcyBhIHJvdyBmcm9tIHRoZSByZXN1bHQgc2V0IGludG8gdGhlIGdpdmVuIGFycmF5CiAgICAgKgogICAgICogRm9ybWF0aW5nIG9mIHRoZSBhcnJheSBhbmQgdGhlIGRhdGEgdGhlcmVpbiBhcmUgY29uZmlndXJhYmxlLgogICAgICogU2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmZXRjaEludG8oKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIFBIUCdzIG1TUUwgZXh0ZW5zaW9uIGRpZCB3ZWlyZCB0aGluZ3Mgd2l0aCBOVUxMIHZhbHVlcyBwcmlvciB0byBQSFAKICAgICAqIDQuMy4xMSBhbmQgNS4wLjQuICBNYWtlIHN1cmUgeW91ciB2ZXJzaW9uIG9mIFBIUCBtZWV0cyBvciBleGNlZWRzCiAgICAgKiB0aG9zZSB2ZXJzaW9ucy4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgICB0aGUgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKiBAcGFyYW0gYXJyYXkgICAgJGFyciAgICAgICB0aGUgcmVmZXJlbmNlZCBhcnJheSB0byBwdXQgdGhlIGRhdGEgaW4KICAgICAqIEBwYXJhbSBpbnQgICAgICAkZmV0Y2htb2RlIGhvdyB0aGUgcmVzdWx0aW5nIGFycmF5IHNob3VsZCBiZSBpbmRleGVkCiAgICAgKiBAcGFyYW0gaW50ICAgICAgJHJvd251bSAgICB0aGUgcm93IG51bWJlciB0byBmZXRjaCAoMCA9IGZpcnN0IHJvdykKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICBEQl9PSyBvbiBzdWNjZXNzLCBOVUxMIHdoZW4gdGhlIGVuZCBvZiBhIHJlc3VsdCBzZXQgaXMKICAgICAqICAgICAgICAgICAgICAgICByZWFjaGVkIG9yIG9uIGZhaWx1cmUKICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkKICAgICAqLwogICAgZnVuY3Rpb24gZmV0Y2hJbnRvKCRyZXN1bHQsICYkYXJyLCAkZmV0Y2htb2RlLCAkcm93bnVtID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoJHJvd251bSAhPT0gbnVsbCkgewogICAgICAgICAgICBpZiAoIUBtc3FsX2RhdGFfc2VlaygkcmVzdWx0LCAkcm93bnVtKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCRmZXRjaG1vZGUgJiBEQl9GRVRDSE1PREVfQVNTT0MpIHsKICAgICAgICAgICAgJGFyciA9IEBtc3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1TUUxfQVNTT0MpOwogICAgICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9MT1dFUkNBU0UgJiYgJGFycikgewogICAgICAgICAgICAgICAgJGFyciA9IGFycmF5X2NoYW5nZV9rZXlfY2FzZSgkYXJyLCBDQVNFX0xPV0VSKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRhcnIgPSBAbXNxbF9mZXRjaF9yb3coJHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIGlmICghJGFycikgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfUlRSSU0pIHsKICAgICAgICAgICAgJHRoaXMtPl9ydHJpbUFycmF5VmFsdWVzKCRhcnIpOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9OVUxMX1RPX0VNUFRZKSB7CiAgICAgICAgICAgICR0aGlzLT5fY29udmVydE51bGxBcnJheVZhbHVlc1RvRW1wdHkoJGFycik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBmcmVlUmVzdWx0KCkKCiAgICAvKioKICAgICAqIERlbGV0ZXMgdGhlIHJlc3VsdCBzZXQgYW5kIGZyZWVzIHRoZSBtZW1vcnkgb2NjdXBpZWQgYnkgdGhlIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6OmZyZWUoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0UgaWYgJHJlc3VsdCBpcyBpbnZhbGlkCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6OmZyZWUoKQogICAgICovCiAgICBmdW5jdGlvbiBmcmVlUmVzdWx0KCRyZXN1bHQpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzX3Jlc291cmNlKCRyZXN1bHQpID8gbXNxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KSA6IGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG51bUNvbHMoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpudW1Db2xzKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2YgY29sdW1ucy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6Om51bUNvbHMoKQogICAgICovCiAgICBmdW5jdGlvbiBudW1Db2xzKCRyZXN1bHQpCiAgICB7CiAgICAgICAgJGNvbHMgPSBAbXNxbF9udW1fZmllbGRzKCRyZXN1bHQpOwogICAgICAgIGlmICghJGNvbHMpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tc3FsUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvbHM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtUm93cygpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6Om51bVJvd3MoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6bnVtUm93cygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG51bVJvd3MoJHJlc3VsdCkKICAgIHsKICAgICAgICAkcm93cyA9IEBtc3FsX251bV9yb3dzKCRyZXN1bHQpOwogICAgICAgIGlmICgkcm93cyA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tc3FsUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJvd3M7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYWZmZWN0ZWQoKQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB0aGUgbnVtYmVyIG9mIHJvd3MgYWZmZWN0ZWQgYnkgYSBkYXRhIG1hbml1cGxhdGlvbiBxdWVyeQogICAgICoKICAgICAqIDAgaXMgcmV0dXJuZWQgZm9yIHF1ZXJpZXMgdGhhdCBkb24ndCBtYW5pcHVsYXRlIGRhdGEuCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2Ygcm93cy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFmZmVjdGVkUm93cygpCiAgICB7CiAgICAgICAgaWYgKCEkdGhpcy0+X3Jlc3VsdCkgewogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIG1zcWxfYWZmZWN0ZWRfcm93cygkdGhpcy0+X3Jlc3VsdCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dElkKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5leHQgZnJlZSBpZCBpbiBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZQogICAgICogQHBhcmFtIGJvb2xlYW4gJG9uZGVtYW5kICB3aGVuIHRydWUsIHRoZSBzZXFlbmNlIGlzIGF1dG9tYXRpY2FsbHkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG5leHQgaWQgbnVtYmVyIGluIHRoZSBzZXF1ZW5jZS4KICAgICAqICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6bmV4dElEKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX21zcWw6OmNyZWF0ZVNlcXVlbmNlKCksIERCX21zcWw6OmRyb3BTZXF1ZW5jZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRJZCgkc2VxX25hbWUsICRvbmRlbWFuZCA9IHRydWUpCiAgICB7CiAgICAgICAgJHNlcW5hbWUgPSAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSk7CiAgICAgICAgJHJlcGVhdCA9IGZhbHNlOwogICAgICAgIGRvIHsKICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgJHJlc3VsdCA9JiAkdGhpcy0+cXVlcnkoIlNFTEVDVCBfc2VxIEZST00gJHtzZXFuYW1lfSIpOwogICAgICAgICAgICAkdGhpcy0+cG9wRXJyb3JIYW5kbGluZygpOwogICAgICAgICAgICBpZiAoJG9uZGVtYW5kICYmIERCOjppc0Vycm9yKCRyZXN1bHQpICYmCiAgICAgICAgICAgICAgICAkcmVzdWx0LT5nZXRDb2RlKCkgPT0gREJfRVJST1JfTk9TVUNIVEFCTEUpIHsKICAgICAgICAgICAgICAgICRyZXBlYXQgPSB0cnVlOwogICAgICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKTsKICAgICAgICAgICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVwZWF0ID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgkcmVwZWF0KTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgIH0KICAgICAgICAkYXJyID0gJHJlc3VsdC0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX09SREVSRUQpOwogICAgICAgICRyZXN1bHQtPmZyZWUoKTsKICAgICAgICByZXR1cm4gJGFyclswXTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjcmVhdGVTZXF1ZW5jZSgpCgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQWxzbyBjcmVhdGVzIGEgbmV3IHRhYmxlIHRvIGFzc29jaWF0ZSB0aGUgc2VxdWVuY2Ugd2l0aC4gIFVzZXMKICAgICAqIGEgc2VwYXJhdGUgdGFibGUgdG8gZW5zdXJlIHBvcnRhYmlsaXR5IHdpdGggb3RoZXIgZHJpdmVycy4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9tc3FsOjpuZXh0SUQoKSwgREJfbXNxbDo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKQogICAgewogICAgICAgICRzZXFuYW1lID0gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpOwogICAgICAgICRyZXMgPSAkdGhpcy0+cXVlcnkoJ0NSRUFURSBUQUJMRSAnIC4gJHNlcW5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAoaWQgSU5URUdFUiBOT1QgTlVMTCknKTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlcykpIHsKICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgfQogICAgICAgICRyZXMgPSAkdGhpcy0+cXVlcnkoIkNSRUFURSBTRVFVRU5DRSBPTiAke3NlcW5hbWV9Iik7CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZHJvcFNlcXVlbmNlKCkKCiAgICAvKioKICAgICAqIERlbGV0ZXMgYSBzZXF1ZW5jZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZSB0byBiZSBkZWxldGVkCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpkcm9wU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfbXNxbDo6bmV4dElEKCksIERCX21zcWw6OmNyZWF0ZVNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZHJvcFNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCdEUk9QIFRBQkxFICcgLiAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHF1b3RlSWRlbnRpZmllcigpCgogICAgLyoqCiAgICAgKiBtU1FMIGRvZXMgbm90IHN1cHBvcnQgZGVsaW1pdGVkIGlkZW50aWZpZXJzCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc3RyICB0aGUgaWRlbnRpZmllciBuYW1lIHRvIGJlIHF1b3RlZAogICAgICoKICAgICAqIEByZXR1cm4gb2JqZWN0ICBhIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZUlkZW50aWZpZXIoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjcuMAogICAgICovCiAgICBmdW5jdGlvbiBxdW90ZUlkZW50aWZpZXIoJHN0cikKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfVU5TVVBQT1JURUQpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHF1b3RlRmxvYXQoKQoKICAgIC8qKgogICAgICogRm9ybWF0cyBhIGZsb2F0IHZhbHVlIGZvciB1c2Ugd2l0aGluIGEgcXVlcnkgaW4gYSBsb2NhbGUtaW5kZXBlbmRlbnQKICAgICAqIG1hbm5lci4KICAgICAqCiAgICAgKiBAcGFyYW0gZmxvYXQgdGhlIGZsb2F0IHZhbHVlIHRvIGJlIHF1b3RlZC4KICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBxdW90ZWQgc3RyaW5nLgogICAgICogQHNlZSBEQl9jb21tb246OnF1b3RlU21hcnQoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgcmVsZWFzZSAxLjcuOC4KICAgICAqLwogICAgZnVuY3Rpb24gcXVvdGVGbG9hdCgkZmxvYXQpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmVzY2FwZVNpbXBsZShzdHJfcmVwbGFjZSgnLCcsICcuJywgc3RydmFsKGZsb2F0dmFsKCRmbG9hdCkpKSk7CiAgICB9CiAgICAgCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlc2NhcGVTaW1wbGUoKQoKICAgIC8qKgogICAgICogRXNjYXBlcyBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgREJNUydzIHN0YW5kYXJkcwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAgdGhlIHN0cmluZyB0byBiZSBlc2NhcGVkCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBlc2NhcGVkIHN0cmluZwogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZVNtYXJ0KCkKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS43LjAKICAgICAqLwogICAgZnVuY3Rpb24gZXNjYXBlU2ltcGxlKCRzdHIpCiAgICB7CiAgICAgICAgcmV0dXJuIGFkZHNsYXNoZXMoJHN0cik7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbXNxbFJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYSBEQl9FcnJvciBvYmplY3QgcmVnYXJkaW5nIHRoZSBjdXJyZW50IHByb2JsZW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRlcnJubyAgaWYgdGhlIGVycm9yIGlzIGJlaW5nIG1hbnVhbGx5IHJhaXNlZCBwYXNzIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgREJfRVJST1IqIGNvbnN0YW50IGhlcmUuICBJZiB0aGlzIGlzbid0IHBhc3NlZAogICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGUgREJNUy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgdGhlIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpyYWlzZUVycm9yKCksCiAgICAgKiAgICAgIERCX21zcWw6OmVycm9yTmF0aXZlKCksIERCX21zcWw6OmVycm9yQ29kZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG1zcWxSYWlzZUVycm9yKCRlcnJubyA9IG51bGwpCiAgICB7CiAgICAgICAgJG5hdGl2ZSA9ICR0aGlzLT5lcnJvck5hdGl2ZSgpOwogICAgICAgIGlmICgkZXJybm8gPT09IG51bGwpIHsKICAgICAgICAgICAgJGVycm5vID0gJHRoaXMtPmVycm9yQ29kZSgkbmF0aXZlKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRlcnJubywgbnVsbCwgbnVsbCwgbnVsbCwgJG5hdGl2ZSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXJyb3JOYXRpdmUoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgREJNUycgbmF0aXZlIGVycm9yIG1lc3NhZ2UgcHJvZHVjZWQgYnkgdGhlIGxhc3QgcXVlcnkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIERCTVMnIGVycm9yIG1lc3NhZ2UKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JOYXRpdmUoKQogICAgewogICAgICAgIHJldHVybiBAbXNxbF9lcnJvcigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVycm9yQ29kZSgpCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIFBFQVI6OkRCIGVycm9yIGNvZGUgZnJvbSB0aGUgZGF0YWJhc2UncyB0ZXh0IGVycm9yIG1lc3NhZ2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRlcnJvcm1zZyAgdGhlIGVycm9yIG1lc3NhZ2UgcmV0dXJuZWQgZnJvbSB0aGUgZGF0YWJhc2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludGVnZXIgIHRoZSBlcnJvciBudW1iZXIgZnJvbSBhIERCX0VSUk9SKiBjb25zdGFudAogICAgICovCiAgICBmdW5jdGlvbiBlcnJvckNvZGUoJGVycm9ybXNnKQogICAgewogICAgICAgIHN0YXRpYyAkZXJyb3JfcmVnZXhwczsKICAgICAgICAKICAgICAgICAvLyBQSFAgNS4yKyBwcmVwZW5kcyB0aGUgZnVuY3Rpb24gbmFtZSB0byAkcGhwX2Vycm9ybXNnLCBzbyB3ZSBuZWVkCiAgICAgICAgLy8gdGhpcyBoYWNrIHRvIHdvcmsgYXJvdW5kIGl0LCBwZXIgYnVnICM5NTk5LgogICAgICAgICRlcnJvcm1zZyA9IHByZWdfcmVwbGFjZSgnL15tc3FsW2Etel9dK1woXCk6IC8nLCAnJywgJGVycm9ybXNnKTsKCiAgICAgICAgaWYgKCFpc3NldCgkZXJyb3JfcmVnZXhwcykpIHsKICAgICAgICAgICAgJGVycm9yX3JlZ2V4cHMgPSBhcnJheSgKICAgICAgICAgICAgICAgICcvXkFjY2VzcyB0byBkYXRhYmFzZSBkZW5pZWQvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OLAogICAgICAgICAgICAgICAgJy9eQmFkIGluZGV4IG5hbWUvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywKICAgICAgICAgICAgICAgICcvXkJhZCBvcmRlciBmaWVsZC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAgICAgICAgICcvXkJhZCB0eXBlIGZvciBjb21wYXJpc29uL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgICAgICAgICAgJy9eQ2FuXCd0IHBlcmZvcm0gTElLRSBvbi9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAgICAgICAgICcvXkNhblwndCB1c2UgVEVYVCBmaWVsZHMgaW4gTElLRSBjb21wYXJpc29uL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgICAgICAgICAgJy9eQ291bGRuXCd0IGNyZWF0ZSB0ZW1wb3JhcnkgdGFibGUvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9DQU5OT1RfQ1JFQVRFLAogICAgICAgICAgICAgICAgJy9eRXJyb3IgY3JlYXRpbmcgdGFibGUgZmlsZS9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0NBTk5PVF9DUkVBVEUsCiAgICAgICAgICAgICAgICAnL15GaWVsZCAuKiBjYW5ub3QgYmUgbnVsbCQvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9DT05TVFJBSU5UX05PVF9OVUxMLAogICAgICAgICAgICAgICAgJy9eSW5kZXggKGZpZWxkfGNvbmRpdGlvbikgLiogY2Fubm90IGJlIG51bGwkL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgICAgICAgICAgJy9eSW52YWxpZCBkYXRlIGZvcm1hdC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0lOVkFMSURfREFURSwKICAgICAgICAgICAgICAgICcvXkludmFsaWQgdGltZSBmb3JtYXQvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9JTlZBTElELAogICAgICAgICAgICAgICAgJy9eTGl0ZXJhbCB2YWx1ZSBmb3IgLiogaXMgd3JvbmcgdHlwZSQvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9JTlZBTElEX05VTUJFUiwKICAgICAgICAgICAgICAgICcvXk5vIERhdGFiYXNlIFNlbGVjdGVkL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfTk9EQlNFTEVDVEVELAogICAgICAgICAgICAgICAgJy9eTm8gdmFsdWUgc3BlY2lmaWVkIGZvciBmaWVsZC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX1ZBTFVFX0NPVU5UX09OX1JPVywKICAgICAgICAgICAgICAgICcvXk5vbiB1bmlxdWUgdmFsdWUgZm9yIHVuaXF1ZSBpbmRleC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgICAgICAgICAnL15PdXQgb2YgbWVtb3J5IGZvciB0ZW1wb3JhcnkgdGFibGUvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9DQU5OT1RfQ1JFQVRFLAogICAgICAgICAgICAgICAgJy9eUGVybWlzc2lvbiBkZW5pZWQvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OLAogICAgICAgICAgICAgICAgJy9eUmVmZXJlbmNlIHRvIHVuLXNlbGVjdGVkIHRhYmxlL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgICAgICAgICAgJy9ec3ludGF4IGVycm9yL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgICAgICAgICAgJy9eVGFibGUgLiogZXhpc3RzJC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgICAgICAgICAgJy9eVW5rbm93biBkYXRhYmFzZS9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX05PU1VDSERCLAogICAgICAgICAgICAgICAgJy9eVW5rbm93biBmaWVsZC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX05PU1VDSEZJRUxELAogICAgICAgICAgICAgICAgJy9eVW5rbm93biAoaW5kZXh8c3lzdGVtIHZhcmlhYmxlKS9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX05PVF9GT1VORCwKICAgICAgICAgICAgICAgICcvXlVua25vd24gdGFibGUvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9OT1NVQ0hUQUJMRSwKICAgICAgICAgICAgICAgICcvXlVucXVhbGlmaWVkIGZpZWxkL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJGVycm9yX3JlZ2V4cHMgYXMgJHJlZ2V4cCA9PiAkY29kZSkgewogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkcmVnZXhwLCAkZXJyb3Jtc2cpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJGNvZGU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX0VSUk9SOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRhYmxlSW5mbygpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgdGFibGUgb3IgYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdHxzdHJpbmcgICRyZXN1bHQgIERCX3Jlc3VsdCBvYmplY3QgZnJvbSBhIHF1ZXJ5IG9yIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgYSB0YWJsZS4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgdGhpcyBhbHNvIGFjY2VwdHMgYSBxdWVyeSByZXN1bHQKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgaWRlbnRpZmllciwgdGhpcyBiZWhhdmlvciBpcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICRtb2RlICAgIGEgdmFsaWQgdGFibGVJbmZvIG1vZGUKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHRoZSBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQuCiAgICAgKiAgICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6c2V0T3B0aW9uKCkKICAgICAqLwogICAgZnVuY3Rpb24gdGFibGVJbmZvKCRyZXN1bHQsICRtb2RlID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoaXNfc3RyaW5nKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgdGFibGUgbmFtZS4KICAgICAgICAgICAgICogQ3JlYXRlIGEgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSBAbXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSAkcmVzdWx0IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICAkZ290X3N0cmluZyA9IHRydWU7CiAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCRyZXN1bHQtPnJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgb2JqZWN0LgogICAgICAgICAgICAgKiBFeHRyYWN0IHRoZSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQtPnJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKiBDb3B5IGl0LgogICAgICAgICAgICAgKiBEZXByZWNhdGVkLiAgSGVyZSBmb3IgY29tcGF0aWJpbGl0eSBvbmx5LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJGlkID0gJHJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNfcmVzb3VyY2UoJGlkKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfTkVFRF9NT1JFX0RBVEEpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydG9sb3dlcic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ2YWwnOwogICAgICAgIH0KCiAgICAgICAgJGNvdW50ID0gQG1zcWxfbnVtX2ZpZWxkcygkaWQpOwogICAgICAgICRyZXMgICA9IGFycmF5KCk7CgogICAgICAgIGlmICgkbW9kZSkgewogICAgICAgICAgICAkcmVzWydudW1fZmllbGRzJ10gPSAkY291bnQ7CiAgICAgICAgfQoKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgJHRtcCA9IEBtc3FsX2ZldGNoX2ZpZWxkKCRpZCk7CgogICAgICAgICAgICAkZmxhZ3MgPSAnJzsKICAgICAgICAgICAgaWYgKCR0bXAtPm5vdF9udWxsKSB7CiAgICAgICAgICAgICAgICAkZmxhZ3MgLj0gJ25vdF9udWxsICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCR0bXAtPnVuaXF1ZSkgewogICAgICAgICAgICAgICAgJGZsYWdzIC49ICd1bmlxdWVfa2V5ICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGZsYWdzID0gdHJpbSgkZmxhZ3MpOwoKICAgICAgICAgICAgJHJlc1skaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICd0YWJsZScgPT4gJGNhc2VfZnVuYygkdG1wLT50YWJsZSksCiAgICAgICAgICAgICAgICAnbmFtZScgID0+ICRjYXNlX2Z1bmMoJHRtcC0+bmFtZSksCiAgICAgICAgICAgICAgICAndHlwZScgID0+ICR0bXAtPnR5cGUsCiAgICAgICAgICAgICAgICAnbGVuJyAgID0+IG1zcWxfZmllbGRfbGVuKCRpZCwgJGkpLAogICAgICAgICAgICAgICAgJ2ZsYWdzJyA9PiAkZmxhZ3MsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVIpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVyJ11bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXJ0YWJsZSddWyRyZXNbJGldWyd0YWJsZSddXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBmcmVlIHRoZSByZXN1bHQgb25seSBpZiB3ZSB3ZXJlIGNhbGxlZCBvbiBhIHRhYmxlCiAgICAgICAgaWYgKCRnb3Rfc3RyaW5nKSB7CiAgICAgICAgICAgIEBtc3FsX2ZyZWVfcmVzdWx0KCRpZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldFNwZWNpYWxRdWVyeSgpCgogICAgLyoqCiAgICAgKiBPYnRhaW4gYSBsaXN0IG9mIGEgZ2l2ZW4gdHlwZSBvZiBvYmplY3RzCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSAgdGhlIGtpbmQgb2Ygb2JqZWN0cyB5b3Ugd2FudCB0byByZXRyaWV2ZQogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgIHRoZSBhcnJheSBjb250YWluaW5nIHRoZSBsaXN0IG9mIG9iamVjdHMgcmVxdWVzdGVkCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEBzZWUgREJfY29tbW9uOjpnZXRMaXN0T2YoKQogICAgICovCiAgICBmdW5jdGlvbiBnZXRTcGVjaWFsUXVlcnkoJHR5cGUpCiAgICB7CiAgICAgICAgc3dpdGNoICgkdHlwZSkgewogICAgICAgICAgICBjYXNlICdkYXRhYmFzZXMnOgogICAgICAgICAgICAgICAgJGlkID0gQG1zcWxfbGlzdF9kYnMoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3RhYmxlcyc6CiAgICAgICAgICAgICAgICAkaWQgPSBAbXNxbF9saXN0X3RhYmxlcygkdGhpcy0+ZHNuWydkYXRhYmFzZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgaWYgKCEkaWQpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tc3FsUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICAkb3V0ID0gYXJyYXkoKTsKICAgICAgICB3aGlsZSAoJHJvdyA9IEBtc3FsX2ZldGNoX3JvdygkaWQpKSB7CiAgICAgICAgICAgICRvdXRbXSA9ICRyb3dbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiAkb3V0OwogICAgfQoKICAgIC8vIH19fQoKfQoKLyoKICogTG9jYWwgdmFyaWFibGVzOgogKiB0YWItd2lkdGg6IDQKICogYy1iYXNpYy1vZmZzZXQ6IDQKICogRW5kOgogKi8KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/mssql.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBtc3NxbCBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggTWljcm9zb2Z0IFNRTCBTZXJ2ZXIgZGF0YWJhc2VzCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBTdGVybGluZyBIdWdoZXMgPHN0ZXJsaW5nQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIENWUzogJElkOiBtc3NxbC5waHAsdiAxLjkwIDIwMDcvMDEvMTIgMDU6MTY6MjIgYWhhcnZleSBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogT2J0YWluIHRoZSBEQl9jb21tb24gY2xhc3Mgc28gaXQgY2FuIGJlIGV4dGVuZGVkIGZyb20KICovCnJlcXVpcmVfb25jZSAnREIvY29tbW9uLnBocCc7CgovKioKICogVGhlIG1ldGhvZHMgUEVBUiBEQiB1c2VzIHRvIGludGVyYWN0IHdpdGggUEhQJ3MgbXNzcWwgZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIE1pY3Jvc29mdCBTUUwgU2VydmVyIGRhdGFiYXNlcwogKgogKiBUaGVzZSBtZXRob2RzIG92ZXJsb2FkIHRoZSBvbmVzIGRlY2xhcmVkIGluIERCX2NvbW1vbi4KICoKICogREIncyBtc3NxbCBkcml2ZXIgaXMgb25seSBmb3IgTWljcm9zZm9mdCBTUUwgU2VydmVyIGRhdGFiYXNlcy4KICoKICogSWYgeW91J3JlIGNvbm5lY3RpbmcgdG8gYSBTeWJhc2UgZGF0YWJhc2UsIHlvdSBNVVNUIHNwZWNpZnkgInN5YmFzZSIKICogYXMgdGhlICJwaHB0eXBlIiBpbiB0aGUgRFNOLgogKgogKiBUaGlzIGNsYXNzIG9ubHkgd29ya3MgY29ycmVjdGx5IGlmIHlvdSBoYXZlIGNvbXBpbGVkIFBIUCB1c2luZwogKiAtLXdpdGgtbXNzcWw9W2Rpcl90b19GcmVlVERTXS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgU3RlcmxpbmcgSHVnaGVzIDxzdGVybGluZ0BwaHAubmV0PgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAxLjcuMTIKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwpjbGFzcyBEQl9tc3NxbCBleHRlbmRzIERCX2NvbW1vbgp7CiAgICAvLyB7e3sgcHJvcGVydGllcwoKICAgIC8qKgogICAgICogVGhlIERCIGRyaXZlciB0eXBlIChteXNxbCwgb2NpOCwgb2RiYywgZXRjLikKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkcGhwdHlwZSA9ICdtc3NxbCc7CgogICAgLyoqCiAgICAgKiBUaGUgZGF0YWJhc2Ugc3ludGF4IHZhcmlhbnQgdG8gYmUgdXNlZCAoZGIyLCBhY2Nlc3MsIGV0Yy4pLCBpZiBhbnkKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkZGJzeW50YXggPSAnbXNzcWwnOwoKICAgIC8qKgogICAgICogVGhlIGNhcGFiaWxpdGllcyBvZiB0aGlzIERCIGltcGxlbWVudGF0aW9uCiAgICAgKgogICAgICogVGhlICduZXdfbGluaycgZWxlbWVudCBjb250YWlucyB0aGUgUEhQIHZlcnNpb24gdGhhdCBmaXJzdCBwcm92aWRlZAogICAgICogbmV3X2xpbmsgc3VwcG9ydCBmb3IgdGhpcyBEQk1TLiAgQ29udGFpbnMgZmFsc2UgaWYgaXQncyB1bnN1cHBvcnRlZC4KICAgICAqCiAgICAgKiBNZWFuaW5nIG9mIHRoZSAnbGltaXQnIGVsZW1lbnQ6CiAgICAgKiAgICsgJ2VtdWxhdGUnID0gZW11bGF0ZSB3aXRoIGZldGNoIHJvdyBieSBudW1iZXIKICAgICAqICAgKyAnYWx0ZXInICAgPSBhbHRlciB0aGUgcXVlcnkKICAgICAqICAgKyBmYWxzZSAgICAgPSBza2lwIHJvd3MKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZmVhdHVyZXMgPSBhcnJheSgKICAgICAgICAnbGltaXQnICAgICAgICAgPT4gJ2VtdWxhdGUnLAogICAgICAgICduZXdfbGluaycgICAgICA9PiBmYWxzZSwKICAgICAgICAnbnVtcm93cycgICAgICAgPT4gdHJ1ZSwKICAgICAgICAncGNvbm5lY3QnICAgICAgPT4gdHJ1ZSwKICAgICAgICAncHJlcGFyZScgICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ3NzbCcgICAgICAgICAgID0+IGZhbHNlLAogICAgICAgICd0cmFuc2FjdGlvbnMnICA9PiB0cnVlLAogICAgKTsKCiAgICAvKioKICAgICAqIEEgbWFwcGluZyBvZiBuYXRpdmUgZXJyb3IgY29kZXMgdG8gREIgZXJyb3IgY29kZXMKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgLy8gWFhYIEFkZCBoZXJlIGVycm9yIGNvZGVzIGllOiAnUzEwMEUnID0+IERCX0VSUk9SX1NZTlRBWAogICAgdmFyICRlcnJvcmNvZGVfbWFwID0gYXJyYXkoCiAgICAgICAgMTAyICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgIDExMCAgID0+IERCX0VSUk9SX1ZBTFVFX0NPVU5UX09OX1JPVywKICAgICAgICAxNTUgICA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAxNTYgICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgMTcwICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgIDIwNyAgID0+IERCX0VSUk9SX05PU1VDSEZJRUxELAogICAgICAgIDIwOCAgID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgIDI0NSAgID0+IERCX0VSUk9SX0lOVkFMSURfTlVNQkVSLAogICAgICAgIDMxOSAgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAzMjEgICA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAzMjUgICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgMzM2ICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgIDUxNSAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwsCiAgICAgICAgNTQ3ICAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAxMDE4ICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgMTAzNSAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgIDE5MTMgID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgIDIyMDkgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAyMjIzICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgMjI0OCAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgIDIyNTYgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAyMjU3ICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgMjYyNyAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAyNzE0ICA9PiBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywKICAgICAgICAzNjA3ICA9PiBEQl9FUlJPUl9ESVZaRVJPLAogICAgICAgIDM3MDEgID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgIDc2MzAgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICA4MTM0ICA9PiBEQl9FUlJPUl9ESVZaRVJPLAogICAgICAgIDkzMDMgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICA5MzE3ICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgOTMxOCAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgIDkzMzEgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICA5MzMyICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgMTUyNTMgPT4gREJfRVJST1JfU1lOVEFYLAogICAgKTsKCiAgICAvKioKICAgICAqIFRoZSByYXcgZGF0YWJhc2UgY29ubmVjdGlvbiBjcmVhdGVkIGJ5IFBIUAogICAgICogQHZhciByZXNvdXJjZQogICAgICovCiAgICB2YXIgJGNvbm5lY3Rpb247CgogICAgLyoqCiAgICAgKiBUaGUgRFNOIGluZm9ybWF0aW9uIGZvciBjb25uZWN0aW5nIHRvIGEgZGF0YWJhc2UKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRkc24gPSBhcnJheSgpOwoKCiAgICAvKioKICAgICAqIFNob3VsZCBkYXRhIG1hbmlwdWxhdGlvbiBxdWVyaWVzIGJlIGNvbW1pdHRlZCBhdXRvbWF0aWNhbGx5PwogICAgICogQHZhciBib29sCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICRhdXRvY29tbWl0ID0gdHJ1ZTsKCiAgICAvKioKICAgICAqIFRoZSBxdWFudGl0eSBvZiB0cmFuc2FjdGlvbnMgYmVndW4KICAgICAqCiAgICAgKiB7QGludGVybmFsICBXaGlsZSB0aGlzIGlzIHByaXZhdGUsIGl0IGNhbid0IGFjdHVhbGx5IGJlIGRlc2lnbmF0ZWQKICAgICAqIHByaXZhdGUgaW4gUEhQIDUgYmVjYXVzZSBpdCBpcyBkaXJlY3RseSBhY2Nlc3NlZCBpbiB0aGUgdGVzdCBzdWl0ZS59fQogICAgICoKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkdHJhbnNhY3Rpb25fb3Bjb3VudCA9IDA7CgogICAgLyoqCiAgICAgKiBUaGUgZGF0YWJhc2Ugc3BlY2lmaWVkIGluIHRoZSBEU04KICAgICAqCiAgICAgKiBJdCdzIGEgZml4IHRvIGFsbG93IGNhbGxzIHRvIGRpZmZlcmVudCBkYXRhYmFzZXMgaW4gdGhlIHNhbWUgc2NyaXB0LgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICRfZGIgPSBudWxsOwoKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogVGhpcyBjb25zdHJ1Y3RvciBjYWxscyA8a2JkPiR0aGlzLT5EQl9jb21tb24oKTwva2JkPgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBEQl9tc3NxbCgpCiAgICB7CiAgICAgICAgJHRoaXMtPkRCX2NvbW1vbigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLCBsb2cgaW4gYW5kIG9wZW4gdGhlIGRhdGFiYXNlCiAgICAgKgogICAgICogRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseS4gIFVzZSBEQjo6Y29ubmVjdCgpIGluc3RlYWQuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRkc24gICAgICAgICB0aGUgZGF0YSBzb3VyY2UgbmFtZQogICAgICogQHBhcmFtIGJvb2wgICRwZXJzaXN0ZW50ICBzaG91bGQgdGhlIGNvbm5lY3Rpb24gYmUgcGVyc2lzdGVudD8KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29ubmVjdCgkZHNuLCAkcGVyc2lzdGVudCA9IGZhbHNlKQogICAgewogICAgICAgIGlmICghUEVBUjo6bG9hZEV4dGVuc2lvbignbXNzcWwnKSAmJiAhUEVBUjo6bG9hZEV4dGVuc2lvbignc3liYXNlJykKICAgICAgICAgICAgJiYgIVBFQVI6OmxvYWRFeHRlbnNpb24oJ3N5YmFzZV9jdCcpKQogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0VYVEVOU0lPTl9OT1RfRk9VTkQpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmRzbiA9ICRkc247CiAgICAgICAgaWYgKCRkc25bJ2Ric3ludGF4J10pIHsKICAgICAgICAgICAgJHRoaXMtPmRic3ludGF4ID0gJGRzblsnZGJzeW50YXgnXTsKICAgICAgICB9CgogICAgICAgICRwYXJhbXMgPSBhcnJheSgKICAgICAgICAgICAgJGRzblsnaG9zdHNwZWMnXSA/ICRkc25bJ2hvc3RzcGVjJ10gOiAnbG9jYWxob3N0JywKICAgICAgICAgICAgJGRzblsndXNlcm5hbWUnXSA/ICRkc25bJ3VzZXJuYW1lJ10gOiBudWxsLAogICAgICAgICAgICAkZHNuWydwYXNzd29yZCddID8gJGRzblsncGFzc3dvcmQnXSA6IG51bGwsCiAgICAgICAgKTsKICAgICAgICBpZiAoJGRzblsncG9ydCddKSB7CiAgICAgICAgICAgICRwYXJhbXNbMF0gLj0gKChzdWJzdHIoUEhQX09TLCAwLCAzKSA9PSAnV0lOJykgPyAnLCcgOiAnOicpCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJGRzblsncG9ydCddOwogICAgICAgIH0KCiAgICAgICAgJGNvbm5lY3RfZnVuY3Rpb24gPSAkcGVyc2lzdGVudCA/ICdtc3NxbF9wY29ubmVjdCcgOiAnbXNzcWxfY29ubmVjdCc7CgogICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQGNhbGxfdXNlcl9mdW5jX2FycmF5KCRjb25uZWN0X2Z1bmN0aW9uLCAkcGFyYW1zKTsKCiAgICAgICAgaWYgKCEkdGhpcy0+Y29ubmVjdGlvbikgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfQ09OTkVDVF9GQUlMRUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQG1zc3FsX2dldF9sYXN0X21lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgICAgIGlmICgkZHNuWydkYXRhYmFzZSddKSB7CiAgICAgICAgICAgIGlmICghQG1zc3FsX3NlbGVjdF9kYigkZHNuWydkYXRhYmFzZSddLCAkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT0RCU0VMRUNURUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbXNzcWxfZ2V0X2xhc3RfbWVzc2FnZSgpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+X2RiID0gJGRzblsnZGF0YWJhc2UnXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRpc2Nvbm5lY3QoKQoKICAgIC8qKgogICAgICogRGlzY29ubmVjdHMgZnJvbSB0aGUgZGF0YWJhc2Ugc2VydmVyCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIG9uIGZhaWx1cmUKICAgICAqLwogICAgZnVuY3Rpb24gZGlzY29ubmVjdCgpCiAgICB7CiAgICAgICAgJHJldCA9IEBtc3NxbF9jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBudWxsOwogICAgICAgIHJldHVybiAkcmV0OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHNpbXBsZVF1ZXJ5KCkKCiAgICAvKioKICAgICAqIFNlbmRzIGEgcXVlcnkgdG8gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgKyBhIFBIUCByZXN1bHQgcmVzcm91Y2UgZm9yIHN1Y2Nlc3NmdWwgU0VMRUNUIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgdGhlIERCX09LIGNvbnN0YW50IGZvciBvdGhlciBzdWNjZXNzZnVsIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgYSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBzaW1wbGVRdWVyeSgkcXVlcnkpCiAgICB7CiAgICAgICAgJGlzbWFuaXAgPSAkdGhpcy0+X2NoZWNrTWFuaXAoJHF1ZXJ5KTsKICAgICAgICAkdGhpcy0+bGFzdF9xdWVyeSA9ICRxdWVyeTsKICAgICAgICBpZiAoIUBtc3NxbF9zZWxlY3RfZGIoJHRoaXMtPl9kYiwgJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNzcWxSYWlzZUVycm9yKERCX0VSUk9SX05PREJTRUxFQ1RFRCk7CiAgICAgICAgfQogICAgICAgICRxdWVyeSA9ICR0aGlzLT5tb2RpZnlRdWVyeSgkcXVlcnkpOwogICAgICAgIGlmICghJHRoaXMtPmF1dG9jb21taXQgJiYgJGlzbWFuaXApIHsKICAgICAgICAgICAgaWYgKCR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID09IDApIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSBAbXNzcWxfcXVlcnkoJ0JFR0lOIFRSQU4nLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1zc3FsUmFpc2VFcnJvcigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50Kys7CiAgICAgICAgfQogICAgICAgICRyZXN1bHQgPSBAbXNzcWxfcXVlcnkoJHF1ZXJ5LCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIC8vIERldGVybWluZSB3aGljaCBxdWVyaWVzIHRoYXQgc2hvdWxkIHJldHVybiBkYXRhLCBhbmQgd2hpY2gKICAgICAgICAvLyBzaG91bGQgcmV0dXJuIGFuIGVycm9yIGNvZGUgb25seS4KICAgICAgICByZXR1cm4gJGlzbWFuaXAgPyBEQl9PSyA6ICRyZXN1bHQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dFJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBNb3ZlIHRoZSBpbnRlcm5hbCBtc3NxbCByZXN1bHQgcG9pbnRlciB0byB0aGUgbmV4dCBhdmFpbGFibGUgcmVzdWx0CiAgICAgKgogICAgICogQHBhcmFtIGEgdmFsaWQgZmJzcWwgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqCiAgICAgKiBAcmV0dXJuIHRydWUgaWYgYSByZXN1bHQgaXMgYXZhaWxhYmxlIG90aGVyd2lzZSByZXR1cm4gZmFsc2UKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dFJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiBAbXNzcWxfbmV4dF9yZXN1bHQoJHJlc3VsdCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hJbnRvKCkKCiAgICAvKioKICAgICAqIFBsYWNlcyBhIHJvdyBmcm9tIHRoZSByZXN1bHQgc2V0IGludG8gdGhlIGdpdmVuIGFycmF5CiAgICAgKgogICAgICogRm9ybWF0aW5nIG9mIHRoZSBhcnJheSBhbmQgdGhlIGRhdGEgdGhlcmVpbiBhcmUgY29uZmlndXJhYmxlLgogICAgICogU2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmZXRjaEludG8oKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICAgIHRoZSBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqIEBwYXJhbSBhcnJheSAgICAkYXJyICAgICAgIHRoZSByZWZlcmVuY2VkIGFycmF5IHRvIHB1dCB0aGUgZGF0YSBpbgogICAgICogQHBhcmFtIGludCAgICAgICRmZXRjaG1vZGUgaG93IHRoZSByZXN1bHRpbmcgYXJyYXkgc2hvdWxkIGJlIGluZGV4ZWQKICAgICAqIEBwYXJhbSBpbnQgICAgICAkcm93bnVtICAgIHRoZSByb3cgbnVtYmVyIHRvIGZldGNoICgwID0gZmlyc3Qgcm93KQogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIERCX09LIG9uIHN1Y2Nlc3MsIE5VTEwgd2hlbiB0aGUgZW5kIG9mIGEgcmVzdWx0IHNldCBpcwogICAgICogICAgICAgICAgICAgICAgIHJlYWNoZWQgb3Igb24gZmFpbHVyZQogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKQogICAgICovCiAgICBmdW5jdGlvbiBmZXRjaEludG8oJHJlc3VsdCwgJiRhcnIsICRmZXRjaG1vZGUsICRyb3dudW0gPSBudWxsKQogICAgewogICAgICAgIGlmICgkcm93bnVtICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmICghQG1zc3FsX2RhdGFfc2VlaygkcmVzdWx0LCAkcm93bnVtKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCRmZXRjaG1vZGUgJiBEQl9GRVRDSE1PREVfQVNTT0MpIHsKICAgICAgICAgICAgJGFyciA9IEBtc3NxbF9mZXRjaF9hc3NvYygkcmVzdWx0KTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmICRhcnIpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYXJyID0gQG1zc3FsX2ZldGNoX3JvdygkcmVzdWx0KTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkYXJyKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9SVFJJTSkgewogICAgICAgICAgICAkdGhpcy0+X3J0cmltQXJyYXlWYWx1ZXMoJGFycik7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX05VTExfVE9fRU1QVFkpIHsKICAgICAgICAgICAgJHRoaXMtPl9jb252ZXJ0TnVsbEFycmF5VmFsdWVzVG9FbXB0eSgkYXJyKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGZyZWVSZXN1bHQoKQoKICAgIC8qKgogICAgICogRGVsZXRlcyB0aGUgcmVzdWx0IHNldCBhbmQgZnJlZXMgdGhlIG1lbW9yeSBvY2N1cGllZCBieSB0aGUgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6ZnJlZSgpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgVFJVRSBvbiBzdWNjZXNzLCBGQUxTRSBpZiAkcmVzdWx0IGlzIGludmFsaWQKICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6ZnJlZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZyZWVSZXN1bHQoJHJlc3VsdCkKICAgIHsKICAgICAgICByZXR1cm4gaXNfcmVzb3VyY2UoJHJlc3VsdCkgPyBtc3NxbF9mcmVlX3Jlc3VsdCgkcmVzdWx0KSA6IGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG51bUNvbHMoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpudW1Db2xzKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2YgY29sdW1ucy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6Om51bUNvbHMoKQogICAgICovCiAgICBmdW5jdGlvbiBudW1Db2xzKCRyZXN1bHQpCiAgICB7CiAgICAgICAgJGNvbHMgPSBAbXNzcWxfbnVtX2ZpZWxkcygkcmVzdWx0KTsKICAgICAgICBpZiAoISRjb2xzKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkY29sczsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Sb3dzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiByb3dzIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6bnVtUm93cygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpudW1Sb3dzKCkKICAgICAqLwogICAgZnVuY3Rpb24gbnVtUm93cygkcmVzdWx0KQogICAgewogICAgICAgICRyb3dzID0gQG1zc3FsX251bV9yb3dzKCRyZXN1bHQpOwogICAgICAgIGlmICgkcm93cyA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tc3NxbFJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyb3dzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGF1dG9Db21taXQoKQoKICAgIC8qKgogICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhdXRvbWF0aWMgY29tbWl0cwogICAgICoKICAgICAqIEBwYXJhbSBib29sICRvbm9mZiAgdHJ1ZSB0dXJucyBpdCBvbiwgZmFsc2UgdHVybnMgaXQgb2ZmCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBpZiB0aGUgZHJpdmVyCiAgICAgKiAgICAgICAgICAgICAgIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBhdXRvQ29tbWl0KCRvbm9mZiA9IGZhbHNlKQogICAgewogICAgICAgIC8vIFhYWCBpZiAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA+IDAsIHdlIHNob3VsZCBwcm9iYWJseQogICAgICAgIC8vIGlzc3VlIGEgd2FybmluZyBoZXJlLgogICAgICAgICR0aGlzLT5hdXRvY29tbWl0ID0gJG9ub2ZmID8gdHJ1ZSA6IGZhbHNlOwogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb21taXQoKQoKICAgIC8qKgogICAgICogQ29tbWl0cyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29tbWl0KCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwKSB7CiAgICAgICAgICAgIGlmICghQG1zc3FsX3NlbGVjdF9kYigkdGhpcy0+X2RiLCAkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNzcWxSYWlzZUVycm9yKERCX0VSUk9SX05PREJTRUxFQ1RFRCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJlc3VsdCA9IEBtc3NxbF9xdWVyeSgnQ09NTUlUIFRSQU4nLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID0gMDsKICAgICAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1zc3FsUmFpc2VFcnJvcigpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyByb2xsYmFjaygpCgogICAgLyoqCiAgICAgKiBSZXZlcnRzIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiByb2xsYmFjaygpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID4gMCkgewogICAgICAgICAgICBpZiAoIUBtc3NxbF9zZWxlY3RfZGIoJHRoaXMtPl9kYiwgJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1zc3FsUmFpc2VFcnJvcihEQl9FUlJPUl9OT0RCU0VMRUNURUQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRyZXN1bHQgPSBAbXNzcWxfcXVlcnkoJ1JPTExCQUNLIFRSQU4nLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID0gMDsKICAgICAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1zc3FsUmFpc2VFcnJvcigpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBhZmZlY3RlZFJvd3MoKQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB0aGUgbnVtYmVyIG9mIHJvd3MgYWZmZWN0ZWQgYnkgYSBkYXRhIG1hbml1cGxhdGlvbiBxdWVyeQogICAgICoKICAgICAqIDAgaXMgcmV0dXJuZWQgZm9yIHF1ZXJpZXMgdGhhdCBkb24ndCBtYW5pcHVsYXRlIGRhdGEuCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2Ygcm93cy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFmZmVjdGVkUm93cygpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5fbGFzdF9xdWVyeV9tYW5pcCkgewogICAgICAgICAgICAkcmVzID0gQG1zc3FsX3F1ZXJ5KCdzZWxlY3QgQEByb3djb3VudCcsICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAgICAgaWYgKCEkcmVzKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm1zc3FsUmFpc2VFcnJvcigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRhciA9IEBtc3NxbF9mZXRjaF9yb3coJHJlcyk7CiAgICAgICAgICAgIGlmICghJGFyKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gMDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIEBtc3NxbF9mcmVlX3Jlc3VsdCgkcmVzKTsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkYXJbMF07CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcmVzdWx0ID0gMDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dElkKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5leHQgZnJlZSBpZCBpbiBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZQogICAgICogQHBhcmFtIGJvb2xlYW4gJG9uZGVtYW5kICB3aGVuIHRydWUsIHRoZSBzZXFlbmNlIGlzIGF1dG9tYXRpY2FsbHkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG5leHQgaWQgbnVtYmVyIGluIHRoZSBzZXF1ZW5jZS4KICAgICAqICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6bmV4dElEKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX21zc3FsOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9tc3NxbDo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dElkKCRzZXFfbmFtZSwgJG9uZGVtYW5kID0gdHJ1ZSkKICAgIHsKICAgICAgICAkc2VxbmFtZSA9ICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKTsKICAgICAgICBpZiAoIUBtc3NxbF9zZWxlY3RfZGIoJHRoaXMtPl9kYiwgJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNzcWxSYWlzZUVycm9yKERCX0VSUk9SX05PREJTRUxFQ1RFRCk7CiAgICAgICAgfQogICAgICAgICRyZXBlYXQgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5xdWVyeSgiSU5TRVJUIElOVE8gJHNlcW5hbWUgKHZhcG9yKSBWQUxVRVMgKDApIik7CiAgICAgICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgICAgIGlmICgkb25kZW1hbmQgJiYgREI6OmlzRXJyb3IoJHJlc3VsdCkgJiYKICAgICAgICAgICAgICAgICgkcmVzdWx0LT5nZXRDb2RlKCkgPT0gREJfRVJST1IgfHwgJHJlc3VsdC0+Z2V0Q29kZSgpID09IERCX0VSUk9SX05PU1VDSFRBQkxFKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHJlcGVhdCA9IDE7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNyZWF0ZVNlcXVlbmNlKCRzZXFfbmFtZSk7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZWlmICghREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSYgJHRoaXMtPnF1ZXJ5KCJTRUxFQ1QgSURFTlRfQ1VSUkVOVCgnJHNlcW5hbWUnKSIpOwogICAgICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgLyogRmFsbGJhY2sgY29kZSBmb3IgTVMgU1FMIFNlcnZlciA3LjAsIHdoaWNoIGRvZXNuJ3QgaGF2ZQogICAgICAgICAgICAgICAgICAgICAqIElERU5UX0NVUlJFTlQuIFRoaXMgaXMgKm5vdCogc2FmZSBmb3IgY29uY3VycmVudAogICAgICAgICAgICAgICAgICAgICAqIHJlcXVlc3RzLCBhbmQgcmVhbGx5LCBpZiB5b3UncmUgdXNpbmcgaXQsIHlvdSdyZSBpbiBhCiAgICAgICAgICAgICAgICAgICAgICogd29ybGQgb2YgaHVydC4gTmV2ZXJ0aGVsZXNzLCBpdCdzIGhlcmUgdG8gZW5zdXJlIEJDLiBTZWUKICAgICAgICAgICAgICAgICAgICAgKiBidWcgIzE4MSBmb3IgdGhlIGdvcnkgZGV0YWlscy4qLwogICAgICAgICAgICAgICAgICAgICRyZXN1bHQgPSYgJHRoaXMtPnF1ZXJ5KCJTRUxFQ1QgQEBJREVOVElUWSBGUk9NICRzZXFuYW1lIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkcmVwZWF0ID0gMDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRyZXBlYXQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0gd2hpbGUgKCRyZXBlYXQpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgICRyZXN1bHQgPSAkcmVzdWx0LT5mZXRjaFJvdyhEQl9GRVRDSE1PREVfT1JERVJFRCk7CiAgICAgICAgcmV0dXJuICRyZXN1bHRbMF07CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIG5ldyBzZXF1ZW5jZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfbXNzcWw6Om5leHRJRCgpLCBEQl9tc3NxbDo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cXVlcnkoJ0NSRUFURSBUQUJMRSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnIChbaWRdIFtpbnRdIElERU5USVRZICgxLCAxKSBOT1QgTlVMTCwnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgW3ZhcG9yXSBbaW50XSBOVUxMKScpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRyb3BTZXF1ZW5jZSgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIGEgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgc2VxdWVuY2UgdG8gYmUgZGVsZXRlZAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6ZHJvcFNlcXVlbmNlKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX21zc3FsOjpuZXh0SUQoKSwgREJfbXNzcWw6OmNyZWF0ZVNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZHJvcFNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCdEUk9QIFRBQkxFICcgLiAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHF1b3RlSWRlbnRpZmllcigpCgogICAgLyoqCiAgICAgKiBRdW90ZXMgYSBzdHJpbmcgc28gaXQgY2FuIGJlIHNhZmVseSB1c2VkIGFzIGEgdGFibGUgb3IgY29sdW1uIG5hbWUKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIgIGlkZW50aWZpZXIgbmFtZSB0byBiZSBxdW90ZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgcXVvdGVkIGlkZW50aWZpZXIgc3RyaW5nCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnF1b3RlSWRlbnRpZmllcigpCiAgICAgKiBAc2luY2UgTWV0aG9kIGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNi4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIHF1b3RlSWRlbnRpZmllcigkc3RyKQogICAgewogICAgICAgIHJldHVybiAnWycgLiBzdHJfcmVwbGFjZSgnXScsICddXScsICRzdHIpIC4gJ10nOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG1zc3FsUmFpc2VFcnJvcigpCgogICAgLyoqCiAgICAgKiBQcm9kdWNlcyBhIERCX0Vycm9yIG9iamVjdCByZWdhcmRpbmcgdGhlIGN1cnJlbnQgcHJvYmxlbQogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJGVycm5vICBpZiB0aGUgZXJyb3IgaXMgYmVpbmcgbWFudWFsbHkgcmFpc2VkIHBhc3MgYQogICAgICogICAgICAgICAgICAgICAgICAgICBEQl9FUlJPUiogY29uc3RhbnQgaGVyZS4gIElmIHRoaXMgaXNuJ3QgcGFzc2VkCiAgICAgKiAgICAgICAgICAgICAgICAgICAgIHRoZSBlcnJvciBpbmZvcm1hdGlvbiBnYXRoZXJlZCBmcm9tIHRoZSBEQk1TLgogICAgICoKICAgICAqIEByZXR1cm4gb2JqZWN0ICB0aGUgREJfRXJyb3Igb2JqZWN0CiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnJhaXNlRXJyb3IoKSwKICAgICAqICAgICAgREJfbXNzcWw6OmVycm9yTmF0aXZlKCksIERCX21zc3FsOjplcnJvckNvZGUoKQogICAgICovCiAgICBmdW5jdGlvbiBtc3NxbFJhaXNlRXJyb3IoJGNvZGUgPSBudWxsKQogICAgewogICAgICAgICRtZXNzYWdlID0gQG1zc3FsX2dldF9sYXN0X21lc3NhZ2UoKTsKICAgICAgICBpZiAoISRjb2RlKSB7CiAgICAgICAgICAgICRjb2RlID0gJHRoaXMtPmVycm9yTmF0aXZlKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigkdGhpcy0+ZXJyb3JDb2RlKCRjb2RlLCAkbWVzc2FnZSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsICIkY29kZSAtICRtZXNzYWdlIik7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXJyb3JOYXRpdmUoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgREJNUycgbmF0aXZlIGVycm9yIGNvZGUgcHJvZHVjZWQgYnkgdGhlIGxhc3QgcXVlcnkKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIERCTVMnIGVycm9yIGNvZGUKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JOYXRpdmUoKQogICAgewogICAgICAgICRyZXMgPSBAbXNzcWxfcXVlcnkoJ3NlbGVjdCBAQEVSUk9SIGFzIEVycm9yQ29kZScsICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICBpZiAoISRyZXMpIHsKICAgICAgICAgICAgcmV0dXJuIERCX0VSUk9SOwogICAgICAgIH0KICAgICAgICAkcm93ID0gQG1zc3FsX2ZldGNoX3JvdygkcmVzKTsKICAgICAgICByZXR1cm4gJHJvd1swXTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlcnJvckNvZGUoKQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyBQRUFSOjpEQiBlcnJvciBjb2RlIGZyb20gbXNzcWwncyBuYXRpdmUgY29kZXMuCiAgICAgKgogICAgICogSWYgPHZhcj4kbmF0aXZlY29kZTwvdmFyPiBpc24ndCBrbm93biB5ZXQsIGl0IHdpbGwgYmUgbG9va2VkIHVwLgogICAgICoKICAgICAqIEBwYXJhbSAgbWl4ZWQgICRuYXRpdmVjb2RlICBtc3NxbCBlcnJvciBjb2RlLCBpZiBrbm93bgogICAgICogQHJldHVybiBpbnRlZ2VyICBhbiBlcnJvciBudW1iZXIgZnJvbSBhIERCIGVycm9yIGNvbnN0YW50CiAgICAgKiBAc2VlIGVycm9yTmF0aXZlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JDb2RlKCRuYXRpdmVjb2RlID0gbnVsbCwgJG1zZyA9ICcnKQogICAgewogICAgICAgIGlmICghJG5hdGl2ZWNvZGUpIHsKICAgICAgICAgICAgJG5hdGl2ZWNvZGUgPSAkdGhpcy0+ZXJyb3JOYXRpdmUoKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5lcnJvcmNvZGVfbWFwWyRuYXRpdmVjb2RlXSkpIHsKICAgICAgICAgICAgaWYgKCRuYXRpdmVjb2RlID09IDM3MDEKICAgICAgICAgICAgICAgICYmIHByZWdfbWF0Y2goJy9DYW5ub3QgZHJvcCB0aGUgaW5kZXgvaScsICRtc2cpKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICByZXR1cm4gREJfRVJST1JfTk9UX0ZPVU5EOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+ZXJyb3Jjb2RlX21hcFskbmF0aXZlY29kZV07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIERCX0VSUk9SOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyB0YWJsZUluZm8oKQoKICAgIC8qKgogICAgICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHRhYmxlIG9yIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIE5PVEU6IG9ubHkgc3VwcG9ydHMgJ3RhYmxlJyBhbmQgJ2ZsYWdzJyBpZiA8dmFyPiRyZXN1bHQ8L3Zhcj4KICAgICAqIGlzIGEgdGFibGUgbmFtZS4KICAgICAqCiAgICAgKiBAcGFyYW0gb2JqZWN0fHN0cmluZyAgJHJlc3VsdCAgREJfcmVzdWx0IG9iamVjdCBmcm9tIGEgcXVlcnkgb3IgYQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiBhIHRhYmxlLgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXaGlsZSB0aGlzIGFsc28gYWNjZXB0cyBhIHF1ZXJ5IHJlc3VsdAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZSBpZGVudGlmaWVyLCB0aGlzIGJlaGF2aW9yIGlzCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlcHJlY2F0ZWQuCiAgICAgKiBAcGFyYW0gaW50ICAgICAgICAgICAgJG1vZGUgICAgYSB2YWxpZCB0YWJsZUluZm8gbW9kZQogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdGhlIGluZm9ybWF0aW9uIHJlcXVlc3RlZC4KICAgICAqICAgICAgICAgICAgICAgICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjp0YWJsZUluZm8oKQogICAgICovCiAgICBmdW5jdGlvbiB0YWJsZUluZm8oJHJlc3VsdCwgJG1vZGUgPSBudWxsKQogICAgewogICAgICAgIGlmIChpc19zdHJpbmcoJHJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSB0YWJsZSBuYW1lLgogICAgICAgICAgICAgKiBDcmVhdGUgYSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgIGlmICghQG1zc3FsX3NlbGVjdF9kYigkdGhpcy0+X2RiLCAkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXNzcWxSYWlzZUVycm9yKERCX0VSUk9SX05PREJTRUxFQ1RFRCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGlkID0gQG1zc3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NICRyZXN1bHQgV0hFUkUgMT0wIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSB0cnVlOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkcmVzdWx0LT5yZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgcmVzdWx0IG9iamVjdC4KICAgICAgICAgICAgICogRXh0cmFjdCB0aGUgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSAkcmVzdWx0LT5yZXN1bHQ7CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gZmFsc2U7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICogQ29weSBpdC4KICAgICAgICAgICAgICogRGVwcmVjYXRlZC4gIEhlcmUgZm9yIGNvbXBhdGliaWxpdHkgb25seS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQ7CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoIWlzX3Jlc291cmNlKCRpZCkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tc3NxbFJhaXNlRXJyb3IoREJfRVJST1JfTkVFRF9NT1JFX0RBVEEpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydG9sb3dlcic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ2YWwnOwogICAgICAgIH0KCiAgICAgICAgJGNvdW50ID0gQG1zc3FsX251bV9maWVsZHMoJGlkKTsKICAgICAgICAkcmVzICAgPSBhcnJheSgpOwoKICAgICAgICBpZiAoJG1vZGUpIHsKICAgICAgICAgICAgJHJlc1snbnVtX2ZpZWxkcyddID0gJGNvdW50OwogICAgICAgIH0KCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7CiAgICAgICAgICAgIGlmICgkZ290X3N0cmluZykgewogICAgICAgICAgICAgICAgJGZsYWdzID0gJHRoaXMtPl9tc3NxbF9maWVsZF9mbGFncygkcmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICBAbXNzcWxfZmllbGRfbmFtZSgkaWQsICRpKSk7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJGZsYWdzKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkZmxhZ3M7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkZmxhZ3MgPSAnJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHJlc1skaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICd0YWJsZScgPT4gJGdvdF9zdHJpbmcgPyAkY2FzZV9mdW5jKCRyZXN1bHQpIDogJycsCiAgICAgICAgICAgICAgICAnbmFtZScgID0+ICRjYXNlX2Z1bmMoQG1zc3FsX2ZpZWxkX25hbWUoJGlkLCAkaSkpLAogICAgICAgICAgICAgICAgJ3R5cGUnICA9PiBAbXNzcWxfZmllbGRfdHlwZSgkaWQsICRpKSwKICAgICAgICAgICAgICAgICdsZW4nICAgPT4gQG1zc3FsX2ZpZWxkX2xlbmd0aCgkaWQsICRpKSwKICAgICAgICAgICAgICAgICdmbGFncycgPT4gJGZsYWdzLAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVIpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVyJ11bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXJ0YWJsZSddWyRyZXNbJGldWyd0YWJsZSddXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBmcmVlIHRoZSByZXN1bHQgb25seSBpZiB3ZSB3ZXJlIGNhbGxlZCBvbiBhIHRhYmxlCiAgICAgICAgaWYgKCRnb3Rfc3RyaW5nKSB7CiAgICAgICAgICAgIEBtc3NxbF9mcmVlX3Jlc3VsdCgkaWQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBfbXNzcWxfZmllbGRfZmxhZ3MoKQoKICAgIC8qKgogICAgICogR2V0IGEgY29sdW1uJ3MgZmxhZ3MKICAgICAqCiAgICAgKiBTdXBwb3J0cyAibm90X251bGwiLCAicHJpbWFyeV9rZXkiLAogICAgICogImF1dG9faW5jcmVtZW50IiAobXNzcWwgaWRlbnRpdHkpLCAidGltZXN0YW1wIiAobXNzcWwgdGltZXN0YW1wKSwKICAgICAqICJ1bmlxdWVfa2V5IiAobXNzcWwgdW5pcXVlIGluZGV4LCB1bmlxdWUgY2hlY2sgb3IgcHJpbWFyeV9rZXkpIGFuZAogICAgICogIm11bHRpcGxlX2tleSIgKG11bHRpa2V5IGluZGV4KQogICAgICoKICAgICAqIG1zc3FsIHRpbWVzdGFtcCBpcyBOT1Qgc2ltaWxhciB0byB0aGUgbXlzcWwgdGltZXN0YW1wIHNvIHRoaXMgaXMgbWF5YmUKICAgICAqIG5vdCB1c2VmdWwgYXQgYWxsIC0gaXMgdGhlIGJlaGF2aW91ciBvZiBteXNxbF9maWVsZF9mbGFncyB0aGF0IHByaW1hcnkKICAgICAqIGtleXMgYXJlIGFsd2F5IHVuaXF1ZT8gaXMgdGhlIGludGVycHJldGF0aW9uIG9mIG11bHRpcGxlX2tleSBjb3JyZWN0PwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRhYmxlICAgdGhlIHRhYmxlIG5hbWUKICAgICAqIEBwYXJhbSBzdHJpbmcgJGNvbHVtbiAgdGhlIGZpZWxkIG5hbWUKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIGZsYWdzCiAgICAgKgogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKiBAYXV0aG9yIEpvZXJuIEJhcnRoZWwgPGpfYmFydGhlbEB3ZWIuZGU+CiAgICAgKi8KICAgIGZ1bmN0aW9uIF9tc3NxbF9maWVsZF9mbGFncygkdGFibGUsICRjb2x1bW4pCiAgICB7CiAgICAgICAgc3RhdGljICR0YWJsZU5hbWUgPSBudWxsOwogICAgICAgIHN0YXRpYyAkZmxhZ3MgPSBhcnJheSgpOwoKICAgICAgICBpZiAoJHRhYmxlICE9ICR0YWJsZU5hbWUpIHsKCiAgICAgICAgICAgICRmbGFncyA9IGFycmF5KCk7CiAgICAgICAgICAgICR0YWJsZU5hbWUgPSAkdGFibGU7CgogICAgICAgICAgICAvLyBnZXQgdW5pcXVlIGFuZCBwcmltYXJ5IGtleXMKICAgICAgICAgICAgJHJlcyA9ICR0aGlzLT5nZXRBbGwoIkVYRUMgU1BfSEVMUElOREVYICR0YWJsZSIsIERCX0ZFVENITU9ERV9BU1NPQyk7CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGZvcmVhY2ggKCRyZXMgYXMgJHZhbCkgewogICAgICAgICAgICAgICAgJGtleXMgPSBleHBsb2RlKCcsICcsICR2YWxbJ2luZGV4X2tleXMnXSk7CgogICAgICAgICAgICAgICAgaWYgKHNpemVvZigka2V5cykgPiAxKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGtleXMgYXMgJGtleSkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2FkZF9mbGFnKCRmbGFnc1ska2V5XSwgJ211bHRpcGxlX2tleScpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoc3RycG9zKCR2YWxbJ2luZGV4X2Rlc2NyaXB0aW9uJ10sICdwcmltYXJ5IGtleScpKSB7CiAgICAgICAgICAgICAgICAgICAgZm9yZWFjaCAoJGtleXMgYXMgJGtleSkgewogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2FkZF9mbGFnKCRmbGFnc1ska2V5XSwgJ3ByaW1hcnlfa2V5Jyk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlaWYgKHN0cnBvcygkdmFsWydpbmRleF9kZXNjcmlwdGlvbiddLCAndW5pcXVlJykpIHsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgka2V5cyBhcyAka2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fYWRkX2ZsYWcoJGZsYWdzWyRrZXldLCAndW5pcXVlX2tleScpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gZ2V0IGF1dG9faW5jcmVtZW50LCBub3RfbnVsbCBhbmQgdGltZXN0YW1wCiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+Z2V0QWxsKCJFWEVDIFNQX0NPTFVNTlMgJHRhYmxlIiwgREJfRkVUQ0hNT0RFX0FTU09DKTsKICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHJlczsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yZWFjaCAoJHJlcyBhcyAkdmFsKSB7CiAgICAgICAgICAgICAgICAkdmFsID0gYXJyYXlfY2hhbmdlX2tleV9jYXNlKCR2YWwsIENBU0VfTE9XRVIpOwogICAgICAgICAgICAgICAgaWYgKCR2YWxbJ251bGxhYmxlJ10gPT0gJzAnKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9hZGRfZmxhZygkZmxhZ3NbJHZhbFsnY29sdW1uX25hbWUnXV0sICdub3RfbnVsbCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKHN0cnBvcygkdmFsWyd0eXBlX25hbWUnXSwgJ2lkZW50aXR5JykpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2FkZF9mbGFnKCRmbGFnc1skdmFsWydjb2x1bW5fbmFtZSddXSwgJ2F1dG9faW5jcmVtZW50Jyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoc3RycG9zKCR2YWxbJ3R5cGVfbmFtZSddLCAndGltZXN0YW1wJykpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2FkZF9mbGFnKCRmbGFnc1skdmFsWydjb2x1bW5fbmFtZSddXSwgJ3RpbWVzdGFtcCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygkY29sdW1uLCAkZmxhZ3MpKSB7CiAgICAgICAgICAgIHJldHVybihpbXBsb2RlKCcgJywgJGZsYWdzWyRjb2x1bW5dKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAnJzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBfYWRkX2ZsYWcoKQoKICAgIC8qKgogICAgICogQWRkcyBhIHN0cmluZyB0byB0aGUgZmxhZ3MgYXJyYXkgaWYgdGhlIGZsYWcgaXMgbm90IHlldCBpbiB0aGVyZQogICAgICogLSBpZiB0aGVyZSBpcyBubyBmbGFnIHByZXNlbnQgdGhlIGFycmF5IGlzIGNyZWF0ZWQKICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgICYkYXJyYXkgIHRoZSByZWZlcmVuY2UgdG8gdGhlIGZsYWctYXJyYXkKICAgICAqIEBwYXJhbSBzdHJpbmcgJHZhbHVlICAgdGhlIGZsYWcgdmFsdWUKICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqIEBhdXRob3IgSm9lcm4gQmFydGhlbCA8al9iYXJ0aGVsQHdlYi5kZT4KICAgICAqLwogICAgZnVuY3Rpb24gX2FkZF9mbGFnKCYkYXJyYXksICR2YWx1ZSkKICAgIHsKICAgICAgICBpZiAoIWlzX2FycmF5KCRhcnJheSkpIHsKICAgICAgICAgICAgJGFycmF5ID0gYXJyYXkoJHZhbHVlKTsKICAgICAgICB9IGVsc2VpZiAoIWluX2FycmF5KCR2YWx1ZSwgJGFycmF5KSkgewogICAgICAgICAgICBhcnJheV9wdXNoKCRhcnJheSwgJHZhbHVlKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0U3BlY2lhbFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIE9idGFpbnMgdGhlIHF1ZXJ5IHN0cmluZyBuZWVkZWQgZm9yIGxpc3RpbmcgYSBnaXZlbiB0eXBlIG9mIG9iamVjdHMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlICB0aGUga2luZCBvZiBvYmplY3RzIHlvdSB3YW50IHRvIHJldHJpZXZlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nIG9yIG51bGwgaWYgdGhlIGRyaXZlciBkb2Vzbid0CiAgICAgKiAgICAgICAgICAgICAgICAgIHN1cHBvcnQgdGhlIG9iamVjdCB0eXBlIHJlcXVlc3RlZAogICAgICoKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Z2V0TGlzdE9mKCkKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U3BlY2lhbFF1ZXJ5KCR0eXBlKQogICAgewogICAgICAgIHN3aXRjaCAoJHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAndGFibGVzJzoKICAgICAgICAgICAgICAgIHJldHVybiAiU0VMRUNUIG5hbWUgRlJPTSBzeXNvYmplY3RzIFdIRVJFIHR5cGUgPSAnVSciCiAgICAgICAgICAgICAgICAgICAgICAgLiAnIE9SREVSIEJZIG5hbWUnOwogICAgICAgICAgICBjYXNlICd2aWV3cyc6CiAgICAgICAgICAgICAgICByZXR1cm4gIlNFTEVDVCBuYW1lIEZST00gc3lzb2JqZWN0cyBXSEVSRSB0eXBlID0gJ1YnIjsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KfQoKLyoKICogTG9jYWwgdmFyaWFibGVzOgogKiB0YWItd2lkdGg6IDQKICogYy1iYXNpYy1vZmZzZXQ6IDQKICogRW5kOgogKi8KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/mysql.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBteXNxbCBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggTXlTUUwgZGF0YWJhc2VzCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBTdGlnIEJha2tlbiA8c3NiQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIENWUzogJElkOiBteXNxbC5waHAsdiAxLjEyNCAyMDA3LzAxLzEyIDAzOjExOjE3IGFoYXJ2ZXkgRXhwICQKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwoKLyoqCiAqIE9idGFpbiB0aGUgREJfY29tbW9uIGNsYXNzIHNvIGl0IGNhbiBiZSBleHRlbmRlZCBmcm9tCiAqLwpyZXF1aXJlX29uY2UgJ0RCL2NvbW1vbi5waHAnOwoKLyoqCiAqIFRoZSBtZXRob2RzIFBFQVIgREIgdXNlcyB0byBpbnRlcmFjdCB3aXRoIFBIUCdzIG15c3FsIGV4dGVuc2lvbgogKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBNeVNRTCBkYXRhYmFzZXMKICoKICogVGhlc2UgbWV0aG9kcyBvdmVybG9hZCB0aGUgb25lcyBkZWNsYXJlZCBpbiBEQl9jb21tb24uCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFN0aWcgQmFra2VuIDxzc2JAcGhwLm5ldD4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgUmVsZWFzZTogMS43LjEyCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KY2xhc3MgREJfbXlzcWwgZXh0ZW5kcyBEQl9jb21tb24KewogICAgLy8ge3t7IHByb3BlcnRpZXMKCiAgICAvKioKICAgICAqIFRoZSBEQiBkcml2ZXIgdHlwZSAobXlzcWwsIG9jaTgsIG9kYmMsIGV0Yy4pCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJHBocHR5cGUgPSAnbXlzcWwnOwoKICAgIC8qKgogICAgICogVGhlIGRhdGFiYXNlIHN5bnRheCB2YXJpYW50IHRvIGJlIHVzZWQgKGRiMiwgYWNjZXNzLCBldGMuKSwgaWYgYW55CiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJGRic3ludGF4ID0gJ215c3FsJzsKCiAgICAvKioKICAgICAqIFRoZSBjYXBhYmlsaXRpZXMgb2YgdGhpcyBEQiBpbXBsZW1lbnRhdGlvbgogICAgICoKICAgICAqIFRoZSAnbmV3X2xpbmsnIGVsZW1lbnQgY29udGFpbnMgdGhlIFBIUCB2ZXJzaW9uIHRoYXQgZmlyc3QgcHJvdmlkZWQKICAgICAqIG5ld19saW5rIHN1cHBvcnQgZm9yIHRoaXMgREJNUy4gIENvbnRhaW5zIGZhbHNlIGlmIGl0J3MgdW5zdXBwb3J0ZWQuCiAgICAgKgogICAgICogTWVhbmluZyBvZiB0aGUgJ2xpbWl0JyBlbGVtZW50OgogICAgICogICArICdlbXVsYXRlJyA9IGVtdWxhdGUgd2l0aCBmZXRjaCByb3cgYnkgbnVtYmVyCiAgICAgKiAgICsgJ2FsdGVyJyAgID0gYWx0ZXIgdGhlIHF1ZXJ5CiAgICAgKiAgICsgZmFsc2UgICAgID0gc2tpcCByb3dzCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGZlYXR1cmVzID0gYXJyYXkoCiAgICAgICAgJ2xpbWl0JyAgICAgICAgID0+ICdhbHRlcicsCiAgICAgICAgJ25ld19saW5rJyAgICAgID0+ICc0LjIuMCcsCiAgICAgICAgJ251bXJvd3MnICAgICAgID0+IHRydWUsCiAgICAgICAgJ3Bjb25uZWN0JyAgICAgID0+IHRydWUsCiAgICAgICAgJ3ByZXBhcmUnICAgICAgID0+IGZhbHNlLAogICAgICAgICdzc2wnICAgICAgICAgICA9PiBmYWxzZSwKICAgICAgICAndHJhbnNhY3Rpb25zJyAgPT4gdHJ1ZSwKICAgICk7CgogICAgLyoqCiAgICAgKiBBIG1hcHBpbmcgb2YgbmF0aXZlIGVycm9yIGNvZGVzIHRvIERCIGVycm9yIGNvZGVzCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZXJyb3Jjb2RlX21hcCA9IGFycmF5KAogICAgICAgIDEwMDQgPT4gREJfRVJST1JfQ0FOTk9UX0NSRUFURSwKICAgICAgICAxMDA1ID0+IERCX0VSUk9SX0NBTk5PVF9DUkVBVEUsCiAgICAgICAgMTAwNiA9PiBEQl9FUlJPUl9DQU5OT1RfQ1JFQVRFLAogICAgICAgIDEwMDcgPT4gREJfRVJST1JfQUxSRUFEWV9FWElTVFMsCiAgICAgICAgMTAwOCA9PiBEQl9FUlJPUl9DQU5OT1RfRFJPUCwKICAgICAgICAxMDIyID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgIDEwNDQgPT4gREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTiwKICAgICAgICAxMDQ2ID0+IERCX0VSUk9SX05PREJTRUxFQ1RFRCwKICAgICAgICAxMDQ4ID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgMTA0OSA9PiBEQl9FUlJPUl9OT1NVQ0hEQiwKICAgICAgICAxMDUwID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgIDEwNTEgPT4gREJfRVJST1JfTk9TVUNIVEFCTEUsCiAgICAgICAgMTA1NCA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAxMDYxID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgIDEwNjIgPT4gREJfRVJST1JfQUxSRUFEWV9FWElTVFMsCiAgICAgICAgMTA2NCA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgMTA5MSA9PiBEQl9FUlJPUl9OT1RfRk9VTkQsCiAgICAgICAgMTEwMCA9PiBEQl9FUlJPUl9OT1RfTE9DS0VELAogICAgICAgIDExMzYgPT4gREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XLAogICAgICAgIDExNDIgPT4gREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTiwKICAgICAgICAxMTQ2ID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgIDEyMTYgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAxMjE3ID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgMTM1NiA9PiBEQl9FUlJPUl9ESVZaRVJPLAogICAgICAgIDE0NTEgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAxNDUyID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICApOwoKICAgIC8qKgogICAgICogVGhlIHJhdyBkYXRhYmFzZSBjb25uZWN0aW9uIGNyZWF0ZWQgYnkgUEhQCiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKi8KICAgIHZhciAkY29ubmVjdGlvbjsKCiAgICAvKioKICAgICAqIFRoZSBEU04gaW5mb3JtYXRpb24gZm9yIGNvbm5lY3RpbmcgdG8gYSBkYXRhYmFzZQogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGRzbiA9IGFycmF5KCk7CgoKICAgIC8qKgogICAgICogU2hvdWxkIGRhdGEgbWFuaXB1bGF0aW9uIHF1ZXJpZXMgYmUgY29tbWl0dGVkIGF1dG9tYXRpY2FsbHk/CiAgICAgKiBAdmFyIGJvb2wKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJGF1dG9jb21taXQgPSB0cnVlOwoKICAgIC8qKgogICAgICogVGhlIHF1YW50aXR5IG9mIHRyYW5zYWN0aW9ucyBiZWd1bgogICAgICoKICAgICAqIHtAaW50ZXJuYWwgIFdoaWxlIHRoaXMgaXMgcHJpdmF0ZSwgaXQgY2FuJ3QgYWN0dWFsbHkgYmUgZGVzaWduYXRlZAogICAgICogcHJpdmF0ZSBpbiBQSFAgNSBiZWNhdXNlIGl0IGlzIGRpcmVjdGx5IGFjY2Vzc2VkIGluIHRoZSB0ZXN0IHN1aXRlLn19CiAgICAgKgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICR0cmFuc2FjdGlvbl9vcGNvdW50ID0gMDsKCiAgICAvKioKICAgICAqIFRoZSBkYXRhYmFzZSBzcGVjaWZpZWQgaW4gdGhlIERTTgogICAgICoKICAgICAqIEl0J3MgYSBmaXggdG8gYWxsb3cgY2FsbHMgdG8gZGlmZmVyZW50IGRhdGFiYXNlcyBpbiB0aGUgc2FtZSBzY3JpcHQuCiAgICAgKgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJF9kYiA9ICcnOwoKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogVGhpcyBjb25zdHJ1Y3RvciBjYWxscyA8a2JkPiR0aGlzLT5EQl9jb21tb24oKTwva2JkPgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBEQl9teXNxbCgpCiAgICB7CiAgICAgICAgJHRoaXMtPkRCX2NvbW1vbigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLCBsb2cgaW4gYW5kIG9wZW4gdGhlIGRhdGFiYXNlCiAgICAgKgogICAgICogRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseS4gIFVzZSBEQjo6Y29ubmVjdCgpIGluc3RlYWQuCiAgICAgKgogICAgICogUEVBUiBEQidzIG15c3FsIGRyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGV4dHJhIERTTiBvcHRpb25zOgogICAgICogICArIG5ld19saW5rICAgICAgSWYgc2V0IHRvIHRydWUsIGNhdXNlcyBzdWJzZXF1ZW50IGNhbGxzIHRvIGNvbm5lY3QoKQogICAgICogICAgICAgICAgICAgICAgICAgIHRvIHJldHVybiBhIG5ldyBjb25uZWN0aW9uIGxpbmsgaW5zdGVhZCBvZiB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICBleGlzdGluZyBvbmUuICBXQVJOSU5HOiB0aGlzIGlzIG5vdCBwb3J0YWJsZSB0bwogICAgICogICAgICAgICAgICAgICAgICAgIG90aGVyIERCTVMncy4gQXZhaWxhYmxlIHNpbmNlIFBFQVIgREIgMS43LjAuCiAgICAgKiAgICsgY2xpZW50X2ZsYWdzICBBbnkgY29tYmluYXRpb24gb2YgTVlTUUxfQ0xJRU5UXyogY29uc3RhbnRzLgogICAgICogICAgICAgICAgICAgICAgICAgIE9ubHkgdXNlZCBpZiBQSFAgaXMgYXQgdmVyc2lvbiA0LjMuMCBvciBncmVhdGVyLgogICAgICogICAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBzaW5jZSBQRUFSIERCIDEuNy4wLgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkZHNuICAgICAgICAgdGhlIGRhdGEgc291cmNlIG5hbWUKICAgICAqIEBwYXJhbSBib29sICAkcGVyc2lzdGVudCAgc2hvdWxkIHRoZSBjb25uZWN0aW9uIGJlIHBlcnNpc3RlbnQ/CiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNvbm5lY3QoJGRzbiwgJHBlcnNpc3RlbnQgPSBmYWxzZSkKICAgIHsKICAgICAgICBpZiAoIVBFQVI6OmxvYWRFeHRlbnNpb24oJ215c3FsJykpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0VYVEVOU0lPTl9OT1RfRk9VTkQpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmRzbiA9ICRkc247CiAgICAgICAgaWYgKCRkc25bJ2Ric3ludGF4J10pIHsKICAgICAgICAgICAgJHRoaXMtPmRic3ludGF4ID0gJGRzblsnZGJzeW50YXgnXTsKICAgICAgICB9CgogICAgICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgICAgIGlmICgkZHNuWydwcm90b2NvbCddICYmICRkc25bJ3Byb3RvY29sJ10gPT0gJ3VuaXgnKSB7CiAgICAgICAgICAgICRwYXJhbXNbMF0gPSAnOicgLiAkZHNuWydzb2NrZXQnXTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcGFyYW1zWzBdID0gJGRzblsnaG9zdHNwZWMnXSA/ICRkc25bJ2hvc3RzcGVjJ10KICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2xvY2FsaG9zdCc7CiAgICAgICAgICAgIGlmICgkZHNuWydwb3J0J10pIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbMF0gLj0gJzonIC4gJGRzblsncG9ydCddOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICRwYXJhbXNbXSA9ICRkc25bJ3VzZXJuYW1lJ10gPyAkZHNuWyd1c2VybmFtZSddIDogbnVsbDsKICAgICAgICAkcGFyYW1zW10gPSAkZHNuWydwYXNzd29yZCddID8gJGRzblsncGFzc3dvcmQnXSA6IG51bGw7CgogICAgICAgIGlmICghJHBlcnNpc3RlbnQpIHsKICAgICAgICAgICAgaWYgKGlzc2V0KCRkc25bJ25ld19saW5rJ10pCiAgICAgICAgICAgICAgICAmJiAoJGRzblsnbmV3X2xpbmsnXSA9PSAndHJ1ZScgfHwgJGRzblsnbmV3X2xpbmsnXSA9PT0gdHJ1ZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbXSA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcGFyYW1zW10gPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAodmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwgJzQuMy4wJywgJz49JykpIHsKICAgICAgICAgICAgJHBhcmFtc1tdID0gaXNzZXQoJGRzblsnY2xpZW50X2ZsYWdzJ10pCiAgICAgICAgICAgICAgICAgICAgICAgID8gJGRzblsnY2xpZW50X2ZsYWdzJ10gOiBudWxsOwogICAgICAgIH0KCiAgICAgICAgJGNvbm5lY3RfZnVuY3Rpb24gPSAkcGVyc2lzdGVudCA/ICdteXNxbF9wY29ubmVjdCcgOiAnbXlzcWxfY29ubmVjdCc7CgogICAgICAgICRpbmkgPSBpbmlfZ2V0KCd0cmFja19lcnJvcnMnKTsKICAgICAgICAkcGhwX2Vycm9ybXNnID0gJyc7CiAgICAgICAgaWYgKCRpbmkpIHsKICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAY2FsbF91c2VyX2Z1bmNfYXJyYXkoJGNvbm5lY3RfZnVuY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIEBpbmlfc2V0KCd0cmFja19lcnJvcnMnLCAxKTsKICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAY2FsbF91c2VyX2Z1bmNfYXJyYXkoJGNvbm5lY3RfZnVuY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJhbXMpOwogICAgICAgICAgICBAaW5pX3NldCgndHJhY2tfZXJyb3JzJywgJGluaSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoISR0aGlzLT5jb25uZWN0aW9uKSB7CiAgICAgICAgICAgIGlmICgoJGVyciA9IEBteXNxbF9lcnJvcigpKSAhPSAnJykgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0NPTk5FQ1RfRkFJTEVELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRlcnIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0NPTk5FQ1RfRkFJTEVELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBocF9lcnJvcm1zZyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkZHNuWydkYXRhYmFzZSddKSB7CiAgICAgICAgICAgIGlmICghQG15c3FsX3NlbGVjdF9kYigkZHNuWydkYXRhYmFzZSddLCAkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPl9kYiA9ICRkc25bJ2RhdGFiYXNlJ107CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZGlzY29ubmVjdCgpCgogICAgLyoqCiAgICAgKiBEaXNjb25uZWN0cyBmcm9tIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0Ugb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBkaXNjb25uZWN0KCkKICAgIHsKICAgICAgICAkcmV0ID0gQG15c3FsX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IG51bGw7CiAgICAgICAgcmV0dXJuICRyZXQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgc2ltcGxlUXVlcnkoKQoKICAgIC8qKgogICAgICogU2VuZHMgYSBxdWVyeSB0byB0aGUgZGF0YWJhc2Ugc2VydmVyCiAgICAgKgogICAgICogR2VuZXJhbGx5IHVzZXMgbXlzcWxfcXVlcnkoKS4gIElmIHlvdSB3YW50IHRvIHVzZQogICAgICogbXlzcWxfdW5idWZmZXJlZF9xdWVyeSgpIHNldCB0aGUgInJlc3VsdF9idWZmZXJpbmciIG9wdGlvbiB0byAwIHVzaW5nCiAgICAgKiBzZXRPcHRpb25zKCkuICBUaGlzIG9wdGlvbiB3YXMgYWRkZWQgaW4gUmVsZWFzZSAxLjcuMC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZwogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgICsgYSBQSFAgcmVzdWx0IHJlc3JvdWNlIGZvciBzdWNjZXNzZnVsIFNFTEVDVCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIHRoZSBEQl9PSyBjb25zdGFudCBmb3Igb3RoZXIgc3VjY2Vzc2Z1bCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIGEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUKICAgICAqLwogICAgZnVuY3Rpb24gc2ltcGxlUXVlcnkoJHF1ZXJ5KQogICAgewogICAgICAgICRpc21hbmlwID0gJHRoaXMtPl9jaGVja01hbmlwKCRxdWVyeSk7CiAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJHF1ZXJ5ID0gJHRoaXMtPm1vZGlmeVF1ZXJ5KCRxdWVyeSk7CiAgICAgICAgaWYgKCR0aGlzLT5fZGIpIHsKICAgICAgICAgICAgaWYgKCFAbXlzcWxfc2VsZWN0X2RiKCR0aGlzLT5fZGIsICR0aGlzLT5jb25uZWN0aW9uKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5teXNxbFJhaXNlRXJyb3IoREJfRVJST1JfTk9EQlNFTEVDVEVEKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoISR0aGlzLT5hdXRvY29tbWl0ICYmICRpc21hbmlwKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9PSAwKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gQG15c3FsX3F1ZXJ5KCdTRVQgQVVUT0NPTU1JVD0wJywgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICAgICAgJHJlc3VsdCA9IEBteXNxbF9xdWVyeSgnQkVHSU4nLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsUmFpc2VFcnJvcigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50Kys7CiAgICAgICAgfQogICAgICAgIGlmICghJHRoaXMtPm9wdGlvbnNbJ3Jlc3VsdF9idWZmZXJpbmcnXSkgewogICAgICAgICAgICAkcmVzdWx0ID0gQG15c3FsX3VuYnVmZmVyZWRfcXVlcnkoJHF1ZXJ5LCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHJlc3VsdCA9IEBteXNxbF9xdWVyeSgkcXVlcnksICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc19yZXNvdXJjZSgkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG5leHRSZXN1bHQoKQoKICAgIC8qKgogICAgICogTW92ZSB0aGUgaW50ZXJuYWwgbXlzcWwgcmVzdWx0IHBvaW50ZXIgdG8gdGhlIG5leHQgYXZhaWxhYmxlIHJlc3VsdAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGhhcyBub3QgYmVlbiBpbXBsZW1lbnRlZCB5ZXQuCiAgICAgKgogICAgICogQHBhcmFtIGEgdmFsaWQgc3FsIHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gZmFsc2UKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dFJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBmZXRjaEludG8oKQoKICAgIC8qKgogICAgICogUGxhY2VzIGEgcm93IGZyb20gdGhlIHJlc3VsdCBzZXQgaW50byB0aGUgZ2l2ZW4gYXJyYXkKICAgICAqCiAgICAgKiBGb3JtYXRpbmcgb2YgdGhlIGFycmF5IGFuZCB0aGUgZGF0YSB0aGVyZWluIGFyZSBjb25maWd1cmFibGUuCiAgICAgKiBTZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6OmZldGNoSW50bygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgICAgdGhlIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICogQHBhcmFtIGFycmF5ICAgICRhcnIgICAgICAgdGhlIHJlZmVyZW5jZWQgYXJyYXkgdG8gcHV0IHRoZSBkYXRhIGluCiAgICAgKiBAcGFyYW0gaW50ICAgICAgJGZldGNobW9kZSBob3cgdGhlIHJlc3VsdGluZyBhcnJheSBzaG91bGQgYmUgaW5kZXhlZAogICAgICogQHBhcmFtIGludCAgICAgICRyb3dudW0gICAgdGhlIHJvdyBudW1iZXIgdG8gZmV0Y2ggKDAgPSBmaXJzdCByb3cpCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgREJfT0sgb24gc3VjY2VzcywgTlVMTCB3aGVuIHRoZSBlbmQgb2YgYSByZXN1bHQgc2V0IGlzCiAgICAgKiAgICAgICAgICAgICAgICAgcmVhY2hlZCBvciBvbiBmYWlsdXJlCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6OmZldGNoSW50bygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZldGNoSW50bygkcmVzdWx0LCAmJGFyciwgJGZldGNobW9kZSwgJHJvd251bSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRyb3dudW0gIT09IG51bGwpIHsKICAgICAgICAgICAgaWYgKCFAbXlzcWxfZGF0YV9zZWVrKCRyZXN1bHQsICRyb3dudW0pKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoJGZldGNobW9kZSAmIERCX0ZFVENITU9ERV9BU1NPQykgewogICAgICAgICAgICAkYXJyID0gQG15c3FsX2ZldGNoX2FycmF5KCRyZXN1bHQsIE1ZU1FMX0FTU09DKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmICRhcnIpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYXJyID0gQG15c3FsX2ZldGNoX3JvdygkcmVzdWx0KTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkYXJyKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9SVFJJTSkgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBFdmVuIHRob3VnaCB0aGlzIERCTVMgYWxyZWFkeSB0cmltcyBvdXRwdXQsIHdlIGRvIHRoaXMgYmVjYXVzZQogICAgICAgICAgICAgKiBhIGZpZWxkIG1pZ2h0IGhhdmUgaW50ZW50aW9uYWwgd2hpdGVzcGFjZSBhdCB0aGUgZW5kIHRoYXQKICAgICAgICAgICAgICogZ2V0cyByZW1vdmVkIGJ5IERCX1BPUlRBQklMSVRZX1JUUklNIHVuZGVyIGFub3RoZXIgZHJpdmVyLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJHRoaXMtPl9ydHJpbUFycmF5VmFsdWVzKCRhcnIpOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9OVUxMX1RPX0VNUFRZKSB7CiAgICAgICAgICAgICR0aGlzLT5fY29udmVydE51bGxBcnJheVZhbHVlc1RvRW1wdHkoJGFycik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBmcmVlUmVzdWx0KCkKCiAgICAvKioKICAgICAqIERlbGV0ZXMgdGhlIHJlc3VsdCBzZXQgYW5kIGZyZWVzIHRoZSBtZW1vcnkgb2NjdXBpZWQgYnkgdGhlIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6OmZyZWUoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0UgaWYgJHJlc3VsdCBpcyBpbnZhbGlkCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6OmZyZWUoKQogICAgICovCiAgICBmdW5jdGlvbiBmcmVlUmVzdWx0KCRyZXN1bHQpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzX3Jlc291cmNlKCRyZXN1bHQpID8gbXlzcWxfZnJlZV9yZXN1bHQoJHJlc3VsdCkgOiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Db2xzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6bnVtQ29scygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpudW1Db2xzKCkKICAgICAqLwogICAgZnVuY3Rpb24gbnVtQ29scygkcmVzdWx0KQogICAgewogICAgICAgICRjb2xzID0gQG15c3FsX251bV9maWVsZHMoJHJlc3VsdCk7CiAgICAgICAgaWYgKCEkY29scykgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvbHM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtUm93cygpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6Om51bVJvd3MoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6bnVtUm93cygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG51bVJvd3MoJHJlc3VsdCkKICAgIHsKICAgICAgICAkcm93cyA9IEBteXNxbF9udW1fcm93cygkcmVzdWx0KTsKICAgICAgICBpZiAoJHJvd3MgPT09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5teXNxbFJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyb3dzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGF1dG9Db21taXQoKQoKICAgIC8qKgogICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhdXRvbWF0aWMgY29tbWl0cwogICAgICoKICAgICAqIEBwYXJhbSBib29sICRvbm9mZiAgdHJ1ZSB0dXJucyBpdCBvbiwgZmFsc2UgdHVybnMgaXQgb2ZmCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBpZiB0aGUgZHJpdmVyCiAgICAgKiAgICAgICAgICAgICAgIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBhdXRvQ29tbWl0KCRvbm9mZiA9IGZhbHNlKQogICAgewogICAgICAgIC8vIFhYWCBpZiAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA+IDAsIHdlIHNob3VsZCBwcm9iYWJseQogICAgICAgIC8vIGlzc3VlIGEgd2FybmluZyBoZXJlLgogICAgICAgICR0aGlzLT5hdXRvY29tbWl0ID0gJG9ub2ZmID8gdHJ1ZSA6IGZhbHNlOwogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb21taXQoKQoKICAgIC8qKgogICAgICogQ29tbWl0cyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29tbWl0KCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+X2RiKSB7CiAgICAgICAgICAgICAgICBpZiAoIUBteXNxbF9zZWxlY3RfZGIoJHRoaXMtPl9kYiwgJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5teXNxbFJhaXNlRXJyb3IoREJfRVJST1JfTk9EQlNFTEVDVEVEKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzdWx0ID0gQG15c3FsX3F1ZXJ5KCdDT01NSVQnLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICRyZXN1bHQgPSBAbXlzcWxfcXVlcnkoJ1NFVCBBVVRPQ09NTUlUPTEnLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID0gMDsKICAgICAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsUmFpc2VFcnJvcigpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyByb2xsYmFjaygpCgogICAgLyoqCiAgICAgKiBSZXZlcnRzIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiByb2xsYmFjaygpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID4gMCkgewogICAgICAgICAgICBpZiAoJHRoaXMtPl9kYikgewogICAgICAgICAgICAgICAgaWYgKCFAbXlzcWxfc2VsZWN0X2RiKCR0aGlzLT5fZGIsICR0aGlzLT5jb25uZWN0aW9uKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxSYWlzZUVycm9yKERCX0VSUk9SX05PREJTRUxFQ1RFRCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHJlc3VsdCA9IEBteXNxbF9xdWVyeSgnUk9MTEJBQ0snLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICRyZXN1bHQgPSBAbXlzcWxfcXVlcnkoJ1NFVCBBVVRPQ09NTUlUPTEnLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID0gMDsKICAgICAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsUmFpc2VFcnJvcigpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBhZmZlY3RlZFJvd3MoKQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB0aGUgbnVtYmVyIG9mIHJvd3MgYWZmZWN0ZWQgYnkgYSBkYXRhIG1hbml1cGxhdGlvbiBxdWVyeQogICAgICoKICAgICAqIDAgaXMgcmV0dXJuZWQgZm9yIHF1ZXJpZXMgdGhhdCBkb24ndCBtYW5pcHVsYXRlIGRhdGEuCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2Ygcm93cy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFmZmVjdGVkUm93cygpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5fbGFzdF9xdWVyeV9tYW5pcCkgewogICAgICAgICAgICByZXR1cm4gQG15c3FsX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dElkKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5leHQgZnJlZSBpZCBpbiBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZQogICAgICogQHBhcmFtIGJvb2xlYW4gJG9uZGVtYW5kICB3aGVuIHRydWUsIHRoZSBzZXFlbmNlIGlzIGF1dG9tYXRpY2FsbHkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG5leHQgaWQgbnVtYmVyIGluIHRoZSBzZXF1ZW5jZS4KICAgICAqICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6bmV4dElEKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX215c3FsOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9teXNxbDo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dElkKCRzZXFfbmFtZSwgJG9uZGVtYW5kID0gdHJ1ZSkKICAgIHsKICAgICAgICAkc2VxbmFtZSA9ICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKTsKICAgICAgICBkbyB7CiAgICAgICAgICAgICRyZXBlYXQgPSAwOwogICAgICAgICAgICAkdGhpcy0+cHVzaEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwogICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPnF1ZXJ5KCJVUERBVEUgJHtzZXFuYW1lfSAiLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTRVQgaWQ9TEFTVF9JTlNFUlRfSUQoaWQrMSknKTsKICAgICAgICAgICAgJHRoaXMtPnBvcEVycm9ySGFuZGxpbmcoKTsKICAgICAgICAgICAgaWYgKCRyZXN1bHQgPT09IERCX09LKSB7CiAgICAgICAgICAgICAgICAvLyBDT01NT04gQ0FTRQogICAgICAgICAgICAgICAgJGlkID0gQG15c3FsX2luc2VydF9pZCgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICAgICBpZiAoJGlkICE9IDApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGlkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gRU1QVFkgU0VRIFRBQkxFCiAgICAgICAgICAgICAgICAvLyBTZXF1ZW5jZSB0YWJsZSBtdXN0IGJlIGVtcHR5IGZvciBzb21lIHJlYXNvbiwgc28gZmlsbAogICAgICAgICAgICAgICAgLy8gaXQgYW5kIHJldHVybiAxIGFuZCBvYnRhaW4gYSB1c2VyLWxldmVsIGxvY2sKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Z2V0T25lKCJTRUxFQ1QgR0VUX0xPQ0soJyR7c2VxbmFtZX1fbG9jaycsMTApIik7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoJHJlc3VsdCA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gRmFpbGVkIHRvIGdldCB0aGUgbG9jawogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxSYWlzZUVycm9yKERCX0VSUk9SX05PVF9MT0NLRUQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIGFkZCB0aGUgZGVmYXVsdCB2YWx1ZQogICAgICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5xdWVyeSgiUkVQTEFDRSBJTlRPICR7c2VxbmFtZX0gKGlkKSBWQUxVRVMgKDApIik7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gUmVsZWFzZSB0aGUgbG9jawogICAgICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5nZXRPbmUoJ1NFTEVDVCBSRUxFQVNFX0xPQ0soJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiJyR7c2VxbmFtZX1fbG9jaycpIik7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAvLyBXZSBrbm93IHdoYXQgdGhlIHJlc3VsdCB3aWxsIGJlLCBzbyBubyBuZWVkIHRvIHRyeSBhZ2FpbgogICAgICAgICAgICAgICAgcmV0dXJuIDE7CgogICAgICAgICAgICB9IGVsc2VpZiAoJG9uZGVtYW5kICYmIERCOjppc0Vycm9yKCRyZXN1bHQpICYmCiAgICAgICAgICAgICAgICAkcmVzdWx0LT5nZXRDb2RlKCkgPT0gREJfRVJST1JfTk9TVUNIVEFCTEUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIE9OREVNQU5EIFRBQkxFIENSRUFUSU9OCiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNyZWF0ZVNlcXVlbmNlKCRzZXFfbmFtZSk7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRyZXBlYXQgPSAxOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfSBlbHNlaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpICYmCiAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0LT5nZXRDb2RlKCkgPT0gREJfRVJST1JfQUxSRUFEWV9FWElTVFMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIEJBQ0tXQVJEUyBDT01QQVQKICAgICAgICAgICAgICAgIC8vIHNlZSBfQkNzZXF1ZW5jZSgpIGNvbW1lbnQKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+X0JDc2VxdWVuY2UoJHNlcW5hbWUpOwogICAgICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHJlcGVhdCA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgkcmVwZWF0KTsKCiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNyZWF0ZVNlcXVlbmNlKCkKCiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9teXNxbDo6bmV4dElEKCksIERCX215c3FsOjpkcm9wU2VxdWVuY2UoKQogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGVTZXF1ZW5jZSgkc2VxX25hbWUpCiAgICB7CiAgICAgICAgJHNlcW5hbWUgPSAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSk7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5xdWVyeSgnQ1JFQVRFIFRBQkxFICcgLiAkc2VxbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnIChpZCBJTlRFR0VSIFVOU0lHTkVEIEFVVE9fSU5DUkVNRU5UIE5PVCBOVUxMLCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyBQUklNQVJZIEtFWShpZCkpJyk7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXMpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzOwogICAgICAgIH0KICAgICAgICAvLyBpbnNlcnQgeWllbGRzIHZhbHVlIDEsIG5leHRJZCBjYWxsIHdpbGwgZ2VuZXJhdGUgSUQgMgogICAgICAgICRyZXMgPSAkdGhpcy0+cXVlcnkoIklOU0VSVCBJTlRPICR7c2VxbmFtZX0gKGlkKSBWQUxVRVMgKDApIik7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXMpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzOwogICAgICAgIH0KICAgICAgICAvLyBzbyByZXNldCB0byB6ZXJvCiAgICAgICAgcmV0dXJuICR0aGlzLT5xdWVyeSgiVVBEQVRFICR7c2VxbmFtZX0gU0VUIGlkID0gMCIpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRyb3BTZXF1ZW5jZSgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIGEgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgc2VxdWVuY2UgdG8gYmUgZGVsZXRlZAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6ZHJvcFNlcXVlbmNlKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX215c3FsOjpuZXh0SUQoKSwgREJfbXlzcWw6OmNyZWF0ZVNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZHJvcFNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCdEUk9QIFRBQkxFICcgLiAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9CQ3NlcXVlbmNlKCkKCiAgICAvKioKICAgICAqIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIHNlcXVlbmNlIGVtdWxhdGlvbiBpbXBsZW1lbnRhdGlvbgogICAgICogKGNsZWFuIHVwIHRoZSBkdXBlcykKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFuYW1lICB0aGUgc2VxdWVuY2UgbmFtZSB0byBjbGVhbiB1cAogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgdHJ1ZSBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgZnVuY3Rpb24gX0JDc2VxdWVuY2UoJHNlcW5hbWUpCiAgICB7CiAgICAgICAgLy8gT2J0YWluIGEgdXNlci1sZXZlbCBsb2NrLi4uIHRoaXMgd2lsbCByZWxlYXNlIGFueSBwcmV2aW91cwogICAgICAgIC8vIGFwcGxpY2F0aW9uIGxvY2tzLCBidXQgdW5saWtlIExPQ0sgVEFCTEVTLCBpdCBkb2VzIG5vdCBhYm9ydAogICAgICAgIC8vIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGFuZCBpcyBtdWNoIGxlc3MgZnJlcXVlbnRseSB1c2VkLgogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Z2V0T25lKCJTRUxFQ1QgR0VUX0xPQ0soJyR7c2VxbmFtZX1fbG9jaycsMTApIik7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0KICAgICAgICBpZiAoJHJlc3VsdCA9PSAwKSB7CiAgICAgICAgICAgIC8vIEZhaWxlZCB0byBnZXQgdGhlIGxvY2ssIGNhbid0IGRvIHRoZSBjb252ZXJzaW9uLCBiYWlsCiAgICAgICAgICAgIC8vIHdpdGggYSBEQl9FUlJPUl9OT1RfTE9DS0VEIGVycm9yCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxSYWlzZUVycm9yKERCX0VSUk9SX05PVF9MT0NLRUQpOwogICAgICAgIH0KCiAgICAgICAgJGhpZ2hlc3RfaWQgPSAkdGhpcy0+Z2V0T25lKCJTRUxFQ1QgTUFYKGlkKSBGUk9NICR7c2VxbmFtZX0iKTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJGhpZ2hlc3RfaWQpKSB7CiAgICAgICAgICAgIHJldHVybiAkaGlnaGVzdF9pZDsKICAgICAgICB9CiAgICAgICAgLy8gVGhpcyBzaG91bGQga2lsbCBhbGwgcm93cyBleGNlcHQgdGhlIGhpZ2hlc3QKICAgICAgICAvLyBXZSBzaG91bGQgcHJvYmFibHkgZG8gc29tZXRoaW5nIGlmICRoaWdoZXN0X2lkIGlzbid0CiAgICAgICAgLy8gbnVtZXJpYywgYnV0IEknbSBhdCBhIGxvc3MgYXMgaG93IHRvIGhhbmRsZSB0aGF0Li4uCiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5xdWVyeSgnREVMRVRFIEZST00gJyAuICRzZXFuYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICIgV0hFUkUgaWQgPD4gJGhpZ2hlc3RfaWQiKTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICAgICAgfQoKICAgICAgICAvLyBJZiBhbm90aGVyIHRocmVhZCBoYXMgYmVlbiB3YWl0aW5nIGZvciB0aGlzIGxvY2ssCiAgICAgICAgLy8gaXQgd2lsbCBnbyB0aHJ1IHRoZSBhYm92ZSBwcm9jZWR1cmUsIGJ1dCB3aWxsIGhhdmUgbm8KICAgICAgICAvLyByZWFsIGVmZmVjdAogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Z2V0T25lKCJTRUxFQ1QgUkVMRUFTRV9MT0NLKCcke3NlcW5hbWV9X2xvY2snKSIpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcXVvdGVJZGVudGlmaWVyKCkKCiAgICAvKioKICAgICAqIFF1b3RlcyBhIHN0cmluZyBzbyBpdCBjYW4gYmUgc2FmZWx5IHVzZWQgYXMgYSB0YWJsZSBvciBjb2x1bW4gbmFtZQogICAgICogKFdBUk5JTkc6IHVzaW5nIG5hbWVzIHRoYXQgcmVxdWlyZSB0aGlzIGlzIGEgUkVBTExZIEJBRCBJREVBKQogICAgICoKICAgICAqIFdBUk5JTkc6ICBPbGRlciB2ZXJzaW9ucyBvZiBNeVNRTCBjYW4ndCBoYW5kbGUgdGhlIGJhY2t0aWNrCiAgICAgKiBjaGFyYWN0ZXIgKDxrYmQ+YDwva2JkPikgaW4gdGFibGUgb3IgY29sdW1uIG5hbWVzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAgaWRlbnRpZmllciBuYW1lIHRvIGJlIHF1b3RlZAogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICBxdW90ZWQgaWRlbnRpZmllciBzdHJpbmcKICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6cXVvdGVJZGVudGlmaWVyKCkKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS42LjAKICAgICAqLwogICAgZnVuY3Rpb24gcXVvdGVJZGVudGlmaWVyKCRzdHIpCiAgICB7CiAgICAgICAgcmV0dXJuICdgJyAuIHN0cl9yZXBsYWNlKCdgJywgJ2BgJywgJHN0cikgLiAnYCc7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcXVvdGUoKQoKICAgIC8qKgogICAgICogQGRlcHJlY2F0ZWQgIERlcHJlY2F0ZWQgaW4gcmVsZWFzZSAxLjYuMAogICAgICovCiAgICBmdW5jdGlvbiBxdW90ZSgkc3RyKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cXVvdGVTbWFydCgkc3RyKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlc2NhcGVTaW1wbGUoKQoKICAgIC8qKgogICAgICogRXNjYXBlcyBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgREJNUydzIHN0YW5kYXJkcwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAgdGhlIHN0cmluZyB0byBiZSBlc2NhcGVkCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBlc2NhcGVkIHN0cmluZwogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZVNtYXJ0KCkKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS42LjAKICAgICAqLwogICAgZnVuY3Rpb24gZXNjYXBlU2ltcGxlKCRzdHIpCiAgICB7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnbXlzcWxfcmVhbF9lc2NhcGVfc3RyaW5nJykpIHsKICAgICAgICAgICAgcmV0dXJuIEBteXNxbF9yZWFsX2VzY2FwZV9zdHJpbmcoJHN0ciwgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBAbXlzcWxfZXNjYXBlX3N0cmluZygkc3RyKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbW9kaWZ5UXVlcnkoKQoKICAgIC8qKgogICAgICogQ2hhbmdlcyBhIHF1ZXJ5IHN0cmluZyBmb3IgdmFyaW91cyBEQk1TIHNwZWNpZmljIHJlYXNvbnMKICAgICAqCiAgICAgKiBUaGlzIGxpdHRsZSBoYWNrIGxldHMgeW91IGtub3cgaG93IG1hbnkgcm93cyB3ZXJlIGRlbGV0ZWQKICAgICAqIHdoZW4gcnVubmluZyBhICJERUxFVEUgRlJPTSB0YWJsZSIgcXVlcnkuICBPbmx5IGltcGxlbWVudGVkCiAgICAgKiBpZiB0aGUgREJfUE9SVEFCSUxJVFlfREVMRVRFX0NPVU5UIHBvcnRhYmlsaXR5IG9wdGlvbiBpcyBvbi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSAgdGhlIHF1ZXJ5IHN0cmluZyB0byBtb2RpZnkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIG1vZGlmaWVkIHF1ZXJ5IHN0cmluZwogICAgICoKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6c2V0T3B0aW9uKCkKICAgICAqLwogICAgZnVuY3Rpb24gbW9kaWZ5UXVlcnkoJHF1ZXJ5KQogICAgewogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX0RFTEVURV9DT1VOVCkgewogICAgICAgICAgICAvLyAiREVMRVRFIEZST00gdGFibGUiIGdpdmVzIDAgYWZmZWN0ZWQgcm93cyBpbiBNeVNRTC4KICAgICAgICAgICAgLy8gVGhpcyBsaXR0bGUgaGFjayBsZXRzIHlvdSBrbm93IGhvdyBtYW55IHJvd3Mgd2VyZSBkZWxldGVkLgogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15ccypERUxFVEVccytGUk9NXHMrKFxTKylccyokL2knLCAkcXVlcnkpKSB7CiAgICAgICAgICAgICAgICAkcXVlcnkgPSBwcmVnX3JlcGxhY2UoJy9eXHMqREVMRVRFXHMrRlJPTVxzKyhcUyspXHMqJC8nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdERUxFVEUgRlJPTSBcMSBXSEVSRSAxPTEnLCAkcXVlcnkpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcXVlcnk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbW9kaWZ5TGltaXRRdWVyeSgpCgogICAgLyoqCiAgICAgKiBBZGRzIExJTUlUIGNsYXVzZXMgdG8gYSBxdWVyeSBzdHJpbmcgYWNjb3JkaW5nIHRvIGN1cnJlbnQgREJNUyBzdGFuZGFyZHMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSAgIHRoZSBxdWVyeSB0byBtb2RpZnkKICAgICAqIEBwYXJhbSBpbnQgICAgJGZyb20gICAgdGhlIHJvdyB0byBzdGFydCB0byBmZXRjaGluZyAoMCA9IHRoZSBmaXJzdCByb3cpCiAgICAgKiBAcGFyYW0gaW50ICAgICRjb3VudCAgIHRoZSBudW1iZXJzIG9mIHJvd3MgdG8gZmV0Y2gKICAgICAqIEBwYXJhbSBtaXhlZCAgJHBhcmFtcyAgYXJyYXksIHN0cmluZyBvciBudW1lcmljIGRhdGEgdG8gYmUgdXNlZCBpbgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aW9uIG9mIHRoZSBzdGF0ZW1lbnQuICBRdWFudGl0eSBvZiBpdGVtcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkIG11c3QgbWF0Y2ggcXVhbnRpdHkgb2YgcGxhY2Vob2xkZXJzIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogIG1lYW5pbmcgMSBwbGFjZWhvbGRlciBmb3Igbm9uLWFycmF5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIG9yIDEgcGxhY2Vob2xkZXIgcGVyIGFycmF5IGVsZW1lbnQuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBxdWVyeSBzdHJpbmcgd2l0aCBMSU1JVCBjbGF1c2VzIGFkZGVkCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gbW9kaWZ5TGltaXRRdWVyeSgkcXVlcnksICRmcm9tLCAkY291bnQsICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgIGlmIChEQjo6aXNNYW5pcCgkcXVlcnkpIHx8ICR0aGlzLT5fbmV4dF9xdWVyeV9tYW5pcCkgewogICAgICAgICAgICByZXR1cm4gJHF1ZXJ5IC4gIiBMSU1JVCAkY291bnQiOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiAkcXVlcnkgLiAiIExJTUlUICRmcm9tLCAkY291bnQiOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBteXNxbFJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYSBEQl9FcnJvciBvYmplY3QgcmVnYXJkaW5nIHRoZSBjdXJyZW50IHByb2JsZW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRlcnJubyAgaWYgdGhlIGVycm9yIGlzIGJlaW5nIG1hbnVhbGx5IHJhaXNlZCBwYXNzIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgREJfRVJST1IqIGNvbnN0YW50IGhlcmUuICBJZiB0aGlzIGlzbid0IHBhc3NlZAogICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGUgREJNUy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgdGhlIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpyYWlzZUVycm9yKCksCiAgICAgKiAgICAgIERCX215c3FsOjplcnJvck5hdGl2ZSgpLCBEQl9jb21tb246OmVycm9yQ29kZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG15c3FsUmFpc2VFcnJvcigkZXJybm8gPSBudWxsKQogICAgewogICAgICAgIGlmICgkZXJybm8gPT09IG51bGwpIHsKICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfRVJST1JTKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3Jjb2RlX21hcFsxMDIyXSA9IERCX0VSUk9SX0NPTlNUUkFJTlQ7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3Jjb2RlX21hcFsxMDQ4XSA9IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEw7CiAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3Jjb2RlX21hcFsxMDYyXSA9IERCX0VSUk9SX0NPTlNUUkFJTlQ7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBEb2luZyB0aGlzIGluIGNhc2UgbW9kZSBjaGFuZ2VzIGR1cmluZyBydW50aW1lLgogICAgICAgICAgICAgICAgJHRoaXMtPmVycm9yY29kZV9tYXBbMTAyMl0gPSBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUzsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvcmNvZGVfbWFwWzEwNDhdID0gREJfRVJST1JfQ09OU1RSQUlOVDsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvcmNvZGVfbWFwWzEwNjJdID0gREJfRVJST1JfQUxSRUFEWV9FWElTVFM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGVycm5vID0gJHRoaXMtPmVycm9yQ29kZShteXNxbF9lcnJubygkdGhpcy0+Y29ubmVjdGlvbikpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJGVycm5vLCBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbXlzcWxfZXJybm8oJHRoaXMtPmNvbm5lY3Rpb24pIC4gJyAqKiAnIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQG15c3FsX2Vycm9yKCR0aGlzLT5jb25uZWN0aW9uKSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXJyb3JOYXRpdmUoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgREJNUycgbmF0aXZlIGVycm9yIGNvZGUgcHJvZHVjZWQgYnkgdGhlIGxhc3QgcXVlcnkKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIERCTVMnIGVycm9yIGNvZGUKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JOYXRpdmUoKQogICAgewogICAgICAgIHJldHVybiBAbXlzcWxfZXJybm8oJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRhYmxlSW5mbygpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgdGFibGUgb3IgYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdHxzdHJpbmcgICRyZXN1bHQgIERCX3Jlc3VsdCBvYmplY3QgZnJvbSBhIHF1ZXJ5IG9yIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgYSB0YWJsZS4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgdGhpcyBhbHNvIGFjY2VwdHMgYSBxdWVyeSByZXN1bHQKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgaWRlbnRpZmllciwgdGhpcyBiZWhhdmlvciBpcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICRtb2RlICAgIGEgdmFsaWQgdGFibGVJbmZvIG1vZGUKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHRoZSBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQuCiAgICAgKiAgICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6dGFibGVJbmZvKCkKICAgICAqLwogICAgZnVuY3Rpb24gdGFibGVJbmZvKCRyZXN1bHQsICRtb2RlID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoaXNfc3RyaW5nKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgdGFibGUgbmFtZS4KICAgICAgICAgICAgICogQ3JlYXRlIGEgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSBAbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gJHJlc3VsdCBMSU1JVCAwIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSB0cnVlOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkcmVzdWx0LT5yZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgcmVzdWx0IG9iamVjdC4KICAgICAgICAgICAgICogRXh0cmFjdCB0aGUgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSAkcmVzdWx0LT5yZXN1bHQ7CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gZmFsc2U7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICogQ29weSBpdC4KICAgICAgICAgICAgICogRGVwcmVjYXRlZC4gIEhlcmUgZm9yIGNvbXBhdGliaWxpdHkgb25seS4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQ7CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICBpZiAoIWlzX3Jlc291cmNlKCRpZCkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5teXNxbFJhaXNlRXJyb3IoREJfRVJST1JfTkVFRF9NT1JFX0RBVEEpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydG9sb3dlcic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ2YWwnOwogICAgICAgIH0KCiAgICAgICAgJGNvdW50ID0gQG15c3FsX251bV9maWVsZHMoJGlkKTsKICAgICAgICAkcmVzICAgPSBhcnJheSgpOwoKICAgICAgICBpZiAoJG1vZGUpIHsKICAgICAgICAgICAgJHJlc1snbnVtX2ZpZWxkcyddID0gJGNvdW50OwogICAgICAgIH0KCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7CiAgICAgICAgICAgICRyZXNbJGldID0gYXJyYXkoCiAgICAgICAgICAgICAgICAndGFibGUnID0+ICRjYXNlX2Z1bmMoQG15c3FsX2ZpZWxkX3RhYmxlKCRpZCwgJGkpKSwKICAgICAgICAgICAgICAgICduYW1lJyAgPT4gJGNhc2VfZnVuYyhAbXlzcWxfZmllbGRfbmFtZSgkaWQsICRpKSksCiAgICAgICAgICAgICAgICAndHlwZScgID0+IEBteXNxbF9maWVsZF90eXBlKCRpZCwgJGkpLAogICAgICAgICAgICAgICAgJ2xlbicgICA9PiBAbXlzcWxfZmllbGRfbGVuKCRpZCwgJGkpLAogICAgICAgICAgICAgICAgJ2ZsYWdzJyA9PiBAbXlzcWxfZmllbGRfZmxhZ3MoJGlkLCAkaSksCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkbW9kZSAmIERCX1RBQkxFSU5GT19PUkRFUikgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXInXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkbW9kZSAmIERCX1RBQkxFSU5GT19PUkRFUlRBQkxFKSB7CiAgICAgICAgICAgICAgICAkcmVzWydvcmRlcnRhYmxlJ11bJHJlc1skaV1bJ3RhYmxlJ11dWyRyZXNbJGldWyduYW1lJ11dID0gJGk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGZyZWUgdGhlIHJlc3VsdCBvbmx5IGlmIHdlIHdlcmUgY2FsbGVkIG9uIGEgdGFibGUKICAgICAgICBpZiAoJGdvdF9zdHJpbmcpIHsKICAgICAgICAgICAgQG15c3FsX2ZyZWVfcmVzdWx0KCRpZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldFNwZWNpYWxRdWVyeSgpCgogICAgLyoqCiAgICAgKiBPYnRhaW5zIHRoZSBxdWVyeSBzdHJpbmcgbmVlZGVkIGZvciBsaXN0aW5nIGEgZ2l2ZW4gdHlwZSBvZiBvYmplY3RzCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSAgdGhlIGtpbmQgb2Ygb2JqZWN0cyB5b3Ugd2FudCB0byByZXRyaWV2ZQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZyBvciBudWxsIGlmIHRoZSBkcml2ZXIgZG9lc24ndAogICAgICogICAgICAgICAgICAgICAgICBzdXBwb3J0IHRoZSBvYmplY3QgdHlwZSByZXF1ZXN0ZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHNlZSBEQl9jb21tb246OmdldExpc3RPZigpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFNwZWNpYWxRdWVyeSgkdHlwZSkKICAgIHsKICAgICAgICBzd2l0Y2ggKCR0eXBlKSB7CiAgICAgICAgICAgIGNhc2UgJ3RhYmxlcyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1NIT1cgVEFCTEVTJzsKICAgICAgICAgICAgY2FzZSAndXNlcnMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1QgRElTVElOQ1QgVXNlciBGUk9NIG15c3FsLnVzZXInOwogICAgICAgICAgICBjYXNlICdkYXRhYmFzZXMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTSE9XIERBVEFCQVNFUyc7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19Cgp9CgovKgogKiBMb2NhbCB2YXJpYWJsZXM6CiAqIHRhYi13aWR0aDogNAogKiBjLWJhc2ljLW9mZnNldDogNAogKiBFbmQ6CiAqLwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/mysqli.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBteXNxbGkgZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIE15U1FMIGRhdGFiYXNlcwogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgQ1ZTOiAkSWQ6IG15c3FsaS5waHAsdiAxLjc5IDIwMDcvMDMvMjAgMTA6MjI6MDQgYWhhcnZleSBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogT2J0YWluIHRoZSBEQl9jb21tb24gY2xhc3Mgc28gaXQgY2FuIGJlIGV4dGVuZGVkIGZyb20KICovCnJlcXVpcmVfb25jZSAnREIvY29tbW9uLnBocCc7CgovKioKICogVGhlIG1ldGhvZHMgUEVBUiBEQiB1c2VzIHRvIGludGVyYWN0IHdpdGggUEhQJ3MgbXlzcWxpIGV4dGVuc2lvbgogKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBNeVNRTCBkYXRhYmFzZXMKICoKICogVGhpcyBpcyBmb3IgTXlTUUwgdmVyc2lvbnMgNC4xIGFuZCBhYm92ZS4gIFJlcXVpcmVzIFBIUCA1LgogKgogKiBOb3RlIHRoYXQgcGVyc2lzdGVudCBjb25uZWN0aW9ucyBubyBsb25nZXIgZXhpc3QuCiAqCiAqIFRoZXNlIG1ldGhvZHMgb3ZlcmxvYWQgdGhlIG9uZXMgZGVjbGFyZWQgaW4gREJfY29tbW9uLgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAxLjcuMTIKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqIEBzaW5jZSAgICAgIENsYXNzIGZ1bmN0aW9uYWwgc2luY2UgUmVsZWFzZSAxLjYuMwogKi8KY2xhc3MgREJfbXlzcWxpIGV4dGVuZHMgREJfY29tbW9uCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgLyoqCiAgICAgKiBUaGUgREIgZHJpdmVyIHR5cGUgKG15c3FsLCBvY2k4LCBvZGJjLCBldGMuKQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRwaHB0eXBlID0gJ215c3FsaSc7CgogICAgLyoqCiAgICAgKiBUaGUgZGF0YWJhc2Ugc3ludGF4IHZhcmlhbnQgdG8gYmUgdXNlZCAoZGIyLCBhY2Nlc3MsIGV0Yy4pLCBpZiBhbnkKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkZGJzeW50YXggPSAnbXlzcWxpJzsKCiAgICAvKioKICAgICAqIFRoZSBjYXBhYmlsaXRpZXMgb2YgdGhpcyBEQiBpbXBsZW1lbnRhdGlvbgogICAgICoKICAgICAqIFRoZSAnbmV3X2xpbmsnIGVsZW1lbnQgY29udGFpbnMgdGhlIFBIUCB2ZXJzaW9uIHRoYXQgZmlyc3QgcHJvdmlkZWQKICAgICAqIG5ld19saW5rIHN1cHBvcnQgZm9yIHRoaXMgREJNUy4gIENvbnRhaW5zIGZhbHNlIGlmIGl0J3MgdW5zdXBwb3J0ZWQuCiAgICAgKgogICAgICogTWVhbmluZyBvZiB0aGUgJ2xpbWl0JyBlbGVtZW50OgogICAgICogICArICdlbXVsYXRlJyA9IGVtdWxhdGUgd2l0aCBmZXRjaCByb3cgYnkgbnVtYmVyCiAgICAgKiAgICsgJ2FsdGVyJyAgID0gYWx0ZXIgdGhlIHF1ZXJ5CiAgICAgKiAgICsgZmFsc2UgICAgID0gc2tpcCByb3dzCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGZlYXR1cmVzID0gYXJyYXkoCiAgICAgICAgJ2xpbWl0JyAgICAgICAgID0+ICdhbHRlcicsCiAgICAgICAgJ25ld19saW5rJyAgICAgID0+IGZhbHNlLAogICAgICAgICdudW1yb3dzJyAgICAgICA9PiB0cnVlLAogICAgICAgICdwY29ubmVjdCcgICAgICA9PiBmYWxzZSwKICAgICAgICAncHJlcGFyZScgICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ3NzbCcgICAgICAgICAgID0+IHRydWUsCiAgICAgICAgJ3RyYW5zYWN0aW9ucycgID0+IHRydWUsCiAgICApOwoKICAgIC8qKgogICAgICogQSBtYXBwaW5nIG9mIG5hdGl2ZSBlcnJvciBjb2RlcyB0byBEQiBlcnJvciBjb2RlcwogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGVycm9yY29kZV9tYXAgPSBhcnJheSgKICAgICAgICAxMDA0ID0+IERCX0VSUk9SX0NBTk5PVF9DUkVBVEUsCiAgICAgICAgMTAwNSA9PiBEQl9FUlJPUl9DQU5OT1RfQ1JFQVRFLAogICAgICAgIDEwMDYgPT4gREJfRVJST1JfQ0FOTk9UX0NSRUFURSwKICAgICAgICAxMDA3ID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgIDEwMDggPT4gREJfRVJST1JfQ0FOTk9UX0RST1AsCiAgICAgICAgMTAyMiA9PiBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywKICAgICAgICAxMDQ0ID0+IERCX0VSUk9SX0FDQ0VTU19WSU9MQVRJT04sCiAgICAgICAgMTA0NiA9PiBEQl9FUlJPUl9OT0RCU0VMRUNURUQsCiAgICAgICAgMTA0OCA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgIDEwNDkgPT4gREJfRVJST1JfTk9TVUNIREIsCiAgICAgICAgMTA1MCA9PiBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywKICAgICAgICAxMDUxID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgIDEwNTQgPT4gREJfRVJST1JfTk9TVUNIRklFTEQsCiAgICAgICAgMTA2MSA9PiBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywKICAgICAgICAxMDYyID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgIDEwNjQgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgIDEwOTEgPT4gREJfRVJST1JfTk9UX0ZPVU5ELAogICAgICAgIDExMDAgPT4gREJfRVJST1JfTk9UX0xPQ0tFRCwKICAgICAgICAxMTM2ID0+IERCX0VSUk9SX1ZBTFVFX0NPVU5UX09OX1JPVywKICAgICAgICAxMTQyID0+IERCX0VSUk9SX0FDQ0VTU19WSU9MQVRJT04sCiAgICAgICAgMTE0NiA9PiBEQl9FUlJPUl9OT1NVQ0hUQUJMRSwKICAgICAgICAxMjE2ID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgMTIxNyA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgIDEzNTYgPT4gREJfRVJST1JfRElWWkVSTywKICAgICAgICAxNDUxID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgMTQ1MiA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgKTsKCiAgICAvKioKICAgICAqIFRoZSByYXcgZGF0YWJhc2UgY29ubmVjdGlvbiBjcmVhdGVkIGJ5IFBIUAogICAgICogQHZhciByZXNvdXJjZQogICAgICovCiAgICB2YXIgJGNvbm5lY3Rpb247CgogICAgLyoqCiAgICAgKiBUaGUgRFNOIGluZm9ybWF0aW9uIGZvciBjb25uZWN0aW5nIHRvIGEgZGF0YWJhc2UKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRkc24gPSBhcnJheSgpOwoKCiAgICAvKioKICAgICAqIFNob3VsZCBkYXRhIG1hbmlwdWxhdGlvbiBxdWVyaWVzIGJlIGNvbW1pdHRlZCBhdXRvbWF0aWNhbGx5PwogICAgICogQHZhciBib29sCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICRhdXRvY29tbWl0ID0gdHJ1ZTsKCiAgICAvKioKICAgICAqIFRoZSBxdWFudGl0eSBvZiB0cmFuc2FjdGlvbnMgYmVndW4KICAgICAqCiAgICAgKiB7QGludGVybmFsICBXaGlsZSB0aGlzIGlzIHByaXZhdGUsIGl0IGNhbid0IGFjdHVhbGx5IGJlIGRlc2lnbmF0ZWQKICAgICAqIHByaXZhdGUgaW4gUEhQIDUgYmVjYXVzZSBpdCBpcyBkaXJlY3RseSBhY2Nlc3NlZCBpbiB0aGUgdGVzdCBzdWl0ZS59fQogICAgICoKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkdHJhbnNhY3Rpb25fb3Bjb3VudCA9IDA7CgogICAgLyoqCiAgICAgKiBUaGUgZGF0YWJhc2Ugc3BlY2lmaWVkIGluIHRoZSBEU04KICAgICAqCiAgICAgKiBJdCdzIGEgZml4IHRvIGFsbG93IGNhbGxzIHRvIGRpZmZlcmVudCBkYXRhYmFzZXMgaW4gdGhlIHNhbWUgc2NyaXB0LgogICAgICoKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICRfZGIgPSAnJzsKCiAgICAvKioKICAgICAqIEFycmF5IGZvciBjb252ZXJ0aW5nIE1ZU1FMSV8qX0ZMQUcgY29uc3RhbnRzIHRvIHRleHQgdmFsdWVzCiAgICAgKiBAdmFyICAgIGFycmF5CiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHNpbmNlICBQcm9wZXJ0eSBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjYuNQogICAgICovCiAgICB2YXIgJG15c3FsaV9mbGFncyA9IGFycmF5KAogICAgICAgIE1ZU1FMSV9OT1RfTlVMTF9GTEFHICAgICAgICA9PiAnbm90X251bGwnLAogICAgICAgIE1ZU1FMSV9QUklfS0VZX0ZMQUcgICAgICAgICA9PiAncHJpbWFyeV9rZXknLAogICAgICAgIE1ZU1FMSV9VTklRVUVfS0VZX0ZMQUcgICAgICA9PiAndW5pcXVlX2tleScsCiAgICAgICAgTVlTUUxJX01VTFRJUExFX0tFWV9GTEFHICAgID0+ICdtdWx0aXBsZV9rZXknLAogICAgICAgIE1ZU1FMSV9CTE9CX0ZMQUcgICAgICAgICAgICA9PiAnYmxvYicsCiAgICAgICAgTVlTUUxJX1VOU0lHTkVEX0ZMQUcgICAgICAgID0+ICd1bnNpZ25lZCcsCiAgICAgICAgTVlTUUxJX1pFUk9GSUxMX0ZMQUcgICAgICAgID0+ICd6ZXJvZmlsbCcsCiAgICAgICAgTVlTUUxJX0FVVE9fSU5DUkVNRU5UX0ZMQUcgID0+ICdhdXRvX2luY3JlbWVudCcsCiAgICAgICAgTVlTUUxJX1RJTUVTVEFNUF9GTEFHICAgICAgID0+ICd0aW1lc3RhbXAnLAogICAgICAgIE1ZU1FMSV9TRVRfRkxBRyAgICAgICAgICAgICA9PiAnc2V0JywKICAgICAgICAvLyBNWVNRTElfTlVNX0ZMQUcgICAgICAgICAgICAgPT4gJ251bWVyaWMnLCAgLy8gdW5uZWNlc3NhcnkKICAgICAgICAvLyBNWVNRTElfUEFSVF9LRVlfRkxBRyAgICAgICAgPT4gJ211bHRpcGxlX2tleScsICAvLyBkdXBsaWNhdHZpZQogICAgICAgIE1ZU1FMSV9HUk9VUF9GTEFHICAgICAgICAgICA9PiAnZ3JvdXBfYnknCiAgICApOwoKICAgIC8qKgogICAgICogQXJyYXkgZm9yIGNvbnZlcnRpbmcgTVlTUUxJX1RZUEVfKiBjb25zdGFudHMgdG8gdGV4dCB2YWx1ZXMKICAgICAqIEB2YXIgICAgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAc2luY2UgIFByb3BlcnR5IGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNi41CiAgICAgKi8KICAgIHZhciAkbXlzcWxpX3R5cGVzID0gYXJyYXkoCiAgICAgICAgTVlTUUxJX1RZUEVfREVDSU1BTCAgICAgPT4gJ2RlY2ltYWwnLAogICAgICAgIE1ZU1FMSV9UWVBFX1RJTlkgICAgICAgID0+ICd0aW55aW50JywKICAgICAgICBNWVNRTElfVFlQRV9TSE9SVCAgICAgICA9PiAnaW50JywKICAgICAgICBNWVNRTElfVFlQRV9MT05HICAgICAgICA9PiAnaW50JywKICAgICAgICBNWVNRTElfVFlQRV9GTE9BVCAgICAgICA9PiAnZmxvYXQnLAogICAgICAgIE1ZU1FMSV9UWVBFX0RPVUJMRSAgICAgID0+ICdkb3VibGUnLAogICAgICAgIC8vIE1ZU1FMSV9UWVBFX05VTEwgICAgICAgID0+ICdERUZBVUxUIE5VTEwnLCAgLy8gbGV0IGZsYWdzIGhhbmRsZSBpdAogICAgICAgIE1ZU1FMSV9UWVBFX1RJTUVTVEFNUCAgID0+ICd0aW1lc3RhbXAnLAogICAgICAgIE1ZU1FMSV9UWVBFX0xPTkdMT05HICAgID0+ICdiaWdpbnQnLAogICAgICAgIE1ZU1FMSV9UWVBFX0lOVDI0ICAgICAgID0+ICdtZWRpdW1pbnQnLAogICAgICAgIE1ZU1FMSV9UWVBFX0RBVEUgICAgICAgID0+ICdkYXRlJywKICAgICAgICBNWVNRTElfVFlQRV9USU1FICAgICAgICA9PiAndGltZScsCiAgICAgICAgTVlTUUxJX1RZUEVfREFURVRJTUUgICAgPT4gJ2RhdGV0aW1lJywKICAgICAgICBNWVNRTElfVFlQRV9ZRUFSICAgICAgICA9PiAneWVhcicsCiAgICAgICAgTVlTUUxJX1RZUEVfTkVXREFURSAgICAgPT4gJ2RhdGUnLAogICAgICAgIE1ZU1FMSV9UWVBFX0VOVU0gICAgICAgID0+ICdlbnVtJywKICAgICAgICBNWVNRTElfVFlQRV9TRVQgICAgICAgICA9PiAnc2V0JywKICAgICAgICBNWVNRTElfVFlQRV9USU5ZX0JMT0IgICA9PiAndGlueWJsb2InLAogICAgICAgIE1ZU1FMSV9UWVBFX01FRElVTV9CTE9CID0+ICdtZWRpdW1ibG9iJywKICAgICAgICBNWVNRTElfVFlQRV9MT05HX0JMT0IgICA9PiAnbG9uZ2Jsb2InLAogICAgICAgIE1ZU1FMSV9UWVBFX0JMT0IgICAgICAgID0+ICdibG9iJywKICAgICAgICBNWVNRTElfVFlQRV9WQVJfU1RSSU5HICA9PiAndmFyY2hhcicsCiAgICAgICAgTVlTUUxJX1RZUEVfU1RSSU5HICAgICAgPT4gJ2NoYXInLAogICAgICAgIE1ZU1FMSV9UWVBFX0dFT01FVFJZICAgID0+ICdnZW9tZXRyeScsCiAgICAgICAgLyogVGhlc2UgY29uc3RhbnRzIGFyZSBjb25kaXRpb25hbGx5IGNvbXBpbGVkIGluIGV4dC9teXNxbGksIHNvIHdlJ2xsCiAgICAgICAgICogZGVmaW5lIHRoZW0gYnkgbnVtYmVyIHJhdGhlciB0aGFuIGNvbnN0YW50LiAqLwogICAgICAgIDE2ICAgICAgICAgICAgICAgICAgICAgID0+ICdiaXQnLAogICAgICAgIDI0NiAgICAgICAgICAgICAgICAgICAgID0+ICdkZWNpbWFsJywKICAgICk7CgoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbnN0cnVjdG9yCgogICAgLyoqCiAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGNhbGxzIDxrYmQ+JHRoaXMtPkRCX2NvbW1vbigpPC9rYmQ+CiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIGZ1bmN0aW9uIERCX215c3FsaSgpCiAgICB7CiAgICAgICAgJHRoaXMtPkRCX2NvbW1vbigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLCBsb2cgaW4gYW5kIG9wZW4gdGhlIGRhdGFiYXNlCiAgICAgKgogICAgICogRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseS4gIFVzZSBEQjo6Y29ubmVjdCgpIGluc3RlYWQuCiAgICAgKgogICAgICogUEVBUiBEQidzIG15c3FsaSBkcml2ZXIgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBleHRyYSBEU04gb3B0aW9uczoKICAgICAqICAgKyBXaGVuIHRoZSAnc3NsJyAkb3B0aW9uIHBhc3NlZCB0byBEQjo6Y29ubmVjdCgpIGlzIHRydWU6CiAgICAgKiAgICAgKyBrZXkgICAgICBUaGUgcGF0aCB0byB0aGUga2V5IGZpbGUuCiAgICAgKiAgICAgKyBjZXJ0ICAgICBUaGUgcGF0aCB0byB0aGUgY2VydGlmaWNhdGUgZmlsZS4KICAgICAqICAgICArIGNhICAgICAgIFRoZSBwYXRoIHRvIHRoZSBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkgZmlsZS4KICAgICAqICAgICArIGNhcGF0aCAgIFRoZSBwYXRoIHRvIGEgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdHJ1c3RlZCBTU0wKICAgICAqICAgICAgICAgICAgICAgICBDQSBjZXJ0aWZpY2F0ZXMgaW4gcGVtIGZvcm1hdC4KICAgICAqICAgICArIGNpcGhlciAgIFRoZSBsaXN0IG9mIGFsbG93YWJsZSBjaXBoZXJzIGZvciBTU0wgZW5jcnlwdGlvbi4KICAgICAqCiAgICAgKiBFeGFtcGxlIG9mIGhvdyB0byBjb25uZWN0IHVzaW5nIFNTTDoKICAgICAqIDxjb2RlPgogICAgICogcmVxdWlyZV9vbmNlICdEQi5waHAnOwogICAgICogCiAgICAgKiAkZHNuID0gYXJyYXkoCiAgICAgKiAgICAgJ3BocHR5cGUnICA9PiAnbXlzcWxpJywKICAgICAqICAgICAndXNlcm5hbWUnID0+ICdzb21ldXNlcicsCiAgICAgKiAgICAgJ3Bhc3N3b3JkJyA9PiAnYXBhc3N3ZCcsCiAgICAgKiAgICAgJ2hvc3RzcGVjJyA9PiAnbG9jYWxob3N0JywKICAgICAqICAgICAnZGF0YWJhc2UnID0+ICd0aGVkYicsCiAgICAgKiAgICAgJ2tleScgICAgICA9PiAnY2xpZW50LWtleS5wZW0nLAogICAgICogICAgICdjZXJ0JyAgICAgPT4gJ2NsaWVudC1jZXJ0LnBlbScsCiAgICAgKiAgICAgJ2NhJyAgICAgICA9PiAnY2FjZXJ0LnBlbScsCiAgICAgKiAgICAgJ2NhcGF0aCcgICA9PiAnL3BhdGgvdG8vY2EvZGlyJywKICAgICAqICAgICAnY2lwaGVyJyAgID0+ICdBRVMnLAogICAgICogKTsKICAgICAqIAogICAgICogJG9wdGlvbnMgPSBhcnJheSgKICAgICAqICAgICAnc3NsJyA9PiB0cnVlLAogICAgICogKTsKICAgICAqIAogICAgICogJGRiID0mIERCOjpjb25uZWN0KCRkc24sICRvcHRpb25zKTsKICAgICAqIGlmIChQRUFSOjppc0Vycm9yKCRkYikpIHsKICAgICAqICAgICBkaWUoJGRiLT5nZXRNZXNzYWdlKCkpOwogICAgICogfQogICAgICogPC9jb2RlPgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkZHNuICAgICAgICAgdGhlIGRhdGEgc291cmNlIG5hbWUKICAgICAqIEBwYXJhbSBib29sICAkcGVyc2lzdGVudCAgc2hvdWxkIHRoZSBjb25uZWN0aW9uIGJlIHBlcnNpc3RlbnQ/CiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNvbm5lY3QoJGRzbiwgJHBlcnNpc3RlbnQgPSBmYWxzZSkKICAgIHsKICAgICAgICBpZiAoIVBFQVI6OmxvYWRFeHRlbnNpb24oJ215c3FsaScpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9FWFRFTlNJT05fTk9UX0ZPVU5EKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5kc24gPSAkZHNuOwogICAgICAgIGlmICgkZHNuWydkYnN5bnRheCddKSB7CiAgICAgICAgICAgICR0aGlzLT5kYnN5bnRheCA9ICRkc25bJ2Ric3ludGF4J107CiAgICAgICAgfQoKICAgICAgICAkaW5pID0gaW5pX2dldCgndHJhY2tfZXJyb3JzJyk7CiAgICAgICAgQGluaV9zZXQoJ3RyYWNrX2Vycm9ycycsIDEpOwogICAgICAgICRwaHBfZXJyb3Jtc2cgPSAnJzsKCiAgICAgICAgaWYgKCgoaW50KSAkdGhpcy0+Z2V0T3B0aW9uKCdzc2wnKSkgPT09IDEpIHsKICAgICAgICAgICAgJGluaXQgPSBteXNxbGlfaW5pdCgpOwogICAgICAgICAgICBteXNxbGlfc3NsX3NldCgKICAgICAgICAgICAgICAgICRpbml0LAogICAgICAgICAgICAgICAgZW1wdHkoJGRzblsna2V5J10pICAgID8gbnVsbCA6ICRkc25bJ2tleSddLAogICAgICAgICAgICAgICAgZW1wdHkoJGRzblsnY2VydCddKSAgID8gbnVsbCA6ICRkc25bJ2NlcnQnXSwKICAgICAgICAgICAgICAgIGVtcHR5KCRkc25bJ2NhJ10pICAgICA/IG51bGwgOiAkZHNuWydjYSddLAogICAgICAgICAgICAgICAgZW1wdHkoJGRzblsnY2FwYXRoJ10pID8gbnVsbCA6ICRkc25bJ2NhcGF0aCddLAogICAgICAgICAgICAgICAgZW1wdHkoJGRzblsnY2lwaGVyJ10pID8gbnVsbCA6ICRkc25bJ2NpcGhlciddCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkdGhpcy0+Y29ubmVjdGlvbiA9IEBteXNxbGlfcmVhbF9jb25uZWN0KAogICAgICAgICAgICAgICAgICAgICRpbml0LAogICAgICAgICAgICAgICAgICAgICRkc25bJ2hvc3RzcGVjJ10sCiAgICAgICAgICAgICAgICAgICAgJGRzblsndXNlcm5hbWUnXSwKICAgICAgICAgICAgICAgICAgICAkZHNuWydwYXNzd29yZCddLAogICAgICAgICAgICAgICAgICAgICRkc25bJ2RhdGFiYXNlJ10sCiAgICAgICAgICAgICAgICAgICAgJGRzblsncG9ydCddLAogICAgICAgICAgICAgICAgICAgICRkc25bJ3NvY2tldCddKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSAkaW5pdDsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQG15c3FsaV9jb25uZWN0KAogICAgICAgICAgICAgICAgJGRzblsnaG9zdHNwZWMnXSwKICAgICAgICAgICAgICAgICRkc25bJ3VzZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAkZHNuWydwYXNzd29yZCddLAogICAgICAgICAgICAgICAgJGRzblsnZGF0YWJhc2UnXSwKICAgICAgICAgICAgICAgICRkc25bJ3BvcnQnXSwKICAgICAgICAgICAgICAgICRkc25bJ3NvY2tldCddCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBAaW5pX3NldCgndHJhY2tfZXJyb3JzJywgJGluaSk7CgogICAgICAgIGlmICghJHRoaXMtPmNvbm5lY3Rpb24pIHsKICAgICAgICAgICAgaWYgKCgkZXJyID0gQG15c3FsaV9jb25uZWN0X2Vycm9yKCkpICE9ICcnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfQ09OTkVDVF9GQUlMRUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwaHBfZXJyb3Jtc2cpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJGRzblsnZGF0YWJhc2UnXSkgewogICAgICAgICAgICAkdGhpcy0+X2RiID0gJGRzblsnZGF0YWJhc2UnXTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBkaXNjb25uZWN0KCkKCiAgICAvKioKICAgICAqIERpc2Nvbm5lY3RzIGZyb20gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgVFJVRSBvbiBzdWNjZXNzLCBGQUxTRSBvbiBmYWlsdXJlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpc2Nvbm5lY3QoKQogICAgewogICAgICAgICRyZXQgPSBAbXlzcWxpX2Nsb3NlKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IG51bGw7CiAgICAgICAgcmV0dXJuICRyZXQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgc2ltcGxlUXVlcnkoKQoKICAgIC8qKgogICAgICogU2VuZHMgYSBxdWVyeSB0byB0aGUgZGF0YWJhc2Ugc2VydmVyCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgdGhlIFNRTCBxdWVyeSBzdHJpbmcKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICArIGEgUEhQIHJlc3VsdCByZXNyb3VjZSBmb3Igc3VjY2Vzc2Z1bCBTRUxFQ1QgcXVlcmllcwogICAgICogICAgICAgICAgICAgICAgKyB0aGUgREJfT0sgY29uc3RhbnQgZm9yIG90aGVyIHN1Y2Nlc3NmdWwgcXVlcmllcwogICAgICogICAgICAgICAgICAgICAgKyBhIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHNpbXBsZVF1ZXJ5KCRxdWVyeSkKICAgIHsKICAgICAgICAkaXNtYW5pcCA9ICR0aGlzLT5fY2hlY2tNYW5pcCgkcXVlcnkpOwogICAgICAgICR0aGlzLT5sYXN0X3F1ZXJ5ID0gJHF1ZXJ5OwogICAgICAgICRxdWVyeSA9ICR0aGlzLT5tb2RpZnlRdWVyeSgkcXVlcnkpOwogICAgICAgIGlmICgkdGhpcy0+X2RiKSB7CiAgICAgICAgICAgIGlmICghQG15c3FsaV9zZWxlY3RfZGIoJHRoaXMtPmNvbm5lY3Rpb24sICR0aGlzLT5fZGIpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsaVJhaXNlRXJyb3IoREJfRVJST1JfTk9EQlNFTEVDVEVEKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoISR0aGlzLT5hdXRvY29tbWl0ICYmICRpc21hbmlwKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9PSAwKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gQG15c3FsaV9xdWVyeSgkdGhpcy0+Y29ubmVjdGlvbiwgJ1NFVCBBVVRPQ09NTUlUPTAnKTsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSBAbXlzcWxpX3F1ZXJ5KCR0aGlzLT5jb25uZWN0aW9uLCAnQkVHSU4nKTsKICAgICAgICAgICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxpUmFpc2VFcnJvcigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50Kys7CiAgICAgICAgfQogICAgICAgICRyZXN1bHQgPSBAbXlzcWxpX3F1ZXJ5KCR0aGlzLT5jb25uZWN0aW9uLCAkcXVlcnkpOwogICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsaVJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzX29iamVjdCgkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG5leHRSZXN1bHQoKQoKICAgIC8qKgogICAgICogTW92ZSB0aGUgaW50ZXJuYWwgbXlzcWwgcmVzdWx0IHBvaW50ZXIgdG8gdGhlIG5leHQgYXZhaWxhYmxlIHJlc3VsdC4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBoYXMgbm90IGJlZW4gaW1wbGVtZW50ZWQgeWV0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0IGEgdmFsaWQgc3FsIHJlc3VsdCByZXNvdXJjZQogICAgICogQHJldHVybiBmYWxzZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dFJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBmZXRjaEludG8oKQoKICAgIC8qKgogICAgICogUGxhY2VzIGEgcm93IGZyb20gdGhlIHJlc3VsdCBzZXQgaW50byB0aGUgZ2l2ZW4gYXJyYXkKICAgICAqCiAgICAgKiBGb3JtYXRpbmcgb2YgdGhlIGFycmF5IGFuZCB0aGUgZGF0YSB0aGVyZWluIGFyZSBjb25maWd1cmFibGUuCiAgICAgKiBTZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6OmZldGNoSW50bygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgICAgdGhlIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICogQHBhcmFtIGFycmF5ICAgICRhcnIgICAgICAgdGhlIHJlZmVyZW5jZWQgYXJyYXkgdG8gcHV0IHRoZSBkYXRhIGluCiAgICAgKiBAcGFyYW0gaW50ICAgICAgJGZldGNobW9kZSBob3cgdGhlIHJlc3VsdGluZyBhcnJheSBzaG91bGQgYmUgaW5kZXhlZAogICAgICogQHBhcmFtIGludCAgICAgICRyb3dudW0gICAgdGhlIHJvdyBudW1iZXIgdG8gZmV0Y2ggKDAgPSBmaXJzdCByb3cpCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgREJfT0sgb24gc3VjY2VzcywgTlVMTCB3aGVuIHRoZSBlbmQgb2YgYSByZXN1bHQgc2V0IGlzCiAgICAgKiAgICAgICAgICAgICAgICAgcmVhY2hlZCBvciBvbiBmYWlsdXJlCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6OmZldGNoSW50bygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZldGNoSW50bygkcmVzdWx0LCAmJGFyciwgJGZldGNobW9kZSwgJHJvd251bSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRyb3dudW0gIT09IG51bGwpIHsKICAgICAgICAgICAgaWYgKCFAbXlzcWxpX2RhdGFfc2VlaygkcmVzdWx0LCAkcm93bnVtKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCRmZXRjaG1vZGUgJiBEQl9GRVRDSE1PREVfQVNTT0MpIHsKICAgICAgICAgICAgJGFyciA9IEBteXNxbGlfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgTVlTUUxJX0FTU09DKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmICRhcnIpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYXJyID0gQG15c3FsaV9mZXRjaF9yb3coJHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIGlmICghJGFycikgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfUlRSSU0pIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogRXZlbiB0aG91Z2ggdGhpcyBEQk1TIGFscmVhZHkgdHJpbXMgb3V0cHV0LCB3ZSBkbyB0aGlzIGJlY2F1c2UKICAgICAgICAgICAgICogYSBmaWVsZCBtaWdodCBoYXZlIGludGVudGlvbmFsIHdoaXRlc3BhY2UgYXQgdGhlIGVuZCB0aGF0CiAgICAgICAgICAgICAqIGdldHMgcmVtb3ZlZCBieSBEQl9QT1JUQUJJTElUWV9SVFJJTSB1bmRlciBhbm90aGVyIGRyaXZlci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICR0aGlzLT5fcnRyaW1BcnJheVZhbHVlcygkYXJyKTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTlVMTF9UT19FTVBUWSkgewogICAgICAgICAgICAkdGhpcy0+X2NvbnZlcnROdWxsQXJyYXlWYWx1ZXNUb0VtcHR5KCRhcnIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZnJlZVJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIHRoZSByZXN1bHQgc2V0IGFuZCBmcmVlcyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmcmVlKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIGlmICRyZXN1bHQgaXMgaW52YWxpZAogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmcmVlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZnJlZVJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiBpc19yZXNvdXJjZSgkcmVzdWx0KSA/IG15c3FsaV9mcmVlX3Jlc3VsdCgkcmVzdWx0KSA6IGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG51bUNvbHMoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgaW4gYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpudW1Db2xzKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2YgY29sdW1ucy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6Om51bUNvbHMoKQogICAgICovCiAgICBmdW5jdGlvbiBudW1Db2xzKCRyZXN1bHQpCiAgICB7CiAgICAgICAgJGNvbHMgPSBAbXlzcWxpX251bV9maWVsZHMoJHJlc3VsdCk7CiAgICAgICAgaWYgKCEkY29scykgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsaVJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjb2xzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG51bVJvd3MoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgbnVtYmVyIG9mIHJvd3MgaW4gYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpudW1Sb3dzKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2Ygcm93cy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6Om51bVJvd3MoKQogICAgICovCiAgICBmdW5jdGlvbiBudW1Sb3dzKCRyZXN1bHQpCiAgICB7CiAgICAgICAgJHJvd3MgPSBAbXlzcWxpX251bV9yb3dzKCRyZXN1bHQpOwogICAgICAgIGlmICgkcm93cyA9PT0gbnVsbCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsaVJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyb3dzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGF1dG9Db21taXQoKQoKICAgIC8qKgogICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhdXRvbWF0aWMgY29tbWl0cwogICAgICoKICAgICAqIEBwYXJhbSBib29sICRvbm9mZiAgdHJ1ZSB0dXJucyBpdCBvbiwgZmFsc2UgdHVybnMgaXQgb2ZmCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBpZiB0aGUgZHJpdmVyCiAgICAgKiAgICAgICAgICAgICAgIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBhdXRvQ29tbWl0KCRvbm9mZiA9IGZhbHNlKQogICAgewogICAgICAgIC8vIFhYWCBpZiAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA+IDAsIHdlIHNob3VsZCBwcm9iYWJseQogICAgICAgIC8vIGlzc3VlIGEgd2FybmluZyBoZXJlLgogICAgICAgICR0aGlzLT5hdXRvY29tbWl0ID0gJG9ub2ZmID8gdHJ1ZSA6IGZhbHNlOwogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb21taXQoKQoKICAgIC8qKgogICAgICogQ29tbWl0cyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29tbWl0KCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+X2RiKSB7CiAgICAgICAgICAgICAgICBpZiAoIUBteXNxbGlfc2VsZWN0X2RiKCR0aGlzLT5jb25uZWN0aW9uLCAkdGhpcy0+X2RiKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxpUmFpc2VFcnJvcihEQl9FUlJPUl9OT0RCU0VMRUNURUQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRyZXN1bHQgPSBAbXlzcWxpX3F1ZXJ5KCR0aGlzLT5jb25uZWN0aW9uLCAnQ09NTUlUJyk7CiAgICAgICAgICAgICRyZXN1bHQgPSBAbXlzcWxpX3F1ZXJ5KCR0aGlzLT5jb25uZWN0aW9uLCAnU0VUIEFVVE9DT01NSVQ9MScpOwogICAgICAgICAgICAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9IDA7CiAgICAgICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5teXNxbGlSYWlzZUVycm9yKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHJvbGxiYWNrKCkKCiAgICAvKioKICAgICAqIFJldmVydHMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHJvbGxiYWNrKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+X2RiKSB7CiAgICAgICAgICAgICAgICBpZiAoIUBteXNxbGlfc2VsZWN0X2RiKCR0aGlzLT5jb25uZWN0aW9uLCAkdGhpcy0+X2RiKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxpUmFpc2VFcnJvcihEQl9FUlJPUl9OT0RCU0VMRUNURUQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICRyZXN1bHQgPSBAbXlzcWxpX3F1ZXJ5KCR0aGlzLT5jb25uZWN0aW9uLCAnUk9MTEJBQ0snKTsKICAgICAgICAgICAgJHJlc3VsdCA9IEBteXNxbGlfcXVlcnkoJHRoaXMtPmNvbm5lY3Rpb24sICdTRVQgQVVUT0NPTU1JVD0xJyk7CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID0gMDsKICAgICAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm15c3FsaVJhaXNlRXJyb3IoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYWZmZWN0ZWRSb3dzKCkKCiAgICAvKioKICAgICAqIERldGVybWluZXMgdGhlIG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IGEgZGF0YSBtYW5pdXBsYXRpb24gcXVlcnkKICAgICAqCiAgICAgKiAwIGlzIHJldHVybmVkIGZvciBxdWVyaWVzIHRoYXQgZG9uJ3QgbWFuaXB1bGF0ZSBkYXRhLgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBhZmZlY3RlZFJvd3MoKQogICAgewogICAgICAgIGlmICgkdGhpcy0+X2xhc3RfcXVlcnlfbWFuaXApIHsKICAgICAgICAgICAgcmV0dXJuIEBteXNxbGlfYWZmZWN0ZWRfcm93cygkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBuZXh0SWQoKQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbmV4dCBmcmVlIGlkIGluIGEgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIHNlcXVlbmNlCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkb25kZW1hbmQgIHdoZW4gdHJ1ZSwgdGhlIHNlcWVuY2UgaXMgYXV0b21hdGljYWxseQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZCBpZiBpdCBkb2VzIG5vdCBleGlzdAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbmV4dCBpZCBudW1iZXIgaW4gdGhlIHNlcXVlbmNlLgogICAgICogICAgICAgICAgICAgICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpuZXh0SUQoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfbXlzcWxpOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9teXNxbGk6OmRyb3BTZXF1ZW5jZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRJZCgkc2VxX25hbWUsICRvbmRlbWFuZCA9IHRydWUpCiAgICB7CiAgICAgICAgJHNlcW5hbWUgPSAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSk7CiAgICAgICAgZG8gewogICAgICAgICAgICAkcmVwZWF0ID0gMDsKICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5xdWVyeSgnVVBEQVRFICcgLiAkc2VxbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyBTRVQgaWQgPSBMQVNUX0lOU0VSVF9JRChpZCArIDEpJyk7CiAgICAgICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgICAgIGlmICgkcmVzdWx0ID09PSBEQl9PSykgewogICAgICAgICAgICAgICAgLy8gQ09NTU9OIENBU0UKICAgICAgICAgICAgICAgICRpZCA9IEBteXNxbGlfaW5zZXJ0X2lkKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAgICAgICAgIGlmICgkaWQgIT0gMCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkaWQ7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gRU1QVFkgU0VRIFRBQkxFCiAgICAgICAgICAgICAgICAvLyBTZXF1ZW5jZSB0YWJsZSBtdXN0IGJlIGVtcHR5IGZvciBzb21lIHJlYXNvbiwKICAgICAgICAgICAgICAgIC8vIHNvIGZpbGwgaXQgYW5kIHJldHVybiAxCiAgICAgICAgICAgICAgICAvLyBPYnRhaW4gYSB1c2VyLWxldmVsIGxvY2sKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Z2V0T25lKCdTRUxFQ1QgR0VUX0xPQ0soJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiJyR7c2VxbmFtZX1fbG9jaycsIDEwKSIpOwogICAgICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCRyZXN1bHQgPT0gMCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxpUmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfTE9DS0VEKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBhZGQgdGhlIGRlZmF1bHQgdmFsdWUKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+cXVlcnkoJ1JFUExBQ0UgSU5UTyAnIC4gJHNlcW5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnIChpZCkgVkFMVUVTICgwKScpOwogICAgICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIFJlbGVhc2UgdGhlIGxvY2sKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Z2V0T25lKCdTRUxFQ1QgUkVMRUFTRV9MT0NLKCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIicke3NlcW5hbWV9X2xvY2snKSIpOwogICAgICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gV2Uga25vdyB3aGF0IHRoZSByZXN1bHQgd2lsbCBiZSwgc28gbm8gbmVlZCB0byB0cnkgYWdhaW4KICAgICAgICAgICAgICAgIHJldHVybiAxOwoKICAgICAgICAgICAgfSBlbHNlaWYgKCRvbmRlbWFuZCAmJiBEQjo6aXNFcnJvcigkcmVzdWx0KSAmJgogICAgICAgICAgICAgICAgJHJlc3VsdC0+Z2V0Q29kZSgpID09IERCX0VSUk9SX05PU1VDSFRBQkxFKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAvLyBPTkRFTUFORCBUQUJMRSBDUkVBVElPTgogICAgICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jcmVhdGVTZXF1ZW5jZSgkc2VxX25hbWUpOwoKICAgICAgICAgICAgICAgIC8vIFNpbmNlIGNyZWF0ZVNlcXVlbmNlIGluaXRpYWxpemVzIHRoZSBJRCB0byBiZSAxLAogICAgICAgICAgICAgICAgLy8gd2UgZG8gbm90IG5lZWQgdG8gcmV0cmlldmUgdGhlIElEIGFnYWluIChvciB3ZSB3aWxsIGdldCAyKQogICAgICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCBJRCBvZiBhIG5ld2x5IGNyZWF0ZWQgc2VxdWVuY2UgaXMgMQogICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfSBlbHNlaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpICYmCiAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0LT5nZXRDb2RlKCkgPT0gREJfRVJST1JfQUxSRUFEWV9FWElTVFMpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIC8vIEJBQ0tXQVJEUyBDT01QQVQKICAgICAgICAgICAgICAgIC8vIHNlZSBfQkNzZXF1ZW5jZSgpIGNvbW1lbnQKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+X0JDc2VxdWVuY2UoJHNlcW5hbWUpOwogICAgICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHJlcGVhdCA9IDE7CiAgICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgkcmVwZWF0KTsKCiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlcyBhIG5ldyBzZXF1ZW5jZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBuZXcgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OmNyZWF0ZVNlcXVlbmNlKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX215c3FsaTo6bmV4dElEKCksIERCX215c3FsaTo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKQogICAgewogICAgICAgICRzZXFuYW1lID0gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpOwogICAgICAgICRyZXMgPSAkdGhpcy0+cXVlcnkoJ0NSRUFURSBUQUJMRSAnIC4gJHNlcW5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAoaWQgSU5URUdFUiBVTlNJR05FRCBBVVRPX0lOQ1JFTUVOVCBOT1QgTlVMTCwnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgUFJJTUFSWSBLRVkoaWQpKScpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgICAgICAgICByZXR1cm4gJHJlczsKICAgICAgICB9CiAgICAgICAgLy8gaW5zZXJ0IHlpZWxkcyB2YWx1ZSAxLCBuZXh0SWQgY2FsbCB3aWxsIGdlbmVyYXRlIElEIDIKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCJJTlNFUlQgSU5UTyAke3NlcW5hbWV9IChpZCkgVkFMVUVTICgwKSIpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRyb3BTZXF1ZW5jZSgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIGEgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgc2VxdWVuY2UgdG8gYmUgZGVsZXRlZAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6ZHJvcFNlcXVlbmNlKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX215c3FsOjpuZXh0SUQoKSwgREJfbXlzcWw6OmNyZWF0ZVNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZHJvcFNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCdEUk9QIFRBQkxFICcgLiAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9CQ3NlcXVlbmNlKCkKCiAgICAvKioKICAgICAqIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IHdpdGggb2xkIHNlcXVlbmNlIGVtdWxhdGlvbiBpbXBsZW1lbnRhdGlvbgogICAgICogKGNsZWFuIHVwIHRoZSBkdXBlcykKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFuYW1lICB0aGUgc2VxdWVuY2UgbmFtZSB0byBjbGVhbiB1cAogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgdHJ1ZSBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgZnVuY3Rpb24gX0JDc2VxdWVuY2UoJHNlcW5hbWUpCiAgICB7CiAgICAgICAgLy8gT2J0YWluIGEgdXNlci1sZXZlbCBsb2NrLi4uIHRoaXMgd2lsbCByZWxlYXNlIGFueSBwcmV2aW91cwogICAgICAgIC8vIGFwcGxpY2F0aW9uIGxvY2tzLCBidXQgdW5saWtlIExPQ0sgVEFCTEVTLCBpdCBkb2VzIG5vdCBhYm9ydAogICAgICAgIC8vIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uIGFuZCBpcyBtdWNoIGxlc3MgZnJlcXVlbnRseSB1c2VkLgogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Z2V0T25lKCJTRUxFQ1QgR0VUX0xPQ0soJyR7c2VxbmFtZX1fbG9jaycsMTApIik7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0KICAgICAgICBpZiAoJHJlc3VsdCA9PSAwKSB7CiAgICAgICAgICAgIC8vIEZhaWxlZCB0byBnZXQgdGhlIGxvY2ssIGNhbid0IGRvIHRoZSBjb252ZXJzaW9uLCBiYWlsCiAgICAgICAgICAgIC8vIHdpdGggYSBEQl9FUlJPUl9OT1RfTE9DS0VEIGVycm9yCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bXlzcWxpUmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfTE9DS0VEKTsKICAgICAgICB9CgogICAgICAgICRoaWdoZXN0X2lkID0gJHRoaXMtPmdldE9uZSgiU0VMRUNUIE1BWChpZCkgRlJPTSAke3NlcW5hbWV9Iik7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRoaWdoZXN0X2lkKSkgewogICAgICAgICAgICByZXR1cm4gJGhpZ2hlc3RfaWQ7CiAgICAgICAgfQoKICAgICAgICAvLyBUaGlzIHNob3VsZCBraWxsIGFsbCByb3dzIGV4Y2VwdCB0aGUgaGlnaGVzdAogICAgICAgIC8vIFdlIHNob3VsZCBwcm9iYWJseSBkbyBzb21ldGhpbmcgaWYgJGhpZ2hlc3RfaWQgaXNuJ3QKICAgICAgICAvLyBudW1lcmljLCBidXQgSSdtIGF0IGEgbG9zcyBhcyBob3cgdG8gaGFuZGxlIHRoYXQuLi4KICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPnF1ZXJ5KCdERUxFVEUgRlJPTSAnIC4gJHNlcW5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gIiBXSEVSRSBpZCA8PiAkaGlnaGVzdF9pZCIpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CgogICAgICAgIC8vIElmIGFub3RoZXIgdGhyZWFkIGhhcyBiZWVuIHdhaXRpbmcgZm9yIHRoaXMgbG9jaywKICAgICAgICAvLyBpdCB3aWxsIGdvIHRocnUgdGhlIGFib3ZlIHByb2NlZHVyZSwgYnV0IHdpbGwgaGF2ZSBubwogICAgICAgIC8vIHJlYWwgZWZmZWN0CiAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5nZXRPbmUoIlNFTEVDVCBSRUxFQVNFX0xPQ0soJyR7c2VxbmFtZX1fbG9jaycpIik7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdW90ZUlkZW50aWZpZXIoKQoKICAgIC8qKgogICAgICogUXVvdGVzIGEgc3RyaW5nIHNvIGl0IGNhbiBiZSBzYWZlbHkgdXNlZCBhcyBhIHRhYmxlIG9yIGNvbHVtbiBuYW1lCiAgICAgKiAoV0FSTklORzogdXNpbmcgbmFtZXMgdGhhdCByZXF1aXJlIHRoaXMgaXMgYSBSRUFMTFkgQkFEIElERUEpCiAgICAgKgogICAgICogV0FSTklORzogIE9sZGVyIHZlcnNpb25zIG9mIE15U1FMIGNhbid0IGhhbmRsZSB0aGUgYmFja3RpY2sKICAgICAqIGNoYXJhY3RlciAoPGtiZD5gPC9rYmQ+KSBpbiB0YWJsZSBvciBjb2x1bW4gbmFtZXMuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc3RyICBpZGVudGlmaWVyIG5hbWUgdG8gYmUgcXVvdGVkCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHF1b3RlZCBpZGVudGlmaWVyIHN0cmluZwogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZUlkZW50aWZpZXIoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjYuMAogICAgICovCiAgICBmdW5jdGlvbiBxdW90ZUlkZW50aWZpZXIoJHN0cikKICAgIHsKICAgICAgICByZXR1cm4gJ2AnIC4gc3RyX3JlcGxhY2UoJ2AnLCAnYGAnLCAkc3RyKSAuICdgJzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlc2NhcGVTaW1wbGUoKQoKICAgIC8qKgogICAgICogRXNjYXBlcyBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgREJNUydzIHN0YW5kYXJkcwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciAgdGhlIHN0cmluZyB0byBiZSBlc2NhcGVkCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBlc2NhcGVkIHN0cmluZwogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZVNtYXJ0KCkKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIFJlbGVhc2UgMS42LjAKICAgICAqLwogICAgZnVuY3Rpb24gZXNjYXBlU2ltcGxlKCRzdHIpCiAgICB7CiAgICAgICAgcmV0dXJuIEBteXNxbGlfcmVhbF9lc2NhcGVfc3RyaW5nKCR0aGlzLT5jb25uZWN0aW9uLCAkc3RyKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBtb2RpZnlMaW1pdFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIEFkZHMgTElNSVQgY2xhdXNlcyB0byBhIHF1ZXJ5IHN0cmluZyBhY2NvcmRpbmcgdG8gY3VycmVudCBEQk1TIHN0YW5kYXJkcwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICAgdGhlIHF1ZXJ5IHRvIG1vZGlmeQogICAgICogQHBhcmFtIGludCAgICAkZnJvbSAgICB0aGUgcm93IHRvIHN0YXJ0IHRvIGZldGNoaW5nICgwID0gdGhlIGZpcnN0IHJvdykKICAgICAqIEBwYXJhbSBpbnQgICAgJGNvdW50ICAgdGhlIG51bWJlcnMgb2Ygcm93cyB0byBmZXRjaAogICAgICogQHBhcmFtIG1peGVkICAkcGFyYW1zICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIHBsYWNlaG9sZGVyIGZvciBub24tYXJyYXkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMgb3IgMSBwbGFjZWhvbGRlciBwZXIgYXJyYXkgZWxlbWVudC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIHF1ZXJ5IHN0cmluZyB3aXRoIExJTUlUIGNsYXVzZXMgYWRkZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBmdW5jdGlvbiBtb2RpZnlMaW1pdFF1ZXJ5KCRxdWVyeSwgJGZyb20sICRjb3VudCwgJHBhcmFtcyA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgaWYgKERCOjppc01hbmlwKCRxdWVyeSkgfHwgJHRoaXMtPl9uZXh0X3F1ZXJ5X21hbmlwKSB7CiAgICAgICAgICAgIHJldHVybiAkcXVlcnkgLiAiIExJTUlUICRjb3VudCI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICRxdWVyeSAuICIgTElNSVQgJGZyb20sICRjb3VudCI7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG15c3FsaVJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYSBEQl9FcnJvciBvYmplY3QgcmVnYXJkaW5nIHRoZSBjdXJyZW50IHByb2JsZW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRlcnJubyAgaWYgdGhlIGVycm9yIGlzIGJlaW5nIG1hbnVhbGx5IHJhaXNlZCBwYXNzIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgREJfRVJST1IqIGNvbnN0YW50IGhlcmUuICBJZiB0aGlzIGlzbid0IHBhc3NlZAogICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGUgREJNUy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgdGhlIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpyYWlzZUVycm9yKCksCiAgICAgKiAgICAgIERCX215c3FsaTo6ZXJyb3JOYXRpdmUoKSwgREJfY29tbW9uOjplcnJvckNvZGUoKQogICAgICovCiAgICBmdW5jdGlvbiBteXNxbGlSYWlzZUVycm9yKCRlcnJubyA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRlcnJubyA9PT0gbnVsbCkgewogICAgICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9FUlJPUlMpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvcmNvZGVfbWFwWzEwMjJdID0gREJfRVJST1JfQ09OU1RSQUlOVDsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvcmNvZGVfbWFwWzEwNDhdID0gREJfRVJST1JfQ09OU1RSQUlOVF9OT1RfTlVMTDsKICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvcmNvZGVfbWFwWzEwNjJdID0gREJfRVJST1JfQ09OU1RSQUlOVDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIERvaW5nIHRoaXMgaW4gY2FzZSBtb2RlIGNoYW5nZXMgZHVyaW5nIHJ1bnRpbWUuCiAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3Jjb2RlX21hcFsxMDIyXSA9IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTOwogICAgICAgICAgICAgICAgJHRoaXMtPmVycm9yY29kZV9tYXBbMTA0OF0gPSBEQl9FUlJPUl9DT05TVFJBSU5UOwogICAgICAgICAgICAgICAgJHRoaXMtPmVycm9yY29kZV9tYXBbMTA2Ml0gPSBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZXJybm8gPSAkdGhpcy0+ZXJyb3JDb2RlKG15c3FsaV9lcnJubygkdGhpcy0+Y29ubmVjdGlvbikpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJGVycm5vLCBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAbXlzcWxpX2Vycm5vKCR0aGlzLT5jb25uZWN0aW9uKSAuICcgKiogJyAuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBteXNxbGlfZXJyb3IoJHRoaXMtPmNvbm5lY3Rpb24pKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlcnJvck5hdGl2ZSgpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBEQk1TJyBuYXRpdmUgZXJyb3IgY29kZSBwcm9kdWNlZCBieSB0aGUgbGFzdCBxdWVyeQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgREJNUycgZXJyb3IgY29kZQogICAgICovCiAgICBmdW5jdGlvbiBlcnJvck5hdGl2ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEBteXNxbGlfZXJybm8oJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRhYmxlSW5mbygpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgdGFibGUgb3IgYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogQHBhcmFtIG9iamVjdHxzdHJpbmcgICRyZXN1bHQgIERCX3Jlc3VsdCBvYmplY3QgZnJvbSBhIHF1ZXJ5IG9yIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG5hbWUgb2YgYSB0YWJsZS4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2hpbGUgdGhpcyBhbHNvIGFjY2VwdHMgYSBxdWVyeSByZXN1bHQKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UgaWRlbnRpZmllciwgdGhpcyBiZWhhdmlvciBpcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXByZWNhdGVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICRtb2RlICAgIGEgdmFsaWQgdGFibGVJbmZvIG1vZGUKICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5ICBhbiBhc3NvY2lhdGl2ZSBhcnJheSB3aXRoIHRoZSBpbmZvcm1hdGlvbiByZXF1ZXN0ZWQuCiAgICAgKiAgICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6c2V0T3B0aW9uKCkKICAgICAqLwogICAgZnVuY3Rpb24gdGFibGVJbmZvKCRyZXN1bHQsICRtb2RlID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoaXNfc3RyaW5nKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgdGFibGUgbmFtZS4KICAgICAgICAgICAgICogQ3JlYXRlIGEgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSBAbXlzcWxpX3F1ZXJ5KCR0aGlzLT5jb25uZWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTRUxFQ1QgKiBGUk9NICRyZXN1bHQgTElNSVQgMCIpOwogICAgICAgICAgICAkZ290X3N0cmluZyA9IHRydWU7CiAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCRyZXN1bHQtPnJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgb2JqZWN0LgogICAgICAgICAgICAgKiBFeHRyYWN0IHRoZSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQtPnJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKiBDb3B5IGl0LgogICAgICAgICAgICAgKiBEZXByZWNhdGVkLiAgSGVyZSBmb3IgY29tcGF0aWJpbGl0eSBvbmx5LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJGlkID0gJHJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNfYSgkaWQsICdteXNxbGlfcmVzdWx0JykpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5teXNxbGlSYWlzZUVycm9yKERCX0VSUk9SX05FRURfTU9SRV9EQVRBKTsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX0xPV0VSQ0FTRSkgewogICAgICAgICAgICAkY2FzZV9mdW5jID0gJ3N0cnRvbG93ZXInOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydmFsJzsKICAgICAgICB9CgogICAgICAgICRjb3VudCA9IEBteXNxbGlfbnVtX2ZpZWxkcygkaWQpOwogICAgICAgICRyZXMgICA9IGFycmF5KCk7CgogICAgICAgIGlmICgkbW9kZSkgewogICAgICAgICAgICAkcmVzWydudW1fZmllbGRzJ10gPSAkY291bnQ7CiAgICAgICAgfQoKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgJHRtcCA9IEBteXNxbGlfZmV0Y2hfZmllbGQoJGlkKTsKCiAgICAgICAgICAgICRmbGFncyA9ICcnOwogICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+bXlzcWxpX2ZsYWdzIGFzICRjb25zdCA9PiAkbWVhbnMpIHsKICAgICAgICAgICAgICAgIGlmICgkdG1wLT5mbGFncyAmICRjb25zdCkgewogICAgICAgICAgICAgICAgICAgICRmbGFncyAuPSAkbWVhbnMgLiAnICc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCR0bXAtPmRlZikgewogICAgICAgICAgICAgICAgJGZsYWdzIC49ICdkZWZhdWx0XycgLiByYXd1cmxlbmNvZGUoJHRtcC0+ZGVmKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZmxhZ3MgPSB0cmltKCRmbGFncyk7CgogICAgICAgICAgICAkcmVzWyRpXSA9IGFycmF5KAogICAgICAgICAgICAgICAgJ3RhYmxlJyA9PiAkY2FzZV9mdW5jKCR0bXAtPnRhYmxlKSwKICAgICAgICAgICAgICAgICduYW1lJyAgPT4gJGNhc2VfZnVuYygkdG1wLT5uYW1lKSwKICAgICAgICAgICAgICAgICd0eXBlJyAgPT4gaXNzZXQoJHRoaXMtPm15c3FsaV90eXBlc1skdG1wLT50eXBlXSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAkdGhpcy0+bXlzcWxpX3R5cGVzWyR0bXAtPnR5cGVdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3Vua25vd24nLAogICAgICAgICAgICAgICAgLy8gaHR0cDovL2J1Z3MucGhwLm5ldC8/aWQ9MzY1NzkKICAgICAgICAgICAgICAgICdsZW4nICAgPT4gJHRtcC0+bGVuZ3RoLAogICAgICAgICAgICAgICAgJ2ZsYWdzJyA9PiAkZmxhZ3MsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVIpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVyJ11bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXJ0YWJsZSddWyRyZXNbJGldWyd0YWJsZSddXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBmcmVlIHRoZSByZXN1bHQgb25seSBpZiB3ZSB3ZXJlIGNhbGxlZCBvbiBhIHRhYmxlCiAgICAgICAgaWYgKCRnb3Rfc3RyaW5nKSB7CiAgICAgICAgICAgIEBteXNxbGlfZnJlZV9yZXN1bHQoJGlkKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0U3BlY2lhbFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIE9idGFpbnMgdGhlIHF1ZXJ5IHN0cmluZyBuZWVkZWQgZm9yIGxpc3RpbmcgYSBnaXZlbiB0eXBlIG9mIG9iamVjdHMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlICB0aGUga2luZCBvZiBvYmplY3RzIHlvdSB3YW50IHRvIHJldHJpZXZlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nIG9yIG51bGwgaWYgdGhlIGRyaXZlciBkb2Vzbid0CiAgICAgKiAgICAgICAgICAgICAgICAgIHN1cHBvcnQgdGhlIG9iamVjdCB0eXBlIHJlcXVlc3RlZAogICAgICoKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Z2V0TGlzdE9mKCkKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U3BlY2lhbFF1ZXJ5KCR0eXBlKQogICAgewogICAgICAgIHN3aXRjaCAoJHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAndGFibGVzJzoKICAgICAgICAgICAgICAgIHJldHVybiAnU0hPVyBUQUJMRVMnOwogICAgICAgICAgICBjYXNlICd1c2Vycyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1NFTEVDVCBESVNUSU5DVCBVc2VyIEZST00gbXlzcWwudXNlcic7CiAgICAgICAgICAgIGNhc2UgJ2RhdGFiYXNlcyc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1NIT1cgREFUQUJBU0VTJzsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KCn0KCi8qCiAqIExvY2FsIHZhcmlhYmxlczoKICogdGFiLXdpZHRoOiA0CiAqIGMtYmFzaWMtb2Zmc2V0OiA0CiAqIEVuZDoKICovCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/oci8.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBvY2k4IGV4dGVuc2lvbgogKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBPcmFjbGUgZGF0YWJhc2VzCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBKYW1lcyBMLiBQaW5lIDxqbHBAdmFsaW51eC5jb20+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIENWUzogJElkOiBvY2k4LnBocCx2IDEuMTEyIDIwMDcvMDYvMjkgMTM6MDY6MTYgYWhhcnZleSBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogT2J0YWluIHRoZSBEQl9jb21tb24gY2xhc3Mgc28gaXQgY2FuIGJlIGV4dGVuZGVkIGZyb20KICovCnJlcXVpcmVfb25jZSAnREIvY29tbW9uLnBocCc7CgovKioKICogVGhlIG1ldGhvZHMgUEVBUiBEQiB1c2VzIHRvIGludGVyYWN0IHdpdGggUEhQJ3Mgb2NpOCBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggT3JhY2xlIGRhdGFiYXNlcwogKgogKiBEZWZpbml0ZWx5IHdvcmtzIHdpdGggdmVyc2lvbnMgOCBhbmQgOSBvZiBPcmFjbGUuCiAqCiAqIFRoZXNlIG1ldGhvZHMgb3ZlcmxvYWQgdGhlIG9uZXMgZGVjbGFyZWQgaW4gREJfY29tbW9uLgogKgogKiBCZSBhd2FyZS4uLiAgT0NJRXJyb3IoKSBvbmx5IGFwcGVhcnMgdG8gcmV0dXJuIGFueXRoaW5nIHdoZW4gZ2l2ZW4gYQogKiBzdGF0ZW1lbnQsIHNvIGZ1bmN0aW9ucyByZXR1cm4gdGhlIGdlbmVyaWMgREJfRVJST1IgaW5zdGVhZCBvZiBtb3JlCiAqIHVzZWZ1bCBlcnJvcnMgdGhhdCBoYXZlIHRvIGRvIHdpdGggZmVlZGJhY2sgZnJvbSB0aGUgZGF0YWJhc2UuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIEphbWVzIEwuIFBpbmUgPGpscEB2YWxpbnV4LmNvbT4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgUmVsZWFzZTogMS43LjEyCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KY2xhc3MgREJfb2NpOCBleHRlbmRzIERCX2NvbW1vbgp7CiAgICAvLyB7e3sgcHJvcGVydGllcwoKICAgIC8qKgogICAgICogVGhlIERCIGRyaXZlciB0eXBlIChteXNxbCwgb2NpOCwgb2RiYywgZXRjLikKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkcGhwdHlwZSA9ICdvY2k4JzsKCiAgICAvKioKICAgICAqIFRoZSBkYXRhYmFzZSBzeW50YXggdmFyaWFudCB0byBiZSB1c2VkIChkYjIsIGFjY2VzcywgZXRjLiksIGlmIGFueQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRkYnN5bnRheCA9ICdvY2k4JzsKCiAgICAvKioKICAgICAqIFRoZSBjYXBhYmlsaXRpZXMgb2YgdGhpcyBEQiBpbXBsZW1lbnRhdGlvbgogICAgICoKICAgICAqIFRoZSAnbmV3X2xpbmsnIGVsZW1lbnQgY29udGFpbnMgdGhlIFBIUCB2ZXJzaW9uIHRoYXQgZmlyc3QgcHJvdmlkZWQKICAgICAqIG5ld19saW5rIHN1cHBvcnQgZm9yIHRoaXMgREJNUy4gIENvbnRhaW5zIGZhbHNlIGlmIGl0J3MgdW5zdXBwb3J0ZWQuCiAgICAgKgogICAgICogTWVhbmluZyBvZiB0aGUgJ2xpbWl0JyBlbGVtZW50OgogICAgICogICArICdlbXVsYXRlJyA9IGVtdWxhdGUgd2l0aCBmZXRjaCByb3cgYnkgbnVtYmVyCiAgICAgKiAgICsgJ2FsdGVyJyAgID0gYWx0ZXIgdGhlIHF1ZXJ5CiAgICAgKiAgICsgZmFsc2UgICAgID0gc2tpcCByb3dzCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGZlYXR1cmVzID0gYXJyYXkoCiAgICAgICAgJ2xpbWl0JyAgICAgICAgID0+ICdhbHRlcicsCiAgICAgICAgJ25ld19saW5rJyAgICAgID0+ICc1LjAuMCcsCiAgICAgICAgJ251bXJvd3MnICAgICAgID0+ICdzdWJxdWVyeScsCiAgICAgICAgJ3Bjb25uZWN0JyAgICAgID0+IHRydWUsCiAgICAgICAgJ3ByZXBhcmUnICAgICAgID0+IHRydWUsCiAgICAgICAgJ3NzbCcgICAgICAgICAgID0+IGZhbHNlLAogICAgICAgICd0cmFuc2FjdGlvbnMnICA9PiB0cnVlLAogICAgKTsKCiAgICAvKioKICAgICAqIEEgbWFwcGluZyBvZiBuYXRpdmUgZXJyb3IgY29kZXMgdG8gREIgZXJyb3IgY29kZXMKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRlcnJvcmNvZGVfbWFwID0gYXJyYXkoCiAgICAgICAgMSAgICAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICA5MDAgICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgOTA0ICAgPT4gREJfRVJST1JfTk9TVUNIRklFTEQsCiAgICAgICAgOTEzICAgPT4gREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XLAogICAgICAgIDkyMSAgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICA5MjMgICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgOTQyICAgPT4gREJfRVJST1JfTk9TVUNIVEFCTEUsCiAgICAgICAgOTU1ICAgPT4gREJfRVJST1JfQUxSRUFEWV9FWElTVFMsCiAgICAgICAgMTQwMCAgPT4gREJfRVJST1JfQ09OU1RSQUlOVF9OT1RfTlVMTCwKICAgICAgICAxNDAxICA9PiBEQl9FUlJPUl9JTlZBTElELAogICAgICAgIDE0MDcgID0+IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwsCiAgICAgICAgMTQxOCAgPT4gREJfRVJST1JfTk9UX0ZPVU5ELAogICAgICAgIDE0NzYgID0+IERCX0VSUk9SX0RJVlpFUk8sCiAgICAgICAgMTcyMiAgPT4gREJfRVJST1JfSU5WQUxJRF9OVU1CRVIsCiAgICAgICAgMjI4OSAgPT4gREJfRVJST1JfTk9TVUNIVEFCTEUsCiAgICAgICAgMjI5MSAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAyMjkyICA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgIDI0NDkgID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgMTI4OTkgPT4gREJfRVJST1JfSU5WQUxJRCwKICAgICk7CgogICAgLyoqCiAgICAgKiBUaGUgcmF3IGRhdGFiYXNlIGNvbm5lY3Rpb24gY3JlYXRlZCBieSBQSFAKICAgICAqIEB2YXIgcmVzb3VyY2UKICAgICAqLwogICAgdmFyICRjb25uZWN0aW9uOwoKICAgIC8qKgogICAgICogVGhlIERTTiBpbmZvcm1hdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIGRhdGFiYXNlCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZHNuID0gYXJyYXkoKTsKCgogICAgLyoqCiAgICAgKiBTaG91bGQgZGF0YSBtYW5pcHVsYXRpb24gcXVlcmllcyBiZSBjb21taXR0ZWQgYXV0b21hdGljYWxseT8KICAgICAqIEB2YXIgYm9vbAogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkYXV0b2NvbW1pdCA9IHRydWU7CgogICAgLyoqCiAgICAgKiBTdG9yZXMgdGhlICRkYXRhIHBhc3NlZCB0byBleGVjdXRlKCkgaW4gdGhlIG9jaTggZHJpdmVyCiAgICAgKgogICAgICogR2V0cyByZXNldCB0byBhcnJheSgpIHdoZW4gc2ltcGxlUXVlcnkoKSBpcyBydW4uCiAgICAgKgogICAgICogTmVlZGVkIGluIGNhc2UgdXNlciB3YW50cyB0byBjYWxsIG51bVJvd3MoKSBhZnRlciBwcmVwYXJlL2V4ZWN1dGUKICAgICAqIHdhcyB1c2VkLgogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJF9kYXRhID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIFRoZSByZXN1bHQgb3Igc3RhdGVtZW50IGhhbmRsZSBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IGV4ZWN1dGVkIHF1ZXJ5CiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKi8KICAgIHZhciAkbGFzdF9zdG10OwoKICAgIC8qKgogICAgICogSXMgdGhlIGdpdmVuIHByZXBhcmVkIHN0YXRlbWVudCBhIGRhdGEgbWFuaXB1bGF0aW9uIHF1ZXJ5PwogICAgICogQHZhciBhcnJheQogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkbWFuaXBfcXVlcnkgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogU3RvcmUgb2YgcHJlcGFyZWQgU1FMIHF1ZXJpZXMuCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICRfcHJlcGFyZWRfcXVlcmllcyA9IGFycmF5KCk7CgoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbnN0cnVjdG9yCgogICAgLyoqCiAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGNhbGxzIDxrYmQ+JHRoaXMtPkRCX2NvbW1vbigpPC9rYmQ+CiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIGZ1bmN0aW9uIERCX29jaTgoKQogICAgewogICAgICAgICR0aGlzLT5EQl9jb21tb24oKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25uZWN0KCkKCiAgICAvKioKICAgICAqIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIHNlcnZlciwgbG9nIGluIGFuZCBvcGVuIHRoZSBkYXRhYmFzZQogICAgICoKICAgICAqIERvbid0IGNhbGwgdGhpcyBtZXRob2QgZGlyZWN0bHkuICBVc2UgREI6OmNvbm5lY3QoKSBpbnN0ZWFkLgogICAgICoKICAgICAqIElmIFBIUCBpcyBhdCB2ZXJzaW9uIDUuMC4wIG9yIGdyZWF0ZXI6CiAgICAgKiAgICsgR2VuZXJhbGx5LCBvY2lfY29ubmVjdCgpIG9yIG9jaV9wY29ubmVjdCgpIGFyZSB1c2VkLgogICAgICogICArIEJ1dCBpZiB0aGUgbmV3X2xpbmsgRFNOIG9wdGlvbiBpcyBzZXQgdG8gdHJ1ZSwgb2NpX25ld19jb25uZWN0KCkKICAgICAqICAgICBpcyB1c2VkLgogICAgICoKICAgICAqIFdoZW4gdXNpbmcgUEhQIHZlcnNpb24gNC54LCBPQ0lMb2dvbigpIG9yIE9DSVBMb2dvbigpIGFyZSB1c2VkLgogICAgICoKICAgICAqIFBFQVIgREIncyBvY2k4IGRyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGV4dHJhIERTTiBvcHRpb25zOgogICAgICogICArIGNoYXJzZXQgICAgICAgVGhlIGNoYXJhY3RlciBzZXQgdG8gYmUgdXNlZCBvbiB0aGUgY29ubmVjdGlvbi4KICAgICAqICAgICAgICAgICAgICAgICAgICBPbmx5IHVzZWQgaWYgUEhQIGlzIGF0IHZlcnNpb24gNS4wLjAgb3IgZ3JlYXRlcgogICAgICogICAgICAgICAgICAgICAgICAgIGFuZCB0aGUgT3JhY2xlIHNlcnZlciBpcyBhdCA5LjIgb3IgZ3JlYXRlci4KICAgICAqICAgICAgICAgICAgICAgICAgICBBdmFpbGFibGUgc2luY2UgUEVBUiBEQiAxLjcuMC4KICAgICAqICAgKyBuZXdfbGluayAgICAgIElmIHNldCB0byB0cnVlLCBjYXVzZXMgc3Vic2VxdWVudCBjYWxscyB0bwogICAgICogICAgICAgICAgICAgICAgICAgIGNvbm5lY3QoKSB0byByZXR1cm4gYSBuZXcgY29ubmVjdGlvbiBsaW5rCiAgICAgKiAgICAgICAgICAgICAgICAgICAgaW5zdGVhZCBvZiB0aGUgZXhpc3Rpbmcgb25lLiAgV0FSTklORzogdGhpcyBpcwogICAgICogICAgICAgICAgICAgICAgICAgIG5vdCBwb3J0YWJsZSB0byBvdGhlciBEQk1TJ3MuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgQXZhaWxhYmxlIHNpbmNlIFBFQVIgREIgMS43LjAuCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRkc24gICAgICAgICB0aGUgZGF0YSBzb3VyY2UgbmFtZQogICAgICogQHBhcmFtIGJvb2wgICRwZXJzaXN0ZW50ICBzaG91bGQgdGhlIGNvbm5lY3Rpb24gYmUgcGVyc2lzdGVudD8KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29ubmVjdCgkZHNuLCAkcGVyc2lzdGVudCA9IGZhbHNlKQogICAgewogICAgICAgIGlmICghUEVBUjo6bG9hZEV4dGVuc2lvbignb2NpOCcpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9FWFRFTlNJT05fTk9UX0ZPVU5EKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5kc24gPSAkZHNuOwogICAgICAgIGlmICgkZHNuWydkYnN5bnRheCddKSB7CiAgICAgICAgICAgICR0aGlzLT5kYnN5bnRheCA9ICRkc25bJ2Ric3ludGF4J107CiAgICAgICAgfQoKICAgICAgICAvLyBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB3aXRoIERCIDwgMS43LjAKICAgICAgICBpZiAoZW1wdHkoJGRzblsnZGF0YWJhc2UnXSkgJiYgIWVtcHR5KCRkc25bJ2hvc3RzcGVjJ10pKSB7CiAgICAgICAgICAgICRkYiA9ICRkc25bJ2hvc3RzcGVjJ107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGRiID0gJGRzblsnZGF0YWJhc2UnXTsKICAgICAgICB9CgogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ29jaV9jb25uZWN0JykpIHsKICAgICAgICAgICAgaWYgKGlzc2V0KCRkc25bJ25ld19saW5rJ10pCiAgICAgICAgICAgICAgICAmJiAoJGRzblsnbmV3X2xpbmsnXSA9PSAndHJ1ZScgfHwgJGRzblsnbmV3X2xpbmsnXSA9PT0gdHJ1ZSkpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRjb25uZWN0X2Z1bmN0aW9uID0gJ29jaV9uZXdfY29ubmVjdCc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkY29ubmVjdF9mdW5jdGlvbiA9ICRwZXJzaXN0ZW50ID8gJ29jaV9wY29ubmVjdCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnb2NpX2Nvbm5lY3QnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+ZHNuWydwb3J0J10pICYmICR0aGlzLT5kc25bJ3BvcnQnXSkgewogICAgICAgICAgICAgICAgJGRiID0gJy8vJy4kZGIuJzonLiR0aGlzLT5kc25bJ3BvcnQnXTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGNoYXIgPSBlbXB0eSgkZHNuWydjaGFyc2V0J10pID8gbnVsbCA6ICRkc25bJ2NoYXJzZXQnXTsKICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAJGNvbm5lY3RfZnVuY3Rpb24oJGRzblsndXNlcm5hbWUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRzblsncGFzc3dvcmQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2hhcik7CiAgICAgICAgICAgICRlcnJvciA9IE9DSUVycm9yKCk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJGVycm9yKSAmJiAkZXJyb3JbJ2NvZGUnXSA9PSAxMjU0MSkgewogICAgICAgICAgICAgICAgLy8gQ291bGRuJ3QgZmluZCBUTlMgbGlzdGVuZXIuICBUcnkgZGlyZWN0IGNvbm5lY3Rpb24uCiAgICAgICAgICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEAkY29ubmVjdF9mdW5jdGlvbigkZHNuWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRzblsncGFzc3dvcmQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkY2hhcik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkY29ubmVjdF9mdW5jdGlvbiA9ICRwZXJzaXN0ZW50ID8gJ09DSVBMb2dvbicgOiAnT0NJTG9nb24nOwogICAgICAgICAgICBpZiAoJGRiKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEAkY29ubmVjdF9mdW5jdGlvbigkZHNuWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRzblsncGFzc3dvcmQnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkYik7CiAgICAgICAgICAgIH0gZWxzZWlmICgkZHNuWyd1c2VybmFtZSddIHx8ICRkc25bJ3Bhc3N3b3JkJ10pIHsKICAgICAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQCRjb25uZWN0X2Z1bmN0aW9uKCRkc25bJ3VzZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZHNuWydwYXNzd29yZCddKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCEkdGhpcy0+Y29ubmVjdGlvbikgewogICAgICAgICAgICAkZXJyb3IgPSBPQ0lFcnJvcigpOwogICAgICAgICAgICAkZXJyb3IgPSAoaXNfYXJyYXkoJGVycm9yKSkgPyAkZXJyb3JbJ21lc3NhZ2UnXSA6IG51bGw7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3IpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZGlzY29ubmVjdCgpCgogICAgLyoqCiAgICAgKiBEaXNjb25uZWN0cyBmcm9tIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0Ugb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBkaXNjb25uZWN0KCkKICAgIHsKICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdvY2lfY2xvc2UnKSkgewogICAgICAgICAgICAkcmV0ID0gQG9jaV9jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHJldCA9IEBPQ0lMb2dPZmYoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IG51bGw7CiAgICAgICAgcmV0dXJuICRyZXQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgc2ltcGxlUXVlcnkoKQoKICAgIC8qKgogICAgICogU2VuZHMgYSBxdWVyeSB0byB0aGUgZGF0YWJhc2Ugc2VydmVyCiAgICAgKgogICAgICogVG8gZGV0ZXJtaW5lIGhvdyBtYW55IHJvd3Mgb2YgYSByZXN1bHQgc2V0IGdldCBidWZmZXJlZCB1c2luZwogICAgICogb2Npc2V0cHJlZmV0Y2goKSwgc2VlIHRoZSAicmVzdWx0X2J1ZmZlcmluZyIgb3B0aW9uIGluIHNldE9wdGlvbnMoKS4KICAgICAqIFRoaXMgb3B0aW9uIHdhcyBhZGRlZCBpbiBSZWxlYXNlIDEuNy4wLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgKyBhIFBIUCByZXN1bHQgcmVzcm91Y2UgZm9yIHN1Y2Nlc3NmdWwgU0VMRUNUIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgdGhlIERCX09LIGNvbnN0YW50IGZvciBvdGhlciBzdWNjZXNzZnVsIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgYSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBzaW1wbGVRdWVyeSgkcXVlcnkpCiAgICB7CiAgICAgICAgJHRoaXMtPl9kYXRhID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+bGFzdF9wYXJhbWV0ZXJzID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+bGFzdF9xdWVyeSA9ICRxdWVyeTsKICAgICAgICAkcXVlcnkgPSAkdGhpcy0+bW9kaWZ5UXVlcnkoJHF1ZXJ5KTsKICAgICAgICAkcmVzdWx0ID0gQE9DSVBhcnNlKCR0aGlzLT5jb25uZWN0aW9uLCAkcXVlcnkpOwogICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm9jaThSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+YXV0b2NvbW1pdCkgewogICAgICAgICAgICAkc3VjY2VzcyA9IEBPQ0lFeGVjdXRlKCRyZXN1bHQsT0NJX0NPTU1JVF9PTl9TVUNDRVNTKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkc3VjY2VzcyA9IEBPQ0lFeGVjdXRlKCRyZXN1bHQsT0NJX0RFRkFVTFQpOwogICAgICAgIH0KICAgICAgICBpZiAoISRzdWNjZXNzKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2NpOFJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5sYXN0X3N0bXQgPSAkcmVzdWx0OwogICAgICAgIGlmICgkdGhpcy0+X2NoZWNrTWFuaXAoJHF1ZXJ5KSkgewogICAgICAgICAgICByZXR1cm4gREJfT0s7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgQG9jaXNldHByZWZldGNoKCRyZXN1bHQsICR0aGlzLT5vcHRpb25zWydyZXN1bHRfYnVmZmVyaW5nJ10pOwogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dFJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBNb3ZlIHRoZSBpbnRlcm5hbCBvcmFjbGUgcmVzdWx0IHBvaW50ZXIgdG8gdGhlIG5leHQgYXZhaWxhYmxlIHJlc3VsdAogICAgICoKICAgICAqIEBwYXJhbSBhIHZhbGlkIG9jaTggcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqCiAgICAgKiBAcmV0dXJuIHRydWUgaWYgYSByZXN1bHQgaXMgYXZhaWxhYmxlIG90aGVyd2lzZSByZXR1cm4gZmFsc2UKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dFJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBmZXRjaEludG8oKQoKICAgIC8qKgogICAgICogUGxhY2VzIGEgcm93IGZyb20gdGhlIHJlc3VsdCBzZXQgaW50byB0aGUgZ2l2ZW4gYXJyYXkKICAgICAqCiAgICAgKiBGb3JtYXRpbmcgb2YgdGhlIGFycmF5IGFuZCB0aGUgZGF0YSB0aGVyZWluIGFyZSBjb25maWd1cmFibGUuCiAgICAgKiBTZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6OmZldGNoSW50bygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgICAgdGhlIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICogQHBhcmFtIGFycmF5ICAgICRhcnIgICAgICAgdGhlIHJlZmVyZW5jZWQgYXJyYXkgdG8gcHV0IHRoZSBkYXRhIGluCiAgICAgKiBAcGFyYW0gaW50ICAgICAgJGZldGNobW9kZSBob3cgdGhlIHJlc3VsdGluZyBhcnJheSBzaG91bGQgYmUgaW5kZXhlZAogICAgICogQHBhcmFtIGludCAgICAgICRyb3dudW0gICAgdGhlIHJvdyBudW1iZXIgdG8gZmV0Y2ggKDAgPSBmaXJzdCByb3cpCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgREJfT0sgb24gc3VjY2VzcywgTlVMTCB3aGVuIHRoZSBlbmQgb2YgYSByZXN1bHQgc2V0IGlzCiAgICAgKiAgICAgICAgICAgICAgICAgcmVhY2hlZCBvciBvbiBmYWlsdXJlCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6OmZldGNoSW50bygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZldGNoSW50bygkcmVzdWx0LCAmJGFyciwgJGZldGNobW9kZSwgJHJvd251bSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRyb3dudW0gIT09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX05PVF9DQVBBQkxFKTsKICAgICAgICB9CiAgICAgICAgaWYgKCRmZXRjaG1vZGUgJiBEQl9GRVRDSE1PREVfQVNTT0MpIHsKICAgICAgICAgICAgJG1vcmVkYXRhID0gQE9DSUZldGNoSW50bygkcmVzdWx0LCRhcnIsT0NJX0FTU09DK09DSV9SRVRVUk5fTlVMTFMrT0NJX1JFVFVSTl9MT0JTKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmCiAgICAgICAgICAgICAgICAkbW9yZWRhdGEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkbW9yZWRhdGEgPSBPQ0lGZXRjaEludG8oJHJlc3VsdCwkYXJyLE9DSV9SRVRVUk5fTlVMTFMrT0NJX1JFVFVSTl9MT0JTKTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkbW9yZWRhdGEpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX1JUUklNKSB7CiAgICAgICAgICAgICR0aGlzLT5fcnRyaW1BcnJheVZhbHVlcygkYXJyKTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTlVMTF9UT19FTVBUWSkgewogICAgICAgICAgICAkdGhpcy0+X2NvbnZlcnROdWxsQXJyYXlWYWx1ZXNUb0VtcHR5KCRhcnIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZnJlZVJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIHRoZSByZXN1bHQgc2V0IGFuZCBmcmVlcyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmcmVlKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIGlmICRyZXN1bHQgaXMgaW52YWxpZAogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmcmVlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZnJlZVJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiBpc19yZXNvdXJjZSgkcmVzdWx0KSA/IE9DSUZyZWVTdGF0ZW1lbnQoJHJlc3VsdCkgOiBmYWxzZTsKICAgIH0KCiAgICAvKioKICAgICAqIEZyZWVzIHRoZSBpbnRlcm5hbCByZXNvdXJjZXMgYXNzb2NpYXRlZCB3aXRoIGEgcHJlcGFyZWQgcXVlcnkKICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHN0bXQgICAgICAgICAgIHRoZSBwcmVwYXJlZCBzdGF0ZW1lbnQncyByZXNvdXJjZQogICAgICogQHBhcmFtIGJvb2wgICAgICRmcmVlX3Jlc291cmNlICBzaG91bGQgdGhlIFBIUCByZXNvdXJjZSBiZSBmcmVlZCB0b28/CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVc2UgZmFsc2UgaWYgeW91IG5lZWQgdG8gZ2V0IGRhdGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb20gdGhlIHJlc3VsdCBzZXQgbGF0ZXIuCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIGlmICRyZXN1bHQgaXMgaW52YWxpZAogICAgICoKICAgICAqIEBzZWUgREJfb2NpODo6cHJlcGFyZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGZyZWVQcmVwYXJlZCgkc3RtdCwgJGZyZWVfcmVzb3VyY2UgPSB0cnVlKQogICAgewogICAgICAgIGlmICghaXNfcmVzb3VyY2UoJHN0bXQpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKCRmcmVlX3Jlc291cmNlKSB7CiAgICAgICAgICAgIEBvY2lmcmVlc3RhdGVtZW50KCRzdG10KTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5wcmVwYXJlX3R5cGVzWyhpbnQpJHN0bXRdKSkgewogICAgICAgICAgICB1bnNldCgkdGhpcy0+cHJlcGFyZV90eXBlc1soaW50KSRzdG10XSk7CiAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5tYW5pcF9xdWVyeVsoaW50KSRzdG10XSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Sb3dzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiByb3dzIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIE9ubHkgd29ya3MgaWYgdGhlIERCX1BPUlRBQklMSVRZX05VTVJPV1MgcG9ydGFiaWxpdHkgb3B0aW9uCiAgICAgKiBpcyB0dXJuZWQgb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpudW1Sb3dzKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2Ygcm93cy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6Om51bVJvd3MoKSwgREJfY29tbW9uOjpzZXRPcHRpb24oKQogICAgICovCiAgICBmdW5jdGlvbiBudW1Sb3dzKCRyZXN1bHQpCiAgICB7CiAgICAgICAgLy8gZW11bGF0ZSBudW1Sb3dzIGZvciBPcmFjbGUuICB5dWNrLgogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX05VTVJPV1MgJiYKICAgICAgICAgICAgJHJlc3VsdCA9PT0gJHRoaXMtPmxhc3Rfc3RtdCkKICAgICAgICB7CiAgICAgICAgICAgICRjb3VudHF1ZXJ5ID0gJ1NFTEVDVCBDT1VOVCgqKSBGUk9NICgnLiR0aGlzLT5sYXN0X3F1ZXJ5LicpJzsKICAgICAgICAgICAgJHNhdmVfcXVlcnkgPSAkdGhpcy0+bGFzdF9xdWVyeTsKICAgICAgICAgICAgJHNhdmVfc3RtdCA9ICR0aGlzLT5sYXN0X3N0bXQ7CgogICAgICAgICAgICAkY291bnQgPSYgJHRoaXMtPnF1ZXJ5KCRjb3VudHF1ZXJ5KTsKCiAgICAgICAgICAgIC8vIFJlc3RvcmUgdGhlIGxhc3QgcXVlcnkgYW5kIHN0YXRlbWVudC4KICAgICAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkc2F2ZV9xdWVyeTsKICAgICAgICAgICAgJHRoaXMtPmxhc3Rfc3RtdCA9ICRzYXZlX3N0bXQ7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJGNvdW50KSB8fAogICAgICAgICAgICAgICAgREI6OmlzRXJyb3IoJHJvdyA9ICRjb3VudC0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX09SREVSRUQpKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX05PVF9DQVBBQkxFKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICRyb3dbMF07CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtQ29scygpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6Om51bUNvbHMoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiBjb2x1bW5zLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6bnVtQ29scygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG51bUNvbHMoJHJlc3VsdCkKICAgIHsKICAgICAgICAkY29scyA9IEBPQ0lOdW1Db2xzKCRyZXN1bHQpOwogICAgICAgIGlmICghJGNvbHMpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5vY2k4UmFpc2VFcnJvcigkcmVzdWx0KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjb2xzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHByZXBhcmUoKQoKICAgIC8qKgogICAgICogUHJlcGFyZXMgYSBxdWVyeSBmb3IgbXVsdGlwbGUgZXhlY3V0aW9uIHdpdGggZXhlY3V0ZSgpLgogICAgICoKICAgICAqIFdpdGggb2NpOCwgdGhpcyBpcyBlbXVsYXRlZC4KICAgICAqCiAgICAgKiBwcmVwYXJlKCkgcmVxdWlyZXMgYSBnZW5lcmljIHF1ZXJ5IGFzIHN0cmluZyBsaWtlIDxjb2RlPgogICAgICogICAgSU5TRVJUIElOVE8gbnVtYmVycyBWQUxVRVMgKD8sID8sID8pCiAgICAgKiA8L2NvZGU+LiAgVGhlIDxrYmQ+Pzwva2JkPiBjaGFyYWN0ZXJzIGFyZSBwbGFjZWhvbGRlcnMuCiAgICAgKgogICAgICogVGhyZWUgdHlwZXMgb2YgcGxhY2Vob2xkZXJzIGNhbiBiZSB1c2VkOgogICAgICogICArIDxrYmQ+Pzwva2JkPiAgYSBxdW90ZWQgc2NhbGFyIHZhbHVlLCBpLmUuIHN0cmluZ3MsIGludGVnZXJzCiAgICAgKiAgICsgPGtiZD4hPC9rYmQ+ICB2YWx1ZSBpcyBpbnNlcnRlZCAnYXMgaXMnCiAgICAgKiAgICsgPGtiZD4mPC9rYmQ+ICByZXF1aXJlcyBhIGZpbGUgbmFtZS4gIFRoZSBmaWxlJ3MgY29udGVudHMgZ2V0CiAgICAgKiAgICAgICAgICAgICAgICAgICAgIGluc2VydGVkIGludG8gdGhlIHF1ZXJ5IChpLmUuIHNhdmluZyBiaW5hcnkKICAgICAqICAgICAgICAgICAgICAgICAgICAgZGF0YSBpbiBhIGRiKQogICAgICoKICAgICAqIFVzZSBiYWNrc2xhc2hlcyB0byBlc2NhcGUgcGxhY2Vob2xkZXIgY2hhcmFjdGVycyBpZiB5b3UgZG9uJ3Qgd2FudAogICAgICogdGhlbSB0byBiZSBpbnRlcnByZXRlZCBhcyBwbGFjZWhvbGRlcnMuICBFeGFtcGxlOiA8Y29kZT4KICAgICAqICAgICJVUERBVEUgZm9vIFNFVCBjb2w9PyBXSEVSRSBjb2w9J292ZXIgXCYgdW5kZXInIgogICAgICogPC9jb2RlPgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICB0aGUgcXVlcnkgdG8gYmUgcHJlcGFyZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICBEQiBzdGF0ZW1lbnQgcmVzb3VyY2Ugb24gc3VjY2Vzcy4gREJfRXJyb3Igb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX29jaTg6OmV4ZWN1dGUoKQogICAgICovCiAgICBmdW5jdGlvbiBwcmVwYXJlKCRxdWVyeSkKICAgIHsKICAgICAgICAkdG9rZW5zICAgPSBwcmVnX3NwbGl0KCcvKCg/PCFcXFwpWyY/IV0pLycsICRxdWVyeSwgLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQUkVHX1NQTElUX0RFTElNX0NBUFRVUkUpOwogICAgICAgICRiaW5kcyAgICA9IGNvdW50KCR0b2tlbnMpIC0gMTsKICAgICAgICAkdG9rZW4gICAgPSAwOwogICAgICAgICR0eXBlcyAgICA9IGFycmF5KCk7CiAgICAgICAgJG5ld3F1ZXJ5ID0gJyc7CgogICAgICAgIGZvcmVhY2ggKCR0b2tlbnMgYXMgJGtleSA9PiAkdmFsKSB7CiAgICAgICAgICAgIHN3aXRjaCAoJHZhbCkgewogICAgICAgICAgICAgICAgY2FzZSAnPyc6CiAgICAgICAgICAgICAgICAgICAgJHR5cGVzWyR0b2tlbisrXSA9IERCX1BBUkFNX1NDQUxBUjsKICAgICAgICAgICAgICAgICAgICB1bnNldCgkdG9rZW5zWyRrZXldKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGNhc2UgJyYnOgogICAgICAgICAgICAgICAgICAgICR0eXBlc1skdG9rZW4rK10gPSBEQl9QQVJBTV9PUEFRVUU7CiAgICAgICAgICAgICAgICAgICAgdW5zZXQoJHRva2Vuc1ska2V5XSk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICBjYXNlICchJzoKICAgICAgICAgICAgICAgICAgICAkdHlwZXNbJHRva2VuKytdID0gREJfUEFSQU1fTUlTQzsKICAgICAgICAgICAgICAgICAgICB1bnNldCgkdG9rZW5zWyRrZXldKTsKICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgJHRva2Vuc1ska2V5XSA9IHByZWdfcmVwbGFjZSgnL1xcXChbJj8hXSkvJywgIlxcMSIsICR2YWwpOwogICAgICAgICAgICAgICAgICAgIGlmICgka2V5ICE9ICRiaW5kcykgewogICAgICAgICAgICAgICAgICAgICAgICAkbmV3cXVlcnkgLj0gJHRva2Vuc1ska2V5XSAuICc6YmluZCcgLiAkdG9rZW47CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG5ld3F1ZXJ5IC49ICR0b2tlbnNbJGtleV07CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+bGFzdF9xdWVyeSA9ICRxdWVyeTsKICAgICAgICAkbmV3cXVlcnkgPSAkdGhpcy0+bW9kaWZ5UXVlcnkoJG5ld3F1ZXJ5KTsKICAgICAgICBpZiAoISRzdG10ID0gQE9DSVBhcnNlKCR0aGlzLT5jb25uZWN0aW9uLCAkbmV3cXVlcnkpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2NpOFJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPnByZXBhcmVfdHlwZXNbKGludCkkc3RtdF0gPSAkdHlwZXM7CiAgICAgICAgJHRoaXMtPm1hbmlwX3F1ZXJ5WyhpbnQpJHN0bXRdID0gREI6OmlzTWFuaXAoJHF1ZXJ5KTsKICAgICAgICAkdGhpcy0+X3ByZXBhcmVkX3F1ZXJpZXNbKGludCkkc3RtdF0gPSAkbmV3cXVlcnk7CiAgICAgICAgcmV0dXJuICRzdG10OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGV4ZWN1dGUoKQoKICAgIC8qKgogICAgICogRXhlY3V0ZXMgYSBEQiBzdGF0ZW1lbnQgcHJlcGFyZWQgd2l0aCBwcmVwYXJlKCkuCiAgICAgKgogICAgICogVG8gZGV0ZXJtaW5lIGhvdyBtYW55IHJvd3Mgb2YgYSByZXN1bHQgc2V0IGdldCBidWZmZXJlZCB1c2luZwogICAgICogb2Npc2V0cHJlZmV0Y2goKSwgc2VlIHRoZSAicmVzdWx0X2J1ZmZlcmluZyIgb3B0aW9uIGluIHNldE9wdGlvbnMoKS4KICAgICAqIFRoaXMgb3B0aW9uIHdhcyBhZGRlZCBpbiBSZWxlYXNlIDEuNy4wLgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAgJHN0bXQgIGEgREIgc3RhdGVtZW50IHJlc291cmNlIHJldHVybmVkIGZyb20gcHJlcGFyZSgpCiAgICAgKiBAcGFyYW0gbWl4ZWQgICRkYXRhICBhcnJheSwgc3RyaW5nIG9yIG51bWVyaWMgZGF0YSB0byBiZSB1c2VkIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICBleGVjdXRpb24gb2YgdGhlIHN0YXRlbWVudC4gIFF1YW50aXR5IG9mIGl0ZW1zCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICBwYXNzZWQgbXVzdCBtYXRjaCBxdWFudGl0eSBvZiBwbGFjZWhvbGRlcnMgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5OiAgbWVhbmluZyAxIGZvciBub24tYXJyYXkgaXRlbXMgb3IgdGhlCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICBxdWFudGl0eSBvZiBlbGVtZW50cyBpbiB0aGUgYXJyYXkuCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgcmV0dXJucyBhbiBvaWM4IHJlc3VsdCByZXNvdXJjZSBmb3Igc3VjY2Vzc2Z1bCBTRUxFQ1QKICAgICAqICAgICAgICAgICAgICAgIHF1ZXJpZXMsIERCX09LIGZvciBvdGhlciBzdWNjZXNzZnVsIHF1ZXJpZXMuCiAgICAgKiAgICAgICAgICAgICAgICBBIERCIGVycm9yIG9iamVjdCBpcyByZXR1cm5lZCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfb2NpODo6cHJlcGFyZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uICZleGVjdXRlKCRzdG10LCAkZGF0YSA9IGFycmF5KCkpCiAgICB7CiAgICAgICAgJGRhdGEgPSAoYXJyYXkpJGRhdGE7CiAgICAgICAgJHRoaXMtPmxhc3RfcGFyYW1ldGVycyA9ICRkYXRhOwogICAgICAgICR0aGlzLT5sYXN0X3F1ZXJ5ID0gJHRoaXMtPl9wcmVwYXJlZF9xdWVyaWVzWyhpbnQpJHN0bXRdOwogICAgICAgICR0aGlzLT5fZGF0YSA9ICRkYXRhOwoKICAgICAgICAkdHlwZXMgPSYgJHRoaXMtPnByZXBhcmVfdHlwZXNbKGludCkkc3RtdF07CiAgICAgICAgaWYgKGNvdW50KCR0eXBlcykgIT0gY291bnQoJGRhdGEpKSB7CiAgICAgICAgICAgICR0bXAgPSYgJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfTUlTTUFUQ0gpOwogICAgICAgICAgICByZXR1cm4gJHRtcDsKICAgICAgICB9CgogICAgICAgICRpID0gMDsKICAgICAgICBmb3JlYWNoICgkZGF0YSBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICBpZiAoJHR5cGVzWyRpXSA9PSBEQl9QQVJBTV9NSVNDKSB7CiAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICogT3JhY2xlIGRvZXNuJ3Qgc2VlbSB0byBoYXZlIHRoZSBhYmlsaXR5IHRvIHBhc3MgYQogICAgICAgICAgICAgICAgICogcGFyYW1ldGVyIGFsb25nIHVuY2hhbmdlZCwgc28gc3RyaXAgb2ZmIHF1b3RlcyBmcm9tIHN0YXJ0CiAgICAgICAgICAgICAgICAgKiBhbmQgZW5kLCBwbHVzIHR1cm4gdHdvIHNpbmdsZSBxdW90ZXMgdG8gb25lIHNpbmdsZSBxdW90ZSwKICAgICAgICAgICAgICAgICAqIGluIG9yZGVyIHRvIGF2b2lkIHRoZSBxdW90ZXMgZ2V0dGluZyBlc2NhcGVkIGJ5CiAgICAgICAgICAgICAgICAgKiBPcmFjbGUgYW5kIGVuZGluZyB1cCBpbiB0aGUgZGF0YWJhc2UuCiAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICRkYXRhWyRrZXldID0gcHJlZ19yZXBsYWNlKCIvXicoLiopJyQvIiwgIlxcMSIsICRkYXRhWyRrZXldKTsKICAgICAgICAgICAgICAgICRkYXRhWyRrZXldID0gc3RyX3JlcGxhY2UoIicnIiwgIiciLCAkZGF0YVska2V5XSk7CiAgICAgICAgICAgIH0gZWxzZWlmICgkdHlwZXNbJGldID09IERCX1BBUkFNX09QQVFVRSkgewogICAgICAgICAgICAgICAgJGZwID0gQGZvcGVuKCRkYXRhWyRrZXldLCAncmInKTsKICAgICAgICAgICAgICAgIGlmICghJGZwKSB7CiAgICAgICAgICAgICAgICAgICAgJHRtcCA9JiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OKTsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRtcDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRkYXRhWyRrZXldID0gZnJlYWQoJGZwLCBmaWxlc2l6ZSgkZGF0YVska2V5XSkpOwogICAgICAgICAgICAgICAgZmNsb3NlKCRmcCk7CiAgICAgICAgICAgIH0gZWxzZWlmICgkdHlwZXNbJGldID09IERCX1BBUkFNX1NDQUxBUikgewogICAgICAgICAgICAgICAgLy8gRmxvYXRzIGhhdmUgdG8gYmUgY29udmVydGVkIHRvIGEgbG9jYWxlLW5ldXRyYWwKICAgICAgICAgICAgICAgIC8vIHJlcHJlc2VudGF0aW9uLgogICAgICAgICAgICAgICAgaWYgKGlzX2Zsb2F0KCRkYXRhWyRrZXldKSkgewogICAgICAgICAgICAgICAgICAgICRkYXRhWyRrZXldID0gJHRoaXMtPnF1b3RlRmxvYXQoJGRhdGFbJGtleV0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghQE9DSUJpbmRCeU5hbWUoJHN0bXQsICc6YmluZCcgLiAkaSwgJGRhdGFbJGtleV0sIC0xKSkgewogICAgICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5vY2k4UmFpc2VFcnJvcigkc3RtdCk7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRtcDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+bGFzdF9xdWVyeSA9IHN0cl9yZXBsYWNlKCc6YmluZCcuJGksICR0aGlzLT5xdW90ZVNtYXJ0KCRkYXRhWyRrZXldKSwgJHRoaXMtPmxhc3RfcXVlcnkpOwogICAgICAgICAgICAkaSsrOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPmF1dG9jb21taXQpIHsKICAgICAgICAgICAgJHN1Y2Nlc3MgPSBAT0NJRXhlY3V0ZSgkc3RtdCwgT0NJX0NPTU1JVF9PTl9TVUNDRVNTKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkc3VjY2VzcyA9IEBPQ0lFeGVjdXRlKCRzdG10LCBPQ0lfREVGQVVMVCk7CiAgICAgICAgfQogICAgICAgIGlmICghJHN1Y2Nlc3MpIHsKICAgICAgICAgICAgJHRtcCA9ICR0aGlzLT5vY2k4UmFpc2VFcnJvcigkc3RtdCk7CiAgICAgICAgICAgIHJldHVybiAkdG1wOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+bGFzdF9zdG10ID0gJHN0bXQ7CiAgICAgICAgaWYgKCR0aGlzLT5tYW5pcF9xdWVyeVsoaW50KSRzdG10XSB8fCAkdGhpcy0+X25leHRfcXVlcnlfbWFuaXApIHsKICAgICAgICAgICAgJHRoaXMtPl9sYXN0X3F1ZXJ5X21hbmlwID0gdHJ1ZTsKICAgICAgICAgICAgJHRoaXMtPl9uZXh0X3F1ZXJ5X21hbmlwID0gZmFsc2U7CiAgICAgICAgICAgICR0bXAgPSBEQl9PSzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+X2xhc3RfcXVlcnlfbWFuaXAgPSBmYWxzZTsKICAgICAgICAgICAgQG9jaXNldHByZWZldGNoKCRzdG10LCAkdGhpcy0+b3B0aW9uc1sncmVzdWx0X2J1ZmZlcmluZyddKTsKICAgICAgICAgICAgJHRtcCA9JiBuZXcgREJfcmVzdWx0KCR0aGlzLCAkc3RtdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdG1wOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGF1dG9Db21taXQoKQoKICAgIC8qKgogICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhdXRvbWF0aWMgY29tbWl0cwogICAgICoKICAgICAqIEBwYXJhbSBib29sICRvbm9mZiAgdHJ1ZSB0dXJucyBpdCBvbiwgZmFsc2UgdHVybnMgaXQgb2ZmCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBpZiB0aGUgZHJpdmVyCiAgICAgKiAgICAgICAgICAgICAgIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBhdXRvQ29tbWl0KCRvbm9mZiA9IGZhbHNlKQogICAgewogICAgICAgICR0aGlzLT5hdXRvY29tbWl0ID0gKGJvb2wpJG9ub2ZmOzsKICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgY29tbWl0KCkKCiAgICAvKioKICAgICAqIENvbW1pdHMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNvbW1pdCgpCiAgICB7CiAgICAgICAgJHJlc3VsdCA9IEBPQ0lDb21taXQoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm9jaThSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyByb2xsYmFjaygpCgogICAgLyoqCiAgICAgKiBSZXZlcnRzIHRoZSBjdXJyZW50IHRyYW5zYWN0aW9uCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiByb2xsYmFjaygpCiAgICB7CiAgICAgICAgJHJlc3VsdCA9IEBPQ0lSb2xsYmFjaygkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2NpOFJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGFmZmVjdGVkUm93cygpCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2Ygcm93cyBhZmZlY3RlZCBieSBhIGRhdGEgbWFuaXVwbGF0aW9uIHF1ZXJ5CiAgICAgKgogICAgICogMCBpcyByZXR1cm5lZCBmb3IgcXVlcmllcyB0aGF0IGRvbid0IG1hbmlwdWxhdGUgZGF0YS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gYWZmZWN0ZWRSb3dzKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPmxhc3Rfc3RtdCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5vY2k4UmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICAkcmVzdWx0ID0gQE9DSVJvd0NvdW50KCR0aGlzLT5sYXN0X3N0bXQpOwogICAgICAgIGlmICgkcmVzdWx0ID09PSBmYWxzZSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm9jaThSYWlzZUVycm9yKCR0aGlzLT5sYXN0X3N0bXQpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBtb2RpZnlRdWVyeSgpCgogICAgLyoqCiAgICAgKiBDaGFuZ2VzIGEgcXVlcnkgc3RyaW5nIGZvciB2YXJpb3VzIERCTVMgc3BlY2lmaWMgcmVhc29ucwogICAgICoKICAgICAqICJTRUxFQ1QgMisyIiBtdXN0IGJlICJTRUxFQ1QgMisyIEZST00gZHVhbCIgaW4gT3JhY2xlLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHF1ZXJ5ICB0aGUgcXVlcnkgc3RyaW5nIHRvIG1vZGlmeQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgbW9kaWZpZWQgcXVlcnkgc3RyaW5nCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gbW9kaWZ5UXVlcnkoJHF1ZXJ5KQogICAgewogICAgICAgIGlmIChwcmVnX21hdGNoKCcvXlxzKlNFTEVDVC9pJywgJHF1ZXJ5KSAmJgogICAgICAgICAgICAhcHJlZ19tYXRjaCgnL1xzRlJPTVxzL2knLCAkcXVlcnkpKSB7CiAgICAgICAgICAgICRxdWVyeSAuPSAnIEZST00gZHVhbCc7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcXVlcnk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbW9kaWZ5TGltaXRRdWVyeSgpCgogICAgLyoqCiAgICAgKiBBZGRzIExJTUlUIGNsYXVzZXMgdG8gYSBxdWVyeSBzdHJpbmcgYWNjb3JkaW5nIHRvIGN1cnJlbnQgREJNUyBzdGFuZGFyZHMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSAgIHRoZSBxdWVyeSB0byBtb2RpZnkKICAgICAqIEBwYXJhbSBpbnQgICAgJGZyb20gICAgdGhlIHJvdyB0byBzdGFydCB0byBmZXRjaGluZyAoMCA9IHRoZSBmaXJzdCByb3cpCiAgICAgKiBAcGFyYW0gaW50ICAgICRjb3VudCAgIHRoZSBudW1iZXJzIG9mIHJvd3MgdG8gZmV0Y2gKICAgICAqIEBwYXJhbSBtaXhlZCAgJHBhcmFtcyAgYXJyYXksIHN0cmluZyBvciBudW1lcmljIGRhdGEgdG8gYmUgdXNlZCBpbgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aW9uIG9mIHRoZSBzdGF0ZW1lbnQuICBRdWFudGl0eSBvZiBpdGVtcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkIG11c3QgbWF0Y2ggcXVhbnRpdHkgb2YgcGxhY2Vob2xkZXJzIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogIG1lYW5pbmcgMSBwbGFjZWhvbGRlciBmb3Igbm9uLWFycmF5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIG9yIDEgcGxhY2Vob2xkZXIgcGVyIGFycmF5IGVsZW1lbnQuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBxdWVyeSBzdHJpbmcgd2l0aCBMSU1JVCBjbGF1c2VzIGFkZGVkCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gbW9kaWZ5TGltaXRRdWVyeSgkcXVlcnksICRmcm9tLCAkY291bnQsICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgIC8vIExldCBPcmFjbGUgcmV0dXJuIHRoZSBuYW1lIG9mIHRoZSBjb2x1bW5zIGluc3RlYWQgb2YKICAgICAgICAvLyBjb2RpbmcgYSAiaG9tZSIgU1FMIHBhcnNlcgoKICAgICAgICBpZiAoY291bnQoJHBhcmFtcykpIHsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5wcmVwYXJlKCJTRUxFQ1QgKiBGUk9NICgkcXVlcnkpICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1dIRVJFIE5VTEwgPSBOVUxMJyk7CiAgICAgICAgICAgICR0bXAgPSYgJHRoaXMtPmV4ZWN1dGUoJHJlc3VsdCwgJHBhcmFtcyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHFfZmllbGRzID0gIlNFTEVDVCAqIEZST00gKCRxdWVyeSkgV0hFUkUgTlVMTCA9IE5VTEwiOwoKICAgICAgICAgICAgaWYgKCEkcmVzdWx0ID0gQE9DSVBhcnNlKCR0aGlzLT5jb25uZWN0aW9uLCAkcV9maWVsZHMpKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+bGFzdF9xdWVyeSA9ICRxX2ZpZWxkczsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2NpOFJhaXNlRXJyb3IoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIUBPQ0lFeGVjdXRlKCRyZXN1bHQsIE9DSV9ERUZBVUxUKSkgewogICAgICAgICAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkcV9maWVsZHM7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm9jaThSYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkbmNvbHMgPSBPQ0lOdW1Db2xzKCRyZXN1bHQpOwogICAgICAgICRjb2xzICA9IGFycmF5KCk7CiAgICAgICAgZm9yICggJGkgPSAxOyAkaSA8PSAkbmNvbHM7ICRpKysgKSB7CiAgICAgICAgICAgICRjb2xzW10gPSAnIicgLiBPQ0lDb2x1bW5OYW1lKCRyZXN1bHQsICRpKSAuICciJzsKICAgICAgICB9CiAgICAgICAgJGZpZWxkcyA9IGltcGxvZGUoJywgJywgJGNvbHMpOwogICAgICAgIC8vIFhYWCBUZXN0IHRoYXQgKHRpcCBieSBKb2huIExpbSkKICAgICAgICAvL2lmIChwcmVnX21hdGNoKCcvXlxzKlNFTEVDVFxzKy9pcycsICRxdWVyeSwgJG1hdGNoKSkgewogICAgICAgIC8vICAgIC8vIEludHJvZHVjZSB0aGUgRklSU1RfUk9XUyBPcmFjbGUgcXVlcnkgb3B0aW1pemVyCiAgICAgICAgLy8gICAgJHF1ZXJ5ID0gc3Vic3RyKCRxdWVyeSwgc3RybGVuKCRtYXRjaFswXSksIHN0cmxlbigkcXVlcnkpKTsKICAgICAgICAvLyAgICAkcXVlcnkgPSAiU0VMRUNUIC8qICtGSVJTVF9ST1dTICovICIgLiAkcXVlcnk7CiAgICAgICAgLy99CgogICAgICAgIC8vIENvbnN0cnVjdCB0aGUgcXVlcnkKICAgICAgICAvLyBtb3JlIGF0OiBodHRwOi8vbWFyYy50aGVhaW1zZ3JvdXAuY29tLz9sPXBocC1kYiZtPTk5ODMxOTU4MTAxMjEyJnc9MgogICAgICAgIC8vIFBlcmhhcHMgdGhpcyBjb3VsZCBiZSBvcHRpbWl6ZWQgd2l0aCB0aGUgdXNlIG9mIFVuaW9ucwogICAgICAgICRxdWVyeSA9ICJTRUxFQ1QgJGZpZWxkcyBGUk9NIi4KICAgICAgICAgICAgICAgICAiICAoU0VMRUNUIHJvd251bSBhcyBsaW5lbnVtLCAkZmllbGRzIEZST00iLgogICAgICAgICAgICAgICAgICIgICAgICAoJHF1ZXJ5KSIuCiAgICAgICAgICAgICAgICAgJyAgV0hFUkUgcm93bnVtIDw9ICcuICgkZnJvbSArICRjb3VudCkgLgogICAgICAgICAgICAgICAgICcpIFdIRVJFIGxpbmVudW0gPj0gJyAuICsrJGZyb207CiAgICAgICAgcmV0dXJuICRxdWVyeTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBuZXh0SWQoKQoKICAgIC8qKgogICAgICogUmV0dXJucyB0aGUgbmV4dCBmcmVlIGlkIGluIGEgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIHNlcXVlbmNlCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkb25kZW1hbmQgIHdoZW4gdHJ1ZSwgdGhlIHNlcWVuY2UgaXMgYXV0b21hdGljYWxseQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlZCBpZiBpdCBkb2VzIG5vdCBleGlzdAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbmV4dCBpZCBudW1iZXIgaW4gdGhlIHNlcXVlbmNlLgogICAgICogICAgICAgICAgICAgICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpuZXh0SUQoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfb2NpODo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfb2NpODo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dElkKCRzZXFfbmFtZSwgJG9uZGVtYW5kID0gdHJ1ZSkKICAgIHsKICAgICAgICAkc2VxbmFtZSA9ICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKTsKICAgICAgICAkcmVwZWF0ID0gMDsKICAgICAgICBkbyB7CiAgICAgICAgICAgICR0aGlzLT5leHBlY3RFcnJvcihEQl9FUlJPUl9OT1NVQ0hUQUJMRSk7CiAgICAgICAgICAgICRyZXN1bHQgPSYgJHRoaXMtPnF1ZXJ5KCJTRUxFQ1QgJHtzZXFuYW1lfS5uZXh0dmFsIEZST00gZHVhbCIpOwogICAgICAgICAgICAkdGhpcy0+cG9wRXhwZWN0KCk7CiAgICAgICAgICAgIGlmICgkb25kZW1hbmQgJiYgREI6OmlzRXJyb3IoJHJlc3VsdCkgJiYKICAgICAgICAgICAgICAgICRyZXN1bHQtPmdldENvZGUoKSA9PSBEQl9FUlJPUl9OT1NVQ0hUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlcGVhdCA9IDE7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNyZWF0ZVNlcXVlbmNlKCRzZXFfbmFtZSk7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVwZWF0ID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0gd2hpbGUgKCRyZXBlYXQpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgICRhcnIgPSAkcmVzdWx0LT5mZXRjaFJvdyhEQl9GRVRDSE1PREVfT1JERVJFRCk7CiAgICAgICAgcmV0dXJuICRhcnJbMF07CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIG5ldyBzZXF1ZW5jZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfb2NpODo6bmV4dElEKCksIERCX29jaTg6OmRyb3BTZXF1ZW5jZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZVNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCdDUkVBVEUgU0VRVUVOQ0UgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRyb3BTZXF1ZW5jZSgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIGEgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgc2VxdWVuY2UgdG8gYmUgZGVsZXRlZAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6ZHJvcFNlcXVlbmNlKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX29jaTg6Om5leHRJRCgpLCBEQl9vY2k4OjpjcmVhdGVTZXF1ZW5jZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRyb3BTZXF1ZW5jZSgkc2VxX25hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5xdWVyeSgnRFJPUCBTRVFVRU5DRSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgb2NpOFJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYSBEQl9FcnJvciBvYmplY3QgcmVnYXJkaW5nIHRoZSBjdXJyZW50IHByb2JsZW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRlcnJubyAgaWYgdGhlIGVycm9yIGlzIGJlaW5nIG1hbnVhbGx5IHJhaXNlZCBwYXNzIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgREJfRVJST1IqIGNvbnN0YW50IGhlcmUuICBJZiB0aGlzIGlzbid0IHBhc3NlZAogICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGUgREJNUy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgdGhlIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpyYWlzZUVycm9yKCksCiAgICAgKiAgICAgIERCX29jaTg6OmVycm9yTmF0aXZlKCksIERCX29jaTg6OmVycm9yQ29kZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG9jaThSYWlzZUVycm9yKCRlcnJubyA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRlcnJubyA9PT0gbnVsbCkgewogICAgICAgICAgICAkZXJyb3IgPSBAT0NJRXJyb3IoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHRoaXMtPmVycm9yQ29kZSgkZXJyb3JbJ2NvZGUnXSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLCAkZXJyb3JbJ21lc3NhZ2UnXSk7CiAgICAgICAgfSBlbHNlaWYgKGlzX3Jlc291cmNlKCRlcnJubykpIHsKICAgICAgICAgICAgJGVycm9yID0gQE9DSUVycm9yKCRlcnJubyk7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigkdGhpcy0+ZXJyb3JDb2RlKCRlcnJvclsnY29kZSddKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsICRlcnJvclsnbWVzc2FnZSddKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCR0aGlzLT5lcnJvckNvZGUoJGVycm5vKSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXJyb3JOYXRpdmUoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgREJNUycgbmF0aXZlIGVycm9yIGNvZGUgcHJvZHVjZWQgYnkgdGhlIGxhc3QgcXVlcnkKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIERCTVMnIGVycm9yIGNvZGUuICBGQUxTRSBpZiB0aGUgY29kZSBjb3VsZCBub3QgYmUKICAgICAqICAgICAgICAgICAgICAgZGV0ZXJtaW5lZAogICAgICovCiAgICBmdW5jdGlvbiBlcnJvck5hdGl2ZSgpCiAgICB7CiAgICAgICAgaWYgKGlzX3Jlc291cmNlKCR0aGlzLT5sYXN0X3N0bXQpKSB7CiAgICAgICAgICAgICRlcnJvciA9IEBPQ0lFcnJvcigkdGhpcy0+bGFzdF9zdG10KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkZXJyb3IgPSBAT0NJRXJyb3IoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgIH0KICAgICAgICBpZiAoaXNfYXJyYXkoJGVycm9yKSkgewogICAgICAgICAgICByZXR1cm4gJGVycm9yWydjb2RlJ107CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyB0YWJsZUluZm8oKQoKICAgIC8qKgogICAgICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHRhYmxlIG9yIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIE5PVEU6IG9ubHkgc3VwcG9ydHMgJ3RhYmxlJyBhbmQgJ2ZsYWdzJyBpZiA8dmFyPiRyZXN1bHQ8L3Zhcj4KICAgICAqIGlzIGEgdGFibGUgbmFtZS4KICAgICAqCiAgICAgKiBOT1RFOiBmbGFncyB3b24ndCBjb250YWluIGluZGV4IGluZm9ybWF0aW9uLgogICAgICoKICAgICAqIEBwYXJhbSBvYmplY3R8c3RyaW5nICAkcmVzdWx0ICBEQl9yZXN1bHQgb2JqZWN0IGZyb20gYSBxdWVyeSBvciBhCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lIG9mIGEgdGFibGUuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIHRoaXMgYWxzbyBhY2NlcHRzIGEgcXVlcnkgcmVzdWx0CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlIGlkZW50aWZpZXIsIHRoaXMgYmVoYXZpb3IgaXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZC4KICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAkbW9kZSAgICBhIHZhbGlkIHRhYmxlSW5mbyBtb2RlCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSAgYW4gYXNzb2NpYXRpdmUgYXJyYXkgd2l0aCB0aGUgaW5mb3JtYXRpb24gcmVxdWVzdGVkLgogICAgICogICAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnRhYmxlSW5mbygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIHRhYmxlSW5mbygkcmVzdWx0LCAkbW9kZSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydG9sb3dlcic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ2YWwnOwogICAgICAgIH0KCiAgICAgICAgJHJlcyA9IGFycmF5KCk7CgogICAgICAgIGlmIChpc19zdHJpbmcoJHJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSB0YWJsZSBuYW1lLgogICAgICAgICAgICAgKiBDcmVhdGUgYSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRyZXN1bHQgPSBzdHJ0b3VwcGVyKCRyZXN1bHQpOwogICAgICAgICAgICAkcV9maWVsZHMgPSAnU0VMRUNUIGNvbHVtbl9uYW1lLCBkYXRhX3R5cGUsIGRhdGFfbGVuZ3RoLCAnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJ251bGxhYmxlICcKICAgICAgICAgICAgICAgICAgICAgICAgLiAnRlJPTSB1c2VyX3RhYl9jb2x1bW5zICcKICAgICAgICAgICAgICAgICAgICAgICAgLiAiV0hFUkUgdGFibGVfbmFtZT0nJHJlc3VsdCcgT1JERVIgQlkgY29sdW1uX2lkIjsKCiAgICAgICAgICAgICR0aGlzLT5sYXN0X3F1ZXJ5ID0gJHFfZmllbGRzOwoKICAgICAgICAgICAgaWYgKCEkc3RtdCA9IEBPQ0lQYXJzZSgkdGhpcy0+Y29ubmVjdGlvbiwgJHFfZmllbGRzKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5vY2k4UmFpc2VFcnJvcihEQl9FUlJPUl9ORUVEX01PUkVfREFUQSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCFAT0NJRXhlY3V0ZSgkc3RtdCwgT0NJX0RFRkFVTFQpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPm9jaThSYWlzZUVycm9yKCRzdG10KTsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgJGkgPSAwOwogICAgICAgICAgICB3aGlsZSAoQE9DSUZldGNoKCRzdG10KSkgewogICAgICAgICAgICAgICAgJHJlc1skaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAndGFibGUnID0+ICRjYXNlX2Z1bmMoJHJlc3VsdCksCiAgICAgICAgICAgICAgICAgICAgJ25hbWUnICA9PiAkY2FzZV9mdW5jKEBPQ0lSZXN1bHQoJHN0bXQsIDEpKSwKICAgICAgICAgICAgICAgICAgICAndHlwZScgID0+IEBPQ0lSZXN1bHQoJHN0bXQsIDIpLAogICAgICAgICAgICAgICAgICAgICdsZW4nICAgPT4gQE9DSVJlc3VsdCgkc3RtdCwgMyksCiAgICAgICAgICAgICAgICAgICAgJ2ZsYWdzJyA9PiAoQE9DSVJlc3VsdCgkc3RtdCwgNCkgPT0gJ04nKSA/ICdub3RfbnVsbCcgOiAnJywKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVIpIHsKICAgICAgICAgICAgICAgICAgICAkcmVzWydvcmRlciddWyRyZXNbJGldWyduYW1lJ11dID0gJGk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSkgewogICAgICAgICAgICAgICAgICAgICRyZXNbJ29yZGVydGFibGUnXVskcmVzWyRpXVsndGFibGUnXV1bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRpKys7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkbW9kZSkgewogICAgICAgICAgICAgICAgJHJlc1snbnVtX2ZpZWxkcyddID0gJGk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQE9DSUZyZWVTdGF0ZW1lbnQoJHN0bXQpOwoKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoaXNzZXQoJHJlc3VsdC0+cmVzdWx0KSkgewogICAgICAgICAgICAgICAgLyoKICAgICAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgcmVzdWx0IG9iamVjdC4KICAgICAgICAgICAgICAgICAqIEV4dHJhY3QgdGhlIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHJlc3VsdC0+cmVzdWx0OwogICAgICAgICAgICB9CgogICAgICAgICAgICAkcmVzID0gYXJyYXkoKTsKCiAgICAgICAgICAgIGlmICgkcmVzdWx0ID09PSAkdGhpcy0+bGFzdF9zdG10KSB7CiAgICAgICAgICAgICAgICAkY291bnQgPSBAT0NJTnVtQ29scygkcmVzdWx0KTsKICAgICAgICAgICAgICAgIGlmICgkbW9kZSkgewogICAgICAgICAgICAgICAgICAgICRyZXNbJ251bV9maWVsZHMnXSA9ICRjb3VudDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRjb3VudDsgJGkrKykgewogICAgICAgICAgICAgICAgICAgICRyZXNbJGldID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICd0YWJsZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJyAgPT4gJGNhc2VfZnVuYyhAT0NJQ29sdW1uTmFtZSgkcmVzdWx0LCAkaSsxKSksCiAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgPT4gQE9DSUNvbHVtblR5cGUoJHJlc3VsdCwgJGkrMSksCiAgICAgICAgICAgICAgICAgICAgICAgICdsZW4nICAgPT4gQE9DSUNvbHVtblNpemUoJHJlc3VsdCwgJGkrMSksCiAgICAgICAgICAgICAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVIpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHJlc1snb3JkZXInXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcmVzWydvcmRlcnRhYmxlJ11bJHJlc1skaV1bJ3RhYmxlJ11dWyRyZXNbJGldWyduYW1lJ11dID0gJGk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX05PVF9DQVBBQkxFKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlczsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXRTcGVjaWFsUXVlcnkoKQoKICAgIC8qKgogICAgICogT2J0YWlucyB0aGUgcXVlcnkgc3RyaW5nIG5lZWRlZCBmb3IgbGlzdGluZyBhIGdpdmVuIHR5cGUgb2Ygb2JqZWN0cwogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgIHRoZSBraW5kIG9mIG9iamVjdHMgeW91IHdhbnQgdG8gcmV0cmlldmUKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIFNRTCBxdWVyeSBzdHJpbmcgb3IgbnVsbCBpZiB0aGUgZHJpdmVyIGRvZXNuJ3QKICAgICAqICAgICAgICAgICAgICAgICAgc3VwcG9ydCB0aGUgb2JqZWN0IHR5cGUgcmVxdWVzdGVkCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEBzZWUgREJfY29tbW9uOjpnZXRMaXN0T2YoKQogICAgICovCiAgICBmdW5jdGlvbiBnZXRTcGVjaWFsUXVlcnkoJHR5cGUpCiAgICB7CiAgICAgICAgc3dpdGNoICgkdHlwZSkgewogICAgICAgICAgICBjYXNlICd0YWJsZXMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1QgdGFibGVfbmFtZSBGUk9NIHVzZXJfdGFibGVzJzsKICAgICAgICAgICAgY2FzZSAnc3lub255bXMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1Qgc3lub255bV9uYW1lIEZST00gdXNlcl9zeW5vbnltcyc7CiAgICAgICAgICAgIGNhc2UgJ3ZpZXdzJzoKICAgICAgICAgICAgICAgIHJldHVybiAnU0VMRUNUIHZpZXdfbmFtZSBGUk9NIHVzZXJfdmlld3MnOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHF1b3RlRmxvYXQoKQoKICAgIC8qKgogICAgICogRm9ybWF0cyBhIGZsb2F0IHZhbHVlIGZvciB1c2Ugd2l0aGluIGEgcXVlcnkgaW4gYSBsb2NhbGUtaW5kZXBlbmRlbnQKICAgICAqIG1hbm5lci4KICAgICAqCiAgICAgKiBAcGFyYW0gZmxvYXQgdGhlIGZsb2F0IHZhbHVlIHRvIGJlIHF1b3RlZC4KICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBxdW90ZWQgc3RyaW5nLgogICAgICogQHNlZSBEQl9jb21tb246OnF1b3RlU21hcnQoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgcmVsZWFzZSAxLjcuOC4KICAgICAqLwogICAgZnVuY3Rpb24gcXVvdGVGbG9hdCgkZmxvYXQpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmVzY2FwZVNpbXBsZShzdHJfcmVwbGFjZSgnLCcsICcuJywgc3RydmFsKGZsb2F0dmFsKCRmbG9hdCkpKSk7CiAgICB9CiAgICAgCiAgICAvLyB9fX0KCn0KCi8qCiAqIExvY2FsIHZhcmlhYmxlczoKICogdGFiLXdpZHRoOiA0CiAqIGMtYmFzaWMtb2Zmc2V0OiA0CiAqIEVuZDoKICovCgo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/odbc.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBvZGJjIGV4dGVuc2lvbgogKiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBkYXRhYmFzZXMgdmlhIE9EQkMgY29ubmVjdGlvbnMKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFN0aWcgQmFra2VuIDxzc2JAcGhwLm5ldD4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgQ1ZTOiAkSWQ6IG9kYmMucGhwLHYgMS44MCAyMDA3LzAxLzEyIDAzOjExOjE3IGFoYXJ2ZXkgRXhwICQKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwoKLyoqCiAqIE9idGFpbiB0aGUgREJfY29tbW9uIGNsYXNzIHNvIGl0IGNhbiBiZSBleHRlbmRlZCBmcm9tCiAqLwpyZXF1aXJlX29uY2UgJ0RCL2NvbW1vbi5waHAnOwoKLyoqCiAqIFRoZSBtZXRob2RzIFBFQVIgREIgdXNlcyB0byBpbnRlcmFjdCB3aXRoIFBIUCdzIG9kYmMgZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIGRhdGFiYXNlcyB2aWEgT0RCQyBjb25uZWN0aW9ucwogKgogKiBUaGVzZSBtZXRob2RzIG92ZXJsb2FkIHRoZSBvbmVzIGRlY2xhcmVkIGluIERCX2NvbW1vbi4KICoKICogTW9yZSBpbmZvIG9uIE9EQkMgZXJyb3JzIGNvdWxkIGJlIGZvdW5kIGhlcmU6CiAqIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vbGlicmFyeS9kZWZhdWx0LmFzcD91cmw9L2xpYnJhcnkvZW4tdXMvdHJibHNxbC90cl9lcnJfb2RiY181c3R6LmFzcAogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBTdGlnIEJha2tlbiA8c3NiQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDEuNy4xMgogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCmNsYXNzIERCX29kYmMgZXh0ZW5kcyBEQl9jb21tb24KewogICAgLy8ge3t7IHByb3BlcnRpZXMKCiAgICAvKioKICAgICAqIFRoZSBEQiBkcml2ZXIgdHlwZSAobXlzcWwsIG9jaTgsIG9kYmMsIGV0Yy4pCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJHBocHR5cGUgPSAnb2RiYyc7CgogICAgLyoqCiAgICAgKiBUaGUgZGF0YWJhc2Ugc3ludGF4IHZhcmlhbnQgdG8gYmUgdXNlZCAoZGIyLCBhY2Nlc3MsIGV0Yy4pLCBpZiBhbnkKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkZGJzeW50YXggPSAnc3FsOTInOwoKICAgIC8qKgogICAgICogVGhlIGNhcGFiaWxpdGllcyBvZiB0aGlzIERCIGltcGxlbWVudGF0aW9uCiAgICAgKgogICAgICogVGhlICduZXdfbGluaycgZWxlbWVudCBjb250YWlucyB0aGUgUEhQIHZlcnNpb24gdGhhdCBmaXJzdCBwcm92aWRlZAogICAgICogbmV3X2xpbmsgc3VwcG9ydCBmb3IgdGhpcyBEQk1TLiAgQ29udGFpbnMgZmFsc2UgaWYgaXQncyB1bnN1cHBvcnRlZC4KICAgICAqCiAgICAgKiBNZWFuaW5nIG9mIHRoZSAnbGltaXQnIGVsZW1lbnQ6CiAgICAgKiAgICsgJ2VtdWxhdGUnID0gZW11bGF0ZSB3aXRoIGZldGNoIHJvdyBieSBudW1iZXIKICAgICAqICAgKyAnYWx0ZXInICAgPSBhbHRlciB0aGUgcXVlcnkKICAgICAqICAgKyBmYWxzZSAgICAgPSBza2lwIHJvd3MKICAgICAqCiAgICAgKiBOT1RFOiBUaGUgZmVhdHVyZSBzZXQgb2YgdGhlIGZvbGxvd2luZyBkcml2ZXJzIGFyZSBkaWZmZXJlbnQgdGhhbgogICAgICogdGhlIGRlZmF1bHQ6CiAgICAgKiAgICsgc29saWQ6ICd0cmFuc2FjdGlvbnMnID0gdHJ1ZQogICAgICogICArIG5hdmlzaW9uOiAnbGltaXQnID0gZmFsc2UKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZmVhdHVyZXMgPSBhcnJheSgKICAgICAgICAnbGltaXQnICAgICAgICAgPT4gJ2VtdWxhdGUnLAogICAgICAgICduZXdfbGluaycgICAgICA9PiBmYWxzZSwKICAgICAgICAnbnVtcm93cycgICAgICAgPT4gdHJ1ZSwKICAgICAgICAncGNvbm5lY3QnICAgICAgPT4gdHJ1ZSwKICAgICAgICAncHJlcGFyZScgICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ3NzbCcgICAgICAgICAgID0+IGZhbHNlLAogICAgICAgICd0cmFuc2FjdGlvbnMnICA9PiBmYWxzZSwKICAgICk7CgogICAgLyoqCiAgICAgKiBBIG1hcHBpbmcgb2YgbmF0aXZlIGVycm9yIGNvZGVzIHRvIERCIGVycm9yIGNvZGVzCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZXJyb3Jjb2RlX21hcCA9IGFycmF5KAogICAgICAgICcwMTAwNCcgPT4gREJfRVJST1JfVFJVTkNBVEVELAogICAgICAgICcwNzAwMScgPT4gREJfRVJST1JfTUlTTUFUQ0gsCiAgICAgICAgJzIxUzAxJyA9PiBEQl9FUlJPUl9WQUxVRV9DT1VOVF9PTl9ST1csCiAgICAgICAgJzIxUzAyJyA9PiBEQl9FUlJPUl9NSVNNQVRDSCwKICAgICAgICAnMjIwMDEnID0+IERCX0VSUk9SX0lOVkFMSUQsCiAgICAgICAgJzIyMDAzJyA9PiBEQl9FUlJPUl9JTlZBTElEX05VTUJFUiwKICAgICAgICAnMjIwMDUnID0+IERCX0VSUk9SX0lOVkFMSURfTlVNQkVSLAogICAgICAgICcyMjAwOCcgPT4gREJfRVJST1JfSU5WQUxJRF9EQVRFLAogICAgICAgICcyMjAxMicgPT4gREJfRVJST1JfRElWWkVSTywKICAgICAgICAnMjMwMDAnID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgJzIzNTAyJyA9PiBEQl9FUlJPUl9DT05TVFJBSU5UX05PVF9OVUxMLAogICAgICAgICcyMzUwMycgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAnMjM1MDQnID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgJzIzNTA1JyA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgICcyNDAwMCcgPT4gREJfRVJST1JfSU5WQUxJRCwKICAgICAgICAnMzQwMDAnID0+IERCX0VSUk9SX0lOVkFMSUQsCiAgICAgICAgJzM3MDAwJyA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgJzQyMDAwJyA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgJzQyNjAxJyA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgJ0lNMDAxJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnUzAwMDAnID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgICdTMDAwMScgPT4gREJfRVJST1JfQUxSRUFEWV9FWElTVFMsCiAgICAgICAgJ1MwMDAyJyA9PiBEQl9FUlJPUl9OT1NVQ0hUQUJMRSwKICAgICAgICAnUzAwMTEnID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgICdTMDAxMicgPT4gREJfRVJST1JfTk9UX0ZPVU5ELAogICAgICAgICdTMDAyMScgPT4gREJfRVJST1JfQUxSRUFEWV9FWElTVFMsCiAgICAgICAgJ1MwMDIyJyA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAnUzEwMDknID0+IERCX0VSUk9SX0lOVkFMSUQsCiAgICAgICAgJ1MxMDkwJyA9PiBEQl9FUlJPUl9JTlZBTElELAogICAgICAgICdTMUMwMCcgPT4gREJfRVJST1JfTk9UX0NBUEFCTEUsCiAgICApOwoKICAgIC8qKgogICAgICogVGhlIHJhdyBkYXRhYmFzZSBjb25uZWN0aW9uIGNyZWF0ZWQgYnkgUEhQCiAgICAgKiBAdmFyIHJlc291cmNlCiAgICAgKi8KICAgIHZhciAkY29ubmVjdGlvbjsKCiAgICAvKioKICAgICAqIFRoZSBEU04gaW5mb3JtYXRpb24gZm9yIGNvbm5lY3RpbmcgdG8gYSBkYXRhYmFzZQogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGRzbiA9IGFycmF5KCk7CgoKICAgIC8qKgogICAgICogVGhlIG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IGEgZGF0YSBtYW5pcHVsYXRpb24gcXVlcnkKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkYWZmZWN0ZWQgPSAwOwoKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogVGhpcyBjb25zdHJ1Y3RvciBjYWxscyA8a2JkPiR0aGlzLT5EQl9jb21tb24oKTwva2JkPgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBEQl9vZGJjKCkKICAgIHsKICAgICAgICAkdGhpcy0+REJfY29tbW9uKCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgY29ubmVjdCgpCgogICAgLyoqCiAgICAgKiBDb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIsIGxvZyBpbiBhbmQgb3BlbiB0aGUgZGF0YWJhc2UKICAgICAqCiAgICAgKiBEb24ndCBjYWxsIHRoaXMgbWV0aG9kIGRpcmVjdGx5LiAgVXNlIERCOjpjb25uZWN0KCkgaW5zdGVhZC4KICAgICAqCiAgICAgKiBQRUFSIERCJ3Mgb2RiYyBkcml2ZXIgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBleHRyYSBEU04gb3B0aW9uczoKICAgICAqICAgKyBjdXJzb3IgIFRoZSB0eXBlIG9mIGN1cnNvciB0byBiZSB1c2VkIGZvciB0aGlzIGNvbm5lY3Rpb24uCiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRkc24gICAgICAgICB0aGUgZGF0YSBzb3VyY2UgbmFtZQogICAgICogQHBhcmFtIGJvb2wgICRwZXJzaXN0ZW50ICBzaG91bGQgdGhlIGNvbm5lY3Rpb24gYmUgcGVyc2lzdGVudD8KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29ubmVjdCgkZHNuLCAkcGVyc2lzdGVudCA9IGZhbHNlKQogICAgewogICAgICAgIGlmICghUEVBUjo6bG9hZEV4dGVuc2lvbignb2RiYycpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9FWFRFTlNJT05fTk9UX0ZPVU5EKTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5kc24gPSAkZHNuOwogICAgICAgIGlmICgkZHNuWydkYnN5bnRheCddKSB7CiAgICAgICAgICAgICR0aGlzLT5kYnN5bnRheCA9ICRkc25bJ2Ric3ludGF4J107CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAoJHRoaXMtPmRic3ludGF4KSB7CiAgICAgICAgICAgIGNhc2UgJ2FjY2Vzcyc6CiAgICAgICAgICAgIGNhc2UgJ2RiMic6CiAgICAgICAgICAgIGNhc2UgJ3NvbGlkJzoKICAgICAgICAgICAgICAgICR0aGlzLT5mZWF0dXJlc1sndHJhbnNhY3Rpb25zJ10gPSB0cnVlOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ25hdmlzaW9uJzoKICAgICAgICAgICAgICAgICR0aGlzLT5mZWF0dXJlc1snbGltaXQnXSA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgLyoKICAgICAgICAgKiBUaGlzIGlzIGhlYXIgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LiBTaG91bGQgaGF2ZSBiZWVuIHVzaW5nCiAgICAgICAgICogJ2RhdGFiYXNlJyBhbGwgYWxvbmcsIGJ1dCBwcmlvciB0byAxLjYuMFJDMyAnaG9zdHNwZWMnIHdhcyB1c2VkLgogICAgICAgICAqLwogICAgICAgIGlmICgkZHNuWydkYXRhYmFzZSddKSB7CiAgICAgICAgICAgICRvZGJjZHNuID0gJGRzblsnZGF0YWJhc2UnXTsKICAgICAgICB9IGVsc2VpZiAoJGRzblsnaG9zdHNwZWMnXSkgewogICAgICAgICAgICAkb2RiY2RzbiA9ICRkc25bJ2hvc3RzcGVjJ107CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJG9kYmNkc24gPSAnbG9jYWxob3N0JzsKICAgICAgICB9CgogICAgICAgICRjb25uZWN0X2Z1bmN0aW9uID0gJHBlcnNpc3RlbnQgPyAnb2RiY19wY29ubmVjdCcgOiAnb2RiY19jb25uZWN0JzsKCiAgICAgICAgaWYgKGVtcHR5KCRkc25bJ2N1cnNvciddKSkgewogICAgICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEAkY29ubmVjdF9mdW5jdGlvbigkb2RiY2RzbiwgJGRzblsndXNlcm5hbWUnXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRzblsncGFzc3dvcmQnXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBAJGNvbm5lY3RfZnVuY3Rpb24oJG9kYmNkc24sICRkc25bJ3VzZXJuYW1lJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkc25bJ3Bhc3N3b3JkJ10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkc25bJ2N1cnNvciddKTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNfcmVzb3VyY2UoJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3JOYXRpdmUoKSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBkaXNjb25uZWN0KCkKCiAgICAvKioKICAgICAqIERpc2Nvbm5lY3RzIGZyb20gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgVFJVRSBvbiBzdWNjZXNzLCBGQUxTRSBvbiBmYWlsdXJlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpc2Nvbm5lY3QoKQogICAgewogICAgICAgICRlcnIgPSBAb2RiY19jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBudWxsOwogICAgICAgIHJldHVybiAkZXJyOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHNpbXBsZVF1ZXJ5KCkKCiAgICAvKioKICAgICAqIFNlbmRzIGEgcXVlcnkgdG8gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgKyBhIFBIUCByZXN1bHQgcmVzcm91Y2UgZm9yIHN1Y2Nlc3NmdWwgU0VMRUNUIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgdGhlIERCX09LIGNvbnN0YW50IGZvciBvdGhlciBzdWNjZXNzZnVsIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgYSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBzaW1wbGVRdWVyeSgkcXVlcnkpCiAgICB7CiAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJHF1ZXJ5ID0gJHRoaXMtPm1vZGlmeVF1ZXJ5KCRxdWVyeSk7CiAgICAgICAgJHJlc3VsdCA9IEBvZGJjX2V4ZWMoJHRoaXMtPmNvbm5lY3Rpb24sICRxdWVyeSk7CiAgICAgICAgaWYgKCEkcmVzdWx0KSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2RiY1JhaXNlRXJyb3IoKTsgLy8gWFhYIEVSUk9STVNHCiAgICAgICAgfQogICAgICAgIC8vIERldGVybWluZSB3aGljaCBxdWVyaWVzIHRoYXQgc2hvdWxkIHJldHVybiBkYXRhLCBhbmQgd2hpY2gKICAgICAgICAvLyBzaG91bGQgcmV0dXJuIGFuIGVycm9yIGNvZGUgb25seS4KICAgICAgICBpZiAoJHRoaXMtPl9jaGVja01hbmlwKCRxdWVyeSkpIHsKICAgICAgICAgICAgJHRoaXMtPmFmZmVjdGVkID0gJHJlc3VsdDsgLy8gRm9yIGFmZmVjdGVkUm93cygpCiAgICAgICAgICAgIHJldHVybiBEQl9PSzsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPmFmZmVjdGVkID0gMDsKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBuZXh0UmVzdWx0KCkKCiAgICAvKioKICAgICAqIE1vdmUgdGhlIGludGVybmFsIG9kYmMgcmVzdWx0IHBvaW50ZXIgdG8gdGhlIG5leHQgYXZhaWxhYmxlIHJlc3VsdAogICAgICoKICAgICAqIEBwYXJhbSBhIHZhbGlkIGZic3FsIHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKgogICAgICogQHJldHVybiB0cnVlIGlmIGEgcmVzdWx0IGlzIGF2YWlsYWJsZSBvdGhlcndpc2UgcmV0dXJuIGZhbHNlCiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRSZXN1bHQoJHJlc3VsdCkKICAgIHsKICAgICAgICByZXR1cm4gQG9kYmNfbmV4dF9yZXN1bHQoJHJlc3VsdCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hJbnRvKCkKCiAgICAvKioKICAgICAqIFBsYWNlcyBhIHJvdyBmcm9tIHRoZSByZXN1bHQgc2V0IGludG8gdGhlIGdpdmVuIGFycmF5CiAgICAgKgogICAgICogRm9ybWF0aW5nIG9mIHRoZSBhcnJheSBhbmQgdGhlIGRhdGEgdGhlcmVpbiBhcmUgY29uZmlndXJhYmxlLgogICAgICogU2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmZXRjaEludG8oKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICAgIHRoZSBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqIEBwYXJhbSBhcnJheSAgICAkYXJyICAgICAgIHRoZSByZWZlcmVuY2VkIGFycmF5IHRvIHB1dCB0aGUgZGF0YSBpbgogICAgICogQHBhcmFtIGludCAgICAgICRmZXRjaG1vZGUgaG93IHRoZSByZXN1bHRpbmcgYXJyYXkgc2hvdWxkIGJlIGluZGV4ZWQKICAgICAqIEBwYXJhbSBpbnQgICAgICAkcm93bnVtICAgIHRoZSByb3cgbnVtYmVyIHRvIGZldGNoICgwID0gZmlyc3Qgcm93KQogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIERCX09LIG9uIHN1Y2Nlc3MsIE5VTEwgd2hlbiB0aGUgZW5kIG9mIGEgcmVzdWx0IHNldCBpcwogICAgICogICAgICAgICAgICAgICAgIHJlYWNoZWQgb3Igb24gZmFpbHVyZQogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKQogICAgICovCiAgICBmdW5jdGlvbiBmZXRjaEludG8oJHJlc3VsdCwgJiRhcnIsICRmZXRjaG1vZGUsICRyb3dudW0gPSBudWxsKQogICAgewogICAgICAgICRhcnIgPSBhcnJheSgpOwogICAgICAgIGlmICgkcm93bnVtICE9PSBudWxsKSB7CiAgICAgICAgICAgICRyb3dudW0rKzsgLy8gT0RCQyBmaXJzdCByb3cgaXMgMQogICAgICAgICAgICBpZiAodmVyc2lvbl9jb21wYXJlKHBocHZlcnNpb24oKSwgJzQuMi4wJywgJ2dlJykpIHsKICAgICAgICAgICAgICAgICRjb2xzID0gQG9kYmNfZmV0Y2hfaW50bygkcmVzdWx0LCAkYXJyLCAkcm93bnVtKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRjb2xzID0gQG9kYmNfZmV0Y2hfaW50bygkcmVzdWx0LCAkcm93bnVtLCAkYXJyKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRjb2xzID0gQG9kYmNfZmV0Y2hfaW50bygkcmVzdWx0LCAkYXJyKTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkY29scykgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgaWYgKCRmZXRjaG1vZGUgIT09IERCX0ZFVENITU9ERV9PUkRFUkVEKSB7CiAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IGNvdW50KCRhcnIpOyAkaSsrKSB7CiAgICAgICAgICAgICAgICAkY29sTmFtZSA9IEBvZGJjX2ZpZWxkX25hbWUoJHJlc3VsdCwgJGkrMSk7CiAgICAgICAgICAgICAgICAkYVskY29sTmFtZV0gPSAkYXJyWyRpXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9MT1dFUkNBU0UpIHsKICAgICAgICAgICAgICAgICRhID0gYXJyYXlfY2hhbmdlX2tleV9jYXNlKCRhLCBDQVNFX0xPV0VSKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkYXJyID0gJGE7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX1JUUklNKSB7CiAgICAgICAgICAgICR0aGlzLT5fcnRyaW1BcnJheVZhbHVlcygkYXJyKTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTlVMTF9UT19FTVBUWSkgewogICAgICAgICAgICAkdGhpcy0+X2NvbnZlcnROdWxsQXJyYXlWYWx1ZXNUb0VtcHR5KCRhcnIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZnJlZVJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIHRoZSByZXN1bHQgc2V0IGFuZCBmcmVlcyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmcmVlKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIGlmICRyZXN1bHQgaXMgaW52YWxpZAogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmcmVlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZnJlZVJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIHJldHVybiBpc19yZXNvdXJjZSgkcmVzdWx0KSA/IG9kYmNfZnJlZV9yZXN1bHQoJHJlc3VsdCkgOiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Db2xzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6bnVtQ29scygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpudW1Db2xzKCkKICAgICAqLwogICAgZnVuY3Rpb24gbnVtQ29scygkcmVzdWx0KQogICAgewogICAgICAgICRjb2xzID0gQG9kYmNfbnVtX2ZpZWxkcygkcmVzdWx0KTsKICAgICAgICBpZiAoISRjb2xzKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2RiY1JhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRjb2xzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGFmZmVjdGVkUm93cygpCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2Ygcm93cyBhZmZlY3RlZCBieSBhIGRhdGEgbWFuaXVwbGF0aW9uIHF1ZXJ5CiAgICAgKgogICAgICogMCBpcyByZXR1cm5lZCBmb3IgcXVlcmllcyB0aGF0IGRvbid0IG1hbmlwdWxhdGUgZGF0YS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gYWZmZWN0ZWRSb3dzKCkKICAgIHsKICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPmFmZmVjdGVkKSkgeyAgLy8gSW4gY2FzZSBvZiBTRUxFQ1Qgc3RtcwogICAgICAgICAgICByZXR1cm4gMDsKICAgICAgICB9CiAgICAgICAgJG5yb3dzID0gQG9kYmNfbnVtX3Jvd3MoJHRoaXMtPmFmZmVjdGVkKTsKICAgICAgICBpZiAoJG5yb3dzID09IC0xKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2RiY1JhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRucm93czsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Sb3dzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiByb3dzIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIE5vdCBhbGwgT0RCQyBkcml2ZXJzIHN1cHBvcnQgdGhpcyBmdW5jdGlvbmFsaXR5LiAgSWYgdGhleSBkb24ndAogICAgICogYSBEQl9FcnJvciBvYmplY3QgZm9yIERCX0VSUk9SX1VOU1VQUE9SVEVEIGlzIHJldHVybmVkLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6bnVtUm93cygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpudW1Sb3dzKCkKICAgICAqLwogICAgZnVuY3Rpb24gbnVtUm93cygkcmVzdWx0KQogICAgewogICAgICAgICRucm93cyA9IEBvZGJjX251bV9yb3dzKCRyZXN1bHQpOwogICAgICAgIGlmICgkbnJvd3MgPT0gLTEpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5vZGJjUmFpc2VFcnJvcihEQl9FUlJPUl9VTlNVUFBPUlRFRCk7CiAgICAgICAgfQogICAgICAgIGlmICgkbnJvd3MgPT09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2RiY1JhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRucm93czsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdW90ZUlkZW50aWZpZXIoKQoKICAgIC8qKgogICAgICogUXVvdGVzIGEgc3RyaW5nIHNvIGl0IGNhbiBiZSBzYWZlbHkgdXNlZCBhcyBhIHRhYmxlIG9yIGNvbHVtbiBuYW1lCiAgICAgKgogICAgICogVXNlICdtc3NxbCcgYXMgdGhlIGRic3ludGF4IGluIHRoZSBEQiBEU04gb25seSBpZiB5b3UndmUgdW5jaGVja2VkCiAgICAgKiAiVXNlIEFOU0kgcXVvdGVkIGlkZW50aWZpZXJzIiB3aGVuIHNldHRpbmcgdXAgdGhlIE9EQkMgZGF0YSBzb3VyY2UuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc3RyICBpZGVudGlmaWVyIG5hbWUgdG8gYmUgcXVvdGVkCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHF1b3RlZCBpZGVudGlmaWVyIHN0cmluZwogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZUlkZW50aWZpZXIoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjYuMAogICAgICovCiAgICBmdW5jdGlvbiBxdW90ZUlkZW50aWZpZXIoJHN0cikKICAgIHsKICAgICAgICBzd2l0Y2ggKCR0aGlzLT5kc25bJ2Ric3ludGF4J10pIHsKICAgICAgICAgICAgY2FzZSAnYWNjZXNzJzoKICAgICAgICAgICAgICAgIHJldHVybiAnWycgLiAkc3RyIC4gJ10nOwogICAgICAgICAgICBjYXNlICdtc3NxbCc6CiAgICAgICAgICAgIGNhc2UgJ3N5YmFzZSc6CiAgICAgICAgICAgICAgICByZXR1cm4gJ1snIC4gc3RyX3JlcGxhY2UoJ10nLCAnXV0nLCAkc3RyKSAuICddJzsKICAgICAgICAgICAgY2FzZSAnbXlzcWwnOgogICAgICAgICAgICBjYXNlICdteXNxbGknOgogICAgICAgICAgICAgICAgcmV0dXJuICdgJyAuICRzdHIgLiAnYCc7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gJyInIC4gc3RyX3JlcGxhY2UoJyInLCAnIiInLCAkc3RyKSAuICciJzsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcXVvdGUoKQoKICAgIC8qKgogICAgICogQGRlcHJlY2F0ZWQgIERlcHJlY2F0ZWQgaW4gcmVsZWFzZSAxLjYuMAogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIGZ1bmN0aW9uIHF1b3RlKCRzdHIpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5xdW90ZVNtYXJ0KCRzdHIpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG5leHRJZCgpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGZyZWUgaWQgaW4gYSBzZXF1ZW5jZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgc2VxdWVuY2UKICAgICAqIEBwYXJhbSBib29sZWFuICRvbmRlbWFuZCAgd2hlbiB0cnVlLCB0aGUgc2VxZW5jZSBpcyBhdXRvbWF0aWNhbGx5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkIGlmIGl0IGRvZXMgbm90IGV4aXN0CiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBuZXh0IGlkIG51bWJlciBpbiB0aGUgc2VxdWVuY2UuCiAgICAgKiAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246Om5leHRJRCgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9vZGJjOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9vZGJjOjpkcm9wU2VxdWVuY2UoKQogICAgICovCiAgICBmdW5jdGlvbiBuZXh0SWQoJHNlcV9uYW1lLCAkb25kZW1hbmQgPSB0cnVlKQogICAgewogICAgICAgICRzZXFuYW1lID0gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpOwogICAgICAgICRyZXBlYXQgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5xdWVyeSgidXBkYXRlICR7c2VxbmFtZX0gc2V0IGlkID0gaWQgKyAxIik7CiAgICAgICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgICAgIGlmICgkb25kZW1hbmQgJiYgREI6OmlzRXJyb3IoJHJlc3VsdCkgJiYKICAgICAgICAgICAgICAgICRyZXN1bHQtPmdldENvZGUoKSA9PSBEQl9FUlJPUl9OT1NVQ0hUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlcGVhdCA9IDE7CiAgICAgICAgICAgICAgICAkdGhpcy0+cHVzaEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwogICAgICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5jcmVhdGVTZXF1ZW5jZSgkc2VxX25hbWUpOwogICAgICAgICAgICAgICAgJHRoaXMtPnBvcEVycm9ySGFuZGxpbmcoKTsKICAgICAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigkcmVzdWx0KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+cXVlcnkoImluc2VydCBpbnRvICR7c2VxbmFtZX0gKGlkKSB2YWx1ZXMoMCkiKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRyZXBlYXQgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfSB3aGlsZSAoJHJlcGVhdCk7CgogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPnF1ZXJ5KCJzZWxlY3QgaWQgZnJvbSAke3NlcW5hbWV9Iik7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0KCiAgICAgICAgJHJvdyA9ICRyZXN1bHQtPmZldGNoUm93KERCX0ZFVENITU9ERV9PUkRFUkVEKTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJvdyB8fCAhJHJvdykpIHsKICAgICAgICAgICAgcmV0dXJuICRyb3c7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJvd1swXTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9vZGJjOjpuZXh0SUQoKSwgREJfb2RiYzo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cXVlcnkoJ0NSRUFURSBUQUJMRSAnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAnIChpZCBpbnRlZ2VyIE5PVCBOVUxMLCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyBQUklNQVJZIEtFWShpZCkpJyk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZHJvcFNlcXVlbmNlKCkKCiAgICAvKioKICAgICAqIERlbGV0ZXMgYSBzZXF1ZW5jZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZSB0byBiZSBkZWxldGVkCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpkcm9wU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfb2RiYzo6bmV4dElEKCksIERCX29kYmM6OmNyZWF0ZVNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZHJvcFNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCdEUk9QIFRBQkxFICcgLiAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGF1dG9Db21taXQoKQoKICAgIC8qKgogICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyBhdXRvbWF0aWMgY29tbWl0cwogICAgICoKICAgICAqIEBwYXJhbSBib29sICRvbm9mZiAgdHJ1ZSB0dXJucyBpdCBvbiwgZmFsc2UgdHVybnMgaXQgb2ZmCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBpZiB0aGUgZHJpdmVyCiAgICAgKiAgICAgICAgICAgICAgIGRvZXNuJ3Qgc3VwcG9ydCBhdXRvLWNvbW1pdHRpbmcgdHJhbnNhY3Rpb25zLgogICAgICovCiAgICBmdW5jdGlvbiBhdXRvQ29tbWl0KCRvbm9mZiA9IGZhbHNlKQogICAgewogICAgICAgIGlmICghQG9kYmNfYXV0b2NvbW1pdCgkdGhpcy0+Y29ubmVjdGlvbiwgJG9ub2ZmKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPm9kYmNSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb21taXQoKQoKICAgIC8qKgogICAgICogQ29tbWl0cyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gY29tbWl0KCkKICAgIHsKICAgICAgICBpZiAoIUBvZGJjX2NvbW1pdCgkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5vZGJjUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcm9sbGJhY2soKQoKICAgIC8qKgogICAgICogUmV2ZXJ0cyB0aGUgY3VycmVudCB0cmFuc2FjdGlvbgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gcm9sbGJhY2soKQogICAgewogICAgICAgIGlmICghQG9kYmNfcm9sbGJhY2soJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2RiY1JhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG9kYmNSYWlzZUVycm9yKCkKCiAgICAvKioKICAgICAqIFByb2R1Y2VzIGEgREJfRXJyb3Igb2JqZWN0IHJlZ2FyZGluZyB0aGUgY3VycmVudCBwcm9ibGVtCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZXJybm8gIGlmIHRoZSBlcnJvciBpcyBiZWluZyBtYW51YWxseSByYWlzZWQgcGFzcyBhCiAgICAgKiAgICAgICAgICAgICAgICAgICAgIERCX0VSUk9SKiBjb25zdGFudCBoZXJlLiAgSWYgdGhpcyBpc24ndCBwYXNzZWQKICAgICAqICAgICAgICAgICAgICAgICAgICAgdGhlIGVycm9yIGluZm9ybWF0aW9uIGdhdGhlcmVkIGZyb20gdGhlIERCTVMuCiAgICAgKgogICAgICogQHJldHVybiBvYmplY3QgIHRoZSBEQl9FcnJvciBvYmplY3QKICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6cmFpc2VFcnJvcigpLAogICAgICogICAgICBEQl9vZGJjOjplcnJvck5hdGl2ZSgpLCBEQl9jb21tb246OmVycm9yQ29kZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG9kYmNSYWlzZUVycm9yKCRlcnJubyA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRlcnJubyA9PT0gbnVsbCkgewogICAgICAgICAgICBzd2l0Y2ggKCR0aGlzLT5kYnN5bnRheCkgewogICAgICAgICAgICAgICAgY2FzZSAnYWNjZXNzJzoKICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9FUlJPUlMpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmVycm9yY29kZV9tYXBbJzA3MDAxJ10gPSBEQl9FUlJPUl9OT1NVQ0hGSUVMRDsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAvLyBEb2luZyB0aGlzIGluIGNhc2UgbW9kZSBjaGFuZ2VzIGR1cmluZyBydW50aW1lLgogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3Jjb2RlX21hcFsnMDcwMDEnXSA9IERCX0VSUk9SX01JU01BVENIOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJG5hdGl2ZV9jb2RlID0gb2RiY19lcnJvcigkdGhpcy0+Y29ubmVjdGlvbik7CgogICAgICAgICAgICAgICAgICAgIC8vIFMxMDAwIGlzIGZvciAiR2VuZXJhbCBFcnJvci4iICBMZXQncyBiZSBtb3JlIHNwZWNpZmljLgogICAgICAgICAgICAgICAgICAgIGlmICgkbmF0aXZlX2NvZGUgPT0gJ1MxMDAwJykgewogICAgICAgICAgICAgICAgICAgICAgICAkZXJyb3Jtc2cgPSBvZGJjX2Vycm9ybXNnKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAgICAgICAgICAgICAgICAgc3RhdGljICRlcnJvcl9yZWdleHBzOwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRlcnJvcl9yZWdleHBzKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yX3JlZ2V4cHMgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnL2luY2x1ZGVzIHJlbGF0ZWQgcmVjb3Jkcy4kL2knICA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcvY2Fubm90IGNvbnRhaW4gYSBOdWxsIHZhbHVlL2knID0+IERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRlcnJvcl9yZWdleHBzIGFzICRyZWdleHAgPT4gJGNvZGUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCRyZWdleHAsICRlcnJvcm1zZykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJGNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5hdGl2ZV9jb2RlIC4gJyAnIC4gJGVycm9ybXNnKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkZXJybm8gPSBEQl9FUlJPUjsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkZXJybm8gPSAkdGhpcy0+ZXJyb3JDb2RlKCRuYXRpdmVfY29kZSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICAkZXJybm8gPSAkdGhpcy0+ZXJyb3JDb2RlKG9kYmNfZXJyb3IoJHRoaXMtPmNvbm5lY3Rpb24pKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJGVycm5vLCBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+ZXJyb3JOYXRpdmUoKSk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXJyb3JOYXRpdmUoKQoKICAgIC8qKgogICAgICogR2V0cyB0aGUgREJNUycgbmF0aXZlIGVycm9yIGNvZGUgYW5kIG1lc3NhZ2UgcHJvZHVjZWQgYnkgdGhlIGxhc3QgcXVlcnkKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIERCTVMnIGVycm9yIGNvZGUgYW5kIG1lc3NhZ2UKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JOYXRpdmUoKQogICAgewogICAgICAgIGlmICghaXNfcmVzb3VyY2UoJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgIHJldHVybiBAb2RiY19lcnJvcigpIC4gJyAnIC4gQG9kYmNfZXJyb3Jtc2coKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBvZGJjX2Vycm9yKCR0aGlzLT5jb25uZWN0aW9uKSAuICcgJyAuIEBvZGJjX2Vycm9ybXNnKCR0aGlzLT5jb25uZWN0aW9uKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyB0YWJsZUluZm8oKQoKICAgIC8qKgogICAgICogUmV0dXJucyBpbmZvcm1hdGlvbiBhYm91dCBhIHRhYmxlIG9yIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIEBwYXJhbSBvYmplY3R8c3RyaW5nICAkcmVzdWx0ICBEQl9yZXN1bHQgb2JqZWN0IGZyb20gYSBxdWVyeSBvciBhCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lIG9mIGEgdGFibGUuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIHRoaXMgYWxzbyBhY2NlcHRzIGEgcXVlcnkgcmVzdWx0CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlIGlkZW50aWZpZXIsIHRoaXMgYmVoYXZpb3IgaXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZC4KICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAkbW9kZSAgICBhIHZhbGlkIHRhYmxlSW5mbyBtb2RlCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSAgYW4gYXNzb2NpYXRpdmUgYXJyYXkgd2l0aCB0aGUgaW5mb3JtYXRpb24gcmVxdWVzdGVkLgogICAgICogICAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnRhYmxlSW5mbygpCiAgICAgKiBAc2luY2UgTWV0aG9kIGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNy4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIHRhYmxlSW5mbygkcmVzdWx0LCAkbW9kZSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGlzX3N0cmluZygkcmVzdWx0KSkgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHRhYmxlIG5hbWUuCiAgICAgICAgICAgICAqIENyZWF0ZSBhIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJGlkID0gQG9kYmNfZXhlYygkdGhpcy0+Y29ubmVjdGlvbiwgIlNFTEVDVCAqIEZST00gJHJlc3VsdCIpOwogICAgICAgICAgICBpZiAoISRpZCkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5vZGJjUmFpc2VFcnJvcigpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRnb3Rfc3RyaW5nID0gdHJ1ZTsKICAgICAgICB9IGVsc2VpZiAoaXNzZXQoJHJlc3VsdC0+cmVzdWx0KSkgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHJlc3VsdCBvYmplY3QuCiAgICAgICAgICAgICAqIEV4dHJhY3QgdGhlIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJGlkID0gJHJlc3VsdC0+cmVzdWx0OwogICAgICAgICAgICAkZ290X3N0cmluZyA9IGZhbHNlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIFByb2JhYmx5IHJlY2VpdmVkIGEgcmVzdWx0IHJlc291cmNlIGlkZW50aWZpZXIuCiAgICAgICAgICAgICAqIENvcHkgaXQuCiAgICAgICAgICAgICAqIERlcHJlY2F0ZWQuICBIZXJlIGZvciBjb21wYXRpYmlsaXR5IG9ubHkuCiAgICAgICAgICAgICAqLwogICAgICAgICAgICAkaWQgPSAkcmVzdWx0OwogICAgICAgICAgICAkZ290X3N0cmluZyA9IGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgaWYgKCFpc19yZXNvdXJjZSgkaWQpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2RiY1JhaXNlRXJyb3IoREJfRVJST1JfTkVFRF9NT1JFX0RBVEEpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydG9sb3dlcic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ2YWwnOwogICAgICAgIH0KCiAgICAgICAgJGNvdW50ID0gQG9kYmNfbnVtX2ZpZWxkcygkaWQpOwogICAgICAgICRyZXMgICA9IGFycmF5KCk7CgogICAgICAgIGlmICgkbW9kZSkgewogICAgICAgICAgICAkcmVzWydudW1fZmllbGRzJ10gPSAkY291bnQ7CiAgICAgICAgfQoKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkY291bnQ7ICRpKyspIHsKICAgICAgICAgICAgJGNvbCA9ICRpICsgMTsKICAgICAgICAgICAgJHJlc1skaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICd0YWJsZScgPT4gJGdvdF9zdHJpbmcgPyAkY2FzZV9mdW5jKCRyZXN1bHQpIDogJycsCiAgICAgICAgICAgICAgICAnbmFtZScgID0+ICRjYXNlX2Z1bmMoQG9kYmNfZmllbGRfbmFtZSgkaWQsICRjb2wpKSwKICAgICAgICAgICAgICAgICd0eXBlJyAgPT4gQG9kYmNfZmllbGRfdHlwZSgkaWQsICRjb2wpLAogICAgICAgICAgICAgICAgJ2xlbicgICA9PiBAb2RiY19maWVsZF9sZW4oJGlkLCAkY29sKSwKICAgICAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkbW9kZSAmIERCX1RBQkxFSU5GT19PUkRFUikgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXInXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkbW9kZSAmIERCX1RBQkxFSU5GT19PUkRFUlRBQkxFKSB7CiAgICAgICAgICAgICAgICAkcmVzWydvcmRlcnRhYmxlJ11bJHJlc1skaV1bJ3RhYmxlJ11dWyRyZXNbJGldWyduYW1lJ11dID0gJGk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIGZyZWUgdGhlIHJlc3VsdCBvbmx5IGlmIHdlIHdlcmUgY2FsbGVkIG9uIGEgdGFibGUKICAgICAgICBpZiAoJGdvdF9zdHJpbmcpIHsKICAgICAgICAgICAgQG9kYmNfZnJlZV9yZXN1bHQoJGlkKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0U3BlY2lhbFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIE9idGFpbnMgdGhlIHF1ZXJ5IHN0cmluZyBuZWVkZWQgZm9yIGxpc3RpbmcgYSBnaXZlbiB0eXBlIG9mIG9iamVjdHMKICAgICAqCiAgICAgKiBUaGFua3MgdG8gc3ltYm9sMUBnbWFpbC5jb20gYW5kIFBoaWxpcHBlLkphdXNpb25zQDExYWJhY3VzLmNvbS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlICB0aGUga2luZCBvZiBvYmplY3RzIHlvdSB3YW50IHRvIHJldHJpZXZlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBsaXN0IG9mIG9iamVjdHMgcmVxdWVzdGVkCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEBzZWUgREJfY29tbW9uOjpnZXRMaXN0T2YoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjcuMAogICAgICovCiAgICBmdW5jdGlvbiBnZXRTcGVjaWFsUXVlcnkoJHR5cGUpCiAgICB7CiAgICAgICAgc3dpdGNoICgkdHlwZSkgewogICAgICAgICAgICBjYXNlICdkYXRhYmFzZXMnOgogICAgICAgICAgICAgICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoJ29kYmNfZGF0YV9zb3VyY2UnKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHJlcyA9IEBvZGJjX2RhdGFfc291cmNlKCR0aGlzLT5jb25uZWN0aW9uLCBTUUxfRkVUQ0hfRklSU1QpOwogICAgICAgICAgICAgICAgaWYgKGlzX2FycmF5KCRyZXMpKSB7CiAgICAgICAgICAgICAgICAgICAgJG91dCA9IGFycmF5KCRyZXNbJ3NlcnZlciddKTsKICAgICAgICAgICAgICAgICAgICB3aGlsZSgkcmVzID0gQG9kYmNfZGF0YV9zb3VyY2UoJHRoaXMtPmNvbm5lY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNRTF9GRVRDSF9ORVhUKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICRvdXRbXSA9ICRyZXNbJ3NlcnZlciddOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gJG91dDsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5vZGJjUmFpc2VFcnJvcigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3RhYmxlcyc6CiAgICAgICAgICAgIGNhc2UgJ3NjaGVtYS50YWJsZXMnOgogICAgICAgICAgICAgICAgJGtlZXAgPSAnVEFCTEUnOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3ZpZXdzJzoKICAgICAgICAgICAgICAgICRrZWVwID0gJ1ZJRVcnOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CgogICAgICAgIC8qCiAgICAgICAgICogUmVtb3Zpbmcgbm9uLWNvbmZvcm1pbmcgaXRlbXMgaW4gdGhlIHdoaWxlIGxvb3AgcmF0aGVyIHRoYW4KICAgICAgICAgKiBpbiB0aGUgb2RiY190YWJsZXMoKSBjYWxsIGJlY2F1c2Ugc29tZSBiYWNrZW5kcyBjaG9rZSBvbiB0aGlzOgogICAgICAgICAqICAgICBvZGJjX3RhYmxlcygkdGhpcy0+Y29ubmVjdGlvbiwgJycsICcnLCAnJywgJ1RBQkxFJykKICAgICAgICAgKi8KICAgICAgICAkcmVzICA9IEBvZGJjX3RhYmxlcygkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgaWYgKCEkcmVzKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+b2RiY1JhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgJG91dCA9IGFycmF5KCk7CiAgICAgICAgd2hpbGUgKCRyb3cgPSBvZGJjX2ZldGNoX2FycmF5KCRyZXMpKSB7CiAgICAgICAgICAgIGlmICgkcm93WydUQUJMRV9UWVBFJ10gIT0gJGtlZXApIHsKICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkdHlwZSA9PSAnc2NoZW1hLnRhYmxlcycpIHsKICAgICAgICAgICAgICAgICRvdXRbXSA9ICRyb3dbJ1RBQkxFX1NDSEVNJ10gLiAnLicgLiAkcm93WydUQUJMRV9OQU1FJ107CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkb3V0W10gPSAkcm93WydUQUJMRV9OQU1FJ107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXQ7CiAgICB9CgogICAgLy8gfX19Cgp9CgovKgogKiBMb2NhbCB2YXJpYWJsZXM6CiAqIHRhYi13aWR0aDogNAogKiBjLWJhc2ljLW9mZnNldDogNAogKiBFbmQ6CiAqLwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/pgsql.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBwZ3NxbCBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggUG9zdGdyZVNRTCBkYXRhYmFzZXMKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFJ1aSBIaXJva2F3YSA8aGlyb2thd2FAcGhwLm5ldD4KICogQGF1dGhvciAgICAgU3RpZyBCYWtrZW4gPHNzYkBwaHAubmV0PgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBDVlM6ICRJZDogcGdzcWwucGhwLHYgMS4xMzYgMjAwNy8wNi8yOSAxMzoxMDo0MCBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBPYnRhaW4gdGhlIERCX2NvbW1vbiBjbGFzcyBzbyBpdCBjYW4gYmUgZXh0ZW5kZWQgZnJvbQogKi8KcmVxdWlyZV9vbmNlICdEQi9jb21tb24ucGhwJzsKCi8qKgogKiBUaGUgbWV0aG9kcyBQRUFSIERCIHVzZXMgdG8gaW50ZXJhY3Qgd2l0aCBQSFAncyBwZ3NxbCBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggUG9zdGdyZVNRTCBkYXRhYmFzZXMKICoKICogVGhlc2UgbWV0aG9kcyBvdmVybG9hZCB0aGUgb25lcyBkZWNsYXJlZCBpbiBEQl9jb21tb24uCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFJ1aSBIaXJva2F3YSA8aGlyb2thd2FAcGhwLm5ldD4KICogQGF1dGhvciAgICAgU3RpZyBCYWtrZW4gPHNzYkBwaHAubmV0PgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBSZWxlYXNlOiAxLjcuMTIKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwpjbGFzcyBEQl9wZ3NxbCBleHRlbmRzIERCX2NvbW1vbgp7CiAgICAvLyB7e3sgcHJvcGVydGllcwoKICAgIC8qKgogICAgICogVGhlIERCIGRyaXZlciB0eXBlIChteXNxbCwgb2NpOCwgb2RiYywgZXRjLikKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkcGhwdHlwZSA9ICdwZ3NxbCc7CgogICAgLyoqCiAgICAgKiBUaGUgZGF0YWJhc2Ugc3ludGF4IHZhcmlhbnQgdG8gYmUgdXNlZCAoZGIyLCBhY2Nlc3MsIGV0Yy4pLCBpZiBhbnkKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkZGJzeW50YXggPSAncGdzcWwnOwoKICAgIC8qKgogICAgICogVGhlIGNhcGFiaWxpdGllcyBvZiB0aGlzIERCIGltcGxlbWVudGF0aW9uCiAgICAgKgogICAgICogVGhlICduZXdfbGluaycgZWxlbWVudCBjb250YWlucyB0aGUgUEhQIHZlcnNpb24gdGhhdCBmaXJzdCBwcm92aWRlZAogICAgICogbmV3X2xpbmsgc3VwcG9ydCBmb3IgdGhpcyBEQk1TLiAgQ29udGFpbnMgZmFsc2UgaWYgaXQncyB1bnN1cHBvcnRlZC4KICAgICAqCiAgICAgKiBNZWFuaW5nIG9mIHRoZSAnbGltaXQnIGVsZW1lbnQ6CiAgICAgKiAgICsgJ2VtdWxhdGUnID0gZW11bGF0ZSB3aXRoIGZldGNoIHJvdyBieSBudW1iZXIKICAgICAqICAgKyAnYWx0ZXInICAgPSBhbHRlciB0aGUgcXVlcnkKICAgICAqICAgKyBmYWxzZSAgICAgPSBza2lwIHJvd3MKICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZmVhdHVyZXMgPSBhcnJheSgKICAgICAgICAnbGltaXQnICAgICAgICAgPT4gJ2FsdGVyJywKICAgICAgICAnbmV3X2xpbmsnICAgICAgPT4gJzQuMy4wJywKICAgICAgICAnbnVtcm93cycgICAgICAgPT4gdHJ1ZSwKICAgICAgICAncGNvbm5lY3QnICAgICAgPT4gdHJ1ZSwKICAgICAgICAncHJlcGFyZScgICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ3NzbCcgICAgICAgICAgID0+IHRydWUsCiAgICAgICAgJ3RyYW5zYWN0aW9ucycgID0+IHRydWUsCiAgICApOwoKICAgIC8qKgogICAgICogQSBtYXBwaW5nIG9mIG5hdGl2ZSBlcnJvciBjb2RlcyB0byBEQiBlcnJvciBjb2RlcwogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGVycm9yY29kZV9tYXAgPSBhcnJheSgKICAgICk7CgogICAgLyoqCiAgICAgKiBUaGUgcmF3IGRhdGFiYXNlIGNvbm5lY3Rpb24gY3JlYXRlZCBieSBQSFAKICAgICAqIEB2YXIgcmVzb3VyY2UKICAgICAqLwogICAgdmFyICRjb25uZWN0aW9uOwoKICAgIC8qKgogICAgICogVGhlIERTTiBpbmZvcm1hdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIGRhdGFiYXNlCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZHNuID0gYXJyYXkoKTsKCgogICAgLyoqCiAgICAgKiBTaG91bGQgZGF0YSBtYW5pcHVsYXRpb24gcXVlcmllcyBiZSBjb21taXR0ZWQgYXV0b21hdGljYWxseT8KICAgICAqIEB2YXIgYm9vbAogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkYXV0b2NvbW1pdCA9IHRydWU7CgogICAgLyoqCiAgICAgKiBUaGUgcXVhbnRpdHkgb2YgdHJhbnNhY3Rpb25zIGJlZ3VuCiAgICAgKgogICAgICoge0BpbnRlcm5hbCAgV2hpbGUgdGhpcyBpcyBwcml2YXRlLCBpdCBjYW4ndCBhY3R1YWxseSBiZSBkZXNpZ25hdGVkCiAgICAgKiBwcml2YXRlIGluIFBIUCA1IGJlY2F1c2UgaXQgaXMgZGlyZWN0bHkgYWNjZXNzZWQgaW4gdGhlIHRlc3Qgc3VpdGUufX0KICAgICAqCiAgICAgKiBAdmFyIGludGVnZXIKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJHRyYW5zYWN0aW9uX29wY291bnQgPSAwOwoKICAgIC8qKgogICAgICogVGhlIG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IGEgZGF0YSBtYW5pcHVsYXRpb24gcXVlcnkKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICovCiAgICB2YXIgJGFmZmVjdGVkID0gMDsKCiAgICAvKioKICAgICAqIFRoZSBjdXJyZW50IHJvdyBiZWluZyBsb29rZWQgYXQgaW4gZmV0Y2hJbnRvKCkKICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJHJvdyA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiBUaGUgbnVtYmVyIG9mIHJvd3MgaW4gYSBnaXZlbiByZXN1bHQgc2V0CiAgICAgKiBAdmFyIGFycmF5CiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgdmFyICRfbnVtX3Jvd3MgPSBhcnJheSgpOwoKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogVGhpcyBjb25zdHJ1Y3RvciBjYWxscyA8a2JkPiR0aGlzLT5EQl9jb21tb24oKTwva2JkPgogICAgICoKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBEQl9wZ3NxbCgpCiAgICB7CiAgICAgICAgJHRoaXMtPkRCX2NvbW1vbigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLCBsb2cgaW4gYW5kIG9wZW4gdGhlIGRhdGFiYXNlCiAgICAgKgogICAgICogRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseS4gIFVzZSBEQjo6Y29ubmVjdCgpIGluc3RlYWQuCiAgICAgKgogICAgICogUEVBUiBEQidzIHBnc3FsIGRyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGV4dHJhIERTTiBvcHRpb25zOgogICAgICogICArIGNvbm5lY3RfdGltZW91dCAgSG93IG1hbnkgc2Vjb25kcyB0byB3YWl0IGZvciBhIGNvbm5lY3Rpb24gdG8KICAgICAqICAgICAgICAgICAgICAgICAgICAgICBiZSBlc3RhYmxpc2hlZC4gIEF2YWlsYWJsZSBzaW5jZSBQRUFSIERCIDEuNy4wLgogICAgICogICArIG5ld19saW5rICAgICAgICAgSWYgc2V0IHRvIHRydWUsIGNhdXNlcyBzdWJzZXF1ZW50IGNhbGxzIHRvCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgY29ubmVjdCgpIHRvIHJldHVybiBhIG5ldyBjb25uZWN0aW9uIGxpbmsKICAgICAqICAgICAgICAgICAgICAgICAgICAgICBpbnN0ZWFkIG9mIHRoZSBleGlzdGluZyBvbmUuICBXQVJOSU5HOiB0aGlzIGlzCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgbm90IHBvcnRhYmxlIHRvIG90aGVyIERCTVMncy4gIEF2YWlsYWJsZSBvbmx5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaWYgUEhQIGlzID49IDQuMy4wIGFuZCBQRUFSIERCIGlzID49IDEuNy4wLgogICAgICogICArIG9wdGlvbnMgICAgICAgICAgQ29tbWFuZCBsaW5lIG9wdGlvbnMgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyLgogICAgICogICAgICAgICAgICAgICAgICAgICAgIEF2YWlsYWJsZSBzaW5jZSBQRUFSIERCIDEuNi40LgogICAgICogICArIHNlcnZpY2UgICAgICAgICAgU3BlY2lmaWVzIGEgc2VydmljZSBuYW1lIGluIHBnX3NlcnZpY2UuY29uZiB0aGF0CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgaG9sZHMgYWRkaXRpb25hbCBjb25uZWN0aW9uIHBhcmFtZXRlcnMuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgQXZhaWxhYmxlIHNpbmNlIFBFQVIgREIgMS43LjAuCiAgICAgKiAgICsgc3NsbW9kZSAgICAgICAgICBIb3cgc2hvdWxkIFNTTCBiZSB1c2VkIHdoZW4gY29ubmVjdGluZz8gIFZhbHVlczoKICAgICAqICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlLCBhbGxvdywgcHJlZmVyIG9yIHJlcXVpcmUuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgQXZhaWxhYmxlIHNpbmNlIFBFQVIgREIgMS43LjAuCiAgICAgKiAgICsgdHR5ICAgICAgICAgICAgICBUaGlzIHdhcyB1c2VkIHRvIHNwZWNpZnkgd2hlcmUgdG8gc2VuZCBzZXJ2ZXIKICAgICAqICAgICAgICAgICAgICAgICAgICAgICBkZWJ1ZyBvdXRwdXQuICBBdmFpbGFibGUgc2luY2UgUEVBUiBEQiAxLjYuNC4KICAgICAqCiAgICAgKiBFeGFtcGxlIG9mIGNvbm5lY3RpbmcgdG8gYSBuZXcgbGluayB2aWEgYSBzb2NrZXQ6CiAgICAgKiA8Y29kZT4KICAgICAqIHJlcXVpcmVfb25jZSAnREIucGhwJzsKICAgICAqIAogICAgICogJGRzbiA9ICdwZ3NxbDovL3VzZXI6cGFzc0B1bml4KC90bXApL2RibmFtZT9uZXdfbGluaz10cnVlJzsKICAgICAqICRvcHRpb25zID0gYXJyYXkoCiAgICAgKiAgICAgJ3BvcnRhYmlsaXR5JyA9PiBEQl9QT1JUQUJJTElUWV9BTEwsCiAgICAgKiApOwogICAgICogCiAgICAgKiAkZGIgPSYgREI6OmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMpOwogICAgICogaWYgKFBFQVI6OmlzRXJyb3IoJGRiKSkgewogICAgICogICAgIGRpZSgkZGItPmdldE1lc3NhZ2UoKSk7CiAgICAgKiB9CiAgICAgKiA8L2NvZGU+CiAgICAgKgogICAgICogQHBhcmFtIGFycmF5ICRkc24gICAgICAgICB0aGUgZGF0YSBzb3VyY2UgbmFtZQogICAgICogQHBhcmFtIGJvb2wgICRwZXJzaXN0ZW50ICBzaG91bGQgdGhlIGNvbm5lY3Rpb24gYmUgcGVyc2lzdGVudD8KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAbGluayBodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zdGF0aWMvbGlicHEuaHRtbCNMSUJQUS1DT05ORUNUCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNvbm5lY3QoJGRzbiwgJHBlcnNpc3RlbnQgPSBmYWxzZSkKICAgIHsKICAgICAgICBpZiAoIVBFQVI6OmxvYWRFeHRlbnNpb24oJ3Bnc3FsJykpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0VYVEVOU0lPTl9OT1RfRk9VTkQpOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPmRzbiA9ICRkc247CiAgICAgICAgaWYgKCRkc25bJ2Ric3ludGF4J10pIHsKICAgICAgICAgICAgJHRoaXMtPmRic3ludGF4ID0gJGRzblsnZGJzeW50YXgnXTsKICAgICAgICB9CgogICAgICAgICRwcm90b2NvbCA9ICRkc25bJ3Byb3RvY29sJ10gPyAkZHNuWydwcm90b2NvbCddIDogJ3RjcCc7CgogICAgICAgICRwYXJhbXMgPSBhcnJheSgnJyk7CiAgICAgICAgaWYgKCRwcm90b2NvbCA9PSAndGNwJykgewogICAgICAgICAgICBpZiAoJGRzblsnaG9zdHNwZWMnXSkgewogICAgICAgICAgICAgICAgJHBhcmFtc1swXSAuPSAnaG9zdD0nIC4gJGRzblsnaG9zdHNwZWMnXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJGRzblsncG9ydCddKSB7CiAgICAgICAgICAgICAgICAkcGFyYW1zWzBdIC49ICcgcG9ydD0nIC4gJGRzblsncG9ydCddOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlaWYgKCRwcm90b2NvbCA9PSAndW5peCcpIHsKICAgICAgICAgICAgLy8gQWxsb3cgZm9yIHBnIHNvY2tldCBpbiBub24tc3RhbmRhcmQgbG9jYXRpb25zLgogICAgICAgICAgICBpZiAoJGRzblsnc29ja2V0J10pIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbMF0gLj0gJ2hvc3Q9JyAuICRkc25bJ3NvY2tldCddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkZHNuWydwb3J0J10pIHsKICAgICAgICAgICAgICAgICRwYXJhbXNbMF0gLj0gJyBwb3J0PScgLiAkZHNuWydwb3J0J107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCRkc25bJ2RhdGFiYXNlJ10pIHsKICAgICAgICAgICAgJHBhcmFtc1swXSAuPSAnIGRibmFtZT1cJycgLiBhZGRzbGFzaGVzKCRkc25bJ2RhdGFiYXNlJ10pIC4gJ1wnJzsKICAgICAgICB9CiAgICAgICAgaWYgKCRkc25bJ3VzZXJuYW1lJ10pIHsKICAgICAgICAgICAgJHBhcmFtc1swXSAuPSAnIHVzZXI9XCcnIC4gYWRkc2xhc2hlcygkZHNuWyd1c2VybmFtZSddKSAuICdcJyc7CiAgICAgICAgfQogICAgICAgIGlmICgkZHNuWydwYXNzd29yZCddKSB7CiAgICAgICAgICAgICRwYXJhbXNbMF0gLj0gJyBwYXNzd29yZD1cJycgLiBhZGRzbGFzaGVzKCRkc25bJ3Bhc3N3b3JkJ10pIC4gJ1wnJzsKICAgICAgICB9CiAgICAgICAgaWYgKCFlbXB0eSgkZHNuWydvcHRpb25zJ10pKSB7CiAgICAgICAgICAgICRwYXJhbXNbMF0gLj0gJyBvcHRpb25zPScgLiAkZHNuWydvcHRpb25zJ107CiAgICAgICAgfQogICAgICAgIGlmICghZW1wdHkoJGRzblsndHR5J10pKSB7CiAgICAgICAgICAgICRwYXJhbXNbMF0gLj0gJyB0dHk9JyAuICRkc25bJ3R0eSddOwogICAgICAgIH0KICAgICAgICBpZiAoIWVtcHR5KCRkc25bJ2Nvbm5lY3RfdGltZW91dCddKSkgewogICAgICAgICAgICAkcGFyYW1zWzBdIC49ICcgY29ubmVjdF90aW1lb3V0PScgLiAkZHNuWydjb25uZWN0X3RpbWVvdXQnXTsKICAgICAgICB9CiAgICAgICAgaWYgKCFlbXB0eSgkZHNuWydzc2xtb2RlJ10pKSB7CiAgICAgICAgICAgICRwYXJhbXNbMF0gLj0gJyBzc2xtb2RlPScgLiAkZHNuWydzc2xtb2RlJ107CiAgICAgICAgfQogICAgICAgIGlmICghZW1wdHkoJGRzblsnc2VydmljZSddKSkgewogICAgICAgICAgICAkcGFyYW1zWzBdIC49ICcgc2VydmljZT0nIC4gJGRzblsnc2VydmljZSddOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRkc25bJ25ld19saW5rJ10pCiAgICAgICAgICAgICYmICgkZHNuWyduZXdfbGluayddID09ICd0cnVlJyB8fCAkZHNuWyduZXdfbGluayddID09PSB0cnVlKSkKICAgICAgICB7CiAgICAgICAgICAgIGlmICh2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigpLCAnNC4zLjAnLCAnPj0nKSkgewogICAgICAgICAgICAgICAgJHBhcmFtc1tdID0gUEdTUUxfQ09OTkVDVF9GT1JDRV9ORVc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRjb25uZWN0X2Z1bmN0aW9uID0gJHBlcnNpc3RlbnQgPyAncGdfcGNvbm5lY3QnIDogJ3BnX2Nvbm5lY3QnOwoKICAgICAgICAkaW5pID0gaW5pX2dldCgndHJhY2tfZXJyb3JzJyk7CiAgICAgICAgJHBocF9lcnJvcm1zZyA9ICcnOwogICAgICAgIGlmICgkaW5pKSB7CiAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQGNhbGxfdXNlcl9mdW5jX2FycmF5KCRjb25uZWN0X2Z1bmN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBAaW5pX3NldCgndHJhY2tfZXJyb3JzJywgMSk7CiAgICAgICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gQGNhbGxfdXNlcl9mdW5jX2FycmF5KCRjb25uZWN0X2Z1bmN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGFyYW1zKTsKICAgICAgICAgICAgQGluaV9zZXQoJ3RyYWNrX2Vycm9ycycsICRpbmkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEkdGhpcy0+Y29ubmVjdGlvbikgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfQ09OTkVDVF9GQUlMRUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHBocF9lcnJvcm1zZyk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBkaXNjb25uZWN0KCkKCiAgICAvKioKICAgICAqIERpc2Nvbm5lY3RzIGZyb20gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgVFJVRSBvbiBzdWNjZXNzLCBGQUxTRSBvbiBmYWlsdXJlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRpc2Nvbm5lY3QoKQogICAgewogICAgICAgICRyZXQgPSBAcGdfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICByZXR1cm4gJHJldDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBzaW1wbGVRdWVyeSgpCgogICAgLyoqCiAgICAgKiBTZW5kcyBhIHF1ZXJ5IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZwogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgICsgYSBQSFAgcmVzdWx0IHJlc3JvdWNlIGZvciBzdWNjZXNzZnVsIFNFTEVDVCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIHRoZSBEQl9PSyBjb25zdGFudCBmb3Igb3RoZXIgc3VjY2Vzc2Z1bCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIGEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUKICAgICAqLwogICAgZnVuY3Rpb24gc2ltcGxlUXVlcnkoJHF1ZXJ5KQogICAgewogICAgICAgICRpc21hbmlwID0gJHRoaXMtPl9jaGVja01hbmlwKCRxdWVyeSk7CiAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJHF1ZXJ5ID0gJHRoaXMtPm1vZGlmeVF1ZXJ5KCRxdWVyeSk7CiAgICAgICAgaWYgKCEkdGhpcy0+YXV0b2NvbW1pdCAmJiAkaXNtYW5pcCkgewogICAgICAgICAgICBpZiAoJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPT0gMCkgewogICAgICAgICAgICAgICAgJHJlc3VsdCA9IEBwZ19leGVjKCR0aGlzLT5jb25uZWN0aW9uLCAnYmVnaW47Jyk7CiAgICAgICAgICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnBnc3FsUmFpc2VFcnJvcigpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50Kys7CiAgICAgICAgfQogICAgICAgICRyZXN1bHQgPSBAcGdfZXhlYygkdGhpcy0+Y29ubmVjdGlvbiwgJHF1ZXJ5KTsKICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5wZ3NxbFJhaXNlRXJyb3IoKTsKICAgICAgICB9CgogICAgICAgIC8qCiAgICAgICAgICogRGV0ZXJtaW5lIHdoZXRoZXIgcXVlcmllcyBwcm9kdWNlIGFmZmVjdGVkIHJvd3MsIHJlc3VsdCBvciBub3RoaW5nLgogICAgICAgICAqCiAgICAgICAgICogVGhpcyBsb2dpYyB3YXMgaW50cm9kdWNlZCBpbiB2ZXJzaW9uIDEuMSBvZiB0aGUgZmlsZSBieSBzc2IsCiAgICAgICAgICogdGhvdWdoIHRoZSByZWdleCBoYXMgYmVlbiBtb2RpZmllZCBzbGlnaHRseSBzaW5jZSB0aGVuLgogICAgICAgICAqCiAgICAgICAgICogUG9zdGdyZVNRTCBjb21tYW5kczoKICAgICAgICAgKiBBQk9SVCwgQUxURVIsIEJFR0lOLCBDTE9TRSwgQ0xVU1RFUiwgQ09NTUlULCBDT1BZLAogICAgICAgICAqIENSRUFURSwgREVDTEFSRSwgREVMRVRFLCBEUk9QIFRBQkxFLCBFWFBMQUlOLCBGRVRDSCwKICAgICAgICAgKiBHUkFOVCwgSU5TRVJULCBMSVNURU4sIExPQUQsIExPQ0ssIE1PVkUsIE5PVElGWSwgUkVTRVQsCiAgICAgICAgICogUkVWT0tFLCBST0xMQkFDSywgU0VMRUNULCBTRUxFQ1QgSU5UTywgU0VULCBTSE9XLAogICAgICAgICAqIFVOTElTVEVOLCBVUERBVEUsIFZBQ1VVTQogICAgICAgICAqLwogICAgICAgIGlmICgkaXNtYW5pcCkgewogICAgICAgICAgICAkdGhpcy0+YWZmZWN0ZWQgPSBAcGdfYWZmZWN0ZWRfcm93cygkcmVzdWx0KTsKICAgICAgICAgICAgcmV0dXJuIERCX09LOwogICAgICAgIH0gZWxzZWlmIChwcmVnX21hdGNoKCcvXlxzKlwoKlxzKihTRUxFQ1R8RVhQTEFJTnxGRVRDSHxTSE9XKVxzL3NpJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcXVlcnkpKQogICAgICAgIHsKICAgICAgICAgICAgJHRoaXMtPnJvd1soaW50KSRyZXN1bHRdID0gMDsgLy8gcmVzZXQgdGhlIHJvdyBjb3VudGVyLgogICAgICAgICAgICAkbnVtcm93cyA9ICR0aGlzLT5udW1Sb3dzKCRyZXN1bHQpOwogICAgICAgICAgICBpZiAoaXNfb2JqZWN0KCRudW1yb3dzKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRudW1yb3dzOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT5fbnVtX3Jvd3NbKGludCkkcmVzdWx0XSA9ICRudW1yb3dzOwogICAgICAgICAgICAkdGhpcy0+YWZmZWN0ZWQgPSAwOwogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+YWZmZWN0ZWQgPSAwOwogICAgICAgICAgICByZXR1cm4gREJfT0s7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG5leHRSZXN1bHQoKQoKICAgIC8qKgogICAgICogTW92ZSB0aGUgaW50ZXJuYWwgcGdzcWwgcmVzdWx0IHBvaW50ZXIgdG8gdGhlIG5leHQgYXZhaWxhYmxlIHJlc3VsdAogICAgICoKICAgICAqIEBwYXJhbSBhIHZhbGlkIGZic3FsIHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKgogICAgICogQHJldHVybiB0cnVlIGlmIGEgcmVzdWx0IGlzIGF2YWlsYWJsZSBvdGhlcndpc2UgcmV0dXJuIGZhbHNlCiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRSZXN1bHQoJHJlc3VsdCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hJbnRvKCkKCiAgICAvKioKICAgICAqIFBsYWNlcyBhIHJvdyBmcm9tIHRoZSByZXN1bHQgc2V0IGludG8gdGhlIGdpdmVuIGFycmF5CiAgICAgKgogICAgICogRm9ybWF0aW5nIG9mIHRoZSBhcnJheSBhbmQgdGhlIGRhdGEgdGhlcmVpbiBhcmUgY29uZmlndXJhYmxlLgogICAgICogU2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmZXRjaEludG8oKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICAgIHRoZSBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqIEBwYXJhbSBhcnJheSAgICAkYXJyICAgICAgIHRoZSByZWZlcmVuY2VkIGFycmF5IHRvIHB1dCB0aGUgZGF0YSBpbgogICAgICogQHBhcmFtIGludCAgICAgICRmZXRjaG1vZGUgaG93IHRoZSByZXN1bHRpbmcgYXJyYXkgc2hvdWxkIGJlIGluZGV4ZWQKICAgICAqIEBwYXJhbSBpbnQgICAgICAkcm93bnVtICAgIHRoZSByb3cgbnVtYmVyIHRvIGZldGNoICgwID0gZmlyc3Qgcm93KQogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIERCX09LIG9uIHN1Y2Nlc3MsIE5VTEwgd2hlbiB0aGUgZW5kIG9mIGEgcmVzdWx0IHNldCBpcwogICAgICogICAgICAgICAgICAgICAgIHJlYWNoZWQgb3Igb24gZmFpbHVyZQogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKQogICAgICovCiAgICBmdW5jdGlvbiBmZXRjaEludG8oJHJlc3VsdCwgJiRhcnIsICRmZXRjaG1vZGUsICRyb3dudW0gPSBudWxsKQogICAgewogICAgICAgICRyZXN1bHRfaW50ID0gKGludCkkcmVzdWx0OwogICAgICAgICRyb3dudW0gPSAoJHJvd251bSAhPT0gbnVsbCkgPyAkcm93bnVtIDogJHRoaXMtPnJvd1skcmVzdWx0X2ludF07CiAgICAgICAgaWYgKCRyb3dudW0gPj0gJHRoaXMtPl9udW1fcm93c1skcmVzdWx0X2ludF0pIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGlmICgkZmV0Y2htb2RlICYgREJfRkVUQ0hNT0RFX0FTU09DKSB7CiAgICAgICAgICAgICRhcnIgPSBAcGdfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgJHJvd251bSwgUEdTUUxfQVNTT0MpOwogICAgICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9MT1dFUkNBU0UgJiYgJGFycikgewogICAgICAgICAgICAgICAgJGFyciA9IGFycmF5X2NoYW5nZV9rZXlfY2FzZSgkYXJyLCBDQVNFX0xPV0VSKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRhcnIgPSBAcGdfZmV0Y2hfcm93KCRyZXN1bHQsICRyb3dudW0pOwogICAgICAgIH0KICAgICAgICBpZiAoISRhcnIpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+b3B0aW9uc1sncG9ydGFiaWxpdHknXSAmIERCX1BPUlRBQklMSVRZX1JUUklNKSB7CiAgICAgICAgICAgICR0aGlzLT5fcnRyaW1BcnJheVZhbHVlcygkYXJyKTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTlVMTF9UT19FTVBUWSkgewogICAgICAgICAgICAkdGhpcy0+X2NvbnZlcnROdWxsQXJyYXlWYWx1ZXNUb0VtcHR5KCRhcnIpOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+cm93WyRyZXN1bHRfaW50XSA9ICsrJHJvd251bTsKICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZnJlZVJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBEZWxldGVzIHRoZSByZXN1bHQgc2V0IGFuZCBmcmVlcyB0aGUgbWVtb3J5IG9jY3VwaWVkIGJ5IHRoZSByZXN1bHQgc2V0CiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmcmVlKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgUEhQJ3MgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIGlmICRyZXN1bHQgaXMgaW52YWxpZAogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmcmVlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZnJlZVJlc3VsdCgkcmVzdWx0KQogICAgewogICAgICAgIGlmIChpc19yZXNvdXJjZSgkcmVzdWx0KSkgewogICAgICAgICAgICB1bnNldCgkdGhpcy0+cm93WyhpbnQpJHJlc3VsdF0pOwogICAgICAgICAgICB1bnNldCgkdGhpcy0+X251bV9yb3dzWyhpbnQpJHJlc3VsdF0pOwogICAgICAgICAgICAkdGhpcy0+YWZmZWN0ZWQgPSAwOwogICAgICAgICAgICByZXR1cm4gQHBnX2ZyZWVyZXN1bHQoJHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBxdW90ZSgpCgogICAgLyoqCiAgICAgKiBAZGVwcmVjYXRlZCAgRGVwcmVjYXRlZCBpbiByZWxlYXNlIDEuNi4wCiAgICAgKiBAaW50ZXJuYWwKICAgICAqLwogICAgZnVuY3Rpb24gcXVvdGUoJHN0cikKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1b3RlU21hcnQoJHN0cik7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcXVvdGVCb29sZWFuKCkKCiAgICAvKioKICAgICAqIEZvcm1hdHMgYSBib29sZWFuIHZhbHVlIGZvciB1c2Ugd2l0aGluIGEgcXVlcnkgaW4gYSBsb2NhbGUtaW5kZXBlbmRlbnQKICAgICAqIG1hbm5lci4KICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbGVhbiB0aGUgYm9vbGVhbiB2YWx1ZSB0byBiZSBxdW90ZWQuCiAgICAgKiBAcmV0dXJuIHN0cmluZyB0aGUgcXVvdGVkIHN0cmluZy4KICAgICAqIEBzZWUgREJfY29tbW9uOjpxdW90ZVNtYXJ0KCkKICAgICAqIEBzaW5jZSBNZXRob2QgYXZhaWxhYmxlIHNpbmNlIHJlbGVhc2UgMS43LjguCiAgICAgKi8KICAgIGZ1bmN0aW9uIHF1b3RlQm9vbGVhbigkYm9vbGVhbikgewogICAgICAgIHJldHVybiAkYm9vbGVhbiA/ICdUUlVFJyA6ICdGQUxTRSc7CiAgICB9CiAgICAgCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlc2NhcGVTaW1wbGUoKQoKICAgIC8qKgogICAgICogRXNjYXBlcyBhIHN0cmluZyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgREJNUydzIHN0YW5kYXJkcwogICAgICoKICAgICAqIHtAaW50ZXJuYWwgUG9zdGdyZVNRTCB0cmVhdHMgYSBiYWNrc2xhc2ggYXMgYW4gZXNjYXBlIGNoYXJhY3RlciwKICAgICAqIHNvIHRoZXkgYXJlIGVzY2FwZWQgYXMgd2VsbC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIgIHRoZSBzdHJpbmcgdG8gYmUgZXNjYXBlZAogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgZXNjYXBlZCBzdHJpbmcKICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6cXVvdGVTbWFydCgpCiAgICAgKiBAc2luY2UgTWV0aG9kIGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNi4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVzY2FwZVNpbXBsZSgkc3RyKQogICAgewogICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3BnX2VzY2FwZV9zdHJpbmcnKSkgewogICAgICAgICAgICAvKiBUaGlzIGZpeGVzIGFuIHVuZG9jdW1lbnRlZCBCQyBicmVhayBpbiBQSFAgNS4yLjAgd2hpY2ggY2hhbmdlZAogICAgICAgICAgICAgKiB0aGUgcHJvdG90eXBlIG9mIHBnX2VzY2FwZV9zdHJpbmcuIEknbSBub3QgdGhyaWxsZWQgYWJvdXQgaGF2aW5nCiAgICAgICAgICAgICAqIHRvIHNuaWZmIHRoZSBQSFAgdmVyc2lvbiwgcXVpdGUgZnJhbmtseSwgYnV0IGl0J3MgdGhlIG9ubHkgd2F5CiAgICAgICAgICAgICAqIHRvIGRlYWwgd2l0aCB0aGUgcHJvYmxlbS4gUmV2aXNpb24gMS4zMzEuMi4xMy4yLjEwIG9uCiAgICAgICAgICAgICAqIHBocC1zcmMvZXh0L3Bnc3FsL3Bnc3FsLmMgKFBIUF81XzIgYnJhbmNoKSBpcyB0byBibGFtZSwgZm9yIHRoZQogICAgICAgICAgICAgKiByZWNvcmQuICovCiAgICAgICAgICAgIGlmICh2ZXJzaW9uX2NvbXBhcmUoUEhQX1ZFUlNJT04sICc1LjIuMCcsICc+PScpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcGdfZXNjYXBlX3N0cmluZygkdGhpcy0+Y29ubmVjdGlvbiwgJHN0cik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICByZXR1cm4gcGdfZXNjYXBlX3N0cmluZygkc3RyKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHJldHVybiBzdHJfcmVwbGFjZSgiJyIsICInJyIsIHN0cl9yZXBsYWNlKCdcXCcsICdcXFxcJywgJHN0cikpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Db2xzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiBjb2x1bW5zIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6bnVtQ29scygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIGNvbHVtbnMuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpudW1Db2xzKCkKICAgICAqLwogICAgZnVuY3Rpb24gbnVtQ29scygkcmVzdWx0KQogICAgewogICAgICAgICRjb2xzID0gQHBnX251bWZpZWxkcygkcmVzdWx0KTsKICAgICAgICBpZiAoISRjb2xzKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cGdzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkY29sczsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBudW1Sb3dzKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIG51bWJlciBvZiByb3dzIGluIGEgcmVzdWx0IHNldAogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6bnVtUm93cygpIGluc3RlYWQuICBJdCBjYW4ndCBiZSBkZWNsYXJlZCAicHJvdGVjdGVkIgogICAgICogYmVjYXVzZSBEQl9yZXN1bHQgaXMgYSBzZXBhcmF0ZSBvYmplY3QuCiAgICAgKgogICAgICogQHBhcmFtIHJlc291cmNlICRyZXN1bHQgIFBIUCdzIHF1ZXJ5IHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpudW1Sb3dzKCkKICAgICAqLwogICAgZnVuY3Rpb24gbnVtUm93cygkcmVzdWx0KQogICAgewogICAgICAgICRyb3dzID0gQHBnX251bXJvd3MoJHJlc3VsdCk7CiAgICAgICAgaWYgKCRyb3dzID09PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cGdzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcm93czsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBhdXRvQ29tbWl0KCkKCiAgICAvKioKICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYXV0b21hdGljIGNvbW1pdHMKICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbCAkb25vZmYgIHRydWUgdHVybnMgaXQgb24sIGZhbHNlIHR1cm5zIGl0IG9mZgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3QgaWYgdGhlIGRyaXZlcgogICAgICogICAgICAgICAgICAgICBkb2Vzbid0IHN1cHBvcnQgYXV0by1jb21taXR0aW5nIHRyYW5zYWN0aW9ucy4KICAgICAqLwogICAgZnVuY3Rpb24gYXV0b0NvbW1pdCgkb25vZmYgPSBmYWxzZSkKICAgIHsKICAgICAgICAvLyBYWFggaWYgJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwLCB3ZSBzaG91bGQgcHJvYmFibHkKICAgICAgICAvLyBpc3N1ZSBhIHdhcm5pbmcgaGVyZS4KICAgICAgICAkdGhpcy0+YXV0b2NvbW1pdCA9ICRvbm9mZiA/IHRydWUgOiBmYWxzZTsKICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgY29tbWl0KCkKCiAgICAvKioKICAgICAqIENvbW1pdHMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNvbW1pdCgpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID4gMCkgewogICAgICAgICAgICAvLyAoZGlzYWJsZWQpIGhhY2sgdG8gc2h1dCB1cCBlcnJvciBtZXNzYWdlcyBmcm9tIGxpYnBxLmEKICAgICAgICAgICAgLy9AZmNsb3NlKEBmb3BlbigicGhwOi8vc3RkZXJyIiwgInciKSk7CiAgICAgICAgICAgICRyZXN1bHQgPSBAcGdfZXhlYygkdGhpcy0+Y29ubmVjdGlvbiwgJ2VuZDsnKTsKICAgICAgICAgICAgJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPSAwOwogICAgICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cGdzcWxSYWlzZUVycm9yKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHJvbGxiYWNrKCkKCiAgICAvKioKICAgICAqIFJldmVydHMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHJvbGxiYWNrKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwKSB7CiAgICAgICAgICAgICRyZXN1bHQgPSBAcGdfZXhlYygkdGhpcy0+Y29ubmVjdGlvbiwgJ2Fib3J0OycpOwogICAgICAgICAgICAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9IDA7CiAgICAgICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5wZ3NxbFJhaXNlRXJyb3IoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYWZmZWN0ZWRSb3dzKCkKCiAgICAvKioKICAgICAqIERldGVybWluZXMgdGhlIG51bWJlciBvZiByb3dzIGFmZmVjdGVkIGJ5IGEgZGF0YSBtYW5pdXBsYXRpb24gcXVlcnkKICAgICAqCiAgICAgKiAwIGlzIHJldHVybmVkIGZvciBxdWVyaWVzIHRoYXQgZG9uJ3QgbWFuaXB1bGF0ZSBkYXRhLgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICB0aGUgbnVtYmVyIG9mIHJvd3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBhZmZlY3RlZFJvd3MoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+YWZmZWN0ZWQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dElkKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5leHQgZnJlZSBpZCBpbiBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZQogICAgICogQHBhcmFtIGJvb2xlYW4gJG9uZGVtYW5kICB3aGVuIHRydWUsIHRoZSBzZXFlbmNlIGlzIGF1dG9tYXRpY2FsbHkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG5leHQgaWQgbnVtYmVyIGluIHRoZSBzZXF1ZW5jZS4KICAgICAqICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6bmV4dElEKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX3Bnc3FsOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9wZ3NxbDo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dElkKCRzZXFfbmFtZSwgJG9uZGVtYW5kID0gdHJ1ZSkKICAgIHsKICAgICAgICAkc2VxbmFtZSA9ICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKTsKICAgICAgICAkcmVwZWF0ID0gZmFsc2U7CiAgICAgICAgZG8gewogICAgICAgICAgICAkdGhpcy0+cHVzaEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwogICAgICAgICAgICAkcmVzdWx0ID0mICR0aGlzLT5xdWVyeSgiU0VMRUNUIE5FWFRWQUwoJyR7c2VxbmFtZX0nKSIpOwogICAgICAgICAgICAkdGhpcy0+cG9wRXJyb3JIYW5kbGluZygpOwogICAgICAgICAgICBpZiAoJG9uZGVtYW5kICYmIERCOjppc0Vycm9yKCRyZXN1bHQpICYmCiAgICAgICAgICAgICAgICAkcmVzdWx0LT5nZXRDb2RlKCkgPT0gREJfRVJST1JfTk9TVUNIVEFCTEUpIHsKICAgICAgICAgICAgICAgICRyZXBlYXQgPSB0cnVlOwogICAgICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKTsKICAgICAgICAgICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVwZWF0ID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgkcmVwZWF0KTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgICAgIH0KICAgICAgICAkYXJyID0gJHJlc3VsdC0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX09SREVSRUQpOwogICAgICAgICRyZXN1bHQtPmZyZWUoKTsKICAgICAgICByZXR1cm4gJGFyclswXTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjcmVhdGVTZXF1ZW5jZSgpCgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIG5ldyBzZXF1ZW5jZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfcGdzcWw6Om5leHRJRCgpLCBEQl9wZ3NxbDo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gY3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKQogICAgewogICAgICAgICRzZXFuYW1lID0gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpOwogICAgICAgICRyZXN1bHQgPSAkdGhpcy0+cXVlcnkoIkNSRUFURSBTRVFVRU5DRSAke3NlcW5hbWV9Iik7CiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZHJvcFNlcXVlbmNlKCkKCiAgICAvKioKICAgICAqIERlbGV0ZXMgYSBzZXF1ZW5jZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZSB0byBiZSBkZWxldGVkCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpkcm9wU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfcGdzcWw6Om5leHRJRCgpLCBEQl9wZ3NxbDo6Y3JlYXRlU2VxdWVuY2UoKQogICAgICovCiAgICBmdW5jdGlvbiBkcm9wU2VxdWVuY2UoJHNlcV9uYW1lKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+cXVlcnkoJ0RST1AgU0VRVUVOQ0UgJwogICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG1vZGlmeUxpbWl0UXVlcnkoKQoKICAgIC8qKgogICAgICogQWRkcyBMSU1JVCBjbGF1c2VzIHRvIGEgcXVlcnkgc3RyaW5nIGFjY29yZGluZyB0byBjdXJyZW50IERCTVMgc3RhbmRhcmRzCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcXVlcnkgICB0aGUgcXVlcnkgdG8gbW9kaWZ5CiAgICAgKiBAcGFyYW0gaW50ICAgICRmcm9tICAgIHRoZSByb3cgdG8gc3RhcnQgdG8gZmV0Y2hpbmcgKDAgPSB0aGUgZmlyc3Qgcm93KQogICAgICogQHBhcmFtIGludCAgICAkY291bnQgICB0aGUgbnVtYmVycyBvZiByb3dzIHRvIGZldGNoCiAgICAgKiBAcGFyYW0gbWl4ZWQgICRwYXJhbXMgIGFycmF5LCBzdHJpbmcgb3IgbnVtZXJpYyBkYXRhIHRvIGJlIHVzZWQgaW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIGV4ZWN1dGlvbiBvZiB0aGUgc3RhdGVtZW50LiAgUXVhbnRpdHkgb2YgaXRlbXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3NlZCBtdXN0IG1hdGNoIHF1YW50aXR5IG9mIHBsYWNlaG9sZGVycyBpbgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk6ICBtZWFuaW5nIDEgcGxhY2Vob2xkZXIgZm9yIG5vbi1hcnJheQogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycyBvciAxIHBsYWNlaG9sZGVyIHBlciBhcnJheSBlbGVtZW50LgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgcXVlcnkgc3RyaW5nIHdpdGggTElNSVQgY2xhdXNlcyBhZGRlZAogICAgICoKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIGZ1bmN0aW9uIG1vZGlmeUxpbWl0UXVlcnkoJHF1ZXJ5LCAkZnJvbSwgJGNvdW50LCAkcGFyYW1zID0gYXJyYXkoKSkKICAgIHsKICAgICAgICByZXR1cm4gIiRxdWVyeSBMSU1JVCAkY291bnQgT0ZGU0VUICRmcm9tIjsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBwZ3NxbFJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYSBEQl9FcnJvciBvYmplY3QgcmVnYXJkaW5nIHRoZSBjdXJyZW50IHByb2JsZW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRlcnJubyAgaWYgdGhlIGVycm9yIGlzIGJlaW5nIG1hbnVhbGx5IHJhaXNlZCBwYXNzIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgREJfRVJST1IqIGNvbnN0YW50IGhlcmUuICBJZiB0aGlzIGlzbid0IHBhc3NlZAogICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGUgREJNUy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgdGhlIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpyYWlzZUVycm9yKCksCiAgICAgKiAgICAgIERCX3Bnc3FsOjplcnJvck5hdGl2ZSgpLCBEQl9wZ3NxbDo6ZXJyb3JDb2RlKCkKICAgICAqLwogICAgZnVuY3Rpb24gcGdzcWxSYWlzZUVycm9yKCRlcnJubyA9IG51bGwpCiAgICB7CiAgICAgICAgJG5hdGl2ZSA9ICR0aGlzLT5lcnJvck5hdGl2ZSgpOwogICAgICAgIGlmICghJG5hdGl2ZSkgewogICAgICAgICAgICAkbmF0aXZlID0gJ0RhdGFiYXNlIGNvbm5lY3Rpb24gaGFzIGJlZW4gbG9zdC4nOwogICAgICAgICAgICAkZXJybm8gPSBEQl9FUlJPUl9DT05ORUNUX0ZBSUxFRDsKICAgICAgICB9CiAgICAgICAgaWYgKCRlcnJubyA9PT0gbnVsbCkgewogICAgICAgICAgICAkZXJybm8gPSAkdGhpcy0+ZXJyb3JDb2RlKCRuYXRpdmUpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJGVycm5vLCBudWxsLCBudWxsLCBudWxsLCAkbmF0aXZlKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlcnJvck5hdGl2ZSgpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBEQk1TJyBuYXRpdmUgZXJyb3IgbWVzc2FnZSBwcm9kdWNlZCBieSB0aGUgbGFzdCBxdWVyeQogICAgICoKICAgICAqIHtAaW50ZXJuYWwgRXJyb3IgbWVzc2FnZXMgYXJlIHVzZWQgaW5zdGVhZCBvZiBlcnJvciBjb2RlcyAKICAgICAqIGluIG9yZGVyIHRvIHN1cHBvcnQgb2xkZXIgdmVyc2lvbnMgb2YgUG9zdGdyZVNRTC59fQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgREJNUycgZXJyb3IgbWVzc2FnZQogICAgICovCiAgICBmdW5jdGlvbiBlcnJvck5hdGl2ZSgpCiAgICB7CiAgICAgICAgcmV0dXJuIEBwZ19lcnJvcm1lc3NhZ2UoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVycm9yQ29kZSgpCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIFBFQVI6OkRCIGVycm9yIGNvZGUgZnJvbSB0aGUgZGF0YWJhc2UncyB0ZXh0IGVycm9yIG1lc3NhZ2UuCiAgICAgKgogICAgICogQHBhcmFtICBzdHJpbmcgICRlcnJvcm1zZyAgZXJyb3IgbWVzc2FnZSByZXR1cm5lZCBmcm9tIHRoZSBkYXRhYmFzZQogICAgICogQHJldHVybiBpbnRlZ2VyICBhbiBlcnJvciBudW1iZXIgZnJvbSBhIERCIGVycm9yIGNvbnN0YW50CiAgICAgKi8KICAgIGZ1bmN0aW9uIGVycm9yQ29kZSgkZXJyb3Jtc2cpCiAgICB7CiAgICAgICAgc3RhdGljICRlcnJvcl9yZWdleHBzOwogICAgICAgIGlmICghaXNzZXQoJGVycm9yX3JlZ2V4cHMpKSB7CiAgICAgICAgICAgICRlcnJvcl9yZWdleHBzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAnL2NvbHVtbiAuKiAob2YgcmVsYXRpb24gLiopP2RvZXMgbm90IGV4aXN0L2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfTk9TVUNIRklFTEQsCiAgICAgICAgICAgICAgICAnLyhyZWxhdGlvbnxzZXF1ZW5jZXx0YWJsZSkuKmRvZXMgbm90IGV4aXN0fGNsYXNzIC4qIG5vdCBmb3VuZC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX05PU1VDSFRBQkxFLAogICAgICAgICAgICAgICAgJy9pbmRleCAuKiBkb2VzIG5vdCBleGlzdC8nCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfTk9UX0ZPVU5ELAogICAgICAgICAgICAgICAgJy9yZWxhdGlvbiAuKiBhbHJlYWR5IGV4aXN0cy9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0FMUkVBRFlfRVhJU1RTLAogICAgICAgICAgICAgICAgJy8oZGl2aWRlfGRpdmlzaW9uKSBieSB6ZXJvJC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0RJVlpFUk8sCiAgICAgICAgICAgICAgICAnL3BnX2F0b2k6IGVycm9yIGluIC4qOiBjYW5cJ3QgcGFyc2UgL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfSU5WQUxJRF9OVU1CRVIsCiAgICAgICAgICAgICAgICAnL2ludmFsaWQgaW5wdXQgc3ludGF4IGZvciggdHlwZSk/IChpbnRlZ2VyfG51bWVyaWMpL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfSU5WQUxJRF9OVU1CRVIsCiAgICAgICAgICAgICAgICAnL3ZhbHVlIC4qIGlzIG91dCBvZiByYW5nZSBmb3IgdHlwZSBcdyppbnQvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9JTlZBTElEX05VTUJFUiwKICAgICAgICAgICAgICAgICcvaW50ZWdlciBvdXQgb2YgcmFuZ2UvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9JTlZBTElEX05VTUJFUiwKICAgICAgICAgICAgICAgICcvdmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfSU5WQUxJRCwKICAgICAgICAgICAgICAgICcvYXR0cmlidXRlIC4qIG5vdCBmb3VuZHxyZWxhdGlvbiAuKiBkb2VzIG5vdCBoYXZlIGF0dHJpYnV0ZS9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX05PU1VDSEZJRUxELAogICAgICAgICAgICAgICAgJy9jb2x1bW4gLiogc3BlY2lmaWVkIGluIFVTSU5HIGNsYXVzZSBkb2VzIG5vdCBleGlzdCBpbiAobGVmdHxyaWdodCkgdGFibGUvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAgICAgICAgICcvcGFyc2VyOiBwYXJzZSBlcnJvciBhdCBvciBuZWFyL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfU1lOVEFYLAogICAgICAgICAgICAgICAgJy9zeW50YXggZXJyb3IgYXQvJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAgICAgICAgICcvY29sdW1uIHJlZmVyZW5jZSAuKiBpcyBhbWJpZ3VvdXMvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgICAgICAgICAnL3Blcm1pc3Npb24gZGVuaWVkLycKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OLAogICAgICAgICAgICAgICAgJy92aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50LycKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9DT05TVFJBSU5UX05PVF9OVUxMLAogICAgICAgICAgICAgICAgJy92aW9sYXRlcyBbXHcgXSsgY29uc3RyYWludC8nCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAgICAgICAgICcvcmVmZXJlbnRpYWwgaW50ZWdyaXR5IHZpb2xhdGlvbi8nCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfQ09OU1RSQUlOVCwKICAgICAgICAgICAgICAgICcvbW9yZSBleHByZXNzaW9ucyB0aGFuIHRhcmdldCBjb2x1bW5zL2knCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoICgkZXJyb3JfcmVnZXhwcyBhcyAkcmVnZXhwID0+ICRjb2RlKSB7CiAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCRyZWdleHAsICRlcnJvcm1zZykpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkY29kZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyBGYWxsIGJhY2sgdG8gREJfRVJST1IgaWYgdGhlcmUgd2FzIG5vIG1hcHBpbmcuCiAgICAgICAgcmV0dXJuIERCX0VSUk9SOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRhYmxlSW5mbygpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgdGFibGUgb3IgYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogTk9URTogb25seSBzdXBwb3J0cyAndGFibGUnIGFuZCAnZmxhZ3MnIGlmIDx2YXI+JHJlc3VsdDwvdmFyPgogICAgICogaXMgYSB0YWJsZSBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSBvYmplY3R8c3RyaW5nICAkcmVzdWx0ICBEQl9yZXN1bHQgb2JqZWN0IGZyb20gYSBxdWVyeSBvciBhCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lIG9mIGEgdGFibGUuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIHRoaXMgYWxzbyBhY2NlcHRzIGEgcXVlcnkgcmVzdWx0CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlIGlkZW50aWZpZXIsIHRoaXMgYmVoYXZpb3IgaXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZC4KICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAkbW9kZSAgICBhIHZhbGlkIHRhYmxlSW5mbyBtb2RlCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSAgYW4gYXNzb2NpYXRpdmUgYXJyYXkgd2l0aCB0aGUgaW5mb3JtYXRpb24gcmVxdWVzdGVkLgogICAgICogICAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnRhYmxlSW5mbygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIHRhYmxlSW5mbygkcmVzdWx0LCAkbW9kZSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGlzX3N0cmluZygkcmVzdWx0KSkgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHRhYmxlIG5hbWUuCiAgICAgICAgICAgICAqIENyZWF0ZSBhIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJGlkID0gQHBnX2V4ZWMoJHRoaXMtPmNvbm5lY3Rpb24sICJTRUxFQ1QgKiBGUk9NICRyZXN1bHQgTElNSVQgMCIpOwogICAgICAgICAgICAkZ290X3N0cmluZyA9IHRydWU7CiAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCRyZXN1bHQtPnJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgb2JqZWN0LgogICAgICAgICAgICAgKiBFeHRyYWN0IHRoZSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQtPnJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKiBDb3B5IGl0LgogICAgICAgICAgICAgKiBEZXByZWNhdGVkLiAgSGVyZSBmb3IgY29tcGF0aWJpbGl0eSBvbmx5LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJGlkID0gJHJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNfcmVzb3VyY2UoJGlkKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnBnc3FsUmFpc2VFcnJvcihEQl9FUlJPUl9ORUVEX01PUkVfREFUQSk7CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9MT1dFUkNBU0UpIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ0b2xvd2VyJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkY2FzZV9mdW5jID0gJ3N0cnZhbCc7CiAgICAgICAgfQoKICAgICAgICAkY291bnQgPSBAcGdfbnVtZmllbGRzKCRpZCk7CiAgICAgICAgJHJlcyAgID0gYXJyYXkoKTsKCiAgICAgICAgaWYgKCRtb2RlKSB7CiAgICAgICAgICAgICRyZXNbJ251bV9maWVsZHMnXSA9ICRjb3VudDsKICAgICAgICB9CgogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRjb3VudDsgJGkrKykgewogICAgICAgICAgICAkcmVzWyRpXSA9IGFycmF5KAogICAgICAgICAgICAgICAgJ3RhYmxlJyA9PiAkZ290X3N0cmluZyA/ICRjYXNlX2Z1bmMoJHJlc3VsdCkgOiAnJywKICAgICAgICAgICAgICAgICduYW1lJyAgPT4gJGNhc2VfZnVuYyhAcGdfZmllbGRuYW1lKCRpZCwgJGkpKSwKICAgICAgICAgICAgICAgICd0eXBlJyAgPT4gQHBnX2ZpZWxkdHlwZSgkaWQsICRpKSwKICAgICAgICAgICAgICAgICdsZW4nICAgPT4gQHBnX2ZpZWxkc2l6ZSgkaWQsICRpKSwKICAgICAgICAgICAgICAgICdmbGFncycgPT4gJGdvdF9zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAkdGhpcy0+X3BnRmllbGRGbGFncygkaWQsICRpLCAkcmVzdWx0KQogICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnLAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVIpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVyJ11bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXJ0YWJsZSddWyRyZXNbJGldWyd0YWJsZSddXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBmcmVlIHRoZSByZXN1bHQgb25seSBpZiB3ZSB3ZXJlIGNhbGxlZCBvbiBhIHRhYmxlCiAgICAgICAgaWYgKCRnb3Rfc3RyaW5nKSB7CiAgICAgICAgICAgIEBwZ19mcmVlcmVzdWx0KCRpZCk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkcmVzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9wZ0ZpZWxkRmxhZ3MoKQoKICAgIC8qKgogICAgICogR2V0IGEgY29sdW1uJ3MgZmxhZ3MKICAgICAqCiAgICAgKiBTdXBwb3J0cyAibm90X251bGwiLCAiZGVmYXVsdF92YWx1ZSIsICJwcmltYXJ5X2tleSIsICJ1bmlxdWVfa2V5IgogICAgICogYW5kICJtdWx0aXBsZV9rZXkiLiAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgcGFzc2VkIHRocm91Z2gKICAgICAqIHJhd3VybGVuY29kZSgpIGluIGNhc2UgdGhlcmUgYXJlIHNwYWNlcyBpbiBpdC4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRyZXNvdXJjZSAgIHRoZSBQb3N0Z3JlU1FMIHJlc3VsdCBpZGVudGlmaWVyCiAgICAgKiBAcGFyYW0gaW50ICRudW1fZmllbGQgIHRoZSBmaWVsZCBudW1iZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIGZsYWdzCiAgICAgKgogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIF9wZ0ZpZWxkRmxhZ3MoJHJlc291cmNlLCAkbnVtX2ZpZWxkLCAkdGFibGVfbmFtZSkKICAgIHsKICAgICAgICAkZmllbGRfbmFtZSA9IEBwZ19maWVsZG5hbWUoJHJlc291cmNlLCAkbnVtX2ZpZWxkKTsKCiAgICAgICAgLy8gQ2hlY2sgaWYgdGhlcmUncyBhIHNjaGVtYSBpbiAkdGFibGVfbmFtZSBhbmQgdXBkYXRlIHRoaW5ncwogICAgICAgIC8vIGFjY29yZGluZ2x5LgogICAgICAgICRmcm9tID0gJ3BnX2F0dHJpYnV0ZSBmLCBwZ19jbGFzcyB0YWIsIHBnX3R5cGUgdHlwJzsKICAgICAgICBpZiAoc3RycG9zKCR0YWJsZV9uYW1lLCAnLicpICE9PSBmYWxzZSkgewogICAgICAgICAgICAkZnJvbSAuPSAnLCBwZ19uYW1lc3BhY2UgbnNwJzsKICAgICAgICAgICAgbGlzdCgkc2NoZW1hLCAkdGFibGUpID0gZXhwbG9kZSgnLicsICR0YWJsZV9uYW1lKTsKICAgICAgICAgICAgJHRhYmxlV2hlcmUgPSAidGFiLnJlbG5hbWUgPSAnJHRhYmxlJyBBTkQgdGFiLnJlbG5hbWVzcGFjZSA9IG5zcC5vaWQgQU5EIG5zcC5uc3BuYW1lID0gJyRzY2hlbWEnIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGFibGVXaGVyZSA9ICJ0YWIucmVsbmFtZSA9ICckdGFibGVfbmFtZSciOwogICAgICAgIH0KCiAgICAgICAgJHJlc3VsdCA9IEBwZ19leGVjKCR0aGlzLT5jb25uZWN0aW9uLCAiU0VMRUNUIGYuYXR0bm90bnVsbCwgZi5hdHRoYXNkZWYKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGUk9NICRmcm9tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0hFUkUgdGFiLnJlbG5hbWUgPSB0eXAudHlwbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCB0eXAudHlwcmVsaWQgPSBmLmF0dHJlbGlkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EIGYuYXR0bmFtZSA9ICckZmllbGRfbmFtZScKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgJHRhYmxlV2hlcmUiKTsKICAgICAgICBpZiAoQHBnX251bXJvd3MoJHJlc3VsdCkgPiAwKSB7CiAgICAgICAgICAgICRyb3cgPSBAcGdfZmV0Y2hfcm93KCRyZXN1bHQsIDApOwogICAgICAgICAgICAkZmxhZ3MgID0gKCRyb3dbMF0gPT0gJ3QnKSA/ICdub3RfbnVsbCAnIDogJyc7CgogICAgICAgICAgICBpZiAoJHJvd1sxXSA9PSAndCcpIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSBAcGdfZXhlYygkdGhpcy0+Y29ubmVjdGlvbiwgIlNFTEVDVCBhLmFkc3JjCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZST00gJGZyb20sIHBnX2F0dHJkZWYgYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXSEVSRSB0YWIucmVsbmFtZSA9IHR5cC50eXBuYW1lIEFORCB0eXAudHlwcmVsaWQgPSBmLmF0dHJlbGlkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCBmLmF0dHJlbGlkID0gYS5hZHJlbGlkIEFORCBmLmF0dG5hbWUgPSAnJGZpZWxkX25hbWUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCAkdGFibGVXaGVyZSBBTkQgZi5hdHRudW0gPSBhLmFkbnVtIik7CiAgICAgICAgICAgICAgICAkcm93ID0gQHBnX2ZldGNoX3JvdygkcmVzdWx0LCAwKTsKICAgICAgICAgICAgICAgICRudW0gPSBwcmVnX3JlcGxhY2UoIi8nKC4qKSc6Olx3Ky8iLCAiXFwxIiwgJHJvd1swXSk7CiAgICAgICAgICAgICAgICAkZmxhZ3MgLj0gJ2RlZmF1bHRfJyAuIHJhd3VybGVuY29kZSgkbnVtKSAuICcgJzsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRmbGFncyA9ICcnOwogICAgICAgIH0KICAgICAgICAkcmVzdWx0ID0gQHBnX2V4ZWMoJHRoaXMtPmNvbm5lY3Rpb24sICJTRUxFQ1QgaS5pbmRpc3VuaXF1ZSwgaS5pbmRpc3ByaW1hcnksIGkuaW5ka2V5CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRlJPTSAkZnJvbSwgcGdfaW5kZXggaQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdIRVJFIHRhYi5yZWxuYW1lID0gdHlwLnR5cG5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTkQgdHlwLnR5cHJlbGlkID0gZi5hdHRyZWxpZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCBmLmF0dHJlbGlkID0gaS5pbmRyZWxpZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFORCBmLmF0dG5hbWUgPSAnJGZpZWxkX25hbWUnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQU5EICR0YWJsZVdoZXJlIik7CiAgICAgICAgJGNvdW50ID0gQHBnX251bXJvd3MoJHJlc3VsdCk7CgogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRjb3VudCA7ICRpKyspIHsKICAgICAgICAgICAgJHJvdyA9IEBwZ19mZXRjaF9yb3coJHJlc3VsdCwgJGkpOwogICAgICAgICAgICAka2V5cyA9IGV4cGxvZGUoJyAnLCAkcm93WzJdKTsKCiAgICAgICAgICAgIGlmIChpbl9hcnJheSgkbnVtX2ZpZWxkICsgMSwgJGtleXMpKSB7CiAgICAgICAgICAgICAgICAkZmxhZ3MgLj0gKCRyb3dbMF0gPT0gJ3QnICYmICRyb3dbMV0gPT0gJ2YnKSA/ICd1bmlxdWVfa2V5ICcgOiAnJzsKICAgICAgICAgICAgICAgICRmbGFncyAuPSAoJHJvd1sxXSA9PSAndCcpID8gJ3ByaW1hcnlfa2V5ICcgOiAnJzsKICAgICAgICAgICAgICAgIGlmIChjb3VudCgka2V5cykgPiAxKQogICAgICAgICAgICAgICAgICAgICRmbGFncyAuPSAnbXVsdGlwbGVfa2V5ICc7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB0cmltKCRmbGFncyk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0U3BlY2lhbFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIE9idGFpbnMgdGhlIHF1ZXJ5IHN0cmluZyBuZWVkZWQgZm9yIGxpc3RpbmcgYSBnaXZlbiB0eXBlIG9mIG9iamVjdHMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlICB0aGUga2luZCBvZiBvYmplY3RzIHlvdSB3YW50IHRvIHJldHJpZXZlCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nIG9yIG51bGwgaWYgdGhlIGRyaXZlciBkb2Vzbid0CiAgICAgKiAgICAgICAgICAgICAgICAgIHN1cHBvcnQgdGhlIG9iamVjdCB0eXBlIHJlcXVlc3RlZAogICAgICoKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Z2V0TGlzdE9mKCkKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U3BlY2lhbFF1ZXJ5KCR0eXBlKQogICAgewogICAgICAgIHN3aXRjaCAoJHR5cGUpIHsKICAgICAgICAgICAgY2FzZSAndGFibGVzJzoKICAgICAgICAgICAgICAgIHJldHVybiAnU0VMRUNUIGMucmVsbmFtZSBBUyAiTmFtZSInCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJyBGUk9NIHBnX2NsYXNzIGMsIHBnX3VzZXIgdScKICAgICAgICAgICAgICAgICAgICAgICAgLiAnIFdIRVJFIGMucmVsb3duZXIgPSB1LnVzZXN5c2lkJwogICAgICAgICAgICAgICAgICAgICAgICAuICIgQU5EIGMucmVsa2luZCA9ICdyJyIKICAgICAgICAgICAgICAgICAgICAgICAgLiAnIEFORCBOT1QgRVhJU1RTJwogICAgICAgICAgICAgICAgICAgICAgICAuICcgKFNFTEVDVCAxIEZST00gcGdfdmlld3MnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAgV0hFUkUgdmlld25hbWUgPSBjLnJlbG5hbWUpJwogICAgICAgICAgICAgICAgICAgICAgICAuICIgQU5EIGMucmVsbmFtZSAhfiAnXihwZ198c3FsXyknIgogICAgICAgICAgICAgICAgICAgICAgICAuICcgVU5JT04nCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJyBTRUxFQ1QgYy5yZWxuYW1lIEFTICJOYW1lIicKICAgICAgICAgICAgICAgICAgICAgICAgLiAnIEZST00gcGdfY2xhc3MgYycKICAgICAgICAgICAgICAgICAgICAgICAgLiAiIFdIRVJFIGMucmVsa2luZCA9ICdyJyIKICAgICAgICAgICAgICAgICAgICAgICAgLiAnIEFORCBOT1QgRVhJU1RTJwogICAgICAgICAgICAgICAgICAgICAgICAuICcgKFNFTEVDVCAxIEZST00gcGdfdmlld3MnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAgV0hFUkUgdmlld25hbWUgPSBjLnJlbG5hbWUpJwogICAgICAgICAgICAgICAgICAgICAgICAuICcgQU5EIE5PVCBFWElTVFMnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJyAoU0VMRUNUIDEgRlJPTSBwZ191c2VyJwogICAgICAgICAgICAgICAgICAgICAgICAuICcgIFdIRVJFIHVzZXN5c2lkID0gYy5yZWxvd25lciknCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIiBBTkQgYy5yZWxuYW1lICF+ICdecGdfJyI7CiAgICAgICAgICAgIGNhc2UgJ3NjaGVtYS50YWJsZXMnOgogICAgICAgICAgICAgICAgcmV0dXJuICJTRUxFQ1Qgc2NoZW1hbmFtZSB8fCAnLicgfHwgdGFibGVuYW1lIgogICAgICAgICAgICAgICAgICAgICAgICAuICcgQVMgIk5hbWUiJwogICAgICAgICAgICAgICAgICAgICAgICAuICcgRlJPTSBwZ19jYXRhbG9nLnBnX3RhYmxlcycKICAgICAgICAgICAgICAgICAgICAgICAgLiAnIFdIRVJFIHNjaGVtYW5hbWUgTk9UIElOJwogICAgICAgICAgICAgICAgICAgICAgICAuICIgKCdwZ19jYXRhbG9nJywgJ2luZm9ybWF0aW9uX3NjaGVtYScsICdwZ190b2FzdCcpIjsKICAgICAgICAgICAgY2FzZSAnc2NoZW1hLnZpZXdzJzoKICAgICAgICAgICAgICAgIHJldHVybiAiU0VMRUNUIHNjaGVtYW5hbWUgfHwgJy4nIHx8IHZpZXduYW1lIGZyb20gcGdfdmlld3MgV0hFUkUgc2NoZW1hbmFtZSIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiIE5PVCBJTiAoJ2luZm9ybWF0aW9uX3NjaGVtYScsICdwZ19jYXRhbG9nJykiOwogICAgICAgICAgICBjYXNlICd2aWV3cyc6CiAgICAgICAgICAgICAgICAvLyBUYWJsZSBjb2xzOiB2aWV3bmFtZSB8IHZpZXdvd25lciB8IGRlZmluaXRpb24KICAgICAgICAgICAgICAgIHJldHVybiAnU0VMRUNUIHZpZXduYW1lIGZyb20gcGdfdmlld3MgV0hFUkUgc2NoZW1hbmFtZScKICAgICAgICAgICAgICAgICAgICAgICAgLiAiIE5PVCBJTiAoJ2luZm9ybWF0aW9uX3NjaGVtYScsICdwZ19jYXRhbG9nJykiOwogICAgICAgICAgICBjYXNlICd1c2Vycyc6CiAgICAgICAgICAgICAgICAvLyBjb2xzOiB1c2VuYW1lIHx1c2VzeXNpZHx1c2VjcmVhdGVkYnx1c2V0cmFjZXx1c2VzdXBlcnx1c2VjYXR1cGR8cGFzc3dkICB8dmFsdW50aWwKICAgICAgICAgICAgICAgIHJldHVybiAnU0VMRUNUIHVzZW5hbWUgRlJPTSBwZ191c2VyJzsKICAgICAgICAgICAgY2FzZSAnZGF0YWJhc2VzJzoKICAgICAgICAgICAgICAgIHJldHVybiAnU0VMRUNUIGRhdG5hbWUgRlJPTSBwZ19kYXRhYmFzZSc7CiAgICAgICAgICAgIGNhc2UgJ2Z1bmN0aW9ucyc6CiAgICAgICAgICAgIGNhc2UgJ3Byb2NlZHVyZXMnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1QgcHJvbmFtZSBGUk9NIHBnX3Byb2MgV0hFUkUgcHJvb3duZXIgPD4gMSc7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19Cgp9CgovKgogKiBMb2NhbCB2YXJpYWJsZXM6CiAqIHRhYi13aWR0aDogNAogKiBjLWJhc2ljLW9mZnNldDogNAogKiBFbmQ6CiAqLwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/sqlite.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBzcWxpdGUgZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIFNRTGl0ZSBkYXRhYmFzZXMKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFVycyBHZWhyaWcgPHVyc0BjaXJjbGUuY2g+CiAqIEBhdXRob3IgICAgIE1pa2EgVHV1cG9sYSA8dHV1cG9sYUBhcHBlbHNpaW5pLm5ldD4KICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAgMy4wCiAqIEB2ZXJzaW9uICAgIENWUzogJElkOiBzcWxpdGUucGhwLHYgMS4xMTQgMjAwNy8wMS8xMiAwMjo0MTowNyBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBPYnRhaW4gdGhlIERCX2NvbW1vbiBjbGFzcyBzbyBpdCBjYW4gYmUgZXh0ZW5kZWQgZnJvbQogKi8KcmVxdWlyZV9vbmNlICdEQi9jb21tb24ucGhwJzsKCi8qKgogKiBUaGUgbWV0aG9kcyBQRUFSIERCIHVzZXMgdG8gaW50ZXJhY3Qgd2l0aCBQSFAncyBzcWxpdGUgZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIFNRTGl0ZSBkYXRhYmFzZXMKICoKICogVGhlc2UgbWV0aG9kcyBvdmVybG9hZCB0aGUgb25lcyBkZWNsYXJlZCBpbiBEQl9jb21tb24uCiAqCiAqIE5PVElDRTogIFRoaXMgZHJpdmVyIG5lZWRzIFBIUCdzIHRyYWNrX2Vycm9ycyBpbmkgc2V0dGluZyB0byBiZSBvbi4KICogSXQgaXMgYXV0b21hdGljYWxseSB0dXJuZWQgb24gd2hlbiBjb25uZWN0aW5nIHRvIHRoZSBkYXRhYmFzZS4KICogTWFrZSBzdXJlIHlvdXIgc2NyaXB0cyBkb24ndCB0dXJuIGl0IG9mZi4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgVXJzIEdlaHJpZyA8dXJzQGNpcmNsZS5jaD4KICogQGF1dGhvciAgICAgTWlrYSBUdXVwb2xhIDx0dXVwb2xhQGFwcGVsc2lpbmkubmV0PgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMCAzLjAKICogQHZlcnNpb24gICAgUmVsZWFzZTogMS43LjEyCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KY2xhc3MgREJfc3FsaXRlIGV4dGVuZHMgREJfY29tbW9uCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgLyoqCiAgICAgKiBUaGUgREIgZHJpdmVyIHR5cGUgKG15c3FsLCBvY2k4LCBvZGJjLCBldGMuKQogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgdmFyICRwaHB0eXBlID0gJ3NxbGl0ZSc7CgogICAgLyoqCiAgICAgKiBUaGUgZGF0YWJhc2Ugc3ludGF4IHZhcmlhbnQgdG8gYmUgdXNlZCAoZGIyLCBhY2Nlc3MsIGV0Yy4pLCBpZiBhbnkKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkZGJzeW50YXggPSAnc3FsaXRlJzsKCiAgICAvKioKICAgICAqIFRoZSBjYXBhYmlsaXRpZXMgb2YgdGhpcyBEQiBpbXBsZW1lbnRhdGlvbgogICAgICoKICAgICAqIFRoZSAnbmV3X2xpbmsnIGVsZW1lbnQgY29udGFpbnMgdGhlIFBIUCB2ZXJzaW9uIHRoYXQgZmlyc3QgcHJvdmlkZWQKICAgICAqIG5ld19saW5rIHN1cHBvcnQgZm9yIHRoaXMgREJNUy4gIENvbnRhaW5zIGZhbHNlIGlmIGl0J3MgdW5zdXBwb3J0ZWQuCiAgICAgKgogICAgICogTWVhbmluZyBvZiB0aGUgJ2xpbWl0JyBlbGVtZW50OgogICAgICogICArICdlbXVsYXRlJyA9IGVtdWxhdGUgd2l0aCBmZXRjaCByb3cgYnkgbnVtYmVyCiAgICAgKiAgICsgJ2FsdGVyJyAgID0gYWx0ZXIgdGhlIHF1ZXJ5CiAgICAgKiAgICsgZmFsc2UgICAgID0gc2tpcCByb3dzCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGZlYXR1cmVzID0gYXJyYXkoCiAgICAgICAgJ2xpbWl0JyAgICAgICAgID0+ICdhbHRlcicsCiAgICAgICAgJ25ld19saW5rJyAgICAgID0+IGZhbHNlLAogICAgICAgICdudW1yb3dzJyAgICAgICA9PiB0cnVlLAogICAgICAgICdwY29ubmVjdCcgICAgICA9PiB0cnVlLAogICAgICAgICdwcmVwYXJlJyAgICAgICA9PiBmYWxzZSwKICAgICAgICAnc3NsJyAgICAgICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ3RyYW5zYWN0aW9ucycgID0+IGZhbHNlLAogICAgKTsKCiAgICAvKioKICAgICAqIEEgbWFwcGluZyBvZiBuYXRpdmUgZXJyb3IgY29kZXMgdG8gREIgZXJyb3IgY29kZXMKICAgICAqCiAgICAgKiB7QGludGVybmFsICBFcnJvciBjb2RlcyBhY2NvcmRpbmcgdG8gc3FsaXRlX2V4ZWMuICBTZWUgdGhlIG9ubGluZQogICAgICogbWFudWFsIGF0IGh0dHA6Ly9zcWxpdGUub3JnL2NfaW50ZXJmYWNlLmh0bWwgZm9yIGluZm8uCiAgICAgKiBUaGlzIGVycm9yIGhhbmRsaW5nIGJhc2VkIG9uIHNxbGl0ZV9leGVjIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQufX0KICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZXJyb3Jjb2RlX21hcCA9IGFycmF5KAogICAgKTsKCiAgICAvKioKICAgICAqIFRoZSByYXcgZGF0YWJhc2UgY29ubmVjdGlvbiBjcmVhdGVkIGJ5IFBIUAogICAgICogQHZhciByZXNvdXJjZQogICAgICovCiAgICB2YXIgJGNvbm5lY3Rpb247CgogICAgLyoqCiAgICAgKiBUaGUgRFNOIGluZm9ybWF0aW9uIGZvciBjb25uZWN0aW5nIHRvIGEgZGF0YWJhc2UKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRkc24gPSBhcnJheSgpOwoKCiAgICAvKioKICAgICAqIFNRTGl0ZSBkYXRhIHR5cGVzCiAgICAgKgogICAgICogQGxpbmsgaHR0cDovL3d3dy5zcWxpdGUub3JnL2RhdGF0eXBlcy5odG1sCiAgICAgKgogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGtleXdvcmRzID0gYXJyYXkgKAogICAgICAgICdCTE9CJyAgICAgID0+ICcnLAogICAgICAgICdCT09MRUFOJyAgID0+ICcnLAogICAgICAgICdDSEFSQUNURVInID0+ICcnLAogICAgICAgICdDTE9CJyAgICAgID0+ICcnLAogICAgICAgICdGTE9BVCcgICAgID0+ICcnLAogICAgICAgICdJTlRFR0VSJyAgID0+ICcnLAogICAgICAgICdLRVknICAgICAgID0+ICcnLAogICAgICAgICdOQVRJT05BTCcgID0+ICcnLAogICAgICAgICdOVU1FUklDJyAgID0+ICcnLAogICAgICAgICdOVkFSQ0hBUicgID0+ICcnLAogICAgICAgICdQUklNQVJZJyAgID0+ICcnLAogICAgICAgICdURVhUJyAgICAgID0+ICcnLAogICAgICAgICdUSU1FU1RBTVAnID0+ICcnLAogICAgICAgICdVTklRVUUnICAgID0+ICcnLAogICAgICAgICdWQVJDSEFSJyAgID0+ICcnLAogICAgICAgICdWQVJZSU5HJyAgID0+ICcnLAogICAgKTsKCiAgICAvKioKICAgICAqIFRoZSBtb3N0IHJlY2VudCBlcnJvciBtZXNzYWdlIGZyb20gJHBocF9lcnJvcm1zZwogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJF9sYXN0ZXJyb3IgPSAnJzsKCgogICAgLy8gfX19CiAgICAvLyB7e3sgY29uc3RydWN0b3IKCiAgICAvKioKICAgICAqIFRoaXMgY29uc3RydWN0b3IgY2FsbHMgPGtiZD4kdGhpcy0+REJfY29tbW9uKCk8L2tiZD4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgZnVuY3Rpb24gREJfc3FsaXRlKCkKICAgIHsKICAgICAgICAkdGhpcy0+REJfY29tbW9uKCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgY29ubmVjdCgpCgogICAgLyoqCiAgICAgKiBDb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIsIGxvZyBpbiBhbmQgb3BlbiB0aGUgZGF0YWJhc2UKICAgICAqCiAgICAgKiBEb24ndCBjYWxsIHRoaXMgbWV0aG9kIGRpcmVjdGx5LiAgVXNlIERCOjpjb25uZWN0KCkgaW5zdGVhZC4KICAgICAqCiAgICAgKiBQRUFSIERCJ3Mgc3FsaXRlIGRyaXZlciBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIGV4dHJhIERTTiBvcHRpb25zOgogICAgICogICArIG1vZGUgIFRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIGRhdGFiYXNlIGZpbGUsIGluIGZvdXIgZGlnaXQKICAgICAqICAgICAgICAgICAgY2htb2Qgb2N0YWwgZm9ybWF0IChlZyAiMDYwMCIpLgogICAgICoKICAgICAqIEV4YW1wbGUgb2YgY29ubmVjdGluZyB0byBhIGRhdGFiYXNlIGluIHJlYWQtb25seSBtb2RlOgogICAgICogPGNvZGU+CiAgICAgKiByZXF1aXJlX29uY2UgJ0RCLnBocCc7CiAgICAgKiAKICAgICAqICRkc24gPSAnc3FsaXRlOi8vL3BhdGgvYW5kL25hbWUvb2YvZGIvZmlsZT9tb2RlPTA0MDAnOwogICAgICogJG9wdGlvbnMgPSBhcnJheSgKICAgICAqICAgICAncG9ydGFiaWxpdHknID0+IERCX1BPUlRBQklMSVRZX0FMTCwKICAgICAqICk7CiAgICAgKiAKICAgICAqICRkYiA9JiBEQjo6Y29ubmVjdCgkZHNuLCAkb3B0aW9ucyk7CiAgICAgKiBpZiAoUEVBUjo6aXNFcnJvcigkZGIpKSB7CiAgICAgKiAgICAgZGllKCRkYi0+Z2V0TWVzc2FnZSgpKTsKICAgICAqIH0KICAgICAqIDwvY29kZT4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJGRzbiAgICAgICAgIHRoZSBkYXRhIHNvdXJjZSBuYW1lCiAgICAgKiBAcGFyYW0gYm9vbCAgJHBlcnNpc3RlbnQgIHNob3VsZCB0aGUgY29ubmVjdGlvbiBiZSBwZXJzaXN0ZW50PwogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBjb25uZWN0KCRkc24sICRwZXJzaXN0ZW50ID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCFQRUFSOjpsb2FkRXh0ZW5zaW9uKCdzcWxpdGUnKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfRVhURU5TSU9OX05PVF9GT1VORCk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+ZHNuID0gJGRzbjsKICAgICAgICBpZiAoJGRzblsnZGJzeW50YXgnXSkgewogICAgICAgICAgICAkdGhpcy0+ZGJzeW50YXggPSAkZHNuWydkYnN5bnRheCddOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEkZHNuWydkYXRhYmFzZSddKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c3FsaXRlUmFpc2VFcnJvcihEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OKTsKICAgICAgICB9CgogICAgICAgIGlmICgkZHNuWydkYXRhYmFzZSddICE9PSAnOm1lbW9yeTonKSB7CiAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoJGRzblsnZGF0YWJhc2UnXSkpIHsKICAgICAgICAgICAgICAgIGlmICghdG91Y2goJGRzblsnZGF0YWJhc2UnXSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnNxbGl0ZVJhaXNlRXJyb3IoREJfRVJST1JfTk9UX0ZPVU5EKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghaXNzZXQoJGRzblsnbW9kZSddKSB8fAogICAgICAgICAgICAgICAgICAgICFpc19udW1lcmljKCRkc25bJ21vZGUnXSkpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgJG1vZGUgPSAwNjQ0OwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkbW9kZSA9IG9jdGRlYygkZHNuWydtb2RlJ10pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFjaG1vZCgkZHNuWydkYXRhYmFzZSddLCAkbW9kZSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnNxbGl0ZVJhaXNlRXJyb3IoREJfRVJST1JfTk9UX0ZPVU5EKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoJGRzblsnZGF0YWJhc2UnXSkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnNxbGl0ZVJhaXNlRXJyb3IoREJfRVJST1JfTk9UX0ZPVU5EKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWlzX2ZpbGUoJGRzblsnZGF0YWJhc2UnXSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c3FsaXRlUmFpc2VFcnJvcihEQl9FUlJPUl9JTlZBTElEKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWlzX3JlYWRhYmxlKCRkc25bJ2RhdGFiYXNlJ10pKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnNxbGl0ZVJhaXNlRXJyb3IoREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICRjb25uZWN0X2Z1bmN0aW9uID0gJHBlcnNpc3RlbnQgPyAnc3FsaXRlX3BvcGVuJyA6ICdzcWxpdGVfb3Blbic7CgogICAgICAgIC8vIHRyYWNrX2Vycm9ycyBtdXN0IHJlbWFpbiBvbiBmb3Igc2ltcGxlUXVlcnkoKQogICAgICAgIEBpbmlfc2V0KCd0cmFja19lcnJvcnMnLCAxKTsKICAgICAgICAkcGhwX2Vycm9ybXNnID0gJyc7CgogICAgICAgIGlmICghJHRoaXMtPmNvbm5lY3Rpb24gPSBAJGNvbm5lY3RfZnVuY3Rpb24oJGRzblsnZGF0YWJhc2UnXSkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX05PREJTRUxFQ1RFRCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcGhwX2Vycm9ybXNnKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRpc2Nvbm5lY3QoKQoKICAgIC8qKgogICAgICogRGlzY29ubmVjdHMgZnJvbSB0aGUgZGF0YWJhc2Ugc2VydmVyCiAgICAgKgogICAgICogQHJldHVybiBib29sICBUUlVFIG9uIHN1Y2Nlc3MsIEZBTFNFIG9uIGZhaWx1cmUKICAgICAqLwogICAgZnVuY3Rpb24gZGlzY29ubmVjdCgpCiAgICB7CiAgICAgICAgJHJldCA9IEBzcWxpdGVfY2xvc2UoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICR0aGlzLT5jb25uZWN0aW9uID0gbnVsbDsKICAgICAgICByZXR1cm4gJHJldDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBzaW1wbGVRdWVyeSgpCgogICAgLyoqCiAgICAgKiBTZW5kcyBhIHF1ZXJ5IHRvIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBOT1RJQ0U6ICBUaGlzIG1ldGhvZCBuZWVkcyBQSFAncyB0cmFja19lcnJvcnMgaW5pIHNldHRpbmcgdG8gYmUgb24uCiAgICAgKiBJdCBpcyBhdXRvbWF0aWNhbGx5IHR1cm5lZCBvbiB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIGRhdGFiYXNlLgogICAgICogTWFrZSBzdXJlIHlvdXIgc2NyaXB0cyBkb24ndCB0dXJuIGl0IG9mZi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZwogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgICsgYSBQSFAgcmVzdWx0IHJlc3JvdWNlIGZvciBzdWNjZXNzZnVsIFNFTEVDVCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIHRoZSBEQl9PSyBjb25zdGFudCBmb3Igb3RoZXIgc3VjY2Vzc2Z1bCBxdWVyaWVzCiAgICAgKiAgICAgICAgICAgICAgICArIGEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUKICAgICAqLwogICAgZnVuY3Rpb24gc2ltcGxlUXVlcnkoJHF1ZXJ5KQogICAgewogICAgICAgICRpc21hbmlwID0gJHRoaXMtPl9jaGVja01hbmlwKCRxdWVyeSk7CiAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAkcXVlcnk7CiAgICAgICAgJHF1ZXJ5ID0gJHRoaXMtPm1vZGlmeVF1ZXJ5KCRxdWVyeSk7CgogICAgICAgICRwaHBfZXJyb3Jtc2cgPSAnJzsKCiAgICAgICAgJHJlc3VsdCA9IEBzcWxpdGVfcXVlcnkoJHF1ZXJ5LCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgJHRoaXMtPl9sYXN0ZXJyb3IgPSAkcGhwX2Vycm9ybXNnID8gJHBocF9lcnJvcm1zZyA6ICcnOwoKICAgICAgICAkdGhpcy0+cmVzdWx0ID0gJHJlc3VsdDsKICAgICAgICBpZiAoISR0aGlzLT5yZXN1bHQpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zcWxpdGVSYWlzZUVycm9yKG51bGwpOwogICAgICAgIH0KCiAgICAgICAgLy8gc3FsaXRlX3F1ZXJ5KCkgc2VlbXMgdG8gYWxsd2F5cyByZXR1cm4gYSByZXNvdXJjZQogICAgICAgIC8vIHNvIGNhbnQgdXNlIHRoYXQuIFVzaW5nICRpc21hbmlwIGluc3RlYWQKICAgICAgICBpZiAoISRpc21hbmlwKSB7CiAgICAgICAgICAgICRudW1Sb3dzID0gJHRoaXMtPm51bVJvd3MoJHJlc3VsdCk7CiAgICAgICAgICAgIGlmIChpc19vYmplY3QoJG51bVJvd3MpKSB7CiAgICAgICAgICAgICAgICAvLyB3ZSd2ZSBnb3QgUEVBUl9FcnJvcgogICAgICAgICAgICAgICAgcmV0dXJuICRudW1Sb3dzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkcmVzdWx0OwogICAgICAgIH0KICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dFJlc3VsdCgpCgogICAgLyoqCiAgICAgKiBNb3ZlIHRoZSBpbnRlcm5hbCBzcWxpdGUgcmVzdWx0IHBvaW50ZXIgdG8gdGhlIG5leHQgYXZhaWxhYmxlIHJlc3VsdAogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICB0aGUgdmFsaWQgc3FsaXRlIHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEByZXR1cm4gYm9vbCAgdHJ1ZSBpZiBhIHJlc3VsdCBpcyBhdmFpbGFibGUgb3RoZXJ3aXNlIHJldHVybiBmYWxzZQogICAgICovCiAgICBmdW5jdGlvbiBuZXh0UmVzdWx0KCRyZXN1bHQpCiAgICB7CiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGZldGNoSW50bygpCgogICAgLyoqCiAgICAgKiBQbGFjZXMgYSByb3cgZnJvbSB0aGUgcmVzdWx0IHNldCBpbnRvIHRoZSBnaXZlbiBhcnJheQogICAgICoKICAgICAqIEZvcm1hdGluZyBvZiB0aGUgYXJyYXkgYW5kIHRoZSBkYXRhIHRoZXJlaW4gYXJlIGNvbmZpZ3VyYWJsZS4KICAgICAqIFNlZSBEQl9yZXN1bHQ6OmZldGNoSW50bygpIGZvciBtb3JlIGluZm9ybWF0aW9uLgogICAgICoKICAgICAqIFRoaXMgbWV0aG9kIGlzIG5vdCBtZWFudCB0byBiZSBjYWxsZWQgZGlyZWN0bHkuICBVc2UKICAgICAqIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgaW5zdGVhZC4gIEl0IGNhbid0IGJlIGRlY2xhcmVkICJwcm90ZWN0ZWQiCiAgICAgKiBiZWNhdXNlIERCX3Jlc3VsdCBpcyBhIHNlcGFyYXRlIG9iamVjdC4KICAgICAqCiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgJHJlc3VsdCAgICB0aGUgcXVlcnkgcmVzdWx0IHJlc291cmNlCiAgICAgKiBAcGFyYW0gYXJyYXkgICAgJGFyciAgICAgICB0aGUgcmVmZXJlbmNlZCBhcnJheSB0byBwdXQgdGhlIGRhdGEgaW4KICAgICAqIEBwYXJhbSBpbnQgICAgICAkZmV0Y2htb2RlIGhvdyB0aGUgcmVzdWx0aW5nIGFycmF5IHNob3VsZCBiZSBpbmRleGVkCiAgICAgKiBAcGFyYW0gaW50ICAgICAgJHJvd251bSAgICB0aGUgcm93IG51bWJlciB0byBmZXRjaCAoMCA9IGZpcnN0IHJvdykKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICBEQl9PSyBvbiBzdWNjZXNzLCBOVUxMIHdoZW4gdGhlIGVuZCBvZiBhIHJlc3VsdCBzZXQgaXMKICAgICAqICAgICAgICAgICAgICAgICByZWFjaGVkIG9yIG9uIGZhaWx1cmUKICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkKICAgICAqLwogICAgZnVuY3Rpb24gZmV0Y2hJbnRvKCRyZXN1bHQsICYkYXJyLCAkZmV0Y2htb2RlLCAkcm93bnVtID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoJHJvd251bSAhPT0gbnVsbCkgewogICAgICAgICAgICBpZiAoIUBzcWxpdGVfc2VlaygkdGhpcy0+cmVzdWx0LCAkcm93bnVtKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCRmZXRjaG1vZGUgJiBEQl9GRVRDSE1PREVfQVNTT0MpIHsKICAgICAgICAgICAgJGFyciA9IEBzcWxpdGVfZmV0Y2hfYXJyYXkoJHJlc3VsdCwgU1FMSVRFX0FTU09DKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmICRhcnIpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYXJyID0gQHNxbGl0ZV9mZXRjaF9hcnJheSgkcmVzdWx0LCBTUUxJVEVfTlVNKTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkYXJyKSB7CiAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9SVFJJTSkgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBFdmVuIHRob3VnaCB0aGlzIERCTVMgYWxyZWFkeSB0cmltcyBvdXRwdXQsIHdlIGRvIHRoaXMgYmVjYXVzZQogICAgICAgICAgICAgKiBhIGZpZWxkIG1pZ2h0IGhhdmUgaW50ZW50aW9uYWwgd2hpdGVzcGFjZSBhdCB0aGUgZW5kIHRoYXQKICAgICAgICAgICAgICogZ2V0cyByZW1vdmVkIGJ5IERCX1BPUlRBQklMSVRZX1JUUklNIHVuZGVyIGFub3RoZXIgZHJpdmVyLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJHRoaXMtPl9ydHJpbUFycmF5VmFsdWVzKCRhcnIpOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9OVUxMX1RPX0VNUFRZKSB7CiAgICAgICAgICAgICR0aGlzLT5fY29udmVydE51bGxBcnJheVZhbHVlc1RvRW1wdHkoJGFycik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBmcmVlUmVzdWx0KCkKCiAgICAvKioKICAgICAqIERlbGV0ZXMgdGhlIHJlc3VsdCBzZXQgYW5kIGZyZWVzIHRoZSBtZW1vcnkgb2NjdXBpZWQgYnkgdGhlIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6OmZyZWUoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0UgaWYgJHJlc3VsdCBpcyBpbnZhbGlkCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6OmZyZWUoKQogICAgICovCiAgICBmdW5jdGlvbiBmcmVlUmVzdWx0KCYkcmVzdWx0KQogICAgewogICAgICAgIC8vIFhYWCBObyBuYXRpdmUgZnJlZT8KICAgICAgICBpZiAoIWlzX3Jlc291cmNlKCRyZXN1bHQpKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgJHJlc3VsdCA9IG51bGw7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtQ29scygpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6Om51bUNvbHMoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiBjb2x1bW5zLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6bnVtQ29scygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG51bUNvbHMoJHJlc3VsdCkKICAgIHsKICAgICAgICAkY29scyA9IEBzcWxpdGVfbnVtX2ZpZWxkcygkcmVzdWx0KTsKICAgICAgICBpZiAoISRjb2xzKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c3FsaXRlUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvbHM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtUm93cygpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6Om51bVJvd3MoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6bnVtUm93cygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG51bVJvd3MoJHJlc3VsdCkKICAgIHsKICAgICAgICAkcm93cyA9IEBzcWxpdGVfbnVtX3Jvd3MoJHJlc3VsdCk7CiAgICAgICAgaWYgKCRyb3dzID09PSBudWxsKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c3FsaXRlUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJvd3M7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYWZmZWN0ZWQoKQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyB0aGUgbnVtYmVyIG9mIHJvd3MgYWZmZWN0ZWQgYnkgYSBkYXRhIG1hbml1cGxhdGlvbiBxdWVyeQogICAgICoKICAgICAqIDAgaXMgcmV0dXJuZWQgZm9yIHF1ZXJpZXMgdGhhdCBkb24ndCBtYW5pcHVsYXRlIGRhdGEuCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBudW1iZXIgb2Ygcm93cy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGFmZmVjdGVkUm93cygpCiAgICB7CiAgICAgICAgcmV0dXJuIEBzcWxpdGVfY2hhbmdlcygkdGhpcy0+Y29ubmVjdGlvbik7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZHJvcFNlcXVlbmNlKCkKCiAgICAvKioKICAgICAqIERlbGV0ZXMgYSBzZXF1ZW5jZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZSB0byBiZSBkZWxldGVkCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpkcm9wU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfc3FsaXRlOjpuZXh0SUQoKSwgREJfc3FsaXRlOjpjcmVhdGVTZXF1ZW5jZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGRyb3BTZXF1ZW5jZSgkc2VxX25hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5xdWVyeSgnRFJPUCBUQUJMRSAnIC4gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpKTsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZXMgYSBuZXcgc2VxdWVuY2UKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgIERCX09LIG9uIHN1Y2Nlc3MuICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpjcmVhdGVTZXF1ZW5jZSgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9zcWxpdGU6Om5leHRJRCgpLCBEQl9zcWxpdGU6OmRyb3BTZXF1ZW5jZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNyZWF0ZVNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICAkc2VxbmFtZSA9ICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKTsKICAgICAgICAkcXVlcnkgICA9ICdDUkVBVEUgVEFCTEUgJyAuICRzZXFuYW1lIC4KICAgICAgICAgICAgICAgICAgICcgKGlkIElOVEVHRVIgVU5TSUdORUQgUFJJTUFSWSBLRVkpICc7CiAgICAgICAgJHJlc3VsdCAgPSAkdGhpcy0+cXVlcnkoJHF1ZXJ5KTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgcmV0dXJuKCRyZXN1bHQpOwogICAgICAgIH0KICAgICAgICAkcXVlcnkgICA9ICJDUkVBVEUgVFJJR0dFUiAke3NlcW5hbWV9X2NsZWFudXAgQUZURVIgSU5TRVJUIE9OICRzZXFuYW1lCiAgICAgICAgICAgICAgICAgICAgQkVHSU4KICAgICAgICAgICAgICAgICAgICAgICAgREVMRVRFIEZST00gJHNlcW5hbWUgV0hFUkUgaWQ8TEFTVF9JTlNFUlRfUk9XSUQoKTsKICAgICAgICAgICAgICAgICAgICBFTkQgIjsKICAgICAgICAkcmVzdWx0ICA9ICR0aGlzLT5xdWVyeSgkcXVlcnkpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4oJHJlc3VsdCk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG5leHRJZCgpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIHRoZSBuZXh0IGZyZWUgaWQgaW4gYSBzZXF1ZW5jZQogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgICRzZXFfbmFtZSAgbmFtZSBvZiB0aGUgc2VxdWVuY2UKICAgICAqIEBwYXJhbSBib29sZWFuICRvbmRlbWFuZCAgd2hlbiB0cnVlLCB0aGUgc2VxZW5jZSBpcyBhdXRvbWF0aWNhbGx5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVkIGlmIGl0IGRvZXMgbm90IGV4aXN0CiAgICAgKgogICAgICogQHJldHVybiBpbnQgIHRoZSBuZXh0IGlkIG51bWJlciBpbiB0aGUgc2VxdWVuY2UuCiAgICAgKiAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246Om5leHRJRCgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9zcWxpdGU6OmNyZWF0ZVNlcXVlbmNlKCksIERCX3NxbGl0ZTo6ZHJvcFNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gbmV4dElkKCRzZXFfbmFtZSwgJG9uZGVtYW5kID0gdHJ1ZSkKICAgIHsKICAgICAgICAkc2VxbmFtZSA9ICR0aGlzLT5nZXRTZXF1ZW5jZU5hbWUoJHNlcV9uYW1lKTsKCiAgICAgICAgZG8gewogICAgICAgICAgICAkcmVwZWF0ID0gMDsKICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5xdWVyeSgiSU5TRVJUIElOVE8gJHNlcW5hbWUgKGlkKSBWQUxVRVMgKE5VTEwpIik7CiAgICAgICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgICAgIGlmICgkcmVzdWx0ID09PSBEQl9PSykgewogICAgICAgICAgICAgICAgJGlkID0gQHNxbGl0ZV9sYXN0X2luc2VydF9yb3dpZCgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICAgICBpZiAoJGlkICE9IDApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGlkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2VpZiAoJG9uZGVtYW5kICYmIERCOjppc0Vycm9yKCRyZXN1bHQpICYmCiAgICAgICAgICAgICAgICAgICAgICAkcmVzdWx0LT5nZXRDb2RlKCkgPT0gREJfRVJST1JfTk9TVUNIVEFCTEUpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSAkdGhpcy0+Y3JlYXRlU2VxdWVuY2UoJHNlcV9uYW1lKTsKICAgICAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigkcmVzdWx0KTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHJlcGVhdCA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IHdoaWxlICgkcmVwZWF0KTsKCiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRyZXN1bHQpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldERiRmlsZVN0YXRzKCkKCiAgICAvKioKICAgICAqIEdldCB0aGUgZmlsZSBzdGF0cyBmb3IgdGhlIGN1cnJlbnQgZGF0YWJhc2UKICAgICAqCiAgICAgKiBQb3NzaWJsZSBhcmd1bWVudHMgYXJlIGRldiwgaW5vLCBtb2RlLCBubGluaywgdWlkLCBnaWQsIHJkZXYsIHNpemUsCiAgICAgKiBhdGltZSwgbXRpbWUsIGN0aW1lLCBibGtzaXplLCBibG9ja3Mgb3IgYSBudW1lcmljIGtleSBiZXR3ZWVuCiAgICAgKiAwIGFuZCAxMi4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhcmcgIHRoZSBhcnJheSBrZXkgZm9yIHN0YXRzKCkKICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkICBhbiBhcnJheSBvbiBhbiB1bnNwZWNpZmllZCBrZXksIGludGVnZXIgb24gYSBwYXNzZWQKICAgICAqICAgICAgICAgICAgICAgIGFyZyBhbmQgZmFsc2UgYXQgYSBzdGF0cyBlcnJvcgogICAgICovCiAgICBmdW5jdGlvbiBnZXREYkZpbGVTdGF0cygkYXJnID0gJycpCiAgICB7CiAgICAgICAgJHN0YXRzID0gc3RhdCgkdGhpcy0+ZHNuWydkYXRhYmFzZSddKTsKICAgICAgICBpZiAoJHN0YXRzID09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzX2FycmF5KCRzdGF0cykpIHsKICAgICAgICAgICAgaWYgKGlzX251bWVyaWMoJGFyZykpIHsKICAgICAgICAgICAgICAgIGlmICgoKGludCkkYXJnIDw9IDEyKSAmICgoaW50KSRhcmcgPj0gMCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gJHN0YXRzWyRhcmcgXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cyh0cmltKCRhcmcpLCAkc3RhdHMpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHN0YXRzWyRhcmcgXTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHN0YXRzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVzY2FwZVNpbXBsZSgpCgogICAgLyoqCiAgICAgKiBFc2NhcGVzIGEgc3RyaW5nIGFjY29yZGluZyB0byB0aGUgY3VycmVudCBEQk1TJ3Mgc3RhbmRhcmRzCiAgICAgKgogICAgICogSW4gU1FMaXRlLCB0aGlzIG1ha2VzIHRoaW5ncyBzYWZlIGZvciBpbnNlcnRzL3VwZGF0ZXMsIGJ1dCBtYXkKICAgICAqIGNhdXNlIHByb2JsZW1zIHdoZW4gcGVyZm9ybWluZyB0ZXh0IGNvbXBhcmlzb25zIGFnYWluc3QgY29sdW1ucwogICAgICogY29udGFpbmluZyBiaW5hcnkgZGF0YS4gU2VlIHRoZQogICAgICoge0BsaW5rIGh0dHA6Ly9waHAubmV0L3NxbGl0ZV9lc2NhcGVfc3RyaW5nIFBIUCBtYW51YWx9IGZvciBtb3JlIGluZm8uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc3RyICB0aGUgc3RyaW5nIHRvIGJlIGVzY2FwZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIGVzY2FwZWQgc3RyaW5nCiAgICAgKgogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjYuMQogICAgICogQHNlZSBEQl9jb21tb246OmVzY2FwZVNpbXBsZSgpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVzY2FwZVNpbXBsZSgkc3RyKQogICAgewogICAgICAgIHJldHVybiBAc3FsaXRlX2VzY2FwZV9zdHJpbmcoJHN0cik7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbW9kaWZ5TGltaXRRdWVyeSgpCgogICAgLyoqCiAgICAgKiBBZGRzIExJTUlUIGNsYXVzZXMgdG8gYSBxdWVyeSBzdHJpbmcgYWNjb3JkaW5nIHRvIGN1cnJlbnQgREJNUyBzdGFuZGFyZHMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRxdWVyeSAgIHRoZSBxdWVyeSB0byBtb2RpZnkKICAgICAqIEBwYXJhbSBpbnQgICAgJGZyb20gICAgdGhlIHJvdyB0byBzdGFydCB0byBmZXRjaGluZyAoMCA9IHRoZSBmaXJzdCByb3cpCiAgICAgKiBAcGFyYW0gaW50ICAgICRjb3VudCAgIHRoZSBudW1iZXJzIG9mIHJvd3MgdG8gZmV0Y2gKICAgICAqIEBwYXJhbSBtaXhlZCAgJHBhcmFtcyAgYXJyYXksIHN0cmluZyBvciBudW1lcmljIGRhdGEgdG8gYmUgdXNlZCBpbgogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgZXhlY3V0aW9uIG9mIHRoZSBzdGF0ZW1lbnQuICBRdWFudGl0eSBvZiBpdGVtcwogICAgICogICAgICAgICAgICAgICAgICAgICAgICAgcGFzc2VkIG11c3QgbWF0Y2ggcXVhbnRpdHkgb2YgcGxhY2Vob2xkZXJzIGluCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeTogIG1lYW5pbmcgMSBwbGFjZWhvbGRlciBmb3Igbm9uLWFycmF5CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzIG9yIDEgcGxhY2Vob2xkZXIgcGVyIGFycmF5IGVsZW1lbnQuCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBxdWVyeSBzdHJpbmcgd2l0aCBMSU1JVCBjbGF1c2VzIGFkZGVkCiAgICAgKgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgZnVuY3Rpb24gbW9kaWZ5TGltaXRRdWVyeSgkcXVlcnksICRmcm9tLCAkY291bnQsICRwYXJhbXMgPSBhcnJheSgpKQogICAgewogICAgICAgIHJldHVybiAiJHF1ZXJ5IExJTUlUICRjb3VudCBPRkZTRVQgJGZyb20iOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IG1vZGlmeVF1ZXJ5KCkKCiAgICAvKioKICAgICAqIENoYW5nZXMgYSBxdWVyeSBzdHJpbmcgZm9yIHZhcmlvdXMgREJNUyBzcGVjaWZpYyByZWFzb25zCiAgICAgKgogICAgICogVGhpcyBsaXR0bGUgaGFjayBsZXRzIHlvdSBrbm93IGhvdyBtYW55IHJvd3Mgd2VyZSBkZWxldGVkCiAgICAgKiB3aGVuIHJ1bm5pbmcgYSAiREVMRVRFIEZST00gdGFibGUiIHF1ZXJ5LiAgT25seSBpbXBsZW1lbnRlZAogICAgICogaWYgdGhlIERCX1BPUlRBQklMSVRZX0RFTEVURV9DT1VOVCBwb3J0YWJpbGl0eSBvcHRpb24gaXMgb24uCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcXVlcnkgIHRoZSBxdWVyeSBzdHJpbmcgdG8gbW9kaWZ5CiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBtb2RpZmllZCBxdWVyeSBzdHJpbmcKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHNlZSBEQl9jb21tb246OnNldE9wdGlvbigpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG1vZGlmeVF1ZXJ5KCRxdWVyeSkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9ERUxFVEVfQ09VTlQpIHsKICAgICAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eXHMqREVMRVRFXHMrRlJPTVxzKyhcUyspXHMqJC9pJywgJHF1ZXJ5KSkgewogICAgICAgICAgICAgICAgJHF1ZXJ5ID0gcHJlZ19yZXBsYWNlKCcvXlxzKkRFTEVURVxzK0ZST01ccysoXFMrKVxzKiQvJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnREVMRVRFIEZST00gXDEgV0hFUkUgMT0xJywgJHF1ZXJ5KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJHF1ZXJ5OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHNxbGl0ZVJhaXNlRXJyb3IoKQoKICAgIC8qKgogICAgICogUHJvZHVjZXMgYSBEQl9FcnJvciBvYmplY3QgcmVnYXJkaW5nIHRoZSBjdXJyZW50IHByb2JsZW0KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRlcnJubyAgaWYgdGhlIGVycm9yIGlzIGJlaW5nIG1hbnVhbGx5IHJhaXNlZCBwYXNzIGEKICAgICAqICAgICAgICAgICAgICAgICAgICAgREJfRVJST1IqIGNvbnN0YW50IGhlcmUuICBJZiB0aGlzIGlzbid0IHBhc3NlZAogICAgICogICAgICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgaW5mb3JtYXRpb24gZ2F0aGVyZWQgZnJvbSB0aGUgREJNUy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgdGhlIERCX0Vycm9yIG9iamVjdAogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjpyYWlzZUVycm9yKCksCiAgICAgKiAgICAgIERCX3NxbGl0ZTo6ZXJyb3JOYXRpdmUoKSwgREJfc3FsaXRlOjplcnJvckNvZGUoKQogICAgICovCiAgICBmdW5jdGlvbiBzcWxpdGVSYWlzZUVycm9yKCRlcnJubyA9IG51bGwpCiAgICB7CiAgICAgICAgJG5hdGl2ZSA9ICR0aGlzLT5lcnJvck5hdGl2ZSgpOwogICAgICAgIGlmICgkZXJybm8gPT09IG51bGwpIHsKICAgICAgICAgICAgJGVycm5vID0gJHRoaXMtPmVycm9yQ29kZSgkbmF0aXZlKTsKICAgICAgICB9CgogICAgICAgICRlcnJvcmNvZGUgPSBAc3FsaXRlX2xhc3RfZXJyb3IoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICR1c2VyaW5mbyA9ICIkZXJyb3Jjb2RlICoqICR0aGlzLT5sYXN0X3F1ZXJ5IjsKCiAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKCRlcnJubywgbnVsbCwgbnVsbCwgJHVzZXJpbmZvLCAkbmF0aXZlKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlcnJvck5hdGl2ZSgpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBEQk1TJyBuYXRpdmUgZXJyb3IgbWVzc2FnZSBwcm9kdWNlZCBieSB0aGUgbGFzdCBxdWVyeQogICAgICoKICAgICAqIHtAaW50ZXJuYWwgVGhpcyBpcyB1c2VkIHRvIHJldHJpZXZlIG1vcmUgbWVhbmluZ2Z1bGwgZXJyb3IgbWVzc2FnZXMKICAgICAqIGJlY2F1c2Ugc3FsaXRlX2xhc3RfZXJyb3IoKSBkb2VzIG5vdCBwcm92aWRlIGFkZXF1YXRlIGluZm8ufX0KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgdGhlIERCTVMnIGVycm9yIG1lc3NhZ2UKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JOYXRpdmUoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+X2xhc3RlcnJvcjsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBlcnJvckNvZGUoKQoKICAgIC8qKgogICAgICogRGV0ZXJtaW5lcyBQRUFSOjpEQiBlcnJvciBjb2RlIGZyb20gdGhlIGRhdGFiYXNlJ3MgdGV4dCBlcnJvciBtZXNzYWdlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkZXJyb3Jtc2cgIHRoZSBlcnJvciBtZXNzYWdlIHJldHVybmVkIGZyb20gdGhlIGRhdGFiYXNlCiAgICAgKgogICAgICogQHJldHVybiBpbnRlZ2VyICB0aGUgREIgZXJyb3IgbnVtYmVyCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVycm9yQ29kZSgkZXJyb3Jtc2cpCiAgICB7CiAgICAgICAgc3RhdGljICRlcnJvcl9yZWdleHBzOwogICAgICAgIAogICAgICAgIC8vIFBIUCA1LjIrIHByZXBlbmRzIHRoZSBmdW5jdGlvbiBuYW1lIHRvICRwaHBfZXJyb3Jtc2csIHNvIHdlIG5lZWQKICAgICAgICAvLyB0aGlzIGhhY2sgdG8gd29yayBhcm91bmQgaXQsIHBlciBidWcgIzk1OTkuCiAgICAgICAgJGVycm9ybXNnID0gcHJlZ19yZXBsYWNlKCcvXnNxbGl0ZVthLXpfXStcKFwpOiAvJywgJycsICRlcnJvcm1zZyk7CiAgICAgICAgCiAgICAgICAgaWYgKCFpc3NldCgkZXJyb3JfcmVnZXhwcykpIHsKICAgICAgICAgICAgJGVycm9yX3JlZ2V4cHMgPSBhcnJheSgKICAgICAgICAgICAgICAgICcvXm5vIHN1Y2ggdGFibGU6LycgPT4gREJfRVJST1JfTk9TVUNIVEFCTEUsCiAgICAgICAgICAgICAgICAnL15ubyBzdWNoIGluZGV4Oi8nID0+IERCX0VSUk9SX05PVF9GT1VORCwKICAgICAgICAgICAgICAgICcvXih0YWJsZXxpbmRleCkgLiogYWxyZWFkeSBleGlzdHMkLycgPT4gREJfRVJST1JfQUxSRUFEWV9FWElTVFMsCiAgICAgICAgICAgICAgICAnL1BSSU1BUlkgS0VZIG11c3QgYmUgdW5pcXVlL2knID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgICAgICAgICAnL2lzIG5vdCB1bmlxdWUvJyA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgICAgICAgICAgJy9jb2x1bW5zIC4qIGFyZSBub3QgdW5pcXVlL2knID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgICAgICAgICAnL3VuaXF1ZW5lc3MgY29uc3RyYWludCBmYWlsZWQvJyA9PiBEQl9FUlJPUl9DT05TVFJBSU5ULAogICAgICAgICAgICAgICAgJy9tYXkgbm90IGJlIE5VTEwvJyA9PiBEQl9FUlJPUl9DT05TVFJBSU5UX05PVF9OVUxMLAogICAgICAgICAgICAgICAgJy9ebm8gc3VjaCBjb2x1bW46LycgPT4gREJfRVJST1JfTk9TVUNIRklFTEQsCiAgICAgICAgICAgICAgICAnL2NvbHVtbiBub3QgcHJlc2VudCBpbiBib3RoIHRhYmxlcy9pJyA9PiBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwKICAgICAgICAgICAgICAgICcvXm5lYXIgIi4qIjogc3ludGF4IGVycm9yJC8nID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAgICAgICAgICcvWzAtOV0rIHZhbHVlcyBmb3IgWzAtOV0rIGNvbHVtbnMvaScgPT4gREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XLAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBmb3JlYWNoICgkZXJyb3JfcmVnZXhwcyBhcyAkcmVnZXhwID0+ICRjb2RlKSB7CiAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCRyZWdleHAsICRlcnJvcm1zZykpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkY29kZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyBGYWxsIGJhY2sgdG8gREJfRVJST1IgaWYgdGhlcmUgd2FzIG5vIG1hcHBpbmcuCiAgICAgICAgcmV0dXJuIERCX0VSUk9SOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRhYmxlSW5mbygpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgdGFibGUKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICAgICAgICAgJHJlc3VsdCAgYSBzdHJpbmcgY29udGFpbmluZyB0aGUgbmFtZSBvZiBhIHRhYmxlCiAgICAgKiBAcGFyYW0gaW50ICAgICAgICAgICAgJG1vZGUgICAgYSB2YWxpZCB0YWJsZUluZm8gbW9kZQogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkgIGFuIGFzc29jaWF0aXZlIGFycmF5IHdpdGggdGhlIGluZm9ybWF0aW9uIHJlcXVlc3RlZC4KICAgICAqICAgICAgICAgICAgICAgICBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICoKICAgICAqIEBzZWUgREJfY29tbW9uOjp0YWJsZUluZm8oKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgUmVsZWFzZSAxLjcuMAogICAgICovCiAgICBmdW5jdGlvbiB0YWJsZUluZm8oJHJlc3VsdCwgJG1vZGUgPSBudWxsKQogICAgewogICAgICAgIGlmIChpc19zdHJpbmcoJHJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSB0YWJsZSBuYW1lLgogICAgICAgICAgICAgKiBDcmVhdGUgYSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9IEBzcWxpdGVfYXJyYXlfcXVlcnkoJHRoaXMtPmNvbm5lY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlBSQUdNQSB0YWJsZV9pbmZvKCckcmVzdWx0Jyk7IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTUUxJVEVfQVNTT0MpOwogICAgICAgICAgICAkZ290X3N0cmluZyA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPmxhc3RfcXVlcnkgPSAnJzsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX05PVF9DQVBBQkxFLCBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoaXMgREJNUyBjYW4gbm90IG9idGFpbiB0YWJsZUluZm8nIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgZnJvbSByZXN1bHQgc2V0cycpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydG9sb3dlcic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ2YWwnOwogICAgICAgIH0KCiAgICAgICAgJGNvdW50ID0gY291bnQoJGlkKTsKICAgICAgICAkcmVzICAgPSBhcnJheSgpOwoKICAgICAgICBpZiAoJG1vZGUpIHsKICAgICAgICAgICAgJHJlc1snbnVtX2ZpZWxkcyddID0gJGNvdW50OwogICAgICAgIH0KCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJGNvdW50OyAkaSsrKSB7CiAgICAgICAgICAgIGlmIChzdHJwb3MoJGlkWyRpXVsndHlwZSddLCAnKCcpICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJGJpdHMgPSBleHBsb2RlKCcoJywgJGlkWyRpXVsndHlwZSddKTsKICAgICAgICAgICAgICAgICR0eXBlID0gJGJpdHNbMF07CiAgICAgICAgICAgICAgICAkbGVuICA9IHJ0cmltKCRiaXRzWzFdLCcpJyk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdHlwZSA9ICRpZFskaV1bJ3R5cGUnXTsKICAgICAgICAgICAgICAgICRsZW4gID0gMDsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGZsYWdzID0gJyc7CiAgICAgICAgICAgIGlmICgkaWRbJGldWydwayddKSB7CiAgICAgICAgICAgICAgICAkZmxhZ3MgLj0gJ3ByaW1hcnlfa2V5ICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRpZFskaV1bJ25vdG51bGwnXSkgewogICAgICAgICAgICAgICAgJGZsYWdzIC49ICdub3RfbnVsbCAnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkaWRbJGldWydkZmx0X3ZhbHVlJ10gIT09IG51bGwpIHsKICAgICAgICAgICAgICAgICRmbGFncyAuPSAnZGVmYXVsdF8nIC4gcmF3dXJsZW5jb2RlKCRpZFskaV1bJ2RmbHRfdmFsdWUnXSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGZsYWdzID0gdHJpbSgkZmxhZ3MpOwoKICAgICAgICAgICAgJHJlc1skaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICd0YWJsZScgPT4gJGNhc2VfZnVuYygkcmVzdWx0KSwKICAgICAgICAgICAgICAgICduYW1lJyAgPT4gJGNhc2VfZnVuYygkaWRbJGldWyduYW1lJ10pLAogICAgICAgICAgICAgICAgJ3R5cGUnICA9PiAkdHlwZSwKICAgICAgICAgICAgICAgICdsZW4nICAgPT4gJGxlbiwKICAgICAgICAgICAgICAgICdmbGFncycgPT4gJGZsYWdzLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCRtb2RlICYgREJfVEFCTEVJTkZPX09SREVSKSB7CiAgICAgICAgICAgICAgICAkcmVzWydvcmRlciddWyRyZXNbJGldWyduYW1lJ11dID0gJGk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRtb2RlICYgREJfVEFCTEVJTkZPX09SREVSVEFCTEUpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVydGFibGUnXVskcmVzWyRpXVsndGFibGUnXV1bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0U3BlY2lhbFF1ZXJ5KCkKCiAgICAvKioKICAgICAqIE9idGFpbnMgdGhlIHF1ZXJ5IHN0cmluZyBuZWVkZWQgZm9yIGxpc3RpbmcgYSBnaXZlbiB0eXBlIG9mIG9iamVjdHMKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlICB0aGUga2luZCBvZiBvYmplY3RzIHlvdSB3YW50IHRvIHJldHJpZXZlCiAgICAgKiBAcGFyYW0gYXJyYXkgICRhcmdzICBTUUxJVEUgRFJJVkVSIE9OTFk6IGEgcHJpdmF0ZSBhcnJheSBvZiBhcmd1bWVudHMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICB1c2VkIGJ5IHRoZSBnZXRTcGVjaWFsUXVlcnkoKS4gIERvIG5vdCB1c2UKICAgICAqICAgICAgICAgICAgICAgICAgICAgICB0aGlzIGRpcmVjdGx5LgogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZyBvciBudWxsIGlmIHRoZSBkcml2ZXIgZG9lc24ndAogICAgICogICAgICAgICAgICAgICAgICBzdXBwb3J0IHRoZSBvYmplY3QgdHlwZSByZXF1ZXN0ZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHNlZSBEQl9jb21tb246OmdldExpc3RPZigpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFNwZWNpYWxRdWVyeSgkdHlwZSwgJGFyZ3MgPSBhcnJheSgpKQogICAgewogICAgICAgIGlmICghaXNfYXJyYXkoJGFyZ3MpKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcignbm8ga2V5IHNwZWNpZmllZCcsIG51bGwsIG51bGwsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQXJndW1lbnQgaGFzIHRvIGJlIGFuIGFycmF5LicpOwogICAgICAgIH0KCiAgICAgICAgc3dpdGNoICgkdHlwZSkgewogICAgICAgICAgICBjYXNlICdtYXN0ZXInOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1QgKiBGUk9NIHNxbGl0ZV9tYXN0ZXI7JzsKICAgICAgICAgICAgY2FzZSAndGFibGVzJzoKICAgICAgICAgICAgICAgIHJldHVybiAiU0VMRUNUIG5hbWUgRlJPTSBzcWxpdGVfbWFzdGVyIFdIRVJFIHR5cGU9J3RhYmxlJyAiCiAgICAgICAgICAgICAgICAgICAgICAgLiAnVU5JT04gQUxMIFNFTEVDVCBuYW1lIEZST00gc3FsaXRlX3RlbXBfbWFzdGVyICcKICAgICAgICAgICAgICAgICAgICAgICAuICJXSEVSRSB0eXBlPSd0YWJsZScgT1JERVIgQlkgbmFtZTsiOwogICAgICAgICAgICBjYXNlICdzY2hlbWEnOgogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1Qgc3FsIEZST00gKFNFTEVDVCAqIEZST00gc3FsaXRlX21hc3RlciAnCiAgICAgICAgICAgICAgICAgICAgICAgLiAnVU5JT04gQUxMIFNFTEVDVCAqIEZST00gc3FsaXRlX3RlbXBfbWFzdGVyKSAnCiAgICAgICAgICAgICAgICAgICAgICAgLiAiV0hFUkUgdHlwZSE9J21ldGEnICIKICAgICAgICAgICAgICAgICAgICAgICAuICdPUkRFUiBCWSB0YmxfbmFtZSwgdHlwZSBERVNDLCBuYW1lOyc7CiAgICAgICAgICAgIGNhc2UgJ3NjaGVtYXgnOgogICAgICAgICAgICBjYXNlICdzY2hlbWFfeCc6CiAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICogVXNlIGxpa2U6CiAgICAgICAgICAgICAgICAgKiAkcmVzID0gJGRiLT5xdWVyeSgkZGItPmdldFNwZWNpYWxRdWVyeSgnc2NoZW1hX3gnLAogICAgICAgICAgICAgICAgICogICAgICAgICAgICAgICAgICAgYXJyYXkoJ3RhYmxlJyA9PiAndGFibGUzJykpKTsKICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgcmV0dXJuICdTRUxFQ1Qgc3FsIEZST00gKFNFTEVDVCAqIEZST00gc3FsaXRlX21hc3RlciAnCiAgICAgICAgICAgICAgICAgICAgICAgLiAnVU5JT04gQUxMIFNFTEVDVCAqIEZST00gc3FsaXRlX3RlbXBfbWFzdGVyKSAnCiAgICAgICAgICAgICAgICAgICAgICAgLiAiV0hFUkUgdGJsX25hbWUgTElLRSAneyRhcmdzWyd0YWJsZSddfScgIgogICAgICAgICAgICAgICAgICAgICAgIC4gIkFORCB0eXBlIT0nbWV0YScgIgogICAgICAgICAgICAgICAgICAgICAgIC4gJ09SREVSIEJZIHR5cGUgREVTQywgbmFtZTsnOwogICAgICAgICAgICBjYXNlICdhbHRlcic6CiAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICogU1FMaXRlIGRvZXMgbm90IHN1cHBvcnQgQUxURVIgVEFCTEU7IHRoaXMgaXMgYSBoZWxwZXIgcXVlcnkKICAgICAgICAgICAgICAgICAqIHRvIGhhbmRsZSB0aGlzLiAndGFibGUnIHJlcHJlc2VudHMgdGhlIHRhYmxlIG5hbWUsICdyb3dzJwogICAgICAgICAgICAgICAgICogdGhlIG5ld3Mgcm93cyB0byBjcmVhdGUsICdzYXZlJyB0aGUgcm93KHMpIHRvIGtlZXAgX3dpdGhfCiAgICAgICAgICAgICAgICAgKiB0aGUgZGF0YS4KICAgICAgICAgICAgICAgICAqCiAgICAgICAgICAgICAgICAgKiBVc2UgbGlrZToKICAgICAgICAgICAgICAgICAqICRhcmdzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgKiAgICAgJ3RhYmxlJyA9PiAkdGFibGUsCiAgICAgICAgICAgICAgICAgKiAgICAgJ3Jvd3MnICA9PiAiaWQgSU5URUdFUiBQUklNQVJZIEtFWSwgZmlyc3RuYW1lIFRFWFQsIHN1cm5hbWUgVEVYVCwgZGF0ZXRpbWUgVEVYVCIsCiAgICAgICAgICAgICAgICAgKiAgICAgJ3NhdmUnICA9PiAiTlVMTCwgdGl0ZWwsIGNvbnRlbnQsIGRhdGV0aW1lIgogICAgICAgICAgICAgICAgICogKTsKICAgICAgICAgICAgICAgICAqICRyZXMgPSAkZGItPnF1ZXJ5KCAkZGItPmdldFNwZWNpYWxRdWVyeSgnYWx0ZXInLCAkYXJncykpOwogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAkcm93cyA9IHN0cnRyKCRhcmdzWydyb3dzJ10sICR0aGlzLT5rZXl3b3Jkcyk7CgogICAgICAgICAgICAgICAgJHEgPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnQkVHSU4gVFJBTlNBQ1RJT04nLAogICAgICAgICAgICAgICAgICAgICJDUkVBVEUgVEVNUE9SQVJZIFRBQkxFIHskYXJnc1sndGFibGUnXX1fYmFja3VwICh7JGFyZ3NbJ3Jvd3MnXX0pIiwKICAgICAgICAgICAgICAgICAgICAiSU5TRVJUIElOVE8geyRhcmdzWyd0YWJsZSddfV9iYWNrdXAgU0VMRUNUIHskYXJnc1snc2F2ZSddfSBGUk9NIHskYXJnc1sndGFibGUnXX0iLAogICAgICAgICAgICAgICAgICAgICJEUk9QIFRBQkxFIHskYXJnc1sndGFibGUnXX0iLAogICAgICAgICAgICAgICAgICAgICJDUkVBVEUgVEFCTEUgeyRhcmdzWyd0YWJsZSddfSAoeyRhcmdzWydyb3dzJ119KSIsCiAgICAgICAgICAgICAgICAgICAgIklOU0VSVCBJTlRPIHskYXJnc1sndGFibGUnXX0gU0VMRUNUIHskcm93c30gRlJPTSB7JGFyZ3NbJ3RhYmxlJ119X2JhY2t1cCIsCiAgICAgICAgICAgICAgICAgICAgIkRST1AgVEFCTEUgeyRhcmdzWyd0YWJsZSddfV9iYWNrdXAiLAogICAgICAgICAgICAgICAgICAgICdDT01NSVQnLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAvKgogICAgICAgICAgICAgICAgICogVGhpcyBpcyBhIGRpcnR5IGhhY2ssIHNpbmNlIHRoZSBhYm92ZSBxdWVyeSB3aWxsIG5vdCBnZXQKICAgICAgICAgICAgICAgICAqIGV4ZWN1dGVkIHdpdGggYSBzaW5nbGUgcXVlcnkgY2FsbCBzbyBoZXJlIHRoZSBxdWVyeSBtZXRob2QKICAgICAgICAgICAgICAgICAqIHdpbGwgYmUgY2FsbGVkIGRpcmVjdGx5IGFuZCByZXR1cm4gYSBzZWxlY3QgaW5zdGVhZC4KICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgZm9yZWFjaCAoJHEgYXMgJHF1ZXJ5KSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnF1ZXJ5KCRxdWVyeSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gIlNFTEVDVCAqIEZST00geyRhcmdzWyd0YWJsZSddfTsiOwogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQp9CgovKgogKiBMb2NhbCB2YXJpYWJsZXM6CiAqIHRhYi13aWR0aDogNAogKiBjLWJhc2ljLW9mZnNldDogNAogKiBFbmQ6CiAqLwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/storage.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogUHJvdmlkZXMgYW4gb2JqZWN0IGludGVyZmFjZSB0byBhIHRhYmxlIHJvdwogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgU3RpZyBCYWtrZW4gPHN0aWdAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIENWUzogJElkOiBzdG9yYWdlLnBocCx2IDEuMjIgMjAwNS8wNy8xMCAxMzozODo1MSBkYW5pZWxjIEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBPYnRhaW4gdGhlIERCIGNsYXNzIHNvIGl0IGNhbiBiZSBleHRlbmRlZCBmcm9tCiAqLwpyZXF1aXJlX29uY2UgJ0RCLnBocCc7CgovKioKICogUHJvdmlkZXMgYW4gb2JqZWN0IGludGVyZmFjZSB0byBhIHRhYmxlIHJvdwogKgogKiBJdCBsZXRzIHlvdSBhZGQsIGRlbGV0ZSBhbmQgY2hhbmdlIHJvd3MgdXNpbmcgb2JqZWN0cyByYXRoZXIgdGhhbiBTUUwKICogc3RhdGVtZW50cy4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgU3RpZyBCYWtrZW4gPHN0aWdAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDEuNy4xMgogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCmNsYXNzIERCX3N0b3JhZ2UgZXh0ZW5kcyBQRUFSCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgLyoqIHRoZSBuYW1lIG9mIHRoZSB0YWJsZSAob3IgdmlldywgaWYgdGhlIGJhY2tlbmQgZGF0YWJhc2Ugc3VwcG9ydHMKICAgICAgICB1cGRhdGVzIGluIHZpZXdzKSB3ZSBob2xkIGRhdGEgZnJvbSAqLwogICAgdmFyICRfdGFibGUgPSBudWxsOwoKICAgIC8qKiB3aGljaCBjb2x1bW4ocykgaW4gdGhlIHRhYmxlIGNvbnRhaW5zIHByaW1hcnkga2V5cywgY2FuIGJlIGEKICAgICAgICBzdHJpbmcgZm9yIHNpbmdsZS1jb2x1bW4gcHJpbWFyeSBrZXlzLCBvciBhbiBhcnJheSBvZiBzdHJpbmdzCiAgICAgICAgZm9yIG11bHRpcGxlLWNvbHVtbiBwcmltYXJ5IGtleXMgKi8KICAgIHZhciAkX2tleWNvbHVtbiA9IG51bGw7CgogICAgLyoqIERCIGNvbm5lY3Rpb24gaGFuZGxlIHVzZWQgZm9yIGFsbCB0cmFuc2FjdGlvbnMgKi8KICAgIHZhciAkX2RiaCA9IG51bGw7CgogICAgLyoqIGFuIGFzc29jIHdpdGggdGhlIG5hbWVzIG9mIGRhdGFiYXNlIGZpZWxkcyBzdG9yZWQgYXMgcHJvcGVydGllcwogICAgICAgIGluIHRoaXMgb2JqZWN0ICovCiAgICB2YXIgJF9wcm9wZXJ0aWVzID0gYXJyYXkoKTsKCiAgICAvKiogYW4gYXNzb2Mgd2l0aCB0aGUgbmFtZXMgb2YgdGhlIHByb3BlcnRpZXMgaW4gdGhpcyBvYmplY3QgdGhhdAogICAgICAgIGhhdmUgYmVlbiBjaGFuZ2VkIHNpbmNlIHRoZXkgd2VyZSBmZXRjaGVkIGZyb20gdGhlIGRhdGFiYXNlICovCiAgICB2YXIgJF9jaGFuZ2VzID0gYXJyYXkoKTsKCiAgICAvKiogZmxhZyB0aGF0IGRlY2lkZXMgaWYgZGF0YSBpbiB0aGlzIG9iamVjdCBjYW4gYmUgY2hhbmdlZC4KICAgICAgICBvYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSB0aGVpciB0YWJsZSdzIGtleSBjb2x1bW4gaW4gdGhlaXIKICAgICAgICBwcm9wZXJ0eSBsaXN0cyB3aWxsIGJlIGZsYWdnZWQgYXMgcmVhZC1vbmx5LiAqLwogICAgdmFyICRfcmVhZG9ubHkgPSBmYWxzZTsKCiAgICAvKiogZnVuY3Rpb24gb3IgbWV0aG9kIHRoYXQgaW1wbGVtZW50cyBhIHZhbGlkYXRvciBmb3IgZmllbGRzIHRoYXQKICAgICAgICBhcmUgc2V0LCB0aGlzIHZhbGlkYXRvciBmdW5jdGlvbiByZXR1cm5zIHRydWUgaWYgdGhlIGZpZWxkIGlzCiAgICAgICAgdmFsaWQsIGZhbHNlIGlmIG5vdCAqLwogICAgdmFyICRfdmFsaWRhdG9yID0gbnVsbDsKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogQ29uc3RydWN0b3IKICAgICAqCiAgICAgKiBAcGFyYW0gJHRhYmxlIHN0cmluZyB0aGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdGFibGUKICAgICAqCiAgICAgKiBAcGFyYW0gJGtleWNvbHVtbiBtaXhlZCBzdHJpbmcgd2l0aCBuYW1lIG9mIGtleSBjb2x1bW4sIG9yIGFycmF5IG9mCiAgICAgKiBzdHJpbmdzIGlmIHRoZSB0YWJsZSBoYXMgYSBwcmltYXJ5IGtleSBvZiBtb3JlIHRoYW4gb25lIGNvbHVtbgogICAgICoKICAgICAqIEBwYXJhbSAkZGJoIG9iamVjdCBkYXRhYmFzZSBjb25uZWN0aW9uIG9iamVjdAogICAgICoKICAgICAqIEBwYXJhbSAkdmFsaWRhdG9yIG1peGVkIGZ1bmN0aW9uIG9yIG1ldGhvZCB1c2VkIHRvIHZhbGlkYXRlCiAgICAgKiBlYWNoIG5ldyB2YWx1ZSwgY2FsbGVkIHdpdGggdGhyZWUgcGFyYW1ldGVyczogdGhlIG5hbWUgb2YgdGhlCiAgICAgKiBmaWVsZC9jb2x1bW4gdGhhdCBpcyBjaGFuZ2luZywgYSByZWZlcmVuY2UgdG8gdGhlIG5ldyB2YWx1ZSBhbmQKICAgICAqIGEgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0CiAgICAgKgogICAgICovCiAgICBmdW5jdGlvbiBEQl9zdG9yYWdlKCR0YWJsZSwgJGtleWNvbHVtbiwgJiRkYmgsICR2YWxpZGF0b3IgPSBudWxsKQogICAgewogICAgICAgICR0aGlzLT5QRUFSKCdEQl9FcnJvcicpOwogICAgICAgICR0aGlzLT5fdGFibGUgPSAkdGFibGU7CiAgICAgICAgJHRoaXMtPl9rZXljb2x1bW4gPSAka2V5Y29sdW1uOwogICAgICAgICR0aGlzLT5fZGJoID0gJGRiaDsKICAgICAgICAkdGhpcy0+X3JlYWRvbmx5ID0gZmFsc2U7CiAgICAgICAgJHRoaXMtPl92YWxpZGF0b3IgPSAkdmFsaWRhdG9yOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IF9tYWtlV2hlcmUoKQoKICAgIC8qKgogICAgICogVXRpbGl0eSBtZXRob2QgdG8gYnVpbGQgYSAiV0hFUkUiIGNsYXVzZSB0byBsb2NhdGUgb3Vyc2VsdmVzIGluCiAgICAgKiB0aGUgdGFibGUuCiAgICAgKgogICAgICogWFhYIGZ1dHVyZSBpbXByb3ZlbWVudDogdXNlIHJvd2lkcz8KICAgICAqCiAgICAgKiBAYWNjZXNzIHByaXZhdGUKICAgICAqLwogICAgZnVuY3Rpb24gX21ha2VXaGVyZSgka2V5dmFsID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoaXNfYXJyYXkoJHRoaXMtPl9rZXljb2x1bW4pKSB7CiAgICAgICAgICAgIGlmICgka2V5dmFsID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBzaXplb2YoJHRoaXMtPl9rZXljb2x1bW4pOyAkaSsrKSB7CiAgICAgICAgICAgICAgICAgICAgJGtleXZhbFtdID0gJHRoaXMtPnskdGhpcy0+X2tleWNvbHVtblskaV19OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICR3aGVyZWNsYXVzZSA9ICcnOwogICAgICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBzaXplb2YoJHRoaXMtPl9rZXljb2x1bW4pOyAkaSsrKSB7CiAgICAgICAgICAgICAgICBpZiAoJGkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlY2xhdXNlIC49ICcgQU5EICc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkd2hlcmVjbGF1c2UgLj0gJHRoaXMtPl9rZXljb2x1bW5bJGldOwogICAgICAgICAgICAgICAgaWYgKGlzX251bGwoJGtleXZhbFskaV0pKSB7CiAgICAgICAgICAgICAgICAgICAgLy8gdGhlcmUncyBub3QgbXVjaCBwb2ludCBpbiBoYXZpbmcgYSBOVUxMIGtleSwKICAgICAgICAgICAgICAgICAgICAvLyBidXQgd2Ugc3VwcG9ydCBpdCBhbnl3YXkKICAgICAgICAgICAgICAgICAgICAkd2hlcmVjbGF1c2UgLj0gJyBJUyBOVUxMJzsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHdoZXJlY2xhdXNlIC49ICcgPSAnIC4gJHRoaXMtPl9kYmgtPnF1b3RlKCRrZXl2YWxbJGldKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICgka2V5dmFsID09PSBudWxsKSB7CiAgICAgICAgICAgICAgICAka2V5dmFsID0gQCR0aGlzLT57JHRoaXMtPl9rZXljb2x1bW59OwogICAgICAgICAgICB9CiAgICAgICAgICAgICR3aGVyZWNsYXVzZSA9ICR0aGlzLT5fa2V5Y29sdW1uOwogICAgICAgICAgICBpZiAoaXNfbnVsbCgka2V5dmFsKSkgewogICAgICAgICAgICAgICAgLy8gdGhlcmUncyBub3QgbXVjaCBwb2ludCBpbiBoYXZpbmcgYSBOVUxMIGtleSwKICAgICAgICAgICAgICAgIC8vIGJ1dCB3ZSBzdXBwb3J0IGl0IGFueXdheQogICAgICAgICAgICAgICAgJHdoZXJlY2xhdXNlIC49ICcgSVMgTlVMTCc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkd2hlcmVjbGF1c2UgLj0gJyA9ICcgLiAkdGhpcy0+X2RiaC0+cXVvdGUoJGtleXZhbCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICR3aGVyZWNsYXVzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBzZXR1cCgpCgogICAgLyoqCiAgICAgKiBNZXRob2QgdXNlZCB0byBpbml0aWFsaXplIGEgREJfc3RvcmFnZSBvYmplY3QgZnJvbSB0aGUKICAgICAqIGNvbmZpZ3VyZWQgdGFibGUuCiAgICAgKgogICAgICogQHBhcmFtICRrZXl2YWwgbWl4ZWQgdGhlIGtleVtzXSBvZiB0aGUgcm93IHRvIGZldGNoIChzdHJpbmcgb3IgYXJyYXkpCiAgICAgKgogICAgICogQHJldHVybiBpbnQgREJfT0sgb24gc3VjY2VzcywgYSBEQiBlcnJvciBpZiBub3QKICAgICAqLwogICAgZnVuY3Rpb24gc2V0dXAoJGtleXZhbCkKICAgIHsKICAgICAgICAkd2hlcmVjbGF1c2UgPSAkdGhpcy0+X21ha2VXaGVyZSgka2V5dmFsKTsKICAgICAgICAkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnIC4gJHRoaXMtPl90YWJsZSAuICcgV0hFUkUgJyAuICR3aGVyZWNsYXVzZTsKICAgICAgICAkc3RoID0gJHRoaXMtPl9kYmgtPnF1ZXJ5KCRxdWVyeSk7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRzdGgpKSB7CiAgICAgICAgICAgIHJldHVybiAkc3RoOwogICAgICAgIH0KICAgICAgICAkcm93ID0gJHN0aC0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX0FTU09DKTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJvdykpIHsKICAgICAgICAgICAgcmV0dXJuICRyb3c7CiAgICAgICAgfQogICAgICAgIGlmICghJHJvdykgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IobnVsbCwgREJfRVJST1JfTk9UX0ZPVU5ELCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHF1ZXJ5LCBudWxsLCB0cnVlKTsKICAgICAgICB9CiAgICAgICAgZm9yZWFjaCAoJHJvdyBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICAgICAkdGhpcy0+X3Byb3BlcnRpZXNbJGtleV0gPSB0cnVlOwogICAgICAgICAgICAkdGhpcy0+JGtleSA9ICR2YWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGluc2VydCgpCgogICAgLyoqCiAgICAgKiBDcmVhdGUgYSBuZXcgKGVtcHR5KSByb3cgaW4gdGhlIGNvbmZpZ3VyZWQgdGFibGUgZm9yIHRoaXMKICAgICAqIG9iamVjdC4KICAgICAqLwogICAgZnVuY3Rpb24gaW5zZXJ0KCRuZXdwaykKICAgIHsKICAgICAgICBpZiAoaXNfYXJyYXkoJHRoaXMtPl9rZXljb2x1bW4pKSB7CiAgICAgICAgICAgICRwcmltYXJ5a2V5ID0gJHRoaXMtPl9rZXljb2x1bW47CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHByaW1hcnlrZXkgPSBhcnJheSgkdGhpcy0+X2tleWNvbHVtbik7CiAgICAgICAgfQogICAgICAgIHNldHR5cGUoJG5ld3BrLCAiYXJyYXkiKTsKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCBzaXplb2YoJHByaW1hcnlrZXkpOyAkaSsrKSB7CiAgICAgICAgICAgICRwa3ZhbHNbXSA9ICR0aGlzLT5fZGJoLT5xdW90ZSgkbmV3cGtbJGldKTsKICAgICAgICB9CgogICAgICAgICRzdGggPSAkdGhpcy0+X2RiaC0+cXVlcnkoIklOU0VSVCBJTlRPICR0aGlzLT5fdGFibGUgKCIgLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1wbG9kZSgiLCIsICRwcmltYXJ5a2V5KSAuICIpIFZBTFVFUygiIC4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGltcGxvZGUoIiwiLCAkcGt2YWxzKSAuICIpIik7CiAgICAgICAgaWYgKERCOjppc0Vycm9yKCRzdGgpKSB7CiAgICAgICAgICAgIHJldHVybiAkc3RoOwogICAgICAgIH0KICAgICAgICBpZiAoc2l6ZW9mKCRuZXdwaykgPT0gMSkgewogICAgICAgICAgICAkbmV3cGsgPSAkbmV3cGtbMF07CiAgICAgICAgfQogICAgICAgICR0aGlzLT5zZXR1cCgkbmV3cGspOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRvU3RyaW5nKCkKCiAgICAvKioKICAgICAqIE91dHB1dCBhIHNpbXBsZSBkZXNjcmlwdGlvbiBvZiB0aGlzIERCX3N0b3JhZ2Ugb2JqZWN0LgogICAgICogQHJldHVybiBzdHJpbmcgb2JqZWN0IGRlc2NyaXB0aW9uCiAgICAgKi8KICAgIGZ1bmN0aW9uIHRvU3RyaW5nKCkKICAgIHsKICAgICAgICAkaW5mbyA9IHN0cnRvbG93ZXIoZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgJGluZm8gLj0gIiAodGFibGU9IjsKICAgICAgICAkaW5mbyAuPSAkdGhpcy0+X3RhYmxlOwogICAgICAgICRpbmZvIC49ICIsIGtleWNvbHVtbj0iOwogICAgICAgIGlmIChpc19hcnJheSgkdGhpcy0+X2tleWNvbHVtbikpIHsKICAgICAgICAgICAgJGluZm8gLj0gIigiIC4gaW1wbG9kZSgiLCIsICR0aGlzLT5fa2V5Y29sdW1uKSAuICIpIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkaW5mbyAuPSAkdGhpcy0+X2tleWNvbHVtbjsKICAgICAgICB9CiAgICAgICAgJGluZm8gLj0gIiwgZGJoPSI7CiAgICAgICAgaWYgKGlzX29iamVjdCgkdGhpcy0+X2RiaCkpIHsKICAgICAgICAgICAgJGluZm8gLj0gJHRoaXMtPl9kYmgtPnRvU3RyaW5nKCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGluZm8gLj0gIm51bGwiOwogICAgICAgIH0KICAgICAgICAkaW5mbyAuPSAiKSI7CiAgICAgICAgaWYgKHNpemVvZigkdGhpcy0+X3Byb3BlcnRpZXMpKSB7CiAgICAgICAgICAgICRpbmZvIC49ICIgW2xvYWRlZCwga2V5PSI7CiAgICAgICAgICAgICRrZXluYW1lID0gJHRoaXMtPl9rZXljb2x1bW47CiAgICAgICAgICAgIGlmIChpc19hcnJheSgka2V5bmFtZSkpIHsKICAgICAgICAgICAgICAgICRpbmZvIC49ICIoIjsKICAgICAgICAgICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IHNpemVvZigka2V5bmFtZSk7ICRpKyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJGkgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRpbmZvIC49ICIsIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJGluZm8gLj0gJHRoaXMtPiRrZXluYW1lWyRpXTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRpbmZvIC49ICIpIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRpbmZvIC49ICR0aGlzLT4ka2V5bmFtZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkaW5mbyAuPSAiXSI7CiAgICAgICAgfQogICAgICAgIGlmIChzaXplb2YoJHRoaXMtPl9jaGFuZ2VzKSkgewogICAgICAgICAgICAkaW5mbyAuPSAiIFttb2RpZmllZF0iOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGluZm87CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZHVtcCgpCgogICAgLyoqCiAgICAgKiBEdW1wIHRoZSBjb250ZW50cyBvZiB0aGlzIG9iamVjdCB0byAic3RhbmRhcmQgb3V0cHV0Ii4KICAgICAqLwogICAgZnVuY3Rpb24gZHVtcCgpCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPl9wcm9wZXJ0aWVzIGFzICRwcm9wID0+ICRmb28pIHsKICAgICAgICAgICAgcHJpbnQgIiRwcm9wID0gIjsKICAgICAgICAgICAgcHJpbnQgaHRtbGVudGl0aWVzKCR0aGlzLT4kcHJvcCk7CiAgICAgICAgICAgIHByaW50ICI8YnIgLz5cbiI7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7ICZjcmVhdGUoKQoKICAgIC8qKgogICAgICogU3RhdGljIG1ldGhvZCB1c2VkIHRvIGNyZWF0ZSBuZXcgREIgc3RvcmFnZSBvYmplY3RzLgogICAgICogQHBhcmFtICRkYXRhIGFzc29jLiBhcnJheSB3aGVyZSB0aGUga2V5cyBhcmUgdGhlIG5hbWVzCiAgICAgKiAgICAgICAgICAgICAgb2YgcHJvcGVydGllcy9jb2x1bW5zCiAgICAgKiBAcmV0dXJuIG9iamVjdCBhIG5ldyBpbnN0YW5jZSBvZiBEQl9zdG9yYWdlIG9yIGEgc3ViY2xhc3Mgb2YgaXQKICAgICAqLwogICAgZnVuY3Rpb24gJmNyZWF0ZSgkdGFibGUsICYkZGF0YSkKICAgIHsKICAgICAgICAkY2xhc3NuYW1lID0gc3RydG9sb3dlcihnZXRfY2xhc3MoJHRoaXMpKTsKICAgICAgICAkb2JqID0mIG5ldyAkY2xhc3NuYW1lKCR0YWJsZSk7CiAgICAgICAgZm9yZWFjaCAoJGRhdGEgYXMgJG5hbWUgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgICRvYmotPl9wcm9wZXJ0aWVzWyRuYW1lXSA9IHRydWU7CiAgICAgICAgICAgICRvYmotPiRuYW1lID0gJiR2YWx1ZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvYmo7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbG9hZEZyb21RdWVyeSgpCgogICAgLyoqCiAgICAgKiBMb2FkcyBkYXRhIGludG8gdGhpcyBvYmplY3QgZnJvbSB0aGUgZ2l2ZW4gcXVlcnkuICBJZiB0aGlzCiAgICAgKiBvYmplY3QgYWxyZWFkeSBjb250YWlucyB0YWJsZSBkYXRhLCBjaGFuZ2VzIHdpbGwgYmUgc2F2ZWQgYW5kCiAgICAgKiB0aGUgb2JqZWN0IHJlLWluaXRpYWxpemVkIGZpcnN0LgogICAgICoKICAgICAqIEBwYXJhbSAkcXVlcnkgU1FMIHF1ZXJ5CiAgICAgKgogICAgICogQHBhcmFtICRwYXJhbXMgcGFyYW1ldGVyIGxpc3QgaW4gY2FzZSB5b3Ugd2FudCB0byB1c2UKICAgICAqIHByZXBhcmUvZXhlY3V0ZSBtb2RlCiAgICAgKgogICAgICogQHJldHVybiBpbnQgREJfT0sgb24gc3VjY2VzcywgREJfV0FSTklOR19SRUFEX09OTFkgaWYgdGhlCiAgICAgKiByZXR1cm5lZCBvYmplY3QgaXMgcmVhZC1vbmx5IChiZWNhdXNlIHRoZSBvYmplY3QncyBzcGVjaWZpZWQKICAgICAqIGtleSBjb2x1bW4gd2FzIG5vdCBmb3VuZCBhbW9uZyB0aGUgY29sdW1ucyByZXR1cm5lZCBieSAkcXVlcnkpLAogICAgICogb3IgYW5vdGhlciBEQiBlcnJvciBjb2RlIGluIGNhc2Ugb2YgZXJyb3JzLgogICAgICovCi8vIFhYWCBjb21tZW50ZWQgb3V0IGZvciBub3cKLyoKICAgIGZ1bmN0aW9uIGxvYWRGcm9tUXVlcnkoJHF1ZXJ5LCAkcGFyYW1zID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoc2l6ZW9mKCR0aGlzLT5fcHJvcGVydGllcykpIHsKICAgICAgICAgICAgaWYgKHNpemVvZigkdGhpcy0+X2NoYW5nZXMpKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+c3RvcmUoKTsKICAgICAgICAgICAgICAgICR0aGlzLT5fY2hhbmdlcyA9IGFycmF5KCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPl9wcm9wZXJ0aWVzID0gYXJyYXkoKTsKICAgICAgICB9CiAgICAgICAgJHJvd2RhdGEgPSAkdGhpcy0+X2RiaC0+Z2V0Um93KCRxdWVyeSwgREJfRkVUQ0hNT0RFX0FTU09DLCAkcGFyYW1zKTsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJvd2RhdGEpKSB7CiAgICAgICAgICAgIHJldHVybiAkcm93ZGF0YTsKICAgICAgICB9CiAgICAgICAgcmVzZXQoJHJvd2RhdGEpOwogICAgICAgICRmb3VuZF9rZXljb2x1bW4gPSBmYWxzZTsKICAgICAgICB3aGlsZSAobGlzdCgka2V5LCAkdmFsdWUpID0gZWFjaCgkcm93ZGF0YSkpIHsKICAgICAgICAgICAgaWYgKCRrZXkgPT0gJHRoaXMtPl9rZXljb2x1bW4pIHsKICAgICAgICAgICAgICAgICRmb3VuZF9rZXljb2x1bW4gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT5fcHJvcGVydGllc1ska2V5XSA9IHRydWU7CiAgICAgICAgICAgICR0aGlzLT4ka2V5ID0gJiR2YWx1ZTsKICAgICAgICAgICAgdW5zZXQoJHZhbHVlKTsgLy8gaGF2ZSB0byB1bnNldCwgb3IgYWxsIHByb3BlcnRpZXMgd2lsbAogICAgICAgICAgICAgICAgICAgICAgICAgICAvLyByZWZlciB0byB0aGUgc2FtZSB2YWx1ZQogICAgICAgIH0KICAgICAgICBpZiAoISRmb3VuZF9rZXljb2x1bW4pIHsKICAgICAgICAgICAgJHRoaXMtPl9yZWFkb25seSA9IHRydWU7CiAgICAgICAgICAgIHJldHVybiBEQl9XQVJOSU5HX1JFQURfT05MWTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQogKi8KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBzZXQoKQoKICAgIC8qKgogICAgICogTW9kaWZ5IGFuIGF0dHJpdXRlIHZhbHVlLgogICAgICovCiAgICBmdW5jdGlvbiBzZXQoJHByb3BlcnR5LCAkbmV3dmFsdWUpCiAgICB7CiAgICAgICAgLy8gb25seSBjaGFuZ2UgaWYgJHByb3BlcnR5IGlzIGtub3duIGFuZCBvYmplY3QgaXMgbm90CiAgICAgICAgLy8gcmVhZC1vbmx5CiAgICAgICAgaWYgKCR0aGlzLT5fcmVhZG9ubHkpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKG51bGwsIERCX1dBUk5JTkdfUkVBRF9PTkxZLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCwgdHJ1ZSk7CiAgICAgICAgfQogICAgICAgIGlmIChAaXNzZXQoJHRoaXMtPl9wcm9wZXJ0aWVzWyRwcm9wZXJ0eV0pKSB7CiAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+X3ZhbGlkYXRvcikpIHsKICAgICAgICAgICAgICAgICR2YWxpZCA9IHRydWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkdmFsaWQgPSBAY2FsbF91c2VyX2Z1bmMoJHRoaXMtPl92YWxpZGF0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl90YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkcHJvcGVydHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJG5ld3ZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT4kcHJvcGVydHksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkdmFsaWQpIHsKICAgICAgICAgICAgICAgICR0aGlzLT4kcHJvcGVydHkgPSAkbmV3dmFsdWU7CiAgICAgICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPl9jaGFuZ2VzWyRwcm9wZXJ0eV0pKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9jaGFuZ2VzWyRwcm9wZXJ0eV0gPSAwOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+X2NoYW5nZXNbJHByb3BlcnR5XSsrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKG51bGwsIERCX0VSUk9SX0lOVkFMSUQsIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgImludmFsaWQgZmllbGQ6ICRwcm9wZXJ0eSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgdHJ1ZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihudWxsLCBEQl9FUlJPUl9OT1NVQ0hGSUVMRCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgInVua25vd24gZmllbGQ6ICRwcm9wZXJ0eSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGwsIHRydWUpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7ICZnZXQoKQoKICAgIC8qKgogICAgICogRmV0Y2ggYW4gYXR0cmlidXRlIHZhbHVlLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgYXR0cmlidXRlIG5hbWUKICAgICAqCiAgICAgKiBAcmV0dXJuIGF0dHJpYnV0ZSBjb250ZW50cywgb3IgbnVsbCBpZiB0aGUgYXR0cmlidXRlIG5hbWUgaXMKICAgICAqIHVua25vd24KICAgICAqLwogICAgZnVuY3Rpb24gJmdldCgkcHJvcGVydHkpCiAgICB7CiAgICAgICAgLy8gb25seSByZXR1cm4gaWYgJHByb3BlcnR5IGlzIGtub3duCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzLT5fcHJvcGVydGllc1skcHJvcGVydHldKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPiRwcm9wZXJ0eTsKICAgICAgICB9CiAgICAgICAgJHRtcCA9IG51bGw7CiAgICAgICAgcmV0dXJuICR0bXA7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgX0RCX3N0b3JhZ2UoKQoKICAgIC8qKgogICAgICogRGVzdHJ1Y3RvciwgY2FsbHMgREJfc3RvcmFnZTo6c3RvcmUoKSBpZiB0aGVyZSBhcmUgY2hhbmdlcwogICAgICogdGhhdCBhcmUgdG8gYmUga2VwdC4KICAgICAqLwogICAgZnVuY3Rpb24gX0RCX3N0b3JhZ2UoKQogICAgewogICAgICAgIGlmIChzaXplb2YoJHRoaXMtPl9jaGFuZ2VzKSkgewogICAgICAgICAgICAkdGhpcy0+c3RvcmUoKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9wcm9wZXJ0aWVzID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+X2NoYW5nZXMgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5fdGFibGUgPSBudWxsOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHN0b3JlKCkKCiAgICAvKioKICAgICAqIFN0b3JlcyBjaGFuZ2VzIHRvIHRoaXMgb2JqZWN0IGluIHRoZSBkYXRhYmFzZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIERCX09LIG9yIGEgREIgZXJyb3IKICAgICAqLwogICAgZnVuY3Rpb24gc3RvcmUoKQogICAgewogICAgICAgICRwYXJhbXMgPSBhcnJheSgpOwogICAgICAgICR2YXJzID0gYXJyYXkoKTsKICAgICAgICBmb3JlYWNoICgkdGhpcy0+X2NoYW5nZXMgYXMgJG5hbWUgPT4gJGZvbykgewogICAgICAgICAgICAkcGFyYW1zW10gPSAmJHRoaXMtPiRuYW1lOwogICAgICAgICAgICAkdmFyc1tdID0gJG5hbWUgLiAnID0gPyc7CiAgICAgICAgfQogICAgICAgIGlmICgkdmFycykgewogICAgICAgICAgICAkcXVlcnkgPSAnVVBEQVRFICcgLiAkdGhpcy0+X3RhYmxlIC4gJyBTRVQgJyAuCiAgICAgICAgICAgICAgICBpbXBsb2RlKCcsICcsICR2YXJzKSAuICcgV0hFUkUgJyAuCiAgICAgICAgICAgICAgICAkdGhpcy0+X21ha2VXaGVyZSgpOwogICAgICAgICAgICAkc3RtdCA9ICR0aGlzLT5fZGJoLT5wcmVwYXJlKCRxdWVyeSk7CiAgICAgICAgICAgICRyZXMgPSAkdGhpcy0+X2RiaC0+ZXhlY3V0ZSgkc3RtdCwgJHBhcmFtcyk7CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICRyZXM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPl9jaGFuZ2VzID0gYXJyYXkoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHJlbW92ZSgpCgogICAgLyoqCiAgICAgKiBSZW1vdmUgdGhlIHJvdyByZXByZXNlbnRlZCBieSB0aGlzIG9iamVjdCBmcm9tIHRoZSBkYXRhYmFzZS4KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkIERCX09LIG9yIGEgREIgZXJyb3IKICAgICAqLwogICAgZnVuY3Rpb24gcmVtb3ZlKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPl9yZWFkb25seSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IobnVsbCwgREJfV0FSTklOR19SRUFEX09OTFksIG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLCB0cnVlKTsKICAgICAgICB9CiAgICAgICAgJHF1ZXJ5ID0gJ0RFTEVURSBGUk9NICcgLiAkdGhpcy0+X3RhYmxlIC4nIFdIRVJFICcuCiAgICAgICAgICAgICR0aGlzLT5fbWFrZVdoZXJlKCk7CiAgICAgICAgJHJlcyA9ICR0aGlzLT5fZGJoLT5xdWVyeSgkcXVlcnkpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgICAgICAgICByZXR1cm4gJHJlczsKICAgICAgICB9CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPl9wcm9wZXJ0aWVzIGFzICRwcm9wID0+ICRmb28pIHsKICAgICAgICAgICAgdW5zZXQoJHRoaXMtPiRwcm9wKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPl9wcm9wZXJ0aWVzID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+X2NoYW5nZXMgPSBhcnJheSgpOwogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KfQoKLyoKICogTG9jYWwgdmFyaWFibGVzOgogKiB0YWItd2lkdGg6IDQKICogYy1iYXNpYy1vZmZzZXQ6IDQKICogRW5kOgogKi8KCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/DB/sybase.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qIHZpbTogc2V0IGV4cGFuZHRhYiB0YWJzdG9wPTQgc2hpZnR3aWR0aD00IHNvZnR0YWJzdG9wPTQ6ICovCgovKioKICogVGhlIFBFQVIgREIgZHJpdmVyIGZvciBQSFAncyBzeWJhc2UgZXh0ZW5zaW9uCiAqIGZvciBpbnRlcmFjdGluZyB3aXRoIFN5YmFzZSBkYXRhYmFzZXMKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFN0ZXJsaW5nIEh1Z2hlcyA8c3RlcmxpbmdAcGhwLm5ldD4KICogQGF1dGhvciAgICAgQW509G5pbyBDYXJsb3MgVmVu4m5jaW8gSvpuaW9yIDxmbG9yaXBhQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIENWUzogJElkOiBzeWJhc2UucGhwLHYgMS44NSAyMDA3LzAyLzA2IDA3OjM1OjA3IGFoYXJ2ZXkgRXhwICQKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwoKLyoqCiAqIE9idGFpbiB0aGUgREJfY29tbW9uIGNsYXNzIHNvIGl0IGNhbiBiZSBleHRlbmRlZCBmcm9tCiAqLwpyZXF1aXJlX29uY2UgJ0RCL2NvbW1vbi5waHAnOwoKLyoqCiAqIFRoZSBtZXRob2RzIFBFQVIgREIgdXNlcyB0byBpbnRlcmFjdCB3aXRoIFBIUCdzIHN5YmFzZSBleHRlbnNpb24KICogZm9yIGludGVyYWN0aW5nIHdpdGggU3liYXNlIGRhdGFiYXNlcwogKgogKiBUaGVzZSBtZXRob2RzIG92ZXJsb2FkIHRoZSBvbmVzIGRlY2xhcmVkIGluIERCX2NvbW1vbi4KICoKICogV0FSTklORzogIFRoaXMgZHJpdmVyIG1heSBmYWlsIHdpdGggbXVsdGlwbGUgY29ubmVjdGlvbnMgdW5kZXIgdGhlCiAqIHNhbWUgdXNlci9wYXNzL2hvc3QgYW5kIGRpZmZlcmVudCBkYXRhYmFzZXMuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIFN0ZXJsaW5nIEh1Z2hlcyA8c3RlcmxpbmdAcGhwLm5ldD4KICogQGF1dGhvciAgICAgQW509G5pbyBDYXJsb3MgVmVu4m5jaW8gSvpuaW9yIDxmbG9yaXBhQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDEuNy4xMgogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCmNsYXNzIERCX3N5YmFzZSBleHRlbmRzIERCX2NvbW1vbgp7CiAgICAvLyB7e3sgcHJvcGVydGllcwoKICAgIC8qKgogICAgICogVGhlIERCIGRyaXZlciB0eXBlIChteXNxbCwgb2NpOCwgb2RiYywgZXRjLikKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHZhciAkcGhwdHlwZSA9ICdzeWJhc2UnOwoKICAgIC8qKgogICAgICogVGhlIGRhdGFiYXNlIHN5bnRheCB2YXJpYW50IHRvIGJlIHVzZWQgKGRiMiwgYWNjZXNzLCBldGMuKSwgaWYgYW55CiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICB2YXIgJGRic3ludGF4ID0gJ3N5YmFzZSc7CgogICAgLyoqCiAgICAgKiBUaGUgY2FwYWJpbGl0aWVzIG9mIHRoaXMgREIgaW1wbGVtZW50YXRpb24KICAgICAqCiAgICAgKiBUaGUgJ25ld19saW5rJyBlbGVtZW50IGNvbnRhaW5zIHRoZSBQSFAgdmVyc2lvbiB0aGF0IGZpcnN0IHByb3ZpZGVkCiAgICAgKiBuZXdfbGluayBzdXBwb3J0IGZvciB0aGlzIERCTVMuICBDb250YWlucyBmYWxzZSBpZiBpdCdzIHVuc3VwcG9ydGVkLgogICAgICoKICAgICAqIE1lYW5pbmcgb2YgdGhlICdsaW1pdCcgZWxlbWVudDoKICAgICAqICAgKyAnZW11bGF0ZScgPSBlbXVsYXRlIHdpdGggZmV0Y2ggcm93IGJ5IG51bWJlcgogICAgICogICArICdhbHRlcicgICA9IGFsdGVyIHRoZSBxdWVyeQogICAgICogICArIGZhbHNlICAgICA9IHNraXAgcm93cwogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgdmFyICRmZWF0dXJlcyA9IGFycmF5KAogICAgICAgICdsaW1pdCcgICAgICAgICA9PiAnZW11bGF0ZScsCiAgICAgICAgJ25ld19saW5rJyAgICAgID0+IGZhbHNlLAogICAgICAgICdudW1yb3dzJyAgICAgICA9PiB0cnVlLAogICAgICAgICdwY29ubmVjdCcgICAgICA9PiB0cnVlLAogICAgICAgICdwcmVwYXJlJyAgICAgICA9PiBmYWxzZSwKICAgICAgICAnc3NsJyAgICAgICAgICAgPT4gZmFsc2UsCiAgICAgICAgJ3RyYW5zYWN0aW9ucycgID0+IHRydWUsCiAgICApOwoKICAgIC8qKgogICAgICogQSBtYXBwaW5nIG9mIG5hdGl2ZSBlcnJvciBjb2RlcyB0byBEQiBlcnJvciBjb2RlcwogICAgICogQHZhciBhcnJheQogICAgICovCiAgICB2YXIgJGVycm9yY29kZV9tYXAgPSBhcnJheSgKICAgICk7CgogICAgLyoqCiAgICAgKiBUaGUgcmF3IGRhdGFiYXNlIGNvbm5lY3Rpb24gY3JlYXRlZCBieSBQSFAKICAgICAqIEB2YXIgcmVzb3VyY2UKICAgICAqLwogICAgdmFyICRjb25uZWN0aW9uOwoKICAgIC8qKgogICAgICogVGhlIERTTiBpbmZvcm1hdGlvbiBmb3IgY29ubmVjdGluZyB0byBhIGRhdGFiYXNlCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHZhciAkZHNuID0gYXJyYXkoKTsKCgogICAgLyoqCiAgICAgKiBTaG91bGQgZGF0YSBtYW5pcHVsYXRpb24gcXVlcmllcyBiZSBjb21taXR0ZWQgYXV0b21hdGljYWxseT8KICAgICAqIEB2YXIgYm9vbAogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkYXV0b2NvbW1pdCA9IHRydWU7CgogICAgLyoqCiAgICAgKiBUaGUgcXVhbnRpdHkgb2YgdHJhbnNhY3Rpb25zIGJlZ3VuCiAgICAgKgogICAgICoge0BpbnRlcm5hbCAgV2hpbGUgdGhpcyBpcyBwcml2YXRlLCBpdCBjYW4ndCBhY3R1YWxseSBiZSBkZXNpZ25hdGVkCiAgICAgKiBwcml2YXRlIGluIFBIUCA1IGJlY2F1c2UgaXQgaXMgZGlyZWN0bHkgYWNjZXNzZWQgaW4gdGhlIHRlc3Qgc3VpdGUufX0KICAgICAqCiAgICAgKiBAdmFyIGludGVnZXIKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJHRyYW5zYWN0aW9uX29wY291bnQgPSAwOwoKICAgIC8qKgogICAgICogVGhlIGRhdGFiYXNlIHNwZWNpZmllZCBpbiB0aGUgRFNOCiAgICAgKgogICAgICogSXQncyBhIGZpeCB0byBhbGxvdyBjYWxscyB0byBkaWZmZXJlbnQgZGF0YWJhc2VzIGluIHRoZSBzYW1lIHNjcmlwdC4KICAgICAqCiAgICAgKiBAdmFyIHN0cmluZwogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkX2RiID0gJyc7CgoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbnN0cnVjdG9yCgogICAgLyoqCiAgICAgKiBUaGlzIGNvbnN0cnVjdG9yIGNhbGxzIDxrYmQ+JHRoaXMtPkRCX2NvbW1vbigpPC9rYmQ+CiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIGZ1bmN0aW9uIERCX3N5YmFzZSgpCiAgICB7CiAgICAgICAgJHRoaXMtPkRCX2NvbW1vbigpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGNvbm5lY3QoKQoKICAgIC8qKgogICAgICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2Ugc2VydmVyLCBsb2cgaW4gYW5kIG9wZW4gdGhlIGRhdGFiYXNlCiAgICAgKgogICAgICogRG9uJ3QgY2FsbCB0aGlzIG1ldGhvZCBkaXJlY3RseS4gIFVzZSBEQjo6Y29ubmVjdCgpIGluc3RlYWQuCiAgICAgKgogICAgICogUEVBUiBEQidzIHN5YmFzZSBkcml2ZXIgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBleHRyYSBEU04gb3B0aW9uczoKICAgICAqICAgKyBhcHBuYW1lICAgICAgIFRoZSBhcHBsaWNhdGlvbiBuYW1lIHRvIHVzZSBvbiB0aGlzIGNvbm5lY3Rpb24uCiAgICAgKiAgICAgICAgICAgICAgICAgICBBdmFpbGFibGUgc2luY2UgUEVBUiBEQiAxLjcuMC4KICAgICAqICAgKyBjaGFyc2V0ICAgICAgIFRoZSBjaGFyYWN0ZXIgc2V0IHRvIHVzZSBvbiB0aGlzIGNvbm5lY3Rpb24uCiAgICAgKiAgICAgICAgICAgICAgICAgICBBdmFpbGFibGUgc2luY2UgUEVBUiBEQiAxLjcuMC4KICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgJGRzbiAgICAgICAgIHRoZSBkYXRhIHNvdXJjZSBuYW1lCiAgICAgKiBAcGFyYW0gYm9vbCAgJHBlcnNpc3RlbnQgIHNob3VsZCB0aGUgY29ubmVjdGlvbiBiZSBwZXJzaXN0ZW50PwogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiBBIERCX0Vycm9yIG9iamVjdCBvbiBmYWlsdXJlLgogICAgICovCiAgICBmdW5jdGlvbiBjb25uZWN0KCRkc24sICRwZXJzaXN0ZW50ID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKCFQRUFSOjpsb2FkRXh0ZW5zaW9uKCdzeWJhc2UnKSAmJgogICAgICAgICAgICAhUEVBUjo6bG9hZEV4dGVuc2lvbignc3liYXNlX2N0JykpCiAgICAgICAgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfRVhURU5TSU9OX05PVF9GT1VORCk7CiAgICAgICAgfQoKICAgICAgICAkdGhpcy0+ZHNuID0gJGRzbjsKICAgICAgICBpZiAoJGRzblsnZGJzeW50YXgnXSkgewogICAgICAgICAgICAkdGhpcy0+ZGJzeW50YXggPSAkZHNuWydkYnN5bnRheCddOwogICAgICAgIH0KCiAgICAgICAgJGRzblsnaG9zdHNwZWMnXSA9ICRkc25bJ2hvc3RzcGVjJ10gPyAkZHNuWydob3N0c3BlYyddIDogJ2xvY2FsaG9zdCc7CiAgICAgICAgJGRzblsncGFzc3dvcmQnXSA9ICFlbXB0eSgkZHNuWydwYXNzd29yZCddKSA/ICRkc25bJ3Bhc3N3b3JkJ10gOiBmYWxzZTsKICAgICAgICAkZHNuWydjaGFyc2V0J10gPSBpc3NldCgkZHNuWydjaGFyc2V0J10pID8gJGRzblsnY2hhcnNldCddIDogZmFsc2U7CiAgICAgICAgJGRzblsnYXBwbmFtZSddID0gaXNzZXQoJGRzblsnYXBwbmFtZSddKSA/ICRkc25bJ2FwcG5hbWUnXSA6IGZhbHNlOwoKICAgICAgICAkY29ubmVjdF9mdW5jdGlvbiA9ICRwZXJzaXN0ZW50ID8gJ3N5YmFzZV9wY29ubmVjdCcgOiAnc3liYXNlX2Nvbm5lY3QnOwoKICAgICAgICBpZiAoJGRzblsndXNlcm5hbWUnXSkgewogICAgICAgICAgICAkdGhpcy0+Y29ubmVjdGlvbiA9IEAkY29ubmVjdF9mdW5jdGlvbigkZHNuWydob3N0c3BlYyddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZHNuWyd1c2VybmFtZSddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZHNuWydwYXNzd29yZCddLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZHNuWydjaGFyc2V0J10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRkc25bJ2FwcG5hbWUnXSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yYWlzZUVycm9yKERCX0VSUk9SX0NPTk5FQ1RfRkFJTEVELAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdUaGUgRFNOIGRpZCBub3QgY29udGFpbiBhIHVzZXJuYW1lLicpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCEkdGhpcy0+Y29ubmVjdGlvbikgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoREJfRVJST1JfQ09OTkVDVF9GQUlMRUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsLCBudWxsLCBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHN5YmFzZV9nZXRfbGFzdF9tZXNzYWdlKCkpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCRkc25bJ2RhdGFiYXNlJ10pIHsKICAgICAgICAgICAgaWYgKCFAc3liYXNlX3NlbGVjdF9kYigkZHNuWydkYXRhYmFzZSddLCAkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcihEQl9FUlJPUl9OT0RCU0VMRUNURUQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgbnVsbCwgbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAc3liYXNlX2dldF9sYXN0X21lc3NhZ2UoKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRoaXMtPl9kYiA9ICRkc25bJ2RhdGFiYXNlJ107CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZGlzY29ubmVjdCgpCgogICAgLyoqCiAgICAgKiBEaXNjb25uZWN0cyBmcm9tIHRoZSBkYXRhYmFzZSBzZXJ2ZXIKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0Ugb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBkaXNjb25uZWN0KCkKICAgIHsKICAgICAgICAkcmV0ID0gQHN5YmFzZV9jbG9zZSgkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24gPSBudWxsOwogICAgICAgIHJldHVybiAkcmV0OwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHNpbXBsZVF1ZXJ5KCkKCiAgICAvKioKICAgICAqIFNlbmRzIGEgcXVlcnkgdG8gdGhlIGRhdGFiYXNlIHNlcnZlcgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgIHRoZSBTUUwgcXVlcnkgc3RyaW5nCiAgICAgKgogICAgICogQHJldHVybiBtaXhlZCAgKyBhIFBIUCByZXN1bHQgcmVzcm91Y2UgZm9yIHN1Y2Nlc3NmdWwgU0VMRUNUIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgdGhlIERCX09LIGNvbnN0YW50IGZvciBvdGhlciBzdWNjZXNzZnVsIHF1ZXJpZXMKICAgICAqICAgICAgICAgICAgICAgICsgYSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZQogICAgICovCiAgICBmdW5jdGlvbiBzaW1wbGVRdWVyeSgkcXVlcnkpCiAgICB7CiAgICAgICAgJGlzbWFuaXAgPSAkdGhpcy0+X2NoZWNrTWFuaXAoJHF1ZXJ5KTsKICAgICAgICAkdGhpcy0+bGFzdF9xdWVyeSA9ICRxdWVyeTsKICAgICAgICBpZiAoJHRoaXMtPl9kYiAmJiAhQHN5YmFzZV9zZWxlY3RfZGIoJHRoaXMtPl9kYiwgJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c3liYXNlUmFpc2VFcnJvcihEQl9FUlJPUl9OT0RCU0VMRUNURUQpOwogICAgICAgIH0KICAgICAgICAkcXVlcnkgPSAkdGhpcy0+bW9kaWZ5UXVlcnkoJHF1ZXJ5KTsKICAgICAgICBpZiAoISR0aGlzLT5hdXRvY29tbWl0ICYmICRpc21hbmlwKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9PSAwKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gQHN5YmFzZV9xdWVyeSgnQkVHSU4gVFJBTlNBQ1RJT04nLCAkdGhpcy0+Y29ubmVjdGlvbik7CiAgICAgICAgICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnN5YmFzZVJhaXNlRXJyb3IoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCsrOwogICAgICAgIH0KICAgICAgICAkcmVzdWx0ID0gQHN5YmFzZV9xdWVyeSgkcXVlcnksICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zeWJhc2VSYWlzZUVycm9yKCk7CiAgICAgICAgfQogICAgICAgIGlmIChpc19yZXNvdXJjZSgkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CiAgICAgICAgLy8gRGV0ZXJtaW5lIHdoaWNoIHF1ZXJpZXMgdGhhdCBzaG91bGQgcmV0dXJuIGRhdGEsIGFuZCB3aGljaAogICAgICAgIC8vIHNob3VsZCByZXR1cm4gYW4gZXJyb3IgY29kZSBvbmx5LgogICAgICAgIHJldHVybiAkaXNtYW5pcCA/IERCX09LIDogJHJlc3VsdDsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBuZXh0UmVzdWx0KCkKCiAgICAvKioKICAgICAqIE1vdmUgdGhlIGludGVybmFsIHN5YmFzZSByZXN1bHQgcG9pbnRlciB0byB0aGUgbmV4dCBhdmFpbGFibGUgcmVzdWx0CiAgICAgKgogICAgICogQHBhcmFtIGEgdmFsaWQgc3liYXNlIHJlc3VsdCByZXNvdXJjZQogICAgICoKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKgogICAgICogQHJldHVybiB0cnVlIGlmIGEgcmVzdWx0IGlzIGF2YWlsYWJsZSBvdGhlcndpc2UgcmV0dXJuIGZhbHNlCiAgICAgKi8KICAgIGZ1bmN0aW9uIG5leHRSZXN1bHQoJHJlc3VsdCkKICAgIHsKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZmV0Y2hJbnRvKCkKCiAgICAvKioKICAgICAqIFBsYWNlcyBhIHJvdyBmcm9tIHRoZSByZXN1bHQgc2V0IGludG8gdGhlIGdpdmVuIGFycmF5CiAgICAgKgogICAgICogRm9ybWF0aW5nIG9mIHRoZSBhcnJheSBhbmQgdGhlIGRhdGEgdGhlcmVpbiBhcmUgY29uZmlndXJhYmxlLgogICAgICogU2VlIERCX3Jlc3VsdDo6ZmV0Y2hJbnRvKCkgZm9yIG1vcmUgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogVGhpcyBtZXRob2QgaXMgbm90IG1lYW50IHRvIGJlIGNhbGxlZCBkaXJlY3RseS4gIFVzZQogICAgICogREJfcmVzdWx0OjpmZXRjaEludG8oKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICAgIHRoZSBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqIEBwYXJhbSBhcnJheSAgICAkYXJyICAgICAgIHRoZSByZWZlcmVuY2VkIGFycmF5IHRvIHB1dCB0aGUgZGF0YSBpbgogICAgICogQHBhcmFtIGludCAgICAgICRmZXRjaG1vZGUgaG93IHRoZSByZXN1bHRpbmcgYXJyYXkgc2hvdWxkIGJlIGluZGV4ZWQKICAgICAqIEBwYXJhbSBpbnQgICAgICAkcm93bnVtICAgIHRoZSByb3cgbnVtYmVyIHRvIGZldGNoICgwID0gZmlyc3Qgcm93KQogICAgICoKICAgICAqIEByZXR1cm4gbWl4ZWQgIERCX09LIG9uIHN1Y2Nlc3MsIE5VTEwgd2hlbiB0aGUgZW5kIG9mIGEgcmVzdWx0IHNldCBpcwogICAgICogICAgICAgICAgICAgICAgIHJlYWNoZWQgb3Igb24gZmFpbHVyZQogICAgICoKICAgICAqIEBzZWUgREJfcmVzdWx0OjpmZXRjaEludG8oKQogICAgICovCiAgICBmdW5jdGlvbiBmZXRjaEludG8oJHJlc3VsdCwgJiRhcnIsICRmZXRjaG1vZGUsICRyb3dudW0gPSBudWxsKQogICAgewogICAgICAgIGlmICgkcm93bnVtICE9PSBudWxsKSB7CiAgICAgICAgICAgIGlmICghQHN5YmFzZV9kYXRhX3NlZWsoJHJlc3VsdCwgJHJvd251bSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICgkZmV0Y2htb2RlICYgREJfRkVUQ0hNT0RFX0FTU09DKSB7CiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoJ3N5YmFzZV9mZXRjaF9hc3NvYycpKSB7CiAgICAgICAgICAgICAgICAkYXJyID0gQHN5YmFzZV9mZXRjaF9hc3NvYygkcmVzdWx0KTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICgkYXJyID0gQHN5YmFzZV9mZXRjaF9hcnJheSgkcmVzdWx0KSkgewogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRhcnIgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2ludCgka2V5KSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zZXQoJGFyclska2V5XSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFICYmICRhcnIpIHsKICAgICAgICAgICAgICAgICRhcnIgPSBhcnJheV9jaGFuZ2Vfa2V5X2Nhc2UoJGFyciwgQ0FTRV9MT1dFUik7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkYXJyID0gQHN5YmFzZV9mZXRjaF9yb3coJHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgIGlmICghJGFycikgewogICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfUlRSSU0pIHsKICAgICAgICAgICAgJHRoaXMtPl9ydHJpbUFycmF5VmFsdWVzKCRhcnIpOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm9wdGlvbnNbJ3BvcnRhYmlsaXR5J10gJiBEQl9QT1JUQUJJTElUWV9OVUxMX1RPX0VNUFRZKSB7CiAgICAgICAgICAgICR0aGlzLT5fY29udmVydE51bGxBcnJheVZhbHVlc1RvRW1wdHkoJGFycik7CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBmcmVlUmVzdWx0KCkKCiAgICAvKioKICAgICAqIERlbGV0ZXMgdGhlIHJlc3VsdCBzZXQgYW5kIGZyZWVzIHRoZSBtZW1vcnkgb2NjdXBpZWQgYnkgdGhlIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6OmZyZWUoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgIFRSVUUgb24gc3VjY2VzcywgRkFMU0UgaWYgJHJlc3VsdCBpcyBpbnZhbGlkCiAgICAgKgogICAgICogQHNlZSBEQl9yZXN1bHQ6OmZyZWUoKQogICAgICovCiAgICBmdW5jdGlvbiBmcmVlUmVzdWx0KCRyZXN1bHQpCiAgICB7CiAgICAgICAgcmV0dXJuIGlzX3Jlc291cmNlKCRyZXN1bHQpID8gc3liYXNlX2ZyZWVfcmVzdWx0KCRyZXN1bHQpIDogZmFsc2U7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtQ29scygpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6Om51bUNvbHMoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiBjb2x1bW5zLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6bnVtQ29scygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG51bUNvbHMoJHJlc3VsdCkKICAgIHsKICAgICAgICAkY29scyA9IEBzeWJhc2VfbnVtX2ZpZWxkcygkcmVzdWx0KTsKICAgICAgICBpZiAoISRjb2xzKSB7CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c3liYXNlUmFpc2VFcnJvcigpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGNvbHM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbnVtUm93cygpCgogICAgLyoqCiAgICAgKiBHZXRzIHRoZSBudW1iZXIgb2Ygcm93cyBpbiBhIHJlc3VsdCBzZXQKICAgICAqCiAgICAgKiBUaGlzIG1ldGhvZCBpcyBub3QgbWVhbnQgdG8gYmUgY2FsbGVkIGRpcmVjdGx5LiAgVXNlCiAgICAgKiBEQl9yZXN1bHQ6Om51bVJvd3MoKSBpbnN0ZWFkLiAgSXQgY2FuJ3QgYmUgZGVjbGFyZWQgInByb3RlY3RlZCIKICAgICAqIGJlY2F1c2UgREJfcmVzdWx0IGlzIGEgc2VwYXJhdGUgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSByZXNvdXJjZSAkcmVzdWx0ICBQSFAncyBxdWVyeSByZXN1bHQgcmVzb3VyY2UKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX3Jlc3VsdDo6bnVtUm93cygpCiAgICAgKi8KICAgIGZ1bmN0aW9uIG51bVJvd3MoJHJlc3VsdCkKICAgIHsKICAgICAgICAkcm93cyA9IEBzeWJhc2VfbnVtX3Jvd3MoJHJlc3VsdCk7CiAgICAgICAgaWYgKCRyb3dzID09PSBmYWxzZSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnN5YmFzZVJhaXNlRXJyb3IoKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyb3dzOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGFmZmVjdGVkUm93cygpCgogICAgLyoqCiAgICAgKiBEZXRlcm1pbmVzIHRoZSBudW1iZXIgb2Ygcm93cyBhZmZlY3RlZCBieSBhIGRhdGEgbWFuaXVwbGF0aW9uIHF1ZXJ5CiAgICAgKgogICAgICogMCBpcyByZXR1cm5lZCBmb3IgcXVlcmllcyB0aGF0IGRvbid0IG1hbmlwdWxhdGUgZGF0YS4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG51bWJlciBvZiByb3dzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqLwogICAgZnVuY3Rpb24gYWZmZWN0ZWRSb3dzKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPl9sYXN0X3F1ZXJ5X21hbmlwKSB7CiAgICAgICAgICAgICRyZXN1bHQgPSBAc3liYXNlX2FmZmVjdGVkX3Jvd3MoJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRyZXN1bHQgPSAwOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgbmV4dElkKCkKCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIG5leHQgZnJlZSBpZCBpbiBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAgJHNlcV9uYW1lICBuYW1lIG9mIHRoZSBzZXF1ZW5jZQogICAgICogQHBhcmFtIGJvb2xlYW4gJG9uZGVtYW5kICB3aGVuIHRydWUsIHRoZSBzZXFlbmNlIGlzIGF1dG9tYXRpY2FsbHkKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZWQgaWYgaXQgZG9lcyBub3QgZXhpc3QKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgdGhlIG5leHQgaWQgbnVtYmVyIGluIHRoZSBzZXF1ZW5jZS4KICAgICAqICAgICAgICAgICAgICAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6bmV4dElEKCksIERCX2NvbW1vbjo6Z2V0U2VxdWVuY2VOYW1lKCksCiAgICAgKiAgICAgIERCX3N5YmFzZTo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfc3liYXNlOjpkcm9wU2VxdWVuY2UoKQogICAgICovCiAgICBmdW5jdGlvbiBuZXh0SWQoJHNlcV9uYW1lLCAkb25kZW1hbmQgPSB0cnVlKQogICAgewogICAgICAgICRzZXFuYW1lID0gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpOwogICAgICAgIGlmICgkdGhpcy0+X2RiICYmICFAc3liYXNlX3NlbGVjdF9kYigkdGhpcy0+X2RiLCAkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zeWJhc2VSYWlzZUVycm9yKERCX0VSUk9SX05PREJTRUxFQ1RFRCk7CiAgICAgICAgfQogICAgICAgICRyZXBlYXQgPSAwOwogICAgICAgIGRvIHsKICAgICAgICAgICAgJHRoaXMtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgICAgICAgICAgJHJlc3VsdCA9ICR0aGlzLT5xdWVyeSgiSU5TRVJUIElOVE8gJHNlcW5hbWUgKHZhcG9yKSBWQUxVRVMgKDApIik7CiAgICAgICAgICAgICR0aGlzLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgICAgIGlmICgkb25kZW1hbmQgJiYgREI6OmlzRXJyb3IoJHJlc3VsdCkgJiYKICAgICAgICAgICAgICAgICgkcmVzdWx0LT5nZXRDb2RlKCkgPT0gREJfRVJST1IgfHwgJHJlc3VsdC0+Z2V0Q29kZSgpID09IERCX0VSUk9SX05PU1VDSFRBQkxFKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgJHJlcGVhdCA9IDE7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPmNyZWF0ZVNlcXVlbmNlKCRzZXFfbmFtZSk7CiAgICAgICAgICAgICAgICBpZiAoREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZWlmICghREI6OmlzRXJyb3IoJHJlc3VsdCkpIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSYgJHRoaXMtPnF1ZXJ5KCJTRUxFQ1QgQEBJREVOVElUWSBGUk9NICRzZXFuYW1lIik7CiAgICAgICAgICAgICAgICAkcmVwZWF0ID0gMDsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRyZXBlYXQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgIH0gd2hpbGUgKCRyZXBlYXQpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzdWx0KSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJhaXNlRXJyb3IoJHJlc3VsdCk7CiAgICAgICAgfQogICAgICAgICRyZXN1bHQgPSAkcmVzdWx0LT5mZXRjaFJvdyhEQl9GRVRDSE1PREVfT1JERVJFRCk7CiAgICAgICAgcmV0dXJuICRyZXN1bHRbMF07CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGVzIGEgbmV3IHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIG5ldyBzZXF1ZW5jZQogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3Qgb24gZmFpbHVyZS4KICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6Y3JlYXRlU2VxdWVuY2UoKSwgREJfY29tbW9uOjpnZXRTZXF1ZW5jZU5hbWUoKSwKICAgICAqICAgICAgREJfc3liYXNlOjpuZXh0SUQoKSwgREJfc3liYXNlOjpkcm9wU2VxdWVuY2UoKQogICAgICovCiAgICBmdW5jdGlvbiBjcmVhdGVTZXF1ZW5jZSgkc2VxX25hbWUpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5xdWVyeSgnQ1JFQVRFIFRBQkxFICcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJHRoaXMtPmdldFNlcXVlbmNlTmFtZSgkc2VxX25hbWUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICcgKGlkIG51bWVyaWMoMTAsIDApIElERU5USVRZIE5PVCBOVUxMLCcKICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gJyB2YXBvciBpbnQgTlVMTCknKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBkcm9wU2VxdWVuY2UoKQoKICAgIC8qKgogICAgICogRGVsZXRlcyBhIHNlcXVlbmNlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkc2VxX25hbWUgIG5hbWUgb2YgdGhlIHNlcXVlbmNlIHRvIGJlIGRlbGV0ZWQKICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OmRyb3BTZXF1ZW5jZSgpLCBEQl9jb21tb246OmdldFNlcXVlbmNlTmFtZSgpLAogICAgICogICAgICBEQl9zeWJhc2U6Om5leHRJRCgpLCBEQl9zeWJhc2U6OmNyZWF0ZVNlcXVlbmNlKCkKICAgICAqLwogICAgZnVuY3Rpb24gZHJvcFNlcXVlbmNlKCRzZXFfbmFtZSkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnF1ZXJ5KCdEUk9QIFRBQkxFICcgLiAkdGhpcy0+Z2V0U2VxdWVuY2VOYW1lKCRzZXFfbmFtZSkpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHF1b3RlRmxvYXQoKQoKICAgIC8qKgogICAgICogRm9ybWF0cyBhIGZsb2F0IHZhbHVlIGZvciB1c2Ugd2l0aGluIGEgcXVlcnkgaW4gYSBsb2NhbGUtaW5kZXBlbmRlbnQKICAgICAqIG1hbm5lci4KICAgICAqCiAgICAgKiBAcGFyYW0gZmxvYXQgdGhlIGZsb2F0IHZhbHVlIHRvIGJlIHF1b3RlZC4KICAgICAqIEByZXR1cm4gc3RyaW5nIHRoZSBxdW90ZWQgc3RyaW5nLgogICAgICogQHNlZSBEQl9jb21tb246OnF1b3RlU21hcnQoKQogICAgICogQHNpbmNlIE1ldGhvZCBhdmFpbGFibGUgc2luY2UgcmVsZWFzZSAxLjcuOC4KICAgICAqLwogICAgZnVuY3Rpb24gcXVvdGVGbG9hdCgkZmxvYXQpIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmVzY2FwZVNpbXBsZShzdHJfcmVwbGFjZSgnLCcsICcuJywgc3RydmFsKGZsb2F0dmFsKCRmbG9hdCkpKSk7CiAgICB9CiAgICAgCiAgICAvLyB9fX0KICAgIC8vIHt7eyBhdXRvQ29tbWl0KCkKCiAgICAvKioKICAgICAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgYXV0b21hdGljIGNvbW1pdHMKICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbCAkb25vZmYgIHRydWUgdHVybnMgaXQgb24sIGZhbHNlIHR1cm5zIGl0IG9mZgogICAgICoKICAgICAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgQSBEQl9FcnJvciBvYmplY3QgaWYgdGhlIGRyaXZlcgogICAgICogICAgICAgICAgICAgICBkb2Vzbid0IHN1cHBvcnQgYXV0by1jb21taXR0aW5nIHRyYW5zYWN0aW9ucy4KICAgICAqLwogICAgZnVuY3Rpb24gYXV0b0NvbW1pdCgkb25vZmYgPSBmYWxzZSkKICAgIHsKICAgICAgICAvLyBYWFggaWYgJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwLCB3ZSBzaG91bGQgcHJvYmFibHkKICAgICAgICAvLyBpc3N1ZSBhIHdhcm5pbmcgaGVyZS4KICAgICAgICAkdGhpcy0+YXV0b2NvbW1pdCA9ICRvbm9mZiA/IHRydWUgOiBmYWxzZTsKICAgICAgICByZXR1cm4gREJfT0s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgY29tbWl0KCkKCiAgICAvKioKICAgICAqIENvbW1pdHMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNvbW1pdCgpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT50cmFuc2FjdGlvbl9vcGNvdW50ID4gMCkgewogICAgICAgICAgICBpZiAoJHRoaXMtPl9kYiAmJiAhQHN5YmFzZV9zZWxlY3RfZGIoJHRoaXMtPl9kYiwgJHRoaXMtPmNvbm5lY3Rpb24pKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnN5YmFzZVJhaXNlRXJyb3IoREJfRVJST1JfTk9EQlNFTEVDVEVEKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkcmVzdWx0ID0gQHN5YmFzZV9xdWVyeSgnQ09NTUlUJywgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICAkdGhpcy0+dHJhbnNhY3Rpb25fb3Bjb3VudCA9IDA7CiAgICAgICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zeWJhc2VSYWlzZUVycm9yKCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX09LOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHJvbGxiYWNrKCkKCiAgICAvKioKICAgICAqIFJldmVydHMgdGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCAgREJfT0sgb24gc3VjY2Vzcy4gIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKi8KICAgIGZ1bmN0aW9uIHJvbGxiYWNrKCkKICAgIHsKICAgICAgICBpZiAoJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPiAwKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+X2RiICYmICFAc3liYXNlX3NlbGVjdF9kYigkdGhpcy0+X2RiLCAkdGhpcy0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c3liYXNlUmFpc2VFcnJvcihEQl9FUlJPUl9OT0RCU0VMRUNURUQpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRyZXN1bHQgPSBAc3liYXNlX3F1ZXJ5KCdST0xMQkFDSycsICR0aGlzLT5jb25uZWN0aW9uKTsKICAgICAgICAgICAgJHRoaXMtPnRyYW5zYWN0aW9uX29wY291bnQgPSAwOwogICAgICAgICAgICBpZiAoISRyZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c3liYXNlUmFpc2VFcnJvcigpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBEQl9PSzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBzeWJhc2VSYWlzZUVycm9yKCkKCiAgICAvKioKICAgICAqIFByb2R1Y2VzIGEgREJfRXJyb3Igb2JqZWN0IHJlZ2FyZGluZyB0aGUgY3VycmVudCBwcm9ibGVtCiAgICAgKgogICAgICogQHBhcmFtIGludCAkZXJybm8gIGlmIHRoZSBlcnJvciBpcyBiZWluZyBtYW51YWxseSByYWlzZWQgcGFzcyBhCiAgICAgKiAgICAgICAgICAgICAgICAgICAgIERCX0VSUk9SKiBjb25zdGFudCBoZXJlLiAgSWYgdGhpcyBpc24ndCBwYXNzZWQKICAgICAqICAgICAgICAgICAgICAgICAgICAgdGhlIGVycm9yIGluZm9ybWF0aW9uIGdhdGhlcmVkIGZyb20gdGhlIERCTVMuCiAgICAgKgogICAgICogQHJldHVybiBvYmplY3QgIHRoZSBEQl9FcnJvciBvYmplY3QKICAgICAqCiAgICAgKiBAc2VlIERCX2NvbW1vbjo6cmFpc2VFcnJvcigpLAogICAgICogICAgICBEQl9zeWJhc2U6OmVycm9yTmF0aXZlKCksIERCX3N5YmFzZTo6ZXJyb3JDb2RlKCkKICAgICAqLwogICAgZnVuY3Rpb24gc3liYXNlUmFpc2VFcnJvcigkZXJybm8gPSBudWxsKQogICAgewogICAgICAgICRuYXRpdmUgPSAkdGhpcy0+ZXJyb3JOYXRpdmUoKTsKICAgICAgICBpZiAoJGVycm5vID09PSBudWxsKSB7CiAgICAgICAgICAgICRlcnJubyA9ICR0aGlzLT5lcnJvckNvZGUoJG5hdGl2ZSk7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+cmFpc2VFcnJvcigkZXJybm8sIG51bGwsIG51bGwsIG51bGwsICRuYXRpdmUpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGVycm9yTmF0aXZlKCkKCiAgICAvKioKICAgICAqIEdldHMgdGhlIERCTVMnIG5hdGl2ZSBlcnJvciBtZXNzYWdlIHByb2R1Y2VkIGJ5IHRoZSBsYXN0IHF1ZXJ5CiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgIHRoZSBEQk1TJyBlcnJvciBtZXNzYWdlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGVycm9yTmF0aXZlKCkKICAgIHsKICAgICAgICByZXR1cm4gQHN5YmFzZV9nZXRfbGFzdF9tZXNzYWdlKCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZXJyb3JDb2RlKCkKCiAgICAvKioKICAgICAqIERldGVybWluZXMgUEVBUjo6REIgZXJyb3IgY29kZSBmcm9tIHRoZSBkYXRhYmFzZSdzIHRleHQgZXJyb3IgbWVzc2FnZS4KICAgICAqCiAgICAgKiBAcGFyYW0gIHN0cmluZyAgJGVycm9ybXNnICBlcnJvciBtZXNzYWdlIHJldHVybmVkIGZyb20gdGhlIGRhdGFiYXNlCiAgICAgKiBAcmV0dXJuIGludGVnZXIgIGFuIGVycm9yIG51bWJlciBmcm9tIGEgREIgZXJyb3IgY29uc3RhbnQKICAgICAqLwogICAgZnVuY3Rpb24gZXJyb3JDb2RlKCRlcnJvcm1zZykKICAgIHsKICAgICAgICBzdGF0aWMgJGVycm9yX3JlZ2V4cHM7CiAgICAgICAgCiAgICAgICAgLy8gUEhQIDUuMisgcHJlcGVuZHMgdGhlIGZ1bmN0aW9uIG5hbWUgdG8gJHBocF9lcnJvcm1zZywgc28gd2UgbmVlZAogICAgICAgIC8vIHRoaXMgaGFjayB0byB3b3JrIGFyb3VuZCBpdCwgcGVyIGJ1ZyAjOTU5OS4KICAgICAgICAkZXJyb3Jtc2cgPSBwcmVnX3JlcGxhY2UoJy9ec3liYXNlW2Etel9dK1woXCk6IC8nLCAnJywgJGVycm9ybXNnKTsKICAgICAgICAKICAgICAgICBpZiAoIWlzc2V0KCRlcnJvcl9yZWdleHBzKSkgewogICAgICAgICAgICAkZXJyb3JfcmVnZXhwcyA9IGFycmF5KAogICAgICAgICAgICAgICAgJy9JbmNvcnJlY3Qgc3ludGF4IG5lYXIvJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX1NZTlRBWCwKICAgICAgICAgICAgICAgICcvXlVuY2xvc2VkIHF1b3RlIGJlZm9yZSB0aGUgY2hhcmFjdGVyIHN0cmluZyBbXCJcJ10uKltcIlwnXVwuLycKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9TWU5UQVgsCiAgICAgICAgICAgICAgICAnL0ltcGxpY2l0IGNvbnZlcnNpb24gKGZyb20gZGF0YXR5cGV8b2YgTlVNRVJJQyB2YWx1ZSkvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9JTlZBTElEX05VTUJFUiwKICAgICAgICAgICAgICAgICcvQ2Fubm90IGRyb3AgdGhlIHRhYmxlIFtcIlwnXS4rW1wiXCddLCBiZWNhdXNlIGl0IGRvZXNuXCd0IGV4aXN0IGluIHRoZSBzeXN0ZW0gY2F0YWxvZ3NcLi8nCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfTk9TVUNIVEFCTEUsCiAgICAgICAgICAgICAgICAnL09ubHkgdGhlIG93bmVyIG9mIG9iamVjdCBbXCJcJ10uK1tcIlwnXSBvciBhIHVzZXIgd2l0aCBTeXN0ZW0gQWRtaW5pc3RyYXRvciBcKFNBXCkgcm9sZSBjYW4gcnVuIHRoaXMgY29tbWFuZFwuLycKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OLAogICAgICAgICAgICAgICAgJy9eLisgcGVybWlzc2lvbiBkZW5pZWQgb24gb2JqZWN0IC4rLCBkYXRhYmFzZSAuKywgb3duZXIgLisvJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0FDQ0VTU19WSU9MQVRJT04sCiAgICAgICAgICAgICAgICAnL14uKiBwZXJtaXNzaW9uIGRlbmllZCwgZGF0YWJhc2UgLissIG93bmVyIC4rLycKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BQ0NFU1NfVklPTEFUSU9OLAogICAgICAgICAgICAgICAgJy9bXi4qXSBub3QgZm91bmRcLi8nCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfTk9TVUNIVEFCTEUsCiAgICAgICAgICAgICAgICAnL1RoZXJlIGlzIGFscmVhZHkgYW4gb2JqZWN0IG5hbWVkLycKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywKICAgICAgICAgICAgICAgICcvSW52YWxpZCBjb2x1bW4gbmFtZS8nCiAgICAgICAgICAgICAgICAgICAgPT4gREJfRVJST1JfTk9TVUNIRklFTEQsCiAgICAgICAgICAgICAgICAnL2RvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzLycKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9DT05TVFJBSU5UX05PVF9OVUxMLAogICAgICAgICAgICAgICAgJy9Db21tYW5kIGhhcyBiZWVuIGFib3J0ZWQvJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX0NPTlNUUkFJTlQsCiAgICAgICAgICAgICAgICAnL15DYW5ub3QgZHJvcCB0aGUgaW5kZXggLiogYmVjYXVzZSBpdCBkb2VzblwndCBleGlzdC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX05PVF9GT1VORCwKICAgICAgICAgICAgICAgICcvXlRoZXJlIGlzIGFscmVhZHkgYW4gaW5kZXgvaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywKICAgICAgICAgICAgICAgICcvXlRoZXJlIGFyZSBmZXdlciBjb2x1bW5zIGluIHRoZSBJTlNFUlQgc3RhdGVtZW50IHRoYW4gdmFsdWVzIHNwZWNpZmllZC9pJwogICAgICAgICAgICAgICAgICAgID0+IERCX0VSUk9SX1ZBTFVFX0NPVU5UX09OX1JPVywKICAgICAgICAgICAgICAgICcvRGl2aWRlIGJ5IHplcm8vaScKICAgICAgICAgICAgICAgICAgICA9PiBEQl9FUlJPUl9ESVZaRVJPLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgZm9yZWFjaCAoJGVycm9yX3JlZ2V4cHMgYXMgJHJlZ2V4cCA9PiAkY29kZSkgewogICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgkcmVnZXhwLCAkZXJyb3Jtc2cpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJGNvZGU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIERCX0VSUk9SOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHRhYmxlSW5mbygpCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGluZm9ybWF0aW9uIGFib3V0IGEgdGFibGUgb3IgYSByZXN1bHQgc2V0CiAgICAgKgogICAgICogTk9URTogb25seSBzdXBwb3J0cyAndGFibGUnIGFuZCAnZmxhZ3MnIGlmIDx2YXI+JHJlc3VsdDwvdmFyPgogICAgICogaXMgYSB0YWJsZSBuYW1lLgogICAgICoKICAgICAqIEBwYXJhbSBvYmplY3R8c3RyaW5nICAkcmVzdWx0ICBEQl9yZXN1bHQgb2JqZWN0IGZyb20gYSBxdWVyeSBvciBhCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cmluZyBjb250YWluaW5nIHRoZSBuYW1lIG9mIGEgdGFibGUuCiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdoaWxlIHRoaXMgYWxzbyBhY2NlcHRzIGEgcXVlcnkgcmVzdWx0CiAgICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlIGlkZW50aWZpZXIsIHRoaXMgYmVoYXZpb3IgaXMKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVwcmVjYXRlZC4KICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAkbW9kZSAgICBhIHZhbGlkIHRhYmxlSW5mbyBtb2RlCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSAgYW4gYXNzb2NpYXRpdmUgYXJyYXkgd2l0aCB0aGUgaW5mb3JtYXRpb24gcmVxdWVzdGVkLgogICAgICogICAgICAgICAgICAgICAgIEEgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAgICAgKgogICAgICogQHNlZSBEQl9jb21tb246OnRhYmxlSW5mbygpCiAgICAgKiBAc2luY2UgTWV0aG9kIGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNi4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIHRhYmxlSW5mbygkcmVzdWx0LCAkbW9kZSA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGlzX3N0cmluZygkcmVzdWx0KSkgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHRhYmxlIG5hbWUuCiAgICAgICAgICAgICAqIENyZWF0ZSBhIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgaWYgKCR0aGlzLT5fZGIgJiYgIUBzeWJhc2Vfc2VsZWN0X2RiKCR0aGlzLT5fZGIsICR0aGlzLT5jb25uZWN0aW9uKSkgewogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zeWJhc2VSYWlzZUVycm9yKERCX0VSUk9SX05PREJTRUxFQ1RFRCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGlkID0gQHN5YmFzZV9xdWVyeSgiU0VMRUNUICogRlJPTSAkcmVzdWx0IFdIRVJFIDE9MCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbm5lY3Rpb24pOwogICAgICAgICAgICAkZ290X3N0cmluZyA9IHRydWU7CiAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCRyZXN1bHQtPnJlc3VsdCkpIHsKICAgICAgICAgICAgLyoKICAgICAgICAgICAgICogUHJvYmFibHkgcmVjZWl2ZWQgYSByZXN1bHQgb2JqZWN0LgogICAgICAgICAgICAgKiBFeHRyYWN0IHRoZSByZXN1bHQgcmVzb3VyY2UgaWRlbnRpZmllci4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRpZCA9ICRyZXN1bHQtPnJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvKgogICAgICAgICAgICAgKiBQcm9iYWJseSByZWNlaXZlZCBhIHJlc3VsdCByZXNvdXJjZSBpZGVudGlmaWVyLgogICAgICAgICAgICAgKiBDb3B5IGl0LgogICAgICAgICAgICAgKiBEZXByZWNhdGVkLiAgSGVyZSBmb3IgY29tcGF0aWJpbGl0eSBvbmx5LgogICAgICAgICAgICAgKi8KICAgICAgICAgICAgJGlkID0gJHJlc3VsdDsKICAgICAgICAgICAgJGdvdF9zdHJpbmcgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmICghaXNfcmVzb3VyY2UoJGlkKSkgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnN5YmFzZVJhaXNlRXJyb3IoREJfRVJST1JfTkVFRF9NT1JFX0RBVEEpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCR0aGlzLT5vcHRpb25zWydwb3J0YWJpbGl0eSddICYgREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKSB7CiAgICAgICAgICAgICRjYXNlX2Z1bmMgPSAnc3RydG9sb3dlcic7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGNhc2VfZnVuYyA9ICdzdHJ2YWwnOwogICAgICAgIH0KCiAgICAgICAgJGNvdW50ID0gQHN5YmFzZV9udW1fZmllbGRzKCRpZCk7CiAgICAgICAgJHJlcyAgID0gYXJyYXkoKTsKCiAgICAgICAgaWYgKCRtb2RlKSB7CiAgICAgICAgICAgICRyZXNbJ251bV9maWVsZHMnXSA9ICRjb3VudDsKICAgICAgICB9CgogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRjb3VudDsgJGkrKykgewogICAgICAgICAgICAkZiA9IEBzeWJhc2VfZmV0Y2hfZmllbGQoJGlkLCAkaSk7CiAgICAgICAgICAgIC8vIGNvbHVtbl9zb3VyY2UgaXMgb2Z0ZW4gYmxhbmsKICAgICAgICAgICAgJHJlc1skaV0gPSBhcnJheSgKICAgICAgICAgICAgICAgICd0YWJsZScgPT4gJGdvdF9zdHJpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAkY2FzZV9mdW5jKCRyZXN1bHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJGNhc2VfZnVuYygkZi0+Y29sdW1uX3NvdXJjZSksCiAgICAgICAgICAgICAgICAnbmFtZScgID0+ICRjYXNlX2Z1bmMoJGYtPm5hbWUpLAogICAgICAgICAgICAgICAgJ3R5cGUnICA9PiAkZi0+dHlwZSwKICAgICAgICAgICAgICAgICdsZW4nICAgPT4gJGYtPm1heF9sZW5ndGgsCiAgICAgICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoJHJlc1skaV1bJ3RhYmxlJ10pIHsKICAgICAgICAgICAgICAgICRyZXNbJGldWydmbGFncyddID0gJHRoaXMtPl9zeWJhc2VfZmllbGRfZmxhZ3MoCiAgICAgICAgICAgICAgICAgICAgICAgICRyZXNbJGldWyd0YWJsZSddLCAkcmVzWyRpXVsnbmFtZSddKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVIpIHsKICAgICAgICAgICAgICAgICRyZXNbJ29yZGVyJ11bJHJlc1skaV1bJ25hbWUnXV0gPSAkaTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoJG1vZGUgJiBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSkgewogICAgICAgICAgICAgICAgJHJlc1snb3JkZXJ0YWJsZSddWyRyZXNbJGldWyd0YWJsZSddXVskcmVzWyRpXVsnbmFtZSddXSA9ICRpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBmcmVlIHRoZSByZXN1bHQgb25seSBpZiB3ZSB3ZXJlIGNhbGxlZCBvbiBhIHRhYmxlCiAgICAgICAgaWYgKCRnb3Rfc3RyaW5nKSB7CiAgICAgICAgICAgIEBzeWJhc2VfZnJlZV9yZXN1bHQoJGlkKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRyZXM7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgX3N5YmFzZV9maWVsZF9mbGFncygpCgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGZsYWdzIGZvciBhIGZpZWxkCiAgICAgKgogICAgICogQ3VycmVudGx5IHN1cHBvcnRzOgogICAgICogICsgPHNhbXA+dW5pcXVlX2tleTwvc2FtcD4gICAgKHVuaXF1ZSBpbmRleCwgdW5pcXVlIGNoZWNrIG9yIHByaW1hcnlfa2V5KQogICAgICogICsgPHNhbXA+bXVsdGlwbGVfa2V5PC9zYW1wPiAgKG11bHRpLWtleSBpbmRleCkKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICAkdGFibGUgICB0aGUgdGFibGUgbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAgJGNvbHVtbiAgdGhlIGZpZWxkIG5hbWUKICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyAgc3BhY2UgZGVsaW1pdGVkIHN0cmluZyBvZiBmbGFncy4gIEVtcHR5IHN0cmluZyBpZiBub25lLgogICAgICoKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICovCiAgICBmdW5jdGlvbiBfc3liYXNlX2ZpZWxkX2ZsYWdzKCR0YWJsZSwgJGNvbHVtbikKICAgIHsKICAgICAgICBzdGF0aWMgJHRhYmxlTmFtZSA9IG51bGw7CiAgICAgICAgc3RhdGljICRmbGFncyA9IGFycmF5KCk7CgogICAgICAgIGlmICgkdGFibGUgIT0gJHRhYmxlTmFtZSkgewogICAgICAgICAgICAkZmxhZ3MgPSBhcnJheSgpOwogICAgICAgICAgICAkdGFibGVOYW1lID0gJHRhYmxlOwoKICAgICAgICAgICAgLyogV2UncmUgcnVubmluZyBzcF9oZWxwaW5kZXggZGlyZWN0bHkgYmVjYXVzZSBpdCBkb2Vzbid0IGV4aXN0IGluCiAgICAgICAgICAgICAqIG9sZGVyIHZlcnNpb25zIG9mIEFTRSAtLSB1bmZvcnR1bmF0ZWx5LCB3ZSBjYW4ndCBqdXN0IHVzZQogICAgICAgICAgICAgKiBEQjo6aXNFcnJvcigpIGJlY2F1c2UgdGhlIHVzZXIgbWF5IGJlIHVzaW5nIGNhbGxiYWNrIGVycm9yCiAgICAgICAgICAgICAqIGhhbmRsaW5nLiAqLwogICAgICAgICAgICAkcmVzID0gQHN5YmFzZV9xdWVyeSgic3BfaGVscGluZGV4ICR0YWJsZSIsICR0aGlzLT5jb25uZWN0aW9uKTsKCiAgICAgICAgICAgIGlmICgkcmVzID09PSBmYWxzZSB8fCAkcmVzID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAvLyBGYWtlIGEgdmFsaWQgcmVzcG9uc2UgZm9yIEJDIHJlYXNvbnMuCiAgICAgICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHdoaWxlICgoJHZhbCA9IHN5YmFzZV9mZXRjaF9hc3NvYygkcmVzKSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCR2YWxbJ2luZGV4X2tleXMnXSkpIHsKICAgICAgICAgICAgICAgICAgICAvKiBObyB1c2VmdWwgaW5mb3JtYXRpb24gcmV0dXJuZWQuIEJyZWFrIGFuZCBiZSBkb25lIHdpdGgKICAgICAgICAgICAgICAgICAgICAgKiBpdCwgd2hpY2ggcHJlc2VydmVzIHRoZSBwcmUtMS43LjkgYmVoYXZpb3VyLiAqLwogICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRrZXlzID0gZXhwbG9kZSgnLCAnLCB0cmltKCR2YWxbJ2luZGV4X2tleXMnXSkpOwoKICAgICAgICAgICAgICAgIGlmIChzaXplb2YoJGtleXMpID4gMSkgewogICAgICAgICAgICAgICAgICAgIGZvcmVhY2ggKCRrZXlzIGFzICRrZXkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPl9hZGRfZmxhZygkZmxhZ3NbJGtleV0sICdtdWx0aXBsZV9rZXknKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKHN0cnBvcygkdmFsWydpbmRleF9kZXNjcmlwdGlvbiddLCAndW5pcXVlJykpIHsKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoICgka2V5cyBhcyAka2V5KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5fYWRkX2ZsYWcoJGZsYWdzWyRrZXldLCAndW5pcXVlX2tleScpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgc3liYXNlX2ZyZWVfcmVzdWx0KCRyZXMpOwoKICAgICAgICB9CgogICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRjb2x1bW4sICRmbGFncykpIHsKICAgICAgICAgICAgcmV0dXJuKGltcGxvZGUoJyAnLCAkZmxhZ3NbJGNvbHVtbl0pKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAnJzsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBfYWRkX2ZsYWcoKQoKICAgIC8qKgogICAgICogQWRkcyBhIHN0cmluZyB0byB0aGUgZmxhZ3MgYXJyYXkgaWYgdGhlIGZsYWcgaXMgbm90IHlldCBpbiB0aGVyZQogICAgICogLSBpZiB0aGVyZSBpcyBubyBmbGFnIHByZXNlbnQgdGhlIGFycmF5IGlzIGNyZWF0ZWQKICAgICAqCiAgICAgKiBAcGFyYW0gYXJyYXkgICRhcnJheSAgcmVmZXJlbmNlIG9mIGZsYWdzIGFycmF5IHRvIGFkZCBhIHZhbHVlIHRvCiAgICAgKiBAcGFyYW0gbWl4ZWQgICR2YWx1ZSAgdmFsdWUgdG8gYWRkIHRvIHRoZSBmbGFnIGFycmF5CiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKgogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIF9hZGRfZmxhZygmJGFycmF5LCAkdmFsdWUpCiAgICB7CiAgICAgICAgaWYgKCFpc19hcnJheSgkYXJyYXkpKSB7CiAgICAgICAgICAgICRhcnJheSA9IGFycmF5KCR2YWx1ZSk7CiAgICAgICAgfSBlbHNlaWYgKCFpbl9hcnJheSgkdmFsdWUsICRhcnJheSkpIHsKICAgICAgICAgICAgYXJyYXlfcHVzaCgkYXJyYXksICR2YWx1ZSk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldFNwZWNpYWxRdWVyeSgpCgogICAgLyoqCiAgICAgKiBPYnRhaW5zIHRoZSBxdWVyeSBzdHJpbmcgbmVlZGVkIGZvciBsaXN0aW5nIGEgZ2l2ZW4gdHlwZSBvZiBvYmplY3RzCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdHlwZSAgdGhlIGtpbmQgb2Ygb2JqZWN0cyB5b3Ugd2FudCB0byByZXRyaWV2ZQogICAgICoKICAgICAqIEByZXR1cm4gc3RyaW5nICB0aGUgU1FMIHF1ZXJ5IHN0cmluZyBvciBudWxsIGlmIHRoZSBkcml2ZXIgZG9lc24ndAogICAgICogICAgICAgICAgICAgICAgICBzdXBwb3J0IHRoZSBvYmplY3QgdHlwZSByZXF1ZXN0ZWQKICAgICAqCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHNlZSBEQl9jb21tb246OmdldExpc3RPZigpCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFNwZWNpYWxRdWVyeSgkdHlwZSkKICAgIHsKICAgICAgICBzd2l0Y2ggKCR0eXBlKSB7CiAgICAgICAgICAgIGNhc2UgJ3RhYmxlcyc6CiAgICAgICAgICAgICAgICByZXR1cm4gIlNFTEVDVCBuYW1lIEZST00gc3lzb2JqZWN0cyBXSEVSRSB0eXBlID0gJ1UnIgogICAgICAgICAgICAgICAgICAgICAgIC4gJyBPUkRFUiBCWSBuYW1lJzsKICAgICAgICAgICAgY2FzZSAndmlld3MnOgogICAgICAgICAgICAgICAgcmV0dXJuICJTRUxFQ1QgbmFtZSBGUk9NIHN5c29iamVjdHMgV0hFUkUgdHlwZSA9ICdWJyI7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19Cgp9CgovKgogKiBMb2NhbCB2YXJpYWJsZXM6CiAqIHRhYi13aWR0aDogNAogKiBjLWJhc2ljLW9mZnNldDogNAogKiBFbmQ6CiAqLwoKPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/doc/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/pear/doc/IDEAS</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QWJzdHJhY3RlZCBUeXBlcyAoU3RpZykKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkRCIG5lZWRzIGEgc2V0IG9mIHR5cGVzIHJlcHJlc2VudGluZyB0aGUgbW9zdCBjb21tb25seSB1c2VkIHR5cGVzIGluCmFsbCBiYWNrZW5kcy4gIFRoaXMgdHlwZSBzZXQgY291bGQgYWxzbyBiZSBnZWFyZWQgdG93YXJkcyBpbnRlZ3JhdGlvbgp3aXRoIHRoaW5ncyBsaWtlIFhNTC1SUEMvU09BUCBpbXBsZW1lbnRhdGlvbnMsIEhUTUwgZm9ybSBjbGFzc2VzLCBldGMuCgpSZWFsIFF1ZXJ5IFBhcnNlciAoU3RpZykKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpXaXRoIGEgcmVhbCBxdWVyeSBwYXJzZXIsIERCIGNhbiBpbXBsZW1lbnQgbW9yZSBvZiBpdHMgcG9ydGFiaWxpdHkKYmFzZWQgb24gdGhlIHF1ZXJ5LCBpbnN0ZWFkIG9mIGhhdmluZyBzdXBwb3J0IGZ1bmN0aW9ucyBmb3IKZXZlcnl0aGluZy4gIE9uZSBleGFtcGxlIHdvdWxkIGJlIExJTUlULCBhbm90aGVyICJJTlNFUlQKLi4uIFJFVFVSTklORyIuCgpQb3J0YWJsZSB0cmFuc2FjdGlvbnMgKFN0aWcpCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCklmIERCIGNhbiBwYXJzZSBxdWVyaWVzIGVub3VnaCB0byBkZXRlcm1pbmUgd2hhdCB0YWJsZXMgYXJlIGFmZmVjdGVkCmJ5IHF1ZXJpZXMsIGl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBtYWtlIGEgcmVwbGF5YWJsZSB0cmFuc2FjdGlvbgpsb2cuICBHTk9NRSB1c2VzIGFuIFhNTCBmb3JtYXQgZm9yIGNvbmZpZ3VyYXRpb24gZGF0YSB0aGF0IGxldHMgeW91CmNoZWNrcG9pbnQgc3RhdGUgb25jZSBpbiBhIHdoaWxlLCBhbmQgcmV2ZXJ0IHRvIHRoYXQgc3RhdGUgbGF0ZXIuCldpdGggYSBzaW1pbGFyIGFwcHJvYWNoIGZvciB0cmFuc2FjdGlvbnMgaW4gREIgd2UgY2FuIGltcGxlbWVudApwb3J0YWJsZSB0cmFuc2FjdGlvbnMgYW5kIGNoZWNrcG9pbnRpbmcgZXZlbiBmb3IgdGhlIGRhdGFiYXNlcyB0aGF0CmRvbid0IHN1cHBvcnQgdGhlbS4KCgpFcnJvciByZXBvcnRpbmcgY2xlYW4tdXAvZGVidWcgKFRvbWFzKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk5vdyBlYWNoIGRyaXZlciBoYXMgaXRzIG93biByYWlzZUVycm9yIG1ldGhvZCwgY29tbW9uIGhhcyBhIHJhaXNlRXJyb3IgYW5kCkRCIGhhcyBhIERCX2Vycm9yIGNsYXNzIGFuZCBpdHMgb3duIGlzRXJyb3IoKSBtZXRob2QuIFRoaXMgZXJyb3Igc3R1ZmYgCm92ZXJoZWFkIGNvdWxkIGJlIHNpbXBsaWZpZWQgd2l0aCBvbmx5IG9uZSByYWlzZUVycm9yLCBkcm9waW5nIHRoZSBEQiBFcnJvcgpjbGFzcyBhbmQgYWxzbyB0aGUgREI6OmlzRXJyb3IoKSAodXNlIHRoZSBQRUFSLnBocCBvbmVzIGluc3RlYWQpLgpPdGhlciBpZGVhIGNvdWxkIGJlIHRvIGFkZCBhIHN5c3RlbSBmb3IgYWxsb3dpbmcgcGVvcGxlIGFjY2VzcyB0byBhbGwgdGhlCnF1ZXJpZXMgc2VuZGVkIGJ5IFBFQVIgREIgdG8gdGhlIGJhY2tlbmQuIEFsc28gYSBuZXcgUEVBUl9FUlJPUl9ERUJVRwpmbGFnIHRoYXQgYXV0b21hdGljYWxseSAoc2hvd3x0cmlnZ2VycykgZGVidWcgaW5mbywgcGVyaGFwcwp3aXRoIGEgbmV3IFBFQVJfKFdhcm5pbmd8RGVidWcpIG9iamVjdC4KClF1b3RlIGNsZWFuLXVwIChTdGlnKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0KMS4gS2VlcCBxdW90ZSBhbmQgcXVvdGVTdHJpbmcsIGJ1dCBtb3ZlIHF1b3Rpbmcgb2Ygc3RyaW5ncyBiYWNrIGludG8KICAgcXVvdGVTdHJpbmcgYW5kIG1ha2UgcXVvdGUgY2FsbCBpdCBmb3Igc3RyaW5ncy4KCjIuIEFkZCBhbiBvcHRpb25hbCAib3BlcmF0b3IiIHBhcmFtZXRlciB0byBxdW90ZSB0aGF0IGlzIG9uZSBvZiAiPSIsCiAgICI8IiwgIj4iIG9yICI8PiIgdGhhdCB3aWxsIGJlIGluc2VydGVkIGluIGZyb250IG9mIHRoZSBxdW90ZWQgdmFsdWUKICAgdW5sZXNzIGl0IGlzIE5VTEwsIGluIHdoaWNoIGNhc2UgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gIklTIiAoZm9yCiAgICI9Iikgb3IgIklTIE5PVCIgKGZvciB0aGUgb3RoZXJzKS4KCkF1dG8gZnJlZSBzdGF0ZW1lbnRzIChUb21hcykKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpCeSBzZXR0aW5nIGEgcGFyYW0gaW4gcXVlcnkoKSBvciBmb3IgdGhlIGhvbGUgREIgaW5zdGFuY2UsIFBFQVIgREIKY291bGQgYXV0by1mcmVlIHJlc3VsdHMgaW4gREJfcmVzdWx0LT5mZXRjaChJbnRvfFJvdykgd2hlbiB0aGUgZHJpdmVyCnJldHVybnMgZmFsc2UuCgpEYXRhdHlwZXMgaW4gcHJlcGFyZSBzeW50YXggKFRvbWFzKQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpFeHRlbmQgdGhlIGFjdHVhbCBwcmVwYXJlL2V4ZWN1dGUgcGxhY2Vob2xkZXJzIHRvIHN1cHBvcnQgZGF0YSB0eXBlcywgYm90aAp0byBjaGVjayB0aGUgZGF0YSBpbnRyb2R1Y2VkIHRvIHRoZSBxdWVyeSBhbmQgdG8gImNhc3QiIHRoZSByZXN1bHQKdG8gbmF0aXZlIHBocCBkYXRhIHR5cGVzLiBFeDoKCiRzcWwgPSAiSU5TRVJUIElOVE8gdGFibGUgVkFMVUVTICh7e2ludCg0KX19LCB7e2Jvb2x9fSwge3tkYXRlKCdZLW0tZCcpfX0pIjsKJHJvdyA9ICRkYi0+cXVlcnkoJHNxbCwgYXJyYXkoOCwgJ3QnLCAnMjAwMS0wNC0xJykpOwoKRm9ybWF0OiB7ezxkYXRhX3R5cGU+KDxwYXJhbTE+LDxwYXJhbTI+KX19CgoicGFyYW0iIGNvdWxkIGJlIHRoZSBtYXggbGVuZ2h0IG9mIHRoZSBkYXRhLCBkYXRlIGZvcm1hdHMsIG5vdF9udWxsCmNoZWNrcyBvciBkZWZhdWx0IHZhbHVlcy4KCk90aGVyIGlkZWFzIGNvdWxkIGJlOgoKMSkKJHNxbCA9ICJJTlNFUlQgSU5UTyB0YWJsZSBWQUxVRVMgKD8sID8sID8pIjsKJHN0aCA9ICRkYi0+cHJlcGFyZSgkc3FsLCBhcnJheSgnaW50KDQpJywgJ2Jvb2wnLCAnZGF0ZScpOwokcmVzID0gJGRiLT5leGVjdXRlKCRzdGgsIGFycmF5KCRhLCAkYiwgJGMpOwoKMikKJHNxbCA9ICJJTlNFUlQgSU5UTyB0YWJsZSBWQUxVRVMgKD8sID8sID8pIjsKJHBhcmFtcyA9IGFycmF5KAoJMCA9PiBhcnJheSgkYSwgJ2ludCg0KScpLAoJMSA9PiBhcnJheSgkYiwgJ2Jvb2wnKQopOwokcmVzID0gJGRiLT5xdWVyeSgkc3FsLCAkcGFyYW1zKTsKCkF1dG8gY29ubmVjdCBmZWF0dXJlIChUb21hcykKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpBZGQgdGhlIGFiaWxpdHkgdG8gY3JlYXRlIGZvciBleGFtcGxlIGEgbGlnaHQgYW5kIGR1bXAgREIgb2JqZWN0IHdoaWNoCndpbGwgb25seSBzZXQgdXAgdGhlIGNvbm5lY3Rpb24gd2hlbiBuZWVkZWQuIFdpdGggdGhhdCBwZW9wbGUgY291bGQKY3JlYXRlIHRoZSBEQiBvYmplY3QgaW4gYSBjb21tb24gcHJlcGVuZCBvciBkZWZhdWx0IGZpbGUgd2l0aG91dCB0aGUKbmVlZCB0byB3YXN0ZSBzeXN0ZW0gcmVzb3VyY2VzIGlmIHRoZSB1c2Ugb2YgdGhlIGRhdGFiYXNlIGlzIGZpbmFsbHkKbm90IG5lZWRlZC4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/doc/MAINTAINERS</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[TWFpbnRhaW5lcnMgZm9yIERCIGRhdGFiYXNlIGJhY2tlbmRzL2RyaXZlcnM6CgpkYmFzZSAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgpmYnNxbCAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogICAgICAgICAgRnJhbmsgTS4gS3JvbWFubiA8ZnJhbmtAa3JvbWFubi5pbmZvPgppYmFzZSAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgppZnggICAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0Pgptc3FsICAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0Pgptc3NxbCAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgpteXNxbCAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgpteXNxbGkgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgpvY2k4ICAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgpvZGJjICAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgpwZ3NxbCAgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgpzcWxpdGUgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgpzeWJhc2UgIDogRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0Pgo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/doc/STATUS</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[U1RBVFVTIE9GIFRIRSBQRUFSIERCIFBBQ0tBR0UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCiRJZDogU1RBVFVTLHYgMS4zMyAyMDA1LzAyLzIyIDE1OjQ1OjM2IGRhbmllbGMgRXhwICQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpEQiBEcml2ZXIgRmVhdHVyZSBNYXRyaXgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClN5bWJvbHM6CiAgeCAgPSAgaW1wbGVtZW50ZWQsIGJ1dCB3aXRob3V0IHRlc3RzCiAgdCAgPSAgaW1wbGVtZW50ZWQsIGJ1dCBvbmUgb3IgbW9yZSB0ZXN0cyBmYWlsCiAgVCAgPSAgaW1wbGVtZW50ZWQsIHBhc3NpbmcgYWxsIHRlc3RzCiAgZSAgPSAgZW11bGF0ZWQsIHdpdGhvdXQgdGVzdHMKICBsICA9ICBlbXVsYXRlZCwgYnV0IG9uZSBvciBtb3JlIHRlc3RzIGZhaWwKICBFICA9ICBlbXVsYXRlZCwgcGFzc2luZyBhbGwgdGVzdHMKICBuICA9ICByZXR1cm5zICJub3QgY2FwYWJsZSIKICAtICA9ICBubyBpbXBsZW1lbnRhdGlvbiBvZiB0aGlzIGZlYXR1cmUgb3Igc3RhdHVzIHVua25vd24KCiAgICAgICAgICAgICAgICAgICAgZmJzcWwgICAgICBpZnggICAgICBtc3NxbCAgICAgbXlzcWxpICAgICBvZGJjICAgICBzcWxpdGUKRkVBVFVSRSAgICAgICAgZGJhc2UgIHwgIGliYXNlICB8ICBtc3FsICAgfCAgbXlzcWwgIHwgICBvY2k4ICB8ICBwZ3NxbCAgfCAgc3liYXNlCnNpbXBsZVF1ZXJ5ICAgICAgLSAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVApudW1Db2xzICAgICAgICAgIHggICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQKbnVtUm93cyAgICAgICAgICB4ICAgIFQgICAgRSAgICBFICAgIFQgICAgVCAgICBUICAgIFQgICAgRSAgICBUICAgIFQgICAgVCAgICBUCmVycm9yTmF0aXZlICAgICAgbiAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIEUgICAgVApwcmVwYXJlL2V4ZWN1dGUgIGUgICAgRSAgICBUICAgIEUgICAgRSAgICBFICAgIEUgICAgRSAgICBUICAgIEUgICAgRSAgICBFICAgIEUKc2VxdWVuY2VzICAgICAgICBuICAgIFQgICAgVCAgICBuICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBFICAgIFQgICAgRSAgICBUCmFmZmVjdGVkUm93cyAgICAgbiAgICBUICAgIEUgICAgRSAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBFICAgIFQgICAgVApmZXRjaCBtb2RlcyAgICAgIHggICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQKZmV0Y2ggcm93IGJ5IG5vICB4ICAgIHggICAgbiAgICBuICAgIHggICAgeCAgICB4ICAgIHggICAgbiAgICB4ICAgIHggICAgeCAgICB4CnRyYW5zYWN0aW9ucyAgICAgLSAgICBUICAgIFQgICAgVCAgICBuICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIG4gICAgVAphdXRvLWNvbW1pdCAgICAgIG4gICAgVCAgICBFICAgIEUgICAgbiAgICBFICAgIEUgICAgRSAgICBFICAgIFQgICAgRSAgICBuICAgIEUKZXJyb3IgbWFwcGluZyAgICAtICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUCnRhYmxlSW5mbyAgICAgICAgeCAgICBUICAgIFQgICAgdCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVAoKZ2V0TGlzdE9mKCkgVFlQRVMKdGFibGVzICAgICAgICAgICAtICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUICAgIFQgICAgVCAgICBUCnZpZXdzICAgICAgICAgICAgLSAgICBUICAgIFQgICAgLSAgICAtICAgIFQgICAgLSAgICAtICAgIC0gICAgVCAgICBUICAgIC0gICAgVAp1c2VycyAgICAgICAgICAgIC0gICAgVCAgICBUICAgIC0gICAgLSAgICAtICAgIFQgICAgVCAgICAtICAgIC0gICAgVCAgICAtICAgIC0KZGF0YWJhc2VzICAgICAgICAtICAgIC0gICAgLSAgICAtICAgIFQgICAgLSAgICBUICAgIFQgICAgLSAgICBUICAgIFQgICAgLSAgICAtCmZ1bmN0aW9ucyAgICAgICAgLSAgICBUICAgIC0gICAgLSAgICAtICAgIC0gICAgLSAgICAtICAgIC0gICAgLSAgICBUICAgIC0gICAgLQpzeW5vbnltcyAgICAgICAgIC0gICAgLSAgICAtICAgIC0gICAgLSAgICAtICAgIC0gICAgLSAgICBUICAgIC0gICAgLSAgICAtICAgIC0KCgpUZXN0IENvbmZvcm1hbmNlCi0tLS0tLS0tLS0tLS0tLS0KU3ltYm9sczoKICAgIG8gID0gIFRlc3QgcGFzc2VkCiAgICBYICA9ICBUZXN0IGZhaWxlZAogICAgTCAgPSAgU29tZSBwb3J0aW9ucyBvZiB0aGUgdGVzdCBmYWlsZWQgZHVlIHRvIGxpbWl0YXRpb25zIGluIFBIUCBvciBEQk1TCiAgICBuICA9ICBUZXN0IHJldHVybnMgIm5vdCBjYXBhYmxlIgogICAgLSAgPSAgTm90IHRlc3RlZAoKICAgICAgICAgICAgICAgICAgICBmYnNxbCAgICAgIGlmeCAgICAgIG1zc3FsICAgICBteXNxbGkgICAgIG9kYmMgICAgIHNxbGl0ZQogICAgICAgICAgICAgICBkYmFzZSAgfCAgaWJhc2UgIHwgIG1zcWwgICB8ICBteXNxbCAgfCAgIG9jaTggIHwgIHBnc3FsICB8ICBzeWJhc2UKMDFjb25uZWN0ICAgICAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvCjAyZmV0Y2ggICAgICAgICAgLSAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbwowM3NpbXBsZXF1ZXJ5ICAgIC0gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8KMDRudW1jb2xzICAgICAgICAtICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvCjA1c2VxdWVuY2VzICAgICAgLSAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbwowNnByZXBleGVjICAgICAgIC0gICAgbyAgICBvICAgIG8gICAgTCAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8KMDhhZmZlY3RlZHJvd3MgICAtICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvCjA5bnVtcm93cyAgICAgICAgLSAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbwoxMGVycm9ybWFwICAgICAgIC0gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8KMTF0cmFuc2FjdGlvbnMgICAtICAgIG8gICAgbyAgICBvICAgIG4gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbiAgICBvCjEzbGltaXQgICAgICAgICAgLSAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbwoxNGZldGNobW9kZV9vYmplIC0gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8KMTVxdW90ZSAgICAgICAgICAtICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvCjE2dGFibGVpbmZvICAgICAgLSAgICBvICAgIG8gICAgTCAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbwoxN3F1ZXJ5ICAgICAgICAgIC0gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8KMThnZXQgICAgICAgICAgICAtICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvCjE5Z2V0bGlzdG9mICAgICAgLSAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbyAgICBvICAgIG8gICAgbwoKCkRCTVMgVmVyc2lvbnMgVGVzdGVkCi0tLS0tLS0tLS0tLS0tLS0tLS0tCmRiYXNlICAgbi9hCmZic3FsICAgNC4xLjYKaWJhc2UgICBGaXJlYmlyZCAxLjUuMSAgKFBIUCA1IG9ubHkpCmlmeCAgICAgNy4yIFN0YW5kYXJkIEVkdGl0aW9uCm1zcWwgICAgMy42ICAoUEhQIHNuYXBzaG90cyBkYXRlZCAyMDA1LTAyLTE4KQptc3NxbCAgIDguMC43NjAKbXlzcWwgICA0LjAuMjEKbXlzcWxpICA0LjEuNSAgKFBIUCA1IG9ubHkpCm9jaTggICAgOS4yCm9kYmMgICAgREIyIEVTRSA4LjEgYW5kIE1TIEFjY2VzcyAyMDAwCnBnc3FsICAgNy40LjEgYW5kIDguMC4xCnNxbGl0ZSAgUEhQIDU6IGV4dGVuc2lvbi4gIFBIUCA0OiBQRUNMIHNuYXBzaG90LgpzeWJhc2UgIEFTRSAxMi41LjMKClRlc3RzIHdlcmUgcGVyZm9ybWVkIHVuZGVyIGJvdGggb2YgdGhlIGZvbGxvd2luZyBQSFAgdmVyc2lvbnMKdW5sZXMgb3RoZXJ3aXNlIG5vdGVkOgogICAgNC4zLjExLWRldiBkYXRlZCAyMDA1LTAyLTIyCiAgICA1LjEuMC1kZXYgZGF0ZWQgMjAwNS0wMi0yMgo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/doc/TESTERS</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PT09PT09PT09PT09PT09PT09PQpIT1cgVE8gVEVTVCBQRUFSIERCCj09PT09PT09PT09PT09PT09PT0KCiRJZDogVEVTVEVSUyx2IDEuMjAgMjAwNS8wMi8xNiAwNjozMzoxMiBkYW5pZWxjIEV4cCAkCgoKSU5UUk9EVUNUSU9OCj09PT09PT09PT09PQoKVGhlc2UgYXJlIGluc3RydWN0aW9ucyBmb3IgdGVzdGluZyBQRUFSIERCIG9uIGEgV2luZG93cyBtYWNoaW5lIHVzaW5nIGEKQ3lnd2luIEJhc2ggc2hlbGwuICBBZGp1c3QgdGhlIHBhdGhzIGFuZCBjb21tYW5kcyB0byBtYXRjaCB5b3VyIHN5c3RlbS4KVGhpcyBjb25maWd1cmF0aW9uIGlzIHVzZWQgYmVjYXVzZSB0aGVzZSBwcmVjaXNlIHN0ZXBzIGFyZSBrbm93biB0byB3b3JrLgoKTk9URTogIFlvdSBtdXN0IGxvZyBvbiBhcyBhIHVzZXIgd2hpY2ggaGFzIHBlcm1pc3Npb25zIHRvIG1vZGlmeSB0aGUKY29udGVudHMgb2YgeW91ciBQSFAgZXhlY3V0YWJsZSdzIGRpcmVjdG9yeS4gIFRoaXMgaXMgbmVjZXNzYXJ5IGZvciBib3RoCmNvbmZpZ3VyaW5nIEFORCBydW5uaW5nIHRoZSB0ZXN0IHN5c3RlbS4KCgpJTlNUQUxMQVRJT04KPT09PT09PT09PT09CgpPYnRhaW4gUEhQJ3MgVGVzdCBGcmFtZXdvcmsKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCklmIHlvdSBkb24ndCBoYXZlIFBIUCdzIHRlc3QgZnJhbWV3b3JrLCB5b3UgbmVlZCB0byBvYnRhaW4gaXQuICBUaGVzZQpzdGVwcyBpbmNsdWRlIGNoYW5naW5nIHRoZSB3b3JraW5nIGRpcmVjdG9yeSwgZG93bmxvYWRpbmcgcnVuLXRlc3RzLnBocAp2aWEgQ1ZTIGFuZCBjb3B5aW5nIHRoZSBmaWxlIGludG8gcGxhY2UuICBDaGFuZ2UgdGhlIHJldmlzaW9uIGZsYWcgaW4gdGhlCkNWUyBjb21tYW5kIGFzIGFwcHJvcHJpYXRlIGZvciB5b3VyIHByZXNlbnQgdmVyc2lvbiBvZiBQSFAuCgogY2QgYzovcHJvZ3JhfjEvcGhwCiBjdnMgLWQgOnBzZXJ2ZXI6Y3ZzcmVhZEBjdnMucGhwLm5ldDovcmVwb3NpdG9yeSBsb2dpbiAgICMgcGFzc3dvcmQgaXMgcGhwZmkKIGN2cyAtZCA6cHNlcnZlcjpjdnNyZWFkQGN2cy5waHAubmV0Oi9yZXBvc2l0b3J5IGNvIC1yIFBIUF80XzMgXAogICAgIC1kIHRlc3QgcGhwLXNyYy9ydW4tdGVzdHMucGhwCiBjcCB0ZXN0L3J1bi10ZXN0cy5waHAgLgogcm0gLXJmIHRlc3QKCgpPYnRhaW4gREIgYW5kIGl0cyBUZXN0IEZyYW1ld29yawotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoqIElGIFBFQVIgREIgSVMgQUxSRUFEWSBJTlNUQUxMRUQ6CgogIElmIHlvdSBoYXZlIFBFQVIgREIgaW5zdGFsbGVkIGFscmVhZHksIGdvb2QuICBUaGUgdGVzdCBzdWl0ZQogIGlzIGluIHBsYWNlLiAgT3BlbiB1cCBhIGNvbW1hbmQvc2hlbGwgcHJvbXB0IGFuZCBtb3ZlIGludG8KICB0aGUgdGVzdCBkaXJlY3RvcnkuCgogICBjZCA8cGF0aCB0byBwZWFyIGluc2FsbD4vdGVzdHMvREIvdGVzdHMKCiogVklBIEEgTkVXIElOU1RBTExBVElPTiBVU0lORyBUSEUgUEVBUiBJTlNUQUxMRVI6CgogIEluc3RhbGxpbmcgUEVBUiBoYXMgZ290dGVuIGZhaXJseSBlYXN5LiAgRm9sbG93IHRoZSBpbnN0cnVjdGlvbnMKICBmcm9tIHRoZSBtYW51YWw6ICBodHRwOi8vcGVhci5waHAubmV0L21hbnVhbC9lbi9pbnN0YWxsYXRpb24ucGhwCiAgT25jZSBQRUFSIGFuZCBEQiBhcmUgaW5zdGFsbGVkLCBtb3ZlIHRvIHRoZSB0ZXN0IGRpcmVjdG9yeS4KCiAgIGNkIHBlYXIvdGVzdHMvREIvdGVzdHMKCiogVklBIENWUzoKCiAgQ3JlYXRlIGEgbG9jYXRpb24gdG8gc3RvcmUgdGhlIHRlc3QgaW5zdGFsbGF0aW9uIG9mIERCIGFuZCBpdHMKICB0ZXN0IHNjcmlwdHMuCgogICBta2RpciBkOi9wZWFydGVzdAogICBjZCBkOi9wZWFydGVzdAogICBjdnMgLWQgOnBzZXJ2ZXI6Y3ZzcmVhZEBjdnMucGhwLm5ldDovcmVwb3NpdG9yeSBjbyAtUCBwZWFyL0RCCgogIFdlIGFzc3VtZSB5b3UgYWxyZWFkeSBoYXZlIHRoZSBQRUFSIGJhc2UgcGFja2FnZSBpbnN0YWxsZWQuICBJZgogIHlvdSBkb24ndCwgeW91IHdpbGwgbmVlZCB0byBkbyBzbywgYnV0IHRoZSBpbnN0cnVjdGlvbnMgZm9yCiAgZG9pbmcgdGhhdCBhcmUgYmV5b25kIHRoZSBzY29wZSBvZiB0aGlzIGRvY3VtZW50LiAgU2VlCiAgaHR0cDovL3BlYXIucGhwLm5ldC9tYW51YWwvZW4vaW5zdGFsbGF0aW9uLnBocCBmb3IgbW9yZSBpbmZvLgoKICBNb3ZlIHRvIHRoZSB0ZXN0IGRpcmVjdG9yeS4KCiAgIGNkIHBlYXIvREIvdGVzdHMKCgpDb3B5IHRoZSBTdGFydGVyIFNoZWxsIFNjcmlwdCBhbmQgRWRpdCB0aGUgUGF0aHMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRvIG1ha2Ugc3RhcnRpbmcgdXAgZWFjaCB0ZXN0IHJ1biBlYXNpZXIsIHdlIGhhdmUgaW5jbHVkZWQgdHdvIHNoZWxsCnNjcmlwdHMuICBUaGUgb3JpZ2luYWwgZmlsZXMgYXJlIG5hbWVkICJydW4uY3ZzIi4gIFRoZXkgbmVlZCB0byBiZQpyZW5hbWVkIHRvICJydW4iIHNvIENWUyB3b24ndCBib3RoZXIgeW91IHdpdGggdHJhY2tpbmcgdGhlbS4gIFRoZW4sCnRoZSBwYXRocyBhbmQgZmlsZSBuYW1lcyBpbiB0aGVtIG5lZWQgdG8gYmUgc2V0IHRvIHRob3NlIHVzZWQgYnkKeW91ciBzeXN0ZW0uCgogY3AgcnVuLmN2cyBydW4KIGNobW9kIDc1NSBydW4KIHZpIHJ1bgoKIGNkIGRyaXZlcgogY3AgcnVuLmN2cyBydW4KIGNobW9kIDc1NSBydW4KIHZpIHJ1bgoKCkNvcHkgdGhlIFNldHVwIEZpbGUgYW5kIEVkaXQgdGhlIERTTidzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClRoZSB0ZXN0IHN1aXRlIGNvbnRhaW5zIGEgZmlsZSB0aGF0IHN0b3JlcyB0aGUgRFNOJ3MgbmVlZGVkIHRvCmNvbm5lY3QgdG8geW91ciBkYXRhYmFzZS4gIFRoZSBvcmlnaW5hbCBmaWxlIGlzICJzZXR1cC5pbmMuY3ZzIgphbmQgaXQgbmVlZHMgdG8gYmUgcmVuYW1lZCAic2V0dXAuaW5jIiBzbyBDVlMgd29uJ3QgdHJhY2sgaXQuClRoZW4geW91J2xsIG5lZWQgdG8gZWRpdCB0aGUgRFNOJ3MgaW4gaXQuCgogY3Agc2V0dXAuaW5jLmN2cyBzZXR1cC5pbmMKIHZpIHNldHVwLmluYwoKClJVTiBUSEUgVEVTVFMKPT09PT09PT09PT09PQoKVG8gcnVuIGFsbCB0ZXN0czogIC4vcnVuClRvIHJ1biBvbmUgdGVzdDogICAuL3J1biA8dGVzdCBmaWxlIG5hbWU+CkV4YW1wbGU6ICAgICAgICAgICAuL3J1biBkYl9wYXJzZWRzbi5waHB0CgoKVGVzdCBUeXBlcyBhbmQgTG9jYXRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQp0ZXN0cyAgICAgICAgICAgICBDb21tb24gUEVBUiBEQiB0ZXN0cwp0ZXN0cy9kcml2ZXIgICAgICBDb21tb24gdGVzdHMgZm9yIGFsbCB0aGUgZHJpdmVycwoKClJlc3VsdHMgYW5kIFdoYXQgVG8gRG8gV2l0aCBUaGVtCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkVhY2ggdGVzdCB0aGF0IGZhaWxzIGdlbmVyYXRlcyBhIC5waHAgKHdoaWNoIHlvdSBjYW4gZXhlY3V0ZSksIGEgLmV4cAoodGhlIGV4cGVjdGVkIG91dHB1dCksIGEgLm91dCAodGhlIHRlc3Qgb3V0cHV0KSBhbmQgYSAuZGlmZiAoYSBkaWZmIC11CmZyb20gdGhlIC5leHAgYW5kIC5vdXQgZmlsZXMpLgoKSWYgeW91IHJ1biB0aGUgdGVzdHMsIHBsZWFzZSByZXBvcnQgb3IgZmlsbCB0aGUgVEVTVCBDT05GT1JNQU5DRSB0YWJsZQppbiB0aGUgU1RBVFVTIGRvY3VtZW50LiAgQmVmb3JlIGFueSBjb21taXQgdG8gQ1ZTIGJlIHN1cmUgdG8gcnVuIHRoZQp0ZXN0cyBhbmQgbm90aGluZyBnb3QgYnJva2VuIHdpdGggdGhlIGNoYW5nZS4KCklmIHlvdSBnZXQgdGhlIG1lc3NhZ2UgIlNLSVAiLCBtZWFucyB0aGF0IHRoZSB0ZXN0IGl0J3Mgbm90IGV4ZWN1dGVkLgpMb29rIGF0IHRoZSBEQi90ZXN0cy9kcml2ZXIvc2tpcGlmLmluYyB0byBzZWUgd2hhdCdzIHRoZSBwcm9ibGVtCihwcm9iYWJseSBhIGNvbm5lY3Rpb24gcHJvYmxlbSkuCgoKREIgVEVTVEVSIE1BVFJJWAo9PT09PT09PT09PT09PT09CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmJzcWwgICAgaWZ4ICAgIG1zc3FsICAgbXlzcWxpICAgb2RiYyAgIHNxbGl0ZQpURVNURVIgICAgICAgICAgICAgICAgICAgICAgZGJhc2UgfCBpYmFzZSB8ICBtc3FsIHwgbXlzcWwgfCAgb2NpOCB8IHBnc3FsIHwgc3liYXNlCkpvaG4gSG9ydG9uICAgICAgICAgICAgICAgICAgIC0gICAtICAgLSAgIFggICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0KVGltIFppY2t1cyAgICAgICAgICAgICAgICAgICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0gICBYICAgLSAgIC0gICAtICAgLQpUaW0gUGFya2luICAgICAgICAgICAgICAgICAgICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIFggICAtICAgLSAgIC0gICAtClBhdWwgR2FyZGluZXIgICAgICAgICAgICAgICAgIC0gICAtICAgLSAgIFggICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0KcGV0ZXJ3YkBpYWZyaWNhLmNvbSAgICAgICAgICAgLSAgIC0gICAtICAgWCAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLQpEYW5pZWwsIEFkYW0gICAgICAgICAgICAgICAgICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIFggICAtICAgLSAgIC0gICAtCnN6aWlAc3ppaXNvZnQuY29tICAgICAgICAgICAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIFi5ICAtICAgLSAgIC0Kam1oM0BsaW51eGZyZWFrLmNvbSAgICAgICAgICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIFggICAtICAgLQpLZXZpbiBIZW5yaWtzb24gICAgICAgICAgICAgICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIFggICAtICAgLSAgIC0gICAtClN0aWcgQmFra2VuICAgICAgICAgICAgICAgICAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIFggICAtICAgLSAgIC0gICBYICAgLSAgIC0KQ2h1Y2sgSGFnZW5idWNoICAgICAgICAgICAgICAgLSAgIC0gICAtICAgLSAgIC0gICBYICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLQpMdWRvdmljbyBNYWdub2NhdmFsbG8gICAgICAgICAtICAgLSAgIFggICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtCkRhbmllbCBDb252aXNzb3IgICAgICAgICAgICAgIFggICBYICAgWCAgIC0gICBYICAgWCAgIFggICBYICAgWCAgIFiyICBYICAgWCAgIFgKCk1JU1NJTkcgVEVTVEVSUyAgICAgICAgICAgICAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0gICAtICAgLSAgIC0KCkNvbW1lbnRzOgoKWzFdOiBPREJDIHVzaW5nIElCTSBEQjIKWzJdOiBPREJDIHVzaW5nIElCTSBEQjIgYW5kIE1TIEFjY2Vzcwo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/PEAR.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLyoqCiAqIFBFQVIsIHRoZSBQSFAgRXh0ZW5zaW9uIGFuZCBBcHBsaWNhdGlvbiBSZXBvc2l0b3J5CiAqCiAqIFBFQVIgY2xhc3MgYW5kIFBFQVJfRXJyb3IgY2xhc3MKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIHBlYXIKICogQHBhY2thZ2UgICAgUEVBUgogKiBAYXV0aG9yICAgICBTdGVybGluZyBIdWdoZXMgPHN0ZXJsaW5nQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIFN0aWcgQmFra2VuIDxzc2JAcGhwLm5ldD4KICogQGF1dGhvciAgICAgVG9tYXMgVi5WLkNveCA8Y294QGlkZWNuZXQuY29tPgogKiBAYXV0aG9yICAgICBHcmVnIEJlYXZlciA8Y2VsbG9nQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNiBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICBDVlM6ICRJZDogUEVBUi5waHAsdiAxLjEwMSAyMDA2LzA0LzI1IDAyOjQxOjAzIGNlbGxvZyBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvUEVBUgogKiBAc2luY2UgICAgICBGaWxlIGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDAuMQogKi8KCi8qKiNAKwogKiBFUlJPUiBjb25zdGFudHMKICovCmRlZmluZSgnUEVBUl9FUlJPUl9SRVRVUk4nLCAgICAgMSk7CmRlZmluZSgnUEVBUl9FUlJPUl9QUklOVCcsICAgICAgMik7CmRlZmluZSgnUEVBUl9FUlJPUl9UUklHR0VSJywgICAgNCk7CmRlZmluZSgnUEVBUl9FUlJPUl9ESUUnLCAgICAgICAgOCk7CmRlZmluZSgnUEVBUl9FUlJPUl9DQUxMQkFDSycsICAxNik7Ci8qKgogKiBXQVJOSU5HOiBvYnNvbGV0ZQogKiBAZGVwcmVjYXRlZAogKi8KZGVmaW5lKCdQRUFSX0VSUk9SX0VYQ0VQVElPTicsIDMyKTsKLyoqI0AtKi8KZGVmaW5lKCdQRUFSX1pFMicsIChmdW5jdGlvbl9leGlzdHMoJ3ZlcnNpb25fY29tcGFyZScpICYmCiAgICAgICAgICAgICAgICAgICAgdmVyc2lvbl9jb21wYXJlKHplbmRfdmVyc2lvbigpLCAiMi1kZXYiLCAiZ2UiKSkpOwoKaWYgKHN1YnN0cihQSFBfT1MsIDAsIDMpID09ICdXSU4nKSB7CiAgICBkZWZpbmUoJ09TX1dJTkRPV1MnLCB0cnVlKTsKICAgIGRlZmluZSgnT1NfVU5JWCcsICAgIGZhbHNlKTsKICAgIGRlZmluZSgnUEVBUl9PUycsICAgICdXaW5kb3dzJyk7Cn0gZWxzZSB7CiAgICBkZWZpbmUoJ09TX1dJTkRPV1MnLCBmYWxzZSk7CiAgICBkZWZpbmUoJ09TX1VOSVgnLCAgICB0cnVlKTsKICAgIGRlZmluZSgnUEVBUl9PUycsICAgICdVbml4Jyk7IC8vIGJsYXRhbnQgYXNzdW1wdGlvbgp9CgovLyBpbnN0YW50IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5CmlmICghZGVmaW5lZCgnUEFUSF9TRVBBUkFUT1InKSkgewogICAgaWYgKE9TX1dJTkRPV1MpIHsKICAgICAgICBkZWZpbmUoJ1BBVEhfU0VQQVJBVE9SJywgJzsnKTsKICAgIH0gZWxzZSB7CiAgICAgICAgZGVmaW5lKCdQQVRIX1NFUEFSQVRPUicsICc6Jyk7CiAgICB9Cn0KCiRHTE9CQUxTWydfUEVBUl9kZWZhdWx0X2Vycm9yX21vZGUnXSAgICAgPSBQRUFSX0VSUk9SX1JFVFVSTjsKJEdMT0JBTFNbJ19QRUFSX2RlZmF1bHRfZXJyb3Jfb3B0aW9ucyddICA9IEVfVVNFUl9OT1RJQ0U7CiRHTE9CQUxTWydfUEVBUl9kZXN0cnVjdG9yX29iamVjdF9saXN0J10gPSBhcnJheSgpOwokR0xPQkFMU1snX1BFQVJfc2h1dGRvd25fZnVuY3MnXSAgICAgICAgID0gYXJyYXkoKTsKJEdMT0JBTFNbJ19QRUFSX2Vycm9yX2hhbmRsZXJfc3RhY2snXSAgICA9IGFycmF5KCk7CgpAaW5pX3NldCgndHJhY2tfZXJyb3JzJywgdHJ1ZSk7CgovKioKICogQmFzZSBjbGFzcyBmb3Igb3RoZXIgUEVBUiBjbGFzc2VzLiAgUHJvdmlkZXMgcnVkaW1lbnRhcnkKICogZW11bGF0aW9uIG9mIGRlc3RydWN0b3JzLgogKgogKiBJZiB5b3Ugd2FudCBhIGRlc3RydWN0b3IgaW4geW91ciBjbGFzcywgaW5oZXJpdCBQRUFSIGFuZCBtYWtlIGEKICogZGVzdHJ1Y3RvciBtZXRob2QgY2FsbGVkIF95b3VyY2xhc3NuYW1lIChzYW1lIG5hbWUgYXMgdGhlCiAqIGNvbnN0cnVjdG9yLCBidXQgd2l0aCBhICJfIiBwcmVmaXgpLiAgQWxzbywgaW4geW91ciBjb25zdHJ1Y3RvciB5b3UKICogaGF2ZSB0byBjYWxsIHRoZSBQRUFSIGNvbnN0cnVjdG9yOiAkdGhpcy0+UEVBUigpOy4KICogVGhlIGRlc3RydWN0b3IgbWV0aG9kIHdpbGwgYmUgY2FsbGVkIHdpdGhvdXQgcGFyYW1ldGVycy4gIE5vdGUgdGhhdAogKiBhdCBpbiBzb21lIFNBUEkgaW1wbGVtZW50YXRpb25zIChzdWNoIGFzIEFwYWNoZSksIGFueSBvdXRwdXQgZHVyaW5nCiAqIHRoZSByZXF1ZXN0IHNodXRkb3duIChpbiB3aGljaCBkZXN0cnVjdG9ycyBhcmUgY2FsbGVkKSBzZWVtcyB0byBiZQogKiBkaXNjYXJkZWQuICBJZiB5b3UgbmVlZCB0byBnZXQgYW55IGRlYnVnIGluZm9ybWF0aW9uIGZyb20geW91cgogKiBkZXN0cnVjdG9yLCB1c2UgZXJyb3JfbG9nKCksIHN5c2xvZygpIG9yIHNvbWV0aGluZyBzaW1pbGFyLgogKgogKiBJTVBPUlRBTlQhIFRvIHVzZSB0aGUgZW11bGF0ZWQgZGVzdHJ1Y3RvcnMgeW91IG5lZWQgdG8gY3JlYXRlIHRoZQogKiBvYmplY3RzIGJ5IHJlZmVyZW5jZTogJG9iaiA9JiBuZXcgUEVBUl9jaGlsZDsKICoKICogQGNhdGVnb3J5ICAgcGVhcgogKiBAcGFja2FnZSAgICBQRUFSCiAqIEBhdXRob3IgICAgIFN0aWcgQmFra2VuIDxzc2JAcGhwLm5ldD4KICogQGF1dGhvciAgICAgVG9tYXMgVi5WLiBDb3ggPGNveEBpZGVjbmV0LmNvbT4KICogQGF1dGhvciAgICAgR3JlZyBCZWF2ZXIgPGNlbGxvZ0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDYgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgUmVsZWFzZTogMS42LjIKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL1BFQVIKICogQHNlZSAgICAgICAgUEVBUl9FcnJvcgogKiBAc2luY2UgICAgICBDbGFzcyBhdmFpbGFibGUgc2luY2UgUEhQIDQuMC4yCiAqIEBsaW5rICAgICAgICBodHRwOi8vcGVhci5waHAubmV0L21hbnVhbC9lbi9jb3JlLnBlYXIucGhwI2NvcmUucGVhci5wZWFyCiAqLwpjbGFzcyBQRUFSCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgLyoqCiAgICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBpbnRlcm5hbCBkZWJ1ZyBtZXNzYWdlcy4KICAgICAqCiAgICAgKiBAdmFyICAgICBib29sCiAgICAgKiBAYWNjZXNzICBwcml2YXRlCiAgICAgKi8KICAgIHZhciAkX2RlYnVnID0gZmFsc2U7CgogICAgLyoqCiAgICAgKiBEZWZhdWx0IGVycm9yIG1vZGUgZm9yIHRoaXMgb2JqZWN0LgogICAgICoKICAgICAqIEB2YXIgICAgIGludAogICAgICogQGFjY2VzcyAgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJF9kZWZhdWx0X2Vycm9yX21vZGUgPSBudWxsOwoKICAgIC8qKgogICAgICogRGVmYXVsdCBlcnJvciBvcHRpb25zIHVzZWQgZm9yIHRoaXMgb2JqZWN0IHdoZW4gZXJyb3IgbW9kZQogICAgICogaXMgUEVBUl9FUlJPUl9UUklHR0VSLgogICAgICoKICAgICAqIEB2YXIgICAgIGludAogICAgICogQGFjY2VzcyAgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJF9kZWZhdWx0X2Vycm9yX29wdGlvbnMgPSBudWxsOwoKICAgIC8qKgogICAgICogRGVmYXVsdCBlcnJvciBoYW5kbGVyIChjYWxsYmFjaykgZm9yIHRoaXMgb2JqZWN0LCBpZiBlcnJvciBtb2RlIGlzCiAgICAgKiBQRUFSX0VSUk9SX0NBTExCQUNLLgogICAgICoKICAgICAqIEB2YXIgICAgIHN0cmluZwogICAgICogQGFjY2VzcyAgcHJpdmF0ZQogICAgICovCiAgICB2YXIgJF9kZWZhdWx0X2Vycm9yX2hhbmRsZXIgPSAnJzsKCiAgICAvKioKICAgICAqIFdoaWNoIGNsYXNzIHRvIHVzZSBmb3IgZXJyb3Igb2JqZWN0cy4KICAgICAqCiAgICAgKiBAdmFyICAgICBzdHJpbmcKICAgICAqIEBhY2Nlc3MgIHByaXZhdGUKICAgICAqLwogICAgdmFyICRfZXJyb3JfY2xhc3MgPSAnUEVBUl9FcnJvcic7CgogICAgLyoqCiAgICAgKiBBbiBhcnJheSBvZiBleHBlY3RlZCBlcnJvcnMuCiAgICAgKgogICAgICogQHZhciAgICAgYXJyYXkKICAgICAqIEBhY2Nlc3MgIHByaXZhdGUKICAgICAqLwogICAgdmFyICRfZXhwZWN0ZWRfZXJyb3JzID0gYXJyYXkoKTsKCiAgICAvLyB9fX0KCiAgICAvLyB7e3sgY29uc3RydWN0b3IKCiAgICAvKioKICAgICAqIENvbnN0cnVjdG9yLiAgUmVnaXN0ZXJzIHRoaXMgb2JqZWN0IGluCiAgICAgKiAkX1BFQVJfZGVzdHJ1Y3Rvcl9vYmplY3RfbGlzdCBmb3IgZGVzdHJ1Y3RvciBlbXVsYXRpb24gaWYgYQogICAgICogZGVzdHJ1Y3RvciBvYmplY3QgZXhpc3RzLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJGVycm9yX2NsYXNzICAob3B0aW9uYWwpIHdoaWNoIGNsYXNzIHRvIHVzZSBmb3IKICAgICAqICAgICAgICBlcnJvciBvYmplY3RzLCBkZWZhdWx0cyB0byBQRUFSX0Vycm9yLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBQRUFSKCRlcnJvcl9jbGFzcyA9IG51bGwpCiAgICB7CiAgICAgICAgJGNsYXNzbmFtZSA9IHN0cnRvbG93ZXIoZ2V0X2NsYXNzKCR0aGlzKSk7CiAgICAgICAgaWYgKCR0aGlzLT5fZGVidWcpIHsKICAgICAgICAgICAgcHJpbnQgIlBFQVIgY29uc3RydWN0b3IgY2FsbGVkLCBjbGFzcz0kY2xhc3NuYW1lXG4iOwogICAgICAgIH0KICAgICAgICBpZiAoJGVycm9yX2NsYXNzICE9PSBudWxsKSB7CiAgICAgICAgICAgICR0aGlzLT5fZXJyb3JfY2xhc3MgPSAkZXJyb3JfY2xhc3M7CiAgICAgICAgfQogICAgICAgIHdoaWxlICgkY2xhc3NuYW1lICYmIHN0cmNhc2VjbXAoJGNsYXNzbmFtZSwgInBlYXIiKSkgewogICAgICAgICAgICAkZGVzdHJ1Y3RvciA9ICJfJGNsYXNzbmFtZSI7CiAgICAgICAgICAgIGlmIChtZXRob2RfZXhpc3RzKCR0aGlzLCAkZGVzdHJ1Y3RvcikpIHsKICAgICAgICAgICAgICAgIGdsb2JhbCAkX1BFQVJfZGVzdHJ1Y3Rvcl9vYmplY3RfbGlzdDsKICAgICAgICAgICAgICAgICRfUEVBUl9kZXN0cnVjdG9yX29iamVjdF9saXN0W10gPSAmJHRoaXM7CiAgICAgICAgICAgICAgICBpZiAoIWlzc2V0KCRHTE9CQUxTWydfUEVBUl9TSFVURE9XTl9SRUdJU1RFUkVEJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJfc2h1dGRvd25fZnVuY3Rpb24oIl9QRUFSX2NhbGxfZGVzdHJ1Y3RvcnMiKTsKICAgICAgICAgICAgICAgICAgICAkR0xPQkFMU1snX1BFQVJfU0hVVERPV05fUkVHSVNURVJFRCddID0gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGNsYXNzbmFtZSA9IGdldF9wYXJlbnRfY2xhc3MoJGNsYXNzbmFtZSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZGVzdHJ1Y3RvcgoKICAgIC8qKgogICAgICogRGVzdHJ1Y3RvciAodGhlIGVtdWxhdGVkIHR5cGUgb2YuLi4pLiAgRG9lcyBub3RoaW5nIHJpZ2h0IG5vdywKICAgICAqIGJ1dCBpcyBpbmNsdWRlZCBmb3IgZm9yd2FyZCBjb21wYXRpYmlsaXR5LCBzbyBzdWJjbGFzcwogICAgICogZGVzdHJ1Y3RvcnMgc2hvdWxkIGFsd2F5cyBjYWxsIGl0LgogICAgICoKICAgICAqIFNlZSB0aGUgbm90ZSBpbiB0aGUgY2xhc3MgZGVzY2lwdGlvbiBhYm91dCBvdXRwdXQgZnJvbQogICAgICogZGVzdHJ1Y3RvcnMuCiAgICAgKgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBmdW5jdGlvbiBfUEVBUigpIHsKICAgICAgICBpZiAoJHRoaXMtPl9kZWJ1ZykgewogICAgICAgICAgICBwcmludGYoIlBFQVIgZGVzdHJ1Y3RvciBjYWxsZWQsIGNsYXNzPSVzXG4iLCBzdHJ0b2xvd2VyKGdldF9jbGFzcygkdGhpcykpKTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0U3RhdGljUHJvcGVydHkoKQoKICAgIC8qKgogICAgKiBJZiB5b3UgaGF2ZSBhIGNsYXNzIHRoYXQncyBtb3N0bHkvZW50aXJlbHkgc3RhdGljLCBhbmQgeW91IG5lZWQgc3RhdGljCiAgICAqIHByb3BlcnRpZXMsIHlvdSBjYW4gdXNlIHRoaXMgbWV0aG9kIHRvIHNpbXVsYXRlIHRoZW0uIEVnLiBpbiB5b3VyIG1ldGhvZChzKQogICAgKiBkbyB0aGlzOiAkbXlWYXIgPSAmUEVBUjo6Z2V0U3RhdGljUHJvcGVydHkoJ215Y2xhc3MnLCAnbXlWYXInKTsKICAgICogWW91IE1VU1QgdXNlIGEgcmVmZXJlbmNlLCBvciB0aGV5IHdpbGwgbm90IHBlcnNpc3QhCiAgICAqCiAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAqIEBwYXJhbSAgc3RyaW5nICRjbGFzcyAgVGhlIGNhbGxpbmcgY2xhc3NuYW1lLCB0byBwcmV2ZW50IGNsYXNoZXMKICAgICogQHBhcmFtICBzdHJpbmcgJHZhciAgICBUaGUgdmFyaWFibGUgdG8gcmV0cmlldmUuCiAgICAqIEByZXR1cm4gbWl4ZWQgICBBIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUuIElmIG5vdCBzZXQgaXQgd2lsbCBiZQogICAgKiAgICAgICAgICAgICAgICAgYXV0byBpbml0aWFsaXNlZCB0byBOVUxMLgogICAgKi8KICAgIGZ1bmN0aW9uICZnZXRTdGF0aWNQcm9wZXJ0eSgkY2xhc3MsICR2YXIpCiAgICB7CiAgICAgICAgc3RhdGljICRwcm9wZXJ0aWVzOwogICAgICAgIGlmICghaXNzZXQoJHByb3BlcnRpZXNbJGNsYXNzXSkpIHsKICAgICAgICAgICAgJHByb3BlcnRpZXNbJGNsYXNzXSA9IGFycmF5KCk7CiAgICAgICAgfQogICAgICAgIGlmICghYXJyYXlfa2V5X2V4aXN0cygkdmFyLCAkcHJvcGVydGllc1skY2xhc3NdKSkgewogICAgICAgICAgICAkcHJvcGVydGllc1skY2xhc3NdWyR2YXJdID0gbnVsbDsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRwcm9wZXJ0aWVzWyRjbGFzc11bJHZhcl07CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcmVnaXN0ZXJTaHV0ZG93bkZ1bmMoKQoKICAgIC8qKgogICAgKiBVc2UgdGhpcyBmdW5jdGlvbiB0byByZWdpc3RlciBhIHNodXRkb3duIG1ldGhvZCBmb3Igc3RhdGljCiAgICAqIGNsYXNzZXMuCiAgICAqCiAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAqIEBwYXJhbSAgbWl4ZWQgJGZ1bmMgIFRoZSBmdW5jdGlvbiBuYW1lIChvciBhcnJheSBvZiBjbGFzcy9tZXRob2QpIHRvIGNhbGwKICAgICogQHBhcmFtICBtaXhlZCAkYXJncyAgVGhlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBmdW5jdGlvbgogICAgKiBAcmV0dXJuIHZvaWQKICAgICovCiAgICBmdW5jdGlvbiByZWdpc3RlclNodXRkb3duRnVuYygkZnVuYywgJGFyZ3MgPSBhcnJheSgpKQogICAgewogICAgICAgIC8vIGlmIHdlIGFyZSBjYWxsZWQgc3RhdGljYWxseSwgdGhlcmUgaXMgYSBwb3RlbnRpYWwKICAgICAgICAvLyB0aGF0IG5vIHNodXRkb3duIGZ1bmMgaXMgcmVnaXN0ZXJlZC4gIEJ1ZyAjNjQ0NQogICAgICAgIGlmICghaXNzZXQoJEdMT0JBTFNbJ19QRUFSX1NIVVRET1dOX1JFR0lTVEVSRUQnXSkpIHsKICAgICAgICAgICAgcmVnaXN0ZXJfc2h1dGRvd25fZnVuY3Rpb24oIl9QRUFSX2NhbGxfZGVzdHJ1Y3RvcnMiKTsKICAgICAgICAgICAgJEdMT0JBTFNbJ19QRUFSX1NIVVRET1dOX1JFR0lTVEVSRUQnXSA9IHRydWU7CiAgICAgICAgfQogICAgICAgICRHTE9CQUxTWydfUEVBUl9zaHV0ZG93bl9mdW5jcyddW10gPSBhcnJheSgkZnVuYywgJGFyZ3MpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGlzRXJyb3IoKQoKICAgIC8qKgogICAgICogVGVsbCB3aGV0aGVyIGEgdmFsdWUgaXMgYSBQRUFSIGVycm9yLgogICAgICoKICAgICAqIEBwYXJhbSAgIG1peGVkICRkYXRhICAgdGhlIHZhbHVlIHRvIHRlc3QKICAgICAqIEBwYXJhbSAgIGludCAgICRjb2RlICAgaWYgJGRhdGEgaXMgYW4gZXJyb3Igb2JqZWN0LCByZXR1cm4gdHJ1ZQogICAgICogICAgICAgICAgICAgICAgICAgICAgICBvbmx5IGlmICRjb2RlIGlzIGEgc3RyaW5nIGFuZAogICAgICogICAgICAgICAgICAgICAgICAgICAgICAkb2JqLT5nZXRNZXNzYWdlKCkgPT0gJGNvZGUgb3IKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgJGNvZGUgaXMgYW4gaW50ZWdlciBhbmQgJG9iai0+Z2V0Q29kZSgpID09ICRjb2RlCiAgICAgKiBAYWNjZXNzICBwdWJsaWMKICAgICAqIEByZXR1cm4gIGJvb2wgICAgdHJ1ZSBpZiBwYXJhbWV0ZXIgaXMgYW4gZXJyb3IKICAgICAqLwogICAgZnVuY3Rpb24gaXNFcnJvcigkZGF0YSwgJGNvZGUgPSBudWxsKQogICAgewogICAgICAgIGlmIChpc19hKCRkYXRhLCAnUEVBUl9FcnJvcicpKSB7CiAgICAgICAgICAgIGlmIChpc19udWxsKCRjb2RlKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgIH0gZWxzZWlmIChpc19zdHJpbmcoJGNvZGUpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJGRhdGEtPmdldE1lc3NhZ2UoKSA9PSAkY29kZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiAkZGF0YS0+Z2V0Q29kZSgpID09ICRjb2RlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBzZXRFcnJvckhhbmRsaW5nKCkKCiAgICAvKioKICAgICAqIFNldHMgaG93IGVycm9ycyBnZW5lcmF0ZWQgYnkgdGhpcyBvYmplY3Qgc2hvdWxkIGJlIGhhbmRsZWQuCiAgICAgKiBDYW4gYmUgaW52b2tlZCBib3RoIGluIG9iamVjdHMgYW5kIHN0YXRpY2FsbHkuICBJZiBjYWxsZWQKICAgICAqIHN0YXRpY2FsbHksIHNldEVycm9ySGFuZGxpbmcgc2V0cyB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgZm9yIGFsbAogICAgICogUEVBUiBvYmplY3RzLiAgSWYgY2FsbGVkIGluIGFuIG9iamVjdCwgc2V0RXJyb3JIYW5kbGluZyBzZXRzCiAgICAgKiB0aGUgZGVmYXVsdCBiZWhhdmlvdXIgZm9yIHRoYXQgb2JqZWN0LgogICAgICoKICAgICAqIEBwYXJhbSBpbnQgJG1vZGUKICAgICAqICAgICAgICBPbmUgb2YgUEVBUl9FUlJPUl9SRVRVUk4sIFBFQVJfRVJST1JfUFJJTlQsCiAgICAgKiAgICAgICAgUEVBUl9FUlJPUl9UUklHR0VSLCBQRUFSX0VSUk9SX0RJRSwKICAgICAqICAgICAgICBQRUFSX0VSUk9SX0NBTExCQUNLIG9yIFBFQVJfRVJST1JfRVhDRVBUSU9OLgogICAgICoKICAgICAqIEBwYXJhbSBtaXhlZCAkb3B0aW9ucwogICAgICogICAgICAgIFdoZW4gJG1vZGUgaXMgUEVBUl9FUlJPUl9UUklHR0VSLCB0aGlzIGlzIHRoZSBlcnJvciBsZXZlbCAob25lCiAgICAgKiAgICAgICAgb2YgRV9VU0VSX05PVElDRSwgRV9VU0VSX1dBUk5JTkcgb3IgRV9VU0VSX0VSUk9SKS4KICAgICAqCiAgICAgKiAgICAgICAgV2hlbiAkbW9kZSBpcyBQRUFSX0VSUk9SX0NBTExCQUNLLCB0aGlzIHBhcmFtZXRlciBpcyBleHBlY3RlZAogICAgICogICAgICAgIHRvIGJlIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBvciBtZXRob2QuICBBIGNhbGxiYWNrCiAgICAgKiAgICAgICAgZnVuY3Rpb24gaXMgYSBzdHJpbmcgd2l0aCB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24sIGEKICAgICAqICAgICAgICBjYWxsYmFjayBtZXRob2QgaXMgYW4gYXJyYXkgb2YgdHdvIGVsZW1lbnRzOiB0aGUgZWxlbWVudAogICAgICogICAgICAgIGF0IGluZGV4IDAgaXMgdGhlIG9iamVjdCwgYW5kIHRoZSBlbGVtZW50IGF0IGluZGV4IDEgaXMKICAgICAqICAgICAgICB0aGUgbmFtZSBvZiB0aGUgbWV0aG9kIHRvIGNhbGwgaW4gdGhlIG9iamVjdC4KICAgICAqCiAgICAgKiAgICAgICAgV2hlbiAkbW9kZSBpcyBQRUFSX0VSUk9SX1BSSU5UIG9yIFBFQVJfRVJST1JfRElFLCB0aGlzIGlzCiAgICAgKiAgICAgICAgYSBwcmludGYgZm9ybWF0IHN0cmluZyB1c2VkIHdoZW4gcHJpbnRpbmcgdGhlIGVycm9yCiAgICAgKiAgICAgICAgbWVzc2FnZS4KICAgICAqCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHJldHVybiB2b2lkCiAgICAgKiBAc2VlIFBFQVJfRVJST1JfUkVUVVJOCiAgICAgKiBAc2VlIFBFQVJfRVJST1JfUFJJTlQKICAgICAqIEBzZWUgUEVBUl9FUlJPUl9UUklHR0VSCiAgICAgKiBAc2VlIFBFQVJfRVJST1JfRElFCiAgICAgKiBAc2VlIFBFQVJfRVJST1JfQ0FMTEJBQ0sKICAgICAqIEBzZWUgUEVBUl9FUlJPUl9FWENFUFRJT04KICAgICAqCiAgICAgKiBAc2luY2UgUEhQIDQuMC41CiAgICAgKi8KCiAgICBmdW5jdGlvbiBzZXRFcnJvckhhbmRsaW5nKCRtb2RlID0gbnVsbCwgJG9wdGlvbnMgPSBudWxsKQogICAgewogICAgICAgIGlmIChpc3NldCgkdGhpcykgJiYgaXNfYSgkdGhpcywgJ1BFQVInKSkgewogICAgICAgICAgICAkc2V0bW9kZSAgICAgPSAmJHRoaXMtPl9kZWZhdWx0X2Vycm9yX21vZGU7CiAgICAgICAgICAgICRzZXRvcHRpb25zICA9ICYkdGhpcy0+X2RlZmF1bHRfZXJyb3Jfb3B0aW9uczsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkc2V0bW9kZSAgICAgPSAmJEdMT0JBTFNbJ19QRUFSX2RlZmF1bHRfZXJyb3JfbW9kZSddOwogICAgICAgICAgICAkc2V0b3B0aW9ucyAgPSAmJEdMT0JBTFNbJ19QRUFSX2RlZmF1bHRfZXJyb3Jfb3B0aW9ucyddOwogICAgICAgIH0KCiAgICAgICAgc3dpdGNoICgkbW9kZSkgewogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfRVhDRVBUSU9OOgogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfUkVUVVJOOgogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfUFJJTlQ6CiAgICAgICAgICAgIGNhc2UgUEVBUl9FUlJPUl9UUklHR0VSOgogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfRElFOgogICAgICAgICAgICBjYXNlIG51bGw6CiAgICAgICAgICAgICAgICAkc2V0bW9kZSA9ICRtb2RlOwogICAgICAgICAgICAgICAgJHNldG9wdGlvbnMgPSAkb3B0aW9uczsKICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgY2FzZSBQRUFSX0VSUk9SX0NBTExCQUNLOgogICAgICAgICAgICAgICAgJHNldG1vZGUgPSAkbW9kZTsKICAgICAgICAgICAgICAgIC8vIGNsYXNzL29iamVjdCBtZXRob2QgY2FsbGJhY2sKICAgICAgICAgICAgICAgIGlmIChpc19jYWxsYWJsZSgkb3B0aW9ucykpIHsKICAgICAgICAgICAgICAgICAgICAkc2V0b3B0aW9ucyA9ICRvcHRpb25zOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCJpbnZhbGlkIGVycm9yIGNhbGxiYWNrIiwgRV9VU0VSX1dBUk5JTkcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiaW52YWxpZCBlcnJvciBtb2RlIiwgRV9VU0VSX1dBUk5JTkcpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGV4cGVjdEVycm9yKCkKCiAgICAvKioKICAgICAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gdGVsbCB3aGljaCBlcnJvcnMgeW91IGV4cGVjdCB0byBnZXQuCiAgICAgKiBFeHBlY3RlZCBlcnJvcnMgYXJlIGFsd2F5cyByZXR1cm5lZCB3aXRoIGVycm9yIG1vZGUKICAgICAqIFBFQVJfRVJST1JfUkVUVVJOLiAgRXhwZWN0ZWQgZXJyb3IgY29kZXMgYXJlIHN0b3JlZCBpbiBhIHN0YWNrLAogICAgICogYW5kIHRoaXMgbWV0aG9kIHB1c2hlcyBhIG5ldyBlbGVtZW50IG9udG8gaXQuICBUaGUgbGlzdCBvZgogICAgICogZXhwZWN0ZWQgZXJyb3JzIGFyZSBpbiBlZmZlY3QgdW50aWwgdGhleSBhcmUgcG9wcGVkIG9mZiB0aGUKICAgICAqIHN0YWNrIHdpdGggdGhlIHBvcEV4cGVjdCgpIG1ldGhvZC4KICAgICAqCiAgICAgKiBOb3RlIHRoYXQgdGhpcyBtZXRob2QgY2FuIG5vdCBiZSBjYWxsZWQgc3RhdGljYWxseQogICAgICoKICAgICAqIEBwYXJhbSBtaXhlZCAkY29kZSBhIHNpbmdsZSBlcnJvciBjb2RlIG9yIGFuIGFycmF5IG9mIGVycm9yIGNvZGVzIHRvIGV4cGVjdAogICAgICoKICAgICAqIEByZXR1cm4gaW50ICAgICB0aGUgbmV3IGRlcHRoIG9mIHRoZSAiZXhwZWN0ZWQgZXJyb3JzIiBzdGFjawogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gZXhwZWN0RXJyb3IoJGNvZGUgPSAnKicpCiAgICB7CiAgICAgICAgaWYgKGlzX2FycmF5KCRjb2RlKSkgewogICAgICAgICAgICBhcnJheV9wdXNoKCR0aGlzLT5fZXhwZWN0ZWRfZXJyb3JzLCAkY29kZSk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYXJyYXlfcHVzaCgkdGhpcy0+X2V4cGVjdGVkX2Vycm9ycywgYXJyYXkoJGNvZGUpKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNpemVvZigkdGhpcy0+X2V4cGVjdGVkX2Vycm9ycyk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgcG9wRXhwZWN0KCkKCiAgICAvKioKICAgICAqIFRoaXMgbWV0aG9kIHBvcHMgb25lIGVsZW1lbnQgb2ZmIHRoZSBleHBlY3RlZCBlcnJvciBjb2RlcwogICAgICogc3RhY2suCiAgICAgKgogICAgICogQHJldHVybiBhcnJheSAgIHRoZSBsaXN0IG9mIGVycm9yIGNvZGVzIHRoYXQgd2VyZSBwb3BwZWQKICAgICAqLwogICAgZnVuY3Rpb24gcG9wRXhwZWN0KCkKICAgIHsKICAgICAgICByZXR1cm4gYXJyYXlfcG9wKCR0aGlzLT5fZXhwZWN0ZWRfZXJyb3JzKTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBfY2hlY2tEZWxFeHBlY3QoKQoKICAgIC8qKgogICAgICogVGhpcyBtZXRob2QgY2hlY2tzIHVuc2V0cyBhbiBlcnJvciBjb2RlIGlmIGF2YWlsYWJsZQogICAgICoKICAgICAqIEBwYXJhbSBtaXhlZCBlcnJvciBjb2RlCiAgICAgKiBAcmV0dXJuIGJvb2wgdHJ1ZSBpZiB0aGUgZXJyb3IgY29kZSB3YXMgdW5zZXQsIGZhbHNlIG90aGVyd2lzZQogICAgICogQGFjY2VzcyBwcml2YXRlCiAgICAgKiBAc2luY2UgUEhQIDQuMy4wCiAgICAgKi8KICAgIGZ1bmN0aW9uIF9jaGVja0RlbEV4cGVjdCgkZXJyb3JfY29kZSkKICAgIHsKICAgICAgICAkZGVsZXRlZCA9IGZhbHNlOwoKICAgICAgICBmb3JlYWNoICgkdGhpcy0+X2V4cGVjdGVkX2Vycm9ycyBBUyAka2V5ID0+ICRlcnJvcl9hcnJheSkgewogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJGVycm9yX2NvZGUsICRlcnJvcl9hcnJheSkpIHsKICAgICAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5fZXhwZWN0ZWRfZXJyb3JzWyRrZXldW2FycmF5X3NlYXJjaCgkZXJyb3JfY29kZSwgJGVycm9yX2FycmF5KV0pOwogICAgICAgICAgICAgICAgJGRlbGV0ZWQgPSB0cnVlOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBjbGVhbiB1cCBlbXB0eSBhcnJheXMKICAgICAgICAgICAgaWYgKDAgPT0gY291bnQoJHRoaXMtPl9leHBlY3RlZF9lcnJvcnNbJGtleV0pKSB7CiAgICAgICAgICAgICAgICB1bnNldCgkdGhpcy0+X2V4cGVjdGVkX2Vycm9yc1ska2V5XSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuICRkZWxldGVkOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGRlbEV4cGVjdCgpCgogICAgLyoqCiAgICAgKiBUaGlzIG1ldGhvZCBkZWxldGVzIGFsbCBvY2N1cmVuY2VzIG9mIHRoZSBzcGVjaWZpZWQgZWxlbWVudCBmcm9tCiAgICAgKiB0aGUgZXhwZWN0ZWQgZXJyb3IgY29kZXMgc3RhY2suCiAgICAgKgogICAgICogQHBhcmFtICBtaXhlZCAkZXJyb3JfY29kZSBlcnJvciBjb2RlIHRoYXQgc2hvdWxkIGJlIGRlbGV0ZWQKICAgICAqIEByZXR1cm4gbWl4ZWQgbGlzdCBvZiBlcnJvciBjb2RlcyB0aGF0IHdlcmUgZGVsZXRlZCBvciBlcnJvcgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBzaW5jZSBQSFAgNC4zLjAKICAgICAqLwogICAgZnVuY3Rpb24gZGVsRXhwZWN0KCRlcnJvcl9jb2RlKQogICAgewogICAgICAgICRkZWxldGVkID0gZmFsc2U7CgogICAgICAgIGlmICgoaXNfYXJyYXkoJGVycm9yX2NvZGUpICYmICgwICE9IGNvdW50KCRlcnJvcl9jb2RlKSkpKSB7CiAgICAgICAgICAgIC8vICRlcnJvcl9jb2RlIGlzIGEgbm9uLWVtcHR5IGFycmF5IGhlcmU7CiAgICAgICAgICAgIC8vIHdlIHdhbGsgdGhyb3VnaCBpdCB0cnlpbmcgdG8gdW5zZXQgYWxsCiAgICAgICAgICAgIC8vIHZhbHVlcwogICAgICAgICAgICBmb3JlYWNoKCRlcnJvcl9jb2RlIGFzICRrZXkgPT4gJGVycm9yKSB7CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPl9jaGVja0RlbEV4cGVjdCgkZXJyb3IpKSB7CiAgICAgICAgICAgICAgICAgICAgJGRlbGV0ZWQgPSAgdHJ1ZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGRlbGV0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJGRlbGV0ZWQgPyB0cnVlIDogUEVBUjo6cmFpc2VFcnJvcigiVGhlIGV4cGVjdGVkIGVycm9yIHlvdSBzdWJtaXR0ZWQgZG9lcyBub3QgZXhpc3QiKTsgLy8gSU1QUk9WRSBNRQogICAgICAgIH0gZWxzZWlmICghZW1wdHkoJGVycm9yX2NvZGUpKSB7CiAgICAgICAgICAgIC8vICRlcnJvcl9jb2RlIGNvbWVzIGFsb25lLCB0cnlpbmcgdG8gdW5zZXQgaXQKICAgICAgICAgICAgaWYgKCR0aGlzLT5fY2hlY2tEZWxFeHBlY3QoJGVycm9yX2NvZGUpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHJldHVybiBQRUFSOjpyYWlzZUVycm9yKCJUaGUgZXhwZWN0ZWQgZXJyb3IgeW91IHN1Ym1pdHRlZCBkb2VzIG5vdCBleGlzdCIpOyAvLyBJTVBST1ZFIE1FCiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAvLyAkZXJyb3JfY29kZSBpcyBlbXB0eQogICAgICAgICAgICByZXR1cm4gUEVBUjo6cmFpc2VFcnJvcigiVGhlIGV4cGVjdGVkIGVycm9yIHlvdSBzdWJtaXR0ZWQgaXMgZW1wdHkiKTsgLy8gSU1QUk9WRSBNRQogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyByYWlzZUVycm9yKCkKCiAgICAvKioKICAgICAqIFRoaXMgbWV0aG9kIGlzIGEgd3JhcHBlciB0aGF0IHJldHVybnMgYW4gaW5zdGFuY2Ugb2YgdGhlCiAgICAgKiBjb25maWd1cmVkIGVycm9yIGNsYXNzIHdpdGggdGhpcyBvYmplY3QncyBkZWZhdWx0IGVycm9yCiAgICAgKiBoYW5kbGluZyBhcHBsaWVkLiAgSWYgdGhlICRtb2RlIGFuZCAkb3B0aW9ucyBwYXJhbWV0ZXJzIGFyZSBub3QKICAgICAqIHNwZWNpZmllZCwgdGhlIG9iamVjdCdzIGRlZmF1bHRzIGFyZSB1c2VkLgogICAgICoKICAgICAqIEBwYXJhbSBtaXhlZCAkbWVzc2FnZSBhIHRleHQgZXJyb3IgbWVzc2FnZSBvciBhIFBFQVIgZXJyb3Igb2JqZWN0CiAgICAgKgogICAgICogQHBhcmFtIGludCAkY29kZSAgICAgIGEgbnVtZXJpYyBlcnJvciBjb2RlIChpdCBpcyB1cCB0byB5b3VyIGNsYXNzCiAgICAgKiAgICAgICAgICAgICAgICAgIHRvIGRlZmluZSB0aGVzZSBpZiB5b3Ugd2FudCB0byB1c2UgY29kZXMpCiAgICAgKgogICAgICogQHBhcmFtIGludCAkbW9kZSAgICAgIE9uZSBvZiBQRUFSX0VSUk9SX1JFVFVSTiwgUEVBUl9FUlJPUl9QUklOVCwKICAgICAqICAgICAgICAgICAgICAgICAgUEVBUl9FUlJPUl9UUklHR0VSLCBQRUFSX0VSUk9SX0RJRSwKICAgICAqICAgICAgICAgICAgICAgICAgUEVBUl9FUlJPUl9DQUxMQkFDSywgUEVBUl9FUlJPUl9FWENFUFRJT04uCiAgICAgKgogICAgICogQHBhcmFtIG1peGVkICRvcHRpb25zIElmICRtb2RlIGlzIFBFQVJfRVJST1JfVFJJR0dFUiwgdGhpcyBwYXJhbWV0ZXIKICAgICAqICAgICAgICAgICAgICAgICAgc3BlY2lmaWVzIHRoZSBQSFAtaW50ZXJuYWwgZXJyb3IgbGV2ZWwgKG9uZSBvZgogICAgICogICAgICAgICAgICAgICAgICBFX1VTRVJfTk9USUNFLCBFX1VTRVJfV0FSTklORyBvciBFX1VTRVJfRVJST1IpLgogICAgICogICAgICAgICAgICAgICAgICBJZiAkbW9kZSBpcyBQRUFSX0VSUk9SX0NBTExCQUNLLCB0aGlzCiAgICAgKiAgICAgICAgICAgICAgICAgIHBhcmFtZXRlciBzcGVjaWZpZXMgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uIG9yCiAgICAgKiAgICAgICAgICAgICAgICAgIG1ldGhvZC4gIEluIG90aGVyIGVycm9yIG1vZGVzIHRoaXMgcGFyYW1ldGVyCiAgICAgKiAgICAgICAgICAgICAgICAgIGlzIGlnbm9yZWQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkdXNlcmluZm8gSWYgeW91IG5lZWQgdG8gcGFzcyBhbG9uZyBmb3IgZXhhbXBsZSBkZWJ1ZwogICAgICogICAgICAgICAgICAgICAgICBpbmZvcm1hdGlvbiwgdGhpcyBwYXJhbWV0ZXIgaXMgbWVhbnQgZm9yIHRoYXQuCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkZXJyb3JfY2xhc3MgVGhlIHJldHVybmVkIGVycm9yIG9iamVjdCB3aWxsIGJlCiAgICAgKiAgICAgICAgICAgICAgICAgIGluc3RhbnRpYXRlZCBmcm9tIHRoaXMgY2xhc3MsIGlmIHNwZWNpZmllZC4KICAgICAqCiAgICAgKiBAcGFyYW0gYm9vbCAkc2tpcG1zZyBJZiB0cnVlLCByYWlzZUVycm9yIHdpbGwgb25seSBwYXNzIGVycm9yIGNvZGVzLAogICAgICogICAgICAgICAgICAgICAgICB0aGUgZXJyb3IgbWVzc2FnZSBwYXJhbWV0ZXIgd2lsbCBiZSBkcm9wcGVkLgogICAgICoKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcmV0dXJuIG9iamVjdCAgIGEgUEVBUiBlcnJvciBvYmplY3QKICAgICAqIEBzZWUgUEVBUjo6c2V0RXJyb3JIYW5kbGluZwogICAgICogQHNpbmNlIFBIUCA0LjAuNQogICAgICovCiAgICBmdW5jdGlvbiAmcmFpc2VFcnJvcigkbWVzc2FnZSA9IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAkY29kZSA9IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAkbW9kZSA9IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAkb3B0aW9ucyA9IG51bGwsCiAgICAgICAgICAgICAgICAgICAgICAgICAkdXNlcmluZm8gPSBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yX2NsYXNzID0gbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICRza2lwbXNnID0gZmFsc2UpCiAgICB7CiAgICAgICAgLy8gVGhlIGVycm9yIGlzIHlldCBhIFBFQVIgZXJyb3Igb2JqZWN0CiAgICAgICAgaWYgKGlzX29iamVjdCgkbWVzc2FnZSkpIHsKICAgICAgICAgICAgJGNvZGUgICAgICAgID0gJG1lc3NhZ2UtPmdldENvZGUoKTsKICAgICAgICAgICAgJHVzZXJpbmZvICAgID0gJG1lc3NhZ2UtPmdldFVzZXJJbmZvKCk7CiAgICAgICAgICAgICRlcnJvcl9jbGFzcyA9ICRtZXNzYWdlLT5nZXRUeXBlKCk7CiAgICAgICAgICAgICRtZXNzYWdlLT5lcnJvcl9tZXNzYWdlX3ByZWZpeCA9ICcnOwogICAgICAgICAgICAkbWVzc2FnZSAgICAgPSAkbWVzc2FnZS0+Z2V0TWVzc2FnZSgpOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCR0aGlzKSAmJiBpc3NldCgkdGhpcy0+X2V4cGVjdGVkX2Vycm9ycykgJiYgc2l6ZW9mKCR0aGlzLT5fZXhwZWN0ZWRfZXJyb3JzKSA+IDAgJiYgc2l6ZW9mKCRleHAgPSBlbmQoJHRoaXMtPl9leHBlY3RlZF9lcnJvcnMpKSkgewogICAgICAgICAgICBpZiAoJGV4cFswXSA9PSAiKiIgfHwKICAgICAgICAgICAgICAgIChpc19pbnQocmVzZXQoJGV4cCkpICYmIGluX2FycmF5KCRjb2RlLCAkZXhwKSkgfHwKICAgICAgICAgICAgICAgIChpc19zdHJpbmcocmVzZXQoJGV4cCkpICYmIGluX2FycmF5KCRtZXNzYWdlLCAkZXhwKSkpIHsKICAgICAgICAgICAgICAgICRtb2RlID0gUEVBUl9FUlJPUl9SRVRVUk47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy8gTm8gbW9kZSBnaXZlbiwgdHJ5IGdsb2JhbCBvbmVzCiAgICAgICAgaWYgKCRtb2RlID09PSBudWxsKSB7CiAgICAgICAgICAgIC8vIENsYXNzIGVycm9yIGhhbmRsZXIKICAgICAgICAgICAgaWYgKGlzc2V0KCR0aGlzKSAmJiBpc3NldCgkdGhpcy0+X2RlZmF1bHRfZXJyb3JfbW9kZSkpIHsKICAgICAgICAgICAgICAgICRtb2RlICAgID0gJHRoaXMtPl9kZWZhdWx0X2Vycm9yX21vZGU7CiAgICAgICAgICAgICAgICAkb3B0aW9ucyA9ICR0aGlzLT5fZGVmYXVsdF9lcnJvcl9vcHRpb25zOwogICAgICAgICAgICAvLyBHbG9iYWwgZXJyb3IgaGFuZGxlcgogICAgICAgICAgICB9IGVsc2VpZiAoaXNzZXQoJEdMT0JBTFNbJ19QRUFSX2RlZmF1bHRfZXJyb3JfbW9kZSddKSkgewogICAgICAgICAgICAgICAgJG1vZGUgICAgPSAkR0xPQkFMU1snX1BFQVJfZGVmYXVsdF9lcnJvcl9tb2RlJ107CiAgICAgICAgICAgICAgICAkb3B0aW9ucyA9ICRHTE9CQUxTWydfUEVBUl9kZWZhdWx0X2Vycm9yX29wdGlvbnMnXTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRlcnJvcl9jbGFzcyAhPT0gbnVsbCkgewogICAgICAgICAgICAkZWMgPSAkZXJyb3JfY2xhc3M7CiAgICAgICAgfSBlbHNlaWYgKGlzc2V0KCR0aGlzKSAmJiBpc3NldCgkdGhpcy0+X2Vycm9yX2NsYXNzKSkgewogICAgICAgICAgICAkZWMgPSAkdGhpcy0+X2Vycm9yX2NsYXNzOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRlYyA9ICdQRUFSX0Vycm9yJzsKICAgICAgICB9CiAgICAgICAgaWYgKCRza2lwbXNnKSB7CiAgICAgICAgICAgICRhID0gJm5ldyAkZWMoJGNvZGUsICRtb2RlLCAkb3B0aW9ucywgJHVzZXJpbmZvKTsKICAgICAgICAgICAgcmV0dXJuICRhOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRhID0gJm5ldyAkZWMoJG1lc3NhZ2UsICRjb2RlLCAkbW9kZSwgJG9wdGlvbnMsICR1c2VyaW5mbyk7CiAgICAgICAgICAgIHJldHVybiAkYTsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgdGhyb3dFcnJvcigpCgogICAgLyoqCiAgICAgKiBTaW1wbGVyIGZvcm0gb2YgcmFpc2VFcnJvciB3aXRoIGZld2VyIG9wdGlvbnMuICBJbiBtb3N0IGNhc2VzCiAgICAgKiBtZXNzYWdlLCBjb2RlIGFuZCB1c2VyaW5mbyBhcmUgZW5vdWdoLgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UKICAgICAqCiAgICAgKi8KICAgIGZ1bmN0aW9uICZ0aHJvd0Vycm9yKCRtZXNzYWdlID0gbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICRjb2RlID0gbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgICR1c2VyaW5mbyA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzKSAmJiBpc19hKCR0aGlzLCAnUEVBUicpKSB7CiAgICAgICAgICAgICRhID0gJiR0aGlzLT5yYWlzZUVycm9yKCRtZXNzYWdlLCAkY29kZSwgbnVsbCwgbnVsbCwgJHVzZXJpbmZvKTsKICAgICAgICAgICAgcmV0dXJuICRhOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRhID0gJlBFQVI6OnJhaXNlRXJyb3IoJG1lc3NhZ2UsICRjb2RlLCBudWxsLCBudWxsLCAkdXNlcmluZm8pOwogICAgICAgICAgICByZXR1cm4gJGE7CiAgICAgICAgfQogICAgfQoKICAgIC8vIH19fQogICAgZnVuY3Rpb24gc3RhdGljUHVzaEVycm9ySGFuZGxpbmcoJG1vZGUsICRvcHRpb25zID0gbnVsbCkKICAgIHsKICAgICAgICAkc3RhY2sgPSAmJEdMT0JBTFNbJ19QRUFSX2Vycm9yX2hhbmRsZXJfc3RhY2snXTsKICAgICAgICAkZGVmX21vZGUgICAgPSAmJEdMT0JBTFNbJ19QRUFSX2RlZmF1bHRfZXJyb3JfbW9kZSddOwogICAgICAgICRkZWZfb3B0aW9ucyA9ICYkR0xPQkFMU1snX1BFQVJfZGVmYXVsdF9lcnJvcl9vcHRpb25zJ107CiAgICAgICAgJHN0YWNrW10gPSBhcnJheSgkZGVmX21vZGUsICRkZWZfb3B0aW9ucyk7CiAgICAgICAgc3dpdGNoICgkbW9kZSkgewogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfRVhDRVBUSU9OOgogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfUkVUVVJOOgogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfUFJJTlQ6CiAgICAgICAgICAgIGNhc2UgUEVBUl9FUlJPUl9UUklHR0VSOgogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfRElFOgogICAgICAgICAgICBjYXNlIG51bGw6CiAgICAgICAgICAgICAgICAkZGVmX21vZGUgPSAkbW9kZTsKICAgICAgICAgICAgICAgICRkZWZfb3B0aW9ucyA9ICRvcHRpb25zOwogICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfQ0FMTEJBQ0s6CiAgICAgICAgICAgICAgICAkZGVmX21vZGUgPSAkbW9kZTsKICAgICAgICAgICAgICAgIC8vIGNsYXNzL29iamVjdCBtZXRob2QgY2FsbGJhY2sKICAgICAgICAgICAgICAgIGlmIChpc19jYWxsYWJsZSgkb3B0aW9ucykpIHsKICAgICAgICAgICAgICAgICAgICAkZGVmX29wdGlvbnMgPSAkb3B0aW9uczsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiaW52YWxpZCBlcnJvciBjYWxsYmFjayIsIEVfVVNFUl9XQVJOSU5HKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoImludmFsaWQgZXJyb3IgbW9kZSIsIEVfVVNFUl9XQVJOSU5HKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICAkc3RhY2tbXSA9IGFycmF5KCRtb2RlLCAkb3B0aW9ucyk7CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgZnVuY3Rpb24gc3RhdGljUG9wRXJyb3JIYW5kbGluZygpCiAgICB7CiAgICAgICAgJHN0YWNrID0gJiRHTE9CQUxTWydfUEVBUl9lcnJvcl9oYW5kbGVyX3N0YWNrJ107CiAgICAgICAgJHNldG1vZGUgICAgID0gJiRHTE9CQUxTWydfUEVBUl9kZWZhdWx0X2Vycm9yX21vZGUnXTsKICAgICAgICAkc2V0b3B0aW9ucyAgPSAmJEdMT0JBTFNbJ19QRUFSX2RlZmF1bHRfZXJyb3Jfb3B0aW9ucyddOwogICAgICAgIGFycmF5X3BvcCgkc3RhY2spOwogICAgICAgIGxpc3QoJG1vZGUsICRvcHRpb25zKSA9ICRzdGFja1tzaXplb2YoJHN0YWNrKSAtIDFdOwogICAgICAgIGFycmF5X3BvcCgkc3RhY2spOwogICAgICAgIHN3aXRjaCAoJG1vZGUpIHsKICAgICAgICAgICAgY2FzZSBQRUFSX0VSUk9SX0VYQ0VQVElPTjoKICAgICAgICAgICAgY2FzZSBQRUFSX0VSUk9SX1JFVFVSTjoKICAgICAgICAgICAgY2FzZSBQRUFSX0VSUk9SX1BSSU5UOgogICAgICAgICAgICBjYXNlIFBFQVJfRVJST1JfVFJJR0dFUjoKICAgICAgICAgICAgY2FzZSBQRUFSX0VSUk9SX0RJRToKICAgICAgICAgICAgY2FzZSBudWxsOgogICAgICAgICAgICAgICAgJHNldG1vZGUgPSAkbW9kZTsKICAgICAgICAgICAgICAgICRzZXRvcHRpb25zID0gJG9wdGlvbnM7CiAgICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIGNhc2UgUEVBUl9FUlJPUl9DQUxMQkFDSzoKICAgICAgICAgICAgICAgICRzZXRtb2RlID0gJG1vZGU7CiAgICAgICAgICAgICAgICAvLyBjbGFzcy9vYmplY3QgbWV0aG9kIGNhbGxiYWNrCiAgICAgICAgICAgICAgICBpZiAoaXNfY2FsbGFibGUoJG9wdGlvbnMpKSB7CiAgICAgICAgICAgICAgICAgICAgJHNldG9wdGlvbnMgPSAkb3B0aW9uczsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiaW52YWxpZCBlcnJvciBjYWxsYmFjayIsIEVfVVNFUl9XQVJOSU5HKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHRyaWdnZXJfZXJyb3IoImludmFsaWQgZXJyb3IgbW9kZSIsIEVfVVNFUl9XQVJOSU5HKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvLyB7e3sgcHVzaEVycm9ySGFuZGxpbmcoKQoKICAgIC8qKgogICAgICogUHVzaCBhIG5ldyBlcnJvciBoYW5kbGVyIG9uIHRvcCBvZiB0aGUgZXJyb3IgaGFuZGxlciBvcHRpb25zIHN0YWNrLiBXaXRoIHRoaXMKICAgICAqIHlvdSBjYW4gZWFzaWx5IG92ZXJyaWRlIHRoZSBhY3R1YWwgZXJyb3IgaGFuZGxlciBmb3Igc29tZSBjb2RlIGFuZCByZXN0b3JlCiAgICAgKiBpdCBsYXRlciB3aXRoIHBvcEVycm9ySGFuZGxpbmcuCiAgICAgKgogICAgICogQHBhcmFtIG1peGVkICRtb2RlIChzYW1lIGFzIHNldEVycm9ySGFuZGxpbmcpCiAgICAgKiBAcGFyYW0gbWl4ZWQgJG9wdGlvbnMgKHNhbWUgYXMgc2V0RXJyb3JIYW5kbGluZykKICAgICAqCiAgICAgKiBAcmV0dXJuIGJvb2wgQWx3YXlzIHRydWUKICAgICAqCiAgICAgKiBAc2VlIFBFQVI6OnNldEVycm9ySGFuZGxpbmcKICAgICAqLwogICAgZnVuY3Rpb24gcHVzaEVycm9ySGFuZGxpbmcoJG1vZGUsICRvcHRpb25zID0gbnVsbCkKICAgIHsKICAgICAgICAkc3RhY2sgPSAmJEdMT0JBTFNbJ19QRUFSX2Vycm9yX2hhbmRsZXJfc3RhY2snXTsKICAgICAgICBpZiAoaXNzZXQoJHRoaXMpICYmIGlzX2EoJHRoaXMsICdQRUFSJykpIHsKICAgICAgICAgICAgJGRlZl9tb2RlICAgID0gJiR0aGlzLT5fZGVmYXVsdF9lcnJvcl9tb2RlOwogICAgICAgICAgICAkZGVmX29wdGlvbnMgPSAmJHRoaXMtPl9kZWZhdWx0X2Vycm9yX29wdGlvbnM7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJGRlZl9tb2RlICAgID0gJiRHTE9CQUxTWydfUEVBUl9kZWZhdWx0X2Vycm9yX21vZGUnXTsKICAgICAgICAgICAgJGRlZl9vcHRpb25zID0gJiRHTE9CQUxTWydfUEVBUl9kZWZhdWx0X2Vycm9yX29wdGlvbnMnXTsKICAgICAgICB9CiAgICAgICAgJHN0YWNrW10gPSBhcnJheSgkZGVmX21vZGUsICRkZWZfb3B0aW9ucyk7CgogICAgICAgIGlmIChpc3NldCgkdGhpcykgJiYgaXNfYSgkdGhpcywgJ1BFQVInKSkgewogICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3JIYW5kbGluZygkbW9kZSwgJG9wdGlvbnMpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFBFQVI6OnNldEVycm9ySGFuZGxpbmcoJG1vZGUsICRvcHRpb25zKTsKICAgICAgICB9CiAgICAgICAgJHN0YWNrW10gPSBhcnJheSgkbW9kZSwgJG9wdGlvbnMpOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IHBvcEVycm9ySGFuZGxpbmcoKQoKICAgIC8qKgogICAgKiBQb3AgdGhlIGxhc3QgZXJyb3IgaGFuZGxlciB1c2VkCiAgICAqCiAgICAqIEByZXR1cm4gYm9vbCBBbHdheXMgdHJ1ZQogICAgKgogICAgKiBAc2VlIFBFQVI6OnB1c2hFcnJvckhhbmRsaW5nCiAgICAqLwogICAgZnVuY3Rpb24gcG9wRXJyb3JIYW5kbGluZygpCiAgICB7CiAgICAgICAgJHN0YWNrID0gJiRHTE9CQUxTWydfUEVBUl9lcnJvcl9oYW5kbGVyX3N0YWNrJ107CiAgICAgICAgYXJyYXlfcG9wKCRzdGFjayk7CiAgICAgICAgbGlzdCgkbW9kZSwgJG9wdGlvbnMpID0gJHN0YWNrW3NpemVvZigkc3RhY2spIC0gMV07CiAgICAgICAgYXJyYXlfcG9wKCRzdGFjayk7CiAgICAgICAgaWYgKGlzc2V0KCR0aGlzKSAmJiBpc19hKCR0aGlzLCAnUEVBUicpKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvckhhbmRsaW5nKCRtb2RlLCAkb3B0aW9ucyk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgUEVBUjo6c2V0RXJyb3JIYW5kbGluZygkbW9kZSwgJG9wdGlvbnMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBsb2FkRXh0ZW5zaW9uKCkKCiAgICAvKioKICAgICogT1MgaW5kZXBlbmRhbnQgUEhQIGV4dGVuc2lvbiBsb2FkLiBSZW1lbWJlciB0byB0YWtlIGNhcmUKICAgICogb24gdGhlIGNvcnJlY3QgZXh0ZW5zaW9uIG5hbWUgZm9yIGNhc2Ugc2Vuc2l0aXZlIE9TZXMuCiAgICAqCiAgICAqIEBwYXJhbSBzdHJpbmcgJGV4dCBUaGUgZXh0ZW5zaW9uIG5hbWUKICAgICogQHJldHVybiBib29sIFN1Y2Nlc3Mgb3Igbm90IG9uIHRoZSBkbCgpIGNhbGwKICAgICovCiAgICBmdW5jdGlvbiBsb2FkRXh0ZW5zaW9uKCRleHQpCiAgICB7CiAgICAgICAgaWYgKCFleHRlbnNpb25fbG9hZGVkKCRleHQpKSB7CiAgICAgICAgICAgIC8vIGlmIGVpdGhlciByZXR1cm5zIHRydWUgZGwoKSB3aWxsIHByb2R1Y2UgYSBGQVRBTCBlcnJvciwgc3RvcCB0aGF0CiAgICAgICAgICAgIGlmICgoaW5pX2dldCgnZW5hYmxlX2RsJykgIT0gMSkgfHwgKGluaV9nZXQoJ3NhZmVfbW9kZScpID09IDEpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKE9TX1dJTkRPV1MpIHsKICAgICAgICAgICAgICAgICRzdWZmaXggPSAnLmRsbCc7CiAgICAgICAgICAgIH0gZWxzZWlmIChQSFBfT1MgPT0gJ0hQLVVYJykgewogICAgICAgICAgICAgICAgJHN1ZmZpeCA9ICcuc2wnOwogICAgICAgICAgICB9IGVsc2VpZiAoUEhQX09TID09ICdBSVgnKSB7CiAgICAgICAgICAgICAgICAkc3VmZml4ID0gJy5hJzsKICAgICAgICAgICAgfSBlbHNlaWYgKFBIUF9PUyA9PSAnT1NYJykgewogICAgICAgICAgICAgICAgJHN1ZmZpeCA9ICcuYnVuZGxlJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRzdWZmaXggPSAnLnNvJzsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gQGRsKCdwaHBfJy4kZXh0LiRzdWZmaXgpIHx8IEBkbCgkZXh0LiRzdWZmaXgpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvLyB9fX0KfQoKLy8ge3t7IF9QRUFSX2NhbGxfZGVzdHJ1Y3RvcnMoKQoKZnVuY3Rpb24gX1BFQVJfY2FsbF9kZXN0cnVjdG9ycygpCnsKICAgIGdsb2JhbCAkX1BFQVJfZGVzdHJ1Y3Rvcl9vYmplY3RfbGlzdDsKICAgIGlmIChpc19hcnJheSgkX1BFQVJfZGVzdHJ1Y3Rvcl9vYmplY3RfbGlzdCkgJiYKICAgICAgICBzaXplb2YoJF9QRUFSX2Rlc3RydWN0b3Jfb2JqZWN0X2xpc3QpKQogICAgewogICAgICAgIHJlc2V0KCRfUEVBUl9kZXN0cnVjdG9yX29iamVjdF9saXN0KTsKICAgICAgICBpZiAoUEVBUjo6Z2V0U3RhdGljUHJvcGVydHkoJ1BFQVInLCAnZGVzdHJ1Y3RsaWZvJykpIHsKICAgICAgICAgICAgJF9QRUFSX2Rlc3RydWN0b3Jfb2JqZWN0X2xpc3QgPSBhcnJheV9yZXZlcnNlKCRfUEVBUl9kZXN0cnVjdG9yX29iamVjdF9saXN0KTsKICAgICAgICB9CiAgICAgICAgd2hpbGUgKGxpc3QoJGssICRvYmpyZWYpID0gZWFjaCgkX1BFQVJfZGVzdHJ1Y3Rvcl9vYmplY3RfbGlzdCkpIHsKICAgICAgICAgICAgJGNsYXNzbmFtZSA9IGdldF9jbGFzcygkb2JqcmVmKTsKICAgICAgICAgICAgd2hpbGUgKCRjbGFzc25hbWUpIHsKICAgICAgICAgICAgICAgICRkZXN0cnVjdG9yID0gIl8kY2xhc3NuYW1lIjsKICAgICAgICAgICAgICAgIGlmIChtZXRob2RfZXhpc3RzKCRvYmpyZWYsICRkZXN0cnVjdG9yKSkgewogICAgICAgICAgICAgICAgICAgICRvYmpyZWYtPiRkZXN0cnVjdG9yKCk7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRjbGFzc25hbWUgPSBnZXRfcGFyZW50X2NsYXNzKCRjbGFzc25hbWUpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIEVtcHR5IHRoZSBvYmplY3QgbGlzdCB0byBlbnN1cmUgdGhhdCBkZXN0cnVjdG9ycyBhcmUKICAgICAgICAvLyBub3QgY2FsbGVkIG1vcmUgdGhhbiBvbmNlLgogICAgICAgICRfUEVBUl9kZXN0cnVjdG9yX29iamVjdF9saXN0ID0gYXJyYXkoKTsKICAgIH0KCiAgICAvLyBOb3cgY2FsbCB0aGUgc2h1dGRvd24gZnVuY3Rpb25zCiAgICBpZiAoaXNfYXJyYXkoJEdMT0JBTFNbJ19QRUFSX3NodXRkb3duX2Z1bmNzJ10pIEFORCAhZW1wdHkoJEdMT0JBTFNbJ19QRUFSX3NodXRkb3duX2Z1bmNzJ10pKSB7CiAgICAgICAgZm9yZWFjaCAoJEdMT0JBTFNbJ19QRUFSX3NodXRkb3duX2Z1bmNzJ10gYXMgJHZhbHVlKSB7CiAgICAgICAgICAgIGNhbGxfdXNlcl9mdW5jX2FycmF5KCR2YWx1ZVswXSwgJHZhbHVlWzFdKTsKICAgICAgICB9CiAgICB9Cn0KCi8vIH19fQovKioKICogU3RhbmRhcmQgUEVBUiBlcnJvciBjbGFzcyBmb3IgUEhQIDQKICoKICogVGhpcyBjbGFzcyBpcyBzdXBzZXJzZWRlZCBieSB7QGxpbmsgUEVBUl9FeGNlcHRpb259IGluIFBIUCA1CiAqCiAqIEBjYXRlZ29yeSAgIHBlYXIKICogQHBhY2thZ2UgICAgUEVBUgogKiBAYXV0aG9yICAgICBTdGlnIEJha2tlbiA8c3NiQHBocC5uZXQ+CiAqIEBhdXRob3IgICAgIFRvbWFzIFYuVi4gQ294IDxjb3hAaWRlY25ldC5jb20+CiAqIEBhdXRob3IgICAgIEdyZWdvcnkgQmVhdmVyIDxjZWxsb2dAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA2IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgIFJlbGVhc2U6IDEuNi4yCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvbWFudWFsL2VuL2NvcmUucGVhci5wZWFyLWVycm9yLnBocAogKiBAc2VlICAgICAgICBQRUFSOjpyYWlzZUVycm9yKCksIFBFQVI6OnRocm93RXJyb3IoKQogKiBAc2luY2UgICAgICBDbGFzcyBhdmFpbGFibGUgc2luY2UgUEhQIDQuMC4yCiAqLwpjbGFzcyBQRUFSX0Vycm9yCnsKICAgIC8vIHt7eyBwcm9wZXJ0aWVzCgogICAgdmFyICRlcnJvcl9tZXNzYWdlX3ByZWZpeCA9ICcnOwogICAgdmFyICRtb2RlICAgICAgICAgICAgICAgICA9IFBFQVJfRVJST1JfUkVUVVJOOwogICAgdmFyICRsZXZlbCAgICAgICAgICAgICAgICA9IEVfVVNFUl9OT1RJQ0U7CiAgICB2YXIgJGNvZGUgICAgICAgICAgICAgICAgID0gLTE7CiAgICB2YXIgJG1lc3NhZ2UgICAgICAgICAgICAgID0gJyc7CiAgICB2YXIgJHVzZXJpbmZvICAgICAgICAgICAgID0gJyc7CiAgICB2YXIgJGJhY2t0cmFjZSAgICAgICAgICAgID0gbnVsbDsKCiAgICAvLyB9fX0KICAgIC8vIHt7eyBjb25zdHJ1Y3RvcgoKICAgIC8qKgogICAgICogUEVBUl9FcnJvciBjb25zdHJ1Y3RvcgogICAgICoKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgIG1lc3NhZ2UKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRjb2RlICAgICAob3B0aW9uYWwpIGVycm9yIGNvZGUKICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRtb2RlICAgICAob3B0aW9uYWwpIGVycm9yIG1vZGUsIG9uZSBvZjogUEVBUl9FUlJPUl9SRVRVUk4sCiAgICAgKiBQRUFSX0VSUk9SX1BSSU5ULCBQRUFSX0VSUk9SX0RJRSwgUEVBUl9FUlJPUl9UUklHR0VSLAogICAgICogUEVBUl9FUlJPUl9DQUxMQkFDSyBvciBQRUFSX0VSUk9SX0VYQ0VQVElPTgogICAgICoKICAgICAqIEBwYXJhbSBtaXhlZCAkb3B0aW9ucyAgIChvcHRpb25hbCkgZXJyb3IgbGV2ZWwsIF9PUl8gaW4gdGhlIGNhc2Ugb2YKICAgICAqIFBFQVJfRVJST1JfQ0FMTEJBQ0ssIHRoZSBjYWxsYmFjayBmdW5jdGlvbiBvciBvYmplY3QvbWV0aG9kCiAgICAgKiB0dXBsZS4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICR1c2VyaW5mbyAob3B0aW9uYWwpIGFkZGl0aW9uYWwgdXNlci9kZWJ1ZyBpbmZvCiAgICAgKgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqCiAgICAgKi8KICAgIGZ1bmN0aW9uIFBFQVJfRXJyb3IoJG1lc3NhZ2UgPSAndW5rbm93biBlcnJvcicsICRjb2RlID0gbnVsbCwKICAgICAgICAgICAgICAgICAgICAgICAgJG1vZGUgPSBudWxsLCAkb3B0aW9ucyA9IG51bGwsICR1c2VyaW5mbyA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKCRtb2RlID09PSBudWxsKSB7CiAgICAgICAgICAgICRtb2RlID0gUEVBUl9FUlJPUl9SRVRVUk47CiAgICAgICAgfQogICAgICAgICR0aGlzLT5tZXNzYWdlICAgPSAkbWVzc2FnZTsKICAgICAgICAkdGhpcy0+Y29kZSAgICAgID0gJGNvZGU7CiAgICAgICAgJHRoaXMtPm1vZGUgICAgICA9ICRtb2RlOwogICAgICAgICR0aGlzLT51c2VyaW5mbyAgPSAkdXNlcmluZm87CiAgICAgICAgaWYgKCFQRUFSOjpnZXRTdGF0aWNQcm9wZXJ0eSgnUEVBUl9FcnJvcicsICdza2lwdHJhY2UnKSkgewogICAgICAgICAgICAkdGhpcy0+YmFja3RyYWNlID0gZGVidWdfYmFja3RyYWNlKCk7CiAgICAgICAgICAgIGlmIChpc3NldCgkdGhpcy0+YmFja3RyYWNlWzBdKSAmJiBpc3NldCgkdGhpcy0+YmFja3RyYWNlWzBdWydvYmplY3QnXSkpIHsKICAgICAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5iYWNrdHJhY2VbMF1bJ29iamVjdCddKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoJG1vZGUgJiBQRUFSX0VSUk9SX0NBTExCQUNLKSB7CiAgICAgICAgICAgICR0aGlzLT5sZXZlbCA9IEVfVVNFUl9OT1RJQ0U7CiAgICAgICAgICAgICR0aGlzLT5jYWxsYmFjayA9ICRvcHRpb25zOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICgkb3B0aW9ucyA9PT0gbnVsbCkgewogICAgICAgICAgICAgICAgJG9wdGlvbnMgPSBFX1VTRVJfTk9USUNFOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0aGlzLT5sZXZlbCA9ICRvcHRpb25zOwogICAgICAgICAgICAkdGhpcy0+Y2FsbGJhY2sgPSBudWxsOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm1vZGUgJiBQRUFSX0VSUk9SX1BSSU5UKSB7CiAgICAgICAgICAgIGlmIChpc19udWxsKCRvcHRpb25zKSB8fCBpc19pbnQoJG9wdGlvbnMpKSB7CiAgICAgICAgICAgICAgICAkZm9ybWF0ID0gIiVzIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRmb3JtYXQgPSAkb3B0aW9uczsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmludGYoJGZvcm1hdCwgJHRoaXMtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+bW9kZSAmIFBFQVJfRVJST1JfVFJJR0dFUikgewogICAgICAgICAgICB0cmlnZ2VyX2Vycm9yKCR0aGlzLT5nZXRNZXNzYWdlKCksICR0aGlzLT5sZXZlbCk7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+bW9kZSAmIFBFQVJfRVJST1JfRElFKSB7CiAgICAgICAgICAgICRtc2cgPSAkdGhpcy0+Z2V0TWVzc2FnZSgpOwogICAgICAgICAgICBpZiAoaXNfbnVsbCgkb3B0aW9ucykgfHwgaXNfaW50KCRvcHRpb25zKSkgewogICAgICAgICAgICAgICAgJGZvcm1hdCA9ICIlcyI7CiAgICAgICAgICAgICAgICBpZiAoc3Vic3RyKCRtc2csIC0xKSAhPSAiXG4iKSB7CiAgICAgICAgICAgICAgICAgICAgJG1zZyAuPSAiXG4iOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGZvcm1hdCA9ICRvcHRpb25zOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRpZShzcHJpbnRmKCRmb3JtYXQsICRtc2cpKTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5tb2RlICYgUEVBUl9FUlJPUl9DQUxMQkFDSykgewogICAgICAgICAgICBpZiAoaXNfY2FsbGFibGUoJHRoaXMtPmNhbGxiYWNrKSkgewogICAgICAgICAgICAgICAgY2FsbF91c2VyX2Z1bmMoJHRoaXMtPmNhbGxiYWNrLCAkdGhpcyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5tb2RlICYgUEVBUl9FUlJPUl9FWENFUFRJT04pIHsKICAgICAgICAgICAgdHJpZ2dlcl9lcnJvcigiUEVBUl9FUlJPUl9FWENFUFRJT04gaXMgb2Jzb2xldGUsIHVzZSBjbGFzcyBQRUFSX0V4Y2VwdGlvbiBmb3IgZXhjZXB0aW9ucyIsIEVfVVNFUl9XQVJOSU5HKTsKICAgICAgICAgICAgZXZhbCgnJGUgPSBuZXcgRXhjZXB0aW9uKCR0aGlzLT5tZXNzYWdlLCAkdGhpcy0+Y29kZSk7dGhyb3coJGUpOycpOwogICAgICAgIH0KICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXRNb2RlKCkKCiAgICAvKioKICAgICAqIEdldCB0aGUgZXJyb3IgbW9kZSBmcm9tIGFuIGVycm9yIG9iamVjdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIGludCBlcnJvciBtb2RlCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBnZXRNb2RlKCkgewogICAgICAgIHJldHVybiAkdGhpcy0+bW9kZTsKICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXRDYWxsYmFjaygpCgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGNhbGxiYWNrIGZ1bmN0aW9uL21ldGhvZCBmcm9tIGFuIGVycm9yIG9iamVjdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkIGNhbGxiYWNrIGZ1bmN0aW9uIG9yIG9iamVjdC9tZXRob2QgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldENhbGxiYWNrKCkgewogICAgICAgIHJldHVybiAkdGhpcy0+Y2FsbGJhY2s7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0TWVzc2FnZSgpCgoKICAgIC8qKgogICAgICogR2V0IHRoZSBlcnJvciBtZXNzYWdlIGZyb20gYW4gZXJyb3Igb2JqZWN0LgogICAgICoKICAgICAqIEByZXR1cm4gIHN0cmluZyAgZnVsbCBlcnJvciBtZXNzYWdlCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBnZXRNZXNzYWdlKCkKICAgIHsKICAgICAgICByZXR1cm4gKCR0aGlzLT5lcnJvcl9tZXNzYWdlX3ByZWZpeCAuICR0aGlzLT5tZXNzYWdlKTsKICAgIH0KCgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0Q29kZSgpCgogICAgLyoqCiAgICAgKiBHZXQgZXJyb3IgY29kZSBmcm9tIGFuIGVycm9yIG9iamVjdAogICAgICoKICAgICAqIEByZXR1cm4gaW50IGVycm9yIGNvZGUKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgICBmdW5jdGlvbiBnZXRDb2RlKCkKICAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5jb2RlOwogICAgIH0KCiAgICAvLyB9fX0KICAgIC8vIHt7eyBnZXRUeXBlKCkKCiAgICAvKioKICAgICAqIEdldCB0aGUgbmFtZSBvZiB0aGlzIGVycm9yL2V4Y2VwdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyBlcnJvci9leGNlcHRpb24gbmFtZSAodHlwZSkKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldFR5cGUoKQogICAgewogICAgICAgIHJldHVybiBnZXRfY2xhc3MoJHRoaXMpOwogICAgfQoKICAgIC8vIH19fQogICAgLy8ge3t7IGdldFVzZXJJbmZvKCkKCiAgICAvKioKICAgICAqIEdldCBhZGRpdGlvbmFsIHVzZXItc3VwcGxpZWQgaW5mb3JtYXRpb24uCiAgICAgKgogICAgICogQHJldHVybiBzdHJpbmcgdXNlci1zdXBwbGllZCBpbmZvcm1hdGlvbgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0VXNlckluZm8oKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+dXNlcmluZm87CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0RGVidWdJbmZvKCkKCiAgICAvKioKICAgICAqIEdldCBhZGRpdGlvbmFsIGRlYnVnIGluZm9ybWF0aW9uIHN1cHBsaWVkIGJ5IHRoZSBhcHBsaWNhdGlvbi4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyBkZWJ1ZyBpbmZvcm1hdGlvbgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0RGVidWdJbmZvKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmdldFVzZXJJbmZvKCk7CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgZ2V0QmFja3RyYWNlKCkKCiAgICAvKioKICAgICAqIEdldCB0aGUgY2FsbCBiYWNrdHJhY2UgZnJvbSB3aGVyZSB0aGUgZXJyb3Igd2FzIGdlbmVyYXRlZC4KICAgICAqIFN1cHBvcnRlZCB3aXRoIFBIUCA0LjMuMCBvciBuZXdlci4KICAgICAqCiAgICAgKiBAcGFyYW0gaW50ICRmcmFtZSAob3B0aW9uYWwpIHdoYXQgZnJhbWUgdG8gZmV0Y2gKICAgICAqIEByZXR1cm4gYXJyYXkgQmFja3RyYWNlLCBvciBOVUxMIGlmIG5vdCBhdmFpbGFibGUuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiBnZXRCYWNrdHJhY2UoJGZyYW1lID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoZGVmaW5lZCgnUEVBUl9JR05PUkVfQkFDS1RSQUNFJykpIHsKICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQogICAgICAgIGlmICgkZnJhbWUgPT09IG51bGwpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5iYWNrdHJhY2U7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkdGhpcy0+YmFja3RyYWNlWyRmcmFtZV07CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgYWRkVXNlckluZm8oKQoKICAgIGZ1bmN0aW9uIGFkZFVzZXJJbmZvKCRpbmZvKQogICAgewogICAgICAgIGlmIChlbXB0eSgkdGhpcy0+dXNlcmluZm8pKSB7CiAgICAgICAgICAgICR0aGlzLT51c2VyaW5mbyA9ICRpbmZvOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT51c2VyaW5mbyAuPSAiICoqICRpbmZvIjsKICAgICAgICB9CiAgICB9CgogICAgLy8gfX19CiAgICAvLyB7e3sgdG9TdHJpbmcoKQoKICAgIC8qKgogICAgICogTWFrZSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGlzIG9iamVjdC4KICAgICAqCiAgICAgKiBAcmV0dXJuIHN0cmluZyBhIHN0cmluZyB3aXRoIGFuIG9iamVjdCBzdW1tYXJ5CiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBmdW5jdGlvbiB0b1N0cmluZygpIHsKICAgICAgICAkbW9kZXMgPSBhcnJheSgpOwogICAgICAgICRsZXZlbHMgPSBhcnJheShFX1VTRVJfTk9USUNFICA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgICAgICAgICAgRV9VU0VSX1dBUk5JTkcgPT4gJ3dhcm5pbmcnLAogICAgICAgICAgICAgICAgICAgICAgICBFX1VTRVJfRVJST1IgICA9PiAnZXJyb3InKTsKICAgICAgICBpZiAoJHRoaXMtPm1vZGUgJiBQRUFSX0VSUk9SX0NBTExCQUNLKSB7CiAgICAgICAgICAgIGlmIChpc19hcnJheSgkdGhpcy0+Y2FsbGJhY2spKSB7CiAgICAgICAgICAgICAgICAkY2FsbGJhY2sgPSAoaXNfb2JqZWN0KCR0aGlzLT5jYWxsYmFja1swXSkgPwogICAgICAgICAgICAgICAgICAgIHN0cnRvbG93ZXIoZ2V0X2NsYXNzKCR0aGlzLT5jYWxsYmFja1swXSkpIDoKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y2FsbGJhY2tbMF0pIC4gJzo6JyAuCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNhbGxiYWNrWzFdOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGNhbGxiYWNrID0gJHRoaXMtPmNhbGxiYWNrOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBzcHJpbnRmKCdbJXM6IG1lc3NhZ2U9IiVzIiBjb2RlPSVkIG1vZGU9Y2FsbGJhY2sgJy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhbGxiYWNrPSVzIHByZWZpeD0iJXMiIGluZm89IiVzIl0nLAogICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ0b2xvd2VyKGdldF9jbGFzcygkdGhpcykpLCAkdGhpcy0+bWVzc2FnZSwgJHRoaXMtPmNvZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICRjYWxsYmFjaywgJHRoaXMtPmVycm9yX21lc3NhZ2VfcHJlZml4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dXNlcmluZm8pOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm1vZGUgJiBQRUFSX0VSUk9SX1BSSU5UKSB7CiAgICAgICAgICAgICRtb2Rlc1tdID0gJ3ByaW50JzsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5tb2RlICYgUEVBUl9FUlJPUl9UUklHR0VSKSB7CiAgICAgICAgICAgICRtb2Rlc1tdID0gJ3RyaWdnZXInOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm1vZGUgJiBQRUFSX0VSUk9SX0RJRSkgewogICAgICAgICAgICAkbW9kZXNbXSA9ICdkaWUnOwogICAgICAgIH0KICAgICAgICBpZiAoJHRoaXMtPm1vZGUgJiBQRUFSX0VSUk9SX1JFVFVSTikgewogICAgICAgICAgICAkbW9kZXNbXSA9ICdyZXR1cm4nOwogICAgICAgIH0KICAgICAgICByZXR1cm4gc3ByaW50ZignWyVzOiBtZXNzYWdlPSIlcyIgY29kZT0lZCBtb2RlPSVzIGxldmVsPSVzICcuCiAgICAgICAgICAgICAgICAgICAgICAgJ3ByZWZpeD0iJXMiIGluZm89IiVzIl0nLAogICAgICAgICAgICAgICAgICAgICAgIHN0cnRvbG93ZXIoZ2V0X2NsYXNzKCR0aGlzKSksICR0aGlzLT5tZXNzYWdlLCAkdGhpcy0+Y29kZSwKICAgICAgICAgICAgICAgICAgICAgICBpbXBsb2RlKCJ8IiwgJG1vZGVzKSwgJGxldmVsc1skdGhpcy0+bGV2ZWxdLAogICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5lcnJvcl9tZXNzYWdlX3ByZWZpeCwKICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+dXNlcmluZm8pOwogICAgfQoKICAgIC8vIH19fQp9CgovKgogKiBMb2NhbCBWYXJpYWJsZXM6CiAqIG1vZGU6IHBocAogKiB0YWItd2lkdGg6IDQKICogYy1iYXNpYy1vZmZzZXQ6IDQKICogRW5kOgogKi8KPz4K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/pear/tests/db_error.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREI6OkRCX0Vycm9yCi0tU0tJUElGLS0KPD9waHAgY2hkaXIoZGlybmFtZShfX0ZJTEVfXykpOyByZXF1aXJlX29uY2UgJy4vc2tpcGlmLmluYyc7ID8+Ci0tRklMRS0tCjw/cGhwIC8vIC0qLSBDKysgLSotCnJlcXVpcmVfb25jZSAnLi9pbmNsdWRlLmluYyc7CnJlcXVpcmVfb25jZSAnREIucGhwJzsKCmZ1bmN0aW9uIHRlc3RfZXJyb3JfaGFuZGxlcigkZXJybm8sICRlcnJtc2csICRmaWxlLCAkbGluZSwgJHZhcnMpIHsKICAgIGlmIChkZWZpbmVkKCdFX1NUUklDVCcpKSB7CiAgICAgICAgaWYgKCRlcnJubyAmIEVfU1RSSUNUCiAgICAgICAgICAgICYmIChlcnJvcl9yZXBvcnRpbmcoKSAmIEVfU1RSSUNUKSAhPSBFX1NUUklDVCkgewogICAgICAgICAgICAvLyBJZ25vcmUgRV9TVFJJQ1Qgbm90aWNlcyB1bmxlc3MgdGhleSBoYXZlIGJlZW4gdHVybmVkIG9uCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGRlZmluZSgnRV9TVFJJQ1QnLCAyMDQ4KTsKICAgIH0KICAgICRlcnJvcnR5cGUgPSBhcnJheSAoCiAgICAgICAgRV9FUlJPUiA9PiAnRXJyb3InLAogICAgICAgIEVfV0FSTklORyA9PiAnV2FybmluZycsCiAgICAgICAgRV9QQVJTRSA9PiAnUGFyc2luZyBFcnJvcicsCiAgICAgICAgRV9OT1RJQ0UgPT4gJ05vdGljZScsCiAgICAgICAgRV9DT1JFX0VSUk9SID0+ICdDb3JlIEVycm9yJywKICAgICAgICBFX0NPUkVfV0FSTklORyA9PiAnQ29yZSBXYXJuaW5nJywKICAgICAgICBFX0NPTVBJTEVfRVJST1IgPT4gJ0NvbXBpbGUgRXJyb3InLAogICAgICAgIEVfQ09NUElMRV9XQVJOSU5HID0+ICdDb21waWxlIFdhcm5pbmcnLAogICAgICAgIEVfVVNFUl9FUlJPUiA9PiAnVXNlciBFcnJvcicsCiAgICAgICAgRV9VU0VSX1dBUk5JTkcgPT4gJ1VzZXIgV2FybmluZycsCiAgICAgICAgRV9VU0VSX05PVElDRSA9PiAnVXNlciBOb3RpY2UnLAogICAgICAgIEVfU1RSSUNUID0+ICdTdHJpY3QgTm90aWNlJywKICAgICk7CiAgICAkcHJlZml4ID0gJGVycm9ydHlwZVskZXJybm9dOwogICAgcHJpbnQgIlxuJHByZWZpeDogJGVycm1zZyBpbiAiIC4gYmFzZW5hbWUoJGZpbGUpIC4gIiBvbiBsaW5lIFhYWFxuIjsKfQoKZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsKc2V0X2Vycm9yX2hhbmRsZXIoJ3Rlc3RfZXJyb3JfaGFuZGxlcicpOwoKcHJpbnQgInRlc3RpbmcgZGlmZmVyZW50IGVycm9yIGNvZGVzLi4uXG4iOwokZSA9IG5ldyBEQl9FcnJvcigpOyBwcmludCBzdHJ0b2xvd2VyKCRlLT50b1N0cmluZygpKS4iXG4iOwokZSA9IG5ldyBEQl9FcnJvcigidGVzdCBlcnJvciIpOyBwcmludCBzdHJ0b2xvd2VyKCRlLT50b1N0cmluZygpKS4iXG4iOwokZSA9IG5ldyBEQl9FcnJvcihEQl9PSyk7IHByaW50IHN0cnRvbG93ZXIoJGUtPnRvU3RyaW5nKCkpLiJcbiI7CiRlID0gbmV3IERCX0Vycm9yKERCX0VSUk9SKTsgcHJpbnQgc3RydG9sb3dlcigkZS0+dG9TdHJpbmcoKSkuIlxuIjsKJGUgPSBuZXcgREJfRXJyb3IoREJfRVJST1JfU1lOVEFYKTsgcHJpbnQgc3RydG9sb3dlcigkZS0+dG9TdHJpbmcoKSkuIlxuIjsKJGUgPSBuZXcgREJfRXJyb3IoREJfRVJST1JfRElWWkVSTyk7IHByaW50IHN0cnRvbG93ZXIoJGUtPnRvU3RyaW5nKCkpLiJcbiI7CgpwcmludCAidGVzdGluZyBkaWZmZXJlbnQgZXJyb3IgbW9kZXMuLi5cbiI7CiRlID0gbmV3IERCX0Vycm9yKERCX0VSUk9SLCBQRUFSX0VSUk9SX1BSSU5UKTsgcHJpbnQgc3RydG9sb3dlcigkZS0+dG9TdHJpbmcoKSkuIlxuIjsKJGUgPSBuZXcgREJfRXJyb3IoREJfRVJST1JfU1lOVEFYLCBQRUFSX0VSUk9SX1RSSUdHRVIpOwoKcHJpbnQgInRlc3RpbmcgZGlmZmVyZW50IGVycm9yIHNlcnZlcml0aWVzLi4uXG4iOwokZSA9IG5ldyBEQl9FcnJvcihEQl9FUlJPUl9TWU5UQVgsIFBFQVJfRVJST1JfVFJJR0dFUiwgRV9VU0VSX05PVElDRSk7CiRlID0gbmV3IERCX0Vycm9yKERCX0VSUk9SX1NZTlRBWCwgUEVBUl9FUlJPUl9UUklHR0VSLCBFX1VTRVJfV0FSTklORyk7CiRlID0gbmV3IERCX0Vycm9yKERCX0VSUk9SX1NZTlRBWCwgUEVBUl9FUlJPUl9UUklHR0VSLCBFX1VTRVJfRVJST1IpOwoKPz4KLS1HRVQtLQotLVBPU1QtLQotLUVYUEVDVC0tCnRlc3RpbmcgZGlmZmVyZW50IGVycm9yIGNvZGVzLi4uCltkYl9lcnJvcjogbWVzc2FnZT0iZGIgZXJyb3I6IHVua25vd24gZXJyb3IiIGNvZGU9LTEgbW9kZT1yZXR1cm4gbGV2ZWw9bm90aWNlIHByZWZpeD0iIiBpbmZvPSIiXQpbZGJfZXJyb3I6IG1lc3NhZ2U9ImRiIGVycm9yOiB0ZXN0IGVycm9yIiBjb2RlPS0xIG1vZGU9cmV0dXJuIGxldmVsPW5vdGljZSBwcmVmaXg9IiIgaW5mbz0iIl0KW2RiX2Vycm9yOiBtZXNzYWdlPSJkYiBlcnJvcjogbm8gZXJyb3IiIGNvZGU9MSBtb2RlPXJldHVybiBsZXZlbD1ub3RpY2UgcHJlZml4PSIiIGluZm89IiJdCltkYl9lcnJvcjogbWVzc2FnZT0iZGIgZXJyb3I6IHVua25vd24gZXJyb3IiIGNvZGU9LTEgbW9kZT1yZXR1cm4gbGV2ZWw9bm90aWNlIHByZWZpeD0iIiBpbmZvPSIiXQpbZGJfZXJyb3I6IG1lc3NhZ2U9ImRiIGVycm9yOiBzeW50YXggZXJyb3IiIGNvZGU9LTIgbW9kZT1yZXR1cm4gbGV2ZWw9bm90aWNlIHByZWZpeD0iIiBpbmZvPSIiXQpbZGJfZXJyb3I6IG1lc3NhZ2U9ImRiIGVycm9yOiBkaXZpc2lvbiBieSB6ZXJvIiBjb2RlPS0xMyBtb2RlPXJldHVybiBsZXZlbD1ub3RpY2UgcHJlZml4PSIiIGluZm89IiJdCnRlc3RpbmcgZGlmZmVyZW50IGVycm9yIG1vZGVzLi4uCkRCIEVycm9yOiB1bmtub3duIGVycm9yW2RiX2Vycm9yOiBtZXNzYWdlPSJkYiBlcnJvcjogdW5rbm93biBlcnJvciIgY29kZT0tMSBtb2RlPXByaW50IGxldmVsPW5vdGljZSBwcmVmaXg9IiIgaW5mbz0iIl0KClVzZXIgTm90aWNlOiBEQiBFcnJvcjogc3ludGF4IGVycm9yIGluIFBFQVIucGhwIG9uIGxpbmUgWFhYCnRlc3RpbmcgZGlmZmVyZW50IGVycm9yIHNlcnZlcml0aWVzLi4uCgpVc2VyIE5vdGljZTogREIgRXJyb3I6IHN5bnRheCBlcnJvciBpbiBQRUFSLnBocCBvbiBsaW5lIFhYWAoKVXNlciBXYXJuaW5nOiBEQiBFcnJvcjogc3ludGF4IGVycm9yIGluIFBFQVIucGhwIG9uIGxpbmUgWFhYCgpVc2VyIEVycm9yOiBEQiBFcnJvcjogc3ludGF4IGVycm9yIGluIFBFQVIucGhwIG9uIGxpbmUgWFhYCg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/db_error2.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREI6OkVycm9yIDIKLS1TS0lQSUYtLQo8P3BocCBjaGRpcihkaXJuYW1lKF9fRklMRV9fKSk7IHJlcXVpcmVfb25jZSAnLi9za2lwaWYuaW5jJzsgPz4KLS1GSUxFLS0KPD9waHAKcmVxdWlyZV9vbmNlICcuL2luY2x1ZGUuaW5jJzsKcmVxdWlyZV9vbmNlICdEQi5waHAnOwoKZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsKCmZ1bmN0aW9uIG15ZnVuYygmJG9iaikgewogICAgcHJpbnQgJ215ZnVuYyBoZXJlLCBvYmo9JwogICAgICAgICAgLiBzdHJ0b2xvd2VyKCRvYmotPnRvU3RyaW5nKCkpIC4gIlxuIjsKfQpmdW5jdGlvbiBteWZ1bmMyKCYkb2JqKSB7CiAgICBwcmludCAnbXlmdW5jMiBoZXJlLCBvYmo9JwogICAgICAgICAgLiBzdHJ0b2xvd2VyKCRvYmotPnRvU3RyaW5nKCkpIC4gIlxuIjsKfQpjbGFzcyBteWNsYXNzIHsKICAgIGZ1bmN0aW9uIG15ZnVuYygmJG9iaikgewogICAgICAgIHByaW50ICdteWNsYXNzOjpteWZ1bmMgaGVyZSwgb2JqPScKICAgICAgICAgIC4gc3RydG9sb3dlcigkb2JqLT50b1N0cmluZygpKSAuICJcbiI7CiAgICB9Cn0KZnVuY3Rpb24gdGVzdF9lcnJvcl9oYW5kbGVyKCRlcnJubywgJGVycm1zZywgJGZpbGUsICRsaW5lLCAkdmFycykgewogICAgaWYgKGRlZmluZWQoJ0VfU1RSSUNUJykpIHsKICAgICAgICBpZiAoJGVycm5vICYgRV9TVFJJQ1QKICAgICAgICAgICAgJiYgKGVycm9yX3JlcG9ydGluZygpICYgRV9TVFJJQ1QpICE9IEVfU1RSSUNUKSB7CiAgICAgICAgICAgIC8vIElnbm9yZSBFX1NUUklDVCBub3RpY2VzIHVubGVzcyB0aGV5IGhhdmUgYmVlbiB0dXJuZWQgb24KICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgZGVmaW5lKCdFX1NUUklDVCcsIDIwNDgpOwogICAgfQogICAgJGVycm9ydHlwZSA9IGFycmF5ICgKICAgICAgICBFX0VSUk9SID0+ICdFcnJvcicsCiAgICAgICAgRV9XQVJOSU5HID0+ICdXYXJuaW5nJywKICAgICAgICBFX1BBUlNFID0+ICdQYXJzaW5nIEVycm9yJywKICAgICAgICBFX05PVElDRSA9PiAnTm90aWNlJywKICAgICAgICBFX0NPUkVfRVJST1IgPT4gJ0NvcmUgRXJyb3InLAogICAgICAgIEVfQ09SRV9XQVJOSU5HID0+ICdDb3JlIFdhcm5pbmcnLAogICAgICAgIEVfQ09NUElMRV9FUlJPUiA9PiAnQ29tcGlsZSBFcnJvcicsCiAgICAgICAgRV9DT01QSUxFX1dBUk5JTkcgPT4gJ0NvbXBpbGUgV2FybmluZycsCiAgICAgICAgRV9VU0VSX0VSUk9SID0+ICdVc2VyIEVycm9yJywKICAgICAgICBFX1VTRVJfV0FSTklORyA9PiAnVXNlciBXYXJuaW5nJywKICAgICAgICBFX1VTRVJfTk9USUNFID0+ICdVc2VyIE5vdGljZScsCiAgICAgICAgRV9TVFJJQ1QgPT4gJ1N0cmljdCBOb3RpY2UnLAogICAgKTsKICAgICRwcmVmaXggPSAkZXJyb3J0eXBlWyRlcnJub107CiAgICBwcmludCBzdHJ0b2xvd2VyKCIkcHJlZml4OiAkZXJybXNnIGluICIgLiBiYXNlbmFtZSgkZmlsZSkKICAgICAgICAgICAgICAgICAgICAgLiAiIG9uIGxpbmUgWFhYXG4iKTsKfQoKJG9iaiA9IG5ldyBteWNsYXNzOwoKJGRiaCA9IERCOjpmYWN0b3J5KCJteXNxbCIpOwoKcHJpbnQgImRlZmF1bHQ6ICI7CiRlID0gJGRiaC0+cmFpc2VFcnJvcigicmV0dXJuIHRlc3RpbmcgZXJyb3IiKTsKcHJpbnQgc3RydG9sb3dlcigkZS0+dG9TdHJpbmcoKSkgLiAiXG4iOwoKcHJpbnQgImdsb2JhbCBkZWZhdWx0OiAiOwpQRUFSOjpzZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICJteWZ1bmMyIik7CiRlID0gJGRiaC0+cmFpc2VFcnJvcigiZ2xvYmFsIGRlZmF1bHQgdGVzdCIpOwoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1BSSU5UKTsKcHJpbnQgIm1vZGU9cHJpbnQ6ICI7CiRlID0gJGRiaC0+cmFpc2VFcnJvcigicHJpbnQgdGVzdGluZyBlcnJvciIpOwpwcmludCAiXG4iOwoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAibXlmdW5jIik7CnByaW50ICJtb2RlPWZ1bmN0aW9uIGNhbGxiYWNrOiAiOwokZSA9ICRkYmgtPnJhaXNlRXJyb3IoImZ1bmN0aW9uIGNhbGxiYWNrIHRlc3RpbmcgZXJyb3IiKTsKCiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9DQUxMQkFDSywgYXJyYXkoJG9iaiwgIm15ZnVuYyIpKTsKcHJpbnQgIm1vZGU9b2JqZWN0IGNhbGxiYWNrOiAiOwokZSA9ICRkYmgtPnJhaXNlRXJyb3IoIm9iamVjdCBjYWxsYmFjayB0ZXN0aW5nIGVycm9yIik7CgpzZXRfZXJyb3JfaGFuZGxlcigidGVzdF9lcnJvcl9oYW5kbGVyIik7CiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9UUklHR0VSKTsKcHJpbnQgIm1vZGU9dHJpZ2dlcjogIjsKJGUgPSAkZGJoLT5yYWlzZUVycm9yKCJ0cmlnZ2VyIHRlc3RpbmcgZXJyb3IiKTsKCj8+Ci0tRVhQRUNULS0KZGVmYXVsdDogW2RiX2Vycm9yOiBtZXNzYWdlPSJkYiBlcnJvcjogcmV0dXJuIHRlc3RpbmcgZXJyb3IiIGNvZGU9LTEgbW9kZT1yZXR1cm4gbGV2ZWw9bm90aWNlIHByZWZpeD0iIiBpbmZvPSIgW2RiIGVycm9yOiB1bmtub3duIGVycm9yXSJdCmdsb2JhbCBkZWZhdWx0OiBteWZ1bmMyIGhlcmUsIG9iaj1bZGJfZXJyb3I6IG1lc3NhZ2U9ImRiIGVycm9yOiBnbG9iYWwgZGVmYXVsdCB0ZXN0IiBjb2RlPS0xIG1vZGU9Y2FsbGJhY2sgY2FsbGJhY2s9bXlmdW5jMiBwcmVmaXg9IiIgaW5mbz0iIFtkYiBlcnJvcjogdW5rbm93biBlcnJvcl0iXQptb2RlPXByaW50OiBEQiBFcnJvcjogcHJpbnQgdGVzdGluZyBlcnJvcgptb2RlPWZ1bmN0aW9uIGNhbGxiYWNrOiBteWZ1bmMgaGVyZSwgb2JqPVtkYl9lcnJvcjogbWVzc2FnZT0iZGIgZXJyb3I6IGZ1bmN0aW9uIGNhbGxiYWNrIHRlc3RpbmcgZXJyb3IiIGNvZGU9LTEgbW9kZT1jYWxsYmFjayBjYWxsYmFjaz1teWZ1bmMgcHJlZml4PSIiIGluZm89IiBbZGIgZXJyb3I6IHVua25vd24gZXJyb3JdIl0KbW9kZT1vYmplY3QgY2FsbGJhY2s6IG15Y2xhc3M6Om15ZnVuYyBoZXJlLCBvYmo9W2RiX2Vycm9yOiBtZXNzYWdlPSJkYiBlcnJvcjogb2JqZWN0IGNhbGxiYWNrIHRlc3RpbmcgZXJyb3IiIGNvZGU9LTEgbW9kZT1jYWxsYmFjayBjYWxsYmFjaz1teWNsYXNzOjpteWZ1bmMgcHJlZml4PSIiIGluZm89IiBbZGIgZXJyb3I6IHVua25vd24gZXJyb3JdIl0KbW9kZT10cmlnZ2VyOiB1c2VyIG5vdGljZTogZGIgZXJyb3I6IHRyaWdnZXIgdGVzdGluZyBlcnJvciBpbiBwZWFyLnBocCBvbiBsaW5lIHh4eAo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/db_factory.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREI6OmZhY3RvcnkKLS1TS0lQSUYtLQo8P3BocCBjaGRpcihkaXJuYW1lKF9fRklMRV9fKSk7IHJlcXVpcmVfb25jZSAnLi9za2lwaWYuaW5jJzsgPz4KLS1GSUxFLS0KPD9waHAgLy8gLSotIEMrKyAtKi0KcmVxdWlyZV9vbmNlICcuL2luY2x1ZGUuaW5jJzsKcmVxdWlyZV9vbmNlICdEQi5waHAnOwoKJGJhY2tlbmRzID0gYXJyYXkoCiAgICAnZGJhc2UnLAogICAgJ2Zic3FsJywKICAgICdpYmFzZScsCiAgICAnaWZ4JywKICAgICdtc3FsJywKICAgICdtc3NxbCcsCiAgICAnbXlzcWwnLAogICAgJ215c3FsaScsCiAgICAnb2NpOCcsCiAgICAnb2RiYycsCiAgICAncGdzcWwnLAogICAgJ3NxbGl0ZScsCiAgICAnc3liYXNlJywKKTsKCmZvcmVhY2ggKCRiYWNrZW5kcyBhcyAkbmFtZSkgewogICAgJG9iaiA9IERCOjpmYWN0b3J5KCRuYW1lKTsKCiAgICBwcmludCAidGVzdGluZyAkbmFtZTogIjsKICAgIGlmIChEQjo6aXNFcnJvcigkb2JqKSkgewoJICAgIHByaW50ICdlcnJvcjogJyAuICRvYmotPmdldE1lc3NhZ2UoKSAuICJcbiI7CiAgICB9IGVsc2UgewoJICAgIHByaW50ICdvYmplY3Q6ICcgLiAkb2JqLT50b1N0cmluZygpIC4gIlxuIjsKICAgIH0KfQoKPz4KLS1HRVQtLQotLVBPU1QtLQotLUVYUEVDVC0tCnRlc3RpbmcgZGJhc2U6IG9iamVjdDogZGJfZGJhc2U6IChwaHB0eXBlPWRiYXNlLCBkYnN5bnRheD1kYmFzZSkKdGVzdGluZyBmYnNxbDogb2JqZWN0OiBkYl9mYnNxbDogKHBocHR5cGU9ZmJzcWwsIGRic3ludGF4PWZic3FsKQp0ZXN0aW5nIGliYXNlOiBvYmplY3Q6IGRiX2liYXNlOiAocGhwdHlwZT1pYmFzZSwgZGJzeW50YXg9aWJhc2UpCnRlc3RpbmcgaWZ4OiBvYmplY3Q6IGRiX2lmeDogKHBocHR5cGU9aWZ4LCBkYnN5bnRheD1pZngpCnRlc3RpbmcgbXNxbDogb2JqZWN0OiBkYl9tc3FsOiAocGhwdHlwZT1tc3FsLCBkYnN5bnRheD1tc3FsKQp0ZXN0aW5nIG1zc3FsOiBvYmplY3Q6IGRiX21zc3FsOiAocGhwdHlwZT1tc3NxbCwgZGJzeW50YXg9bXNzcWwpCnRlc3RpbmcgbXlzcWw6IG9iamVjdDogZGJfbXlzcWw6IChwaHB0eXBlPW15c3FsLCBkYnN5bnRheD1teXNxbCkKdGVzdGluZyBteXNxbGk6IG9iamVjdDogZGJfbXlzcWxpOiAocGhwdHlwZT1teXNxbGksIGRic3ludGF4PW15c3FsaSkKdGVzdGluZyBvY2k4OiBvYmplY3Q6IGRiX29jaTg6IChwaHB0eXBlPW9jaTgsIGRic3ludGF4PW9jaTgpCnRlc3Rpbmcgb2RiYzogb2JqZWN0OiBkYl9vZGJjOiAocGhwdHlwZT1vZGJjLCBkYnN5bnRheD1zcWw5MikKdGVzdGluZyBwZ3NxbDogb2JqZWN0OiBkYl9wZ3NxbDogKHBocHR5cGU9cGdzcWwsIGRic3ludGF4PXBnc3FsKQp0ZXN0aW5nIHNxbGl0ZTogb2JqZWN0OiBkYl9zcWxpdGU6IChwaHB0eXBlPXNxbGl0ZSwgZGJzeW50YXg9c3FsaXRlKQp0ZXN0aW5nIHN5YmFzZTogb2JqZWN0OiBkYl9zeWJhc2U6IChwaHB0eXBlPXN5YmFzZSwgZGJzeW50YXg9c3liYXNlKQo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/db_ismanip.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREI6OmlzTWFuaXAKLS1TS0lQSUYtLQo8P3BocCBjaGRpcihkaXJuYW1lKF9fRklMRV9fKSk7IHJlcXVpcmVfb25jZSAnLi9za2lwaWYuaW5jJzsgPz4KLS1GSUxFLS0KPD9waHAgLy8gLSotIEMrKyAtKi0KcmVxdWlyZV9vbmNlICcuL2luY2x1ZGUuaW5jJzsKcmVxdWlyZV9vbmNlICdEQi5waHAnOwoKZnVuY3Rpb24gdGVzdCgkcXVlcnkpIHsKICAgIHByaW50ZigiJXMgOiAlZFxuIiwgcHJlZ19yZXBsYWNlKCcvXHMrLiovJywgJycsICRxdWVyeSksCiAgICAgICAgICAgREI6OmlzTWFuaXAoJHF1ZXJ5KSk7Cn0KCnByaW50ICJ0ZXN0aW5nIERCOjppc01hbmlwLi4uXG4iOwoKdGVzdCgiU0VMRUNUICogRlJPTSB0YWJsZSIpOwp0ZXN0KCJTZWxlY3QgKiBmcm9tIHRhYmxlIik7CnRlc3QoInNlbGVjdCAqIEZyb20gdGFibGUiKTsKdGVzdCgic0VsRUN0ICogZnJPbSB0YWJsZSIpOwp0ZXN0KCJTRUxFQ1QgRElTVElOQ1QgbmFtZSBGUk9NIHRhYmxlIik7CnRlc3QoIlNFTEVDVCBhLCBiIElOVE8gdGFibGUyIEZST00gdGFibGUxIik7CnRlc3QoIlNFTEVDVCBhLCBiIEZST00gdGFibGUgV0hFUkUgYiA9ICcgSU5UTyAnIik7CnRlc3QoIlVQREFURSB0YWJsZSBTRVQgZm9vID0gJ2JhciciKTsKdGVzdCgiREVMRVRFIEZST00gdGFibGUiKTsKdGVzdCgiZGVsZXRlIGZyb20gdGFibGUgd2hlcmUgaWQgaXMgbnVsbCIpOwp0ZXN0KCJjcmVhdGUgdGFibGUgKGlkIGludGVnZXIsIG5hbWUgdmFyY2hhcigxMDApKSIpOwp0ZXN0KCJDUkVBVEUgU0VRVUVOQ0UgZm9vIik7CnRlc3QoIlwiQ1JFQVRFIFBST0NFRFVSRSBmb29cIiIpOwp0ZXN0KCJHUkFOVCBTRUxFQ1QgT04gdGFibGUgVE8gdXNlciIpOwp0ZXN0KCJSRVZPS0UgU0VMRUNUIE9OIHRhYmxlIEZST00gdXNlciIpOwp0ZXN0KCJTSE9XIE9QVElPTlMiKTsKdGVzdCgiRFJPUCBUQUJMRSBmb28iKTsKdGVzdCgiQUxURVIgVEFCTEUgZm9vIEFERCBDT0xVTU4gKGJhciBJTlRFR0VSKSIpOwp0ZXN0KCIgIFNFTEVDVCAqIEZST00gdGFibGUiKTsKdGVzdCgiICBERUxFVEUgRlJPTSB0YWJsZSIpOwo/PgotLUdFVC0tCi0tUE9TVC0tCi0tRVhQRUNULS0KdGVzdGluZyBEQjo6aXNNYW5pcC4uLgpTRUxFQ1QgOiAwClNlbGVjdCA6IDAKc2VsZWN0IDogMApzRWxFQ3QgOiAwClNFTEVDVCA6IDAKU0VMRUNUIDogMQpTRUxFQ1QgOiAwClVQREFURSA6IDEKREVMRVRFIDogMQpkZWxldGUgOiAxCmNyZWF0ZSA6IDEKQ1JFQVRFIDogMQoiQ1JFQVRFIDogMQpHUkFOVCA6IDEKUkVWT0tFIDogMQpTSE9XIDogMApEUk9QIDogMQpBTFRFUiA6IDEKIDogMAogOiAxCg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/db_parsedsn.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREI6OnBhcnNlRFNOCi0tU0tJUElGLS0KPD9waHAgY2hkaXIoZGlybmFtZShfX0ZJTEVfXykpOyByZXF1aXJlX29uY2UgJy4vc2tpcGlmLmluYyc7ID8+Ci0tRklMRS0tCjw/cGhwIC8vIC0qLSBDKysgLSotCnJlcXVpcmVfb25jZSAnLi9pbmNsdWRlLmluYyc7CnJlcXVpcmVfb25jZSAnREIucGhwJzsKCmZ1bmN0aW9uIHJlcGFyc2VEU04oJGRzbikgewogICAgJHBhcnNlZCA9IERCOjpwYXJzZURTTigkZHNuKTsKICAgICRyZXBhcnNlZCA9IERCOjpwYXJzZURTTihEQjo6Z2V0RFNOU3RyaW5nKCRkc24sIGZhbHNlKSk7CiAgICBpZiAoY291bnQoJGRpZmYgPSBhcnJheV9kaWZmKCRwYXJzZWQsICRyZXBhcnNlZCkpID4gMCkgewogICAgICAgIGVjaG8gIlBhcnNpbmcgdGhlIG9yaWdpbmFsIERTTiBhbmQgdGhlIERTTiBnZW5lcmF0ZWQgYnkgZ2V0RFNOU3RyaW5nIHJlc3VsdHMgaW4gZGlmZmVyZW5jZXM6XG4iOwogICAgICAgIHByaW50ZigiJS0yMHMlLTI5cyUtMjlzXG4iLCAnRmllbGQnLCAnUGFyc2VkJywgJ1JlcGFyc2VkJyk7CiAgICAgICAgcHJpbnRmKCIlLTIwcyUtMjlzJS0yOXNcbiIsICctLS0tLScsICctLS0tLS0nLCAnLS0tLS0tLS0nKTsKICAgICAgICBmb3JlYWNoICgkcGFyc2VkIGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgICAgIHByaW50ZigiJS0yMHMlLTI5cyUtMjlzXG4iLCAka2V5LCAkdmFsdWUsICRyZXBhcnNlZFska2V5XSk7CiAgICAgICAgfQogICAgICAgIGVjaG8gIlRoZSByZXBhcnNlZCBEU04gd2FzOiAiLkRCOjpnZXREU05TdHJpbmcoJGRzbiwgZmFsc2UpLiJcbiI7CiAgICB9Cn0KCmZ1bmN0aW9uIHRlc3QoJGRzbikgewogICAgZWNobyAiRFNOOiAkZHNuXG4iOwogICAgcHJpbnRfcihEQjo6cGFyc2VEU04oJGRzbikpOwogICAgcmVwYXJzZURTTigkZHNuKTsKfQoKZnVuY3Rpb24gdGVzdEFycmF5KCRkc24pIHsKICAgIGVjaG8gIkRTTjogYXJyYXlcbiI7CiAgICBwcmludF9yKERCOjpwYXJzZURTTigkZHNuKSk7CiAgICByZXBhcnNlRFNOKCRkc24pOwp9CgpwcmludCAidGVzdGluZyBEQjo6cGFyc2VEU04uLi5cblxuIjsKCnRlc3QoIm15c3FsIik7CnRlc3QoIm9kYmMobXNzcWwpIik7CnRlc3QoJ29kYmMoZGIyKTovL3VzZXI6cGFzc3dvcmRAL2RhdGFiYXNlJyk7CnRlc3QoJ29kYmMoYWNjZXNzKTovLy9kYXRhYmFzZScpOwp0ZXN0KCdvZGJjOi8vYWRtaW5AL2RhdGFzb3VyY2VOYW1lJyk7CnRlc3QoIm15c3FsOi8vbG9jYWxob3N0Iik7CnRlc3QoIm15c3FsOi8vcmVtb3RlLmhvc3QuY29tL2RiIik7CnRlc3QoIm9jaTg6Ly9zeXN0ZW06bWFuYWdlckAiKTsKdGVzdCgib2NpODovL3VzZXI6cGFzc0B0bnMtbmFtZSIpOwp0ZXN0KCJvZGJjKHNvbGlkKTovL2ZvbzpiYXJAdGNwK2xvY2FsaG9zdCsxMzEzIik7ICAvLyBkZXByZWNhdGVkCnRlc3QoInBnc3FsOi8vdXNlckB1bml4K2xvY2FsaG9zdC9wZWFyIik7ICAgICAgICAgIC8vIGRlcHJlY2F0ZWQKdGVzdCgiaWJhc2U6Ly91c2VyJTQwZG9tYWluOnBhc3N3b3JkQGhvc3QiKTsKdGVzdCgiaWJhc2U6Ly91c2VyQGRvbWFpbjpwYXNzQHdvcmRAL2RhdGFiYXNlIik7ICAgLy8gYWxzbyBzdXBwb3J0ZWQKdGVzdCgiaWZ4Oi8vdXNlckBkb21haW46cGFzc0B3b3JkQGhvc3QuY29tLy91c3IvZGIvZ2VuZXJhbC5kYiIpOwp0ZXN0KCdpZng6Ly9yZW1vdGUuaG9zdC5jb20vYzpcd2luZG93c1xteS5kYicpOwp0ZXN0KCdvY2k4Oi8vU0hPT1RPVVQ6KioqKioqQChERVNDUklQVElPTj0oQUREUkVTU19MSVNUPShBRERSRVNTPShQUk9UT0NPTD1UQ1ApKEhPU1Q9MTkyLjE2OC4xMDEuMTYxKShQT1JUPTE1MjEpKSkoQ09OTkVDVF9EQVRBPShTRVJWSUNFX05BTUU9VElTKSkpJyk7CgovLyBuZXcgZm9ybWF0cwp0ZXN0KCJvZGJjKHNvbGlkKTovL2ZvbzpiYXJAbG9jYWxob3N0OjEzMTMiKTsKdGVzdCgicGdzcWw6Ly91c2VyQHVuaXgoKS9wZWFyIik7CnRlc3QoIm15c3FsOi8vdXNlckB1bml4KC9wYXRoL3RvL3NvY2tldCkvcGVhciIpOwp0ZXN0KCJwZ3NxbDovL3VzZXJAdGNwKCkvcGVhciIpOwp0ZXN0KCJwZ3NxbDovL3VzZXJAdGNwKHNvbWVob3N0KS9wZWFyIik7CnRlc3QoInBnc3FsOi8vdXNlcjpwYXNzQHdvcmRAdGNwKHNvbWVob3N0Ojc3NzcpL3BlYXIiKTsKCi8vIHNwZWNpYWwgYmFja2VuZCBvcHRpb25zCnRlc3QoJ2liYXNlOi8vdXNlcjpwYXNzQGxvY2FsaG9zdC8vdmFyL2xpYi9kYmFzZS5kYmY/cm9sZT1mb28nKTsKdGVzdCgnZGJhc2U6Ly9ALz9yb2xlPWZvbyZkaWFsZWN0PWJhcicpOwp0ZXN0KCdzcWxpdGU6Ly8vL3VuaXgvcGF0aC90by9kYXRhYmFzZT9vcHRpb249dmFsdWUmYW5vdGhlcm9wdGlvbj1hbm90aGVydmFsdWUnKTsKdGVzdCgnc3FsaXRlOi8vL2M6L3dpbi9wYXRoL3RvL2RhdGFiYXNlP29wdGlvbj12YWx1ZScpOwoKLy8gc29tZSBleGFtcGxlcyBmcm9tIG1hbnVhbAp0ZXN0KCdteXNxbDovL3VzZXJuYW1lQGhvc3RzcGVjJyk7CnRlc3QoJ215c3FsOi8vaG9zdHNwZWMvZGF0YWJhc2UnKTsKdGVzdCgnbXlzcWw6Ly9ob3N0c3BlYycpOwp0ZXN0KCdteXNxbDovLy9kYXRhYmFzZScpOwoKLy8gYXJyYXkgdGVzdHMKJGFycmF5ID0gYXJyYXkoCiAgICAncGhwdHlwZScgID0+ICdteXNxbCcsCiAgICAnaG9zdHNwZWMnID0+ICdmb29iYXInLAopOwp0ZXN0QXJyYXkoJGFycmF5KTsKCj8+Ci0tR0VULS0KLS1QT1NULS0KLS1FWFBFQ1QtLQp0ZXN0aW5nIERCOjpwYXJzZURTTi4uLgoKRFNOOiBteXNxbApBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gbXlzcWwKICAgIFtkYnN5bnRheF0gPT4gbXlzcWwKICAgIFt1c2VybmFtZV0gPT4gCiAgICBbcGFzc3dvcmRdID0+IAogICAgW3Byb3RvY29sXSA9PiAKICAgIFtob3N0c3BlY10gPT4gCiAgICBbcG9ydF0gPT4gCiAgICBbc29ja2V0XSA9PiAKICAgIFtkYXRhYmFzZV0gPT4gCikKRFNOOiBvZGJjKG1zc3FsKQpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gb2RiYwogICAgW2Ric3ludGF4XSA9PiBtc3NxbAogICAgW3VzZXJuYW1lXSA9PiAKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiAKKQpEU046IG9kYmMoZGIyKTovL3VzZXI6cGFzc3dvcmRAL2RhdGFiYXNlCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBvZGJjCiAgICBbZGJzeW50YXhdID0+IGRiMgogICAgW3VzZXJuYW1lXSA9PiB1c2VyCiAgICBbcGFzc3dvcmRdID0+IHBhc3N3b3JkCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBkYXRhYmFzZQopCkRTTjogb2RiYyhhY2Nlc3MpOi8vL2RhdGFiYXNlCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBvZGJjCiAgICBbZGJzeW50YXhdID0+IGFjY2VzcwogICAgW3VzZXJuYW1lXSA9PiAKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBkYXRhYmFzZQopCkRTTjogb2RiYzovL2FkbWluQC9kYXRhc291cmNlTmFtZQpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gb2RiYwogICAgW2Ric3ludGF4XSA9PiBvZGJjCiAgICBbdXNlcm5hbWVdID0+IGFkbWluCiAgICBbcGFzc3dvcmRdID0+IAogICAgW3Byb3RvY29sXSA9PiB0Y3AKICAgIFtob3N0c3BlY10gPT4gCiAgICBbcG9ydF0gPT4gCiAgICBbc29ja2V0XSA9PiAKICAgIFtkYXRhYmFzZV0gPT4gZGF0YXNvdXJjZU5hbWUKKQpEU046IG15c3FsOi8vbG9jYWxob3N0CkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBteXNxbAogICAgW2Ric3ludGF4XSA9PiBteXNxbAogICAgW3VzZXJuYW1lXSA9PiAKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiBsb2NhbGhvc3QKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiAKKQpEU046IG15c3FsOi8vcmVtb3RlLmhvc3QuY29tL2RiCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBteXNxbAogICAgW2Ric3ludGF4XSA9PiBteXNxbAogICAgW3VzZXJuYW1lXSA9PiAKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiByZW1vdGUuaG9zdC5jb20KICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBkYgopCkRTTjogb2NpODovL3N5c3RlbTptYW5hZ2VyQApBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gb2NpOAogICAgW2Ric3ludGF4XSA9PiBvY2k4CiAgICBbdXNlcm5hbWVdID0+IHN5c3RlbQogICAgW3Bhc3N3b3JkXSA9PiBtYW5hZ2VyCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiAKKQpEU046IG9jaTg6Ly91c2VyOnBhc3NAdG5zLW5hbWUKQXJyYXkKKAogICAgW3BocHR5cGVdID0+IG9jaTgKICAgIFtkYnN5bnRheF0gPT4gb2NpOAogICAgW3VzZXJuYW1lXSA9PiB1c2VyCiAgICBbcGFzc3dvcmRdID0+IHBhc3MKICAgIFtwcm90b2NvbF0gPT4gdGNwCiAgICBbaG9zdHNwZWNdID0+IHRucy1uYW1lCiAgICBbcG9ydF0gPT4gCiAgICBbc29ja2V0XSA9PiAKICAgIFtkYXRhYmFzZV0gPT4gCikKRFNOOiBvZGJjKHNvbGlkKTovL2ZvbzpiYXJAdGNwK2xvY2FsaG9zdCsxMzEzCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBvZGJjCiAgICBbZGJzeW50YXhdID0+IHNvbGlkCiAgICBbdXNlcm5hbWVdID0+IGZvbwogICAgW3Bhc3N3b3JkXSA9PiBiYXIKICAgIFtwcm90b2NvbF0gPT4gdGNwCiAgICBbaG9zdHNwZWNdID0+IGxvY2FsaG9zdCsxMzEzCiAgICBbcG9ydF0gPT4gCiAgICBbc29ja2V0XSA9PiAKICAgIFtkYXRhYmFzZV0gPT4gCikKRFNOOiBwZ3NxbDovL3VzZXJAdW5peCtsb2NhbGhvc3QvcGVhcgpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gcGdzcWwKICAgIFtkYnN5bnRheF0gPT4gcGdzcWwKICAgIFt1c2VybmFtZV0gPT4gdXNlcgogICAgW3Bhc3N3b3JkXSA9PiAKICAgIFtwcm90b2NvbF0gPT4gdW5peAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IGxvY2FsaG9zdAogICAgW2RhdGFiYXNlXSA9PiBwZWFyCikKRFNOOiBpYmFzZTovL3VzZXIlNDBkb21haW46cGFzc3dvcmRAaG9zdApBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gaWJhc2UKICAgIFtkYnN5bnRheF0gPT4gaWJhc2UKICAgIFt1c2VybmFtZV0gPT4gdXNlckBkb21haW4KICAgIFtwYXNzd29yZF0gPT4gcGFzc3dvcmQKICAgIFtwcm90b2NvbF0gPT4gdGNwCiAgICBbaG9zdHNwZWNdID0+IGhvc3QKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiAKKQpEU046IGliYXNlOi8vdXNlckBkb21haW46cGFzc0B3b3JkQC9kYXRhYmFzZQpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gaWJhc2UKICAgIFtkYnN5bnRheF0gPT4gaWJhc2UKICAgIFt1c2VybmFtZV0gPT4gdXNlckBkb21haW4KICAgIFtwYXNzd29yZF0gPT4gcGFzc0B3b3JkCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBkYXRhYmFzZQopCkRTTjogaWZ4Oi8vdXNlckBkb21haW46cGFzc0B3b3JkQGhvc3QuY29tLy91c3IvZGIvZ2VuZXJhbC5kYgpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gaWZ4CiAgICBbZGJzeW50YXhdID0+IGlmeAogICAgW3VzZXJuYW1lXSA9PiB1c2VyQGRvbWFpbgogICAgW3Bhc3N3b3JkXSA9PiBwYXNzQHdvcmQKICAgIFtwcm90b2NvbF0gPT4gdGNwCiAgICBbaG9zdHNwZWNdID0+IGhvc3QuY29tCiAgICBbcG9ydF0gPT4gCiAgICBbc29ja2V0XSA9PiAKICAgIFtkYXRhYmFzZV0gPT4gL3Vzci9kYi9nZW5lcmFsLmRiCikKRFNOOiBpZng6Ly9yZW1vdGUuaG9zdC5jb20vYzpcd2luZG93c1xteS5kYgpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gaWZ4CiAgICBbZGJzeW50YXhdID0+IGlmeAogICAgW3VzZXJuYW1lXSA9PiAKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiByZW1vdGUuaG9zdC5jb20KICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBjOlx3aW5kb3dzXG15LmRiCikKRFNOOiBvY2k4Oi8vU0hPT1RPVVQ6KioqKioqQChERVNDUklQVElPTj0oQUREUkVTU19MSVNUPShBRERSRVNTPShQUk9UT0NPTD1UQ1ApKEhPU1Q9MTkyLjE2OC4xMDEuMTYxKShQT1JUPTE1MjEpKSkoQ09OTkVDVF9EQVRBPShTRVJWSUNFX05BTUU9VElTKSkpCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBvY2k4CiAgICBbZGJzeW50YXhdID0+IG9jaTgKICAgIFt1c2VybmFtZV0gPT4gU0hPT1RPVVQKICAgIFtwYXNzd29yZF0gPT4gKioqKioqCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiAoREVTQ1JJUFRJT049KEFERFJFU1NfTElTVD0oQUREUkVTUz0oUFJPVE9DT0w9VENQKShIT1NUPTE5Mi4xNjguMTAxLjE2MSkoUE9SVD0xNTIxKSkpKENPTk5FQ1RfREFUQT0oU0VSVklDRV9OQU1FPVRJUykpKQogICAgW3BvcnRdID0+IAogICAgW3NvY2tldF0gPT4gCiAgICBbZGF0YWJhc2VdID0+IAopCkRTTjogb2RiYyhzb2xpZCk6Ly9mb286YmFyQGxvY2FsaG9zdDoxMzEzCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBvZGJjCiAgICBbZGJzeW50YXhdID0+IHNvbGlkCiAgICBbdXNlcm5hbWVdID0+IGZvbwogICAgW3Bhc3N3b3JkXSA9PiBiYXIKICAgIFtwcm90b2NvbF0gPT4gdGNwCiAgICBbaG9zdHNwZWNdID0+IGxvY2FsaG9zdAogICAgW3BvcnRdID0+IDEzMTMKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiAKKQpEU046IHBnc3FsOi8vdXNlckB1bml4KCkvcGVhcgpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gcGdzcWwKICAgIFtkYnN5bnRheF0gPT4gcGdzcWwKICAgIFt1c2VybmFtZV0gPT4gdXNlcgogICAgW3Bhc3N3b3JkXSA9PiAKICAgIFtwcm90b2NvbF0gPT4gdW5peAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBwZWFyCikKRFNOOiBteXNxbDovL3VzZXJAdW5peCgvcGF0aC90by9zb2NrZXQpL3BlYXIKQXJyYXkKKAogICAgW3BocHR5cGVdID0+IG15c3FsCiAgICBbZGJzeW50YXhdID0+IG15c3FsCiAgICBbdXNlcm5hbWVdID0+IHVzZXIKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IHVuaXgKICAgIFtob3N0c3BlY10gPT4gCiAgICBbcG9ydF0gPT4gCiAgICBbc29ja2V0XSA9PiAvcGF0aC90by9zb2NrZXQKICAgIFtkYXRhYmFzZV0gPT4gcGVhcgopCkRTTjogcGdzcWw6Ly91c2VyQHRjcCgpL3BlYXIKQXJyYXkKKAogICAgW3BocHR5cGVdID0+IHBnc3FsCiAgICBbZGJzeW50YXhdID0+IHBnc3FsCiAgICBbdXNlcm5hbWVdID0+IHVzZXIKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBwZWFyCikKRFNOOiBwZ3NxbDovL3VzZXJAdGNwKHNvbWVob3N0KS9wZWFyCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBwZ3NxbAogICAgW2Ric3ludGF4XSA9PiBwZ3NxbAogICAgW3VzZXJuYW1lXSA9PiB1c2VyCiAgICBbcGFzc3dvcmRdID0+IAogICAgW3Byb3RvY29sXSA9PiB0Y3AKICAgIFtob3N0c3BlY10gPT4gc29tZWhvc3QKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBwZWFyCikKRFNOOiBwZ3NxbDovL3VzZXI6cGFzc0B3b3JkQHRjcChzb21laG9zdDo3Nzc3KS9wZWFyCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBwZ3NxbAogICAgW2Ric3ludGF4XSA9PiBwZ3NxbAogICAgW3VzZXJuYW1lXSA9PiB1c2VyCiAgICBbcGFzc3dvcmRdID0+IHBhc3NAd29yZAogICAgW3Byb3RvY29sXSA9PiB0Y3AKICAgIFtob3N0c3BlY10gPT4gc29tZWhvc3QKICAgIFtwb3J0XSA9PiA3Nzc3CiAgICBbc29ja2V0XSA9PiAKICAgIFtkYXRhYmFzZV0gPT4gcGVhcgopCkRTTjogaWJhc2U6Ly91c2VyOnBhc3NAbG9jYWxob3N0Ly92YXIvbGliL2RiYXNlLmRiZj9yb2xlPWZvbwpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gaWJhc2UKICAgIFtkYnN5bnRheF0gPT4gaWJhc2UKICAgIFt1c2VybmFtZV0gPT4gdXNlcgogICAgW3Bhc3N3b3JkXSA9PiBwYXNzCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiBsb2NhbGhvc3QKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiAvdmFyL2xpYi9kYmFzZS5kYmYKICAgIFtyb2xlXSA9PiBmb28KKQpEU046IGRiYXNlOi8vQC8/cm9sZT1mb28mZGlhbGVjdD1iYXIKQXJyYXkKKAogICAgW3BocHR5cGVdID0+IGRiYXNlCiAgICBbZGJzeW50YXhdID0+IGRiYXNlCiAgICBbdXNlcm5hbWVdID0+IAogICAgW3Bhc3N3b3JkXSA9PiAKICAgIFtwcm90b2NvbF0gPT4gdGNwCiAgICBbaG9zdHNwZWNdID0+IAogICAgW3BvcnRdID0+IAogICAgW3NvY2tldF0gPT4gCiAgICBbZGF0YWJhc2VdID0+IAogICAgW3JvbGVdID0+IGZvbwogICAgW2RpYWxlY3RdID0+IGJhcgopCkRTTjogc3FsaXRlOi8vLy91bml4L3BhdGgvdG8vZGF0YWJhc2U/b3B0aW9uPXZhbHVlJmFub3RoZXJvcHRpb249YW5vdGhlcnZhbHVlCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBzcWxpdGUKICAgIFtkYnN5bnRheF0gPT4gc3FsaXRlCiAgICBbdXNlcm5hbWVdID0+IAogICAgW3Bhc3N3b3JkXSA9PiAKICAgIFtwcm90b2NvbF0gPT4gdGNwCiAgICBbaG9zdHNwZWNdID0+IAogICAgW3BvcnRdID0+IAogICAgW3NvY2tldF0gPT4gCiAgICBbZGF0YWJhc2VdID0+IC91bml4L3BhdGgvdG8vZGF0YWJhc2UKICAgIFtvcHRpb25dID0+IHZhbHVlCiAgICBbYW5vdGhlcm9wdGlvbl0gPT4gYW5vdGhlcnZhbHVlCikKRFNOOiBzcWxpdGU6Ly8vYzovd2luL3BhdGgvdG8vZGF0YWJhc2U/b3B0aW9uPXZhbHVlCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBzcWxpdGUKICAgIFtkYnN5bnRheF0gPT4gc3FsaXRlCiAgICBbdXNlcm5hbWVdID0+IAogICAgW3Bhc3N3b3JkXSA9PiAKICAgIFtwcm90b2NvbF0gPT4gdGNwCiAgICBbaG9zdHNwZWNdID0+IAogICAgW3BvcnRdID0+IAogICAgW3NvY2tldF0gPT4gCiAgICBbZGF0YWJhc2VdID0+IGM6L3dpbi9wYXRoL3RvL2RhdGFiYXNlCiAgICBbb3B0aW9uXSA9PiB2YWx1ZQopCkRTTjogbXlzcWw6Ly91c2VybmFtZUBob3N0c3BlYwpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gbXlzcWwKICAgIFtkYnN5bnRheF0gPT4gbXlzcWwKICAgIFt1c2VybmFtZV0gPT4gdXNlcm5hbWUKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiBob3N0c3BlYwogICAgW3BvcnRdID0+IAogICAgW3NvY2tldF0gPT4gCiAgICBbZGF0YWJhc2VdID0+IAopCkRTTjogbXlzcWw6Ly9ob3N0c3BlYy9kYXRhYmFzZQpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gbXlzcWwKICAgIFtkYnN5bnRheF0gPT4gbXlzcWwKICAgIFt1c2VybmFtZV0gPT4gCiAgICBbcGFzc3dvcmRdID0+IAogICAgW3Byb3RvY29sXSA9PiB0Y3AKICAgIFtob3N0c3BlY10gPT4gaG9zdHNwZWMKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBkYXRhYmFzZQopCkRTTjogbXlzcWw6Ly9ob3N0c3BlYwpBcnJheQooCiAgICBbcGhwdHlwZV0gPT4gbXlzcWwKICAgIFtkYnN5bnRheF0gPT4gbXlzcWwKICAgIFt1c2VybmFtZV0gPT4gCiAgICBbcGFzc3dvcmRdID0+IAogICAgW3Byb3RvY29sXSA9PiB0Y3AKICAgIFtob3N0c3BlY10gPT4gaG9zdHNwZWMKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiAKKQpEU046IG15c3FsOi8vL2RhdGFiYXNlCkFycmF5CigKICAgIFtwaHB0eXBlXSA9PiBteXNxbAogICAgW2Ric3ludGF4XSA9PiBteXNxbAogICAgW3VzZXJuYW1lXSA9PiAKICAgIFtwYXNzd29yZF0gPT4gCiAgICBbcHJvdG9jb2xdID0+IHRjcAogICAgW2hvc3RzcGVjXSA9PiAKICAgIFtwb3J0XSA9PiAKICAgIFtzb2NrZXRdID0+IAogICAgW2RhdGFiYXNlXSA9PiBkYXRhYmFzZQopCkRTTjogYXJyYXkKQXJyYXkKKAogICAgW3BocHR5cGVdID0+IG15c3FsCiAgICBbZGJzeW50YXhdID0+IG15c3FsCiAgICBbdXNlcm5hbWVdID0+IAogICAgW3Bhc3N3b3JkXSA9PiAKICAgIFtwcm90b2NvbF0gPT4gCiAgICBbaG9zdHNwZWNdID0+IGZvb2JhcgogICAgW3BvcnRdID0+IAogICAgW3NvY2tldF0gPT4gCiAgICBbZGF0YWJhc2VdID0+IAopCg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/01connect.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpjb25uZWN0Ci0tSU5JLS0KZXJyb3JfcmVwb3J0aW5nID0gMjA0NwotLVNLSVBJRi0tCjw/cGhwIGNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsgcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOyA/PgotLUZJTEUtLQo8P3BocApyZXF1aXJlX29uY2UgJy4vY29ubmVjdC5pbmMnOwoKLyoqCiAqIERldGVybWluZSBpZiB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiBtYXRjaGVzIHdoYXQncyBleHBlY3RlZAogKgogKiBAcGFyYW0gb2JqZWN0ICRkYmggICB0aGUgUEVBUiBEQiBvYmplY3QKICogQHBhcmFtIHN0cmluZyAkbmFtZSAgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgdGVzdAogKgogKiBAcmV0dXJuIHZvaWQKICovCmZ1bmN0aW9uIGNoZWNrX2RiaCgkZGJoLCAkbmFtZSkgewogICAgaWYgKERCOjppc0Vycm9yKCRkYmgpKSB7CiAgICAgICAgZGllKCdjb25uZWN0LmluYzogJyAuICRkYmgtPnRvU3RyaW5nKCkpOwogICAgfQogICAgaWYgKGlzX29iamVjdCgkZGJoKSkgewogICAgICAgIHByaW50ICIkbmFtZSBpcyBhbiBvYmplY3RcbiI7CiAgICB9CiAgICBzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgICAgICBjYXNlICdkYmFzZSc6CiAgICAgICAgICAgIGlmIChpc19pbnQoJGRiaC0+Y29ubmVjdGlvbikpIHsKICAgICAgICAgICAgICAgIHByaW50ICIkbmFtZSBpcyBjb25uZWN0ZWRcbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBwcmludCAiJG5hbWUgTk9UIGNvbm5lY3RlZFxuIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdteXNxbGknOgogICAgICAgICAgICBpZiAoaXNfYSgkZGJoLT5jb25uZWN0aW9uLCAnbXlzcWxpJykpIHsKICAgICAgICAgICAgICAgIHByaW50ICIkbmFtZSBpcyBjb25uZWN0ZWRcbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBwcmludCAiJG5hbWUgTk9UIGNvbm5lY3RlZFxuIjsKICAgICAgICAgICAgfQogICAgICAgICAgICBicmVhazsKICAgICAgICBjYXNlICdzeWJhc2UnOgogICAgICAgICAgICBpZiAoZ2V0dHlwZSgkZGJoLT5jb25uZWN0aW9uKSA9PSAncmVzb3VyY2UnIHx8CiAgICAgICAgICAgICAgICAoZ2V0dHlwZSgkZGJoLT5jb25uZWN0aW9uKSA9PSAnaW50ZWdlcicgJiYgJGRiaC0+Y29ubmVjdGlvbiA+IDApKSB7CiAgICAgICAgICAgICAgICBwcmludCAiJG5hbWUgaXMgY29ubmVjdGVkXG4iOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcHJpbnQgIiRuYW1lIE5PVCBjb25uZWN0ZWRcbiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgaWYgKGdldHR5cGUoJGRiaC0+Y29ubmVjdGlvbikgPT0gJ3Jlc291cmNlJykgewogICAgICAgICAgICAgICAgcHJpbnQgIiRuYW1lIGlzIGNvbm5lY3RlZFxuIjsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIHByaW50ICIkbmFtZSBOT1QgY29ubmVjdGVkXG4iOwogICAgICAgICAgICB9CiAgICB9Cn0KCgpjaGVja19kYmgoJGRiaCwgJyRkYmgnKTsKCgokdGVzdF9hcnJheV9kc24gPSBEQjo6cGFyc2VEU04oJGRzbik7CmZvcmVhY2ggKCR0ZXN0X2FycmF5X2RzbiBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgaWYgKCR2YWx1ZSA9PT0gZmFsc2UpIHsKICAgICAgICB1bnNldCgkdGVzdF9hcnJheV9kc25bJGtleV0pOwogICAgfQp9CgokZGJoYSA9JiBEQjo6Y29ubmVjdCgkdGVzdF9hcnJheV9kc24sICRvcHRpb25zKTsKY2hlY2tfZGJoKCRkYmhhLCAnJGRiaGEnKTsKCgokdG1wICA9IHNlcmlhbGl6ZSgkZGJoYSk7CiRkYmh1ID0gdW5zZXJpYWxpemUoJHRtcCk7CmNoZWNrX2RiaCgkZGJodSwgJyRkYmh1Jyk7Cgo/PgotLUVYUEVDVC0tCiRkYmggaXMgYW4gb2JqZWN0CiRkYmggaXMgY29ubmVjdGVkCiRkYmhhIGlzIGFuIG9iamVjdAokZGJoYSBpcyBjb25uZWN0ZWQKJGRiaHUgaXMgYW4gb2JqZWN0CiRkYmh1IGlzIGNvbm5lY3RlZAo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/02fetch.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpmZXRjaAotLUlOSS0tCmVycm9yX3JlcG9ydGluZyA9IDIwNDcKLS1TS0lQSUYtLQo8P3BocCBjaGRpcihkaXJuYW1lKF9fRklMRV9fKSk7IHJlcXVpcmVfb25jZSAnLi9za2lwaWYuaW5jJzsgPz4KLS1GSUxFLS0KPD9waHAKcmVxdWlyZV9vbmNlICcuL21rdGFibGUuaW5jJzsKcmVxdWlyZV9vbmNlICcuLi9mZXRjaG1vZGVzLmluYyc7Cj8+Ci0tRVhQRUNULS0KdGVzdGluZyBmZXRjaHJvdzoKcm93IDE6IDQyLCBiaW5nLCBUaGlzIGlzIGEgdGVzdCwgMTk5OS0xMS0yMQpyb3cgMjogMSwgb25lLCBPbmUsIDIwMDEtMDItMTYKcm93IDM6IDIsIHR3bywgVHdvLCAyMDAxLTAyLTE1CnJvdyA0OiAzLCB0aHJlZSwgVGhyZWUsIDIwMDEtMDItMTQKcm93IDU6IE5VTEwKdGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaHJvdyBkZWZhdWx0IGRlZmF1bHQsIHBvcnRhYmlsaXR5IG1vZGUgREJfUE9SVEFCSUxJVFlfQUxMIF4gREJfUE9SVEFCSUxJVFlfUlRSSU0KMCAxIDIgMwpvdXRwdXQgbWF0Y2hlZCBleHBlY3RlZCBmb3JtYXQKdGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaGludG8gZGVmYXVsdCBkZWZhdWx0CjAgMSAyIDMKNDIgYmluZyBUaGlzIGlzIGEgdGVzdCAxOTk5LTExLTIxCnRlc3RpbmcgZmV0Y2htb2RlczogZmV0Y2hyb3cgb3JkZXJlZCBkZWZhdWx0CjAgMSAyIDMKdGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaHJvdyBhc3NvYyBkZWZhdWx0CmEgYiBjYyBkCnRlc3RpbmcgZmV0Y2htb2RlczogZmV0Y2hyb3cgb3JkZXJlZCBkZWZhdWx0IHdpdGggYXNzb2Mgc3BlY2lmaWVkCmEgYiBjYyBkCnRlc3RpbmcgZmV0Y2htb2RlczogZmV0Y2hyb3cgYXNzb2MgZGVmYXVsdCB3aXRoIG9yZGVyZWQgc3BlY2lmaWVkCjAgMSAyIDMKdGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaGludG8gb3JkZXJlZCBkZWZhdWx0CjAgMSAyIDMKdGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaGludG8gYXNzb2MgZGVmYXVsdAphIGIgY2MgZAp0ZXN0aW5nIGZldGNobW9kZXM6IGZldGNoaW50byBvcmRlcmVkIGRlZmF1bHQgd2l0aCBhc3NvYyBzcGVjaWZpZWQKYSBiIGNjIGQKdGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaGludG8gYXNzb2MgZGVmYXVsdCB3aXRoIG9yZGVyZWQgc3BlY2lmaWVkCjAgMSAyIDMK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/03simplequery.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpzaW1wbGVRdWVyeQotLUlOSS0tCmVycm9yX3JlcG9ydGluZyA9IDIwNDcKLS1TS0lQSUYtLQo8P3BocCBjaGRpcihkaXJuYW1lKF9fRklMRV9fKSk7IHJlcXVpcmVfb25jZSAnLi9za2lwaWYuaW5jJzsgPz4KLS1GSUxFLS0KPD9waHAKcmVxdWlyZV9vbmNlICcuL21rdGFibGUuaW5jJzsKcmVxdWlyZV9vbmNlICcuLi9zaW1wbGVxdWVyeS5pbmMnOwo/PgotLUVYUEVDVC0tCnBhc3NlZAo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/04numcols.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpudW1Db2xzCi0tSU5JLS0KZXJyb3JfcmVwb3J0aW5nID0gMjA0NwotLVNLSVBJRi0tCjw/cGhwIGNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsgcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOyA/PgotLUZJTEUtLQo8P3BocApyZXF1aXJlX29uY2UgJy4vbWt0YWJsZS5pbmMnOwpyZXF1aXJlX29uY2UgJy4uL251bWNvbHMuaW5jJzsKPz4KLS1FWFBFQ1QtLQoxCjIKMwo0Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/05sequences.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpzZXF1ZW5jZXMKLS1JTkktLQplcnJvcl9yZXBvcnRpbmcgPSAyMDQ3Ci0tU0tJUElGLS0KPD9waHAKZXJyb3JfcmVwb3J0aW5nKEVfQUxMKTsKY2hkaXIoZGlybmFtZShfX0ZJTEVfXykpOwpyZXF1aXJlX29uY2UgJy4vc2tpcGlmLmluYyc7CiR0YWJsZUluZm8gPSAkZGJoLT5kcm9wU2VxdWVuY2UoJ2Fqa2RzbGZham9pamthZGllJyk7CmlmIChEQjo6aXNFcnJvcigkdGFibGVJbmZvKSAmJiAkdGFibGVJbmZvLT5jb2RlID09IERCX0VSUk9SX05PVF9DQVBBQkxFKSB7CiAgICBkaWUoInNraXAgJHRhYmxlSW5mby0+bWVzc2FnZSIpOwp9Cj8+Ci0tRklMRS0tCjw/cGhwCnJlcXVpcmVfb25jZSAnLi9jb25uZWN0LmluYyc7CnJlcXVpcmVfb25jZSAnLi4vc2VxdWVuY2VzLmluYyc7Cj8+Ci0tRVhQRUNULS0KYW4gZXJyb3IgaXMgdGhlIHByb3BlciByZXNwb25zZSBoZXJlCmFuIGVycm9yIGNvdWdodCBieSB0aGUgZXJyb3IgaGFuZGxlciBpcyBnb29kCmE9MQpiPTIKYi1hPTEKYz0xCmQ9MQplPTEK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/06prepexec.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpwcmVwYXJlL2V4ZWN1dGUKLS1JTkktLQplcnJvcl9yZXBvcnRpbmcgPSAyMDQ3Ci0tU0tJUElGLS0KPD9waHAgY2hkaXIoZGlybmFtZShfX0ZJTEVfXykpOyByZXF1aXJlX29uY2UgJy4vc2tpcGlmLmluYyc7ID8+Ci0tRklMRS0tCjw/cGhwCnJlcXVpcmVfb25jZSAnLi9ta3RhYmxlLmluYyc7CnJlcXVpcmVfb25jZSAnLi4vcHJlcGV4ZS5pbmMnOwo/PgotLUVYUEVDVC0tCi0tLS0tLS0tLS0tLTEtLS0tLS0tLS0tLS0Kc3RoMSxzdGgyLHN0aDMsc3RoNCBjcmVhdGVkCnN0aDE6ID8gYXMgcGFyYW0sIHBhc3NpbmcgYXMgYXJyYXkuLi4gc3RoMSBleGVjdXRlZApzdGgyOiAhIGFuZCA/IGFzIHBhcmFtcywgcGFzc2luZyBhcyBhcnJheS4uLiBzdGgyIGV4ZWN1dGVkCnN0aDM6ID8sICEgYW5kICYgYXMgcGFyYW1zLCBwYXNzaW5nIGFzIGFycmF5Li4uIHN0aDMgZXhlY3V0ZWQKc3RoNDogbm8gcGFyYW1zLi4uIHN0aDQgZXhlY3V0ZWQKcmVzdWx0czoKfDcyIC0gYSAtICAtIHwKfDcyIC0gZGlyZWN0IC0gIC0gfAp8NzIgLSBpdCdzIGdvb2QgLSBvcGFxdWUgcGxhY2Vob2xkZXIncyB0ZXN0IC0gfAp8NzIgLSB0aGF0J3MgcmlnaHQgLSAgLSB8CgotLS0tLS0tLS0tLS0yLS0tLS0tLS0tLS0tCnJlc3VsdHM6Cnw3MiAtIHNldDEgLSBvcGFxdWUgcGxhY2Vob2xkZXIncyB0ZXN0IC0gMTIzNC01Ni03OHwKfDcyIC0gc2V0MiAtIG9wYXF1ZSBwbGFjZWhvbGRlcidzIHRlc3QgLSB8Cnw3MiAtIHNldDMgLSBvcGFxdWUgcGxhY2Vob2xkZXIncyB0ZXN0IC0gfAoKLS0tLS0tLS0tLS0tMy0tLS0tLS0tLS0tLQpUUlVFCkZBTFNFCgotLS0tLS0tLS0tLS00LS0tLS0tLS0tLS0tCnw3MiAtIHNldDEgLSBvcGFxdWUgcGxhY2Vob2xkZXIncyB0ZXN0IC0gMTIzNC01Ni03OHwKfDcyIC0gc2V0MiAtIG9wYXF1ZSBwbGFjZWhvbGRlcidzIHRlc3QgLSB8Cnw3MiAtIHNldDMgLSBvcGFxdWUgcGxhY2Vob2xkZXIncyB0ZXN0IC0gfAp+fgp+fgp8NzIgLSBzZXQxIC0gb3BhcXVlIHBsYWNlaG9sZGVyJ3MgdGVzdCAtIDEyMzQtNTYtNzh8Cn5+Cnw3MiAtIHNldDEgLSBvcGFxdWUgcGxhY2Vob2xkZXIncyB0ZXN0IC0gMTIzNC01Ni03OHwKfDcyIC0gc2V0MiAtIG9wYXF1ZSBwbGFjZWhvbGRlcidzIHRlc3QgLSB8Cnw3MiAtIHNldDMgLSBvcGFxdWUgcGxhY2Vob2xkZXIncyB0ZXN0IC0gfAp+fgoKLS0tLS0tLS0tLS0tNS0tLS0tLS0tLS0tLQppbnNlcnQ6IG9rYXkKYSA9IDExLCBiID0gdGhyZWUsIGQgPSBnb3QgZXhwZWN0ZWQgb3V0Y29tZQo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/08affectedrows.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjphZmZlY3RlZFJvd3MKLS1JTkktLQplcnJvcl9yZXBvcnRpbmcgPSAyMDQ3Ci0tU0tJUElGLS0KPD9waHAgY2hkaXIoZGlybmFtZShfX0ZJTEVfXykpOyByZXF1aXJlX29uY2UgJy4vc2tpcGlmLmluYyc7ID8+Ci0tRklMRS0tCjw/cGhwCnJlcXVpcmVfb25jZSAnLi9ta3RhYmxlLmluYyc7CgovKioKICogTG9jYWwgZXJyb3IgY2FsbGJhY2sgaGFuZGxlci4KICoKICogRHJvcHMgdGhlIHBocHRlc3QgdGFibGUsIHByaW50cyBvdXQgYW4gZXJyb3IgbWVzc2FnZSBhbmQga2lsbHMgdGhlCiAqIHByb2Nlc3MuCiAqCiAqIEBwYXJhbSBvYmplY3QgICRvICBQRUFSIGVycm9yIG9iamVjdCBhdXRvbWF0aWNhbGx5IHBhc3NlZCB0byB0aGlzIG1ldGhvZAogKiBAcmV0dXJuIHZvaWQKICogQHNlZSBQRUFSOjpzZXRFcnJvckhhbmRsaW5nKCkKICovCmZ1bmN0aW9uIHBlKCRvKSB7CiAgICBnbG9iYWwgJGRiaDsKCiAgICAkZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgIGRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsKCiAgICBkaWUoJG8tPnRvU3RyaW5nKCkpOwp9CgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICdwZScpOwoKCi8vIENsZWFuIHRhYmxlCiRkYmgtPnF1ZXJ5KCJERUxFVEUgRlJPTSBwaHB0ZXN0Iik7CgovLyBBZmZlY3RlZCByb3dzIGJ5IElOU0VSVCBzdGF0ZW1lbnQKJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBocHRlc3QgKGEsYikgVkFMVUVTKDEsICd0ZXN0JykiKTsKJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBocHRlc3QgKGEsYikgVkFMVUVTKDIsICd0ZXN0JykiKTsKcHJpbnRmKCIlZCBhZnRlciBpbnNlcnRcbiIsICRkYmgtPmFmZmVjdGVkUm93cygpKTsKCi8vIEFmZmVjdGVkIHJvd3MgYnkgU0VMRUNUIHN0YXRlbWVudAokZGJoLT5xdWVyeSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0Iik7CnByaW50ZigiJWQgYWZ0ZXIgc2VsZWN0XG4iLCAkZGJoLT5hZmZlY3RlZFJvd3MoKSk7CiRkYmgtPnF1ZXJ5KCJERUxFVEUgRlJPTSBwaHB0ZXN0IFdIRVJFIGIgPSAndGVzdCciKTsKcHJpbnRmKCIlZCBhZnRlciBkZWxldGVcbiIsICRkYmgtPmFmZmVjdGVkUm93cygpKTsKCi8vIEFmZmVjdGVkIHJvd3MgYnkgREVMRVRFIHN0YXRlbWVudAokZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCAoYSxiKSBWQUxVRVMoMSwgJ3Rlc3QnKSIpOwokZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCAoYSxiKSBWQUxVRVMoMiwgJ3Rlc3QnKSIpOwokZGJoLT5xdWVyeSgiREVMRVRFIEZST00gcGhwdGVzdCIpOwpwcmludGYoIiVkIGFmdGVyIGRlbGV0ZSBhbGxcbiIsICRkYmgtPmFmZmVjdGVkUm93cygpKTsKCgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdCcpOwoKPz4KLS1FWFBFQ1QtLQoxIGFmdGVyIGluc2VydAowIGFmdGVyIHNlbGVjdAoyIGFmdGVyIGRlbGV0ZQoyIGFmdGVyIGRlbGV0ZSBhbGwK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/09numrows.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpudW1Sb3dzCi0tSU5JLS0KZXJyb3JfcmVwb3J0aW5nID0gMjA0NwotLVNLSVBJRi0tCjw/cGhwIGNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsgcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOyA/PgotLUZJTEUtLQo8P3BocApyZXF1aXJlX29uY2UgJy4vbWt0YWJsZS5pbmMnOwpyZXF1aXJlX29uY2UgJy4uL251bXJvd3MuaW5jJzsKPz4KLS1FWFBFQ1QtLQood2FudCAxKSBnb3QgMSBmcm9tIGZpcnN0Cih3YW50IDIpIGdvdCAyIGZyb20gMAood2FudCAzKSBnb3QgMyBmcm9tIDEKKHdhbnQgNCkgZ290IDQgZnJvbSAyCih3YW50IDUpIGdvdCA1IGZyb20gMwood2FudCA2KSBnb3QgNiBmcm9tIDQKKHdhbnQgNSkgZ290IDUgZnJvbSA+IDAgKHBhc3NpbmcgcGFyYW1zIHRvIHF1ZXJ5KQood2FudCA0KSBnb3QgNCBmcm9tIDwgNCAoZG9pbmcgcHJlcGFyZS9leGVjdXRlKQood2FudCAyKSBnb3QgMiBmcm9tIDUgYW5kIDYgbm90IGRlbGV0ZWQKKHdhbnQgMCkgZ290IDAgZnJvbSA8IDAK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/10errormap.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjplcnJvciBtYXBwaW5nCi0tSU5JLS0KZXJyb3JfcmVwb3J0aW5nID0gMjA0NwotLVNLSVBJRi0tCjw/cGhwIGNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsgcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOyA/PgotLUZJTEUtLQo8P3BocApyZXF1aXJlX29uY2UgJy4vbWt0YWJsZS5pbmMnOwpyZXF1aXJlX29uY2UgJy4uL2Vycm9ycy5pbmMnOwo/PgotLUVYUEVDVC0tCkRCX0VSUk9SX05PU1VDSFRBQkxFIGZvciBzZWxlY3Q6ICBtYXRjaGVzIGV4cGVjdGVkIG91dGNvbWUKREJfRVJST1JfTk9TVUNIVEFCTEUgZm9yIGRyb3A6ICBtYXRjaGVzIGV4cGVjdGVkIG91dGNvbWUKREJfRVJST1JfTk9UX0ZPVU5EIGZvciBkcm9wIGluZGV4OiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX0FMUkVBRFlfRVhJU1RTIGZvciBjcmVhdGUgdGFibGU6ICBtYXRjaGVzIGV4cGVjdGVkIG91dGNvbWUKREJfRVJST1JfQUxSRUFEWV9FWElTVFMgZm9yIGNyZWF0ZSBpbmRleDogIG1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZQpEQl9FUlJPUl9DT05TVFJBSU5UIGZvciBwcmltYXJ5IGtleSBpbnNlcnQgZHVwbGljYXRlOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX0NPTlNUUkFJTlQgZm9yIHByaW1hcnkga2V5IHVwZGF0ZSBkdXBsaWNhdGU6ICBtYXRjaGVzIGV4cGVjdGVkIG91dGNvbWUKREJfRVJST1JfQ09OU1RSQUlOVCBmb3IgdW5pcXVlIGtleSBpbnNlcnQgZHVwbGljYXRlOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX0NPTlNUUkFJTlQgZm9yIHVuaXF1ZSBrZXkgdXBkYXRlIGR1cGxpY2F0ZTogIG1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZQpEQl9FUlJPUl9DT05TVFJBSU5UIGZvciBmb3JlaWduIGtleSBvbiBpbnNlcnQ6ICBtYXRjaGVzIGV4cGVjdGVkIG91dGNvbWUKREJfRVJST1JfQ09OU1RSQUlOVCBmb3IgZm9yZWlnbiBrZXkgb24gZGVsZXRlOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwgb24gaW5zZXJ0OiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwgb24gdXBkYXRlOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX05PU1VDSEZJRUxEIGpvaW5pbmcgT04gYm9ndXMgY29sdW1uOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX05PU1VDSEZJRUxEIGpvaW5pbmcgVVNJTkcgYm9ndXMgY29sdW1uOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX0RJVlpFUk86ICBtYXRjaGVzIGV4cGVjdGVkIG91dGNvbWUKREJfRVJST1JfSU5WQUxJRF9OVU1CRVIgcHV0dGluZyBjaGFycyBpbiBJTlQgY29sdW1uOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX0lOVkFMSURfTlVNQkVSIHB1dHRpbmcgZmxvYXQgaW4gSU5UIGNvbHVtbjogIG1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZQpEQl9FUlJPUl9JTlZBTElEX05VTUJFUiBwdXR0aW5nIGV4Y2Vzc2l2ZSBpbnQgaW4gSU5UIGNvbHVtbjogIG1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZQpEQl9FUlJPUl9JTlZBTElEX05VTUJFUiBwdXR0aW5nIGludCBpbiBDSEFSIGNvbHVtbjogIG1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZQpEQl9FUlJPUl9OT1NVQ0hGSUVMRDogIG1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZQpEQl9FUlJPUl9TWU5UQVg6ICBtYXRjaGVzIGV4cGVjdGVkIG91dGNvbWUKREJfRVJST1JfVkFMVUVfQ09VTlRfT05fUk9XOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lCkRCX0VSUk9SX0lOVkFMSUQgb24gQ0hBUiBjb2x1bW4gZGF0YSB0b28gbG9uZzogIG1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZQpEQl9FUlJPUl9JTlZBTElEIG9uIFZBUkNIQVIgY29sdW1uIGRhdGEgdG9vIGxvbmc6ICBtYXRjaGVzIGV4cGVjdGVkIG91dGNvbWUK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/11transactions.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjp0cmFuc2FjdGlvbiB0ZXN0Ci0tSU5JLS0KZXJyb3JfcmVwb3J0aW5nID0gMjA0NwotLVNLSVBJRi0tCjw/cGhwCmNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsgcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOwppZiAoISRkYmgtPmZlYXR1cmVzWyd0cmFuc2FjdGlvbnMnXSkgewogICAgZGllKCdza2lwIHRoaXMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgdHJhbnNhY3Rpb25zJyk7Cn0KPz4KLS1GSUxFLS0KPD9waHAKJG5lZWRpbm5vZGIgPSB0cnVlOwpyZXF1aXJlX29uY2UgJy4vbWt0YWJsZS5pbmMnOwpyZXF1aXJlX29uY2UgJy4uL3RyYW5zYWN0aW9ucy5pbmMnOwo/PgotLUVYUEVDVC0tCjEpIGFmdGVyIGF1dG9jb21taXQ6IGJpbmcgb25lLiAgb3BzPW9rCjIpIGJlZm9yZSBjb21taXQ6IGJpbmcgb25lIHR3byB0aHJlZS4gIG9wcz1vawozKSBhZnRlciBjb21taXQ6IGJpbmcgb25lIHR3byB0aHJlZS4gIG9wcz1vawo0KSBiZWZvcmUgcm9sbGJhY2s6IGJpbmcgb25lIHR3byB0aHJlZSBmb3VyIGZpdmUuICBvcHM9b2sKNSkgYWZ0ZXIgcm9sbGJhY2s6IGJpbmcgb25lIHR3byB0aHJlZS4gIG9wcz1vawo2KSBiZWZvcmUgYXV0b2NvbW1pdCtyb2xsYmFjazogYmluZyBvbmUgdHdvIHRocmVlIHNpeCBzZXZlbi4gIG9wcz1vawo3KSBhZnRlciBhdXRvY29tbWl0K3JvbGxiYWNrOiBiaW5nIG9uZSB0d28gdGhyZWUgc2l4IHNldmVuLiAgb3BzPW9rCjgpIHRlc3RpbmcgdGhhdCBzZWxlY3QgZG9lc24ndCBkaXN0dXJiZSBvcGNvdW50OiBvawo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/13limit.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpyb3cgbGltaXQKLS1JTkktLQplcnJvcl9yZXBvcnRpbmcgPSAyMDQ3Ci0tU0tJUElGLS0KPD9waHAgY2hkaXIoZGlybmFtZShfX0ZJTEVfXykpOyByZXF1aXJlX29uY2UgJy4vc2tpcGlmLmluYyc7ID8+Ci0tRklMRS0tCjw/cGhwCnJlcXVpcmVfb25jZSAnLi9jb25uZWN0LmluYyc7CnJlcXVpcmVfb25jZSAnLi9kcm9wdGFibGUuaW5jJzsKcmVxdWlyZV9vbmNlICcuLi9saW1pdC5pbmMnOwo/PgotLUVYUEVDVC0tCj09PT09PT0gRnJvbTogMCB8fCBOdW1iZXIgb2Ygcm93cyB0byBmZXRjaDogMTAgPT09PT09PQoxLi0gcmVzdWx0IDAKMi4tIHJlc3VsdCAxCjMuLSByZXN1bHQgMgo0Li0gcmVzdWx0IDMKNS4tIHJlc3VsdCA0CjYuLSByZXN1bHQgNQo3Li0gcmVzdWx0IDYKOC4tIHJlc3VsdCA3CjkuLSByZXN1bHQgOAoxMC4tIHJlc3VsdCA5ClJvdyBjb3VudCBmb3IgbGltaXRlZCByZXN1bHQ6IDEwCj09PT09PT0gRnJvbTogMTAgfHwgTnVtYmVyIG9mIHJvd3MgdG8gZmV0Y2g6IDEwID09PT09PT0KMTEuLSByZXN1bHQgMTAKMTIuLSByZXN1bHQgMTEKMTMuLSByZXN1bHQgMTIKMTQuLSByZXN1bHQgMTMKMTUuLSByZXN1bHQgMTQKMTYuLSByZXN1bHQgMTUKMTcuLSByZXN1bHQgMTYKMTguLSByZXN1bHQgMTcKMTkuLSByZXN1bHQgMTgKMjAuLSByZXN1bHQgMTkKUm93IGNvdW50IGZvciBsaW1pdGVkIHJlc3VsdDogMTAKPT09PT09PSBGcm9tOiAyMCB8fCBOdW1iZXIgb2Ygcm93cyB0byBmZXRjaDogMTAgPT09PT09PQoyMS4tIHJlc3VsdCAyMAoyMi4tIHJlc3VsdCAyMQoyMy4tIHJlc3VsdCAyMgoyNC4tIHJlc3VsdCAyMwoyNS4tIHJlc3VsdCAyNAoyNi4tIHJlc3VsdCAyNQoyNy4tIHJlc3VsdCAyNgoyOC4tIHJlc3VsdCAyNwoyOS4tIHJlc3VsdCAyOAozMC4tIHJlc3VsdCAyOQpSb3cgY291bnQgZm9yIGxpbWl0ZWQgcmVzdWx0OiAxMAo9PT09PT09IEZyb206IDMwIHx8IE51bWJlciBvZiByb3dzIHRvIGZldGNoOiAxMCA9PT09PT09CjMxLi0gcmVzdWx0IDMwCjMyLi0gcmVzdWx0IDMxCjMzLi0gcmVzdWx0IDMyClJvdyBjb3VudCBmb3IgbGltaXRlZCByZXN1bHQ6IDMKPT09PT09PSBQYXNzaW5nICRwYXJhbXMgfHwgRnJvbTogMTEgfHwgTnVtYmVyIG9mIHJvd3MgdG8gZmV0Y2g6IDMgPT09PT09PQoxMi4tIHJlc3VsdCAxMQoxMy4tIHJlc3VsdCAxMgoxNC4tIHJlc3VsdCAxMwo9PT09PT09IEZyb206IDAgfHwgTnVtYmVyIG9mIHJvd3MgdG8gZmV0Y2g6IDMgfHwgSXRlcmF0aW9uczogMTAgPT09PT09PQpSb3cgY291bnQgZm9yIGxpbWl0ZWQgcmVzdWx0OiAzCg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/14fetchmode_object.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpmZXRjaG1vZGUgb2JqZWN0Ci0tSU5JLS0KZXJyb3JfcmVwb3J0aW5nID0gMjA0NwotLVNLSVBJRi0tCjw/cGhwIGNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsgcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOyA/PgotLUZJTEUtLQo8P3BocApyZXF1aXJlX29uY2UgJy4vbWt0YWJsZS5pbmMnOwpyZXF1aXJlX29uY2UgJy4uL2ZldGNobW9kZV9vYmplY3QuaW5jJzsKPz4KLS1FWFBFQ1QtLQotLS0gZmV0Y2ggd2l0aCBwYXJhbSBEQl9GRVRDSE1PREVfT0JKRUNUIC0tLQpzdGRjbGFzcyAtPiBhIGIgY2MgZApzdGRjbGFzcyAtPiBhIGIgY2MgZAotLS0gZmV0Y2ggd2l0aCBkZWZhdWx0IGZldGNobW9kZSBEQl9GRVRDSE1PREVfT0JKRUNUIC0tLQpzdGRjbGFzcyAtPiBhIGIgY2MgZApzdGRjbGFzcyAtPiBhIGIgY2MgZAotLS0gZmV0Y2ggd2l0aCBkZWZhdWx0IGZldGNobW9kZSBEQl9GRVRDSE1PREVfT0JKRUNUIGFuZCBjbGFzcyBEQl9yb3cgLS0tCmRiX3JvdyAtPiBhIGIgY2MgZApkYl9yb3cgLT4gYSBiIGNjIGQKLS0tIGZldGNoIHdpdGggZGVmYXVsdCBmZXRjaG1vZGUgREJfRkVUQ0hNT0RFX09CSkVDVCB3aXRoIG5vIGNsYXNzIHRoZW4gREJfcm93IC0tLQpzdGRjbGFzcyAtPiBhIGIgY2MgZApkYl9yb3cgLT4gYSBiIGNjIGQK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/15quote.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpxdW90ZQotLUlOSS0tCmVycm9yX3JlcG9ydGluZyA9IDIwNDcKLS1TS0lQSUYtLQo8P3BocCBjaGRpcihkaXJuYW1lKF9fRklMRV9fKSk7IHJlcXVpcmVfb25jZSAnLi9za2lwaWYuaW5jJzsgPz4KLS1GSUxFLS0KPD9waHAKcmVxdWlyZV9vbmNlICcuL2Nvbm5lY3QuaW5jJzsKcmVxdWlyZV9vbmNlICcuL2Ryb3B0YWJsZS5pbmMnOwoKCi8qKgogKiBMb2NhbCBlcnJvciBjYWxsYmFjayBoYW5kbGVyLgogKgogKiBEcm9wcyB0aGUgcGhwdGVzdCB0YWJsZSwgcHJpbnRzIG91dCBhbiBlcnJvciBtZXNzYWdlIGFuZCBraWxscyB0aGUKICogcHJvY2Vzcy4KICoKICogQHBhcmFtIG9iamVjdCAgJG8gIFBFQVIgZXJyb3Igb2JqZWN0IGF1dG9tYXRpY2FsbHkgcGFzc2VkIHRvIHRoaXMgbWV0aG9kCiAqIEByZXR1cm4gdm9pZAogKiBAc2VlIFBFQVI6OnNldEVycm9ySGFuZGxpbmcoKQogKi8KZnVuY3Rpb24gcGUoJG8pIHsKICAgIGdsb2JhbCAkZGJoOwoKICAgICRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwogICAgZHJvcF90YWJsZSgkZGJoLCAncGVhcnF1b3RlJyk7CgogICAgZGllKCRvLT50b1N0cmluZygpKTsKfQoKLy8gREJNUyBib29sZWFuIGNvbHVtbiB0eXBlIHNpbXVsYXRpb24uLi4KJGJvb2xlYW5fY29sX3R5cGUgPSBhcnJheSgKICAgICdkYmFzZScgID0+ICdMb2dpY2FsJywKICAgICdmYnNxbCcgID0+ICdCT09MRUFOJywKICAgICdpYmFzZScgID0+ICdTTUFMTElOVCcsCiAgICAnaWZ4JyAgICA9PiAnU01BTExJTlQnLAogICAgJ21zcWwnICAgPT4gJ0lOVEVHRVInLAogICAgJ21zc3FsJyAgPT4gJ0JJVCcsCiAgICAnbXlzcWwnICA9PiAnVElOWUlOVCgxKScsCiAgICAnbXlzcWxpJyA9PiAnVElOWUlOVCgxKScsCiAgICAnb2NpOCcgICA9PiAnTlVNQkVSKDEpJywKICAgICdvZGJjJyAgID0+ICdTTUFMTElOVCcsCiAgICAncGdzcWwnICA9PiAnQk9PTEVBTicsCiAgICAnc3FsaXRlJyA9PiAnSU5URUdFUicsCiAgICAnc3liYXNlJyA9PiAnVElOWUlOVCcsCik7CgovLyBhZGp1c3QgdGhpbmdzIGZvciBzcGVjaWZpYyBEQk1TJ3MKCmlmICgkZGJoLT5waHB0eXBlID09ICdvZGJjJykgewogICAgaWYgKCRkYmgtPmRic3ludGF4ID09ICdvZGJjJykgewogICAgICAgICR0eXBlID0gJGRiaC0+cGhwdHlwZTsKICAgIH0gZWxzZSB7CiAgICAgICAgJHR5cGUgPSAkZGJoLT5kYnN5bnRheDsKICAgIH0KfSBlbHNlIHsKICAgICR0eXBlID0gJGRiaC0+cGhwdHlwZTsKfQoKc3dpdGNoICgkdHlwZSkgewogICAgY2FzZSAnYWNjZXNzJzoKICAgICAgICAkZGVjaW1hbCA9ICdTSU5HTEUnOwogICAgICAgICRudWxsID0gJyc7CiAgICAgICAgJGNociAgPSAnVkFSQ0hBUig4KSc7CiAgICAgICAgJGlkZW50aWZpZXIgPSAncVx1dCAiZG50JzsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ2RiMic6CiAgICBjYXNlICdpYmFzZSc6CiAgICAgICAgJGRlY2ltYWwgPSAnREVDSU1BTCgzLDEpJzsKICAgICAgICAkbnVsbCA9ICcnOwogICAgICAgICRjaHIgID0gJ1ZBUkNIQVIoOCknOwogICAgICAgICRpZGVudGlmaWVyID0gJ3FcdXRdICJkblt0JzsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ2lmeCc6CiAgICAgICAgLy8gZG9pbmcgdGhpcyBmb3IgaWZ4IHRvIGtlZXAgY2VydGFpbiB2ZXJzaW9ucyBoYXBweQogICAgICAgICRkZWNpbWFsID0gJ0RFQ0lNQUwoMywxKSc7CiAgICAgICAgJG51bGwgPSAnJzsKICAgICAgICAkY2hyICA9ICdDSEFSKDgpJzsKICAgICAgICAkaWRlbnRpZmllciA9ICcnOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnbXNxbCc6CiAgICAgICAgJGRlY2ltYWwgPSAnUkVBTCc7CiAgICAgICAgJG51bGwgPSAnJzsKICAgICAgICAkY2hyICA9ICdDSEFSKDgpJzsKICAgICAgICAkaWRlbnRpZmllciA9ICcnOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnZmJzcWwnOgogICAgY2FzZSAnb2NpOCc6CiAgICAgICAgJGRlY2ltYWwgPSAnREVDSU1BTCgzLDEpJzsKICAgICAgICAkbnVsbCA9ICcnOwogICAgICAgICRjaHIgID0gJ1ZBUkNIQVIoOCknOwogICAgICAgICRpZGVudGlmaWVyID0gJ3FcdXRdIGRuW3QnOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICAkZGVjaW1hbCA9ICdERUNJTUFMKDMsMSknOwogICAgICAgICRudWxsID0gJ05VTEwnOwogICAgICAgICRjaHIgID0gJ1ZBUkNIQVIoOCknOwogICAgICAgICRpZGVudGlmaWVyID0gJ3FcdXRdICJkblt0JzsKfQoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CmRyb3BfdGFibGUoJGRiaCwgJ3BlYXJxdW90ZScpOwoKCmlmICgkaWRlbnRpZmllcikgewogICAgc3dpdGNoICgkZGJoLT5waHB0eXBlKSB7CiAgICAgICAgY2FzZSAnc3liYXNlJzoKICAgICAgICAgICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCdzZXQgcXVvdGVkX2lkZW50aWZpZXIgb24nKTsKICAgICAgICAgICAgaWYgKERCOjppc0Vycm9yKCRyZXMpICkgewogICAgICAgICAgICAgICAgcGUoJHJlcyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgIH0KICAgICRjcmVhdGUgPSAkZGJoLT5xdWVyeSgiCiAgICAgICAgQ1JFQVRFIFRBQkxFIHBlYXJxdW90ZSAoCiAgICAgICAgICBuICRkZWNpbWFsICRudWxsLAogICAgICAgICAgcyAkY2hyICRudWxsLAogICAgICAgICAgIiAuICRkYmgtPnF1b3RlSWRlbnRpZmllcigkaWRlbnRpZmllcikgLiAiICRkZWNpbWFsICRudWxsLAogICAgICAgICAgYiB7JGJvb2xlYW5fY29sX3R5cGVbJGRiaC0+cGhwdHlwZV19ICRudWxsCiAgICAgICAgKQogICAgIik7CgogICAgaWYgKERCOjppc0Vycm9yKCRjcmVhdGUpICkgewogICAgICAgIHBlKCRjcmVhdGUpOwogICAgfQoKICAgICRpbmZvID0gJGRiaC0+dGFibGVJbmZvKCdwZWFycXVvdGUnKTsKICAgIGlmIChEQjo6aXNFcnJvcigkaW5mbykgKSB7CiAgICAgICAgaWYgKCRpbmZvLT5jb2RlID09IERCX0VSUk9SX05PVF9DQVBBQkxFKSB7CiAgICAgICAgICAgIHByaW50ICJHb3Qgb3V0Y29tZSBleHBlY3RlZCBmcm9tIGRlbGltaXRlZCBpZGVudGlmaWVyLlxuIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmludCAidGFibGVJbmZvKCkgZmFpbGVkLlxuIjsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGlmICgkaWRlbnRpZmllciA9PSAkaW5mb1syXVsnbmFtZSddKSB7CiAgICAgICAgICAgIHByaW50ICJHb3Qgb3V0Y29tZSBleHBlY3RlZCBmcm9tIGRlbGltaXRlZCBpZGVudGlmaWVyLlxuIjsKICAgICAgICAgICAgLy8gcHJpbnQgIkNPTFVNTiBOQU1FIElTOiB7JGluZm9bMl1bJ25hbWUnXX1cbiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcHJpbnQgIkV4cGVjdGVkIGNvbHVtbiBuYW1lOiAnJGlkZW50aWZpZXInIC4uLiAiOwogICAgICAgICAgICBwcmludCAiQWN0dWFsIGNvbHVtbiBuYW1lOiAneyRpbmZvWzJdWyduYW1lJ119J1xuIjsKICAgICAgICB9CiAgICB9Cgp9IGVsc2UgewogICAgJGRiaC0+cXVlcnkoIgogICAgICAgIENSRUFURSBUQUJMRSBwZWFycXVvdGUgKAogICAgICAgICAgbiAkZGVjaW1hbCAkbnVsbCwKICAgICAgICAgIHMgJGNociAkbnVsbCwKICAgICAgICAgIHBsYWluaWRlbnRpZmllciAkZGVjaW1hbCAkbnVsbCwKICAgICAgICAgIGIgeyRib29sZWFuX2NvbF90eXBlWyRkYmgtPnBocHR5cGVdfSAkbnVsbAogICAgICAgICkKICAgICIpOwogICAgcHJpbnQgIkdvdCBvdXRjb21lIGV4cGVjdGVkIGZyb20gZGVsaW1pdGVkIGlkZW50aWZpZXIuXG4iOwp9CgoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAncGUnKTsKCgokc3RyaW5ncyA9IGFycmF5KAogICAgIiciLAogICAgIlwiIiwKICAgICJcXCIsCiAgICAiJSIsCiAgICAiXyIsCiAgICAiJyciLAogICAgIlwiXCIiLAogICAgIlxcXFwiLAogICAgIlxcJ1xcJyIsCiAgICAiXFxcIlxcXCIiCik7CgokbnVtcyA9IGFycmF5KAogICAgMTIuMywKICAgIDE1LAopOwoKJGJvb2xzID0gYXJyYXkoCiAgICBUUlVFLAogICAgRkFMU0UsCik7CgoKZWNobyAiU3RyaW5nIGVzY2FwZSB0ZXN0OiAiOwpmb3JlYWNoICgkc3RyaW5ncyBhcyAkcykgewogICAgJHF1b3RlZCA9ICRkYmgtPnF1b3RlU21hcnQoJHMpOwogICAgJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBlYXJxdW90ZSAocykgVkFMVUVTICgkcXVvdGVkKSIpOwp9CiRkaWZmID0gYXJyYXlfZGlmZigkc3RyaW5ncywgJHJlcyA9ICRkYmgtPmdldENvbCgiU0VMRUNUIHMgRlJPTSBwZWFycXVvdGUiKSk7CmlmIChjb3VudCgkZGlmZikgPiAwKSB7CiAgICBlY2hvICJGQUlMIjsKICAgIHByaW50X3IoJHN0cmluZ3MpOwogICAgcHJpbnRfcigkcmVzKTsKfSBlbHNlIHsKICAgIGVjaG8gIk9LIjsKfQoKJGRiaC0+cXVlcnkoIkRFTEVURSBGUk9NIHBlYXJxdW90ZSIpOwoKCmVjaG8gIlxuTnVtYmVyIGVzY2FwZSB0ZXN0OiAiOwpmb3JlYWNoICgkbnVtcyBhcyAkbikgewogICAgJHF1b3RlZCA9ICRkYmgtPnF1b3RlU21hcnQoJG4pOwogICAgJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBlYXJxdW90ZSAobikgVkFMVUVTICgkcXVvdGVkKSIpOwp9CgokZGlmZiA9IGFycmF5KCk7CiRyZXMgPSYgJGRiaC0+Z2V0Q29sKCdTRUxFQ1QgbiBGUk9NIHBlYXJxdW90ZSBPUkRFUiBCWSBuJyk7CmZvcmVhY2ggKCRudW1zIGFzICRrZXkgPT4gJHZhbCkgewogICAgaWYgKCR2YWwgIT0gJHJlc1ska2V5XSkgewogICAgICAgICRkaWZmW10gPSAiJHZhbCAhPSB7JHJlc1ska2V5XX0iOwogICAgfQp9CgppZiAoY291bnQoJGRpZmYpID4gMCkgewogICAgZWNobyAiRkFJTFxuIjsKICAgIHByaW50X3IoJGRpZmYpOwp9IGVsc2UgewogICAgZWNobyAnT0snOwp9CgokZGJoLT5xdWVyeSgnREVMRVRFIEZST00gcGVhcnF1b3RlJyk7CgoKZWNobyAiXG5Cb29sZWFuIGVzY2FwZSB0ZXN0OiAiOwokaSA9IDE7CmZvcmVhY2ggKCRib29scyBhcyAkYikgewogICAgJHF1b3RlZCA9ICRkYmgtPnF1b3RlU21hcnQoJGIpOwogICAgJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBlYXJxdW90ZSAobiwgYikgVkFMVUVTICgkaSwgJHF1b3RlZCkiKTsKICAgICRpKys7Cn0KCiRkaWZmID0gYXJyYXkoKTsKJHJlcyA9JiAkZGJoLT5nZXRDb2woJ1NFTEVDVCBiLCBuIEZST00gcGVhcnF1b3RlIE9SREVSIEJZIG4nKTsKZm9yZWFjaCAoJGJvb2xzIGFzICRrZXkgPT4gJHZhbCkgewogICAgaWYgKCR2YWwgPT09IHRydWUpIHsKICAgICAgICBpZiAoJHJlc1ska2V5XSA9PSAxIHx8ICRyZXNbJGtleV0gPT0gdHJ1ZSB8fAogICAgICAgICAgICBzdWJzdHIoc3RydG9sb3dlcigkcmVzWyRrZXldKSwgMCwgMSkgPT0gJ3QnKQogICAgICAgIHsKICAgICAgICAgICAgLy8gZ29vZAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRkaWZmW10gPSAiaW46dHJ1ZSAhPSBvdXQ6eyRyZXNbJGtleV19IjsKICAgICAgICB9CiAgICB9IGVsc2UgewogICAgICAgIGlmICgkcmVzWyRrZXldID09IDAgfHwgJHJlc1ska2V5XSA9PSBmYWxzZSB8fAogICAgICAgICAgICBzdWJzdHIoc3RydG9sb3dlcigkcmVzWyRrZXldKSwgMCwgMSkgPT0gJ2YnKQogICAgICAgIHsKICAgICAgICAgICAgLy8gZ29vZAogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRkaWZmW10gPSAiaW46ZmFsc2UgIT0gb3V0OnskcmVzWyRrZXldfSI7CiAgICAgICAgfQogICAgfQp9CgppZiAoY291bnQoJGRpZmYpID4gMCkgewogICAgZWNobyAiRkFJTFxuIjsKICAgIHByaW50X3IoJGRpZmYpOwp9IGVsc2UgewogICAgZWNobyAiT0tcbiI7Cn0KCgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKZHJvcF90YWJsZSgkZGJoLCAncGVhcnF1b3RlJyk7Cgo/PgotLUVYUEVDVC0tCkdvdCBvdXRjb21lIGV4cGVjdGVkIGZyb20gZGVsaW1pdGVkIGlkZW50aWZpZXIuClN0cmluZyBlc2NhcGUgdGVzdDogT0sKTnVtYmVyIGVzY2FwZSB0ZXN0OiBPSwpCb29sZWFuIGVzY2FwZSB0ZXN0OiBPSwo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/16tableinfo.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjp0YWJsZUluZm8KLS1JTkktLQplcnJvcl9yZXBvcnRpbmcgPSAyMDQ3Ci0tU0tJUElGLS0KPD9waHAKCi8qKgogKiBDYWxscyB0YWJsZUluZm8oKSBpbiB2YXJpb3VzIHdheXMgYW5kIGNoZWNrcyB0byBzZWUgdGhhdCB0aGUgb3V0cHV0CiAqIG1hdGNoZXMgd2hhdCdzIGV4cGVjdGVkLgogKgogKiBUaGVzZSB0ZXN0cyBhY2NvdW50IGZvciBlYWNoIERCTVMgdXNpbmcgZGlmZmVyZW50IGNvbHVtbiB0eXBlcyBhbmQKICogcmVwb3J0aW5nIGJhY2sgZGlmZmVyZW50IGluZm9ybWF0aW9uLiAgVGhlc2UgZGlmZmVyZW5jZXMgYXJlIGFjY291bnRlZAogKiBmb3IgaW4gdGhlIDx2YXI+JHF1aXJrczwvdmFyPiBhcnJheSwgd2hpY2ggaGFzIHRoZSBmb2xsb3dpbmcgZm9ybWF0OgogKgogKiA8cHJlPgogKiAnZHJpdmVyJyA9PiBhcnJheSgKICogICAgICdjbG9iJyA9PiBEQk1TJ3MgY29sdW1uIHR5cGUgZm9yIGNyZWF0aW5nIENMT0IgZmllbGRzCiAqICAgICAnZGF0ZScgPT4gREJNUydzIGNvbHVtbiB0eXBlIGZvciBjcmVhdGluZyBEQVRFIGZpZWxkcwogKiAgICAgJ2RhdGVsaXRlcmFsJyA9PiBUaGUgU1FMIGtleXdvcmQgbmVjZXNzYXJ5IGZvciBkZWZpbmluZyBkYXRlcwogKiAgICAgJ2ZpbmRzX3RhYmxlJyA9PiBDYW4gdGhpcyBEQk1TIGRldGVybWluZSB0YWJsZSBuYW1lcyBmcm9tIHF1ZXJpZXM/CiAqICAgICAnc2l6ZV9mcm9tX3RhYmxlJyA9PiBEb2VzIHRoaXMgREJNUyBrbm93IHRoZSBjb2x1bW4gc2l6ZSB2aWEgdGFibGUgbmFtZT8KICogICAgICdoYW5kbGVzX3Jlc3VsdHMnID0+IENhbiB0aGUgREJNUyBnZXQgaW5mbyBmcm9tIHF1ZXJ5IHJlc3VsdHM/CiAqICAgICAnY29tbWFuZHMnID0+IGFycmF5KAogKiAgICAgICAgIEV4dHJhIGNvbW1hbmRzIHRvIGJlIHBhc3NlZCB0byBQSFAncyBldmFsKCkgZnVuY3Rpb24KICogICAgICkKICogICAgIDAgPT4gYXJyYXkoCiAqICAgICAgICAgLy8gIEluZm8gZXhwZWN0ZWQgdG8gYmUgcmVwb3J0ZWQgZm9yIHBocHRlc3RfZmsuYQogKiAgICAgICAgIC8vICAoSU5URUdFUiBOT1QgTlVMTCkgKFVOSVFVRSBLRVkgd2l0aCBkKQogKiAgICAgICAgICd0eXBlJyA9PiBDb2x1bW4gdHlwZSByZXBvcnRlZCBieSB0aGUgREJNUwogKiAgICAgICAgICdsZW4nID0+IENvbHVtbiBzaXplIHJlcG9ydGVkIGJ5IHRoZSBEQk1TCiAqICAgICAgICAgJ2ZsYWdzJyA9PiBGbGFncyByZXBvcnRlZCBieSB0aGUgREJNUwogKiAgICAgKQogKiAgICAgMSA9PiBhcnJheSgpICBJbmZvIGV4cGVjdGVkIHRvIGJlIHJlcG9ydGVkIGZvciBwaHB0ZXN0X2ZrLmZrCiAqICAgICAgICAgICAgICAgICAgIChJTlRFR0VSIE5PVCBOVUxMKSAoUFJJTUFSWSBLRVkpCiAqICAgICAyID0+IGFycmF5KCkgIEluZm8gZXhwZWN0ZWQgdG8gYmUgcmVwb3J0ZWQgZm9yIHBocHRlc3RfZmsuYwogKiAgICAgICAgICAgICAgICAgICAoQ0xPQi9DSEFSL1ZBUkNIQVIgTlVMTCkKICogICAgIDMgPT4gYXJyYXkoKSAgSW5mbyBleHBlY3RlZCB0byBiZSByZXBvcnRlZCBmb3IgcGhwdGVzdF9may5kCiAqICAgICAgICAgICAgICAgICAgIChEQVRFIE5PVCBOVUxMKSAoVU5JUVVFIEtFWSB3aXRoIGEpCiAqICAgICA0ID0+IGFycmF5KCkgIEluZm8gZXhwZWN0ZWQgdG8gYmUgcmVwb3J0ZWQgZm9yIHBocHRlc3RfZmsuZQogKiAgICAgICAgICAgICAgICAgICAoQ0hBUigyKSBERUZBVUxUICcgZScgTk9UIE5VTEwpCiAqICAgICA1ID0+IGFycmF5KCkgIEluZm8gZXhwZWN0ZWQgdG8gYmUgcmVwb3J0ZWQgZm9yIHBocHRlc3RfZmsuZgogKiAgICAgICAgICAgICAgICAgICAoREVDSU1BTCgyLDEpIE5VTEwpCiAqICAgICA5ID0+IGFycmF5KCkgIEluZm8gZXhwZWN0ZWQgdG8gYmUgcmVwb3J0ZWQgZm9yIHBocHRlc3QuZAogKiAgICAgICAgICAgICAgICAgICAoVkFSQ0hBUigyMCkgTlVMTCkKICogKQogKiA8L3ByZT4KICoKICogQGNhdGVnb3J5IERhdGFiYXNlCiAqIEBwYWNrYWdlICBEQgogKiBAdmVyc2lvbiAgJElkOiAxNnRhYmxlaW5mby5waHB0LHYgMS40MCAyMDA3LzAyLzA2IDA3OjEyOjMwIGFoYXJ2ZXkgRXhwICQKICogQGF1dGhvciAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAYW5hbHlzaXNhbmRzb2x1dGlvbnMuY29tPgogKiBAc2VlICAgICAgREJfY29tbW9uOjp0YWJsZUluZm8oKQogKi8KCmVycm9yX3JlcG9ydGluZyhFX0FMTCk7CmNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsKcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOwokdGFibGVJbmZvID0gJGRiaC0+dGFibGVJbmZvKCdhamtkc2xmYWpvaWprYWRpZScpOwppZiAoREI6OmlzRXJyb3IoJHRhYmxlSW5mbykgJiYgJHRhYmxlSW5mby0+Y29kZSA9PSBEQl9FUlJPUl9OT1RfQ0FQQUJMRSkgewogICAgZGllKCJza2lwICR0YWJsZUluZm8tPm1lc3NhZ2UiKTsKfQoKPz4KLS1GSUxFLS0KPD9waHAKCi8vICAkSWQ6IDE2dGFibGVpbmZvLnBocHQsdiAxLjQwIDIwMDcvMDIvMDYgMDc6MTI6MzAgYWhhcnZleSBFeHAgJAoKLyoqCiAqIENvbm5lY3QgdG8gdGhlIGRhdGFiYXNlIGFuZCBtYWtlIHRoZSBwaHB0ZXN0IHRhYmxlLgogKi8KcmVxdWlyZV9vbmNlICcuL21rdGFibGUuaW5jJzsKCi8qKgogKiBMb2NhbCBlcnJvciBjYWxsYmFjayBoYW5kbGVyLgogKgogKiBJbiBnZW5lcmFsLCBpdCBwcmludHMgb3V0IGFuIGVycm9yIG1lc3NhZ2UgYW5kIGtpbGxzIHRoZSBwcm9jZXNzLgogKiBCdXQgc29tZSBlcnJvcnMgYXJlIGV4cGVjdGVkIGFuZCBhbGxvd2VkIHRvIGV4aXN0LgogKgogKiBAcGFyYW0gb2JqZWN0ICAkbyAgUEVBUiBlcnJvciBvYmplY3QgYXV0b21hdGljYWxseSBwYXNzZWQgdG8gdGhpcyBtZXRob2QKICogQHJldHVybiB2b2lkCiAqIEBzZWUgUEVBUjo6c2V0RXJyb3JIYW5kbGluZygpCiAqLwpmdW5jdGlvbiBwZSgkbyl7CiAgICBnbG9iYWwgJGRiaCwgJHF1aXJrczsKCiAgICBpZiAoJG8tPmdldE1lc3NhZ2UoKSA9PSAiREIgRXJyb3I6IGNhbid0IGRpc3Rpbmd1aXNoIGR1cGxpY2F0ZSBmaWVsZCBuYW1lcyIpIHsKICAgICAgICBwcmludCAiTk9USUNFOiAkZGJoLT5waHB0eXBlIGNhbid0IGRpc3Rpbmd1aXNoIGR1cGxpY2F0ZSBmaWVsZCBuYW1lcyI7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIGlmICgkby0+Z2V0Q29kZSgpID09IERCX0VSUk9SX05PVF9DQVBBQkxFICYmCiAgICAgICAgISRxdWlya3NbJGRiaC0+cGhwdHlwZSAuICc6JyAuICRkYmgtPmRic3ludGF4XVsnaGFuZGxlc19yZXN1bHRzJ10pCiAgICB7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwogICAgZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdCcpOwogICAgZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdF9maycpOwoKICAgIGRpZSgkby0+dG9TdHJpbmcoKSk7Cn0KCi8qKgogKiBMb29wIHRocm91Z2ggYW4gYXJyYXkgcmV0dXJuZWQgZnJvbSB0YWJsZUluZm8oKSwgY29tcGFyZSB0aGUgYWN0dWFsCiAqIGNvbnRlbnRzIHRvIHRoZSBleHBlY3RlZCBjb250ZW50cy4gIElmIHRoZSBhY3R1YWwgcmVzdWx0cyBtYXRjaCB0aGUKICogZXhwZWN0YXRpb25zLCBzYXkgc28uICBJZiBub3QsIHNheSBzbyBhbmQgc2hvdyB0aGUgaW5mb3JtYXRpb24uCiAqCiAqIEBwYXJhbSBhcnJheSAgICRhcnJheSAgICAgdGhlIGFycmF5IHRvIGJlIGV4YW1pbmVkCiAqIEBwYXJhbSBzdHJpbmcgICRleHBlY3RlZCAgdGhlIGV4cGVjdGVkIGNvbnRlbnRzIG9mIHRoZSBhcnJheQogKiBAcGFyYW0gc3RyaW5nICAkZmllbGQgICAgIGZpZWxkIGluZGV4IG51bWJlciBvZiAkcXVyaWtzIGFuZCB0YWJsZQogKiBAcGFyYW0gYm9vbGVhbiAkcXVlcnkgICAgIHRydWUgaWYgYXJyYXkgaXMgZnJvbSBhIHF1ZXJ5IG9yIGZhbHNlIGlmIGFycmF5CiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgaXMgdGFibGVJbmZvKCkKICogQHJldHVybiB2b2lkCiAqLwpmdW5jdGlvbiBleGFtaW5lQXJyYXlEYXRhKCRhcnJheSwgJGV4cGVjdGVkLCAkZmllbGQgPSBmYWxzZSwgJHF1ZXJ5ID0gdHJ1ZSkgewogICAgZ2xvYmFsICRkYmgsICRxdWlya3M7CgogICAgJHF1aXJrX2tleSA9ICRkYmgtPnBocHR5cGUgLiAnOicgLiAkZGJoLT5kYnN5bnRheDsKCiAgICBpZiAoREI6OmlzRXJyb3IoJGFycmF5KSAmJiAkYXJyYXktPmdldENvZGUoKSA9PSBEQl9FUlJPUl9OT1RfQ0FQQUJMRSkgewogICAgICAgIHByaW50ICJtYXRjaGVkIGV4cGVjdGVkIHJlc3VsdFxuIjsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCFpc19hcnJheSgkYXJyYXkpKSB7CiAgICAgICAgcHJpbnQgIlRoaXMgRE1CUyBkaWRuJ3QgcHJvZHVjZSBwcm9wZXIgcmVzdWx0c1xuIjsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKGlzX2ludCgkZmllbGQpKSB7CiAgICAgICAgJGFycmF5ID0gJGFycmF5WyRmaWVsZF07CiAgICB9CgogICAgJGFjdHVhbCA9ICcnOwogICAgZm9yZWFjaCAoJGFycmF5IGFzICRrZXkgPT4gJHZhbHVlKSB7CiAgICAgICAgaWYgKCRmaWVsZCAhPT0gZmFsc2UgJiYKICAgICAgICAgICAgaXNzZXQoJHF1aXJrc1skcXVpcmtfa2V5XVskZmllbGRdWyRrZXldKSkKICAgICAgICB7CiAgICAgICAgICAgIGlmICgka2V5ID09ICdmbGFncycgJiYgJHZhbHVlID09ICcnICYmICRxdWVyeSAmJgogICAgICAgICAgICAgICAgISRxdWlya3NbJHF1aXJrX2tleV1bJ2ZpbmRzX3RhYmxlJ10pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRhY3R1YWwgLj0gIiRrZXkgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWVcbiI7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoJHF1aXJrc1skcXVpcmtfa2V5XVskZmllbGRdWyRrZXldID09ICR2YWx1ZSkgewogICAgICAgICAgICAgICAgICAgICRhY3R1YWwgLj0gIiRrZXkgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWVcbiI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGlmICgkdmFsdWUgPT0gMAogICAgICAgICAgICAgICAgICAgICAgICAmJiAhJHF1aXJrc1skcXVpcmtfa2V5XVsnc2l6ZV9mcm9tX3RhYmxlJ10pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAkYWN0dWFsIC49ICIka2V5IC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlXG4iOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRhY3R1YWwgLj0gIiRrZXkgLi4uIHdhcyAnJHZhbHVlJyBidXQgd2UgZXhwZWN0ZWQgIjsKICAgICAgICAgICAgICAgICAgICAgICAgJGFjdHVhbCAuPSAiJ3skcXVpcmtzWyRxdWlya19rZXldWyRmaWVsZF1bJGtleV19J1xuIjsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoJGtleSA9PSAndGFibGUnKSB7CiAgICAgICAgICAgICAgICBpZiAoJGZpZWxkIDw9IDUpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHZhbHVlID09ICdwaHB0ZXN0X2ZrJykgewogICAgICAgICAgICAgICAgICAgICAgICAkYWN0dWFsIC49ICIka2V5IC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlXG4iOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdmFsdWUgPT0gJycgJiYgJHF1ZXJ5ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhJHF1aXJrc1skcXVpcmtfa2V5XVsnZmluZHNfdGFibGUnXSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFjdHVhbCAuPSAiJGtleSAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZVxuIjsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhY3R1YWwgLj0gIiRrZXkgLi4uIHdhcyAnJHZhbHVlJyBidXQgd2UgZXhwZWN0ZWQgJ3BocHRlc3RfZmsnXG4iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHZhbHVlID09ICdwaHB0ZXN0JykgewogICAgICAgICAgICAgICAgICAgICAgICAkYWN0dWFsIC49ICIka2V5IC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlXG4iOwogICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdmFsdWUgPT0gJycgJiYgJHF1ZXJ5ICYmCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAhJHF1aXJrc1skcXVpcmtfa2V5XVsnZmluZHNfdGFibGUnXSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGFjdHVhbCAuPSAiJGtleSAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZVxuIjsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRhY3R1YWwgLj0gIiRrZXkgLi4uIHdhcyAnJHZhbHVlJyBidXQgd2UgZXhwZWN0ZWQgJ3BocHRlc3RfZmsnXG4iOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGFjdHVhbCAuPSAiJGtleSA9PiAkdmFsdWVcbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZiAoJGFjdHVhbCA9PSAkZXhwZWN0ZWQpIHsKICAgICAgICBwcmludCAibWF0Y2hlZCBleHBlY3RlZCByZXN1bHRcbiI7CiAgICB9IGVsc2UgewogICAgICAgIHByaW50ICJESUROJ1QgbWF0Y2ggZXhwZWN0ZWQgdmFsdWVzLi4uXG4iOwogICAgICAgIHByaW50ICJ+fn5+fn5+flxuRXhwZWN0ZWQ6XG4kZXhwZWN0ZWRcbiI7CiAgICAgICAgcHJpbnQgIn5+fn5cbkFjdHVhbDpcbiRhY3R1YWxcbn5+fn5+fn5+XG5cbiI7CiAgICB9Cn0KCi8qKgogKiBMb29wIHRocm91Z2ggYW4gYXJyYXkgb2YgdGFibGUgaW5mbyBkYXRhIGFuZCByZXR1cm4gdGhlIHJlc3VsdHMuCiAqCiAqIEBwYXJhbSBhcnJheSAgJGFycmF5ICB0aGUgYXJyYXkgdG8gYmUgZXhhbWluZWQKICogQHJldHVybiBzdHJpbmcKICovCmZ1bmN0aW9uIHJldHVybkFycmF5RGF0YSgkYXJyYXkpIHsKICAgIGdsb2JhbCAkZGJoLCAkcXVpcmtzOwoKICAgICRxdWlya19rZXkgPSAkZGJoLT5waHB0eXBlIC4gJzonIC4gJGRiaC0+ZGJzeW50YXg7CgogICAgaWYgKCEkcXVpcmtzWyRxdWlya19rZXldWydoYW5kbGVzX3Jlc3VsdHMnXSkgewogICAgICAgIHJldHVybiAiXG4iOwogICAgfQoKICAgICRvdXQgPSAnJzsKICAgIGZvcmVhY2ggKCRhcnJheSBhcyAka2V5ID0+ICR2YWx1ZSkgewogICAgICAgICRvdXQgLj0gIiRrZXkgPT4gJHZhbHVlXG4iOwogICAgfQogICAgcmV0dXJuICRvdXQ7Cn0KCgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICdwZScpOwoKCiRxdWlya3MgPSBhcnJheSgKICAgICdmYnNxbDpmYnNxbCcgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdDSEFSKDI5KScsCiAgICAgICAgJ2RhdGUnID0+ICdEQVRFJywKICAgICAgICAnZGF0ZWxpdGVyYWwnID0+ICcgREFURSAnLAogICAgICAgICdmaW5kc190YWJsZScgPT4gZmFsc2UsCiAgICAgICAgJ3NpemVfZnJvbV90YWJsZScgPT4gZmFsc2UsCiAgICAgICAgJ2hhbmRsZXNfcmVzdWx0cycgPT4gdHJ1ZSwKICAgICAgICAnY29tbWFuZHMnID0+IGFycmF5KAogICAgICAgICksCiAgICAgICAgMCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdJTlRFR0VSJywKICAgICAgICAgICAgJ2xlbicgPT4gMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDEgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnSU5URUdFUicsCiAgICAgICAgICAgICdsZW4nID0+IDAsCiAgICAgICAgICAgICdmbGFncycgPT4gJ25vdF9udWxsJywKICAgICAgICApLAogICAgICAgIDIgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnQ0hBUkFDVEVSJywKICAgICAgICAgICAgJ2xlbicgPT4gMjksCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICAgICAzID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0RBVEUnLAogICAgICAgICAgICAnbGVuJyA9PiAwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdDSEFSQUNURVInLAogICAgICAgICAgICAnbGVuJyA9PiAyLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICAgICAgNSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdERUNJTUFMJywKICAgICAgICAgICAgJ2xlbicgPT4gMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnQ0hBUkFDVEVSJywKICAgICAgICAgICAgJ2xlbicgPT4gMjAsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICksCgogICAgJ2liYXNlOmliYXNlJyA9PiBhcnJheSgKICAgICAgICAnY2xvYicgPT4gJ1ZBUkNIQVIoNTApJywKICAgICAgICAnZGF0ZScgPT4gJ0RBVEUnLAogICAgICAgICdkYXRlbGl0ZXJhbCcgPT4gJycsCiAgICAgICAgJ2ZpbmRzX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnc2l6ZV9mcm9tX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnaGFuZGxlc19yZXN1bHRzJyA9PiB0cnVlLAogICAgICAgICdjb21tYW5kcycgPT4gYXJyYXkoCiAgICAgICAgKSwKICAgICAgICAwID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0lOVEVHRVInLAogICAgICAgICAgICAnbGVuJyA9PiA0LAogICAgICAgICAgICAnZmxhZ3MnID0+ICd1bmlxdWVfa2V5IG5vdF9udWxsJywKICAgICAgICApLAogICAgICAgIDEgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnSU5URUdFUicsCiAgICAgICAgICAgICdsZW4nID0+IDQsCiAgICAgICAgICAgICdmbGFncycgPT4gJ3ByaW1hcnlfa2V5IG5vdF9udWxsJywKICAgICAgICApLAogICAgICAgIDIgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnVkFSQ0hBUicsCiAgICAgICAgICAgICdsZW4nID0+IDUwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICAgICAgMyA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdEQVRFJywKICAgICAgICAgICAgJ2xlbicgPT4gNCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAndW5pcXVlX2tleSBub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICA0ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0NIQVInLAogICAgICAgICAgICAnbGVuJyA9PiAyLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCBkZWZhdWx0JywKICAgICAgICApLAogICAgICAgIDUgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnTlVNRVJJQyg5LDEpJywKICAgICAgICAgICAgJ2xlbicgPT4gNCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnVkFSQ0hBUicsCiAgICAgICAgICAgICdsZW4nID0+IDIwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICApLAoKICAgICdpYmFzZTpmaXJlYmlyZCcgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdWQVJDSEFSKDUwKScsCiAgICAgICAgJ2RhdGUnID0+ICdEQVRFJywKICAgICAgICAnZGF0ZWxpdGVyYWwnID0+ICcnLAogICAgICAgICdmaW5kc190YWJsZScgPT4gZmFsc2UsCiAgICAgICAgJ3NpemVfZnJvbV90YWJsZScgPT4gZmFsc2UsCiAgICAgICAgJ2hhbmRsZXNfcmVzdWx0cycgPT4gdHJ1ZSwKICAgICAgICAnY29tbWFuZHMnID0+IGFycmF5KAogICAgICAgICksCiAgICAgICAgMCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdJTlRFR0VSJywKICAgICAgICAgICAgJ2xlbicgPT4gNCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAndW5pcXVlX2tleSBub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAxID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0lOVEVHRVInLAogICAgICAgICAgICAnbGVuJyA9PiA0LAogICAgICAgICAgICAnZmxhZ3MnID0+ICdwcmltYXJ5X2tleSBub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAyID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ1ZBUkNIQVInLAogICAgICAgICAgICAnbGVuJyA9PiA1MCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDMgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnREFURScsCiAgICAgICAgICAgICdsZW4nID0+IDQsCiAgICAgICAgICAgICdmbGFncycgPT4gJ3VuaXF1ZV9rZXkgbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdDSEFSJywKICAgICAgICAgICAgJ2xlbicgPT4gMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwgZGVmYXVsdCcsCiAgICAgICAgKSwKICAgICAgICA1ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ05VTUVSSUMoOSwxKScsCiAgICAgICAgICAgICdsZW4nID0+IDQsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICAgICA5ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ1ZBUkNIQVInLAogICAgICAgICAgICAnbGVuJyA9PiAyMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgKSwKCiAgICAnaWZ4OmlmeCcgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdDSEFSKDI5KScsCiAgICAgICAgJ2RhdGUnID0+ICdDSEFSKDEwKScsCiAgICAgICAgJ2RhdGVsaXRlcmFsJyA9PiAnJywKICAgICAgICAnZmluZHNfdGFibGUnID0+IGZhbHNlLAogICAgICAgICdzaXplX2Zyb21fdGFibGUnID0+IGZhbHNlLAogICAgICAgICdoYW5kbGVzX3Jlc3VsdHMnID0+IHRydWUsCiAgICAgICAgJ2NvbW1hbmRzJyA9PiBhcnJheSgKICAgICAgICApLAogICAgICAgIDAgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnU1FMSU5UJywKICAgICAgICAgICAgJ2xlbicgPT4gNCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgMSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdTUUxJTlQnLAogICAgICAgICAgICAnbGVuJyA9PiA0LAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAyID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ1NRTENIQVInLAogICAgICAgICAgICAnbGVuJyA9PiAyOSwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDMgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnU1FMQ0hBUicsCiAgICAgICAgICAgICdsZW4nID0+IDEwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICA0ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ1NRTENIQVInLAogICAgICAgICAgICAnbGVuJyA9PiAyLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICA1ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ1NRTERFQ0lNQUwnLAogICAgICAgICAgICAnbGVuJyA9PiA1MTMsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICAgICA5ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ1NRTENIQVInLAogICAgICAgICAgICAnbGVuJyA9PiAyMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgKSwKCiAgICAnbXNxbDptc3FsJyA9PiBhcnJheSgKICAgICAgICAnY2xvYicgPT4gJ1RFWFQoMjU1KScsCiAgICAgICAgJ2RhdGUnID0+ICdDSEFSKDEwKScsCiAgICAgICAgJ2RhdGVsaXRlcmFsJyA9PiAnJywKICAgICAgICAnZmluZHNfdGFibGUnID0+IHRydWUsCiAgICAgICAgJ3NpemVfZnJvbV90YWJsZScgPT4gdHJ1ZSwKICAgICAgICAnaGFuZGxlc19yZXN1bHRzJyA9PiB0cnVlLAogICAgICAgICdjb21tYW5kcycgPT4gYXJyYXkoCiAgICAgICAgKSwKICAgICAgICAwID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ2ludCcsCiAgICAgICAgICAgICdsZW4nID0+IDQsCiAgICAgICAgICAgICdmbGFncycgPT4gJ25vdF9udWxsJywKICAgICAgICApLAogICAgICAgIDEgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnaW50JywKICAgICAgICAgICAgJ2xlbicgPT4gNCwKICAgICAgICAgICAgLy8gZm9yIHNvbWUgcmVhc29uLCB0aGUgdW5pcXVlIHByb3BlcnR5IGFsd2F5cyBjb250YWlucyAwCiAgICAgICAgICAgIC8vICdmbGFncycgPT4gJ3VuaXF1ZV9rZXkgbm90X251bGwnLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAyID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ3RleHQnLAogICAgICAgICAgICAnbGVuJyA9PiAyNTUsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICAgICAzID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ2NoYXInLAogICAgICAgICAgICAnbGVuJyA9PiAxMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdjaGFyJywKICAgICAgICAgICAgJ2xlbicgPT4gMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdyZWFsJywKICAgICAgICAgICAgJ2xlbicgPT4gOCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnY2hhcicsCiAgICAgICAgICAgICdsZW4nID0+IDIwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICApLAoKICAgICdtc3NxbDptc3NxbCcgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdURVhUJywKICAgICAgICAnZGF0ZScgPT4gJ1NNQUxMREFURVRJTUUnLAogICAgICAgICdkYXRlbGl0ZXJhbCcgPT4gJycsCiAgICAgICAgJ2ZpbmRzX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnc2l6ZV9mcm9tX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnaGFuZGxlc19yZXN1bHRzJyA9PiB0cnVlLAogICAgICAgICdjb21tYW5kcycgPT4gYXJyYXkoCiAgICAgICAgICAgICdpbmlfc2V0KCJtc3NxbC5kYXRldGltZWNvbnZlcnQiLCAiT2ZmIik7JywKICAgICAgICAgICAgJyRkYmgtPnF1ZXJ5KCJTRVQgREFURUZPUk1BVCB5bWQiKTsnLAogICAgICAgICksCiAgICAgICAgMCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdpbnQnLAogICAgICAgICAgICAnbGVuJyA9PiA0LAogICAgICAgICAgICAnZmxhZ3MnID0+ICdtdWx0aXBsZV9rZXkgdW5pcXVlX2tleSBub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAxID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ2ludCcsCiAgICAgICAgICAgICdsZW4nID0+IDQsCiAgICAgICAgICAgICdmbGFncycgPT4gJ3ByaW1hcnlfa2V5IG5vdF9udWxsJywKICAgICAgICApLAogICAgICAgIDIgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAndGV4dCcsCiAgICAgICAgICAgICdsZW4nID0+IDQwOTYsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICAgICAzID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ2RhdGV0aW1lJywKICAgICAgICAgICAgJ2xlbicgPT4gNCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbXVsdGlwbGVfa2V5IHVuaXF1ZV9rZXkgbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdjaGFyJywKICAgICAgICAgICAgJ2xlbicgPT4gMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdyZWFsJywKICAgICAgICAgICAgJ2xlbicgPT4gOCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnY2hhcicsCiAgICAgICAgICAgICdsZW4nID0+IDIwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICApLAoKICAgICdteXNxbDpteXNxbCcgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdURVhUJywKICAgICAgICAnZGF0ZScgPT4gJ0RBVEUnLAogICAgICAgICdkYXRlbGl0ZXJhbCcgPT4gJycsCiAgICAgICAgJ2ZpbmRzX3RhYmxlJyA9PiB0cnVlLAogICAgICAgICdzaXplX2Zyb21fdGFibGUnID0+IHRydWUsCiAgICAgICAgJ2hhbmRsZXNfcmVzdWx0cycgPT4gdHJ1ZSwKICAgICAgICAnY29tbWFuZHMnID0+IGFycmF5KAogICAgICAgICksCiAgICAgICAgMCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdpbnQnLAogICAgICAgICAgICAnbGVuJyA9PiAxMSwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwgbXVsdGlwbGVfa2V5JywKICAgICAgICApLAogICAgICAgIDEgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnaW50JywKICAgICAgICAgICAgJ2xlbicgPT4gMTEsCiAgICAgICAgICAgICdmbGFncycgPT4gJ25vdF9udWxsIHByaW1hcnlfa2V5JywKICAgICAgICApLAogICAgICAgIDIgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnYmxvYicsCiAgICAgICAgICAgICdsZW4nID0+IDY1NTM1LAogICAgICAgICAgICAnZmxhZ3MnID0+ICdibG9iJywKICAgICAgICApLAogICAgICAgIDMgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnZGF0ZScsCiAgICAgICAgICAgICdsZW4nID0+IDEwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCBtdWx0aXBsZV9rZXkgYmluYXJ5JywKICAgICAgICApLAogICAgICAgIDQgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnc3RyaW5nJywKICAgICAgICAgICAgJ2xlbicgPT4gMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdyZWFsJywKICAgICAgICAgICAgJ2xlbicgPT4gNCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnc3RyaW5nJywKICAgICAgICAgICAgJ2xlbicgPT4gMjAsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICksCgogICAgJ215c3FsaTpteXNxbGknID0+IGFycmF5KAogICAgICAgICdjbG9iJyA9PiAnVEVYVCcsCiAgICAgICAgJ2RhdGUnID0+ICdEQVRFJywKICAgICAgICAnZGF0ZWxpdGVyYWwnID0+ICcnLAogICAgICAgICdmaW5kc190YWJsZScgPT4gdHJ1ZSwKICAgICAgICAnc2l6ZV9mcm9tX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnaGFuZGxlc19yZXN1bHRzJyA9PiB0cnVlLAogICAgICAgICdjb21tYW5kcycgPT4gYXJyYXkoCiAgICAgICAgKSwKICAgICAgICAwID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ2ludCcsCiAgICAgICAgICAgICdsZW4nID0+IDExLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCBtdWx0aXBsZV9rZXknLAogICAgICAgICksCiAgICAgICAgMSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdpbnQnLAogICAgICAgICAgICAnbGVuJyA9PiAxMSwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwgcHJpbWFyeV9rZXknLAogICAgICAgICksCiAgICAgICAgMiA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdibG9iJywKICAgICAgICAgICAgJ2xlbicgPT4gNjU1MzUsCiAgICAgICAgICAgICdmbGFncycgPT4gJ2Jsb2InLAogICAgICAgICksCiAgICAgICAgMyA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdkYXRlJywKICAgICAgICAgICAgJ2xlbicgPT4gMTAsCiAgICAgICAgICAgICdmbGFncycgPT4gJ25vdF9udWxsIG11bHRpcGxlX2tleSBiaW5hcnknLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdzdHJpbmcnLAogICAgICAgICAgICAnbGVuJyA9PiAyLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICA1ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ3JlYWwnLAogICAgICAgICAgICAnbGVuJyA9PiA0LAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICAgICAgOSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdzdHJpbmcnLAogICAgICAgICAgICAnbGVuJyA9PiAyMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgKSwKCiAgICAnb2NpODpvY2k4JyA9PiBhcnJheSgKICAgICAgICAnY2xvYicgPT4gJ0NMT0InLAogICAgICAgICdkYXRlJyA9PiAnREFURScsCiAgICAgICAgJ2RhdGVsaXRlcmFsJyA9PiAnJywKICAgICAgICAnZmluZHNfdGFibGUnID0+IGZhbHNlLAogICAgICAgICdzaXplX2Zyb21fdGFibGUnID0+IGZhbHNlLAogICAgICAgICdoYW5kbGVzX3Jlc3VsdHMnID0+IHRydWUsCiAgICAgICAgJ2NvbW1hbmRzJyA9PiBhcnJheSgKICAgICAgICAgICAgJyRkYmgtPnF1ZXJ5KCJBTFRFUiBTRVNTSU9OIFNFVCBOTFNfREFURV9GT1JNQVQgPSBcJ1lZWVktTU0tRERcJyIpOycsCiAgICAgICAgKSwKICAgICAgICAwID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ05VTUJFUicsCiAgICAgICAgICAgICdsZW4nID0+IDIyLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAxID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ05VTUJFUicsCiAgICAgICAgICAgICdsZW4nID0+IDIyLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAyID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0NMT0InLAogICAgICAgICAgICAnbGVuJyA9PiA0MDAwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICAgICAgMyA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdEQVRFJywKICAgICAgICAgICAgJ2xlbicgPT4gNywKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdDSEFSJywKICAgICAgICAgICAgJ2xlbicgPT4gMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdOVU1CRVInLAogICAgICAgICAgICAnbGVuJyA9PiAyMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnVkFSQ0hBUicsCiAgICAgICAgICAgICdsZW4nID0+IDIwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICApLAoKICAgICdvZGJjOmFjY2VzcycgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdURVhUJywKICAgICAgICAnZGF0ZScgPT4gJ0RBVEVUSU1FJywKICAgICAgICAnZGF0ZWxpdGVyYWwnID0+ICcnLAogICAgICAgICdmaW5kc190YWJsZScgPT4gZmFsc2UsCiAgICAgICAgJ3NpemVfZnJvbV90YWJsZScgPT4gZmFsc2UsCiAgICAgICAgJ2hhbmRsZXNfcmVzdWx0cycgPT4gdHJ1ZSwKICAgICAgICAnY29tbWFuZHMnID0+IGFycmF5KAogICAgICAgICksCiAgICAgICAgMCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdJTlRFR0VSJywKICAgICAgICAgICAgJ2xlbicgPT4gMTAsCiAgICAgICAgICAgICdmbGFncycgPT4gJ25vdF9udWxsJywKICAgICAgICApLAogICAgICAgIDEgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnSU5URUdFUicsCiAgICAgICAgICAgICdsZW4nID0+IDEwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAyID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0xPTkdDSEFSJywKICAgICAgICAgICAgJ2xlbicgPT4gMjU1LAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICAgICAgMyA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdEQVRFVElNRScsCiAgICAgICAgICAgICdsZW4nID0+IDE5LAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICA0ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ1ZBUkNIQVInLAogICAgICAgICAgICAnbGVuJyA9PiAyLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICA1ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0RFQ0lNQUwnLAogICAgICAgICAgICAnbGVuJyA9PiAxNSwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnVkFSQ0hBUicsCiAgICAgICAgICAgICdsZW4nID0+IDIwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICApLAoKICAgICdvZGJjOmRiMicgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdDTE9CJywKICAgICAgICAnZGF0ZScgPT4gJ0RBVEUnLAogICAgICAgICdkYXRlbGl0ZXJhbCcgPT4gJycsCiAgICAgICAgJ2ZpbmRzX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnc2l6ZV9mcm9tX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnaGFuZGxlc19yZXN1bHRzJyA9PiB0cnVlLAogICAgICAgICdjb21tYW5kcycgPT4gYXJyYXkoCiAgICAgICAgKSwKICAgICAgICAwID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0lOVEVHRVInLAogICAgICAgICAgICAnbGVuJyA9PiAxMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgMSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdJTlRFR0VSJywKICAgICAgICAgICAgJ2xlbicgPT4gMTAsCiAgICAgICAgICAgICdmbGFncycgPT4gJ25vdF9udWxsJywKICAgICAgICApLAogICAgICAgIDIgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnQ0xPQicsCiAgICAgICAgICAgICdsZW4nID0+IDEwNDg1NzYsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICAgICAzID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0RBVEUnLAogICAgICAgICAgICAnbGVuJyA9PiAxMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdDSEFSJywKICAgICAgICAgICAgJ2xlbicgPT4gMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdERUNJTUFMJywKICAgICAgICAgICAgJ2xlbicgPT4gMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnVkFSQ0hBUicsCiAgICAgICAgICAgICdsZW4nID0+IDIwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICApLAoKICAgICdwZ3NxbDpwZ3NxbCcgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdURVhUJywKICAgICAgICAnZGF0ZScgPT4gJ0RBVEUnLAogICAgICAgICdkYXRlbGl0ZXJhbCcgPT4gJycsCiAgICAgICAgJ2ZpbmRzX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnc2l6ZV9mcm9tX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnaGFuZGxlc19yZXN1bHRzJyA9PiB0cnVlLAogICAgICAgICdjb21tYW5kcycgPT4gYXJyYXkoCiAgICAgICAgICAgICckZGJoLT5xdWVyeSgiU0VUIERBVEVTVFlMRSA9IElTTyIpOycsCiAgICAgICAgKSwKICAgICAgICAwID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ2ludDQnLAogICAgICAgICAgICAnbGVuJyA9PiA0LAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCB1bmlxdWVfa2V5IG11bHRpcGxlX2tleScsCiAgICAgICAgKSwKICAgICAgICAxID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ2ludDQnLAogICAgICAgICAgICAnbGVuJyA9PiA0LAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCBwcmltYXJ5X2tleScsCiAgICAgICAgKSwKICAgICAgICAyID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ3RleHQnLAogICAgICAgICAgICAnbGVuJyA9PiAtMSwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDMgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnZGF0ZScsCiAgICAgICAgICAgICdsZW4nID0+IDQsCiAgICAgICAgICAgICdmbGFncycgPT4gJ25vdF9udWxsIHVuaXF1ZV9rZXkgbXVsdGlwbGVfa2V5JywKICAgICAgICApLAogICAgICAgIDQgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnYnBjaGFyJywKICAgICAgICAgICAgJ2xlbicgPT4gLTEsCiAgICAgICAgICAgICdmbGFncycgPT4gJ25vdF9udWxsIGRlZmF1bHRfJTIwZScsCiAgICAgICAgKSwKICAgICAgICA1ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ251bWVyaWMnLAogICAgICAgICAgICAnbGVuJyA9PiAtMSwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAndmFyY2hhcicsCiAgICAgICAgICAgICdsZW4nID0+IC0xLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICApLAoKICAgICdzcWxpdGU6c3FsaXRlJyA9PiBhcnJheSgKICAgICAgICAnY2xvYicgPT4gJ0NMT0InLAogICAgICAgICdkYXRlJyA9PiAnREFURScsCiAgICAgICAgJ2RhdGVsaXRlcmFsJyA9PiAnJywKICAgICAgICAnZmluZHNfdGFibGUnID0+IGZhbHNlLAogICAgICAgICdzaXplX2Zyb21fdGFibGUnID0+IGZhbHNlLAogICAgICAgICdoYW5kbGVzX3Jlc3VsdHMnID0+IGZhbHNlLAogICAgICAgICdjb21tYW5kcycgPT4gYXJyYXkoCiAgICAgICAgKSwKICAgICAgICAwID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0lOVEVHRVInLAogICAgICAgICAgICAnbGVuJyA9PiAwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAxID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0lOVEVHRVInLAogICAgICAgICAgICAnbGVuJyA9PiAwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICdwcmltYXJ5X2tleSBub3RfbnVsbCcsCiAgICAgICAgKSwKICAgICAgICAyID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ0NMT0InLAogICAgICAgICAgICAnbGVuJyA9PiAwLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICAgICAgMyA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdEQVRFJywKICAgICAgICAgICAgJ2xlbicgPT4gMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwnLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdDSEFSJywKICAgICAgICAgICAgJ2xlbicgPT4gMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbm90X251bGwgZGVmYXVsdF8lMjBlJywKICAgICAgICApLAogICAgICAgIDUgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnREVDSU1BTCcsCiAgICAgICAgICAgICdsZW4nID0+IDIsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICAgICA5ID0+IGFycmF5KAogICAgICAgICAgICAndHlwZScgPT4gJ1ZBUkNIQVInLAogICAgICAgICAgICAnbGVuJyA9PiAyMCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgKSwKCiAgICAnc3liYXNlOnN5YmFzZScgPT4gYXJyYXkoCiAgICAgICAgJ2Nsb2InID0+ICdURVhUJywKICAgICAgICAnZGF0ZScgPT4gJ1NNQUxMREFURVRJTUUnLAogICAgICAgICdkYXRlbGl0ZXJhbCcgPT4gJycsCiAgICAgICAgJ2ZpbmRzX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnc2l6ZV9mcm9tX3RhYmxlJyA9PiBmYWxzZSwKICAgICAgICAnaGFuZGxlc19yZXN1bHRzJyA9PiB0cnVlLAogICAgICAgICdjb21tYW5kcycgPT4gYXJyYXkoCiAgICAgICAgICAgICckZGJoLT5xdWVyeSgiU0VUIERBVEVGT1JNQVQgeW1kIik7JywKICAgICAgICApLAogICAgICAgIDAgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnaW50JywKICAgICAgICAgICAgJ2xlbicgPT4gMTEsCiAgICAgICAgICAgICdmbGFncycgPT4gJ211bHRpcGxlX2tleSB1bmlxdWVfa2V5JywKICAgICAgICApLAogICAgICAgIDEgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnaW50JywKICAgICAgICAgICAgJ2xlbicgPT4gMTEsCiAgICAgICAgICAgICdmbGFncycgPT4gJ3VuaXF1ZV9rZXknLAogICAgICAgICksCiAgICAgICAgMiA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdzdHJpbmcnLAogICAgICAgICAgICAnbGVuJyA9PiA2NDUxMiwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDMgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnZGF0ZXRpbWUnLAogICAgICAgICAgICAnbGVuJyA9PiAyOSwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnbXVsdGlwbGVfa2V5IHVuaXF1ZV9rZXknLAogICAgICAgICksCiAgICAgICAgNCA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdzdHJpbmcnLAogICAgICAgICAgICAnbGVuJyA9PiAyLAogICAgICAgICAgICAnZmxhZ3MnID0+ICcnLAogICAgICAgICksCiAgICAgICAgNSA9PiBhcnJheSgKICAgICAgICAgICAgJ3R5cGUnID0+ICdyZWFsJywKICAgICAgICAgICAgJ2xlbicgPT4gNCwKICAgICAgICAgICAgJ2ZsYWdzJyA9PiAnJywKICAgICAgICApLAogICAgICAgIDkgPT4gYXJyYXkoCiAgICAgICAgICAgICd0eXBlJyA9PiAnc3RyaW5nJywKICAgICAgICAgICAgJ2xlbicgPT4gMjAsCiAgICAgICAgICAgICdmbGFncycgPT4gJycsCiAgICAgICAgKSwKICAgICksCik7CgoKJHF1aXJrX2tleSA9ICRkYmgtPnBocHR5cGUgLiAnOicgLiAkZGJoLT5kYnN5bnRheDsKCmlmICghaXNzZXQoJHF1aXJrc1skcXVpcmtfa2V5XSkpIHsKICAgIGRpZSgiVGhpcyB0ZXN0IGRvZXMgbm90IHlldCBzdXBwb3J0ICRxdWlya19rZXkiKTsKfQoKaWYgKGNvdW50KCRxdWlya3NbJHF1aXJrX2tleV1bJ2NvbW1hbmRzJ10pKSB7CiAgICBmb3JlYWNoICgkcXVpcmtzWyRxdWlya19rZXldWydjb21tYW5kcyddIGFzICR2YWx1ZSkgewogICAgICAgIGV2YWwoJHZhbHVlKTsKICAgIH0KfQoKCiRkYmgtPnF1ZXJ5KCdERUxFVEUgRlJPTSBwaHB0ZXN0Jyk7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyAoMSwgJ29uZScsICdPbmUnLCAnMjAwMS0wMi0xNicpIik7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyAoMiwgJ3R3bycsICdUd28nLCAnMjAwMS0wMi0xNScpIik7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyAoMywgJ3RocmVlJywgJ1RocmVlJywgJzIwMDEtMDItMTQnKSIpOwoKCiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwpkcm9wX3RhYmxlKCRkYmgsICdwaHB0ZXN0X2ZrJyk7CiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9DQUxMQkFDSywgJ3BlJyk7CgoKaWYgKCRxdWlya19rZXkgPT0gJ29kYmM6YWNjZXNzJykgewogICAgJGRlZmF1bHRfZSA9ICcnOwogICAgJGRlY2ltYWwgICA9ICdOVU1FUklDJzsKfSBlbHNlaWYgKCRxdWlya19rZXkgPT0gJ21zcWw6bXNxbCcpIHsKICAgICRkZWZhdWx0X2UgPSAnJzsKICAgICRkZWNpbWFsICAgPSAnUkVBTCc7Cn0gZWxzZSB7CiAgICAkZGVmYXVsdF9lID0gIkRFRkFVTFQgJyBlJyI7CiAgICAkZGVjaW1hbCAgID0gJ0RFQ0lNQUwoMiwxKSc7Cn0KCmlmICgkcXVpcmtfa2V5ID09ICdtc3NxbDptc3NxbCcpIHsKICAgIC8qIFdlIG5lZWQgdG8gcmVzZXQgdGhlIGV4cGVjdGVkIGxlbmd0aCBvZiBwaHB0ZXN0X2ZrLmMgdG8gbWF0Y2gKICAgICAqIEBAVEVYVFNJWkUsIHNpbmNlIHRoZSBkZWZhdWx0IHZhbHVlIHNlZW1zIHRvIHZhcnkgYmFzZWQgb24gdGhlIHZlcnNpb24KICAgICAqIG9mIFNRTCBTZXJ2ZXIgd2UncmUgdGFsa2luZyB0byBhbmQgaXRzIGNvbmZpZ3VyYXRpb24uICovCiAgICAkdGV4dHNpemUgPSAkZGJoLT5nZXRPbmUoJ1NFTEVDVCBAQFRFWFRTSVpFJyk7CiAgICBpZiAoREI6OmlzRXJyb3IoJHRleHRzaXplKSkgewogICAgICAgIGVjaG8gJ0Vycm9yIHJldHJpZXZpbmcgQEBURVhUU0laRTogJy4kdGV4dHNpemUtPmdldE1lc3NhZ2UoKS4iXG4iOwogICAgfSBlbHNlIHsKICAgICAgICAkcXVpcmtzWyRxdWlya19rZXldWzJdWydsZW4nXSA9IChpbnRlZ2VyKSAkdGV4dHNpemU7CiAgICB9Cn0KCi8vICRudWxsIGlzIHNldCBpbiBta3RhYmxlLmluYwoKc3dpdGNoICgkZGJoLT5waHB0eXBlKSB7CiAgICBjYXNlICdtc3FsJzoKICAgICAgICAkZGJoLT5xdWVyeSgiCiAgICAgICAgICAgIENSRUFURSBUQUJMRSBwaHB0ZXN0X2ZrICgKICAgICAgICAgICAgICAgIGEgSU5URUdFUiBOT1QgTlVMTCwKICAgICAgICAgICAgICAgIGZrIElOVEVHRVIgTk9UIE5VTEwsCiAgICAgICAgICAgICAgICBjYyB7JHF1aXJrc1skcXVpcmtfa2V5XVsnY2xvYiddfSAkbnVsbCwKICAgICAgICAgICAgICAgIGQgeyRxdWlya3NbJHF1aXJrX2tleV1bJ2RhdGUnXX0gTk9UIE5VTEwsCiAgICAgICAgICAgICAgICBlIENIQVIoMikgJGRlZmF1bHRfZSBOT1QgTlVMTCwKICAgICAgICAgICAgICAgIGYgJGRlY2ltYWwgJG51bGwKICAgICAgICAgICAgKQogICAgICAgICIpOwogICAgICAgICRkYmgtPnF1ZXJ5KCdDUkVBVEUgVU5JUVVFIElOREVYIGZrcGsgT04gcGhwdGVzdF9mayAoZmspJyk7CiAgICAgICAgJGRiaC0+cXVlcnkoJ0NSRUFURSBVTklRVUUgSU5ERVggZmt1ayBPTiBwaHB0ZXN0X2ZrIChhLCBkKScpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICAkZGJoLT5xdWVyeSgiCiAgICAgICAgICAgIENSRUFURSBUQUJMRSBwaHB0ZXN0X2ZrICgKICAgICAgICAgICAgICAgIGEgSU5URUdFUiBOT1QgTlVMTCwKICAgICAgICAgICAgICAgIGZrIElOVEVHRVIgTk9UIE5VTEwsCiAgICAgICAgICAgICAgICBjYyB7JHF1aXJrc1skcXVpcmtfa2V5XVsnY2xvYiddfSAkbnVsbCwKICAgICAgICAgICAgICAgIGQgeyRxdWlya3NbJHF1aXJrX2tleV1bJ2RhdGUnXX0gTk9UIE5VTEwsCiAgICAgICAgICAgICAgICBlIENIQVIoMikgJGRlZmF1bHRfZSBOT1QgTlVMTCwKICAgICAgICAgICAgICAgIGYgJGRlY2ltYWwgJG51bGwsCiAgICAgICAgICAgICAgICBQUklNQVJZIEtFWSAoZmspLAogICAgICAgICAgICAgICAgVU5JUVVFIChhLCBkKQogICAgICAgICAgICApCiAgICAgICAgIik7Cn0KCiRkYmgtPnF1ZXJ5KCJDUkVBVEUgSU5ERVggdGhlZGlkeCBPTiBwaHB0ZXN0X2ZrIChkKSIpOwokZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdF9mayBWQUxVRVMgKDEwLCAxLCAnT25lJywiCiAgICAgICAgICAgIC4gJHF1aXJrc1skcXVpcmtfa2V5XVsnZGF0ZWxpdGVyYWwnXSAuICInMjAwMS0wMi0xNicsICAnYzEnLCAxLjEpIik7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0X2ZrIFZBTFVFUyAoMjAsIDIsICdUd28nLCIKICAgICAgICAgICAgLiAkcXVpcmtzWyRxdWlya19rZXldWydkYXRlbGl0ZXJhbCddIC4gIicyMDAxLTAyLTE1JywgJ2MyJywgMi4yKSIpOwokZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdF9mayBWQUxVRVMgKDMwLCAzLCAnVGhyZWUnLCIKICAgICAgICAgICAgLiAkcXVpcmtzWyRxdWlya19rZXldWydkYXRlbGl0ZXJhbCddIC4gIicyMDAxLTAyLTE0JywgJ2MzJywgMy4zKSIpOwoKZnVuY3Rpb24gJnJ1blF1ZXJ5KCkgewogICAgZ2xvYmFsICRkYmgsICRyZXN1bHRvYmo7CgogICAgJHF1aXJrX2tleSA9ICRkYmgtPnBocHR5cGUgLiAnOicgLiAkZGJoLT5kYnN5bnRheDsKCiAgICBzd2l0Y2ggKCRxdWlya19rZXkpIHsKICAgICAgICBjYXNlICdvZGJjOmRiMic6CiAgICAgICAgICAgIC8vIGNhbid0IGV4dHJhY3QgYmxvYidzIHRoaXMgd2F5IHNvIG1ha2UgYSBmYWtlIGNvbHVtbgogICAgICAgICAgICAkcXVlcnkgPSAiU0VMRUNUIHBocHRlc3RfZmsuYSwgcGhwdGVzdF9may5maywgJ3RlbXB4eXonIEFTIGNjLCIKICAgICAgICAgICAgICAgICAgIC4gJyBwaHB0ZXN0X2ZrLmQsIHBocHRlc3RfZmsuZSwgcGhwdGVzdF9may5mLCcKICAgICAgICAgICAgICAgICAgIC4gJyBwaHB0ZXN0LmEsIHBocHRlc3QuYiwgcGhwdGVzdC5jYywgcGhwdGVzdC5kJwogICAgICAgICAgICAgICAgICAgLiAnIEZST00gcGhwdGVzdF9maywgcGhwdGVzdCcKICAgICAgICAgICAgICAgICAgIC4gJyBXSEVSRSBwaHB0ZXN0LmEgPSBwaHB0ZXN0X2ZrLmZrJzsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgY2FzZSAnbXNxbDptc3FsJzoKICAgICAgICAgICAgJHF1ZXJ5ID0gJ1NFTEVDVCBwaHB0ZXN0X2ZrLmEsIHBocHRlc3RfZmsuZmssIHBocHRlc3RfZmsuY2MsJwogICAgICAgICAgICAgICAgICAgLiAnIHBocHRlc3RfZmsuZCwgcGhwdGVzdF9may5lLCBwaHB0ZXN0X2ZrLmYsJwogICAgICAgICAgICAgICAgICAgLiAnIHBocHRlc3QuYSwgcGhwdGVzdC5iLCBwaHB0ZXN0LmNjLCBwaHB0ZXN0LmQnCiAgICAgICAgICAgICAgICAgICAuICcgRlJPTSBwaHB0ZXN0X2ZrLCBwaHB0ZXN0JwogICAgICAgICAgICAgICAgICAgLiAnIFdIRVJFIHBocHRlc3QuYSA9IHBocHRlc3RfZmsuZmsnOwogICAgICAgICAgICBicmVhazsKICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAkcXVlcnkgPSAnU0VMRUNUIHBocHRlc3RfZmsuYSwgcGhwdGVzdF9may5maywgcGhwdGVzdF9may5jYywnCiAgICAgICAgICAgICAgICAgICAuICcgcGhwdGVzdF9may5kLCBwaHB0ZXN0X2ZrLmUsIHBocHRlc3RfZmsuZiwnCiAgICAgICAgICAgICAgICAgICAuICcgcGhwdGVzdC5hLCBwaHB0ZXN0LmIsIHBocHRlc3QuY2MsIHBocHRlc3QuZCcKICAgICAgICAgICAgICAgICAgIC4gJyBGUk9NIHBocHRlc3RfZmssIHBocHRlc3QnCiAgICAgICAgICAgICAgICAgICAuICcgV0hFUkUgcGhwdGVzdC5hID0gcGhwdGVzdF9may5mayc7CiAgICB9CiAgICAkcmVzdWx0b2JqID0mICRkYmgtPnF1ZXJ5KCRxdWVyeSk7CiAgICByZXR1cm4gJHJlc3VsdG9iajsKfQoKCiRleHBlY3RlZDAxID0gJ3RhYmxlIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCm5hbWUgPT4gYQp0eXBlIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCmxlbiAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQpmbGFncyAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQonOwoKJGV4cGVjdGVkMDIgPSAndGFibGUgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWUKbmFtZSA9PiBmawp0eXBlIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCmxlbiAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQpmbGFncyAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQonOwoKJGV4cGVjdGVkMDMgPSAndGFibGUgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWUKbmFtZSA9PiBjYwp0eXBlIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCmxlbiAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQpmbGFncyAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQonOwoKJGV4cGVjdGVkMDQgPSAndGFibGUgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWUKbmFtZSA9PiBkCnR5cGUgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWUKbGVuIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCmZsYWdzIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCic7CgokZXhwZWN0ZWQwNSA9ICd0YWJsZSAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQpuYW1lID0+IGUKdHlwZSAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQpsZW4gLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWUKZmxhZ3MgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWUKJzsKCiRleHBlY3RlZDA2ID0gJ3RhYmxlIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCm5hbWUgPT4gZgp0eXBlIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCmxlbiAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQpmbGFncyAuLi4gbWF0Y2hlZCBleHBlY3RlZCB2YWx1ZQonOwoKJGV4cGVjdGVkMTAgPSAndGFibGUgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWUKbmFtZSA9PiBkCnR5cGUgLi4uIG1hdGNoZWQgZXhwZWN0ZWQgdmFsdWUKbGVuIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCmZsYWdzIC4uLiBtYXRjaGVkIGV4cGVjdGVkIHZhbHVlCic7CgoKCnByaW50ICJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKcHJpbnQgIlBhc3NpbmcgcmVzdWx0IE9CSkVDVCB0byBtZXRob2QgaW4gREJfPHR5cGU+LlxuIjsKcHJpbnQgIk91dHB1dCA9IGRlZmF1bHQuXG4iOwpwcmludCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwokcmVzdWx0b2JqID0mIHJ1blF1ZXJ5KCk7Ci8vIFRoaXMgbnVtUm93cyBjYWxsIHByb3ZpZGVzIGEgcmVncmVzc2lvbiB0ZXN0IGZvciBidWcgIzQzODguCiRyZXN1bHRvYmotPm51bVJvd3MoKTsKJGFycmF5ID0gJGRiaC0+dGFibGVJbmZvKCRyZXN1bHRvYmopOwoKcHJpbnQgIlxuY29sdW1uIDA6XG4iOwpleGFtaW5lQXJyYXlEYXRhKCRhcnJheSwgJGV4cGVjdGVkMDEsIDApOwoKcHJpbnQgIlxuY29sdW1uIDk6XG4iOwpleGFtaW5lQXJyYXlEYXRhKCRhcnJheSwgJGV4cGVjdGVkMTAsIDkpOwoKCnByaW50ICJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKcHJpbnQgIlBhc3NpbmcgcmVzdWx0IElEIHRvIG1ldGhvZCBpbiBEQl88dHlwZT4uXG4iOwpwcmludCAiT3V0cHV0ID0gREJfVEFCTEVJTkZPX09SREVSLlxuIjsKcHJpbnQgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKJHJlc3VsdG9iaiA9JiBydW5RdWVyeSgpOwokYXJyYXkgPSAkZGJoLT50YWJsZUluZm8oJHJlc3VsdG9iai0+cmVzdWx0LCBEQl9UQUJMRUlORk9fT1JERVIpOwoKcHJpbnQgIlxuY29sdW1uIDA6XG4iOwpleGFtaW5lQXJyYXlEYXRhKCRhcnJheSwgJGV4cGVjdGVkMDEsIDApOwoKcHJpbnQgIlxuY29sdW1uIDM6XG4iOwpleGFtaW5lQXJyYXlEYXRhKCRhcnJheSwgJGV4cGVjdGVkMDQsIDMpOwoKcHJpbnQgIlxubnVtX2ZpZWxkczogIjsKaWYgKCRxdWlya3NbJHF1aXJrX2tleV1bJ2hhbmRsZXNfcmVzdWx0cyddICYmICRhcnJheVsnbnVtX2ZpZWxkcyddID09IDEwKSB7CiAgICBwcmludCAibWF0Y2hlZCBleHBlY3RlZCByZXN1bHRcbiI7Cn0gZWxzZWlmIChEQjo6aXNFcnJvcigkYXJyYXkpICYmICRhcnJheS0+Z2V0Q29kZSgpID09IERCX0VSUk9SX05PVF9DQVBBQkxFKSB7CiAgICBwcmludCAibWF0Y2hlZCBleHBlY3RlZCByZXN1bHRcbiI7Cn0gZWxzZSB7CiAgICBwcmludCAiVGhpcyBETUJTIGRpZG4ndCBwcm9kdWNlIHByb3BlciByZXN1bHRzXG4iOwp9CgpwcmludCAiXG5vcmRlcjpcbiI7CmlmICgkcXVpcmtzWyRxdWlya19rZXldWydoYW5kbGVzX3Jlc3VsdHMnXSAmJiBpc19hcnJheSgkYXJyYXlbJ29yZGVyJ10pKSB7CiAgICAkZXhwZWN0ZWQgPSAnYSA9PiA2CmIgPT4gNwpjYyA9PiA4CmQgPT4gOQplID0+IDQKZiA9PiA1CmZrID0+IDEKJzsKICAgIGtzb3J0KCRhcnJheVsnb3JkZXInXSk7CiAgICBleGFtaW5lQXJyYXlEYXRhKCRhcnJheVsnb3JkZXInXSwgJGV4cGVjdGVkKTsKfSBlbHNlaWYgKERCOjppc0Vycm9yKCRhcnJheSkgJiYgJGFycmF5LT5nZXRDb2RlKCkgPT0gREJfRVJST1JfTk9UX0NBUEFCTEUpIHsKICAgIHByaW50ICJtYXRjaGVkIGV4cGVjdGVkIHJlc3VsdFxuIjsKfSBlbHNlIHsKICAgIHByaW50ICJUaGlzIERNQlMgZGlkbid0IHByb2R1Y2UgcHJvcGVyIHJlc3VsdHNcbiI7Cn0KCgoKcHJpbnQgIlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwpwcmludCAiUGFzc2luZyBEQl9UQUJMRUlORk9fT1JERVJUQUJMRSB0byBtZXRob2QgaW4gREJfcmVzdWx0LlxuIjsKcHJpbnQgIk91dHB1dCA9IERCX1RBQkxFSU5GT19PUkRFUlRBQkxFLlxuIjsKcHJpbnQgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKJHJlc3VsdG9iaiA9JiBydW5RdWVyeSgpOwokYXJyYXkgPSAkcmVzdWx0b2JqLT50YWJsZUluZm8oREJfVEFCTEVJTkZPX09SREVSVEFCTEUpOwovLyBGcmVlIHRoaXMgdG8ga2VlcCBpbnRlcmJhc2UgaGFwcHkuCiRyZXN1bHRvYmotPmZyZWUoKTsKCnByaW50ICJcbmNvbHVtbiAwOlxuIjsKZXhhbWluZUFycmF5RGF0YSgkYXJyYXksICRleHBlY3RlZDAxLCAwKTsKCnByaW50ICJcbmNvbHVtbiAzOlxuIjsKZXhhbWluZUFycmF5RGF0YSgkYXJyYXksICRleHBlY3RlZDA0LCAzKTsKCnByaW50ICJcbm51bV9maWVsZHM6ICI7CmlmICgkcXVpcmtzWyRxdWlya19rZXldWydoYW5kbGVzX3Jlc3VsdHMnXSAmJiAkYXJyYXlbJ251bV9maWVsZHMnXSA9PSAxMCkgewogICAgcHJpbnQgIm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0XG4iOwp9IGVsc2VpZiAoREI6OmlzRXJyb3IoJGFycmF5KSAmJiAkYXJyYXktPmdldENvZGUoKSA9PSBEQl9FUlJPUl9OT1RfQ0FQQUJMRSkgewogICAgcHJpbnQgIm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0XG4iOwp9IGVsc2UgewogICAgcHJpbnQgIlRoaXMgRE1CUyBkaWRuJ3QgcHJvZHVjZSBwcm9wZXIgcmVzdWx0c1xuIjsKfQoKCnByaW50ICdvcmRlcnRhYmxlW3BocHRlc3RdOiAnOwokZXhwZWN0ZWQgPSAnYSA9PiA2CmIgPT4gNwpjYyA9PiA4CmQgPT4gOQonOwppZiAoJHF1aXJrc1skcXVpcmtfa2V5XVsnaGFuZGxlc19yZXN1bHRzJ10KICAgICYmIGlzc2V0KCRhcnJheVsnb3JkZXJ0YWJsZSddWydwaHB0ZXN0J10pKSB7CiAgICAkYWN0dWFsID0gcmV0dXJuQXJyYXlEYXRhKCRhcnJheVsnb3JkZXJ0YWJsZSddWydwaHB0ZXN0J10pOwp9IGVsc2UgewogICAgJGFjdHVhbCA9ICcnOwp9CmlmICgkYWN0dWFsID09ICRleHBlY3RlZCkgewogICAgcHJpbnQgIm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0XG4iOwp9IGVsc2UgewogICAgaWYgKCgkcXVpcmtzWyRxdWlya19rZXldWydmaW5kc190YWJsZSddID09PSBmYWxzZSAKICAgICAgICB8fCBEQjo6aXNFcnJvcigkYXJyYXkpICYmICRhcnJheS0+Z2V0Q29kZSgpID09IERCX0VSUk9SX05PVF9DQVBBQkxFKQogICAgICAgICYmICRhY3R1YWwgPT0gJycpIHsKICAgICAgICBwcmludCAibWF0Y2hlZCBleHBlY3RlZCByZXN1bHRcbiI7CiAgICB9IGVsc2UgewogICAgICAgIHByaW50ICJESUROJ1QgbWF0Y2ggZXhwZWN0ZWQgdmFsdWVzLi4uXG4iOwogICAgICAgIHByaW50ICJ+fn5+fn5+flxuRXhwZWN0ZWQ6XG4kZXhwZWN0ZWRcbiI7CiAgICAgICAgcHJpbnQgIn5+fn5cbkFjdHVhbDpcbiRhY3R1YWxcbn5+fn5+fn5+XG5cbiI7CiAgICB9Cn0KCgpwcmludCAnb3JkZXJ0YWJsZVtwaHB0ZXN0X2ZrXTogJzsKJGV4cGVjdGVkID0gJ2EgPT4gMApmayA9PiAxCmNjID0+IDIKZCA9PiAzCmUgPT4gNApmID0+IDUKJzsKaWYgKCRxdWlya3NbJHF1aXJrX2tleV1bJ2hhbmRsZXNfcmVzdWx0cyddCiAgICAmJiBpc3NldCgkYXJyYXlbJ29yZGVydGFibGUnXVsncGhwdGVzdF9mayddKSkgewogICAgJGFjdHVhbCA9IHJldHVybkFycmF5RGF0YSgkYXJyYXlbJ29yZGVydGFibGUnXVsncGhwdGVzdF9mayddKTsKfSBlbHNlIHsKICAgICRhY3R1YWwgPSAnJzsKfQppZiAoJGFjdHVhbCA9PSAkZXhwZWN0ZWQpIHsKICAgIHByaW50ICJtYXRjaGVkIGV4cGVjdGVkIHJlc3VsdFxuIjsKfSBlbHNlIHsKICAgIGlmICgoJHF1aXJrc1skcXVpcmtfa2V5XVsnZmluZHNfdGFibGUnXSA9PT0gZmFsc2UgCiAgICAgICAgfHwgREI6OmlzRXJyb3IoJGFycmF5KSAmJiAkYXJyYXktPmdldENvZGUoKSA9PSBEQl9FUlJPUl9OT1RfQ0FQQUJMRSkKICAgICAgICAmJiAkYWN0dWFsID09ICcnKSB7CiAgICAgICAgcHJpbnQgIm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0XG4iOwogICAgfSBlbHNlIHsKICAgICAgICBwcmludCAiRElETidUIG1hdGNoIGV4cGVjdGVkIHZhbHVlcy4uLlxuIjsKICAgICAgICBwcmludCAifn5+fn5+fn5cbkV4cGVjdGVkOlxuJGV4cGVjdGVkXG4iOwogICAgICAgIHByaW50ICJ+fn5+XG5BY3R1YWw6XG4kYWN0dWFsXG5+fn5+fn5+flxuXG4iOwogICAgfQp9CgoKcHJpbnQgIlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwpwcmludCAiUGFzc2luZyBUQUJMRSBOQU1FICdwaHB0ZXN0X2ZrJyB0byBtZXRob2QgaW4gREJfPGRyaXZlcj4uXG4iOwpwcmludCAiT3V0cHV0ID0gZGVmYXVsdC5cbiI7CnByaW50ICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiI7CiRhcnJheSA9ICRkYmgtPnRhYmxlSW5mbygncGhwdGVzdF9maycpOwoKcHJpbnQgIlxuY29sdW1uIDA6XG4iOwpleGFtaW5lQXJyYXlEYXRhKCRhcnJheSwgJGV4cGVjdGVkMDEsIDAsIGZhbHNlKTsKCnByaW50ICJcbmNvbHVtbiAxOlxuIjsKZXhhbWluZUFycmF5RGF0YSgkYXJyYXksICRleHBlY3RlZDAyLCAxLCBmYWxzZSk7CgpwcmludCAiXG5jb2x1bW4gMjpcbiI7CmV4YW1pbmVBcnJheURhdGEoJGFycmF5LCAkZXhwZWN0ZWQwMywgMiwgZmFsc2UpOwoKcHJpbnQgIlxuY29sdW1uIDM6XG4iOwpleGFtaW5lQXJyYXlEYXRhKCRhcnJheSwgJGV4cGVjdGVkMDQsIDMsIGZhbHNlKTsKCnByaW50ICJcbmNvbHVtbiA0OlxuIjsKZXhhbWluZUFycmF5RGF0YSgkYXJyYXksICRleHBlY3RlZDA1LCA0LCBmYWxzZSk7CgpwcmludCAiXG5jb2x1bW4gNTpcbiI7CmV4YW1pbmVBcnJheURhdGEoJGFycmF5LCAkZXhwZWN0ZWQwNiwgNSwgZmFsc2UpOwoKCnByaW50ICJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKcHJpbnQgIlBhc3NpbmcgVEFCTEUgTkFNRSAncGhwdGVzdF9maycgdG8gbWV0aG9kIGluIERCXzxkcml2ZXI+LlxuIjsKcHJpbnQgIk91dHB1dCA9IERCX1RBQkxFSU5GT19GVUxMLlxuIjsKcHJpbnQgIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIjsKJGFycmF5ID0gJGRiaC0+dGFibGVJbmZvKCdwaHB0ZXN0X2ZrJywgREJfVEFCTEVJTkZPX0ZVTEwpOwoKcHJpbnQgIlxuY29sdW1uIDA6XG4iOwpleGFtaW5lQXJyYXlEYXRhKCRhcnJheSwgJGV4cGVjdGVkMDEsIDAsIGZhbHNlKTsKCnByaW50ICJcbm9yZGVyOlxuIjsKJGV4cGVjdCA9J2EgPT4gMApmayA9PiAxCmNjID0+IDIKZCA9PiAzCmUgPT4gNApmID0+IDUKJzsKZXhhbWluZUFycmF5RGF0YSgkYXJyYXlbJ29yZGVyJ10sICRleHBlY3QsIGZhbHNlLCBmYWxzZSk7CgpwcmludCAiXG5vcmRlcnRhYmxlW3BocHRlc3RfZmtdOlxuIjsKJGV4cGVjdCA9J2EgPT4gMApmayA9PiAxCmNjID0+IDIKZCA9PiAzCmUgPT4gNApmID0+IDUKJzsKZXhhbWluZUFycmF5RGF0YSgkYXJyYXlbJ29yZGVydGFibGUnXVsncGhwdGVzdF9mayddLCAkZXhwZWN0KTsKCgoKcHJpbnQgIlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwpwcmludCAiUGFzc2luZyBUQUJMRSBOQU1FICdwaHB0ZXN0X2ZrJyB0byBtZXRob2QgaW4gREJfPGRyaXZlcj4gQUdBSU4uXG4iOwpwcmludCAiT3V0cHV0ID0gREJfVEFCTEVJTkZPX0ZVTEwsIGxvd2VyY2FzaW5nIHR1cm5lZCBvZmYuXG4iOwpwcmludCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iOwokZGJoLT5zZXRPcHRpb24oJ3BvcnRhYmlsaXR5JywgREJfUE9SVEFCSUxJVFlfQUxMIF4gREJfUE9SVEFCSUxJVFlfTE9XRVJDQVNFKTsKJGFycmF5ID0gJGRiaC0+dGFibGVJbmZvKCdwaHB0ZXN0X2ZrJywgREJfVEFCTEVJTkZPX0ZVTEwpOwoKLy8gdGVzdGluZyBub24tbG93ZXJjYXNpbmcgYWJvdmUgdG8gZW5zdXJlIHByb2dyYW0gZG9lc24ndCBkaWUuCi8vIGxvd2VyY2FzZSB0aGUgbmFtZXMgaGVyZSB0byBlbnN1cmUgdGVzdCB1bmlmb3JtaXR5LgokYXJyYXlbMF1bJ3RhYmxlJ10gPSBzdHJ0b2xvd2VyKCRhcnJheVswXVsndGFibGUnXSk7CiRhcnJheVswXVsnbmFtZSddID0gc3RydG9sb3dlcigkYXJyYXlbMF1bJ25hbWUnXSk7CgpwcmludCAiXG5jb2x1bW4gMDpcbiI7CmV4YW1pbmVBcnJheURhdGEoJGFycmF5LCAwLCBmYWxzZSk7CgoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CmRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsKZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdF9maycpOwoKPz4KLS1FWFBFQ1QtLQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUGFzc2luZyByZXN1bHQgT0JKRUNUIHRvIG1ldGhvZCBpbiBEQl88dHlwZT4uCk91dHB1dCA9IGRlZmF1bHQuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY29sdW1uIDA6Cm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0Cgpjb2x1bW4gOToKbWF0Y2hlZCBleHBlY3RlZCByZXN1bHQKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQYXNzaW5nIHJlc3VsdCBJRCB0byBtZXRob2QgaW4gREJfPHR5cGU+LgpPdXRwdXQgPSBEQl9UQUJMRUlORk9fT1JERVIuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY29sdW1uIDA6Cm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0Cgpjb2x1bW4gMzoKbWF0Y2hlZCBleHBlY3RlZCByZXN1bHQKCm51bV9maWVsZHM6IG1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0CgpvcmRlcjoKbWF0Y2hlZCBleHBlY3RlZCByZXN1bHQKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQYXNzaW5nIERCX1RBQkxFSU5GT19PUkRFUlRBQkxFIHRvIG1ldGhvZCBpbiBEQl9yZXN1bHQuCk91dHB1dCA9IERCX1RBQkxFSU5GT19PUkRFUlRBQkxFLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNvbHVtbiAwOgptYXRjaGVkIGV4cGVjdGVkIHJlc3VsdAoKY29sdW1uIDM6Cm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0CgpudW1fZmllbGRzOiBtYXRjaGVkIGV4cGVjdGVkIHJlc3VsdApvcmRlcnRhYmxlW3BocHRlc3RdOiBtYXRjaGVkIGV4cGVjdGVkIHJlc3VsdApvcmRlcnRhYmxlW3BocHRlc3RfZmtdOiBtYXRjaGVkIGV4cGVjdGVkIHJlc3VsdAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClBhc3NpbmcgVEFCTEUgTkFNRSAncGhwdGVzdF9maycgdG8gbWV0aG9kIGluIERCXzxkcml2ZXI+LgpPdXRwdXQgPSBkZWZhdWx0LgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNvbHVtbiAwOgptYXRjaGVkIGV4cGVjdGVkIHJlc3VsdAoKY29sdW1uIDE6Cm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0Cgpjb2x1bW4gMjoKbWF0Y2hlZCBleHBlY3RlZCByZXN1bHQKCmNvbHVtbiAzOgptYXRjaGVkIGV4cGVjdGVkIHJlc3VsdAoKY29sdW1uIDQ6Cm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0Cgpjb2x1bW4gNToKbWF0Y2hlZCBleHBlY3RlZCByZXN1bHQKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpQYXNzaW5nIFRBQkxFIE5BTUUgJ3BocHRlc3RfZmsnIHRvIG1ldGhvZCBpbiBEQl88ZHJpdmVyPi4KT3V0cHV0ID0gREJfVEFCTEVJTkZPX0ZVTEwuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKY29sdW1uIDA6Cm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0CgpvcmRlcjoKbWF0Y2hlZCBleHBlY3RlZCByZXN1bHQKCm9yZGVydGFibGVbcGhwdGVzdF9ma106Cm1hdGNoZWQgZXhwZWN0ZWQgcmVzdWx0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUGFzc2luZyBUQUJMRSBOQU1FICdwaHB0ZXN0X2ZrJyB0byBtZXRob2QgaW4gREJfPGRyaXZlcj4gQUdBSU4uCk91dHB1dCA9IERCX1RBQkxFSU5GT19GVUxMLCBsb3dlcmNhc2luZyB0dXJuZWQgb2ZmLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmNvbHVtbiAwOgptYXRjaGVkIGV4cGVjdGVkIHJlc3VsdAo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/17query.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpxdWVyeQotLUlOSS0tCmVycm9yX3JlcG9ydGluZyA9IDIwNDcKLS1TS0lQSUYtLQo8P3BocAoKLyoqCiAqIENhbGxzIHRoZSBxdWVyeSgpIG1ldGhvZCBpbiB2YXJpb3VzIHdheXMgYWdhaW5zdCBhbnkgREJNUy4KICoKICogQHNlZSAgICAgIERCX2NvbW1vbjo6cXVlcnkoKQogKiAKICogQHBhY2thZ2UgIERCCiAqIEB2ZXJzaW9uICAkSWQ6IDE3cXVlcnkucGhwdCx2IDEuMTYgMjAwNy8wMS8xMiAwMjo0MTowNyBhaGFydmV5IEV4cCAkCiAqIEBjYXRlZ29yeSBEYXRhYmFzZQogKiBAYXV0aG9yICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BhbmFseXNpc2FuZHNvbHV0aW9ucy5jb20+CiAqIEBpbnRlcm5hbAogKi8KCmNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsKcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOwoKPz4KLS1GSUxFLS0KPD9waHAKCi8vICRJZDogMTdxdWVyeS5waHB0LHYgMS4xNiAyMDA3LzAxLzEyIDAyOjQxOjA3IGFoYXJ2ZXkgRXhwICQKCi8qKgogKiBDb25uZWN0IHRvIHRoZSBkYXRhYmFzZSBhbmQgbWFrZSB0aGUgcGhwdGVzdCB0YWJsZS4KICovCnJlcXVpcmVfb25jZSAnLi9ta3RhYmxlLmluYyc7CgoKLyoqCiAqIExvY2FsIGVycm9yIGNhbGxiYWNrIGhhbmRsZXIuCiAqCiAqIERyb3BzIHRoZSBwaHB0ZXN0IHRhYmxlLCBwcmludHMgb3V0IGFuIGVycm9yIG1lc3NhZ2UgYW5kIGtpbGxzIHRoZQogKiBwcm9jZXNzLgogKgogKiBAcGFyYW0gb2JqZWN0ICAkbyAgUEVBUiBlcnJvciBvYmplY3QgYXV0b21hdGljYWxseSBwYXNzZWQgdG8gdGhpcyBtZXRob2QKICogQHJldHVybiB2b2lkCiAqIEBzZWUgUEVBUjo6c2V0RXJyb3JIYW5kbGluZygpCiAqLwpmdW5jdGlvbiBwZSgkbykgewogICAgZ2xvYmFsICRkYmg7CgogICAgJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CiAgICBkcm9wX3RhYmxlKCRkYmgsICdwaHB0ZXN0Jyk7CgogICAgZGllKCRvLT50b1N0cmluZygpKTsKfQoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAncGUnKTsKCgokZGJoLT5zZXRGZXRjaE1vZGUoREJfRkVUQ0hNT0RFX0FTU09DKTsKCgokcmVzID0mICRkYmgtPnF1ZXJ5KCdERUxFVEUgRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPSAxNycpOwpwcmludCAnMSkgZGVsZXRlOiAnIC4gKCRyZXMgPT09IERCX09LID8gJ29rYXknIDogJ2Vycm9yJykgLiAiXG4iOwoKJHJlcyA9JiAkZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCAoYSwgYiwgY2MpIFZBTFVFUyAoMTcsICdvbmUnLCAnT25lJykiKTsKcHJpbnQgJzIpIGluc2VydDogJyAuICgkcmVzID09PSBEQl9PSyA/ICdva2F5JyA6ICdlcnJvcicpIC4gIlxuIjsKCiRyZXMgPSYgJGRiaC0+cXVlcnkoJ0lOU0VSVCBJTlRPIHBocHRlc3QgKGEsIGIsIGNjKSBWQUxVRVMgKD8sID8sID8pJywgYXJyYXkoMTcsICd0d28nLCAnVHdvJykpOwpwcmludCAnMykgaW5zZXJ0OiAnIC4gKCRyZXMgPT09IERCX09LID8gJ29rYXknIDogJ2Vycm9yJykgLiAiXG4iOwoKCiRyZXMgPSYgJGRiaC0+cXVlcnkoJ1NFTEVDVCBhLCBiIEZST00gcGhwdGVzdCBXSEVSRSBhID0gMTcnKTsKJHJvdyA9ICRyZXMtPmZldGNoUm93KCk7CnByaW50ICI0KSBhID0geyRyb3dbJ2EnXX0sIGIgPSB7JHJvd1snYiddfVxuIjsKJHJlcy0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCiRyZXMgPSYgJGRiaC0+cXVlcnkoJ1NFTEVDVCBhLCBiIEZST00gcGhwdGVzdCBXSEVSRSBjYyA9ID8nLCBhcnJheSgnVHdvJykpOwokcm93ID0gJHJlcy0+ZmV0Y2hSb3coKTsKcHJpbnQgIjUpIGEgPSB7JHJvd1snYSddfSwgYiA9IHskcm93WydiJ119XG4iOwoKCiRhcnJheSA9IGFycmF5KAogICAgJ2ZvbycgPT4gMTEsCiAgICAnYmFyJyA9PiAndGhyZWUnLAogICAgJ2JheicgPT4gbnVsbCwKKTsKJHJlcyA9JiAkZGJoLT5xdWVyeSgnSU5TRVJUIElOVE8gcGhwdGVzdCAoYSwgYiwgZCkgVkFMVUVTICg/LCA/LCA/KScsICRhcnJheSk7CnByaW50ICc2KSBpbnNlcnQ6ICcgLiAoJHJlcyA9PT0gREJfT0sgPyAnb2theScgOiAnZXJyb3InKSAuICJcbiI7CgokcmVzID0mICRkYmgtPnF1ZXJ5KCdTRUxFQ1QgYSwgYiwgZCBGUk9NIHBocHRlc3QgV0hFUkUgYSA9ID8nLCAxMSk7CiRyb3cgPSAkcmVzLT5mZXRjaFJvdygpOwpwcmludCAiNykgYSA9IHskcm93WydhJ119LCBiID0geyRyb3dbJ2InXX0sIGQgPSAiOwppZiAoJGRiaC0+cGhwdHlwZSA9PSAnbXNxbCcpIHsKICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCdkJywgJHJvdykpIHsKICAgICAgICAkdHlwZSA9IGdldHR5cGUoJHJvd1snZCddKTsKICAgICAgICBpZiAoJHR5cGUgPT0gJ05VTEwnIHx8ICRyb3dbJ2QnXSA9PSAnJykgewogICAgICAgICAgICBwcmludCAiZ290IGV4cGVjdGVkIHZhbHVlXG4iOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHByaW50ICJFUlI6IGV4cGVjdGVkIGQncyB0eXBlIHRvIGJlIE5VTEwgYnV0IGl0J3MgJHR5cGUgYW5kIHRoZSB2YWx1ZSBpcyAiOwogICAgICAgICAgICBwcmludCAkcm93WydkJ10gLiAiXG4iOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgLy8gaHR0cDovL2J1Z3MucGhwLm5ldC8/aWQ9MzE5NjAKICAgICAgICBwcmludCAiUHJpb3IgdG8gUEhQIDQuMy4xMSBvciA1LjAuNCwgUEhQJ3MgbXNxbCBleHRlbnNpb24gc2lsZW50bHkiCiAgICAgICAgICAgICAgLiAiIGRyb3BwZWQgY29sdW1ucyB3aXRoIG51bGwgdmFsdWVzLiBZb3UgbmVlZCB0byB1cGdyYWRlLlxuIjsKICAgIH0KfSBlbHNlIHsKICAgICR0eXBlID0gZ2V0dHlwZSgkcm93WydkJ10pOwogICAgaWYgKCR0eXBlID09ICdOVUxMJyB8fCAkcm93WydkJ10gPT0gJycpIHsKICAgICAgICBwcmludCAiZ290IGV4cGVjdGVkIHZhbHVlXG4iOwogICAgfSBlbHNlIHsKICAgICAgICBwcmludCAiRVJSOiBleHBlY3RlZCBkJ3MgdHlwZSB0byBiZSBOVUxMIGJ1dCBpdCdzICR0eXBlIGFuZCB0aGUgdmFsdWUgaXMgIjsKICAgICAgICBwcmludCAkcm93WydkJ10gLiAiXG4iOwogICAgfQp9CgoKJHJlcyA9JiAkZGJoLT5xdWVyeSgnREVMRVRFIEZST00gcGhwdGVzdCBXSEVSRSBhID0gPycsIGFycmF5KDE3KSk7CnByaW50ICc4KSBkZWxldGU6ICcgLiAoJHJlcyA9PT0gREJfT0sgPyAnb2theScgOiAnZXJyb3InKSAuICJcbiI7CgokcmVzID0mICRkYmgtPnF1ZXJ5KCdERUxFVEUgRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPSA/JywgYXJyYXkoMCkpOwpwcmludCAnOSkgZGVsZXRlIHdpdGggYXJyYXkoMCkgYXMgcGFyYW06ICcgLiAoJHJlcyA9PT0gREJfT0sgPyAnb2theScgOiAnZXJyb3InKSAuICJcbiI7CgokcmVzID0mICRkYmgtPnF1ZXJ5KCdERUxFVEUgRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPSA/JywgMCk7CnByaW50ICcxMCkgZGVsZXRlIHdpdGggMCBhcyBwYXJhbTogJyAuICgkcmVzID09PSBEQl9PSyA/ICdva2F5JyA6ICdlcnJvcicpIC4gIlxuIjsKCiRkYmgtPm5leHRRdWVyeUlzTWFuaXAodHJ1ZSk7CiRyZXMgPSYgJGRiaC0+cXVlcnkoJ1NFTEVDVCAqIEZST00gcGhwdGVzdCcpOwpwcmludCAnMTEpIHF1ZXJ5IGlzIG1hbmlwICh3aXRoIG92ZXJyaWRlKTogJyAuICgkZGJoLT5fbGFzdF9xdWVyeV9tYW5pcCA/ICd0cnVlJyA6ICdmYWxzZScpIC4gIlxuIjsKCiRkYmgtPm5leHRRdWVyeUlzTWFuaXAoZmFsc2UpOwokcmVzID0mICRkYmgtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NIHBocHRlc3QnKTsKcHJpbnQgJzEyKSBxdWVyeSBpcyBtYW5pcCAod2l0aG91dCBvdmVycmlkZSk6ICcgLiAoJGRiaC0+X2xhc3RfcXVlcnlfbWFuaXAgPyAndHJ1ZScgOiAnZmFsc2UnKSAuICJcbiI7CgoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CmRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsKCj8+Ci0tRVhQRUNULS0KMSkgZGVsZXRlOiBva2F5CjIpIGluc2VydDogb2theQozKSBpbnNlcnQ6IG9rYXkKNCkgYSA9IDE3LCBiID0gb25lCjUpIGEgPSAxNywgYiA9IHR3bwo2KSBpbnNlcnQ6IG9rYXkKNykgYSA9IDExLCBiID0gdGhyZWUsIGQgPSBnb3QgZXhwZWN0ZWQgdmFsdWUKOCkgZGVsZXRlOiBva2F5CjkpIGRlbGV0ZSB3aXRoIGFycmF5KDApIGFzIHBhcmFtOiBva2F5CjEwKSBkZWxldGUgd2l0aCAwIGFzIHBhcmFtOiBva2F5CjExKSBxdWVyeSBpcyBtYW5pcCAod2l0aCBvdmVycmlkZSk6IHRydWUKMTIpIHF1ZXJ5IGlzIG1hbmlwICh3aXRob3V0IG92ZXJyaWRlKTogZmFsc2UK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/18get.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpnZXQKLS1JTkktLQplcnJvcl9yZXBvcnRpbmcgPSAyMDQ3Ci0tU0tJUElGLS0KPD9waHAKCi8qKgogKiBDYWxscyB0aGUgZ2V0KigpIG1ldGhvZHMgaW4gdmFyaW91cyB3YXlzIGFnYWluc3QgYW55IERCTVMuCiAqCiAqIEBzZWUgREJfQ29tbW9uOjpnZXRBbGwoKSwgREJfQ29tbW9uOjpnZXRBc3NvYygpLCBEQl9Db21tb246OmdldENvbCgpCiAqICAgICAgREJfQ29tbW9uOjpnZXRMaXN0T2YoKSwgREJfQ29tbW9uOjpnZXRPbmUoKSwgREJfQ29tbW9uOjpnZXRSb3coKQogKgogKiBAcGFja2FnZSAgREIKICogQHZlcnNpb24gICRJZDogMThnZXQucGhwdCx2IDEuMTEgMjAwNy8wMS8wOCAwMDoxOTo0OCBhaGFydmV5IEV4cCAkCiAqIEBjYXRlZ29yeSBEYXRhYmFzZQogKiBAYXV0aG9yICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BhbmFseXNpc2FuZHNvbHV0aW9ucy5jb20+CiAqIEBpbnRlcm5hbAogKi8KCmNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsKcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOwoKPz4KLS1GSUxFLS0KPD9waHAKCi8vICRJZDogMThnZXQucGhwdCx2IDEuMTEgMjAwNy8wMS8wOCAwMDoxOTo0OCBhaGFydmV5IEV4cCAkCgovKioKICogQ29ubmVjdCB0byB0aGUgZGF0YWJhc2UgYW5kIG1ha2UgdGhlIDxrYmQ+cGhwdGVzdDwva2JkPiB0YWJsZS4KICovCnJlcXVpcmVfb25jZSAnLi9ta3RhYmxlLmluYyc7CgoKLyoqCiAqIExvY2FsIGVycm9yIGNhbGxiYWNrIGhhbmRsZXIuCiAqCiAqIERyb3BzIHRoZSBwaHB0ZXN0IHRhYmxlLCBwcmludHMgb3V0IGFuIGVycm9yIG1lc3NhZ2UgYW5kIGtpbGxzIHRoZQogKiBwcm9jZXNzLgogKgogKiBAcGFyYW0gb2JqZWN0ICAkbyAgUEVBUiBlcnJvciBvYmplY3QgYXV0b21hdGljYWxseSBwYXNzZWQgdG8gdGhpcyBtZXRob2QKICogQHJldHVybiB2b2lkCiAqIEBzZWUgUEVBUjo6c2V0RXJyb3JIYW5kbGluZygpCiAqLwpmdW5jdGlvbiBwZSgkbyl7CiAgICBnbG9iYWwgJGRiaDsKCiAgICAkZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgIGRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsKCiAgICBkaWUoJG8tPnRvU3RyaW5nKCkpOwp9CgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICdwZScpOwoKCiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyAoMiwgJ3R3bycsICdUd28nLCAnMjAwMi0wMi0yMicpIik7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyAoNDIsICd0aHJlZScsICdUaHJlZScsICcyMDAzLTAzLTIzJykiKTsKCgpwcmludCAiPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwpwcmludCAndGVzdGluZyBnZXRPbmU6ICc7CiRyZXQgPSYgJGRiaC0+Z2V0T25lKCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QgV0hFUkUgY2MgPSAnVHdvJyIpOwpwcmludF9yKCRyZXQpOwpwcmludCAiXG4iOwoKcHJpbnQgJ3Rlc3RpbmcgZ2V0T25lIHdpdGggc3RyaW5nIHBhcmFtczogJzsKJHJldCA9JiAkZGJoLT5nZXRPbmUoJ1NFTEVDVCAqIEZST00gcGhwdGVzdCBXSEVSRSBjYyA9ID8nLCAnVGhyZWUnKTsKcHJpbnRfcigkcmV0KTsKcHJpbnQgIlxuIjsKCnByaW50ICd0ZXN0aW5nIGdldE9uZSB3aXRoIGFycmF5IHBhcmFtczogJzsKJHJldCA9JiAkZGJoLT5nZXRPbmUoJ1NFTEVDVCAqIEZST00gcGhwdGVzdCBXSEVSRSBjYyA9ID8nLCBhcnJheSgnVHdvJykpOwpwcmludF9yKCRyZXQpOwpwcmludCAiXG4iOwoKcHJpbnQgIlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwpwcmludCAidGVzdGluZyBnZXRSb3c6XG4iOwokcmV0ID0mICRkYmgtPmdldFJvdygiU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGNjID0gJ1R3byciKTsKcHJpbnRfcigkcmV0KTsKCnByaW50ICJ0ZXN0aW5nIGdldFJvdyB3aXRoIG51bGwgcGFyYW1zLCBEQl9GRVRDSE1PREVfT1JERVJFRDpcbiI7CiRyZXQgPSYgJGRiaC0+Z2V0Um93KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QgV0hFUkUgY2MgPSAnVHdvJyIsCiAgICAgICAgbnVsbCwgREJfRkVUQ0hNT0RFX09SREVSRUQpOwpwcmludF9yKCRyZXQpOwoKLy8gVEhJUyBET0VTTidUIFdPUksgRFVFIFRPIEJBQ0tXQVJEUyBDT01QQVRJQklMSVRZIENSQVAKLy8gcHJpbnQgInRlc3RpbmcgZ2V0Um93IHdpdGggc3RyaW5nIHBhcmFtcywgREJfRkVUQ0hNT0RFX09SREVSRUQ6XG4iOwovLyAkcmV0ID0mICRkYmgtPmdldFJvdygnU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGNjID0gPycsCi8vICAgICAgICAgJ1R3bycsIERCX0ZFVENITU9ERV9PUkRFUkVEKTsKLy8gcHJpbnRfcigkcmV0KTsKLy8KLy8gdGVzdGluZyBnZXRSb3cgd2l0aCBzdHJpbmcgcGFyYW1zLCBEQl9GRVRDSE1PREVfT1JERVJFRDoKLy8gQXJyYXkKLy8gKAovLyAgICAgWzBdID0+IDIKLy8gICAgIFsxXSA9PiB0d28KLy8gICAgIFsyXSA9PiBUd28KLy8gICAgIFszXSA9PiAyMDAyLTAyLTIyCi8vICkKCiAgIHByaW50ICJ0ZXN0aW5nIGdldFJvdyB3aXRoIFJFVkVSU0VEIGFyZ3M6IERCX0ZFVENITU9ERV9BU1NPQywgYXJyYXkgcGFyYW1zOlxuIjsKICAgJHJldCA9JiAkZGJoLT5nZXRSb3coJ1NFTEVDVCAqIEZST00gcGhwdGVzdCBXSEVSRSBjYyA9ID8nLAogICAgICAgICAgIERCX0ZFVENITU9ERV9BU1NPQywgYXJyYXkoJ1R3bycpKTsKICAgcHJpbnRfcigkcmV0KTsKICAgCiAgIHByaW50ICJ0ZXN0aW5nIGdldFJvdyB3aXRoIFJFVkVSU0VEIGFyZ3M6IERCX0ZFVENITU9ERV9BU1NPQzpcbiI7CiAgICRyZXQgPSYgJGRiaC0+Z2V0Um93KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QgV0hFUkUgY2MgPSAnVHdvJyIsCiAgICAgICAgICAgREJfRkVUQ0hNT0RFX0FTU09DKTsKICAgcHJpbnRfcigkcmV0KTsKCnByaW50ICJ0ZXN0aW5nIGdldFJvdyB3aXRoIGFycmF5IHBhcmFtcywgREJfRkVUQ0hNT0RFX0FTU09DOlxuIjsKJHJldCA9JiAkZGJoLT5nZXRSb3coJ1NFTEVDVCAqIEZST00gcGhwdGVzdCBXSEVSRSBjYyA9ID8nLAogICAgICAgIGFycmF5KCdUd28nKSwgREJfRkVUQ0hNT0RFX0FTU09DKTsKcHJpbnRfcigkcmV0KTsKCnByaW50ICJ0ZXN0aW5nIGdldFJvdyB3aXRoIGFycmF5IHBhcmFtcywgREJfRkVUQ0hNT0RFX09CSkVDVDpcbiI7CiRyZXQgPSYgJGRiaC0+Z2V0Um93KCdTRUxFQ1QgKiBGUk9NIHBocHRlc3QgV0hFUkUgY2MgPSA/JywKICAgICAgICBhcnJheSgnVHdvJyksIERCX0ZFVENITU9ERV9PQkpFQ1QpOwpwcmludF9yKCRyZXQpOwoKCnByaW50ICJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKcHJpbnQgInRlc3RpbmcgZ2V0Q29sOlxuIjsKJHJldCA9JiAkZGJoLT5nZXRDb2woIlNFTEVDVCAqIEZST00gcGhwdGVzdCBPUkRFUiBCWSBiIik7CnByaW50X3IoJHJldCk7CgpwcmludCAidGVzdGluZyBnZXRDb2wgb24gcXVlcnkgd2l0aCBubyByZWNvcmRzOlxuIjsKJHJldCA9JiAkZGJoLT5nZXRDb2woJ1NFTEVDVCAqIEZST00gcGhwdGVzdCBXSEVSRSBhID4gMjAwJyk7CnByaW50X3IoJHJldCk7CgpwcmludCAidGVzdGluZyBnZXRDb2wgd2l0aCBpbnZhbGlkIGNvbHVtbiBpZDpcbiI7CiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwokcmV0ID0mICRkYmgtPmdldENvbCgnU0VMRUNUIGIgRlJPTSBwaHB0ZXN0IE9SREVSIEJZIGInLCAxKTsKaWYgKERCOjppc0Vycm9yKCRyZXQpKSB7CiAgICBlY2hvICRyZXQtPmdldE1lc3NhZ2UoKSAuICJcbiI7Cn0gZWxzZSB7CiAgICBwcmludCAiPj4gU2hvdWxkIGhhdmUgcHJvZHVjZWQgJ25vIHN1Y2ggZmllbGQnIGVycm9yXG4iOwp9CiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9DQUxMQkFDSywgJ3BlJyk7CgpwcmludCAidGVzdGluZyBnZXRDb2wgd2l0aCAxIGNvbDpcbiI7CiRyZXQgPSYgJGRiaC0+Z2V0Q29sKCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QgT1JERVIgQlkgYiIsIDEpOwpwcmludF9yKCRyZXQpOwoKcHJpbnQgInRlc3RpbmcgZ2V0Q29sIHdpdGggYiBjb2w6XG4iOwokcmV0ID0mICRkYmgtPmdldENvbCgiU0VMRUNUICogRlJPTSBwaHB0ZXN0IE9SREVSIEJZIGIiLCAnYicpOwpwcmludF9yKCRyZXQpOwoKcHJpbnQgInRlc3RpbmcgZ2V0Q29sIHdpdGggYiBjb2wsIHNjYWxhciBwYXJhbXM6XG4iOwokcmV0ID0mICRkYmgtPmdldENvbCgiU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPCA/IE9SREVSIEJZIGIiLAogICAgICAgICdiJywgMTAwKTsKcHJpbnRfcigkcmV0KTsKCnByaW50ICJ0ZXN0aW5nIGdldENvbCB3aXRoIGIgY29sLCBhcnJheSBwYXJhbXM6XG4iOwokcmV0ID0mICRkYmgtPmdldENvbCgiU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPCA/IE9SREVSIEJZIGIiLAogICAgICAgICdiJywgYXJyYXkoMTAwKSk7CnByaW50X3IoJHJldCk7CgoKcHJpbnQgIlxuPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4iOwpwcmludCAidGVzdGluZyBnZXRBc3NvYzpcbiI7CiRyZXQgPSYgJGRiaC0+Z2V0QXNzb2MoJ1NFTEVDVCBhLCBiLCBjYyBGUk9NIHBocHRlc3QgV0hFUkUgYSA8IDEwMCBPUkRFUiBCWSBiJyk7CnByaW50X3IoJHJldCk7CgpwcmludCAidGVzdGluZyBnZXRBc3NvYyB3aXRoIGZhbHNlIGZvcmNlLCBudWxsIHBhcmFtcywgREJfRkVUQ0hNT0RFX09SREVSRUQ6XG4iOwokcmV0ID0mICRkYmgtPmdldEFzc29jKCJTRUxFQ1QgYSwgYiwgY2MgRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPCAxMDAgT1JERVIgQlkgYiIsCiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBudWxsLCBEQl9GRVRDSE1PREVfT1JERVJFRCk7CnByaW50X3IoJHJldCk7CgpwcmludCAidGVzdGluZyBnZXRBc3NvYyB3aXRoIGZhbHNlIGZvcmNlLCBzY2FsYXIgcGFyYW1zLCBEQl9GRVRDSE1PREVfQVNTT0M6XG4iOwokcmV0ID0mICRkYmgtPmdldEFzc29jKCdTRUxFQ1QgYSwgYiwgY2MgRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPCA/IE9SREVSIEJZIGInLAogICAgICAgICAgICAgICAgICAgICAgICBmYWxzZSwgMTAwLCBEQl9GRVRDSE1PREVfQVNTT0MpOwpwcmludF9yKCRyZXQpOwoKcHJpbnQgInRlc3RpbmcgZ2V0QXNzb2Mgd2l0aCB0d28gY29scywgZmFsc2UgZm9yY2UsIHNjYWxhciBwYXJhbXMsIERCX0ZFVENITU9ERV9BU1NPQzpcbiI7CiRyZXQgPSYgJGRiaC0+Z2V0QXNzb2MoJ1NFTEVDVCBhLCBiIEZST00gcGhwdGVzdCBXSEVSRSBhIDwgPyBPUkRFUiBCWSBiJywKICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIDEwMCwgREJfRkVUQ0hNT0RFX0FTU09DKTsKcHJpbnRfcigkcmV0KTsKCnByaW50ICJ0ZXN0aW5nIGdldEFzc29jIHdpdGggdHdvIGNvbHMsIHRydWUgZm9yY2UsIHNjYWxhciBwYXJhbXMsIERCX0ZFVENITU9ERV9BU1NPQzpcbiI7CiRyZXQgPSYgJGRiaC0+Z2V0QXNzb2MoJ1NFTEVDVCBhLCBiIEZST00gcGhwdGVzdCBXSEVSRSBhIDwgPyBPUkRFUiBCWSBiJywKICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSwgMTAwLCBEQl9GRVRDSE1PREVfQVNTT0MpOwpwcmludF9yKCRyZXQpOwoKcHJpbnQgInRlc3RpbmcgZ2V0QXNzb2Mgd2l0aCBmYWxzZSBmb3JjZSwgc2NhbGFyIHBhcmFtcywgREJfRkVUQ0hNT0RFX0FTU09DLCB0cnVlIGdyb3VwOlxuIjsKJHJldCA9JiAkZGJoLT5nZXRBc3NvYygnU0VMRUNUIGEsIGIsIGNjIEZST00gcGhwdGVzdCBXSEVSRSBhIDwgPyBPUkRFUiBCWSBiJywKICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIDEwMCwgREJfRkVUQ0hNT0RFX0FTU09DLCB0cnVlKTsKcHJpbnRfcigkcmV0KTsKCnByaW50ICJ0ZXN0aW5nIGdldEFzc29jIHdpdGggZmFsc2UgZm9yY2UsIGFycmF5IHBhcmFtcywgREJfRkVUQ0hNT0RFX09CSkVDVDpcbiI7CiRyZXQgPSYgJGRiaC0+Z2V0QXNzb2MoJ1NFTEVDVCBhLCBiLCBjYyBGUk9NIHBocHRlc3QgV0hFUkUgYSA8ID8gT1JERVIgQlkgYicsCiAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlLCBhcnJheSgxMDApLCBEQl9GRVRDSE1PREVfT0JKRUNUKTsKcHJpbnRfcigkcmV0KTsKCnByaW50ICJ0ZXN0aW5nIGdldEFzc29jIHdpdGggdHJ1ZSBmb3JjZSwgYXJyYXkgcGFyYW1zLCBEQl9GRVRDSE1PREVfT0JKRUNULCB0cnVlIGdyb3VwOlxuIjsKJHJldCA9JiAkZGJoLT5nZXRBc3NvYygnU0VMRUNUIGEsIGIsIGNjIEZST00gcGhwdGVzdCBXSEVSRSBhIDwgPyBPUkRFUiBCWSBiJywKICAgICAgICAgICAgICAgICAgICAgICAgZmFsc2UsIGFycmF5KDEwMCksIERCX0ZFVENITU9ERV9PQkpFQ1QsIHRydWUpOwpwcmludF9yKCRyZXQpOwoKCnByaW50ICJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKcHJpbnQgInRlc3RpbmcgZ2V0QWxsOlxuIjsKJHJldCA9JiAkZGJoLT5nZXRBbGwoIlNFTEVDVCAqIEZST00gcGhwdGVzdCBXSEVSRSBjYyA9ICdUd28nIE9SIGNjID0gJ1RocmVlJyIpOwpwcmludF9yKCRyZXQpOwoKcHJpbnQgInRlc3RpbmcgZ2V0QWxsIHdpdGggbnVsbCBwYXJhbXMsIERCX0ZFVENITU9ERV9PUkRFUkVEOlxuIjsKJHJldCA9JiAkZGJoLT5nZXRBbGwoIlNFTEVDVCAqIEZST00gcGhwdGVzdCBXSEVSRSBjYyA9ICdUd28nIE9SIGNjID0gJ1RocmVlJyIsCiAgICAgICAgbnVsbCwgREJfRkVUQ0hNT0RFX09SREVSRUQpOwpwcmludF9yKCRyZXQpOwoKLy8gVEhJUyBET0VTTidUIFdPUksgRFVFIFRPIEJBQ0tXQVJEUyBDT01QQVRJQklMSVRZIENSQVAKLy8gcHJpbnQgInRlc3RpbmcgZ2V0QWxsIHdpdGggc3RyaW5nIHBhcmFtcywgREJfRkVUQ0hNT0RFX09SREVSRUQ6XG4iOwovLyAkcmV0ID0mICRkYmgtPmdldEFsbCgnU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGNjID0gPycsCi8vICAgICAgICAgJ1R3bycsIERCX0ZFVENITU9ERV9PUkRFUkVEKTsKLy8gcHJpbnRfcigkcmV0KTsKLy8KLy8gdGVzdGluZyBnZXRBbGwgd2l0aCBzdHJpbmcgcGFyYW1zLCBEQl9GRVRDSE1PREVfT1JERVJFRDoKLy8gQXJyYXkKLy8gKAovLyAgICAgWzBdID0+IDIKLy8gICAgIFsxXSA9PiB0d28KLy8gICAgIFsyXSA9PiBUd28KLy8gICAgIFszXSA9PiAyMDAyLTAyLTIyCi8vICkKCiAgIHByaW50ICJ0ZXN0aW5nIGdldEFsbCB3aXRoIFJFVkVSU0VEIGFyZ3M6IERCX0ZFVENITU9ERV9BU1NPQywgYXJyYXkgcGFyYW1zOlxuIjsKICAgJHJldCA9JiAkZGJoLT5nZXRBbGwoJ1NFTEVDVCAqIEZST00gcGhwdGVzdCBXSEVSRSBjYyA9ID8gT1IgY2MgPSA/IE9SREVSIEJZIGNjJywKICAgICAgICAgICBEQl9GRVRDSE1PREVfQVNTT0MsIGFycmF5KCdUd28nLCAnVGhyZWUnKSk7CiAgIHByaW50X3IoJHJldCk7CiAgIAogICBwcmludCAidGVzdGluZyBnZXRBbGwgd2l0aCBSRVZFUlNFRCBhcmdzOiBEQl9GRVRDSE1PREVfQVNTT0M6XG4iOwogICAkcmV0ID0mICRkYmgtPmdldEFsbCgiU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGNjID0gJ1R3bycgT1IgY2MgPSAnVGhyZWUnIiwKICAgICAgICAgICBEQl9GRVRDSE1PREVfQVNTT0MpOwogICBwcmludF9yKCRyZXQpOwoKcHJpbnQgInRlc3RpbmcgZ2V0QWxsIHdpdGggYXJyYXkgcGFyYW1zLCBEQl9GRVRDSE1PREVfQVNTT0M6XG4iOwokcmV0ID0mICRkYmgtPmdldEFsbCgnU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGNjID0gPyBPUiBjYyA9ID8gT1JERVIgQlkgY2MnLAogICAgICAgIGFycmF5KCdUd28nLCAnVGhyZWUnKSwgREJfRkVUQ0hNT0RFX0FTU09DKTsKcHJpbnRfcigkcmV0KTsKCnByaW50ICJ0ZXN0aW5nIGdldEFsbCB3aXRoIGFycmF5IHBhcmFtcywgREJfRkVUQ0hNT0RFX09CSkVDVDpcbiI7CiRyZXQgPSYgJGRiaC0+Z2V0QWxsKCdTRUxFQ1QgKiBGUk9NIHBocHRlc3QgV0hFUkUgY2MgPSA/IE9SIGNjID0gPyBPUkRFUiBCWSBjYycsCiAgICAgICAgYXJyYXkoJ1R3bycsICdUaHJlZScpLCBEQl9GRVRDSE1PREVfT0JKRUNUKTsKcHJpbnRfcigkcmV0KTsKCgpwcmludCAiXG49PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiI7CnByaW50ICd0ZXN0aW5nIGdldE9uZSB3aXRoIG51bGwgdmFsdWUgaW4gY29sdW1uOiAnOwokZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCBWQUxVRVMgKDksICduaW5lJywgJycsIE5VTEwpIik7CiRyZXQgPSYgJGRiaC0+Z2V0T25lKCdTRUxFQ1QgZCBGUk9NIHBocHRlc3QgV0hFUkUgYSA9IDknKTsKaWYgKCRyZXQgPT09ICcnKSB7CiAgICBwcmludCAibWF0Y2hlcyBleHBlY3RlZCByZXN1bHRcbiI7Cn0gZWxzZSB7CiAgICBpZiAoJGRiaC0+cGhwdHlwZSA9PSAnbXNxbCcpIHsKICAgICAgICBpZiAoZ2V0dHlwZSgkcmV0KSA9PSAnTlVMTCcpIHsKICAgICAgICAgICAgLy8gbXNxbCBkb2Vzbid0IGV2ZW4gcmV0dXJuIHRoZSBjb2x1bW4uICBKb3khIDopCiAgICAgICAgICAgIC8vIGh0dHA6Ly9idWdzLnBocC5uZXQvP2lkPTMxOTYwCiAgICAgICAgICAgIHByaW50ICJtYXRjaGVzIGV4cGVjdGVkIHJlc3VsdFxuIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmludCAiV09XLCBtU1FMIG5vdyByZXR1cm5zIGNvbHVtbnMgdGhhdCBoYXZlIE5VTExTIGluIHRoZW1cbiI7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBwcmludCAndHlwZT0nIC4gZ2V0dHlwZSgkcmV0KSAuICIsIHZhbHVlPSRyZXRcbiI7CiAgICB9Cn0KCnByaW50ICd0ZXN0aW5nIGdldE9uZSB3aXRoIGVtcHR5IHN0cmluZyBpbiBjb2x1bW46ICc7CiRyZXQgPSYgJGRiaC0+Z2V0T25lKCdTRUxFQ1QgY2MgRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPSA5Jyk7CmlmICgkcmV0ID09PSAnJykgewogICAgcHJpbnQgImVtcHR5IHN0cmluZ1xuIjsKfSBlbHNlIHsKICAgIHByaW50ICd0eXBlPScgLiBnZXR0eXBlKCRyZXQpIC4gIiwgdmFsdWU9JHJldFxuIjsKfQoKCnByaW50ICJcbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuIjsKCgpkcm9wX3RhYmxlKCRkYmgsICdwaHB0ZXN0Jyk7CgoKPz4KLS1FWFBFQ1QtLQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdGVzdGluZyBnZXRPbmU6IDIKdGVzdGluZyBnZXRPbmUgd2l0aCBzdHJpbmcgcGFyYW1zOiA0Mgp0ZXN0aW5nIGdldE9uZSB3aXRoIGFycmF5IHBhcmFtczogMgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnRlc3RpbmcgZ2V0Um93OgpBcnJheQooCiAgICBbMF0gPT4gMgogICAgWzFdID0+IHR3bwogICAgWzJdID0+IFR3bwogICAgWzNdID0+IDIwMDItMDItMjIKKQp0ZXN0aW5nIGdldFJvdyB3aXRoIG51bGwgcGFyYW1zLCBEQl9GRVRDSE1PREVfT1JERVJFRDoKQXJyYXkKKAogICAgWzBdID0+IDIKICAgIFsxXSA9PiB0d28KICAgIFsyXSA9PiBUd28KICAgIFszXSA9PiAyMDAyLTAyLTIyCikKdGVzdGluZyBnZXRSb3cgd2l0aCBSRVZFUlNFRCBhcmdzOiBEQl9GRVRDSE1PREVfQVNTT0MsIGFycmF5IHBhcmFtczoKQXJyYXkKKAogICAgW2FdID0+IDIKICAgIFtiXSA9PiB0d28KICAgIFtjY10gPT4gVHdvCiAgICBbZF0gPT4gMjAwMi0wMi0yMgopCnRlc3RpbmcgZ2V0Um93IHdpdGggUkVWRVJTRUQgYXJnczogREJfRkVUQ0hNT0RFX0FTU09DOgpBcnJheQooCiAgICBbYV0gPT4gMgogICAgW2JdID0+IHR3bwogICAgW2NjXSA9PiBUd28KICAgIFtkXSA9PiAyMDAyLTAyLTIyCikKdGVzdGluZyBnZXRSb3cgd2l0aCBhcnJheSBwYXJhbXMsIERCX0ZFVENITU9ERV9BU1NPQzoKQXJyYXkKKAogICAgW2FdID0+IDIKICAgIFtiXSA9PiB0d28KICAgIFtjY10gPT4gVHdvCiAgICBbZF0gPT4gMjAwMi0wMi0yMgopCnRlc3RpbmcgZ2V0Um93IHdpdGggYXJyYXkgcGFyYW1zLCBEQl9GRVRDSE1PREVfT0JKRUNUOgpzdGRDbGFzcyBPYmplY3QKKAogICAgW2FdID0+IDIKICAgIFtiXSA9PiB0d28KICAgIFtjY10gPT4gVHdvCiAgICBbZF0gPT4gMjAwMi0wMi0yMgopCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdGVzdGluZyBnZXRDb2w6CkFycmF5CigKICAgIFswXSA9PiA0MgogICAgWzFdID0+IDQyCiAgICBbMl0gPT4gMgopCnRlc3RpbmcgZ2V0Q29sIG9uIHF1ZXJ5IHdpdGggbm8gcmVjb3JkczoKQXJyYXkKKAopCnRlc3RpbmcgZ2V0Q29sIHdpdGggaW52YWxpZCBjb2x1bW4gaWQ6CkRCIEVycm9yOiBubyBzdWNoIGZpZWxkCnRlc3RpbmcgZ2V0Q29sIHdpdGggMSBjb2w6CkFycmF5CigKICAgIFswXSA9PiBiaW5nCiAgICBbMV0gPT4gdGhyZWUKICAgIFsyXSA9PiB0d28KKQp0ZXN0aW5nIGdldENvbCB3aXRoIGIgY29sOgpBcnJheQooCiAgICBbMF0gPT4gYmluZwogICAgWzFdID0+IHRocmVlCiAgICBbMl0gPT4gdHdvCikKdGVzdGluZyBnZXRDb2wgd2l0aCBiIGNvbCwgc2NhbGFyIHBhcmFtczoKQXJyYXkKKAogICAgWzBdID0+IGJpbmcKICAgIFsxXSA9PiB0aHJlZQogICAgWzJdID0+IHR3bwopCnRlc3RpbmcgZ2V0Q29sIHdpdGggYiBjb2wsIGFycmF5IHBhcmFtczoKQXJyYXkKKAogICAgWzBdID0+IGJpbmcKICAgIFsxXSA9PiB0aHJlZQogICAgWzJdID0+IHR3bwopCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdGVzdGluZyBnZXRBc3NvYzoKQXJyYXkKKAogICAgWzQyXSA9PiBBcnJheQogICAgICAgICgKICAgICAgICAgICAgWzBdID0+IHRocmVlCiAgICAgICAgICAgIFsxXSA9PiBUaHJlZQogICAgICAgICkKCiAgICBbMl0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFswXSA9PiB0d28KICAgICAgICAgICAgWzFdID0+IFR3bwogICAgICAgICkKCikKdGVzdGluZyBnZXRBc3NvYyB3aXRoIGZhbHNlIGZvcmNlLCBudWxsIHBhcmFtcywgREJfRkVUQ0hNT0RFX09SREVSRUQ6CkFycmF5CigKICAgIFs0Ml0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFswXSA9PiB0aHJlZQogICAgICAgICAgICBbMV0gPT4gVGhyZWUKICAgICAgICApCgogICAgWzJdID0+IEFycmF5CiAgICAgICAgKAogICAgICAgICAgICBbMF0gPT4gdHdvCiAgICAgICAgICAgIFsxXSA9PiBUd28KICAgICAgICApCgopCnRlc3RpbmcgZ2V0QXNzb2Mgd2l0aCBmYWxzZSBmb3JjZSwgc2NhbGFyIHBhcmFtcywgREJfRkVUQ0hNT0RFX0FTU09DOgpBcnJheQooCiAgICBbNDJdID0+IEFycmF5CiAgICAgICAgKAogICAgICAgICAgICBbYl0gPT4gdGhyZWUKICAgICAgICAgICAgW2NjXSA9PiBUaHJlZQogICAgICAgICkKCiAgICBbMl0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFtiXSA9PiB0d28KICAgICAgICAgICAgW2NjXSA9PiBUd28KICAgICAgICApCgopCnRlc3RpbmcgZ2V0QXNzb2Mgd2l0aCB0d28gY29scywgZmFsc2UgZm9yY2UsIHNjYWxhciBwYXJhbXMsIERCX0ZFVENITU9ERV9BU1NPQzoKQXJyYXkKKAogICAgWzQyXSA9PiB0aHJlZQogICAgWzJdID0+IHR3bwopCnRlc3RpbmcgZ2V0QXNzb2Mgd2l0aCB0d28gY29scywgdHJ1ZSBmb3JjZSwgc2NhbGFyIHBhcmFtcywgREJfRkVUQ0hNT0RFX0FTU09DOgpBcnJheQooCiAgICBbNDJdID0+IEFycmF5CiAgICAgICAgKAogICAgICAgICAgICBbYl0gPT4gdGhyZWUKICAgICAgICApCgogICAgWzJdID0+IEFycmF5CiAgICAgICAgKAogICAgICAgICAgICBbYl0gPT4gdHdvCiAgICAgICAgKQoKKQp0ZXN0aW5nIGdldEFzc29jIHdpdGggZmFsc2UgZm9yY2UsIHNjYWxhciBwYXJhbXMsIERCX0ZFVENITU9ERV9BU1NPQywgdHJ1ZSBncm91cDoKQXJyYXkKKAogICAgWzQyXSA9PiBBcnJheQogICAgICAgICgKICAgICAgICAgICAgWzBdID0+IEFycmF5CiAgICAgICAgICAgICAgICAoCiAgICAgICAgICAgICAgICAgICAgW2JdID0+IGJpbmcKICAgICAgICAgICAgICAgICAgICBbY2NdID0+IFRoaXMgaXMgYSB0ZXN0CiAgICAgICAgICAgICAgICApCgogICAgICAgICAgICBbMV0gPT4gQXJyYXkKICAgICAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICAgICBbYl0gPT4gdGhyZWUKICAgICAgICAgICAgICAgICAgICBbY2NdID0+IFRocmVlCiAgICAgICAgICAgICAgICApCgogICAgICAgICkKCiAgICBbMl0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFswXSA9PiBBcnJheQogICAgICAgICAgICAgICAgKAogICAgICAgICAgICAgICAgICAgIFtiXSA9PiB0d28KICAgICAgICAgICAgICAgICAgICBbY2NdID0+IFR3bwogICAgICAgICAgICAgICAgKQoKICAgICAgICApCgopCnRlc3RpbmcgZ2V0QXNzb2Mgd2l0aCBmYWxzZSBmb3JjZSwgYXJyYXkgcGFyYW1zLCBEQl9GRVRDSE1PREVfT0JKRUNUOgpBcnJheQooCiAgICBbNDJdID0+IHN0ZENsYXNzIE9iamVjdAogICAgICAgICgKICAgICAgICAgICAgW2FdID0+IDQyCiAgICAgICAgICAgIFtiXSA9PiB0aHJlZQogICAgICAgICAgICBbY2NdID0+IFRocmVlCiAgICAgICAgKQoKICAgIFsyXSA9PiBzdGRDbGFzcyBPYmplY3QKICAgICAgICAoCiAgICAgICAgICAgIFthXSA9PiAyCiAgICAgICAgICAgIFtiXSA9PiB0d28KICAgICAgICAgICAgW2NjXSA9PiBUd28KICAgICAgICApCgopCnRlc3RpbmcgZ2V0QXNzb2Mgd2l0aCB0cnVlIGZvcmNlLCBhcnJheSBwYXJhbXMsIERCX0ZFVENITU9ERV9PQkpFQ1QsIHRydWUgZ3JvdXA6CkFycmF5CigKICAgIFs0Ml0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFswXSA9PiBzdGRDbGFzcyBPYmplY3QKICAgICAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICAgICBbYV0gPT4gNDIKICAgICAgICAgICAgICAgICAgICBbYl0gPT4gYmluZwogICAgICAgICAgICAgICAgICAgIFtjY10gPT4gVGhpcyBpcyBhIHRlc3QKICAgICAgICAgICAgICAgICkKCiAgICAgICAgICAgIFsxXSA9PiBzdGRDbGFzcyBPYmplY3QKICAgICAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICAgICBbYV0gPT4gNDIKICAgICAgICAgICAgICAgICAgICBbYl0gPT4gdGhyZWUKICAgICAgICAgICAgICAgICAgICBbY2NdID0+IFRocmVlCiAgICAgICAgICAgICAgICApCgogICAgICAgICkKCiAgICBbMl0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFswXSA9PiBzdGRDbGFzcyBPYmplY3QKICAgICAgICAgICAgICAgICgKICAgICAgICAgICAgICAgICAgICBbYV0gPT4gMgogICAgICAgICAgICAgICAgICAgIFtiXSA9PiB0d28KICAgICAgICAgICAgICAgICAgICBbY2NdID0+IFR3bwogICAgICAgICAgICAgICAgKQoKICAgICAgICApCgopCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KdGVzdGluZyBnZXRBbGw6CkFycmF5CigKICAgIFswXSA9PiBBcnJheQogICAgICAgICgKICAgICAgICAgICAgWzBdID0+IDIKICAgICAgICAgICAgWzFdID0+IHR3bwogICAgICAgICAgICBbMl0gPT4gVHdvCiAgICAgICAgICAgIFszXSA9PiAyMDAyLTAyLTIyCiAgICAgICAgKQoKICAgIFsxXSA9PiBBcnJheQogICAgICAgICgKICAgICAgICAgICAgWzBdID0+IDQyCiAgICAgICAgICAgIFsxXSA9PiB0aHJlZQogICAgICAgICAgICBbMl0gPT4gVGhyZWUKICAgICAgICAgICAgWzNdID0+IDIwMDMtMDMtMjMKICAgICAgICApCgopCnRlc3RpbmcgZ2V0QWxsIHdpdGggbnVsbCBwYXJhbXMsIERCX0ZFVENITU9ERV9PUkRFUkVEOgpBcnJheQooCiAgICBbMF0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFswXSA9PiAyCiAgICAgICAgICAgIFsxXSA9PiB0d28KICAgICAgICAgICAgWzJdID0+IFR3bwogICAgICAgICAgICBbM10gPT4gMjAwMi0wMi0yMgogICAgICAgICkKCiAgICBbMV0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFswXSA9PiA0MgogICAgICAgICAgICBbMV0gPT4gdGhyZWUKICAgICAgICAgICAgWzJdID0+IFRocmVlCiAgICAgICAgICAgIFszXSA9PiAyMDAzLTAzLTIzCiAgICAgICAgKQoKKQp0ZXN0aW5nIGdldEFsbCB3aXRoIFJFVkVSU0VEIGFyZ3M6IERCX0ZFVENITU9ERV9BU1NPQywgYXJyYXkgcGFyYW1zOgpBcnJheQooCiAgICBbMF0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFthXSA9PiA0MgogICAgICAgICAgICBbYl0gPT4gdGhyZWUKICAgICAgICAgICAgW2NjXSA9PiBUaHJlZQogICAgICAgICAgICBbZF0gPT4gMjAwMy0wMy0yMwogICAgICAgICkKCiAgICBbMV0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFthXSA9PiAyCiAgICAgICAgICAgIFtiXSA9PiB0d28KICAgICAgICAgICAgW2NjXSA9PiBUd28KICAgICAgICAgICAgW2RdID0+IDIwMDItMDItMjIKICAgICAgICApCgopCnRlc3RpbmcgZ2V0QWxsIHdpdGggUkVWRVJTRUQgYXJnczogREJfRkVUQ0hNT0RFX0FTU09DOgpBcnJheQooCiAgICBbMF0gPT4gQXJyYXkKICAgICAgICAoCiAgICAgICAgICAgIFthXSA9PiAyCiAgICAgICAgICAgIFtiXSA9PiB0d28KICAgICAgICAgICAgW2NjXSA9PiBUd28KICAgICAgICAgICAgW2RdID0+IDIwMDItMDItMjIKICAgICAgICApCgogICAgWzFdID0+IEFycmF5CiAgICAgICAgKAogICAgICAgICAgICBbYV0gPT4gNDIKICAgICAgICAgICAgW2JdID0+IHRocmVlCiAgICAgICAgICAgIFtjY10gPT4gVGhyZWUKICAgICAgICAgICAgW2RdID0+IDIwMDMtMDMtMjMKICAgICAgICApCgopCnRlc3RpbmcgZ2V0QWxsIHdpdGggYXJyYXkgcGFyYW1zLCBEQl9GRVRDSE1PREVfQVNTT0M6CkFycmF5CigKICAgIFswXSA9PiBBcnJheQogICAgICAgICgKICAgICAgICAgICAgW2FdID0+IDQyCiAgICAgICAgICAgIFtiXSA9PiB0aHJlZQogICAgICAgICAgICBbY2NdID0+IFRocmVlCiAgICAgICAgICAgIFtkXSA9PiAyMDAzLTAzLTIzCiAgICAgICAgKQoKICAgIFsxXSA9PiBBcnJheQogICAgICAgICgKICAgICAgICAgICAgW2FdID0+IDIKICAgICAgICAgICAgW2JdID0+IHR3bwogICAgICAgICAgICBbY2NdID0+IFR3bwogICAgICAgICAgICBbZF0gPT4gMjAwMi0wMi0yMgogICAgICAgICkKCikKdGVzdGluZyBnZXRBbGwgd2l0aCBhcnJheSBwYXJhbXMsIERCX0ZFVENITU9ERV9PQkpFQ1Q6CkFycmF5CigKICAgIFswXSA9PiBzdGRDbGFzcyBPYmplY3QKICAgICAgICAoCiAgICAgICAgICAgIFthXSA9PiA0MgogICAgICAgICAgICBbYl0gPT4gdGhyZWUKICAgICAgICAgICAgW2NjXSA9PiBUaHJlZQogICAgICAgICAgICBbZF0gPT4gMjAwMy0wMy0yMwogICAgICAgICkKCiAgICBbMV0gPT4gc3RkQ2xhc3MgT2JqZWN0CiAgICAgICAgKAogICAgICAgICAgICBbYV0gPT4gMgogICAgICAgICAgICBbYl0gPT4gdHdvCiAgICAgICAgICAgIFtjY10gPT4gVHdvCiAgICAgICAgICAgIFtkXSA9PiAyMDAyLTAyLTIyCiAgICAgICAgKQoKKQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CnRlc3RpbmcgZ2V0T25lIHdpdGggbnVsbCB2YWx1ZSBpbiBjb2x1bW46IG1hdGNoZXMgZXhwZWN0ZWQgcmVzdWx0CnRlc3RpbmcgZ2V0T25lIHdpdGggZW1wdHkgc3RyaW5nIGluIGNvbHVtbjogZW1wdHkgc3RyaW5nCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/19getlistof.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpnZXRMaXN0T2YKLS1JTkktLQplcnJvcl9yZXBvcnRpbmcgPSAyMDQ3Ci0tU0tJUElGLS0KPD9waHAgY2hkaXIoZGlybmFtZShfX0ZJTEVfXykpOyByZXF1aXJlX29uY2UgJy4vc2tpcGlmLmluYyc7ID8+Ci0tRklMRS0tCjw/cGhwCgpyZXF1aXJlX29uY2UgJy4vbWt0YWJsZS5pbmMnOwoKLyoKICogQW4gYXJyYXkgd2l0aCBrZXlzIGNvbnRhaW5pbmcgdGhlICR0eXBlIHRvIGJlIHBhc3NlZCB0byB0aGUgZ2V0TGlzdE9mKCkKICogbWV0aG9kLiAgVGhlIHZhbHVlcyBvZiB0aGUgbWFpbiBhcnJheSBhcmUgYSBzdWItYXJyYXkgdGhhdCBoYXMga2V5cwogKiBsaXN0aW5nIHRoZSBwaHB0eXBlIGFuZCBkYnN5bnRheCBvZiBlYWNoIGRyaXZlciBhbmQgdmFsdWVzIG9mIHRoZQogKiByZXN1bHQgZXhwZWN0ZWQgZnJvbSB0aGUgY29tYmluYXRpb24gb2YgYWxsIHRoZXNlIGZhY3RvcnMuCiAqLwokdGVzdHMgPSBhcnJheSgKICAgICd0YWJsZXMnID0+IGFycmF5KAogICAgICAgICdkYmFzZTpkYmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2Zic3FsOmZic3FsJyA9PiAnYXJyYXknLAogICAgICAgICdpYmFzZTppYmFzZScgPT4gJ2FycmF5JywKICAgICAgICAnaWJhc2U6ZmlyZWJpcmQnID0+ICdhcnJheScsCiAgICAgICAgJ2lmeDppZngnID0+ICdhcnJheScsCiAgICAgICAgJ21zcWw6bXNxbCcgPT4gJ2FycmF5JywKICAgICAgICAnbXNzcWw6bXNzcWwnID0+ICdhcnJheScsCiAgICAgICAgJ215c3FsOm15c3FsJyA9PiAnYXJyYXknLAogICAgICAgICdteXNxbGk6bXlzcWxpJyA9PiAnYXJyYXknLAogICAgICAgICdvY2k4Om9jaTgnID0+ICdhcnJheScsCiAgICAgICAgJ29kYmM6YWNjZXNzJyA9PiAnYXJyYXknLAogICAgICAgICdvZGJjOmRiMicgPT4gJ2FycmF5JywKICAgICAgICAncGdzcWw6cGdzcWwnID0+ICdhcnJheScsCiAgICAgICAgJ3NxbGl0ZTpzcWxpdGUnID0+ICdhcnJheScsCiAgICAgICAgJ3N5YmFzZTpzeWJhc2UnID0+ICdhcnJheScsCiAgICApLAogICAgJ3ZpZXdzJyA9PiBhcnJheSgKICAgICAgICAnZGJhc2U6ZGJhc2UnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdmYnNxbDpmYnNxbCcgPT4gJ2FycmF5JywKICAgICAgICAnaWJhc2U6aWJhc2UnID0+ICdhcnJheScsCiAgICAgICAgJ2liYXNlOmZpcmViaXJkJyA9PiAnYXJyYXknLAogICAgICAgICdpZng6aWZ4JyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXNxbDptc3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXNzcWw6bXNzcWwnID0+ICdhcnJheScsCiAgICAgICAgJ215c3FsOm15c3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXlzcWxpOm15c3FsaScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ29jaTg6b2NpOCcgPT4gJ2FycmF5JywKICAgICAgICAnb2RiYzphY2Nlc3MnID0+ICdhcnJheScsCiAgICAgICAgJ29kYmM6ZGIyJyA9PiAnYXJyYXknLAogICAgICAgICdwZ3NxbDpwZ3NxbCcgPT4gJ2FycmF5JywKICAgICAgICAnc3FsaXRlOnNxbGl0ZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ3N5YmFzZTpzeWJhc2UnID0+ICdhcnJheScsCiAgICApLAogICAgJ3VzZXJzJyA9PiBhcnJheSgKICAgICAgICAnZGJhc2U6ZGJhc2UnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdmYnNxbDpmYnNxbCcgPT4gJ2FycmF5JywKICAgICAgICAnaWJhc2U6aWJhc2UnID0+ICdhcnJheScsCiAgICAgICAgJ2liYXNlOmZpcmViaXJkJyA9PiAnYXJyYXknLAogICAgICAgICdpZng6aWZ4JyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXNxbDptc3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXNzcWw6bXNzcWwnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdteXNxbDpteXNxbCcgPT4gREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTiwKICAgICAgICAnbXlzcWxpOm15c3FsaScgPT4gREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTiwKICAgICAgICAnb2NpODpvY2k4JyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnb2RiYzphY2Nlc3MnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdvZGJjOmRiMicgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ3Bnc3FsOnBnc3FsJyA9PiAnYXJyYXknLAogICAgICAgICdzcWxpdGU6c3FsaXRlJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnc3liYXNlOnN5YmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICApLAogICAgJ2RhdGFiYXNlcycgPT4gYXJyYXkoCiAgICAgICAgJ2RiYXNlOmRiYXNlJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnZmJzcWw6ZmJzcWwnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdpYmFzZTppYmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2liYXNlOmZpcmViaXJkJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnaWZ4OmlmeCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ21zcWw6bXNxbCcgPT4gJ2FycmF5JywKICAgICAgICAnbXNzcWw6bXNzcWwnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdteXNxbDpteXNxbCcgPT4gJ2FycmF5JywKICAgICAgICAnbXlzcWxpOm15c3FsaScgPT4gJ2FycmF5JywKICAgICAgICAnb2NpODpvY2k4JyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnb2RiYzphY2Nlc3MnID0+ICdhcnJheScsCiAgICAgICAgJ29kYmM6ZGIyJyA9PiAnYXJyYXknLAogICAgICAgICdwZ3NxbDpwZ3NxbCcgPT4gJ2FycmF5JywKICAgICAgICAnc3FsaXRlOnNxbGl0ZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ3N5YmFzZTpzeWJhc2UnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgKSwKICAgICdmdW5jdGlvbnMnID0+IGFycmF5KAogICAgICAgICdkYmFzZTpkYmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2Zic3FsOmZic3FsJyA9PiAnYXJyYXknLAogICAgICAgICdpYmFzZTppYmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2liYXNlOmZpcmViaXJkJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnaWZ4OmlmeCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ21zcWw6bXNxbCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ21zc3FsOm1zc3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXlzcWw6bXlzcWwnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdteXNxbGk6bXlzcWxpJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnb2NpODpvY2k4JyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnb2RiYzphY2Nlc3MnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdvZGJjOmRiMicgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ3Bnc3FsOnBnc3FsJyA9PiAnYXJyYXknLAogICAgICAgICdzcWxpdGU6c3FsaXRlJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnc3liYXNlOnN5YmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICApLAogICAgJ3Byb2NlZHVyZXMnID0+IGFycmF5KAogICAgICAgICdkYmFzZTpkYmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2Zic3FsOmZic3FsJyA9PiAnYXJyYXknLAogICAgICAgICdpYmFzZTppYmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2liYXNlOmZpcmViaXJkJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnaWZ4OmlmeCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ21zcWw6bXNxbCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ21zc3FsOm1zc3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXlzcWw6bXlzcWwnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdteXNxbGk6bXlzcWxpJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnb2NpODpvY2k4JyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnb2RiYzphY2Nlc3MnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdvZGJjOmRiMicgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ3Bnc3FsOnBnc3FsJyA9PiAnYXJyYXknLAogICAgICAgICdzcWxpdGU6c3FsaXRlJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnc3liYXNlOnN5YmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICApLAogICAgJ3NjaGVtYS50YWJsZXMnID0+IGFycmF5KAogICAgICAgICdkYmFzZTpkYmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2Zic3FsOmZic3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnaWJhc2U6aWJhc2UnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdpYmFzZTpmaXJlYmlyZCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2lmeDppZngnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdtc3FsOm1zcWwnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdtc3NxbDptc3NxbCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ215c3FsOm15c3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXlzcWxpOm15c3FsaScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ29jaTg6b2NpOCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ29kYmM6YWNjZXNzJyA9PiAnYXJyYXknLAogICAgICAgICdvZGJjOmRiMicgPT4gJ2FycmF5JywKICAgICAgICAncGdzcWw6cGdzcWwnID0+ICdhcnJheScsCiAgICAgICAgJ3NxbGl0ZTpzcWxpdGUnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdzeWJhc2U6c3liYXNlJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICksCiAgICAnc2NoZW1hLnZpZXdzJyA9PiBhcnJheSgKICAgICAgICAnZGJhc2U6ZGJhc2UnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdmYnNxbDpmYnNxbCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2liYXNlOmliYXNlJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnaWJhc2U6ZmlyZWJpcmQnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdpZng6aWZ4JyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXNxbDptc3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXNzcWw6bXNzcWwnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdteXNxbDpteXNxbCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ215c3FsaTpteXNxbGknID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdvY2k4Om9jaTgnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdvZGJjOmFjY2VzcycgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ29kYmM6ZGIyJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAncGdzcWw6cGdzcWwnID0+ICdhcnJheScsCiAgICAgICAgJ3NxbGl0ZTpzcWxpdGUnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdzeWJhc2U6c3liYXNlJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICksCiAgICAnc3lub255bXMnID0+IGFycmF5KAogICAgICAgICdkYmFzZTpkYmFzZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2Zic3FsOmZic3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnaWJhc2U6aWJhc2UnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdpYmFzZTpmaXJlYmlyZCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ2lmeDppZngnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdtc3FsOm1zcWwnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdtc3NxbDptc3NxbCcgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ215c3FsOm15c3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnbXlzcWxpOm15c3FsaScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ29jaTg6b2NpOCcgPT4gJ2FycmF5JywKICAgICAgICAnb2RiYzphY2Nlc3MnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgICAgICdvZGJjOmRiMicgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ3Bnc3FsOnBnc3FsJyA9PiBEQl9FUlJPUl9VTlNVUFBPUlRFRCwKICAgICAgICAnc3FsaXRlOnNxbGl0ZScgPT4gREJfRVJST1JfVU5TVVBQT1JURUQsCiAgICAgICAgJ3N5YmFzZTpzeWJhc2UnID0+IERCX0VSUk9SX1VOU1VQUE9SVEVELAogICAgKSwKKTsKCi8qKgogKiBEZXRlcm1pbmUgaWYgdGhlIG91dHB1dCBmcm9tIHRoZSBkcml2ZXIgbWF0Y2hlcyB3aGF0IHdlIGV4cGVjdAogKgogKiBJZiB0aGluZ3MgYXJlIGFzIHdlIGV4cGVjdCwgbm90aGluZyBpcyBwcmludGVkIG91dC4KICoKICogSWYgdGhpbmdzIGdvIHdyb25nLCBwcmludCAiVU5FWFBFQ1RFRCBPVVRDT01FIiBhbmQgZGlzcGxheQogKiB3aGF0IGhhcHBlbmVkLgogKgogKiBAcGFyYW0gbWl4ZWQgICRyZXN1bHQgICAgdGhlIHJlc3VsdCBmcm9tIGdldExpc3RPZgogKiBAcGFyYW0gbWl4ZWQgICRleHBlY3RlZCAgdGhlIGV4cGVjdGVkIHJlc3VsdAogKiBAcGFyYW0gc3RyaW5nICRuYW1lICAgICAgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgdGVzdAogKgogKiBAcmV0dXJuIHZvaWQKICovCmZ1bmN0aW9uIGNoZWNrX291dHB1dCgkcmVzdWx0LCAkZXhwZWN0ZWQsICRuYW1lKSB7CiAgICBpZiAoaXNfb2JqZWN0KCRyZXN1bHQpKSB7CiAgICAgICAgaWYgKCRyZXN1bHQtPmdldENvZGUoKSAhPT0gJGV4cGVjdGVkKSB7CiAgICAgICAgICAgIGVjaG8gIlVORVhQRUNURUQgT1VUQ09NRSBGT1IgJG5hbWUuLi5cbiI7CiAgICAgICAgICAgIGVjaG8gJHJlc3VsdC0+Z2V0RGVidWdJbmZvKCkgLiAiXG4iOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgJHR5cGUgPSBnZXR0eXBlKCRyZXN1bHQpOwogICAgICAgIGlmICgkdHlwZSAhPSAkZXhwZWN0ZWQpIHsKICAgICAgICAgICAgaWYgKCRleHBlY3RlZCA9PT0gREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTgogICAgICAgICAgICAgICAgJiYgJHR5cGUgPT0gJ2FycmF5JykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy8gVGhpcyB1c2VyIGhhcyBhY2Nlc3MgdG8gdGhlIG15c3FsIHRhYmxlLgogICAgICAgICAgICAgICAgLy8gTm90IGEgcHJvYmxlbQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgZWNobyAiVU5FWFBFQ1RFRCBPVVRDT01FIEZPUiAkbmFtZS4uLlxuIjsKICAgICAgICAgICAgICAgIGVjaG8gIiAgRXhwZWN0ZWQ6ICRleHBlY3RlZFxuIjsKICAgICAgICAgICAgICAgIGVjaG8gJyAgUmVzdWx0OiAnOwogICAgICAgICAgICAgICAgcHJpbnRfcigkcmVzdWx0KTsKICAgICAgICAgICAgICAgIGVjaG8gIlxuIjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKCiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwpmb3JlYWNoICgkdGVzdHMgYXMgJHRlc3QgPT4gJGRibXMpIHsKICAgIGNoZWNrX291dHB1dCgkZGJoLT5nZXRMaXN0T2YoJHRlc3QpLAogICAgICAgICAgICAgICAgICRkYm1zWyRkYmgtPnBocHR5cGUgLiAnOicgLiAkZGJoLT5kYnN5bnRheF0sCiAgICAgICAgICAgICAgICAgJHRlc3QpOwp9CgoKZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdCcpOwoKPz4KLS1FWFBFQ1QtLQo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/20locale.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpsb2NhbGUKLS1JTkktLQplcnJvcl9yZXBvcnRpbmcgPSAyMDQ3Ci0tU0tJUElGLS0KPD9waHBpCmNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsgcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOwppZiAoIWZ1bmN0aW9uX2V4aXN0cygnc2V0bG9jYWxlJykpIHsKICAgIGRpZSgnc2tpcCBzZXRsb2NhbGUgaXMgbm90IGRlZmluZWQnKTsKfQppZiAoIU9TX1VOSVgpIHsKICAgIGRpZSgnc2tpcCBub3Qgb24gYSBVTklYLWxpa2UgcGxhdGZvcm0nKTsKfQo/PgotLUZJTEUtLQo8P3BocApyZXF1aXJlX29uY2UgJy4vbWt0YWJsZS5pbmMnOwoKaWYgKCRkYmgtPnBocHR5cGUgPT0gJ29kYmMnKSB7CiAgICBpZiAoJGRiaC0+ZGJzeW50YXggPT0gJ29kYmMnKSB7CiAgICAgICAgJHR5cGUgPSAkZGJoLT5waHB0eXBlOwogICAgfSBlbHNlIHsKICAgICAgICAkdHlwZSA9ICRkYmgtPmRic3ludGF4OwogICAgfQp9IGVsc2UgewogICAgJHR5cGUgPSAkZGJoLT5waHB0eXBlOwp9Cgpzd2l0Y2ggKCR0eXBlKSB7CiAgICBjYXNlICdhY2Nlc3MnOgogICAgICAgICRkZWNpbWFsID0gJ1NJTkdMRSc7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdkYjInOgogICAgY2FzZSAnaWJhc2UnOgogICAgICAgICRkZWNpbWFsID0gJ0RFQ0lNQUwoMywxKSc7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdpZngnOgogICAgICAgIC8vIGRvaW5nIHRoaXMgZm9yIGlmeCB0byBrZWVwIGNlcnRhaW4gdmVyc2lvbnMgaGFwcHkKICAgICAgICAkZGVjaW1hbCA9ICdERUNJTUFMKDMsMSknOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnbXNxbCc6CiAgICAgICAgJGRlY2ltYWwgPSAnUkVBTCc7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdmYnNxbCc6CiAgICBjYXNlICdvY2k4JzoKICAgICAgICAkZGVjaW1hbCA9ICdERUNJTUFMKDMsMSknOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICAkZGVjaW1hbCA9ICdERUNJTUFMKDMsMSknOwp9CgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKZHJvcF90YWJsZSgkZGJoLCAnbG9jYWxldGVzdCcpOwoKJHJlcyA9ICRkYmgtPnF1ZXJ5KCJDUkVBVEUgVEFCTEUgbG9jYWxldGVzdCAoYSAkZGVjaW1hbCkiKTsKaWYgKERCOjppc0Vycm9yKCRyZXMpKSB7CiAgICBlY2hvICdVbmFibGUgdG8gY3JlYXRlIHRhYmxlOiAnLiRyZXMtPmdldE1lc3NhZ2UoKS4iXG4iOwp9CgpzZXRsb2NhbGUoTENfTlVNRVJJQywgJ2RlX0RFJyk7CgokcmVzID0gJGRiaC0+cXVlcnkoJ0lOU0VSVCBJTlRPIGxvY2FsZXRlc3QgKGEpIFZBTFVFUyAoPyknLCBhcnJheSg0Mi4yKSk7CmlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgZWNobyAnRXJyb3IgaW5zZXJ0aW5nIHJlY29yZDogJy4kcmVzLT5nZXRNZXNzYWdlKCkuIlxuIjsKICAgIHZhcl9kdW1wKCRyZXMpOwp9CgpzZXRsb2NhbGUoTENfTlVNRVJJQywgJ2VuX0FVJyk7CgokcmVzID0gJGRiaC0+cXVlcnkoJ0lOU0VSVCBJTlRPIGxvY2FsZXRlc3QgKGEpIFZBTFVFUyAoPyknLCBhcnJheSg0Mi4yKSk7CmlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgZWNobyAnRXJyb3IgaW5zZXJ0aW5nIHJlY29yZDogJy4kcmVzLT5nZXRNZXNzYWdlKCkuIlxuIjsKICAgIHZhcl9kdW1wKCRyZXMpOwp9CgokcmVzID0gJGRiaC0+cXVlcnkoJ1NFTEVDVCAqIEZST00gbG9jYWxldGVzdCcpOwppZiAoREI6OmlzRXJyb3IoJHJlcykpIHsKICAgIGVjaG8gJ0Vycm9yIHJldHJpZXZpbmcgY291bnQ6ICcuJHJlcy0+Z2V0TWVzc2FnZSgpLiJcbiI7CiAgICB2YXJfZHVtcCgkcmVzKTsKfSBlbHNlIHsKICAgIGVjaG8gJ0dvdCAnLiRyZXMtPm51bVJvd3MoKS4iIHJlY29yZHMuXG4iOwp9Cgpkcm9wX3RhYmxlKCRkYmgsICdsb2NhbGV0ZXN0Jyk7Cgo/PgotLUVYUEVDVC0tCkdvdCAyIHJlY29yZHMuCg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/21freeResult.phpt</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LS1URVNULS0KREJfZHJpdmVyOjpmcmVlUmVzdWx0Ci0tSU5JLS0KZXJyb3JfcmVwb3J0aW5nID0gMjA0NwotLVNLSVBJRi0tCjw/cGhwCmNoZGlyKGRpcm5hbWUoX19GSUxFX18pKTsgcmVxdWlyZV9vbmNlICcuL3NraXBpZi5pbmMnOwppZiAoJGRiaC0+cGhwdHlwZSA9PSAnbXlzcWxpJykgZGllICgnc2tpcCBteXNxbGkgcmV0dXJucyByZXN1bHQgb2JqZWN0cyByYXRoZXIgdGhhbiByZXNvdXJjZXMnKTsKPz4KLS1GSUxFLS0KPD9waHAKcmVxdWlyZV9vbmNlICcuL21rdGFibGUuaW5jJzsKCiRyZXMgPSAkZGJoLT5xdWVyeSgnU0VMRUNUICogRlJPTSBwaHB0ZXN0Jyk7CgppZiAoREI6OmlzRXJyb3IoJHJlcykpIHsKICAgIGVjaG8gIlJlc3VsdCBpcyBhIERCX0Vycm9yLlxuIjsKfQoKaWYgKGlzX3Jlc291cmNlKCRyZXMtPnJlc3VsdCkpIHsKICAgIGVjaG8gIlJlc3VsdCBpbmNsdWRlcyByZXNvdXJjZS5cbiI7Cn0gZWxzZSB7CiAgICBlY2hvICJSZXN1bHQgZG9lcyBub3QgaW5jbHVkZSBhIHJlc291cmNlIVxuIjsKICAgIHByaW50X3IoJHJlcy0+cmVzdWx0KTsKfQoKaWYgKCRkYmgtPmZyZWVSZXN1bHQoJHJlcy0+cmVzdWx0KSkgewogICAgZWNobyAiUmVzb3VyY2Ugd2FzIGZyZWVkIHN1Y2Nlc3NmdWxseS5cbiI7Cn0gZWxzZSB7CiAgICBlY2hvICJFcnJvciBmcmVlaW5nIHJlc3VsdC5cbiI7Cn0KCmRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsKPz4KLS1FWFBFQ1QtLQpSZXN1bHQgaW5jbHVkZXMgcmVzb3VyY2UuClJlc291cmNlIHdhcyBmcmVlZCBzdWNjZXNzZnVsbHkuCg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/connect.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBDb25uZWN0cyB0byB0aGUgZGF0YWJhc2UKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgICRJZDogY29ubmVjdC5pbmMsdiAxLjEyIDIwMDUvMDIvMDIgMDA6NDA6MjMgZGFuaWVsYyBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgplcnJvcl9yZXBvcnRpbmcoRV9BTEwpOwoKLy8gU2V0dGluZyBvZiAkb3B0aW9ucyBhbmQgcmVxdWlyaW5nIERCIGFyZSBkb25lIGluIHNldHVwLmluYwoKLyoqCiAqIEVzdGFibGlzaCB0aGUgaW5jbHVkZV9wYXRoLCBEU04ncyBhbmQgY29ubmVjdGlvbiAkb3B0aW9ucwogKi8KcmVxdWlyZV9vbmNlICcuL3NldHVwLmluYyc7CgppZiAoZW1wdHkoJGRzbnMpKSB7CiAgICBkaWUoJ0F0IGxlYXN0IG9uZSBlbGVtZW50IG9mICRkc25zIG11c3QgYmUgZGVmaW5lZCBpbiBzZXR1cC5pbmMnKTsKfQoKbGlzdCgkZGJtcywgJGRzbikgPSBlYWNoKCRkc25zKTsKCmlmICgkZGJtcyA9PSAnbXNzcWwnKSB7CiAgICBpbmlfc2V0KCdtc3NxbC50ZXh0bGltaXQnLCA0MDk2KTsKICAgIGluaV9zZXQoJ21zc3FsLnRleHRzaXplJywgNDA5Nik7Cn0KCiRkYmggPSYgREI6OmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMpOwppZiAoREI6OmlzRXJyb3IoJGRiaCkpIHsKICAgIGRpZSgnY29ubmVjdC5pbmM6ICcgLiAkZGJoLT50b1N0cmluZygpKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/droptable.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBDb250YWlucyB0aGUgZnVuY3Rpb24gZm9yIGRyb3BwaW5nIHRhYmxlcwogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgJElkOiBkcm9wdGFibGUuaW5jLHYgMS4yIDIwMDUvMDIvMDIgMDA6NDA6MjMgZGFuaWVsYyBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogRHJvcHMgdGhlIHJlcXVlc3RlZCB0YWJsZQogKgogKiBAcGFyYW0gb2JqZWN0ICRkYmggICAgdGhlIFBFQVIgREIgb2JqZWN0IGN1cnJlbnRseSBpbiB1c2UKICogQHBhcmFtIHN0cmluZyAkdGFibGUgIHRoZSBuYW1lIG9mIHRoZSB0YWJsZSB0byBiZSBkcm9wcGVkCiAqCiAqIEByZXR1cm4gaW50ICBEQl9PSyBvbiBzdWNjZXNzLiAgREJfRXJyb3Igb2JqZWN0IG9uIGZhaWx1cmUuCiAqLwpmdW5jdGlvbiBkcm9wX3RhYmxlKCRkYmgsICR0YWJsZSkgewogICAgc3dpdGNoICgkZGJoLT5waHB0eXBlKSB7CiAgICAgICAgY2FzZSAnZmJzcWwnOgogICAgICAgICAgICAkcmVzID0gJGRiaC0+cXVlcnkoIkRST1AgVEFCTEUgJHRhYmxlIENBU0NBREUiKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCJEUk9QIFRBQkxFICR0YWJsZSIpOwogICAgfQogICAgcmV0dXJuICRyZXM7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/mktable.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBDcmVhdGVzIHRoZSA8a2JkPnBocHRlc3Q8L2tiZD4gdGFibGUKICoKICogVHJpZXMgdG8gZHJvcCB0aGUgdGFibGUgZmlyc3QsIGluIGNhc2UgaXQgYWxyZWFkeSBleGlzdHMuCiAqCiAqIDxwcmU+CiAqIENSRUFURSBUQUJMRSBwaHB0ZXN0ICgKICogICBhIElOVEVHRVIgTlVMTCwKICogICBiIENIQVIoNDApIERFRkFVTFQgJ2RlZicgTk9UIE5VTEwsCiAqICAgY2MgVkFSQ0hBUigyNTUpIE5VTEwsCiAqICAgZCBWQVJDSEFSKDIwKSBOVUxMKQogKiA8L3ByZT4KICoKICogTmVlZCA8a2JkPk5PVCBOVUxMPC9rYmQ+IG9uIDxrYmQ+Yjwva2JkPiB0byB0ZXN0CiAqIDxrYmQ+REJfUE9SVEFCSUxJVFlfUlRSSU08L2tiZD4uICBNUyBTUUwgYW5kIFN5YmFzZSB0cmltIG91dHB1dCBmcm9tCiAqIDxrYmQ+VkFSQ0hBUjwva2JkPiwgYnV0IG5vdCBvbiA8a2JkPkNIQVI8L2tiZD4uCiAqCiAqIE5lZWQgPGtiZD5ERUZBVUxUPC9rYmQ+IHZhbHVlIG9uIDxrYmQ+Yjwva2JkPiBiZWNhdXNlIE9yYWNsZSBjb25zaWRlcnMKICogYW4gZW1wdHkgc3RyaW5nIHRvIGJlIDxrYmQ+TlVMTDwva2JkPi4KICoKICogSW4gT3JhY2xlLCB3aGVuIHVzaW5nIHBsYWNlaG9sZGVycyBpbiA8a2JkPldIRVJFPC9rYmQ+IGNsYXVzZXMgb24gCiAqIDxrYmQ+Q0hBUjwva2JkPiBjb2x1bW5zLCB0aGUgY29sdW1uIG11c3QgaGF2ZSA8a2JkPlJUUklNKCk8L2tiZD4gcnVuIG9uCiAqIHRoZSBjb2x1bW46CiAqIDxzYW1wPgogKiAgICBTRUxFQ1QgKiBGUk9NIHBocHRlc3QgV0hFUkUgUlRSSU0oYikgPSA/CiAqIDwvc2FtcD4KICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgICRJZDogbWt0YWJsZS5pbmMsdiAxLjIwIDIwMDcvMDEvMDUgMTU6MTI6NTYgZGFuaWVsYyBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogRXN0YWJsaXNoZXMgdGhlIERCIG9iamVjdCBhbmQgY29ubmVjdHMgdG8gdGhlIGRhdGFiYXNlCiAqLwpyZXF1aXJlX29uY2UgJy4vY29ubmVjdC5pbmMnOwoKLyoqCiAqIEdldCB0aGUgZHJvcF90YWJsZSgpIGZ1bmN0aW9uCiAqLwpyZXF1aXJlX29uY2UgJy4vZHJvcHRhYmxlLmluYyc7CgovKioKICogVGhlIGVycm9yIGhhbmRsZXIgZm9yIHRoZSBkcm9wIHRhYmxlIHByb2NlZHVyZQogKgogKiBQcmludHMgb3V0IGFuIGVycm9yIG1lc3NhZ2UgYW5kIGRpZXMuCiAqLwpmdW5jdGlvbiBkZWJ1Z19kaWUoJG8pewogICAgZGllKCRvLT50b1N0cmluZygpKTsKfQoKCiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwpkcm9wX3RhYmxlKCRkYmgsICdwaHB0ZXN0Jyk7CgovLyRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9UUklHR0VSKTsKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAnZGVidWdfZGllJyk7CgppZiAoJGRiaC0+cGhwdHlwZSA9PSAnb2RiYycpIHsKICAgIGlmICgkZGJoLT5kYnN5bnRheCA9PSAnb2RiYycpIHsKICAgICAgICAkdHlwZSA9ICRkYmgtPnBocHR5cGU7CiAgICB9IGVsc2UgewogICAgICAgICR0eXBlID0gJGRiaC0+ZGJzeW50YXg7CiAgICB9Cn0gZWxzZSB7CiAgICAkdHlwZSA9ICRkYmgtPnBocHR5cGU7Cn0KCgpzd2l0Y2ggKCR0eXBlKSB7CiAgICBjYXNlICdhY2Nlc3MnOgogICAgICAgICRudWxsID0gJ05VTEwnOwogICAgICAgICRjaHJjID0gJ1ZBUkNIQVIoMjU1KSc7CiAgICAgICAgJGNocmQgPSAnVkFSQ0hBUigyMCknOwogICAgICAgICRkZWZhdWx0ID0gJyc7CiAgICAgICAgJHRhYmxldHlwZSA9ICcnOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnZGIyJzoKICAgIGNhc2UgJ2liYXNlJzoKICAgICAgICAkbnVsbCA9ICcnOwogICAgICAgICRjaHJjID0gJ1ZBUkNIQVIoMjU1KSc7CiAgICAgICAgJGNocmQgPSAnVkFSQ0hBUigyMCknOwogICAgICAgICRkZWZhdWx0ID0gIkRFRkFVTFQgJ2RlZicgTk9UIE5VTEwiOwogICAgICAgICR0YWJsZXR5cGUgPSAnJzsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ2Zic3FsJzoKICAgICAgICAkbnVsbCA9ICcnOwogICAgICAgICRjaHJjID0gJ0NIQVIoMjU1KSc7CiAgICAgICAgJGNocmQgPSAnQ0hBUigyMCknOwogICAgICAgICRkZWZhdWx0ID0gIkRFRkFVTFQgJ2RlZicgTk9UIE5VTEwiOwogICAgICAgICRkYXRlX2xpdGVyYWwgPSAnIERBVEUgJzsKICAgICAgICAkdGFibGV0eXBlID0gJyc7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdpZngnOgogICAgICAgIC8vIGRvaW5nIHRoaXMgZm9yIGlmeCB0byBrZWVwIGNlcnRhaW4gdmVyc2lvbnMgaGFwcHkKICAgICAgICAkbnVsbCA9ICcnOwogICAgICAgICRjaHJjID0gJ0NIQVIoMjU1KSc7CiAgICAgICAgJGNocmQgPSAnQ0hBUigyMCknOwogICAgICAgICRkZWZhdWx0ID0gIkRFRkFVTFQgJ2RlZicgTk9UIE5VTEwiOwogICAgICAgICR0YWJsZXR5cGUgPSAnJzsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ21zcWwnOgogICAgICAgICRudWxsID0gJyc7CiAgICAgICAgJGNocmMgPSAnQ0hBUigyNTUpJzsKICAgICAgICAkY2hyZCA9ICdDSEFSKDIwKSc7CiAgICAgICAgJGRlZmF1bHQgPSAnJzsKICAgICAgICAkdGFibGV0eXBlID0gJyc7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdteXNxbCc6CiAgICBjYXNlICdteXNxbGknOgogICAgICAgICRudWxsID0gJ05VTEwnOwogICAgICAgICRjaHJjID0gJ1ZBUkNIQVIoMjU1KSc7CiAgICAgICAgJGNocmQgPSAnVkFSQ0hBUigyMCknOwogICAgICAgICRkZWZhdWx0ID0gIkRFRkFVTFQgJ2RlZicgTk9UIE5VTEwiOwogICAgICAgIGlmICghZW1wdHkoJG5lZWRpbm5vZGIpKSB7CiAgICAgICAgICAgICR0YWJsZXR5cGUgPSAnVFlQRT1JTk5PREInOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0YWJsZXR5cGUgPSAnJzsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgICRudWxsID0gJ05VTEwnOwogICAgICAgICRjaHJjID0gJ1ZBUkNIQVIoMjU1KSc7CiAgICAgICAgJGNocmQgPSAnVkFSQ0hBUigyMCknOwogICAgICAgICRkZWZhdWx0ID0gIkRFRkFVTFQgJ2RlZicgTk9UIE5VTEwiOwogICAgICAgICR0YWJsZXR5cGUgPSAnJzsKfQoKc3dpdGNoICgkZGJoLT5waHB0eXBlKSB7CiAgICBjYXNlICdkYmFzZSc6CiAgICAgICAgLy8gZmlsZSBleGlzdHMgb3Igd2FzIGNyZWF0ZWQgaW4gREJfZGJhc2U6OmNvbm5lY3QoKQogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICAkdGVzdF9ta3RhYmxlX3F1ZXJ5ID0gIgogICAgICAgICAgICBDUkVBVEUgVEFCTEUgcGhwdGVzdCAoCiAgICAgICAgICAgICAgYSBJTlRFR0VSICRudWxsLAogICAgICAgICAgICAgIGIgQ0hBUig0MCkgJGRlZmF1bHQsCiAgICAgICAgICAgICAgY2MgJGNocmMgJG51bGwsCiAgICAgICAgICAgICAgZCAkY2hyZCAkbnVsbCkgJHRhYmxldHlwZQogICAgICAgICI7Cn0KCgokZGJoLT5xdWVyeSgkdGVzdF9ta3RhYmxlX3F1ZXJ5KTsKJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBocHRlc3QgVkFMVUVTKDQyLCAnYmluZycsICdUaGlzIGlzIGEgdGVzdCcsICcxOTk5LTExLTIxJykiKTsKCiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/multiconnect.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgdmFyaW91cyB3YXlzIERCJ3MgY29ubmVjdCgpIGZ1bmN0aW9uIG9wZXJhdGVzCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICAkSWQ6IG11bHRpY29ubmVjdC5waHAsdiAxLjIgMjAwNS8wMi8wMyAwNTo0OTo0NSBkYW5pZWxjIEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKiBAc2luY2UgICAgICBGaWxlIGF2YWlsYWJsZSBzaW5jZSBSZWxlYXNlIDEuNy4wCiAqLwoKLyoqCiAqIEVzdGFibGlzaCB0aGUgaW5jbHVkZV9wYXRoLCBEU04ncyBhbmQgY29ubmVjdGlvbiAkb3B0aW9ucwogKi8KcmVxdWlyZV9vbmNlICcuL3NldHVwLmluYyc7Cgpmb3JlYWNoICgkZHNucyBhcyAkZGJtcyA9PiAkZHNuKSB7CiAgICBlY2hvICI9PT09PT09PSAkZGJtcyA9PT09PT09PVxuIjsKICAgICRvcHRpb25zWydwZXJzaXN0ZW50J10gPSBmYWxzZTsKICAgICRkYmggPSYgREI6OmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMpOwogICAgaWYgKERCOjppc0Vycm9yKCRkYmgpKSB7CiAgICAgICAgZWNobyAnUFJPQkxFTTogJyAuICRkYmgtPmdldFVzZXJJbmZvKCkgLiAiXG4iOwogICAgICAgIGNvbnRpbnVlOwogICAgfQoKICAgIGlmICgkZGJoLT5wcm92aWRlcygnbmV3X2xpbmsnKQogICAgICAgICYmIHZlcnNpb25fY29tcGFyZShwaHB2ZXJzaW9uKCksICRkYmgtPnByb3ZpZGVzKCduZXdfbGluaycpLCAnPj0nKSkKICAgIHsKICAgICAgICAkcHJvYnMgPSBmYWxzZTsKICAgICAgICAkZHNuID0gREI6OnBhcnNlRFNOKCRkc24pOwogICAgICAgICRkc25bJ25ld19saW5rJ10gPSB0cnVlOwogICAgICAgICRkYmggPSYgREI6OmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkZGJoKSkgewogICAgICAgICAgICBlY2hvICdORVcgTElOSyBQUk9CTEVNOiAnIC4gJGRiaC0+Z2V0VXNlckluZm8oKSAuICJcbiI7CiAgICAgICAgICAgICRwcm9icyA9IHRydWU7CiAgICAgICAgfQoKICAgICAgICBpZiAoJGRiaC0+cHJvdmlkZXMoJ3Bjb25uZWN0JykpIHsKICAgICAgICAgICAgJG9wdGlvbnNbJ3BlcnNpc3RlbnQnXSA9IHRydWU7CiAgICAgICAgICAgICRkYmgtPmRpc2Nvbm5lY3QoKTsKICAgICAgICAgICAgJGRiaCA9JiBEQjo6Y29ubmVjdCgkZHNuLCAkb3B0aW9ucyk7CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkZGJoKSkgewogICAgICAgICAgICAgICAgZWNobyAnUEVSU0lTVCBORVdDT04gUFJPQkxFTTogJyAuICRkYmgtPmdldFVzZXJJbmZvKCkgLiAiXG4iOwogICAgICAgICAgICAgICAgJHByb2JzID0gdHJ1ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgdW5zZXQoJGRzblsnbmV3X2xpbmsnXSk7CiAgICAgICAgICAgICRkYmgtPmRpc2Nvbm5lY3QoKTsKICAgICAgICAgICAgJGRiaCA9JiBEQjo6Y29ubmVjdCgkZHNuLCAkb3B0aW9ucyk7CiAgICAgICAgICAgIGlmIChEQjo6aXNFcnJvcigkZGJoKSkgewogICAgICAgICAgICAgICAgZWNobyAnUEVSU0lTVCBPTERDT04gUFJPQkxFTTogJyAuICRkYmgtPmdldFVzZXJJbmZvKCkgLiAiXG4iOwogICAgICAgICAgICAgICAgJHByb2JzID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoJHByb2JzKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAkZGJoLT5kaXNjb25uZWN0KCk7CgogICAgfSBlbHNlaWYgKCRkYmgtPnByb3ZpZGVzKCdwY29ubmVjdCcpKSB7CiAgICAgICAgJG9wdGlvbnNbJ3BlcnNpc3RlbnQnXSA9IHRydWU7CiAgICAgICAgJGRiaC0+ZGlzY29ubmVjdCgpOwogICAgICAgICRkYmggPSYgREI6OmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkZGJoKSkgewogICAgICAgICAgICBlY2hvICdQRVJTSVNUIFBST0JMRU06ICcgLiAkZGJoLT5nZXRVc2VySW5mbygpIC4gIlxuIjsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgICRkYmgtPmRpc2Nvbm5lY3QoKTsKICAgIH0KICAgIGVjaG8gIkdPT0RcbiI7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/run.cvs</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyEgL2Jpbi9zaAoKIyAkSWQ6IHJ1bi5jdnMsdiAxLjIgMjAwNC8wMi8yMCAxODo1Nzo1MiBkYW5pZWxjIEV4cCAkCgojIHZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2CiMgUEVBUiBEQiBURVNUIFNUQVJURVIKIwojICAgVG8gcnVuIGFsbCB0ZXN0czogIC4vcnVuCiMgICBUbyBydW4gb25lIHRlc3Q6ICAgLi9ydW4gPHRlc3QgZmlsZSBuYW1lPgojICAgRXhhbXBsZTogICAgICAgICAgIC4vcnVuIGRiX3BhcnNlZHNuLnBocHQKIwojIEJlZm9yZSBydW5uaW5nIHRoZSB0ZXN0cyB5b3UgbXVzdCBhZGp1c3QgdGhlCiMgZm9sbG93aW5nIHRocmVlIHZhcmlhYmxlczoKCiMgICBUaGUgZnVsbCBwYXRoIHRvIHlvdXIgUEhQIGRpcmVjdG9yeToKICAgIERCX1RFU1RfUEhQX1BBVEg9YzovcHJvZ3JhfjEvcGhwCgojICAgVGhlIG5hbWUgb2YgeW91ciBQSFAgQ0xJIGV4ZWN1dGFibGUKIyAgIChleGFtcGxlcyBwaHAuZXhlLCBwaHAtY2xpLmV4ZSwgY2xpL3BocC5leGUpOgogICAgREJfVEVTVF9QSFBfQ0xJPXBocC5leGUKCiMgICBUaGUgZnVsbCBwYXRoIHRvIHRoZSBwcmVzZW50IGRpcmVjdG9yeQojICAgKG5vdCB1c2luZyAkUFdEIGR1ZSB0byBDeWd3aW4pOgogICAgREJfVEVTVF9ESVI9ZDovcGVhcnRlc3QvcGVhci9EQi90ZXN0cy9kcml2ZXIKCiMgXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KCgoKVEVTVF9QSFBfRVhFQ1VUQUJMRT0kREJfVEVTVF9QSFBfUEFUSC8kREJfVEVTVF9QSFBfQ0xJCmV4cG9ydCBURVNUX1BIUF9FWEVDVVRBQkxFCgppZiBbICQjIC1ndCAwIF0KdGhlbgogICAgdGVzdD0kMQplbHNlCiAgICB0ZXN0PSoucGhwdApmaQoKJFRFU1RfUEhQX0VYRUNVVEFCTEUgJERCX1RFU1RfUEhQX1BBVEgvcnVuLXRlc3RzLnBocCAkREJfVEVTVF9ESVIvJHt0ZXN0fQo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/setup.inc.cvs</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBFc3RhYmxpc2hlcyB0aGUgaW5jbHVkZV9wYXRoLCBEU04ncyBhbmQgY29ubmVjdGlvbiAkb3B0aW9ucwogKgogKiBJZiB0aGlzIGZpbGUgaXMgbmFtZWQgInNldHVwLmluYy5jdnMsIiBpdCBpcyB0aGUgb3JpZ2luYWwgb25lIGZyb20gQ1ZTLgogKiBQbGVhc2UgZG8gdGhlIGZvbGxvd2luZzoKICogICAxKSBNYWtlIGEgY29weSBvZiB0aGlzIGZpbGUgbmFtZWQgInNldHVwLmluYyIuCiAqICAgMikgVGhlbiwgaW4gdGhlIGNvcHksIGVkaXQgdGhlICRkc25zIGFycmF5IGFzIGFwcHJvcHJpYXRlIGZvciB5b3VyCiAqICAgICAgZW52aXJvbm1lbnQuCiAqICAgMykgQXQgbGVhc3Qgb25lIGVsZW1lbnQgb2YgdGhlICRkc25zIGFycmF5IG5lZWRzIHRvIGJlIHVuY29tbWVudGVkLgogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgJElkOiBzZXR1cC5pbmMuY3ZzLHYgMS42IDIwMDUvMDIvMTQgMjM6MzM6MjAgZGFuaWVsYyBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgppZiAoIWRlZmluZWQoJ1BBVEhfU0VQQVJBVE9SJykpIHsKICAgIGlmIChzdHJpc3RyKFBIUF9PUywgJ1dJTicpKSB7CiAgICAgICAgLyoqCiAgICAgICAgICogVGhlIHN0cmluZyB1c2VkIHRvIGRlbGltaXQgZWxlbWVudHMgb2YgdGhlIHBhdGguCiAgICAgICAgICovCiAgICAgICAgZGVmaW5lKCdQQVRIX1NFUEFSQVRPUicsICc7Jyk7CiAgICB9IGVsc2UgewogICAgICAgIC8qKgogICAgICAgICAqIFRoZSBzdHJpbmcgdXNlZCB0byBkZWxpbWl0IGVsZW1lbnRzIG9mIHRoZSBwYXRoLgogICAgICAgICAqLwogICAgICAgIGRlZmluZSgnUEFUSF9TRVBBUkFUT1InLCAnOicpOwogICAgfQp9CgovKgogKiBJZiB0aGUgcGF0aCB0byB5b3VyIFBFQVIgaW5zdGFsbGF0aW9uIGlzIGZvdW5kIGluIHRoZSBsZWZ0IGhhbmQKICogcG9ydGlvbiBvZiB0aGUgaWYoKSBleHByZXNzaW9uIGJlbG93LCB0aGF0IG1lYW5zIHRoaXMgZmlsZSBoYXMKICogY29tZSBmcm9tIHRoZSBQRUFSIGluc3RhbGxlci4gIFRoZXJlZm9yZSwgbGV0J3MgdXNlIHRoZQogKiBpbnN0YWxsZWQgdmVyc2lvbiBvZiBEQiwgd2hpY2ggc2hvdWxkIGJlIGZvdW5kIHZpYSB0aGUKICogY29tcHV0ZXIncyBkZWZhdWx0IGluY2x1ZGVfcGF0aC4gIEFkZCAnLicgdG8gdGhlIGluY2x1ZGVfcGF0aAogKiB0byBlbnN1cmUgJy4nIGlzIGluIHRoZXJlLgogKiAKICogSWYgdGhlIHBhdGggaGFzIG5vdCBiZWVuIHN1YnN0aXR1dGVkIGluIHRoZSBpZigpIGV4cHJlc3Npb24sCiAqIHRoaXMgZmlsZSBoYXMgbGlrZWx5IGNvbWUgZnJvbSBhIENWUyBjaGVja291dCBvciBhIC50YXIgZmlsZS4KICogVGhlcmVmb3JlLCB3ZSdsbCBhc3N1bWUgdGhlIHRlc3RzIHNob3VsZCB1c2UgdGhlIHZlcnNpb24gb2YKICogREIgdGhhdCBoYXMgY29tZSBmcm9tIHRoZXJlIGFzIHdlbGwuCiAqLwppZiAoJ0BpbmNsdWRlX3BhdGhAJyAhPSAnQCcuJ2luY2x1ZGVfcGF0aCcuJ0AnKSB7CiAgICBpbmlfc2V0KCdpbmNsdWRlX3BhdGgnLCBpbmlfZ2V0KCdpbmNsdWRlX3BhdGgnKQogICAgICAgICAgICAuIFBBVEhfU0VQQVJBVE9SIC4gJy4nCiAgICApOwp9IGVsc2UgewogICAgaW5pX3NldCgnaW5jbHVkZV9wYXRoJywgcmVhbHBhdGgoZGlybmFtZShfX0ZJTEVfXykgLiAnLy4uLy4uJykKICAgICAgICAgICAgLiBQQVRIX1NFUEFSQVRPUiAuICcuJyAuIFBBVEhfU0VQQVJBVE9SCiAgICAgICAgICAgIC4gaW5pX2dldCgnaW5jbHVkZV9wYXRoJykKICAgICk7Cn0KCi8qKgogKiBHcmFiIHRoZSBQRUFSIERCIGNsYXNzZXMuCiAqLwpyZXF1aXJlX29uY2UgJ0RCLnBocCc7CgovLyBPcHRpb25zIHVzZWQgd2hlbiBjb25uZWN0aW5nCiRvcHRpb25zID0gYXJyYXkoCiAgICAvLydvcHRpbWl6ZScgPT4gJ3BvcnRhYmlsaXR5JywKICAgICdwb3J0YWJpbGl0eScgPT4gREJfUE9SVEFCSUxJVFlfQUxMLAogICAgJ2RlYnVnJyA9PiAyLAopOwoKJGRiYXNlZHNuID0gYXJyYXkoCiAgICAncGhwdHlwZScgID0+ICdkYmFzZScsCiAgICAnZGF0YWJhc2UnID0+ICcvcGF0aC9hbmQvbmFtZS9vZi9kYmFzZS9maWxlJywKICAgICdtb2RlJyAgICAgPT4gMiwKICAgICdmaWVsZHMnICAgPT4gYXJyYXkoCiAgICAgICAgYXJyYXkoJ2EnLCAnTicsIDUsIDApLAogICAgICAgIGFycmF5KCdiJywgJ0MnLCA0MCksCiAgICAgICAgYXJyYXkoJ2MnLCAnQycsIDI1NSksCiAgICAgICAgYXJyYXkoJ2QnLCAnQycsIDIwKSwKICAgICksCik7CgovKgogKiBVbmNvbW1lbnQgYXQgbGVhc3Qgb25lIG9mIHRoZSBmb2xsb3dpbmcgZWxlbWVudHMuCiAqIFdoZW4gcnVubmluZyB0aGUgLnBocHQgdGVzdHMsIHRoZSBmaXJzdCB1bmNvbW1lbnRlZCBlbGVtZW50IGlzIHVzZWQuCiAqIFdoZW4gcnVubmluZyB0aGUgbXVsdGljb25uZWN0LnBocCB0ZXN0LCBhbGwgdW5jb21tZW50ZWQgZWxlbWVudHMgYXJlIHVzZWQuCiAqLwokZHNucyA9IGFycmF5KAogICAgLy8gJ2RiYXNlJyAgICA9PiAkZGJhc2Vkc24sCiAgICAvLyAnZmJzcWwnICAgID0+ICdmYnNxbDovL19zeXN0ZW06QC9kYicsCiAgICAvLyAnZmlyZWJpcmQnID0+ICdpYmFzZShmaXJlYmlyZCk6Ly9TWVNEQkE6bWFzdGVya2V5QC8vb3B0L2ludGVyYmFzZS9leGFtcGxlcy9lbXBsb3llZS5nZGI/ZGlhbGVjdD0zJywKICAgIC8vICdpZngnICAgICAgPT4gJ2lmeDovL3VzZXI6cHdAbG9jYWxob3N0L2RiJywKICAgIC8vICdtc3FsJyAgICAgPT4gJ21zcWw6Ly8vZGInLAoKICAgIC8vIEl0J3MgYWR2aXNhYmxlIHRvIHVzZSBvbmx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIGF0IGEgdGltZToKICAgIC8vICdtc3NxbCcgICAgPT4gJ21zc3FsOi8vc2FAc29tZWhvc3QvcHVicycsCiAgICAvLyAnc3liYXNlJyAgID0+ICdzeWJhc2U6Ly9zYUBzb21laG9zdC9wdWJzJywKCiAgICAvLyAnbXlzcWwnICAgID0+ICdteXNxbDovL3Jvb3RAbG9jYWxob3N0L3Rlc3QnLAogICAgLy8gJ215c3FsaScgICA9PiAnbXlzcWxpOi8vcm9vdEBsb2NhbGhvc3QvdGVzdCcsCiAgICAvLyAnb2NpOCcgICAgID0+ICdvY2k4Oi8vc3lzdGVtOm1hbmFnZXJAJywKICAgIC8vICdhY2Nlc3MnICAgPT4gJ29kYmMoYWNjZXNzKTovL2FkbWluQC9TeXN0ZW1Ec25OYW1lJywKICAgIC8vICdkYjInICAgICAgPT4gJ29kYmMoZGIyKTovL2RiMmluc3QxOlhYWFhAL1NBTVBMRScsCiAgICAvLyAncGdzcWwnICAgID0+ICdwZ3NxbDovL3Bvc3RncmVzQGxvY2FsaG9zdC90ZXN0JywKICAgIC8vICdzcWxpdGUnICAgPT4gJ3NxbGl0ZTovL2R1bW15OkBsb2NhbGhvc3QvJyAuIGdldGN3ZCgpIC4gRElSRUNUT1JZX1NFUEFSQVRPUiAuICd0ZXN0LmRiP21vZGU9MDY0NCcsCik7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/driver/skipif.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBIHRlc3QgdG8gbWFrZSBzdXJlIHRoZSBkYXRhYmFzZSBjYW4gYmUgY29ubmVjdGVkIHRvCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNiBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICAkSWQ6IHNraXBpZi5pbmMsdiAxLjggMjAwNi8wOC8yMSAwMTozNzo1MCBkYW5pZWxjIEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBFc3RhYmxpc2ggdGhlIGluY2x1ZGVfcGF0aCwgRFNOJ3MgYW5kIGNvbm5lY3Rpb24gJG9wdGlvbnMKICovCnJlcXVpcmVfb25jZSAnLi9zZXR1cC5pbmMnOwoKaWYgKGVtcHR5KCRkc25zKSkgewogICAgZGllKCdza2lwIEF0IGxlYXN0IG9uZSBlbGVtZW50IG9mICRkc25zIG11c3QgYmUgZGVmaW5lZCBpbiBzZXR1cC5pbmMnKTsKfQoKbGlzdCgkZGJtcywgJGRzbikgPSBlYWNoKCRkc25zKTsKCiRkYmggPSYgREI6OmNvbm5lY3QoJGRzbiwgJG9wdGlvbnMpOwppZiAoREI6OmlzRXJyb3IoJGRiaCkpIHsKICAgIGRpZSgnc2tpcCAnIC4gJGRiaC0+Z2V0VXNlckluZm8oKSk7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/errors.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgZXJyb3IgbWFwcGluZwogKgogKiBFeGVjdXRlZCBieSBkcml2ZXIvMTBlcnJvcm1hcC5waHB0CiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICAkSWQ6IGVycm9ycy5pbmMsdiAxLjM5IDIwMDcvMDYvMjkgMTI6NTE6MzEgYWhhcnZleSBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogRGV0ZXJtaW5lIGlmIHRoZSBlcnJvciBmcm9tIHRoZSBkcml2ZXIgbWF0Y2hlcyB0aGUgZXJyb3Igd2UgZXhwZWN0CiAqCiAqIElmIHRoaW5ncyBhcmUgYXMgd2UgZXhwZWN0LCBwcmludCBvdXQgIm1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZSIKICoKICogSWYgdGhpbmdzIGdvIHdyb25nLCBwcmludCAiVU5FWFBFQ1RFRCBPVVRDT01FIiBhbmQgZGlzcGxheSB0aGUKICogZXJyb3IncyBpbmZvcm1hdGlvbi4KICoKICogQHBhcmFtIG9iamVjdCAgJGUgICAgICAgICAgICAgICAgIHRoZSBEQl9FcnJvciBvYmplY3QgZnJvbSB0aGUgcXVlcnkKICogQHBhcmFtIGludCAgICAgJGV4cGVjdGVkX2RiX2NvZGUgIHRoZSBEQl9FUlJPUiogY29uc3RhbnQgdG8gZXhwZWN0CiAqIEBwYXJhbSBib29sZWFuICRzaG91bGRfYmVfZXJyb3IgICBkb2VzIHRoZSBEQk1TIGNvbnNpZGVyIHRoaXMgYW4gZXJyb3I/CiAqCiAqIEByZXR1cm4gdm9pZAogKi8KZnVuY3Rpb24gY2hlY2tfZXJyb3IoJGUsICRleHBlY3RlZF9kYl9jb2RlLCAkc2hvdWxkX2JlX2Vycm9yID0gdHJ1ZSkgewogICAgaWYgKCRzaG91bGRfYmVfZXJyb3IpIHsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJGUpKSB7CiAgICAgICAgICAgIGlmICgkZS0+Z2V0Q29kZSgpID09ICRleHBlY3RlZF9kYl9jb2RlKSB7CiAgICAgICAgICAgICAgICBwcmludCAibWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lXG4iOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgcHJpbnQgIlVORVhQRUNURUQgT1VUQ09NRS4uLlxuIjsKICAgICAgICAgICAgICAgIHByaW50ICcgICAgUEVBUjo6REIgZXJyb3Jjb2RlOiAnIC4gJGUtPmdldENvZGUoKSAuICJcbiI7CiAgICAgICAgICAgICAgICBwcmludCAnICAgICcgLiAkZS0+Z2V0VXNlckluZm8oKSAuICJcbiI7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmludCAiXG4gICAgVU5FWFBFQ1RFRCBPVVRDT01FLi4uIGV4cGVjdGVkIGVycm9yIGJ1dCBpdCB3YXNuJ3RcbiI7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBpZiAoREI6OmlzRXJyb3IoJGUpKSB7CiAgICAgICAgICAgIHByaW50ICJVTkVYUEVDVEVEIE9VVENPTUUuLi4gZGlkbid0IGV4cGVjdCBlcnJvciBidXQgaXQgd2FzXG4iOwogICAgICAgICAgICBwcmludCAnICAgIFBFQVI6OkRCIGVycm9yY29kZTogJyAuICRlLT5nZXRDb2RlKCkgLiAiXG4iOwogICAgICAgICAgICBwcmludCAnICAgICcgLiAkZS0+Z2V0VXNlckluZm8oKSAuICJcbiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcHJpbnQgIm1hdGNoZXMgZXhwZWN0ZWQgb3V0Y29tZVxuIjsKICAgICAgICB9CiAgICB9Cn0KCi8qKgogKiBMb2NhbCBlcnJvciBjYWxsYmFjayBoYW5kbGVyCiAqIAogKiBAcGFyYW0gb2JqZWN0ICAkbyAgUEVBUiBlcnJvciBvYmplY3QgYXV0b21hdGljYWxseSBwYXNzZWQgdG8gdGhpcyBtZXRob2QKICogQHJldHVybiB2b2lkCiAqIEBzZWUgUEVBUjo6c2V0RXJyb3JIYW5kbGluZygpCiAqLwpmdW5jdGlvbiBwZSgkbykgewogICAgcHJpbnQgIlxuLS0tLS0tLS0tLS0tLS0tXG4iOwogICAgcHJpbnQgIkhhdmluZyBwcm9ibGVtcyBjcmVhdGluZyBhIHRhYmxlIGZvciB0ZXN0aW5nLi4uXG4iOwogICAgcHJpbnQgJG8tPmdldERlYnVnSW5mbygpIC4gIlxuIjsKICAgIHByaW50ICItLS0tLS0tLS0tLS0tLS1cbiI7Cn0KCgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKCgpwcmludCAnREJfRVJST1JfTk9TVUNIVEFCTEUgZm9yIHNlbGVjdDogICc7CiRyZXMgPSAkZGJoLT5xdWVyeSgnU0VMRUNUICogRlJPTSB0YWJsZVRoYXRzQm9ndXMnKTsKY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfTk9TVUNIVEFCTEUpOwoKcHJpbnQgJ0RCX0VSUk9SX05PU1VDSFRBQkxFIGZvciBkcm9wOiAgJzsKJHJlcyA9IGRyb3BfdGFibGUoJGRiaCwgJ3RhYmxlVGhhdHNCb2d1cycpOwpjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9OT1NVQ0hUQUJMRSk7CgpwcmludCAnREJfRVJST1JfTk9UX0ZPVU5EIGZvciBkcm9wIGluZGV4OiAgJzsKc3dpdGNoICgkZGJoLT5waHB0eXBlIC4gJzonIC4gJGRiaC0+ZGJzeW50YXgpIHsKICAgIGNhc2UgJ2Zic3FsOmZic3FsJzoKICAgIGNhc2UgJ2liYXNlOmZpcmViaXJkJzoKICAgIGNhc2UgJ2liYXNlOmliYXNlJzoKICAgIGNhc2UgJ2lmeDppZngnOgogICAgY2FzZSAnb2RiYzpkYjInOgogICAgY2FzZSAnb2NpODpvY2k4JzoKICAgIGNhc2UgJ3Bnc3FsOnBnc3FsJzoKICAgIGNhc2UgJ3NxbGl0ZTpzcWxpdGUnOgogICAgICAgICRyZXMgPSAkZGJoLT5xdWVyeSgnRFJPUCBJTkRFWCBmYWtlaW5kZXgnKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ21zc3FsOm1zc3FsJzoKICAgIGNhc2UgJ3N5YmFzZTpzeWJhc2UnOgogICAgICAgICRyZXMgPSAkZGJoLT5xdWVyeSgnRFJPUCBJTkRFWCBwaHB0ZXN0LmZha2VpbmRleCcpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnbXNxbDptc3FsJzoKICAgICAgICAkcmVzID0gJGRiaC0+cXVlcnkoJ0RST1AgSU5ERVggZmFrZWluZGV4IEZST00gcGhwdGVzdCcpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICAkcmVzID0gJGRiaC0+cXVlcnkoJ0RST1AgSU5ERVggZmFrZWluZGV4IE9OIHBocHRlc3QnKTsKfQpjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9OT1RfRk9VTkQpOwoKCnByaW50ICdEQl9FUlJPUl9BTFJFQURZX0VYSVNUUyBmb3IgY3JlYXRlIHRhYmxlOiAgJzsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCR0ZXN0X21rdGFibGVfcXVlcnkpOwpjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUyk7CgpwcmludCAnREJfRVJST1JfQUxSRUFEWV9FWElTVFMgZm9yIGNyZWF0ZSBpbmRleDogICc7CiRyZXMgPSBkcm9wX3RhYmxlKCRkYmgsICdhJyk7CiRkYmgtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICdwZScpOwokcmVzID0gJGRiaC0+cXVlcnkoJ0NSRUFURSBUQUJMRSBhIChhIElOVEVHRVIpJyk7CiRkYmgtPnBvcEVycm9ySGFuZGxpbmcoKTsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCdDUkVBVEUgSU5ERVggYWFfaWR4IE9OIGEgKGEpJyk7CiRyZXMgPSAkZGJoLT5xdWVyeSgnQ1JFQVRFIElOREVYIGFhX2lkeCBPTiBhIChhKScpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ2Zic3FsJzoKICAgICAgICAvLyBGcm9udEJhc2UgZG9lc24ndCBhc3NpZ24gYSBzcGVjaWZpYyBjb2RlIGZvciB0aGlzIHlldC4KICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUywgZmFsc2UpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9BTFJFQURZX0VYSVNUUyk7Cn0KJHJlcyA9IGRyb3BfdGFibGUoJGRiaCwgJ2EnKTsKCgpwcmludCAnREJfRVJST1JfQ09OU1RSQUlOVCBmb3IgcHJpbWFyeSBrZXkgaW5zZXJ0IGR1cGxpY2F0ZTogICc7CiRyZXMgPSBkcm9wX3RhYmxlKCRkYmgsICdhJyk7CiRkYmgtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICdwZScpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ21zcWwnOgogICAgICAgICRyZXMgPSAkZGJoLT5xdWVyeSgnQ1JFQVRFIFRBQkxFIGEgKGEgSU5URUdFUiBOT1QgTlVMTCknKTsKICAgICAgICAkcmVzID0gJGRiaC0+cXVlcnkoJ0NSRUFURSBVTklRVUUgSU5ERVggYXBrIE9OIGEgKGEpJyk7CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgICRyZXMgPSAkZGJoLT5xdWVyeSgnQ1JFQVRFIFRBQkxFIGEgKGEgSU5URUdFUiBOT1QgTlVMTCwgUFJJTUFSWSBLRVkgKGEpKScpOwp9CiRkYmgtPnBvcEVycm9ySGFuZGxpbmcoKTsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCdJTlNFUlQgSU5UTyBhIFZBTFVFUyAoMSknKTsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCdJTlNFUlQgSU5UTyBhIFZBTFVFUyAoMSknKTsKY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfQ09OU1RSQUlOVCk7CgoKcHJpbnQgJ0RCX0VSUk9SX0NPTlNUUkFJTlQgZm9yIHByaW1hcnkga2V5IHVwZGF0ZSBkdXBsaWNhdGU6ICAnOwokcmVzID0gJGRiaC0+cXVlcnkoJ0lOU0VSVCBJTlRPIGEgVkFMVUVTICgyKScpOwokcmVzID0gJGRiaC0+cXVlcnkoJ1VQREFURSBhIFNFVCBhPTEgV0hFUkUgYT0yJyk7CmNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0NPTlNUUkFJTlQpOwoKCnByaW50ICdEQl9FUlJPUl9DT05TVFJBSU5UIGZvciB1bmlxdWUga2V5IGluc2VydCBkdXBsaWNhdGU6ICAnOwokcmVzID0gZHJvcF90YWJsZSgkZGJoLCAnYScpOwokZGJoLT5wdXNoRXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAncGUnKTsKc3dpdGNoICgkZGJoLT5waHB0eXBlKSB7CiAgICBjYXNlICdtc3FsJzoKICAgICAgICAkcmVzID0gJGRiaC0+cXVlcnkoJ0NSRUFURSBUQUJMRSBhIChhIElOVEVHRVIgTk9UIE5VTEwpJyk7CiAgICAgICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCdDUkVBVEUgVU5JUVVFIElOREVYIGF1ayBPTiBhIChhKScpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICAkcmVzID0gJGRiaC0+cXVlcnkoJ0NSRUFURSBUQUJMRSBhIChhIElOVEVHRVIgTk9UIE5VTEwsIFVOSVFVRSAoYSkpJyk7Cn0KJGRiaC0+cG9wRXJyb3JIYW5kbGluZygpOwokcmVzID0gJGRiaC0+cXVlcnkoJ0lOU0VSVCBJTlRPIGEgVkFMVUVTICgxKScpOwokcmVzID0gJGRiaC0+cXVlcnkoJ0lOU0VSVCBJTlRPIGEgVkFMVUVTICgxKScpOwpjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9DT05TVFJBSU5UKTsKCgpwcmludCAnREJfRVJST1JfQ09OU1RSQUlOVCBmb3IgdW5pcXVlIGtleSB1cGRhdGUgZHVwbGljYXRlOiAgJzsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCdJTlNFUlQgSU5UTyBhIFZBTFVFUyAoMiknKTsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCdVUERBVEUgYSBTRVQgYT0xIFdIRVJFIGE9MicpOwpjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9DT05TVFJBSU5UKTsKCgpwcmludCAnREJfRVJST1JfQ09OU1RSQUlOVCBmb3IgZm9yZWlnbiBrZXkgb24gaW5zZXJ0OiAgJzsKJHJlcyA9IGRyb3BfdGFibGUoJGRiaCwgJ2InKTsKJHJlcyA9IGRyb3BfdGFibGUoJGRiaCwgJ2EnKTsKJGRiaC0+cHVzaEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9DQUxMQkFDSywgJ3BlJyk7CnN3aXRjaCAoJGRiaC0+cGhwdHlwZSkgewogICAgY2FzZSAnbXlzcWwnOgogICAgY2FzZSAnbXlzcWxpJzoKICAgICAgICAkcmVzID0gJGRiaC0+cXVlcnkoJ0NSRUFURSBUQUJMRSBhIChhIElOVCBOT1QgTlVMTCwgJwogICAgICAgICAgICAgICAgICAgIC4gJ1BSSU1BUlkgS0VZIChhKSkgJwogICAgICAgICAgICAgICAgICAgIC4gJ1RZUEU9SU5OT0RCJyk7CiAgICAgICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCdDUkVBVEUgVEFCTEUgYiAoYiBJTlQsICcKICAgICAgICAgICAgICAgICAgICAuICdJTkRFWCBwYXJfaW5kIChiKSwgJwogICAgICAgICAgICAgICAgICAgIC4gJ0ZPUkVJR04gS0VZIChiKSBSRUZFUkVOQ0VTIGEgKGEpKSAnCiAgICAgICAgICAgICAgICAgICAgLiAnVFlQRT1JTk5PREInKTsKICAgICAgICAkZGJoLT5wb3BFcnJvckhhbmRsaW5nKCk7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnbXNxbCc6CiAgICAgICAgLy8gbXNxbCBkb2VzIG5vdCBzdXBwb3J0IGZvcmVpZ24ga2V5cwogICAgICAgICRyZXMgPSAkZGJoLT5xdWVyeSgnQ1JFQVRFIFRBQkxFIGEgKGEgSU5URUdFUiBOT1QgTlVMTCknKTsKICAgICAgICAkcmVzID0gJGRiaC0+cXVlcnkoJ0NSRUFURSBVTklRVUUgSU5ERVggYXVrIE9OIGEgKGEpJyk7CiAgICAgICAgJGRiaC0+cG9wRXJyb3JIYW5kbGluZygpOwogICAgICAgICRyZXMgPSAkZGJoLT5xdWVyeSgnQ1JFQVRFIFRBQkxFIGIgKGIgSU5URUdFUiBSRUZFUkVOQ0VTIGEgKGEpKScpOwogICAgICAgIGlmIChEQjo6aXNFcnJvcigkcmVzKSkgewogICAgICAgICAgICBwcmludCAibWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lXG4iOwogICAgICAgICAgICBwcmludCAiREJfRVJST1JfQ09OU1RSQUlOVCBmb3IgZm9yZWlnbiBrZXkgb24gZGVsZXRlOiAgbWF0Y2hlcyBleHBlY3RlZCBvdXRjb21lXG4iOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIHByaW50ICJXT1csIGl0IHNlZW1zIG1TUUwgbm93IHN1cHBvcnRzIHJlZmVyZW5jZXNcbiI7CiAgICAgICAgICAgIHByaW50ICJXT1csIGl0IHNlZW1zIG1TUUwgbm93IHN1cHBvcnRzIHJlZmVyZW5jZXNcbiI7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGRlZmF1bHQ6CiAgICAgICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCdDUkVBVEUgVEFCTEUgYSAoYSBJTlRFR0VSIE5PVCBOVUxMLCBQUklNQVJZIEtFWSAoYSkpJyk7CiAgICAgICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCdDUkVBVEUgVEFCTEUgYiAoYiBJTlRFR0VSIFJFRkVSRU5DRVMgYSAoYSkpJyk7CiAgICAgICAgJGRiaC0+cG9wRXJyb3JIYW5kbGluZygpOwp9CgppZiAoJGRiaC0+cGhwdHlwZSAhPSAnbXNxbCcpIHsKICAgICRyZXMgPSAkZGJoLT5xdWVyeSgnSU5TRVJUIElOVE8gYSAoYSkgdmFsdWVzICgxKScpOwogICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCdJTlNFUlQgSU5UTyBiIChiKSB2YWx1ZXMgKDIpJyk7CiAgICBzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgICAgICBjYXNlICdzcWxpdGUnOgogICAgICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9DT05TVFJBSU5ULCBmYWxzZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0NPTlNUUkFJTlQpOwogICAgfSAgIAoKICAgIHByaW50ICdEQl9FUlJPUl9DT05TVFJBSU5UIGZvciBmb3JlaWduIGtleSBvbiBkZWxldGU6ICAnOwogICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCdJTlNFUlQgSU5UTyBiIChiKSB2YWx1ZXMgKDEpJyk7CiAgICAkcmVzID0gJGRiaC0+cXVlcnkoJ0RFTEVURSBGUk9NIGEgV0hFUkUgYSA9IDEnKTsKICAgIHN3aXRjaCAoJGRiaC0+cGhwdHlwZSkgewogICAgICAgIGNhc2UgJ3NxbGl0ZSc6CiAgICAgICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0NPTlNUUkFJTlQsIGZhbHNlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfQ09OU1RSQUlOVCk7CiAgICB9Cn0KCgpwcmludCAnREJfRVJST1JfQ09OU1RSQUlOVF9OT1RfTlVMTCBvbiBpbnNlcnQ6ICAnOwokcmVzID0gZHJvcF90YWJsZSgkZGJoLCAncGVhcnRlc3RudWxsJyk7CiRkYmgtPnB1c2hFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICdwZScpOwokcmVzID0gJGRiaC0+cXVlcnkoJ0NSRUFURSBUQUJMRSBwZWFydGVzdG51bGwgKGEgQ0hBUigzKSBOT1QgTlVMTCknKTsKJGRiaC0+cG9wRXJyb3JIYW5kbGluZygpOwokcmVzID0gJGRiaC0+cXVlcnkoJ0lOU0VSVCBJTlRPIHBlYXJ0ZXN0bnVsbCBWQUxVRVMgKE5VTEwpJyk7CmNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwpOwoKCnByaW50ICdEQl9FUlJPUl9DT05TVFJBSU5UX05PVF9OVUxMIG9uIHVwZGF0ZTogICc7CiRyZXMgPSAkZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGVhcnRlc3RudWxsIFZBTFVFUyAoJ29uZScpIik7CiRyZXMgPSAkZGJoLT5xdWVyeSgiVVBEQVRFIHBlYXJ0ZXN0bnVsbCBTRVQgYSA9IE5VTEwgV0hFUkUgYSA9ICdvbmUnIik7CnN3aXRjaCAoJGRiaC0+cGhwdHlwZSkgewogICAgY2FzZSAnbXlzcWwnOgogICAgY2FzZSAnbXlzcWxpJzoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9DT05TVFJBSU5UX05PVF9OVUxMLCBmYWxzZSk7CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0NPTlNUUkFJTlRfTk9UX05VTEwpOwp9CgoKcHJpbnQgJ0RCX0VSUk9SX05PU1VDSEZJRUxEIGpvaW5pbmcgT04gYm9ndXMgY29sdW1uOiAgJzsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NIHBocHRlc3QgSk9JTiBhIE9OIChwaHB0ZXN0LmEgPSBhLmIpJyk7CnN3aXRjaCAoJGRiaC0+cGhwdHlwZSAuICc6JyAuICRkYmgtPmRic3ludGF4KSB7CiAgICBjYXNlICdtc3FsOm1zcWwnOgogICAgY2FzZSAnb2RiYzphY2Nlc3MnOgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX1NZTlRBWCk7CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX05PU1VDSEZJRUxEKTsKfQoKCnByaW50ICdEQl9FUlJPUl9OT1NVQ0hGSUVMRCBqb2luaW5nIFVTSU5HIGJvZ3VzIGNvbHVtbjogICc7CiRyZXMgPSAkZGJoLT5xdWVyeSgnU0VMRUNUICogRlJPTSBwaHB0ZXN0IEpPSU4gYSBVU0lORyAoYiknKTsKc3dpdGNoICgkZGJoLT5waHB0eXBlIC4gJzonIC4gJGRiaC0+ZGJzeW50YXgpIHsKICAgIGNhc2UgJ2liYXNlOmZpcmViaXJkJzoKICAgICAgICAvKiBGaXJlYmlyZFNRTCAyIHJldHVybnMgLTkwMiAoZmVhdHVyZSBpcyBub3Qgc3VwcG9ydGVkKSBmb3IgdGhpcyB0ZXN0CiAgICAgICAgICogcmF0aGVyIHRoYW4gYSBzeW50YXggZXJyb3IuIEZvciBub3csIHdlJ2xsIHRlc3QgZm9yIGJvdGguICovCiAgICAgICAgaWYgKCRyZXMtPmdldENvZGUoKSA9PSBEQl9FUlJPUl9TWU5UQVgpCiAgICAgICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX1NZTlRBWCk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9OT1RfQ0FQQUJMRSk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdpYmFzZTppYmFzZSc6CiAgICBjYXNlICdpZng6aWZ4JzoKICAgIGNhc2UgJ21zcWw6bXNxbCc6CiAgICBjYXNlICdvZGJjOmFjY2Vzcyc6CiAgICBjYXNlICdvZGJjOmRiMic6CiAgICBjYXNlICdzeWJhc2U6c3liYXNlJzoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9TWU5UQVgpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9OT1NVQ0hGSUVMRCk7Cn0KCgpwcmludCAnREJfRVJST1JfRElWWkVSTzogICc7Ci8vIEludGVyYmFzZSBkZXRlY3RzIHRoZSBlcnJvciBvbiBmZXRjaGluZwokcmVzID0gJGRiaC0+Z2V0QWxsKCdTRUxFQ1QgMC8wIEZST00gcGhwdGVzdCcpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ29kYmMnOgogICAgICAgIHN3aXRjaCAoJGRiaC0+ZGJzeW50YXgpIHsKICAgICAgICAgICAgY2FzZSAnYWNjZXNzJzoKICAgICAgICAgICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0RJVlpFUk8sIGZhbHNlKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdkYjInOgogICAgICAgICAgICAgICAgY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfRElWWkVSTyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdtc3FsJzoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9TWU5UQVgpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnZmJzcWwnOgogICAgY2FzZSAnaWJhc2UnOgogICAgY2FzZSAnbXNzcWwnOgogICAgY2FzZSAnbXlzcWwnOgogICAgY2FzZSAnbXlzcWxpJzoKICAgIGNhc2UgJ3NxbGl0ZSc6CiAgICAgICAgLyogTm90IGFsbCBkYXRhYmFzZXMgZGV0ZWN0IGRpdmlzaW9uIGJ5IHplcm8gZXJyb3JzLiBXZSBjYWxsIHRoZXNlCiAgICAgICAgICogZGF0YWJhc2VzICJicm9rZW4iLiAqLwogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIG51bGwsIGZhbHNlKTsKICAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfRElWWkVSTyk7Cn0KCgpwcmludCAnREJfRVJST1JfSU5WQUxJRF9OVU1CRVIgcHV0dGluZyBjaGFycyBpbiBJTlQgY29sdW1uOiAgJzsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCJVUERBVEUgcGhwdGVzdCBTRVQgYSA9ICdhYmMnIFdIRVJFIGEgPSA0MiIpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ215c3FsJzoKICAgIGNhc2UgJ215c3FsaSc6CiAgICBjYXNlICdzcWxpdGUnOgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0lOVkFMSURfTlVNQkVSLCBmYWxzZSk7CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0lOVkFMSURfTlVNQkVSKTsKfQoKCnByaW50ICdEQl9FUlJPUl9JTlZBTElEX05VTUJFUiBwdXR0aW5nIGZsb2F0IGluIElOVCBjb2x1bW46ICAnOwokcmVzID0gJGRiaC0+cXVlcnkoIlVQREFURSBwaHB0ZXN0IFNFVCBhID0gOC45IFdIRVJFIGEgPSA0MiIpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ2Zic3FsJzoKICAgIGNhc2UgJ2liYXNlJzoKICAgIGNhc2UgJ2lmeCc6CiAgICBjYXNlICdtc3NxbCc6CiAgICBjYXNlICdteXNxbCc6CiAgICBjYXNlICdteXNxbGknOgogICAgY2FzZSAnb2NpOCc6CiAgICBjYXNlICdvZGJjJzoKICAgIGNhc2UgJ3Bnc3FsJzoKICAgIGNhc2UgJ3NxbGl0ZSc6CiAgICAgICAgY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfSU5WQUxJRF9OVU1CRVIsIGZhbHNlKTsKICAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfSU5WQUxJRF9OVU1CRVIpOwp9CgoKcHJpbnQgJ0RCX0VSUk9SX0lOVkFMSURfTlVNQkVSIHB1dHRpbmcgZXhjZXNzaXZlIGludCBpbiBJTlQgY29sdW1uOiAgJzsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCJVUERBVEUgcGhwdGVzdCBTRVQgYSA9IDE4NDQ2NzQ0MDczNzA5NTUxNjE2IFdIRVJFIGEgPSA0MiIpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUgLiAnOicgLiAkZGJoLT5kYnN5bnRheCkgewogICAgY2FzZSAnaWJhc2U6aWJhc2UnOgogICAgY2FzZSAnaWJhc2U6ZmlyZWJpcmQnOgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX1NZTlRBWCk7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdmYnNxbDpmYnNxbCc6CiAgICBjYXNlICdpZng6aWZ4JzoKICAgIGNhc2UgJ21zcWw6bXNxbCc6CiAgICBjYXNlICdtc3NxbDptc3NxbCc6CiAgICBjYXNlICdteXNxbDpteXNxbCc6CiAgICBjYXNlICdteXNxbGk6bXlzcWxpJzoKICAgIGNhc2UgJ29jaTg6b2NpOCc6CiAgICBjYXNlICdvZGJjOmFjY2Vzcyc6CiAgICBjYXNlICdzcWxpdGU6c3FsaXRlJzoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9JTlZBTElEX05VTUJFUiwgZmFsc2UpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9JTlZBTElEX05VTUJFUik7Cn0KCgpwcmludCAnREJfRVJST1JfSU5WQUxJRF9OVU1CRVIgcHV0dGluZyBpbnQgaW4gQ0hBUiBjb2x1bW46ICAnOwokcmVzID0gJGRiaC0+cXVlcnkoIlVQREFURSBwaHB0ZXN0IFNFVCBiID0gOCBXSEVSRSBhID0gNDIiKTsKc3dpdGNoICgkZGJoLT5waHB0eXBlIC4gJzonIC4gJGRiaC0+ZGJzeW50YXgpIHsKICAgIGNhc2UgJ2liYXNlOmliYXNlJzoKICAgIGNhc2UgJ2liYXNlOmZpcmViaXJkJzoKICAgIGNhc2UgJ2lmeDppZngnOgogICAgY2FzZSAnbXNzcWw6bXNzcWwnOgogICAgY2FzZSAnbXlzcWw6bXlzcWwnOgogICAgY2FzZSAnbXlzcWxpOm15c3FsaSc6CiAgICBjYXNlICdvY2k4Om9jaTgnOgogICAgY2FzZSAnb2RiYzphY2Nlc3MnOgogICAgY2FzZSAncGdzcWw6cGdzcWwnOgogICAgY2FzZSAnc3FsaXRlOnNxbGl0ZSc6CiAgICAgICAgY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfSU5WQUxJRF9OVU1CRVIsIGZhbHNlKTsKICAgICAgICBicmVhazsKICAgIGRlZmF1bHQ6CiAgICAgICAgY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfSU5WQUxJRF9OVU1CRVIpOwp9CgoKcHJpbnQgJ0RCX0VSUk9SX05PU1VDSEZJRUxEOiAgJzsKJHJlcyA9ICRkYmgtPnF1ZXJ5KCdTRUxFQ1QgZSBGUk9NIHBocHRlc3QnKTsKY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfTk9TVUNIRklFTEQpOwoKCnByaW50ICdEQl9FUlJPUl9TWU5UQVg6ICAnOwokcmVzID0gJGRiaC0+cXVlcnkoJ0NSRUFURScpOwpjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9TWU5UQVgpOwoKCnByaW50ICdEQl9FUlJPUl9WQUxVRV9DT1VOVF9PTl9ST1c6ICAnOwokcmVzID0gJGRiaC0+cXVlcnkoJ0lOU0VSVCBJTlRPIHBocHRlc3QgKGEpIFZBTFVFUyAoNjc4LCAyKScpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ21zcWwnOgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX1ZBTFVFX0NPVU5UX09OX1JPVywgZmFsc2UpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9WQUxVRV9DT1VOVF9PTl9ST1cpOwp9CgoKcHJpbnQgJ0RCX0VSUk9SX0lOVkFMSUQgb24gQ0hBUiBjb2x1bW4gZGF0YSB0b28gbG9uZzogICc7CiRyZXMgPSAkZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCAoYikgVkFMVUVTICgnMTIzNDU2Nzg5LjEyMzQ1Njc4OS4xMjM0NTY3ODkuMTIzNDU2Nzg5LjEnKSIpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUgLiAnOicgLiAkZGJoLT5kYnN5bnRheCkgewogICAgY2FzZSAnaWZ4OmlmeCc6CiAgICBjYXNlICdtc3FsOm1zcWwnOgogICAgY2FzZSAnbXNzcWw6bXNzcWwnOgogICAgY2FzZSAnbXlzcWw6bXlzcWwnOgogICAgY2FzZSAnbXlzcWxpOm15c3FsaSc6CiAgICBjYXNlICdvZGJjOmFjY2Vzcyc6CiAgICBjYXNlICdzcWxpdGU6c3FsaXRlJzoKICAgIGNhc2UgJ3N5YmFzZTpzeWJhc2UnOgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0lOVkFMSUQsIGZhbHNlKTsKICAgICAgICBicmVhazsKICAgIGNhc2UgJ2Zic3FsOmZic3FsJzoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9UUlVOQ0FURUQpOwogICAgICAgIGJyZWFrOwogICAgZGVmYXVsdDoKICAgICAgICBjaGVja19lcnJvcigkcmVzLCBEQl9FUlJPUl9JTlZBTElEKTsKfQoKCnByaW50ICdEQl9FUlJPUl9JTlZBTElEIG9uIFZBUkNIQVIgY29sdW1uIGRhdGEgdG9vIGxvbmc6ICAnOwokcmVzID0gJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBocHRlc3QgKGQpIFZBTFVFUyAoJzEyMzQ1Njc4OS4xMjM0NTY3ODkuMScpIik7CnN3aXRjaCAoJGRiaC0+cGhwdHlwZSAuICc6JyAuICRkYmgtPmRic3ludGF4KSB7CiAgICBjYXNlICdpZng6aWZ4JzoKICAgIGNhc2UgJ21zcWw6bXNxbCc6CiAgICBjYXNlICdtc3NxbDptc3NxbCc6CiAgICBjYXNlICdteXNxbDpteXNxbCc6CiAgICBjYXNlICdteXNxbGk6bXlzcWxpJzoKICAgIGNhc2UgJ29kYmM6YWNjZXNzJzoKICAgIGNhc2UgJ3NxbGl0ZTpzcWxpdGUnOgogICAgY2FzZSAnc3liYXNlOnN5YmFzZSc6CiAgICAgICAgY2hlY2tfZXJyb3IoJHJlcywgREJfRVJST1JfSU5WQUxJRCwgZmFsc2UpOwogICAgICAgIGJyZWFrOwogICAgY2FzZSAnZmJzcWw6ZmJzcWwnOgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX1RSVU5DQVRFRCk7CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgIGNoZWNrX2Vycm9yKCRyZXMsIERCX0VSUk9SX0lOVkFMSUQpOwp9CgoKCmRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsKZHJvcF90YWJsZSgkZGJoLCAnYicpOwpkcm9wX3RhYmxlKCRkYmgsICdhJyk7CmRyb3BfdGFibGUoJGRiaCwgJ3BlYXJ0ZXN0bnVsbCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/fetchmodes.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgdmFyaW91cyBmZXRjaCBtZXRob2RzCiAqCiAqIEV4ZWN1dGVkIGJ5IGRyaXZlci8wMmZldGNoLnBocHQKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgICRJZDogZmV0Y2htb2Rlcy5pbmMsdiAxLjExIDIwMDUvMDIvMTQgMTc6MDQ6MTQgZGFuaWVsYyBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogTG9jYWwgZXJyb3IgY2FsbGJhY2sgaGFuZGxlcgogKgogKiBEcm9wcyB0aGUgcGhwdGVzdCB0YWJsZSwgcHJpbnRzIG91dCBhbiBlcnJvciBtZXNzYWdlIGFuZCBraWxscyB0aGUKICogcHJvY2Vzcy4KICoKICogQHBhcmFtIG9iamVjdCAgJG8gIFBFQVIgZXJyb3Igb2JqZWN0IGF1dG9tYXRpY2FsbHkgcGFzc2VkIHRvIHRoaXMgbWV0aG9kCiAqIEByZXR1cm4gdm9pZAogKiBAc2VlIFBFQVI6OnNldEVycm9ySGFuZGxpbmcoKQogKi8KZnVuY3Rpb24gcGUoJG8pIHsKICAgIGdsb2JhbCAkZGJoOwoKICAgICRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwogICAgZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdCcpOwoKICAgIGRpZSgkby0+dG9TdHJpbmcoKSk7Cn0KCiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9DQUxMQkFDSywgJ3BlJyk7CiRkYmgtPnNldE9wdGlvbignYXV0b2ZyZWUnLCB0cnVlKTsKCiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyAoMSwgJ29uZScsICdPbmUnLCAnMjAwMS0wMi0xNicpIik7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyAoMiwgJ3R3bycsICdUd28nLCAnMjAwMS0wMi0xNScpIik7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyAoMywgJ3RocmVlJywgJ1RocmVlJywgJzIwMDEtMDItMTQnKSIpOwoKcHJpbnQgInRlc3RpbmcgZmV0Y2hyb3c6XG4iOwokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCAqIEZST00gcGhwdGVzdCIpOwpmb3IgKCRpID0gMTsgJGkgPD0gNTsgJGkrKykgewogICAgcHJpbnQgInJvdyAkaTogIjsKICAgICRyb3cgPSAkc3RoLT5mZXRjaFJvdygpOwogICAgaWYgKERCOjppc0Vycm9yKCRyb3cpKSB7CiAgICAgICAgcHJpbnQgJHJvdy0+dG9TdHJpbmcoKSAuICJcbiI7CiAgICAgICAgY29udGludWU7CiAgICB9CiAgICBpZiAoaXNfYXJyYXkoJHJvdykpIHsKICAgICAgICBwcmludCBpbXBsb2RlKCcsICcsICRyb3cpIC4gIlxuIjsKICAgIH0gZWxzZSB7CiAgICAgICAgdmFyX2R1bXAoJHJvdyk7CiAgICB9Cn0KJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCiRkYmgtPnF1ZXJ5KCdERUxFVEUgRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPD4gNDInKTsKCgpwcmludCAidGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaHJvdyBkZWZhdWx0IGRlZmF1bHQsIHBvcnRhYmlsaXR5IG1vZGUgREJfUE9SVEFCSUxJVFlfQUxMIF4gREJfUE9SVEFCSUxJVFlfUlRSSU1cbiI7CiRkYmgtPnNldE9wdGlvbigncG9ydGFiaWxpdHknLCBEQl9QT1JUQUJJTElUWV9BTEwgXiBEQl9QT1JUQUJJTElUWV9SVFJJTSk7CiRzdGggPSAkZGJoLT5xdWVyeSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0Iik7CiRyb3cgPSAkc3RoLT5mZXRjaFJvdygpOwpwcmludCBpbXBsb2RlKCIgIiwgYXJyYXlfa2V5cygkcm93KSkuIlxuIjsKJGFjdHVhbCA9IGltcGxvZGUoJyAnLCBhcnJheV92YWx1ZXMoJHJvdykpOwpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ2Zic3FsJzoKICAgIGNhc2UgJ21zcWwnOgogICAgY2FzZSAnbXlzcWwnOgogICAgY2FzZSAnbXlzcWxpJzoKICAgIGNhc2UgJ3NxbGl0ZSc6CiAgICAgICAgJGV4cGVjdGVkID0gJzQyIGJpbmcgVGhpcyBpcyBhIHRlc3QgMTk5OS0xMS0yMSc7CiAgICAgICAgYnJlYWs7CiAgICBjYXNlICdpZngnOgogICAgICAgICRleHBlY3RlZCA9ICc0MiBiaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSB0ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxOTk5LTExLTIxICAgICAgICAgICc7CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgICRleHBlY3RlZCA9ICc0MiBiaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRoaXMgaXMgYSB0ZXN0IDE5OTktMTEtMjEnOwp9CmlmICgkYWN0dWFsID09ICRleHBlY3RlZCkgewogICAgZWNobyAib3V0cHV0IG1hdGNoZWQgZXhwZWN0ZWQgZm9ybWF0XG4iOwp9IGVsc2UgewogICAgZWNobyAiRElETidUIE1BVENIISAgRXhwZWN0ZWQgb3V0cHV0OiAnJGV4cGVjdGVkJy4gIEFjdHVhbCBvdXRwdXQ6ICckYWN0dWFsJy5cbiI7Cn0KJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCnByaW50ICJ0ZXN0aW5nIGZldGNobW9kZXM6IGZldGNoaW50byBkZWZhdWx0IGRlZmF1bHRcbiI7CiRkYmgtPnNldE9wdGlvbigncG9ydGFiaWxpdHknLCBEQl9QT1JUQUJJTElUWV9BTEwpOwokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCAqIEZST00gcGhwdGVzdCIpOwokcm93ID0gYXJyYXkoKTsKJHN0aC0+ZmV0Y2hJbnRvKCRyb3cpOwpwcmludCBpbXBsb2RlKCIgIiwgYXJyYXlfa2V5cygkcm93KSkuIlxuIjsKcHJpbnQgaW1wbG9kZSgnICcsIGFycmF5X3ZhbHVlcygkcm93KSkuIlxuIjsKJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCnByaW50ICJ0ZXN0aW5nIGZldGNobW9kZXM6IGZldGNocm93IG9yZGVyZWQgZGVmYXVsdFxuIjsKJGRiaC0+c2V0RmV0Y2hNb2RlKERCX0ZFVENITU9ERV9PUkRFUkVEKTsKJHN0aCA9ICRkYmgtPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QiKTsKJHJvdyA9ICRzdGgtPmZldGNoUm93KCk7CnByaW50IGltcGxvZGUoIiAiLCBhcnJheV9rZXlzKCRyb3cpKS4iXG4iOwokc3RoLT5mcmVlKCk7ICAvLyBrZWVwIGZic3FsIGhhcHB5LgoKcHJpbnQgInRlc3RpbmcgZmV0Y2htb2RlczogZmV0Y2hyb3cgYXNzb2MgZGVmYXVsdFxuIjsKJGRiaC0+c2V0RmV0Y2hNb2RlKERCX0ZFVENITU9ERV9BU1NPQyk7CiRzdGggPSAkZGJoLT5xdWVyeSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0Iik7CiRyb3cgPSAkc3RoLT5mZXRjaFJvdygpOwpwcmludCBpbXBsb2RlKCIgIiwgYXJyYXlfa2V5cygkcm93KSkuIlxuIjsKJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCnByaW50ICJ0ZXN0aW5nIGZldGNobW9kZXM6IGZldGNocm93IG9yZGVyZWQgZGVmYXVsdCB3aXRoIGFzc29jIHNwZWNpZmllZFxuIjsKJGRiaC0+c2V0RmV0Y2hNb2RlKERCX0ZFVENITU9ERV9PUkRFUkVEKTsKJHN0aCA9ICRkYmgtPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QiKTsKJHJvdyA9ICRzdGgtPmZldGNoUm93KERCX0ZFVENITU9ERV9BU1NPQyk7CnByaW50IGltcGxvZGUoIiAiLCBhcnJheV9rZXlzKCRyb3cpKS4iXG4iOwokc3RoLT5mcmVlKCk7ICAvLyBrZWVwIGZic3FsIGhhcHB5LgoKcHJpbnQgInRlc3RpbmcgZmV0Y2htb2RlczogZmV0Y2hyb3cgYXNzb2MgZGVmYXVsdCB3aXRoIG9yZGVyZWQgc3BlY2lmaWVkXG4iOwokZGJoLT5zZXRGZXRjaE1vZGUoREJfRkVUQ0hNT0RFX0FTU09DKTsKJHN0aCA9ICRkYmgtPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QiKTsKJHJvdyA9ICRzdGgtPmZldGNoUm93KERCX0ZFVENITU9ERV9PUkRFUkVEKTsKcHJpbnQgaW1wbG9kZSgiICIsIGFycmF5X2tleXMoJHJvdykpLiJcbiI7CiRzdGgtPmZyZWUoKTsgIC8vIGtlZXAgZmJzcWwgaGFwcHkuCgpwcmludCAidGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaGludG8gb3JkZXJlZCBkZWZhdWx0XG4iOwokZGJoLT5zZXRGZXRjaE1vZGUoREJfRkVUQ0hNT0RFX09SREVSRUQpOwokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCAqIEZST00gcGhwdGVzdCIpOwokcm93ID0gYXJyYXkoKTsKJHN0aC0+ZmV0Y2hJbnRvKCRyb3cpOwpwcmludCBpbXBsb2RlKCIgIiwgYXJyYXlfa2V5cygkcm93KSkuIlxuIjsKJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCnByaW50ICJ0ZXN0aW5nIGZldGNobW9kZXM6IGZldGNoaW50byBhc3NvYyBkZWZhdWx0XG4iOwokZGJoLT5zZXRGZXRjaE1vZGUoREJfRkVUQ0hNT0RFX0FTU09DKTsKJHN0aCA9ICRkYmgtPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QiKTsKJHJvdyA9IGFycmF5KCk7CiRzdGgtPmZldGNoSW50bygkcm93KTsKcHJpbnQgaW1wbG9kZSgiICIsIGFycmF5X2tleXMoJHJvdykpLiJcbiI7CiRzdGgtPmZyZWUoKTsgIC8vIGtlZXAgZmJzcWwgaGFwcHkuCgpwcmludCAidGVzdGluZyBmZXRjaG1vZGVzOiBmZXRjaGludG8gb3JkZXJlZCBkZWZhdWx0IHdpdGggYXNzb2Mgc3BlY2lmaWVkXG4iOwokZGJoLT5zZXRGZXRjaE1vZGUoREJfRkVUQ0hNT0RFX09SREVSRUQpOwokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCAqIEZST00gcGhwdGVzdCIpOwokcm93ID0gYXJyYXkoKTsKJHN0aC0+ZmV0Y2hJbnRvKCRyb3csIERCX0ZFVENITU9ERV9BU1NPQyk7CnByaW50IGltcGxvZGUoIiAiLCBhcnJheV9rZXlzKCRyb3cpKS4iXG4iOwokc3RoLT5mcmVlKCk7ICAvLyBrZWVwIGZic3FsIGhhcHB5LgoKcHJpbnQgInRlc3RpbmcgZmV0Y2htb2RlczogZmV0Y2hpbnRvIGFzc29jIGRlZmF1bHQgd2l0aCBvcmRlcmVkIHNwZWNpZmllZFxuIjsKJGRiaC0+c2V0RmV0Y2hNb2RlKERCX0ZFVENITU9ERV9BU1NPQyk7CiRzdGggPSAkZGJoLT5xdWVyeSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0Iik7CiRyb3cgPSBhcnJheSgpOwokc3RoLT5mZXRjaEludG8oJHJvdywgREJfRkVUQ0hNT0RFX09SREVSRUQpOwpwcmludCBpbXBsb2RlKCIgIiwgYXJyYXlfa2V5cygkcm93KSkuIlxuIjsKCiRzdGgtPmZyZWUoKTsgIC8vIGtlZXAgZmJzcWwgaGFwcHkuCiAgICAgICAgICAgICAgIC8vIGtlZXAgaWJhc2UgaGFwcHk6IGNhbid0IGRyb3AgdGJsIHRoYXQgaGFzIHJlc3VsdHMgb3BlbiBhZ2FpbnN0IGl0LgoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CmRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/fetchmode_object.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgb2JqZWN0IGZldGNoIG1vZGUgcHJvY2VkdXJlcwogKgogKiBFeGVjdXRlZCBieSBkcml2ZXIvMTRmZXRjaG1vZGVfb2JqZWN0LnBocHQKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgICRJZDogZmV0Y2htb2RlX29iamVjdC5pbmMsdiAxLjExIDIwMDUvMDIvMDMgMDU6NDk6NDQgZGFuaWVsYyBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgplcnJvcl9yZXBvcnRpbmcoRV9BTEwpOwoKLyoqCiAqIExvY2FsIGVycm9yIGNhbGxiYWNrIGhhbmRsZXIKICoKICogRHJvcHMgdGhlIHBocHRlc3QgdGFibGUsIHByaW50cyBvdXQgYW4gZXJyb3IgbWVzc2FnZSBhbmQga2lsbHMgdGhlCiAqIHByb2Nlc3MuCiAqCiAqIEBwYXJhbSBvYmplY3QgICRvICBQRUFSIGVycm9yIG9iamVjdCBhdXRvbWF0aWNhbGx5IHBhc3NlZCB0byB0aGlzIG1ldGhvZAogKiBAcmV0dXJuIHZvaWQKICogQHNlZSBQRUFSOjpzZXRFcnJvckhhbmRsaW5nKCkKICovCmZ1bmN0aW9uIHBlKCRvKSB7CiAgICBnbG9iYWwgJGRiaDsKCiAgICAkZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKICAgIGRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsKCiAgICBkaWUoJG8tPnRvU3RyaW5nKCkpOwp9CgovKioKICogUHJpbnQgb3V0IHRoZSBvYmplY3QKICovCmZ1bmN0aW9uIHByaW50X29iaigmJG9iaikgewogICAgaWYgKCFpc19vYmplY3QoJG9iaikpIHsKICAgICAgICBlY2hvICJFUlJPUjogbm8gb2JqZWN0IVxuIjsKICAgIH0gZWxzZSB7CiAgICAgICAgZWNobyBzdHJ0b2xvd2VyKGdldF9jbGFzcygkb2JqKSkgLiAnIC0+ICcgLiBpbXBsb2RlKCcgJywgYXJyYXlfa2V5cygoYXJyYXkpJG9iaikpIC4gIlxuIjsKICAgIH0KfQoKCiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9DQUxMQkFDSywgJ3BlJyk7CgplY2hvICItLS0gZmV0Y2ggd2l0aCBwYXJhbSBEQl9GRVRDSE1PREVfT0JKRUNUIC0tLVxuIjsKJHN0aCA9ICRkYmgtPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QiKTsKJHJvdyA9ICRzdGgtPmZldGNoUm93KERCX0ZFVENITU9ERV9PQkpFQ1QpOwpwcmludF9vYmooJHJvdyk7CiRzdGgtPmZyZWUoKTsgIC8vIGtlZXAgZmJzcWwgaGFwcHkuCgokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCAqIEZST00gcGhwdGVzdCIpOwokc3RoLT5mZXRjaEludG8oJHJvdywgREJfRkVUQ0hNT0RFX09CSkVDVCk7CnByaW50X29iaigkcm93KTsKJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCmVjaG8gIi0tLSBmZXRjaCB3aXRoIGRlZmF1bHQgZmV0Y2htb2RlIERCX0ZFVENITU9ERV9PQkpFQ1QgLS0tXG4iOwokZGJoLT5zZXRGZXRjaE1vZGUoREJfRkVUQ0hNT0RFX09CSkVDVCk7CiRzdGggPSAkZGJoLT5xdWVyeSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0Iik7CiRyb3cgPSAkc3RoLT5mZXRjaFJvdygpOwpwcmludF9vYmooJHJvdyk7CiRzdGgtPmZyZWUoKTsgIC8vIGtlZXAgZmJzcWwgaGFwcHkuCgokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCAqIEZST00gcGhwdGVzdCIpOwokc3RoLT5mZXRjaEludG8oJHJvdyk7CnByaW50X29iaigkcm93KTsKJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCmVjaG8gIi0tLSBmZXRjaCB3aXRoIGRlZmF1bHQgZmV0Y2htb2RlIERCX0ZFVENITU9ERV9PQkpFQ1QgYW5kIGNsYXNzIERCX3JvdyAtLS1cbiI7CiRkYmgtPnNldEZldGNoTW9kZShEQl9GRVRDSE1PREVfT0JKRUNULCAnREJfcm93Jyk7CiRzdGggPSAkZGJoLT5xdWVyeSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0Iik7CiRyb3cgPSAkc3RoLT5mZXRjaFJvdygpOwpwcmludF9vYmooJHJvdyk7CiRzdGgtPmZyZWUoKTsgIC8vIGtlZXAgZmJzcWwgaGFwcHkuCgokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCAqIEZST00gcGhwdGVzdCIpOwokc3RoLT5mZXRjaEludG8oJHJvdyk7CnByaW50X29iaigkcm93KTsKJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCmVjaG8gIi0tLSBmZXRjaCB3aXRoIGRlZmF1bHQgZmV0Y2htb2RlIERCX0ZFVENITU9ERV9PQkpFQ1Qgd2l0aCBubyBjbGFzcyB0aGVuIERCX3JvdyAtLS1cbiI7CiRkYmgtPnNldEZldGNoTW9kZShEQl9GRVRDSE1PREVfT0JKRUNUKTsKJHN0aCA9ICRkYmgtPnF1ZXJ5KCdTRUxFQ1QgKiBGUk9NIHBocHRlc3QnKTsKJHJvdyA9ICRzdGgtPmZldGNoUm93KCk7CnByaW50X29iaigkcm93KTsKJHN0aC0+ZnJlZSgpOyAgLy8ga2VlcCBmYnNxbCBoYXBweS4KCiRkYmgtPnNldEZldGNoTW9kZShEQl9GRVRDSE1PREVfT0JKRUNULCAnREJfcm93Jyk7CiRzdGggPSAkZGJoLT5xdWVyeSgnU0VMRUNUICogRlJPTSBwaHB0ZXN0Jyk7CiRyb3cgPSAkc3RoLT5mZXRjaFJvdygpOwpwcmludF9vYmooJHJvdyk7Cgokc3RoLT5mcmVlKCk7ICAvLyBrZWVwIGZic3FsIGhhcHB5LgogICAgICAgICAgICAgICAvLyBrZWVwIGliYXNlIGhhcHB5OiBjYW4ndCBkcm9wIHRibCB0aGF0IGhhcyByZXN1bHRzIG9wZW4gYWdhaW5zdCBpdC4KCiRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwpkcm9wX3RhYmxlKCRkYmgsICdwaHB0ZXN0Jyk7Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/include.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBTZXRzIHRoZSBpbmNsdWRlX3BhdGgsIGVycm9yX3JlcG9ydGluZyBhbmQgUEFUSF9TRVBBUkFUT1IgZm9yIHRlc3RzCiAqIGluIHRoZSBEQi90ZXN0cyBkaXJlY3RvcnkKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgICRJZDogaW5jbHVkZS5pbmMsdiAxLjUgMjAwNS8wMi8wMyAwNTo0OTo0NCBkYW5pZWxjIEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCmVycm9yX3JlcG9ydGluZyhFX0FMTCk7CgppZiAoIWRlZmluZWQoJ1BBVEhfU0VQQVJBVE9SJykpIHsKICAgIGlmIChzdHJpc3RyKFBIUF9PUywgJ1dJTicpKSB7CiAgICAgICAgLyoqCiAgICAgICAgICogRGVmaW5lIHRoZSBwYXRoIHNlcGFyYXRvciBmb3Igd2luZG93cwogICAgICAgICAqLwogICAgICAgIGRlZmluZSgnUEFUSF9TRVBBUkFUT1InLCAnOycpOwogICAgfSBlbHNlIHsKICAgICAgICAvKioKICAgICAgICAgKiBEZWZpbmUgdGhlIHBhdGggc2VwYXJhdG9yIGZvciBvdGhlciBzeXN0ZW1zCiAgICAgICAgICovCiAgICAgICAgZGVmaW5lKCdQQVRIX1NFUEFSQVRPUicsICc6Jyk7CiAgICB9Cn0KCi8qCiAqIElmIHRoZSBwYXRoIHRvIHlvdXIgUEVBUiBpbnN0YWxsYXRpb24gaXMgZm91bmQgaW4gdGhlIGxlZnQgaGFuZAogKiBwb3J0aW9uIG9mIHRoZSBpZigpIGV4cHJlc3Npb24gYmVsb3csIHRoYXQgbWVhbnMgdGhpcyBmaWxlIGhhcwogKiBjb21lIGZyb20gdGhlIFBFQVIgaW5zdGFsbGVyLiAgVGhlcmVmb3JlLCBsZXQncyB1c2UgdGhlCiAqIGluc3RhbGxlZCB2ZXJzaW9uIG9mIERCLCB3aGljaCBzaG91bGQgYmUgZm91bmQgdmlhIHRoZQogKiBjb21wdXRlcidzIGRlZmF1bHQgaW5jbHVkZV9wYXRoLiAgQWRkICcuJyB0byB0aGUgaW5jbHVkZV9wYXRoCiAqIHRvIGVuc3VyZSAnLicgaXMgaW4gdGhlcmUuCiAqIAogKiBJZiB0aGUgcGF0aCBoYXMgbm90IGJlZW4gc3Vic3RpdHV0ZWQgaW4gdGhlIGlmKCkgZXhwcmVzc2lvbiwKICogdGhpcyBmaWxlIGhhcyBsaWtlbHkgY29tZSBmcm9tIGEgQ1ZTIGNoZWNrb3V0IG9yIGEgLnRhciBmaWxlLgogKiBUaGVyZWZvcmUsIHdlJ2xsIGFzc3VtZSB0aGUgdGVzdHMgc2hvdWxkIHVzZSB0aGUgdmVyc2lvbiBvZgogKiBEQiB0aGF0IGhhcyBjb21lIGZyb20gdGhlcmUgYXMgd2VsbC4KICovCmlmICgnQGluY2x1ZGVfcGF0aEAnICE9ICdAJy4naW5jbHVkZV9wYXRoJy4nQCcpIHsKICAgIGluaV9zZXQoJ2luY2x1ZGVfcGF0aCcsIGluaV9nZXQoJ2luY2x1ZGVfcGF0aCcpCiAgICAgICAgICAgIC4gUEFUSF9TRVBBUkFUT1IgLiAnLicKICAgICk7Cn0gZWxzZSB7CiAgICBpbmlfc2V0KCdpbmNsdWRlX3BhdGgnLCByZWFscGF0aChkaXJuYW1lKF9fRklMRV9fKSAuICcvLi4nKQogICAgICAgICAgICAuIFBBVEhfU0VQQVJBVE9SIC4gJy4nIC4gUEFUSF9TRVBBUkFUT1IKICAgICAgICAgICAgLiBpbmlfZ2V0KCdpbmNsdWRlX3BhdGgnKQogICAgKTsKfQo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/limit.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgbGltaXRRdWVyeSgpIG1ldGhvZAogKgogKiBFeGVjdXRlZCBieSBkcml2ZXIvMTNsaW1pdC5waHB0CiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICAkSWQ6IGxpbWl0LmluYyx2IDEuMTMgMjAwNy8wMS8xMSAwOTowMzo1OCBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCmVycm9yX3JlcG9ydGluZyhFX0FMTCk7CgovKioKICogTG9jYWwgZXJyb3IgY2FsbGJhY2sgaGFuZGxlcgogKgogKiBEcm9wcyB0aGUgcGhwdGVzdCB0YWJsZSwgcHJpbnRzIG91dCBhbiBlcnJvciBtZXNzYWdlIGFuZCBraWxscyB0aGUKICogcHJvY2Vzcy4KICoKICogQHBhcmFtIG9iamVjdCAgJG8gIFBFQVIgZXJyb3Igb2JqZWN0IGF1dG9tYXRpY2FsbHkgcGFzc2VkIHRvIHRoaXMgbWV0aG9kCiAqIEByZXR1cm4gdm9pZAogKiBAc2VlIFBFQVI6OnNldEVycm9ySGFuZGxpbmcoKQogKi8KZnVuY3Rpb24gcGUoJG8pIHsKICAgIGdsb2JhbCAkZGJoOwoKICAgICRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwogICAgZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdCcpOwoKICAgIGRpZSgkby0+dG9TdHJpbmcoKSk7Cn0KCgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKZHJvcF90YWJsZSgkZGJoLCAncGhwX2xpbWl0Jyk7CgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICdwZScpOwoKJGRiaC0+cXVlcnkoJ0NSRUFURSBUQUJMRSBwaHBfbGltaXQgKGEgQ0hBUigyMCkpJyk7CgoKJGZyb20gICAgPSAwOwokY291bnQgICA9IDEwOwokbnVtcm93cyA9IDMwOwoKZm9yICgkaT0wOyAkaTw9JG51bXJvd3MrMjsgJGkrKykgewogICAgJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBocF9saW1pdCBWQUxVRVMoJ3Jlc3VsdCAkaScpIik7Cn0KZm9yICgkaSA9IDA7ICRpIDw9IDM7ICRpKyspIHsKICAgICRmcm9tID0gMTAgKiAkaTsKICAgICRyZXMgPSAkZGJoLT5saW1pdFF1ZXJ5KCJzZWxlY3QgKiBmcm9tIHBocF9saW1pdCIsICRmcm9tLCAkY291bnQpOwogICAgZWNobyAiPT09PT09PSBGcm9tOiAkZnJvbSB8fCBOdW1iZXIgb2Ygcm93cyB0byBmZXRjaDogJGNvdW50ID09PT09PT1cbiI7CiAgICB3aGlsZSAoJHJvdyA9ICRyZXMtPmZldGNoUm93KERCX0ZFVENITU9ERV9BU1NPQykpIHsKICAgICAgICBlY2hvICRyZXMtPmdldFJvd0NvdW50ZXIoKSAuICcuLSAnIC4gJHJvd1snYSddIC4gIlxuIjsKICAgIH0KICAgICRjb3VudCA9ICRyZXMtPm51bVJvd3MoKTsKICAgIGVjaG8gIlJvdyBjb3VudCBmb3IgbGltaXRlZCByZXN1bHQ6ICRjb3VudFxuIjsKICAgICRyZXMtPmZyZWUoKTsgIC8vIGtlZXAgZmJzcWwgaGFwcHkuCn0KCgokZnJvbSAgPSAxMTsKJGNvdW50ID0gMzsKCmVjaG8gIj09PT09PT0gUGFzc2luZyBcJHBhcmFtcyB8fCBGcm9tOiAkZnJvbSB8fCBOdW1iZXIgb2Ygcm93cyB0byBmZXRjaDogJGNvdW50ID09PT09PT1cbiI7CiRyZXMgPSAkZGJoLT5saW1pdFF1ZXJ5KCdTRUxFQ1QgKiBGUk9NIHBocF9saW1pdCBXSEVSRSBhIDwgPycsICRmcm9tLCAkY291bnQsIGFycmF5KCdyZXN1bHQgOTknKSk7CndoaWxlICgkcm93ID0gJHJlcy0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX0FTU09DKSkgewogICAgZWNobyAkcmVzLT5nZXRSb3dDb3VudGVyKCkgLiAnLi0gJyAuICRyb3dbJ2EnXSAuICJcbiI7Cn0KCiRyZXMtPmZyZWUoKTsgIC8vIGtlZXAgZmJzcWwgaGFwcHkuCiAgICAgICAgICAgICAgIC8vIGtlZXAgaWJhc2UgaGFwcHk6IGNhbid0IGRyb3AgdGJsIHRoYXQgaGFzIHJlc3VsdHMgb3BlbiBhZ2FpbnN0IGl0LgoKLy8gUmVncmVzc2lvbiB0ZXN0IGZvciBidWcgIzc1MDIuCiRmcm9tICA9IDA7CiRjb3VudCA9IDM7CiRpdGVyICA9IDEwOwplY2hvICI9PT09PT09IEZyb206ICRmcm9tIHx8IE51bWJlciBvZiByb3dzIHRvIGZldGNoOiAkY291bnQgfHwgSXRlcmF0aW9uczogJGl0ZXIgPT09PT09PVxuIjsKJHJlcyA9ICRkYmgtPmxpbWl0UXVlcnkoInNlbGVjdCAqIGZyb20gcGhwX2xpbWl0IiwgJGZyb20sICRjb3VudCk7CmlmICghaW5fYXJyYXkoJGRiaC0+cGhwdHlwZSwgYXJyYXkoJ2liYXNlJywgJ29jaTgnKSkpIHsKICAgIGZvciAoJGkgPSAwOyAkaSA8ICRpdGVyOyArKyRpKSB7CiAgICAgICAgaWYgKGlzX251bGwoJHJvdyA9ICRyZXMtPmZldGNoUm93KERCX0ZFVENITU9ERV9BU1NPQywgMSkpKSB7CiAgICAgICAgICAgIGVjaG8gIkVycm9yIGluIGl0ZXJhdGlvbiAkaTogeyRyb3dbJ2EnXX1cbiI7CiAgICAgICAgfQogICAgfQp9CiRjb3VudCA9ICRyZXMtPm51bVJvd3MoKTsKZWNobyAiUm93IGNvdW50IGZvciBsaW1pdGVkIHJlc3VsdDogJGNvdW50XG4iOwokcmVzLT5mcmVlKCk7ICAvLyBrZWVwIGZic3FsIGhhcHB5LgoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CmRyb3BfdGFibGUoJGRiaCwgJ3BocF9saW1pdCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/numcols.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgbnVtQ29scygpIG1ldGhvZAogKgogKiBFeGVjdXRlZCBieSBkcml2ZXIvMDRudW1jb2xzLnBocHQKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgICRJZDogbnVtY29scy5pbmMsdiAxLjggMjAwNy8wMS8wOCAwMDoxOTo0OCBhaGFydmV5IEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBMb2NhbCBlcnJvciBjYWxsYmFjayBoYW5kbGVyCiAqCiAqIERyb3BzIHRoZSBwaHB0ZXN0IHRhYmxlLCBwcmludHMgb3V0IGFuIGVycm9yIG1lc3NhZ2UgYW5kIGtpbGxzIHRoZQogKiBwcm9jZXNzLgogKgogKiBAcGFyYW0gb2JqZWN0ICAkbyAgUEVBUiBlcnJvciBvYmplY3QgYXV0b21hdGljYWxseSBwYXNzZWQgdG8gdGhpcyBtZXRob2QKICogQHJldHVybiB2b2lkCiAqIEBzZWUgUEVBUjo6c2V0RXJyb3JIYW5kbGluZygpCiAqLwpmdW5jdGlvbiBwZSgkbykgewogICAgZ2xvYmFsICRkYmg7CgogICAgJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CiAgICBkcm9wX3RhYmxlKCRkYmgsICdwaHB0ZXN0Jyk7CgogICAgZGllKCRvLT50b1N0cmluZygpKTsKfQoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAncGUnKTsKCgokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCBhIEZST00gcGhwdGVzdCIpOwpwcmludGYoIiVkXG4iLCAkc3RoLT5udW1Db2xzKCkpOwokc3RoID0gJGRiaC0+cXVlcnkoIlNFTEVDVCBhLGIgRlJPTSBwaHB0ZXN0Iik7CnByaW50ZigiJWRcbiIsICRzdGgtPm51bUNvbHMoKSk7CiRzdGggPSAkZGJoLT5xdWVyeSgiU0VMRUNUIGEsYixjYyBGUk9NIHBocHRlc3QiKTsKcHJpbnRmKCIlZFxuIiwgJHN0aC0+bnVtQ29scygpKTsKJHN0aCA9ICRkYmgtPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QiKTsKcHJpbnRmKCIlZFxuIiwgJHN0aC0+bnVtQ29scygpKTsKCgpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ2liYXNlJzoKICAgICAgICAvKgogICAgICAgICAqIEludGVyYmFzZSBkb2Vzbid0IGFsbG93IGRyb3BwaW5nIHRhYmxlcyB0aGF0IGhhdmUgcmVzdWx0CiAgICAgICAgICogc2V0cyBzdGlsbCBvcGVuLgogICAgICAgICAqLwogICAgICAgICRkYmgtPmZyZWVSZXN1bHQoJHN0aC0+cmVzdWx0KTsKICAgICAgICBicmVhazsKfQokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfUkVUVVJOKTsKZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdCcpOwo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/numrows.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgbnVtUm93cygpIG1ldGhvZAogKgogKiBFeGVjdXRlZCBieSBkcml2ZXIvMDludW1yb3dzLnBocHQKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgICRJZDogbnVtcm93cy5pbmMsdiAxLjE0IDIwMDcvMDEvMTEgMDc6NDM6MDkgYWhhcnZleSBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgovKioKICogTG9jYWwgZXJyb3IgY2FsbGJhY2sgaGFuZGxlcgogKgogKiBEcm9wcyB0aGUgcGhwdGVzdCB0YWJsZSwgcHJpbnRzIG91dCBhbiBlcnJvciBtZXNzYWdlIGFuZCBraWxscyB0aGUKICogcHJvY2Vzcy4KICoKICogQHBhcmFtIG9iamVjdCAgJG8gIFBFQVIgZXJyb3Igb2JqZWN0IGF1dG9tYXRpY2FsbHkgcGFzc2VkIHRvIHRoaXMgbWV0aG9kCiAqIEByZXR1cm4gdm9pZAogKiBAc2VlIFBFQVI6OnNldEVycm9ySGFuZGxpbmcoKQogKi8KZnVuY3Rpb24gcGUoJG8pIHsKICAgIGdsb2JhbCAkZGJoLCAkcmVzOwoKICAgICRkYmgtPnNldEVycm9ySGFuZGxpbmcoUEVBUl9FUlJPUl9SRVRVUk4pOwogICAgJHJlcy0+ZnJlZSgpOwogICAgZHJvcF90YWJsZSgkZGJoLCAncGhwdGVzdCcpOwoKICAgIHByaW50ICJcbi0tLS0tLS0tLS0tLVxuIjsKICAgIGlmICgkby0+Z2V0Q29kZSgpID09IERCX0VSUk9SX1VOU1VQUE9SVEVEKSB7CiAgICAgICAgcHJpbnQgIlRoaXMgREJNUyBkb2VzIG5vdCBzdXBwb3J0IG51bVJvd3MoKS4iOwogICAgfSBlbHNlaWYgKCRvLT5nZXRDb2RlKCkgPT0gREJfRVJST1JfTUlTTUFUQ0gpIHsKICAgICAgICBwcmludCAiTWlzbWF0Y2ggYmV0d2VlbiB0aGUgbnVtYmVyIG9mIHBsYWNlaG9sZGVycyBhbmQgcGFyYW1ldGVycy5cbiI7CiAgICAgICAgZm9yZWFjaCAoJG8tPmJhY2t0cmFjZSBhcyAkaXRlbSA9PiAkZGV0YWlsKSB7CiAgICAgICAgICAgIGlmICgkZGV0YWlsWydmdW5jdGlvbiddID09ICdxdWVyeScpIHsKICAgICAgICAgICAgICAgIGVjaG8gJ1FVRVJZOiAnIC4gJGRldGFpbFsnYXJncyddWzBdIC4gIlxuIjsKICAgICAgICAgICAgICAgIGVjaG8gIlBBUkFNRVRFUlM6XG4iOwogICAgICAgICAgICAgICAgcHJpbnRfcigkZGV0YWlsWydhcmdzJ11bMV0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBwcmludCAkby0+Z2V0RGVidWdJbmZvKCkgLiAiXG4iOwogICAgfQogICAgZXhpdDsKfQoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAncGUnKTsKCgokcmVzID0gJGRiaC0+cXVlcnkoIlNFTEVDVCBhIEZST00gcGhwdGVzdCIpOwppZiAoIURCOjppc0Vycm9yKCRyb3dzID0gJHJlcy0+bnVtUm93cygpKSkgewogICAgcHJpbnQgIih3YW50IDEpIGdvdCAkcm93cyBmcm9tIGZpcnN0XG4iOwp9IGVsc2UgewogICAgcHJpbnQgIlxuIjsKfQpmb3IgKCRpID0gMDsgJGkgPCA1OyAkaSsrKSB7CiAgICAkZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCAoYSkgVkFMVUVTICgkaSkiKTsKICAgICRyZXMgPSAkZGJoLT5xdWVyeSgiU0VMRUNUIGEgRlJPTSBwaHB0ZXN0Iik7CiAgICBpZiAoIURCOjppc0Vycm9yKCRyb3dzID0gJHJlcy0+bnVtUm93cygpKSkgewogICAgICAgIHByaW50ICcod2FudCAnIC4gKCRpICsgMikgLiAiKSBnb3QgJHJvd3MgZnJvbSAkaVxuIjsKICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnQgIlxuIjsKICAgIH0KfQoKJHJlcyA9ICRkYmgtPnF1ZXJ5KCdTRUxFQ1QgYSBGUk9NIHBocHRlc3QgV0hFUkUgYSA+ID8nLCBhcnJheSgwKSk7CmlmICghREI6OmlzRXJyb3IoJHJvd3MgPSAkcmVzLT5udW1Sb3dzKCkpKSB7CiAgICBwcmludCAiKHdhbnQgNSkgZ290ICRyb3dzIGZyb20gPiAwIChwYXNzaW5nIHBhcmFtcyB0byBxdWVyeSlcbiI7Cn0gZWxzZSB7CiAgICBwcmludCAiXG4iOwp9Cgokc3RoID0gJGRiaC0+cHJlcGFyZSgnU0VMRUNUIGEgRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPCA/Jyk7CiRyZXMgPSAkZGJoLT5leGVjdXRlKCRzdGgsIGFycmF5KDQpKTsKaWYgKCFEQjo6aXNFcnJvcigkcm93cyA9ICRyZXMtPm51bVJvd3MoKSkpIHsKICAgIHByaW50ICIod2FudCA0KSBnb3QgJHJvd3MgZnJvbSA8IDQgKGRvaW5nIHByZXBhcmUvZXhlY3V0ZSlcbiI7Cn0gZWxzZSB7CiAgICBwcmludCAiXG4iOwp9CgokZGJoLT5xdWVyeSgiREVMRVRFIEZST00gcGhwdGVzdCBXSEVSRSBhIDwgNCIpOwokcmVzID0gJGRiaC0+cXVlcnkoIlNFTEVDVCBhIEZST00gcGhwdGVzdCIpOwppZiAoIURCOjppc0Vycm9yKCRyb3dzID0gJHJlcy0+bnVtUm93cygpKSkgewogICAgcHJpbnQgIih3YW50IDIpIGdvdCAkcm93cyBmcm9tIDUgYW5kIDYgbm90IGRlbGV0ZWRcbiI7Cn0gZWxzZSB7CiAgICBwcmludCAiXG4iOwp9CiRyZXMgPSAkZGJoLT5xdWVyeSgiU0VMRUNUIGEgRlJPTSBwaHB0ZXN0IHdoZXJlIGEgPCAwIik7CmlmICghREI6OmlzRXJyb3IoJHJvd3MgPSAkcmVzLT5udW1Sb3dzKCkpKSB7CiAgICBwcmludCAiKHdhbnQgMCkgZ290ICRyb3dzIGZyb20gPCAwXG4iOwp9IGVsc2UgewogICAgcHJpbnQgIlxuIjsKfQoKCmRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/prepexe.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgcHJlcGFyZSBhbmQgZXhlY3V0ZSBtZXRob2RzCiAqCiAqIEV4ZWN1dGVkIGJ5IGRyaXZlci8wNnByZXBleGVjLnBocHQKICoKICogUEhQIHZlcnNpb25zIDQgYW5kIDUKICoKICogTElDRU5TRTogVGhpcyBzb3VyY2UgZmlsZSBpcyBzdWJqZWN0IHRvIHZlcnNpb24gMy4wIG9mIHRoZSBQSFAgbGljZW5zZQogKiB0aGF0IGlzIGF2YWlsYWJsZSB0aHJvdWdoIHRoZSB3b3JsZC13aWRlLXdlYiBhdCB0aGUgZm9sbG93aW5nIFVSSToKICogaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dC4gIElmIHlvdSBkaWQgbm90IHJlY2VpdmUgYSBjb3B5IG9mCiAqIHRoZSBQSFAgTGljZW5zZSBhbmQgYXJlIHVuYWJsZSB0byBvYnRhaW4gaXQgdGhyb3VnaCB0aGUgd2ViLCBwbGVhc2UKICogc2VuZCBhIG5vdGUgdG8gbGljZW5zZUBwaHAubmV0IHNvIHdlIGNhbiBtYWlsIHlvdSBhIGNvcHkgaW1tZWRpYXRlbHkuCiAqCiAqIEBjYXRlZ29yeSAgIERhdGFiYXNlCiAqIEBwYWNrYWdlICAgIERCCiAqIEBhdXRob3IgICAgIERhbmllbCBDb252aXNzb3IgPGRhbmllbGNAcGhwLm5ldD4KICogQGNvcHlyaWdodCAgMTk5Ny0yMDA1IFRoZSBQSFAgR3JvdXAKICogQGxpY2Vuc2UgICAgaHR0cDovL3d3dy5waHAubmV0L2xpY2Vuc2UvM18wLnR4dCAgUEhQIExpY2Vuc2UgMy4wCiAqIEB2ZXJzaW9uICAgICRJZDogcHJlcGV4ZS5pbmMsdiAxLjI3IDIwMDcvMDEvMDggMDA6MTk6NDggYWhhcnZleSBFeHAgJAogKiBAbGluayAgICAgICBodHRwOi8vcGVhci5waHAubmV0L3BhY2thZ2UvREIKICovCgokdG1wZmlsZSA9IHRlbXBuYW0oIi90bXAiLCAicGhwdG1wIik7CnJlZ2lzdGVyX3NodXRkb3duX2Z1bmN0aW9uKCJteV9zaHV0ZG93biIpOwokZnAgPSBmb3BlbigkdG1wZmlsZSwgInciKTsKJGZpbGVkYXRhID0gIm9wYXF1ZSBwbGFjZWhvbGRlcidzIHRlc3QiOwpmd3JpdGUoJGZwLCAkZmlsZWRhdGEpOwpmY2xvc2UoJGZwKTsKCgovKioKICogTG9jYWwgZXJyb3IgY2FsbGJhY2sgaGFuZGxlcgogKgogKiBQcmludHMgb3V0IGFuIGVycm9yIG1lc3NhZ2UgYW5kIGtpbGxzIHRoZSBwcm9jZXNzLgogKgogKiBAcGFyYW0gb2JqZWN0ICAkbyAgUEVBUiBlcnJvciBvYmplY3QgYXV0b21hdGljYWxseSBwYXNzZWQgdG8gdGhpcyBtZXRob2QKICogQHJldHVybiB2b2lkCiAqIEBzZWUgUEVBUjo6c2V0RXJyb3JIYW5kbGluZygpCiAqLwpmdW5jdGlvbiBwZSgkbykgewogICAgcHJpbnQgIlxuIiAuICRvLT50b1N0cmluZygpOwogICAgZXhpdDsKfQoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAncGUnKTsKCgovLyAxKSBNdWx0aXBsZSBwcmVwYXJlL2V4ZWMgSU5TRVJUIHF1ZXJpZXMKZWNobyAiLS0tLS0tLS0tLS0tMS0tLS0tLS0tLS0tLVxuIjsKCiRzdGgxID0gJGRiaC0+cHJlcGFyZSgiSU5TRVJUIElOVE8gcGhwdGVzdCAoYSwgYikgVkFMVUVTICg/LCAnYScpIik7CiRzdGgyID0gJGRiaC0+cHJlcGFyZSgiSU5TRVJUIElOVE8gcGhwdGVzdCAoYSxiKSBWQUxVRVMgKCEsPykiKTsKJHN0aDMgPSAkZGJoLT5wcmVwYXJlKCJJTlNFUlQgSU5UTyBwaHB0ZXN0IChhLGIsY2MpIFZBTFVFUyAoPywhLCYpIik7CiRzdGg0ID0gJGRiaC0+cHJlcGFyZSgiSU5TRVJUIElOVE8gcGhwdGVzdCAoYSwgYikgVkFMVUVTICg3MiwgJ2RpcmVjdCcpIik7CnByaW50ICJzdGgxLHN0aDIsc3RoMyxzdGg0IGNyZWF0ZWRcbiI7CnByaW50ICdzdGgxOiA/IGFzIHBhcmFtLCBwYXNzaW5nIGFzIGFycmF5Li4uICc7CmlmICgoJHJlcyA9ICRkYmgtPmV4ZWN1dGUoJHN0aDEsIGFycmF5KDcyKSkpID09PSBEQl9PSykgewogICAgcHJpbnQgInN0aDEgZXhlY3V0ZWRcbiI7Cn0gZWxzZSB7CiAgICBwcmludCAic3RoMSBmYWlsZWRcbiI7Cn0KCnByaW50ICdzdGgyOiAhIGFuZCA/IGFzIHBhcmFtcywgcGFzc2luZyBhcyBhcnJheS4uLiAnOwppZiAoKCRyZXMgPSAkZGJoLT5leGVjdXRlKCRzdGgyLCBhcnJheSg3MiwgInRoYXQncyByaWdodCIpKSkgPT09IERCX09LKSB7CiAgICBwcmludCAic3RoMiBleGVjdXRlZFxuIjsKfSBlbHNlIHsKICAgIHByaW50ICJzdGgyIGZhaWxlZFxuIjsKfQoKcHJpbnQgJ3N0aDM6ID8sICEgYW5kICYgYXMgcGFyYW1zLCBwYXNzaW5nIGFzIGFycmF5Li4uICc7CnN3aXRjaCAoJGRiaC0+cGhwdHlwZSkgewogICAgY2FzZSAnbXNxbCc6CiAgICAgICAgJHJlcyA9ICRkYmgtPmV4ZWN1dGUoJHN0aDMsIGFycmF5KDcyLCAiJ2l0XFwncyBnb29kJyIsICR0bXBmaWxlKSk7CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgICRyZXMgPSAkZGJoLT5leGVjdXRlKCRzdGgzLCBhcnJheSg3MiwgIidpdCcncyBnb29kJyIsICR0bXBmaWxlKSk7Cn0KaWYgKCRyZXMgPT09IERCX09LKSB7CiAgICBwcmludCAic3RoMyBleGVjdXRlZFxuIjsKfSBlbHNlIHsKICAgIHByaW50ICJzdGgzIGZhaWxlZFxuIjsKfQoKcHJpbnQgJ3N0aDQ6IG5vIHBhcmFtcy4uLiAnOwppZiAoKCRyZXMgPSAkZGJoLT5leGVjdXRlKCRzdGg0KSkgPT09IERCX09LKSB7CiAgICBwcmludCAic3RoNCBleGVjdXRlZFxuIjsKfSBlbHNlIHsKICAgIHByaW50ICJzdGg0IGZhaWxlZFxuIjsKfQpwcmludF9yZXN1bHRzKCk7CgoKLy8gMikgT25lIHByZXBhcmVkLCBtdWx0aXBsZSB0aW1lIGV4ZWN1dGVkCmVjaG8gIlxuLS0tLS0tLS0tLS0tMi0tLS0tLS0tLS0tLVxuIjsKCiRkYmgtPnF1ZXJ5KCdERUxFVEUgRlJPTSBwaHB0ZXN0Jyk7CiRzdGggPSAkZGJoLT5wcmVwYXJlKCdJTlNFUlQgSU5UTyBwaHB0ZXN0IChhLCBiLCBjYywgZCkgVkFMVUVTICg/LCA/LCAmLCA/KScpOwokZGF0YSA9IGFycmF5KAogICAgMCA9PiBhcnJheSg3MiwgJ3NldDEnLCAkdG1wZmlsZSwgJzEyMzQtNTYtNzgnKSwKICAgIDEgPT4gYXJyYXkoNzIsICdzZXQyJywgJHRtcGZpbGUsIG51bGwpLAogICAgMiA9PiBhcnJheSg3MiwgJ3NldDMnLCAkdG1wZmlsZSwgbnVsbCkKKTsKJHJlcyA9ICRkYmgtPmV4ZWN1dGVNdWx0aXBsZSgkc3RoLCAkZGF0YSk7CnByaW50X3Jlc3VsdHMoKTsKCgovLyAzKSBmcmVlUHJlcGFyZWQoKSB0ZXN0CmVjaG8gIlxuLS0tLS0tLS0tLS0tMy0tLS0tLS0tLS0tLVxuIjsKCmlmICgkZGJoLT5mcmVlUHJlcGFyZWQoJHN0aCkpIHsKICAgIGVjaG8gJ1RSVUUnOwp9IGVsc2UgewogICAgZWNobyAnRkFMU0UnOwp9CmVjaG8gIlxuIjsKaWYgKCRkYmgtPmZyZWVQcmVwYXJlZCg2NjYpKSB7CiAgICBlY2hvICdUUlVFJzsKfSBlbHNlIHsKICAgIGVjaG8gJ0ZBTFNFJzsKfQplY2hvICJcbiI7CgoKLy8gNCkgU0VMRUNUcyB0ZXN0cwplY2hvICJcbi0tLS0tLS0tLS0tLTQtLS0tLS0tLS0tLS1cbiI7CiRzdGgxID0gJGRiaC0+cHJlcGFyZSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGEgPSA/IE9SREVSIEJZIGIiKTsKcHJpbnRfNCgkc3RoMSwgNzIpOwpwcmludF80KCRzdGgxLCA3MSk7CiRzdGgyID0gJGRiaC0+cHJlcGFyZSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0IFdIRVJFIGQgPSA/IE9SREVSIEJZIGIiKTsKcHJpbnRfNCgkc3RoMiwgJzEyMzQtNTYtNzgnKTsKJHN0aDMgPSAkZGJoLT5wcmVwYXJlKCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QgV0hFUkUgY2MgPSAmIE9SREVSIEJZIGIiKTsKcHJpbnRfNCgkc3RoMywgJHRtcGZpbGUpOwoKCi8vIDUpIEFTU09DSUFUSVZFIEFSUkFZIHF1ZXJpZXMKZWNobyAiXG4tLS0tLS0tLS0tLS01LS0tLS0tLS0tLS0tXG4iOwoKJHN0aDUgPSAkZGJoLT5wcmVwYXJlKCdJTlNFUlQgSU5UTyBwaHB0ZXN0IChhLCBiLCBkKSBWQUxVRVMgKD8sID8sID8pJyk7CiRhcnJheSA9IGFycmF5KAogICAgJ2ZvbycgPT4gMTEsCiAgICAnYmFyJyA9PiAndGhyZWUnLAogICAgJ2JheicgPT4gbnVsbCwKKTsKJHJlcyA9ICRkYmgtPmV4ZWN1dGUoJHN0aDUsICRhcnJheSk7CnByaW50ICdpbnNlcnQ6ICcgLiAoJHJlcyA9PT0gREJfT0sgPyAnb2theScgOiAnZXJyb3InKSAuICJcbiI7Cgokc3RoNiA9ICRkYmgtPnByZXBhcmUoJ1NFTEVDVCBhLCBiLCBkIEZST00gcGhwdGVzdCBXSEVSRSBhID0gPycpOwokcmVzID0gJGRiaC0+ZXhlY3V0ZSgkc3RoNiwgYXJyYXkoMTEpKTsKJHJvdyA9ICRyZXMtPmZldGNoUm93KERCX0ZFVENITU9ERV9BU1NPQyk7CnByaW50ICJhID0geyRyb3dbJ2EnXX0sIGIgPSB7JHJvd1snYiddfSwgZCA9ICI7CmlmICgkZGJoLT5waHB0eXBlID09ICdtc3FsJykgewogICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ2QnLCAkcm93KSkgewogICAgICAgICR0eXBlID0gZ2V0dHlwZSgkcm93WydkJ10pOwogICAgICAgIGlmICgkdHlwZSA9PSAnTlVMTCcgfHwgJHJvd1snZCddID09ICcnKSB7CiAgICAgICAgICAgIHByaW50ICJnb3QgZXhwZWN0ZWQgb3V0Y29tZVxuIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdHlwZSA9IGdldHR5cGUoJHJvd1snZCddKTsKICAgICAgICAgICAgcHJpbnQgIlVOLWV4cGVjdGVkIG91dGNvbWU6ICR0eXBlXG4iOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgLy8gaHR0cDovL2J1Z3MucGhwLm5ldC8/aWQ9MzE5NjAKICAgICAgICBwcmludCAiUHJpb3IgdG8gUEhQIDQuMy4xMSBvciA1LjAuNCwgUEhQJ3MgbXNxbCBleHRlbnNpb24gc2lsZW50bHkiCiAgICAgICAgICAgICAgLiAiIGRyb3BwZWQgY29sdW1ucyB3aXRoIG51bGwgdmFsdWVzLiBZb3UgbmVlZCB0byB1cGdyYWRlLlxuIjsKICAgIH0KfSBlbHNlIHsKICAgICR0eXBlID0gZ2V0dHlwZSgkcm93WydkJ10pOwogICAgaWYgKCR0eXBlID09ICdzdHJpbmcnKSB7CiAgICAgICAgcHJpbnQgImdvdCBleHBlY3RlZCBvdXRjb21lXG4iOwogICAgfSBlbHNlIHsKICAgICAgICBwcmludCAiVU4tZXhwZWN0ZWQgb3V0Y29tZTogJHR5cGVcbiI7CiAgICB9Cn0KCi8qKgogKiBBdXRvbWF0aWNhbGx5IGZyZWUgdGhlIHByZXBhcmVkIHN0YXRlbWVudHMgYW5kIHJlc3VsdHMgd2hlbiB0aGUgc2NyaXB0CiAqIHRlcm1pbmF0ZXMKICoKICogQHJldHVybiB2b2lkCiAqLwpmdW5jdGlvbiBteV9zaHV0ZG93bigpIHsKICAgIGdsb2JhbCAkdG1wZmlsZSwgJGRiaCwgJHN0aDEsICRzdGgyLCAkc3RoMywgJHN0aDQsICRzdGg1LCAkc3RoNiwgJHJlczsKCiAgICBzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgICAgICBjYXNlICdpYmFzZSc6CiAgICAgICAgICAgIC8qCiAgICAgICAgICAgICAqIEludGVyYmFzZSBkb2Vzbid0IGFsbG93IGRyb3BwaW5nIHRhYmxlcyB0aGF0IGhhdmUgcmVzdWx0CiAgICAgICAgICAgICAqIHNldHMgc3RpbGwgb3Blbi4KICAgICAgICAgICAgICovCiAgICAgICAgICAgICRkYmgtPmZyZWVQcmVwYXJlZCgkc3RoMSk7CiAgICAgICAgICAgICRkYmgtPmZyZWVQcmVwYXJlZCgkc3RoMik7CiAgICAgICAgICAgICRkYmgtPmZyZWVQcmVwYXJlZCgkc3RoMyk7CiAgICAgICAgICAgICRkYmgtPmZyZWVQcmVwYXJlZCgkc3RoNCk7CiAgICAgICAgICAgICRkYmgtPmZyZWVQcmVwYXJlZCgkc3RoNSk7CiAgICAgICAgICAgICRkYmgtPmZyZWVQcmVwYXJlZCgkc3RoNik7CiAgICAgICAgICAgICRkYmgtPmZyZWVSZXN1bHQoJHJlcy0+cmVzdWx0KTsKICAgICAgICAgICAgYnJlYWs7CiAgICB9CgogICAgJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CiAgICBkcm9wX3RhYmxlKCRkYmgsICdwaHB0ZXN0Jyk7CgogICAgdW5saW5rKCR0bXBmaWxlKTsKfQoKLyoqCiAqIFByaW50IG91dCB0aGUgZGF0YSBpbiB0ZXN0IHRhYmxlCiAqCiAqIEByZXR1cm4gdm9pZAogKi8KZnVuY3Rpb24gcHJpbnRfcmVzdWx0cygpIHsKICAgIGdsb2JhbCAkZGJoOwogICAgcHJpbnQgInJlc3VsdHM6XG4iOwogICAgJHJlcyA9ICRkYmgtPnF1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHBocHRlc3QgV0hFUkUgYSA9IDcyIE9SREVSIEJZIGIiKTsKICAgICRpID0gMDsKICAgIHdoaWxlICgkcm93ID0gJHJlcy0+ZmV0Y2hSb3coREJfRkVUQ0hNT0RFX09SREVSRUQpKSB7CiAgICAgICAgcHJpbnQgJ3wnIC4gaW1wbG9kZSgiIC0gIiwgJHJvdykgLiAifFxuIjsKICAgICAgICAkaSsrOwogICAgfQogICAgaWYgKCEkaSkgewogICAgICAgIHByaW50ICJUaGUgcmVjb3JkcyB3ZXJlIG5vdCBmb3VuZC4gIERpZCB0aGV5IGdldCBpbnNlcnRlZD9cbiI7CiAgICB9Cn0KCi8qKgogKiBFeGVjdXRlIHRoZSBwcmVwYXJlZCBzdGF0ZW1lbnQgYW5kIHByaW50IG91dCB0aGUgZGF0YSBpbiB0aGUgcmVzdWx0CiAqCiAqIEBwYXJhbSByZXNvdXJjZSAgICAgJHN0aCAgIHRoZSBzdGF0ZW1lbnQgaGFuZGxlIHRvIHByb2Nlc3MKICogQHBhcmFtIHN0cmluZ3xhcnJheSAkYmluZCAgdGhlIGRhdGEgdGhhdCB3aWxsIHJlcGxhY2UgdGhlIHBsYWNlaG9sZGVycwogKgogKiBAcmV0dXJuIHZvaWQKICovCmZ1bmN0aW9uIHByaW50XzQoJHN0aCwgJGJpbmQpIHsKICAgIGdsb2JhbCAkZGJoOwogICAgJHJlcyA9ICRkYmgtPmV4ZWN1dGUoJHN0aCwgJGJpbmQpOwogICAgd2hpbGUgKCRyb3cgPSAkcmVzLT5mZXRjaFJvdyhEQl9GRVRDSE1PREVfT1JERVJFRCkpIHsKICAgICAgICBwcmludCAnfCcgLiBpbXBsb2RlKCIgLSAiLCAkcm93KSAuICJ8XG4iOwogICAgfQogICAgZWNobyAifn5cbiI7Cn0K]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/run.cvs</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[IyEgL2Jpbi9zaAoKIyAkSWQ6IHJ1bi5jdnMsdiAxLjMgMjAwNC8wMi8yMCAxODo1Nzo1MSBkYW5pZWxjIEV4cCAkCgojIHZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2CiMgUEVBUiBEQiBURVNUIFNUQVJURVIKIwojICAgVG8gcnVuIGFsbCB0ZXN0czogIC4vcnVuCiMgICBUbyBydW4gb25lIHRlc3Q6ICAgLi9ydW4gPHRlc3QgZmlsZSBuYW1lPgojICAgRXhhbXBsZTogICAgICAgICAgIC4vcnVuIGRiX3BhcnNlZHNuLnBocHQKIwojIEJlZm9yZSBydW5uaW5nIHRoZSB0ZXN0cyB5b3UgbXVzdCBhZGp1c3QgdGhlCiMgZm9sbG93aW5nIHRocmVlIHZhcmlhYmxlczoKCiMgICBUaGUgZnVsbCBwYXRoIHRvIHlvdXIgUEhQIGRpcmVjdG9yeToKICAgIERCX1RFU1RfUEhQX1BBVEg9YzovcHJvZ3JhfjEvcGhwCgojICAgVGhlIG5hbWUgb2YgeW91ciBQSFAgQ0xJIGV4ZWN1dGFibGUKIyAgIChleGFtcGxlcyBwaHAuZXhlLCBwaHAtY2xpLmV4ZSwgY2xpL3BocC5leGUpOgogICAgREJfVEVTVF9QSFBfQ0xJPXBocC5leGUKCiMgICBUaGUgZnVsbCBwYXRoIHRvIHRoZSBwcmVzZW50IGRpcmVjdG9yeQojICAgKG5vdCB1c2luZyAkUFdEIGR1ZSB0byBDeWd3aW4pOgogICAgREJfVEVTVF9ESVI9ZDovcGVhcnRlc3QvcGVhci9EQi90ZXN0cwoKIyBeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgoKCgpURVNUX1BIUF9FWEVDVVRBQkxFPSREQl9URVNUX1BIUF9QQVRILyREQl9URVNUX1BIUF9DTEkKZXhwb3J0IFRFU1RfUEhQX0VYRUNVVEFCTEUKCmlmIFsgJCMgLWd0IDAgXQp0aGVuCiAgICB0ZXN0PSQxCmVsc2UKICAgIHRlc3Q9Ki5waHB0CmZpCgokVEVTVF9QSFBfRVhFQ1VUQUJMRSAkREJfVEVTVF9QSFBfUEFUSC9ydW4tdGVzdHMucGhwICREQl9URVNUX0RJUi8ke3Rlc3R9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/sequences.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgc2VxdWVuY2UgKGFrYSBhdXRvX2luY3JlbWVudCkgbWV0aG9kcwogKgogKiBFeGVjdXRlZCBieSBkcml2ZXIvMDVzZXF1ZW5jZXMucGhwdAogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgJElkOiBzZXF1ZW5jZXMuaW5jLHYgMS4xMSAyMDA1LzAyLzE4IDIyOjM4OjQzIGRhbmllbGMgRXhwICQKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwoKLyoqCiAqIExvY2FsIGVycm9yIGhhbmRsZXIKICovCmZ1bmN0aW9uIGVycm9yX2hhbmRsZXIoJiRvYmopIHsKICAgIHByaW50ICJzZXF1ZW5jZXMuaW5jIGVycm9yX2hhbmRsZXI6XG4gICAgIjsKICAgIHByaW50ICRvYmotPmdldERlYnVnSW5mbygpIC4gIlxuXG4iOwp9Cm9iX2ltcGxpY2l0X2ZsdXNoKHRydWUpOwoKJGRyb3AgPSAkZGJoLT5kcm9wU2VxdWVuY2UoJ3Rlc3QnKTsKaWYgKERCOjppc0Vycm9yKCRkcm9wKSAmJgogICAgJGRyb3AtPmdldENvZGUoKSAhPSBEQl9FUlJPUl9OT1NVQ0hUQUJMRSkKewogICAgcHJpbnQgIkNvdWxkIG5vdCBkcm9wIHNlcXVlbmNlLi4uXG4iOwogICAgcHJpbnQgJGRyb3AtPmdldERlYnVnSW5mbygpIC4gIlxuXG4iOwogICAgaWYgKCRkYmgtPnBocHR5cGUgPT0gJ2liYXNlJyAmJgogICAgICAgICRkcm9wLT5nZXRDb2RlKCkgPT0gREJfRVJST1JfQUNDRVNTX1ZJT0xBVElPTikKICAgIHsKICAgICAgICBwcmludCAiVXNlIHRoaXMgcXVlcnkgdG8gcHJvdmlkZSB0aGUgcGVybWlzc2lvbnMgbmVlZGVkOlxuIjsKICAgICAgICBwcmludCAnICAgZ3JhbnQgYWxsIG9uIFJEQiRHRU5FUkFUT1JTIHRvIDxVU0VSTkFNRT4nOwogICAgfQogICAgZXhpdDsKfQoKLy8gMSkgdGVzdCB0aGF0IHNlcXVlbmNlcyBhcmUgbm90IGNyZWF0ZWQgaWYgIm9uZGVtYW5kIiBpcyBmYWxzZQoKJGUgPSAkZGJoLT5uZXh0SWQoInRlc3QiLCBmYWxzZSk7CmlmIChEQjo6aXNFcnJvcigkZSkgJiYgJGUtPmdldENvZGUoKSA9PSBEQl9FUlJPUl9OT1NVQ0hUQUJMRSkgewogICAgcHJpbnQgImFuIGVycm9yIGlzIHRoZSBwcm9wZXIgcmVzcG9uc2UgaGVyZVxuIjsKfSBlbHNlIHsKICAgIGlmIChEQjo6aXNFcnJvcigkZSkpIHsKICAgICAgICBpZiAoJGRiaC0+cGhwdHlwZSA9PSAnaWJhc2UnICYmICRlLT5nZXRDb2RlKCkgPT0gREJfRVJST1JfU1lOVEFYKSB7CiAgICAgICAgICAgIHByaW50ICJhbiBlcnJvciBpcyB0aGUgcHJvcGVyIHJlc3BvbnNlIGhlcmVcbiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcHJpbnQgInRlc3QgMSkgd2UgZXhwZWN0ZWQgdG8gZ2V0IGJhY2sgJ0RCIEVycm9yOiBubyBzdWNoIHRhYmxlJy5cbiI7CiAgICAgICAgICAgIHByaW50ICJIZXJlIGlzIHRoZSBlcnJvciB3ZSBnb3Q6XG4iOwogICAgICAgICAgICBwcmludCAnQ29kZTogJyAuICRlLT5nZXRDb2RlKCkgLiAiXG4iOwogICAgICAgICAgICBwcmludCAnTWVzc2FnZTogJyAuICRlLT5nZXRNZXNzYWdlKCkgLiAiXG4iOwogICAgICAgICAgICBwcmludCAnRGVidWc6ICcgLiAkZS0+Z2V0RGVidWdJbmZvKCkgLiAiXG5cbiI7CiAgICAgICAgfQogICAgfSBlbHNlIHsKICAgICAgICBwcmludCAidGVzdCAxKSB3ZSBleHBlY3RlZCB0byBnZXQgYmFjayAnREIgRXJyb3I6IG5vIHN1Y2ggdGFibGUnLlxuIjsKICAgICAgICBwcmludCAiQnV0IGFuIGVycm9yIHdhc24ndCBnZW5lcmF0ZWRcblxuIjsKICAgIH0KfQoKLy8gMikgdGVzdCB0aGF0IHRoZSBzZXF1ZW5jZSBpcyBub3QgY3JlYXRlZCBidXQgdGhlIGVycm9yIGlzCi8vIGhhbmRsZWQgYnkgdGhlIGNsYXNzIGVycm9yIGhhbmRsZXIKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1BSSU5ULAogICAgICAgICAgICAgICAgICAgICAgICJhbiBlcnJvciBjb3VnaHQgYnkgdGhlIGVycm9yIGhhbmRsZXIgaXMgZ29vZFxuIik7CiRlID0gJGRiaC0+bmV4dElkKCJ0ZXN0IiwgZmFsc2UpOwppZiAoIURCOjppc0Vycm9yKCRlKSkgewogICAgcHJpbnQgInRlc3QgMikgZmFpbGVkIVxuIjsKfQokZGJoLT5fZGVmYXVsdF9lcnJvcl9tb2RlID0gbnVsbDsKCi8vIDMpIHRlc3QgdGhhdCBzZXF1ZW5jZXMgYXJlIGNyZWF0ZWQgaWYgIm9uZGVtYW5kIiBpcyB0cnVlLCBhbmQgdGhhdAovLyB0d28gc3VjY2Vzc2l2ZSBuZXh0SWRzIHJldHVybiBhZGphY2VudCB2YWx1ZXMKJGEgPSAkZGJoLT5uZXh0SWQoInRlc3QiKTsKJGIgPSAkZGJoLT5uZXh0SWQoInRlc3QiKTsKaWYgKERCOjppc0Vycm9yKCRhKSkgewogICAgcHJpbnQgJ2E6ICcgLiAkYS0+Z2V0RGVidWdJbmZvKCkgLiAiXG5cbiI7Cn0gZWxzZSB7CiAgICBwcmludCAiYT0kYVxuIjsKfQppZiAoREI6OmlzRXJyb3IoJGIpKSB7CiAgICBwcmludCAnYjogJyAuICRiLT5nZXREZWJ1Z0luZm8oKSAuICJcblxuIjsKfSBlbHNlIHsKICAgIHByaW50ICJiPSRiXG4iOwp9CmlmICghREI6OmlzRXJyb3IoJGEpICYmICFEQjo6aXNFcnJvcigkYikpIHsKICAgIHByaW50ICdiLWE9JyAuICgkYi0kYSkgLiAiXG4iOwp9CgovLyA0KSB0ZXN0IHRoYXQgdGhlIHVzZXItc3BlY2lmaWVkIGVycm9yIGhhbmRsZXIgaXMgcmVhbGx5IGRpc2FibGVkCi8vIGR1cmluZyBuZXh0SWQsIHdpdGggcGVyLW9iamVjdCBoYW5kbGVyIGFzIHdlbGwgYXMgZ2xvYmFsIGhhbmRsZXIKJGRiaC0+ZHJvcFNlcXVlbmNlKCJ0ZXN0Iik7CgokZGJoLT5zZXRFcnJvckhhbmRsaW5nKFBFQVJfRVJST1JfQ0FMTEJBQ0ssICdlcnJvcl9oYW5kbGVyJyk7CiRjID0gJGRiaC0+bmV4dElkKCJ0ZXN0Iik7CmlmICghREI6OmlzRXJyb3IoJGMpKSB7CiAgICBwcmludCAiYz0kY1xuIjsKfQokZGJoLT5kcm9wU2VxdWVuY2UoInRlc3QiKTsKJGRiaC0+X2RlZmF1bHRfZXJyb3JfbW9kZSA9IG51bGw7CiRkID0gJGRiaC0+bmV4dElkKCJ0ZXN0Iik7CmlmICghREI6OmlzRXJyb3IoJGQpKSB7CiAgICBwcmludCAiZD0kZFxuIjsKfQoKLy8gNSkgdGVzdCB0aGF0IHRoZSBzZXF1ZW5jZSBpcyBoYW5kbGVkIHJpZ2h0IHdoZW4gdGhlIHRhYmxlIGlzIGVtcHR5CgovLyBCYWNrZW5kIHdpdGggcmVhbCBzZXF1ZW5jZXMgbWF5IGRvbid0IGxpa2UgdGhhdApQRUFSOjpwdXNoRXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CiRkYmgtPnF1ZXJ5KCdERUxFVEUgRlJPTSB0ZXN0X3NlcScpOwpQRUFSOjpwb3BFcnJvckhhbmRsaW5nKCk7CiRlID0gJGRiaC0+bmV4dElEKCd0ZXN0Jyk7CmlmIChEQjo6aXNFcnJvcigkZCkpIHsKICAgIHByaW50ICdlOiAnIC4gJGQtPmdldERlYnVnSW5mbygpIC4gIlxuXG4iOwp9IGVsc2UgewogICAgcHJpbnQgImU9JGRcbiI7Cn0KCi8vIGZpbmFsIGNsZWFuLXVwCiRkYmgtPmRyb3BTZXF1ZW5jZSgidGVzdCIpOwo=]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/simplequery.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgc2ltcGxlUXVlcnkoKSBtZXRob2QKICoKICogRXhlY3V0ZWQgYnkgZHJpdmVyLzAzc2ltcGxlcXVlcnkucGhwdAogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgJElkOiBzaW1wbGVxdWVyeS5pbmMsdiAxLjggMjAwNS8wMi8wMyAwNTo0OTo0NCBkYW5pZWxjIEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBMb2NhbCBlcnJvciBjYWxsYmFjayBoYW5kbGVyCiAqCiAqIERyb3BzIHRoZSBwaHB0ZXN0IHRhYmxlLCBwcmludHMgb3V0IGFuIGVycm9yIG1lc3NhZ2UgYW5kIGtpbGxzIHRoZQogKiBwcm9jZXNzLgogKgogKiBAcGFyYW0gb2JqZWN0ICAkbyAgUEVBUiBlcnJvciBvYmplY3QgYXV0b21hdGljYWxseSBwYXNzZWQgdG8gdGhpcyBtZXRob2QKICogQHJldHVybiB2b2lkCiAqIEBzZWUgUEVBUjo6c2V0RXJyb3JIYW5kbGluZygpCiAqLwpmdW5jdGlvbiBwZSgkbykgewogICAgZ2xvYmFsICRkYmg7CgogICAgJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CiAgICBkcm9wX3RhYmxlKCRkYmgsICdwaHB0ZXN0Jyk7CgogICAgZGllKCRvLT50b1N0cmluZygpKTsKfQoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAncGUnKTsKCgokc3RoID0gJGRiaC0+c2ltcGxlUXVlcnkoIlNFTEVDVCAqIEZST00gcGhwdGVzdCIpOwoKc3dpdGNoICgkZGJoLT5waHB0eXBlKSB7CiAgICBjYXNlICdteXNxbGknOgogICAgICAgIGlmIChpc19hKCRzdGgsICdteXNxbGlfcmVzdWx0JykpIHsKICAgICAgICAgICAgcHJpbnQgInBhc3NlZFxuIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmludCAiUFJPQkxFTVxuIjsKICAgICAgICB9CiAgICAgICAgYnJlYWs7CiAgICBkZWZhdWx0OgogICAgICAgIGlmIChnZXR0eXBlKCRzdGgpID09ICdyZXNvdXJjZScpIHsKICAgICAgICAgICAgcHJpbnQgInBhc3NlZFxuIjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBwcmludCAiUFJPQkxFTVxuIjsKICAgICAgICB9Cn0KCgpzd2l0Y2ggKCRkYmgtPnBocHR5cGUpIHsKICAgIGNhc2UgJ2liYXNlJzoKICAgICAgICAvKgogICAgICAgICAqIEludGVyYmFzZSBkb2Vzbid0IGFsbG93IGRyb3BwaW5nIHRhYmxlcyB0aGF0IGhhdmUgcmVzdWx0CiAgICAgICAgICogc2V0cyBzdGlsbCBvcGVuLgogICAgICAgICAqLwogICAgICAgICRkYmgtPmZyZWVSZXN1bHQoJHN0aCk7CiAgICAgICAgYnJlYWs7Cn0KJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX1JFVFVSTik7CmRyb3BfdGFibGUoJGRiaCwgJ3BocHRlc3QnKTsK]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/skipif.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBBIHRlc3QgdG8gbWFrZSBzdXJlIFBFQVIgREIgY2FuIGJlIGZvdW5kCiAqCiAqIFBIUCB2ZXJzaW9ucyA0IGFuZCA1CiAqCiAqIExJQ0VOU0U6IFRoaXMgc291cmNlIGZpbGUgaXMgc3ViamVjdCB0byB2ZXJzaW9uIDMuMCBvZiB0aGUgUEhQIGxpY2Vuc2UKICogdGhhdCBpcyBhdmFpbGFibGUgdGhyb3VnaCB0aGUgd29ybGQtd2lkZS13ZWIgYXQgdGhlIGZvbGxvd2luZyBVUkk6CiAqIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQuICBJZiB5b3UgZGlkIG5vdCByZWNlaXZlIGEgY29weSBvZgogKiB0aGUgUEhQIExpY2Vuc2UgYW5kIGFyZSB1bmFibGUgdG8gb2J0YWluIGl0IHRocm91Z2ggdGhlIHdlYiwgcGxlYXNlCiAqIHNlbmQgYSBub3RlIHRvIGxpY2Vuc2VAcGhwLm5ldCBzbyB3ZSBjYW4gbWFpbCB5b3UgYSBjb3B5IGltbWVkaWF0ZWx5LgogKgogKiBAY2F0ZWdvcnkgICBEYXRhYmFzZQogKiBAcGFja2FnZSAgICBEQgogKiBAYXV0aG9yICAgICBEYW5pZWwgQ29udmlzc29yIDxkYW5pZWxjQHBocC5uZXQ+CiAqIEBjb3B5cmlnaHQgIDE5OTctMjAwNSBUaGUgUEhQIEdyb3VwCiAqIEBsaWNlbnNlICAgIGh0dHA6Ly93d3cucGhwLm5ldC9saWNlbnNlLzNfMC50eHQgIFBIUCBMaWNlbnNlIDMuMAogKiBAdmVyc2lvbiAgICAkSWQ6IHNraXBpZi5pbmMsdiAxLjIgMjAwNS8wMi8wMyAwNTo0OTo0NCBkYW5pZWxjIEV4cCAkCiAqIEBsaW5rICAgICAgIGh0dHA6Ly9wZWFyLnBocC5uZXQvcGFja2FnZS9EQgogKi8KCi8qKgogKiBTZXQgdXAgdGhlIGluY2x1ZGVfcGF0aCwgZXJyb3JfcmVwb3J0aW5nIGFuZCBQQVRIX1NFUEFSQVRPUgogKi8KcmVxdWlyZV9vbmNlICcuL2luY2x1ZGUuaW5jJzsKCmlmICghaW5jbHVkZV9vbmNlICdEQi5waHAnKSB7CiAgICBwcmludCAnc2tpcCBjb3VsZCBub3QgZmluZCBEQi5waHAnOwp9Cg==]]></data>
	</file>
	<file>
	  <filename>/lib/pear/tests/transactions.inc</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKCi8qKgogKiBUZXN0cyB0aGUgZHJpdmVycycgdHJhbnNhY3Rpb24gaGFuZGxpbmcgbWV0aG9kcwogKgogKiBFeGVjdXRlZCBieSBkcml2ZXIvMTF0cmFuc2FjdGlvbnMucGhwdAogKgogKiBQSFAgdmVyc2lvbnMgNCBhbmQgNQogKgogKiBMSUNFTlNFOiBUaGlzIHNvdXJjZSBmaWxlIGlzIHN1YmplY3QgdG8gdmVyc2lvbiAzLjAgb2YgdGhlIFBIUCBsaWNlbnNlCiAqIHRoYXQgaXMgYXZhaWxhYmxlIHRocm91Z2ggdGhlIHdvcmxkLXdpZGUtd2ViIGF0IHRoZSBmb2xsb3dpbmcgVVJJOgogKiBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0LiAgSWYgeW91IGRpZCBub3QgcmVjZWl2ZSBhIGNvcHkgb2YKICogdGhlIFBIUCBMaWNlbnNlIGFuZCBhcmUgdW5hYmxlIHRvIG9idGFpbiBpdCB0aHJvdWdoIHRoZSB3ZWIsIHBsZWFzZQogKiBzZW5kIGEgbm90ZSB0byBsaWNlbnNlQHBocC5uZXQgc28gd2UgY2FuIG1haWwgeW91IGEgY29weSBpbW1lZGlhdGVseS4KICoKICogQGNhdGVnb3J5ICAgRGF0YWJhc2UKICogQHBhY2thZ2UgICAgREIKICogQGF1dGhvciAgICAgRGFuaWVsIENvbnZpc3NvciA8ZGFuaWVsY0BwaHAubmV0PgogKiBAY29weXJpZ2h0ICAxOTk3LTIwMDUgVGhlIFBIUCBHcm91cAogKiBAbGljZW5zZSAgICBodHRwOi8vd3d3LnBocC5uZXQvbGljZW5zZS8zXzAudHh0ICBQSFAgTGljZW5zZSAzLjAKICogQHZlcnNpb24gICAgJElkOiB0cmFuc2FjdGlvbnMuaW5jLHYgMS4xMCAyMDA3LzAxLzA4IDAwOjE5OjQ4IGFoYXJ2ZXkgRXhwICQKICogQGxpbmsgICAgICAgaHR0cDovL3BlYXIucGhwLm5ldC9wYWNrYWdlL0RCCiAqLwoKLy8gVGVzdGluZyBoZXJlIGR1ZSB0byBza2lwIG5vdCB3b3JraW5nIGN1cnJlbnRseSBpbiBoZWFkCmlmICghJGRiaC0+ZmVhdHVyZXNbJ3RyYW5zYWN0aW9ucyddKSB7CiAgICBkaWUoJ3RoaXMgZHJpdmVyIGRvZXMgbm90IHN1cHBvcnQgdHJhbnNhY3Rpb25zJyk7Cn0KCi8vIFZpZXcgdGhlIHRhYmxlIGZyb20gYSBzZXBhcmF0ZSBjb25uZWN0aW9uIHNvIHdlIGRvbid0IGRpc3R1cmIKLy8gdGhlIHRyYW5zYWN0aW9uLgokZGJoMiA9IERCOjpjb25uZWN0KCRkYmgtPmRzbik7CgpmdW5jdGlvbiBlcnJvcl9oYW5kbGVyKCYkb2JqKSB7CiAgICBwcmludCAiXG4iIC4gJG9iai0+Z2V0RGVidWdJbmZvKCkgLiAiXG4iOwp9CgpmdW5jdGlvbiBkdW1wdGFibGUoJGV4cGVjdGVkKSB7CiAgICBnbG9iYWwgJGRiaCwgJGRiaDI7CiAgICBwcmludCBpbXBsb2RlKCcgJywgJGRiaC0+Z2V0Q29sKCdTRUxFQ1QgYiBGUk9NIHBocHRlc3QnKSk7CgogICAgaWYgKGlzc2V0KCRkYmgtPnRyYW5zYWN0aW9uX29wY291bnQpKSB7CiAgICAgICAgaWYgKCRleHBlY3RlZCA9PSAkZGJoLT50cmFuc2FjdGlvbl9vcGNvdW50KSB7CiAgICAgICAgICAgIHByaW50ICIuICBvcHM9b2tcbiI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcHJpbnQgIi4gIG9wcz0kZGJoLT50cmFuc2FjdGlvbl9vcGNvdW50XG4iOwogICAgICAgIH0KICAgIH0gZWxzZSB7CiAgICAgICAgcHJpbnQgIi4gIG9wcz1va1xuIjsKICAgIH0KfQoKJGRiaC0+c2V0RXJyb3JIYW5kbGluZyhQRUFSX0VSUk9SX0NBTExCQUNLLCAnZXJyb3JfaGFuZGxlcicpOwoKCiRkYmgtPmF1dG9Db21taXQodHJ1ZSk7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUygxLCAnb25lJywgJ09uZScsICcyMDAxLTAyLTE5JykiKTsKCnByaW50ICcxKSBhZnRlciBhdXRvY29tbWl0OiAnOwpkdW1wdGFibGUoMCk7CgokZGJoLT5hdXRvQ29tbWl0KGZhbHNlKTsKJGRiaC0+cXVlcnkoIklOU0VSVCBJTlRPIHBocHRlc3QgVkFMVUVTKDIsICd0d28nLCAnVHdvJywgJzIwMDEtMDItMjAnKSIpOwokZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCBWQUxVRVMoMywgJ3RocmVlJywgJ1RocmVlJywgJzIwMDEtMDItMjEnKSIpOwpwcmludCAnMikgYmVmb3JlIGNvbW1pdDogJzsKZHVtcHRhYmxlKDIpOwoKJGRiaC0+Y29tbWl0KCk7CnByaW50ICczKSBhZnRlciBjb21taXQ6ICc7CmR1bXB0YWJsZSgwKTsKCiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyg0LCAnZm91cicsICdGb3VyJywgJzIwMDEtMDItMjInKSIpOwokZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCBWQUxVRVMoNSwgJ2ZpdmUnLCAnRml2ZScsICcyMDAxLTAyLTIzJykiKTsKcHJpbnQgJzQpIGJlZm9yZSByb2xsYmFjazogJzsKZHVtcHRhYmxlKDIpOwoKJGRiaC0+cm9sbGJhY2soKTsKcHJpbnQgJzUpIGFmdGVyIHJvbGxiYWNrOiAnOwpkdW1wdGFibGUoMCk7CiRkYmgtPnJvbGxiYWNrKCk7CgokZGJoLT5hdXRvQ29tbWl0KHRydWUpOwokZGJoLT5xdWVyeSgiSU5TRVJUIElOVE8gcGhwdGVzdCBWQUxVRVMoNiwgJ3NpeCcsICdTaXgnLCAnMjAwMS0wMi0yNCcpIik7CiRkYmgtPnF1ZXJ5KCJJTlNFUlQgSU5UTyBwaHB0ZXN0IFZBTFVFUyg3LCAnc2V2ZW4nLCAnU2V2ZW4nLCAnMjAwMS0wMi0yNScpIik7CnByaW50ICc2KSBiZWZvcmUgYXV0b2NvbW1pdCtyb2xsYmFjazogJzsKZHVtcHRhYmxlKDApOwoKJGRiaC0+cm9sbGJhY2soKTsKcHJpbnQgJzcpIGFmdGVyIGF1dG9jb21taXQrcm9sbGJhY2s6ICc7CmR1bXB0YWJsZSgwKTsKCnByaW50ICc4KSB0ZXN0aW5nIHRoYXQgc2VsZWN0IGRvZXNuXCd0IGRpc3R1cmJlIG9wY291bnQ6ICc7CiRkYmgtPmF1dG9Db21taXQoZmFsc2UpOwokZGJoLT5zaW1wbGVRdWVyeSgiU0VMRUNUICogRlJPTSBwaHB0ZXN0Iik7CiRkYmgtPnNpbXBsZVF1ZXJ5KCJTRUxFQ1QgYSxjYyBGUk9NIHBocHRlc3QiKTsKJGRiaC0+c2ltcGxlUXVlcnkoIlNFTEVDVCBiLGQgRlJPTSBwaHB0ZXN0Iik7CmlmIChlbXB0eSgkZGJoLT50cmFuc2FjdGlvbl9vcGNvdW50KSkgewogICAgcHJpbnQgIm9rXG4iOwp9IGVsc2UgewogICAgcHJpbnQgImZhaWxlZCAoY291bnQ9JGRiaC0+dHJhbnNhY3Rpb25fb3Bjb3VudClcbiI7Cn0K]]></data>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgppZiAoIWlzc2V0KCRnQ21zKSkgZXhpdDsKCiRkYiA9JiAkZ0Ntcy0+R2V0RGIoKTsKCi8vIG15c3FsLXNwZWNpZmljLCBidXQgaWdub3JlZCBieSBvdGhlciBkYXRhYmFzZQokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKJGRpY3QgPSBOZXdEYXRhRGljdGlvbmFyeSgkZGIpOwoKLy8gdGFibGUgc2NoZW1hIGRlc2NyaXB0aW9uCiRmbGRzID0gIgoJbWFwX2lkIEkgQVVUTyBLRVksCiAgICAgICAgbmFtZSBDKDgwKSBOT1ROVUxMLAoJZGVzY3JpcHRpb24gWCwKICAgICAgICBjZW50ZXJfbGF0IEMoNTApLAogICAgICAgIGNlbnRlcl9sb24gQyg1MCksCiAgICAgICAgb3duZXJfaWQgSSwKICAgICAgICB0eXBlIEMoNTApLAogICAgICAgIHdpZHRoIEMoNTApLAogICAgICAgIGhlaWdodCBDKDUwKSwKICAgICAgICBjb250cm9scyBMLAogICAgICAgIGNvbnRyb2xzX3NpemUgQygxMCksCiAgICAgICAgdHlwZV9jb250cm9scyBMLAogICAgICAgIHNpZGViYXIgTCwKICAgICAgICBkaXJlY3Rpb25zIEwsCiAgICAgICAgem9vbSBDKDEwKSwKICAgICAgICB6b29tX2VuY29tcGFzcyBMLAogICAgICAgIGJvdW5kc19mdWRnZSBGLAogICAgICAgIGluZm9fd2luZG93IEwsCiAgICAgICAgaW5mb190cmlnZ2VyIEMoODApLAogICAgICAgIGNvbWJpbmVfcG9pbnRzIEkxLAogICAgICAgIHBvaW50X2NvbWJpbmVfZnVkZ2UgRiwKICAgICAgICBjb21iaW5lZF9pY29uIEMoMTAwKQoJIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NnZ29vZ2xlbWFwcyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgovL2luZGV4IGZvciBtYXBzCiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVJbmRleFNRTCgnaV9uYW1lJywgY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY2dnb29nbGVtYXBzIiwgJ25hbWUnKTsKCi8vIE1hcmtlcnMKJGZsZHMgPSAiCiAgICAgICAgbWFya2VyX2lkIEkgQVVUTyBLRVksCiAgICAgICAgbWFwX2lkIEksCiAgICAgICAgbmFtZSBDKDgwKSwKICAgICAgICBpbmZvIFgsCiAgICAgICAgYWRkcmVzcyBDKDI1NSksCiAgICAgICAgbGF0IEMoMTAwKSwKICAgICAgICBsb24gQygxMDApLAogICAgICAgIGljb24gQygxMDApCiAgICAgICAgIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NnZ29vZ2xlbWFwc19wb2ludHMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwovLyBjcmVhdGUgYSBzZXF1ZW5jZQoKLy8gQ2FjaGUgCiRmbGRzID0gIgogICAgICAgIGFkZHJlc3MgQygyNTUpIEtFWSBERUZBVUxUICcnLCAKICAgICAgICBsb24gRiwKICAgICAgICBsYXQgRgogICAgICAgICI7CiRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jZ2dvb2dsZW1hcHNfY2FjaGUiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKLy8gSWNvbnMKJGZsZHMgPSAiCiAgICAgICAgaWQgSSBLRVkgQVVUTywKICAgICAgICBuYW1lIEMoMjApIE5PVCBOVUxMLAogICAgICAgIHVybCAgQygyNTUpIE5PVCBOVUxMLAogICAgICAgIGFuY2hvcl94IEksCiAgICAgICAgYW5jaG9yX3kgSSwKICAgICAgICBpbmZvX2FuY2hvcl94IEksCiAgICAgICAgaW5mb19hbmNob3JfeSBJCiAgICAgICAgIjsKJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NnZ29vZ2xlbWFwc19pY29ucyIsICRmbGRzLCAkdGFib3B0YXJyYXkpOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgovLyBDcmVhdGUgc29tZSBvcmlnaW5hbCBpY29ucwokcXVlcnkgPSAnSU5TRVJUIElOVE8gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9jZ2dvb2dsZW1hcHNfaWNvbnMgKG5hbWUsdXJsLCBhbmNob3JfeCwgYW5jaG9yX3kpIFZBTFVFUyAoPyw/LD8sPyknOwokcGF0aCA9IGRpcm5hbWUoX19GSUxFX18pLicvaWNvbnMvJzsKJHVybGJhc2UgPSAnbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pY29ucy8nOwokaWNvbnMgPSBnZXRfbWF0Y2hpbmdfZmlsZXMoJHBhdGgsJ3BuZycpOwpmb3JlYWNoKCAkaWNvbnMgYXMgJG9uZSApCnsKICAkcmVzID0gZ2V0aW1hZ2VzaXplKCRwYXRoLicvJy4kb25lKTsKICBpZiggJHJlcyAhPT0gRkFMU0UgKQogICAgewogICAgICAkbmFtZSA9IHN1YnN0cigkb25lLDAsc3RybGVuKCRvbmUpLTQpOwogICAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lLCR1cmxiYXNlLiRvbmUsKGludCkkcmVzWzBdLzIsKGludCkkcmVzWzFdLzIpKTsKICAgIH0KfQoKIyBTZXR1cCBkZWZhdWx0IG1hcCB0ZW1wbGF0ZQokZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX21hcF90ZW1wbGF0ZS50cGwnKTsKaWYoIGZpbGVfZXhpc3RzKCAkZm4gKSApCiAgewogICAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dHTV9QUkVGX05FV01BUF9URU1QTEFURSwkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFRlbXBsYXRlKCdtYXBfU2FtcGxlJywkdGVtcGxhdGUpOwogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dHTV9QUkVGX0RGTFRNQVBfVEVNUExBVEUsJ1NhbXBsZScpOwogIH0KCiMgUGVybWlzc2lvbnMKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBNYXBzJywnTWFuYWdlIE1hcHMnKTsKJHRoaXMtPkNyZWF0ZVBlcm1pc3Npb24oJ01hbmFnZSBNYXAgTG9jYXRpb25zJywnTWFuYWdlIE1hcCBMb2NhdGlvbnMnKTsKCiMgUHJlZmVyZW5jZXMKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfbWFya2VyJywnZGQtZW5kJyk7Ci8vIEVPRgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0mICR0aGlzLT5HZXREYigpOwoKLy8gcmVtb3ZlIHRoZSBkYXRhYmFzZSB0YWJsZQokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCAkZGIgKTsKCi8vIG1hcHMKJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfY2dnb29nbGVtYXBzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jZ2dvb2dsZW1hcHNfcG9pbnRzIiApOwokZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7Cgokc3FsYXJyYXkgPSAkZGljdC0+RHJvcFRhYmxlU1FMKCBjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jZ2dvb2dsZW1hcHNfY2FjaGUiICk7CiRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX2NnZ29vZ2xlbWFwc19pY29ucyIgKTsKJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKJHRoaXMtPkRlbGV0ZVRlbXBsYXRlKCk7CiR0aGlzLT5SZW1vdmVQcmVmZXJlbmNlKCk7CgokdGhpcy0+UmVtb3ZlUGVybWlzc2lvbignTWFuYWdlIE1hcHMnKTsKJHRoaXMtPlJlbW92ZVBlcm1pc3Npb24oJ01hbmFnZSBNYXAgTG9jYXRpb25zJyk7CgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKJGRiID0mICRnQ21zLT5HZXREYigpOwokdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwokZGljdCA9IE5ld0RhdGFEaWN0aW9uYXJ5KCRkYik7Cgpzd2l0Y2goICRvbGR2ZXJzaW9uICkKICB7CiAgY2FzZSAnMS4wJzoKICBjYXNlICcxLjEnOgogICAgLy8gQ3JlYXRlIHRoZSBpY29ucyB0YWJsZQogICAgJGZsZHMgPSAiCiAgICAgICAgaWQgSSBLRVkgQVVUTywKICAgICAgICBuYW1lIEMoMjApIE5PVCBOVUxMLAogICAgICAgIHVybCAgQygyNTUpIE5PVCBOVUxMLAogICAgICAgIGFuY2hvcl94IEksCiAgICAgICAgYW5jaG9yX3kgSSwKICAgICAgICBpbmZvX2FuY2hvcl94IEksCiAgICAgICAgaW5mb19hbmNob3JfeSBJCiAgICAgICAgIjsKICAgICRzcWxhcnJheSA9ICRkaWN0LT5DcmVhdGVUYWJsZVNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9jZ2dvb2dsZW1hcHNfaWNvbnMiLCAkZmxkcywgJHRhYm9wdGFycmF5KTsKICAgICRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCiAgICAvLyBDcmVhdGUgc29tZSBvcmlnaW5hbCBpY29ucwogICAgJHF1ZXJ5ID0gJ0lOU0VSVCBJTlRPICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfY2dnb29nbGVtYXBzX2ljb25zIChuYW1lLHVybCwgYW5jaG9yX3gsIGFuY2hvcl95KSBWQUxVRVMgKD8sPyw/LD8pJzsKICAgICRwYXRoID0gZGlybmFtZShfX0ZJTEVfXykuJy9pY29ucy8nOwogICAgJHVybGJhc2UgPSAnbW9kdWxlcy8nLiR0aGlzLT5HZXROYW1lKCkuJy9pY29ucy8nOwogICAgJGljb25zID0gZ2V0X21hdGNoaW5nX2ZpbGVzKCRwYXRoLCdwbmcnKTsKICAgIGZvcmVhY2goICRpY29ucyBhcyAkb25lICkKICAgICAgewoJJHJlcyA9IGdldGltYWdlc2l6ZSgkcGF0aC4nLycuJG9uZSk7CglpZiggJHJlcyAhPT0gRkFMU0UgKQoJICB7CgkgICAgJG5hbWUgPSBzdWJzdHIoJG9uZSwwLHN0cmxlbigkb25lKS00KTsKCSAgICAkZGItPkV4ZWN1dGUoJHF1ZXJ5LGFycmF5KCRuYW1lLCR1cmxiYXNlLiRvbmUsKGludCkkcmVzWzBdLzIsKGludCkkcmVzWzFdLzIpKTsKCSAgfQogICAgICB9CgogICAgJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlZmF1bHRfbWFya2VyJywnZGQtZW5kJyk7CgoKICBjYXNlICcxLjInOgogICAgJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwndGVtcGxhdGVzJywnb3JpZ19tYXBfdGVtcGxhdGUudHBsJyk7CiAgICBpZiggZmlsZV9leGlzdHMoICRmbiApICkKICAgICAgewoJJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoICRmbiApOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dHTV9QUkVGX05FV01BUF9URU1QTEFURSwkdGVtcGxhdGUpOwoJJHRoaXMtPlNldFRlbXBsYXRlKCdtYXBfU2FtcGxlJywkdGVtcGxhdGUpOwoJJHRoaXMtPlNldFByZWZlcmVuY2UoQ0dHTV9QUkVGX0RGTFRNQVBfVEVNUExBVEUsJ1NhbXBsZScpOwogICAgICB9CgogIGNhc2UgJzEuNCc6CiAgY2FzZSAnMS40LjEnOgogIGNhc2UgJzEuNC4yJzoKICAgIHsKICAgICAgJHNxbGEgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX2NnZ29vZ2xlbWFwcycsCgkJCQkgICdjb21iaW5lX3BvaW50cyBJMSwgcG9pbnRfY29tYmluZV9mdWRnZSBGLCBjb21iaW5lZF9pY29uIEMoMTAwKScpOwogICAgICAkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhKTsKICAgIH0KICB9CgovLyBFT0YKPz4K]]></data>
	</file>
	<file>
	  <filename>/skeleton.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IENHR29vZ2xlTWFwcyAtIEEgc2ltcGxlIG1vZHVsZSBmb3IgY3JlYXRpbmcgZ29vZ2xlIG1hcHMuCiMgVmVyc2lvbjogMS4wLCBjYWxndXkxMDAwIDxjYWxndXkxMDAwQGhvdG1haWwuY29tPgojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgQ01TIC0gQ01TIE1hZGUgU2ltcGxlIGlzIChjKSAyMDA1IGJ5IFRlZCBLdWxwICh3aXNoeUBjbXNtYWRlc2ltcGxlLm9yZykKIyBUaGlzIHByb2plY3QncyBob21lcGFnZSBpczogaHR0cDovL3d3dy5jbXNtYWRlc2ltcGxlLm9yZwojIFRoZSBtb2R1bGUncyBob21lcGFnZSBpczogaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9za2VsZXRvbi8KIwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgovLyBFT0YKPz4=]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/addmappoint.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2xpdGVyYWx9CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KLyo8IVtDREFUQVsqLwoKdmFyIGljb25zYnluYW1lID0gbmV3IEFycmF5KCk7CnsvbGl0ZXJhbH0Ke2ZvcmVhY2ggZnJvbT0kaWNvbnNieW5hbWUga2V5PSduYW1lJyBpdGVtPSd1cmwnfQppY29uc2J5bmFtZVsneyRuYW1lfSddID0gJy4uL3skdXJsfSc7CnsvZm9yZWFjaH0Ke2xpdGVyYWx9CgpmdW5jdGlvbiBvbnNlbGljb24oKQp7CiAgdmFyIHNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZWxfaWNvbicpOwogIHZhciBpZHggPSBzZWwuc2VsZWN0ZWRJbmRleDsKICB2YXIgdmFsID0gc2VsW2lkeF0udmFsdWU7CgogIHZhciBpbWcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nX2ljb24nKTsKICBpbWcuc3JjID0gaWNvbnNieW5hbWVbdmFsXTsKfQoKZnVuY3Rpb24gb25wb2ludHR5cGUoKQp7CiAgdmFyIHNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb2ludF90eXBlJyk7CiAgdmFyIGlkeCA9IHNlbC5zZWxlY3RlZEluZGV4OwogIHZhciB2YWwgPSBzZWxbaWR4XS52YWx1ZTsKCiAgdmFyIGFkZHIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWRkcicpOwogIHZhciBsYXRsb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbGF0bG9uJyk7CiAgaWYoIHZhbCA9PSAnYWRkcicgKQogICAgewogICAgICBhZGRyLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgICBsYXRsb24uc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgIH0KICBlbHNlCiAgICB7CiAgICAgIGFkZHIuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICAgICAgbGF0bG9uLnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogICAgfQp9CgovKl1dPiAqLwo8L3NjcmlwdD4Key9saXRlcmFsfQoKPGgzPnskdGl0bGV9PC9oMz4KeyRmb3Jtc3RhcnR9eyRoaWRkZW59CjxwIGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgo8L3A+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9uYW1lfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9uYW1lfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaWNvbicpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8c2VsZWN0IGlkPSJzZWxfaWNvbiIgbmFtZT0ieyRhY3Rpb25pZH1pY29uIiBvbmNoYW5nZT0ib25zZWxpY29uKCk7Ij4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRpY29ucyBzZWxlY3RlZD0kc2VsX2ljb259CiAgICA8L3NlbGVjdD4KICAgIDxici8+CiAgICA8aW1nIHN0eWxlPSJtYXJnaW4tdG9wOiAycHg7IiBpZD0iaW1nX2ljb24iIHNyYz0iLi4veyRpY29uc2J5bmFtZS4kc2VsX2ljb259IiBhbHQ9IiIvPgogIDwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pbmZvfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9pbmZvfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5mb19hZGRyZXNzX2xhdGxvbmd9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdwb2ludF90eXBlJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgaWQ9InBvaW50X3R5cGUiIG5hbWU9InBvaW50X3R5cGUiIG9uY2hhbmdlPSJvbnBvaW50dHlwZSgpOyI+CiAgICAgIDxvcHRpb24gdmFsdWU9ImFkZHIiPnskbW9kLT5MYW5nKCdhZGRyZXNzJyl9PC9vcHRpb24+CiAgICAgIDxvcHRpb24gdmFsdWU9ImxhdGxvbiIge2lmICFpc3NldCgkcG9pbnRfYWRkcmVzcyl9c2VsZWN0ZWQ9InNlbGVjdGVkInsvaWZ9PnskbW9kLT5MYW5nKCdsYXRsb25nJyl9PC9vcHRpb24+CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2Pgo8ZGl2IGlkPSJhZGRyIiBjbGFzcz0icGFnZW92ZXJmbG93IiB7aWYgIWlzc2V0KCRwb2ludF9hZGRyZXNzKX1zdHlsZT0iZGlzcGxheTogbm9uZTsiey9pZn0+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9hZGRyZXNzfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9hZGRyZXNzfTwvcD4KPC9kaXY+Cgo8ZGl2IGlkPSJsYXRsb24iIHtpZiBpc3NldCgkcG9pbnRfYWRkcmVzcyl9c3R5bGU9ImRpc3BsYXk6IG5vbmU7InsvaWZ9Ij4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2xhdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbGF0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9sb259OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2xvbn08L3A+CjwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzdWJtaXR9eyRjYW5jZWx9PC9wPgo8L2Rpdj4KeyRmb3JtZW5kfQ==]]></data>
	</file>
	<file>
	  <filename>/templates/add_map.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9eyRoaWRkZW59CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRwcm9tcHRfbmFtZX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfbmFtZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZGVzY3JpcHRpb259OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2Rlc2NyaXB0aW9ufTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9jZW50ZXJfbGF0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9jZW50ZXJfbGF0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9jZW50ZXJfbG9ufTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9jZW50ZXJfbG9ufTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF90eXBlfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF90eXBlfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRwcm9tcHRfd2lkdGh9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3dpZHRofTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4qeyRwcm9tcHRfaGVpZ2h0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9oZWlnaHR9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2NvbnRyb2xzfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpbnB1dF9jb250cm9sc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfY29udHJvbHNfc2l6ZX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfY29udHJvbHNfc2l6ZX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfdHlwZV9jb250cm9sc306PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfdHlwZV9jb250cm9sc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfc2lkZWJhcn06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfc2lkZWJhcn08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfZGlyZWN0aW9uc306PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfZGlyZWN0aW9uc308L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfem9vbX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfem9vbX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwcm9tcHRfem9vbV9lbmNvbXBhc3N9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X3pvb21fZW5jb21wYXNzfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9pbmZvX3dpbmRvd306PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaW5mb193aW5kb3d9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcHJvbXB0X2luZm9fdHJpZ2dlcn06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW5wdXRfaW5mb190cmlnZ2VyfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnY29tYmluZV9wb2ludHMnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPHNlbGVjdCBuYW1lPSJ7JGFjdGlvbmlkfWNvbWJpbmVfcG9pbnRzIj4KICAgICAge2NnZV95ZXNub19vcHRpb25zIHNlbGVjdGVkPSRjb21iaW5lX3BvaW50c30KICAgIDwvc2VsZWN0PgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX2NvbWJpbmVfcG9pbnRzJyl9CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ3BvaW50X2NvbWJpbmVfZnVkZ2UnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9cG9pbnRfY29tYmluZV9mdWRnZSIgdmFsdWU9InskcG9pbnRfY29tYmluZV9mdWRnZXxudW1iZXJfZm9ybWF0Ojh9IiBzaXplPSIxMCIgbWF4bGVuZ3RoPSIxMCIvPgogICAgPGJyLz4KICAgIHskbW9kLT5MYW5nKCdpbmZvX3BvaW50X2NvbWJpbmVfZnVkZ2UnKX0KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2NvbWJpbmVkX3BvaW50c19pY29uJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxzZWxlY3QgbmFtZT0ieyRhY3Rpb25pZH1jb21iaW5lZF9pY29uIj4KICAgICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRhbGxfaWNvbnMgc2VsZWN0ZWQ9JGNvbWJpbmVkX2ljb259CiAgICA8L3NlbGVjdD4KICA8L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fXskY2FuY2VsfTwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_edit_icon.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kLT5MYW5nKCdlZGl0X2ljb24nKX08L2gzPgoKeyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnaWQnKX06Jm5ic3A7eyRpY29uX2RhdGEuaWR9CiAgICB7aWYgIWVtcHR5KCRpY29uX2RhdGEudXJsKX08YnIvPjxpbWcgc3JjPSIuLi97JGljb25fZGF0YS51cmx9IiBhbHQ9IiI+ey9pZn0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCduYW1lJyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfW5hbWUiIHZhbHVlPSJ7JGljb25fZGF0YS5uYW1lfSIgc2l6ZT0iMjAiIG1heGxlbmd0aD0iMjAiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCd1cmwnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9dXJsIiB2YWx1ZT0ieyRpY29uX2RhdGEudXJsfSIgc2l6ZT0iODAiIG1heGxlbmd0aD0iMjU1Ii8+CiAgICA8YnIvPgogICAgeyRtb2QtPkxhbmcoJ2hlbHBfaWNvbl91cmwnKX0KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPiZuYnNwOzwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JG1vZC0+TGFuZygnaGVscF9hbmNob3JfbG9jYXRpb24nKX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdhbmNob3JfeCcpfTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ieyRhY3Rpb25pZH1hbmNob3JfeCIgdmFsdWU9InskaWNvbl9kYXRhLmFuY2hvcl94fSIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIzIi8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG1vZC0+TGFuZygnYW5jaG9yX3knKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9YW5jaG9yX3kiIHZhbHVlPSJ7JGljb25fZGF0YS5hbmNob3JfeX0iIHNpemU9IjMiIG1heGxlbmd0aD0iMyIvPgogIDwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRtb2QtPkxhbmcoJ2luZm9fYW5jaG9yX3gnKX06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPgogICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9InskYWN0aW9uaWR9aW5mb19hbmNob3JfeCIgdmFsdWU9InskaWNvbl9kYXRhLmluZm9fYW5jaG9yX3h9IiBzaXplPSIzIiBtYXhsZW5ndGg9IjMiLz4KICA8L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kLT5MYW5nKCdpbmZvX2FuY2hvcl95Jyl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij4KICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJ7JGFjdGlvbmlkfWluZm9fYW5jaG9yX3kiIHZhbHVlPSJ7JGljb25fZGF0YS5pbmZvX2FuY2hvcl95fSIgc2l6ZT0iMyIgbWF4bGVuZ3RoPSIzIi8+CiAgPC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+CiAgICA8aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJ7JGFjdGlvbmlkfXN1Ym1pdCIgdmFsdWU9InskbW9kLT5MYW5nKCdzdWJtaXQnKX0iLz4KICAgIDxpbnB1dCB0eXBlPSJzdWJtaXQiIG5hbWU9InskYWN0aW9uaWR9Y2FuY2VsIiB2YWx1ZT0ieyRtb2QtPkxhbmcoJ2NhbmNlbCcpfSIvPgogIDwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
	<file>
	  <filename>/templates/admin_icons_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2lmIGlzc2V0KCRpY29ucyl9Cjx0YWJsZSBjbGFzcz0icGFnZXRhYmxlIGNtc19zb3J0YWJsZSB0YWJsZXNvcnRlciI+CiAgPHRoZWFkPgogICAgPHRyPgogICAgICA8dGggd2lkdGg9IjMlIj57JG1vZC0+TGFuZygnaWQnKX08L3RoPgogICAgICA8dGggd2lkdGg9IjMlIiBjbGFzcz0ie2xpdGVyYWx9e3NvcnRlcjogZmFsc2V9ey9saXRlcmFsfSI+Jm5ic3A7PC90aD4KICAgICAgPHRoPnskbW9kLT5MYW5nKCduYW1lJyl9PC90aD4KICAgICAgPHRoIHdpZHRoPSI1JSIgY2xhc3M9IntsaXRlcmFsfXtzb3J0ZXI6IGZhbHNlfXsvbGl0ZXJhbH0iIHN0eWxlPSJtYXJnaW4tbGVmdDogLTIwcHg7Ij57JG1vZC0+TGFuZygnZGVmYXVsdCcpfTwvdGg+CiAgICAgIDx0aCB3aWR0aD0iMiUiIGNsYXNzPSJwYWdlaWNvbiB7bGl0ZXJhbH17c29ydGVyOiBmYWxzZX17L2xpdGVyYWx9IiBzdHlsZT0ibWFyZ2luOiAwOyBwYWRkaW5nLXJpZ2h0OiAycHg7Ij4mbmJzcDs8L3RoPgogICAgICA8dGggd2lkdGg9IjIlIiBjbGFzcz0icGFnZWljb24ge2xpdGVyYWx9e3NvcnRlcjogZmFsc2V9ey9saXRlcmFsfSIgc3R5bGU9Im1hcmdpbjogMDsgcGFkZGluZy1yaWdodDogMnB4OyI+Jm5ic3A7PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kaWNvbnMgaXRlbT0nb25lJ30KICAgIDx0cj4KICAgICAgPHRkPjxhIGhyZWY9Inskb25lLmVkaXRfdXJsfSIgdGl0bGU9InskbW9kLT5MYW5nKCdlZGl0X2ljb24nKX0iPnskb25lLmlkfTwvdGQ+CiAgICAgIDx0ZCBoYWxpZ249InJpZ2h0Ij48aW1nIHNyYz0iLi4veyRvbmUudXJsfSIgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBhbHQ9IiIvPjwvdGQ+CiAgICAgIDx0ZD48YSBocmVmPSJ7JG9uZS5lZGl0X3VybH0iIHRpdGxlPSJ7JG1vZC0+TGFuZygnZWRpdF9pY29uJyl9Ij57JG9uZS5uYW1lfTwvdGQ+CiAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIj4KICAgICAgIHtpZiAhaXNzZXQoJG9uZS5kZWZhdWx0X3VybCl9CiAgICAgICAgIHtjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vdHJ1ZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdkZWZhdWx0Jyl9CiAgICAgICB7ZWxzZX0KICAgICAgICAgPGEgaHJlZj0ieyRvbmUuZGVmYXVsdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ21ha2VfZGVmYXVsdCcpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9mYWxzZS5naWYnIGFsdD0kbW9kLT5MYW5nKCdtYWtlX2RlZmF1bHQnKX08L2E+CiAgICAgICB7L2lmfQogICAgICA8L3RkPgogICAgICA8dGQ+PGEgaHJlZj0ieyRvbmUuZWRpdF91cmx9IiB0aXRsZT0ieyRtb2QtPkxhbmcoJ2VkaXRfaWNvbicpfSI+e2NnaW1hZ2UgaW1hZ2U9J2ljb25zL3N5c3RlbS9lZGl0LmdpZicgYWx0PSRtb2QtPkxhbmcoJ2VkaXQnKX08L2E+PC90ZD4KICAgICAgPHRkPntpZiBpc3NldCgkb25lLmRlZmF1bHRfdXJsKX08YSBocmVmPSJ7JG9uZS5kZWxldGVfdXJsfSIgb25jbGljaz0icmV0dXJuIGNvbmZpcm0oJ3skbW9kLT5MYW5nKCdhc2tfZGVsZXRlX2ljb24nKX0nKTsiIHRpdGxlPSJ7JG1vZC0+TGFuZygnZGVsZXRlX2ljb24nKX0iPntjZ2ltYWdlIGltYWdlPSdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicgYWx0PSRtb2QtPkxhbmcoJ2RlbGV0ZScpfTwvYT57L2lmfTwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZW9wdGlvbnMiPgogICAge21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J0NHR29vZ2xlTWFwcycgYWN0aW9uPSdhZG1pbl9lZGl0X2ljb24nIGltYWdlPSdpY29ucy9zeXN0ZW0vbmV3b2JqZWN0LmdpZicgdGV4dD0kbW9kLT5MYW5nKCdhZGRfaWNvbicpfQogICAge21vZHVsZV9hY3Rpb25fbGluayBtb2R1bGU9J0NHR29vZ2xlTWFwcycgYWN0aW9uPSdhZG1pbl9yZXNldF9pY29ucycgaW1hZ2U9J2ljb25zL3N5c3RlbS9uZXdmb2xkZXIuZ2lmJyB0ZXh0PSRtb2QtPkxhbmcoJ3Jlc2V0X2ljb25zJykgY29uZm1lc3NhZ2U9JG1vZC0+TGFuZygnYXNrX3Jlc2V0X2ljb25zJyl9CiAgPC9wPgo8L2Rpdj4KCnsvaWZ9]]></data>
	</file>
	<file>
	  <filename>/templates/editmappoints.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JGlkdGV4dH08L3RoPgogICAgICA8dGg+eyRuYW1ldGV4dH08L3RoPgogICAgICA8dGg+eyRsb2NhdGlvbnRleHR9PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4KICA8dGJvZHk+CiAge2ZvcmVhY2ggZnJvbT0kcG9pbnRsaXN0IGl0ZW09J3BvaW50J30KICAgIHtjeWNsZSB2YWx1ZXM9J3JvdzEscm93MicgYXNzaWduPSdyb3djbGFzcyd9CiAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICAgICA8dGQ+eyRwb2ludC0+bWFya2VyX2lkfTwvdGQ+CiAgICAgIDx0ZD57JHBvaW50LT5uYW1lfTwvdGQ+CiAgICAgIDx0ZD57aWYgIWVtcHR5KCRwb2ludC0+bGF0KSAmJiAhZW1wdHkoJHBvaW50LT5sb24pfQogICAgICAgICAgICB7JHBvaW50LT5sYXR9LCZuYnNwO3skcG9pbnQtPmxvbn0KICAgICAgICAgIHtlbHNlfQogICAgICAgICAgICB7JHBvaW50LT5hZGRyZXNzfQogICAgICAgICAgey9pZn0KICAgICAgPC90ZD4KICAgICAgPHRkPntpZiAhZW1wdHkoJHBvaW50LT5pY29uKX08aW1nIHNyYz0iLi4veyRwb2ludC0+aWNvbn0iIGFsdD0iIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPnsvaWZ9PC90ZD4KICAgICAgPHRkPnskcG9pbnQtPmVkaXRfbGlua308L3RkPgogICAgICA8dGQ+eyRwb2ludC0+ZGVsZXRlX2xpbmt9PC90ZD4KICAgIDwvdHI+CiAgey9mb3JlYWNofQogIDwvdGJvZHk+CjwvdGFibGU+Cjxici8+CjxwIGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIHskYWRkX2xpbmt9CjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/map.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRnb29nbGVfbWFwX2hlYWRlcn0KCnsqCjwhLS0gbmVjZXNzYXJ5IGZvciBnb29nbGUgbWFwcyBwb2x5bGluZSBkcmF3aW5nIGluIElFIC0tPgp7bGl0ZXJhbH0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4Kdlw6KiB7CiBiZWhhdmlvcjp1cmwoI2RlZmF1bHQjVk1MKTsKfQp7L2xpdGVyYWx9Cjwvc3R5bGU+Cip9Cgo8IS0tIGJlZ2luIGRpc3BsYXkgbWFwIC0tPgo8dGFibGU+CiAgPHRyPgogICAgIDx0ZD57JGdvb2dsZV9tYXB9PC90ZD4KICAgICA8dGQ+eyRnb29nbGVfbWFwX3NpZGViYXJ9PC90ZD4KICA8L3RyPgo8L3RhYmxlPgp7JG1hcF9kZXNjcmlwdGlvbn0KeyRnb29nbGVfbWFwX2pzfQo8IS0tIGVuZCBkaXNwbGF5IG1hcCAtLT4K]]></data>
	</file>
	<file>
	  <filename>/templates/maps_tab.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aD57JGlkdGV4dH08L3RoPgogICAgICA8dGg+eyRuYW1ldGV4dH08L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj4mbmJzcDs8L3RoPgogICAgICA8dGggY2xhc3M9InBhZ2VpY29uIj57JGRlZmF1bHR0ZXh0fTwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICAgIDx0aCBjbGFzcz0icGFnZWljb24iPiZuYnNwOzwvdGg+CiAgICA8L3RyPgogIDwvdGhlYWQ+CiAgPHRib2R5PgogIHtmb3JlYWNoIGZyb209JG1hcGxpc3QgaXRlbT0nbWFwJ30KICAgIHtjeWNsZSB2YWx1ZXM9J3JvdzEscm93MicgYXNzaWduPSdyb3djbGFzcyd9CiAgICA8dHIgY2xhc3M9Inskcm93Y2xhc3N9IiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9aG92ZXInOyIgb25tb3VzZW91dD0idGhpcy5jbGFzc05hbWU9J3skcm93Y2xhc3N9JzsiPgogICAgICA8dGQ+eyRtYXAtPm1hcF9pZH08L3RkPgogICAgICA8dGQ+eyRtYXAtPm5hbWV9PC90ZD4KICAgICAgPHRkPntpZiBpc3NldCgkbWFwLT5wb2ludHNfbGluayl9eyRtYXAtPnBvaW50c19saW5rfXtlbHNlfSZuYnNwO3svaWZ9PC90ZD4KICAgICAgPHRkPntpZiBpc3NldCgkbWFwLT5kZWZhdWx0X2xpbmspfXskbWFwLT5kZWZhdWx0X2xpbmt9e2Vsc2V9Jm5ic3A7ey9pZn08L3RkPgogICAgICA8dGQ+e2lmIGlzc2V0KCRtYXAtPmVkaXRfbGluayl9eyRtYXAtPmVkaXRfbGlua317ZWxzZX0mbmJzcDt7L2lmfTwvdGQ+CiAgICAgIDx0ZD57aWYgaXNzZXQoJG1hcC0+ZGVsZXRlX2xpbmspfXskbWFwLT5kZWxldGVfbGlua317ZWxzZX0mbmJzcDt7L2lmfTwvdGQ+CiAgICA8L3RyPgogIHsvZm9yZWFjaH0KICA8L3Rib2R5Pgo8L3RhYmxlPgoKPHAgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CnskYWRkX2xpbmt9CjwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_map_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyogbWFwIHRlbXBsYXRlICp9CnskZ29vZ2xlX21hcF9oZWFkZXJ9Cgp7Kgo8IS0tIG5lY2Vzc2FyeSBmb3IgZ29vZ2xlIG1hcHMgcG9seWxpbmUgZHJhd2luZyBpbiBJRSAtLT4Ke2xpdGVyYWx9CjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CnZcOiogewogYmVoYXZpb3I6dXJsKCNkZWZhdWx0I1ZNTCk7Cn0Key9saXRlcmFsfQo8L3N0eWxlPgoqfQoKPCEtLSBiZWdpbiBkaXNwbGF5IG1hcCAtLT4KPHRhYmxlPgogIDx0cj4KICAgICA8dGQ+eyRnb29nbGVfbWFwfTwvdGQ+CiAgICAgPHRkPnskZ29vZ2xlX21hcF9zaWRlYmFyfTwvdGQ+CiAgPC90cj4KPC90YWJsZT4KeyRtYXBfZGVzY3JpcHRpb259CnskZ29vZ2xlX21hcF9qc30KPCEtLSBlbmQgZGlzcGxheSBtYXAgLS0+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/prefs_tab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3Jtc3RhcnR9CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHByb21wdF9hcGlrZXl9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGlucHV0X2FwaWtleX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3VibWl0fTwvcD4KPC9kaXY+CnskZm9ybWVuZH0=]]></data>
	</file>
</module>
