<?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>PayPalButtonMaker</name>
	<version>0.6</version>
  <mincmsversion>1.6.5</mincmsversion>
	<help>PGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9DU1MvTWFzdGVyQ1NTLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+PGRpdiBjbGFzcz0iU2ltV3JhcCI+PGIgY2xhc3M9InJib3R0b20iPjxiIGNsYXNzPSJyMSI+PC9iPiA8YiBjbGFzcz0icjIiPjwvYj48YiBjbGFzcz0icjMiPjwvYj4gPGIgY2xhc3M9InI0Ij48L2I+PC9iPgoKPGRpdiBjbGFzcz0iU2ltY29uIj48aDMgY2xhc3M9IkJhY2tMaW5rIj48YSBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgcmVsPSJub2ZvbGxvdyI+Jmx0OyZsdDsgQmFjazwvYT48L2gzPgo8aDM+V2hhdCBEb2VzIFRoaXMgRG8/LS0tIHRoaXMgbmVlZHMgdXBkYXRpbmc8L2gzPgo8cD5NYWtlIGFuZCBtYW5hZ2UgUGF5UGFsIEJ1dHRvbnM8L3A+CgpZb3UgZW5kIHVwIHdpdGggdGhpcy4uLiAKCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgoKCjxici8+PGJyLz4KCjxoMz5HZXQgdGhlIGJ1dHRvbjwvaDM+CnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e2Ntc19tb2R1bGUgbW9kdWxlPVBheVBhbEJ1dHRvbk1ha2VyIE1vZGU9ImRlZmF1bHQiIEJ0bj0iQkxTQnRuIn0gPC9zcGFuPiA8YnIvPjxici8+Cgo8aDM+RG8gc29tZXRoaW5nIG9uIHRoZSByZXR1cm48L2gzPgp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntjbXNfbW9kdWxlIG1vZHVsZT1QYXlQYWxCdXR0b25NYWtlciBNb2RlPSJyZWNlaXZlciIgQnRuPSJCTFNCdG4iIFJVTmFjdGlvbj0iVURUIn0gPC9zcGFuPiA8YnIvPjxici8+Cgo8aDM+VGVzdCB2aWEgdGhlIFBheVBhbCBTYW5kYm94PC9oMz4KdXNlIDxzcGFuIGNsYXNzPSJjb2RlSElHSExJR0hUIj57Y21zX21vZHVsZSBtb2R1bGU9UGF5UGFsQnV0dG9uTWFrZXIgTW9kZT0iZGVmYXVsdCIgQnRuPSJCTFNCdG4iIFNhbmRCb3g9dHJ1ZX0gPC9zcGFuPiA8YnIvPjxici8+Cgo8aDM+T3V0cHV0IHRoZSBGaW5hbCBtZXNzYWdlPC9oMz4KdXNlIDxzcGFuIGNsYXNzPSJjb2RlSElHSExJR0hUIj57JFVwZ3JhZGVNRVNTfTwvc3Bhbj4gYmVsb3cgdGhlICJyZWNlaXZlciIgdGFnIDxici8+PGJyLz4KCgo8aDE+QWxsIG91dHB1dCBpcyBpbiB0aGUgWEhUTUwgZm9ybWF0LCB5b3Ugc2hvdWxkIHdvcmsgaW4gdGhhdC48L2gxPgoKPGJyLz48YnIvPgo8aDQ+UGFyYW1zPC9oND4KPHVsPgo8bGk+PHN0cm9uZz5Nb2RlPSJkZWZhdWx0Ijwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGRlZmF1bHQ8YnIvPnwgcmVjZWl2ZXI8YnIvPjwvbGk+CjxsaT48c3Ryb25nPkJ0bj0iIiA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkKTwvZW0+IDxici8+fCBzZXQgdGhlIGFsaWFzPGJyLz48L2xpPgo8bGk+PHN0cm9uZz5TYW5kQm94PXRydWUgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZmFsc2U8YnIvPjwvbGk+Cgo8bGk+PHN0cm9uZz5SVU5hY3Rpb249IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4KPGxpPjxzdHJvbmc+TGFuZz0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVc2UgQ291bnRyeSBDb2RlcyBUbyBkeW5hbWljYWxseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4KCjwvdWw+Cjxici8+CjxoMj5Db3VudHJ5IENvZGVzPC9oMj4KPGRpdiBjbGFzcz0iY29udHJ5Q29kZXMiPgpBRkdIQU5JU1RBTiAgLSAgPHN0cm9uZz5BRjwvc3Ryb25nPjxici8+QUxBTkQgSVNMQU5EUyAgLSAgPHN0cm9uZz5BWDwvc3Ryb25nPjxici8+QUxCQU5JQSAgLSAgPHN0cm9uZz5BTDwvc3Ryb25nPjxici8+QUxHRVJJQSAgLSAgPHN0cm9uZz5EWjwvc3Ryb25nPjxici8+QU1FUklDQU4gU0FNT0EgIC0gIDxzdHJvbmc+QVM8L3N0cm9uZz48YnIvPkFORE9SUkEgIC0gIDxzdHJvbmc+QUQ8L3N0cm9uZz48YnIvPkFOR09MQSAgLSAgPHN0cm9uZz5BTzwvc3Ryb25nPjxici8+QU5HVUlMTEEgIC0gIDxzdHJvbmc+QUk8L3N0cm9uZz48YnIvPkFOVEFSQ1RJQ0EgIC0gIDxzdHJvbmc+QVE8L3N0cm9uZz48YnIvPkFOVElHVUEgQU5EIEJBUkJVREEgIC0gIDxzdHJvbmc+QUc8L3N0cm9uZz48YnIvPkFSR0VOVElOQSAgLSAgPHN0cm9uZz5BUjwvc3Ryb25nPjxici8+QVJNRU5JQSAgLSAgPHN0cm9uZz5BTTwvc3Ryb25nPjxici8+QVJVQkEgIC0gIDxzdHJvbmc+QVc8L3N0cm9uZz48YnIvPkFVU1RSQUxJQSAgLSAgPHN0cm9uZz5BVTwvc3Ryb25nPjxici8+QVVTVFJJQSAgLSAgPHN0cm9uZz5BVDwvc3Ryb25nPjxici8+QVpFUkJBSUpBTiAgLSAgPHN0cm9uZz5BWjwvc3Ryb25nPjxici8+QkFIQU1BUyAgLSAgPHN0cm9uZz5CUzwvc3Ryb25nPjxici8+QkFIUkFJTiAgLSAgPHN0cm9uZz5CSDwvc3Ryb25nPjxici8+QkFOR0xBREVTSCAgLSAgPHN0cm9uZz5CRDwvc3Ryb25nPjxici8+QkFSQkFET1MgIC0gIDxzdHJvbmc+QkI8L3N0cm9uZz48YnIvPkJFTEFSVVMgIC0gIDxzdHJvbmc+Qlk8L3N0cm9uZz48YnIvPkJFTEdJVU0gIC0gIDxzdHJvbmc+QkU8L3N0cm9uZz48YnIvPkJFTElaRSAgLSAgPHN0cm9uZz5CWjwvc3Ryb25nPjxici8+QkVOSU4gIC0gIDxzdHJvbmc+Qko8L3N0cm9uZz48YnIvPkJFUk1VREEgIC0gIDxzdHJvbmc+Qk08L3N0cm9uZz48YnIvPkJIVVRBTiAgLSAgPHN0cm9uZz5CVDwvc3Ryb25nPjxici8+Qk9MSVZJQSAgLSAgPHN0cm9uZz5CTzwvc3Ryb25nPjxici8+Qk9TTklBIEFORCBIRVJaRUdPVklOQSAgLSAgPHN0cm9uZz5CQTwvc3Ryb25nPjxici8+Qk9UU1dBTkEgIC0gIDxzdHJvbmc+Qlc8L3N0cm9uZz48YnIvPkJPVVZFVCBJU0xBTkQgIC0gIDxzdHJvbmc+QlY8L3N0cm9uZz48YnIvPkJSQVpJTCAgLSAgPHN0cm9uZz5CUjwvc3Ryb25nPjxici8+QlJJVElTSCBJTkRJQU4gT0NFQU4gVEVSUklUT1JZICAtICA8c3Ryb25nPklPPC9zdHJvbmc+PGJyLz5CUlVORUkgREFSVVNTQUxBTSAgLSAgPHN0cm9uZz5CTjwvc3Ryb25nPjxici8+QlVMR0FSSUEgIC0gIDxzdHJvbmc+Qkc8L3N0cm9uZz48YnIvPkJVUktJTkEgRkFTTyAgLSAgPHN0cm9uZz5CRjwvc3Ryb25nPjxici8+QlVSVU5ESSAgLSAgPHN0cm9uZz5CSTwvc3Ryb25nPjxici8+Q0FNQk9ESUEgIC0gIDxzdHJvbmc+S0g8L3N0cm9uZz48YnIvPkNBTUVST09OICAtICA8c3Ryb25nPkNNPC9zdHJvbmc+PGJyLz5DQU5BREEgIC0gIDxzdHJvbmc+Q0E8L3N0cm9uZz48YnIvPkNBUEUgVkVSREUgIC0gIDxzdHJvbmc+Q1Y8L3N0cm9uZz48YnIvPkNBWU1BTiBJU0xBTkRTICAtICA8c3Ryb25nPktZPC9zdHJvbmc+PGJyLz5DRU5UUkFMIEFGUklDQU4gUkVQVUJMSUMgIC0gIDxzdHJvbmc+Q0Y8L3N0cm9uZz48YnIvPkNIQUQgIC0gIDxzdHJvbmc+VEQ8L3N0cm9uZz48YnIvPkNISUxFICAtICA8c3Ryb25nPkNMPC9zdHJvbmc+PGJyLz5DSElOQSAgLSAgPHN0cm9uZz5DTjwvc3Ryb25nPjxici8+Q0hSSVNUTUFTIElTTEFORCAgLSAgPHN0cm9uZz5DWDwvc3Ryb25nPjxici8+Q09DT1MgKEtFRUxJTkcpIElTTEFORFMgIC0gIDxzdHJvbmc+Q0M8L3N0cm9uZz48YnIvPkNPTE9NQklBICAtICA8c3Ryb25nPkNPPC9zdHJvbmc+PGJyLz5DT01PUk9TICAtICA8c3Ryb25nPktNPC9zdHJvbmc+PGJyLz5DT05HTyAgLSAgPHN0cm9uZz5DRzwvc3Ryb25nPjxici8+Q09OR08sIFRIRSBERU1PQ1JBVElDIFJFUFVCTElDIE9GIFRIRSAgLSAgPHN0cm9uZz5DRDwvc3Ryb25nPjxici8+Q09PSyBJU0xBTkRTICAtICA8c3Ryb25nPkNLPC9zdHJvbmc+PGJyLz5DT1NUQSBSSUNBICAtICA8c3Ryb25nPkNSPC9zdHJvbmc+PGJyLz5DT1RFIEQnSVZPSVJFICAtICA8c3Ryb25nPkNJPC9zdHJvbmc+PGJyLz5DUk9BVElBICAtICA8c3Ryb25nPkhSPC9zdHJvbmc+PGJyLz5DVUJBICAtICA8c3Ryb25nPkNVPC9zdHJvbmc+PGJyLz5DWVBSVVMgIC0gIDxzdHJvbmc+Q1k8L3N0cm9uZz48YnIvPkNaRUNIIFJFUFVCTElDICAtICA8c3Ryb25nPkNaPC9zdHJvbmc+PGJyLz5ERU5NQVJLICAtICA8c3Ryb25nPkRLPC9zdHJvbmc+PGJyLz5ESklCT1VUSSAgLSAgPHN0cm9uZz5ESjwvc3Ryb25nPjxici8+RE9NSU5JQ0EgIC0gIDxzdHJvbmc+RE08L3N0cm9uZz48YnIvPkRPTUlOSUNBTiBSRVBVQkxJQyAgLSAgPHN0cm9uZz5ETzwvc3Ryb25nPjxici8+RUNVQURPUiAgLSAgPHN0cm9uZz5FQzwvc3Ryb25nPjxici8+RUdZUFQgIC0gIDxzdHJvbmc+RUc8L3N0cm9uZz48YnIvPkVMIFNBTFZBRE9SICAtICA8c3Ryb25nPlNWPC9zdHJvbmc+PGJyLz5FUVVBVE9SSUFMIEdVSU5FQSAgLSAgPHN0cm9uZz5HUTwvc3Ryb25nPjxici8+RVJJVFJFQSAgLSAgPHN0cm9uZz5FUjwvc3Ryb25nPjxici8+RVNUT05JQSAgLSAgPHN0cm9uZz5FRTwvc3Ryb25nPjxici8+RVRISU9QSUEgIC0gIDxzdHJvbmc+RVQ8L3N0cm9uZz48YnIvPkZBTEtMQU5EIElTTEFORFMgKE1BTFZJTkFTKSAgLSAgPHN0cm9uZz5GSzwvc3Ryb25nPjxici8+RkFST0UgSVNMQU5EUyAgLSAgPHN0cm9uZz5GTzwvc3Ryb25nPjxici8+RklKSSAgLSAgPHN0cm9uZz5GSjwvc3Ryb25nPjxici8+RklOTEFORCAgLSAgPHN0cm9uZz5GSTwvc3Ryb25nPjxici8+RlJBTkNFICAtICA8c3Ryb25nPkZSPC9zdHJvbmc+PGJyLz5GUkVOQ0ggR1VJQU5BICAtICA8c3Ryb25nPkdGPC9zdHJvbmc+PGJyLz5GUkVOQ0ggUE9MWU5FU0lBICAtICA8c3Ryb25nPlBGPC9zdHJvbmc+PGJyLz5GUkVOQ0ggU09VVEhFUk4gVEVSUklUT1JJRVMgIC0gIDxzdHJvbmc+VEY8L3N0cm9uZz48YnIvPkdBQk9OICAtICA8c3Ryb25nPkdBPC9zdHJvbmc+PGJyLz5HQU1CSUEgIC0gIDxzdHJvbmc+R008L3N0cm9uZz48YnIvPkdFT1JHSUEgIC0gIDxzdHJvbmc+R0U8L3N0cm9uZz48YnIvPkdFUk1BTlkgIC0gIDxzdHJvbmc+REU8L3N0cm9uZz48YnIvPkdIQU5BICAtICA8c3Ryb25nPkdIPC9zdHJvbmc+PGJyLz5HSUJSQUxUQVIgIC0gIDxzdHJvbmc+R0k8L3N0cm9uZz48YnIvPkdSRUVDRSAgLSAgPHN0cm9uZz5HUjwvc3Ryb25nPjxici8+R1JFRU5MQU5EICAtICA8c3Ryb25nPkdMPC9zdHJvbmc+PGJyLz5HUkVOQURBICAtICA8c3Ryb25nPkdEPC9zdHJvbmc+PGJyLz5HVUFERUxPVVBFICAtICA8c3Ryb25nPkdQPC9zdHJvbmc+PGJyLz5HVUFNICAtICA8c3Ryb25nPkdVPC9zdHJvbmc+PGJyLz5HVUFURU1BTEEgIC0gIDxzdHJvbmc+R1Q8L3N0cm9uZz48YnIvPkdVRVJOU0VZICAtICA8c3Ryb25nPkdHPC9zdHJvbmc+PGJyLz5HVUlORUEgIC0gIDxzdHJvbmc+R048L3N0cm9uZz48YnIvPkdVSU5FQS1CSVNTQVUgIC0gIDxzdHJvbmc+R1c8L3N0cm9uZz48YnIvPkdVWUFOQSAgLSAgPHN0cm9uZz5HWTwvc3Ryb25nPjxici8+SEFJVEkgIC0gIDxzdHJvbmc+SFQ8L3N0cm9uZz48YnIvPkhFQVJEIElTTEFORCBBTkQgTUNET05BTEQgSVNMQU5EUyAgLSAgPHN0cm9uZz5ITTwvc3Ryb25nPjxici8+SE9MWSBTRUUgKFZBVElDQU4gQ0lUWSBTVEFURSkgIC0gIDxzdHJvbmc+VkE8L3N0cm9uZz48YnIvPkhPTkRVUkFTICAtICA8c3Ryb25nPkhOPC9zdHJvbmc+PGJyLz5IT05HIEtPTkcgIC0gIDxzdHJvbmc+SEs8L3N0cm9uZz48YnIvPkhVTkdBUlkgIC0gIDxzdHJvbmc+SFU8L3N0cm9uZz48YnIvPklDRUxBTkQgIC0gIDxzdHJvbmc+SVM8L3N0cm9uZz48YnIvPklORElBICAtICA8c3Ryb25nPklOPC9zdHJvbmc+PGJyLz5JTkRPTkVTSUEgIC0gIDxzdHJvbmc+SUQ8L3N0cm9uZz48YnIvPklSQU4sIElTTEFNSUMgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+SVI8L3N0cm9uZz48YnIvPklSQVEgIC0gIDxzdHJvbmc+SVE8L3N0cm9uZz48YnIvPklSRUxBTkQgIC0gIDxzdHJvbmc+SUU8L3N0cm9uZz48YnIvPklTTEUgT0YgTUFOICAtICA8c3Ryb25nPklNPC9zdHJvbmc+PGJyLz5JU1JBRUwgIC0gIDxzdHJvbmc+SUw8L3N0cm9uZz48YnIvPklUQUxZICAtICA8c3Ryb25nPklUPC9zdHJvbmc+PGJyLz5KQU1BSUNBICAtICA8c3Ryb25nPkpNPC9zdHJvbmc+PGJyLz5KQVBBTiAgLSAgPHN0cm9uZz5KUDwvc3Ryb25nPjxici8+SkVSU0VZICAtICA8c3Ryb25nPkpFPC9zdHJvbmc+PGJyLz5KT1JEQU4gIC0gIDxzdHJvbmc+Sk88L3N0cm9uZz48YnIvPktBWkFLSFNUQU4gIC0gIDxzdHJvbmc+S1o8L3N0cm9uZz48YnIvPktFTllBICAtICA8c3Ryb25nPktFPC9zdHJvbmc+PGJyLz5LSVJJQkFUSSAgLSAgPHN0cm9uZz5LSTwvc3Ryb25nPjxici8+S09SRUEsIERFTU9DUkFUSUMgUEVPUExFJ1MgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+S1A8L3N0cm9uZz48YnIvPktPUkVBLCBSRVBVQkxJQyBPRiAgLSAgPHN0cm9uZz5LUjwvc3Ryb25nPjxici8+S1VXQUlUICAtICA8c3Ryb25nPktXPC9zdHJvbmc+PGJyLz5LWVJHWVpTVEFOICAtICA8c3Ryb25nPktHPC9zdHJvbmc+PGJyLz5MQU8gUEVPUExFJ1MgREVNT0NSQVRJQyBSRVBVQkxJQyAgLSAgPHN0cm9uZz5MQTwvc3Ryb25nPjxici8+TEFUVklBICAtICA8c3Ryb25nPkxWPC9zdHJvbmc+PGJyLz5MRUJBTk9OICAtICA8c3Ryb25nPkxCPC9zdHJvbmc+PGJyLz5MRVNPVEhPICAtICA8c3Ryb25nPkxTPC9zdHJvbmc+PGJyLz5MSUJFUklBICAtICA8c3Ryb25nPkxSPC9zdHJvbmc+PGJyLz5MSUJZQU4gQVJBQiBKQU1BSElSSVlBICAtICA8c3Ryb25nPkxZPC9zdHJvbmc+PGJyLz5MSUVDSFRFTlNURUlOICAtICA8c3Ryb25nPkxJPC9zdHJvbmc+PGJyLz5MSVRIVUFOSUEgIC0gIDxzdHJvbmc+TFQ8L3N0cm9uZz48YnIvPkxVWEVNQk9VUkcgIC0gIDxzdHJvbmc+TFU8L3N0cm9uZz48YnIvPk1BQ0FPICAtICA8c3Ryb25nPk1PPC9zdHJvbmc+PGJyLz5NQUNFRE9OSUEsIFRIRSBGT1JNRVIgWVVHT1NMQVYgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+TUs8L3N0cm9uZz48YnIvPk1BREFHQVNDQVIgIC0gIDxzdHJvbmc+TUc8L3N0cm9uZz48YnIvPk1BTEFXSSAgLSAgPHN0cm9uZz5NVzwvc3Ryb25nPjxici8+TUFMQVlTSUEgIC0gIDxzdHJvbmc+TVk8L3N0cm9uZz48YnIvPk1BTERJVkVTICAtICA8c3Ryb25nPk1WPC9zdHJvbmc+PGJyLz5NQUxJICAtICA8c3Ryb25nPk1MPC9zdHJvbmc+PGJyLz5NQUxUQSAgLSAgPHN0cm9uZz5NVDwvc3Ryb25nPjxici8+TUFSU0hBTEwgSVNMQU5EUyAgLSAgPHN0cm9uZz5NSDwvc3Ryb25nPjxici8+TUFSVElOSVFVRSAgLSAgPHN0cm9uZz5NUTwvc3Ryb25nPjxici8+TUFVUklUQU5JQSAgLSAgPHN0cm9uZz5NUjwvc3Ryb25nPjxici8+TUFVUklUSVVTICAtICA8c3Ryb25nPk1VPC9zdHJvbmc+PGJyLz5NQVlPVFRFICAtICA8c3Ryb25nPllUPC9zdHJvbmc+PGJyLz5NRVhJQ08gIC0gIDxzdHJvbmc+TVg8L3N0cm9uZz48YnIvPk1JQ1JPTkVTSUEsIEZFREVSQVRFRCBTVEFURVMgT0YgIC0gIDxzdHJvbmc+Rk08L3N0cm9uZz48YnIvPk1PTERPVkEsIFJFUFVCTElDIE9GICAtICA8c3Ryb25nPk1EPC9zdHJvbmc+PGJyLz5NT05BQ08gIC0gIDxzdHJvbmc+TUM8L3N0cm9uZz48YnIvPk1PTkdPTElBICAtICA8c3Ryb25nPk1OPC9zdHJvbmc+PGJyLz5NT05UU0VSUkFUICAtICA8c3Ryb25nPk1TPC9zdHJvbmc+PGJyLz5NT1JPQ0NPICAtICA8c3Ryb25nPk1BPC9zdHJvbmc+PGJyLz5NT1pBTUJJUVVFICAtICA8c3Ryb25nPk1aPC9zdHJvbmc+PGJyLz5NWUFOTUFSICAtICA8c3Ryb25nPk1NPC9zdHJvbmc+PGJyLz5OQU1JQklBICAtICA8c3Ryb25nPk5BPC9zdHJvbmc+PGJyLz5OQVVSVSAgLSAgPHN0cm9uZz5OUjwvc3Ryb25nPjxici8+TkVQQUwgIC0gIDxzdHJvbmc+TlA8L3N0cm9uZz48YnIvPk5FVEhFUkxBTkRTICAtICA8c3Ryb25nPk5MPC9zdHJvbmc+PGJyLz5ORVRIRVJMQU5EUyBBTlRJTExFUyAgLSAgPHN0cm9uZz5BTjwvc3Ryb25nPjxici8+TkVXIENBTEVET05JQSAgLSAgPHN0cm9uZz5OQzwvc3Ryb25nPjxici8+TkVXIFpFQUxBTkQgIC0gIDxzdHJvbmc+Tlo8L3N0cm9uZz48YnIvPk5JQ0FSQUdVQSAgLSAgPHN0cm9uZz5OSTwvc3Ryb25nPjxici8+TklHRVIgIC0gIDxzdHJvbmc+TkU8L3N0cm9uZz48YnIvPk5JR0VSSUEgIC0gIDxzdHJvbmc+Tkc8L3N0cm9uZz48YnIvPk5JVUUgIC0gIDxzdHJvbmc+TlU8L3N0cm9uZz48YnIvPk5PUkZPTEsgSVNMQU5EICAtICA8c3Ryb25nPk5GPC9zdHJvbmc+PGJyLz5OT1JUSEVSTiBNQVJJQU5BIElTTEFORFMgIC0gIDxzdHJvbmc+TVA8L3N0cm9uZz48YnIvPk5PUldBWSAgLSAgPHN0cm9uZz5OTzwvc3Ryb25nPjxici8+T01BTiAgLSAgPHN0cm9uZz5PTTwvc3Ryb25nPjxici8+UEFLSVNUQU4gIC0gIDxzdHJvbmc+UEs8L3N0cm9uZz48YnIvPlBBTEFVICAtICA8c3Ryb25nPlBXPC9zdHJvbmc+PGJyLz5QQUxFU1RJTklBTiBURVJSSVRPUlksIE9DQ1VQSUVEICAtICA8c3Ryb25nPlBTPC9zdHJvbmc+PGJyLz5QQU5BTUEgIC0gIDxzdHJvbmc+UEE8L3N0cm9uZz48YnIvPlBBUFVBIE5FVyBHVUlORUEgIC0gIDxzdHJvbmc+UEc8L3N0cm9uZz48YnIvPlBBUkFHVUFZICAtICA8c3Ryb25nPlBZPC9zdHJvbmc+PGJyLz5QRVJVICAtICA8c3Ryb25nPlBFPC9zdHJvbmc+PGJyLz5QSElMSVBQSU5FUyAgLSAgPHN0cm9uZz5QSDwvc3Ryb25nPjxici8+UElUQ0FJUk4gIC0gIDxzdHJvbmc+UE48L3N0cm9uZz48YnIvPlBPTEFORCAgLSAgPHN0cm9uZz5QTDwvc3Ryb25nPjxici8+UE9SVFVHQUwgIC0gIDxzdHJvbmc+UFQ8L3N0cm9uZz48YnIvPlBVRVJUTyBSSUNPICAtICA8c3Ryb25nPlBSPC9zdHJvbmc+PGJyLz5RQVRBUiAgLSAgPHN0cm9uZz5RQTwvc3Ryb25nPjxici8+UkVVTklPTiAgLSAgPHN0cm9uZz5SRTwvc3Ryb25nPjxici8+Uk9NQU5JQSAgLSAgPHN0cm9uZz5STzwvc3Ryb25nPjxici8+UlVTU0lBTiBGRURFUkFUSU9OICAtICA8c3Ryb25nPlJVPC9zdHJvbmc+PGJyLz5SV0FOREEgIC0gIDxzdHJvbmc+Ulc8L3N0cm9uZz48YnIvPlNBSU5UIEhFTEVOQSAgLSAgPHN0cm9uZz5TSDwvc3Ryb25nPjxici8+U0FJTlQgS0lUVFMgQU5EIE5FVklTICAtICA8c3Ryb25nPktOPC9zdHJvbmc+PGJyLz5TQUlOVCBMVUNJQSAgLSAgPHN0cm9uZz5MQzwvc3Ryb25nPjxici8+U0FJTlQgUElFUlJFIEFORCBNSVFVRUxPTiAgLSAgPHN0cm9uZz5QTTwvc3Ryb25nPjxici8+U0FJTlQgVklOQ0VOVCBBTkQgVEhFIEdSRU5BRElORVMgIC0gIDxzdHJvbmc+VkM8L3N0cm9uZz48YnIvPlNBTU9BICAtICA8c3Ryb25nPldTPC9zdHJvbmc+PGJyLz5TQU4gTUFSSU5PICAtICA8c3Ryb25nPlNNPC9zdHJvbmc+PGJyLz5TQU8gVE9NRSBBTkQgUFJJTkNJUEUgIC0gIDxzdHJvbmc+U1Q8L3N0cm9uZz48YnIvPlNBVURJIEFSQUJJQSAgLSAgPHN0cm9uZz5TQTwvc3Ryb25nPjxici8+U0VORUdBTCAgLSAgPHN0cm9uZz5TTjwvc3Ryb25nPjxici8+U0VSQklBIEFORCBNT05URU5FR1JPICAtICA8c3Ryb25nPkNTPC9zdHJvbmc+PGJyLz5TRVlDSEVMTEVTICAtICA8c3Ryb25nPlNDPC9zdHJvbmc+PGJyLz5TSUVSUkEgTEVPTkUgIC0gIDxzdHJvbmc+U0w8L3N0cm9uZz48YnIvPlNJTkdBUE9SRSAgLSAgPHN0cm9uZz5TRzwvc3Ryb25nPjxici8+U0xPVkFLSUEgIC0gIDxzdHJvbmc+U0s8L3N0cm9uZz48YnIvPlNMT1ZFTklBICAtICA8c3Ryb25nPlNJPC9zdHJvbmc+PGJyLz5TT0xPTU9OIElTTEFORFMgIC0gIDxzdHJvbmc+U0I8L3N0cm9uZz48YnIvPlNPTUFMSUEgIC0gIDxzdHJvbmc+U088L3N0cm9uZz48YnIvPlNPVVRIIEFGUklDQSAgLSAgPHN0cm9uZz5aQTwvc3Ryb25nPjxici8+U09VVEggR0VPUkdJQSBBTkQgVEhFIFNPVVRIIFNBTkRXSUNIIElTTEFORFMgIC0gIDxzdHJvbmc+R1M8L3N0cm9uZz48YnIvPlNQQUlOICAtICA8c3Ryb25nPkVTPC9zdHJvbmc+PGJyLz5TUkkgTEFOS0EgIC0gIDxzdHJvbmc+TEs8L3N0cm9uZz48YnIvPlNVREFOICAtICA8c3Ryb25nPlNEPC9zdHJvbmc+PGJyLz5TVVJJTkFNRSAgLSAgPHN0cm9uZz5TUjwvc3Ryb25nPjxici8+U1ZBTEJBUkQgQU5EIEpBTiBNQVlFTiAgLSAgPHN0cm9uZz5TSjwvc3Ryb25nPjxici8+U1dBWklMQU5EICAtICA8c3Ryb25nPlNaPC9zdHJvbmc+PGJyLz5TV0VERU4gIC0gIDxzdHJvbmc+U0U8L3N0cm9uZz48YnIvPlNXSVRaRVJMQU5EICAtICA8c3Ryb25nPkNIPC9zdHJvbmc+PGJyLz5TWVJJQU4gQVJBQiBSRVBVQkxJQyAgLSAgPHN0cm9uZz5TWTwvc3Ryb25nPjxici8+VEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQSAgLSAgPHN0cm9uZz5UVzwvc3Ryb25nPjxici8+VEFKSUtJU1RBTiAgLSAgPHN0cm9uZz5USjwvc3Ryb25nPjxici8+VEFOWkFOSUEsIFVOSVRFRCBSRVBVQkxJQyBPRiAgLSAgPHN0cm9uZz5UWjwvc3Ryb25nPjxici8+VEhBSUxBTkQgIC0gIDxzdHJvbmc+VEg8L3N0cm9uZz48YnIvPlRJTU9SLUxFU1RFICAtICA8c3Ryb25nPlRMPC9zdHJvbmc+PGJyLz5UT0dPICAtICA8c3Ryb25nPlRHPC9zdHJvbmc+PGJyLz5UT0tFTEFVICAtICA8c3Ryb25nPlRLPC9zdHJvbmc+PGJyLz5UT05HQSAgLSAgPHN0cm9uZz5UTzwvc3Ryb25nPjxici8+VFJJTklEQUQgQU5EIFRPQkFHTyAgLSAgPHN0cm9uZz5UVDwvc3Ryb25nPjxici8+VFVOSVNJQSAgLSAgPHN0cm9uZz5UTjwvc3Ryb25nPjxici8+VFVSS0VZICAtICA8c3Ryb25nPlRSPC9zdHJvbmc+PGJyLz5UVVJLTUVOSVNUQU4gIC0gIDxzdHJvbmc+VE08L3N0cm9uZz48YnIvPlRVUktTIEFORCBDQUlDT1MgSVNMQU5EUyAgLSAgPHN0cm9uZz5UQzwvc3Ryb25nPjxici8+VFVWQUxVICAtICA8c3Ryb25nPlRWPC9zdHJvbmc+PGJyLz5VR0FOREEgIC0gIDxzdHJvbmc+VUc8L3N0cm9uZz48YnIvPlVLUkFJTkUgIC0gIDxzdHJvbmc+VUE8L3N0cm9uZz48YnIvPlVOSVRFRCBBUkFCIEVNSVJBVEVTICAtICA8c3Ryb25nPkFFPC9zdHJvbmc+PGJyLz5VTklURUQgS0lOR0RPTSAgLSAgPHN0cm9uZz5HQjwvc3Ryb25nPjxici8+VU5JVEVEIFNUQVRFUyAgLSAgPHN0cm9uZz5VUzwvc3Ryb25nPjxici8+VU5JVEVEIFNUQVRFUyBNSU5PUiBPVVRMWUlORyBJU0xBTkRTICAtICA8c3Ryb25nPlVNPC9zdHJvbmc+PGJyLz5VUlVHVUFZICAtICA8c3Ryb25nPlVZPC9zdHJvbmc+PGJyLz5VWkJFS0lTVEFOICAtICA8c3Ryb25nPlVaPC9zdHJvbmc+PGJyLz5WQU5VQVRVICAtICA8c3Ryb25nPlZVPC9zdHJvbmc+PGJyLz5WRU5FWlVFTEEgIC0gIDxzdHJvbmc+VkU8L3N0cm9uZz48YnIvPlZJRVQgTkFNICAtICA8c3Ryb25nPlZOPC9zdHJvbmc+PGJyLz5WSVJHSU4gSVNMQU5EUywgQlJJVElTSCAgLSAgPHN0cm9uZz5WRzwvc3Ryb25nPjxici8+VklSR0lOIElTTEFORFMsIFUuUy4gIC0gIDxzdHJvbmc+Vkk8L3N0cm9uZz48YnIvPldBTExJUyBBTkQgRlVUVU5BICAtICA8c3Ryb25nPldGPC9zdHJvbmc+PGJyLz5XRVNURVJOIFNBSEFSQSAgLSAgPHN0cm9uZz5FSDwvc3Ryb25nPjxici8+WUVNRU4gIC0gIDxzdHJvbmc+WUU8L3N0cm9uZz48YnIvPlpBTUJJQSAgLSAgPHN0cm9uZz5aTTwvc3Ryb25nPjxici8+WklNQkFCV0UgIC0gIDxzdHJvbmc+Wlc8L3N0cm9uZz48YnIvPgo8L2Rpdj4KPGgzPlN1cHBvcnQ8L2gzPgo8aDQ+U2NyZWVuY2FzdHMgZm9yIGV4dHJhIGhlbHAgd2lsbCBmYWxsb3ctLS0gb24gdGhlIFRPRE88L2g0Pgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgdmlzaXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9wcGJtIj50aGUgQ01TIEZvcmdlPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzICZsdDs8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4mZ3Q7IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHN0cm9uZz5TdXBwb3J0IG1vcmUgbW9kcyBsaWtlIHRoaXM6PC9zdHJvbmc+PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iODgxNzY3NSI+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPgo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8L2Zvcm0+PGJyLz4KCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+CjwvZGl2ID4KCgo8YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InI0Ij48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPiA8YiBjbGFzcz0icjEiPjwvYj48L2I+Cgo8L2Rpdj4KPGgzPlBhcmFtZXRlcnM8L2gzPjx1bD48bGk+PGVtPihvcHRpb25hbCk8L2VtPiBsYW5nPSJlbl9VUyIgLSBQYXJhbWV0ZXIgaXMgdXNlZCB0byBzcGVjaWZ5IHdoYXQgbGFuZ3VhZ2UgdG8gdXNlIGZvciBkaXNwbGF5IG9uIHRoZSBmcm9udGVuZC4gTm90IGFsbCBtb2R1bGVzIHN1cHBvcnQgb3IgbmVlZCB0aGlzLjwvbGk+PC91bD4=</help>
	<about>PGJyIC8+QXV0aG9yOiBqZXJlbXlCYXNzICZsdDtqZXJlbXliYXNzQGNhYmxlb25lLm5ldCZndDs8YnIgLz48YnIgLz5WZXJzaW9uOiAwLjY8YnIgLz48YnIgLz5DaGFuZ2UgSGlzdG9yeTo8YnIgLz4KPHVsPgogIDxsaT5WZXJzaW9uIDAuNiBCZXRhIHJlbGVhc2UuPC9saT4KPC91bD48YnIgLz4=</about>
	<description>PayPalButtonMaker manages PayPal buttons. It can handle buttons internally; One button can handle limitless products. Secure using time based sha1 encryption; Use Smarty fields to have PayPal access in most mods ie: products, cataloger, Shop Made Simple, Form Builder ect; Fire UTD's, URL's or plug-ins... Simple, flexible!</description>
	<file>
	  <filename>/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/action.default.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CiAvLyR0aGlzLT5BZGRFdmVudEZvcm0oJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpOwovL2lmKCR0aGlzLT5DaGVja0JPT0tJRVVzZXIoKSl7CgpnbG9iYWwgJGdDbXM7CiRjb25maWcgPSYgJGdDbXMtPkdldENvbmZpZygpOyAKIAovLy8vLy8tLS0tLWJ1dHRvbiB2YXJzCgoKLy8vLy8vLS0tLS1Nb2R1bGUgU3VwcG9ydAokRXJyb3JOb3RFbmRtZXM9JHRoaXMtPkxhbmcoJ05vQnV0dG9uJyk7CmlmKCgkcGFyYW1zWydCdG4nXSE9Ik1vZHVsZURvbmF0ZSIpJiYoJHRoaXMtPmNoZWNrQUJUTigkcGFyYW1zWydCdG4nXSk9PXRydWUpKXtleHRyYWN0KCR0aGlzLT5MaXN0QUJUTigkcGFyYW1zWydCdG4nXSkpO31lbHNlaWYoJHBhcmFtc1snQnRuJ109PSJNb2R1bGVEb25hdGUiKXt9ZWxzZXtlY2hvICRFcnJvck5vdEVuZG1lcztyZXR1cm4gO30KCi8vLy8vLy0tLS0tT3B0aW9ucwokbm9fc2hpcHBpbmc9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdub19zaGlwcGluZycsJzAnKTsKLy8vLy8vLS0tLS1hY2NvdW50IHZhcnMKJFNhbmRCb3g9JHBhcmFtc1snU2FuZEJveCddOwppZighaXNzZXQoJHBhcmFtc1snU2FuZEJveCddKXx8JHBhcmFtc1snU2FuZEJveCddPT0nJyl7CgkkU2FuZEJveD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnU2FuZEJveCcsdHJ1ZSk7Cn0KaWYoJFNhbmRCb3ghPScnJiYkU2FuZEJveD09dHJ1ZSl7CiAgICAkYnVzaW5lc3NOYW1lPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdTQU5EQk9YX2J1c2luZXNzTmFtZScsJycpOwogICAgJHNhbmREb21haW49InNhbmRib3guIjsKfWVsc2UgaWYoJFNhbmRCb3ggPT0nJyB8fCAkU2FuZEJveD09ZmFsc2UpewoJJGJ1c2luZXNzTmFtZT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnYnVzaW5lc3NOYW1lJywnJyk7CiAgICAkc2FuZERvbWFpbj0iIjsKfQppZigkYnVzaW5lc3NOYW1lPT0nJyl7ZWNobyAkdGhpcy0+TGFuZygnTm9CaXonKTt9CiRjcHBfcGF5Zmxvd19jb2xvcj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3BwX3BheWZsb3dfY29sb3InLCdGRkZGRkYnKTsKJGNhbmNlbF9yZXR1cm49JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhbmNlbF9yZXR1cm4nLCcnKTsKJGNidD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2J0JywnJyk7CiRjdXN0b209JHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1c3RvbScsJycpOwokaGFuZGxpbmc9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2hhbmRsaW5nJywnJyk7CgoKCgoKJGFkZHJlc3Nfb3ZlcnJpZGU9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2FkZHJlc3Nfb3ZlcnJpZGUnLGZhbHNlKTsKCiRpbWFnZV91cmw9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2ltYWdlX3VybCcsJycpOwokY3VycmVuY3lfY29kZT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VycmVuY3lfY29kZScsJ1VTRCcpOwokcm09JHRoaXMtPkdldFByZWZlcmVuY2UoJ3JtJywnMicpOwokc21hcnR5T249JHRoaXMtPkdldFByZWZlcmVuY2UoJ3NtYXJ0eU9uJywnMCcpOwokY3M9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NzJywwKTsKCgokY3BwX2hlYWRlcmJhY2tfY29sb3I9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJiYWNrX2NvbG9yJywnJyk7CiRjcHBfaGVhZGVyYm9yZGVyX2NvbG9yPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyYm9yZGVyX2NvbG9yJywnJyk7CgoKJGNwcF9oZWFkZXJfaW1hZ2U9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJfaW1hZ2UnLCcnKTsKCmlmKGlzc2V0KCRwYXJhbXNbJ0xhbmcnXSkmJiRwYXJhbXNbJ0xhbmcnXSE9JycpewoJJGxjPSRwYXJhbXNbJ0xhbmcnXTsKfWVsc2V7CgkkbGM9JHRoaXMtPkdldFByZWZlcmVuY2UoJ0xhbmcnLCdlbicpOwkKfQoKCi8vLy8vLy0tLS0tc2VjdXJpdHkgbWVhc3VyZXMKLy8gc2FsdCBhbmQgaXBIYXNoIG1vdmUgCiRCdG5TYWx0ID0gc2hhMSgkaXRlbV9uYW1lKTsKJGlwPSRfU0VSVkVSWydSRU1PVEVfQUREUiddOyAKJGlwVmFyPXN0cl9yZXBsYWNlKCIuIiwgIiIsICRpcCk7CiROdGg9ZGF0ZSgiRyIpOwokSVBoYXNoU3RyID0gc2hhMSgkaXBWYXIpOwokdGhlUkNPREU9JHRoaXMtPkdldFByZWZlcmVuY2UoJ0Zvcm1WYWx1ZScpOwokdGhlUkNPREU9c3Vic3RyKCR0aGVSQ09ERSwxLCROdGgpLiRJUGhhc2hTdHIuJEJ0blNhbHQuc3Vic3RyKCR0aGVSQ09ERSwkTnRoKzEpOwokdGhlS2V5PSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdGb3JtS2V5Jyk7CgppZigkcGFyYW1zWydCdG4nXT09Ik1vZHVsZURvbmF0ZSIpewoJJGJ1c2luZXNzTmFtZT0namVyZW15YmFzc0BjYWJsZW9uZS5uZXQnOwoJJEJ0blR5cGU9J19kb25hdGlvbnMnOwoJaWYoc3Ryc3RyKCRfU0VSVkVSWydIVFRQX0hPU1QnXSwgImxvY2FsaG9zdCIpKXsKCQkkY3BwX2hlYWRlcl9pbWFnZT0iaHR0cHM6Ly9zZWN1cmUuZGlnaXRhbGJhcm4udHYvbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9pbWFnZXMvcHBibURvbmF0ZS5wbmciOwoJfWVsc2V7CgkJJGNwcF9oZWFkZXJfaW1hZ2U9Imh0dHBzOi8vc2VjdXJlLmRpZ2l0YWxiYXJuLnR2L21vZHVsZXMvUGF5UGFsQnV0dG9uTWFrZXIvaW1hZ2VzL3BwYm1Eb25hdGUucG5nIjsJCgl9CgkkQnV0dG9uSW1nPSRjb25maWdbJ3Jvb3RfdXJsJ10uIi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2ltYWdlcy9zdXBwb3J0LnBuZyI7CQp9CgovLy8vLy8tLS0tLWludGVybmFsIG1lYXN1cmVzCi8vIGdldCB1cmwgYW5kIGhvdyB0byBhZGQgcGFyYW0gCiRJbnRlcmFsdXJscyA9ICR0aGlzLT5SZWFsVVJMKCk7CgoJaWYoc3Ryc3RyKCRJbnRlcmFsdXJscywgIj8iKSApeyRtYXJrPScmJzt9ZWxzZXskbWFyaz0nPyc7fQoKaWYoJHNtYXJ0eU9uPT0xKXsKCSRhbW91bnQ9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRhbW91bnQpOwoJJGl0ZW1fbmFtZT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGl0ZW1fbmFtZSk7CgkkY2FuY2VsX3JldHVybj0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGNhbmNlbF9yZXR1cm4pOwoJJGl0ZW1fbnVtYmVyPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaXRlbV9udW1iZXIpOwoJJHF1YW50aXR5PSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkcXVhbnRpdHkpOwoJJGludm9pY2U9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRpbnZvaWNlKTsKCSR0YXhfY2FydD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRheF9jYXJ0KTsKCSR0YXhfcmF0ZT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRheF9yYXRlKTsKCSR0YXg9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0YXgpOwoJJHVuZGVmaW5lZF9xdWFudGl0eT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHVuZGVmaW5lZF9xdWFudGl0eSk7Cgkkd2VpZ2h0X2NhcnQ9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR3ZWlnaHRfY2FydCk7Cgkkd2VpZ2h0X3VuaXQ9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR3ZWlnaHRfdW5pdCk7Cgkkc2hpcHBpbmc9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRzaGlwcGluZyk7Cgkkd2VpZ2h0PSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkd2VpZ2h0KTsKCSRwMz0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHAzKTsKCSR0Mz0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHQzKTsKCSRhMT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGExKTsKCSR0MT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHQxKTsKCSRwMT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHAxKTsKCSRhMj0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGEyKTsKCSR0Mj0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHQyKTsKCSRwMj0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHAyKTsKCSRTcmM9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRTcmMpOwoJJHNydD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHNydCk7Cgkkc3JhPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkc3JhKTsKCSRtb2RpZnk9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRtb2RpZnkpOwoJJHVzcl9tYW5hZ2U9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR1c3JfbWFuYWdlKTsKCSRhZGRyZXNzMT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGFkZHJlc3MxKTsKCSRhZGRyZXNzMj0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGFkZHJlc3MyKTsKCSRjaXR5PSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkY2l0eSk7CgkkY291bnRyeT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGNvdW50cnkpOwoJJGVtYWlsPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkZW1haWwpOwoJJGZpcnN0X25hbWU9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRmaXJzdF9uYW1lKTsKCSRsYXN0X25hbWUgPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbGFzdF9uYW1lKTsKCSRsYyA9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRsYyk7CgkkY2hhcnNldD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGNoYXJzZXQpOwoJJG5pZ2h0X3Bob25lX2E9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRuaWdodF9waG9uZV9hKTsKCSRuaWdodF9waG9uZV9iPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbmlnaHRfcGhvbmVfYik7CgkkbmlnaHRfcGhvbmVfYz0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG5pZ2h0X3Bob25lX2MpOwoJJHN0YXRlPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkc3RhdGUpOwoJJHppcD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHppcCk7CgkkY3VzdG9tPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkY3VzdG9tKTsKCSRoYW5kbGluZz0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGhhbmRsaW5nKTsKfQoKaWYoJHBhcmFtc1snTW9kZSddPT0ncmVjZWl2ZXInKXsKCWlmKGlzc2V0KCRwYXJhbXNbJ0J0biddKSl7CgkJJHRoZUNPREUgPSAgJF9HRVRbJHRoZUtleV07IAoJCWlmICgkdGhlQ09ERSA9PSAkdGhlUkNPREUpewoJCQkKCQkJZXh0cmFjdCgkdGhpcy0+TGlzdEFCVE4oJHBhcmFtc1snQnRuJ10pKTsKCQkJCgkJCSBpZigkcGFyYW1zWydSVU5hY3Rpb24nXT09J1VEVCcpewoJCQkJJHVzZXJ0YWdvcHMgPSYgJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CgkJCQkkdXNlcnRhZ29wcy0+Q2FsbFVzZXJUYWcoJFRoZUFjdGlvbiwgJFRoZVBhcmFtcyk7CgkJCSB9ZWxzZWlmKCRwYXJhbXNbJ1JVTmFjdGlvbiddPT0nVVJMJyl7CgkJCQkgaW5jbHVkZSgkVGhlQWN0aW9uKTsKCQkJIH0KCQkJLy9NYWlsUm91dGUoKTsKCQkJCgkJCSRnQ21zLT5zbWFydHktPmFzc2lnbignVXBncmFkZU1FU1MnLCAkVXBncmFkZU1FU1MpOwoJCX0gCgl9ZWxzZXsKCQlpZigkcGFyYW1zWydSVU5hY3Rpb24nXT09J1VEVCcpewoJCQkkdXNlcnRhZ29wcyA9JiAkZ0Ntcy0+R2V0VXNlclRhZ09wZXJhdGlvbnMoKTsKCQkJJHVzZXJ0YWdvcHMtPkNhbGxVc2VyVGFnKCRUaGVBY3Rpb24sICRUaGVQYXJhbXMpOwoJCSB9ZWxzZWlmKCRwYXJhbXNbJ1JVTmFjdGlvbiddPT0nVVJMJyl7CgkJCSBpbmNsdWRlKCRUaGVBY3Rpb24pOwoJCSB9Cgl9CgkJCn1lbHNleyAgCglpZigkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW50ZXJuYWwnKT09JzEnKXsJCgkJaWYoJF9HRVRbJ0J0biddPT0kcGFyYW1zWydCdG4nXSl7CgkJCSR0aGlzLT5pbnRlcm5hbFBvc3QoJHBhcmFtc1snQnRuJ10sJHBhcmFtcyk7CgkJfWVsc2V7CgkJCSRvdXRwdXQgPSAnPGZvcm0gYWN0aW9uPSInLiRJbnRlcmFsdXJscy4kbWFyay4nQnRuPScuJHBhcmFtc1snQnRuJ10uJyIgbWV0aG9kPSJwb3N0Ij4nOwoJCQkkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaW1hZ2UiIHNyYz0iJy4kQnV0dG9uSW1nLiciICBzdHlsZT0iYm9yZGVyOm5vbmU7IiBuYW1lPSJzdWJtaXQiIGFsdD0iIiAvPic7CgkJCSRvdXRwdXQgLj0gJzwvZm9ybT4nOwoJCQllY2hvICRvdXRwdXQ7CgkJfQoJfWVsc2V7CgkJJG91dHB1dCA9ICc8Zm9ybSBhY3Rpb249Imh0dHBzOi8vd3d3LicuJHNhbmREb21haW4uJ3BheXBhbC5jb20vY2dpLWJpbi93ZWJzY3IiIG1ldGhvZD0icG9zdCI+JzsKCQkkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSInLiRCdG5UeXBlLiciIC8+JzsKCQkkc2VjdXJlUmVkaXJlY3Q9Jyc7CgkJaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleScsZmFsc2UpPT10cnVlKXsKCQkJCSRzZWN1cmVSZWRpcmVjdD0kdGhlS2V5LiI9Ii4kdGhlUkNPREU7CgkJfQoJCSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJldHVybiIgdmFsdWU9IicuJHRoaXMtPlJlZGlyZWN0VVJMKCRzZWN1cmVSZWRpcmVjdCkuJyIgLz4nOwoJCSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJtIiB2YWx1ZT0iJy4kcm0uJyIgLz4nOwoJCWlmKGlzc2V0KCRpbWFnZV91cmwpJiYkaW1hZ2VfdXJsIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpbWFnZV91cmwiIHZhbHVlPSInLiRpbWFnZV91cmwuJyIgLz4nOwoJCWlmKGlzc2V0KCRjYnQpJiYkY2J0IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjYnQiIHZhbHVlPSInLiRjYnQuJyIgLz4nOwoJCWlmKGlzc2V0KCRjdXN0b20pJiYkY3VzdG9tIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjdXN0b20iIHZhbHVlPSInLiRjdXN0b20uJyIgLz4nOwoJCWlmKGlzc2V0KCRoYW5kbGluZykmJiRoYW5kbGluZyE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaGFuZGxpbmciIHZhbHVlPSInLiRoYW5kbGluZy4nIiAvPic7CgkJCgkJCgkJaWYoaXNzZXQoJGFkZHJlc3Nfb3ZlcnJpZGUpJiYkYWRkcmVzc19vdmVycmlkZSE9ZmFsc2UpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRkcmVzc19vdmVycmlkZSIgdmFsdWU9IjEiIC8+JzsKCQkKCQkkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJidXNpbmVzcyIgdmFsdWU9IicuJGJ1c2luZXNzTmFtZS4nIiAvPic7CgkJaWYoJG5vX3NoaXBwaW5nIT0nMCcpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibm9fc2hpcHBpbmciIHZhbHVlPSInLiRub19zaGlwcGluZy4nIiAvPic7CgkJaWYoJGNzIT0nMCcpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3MiIHZhbHVlPSIxIiAvPic7CgoJCQoJCWlmKGlzc2V0KCRjdXJyZW5jeV9jb2RlKSYmJGN1cnJlbmN5X2NvZGUhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImN1cnJlbmN5X2NvZGUiIHZhbHVlPSInLiRjdXJyZW5jeV9jb2RlLiciIC8+JzsJCQoJCWlmKGlzc2V0KCRjYW5jZWxfcmV0dXJuKSYmJGNhbmNlbF9yZXR1cm4hPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNhbmNlbF9yZXR1cm4iIHZhbHVlPSInLiRjYW5jZWxfcmV0dXJuLiciIC8+JzsKCgkJCgkJaWYoJEJ0blR5cGU9PSdfeGNsaWNrLXN1YnNjcmlwdGlvbnMnKXsKCQkJaWYoaXNzZXQoJGEzKSYmJGEzIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhMyIgdmFsdWU9IicuJGFtb3VudC4nIiAvPic7CgkJfWVsc2V7CgkJCWlmKGlzc2V0KCRhbW91bnQpCgkJCQkJICYmJGFtb3VudCE9JycKCQkJCQkgJiYkYW1vdW50IT0nMDAuMDAnCgkJCQkJICYmJGFtb3VudCE9JzAuMDAnCgkJCQkJICYmJGFtb3VudCE9Jy4wMCcKCQkJCQkgJiYkYW1vdW50IT0nMDAuJwoJCQkJCSAmJiRhbW91bnQhPScwJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhbW91bnQiIHZhbHVlPSInLiRhbW91bnQuJyIgLz4nOwoJCX0KCQkKCQkKCQlpZihpc3NldCgkaXRlbV9uYW1lKSYmJGl0ZW1fbmFtZSE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXRlbV9uYW1lIiB2YWx1ZT0iJy4kaXRlbV9uYW1lLiciIC8+JzsKCQlpZihpc3NldCgkcXVhbnRpdHkpJiYkcXVhbnRpdHkhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InF1YW50aXR5IiB2YWx1ZT0iJy4kcXVhbnRpdHkuJyIgLz4nOwoJCWlmKGlzc2V0KCRpdGVtX251bWJlcikmJiRpdGVtX251bWJlciE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iaXRlbV9udW1iZXIiIHZhbHVlPSInLiRpdGVtX251bWJlci4nIiAvPic7CgkJaWYoaXNzZXQoJHAzKSYmJHAzIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwMyIgdmFsdWU9IicuJHAzLiciIC8+JzsKCQlpZihpc3NldCgkdDMpJiYkdDMhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InQzIiB2YWx1ZT0iJy4kdDMuJyIgLz4nOwoJCWlmKGlzc2V0KCRhMSkmJiRhMSE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYTEiIHZhbHVlPSInLiRhMS4nIiAvPic7CgkJaWYoaXNzZXQoJHQxKSYmJHQxIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0MSIgdmFsdWU9IicuJHQxLiciIC8+JzsKCQlpZihpc3NldCgkcDEpJiYkcDEhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InAxIiB2YWx1ZT0iJy4kcDEuJyIgLz4nOwoJCWlmKGlzc2V0KCRhMikmJiRhMiE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYTIiIHZhbHVlPSInLiRhMi4nIiAvPic7CgkJaWYoaXNzZXQoJHQyKSYmJHQyIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0MiIgdmFsdWU9IicuJHQyLiciIC8+JzsKCQlpZihpc3NldCgkcDIpJiYkcDIhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InAyIiB2YWx1ZT0iJy4kcDIuJyIgLz4nOwoJCWlmKGlzc2V0KCRTcmMpJiYkU3JjIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJTcmMiIHZhbHVlPSInLiRTcmMuJyIgLz4nOwoJCWlmKGlzc2V0KCRzcnQpJiYkc3J0IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcnQiIHZhbHVlPSInLiRzcnQuJyIgLz4nOwoJCWlmKGlzc2V0KCRzcmEpJiYkc3JhIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzcmEiIHZhbHVlPSInLiRzcmEuJyIgLz4nOwoJCWlmKGlzc2V0KCRtb2RpZnkpJiYkbW9kaWZ5IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtb2RpZnkiIHZhbHVlPSInLiRtb2RpZnkuJyIgLz4nOwoJCWlmKGlzc2V0KCR1c3JfbWFuYWdlKSYmJHVzcl9tYW5hZ2UhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InVzcl9tYW5hZ2UiIHZhbHVlPSInLiR1c3JfbWFuYWdlLiciIC8+JzsKCQlpZihpc3NldCgkaW52b2ljZSkmJiRpbnZvaWNlIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJpbnZvaWNlIiB2YWx1ZT0iJy4kaW52b2ljZS4nIiAvPic7CgkJaWYoaXNzZXQoJHRheF9jYXJ0KSYmJHRheF9jYXJ0IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXhfY2FydCIgdmFsdWU9IicuJHRheF9jYXJ0LiciIC8+JzsKCQlpZihpc3NldCgkdGF4X3JhdGUpJiYkdGF4X3JhdGUhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InRheF9yYXRlIiB2YWx1ZT0iJy4kdGF4X3JhdGUuJyIgLz4nOwoJCWlmKGlzc2V0KCR0YXgpJiYkdGF4IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ0YXgiIHZhbHVlPSInLiR0YXguJyIgLz4nOwoJCWlmKGlzc2V0KCR1bmRlZmluZWRfcXVhbnRpdHkpJiYkdW5kZWZpbmVkX3F1YW50aXR5IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1bmRlZmluZWRfcXVhbnRpdHkiIHZhbHVlPSInLiR1bmRlZmluZWRfcXVhbnRpdHkuJyIgLz4nOwoJCWlmKGlzc2V0KCR3ZWlnaHRfY2FydCkmJiR3ZWlnaHRfY2FydCE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0id2VpZ2h0X2NhcnQiIHZhbHVlPSInLiR3ZWlnaHRfY2FydC4nIiAvPic7CgkJaWYoaXNzZXQoJHdlaWdodF91bml0KSYmJHdlaWdodF91bml0IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ3ZWlnaHRfdW5pdCIgdmFsdWU9IicuJHdlaWdodF91bml0LiciIC8+JzsKCQlpZihpc3NldCgkc2hpcHBpbmcpJiYkc2hpcHBpbmchPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InNoaXBwaW5nIiB2YWx1ZT0iJy4kc2hpcHBpbmcuJyIgLz4nOwoJCWlmKGlzc2V0KCR3ZWlnaHQpJiYkd2VpZ2h0IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ3ZWlnaHQiIHZhbHVlPSInLiR3ZWlnaHQuJyIgLz4nOwoJCWlmKGlzc2V0KCRhZGRyZXNzMSkmJiRhZGRyZXNzMSE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWRkcmVzczEiIHZhbHVlPSInLiRhZGRyZXNzMS4nIiAvPic7CgkJaWYoaXNzZXQoJGFkZHJlc3MyKSYmJGFkZHJlc3MyIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJhZGRyZXNzMiIgdmFsdWU9IicuJGFkZHJlc3MyLiciIC8+JzsKCQlpZihpc3NldCgkY2l0eSkmJiRjaXR5IT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjaXR5IiB2YWx1ZT0iJy4kY2l0eS4nIiAvPic7CgkJaWYoaXNzZXQoJGNvdW50cnkpJiYkY291bnRyeSE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY291bnRyeSIgdmFsdWU9IicuJGNvdW50cnkuJyIgLz4nOwoJCWlmKGlzc2V0KCRlbWFpbCkmJiRlbWFpbCE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZW1haWwiIHZhbHVlPSInLiRlbWFpbC4nIiAvPic7CgkJaWYoaXNzZXQoJGZpcnN0X25hbWUpJiYkZmlyc3RfbmFtZSE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmlyc3RfbmFtZSIgdmFsdWU9IicuJGZpcnN0X25hbWUuJyIgLz4nOwoJCWlmKGlzc2V0KCRsYXN0X25hbWUpJiYkbGFzdF9uYW1lIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJsYXN0X25hbWUiIHZhbHVlPSInLiRsYXN0X25hbWUuJyIgLz4nOwoJCWlmKGlzc2V0KCRjaGFyc2V0KSYmJGNoYXJzZXQhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImNoYXJzZXQiIHZhbHVlPSInLiRjaGFyc2V0LiciIC8+JzsKCQlpZihpc3NldCgkbmlnaHRfcGhvbmVfYSkmJiRuaWdodF9waG9uZV9hIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJuaWdodF9waG9uZV9hIiB2YWx1ZT0iJy4kbmlnaHRfcGhvbmVfYS4nIiAvPic7CgkJaWYoaXNzZXQoJG5pZ2h0X3Bob25lX2IpJiYkbmlnaHRfcGhvbmVfYiE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibmlnaHRfcGhvbmVfYiIgdmFsdWU9IicuJG5pZ2h0X3Bob25lX2IuJyIgLz4nOwoJCWlmKGlzc2V0KCRuaWdodF9waG9uZV9jKSYmJG5pZ2h0X3Bob25lX2MhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im5pZ2h0X3Bob25lX2MiIHZhbHVlPSInLiRuaWdodF9waG9uZV9jLiciIC8+JzsKCQlpZihpc3NldCgkc3RhdGUpJiYkc3RhdGUhPScnKSRvdXRwdXQgLj0gJzxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InN0YXRlIiB2YWx1ZT0iJy4kc3RhdGUuJyIgLz4nOwoJCWlmKGlzc2V0KCR6aXApJiYkemlwIT0nJykkb3V0cHV0IC49ICc8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ6aXAiIHZhbHVlPSInLiR6aXAuJyIgLz4nOwoJCWlmKGlzc2V0KCRjcHBfaGVhZGVyYmFja19jb2xvcikmJiRjcHBfaGVhZGVyYmFja19jb2xvciE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3BwX2hlYWRlcmJhY2tfY29sb3IiIHZhbHVlPSInLiRjcHBfaGVhZGVyYmFja19jb2xvci4nIiAvPic7CgkJaWYoaXNzZXQoJGNwcF9oZWFkZXJib3JkZXJfY29sb3IpJiYkY3BwX2hlYWRlcmJvcmRlcl9jb2xvciE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3BwX2hlYWRlcmJvcmRlcl9jb2xvciIgdmFsdWU9IicuJGNwcF9oZWFkZXJib3JkZXJfY29sb3IuJyIgLz4nOwoJCWlmKGlzc2V0KCRjcHBfcGF5Zmxvd19jb2xvcikmJiRjcHBfcGF5Zmxvd19jb2xvciE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3BwX3BheWZsb3dfY29sb3IiIHZhbHVlPSInLiRjcHBfcGF5Zmxvd19jb2xvci4nIiAvPic7CgkJaWYoaXNzZXQoJGNwcF9oZWFkZXJfaW1hZ2UpJiYkY3BwX2hlYWRlcl9pbWFnZSE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iY3BwX2hlYWRlcl9pbWFnZSIgdmFsdWU9IicuJGNwcF9oZWFkZXJfaW1hZ2UuJyIgLz4nOwoJCWlmKGlzc2V0KCRsYykmJiRsYyE9JycpJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ibGMiIHZhbHVlPSInLiRsYy4nIiAvPic7CgkJJG91dHB1dCAuPSAnPGlucHV0IHR5cGU9ImltYWdlIiBzcmM9IicuJEJ1dHRvbkltZy4nIiBzdHlsZT0iYm9yZGVyOm5vbmU7IiBuYW1lPSJzdWJtaXQiIGFsdD0iIiAvPic7CgkJJG91dHB1dCAuPSAnPGltZyBhbHQ9IiIgc3JjPSJodHRwczovL3d3dy4nLiRzYW5kRG9tYWluLidwYXlwYWwuY29tL2VuX1VTL2kvc2NyL3BpeGVsLmdpZiIgd2lkdGg9IjEiIGhlaWdodD0iMSIgIHN0eWxlPSJib3JkZXI6bm9uZTsiIC8+JzsKCQkkb3V0cHV0IC49ICc8L2Zvcm0+JzsKCQllY2hvICRvdXRwdXQ7Cgl9Cgp9CgoKCgoKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.defaultadmin.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgojCiNUaGUgdGFiIGhlYWRlcnMKIwplY2hvICc8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8vPCFbQ0RBVEFbCmxvYWQgPSBmdW5jdGlvbigpIHsKICAgIGxvYWQuZ2V0U2NyaXB0KCJodHRwOi8vYWpheC5taWNyb3NvZnQuY29tL2FqYXgvalF1ZXJ5L2pxdWVyeS0xLjMuMi5taW4uanMiKTsKICAgIC8vIGRvIHN0dWZmIHdoZW4galF1ZXJ5IGZpbmlzaGVzIGxvYWRpbmcuCiAgICBsb2FkLnRyeVJlYWR5KDApOwp9CmxvYWQuZ2V0U2NyaXB0ID0gZnVuY3Rpb24oZmlsZW5hbWUpIHsKICAgIHZhciBmaWxlcmVmID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0IikKICAgIGZpbGVyZWYuc2V0QXR0cmlidXRlKCJ0eXBlIiwidGV4dC9qYXZhc2NyaXB0IikKICAgIGZpbGVyZWYuc2V0QXR0cmlidXRlKCJzcmMiLCBmaWxlbmFtZSkKICAgIGlmICh0eXBlb2YgZmlsZXJlZiE9InVuZGVmaW5lZCIpCiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImhlYWQiKVswXS5hcHBlbmRDaGlsZChmaWxlcmVmKQp9CmxvYWQudHJ5UmVhZHkgPSBmdW5jdGlvbih0aW1lX2VsYXBzZWQpIHsKICAgIC8qIENvbnRpbnVhbGx5IHBvbGxzIGZvciBqUXVlcnkgbGlicmFyeS4gKi8KICAgIGlmICh0eXBlb2YgJCA9PSAidW5kZWZpbmVkIikgewogICAgICAgIGlmICh0aW1lX2VsYXBzZWQgPD0gNTAwMCkgewogICAgICAgICAgICBzZXRUaW1lb3V0KCJsb2FkLnRyeVJlYWR5KCIgKyAodGltZV9lbGFwc2VkICsgMjAwKSArICIpIiwgMjAwKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBhbGVydCgiVGltZWQgb3V0IHdoaWxlIGxvYWRpbmcgalF1ZXJ5LiIpCiAgICAgICAgfQogICAgfQp9CmlmICh0eXBlb2Yod2luZG93LmpRdWVyeSk9PSJ1bmRlZmluZWQiKXsKCQlsb2FkKCk7ICAgCn0KCQoJCgoJCgkvL11dPgoKPC9zY3JpcHQ+Cgo8bGluayBtZWRpYT0ic2NyZWVuIiBocmVmPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL0NTUy9NYXN0ZXJDU1MuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IiAvPgo8bGluayBtZWRpYT0ic2NyZWVuIiBocmVmPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL0NTUy9mYXJidGFzdGljLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz4KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iaHR0cDovL2Nkbi5qcXVlcnl0b29scy5vcmcvMS4xLjIvdGlueS9qcXVlcnkudG9vbHMubWluLmpzIj48L3NjcmlwdD4KPHNjcmlwdCBzcmM9Imh0dHA6Ly9hamF4Lm1pY3Jvc29mdC5jb20vYWpheC9qcXVlcnkudmFsaWRhdGUvMS42L2pxdWVyeS52YWxpZGF0ZS5taW4uanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL21vZHVsZXMvUGF5UGFsQnV0dG9uTWFrZXIvaW5jbHVkZXMvZmFyYnRhc3RpYy5qcyI+PC9zY3JpcHQ+CjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL21vZHVsZXMvUGF5UGFsQnV0dG9uTWFrZXIvaW5jbHVkZXMvTUVfMS4wMC4wMC5qcyI+PC9zY3JpcHQ+CgoKPGRpdiBpZD0iZGVtb3RpcCI+Jm5ic3A7PC9kaXY+CgonOwoKCgppZiAoRkFMU0UgPT0gZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSl7CgkkdGFiID0gJHBhcmFtc1snYWN0aXZlX3RhYiddOwp9IGVsc2UgewoJJHRhYiA9ICcnOwp9CiR0YWJJcz0wOwppZiAoJHRhYj09ImVtYWlsX3RlbXBsYXRlIil7JHRhYklzPTA7fQppZiAoJHRhYj09ImJ0bm9wdGlvbnMiKXskdGFiSXM9MTt9CmlmICgkdGFiPT0ib3B0aW9ucyIpeyR0YWJJcz0yO30KZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCl7JCgidWwudGFiZXJzIikudGFicygiZGl2LlRhYnBhbmVzID4gZGl2LnBhbmUiLCB7ZWZmZWN0OiAiZmFkZSIsIGZhZGVPdXRTcGVlZDogMjAwLCBpbml0aWFsSW5kZXg6Jy4kdGFiSXMuJywgb25DbGljazpmdW5jdGlvbihldmVudCwgdGFiSW5kZXgpIHtpZiAoJCgiLnBhZ2VtZXNzYWdlIikubGVuZ3RoID4gMCl7JCgiLnBhZ2VtZXNzYWdlIikuY2xvc2VzdCgiLnBhZ2VtY29udGFpbmVyIikuZmFkZU91dCgyMDAwLGZ1bmN0aW9uKCl7JCgiLnBhZ2VtZXNzYWdlIikuY2xvc2VzdCgiLnBhZ2VtY29udGFpbmVyIikucmVtb3ZlKCk7fSk7fX19KTsgfSk7PC9zY3JpcHQ+JzsKIAppZiAoRkFMU0UgPT0gZW1wdHkoJHBhcmFtc1snYWN0aXZlX3RhYiddKSAmJiBGQUxTRSA9PSBlbXB0eSgkcGFyYW1zWyd0YWJfbWVzc2FnZSddKSkgewoJJG1lc3NhZ2UgPSAkdGhpcy0+U2hvd01lc3NhZ2UoJHRoaXMtPkxhbmcoJHBhcmFtc1sndGFiX21lc3NhZ2UnXSkpOwp9IGVsc2UgewoJJG1lc3NhZ2UgPSAnJzsKfQplY2hvICRtZXNzYWdlOwppZiAoJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IENhbGVuZGFyJykpewplY2hvJwo8dWwgY2xhc3M9InRhYmVycyI+Cgk8bGk+PGEgaHJlZj0iI2VtYWlsX3RlbXBsYXRlIj4nLiR0aGlzLT5MYW5nKCdCdG5fbGlzdCcpLic8L2E+PC9saT4KCTxsaT48YSBocmVmPSIjYnRub3B0aW9ucyI+Jy4kdGhpcy0+TGFuZygnQlROb3B0aW9ucycpLic8L2E+PC9saT4KCTxsaT48YSBocmVmPSIjb3B0aW9ucyI+Jy4kdGhpcy0+TGFuZygnQUNUb3B0aW9ucycpLic8L2E+PC9saT4KPC91bD4gCic7Cn0KICAgCmlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCdNb2RpZnkgQ2FsZW5kYXInKSkKICB7CmVjaG8gJzxkaXYgY2xhc3M9IlRhYnBhbmVzIiBpZD0iUFBCTSI+CjxkaXYgY2xhc3M9InBhbmUiPic7CmVjaG8gJzxoMz4nLiR0aGlzLT5MYW5nKCd0aXRsZV9hdmFpbGFibGVfdGVtcGxhdGVzJykuJzwvaDM+JzsKJHRoaXMtPl9BZG1pbkNyZWF0ZVRlbXBsYXRlTGlzdCgkaWQsJHJldHVybmlkLAoJCQkgICdlbWFpbCcsCgkJCSAgJ2RlZmF1bHRfZW1haWxfdGVtcGxhdGVfY29udGVudHMnLAoJCQkgICdlbWFpbF90ZW1wbGF0ZScsCgkJCSAgJ2N1cnJlbnRfZW1haWxfdGVtcGxhdGUnLAoJCQkgICR0aGlzLT5MYW5nKCd0aXRsZV9lbWFpbF90ZW1wbGF0ZScpKTsKZWNobyAnPC9kaXY+CjxkaXYgY2xhc3M9InBhbmUiPic7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fQlROb3B0aW9uc3RhYi5waHAnKTsKZWNobyAnPC9kaXY+CjxkaXYgY2xhc3M9InBhbmUiPic7CiAgICBpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uYWRtaW5fQUNUb3B0aW9uc3RhYi5waHAnKTsKCSAgZWNobyAnPC9kaXY+Cgk8L2Rpdj4nOwp9CgoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4K]]></data>
	</file>
	<file>
	  <filename>/action.deletetemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0NhcnMvCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoICEgJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICkKICB7CiAgICAvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUKICAgIHJldHVybjsKICB9Cmdsb2JhbCAkZ0NtczsKCiAgCiRCS1NldD0kcGFyYW1zWydCS1NldCddOwoKCQkkZGIgPSAmJGdDbXMtPmRiOwoJICAJJHF1ZXJ5ID0gIkRFTEVURSBwLCBwcCAKCQkJRlJPTSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuIEFTIHAgCgkJCUlOTkVSIEpPSU4gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQgQVMgcHAgCgkJCU9OIHAuSUQgPSBwcC5JRCAKCQkJV0hFUkUgcC5CS1NldD0nIi4kQktTZXQuIiciOwoJCSRyZXN1bHQgPSAkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQlpZighJHJlc3VsdCkgewoJCQllY2hvICdFcnJvcjogJy5teXNxbF9lcnJvcigpOwoJCQkkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOwoJCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvciBteXNxbF9lcnJvcigpJyxteXNxbF9lcnJvcigpKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCgkJfWVsc2V7Ci8vICR0aGlzLT5GaXJlRGVidWcoInNhaWQgaXQncyBkb25lIHRoZXJlIiwnZXJyb3InKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCgkJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7CgkJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJywkQktTZXQpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKCQl9CgkJCgkJCgkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCRCS1NldCk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQoJCS8vJHRoaXMtPm15UmVkaXJlY3RUb1RhYigkaWQsICd1cGxvYWRmb3JtX3RlbXBsYXRlJyk7CgkJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQnRuREVMRVRFRCcsICdhY3RpdmVfdGFiJyA9PiAnZW1haWxfdGVtcGxhdGUnKTsKCQkkdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOwo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.description.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmdsb2JhbCAkZ0NtczsKLy8vLy8vLS0tLS1idXR0b24gdmFycwokZGlzPSR0aGlzLT5MYW5nKCRwYXJhbXNbJ0Rlc2NyaXB0aW9uJ10pOwplY2hvICAiPHNwYW4gaWQ9XCJESVNDUlBcIj4iLiRkaXMuIjwvc3Bhbj4iOwpleGl0OwoKCj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.edittemplate.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0NhcnMvCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYoISRnQ21zKWV4aXQoKTsKCgppZighJHRoaXMtPkNoZWNrUGVybWlzc2lvbignTW9kaWZ5IFRlbXBsYXRlcycpICl7CgkvLyB0b2RvLCBwZXJtaXNzaW9ucyBtZXNzYWdlIGhlcmUKCXJldHVybjsKfQoKZWNobyAnPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgpsb2FkID0gZnVuY3Rpb24oKSB7CiAgICBsb2FkLmdldFNjcmlwdCgiLi4vbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9pbmNsdWRlcy9NU18xLjAwLjAwLmpzIik7CiAgICAvLyBkbyBzdHVmZiB3aGVuIGpRdWVyeSBmaW5pc2hlcyBsb2FkaW5nLgogICAgbG9hZC50cnlSZWFkeSgwKTsKfQpsb2FkLmdldFNjcmlwdCA9IGZ1bmN0aW9uKGZpbGVuYW1lKSB7CiAgICB2YXIgZmlsZXJlZiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpCiAgICBmaWxlcmVmLnNldEF0dHJpYnV0ZSgidHlwZSIsInRleHQvamF2YXNjcmlwdCIpCiAgICBmaWxlcmVmLnNldEF0dHJpYnV0ZSgic3JjIiwgZmlsZW5hbWUpCiAgICBpZiAodHlwZW9mIGZpbGVyZWYhPSJ1bmRlZmluZWQiKQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF0uYXBwZW5kQ2hpbGQoZmlsZXJlZikKfQpsb2FkLnRyeVJlYWR5ID0gZnVuY3Rpb24odGltZV9lbGFwc2VkKSB7CiAgICAvKiBDb250aW51YWxseSBwb2xscyBmb3IgalF1ZXJ5IGxpYnJhcnkuICovCiAgICBpZiAodHlwZW9mICQgPT0gInVuZGVmaW5lZCIpIHsKICAgICAgICBpZiAodGltZV9lbGFwc2VkIDw9IDUwMDApIHsKICAgICAgICAgICAgc2V0VGltZW91dCgibG9hZC50cnlSZWFkeSgiICsgKHRpbWVfZWxhcHNlZCArIDIwMCkgKyAiKSIsIDIwMCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgYWxlcnQoIlRpbWVkIG91dCB3aGlsZSBsb2FkaW5nIGpRdWVyeS4iKQogICAgICAgIH0KICAgIH0KfQppZiAodHlwZW9mKHdpbmRvdy5qUXVlcnkpPT0idW5kZWZpbmVkIil7CgkJbG9hZCgpOyAgIAp9CgkKCQo8L3NjcmlwdD4KCjxzY3JpcHQgc3JjPSJodHRwOi8vY2RuLmpxdWVyeXRvb2xzLm9yZy8xLjEuMi90aW55L2pxdWVyeS50b29scy5taW4uanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2luY2x1ZGVzL2ZhcmJ0YXN0aWMuanMiPjwvc2NyaXB0Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2luY2x1ZGVzL01FXzEuMDAuMDAuanMiPjwvc2NyaXB0PgoKPGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9DU1MvTWFzdGVyQ1NTLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgLz4KPGxpbmsgbWVkaWE9InNjcmVlbiIgaHJlZj0iLi4vbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9DU1MvZmFyYnRhc3RpYy5jc3MiIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxlc2hlZXQiIC8+CjxkaXYgaWQ9ImRlbW90aXAiPjxpbWcgY2xhc3M9InByb2dyZXNzIiBzcmM9Ii4uL21vZHVsZXMvUGF5UGFsQnV0dG9uTWFrZXIvaW1hZ2VzL2FqYXgtbG9hZGVyLmdpZiIgYWx0PSIiLz48L2Rpdj4KCic7Ci8vc2V0IGl0IHVwCiRCdG5UeXBlQXJyYXk9YXJyYXkoCgkJJ0J1eSBOb3cnPT4nX3hjbGljaycsCgkJJ0RvbmF0ZSc9PidfZG9uYXRpb25zJywKCQknU3Vic2NyaWJlJz0+J194Y2xpY2stc3Vic2NyaXB0aW9ucycsCgkJJ0J1eSBHaWZ0IENlcnRpZmljYXRlJz0+J19vZS1naWZ0LWNlcnRpZmljYXRlJwoJKTsKJHRBcnJheT1hcnJheSgKCQknRGF5cyc9PidEJywKCQknV2Vla3MnPT4nVycsCgkJJ01vbnRocyc9PidNJywKCQknWWVhcnMnPT4nWScKCSk7CiRjQXJyYXk9YXJyYXkoCidVU0QnPT4nJCcsCidFVVInPT4nJmV1cm87JywKJ0dCUCc9PicmcG91bmQ7JywKJ0NBRCc9PickJywKJ0pQWSc9PicmeWVuOycKKTsKCgokQ0NvZGU9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9jb2RlJywnVVNEJyk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignQ0NvZGUnLCRjQXJyYXlbJENDb2RlXSk7Ci8vIGhhbmRsZSBlcnJvcnMuCmlmKCBpc3NldCgkcGFyYW1zWydlcnJvcnMnXSkgKQogIHsKICAgIGVjaG8gJHRoaXMtPlNob3dFcnJvcnMoJHBhcmFtc1snZXJyb3JzJ10pOwogIH0KCiRwYXJhbXNbJ29yaWdhY3Rpb24nXSA9ICRwYXJhbXNbJ2FjdGlvbiddOwokY29udGVudHMgPSAiIjsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ3NhdmVfQlROJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLAoJCQkJCQkgICAgZmFsc2UsICcnLCAkcGFyYW1zKSk7CmlmKCAkcGFyYW1zWydtb2RlJ10gPT0gJ2FkZCcgKXsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKCQkJICAgICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQgKCRpZCwgJ3NhdmVfQlROJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLGZhbHNlLCAnJywgJHBhcmFtcykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0ZW1wbGF0ZW5hbWUnLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RlbXBsYXRlJywgIiIsIDQwICkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW4nLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICdtb2RlJywgJHBhcmFtc1snbW9kZSddICkpOwogICAgaWYoIGlzc2V0KCRwYXJhbXNbJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnXSkgJiYgJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddICE9ICcnICl7CgkJJGNvbnRlbnRzID0gJHRoaXMtPkdldFByZWZlcmVuY2UoJHBhcmFtc1snZGVmYXVsdHRlbXBsYXRlcHJlZiddKTsKICAgICAgfQogIH1lbHNlewoKLy8gICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybXN0YXJ0JywKLy8JCQkgICAgJHRoaXMtPkNyZWF0ZUZvcm1TdGFydCAoJGlkLCAnZG9fZWRpdHRlbXBsYXRlJywkcmV0dXJuaWQsJ3Bvc3QnLCcnLAovLwkJCQkJCSAgICBmYWxzZSwgJycsICRwYXJhbXMpKTsKLy8gICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGVuYW1lJywkcGFyYW1zWyd0ZW1wbGF0ZSddKTsKLy8gICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaGlkZGVuJywKLy8JCQkgICAkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAndGVtcGxhdGUnLCAkcGFyYW1zWyd0ZW1wbGF0ZSddICkpOwoJCQkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkcGFyYW1zWydCS1NldCddKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCmV4dHJhY3QoJHRoaXMtPkxpc3RBQlROKCRwYXJhbXNbJ0JLU2V0J10pKTsKCgoKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdCS1NldCcsCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnQktTZXQnLCAkcGFyYW1zWydCS1NldCddLCA0MCwgMjU1LCAnZGlzYWJsZWQ9ImRpc2FibGVkIicgKSk7CgoKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignYW1vdW50JywKCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdhbW91bnQnLCAkYW1vdW50LCA0MCApKTsgCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Ftb3VudCcsCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnYW1vdW50JywgJGFtb3VudCwgNDAgKSk7IAogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdCdXR0b25JbWcnLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ0J1dHRvbkltZycsICRCdXR0b25JbWcsIDQwICkpOyAJCQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtX25hbWUnLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2l0ZW1fbmFtZScsICRpdGVtX25hbWUsIDQwICkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdCdG5UeXBlJywKCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdCdG5UeXBlJywgJEJ0blR5cGVBcnJheSwgJycsICRCdG5UeXBlKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1fbnVtYmVyJywKCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdpdGVtX251bWJlcicsICRpdGVtX251bWJlciwgNDAgKSk7ICAKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncXVhbnRpdHknLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3F1YW50aXR5JywgJHF1YW50aXR5LCA0MCApKTsgICAKCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1VwZ3JhZGVNRVNTJywKCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdVcGdyYWRlTUVTUycsICRVcGdyYWRlTUVTUywgNDAgKSk7ICAKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUaGVBY3Rpb24nLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1RoZUFjdGlvbicsICRUaGVBY3Rpb24sIDQwICkpOyAgCgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignVGhlUGFyYW1zJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdUaGVQYXJhbXMnLCAkVGhlUGFyYW1zLCA0MCApKTsgICAKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ludm9pY2UnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2ludm9pY2UnLCAkaW52b2ljZSwgNDAgKSk7ICAgCgkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YXhfY2FydCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGF4X2NhcnQnLCAkdGF4X2NhcnQsIDQwICkpOyAgIAoJCQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGF4X3JhdGUnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RheF9yYXRlJywgJHRheF9yYXRlLCA0MCApKTsgICAKCQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RheCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAndGF4JywgJHRheCwgNDAgKSk7ICAgCgkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1bmRlZmluZWRfcXVhbnRpdHknLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3VuZGVmaW5lZF9xdWFudGl0eScsICR1bmRlZmluZWRfcXVhbnRpdHksIDQwICkpOyAgIAoJCQkJCQoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignd2VpZ2h0X2NhcnQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3dlaWdodF9jYXJ0JywgJHdlaWdodF9jYXJ0LCA0MCApKTsKCQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3dlaWdodCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnd2VpZ2h0JywgJHdlaWdodCwgNDAgKSk7CgkJCgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfdW5pdCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnd2VpZ2h0X3VuaXQnLCAkd2VpZ2h0X3VuaXQsIDQwICkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignc2hpcHBpbmcnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3NoaXBwaW5nJywgJHNoaXBwaW5nLCA0MCApKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3AzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdwMycsICRwMywgNDAgKSk7CiAgICAJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0MycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndDMnLCAkdEFycmF5LCAnJywgJHQzKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhMScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnYTEnLCAkYTEsIDQwICkpOwogICAgCSR0aGlzLT5zbWFydHktPmFzc2lnbigndDEnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3QxJywgJHRBcnJheSwgJycsICR0MSkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigncDEnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3AxJywgJHAxLCA0MCApKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2EyJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdhMicsICRhMiwgNDAgKSk7CiAgICAJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0MicsCgkJJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndDInLCAkdEFycmF5LCAnJywgJHQyKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwMicsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAncDInLCAkcDIsIDQwICkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3JjJywKCQkJCQkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnc3JjJywgYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCAkc3JjLCcnLCcmbmJzcDsnKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzcnQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3NydCcsICRzcnQsIDQwICkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3JhJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdzcmEnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICRzcmEsJycsJyZuYnNwOycpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZGlmeScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnbW9kaWZ5JywgYXJyYXkoJ29ubHkgY3JlYXRlIG5ldyBzdWJzY3JpcHRpb25zJz0+JzAnLCdtb2RpZnkgdGhlaXIgY3VycmVudCBzdWJzY3JpcHRpb25zIG9yIHNpZ24gdXAgZm9yIG5ldyBvbmVzJz0+JzEnLCdvbmx5IG1vZGlmeSB0aGVpciBjdXJyZW50IHN1YnNjcmlwdGlvbnMnPT4nMicpLCAkbW9kaWZ5LCcnLCc8YnIvPicpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Vzcl9tYW5hZ2UnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ3Vzcl9tYW5hZ2UnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICR1c3JfbWFuYWdlLCcnLCcmbmJzcDsnKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRyZXNzMScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnYWRkcmVzczEnLCAkYWRkcmVzczEsIDQwICkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkcmVzczInLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2FkZHJlc3MyJywgJGFkZHJlc3MyLCA0MCApKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NpdHknLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2NpdHknLCAkY2l0eSwgNDAgKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjb3VudHJ5JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdjb3VudHJ5JywgJGNvdW50cnksIDQwICkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW1haWwnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2VtYWlsJywgJGVtYWlsLCA0MCApKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ZpcnN0X25hbWUnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2ZpcnN0X25hbWUnLCAkZmlyc3RfbmFtZSwgNDAgKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsYXN0X25hbWUnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2xhc3RfbmFtZScsICRsYXN0X25hbWUsIDQwICkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2hhcnNldCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnY2hhcnNldCcsICRjaGFyc2V0LCA0MCApKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25pZ2h0X3Bob25lX2EnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ25pZ2h0X3Bob25lX2EnLCAkbmlnaHRfcGhvbmVfYSwgNDAgKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduaWdodF9waG9uZV9iJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICduaWdodF9waG9uZV9iJywgJG5pZ2h0X3Bob25lX2IsIDQwICkpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbmlnaHRfcGhvbmVfYycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnbmlnaHRfcGhvbmVfYycsICRuaWdodF9waG9uZV9jLCA0MCApKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXRlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdzdGF0ZScsICRzdGF0ZSwgNDAgKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd6aXAnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3ppcCcsICR6aXAsIDQwICkpOwogICB9CgovLyR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLGNtc19odG1sX2VudGl0eV9kZWNvZGUoJHBhcmFtc1sndGl0bGUnXSkpOwppZiggJHBhcmFtc1snbW9kZSddID09ICdhZGQnICl7CiAgCiAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdCS1NldCcsCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnQktTZXQnLCAiIiwgNDAsIDI1NSwgJycgKSk7CiAgICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignYW1vdW50JywKCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdhbW91bnQnLCAiMDAuMDAiLCA0MCApKTsgCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0J1dHRvbkltZycsCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnQnV0dG9uSW1nJywgImh0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2J1eW5vd0NDX0xHLmdpZiIsIDQwICkpOyAJCQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtX25hbWUnLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2l0ZW1fbmFtZScsICIiLCA0MCApKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignQnRuVHlwZScsCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAnQnRuVHlwZScsICRCdG5UeXBlQXJyYXksICcnLCAnJykpOyAgCQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtX251bWJlcicsCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnaXRlbV9udW1iZXInLCAiIiwgNDAgKSk7ICAKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigncXVhbnRpdHknLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3F1YW50aXR5JywgIiIsIDQwICkpOyAKCQoJICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignVXBncmFkZU1FU1MnLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1VwZ3JhZGVNRVNTJywgIiIsIDQwICkpOyAgCgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignVGhlQWN0aW9uJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdUaGVBY3Rpb24nLCAiIiwgNDAgKSk7ICAKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUaGVQYXJhbXMnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ1RoZVBhcmFtcycsICIiLCA0MCApKTsgICAKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ludm9pY2UnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2ludm9pY2UnLCAiIiwgNDAgKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3RheF9jYXJ0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICd0YXhfY2FydCcsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGF4X3JhdGUnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RheF9yYXRlJywgIiIsIDQwICkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YXgnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3RheCcsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbigndW5kZWZpbmVkX3F1YW50aXR5JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICd1bmRlZmluZWRfcXVhbnRpdHknLCAiIiwgNDAgKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3dlaWdodF9jYXJ0JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICd3ZWlnaHRfY2FydCcsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignd2VpZ2h0X3VuaXQnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3dlaWdodF91bml0JywgIiIsIDQwICkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzaGlwcGluZycsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnc2hpcHBpbmcnLCAiIiwgNDAgKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3AzJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdwMycsICIiLCA0MCApKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbigndDMnLAoJCQkgICR0aGlzLT5DcmVhdGVJbnB1dERyb3Bkb3duKCRpZCwgJ3QzJywgJHRBcnJheSwgJycsICcnKSk7ICAKCSR0aGlzLT5zbWFydHktPmFzc2lnbignYTEnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2ExJywgIiIsIDQwICkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0MScsCgkJCSAgJHRoaXMtPkNyZWF0ZUlucHV0RHJvcGRvd24oJGlkLCAndDEnLCAkdEFycmF5LCAnJywgJycpKTsgIAkKCSR0aGlzLT5zbWFydHktPmFzc2lnbigncDEnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ3AxJywgIiIsIDQwICkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhMicsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnYTInLCAiIiwgNDAgKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3QyJywKCQkJICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICd0MicsICR0QXJyYXksICcnLCAnJykpOyAgCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3AyJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdwMicsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignc3JjJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdzcmMnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICcnLCcnLCcmbmJzcDsnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NydCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnc3J0JywgIiIsIDQwICkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzcmEnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ3NyYScsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJycsJycsJyZuYnNwOycpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbW9kaWZ5JywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdtb2RpZnknLCBhcnJheSgnb25seSBjcmVhdGUgbmV3IHN1YnNjcmlwdGlvbnMnPT4nMCcsJ21vZGlmeSB0aGVpciBjdXJyZW50IHN1YnNjcmlwdGlvbnMgb3Igc2lnbiB1cCBmb3IgbmV3IG9uZXMnPT4nMScsJ29ubHkgbW9kaWZ5IHRoZWlyIGN1cnJlbnQgc3Vic2NyaXB0aW9ucyc9PicyJyksICcnLCcnLCcmbmJzcDsnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3Vzcl9tYW5hZ2UnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ3Vzcl9tYW5hZ2UnLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICcnLCcnLCcmbmJzcDsnKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3dlaWdodCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnd2VpZ2h0JywgIiIsIDQwICkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdoaWRkZW5Nb2RlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICRwYXJhbXNbJ21vZGUnXSApKTsgIAoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRyZXNzMScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnYWRkcmVzczEnLCAiIiwgNDAgKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZHJlc3MyJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdhZGRyZXNzMicsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2l0eScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnY2l0eScsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY291bnRyeScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnY291bnRyeScsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignZW1haWwnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2VtYWlsJywgIiIsIDQwICkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaXJzdF9uYW1lJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdmaXJzdF9uYW1lJywgIiIsIDQwICkpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsYXN0X25hbWUnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ2xhc3RfbmFtZScsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2hhcnNldCcsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnY2hhcnNldCcsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignbmlnaHRfcGhvbmVfYScsCgkJJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCggJGlkLCAnLG5pZ2h0X3Bob25lX2EnLCAiIiwgNDAgKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25pZ2h0X3Bob25lX2InLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ25pZ2h0X3Bob25lX2InLCAiIiwgNDAgKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25pZ2h0X3Bob25lX2MnLAoJCSR0aGlzLT5DcmVhdGVJbnB1dFRleHQoICRpZCwgJ25pZ2h0X3Bob25lX2MnLCAiIiwgNDAgKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3N0YXRlJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICdzdGF0ZScsICIiLCA0MCApKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignemlwJywKCQkkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCAkaWQsICd6aXAnLCAiIiwgNDAgKSk7CgoJCiAgfWVsc2V7CgoKICB9CiAgJHVybGV4dD1DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOwokaW1nSGVscEY9JzxpbWcgc3JjPSIuLi9hZG1pbi90aGVtZXMvTkNsZWFuR3JleS9pbWFnZXMvaWNvbnMvc3lzdGVtL2luZm8tZXh0ZXJuYWwuZ2lmIiBhbHQ9IicuJHVybGV4dC4nIiBjbGFzcz0ic3lzdGVtaWNvbiIgdGl0bGU9IiIgcmVsPSInOwokaW1nSGVscEI9JyIvPic7CiR0aGlzLT5zbWFydHktPmFzc2lnbignQktTZXRfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ0JLU2V0X3Byb21wdCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdCdG5UeXBlX3Byb21wdCcsICR0aGlzLT5MYW5nKCdCdG5UeXBlX3Byb21wdCcpLiRpbWdIZWxwRi4iQnRuVHlwZSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhbW91bnRfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ2Ftb3VudF9wcm9tcHQnKS4kaW1nSGVscEYuImFtb3VudCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtX25hbWVfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ2l0ZW1fbmFtZV9wcm9tcHQnKS4kaW1nSGVscEYuIml0ZW1fbmFtZSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdCdXR0b25JbWdfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ0J1dHRvbkltZ19wcm9tcHQnKS4kaW1nSGVscEYuIkJ1dHRvbkltZyIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpdGVtX251bWJlcl9wcm9tcHQnLCAkdGhpcy0+TGFuZygnaXRlbV9udW1iZXJfcHJvbXB0JykuJGltZ0hlbHBGLiJpdGVtX251bWJlciIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdxdWFudGl0eV9wcm9tcHQnLCAkdGhpcy0+TGFuZygncXVhbnRpdHlfcHJvbXB0JykuJGltZ0hlbHBGLiJxdWFudGl0eSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdVcGdyYWRlTUVTU19wcm9tcHQnLCAkdGhpcy0+TGFuZygnVXBncmFkZU1FU1NfcHJvbXB0JykuJGltZ0hlbHBGLiJVcGdyYWRlTUVTUyIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUaGVBY3Rpb25fcHJvbXB0JywgJHRoaXMtPkxhbmcoJ1RoZUFjdGlvbl9wcm9tcHQnKS4kaW1nSGVscEYuIlRoZUFjdGlvbiIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdUaGVQYXJhbXNfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ1RoZVBhcmFtc19wcm9tcHQnKS4kaW1nSGVscEYuIlRoZVBhcmFtcyIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbnZvaWNlX3Byb21wdCcsICR0aGlzLT5MYW5nKCdpbnZvaWNlX3Byb21wdCcpLiRpbWdIZWxwRi4iaW52b2ljZSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YXhfY2FydF9wcm9tcHQnLCAkdGhpcy0+TGFuZygndGF4X2NhcnRfcHJvbXB0JykuJGltZ0hlbHBGLiJ0YXhfY2FydCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YXhfcmF0ZV9wcm9tcHQnLCAkdGhpcy0+TGFuZygndGF4X3JhdGVfcHJvbXB0JykuJGltZ0hlbHBGLiJ0YXhfcmF0ZSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0YXhfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3RheF9wcm9tcHQnKS4kaW1nSGVscEYuInRheCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1bmRlZmluZWRfcXVhbnRpdHlfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3VuZGVmaW5lZF9xdWFudGl0eV9wcm9tcHQnKS4kaW1nSGVscEYuInVuZGVmaW5lZF9xdWFudGl0eSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfY2FydF9wcm9tcHQnLCAkdGhpcy0+TGFuZygnd2VpZ2h0X2NhcnRfcHJvbXB0JykuJGltZ0hlbHBGLiJ3ZWlnaHRfY2FydCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfdW5pdF9wcm9tcHQnLCAkdGhpcy0+TGFuZygnd2VpZ2h0X3VuaXRfcHJvbXB0JykuJGltZ0hlbHBGLiJ3ZWlnaHRfdW5pdCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzaGlwcGluZ19wcm9tcHQnLCAkdGhpcy0+TGFuZygnc2hpcHBpbmdfcHJvbXB0JykuJGltZ0hlbHBGLiJzaGlwcGluZyIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd3ZWlnaHRfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3dlaWdodF9wcm9tcHQnKS4kaW1nSGVscEYuIndlaWdodCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwM19wcm9tcHQnLCAkdGhpcy0+TGFuZygncDNfcHJvbXB0JykuJGltZ0hlbHBGLiJwMyIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0M19wcm9tcHQnLCAkdGhpcy0+TGFuZygndDNfcHJvbXB0JykuJGltZ0hlbHBGLiJ0MyIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhMV9wcm9tcHQnLCAkdGhpcy0+TGFuZygnYTFfcHJvbXB0JykuJGltZ0hlbHBGLiJhMSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0MV9wcm9tcHQnLCAkdGhpcy0+TGFuZygndDFfcHJvbXB0JykuJGltZ0hlbHBGLiJ0MSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwMV9wcm9tcHQnLCAkdGhpcy0+TGFuZygncDFfcHJvbXB0JykuJGltZ0hlbHBGLiJwMSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhMl9wcm9tcHQnLCAkdGhpcy0+TGFuZygnYTJfcHJvbXB0JykuJGltZ0hlbHBGLiJhMiIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwMl9wcm9tcHQnLCAkdGhpcy0+TGFuZygncDJfcHJvbXB0JykuJGltZ0hlbHBGLiJwMiIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd0Ml9wcm9tcHQnLCAkdGhpcy0+TGFuZygndDJfcHJvbXB0JykuJGltZ0hlbHBGLiJ0MiIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzcmNfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3NyY19wcm9tcHQnKS4kaW1nSGVscEYuInNyYyIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzcnRfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3NydF9wcm9tcHQnKS4kaW1nSGVscEYuInNydCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzcmFfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3NyYV9wcm9tcHQnKS4kaW1nSGVscEYuInNyYSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtb2RpZnlfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ21vZGlmeV9wcm9tcHQnKS4kaW1nSGVscEYuIm1vZGlmeSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd1c3JfbWFuYWdlX3Byb21wdCcsICR0aGlzLT5MYW5nKCd1c3JfbWFuYWdlX3Byb21wdCcpLiRpbWdIZWxwRi4idXNyX21hbmFnZSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRyZXNzMV9wcm9tcHQnLCAkdGhpcy0+TGFuZygnYWRkcmVzczFfcHJvbXB0JykuJGltZ0hlbHBGLiJhZGRyZXNzMSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdhZGRyZXNzMl9wcm9tcHQnLCAkdGhpcy0+TGFuZygnYWRkcmVzczJfcHJvbXB0JykuJGltZ0hlbHBGLiJhZGRyZXNzMiIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjaXR5X3Byb21wdCcsICR0aGlzLT5MYW5nKCdjaXR5X3Byb21wdCcpLiRpbWdIZWxwRi4iY2l0eSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjb3VudHJ5X3Byb21wdCcsICR0aGlzLT5MYW5nKCdjb3VudHJ5X3Byb21wdCcpLiRpbWdIZWxwRi4iY291bnRyeSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdlbWFpbF9wcm9tcHQnLCAkdGhpcy0+TGFuZygnZW1haWxfcHJvbXB0JykuJGltZ0hlbHBGLiJlbWFpbCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmaXJzdF9uYW1lX3Byb21wdCcsICR0aGlzLT5MYW5nKCdmaXJzdF9uYW1lX3Byb21wdCcpLiRpbWdIZWxwRi4iZmlyc3RfbmFtZSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdsYXN0X25hbWVfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ2xhc3RfbmFtZV9wcm9tcHQnKS4kaW1nSGVscEYuImxhc3RfbmFtZSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjaGFyc2V0X3Byb21wdCcsICR0aGlzLT5MYW5nKCdjaGFyc2V0X3Byb21wdCcpLiRpbWdIZWxwRi4iY2hhcnNldCIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduaWdodF9waG9uZV9hX3Byb21wdCcsICR0aGlzLT5MYW5nKCduaWdodF9waG9uZV9hX3Byb21wdCcpLiRpbWdIZWxwRi4ibmlnaHRfcGhvbmVfYSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduaWdodF9waG9uZV9iX3Byb21wdCcsICR0aGlzLT5MYW5nKCduaWdodF9waG9uZV9iX3Byb21wdCcpLiRpbWdIZWxwRi4ibmlnaHRfcGhvbmVfYiIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduaWdodF9waG9uZV9jX3Byb21wdCcsICR0aGlzLT5MYW5nKCduaWdodF9waG9uZV9jX3Byb21wdCcpLiRpbWdIZWxwRi4ibmlnaHRfcGhvbmVfYyIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdGF0ZV9wcm9tcHQnLCAkdGhpcy0+TGFuZygnc3RhdGVfcHJvbXB0JykuJGltZ0hlbHBGLiJzdGF0ZSIuJGltZ0hlbHBCKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCd6aXBfcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3ppcF9wcm9tcHQnKS4kaW1nSGVscEYuInppcCIuJGltZ0hlbHBCKTsKCgoKCgoKJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJHBhcmFtc1snbW9kZSddKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCgkgIAkgIAkJICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hpZGRlbk1vZGUnLAoJCQkkdGhpcy0+Q3JlYXRlSW5wdXRIaWRkZW4oJGlkLCAnbW9kZScsICRwYXJhbXNbJ21vZGUnXSApCgkJCS8vLiR0aGlzLT5DcmVhdGVJbnB1dEhpZGRlbigkaWQsICd3YXMnLCAkcGFyYW1zWydWSU5WJ10gKQoJCQkpOyAKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2NhbmNlbCcsICc8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0iJy4kdGhpcy0+TGFuZygnZm9ybV9jYW5jZWwnKS4nIiBvbmNsaWNrPSJqYXZhc2NyaXB0OndpbmRvdy5oaXN0b3J5LmdvKC0xKSIgLz4nKTsJICAKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGVuYW1lJywkdGhpcy0+TGFuZygncHJvbXB0X3RlbXBsYXRlbmFtZScpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdwcm9tcHRfdGVtcGxhdGUnLCR0aGlzLT5MYW5nKCdwcm9tcHRfdGVtcGxhdGUnKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbigndGVtcGxhdGUnLAoJCSAgICAgICR0aGlzLT5DcmVhdGVTeW50YXhBcmVhICgkaWQsICRjb250ZW50cywgJ3RlbXBsYXRlY29udGVudCcpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzdWJtaXQnLCR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCAoJGlkLCAnc3VibWl0YnV0dG9uJywKCQkJCQkJCSAkdGhpcy0+TGFuZyAoJ3N1Ym1pdCcpKSk7CiR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsJywkdGhpcy0+Q3JlYXRlSW5wdXRTdWJtaXQgKCRpZCwgJ2NhbmNlbCcsIAoJCQkJCQkJICR0aGlzLT5MYW5nICgnY2FuY2VsJykpKTsKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtZW5kJywkdGhpcy0+Q3JlYXRlRm9ybUVuZCgpKTsKCgoKZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdlZGl0dGVtcGxhdGUudHBsJyk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/action.save_ACTptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnICkgKQp7CiAgcmV0dXJuOwp9CgoKCgpjbGFzcyBJbWdSZXNpemVyIHsKCXByaXZhdGUgJG9yaWdpbmFsRmlsZSA9ICcnOwoJcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRvcmlnaW5hbEZpbGUgPSAnJykgewoJCSR0aGlzIC0+IG9yaWdpbmFsRmlsZSA9ICRvcmlnaW5hbEZpbGU7Cgl9CglwdWJsaWMgZnVuY3Rpb24gcmVzaXplKCRuZXdXaWR0aCwgJHRhcmdldEZpbGUsICRxbHQpIHsKCQlpZiAoZW1wdHkoJG5ld1dpZHRoKSB8fCBlbXB0eSgkdGFyZ2V0RmlsZSkpIHsKCQkJcmV0dXJuIGZhbHNlOwoJCX0KCQkkc3JjID0gaW1hZ2VjcmVhdGVmcm9tanBlZygkdGhpcyAtPiBvcmlnaW5hbEZpbGUpOwoJCWxpc3QoJHdpZHRoLCAkaGVpZ2h0KSA9IGdldGltYWdlc2l6ZSgkdGhpcyAtPiBvcmlnaW5hbEZpbGUpOwoJCSRuZXdXaWR0aCA9ICgkd2lkdGggLyAkaGVpZ2h0KSAqICRuZXdIZWlnaHQ7CgkJJHRtcCA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCRuZXdXaWR0aCwgJG5ld0hlaWdodCk7CgkJaW1hZ2Vjb3B5cmVzYW1wbGVkKCR0bXAsICRzcmMsIDAsIDAsIDAsIDAsICRuZXdXaWR0aCwgJG5ld0hlaWdodCwgJHdpZHRoLCAkaGVpZ2h0KTsKCQlpZiAoZmlsZV9leGlzdHMoJHRhcmdldEZpbGUpKSB7CgkJCXVubGluaygkdGFyZ2V0RmlsZSk7CgkJfQoJCWltYWdlanBlZygkdG1wLCAkdGFyZ2V0RmlsZSwgJHFsdCk7IC8vIDQxIGlzIG15IGNob2ljZSwgbWFrZSBpdCBiZXR3ZWVuIDAgliAxMDAgZm9yIG91dHB1dCBpbWFnZSBxdWFsaXR5IHdpdGggMTAwIGJlaW5nIHRoZSBtb3N0IGx1eHVyaW91cwoJfQp9CgoKZnVuY3Rpb24gdXBsb2FkSW1hZ2UoJGlkLCRuZXdIZWlnaHQsICR0YXJnZXRGaWxlLCRxbHQpewoJZ2xvYmFsICRnQ21zOwoJJHBwYm09JiRnQ21zLT5tb2R1bGVzWydQYXlQYWxCdXR0b25NYWtlciddWydvYmplY3QnXTsKCSRjb25maWcgPSAkZ0Ntcy0+R2V0Q29uZmlnKCk7CgoJJGRpciA9ICRjb25maWdbImltYWdlX3VwbG9hZHNfcGF0aCJdOwoJJHVybCA9ICRjb25maWdbImltYWdlX3VwbG9hZHNfdXJsIl07CgkkUnVybCA9ICRjb25maWdbInJvb3RfdXJsIl07CgkkcmVzaXplQXQ9JG5ld1dpZHRoOwoKCSRyZWxkaXIgPSAiL1BQQk0iOwoJaWYgKCFpc3NldCgkSU1Db25maWdbJ3RodW1ibmFpbF9kaXInXSkpICRJTUNvbmZpZ1sndGh1bWJuYWlsX2RpciddID0gJyc7CglpZighZmlsZV9leGlzdHMoJGRpci4iL1BQQk0iKSl7CgkJCQlta2RpcigkZGlyLiIvUFBCTSIsIDA3NzcpOwoJCQkJYXVkaXQoLTEsICRkaXIuIi8iLiRyZWxkaXIsICdDcmVhdGVkIERpcmVjdG9yeScpOwoJCQkJCgl9CglpZighZmlsZV9leGlzdHMoJGRpci4iLyIuJHJlbGRpcikpewoJCQkJbWtkaXIoJGRpci4iLyIuJHJlbGRpciwgMDc3Nyk7CgkJCQlhdWRpdCgtMSwgJGRpci4iLyIuJHJlbGRpciwgJ0NyZWF0ZWQgRGlyZWN0b3J5Jyk7Cgl9CglpZiAoc3RycG9zKCRyZWxkaXIsICcuLicpID09PSBmYWxzZSAmJiBzdHJwb3MoJHJlbGRpciwgJ1xcJykgPT09IGZhbHNlKXsKCQkkZGlyIC49ICRyZWxkaXI7Cgl9CglpZiAoIW1vdmVfdXBsb2FkZWRfZmlsZSgkX0ZJTEVTWyIiLiR0YXJnZXRGaWxlLiIiXVsndG1wX25hbWUnXSwgJGRpci4iLyIuJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ25hbWUnXSkpewoJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ2ZpbGVub3R1cGxvYWRlZCcpLiI8L2xpPiI7CgkJCSRwcGJtLT5GaXJlRGVidWcoJ2Vycm9yJywkZXJyb3JzKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCgl9ZWxzZXsKCQljaG1vZCgkZGlyLiIvIi4kX0ZJTEVTWyIiLiR0YXJnZXRGaWxlLiIiXVsnbmFtZSddLCBvY3RkZWMoJzAnLiRjb25maWdbJ2RlZmF1bHRfdXBsb2FkX3Blcm1pc3Npb24nXSkpOwoJCSR3b3JrID0gbmV3IEltZ1Jlc2l6ZXIoJGRpci4iLyIuJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ25hbWUnXSk7CgkJJHdvcmsgLT4gcmVzaXplKCRyZXNpemVBdCwgJGRpci4iLyIuJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ25hbWUnXSwgJHFsdCk7CgkJCSRwcGJtLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCAnJGxvcWx0Y2E6ICcuJHFsdCk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQoJCQkkcHBibS0+RmlyZURlYnVnKCdtZXNzYWdlJywgJyRyZXNpemVBdDogJy4kcmVzaXplQXQpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKCQkvLyRsb2NhPSR1cmwuJHJlbGRpci4iLyIuJF9GSUxFU1siIi4kdGFyZ2V0RmlsZS4iIl1bJ25hbWUnXTsKCQkkbG9jYT0kdXJsLiRyZWxkaXIuIi8iLiRfRklMRVNbIiIuJHRhcmdldEZpbGUuIiJdWyduYW1lJ107CgkJCSRwcGJtLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCAnJGxvY2E6ICcuJGxvY2EpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKCQkkcHBibS0+U2V0UHJlZmVyZW5jZShzdHJfcmVwbGFjZSgiIi4kaWQuIiIsICIiLCAkdGFyZ2V0RmlsZSksICRsb2NhKTsKCQkJJHBwYm0tPkZpcmVEZWJ1ZygnbWVzc2FnZScsICdHZXRQcmVmZXJlbmNlKCR0YXJnZXRGaWxlKTogJy4kcHBibS0+R2V0UHJlZmVyZW5jZSgkdGFyZ2V0RmlsZSkpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKCX0KfQoKZnVuY3Rpb24gZGVscGhvdG8oJGRpciwkb24pewoJZ2xvYmFsICRnQ21zOwoJJHBwYm09JiRnQ21zLT5tb2R1bGVzWydQYXlQYWxCdXR0b25NYWtlciddWydvYmplY3QnXTsKCSRpbmZvID0gcGF0aGluZm8oJGRpcik7CgkkY29uZmlnID0gJGdDbXMtPkdldENvbmZpZygpOwoJJGRpciA9ICRjb25maWdbImltYWdlX3VwbG9hZHNfcGF0aCJdOwoJdW5saW5rKCRkaXIuJy9QUEJNLycuJGluZm9bJ2Jhc2VuYW1lJ10pOwoJCgkkcHBibS0+RmlyZURlYnVnKCdtZXNzYWdlJywgJ2RlbGV0ZWQgJy4kZGlyLicvUFBCTS8nLiRpbmZvWydiYXNlbmFtZSddKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCgkkcHBibS0+U2V0UHJlZmVyZW5jZSgkb24sICcnKTsKCSRwcGJtLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCAnaW1hZ2VfdXJsIFByZWZlcmVuY2UgJy4kcHBibS0+R2V0UHJlZmVyZW5jZSgkb24pKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCn0gCgoKCgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaW50ZXJuYWwnLCAkcGFyYW1zWydpbnRlcm5hbCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ0Zvcm1LZXknLCAkcGFyYW1zWydGb3JtS2V5J10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnRm9ybVZhbHVlJywgJHBhcmFtc1snRm9ybVZhbHVlJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgna2V5JywgJHBhcmFtc1sna2V5J10pOwoKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZV91cmwnLCAkcGFyYW1zWydpbWFnZV91cmxfX1VSTCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJfaW1hZ2UnLCAkcGFyYW1zWydjcHBfaGVhZGVyX19VUkwnXSk7CgkKCgppZihpc3NldCgkX0ZJTEVTWyRpZC4nY3BwX2hlYWRlcl9pbWFnZSddKSYmKCRfRklMRVNbJGlkLidjcHBfaGVhZGVyX2ltYWdlJ10hPScnKSl7CgkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnbWFkZSBpdCcpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKCXVwbG9hZEltYWdlKCRpZCw5MCwkaWQuJ2NwcF9oZWFkZXJfaW1hZ2UnLDQxKTsKfQoJCQkJCSR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCdmaWxlOiAnLicgJGlkICcuJGlkLicgICcuJF9GSUxFU1skaWQuImNwcF9oZWFkZXJfaW1hZ2UiXVsibmFtZSJdKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcycsICRwYXJhbXNbJ2NzJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3BwX2hlYWRlcmJhY2tfY29sb3InLCBzdHJfcmVwbGFjZSgiIyIsICIiLCAkcGFyYW1zWydjcHBfaGVhZGVyYmFja19jb2xvciddKSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcHBfcGF5Zmxvd19jb2xvcicsIHN0cl9yZXBsYWNlKCIjIiwgIiIsICRwYXJhbXNbJ2NwcF9wYXlmbG93X2NvbG9yJ10pKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJib3JkZXJfY29sb3InLCBzdHJfcmVwbGFjZSgiIyIsICIiLCAkcGFyYW1zWydjcHBfaGVhZGVyYm9yZGVyX2NvbG9yJ10pKTsKCgoKaWYoaXNzZXQoJF9GSUxFU1skaWQuJ2ltYWdlX3VybCddKSYmKCRfRklMRVNbJGlkLidpbWFnZV91cmwnXSE9JycpKXsKCQkJCQkkdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywnbWFkZSBpdCcpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKCXVwbG9hZEltYWdlKCRpZCw1MCwkaWQuJ2ltYWdlX3VybCcsNDEpOwp9CmlmKCRwYXJhbXNbJ2ltYWdlX3VybF9jbGVhciddPT0xKXsKCWRlbHBob3RvKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV91cmwnKSwnaW1hZ2VfdXJsJyk7CQp9CgppZigkcGFyYW1zWydjcHBfaGVhZGVyX2ltYWdlX2NsZWFyJ109PTEpewoJZGVscGhvdG8oJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJfaW1hZ2UnKSwnY3BwX2hlYWRlcl9pbWFnZScpOwkKfQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnYnVzaW5lc3NOYW1lJywgJHBhcmFtc1snYnVzaW5lc3NOYW1lJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc05hbWUnLCAkcGFyYW1zWydTQU5EQk9YX2J1c2luZXNzTmFtZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ1NhbmRCb3gnLCAkcGFyYW1zWydTYW5kQm94J10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9wZXJzb25hbE5hbWUnLCAkcGFyYW1zWydTQU5EQk9YX3BlcnNvbmFsTmFtZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ1NBTkRCT1hfYnVzaW5lc3NQQVNTJywgJHBhcmFtc1snU0FOREJPWF9idXNpbmVzc1BBU1MnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdTQU5EQk9YX3BlcnNvbmFsUEFTUycsICRwYXJhbXNbJ1NBTkRCT1hfcGVyc29uYWxQQVNTJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnTGFuZycsICRwYXJhbXNbJ0xhbmcnXSk7CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnZGVidWdJVCcsICRwYXJhbXNbJ2RlYnVnSVQnXSk7CiRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsKCiRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ29wdGlvbnN1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdvcHRpb25zJyk7CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.save_BNToptions.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKaWYoICEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9uKCAnTW9kaWZ5IFNpdGUgUHJlZmVyZW5jZXMnICkgKQp7CiAgcmV0dXJuOwp9CgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnUmVkaXJlY3RVUkwnLCAkcGFyYW1zWydSZWRpcmVjdFVSTCddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2NidCcsICRwYXJhbXNbJ2NidCddKTsKCgokdGhpcy0+U2V0UHJlZmVyZW5jZSgncm0nLCAkcGFyYW1zWydybSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2FkZHJlc3Nfb3ZlcnJpZGUnLCAkcGFyYW1zWydhZGRyZXNzX292ZXJyaWRlJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3VzdG9tJywgJHBhcmFtc1snY3VzdG9tJ10pOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnaGFuZGxpbmcnLCAkcGFyYW1zWydoYW5kbGluZyddKTsKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjYW5jZWxfcmV0dXJuJywgJHBhcmFtc1snY2FuY2VsX3JldHVybiddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vX3NoaXBwaW5nJywgJHBhcmFtc1snbm9fc2hpcHBpbmcnXSk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9jb2RlJywgJHBhcmFtc1snY3VycmVuY3lfY29kZSddKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ3NtYXJ0eU9uJywgJHBhcmFtc1snc21hcnR5T24nXSk7CgoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmeV91cmwnLCAkcGFyYW1zWydub3RpZnlfdXJsJ10pOwoKCiRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsKCiRwYXJhbXMgPSBhcnJheSgndGFiX21lc3NhZ2UnPT4gJ29wdGlvbnN1cGRhdGVkJywgJ2FjdGl2ZV90YWInID0+ICdidG5vcHRpb25zJyk7CiR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/action.save_BTN.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL0NhcnMvCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQojIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcgVVNBCiMgT3IgcmVhZCBpdCBvbmxpbmU6IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9saWNlbnNlcy5odG1sI0dQTAojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7Cmdsb2JhbCAkZ0NtczsKCmlmKGlzc2V0KCRwYXJhbXNbJ2NhbmNlbCddKSl7CgkkcGFyYW1zID0gYXJyYXkoJ3RhYl9tZXNzYWdlJz0+ICdDYW5jZWxlZCcsICdhY3RpdmVfdGFiJyA9PiAnZW1haWxfdGVtcGxhdGUnKTsKCSR0aGlzLT5SZWRpcmVjdCgkaWQsICdkZWZhdWx0YWRtaW4nLCAnJywgJHBhcmFtcyk7Cn0KCgokZGIgPSYgJHRoaXMtPkdldERiKCk7CgoJCgkKLy8vLwovLyBDcmVhdCBidG4gdGFibGUKLy8vLwoKJGFtb3VudD0kcGFyYW1zWydhbW91bnQnXTsKJEJ1dHRvbkltZz0kcGFyYW1zWydCdXR0b25JbWcnXTsKJGl0ZW1fbmFtZT0kcGFyYW1zWydpdGVtX25hbWUnXTsKJEJ0blR5cGU9JHBhcmFtc1snQnRuVHlwZSddOwokaXRlbV9udW1iZXI9JHBhcmFtc1snaXRlbV9udW1iZXInXTsKJHF1YW50aXR5PSRwYXJhbXNbJ3F1YW50aXR5J107CiRVcGdyYWRlTUVTUz0kcGFyYW1zWydVcGdyYWRlTUVTUyddOwokVGhlQWN0aW9uPSRwYXJhbXNbJ1RoZUFjdGlvbiddOwokVGhlUGFyYW1zPSRwYXJhbXNbJ1RoZVBhcmFtcyddOwokaW52b2ljZT0kcGFyYW1zWydpbnZvaWNlJ107CiR0YXhfY2FydD0kcGFyYW1zWyd0YXhfY2FydCddOwokdGF4X3JhdGU9JHBhcmFtc1sndGF4X3JhdGUnXTsKJHRheD0kcGFyYW1zWyd0YXgnXTsKJHVuZGVmaW5lZF9xdWFudGl0eT0kcGFyYW1zWyd1bmRlZmluZWRfcXVhbnRpdHknXTsKJHdlaWdodF9jYXJ0PSRwYXJhbXNbJ3dlaWdodF9jYXJ0J107CiR3ZWlnaHRfdW5pdD0kcGFyYW1zWyd3ZWlnaHRfdW5pdCddOwokc2hpcHBpbmc9JHBhcmFtc1snc2hpcHBpbmcnXTsKJHdlaWdodD0kcGFyYW1zWyd3ZWlnaHQnXTsKJHAzPSRwYXJhbXNbJ3AzJ107CiR0Mz0kcGFyYW1zWyd0MyddOwokYTE9JHBhcmFtc1snYTEnXTsKJHQxPSRwYXJhbXNbJ3QxJ107CiRwMT0kcGFyYW1zWydwMSddOwokYTI9JHBhcmFtc1snYTInXTsKJHQyPSRwYXJhbXNbJ3QyJ107CiRwMj0kcGFyYW1zWydwMiddOwokc3JjPSRwYXJhbXNbJ3NyYyddOwokc3J0PSRwYXJhbXNbJ3NydCddOwokc3JhPSRwYXJhbXNbJ3NyYSddOwokbW9kaWZ5PSRwYXJhbXNbJ21vZGlmeSddOwokdXNyX21hbmFnZT0kcGFyYW1zWyd1c3JfbWFuYWdlJ107CiRhZGRyZXNzMT0kcGFyYW1zWydhZGRyZXNzMSddOwokYWRkcmVzczI9JHBhcmFtc1snYWRkcmVzczInXTsKJGNpdHk9JHBhcmFtc1snY2l0eSddOwokY291bnRyeT0kcGFyYW1zWydjb3VudHJ5J107CiRlbWFpbD0kcGFyYW1zWydlbWFpbCddOwokZmlyc3RfbmFtZT0kcGFyYW1zWydmaXJzdF9uYW1lJ107CiRsYXN0X25hbWU9JHBhcmFtc1snbGFzdF9uYW1lJ107CiRjaGFyc2V0PSRwYXJhbXNbJ2NoYXJzZXQnXTsKJG5pZ2h0X3Bob25lX2E9JHBhcmFtc1snbmlnaHRfcGhvbmVfYSddOwokbmlnaHRfcGhvbmVfYj0kcGFyYW1zWyduaWdodF9waG9uZV9iJ107CiRuaWdodF9waG9uZV9jPSRwYXJhbXNbJ25pZ2h0X3Bob25lX2MnXTsKJHN0YXRlPSRwYXJhbXNbJ3N0YXRlJ107CiR6aXA9JHBhcmFtc1snemlwJ107CgoKJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCRzcnQpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLCRwYXJhbXNbJ21vZGUnXSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQoKaWYoJHBhcmFtc1snbW9kZSddPT0nYWRkJyl7CgkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0biBTRVQgQktTZXQ9PyI7CgkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksIGFycmF5KCRwYXJhbXNbJ0JLU2V0J10pKTsKCWlmKCEkcmVzdWx0KSB7CgkJJHBhcmFtc1snbWVzc2FnZSddID0gbXlzcWxfZXJyb3IoKTsKCQkkdGhpcy0+RmlyZURlYnVnKCdlcnJvcicsbXlzcWxfZXJyb3IoKSk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQoJfWVsc2V7CgkJJHBhcmFtc1snbWVzc2FnZSddID0gJHRoaXMtPkxhbmcoJ3ByZWZzdXBkYXRlZCcpOwoJfQoJCQkJCQkJCgkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQgKElELCBhbW91bnQsIEJ1dHRvbkltZywgaXRlbV9uYW1lLCBCdG5UeXBlLCBpdGVtX251bWJlciwgcXVhbnRpdHksIFVwZ3JhZGVNRVNTLCBUaGVBY3Rpb24sIFRoZVBhcmFtcyxpbnZvaWNlLHRheF9jYXJ0LHRheF9yYXRlLHRheCx1bmRlZmluZWRfcXVhbnRpdHksd2VpZ2h0X2NhcnQsd2VpZ2h0X3VuaXQsc2hpcHBpbmcsd2VpZ2h0LGFkZHJlc3MxLGFkZHJlc3MyLGNpdHksY291bnRyeSxlbWFpbCxmaXJzdF9uYW1lLGxhc3RfbmFtZSxjaGFyc2V0LG5pZ2h0X3Bob25lX2EsbmlnaHRfcGhvbmVfYixuaWdodF9waG9uZV9jLHN0YXRlLHppcCxwMyx0MyxhMSx0MSxwMSxhMix0MixwMixzcmMsc3J0LHNyYSxtb2RpZnksdXNyX21hbmFnZSkiCgkuIlZBTFVFUyAoIExBU1RfSU5TRVJUX0lEKCksPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/LD8sPyw/KSI7CgkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGFtb3VudCwkQnV0dG9uSW1nLCRpdGVtX25hbWUsJEJ0blR5cGUsJGl0ZW1fbnVtYmVyLCRxdWFudGl0eSwkVXBncmFkZU1FU1MsJFRoZUFjdGlvbiwkVGhlUGFyYW1zLCRpbnZvaWNlLCR0YXhfY2FydCwkdGF4X3JhdGUsJHRheCwkdW5kZWZpbmVkX3F1YW50aXR5LCR3ZWlnaHRfY2FydCwkd2VpZ2h0X3VuaXQsJHNoaXBwaW5nLCR3ZWlnaHQsJGFkZHJlc3MxLCRhZGRyZXNzMiwkY2l0eSwkY291bnRyeSwkZW1haWwsJGZpcnN0X25hbWUsJGxhc3RfbmFtZSwkY2hhcnNldCwkbmlnaHRfcGhvbmVfYSwkbmlnaHRfcGhvbmVfYiwkbmlnaHRfcGhvbmVfYywkc3RhdGUsJHppcCwkcDMsJHQzLCRhMSwkdDEsJHAxLCRhMiwkdDIsJHAyLCRzcmMsJHNydCwkc3JhLCRtb2RpZnksJHVzcl9tYW5hZ2UpKTsKCWlmKCEkcmVzdWx0KSB7CgkJLy9lY2hvICdFcnJvcjogJy5teXNxbF9lcnJvcigpOwoJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9IG15c3FsX2Vycm9yKCk7CgkJJHRoaXMtPkZpcmVEZWJ1ZygnZXJyb3InLG15c3FsX2Vycm9yKCkpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKCX1lbHNlewoJCSRwYXJhbXNbJ21lc3NhZ2UnXSA9ICR0aGlzLT5MYW5nKCdwcmVmc3VwZGF0ZWQnKTsKCX0KCSR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCdlY2hvOi0tLS0tLS0tLS0tLS0tLScuJHNydCk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQp9ZWxzZSBpZigkcGFyYW1zWydtb2RlJ109PSdlZGl0Jyl7CgoJJHF1ZXJ5ID0gIlVQREFURSAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCBvICIKCS4iSU5ORVIgam9pbiAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuIGIgIgoJLiJPTiBiLklEID0gby5JRCAiCgkuIiBTRVQgby5hbW91bnQ9Pywgby5CdXR0b25JbWc9Pywgby5pdGVtX25hbWU9Pywgby5CdG5UeXBlPT8sIG8uaXRlbV9udW1iZXI9Pywgby5xdWFudGl0eT0/LCBvLlVwZ3JhZGVNRVNTPT8sIG8uVGhlQWN0aW9uPT8sIG8uVGhlUGFyYW1zPT8sIG8uaW52b2ljZT0/LCBvLnRheF9jYXJ0PT8sIG8udGF4X3JhdGU9Pywgby50YXg9Pywgby51bmRlZmluZWRfcXVhbnRpdHk9Pywgby53ZWlnaHRfY2FydD0/LCBvLndlaWdodF91bml0PT8sIG8uc2hpcHBpbmc9Pywgby53ZWlnaHQ9Pywgby5hZGRyZXNzMT0/LG8uYWRkcmVzczI9PyxvLmNpdHk9PyxvLmNvdW50cnk9PyxvLmVtYWlsPT8sby5maXJzdF9uYW1lPT8sby5sYXN0X25hbWU9PyxvLmNoYXJzZXQ9PyxvLm5pZ2h0X3Bob25lX2E9PyxvLm5pZ2h0X3Bob25lX2I9PyxvLm5pZ2h0X3Bob25lX2M9PyxvLnN0YXRlPT8sby56aXA9PyxvLnAzPT8sby50Mz0/LG8uYTE9PyxvLnQxPT8sby5wMT0/LG8uYTI9PyxvLnQyPT8sby5wMj0/LG8uc3JjPT8sby5zcnQ9PyxvLnNyYT0/LG8ubW9kaWZ5PT8sby51c3JfbWFuYWdlPT8gV0hFUkUgYi5CS1NldD0/IjsKCgkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnksYXJyYXkoJGFtb3VudCwkQnV0dG9uSW1nLCRpdGVtX25hbWUsJEJ0blR5cGUsJGl0ZW1fbnVtYmVyLCRxdWFudGl0eSwkVXBncmFkZU1FU1MsJFRoZUFjdGlvbiwkVGhlUGFyYW1zLCRpbnZvaWNlLCR0YXhfY2FydCwkdGF4X3JhdGUsJHRheCwkdW5kZWZpbmVkX3F1YW50aXR5LCR3ZWlnaHRfY2FydCwkd2VpZ2h0X3VuaXQsJHNoaXBwaW5nLCR3ZWlnaHQsJGFkZHJlc3MxLCRhZGRyZXNzMiwkY2l0eSwkY291bnRyeSwkZW1haWwsJGZpcnN0X25hbWUsJGxhc3RfbmFtZSwkY2hhcnNldCwkbmlnaHRfcGhvbmVfYSwkbmlnaHRfcGhvbmVfYiwkbmlnaHRfcGhvbmVfYywkc3RhdGUsJHppcCwkcDMsJHQzLCRhMSwkdDEsJHAxLCRhMiwkdDIsJHAyLCRzcmMsJHNydCwkc3JhLCRtb2RpZnksJHVzcl9tYW5hZ2UsJHBhcmFtc1snQktTZXQnXSkpOwoJaWYoISRyZXN1bHQpIHsKCQkkcGFyYW1zWydtZXNzYWdlJ10gPSBteXNxbF9lcnJvcigpOwoJCSR0aGlzLT5GaXJlRGVidWcoJ2Vycm9yJyxteXNxbF9lcnJvcigpKTsvLzw8PDwtLS0tLS1GaXJlIFBIUCBtZXNzYWdlCgl9ZWxzZXsKCQkkcGFyYW1zWydtZXNzYWdlJ10gPSAkdGhpcy0+TGFuZygncHJlZnN1cGRhdGVkJyk7Cgl9Cn0KCQoKCmlmKCRwYXJhbXNbJ21vZGUnXT09J2FkZCcpewoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQnRuQURERUQnLCAnYWN0aXZlX3RhYicgPT4gJ2VtYWlsX3RlbXBsYXRlJyk7Cn1lbHNlewoJJHBhcmFtcyA9IGFycmF5KCd0YWJfbWVzc2FnZSc9PiAnQnRuRURJVEVEJywgJ2FjdGl2ZV90YWInID0+ICdlbWFpbF90ZW1wbGF0ZScpOwp9CgokdGhpcy0+UmVkaXJlY3QoJGlkLCAnZGVmYXVsdGFkbWluJywgJycsICRwYXJhbXMpOwo/Pgo=]]></data>
	</file>
	<file>
	  <filename>/CSS/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/CSS/farbtastic.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEZhcmJ0YXN0aWMgQ29sb3IgUGlja2VyIDEuMgogKiDCqSAyMDA4IFN0ZXZlbiBXaXR0ZW5zCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQogKi8KI1BQQk0gLmZhcmJ0YXN0aWMgewogIHBvc2l0aW9uOiByZWxhdGl2ZTsKfQojUFBCTSAuZmFyYnRhc3RpYyAqIHsKICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgY3Vyc29yOiBjcm9zc2hhaXI7Cn0KI1BQQk0gLmZhcmJ0YXN0aWMsI1BQQk0gIC5mYXJidGFzdGljIC53aGVlbCB7CiAgd2lkdGg6IDE5NXB4OwogIGhlaWdodDogMTk1cHg7Cn0KI1BQQk0gLmZhcmJ0YXN0aWMgLmNvbG9yLCAjUFBCTSAuZmFyYnRhc3RpYyAub3ZlcmxheSB7CiAgdG9wOiA0N3B4OwogIGxlZnQ6IDQ3cHg7CiAgd2lkdGg6IDEwMXB4OwogIGhlaWdodDogMTAxcHg7Cn0KI1BQQk0gLmZhcmJ0YXN0aWMgLndoZWVsIHsKICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL3doZWVsLnBuZykgbm8tcmVwZWF0OwogIHdpZHRoOiAxOTVweDsKICBoZWlnaHQ6IDE5NXB4Owp9CiNQUEJNIC5mYXJidGFzdGljIC5vdmVybGF5IHsKICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hc2sucG5nKSBuby1yZXBlYXQ7Cn0KI1BQQk0gLmZhcmJ0YXN0aWMgLm1hcmtlciB7CiAgd2lkdGg6IDE3cHg7CiAgaGVpZ2h0OiAxN3B4OwogIG1hcmdpbjogLThweCAwIDAgLThweDsKICBvdmVyZmxvdzogaGlkZGVuOyAKICBiYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL21hcmtlci5wbmcpIG5vLXJlcGVhdDsKfQoK]]></data>
	</file>
	<file>
	  <filename>/CSS/MasterCSS.css</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[QGNoYXJzZXQgInV0Zi04IjsKLyogQ1NTIERvY3VtZW50ICovCi5CYWNrTGlua3tjdXJzb3I6cG9pbnRlcjtmbG9hdDpyaWdodDt9CiBiLnJib3R0b20gewpkaXNwbGF5OmJsb2NrOwp9CiBiLnJib3R0b20gKiB7CmJhY2tncm91bmQ6I0E4QjdDNiBub25lIHJlcGVhdCBzY3JvbGwgMCAwOwpkaXNwbGF5OmJsb2NrOwpoZWlnaHQ6MXB4OwpvdmVyZmxvdzpoaWRkZW47Cn0KIGIucjEgewpiYWNrZ3JvdW5kOiMwMDAwMDAgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDsKbWFyZ2luOjAgNXB4Owp9CiBiLnIyIHsKbWFyZ2luOjAgM3B4Owp9CiBiLnIzIHsKbWFyZ2luOjAgMnB4Owp9CiBiLnI0IHsKaGVpZ2h0OjJweDsKbWFyZ2luOjAgMXB4Owp9Ci5TaW1jb257CglwYWRkaW5nOiAxMHB4OwoJYm9yZGVyLXJpZ2h0OiAycHggc29saWQgIzAwMDsKCWJvcmRlci1sZWZ0OiAycHggc29saWQgIzAwMDsKCWJvcmRlci10b3Atc3R5bGU6IG5vbmU7Cglib3JkZXItYm90dG9tLXN0eWxlOiBub25lOwoJYmFja2dyb3VuZC1jb2xvcjojQThCN0M2Owp9Ci5TaW1XcmFwe2JhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7IH0KLmNvZGVISUdITElHSFR7Y29sb3I6IzM1NGQ1ODsgZm9udC1zaXplOjE0cHg7IGZvbnQtd2VpZ2h0OjYwMDsgbGluZS1oZWlnaHQ6MTVweDt9CmRpdi5wYWdlY29udGFpbmVyIC5wYWdlaGVhZGVyIHtjb2xvcjojMzU0ZDU4OyBmb250LXNpemU6MjRweDsgZm9udC13ZWlnaHQ6NjAwOyBsaW5lLWhlaWdodDoxNXB4O30KCmRpdi5wYWdlY29udGFpbmVyIC5wYWdlaGVhZGVyIHNwYW4uaGVscHRleHR7Cglmb250LXNpemU6MTJweDsgCglmb250LXdlaWdodDpub3JtYWw7CgltYXJnaW4tdG9wOi00cHg7CglwYWRkaW5nOjJweDsKCXBvc2l0aW9uOmFic29sdXRlOwoJcmlnaHQ6MzVweDsKCXotaW5kZXg6MTA7Cn0KaHJ7CglkaXNwbGF5OmJsb2NrOwoJfQp0ZXh0YXJlYXsKCXdpZHRoOjI1MHB4OwoJaGVpZ2h0Ojc1cHg7Cn0KLmV4dGVuZEhBTkRMRSAqIHsKCWRpc3BsYXk6aW5saW5lOwoJbWFyZ2luOjFlbSAwIDAuMmVtIDIwJTsKCWN1cnNvcjpwb2ludGVyOwp9CgouTmV4dGVuZCB7CgltYXJnaW46MWVtIDAgMC4yZW0gMjAlOwoJcG9zaXRpb246IHJlbGF0aXZlOwp9Ci5OZXh0ZW5kIHsKCWRpc3BsYXk6bm9uZTsKfQoKLlRyYW5zbGF0ZUNvbiB7CgliYWNrZ3JvdW5kLWNvbG9yOiNGRkZGRkY7Cglib3JkZXI6MnB4IHNvbGlkICMwMDAwMDA7Cglwb3NpdGlvbjphYnNvbHV0ZTsKCXdpZHRoOjE5NXB4OwoJei1pbmRleDo3MDA7Cn0KLmNvbnRyeUNvZGVzewoJd2lkdGg6MzUwcHg7CgloZWlnaHQ6MTUwcHg7CglvdmVyZmxvdzpzY3JvbGw7Cglib3JkZXI6IG1lZGl1bSBpbnNldCAjMzMzOwoJYmFja2dyb3VuZC1jb2xvcjojQ0NDOwoJcGFkZGluZzoxMHB4OwoJbGluZS1oZWlnaHQ6MjBweDsKfQoKI2RlbW90aXAgewoJZGlzcGxheTpub25lOwoJYmFja2dyb3VuZDp0cmFuc3BhcmVudCB1cmwoaHR0cDovL2Zsb3dwbGF5ZXIub3JnL3Rvb2xzL2ltZy90b29sdGlwL2JsYWNrX2Fycm93X2JpZy5wbmcpOwoJZm9udC1zaXplOjEycHg7CgloZWlnaHQ6MTY2cHg7Cgl3aWR0aDozMjBweDsKCXBhZGRpbmc6MjVweDsKCWNvbG9yOiNmZmY7Cglwb3NpdGlvbjogcmVsYXRpdmU7Cgl6LWluZGV4Ojk5OTY7Cn0KIAovKiBzdHlsZSB0aGUgdHJpZ2dlciBlbGVtZW50cyAqLwojZGVtbyBpbWcgewoJYm9yZGVyOjA7CgljdXJzb3I6cG9pbnRlcjsKCW1hcmdpbjowIDhweDsKfQppbWcuc3lzdGVtaWNvbnsgY3Vyc29yOnBvaW50ZXI7fQoucHJvZ3Jlc3Mge3Bvc2l0aW9uOmFic29sdXRlO3RvcDo0NSU7bGVmdDo1MCU7IHotaW5kZXg6OTk5Nzt9CgojcGFnZV90YWJzIGRpdnsKCWJhY2tncm91bmQ6dHJhbnNwYXJlbnQgbm9uZTsKCWJvcmRlcjogbm9uZTsKCW1hcmdpbjowcHg7CglwYWRkaW5nOjBweDsKCWZsb2F0Om5vbmU7CgljdXJzb3I6ZGVmYXVsdDt9CmRpdi5UYWJwYW5lcyBkaXYucGFuZSB7CglkaXNwbGF5Om5vbmU7CQkKCXBhZGRpbmc6MTVweCAxMHB4OwoJYm9yZGVyOjFweCBzb2xpZCAjOTk5OwoJYm9yZGVyLXRvcDowOwoJZm9udC1zaXplOjEycHg7CgliYWNrZ3JvdW5kLWNvbG9yOiNmZmY7Cn0KCi8qIHJvb3QgZWxlbWVudCBmb3IgdGFicyAgKi8KdWwudGFiZXJzIHsgCglsaXN0LXN0eWxlOm5vbmU7IAoJbWFyZ2luOjAgIWltcG9ydGFudDsgCglwYWRkaW5nOjA7CgloZWlnaHQ6MzBweDsKCWJvcmRlci1ib3R0b206MXB4IHNvbGlkICM2NjY7CQp9CgovKiBzaW5nbGUgdGFiICovCnVsLnRhYmVycyBsaSB7IAoJZmxvYXQ6bGVmdDsJIAoJdGV4dC1pbmRlbnQ6MDsKCXBhZGRpbmc6MDsKCW1hcmdpbjowICFpbXBvcnRhbnQ7CglsaXN0LXN0eWxlLWltYWdlOm5vbmUgIWltcG9ydGFudDsgCn0KCi8qIGxpbmsgaW5zaWRlIHRoZSB0YWIuIHVzZXMgYSBiYWNrZ3JvdW5kIGltYWdlICovCnVsLnRhYmVycyBhIHsgCgliYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JsdWUucG5nKSBuby1yZXBlYXQgLTQyMHB4IDA7Cglmb250LXNpemU6MTFweDsKCWRpc3BsYXk6YmxvY2s7CgloZWlnaHQ6IDMwcHg7ICAKCWxpbmUtaGVpZ2h0OjMwcHg7Cgl3aWR0aDogMTM0cHg7Cgl0ZXh0LWFsaWduOmNlbnRlcjsJCgl0ZXh0LWRlY29yYXRpb246bm9uZTsKCWNvbG9yOiMwMDA7CglwYWRkaW5nOjBweDsKCW1hcmdpbjowcHg7CQoJcG9zaXRpb246cmVsYXRpdmU7Cgl0b3A6MXB4Owp9Cgp1bC50YWJlcnMgYTphY3RpdmUgewoJb3V0bGluZTpub25lOwkJCn0KCi8qIHdoZW4gbW91c2UgZW50ZXJzIHRoZSB0YWIgbW92ZSB0aGUgYmFja2dyb3VuZCBpbWFnZSAqLwp1bC50YWJlcnMgYTpob3ZlciB7CgliYWNrZ3JvdW5kOiB1cmwoLi4vaW1hZ2VzL2JsdWUucG5nKSBuby1yZXBlYXQgLTQyMHB4ICAtMzFweDs7Cgljb2xvcjojZmZmOwkKfQoKLyogYWN0aXZlIHRhYiB1c2VzIGEgY2xhc3MgbmFtZSAiY3VycmVudCIuIGl0J3MgaGlnaGxpZ2h0IGlzIGFsc28gZG9uZSBieSBtb3ZpbmcgdGhlIGJhY2tncm91bmQgaW1hZ2UuICovCnVsLnRhYmVycyBhLmN1cnJlbnQsIHVsLnRhYmVycyBhLmN1cnJlbnQ6aG92ZXIsIHVsLnRhYmVycyBsaS5jdXJyZW50IGEgewoJYmFja2dyb3VuZC1wb3NpdGlvbjogLTQyMHB4IC02MnB4OwkJCgljdXJzb3I6ZGVmYXVsdCAhaW1wb3J0YW50OyAKCWNvbG9yOiMwMDAgIWltcG9ydGFudDsKfQoKLyogRGlmZmVyZW50IHdpZHRocyBmb3IgdGFiczogdXNlIGEgY2xhc3MgbmFtZTogdzEsIHcyLCB3MyBvciB3MiAqLwoKCi8qIHdpZHRoIDEgKi8KdWwudGFiZXJzIGEudzEgCQkJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE5cHggMDsgd2lkdGg6MTM0cHg7IH0KdWwudGFiZXJzIGEudzE6aG92ZXIgCXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTUxOXB4IC0zMXB4OyB9CnVsLnRhYmVycyBhLncxLmN1cnJlbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtNTE5cHggLTYycHg7IH0KCi8qIHdpZHRoIDIgKi8KdWwudGFiZXJzIGEudzIgCQkJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzY2cHggLTBweDsgd2lkdGg6MTU0cHg7IH0KdWwudGFiZXJzIGEudzI6aG92ZXIgCXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTM2NnB4IC0zMXB4OyB9CnVsLnRhYmVycyBhLncyLmN1cnJlbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMzY2cHggLTYycHg7IH0KCgovKiB3aWR0aCAzICovCnVsLnRhYmVycyBhLnczIAkJCXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5M3B4IC0wcHg7IHdpZHRoOjE3NHB4OyB9CnVsLnRhYmVycyBhLnczOmhvdmVyIAl7IGJhY2tncm91bmQtcG9zaXRpb246IC0xOTNweCAtMzFweDsgfQp1bC50YWJlcnMgYS53My5jdXJyZW50IHsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTE5M3B4IC02MnB4OyB9CgovKiB3aWR0aCA0ICovCnVsLnRhYmVycyBhLnc0IAkJCXsgYmFja2dyb3VuZC1wb3NpdGlvbjogLTBweCAtMHB4OyB3aWR0aDoxOTRweDsgfQp1bC50YWJlcnMgYS53NDpob3ZlciAJeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMHB4IC0zMXB4OyB9CnVsLnRhYmVycyBhLnc0LmN1cnJlbnQgeyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMHB4IC02MnB4OyB9CgoKLyogaW5pdGlhbGx5IGFsbCBwYW5lcyBhcmUgaGlkZGVuICovIApkaXYuVGFicGFuZXMgZGl2LnBhbmUgewoJZGlzcGxheTpub25lOwkJCn0KI3BhZ2VfdGFicyAjUFBCTXsKCWJvcmRlci1yaWdodDogMXB4IHNvbGlkICMzMzM7Cglib3JkZXItYm90dG9tOiAxcHggc29saWQgIzMzMzsKCWJvcmRlci1sZWZ0OiAxcHggc29saWQgIzMzMzsKCXdpZHRoOjEwMCU7Cn0KI3BhZ2VfdGFicyBkaXYucGFuZXsKCXdpZHRoOjEwMCU7CnBhZGRpbmctdG9wOjEwcHg7CnRleHQtYWxpZ246bGVmdDsKCX0KI3BhZ2VfdGFic3sgbWFyZ2luOjBweDsgcGFkZGluZzowcHg7fQoKZGl2LnBhZ2Vjb250YWluZXIgLnBhZ2V0ZXh0IHsgdGV4dC1hbGlnbjpsZWZ0O30KCiNwYWdlX3RhYnMgZGl2LlRyYW5zbGF0ZXsKCXRleHQtYWxpZ246bGVmdDsKY29sb3I6IzM4NDY1NDsKZm9udC13ZWlnaHQ6Ym9sZDsKbWFyZ2luOjFlbSAwIDAuMmVtIDIwJTsKcGFkZGluZzowOwp3aWR0aDphdXRvOwkKfQoKZGl2LlRyYW5zbGF0ZSAqewoJbWFyZ2luOjBweDsgcGFkZGluZzowcHg7Cn0KCgoK]]></data>
	</file>
	<file>
	  <filename>/function.admin_ACToptionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwoKCSRMYW5nQXJyYXk9YXJyYXkoCgkJJ1VOSVRFRCBTVEFURVMnPT4nVVMnLCdVTklURUQgU1RBVEVTIE1JTk9SIE9VVExZSU5HIElTTEFORFMnPT4nVU0nLCdBRkdIQU5JU1RBTic9PidBRicsJ0FMQU5EIElTTEFORFMnPT4nQVgnLCdBTEJBTklBJz0+J0FMJywnQUxHRVJJQSc9PidEWicsJ0FNRVJJQ0FOIFNBTU9BJz0+J0FTJywnQU5ET1JSQSc9PidBRCcsJ0FOR09MQSc9PidBTycsJ0FOR1VJTExBJz0+J0FJJywnQU5UQVJDVElDQSc9PidBUScsJ0FOVElHVUEgQU5EIEJBUkJVREEnPT4nQUcnLCdBUkdFTlRJTkEnPT4nQVInLCdBUk1FTklBJz0+J0FNJywnQVJVQkEnPT4nQVcnLCdBVVNUUkFMSUEnPT4nQVUnLCdBVVNUUklBJz0+J0FUJywnQVpFUkJBSUpBTic9PidBWicsJ0JBSEFNQVMnPT4nQlMnLCdCQUhSQUlOJz0+J0JIJywnQkFOR0xBREVTSCc9PidCRCcsJ0JBUkJBRE9TJz0+J0JCJywnQkVMQVJVUyc9PidCWScsJ0JFTEdJVU0nPT4nQkUnLCdCRUxJWkUnPT4nQlonLCdCRU5JTic9PidCSicsJ0JFUk1VREEnPT4nQk0nLCdCSFVUQU4nPT4nQlQnLCdCT0xJVklBJz0+J0JPJywnQk9TTklBIEFORCBIRVJaRUdPVklOQSc9PidCQScsJ0JPVFNXQU5BJz0+J0JXJywnQk9VVkVUIElTTEFORCc9PidCVicsJ0JSQVpJTCc9PidCUicsJ0JSSVRJU0ggSU5ESUFOIE9DRUFOIFRFUlJJVE9SWSc9PidJTycsJ0JSVU5FSSBEQVJVU1NBTEFNJz0+J0JOJywnQlVMR0FSSUEnPT4nQkcnLCdCVVJLSU5BIEZBU08nPT4nQkYnLCdCVVJVTkRJJz0+J0JJJywnQ0FNQk9ESUEnPT4nS0gnLCdDQU1FUk9PTic9PidDTScsJ0NBTkFEQSc9PidDQScsJ0NBUEUgVkVSREUnPT4nQ1YnLCdDQVlNQU4gSVNMQU5EUyc9PidLWScsJ0NFTlRSQUwgQUZSSUNBTiBSRVBVQkxJQyc9PidDRicsJ0NIQUQnPT4nVEQnLCdDSElMRSc9PidDTCcsJ0NISU5BJz0+J0NOJywnQ0hSSVNUTUFTIElTTEFORCc9PidDWCcsJ0NPQ09TIChLRUVMSU5HKSBJU0xBTkRTJz0+J0NDJywnQ09MT01CSUEnPT4nQ08nLCdDT01PUk9TJz0+J0tNJywnQ09OR08nPT4nQ0cnLCdDT05HTywgVEhFIERFTU9DUkFUSUMgUkVQVUJMSUMgT0YgVEhFJz0+J0NEJywnQ09PSyBJU0xBTkRTJz0+J0NLJywnQ09TVEEgUklDQSc9PidDUicsJ0NPVEUgRFwnSVZPSVJFJz0+J0NJJywnQ1JPQVRJQSc9PidIUicsJ0NVQkEnPT4nQ1UnLCdDWVBSVVMnPT4nQ1knLCdDWkVDSCBSRVBVQkxJQyc9PidDWicsJ0RFTk1BUksnPT4nREsnLCdESklCT1VUSSc9PidESicsJ0RPTUlOSUNBJz0+J0RNJywnRE9NSU5JQ0FOIFJFUFVCTElDJz0+J0RPJywnRUNVQURPUic9PidFQycsJ0VHWVBUJz0+J0VHJywnRUwgU0FMVkFET1InPT4nU1YnLCdFUVVBVE9SSUFMIEdVSU5FQSc9PidHUScsJ0VSSVRSRUEnPT4nRVInLCdFU1RPTklBJz0+J0VFJywnRVRISU9QSUEnPT4nRVQnLCdGQUxLTEFORCBJU0xBTkRTIChNQUxWSU5BUyknPT4nRksnLCdGQVJPRSBJU0xBTkRTJz0+J0ZPJywnRklKSSc9PidGSicsJ0ZJTkxBTkQnPT4nRkknLCdGUkFOQ0UnPT4nRlInLCdGUkVOQ0ggR1VJQU5BJz0+J0dGJywnRlJFTkNIIFBPTFlORVNJQSc9PidQRicsJ0ZSRU5DSCBTT1VUSEVSTiBURVJSSVRPUklFUyc9PidURicsJ0dBQk9OJz0+J0dBJywnR0FNQklBJz0+J0dNJywnR0VPUkdJQSc9PidHRScsJ0dFUk1BTlknPT4nREUnLCdHSEFOQSc9PidHSCcsJ0dJQlJBTFRBUic9PidHSScsJ0dSRUVDRSc9PidHUicsJ0dSRUVOTEFORCc9PidHTCcsJ0dSRU5BREEnPT4nR0QnLCdHVUFERUxPVVBFJz0+J0dQJywnR1VBTSc9PidHVScsJ0dVQVRFTUFMQSc9PidHVCcsJ0dVRVJOU0VZJz0+J0dHJywnR1VJTkVBJz0+J0dOJywnR1VJTkVBLUJJU1NBVSc9PidHVycsJ0dVWUFOQSc9PidHWScsJ0hBSVRJJz0+J0hUJywnSEVBUkQgSVNMQU5EIEFORCBNQ0RPTkFMRCBJU0xBTkRTJz0+J0hNJywnSE9MWSBTRUUgKFZBVElDQU4gQ0lUWSBTVEFURSknPT4nVkEnLCdIT05EVVJBUyc9PidITicsJ0hPTkcgS09ORyc9PidISycsJ0hVTkdBUlknPT4nSFUnLCdJQ0VMQU5EJz0+J0lTJywnSU5ESUEnPT4nSU4nLCdJTkRPTkVTSUEnPT4nSUQnLCdJUkFOLCBJU0xBTUlDIFJFUFVCTElDIE9GJz0+J0lSJywnSVJBUSc9PidJUScsJ0lSRUxBTkQnPT4nSUUnLCdJU0xFIE9GIE1BTic9PidJTScsJ0lTUkFFTCc9PidJTCcsJ0lUQUxZJz0+J0lUJywnSkFNQUlDQSc9PidKTScsJ0pBUEFOJz0+J0pQJywnSkVSU0VZJz0+J0pFJywnSk9SREFOJz0+J0pPJywnS0FaQUtIU1RBTic9PidLWicsJ0tFTllBJz0+J0tFJywnS0lSSUJBVEknPT4nS0knLCdLT1JFQSwgREVNT0NSQVRJQyBQRU9QTEVcJ1MgUkVQVUJMSUMgT0YnPT4nS1AnLCdLT1JFQSwgUkVQVUJMSUMgT0YnPT4nS1InLCdLVVdBSVQnPT4nS1cnLCdLWVJHWVpTVEFOJz0+J0tHJywnTEFPIFBFT1BMRVwnUyBERU1PQ1JBVElDIFJFUFVCTElDJz0+J0xBJywnTEFUVklBJz0+J0xWJywnTEVCQU5PTic9PidMQicsJ0xFU09USE8nPT4nTFMnLCdMSUJFUklBJz0+J0xSJywnTElCWUFOIEFSQUIgSkFNQUhJUklZQSc9PidMWScsJ0xJRUNIVEVOU1RFSU4nPT4nTEknLCdMSVRIVUFOSUEnPT4nTFQnLCdMVVhFTUJPVVJHJz0+J0xVJywnTUFDQU8nPT4nTU8nLCdNQUNFRE9OSUEsIFRIRSBGT1JNRVIgWVVHT1NMQVYgUkVQVUJMSUMgT0YnPT4nTUsnLCdNQURBR0FTQ0FSJz0+J01HJywnTUFMQVdJJz0+J01XJywnTUFMQVlTSUEnPT4nTVknLCdNQUxESVZFUyc9PidNVicsJ01BTEknPT4nTUwnLCdNQUxUQSc9PidNVCcsJ01BUlNIQUxMIElTTEFORFMnPT4nTUgnLCdNQVJUSU5JUVVFJz0+J01RJywnTUFVUklUQU5JQSc9PidNUicsJ01BVVJJVElVUyc9PidNVScsJ01BWU9UVEUnPT4nWVQnLCdNRVhJQ08nPT4nTVgnLCdNSUNST05FU0lBLCBGRURFUkFURUQgU1RBVEVTIE9GJz0+J0ZNJywnTU9MRE9WQSwgUkVQVUJMSUMgT0YnPT4nTUQnLCdNT05BQ08nPT4nTUMnLCdNT05HT0xJQSc9PidNTicsJ01PTlRTRVJSQVQnPT4nTVMnLCdNT1JPQ0NPJz0+J01BJywnTU9aQU1CSVFVRSc9PidNWicsJ01ZQU5NQVInPT4nTU0nLCdOQU1JQklBJz0+J05BJywnTkFVUlUnPT4nTlInLCdORVBBTCc9PidOUCcsJ05FVEhFUkxBTkRTJz0+J05MJywnTkVUSEVSTEFORFMgQU5USUxMRVMnPT4nQU4nLCdORVcgQ0FMRURPTklBJz0+J05DJywnTkVXIFpFQUxBTkQnPT4nTlonLCdOSUNBUkFHVUEnPT4nTkknLCdOSUdFUic9PidORScsJ05JR0VSSUEnPT4nTkcnLCdOSVVFJz0+J05VJywnTk9SRk9MSyBJU0xBTkQnPT4nTkYnLCdOT1JUSEVSTiBNQVJJQU5BIElTTEFORFMnPT4nTVAnLCdOT1JXQVknPT4nTk8nLCdPTUFOJz0+J09NJywnUEFLSVNUQU4nPT4nUEsnLCdQQUxBVSc9PidQVycsJ1BBTEVTVElOSUFOIFRFUlJJVE9SWSwgT0NDVVBJRUQnPT4nUFMnLCdQQU5BTUEnPT4nUEEnLCdQQVBVQSBORVcgR1VJTkVBJz0+J1BHJywnUEFSQUdVQVknPT4nUFknLCdQRVJVJz0+J1BFJywnUEhJTElQUElORVMnPT4nUEgnLCdQSVRDQUlSTic9PidQTicsJ1BPTEFORCc9PidQTCcsJ1BPUlRVR0FMJz0+J1BUJywnUFVFUlRPIFJJQ08nPT4nUFInLCdRQVRBUic9PidRQScsJ1JFVU5JT04nPT4nUkUnLCdST01BTklBJz0+J1JPJywnUlVTU0lBTiBGRURFUkFUSU9OJz0+J1JVJywnUldBTkRBJz0+J1JXJywnU0FJTlQgSEVMRU5BJz0+J1NIJywnU0FJTlQgS0lUVFMgQU5EIE5FVklTJz0+J0tOJywnU0FJTlQgTFVDSUEnPT4nTEMnLCdTQUlOVCBQSUVSUkUgQU5EIE1JUVVFTE9OJz0+J1BNJywnU0FJTlQgVklOQ0VOVCBBTkQgVEhFIEdSRU5BRElORVMnPT4nVkMnLCdTQU1PQSc9PidXUycsJ1NBTiBNQVJJTk8nPT4nU00nLCdTQU8gVE9NRSBBTkQgUFJJTkNJUEUnPT4nU1QnLCdTQVVESSBBUkFCSUEnPT4nU0EnLCdTRU5FR0FMJz0+J1NOJywnU0VSQklBIEFORCBNT05URU5FR1JPJz0+J0NTJywnU0VZQ0hFTExFUyc9PidTQycsJ1NJRVJSQSBMRU9ORSc9PidTTCcsJ1NJTkdBUE9SRSc9PidTRycsJ1NMT1ZBS0lBJz0+J1NLJywnU0xPVkVOSUEnPT4nU0knLCdTT0xPTU9OIElTTEFORFMnPT4nU0InLCdTT01BTElBJz0+J1NPJywnU09VVEggQUZSSUNBJz0+J1pBJywnU09VVEggR0VPUkdJQSBBTkQgVEhFIFNPVVRIIFNBTkRXSUNIIElTTEFORFMnPT4nR1MnLCdTUEFJTic9PidFUycsJ1NSSSBMQU5LQSc9PidMSycsJ1NVREFOJz0+J1NEJywnU1VSSU5BTUUnPT4nU1InLCdTVkFMQkFSRCBBTkQgSkFOIE1BWUVOJz0+J1NKJywnU1dBWklMQU5EJz0+J1NaJywnU1dFREVOJz0+J1NFJywnU1dJVFpFUkxBTkQnPT4nQ0gnLCdTWVJJQU4gQVJBQiBSRVBVQkxJQyc9PidTWScsJ1RBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEnPT4nVFcnLCdUQUpJS0lTVEFOJz0+J1RKJywnVEFOWkFOSUEsIFVOSVRFRCBSRVBVQkxJQyBPRic9PidUWicsJ1RIQUlMQU5EJz0+J1RIJywnVElNT1ItTEVTVEUnPT4nVEwnLCdUT0dPJz0+J1RHJywnVE9LRUxBVSc9PidUSycsJ1RPTkdBJz0+J1RPJywnVFJJTklEQUQgQU5EIFRPQkFHTyc9PidUVCcsJ1RVTklTSUEnPT4nVE4nLCdUVVJLRVknPT4nVFInLCdUVVJLTUVOSVNUQU4nPT4nVE0nLCdUVVJLUyBBTkQgQ0FJQ09TIElTTEFORFMnPT4nVEMnLCdUVVZBTFUnPT4nVFYnLCdVR0FOREEnPT4nVUcnLCdVS1JBSU5FJz0+J1VBJywnVU5JVEVEIEFSQUIgRU1JUkFURVMnPT4nQUUnLCdVTklURUQgS0lOR0RPTSc9PidHQicsJ1VSVUdVQVknPT4nVVknLCdVWkJFS0lTVEFOJz0+J1VaJywnVkFOVUFUVSc9PidWVScsJ1ZFTkVaVUVMQSc9PidWRScsJ1ZJRVQgTkFNJz0+J1ZOJywnVklSR0lOIElTTEFORFMsIEJSSVRJU0gnPT4nVkcnLCdWSVJHSU4gSVNMQU5EUywgVS5TLic9PidWSScsJ1dBTExJUyBBTkQgRlVUVU5BJz0+J1dGJywnV0VTVEVSTiBTQUhBUkEnPT4nRUgnLCdZRU1FTic9PidZRScsJ1pBTUJJQSc9PidaTScsJ1pJTUJBQldFJz0+J1pXJwoJKTsKICAkdXJsZXh0PUNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07CiRpbWdIZWxwRj0nPGltZyBzcmM9Ii4uL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vaW5mby1leHRlcm5hbC5naWYiIGFsdD0iJy4kdXJsZXh0LiciIGNsYXNzPSJzeXN0ZW1pY29uIiB0aXRsZT0iIiByZWw9Iic7CiRpbWdIZWxwQj0nIi8+JzsKCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZF9wcmVmc190aXRsZScsICR0aGlzLT5MYW5nKCdtb2RfcHJlZnNfdGl0bGUnKSk7CiAgICAKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnc2F2ZV9BQ1RwdGlvbnMnLCAkcmV0dXJuaWQsICdwb3N0JywgJ211bHRpcGFydC9mb3JtLWRhdGEnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fZW5kJywgJHRoaXMtPkNyZWF0ZUZvcm1FbmQoKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2Zvcm1fc3VibWl0JywgJHRoaXMtPkNyZWF0ZUlucHV0U3VibWl0KCRpZCwgJ2Zvcm1fc3VibWl0QUNUcHRpb25zJywgJHRoaXMtPkxhbmcoJ2Zvcm1fc3VibWl0JykpKTsKCiAgICAvLyB5b3UnbGwgb2Z0ZW4gd2FudCB0byBkbyB0aGluZ3MgbGlrZSB0aGlzIHRvIHByb3ZpZGUgZmVlZGJhY2s6CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21lc3NhZ2UnLCAoaXNzZXQoJHBhcmFtc1snbWVzc2FnZSddKT8kcGFyYW1zWydtZXNzYWdlJ106JycpKTsKCQoJCgkKCQoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ludGVybmFsX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2ludGVybmFsX2xhYmVsJykuJGltZ0hlbHBGLiJpbnRlcm5hbCIuJGltZ0hlbHBCKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignaW50ZXJuYWxfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdpbnRlcm5hbCcsIGFycmF5KCdObyc9PicwJywnWWVzJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2ludGVybmFsJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7CgoKCQoJJGlwPSRfU0VSVkVSWydSRU1PVEVfQUREUiddOyAKCSRpcFZhcj1zdHJfcmVwbGFjZSgiLiIsICIiLCAkaXApOwoJJE50aD1kYXRlKCJHIik7CgkkSVBoYXNoU3RyID0gc2hhMSgkaXBWYXIpOwoJJHRoZVJDT0RFPSdrZCFpZicucmFuZCgpLidzOWRqNFRvcCcucmFuZCgpLic2UFNLOTQzOGpsMSEnOwoJJHRoZVJDT0RFPXN1YnN0cigkSVBoYXNoU3RyLDEsJE50aCkuJHRoZVJDT0RFLnN1YnN0cigkSVBoYXNoU3RyLCROdGgrMSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0Zvcm1LZXlfbGFiZWwnLCAkdGhpcy0+TGFuZygnRm9ybUtleV9sYWJlbCcpLiRpbWdIZWxwRi4iRm9ybUtleSIuJGltZ0hlbHBCKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignRm9ybUtleV9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnRm9ybUtleScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdGb3JtS2V5JywkdGhlUkNPREUpLCA0MCkpOwoJCgkKCSRpcD0kX1NFUlZFUlsnUkVNT1RFX0FERFInXS5kYXRlKCdtWWQnLCBzdHJ0b3RpbWUoJysxIHdlZWsnKSk7IAoJJGlwVmFyPXN0cl9yZXBsYWNlKCIuIiwgIiIsICRpcCk7CgkkTnRoPWRhdGUoIkciKTsKCSRJUGhhc2hTdHIgPSBzaGExKCRpcFZhcik7CgkkdGhlUkNPREU9J2tkIWlmJy5yYW5kKCkuJ3M5ZGo0VG9wJy5yYW5kKCkuJzZQU0snLiRpcFZhci4nOGpsMSEnOwoJJHRoZVJDT0RFPXN1YnN0cigkSVBoYXNoU3RyLDEsJE50aCkuJHRoZVJDT0RFLnN1YnN0cigkSVBoYXNoU3RyLCROdGgrMSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0Zvcm1WYWx1ZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdGb3JtVmFsdWVfbGFiZWwnKS4kaW1nSGVscEYuIkZvcm1WYWx1ZSIuJGltZ0hlbHBCKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignRm9ybVZhbHVlX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdGb3JtVmFsdWUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnRm9ybVZhbHVlJywkdGhlUkNPREUpLCA0MCkpOwoKCSR0aGlzLT5zbWFydHktPmFzc2lnbigna2V5X2xhYmVsJywgJHRoaXMtPkxhbmcoJ2tleV9sYWJlbCcpLiRpbWdIZWxwRi4ia2V5Ii4kaW1nSGVscEIpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdrZXlfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdrZXknLCBhcnJheSgnTm8nPT5mYWxzZSwnWWVzJz0+dHJ1ZSksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXknLGZhbHNlKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOwoKCgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX2ltYWdlX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2NwcF9oZWFkZXJfaW1hZ2VfbGFiZWwnKS4kaW1nSGVscEYuImNwcF9oZWFkZXJfaW1hZ2UiLiRpbWdIZWxwQik7CgkkaW1nSGVhZD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3BwX2hlYWRlcl9pbWFnZScpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJfX1VSTF9sYWJlbCcsICR0aGlzLT5MYW5nKCdjcHBfaGVhZGVyX19VUkxfbGFiZWwnKSk7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJfX1VSTF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3BwX2hlYWRlcl9fVVJMJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJfaW1hZ2UnKSwgNDApKTsKCQkKCQkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3BwX2hlYWRlcl9fVVBMT0FEX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2NwcF9oZWFkZXJfX1VQTE9BRF9sYWJlbCcpKTsJCQoJCgkKCWlmKGlzc2V0KCRpbWdIZWFkKSYmKCRpbWdIZWFkIT0nJykpewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3BwX2hlYWRlcl9pbWFnZV9vdXRwdXQnLCAnPGltZyBzcmM9IicuJGltZ0hlYWQuJyIgYWx0PSIiIC8+Jyk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX2ltYWdlX2NsZWFyJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdjcHBfaGVhZGVyX2ltYWdlX2NsZWFyJywxKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX2ltYWdlX2NsZWFyX2xhYmxlJywgJHRoaXMtPkxhbmcoJ0NsZWFySW1nJykpOwoJfQogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyX2ltYWdlX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0RmlsZSAoJGlkLCdjcHBfaGVhZGVyX2ltYWdlJywgJycsICcnLCAnaWQ9IicuJGlkLidjcHBfaGVhZGVyX2ltYWdlIicpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3BwX2hlYWRlcl9pbWFnZV9kaXMnLCAkdGhpcy0+TGFuZygnY3BwX2hlYWRlcl9pbWFnZScpKTsKCgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmxfbGFiZWwnLCAkdGhpcy0+TGFuZygnaW1hZ2VfdXJsX2xhYmVsJykuJGltZ0hlbHBGLiJpbWFnZV91cmwiLiRpbWdIZWxwQik7CgkkaW1nSGVhZD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsJyk7CQoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9fVVJMX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2ltYWdlX3VybF9fVVJMX2xhYmVsJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmxfX1VSTF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnaW1hZ2VfdXJsX19VUkwnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnaW1hZ2VfdXJsJyksIDQwKSk7CgkJCgkJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9fVVBMT0FEX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2ltYWdlX3VybF9fVVBMT0FEX2xhYmVsJykpOwkKCQoJaWYoaXNzZXQoJGltZ0hlYWQpJiYoJGltZ0hlYWQhPScnKSl7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmxfb3V0cHV0JywgJzxpbWcgc3JjPSInLiRpbWdIZWFkLiciIGFsdD0iIiAvPicpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignaW1hZ2VfdXJsX2NsZWFyJywgJHRoaXMtPkNyZWF0ZUlucHV0Q2hlY2tib3goJGlkLCdpbWFnZV91cmxfY2xlYXInLDEpKTsKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9jbGVhcl9sYWJsZScsICR0aGlzLT5MYW5nKCdDbGVhckltZycpKTsKCgl9CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2ltYWdlX3VybF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dEZpbGUgKCRpZCwnaW1hZ2VfdXJsJywgJycsICcnLCAnaWQ9IicuJGlkLidpbWFnZV91cmwiJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdpbWFnZV91cmxfZGlzJywgJHRoaXMtPkxhbmcoJ2ltYWdlX3VybCcpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjc19sYWJlbCcsICR0aGlzLT5MYW5nKCdjc19sYWJlbCcpLiRpbWdIZWxwRi4iY3MiLiRpbWdIZWxwQik7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NzX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnY3MnLCBhcnJheSgnd2hpdGUnPT4nMCcsJ2JsYWNrJz0+JzEnKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NzJywnMCcpLCcnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7CgoKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9wYXlmbG93X2NvbG9yX2V4JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9wYXlmbG93X2NvbG9yJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfcGF5Zmxvd19sYWJlbCcsICR0aGlzLT5MYW5nKCdjcHBfcGF5Zmxvd19sYWJlbCcpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfcGF5Zmxvd19jb2xvcl9sYWJlbCcsICR0aGlzLT5MYW5nKCdjcHBfcGF5Zmxvd19jb2xvcl9sYWJlbCcpLiRpbWdIZWxwRi4iY3BwX3BheWZsb3dfY29sb3IiLiRpbWdIZWxwQik7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9wYXlmbG93X2NvbG9yX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjcHBfcGF5Zmxvd19jb2xvcicsICcjJy4kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3BwX3BheWZsb3dfY29sb3InLCdGRkZGRkYnKSwgNDApKTsKCgoKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyYm9yZGVyX2NvbG9yX2V4JywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJib3JkZXJfY29sb3InKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJib3JkZXJfbGFiZWwnLCAkdGhpcy0+TGFuZygnY3BwX2hlYWRlcmJvcmRlcl9sYWJlbCcpKTsKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyYm9yZGVyX2NvbG9yX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2NwcF9oZWFkZXJib3JkZXJfY29sb3JfbGFiZWwnKS4kaW1nSGVscEYuImNwcF9oZWFkZXJib3JkZXJfY29sb3IiLiRpbWdIZWxwQik7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NwcF9oZWFkZXJib3JkZXJfY29sb3JfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2NwcF9oZWFkZXJib3JkZXJfY29sb3InLCAnIycuJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJib3JkZXJfY29sb3InLCdGRkZGRkYnKSwgNDApKTsKCgkKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyYmFja19jb2xvcl9leCcsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyYmFja19jb2xvcicpKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3BwX2hlYWRlcmJhY2tfY29sb3JfbGFiZWwnLCAkdGhpcy0+TGFuZygnY3BwX2hlYWRlcmJhY2tfY29sb3JfbGFiZWwnKS4kaW1nSGVscEYuImNwcF9oZWFkZXJiYWNrX2NvbG9yIi4kaW1nSGVscEIpOwoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0NQX2xhYmVsJywgJHRoaXMtPkxhbmcoJ0NQX2xhYmVsJykpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjcHBfaGVhZGVyYmFja19jb2xvcl9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY3BwX2hlYWRlcmJhY2tfY29sb3InLCAnIycuJHRoaXMtPkdldFByZWZlcmVuY2UoJ2NwcF9oZWFkZXJiYWNrX2NvbG9yJywnRkZGRkZGJyksIDQwKSk7CgoKCgoKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2J1c2luZXNzTmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdidXNpbmVzc05hbWVfbGFiZWwnKS4kaW1nSGVscEYuImJ1c2luZXNzTmFtZSIuJGltZ0hlbHBCKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignYnVzaW5lc3NOYW1lX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdidXNpbmVzc05hbWUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnYnVzaW5lc3NOYW1lJywnJyksIDQwKSk7CgkKJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTYW5kQm94X2xhYmVsJywgJHRoaXMtPkxhbmcoJ1NhbmRCb3hfbGFiZWwnKS4kaW1nSGVscEYuIlNhbmRCb3giLiRpbWdIZWxwQik7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NhbmRCb3hfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdTYW5kQm94JywgYXJyYXkoJ05vJz0+ZmFsc2UsJ1llcyc9PnRydWUpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnU2FuZEJveCcsdHJ1ZSksJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTsKCgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignU0FOREJPWF9idXNpbmVzc05hbWVfbGFiZWwnLCAkdGhpcy0+TGFuZygnU0FOREJPWF9idXNpbmVzc05hbWVfbGFiZWwnKS4kaW1nSGVscEYuIlNBTkRCT1hfYnVzaW5lc3NOYW1lIi4kaW1nSGVscEIpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTQU5EQk9YX2J1c2luZXNzTmFtZV9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnU0FOREJPWF9idXNpbmVzc05hbWUnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc05hbWUnLCcnKSwgNDApKTsKCgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignU0FOREJPWF9idXNpbmVzc1BBU1NfbGFiZWwnLCAkdGhpcy0+TGFuZygnU0FOREJPWF9idXNpbmVzc1BBU1NfbGFiZWwnKS4kaW1nSGVscEYuIlNBTkRCT1hfYnVzaW5lc3NQQVNTIi4kaW1nSGVscEIpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTQU5EQk9YX2J1c2luZXNzUEFTU19pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnU0FOREJPWF9idXNpbmVzc1BBU1MnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnU0FOREJPWF9idXNpbmVzc1BBU1MnLCcnKSwgNDApKTsKCgkKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdTQU5EQk9YX3BlcnNvbmFsTmFtZV9sYWJlbCcsICR0aGlzLT5MYW5nKCdTQU5EQk9YX3BlcnNvbmFsTmFtZV9sYWJlbCcpLiRpbWdIZWxwRi4iU0FOREJPWF9wZXJzb25hbE5hbWUiLiRpbWdIZWxwQik7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NBTkRCT1hfcGVyc29uYWxOYW1lX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdTQU5EQk9YX3BlcnNvbmFsTmFtZScsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdTQU5EQk9YX3BlcnNvbmFsTmFtZScsJycpLCA0MCkpOwoKCQoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ1NBTkRCT1hfcGVyc29uYWxQQVNTX2xhYmVsJywgJHRoaXMtPkxhbmcoJ1NBTkRCT1hfcGVyc29uYWxQQVNTX2xhYmVsJykuJGltZ0hlbHBGLiJTQU5EQk9YX3BlcnNvbmFsUEFTUyIuJGltZ0hlbHBCKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignU0FOREJPWF9wZXJzb25hbFBBU1NfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ1NBTkRCT1hfcGVyc29uYWxQQVNTJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ1NBTkRCT1hfcGVyc29uYWxQQVNTJywnJyksIDQwKSk7CgoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ0xhbmdfbGFiZWwnLCAkdGhpcy0+TGFuZygnTGFuZ19sYWJlbCcpLiRpbWdIZWxwRi4iTGFuZyIuJGltZ0hlbHBCKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignTGFuZ19pbnB1dCcsCgkJICAkdGhpcy0+Q3JlYXRlSW5wdXREcm9wZG93bigkaWQsICdMYW5nJywgJExhbmdBcnJheSwgJycsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdMYW5nJywnZW4nKSkpOwoJCgokdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlYnVnVCcsICR0aGlzLT5MYW5nKCdkZWJ1Z1QnKSk7CgkkZmlyZXBocG1vZHVsZT0kdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0ZpcmVQSFBEZWJ1ZycpOwoJICBpZiAoJGZpcmVwaHBtb2R1bGUpewoJCSRkZWJ1Z0lUX2xhYmVsPSR0aGlzLT5MYW5nKCdkZWJ1Z0lUX2xhYmVsJyk7CgkJJGRpc2FibGU9Jyc7CgkgIH1lbHNlewoJCSAgJGRlYnVnSVRfbGFiZWw9ICR0aGlzLT5MYW5nKCdkZWJ1Z0lUX2xhYmVsJykuJHRoaXMtPkxhbmcoJ2RlYnVnSVRub3RlX2xhYmVsJyk7CgkJICAkZGlzYWJsZT0nZGlzYWJsZWQ9ImRpc2FibGVkIic7CgkgIH0KCSR0aGlzLT5zbWFydHktPmFzc2lnbignZGVidWdJVF9sYWJlbCcsICRkZWJ1Z0lUX2xhYmVsLiRpbWdIZWxwRi4iZGVidWdJVCIuJGltZ0hlbHBCKTsJCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2RlYnVnSVRfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdkZWJ1Z0lUJywgYXJyYXkoJ05vJz0+JzAnLCdZZXMnPT4nMScpLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnZGVidWdJVCcpLCcnLiRkaXNhYmxlLicnLCcmbmJzcDsmbmJzcDsmbmJzcDsnKSk7CgoJCgkKCQogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9vcHRpb25zLnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/function.admin_BTNoptionstab.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KaWYoICFpc3NldCgkZ0NtcykgKSBleGl0OwokdXJsZXh0PUNNU19TRUNVUkVfUEFSQU1fTkFNRS4nPScuJF9TRVNTSU9OW0NNU19VU0VSX0tFWV07CiRpbWdIZWxwRj0nPGltZyBzcmM9Ii4uL2FkbWluL3RoZW1lcy9OQ2xlYW5HcmV5L2ltYWdlcy9pY29ucy9zeXN0ZW0vaW5mby1leHRlcm5hbC5naWYiIGFsdD0iJy4kdXJsZXh0LiciIGNsYXNzPSJzeXN0ZW1pY29uIiB0aXRsZT0iIiByZWw9Iic7CiRpbWdIZWxwQj0nIi8+JzsKCiRjQXJyYXk9YXJyYXkoCidVU0QnPT4nJCcsCidFVVInPT4nJmV1cm87JywKJ0dCUCc9PicmcG91bmQ7JywKJ0NBRCc9PickJywKJ0pQWSc9PicmeWVuOycKKTsKCgoJJENDb2RlPSAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VycmVuY3lfY29kZScsJ1VTRCcpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdDQ29kZScsJGNBcnJheVskQ0NvZGVdKTsKCiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ21vZF9wcmVmc190aXRsZScsICR0aGlzLT5MYW5nKCdtb2RfcHJlZnNfdGl0bGUnKSk7CiAgICAKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignZm9ybV9zdGFydCcsICR0aGlzLT5DcmVhdGVGb3JtU3RhcnQoJGlkLCAnc2F2ZV9CTlRvcHRpb25zJywgJHJldHVybmlkLCAncG9zdCcsICdtdWx0aXBhcnQvZm9ybS1kYXRhJykpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX2VuZCcsICR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdmb3JtX3N1Ym1pdCcsICR0aGlzLT5DcmVhdGVJbnB1dFN1Ym1pdCgkaWQsICdmb3JtX3N1Ym1pdCcsICR0aGlzLT5MYW5nKCdmb3JtX3N1Ym1pdCcpKSk7CgogICAgLy8geW91J2xsIG9mdGVuIHdhbnQgdG8gZG8gdGhpbmdzIGxpa2UgdGhpcyB0byBwcm92aWRlIGZlZWRiYWNrOgogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdtZXNzYWdlJywgKGlzc2V0KCRwYXJhbXNbJ21lc3NhZ2UnXSk/JHBhcmFtc1snbWVzc2FnZSddOicnKSk7CgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbigncm1fbGFiZWwnLCAkdGhpcy0+TGFuZygncm1fbGFiZWwnKS4kaW1nSGVscEYuInJtIi4kaW1nSGVscEIpOwogICAgJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdybV9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ3JtJywgYXJyYXkoJyRfR0VUIEZ1bGwnPT4nMCcsJyRfR0VUIG9uZSB3YXknPT4nMScsJyRfUE9TVCBGdWxsJz0+JzInKSwgJHRoaXMtPkdldFByZWZlcmVuY2UoJ3JtJywnMicpLCcnLCc8YnIvPicpKTsKCgkKCSR0aGlzLT5zbWFydHktPmFzc2lnbignUmVkaXJlY3RVUkxfbGFiZWwnLCAkdGhpcy0+TGFuZygnUmVkaXJlY3RVUkxfbGFiZWwnKS4kaW1nSGVscEYuIlJlZGlyZWN0VVJMIi4kaW1nSGVscEIpOwoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdSZWRpcmVjdFVSTF9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnUmVkaXJlY3RVUkwnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnUmVkaXJlY3RVUkwnLCcnKSwgNDApKTsKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NidF9sYWJlbCcsICR0aGlzLT5MYW5nKCdjYnRfbGFiZWwnKS4kaW1nSGVscEYuImNidCIuJGltZ0hlbHBCKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2J0X2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjYnQnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2J0JywnJyksIDQwKSk7CgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdzbWFydHlPbl9sYWJlbCcsICR0aGlzLT5MYW5nKCdzbWFydHlPbl9sYWJlbCcpLiRpbWdIZWxwRi4ic21hcnR5T24iLiRpbWdIZWxwQik7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ3NtYXJ0eU9uX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0UmFkaW9Hcm91cCAoJGlkLCAnc21hcnR5T24nLCBhcnJheSgnTm8nPT4nMCcsJ1llcyc9PicxJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzbWFydHlPbicsJzAnKSwnJywnJm5ic3A7Jm5ic3A7Jm5ic3A7JykpOwoKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2N1c3RvbV9sYWJlbCcsICR0aGlzLT5MYW5nKCdjdXN0b21fbGFiZWwnKS4kaW1nSGVscEYuImN1c3RvbSIuJGltZ0hlbHBCKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY3VzdG9tX2lucHV0JywgJHRoaXMtPkNyZWF0ZUlucHV0VGV4dCgkaWQsICdjdXN0b20nLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3VzdG9tJywnJyksIDQwKSk7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2hhbmRsaW5nX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2hhbmRsaW5nX2xhYmVsJykuJGltZ0hlbHBGLiJoYW5kbGluZyIuJGltZ0hlbHBCKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignaGFuZGxpbmdfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ2hhbmRsaW5nJywgJHRoaXMtPkdldFByZWZlcmVuY2UoJ2hhbmRsaW5nJywnJyksIDQwKSk7CgkKCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2FkZHJlc3Nfb3ZlcnJpZGVfbGFiZWwnLCAkdGhpcy0+TGFuZygnYWRkcmVzc19vdmVycmlkZV9sYWJlbCcpLiRpbWdIZWxwRi4iYWRkcmVzc19vdmVycmlkZSIuJGltZ0hlbHBCKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignYWRkcmVzc19vdmVycmlkZV9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFJhZGlvR3JvdXAgKCRpZCwgJ2FkZHJlc3Nfb3ZlcnJpZGUnLCBhcnJheSgnTm8nPT5mYWxzZSwnWWVzJz0+dHJ1ZSksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZGRyZXNzX292ZXJyaWRlJyxmYWxzZSksJycsJyZuYnNwOyZuYnNwOyZuYnNwOycpKTsKCQoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2NhbmNlbF9yZXR1cm5fbGFiZWwnLCAkdGhpcy0+TGFuZygnY2FuY2VsX3JldHVybl9sYWJlbCcpLiRpbWdIZWxwRi4iY2FuY2VsX3JldHVybiIuJGltZ0hlbHBCKTsKCSR0aGlzLT5zbWFydHktPmFzc2lnbignY2FuY2VsX3JldHVybl9pbnB1dCcsICR0aGlzLT5DcmVhdGVJbnB1dFRleHQoJGlkLCAnY2FuY2VsX3JldHVybicsICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjYW5jZWxfcmV0dXJuJywnJyksIDQwKSk7CgoJCgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vX3NoaXBwaW5nX2xhYmVsJywgJHRoaXMtPkxhbmcoJ25vX3NoaXBwaW5nX2xhYmVsJykuJGltZ0hlbHBGLiJub19zaGlwcGluZyIuJGltZ0hlbHBCKTsKICAgICR0aGlzLT5zbWFydHktPmFzc2lnbignbm9fc2hpcHBpbmdfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdub19zaGlwcGluZycsIGFycmF5KCdub3QgcHJvbXB0ZWQnPT4nMScsJ3Byb21wdGVkLCBub3QgcmVxdWlyZWQnPT4nMCcsJ3Byb21wdGVkLCByZXF1aXJlZCc9PicyJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdub19zaGlwcGluZycsJzAnKSwnJywnPGJyLz4nKSk7CgoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdub3RpZnlfdXJsX2xhYmVsJywgJHRoaXMtPkxhbmcoJ25vdGlmeV91cmxfbGFiZWwnKS4kaW1nSGVscEYuIm5vdGlmeV91cmwiLiRpbWdIZWxwQik7CgkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25vdGlmeV91cmxfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRUZXh0KCRpZCwgJ25vdGlmeV91cmwnLCAkdGhpcy0+R2V0UHJlZmVyZW5jZSgnbm90aWZ5X3VybCcsJycpLCA0MCkpOwoKCQoJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCdjdXJyZW5jeV9jb2RlX2xhYmVsJywgJHRoaXMtPkxhbmcoJ2N1cnJlbmN5X2NvZGVfbGFiZWwnKS4kaW1nSGVscEYuImN1cnJlbmN5X2NvZGUiLiRpbWdIZWxwQik7CiAgICAkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2N1cnJlbmN5X2NvZGVfaW5wdXQnLCAkdGhpcy0+Q3JlYXRlSW5wdXRSYWRpb0dyb3VwICgkaWQsICdjdXJyZW5jeV9jb2RlJywgYXJyYXkoJ1VTRCc9PidVU0QnLCdFVVInPT4nRVVSJywnR0JQJz0+J0dCUCcsJ0NBRCc9PidDQUQnLCdKUFknPT4nSlBZJyksICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjdXJyZW5jeV9jb2RlJywnVVNEJyksJycsJzxici8+JykpOwoKCQoKCQogICAgZWNobyAkdGhpcy0+UHJvY2Vzc1RlbXBsYXRlKCdhZG1pbl9CTlRvcHRpb25zLnRwbCcpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/imagefiles.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKI0NNUyAtIENNUyBNYWRlIFNpbXBsZQojKGMpMjAwNCBieSBUZWQgS3VscCAod2lzaHlAdXNlcnMuc2YubmV0KQojVGhpcyBwcm9qZWN0J3MgaG9tZXBhZ2UgaXM6IGh0dHA6Ly9jbXNtYWRlc2ltcGxlLnNmLm5ldAojCiNUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKI3RoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiMoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgojCiNUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKI2J1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiNNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiNHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKI2Fsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiNGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAgMDIxMTEtMTMwNyAgVVNBCiMKIyRJZDogaW1hZ2VmaWxlcy5waHAgNTE4OSAyMDA4LTEwLTI5IDIwOjAyOjUzWiBjYWxndXkxMDAwICQKCgoKLy8gaW4gZmlsZXR5cGVzLmluYy5waHAgZmlsZXR5cGVzIGFyZSBkZWZpbmVkIAovL3JlcXVpcmVfb25jZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKS4iL2xpYi9maWxlbWFuYWdlci9maWxldHlwZXMuaW5jLnBocCIpOwpyZXF1aXJlX29uY2UoZGlybmFtZShkaXJuYW1lKF9fRklMRV9fKSkuJy4uLy4uL2xpYi9maWxlbWFuYWdlci9maWxldHlwZXMuaW5jLnBocCcpOwovL3JlcXVpcmVfb25jZShkaXJuYW1lKGRpcm5hbWUoX19GSUxFX18pKS4iL2xpYi9maWxlLmZ1bmN0aW9ucy5waHAiKTsKcmVxdWlyZV9vbmNlKGRpcm5hbWUoZGlybmFtZShfX0ZJTEVfXykpLicuLi8uLi9saWIvZmlsZS5mdW5jdGlvbnMucGhwJyk7Ci8vcmVxdWlyZV9vbmNlKCIuLi9pbmNsdWRlLnBocCIpOwoKJHVybGV4dD0nPycuQ01TX1NFQ1VSRV9QQVJBTV9OQU1FLic9Jy4kX1NFU1NJT05bQ01TX1VTRVJfS0VZXTsKCi8vY2hlY2tfbG9naW4oKTsKCiRyZXNpemVBdD0gJHRoaXMtPkdldFByZWZlcmVuY2UoJ0ltYWdlX1NpemUnLCAnNjQwJyk7CiR0aGlzLT5GaXJlRGVidWcoJ21lc3NhZ2UnLCRyZXNpemVBdCk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQokYWN0aW9uX2RvbmU9Jyc7CmNsYXNzIEltZ1Jlc2l6ZXIgewoJcHJpdmF0ZSAkb3JpZ2luYWxGaWxlID0gJyc7CglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJG9yaWdpbmFsRmlsZSA9ICcnKSB7CgkJJHRoaXMgLT4gb3JpZ2luYWxGaWxlID0gJG9yaWdpbmFsRmlsZTsKCX0KCXB1YmxpYyBmdW5jdGlvbiByZXNpemUoJG5ld1dpZHRoLCAkdGFyZ2V0RmlsZSkgewoJCWlmIChlbXB0eSgkbmV3V2lkdGgpIHx8IGVtcHR5KCR0YXJnZXRGaWxlKSkgewoJCQlyZXR1cm4gZmFsc2U7CgkJfQoJCWdsb2JhbCAkZ0NtczsKCQkkY2FycyA9ICYkZ0Ntcy0+bW9kdWxlc1snQ2FycyddWydvYmplY3QnXTsKCQkkcWx0PSRjYXJzLT5HZXRQcmVmZXJlbmNlKCdJbWFnZV9RbHQnLCAnNDEnKTsKCQkkc3JjID0gaW1hZ2VjcmVhdGVmcm9tanBlZygkdGhpcyAtPiBvcmlnaW5hbEZpbGUpOwoJCWxpc3QoJHdpZHRoLCAkaGVpZ2h0KSA9IGdldGltYWdlc2l6ZSgkdGhpcyAtPiBvcmlnaW5hbEZpbGUpOwoJCSRuZXdIZWlnaHQgPSAoJGhlaWdodCAvICR3aWR0aCkgKiAkbmV3V2lkdGg7CgkJJHRtcCA9IGltYWdlY3JlYXRldHJ1ZWNvbG9yKCRuZXdXaWR0aCwgJG5ld0hlaWdodCk7CgkJaW1hZ2Vjb3B5cmVzYW1wbGVkKCR0bXAsICRzcmMsIDAsIDAsIDAsIDAsICRuZXdXaWR0aCwgJG5ld0hlaWdodCwgJHdpZHRoLCAkaGVpZ2h0KTsKCQlpZiAoZmlsZV9leGlzdHMoJHRhcmdldEZpbGUpKSB7CgkJCXVubGluaygkdGFyZ2V0RmlsZSk7CgkJfQoJCWltYWdlanBlZygkdG1wLCAkdGFyZ2V0RmlsZSwgJHFsdCk7IC8vIDg1IGlzIG15IGNob2ljZSwgbWFrZSBpdCBiZXR3ZWVuIDAgliAxMDAgZm9yIG91dHB1dCBpbWFnZSBxdWFsaXR5IHdpdGggMTAwIGJlaW5nIHRoZSBtb3N0IGx1eHVyaW91cwoJfQp9CmZ1bmN0aW9uIGRlbGRpcigkZGlyKQp7CgkkaGFuZGxlID0gb3BlbmRpcigkZGlyKTsKCXdoaWxlIChmYWxzZSE9PSgkRm9sZGVyT3JGaWxlID0gcmVhZGRpcigkaGFuZGxlKSkpCgl7CgkJaWYoJEZvbGRlck9yRmlsZSAhPSAiLiIgJiYgJEZvbGRlck9yRmlsZSAhPSAiLi4iKSAKCQl7ICAKCQkJaWYoQGlzX2RpcigiJGRpci8kRm9sZGVyT3JGaWxlIikpIAoJCQl7CgkJCQlkZWxkaXIoIiRkaXIvJEZvbGRlck9yRmlsZSIpOwoJCQl9ICAvLyByZWN1cnNpdmUKCQkJZWxzZQoJCQl7CgkJCQl1bmxpbmsoIiRkaXIvJEZvbGRlck9yRmlsZSIpOwoJCQl9CgkJfSAgCgl9CgljbG9zZWRpcigkaGFuZGxlKTsKCWlmKHJtZGlyKCRkaXIpKQoJewoJCSRzdWNjZXNzID0gdHJ1ZTsKCX0KCXJldHVybiAkc3VjY2VzczsgIAp9IAoKJGVycm9ycyA9ICIiOwoKJGRpciA9ICRjb25maWdbImltYWdlX3VwbG9hZHNfcGF0aCJdOwokdXJsID0gJGNvbmZpZ1siaW1hZ2VfdXBsb2Fkc191cmwiXTsKJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJGRpcik7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQoKJHJlbGRpciA9ICIvQ0FSUy8iLiRwYXJhbXNbJ1ZJTlYnXS4iLyI7CmlmICghaXNzZXQoJElNQ29uZmlnWyd0aHVtYm5haWxfZGlyJ10pKSAkSU1Db25maWdbJ3RodW1ibmFpbF9kaXInXSA9ICcnOwppZiAoaXNzZXQoJF9QT1NUWydyZWxkaXInXSkpICRyZWxkaXIgPSAkX1BPU1RbJ3JlbGRpciddOwplbHNlIGlmIChpc3NldCgkX0dFVFsncmVsZGlyJ10pKSAkcmVsZGlyID0gJF9HRVRbJ3JlbGRpciddOwpJZighZmlsZV9leGlzdHMoJGRpci4iL0NBUlMvIikpewoJCQlta2RpcigkZGlyLiIvQ0FSUy8iLCAwNzc3KTsKCQkJYXVkaXQoLTEsICRkaXIuIi8iLiRyZWxkaXIsICdDcmVhdGVkIERpcmVjdG9yeScpOwoJCQkKfQoKSWYoIWZpbGVfZXhpc3RzKCRkaXIuIi8iLiRyZWxkaXIpKXsKCgkJCW1rZGlyKCRkaXIuIi8iLiRyZWxkaXIsIDA3NzcpOwoJCQlhdWRpdCgtMSwgJGRpci4iLyIuJHJlbGRpciwgJ0NyZWF0ZWQgRGlyZWN0b3J5Jyk7Cn0KCgppZiAoc3RycG9zKCRyZWxkaXIsICcuLicpID09PSBmYWxzZSAmJiBzdHJwb3MoJHJlbGRpciwgJ1xcJykgPT09IGZhbHNlKQp7CgkkZGlyIC49ICRyZWxkaXI7Cn0KJHRoaXMtPkZpcmVEZWJ1ZygnbWVzc2FnZScsJHJlbGRpcik7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQokdXNlcmlkID0gZ2V0X3VzZXJpZCgpOwokYWNjZXNzID0gY2hlY2tfcGVybWlzc2lvbigkdXNlcmlkLCAnTW9kaWZ5IEZpbGVzJyk7CgokdXNlcm5hbWUgPSAkZ0Ntcy0+dmFyaWFibGVzWyJ1c2VybmFtZSJdOwoKI0RpZCB3ZSB1cGxvYWQgYSBmaWxlPwppZiAoaXNzZXQoJF9GSUxFUykgJiYgaXNzZXQoJF9GSUxFU1sndXBsb2FkZmlsZSddKSAmJiBpc3NldCgkX0ZJTEVTWyd1cGxvYWRmaWxlJ11bJ25hbWUnXSkgJiYgJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10gIT0gIiIpCnsKCWlmICgkYWNjZXNzKQoJewoJCWlmICghbW92ZV91cGxvYWRlZF9maWxlKCRfRklMRVNbJ3VwbG9hZGZpbGUnXVsndG1wX25hbWUnXSwgJGRpci4iLyIuJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10pKQoJCXsKCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZmlsZW5vdHVwbG9hZGVkJykuIjwvbGk+IjsKCQl9CgkJZWxzZQoJCXsKCQkJY2htb2QoJGRpci4iLyIuJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10sIG9jdGRlYygnMCcuJGNvbmZpZ1snZGVmYXVsdF91cGxvYWRfcGVybWlzc2lvbiddKSk7Cgokd29yayA9IG5ldyBJbWdSZXNpemVyKCRkaXIuIi8iLiRfRklMRVNbJ3VwbG9hZGZpbGUnXVsnbmFtZSddKTsKJHdvcmsgLT4gcmVzaXplKCRyZXNpemVBdCwgJGRpci4iLyIuJF9GSUxFU1sndXBsb2FkZmlsZSddWyduYW1lJ10pOwovLyR3b3JrIC0+IHJlc2l6ZSg2NDAsICd1cGxvYWRzL2ltYWdlcy90ZXN0LycuJF9QT1NUWydGaWxlbmFtZSddKTsKCQkJYXVkaXQoLTEsICRfRklMRVNbJ3VwbG9hZGZpbGUnXVsnbmFtZSddLCAnVXBsb2FkZWQgRmlsZScpOwoJCX0KCX0KCWVsc2UKCXsKCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCduZWVkcGVybWlzc2lvbnRvJywgYXJyYXkoJ01vZGlmeSBGaWxlcycpKS4iPC9saT4iOwoJfQp9CgojRGlkIHdlIGNyZWF0ZSBhIG5ldyBkaXI/CmlmIChpc3NldCgkX1BPU1RbJ25ld2RpcnN1Ym1pdCddKSkKewoJaWYgKCRhY2Nlc3MpCgl7CgkJI01ha2Ugc3VyZSBpdCBpc24ndCBhbiBlbXB0eSBkaXIgbmFtZQoJCWlmICgkX1BPU1RbJ25ld2RpciddID09ICIiKQoJCXsKCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZmlsZWNyZWF0ZWRpcm5vbmFtZScpLiI8L2xpPiI7CgkJfQoJCWVsc2UgaWYgKGVyZWcoJ1wuXC4nLCRfUE9TVFsnbmV3ZGlyJ10pKQoJCXsKCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZmlsZWNyZWF0ZWRpcm5vZG91YmxlZG90JykuIjwvbGk+IjsKCQl9CgkJZWxzZSBpZiAoZXJlZygnLycsICRfUE9TVFsnbmV3ZGlyJ10pIHx8IHN0cnBvcygkX1BPU1RbJ25ld2RpciddLCAnXFwnKSAhPT0gZmFsc2UpCgkJewoJCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCdmaWxlY3JlYXRlZGlybm9zbGFzaCcpLiI8L2xpPiI7CgkJfQoJCWVsc2UgaWYgKGZpbGVfZXhpc3RzKCRkaXIuIi8iLiRfUE9TVFsnbmV3ZGlyJ10pKQoJCXsKCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZGlyZWN0b3J5ZXhpc3RzJykuIjwvbGk+IjsKCQl9CgkJZWxzZQoJCXsKCQkJbWtkaXIoJGRpci4iLyIuJF9QT1NUWyduZXdkaXInXSwgMDc3Nyk7CgkJCWF1ZGl0KC0xLCAkX1BPU1RbJ25ld2RpciddLCAnQ3JlYXRlZCBEaXJlY3RvcnknKTsKCQl9Cgl9CgllbHNlCgl7CgkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnbmVlZHBlcm1pc3Npb250bycsIGFycmF5KCdNb2RpZnkgRmlsZXMnKSkuIjwvbGk+IjsKCX0KfQoKaWYgKGlzc2V0KCRfR0VUWydhY3Rpb24nXSkgJiYgJF9HRVRbJ2FjdGlvbiddID09ICJkZWxldGVmaWxlIikKewoJaWYgKCRhY2Nlc3MpCgl7CgkJaWYgKGlzX2ZpbGUoJGRpciAuICIvIiAuICRfR0VUWydmaWxlJ10pKQoJCXsKCQkJaWYgKCEodW5saW5rKCRkaXIgLiAiLyIgLiAkX0dFVFsnZmlsZSddKSkpCgkJCXsKCQkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ2Vycm9yZGVsZXRpbmdmaWxlJykuIjwvbGk+IjsKCQkJfQoJCQllbHNlCgkJCXsKCQkJCWF1ZGl0KC0xLCAkcmVsZGlyIC4gIi8iIC4gJF9HRVRbJ2ZpbGUnXSwgJ0RlbGV0ZWQgRmlsZScpOwoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ25vcmVhbGZpbGUnKS4iPC9saT4iOwoJCX0KCX0KCWVsc2UKCXsKCQkkZXJyb3JzIC49ICI8bGk+Ii5sYW5nKCduZWVkcGVybWlzc2lvbnRvJywgYXJyYXkoJ01vZGlmeSBGaWxlcycpKS4iPC9saT4iOwoJfQp9CmVsc2UgaWYgKGlzc2V0KCRfR0VUWydhY3Rpb24nXSkgJiYgJF9HRVRbJ2FjdGlvbiddID09ICJkZWxldGVkaXIiKQp7CglpZiAoJGFjY2VzcykKCXsKCQlpZiAoQGlzX2RpcigkZGlyIC4gIi8iIC4gJF9HRVRbJ2ZpbGUnXSkpCgkJewoJCQlpZiAoIShkZWxkaXIoJGRpciAuICIvIiAuICRfR0VUWydmaWxlJ10pKSkKCQkJewoJCQkJJGVycm9ycyAuPSAiPGxpPiIubGFuZygnZXJyb3JkZWxldGluZ2RpcmVjdG9yeScpLiI8L2xpPiI7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlhdWRpdCgtMSwgJHJlbGRpciAuICIvIiAuICRfR0VUWydmaWxlJ10sICdEZWxldGVkIERpcmVjdG9yeScpOwoJCQl9CgkJfQoJCWVsc2UKCQl7CgkJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ25vcmVhbGRpcmVjdG9yeScpLiI8L2xpPiI7CgkJfQoJfQoJZWxzZQoJewoJCSRlcnJvcnMgLj0gIjxsaT4iLmxhbmcoJ25lZWRwZXJtaXNzaW9udG8nLCBhcnJheSgnTW9kaWZ5IEZpbGVzJykpLiI8L2xpPiI7Cgl9Cn0KCi8vaW5jbHVkZV9vbmNlKCJoZWFkZXIucGhwIik7Cj8+CgoKCgk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSIuLi9saWIvZmlsZW1hbmFnZXIvSW1hZ2VNYW5hZ2VyL2Fzc2V0cy9kaWFsb2cuanMiPjwvc2NyaXB0PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vbGliL2ZpbGVtYW5hZ2VyL0ltYWdlTWFuYWdlci9JTUVTdGFuZGFsb25lLmpzIj48L3NjcmlwdD4KPD9waHAgZWNobyAiCTxzY3JpcHQgdHlwZT1cInRleHQvamF2YXNjcmlwdFwiIHNyYz1cIi4uL2xpYi9maWxlbWFuYWdlci9JbWFnZU1hbmFnZXIvbGFuZy9lbi5qc1wiPjwvc2NyaXB0PlxuIiA/PgoJPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgLy88IVtDREFUQVsKCgkJLy9DcmVhdGUgYSBuZXcgSW1hbmFnZXIgTWFuYWdlciwgbmVlZHMgdGhlIGRpcmVjdG9yeSB3aGVyZSB0aGUgbWFuYWdlciBpcwoJCS8vYW5kIHdoaWNoIGxhbmd1YWdlIHRyYW5zbGF0aW9uIHRvIHVzZS4KCgkJdmFyIG1hbmFnZXIgPSBuZXcgSW1hZ2VNYW5hZ2VyKCcuLi9saWIvZmlsZW1hbmFnZXIvSW1hZ2VNYW5hZ2VyJywnZW4nKTsKCQkJCgkJdmFyIHRodW1iZGlyID0gIjw/cGhwIGVjaG8gJElNQ29uZmlnWyd0aHVtYm5haWxfZGlyJ107ID8+IjsKCQl2YXIgYmFzZV91cmwgPSAiPD9waHAgZWNobyAkdXJsOyA/PiI7CQoJCS8vSW1hZ2UgTWFuYWdlciB3cmFwcGVyLiBTaW1wbHkgY2FsbHMgdGhlIEltYWdlTWFuYWdlcgoKCiAgICAvL11dPgogICAgPC9zY3JpcHQ+Cgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8qPCFbQ0RBVEFbKi8KCgoKLypdXT4qLwo8L3NjcmlwdD4KCjw/cGhwCiR0aGlzLT5GaXJlRGVidWcoJHJlbGRpciwnbWVzc2FnZScpOy8vPDw8PC0tLS0tLUZpcmUgUEhQIG1lc3NhZ2UKCiRyb3cgPSAicm93MSI7CgokZGlydGV4dCA9ICIiOwokZmlsZXRleHQgPSAiIjsKJGZpbGUgPSAiIjsKCi8vaWYgKCRlcnJvcnMgIT0gIiIpCi8vewovLwkvLyBlY2hvICI8ZGl2IGNsYXNzPVwicGFnZWVycm9yY29udGFpbmVyXCI+PHVsIGNsYXNzPVwiZXJyb3JcIj4iLiRlcnJvcnMuIjwvdWw+PC9kaXY+IjsKLy8JZWNobyAkdGhlbWVPYmplY3QtPlNob3dFcnJvcnMoJzx1bCBjbGFzcz0iZXJyb3IiPicuJGVycm9ycy4nPC91bD4nKTsKLy99CgplY2hvICc8ZGl2IHN0eWxlPSJ3aWR0aDozMjVweDtmbG9hdDpyaWdodDsiPjxoMz5BZGQgSW1hZ2VzPC9oMz48ZGl2IHN0eWxlPSJwYWRkaW5nOiAxMHB4O2JvcmRlcjogMnB4IHNvbGlkICMwMDA7Ij4KJzsKLy9lY2hvICR0aGVtZU9iamVjdC0+U2hvd0hlYWRlcignaW1hZ2VtYW5hZ2VtZW50Jyk7Cgo/Pgo8aWZyYW1lIGNsYXNzPSJpbWFnZWZyYW1lIiBzcmM9Ii4uL21vZHVsZXMvQ2Fycy9pbWFnZXMucGhwPD9waHAgZWNobyAkdXJsZXh0ID8+JmRpcj08P3BocCBlY2hvICIkcmVsZGlyIiA/PiIgbmFtZT0iaW1nTWFuYWdlciIgdGl0bGU9IkltYWdlIFNlbGVjdGlvbiI+PC9pZnJhbWU+Cgo8P3BocAoKaWYgKCRhY2Nlc3MpCnsKPz4KCjxmb3JtIGVuY3R5cGU9Im11bHRpcGFydC9mb3JtLWRhdGEiIGFjdGlvbj0ibW9kdWxlaW50ZXJmYWNlLnBocD9tYWN0PUNhcnMsbTFfLGVkaXR0ZW1wbGF0ZSwwJl9zXz03NzEwZWU5ZCZtMV9WSU5WPTw/cGhwIGVjaG8gJHBhcmFtc1snVklOViddID8+Jm0xX2FjdGl2ZV90YWI9ZW1haWxfdGVtcGxhdGUmbTFfbW9kZT1lZGl0Jjw/cGhwIGVjaG8gJHVybGV4dCA/PiIgbWV0aG9kPSJwb3N0IiBuYW1lPSJ1cGxvYWRlciI+CiAgICAgICAgPGRpdj4KICAgICAgICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ijw/cGhwIGVjaG8gQ01TX1NFQ1VSRV9QQVJBTV9OQU1FID8+IiB2YWx1ZT0iPD9waHAgZWNobyAkX1NFU1NJT05bQ01TX1VTRVJfS0VZXSA/PiIgLz4KICAgICAgICA8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0IiBzdHlsZT0ibWFyZ2luOjBweDsiPjw/cGhwIGVjaG8gbGFuZygndXBsb2FkZmlsZScpPz46PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiIHN0eWxlPSJtYXJnaW46MHB4OyI+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Ik1BWF9GSUxFX1NJWkUiIHZhbHVlPSI8P3BocCBlY2hvICRjb25maWdbIm1heF91cGxvYWRfc2l6ZSJdPz4iIC8+CgkJCTxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InJlbGRpciIgdmFsdWU9Ijw/cGhwIGVjaG8gJHJlbGRpcj8+IiAvPgoJCQk8aW5wdXQgbmFtZT0idXBsb2FkZmlsZSIgdHlwZT0iZmlsZSIgLz4gPGlucHV0IGNsYXNzPSJwYWdlYnV0dG9uIiBvbm1vdXNlb3Zlcj0idGhpcy5jbGFzc05hbWU9J3BhZ2VidXR0b25ob3ZlciciIG9ubW91c2VvdXQ9InRoaXMuY2xhc3NOYW1lPSdwYWdlYnV0dG9uJyIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iPD9waHAgZWNobyBsYW5nKCdzZW5kJyk/PiIgLz4KCQk8L3A+Cgk8L2Rpdj4KPC9mb3JtPgoKPC9kaXY+CjwvZGl2Pgo8P3BocAp9CgovL2luY2x1ZGVfb25jZSgiZm9vdGVyLnBocCIpOwoKIyB2aW06dHM9NCBzdz00IG5vZXQKPz4K]]></data>
	</file>
	<file>
	  <filename>/images/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/images/ajax-loader.gif</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[R0lGODlhEAALAPQAAOTs9QAAAMPK0rrByNLZ4QUFBQAAACkqLHR4fVZZXKassx4fIEJER3uAhVlcYKqwtyIjJAMDA0ZIS87V3cHI0Nvi6zI0NsXM1Nng6aOpr4+UmrW7wtXd5QAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA]]></data>
	</file>
	<file>
	  <filename>/images/blue.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/images/marker.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAYAAAA7bUf6AAAAK3RFWHRDcmVhdGlvbiBUaW1lAHZyIDE0IGp1bCAyMDA2IDEzOjMxOjIzICswMTAwHvJDZwAAAAd0SU1FB9YHDgsgJYiZ4bUAAAAJcEhZcwAALiIAAC4iAari3ZIAAAAEZ0FNQQAAsY8L/GEFAAAB5ElEQVR42q2Tz0sqURTH72Qq4mASSAoSIfSDdCEI8qJFLXSjLYSQNoGLINrI8/0ZD9q0KnDlKkIMebmP9xZRCEEiLQLBiMiNJDYq/Zg573vpCkM6CdGBD3Pn3OvXe77nDGPfENKwJBHx/CxYAtNAAVfgXJKk7khVCCyCP6ALVKAJXkEdbINxw5tgM4HHPphSFEUql8usXq8zWZZZKBRiPp+PH3sBx2Br4FbiBg+aplGxWKRgMPiMH1+YTKZDq9V64na7G+l0mprNJo7RG/g94IEoQSsUCuRyue6QToIJYAJWMA/Bo2QySZ1Ohws9gZBeZI570Gq1yO/395BKGJg+ZbFYznK5HAmf9vQiKW5iqVQim832Fyn5E+83Y7EYieAdY2Nig7dRqtVqrNfr3YiWGsVltVrtr2f0IrwEZrfbGeqWhQ9GMeFwOPprRS9SAWo4HGZOp/MH1l4DAS6+HolE+u9Xek9kcK+qKqVSKUL/s0hPDhFY83g8j5VKhcQg7nxs80/w0mg0KB6Pa2az+RTpDbDA3sd/lwvk8/l+Z7iS/FHEAor8H9rtNmWzWYpGo+T1eikQCFAmkyFxAy7AJ255aMHYcIID8d1oNBi8hGuwwkYFDq0CPlG3YsTb4B/4BRwjBb4S/wGzT16tu5THiAAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/mask.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAGUAAABlCAYAAABUfC3PAAAAB3RJTUUH1gcOCDMLN+YTsQAAB5hJREFUeNrtXdtS5DoMbKkG/v+Lj/cJCgbb6pbkZDjFVFHLxjepWzc7mQD8fV7uY3/6/ClxUg77vxBqLzTXHePtxfpfDkR33yv7XEbIXQKdaLt63vF0vRVHOwjwrv1K0jrHXLFGu5K7PnZw/QyIY9Juh2SR5rUGYKvCsXNW1u7qc8m1x4FEnwHgJGgnyT2i110C2mHln8MTo+fL6HMn+K8CQtRmTxVXZACzsZJMqgVllbVkfwRzKOCOjUyDnNeKxkeNV0i5QqCr16iMt8CAVkZhC6+zXaJXNkV20e8meE0XAawcLPnOyvA4sE+worcxfTtCY8YT7AC5ppCCjgUKSnauWQHZDhhfmRQjhGXAVIFXCcq0zWQcmz4qUZbpk9k8mhC6WoRMzJuZ3xa/o3HNFCmVo/yTwL3C3Cfl/PavNVl8l6KWCD2/+d9p21dPWe1Y0bXYi4zNGMpJmbekMEcNDFFXgxj1NaLYsESkOEbWipTnY4cRKFglS0m6Rs7xdcMWXYvasvqk5ngEhKi7WiYEsJZbUXAmjwfXTnhD6pqyeRwFgLqtSSUm8kqFSCOKEqsYWXT2xZbLqidABHpVJXqShKzx7PqrxkmREuUJVhglpLEbOYWsCCCfkDrLJx6QXwHeMuHLgqPpAe0GmSq8JUOBJyy5IiMKvy/nYcOXEWdZVmjLtLNk7ios35A6854MWer/w0SffQhBATirSAYYhgQjiah6/nKOzOYxKont4mu2yAV3yQTRsIwlJQt+VBicIIQpCjy4ZqIX0vkho5cavlZAg7TijGKZtsp4Fyz8hEF9klJ9Jjg6H1NJtAZSPADIC+SpZElErY5ZmMoJDcn4CkAypLByZjwjlP8RVE2DKAKYHIIDhPhTxZRNrFVSukIvneh3lqAcXURKQCAOTR7kB8EvkXziwQlmU4hGq0Qxd1R/vq5jDWtJD04McrPInGupIa0KGLNOBtQjhD8IcFQvQhJwNMzR8eNJ8p8JWhHmk3EpTzHSE6rAYqPAKqH7BBRfKHyalIohfOrw2JTDzD5DCWNV0rCI4UqIYaz3FHH0fA/BIwB+lw4hjrN7oGjX3WnJfogQZ/B4TLxk9Rh/dCOJ9azo9iube3wXAhYgzOJ+1SM6vcyjkpgpgS1RVVUSOBO6VuRWwMuQlyb8QZSrI7npO1U9uVCOejI0McQ6kbTVOeXN4whOjpWbXOz9+53wECq0CkGzkOei9btC9CNRGTH33tXi4ORxiCfDkieveSEnUaQwXwg1wlOUe+1OHvHsknZHjGf+j4VXeYXYSCEnYy6rgCfBU6xxpwsa54vkczKETXPKY8NsViArAOUNYcQDME7o2REmP/cpb4sJvlo2kmA5WdmolY4TyTmqeCr5pMtApwXKjpTTCRAiMI78fsKJE2EWUE+W0yzZFCkoWsauxMyUlpkStusYxQtyA8Ixy5sIrrKYB9WSQz+f6iYSjZEAwpq+I+WdqBTQbBWO2jlRdfzqrKxr71KS6cNTKqea3cfdK4NwoX/3Ka8367fLZ9PwhSZQO4+7M0fvSBDWCXZW3hF5CqNodFSSBQHE+iiQdtdtZTB3Ht8ueOLjlNIZUnARKVb1lOx9afv7absP9PluGIaUqApTLRPEMXsnEHcQwDwXsH3u622SCLEhpbRgcXwHCVUjU7+Ooeaw8ZxTIFYRaHiwQX3CEIm+uMDLup7SnCb6TgXQDACjZDdRmeeinZQXK1LekyGg42sJp772gBuNCcHt6Mj4Pz0Fm8NICMKh4OJVUpD0mm6PRHHt8XGTqwokkmOZUIKCQWTGYnFQquKALJarkhgE2CiEEzSFIlSUPxAmO0jZHrNAUCirMIiKqnvtjF5ekAObR3RnL0/4kei7Xpcxq0YYUiDKUCUuY+mefEKU9aLl0T2IMIYmN0bB/SEAXvH+jjZ2vWn4QtKaVCWxKRM71gRRWKjzKg8n+uYZuF3bD09BwZI7x1aB73zTEIr6qbJNS+LsQgD/Tq2Ol6Qp45AIfx2GFnnM0lPeEwIpArAvaasAgaIOyhgmBJaurcKXnVxUaLtCHpYIu0jGoeQUFACsEpBp6zQSRW4g90rdo6TgwFzd8172ivREn5AUFBbqBkYNQezYjAwn9R+zRJ+ZGA0gd1lq57wVg8wawNRTugHtAoPNIR3EP3/PcwgGUcUCz/sUkEp3kYIDxtBNvhoxqrJ9C18ZpRlLi8buXH7VfyQUH2KYVoGPchD9NwS+ekrGarqsr9uKM+2jGBa7xnx6SpdiHe27hJn5ixW76536KDLsjGBKCkRXXQHHgMiu29Hvt/z+I3xdBUTX+JUB7Lxr92eumLf9gQyBI6n/t7OvaCDjitgkWKWNIQWFsWzbHWuMZ1Ii5aMKZtdXGYsCAVWgVePceeLIzD8jpcN6hiD4B2HPIScLWAdpp8Ywfab7FHaynWVnBe5U9oQeFZnZa2OW6NUYPogck1EKLzIHG1LbZF55SkWo3zzmFeTbekpl4ivaT43dATyuwOXr5rEifFTasvPvwt5oIPnufkzfEZES5Q9mwUGWoSDWYOWoAnfnOCp8XSnQyfmsYey4QN+x2qe84sduMIY7PsMA/Ie/z0t9/gHKOXPlZc81WwAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/ppbmDonate.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAu4AAABaCAMAAADQByOyAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAbZQTFRFCggB4uLib25qREI9JyUfYF9bxcXEqKimjIuIt7a11NPTGBcQNTQumpmXfXx5UlFMlpWTvLy62traEhAJDw0G39/fIR8Zubm4srGwUVBLSkhD2NjXHBoUFxUOOjkzr6+tFBIMGRcRfHt4REM+3d3d1dXVzs3NMC4py8vKPz45VlVQPTs2enl1TEtG09PSMzErDQsET01IaGdjoqKgtLSyxMPCqqqoHh0Wd3Zz0NDPm5qYWVhTcG9rR0ZBIyIboJ+dKykjvr69jo2LiYiFh4aDdXRwf357LiwmbWxoQkA7xsbFW1pWKCchcnFuY2JeVFJOODYxJiQewcHAkZCNqKelmJiVk5KQXl1YycjIa2lmnZ2bZWRgpaSigYF9rayqhIOAOTgyWllVZ2ZiYmFdeXh1uLi3MjAqPDo1yMfHRkVAXVxXg4J/dnVy0tLRUE9K3Nzcvr28amll4eHhfHt3NzUwNDMtiIeEcXBtw8LBPz04gYB9nZyaysrJjY2KYF5aQUA6rKuql5eU2tnZU1JNTkxIu7u5fn16VVRQ39/ezc3MWFdS1NTUbGtnrq6sS0pFZWNfn56cwMC/HBXoAQAAFmVJREFUeNrsnedD40iWwPWULNmyDRiDAZNpcs6pu4EGmtDQgU50nN3JOzszd5tu9/bu9nKO//FVklSlYCxjTMPU+4BdcqkkVL8qvffqVZWiSPm0BNinBkgM7jgSi31Xc0CSKktb4IqJUoaQSlYSEcM7VYqUa8Fd9yFVwRcjOe4VS5K4S/kUcM/jJOmDU8CLmhj3iiVJ3KV8CrgTNDX0JQui6Elxr1iSxF3KJ4C7KrBs4p44kxM6ZZPvoFOcep64JIm7lOvEXVNNn0dNtVMsiyMYnRyjutuB11SSxF3K9eAuiB3Ki9WRVATiqsBr0pIk7lKuH3dTD+VVeUixApONUGySlyRxl3LduOcySmVIiccl452qx+J+YUkSdynXibupCsNAKvGpqHkRUiXN+yX9w8lLkrhLuV7PDCea6angKYFrlWnlmbR4ZuKS6o57YbCjTdaslBpwNwKqiY87MVYdmiOduRj32JLqjPvxIi79aL5VVq6UhLjrEIs7MVZz3sdFuMeXVFfcx++45a/9IGtXSjLcyYhQDtuhqh3EPU+6dbeTvwj3+JLqiPvXzbjkoefro/jzL2X1SkmEu80dzadF3ImxaqhBx3rikuqHO7l08yusxnQ8Q1+//EpWsJQEuJu8j1EN4I477JTodK+lpLrh/tWPAHfeuvbqGeZdVrCUhLh7R7MB3D11PFMl7tEl1Q33EsDwQz+5UQT4paxhKdXjnvVCXgw1qLt7Ib1ZpQrc40uqF+5zAEXeiFA2UMF3ZRVLEXEXnCZGmN2gGDyoSPLR7pdqStKjIoJrk7bvAfbFQ+sA27KKpVSNuzADyQ5lwSYnpJVqcI8u6RK4d8+v28Pbtl3afUzSkwBLBTFL/zRAh6xjKVXjzo0OqXooC/UuVod7ZEk14z7Lt56hXyjKE/Q5Fsw1D7Au61hK9bgrukrchqqfz8/iBJzuiUuqFffP/kzUikpflaLIXkHGq6xjKSFTtTZRI6PZr160v0cXXuhwVh46Ts9bHDXwV8hOfST27I4zsgXwTNaxlDrhHnK6N0b+hC7b9dhPnxdxD/9CzPQaHVoG2JF1LKU+uGshp3tD5LffIx3lCX/kLrJJOaN0xe7y1BxH1rGU+uCeDTndGyJfAqyJiosysgbwlH59ahgDvlL/c1nFUuqDe0Z0ujdK/hpgKOSDGVljNunIMm/CfvOtrGIp9cFdFZ3uDZK76Kob4cMjk/jvHow2GWN4csesY7Rj4D+PLajVccqJrz4jJ478FHFPhRYDa5QgiD/G/nggBA104jjgzqh8c+9LxLyF0Xerg2QiyHgvdeEvc+NS7Bj0juPUk9XlJZyavn8gDYKfKO56o294EKCrv9rMZcTrUvhF8KAoeu3vjyu/jlD3/9k/Nq4MNvNnPDuW6NxY3AORLKqaqRb3VMNv2AZYFVQSpLbE5+4eBngoHpr9C3cs1rbX3H/5v/j//79pxl9wh+78J/vSPsq+LGkSntuBezU6Sipm5PSqpR+ghdO4C7urE9sPKuS3gvdIx2NL5z2zJNl2d4/Ztk209aDUrz7D375Fx17Sc2jHfuf9IfEH9U99xM1kScJza3D3l7SrLJoWn7oSmUKqh/v9tNSzDdPF9UqTsN8C7Aq0/wdWXkbEJnTq466UjwDMPkX5zb8CLLZyuL/jW9kr9NZYkfTcGtyrs0E10GJTVyObAAOui4Zq4Aut1TYPJH2mOB7LVB4Od2WkC+CPSuv/ITPWBRrjvixeBhkFE5KeG2uq+pMyaCCXsJZGnOSBB1xMXZGsAuxhg7Vb2aJrDoz2X2TZPueSXyDaw5gKuOMWAr/MIqVpRvFxH7qnSNxvI+6KkrGrU8sNfuHfQOqqZABgU1EmipaxROLC4NDztzyMyn8XaSF+qgedMKVcgLuyR99vvkcS4b7AtJgN49WIxP1W4U4TF2vvpgC42Tjcy8MUyHO+6x5c6sMfk6JTvkOIC37JB5L1DKzb9suTrRDueBaU4P9pJm2MUY5eKCfd9cRd2NVENbydIVK+MyDFW1Smt3UEi/k33B/pp+adYHqTyPCxPNmGIqvyV025OdjsST1sv2XIquVp1fHRoFM2hfF0w8ZLJBqowGDBfpE5jb9AzoMl6sbIJTOhp0NTmuE/Gt5D6BDFxFbxUa163JV0VT7G68J9lvpShv/xDcCc/9MCsUnnm4X8B8KMviEvskZ5eN99hu9mgrgXEN9vFAH3U/ptmp4ybVw37uR4Etx121u4U0uCuyom+TmYOcEB5nIXjzu+aT00ISL6xijwekXczQDu/q4y+WS4m58s7rsAbyfxrVobirIGwLlLOotYnbnbNaNwc/gWeO2lE2CRfR1r4Z7iegB35d5ac0HEfY+9Ql77Zyl1w90gqqCOK0zFf9yJ6pzDIA2qH41nQdrbGSjF58xB2h2EUN1gUJVk0VEPZqEDes6rppRbxaowM969qEr4zrEtV3DvneIzYEr5/YbQ/+BkaZ5QwfQMxyb8BlIRN6bSZ6uSFhZ8Ouz2ULNJM15T3v8DNj6iWQDJe/es35OIXYwmtmdyQEwp7NVi05dURmwhbDA2Q5pqNmELecyNfPajbpb7qdDynvyFpe1B91gZUd0dUPzJqVgd2u9wnI0d97553JUJwTJFuC+7FzlxV+X7vJG459GxtBdrbYFlsi1RBNzzfMReik68QTjp9MGzJ62lKWdV4W743V7W7c5ZBodrjFn2k1UJd4yoGkpF3BjDHZWaroQ7Kj3D4a76t4pKSoK75nkia8fd4d5CViaEe8aC2qJu/haf83eu4Vnif1pYZv2556vE87W52VbvvIU4kI7z/W+YVrOLPTEe7oK/0fe7Fz03TfckBv73f1AaibuFeMpyKUujrjMBd0d4mIhzlTCjUhZUzoNmVYl7Js2QwuJ2524GYXMulfXylXBHtW8FU1E35uJOPuNx11Pujo4YOeFWtSS4U89M5lK4i+v9prUA7tTZGXgdVNm/756MRZmhyr0dMlEPjxlNzyjEP/kIKeuDQi/NBpiWeR1npWNl3MN9n1OP5jp9v3uz/5Lob0LpHz9rJO5p9JTyXu+FcGeE8bjrpuheIOpMnhZm8qGrKVq5F+DOalHYliUX27ubGb78GNzTAu4kFXVjVfbuOmvyFHe1qiH+MO7UEvdaYG24q8FRK03EnZeaJ4i84qbmtRpGM9zB357SpT2I5/CDr6xjOfIs1SUAYYKIj3tTr9e/j3RxuIO9xbUDZLK219UmMXxNOAL3PK74jJcF407rmsfdDppbSJ3JmOTJ64JdqVKdpwrcLWGyWpq+KT3dW9wrVM1fhHuEMhN5Y4LuHnw6HO6syafcfUwzCXGPXNhaWO1O6I3jTdU8RY6YNKpnZIvGv5WnSlbtK4gdA5x5ijspk9iX1JrsRd9O0Cc/yW/RSy7yq3QUBgsc7t4z7l8CHnfoOp31TnG6YiKL64J7aGyb6saeNoNxRylLwN0SelimzpieP4VTc1i/HIu774dJCfMZsiCOwRtBz0zWqIS7YdLemE9F3pjXV9qZyrg75DDF3a6KoxjcVeUyuJMNPbxmm0kJ7YfintIV7y1QKyJzvLuQeFrI3AtkfCJ1vKVN6SwC/A9/wn1PhUFG6z8xreXeAF3nycOdOR1nn4OIO8DoW89fsxmwG64Ud/Q8aa9nc7iTCvdxNyNe5qrbzWjCj3oC3PlfLAF3S4j9zqd8QCNw5xsIn4q8MYa7aUQ9HR53+iAo7uZlcA9YlwlxVwNeWZs/Teebk3YZ3Gd8jeIFKmabxfpiHQddsXTaEkTS98y0od55zeiZcTqCnpkmd2rgewjhjoFnqk4/akqzjVJm8oGJ5qSWmUrj9e5Z3wnJ1YmlJO/dVU4diuzdVdwAQy4G1d2kKw53NrDEp+J6d/yHC2OJw52pNLR3T4v+ED0J7v72kDXgjvHm36w6j7/O34t+GdxbEZlkJFXp66I9NKnvJ6gVsKGLbxwByU6q4zBl3ZfnLQLusHaPrqfK4T7kLeBUiNb+rxL3bKC3p7ijZ+dwuCM1PajNeLhnBAupet09J6zkwOvualRQVSZLEIg1VcMXiLwxgrvQoOJwR08iy3DnzAwTYlfIiPDMONRWtWvGPRPo3KmVa9cdd6yBG263TZbaIAOdZaHZNjcd9Lj5Z7m1lwafuTl6J5Q7Iu7QXnBaRNwfdCyx7OxYO8BMg3DPuO50Fx/LddileFPVCS9x5flqbJ5O5gDJutlzsbjnYz0zeqQHOUOOhgqOxz3yxqipanFvlljcUaPQKO6CEwm1zHSCYaYUp3Akx10LrVDAq+h1xH2DVPDs1Bt3Mt6Wr8bzMv3imOogJS5mpnXDKrXb65v4nCDu0DsK8KWAu9L6isQuPGMRmHUOeK+Eu+F2VQ7rbBnuuAPk/e5GoJPhcDci3NvedSyhmQQMt3SM393i24jrd6e/hQqugLsR63fXxaWmo3HHTd7zu6d5T5GVAHfCrnkp3PVAZXpvlzrijsF+wgCFO3bTA6ra9CszjuM8Md5aTbY3K9WaoXpOpENFxP3fyQk/Loi4YxeOc+gw3X2kztOZKuGe9V74JuWZ4Y41CmFUNRfscn1PvO1Vogb+4KXOcmXjaMz77pGUOKrK00hcnqzsfETBFXCPuTHxOVTAHVNOsUN5bN0fVdWT4K76dtGni/s41tDfKaPwrOl8DJPORv77+Ewj4/vbzK3VQ+Ld74xchPv453inym/DuHNyFj50VbhnfD5y9B3t4o49YELMjB0YtPNx181QaAp69jaOUcyKJ4k0qnExM26QgtsUsB9Fo+ZDqOBKuEfcGMNd81WEeNwJqf5IEA5Ycaz48PUY3PO+PlIj7tpVKzNzR3Q/yb3H3jhoFO7ED0P1EPi50v0NUm2mLsJdUSbaSDRCLO5z4A3Q1kNUfywuFBHp/+Q66PxwQBrSwkYyNE10h+vCCIruBXWYDt8JiW5nPTR10xADIDUvA+9US7kr9lPnkFCwWGT4AsEbS3lRVSkQHJN+pCeLiKT/qSk6BMVR/CS4G5cxVdWrNVXHSJfdciYsJ8ZwL0Tkf/gAa/R/VL7+FfrYeSqWRRbiEHDHIuDePsWXOj9U320sa8UdPfRqcUd1Slbjt7h+zyEl8lF6YRqVDIn0M1VdEXEn9+fr7qRPzenhgi/CPXhjPu5aVbgbnI/bDUpMEETgP3/tUo5I5SodkX9DnOCn3YFenH50R57yFPfwv1P+QGh5c8yIL08MjAb97lG4AwwtnNLyV17h/+/3BUXKjZMKpipTtu1gqKSAe16JSF08zHRJ3L/D7paDEHDMaRI3VxtPynus9H3nLhlj2170eol35NCXxNf8OkpsReEW27Zp61j8rWTn1uCe5d6C3CbwFoRwF1uIG1J5YRDB5XDHpmQpYrHG7sq4Kw8AXqOPnpein/JocuSHNT/5a5L3KyGabfxgkU+2/EySc1twZ8NMLtYWs1odNRiwawvhjHyKjnoTkz7DFjbQ64c7nmC9E8V0OcZU9YaZXrOh0PKrl9TQhbXeATw25dPey1SZEnZt8se6x1+MylXjbwPuUevMeJ2zGvGb6b8DPP6zCQOATc5yqXYVJ4/E3ijaW8uVdHfmPvQXd5xxnPn1jx1l6kV/9hxg/3CPLWzQ5wAUpwKL1CgrBYeOtsKO4mWVchtw9wDMcDMxTAF3sbuPTsVM77gM7jgU4GnkLwXaCOJDt5AWM9k2+WGyTen42KH8jKL77F+IH7KHBsa0f6b0HZClsptOUfqDn19bQip7Jw58R+e0sw3/pNwG3E0uBkDjApQE3BVb6LntBJP3LoP7E3HOhtgUKp7ZOuxeHAfACNo4vBhxLViN3SQfi7DEfV++530dlADdfNxzquilpzM0cqqf0/UyUr1ci0xVnJp9GdzHUJ9b2z+7F2zVdsf8B6y2N58d4d4dFle7AP4Ne2K43Z18GSZxkaUZ4qtZXaxzyLuUxpmqN0j6EGt9tZy4UQQYewdHY/cRuXikqKs8vnmvDWCgv6d/Yg5goa9nnmA9pRSOobkfhPzDq233NpG1uozfA0NbE+U6h7xLkbhHSXtN8SqFXRK+29TSM4g68o2nCNZlpIUbc1Dsbofh1nMoPdqdOCA6ysZrmIbePjH/y63Dnrn+ErzE2+V0HH7sl7hL3BsgeM3Sk6QnHdL49o6d4472NlhvHcNbPJ1Db+s83Ec4TyrvURvqHyE6TM8C2dNjK5h/fw7ur7TsP0bvhUK58EYqMxL3RsjvMIyJ9gS7S4ZN8Up3A93TzVujbXu4i35UGm57uA/nk/CsMDgAxuE6jRcubY2sLoGFl3AS8r9HCs/g/f1TZM+W97ETfloCJHG/evlfHN8+We30insnxLG49gOegdTXBO0rc6dH5ZaXm7Ptj+Y7z2Bqvf3pg5MTGHuOWgQCvliEd6v9Z3sHzc4Zn391cgPg8f7APEze7UDq/HZoIxwpEverELK/UvHF1MUm69YmdTgWV1fw+FQP0oRaWp+0QMejmdFC+RiON+D4sHCAzNTFuwPb83jO9vyMtdrRvbvb17cr5B9eVZSV/t6FtoeDZ0+2m9pe4BAcKRL3q5cxGsBVfL45FjuIeu9w8w3ztHed4PCxfQAbDyk9x3/sFuhF1mvvDryewwsZvCm2l2lc8bS1aZzb0LV/FMi/Zxy1T0Px7DkUHyvlHXelDykS9yuXQy+K8fV9663hOK5iseI4hrH60vYWDxhqYitDPm2ByjJd+eeTA//7EDZqv5AA3UDczYjFw6ioVS3laF7PJqttByW4UJZ2uMmpOGyg+c/xuNJ8gPwvPOL/YdsfVB0V86+e0OVsXPlO8nOzcQ8Sa3/KuCMpdA58uBNH+uvlgbmgOet040XysP7jFJSJtzPKxKut8zfnbUp5bvDNGmxPIvXkoTFgvZ9TevCKHX5+vCbTJPaAPjoeLLxFBkG7DCG48biL854c+MRxpzr6lLFr2bbb7Q7btmXtbTityUuqtK0ZUtVfccZpa5+E5+bjLi60l7sRuDdGjpG12iWN09thqmpueK9AdZodvTiCS7/1uNPVmtolMrcFdytINp6UZFsSd9/Obf9MInNrcFcD2wfjCUqqxN03ZaS+fptwz4jLEZBkRuIu5XbiTrpzf7K1SlISdym3FPe8sDC2TSzXEO4q9ddYaiTuaoQzh81rynELWPmzmNhuNrKpSGk07sQV42LsUL9kAHc1tO3xRbjr/mr8aSOEu/ZTcGJK+TRxz3GLOeaArdbN456K2cIpHve8uMVZRsTdAYm7lOvCXefWDEoD2+6Jwz0bGKfXL8TdiN4Ex8XdlrhLuTbcuSXy8ixijMfd8BcHy4ndO2+q5rjdO7gtJxWqwQurgqcrL9gqRcqV4o6BTnsdeT6Au6KpdopT7f0ffNx121vn212TyeM5J6RStWyaLUVK/XAnfGLKMy73sY7IbORCp2RnYHfXEKraqKKh6w1kpcIxaVKkNBJ3QneWgZmriLsahbsqbvtuBqPOUpxDJxW7H6AUKY3BXWMM2q5ykgT3TKDDdkJbTmpca0hBeGtEKVIaiTvhnGzSyVgO4q4S74yaj8A9bwb2xclHTrswOdwtWQVSrhN3lfS5OU/pEHHXvNh4OxXCHYIbqhrR04w43HOyCqRcJ+4kMExPeyalgHuQXxF3FTinTAXcdR/3W22p/r8AAwD2I6GKHFcOZgAAAABJRU5ErkJggg==]]></data>
	</file>
	<file>
	  <filename>/images/support.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[iVBORw0KGgoAAAANSUhEUgAAAJYAAAAyCAMAAACJUtIoAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAwBQTFRFLi0oBgUB9fX1ra2s1NTUW1lVqainZWRhPj04vr29mZmYJCIdeXh2oKCeOzk0rKyr6+rqp6akEA8JTk1IoqKhX11ZNTQuQD45REI99vb2dHRxQ0E8DQwFt7e2HRwYIB4ZKCYgHhwWycnIGRgUFhUOLiwmMC8pBAQB8PDwT05MIiEen56cERAMMTAqioqILCokp6emYF5aGBcQsbGuIiAaNDMtODYyQkA7FBINHBoUSEdCiYmHDg0HYWBc1NTTEhAJGhgSx8bGnZya0dDPYmFdMjEub29sxMTDCgkEvLy7MTAuCwoFamllFhQQlZSSHBsXODc0cHBtMC8tPDs3q6uoCwkCKigihoWCCAcDgYB+JiQeKSglfHx6Xl1byMjHJCQggH98V1ZTJyYjjYyKY2JeR0VARUM+NzYzQUA8jo6NwsLANTQxgYB9KyoneXd0pKOgNDMwBAMBOTcyFBQQYWBeKSciBwYBMjIvfHp3VVVSUlFONjUvMDAs4uLiCAgBJiUhKykjCQgBJiYhCQcBCAYBCggBCAcBWVdTVlVQXFpWU1JNfXt4TUxHtra1mZiXbWxq09PTFBILPDo1+/v7+fn5+vr6mJiXxcXEmZiWfHt57Ozs+Pj4/Pz8R0ZBDAoDbGxqZGNf/f39e3t5SklEUE9KMzIs7+/v7e3tTEtGUVBNNjUyPjw3XVtX8vLyVVRPT09MWFZSe3p5FBMQiomIS0pFUlFMV1VRMzMwNzYwxcTESUhD8/PzuLi3UVBLVFNO7u7uFxYRcXFvenp4urm5urq5FxYSqamoU1JPh4eFdnZ0RENAfXx5nJuaY2Ngg4J/RkZDf316VFNQlpaUb25qW1tYgoGAsK+tc3JwXV1bYF9b1NPTfn15u7u6nZ2cxsbFqqmnkZGPkI+OxsXFiIeD3d3cx8fGMjErmZmWbWxobm1rdHNvf358hIOBpqWiJyUibGtoKCckubm4vLu6RERAtLOxgoF+k5KR6enpq6uq2NfWWVhVWVhWt7a0SUhFSUlG////pufWsQAAAQB0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AFP3ByUAAAwTSURBVHja7Jl5XFTXFcfnoSIRQuyggmEEcZDnAkgICEOHQBJIcaaTSSQ2RKRGDEtCSIGGMQme4mQegxoHEFCqsoOAuGCIEZcYidEkxuyLjU33VrqkbdKm6WLXc+5982YB0qyfT//o78PnzV3Oeff7zj333jeD6t//k1L9H+tzYN1wx02vvPLRR/fff/d7r7327rsXLlx47MvQQw8FBDzwwLW/eebNX339zlsXfDzWQd83p0+f3tnZmZGaet3s2bMPHNjyZWjatGlXamsPbz60tXdbT1uIX2BVcWz/5Fj3vd85nWFlpF5CqgN0gytX8A5fvA4fPrr56a29QUdSCpOyKxJVm2J8J8HqmpXR2UlQ92RgqA5sYU90+OjRo5u/BB069PTWJ5HqREESBitq2fyEiIDWCbFuvZRxT6cCdaUWcdCXKSh0cHCwOHQwO2XrF6AnUadO9QZtG+hpY1RjC5EqfnvqRFhTZl+XmpGB0zd79pZptRTiU729QUzFfi8BQNyDcFXRwMDAts+hnuAeuTRwpOdEW0FI0n6iqvRHKvWqO8dj/W3agdnXXbpEgcJkpACTZ8+JEykpIdkLgOuqDYUfFrS1pXxWfXjbvdkFKSltpIKCwtAkv8aKOTFOqpqalnFYj9VuOUBZPq2WFkjQQE9KW0FhYUhIaGhoWR1c9WJp6V2IpWrM9gtOCv2sKlsPRcHBwcVJqOBgv+zGiqq9LK/it+trUMHeWAsOHa6lRYeBOhWEq5YeJdhv//7s7MbG3AXw96iylaXPwIrc0vz8fNVtUXiNCmTXsoX5+aWZgY0bP8DPRNa0vJG0nMqqqsbGRPKJUmElagRgJF8VGBjY2IiXimMItXDTaqLSEJXV9icvrJ9vPbSZcnwrWx2FScH7GwMrKo4dq0JV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]]></data>
	</file>
	<file>
	  <filename>/images/Thumbs.db</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[0M8R4KGxGuEAAAAAAAAAAAAAAAAAAAAAPgADAP7/CQAGAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAEAAAAgAAAAEAAAD+////AAAAAAAAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////9/////v////7///8EAAAABQAAAAYAAAAHAAAACAAAAAkAAAD+/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////1IAbwBvAHQAIABFAG4AdAByAHkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAUA//////////8BAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAECQrlolEsoBAwAAAEAMAAAAAAAAMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAgH/////AgAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkQsAAAAAAABDAGEAdABhAGwAbwBnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAACAP///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8AAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAACAAAAAhAAAAIgAAACMAAAAkAAAAJQAAACYAAAAnAAAAKAAAACkAAAAqAAAAKwAAACwAAAAtAAAALgAAAP7///8wAAAA/v////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8MAAAAAQAAAIULAAD/2P/gABBKRklGAAEBAQBgAGAAAP/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhANDhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/AABEIAGAAYAMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/AP0f8c+PLfQ99jDqNrp04wJ9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]]></data>
	</file>
	<file>
	  <filename>/images/wheel.png</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[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]]></data>
	</file>
	<file>
	  <filename>/includes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/includes/farbtastic.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoqCiAqIEZhcmJ0YXN0aWMgQ29sb3IgUGlja2VyIDEuMgogKiDCqSAyMDA4IFN0ZXZlbiBXaXR0ZW5zCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CiAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAqCiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAqIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCiAqCiAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAqIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQogKi8KCmpRdWVyeS5mbi5mYXJidGFzdGljID0gZnVuY3Rpb24gKGNhbGxiYWNrKSB7CiAgJC5mYXJidGFzdGljKHRoaXMsIGNhbGxiYWNrKTsKICByZXR1cm4gdGhpczsKfTsKCmpRdWVyeS5mYXJidGFzdGljID0gZnVuY3Rpb24gKGNvbnRhaW5lciwgY2FsbGJhY2spIHsKICB2YXIgY29udGFpbmVyID0gJChjb250YWluZXIpLmdldCgwKTsKICByZXR1cm4gY29udGFpbmVyLmZhcmJ0YXN0aWMgfHwgKGNvbnRhaW5lci5mYXJidGFzdGljID0gbmV3IGpRdWVyeS5fZmFyYnRhc3RpYyhjb250YWluZXIsIGNhbGxiYWNrKSk7Cn0KCmpRdWVyeS5fZmFyYnRhc3RpYyA9IGZ1bmN0aW9uIChjb250YWluZXIsIGNhbGxiYWNrKSB7CiAgLy8gU3RvcmUgZmFyYnRhc3RpYyBvYmplY3QKICB2YXIgZmIgPSB0aGlzOwoKICAvLyBJbnNlcnQgbWFya3VwCiAgJChjb250YWluZXIpLmh0bWwoJzxkaXYgY2xhc3M9ImZhcmJ0YXN0aWMiPjxkaXYgY2xhc3M9ImNvbG9yIj48L2Rpdj48ZGl2IGNsYXNzPSJ3aGVlbCI+PC9kaXY+PGRpdiBjbGFzcz0ib3ZlcmxheSI+PC9kaXY+PGRpdiBjbGFzcz0iaC1tYXJrZXIgbWFya2VyIj48L2Rpdj48ZGl2IGNsYXNzPSJzbC1tYXJrZXIgbWFya2VyIj48L2Rpdj48L2Rpdj4nKTsKICB2YXIgZSA9ICQoJy5mYXJidGFzdGljJywgY29udGFpbmVyKTsKICBmYi53aGVlbCA9ICQoJy53aGVlbCcsIGNvbnRhaW5lcikuZ2V0KDApOwogIC8vIERpbWVuc2lvbnMKICBmYi5yYWRpdXMgPSA4NDsKICBmYi5zcXVhcmUgPSAxMDA7CiAgZmIud2lkdGggPSAxOTQ7CgogIC8vIEZpeCBiYWNrZ3JvdW5kIFBOR3MgaW4gSUU2CiAgaWYgKG5hdmlnYXRvci5hcHBWZXJzaW9uLm1hdGNoKC9NU0lFIFswLTZdXC4vKSkgewogICAgJCgnKicsIGUpLmVhY2goZnVuY3Rpb24gKCkgewogICAgICBpZiAodGhpcy5jdXJyZW50U3R5bGUuYmFja2dyb3VuZEltYWdlICE9ICdub25lJykgewogICAgICAgIHZhciBpbWFnZSA9IHRoaXMuY3VycmVudFN0eWxlLmJhY2tncm91bmRJbWFnZTsKICAgICAgICBpbWFnZSA9IHRoaXMuY3VycmVudFN0eWxlLmJhY2tncm91bmRJbWFnZS5zdWJzdHJpbmcoNSwgaW1hZ2UubGVuZ3RoIC0gMik7CiAgICAgICAgJCh0aGlzKS5jc3MoewogICAgICAgICAgJ2JhY2tncm91bmRJbWFnZSc6ICdub25lJywKICAgICAgICAgICdmaWx0ZXInOiAicHJvZ2lkOkRYSW1hZ2VUcmFuc2Zvcm0uTWljcm9zb2Z0LkFscGhhSW1hZ2VMb2FkZXIoZW5hYmxlZD10cnVlLCBzaXppbmdNZXRob2Q9Y3JvcCwgc3JjPSciICsgaW1hZ2UgKyAiJykiCiAgICAgICAgfSk7CiAgICAgIH0KICAgIH0pOwogIH0KCiAgLyoqCiAgICogTGluayB0byB0aGUgZ2l2ZW4gZWxlbWVudChzKSBvciBjYWxsYmFjay4KICAgKi8KICBmYi5saW5rVG8gPSBmdW5jdGlvbiAoY2FsbGJhY2spIHsKICAgIC8vIFVuYmluZCBwcmV2aW91cyBub2RlcwogICAgaWYgKHR5cGVvZiBmYi5jYWxsYmFjayA9PSAnb2JqZWN0JykgewogICAgICAkKGZiLmNhbGxiYWNrKS51bmJpbmQoJ2tleXVwJywgZmIudXBkYXRlVmFsdWUpOwogICAgfQoKICAgIC8vIFJlc2V0IGNvbG9yCiAgICBmYi5jb2xvciA9IG51bGw7CgogICAgLy8gQmluZCBjYWxsYmFjayBvciBlbGVtZW50cwogICAgaWYgKHR5cGVvZiBjYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7CiAgICAgIGZiLmNhbGxiYWNrID0gY2FsbGJhY2s7CiAgICB9CiAgICBlbHNlIGlmICh0eXBlb2YgY2FsbGJhY2sgPT0gJ29iamVjdCcgfHwgdHlwZW9mIGNhbGxiYWNrID09ICdzdHJpbmcnKSB7CiAgICAgIGZiLmNhbGxiYWNrID0gJChjYWxsYmFjayk7CiAgICAgIGZiLmNhbGxiYWNrLmJpbmQoJ2tleXVwJywgZmIudXBkYXRlVmFsdWUpOwogICAgICBpZiAoZmIuY2FsbGJhY2suZ2V0KDApLnZhbHVlKSB7CiAgICAgICAgZmIuc2V0Q29sb3IoZmIuY2FsbGJhY2suZ2V0KDApLnZhbHVlKTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHRoaXM7CiAgfQogIGZiLnVwZGF0ZVZhbHVlID0gZnVuY3Rpb24gKGV2ZW50KSB7CiAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlICE9IGZiLmNvbG9yKSB7CiAgICAgIGZiLnNldENvbG9yKHRoaXMudmFsdWUpOwogICAgfQogIH0KCiAgLyoqCiAgICogQ2hhbmdlIGNvbG9yIHdpdGggSFRNTCBzeW50YXggIzEyMzQ1NgogICAqLwogIGZiLnNldENvbG9yID0gZnVuY3Rpb24gKGNvbG9yKSB7CiAgICB2YXIgdW5wYWNrID0gZmIudW5wYWNrKGNvbG9yKTsKICAgIGlmIChmYi5jb2xvciAhPSBjb2xvciAmJiB1bnBhY2spIHsKICAgICAgZmIuY29sb3IgPSBjb2xvcjsKICAgICAgZmIucmdiID0gdW5wYWNrOwogICAgICBmYi5oc2wgPSBmYi5SR0JUb0hTTChmYi5yZ2IpOwogICAgICBmYi51cGRhdGVEaXNwbGF5KCk7CiAgICB9CiAgICByZXR1cm4gdGhpczsKICB9CgogIC8qKgogICAqIENoYW5nZSBjb2xvciB3aXRoIEhTTCB0cmlwbGV0IFswLi4xLCAwLi4xLCAwLi4xXQogICAqLwogIGZiLnNldEhTTCA9IGZ1bmN0aW9uIChoc2wpIHsKICAgIGZiLmhzbCA9IGhzbDsKICAgIGZiLnJnYiA9IGZiLkhTTFRvUkdCKGhzbCk7CiAgICBmYi5jb2xvciA9IGZiLnBhY2soZmIucmdiKTsKICAgIGZiLnVwZGF0ZURpc3BsYXkoKTsKICAgIHJldHVybiB0aGlzOwogIH0KCiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KCiAgLyoqCiAgICogUmV0cmlldmUgdGhlIGNvb3JkaW5hdGVzIG9mIHRoZSBnaXZlbiBldmVudCByZWxhdGl2ZSB0byB0aGUgY2VudGVyCiAgICogb2YgdGhlIHdpZGdldC4KICAgKi8KICBmYi53aWRnZXRDb29yZHMgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIHZhciB4LCB5OwogICAgdmFyIGVsID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7CiAgICB2YXIgcmVmZXJlbmNlID0gZmIud2hlZWw7CgogICAgaWYgKHR5cGVvZiBldmVudC5vZmZzZXRYICE9ICd1bmRlZmluZWQnKSB7CiAgICAgIC8vIFVzZSBvZmZzZXQgY29vcmRpbmF0ZXMgYW5kIGZpbmQgY29tbW9uIG9mZnNldFBhcmVudAogICAgICB2YXIgcG9zID0geyB4OiBldmVudC5vZmZzZXRYLCB5OiBldmVudC5vZmZzZXRZIH07CgogICAgICAvLyBTZW5kIHRoZSBjb29yZGluYXRlcyB1cHdhcmRzIHRocm91Z2ggdGhlIG9mZnNldFBhcmVudCBjaGFpbi4KICAgICAgdmFyIGUgPSBlbDsKICAgICAgd2hpbGUgKGUpIHsKICAgICAgICBlLm1vdXNlWCA9IHBvcy54OwogICAgICAgIGUubW91c2VZID0gcG9zLnk7CiAgICAgICAgcG9zLnggKz0gZS5vZmZzZXRMZWZ0OwogICAgICAgIHBvcy55ICs9IGUub2Zmc2V0VG9wOwogICAgICAgIGUgPSBlLm9mZnNldFBhcmVudDsKICAgICAgfQoKICAgICAgLy8gTG9vayBmb3IgdGhlIGNvb3JkaW5hdGVzIHN0YXJ0aW5nIGZyb20gdGhlIHdoZWVsIHdpZGdldC4KICAgICAgdmFyIGUgPSByZWZlcmVuY2U7CiAgICAgIHZhciBvZmZzZXQgPSB7IHg6IDAsIHk6IDAgfQogICAgICB3aGlsZSAoZSkgewogICAgICAgIGlmICh0eXBlb2YgZS5tb3VzZVggIT0gJ3VuZGVmaW5lZCcpIHsKICAgICAgICAgIHggPSBlLm1vdXNlWCAtIG9mZnNldC54OwogICAgICAgICAgeSA9IGUubW91c2VZIC0gb2Zmc2V0Lnk7CiAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgb2Zmc2V0LnggKz0gZS5vZmZzZXRMZWZ0OwogICAgICAgIG9mZnNldC55ICs9IGUub2Zmc2V0VG9wOwogICAgICAgIGUgPSBlLm9mZnNldFBhcmVudDsKICAgICAgfQoKICAgICAgLy8gUmVzZXQgc3RvcmVkIGNvb3JkaW5hdGVzCiAgICAgIGUgPSBlbDsKICAgICAgd2hpbGUgKGUpIHsKICAgICAgICBlLm1vdXNlWCA9IHVuZGVmaW5lZDsKICAgICAgICBlLm1vdXNlWSA9IHVuZGVmaW5lZDsKICAgICAgICBlID0gZS5vZmZzZXRQYXJlbnQ7CiAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAvLyBVc2UgYWJzb2x1dGUgY29vcmRpbmF0ZXMKICAgICAgdmFyIHBvcyA9IGZiLmFic29sdXRlUG9zaXRpb24ocmVmZXJlbmNlKTsKICAgICAgeCA9IChldmVudC5wYWdlWCB8fCAwKihldmVudC5jbGllbnRYICsgJCgnaHRtbCcpLmdldCgwKS5zY3JvbGxMZWZ0KSkgLSBwb3MueDsKICAgICAgeSA9IChldmVudC5wYWdlWSB8fCAwKihldmVudC5jbGllbnRZICsgJCgnaHRtbCcpLmdldCgwKS5zY3JvbGxUb3ApKSAtIHBvcy55OwogICAgfQogICAgLy8gU3VidHJhY3QgZGlzdGFuY2UgdG8gbWlkZGxlCiAgICByZXR1cm4geyB4OiB4IC0gZmIud2lkdGggLyAyLCB5OiB5IC0gZmIud2lkdGggLyAyIH07CiAgfQoKICAvKioKICAgKiBNb3VzZWRvd24gaGFuZGxlcgogICAqLwogIGZiLm1vdXNlZG93biA9IGZ1bmN0aW9uIChldmVudCkgewogICAgLy8gQ2FwdHVyZSBtb3VzZQogICAgaWYgKCFkb2N1bWVudC5kcmFnZ2luZykgewogICAgICAkKGRvY3VtZW50KS5iaW5kKCdtb3VzZW1vdmUnLCBmYi5tb3VzZW1vdmUpLmJpbmQoJ21vdXNldXAnLCBmYi5tb3VzZXVwKTsKICAgICAgZG9jdW1lbnQuZHJhZ2dpbmcgPSB0cnVlOwogICAgfQoKICAgIC8vIENoZWNrIHdoaWNoIGFyZWEgaXMgYmVpbmcgZHJhZ2dlZAogICAgdmFyIHBvcyA9IGZiLndpZGdldENvb3JkcyhldmVudCk7CiAgICBmYi5jaXJjbGVEcmFnID0gTWF0aC5tYXgoTWF0aC5hYnMocG9zLngpLCBNYXRoLmFicyhwb3MueSkpICogMiA+IGZiLnNxdWFyZTsKCiAgICAvLyBQcm9jZXNzCiAgICBmYi5tb3VzZW1vdmUoZXZlbnQpOwogICAgcmV0dXJuIGZhbHNlOwogIH0KCiAgLyoqCiAgICogTW91c2Vtb3ZlIGhhbmRsZXIKICAgKi8KICBmYi5tb3VzZW1vdmUgPSBmdW5jdGlvbiAoZXZlbnQpIHsKICAgIC8vIEdldCBjb29yZGluYXRlcyByZWxhdGl2ZSB0byBjb2xvciBwaWNrZXIgY2VudGVyCiAgICB2YXIgcG9zID0gZmIud2lkZ2V0Q29vcmRzKGV2ZW50KTsKCiAgICAvLyBTZXQgbmV3IEhTTCBwYXJhbWV0ZXJzCiAgICBpZiAoZmIuY2lyY2xlRHJhZykgewogICAgICB2YXIgaHVlID0gTWF0aC5hdGFuMihwb3MueCwgLXBvcy55KSAvIDYuMjg7CiAgICAgIGlmIChodWUgPCAwKSBodWUgKz0gMTsKICAgICAgZmIuc2V0SFNMKFtodWUsIGZiLmhzbFsxXSwgZmIuaHNsWzJdXSk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgdmFyIHNhdCA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIC0ocG9zLnggLyBmYi5zcXVhcmUpICsgLjUpKTsKICAgICAgdmFyIGx1bSA9IE1hdGgubWF4KDAsIE1hdGgubWluKDEsIC0ocG9zLnkgLyBmYi5zcXVhcmUpICsgLjUpKTsKICAgICAgZmIuc2V0SFNMKFtmYi5oc2xbMF0sIHNhdCwgbHVtXSk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfQoKICAvKioKICAgKiBNb3VzZXVwIGhhbmRsZXIKICAgKi8KICBmYi5tb3VzZXVwID0gZnVuY3Rpb24gKCkgewogICAgLy8gVW5jYXB0dXJlIG1vdXNlCiAgICAkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNlbW92ZScsIGZiLm1vdXNlbW92ZSk7CiAgICAkKGRvY3VtZW50KS51bmJpbmQoJ21vdXNldXAnLCBmYi5tb3VzZXVwKTsKICAgIGRvY3VtZW50LmRyYWdnaW5nID0gZmFsc2U7CiAgfQoKICAvKioKICAgKiBVcGRhdGUgdGhlIG1hcmtlcnMgYW5kIHN0eWxlcwogICAqLwogIGZiLnVwZGF0ZURpc3BsYXkgPSBmdW5jdGlvbiAoKSB7CiAgICAvLyBNYXJrZXJzCiAgICB2YXIgYW5nbGUgPSBmYi5oc2xbMF0gKiA2LjI4OwogICAgJCgnLmgtbWFya2VyJywgZSkuY3NzKHsKICAgICAgbGVmdDogTWF0aC5yb3VuZChNYXRoLnNpbihhbmdsZSkgKiBmYi5yYWRpdXMgKyBmYi53aWR0aCAvIDIpICsgJ3B4JywKICAgICAgdG9wOiBNYXRoLnJvdW5kKC1NYXRoLmNvcyhhbmdsZSkgKiBmYi5yYWRpdXMgKyBmYi53aWR0aCAvIDIpICsgJ3B4JwogICAgfSk7CgogICAgJCgnLnNsLW1hcmtlcicsIGUpLmNzcyh7CiAgICAgIGxlZnQ6IE1hdGgucm91bmQoZmIuc3F1YXJlICogKC41IC0gZmIuaHNsWzFdKSArIGZiLndpZHRoIC8gMikgKyAncHgnLAogICAgICB0b3A6IE1hdGgucm91bmQoZmIuc3F1YXJlICogKC41IC0gZmIuaHNsWzJdKSArIGZiLndpZHRoIC8gMikgKyAncHgnCiAgICB9KTsKCiAgICAvLyBTYXR1cmF0aW9uL0x1bWluYW5jZSBncmFkaWVudAogICAgJCgnLmNvbG9yJywgZSkuY3NzKCdiYWNrZ3JvdW5kQ29sb3InLCBmYi5wYWNrKGZiLkhTTFRvUkdCKFtmYi5oc2xbMF0sIDEsIDAuNV0pKSk7CgogICAgLy8gTGlua2VkIGVsZW1lbnRzIG9yIGNhbGxiYWNrCiAgICBpZiAodHlwZW9mIGZiLmNhbGxiYWNrID09ICdvYmplY3QnKSB7CiAgICAgIC8vIFNldCBiYWNrZ3JvdW5kL2ZvcmVncm91bmQgY29sb3IKICAgICAgJChmYi5jYWxsYmFjaykuY3NzKHsKICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6IGZiLmNvbG9yLAogICAgICAgIGNvbG9yOiBmYi5oc2xbMl0gPiAwLjUgPyAnIzAwMCcgOiAnI2ZmZicKICAgICAgfSk7CgogICAgICAvLyBDaGFuZ2UgbGlua2VkIHZhbHVlCiAgICAgICQoZmIuY2FsbGJhY2spLmVhY2goZnVuY3Rpb24oKSB7CiAgICAgICAgaWYgKHRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZSAhPSBmYi5jb2xvcikgewogICAgICAgICAgdGhpcy52YWx1ZSA9IGZiLmNvbG9yOwogICAgICAgIH0KICAgICAgfSk7CiAgICB9CiAgICBlbHNlIGlmICh0eXBlb2YgZmIuY2FsbGJhY2sgPT0gJ2Z1bmN0aW9uJykgewogICAgICBmYi5jYWxsYmFjay5jYWxsKGZiLCBmYi5jb2xvcik7CiAgICB9CiAgfQoKICAvKioKICAgKiBHZXQgYWJzb2x1dGUgcG9zaXRpb24gb2YgZWxlbWVudAogICAqLwogIGZiLmFic29sdXRlUG9zaXRpb24gPSBmdW5jdGlvbiAoZWwpIHsKICAgIHZhciByID0geyB4OiBlbC5vZmZzZXRMZWZ0LCB5OiBlbC5vZmZzZXRUb3AgfTsKICAgIC8vIFJlc29sdmUgcmVsYXRpdmUgdG8gb2Zmc2V0UGFyZW50CiAgICBpZiAoZWwub2Zmc2V0UGFyZW50KSB7CiAgICAgIHZhciB0bXAgPSBmYi5hYnNvbHV0ZVBvc2l0aW9uKGVsLm9mZnNldFBhcmVudCk7CiAgICAgIHIueCArPSB0bXAueDsKICAgICAgci55ICs9IHRtcC55OwogICAgfQogICAgcmV0dXJuIHI7CiAgfTsKCiAgLyogVmFyaW91cyBjb2xvciB1dGlsaXR5IGZ1bmN0aW9ucyAqLwogIGZiLnBhY2sgPSBmdW5jdGlvbiAocmdiKSB7CiAgICB2YXIgciA9IE1hdGgucm91bmQocmdiWzBdICogMjU1KTsKICAgIHZhciBnID0gTWF0aC5yb3VuZChyZ2JbMV0gKiAyNTUpOwogICAgdmFyIGIgPSBNYXRoLnJvdW5kKHJnYlsyXSAqIDI1NSk7CiAgICByZXR1cm4gJyMnICsgKHIgPCAxNiA/ICcwJyA6ICcnKSArIHIudG9TdHJpbmcoMTYpICsKICAgICAgICAgICAoZyA8IDE2ID8gJzAnIDogJycpICsgZy50b1N0cmluZygxNikgKwogICAgICAgICAgIChiIDwgMTYgPyAnMCcgOiAnJykgKyBiLnRvU3RyaW5nKDE2KTsKICB9CgogIGZiLnVucGFjayA9IGZ1bmN0aW9uIChjb2xvcikgewogICAgaWYgKGNvbG9yLmxlbmd0aCA9PSA3KSB7CiAgICAgIHJldHVybiBbcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygxLCAzKSkgLyAyNTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygzLCA1KSkgLyAyNTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZyg1LCA3KSkgLyAyNTVdOwogICAgfQogICAgZWxzZSBpZiAoY29sb3IubGVuZ3RoID09IDQpIHsKICAgICAgcmV0dXJuIFtwYXJzZUludCgnMHgnICsgY29sb3Iuc3Vic3RyaW5nKDEsIDIpKSAvIDE1LAogICAgICAgIHBhcnNlSW50KCcweCcgKyBjb2xvci5zdWJzdHJpbmcoMiwgMykpIC8gMTUsCiAgICAgICAgcGFyc2VJbnQoJzB4JyArIGNvbG9yLnN1YnN0cmluZygzLCA0KSkgLyAxNV07CiAgICB9CiAgfQoKICBmYi5IU0xUb1JHQiA9IGZ1bmN0aW9uIChoc2wpIHsKICAgIHZhciBtMSwgbTIsIHIsIGcsIGI7CiAgICB2YXIgaCA9IGhzbFswXSwgcyA9IGhzbFsxXSwgbCA9IGhzbFsyXTsKICAgIG0yID0gKGwgPD0gMC41KSA/IGwgKiAocyArIDEpIDogbCArIHMgLSBsKnM7CiAgICBtMSA9IGwgKiAyIC0gbTI7CiAgICByZXR1cm4gW3RoaXMuaHVlVG9SR0IobTEsIG0yLCBoKzAuMzMzMzMpLAogICAgICAgIHRoaXMuaHVlVG9SR0IobTEsIG0yLCBoKSwKICAgICAgICB0aGlzLmh1ZVRvUkdCKG0xLCBtMiwgaC0wLjMzMzMzKV07CiAgfQoKICBmYi5odWVUb1JHQiA9IGZ1bmN0aW9uIChtMSwgbTIsIGgpIHsKICAgIGggPSAoaCA8IDApID8gaCArIDEgOiAoKGggPiAxKSA/IGggLSAxIDogaCk7CiAgICBpZiAoaCAqIDYgPCAxKSByZXR1cm4gbTEgKyAobTIgLSBtMSkgKiBoICogNjsKICAgIGlmIChoICogMiA8IDEpIHJldHVybiBtMjsKICAgIGlmIChoICogMyA8IDIpIHJldHVybiBtMSArIChtMiAtIG0xKSAqICgwLjY2NjY2IC0gaCkgKiA2OwogICAgcmV0dXJuIG0xOwogIH0KCiAgZmIuUkdCVG9IU0wgPSBmdW5jdGlvbiAocmdiKSB7CiAgICB2YXIgbWluLCBtYXgsIGRlbHRhLCBoLCBzLCBsOwogICAgdmFyIHIgPSByZ2JbMF0sIGcgPSByZ2JbMV0sIGIgPSByZ2JbMl07CiAgICBtaW4gPSBNYXRoLm1pbihyLCBNYXRoLm1pbihnLCBiKSk7CiAgICBtYXggPSBNYXRoLm1heChyLCBNYXRoLm1heChnLCBiKSk7CiAgICBkZWx0YSA9IG1heCAtIG1pbjsKICAgIGwgPSAobWluICsgbWF4KSAvIDI7CiAgICBzID0gMDsKICAgIGlmIChsID4gMCAmJiBsIDwgMSkgewogICAgICBzID0gZGVsdGEgLyAobCA8IDAuNSA/ICgyICogbCkgOiAoMiAtIDIgKiBsKSk7CiAgICB9CiAgICBoID0gMDsKICAgIGlmIChkZWx0YSA+IDApIHsKICAgICAgaWYgKG1heCA9PSByICYmIG1heCAhPSBnKSBoICs9IChnIC0gYikgLyBkZWx0YTsKICAgICAgaWYgKG1heCA9PSBnICYmIG1heCAhPSBiKSBoICs9ICgyICsgKGIgLSByKSAvIGRlbHRhKTsKICAgICAgaWYgKG1heCA9PSBiICYmIG1heCAhPSByKSBoICs9ICg0ICsgKHIgLSBnKSAvIGRlbHRhKTsKICAgICAgaCAvPSA2OwogICAgfQogICAgcmV0dXJuIFtoLCBzLCBsXTsKICB9CgogIC8vIEluc3RhbGwgbW91c2Vkb3duIGhhbmRsZXIgKHRoZSBvdGhlcnMgYXJlIHNldCBvbiB0aGUgZG9jdW1lbnQgb24tZGVtYW5kKQogICQoJyonLCBlKS5tb3VzZWRvd24oZmIubW91c2Vkb3duKTsKCiAgICAvLyBJbml0IGNvbG9yCiAgZmIuc2V0Q29sb3IoJyMwMDAwMDAnKTsKCiAgLy8gU2V0IGxpbmtlZCBlbGVtZW50cy9jYWxsYmFjawogIGlmIChjYWxsYmFjaykgewogICAgZmIubGlua1RvKGNhbGxiYWNrKTsKICB9Cn0=]]></data>
	</file>
	<file>
	  <filename>/includes/ME_1.00.00.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8gSmF2YVNjcmlwdCBEb2N1bWVudAoKCgokKGRvY3VtZW50KS5yZWFkeShmdW5jdGlvbigpewoJaWYgKCQoIiNjb2xvcnBpY2tlciIpLmxlbmd0aCA+IDApeyQoJyNjb2xvcnBpY2tlcicpLmZhcmJ0YXN0aWMoImlucHV0W25hbWUqPSdjcHBfaGVhZGVyYmFja19jb2xvciddIik7fQoJaWYgKCQoIiNjcHBfcGF5Zmxvd2NvbG9ycGlja2VyIikubGVuZ3RoID4gMCl7JCgnI2NwcF9wYXlmbG93Y29sb3JwaWNrZXInKS5mYXJidGFzdGljKCJpbnB1dFtuYW1lKj0nY3BwX3BheWZsb3dfY29sb3InXSIpO30KCWlmICgkKCIjY3BwX2hlYWRlcmJvcmRlcmNvbG9ycGlja2VyIikubGVuZ3RoID4gMCl7JCgnI2NwcF9oZWFkZXJib3JkZXJjb2xvcnBpY2tlcicpLmZhcmJ0YXN0aWMoImlucHV0W25hbWUqPSdjcHBfaGVhZGVyYm9yZGVyX2NvbG9yJ10iKTt9CgkkKCIuZXh0ZW5kSEFORExFIikuY2xpY2soZnVuY3Rpb24oKXsKCQlpZigkKHRoaXMpLm5leHQoKS5oYXNDbGFzcygiTmV4dGVuZCIpKXsKCQkJJCh0aGlzKS5maW5kKCJzcGFuIikudGV4dCgiWy1dIik7CgkJCSQodGhpcykubmV4dCgpLnJlbW92ZUNsYXNzKCJOZXh0ZW5kIik7CgkJCSQoJy5jb2xvcnBpY2tlcicpLnNsaWRlRG93bigiZmFzdCIpOwoJCQkkKHRoaXMpLm5leHQoKS5hZGRDbGFzcygiZXh0ZW5kIik7CgkJCSQoIi5UcmFuc2xhZXRDb24iKS5zaG93KCk7CgkJfWVsc2V7CgkJCSQodGhpcykuZmluZCgic3BhbiIpLnRleHQoIlsrXSIpOwkKCQkJJCgnLmNvbG9ycGlja2VyJykuc2xpZGVVcCgiZmFzdCIpOwoJCQkkKHRoaXMpLm5leHQoKS5hZGRDbGFzcygiTmV4dGVuZCIpOwoJCQkkKHRoaXMpLm5leHQoKS5yZW1vdmVDbGFzcygiZXh0ZW5kIik7CgkJCSQoIi5UcmFuc2xhZXRDb24iKS5oaWRlKCk7CgkJfQoJfSk7CgoJaWYgKCQoImltZy5zeXN0ZW1pY29uIikubGVuZ3RoID4gMCl7JCgiaW1nLnN5c3RlbWljb24iKS50b29sdGlwKHt0aXA6IiNkZW1vdGlwIixsYXp5OnRydWUscHJlZGVsYXk6NTAsCgkJCS8vIGNoYW5nZSB0cmlnZ2VyIG9wYWNpdHkgc2xvd2x5IHRvIDAuOCAKCQkJb25CZWZvcmVTaG93OiBmdW5jdGlvbigpIHsgCgkJCQkvL3RoaXMuZ2V0VHJpZ2dlcigpLmZhZGVUbygic2xvdyIsIDAuOCk7IAoJCQkJaWYoJCgiLnByb2dyZXNzIikubGVuZ3RoID09IDApewoJCQkJCSQoIiNkZW1vdGlwIikuYXBwZW5kKCc8aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2ltYWdlcy9hamF4LWxvYWRlci5naWYiIGFsdD0iIi8+Jyk7CgkJCQl9CgkJCQlwSVM9dGhpcy5nZXRUcmlnZ2VyKCkuYXR0cigicmVsIik7CgkJCQlVU0VSPXRoaXMuZ2V0VHJpZ2dlcigpLmF0dHIoImFsdCIpOwoJCQkJJCgiI2RlbW90aXAiKS5sb2FkKCIuLi9hZG1pbi9tb2R1bGVpbnRlcmZhY2UucGhwP21hY3Q9UGF5UGFsQnV0dG9uTWFrZXIsbTFfLGRlc2NyaXB0aW9uLDAmIitVU0VSKyImc2hvd3RlbXBsYXRlPWZhbHNlJm0xX0Rlc2NyaXB0aW9uPSIrcElTKyIgI0RJU0NSUCIKCQkJCQkJCQksZnVuY3Rpb24oKXsKCQkJCQkJCQkJJCgiLnByb2dyZXNzIikuZmFkZU91dCgic2xvdyIsZnVuY3Rpb24oKXskKCIucHJvZ3Jlc3MiKS5yZW1vdmUoKTt9KTsKCQkJCQkJCQl9KTsKCQkJfSwgCgkJCW9uSGlkZTogZnVuY3Rpb24oKSB7CgkJCQkkKCIjZGVtb3RpcCIpLmVtcHR5KCkuYXBwZW5kKCc8aW1nIGNsYXNzPSJwcm9ncmVzcyIgc3JjPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2ltYWdlcy9hamF4LWxvYWRlci5naWYiIGFsdD0iIi8+Jyk7CgkJCX0KCQl9KTsKCX0KCgkkKCJzZWxlY3RbbmFtZSQ9J0J0blR5cGUnXSIpLmNoYW5nZShmdW5jdGlvbigpIHsKCQl2YXIgVT0kKHRoaXMpLnZhbCgpOyAKCQlpZihVPT0nX3hjbGljaycpewoJCQkkKCcuZzEsLmcyLC5nMywuZzQnKS5mYWRlT3V0KCdzbG93JywgZnVuY3Rpb24oKSB7fSk7CgkJCSQoJy5nMiBpbnB1dCwuZzMgaW5wdXQsLmc0IGlucHV0LC5nMiBzZWxlY3QsLmczIHNlbGVjdCwuZzQgc2VsZWN0LC5nMiBvcHRpb24sLmczIG9wdGlvbiwuZzQgb3B0aW9uJykubm90KCcuZzEgaW5wdXQsLmcxIHNlbGVjdCwuZzEgb3B0aW9uJykudmFsKCcnKTsKCQkJJCgnLmcxJykuZmFkZUluKCdzbG93JywgZnVuY3Rpb24oKSB7fSk7CgkJfQoJCWlmKFU9PSdfZG9uYXRpb25zJyl7CgkJCSQoJy5nMSwuZzIsLmczLC5nNCcpLmZhZGVPdXQoJ3Nsb3cnLCBmdW5jdGlvbigpIHt9KTsKCQkJJCgnLmcxIGlucHV0LC5nMyBpbnB1dCwuZzQgaW5wdXQsLmcxIHNlbGVjdCwuZzMgc2VsZWN0LC5nNCBzZWxlY3QsLmcxIG9wdGlvbiwuZzMgb3B0aW9uLC5nNCBvcHRpb24nKS5ub3QoJy5nMiBpbnB1dCwuZzIgc2VsZWN0LC5nMiBvcHRpb24nKS52YWwoJycpOwoJCQkkKCcuZzInKS5mYWRlSW4oJ3Nsb3cnLCBmdW5jdGlvbigpIHt9KTsKCQl9CgkJaWYoVT09J194Y2xpY2stc3Vic2NyaXB0aW9ucycpewoJCQkkKCcuZzEsLmcyLC5nMywuZzQnKS5mYWRlT3V0KCdzbG93JywgZnVuY3Rpb24oKSB7fSk7CgkJCSQoJy5nMSBpbnB1dCwuZzIgaW5wdXQsLmc0IGlucHV0LC5nMSBzZWxlY3QsLmcyIHNlbGVjdCwuZzQgc2VsZWN0LC5nMSBvcHRpb24sLmcyIG9wdGlvbiwuZzQgb3B0aW9uJykubm90KCcuZzMgaW5wdXQsLmczIHNlbGVjdCwuZzMgb3B0aW9uJykudmFsKCcnKTsKCQkJJCgnLmczJykuZmFkZUluKCdzbG93JywgZnVuY3Rpb24oKSB7fSk7CgkJfQoJCWlmKFU9PSdfb2UtZ2lmdC1jZXJ0aWZpY2F0ZScpewoJCQkkKCcuZzEsLmcyLC5nMywuZzQnKS5mYWRlT3V0KCdzbG93JywgZnVuY3Rpb24oKSB7fSk7CgkJCSQoJy5nMSBpbnB1dCwuZzIgaW5wdXQsLmczIGlucHV0LC5nMSBzZWxlY3QsLmcyIHNlbGVjdCwuZzMgc2VsZWN0LC5nMSBvcHRpb24sLmcyIG9wdGlvbiwuZzMgb3B0aW9uJykubm90KCcuZzQgaW5wdXQsLmc0IHNlbGVjdCwuZzQgb3B0aW9uJykudmFsKCcnKTsKCQkJJCgnLmc0JykuZmFkZUluKCdzbG93JywgZnVuY3Rpb24oKSB7fSk7CgkJfQoJfSk7CgoJdmFyIFU9JCgic2VsZWN0W25hbWUkPSdCdG5UeXBlJ10iKS52YWwoKTsgCglpZihVPT0nX3hjbGljaycpewoJCSQoJy5nMSwuZzIsLmczLC5nNCcpLmZhZGVPdXQoJ3Nsb3cnLCBmdW5jdGlvbigpIHt9KTsKCQkkKCcuZzEnKS5mYWRlSW4oJ3Nsb3cnLCBmdW5jdGlvbigpIHt9KTsKCX0KCWlmKFU9PSdfZG9uYXRpb25zJyl7CgkJJCgnLmcxLC5nMiwuZzMsLmc0JykuZmFkZU91dCgnc2xvdycsIGZ1bmN0aW9uKCkge30pOwoJCSQoJy5nMicpLmZhZGVJbignc2xvdycsIGZ1bmN0aW9uKCkge30pOwoJfQoJaWYoVT09J194Y2xpY2stc3Vic2NyaXB0aW9ucycpewoJCSQoJy5nMSwuZzIsLmczLC5nNCcpLmZhZGVPdXQoJ3Nsb3cnLCBmdW5jdGlvbigpIHt9KTsKCQkkKCcuZzMnKS5mYWRlSW4oJ3Nsb3cnLCBmdW5jdGlvbigpIHt9KTsKCX0KCWlmKFU9PSdfb2UtZ2lmdC1jZXJ0aWZpY2F0ZScpewoJCSQoJy5nMSwuZzIsLmczLC5nNCcpLmZhZGVPdXQoJ3Nsb3cnLCBmdW5jdGlvbigpIHt9KTsKCQkkKCcuZzQnKS5mYWRlSW4oJ3Nsb3cnLCBmdW5jdGlvbigpIHt9KTsKCX0KCn0pOwkKCgoK]]></data>
	</file>
	<file>
	  <filename>/includes/MS_1.00.00.js</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[LyoKICogalF1ZXJ5IEphdmFTY3JpcHQgTGlicmFyeSB2MS4zLjIKICogaHR0cDovL2pxdWVyeS5jb20vCiAqCiAqIENvcHlyaWdodCAoYykgMjAwOSBKb2huIFJlc2lnCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzLgogKiBodHRwOi8vZG9jcy5qcXVlcnkuY29tL0xpY2Vuc2UKICoKICogRGF0ZTogMjAwOS0wMi0xOSAxNzozNDoyMSAtMDUwMCAoVGh1LCAxOSBGZWIgMjAwOSkKICogUmV2aXNpb246IDYyNDYKICovCihmdW5jdGlvbigpe3ZhciBsPXRoaXMsZyx5PWwualF1ZXJ5LHA9bC4kLG89bC5qUXVlcnk9bC4kPWZ1bmN0aW9uKEUsRil7cmV0dXJuIG5ldyBvLmZuLmluaXQoRSxGKX0sRD0vXltePF0qKDwoLnxccykrPilbXj5dKiR8XiMoW1x3LV0rKSQvLGY9L14uW146I1xbXC4sXSokLztvLmZuPW8ucHJvdG90eXBlPXtpbml0OmZ1bmN0aW9uKEUsSCl7RT1FfHxkb2N1bWVudDtpZihFLm5vZGVUeXBlKXt0aGlzWzBdPUU7dGhpcy5sZW5ndGg9MTt0aGlzLmNvbnRleHQ9RTtyZXR1cm4gdGhpc31pZih0eXBlb2YgRT09PSJzdHJpbmciKXt2YXIgRz1ELmV4ZWMoRSk7aWYoRyYmKEdbMV18fCFIKSl7aWYoR1sxXSl7RT1vLmNsZWFuKFtHWzFdXSxIKX1lbHNle3ZhciBJPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKEdbM10pO2lmKEkmJkkuaWQhPUdbM10pe3JldHVybiBvKCkuZmluZChFKX12YXIgRj1vKEl8fFtdKTtGLmNvbnRleHQ9ZG9jdW1lbnQ7Ri5zZWxlY3Rvcj1FO3JldHVybiBGfX1lbHNle3JldHVybiBvKEgpLmZpbmQoRSl9fWVsc2V7aWYoby5pc0Z1bmN0aW9uKEUpKXtyZXR1cm4gbyhkb2N1bWVudCkucmVhZHkoRSl9fWlmKEUuc2VsZWN0b3ImJkUuY29udGV4dCl7dGhpcy5zZWxlY3Rvcj1FLnNlbGVjdG9yO3RoaXMuY29udGV4dD1FLmNvbnRleHR9cmV0dXJuIHRoaXMuc2V0QXJyYXkoby5pc0FycmF5KEUpP0U6by5tYWtlQXJyYXkoRSkpfSxzZWxlY3RvcjoiIixqcXVlcnk6IjEuMy4yIixzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGVuZ3RofSxnZXQ6ZnVuY3Rpb24oRSl7cmV0dXJuIEU9PT1nP0FycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMpOnRoaXNbRV19LHB1c2hTdGFjazpmdW5jdGlvbihGLEgsRSl7dmFyIEc9byhGKTtHLnByZXZPYmplY3Q9dGhpcztHLmNvbnRleHQ9dGhpcy5jb250ZXh0O2lmKEg9PT0iZmluZCIpe0cuc2VsZWN0b3I9dGhpcy5zZWxlY3RvcisodGhpcy5zZWxlY3Rvcj8iICI6IiIpK0V9ZWxzZXtpZihIKXtHLnNlbGVjdG9yPXRoaXMuc2VsZWN0b3IrIi4iK0grIigiK0UrIikifX1yZXR1cm4gR30sc2V0QXJyYXk6ZnVuY3Rpb24oRSl7dGhpcy5sZW5ndGg9MDtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseSh0aGlzLEUpO3JldHVybiB0aGlzfSxlYWNoOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIG8uZWFjaCh0aGlzLEYsRSl9LGluZGV4OmZ1bmN0aW9uKEUpe3JldHVybiBvLmluQXJyYXkoRSYmRS5qcXVlcnk/RVswXTpFLHRoaXMpfSxhdHRyOmZ1bmN0aW9uKEYsSCxHKXt2YXIgRT1GO2lmKHR5cGVvZiBGPT09InN0cmluZyIpe2lmKEg9PT1nKXtyZXR1cm4gdGhpc1swXSYmb1tHfHwiYXR0ciJdKHRoaXNbMF0sRil9ZWxzZXtFPXt9O0VbRl09SH19cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihJKXtmb3IoRiBpbiBFKXtvLmF0dHIoRz90aGlzLnN0eWxlOnRoaXMsRixvLnByb3AodGhpcyxFW0ZdLEcsSSxGKSl9fSl9LGNzczpmdW5jdGlvbihFLEYpe2lmKChFPT0id2lkdGgifHxFPT0iaGVpZ2h0IikmJnBhcnNlRmxvYXQoRik8MCl7Rj1nfXJldHVybiB0aGlzLmF0dHIoRSxGLCJjdXJDU1MiKX0sdGV4dDpmdW5jdGlvbihGKXtpZih0eXBlb2YgRiE9PSJvYmplY3QiJiZGIT1udWxsKXtyZXR1cm4gdGhpcy5lbXB0eSgpLmFwcGVuZCgodGhpc1swXSYmdGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCkuY3JlYXRlVGV4dE5vZGUoRikpfXZhciBFPSIiO28uZWFjaChGfHx0aGlzLGZ1bmN0aW9uKCl7by5lYWNoKHRoaXMuY2hpbGROb2RlcyxmdW5jdGlvbigpe2lmKHRoaXMubm9kZVR5cGUhPTgpe0UrPXRoaXMubm9kZVR5cGUhPTE/dGhpcy5ub2RlVmFsdWU6by5mbi50ZXh0KFt0aGlzXSl9fSl9KTtyZXR1cm4gRX0sd3JhcEFsbDpmdW5jdGlvbihFKXtpZih0aGlzWzBdKXt2YXIgRj1vKEUsdGhpc1swXS5vd25lckRvY3VtZW50KS5jbG9uZSgpO2lmKHRoaXNbMF0ucGFyZW50Tm9kZSl7Ri5pbnNlcnRCZWZvcmUodGhpc1swXSl9Ri5tYXAoZnVuY3Rpb24oKXt2YXIgRz10aGlzO3doaWxlKEcuZmlyc3RDaGlsZCl7Rz1HLmZpcnN0Q2hpbGR9cmV0dXJuIEd9KS5hcHBlbmQodGhpcyl9cmV0dXJuIHRoaXN9LHdyYXBJbm5lcjpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS5jb250ZW50cygpLndyYXBBbGwoRSl9KX0sd3JhcDpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7byh0aGlzKS53cmFwQWxsKEUpfSl9LGFwcGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyx0cnVlLGZ1bmN0aW9uKEUpe2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMuYXBwZW5kQ2hpbGQoRSl9fSl9LHByZXBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsdHJ1ZSxmdW5jdGlvbihFKXtpZih0aGlzLm5vZGVUeXBlPT0xKXt0aGlzLmluc2VydEJlZm9yZShFLHRoaXMuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmRvbU1hbmlwKGFyZ3VtZW50cyxmYWxzZSxmdW5jdGlvbihFKXt0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKEUsdGhpcyl9KX0sYWZ0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5kb21NYW5pcChhcmd1bWVudHMsZmFsc2UsZnVuY3Rpb24oRSl7dGhpcy5wYXJlbnROb2RlLmluc2VydEJlZm9yZShFLHRoaXMubmV4dFNpYmxpbmcpfSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fG8oW10pfSxwdXNoOltdLnB1c2gsc29ydDpbXS5zb3J0LHNwbGljZTpbXS5zcGxpY2UsZmluZDpmdW5jdGlvbihFKXtpZih0aGlzLmxlbmd0aD09PTEpe3ZhciBGPXRoaXMucHVzaFN0YWNrKFtdLCJmaW5kIixFKTtGLmxlbmd0aD0wO28uZmluZChFLHRoaXNbMF0sRik7cmV0dXJuIEZ9ZWxzZXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoby5tYXAodGhpcyxmdW5jdGlvbihHKXtyZXR1cm4gby5maW5kKEUsRyl9KSksImZpbmQiLEUpfX0sY2xvbmU6ZnVuY3Rpb24oRyl7dmFyIEU9dGhpcy5tYXAoZnVuY3Rpb24oKXtpZighby5zdXBwb3J0Lm5vQ2xvbmVFdmVudCYmIW8uaXNYTUxEb2ModGhpcykpe3ZhciBJPXRoaXMub3V0ZXJIVE1MO2lmKCFJKXt2YXIgSj10aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Si5hcHBlbmRDaGlsZCh0aGlzLmNsb25lTm9kZSh0cnVlKSk7ST1KLmlubmVySFRNTH1yZXR1cm4gby5jbGVhbihbSS5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpLnJlcGxhY2UoL15ccyovLCIiKV0pWzBdfWVsc2V7cmV0dXJuIHRoaXMuY2xvbmVOb2RlKHRydWUpfX0pO2lmKEc9PT10cnVlKXt2YXIgSD10aGlzLmZpbmQoIioiKS5hbmRTZWxmKCksRj0wO0UuZmluZCgiKiIpLmFuZFNlbGYoKS5lYWNoKGZ1bmN0aW9uKCl7aWYodGhpcy5ub2RlTmFtZSE9PUhbRl0ubm9kZU5hbWUpe3JldHVybn12YXIgST1vLmRhdGEoSFtGXSwiZXZlbnRzIik7Zm9yKHZhciBLIGluIEkpe2Zvcih2YXIgSiBpbiBJW0tdKXtvLmV2ZW50LmFkZCh0aGlzLEssSVtLXVtKXSxJW0tdW0pdLmRhdGEpfX1GKyt9KX1yZXR1cm4gRX0sZmlsdGVyOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLmlzRnVuY3Rpb24oRSkmJm8uZ3JlcCh0aGlzLGZ1bmN0aW9uKEcsRil7cmV0dXJuIEUuY2FsbChHLEYpfSl8fG8ubXVsdGlGaWx0ZXIoRSxvLmdyZXAodGhpcyxmdW5jdGlvbihGKXtyZXR1cm4gRi5ub2RlVHlwZT09PTF9KSksImZpbHRlciIsRSl9LGNsb3Nlc3Q6ZnVuY3Rpb24oRSl7dmFyIEc9by5leHByLm1hdGNoLlBPUy50ZXN0KEUpP28oRSk6bnVsbCxGPTA7cmV0dXJuIHRoaXMubWFwKGZ1bmN0aW9uKCl7dmFyIEg9dGhpczt3aGlsZShIJiZILm93bmVyRG9jdW1lbnQpe2lmKEc/Ry5pbmRleChIKT4tMTpvKEgpLmlzKEUpKXtvLmRhdGEoSCwiY2xvc2VzdCIsRik7cmV0dXJuIEh9SD1ILnBhcmVudE5vZGU7RisrfX0pfSxub3Q6ZnVuY3Rpb24oRSl7aWYodHlwZW9mIEU9PT0ic3RyaW5nIil7aWYoZi50ZXN0KEUpKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soby5tdWx0aUZpbHRlcihFLHRoaXMsdHJ1ZSksIm5vdCIsRSl9ZWxzZXtFPW8ubXVsdGlGaWx0ZXIoRSx0aGlzKX19dmFyIEY9RS5sZW5ndGgmJkVbRS5sZW5ndGgtMV0hPT1nJiYhRS5ub2RlVHlwZTtyZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gRj9vLmluQXJyYXkodGhpcyxFKTwwOnRoaXMhPUV9KX0sYWRkOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhvLnVuaXF1ZShvLm1lcmdlKHRoaXMuZ2V0KCksdHlwZW9mIEU9PT0ic3RyaW5nIj9vKEUpOm8ubWFrZUFycmF5KEUpKSkpfSxpczpmdW5jdGlvbihFKXtyZXR1cm4gISFFJiZvLm11bHRpRmlsdGVyKEUsdGhpcykubGVuZ3RoPjB9LGhhc0NsYXNzOmZ1bmN0aW9uKEUpe3JldHVybiAhIUUmJnRoaXMuaXMoIi4iK0UpfSx2YWw6ZnVuY3Rpb24oSyl7aWYoSz09PWcpe3ZhciBFPXRoaXNbMF07aWYoRSl7aWYoby5ub2RlTmFtZShFLCJvcHRpb24iKSl7cmV0dXJuKEUuYXR0cmlidXRlcy52YWx1ZXx8e30pLnNwZWNpZmllZD9FLnZhbHVlOkUudGV4dH1pZihvLm5vZGVOYW1lKEUsInNlbGVjdCIpKXt2YXIgST1FLnNlbGVjdGVkSW5kZXgsTD1bXSxNPUUub3B0aW9ucyxIPUUudHlwZT09InNlbGVjdC1vbmUiO2lmKEk8MCl7cmV0dXJuIG51bGx9Zm9yKHZhciBGPUg/STowLEo9SD9JKzE6TS5sZW5ndGg7RjxKO0YrKyl7dmFyIEc9TVtGXTtpZihHLnNlbGVjdGVkKXtLPW8oRykudmFsKCk7aWYoSCl7cmV0dXJuIEt9TC5wdXNoKEspfX1yZXR1cm4gTH1yZXR1cm4oRS52YWx1ZXx8IiIpLnJlcGxhY2UoL1xyL2csIiIpfXJldHVybiBnfWlmKHR5cGVvZiBLPT09Im51bWJlciIpe0srPSIifXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtpZih0aGlzLm5vZGVUeXBlIT0xKXtyZXR1cm59aWYoby5pc0FycmF5KEspJiYvcmFkaW98Y2hlY2tib3gvLnRlc3QodGhpcy50eXBlKSl7dGhpcy5jaGVja2VkPShvLmluQXJyYXkodGhpcy52YWx1ZSxLKT49MHx8by5pbkFycmF5KHRoaXMubmFtZSxLKT49MCl9ZWxzZXtpZihvLm5vZGVOYW1lKHRoaXMsInNlbGVjdCIpKXt2YXIgTj1vLm1ha2VBcnJheShLKTtvKCJvcHRpb24iLHRoaXMpLmVhY2goZnVuY3Rpb24oKXt0aGlzLnNlbGVjdGVkPShvLmluQXJyYXkodGhpcy52YWx1ZSxOKT49MHx8by5pbkFycmF5KHRoaXMudGV4dCxOKT49MCl9KTtpZighTi5sZW5ndGgpe3RoaXMuc2VsZWN0ZWRJbmRleD0tMX19ZWxzZXt0aGlzLnZhbHVlPUt9fX0pfSxodG1sOmZ1bmN0aW9uKEUpe3JldHVybiBFPT09Zz8odGhpc1swXT90aGlzWzBdLmlubmVySFRNTC5yZXBsYWNlKC8galF1ZXJ5XGQrPSIoPzpcZCt8bnVsbCkiL2csIiIpOm51bGwpOnRoaXMuZW1wdHkoKS5hcHBlbmQoRSl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmFmdGVyKEUpLnJlbW92ZSgpfSxlcTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5zbGljZShFLCtFKzEpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhBcnJheS5wcm90b3R5cGUuc2xpY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpLCJzbGljZSIsQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzKS5qb2luKCIsIikpfSxtYXA6ZnVuY3Rpb24oRSl7cmV0dXJuIHRoaXMucHVzaFN0YWNrKG8ubWFwKHRoaXMsZnVuY3Rpb24oRyxGKXtyZXR1cm4gRS5jYWxsKEcsRixHKX0pKX0sYW5kU2VsZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLmFkZCh0aGlzLnByZXZPYmplY3QpfSxkb21NYW5pcDpmdW5jdGlvbihKLE0sTCl7aWYodGhpc1swXSl7dmFyIEk9KHRoaXNbMF0ub3duZXJEb2N1bWVudHx8dGhpc1swXSkuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpLEY9by5jbGVhbihKLCh0aGlzWzBdLm93bmVyRG9jdW1lbnR8fHRoaXNbMF0pLEkpLEg9SS5maXJzdENoaWxkO2lmKEgpe2Zvcih2YXIgRz0wLEU9dGhpcy5sZW5ndGg7RzxFO0crKyl7TC5jYWxsKEsodGhpc1tHXSxIKSx0aGlzLmxlbmd0aD4xfHxHPjA/SS5jbG9uZU5vZGUodHJ1ZSk6SSl9fWlmKEYpe28uZWFjaChGLHopfX1yZXR1cm4gdGhpcztmdW5jdGlvbiBLKE4sTyl7cmV0dXJuIE0mJm8ubm9kZU5hbWUoTiwidGFibGUiKSYmby5ub2RlTmFtZShPLCJ0ciIpPyhOLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpWzBdfHxOLmFwcGVuZENoaWxkKE4ub3duZXJEb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0Ym9keSIpKSk6Tn19fTtvLmZuLmluaXQucHJvdG90eXBlPW8uZm47ZnVuY3Rpb24geihFLEYpe2lmKEYuc3JjKXtvLmFqYXgoe3VybDpGLnNyYyxhc3luYzpmYWxzZSxkYXRhVHlwZToic2NyaXB0In0pfWVsc2V7by5nbG9iYWxFdmFsKEYudGV4dHx8Ri50ZXh0Q29udGVudHx8Ri5pbm5lckhUTUx8fCIiKX1pZihGLnBhcmVudE5vZGUpe0YucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChGKX19ZnVuY3Rpb24gZSgpe3JldHVybiArbmV3IERhdGV9by5leHRlbmQ9by5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgSj1hcmd1bWVudHNbMF18fHt9LEg9MSxJPWFyZ3VtZW50cy5sZW5ndGgsRT1mYWxzZSxHO2lmKHR5cGVvZiBKPT09ImJvb2xlYW4iKXtFPUo7Sj1hcmd1bWVudHNbMV18fHt9O0g9Mn1pZih0eXBlb2YgSiE9PSJvYmplY3QiJiYhby5pc0Z1bmN0aW9uKEopKXtKPXt9fWlmKEk9PUgpe0o9dGhpczstLUh9Zm9yKDtIPEk7SCsrKXtpZigoRz1hcmd1bWVudHNbSF0pIT1udWxsKXtmb3IodmFyIEYgaW4gRyl7dmFyIEs9SltGXSxMPUdbRl07aWYoSj09PUwpe2NvbnRpbnVlfWlmKEUmJkwmJnR5cGVvZiBMPT09Im9iamVjdCImJiFMLm5vZGVUeXBlKXtKW0ZdPW8uZXh0ZW5kKEUsS3x8KEwubGVuZ3RoIT1udWxsP1tdOnt9KSxMKX1lbHNle2lmKEwhPT1nKXtKW0ZdPUx9fX19fXJldHVybiBKfTt2YXIgYj0vei0/aW5kZXh8Zm9udC0/d2VpZ2h0fG9wYWNpdHl8em9vbXxsaW5lLT9oZWlnaHQvaSxxPWRvY3VtZW50LmRlZmF1bHRWaWV3fHx7fSxzPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmc7by5leHRlbmQoe25vQ29uZmxpY3Q6ZnVuY3Rpb24oRSl7bC4kPXA7aWYoRSl7bC5qUXVlcnk9eX1yZXR1cm4gb30saXNGdW5jdGlvbjpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgRnVuY3Rpb25dIn0saXNBcnJheTpmdW5jdGlvbihFKXtyZXR1cm4gcy5jYWxsKEUpPT09IltvYmplY3QgQXJyYXldIn0saXNYTUxEb2M6ZnVuY3Rpb24oRSl7cmV0dXJuIEUubm9kZVR5cGU9PT05JiZFLmRvY3VtZW50RWxlbWVudC5ub2RlTmFtZSE9PSJIVE1MInx8ISFFLm93bmVyRG9jdW1lbnQmJm8uaXNYTUxEb2MoRS5vd25lckRvY3VtZW50KX0sZ2xvYmFsRXZhbDpmdW5jdGlvbihHKXtpZihHJiYvXFMvLnRlc3QoRykpe3ZhciBGPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxFPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO0UudHlwZT0idGV4dC9qYXZhc2NyaXB0IjtpZihvLnN1cHBvcnQuc2NyaXB0RXZhbCl7RS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShHKSl9ZWxzZXtFLnRleHQ9R31GLmluc2VydEJlZm9yZShFLEYuZmlyc3RDaGlsZCk7Ri5yZW1vdmVDaGlsZChFKX19LG5vZGVOYW1lOmZ1bmN0aW9uKEYsRSl7cmV0dXJuIEYubm9kZU5hbWUmJkYubm9kZU5hbWUudG9VcHBlckNhc2UoKT09RS50b1VwcGVyQ2FzZSgpfSxlYWNoOmZ1bmN0aW9uKEcsSyxGKXt2YXIgRSxIPTAsST1HLmxlbmd0aDtpZihGKXtpZihJPT09Zyl7Zm9yKEUgaW4gRyl7aWYoSy5hcHBseShHW0VdLEYpPT09ZmFsc2Upe2JyZWFrfX19ZWxzZXtmb3IoO0g8STspe2lmKEsuYXBwbHkoR1tIKytdLEYpPT09ZmFsc2Upe2JyZWFrfX19fWVsc2V7aWYoST09PWcpe2ZvcihFIGluIEcpe2lmKEsuY2FsbChHW0VdLEUsR1tFXSk9PT1mYWxzZSl7YnJlYWt9fX1lbHNle2Zvcih2YXIgSj1HWzBdO0g8SSYmSy5jYWxsKEosSCxKKSE9PWZhbHNlO0o9R1srK0hdKXt9fX1yZXR1cm4gR30scHJvcDpmdW5jdGlvbihILEksRyxGLEUpe2lmKG8uaXNGdW5jdGlvbihJKSl7ST1JLmNhbGwoSCxGKX1yZXR1cm4gdHlwZW9mIEk9PT0ibnVtYmVyIiYmRz09ImN1ckNTUyImJiFiLnRlc3QoRSk/SSsicHgiOkl9LGNsYXNzTmFtZTp7YWRkOmZ1bmN0aW9uKEUsRil7by5lYWNoKChGfHwiIikuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKEcsSCl7aWYoRS5ub2RlVHlwZT09MSYmIW8uY2xhc3NOYW1lLmhhcyhFLmNsYXNzTmFtZSxIKSl7RS5jbGFzc05hbWUrPShFLmNsYXNzTmFtZT8iICI6IiIpK0h9fSl9LHJlbW92ZTpmdW5jdGlvbihFLEYpe2lmKEUubm9kZVR5cGU9PTEpe0UuY2xhc3NOYW1lPUYhPT1nP28uZ3JlcChFLmNsYXNzTmFtZS5zcGxpdCgvXHMrLyksZnVuY3Rpb24oRyl7cmV0dXJuICFvLmNsYXNzTmFtZS5oYXMoRixHKX0pLmpvaW4oIiAiKToiIn19LGhhczpmdW5jdGlvbihGLEUpe3JldHVybiBGJiZvLmluQXJyYXkoRSwoRi5jbGFzc05hbWV8fEYpLnRvU3RyaW5nKCkuc3BsaXQoL1xzKy8pKT4tMX19LHN3YXA6ZnVuY3Rpb24oSCxHLEkpe3ZhciBFPXt9O2Zvcih2YXIgRiBpbiBHKXtFW0ZdPUguc3R5bGVbRl07SC5zdHlsZVtGXT1HW0ZdfUkuY2FsbChIKTtmb3IodmFyIEYgaW4gRyl7SC5zdHlsZVtGXT1FW0ZdfX0sY3NzOmZ1bmN0aW9uKEgsRixKLEUpe2lmKEY9PSJ3aWR0aCJ8fEY9PSJoZWlnaHQiKXt2YXIgTCxHPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxLPUY9PSJ3aWR0aCI/WyJMZWZ0IiwiUmlnaHQiXTpbIlRvcCIsIkJvdHRvbSJdO2Z1bmN0aW9uIEkoKXtMPUY9PSJ3aWR0aCI/SC5vZmZzZXRXaWR0aDpILm9mZnNldEhlaWdodDtpZihFPT09ImJvcmRlciIpe3JldHVybn1vLmVhY2goSyxmdW5jdGlvbigpe2lmKCFFKXtMLT1wYXJzZUZsb2F0KG8uY3VyQ1NTKEgsInBhZGRpbmciK3RoaXMsdHJ1ZSkpfHwwfWlmKEU9PT0ibWFyZ2luIil7TCs9cGFyc2VGbG9hdChvLmN1ckNTUyhILCJtYXJnaW4iK3RoaXMsdHJ1ZSkpfHwwfWVsc2V7TC09cGFyc2VGbG9hdChvLmN1ckNTUyhILCJib3JkZXIiK3RoaXMrIldpZHRoIix0cnVlKSl8fDB9fSl9aWYoSC5vZmZzZXRXaWR0aCE9PTApe0koKX1lbHNle28uc3dhcChILEcsSSl9cmV0dXJuIE1hdGgubWF4KDAsTWF0aC5yb3VuZChMKSl9cmV0dXJuIG8uY3VyQ1NTKEgsRixKKX0sY3VyQ1NTOmZ1bmN0aW9uKEksRixHKXt2YXIgTCxFPUkuc3R5bGU7aWYoRj09Im9wYWNpdHkiJiYhby5zdXBwb3J0Lm9wYWNpdHkpe0w9by5hdHRyKEUsIm9wYWNpdHkiKTtyZXR1cm4gTD09IiI/IjEiOkx9aWYoRi5tYXRjaCgvZmxvYXQvaSkpe0Y9d31pZighRyYmRSYmRVtGXSl7TD1FW0ZdfWVsc2V7aWYocS5nZXRDb21wdXRlZFN0eWxlKXtpZihGLm1hdGNoKC9mbG9hdC9pKSl7Rj0iZmxvYXQifUY9Ri5yZXBsYWNlKC8oW0EtWl0pL2csIi0kMSIpLnRvTG93ZXJDYXNlKCk7dmFyIE09cS5nZXRDb21wdXRlZFN0eWxlKEksbnVsbCk7aWYoTSl7TD1NLmdldFByb3BlcnR5VmFsdWUoRil9aWYoRj09Im9wYWNpdHkiJiZMPT0iIil7TD0iMSJ9fWVsc2V7aWYoSS5jdXJyZW50U3R5bGUpe3ZhciBKPUYucmVwbGFjZSgvXC0oXHcpL2csZnVuY3Rpb24oTixPKXtyZXR1cm4gTy50b1VwcGVyQ2FzZSgpfSk7TD1JLmN1cnJlbnRTdHlsZVtGXXx8SS5jdXJyZW50U3R5bGVbSl07aWYoIS9eXGQrKHB4KT8kL2kudGVzdChMKSYmL15cZC8udGVzdChMKSl7dmFyIEg9RS5sZWZ0LEs9SS5ydW50aW1lU3R5bGUubGVmdDtJLnJ1bnRpbWVTdHlsZS5sZWZ0PUkuY3VycmVudFN0eWxlLmxlZnQ7RS5sZWZ0PUx8fDA7TD1FLnBpeGVsTGVmdCsicHgiO0UubGVmdD1IO0kucnVudGltZVN0eWxlLmxlZnQ9S319fX1yZXR1cm4gTH0sY2xlYW46ZnVuY3Rpb24oRixLLEkpe0s9S3x8ZG9jdW1lbnQ7aWYodHlwZW9mIEsuY3JlYXRlRWxlbWVudD09PSJ1bmRlZmluZWQiKXtLPUsub3duZXJEb2N1bWVudHx8S1swXSYmS1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudH1pZighSSYmRi5sZW5ndGg9PT0xJiZ0eXBlb2YgRlswXT09PSJzdHJpbmciKXt2YXIgSD0vXjwoXHcrKVxzKlwvPz4kLy5leGVjKEZbMF0pO2lmKEgpe3JldHVybltLLmNyZWF0ZUVsZW1lbnQoSFsxXSldfX12YXIgRz1bXSxFPVtdLEw9Sy5jcmVhdGVFbGVtZW50KCJkaXYiKTtvLmVhY2goRixmdW5jdGlvbihQLFMpe2lmKHR5cGVvZiBTPT09Im51bWJlciIpe1MrPSIifWlmKCFTKXtyZXR1cm59aWYodHlwZW9mIFM9PT0ic3RyaW5nIil7Uz1TLnJlcGxhY2UoLyg8KFx3KylbXj5dKj8pXC8+L2csZnVuY3Rpb24oVSxWLFQpe3JldHVybiBULm1hdGNoKC9eKGFiYnJ8YnJ8Y29sfGltZ3xpbnB1dHxsaW5rfG1ldGF8cGFyYW18aHJ8YXJlYXxlbWJlZCkkL2kpP1U6VisiPjwvIitUKyI+In0pO3ZhciBPPVMucmVwbGFjZSgvXlxzKy8sIiIpLnN1YnN0cmluZygwLDEwKS50b0xvd2VyQ2FzZSgpO3ZhciBRPSFPLmluZGV4T2YoIjxvcHQiKSYmWzEsIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz4iLCI8L3NlbGVjdD4iXXx8IU8uaW5kZXhPZigiPGxlZyIpJiZbMSwiPGZpZWxkc2V0PiIsIjwvZmllbGRzZXQ+Il18fE8ubWF0Y2goL148KHRoZWFkfHRib2R5fHRmb290fGNvbGd8Y2FwKS8pJiZbMSwiPHRhYmxlPiIsIjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjx0ciIpJiZbMiwiPHRhYmxlPjx0Ym9keT4iLCI8L3Rib2R5PjwvdGFibGU+Il18fCghTy5pbmRleE9mKCI8dGQiKXx8IU8uaW5kZXhPZigiPHRoIikpJiZbMywiPHRhYmxlPjx0Ym9keT48dHI+IiwiPC90cj48L3Rib2R5PjwvdGFibGU+Il18fCFPLmluZGV4T2YoIjxjb2wiKSYmWzIsIjx0YWJsZT48dGJvZHk+PC90Ym9keT48Y29sZ3JvdXA+IiwiPC9jb2xncm91cD48L3RhYmxlPiJdfHwhby5zdXBwb3J0Lmh0bWxTZXJpYWxpemUmJlsxLCJkaXY8ZGl2PiIsIjwvZGl2PiJdfHxbMCwiIiwiIl07TC5pbm5lckhUTUw9UVsxXStTK1FbMl07d2hpbGUoUVswXS0tKXtMPUwubGFzdENoaWxkfWlmKCFvLnN1cHBvcnQudGJvZHkpe3ZhciBSPS88dGJvZHkvaS50ZXN0KFMpLE49IU8uaW5kZXhPZigiPHRhYmxlIikmJiFSP0wuZmlyc3RDaGlsZCYmTC5maXJzdENoaWxkLmNoaWxkTm9kZXM6UVsxXT09Ijx0YWJsZT4iJiYhUj9MLmNoaWxkTm9kZXM6W107Zm9yKHZhciBNPU4ubGVuZ3RoLTE7TT49MDstLU0pe2lmKG8ubm9kZU5hbWUoTltNXSwidGJvZHkiKSYmIU5bTV0uY2hpbGROb2Rlcy5sZW5ndGgpe05bTV0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChOW01dKX19fWlmKCFvLnN1cHBvcnQubGVhZGluZ1doaXRlc3BhY2UmJi9eXHMvLnRlc3QoUykpe0wuaW5zZXJ0QmVmb3JlKEsuY3JlYXRlVGV4dE5vZGUoUy5tYXRjaCgvXlxzKi8pWzBdKSxMLmZpcnN0Q2hpbGQpfVM9by5tYWtlQXJyYXkoTC5jaGlsZE5vZGVzKX1pZihTLm5vZGVUeXBlKXtHLnB1c2goUyl9ZWxzZXtHPW8ubWVyZ2UoRyxTKX19KTtpZihJKXtmb3IodmFyIEo9MDtHW0pdO0orKyl7aWYoby5ub2RlTmFtZShHW0pdLCJzY3JpcHQiKSYmKCFHW0pdLnR5cGV8fEdbSl0udHlwZS50b0xvd2VyQ2FzZSgpPT09InRleHQvamF2YXNjcmlwdCIpKXtFLnB1c2goR1tKXS5wYXJlbnROb2RlP0dbSl0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChHW0pdKTpHW0pdKX1lbHNle2lmKEdbSl0ubm9kZVR5cGU9PT0xKXtHLnNwbGljZS5hcHBseShHLFtKKzEsMF0uY29uY2F0KG8ubWFrZUFycmF5KEdbSl0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpKSkpfUkuYXBwZW5kQ2hpbGQoR1tKXSl9fXJldHVybiBFfXJldHVybiBHfSxhdHRyOmZ1bmN0aW9uKEosRyxLKXtpZighSnx8Si5ub2RlVHlwZT09M3x8Si5ub2RlVHlwZT09OCl7cmV0dXJuIGd9dmFyIEg9IW8uaXNYTUxEb2MoSiksTD1LIT09ZztHPUgmJm8ucHJvcHNbR118fEc7aWYoSi50YWdOYW1lKXt2YXIgRj0vaHJlZnxzcmN8c3R5bGUvLnRlc3QoRyk7aWYoRz09InNlbGVjdGVkIiYmSi5wYXJlbnROb2RlKXtKLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleH1pZihHIGluIEomJkgmJiFGKXtpZihMKXtpZihHPT0idHlwZSImJm8ubm9kZU5hbWUoSiwiaW5wdXQiKSYmSi5wYXJlbnROb2RlKXt0aHJvdyJ0eXBlIHByb3BlcnR5IGNhbid0IGJlIGNoYW5nZWQifUpbR109S31pZihvLm5vZGVOYW1lKEosImZvcm0iKSYmSi5nZXRBdHRyaWJ1dGVOb2RlKEcpKXtyZXR1cm4gSi5nZXRBdHRyaWJ1dGVOb2RlKEcpLm5vZGVWYWx1ZX1pZihHPT0idGFiSW5kZXgiKXt2YXIgST1KLmdldEF0dHJpYnV0ZU5vZGUoInRhYkluZGV4Iik7cmV0dXJuIEkmJkkuc3BlY2lmaWVkP0kudmFsdWU6Si5ub2RlTmFtZS5tYXRjaCgvKGJ1dHRvbnxpbnB1dHxvYmplY3R8c2VsZWN0fHRleHRhcmVhKS9pKT8wOkoubm9kZU5hbWUubWF0Y2goL14oYXxhcmVhKSQvaSkmJkouaHJlZj8wOmd9cmV0dXJuIEpbR119aWYoIW8uc3VwcG9ydC5zdHlsZSYmSCYmRz09InN0eWxlIil7cmV0dXJuIG8uYXR0cihKLnN0eWxlLCJjc3NUZXh0IixLKX1pZihMKXtKLnNldEF0dHJpYnV0ZShHLCIiK0spfXZhciBFPSFvLnN1cHBvcnQuaHJlZk5vcm1hbGl6ZWQmJkgmJkY/Si5nZXRBdHRyaWJ1dGUoRywyKTpKLmdldEF0dHJpYnV0ZShHKTtyZXR1cm4gRT09PW51bGw/ZzpFfWlmKCFvLnN1cHBvcnQub3BhY2l0eSYmRz09Im9wYWNpdHkiKXtpZihMKXtKLnpvb209MTtKLmZpbHRlcj0oSi5maWx0ZXJ8fCIiKS5yZXBsYWNlKC9hbHBoYVwoW14pXSpcKS8sIiIpKyhwYXJzZUludChLKSsiIj09Ik5hTiI/IiI6ImFscGhhKG9wYWNpdHk9IitLKjEwMCsiKSIpfXJldHVybiBKLmZpbHRlciYmSi5maWx0ZXIuaW5kZXhPZigib3BhY2l0eT0iKT49MD8ocGFyc2VGbG9hdChKLmZpbHRlci5tYXRjaCgvb3BhY2l0eT0oW14pXSopLylbMV0pLzEwMCkrIiI6IiJ9Rz1HLnJlcGxhY2UoLy0oW2Etel0pL2lnLGZ1bmN0aW9uKE0sTil7cmV0dXJuIE4udG9VcHBlckNhc2UoKX0pO2lmKEwpe0pbR109S31yZXR1cm4gSltHXX0sdHJpbTpmdW5jdGlvbihFKXtyZXR1cm4oRXx8IiIpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCIiKX0sbWFrZUFycmF5OmZ1bmN0aW9uKEcpe3ZhciBFPVtdO2lmKEchPW51bGwpe3ZhciBGPUcubGVuZ3RoO2lmKEY9PW51bGx8fHR5cGVvZiBHPT09InN0cmluZyJ8fG8uaXNGdW5jdGlvbihHKXx8Ry5zZXRJbnRlcnZhbCl7RVswXT1HfWVsc2V7d2hpbGUoRil7RVstLUZdPUdbRl19fX1yZXR1cm4gRX0saW5BcnJheTpmdW5jdGlvbihHLEgpe2Zvcih2YXIgRT0wLEY9SC5sZW5ndGg7RTxGO0UrKyl7aWYoSFtFXT09PUcpe3JldHVybiBFfX1yZXR1cm4gLTF9LG1lcmdlOmZ1bmN0aW9uKEgsRSl7dmFyIEY9MCxHLEk9SC5sZW5ndGg7aWYoIW8uc3VwcG9ydC5nZXRBbGwpe3doaWxlKChHPUVbRisrXSkhPW51bGwpe2lmKEcubm9kZVR5cGUhPTgpe0hbSSsrXT1HfX19ZWxzZXt3aGlsZSgoRz1FW0YrK10pIT1udWxsKXtIW0krK109R319cmV0dXJuIEh9LHVuaXF1ZTpmdW5jdGlvbihLKXt2YXIgRj1bXSxFPXt9O3RyeXtmb3IodmFyIEc9MCxIPUsubGVuZ3RoO0c8SDtHKyspe3ZhciBKPW8uZGF0YShLW0ddKTtpZighRVtKXSl7RVtKXT10cnVlO0YucHVzaChLW0ddKX19fWNhdGNoKEkpe0Y9S31yZXR1cm4gRn0sZ3JlcDpmdW5jdGlvbihGLEosRSl7dmFyIEc9W107Zm9yKHZhciBIPTAsST1GLmxlbmd0aDtIPEk7SCsrKXtpZighRSE9IUooRltIXSxIKSl7Ry5wdXNoKEZbSF0pfX1yZXR1cm4gR30sbWFwOmZ1bmN0aW9uKEUsSil7dmFyIEY9W107Zm9yKHZhciBHPTAsSD1FLmxlbmd0aDtHPEg7RysrKXt2YXIgST1KKEVbR10sRyk7aWYoSSE9bnVsbCl7RltGLmxlbmd0aF09SX19cmV0dXJuIEYuY29uY2F0LmFwcGx5KFtdLEYpfX0pO3ZhciBDPW5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKTtvLmJyb3dzZXI9e3ZlcnNpb246KEMubWF0Y2goLy4rKD86cnZ8aXR8cmF8aWUpW1wvOiBdKFtcZC5dKykvKXx8WzAsIjAiXSlbMV0sc2FmYXJpOi93ZWJraXQvLnRlc3QoQyksb3BlcmE6L29wZXJhLy50ZXN0KEMpLG1zaWU6L21zaWUvLnRlc3QoQykmJiEvb3BlcmEvLnRlc3QoQyksbW96aWxsYTovbW96aWxsYS8udGVzdChDKSYmIS8oY29tcGF0aWJsZXx3ZWJraXQpLy50ZXN0KEMpfTtvLmVhY2goe3BhcmVudDpmdW5jdGlvbihFKXtyZXR1cm4gRS5wYXJlbnROb2RlfSxwYXJlbnRzOmZ1bmN0aW9uKEUpe3JldHVybiBvLmRpcihFLCJwYXJlbnROb2RlIil9LG5leHQ6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubnRoKEUsMiwibmV4dFNpYmxpbmciKX0scHJldjpmdW5jdGlvbihFKXtyZXR1cm4gby5udGgoRSwyLCJwcmV2aW91c1NpYmxpbmciKX0sbmV4dEFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwibmV4dFNpYmxpbmciKX0scHJldkFsbDpmdW5jdGlvbihFKXtyZXR1cm4gby5kaXIoRSwicHJldmlvdXNTaWJsaW5nIil9LHNpYmxpbmdzOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5wYXJlbnROb2RlLmZpcnN0Q2hpbGQsRSl9LGNoaWxkcmVuOmZ1bmN0aW9uKEUpe3JldHVybiBvLnNpYmxpbmcoRS5maXJzdENoaWxkKX0sY29udGVudHM6ZnVuY3Rpb24oRSl7cmV0dXJuIG8ubm9kZU5hbWUoRSwiaWZyYW1lIik/RS5jb250ZW50RG9jdW1lbnR8fEUuY29udGVudFdpbmRvdy5kb2N1bWVudDpvLm1ha2VBcnJheShFLmNoaWxkTm9kZXMpfX0sZnVuY3Rpb24oRSxGKXtvLmZuW0VdPWZ1bmN0aW9uKEcpe3ZhciBIPW8ubWFwKHRoaXMsRik7aWYoRyYmdHlwZW9mIEc9PSJzdHJpbmciKXtIPW8ubXVsdGlGaWx0ZXIoRyxIKX1yZXR1cm4gdGhpcy5wdXNoU3RhY2soby51bmlxdWUoSCksRSxHKX19KTtvLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyl7dmFyIEo9W10sTD1vKEcpO2Zvcih2YXIgSz0wLEg9TC5sZW5ndGg7SzxIO0srKyl7dmFyIEk9KEs+MD90aGlzLmNsb25lKHRydWUpOnRoaXMpLmdldCgpO28uZm5bRl0uYXBwbHkobyhMW0tdKSxJKTtKPUouY29uY2F0KEkpfXJldHVybiB0aGlzLnB1c2hTdGFjayhKLEUsRyl9fSk7by5lYWNoKHtyZW1vdmVBdHRyOmZ1bmN0aW9uKEUpe28uYXR0cih0aGlzLEUsIiIpO2lmKHRoaXMubm9kZVR5cGU9PTEpe3RoaXMucmVtb3ZlQXR0cmlidXRlKEUpfX0sYWRkQ2xhc3M6ZnVuY3Rpb24oRSl7by5jbGFzc05hbWUuYWRkKHRoaXMsRSl9LHJlbW92ZUNsYXNzOmZ1bmN0aW9uKEUpe28uY2xhc3NOYW1lLnJlbW92ZSh0aGlzLEUpfSx0b2dnbGVDbGFzczpmdW5jdGlvbihGLEUpe2lmKHR5cGVvZiBFIT09ImJvb2xlYW4iKXtFPSFvLmNsYXNzTmFtZS5oYXModGhpcyxGKX1vLmNsYXNzTmFtZVtFPyJhZGQiOiJyZW1vdmUiXSh0aGlzLEYpfSxyZW1vdmU6ZnVuY3Rpb24oRSl7aWYoIUV8fG8uZmlsdGVyKEUsW3RoaXNdKS5sZW5ndGgpe28oIioiLHRoaXMpLmFkZChbdGhpc10pLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzKTtvLnJlbW92ZURhdGEodGhpcyl9KTtpZih0aGlzLnBhcmVudE5vZGUpe3RoaXMucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzKX19fSxlbXB0eTpmdW5jdGlvbigpe28odGhpcykuY2hpbGRyZW4oKS5yZW1vdmUoKTt3aGlsZSh0aGlzLmZpcnN0Q2hpbGQpe3RoaXMucmVtb3ZlQ2hpbGQodGhpcy5maXJzdENoaWxkKX19fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKEYsYXJndW1lbnRzKX19KTtmdW5jdGlvbiBqKEUsRil7cmV0dXJuIEVbMF0mJnBhcnNlSW50KG8uY3VyQ1NTKEVbMF0sRix0cnVlKSwxMCl8fDB9dmFyIGg9ImpRdWVyeSIrZSgpLHY9MCxBPXt9O28uZXh0ZW5kKHtjYWNoZTp7fSxkYXRhOmZ1bmN0aW9uKEYsRSxHKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoIUgpe0g9RltoXT0rK3Z9aWYoRSYmIW8uY2FjaGVbSF0pe28uY2FjaGVbSF09e319aWYoRyE9PWcpe28uY2FjaGVbSF1bRV09R31yZXR1cm4gRT9vLmNhY2hlW0hdW0VdOkh9LHJlbW92ZURhdGE6ZnVuY3Rpb24oRixFKXtGPUY9PWw/QTpGO3ZhciBIPUZbaF07aWYoRSl7aWYoby5jYWNoZVtIXSl7ZGVsZXRlIG8uY2FjaGVbSF1bRV07RT0iIjtmb3IoRSBpbiBvLmNhY2hlW0hdKXticmVha31pZighRSl7by5yZW1vdmVEYXRhKEYpfX19ZWxzZXt0cnl7ZGVsZXRlIEZbaF19Y2F0Y2goRyl7aWYoRi5yZW1vdmVBdHRyaWJ1dGUpe0YucmVtb3ZlQXR0cmlidXRlKGgpfX1kZWxldGUgby5jYWNoZVtIXX19LHF1ZXVlOmZ1bmN0aW9uKEYsRSxIKXtpZihGKXtFPShFfHwiZngiKSsicXVldWUiO3ZhciBHPW8uZGF0YShGLEUpO2lmKCFHfHxvLmlzQXJyYXkoSCkpe0c9by5kYXRhKEYsRSxvLm1ha2VBcnJheShIKSl9ZWxzZXtpZihIKXtHLnB1c2goSCl9fX1yZXR1cm4gR30sZGVxdWV1ZTpmdW5jdGlvbihILEcpe3ZhciBFPW8ucXVldWUoSCxHKSxGPUUuc2hpZnQoKTtpZighR3x8Rz09PSJmeCIpe0Y9RVswXX1pZihGIT09Zyl7Ri5jYWxsKEgpfX19KTtvLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihFLEcpe3ZhciBIPUUuc3BsaXQoIi4iKTtIWzFdPUhbMV0/Ii4iK0hbMV06IiI7aWYoRz09PWcpe3ZhciBGPXRoaXMudHJpZ2dlckhhbmRsZXIoImdldERhdGEiK0hbMV0rIiEiLFtIWzBdXSk7aWYoRj09PWcmJnRoaXMubGVuZ3RoKXtGPW8uZGF0YSh0aGlzWzBdLEUpfXJldHVybiBGPT09ZyYmSFsxXT90aGlzLmRhdGEoSFswXSk6Rn1lbHNle3JldHVybiB0aGlzLnRyaWdnZXIoInNldERhdGEiK0hbMV0rIiEiLFtIWzBdLEddKS5lYWNoKGZ1bmN0aW9uKCl7by5kYXRhKHRoaXMsRSxHKX0pfX0scmVtb3ZlRGF0YTpmdW5jdGlvbihFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5yZW1vdmVEYXRhKHRoaXMsRSl9KX0scXVldWU6ZnVuY3Rpb24oRSxGKXtpZih0eXBlb2YgRSE9PSJzdHJpbmciKXtGPUU7RT0iZngifWlmKEY9PT1nKXtyZXR1cm4gby5xdWV1ZSh0aGlzWzBdLEUpfXJldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgRz1vLnF1ZXVlKHRoaXMsRSxGKTtpZihFPT0iZngiJiZHLmxlbmd0aD09MSl7R1swXS5jYWxsKHRoaXMpfX0pfSxkZXF1ZXVlOmZ1bmN0aW9uKEUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmRlcXVldWUodGhpcyxFKX0pfX0pOwovKgogKiBTaXp6bGUgQ1NTIFNlbGVjdG9yIEVuZ2luZSAtIHYwLjkuMwogKiAgQ29weXJpZ2h0IDIwMDksIFRoZSBEb2pvIEZvdW5kYXRpb24KICogIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQsIEJTRCwgYW5kIEdQTCBMaWNlbnNlcy4KICogIE1vcmUgaW5mb3JtYXRpb246IGh0dHA6Ly9zaXp6bGVqcy5jb20vCiAqLwooZnVuY3Rpb24oKXt2YXIgUj0vKCg/OlwoKD86XChbXigpXStcKXxbXigpXSspK1wpfFxbKD86XFtbXltcXV0qXF18WyciXVteJyJdKlsnIl18W15bXF0nIl0rKStcXXxcXC58W14gPit+LChcW1xcXSspK3xbPit+XSkoXHMqLFxzKik/L2csTD0wLEg9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZzt2YXIgRj1mdW5jdGlvbihZLFUsYWIsYWMpe2FiPWFifHxbXTtVPVV8fGRvY3VtZW50O2lmKFUubm9kZVR5cGUhPT0xJiZVLm5vZGVUeXBlIT09OSl7cmV0dXJuW119aWYoIVl8fHR5cGVvZiBZIT09InN0cmluZyIpe3JldHVybiBhYn12YXIgWj1bXSxXLGFmLGFpLFQsYWQsVixYPXRydWU7Ui5sYXN0SW5kZXg9MDt3aGlsZSgoVz1SLmV4ZWMoWSkpIT09bnVsbCl7Wi5wdXNoKFdbMV0pO2lmKFdbMl0pe1Y9UmVnRXhwLnJpZ2h0Q29udGV4dDticmVha319aWYoWi5sZW5ndGg+MSYmTS5leGVjKFkpKXtpZihaLmxlbmd0aD09PTImJkkucmVsYXRpdmVbWlswXV0pe2FmPUooWlswXStaWzFdLFUpfWVsc2V7YWY9SS5yZWxhdGl2ZVtaWzBdXT9bVV06RihaLnNoaWZ0KCksVSk7d2hpbGUoWi5sZW5ndGgpe1k9Wi5zaGlmdCgpO2lmKEkucmVsYXRpdmVbWV0pe1krPVouc2hpZnQoKX1hZj1KKFksYWYpfX19ZWxzZXt2YXIgYWU9YWM/e2V4cHI6Wi5wb3AoKSxzZXQ6RShhYyl9OkYuZmluZChaLnBvcCgpLFoubGVuZ3RoPT09MSYmVS5wYXJlbnROb2RlP1UucGFyZW50Tm9kZTpVLFEoVSkpO2FmPUYuZmlsdGVyKGFlLmV4cHIsYWUuc2V0KTtpZihaLmxlbmd0aD4wKXthaT1FKGFmKX1lbHNle1g9ZmFsc2V9d2hpbGUoWi5sZW5ndGgpe3ZhciBhaD1aLnBvcCgpLGFnPWFoO2lmKCFJLnJlbGF0aXZlW2FoXSl7YWg9IiJ9ZWxzZXthZz1aLnBvcCgpfWlmKGFnPT1udWxsKXthZz1VfUkucmVsYXRpdmVbYWhdKGFpLGFnLFEoVSkpfX1pZighYWkpe2FpPWFmfWlmKCFhaSl7dGhyb3ciU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIisoYWh8fFkpfWlmKEguY2FsbChhaSk9PT0iW29iamVjdCBBcnJheV0iKXtpZighWCl7YWIucHVzaC5hcHBseShhYixhaSl9ZWxzZXtpZihVLm5vZGVUeXBlPT09MSl7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJihhaVthYV09PT10cnVlfHxhaVthYV0ubm9kZVR5cGU9PT0xJiZLKFUsYWlbYWFdKSkpe2FiLnB1c2goYWZbYWFdKX19fWVsc2V7Zm9yKHZhciBhYT0wO2FpW2FhXSE9bnVsbDthYSsrKXtpZihhaVthYV0mJmFpW2FhXS5ub2RlVHlwZT09PTEpe2FiLnB1c2goYWZbYWFdKX19fX19ZWxzZXtFKGFpLGFiKX1pZihWKXtGKFYsVSxhYixhYyk7aWYoRyl7aGFzRHVwbGljYXRlPWZhbHNlO2FiLnNvcnQoRyk7aWYoaGFzRHVwbGljYXRlKXtmb3IodmFyIGFhPTE7YWE8YWIubGVuZ3RoO2FhKyspe2lmKGFiW2FhXT09PWFiW2FhLTFdKXthYi5zcGxpY2UoYWEtLSwxKX19fX19cmV0dXJuIGFifTtGLm1hdGNoZXM9ZnVuY3Rpb24oVCxVKXtyZXR1cm4gRihULG51bGwsbnVsbCxVKX07Ri5maW5kPWZ1bmN0aW9uKGFhLFQsYWIpe3ZhciBaLFg7aWYoIWFhKXtyZXR1cm5bXX1mb3IodmFyIFc9MCxWPUkub3JkZXIubGVuZ3RoO1c8VjtXKyspe3ZhciBZPUkub3JkZXJbV10sWDtpZigoWD1JLm1hdGNoW1ldLmV4ZWMoYWEpKSl7dmFyIFU9UmVnRXhwLmxlZnRDb250ZXh0O2lmKFUuc3Vic3RyKFUubGVuZ3RoLTEpIT09IlxcIil7WFsxXT0oWFsxXXx8IiIpLnJlcGxhY2UoL1xcL2csIiIpO1o9SS5maW5kW1ldKFgsVCxhYik7aWYoWiE9bnVsbCl7YWE9YWEucmVwbGFjZShJLm1hdGNoW1ldLCIiKTticmVha319fX1pZighWil7Wj1ULmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIil9cmV0dXJue3NldDpaLGV4cHI6YWF9fTtGLmZpbHRlcj1mdW5jdGlvbihhZCxhYyxhZyxXKXt2YXIgVj1hZCxhaT1bXSxhYT1hYyxZLFQsWj1hYyYmYWNbMF0mJlEoYWNbMF0pO3doaWxlKGFkJiZhYy5sZW5ndGgpe2Zvcih2YXIgYWIgaW4gSS5maWx0ZXIpe2lmKChZPUkubWF0Y2hbYWJdLmV4ZWMoYWQpKSE9bnVsbCl7dmFyIFU9SS5maWx0ZXJbYWJdLGFoLGFmO1Q9ZmFsc2U7aWYoYWE9PWFpKXthaT1bXX1pZihJLnByZUZpbHRlclthYl0pe1k9SS5wcmVGaWx0ZXJbYWJdKFksYWEsYWcsYWksVyxaKTtpZighWSl7VD1haD10cnVlfWVsc2V7aWYoWT09PXRydWUpe2NvbnRpbnVlfX19aWYoWSl7Zm9yKHZhciBYPTA7KGFmPWFhW1hdKSE9bnVsbDtYKyspe2lmKGFmKXthaD1VKGFmLFksWCxhYSk7dmFyIGFlPVdeISFhaDtpZihhZyYmYWghPW51bGwpe2lmKGFlKXtUPXRydWV9ZWxzZXthYVtYXT1mYWxzZX19ZWxzZXtpZihhZSl7YWkucHVzaChhZik7VD10cnVlfX19fX1pZihhaCE9PWcpe2lmKCFhZyl7YWE9YWl9YWQ9YWQucmVwbGFjZShJLm1hdGNoW2FiXSwiIik7aWYoIVQpe3JldHVybltdfWJyZWFrfX19aWYoYWQ9PVYpe2lmKFQ9PW51bGwpe3Rocm93IlN5bnRheCBlcnJvciwgdW5yZWNvZ25pemVkIGV4cHJlc3Npb246ICIrYWR9ZWxzZXticmVha319Vj1hZH1yZXR1cm4gYWF9O3ZhciBJPUYuc2VsZWN0b3JzPXtvcmRlcjpbIklEIiwiTkFNRSIsIlRBRyJdLG1hdGNoOntJRDovIygoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKS8sQ0xBU1M6L1wuKCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspLyxOQU1FOi9cW25hbWU9WyciXSooKD86W1x3XHUwMGMwLVx1RkZGRl8tXXxcXC4pKylbJyJdKlxdLyxBVFRSOi9cW1xzKigoPzpbXHdcdTAwYzAtXHVGRkZGXy1dfFxcLikrKVxzKig/OihcUz89KVxzKihbJyJdKikoLio/KVwzfClccypcXS8sVEFHOi9eKCg/Oltcd1x1MDBjMC1cdUZGRkZcKl8tXXxcXC4pKykvLENISUxEOi86KG9ubHl8bnRofGxhc3R8Zmlyc3QpLWNoaWxkKD86XCgoZXZlbnxvZGR8W1xkbistXSopXCkpPy8sUE9TOi86KG50aHxlcXxndHxsdHxmaXJzdHxsYXN0fGV2ZW58b2RkKSg/OlwoKFxkKilcKSk/KD89W14tXXwkKS8sUFNFVURPOi86KCg/Oltcd1x1MDBjMC1cdUZGRkZfLV18XFwuKSspKD86XCgoWyciXSopKCg/OlwoW15cKV0rXCl8W15cMlwoXCldKikrKVwyXCkpPy99LGF0dHJNYXA6eyJjbGFzcyI6ImNsYXNzTmFtZSIsImZvciI6Imh0bWxGb3IifSxhdHRySGFuZGxlOntocmVmOmZ1bmN0aW9uKFQpe3JldHVybiBULmdldEF0dHJpYnV0ZSgiaHJlZiIpfX0scmVsYXRpdmU6eyIrIjpmdW5jdGlvbihhYSxULFope3ZhciBYPXR5cGVvZiBUPT09InN0cmluZyIsYWI9WCYmIS9cVy8udGVzdChUKSxZPVgmJiFhYjtpZihhYiYmIVope1Q9VC50b1VwcGVyQ2FzZSgpfWZvcih2YXIgVz0wLFY9YWEubGVuZ3RoLFU7VzxWO1crKyl7aWYoKFU9YWFbV10pKXt3aGlsZSgoVT1VLnByZXZpb3VzU2libGluZykmJlUubm9kZVR5cGUhPT0xKXt9YWFbV109WXx8VSYmVS5ub2RlTmFtZT09PVQ/VXx8ZmFsc2U6VT09PVR9fWlmKFkpe0YuZmlsdGVyKFQsYWEsdHJ1ZSl9fSwiPiI6ZnVuY3Rpb24oWixVLGFhKXt2YXIgWD10eXBlb2YgVT09PSJzdHJpbmciO2lmKFgmJiEvXFcvLnRlc3QoVSkpe1U9YWE/VTpVLnRvVXBwZXJDYXNlKCk7Zm9yKHZhciBWPTAsVD1aLmxlbmd0aDtWPFQ7VisrKXt2YXIgWT1aW1ZdO2lmKFkpe3ZhciBXPVkucGFyZW50Tm9kZTtaW1ZdPVcubm9kZU5hbWU9PT1VP1c6ZmFsc2V9fX1lbHNle2Zvcih2YXIgVj0wLFQ9Wi5sZW5ndGg7VjxUO1YrKyl7dmFyIFk9WltWXTtpZihZKXtaW1ZdPVg/WS5wYXJlbnROb2RlOlkucGFyZW50Tm9kZT09PVV9fWlmKFgpe0YuZmlsdGVyKFUsWix0cnVlKX19fSwiIjpmdW5jdGlvbihXLFUsWSl7dmFyIFY9TCsrLFQ9UztpZighVS5tYXRjaCgvXFcvKSl7dmFyIFg9VT1ZP1U6VS50b1VwcGVyQ2FzZSgpO1Q9UH1UKCJwYXJlbnROb2RlIixVLFYsVyxYLFkpfSwifiI6ZnVuY3Rpb24oVyxVLFkpe3ZhciBWPUwrKyxUPVM7aWYodHlwZW9mIFU9PT0ic3RyaW5nIiYmIVUubWF0Y2goL1xXLykpe3ZhciBYPVU9WT9VOlUudG9VcHBlckNhc2UoKTtUPVB9VCgicHJldmlvdXNTaWJsaW5nIixVLFYsVyxYLFkpfX0sZmluZDp7SUQ6ZnVuY3Rpb24oVSxWLFcpe2lmKHR5cGVvZiBWLmdldEVsZW1lbnRCeUlkIT09InVuZGVmaW5lZCImJiFXKXt2YXIgVD1WLmdldEVsZW1lbnRCeUlkKFVbMV0pO3JldHVybiBUP1tUXTpbXX19LE5BTUU6ZnVuY3Rpb24oVixZLFope2lmKHR5cGVvZiBZLmdldEVsZW1lbnRzQnlOYW1lIT09InVuZGVmaW5lZCIpe3ZhciBVPVtdLFg9WS5nZXRFbGVtZW50c0J5TmFtZShWWzFdKTtmb3IodmFyIFc9MCxUPVgubGVuZ3RoO1c8VDtXKyspe2lmKFhbV10uZ2V0QXR0cmlidXRlKCJuYW1lIik9PT1WWzFdKXtVLnB1c2goWFtXXSl9fXJldHVybiBVLmxlbmd0aD09PTA/bnVsbDpVfX0sVEFHOmZ1bmN0aW9uKFQsVSl7cmV0dXJuIFUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVFsxXSl9fSxwcmVGaWx0ZXI6e0NMQVNTOmZ1bmN0aW9uKFcsVSxWLFQsWixhYSl7Vz0iICIrV1sxXS5yZXBsYWNlKC9cXC9nLCIiKSsiICI7aWYoYWEpe3JldHVybiBXfWZvcih2YXIgWD0wLFk7KFk9VVtYXSkhPW51bGw7WCsrKXtpZihZKXtpZihaXihZLmNsYXNzTmFtZSYmKCIgIitZLmNsYXNzTmFtZSsiICIpLmluZGV4T2YoVyk+PTApKXtpZighVil7VC5wdXNoKFkpfX1lbHNle2lmKFYpe1VbWF09ZmFsc2V9fX19cmV0dXJuIGZhbHNlfSxJRDpmdW5jdGlvbihUKXtyZXR1cm4gVFsxXS5yZXBsYWNlKC9cXC9nLCIiKX0sVEFHOmZ1bmN0aW9uKFUsVCl7Zm9yKHZhciBWPTA7VFtWXT09PWZhbHNlO1YrKyl7fXJldHVybiBUW1ZdJiZRKFRbVl0pP1VbMV06VVsxXS50b1VwcGVyQ2FzZSgpfSxDSElMRDpmdW5jdGlvbihUKXtpZihUWzFdPT0ibnRoIil7dmFyIFU9LygtPykoXGQqKW4oKD86XCt8LSk/XGQqKS8uZXhlYyhUWzJdPT0iZXZlbiImJiIybiJ8fFRbMl09PSJvZGQiJiYiMm4rMSJ8fCEvXEQvLnRlc3QoVFsyXSkmJiIwbisiK1RbMl18fFRbMl0pO1RbMl09KFVbMV0rKFVbMl18fDEpKS0wO1RbM109VVszXS0wfVRbMF09TCsrO3JldHVybiBUfSxBVFRSOmZ1bmN0aW9uKFgsVSxWLFQsWSxaKXt2YXIgVz1YWzFdLnJlcGxhY2UoL1xcL2csIiIpO2lmKCFaJiZJLmF0dHJNYXBbV10pe1hbMV09SS5hdHRyTWFwW1ddfWlmKFhbMl09PT0ifj0iKXtYWzRdPSIgIitYWzRdKyIgIn1yZXR1cm4gWH0sUFNFVURPOmZ1bmN0aW9uKFgsVSxWLFQsWSl7aWYoWFsxXT09PSJub3QiKXtpZihYWzNdLm1hdGNoKFIpLmxlbmd0aD4xfHwvXlx3Ly50ZXN0KFhbM10pKXtYWzNdPUYoWFszXSxudWxsLG51bGwsVSl9ZWxzZXt2YXIgVz1GLmZpbHRlcihYWzNdLFUsVix0cnVlXlkpO2lmKCFWKXtULnB1c2guYXBwbHkoVCxXKX1yZXR1cm4gZmFsc2V9fWVsc2V7aWYoSS5tYXRjaC5QT1MudGVzdChYWzBdKXx8SS5tYXRjaC5DSElMRC50ZXN0KFhbMF0pKXtyZXR1cm4gdHJ1ZX19cmV0dXJuIFh9LFBPUzpmdW5jdGlvbihUKXtULnVuc2hpZnQodHJ1ZSk7cmV0dXJuIFR9fSxmaWx0ZXJzOntlbmFibGVkOmZ1bmN0aW9uKFQpe3JldHVybiBULmRpc2FibGVkPT09ZmFsc2UmJlQudHlwZSE9PSJoaWRkZW4ifSxkaXNhYmxlZDpmdW5jdGlvbihUKXtyZXR1cm4gVC5kaXNhYmxlZD09PXRydWV9LGNoZWNrZWQ6ZnVuY3Rpb24oVCl7cmV0dXJuIFQuY2hlY2tlZD09PXRydWV9LHNlbGVjdGVkOmZ1bmN0aW9uKFQpe1QucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O3JldHVybiBULnNlbGVjdGVkPT09dHJ1ZX0scGFyZW50OmZ1bmN0aW9uKFQpe3JldHVybiAhIVQuZmlyc3RDaGlsZH0sZW1wdHk6ZnVuY3Rpb24oVCl7cmV0dXJuICFULmZpcnN0Q2hpbGR9LGhhczpmdW5jdGlvbihWLFUsVCl7cmV0dXJuICEhRihUWzNdLFYpLmxlbmd0aH0saGVhZGVyOmZ1bmN0aW9uKFQpe3JldHVybi9oXGQvaS50ZXN0KFQubm9kZU5hbWUpfSx0ZXh0OmZ1bmN0aW9uKFQpe3JldHVybiJ0ZXh0Ij09PVQudHlwZX0scmFkaW86ZnVuY3Rpb24oVCl7cmV0dXJuInJhZGlvIj09PVQudHlwZX0sY2hlY2tib3g6ZnVuY3Rpb24oVCl7cmV0dXJuImNoZWNrYm94Ij09PVQudHlwZX0sZmlsZTpmdW5jdGlvbihUKXtyZXR1cm4iZmlsZSI9PT1ULnR5cGV9LHBhc3N3b3JkOmZ1bmN0aW9uKFQpe3JldHVybiJwYXNzd29yZCI9PT1ULnR5cGV9LHN1Ym1pdDpmdW5jdGlvbihUKXtyZXR1cm4ic3VibWl0Ij09PVQudHlwZX0saW1hZ2U6ZnVuY3Rpb24oVCl7cmV0dXJuImltYWdlIj09PVQudHlwZX0scmVzZXQ6ZnVuY3Rpb24oVCl7cmV0dXJuInJlc2V0Ij09PVQudHlwZX0sYnV0dG9uOmZ1bmN0aW9uKFQpe3JldHVybiJidXR0b24iPT09VC50eXBlfHxULm5vZGVOYW1lLnRvVXBwZXJDYXNlKCk9PT0iQlVUVE9OIn0saW5wdXQ6ZnVuY3Rpb24oVCl7cmV0dXJuL2lucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24vaS50ZXN0KFQubm9kZU5hbWUpfX0sc2V0RmlsdGVyczp7Zmlyc3Q6ZnVuY3Rpb24oVSxUKXtyZXR1cm4gVD09PTB9LGxhc3Q6ZnVuY3Rpb24oVixVLFQsVyl7cmV0dXJuIFU9PT1XLmxlbmd0aC0xfSxldmVuOmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFQlMj09PTB9LG9kZDpmdW5jdGlvbihVLFQpe3JldHVybiBUJTI9PT0xfSxsdDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU8VFszXS0wfSxndDpmdW5jdGlvbihWLFUsVCl7cmV0dXJuIFU+VFszXS0wfSxudGg6ZnVuY3Rpb24oVixVLFQpe3JldHVybiBUWzNdLTA9PVV9LGVxOmZ1bmN0aW9uKFYsVSxUKXtyZXR1cm4gVFszXS0wPT1VfX0sZmlsdGVyOntQU0VVRE86ZnVuY3Rpb24oWixWLFcsYWEpe3ZhciBVPVZbMV0sWD1JLmZpbHRlcnNbVV07aWYoWCl7cmV0dXJuIFgoWixXLFYsYWEpfWVsc2V7aWYoVT09PSJjb250YWlucyIpe3JldHVybihaLnRleHRDb250ZW50fHxaLmlubmVyVGV4dHx8IiIpLmluZGV4T2YoVlszXSk+PTB9ZWxzZXtpZihVPT09Im5vdCIpe3ZhciBZPVZbM107Zm9yKHZhciBXPTAsVD1ZLmxlbmd0aDtXPFQ7VysrKXtpZihZW1ddPT09Wil7cmV0dXJuIGZhbHNlfX1yZXR1cm4gdHJ1ZX19fX0sQ0hJTEQ6ZnVuY3Rpb24oVCxXKXt2YXIgWj1XWzFdLFU9VDtzd2l0Y2goWil7Y2FzZSJvbmx5IjpjYXNlImZpcnN0Ijp3aGlsZShVPVUucHJldmlvdXNTaWJsaW5nKXtpZihVLm5vZGVUeXBlPT09MSl7cmV0dXJuIGZhbHNlfX1pZihaPT0iZmlyc3QiKXtyZXR1cm4gdHJ1ZX1VPVQ7Y2FzZSJsYXN0Ijp3aGlsZShVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtyZXR1cm4gZmFsc2V9fXJldHVybiB0cnVlO2Nhc2UibnRoIjp2YXIgVj1XWzJdLGFjPVdbM107aWYoVj09MSYmYWM9PTApe3JldHVybiB0cnVlfXZhciBZPVdbMF0sYWI9VC5wYXJlbnROb2RlO2lmKGFiJiYoYWIuc2l6Y2FjaGUhPT1ZfHwhVC5ub2RlSW5kZXgpKXt2YXIgWD0wO2ZvcihVPWFiLmZpcnN0Q2hpbGQ7VTtVPVUubmV4dFNpYmxpbmcpe2lmKFUubm9kZVR5cGU9PT0xKXtVLm5vZGVJbmRleD0rK1h9fWFiLnNpemNhY2hlPVl9dmFyIGFhPVQubm9kZUluZGV4LWFjO2lmKFY9PTApe3JldHVybiBhYT09MH1lbHNle3JldHVybihhYSVWPT0wJiZhYS9WPj0wKX19fSxJRDpmdW5jdGlvbihVLFQpe3JldHVybiBVLm5vZGVUeXBlPT09MSYmVS5nZXRBdHRyaWJ1dGUoImlkIik9PT1UfSxUQUc6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oVD09PSIqIiYmVS5ub2RlVHlwZT09PTEpfHxVLm5vZGVOYW1lPT09VH0sQ0xBU1M6ZnVuY3Rpb24oVSxUKXtyZXR1cm4oIiAiKyhVLmNsYXNzTmFtZXx8VS5nZXRBdHRyaWJ1dGUoImNsYXNzIikpKyIgIikuaW5kZXhPZihUKT4tMX0sQVRUUjpmdW5jdGlvbihZLFcpe3ZhciBWPVdbMV0sVD1JLmF0dHJIYW5kbGVbVl0/SS5hdHRySGFuZGxlW1ZdKFkpOllbVl0hPW51bGw/WVtWXTpZLmdldEF0dHJpYnV0ZShWKSxaPVQrIiIsWD1XWzJdLFU9V1s0XTtyZXR1cm4gVD09bnVsbD9YPT09IiE9IjpYPT09Ij0iP1o9PT1VOlg9PT0iKj0iP1ouaW5kZXhPZihVKT49MDpYPT09In49Ij8oIiAiK1orIiAiKS5pbmRleE9mKFUpPj0wOiFVP1omJlQhPT1mYWxzZTpYPT09IiE9Ij9aIT1VOlg9PT0iXj0iP1ouaW5kZXhPZihVKT09PTA6WD09PSIkPSI/Wi5zdWJzdHIoWi5sZW5ndGgtVS5sZW5ndGgpPT09VTpYPT09Inw9Ij9aPT09VXx8Wi5zdWJzdHIoMCxVLmxlbmd0aCsxKT09PVUrIi0iOmZhbHNlfSxQT1M6ZnVuY3Rpb24oWCxVLFYsWSl7dmFyIFQ9VVsyXSxXPUkuc2V0RmlsdGVyc1tUXTtpZihXKXtyZXR1cm4gVyhYLFYsVSxZKX19fX07dmFyIE09SS5tYXRjaC5QT1M7Zm9yKHZhciBPIGluIEkubWF0Y2gpe0kubWF0Y2hbT109UmVnRXhwKEkubWF0Y2hbT10uc291cmNlKy8oPyFbXlxbXSpcXSkoPyFbXlwoXSpcKSkvLnNvdXJjZSl9dmFyIEU9ZnVuY3Rpb24oVSxUKXtVPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKFUpO2lmKFQpe1QucHVzaC5hcHBseShULFUpO3JldHVybiBUfXJldHVybiBVfTt0cnl7QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNoaWxkTm9kZXMpfWNhdGNoKE4pe0U9ZnVuY3Rpb24oWCxXKXt2YXIgVT1XfHxbXTtpZihILmNhbGwoWCk9PT0iW29iamVjdCBBcnJheV0iKXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShVLFgpfWVsc2V7aWYodHlwZW9mIFgubGVuZ3RoPT09Im51bWJlciIpe2Zvcih2YXIgVj0wLFQ9WC5sZW5ndGg7VjxUO1YrKyl7VS5wdXNoKFhbVl0pfX1lbHNle2Zvcih2YXIgVj0wO1hbVl07VisrKXtVLnB1c2goWFtWXSl9fX1yZXR1cm4gVX19dmFyIEc7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKXtHPWZ1bmN0aW9uKFUsVCl7dmFyIFY9VS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbihUKSY0Py0xOlU9PT1UPzA6MTtpZihWPT09MCl7aGFzRHVwbGljYXRlPXRydWV9cmV0dXJuIFZ9fWVsc2V7aWYoInNvdXJjZUluZGV4IiBpbiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpe0c9ZnVuY3Rpb24oVSxUKXt2YXIgVj1VLnNvdXJjZUluZGV4LVQuc291cmNlSW5kZXg7aWYoVj09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBWfX1lbHNle2lmKGRvY3VtZW50LmNyZWF0ZVJhbmdlKXtHPWZ1bmN0aW9uKFcsVSl7dmFyIFY9Vy5vd25lckRvY3VtZW50LmNyZWF0ZVJhbmdlKCksVD1VLm93bmVyRG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTtWLnNlbGVjdE5vZGUoVyk7Vi5jb2xsYXBzZSh0cnVlKTtULnNlbGVjdE5vZGUoVSk7VC5jb2xsYXBzZSh0cnVlKTt2YXIgWD1WLmNvbXBhcmVCb3VuZGFyeVBvaW50cyhSYW5nZS5TVEFSVF9UT19FTkQsVCk7aWYoWD09PTApe2hhc0R1cGxpY2F0ZT10cnVlfXJldHVybiBYfX19fShmdW5jdGlvbigpe3ZhciBVPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImZvcm0iKSxWPSJzY3JpcHQiKyhuZXcgRGF0ZSkuZ2V0VGltZSgpO1UuaW5uZXJIVE1MPSI8aW5wdXQgbmFtZT0nIitWKyInLz4iO3ZhciBUPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtULmluc2VydEJlZm9yZShVLFQuZmlyc3RDaGlsZCk7aWYoISFkb2N1bWVudC5nZXRFbGVtZW50QnlJZChWKSl7SS5maW5kLklEPWZ1bmN0aW9uKFgsWSxaKXtpZih0eXBlb2YgWS5nZXRFbGVtZW50QnlJZCE9PSJ1bmRlZmluZWQiJiYhWil7dmFyIFc9WS5nZXRFbGVtZW50QnlJZChYWzFdKTtyZXR1cm4gVz9XLmlkPT09WFsxXXx8dHlwZW9mIFcuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZXLmdldEF0dHJpYnV0ZU5vZGUoImlkIikubm9kZVZhbHVlPT09WFsxXT9bV106ZzpbXX19O0kuZmlsdGVyLklEPWZ1bmN0aW9uKFksVyl7dmFyIFg9dHlwZW9mIFkuZ2V0QXR0cmlidXRlTm9kZSE9PSJ1bmRlZmluZWQiJiZZLmdldEF0dHJpYnV0ZU5vZGUoImlkIik7cmV0dXJuIFkubm9kZVR5cGU9PT0xJiZYJiZYLm5vZGVWYWx1ZT09PVd9fVQucmVtb3ZlQ2hpbGQoVSl9KSgpOyhmdW5jdGlvbigpe3ZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO1QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlQ29tbWVudCgiIikpO2lmKFQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKS5sZW5ndGg+MCl7SS5maW5kLlRBRz1mdW5jdGlvbihVLFkpe3ZhciBYPVkuZ2V0RWxlbWVudHNCeVRhZ05hbWUoVVsxXSk7aWYoVVsxXT09PSIqIil7dmFyIFc9W107Zm9yKHZhciBWPTA7WFtWXTtWKyspe2lmKFhbVl0ubm9kZVR5cGU9PT0xKXtXLnB1c2goWFtWXSl9fVg9V31yZXR1cm4gWH19VC5pbm5lckhUTUw9IjxhIGhyZWY9JyMnPjwvYT4iO2lmKFQuZmlyc3RDaGlsZCYmdHlwZW9mIFQuZmlyc3RDaGlsZC5nZXRBdHRyaWJ1dGUhPT0idW5kZWZpbmVkIiYmVC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpIT09IiMiKXtJLmF0dHJIYW5kbGUuaHJlZj1mdW5jdGlvbihVKXtyZXR1cm4gVS5nZXRBdHRyaWJ1dGUoImhyZWYiLDIpfX19KSgpO2lmKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwpeyhmdW5jdGlvbigpe3ZhciBUPUYsVT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtVLmlubmVySFRNTD0iPHAgY2xhc3M9J1RFU1QnPjwvcD4iO2lmKFUucXVlcnlTZWxlY3RvckFsbCYmVS5xdWVyeVNlbGVjdG9yQWxsKCIuVEVTVCIpLmxlbmd0aD09PTApe3JldHVybn1GPWZ1bmN0aW9uKFksWCxWLFcpe1g9WHx8ZG9jdW1lbnQ7aWYoIVcmJlgubm9kZVR5cGU9PT05JiYhUShYKSl7dHJ5e3JldHVybiBFKFgucXVlcnlTZWxlY3RvckFsbChZKSxWKX1jYXRjaChaKXt9fXJldHVybiBUKFksWCxWLFcpfTtGLmZpbmQ9VC5maW5kO0YuZmlsdGVyPVQuZmlsdGVyO0Yuc2VsZWN0b3JzPVQuc2VsZWN0b3JzO0YubWF0Y2hlcz1ULm1hdGNoZXN9KSgpfWlmKGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKXsoZnVuY3Rpb24oKXt2YXIgVD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtULmlubmVySFRNTD0iPGRpdiBjbGFzcz0ndGVzdCBlJz48L2Rpdj48ZGl2IGNsYXNzPSd0ZXN0Jz48L2Rpdj4iO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTApe3JldHVybn1ULmxhc3RDaGlsZC5jbGFzc05hbWU9ImUiO2lmKFQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZSIpLmxlbmd0aD09PTEpe3JldHVybn1JLm9yZGVyLnNwbGljZSgxLDAsIkNMQVNTIik7SS5maW5kLkNMQVNTPWZ1bmN0aW9uKFUsVixXKXtpZih0eXBlb2YgVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lIT09InVuZGVmaW5lZCImJiFXKXtyZXR1cm4gVi5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKFVbMV0pfX19KSgpfWZ1bmN0aW9uIFAoVSxaLFksYWQsYWEsYWMpe3ZhciBhYj1VPT0icHJldmlvdXNTaWJsaW5nIiYmIWFjO2Zvcih2YXIgVz0wLFY9YWQubGVuZ3RoO1c8VjtXKyspe3ZhciBUPWFkW1ddO2lmKFQpe2lmKGFiJiZULm5vZGVUeXBlPT09MSl7VC5zaXpjYWNoZT1ZO1Quc2l6c2V0PVd9VD1UW1VdO3ZhciBYPWZhbHNlO3doaWxlKFQpe2lmKFQuc2l6Y2FjaGU9PT1ZKXtYPWFkW1Quc2l6c2V0XTticmVha31pZihULm5vZGVUeXBlPT09MSYmIWFjKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31pZihULm5vZGVOYW1lPT09Wil7WD1UO2JyZWFrfVQ9VFtVXX1hZFtXXT1YfX19ZnVuY3Rpb24gUyhVLFosWSxhZCxhYSxhYyl7dmFyIGFiPVU9PSJwcmV2aW91c1NpYmxpbmciJiYhYWM7Zm9yKHZhciBXPTAsVj1hZC5sZW5ndGg7VzxWO1crKyl7dmFyIFQ9YWRbV107aWYoVCl7aWYoYWImJlQubm9kZVR5cGU9PT0xKXtULnNpemNhY2hlPVk7VC5zaXpzZXQ9V31UPVRbVV07dmFyIFg9ZmFsc2U7d2hpbGUoVCl7aWYoVC5zaXpjYWNoZT09PVkpe1g9YWRbVC5zaXpzZXRdO2JyZWFrfWlmKFQubm9kZVR5cGU9PT0xKXtpZighYWMpe1Quc2l6Y2FjaGU9WTtULnNpenNldD1XfWlmKHR5cGVvZiBaIT09InN0cmluZyIpe2lmKFQ9PT1aKXtYPXRydWU7YnJlYWt9fWVsc2V7aWYoRi5maWx0ZXIoWixbVF0pLmxlbmd0aD4wKXtYPVQ7YnJlYWt9fX1UPVRbVV19YWRbV109WH19fXZhciBLPWRvY3VtZW50LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uP2Z1bmN0aW9uKFUsVCl7cmV0dXJuIFUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oVCkmMTZ9OmZ1bmN0aW9uKFUsVCl7cmV0dXJuIFUhPT1UJiYoVS5jb250YWlucz9VLmNvbnRhaW5zKFQpOnRydWUpfTt2YXIgUT1mdW5jdGlvbihUKXtyZXR1cm4gVC5ub2RlVHlwZT09PTkmJlQuZG9jdW1lbnRFbGVtZW50Lm5vZGVOYW1lIT09IkhUTUwifHwhIVQub3duZXJEb2N1bWVudCYmUShULm93bmVyRG9jdW1lbnQpfTt2YXIgSj1mdW5jdGlvbihULGFhKXt2YXIgVz1bXSxYPSIiLFksVj1hYS5ub2RlVHlwZT9bYWFdOmFhO3doaWxlKChZPUkubWF0Y2guUFNFVURPLmV4ZWMoVCkpKXtYKz1ZWzBdO1Q9VC5yZXBsYWNlKEkubWF0Y2guUFNFVURPLCIiKX1UPUkucmVsYXRpdmVbVF0/VCsiKiI6VDtmb3IodmFyIFo9MCxVPVYubGVuZ3RoO1o8VTtaKyspe0YoVCxWW1pdLFcpfXJldHVybiBGLmZpbHRlcihYLFcpfTtvLmZpbmQ9RjtvLmZpbHRlcj1GLmZpbHRlcjtvLmV4cHI9Ri5zZWxlY3RvcnM7by5leHByWyI6Il09by5leHByLmZpbHRlcnM7Ri5zZWxlY3RvcnMuZmlsdGVycy5oaWRkZW49ZnVuY3Rpb24oVCl7cmV0dXJuIFQub2Zmc2V0V2lkdGg9PT0wfHxULm9mZnNldEhlaWdodD09PTB9O0Yuc2VsZWN0b3JzLmZpbHRlcnMudmlzaWJsZT1mdW5jdGlvbihUKXtyZXR1cm4gVC5vZmZzZXRXaWR0aD4wfHxULm9mZnNldEhlaWdodD4wfTtGLnNlbGVjdG9ycy5maWx0ZXJzLmFuaW1hdGVkPWZ1bmN0aW9uKFQpe3JldHVybiBvLmdyZXAoby50aW1lcnMsZnVuY3Rpb24oVSl7cmV0dXJuIFQ9PT1VLmVsZW19KS5sZW5ndGh9O28ubXVsdGlGaWx0ZXI9ZnVuY3Rpb24oVixULFUpe2lmKFUpe1Y9Ijpub3QoIitWKyIpIn1yZXR1cm4gRi5tYXRjaGVzKFYsVCl9O28uZGlyPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W10sVz1WW1VdO3doaWxlKFcmJlchPWRvY3VtZW50KXtpZihXLm5vZGVUeXBlPT0xKXtULnB1c2goVyl9Vz1XW1VdfXJldHVybiBUfTtvLm50aD1mdW5jdGlvbihYLFQsVixXKXtUPVR8fDE7dmFyIFU9MDtmb3IoO1g7WD1YW1ZdKXtpZihYLm5vZGVUeXBlPT0xJiYrK1U9PVQpe2JyZWFrfX1yZXR1cm4gWH07by5zaWJsaW5nPWZ1bmN0aW9uKFYsVSl7dmFyIFQ9W107Zm9yKDtWO1Y9Vi5uZXh0U2libGluZyl7aWYoVi5ub2RlVHlwZT09MSYmViE9VSl7VC5wdXNoKFYpfX1yZXR1cm4gVH07cmV0dXJuO2wuU2l6emxlPUZ9KSgpO28uZXZlbnQ9e2FkZDpmdW5jdGlvbihJLEYsSCxLKXtpZihJLm5vZGVUeXBlPT0zfHxJLm5vZGVUeXBlPT04KXtyZXR1cm59aWYoSS5zZXRJbnRlcnZhbCYmSSE9bCl7ST1sfWlmKCFILmd1aWQpe0guZ3VpZD10aGlzLmd1aWQrK31pZihLIT09Zyl7dmFyIEc9SDtIPXRoaXMucHJveHkoRyk7SC5kYXRhPUt9dmFyIEU9by5kYXRhKEksImV2ZW50cyIpfHxvLmRhdGEoSSwiZXZlbnRzIix7fSksSj1vLmRhdGEoSSwiaGFuZGxlIil8fG8uZGF0YShJLCJoYW5kbGUiLGZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBvIT09InVuZGVmaW5lZCImJiFvLmV2ZW50LnRyaWdnZXJlZD9vLmV2ZW50LmhhbmRsZS5hcHBseShhcmd1bWVudHMuY2FsbGVlLmVsZW0sYXJndW1lbnRzKTpnfSk7Si5lbGVtPUk7by5lYWNoKEYuc3BsaXQoL1xzKy8pLGZ1bmN0aW9uKE0sTil7dmFyIE89Ti5zcGxpdCgiLiIpO049Ty5zaGlmdCgpO0gudHlwZT1PLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4iKTt2YXIgTD1FW05dO2lmKG8uZXZlbnQuc3BlY2lhbEFsbFtOXSl7by5ldmVudC5zcGVjaWFsQWxsW05dLnNldHVwLmNhbGwoSSxLLE8pfWlmKCFMKXtMPUVbTl09e307aWYoIW8uZXZlbnQuc3BlY2lhbFtOXXx8by5ldmVudC5zcGVjaWFsW05dLnNldHVwLmNhbGwoSSxLLE8pPT09ZmFsc2Upe2lmKEkuYWRkRXZlbnRMaXN0ZW5lcil7SS5hZGRFdmVudExpc3RlbmVyKE4sSixmYWxzZSl9ZWxzZXtpZihJLmF0dGFjaEV2ZW50KXtJLmF0dGFjaEV2ZW50KCJvbiIrTixKKX19fX1MW0guZ3VpZF09SDtvLmV2ZW50Lmdsb2JhbFtOXT10cnVlfSk7ST1udWxsfSxndWlkOjEsZ2xvYmFsOnt9LHJlbW92ZTpmdW5jdGlvbihLLEgsSil7aWYoSy5ub2RlVHlwZT09M3x8Sy5ub2RlVHlwZT09OCl7cmV0dXJufXZhciBHPW8uZGF0YShLLCJldmVudHMiKSxGLEU7aWYoRyl7aWYoSD09PWd8fCh0eXBlb2YgSD09PSJzdHJpbmciJiZILmNoYXJBdCgwKT09Ii4iKSl7Zm9yKHZhciBJIGluIEcpe3RoaXMucmVtb3ZlKEssSSsoSHx8IiIpKX19ZWxzZXtpZihILnR5cGUpe0o9SC5oYW5kbGVyO0g9SC50eXBlfW8uZWFjaChILnNwbGl0KC9ccysvKSxmdW5jdGlvbihNLE8pe3ZhciBRPU8uc3BsaXQoIi4iKTtPPVEuc2hpZnQoKTt2YXIgTj1SZWdFeHAoIihefFxcLikiK1Euc2xpY2UoKS5zb3J0KCkuam9pbigiLipcXC4iKSsiKFxcLnwkKSIpO2lmKEdbT10pe2lmKEope2RlbGV0ZSBHW09dW0ouZ3VpZF19ZWxzZXtmb3IodmFyIFAgaW4gR1tPXSl7aWYoTi50ZXN0KEdbT11bUF0udHlwZSkpe2RlbGV0ZSBHW09dW1BdfX19aWYoby5ldmVudC5zcGVjaWFsQWxsW09dKXtvLmV2ZW50LnNwZWNpYWxBbGxbT10udGVhcmRvd24uY2FsbChLLFEpfWZvcihGIGluIEdbT10pe2JyZWFrfWlmKCFGKXtpZighby5ldmVudC5zcGVjaWFsW09dfHxvLmV2ZW50LnNwZWNpYWxbT10udGVhcmRvd24uY2FsbChLLFEpPT09ZmFsc2Upe2lmKEsucmVtb3ZlRXZlbnRMaXN0ZW5lcil7Sy5yZW1vdmVFdmVudExpc3RlbmVyKE8sby5kYXRhKEssImhhbmRsZSIpLGZhbHNlKX1lbHNle2lmKEsuZGV0YWNoRXZlbnQpe0suZGV0YWNoRXZlbnQoIm9uIitPLG8uZGF0YShLLCJoYW5kbGUiKSl9fX1GPW51bGw7ZGVsZXRlIEdbT119fX0pfWZvcihGIGluIEcpe2JyZWFrfWlmKCFGKXt2YXIgTD1vLmRhdGEoSywiaGFuZGxlIik7aWYoTCl7TC5lbGVtPW51bGx9by5yZW1vdmVEYXRhKEssImV2ZW50cyIpO28ucmVtb3ZlRGF0YShLLCJoYW5kbGUiKX19fSx0cmlnZ2VyOmZ1bmN0aW9uKEksSyxILEUpe3ZhciBHPUkudHlwZXx8STtpZighRSl7ST10eXBlb2YgST09PSJvYmplY3QiP0lbaF0/STpvLmV4dGVuZChvLkV2ZW50KEcpLEkpOm8uRXZlbnQoRyk7aWYoRy5pbmRleE9mKCIhIik+PTApe0kudHlwZT1HPUcuc2xpY2UoMCwtMSk7SS5leGNsdXNpdmU9dHJ1ZX1pZighSCl7SS5zdG9wUHJvcGFnYXRpb24oKTtpZih0aGlzLmdsb2JhbFtHXSl7by5lYWNoKG8uY2FjaGUsZnVuY3Rpb24oKXtpZih0aGlzLmV2ZW50cyYmdGhpcy5ldmVudHNbR10pe28uZXZlbnQudHJpZ2dlcihJLEssdGhpcy5oYW5kbGUuZWxlbSl9fSl9fWlmKCFIfHxILm5vZGVUeXBlPT0zfHxILm5vZGVUeXBlPT04KXtyZXR1cm4gZ31JLnJlc3VsdD1nO0kudGFyZ2V0PUg7Sz1vLm1ha2VBcnJheShLKTtLLnVuc2hpZnQoSSl9SS5jdXJyZW50VGFyZ2V0PUg7dmFyIEo9by5kYXRhKEgsImhhbmRsZSIpO2lmKEope0ouYXBwbHkoSCxLKX1pZigoIUhbR118fChvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpJiZIWyJvbiIrR10mJkhbIm9uIitHXS5hcHBseShILEspPT09ZmFsc2Upe0kucmVzdWx0PWZhbHNlfWlmKCFFJiZIW0ddJiYhSS5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmIShvLm5vZGVOYW1lKEgsImEiKSYmRz09ImNsaWNrIikpe3RoaXMudHJpZ2dlcmVkPXRydWU7dHJ5e0hbR10oKX1jYXRjaChMKXt9fXRoaXMudHJpZ2dlcmVkPWZhbHNlO2lmKCFJLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3ZhciBGPUgucGFyZW50Tm9kZXx8SC5vd25lckRvY3VtZW50O2lmKEYpe28uZXZlbnQudHJpZ2dlcihJLEssRix0cnVlKX19fSxoYW5kbGU6ZnVuY3Rpb24oSyl7dmFyIEosRTtLPWFyZ3VtZW50c1swXT1vLmV2ZW50LmZpeChLfHxsLmV2ZW50KTtLLmN1cnJlbnRUYXJnZXQ9dGhpczt2YXIgTD1LLnR5cGUuc3BsaXQoIi4iKTtLLnR5cGU9TC5zaGlmdCgpO0o9IUwubGVuZ3RoJiYhSy5leGNsdXNpdmU7dmFyIEk9UmVnRXhwKCIoXnxcXC4pIitMLnNsaWNlKCkuc29ydCgpLmpvaW4oIi4qXFwuIikrIihcXC58JCkiKTtFPShvLmRhdGEodGhpcywiZXZlbnRzIil8fHt9KVtLLnR5cGVdO2Zvcih2YXIgRyBpbiBFKXt2YXIgSD1FW0ddO2lmKEp8fEkudGVzdChILnR5cGUpKXtLLmhhbmRsZXI9SDtLLmRhdGE9SC5kYXRhO3ZhciBGPUguYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKEYhPT1nKXtLLnJlc3VsdD1GO2lmKEY9PT1mYWxzZSl7Sy5wcmV2ZW50RGVmYXVsdCgpO0suc3RvcFByb3BhZ2F0aW9uKCl9fWlmKEsuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSl7YnJlYWt9fX19LHByb3BzOiJhbHRLZXkgYXR0ckNoYW5nZSBhdHRyTmFtZSBidWJibGVzIGJ1dHRvbiBjYW5jZWxhYmxlIGNoYXJDb2RlIGNsaWVudFggY2xpZW50WSBjdHJsS2V5IGN1cnJlbnRUYXJnZXQgZGF0YSBkZXRhaWwgZXZlbnRQaGFzZSBmcm9tRWxlbWVudCBoYW5kbGVyIGtleUNvZGUgbWV0YUtleSBuZXdWYWx1ZSBvcmlnaW5hbFRhcmdldCBwYWdlWCBwYWdlWSBwcmV2VmFsdWUgcmVsYXRlZE5vZGUgcmVsYXRlZFRhcmdldCBzY3JlZW5YIHNjcmVlblkgc2hpZnRLZXkgc3JjRWxlbWVudCB0YXJnZXQgdG9FbGVtZW50IHZpZXcgd2hlZWxEZWx0YSB3aGljaCIuc3BsaXQoIiAiKSxmaXg6ZnVuY3Rpb24oSCl7aWYoSFtoXSl7cmV0dXJuIEh9dmFyIEY9SDtIPW8uRXZlbnQoRik7Zm9yKHZhciBHPXRoaXMucHJvcHMubGVuZ3RoLEo7Rzspe0o9dGhpcy5wcm9wc1stLUddO0hbSl09RltKXX1pZighSC50YXJnZXQpe0gudGFyZ2V0PUguc3JjRWxlbWVudHx8ZG9jdW1lbnR9aWYoSC50YXJnZXQubm9kZVR5cGU9PTMpe0gudGFyZ2V0PUgudGFyZ2V0LnBhcmVudE5vZGV9aWYoIUgucmVsYXRlZFRhcmdldCYmSC5mcm9tRWxlbWVudCl7SC5yZWxhdGVkVGFyZ2V0PUguZnJvbUVsZW1lbnQ9PUgudGFyZ2V0P0gudG9FbGVtZW50OkguZnJvbUVsZW1lbnR9aWYoSC5wYWdlWD09bnVsbCYmSC5jbGllbnRYIT1udWxsKXt2YXIgST1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsRT1kb2N1bWVudC5ib2R5O0gucGFnZVg9SC5jbGllbnRYKyhJJiZJLnNjcm9sbExlZnR8fEUmJkUuc2Nyb2xsTGVmdHx8MCktKEkuY2xpZW50TGVmdHx8MCk7SC5wYWdlWT1ILmNsaWVudFkrKEkmJkkuc2Nyb2xsVG9wfHxFJiZFLnNjcm9sbFRvcHx8MCktKEkuY2xpZW50VG9wfHwwKX1pZighSC53aGljaCYmKChILmNoYXJDb2RlfHxILmNoYXJDb2RlPT09MCk/SC5jaGFyQ29kZTpILmtleUNvZGUpKXtILndoaWNoPUguY2hhckNvZGV8fEgua2V5Q29kZX1pZighSC5tZXRhS2V5JiZILmN0cmxLZXkpe0gubWV0YUtleT1ILmN0cmxLZXl9aWYoIUgud2hpY2gmJkguYnV0dG9uKXtILndoaWNoPShILmJ1dHRvbiYxPzE6KEguYnV0dG9uJjI/MzooSC5idXR0b24mND8yOjApKSl9cmV0dXJuIEh9LHByb3h5OmZ1bmN0aW9uKEYsRSl7RT1FfHxmdW5jdGlvbigpe3JldHVybiBGLmFwcGx5KHRoaXMsYXJndW1lbnRzKX07RS5ndWlkPUYuZ3VpZD1GLmd1aWR8fEUuZ3VpZHx8dGhpcy5ndWlkKys7cmV0dXJuIEV9LHNwZWNpYWw6e3JlYWR5OntzZXR1cDpCLHRlYXJkb3duOmZ1bmN0aW9uKCl7fX19LHNwZWNpYWxBbGw6e2xpdmU6e3NldHVwOmZ1bmN0aW9uKEUsRil7by5ldmVudC5hZGQodGhpcyxGWzBdLGMpfSx0ZWFyZG93bjpmdW5jdGlvbihHKXtpZihHLmxlbmd0aCl7dmFyIEU9MCxGPVJlZ0V4cCgiKF58XFwuKSIrR1swXSsiKFxcLnwkKSIpO28uZWFjaCgoby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fHt9KSxmdW5jdGlvbigpe2lmKEYudGVzdCh0aGlzLnR5cGUpKXtFKyt9fSk7aWYoRTwxKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEdbMF0sYyl9fX19fX07by5FdmVudD1mdW5jdGlvbihFKXtpZighdGhpcy5wcmV2ZW50RGVmYXVsdCl7cmV0dXJuIG5ldyBvLkV2ZW50KEUpfWlmKEUmJkUudHlwZSl7dGhpcy5vcmlnaW5hbEV2ZW50PUU7dGhpcy50eXBlPUUudHlwZX1lbHNle3RoaXMudHlwZT1FfXRoaXMudGltZVN0YW1wPWUoKTt0aGlzW2hdPXRydWV9O2Z1bmN0aW9uIGsoKXtyZXR1cm4gZmFsc2V9ZnVuY3Rpb24gdSgpe3JldHVybiB0cnVlfW8uRXZlbnQucHJvdG90eXBlPXtwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3RoaXMuaXNEZWZhdWx0UHJldmVudGVkPXU7dmFyIEU9dGhpcy5vcmlnaW5hbEV2ZW50O2lmKCFFKXtyZXR1cm59aWYoRS5wcmV2ZW50RGVmYXVsdCl7RS5wcmV2ZW50RGVmYXVsdCgpfUUucmV0dXJuVmFsdWU9ZmFsc2V9LHN0b3BQcm9wYWdhdGlvbjpmdW5jdGlvbigpe3RoaXMuaXNQcm9wYWdhdGlvblN0b3BwZWQ9dTt2YXIgRT10aGlzLm9yaWdpbmFsRXZlbnQ7aWYoIUUpe3JldHVybn1pZihFLnN0b3BQcm9wYWdhdGlvbil7RS5zdG9wUHJvcGFnYXRpb24oKX1FLmNhbmNlbEJ1YmJsZT10cnVlfSxzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt0aGlzLmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkPXU7dGhpcy5zdG9wUHJvcGFnYXRpb24oKX0saXNEZWZhdWx0UHJldmVudGVkOmssaXNQcm9wYWdhdGlvblN0b3BwZWQ6ayxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDprfTt2YXIgYT1mdW5jdGlvbihGKXt2YXIgRT1GLnJlbGF0ZWRUYXJnZXQ7d2hpbGUoRSYmRSE9dGhpcyl7dHJ5e0U9RS5wYXJlbnROb2RlfWNhdGNoKEcpe0U9dGhpc319aWYoRSE9dGhpcyl7Ri50eXBlPUYuZGF0YTtvLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTtvLmVhY2goe21vdXNlb3ZlcjoibW91c2VlbnRlciIsbW91c2VvdXQ6Im1vdXNlbGVhdmUifSxmdW5jdGlvbihGLEUpe28uZXZlbnQuc3BlY2lhbFtFXT17c2V0dXA6ZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEYsYSxFKX0sdGVhcmRvd246ZnVuY3Rpb24oKXtvLmV2ZW50LnJlbW92ZSh0aGlzLEYsYSl9fX0pO28uZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKEYsRyxFKXtyZXR1cm4gRj09InVubG9hZCI/dGhpcy5vbmUoRixHLEUpOnRoaXMuZWFjaChmdW5jdGlvbigpe28uZXZlbnQuYWRkKHRoaXMsRixFfHxHLEUmJkcpfSl9LG9uZTpmdW5jdGlvbihHLEgsRil7dmFyIEU9by5ldmVudC5wcm94eShGfHxILGZ1bmN0aW9uKEkpe28odGhpcykudW5iaW5kKEksRSk7cmV0dXJuKEZ8fEgpLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0pO3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtvLmV2ZW50LmFkZCh0aGlzLEcsRSxGJiZIKX0pfSx1bmJpbmQ6ZnVuY3Rpb24oRixFKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC5yZW1vdmUodGhpcyxGLEUpfSl9LHRyaWdnZXI6ZnVuY3Rpb24oRSxGKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7by5ldmVudC50cmlnZ2VyKEUsRix0aGlzKX0pfSx0cmlnZ2VySGFuZGxlcjpmdW5jdGlvbihFLEcpe2lmKHRoaXNbMF0pe3ZhciBGPW8uRXZlbnQoRSk7Ri5wcmV2ZW50RGVmYXVsdCgpO0Yuc3RvcFByb3BhZ2F0aW9uKCk7by5ldmVudC50cmlnZ2VyKEYsRyx0aGlzWzBdKTtyZXR1cm4gRi5yZXN1bHR9fSx0b2dnbGU6ZnVuY3Rpb24oRyl7dmFyIEU9YXJndW1lbnRzLEY9MTt3aGlsZShGPEUubGVuZ3RoKXtvLmV2ZW50LnByb3h5KEcsRVtGKytdKX1yZXR1cm4gdGhpcy5jbGljayhvLmV2ZW50LnByb3h5KEcsZnVuY3Rpb24oSCl7dGhpcy5sYXN0VG9nZ2xlPSh0aGlzLmxhc3RUb2dnbGV8fDApJUY7SC5wcmV2ZW50RGVmYXVsdCgpO3JldHVybiBFW3RoaXMubGFzdFRvZ2dsZSsrXS5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fGZhbHNlfSkpfSxob3ZlcjpmdW5jdGlvbihFLEYpe3JldHVybiB0aGlzLm1vdXNlZW50ZXIoRSkubW91c2VsZWF2ZShGKX0scmVhZHk6ZnVuY3Rpb24oRSl7QigpO2lmKG8uaXNSZWFkeSl7RS5jYWxsKGRvY3VtZW50LG8pfWVsc2V7by5yZWFkeUxpc3QucHVzaChFKX1yZXR1cm4gdGhpc30sbGl2ZTpmdW5jdGlvbihHLEYpe3ZhciBFPW8uZXZlbnQucHJveHkoRik7RS5ndWlkKz10aGlzLnNlbGVjdG9yK0c7byhkb2N1bWVudCkuYmluZChpKEcsdGhpcy5zZWxlY3RvciksdGhpcy5zZWxlY3RvcixFKTtyZXR1cm4gdGhpc30sZGllOmZ1bmN0aW9uKEYsRSl7byhkb2N1bWVudCkudW5iaW5kKGkoRix0aGlzLnNlbGVjdG9yKSxFP3tndWlkOkUuZ3VpZCt0aGlzLnNlbGVjdG9yK0Z9Om51bGwpO3JldHVybiB0aGlzfX0pO2Z1bmN0aW9uIGMoSCl7dmFyIEU9UmVnRXhwKCIoXnxcXC4pIitILnR5cGUrIihcXC58JCkiKSxHPXRydWUsRj1bXTtvLmVhY2goby5kYXRhKHRoaXMsImV2ZW50cyIpLmxpdmV8fFtdLGZ1bmN0aW9uKEksSil7aWYoRS50ZXN0KEoudHlwZSkpe3ZhciBLPW8oSC50YXJnZXQpLmNsb3Nlc3QoSi5kYXRhKVswXTtpZihLKXtGLnB1c2goe2VsZW06SyxmbjpKfSl9fX0pO0Yuc29ydChmdW5jdGlvbihKLEkpe3JldHVybiBvLmRhdGEoSi5lbGVtLCJjbG9zZXN0Iiktby5kYXRhKEkuZWxlbSwiY2xvc2VzdCIpfSk7by5lYWNoKEYsZnVuY3Rpb24oKXtpZih0aGlzLmZuLmNhbGwodGhpcy5lbGVtLEgsdGhpcy5mbi5kYXRhKT09PWZhbHNlKXtyZXR1cm4oRz1mYWxzZSl9fSk7cmV0dXJuIEd9ZnVuY3Rpb24gaShGLEUpe3JldHVyblsibGl2ZSIsRixFLnJlcGxhY2UoL1wuL2csImAiKS5yZXBsYWNlKC8gL2csInwiKV0uam9pbigiLiIpfW8uZXh0ZW5kKHtpc1JlYWR5OmZhbHNlLHJlYWR5TGlzdDpbXSxyZWFkeTpmdW5jdGlvbigpe2lmKCFvLmlzUmVhZHkpe28uaXNSZWFkeT10cnVlO2lmKG8ucmVhZHlMaXN0KXtvLmVhY2goby5yZWFkeUxpc3QsZnVuY3Rpb24oKXt0aGlzLmNhbGwoZG9jdW1lbnQsbyl9KTtvLnJlYWR5TGlzdD1udWxsfW8oZG9jdW1lbnQpLnRyaWdnZXJIYW5kbGVyKCJyZWFkeSIpfX19KTt2YXIgeD1mYWxzZTtmdW5jdGlvbiBCKCl7aWYoeCl7cmV0dXJufXg9dHJ1ZTtpZihkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKXtkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixmdW5jdGlvbigpe2RvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLGFyZ3VtZW50cy5jYWxsZWUsZmFsc2UpO28ucmVhZHkoKX0sZmFsc2UpfWVsc2V7aWYoZG9jdW1lbnQuYXR0YWNoRXZlbnQpe2RvY3VtZW50LmF0dGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoZG9jdW1lbnQucmVhZHlTdGF0ZT09PSJjb21wbGV0ZSIpe2RvY3VtZW50LmRldGFjaEV2ZW50KCJvbnJlYWR5c3RhdGVjaGFuZ2UiLGFyZ3VtZW50cy5jYWxsZWUpO28ucmVhZHkoKX19KTtpZihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwmJmw9PWwudG9wKXsoZnVuY3Rpb24oKXtpZihvLmlzUmVhZHkpe3JldHVybn10cnl7ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmRvU2Nyb2xsKCJsZWZ0Iil9Y2F0Y2goRSl7c2V0VGltZW91dChhcmd1bWVudHMuY2FsbGVlLDApO3JldHVybn1vLnJlYWR5KCl9KSgpfX19by5ldmVudC5hZGQobCwibG9hZCIsby5yZWFkeSl9by5lYWNoKCgiYmx1cixmb2N1cyxsb2FkLHJlc2l6ZSxzY3JvbGwsdW5sb2FkLGNsaWNrLGRibGNsaWNrLG1vdXNlZG93bixtb3VzZXVwLG1vdXNlbW92ZSxtb3VzZW92ZXIsbW91c2VvdXQsbW91c2VlbnRlcixtb3VzZWxlYXZlLGNoYW5nZSxzZWxlY3Qsc3VibWl0LGtleWRvd24sa2V5cHJlc3Msa2V5dXAsZXJyb3IiKS5zcGxpdCgiLCIpLGZ1bmN0aW9uKEYsRSl7by5mbltFXT1mdW5jdGlvbihHKXtyZXR1cm4gRz90aGlzLmJpbmQoRSxHKTp0aGlzLnRyaWdnZXIoRSl9fSk7byhsKS5iaW5kKCJ1bmxvYWQiLGZ1bmN0aW9uKCl7Zm9yKHZhciBFIGluIG8uY2FjaGUpe2lmKEUhPTEmJm8uY2FjaGVbRV0uaGFuZGxlKXtvLmV2ZW50LnJlbW92ZShvLmNhY2hlW0VdLmhhbmRsZS5lbGVtKX19fSk7KGZ1bmN0aW9uKCl7by5zdXBwb3J0PXt9O3ZhciBGPWRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxHPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpLEs9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IiksSj0ic2NyaXB0IisobmV3IERhdGUpLmdldFRpbWUoKTtLLnN0eWxlLmRpc3BsYXk9Im5vbmUiO0suaW5uZXJIVE1MPScgICA8bGluay8+PHRhYmxlPjwvdGFibGU+PGEgaHJlZj0iL2EiIHN0eWxlPSJjb2xvcjpyZWQ7ZmxvYXQ6bGVmdDtvcGFjaXR5Oi41OyI+YTwvYT48c2VsZWN0PjxvcHRpb24+dGV4dDwvb3B0aW9uPjwvc2VsZWN0PjxvYmplY3Q+PHBhcmFtLz48L29iamVjdD4nO3ZhciBIPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKSxFPUsuZ2V0RWxlbWVudHNCeVRhZ05hbWUoImEiKVswXTtpZighSHx8IUgubGVuZ3RofHwhRSl7cmV0dXJufW8uc3VwcG9ydD17bGVhZGluZ1doaXRlc3BhY2U6Sy5maXJzdENoaWxkLm5vZGVUeXBlPT0zLHRib2R5OiFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJ0Ym9keSIpLmxlbmd0aCxvYmplY3RBbGw6ISFLLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJvYmplY3QiKVswXS5nZXRFbGVtZW50c0J5VGFnTmFtZSgiKiIpLmxlbmd0aCxodG1sU2VyaWFsaXplOiEhSy5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpLmxlbmd0aCxzdHlsZTovcmVkLy50ZXN0KEUuZ2V0QXR0cmlidXRlKCJzdHlsZSIpKSxocmVmTm9ybWFsaXplZDpFLmdldEF0dHJpYnV0ZSgiaHJlZiIpPT09Ii9hIixvcGFjaXR5OkUuc3R5bGUub3BhY2l0eT09PSIwLjUiLGNzc0Zsb2F0OiEhRS5zdHlsZS5jc3NGbG9hdCxzY3JpcHRFdmFsOmZhbHNlLG5vQ2xvbmVFdmVudDp0cnVlLGJveE1vZGVsOm51bGx9O0cudHlwZT0idGV4dC9qYXZhc2NyaXB0Ijt0cnl7Ry5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgid2luZG93LiIrSisiPTE7IikpfWNhdGNoKEkpe31GLmluc2VydEJlZm9yZShHLEYuZmlyc3RDaGlsZCk7aWYobFtKXSl7by5zdXBwb3J0LnNjcmlwdEV2YWw9dHJ1ZTtkZWxldGUgbFtKXX1GLnJlbW92ZUNoaWxkKEcpO2lmKEsuYXR0YWNoRXZlbnQmJksuZmlyZUV2ZW50KXtLLmF0dGFjaEV2ZW50KCJvbmNsaWNrIixmdW5jdGlvbigpe28uc3VwcG9ydC5ub0Nsb25lRXZlbnQ9ZmFsc2U7Sy5kZXRhY2hFdmVudCgib25jbGljayIsYXJndW1lbnRzLmNhbGxlZSl9KTtLLmNsb25lTm9kZSh0cnVlKS5maXJlRXZlbnQoIm9uY2xpY2siKX1vKGZ1bmN0aW9uKCl7dmFyIEw9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7TC5zdHlsZS53aWR0aD1MLnN0eWxlLnBhZGRpbmdMZWZ0PSIxcHgiO2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoTCk7by5ib3hNb2RlbD1vLnN1cHBvcnQuYm94TW9kZWw9TC5vZmZzZXRXaWR0aD09PTI7ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChMKS5zdHlsZS5kaXNwbGF5PSJub25lIn0pfSkoKTt2YXIgdz1vLnN1cHBvcnQuY3NzRmxvYXQ/ImNzc0Zsb2F0Ijoic3R5bGVGbG9hdCI7by5wcm9wcz17ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSIsImZsb2F0Ijp3LGNzc0Zsb2F0Oncsc3R5bGVGbG9hdDp3LHJlYWRvbmx5OiJyZWFkT25seSIsbWF4bGVuZ3RoOiJtYXhMZW5ndGgiLGNlbGxzcGFjaW5nOiJjZWxsU3BhY2luZyIscm93c3Bhbjoicm93U3BhbiIsdGFiaW5kZXg6InRhYkluZGV4In07by5mbi5leHRlbmQoe19sb2FkOm8uZm4ubG9hZCxsb2FkOmZ1bmN0aW9uKEcsSixLKXtpZih0eXBlb2YgRyE9PSJzdHJpbmciKXtyZXR1cm4gdGhpcy5fbG9hZChHKX12YXIgST1HLmluZGV4T2YoIiAiKTtpZihJPj0wKXt2YXIgRT1HLnNsaWNlKEksRy5sZW5ndGgpO0c9Ry5zbGljZSgwLEkpfXZhciBIPSJHRVQiO2lmKEope2lmKG8uaXNGdW5jdGlvbihKKSl7Sz1KO0o9bnVsbH1lbHNle2lmKHR5cGVvZiBKPT09Im9iamVjdCIpe0o9by5wYXJhbShKKTtIPSJQT1NUIn19fXZhciBGPXRoaXM7by5hamF4KHt1cmw6Ryx0eXBlOkgsZGF0YVR5cGU6Imh0bWwiLGRhdGE6Sixjb21wbGV0ZTpmdW5jdGlvbihNLEwpe2lmKEw9PSJzdWNjZXNzInx8TD09Im5vdG1vZGlmaWVkIil7Ri5odG1sKEU/bygiPGRpdi8+IikuYXBwZW5kKE0ucmVzcG9uc2VUZXh0LnJlcGxhY2UoLzxzY3JpcHQoLnxccykqP1wvc2NyaXB0Pi9nLCIiKSkuZmluZChFKTpNLnJlc3BvbnNlVGV4dCl9aWYoSyl7Ri5lYWNoKEssW00ucmVzcG9uc2VUZXh0LEwsTV0pfX19KTtyZXR1cm4gdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIG8ucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50cz9vLm1ha2VBcnJheSh0aGlzLmVsZW1lbnRzKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSYmIXRoaXMuZGlzYWJsZWQmJih0aGlzLmNoZWNrZWR8fC9zZWxlY3R8dGV4dGFyZWEvaS50ZXN0KHRoaXMubm9kZU5hbWUpfHwvdGV4dHxoaWRkZW58cGFzc3dvcmR8c2VhcmNoL2kudGVzdCh0aGlzLnR5cGUpKX0pLm1hcChmdW5jdGlvbihFLEYpe3ZhciBHPW8odGhpcykudmFsKCk7cmV0dXJuIEc9PW51bGw/bnVsbDpvLmlzQXJyYXkoRyk/by5tYXAoRyxmdW5jdGlvbihJLEgpe3JldHVybntuYW1lOkYubmFtZSx2YWx1ZTpJfX0pOntuYW1lOkYubmFtZSx2YWx1ZTpHfX0pLmdldCgpfX0pO28uZWFjaCgiYWpheFN0YXJ0LGFqYXhTdG9wLGFqYXhDb21wbGV0ZSxhamF4RXJyb3IsYWpheFN1Y2Nlc3MsYWpheFNlbmQiLnNwbGl0KCIsIiksZnVuY3Rpb24oRSxGKXtvLmZuW0ZdPWZ1bmN0aW9uKEcpe3JldHVybiB0aGlzLmJpbmQoRixHKX19KTt2YXIgcj1lKCk7by5leHRlbmQoe2dldDpmdW5jdGlvbihFLEcsSCxGKXtpZihvLmlzRnVuY3Rpb24oRykpe0g9RztHPW51bGx9cmV0dXJuIG8uYWpheCh7dHlwZToiR0VUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sZ2V0U2NyaXB0OmZ1bmN0aW9uKEUsRil7cmV0dXJuIG8uZ2V0KEUsbnVsbCxGLCJzY3JpcHQiKX0sZ2V0SlNPTjpmdW5jdGlvbihFLEYsRyl7cmV0dXJuIG8uZ2V0KEUsRixHLCJqc29uIil9LHBvc3Q6ZnVuY3Rpb24oRSxHLEgsRil7aWYoby5pc0Z1bmN0aW9uKEcpKXtIPUc7Rz17fX1yZXR1cm4gby5hamF4KHt0eXBlOiJQT1NUIix1cmw6RSxkYXRhOkcsc3VjY2VzczpILGRhdGFUeXBlOkZ9KX0sYWpheFNldHVwOmZ1bmN0aW9uKEUpe28uZXh0ZW5kKG8uYWpheFNldHRpbmdzLEUpfSxhamF4U2V0dGluZ3M6e3VybDpsb2NhdGlvbi5ocmVmLGdsb2JhbDp0cnVlLHR5cGU6IkdFVCIsY29udGVudFR5cGU6ImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIscHJvY2Vzc0RhdGE6dHJ1ZSxhc3luYzp0cnVlLHhocjpmdW5jdGlvbigpe3JldHVybiBsLkFjdGl2ZVhPYmplY3Q/bmV3IEFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIik6bmV3IFhNTEh0dHBSZXF1ZXN0KCl9LGFjY2VwdHM6e3htbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsaHRtbDoidGV4dC9odG1sIixzY3JpcHQ6InRleHQvamF2YXNjcmlwdCwgYXBwbGljYXRpb24vamF2YXNjcmlwdCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0Iix0ZXh0OiJ0ZXh0L3BsYWluIixfZGVmYXVsdDoiKi8qIn19LGxhc3RNb2RpZmllZDp7fSxhamF4OmZ1bmN0aW9uKE0pe009by5leHRlbmQodHJ1ZSxNLG8uZXh0ZW5kKHRydWUse30sby5hamF4U2V0dGluZ3MsTSkpO3ZhciBXLEY9Lz1cPygmfCQpL2csUixWLEc9TS50eXBlLnRvVXBwZXJDYXNlKCk7aWYoTS5kYXRhJiZNLnByb2Nlc3NEYXRhJiZ0eXBlb2YgTS5kYXRhIT09InN0cmluZyIpe00uZGF0YT1vLnBhcmFtKE0uZGF0YSl9aWYoTS5kYXRhVHlwZT09Impzb25wIil7aWYoRz09IkdFVCIpe2lmKCFNLnVybC5tYXRjaChGKSl7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19ZWxzZXtpZighTS5kYXRhfHwhTS5kYXRhLm1hdGNoKEYpKXtNLmRhdGE9KE0uZGF0YT9NLmRhdGErIiYiOiIiKSsoTS5qc29ucHx8ImNhbGxiYWNrIikrIj0/In19TS5kYXRhVHlwZT0ianNvbiJ9aWYoTS5kYXRhVHlwZT09Impzb24iJiYoTS5kYXRhJiZNLmRhdGEubWF0Y2goRil8fE0udXJsLm1hdGNoKEYpKSl7Vz0ianNvbnAiK3IrKztpZihNLmRhdGEpe00uZGF0YT0oTS5kYXRhKyIiKS5yZXBsYWNlKEYsIj0iK1crIiQxIil9TS51cmw9TS51cmwucmVwbGFjZShGLCI9IitXKyIkMSIpO00uZGF0YVR5cGU9InNjcmlwdCI7bFtXXT1mdW5jdGlvbihYKXtWPVg7SSgpO0woKTtsW1ddPWc7dHJ5e2RlbGV0ZSBsW1ddfWNhdGNoKFkpe31pZihIKXtILnJlbW92ZUNoaWxkKFQpfX19aWYoTS5kYXRhVHlwZT09InNjcmlwdCImJk0uY2FjaGU9PW51bGwpe00uY2FjaGU9ZmFsc2V9aWYoTS5jYWNoZT09PWZhbHNlJiZHPT0iR0VUIil7dmFyIEU9ZSgpO3ZhciBVPU0udXJsLnJlcGxhY2UoLyhcP3wmKV89Lio/KCZ8JCkvLCIkMV89IitFKyIkMiIpO00udXJsPVUrKChVPT1NLnVybCk/KE0udXJsLm1hdGNoKC9cPy8pPyImIjoiPyIpKyJfPSIrRToiIil9aWYoTS5kYXRhJiZHPT0iR0VUIil7TS51cmwrPShNLnVybC5tYXRjaCgvXD8vKT8iJiI6Ij8iKStNLmRhdGE7TS5kYXRhPW51bGx9aWYoTS5nbG9iYWwmJiFvLmFjdGl2ZSsrKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpfXZhciBRPS9eKFx3KzopP1wvXC8oW15cLz8jXSspLy5leGVjKE0udXJsKTtpZihNLmRhdGFUeXBlPT0ic2NyaXB0IiYmRz09IkdFVCImJlEmJihRWzFdJiZRWzFdIT1sb2NhdGlvbi5wcm90b2NvbHx8UVsyXSE9bG9jYXRpb24uaG9zdCkpe3ZhciBIPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07dmFyIFQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2NyaXB0Iik7VC5zcmM9TS51cmw7aWYoTS5zY3JpcHRDaGFyc2V0KXtULmNoYXJzZXQ9TS5zY3JpcHRDaGFyc2V0fWlmKCFXKXt2YXIgTz1mYWxzZTtULm9ubG9hZD1ULm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2lmKCFPJiYoIXRoaXMucmVhZHlTdGF0ZXx8dGhpcy5yZWFkeVN0YXRlPT0ibG9hZGVkInx8dGhpcy5yZWFkeVN0YXRlPT0iY29tcGxldGUiKSl7Tz10cnVlO0koKTtMKCk7VC5vbmxvYWQ9VC5vbnJlYWR5c3RhdGVjaGFuZ2U9bnVsbDtILnJlbW92ZUNoaWxkKFQpfX19SC5hcHBlbmRDaGlsZChUKTtyZXR1cm4gZ312YXIgSz1mYWxzZTt2YXIgSj1NLnhocigpO2lmKE0udXNlcm5hbWUpe0oub3BlbihHLE0udXJsLE0uYXN5bmMsTS51c2VybmFtZSxNLnBhc3N3b3JkKX1lbHNle0oub3BlbihHLE0udXJsLE0uYXN5bmMpfXRyeXtpZihNLmRhdGEpe0ouc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIixNLmNvbnRlbnRUeXBlKX1pZihNLmlmTW9kaWZpZWQpe0ouc2V0UmVxdWVzdEhlYWRlcigiSWYtTW9kaWZpZWQtU2luY2UiLG8ubGFzdE1vZGlmaWVkW00udXJsXXx8IlRodSwgMDEgSmFuIDE5NzAgMDA6MDA6MDAgR01UIil9Si5zZXRSZXF1ZXN0SGVhZGVyKCJYLVJlcXVlc3RlZC1XaXRoIiwiWE1MSHR0cFJlcXVlc3QiKTtKLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsTS5kYXRhVHlwZSYmTS5hY2NlcHRzW00uZGF0YVR5cGVdP00uYWNjZXB0c1tNLmRhdGFUeXBlXSsiLCAqLyoiOk0uYWNjZXB0cy5fZGVmYXVsdCl9Y2F0Y2goUyl7fWlmKE0uYmVmb3JlU2VuZCYmTS5iZWZvcmVTZW5kKEosTSk9PT1mYWxzZSl7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9Si5hYm9ydCgpO3JldHVybiBmYWxzZX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U2VuZCIsW0osTV0pfXZhciBOPWZ1bmN0aW9uKFgpe2lmKEoucmVhZHlTdGF0ZT09MCl7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGw7aWYoTS5nbG9iYWwmJiEtLW8uYWN0aXZlKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIil9fX1lbHNle2lmKCFLJiZKJiYoSi5yZWFkeVN0YXRlPT00fHxYPT0idGltZW91dCIpKXtLPXRydWU7aWYoUCl7Y2xlYXJJbnRlcnZhbChQKTtQPW51bGx9Uj1YPT0idGltZW91dCI/InRpbWVvdXQiOiFvLmh0dHBTdWNjZXNzKEopPyJlcnJvciI6TS5pZk1vZGlmaWVkJiZvLmh0dHBOb3RNb2RpZmllZChKLE0udXJsKT8ibm90bW9kaWZpZWQiOiJzdWNjZXNzIjtpZihSPT0ic3VjY2VzcyIpe3RyeXtWPW8uaHR0cERhdGEoSixNLmRhdGFUeXBlLE0pfWNhdGNoKFope1I9InBhcnNlcmVycm9yIn19aWYoUj09InN1Y2Nlc3MiKXt2YXIgWTt0cnl7WT1KLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIil9Y2F0Y2goWil7fWlmKE0uaWZNb2RpZmllZCYmWSl7by5sYXN0TW9kaWZpZWRbTS51cmxdPVl9aWYoIVcpe0koKX19ZWxzZXtvLmhhbmRsZUVycm9yKE0sSixSKX1MKCk7aWYoWCl7Si5hYm9ydCgpfWlmKE0uYXN5bmMpe0o9bnVsbH19fX07aWYoTS5hc3luYyl7dmFyIFA9c2V0SW50ZXJ2YWwoTiwxMyk7aWYoTS50aW1lb3V0PjApe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtpZihKJiYhSyl7TigidGltZW91dCIpfX0sTS50aW1lb3V0KX19dHJ5e0ouc2VuZChNLmRhdGEpfWNhdGNoKFMpe28uaGFuZGxlRXJyb3IoTSxKLG51bGwsUyl9aWYoIU0uYXN5bmMpe04oKX1mdW5jdGlvbiBJKCl7aWYoTS5zdWNjZXNzKXtNLnN1Y2Nlc3MoVixSKX1pZihNLmdsb2JhbCl7by5ldmVudC50cmlnZ2VyKCJhamF4U3VjY2VzcyIsW0osTV0pfX1mdW5jdGlvbiBMKCl7aWYoTS5jb21wbGV0ZSl7TS5jb21wbGV0ZShKLFIpfWlmKE0uZ2xvYmFsKXtvLmV2ZW50LnRyaWdnZXIoImFqYXhDb21wbGV0ZSIsW0osTV0pfWlmKE0uZ2xvYmFsJiYhLS1vLmFjdGl2ZSl7by5ldmVudC50cmlnZ2VyKCJhamF4U3RvcCIpfX1yZXR1cm4gSn0saGFuZGxlRXJyb3I6ZnVuY3Rpb24oRixILEUsRyl7aWYoRi5lcnJvcil7Ri5lcnJvcihILEUsRyl9aWYoRi5nbG9iYWwpe28uZXZlbnQudHJpZ2dlcigiYWpheEVycm9yIixbSCxGLEddKX19LGFjdGl2ZTowLGh0dHBTdWNjZXNzOmZ1bmN0aW9uKEYpe3RyeXtyZXR1cm4gIUYuc3RhdHVzJiZsb2NhdGlvbi5wcm90b2NvbD09ImZpbGU6Inx8KEYuc3RhdHVzPj0yMDAmJkYuc3RhdHVzPDMwMCl8fEYuc3RhdHVzPT0zMDR8fEYuc3RhdHVzPT0xMjIzfWNhdGNoKEUpe31yZXR1cm4gZmFsc2V9LGh0dHBOb3RNb2RpZmllZDpmdW5jdGlvbihHLEUpe3RyeXt2YXIgSD1HLmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIik7cmV0dXJuIEcuc3RhdHVzPT0zMDR8fEg9PW8ubGFzdE1vZGlmaWVkW0VdfWNhdGNoKEYpe31yZXR1cm4gZmFsc2V9LGh0dHBEYXRhOmZ1bmN0aW9uKEosSCxHKXt2YXIgRj1KLmdldFJlc3BvbnNlSGVhZGVyKCJjb250ZW50LXR5cGUiKSxFPUg9PSJ4bWwifHwhSCYmRiYmRi5pbmRleE9mKCJ4bWwiKT49MCxJPUU/Si5yZXNwb25zZVhNTDpKLnJlc3BvbnNlVGV4dDtpZihFJiZJLmRvY3VtZW50RWxlbWVudC50YWdOYW1lPT0icGFyc2VyZXJyb3IiKXt0aHJvdyJwYXJzZXJlcnJvciJ9aWYoRyYmRy5kYXRhRmlsdGVyKXtJPUcuZGF0YUZpbHRlcihJLEgpfWlmKHR5cGVvZiBJPT09InN0cmluZyIpe2lmKEg9PSJzY3JpcHQiKXtvLmdsb2JhbEV2YWwoSSl9aWYoSD09Impzb24iKXtJPWxbImV2YWwiXSgiKCIrSSsiKSIpfX1yZXR1cm4gSX0scGFyYW06ZnVuY3Rpb24oRSl7dmFyIEc9W107ZnVuY3Rpb24gSChJLEope0dbRy5sZW5ndGhdPWVuY29kZVVSSUNvbXBvbmVudChJKSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KEopfWlmKG8uaXNBcnJheShFKXx8RS5qcXVlcnkpe28uZWFjaChFLGZ1bmN0aW9uKCl7SCh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KX1lbHNle2Zvcih2YXIgRiBpbiBFKXtpZihvLmlzQXJyYXkoRVtGXSkpe28uZWFjaChFW0ZdLGZ1bmN0aW9uKCl7SChGLHRoaXMpfSl9ZWxzZXtIKEYsby5pc0Z1bmN0aW9uKEVbRl0pP0VbRl0oKTpFW0ZdKX19fXJldHVybiBHLmpvaW4oIiYiKS5yZXBsYWNlKC8lMjAvZywiKyIpfX0pO3ZhciBtPXt9LG4sZD1bWyJoZWlnaHQiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLFsid2lkdGgiLCJtYXJnaW5MZWZ0IiwibWFyZ2luUmlnaHQiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdSaWdodCJdLFsib3BhY2l0eSJdXTtmdW5jdGlvbiB0KEYsRSl7dmFyIEc9e307by5lYWNoKGQuY29uY2F0LmFwcGx5KFtdLGQuc2xpY2UoMCxFKSksZnVuY3Rpb24oKXtHW3RoaXNdPUZ9KTtyZXR1cm4gR31vLmZuLmV4dGVuZCh7c2hvdzpmdW5jdGlvbihKLEwpe2lmKEope3JldHVybiB0aGlzLmFuaW1hdGUodCgic2hvdyIsMyksSixMKX1lbHNle2Zvcih2YXIgSD0wLEY9dGhpcy5sZW5ndGg7SDxGO0grKyl7dmFyIEU9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiKTt0aGlzW0hdLnN0eWxlLmRpc3BsYXk9RXx8IiI7aWYoby5jc3ModGhpc1tIXSwiZGlzcGxheSIpPT09Im5vbmUiKXt2YXIgRz10aGlzW0hdLnRhZ05hbWUsSztpZihtW0ddKXtLPW1bR119ZWxzZXt2YXIgST1vKCI8IitHKyIgLz4iKS5hcHBlbmRUbygiYm9keSIpO0s9SS5jc3MoImRpc3BsYXkiKTtpZihLPT09Im5vbmUiKXtLPSJibG9jayJ9SS5yZW1vdmUoKTttW0ddPUt9by5kYXRhKHRoaXNbSF0sIm9sZGRpc3BsYXkiLEspfX1mb3IodmFyIEg9MCxGPXRoaXMubGVuZ3RoO0g8RjtIKyspe3RoaXNbSF0uc3R5bGUuZGlzcGxheT1vLmRhdGEodGhpc1tIXSwib2xkZGlzcGxheSIpfHwiIn1yZXR1cm4gdGhpc319LGhpZGU6ZnVuY3Rpb24oSCxJKXtpZihIKXtyZXR1cm4gdGhpcy5hbmltYXRlKHQoImhpZGUiLDMpLEgsSSl9ZWxzZXtmb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3ZhciBFPW8uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5Iik7aWYoIUUmJkUhPT0ibm9uZSIpe28uZGF0YSh0aGlzW0ddLCJvbGRkaXNwbGF5IixvLmNzcyh0aGlzW0ddLCJkaXNwbGF5IikpfX1mb3IodmFyIEc9MCxGPXRoaXMubGVuZ3RoO0c8RjtHKyspe3RoaXNbR10uc3R5bGUuZGlzcGxheT0ibm9uZSJ9cmV0dXJuIHRoaXN9fSxfdG9nZ2xlOm8uZm4udG9nZ2xlLHRvZ2dsZTpmdW5jdGlvbihHLEYpe3ZhciBFPXR5cGVvZiBHPT09ImJvb2xlYW4iO3JldHVybiBvLmlzRnVuY3Rpb24oRykmJm8uaXNGdW5jdGlvbihGKT90aGlzLl90b2dnbGUuYXBwbHkodGhpcyxhcmd1bWVudHMpOkc9PW51bGx8fEU/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIEg9RT9HOm8odGhpcykuaXMoIjpoaWRkZW4iKTtvKHRoaXMpW0g/InNob3ciOiJoaWRlIl0oKX0pOnRoaXMuYW5pbWF0ZSh0KCJ0b2dnbGUiLDMpLEcsRil9LGZhZGVUbzpmdW5jdGlvbihFLEcsRil7cmV0dXJuIHRoaXMuYW5pbWF0ZSh7b3BhY2l0eTpHfSxFLEYpfSxhbmltYXRlOmZ1bmN0aW9uKEksRixILEcpe3ZhciBFPW8uc3BlZWQoRixILEcpO3JldHVybiB0aGlzW0UucXVldWU9PT1mYWxzZT8iZWFjaCI6InF1ZXVlIl0oZnVuY3Rpb24oKXt2YXIgSz1vLmV4dGVuZCh7fSxFKSxNLEw9dGhpcy5ub2RlVHlwZT09MSYmbyh0aGlzKS5pcygiOmhpZGRlbiIpLEo9dGhpcztmb3IoTSBpbiBJKXtpZihJW01dPT0iaGlkZSImJkx8fElbTV09PSJzaG93IiYmIUwpe3JldHVybiBLLmNvbXBsZXRlLmNhbGwodGhpcyl9aWYoKE09PSJoZWlnaHQifHxNPT0id2lkdGgiKSYmdGhpcy5zdHlsZSl7Sy5kaXNwbGF5PW8uY3NzKHRoaXMsImRpc3BsYXkiKTtLLm92ZXJmbG93PXRoaXMuc3R5bGUub3ZlcmZsb3d9fWlmKEsub3ZlcmZsb3chPW51bGwpe3RoaXMuc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiJ9Sy5jdXJBbmltPW8uZXh0ZW5kKHt9LEkpO28uZWFjaChJLGZ1bmN0aW9uKE8sUyl7dmFyIFI9bmV3IG8uZngoSixLLE8pO2lmKC90b2dnbGV8c2hvd3xoaWRlLy50ZXN0KFMpKXtSW1M9PSJ0b2dnbGUiP0w/InNob3ciOiJoaWRlIjpTXShJKX1lbHNle3ZhciBRPVMudG9TdHJpbmcoKS5tYXRjaCgvXihbKy1dPSk/KFtcZCstLl0rKSguKikkLyksVD1SLmN1cih0cnVlKXx8MDtpZihRKXt2YXIgTj1wYXJzZUZsb2F0KFFbMl0pLFA9UVszXXx8InB4IjtpZihQIT0icHgiKXtKLnN0eWxlW09dPShOfHwxKStQO1Q9KChOfHwxKS9SLmN1cih0cnVlKSkqVDtKLnN0eWxlW09dPVQrUH1pZihRWzFdKXtOPSgoUVsxXT09Ii09Ij8tMToxKSpOKStUfVIuY3VzdG9tKFQsTixQKX1lbHNle1IuY3VzdG9tKFQsUywiIil9fX0pO3JldHVybiB0cnVlfSl9LHN0b3A6ZnVuY3Rpb24oRixFKXt2YXIgRz1vLnRpbWVycztpZihGKXt0aGlzLnF1ZXVlKFtdKX10aGlzLmVhY2goZnVuY3Rpb24oKXtmb3IodmFyIEg9Ry5sZW5ndGgtMTtIPj0wO0gtLSl7aWYoR1tIXS5lbGVtPT10aGlzKXtpZihFKXtHW0hdKHRydWUpfUcuc3BsaWNlKEgsMSl9fX0pO2lmKCFFKXt0aGlzLmRlcXVldWUoKX1yZXR1cm4gdGhpc319KTtvLmVhY2goe3NsaWRlRG93bjp0KCJzaG93IiwxKSxzbGlkZVVwOnQoImhpZGUiLDEpLHNsaWRlVG9nZ2xlOnQoInRvZ2dsZSIsMSksZmFkZUluOntvcGFjaXR5OiJzaG93In0sZmFkZU91dDp7b3BhY2l0eToiaGlkZSJ9fSxmdW5jdGlvbihFLEYpe28uZm5bRV09ZnVuY3Rpb24oRyxIKXtyZXR1cm4gdGhpcy5hbmltYXRlKEYsRyxIKX19KTtvLmV4dGVuZCh7c3BlZWQ6ZnVuY3Rpb24oRyxILEYpe3ZhciBFPXR5cGVvZiBHPT09Im9iamVjdCI/Rzp7Y29tcGxldGU6Rnx8IUYmJkh8fG8uaXNGdW5jdGlvbihHKSYmRyxkdXJhdGlvbjpHLGVhc2luZzpGJiZIfHxIJiYhby5pc0Z1bmN0aW9uKEgpJiZIfTtFLmR1cmF0aW9uPW8uZngub2ZmPzA6dHlwZW9mIEUuZHVyYXRpb249PT0ibnVtYmVyIj9FLmR1cmF0aW9uOm8uZnguc3BlZWRzW0UuZHVyYXRpb25dfHxvLmZ4LnNwZWVkcy5fZGVmYXVsdDtFLm9sZD1FLmNvbXBsZXRlO0UuY29tcGxldGU9ZnVuY3Rpb24oKXtpZihFLnF1ZXVlIT09ZmFsc2Upe28odGhpcykuZGVxdWV1ZSgpfWlmKG8uaXNGdW5jdGlvbihFLm9sZCkpe0Uub2xkLmNhbGwodGhpcyl9fTtyZXR1cm4gRX0sZWFzaW5nOntsaW5lYXI6ZnVuY3Rpb24oRyxILEUsRil7cmV0dXJuIEUrRipHfSxzd2luZzpmdW5jdGlvbihHLEgsRSxGKXtyZXR1cm4oKC1NYXRoLmNvcyhHKk1hdGguUEkpLzIpKzAuNSkqRitFfX0sdGltZXJzOltdLGZ4OmZ1bmN0aW9uKEYsRSxHKXt0aGlzLm9wdGlvbnM9RTt0aGlzLmVsZW09Rjt0aGlzLnByb3A9RztpZighRS5vcmlnKXtFLm9yaWc9e319fX0pO28uZngucHJvdG90eXBlPXt1cGRhdGU6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMuc3RlcCl7dGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyl9KG8uZnguc3RlcFt0aGlzLnByb3BdfHxvLmZ4LnN0ZXAuX2RlZmF1bHQpKHRoaXMpO2lmKCh0aGlzLnByb3A9PSJoZWlnaHQifHx0aGlzLnByb3A9PSJ3aWR0aCIpJiZ0aGlzLmVsZW0uc3R5bGUpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fSxjdXI6ZnVuY3Rpb24oRil7aWYodGhpcy5lbGVtW3RoaXMucHJvcF0hPW51bGwmJighdGhpcy5lbGVtLnN0eWxlfHx0aGlzLmVsZW0uc3R5bGVbdGhpcy5wcm9wXT09bnVsbCkpe3JldHVybiB0aGlzLmVsZW1bdGhpcy5wcm9wXX12YXIgRT1wYXJzZUZsb2F0KG8uY3NzKHRoaXMuZWxlbSx0aGlzLnByb3AsRikpO3JldHVybiBFJiZFPi0xMDAwMD9FOnBhcnNlRmxvYXQoby5jdXJDU1ModGhpcy5lbGVtLHRoaXMucHJvcCkpfHwwfSxjdXN0b206ZnVuY3Rpb24oSSxILEcpe3RoaXMuc3RhcnRUaW1lPWUoKTt0aGlzLnN0YXJ0PUk7dGhpcy5lbmQ9SDt0aGlzLnVuaXQ9R3x8dGhpcy51bml0fHwicHgiO3RoaXMubm93PXRoaXMuc3RhcnQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0wO3ZhciBFPXRoaXM7ZnVuY3Rpb24gRihKKXtyZXR1cm4gRS5zdGVwKEopfUYuZWxlbT10aGlzLmVsZW07aWYoRigpJiZvLnRpbWVycy5wdXNoKEYpJiYhbil7bj1zZXRJbnRlcnZhbChmdW5jdGlvbigpe3ZhciBLPW8udGltZXJzO2Zvcih2YXIgSj0wO0o8Sy5sZW5ndGg7SisrKXtpZighS1tKXSgpKXtLLnNwbGljZShKLS0sMSl9fWlmKCFLLmxlbmd0aCl7Y2xlYXJJbnRlcnZhbChuKTtuPWd9fSwxMyl9fSxzaG93OmZ1bmN0aW9uKCl7dGhpcy5vcHRpb25zLm9yaWdbdGhpcy5wcm9wXT1vLmF0dHIodGhpcy5lbGVtLnN0eWxlLHRoaXMucHJvcCk7dGhpcy5vcHRpb25zLnNob3c9dHJ1ZTt0aGlzLmN1c3RvbSh0aGlzLnByb3A9PSJ3aWR0aCJ8fHRoaXMucHJvcD09ImhlaWdodCI/MTowLHRoaXMuY3VyKCkpO28odGhpcy5lbGVtKS5zaG93KCl9LGhpZGU6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMub3JpZ1t0aGlzLnByb3BdPW8uYXR0cih0aGlzLmVsZW0uc3R5bGUsdGhpcy5wcm9wKTt0aGlzLm9wdGlvbnMuaGlkZT10cnVlO3RoaXMuY3VzdG9tKHRoaXMuY3VyKCksMCl9LHN0ZXA6ZnVuY3Rpb24oSCl7dmFyIEc9ZSgpO2lmKEh8fEc+PXRoaXMub3B0aW9ucy5kdXJhdGlvbit0aGlzLnN0YXJ0VGltZSl7dGhpcy5ub3c9dGhpcy5lbmQ7dGhpcy5wb3M9dGhpcy5zdGF0ZT0xO3RoaXMudXBkYXRlKCk7dGhpcy5vcHRpb25zLmN1ckFuaW1bdGhpcy5wcm9wXT10cnVlO3ZhciBFPXRydWU7Zm9yKHZhciBGIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtpZih0aGlzLm9wdGlvbnMuY3VyQW5pbVtGXSE9PXRydWUpe0U9ZmFsc2V9fWlmKEUpe2lmKHRoaXMub3B0aW9ucy5kaXNwbGF5IT1udWxsKXt0aGlzLmVsZW0uc3R5bGUub3ZlcmZsb3c9dGhpcy5vcHRpb25zLm92ZXJmbG93O3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PXRoaXMub3B0aW9ucy5kaXNwbGF5O2lmKG8uY3NzKHRoaXMuZWxlbSwiZGlzcGxheSIpPT0ibm9uZSIpe3RoaXMuZWxlbS5zdHlsZS5kaXNwbGF5PSJibG9jayJ9fWlmKHRoaXMub3B0aW9ucy5oaWRlKXtvKHRoaXMuZWxlbSkuaGlkZSgpfWlmKHRoaXMub3B0aW9ucy5oaWRlfHx0aGlzLm9wdGlvbnMuc2hvdyl7Zm9yKHZhciBJIGluIHRoaXMub3B0aW9ucy5jdXJBbmltKXtvLmF0dHIodGhpcy5lbGVtLnN0eWxlLEksdGhpcy5vcHRpb25zLm9yaWdbSV0pfX10aGlzLm9wdGlvbnMuY29tcGxldGUuY2FsbCh0aGlzLmVsZW0pfXJldHVybiBmYWxzZX1lbHNle3ZhciBKPUctdGhpcy5zdGFydFRpbWU7dGhpcy5zdGF0ZT1KL3RoaXMub3B0aW9ucy5kdXJhdGlvbjt0aGlzLnBvcz1vLmVhc2luZ1t0aGlzLm9wdGlvbnMuZWFzaW5nfHwoby5lYXNpbmcuc3dpbmc/InN3aW5nIjoibGluZWFyIildKHRoaXMuc3RhdGUsSiwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTt0aGlzLm5vdz10aGlzLnN0YXJ0KygodGhpcy5lbmQtdGhpcy5zdGFydCkqdGhpcy5wb3MpO3RoaXMudXBkYXRlKCl9cmV0dXJuIHRydWV9fTtvLmV4dGVuZChvLmZ4LHtzcGVlZHM6e3Nsb3c6NjAwLGZhc3Q6MjAwLF9kZWZhdWx0OjQwMH0sc3RlcDp7b3BhY2l0eTpmdW5jdGlvbihFKXtvLmF0dHIoRS5lbGVtLnN0eWxlLCJvcGFjaXR5IixFLm5vdyl9LF9kZWZhdWx0OmZ1bmN0aW9uKEUpe2lmKEUuZWxlbS5zdHlsZSYmRS5lbGVtLnN0eWxlW0UucHJvcF0hPW51bGwpe0UuZWxlbS5zdHlsZVtFLnByb3BdPUUubm93K0UudW5pdH1lbHNle0UuZWxlbVtFLnByb3BdPUUubm93fX19fSk7aWYoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCl7by5mbi5vZmZzZXQ9ZnVuY3Rpb24oKXtpZighdGhpc1swXSl7cmV0dXJue3RvcDowLGxlZnQ6MH19aWYodGhpc1swXT09PXRoaXNbMF0ub3duZXJEb2N1bWVudC5ib2R5KXtyZXR1cm4gby5vZmZzZXQuYm9keU9mZnNldCh0aGlzWzBdKX12YXIgRz10aGlzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLEo9dGhpc1swXS5vd25lckRvY3VtZW50LEY9Si5ib2R5LEU9Si5kb2N1bWVudEVsZW1lbnQsTD1FLmNsaWVudFRvcHx8Ri5jbGllbnRUb3B8fDAsSz1FLmNsaWVudExlZnR8fEYuY2xpZW50TGVmdHx8MCxJPUcudG9wKyhzZWxmLnBhZ2VZT2Zmc2V0fHxvLmJveE1vZGVsJiZFLnNjcm9sbFRvcHx8Ri5zY3JvbGxUb3ApLUwsSD1HLmxlZnQrKHNlbGYucGFnZVhPZmZzZXR8fG8uYm94TW9kZWwmJkUuc2Nyb2xsTGVmdHx8Ri5zY3JvbGxMZWZ0KS1LO3JldHVybnt0b3A6SSxsZWZ0Okh9fX1lbHNle28uZm4ub2Zmc2V0PWZ1bmN0aW9uKCl7aWYoIXRoaXNbMF0pe3JldHVybnt0b3A6MCxsZWZ0OjB9fWlmKHRoaXNbMF09PT10aGlzWzBdLm93bmVyRG9jdW1lbnQuYm9keSl7cmV0dXJuIG8ub2Zmc2V0LmJvZHlPZmZzZXQodGhpc1swXSl9by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgSj10aGlzWzBdLEc9Si5vZmZzZXRQYXJlbnQsRj1KLE89Si5vd25lckRvY3VtZW50LE0sSD1PLmRvY3VtZW50RWxlbWVudCxLPU8uYm9keSxMPU8uZGVmYXVsdFZpZXcsRT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKSxOPUoub2Zmc2V0VG9wLEk9Si5vZmZzZXRMZWZ0O3doaWxlKChKPUoucGFyZW50Tm9kZSkmJkohPT1LJiZKIT09SCl7TT1MLmdldENvbXB1dGVkU3R5bGUoSixudWxsKTtOLT1KLnNjcm9sbFRvcCxJLT1KLnNjcm9sbExlZnQ7aWYoSj09PUcpe04rPUoub2Zmc2V0VG9wLEkrPUoub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90QWRkQm9yZGVyJiYhKG8ub2Zmc2V0LmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzJiYvXnQoYWJsZXxkfGgpJC9pLnRlc3QoSi50YWdOYW1lKSkpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1GPUcsRz1KLm9mZnNldFBhcmVudH1pZihvLm9mZnNldC5zdWJ0cmFjdHNCb3JkZXJGb3JPdmVyZmxvd05vdFZpc2libGUmJk0ub3ZlcmZsb3chPT0idmlzaWJsZSIpe04rPXBhcnNlSW50KE0uYm9yZGVyVG9wV2lkdGgsMTApfHwwLEkrPXBhcnNlSW50KE0uYm9yZGVyTGVmdFdpZHRoLDEwKXx8MH1FPU19aWYoRS5wb3NpdGlvbj09PSJyZWxhdGl2ZSJ8fEUucG9zaXRpb249PT0ic3RhdGljIil7Tis9Sy5vZmZzZXRUb3AsSSs9Sy5vZmZzZXRMZWZ0fWlmKEUucG9zaXRpb249PT0iZml4ZWQiKXtOKz1NYXRoLm1heChILnNjcm9sbFRvcCxLLnNjcm9sbFRvcCksSSs9TWF0aC5tYXgoSC5zY3JvbGxMZWZ0LEsuc2Nyb2xsTGVmdCl9cmV0dXJue3RvcDpOLGxlZnQ6SX19fW8ub2Zmc2V0PXtpbml0aWFsaXplOmZ1bmN0aW9uKCl7aWYodGhpcy5pbml0aWFsaXplZCl7cmV0dXJufXZhciBMPWRvY3VtZW50LmJvZHksRj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSxILEcsTixJLE0sRSxKPUwuc3R5bGUubWFyZ2luVG9wLEs9JzxkaXYgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyI+PGRpdj48L2Rpdj48L2Rpdj48dGFibGUgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlO3RvcDowO2xlZnQ6MDttYXJnaW46MDtib3JkZXI6NXB4IHNvbGlkICMwMDA7cGFkZGluZzowO3dpZHRoOjFweDtoZWlnaHQ6MXB4OyIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIj48dHI+PHRkPjwvdGQ+PC90cj48L3RhYmxlPic7TT17cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAsYm9yZGVyOjAsd2lkdGg6IjFweCIsaGVpZ2h0OiIxcHgiLHZpc2liaWxpdHk6ImhpZGRlbiJ9O2ZvcihFIGluIE0pe0Yuc3R5bGVbRV09TVtFXX1GLmlubmVySFRNTD1LO0wuaW5zZXJ0QmVmb3JlKEYsTC5maXJzdENoaWxkKTtIPUYuZmlyc3RDaGlsZCxHPUguZmlyc3RDaGlsZCxJPUgubmV4dFNpYmxpbmcuZmlyc3RDaGlsZC5maXJzdENoaWxkO3RoaXMuZG9lc05vdEFkZEJvcmRlcj0oRy5vZmZzZXRUb3AhPT01KTt0aGlzLmRvZXNBZGRCb3JkZXJGb3JUYWJsZUFuZENlbGxzPShJLm9mZnNldFRvcD09PTUpO0guc3R5bGUub3ZlcmZsb3c9ImhpZGRlbiIsSC5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiO3RoaXMuc3VidHJhY3RzQm9yZGVyRm9yT3ZlcmZsb3dOb3RWaXNpYmxlPShHLm9mZnNldFRvcD09PS01KTtMLnN0eWxlLm1hcmdpblRvcD0iMXB4Ijt0aGlzLmRvZXNOb3RJbmNsdWRlTWFyZ2luSW5Cb2R5T2Zmc2V0PShMLm9mZnNldFRvcD09PTApO0wuc3R5bGUubWFyZ2luVG9wPUo7TC5yZW1vdmVDaGlsZChGKTt0aGlzLmluaXRpYWxpemVkPXRydWV9LGJvZHlPZmZzZXQ6ZnVuY3Rpb24oRSl7by5vZmZzZXQuaW5pdGlhbGl6ZWR8fG8ub2Zmc2V0LmluaXRpYWxpemUoKTt2YXIgRz1FLm9mZnNldFRvcCxGPUUub2Zmc2V0TGVmdDtpZihvLm9mZnNldC5kb2VzTm90SW5jbHVkZU1hcmdpbkluQm9keU9mZnNldCl7Rys9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luVG9wIix0cnVlKSwxMCl8fDAsRis9cGFyc2VJbnQoby5jdXJDU1MoRSwibWFyZ2luTGVmdCIsdHJ1ZSksMTApfHwwfXJldHVybnt0b3A6RyxsZWZ0OkZ9fX07by5mbi5leHRlbmQoe3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIEk9MCxIPTAsRjtpZih0aGlzWzBdKXt2YXIgRz10aGlzLm9mZnNldFBhcmVudCgpLEo9dGhpcy5vZmZzZXQoKSxFPS9eYm9keXxodG1sJC9pLnRlc3QoR1swXS50YWdOYW1lKT97dG9wOjAsbGVmdDowfTpHLm9mZnNldCgpO0oudG9wLT1qKHRoaXMsIm1hcmdpblRvcCIpO0oubGVmdC09aih0aGlzLCJtYXJnaW5MZWZ0Iik7RS50b3ArPWooRywiYm9yZGVyVG9wV2lkdGgiKTtFLmxlZnQrPWooRywiYm9yZGVyTGVmdFdpZHRoIik7Rj17dG9wOkoudG9wLUUudG9wLGxlZnQ6Si5sZWZ0LUUubGVmdH19cmV0dXJuIEZ9LG9mZnNldFBhcmVudDpmdW5jdGlvbigpe3ZhciBFPXRoaXNbMF0ub2Zmc2V0UGFyZW50fHxkb2N1bWVudC5ib2R5O3doaWxlKEUmJighL15ib2R5fGh0bWwkL2kudGVzdChFLnRhZ05hbWUpJiZvLmNzcyhFLCJwb3NpdGlvbiIpPT0ic3RhdGljIikpe0U9RS5vZmZzZXRQYXJlbnR9cmV0dXJuIG8oRSl9fSk7by5lYWNoKFsiTGVmdCIsIlRvcCJdLGZ1bmN0aW9uKEYsRSl7dmFyIEc9InNjcm9sbCIrRTtvLmZuW0ddPWZ1bmN0aW9uKEgpe2lmKCF0aGlzWzBdKXtyZXR1cm4gbnVsbH1yZXR1cm4gSCE9PWc/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09bHx8dGhpcz09ZG9jdW1lbnQ/bC5zY3JvbGxUbyghRj9IOm8obCkuc2Nyb2xsTGVmdCgpLEY/SDpvKGwpLnNjcm9sbFRvcCgpKTp0aGlzW0ddPUh9KTp0aGlzWzBdPT1sfHx0aGlzWzBdPT1kb2N1bWVudD9zZWxmW0Y/InBhZ2VZT2Zmc2V0IjoicGFnZVhPZmZzZXQiXXx8by5ib3hNb2RlbCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50W0ddfHxkb2N1bWVudC5ib2R5W0ddOnRoaXNbMF1bR119fSk7by5lYWNoKFsiSGVpZ2h0IiwiV2lkdGgiXSxmdW5jdGlvbihJLEcpe3ZhciBFPUk/IkxlZnQiOiJUb3AiLEg9ST8iUmlnaHQiOiJCb3R0b20iLEY9Ry50b0xvd2VyQ2FzZSgpO28uZm5bImlubmVyIitHXT1mdW5jdGlvbigpe3JldHVybiB0aGlzWzBdP28uY3NzKHRoaXNbMF0sRixmYWxzZSwicGFkZGluZyIpOm51bGx9O28uZm5bIm91dGVyIitHXT1mdW5jdGlvbihLKXtyZXR1cm4gdGhpc1swXT9vLmNzcyh0aGlzWzBdLEYsZmFsc2UsSz8ibWFyZ2luIjoiYm9yZGVyIik6bnVsbH07dmFyIEo9Ry50b0xvd2VyQ2FzZSgpO28uZm5bSl09ZnVuY3Rpb24oSyl7cmV0dXJuIHRoaXNbMF09PWw/ZG9jdW1lbnQuY29tcGF0TW9kZT09IkNTUzFDb21wYXQiJiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrR118fGRvY3VtZW50LmJvZHlbImNsaWVudCIrR106dGhpc1swXT09ZG9jdW1lbnQ/TWF0aC5tYXgoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJjbGllbnQiK0ddLGRvY3VtZW50LmJvZHlbInNjcm9sbCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJzY3JvbGwiK0ddLGRvY3VtZW50LmJvZHlbIm9mZnNldCIrR10sZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50WyJvZmZzZXQiK0ddKTpLPT09Zz8odGhpcy5sZW5ndGg/by5jc3ModGhpc1swXSxKKTpudWxsKTp0aGlzLmNzcyhKLHR5cGVvZiBLPT09InN0cmluZyI/SzpLKyJweCIpfX0pfSkoKTsKCi8qCiAqIGpRdWVyeSB2YWxpZGF0aW9uIHBsdWctaW4gMS41LjEKICoKICogaHR0cDovL2Jhc3Npc3RhbmNlLmRlL2pxdWVyeS1wbHVnaW5zL2pxdWVyeS1wbHVnaW4tdmFsaWRhdGlvbi8KICogaHR0cDovL2RvY3MuanF1ZXJ5LmNvbS9QbHVnaW5zL1ZhbGlkYXRpb24KICoKICogQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAwOCBK9nJuIFphZWZmZXJlcgogKgogKiAkSWQ6IGpxdWVyeS52YWxpZGF0ZS5qcyA2MDk2IDIwMDktMDEtMTIgMTQ6MTI6MDRaIGpvZXJuLnphZWZmZXJlciAkCiAqCiAqIER1YWwgbGljZW5zZWQgdW5kZXIgdGhlIE1JVCBhbmQgR1BMIGxpY2Vuc2VzOgogKiAgIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UucGhwCiAqICAgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sCiAqLwooZnVuY3Rpb24oJCl7JC5leHRlbmQoJC5mbix7dmFsaWRhdGU6ZnVuY3Rpb24ob3B0aW9ucyl7aWYoIXRoaXMubGVuZ3RoKXtvcHRpb25zJiZvcHRpb25zLmRlYnVnJiZ3aW5kb3cuY29uc29sZSYmY29uc29sZS53YXJuKCJub3RoaW5nIHNlbGVjdGVkLCBjYW4ndCB2YWxpZGF0ZSwgcmV0dXJuaW5nIG5vdGhpbmciKTtyZXR1cm47fXZhciB2YWxpZGF0b3I9JC5kYXRhKHRoaXNbMF0sJ3ZhbGlkYXRvcicpO2lmKHZhbGlkYXRvcil7cmV0dXJuIHZhbGlkYXRvcjt9dmFsaWRhdG9yPW5ldyAkLnZhbGlkYXRvcihvcHRpb25zLHRoaXNbMF0pOyQuZGF0YSh0aGlzWzBdLCd2YWxpZGF0b3InLHZhbGlkYXRvcik7aWYodmFsaWRhdG9yLnNldHRpbmdzLm9uc3VibWl0KXt0aGlzLmZpbmQoImlucHV0LCBidXR0b24iKS5maWx0ZXIoIi5jYW5jZWwiKS5jbGljayhmdW5jdGlvbigpe3ZhbGlkYXRvci5jYW5jZWxTdWJtaXQ9dHJ1ZTt9KTt0aGlzLnN1Ym1pdChmdW5jdGlvbihldmVudCl7aWYodmFsaWRhdG9yLnNldHRpbmdzLmRlYnVnKWV2ZW50LnByZXZlbnREZWZhdWx0KCk7ZnVuY3Rpb24gaGFuZGxlKCl7aWYodmFsaWRhdG9yLnNldHRpbmdzLnN1Ym1pdEhhbmRsZXIpe3ZhbGlkYXRvci5zZXR0aW5ncy5zdWJtaXRIYW5kbGVyLmNhbGwodmFsaWRhdG9yLHZhbGlkYXRvci5jdXJyZW50Rm9ybSk7cmV0dXJuIGZhbHNlO31yZXR1cm4gdHJ1ZTt9aWYodmFsaWRhdG9yLmNhbmNlbFN1Ym1pdCl7dmFsaWRhdG9yLmNhbmNlbFN1Ym1pdD1mYWxzZTtyZXR1cm4gaGFuZGxlKCk7fWlmKHZhbGlkYXRvci5mb3JtKCkpe2lmKHZhbGlkYXRvci5wZW5kaW5nUmVxdWVzdCl7dmFsaWRhdG9yLmZvcm1TdWJtaXR0ZWQ9dHJ1ZTtyZXR1cm4gZmFsc2U7fXJldHVybiBoYW5kbGUoKTt9ZWxzZXt2YWxpZGF0b3IuZm9jdXNJbnZhbGlkKCk7cmV0dXJuIGZhbHNlO319KTt9cmV0dXJuIHZhbGlkYXRvcjt9LHZhbGlkOmZ1bmN0aW9uKCl7aWYoJCh0aGlzWzBdKS5pcygnZm9ybScpKXtyZXR1cm4gdGhpcy52YWxpZGF0ZSgpLmZvcm0oKTt9ZWxzZXt2YXIgdmFsaWQ9ZmFsc2U7dmFyIHZhbGlkYXRvcj0kKHRoaXNbMF0uZm9ybSkudmFsaWRhdGUoKTt0aGlzLmVhY2goZnVuY3Rpb24oKXt2YWxpZHw9dmFsaWRhdG9yLmVsZW1lbnQodGhpcyk7fSk7cmV0dXJuIHZhbGlkO319LHJlbW92ZUF0dHJzOmZ1bmN0aW9uKGF0dHJpYnV0ZXMpe3ZhciByZXN1bHQ9e30sJGVsZW1lbnQ9dGhpczskLmVhY2goYXR0cmlidXRlcy5zcGxpdCgvXHMvKSxmdW5jdGlvbihpbmRleCx2YWx1ZSl7cmVzdWx0W3ZhbHVlXT0kZWxlbWVudC5hdHRyKHZhbHVlKTskZWxlbWVudC5yZW1vdmVBdHRyKHZhbHVlKTt9KTtyZXR1cm4gcmVzdWx0O30scnVsZXM6ZnVuY3Rpb24oY29tbWFuZCxhcmd1bWVudCl7dmFyIGVsZW1lbnQ9dGhpc1swXTtpZihjb21tYW5kKXt2YXIgc2V0dGluZ3M9JC5kYXRhKGVsZW1lbnQuZm9ybSwndmFsaWRhdG9yJykuc2V0dGluZ3M7dmFyIHN0YXRpY1J1bGVzPXNldHRpbmdzLnJ1bGVzO3ZhciBleGlzdGluZ1J1bGVzPSQudmFsaWRhdG9yLnN0YXRpY1J1bGVzKGVsZW1lbnQpO3N3aXRjaChjb21tYW5kKXtjYXNlImFkZCI6JC5leHRlbmQoZXhpc3RpbmdSdWxlcywkLnZhbGlkYXRvci5ub3JtYWxpemVSdWxlKGFyZ3VtZW50KSk7c3RhdGljUnVsZXNbZWxlbWVudC5uYW1lXT1leGlzdGluZ1J1bGVzO2lmKGFyZ3VtZW50Lm1lc3NhZ2VzKXNldHRpbmdzLm1lc3NhZ2VzW2VsZW1lbnQubmFtZV09JC5leHRlbmQoc2V0dGluZ3MubWVzc2FnZXNbZWxlbWVudC5uYW1lXSxhcmd1bWVudC5tZXNzYWdlcyk7YnJlYWs7Y2FzZSJyZW1vdmUiOmlmKCFhcmd1bWVudCl7ZGVsZXRlIHN0YXRpY1J1bGVzW2VsZW1lbnQubmFtZV07cmV0dXJuIGV4aXN0aW5nUnVsZXM7fXZhciBmaWx0ZXJlZD17fTskLmVhY2goYXJndW1lbnQuc3BsaXQoL1xzLyksZnVuY3Rpb24oaW5kZXgsbWV0aG9kKXtmaWx0ZXJlZFttZXRob2RdPWV4aXN0aW5nUnVsZXNbbWV0aG9kXTtkZWxldGUgZXhpc3RpbmdSdWxlc1ttZXRob2RdO30pO3JldHVybiBmaWx0ZXJlZDt9fXZhciBkYXRhPSQudmFsaWRhdG9yLm5vcm1hbGl6ZVJ1bGVzKCQuZXh0ZW5kKHt9LCQudmFsaWRhdG9yLm1ldGFkYXRhUnVsZXMoZWxlbWVudCksJC52YWxpZGF0b3IuY2xhc3NSdWxlcyhlbGVtZW50KSwkLnZhbGlkYXRvci5hdHRyaWJ1dGVSdWxlcyhlbGVtZW50KSwkLnZhbGlkYXRvci5zdGF0aWNSdWxlcyhlbGVtZW50KSksZWxlbWVudCk7aWYoZGF0YS5yZXF1aXJlZCl7dmFyIHBhcmFtPWRhdGEucmVxdWlyZWQ7ZGVsZXRlIGRhdGEucmVxdWlyZWQ7ZGF0YT0kLmV4dGVuZCh7cmVxdWlyZWQ6cGFyYW19LGRhdGEpO31yZXR1cm4gZGF0YTt9fSk7JC5leHRlbmQoJC5leHByWyI6Il0se2JsYW5rOmZ1bmN0aW9uKGEpe3JldHVybiEkLnRyaW0oYS52YWx1ZSk7fSxmaWxsZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuISEkLnRyaW0oYS52YWx1ZSk7fSx1bmNoZWNrZWQ6ZnVuY3Rpb24oYSl7cmV0dXJuIWEuY2hlY2tlZDt9fSk7JC5mb3JtYXQ9ZnVuY3Rpb24oc291cmNlLHBhcmFtcyl7aWYoYXJndW1lbnRzLmxlbmd0aD09MSlyZXR1cm4gZnVuY3Rpb24oKXt2YXIgYXJncz0kLm1ha2VBcnJheShhcmd1bWVudHMpO2FyZ3MudW5zaGlmdChzb3VyY2UpO3JldHVybiAkLmZvcm1hdC5hcHBseSh0aGlzLGFyZ3MpO307aWYoYXJndW1lbnRzLmxlbmd0aD4yJiZwYXJhbXMuY29uc3RydWN0b3IhPUFycmF5KXtwYXJhbXM9JC5tYWtlQXJyYXkoYXJndW1lbnRzKS5zbGljZSgxKTt9aWYocGFyYW1zLmNvbnN0cnVjdG9yIT1BcnJheSl7cGFyYW1zPVtwYXJhbXNdO30kLmVhY2gocGFyYW1zLGZ1bmN0aW9uKGksbil7c291cmNlPXNvdXJjZS5yZXBsYWNlKG5ldyBSZWdFeHAoIlxceyIraSsiXFx9IiwiZyIpLG4pO30pO3JldHVybiBzb3VyY2U7fTskLnZhbGlkYXRvcj1mdW5jdGlvbihvcHRpb25zLGZvcm0pe3RoaXMuc2V0dGluZ3M9JC5leHRlbmQoe30sJC52YWxpZGF0b3IuZGVmYXVsdHMsb3B0aW9ucyk7dGhpcy5jdXJyZW50Rm9ybT1mb3JtO3RoaXMuaW5pdCgpO307JC5leHRlbmQoJC52YWxpZGF0b3Ise2RlZmF1bHRzOnttZXNzYWdlczp7fSxncm91cHM6e30scnVsZXM6e30sZXJyb3JDbGFzczoiZXJyb3IiLGVycm9yRWxlbWVudDoibGFiZWwiLGZvY3VzSW52YWxpZDp0cnVlLGVycm9yQ29udGFpbmVyOiQoW10pLGVycm9yTGFiZWxDb250YWluZXI6JChbXSksb25zdWJtaXQ6dHJ1ZSxpZ25vcmU6W10saWdub3JlVGl0bGU6ZmFsc2Usb25mb2N1c2luOmZ1bmN0aW9uKGVsZW1lbnQpe3RoaXMubGFzdEFjdGl2ZT1lbGVtZW50O2lmKHRoaXMuc2V0dGluZ3MuZm9jdXNDbGVhbnVwJiYhdGhpcy5ibG9ja0ZvY3VzQ2xlYW51cCl7dGhpcy5zZXR0aW5ncy51bmhpZ2hsaWdodCYmdGhpcy5zZXR0aW5ncy51bmhpZ2hsaWdodC5jYWxsKHRoaXMsZWxlbWVudCx0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpO3RoaXMuZXJyb3JzRm9yKGVsZW1lbnQpLmhpZGUoKTt9fSxvbmZvY3Vzb3V0OmZ1bmN0aW9uKGVsZW1lbnQpe2lmKCF0aGlzLmNoZWNrYWJsZShlbGVtZW50KSYmKGVsZW1lbnQubmFtZSBpbiB0aGlzLnN1Ym1pdHRlZHx8IXRoaXMub3B0aW9uYWwoZWxlbWVudCkpKXt0aGlzLmVsZW1lbnQoZWxlbWVudCk7fX0sb25rZXl1cDpmdW5jdGlvbihlbGVtZW50KXtpZihlbGVtZW50Lm5hbWUgaW4gdGhpcy5zdWJtaXR0ZWR8fGVsZW1lbnQ9PXRoaXMubGFzdEVsZW1lbnQpe3RoaXMuZWxlbWVudChlbGVtZW50KTt9fSxvbmNsaWNrOmZ1bmN0aW9uKGVsZW1lbnQpe2lmKGVsZW1lbnQubmFtZSBpbiB0aGlzLnN1Ym1pdHRlZCl0aGlzLmVsZW1lbnQoZWxlbWVudCk7fSxoaWdobGlnaHQ6ZnVuY3Rpb24oZWxlbWVudCxlcnJvckNsYXNzKXskKGVsZW1lbnQpLmFkZENsYXNzKGVycm9yQ2xhc3MpO30sdW5oaWdobGlnaHQ6ZnVuY3Rpb24oZWxlbWVudCxlcnJvckNsYXNzKXskKGVsZW1lbnQpLnJlbW92ZUNsYXNzKGVycm9yQ2xhc3MpO319LHNldERlZmF1bHRzOmZ1bmN0aW9uKHNldHRpbmdzKXskLmV4dGVuZCgkLnZhbGlkYXRvci5kZWZhdWx0cyxzZXR0aW5ncyk7fSxtZXNzYWdlczp7cmVxdWlyZWQ6IlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIixyZW1vdGU6IlBsZWFzZSBmaXggdGhpcyBmaWVsZC4iLGVtYWlsOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLiIsdXJsOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBVUkwuIixkYXRlOiJQbGVhc2UgZW50ZXIgYSB2YWxpZCBkYXRlLiIsZGF0ZUlTTzoiUGxlYXNlIGVudGVyIGEgdmFsaWQgZGF0ZSAoSVNPKS4iLGRhdGVERToiQml0dGUgZ2ViZW4gU2llIGVpbiBn/Gx0aWdlcyBEYXR1bSBlaW4uIixudW1iZXI6IlBsZWFzZSBlbnRlciBhIHZhbGlkIG51bWJlci4iLG51bWJlckRFOiJCaXR0ZSBnZWJlbiBTaWUgZWluZSBOdW1tZXIgZWluLiIsZGlnaXRzOiJQbGVhc2UgZW50ZXIgb25seSBkaWdpdHMiLGNyZWRpdGNhcmQ6IlBsZWFzZSBlbnRlciBhIHZhbGlkIGNyZWRpdCBjYXJkIG51bWJlci4iLGVxdWFsVG86IlBsZWFzZSBlbnRlciB0aGUgc2FtZSB2YWx1ZSBhZ2Fpbi4iLGFjY2VwdDoiUGxlYXNlIGVudGVyIGEgdmFsdWUgd2l0aCBhIHZhbGlkIGV4dGVuc2lvbi4iLG1heGxlbmd0aDokLmZvcm1hdCgiUGxlYXNlIGVudGVyIG5vIG1vcmUgdGhhbiB7MH0gY2hhcmFjdGVycy4iKSxtaW5sZW5ndGg6JC5mb3JtYXQoIlBsZWFzZSBlbnRlciBhdCBsZWFzdCB7MH0gY2hhcmFjdGVycy4iKSxyYW5nZWxlbmd0aDokLmZvcm1hdCgiUGxlYXNlIGVudGVyIGEgdmFsdWUgYmV0d2VlbiB7MH0gYW5kIHsxfSBjaGFyYWN0ZXJzIGxvbmcuIikscmFuZ2U6JC5mb3JtYXQoIlBsZWFzZSBlbnRlciBhIHZhbHVlIGJldHdlZW4gezB9IGFuZCB7MX0uIiksbWF4OiQuZm9ybWF0KCJQbGVhc2UgZW50ZXIgYSB2YWx1ZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gezB9LiIpLG1pbjokLmZvcm1hdCgiUGxlYXNlIGVudGVyIGEgdmFsdWUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHswfS4iKX0sYXV0b0NyZWF0ZVJhbmdlczpmYWxzZSxwcm90b3R5cGU6e2luaXQ6ZnVuY3Rpb24oKXt0aGlzLmxhYmVsQ29udGFpbmVyPSQodGhpcy5zZXR0aW5ncy5lcnJvckxhYmVsQ29udGFpbmVyKTt0aGlzLmVycm9yQ29udGV4dD10aGlzLmxhYmVsQ29udGFpbmVyLmxlbmd0aCYmdGhpcy5sYWJlbENvbnRhaW5lcnx8JCh0aGlzLmN1cnJlbnRGb3JtKTt0aGlzLmNvbnRhaW5lcnM9JCh0aGlzLnNldHRpbmdzLmVycm9yQ29udGFpbmVyKS5hZGQodGhpcy5zZXR0aW5ncy5lcnJvckxhYmVsQ29udGFpbmVyKTt0aGlzLnN1Ym1pdHRlZD17fTt0aGlzLnZhbHVlQ2FjaGU9e307dGhpcy5wZW5kaW5nUmVxdWVzdD0wO3RoaXMucGVuZGluZz17fTt0aGlzLmludmFsaWQ9e307dGhpcy5yZXNldCgpO3ZhciBncm91cHM9KHRoaXMuZ3JvdXBzPXt9KTskLmVhY2godGhpcy5zZXR0aW5ncy5ncm91cHMsZnVuY3Rpb24oa2V5LHZhbHVlKXskLmVhY2godmFsdWUuc3BsaXQoL1xzLyksZnVuY3Rpb24oaW5kZXgsbmFtZSl7Z3JvdXBzW25hbWVdPWtleTt9KTt9KTt2YXIgcnVsZXM9dGhpcy5zZXR0aW5ncy5ydWxlczskLmVhY2gocnVsZXMsZnVuY3Rpb24oa2V5LHZhbHVlKXtydWxlc1trZXldPSQudmFsaWRhdG9yLm5vcm1hbGl6ZVJ1bGUodmFsdWUpO30pO2Z1bmN0aW9uIGRlbGVnYXRlKGV2ZW50KXt2YXIgdmFsaWRhdG9yPSQuZGF0YSh0aGlzWzBdLmZvcm0sInZhbGlkYXRvciIpO3ZhbGlkYXRvci5zZXR0aW5nc1sib24iK2V2ZW50LnR5cGVdJiZ2YWxpZGF0b3Iuc2V0dGluZ3NbIm9uIitldmVudC50eXBlXS5jYWxsKHZhbGlkYXRvcix0aGlzWzBdKTt9JCh0aGlzLmN1cnJlbnRGb3JtKS5kZWxlZ2F0ZSgiZm9jdXNpbiBmb2N1c291dCBrZXl1cCIsIjp0ZXh0LCA6cGFzc3dvcmQsIDpmaWxlLCBzZWxlY3QsIHRleHRhcmVhIixkZWxlZ2F0ZSkuZGVsZWdhdGUoImNsaWNrIiwiOnJhZGlvLCA6Y2hlY2tib3giLGRlbGVnYXRlKTtpZih0aGlzLnNldHRpbmdzLmludmFsaWRIYW5kbGVyKSQodGhpcy5jdXJyZW50Rm9ybSkuYmluZCgiaW52YWxpZC1mb3JtLnZhbGlkYXRlIix0aGlzLnNldHRpbmdzLmludmFsaWRIYW5kbGVyKTt9LGZvcm06ZnVuY3Rpb24oKXt0aGlzLmNoZWNrRm9ybSgpOyQuZXh0ZW5kKHRoaXMuc3VibWl0dGVkLHRoaXMuZXJyb3JNYXApO3RoaXMuaW52YWxpZD0kLmV4dGVuZCh7fSx0aGlzLmVycm9yTWFwKTtpZighdGhpcy52YWxpZCgpKSQodGhpcy5jdXJyZW50Rm9ybSkudHJpZ2dlckhhbmRsZXIoImludmFsaWQtZm9ybSIsW3RoaXNdKTt0aGlzLnNob3dFcnJvcnMoKTtyZXR1cm4gdGhpcy52YWxpZCgpO30sY2hlY2tGb3JtOmZ1bmN0aW9uKCl7dGhpcy5wcmVwYXJlRm9ybSgpO2Zvcih2YXIgaT0wLGVsZW1lbnRzPSh0aGlzLmN1cnJlbnRFbGVtZW50cz10aGlzLmVsZW1lbnRzKCkpO2VsZW1lbnRzW2ldO2krKyl7dGhpcy5jaGVjayhlbGVtZW50c1tpXSk7fXJldHVybiB0aGlzLnZhbGlkKCk7fSxlbGVtZW50OmZ1bmN0aW9uKGVsZW1lbnQpe2VsZW1lbnQ9dGhpcy5jbGVhbihlbGVtZW50KTt0aGlzLmxhc3RFbGVtZW50PWVsZW1lbnQ7dGhpcy5wcmVwYXJlRWxlbWVudChlbGVtZW50KTt0aGlzLmN1cnJlbnRFbGVtZW50cz0kKGVsZW1lbnQpO3ZhciByZXN1bHQ9dGhpcy5jaGVjayhlbGVtZW50KTtpZihyZXN1bHQpe2RlbGV0ZSB0aGlzLmludmFsaWRbZWxlbWVudC5uYW1lXTt9ZWxzZXt0aGlzLmludmFsaWRbZWxlbWVudC5uYW1lXT10cnVlO31pZighdGhpcy5udW1iZXJPZkludmFsaWRzKCkpe3RoaXMudG9IaWRlPXRoaXMudG9IaWRlLmFkZCh0aGlzLmNvbnRhaW5lcnMpO310aGlzLnNob3dFcnJvcnMoKTtyZXR1cm4gcmVzdWx0O30sc2hvd0Vycm9yczpmdW5jdGlvbihlcnJvcnMpe2lmKGVycm9ycyl7JC5leHRlbmQodGhpcy5lcnJvck1hcCxlcnJvcnMpO3RoaXMuZXJyb3JMaXN0PVtdO2Zvcih2YXIgbmFtZSBpbiBlcnJvcnMpe3RoaXMuZXJyb3JMaXN0LnB1c2goe21lc3NhZ2U6ZXJyb3JzW25hbWVdLGVsZW1lbnQ6dGhpcy5maW5kQnlOYW1lKG5hbWUpWzBdfSk7fXRoaXMuc3VjY2Vzc0xpc3Q9JC5ncmVwKHRoaXMuc3VjY2Vzc0xpc3QsZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuIShlbGVtZW50Lm5hbWUgaW4gZXJyb3JzKTt9KTt9dGhpcy5zZXR0aW5ncy5zaG93RXJyb3JzP3RoaXMuc2V0dGluZ3Muc2hvd0Vycm9ycy5jYWxsKHRoaXMsdGhpcy5lcnJvck1hcCx0aGlzLmVycm9yTGlzdCk6dGhpcy5kZWZhdWx0U2hvd0Vycm9ycygpO30scmVzZXRGb3JtOmZ1bmN0aW9uKCl7aWYoJC5mbi5yZXNldEZvcm0pJCh0aGlzLmN1cnJlbnRGb3JtKS5yZXNldEZvcm0oKTt0aGlzLnN1Ym1pdHRlZD17fTt0aGlzLnByZXBhcmVGb3JtKCk7dGhpcy5oaWRlRXJyb3JzKCk7dGhpcy5lbGVtZW50cygpLnJlbW92ZUNsYXNzKHRoaXMuc2V0dGluZ3MuZXJyb3JDbGFzcyk7fSxudW1iZXJPZkludmFsaWRzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub2JqZWN0TGVuZ3RoKHRoaXMuaW52YWxpZCk7fSxvYmplY3RMZW5ndGg6ZnVuY3Rpb24ob2JqKXt2YXIgY291bnQ9MDtmb3IodmFyIGkgaW4gb2JqKWNvdW50Kys7cmV0dXJuIGNvdW50O30saGlkZUVycm9yczpmdW5jdGlvbigpe3RoaXMuYWRkV3JhcHBlcih0aGlzLnRvSGlkZSkuaGlkZSgpO30sdmFsaWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaXplKCk9PTA7fSxzaXplOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXJyb3JMaXN0Lmxlbmd0aDt9LGZvY3VzSW52YWxpZDpmdW5jdGlvbigpe2lmKHRoaXMuc2V0dGluZ3MuZm9jdXNJbnZhbGlkKXt0cnl7JCh0aGlzLmZpbmRMYXN0QWN0aXZlKCl8fHRoaXMuZXJyb3JMaXN0Lmxlbmd0aCYmdGhpcy5lcnJvckxpc3RbMF0uZWxlbWVudHx8W10pLmZpbHRlcigiOnZpc2libGUiKS5mb2N1cygpO31jYXRjaChlKXt9fX0sZmluZExhc3RBY3RpdmU6ZnVuY3Rpb24oKXt2YXIgbGFzdEFjdGl2ZT10aGlzLmxhc3RBY3RpdmU7cmV0dXJuIGxhc3RBY3RpdmUmJiQuZ3JlcCh0aGlzLmVycm9yTGlzdCxmdW5jdGlvbihuKXtyZXR1cm4gbi5lbGVtZW50Lm5hbWU9PWxhc3RBY3RpdmUubmFtZTt9KS5sZW5ndGg9PTEmJmxhc3RBY3RpdmU7fSxlbGVtZW50czpmdW5jdGlvbigpe3ZhciB2YWxpZGF0b3I9dGhpcyxydWxlc0NhY2hlPXt9O3JldHVybiAkKFtdKS5hZGQodGhpcy5jdXJyZW50Rm9ybS5lbGVtZW50cykuZmlsdGVyKCI6aW5wdXQiKS5ub3QoIjpzdWJtaXQsIDpyZXNldCwgOmltYWdlLCBbZGlzYWJsZWRdIikubm90KHRoaXMuc2V0dGluZ3MuaWdub3JlKS5maWx0ZXIoZnVuY3Rpb24oKXshdGhpcy5uYW1lJiZ2YWxpZGF0b3Iuc2V0dGluZ3MuZGVidWcmJndpbmRvdy5jb25zb2xlJiZjb25zb2xlLmVycm9yKCIlbyBoYXMgbm8gbmFtZSBhc3NpZ25lZCIsdGhpcyk7aWYodGhpcy5uYW1lIGluIHJ1bGVzQ2FjaGV8fCF2YWxpZGF0b3Iub2JqZWN0TGVuZ3RoKCQodGhpcykucnVsZXMoKSkpcmV0dXJuIGZhbHNlO3J1bGVzQ2FjaGVbdGhpcy5uYW1lXT10cnVlO3JldHVybiB0cnVlO30pO30sY2xlYW46ZnVuY3Rpb24oc2VsZWN0b3Ipe3JldHVybiAkKHNlbGVjdG9yKVswXTt9LGVycm9yczpmdW5jdGlvbigpe3JldHVybiAkKHRoaXMuc2V0dGluZ3MuZXJyb3JFbGVtZW50KyIuIit0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MsdGhpcy5lcnJvckNvbnRleHQpO30scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnN1Y2Nlc3NMaXN0PVtdO3RoaXMuZXJyb3JMaXN0PVtdO3RoaXMuZXJyb3JNYXA9e307dGhpcy50b1Nob3c9JChbXSk7dGhpcy50b0hpZGU9JChbXSk7dGhpcy5mb3JtU3VibWl0dGVkPWZhbHNlO3RoaXMuY3VycmVudEVsZW1lbnRzPSQoW10pO30scHJlcGFyZUZvcm06ZnVuY3Rpb24oKXt0aGlzLnJlc2V0KCk7dGhpcy50b0hpZGU9dGhpcy5lcnJvcnMoKS5hZGQodGhpcy5jb250YWluZXJzKTt9LHByZXBhcmVFbGVtZW50OmZ1bmN0aW9uKGVsZW1lbnQpe3RoaXMucmVzZXQoKTt0aGlzLnRvSGlkZT10aGlzLmVycm9yc0ZvcihlbGVtZW50KTt9LGNoZWNrOmZ1bmN0aW9uKGVsZW1lbnQpe2VsZW1lbnQ9dGhpcy5jbGVhbihlbGVtZW50KTtpZih0aGlzLmNoZWNrYWJsZShlbGVtZW50KSl7ZWxlbWVudD10aGlzLmZpbmRCeU5hbWUoZWxlbWVudC5uYW1lKVswXTt9dmFyIHJ1bGVzPSQoZWxlbWVudCkucnVsZXMoKTt2YXIgZGVwZW5kZW5jeU1pc21hdGNoPWZhbHNlO2ZvcihtZXRob2QgaW4gcnVsZXMpe3ZhciBydWxlPXttZXRob2Q6bWV0aG9kLHBhcmFtZXRlcnM6cnVsZXNbbWV0aG9kXX07dHJ5e3ZhciByZXN1bHQ9JC52YWxpZGF0b3IubWV0aG9kc1ttZXRob2RdLmNhbGwodGhpcyxlbGVtZW50LnZhbHVlLGVsZW1lbnQscnVsZS5wYXJhbWV0ZXJzKTtpZihyZXN1bHQ9PSJkZXBlbmRlbmN5LW1pc21hdGNoIil7ZGVwZW5kZW5jeU1pc21hdGNoPXRydWU7Y29udGludWU7fWRlcGVuZGVuY3lNaXNtYXRjaD1mYWxzZTtpZihyZXN1bHQ9PSJwZW5kaW5nIil7dGhpcy50b0hpZGU9dGhpcy50b0hpZGUubm90KHRoaXMuZXJyb3JzRm9yKGVsZW1lbnQpKTtyZXR1cm47fWlmKCFyZXN1bHQpe3RoaXMuZm9ybWF0QW5kQWRkKGVsZW1lbnQscnVsZSk7cmV0dXJuIGZhbHNlO319Y2F0Y2goZSl7dGhpcy5zZXR0aW5ncy5kZWJ1ZyYmd2luZG93LmNvbnNvbGUmJmNvbnNvbGUubG9nKCJleGNlcHRpb24gb2NjdXJlZCB3aGVuIGNoZWNraW5nIGVsZW1lbnQgIitlbGVtZW50LmlkCisiLCBjaGVjayB0aGUgJyIrcnVsZS5tZXRob2QrIicgbWV0aG9kIik7dGhyb3cgZTt9fWlmKGRlcGVuZGVuY3lNaXNtYXRjaClyZXR1cm47aWYodGhpcy5vYmplY3RMZW5ndGgocnVsZXMpKXRoaXMuc3VjY2Vzc0xpc3QucHVzaChlbGVtZW50KTtyZXR1cm4gdHJ1ZTt9LGN1c3RvbU1ldGFNZXNzYWdlOmZ1bmN0aW9uKGVsZW1lbnQsbWV0aG9kKXtpZighJC5tZXRhZGF0YSlyZXR1cm47dmFyIG1ldGE9dGhpcy5zZXR0aW5ncy5tZXRhPyQoZWxlbWVudCkubWV0YWRhdGEoKVt0aGlzLnNldHRpbmdzLm1ldGFdOiQoZWxlbWVudCkubWV0YWRhdGEoKTtyZXR1cm4gbWV0YSYmbWV0YS5tZXNzYWdlcyYmbWV0YS5tZXNzYWdlc1ttZXRob2RdO30sY3VzdG9tTWVzc2FnZTpmdW5jdGlvbihuYW1lLG1ldGhvZCl7dmFyIG09dGhpcy5zZXR0aW5ncy5tZXNzYWdlc1tuYW1lXTtyZXR1cm4gbSYmKG0uY29uc3RydWN0b3I9PVN0cmluZz9tOm1bbWV0aG9kXSk7fSxmaW5kRGVmaW5lZDpmdW5jdGlvbigpe2Zvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe2lmKGFyZ3VtZW50c1tpXSE9PXVuZGVmaW5lZClyZXR1cm4gYXJndW1lbnRzW2ldO31yZXR1cm4gdW5kZWZpbmVkO30sZGVmYXVsdE1lc3NhZ2U6ZnVuY3Rpb24oZWxlbWVudCxtZXRob2Qpe3JldHVybiB0aGlzLmZpbmREZWZpbmVkKHRoaXMuY3VzdG9tTWVzc2FnZShlbGVtZW50Lm5hbWUsbWV0aG9kKSx0aGlzLmN1c3RvbU1ldGFNZXNzYWdlKGVsZW1lbnQsbWV0aG9kKSwhdGhpcy5zZXR0aW5ncy5pZ25vcmVUaXRsZSYmZWxlbWVudC50aXRsZXx8dW5kZWZpbmVkLCQudmFsaWRhdG9yLm1lc3NhZ2VzW21ldGhvZF0sIjxzdHJvbmc+V2FybmluZzogTm8gbWVzc2FnZSBkZWZpbmVkIGZvciAiK2VsZW1lbnQubmFtZSsiPC9zdHJvbmc+Iik7fSxmb3JtYXRBbmRBZGQ6ZnVuY3Rpb24oZWxlbWVudCxydWxlKXt2YXIgbWVzc2FnZT10aGlzLmRlZmF1bHRNZXNzYWdlKGVsZW1lbnQscnVsZS5tZXRob2QpO2lmKHR5cGVvZiBtZXNzYWdlPT0iZnVuY3Rpb24iKW1lc3NhZ2U9bWVzc2FnZS5jYWxsKHRoaXMscnVsZS5wYXJhbWV0ZXJzLGVsZW1lbnQpO3RoaXMuZXJyb3JMaXN0LnB1c2goe21lc3NhZ2U6bWVzc2FnZSxlbGVtZW50OmVsZW1lbnR9KTt0aGlzLmVycm9yTWFwW2VsZW1lbnQubmFtZV09bWVzc2FnZTt0aGlzLnN1Ym1pdHRlZFtlbGVtZW50Lm5hbWVdPW1lc3NhZ2U7fSxhZGRXcmFwcGVyOmZ1bmN0aW9uKHRvVG9nZ2xlKXtpZih0aGlzLnNldHRpbmdzLndyYXBwZXIpdG9Ub2dnbGU9dG9Ub2dnbGUuYWRkKHRvVG9nZ2xlLnBhcmVudHModGhpcy5zZXR0aW5ncy53cmFwcGVyKSk7cmV0dXJuIHRvVG9nZ2xlO30sZGVmYXVsdFNob3dFcnJvcnM6ZnVuY3Rpb24oKXtmb3IodmFyIGk9MDt0aGlzLmVycm9yTGlzdFtpXTtpKyspe3ZhciBlcnJvcj10aGlzLmVycm9yTGlzdFtpXTt0aGlzLnNldHRpbmdzLmhpZ2hsaWdodCYmdGhpcy5zZXR0aW5ncy5oaWdobGlnaHQuY2FsbCh0aGlzLGVycm9yLmVsZW1lbnQsdGhpcy5zZXR0aW5ncy5lcnJvckNsYXNzKTt0aGlzLnNob3dMYWJlbChlcnJvci5lbGVtZW50LGVycm9yLm1lc3NhZ2UpO31pZih0aGlzLmVycm9yTGlzdC5sZW5ndGgpe3RoaXMudG9TaG93PXRoaXMudG9TaG93LmFkZCh0aGlzLmNvbnRhaW5lcnMpO31pZih0aGlzLnNldHRpbmdzLnN1Y2Nlc3Mpe2Zvcih2YXIgaT0wO3RoaXMuc3VjY2Vzc0xpc3RbaV07aSsrKXt0aGlzLnNob3dMYWJlbCh0aGlzLnN1Y2Nlc3NMaXN0W2ldKTt9fWlmKHRoaXMuc2V0dGluZ3MudW5oaWdobGlnaHQpe2Zvcih2YXIgaT0wLGVsZW1lbnRzPXRoaXMudmFsaWRFbGVtZW50cygpO2VsZW1lbnRzW2ldO2krKyl7dGhpcy5zZXR0aW5ncy51bmhpZ2hsaWdodC5jYWxsKHRoaXMsZWxlbWVudHNbaV0sdGhpcy5zZXR0aW5ncy5lcnJvckNsYXNzKTt9fXRoaXMudG9IaWRlPXRoaXMudG9IaWRlLm5vdCh0aGlzLnRvU2hvdyk7dGhpcy5oaWRlRXJyb3JzKCk7dGhpcy5hZGRXcmFwcGVyKHRoaXMudG9TaG93KS5zaG93KCk7fSx2YWxpZEVsZW1lbnRzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudEVsZW1lbnRzLm5vdCh0aGlzLmludmFsaWRFbGVtZW50cygpKTt9LGludmFsaWRFbGVtZW50czpmdW5jdGlvbigpe3JldHVybiAkKHRoaXMuZXJyb3JMaXN0KS5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50O30pO30sc2hvd0xhYmVsOmZ1bmN0aW9uKGVsZW1lbnQsbWVzc2FnZSl7dmFyIGxhYmVsPXRoaXMuZXJyb3JzRm9yKGVsZW1lbnQpO2lmKGxhYmVsLmxlbmd0aCl7bGFiZWwucmVtb3ZlQ2xhc3MoKS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpO2xhYmVsLmF0dHIoImdlbmVyYXRlZCIpJiZsYWJlbC5odG1sKG1lc3NhZ2UpO31lbHNle2xhYmVsPSQoIjwiK3RoaXMuc2V0dGluZ3MuZXJyb3JFbGVtZW50KyIvPiIpLmF0dHIoeyJmb3IiOnRoaXMuaWRPck5hbWUoZWxlbWVudCksZ2VuZXJhdGVkOnRydWV9KS5hZGRDbGFzcyh0aGlzLnNldHRpbmdzLmVycm9yQ2xhc3MpLmh0bWwobWVzc2FnZXx8IiIpO2lmKHRoaXMuc2V0dGluZ3Mud3JhcHBlcil7bGFiZWw9bGFiZWwuaGlkZSgpLnNob3coKS53cmFwKCI8Iit0aGlzLnNldHRpbmdzLndyYXBwZXIrIi8+IikucGFyZW50KCk7fWlmKCF0aGlzLmxhYmVsQ29udGFpbmVyLmFwcGVuZChsYWJlbCkubGVuZ3RoKXRoaXMuc2V0dGluZ3MuZXJyb3JQbGFjZW1lbnQ/dGhpcy5zZXR0aW5ncy5lcnJvclBsYWNlbWVudChsYWJlbCwkKGVsZW1lbnQpKTpsYWJlbC5pbnNlcnRBZnRlcihlbGVtZW50KTt9aWYoIW1lc3NhZ2UmJnRoaXMuc2V0dGluZ3Muc3VjY2Vzcyl7bGFiZWwudGV4dCgiIik7dHlwZW9mIHRoaXMuc2V0dGluZ3Muc3VjY2Vzcz09InN0cmluZyI/bGFiZWwuYWRkQ2xhc3ModGhpcy5zZXR0aW5ncy5zdWNjZXNzKTp0aGlzLnNldHRpbmdzLnN1Y2Nlc3MobGFiZWwpO310aGlzLnRvU2hvdz10aGlzLnRvU2hvdy5hZGQobGFiZWwpO30sZXJyb3JzRm9yOmZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiB0aGlzLmVycm9ycygpLmZpbHRlcigiW2Zvcj0nIit0aGlzLmlkT3JOYW1lKGVsZW1lbnQpKyInXSIpO30saWRPck5hbWU6ZnVuY3Rpb24oZWxlbWVudCl7cmV0dXJuIHRoaXMuZ3JvdXBzW2VsZW1lbnQubmFtZV18fCh0aGlzLmNoZWNrYWJsZShlbGVtZW50KT9lbGVtZW50Lm5hbWU6ZWxlbWVudC5pZHx8ZWxlbWVudC5uYW1lKTt9LGNoZWNrYWJsZTpmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4vcmFkaW98Y2hlY2tib3gvaS50ZXN0KGVsZW1lbnQudHlwZSk7fSxmaW5kQnlOYW1lOmZ1bmN0aW9uKG5hbWUpe3ZhciBmb3JtPXRoaXMuY3VycmVudEZvcm07cmV0dXJuICQoZG9jdW1lbnQuZ2V0RWxlbWVudHNCeU5hbWUobmFtZSkpLm1hcChmdW5jdGlvbihpbmRleCxlbGVtZW50KXtyZXR1cm4gZWxlbWVudC5mb3JtPT1mb3JtJiZlbGVtZW50Lm5hbWU9PW5hbWUmJmVsZW1lbnR8fG51bGw7fSk7fSxnZXRMZW5ndGg6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7c3dpdGNoKGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7Y2FzZSdzZWxlY3QnOnJldHVybiAkKCJvcHRpb246c2VsZWN0ZWQiLGVsZW1lbnQpLmxlbmd0aDtjYXNlJ2lucHV0JzppZih0aGlzLmNoZWNrYWJsZShlbGVtZW50KSlyZXR1cm4gdGhpcy5maW5kQnlOYW1lKGVsZW1lbnQubmFtZSkuZmlsdGVyKCc6Y2hlY2tlZCcpLmxlbmd0aDt9cmV0dXJuIHZhbHVlLmxlbmd0aDt9LGRlcGVuZDpmdW5jdGlvbihwYXJhbSxlbGVtZW50KXtyZXR1cm4gdGhpcy5kZXBlbmRUeXBlc1t0eXBlb2YgcGFyYW1dP3RoaXMuZGVwZW5kVHlwZXNbdHlwZW9mIHBhcmFtXShwYXJhbSxlbGVtZW50KTp0cnVlO30sZGVwZW5kVHlwZXM6eyJib29sZWFuIjpmdW5jdGlvbihwYXJhbSxlbGVtZW50KXtyZXR1cm4gcGFyYW07fSwic3RyaW5nIjpmdW5jdGlvbihwYXJhbSxlbGVtZW50KXtyZXR1cm4hISQocGFyYW0sZWxlbWVudC5mb3JtKS5sZW5ndGg7fSwiZnVuY3Rpb24iOmZ1bmN0aW9uKHBhcmFtLGVsZW1lbnQpe3JldHVybiBwYXJhbShlbGVtZW50KTt9fSxvcHRpb25hbDpmdW5jdGlvbihlbGVtZW50KXtyZXR1cm4hJC52YWxpZGF0b3IubWV0aG9kcy5yZXF1aXJlZC5jYWxsKHRoaXMsJC50cmltKGVsZW1lbnQudmFsdWUpLGVsZW1lbnQpJiYiZGVwZW5kZW5jeS1taXNtYXRjaCI7fSxzdGFydFJlcXVlc3Q6ZnVuY3Rpb24oZWxlbWVudCl7aWYoIXRoaXMucGVuZGluZ1tlbGVtZW50Lm5hbWVdKXt0aGlzLnBlbmRpbmdSZXF1ZXN0Kys7dGhpcy5wZW5kaW5nW2VsZW1lbnQubmFtZV09dHJ1ZTt9fSxzdG9wUmVxdWVzdDpmdW5jdGlvbihlbGVtZW50LHZhbGlkKXt0aGlzLnBlbmRpbmdSZXF1ZXN0LS07aWYodGhpcy5wZW5kaW5nUmVxdWVzdDwwKXRoaXMucGVuZGluZ1JlcXVlc3Q9MDtkZWxldGUgdGhpcy5wZW5kaW5nW2VsZW1lbnQubmFtZV07aWYodmFsaWQmJnRoaXMucGVuZGluZ1JlcXVlc3Q9PTAmJnRoaXMuZm9ybVN1Ym1pdHRlZCYmdGhpcy5mb3JtKCkpeyQodGhpcy5jdXJyZW50Rm9ybSkuc3VibWl0KCk7fWVsc2UgaWYoIXZhbGlkJiZ0aGlzLnBlbmRpbmdSZXF1ZXN0PT0wJiZ0aGlzLmZvcm1TdWJtaXR0ZWQpeyQodGhpcy5jdXJyZW50Rm9ybSkudHJpZ2dlckhhbmRsZXIoImludmFsaWQtZm9ybSIsW3RoaXNdKTt9fSxwcmV2aW91c1ZhbHVlOmZ1bmN0aW9uKGVsZW1lbnQpe3JldHVybiAkLmRhdGEoZWxlbWVudCwicHJldmlvdXNWYWx1ZSIpfHwkLmRhdGEoZWxlbWVudCwicHJldmlvdXNWYWx1ZSIscHJldmlvdXM9e29sZDpudWxsLHZhbGlkOnRydWUsbWVzc2FnZTp0aGlzLmRlZmF1bHRNZXNzYWdlKGVsZW1lbnQsInJlbW90ZSIpfSk7fX0sY2xhc3NSdWxlU2V0dGluZ3M6e3JlcXVpcmVkOntyZXF1aXJlZDp0cnVlfSxlbWFpbDp7ZW1haWw6dHJ1ZX0sdXJsOnt1cmw6dHJ1ZX0sZGF0ZTp7ZGF0ZTp0cnVlfSxkYXRlSVNPOntkYXRlSVNPOnRydWV9LGRhdGVERTp7ZGF0ZURFOnRydWV9LG51bWJlcjp7bnVtYmVyOnRydWV9LG51bWJlckRFOntudW1iZXJERTp0cnVlfSxkaWdpdHM6e2RpZ2l0czp0cnVlfSxjcmVkaXRjYXJkOntjcmVkaXRjYXJkOnRydWV9fSxhZGRDbGFzc1J1bGVzOmZ1bmN0aW9uKGNsYXNzTmFtZSxydWxlcyl7Y2xhc3NOYW1lLmNvbnN0cnVjdG9yPT1TdHJpbmc/dGhpcy5jbGFzc1J1bGVTZXR0aW5nc1tjbGFzc05hbWVdPXJ1bGVzOiQuZXh0ZW5kKHRoaXMuY2xhc3NSdWxlU2V0dGluZ3MsY2xhc3NOYW1lKTt9LGNsYXNzUnVsZXM6ZnVuY3Rpb24oZWxlbWVudCl7dmFyIHJ1bGVzPXt9O3ZhciBjbGFzc2VzPSQoZWxlbWVudCkuYXR0cignY2xhc3MnKTtjbGFzc2VzJiYkLmVhY2goY2xhc3Nlcy5zcGxpdCgnICcpLGZ1bmN0aW9uKCl7aWYodGhpcyBpbiAkLnZhbGlkYXRvci5jbGFzc1J1bGVTZXR0aW5ncyl7JC5leHRlbmQocnVsZXMsJC52YWxpZGF0b3IuY2xhc3NSdWxlU2V0dGluZ3NbdGhpc10pO319KTtyZXR1cm4gcnVsZXM7fSxhdHRyaWJ1dGVSdWxlczpmdW5jdGlvbihlbGVtZW50KXt2YXIgcnVsZXM9e307dmFyICRlbGVtZW50PSQoZWxlbWVudCk7Zm9yKG1ldGhvZCBpbiAkLnZhbGlkYXRvci5tZXRob2RzKXt2YXIgdmFsdWU9JGVsZW1lbnQuYXR0cihtZXRob2QpO2lmKHZhbHVlKXtydWxlc1ttZXRob2RdPXZhbHVlO319aWYocnVsZXMubWF4bGVuZ3RoJiYvLTF8MjE0NzQ4MzY0N3w1MjQyODgvLnRlc3QocnVsZXMubWF4bGVuZ3RoKSl7ZGVsZXRlIHJ1bGVzLm1heGxlbmd0aDt9cmV0dXJuIHJ1bGVzO30sbWV0YWRhdGFSdWxlczpmdW5jdGlvbihlbGVtZW50KXtpZighJC5tZXRhZGF0YSlyZXR1cm57fTt2YXIgbWV0YT0kLmRhdGEoZWxlbWVudC5mb3JtLCd2YWxpZGF0b3InKS5zZXR0aW5ncy5tZXRhO3JldHVybiBtZXRhPyQoZWxlbWVudCkubWV0YWRhdGEoKVttZXRhXTokKGVsZW1lbnQpLm1ldGFkYXRhKCk7fSxzdGF0aWNSdWxlczpmdW5jdGlvbihlbGVtZW50KXt2YXIgcnVsZXM9e307dmFyIHZhbGlkYXRvcj0kLmRhdGEoZWxlbWVudC5mb3JtLCd2YWxpZGF0b3InKTtpZih2YWxpZGF0b3Iuc2V0dGluZ3MucnVsZXMpe3J1bGVzPSQudmFsaWRhdG9yLm5vcm1hbGl6ZVJ1bGUodmFsaWRhdG9yLnNldHRpbmdzLnJ1bGVzW2VsZW1lbnQubmFtZV0pfHx7fTt9cmV0dXJuIHJ1bGVzO30sbm9ybWFsaXplUnVsZXM6ZnVuY3Rpb24ocnVsZXMsZWxlbWVudCl7JC5lYWNoKHJ1bGVzLGZ1bmN0aW9uKHByb3AsdmFsKXtpZih2YWw9PT1mYWxzZSl7ZGVsZXRlIHJ1bGVzW3Byb3BdO3JldHVybjt9aWYodmFsLnBhcmFtfHx2YWwuZGVwZW5kcyl7dmFyIGtlZXBSdWxlPXRydWU7c3dpdGNoKHR5cGVvZiB2YWwuZGVwZW5kcyl7Y2FzZSJzdHJpbmciOmtlZXBSdWxlPSEhJCh2YWwuZGVwZW5kcyxlbGVtZW50LmZvcm0pLmxlbmd0aDticmVhaztjYXNlImZ1bmN0aW9uIjprZWVwUnVsZT12YWwuZGVwZW5kcy5jYWxsKGVsZW1lbnQsZWxlbWVudCk7YnJlYWs7fWlmKGtlZXBSdWxlKXtydWxlc1twcm9wXT12YWwucGFyYW0hPT11bmRlZmluZWQ/dmFsLnBhcmFtOnRydWU7fWVsc2V7ZGVsZXRlIHJ1bGVzW3Byb3BdO319fSk7JC5lYWNoKHJ1bGVzLGZ1bmN0aW9uKHJ1bGUscGFyYW1ldGVyKXtydWxlc1tydWxlXT0kLmlzRnVuY3Rpb24ocGFyYW1ldGVyKT9wYXJhbWV0ZXIoZWxlbWVudCk6cGFyYW1ldGVyO30pOyQuZWFjaChbJ21pbmxlbmd0aCcsJ21heGxlbmd0aCcsJ21pbicsJ21heCddLGZ1bmN0aW9uKCl7aWYocnVsZXNbdGhpc10pe3J1bGVzW3RoaXNdPU51bWJlcihydWxlc1t0aGlzXSk7fX0pOyQuZWFjaChbJ3JhbmdlbGVuZ3RoJywncmFuZ2UnXSxmdW5jdGlvbigpe2lmKHJ1bGVzW3RoaXNdKXtydWxlc1t0aGlzXT1bTnVtYmVyKHJ1bGVzW3RoaXNdWzBdKSxOdW1iZXIocnVsZXNbdGhpc11bMV0pXTt9fSk7aWYoJC52YWxpZGF0b3IuYXV0b0NyZWF0ZVJhbmdlcyl7aWYocnVsZXMubWluJiZydWxlcy5tYXgpe3J1bGVzLnJhbmdlPVtydWxlcy5taW4scnVsZXMubWF4XTtkZWxldGUgcnVsZXMubWluO2RlbGV0ZSBydWxlcy5tYXg7fWlmKHJ1bGVzLm1pbmxlbmd0aCYmcnVsZXMubWF4bGVuZ3RoKXtydWxlcy5yYW5nZWxlbmd0aD1bcnVsZXMubWlubGVuZ3RoLHJ1bGVzLm1heGxlbmd0aF07ZGVsZXRlIHJ1bGVzLm1pbmxlbmd0aDtkZWxldGUgcnVsZXMubWF4bGVuZ3RoO319aWYocnVsZXMubWVzc2FnZXMpe2RlbGV0ZSBydWxlcy5tZXNzYWdlc31yZXR1cm4gcnVsZXM7fSxub3JtYWxpemVSdWxlOmZ1bmN0aW9uKGRhdGEpe2lmKHR5cGVvZiBkYXRhPT0ic3RyaW5nIil7dmFyIHRyYW5zZm9ybWVkPXt9OyQuZWFjaChkYXRhLnNwbGl0KC9ccy8pLGZ1bmN0aW9uKCl7dHJhbnNmb3JtZWRbdGhpc109dHJ1ZTt9KTtkYXRhPXRyYW5zZm9ybWVkO31yZXR1cm4gZGF0YTt9LGFkZE1ldGhvZDpmdW5jdGlvbihuYW1lLG1ldGhvZCxtZXNzYWdlKXskLnZhbGlkYXRvci5tZXRob2RzW25hbWVdPW1ldGhvZDskLnZhbGlkYXRvci5tZXNzYWdlc1tuYW1lXT1tZXNzYWdlO2lmKG1ldGhvZC5sZW5ndGg8Myl7JC52YWxpZGF0b3IuYWRkQ2xhc3NSdWxlcyhuYW1lLCQudmFsaWRhdG9yLm5vcm1hbGl6ZVJ1bGUobmFtZSkpO319LG1ldGhvZHM6e3JlcXVpcmVkOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe2lmKCF0aGlzLmRlcGVuZChwYXJhbSxlbGVtZW50KSlyZXR1cm4iZGVwZW5kZW5jeS1taXNtYXRjaCI7c3dpdGNoKGVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSl7Y2FzZSdzZWxlY3QnOnZhciBvcHRpb25zPSQoIm9wdGlvbjpzZWxlY3RlZCIsZWxlbWVudCk7cmV0dXJuIG9wdGlvbnMubGVuZ3RoPjAmJihlbGVtZW50LnR5cGU9PSJzZWxlY3QtbXVsdGlwbGUifHwoJC5icm93c2VyLm1zaWUmJiEob3B0aW9uc1swXS5hdHRyaWJ1dGVzWyd2YWx1ZSddLnNwZWNpZmllZCk/b3B0aW9uc1swXS50ZXh0Om9wdGlvbnNbMF0udmFsdWUpLmxlbmd0aD4wKTtjYXNlJ2lucHV0JzppZih0aGlzLmNoZWNrYWJsZShlbGVtZW50KSlyZXR1cm4gdGhpcy5nZXRMZW5ndGgodmFsdWUsZWxlbWVudCk+MDtkZWZhdWx0OnJldHVybiAkLnRyaW0odmFsdWUpLmxlbmd0aD4wO319LHJlbW90ZTpmdW5jdGlvbih2YWx1ZSxlbGVtZW50LHBhcmFtKXtpZih0aGlzLm9wdGlvbmFsKGVsZW1lbnQpKXJldHVybiJkZXBlbmRlbmN5LW1pc21hdGNoIjt2YXIgcHJldmlvdXM9dGhpcy5wcmV2aW91c1ZhbHVlKGVsZW1lbnQpO2lmKCF0aGlzLnNldHRpbmdzLm1lc3NhZ2VzW2VsZW1lbnQubmFtZV0pdGhpcy5zZXR0aW5ncy5tZXNzYWdlc1tlbGVtZW50Lm5hbWVdPXt9O3RoaXMuc2V0dGluZ3MubWVzc2FnZXNbZWxlbWVudC5uYW1lXS5yZW1vdGU9dHlwZW9mIHByZXZpb3VzLm1lc3NhZ2U9PSJmdW5jdGlvbiI/cHJldmlvdXMubWVzc2FnZSh2YWx1ZSk6cHJldmlvdXMubWVzc2FnZTtwYXJhbT10eXBlb2YgcGFyYW09PSJzdHJpbmciJiZ7dXJsOnBhcmFtfXx8cGFyYW07aWYocHJldmlvdXMub2xkIT09dmFsdWUpe3ByZXZpb3VzLm9sZD12YWx1ZTt2YXIgdmFsaWRhdG9yPXRoaXM7dGhpcy5zdGFydFJlcXVlc3QoZWxlbWVudCk7dmFyIGRhdGE9e307ZGF0YVtlbGVtZW50Lm5hbWVdPXZhbHVlOyQuYWpheCgkLmV4dGVuZCh0cnVlLHt1cmw6cGFyYW0sbW9kZToiYWJvcnQiLHBvcnQ6InZhbGlkYXRlIitlbGVtZW50Lm5hbWUsZGF0YVR5cGU6Impzb24iLGRhdGE6ZGF0YSxzdWNjZXNzOmZ1bmN0aW9uKHJlc3BvbnNlKXtpZihyZXNwb25zZSl7dmFyIHN1Ym1pdHRlZD12YWxpZGF0b3IuZm9ybVN1Ym1pdHRlZDt2YWxpZGF0b3IucHJlcGFyZUVsZW1lbnQoZWxlbWVudCk7dmFsaWRhdG9yLmZvcm1TdWJtaXR0ZWQ9c3VibWl0dGVkO3ZhbGlkYXRvci5zdWNjZXNzTGlzdC5wdXNoKGVsZW1lbnQpO3ZhbGlkYXRvci5zaG93RXJyb3JzKCk7fWVsc2V7dmFyIGVycm9ycz17fTtlcnJvcnNbZWxlbWVudC5uYW1lXT1yZXNwb25zZXx8dmFsaWRhdG9yLmRlZmF1bHRNZXNzYWdlKGVsZW1lbnQsInJlbW90ZSIpO3ZhbGlkYXRvci5zaG93RXJyb3JzKGVycm9ycyk7fXByZXZpb3VzLnZhbGlkPXJlc3BvbnNlO3ZhbGlkYXRvci5zdG9wUmVxdWVzdChlbGVtZW50LHJlc3BvbnNlKTt9fSxwYXJhbSkpO3JldHVybiJwZW5kaW5nIjt9ZWxzZSBpZih0aGlzLnBlbmRpbmdbZWxlbWVudC5uYW1lXSl7cmV0dXJuInBlbmRpbmciO31yZXR1cm4gcHJldmlvdXMudmFsaWQ7fSxtaW5sZW5ndGg6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fHRoaXMuZ2V0TGVuZ3RoKCQudHJpbSh2YWx1ZSksZWxlbWVudCk+PXBhcmFtO30sbWF4bGVuZ3RoOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHx0aGlzLmdldExlbmd0aCgkLnRyaW0odmFsdWUpLGVsZW1lbnQpPD1wYXJhbTt9LHJhbmdlbGVuZ3RoOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe3ZhciBsZW5ndGg9dGhpcy5nZXRMZW5ndGgoJC50cmltKHZhbHVlKSxlbGVtZW50KTtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8KGxlbmd0aD49cGFyYW1bMF0mJmxlbmd0aDw9cGFyYW1bMV0pO30sbWluOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHx2YWx1ZT49cGFyYW07fSxtYXg6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fHZhbHVlPD1wYXJhbTt9LHJhbmdlOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQscGFyYW0pe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwodmFsdWU+PXBhcmFtWzBdJiZ2YWx1ZTw9cGFyYW1bMV0pO30sZW1haWw6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCl7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fC9eKCgoW2Etel18XGR8WyEjXCQlJidcKlwrXC1cLz1cP1xeX2B7XHx9fl18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKyhcLihbYS16XXxcZHxbISNcJCUmJ1wqXCtcLVwvPVw/XF5fYHtcfH1+XXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkrKSopfCgoXHgyMikoKCgoXHgyMHxceDA5KSooXHgwZFx4MGEpKT8oXHgyMHxceDA5KSspPygoW1x4MDEtXHgwOFx4MGJceDBjXHgwZS1ceDFmXHg3Zl18XHgyMXxbXHgyMy1ceDViXXxbXHg1ZC1ceDdlXXxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KFxcKFtceDAxLVx4MDlceDBiXHgwY1x4MGQtXHg3Zl18W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKSkpKigoKFx4MjB8XHgwOSkqKFx4MGRceDBhKSk/KFx4MjB8XHgwOSkrKT8oXHgyMikpKUAoKChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKihbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKVwuKSsoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4/JC9pLnRlc3QodmFsdWUpO30sdXJsOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwvXihodHRwcz98ZnRwKTpcL1wvKCgoKFthLXpdfFxkfC18XC58X3x+fFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoJVtcZGEtZl17Mn0pfFshXCQmJ1woXClcKlwrLDs9XXw6KSpAKT8oKChcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pXC4oXGR8WzEtOV1cZHwxXGRcZHwyWzAtNF1cZHwyNVswLTVdKVwuKFxkfFsxLTldXGR8MVxkXGR8MlswLTRdXGR8MjVbMC01XSlcLihcZHxbMS05XVxkfDFcZFxkfDJbMC00XVxkfDI1WzAtNV0pKXwoKChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KChbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pKihbYS16XXxcZHxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkpKVwuKSsoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKXwoKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKShbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSkqKFthLXpdfFtcdTAwQTAtXHVEN0ZGXHVGOTAwLVx1RkRDRlx1RkRGMC1cdUZGRUZdKSkpXC4/KSg6XGQqKT8pKFwvKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDp8QCkrKFwvKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKSopKik/KT8oXD8oKChbYS16XXxcZHwtfFwufF98fnxbXHUwMEEwLVx1RDdGRlx1RjkwMC1cdUZEQ0ZcdUZERjAtXHVGRkVGXSl8KCVbXGRhLWZdezJ9KXxbIVwkJidcKFwpXCpcKyw7PV18OnxAKXxbXHVFMDAwLVx1RjhGRl18XC98XD8pKik/KFwjKCgoW2Etel18XGR8LXxcLnxffH58W1x1MDBBMC1cdUQ3RkZcdUY5MDAtXHVGRENGXHVGREYwLVx1RkZFRl0pfCglW1xkYS1mXXsyfSl8WyFcJCYnXChcKVwqXCssOz1dfDp8QCl8XC98XD8pKik/JC9pLnRlc3QodmFsdWUpO30sZGF0ZTpmdW5jdGlvbih2YWx1ZSxlbGVtZW50KXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8IS9JbnZhbGlkfE5hTi8udGVzdChuZXcgRGF0ZSh2YWx1ZSkpO30sZGF0ZUlTTzpmdW5jdGlvbih2YWx1ZSxlbGVtZW50KXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8L15cZHs0fVtcLy1dXGR7MSwyfVtcLy1dXGR7MSwyfSQvLnRlc3QodmFsdWUpO30sZGF0ZURFOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwvXlxkXGQ/XC5cZFxkP1wuXGRcZFxkP1xkPyQvLnRlc3QodmFsdWUpO30sbnVtYmVyOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwvXi0/KD86XGQrfFxkezEsM30oPzosXGR7M30pKykoPzpcLlxkKyk/JC8udGVzdCh2YWx1ZSk7fSxudW1iZXJERTpmdW5jdGlvbih2YWx1ZSxlbGVtZW50KXtyZXR1cm4gdGhpcy5vcHRpb25hbChlbGVtZW50KXx8L14tPyg/OlxkK3xcZHsxLDN9KD86XC5cZHszfSkrKSg/OixcZCspPyQvLnRlc3QodmFsdWUpO30sZGlnaXRzOmZ1bmN0aW9uKHZhbHVlLGVsZW1lbnQpe3JldHVybiB0aGlzLm9wdGlvbmFsKGVsZW1lbnQpfHwvXlxkKyQvLnRlc3QodmFsdWUpO30sY3JlZGl0Y2FyZDpmdW5jdGlvbih2YWx1ZSxlbGVtZW50KXtpZih0aGlzLm9wdGlvbmFsKGVsZW1lbnQpKXJldHVybiJkZXBlbmRlbmN5LW1pc21hdGNoIjtpZigvW14wLTktXSsvLnRlc3QodmFsdWUpKXJldHVybiBmYWxzZTt2YXIgbkNoZWNrPTAsbkRpZ2l0PTAsYkV2ZW49ZmFsc2U7dmFsdWU9dmFsdWUucmVwbGFjZSgvXEQvZywiIik7Zm9yKG49dmFsdWUubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBjRGlnaXQ9dmFsdWUuY2hhckF0KG4pO3ZhciBuRGlnaXQ9cGFyc2VJbnQoY0RpZ2l0LDEwKTtpZihiRXZlbil7aWYoKG5EaWdpdCo9Mik+OSluRGlnaXQtPTk7fW5DaGVjays9bkRpZ2l0O2JFdmVuPSFiRXZlbjt9cmV0dXJuKG5DaGVjayUxMCk9PTA7fSxhY2NlcHQ6ZnVuY3Rpb24odmFsdWUsZWxlbWVudCxwYXJhbSl7cGFyYW09dHlwZW9mIHBhcmFtPT0ic3RyaW5nIj9wYXJhbToicG5nfGpwZT9nfGdpZiI7cmV0dXJuIHRoaXMub3B0aW9uYWwoZWxlbWVudCl8fHZhbHVlLm1hdGNoKG5ldyBSZWdFeHAoIi4oIitwYXJhbSsiKSQiLCJpIikpO30sZXF1YWxUbzpmdW5jdGlvbih2YWx1ZSxlbGVtZW50LHBhcmFtKXtyZXR1cm4gdmFsdWU9PSQocGFyYW0pLnZhbCgpO319fSk7fSkoalF1ZXJ5KTs7KGZ1bmN0aW9uKCQpe3ZhciBhamF4PSQuYWpheDt2YXIgcGVuZGluZ1JlcXVlc3RzPXt9OyQuYWpheD1mdW5jdGlvbihzZXR0aW5ncyl7c2V0dGluZ3M9JC5leHRlbmQoc2V0dGluZ3MsJC5leHRlbmQoe30sJC5hamF4U2V0dGluZ3Msc2V0dGluZ3MpKTt2YXIgcG9ydD1zZXR0aW5ncy5wb3J0O2lmKHNldHRpbmdzLm1vZGU9PSJhYm9ydCIpe2lmKHBlbmRpbmdSZXF1ZXN0c1twb3J0XSl7cGVuZGluZ1JlcXVlc3RzW3BvcnRdLmFib3J0KCk7fXJldHVybihwZW5kaW5nUmVxdWVzdHNbcG9ydF09YWpheC5hcHBseSh0aGlzLGFyZ3VtZW50cykpO31yZXR1cm4gYWpheC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fTt9KShqUXVlcnkpOzsoZnVuY3Rpb24oJCl7JC5lYWNoKHtmb2N1czonZm9jdXNpbicsYmx1cjonZm9jdXNvdXQnfSxmdW5jdGlvbihvcmlnaW5hbCxmaXgpeyQuZXZlbnQuc3BlY2lhbFtmaXhdPXtzZXR1cDpmdW5jdGlvbigpe2lmKCQuYnJvd3Nlci5tc2llKXJldHVybiBmYWxzZTt0aGlzLmFkZEV2ZW50TGlzdGVuZXIob3JpZ2luYWwsJC5ldmVudC5zcGVjaWFsW2ZpeF0uaGFuZGxlcix0cnVlKTt9LHRlYXJkb3duOmZ1bmN0aW9uKCl7aWYoJC5icm93c2VyLm1zaWUpcmV0dXJuIGZhbHNlO3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihvcmlnaW5hbCwkLmV2ZW50LnNwZWNpYWxbZml4XS5oYW5kbGVyLHRydWUpO30saGFuZGxlcjpmdW5jdGlvbihlKXthcmd1bWVudHNbMF09JC5ldmVudC5maXgoZSk7YXJndW1lbnRzWzBdLnR5cGU9Zml4O3JldHVybiAkLmV2ZW50LmhhbmRsZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7fX07fSk7JC5leHRlbmQoJC5mbix7ZGVsZWdhdGU6ZnVuY3Rpb24odHlwZSxkZWxlZ2F0ZSxoYW5kbGVyKXtyZXR1cm4gdGhpcy5iaW5kKHR5cGUsZnVuY3Rpb24oZXZlbnQpe3ZhciB0YXJnZXQ9JChldmVudC50YXJnZXQpO2lmKHRhcmdldC5pcyhkZWxlZ2F0ZSkpe3JldHVybiBoYW5kbGVyLmFwcGx5KHRhcmdldCxhcmd1bWVudHMpO319KTt9LHRyaWdnZXJFdmVudDpmdW5jdGlvbih0eXBlLHRhcmdldCl7cmV0dXJuIHRoaXMudHJpZ2dlckhhbmRsZXIodHlwZSxbJC5ldmVudC5maXgoe3R5cGU6dHlwZSx0YXJnZXQ6dGFyZ2V0fSldKTt9fSl9KShqUXVlcnkpOwooZnVuY3Rpb24oKXt2YXIgJCQ7JCQ9alF1ZXJ5LmZuLmZsYXNoPWZ1bmN0aW9uKGh0bWxPcHRpb25zLHBsdWdpbk9wdGlvbnMscmVwbGFjZSx1cGRhdGUpe3ZhciBibG9jaz1yZXBsYWNlfHwkJC5yZXBsYWNlO3BsdWdpbk9wdGlvbnM9JCQuY29weSgkJC5wbHVnaW5PcHRpb25zLHBsdWdpbk9wdGlvbnMpO2lmKCEkJC5oYXNGbGFzaChwbHVnaW5PcHRpb25zLnZlcnNpb24pKXtpZihwbHVnaW5PcHRpb25zLmV4cHJlc3NJbnN0YWxsJiYkJC5oYXNGbGFzaCg2LDAsNjUpKXt2YXIgZXhwcmVzc0luc3RhbGxPcHRpb25zPXtmbGFzaHZhcnM6e01NcmVkaXJlY3RVUkw6bG9jYXRpb24sTU1wbGF5ZXJUeXBlOidQbHVnSW4nLE1NZG9jdGl0bGU6alF1ZXJ5KCd0aXRsZScpLnRleHQoKX19O31lbHNlIGlmKHBsdWdpbk9wdGlvbnMudXBkYXRlKXtibG9jaz11cGRhdGV8fCQkLnVwZGF0ZTt9ZWxzZXtyZXR1cm4gdGhpczt9fQpodG1sT3B0aW9ucz0kJC5jb3B5KCQkLmh0bWxPcHRpb25zLGV4cHJlc3NJbnN0YWxsT3B0aW9ucyxodG1sT3B0aW9ucyk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe2Jsb2NrLmNhbGwodGhpcywkJC5jb3B5KGh0bWxPcHRpb25zKSk7fSk7fTskJC5jb3B5PWZ1bmN0aW9uKCl7dmFyIG9wdGlvbnM9e30sZmxhc2h2YXJzPXt9O2Zvcih2YXIgaT0wO2k8YXJndW1lbnRzLmxlbmd0aDtpKyspe3ZhciBhcmc9YXJndW1lbnRzW2ldO2lmKGFyZz09dW5kZWZpbmVkKWNvbnRpbnVlO2pRdWVyeS5leHRlbmQob3B0aW9ucyxhcmcpO2lmKGFyZy5mbGFzaHZhcnM9PXVuZGVmaW5lZCljb250aW51ZTtqUXVlcnkuZXh0ZW5kKGZsYXNodmFycyxhcmcuZmxhc2h2YXJzKTt9Cm9wdGlvbnMuZmxhc2h2YXJzPWZsYXNodmFycztyZXR1cm4gb3B0aW9uczt9OyQkLmhhc0ZsYXNoPWZ1bmN0aW9uKCl7aWYoL2hhc0ZsYXNoXD10cnVlLy50ZXN0KGxvY2F0aW9uKSlyZXR1cm4gdHJ1ZTtpZigvaGFzRmxhc2hcPWZhbHNlLy50ZXN0KGxvY2F0aW9uKSlyZXR1cm4gZmFsc2U7dmFyIHB2PSQkLmhhc0ZsYXNoLnBsYXllclZlcnNpb24oKS5tYXRjaCgvXGQrL2cpO3ZhciBydj1TdHJpbmcoW2FyZ3VtZW50c1swXSxhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdXSkubWF0Y2goL1xkKy9nKXx8U3RyaW5nKCQkLnBsdWdpbk9wdGlvbnMudmVyc2lvbikubWF0Y2goL1xkKy9nKTtmb3IodmFyIGk9MDtpPDM7aSsrKXtwdltpXT1wYXJzZUludChwdltpXXx8MCk7cnZbaV09cGFyc2VJbnQocnZbaV18fDApO2lmKHB2W2ldPHJ2W2ldKXJldHVybiBmYWxzZTtpZihwdltpXT5ydltpXSlyZXR1cm4gdHJ1ZTt9CnJldHVybiB0cnVlO307JCQuaGFzRmxhc2gucGxheWVyVmVyc2lvbj1mdW5jdGlvbigpe3RyeXt0cnl7dmFyIGF4bz1uZXcgQWN0aXZlWE9iamVjdCgnU2hvY2t3YXZlRmxhc2guU2hvY2t3YXZlRmxhc2guNicpO3RyeXtheG8uQWxsb3dTY3JpcHRBY2Nlc3M9J2Fsd2F5cyc7fQpjYXRjaChlKXtyZXR1cm4nNiwwLDAnO319Y2F0Y2goZSl7fQpyZXR1cm4gbmV3IEFjdGl2ZVhPYmplY3QoJ1Nob2Nrd2F2ZUZsYXNoLlNob2Nrd2F2ZUZsYXNoJykuR2V0VmFyaWFibGUoJyR2ZXJzaW9uJykucmVwbGFjZSgvXEQrL2csJywnKS5tYXRjaCgvXiw/KC4rKSw/JC8pWzFdO31jYXRjaChlKXt0cnl7aWYobmF2aWdhdG9yLm1pbWVUeXBlc1siYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giXS5lbmFibGVkUGx1Z2luKXtyZXR1cm4obmF2aWdhdG9yLnBsdWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCAyLjAiXXx8bmF2aWdhdG9yLnBsdWdpbnNbIlNob2Nrd2F2ZSBGbGFzaCJdKS5kZXNjcmlwdGlvbi5yZXBsYWNlKC9cRCsvZywiLCIpLm1hdGNoKC9eLD8oLispLD8kLylbMV07fX1jYXRjaChlKXt9fQpyZXR1cm4nMCwwLDAnO307JCQuaHRtbE9wdGlvbnM9e2hlaWdodDoyNDAsZmxhc2h2YXJzOnt9LHBsdWdpbnNwYWdlOidodHRwOi8vd3d3LmFkb2JlLmNvbS9nby9nZXRmbGFzaHBsYXllcicsc3JjOicjJyx0eXBlOidhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCcsd2lkdGg6MzIwfTskJC5wbHVnaW5PcHRpb25zPXtleHByZXNzSW5zdGFsbDpmYWxzZSx1cGRhdGU6dHJ1ZSx2ZXJzaW9uOic2LjAuNjUnfTskJC5yZXBsYWNlPWZ1bmN0aW9uKGh0bWxPcHRpb25zKXt0aGlzLmlubmVySFRNTD0nPGRpdiBjbGFzcz0iYWx0Ij4nK3RoaXMuaW5uZXJIVE1MKyc8L2Rpdj4nO2pRdWVyeSh0aGlzKS5hZGRDbGFzcygnZmxhc2gtcmVwbGFjZWQnKS5wcmVwZW5kKCQkLnRyYW5zZm9ybShodG1sT3B0aW9ucykpO307JCQudXBkYXRlPWZ1bmN0aW9uKGh0bWxPcHRpb25zKXt2YXIgdXJsPVN0cmluZyhsb2NhdGlvbikuc3BsaXQoJz8nKTt1cmwuc3BsaWNlKDEsMCwnP2hhc0ZsYXNoPXRydWUmJyk7dXJsPXVybC5qb2luKCcnKTt2YXIgbXNnPSc8cD5UaGlzIGNvbnRlbnQgcmVxdWlyZXMgdGhlIEZsYXNoIFBsYXllci4gPGEgaHJlZj0iaHR0cDovL3d3dy5hZG9iZS5jb20vZ28vZ2V0Zmxhc2hwbGF5ZXIiPkRvd25sb2FkIEZsYXNoIFBsYXllcjwvYT4uIEFscmVhZHkgaGF2ZSBGbGFzaCBQbGF5ZXI/IDxhIGhyZWY9IicrdXJsKyciPkNsaWNrIGhlcmUuPC9hPjwvcD4nO3RoaXMuaW5uZXJIVE1MPSc8c3BhbiBjbGFzcz0iYWx0Ij4nK3RoaXMuaW5uZXJIVE1MKyc8L3NwYW4+JztqUXVlcnkodGhpcykuYWRkQ2xhc3MoJ2ZsYXNoLXVwZGF0ZScpLnByZXBlbmQobXNnKTt9O2Z1bmN0aW9uIHRvQXR0cmlidXRlU3RyaW5nKCl7dmFyIHM9Jyc7Zm9yKHZhciBrZXkgaW4gdGhpcykKaWYodHlwZW9mIHRoaXNba2V5XSE9J2Z1bmN0aW9uJylzKz1rZXkrJz0iJyt0aGlzW2tleV0rJyIgJztyZXR1cm4gczt9O2Z1bmN0aW9uIHRvRmxhc2h2YXJzU3RyaW5nKCl7dmFyIHM9Jyc7Zm9yKHZhciBrZXkgaW4gdGhpcykKaWYodHlwZW9mIHRoaXNba2V5XSE9J2Z1bmN0aW9uJylzKz1rZXkrJz0nK2VuY29kZVVSSUNvbXBvbmVudCh0aGlzW2tleV0pKycmJztyZXR1cm4gcy5yZXBsYWNlKC8mJC8sJycpO307JCQudHJhbnNmb3JtPWZ1bmN0aW9uKGh0bWxPcHRpb25zKXtodG1sT3B0aW9ucy50b1N0cmluZz10b0F0dHJpYnV0ZVN0cmluZztpZihodG1sT3B0aW9ucy5mbGFzaHZhcnMpaHRtbE9wdGlvbnMuZmxhc2h2YXJzLnRvU3RyaW5nPXRvRmxhc2h2YXJzU3RyaW5nO3JldHVybic8ZW1iZWQgJytTdHJpbmcoaHRtbE9wdGlvbnMpKycvPic7fTtpZih3aW5kb3cuYXR0YWNoRXZlbnQpe3dpbmRvdy5hdHRhY2hFdmVudCgib25iZWZvcmV1bmxvYWQiLGZ1bmN0aW9uKCl7X19mbGFzaF91bmxvYWRIYW5kbGVyPWZ1bmN0aW9uKCl7fTtfX2ZsYXNoX3NhdmVkVW5sb2FkSGFuZGxlcj1mdW5jdGlvbigpe307fSk7fX0pKCk7KGZ1bmN0aW9uKCQpeyQuZm4ubGlnaHRCb3g9ZnVuY3Rpb24oc2V0dGluZ3Mpe3NldHRpbmdzPWpRdWVyeS5leHRlbmQoe292ZXJsYXlCZ0NvbG9yOicjMDAwJyxvdmVybGF5T3BhY2l0eTowLjgsZml4ZWROYXZpZ2F0aW9uOmZhbHNlLGltYWdlTG9hZGluZzonU2NyaXB0cy9saWdodGJveC9pbWFnZXMvbGlnaHRib3gtaWNvLWxvYWRpbmcuZ2lmJyxpbWFnZUJ0blByZXY6J1NjcmlwdHMvbGlnaHRib3gvaW1hZ2VzL2xpZ2h0Ym94LWJ0bi1wcmV2LmdpZicsaW1hZ2VCdG5OZXh0OidTY3JpcHRzL2xpZ2h0Ym94L2ltYWdlcy9saWdodGJveC1idG4tbmV4dC5naWYnLGltYWdlQnRuQ2xvc2U6J1NjcmlwdHMvbGlnaHRib3gvaW1hZ2VzL2xpZ2h0Ym94LWJ0bi1jbG9zZS5naWYnLGltYWdlQmxhbms6J1NjcmlwdHMvbGlnaHRib3gvaW1hZ2VzL2xpZ2h0Ym94LWJsYW5rLmdpZicsY29udGFpbmVyQm9yZGVyU2l6ZToxMCxjb250YWluZXJSZXNpemVTcGVlZDo0MDAsdHh0SW1hZ2U6J0ltYWdlJyx0eHRPZjonb2YnLGtleVRvQ2xvc2U6J2MnLGtleVRvUHJldjoncCcsa2V5VG9OZXh0OiduJyxpbWFnZUFycmF5OltdLGFjdGl2ZUltYWdlOjB9LHNldHRpbmdzKTt2YXIgalF1ZXJ5TWF0Y2hlZE9iaj10aGlzO2Z1bmN0aW9uIF9pbml0aWFsaXplKCl7X3N0YXJ0KHRoaXMsalF1ZXJ5TWF0Y2hlZE9iaik7cmV0dXJuIGZhbHNlO30KZnVuY3Rpb24gX3N0YXJ0KG9iakNsaWNrZWQsalF1ZXJ5TWF0Y2hlZE9iail7JCgnLm1lYXN1cmVkTEFZT1VULCBlbWJlZCwgb2JqZWN0LCBzZWxlY3QnKS5jc3Moeyd2aXNpYmlsaXR5JzonaGlkZGVuJ30pO19zZXRfaW50ZXJmYWNlKCk7c2V0dGluZ3MuaW1hZ2VBcnJheS5sZW5ndGg9MDtzZXR0aW5ncy5hY3RpdmVJbWFnZT0wO2lmKGpRdWVyeU1hdGNoZWRPYmoubGVuZ3RoPT0xKXtzZXR0aW5ncy5pbWFnZUFycmF5LnB1c2gobmV3IEFycmF5KG9iakNsaWNrZWQuZ2V0QXR0cmlidXRlKCdocmVmJyksb2JqQ2xpY2tlZC5nZXRBdHRyaWJ1dGUoJ3RpdGxlJykpKTt9ZWxzZXtmb3IodmFyIGk9MDtpPGpRdWVyeU1hdGNoZWRPYmoubGVuZ3RoO2krKyl7c2V0dGluZ3MuaW1hZ2VBcnJheS5wdXNoKG5ldyBBcnJheShqUXVlcnlNYXRjaGVkT2JqW2ldLmdldEF0dHJpYnV0ZSgnaHJlZicpLGpRdWVyeU1hdGNoZWRPYmpbaV0uZ2V0QXR0cmlidXRlKCd0aXRsZScpKSk7fX0Kd2hpbGUoc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMF0hPW9iakNsaWNrZWQuZ2V0QXR0cmlidXRlKCdocmVmJykpe3NldHRpbmdzLmFjdGl2ZUltYWdlKys7fQpfc2V0X2ltYWdlX3RvX3ZpZXcoKTt9CmZ1bmN0aW9uIF9zZXRfaW50ZXJmYWNlKCl7JCgnYm9keScpLmFwcGVuZCgnPGRpdiBpZD0ianF1ZXJ5LW92ZXJsYXkiPjwvZGl2PjxkaXYgaWQ9ImpxdWVyeS1saWdodGJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlIj48aW1nIGlkPSJsaWdodGJveC1pbWFnZSI+PGRpdiBzdHlsZT0iIiBpZD0ibGlnaHRib3gtbmF2Ij48YSAgaWQ9ImxpZ2h0Ym94LW5hdi1idG5QcmV2Ij48L2E+PGEgIGlkPSJsaWdodGJveC1uYXYtYnRuTmV4dCI+PC9hPjwvZGl2PjxkaXYgaWQ9ImxpZ2h0Ym94LWxvYWRpbmciPjxhICBpZD0ibGlnaHRib3gtbG9hZGluZy1saW5rIj48aW1nIHNyYz0iJytzZXR0aW5ncy5pbWFnZUxvYWRpbmcrJyI+PC9hPjwvZGl2PjwvZGl2PjwvZGl2PjxkaXYgaWQ9ImxpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1kYXRhLWJveCI+PGRpdiBpZD0ibGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEiPjxkaXYgaWQ9ImxpZ2h0Ym94LWltYWdlLWRldGFpbHMiPjxzcGFuIGlkPSJsaWdodGJveC1pbWFnZS1kZXRhaWxzLWNhcHRpb24iPjwvc3Bhbj48c3BhbiBpZD0ibGlnaHRib3gtaW1hZ2UtZGV0YWlscy1jdXJyZW50TnVtYmVyIj48L3NwYW4+PC9kaXY+PGRpdiBpZD0ibGlnaHRib3gtc2VjTmF2Ij48YSAgaWQ9ImxpZ2h0Ym94LXNlY05hdi1idG5DbG9zZSI+PGltZyBzcmM9Iicrc2V0dGluZ3MuaW1hZ2VCdG5DbG9zZSsnIj48L2E+PC9kaXY+PC9kaXY+PC9kaXY+PC9kaXY+Jyk7dmFyIGFyclBhZ2VTaXplcz1fX19nZXRQYWdlU2l6ZSgpOyQoJyNqcXVlcnktb3ZlcmxheScpLmNzcyh7YmFja2dyb3VuZENvbG9yOnNldHRpbmdzLm92ZXJsYXlCZ0NvbG9yLG9wYWNpdHk6c2V0dGluZ3Mub3ZlcmxheU9wYWNpdHksd2lkdGg6YXJyUGFnZVNpemVzWzBdLGhlaWdodDphcnJQYWdlU2l6ZXNbMV19KS5mYWRlSW4oKTt2YXIgYXJyUGFnZVNjcm9sbD1fX19nZXRQYWdlU2Nyb2xsKCk7JCgnI2pxdWVyeS1saWdodGJveCcpLmNzcyh7dG9wOmFyclBhZ2VTY3JvbGxbMV0rKGFyclBhZ2VTaXplc1szXS8xMCksbGVmdDphcnJQYWdlU2Nyb2xsWzBdfSkuc2hvdygpOyQoJyNqcXVlcnktb3ZlcmxheSwjanF1ZXJ5LWxpZ2h0Ym94JykuY2xpY2soZnVuY3Rpb24oKXtfZmluaXNoKCk7fSk7JCgnI2xpZ2h0Ym94LWxvYWRpbmctbGluaywjbGlnaHRib3gtc2VjTmF2LWJ0bkNsb3NlJykuY2xpY2soZnVuY3Rpb24oKXtfZmluaXNoKCk7cmV0dXJuIGZhbHNlO30pOyQod2luZG93KS5yZXNpemUoZnVuY3Rpb24oKXt2YXIgYXJyUGFnZVNpemVzPV9fX2dldFBhZ2VTaXplKCk7JCgnI2pxdWVyeS1vdmVybGF5JykuY3NzKHt3aWR0aDphcnJQYWdlU2l6ZXNbMF0saGVpZ2h0OmFyclBhZ2VTaXplc1sxXX0pO3ZhciBhcnJQYWdlU2Nyb2xsPV9fX2dldFBhZ2VTY3JvbGwoKTskKCcjanF1ZXJ5LWxpZ2h0Ym94JykuY3NzKHt0b3A6YXJyUGFnZVNjcm9sbFsxXSsoYXJyUGFnZVNpemVzWzNdLzEwKSxsZWZ0OmFyclBhZ2VTY3JvbGxbMF19KTt9KTt9CmZ1bmN0aW9uIF9zZXRfaW1hZ2VfdG9fdmlldygpeyQoJyNsaWdodGJveC1sb2FkaW5nJykuc2hvdygpO2lmKHNldHRpbmdzLmZpeGVkTmF2aWdhdGlvbil7JCgnI2xpZ2h0Ym94LWltYWdlLCNsaWdodGJveC1jb250YWluZXItaW1hZ2UtZGF0YS1ib3gsI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY3VycmVudE51bWJlcicpLmhpZGUoKTt9ZWxzZXskKCcjbGlnaHRib3gtaW1hZ2UsI2xpZ2h0Ym94LW5hdiwjbGlnaHRib3gtbmF2LWJ0blByZXYsI2xpZ2h0Ym94LW5hdi1idG5OZXh0LCNsaWdodGJveC1jb250YWluZXItaW1hZ2UtZGF0YS1ib3gsI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY3VycmVudE51bWJlcicpLmhpZGUoKTt9CnZhciBvYmpJbWFnZVByZWxvYWRlcj1uZXcgSW1hZ2UoKTtvYmpJbWFnZVByZWxvYWRlci5vbmxvYWQ9ZnVuY3Rpb24oKXskKCcjbGlnaHRib3gtaW1hZ2UnKS5hdHRyKCdzcmMnLHNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2VdWzBdKTtfcmVzaXplX2NvbnRhaW5lcl9pbWFnZV9ib3gob2JqSW1hZ2VQcmVsb2FkZXIud2lkdGgsb2JqSW1hZ2VQcmVsb2FkZXIuaGVpZ2h0KTtvYmpJbWFnZVByZWxvYWRlci5vbmxvYWQ9ZnVuY3Rpb24oKXt9O307b2JqSW1hZ2VQcmVsb2FkZXIuc3JjPXNldHRpbmdzLmltYWdlQXJyYXlbc2V0dGluZ3MuYWN0aXZlSW1hZ2VdWzBdO307ZnVuY3Rpb24gX3Jlc2l6ZV9jb250YWluZXJfaW1hZ2VfYm94KGludEltYWdlV2lkdGgsaW50SW1hZ2VIZWlnaHQpe3ZhciBpbnRDdXJyZW50V2lkdGg9JCgnI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1ib3gnKS53aWR0aCgpO3ZhciBpbnRDdXJyZW50SGVpZ2h0PSQoJyNsaWdodGJveC1jb250YWluZXItaW1hZ2UtYm94JykuaGVpZ2h0KCk7dmFyIGludFdpZHRoPShpbnRJbWFnZVdpZHRoKyhzZXR0aW5ncy5jb250YWluZXJCb3JkZXJTaXplKjIpKTt2YXIgaW50SGVpZ2h0PShpbnRJbWFnZUhlaWdodCsoc2V0dGluZ3MuY29udGFpbmVyQm9yZGVyU2l6ZSoyKSk7dmFyIGludERpZmZXPWludEN1cnJlbnRXaWR0aC1pbnRXaWR0aDt2YXIgaW50RGlmZkg9aW50Q3VycmVudEhlaWdodC1pbnRIZWlnaHQ7JCgnI2xpZ2h0Ym94LWNvbnRhaW5lci1pbWFnZS1ib3gnKS5hbmltYXRlKHt3aWR0aDppbnRXaWR0aCxoZWlnaHQ6aW50SGVpZ2h0fSxzZXR0aW5ncy5jb250YWluZXJSZXNpemVTcGVlZCxmdW5jdGlvbigpe19zaG93X2ltYWdlKCk7fSk7aWYoKGludERpZmZXPT0wKSYmKGludERpZmZIPT0wKSl7aWYoJC5icm93c2VyLm1zaWUpe19fX3BhdXNlKDI1MCk7fWVsc2V7X19fcGF1c2UoMTAwKTt9fQokKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94JykuY3NzKHt3aWR0aDppbnRJbWFnZVdpZHRofSk7JCgnI2xpZ2h0Ym94LW5hdi1idG5QcmV2LCNsaWdodGJveC1uYXYtYnRuTmV4dCcpLmNzcyh7aGVpZ2h0OmludEltYWdlSGVpZ2h0KyhzZXR0aW5ncy5jb250YWluZXJCb3JkZXJTaXplKjIpfSk7fTtmdW5jdGlvbiBfc2hvd19pbWFnZSgpeyQoJyNsaWdodGJveC1sb2FkaW5nJykuaGlkZSgpOyQoJyNsaWdodGJveC1pbWFnZScpLmZhZGVJbihmdW5jdGlvbigpe19zaG93X2ltYWdlX2RhdGEoKTtfc2V0X25hdmlnYXRpb24oKTt9KTtfcHJlbG9hZF9uZWlnaGJvcl9pbWFnZXMoKTt9O2Z1bmN0aW9uIF9zaG93X2ltYWdlX2RhdGEoKXskKCcjbGlnaHRib3gtY29udGFpbmVyLWltYWdlLWRhdGEtYm94Jykuc2xpZGVEb3duKCdmYXN0Jyk7JCgnI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbicpLmhpZGUoKTtpZihzZXR0aW5ncy5pbWFnZUFycmF5W3NldHRpbmdzLmFjdGl2ZUltYWdlXVsxXSl7JCgnI2xpZ2h0Ym94LWltYWdlLWRldGFpbHMtY2FwdGlvbicpLmh0bWwoc2V0dGluZ3MuaW1hZ2VBcnJheVtzZXR0aW5ncy5hY3RpdmVJbWFnZV1bMV0pLnNob3coKTt9CmlmKHNldHRpbmdzLmltYWdlQXJyYXkubGVuZ3RoPjEpeyQoJyNsaWdodGJveC1pbWFnZS1kZXRhaWxzLWN1cnJlbnROdW1iZXInKS5odG1sKHNldHRpbmdzLnR4dEltYWdlKycgJysoc2V0dGluZ3MuYWN0aXZlSW1hZ2UrMSkrJyAnK3NldHRpbmdzLnR4dE9mKycgJytzZXR0aW5ncy5pbWFnZUFycmF5Lmxlbmd0aCkuc2hvdygpO319CmZ1bmN0aW9uIF9zZXRfbmF2aWdhdGlvbigpeyQoJyNsaWdodGJveC1uYXYnKS5zaG93KCk7JCgnI2xpZ2h0Ym94LW5hdi1idG5QcmV2LCNsaWdodGJveC1uYXYtYnRuTmV4dCcpLmNzcyh7J2JhY2tncm91bmQnOid0cmFuc3BhcmVudCB1cmwoJytzZXR0aW5ncy5pbWFnZUJsYW5rKycpIG5vLXJlcGVhdCd9KTtpZihzZXR0aW5ncy5hY3RpdmVJbWFnZSE9MCl7aWYoc2V0dGluZ3MuZml4ZWROYXZpZ2F0aW9uKXskKCcjbGlnaHRib3gtbmF2LWJ0blByZXYnKS5jc3MoeydiYWNrZ3JvdW5kJzondXJsKCcrc2V0dGluZ3MuaW1hZ2VCdG5QcmV2KycpIGxlZnQgMTUlIG5vLXJlcGVhdCd9KS51bmJpbmQoKS5iaW5kKCdjbGljaycsZnVuY3Rpb24oKXtzZXR0aW5ncy5hY3RpdmVJbWFnZT1zZXR0aW5ncy5hY3RpdmVJbWFnZS0xO19zZXRfaW1hZ2VfdG9fdmlldygpO3JldHVybiBmYWxzZTt9KTt9ZWxzZXskKCcjbGlnaHRib3gtbmF2LWJ0blByZXYnKS51bmJpbmQoKS5ob3ZlcihmdW5jdGlvbigpeyQodGhpcykuY3NzKHsnYmFja2dyb3VuZCc6J3VybCgnK3NldHRpbmdzLmltYWdlQnRuUHJldisnKSBsZWZ0IDE1JSBuby1yZXBlYXQnfSk7fSxmdW5jdGlvbigpeyQodGhpcykuY3NzKHsnYmFja2dyb3VuZCc6J3RyYW5zcGFyZW50IHVybCgnK3NldHRpbmdzLmltYWdlQmxhbmsrJykgbm8tcmVwZWF0J30pO30pLnNob3coKS5iaW5kKCdjbGljaycsZnVuY3Rpb24oKXtzZXR0aW5ncy5hY3RpdmVJbWFnZT1zZXR0aW5ncy5hY3RpdmVJbWFnZS0xO19zZXRfaW1hZ2VfdG9fdmlldygpO3JldHVybiBmYWxzZTt9KTt9fQppZihzZXR0aW5ncy5hY3RpdmVJbWFnZSE9KHNldHRpbmdzLmltYWdlQXJyYXkubGVuZ3RoLTEpKXtpZihzZXR0aW5ncy5maXhlZE5hdmlnYXRpb24peyQoJyNsaWdodGJveC1uYXYtYnRuTmV4dCcpLmNzcyh7J2JhY2tncm91bmQnOid1cmwoJytzZXR0aW5ncy5pbWFnZUJ0bk5leHQrJykgcmlnaHQgMTUlIG5vLXJlcGVhdCd9KS51bmJpbmQoKS5iaW5kKCdjbGljaycsZnVuY3Rpb24oKXtzZXR0aW5ncy5hY3RpdmVJbWFnZT1zZXR0aW5ncy5hY3RpdmVJbWFnZSsxO19zZXRfaW1hZ2VfdG9fdmlldygpO3JldHVybiBmYWxzZTt9KTt9ZWxzZXskKCcjbGlnaHRib3gtbmF2LWJ0bk5leHQnKS51bmJpbmQoKS5ob3ZlcihmdW5jdGlvbigpeyQodGhpcykuY3NzKHsnYmFja2dyb3VuZCc6J3VybCgnK3NldHRpbmdzLmltYWdlQnRuTmV4dCsnKSByaWdodCAxNSUgbm8tcmVwZWF0J30pO30sZnVuY3Rpb24oKXskKHRoaXMpLmNzcyh7J2JhY2tncm91bmQnOid0cmFuc3BhcmVudCB1cmwoJytzZXR0aW5ncy5pbWFnZUJsYW5rKycpIG5vLXJlcGVhdCd9KTt9KS5zaG93KCkuYmluZCgnY2xpY2snLGZ1bmN0aW9uKCl7c2V0dGluZ3MuYWN0aXZlSW1hZ2U9c2V0dGluZ3MuYWN0aXZlSW1hZ2UrMTtfc2V0X2ltYWdlX3RvX3ZpZXcoKTtyZXR1cm4gZmFsc2U7fSk7fX0KX2VuYWJsZV9rZXlib2FyZF9uYXZpZ2F0aW9uKCk7fQpmdW5jdGlvbiBfZW5hYmxlX2tleWJvYXJkX25hdmlnYXRpb24oKXskKGRvY3VtZW50KS5rZXlkb3duKGZ1bmN0aW9uKG9iakV2ZW50KXtfa2V5Ym9hcmRfYWN0aW9uKG9iakV2ZW50KTt9KTt9CmZ1bmN0aW9uIF9kaXNhYmxlX2tleWJvYXJkX25hdmlnYXRpb24oKXskKGRvY3VtZW50KS51bmJpbmQoKTt9CmZ1bmN0aW9uIF9rZXlib2FyZF9hY3Rpb24ob2JqRXZlbnQpe2lmKG9iakV2ZW50PT1udWxsKXtrZXljb2RlPWV2ZW50LmtleUNvZGU7ZXNjYXBlS2V5PTI3O31lbHNle2tleWNvZGU9b2JqRXZlbnQua2V5Q29kZTtlc2NhcGVLZXk9b2JqRXZlbnQuRE9NX1ZLX0VTQ0FQRTt9CmtleT1TdHJpbmcuZnJvbUNoYXJDb2RlKGtleWNvZGUpLnRvTG93ZXJDYXNlKCk7aWYoKGtleT09c2V0dGluZ3Mua2V5VG9DbG9zZSl8fChrZXk9PSd4Jyl8fChrZXljb2RlPT1lc2NhcGVLZXkpKXtfZmluaXNoKCk7fQppZigoa2V5PT1zZXR0aW5ncy5rZXlUb1ByZXYpfHwoa2V5Y29kZT09MzcpKXtpZihzZXR0aW5ncy5hY3RpdmVJbWFnZSE9MCl7c2V0dGluZ3MuYWN0aXZlSW1hZ2U9c2V0dGluZ3MuYWN0aXZlSW1hZ2UtMTtfc2V0X2ltYWdlX3RvX3ZpZXcoKTtfZGlzYWJsZV9rZXlib2FyZF9uYXZpZ2F0aW9uKCk7fX0KaWYoKGtleT09c2V0dGluZ3Mua2V5VG9OZXh0KXx8KGtleWNvZGU9PTM5KSl7aWYoc2V0dGluZ3MuYWN0aXZlSW1hZ2UhPShzZXR0aW5ncy5pbWFnZUFycmF5Lmxlbmd0aC0xKSl7c2V0dGluZ3MuYWN0aXZlSW1hZ2U9c2V0dGluZ3MuYWN0aXZlSW1hZ2UrMTtfc2V0X2ltYWdlX3RvX3ZpZXcoKTtfZGlzYWJsZV9rZXlib2FyZF9uYXZpZ2F0aW9uKCk7fX19CmZ1bmN0aW9uIF9wcmVsb2FkX25laWdoYm9yX2ltYWdlcygpe2lmKChzZXR0aW5ncy5pbWFnZUFycmF5Lmxlbmd0aC0xKT5zZXR0aW5ncy5hY3RpdmVJbWFnZSl7b2JqTmV4dD1uZXcgSW1hZ2UoKTtvYmpOZXh0LnNyYz1zZXR0aW5ncy5pbWFnZUFycmF5W3NldHRpbmdzLmFjdGl2ZUltYWdlKzFdWzBdO30KaWYoc2V0dGluZ3MuYWN0aXZlSW1hZ2U+MCl7b2JqUHJldj1uZXcgSW1hZ2UoKTtvYmpQcmV2LnNyYz1zZXR0aW5ncy5pbWFnZUFycmF5W3NldHRpbmdzLmFjdGl2ZUltYWdlLTFdWzBdO319CmZ1bmN0aW9uIF9maW5pc2goKXskKCcjanF1ZXJ5LWxpZ2h0Ym94JykucmVtb3ZlKCk7JCgnI2pxdWVyeS1vdmVybGF5JykuZmFkZU91dChmdW5jdGlvbigpeyQoJyNqcXVlcnktb3ZlcmxheScpLnJlbW92ZSgpO30pOyQoJy5tZWFzdXJlZExBWU9VVCwgZW1iZWQsIG9iamVjdCwgc2VsZWN0JykuY3NzKHsndmlzaWJpbGl0eSc6J3Zpc2libGUnfSk7fQpmdW5jdGlvbiBfX19nZXRQYWdlU2l6ZSgpe3ZhciB4U2Nyb2xsLHlTY3JvbGw7aWYod2luZG93LmlubmVySGVpZ2h0JiZ3aW5kb3cuc2Nyb2xsTWF4WSl7eFNjcm9sbD13aW5kb3cuaW5uZXJXaWR0aCt3aW5kb3cuc2Nyb2xsTWF4WDt5U2Nyb2xsPXdpbmRvdy5pbm5lckhlaWdodCt3aW5kb3cuc2Nyb2xsTWF4WTt9ZWxzZSBpZihkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdodD5kb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodCl7eFNjcm9sbD1kb2N1bWVudC5ib2R5LnNjcm9sbFdpZHRoO3lTY3JvbGw9ZG9jdW1lbnQuYm9keS5zY3JvbGxIZWlnaHQ7fWVsc2V7eFNjcm9sbD1kb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoO3lTY3JvbGw9ZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7fQp2YXIgd2luZG93V2lkdGgsd2luZG93SGVpZ2h0O2lmKHNlbGYuaW5uZXJIZWlnaHQpe2lmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRXaWR0aCl7d2luZG93V2lkdGg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO31lbHNle3dpbmRvd1dpZHRoPXNlbGYuaW5uZXJXaWR0aDt9CndpbmRvd0hlaWdodD1zZWxmLmlubmVySGVpZ2h0O31lbHNlIGlmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudEhlaWdodCl7d2luZG93V2lkdGg9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO3dpbmRvd0hlaWdodD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O31lbHNlIGlmKGRvY3VtZW50LmJvZHkpe3dpbmRvd1dpZHRoPWRvY3VtZW50LmJvZHkuY2xpZW50V2lkdGg7d2luZG93SGVpZ2h0PWRvY3VtZW50LmJvZHkuY2xpZW50SGVpZ2h0O30KaWYoeVNjcm9sbDx3aW5kb3dIZWlnaHQpe3BhZ2VIZWlnaHQ9d2luZG93SGVpZ2h0O31lbHNle3BhZ2VIZWlnaHQ9eVNjcm9sbDt9CmlmKHhTY3JvbGw8d2luZG93V2lkdGgpe3BhZ2VXaWR0aD14U2Nyb2xsO31lbHNle3BhZ2VXaWR0aD13aW5kb3dXaWR0aDt9CmFycmF5UGFnZVNpemU9bmV3IEFycmF5KHBhZ2VXaWR0aCxwYWdlSGVpZ2h0LHdpbmRvd1dpZHRoLHdpbmRvd0hlaWdodCk7cmV0dXJuIGFycmF5UGFnZVNpemU7fTtmdW5jdGlvbiBfX19nZXRQYWdlU2Nyb2xsKCl7dmFyIHhTY3JvbGwseVNjcm9sbDtpZihzZWxmLnBhZ2VZT2Zmc2V0KXt5U2Nyb2xsPXNlbGYucGFnZVlPZmZzZXQ7eFNjcm9sbD1zZWxmLnBhZ2VYT2Zmc2V0O31lbHNlIGlmKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCl7eVNjcm9sbD1kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO3hTY3JvbGw9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbExlZnQ7fWVsc2UgaWYoZG9jdW1lbnQuYm9keSl7eVNjcm9sbD1kb2N1bWVudC5ib2R5LnNjcm9sbFRvcDt4U2Nyb2xsPWRvY3VtZW50LmJvZHkuc2Nyb2xsTGVmdDt9CmFycmF5UGFnZVNjcm9sbD1uZXcgQXJyYXkoeFNjcm9sbCx5U2Nyb2xsKTtyZXR1cm4gYXJyYXlQYWdlU2Nyb2xsO307ZnVuY3Rpb24gX19fcGF1c2UobXMpe3ZhciBkYXRlPW5ldyBEYXRlKCk7Y3VyRGF0ZT1udWxsO2Rve3ZhciBjdXJEYXRlPW5ldyBEYXRlKCk7fQp3aGlsZShjdXJEYXRlLWRhdGU8bXMpO307cmV0dXJuIHRoaXMudW5iaW5kKCdjbGljaycpLmNsaWNrKF9pbml0aWFsaXplKTt9O30pKGpRdWVyeSk7CmpRdWVyeS52YWxpZGF0b3IuYWRkTWV0aG9kKCAgICAgICAgICJ2aW5VUyIsICAgICAgICAgZnVuY3Rpb24odil7ICAgICAgICAgICAgICAgICBpZiAodi5sZW5ndGggIT0gMTcpICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgICAgICAgIHZhciBpLCBuLCBkLCBmLCBjZCwgY2R2OyAgICAgICAgICAgICAgICAgdmFyIExMICAgID0gWyJBIiwiQiIsIkMiLCJEIiwiRSIsIkYiLCJHIiwiSCIsIkoiLCJLIiwiTCIsIk0iLCJOIiwiUCIsIlIiLCJTIiwiVCIsIlUiLCJWIiwiVyIsIlgiLCJZIiwiWiJdOyAgICAgICAgICAgICAgICAgdmFyIFZMICAgID0gWzEsMiwzLDQsNSw2LDcsOCwxLDIsMyw0LDUsNyw5LDIsMyw0LDUsNiw3LDgsOV07ICAgICAgICAgICAgICAgICB2YXIgRkwgICAgPSBbOCw3LDYsNSw0LDMsMiwxMCwwLDksOCw3LDYsNSw0LDMsMl07ICAgICAgICAgICAgICAgICB2YXIgcnMgICAgPSAwOyAgICAgICAgICAgICAgICAgZm9yKGkgPSAwOyBpIDwgMTc7IGkrKyl7ICAgICAgICAgICAgICAgICAgICAgZiA9IEZMW2ldOyAgICAgICAgICAgICAgICAgICAgIGQgPSB2LnNsaWNlKGksaSsxKTsgICAgICAgICAgICAgICAgICAgICBpZihpID09IDgpeyAgICAgICAgICAgICAgICAgICAgICAgICBjZHYgPSBkOyAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICBpZighaXNOYU4oZCkpeyAgICAgICAgICAgICAgICAgICAgICAgICBkICo9IGY7ICAgICAgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAgIGVsc2V7ICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihuID0gMDsgbiA8IExMLmxlbmd0aDsgbisrKXsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGQudG9VcHBlckNhc2UoKSA9PT0gTExbbl0peyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQgPSBWTFtuXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkICo9IGY7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaXNOYU4oY2R2KSAmJiBuID09IDgpeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZHYgPSBMTFtuXTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgcnMgKz0gZDsgICAgICAgICAgICAgICAgIH0gICAgICAgICAgICAgICAgIGNkID0gcnMgJSAxMTsgICAgICAgICAgICAgICAgIGlmKGNkID09IDEwKXtjZCA9ICJYIjt9ICAgICAgICAgICAgICAgICBpZihjZCA9PSBjZHYpe3JldHVybiB0cnVlO30gICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsgICAgICAgICAgfSwgICAgICAgICAiVGhlIHNwZWNpZmllZCB2ZWhpY2xlIGlkZW50aWZpY2F0aW9uIG51bWJlciAoVklOKSBpcyBpbnZhbGlkLiIgKTsgCgoKCg==]]></data>
	</file>
	<file>
	  <filename>/index.html</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[]]></data>
	</file>
	<file>
	  <filename>/lang/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/lang/en_US.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKLy8kdXJsZXh0PSc/Jy5DTVNfU0VDVVJFX1BBUkFNX05BTUUuJz0nLiRfU0VTU0lPTltDTVNfVVNFUl9LRVldOwovLwkJCQkkaGVscExpbmsgPQkiPHRkPjxhIGhyZWY9XCJsaXN0bW9kdWxlcy5waHAiLiR1cmxleHQuIiZhbXA7YWN0aW9uPXNob3dtb2R1bGVoZWxwJmFtcDttb2R1bGU9UGF5UGFsQnV0dG9uTWFrZXImbTFfYWN0aXZlX3RhYj1vcHRpb25zXCI+Ii5sYW5nKCdoZWxwJykuIjwvYT48L3RkPiI7Ci8vaWYoaXNzZXQoJF9HRVRbJ2FjdGlvbiddKSl7Ci8vaWYoJF9HRVRbJ2FjdGlvbiddPT0nc2hvd21vZHVsZWhlbHAnKXsKLy9nbG9iYWwgJGdDbXM7Ci8vJHBwYm09JiRnQ21zLT5tb2R1bGVzWydQYXlQYWxCdXR0b25NYWtlciddWydvYmplY3QnXTsKLy8kRVg9JHBwYm0tPlByb2Nlc3NUZW1wbGF0ZSgic2FtcGxlLnRwbCIpOwovL31lbHNlewovLyRFWD0nJzsJCi8vfQovL31lbHNlewovLyRFWD0nJzsJCi8vfQoKJGxhbmdbJ2ZyaWVuZGx5bmFtZSddID0gJ1BheVBhbEJ1dHRvbk1ha2VyJzsKJGxhbmdbJ3Bvc3RpbnN0YWxsJ10gPSAnVGhlIGZpcnN0IHN0b3AgeW91XCdsbCB3YW50IHRvIG1ha2UgaXMgJzsvLy4kaGVscExpbms7CiRsYW5nWydwb3N0dW5pbnN0YWxsJ10gPSAnUGxlYXNlIGZlZWwgZnJlZSB0byBsZXQgdXMga25vdyBpZiB0aGVyZSBpcyBhIHdheSB0byBtYWtlIFBheVBhbCBCdXR0b24gTWFrZXIgYmV0dGVyLCA8YSBocmVmPSJodHRwOi8vaGVscC5jb3JiZW5zcHJvZHVjdHMuY29tL21ha2UtY29udGFjdC5odG1sIj5Db250YWN0IHVzIHdlXCdlciBoYXBweSB0byBoZWFyIGZyb20geW91LjwvYT4nOwokbGFuZ1sncmVhbGx5X3VuaW5zdGFsbCddID0gJ1VuaW5zdGFsbGluZyB0aGlzIG1vZHVsZSB3aWxsIG5vdCBhZmZlY3QgYW55IGV2ZW50IGRhdGEgYW5kIGFsbCBib29rcyB0byBkYXRlIHdpbGwgc3RpbGwgYmUgdGhlcmUuIERvIHlvdSB3aXNoIHRvIGNvbnRpbnVlPyc7CiRsYW5nWyd1bmluc3RhbGxlZCddID0gJ01vZHVsZSBVbmluc3RhbGxlZC4nOwokbGFuZ1snaW5zdGFsbGVkJ10gPSAnTW9kdWxlIHZlcnNpb24gJXMgaW5zdGFsbGVkLic7CiRsYW5nWyd1cGdyYWRlZCddID0gJ01vZHVsZSB1cGdyYWRlZCB0byB2ZXJzaW9uICVzLic7CgovLy9BZG1pbgokbGFuZ1snQUNUb3B0aW9ucyddID0gJ0FjY291bnQgT3B0aW9ucyc7CiRsYW5nWydCVE5vcHRpb25zJ10gPSAnQnV0dG9uIERlZmF1bHRzJzsKCgoKCiRsYW5nWydCdG5fbGlzdCddID0gJ0J1dHRvbnMnOwokbGFuZ1sncHJvbXB0X25ld0J0biddID0gJ0FkZCBOZXcgQnV0dG9uJzsKJGxhbmdbJ3RpdGxlX2F2YWlsYWJsZV90ZW1wbGF0ZXMnXSA9ICdCdXR0b25zIExpc3QnOwokbGFuZ1snYXJleW91c3VyZSddID0gJ0ltcG9ydGFudDpcblxuSWYgdGhpcyBpcyBkZWxldGVkIGFsbCBpbmZvcm1hdGlvbiB3aWxsIGJlIGxvc3QhXG4nOwoKCgovLy9BY3Rpb25zCiRsYW5nWydlZGl0J10gPSAnRWRpdCc7CiRsYW5nWydkZWxldGUnXSA9ICdEZWxldGUnOwoKCi8vL21lc3NhZ2VzCiRsYW5nWydDYW5jZWxlZCddID0gJ1lvdSBDYW5jZWxlZCBvdXQgb2YgdGhlIG9wZXJhdGlvbi4gIEFueSBXb3JrIHlvdSBtYXkgaGF2ZSBlbnRlcmVkIGhhcyBiZWVuIGxvc3QuJzsKJGxhbmdbJ05vQml6J10gPSAnPGgxIHN0eWxlPSJjb2xvcjpyZWQ7Ij5Zb3UgaGF2ZSBub3QgYWRkZWQgYW4gYWNjb3VudCwgZG8gc28gaW4gdGhlIEFjY291bnQgT3B0aW9ucyB0YWIgb2YgUGF5UGFsQnV0dG9uTWFrZXIgaW4gdGhlIGFkbWluPC9oMT4nOwokbGFuZ1snTm9CdXR0b24nXSA9ICc8aDE+VGhlIHdyb25nIG9yIG5vbmUgZXhpc3RpbmcgYnV0dG9uIHdhcyB1c2VkLiAgUGxlYXNlIGNoZWNrIHRoZSBhZG1pbiBzZXR0aW5ncy48L2gxPic7CiRsYW5nWydCdG5BRERFRCddID0gJ1lvdSBKdXN0IEFkZGVkIGEgbmV3IFBheVBhbCBCdXR0b24nOwokbGFuZ1snQnRuRURJVEVEJ10gPSAnWW91IEp1c3QgRWRpdGVkIGFuIGV4aXN0aW5nIFBheVBhbCBCdXR0b24nOwokbGFuZ1snQnRuREVMRVRFRCddID0gJ1lvdSBKdXN0IERlbGV0ZWQgYW4gZXhpc3RpbmcgUGF5UGFsIEJ1dHRvbic7CgoKCiRsYW5nWydhZGRyZXNzMSddID0gJzxoMT5TdHJlZXQgKDEgb2YgMiBmaWVsZHMpPC9oMT4nOwokbGFuZ1snYWRkcmVzczInXSA9ICc8aDE+U3RyZWV0ICgyIG9mIDIgZmllbGRzKTwvaDE+JzsKJGxhbmdbJ2NpdHknXSA9ICc8aDE+Q2l0eTwvaDE+JzsKJGxhbmdbJ2NvdW50cnknXSA9ICc8aDE+U2V0cyBzaGlwcGluZyBhbmQgYmlsbGluZyBjb3VudHJ5LjwvaDE+JzsKJGxhbmdbJ2VtYWlsJ10gPSAnPGgxPkVtYWlsIGFkZHJlc3M8L2gxPic7CiRsYW5nWydmaXJzdF9uYW1lJ10gPSAnPGgxPkZpcnN0IG5hbWU8L2gxPic7CiRsYW5nWydsYXN0X25hbWUnXSA9ICc8aDE+TGFzdCBuYW1lPC9oMT4nOwokbGFuZ1snY2hhcnNldCddID0gJzxoMT5TZXRzIGNoYXJhY3RlciBlbmNvZGluZzwvaDE+PGgzPkZvciB0aGUgYmlsbGluZyBpbmZvcm1hdGlvbi9sb2ctaW4gcGFnZSwgZm9yIHRoZSBpbmZvcm1hdGlvbiB5b3Ugc2VuZCB0byBQYXlQYWwsIGFuZCBmb3IgdGhlIGluZm9ybWF0aW9uIHRoYXQgUGF5UGFsIHJldHVybnMgdG8geW91IGFzIGEgcmVzdWx0IG9mIGNoZWNrb3V0IHByb2Nlc3Nlcy4gVGhlIGRlZmF1bHQgaXMgYmFzZWQgb24gdGhlIGNoYXJhY3RlciBlbmNvZGluZyBzZXR0aW5ncyBpbiB5b3VyIGFjY291bnQgcHJvZmlsZS4gPC9oMz4nOwokbGFuZ1snbmlnaHRfcGhvbmVfYSddID0gJzxoMT5UaGUgYXJlYSBjb2RlIGZvciBVLlMuIHBob25lIG51bWJlcnM8L2gxPjxoMz5vciB0aGUgY291bnRyeSBjb2RlIGZvciBwaG9uZSBudW1iZXJzIG91dHNpZGUgdGhlIFUuUy4gVGhpcyB3aWxsIHByZXBvcHVsYXRlIHRoZSBwYXllclwncyBob21lIHBob25lIG51bWJlcjwvaDM+JzsKJGxhbmdbJ25pZ2h0X3Bob25lX2InXSA9ICc8aDE+VGhlIHRocmVlLWRpZ2l0IHByZWZpeCBmb3IgVS5TLiBwaG9uZSBudW1iZXJzPC9oMT48aDM+b3IgdGhlIGVudGlyZSBwaG9uZSBudW1iZXIgZm9yIHBob25lIG51bWJlcnMgb3V0c2lkZSB0aGUgVS5TLiwgZXhjbHVkaW5nIGNvdW50cnkgY29kZS4gVGhpcyB3aWxsIHByZXBvcHVsYXRlIHRoZSBwYXllcpJzIGhvbWUgcGhvbmUgbnVtYmVyLgo8L2gzPic7CiRsYW5nWyduaWdodF9waG9uZV9jJ10gPSAnPGgxPlRoZSBmb3VyLWRpZ2l0IHBob25lIG51bWJlciBmb3IgVS5TLiBwaG9uZSBudW1iZXJzPC9oMT48aDM+IFRoaXMgd2lsbCBwcmVwb3B1bGF0ZSB0aGUgcGF5ZXKScyBob21lIHBob25lIG51bWJlci4KPC9oMz4nOwokbGFuZ1snc3RhdGUnXSA9ICc8aDE+U3RhdGU7IHVzZSBPZmZpY2lhbCBVLlMuIFBvc3RhbCBTZXJ2aWNlIEFiYnJldmlhdGlvbnMuPC9oMT4nOwokbGFuZ1snemlwJ10gPSAnPGgxPlBvc3RhbCBjb2RlPC9oMT4nOwoKCgoKJGxhbmdbJ2tleSddID0gJzxoMT5hZGQgdGhlIGtleSBpZiB5ZXM8L2gxPic7CiRsYW5nWydpbnRlcm5hbCddID0gJzxoMT5IaWRlIGV2ZXJ5dGhpbmcgYnkgcHJvY2Vzc2luZyB0aGUgZm9ybSBpbnRlcm5hbGx5PC9oMT4nOwokbGFuZ1snU2FuZEJveCddID0gJzxoMT5UcnVlIHRoZSBzYW5kYm94IG9uIG9yIG9mZiBmb3IgYWxsIGJ1dHRvbnMgZ2xvYmFsIDwvaDE+JzsKCiRsYW5nWydGb3JtVmFsdWUnXSA9ICc8aDE+UGljayBzb21ldGhpbmcgcmFuZG9tPC9oMT4nOwokbGFuZ1snRm9ybUtleSddID0gJzxoMT5QaWNrIHNvbWV0aGluZyByYW5kb208L2gxPic7CiRsYW5nWydMYW5nJ10gPSAnPGgxPkNob29zZSB5b3VyIGRlZmF1bHQgTGFuZ3VhZ2U8L2gxPic7CgokbGFuZ1snaGFuZGxpbmcnXSA9ICc8aDE+SGFuZGxpbmcgY2hhcmdlcy48L2gxPjxoMz4gVGhpcyBpcyBub3QgcXVhbnRpdHktc3BlY2lmaWMuIFRoZSBzYW1lIGhhbmRsaW5nIGNvc3QgYXBwbGllcywgcmVnYXJkbGVzcyBvZiB0aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIHRoZSBvcmRlci48L2gzPiAnOwokbGFuZ1snY3VzdG9tJ10gPSAnPGgxPlBhc3N0aHJvdWdoIHZhcmlhYmxlIG5ldmVyIHByZXNlbnRlZCB0byB0aGUgcGF5ZXIuPC9oMT48aDM+VXNlIHRvIHBhc3MgdGhyb3VnaCBwYXJhbWV0ZXJzPC9oMz4nOwokbGFuZ1snY3MnXSA9ICc8aDE+VGhlIGJhY2tncm91bmQgY29sb3Igb2YgdGhlIGNoZWNrb3V0IHBhZ2UuPC9oMT4KPGg0Pjx1bD4KPGxpPmJhY2tncm91bmQgY29sb3IgaXMgd2hpdGU8L2xpPgo8bGk+YmFja2dyb3VuZCBjb2xvciBpcyBibGFjazwvbGk+CjwvdWw+PC9oND4nOwoKCiRsYW5nWydybSddID0gJzxoMT5GT1JNIE1FVEhPRCA8L2gxPjxoMz50byBzZW5kIGRhdGEgb24gcGF5bWVudCBjb21wbGV0aW9uLjwvaDM+CjxoND48dWw+CjxsaT4kX0dFVCBGdWxsLSBBbGwgdHJhbnNhY3Rpb25zIHVzZSBHRVQgbWV0aG9kPC9saT4KPGxpPiRfR0VUIG9uZSB3YXktIFBheWVyIGlzIHJlZGlyZWN0ZWQgdG8gdGhlIHJldHVybiBVUkwgYnkgR0VUIG1ldGhvZC4gVmFyaWFibGVzIGFyZSBzZW50PC9saT4KPGxpPiRfUE9TVCBGdWxsLSBQYXllciBpcyByZWRpcmVjdGVkIHRvIHRoZSByZXR1cm4gVVJMIGJ5IFBPU1QgbWV0aG9kLiBBbGwgdmFyaWFibGVzIGFyZSBwb3N0ZWQ8L2xpPgo8L3VsPjwvaDQ+JzsKCgoKJGxhbmdbJ2FkZHJlc3Nfb3ZlcnJpZGUnXSA9ICc8aDE+QWRkcmVzcyBzcGVjaWZpZWQgaW4gcHJlcG9wdWxhdGlvbjwvaDE+PGgzPlZhcmlhYmxlcyBvdmVycmlkZXMgdGhlIFBheVBhbCBtZW1iZXKScyBzdG9yZWQgYWRkcmVzcy4gVGhlIHBheWVyIGlzIHNob3duIHRoZSBwYXNzZWQtaW4gYWRkcmVzcyBidXQgY2Fubm90IGVkaXQgaXQuIE5vIGFkZHJlc3MgaXMgc2hvd24gaWYgdGhlIGFkZHJlc3MgaXMgbm90IHZhbGlkLCBzdWNoIGFzIG1pc3NpbmcgcmVxdWlyZWQgZmllbGRzIGxpa2UgY291bnRyeSwgb3IgaXMgbm90IGluY2x1ZGVkIGF0IGFsbC48L2gzPic7CgokbGFuZ1snaXRlbV9uYW1lJ10gPSAnPGgzPkRlc2NyaXB0aW9uIG9mIGl0ZW0uIElmIG9taXR0ZWQsIHBheWVycyBlbnRlciB0aGVpciBvd24gbmFtZSBhdCB0aGUgdGltZSBvZiBwYXltZW50LjwvaDM+CjxoND48dWw+CjxsaT4tIE9wdGlvbmFsIGZvciBCdXkgTm93LCBEb25hdGUsIFN1YnNjcmliZSBhbmQgQWRkIHRvIENhcnQgYnV0dG9uczwvbGk+CjxsaT4tIE5vdCB1c2VkIHdpdGggQnV5IEdpZnQgQ2VydGlmaWNhdGUgYnV0dG9uczwvbGk+CjwvdWw+PC9oND4nOwoKJGxhbmdbJ2l0ZW1fbnVtYmVyJ10gPSAnPGgzPlBhc3MtdGhyb3VnaCB2YXJpYWJsZSBmb3IgeW91IHRvIHRyYWNrIHByb2R1Y3Qgb3Igc2VydmljZSBwdXJjaGFzZWQgb3IgdGhlIGNvbnRyaWJ1dGlvbiBtYWRlLiBUaGUgdmFsdWUgeW91IHNwZWNpZnkgcGFzc2VkIGJhY2sgdG8geW91IHVwb24gcGF5bWVudCBjb21wbGV0aW9uLjwvaDM+JzsKCiRsYW5nWydxdWFudGl0eSddID0gJzxoMz5OdW1iZXIgb2YgaXRlbXMuPC9oMz4gPGg0PklmIHByb2ZpbGUtYmFzZWQgc2hpcHBpbmcgcmF0ZXMgYXJlIGNvbmZpZ3VyZWQgd2l0aCBhIGJhc2lzIG9mIHF1YW50aXR5LCAKdGhlIHN1bSBvZiBxdWFudGl0eSB2YWx1ZXMgaXMgdXNlZCB0byBjYWxjdWxhdGUgdGhlIHNoaXBwaW5nIGNoYXJnZXMgZm9yIHRoZSB0cmFuc2FjdGlvbi4gClBheVBhbCBhcHBlbmRzIGEgc2VxdWVuY2UgbnVtYmVyIHRvIHVuaXF1ZWx5IGlkZW50aWZ5IHRoZSBpdGVtIGluIHRoZSBQYXlQYWwgU2hvcHBpbmcgQ2FydCAoZS5nLiwgcXVhbnRpdHkxLCBxdWFudGl0eTIpLgoKPGVtPjxzdHJvbmc+Tm90ZTo8L3N0cm9uZz4gVGhlIHZhbHVlIGZvciBxdWFudGl0eSBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlci4gTnVsbCwgemVybywgb3IgbmVnYXRpdmUgbnVtYmVycyBhcmUgbm90IGFsbG93ZWQuPC9lbT4KPC9oND4nOwoKJGxhbmdbJ2NwcF9oZWFkZXJfaW1hZ2UnXSA9ICc8aDM+VGhlIGltYWdlIGF0IHRoZSB0b3AgbGVmdCBvZiB0aGUgY2hlY2tvdXQgcGFnZS48L2gzPjxoND4gVGhlIGltYWdlXCdzIG1heGltdW0gc2l6ZSBpcyA3NTAgcGl4ZWxzIHdpZGUgYnkgOTAgcGl4ZWxzIGhpZ2guIApQYXlQYWwgcmVjb21tZW5kcyB0aGF0IHlvdSBwcm92aWRlIGFuIGltYWdlIHRoYXQgaXMgc3RvcmVkIG9ubHkgb24gYSBzZWN1cmUgKGh0dHBzKSBzZXJ2ZXIuPC9oND4KJzsKCgokbGFuZ1snY3BwX2hlYWRlcmJvcmRlcl9jb2xvciddID0gJzxoMz5TZXRzIHRoZSBib3JkZXIgY29sb3IgYXJvdW5kIHRoZSBoZWFkZXIgb2YgdGhlIHBheW1lbnQgcGFnZS48L2gzPgo8aDQ+VGhlIGJvcmRlciBpcyBhIHR3by1waXhlbCBwZXJpbWV0ZXIgYXJvdW5kIHRoZSBoZWFkZXIgc3BhY2UsIHdoaWNoIGhhcyBhIG1heGltdW0gc2l6ZSBvZiA3NTAgcGl4ZWxzIHdpZGUgYnkgOTAgcGl4ZWxzIGhpZ2guIApWYWxpZCB2YWx1ZSBpcyBjYXNlLWluc2Vuc2l0aXZlIHNpeC1jaGFyYWN0ZXIgSFRNTCBoZXhhZGVjaW1hbCBjb2xvciBjb2RlIGluIEFTQ0lJLjwvaDQ+ICc7CiRsYW5nWydjdXJyZW5jeV9jb2RlJ10gPSAnPGgxPkRlZmluZXMgdGhlIGN1cnJlbmN5IGluIHdoaWNoIHRoZSBtb25ldGFyeSB2YXJpYWJsZXM8L2gxPgo8aDM+KGFtb3VudCwgc2hpcHBpbmcsIHNoaXBwaW5nMiwgaGFuZGxpbmcsIHRheCkgYXJlIGRlbm90ZWQuIFBvc3NpYmxlIHZhbHVlcyBhcmUgIlVTRCIsICJFVVIiLCAiR0JQIiwgIkNBRCIsICJKUFkiLjwvaDM+JzsKCgokbGFuZ1snY3BwX2hlYWRlcmJhY2tfY29sb3InXSA9ICc8aDM+VGhlIGJhY2tncm91bmQgY29sb3IgZm9yIHRoZSBoZWFkZXIgb2YgdGhlIGNoZWNrb3V0IHBhZ2UuPC9oMz4KPGg0PlZhbGlkIHZhbHVlIGlzIGNhc2UtaW5zZW5zaXRpdmUgc2l4LWNoYXJhY3RlciBIVE1MIGhleGFkZWNpbWFsIGNvbG9yIGNvZGUgaW4gQVNDSUkuPC9oND4KJzsKCiRsYW5nWydjcHBfcGF5Zmxvd19jb2xvciddID0gJzxoMz5UaGUgYmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGNoZWNrb3V0IHBhZ2UgYmVsb3cgdGhlIGhlYWRlci48L2gzPiA8aDQ+VmFsaWQgdmFsdWUgaXMgY2FzZS1pbnNlbnNpdGl2ZSBzaXgtY2hhcmFjdGVyIEhUTUwgaGV4YWRlY2ltYWwgY29sb3IgY29kZSBpbiBBU0NJSS4KCjxlbT5Ob3RlOiBCYWNrZ3JvdW5kIGNvbG9ycyB0aGF0IGNvbmZsaWN0IHdpdGggUGF5UGFsknMgZXJyb3IgbWVzc2FnZXMgYXJlIG5vdCBhbGxvd2VkOyBpbiB0aGVzZSBjYXNlcywgdGhlIGRlZmF1bHQgY29sb3IgaXMgd2hpdGUuPC9lbT48L2g0PgonOwoKCiRsYW5nWydSZWRpcmVjdFVSTCddID0gJzxoMz5UaGUgVVJMIHRvIHdoaWNoIHRoZSBwYXllclwncyBicm93c2VyIGlzIHJlZGlyZWN0ZWQgYWZ0ZXIgY29tcGxldGluZyB0aGUgcGF5bWVudDwvaDM+IDxoND5Gb3IgZXhhbXBsZSwgYSBVUkwgb24geW91ciBzaXRlIHRoYXQgZGlzcGxheXMgYSAiVGhhbmsgeW91IGZvciB5b3VyIHBheW1lbnQiIHBhZ2UgaWUgd2hlcmUgJFVwZ3JhZGVNRVNTIG1heSBnby4gCjxici8+CjxlbT5EZWZhdWx0IC0gVGhlIGJyb3dzZXIgaXMgcmVkaXJlY3RlZCB0byBhIFBheVBhbCB3ZWIgcGFnZS48L2VtPjwvaDQ+Cic7CgoKJGxhbmdbJ2ltYWdlX3VybCddID0gJzxoMz5UaGUgVVJMIG9mIHRoZSAxNTB4NTAtcGl4ZWwgaW1hZ2UgZGlzcGxheWVkIGFzIHlvdXIgbG9nbyBpbiB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIFBheVBhbCBjaGVja291dCBwYWdlcy4KCjxlbT5EZWZhdWx0IC0gWW91ciBidXNpbmVzcyBuYW1lLCBpZiB5b3UgaGF2ZSBhIEJ1c2luZXNzIGFjY291bnQsIG9yIHlvdXIgZW1haWwgYWRkcmVzcywgaWYgeW91IGhhdmUgUHJlbWllciBvciBQZXJzb25hbCBhY2NvdW50LjwvZW0+CjwvaDM+JzsKCgoKJGxhbmdbJ25vX3NoaXBwaW5nJ10gPSAnPGgxPkRvIG5vdCBwcm9tcHQgcGF5ZXJzIGZvciBzaGlwcGluZyBhZGRyZXNzLjwvaDE+CjxoMz5BbGxvd2FibGUgdmFsdWVzOjwvaDM+CjxoND4KPHVsPgo8bGk+LSBwcm9tcHQgZm9yIGFuIGFkZHJlc3MsIGFuZCByZXF1aXJlIG9uZTwvbGk+CjxsaT4tIGRvIG5vdCBwcm9tcHQgZm9yIGFuIGFkZHJlc3M8L2xpPgo8bGk+LSBwcm9tcHQgZm9yIGFuIGFkZHJlc3MsIGJ1dCBkbyBub3QgcmVxdWlyZSBvbmU8L2xpPgo8L3VsPgo8L2g0PgonOwokbGFuZ1snY2J0J10gPSAnPGgzPlNldHMgdGhlIHRleHQgZm9yIHRoZSBSZXR1cm4gdG8gTWVyY2hhbnQgYnV0dG9uIG9uIHRoZSBQYXlQYWwgUGF5bWVudCBDb21wbGV0ZSBwYWdlLiBGb3IgQnVzaW5lc3MgYWNjb3VudHMsIHRoZSByZXR1cm4gYnV0dG9uIGRpc3BsYXlzIHlvdXIgYnVzaW5lc3MgbmFtZSBpbiBwbGFjZSBvZiB0aGUgd29yZCAiTWVyY2hhbnQiIGJ5IGRlZmF1bHQuIEZvciBEb25hdGUgYnV0dG9ucywgdGhlIHRleHQgcmVhZHMgIlJldHVybiB0byBkb25hdGlvbnMgY29vcmRpbmF0b3IiIGJ5IGRlZmF1bHQuIAoKPGVtPk5vdGU6IFRoZSBSZWRpcmVjdCBVUkwgbXVzdCBhbHNvIGJlIHNldDwvZW0+PC9oMz4nOwokbGFuZ1snbm90aWZ5X3VybCddID0gJzxoMT5UaGUgVVJMIHRvIHdoaWNoIFBheVBhbCBwb3N0cyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdHJhbnNhY3Rpb24sPC9oMT48aDM+IGluIHRoZSBmb3JtIG9mIEluc3RhbnQgUGF5bWVudCBOb3RpZmljYXRpb24gbWVzc2FnZXMuIAo8L2gzPic7CgokbGFuZ1snc21hcnR5T24nXSA9ICc8aDE+UHJvY2VzcyBTbWFydHkgZGF0YTwvaDE+CjxoMz5XaXRoIHRoaXMgdHVybmVkIG9uIHlvdSBjYW4gc2V0IHRoZSBidXR0b24gZmllbGRzIHdpdGggdGhlIHZhbHVlcyBwYXNzZWQgYnkgb3RoZXIgbW9kdWxlcyBzdWNoIGFzIFByb2R1Y3RzIG9yIENhdGFsb2dlcjwvaDM+JzsKCgoKCgokbGFuZ1snY2FuY2VsX3JldHVybiddID0gJzxoMz5BIFVSTCB0byB3aGljaCB0aGUgcGF5ZXJcJ3MgYnJvd3NlciBpcyByZWRpcmVjdGVkIGlmIHBheW1lbnQgaXMgY2FuY2VsbGVkOyBmb3IgZXhhbXBsZSwgYSBVUkwgb24geW91ciB3ZWJzaXRlIHRoYXQgZGlzcGxheXMgYSAiUGF5bWVudCBDYW5jZWxlZCIgcGFnZS4KRGVmYXVsdCAtIFRoZSBicm93c2VyIGlzIHJlZGlyZWN0ZWQgdG8gYSBQYXlQYWwgd2ViIHBhZ2UKPC9oMz4nOwoKCiRsYW5nWydCdXR0b25JbWcnXSA9ICc8aDM+VGhlIGltYWdlIHlvdSB3aXNoIHRvIHVzZSBhcyB0aGUgYnV0dG9uLjwvaDM+JzsKCgokbGFuZ1snVXBncmFkZU1FU1MnXSA9ICc8aDM+VGhpcyBpcyB0aGUgbWVzc2FnZSB0aGF0IGlzIG91dHB1dCBvbiB0aGUgcmV0dXJuIGZyb20gUGF5UGFsLiAgPGVtPk5vdGU6IHNldHRpbmcgYW4gYWN0aW9uIHdpbGwgcmVxdWlyZSB0aGlzIHRvIGJlIGNhbGxlZCB0byBkaXNwbGF5LjwvZW0+PC9oMz4nOwoKJGxhbmdbJ1RoZVBhcmFtcyddID0gJzxoMz5UaGlzIGlzIHdoZXJlIHBhcmFtcyBjYW4gYmUgcGFzc2VkIHRvIHRoZSBUaGVBY3Rpb24uIFRoaXMgd291bGQgYmUgZm9yIGEgVURUIGFuZCBzdWNoLjwvaDM+JzsKCiRsYW5nWydUaGVBY3Rpb24nXSA9ICc8aDM+V2hhdCB0byBkbyBhZnRlciB0aGUgdHJhbnNhY3Rpb248L2gzPgo8aDQ+Q2FsbCBhIFVEVCBhbmQgc3VjaC48L2g0Pic7CgokbGFuZ1snc2hpcHBpbmcnXSA9ICc8aDM+VGhlIGNvc3Qgb2Ygc2hpcHBpbmcgdGhpcyBpdGVtLjwvaDM+IDxoND5JZiB5b3UgZGVmaW5lIHNoaXBwaW5nIGFuZCBzaGlwcGluZzIgaXMgbm90LCB0aGlzIGZsYXQgYW1vdW50IGlzIGNoYXJnZWQgcmVnYXJkbGVzcyBvZiB0aGUgcXVhbnRpdHkgb2YgaXRlbXMuIDxici8+CkRlZmF1bHQgLSBJZiBwcm9maWxlLWJhc2VkIHNoaXBwaW5nIHJhdGVzIGFyZSBjb25maWd1cmVkLCBidXllcnMgYXJlIGNoYXJnZWQgYW4gYW1vdW50IGFjY29yZGluZyB0byB0aGUgc2hpcHBpbmcgbWV0aG9kcyB0aGV5IGNob29zZS48YnIvPgpGb3IgQnV5IE5vdyBhbmQgQWRkIHRvIENhcnQgYnV0dG9ucy48YnIvPgo8L2g0Pic7CgokbGFuZ1sndGF4J10gPSAnPGgzPlRyYW5zYWN0aW9uLWJhc2VkIGZsYXQgdGF4IG92ZXJyaWRlLjwvaDM+IDxoND5TZXQgdGhpcyB0byBhIGZsYXQgdGF4IGFtb3VudCB0byBhcHBseSB0byB0aGUgdHJhbnNhY3Rpb24gcmVnYXJkbGVzcyBvZiB0aGUgYnV5ZXJcJ3MgbG9jYXRpb24uClRoaXMgdmFsdWUgb3ZlcnJpZGVzIGFueSB0YXggc2V0dGluZ3Mgc2V0IGluIHlvdXIgYWNjb3VudCBwcm9maWxlLiBWYWxpZCBvbmx5IGZvciBCdXkgTm93IGFuZCBBZGQgdG8gQ2FydCBidXR0b25zLjxici8+PGVtPkRlZmF1bHQgLSBQcm9maWxlIHRheCBzZXR0aW5ncywgaWYgYW55LCBhcHBseS48L2VtPgo8L2g0Pic7CiRsYW5nWyd0YXhfcmF0ZSddID0gJzxoMz5UcmFuc2FjdGlvbi1iYXNlZCB0YXggcGVyY2VudGFnZSBvdmVycmlkZS48L2gzPiA8aDQ+U2V0IHRoaXMgdG8gYSBwZXJjZW50YWdlIHRoYXQgd2lsbCBiZSBhcHBsaWVkIHRvIGFtb3VudCBtdWx0aXBsaWVkIHRoZSBxdWFudGl0eSBzZWxlY3RlZCBkdXJpbmcgY2hlY2tvdXQuClRoaXMgdmFsdWUgb3ZlcnJpZGVzIGFueSB0YXggc2V0dGluZ3Mgc2V0IGluIHlvdXIgYWNjb3VudCBwcm9maWxlLiBBbGxvd2FibGUgdmFsdWVzIGFyZSBudW1iZXJzIDAuMDAxIHRocm91Z2ggMTAwLiBWYWxpZCBvbmx5IGZvciBCdXkgTm93IGFuZCBBZGQgdG8gQ2FydCBidXR0b25zLjxici8+CjxlbT5EZWZhdWx0IC0gUHJvZmlsZSB0YXggc2V0dGluZ3MsIGlmIGFueSwgYXBwbHkuPC9lbT4gCjwvaDQ+JzsKJGxhbmdbJ3VuZGVmaW5lZF9xdWFudGl0eSddID0gJzxoMz5BbGxvdyBidXllcnMgdG8gc3BlY2lmeSB0aGUgcXVhbnRpdHkuPC9oMz4KPGg0Pjx1bD4KPGxpPi1PcHRpb25hbCBmb3IgQnV5IE5vdyBidXR0b25zPC9saT4KPGxpPi1Ob3QgdXNlZCB3aXRoIG90aGVyIGJ1dHRvbnM8L2xpPgo8L3VsPjwvaDQ+JzsKCiRsYW5nWyd3ZWlnaHQnXSA9ICc8aDM+V2VpZ2h0IG9mIGl0ZW1zLjwvaDM+IDxoND5JZiBwcm9maWxlLWJhc2VkIHNoaXBwaW5nIHJhdGVzIGFyZSBjb25maWd1cmVkIHdpdGggYSBiYXNpcyBvZiB3ZWlnaHQsIHRoZSBzdW0gb2Ygd2VpZ2h0IHZhbHVlcyBpcyB1c2VkIHRvIGNhbGN1bGF0ZSB0aGUgc2hpcHBpbmcgY2hhcmdlcyBmb3IgdGhlIHRyYW5zYWN0aW9uLiAKPC9oND4nOwoKJGxhbmdbJ3dlaWdodF91bml0J10gPSAnPGgzPlRoZSB1bml0IG9mIG1lYXN1cmUgaWYgd2VpZ2h0IGlzIHNwZWNpZmllZC48L2gzPgo8aDQ+QWxsb3dhYmxlIHZhbHVlczo8YnIvPgo8dWw+CjxsaT4tbGJzPC9saT4KPGxpPi1rZ3M8L2xpPgo8L3VsPgo8ZW0+VGhlIGRlZmF1bHRzIGlzIGxicy48L2VtPgo8YnIvPgo8L2g0Pic7CgoKCiRsYW5nWyd0YXhfY2FydCddID0gJzxoMz5DYXJ0LXdpZGUgdGF4PC9oMz48aDQ+b3ZlcnJpZGluZyBhbnkgaW5kaXZpZHVhbCBpdGVtIHRheF8geCB2YWx1ZTwvaDQ+JzsKCiRsYW5nWyd3ZWlnaHRfY2FydCddID0gJzxoMz5JZiBwcm9maWxlLWJhc2VkIHNoaXBwaW5nIHJhdGVzIGFyZSBjb25maWd1cmVkIHdpdGggYSBiYXNpcyBvZiB3ZWlnaHQsIFBheVBhbCB1c2VzIHRoaXMgdmFsdWUgdG8gY2FsY3VsYXRlIHRoZSBzaGlwcGluZyBjaGFyZ2VzIGZvciB0aGUgdHJhbnNhY3Rpb24uIFRoaXMgdmFsdWUgb3ZlcnJpZGVzIHRoZSB3ZWlnaHQgdmFsdWVzIG9mIGluZGl2aWR1YWwgaXRlbXMuPC9oMz4nOwoKCiRsYW5nWydpbnZvaWNlJ109JzxoMz5QYXNzdGhyb3VnaCB2YXJpYWJsZSB5b3UgY2FuIHVzZSB0byBpZGVudGlmeSB5b3VyIGludm9pY2UgbnVtYmVyIGZvciB0aGlzIHB1cmNoYXNlLiA8YnIvPgo8c3Ryb25nPjxlbT5EZWZhdWx0IC0gTm8gdmFyaWFibGUgaXMgcGFzc2VkIGJhY2sgdG8geW91LjwvZW0+PC9zdHJvbmc+PC9oMz4KJzsKCiRsYW5nWydCdG5UeXBlJ109JzxzdHJvbmc+IEJ1eSBOb3cgYnV0dG9uPC9zdHJvbmc+CiBUaGUgcGVyc29uIGNsaWNrZWQgd2FzIGEgQnV5IE5vdyBidXR0b24uIDxici8+CiA8YnIvPgo8c3Ryb25nPiBkb25hdGlvbnM8L3N0cm9uZz4KIFRoZSBwZXJzb24gY2xpY2tlZCB3YXMgYSBEb25hdGUgYnV0dG9uLjxici8+CiA8YnIvPgo8c3Ryb25nPiBzdWJzY3JpcHRpb25zPC9zdHJvbmc+CiBUaGUgcGVyc29uIGNsaWNrZWQgd2FzIGEgU3Vic2NyaWJlIGJ1dHRvbi48YnIvPgogPGJyLz4KPHN0cm9uZz4gZ2lmdC1jZXJ0aWZpY2F0ZTwvc3Ryb25nPgogVGhlIHBlcnNvbiBjbGlja2VkIHdhcyBhIEJ1eSBHaWZ0IENlcnRpZmljYXRlIGJ1dHRvbi48YnIvPgonOyAKCiRsYW5nWydhbW91bnQnXT0nPGg0PlRoZSBwcmljZSBvciBhbW91bnQgb2YgdGhlIHByb2R1Y3QsIHNlcnZpY2UsIG9yIGNvbnRyaWJ1dGlvbiwgbm90IGluY2x1ZGluZyBzaGlwcGluZywgaGFuZGxpbmcsIG9yIHRheC4gSWYgb21pdHRlZCBmcm9tIEJ1eSBOb3cgb3IgRG9uYXRlIGJ1dHRvbnMsIHBheWVycyBlbnRlciB0aGVpciBvd24gYW1vdW50IGF0IHRoZSB0aW1lIG9mIHBheW1lbnQuPC9oND4KPHVsPgo8bGk+LVJlcXVpcmVkIGZvciBBZGQgdG8gQ2FydCBidXR0b25zPC9saT4KPGxpPi1PcHRpb25hbCBmb3IgQnV5IE5vdyBhbmQgRG9uYXRlIGJ1dHRvbnM8L2xpPgo8bGk+LU5vdCB1c2VkIHdpdGggU3Vic2NyaWJlIG9yIEJ1eSBHaWZ0IENlcnRpZmljYXRlIGJ1dHRvbnM8L2xpPgo8L3VsPgonOwoKJGxhbmdbJ2ExJ109IjxoMz5UcmlhbCBwZXJpb2QgMSBwcmljZS4gRm9yIGEgZnJlZSB0cmlhbCBwZXJpb2QsIHNwZWNpZnkgMC48L2gzPiI7CiRsYW5nWydwMSddPSI8aDM+VHJpYWwgcGVyaW9kIDEgZHVyYXRpb24uPC9oMz4gPGg0PlJlcXVpcmVkIGlmIHlvdSBzcGVjaWZ5IFRyaWFsIHBlcmlvZCAxIHByaWNlLiBTcGVjaWZ5IGFuIGludGVnZXIgdmFsdWUgaW4gdGhlIGFsbG93YWJsZSByYW5nZSBmb3IgdGhlIHVuaXRzIG9mIGR1cmF0aW9uIHRoYXQgeW91IHNwZWNpZnkgd2l0aCBUcmlhbCBwZXJpb2QgMSB1bml0cy48L2g0PiI7CiRsYW5nWyd0MSddPSI8aDM+VHJpYWwgcGVyaW9kIDEgdW5pdHMgb2YgZHVyYXRpb24uPC9oMz48aDQ+UmVxdWlyZWQgaWYgeW91IHNwZWNpZnkgVHJpYWwgcGVyaW9kIDEgcHJpY2UuIEFsbG93YWJsZSB2YWx1ZXM8L2g0Pgo8dWw+CjxsaT48c3Ryb25nPkQ8L3N0cm9uZz4gLSBmb3IgZGF5czsgYWxsb3dhYmxlIHJhbmdlIGZvciBwMSBpcyAxIHRvIDkwPC9saT4KPGxpPjxzdHJvbmc+Vzwvc3Ryb25nPiAtIGZvciB3ZWVrczsgYWxsb3dhYmxlIHJhbmdlIGZvciBwMSBpcyAxIHRvIDUyIDwvbGk+CjxsaT48c3Ryb25nPk08L3N0cm9uZz4gLSBtb250aHM7IGFsbG93YWJsZSByYW5nZSBmb3IgcDEgaXMgMSB0byAyNDwvbGk+CjxsaT48c3Ryb25nPlk8L3N0cm9uZz4gLSBmb3IgeWVhcnM7IGFsbG93YWJsZSByYW5nZSBmb3IgcDEgaXMgMSB0byA1PC9saT4KPC91bD4iOwokbGFuZ1snYTInXT0iPGgzPlRyaWFsIHBlcmlvZCAyIHByaWNlLiBDYW4gYmUgc3BlY2lmaWVkIG9ubHkgaWYgeW91IGFsc28gc3BlY2lmeSBUcmlhbCBwZXJpb2QgMSBwcmljZS4gPC9oMz4iOwokbGFuZ1sncDInXT0iPGgzPlRyaWFsIHBlcmlvZCAyIGR1cmF0aW9uLjwvaDM+IDxoND5SZXF1aXJlZCBpZiB5b3Ugc3BlY2lmeSBUcmlhbCBwZXJpb2QgMiBwcmljZS4gU3BlY2lmeSBhbiBpbnRlZ2VyIHZhbHVlIGluIHRoZSBhbGxvd2FibGUgcmFuZ2UgZm9yIHRoZSB1bml0cyBvZiBkdXJhdGlvbiB0aGF0IHlvdSBzcGVjaWZ5IHdpdGggVHJpYWwgcGVyaW9kIDIgdW5pdHMuPC9oND4iOwokbGFuZ1sndDInXT0iPGgzPlRyaWFsIHBlcmlvZCAyIHVuaXRzIG9mIGR1cmF0aW9uLjwvaDM+PGg0PlJlcXVpcmVkIGlmIHlvdSBzcGVjaWZ5IFRyaWFsIHBlcmlvZCAyIHByaWNlLiBBbGxvd2FibGUgdmFsdWVzPC9oND4KPHVsPgo8bGk+PHN0cm9uZz5EPC9zdHJvbmc+IC0gZm9yIGRheXM7IGFsbG93YWJsZSByYW5nZSBmb3IgcDEgaXMgMSB0byA5MDwvbGk+CjxsaT48c3Ryb25nPlc8L3N0cm9uZz4gLSBmb3Igd2Vla3M7IGFsbG93YWJsZSByYW5nZSBmb3IgcDEgaXMgMSB0byA1MiA8L2xpPgo8bGk+PHN0cm9uZz5NPC9zdHJvbmc+IC0gbW9udGhzOyBhbGxvd2FibGUgcmFuZ2UgZm9yIHAxIGlzIDEgdG8gMjQ8L2xpPgo8bGk+PHN0cm9uZz5ZPC9zdHJvbmc+IC0gZm9yIHllYXJzOyBhbGxvd2FibGUgcmFuZ2UgZm9yIHAxIGlzIDEgdG8gNTwvbGk+CjwvdWw+IjsKJGxhbmdbJ3AzJ109IjxoMz5TdWJzY3JpcHRpb24gZHVyYXRpb248L2gzPjxoND4gU3BlY2lmeSBhbiBpbnRlZ2VyIHZhbHVlIGluIHRoZSBhbGxvd2FibGUgcmFuZ2UgZm9yIHRoZSB1bml0cyBvZiBkdXJhdGlvbiB0aGF0IHlvdSBzcGVjaWZ5IHdpdGggc3Vic2NyaXB0aW9uIHVuaXRzLjwvaDQ+IjsKJGxhbmdbJ3QzJ109IjxoMz5SZWd1bGFyIHN1YnNjcmlwdGlvbiB1bml0cyBvZiBkdXJhdGlvbi48L2gzPjxoND5SZXF1aXJlZCBpZiB5b3Ugc3BlY2lmeSBhMS4gQWxsb3dhYmxlIHZhbHVlczwvaDQ+Cjx1bD4KPGxpPjxzdHJvbmc+RDwvc3Ryb25nPiAtIGZvciBkYXlzOyBhbGxvd2FibGUgcmFuZ2UgZm9yIHAxIGlzIDEgdG8gOTA8L2xpPgo8bGk+PHN0cm9uZz5XPC9zdHJvbmc+IC0gZm9yIHdlZWtzOyBhbGxvd2FibGUgcmFuZ2UgZm9yIHAxIGlzIDEgdG8gNTIgPC9saT4KPGxpPjxzdHJvbmc+TTwvc3Ryb25nPiAtIG1vbnRoczsgYWxsb3dhYmxlIHJhbmdlIGZvciBwMSBpcyAxIHRvIDI0PC9saT4KPGxpPjxzdHJvbmc+WTwvc3Ryb25nPiAtIGZvciB5ZWFyczsgYWxsb3dhYmxlIHJhbmdlIGZvciBwMSBpcyAxIHRvIDU8L2xpPgo8L3VsPiI7CgokbGFuZ1snc3JjJ109IjxoMz5SZWN1cnJpbmcgcGF5bWVudHM8L2gzPjxoND5TdWJzY3JpcHRpb24gcGF5bWVudHMgcmVjdXIgdW5sZXNzIHN1YnNjcmliZXJzIGNhbmNlbCB0aGVpciBzdWJzY3JpcHRpb25zIGJlZm9yZSB0aGUgZW5kIG9mIHRoZSBjdXJyZW50IGJpbGxpbmcgY3ljbGUgb3IgeW91IGxpbWl0IHRoZSBudW1iZXIgb2YgdGltZXMgdGhhdCBwYXltZW50cyByZWN1ciB3aXRoIHRoZSB2YWx1ZSB0aGF0IHlvdSBzcGVjaWZ5IGZvciBzcnQuIEFsbG93YWJsZSB2YWx1ZXM6IAo8L2g0Pgo8dWw+CjxsaT48c3Ryb25nPjA8L3N0cm9uZz4gLSBzdWJzY3JpcHRpb24gcGF5bWVudHMgZG8gbm90IHJlY3VyPC9saT4KPGxpPjxzdHJvbmc+MTwvc3Ryb25nPiAtIHN1YnNjcmlwdGlvbiBwYXltZW50cyByZWN1cjwvbGk+CjwvdWw+CjxzdHJvbmc+VGhlIGRlZmF1bHQgdmFsdWUgaXMgMC4gPC9zdHJvbmc+IjsKJGxhbmdbJ3NydCddPSc8aDM+UmVjdXJyaW5nIHRpbWVzLiBOdW1iZXIgb2YgdGltZXMgdGhhdCBzdWJzY3JpcHRpb24gcGF5bWVudHMgcmVjdXIuIFNwZWNpZnkgYW4gaW50ZWdlciBhYm92ZSAxLiBWYWxpZCBvbmx5IGlmIHlvdSBzcGVjaWZ5IHNyYz0iMSIuPC9oMz4nOwokbGFuZ1snc3JhJ109IjxoMz5SZWF0dGVtcHQgb24gZmFpbHVyZTwvaDM+PGg0PklmIGEgcmVjdXJyaW5nIHBheW1lbnQgZmFpbHMsIFBheVBhbCBhdHRlbXB0cyB0byBjb2xsZWN0IHRoZSBwYXltZW50IHR3byBtb3JlIHRpbWVzIGJlZm9yZSBjYW5jZWxpbmcgdGhlIHN1YnNjcmlwdGlvbi4gQWxsb3dhYmxlIHZhbHVlczogCjwvaDQ+Cjx1bD4KPGxpPjxzdHJvbmc+MDwvc3Ryb25nPiAtIGRvIG5vdCByZWF0dGVtcHQgZmFpbGVkIHJlY3VycmluZyBwYXltZW50czwvbGk+CjxsaT48c3Ryb25nPjE8L3N0cm9uZz4gLSByZWF0dGVtcHQgZmFpbGVkIHJlY3VycmluZyBwYXltZW50cyBiZWZvcmUgY2FuY2VsaW5nPC9saT4KPC91bD4KPHN0cm9uZz5UaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLiA8L3N0cm9uZz4iOwokbGFuZ1snbW9kaWZ5J109IjxoMz5Nb2RpZmljYXRpb24gYmVoYXZpb3I8L2gzPjxoND5BbGxvd2FibGUgdmFsdWVzOjwvaDQ+Cjx1bD4KPGxpPjxzdHJvbmc+MDwvc3Ryb25nPiAtIGFsbG93cyBzdWJzY3JpYmVycyB0byBvbmx5IGNyZWF0ZSBuZXcgc3Vic2NyaXB0aW9uczwvbGk+CjxsaT48c3Ryb25nPjE8L3N0cm9uZz4gLSBhbGxvd3Mgc3Vic2NyaWJlcnMgdG8gbW9kaWZ5IHRoZWlyIGN1cnJlbnQgc3Vic2NyaXB0aW9ucyBvciBzaWduIHVwIGZvciBuZXcgb25lczwvbGk+CjxsaT48c3Ryb25nPjI8L3N0cm9uZz4gLSBhbGxvd3Mgc3Vic2NyaWJlcnMgdG8gb25seSBtb2RpZnkgdGhlaXIgY3VycmVudCBzdWJzY3JpcHRpb25zPC9saT4KPC91bD4KPHN0cm9uZz5UaGUgZGVmYXVsdCB2YWx1ZSBpcyAwLiA8L3N0cm9uZz4iOwokbGFuZ1sndXNyX21hbmFnZSddPSI8aDM+U2V0IHRvIDEgdG8gaGF2ZSBQYXlQYWwgZ2VuZXJhdGUgdXNlcm5hbWVzIGFuZCBpbml0aWFsIHBhc3N3b3JkcyBmb3Igc3Vic2NyaWJlcnMuIDwvaDM+IjsKCgoKCgoKJGxhbmdbJ1NBTkRCT1hfYnVzaW5lc3NOYW1lJ10gPSAnPGgxPlRoZSBQYXlwYWwgdGVzdCBidXNpbmVzcyBhY2NvdW50PC9oMT48aDM+Rm9yIHRoZSBzYW5kYm94IHRvIHdvcms8L2gzPic7CgokbGFuZ1snU0FOREJPWF9wZXJzb25hbE5hbWUnXSA9ICc8aDE+VGhlIFBheXBhbCB0ZXN0IHBlcnNvbmFsIGFjY291bnQ8L2gxPjxoMz5KdXN0IGZvciB5b3UgdG8gcmVtZWJlcjwvaDM+JzsKCiRsYW5nWydidXNpbmVzc05hbWUnXSA9ICc8aDE+VGhlIFBheXBhbCB1c2VybmFtZTwvaDE+PGgzPlRoZSBQYXlQYWwgYWNjb3VudCB0byB3aGljaCB0aGUgbW9uZXkgZ29lcyB0bzwvaDM+JzsKJGxhbmdbJ1NBTkRCT1hfYnVzaW5lc3NOYW1lJ10gPSAnPGgxPlRoZSBQYXlwYWwgc2FuZGJveCBidXNpbmVzcyBhY2NvdW50PC9oMT48aDM+Rm9yIHRoZSBzYW5kYm94IHRvIHdvcms8L2gzPic7CiRsYW5nWydTQU5EQk9YX3BlcnNvbmFsTmFtZSddID0gJzxoMT5UaGUgUGF5cGFsIHNhbmRib3ggcGVyc29uYWwgYWNjb3VudDwvaDE+PGgzPkp1c3QgZm9yIHlvdSB0byByZW1lYmVyPC9oMz4nOwokbGFuZ1snU0FOREJPWF9idXNpbmVzc1BBU1MnXSA9ICc8aDE+VGhlIFBheXBhbCBzYW5kYm94IHBlcnNvbmFsIGFjY291bnQ8L2gxPjxoMz5KdXN0IGZvciB5b3UgdG8gcmVtZWJlcjwvaDM+JzsKJGxhbmdbJ1NBTkRCT1hfcGVyc29uYWxQQVNTJ10gPSAnPGgxPlRoZSBQYXlwYWwgc2FuZGJveCBwZXJzb25hbCBhY2NvdW50PC9oMT48aDM+SnVzdCBmb3IgeW91IHRvIHJlbWViZXI8L2gzPic7CgoKJGxhbmdbJ2RlYnVnSVQnXSA9ICc8aDE+ZGVidWdJVDwvaDE+PGgzPklmIHlvdSBoYXZlIGZpcmVidWcgbW9kdWxlIGluc3RhbGxlZCB5b3UgY2FuIHRydW4gdGhpcyBvbiB0byB0cmFjayB0aGUgcGF0aCBhbmQgcm9vdCBvdXQgYW4gaXNzdWU8L2gzPic7CgoKLy9wcm9tcHRzCiRsYW5nWydhMV9wcm9tcHQnXT0iVHJpYWwgU3Vic2NyaXB0aW9uIFByaWNlIjsKJGxhbmdbJ3AxX3Byb21wdCddPSJUcmlhbCBTdWJzY3JpcHRpb24gRHVyYXRpb24iOwokbGFuZ1sndDFfcHJvbXB0J109IlRyaWFsIFN1YnNjcmlwdGlvbiBVbml0cyI7CiRsYW5nWydhMl9wcm9tcHQnXT0iVHJpYWwgU3Vic2NyaXB0aW9uIFByaWNlICgyKSI7CiRsYW5nWydwMl9wcm9tcHQnXT0iVHJpYWwgU3Vic2NyaXB0aW9uIER1cmF0aW9uICgyKSI7CiRsYW5nWyd0Ml9wcm9tcHQnXT0iVHJpYWwgU3Vic2NyaXB0aW9uIFVuaXRzICgyKSI7CiRsYW5nWydwM19wcm9tcHQnXT0iU3Vic2NyaXB0aW9uIER1cmF0aW9uIjsKJGxhbmdbJ3QzX3Byb21wdCddPSJTdWJzY3JpcHRpb24gVW5pdHMiOwokbGFuZ1snc3JjX3Byb21wdCddPSJSZWN1cnJpbmcgcGF5bWVudHMiOwokbGFuZ1snc3J0X3Byb21wdCddPSJSZWN1cnJpbmcgdGltZXMiOwokbGFuZ1snc3JhX3Byb21wdCddPSJSZWF0dGVtcHQgb24gZmFpbHVyZSI7CiRsYW5nWydtb2RpZnlfcHJvbXB0J109Ik1vZGlmaWNhdGlvbiBiZWhhdmlvciI7CiRsYW5nWyd1c3JfbWFuYWdlX3Byb21wdCddPSJVc2VybmFtZSBhbmQgcGFzc3dvcmQgZ2VuZXJhdGlvbiI7CiRsYW5nWydCS1NldF9wcm9tcHQnXT0iQktTZXQiOwokbGFuZ1snQnRuVHlwZV9wcm9tcHQnXT0iQnRuVHlwZSI7CiRsYW5nWydhbW91bnRfcHJvbXB0J109ImFtb3VudCI7CiRsYW5nWydpdGVtX25hbWVfcHJvbXB0J109Iml0ZW1fbmFtZSI7CiRsYW5nWydCdXR0b25JbWdfcHJvbXB0J109IkJ1dHRvbkltZyI7CiRsYW5nWydpdGVtX251bWJlcl9wcm9tcHQnXT0iaXRlbV9udW1iZXIiOwokbGFuZ1sncXVhbnRpdHlfcHJvbXB0J109InF1YW50aXR5IjsKJGxhbmdbJ1VwZ3JhZGVNRVNTX3Byb21wdCddPSJVcGdyYWRlTUVTUyI7CiRsYW5nWydUaGVBY3Rpb25fcHJvbXB0J109IlRoZUFjdGlvbiI7CiRsYW5nWydUaGVQYXJhbXNfcHJvbXB0J109IlRoZVBhcmFtcyI7CiRsYW5nWydpbnZvaWNlX3Byb21wdCddPSJpbnZvaWNlIjsKJGxhbmdbJ3RheF9jYXJ0X3Byb21wdCddPSJ0YXhfY2FydCI7CiRsYW5nWyd0YXhfcmF0ZV9wcm9tcHQnXT0idGF4X3JhdGUiOwokbGFuZ1sndGF4X3Byb21wdCddPSJ0YXgiOwokbGFuZ1sndW5kZWZpbmVkX3F1YW50aXR5X3Byb21wdCddPSJ1bmRlZmluZWRfcXVhbnRpdHkiOwokbGFuZ1snd2VpZ2h0X2NhcnRfcHJvbXB0J109IndlaWdodF9jYXJ0IjsKJGxhbmdbJ3dlaWdodF91bml0X3Byb21wdCddPSJ3ZWlnaHRfdW5pdCI7CiRsYW5nWydzaGlwcGluZ19wcm9tcHQnXT0ic2hpcHBpbmciOwokbGFuZ1snd2VpZ2h0X3Byb21wdCddPSJ3ZWlnaHQiOwoKCiRsYW5nWydhZGRyZXNzMV9wcm9tcHQnXSA9ICdTdHJlZXQnOwokbGFuZ1snYWRkcmVzczJfcHJvbXB0J10gPSAnU3RyZWV0ICgyIG9mIDIgZmllbGRzKSc7CiRsYW5nWydjaXR5X3Byb21wdCddID0gJ0NpdHknOwokbGFuZ1snY291bnRyeV9wcm9tcHQnXSA9ICdTaGlwcGluZyBhbmQgYmlsbGluZyBjb3VudHJ5Lic7CiRsYW5nWydlbWFpbF9wcm9tcHQnXSA9ICdFbWFpbCBhZGRyZXNzJzsKJGxhbmdbJ2ZpcnN0X25hbWVfcHJvbXB0J10gPSAnRmlyc3QgbmFtZSc7CiRsYW5nWydsYXN0X25hbWVfcHJvbXB0J10gPSAnTGFzdCBuYW1lJzsKJGxhbmdbJ2NoYXJzZXRfcHJvbXB0J10gPSAnQ2hhcmFjdGVyIGVuY29kaW5nJzsKJGxhbmdbJ25pZ2h0X3Bob25lX2FfcHJvbXB0J10gPSAnVGhlIGFyZWEgY29kZSBmb3IgVS5TLiBwaG9uZSBudW1iZXJzJzsKJGxhbmdbJ25pZ2h0X3Bob25lX2JfcHJvbXB0J10gPSAnVGhlIHRocmVlLWRpZ2l0IHByZWZpeCBmb3IgVS5TLiBwaG9uZSBudW1iZXJzJzsKJGxhbmdbJ25pZ2h0X3Bob25lX2NfcHJvbXB0J10gPSAnVGhlIGZvdXItZGlnaXQgcGhvbmUgbnVtYmVyIGZvciBVLlMuIHBob25lIG51bWJlcnMnOwokbGFuZ1snc3RhdGVfcHJvbXB0J10gPSAnU3RhdGUnOwokbGFuZ1snemlwX3Byb21wdCddID0gJ1Bvc3RhbCBjb2RlJzsKCi8vQWNjb3VudCBvcHRpb25zCiRsYW5nWydrZXlfbGFiZWwnXSA9ICdBZGQga2V5JzsKJGxhbmdbJ2ludGVybmFsX2xhYmVsJ10gPSAnTWFrZSB0aGUgZm9ybSBpbnRlcm5hbCc7CiRsYW5nWydTYW5kQm94X2xhYmVsJ10gPSAnVHJ1biB0aGUgc2FuZGJveCBvbi9vZmYnOwoKJGxhbmdbJ0Zvcm1WYWx1ZV9sYWJlbCddID0gJ1RoaXMgaXMgdGhlIFNhbHQgZm9yIGdyYWJiaW5nIHRoZSBidXR0b24nOwokbGFuZ1snRm9ybUtleV9sYWJlbCddID0gJ1RoaXMgaXMgdGhlIFNhbHQgZm9yIGdyYWJiaW5nIHRoZSBidXR0b24gSUQnOwoKJGxhbmdbJ2NwcF9oZWFkZXJiYWNrX2NvbG9yX2xhYmVsJ10gPSAnQmFja2dyb3VuZCBjb2xvciBmb3IgdGhlIGhlYWRlciA8ZW0+KGNwcF9oZWFkZXJiYWNrX2NvbG9yKTwvZW0+JzsKJGxhbmdbJ0NQX2xhYmVsJ10gPSAnY3BwX2hlYWRlcmJhY2tfY29sb3IgQ29sb3IgUGlja2VyJzsKCiRsYW5nWydjcHBfcGF5Zmxvd19jb2xvcl9sYWJlbCddID0gJ0JhY2tncm91bmQgY29sb3IgZm9yIHRoZSBib2R5IDxlbT4oY3BwX3BheWZsb3dfY29sb3IpPC9lbT4nOwokbGFuZ1snY3BwX3BheWZsb3dfbGFiZWwnXSA9ICdjcHBfcGF5Zmxvd19jb2xvciBDb2xvciBQaWNrZXInOwoKJGxhbmdbJ2NwcF9oZWFkZXJib3JkZXJfY29sb3JfbGFiZWwnXSA9ICdCYWNrZ3JvdW5kIGNvbG9yIGZvciB0aGUgaGVhZGVyIGJvcmRlcjxlbT4oY3BwX2hlYWRlcmJvcmRlcl9jb2xvcik8L2VtPic7CiRsYW5nWydjcHBfaGVhZGVyYm9yZGVyX2xhYmVsJ10gPSAnY3BwX2hlYWRlcmJvcmRlcl9jb2xvciBDb2xvciBQaWNrZXInOwoKCiRsYW5nWydjc19sYWJlbCddID0gJ0JhY2tncm91bmQgY29sb3InOwokbGFuZ1snY3BwX2hlYWRlcl9pbWFnZV9sYWJlbCddID0gJ0hlYWRlciBJbWFnZSAodGhpcyBpcyBzaXplZCB0byBhIGhlaWdodCBvZiBYWHhYWFggcHgpJzsKJGxhbmdbJ2NwcF9oZWFkZXJfX1VSTF9sYWJlbCddID0gJ2NwcF9oZWFkZXIgVVJMIDxlbT4oVGlwIGlzIHVzZSBhIGh0dHBzIGFkZHJlc3MpPC9lbT4nOwokbGFuZ1snY3BwX2hlYWRlcl9fVVBMT0FEX2xhYmVsJ10gPSAnVXBsb2FkIHRoZSBpbWFnZSBmb3IgY3BwX2hlYWRlcic7CiRsYW5nWydpbWFnZV91cmxfX1VSTF9sYWJlbCddID0gJ2ltYWdlX3VybCBVUkwgIDxlbT4oVGlwIGlzIHVzZSBhIGh0dHBzIGFkZHJlc3MpPC9lbT4nOwokbGFuZ1snaW1hZ2VfdXJsX19VUExPQURfbGFiZWwnXSA9ICdVcGxvYWQgdGhlIGltYWdlIGZvciBpbWFnZV91cmwnOwokbGFuZ1snaW1hZ2VfdXJsX2xhYmVsJ10gPSAnQSBsb2dvICh3aWxsIGJlIG92ZXIgd3JpdHRlbiB3aXRoIGNwcF9oZWFkZXJfaW1hZ2UgOTB4NzUwIHB4KSc7CgoKCiRsYW5nWydidXNpbmVzc05hbWVfbGFiZWwnXSA9ICdUaGUgUGF5UGFsIHRvIHdoaWNoIHRoZSBtb25leSBnb2VzIHRvJzsKJGxhbmdbJ1NBTkRCT1hfYnVzaW5lc3NOYW1lX2xhYmVsJ10gPSAnVGhlIFNhbmRib3ggU2VsbGVyIGFjY291bnQnOwokbGFuZ1snU0FOREJPWF9wZXJzb25hbE5hbWVfbGFiZWwnXSA9ICdUaGUgU2FuZGJveCBCdXllciBhY2NvdW50JzsKJGxhbmdbJ1NBTkRCT1hfYnVzaW5lc3NQQVNTX2xhYmVsJ10gPSAnVGhlIFNhbmRib3ggU2VsbGVyIFBhc3N3b3JkJzsKJGxhbmdbJ1NBTkRCT1hfcGVyc29uYWxQQVNTX2xhYmVsJ10gPSAnVGhlIFNhbmRib3ggQnV5ZXIgUGFzc3dvcmQnOwokbGFuZ1snTGFuZ19sYWJlbCddID0gJ0Nob29zZSB5b3VyIGRlZmF1bHQgTGFuZ3VhZ2UnOwoKCi8vQnV0dG9uIG9wdGlvbnMKJGxhbmdbJ1JlZGlyZWN0VVJMX2xhYmVsJ10gPSAnPHN0cm9uZz5SZWRpcmVjdCBVUkw8L3N0cm9uZz48YnIvPiB0byB3aGljaCBQYXlQYWwgcmV0dXJucyB0byBvbiBmaW5pc2gnOwokbGFuZ1snY2J0X2xhYmVsJ10gPSAnPHN0cm9uZz5TZXRzIHRoZSB0ZXh0IGZvciB0aGUgQ29udGludWUgYnV0dG9uPC9zdHJvbmc+PGJyLz5vbiB0aGUgUGF5UGFsIFBheW1lbnQgQ29tcGxldGUgcGFnZS48ZW0+KENoYXJhY3RlciBMZW5ndGggNjApPC9lbT4nOwokbGFuZ1snY3VzdG9tX2xhYmVsJ10gPSAnPHN0cm9uZz5DdXN0b208L3N0cm9uZz4nOwokbGFuZ1sncm1fbGFiZWwnXSA9ICc8c3Ryb25nPlJldHVybiBtZXRob2Q8L3N0cm9uZz4nOwoKJGxhbmdbJ2hhbmRsaW5nX2xhYmVsJ10gPSAnPHN0cm9uZz5IYW5kbGluZyBjaGFyZ2VzPC9zdHJvbmc+JzsKJGxhbmdbJ2FkZHJlc3Nfb3ZlcnJpZGVfbGFiZWwnXSA9ICc8c3Ryb25nPkFkZHJlc3MgT3ZlcnJpZGU8L3N0cm9uZz4nOwoKCiRsYW5nWydub19zaGlwcGluZ19sYWJlbCddID0gJ1Byb21wdCBwYXllcnMgZm9yIHNoaXBwaW5nIGFkZHJlc3MnOwokbGFuZ1snbm90aWZ5X3VybF9sYWJlbCddID0gJ1VSTCB0byB3aGljaCBQYXlQYWwgcG9zdHMgaW5mb3JtYXRpb24gJzsKJGxhbmdbJ2NhbmNlbF9yZXR1cm5fbGFiZWwnXSA9ICc8c3Ryb25nPkNhbmNlbCBVUkw8L3N0cm9uZz48YnIvPiAgdG8gd2hpY2ggUGF5UGFsIHJldHVybnMgdG8gb24gY2FuY2VsJzsKJGxhbmdbJ2N1cnJlbmN5X2NvZGVfbGFiZWwnXSA9ICc8c3Ryb25nPkRlZmluZXMgdGhlIGN1cnJlbmN5PC9zdHJvbmc+PGJyLz4gaW4gd2hpY2ggdGhlIG1vbmV0YXJ5IHZhcmlhYmxlcyAoYW1vdW50LCBzaGlwcGluZywgc2hpcHBpbmcyLCBoYW5kbGluZywgdGF4KSBhcmUgZGVub3RlZC4nOwokbGFuZ1snc21hcnR5T25fbGFiZWwnXSA9ICc8c3Ryb25nPlByb2Nlc3MgU21hcnR5PC9zdHJvbmc+PGJyLz4gZGF0YSBpbiBidXR0b24gZmllbGRzJzsKCgoKCgovL0FsZXJ0cyBhbmQgTWVzc2FnZXMKJGxhbmdbJ0NsZWFySW1nJ10gPSAnRGVsZXRlIEN1cnJlbnQgSW1hZ2UnOwoKCiRsYW5nWydjYW5jZWwnXSA9ICdDYW5jZWwnOwokbGFuZ1snZm9ybV9jYW5jZWwnXSA9ICdDYW5jZWwnOwoKJGxhbmdbJ3N1Ym1pdCddID0gJ1N1Ym1pdCc7CiRsYW5nWydmb3JtX3N1Ym1pdCddID0gJ1NhdmUgUHJlZmVyZW5jZXMnOwoKJGxhbmdbJ21vZF9wcmVmc190aXRsZSddID0gJ01vZHVsZSBQcmVmZXJlbmNlcyc7CiRsYW5nWydwcmVmc3VwZGF0ZWQnXSA9ICdNb2R1bGUgcHJlZmVyZW5jZXMgdXBkYXRlZC4nOwokbGFuZ1snb3B0aW9uc3VwZGF0ZWQnXSA9ICdvcHRpb25zIHVwZGF0ZWQnOwoKCiRsYW5nWydkZWJ1Z0lUX2xhYmVsJ10gPSAnZGVidWdJVCc7CiRsYW5nWydkZWJ1Z0lUbm90ZV9sYWJlbCddID0gJzxlbT4oTXVzdCBoYXZlIEZpcmVwaHAgbW9kKTwvZW0+JzsKCiRsYW5nWydkZWJ1Z1QnXSA9ICdEZWJ1Z2luZyBPcHRpb25zJzsKCgokbGFuZ1snbW9kZGVzY3JpcHRpb24nXSA9ICdQYXlQYWxCdXR0b25NYWtlciBtYW5hZ2VzIFBheVBhbCBidXR0b25zLiBJdCBjYW4gaGFuZGxlIGJ1dHRvbnMgaW50ZXJuYWxseTsgT25lIGJ1dHRvbiBjYW4gaGFuZGxlIGxpbWl0bGVzcyBwcm9kdWN0cy4gU2VjdXJlIHVzaW5nIHRpbWUgYmFzZWQgc2hhMSBlbmNyeXB0aW9uOyBVc2UgU21hcnR5IGZpZWxkcyB0byBoYXZlIFBheVBhbCBhY2Nlc3MgaW4gbW9zdCBtb2RzIGllOiBwcm9kdWN0cywgY2F0YWxvZ2VyLCBTaG9wIE1hZGUgU2ltcGxlLCBGb3JtIEJ1aWxkZXIgZWN0OyBGaXJlIFVURFwncywgVVJMXCdzIG9yIHBsdWctaW5zLi4uIFNpbXBsZSwgZmxleGlibGUhJzsKJGxhbmdbJ3dlbGNvbWVfdGV4dCddID0gJzxwPkhlbGxvITwvcD4nOwokbGFuZ1snY2hhbmdlbG9nJ10gPSAnCjx1bD4KICA8bGk+VmVyc2lvbiAwLjYgQmV0YSByZWxlYXNlLjwvbGk+CjwvdWw+JzsKJGxhbmdbJ2hlbHAnXSA9ICc8bGluayBtZWRpYT0ic2NyZWVuIiBocmVmPSIuLi9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL0NTUy9NYXN0ZXJDU1MuY3NzIiB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0Ij48ZGl2IGNsYXNzPSJTaW1XcmFwIj48YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InIxIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPjxiIGNsYXNzPSJyMyI+PC9iPiA8YiBjbGFzcz0icjQiPjwvYj48L2I+Cgo8ZGl2IGNsYXNzPSJTaW1jb24iPjxoMyBjbGFzcz0iQmFja0xpbmsiPjxhIG9uY2xpY2s9ImphdmFzY3JpcHQ6d2luZG93Lmhpc3RvcnkuZ28oLTEpIiByZWw9Im5vZm9sbG93Ij4mbHQ7Jmx0OyBCYWNrPC9hPjwvaDM+CjxoMz5XaGF0IERvZXMgVGhpcyBEbz8tLS0gdGhpcyBuZWVkcyB1cGRhdGluZzwvaDM+CjxwPk1ha2UgYW5kIG1hbmFnZSBQYXlQYWwgQnV0dG9uczwvcD4KCllvdSBlbmQgdXAgd2l0aCB0aGlzLi4uICcvLy4kRVgKLicKCjxoMz5Ib3cgRG8gSSBVc2UgSXQ8L2gzPgoKCjxici8+PGJyLz4KCjxoMz5HZXQgdGhlIGJ1dHRvbjwvaDM+CnVzZSA8c3BhbiBjbGFzcz0iY29kZUhJR0hMSUdIVCI+e2Ntc19tb2R1bGUgbW9kdWxlPVBheVBhbEJ1dHRvbk1ha2VyIE1vZGU9ImRlZmF1bHQiIEJ0bj0iQkxTQnRuIn0gPC9zcGFuPiA8YnIvPjxici8+Cgo8aDM+RG8gc29tZXRoaW5nIG9uIHRoZSByZXR1cm48L2gzPgp1c2UgPHNwYW4gY2xhc3M9ImNvZGVISUdITElHSFQiPntjbXNfbW9kdWxlIG1vZHVsZT1QYXlQYWxCdXR0b25NYWtlciBNb2RlPSJyZWNlaXZlciIgQnRuPSJCTFNCdG4iIFJVTmFjdGlvbj0iVURUIn0gPC9zcGFuPiA8YnIvPjxici8+Cgo8aDM+VGVzdCB2aWEgdGhlIFBheVBhbCBTYW5kYm94PC9oMz4KdXNlIDxzcGFuIGNsYXNzPSJjb2RlSElHSExJR0hUIj57Y21zX21vZHVsZSBtb2R1bGU9UGF5UGFsQnV0dG9uTWFrZXIgTW9kZT0iZGVmYXVsdCIgQnRuPSJCTFNCdG4iIFNhbmRCb3g9dHJ1ZX0gPC9zcGFuPiA8YnIvPjxici8+Cgo8aDM+T3V0cHV0IHRoZSBGaW5hbCBtZXNzYWdlPC9oMz4KdXNlIDxzcGFuIGNsYXNzPSJjb2RlSElHSExJR0hUIj57JFVwZ3JhZGVNRVNTfTwvc3Bhbj4gYmVsb3cgdGhlICJyZWNlaXZlciIgdGFnIDxici8+PGJyLz4KCgo8aDE+QWxsIG91dHB1dCBpcyBpbiB0aGUgWEhUTUwgZm9ybWF0LCB5b3Ugc2hvdWxkIHdvcmsgaW4gdGhhdC48L2gxPgoKPGJyLz48YnIvPgo8aDQ+UGFyYW1zPC9oND4KPHVsPgo8bGk+PHN0cm9uZz5Nb2RlPSJkZWZhdWx0Ijwvc3Ryb25nPjxlbT4ob3B0aW9uYWwpPC9lbT4gPGJyLz58IGRlZmF1bHQ8YnIvPnwgcmVjZWl2ZXI8YnIvPjwvbGk+CjxsaT48c3Ryb25nPkJ0bj0iIiA8L3N0cm9uZz48ZW0+KFJlcXVpcmVkKTwvZW0+IDxici8+fCBzZXQgdGhlIGFsaWFzPGJyLz48L2xpPgo8bGk+PHN0cm9uZz5TYW5kQm94PXRydWUgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgZmFsc2U8YnIvPjwvbGk+Cgo8bGk+PHN0cm9uZz5SVU5hY3Rpb249IiIgPC9zdHJvbmc+PGVtPihvcHRpb25hbCk8L2VtPiA8YnIvPnwgVURUPGJyLz58IFVSTCA8ZW0+KC4uL3BsdWdpbnMvZnVuY3Rpb24uZmlsZW5hbWUucGhwKTwvZW0+PGJyLz58ICpNb3JlIGNvbWluZyBTb29uKjxici8+PC9saT4KPGxpPjxzdHJvbmc+TGFuZz0iIiA8L3N0cm9uZz48ZW0+KG9wdGlvbmFsKTwvZW0+IDxici8+fCBVc2UgQ291bnRyeSBDb2RlcyBUbyBkeW5hbWljYWxseSBzZXQgdGhlIGxhbmd1YWdlIG9mIHRoZSBQYXlQYWwgcGFnZTxici8+PC9saT4KCjwvdWw+Cjxici8+CjxoMj5Db3VudHJ5IENvZGVzPC9oMj4KPGRpdiBjbGFzcz0iY29udHJ5Q29kZXMiPgpBRkdIQU5JU1RBTiAgLSAgPHN0cm9uZz5BRjwvc3Ryb25nPjxici8+QUxBTkQgSVNMQU5EUyAgLSAgPHN0cm9uZz5BWDwvc3Ryb25nPjxici8+QUxCQU5JQSAgLSAgPHN0cm9uZz5BTDwvc3Ryb25nPjxici8+QUxHRVJJQSAgLSAgPHN0cm9uZz5EWjwvc3Ryb25nPjxici8+QU1FUklDQU4gU0FNT0EgIC0gIDxzdHJvbmc+QVM8L3N0cm9uZz48YnIvPkFORE9SUkEgIC0gIDxzdHJvbmc+QUQ8L3N0cm9uZz48YnIvPkFOR09MQSAgLSAgPHN0cm9uZz5BTzwvc3Ryb25nPjxici8+QU5HVUlMTEEgIC0gIDxzdHJvbmc+QUk8L3N0cm9uZz48YnIvPkFOVEFSQ1RJQ0EgIC0gIDxzdHJvbmc+QVE8L3N0cm9uZz48YnIvPkFOVElHVUEgQU5EIEJBUkJVREEgIC0gIDxzdHJvbmc+QUc8L3N0cm9uZz48YnIvPkFSR0VOVElOQSAgLSAgPHN0cm9uZz5BUjwvc3Ryb25nPjxici8+QVJNRU5JQSAgLSAgPHN0cm9uZz5BTTwvc3Ryb25nPjxici8+QVJVQkEgIC0gIDxzdHJvbmc+QVc8L3N0cm9uZz48YnIvPkFVU1RSQUxJQSAgLSAgPHN0cm9uZz5BVTwvc3Ryb25nPjxici8+QVVTVFJJQSAgLSAgPHN0cm9uZz5BVDwvc3Ryb25nPjxici8+QVpFUkJBSUpBTiAgLSAgPHN0cm9uZz5BWjwvc3Ryb25nPjxici8+QkFIQU1BUyAgLSAgPHN0cm9uZz5CUzwvc3Ryb25nPjxici8+QkFIUkFJTiAgLSAgPHN0cm9uZz5CSDwvc3Ryb25nPjxici8+QkFOR0xBREVTSCAgLSAgPHN0cm9uZz5CRDwvc3Ryb25nPjxici8+QkFSQkFET1MgIC0gIDxzdHJvbmc+QkI8L3N0cm9uZz48YnIvPkJFTEFSVVMgIC0gIDxzdHJvbmc+Qlk8L3N0cm9uZz48YnIvPkJFTEdJVU0gIC0gIDxzdHJvbmc+QkU8L3N0cm9uZz48YnIvPkJFTElaRSAgLSAgPHN0cm9uZz5CWjwvc3Ryb25nPjxici8+QkVOSU4gIC0gIDxzdHJvbmc+Qko8L3N0cm9uZz48YnIvPkJFUk1VREEgIC0gIDxzdHJvbmc+Qk08L3N0cm9uZz48YnIvPkJIVVRBTiAgLSAgPHN0cm9uZz5CVDwvc3Ryb25nPjxici8+Qk9MSVZJQSAgLSAgPHN0cm9uZz5CTzwvc3Ryb25nPjxici8+Qk9TTklBIEFORCBIRVJaRUdPVklOQSAgLSAgPHN0cm9uZz5CQTwvc3Ryb25nPjxici8+Qk9UU1dBTkEgIC0gIDxzdHJvbmc+Qlc8L3N0cm9uZz48YnIvPkJPVVZFVCBJU0xBTkQgIC0gIDxzdHJvbmc+QlY8L3N0cm9uZz48YnIvPkJSQVpJTCAgLSAgPHN0cm9uZz5CUjwvc3Ryb25nPjxici8+QlJJVElTSCBJTkRJQU4gT0NFQU4gVEVSUklUT1JZICAtICA8c3Ryb25nPklPPC9zdHJvbmc+PGJyLz5CUlVORUkgREFSVVNTQUxBTSAgLSAgPHN0cm9uZz5CTjwvc3Ryb25nPjxici8+QlVMR0FSSUEgIC0gIDxzdHJvbmc+Qkc8L3N0cm9uZz48YnIvPkJVUktJTkEgRkFTTyAgLSAgPHN0cm9uZz5CRjwvc3Ryb25nPjxici8+QlVSVU5ESSAgLSAgPHN0cm9uZz5CSTwvc3Ryb25nPjxici8+Q0FNQk9ESUEgIC0gIDxzdHJvbmc+S0g8L3N0cm9uZz48YnIvPkNBTUVST09OICAtICA8c3Ryb25nPkNNPC9zdHJvbmc+PGJyLz5DQU5BREEgIC0gIDxzdHJvbmc+Q0E8L3N0cm9uZz48YnIvPkNBUEUgVkVSREUgIC0gIDxzdHJvbmc+Q1Y8L3N0cm9uZz48YnIvPkNBWU1BTiBJU0xBTkRTICAtICA8c3Ryb25nPktZPC9zdHJvbmc+PGJyLz5DRU5UUkFMIEFGUklDQU4gUkVQVUJMSUMgIC0gIDxzdHJvbmc+Q0Y8L3N0cm9uZz48YnIvPkNIQUQgIC0gIDxzdHJvbmc+VEQ8L3N0cm9uZz48YnIvPkNISUxFICAtICA8c3Ryb25nPkNMPC9zdHJvbmc+PGJyLz5DSElOQSAgLSAgPHN0cm9uZz5DTjwvc3Ryb25nPjxici8+Q0hSSVNUTUFTIElTTEFORCAgLSAgPHN0cm9uZz5DWDwvc3Ryb25nPjxici8+Q09DT1MgKEtFRUxJTkcpIElTTEFORFMgIC0gIDxzdHJvbmc+Q0M8L3N0cm9uZz48YnIvPkNPTE9NQklBICAtICA8c3Ryb25nPkNPPC9zdHJvbmc+PGJyLz5DT01PUk9TICAtICA8c3Ryb25nPktNPC9zdHJvbmc+PGJyLz5DT05HTyAgLSAgPHN0cm9uZz5DRzwvc3Ryb25nPjxici8+Q09OR08sIFRIRSBERU1PQ1JBVElDIFJFUFVCTElDIE9GIFRIRSAgLSAgPHN0cm9uZz5DRDwvc3Ryb25nPjxici8+Q09PSyBJU0xBTkRTICAtICA8c3Ryb25nPkNLPC9zdHJvbmc+PGJyLz5DT1NUQSBSSUNBICAtICA8c3Ryb25nPkNSPC9zdHJvbmc+PGJyLz5DT1RFIERcJ0lWT0lSRSAgLSAgPHN0cm9uZz5DSTwvc3Ryb25nPjxici8+Q1JPQVRJQSAgLSAgPHN0cm9uZz5IUjwvc3Ryb25nPjxici8+Q1VCQSAgLSAgPHN0cm9uZz5DVTwvc3Ryb25nPjxici8+Q1lQUlVTICAtICA8c3Ryb25nPkNZPC9zdHJvbmc+PGJyLz5DWkVDSCBSRVBVQkxJQyAgLSAgPHN0cm9uZz5DWjwvc3Ryb25nPjxici8+REVOTUFSSyAgLSAgPHN0cm9uZz5ESzwvc3Ryb25nPjxici8+REpJQk9VVEkgIC0gIDxzdHJvbmc+REo8L3N0cm9uZz48YnIvPkRPTUlOSUNBICAtICA8c3Ryb25nPkRNPC9zdHJvbmc+PGJyLz5ET01JTklDQU4gUkVQVUJMSUMgIC0gIDxzdHJvbmc+RE88L3N0cm9uZz48YnIvPkVDVUFET1IgIC0gIDxzdHJvbmc+RUM8L3N0cm9uZz48YnIvPkVHWVBUICAtICA8c3Ryb25nPkVHPC9zdHJvbmc+PGJyLz5FTCBTQUxWQURPUiAgLSAgPHN0cm9uZz5TVjwvc3Ryb25nPjxici8+RVFVQVRPUklBTCBHVUlORUEgIC0gIDxzdHJvbmc+R1E8L3N0cm9uZz48YnIvPkVSSVRSRUEgIC0gIDxzdHJvbmc+RVI8L3N0cm9uZz48YnIvPkVTVE9OSUEgIC0gIDxzdHJvbmc+RUU8L3N0cm9uZz48YnIvPkVUSElPUElBICAtICA8c3Ryb25nPkVUPC9zdHJvbmc+PGJyLz5GQUxLTEFORCBJU0xBTkRTIChNQUxWSU5BUykgIC0gIDxzdHJvbmc+Rks8L3N0cm9uZz48YnIvPkZBUk9FIElTTEFORFMgIC0gIDxzdHJvbmc+Rk88L3N0cm9uZz48YnIvPkZJSkkgIC0gIDxzdHJvbmc+Rko8L3N0cm9uZz48YnIvPkZJTkxBTkQgIC0gIDxzdHJvbmc+Rkk8L3N0cm9uZz48YnIvPkZSQU5DRSAgLSAgPHN0cm9uZz5GUjwvc3Ryb25nPjxici8+RlJFTkNIIEdVSUFOQSAgLSAgPHN0cm9uZz5HRjwvc3Ryb25nPjxici8+RlJFTkNIIFBPTFlORVNJQSAgLSAgPHN0cm9uZz5QRjwvc3Ryb25nPjxici8+RlJFTkNIIFNPVVRIRVJOIFRFUlJJVE9SSUVTICAtICA8c3Ryb25nPlRGPC9zdHJvbmc+PGJyLz5HQUJPTiAgLSAgPHN0cm9uZz5HQTwvc3Ryb25nPjxici8+R0FNQklBICAtICA8c3Ryb25nPkdNPC9zdHJvbmc+PGJyLz5HRU9SR0lBICAtICA8c3Ryb25nPkdFPC9zdHJvbmc+PGJyLz5HRVJNQU5ZICAtICA8c3Ryb25nPkRFPC9zdHJvbmc+PGJyLz5HSEFOQSAgLSAgPHN0cm9uZz5HSDwvc3Ryb25nPjxici8+R0lCUkFMVEFSICAtICA8c3Ryb25nPkdJPC9zdHJvbmc+PGJyLz5HUkVFQ0UgIC0gIDxzdHJvbmc+R1I8L3N0cm9uZz48YnIvPkdSRUVOTEFORCAgLSAgPHN0cm9uZz5HTDwvc3Ryb25nPjxici8+R1JFTkFEQSAgLSAgPHN0cm9uZz5HRDwvc3Ryb25nPjxici8+R1VBREVMT1VQRSAgLSAgPHN0cm9uZz5HUDwvc3Ryb25nPjxici8+R1VBTSAgLSAgPHN0cm9uZz5HVTwvc3Ryb25nPjxici8+R1VBVEVNQUxBICAtICA8c3Ryb25nPkdUPC9zdHJvbmc+PGJyLz5HVUVSTlNFWSAgLSAgPHN0cm9uZz5HRzwvc3Ryb25nPjxici8+R1VJTkVBICAtICA8c3Ryb25nPkdOPC9zdHJvbmc+PGJyLz5HVUlORUEtQklTU0FVICAtICA8c3Ryb25nPkdXPC9zdHJvbmc+PGJyLz5HVVlBTkEgIC0gIDxzdHJvbmc+R1k8L3N0cm9uZz48YnIvPkhBSVRJICAtICA8c3Ryb25nPkhUPC9zdHJvbmc+PGJyLz5IRUFSRCBJU0xBTkQgQU5EIE1DRE9OQUxEIElTTEFORFMgIC0gIDxzdHJvbmc+SE08L3N0cm9uZz48YnIvPkhPTFkgU0VFIChWQVRJQ0FOIENJVFkgU1RBVEUpICAtICA8c3Ryb25nPlZBPC9zdHJvbmc+PGJyLz5IT05EVVJBUyAgLSAgPHN0cm9uZz5ITjwvc3Ryb25nPjxici8+SE9ORyBLT05HICAtICA8c3Ryb25nPkhLPC9zdHJvbmc+PGJyLz5IVU5HQVJZICAtICA8c3Ryb25nPkhVPC9zdHJvbmc+PGJyLz5JQ0VMQU5EICAtICA8c3Ryb25nPklTPC9zdHJvbmc+PGJyLz5JTkRJQSAgLSAgPHN0cm9uZz5JTjwvc3Ryb25nPjxici8+SU5ET05FU0lBICAtICA8c3Ryb25nPklEPC9zdHJvbmc+PGJyLz5JUkFOLCBJU0xBTUlDIFJFUFVCTElDIE9GICAtICA8c3Ryb25nPklSPC9zdHJvbmc+PGJyLz5JUkFRICAtICA8c3Ryb25nPklRPC9zdHJvbmc+PGJyLz5JUkVMQU5EICAtICA8c3Ryb25nPklFPC9zdHJvbmc+PGJyLz5JU0xFIE9GIE1BTiAgLSAgPHN0cm9uZz5JTTwvc3Ryb25nPjxici8+SVNSQUVMICAtICA8c3Ryb25nPklMPC9zdHJvbmc+PGJyLz5JVEFMWSAgLSAgPHN0cm9uZz5JVDwvc3Ryb25nPjxici8+SkFNQUlDQSAgLSAgPHN0cm9uZz5KTTwvc3Ryb25nPjxici8+SkFQQU4gIC0gIDxzdHJvbmc+SlA8L3N0cm9uZz48YnIvPkpFUlNFWSAgLSAgPHN0cm9uZz5KRTwvc3Ryb25nPjxici8+Sk9SREFOICAtICA8c3Ryb25nPkpPPC9zdHJvbmc+PGJyLz5LQVpBS0hTVEFOICAtICA8c3Ryb25nPktaPC9zdHJvbmc+PGJyLz5LRU5ZQSAgLSAgPHN0cm9uZz5LRTwvc3Ryb25nPjxici8+S0lSSUJBVEkgIC0gIDxzdHJvbmc+S0k8L3N0cm9uZz48YnIvPktPUkVBLCBERU1PQ1JBVElDIFBFT1BMRVwnUyBSRVBVQkxJQyBPRiAgLSAgPHN0cm9uZz5LUDwvc3Ryb25nPjxici8+S09SRUEsIFJFUFVCTElDIE9GICAtICA8c3Ryb25nPktSPC9zdHJvbmc+PGJyLz5LVVdBSVQgIC0gIDxzdHJvbmc+S1c8L3N0cm9uZz48YnIvPktZUkdZWlNUQU4gIC0gIDxzdHJvbmc+S0c8L3N0cm9uZz48YnIvPkxBTyBQRU9QTEVcJ1MgREVNT0NSQVRJQyBSRVBVQkxJQyAgLSAgPHN0cm9uZz5MQTwvc3Ryb25nPjxici8+TEFUVklBICAtICA8c3Ryb25nPkxWPC9zdHJvbmc+PGJyLz5MRUJBTk9OICAtICA8c3Ryb25nPkxCPC9zdHJvbmc+PGJyLz5MRVNPVEhPICAtICA8c3Ryb25nPkxTPC9zdHJvbmc+PGJyLz5MSUJFUklBICAtICA8c3Ryb25nPkxSPC9zdHJvbmc+PGJyLz5MSUJZQU4gQVJBQiBKQU1BSElSSVlBICAtICA8c3Ryb25nPkxZPC9zdHJvbmc+PGJyLz5MSUVDSFRFTlNURUlOICAtICA8c3Ryb25nPkxJPC9zdHJvbmc+PGJyLz5MSVRIVUFOSUEgIC0gIDxzdHJvbmc+TFQ8L3N0cm9uZz48YnIvPkxVWEVNQk9VUkcgIC0gIDxzdHJvbmc+TFU8L3N0cm9uZz48YnIvPk1BQ0FPICAtICA8c3Ryb25nPk1PPC9zdHJvbmc+PGJyLz5NQUNFRE9OSUEsIFRIRSBGT1JNRVIgWVVHT1NMQVYgUkVQVUJMSUMgT0YgIC0gIDxzdHJvbmc+TUs8L3N0cm9uZz48YnIvPk1BREFHQVNDQVIgIC0gIDxzdHJvbmc+TUc8L3N0cm9uZz48YnIvPk1BTEFXSSAgLSAgPHN0cm9uZz5NVzwvc3Ryb25nPjxici8+TUFMQVlTSUEgIC0gIDxzdHJvbmc+TVk8L3N0cm9uZz48YnIvPk1BTERJVkVTICAtICA8c3Ryb25nPk1WPC9zdHJvbmc+PGJyLz5NQUxJICAtICA8c3Ryb25nPk1MPC9zdHJvbmc+PGJyLz5NQUxUQSAgLSAgPHN0cm9uZz5NVDwvc3Ryb25nPjxici8+TUFSU0hBTEwgSVNMQU5EUyAgLSAgPHN0cm9uZz5NSDwvc3Ryb25nPjxici8+TUFSVElOSVFVRSAgLSAgPHN0cm9uZz5NUTwvc3Ryb25nPjxici8+TUFVUklUQU5JQSAgLSAgPHN0cm9uZz5NUjwvc3Ryb25nPjxici8+TUFVUklUSVVTICAtICA8c3Ryb25nPk1VPC9zdHJvbmc+PGJyLz5NQVlPVFRFICAtICA8c3Ryb25nPllUPC9zdHJvbmc+PGJyLz5NRVhJQ08gIC0gIDxzdHJvbmc+TVg8L3N0cm9uZz48YnIvPk1JQ1JPTkVTSUEsIEZFREVSQVRFRCBTVEFURVMgT0YgIC0gIDxzdHJvbmc+Rk08L3N0cm9uZz48YnIvPk1PTERPVkEsIFJFUFVCTElDIE9GICAtICA8c3Ryb25nPk1EPC9zdHJvbmc+PGJyLz5NT05BQ08gIC0gIDxzdHJvbmc+TUM8L3N0cm9uZz48YnIvPk1PTkdPTElBICAtICA8c3Ryb25nPk1OPC9zdHJvbmc+PGJyLz5NT05UU0VSUkFUICAtICA8c3Ryb25nPk1TPC9zdHJvbmc+PGJyLz5NT1JPQ0NPICAtICA8c3Ryb25nPk1BPC9zdHJvbmc+PGJyLz5NT1pBTUJJUVVFICAtICA8c3Ryb25nPk1aPC9zdHJvbmc+PGJyLz5NWUFOTUFSICAtICA8c3Ryb25nPk1NPC9zdHJvbmc+PGJyLz5OQU1JQklBICAtICA8c3Ryb25nPk5BPC9zdHJvbmc+PGJyLz5OQVVSVSAgLSAgPHN0cm9uZz5OUjwvc3Ryb25nPjxici8+TkVQQUwgIC0gIDxzdHJvbmc+TlA8L3N0cm9uZz48YnIvPk5FVEhFUkxBTkRTICAtICA8c3Ryb25nPk5MPC9zdHJvbmc+PGJyLz5ORVRIRVJMQU5EUyBBTlRJTExFUyAgLSAgPHN0cm9uZz5BTjwvc3Ryb25nPjxici8+TkVXIENBTEVET05JQSAgLSAgPHN0cm9uZz5OQzwvc3Ryb25nPjxici8+TkVXIFpFQUxBTkQgIC0gIDxzdHJvbmc+Tlo8L3N0cm9uZz48YnIvPk5JQ0FSQUdVQSAgLSAgPHN0cm9uZz5OSTwvc3Ryb25nPjxici8+TklHRVIgIC0gIDxzdHJvbmc+TkU8L3N0cm9uZz48YnIvPk5JR0VSSUEgIC0gIDxzdHJvbmc+Tkc8L3N0cm9uZz48YnIvPk5JVUUgIC0gIDxzdHJvbmc+TlU8L3N0cm9uZz48YnIvPk5PUkZPTEsgSVNMQU5EICAtICA8c3Ryb25nPk5GPC9zdHJvbmc+PGJyLz5OT1JUSEVSTiBNQVJJQU5BIElTTEFORFMgIC0gIDxzdHJvbmc+TVA8L3N0cm9uZz48YnIvPk5PUldBWSAgLSAgPHN0cm9uZz5OTzwvc3Ryb25nPjxici8+T01BTiAgLSAgPHN0cm9uZz5PTTwvc3Ryb25nPjxici8+UEFLSVNUQU4gIC0gIDxzdHJvbmc+UEs8L3N0cm9uZz48YnIvPlBBTEFVICAtICA8c3Ryb25nPlBXPC9zdHJvbmc+PGJyLz5QQUxFU1RJTklBTiBURVJSSVRPUlksIE9DQ1VQSUVEICAtICA8c3Ryb25nPlBTPC9zdHJvbmc+PGJyLz5QQU5BTUEgIC0gIDxzdHJvbmc+UEE8L3N0cm9uZz48YnIvPlBBUFVBIE5FVyBHVUlORUEgIC0gIDxzdHJvbmc+UEc8L3N0cm9uZz48YnIvPlBBUkFHVUFZICAtICA8c3Ryb25nPlBZPC9zdHJvbmc+PGJyLz5QRVJVICAtICA8c3Ryb25nPlBFPC9zdHJvbmc+PGJyLz5QSElMSVBQSU5FUyAgLSAgPHN0cm9uZz5QSDwvc3Ryb25nPjxici8+UElUQ0FJUk4gIC0gIDxzdHJvbmc+UE48L3N0cm9uZz48YnIvPlBPTEFORCAgLSAgPHN0cm9uZz5QTDwvc3Ryb25nPjxici8+UE9SVFVHQUwgIC0gIDxzdHJvbmc+UFQ8L3N0cm9uZz48YnIvPlBVRVJUTyBSSUNPICAtICA8c3Ryb25nPlBSPC9zdHJvbmc+PGJyLz5RQVRBUiAgLSAgPHN0cm9uZz5RQTwvc3Ryb25nPjxici8+UkVVTklPTiAgLSAgPHN0cm9uZz5SRTwvc3Ryb25nPjxici8+Uk9NQU5JQSAgLSAgPHN0cm9uZz5STzwvc3Ryb25nPjxici8+UlVTU0lBTiBGRURFUkFUSU9OICAtICA8c3Ryb25nPlJVPC9zdHJvbmc+PGJyLz5SV0FOREEgIC0gIDxzdHJvbmc+Ulc8L3N0cm9uZz48YnIvPlNBSU5UIEhFTEVOQSAgLSAgPHN0cm9uZz5TSDwvc3Ryb25nPjxici8+U0FJTlQgS0lUVFMgQU5EIE5FVklTICAtICA8c3Ryb25nPktOPC9zdHJvbmc+PGJyLz5TQUlOVCBMVUNJQSAgLSAgPHN0cm9uZz5MQzwvc3Ryb25nPjxici8+U0FJTlQgUElFUlJFIEFORCBNSVFVRUxPTiAgLSAgPHN0cm9uZz5QTTwvc3Ryb25nPjxici8+U0FJTlQgVklOQ0VOVCBBTkQgVEhFIEdSRU5BRElORVMgIC0gIDxzdHJvbmc+VkM8L3N0cm9uZz48YnIvPlNBTU9BICAtICA8c3Ryb25nPldTPC9zdHJvbmc+PGJyLz5TQU4gTUFSSU5PICAtICA8c3Ryb25nPlNNPC9zdHJvbmc+PGJyLz5TQU8gVE9NRSBBTkQgUFJJTkNJUEUgIC0gIDxzdHJvbmc+U1Q8L3N0cm9uZz48YnIvPlNBVURJIEFSQUJJQSAgLSAgPHN0cm9uZz5TQTwvc3Ryb25nPjxici8+U0VORUdBTCAgLSAgPHN0cm9uZz5TTjwvc3Ryb25nPjxici8+U0VSQklBIEFORCBNT05URU5FR1JPICAtICA8c3Ryb25nPkNTPC9zdHJvbmc+PGJyLz5TRVlDSEVMTEVTICAtICA8c3Ryb25nPlNDPC9zdHJvbmc+PGJyLz5TSUVSUkEgTEVPTkUgIC0gIDxzdHJvbmc+U0w8L3N0cm9uZz48YnIvPlNJTkdBUE9SRSAgLSAgPHN0cm9uZz5TRzwvc3Ryb25nPjxici8+U0xPVkFLSUEgIC0gIDxzdHJvbmc+U0s8L3N0cm9uZz48YnIvPlNMT1ZFTklBICAtICA8c3Ryb25nPlNJPC9zdHJvbmc+PGJyLz5TT0xPTU9OIElTTEFORFMgIC0gIDxzdHJvbmc+U0I8L3N0cm9uZz48YnIvPlNPTUFMSUEgIC0gIDxzdHJvbmc+U088L3N0cm9uZz48YnIvPlNPVVRIIEFGUklDQSAgLSAgPHN0cm9uZz5aQTwvc3Ryb25nPjxici8+U09VVEggR0VPUkdJQSBBTkQgVEhFIFNPVVRIIFNBTkRXSUNIIElTTEFORFMgIC0gIDxzdHJvbmc+R1M8L3N0cm9uZz48YnIvPlNQQUlOICAtICA8c3Ryb25nPkVTPC9zdHJvbmc+PGJyLz5TUkkgTEFOS0EgIC0gIDxzdHJvbmc+TEs8L3N0cm9uZz48YnIvPlNVREFOICAtICA8c3Ryb25nPlNEPC9zdHJvbmc+PGJyLz5TVVJJTkFNRSAgLSAgPHN0cm9uZz5TUjwvc3Ryb25nPjxici8+U1ZBTEJBUkQgQU5EIEpBTiBNQVlFTiAgLSAgPHN0cm9uZz5TSjwvc3Ryb25nPjxici8+U1dBWklMQU5EICAtICA8c3Ryb25nPlNaPC9zdHJvbmc+PGJyLz5TV0VERU4gIC0gIDxzdHJvbmc+U0U8L3N0cm9uZz48YnIvPlNXSVRaRVJMQU5EICAtICA8c3Ryb25nPkNIPC9zdHJvbmc+PGJyLz5TWVJJQU4gQVJBQiBSRVBVQkxJQyAgLSAgPHN0cm9uZz5TWTwvc3Ryb25nPjxici8+VEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQSAgLSAgPHN0cm9uZz5UVzwvc3Ryb25nPjxici8+VEFKSUtJU1RBTiAgLSAgPHN0cm9uZz5USjwvc3Ryb25nPjxici8+VEFOWkFOSUEsIFVOSVRFRCBSRVBVQkxJQyBPRiAgLSAgPHN0cm9uZz5UWjwvc3Ryb25nPjxici8+VEhBSUxBTkQgIC0gIDxzdHJvbmc+VEg8L3N0cm9uZz48YnIvPlRJTU9SLUxFU1RFICAtICA8c3Ryb25nPlRMPC9zdHJvbmc+PGJyLz5UT0dPICAtICA8c3Ryb25nPlRHPC9zdHJvbmc+PGJyLz5UT0tFTEFVICAtICA8c3Ryb25nPlRLPC9zdHJvbmc+PGJyLz5UT05HQSAgLSAgPHN0cm9uZz5UTzwvc3Ryb25nPjxici8+VFJJTklEQUQgQU5EIFRPQkFHTyAgLSAgPHN0cm9uZz5UVDwvc3Ryb25nPjxici8+VFVOSVNJQSAgLSAgPHN0cm9uZz5UTjwvc3Ryb25nPjxici8+VFVSS0VZICAtICA8c3Ryb25nPlRSPC9zdHJvbmc+PGJyLz5UVVJLTUVOSVNUQU4gIC0gIDxzdHJvbmc+VE08L3N0cm9uZz48YnIvPlRVUktTIEFORCBDQUlDT1MgSVNMQU5EUyAgLSAgPHN0cm9uZz5UQzwvc3Ryb25nPjxici8+VFVWQUxVICAtICA8c3Ryb25nPlRWPC9zdHJvbmc+PGJyLz5VR0FOREEgIC0gIDxzdHJvbmc+VUc8L3N0cm9uZz48YnIvPlVLUkFJTkUgIC0gIDxzdHJvbmc+VUE8L3N0cm9uZz48YnIvPlVOSVRFRCBBUkFCIEVNSVJBVEVTICAtICA8c3Ryb25nPkFFPC9zdHJvbmc+PGJyLz5VTklURUQgS0lOR0RPTSAgLSAgPHN0cm9uZz5HQjwvc3Ryb25nPjxici8+VU5JVEVEIFNUQVRFUyAgLSAgPHN0cm9uZz5VUzwvc3Ryb25nPjxici8+VU5JVEVEIFNUQVRFUyBNSU5PUiBPVVRMWUlORyBJU0xBTkRTICAtICA8c3Ryb25nPlVNPC9zdHJvbmc+PGJyLz5VUlVHVUFZICAtICA8c3Ryb25nPlVZPC9zdHJvbmc+PGJyLz5VWkJFS0lTVEFOICAtICA8c3Ryb25nPlVaPC9zdHJvbmc+PGJyLz5WQU5VQVRVICAtICA8c3Ryb25nPlZVPC9zdHJvbmc+PGJyLz5WRU5FWlVFTEEgIC0gIDxzdHJvbmc+VkU8L3N0cm9uZz48YnIvPlZJRVQgTkFNICAtICA8c3Ryb25nPlZOPC9zdHJvbmc+PGJyLz5WSVJHSU4gSVNMQU5EUywgQlJJVElTSCAgLSAgPHN0cm9uZz5WRzwvc3Ryb25nPjxici8+VklSR0lOIElTTEFORFMsIFUuUy4gIC0gIDxzdHJvbmc+Vkk8L3N0cm9uZz48YnIvPldBTExJUyBBTkQgRlVUVU5BICAtICA8c3Ryb25nPldGPC9zdHJvbmc+PGJyLz5XRVNURVJOIFNBSEFSQSAgLSAgPHN0cm9uZz5FSDwvc3Ryb25nPjxici8+WUVNRU4gIC0gIDxzdHJvbmc+WUU8L3N0cm9uZz48YnIvPlpBTUJJQSAgLSAgPHN0cm9uZz5aTTwvc3Ryb25nPjxici8+WklNQkFCV0UgIC0gIDxzdHJvbmc+Wlc8L3N0cm9uZz48YnIvPgo8L2Rpdj4KPGgzPlN1cHBvcnQ8L2gzPgo8aDQ+U2NyZWVuY2FzdHMgZm9yIGV4dHJhIGhlbHAgd2lsbCBmYWxsb3ctLS0gb24gdGhlIFRPRE88L2g0Pgo8cD5UaGlzIG1vZHVsZSBkb2VzIG5vdCBpbmNsdWRlIGNvbW1lcmNpYWwgc3VwcG9ydC4gSG93ZXZlciwgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHJlc291cmNlcyBhdmFpbGFibGUgdG8gaGVscCB5b3Ugd2l0aCBpdDo8L3A+Cjx1bD4KPGxpPkZvciB0aGUgbGF0ZXN0IHZlcnNpb24gb2YgdGhpcyBtb2R1bGUgb3IgdG8gZmlsZSBhIGJ1ZyByZXBvcnQgdmlzaXQgPGEgaHJlZj0iaHR0cDovL2Rldi5jbXNtYWRlc2ltcGxlLm9yZy9wcm9qZWN0cy9wcGJtIj50aGUgQ01TIEZvcmdlPC9hPi48L2xpPgo8bGk+QWRkaXRpb25hbCBkaXNjdXNzaW9uIG9mIHRoaXMgbW9kdWxlIG1heSBhbHNvIGJlIGZvdW5kIGluIHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0uY21zbWFkZXNpbXBsZS5vcmciPkNNUyBNYWRlIFNpbXBsZSBGb3J1bXM8L2E+LjwvbGk+CjwvdWw+Cgo8aDM+Q29weXJpZ2h0IGFuZCBMaWNlbnNlPC9oMz4KPHA+Q29weXJpZ2h0ICZjb3B5OyAyMDA5LCBqZXJlbXlCYXNzICZsdDs8YSBocmVmPSJodHRwOi8vY29yYmVuc3Byb2R1Y3RzLmNvbSI+Y29yYmVuc3Byb2R1Y3RzLmNvbTwvYT4mZ3Q7IEFsbCBSaWdodHMgQXJlIFJlc2VydmVkLjwvcD4KPHN0cm9uZz5TdXBwb3J0IG1vcmUgbW9kcyBsaWtlIHRoaXM6PC9zdHJvbmc+PGZvcm0gYWN0aW9uPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIiBtZXRob2Q9InBvc3QiPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJjbWQiIHZhbHVlPSJfcy14Y2xpY2siPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJob3N0ZWRfYnV0dG9uX2lkIiB2YWx1ZT0iODgxNzY3NSI+CjxpbnB1dCB0eXBlPSJpbWFnZSIgc3JjPSJodHRwczovL3d3dy5wYXlwYWwuY29tL2VuX1VTL2kvYnRuL2J0bl9kb25hdGVfTEcuZ2lmIiBib3JkZXI9IjAiIG5hbWU9InN1Ym1pdCIgYWx0PSJQYXlQYWwgLSBUaGUgc2FmZXIsIGVhc2llciB3YXkgdG8gcGF5IG9ubGluZSEiPgo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIHNyYz0iaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL3Njci9waXhlbC5naWYiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPgo8L2Zvcm0+PGJyLz4KCjxwPlRoaXMgbW9kdWxlIGhhcyBiZWVuIHJlbGVhc2VkIHVuZGVyIHRoZSA8YSBocmVmPSJodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwiPkdOVSBQdWJsaWMgTGljZW5zZTwvYT4uIFlvdSBtdXN0IGFncmVlIHRvIHRoaXMgbGljZW5zZSBiZWZvcmUgdXNpbmcgdGhlIG1vZHVsZS48L3A+CjwvZGl2ID4KCgo8YiBjbGFzcz0icmJvdHRvbSI+PGIgY2xhc3M9InI0Ij48L2I+PGIgY2xhc3M9InIzIj48L2I+IDxiIGNsYXNzPSJyMiI+PC9iPiA8YiBjbGFzcz0icjEiPjwvYj48L2I+Cgo8L2Rpdj4KJzsKPz4K]]></data>
	</file>
	<file>
	  <filename>/lang/_notes/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/method.install.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCmlmICghaXNzZXQoJGdDbXMpKSBleGl0OwoKCS8vJGRiID0mICRnQ21zLT5HZXREYigpOwovLwkKCgoJLy8gbXlzcWwtc3BlY2lmaWMsIGJ1dCBpZ25vcmVkIGJ5IG90aGVyIGRhdGFiYXNlCgkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQoJCgkKLy8JICAgICRCdG5BcnJheSA9IGFycmF5KAovLyAgICAgICAnQkxTQnRuJyAgPT4gYXJyYXkoCi8vICAgICAgICAgICAnUHJpY2UnID0+ICc1MC4wMCcsCi8vICAgICAgICAgICAnQnV0dG9uSW1nJyA9PiAnaHR0cHM6Ly93d3cucGF5cGFsLmNvbS9lbl9VUy9pL2J0bi9idG5fYnV5bm93Q0NfTEcuZ2lmJywKLy8gICAgICAgICAgICdpdGVtX25hbWUnID0+ICdCTFNjbGFzcycsCi8vCQkgICAnQnRuVHlwZSc9PidfeGNsaWNrJwovLyAgICAgICApLAovLyAgICAgICAKLy8gICAgICAgJ0NQUl9BRUQnID0+IGFycmF5KAovLyAgICAgICAgICAgJ1ByaWNlJyA9PiAnNTAuMDAnLAovLyAgICAgICAgICAgJ0J1dHRvbkltZycgPT4gJ2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2J1eW5vd0NDX0xHLmdpZicsCi8vICAgICAgICAgICAnaXRlbV9uYW1lJyA9PiAnQ1BSX0FFRGNsYXNzJywKLy8JCSAgICdCdG5UeXBlJz0+J194Y2xpY2snCi8vICAgICAgICkKCQoJCi8vLy8KLy8gQ3JlYXQgYnRuIHRhYmxlCi8vLy8JCgkvLyB0YWJsZSBzY2hlbWEgZGVzY3JpcHRpb24KCSRmbGRzID0gIgoJCUlEIEkgS0VZIEFVVE8sCgkJQktTZXQgQygyNTUpCgkJIjsKCgoJLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuIiwKCQkJJGZsZHMsICR0YWJvcHRhcnJheSk7CgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkKCQovLy8vCi8vIENyZWF0IGJ0biB0YWJsZQovLy8vCQoJJGZsZHMgPSAiCglJRCBJIEtFWSwKCWFtb3VudCBDKDI1NSksCglCdXR0b25JbWcgQygyNTUpLAoJaXRlbV9uYW1lIEMoMjU1KSwKCUJ0blR5cGUgQygyNTUpLAoJaXRlbV9udW1iZXIgQygyNTUpLAoJcXVhbnRpdHkgQygyNTUpLAoJVXBncmFkZU1FU1MgQygyNTUpLAoJVGhlQWN0aW9uIEMoMjU1KSwKCVRoZVBhcmFtcyBYLAoJaW52b2ljZSBDKDI1NSksCgl0YXhfY2FydCBDKDI1NSksCgl0YXhfcmF0ZSBDKDI1NSksCgl0YXggQygyNTUpLAoJdW5kZWZpbmVkX3F1YW50aXR5IEMoMjU1KSwKCXdlaWdodF9jYXJ0IEMoMjU1KSwKCXdlaWdodF91bml0IEMoMjU1KSwKCXNoaXBwaW5nIEMoMjU1KSwKCXdlaWdodCBDKDI1NSksCglhZGRyZXNzMSBDKDI1NSksCglhZGRyZXNzMiBDKDI1NSksCgljaXR5IEMoMjU1KSwKCWNvdW50cnkgQygyNTUpLAoJZW1haWwgQygyNTUpLAoJZmlyc3RfbmFtZSBDKDI1NSksCglsYXN0X25hbWUgQygyNTUpLAoJY2hhcnNldCBDKDI1NSksCgluaWdodF9waG9uZV9hIEMoMjU1KSwKCW5pZ2h0X3Bob25lX2IgQygyNTUpLAoJbmlnaHRfcGhvbmVfYyBDKDI1NSksCglzdGF0ZSBDKDI1NSksCgl6aXAgQygyNTUpLAoJcDMgQygyNTUpLAoJdDMgQygyNTUpLAoJYTEgQygyNTUpLAoJdDEgQygyNTUpLAoJcDEgQygyNTUpLAoJYTIgQygyNTUpLAoJdDIgQygyNTUpLAoJcDIgQygyNTUpLAoJc3JjIEMoMjU1KSwKCXNydCBDKDI1NSksCglzcmEgQygyNTUpLAoJbW9kaWZ5IEMoMjU1KSwKCXVzcl9tYW5hZ2UgQygyNTUpCgkiOwoJLy8gY3JlYXRlIGl0LiBUaGlzIHNob3VsZCBkbyBlcnJvciBjaGVja2luZywgYnV0IEknbSBhIGxhenkgc29kLgoJJHNxbGFycmF5ID0gJGRpY3QtPkNyZWF0ZVRhYmxlU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsCgkJCSRmbGRzLCAkdGFib3B0YXJyYXkpOwoJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoKCi8vCi8vCS8vIHdlIHJlYWxseSBkb24ndCBuZWVkIGEgc2VxdWVuY2UgZm9yIHRoaXMgbW9kdWxlLgovLwkvLyBjcmVhdGUgYSBzZXF1ZW5jZQovLwkvLyAkZGItPkNyZWF0ZVNlcXVlbmNlKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX3JhdGVfdGhpc19zZXEiKTsKLy8JJGZldXNlcnMgPSAmJGdDbXMtPm1vZHVsZXNbJ0Zyb250RW5kVXNlcnMnXVsnb2JqZWN0J107ICAKLy8JJGZldUdyb3VwID0gJGZldXNlcnMtPkdldFByZWZlcmVuY2UoJ2RlZmF1bHRfZ3JvdXAnKTsKLy8JLy8gY3JlYXRlIGRlZmF1bHQgcHJlZmVyZW5jZXMKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2RlYnVnSVQnLCAnMCcpOwokc3RhcnRWYWx1ZT0gJ2tkIWlmODQha2NUb3A2UFNLOTQzOGpsMSEnOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnRm9ybVZhbHVlJywgJHN0YXJ0VmFsdWUpOwoJCiRzdGFydEtleSA9ICczNjVkb2NrdDNLc290bWQnOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnRm9ybUtleScsICRzdGFydEtleSk7CQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2tleScsIHRydWUpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY3BwX2hlYWRlcl9pbWFnZScsICcnKTsKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyYmFja19jb2xvcicsICdGRkZGRkYnKTsJCgokdGhpcy0+U2V0UHJlZmVyZW5jZSgnUmVkaXJlY3RVUkwnLCAnJyk7CQokdGhpcy0+U2V0UHJlZmVyZW5jZSgnY2FuY2VsX3JldHVybicsICcnKTsJCgoKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdpbWFnZV91cmwnLCAnJyk7CQoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ2J1c2luZXNzTmFtZScsICcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ1NhbmRCb3gnLCB0cnVlKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ1NBTkRCT1hfYnVzaW5lc3NOYW1lJywgJycpOwokdGhpcy0+U2V0UHJlZmVyZW5jZSgnU0FOREJPWF9wZXJzb25hbE5hbWUnLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdTQU5EQk9YX2J1c2luZXNzUEFTUycsICcnKTsKJHRoaXMtPlNldFByZWZlcmVuY2UoJ1NBTkRCT1hfcGVyc29uYWxQQVNTJywgJycpOwoKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjcycsICcwJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdjdXN0b20nLCAnJyk7CiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdub19zaGlwcGluZycsICcwJyk7CQokdGhpcy0+U2V0UHJlZmVyZW5jZSgncm0nLCAnMicpOwoKJHRoaXMtPlNldFByZWZlcmVuY2UoJ25vdGlmeV91cmwnLCAnJyk7CiAKCiR0aGlzLT5TZXRQcmVmZXJlbmNlKCdMYW5nJywnZW4nKTsKCgoKCgoKCi8vCQovLwkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnQm9va2llbGFja3NNJywgJHRoaXMtPkxhbmcoJ0JPT0tJRV9sYWNrc19tZXNzYWdlJykpOwovLwkkdGhpcy0+U2V0UHJlZmVyZW5jZSgnQm9va2llbGFja3NUJywgJHRoaXMtPkxhbmcoJ0JPT0tJRV9sYWNrc190aXRsZScpKTsKLy8JICAgCi8vCSR0aGlzLT5TZXRQcmVmZXJlbmNlKCdCb29rZXJkZW5pZWRNJywgJHRoaXMtPkxhbmcoJ0JPT0tFUl9kZW5pZWRfbWVzc2FnZScpKTsKLy8JJHRoaXMtPlNldFByZWZlcmVuY2UoJ0Jvb2tlcmRlbmllZFQnLCAkdGhpcy0+TGFuZygnQk9PS0VSX2RlbmllZF90aXRsZScpKTsKLy8KLy8JLy8gYXR0YWNoIEV2ZW50SGFuZGxlcgovLwkvLyBmb3IgY2xlYW51cCBhbmQgY3JlYXRpb24gVE9ETwovLwkkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25DcmVhdGVVc2VyJyk7Ci8vCSR0aGlzLT5BZGRFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPbkRlbGV0ZVVzZXInKTsKLy8JJHRoaXMtPkFkZEV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uVXBkYXRlVXNlcicpOwovLwkkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25FeHBpcmVVc2VyJyk7Ci8vCQovLwkvLyB3aWxsIGJlIHRvIGFsZXJ0IFVzZXIgb2YgYm9va2luZ3MgVE9ETwovLwkkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dpbicpOwovLwkkdGhpcy0+QWRkRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dvdXQnKTsKLy8JCi8vCQovLy8vIHRlbXBsYXRlcyBUT0RPCQovLy8vCSRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfYm9va2luZ19jYWxlbmRhcl90ZW1wbGF0ZS50cGwnKTsKLy8vL2lmKCBmaWxlX2V4aXN0cygkZm4pICkKLy8vL3sKLy8vLyAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKLy8vLyAgCi8vLy8gICRDR0NhbGVuZGFyID0gJiRnQ21zLT5tb2R1bGVzWydDR0NhbGVuZGFyJ11bJ29iamVjdCddOwovLy8vICAkQ0dDYWxlbmRhci0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfTkVXQ0FMRU5EQVJfVEVNUExBVEUsJHRlbXBsYXRlKTsKLy8vLyAgICAkQ0dDYWxlbmRhci0+U2V0VGVtcGxhdGUoJ2NhbGVuZGFyX2Jvb2tpbmdEQVlzJywkdGVtcGxhdGUpOwovLy8vICAkQ0dDYWxlbmRhci0+U2V0UHJlZmVyZW5jZShDR0NBTEVOREFSX1BSRUZfREZMVENBTEVOREFSX1RFTVBMQVRFLCdib29raW5nREFZcycpOwovLy8vfQovLwovLy8vIExpc3QgVGVtcGxhdGVzCi8vLy8kZm4gPSBjbXNfam9pbl9wYXRoKGRpcm5hbWUoX19GSUxFX18pLCd0ZW1wbGF0ZXMnLCdvcmlnX2Jvb2tpbmdfbGlzdF90ZW1wbGF0ZS50cGwnKTsKLy8vL2lmKCBmaWxlX2V4aXN0cygkZm4pICkKLy8vL3sKLy8vLyAgJHRlbXBsYXRlID0gZmlsZV9nZXRfY29udGVudHMoJGZuKTsKLy8vLyAgJENHQ2FsZW5kYXIgPSAmJGdDbXMtPm1vZHVsZXNbJ0NHQ2FsZW5kYXInXVsnb2JqZWN0J107Ci8vLy8gICRDR0NhbGVuZGFyLT5TZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ORVdMSVNUX1RFTVBMQVRFLCR0ZW1wbGF0ZSk7Ci8vLy8gICRDR0NhbGVuZGFyLT5TZXRUZW1wbGF0ZSgnbGlzdF9ib29raW5nVGltZXMnLCR0ZW1wbGF0ZSk7Ci8vLy8gICRDR0NhbGVuZGFyLT5TZXRQcmVmZXJlbmNlKENHQ0FMRU5EQVJfUFJFRl9ERkxUTElTVF9URU1QTEFURSwnYm9va2luZ1RpbWVzJyk7Ci8vLy99Ci8vCi8vCi8vLy8vLyBVRFQgVGVtcGxhdGVzICBUT0RPIHJlbHBhY2Ugd2l0aCBVRFQKLy8vLyRmbiA9IGNtc19qb2luX3BhdGgoZGlybmFtZShfX0ZJTEVfXyksJ3RlbXBsYXRlcycsJ29yaWdfVVJMaGVyZV9VRFQudHBsJyk7Ci8vLy8gICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7Ci8vLy8gIAkJZ2xvYmFsICRnQ21zOwovLy8vCQkkZGIgPSYgJGdDbXMtPkdldERiKCk7Ci8vLy8gICRxdWVyeTIgPSAiSU5TRVJUIElOVE8gIi4KLy8vLyAgICBjbXNfZGJfcHJlZml4KCkuInVzZXJwbHVnaW5zICh1c2VycGx1Z2luX25hbWUsIGNvZGUsIGNyZWF0ZV9kYXRlLCBtb2RpZmllZF9kYXRlKSBWQUxVRVMgKFVSTGhlcmUsIi4kdGVtcGxhdGUuIiwiLiRkYi0+REJUaW1lU3RhbXAodGltZSgpKS4iLCIuJGRiLT5EQlRpbWVTdGFtcCh0aW1lKCkpLiIpIjsKLy8vLyRkYi0+RXhlY3V0ZSgkcXVlcnkyKTsKLy8KJGZuID0gY21zX2pvaW5fcGF0aChkaXJuYW1lKF9fRklMRV9fKSwnVURUJywnb3JpZ19QUEJNX0V4YW1wbGVfRW1haWxfVURULnRwbCcpOwppZiggZmlsZV9leGlzdHMoJGZuKSApewogICR0ZW1wbGF0ZSA9IGZpbGVfZ2V0X2NvbnRlbnRzKCRmbik7CiAgJHVzZXJ0YWdvcHMgPSYgJGdDbXMtPkdldFVzZXJUYWdPcGVyYXRpb25zKCk7CiAgJHVzZXJ0YWdvcHMtPlNldFVzZXJUYWcoJ1BQQk1fRXhhbXBsZV9FbWFpbCcsICR0ZW1wbGF0ZSk7Cn0KCgoJJGFtb3VudD0nJzsKCSRCdXR0b25JbWc9J2h0dHBzOi8vd3d3LnBheXBhbC5jb20vZW5fVVMvaS9idG4vYnRuX2J1eW5vd0NDX0xHLmdpZic7CgkkaXRlbV9uYW1lPSdEb25hdGUnOwoJJEJ0blR5cGU9J19kb25hdGlvbnMnOwoJJGl0ZW1fbnVtYmVyPScnOwoJJHF1YW50aXR5PScnOwoJJFVwZ3JhZGVNRVNTPSdZb3UgaGF2ZSBtYWRlIGEgZG9uYXRpb24uLi4gVGhhbmsgeW91JzsKCSRUaGVBY3Rpb249J1BQQk1fRXhhbXBsZV9FbWFpbCc7CgkkVGhlUGFyYW1zPScnOwoJCgkkcXVlcnkgPSAiSU5TRVJUIElOVE8gIi5jbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0biBTRVQgQktTZXQ9J0F1dGhvckRvbmF0ZSciOwoJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCQkJCQkJCQkJICAKCSRxdWVyeSA9ICJJTlNFUlQgSU5UTyAiLmNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCAoSUQsIGFtb3VudCwgQnV0dG9uSW1nLCBpdGVtX25hbWUsIEJ0blR5cGUsIGl0ZW1fbnVtYmVyLCBxdWFudGl0eSwgVXBncmFkZU1FU1MsIFRoZUFjdGlvbiwgVGhlUGFyYW1zKSBWQUxVRVMgKCBMQVNUX0lOU0VSVF9JRCgpLCciLiRhbW91bnQuIicsJyIuJEJ1dHRvbkltZy4iJywnIi4kaXRlbV9uYW1lLiInLCciLiRCdG5UeXBlLiInLCciLiRpdGVtX251bWJlci4iJywnIi4kcXVhbnRpdHkuIicsJyIuJFVwZ3JhZGVNRVNTLiInLCciLiRUaGVBY3Rpb24uIicsJyIuJFRoZVBhcmFtcy4iJykiOwoJJHJlc3VsdCA9ICYkZGItPkV4ZWN1dGUoJHF1ZXJ5KTsKCgoKLy9pbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvYWN0aW9uLm1hdGNoRkVVbkNBTC5waHAnKTsJCgkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygnaW5zdGFsbGVkJywkdGhpcy0+R2V0VmVyc2lvbigpKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.uninstall.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8qCiAgICBGb3Igc2VwYXJhdGVkIG1ldGhvZHMsIHlvdSdsbCBhbHdheXMgd2FudCB0byBzdGFydCB3aXRoIHRoZSBmb2xsb3dpbmcKICAgIGxpbmUgd2hpY2ggY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgbWV0aG9kIHdhcyBjYWxsZWQgZnJvbSB0aGUgbW9kdWxlCiAgICBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOgoqLyAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoJJGRiID0mICRnQ21zLT5HZXREYigpOwovLwkKCS8vIHJlbW92ZSB0aGUgZGF0YWJhc2UgdGFibGUKCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoICRkYiApOwoJJHNxbGFycmF5ID0gJGRpY3QtPkRyb3BUYWJsZVNRTCggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG4iICk7CgkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkKCSRzcWxhcnJheSA9ICRkaWN0LT5Ecm9wVGFibGVTUUwoIGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIgKTsKCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCgkvLyByZW1vdmUgdGhlIHNlcXVlbmNlCgkvLyAkZGItPkRyb3BTZXF1ZW5jZSggY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfcmF0ZV90aGlzX3NlcSIgKTsKCi8vCS8vIHJlbW92ZSB0aGUgcHJlZmVyZW5jZXMKJHRoaXMtPlJlbW92ZVByZWZlcmVuY2UoKTsKLy8JCi8vCS8vIFJlbW92ZSBhbGwgZXZlbnQgaGFuZGxlcnMKLy8JJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uQ3JlYXRlVXNlcicpOwovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25EZWxldGVVc2VyJyk7Ci8vCSR0aGlzLT5SZW1vdmVFdmVudEhhbmRsZXIoJ0Zyb250RW5kVXNlcnMnLCdPblVwZGF0ZVVzZXInKTsKLy8JJHRoaXMtPlJlbW92ZUV2ZW50SGFuZGxlcignRnJvbnRFbmRVc2VycycsJ09uRXhwaXJlVXNlcicpOwovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dpbicpOwovLwkkdGhpcy0+UmVtb3ZlRXZlbnRIYW5kbGVyKCdGcm9udEVuZFVzZXJzJywnT25Mb2dvdXQnKTsKLy8JCgkvLyBwdXQgbWVudGlvbiBpbnRvIHRoZSBhZG1pbiBsb2cKCSR0aGlzLT5BdWRpdCggMCwgJHRoaXMtPkxhbmcoJ2ZyaWVuZGx5bmFtZScpLCAkdGhpcy0+TGFuZygndW5pbnN0YWxsZWQnKSk7Cgo/Pg==]]></data>
	</file>
	<file>
	  <filename>/method.upgrade.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCi8qCiAgICBGb3Igc2VwYXJhdGVkIG1ldGhvZHMsIHlvdSdsbCBhbHdheXMgd2FudCB0byBzdGFydCB3aXRoIHRoZSBmb2xsb3dpbmcKICAgIGxpbmUgd2hpY2ggY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgbWV0aG9kIHdhcyBjYWxsZWQgZnJvbSB0aGUgbW9kdWxlCiAgICBBUEksIGFuZCB0aGF0IGV2ZXJ5dGhpbmcncyBzYWZlIHRvIGNvbnRpbnVlOgoqLyAKaWYgKCFpc3NldCgkZ0NtcykpIGV4aXQ7CgoKLyogQWZ0ZXIgdGhpcywgdGhlIGNvZGUgaXMgaWRlbnRpY2FsIHRvIHRoZSBjb2RlIHRoYXQgd291bGQgb3RoZXJ3aXNlIGJlCiAgICB3cmFwcGVkIGluIHRoZSBVcGdyYWRlKCkgbWV0aG9kIGluIHRoZSBtb2R1bGUgYm9keS4KKi8KCgkJJGRiID0gJHRoaXMtPkdldERiKCk7CgkJJGN1cnJlbnRfdmVyc2lvbiA9ICRvbGR2ZXJzaW9uOwoJCSRkaWN0ID0gTmV3RGF0YURpY3Rpb25hcnkoJGRiKTsKCQkkdGFib3B0YXJyYXkgPSBhcnJheSgnbXlzcWwnID0+ICdUWVBFPU15SVNBTScpOwoJCWRlYnVnX2Rpc3BsYXkoJ0N1cnJlbnQtdmVyc2lvbjogJy4kY3VycmVudF92ZXJzaW9uKTsKCQlzd2l0Y2goJGN1cnJlbnRfdmVyc2lvbikKCQl7CgkJCWNhc2UgIjAuMSI6CgkJCWNhc2UgIjAuNCI6CgkJCXsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgImludm9pY2UgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAidGF4X2NhcnQgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQkKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgInRheF9yYXRlIEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAidGF4IEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgInVuZGVmaW5lZF9xdWFudGl0eSBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJ3ZWlnaHRfY2FydCBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJ3ZWlnaHRfdW5pdCBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJzaGlwcGluZyBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJ3ZWlnaHQgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCQkkY3VycmVudF92ZXJzaW9uID0gIjAuNSI7CgkJCX0KCQkJCQoJCQljYXNlICIwLjUiOgoJCQl7CgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJhZGRyZXNzMSBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJhZGRyZXNzMiBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJjaXR5IEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgImVtYWlsIEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgImZpcnN0X25hbWUgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAibGFzdF9uYW1lIEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgIm5pZ2h0X3Bob25lX2EgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAibmlnaHRfcGhvbmVfYiBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsJCgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJuaWdodF9waG9uZV9jIEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgInN0YXRlIEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwkKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgInppcCBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgImNvdW50cnkgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJjaGFyc2V0IEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQkJJGN1cnJlbnRfdmVyc2lvbiA9ICIwLjYiOwoJCQl9CgkJCQkKCQkJY2FzZSAiMC42IjoKCQkJewoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAicDMgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAidDMgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAiYTEgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CQoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAidDEgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJwMSBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgImEyIEMoMjU1KSIpOwoJCQkJJGRpY3QtPkV4ZWN1dGVTUUxBcnJheSgkc3FsYXJyYXkpOwoJCQkJJHNxbGFycmF5ID0gJGRpY3QtPkFkZENvbHVtblNRTChjbXNfZGJfcHJlZml4KCkuIm1vZHVsZV9QUEJNX0J0bl9PUFQiLCAidDIgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCQkkc3FsYXJyYXkgPSAkZGljdC0+QWRkQ29sdW1uU1FMKGNtc19kYl9wcmVmaXgoKS4ibW9kdWxlX1BQQk1fQnRuX09QVCIsICJwMiBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgInNyYyBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgInNydCBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgInNyYSBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgIm1vZGlmeSBDKDI1NSkiKTsKCQkJCSRkaWN0LT5FeGVjdXRlU1FMQXJyYXkoJHNxbGFycmF5KTsKCQkJCSRzcWxhcnJheSA9ICRkaWN0LT5BZGRDb2x1bW5TUUwoY21zX2RiX3ByZWZpeCgpLiJtb2R1bGVfUFBCTV9CdG5fT1BUIiwgInVzcl9tYW5hZ2UgQygyNTUpIik7CgkJCQkkZGljdC0+RXhlY3V0ZVNRTEFycmF5KCRzcWxhcnJheSk7CgkJCX0KCQl9CgkJLy8gcHV0IG1lbnRpb24gaW50byB0aGUgYWRtaW4gbG9nCgkJJHRoaXMtPkF1ZGl0KCAwLCAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyksICR0aGlzLT5MYW5nKCd1cGdyYWRlZCcsJHRoaXMtPkdldFZlcnNpb24oKSkpOwoKPz4=]]></data>
	</file>
	<file>
	  <filename>/PayPalButtonMaker.module.php</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PD9waHAKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBNb2R1bGU6IFBheVBhbEJ1dHRvbk1ha2VyIC0gUGF5UGFsIEJ1dHRvbiBDcmVhdG9yIGFuZCBNYW5hZ2VyIAojIE1vZCBkZXNpZ25lZCBieSBqZXJlbXlCYXNzIChqZXJlbXlCYXNzQGNhYmxlb25lLm5ldCkKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIyBDTVMgLSBDTVMgTWFkZSBTaW1wbGUgaXMgKGMpIDIwMDUgYnkgVGVkIEt1bHAgKHdpc2h5QGNtc21hZGVzaW1wbGUub3JnKQojIFRoaXMgcHJvamVjdCdzIGhvbWVwYWdlIGlzOiBodHRwOi8vd3d3LmNtc21hZGVzaW1wbGUub3JnCiMgVGhlIG1vZHVsZSdzIGhvbWVwYWdlIGlzOiBodHRwOi8vZGV2LmNtc21hZGVzaW1wbGUub3JnL3Byb2plY3RzL1BheVBhbEJ1dHRvbk1ha2VyLwojLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQojIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UsIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3IFVTQQojIE9yIHJlYWQgaXQgb25saW5lOiBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvbGljZW5zZXMuaHRtbCNHUEwKIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgpjbGFzcyBQYXlQYWxCdXR0b25NYWtlciBleHRlbmRzIENNU01vZHVsZQp7CglmdW5jdGlvbiBHZXROYW1lKCl7CgkJcmV0dXJuIGdldF9jbGFzcygkdGhpcyk7Cgl9CgkKCWZ1bmN0aW9uIEdldEZyaWVuZGx5TmFtZSgpewoJCXJldHVybiAkdGhpcy0+TGFuZygnZnJpZW5kbHluYW1lJyk7Cgl9CgkKCWZ1bmN0aW9uIEdldFZlcnNpb24oKXsKCQlyZXR1cm4gJzAuNic7Cgl9CgkKCWZ1bmN0aW9uIEdldEhlbHAoKXsKCQlyZXR1cm4gJHRoaXMtPkxhbmcoJ2hlbHAnKTsKCX0KCQoJZnVuY3Rpb24gR2V0QXV0aG9yKCl7CgkJcmV0dXJuICdqZXJlbXlCYXNzJzsKCX0KCQoJZnVuY3Rpb24gR2V0QXV0aG9yRW1haWwoKXsKCQlyZXR1cm4gJ2plcmVteWJhc3NAY2FibGVvbmUubmV0JzsKCX0KCQoJZnVuY3Rpb24gR2V0Q2hhbmdlTG9nKCl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdjaGFuZ2Vsb2cnKTsKCX0KCQoJZnVuY3Rpb24gSXNQbHVnaW5Nb2R1bGUoKXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCQoJZnVuY3Rpb24gSGFzQWRtaW4oKXsKCQlyZXR1cm4gdHJ1ZTsKCX0KCQoJZnVuY3Rpb24gR2V0QWRtaW5TZWN0aW9uKCl7CgkJcmV0dXJuICdleHRlbnNpb25zJzsKCX0KCQoJZnVuY3Rpb24gR2V0QWRtaW5EZXNjcmlwdGlvbigpewoJCXJldHVybiAkdGhpcy0+TGFuZygnbW9kZGVzY3JpcHRpb24nKTsKCX0KCQoJZnVuY3Rpb24gVmlzaWJsZVRvQWRtaW5Vc2VyKCl7CgkJcmV0dXJuICR0aGlzLT5DaGVja1Blcm1pc3Npb24oJ01vZGlmeSBDYWxlbmRhcicpOwoJfQoJCglmdW5jdGlvbiBHZXREZXBlbmRlbmNpZXMoKXsKCQlyZXR1cm4gYXJyYXkoKTsKCX0KCQoJZnVuY3Rpb24gTWluaW11bUNNU1ZlcnNpb24oKXsKCQlyZXR1cm4gIjEuNi41IjsKCX0KCQoJZnVuY3Rpb24gSW5zdGFsbFBvc3RNZXNzYWdlKCl7CgkJcmV0dXJuICR0aGlzLT5MYW5nKCdwb3N0aW5zdGFsbCcpOwoJfQoJCglmdW5jdGlvbiBVbmluc3RhbGxQb3N0TWVzc2FnZSgpewoJCXJldHVybiAkdGhpcy0+TGFuZygncG9zdHVuaW5zdGFsbCcpOwoJfQoKCWZ1bmN0aW9uIFVuaW5zdGFsbFByZU1lc3NhZ2UoKXsKCQlyZXR1cm4gZmFsc2U7Ly8kdGhpcy0+TGFuZygncmVhbGx5X3VuaW5zdGFsbCcpOwoJfQoJZnVuY3Rpb24gRmlyZURlYnVnKCRjb21tYW5kLCRtZXNzYWdlLCR2YXJpYWJsZXM9YXJyYXkoKSkgewoJIGlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdkZWJ1Z0lUJyk9PTEpeyAkZmlyZXBocG1vZHVsZT0kdGhpcy0+R2V0TW9kdWxlSW5zdGFuY2UoJ0ZpcmVQSFBEZWJ1ZycpOwoJICBpZiAoJGZpcmVwaHBtb2R1bGUpIHsKCQkvL01vZHVsZSBmb3VuZAoJCSRmaXJlcGhwbW9kdWxlLT5TZXRNb2R1bGVOYW1lKCR0aGlzLT5HZXROYW1lKCkpOwoJCSRmaXJlcGhwbW9kdWxlLT5Db21tYW5kKCRjb21tYW5kLCAkbWVzc2FnZSwgJHZhcmlhYmxlcyk7CgkgIH0gLy9lbHNlIE1vZHVsZSBub3QgZm91bmQKCSB9Cgl9Ly8kdGhpcy0+RmlyZURlYnVnKCdtZXNzYWdlJywkayk7Ly88PDw8LS0tLS0tRmlyZSBQSFAgbWVzc2FnZQkKCgogIC8qKgogICAqIF9Eb0FkZEV2ZW50KCRwYXJhbXMpCiAgICovCgoKLy9mdW5jdGlvbiBBZGRVU0VSdEZvcm0oJGlkLCAkcGFyYW1zLCAkcmV0dXJuaWQpewovLwlpbmNsdWRlKGRpcm5hbWUoX19GSUxFX18pLicvZnVuY3Rpb24uQWRkVVNFUnRGb3JtLnBocCcpOwovL30KCgoKCiAgCiAgLyoqCiAgICogRGlzcGxheSBhIHNpbXBsZSBtZXNzYWdlCiAgICovCglmdW5jdGlvbiBEaXNwbGF5TWVzc2FnZSgkaWQsICYkcGFyYW1zLCAkcmV0dXJuaWQsICR0aXRsZSwgJG1lc3NhZ2UpewoJCSR0aGlzLT5zbWFydHktPmFzc2lnbigndGl0bGUnLCAkdGl0bGUpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignbWVzc2FnZScsICRtZXNzYWdlKTsKCQllY2hvICR0aGlzLT5Qcm9jZXNzVGVtcGxhdGUoJ21lc3NhZ2UudHBsJyk7Cgl9CiAgCiAgLyoqCiAgICogQ2hlY2sgaWYgY3VycmVudCB1c2VyIGlzIGFsbG93ZWQgdG8gcG9zdAogICAqLwoJZnVuY3Rpb24gUmVhbFVSTCgpewoJCWdsb2JhbCAkZ0NtczsKCQkgJHVybEJBU0UgPSAiaHR0cDovLyIuJF9TRVJWRVJbJ0hUVFBfSE9TVCddLiRfU0VSVkVSWydTQ1JJUFRfTkFNRSddOwoJCQlpZiAoIWVtcHR5KCRfU0VSVkVSWyJRVUVSWV9TVFJJTkciXSkpCgkJCQkkdXJsQkFTRSAuPSAiPyIuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddOwoJCQlpZiAoaXNzZXQoJGdDbXMtPmNvbmZpZ1snYXNzdW1lX21vZF9yZXdyaXRlJ10pICYmICgkZ0Ntcy0+Y29uZmlnWydhc3N1bWVfbW9kX3Jld3JpdGUnXT09dHJ1ZSkgfHwgKGlzc2V0KCRnQ21zLT5jb25maWdbJ3VybF9yZXdyaXRpbmcnXSkmJiAkZ0Ntcy0+Y29uZmlnWyd1cmxfcmV3cml0aW5nJ109PSdtb2RfcmV3cml0ZScpKSB7CgkJCQkkdXJscyA9IHN0cl9yZXBsYWNlKCJpbmRleC5waHA/cGFnZT0iLCAiIiwgJHVybEJBU0UpOwoJCQkJJHVybHMgPSBzdHJfcmVwbGFjZSgiaW5kZXgucGhwIiwgIiIsICR1cmxzKTsKCQkJfWVsc2V7CgkJCQkkdXJscyA9ICR1cmxCQVNFOwoJCQl9CgkJcmV0dXJuICR1cmxzOwoJfQoKCWZ1bmN0aW9uIFJlZGlyZWN0VVJMKCRzZWN1cmVSZWRpcmVjdCl7CgkJZ2xvYmFsICRnQ21zOwoJCSAgCgkJJHJvb3QxPSRnQ21zLT5jb25maWdbJ3Jvb3RfdXJsJ10uIi9pbmRleC5waHAiOwoJCSRyb290Mj0kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLiJpbmRleC5waHAiOwoJCSRyb290Mz0kZ0Ntcy0+Y29uZmlnWydyb290X3VybCddLiIvIjsKCQkkUmVkaXJlY3RVUkw9JHRoaXMtPkdldFByZWZlcmVuY2UoJ1JlZGlyZWN0VVJMJywnJyk7CgkJJHNtYXJ0eU9uPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzbWFydHlPbicsJzAnKTsKCQlpZigkc21hcnR5T249PTEpewoJCQkkUmVkaXJlY3RVUkw9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRSZWRpcmVjdFVSTCk7CgkJfQoJCWlmKCRSZWRpcmVjdFVSTCE9JycpewoJCQlpZiAoaXNzZXQoJGdDbXMtPmNvbmZpZ1snYXNzdW1lX21vZF9yZXdyaXRlJ10pICYmICgkZ0Ntcy0+Y29uZmlnWydhc3N1bWVfbW9kX3Jld3JpdGUnXT09dHJ1ZSkgfHwgKGlzc2V0KCRnQ21zLT5jb25maWdbJ3VybF9yZXdyaXRpbmcnXSkmJiAkZ0Ntcy0+Y29uZmlnWyd1cmxfcmV3cml0aW5nJ109PSdtb2RfcmV3cml0ZScpKSB7CgkJCQkkdXJscyA9ICRSZWRpcmVjdFVSTDsKCQkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXknLGZhbHNlKT09dHJ1ZSl7CgkJCQkJcmV0dXJuICR1cmxzIC49Ij8iLiRzZWN1cmVSZWRpcmVjdDsKCQkJCX0KCQkJfWVsc2V7CQkJCgkJCQkkdXJscyA9ICRSZWRpcmVjdFVSTDsKCQkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXknLGZhbHNlKT09dHJ1ZSl7CgkJCQkJcmV0dXJuICR1cmxzIC49IiYiLiRzZWN1cmVSZWRpcmVjdDsKCQkJCX0KCQkJfQoJCX1lbHNlewoJCSAkdXJsQkFTRSA9ICJodHRwOi8vIi4kX1NFUlZFUlsnSFRUUF9IT1NUJ10uJF9TRVJWRVJbJ1NDUklQVF9OQU1FJ107CgkJCWlmICghZW1wdHkoJF9TRVJWRVJbIlFVRVJZX1NUUklORyJdKSkkdXJsQkFTRSAuPSAiPyIuJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddOwoJCQlpZiAoaXNzZXQoJGdDbXMtPmNvbmZpZ1snYXNzdW1lX21vZF9yZXdyaXRlJ10pICYmICgkZ0Ntcy0+Y29uZmlnWydhc3N1bWVfbW9kX3Jld3JpdGUnXT09dHJ1ZSkgfHwgKGlzc2V0KCRnQ21zLT5jb25maWdbJ3VybF9yZXdyaXRpbmcnXSkmJiAkZ0Ntcy0+Y29uZmlnWyd1cmxfcmV3cml0aW5nJ109PSdtb2RfcmV3cml0ZScpKSB7CgkJCQkkdXJscyA9IHN0cl9yZXBsYWNlKCJpbmRleC5waHA/cGFnZT0iLCAiIiwgJHVybEJBU0UpOwoJCQkJJHVybHMgPSBzdHJfcmVwbGFjZSgiaW5kZXgucGhwIiwgIiIsICR1cmxzKTsKCQkJCWlmKCR0aGlzLT5HZXRQcmVmZXJlbmNlKCdrZXknLGZhbHNlKT09dHJ1ZSl7CgkJCQkJcmV0dXJuICR1cmxzIC49Ij8iLiRzZWN1cmVSZWRpcmVjdDsKCQkJCX0KCQkJfWVsc2V7CgkJCQkkdXJscyA9ICR1cmxCQVNFOwoJCQkJaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleScsZmFsc2UpPT10cnVlKXsKCQkJCQlpZigoJGdDbXMtPmNvbmZpZ1sncm9vdF91cmwnXT09JHVybHMpfHwoJHJvb3QxPT0kdXJscyl8fCgkcm9vdDI9PSR1cmxzKXx8KCRyb290Mz09JHVybHMpKXsKCQkJCQkJcmV0dXJuICR1cmxzIC49Ij8iLiRzZWN1cmVSZWRpcmVjdDsKCQkJCQl9ZWxzZXsKCQkJCQkJcmV0dXJuICR1cmxzIC49IiYiLiRzZWN1cmVSZWRpcmVjdDsKCQkJCQl9CgkJCQl9CgkJCX0KCQl9CgkJcmV0dXJuICR1cmxzOwoJfQoKCWZ1bmN0aW9uIG15UmVkaXJlY3RUb1RhYiggJGlkLCAkdGFiLCAkcGFyYW1zID0gJycgKXsKCQkkcGFybXMgPSBhcnJheSgpOwoJCWlmKCBpc19hcnJheSgkcGFyYW1zKSl7CgkJCSRwYXJtcyA9ICRwYXJhbXM7CgkJfQoJCSRwYXJtcyA9IGFycmF5KCdhY3RpdmVfdGFiJyA9PiAkdGFiICk7CgkJJHRoaXMtPm15UmVkaXJlY3QoICRpZCwgJ2RlZmF1bHRhZG1pbicsICRwYXJtcyApOwoJfQoJCglmdW5jdGlvbiBteVJlZGlyZWN0KCAkaWQsICRhY3Rpb24sICRwYXJhbXMgPSAnJyApewoJCXVuc2V0KCRwYXJhbXNbJ2FjdGlvbiddKTsKCQkkdGhpcy0+UmVkaXJlY3QoICRpZCwgJGFjdGlvbiwgJycsICRwYXJhbXMgKTsKCX0KCgoKCglmdW5jdGlvbiBMaXN0QlROKCl7CgkKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkKCQkkcmV0cmVzdWx0ID0gYXJyYXkoKTsKCQkkcmVzdWx0cyA9IGFycmF5KCk7CQoJCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0biAnCgkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0bl9PUFQgJwoJCS4nT04gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0bi5JRCA9ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG5fT1BULklEJzsKCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCgkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7CgkJCSRkYUtleT0kcmVzdWx0LT5maWVsZHNbJ0JLU2V0J107CgkJCSRyZXN1bHRzWydhbW91bnQnXT0gJHJlc3VsdC0+ZmllbGRzWydhbW91bnQnXTsKCQkJJHJlc3VsdHNbJ0J1dHRvbkltZyddPSAkcmVzdWx0LT5maWVsZHNbJ0J1dHRvbkltZyddOwoJCQkkcmVzdWx0c1snaXRlbV9uYW1lJ109ICRyZXN1bHQtPmZpZWxkc1snaXRlbV9uYW1lJ107CgkJCSRyZXN1bHRzWydCdG5UeXBlJ109ICRyZXN1bHQtPmZpZWxkc1snQnRuVHlwZSddOwoJCQkkcmVzdWx0c1snaXRlbV9udW1iZXInXT0gJHJlc3VsdC0+ZmllbGRzWydpdGVtX251bWJlciddOwoJCQkkcmVzdWx0c1sncXVhbnRpdHknXT0gJHJlc3VsdC0+ZmllbGRzWydxdWFudGl0eSddOwoJCQkkcmVzdWx0c1snVXBncmFkZU1FU1MnXT0gJHJlc3VsdC0+ZmllbGRzWydVcGdyYWRlTUVTUyddOwoJCQkkcmVzdWx0c1snVGhlQWN0aW9uJ109ICRyZXN1bHQtPmZpZWxkc1snVGhlQWN0aW9uJ107CgkJCSRyZXN1bHRzWydUaGVQYXJhbXMnXT0gJHJlc3VsdC0+ZmllbGRzWydUaGVQYXJhbXMnXTsKCQkJJHJlc3VsdHNbJ2ludm9pY2UnXT0gJHJlc3VsdC0+ZmllbGRzWydpbnZvaWNlJ107CgkJCSRyZXN1bHRzWyd0YXhfY2FydCddPSAkcmVzdWx0LT5maWVsZHNbJ3RheF9jYXJ0J107CgkJCSRyZXN1bHRzWyd0YXhfcmF0ZSddPSAkcmVzdWx0LT5maWVsZHNbJ3RheF9yYXRlJ107CgkJCSRyZXN1bHRzWyd0YXgnXT0gJHJlc3VsdC0+ZmllbGRzWyd0YXgnXTsKCQkJJHJlc3VsdHNbJ3VuZGVmaW5lZF9xdWFudGl0eSddPSAkcmVzdWx0LT5maWVsZHNbJ3VuZGVmaW5lZF9xdWFudGl0eSddOwoJCQkkcmVzdWx0c1snd2VpZ2h0X2NhcnQnXT0gJHJlc3VsdC0+ZmllbGRzWyd3ZWlnaHRfY2FydCddOwoJCQkkcmVzdWx0c1snd2VpZ2h0X3VuaXQnXT0gJHJlc3VsdC0+ZmllbGRzWyd3ZWlnaHRfdW5pdCddOwoJCQkkcmVzdWx0c1snc2hpcHBpbmcnXT0gJHJlc3VsdC0+ZmllbGRzWydzaGlwcGluZyddOwoJCQkkcmVzdWx0c1snd2VpZ2h0J109ICRyZXN1bHQtPmZpZWxkc1snd2VpZ2h0J107CgkJCSRyZXN1bHRzWydhZGRyZXNzMSddPSAkcmVzdWx0LT5maWVsZHNbJ2FkZHJlc3MxJ107CgkJCSRyZXN1bHRzWydhZGRyZXNzMiddPSAkcmVzdWx0LT5maWVsZHNbJ2FkZHJlc3MyJ107CgkJCSRyZXN1bHRzWydjaXR5J109ICRyZXN1bHQtPmZpZWxkc1snY2l0eSddOwoJCQkkcmVzdWx0c1snY291bnRyeSddPSAkcmVzdWx0LT5maWVsZHNbJ2NvdW50cnknXTsKCQkJJHJlc3VsdHNbJ2VtYWlsJ109ICRyZXN1bHQtPmZpZWxkc1snZW1haWwnXTsKCQkJJHJlc3VsdHNbJ2ZpcnN0X25hbWUnXT0gJHJlc3VsdC0+ZmllbGRzWydmaXJzdF9uYW1lJ107CgkJCSRyZXN1bHRzWydsYXN0X25hbWUnXT0gJHJlc3VsdC0+ZmllbGRzWydsYXN0X25hbWUnXTsKCQkJJHJlc3VsdHNbJ2NoYXJzZXQnXT0gJHJlc3VsdC0+ZmllbGRzWydjaGFyc2V0J107CgkJCSRyZXN1bHRzWyduaWdodF9waG9uZV9hJ109ICRyZXN1bHQtPmZpZWxkc1snbmlnaHRfcGhvbmVfYSddOwoJCQkkcmVzdWx0c1snbmlnaHRfcGhvbmVfYiddPSAkcmVzdWx0LT5maWVsZHNbJ25pZ2h0X3Bob25lX2InXTsKCQkJJHJlc3VsdHNbJ25pZ2h0X3Bob25lX2MnXT0gJHJlc3VsdC0+ZmllbGRzWyduaWdodF9waG9uZV9jJ107CgkJCSRyZXN1bHRzWydzdGF0ZSddPSAkcmVzdWx0LT5maWVsZHNbJ3N0YXRlJ107CgkJCSRyZXN1bHRzWyd6aXAnXT0gJHJlc3VsdC0+ZmllbGRzWyd6aXAnXTsKCQkJJHJlc3VsdHNbJ3AzJ109ICRyZXN1bHQtPmZpZWxkc1sncDMnXTsKCQkJJHJlc3VsdHNbJ3QzJ109ICRyZXN1bHQtPmZpZWxkc1sndDMnXTsKCQkJJHJlc3VsdHNbJ2ExJ109ICRyZXN1bHQtPmZpZWxkc1snYTEnXTsKCQkJJHJlc3VsdHNbJ3QxJ109ICRyZXN1bHQtPmZpZWxkc1sndDEnXTsKCQkJJHJlc3VsdHNbJ3AxJ109ICRyZXN1bHQtPmZpZWxkc1sncDEnXTsKCQkJJHJlc3VsdHNbJ2EyJ109ICRyZXN1bHQtPmZpZWxkc1snYTInXTsKCQkJJHJlc3VsdHNbJ3QyJ109ICRyZXN1bHQtPmZpZWxkc1sndDInXTsKCQkJJHJlc3VsdHNbJ3AyJ109ICRyZXN1bHQtPmZpZWxkc1sncDInXTsKCQkJJHJlc3VsdHNbJ3NyYyddPSAkcmVzdWx0LT5maWVsZHNbJ3NyYyddOwoJCQkkcmVzdWx0c1snc3J0J109ICRyZXN1bHQtPmZpZWxkc1snc3J0J107CgkJCSRyZXN1bHRzWydzcmEnXT0gJHJlc3VsdC0+ZmllbGRzWydzcmEnXTsKCQkJJHJlc3VsdHNbJ21vZGlmeSddPSAkcmVzdWx0LT5maWVsZHNbJ21vZGlmeSddOwoJCQkkcmVzdWx0c1sndXNyX21hbmFnZSddPSAkcmVzdWx0LT5maWVsZHNbJ3Vzcl9tYW5hZ2UnXTsKCQkJJHJldHJlc3VsdFskZGFLZXldID0gJHJlc3VsdHM7CgkJCSRyZXN1bHQtPk1vdmVOZXh0KCk7CgkJfQoJCgkJcmV0dXJuICRyZXRyZXN1bHQ7Cgl9IAoKCglmdW5jdGlvbiBMaXN0QUJUTigkQlROKXsKCQkkZGIgPSYgJHRoaXMtPkdldERiKCk7CgkKCQkkcmV0cmVzdWx0ID0gYXJyYXkoKTsKCQkkcmVzdWx0cyA9IGFycmF5KCk7CQoJCgkJJHF1ZXJ5ID0gJ1NFTEVDVCAqIEZST00gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0biAnCgkJLidMRUZUIEpPSU4gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0bl9PUFQgJwoJCS4nT04gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0bi5JRCA9ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG5fT1BULklEJzsKCQkkcmVzdWx0ID0gJiRkYi0+RXhlY3V0ZSgkcXVlcnkpOwoJCgkJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7CgkKCQkJJGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snQktTZXQnXTsKCQkJJHJlc3VsdHNbJ2Ftb3VudCddPSAkcmVzdWx0LT5maWVsZHNbJ2Ftb3VudCddOwoJCQkkcmVzdWx0c1snQnV0dG9uSW1nJ109ICRyZXN1bHQtPmZpZWxkc1snQnV0dG9uSW1nJ107CgkJCSRyZXN1bHRzWydpdGVtX25hbWUnXT0gJHJlc3VsdC0+ZmllbGRzWydpdGVtX25hbWUnXTsKCQkJJHJlc3VsdHNbJ0J0blR5cGUnXT0gJHJlc3VsdC0+ZmllbGRzWydCdG5UeXBlJ107CgkJCSRyZXN1bHRzWydpdGVtX251bWJlciddPSAkcmVzdWx0LT5maWVsZHNbJ2l0ZW1fbnVtYmVyJ107CgkJCSRyZXN1bHRzWydxdWFudGl0eSddPSAkcmVzdWx0LT5maWVsZHNbJ3F1YW50aXR5J107CgkJCSRyZXN1bHRzWydVcGdyYWRlTUVTUyddPSAkcmVzdWx0LT5maWVsZHNbJ1VwZ3JhZGVNRVNTJ107CgkJCSRyZXN1bHRzWydUaGVBY3Rpb24nXT0gJHJlc3VsdC0+ZmllbGRzWydUaGVBY3Rpb24nXTsKCQkJJHJlc3VsdHNbJ1RoZVBhcmFtcyddPSAkcmVzdWx0LT5maWVsZHNbJ1RoZVBhcmFtcyddOwoJCQkkcmVzdWx0c1snaW52b2ljZSddPSAkcmVzdWx0LT5maWVsZHNbJ2ludm9pY2UnXTsKCQkJJHJlc3VsdHNbJ3RheF9jYXJ0J109ICRyZXN1bHQtPmZpZWxkc1sndGF4X2NhcnQnXTsKCQkJJHJlc3VsdHNbJ3RheF9yYXRlJ109ICRyZXN1bHQtPmZpZWxkc1sndGF4X3JhdGUnXTsKCQkJJHJlc3VsdHNbJ3RheCddPSAkcmVzdWx0LT5maWVsZHNbJ3RheCddOwoJCQkkcmVzdWx0c1sndW5kZWZpbmVkX3F1YW50aXR5J109ICRyZXN1bHQtPmZpZWxkc1sndW5kZWZpbmVkX3F1YW50aXR5J107CgkJCSRyZXN1bHRzWyd3ZWlnaHRfY2FydCddPSAkcmVzdWx0LT5maWVsZHNbJ3dlaWdodF9jYXJ0J107CgkJCSRyZXN1bHRzWyd3ZWlnaHRfdW5pdCddPSAkcmVzdWx0LT5maWVsZHNbJ3dlaWdodF91bml0J107CgkJCSRyZXN1bHRzWydzaGlwcGluZyddPSAkcmVzdWx0LT5maWVsZHNbJ3NoaXBwaW5nJ107CgkJCSRyZXN1bHRzWyd3ZWlnaHQnXT0gJHJlc3VsdC0+ZmllbGRzWyd3ZWlnaHQnXTsKCQkJJHJlc3VsdHNbJ2FkZHJlc3MxJ109ICRyZXN1bHQtPmZpZWxkc1snYWRkcmVzczEnXTsKCQkJJHJlc3VsdHNbJ2FkZHJlc3MyJ109ICRyZXN1bHQtPmZpZWxkc1snYWRkcmVzczInXTsKCQkJJHJlc3VsdHNbJ2NpdHknXT0gJHJlc3VsdC0+ZmllbGRzWydjaXR5J107CgkJCSRyZXN1bHRzWydjb3VudHJ5J109ICRyZXN1bHQtPmZpZWxkc1snY291bnRyeSddOwoJCQkkcmVzdWx0c1snZW1haWwnXT0gJHJlc3VsdC0+ZmllbGRzWydlbWFpbCddOwoJCQkkcmVzdWx0c1snZmlyc3RfbmFtZSddPSAkcmVzdWx0LT5maWVsZHNbJ2ZpcnN0X25hbWUnXTsKCQkJJHJlc3VsdHNbJ2xhc3RfbmFtZSddPSAkcmVzdWx0LT5maWVsZHNbJ2xhc3RfbmFtZSddOwoJCQkkcmVzdWx0c1snY2hhcnNldCddPSAkcmVzdWx0LT5maWVsZHNbJ2NoYXJzZXQnXTsKCQkJJHJlc3VsdHNbJ25pZ2h0X3Bob25lX2EnXT0gJHJlc3VsdC0+ZmllbGRzWyduaWdodF9waG9uZV9hJ107CgkJCSRyZXN1bHRzWyduaWdodF9waG9uZV9iJ109ICRyZXN1bHQtPmZpZWxkc1snbmlnaHRfcGhvbmVfYiddOwoJCQkkcmVzdWx0c1snbmlnaHRfcGhvbmVfYyddPSAkcmVzdWx0LT5maWVsZHNbJ25pZ2h0X3Bob25lX2MnXTsKCQkJJHJlc3VsdHNbJ3N0YXRlJ109ICRyZXN1bHQtPmZpZWxkc1snc3RhdGUnXTsKCQkJJHJlc3VsdHNbJ3ppcCddPSAkcmVzdWx0LT5maWVsZHNbJ3ppcCddOwoJCQkkcmVzdWx0c1sncDMnXT0gJHJlc3VsdC0+ZmllbGRzWydwMyddOwoJCQkkcmVzdWx0c1sndDMnXT0gJHJlc3VsdC0+ZmllbGRzWyd0MyddOwoJCQkkcmVzdWx0c1snYTEnXT0gJHJlc3VsdC0+ZmllbGRzWydhMSddOwoJCQkkcmVzdWx0c1sndDEnXT0gJHJlc3VsdC0+ZmllbGRzWyd0MSddOwoJCQkkcmVzdWx0c1sncDEnXT0gJHJlc3VsdC0+ZmllbGRzWydwMSddOwoJCQkkcmVzdWx0c1snYTInXT0gJHJlc3VsdC0+ZmllbGRzWydhMiddOwoJCQkkcmVzdWx0c1sndDInXT0gJHJlc3VsdC0+ZmllbGRzWyd0MiddOwoJCQkkcmVzdWx0c1sncDInXT0gJHJlc3VsdC0+ZmllbGRzWydwMiddOwoJCQkkcmVzdWx0c1snc3JjJ109ICRyZXN1bHQtPmZpZWxkc1snc3JjJ107CgkJCSRyZXN1bHRzWydzcnQnXT0gJHJlc3VsdC0+ZmllbGRzWydzcnQnXTsKCQkJJHJlc3VsdHNbJ3NyYSddPSAkcmVzdWx0LT5maWVsZHNbJ3NyYSddOwoJCQkkcmVzdWx0c1snbW9kaWZ5J109ICRyZXN1bHQtPmZpZWxkc1snbW9kaWZ5J107CgkJCSRyZXN1bHRzWyd1c3JfbWFuYWdlJ109ICRyZXN1bHQtPmZpZWxkc1sndXNyX21hbmFnZSddOwoJCQkkcmV0cmVzdWx0WyRkYUtleV0gPSAkcmVzdWx0czsKCQkJJHJlc3VsdC0+TW92ZU5leHQoKTsKCQl9CgkKCQlyZXR1cm4gJHJldHJlc3VsdFskQlROXTsKCX0gCgoKZnVuY3Rpb24gY2hlY2tBQlROKCRCVE4pewoJJGRiID0mICR0aGlzLT5HZXREYigpOwoKCSRyZXRyZXN1bHQgPSBhcnJheSgpOwoJJHJlc3VsdHMgPSBhcnJheSgpOwkKCgkkcXVlcnkgPSAnU0VMRUNUICogRlJPTSAnLmNtc19kYl9wcmVmaXgoKS4nbW9kdWxlX1BQQk1fQnRuICcKCS4nTEVGVCBKT0lOICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG5fT1BUICcKCS4nT04gJy5jbXNfZGJfcHJlZml4KCkuJ21vZHVsZV9QUEJNX0J0bi5JRCA9ICcuY21zX2RiX3ByZWZpeCgpLidtb2R1bGVfUFBCTV9CdG5fT1BULklEJzsKCSRyZXN1bHQgPSAmJGRiLT5FeGVjdXRlKCRxdWVyeSk7CgoJd2hpbGUgKCRyZXN1bHQgJiYgISRyZXN1bHQtPkVPRil7CgkJJGRhS2V5PSRyZXN1bHQtPmZpZWxkc1snQktTZXQnXTsKCQkkcmVzdWx0c1snYW1vdW50J109ICRyZXN1bHQtPmZpZWxkc1snYW1vdW50J107CgkJJHJlc3VsdHNbJ0J1dHRvbkltZyddPSAkcmVzdWx0LT5maWVsZHNbJ0J1dHRvbkltZyddOwoJCSRyZXN1bHRzWydpdGVtX25hbWUnXT0gJHJlc3VsdC0+ZmllbGRzWydpdGVtX25hbWUnXTsKCQkkcmVzdWx0c1snQnRuVHlwZSddPSAkcmVzdWx0LT5maWVsZHNbJ0J0blR5cGUnXTsKCQkkcmVzdWx0c1snaXRlbV9udW1iZXInXT0gJHJlc3VsdC0+ZmllbGRzWydpdGVtX251bWJlciddOwoJCSRyZXN1bHRzWydxdWFudGl0eSddPSAkcmVzdWx0LT5maWVsZHNbJ3F1YW50aXR5J107CgkJJHJlc3VsdHNbJ1VwZ3JhZGVNRVNTJ109ICRyZXN1bHQtPmZpZWxkc1snVXBncmFkZU1FU1MnXTsKCQkkcmVzdWx0c1snVGhlQWN0aW9uJ109ICRyZXN1bHQtPmZpZWxkc1snVGhlQWN0aW9uJ107CgkJJHJlc3VsdHNbJ1RoZVBhcmFtcyddPSAkcmVzdWx0LT5maWVsZHNbJ1RoZVBhcmFtcyddOwoJCSRyZXN1bHRzWydpbnZvaWNlJ109ICRyZXN1bHQtPmZpZWxkc1snaW52b2ljZSddOwoJCSRyZXN1bHRzWyd0YXhfY2FydCddPSAkcmVzdWx0LT5maWVsZHNbJ3RheF9jYXJ0J107CgkJJHJlc3VsdHNbJ3RheF9yYXRlJ109ICRyZXN1bHQtPmZpZWxkc1sndGF4X3JhdGUnXTsKCQkkcmVzdWx0c1sndGF4J109ICRyZXN1bHQtPmZpZWxkc1sndGF4J107CgkJJHJlc3VsdHNbJ3VuZGVmaW5lZF9xdWFudGl0eSddPSAkcmVzdWx0LT5maWVsZHNbJ3VuZGVmaW5lZF9xdWFudGl0eSddOwoJCSRyZXN1bHRzWyd3ZWlnaHRfY2FydCddPSAkcmVzdWx0LT5maWVsZHNbJ3dlaWdodF9jYXJ0J107CgkJJHJlc3VsdHNbJ3dlaWdodF91bml0J109ICRyZXN1bHQtPmZpZWxkc1snd2VpZ2h0X3VuaXQnXTsKCQkkcmVzdWx0c1snc2hpcHBpbmcnXT0gJHJlc3VsdC0+ZmllbGRzWydzaGlwcGluZyddOwoJCSRyZXN1bHRzWyd3ZWlnaHQnXT0gJHJlc3VsdC0+ZmllbGRzWyd3ZWlnaHQnXTsJCgkJJHJlc3VsdHNbJ2FkZHJlc3MxJ109ICRyZXN1bHQtPmZpZWxkc1snYWRkcmVzczEnXTsKCQkkcmVzdWx0c1snYWRkcmVzczInXT0gJHJlc3VsdC0+ZmllbGRzWydhZGRyZXNzMiddOwoJCSRyZXN1bHRzWydjaXR5J109ICRyZXN1bHQtPmZpZWxkc1snY2l0eSddOwoJCSRyZXN1bHRzWydjb3VudHJ5J109ICRyZXN1bHQtPmZpZWxkc1snY291bnRyeSddOwoJCSRyZXN1bHRzWydlbWFpbCddPSAkcmVzdWx0LT5maWVsZHNbJ2VtYWlsJ107CgkJJHJlc3VsdHNbJ2ZpcnN0X25hbWUnXT0gJHJlc3VsdC0+ZmllbGRzWydmaXJzdF9uYW1lJ107CgkJJHJlc3VsdHNbJ2xhc3RfbmFtZSddPSAkcmVzdWx0LT5maWVsZHNbJ2xhc3RfbmFtZSddOwoJCSRyZXN1bHRzWydjaGFyc2V0J109ICRyZXN1bHQtPmZpZWxkc1snY2hhcnNldCddOwoJCSRyZXN1bHRzWyduaWdodF9waG9uZV9hJ109ICRyZXN1bHQtPmZpZWxkc1snbmlnaHRfcGhvbmVfYSddOwoJCSRyZXN1bHRzWyduaWdodF9waG9uZV9iJ109ICRyZXN1bHQtPmZpZWxkc1snbmlnaHRfcGhvbmVfYiddOwoJCSRyZXN1bHRzWyduaWdodF9waG9uZV9jJ109ICRyZXN1bHQtPmZpZWxkc1snbmlnaHRfcGhvbmVfYyddOwoJCSRyZXN1bHRzWydzdGF0ZSddPSAkcmVzdWx0LT5maWVsZHNbJ3N0YXRlJ107CgkJJHJlc3VsdHNbJ3ppcCddPSAkcmVzdWx0LT5maWVsZHNbJ3ppcCddOwoJCSRyZXN1bHRzWydwMyddPSAkcmVzdWx0LT5maWVsZHNbJ3AzJ107CgkJJHJlc3VsdHNbJ3QzJ109ICRyZXN1bHQtPmZpZWxkc1sndDMnXTsKCQkkcmVzdWx0c1snYTEnXT0gJHJlc3VsdC0+ZmllbGRzWydhMSddOwoJCSRyZXN1bHRzWyd0MSddPSAkcmVzdWx0LT5maWVsZHNbJ3QxJ107CgkJJHJlc3VsdHNbJ3AxJ109ICRyZXN1bHQtPmZpZWxkc1sncDEnXTsKCQkkcmVzdWx0c1snYTInXT0gJHJlc3VsdC0+ZmllbGRzWydhMiddOwoJCSRyZXN1bHRzWyd0MiddPSAkcmVzdWx0LT5maWVsZHNbJ3QyJ107CgkJJHJlc3VsdHNbJ3AyJ109ICRyZXN1bHQtPmZpZWxkc1sncDInXTsKCQkkcmVzdWx0c1snc3JjJ109ICRyZXN1bHQtPmZpZWxkc1snc3JjJ107CgkJJHJlc3VsdHNbJ3NydCddPSAkcmVzdWx0LT5maWVsZHNbJ3NydCddOwoJCSRyZXN1bHRzWydzcmEnXT0gJHJlc3VsdC0+ZmllbGRzWydzcmEnXTsKCQkkcmVzdWx0c1snbW9kaWZ5J109ICRyZXN1bHQtPmZpZWxkc1snbW9kaWZ5J107CgkJJHJlc3VsdHNbJ3Vzcl9tYW5hZ2UnXT0gJHJlc3VsdC0+ZmllbGRzWyd1c3JfbWFuYWdlJ107CgkJJHJldHJlc3VsdFskZGFLZXldID0gJHJlc3VsdHM7CgkJJHJlc3VsdC0+TW92ZU5leHQoKTsKCX0KCWlmKCRyZXRyZXN1bHRbJEJUTl0hPScnKXskcj10cnVlO30KCXJldHVybiAkcjsKfSAJCgoKCmZ1bmN0aW9uIF9BZG1pbkNyZWF0ZVRlbXBsYXRlTGlzdCggJGlkLCAkcmV0dXJuaWQsICRwcmVmaXgsICRkZWZhdWx0dGVtcGxhdGVwcmVmLCAKCQkJCSAgICAgJGFjdGl2ZV90YWIsICRkZWZhdWx0cHJlZm5hbWUsCgkJCQkgICAgICR0aXRsZSl7CgkJLy8gd2UncmUgZ29ubmEgYWxsb3cgbXVsdGlwbGUgdGVtcGxhdGVzIGhlcmUKCQkvLyBidXQgd2UncmUgZ29ubmEgcHJlZml4IHRoZW0gYWxsIHdpdGggc29tZXRoaW5nCgkJZ2xvYmFsICRnQ21zOwoJCQoJCSRmYWxzZWltYWdlMSA9ICRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+RGlzcGxheUltYWdlKCdpY29ucy9zeXN0ZW0vZmFsc2UuZ2lmJywnbWFrZSBkZWZhdWx0JywnJywnJywnc3lzdGVtaWNvbicpOwoJCSR0cnVlaW1hZ2UxID0gJGdDbXMtPnZhcmlhYmxlc1snYWRtaW50aGVtZSddLT5EaXNwbGF5SW1hZ2UoJ2ljb25zL3N5c3RlbS90cnVlLmdpZicsJ2RlZmF1bHQnLCcnLCcnLCdzeXN0ZW1pY29uJyk7CgkJJGFsbGRiUHJvZmlsZXMgPSAkdGhpcy0+TGlzdEJUTigpOwoJCSRyb3dhcnJheSA9IGFycmF5KCk7CgkJJHJvd2NsYXNzID0gJ3JvdzEnOwoJCQoJCQoJCQoJCWZvcmVhY2goJGFsbGRiUHJvZmlsZXMgYXMgJGtleSA9PiAkb25lZGJQcm9maWxlICl7CgkJCSRhbW91bnQ9ICRvbmVkYlByb2ZpbGVbJ2Ftb3VudCddOwoJCQkkQnV0dG9uSW1nPSAkb25lZGJQcm9maWxlWydCdXR0b25JbWcnXTsKCQkJJGl0ZW1fbmFtZT0gJG9uZWRiUHJvZmlsZVsnaXRlbV9uYW1lJ107CgkJCSRCdG5UeXBlPSAkb25lZGJQcm9maWxlWydCdG5UeXBlJ107CgkJCSRpdGVtX251bWJlcj0gJG9uZWRiUHJvZmlsZVsnaXRlbV9udW1iZXInXTsKCQkJJHF1YW50aXR5PSAkb25lZGJQcm9maWxlWydxdWFudGl0eSddOwkKCQkKCQkkcm93ID0gbmV3IFN0ZENsYXNzKCk7CgkJJHJvdy0+bmFtZSA9ICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkJCSRrZXksIGFycmF5KCdCS1NldCcgPT4gJGtleSwKCQkJCQkJCQknYWN0aXZlX3RhYicgPT4gJGFjdGl2ZV90YWIsCgkJCQkJCQkJJ21vZGUnPT4nZWRpdCcpKTsKCQkkcm93LT5kZWZhdWx0ID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwKCQkJCQkJJGl0ZW1fbmFtZSwgYXJyYXkoJ0JLU2V0JyA9PiAka2V5LAoJCQkJCQkJCSdhY3RpdmVfdGFiJyA9PiAkYWN0aXZlX3RhYiwKCQkJCQkJCQknbW9kZSc9PidlZGl0JykpOwoJCSRyb3ctPkJ0biA9ICRrZXk7CQoJCQoJCSRyb3ctPnJvd2NsYXNzID0gJHJvd2NsYXNzOwoJCSRyb3ctPmVkaXRsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2VkaXR0ZW1wbGF0ZScsICRyZXR1cm5pZCwKCQkJCQkJCSRnQ21zLT52YXJpYWJsZXNbJ2FkbWludGhlbWUnXS0+CgkJCQkJCQlEaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZWRpdC5naWYnLAoJCQkJCQkJCSAgJHRoaXMtPkxhbmcgKCdlZGl0JyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkJCWFycmF5ICgnQktTZXQnID0+ICRrZXksCgkJCQkJCQkgICAnYWN0aXZlX3RhYicgPT4gJGFjdGl2ZV90YWIsCgkJCQkJCQkgICAnbW9kZSc9PidlZGl0JykpOwoJCQoJCQoJCQkkcm93LT5kZWxldGVsaW5rID0gJHRoaXMtPkNyZWF0ZUxpbmsoICRpZCwgJ2RlbGV0ZXRlbXBsYXRlJywgJHJldHVybmlkLAoJCQkJCQkJICAkZ0Ntcy0+dmFyaWFibGVzWydhZG1pbnRoZW1lJ10tPgoJCQkJCQkJICBEaXNwbGF5SW1hZ2UgKCdpY29ucy9zeXN0ZW0vZGVsZXRlLmdpZicsCgkJCQkJCQkJCSR0aGlzLT5MYW5nICgnZGVsZXRlJyksICcnLCAnJywgJ3N5c3RlbWljb24nKSwKCQkJCQkJCSAgYXJyYXkgKCdCS1NldCcgPT4gJGtleSksCgkJCQkJCQkgICR0aGlzLT5MYW5nICgnYXJleW91c3VyZScpKTsKCQkKCQkKCQlhcnJheV9wdXNoICgkcm93YXJyYXksICRyb3cpOwoJCSgkcm93Y2xhc3MgPT0gInJvdzEiID8gJHJvd2NsYXNzID0gInJvdzIiIDogJHJvd2NsYXNzID0gInJvdzEiKTsKCQkgIH0KCQkKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ2l0ZW1zJywgJHJvd2FycmF5ICk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCduYW1lcHJvbXB0JywgJHRoaXMtPkxhbmcoJ3Byb21wdF9uYW1lJykpOwoJCSR0aGlzLT5zbWFydHktPmFzc2lnbignZGVmYXVsdHByb21wdCcsICdJdGVtIE5hbWUgKFBheVBhbFwncyBOYW1lKScpOy8vJHRoaXMtPkxhbmcoJ3Byb21wdF9kZWZhdWx0JykKCQkkdGhpcy0+c21hcnR5LT5hc3NpZ24oJ25ld3RlbXBsYXRlbGluaycsCgkJCQkgICR0aGlzLT5DcmVhdGVMaW5rKCAkaWQsICdlZGl0dGVtcGxhdGUnLCAkcmV0dXJuaWQsCgkJCQkJCQkgJHRoaXMtPkxhbmcoJ3Byb21wdF9uZXdCdG4nKSwKCQkJCQkJCSBhcnJheSgncHJlZml4JyA9PiAkcHJlZml4LAoJCQkJCQkJICAgJ2FjdGl2ZV90YWInID0+ICRhY3RpdmVfdGFiLAoJCQkJCQkJICAgJ3RpdGxlJz0+JHRpdGxlLAoJCQkJCQkJICAgJ21vZGUnID0+ICdhZGQnLAoJCQkJCQkJICAgJ2RlZmF1bHR0ZW1wbGF0ZXByZWYnID0+ICRkZWZhdWx0dGVtcGxhdGVwcmVmCgkJCQkJCQkgICApKSk7CgkJJHRoaXMtPnNtYXJ0eS0+YXNzaWduKCR0aGlzLT5DcmVhdGVGb3JtRW5kKCkpOwoJCWVjaG8gJHRoaXMtPlByb2Nlc3NUZW1wbGF0ZSgnZWRpdHRlbXBsYXRlcy50cGwnKTsKCX0KICAKCglmdW5jdGlvbiBpbnRlcm5hbFBvc3QoJEJ0blR5cGUsJHBhcmFtcyl7CgkJCWV4dHJhY3QoJHRoaXMtPkxpc3RBQlROKCRCdG5UeXBlKSk7CgkJCS8vLy8vLy0tLS0tT3B0aW9ucwoJCQkkbm9fc2hpcHBpbmc9ICR0aGlzLT5HZXRQcmVmZXJlbmNlKCdub19zaGlwcGluZycsJzAnKTsKCQkJLy8vLy8vLS0tLS1hY2NvdW50IHZhcnMKCQkJJFNhbmRCb3g9JHBhcmFtc1snU2FuZEJveCddOwoJCQlpZighaXNzZXQoJHBhcmFtc1snU2FuZEJveCddKXx8JHBhcmFtc1snU2FuZEJveCddPT0nJyl7CgkJCQkkU2FuZEJveD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnU2FuZEJveCcsdHJ1ZSk7CgkJCX0KCQkJaWYoJFNhbmRCb3ghPScnJiYkU2FuZEJveD09dHJ1ZSl7CgkJCQkkYnVzaW5lc3NOYW1lPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdTQU5EQk9YX2J1c2luZXNzTmFtZScsJycpOwoJCQkJJHNhbmREb21haW49InNhbmRib3guIjsKCQkJfWVsc2UgaWYoJFNhbmRCb3ggPT0nJyB8fCAkU2FuZEJveD09ZmFsc2UpewoJCQkJJGJ1c2luZXNzTmFtZT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnYnVzaW5lc3NOYW1lJywnJyk7CgkJCQkkc2FuZERvbWFpbj0iIjsKCQkJfQoJCQlpZigkYnVzaW5lc3NOYW1lPT0nJyl7ZWNobyAkdGhpcy0+TGFuZygnTm9CaXonKTt9CgkJCSRjcHBfcGF5Zmxvd19jb2xvcj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3BwX3BheWZsb3dfY29sb3InLCdGRkZGRkYnKTsKCQkJJGNhbmNlbF9yZXR1cm49JHRoaXMtPkdldFByZWZlcmVuY2UoJ2NhbmNlbF9yZXR1cm4nLCcnKTsKCQkJJGNidD0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY2J0JywnJyk7CgkJCSRjdXN0b209JHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1c3RvbScsJycpOwoJCQkkaGFuZGxpbmc9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2hhbmRsaW5nJywnJyk7CgkJCSRybT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgncm0nLCcyJyk7CgkJCSRhZGRyZXNzX292ZXJyaWRlPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdhZGRyZXNzX292ZXJyaWRlJyxmYWxzZSk7CgkJCQoJCQkkaW1hZ2VfdXJsPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdpbWFnZV91cmwnLCcnKTsKCQkJJGN1cnJlbmN5X2NvZGU9JHRoaXMtPkdldFByZWZlcmVuY2UoJ2N1cnJlbmN5X2NvZGUnLCdVU0QnKTsKCQkJJHNtYXJ0eU9uPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdzbWFydHlPbicsJzAnKTsKCQkJJGNzPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcycsMCk7CgkJCQoJCQkKCQkJJGNwcF9oZWFkZXJiYWNrX2NvbG9yPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyYmFja19jb2xvcicsJycpOwoJCQkkY3BwX2hlYWRlcmJvcmRlcl9jb2xvcj0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnY3BwX2hlYWRlcmJvcmRlcl9jb2xvcicsJycpOwoJCQkKCQkJCgkJCSRjcHBfaGVhZGVyX2ltYWdlPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdjcHBfaGVhZGVyX2ltYWdlJywnJyk7CgkJCQoJCQlpZihpc3NldCgkcGFyYW1zWydMYW5nJ10pJiYkcGFyYW1zWydMYW5nJ10hPScnKXsKCQkJJGxjPSRwYXJhbXNbJ0xhbmcnXTsKCQkJfWVsc2V7CgkJCSRsYz0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnTGFuZycsJ2VuJyk7CQoJCQl9CgkJCQoJCQkKCQkJLy8vLy8vLS0tLS1zZWN1cml0eSBtZWFzdXJlcwoJCQkvLyBzYWx0IGFuZCBpcEhhc2ggbW92ZSAKCQkJJEJ0blNhbHQgPSBzaGExKCRpdGVtX25hbWUpOwoJCQkkaXA9JF9TRVJWRVJbJ1JFTU9URV9BRERSJ107IAoJCQkkaXBWYXI9c3RyX3JlcGxhY2UoIi4iLCAiIiwgJGlwKTsKCQkJJE50aD1kYXRlKCJHIik7CgkJCSRJUGhhc2hTdHIgPSBzaGExKCRpcFZhcik7CgkJCSR0aGVSQ09ERT0kdGhpcy0+R2V0UHJlZmVyZW5jZSgnRm9ybVZhbHVlJyk7CgkJCSR0aGVSQ09ERT1zdWJzdHIoJHRoZVJDT0RFLDEsJE50aCkuJElQaGFzaFN0ci4kQnRuU2FsdC5zdWJzdHIoJHRoZVJDT0RFLCROdGgrMSk7CgkJCSR0aGVLZXk9JHRoaXMtPkdldFByZWZlcmVuY2UoJ0Zvcm1LZXknKTsKCQkJCgkJCWlmKCRwYXJhbXNbJ0J0biddPT0iTW9kdWxlRG9uYXRlIil7CgkJCQkkYnVzaW5lc3NOYW1lPSdqZXJlbXliYXNzQGNhYmxlb25lLm5ldCc7CgkJCQkkQnRuVHlwZT0nX2RvbmF0aW9ucyc7CgkJCQlpZihzdHJzdHIoJF9TRVJWRVJbJ0hUVFBfSE9TVCddLCAibG9jYWxob3N0IikpewoJCQkJCSRjcHBfaGVhZGVyX2ltYWdlPSJodHRwczovL3NlY3VyZS5kaWdpdGFsYmFybi50di9tb2R1bGVzL1BheVBhbEJ1dHRvbk1ha2VyL2ltYWdlcy9wcGJtRG9uYXRlLnBuZyI7CgkJCQl9ZWxzZXsKCQkJCQkkY3BwX2hlYWRlcl9pbWFnZT0iaHR0cHM6Ly9zZWN1cmUuZGlnaXRhbGJhcm4udHYvbW9kdWxlcy9QYXlQYWxCdXR0b25NYWtlci9pbWFnZXMvcHBibURvbmF0ZS5wbmciOwkKCQkJCX0KCQkJCSRCdXR0b25JbWc9JGNvbmZpZ1sncm9vdF91cmwnXS4iL21vZHVsZXMvUGF5UGFsQnV0dG9uTWFrZXIvaW1hZ2VzL3N1cHBvcnQucG5nIjsJCgkJCX0KCQkJCgkJCS8vLy8vLy0tLS0taW50ZXJuYWwgbWVhc3VyZXMKCQkJLy8gZ2V0IHVybCBhbmQgaG93IHRvIGFkZCBwYXJhbSAKCQkJJEludGVyYWx1cmxzID0gJHRoaXMtPlJlYWxVUkwoKTsKCQkJaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleScsZmFsc2UpPT10cnVlKXsKCQkJCWlmKHN0cnN0cigkSW50ZXJhbHVybHMsICI/IikgKXskbWFyaz0nJic7fWVsc2V7JG1hcms9Jz8nO30KCQkJfQoJCQlpZigkc21hcnR5T249PTEpewoJCQkJJGFtb3VudD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGFtb3VudCk7CgkJCQkkaXRlbV9uYW1lPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaXRlbV9uYW1lKTsKCQkJCSRjYW5jZWxfcmV0dXJuPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkY2FuY2VsX3JldHVybik7CgkJCQkkaXRlbV9udW1iZXI9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRpdGVtX251bWJlcik7CgkJCQkkcXVhbnRpdHk9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRxdWFudGl0eSk7CgkJCQkkaW52b2ljZT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGludm9pY2UpOwoJCQkJJHRheF9jYXJ0PSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGF4X2NhcnQpOwoJCQkJJHRheF9yYXRlPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdGF4X3JhdGUpOwoJCQkJJHRheD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHRheCk7CgkJCQkkdW5kZWZpbmVkX3F1YW50aXR5PSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdW5kZWZpbmVkX3F1YW50aXR5KTsKCQkJCSR3ZWlnaHRfY2FydD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHdlaWdodF9jYXJ0KTsKCQkJCSR3ZWlnaHRfdW5pdD0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHdlaWdodF91bml0KTsKCQkJCSRzaGlwcGluZz0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHNoaXBwaW5nKTsKCQkJCSR3ZWlnaHQ9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR3ZWlnaHQpOwoJCQkJJGFkZHJlc3MxPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkYWRkcmVzczEpOwoJCQkJJGFkZHJlc3MyPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkYWRkcmVzczIpOwoJCQkJJGNpdHk9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRjaXR5KTsKCQkJCSRjb3VudHJ5PSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkY291bnRyeSk7CgkJCQkkcDM9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRwMyk7CgkJCQkkdDM9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0Myk7CgkJCQkkYTE9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRhMSk7CgkJCQkkdDE9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0MSk7CgkJCQkkcDE9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRwMSk7CgkJCQkkYTI9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRhMik7CgkJCQkkdDI9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCR0Mik7CgkJCQkkcDI9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRwMik7CgkJCQkkc3JjPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkc3JjKTsKCQkJCSRzcnQ9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRzcnQpOwoJCQkJJHNyYT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJHNyYSk7CgkJCQkkbW9kaWZ5PSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbW9kaWZ5KTsKCQkJCSR1c3JfbWFuYWdlPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkdXNyX21hbmFnZSk7CgkJCQkkZW1haWw9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRlbWFpbCk7CgkJCQkkZmlyc3RfbmFtZT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGZpcnN0X25hbWUpOwoJCQkJJGxhc3RfbmFtZSA9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRsYXN0X25hbWUpOwoJCQkJJGxjID0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJGxjKTsKCQkJCSRjaGFyc2V0PSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkY2hhcnNldCk7CgkJCQkkbmlnaHRfcGhvbmVfYT0kdGhpcy0+UHJvY2Vzc1RlbXBsYXRlRnJvbURhdGEoJG5pZ2h0X3Bob25lX2EpOwoJCQkJJG5pZ2h0X3Bob25lX2I9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRuaWdodF9waG9uZV9iKTsKCQkJCSRuaWdodF9waG9uZV9jPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkbmlnaHRfcGhvbmVfYyk7CgkJCQkkc3RhdGU9JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRzdGF0ZSk7CgkJCQkkemlwPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkemlwKTsKCQkJCSRjdXN0b209JHRoaXMtPlByb2Nlc3NUZW1wbGF0ZUZyb21EYXRhKCRjdXN0b20pOwoJCQkJJGhhbmRsaW5nPSR0aGlzLT5Qcm9jZXNzVGVtcGxhdGVGcm9tRGF0YSgkaGFuZGxpbmcpOwoJCQkJCgkJCX0KCQkJCQoJCQkJCgkJCQkKCQkJJGRhdGFbJ2NtZCddID0kQnRuVHlwZTsKCQkJCgkJCSRzZWN1cmVSZWRpcmVjdD0nJzsKCQkJaWYoJHRoaXMtPkdldFByZWZlcmVuY2UoJ2tleScsZmFsc2UpPT10cnVlKXsKCQkJCSRzZWN1cmVSZWRpcmVjdD0kdGhlS2V5LiI9Ii4kdGhlUkNPREU7CgkJCX0KCQkJJFJEVVJMPSR0aGlzLT5HZXRQcmVmZXJlbmNlKCdSZWRpcmVjdFVSTCcpOwoJCQkkZGF0YVsncmV0dXJuJ109JHRoaXMtPlJlZGlyZWN0VVJMKCRzZWN1cmVSZWRpcmVjdCk7CgkJCSRkYXRhWydybSddID0kcm07CgkJCSRkYXRhWydidXNpbmVzcyddID0kYnVzaW5lc3NOYW1lOwoJCQlpZigkQnRuVHlwZT09J194Y2xpY2stc3Vic2NyaXB0aW9ucycpewoJCQkJJGRhdGFbJ2EzJ10gPSRhbW91bnQ7CgkJCX1lbHNlewoJCQkJaWYoaXNzZXQoJGFtb3VudCkKCQkJCQkgJiYkYW1vdW50IT0nJwoJCQkJCSAmJiRhbW91bnQhPScwMC4wMCcKCQkJCQkgJiYkYW1vdW50IT0nMC4wMCcKCQkJCQkgJiYkYW1vdW50IT0nLjAwJwoJCQkJCSAmJiRhbW91bnQhPScwMC4nCgkJCQkJICYmJGFtb3VudCE9JzAnKSRkYXRhWydhbW91bnQnXSA9JGFtb3VudDsKCQkJfQoKCgoJCQlpZihpc3NldCgkaW1hZ2VfdXJsKSYmJGltYWdlX3VybCE9JycpJGRhdGFbJ2ltYWdlX3VybCddID0kaW1hZ2VfdXJsOwoJCQlpZihpc3NldCgkY2J0KSYmJGNidCE9JycpJGRhdGFbJ2NidCddID0kY2J0OwoJCQlpZihpc3NldCgkY3VzdG9tKSYmJGN1c3RvbSE9JycpJGRhdGFbJ2N1c3RvbSddID0kY3VzdG9tOwoJCQlpZihpc3NldCgkYWRkcmVzc19vdmVycmlkZSkmJiRhZGRyZXNzX292ZXJyaWRlIT1mYWxzZSkkZGF0YVsnYWRkcmVzc19vdmVycmlkZSddID0nMSc7CgkJCWlmKGlzc2V0KCRxdWFudGl0eSkmJiRxdWFudGl0eSE9JycpJGRhdGFbJ3F1YW50aXR5J10gPSRxdWFudGl0eTsKCQkJaWYoJG5vX3NoaXBwaW5nIT0nMCcpJGRhdGFbJ25vX3NoaXBwaW5nJ10gPSRub19zaGlwcGluZzsKCQkJaWYoaXNzZXQoJGl0ZW1fbmFtZSkmJiRpdGVtX25hbWUhPScnKSRkYXRhWydpdGVtX25hbWUnXSA9JGl0ZW1fbmFtZTsKCQkJaWYoaXNzZXQoJGl0ZW1fbnVtYmVyKSYmJGl0ZW1fbnVtYmVyIT0nJykkZGF0YVsnaXRlbV9udW1iZXInXSA9JGl0ZW1fbnVtYmVyOwoJCQlpZihpc3NldCgkcDMpJiYkcDMhPScnKSRkYXRhWydwMyddID0kcDM7CgkJCWlmKGlzc2V0KCR0MykmJiR0MyE9JycpJGRhdGFbJ3QzJ10gPSR0MzsKCQkJaWYoaXNzZXQoJGExKSYmJGExIT0nJykkZGF0YVsnYTEnXSA9JGExOwoJCQlpZihpc3NldCgkdDEpJiYkdDEhPScnKSRkYXRhWyd0MSddID0kdDE7CgkJCWlmKGlzc2V0KCRwMSkmJiRwMSE9JycpJGRhdGFbJ3AxJ10gPSRwMTsKCQkJaWYoaXNzZXQoJGEyKSYmJGEyIT0nJykkZGF0YVsnYTInXSA9JGEyOwoJCQlpZihpc3NldCgkdDIpJiYkdDIhPScnKSRkYXRhWyd0MiddID0kdDI7CgkJCWlmKGlzc2V0KCRwMikmJiRwMiE9JycpJGRhdGFbJ3AyJ10gPSRwMjsKCQkJaWYoaXNzZXQoJHNyYykmJiRzcmMhPScnKSRkYXRhWydzcmMnXSA9JHNyYzsKCQkJaWYoaXNzZXQoJHNydCkmJiRzcnQhPScnKSRkYXRhWydzcnQnXSA9JHNydDsKCQkJaWYoaXNzZXQoJHNyYSkmJiRzcmEhPScnKSRkYXRhWydzcmEnXSA9JHNyYTsKCQkJaWYoaXNzZXQoJG1vZGlmeSkmJiRtb2RpZnkhPScnKSRkYXRhWydtb2RpZnknXSA9JG1vZGlmeTsKCQkJaWYoaXNzZXQoJHVzcl9tYW5hZ2UpJiYkdXNyX21hbmFnZSE9JycpJGRhdGFbJ3Vzcl9tYW5hZ2UnXSA9JHVzcl9tYW5hZ2U7CgkJCWlmKGlzc2V0KCRjdXJyZW5jeV9jb2RlKSYmJGN1cnJlbmN5X2NvZGUhPScnKSRkYXRhWydjdXJyZW5jeV9jb2RlJ10gPSRjdXJyZW5jeV9jb2RlOwoJCQlpZihpc3NldCgkaGFuZGxpbmcpJiYkaGFuZGxpbmchPScnKSRkYXRhWydoYW5kbGluZyddID0kaGFuZGxpbmc7CgkJCWlmKCRjcyE9JzAnKSRkYXRhWydjcyddID0nMSc7CgkJCWlmKGlzc2V0KCRpbnZvaWNlKSYmJGludm9pY2UhPScnKSRkYXRhWydpbnZvaWNlJ10gPSRpbnZvaWNlOwoJCQlpZihpc3NldCgkdGF4X2NhcnQpJiYkdGF4X2NhcnQhPScnKSRkYXRhWyd0YXhfY2FydCddID0kdGF4X2NhcnQ7CgkJCWlmKGlzc2V0KCR0YXhfcmF0ZSkmJiR0YXhfcmF0ZSE9JycpJGRhdGFbJ3RheF9yYXRlJ10gPSR0YXhfcmF0ZTsKCQkJaWYoaXNzZXQoJHRheCkmJiR0YXghPScnKSRkYXRhWyd0YXgnXSA9JHRheDsKCQkJaWYoaXNzZXQoJHVuZGVmaW5lZF9xdWFudGl0eSkmJiR1bmRlZmluZWRfcXVhbnRpdHkhPScnKSRkYXRhWyd1bmRlZmluZWRfcXVhbnRpdHknXSA9JHVuZGVmaW5lZF9xdWFudGl0eTsKCQkJaWYoaXNzZXQoJHdlaWdodF9jYXJ0KSYmJHdlaWdodF9jYXJ0IT0nJykkZGF0YVsnd2VpZ2h0X2NhcnQnXSA9JHdlaWdodF9jYXJ0OwoJCQlpZihpc3NldCgkd2VpZ2h0X3VuaXQpJiYkd2VpZ2h0X3VuaXQhPScnKSRkYXRhWyd3ZWlnaHRfdW5pdCddID0kd2VpZ2h0X3VuaXQ7CgkJCWlmKGlzc2V0KCRzaGlwcGluZykmJiRpdGVtc2hpcHBpbmdfbmFtZSE9JycpJGRhdGFbJ3NoaXBwaW5nJ10gPSRzaGlwcGluZzsKCQkJaWYoaXNzZXQoJHdlaWdodCkmJiR3ZWlnaHQhPScnKSRkYXRhWyd3ZWlnaHQnXSA9JHdlaWdodDsKCQkJaWYoaXNzZXQoJGFkZHJlc3MxKSYmJHdlaWdodCE9JycpJGRhdGFbJ2FkZHJlc3MxJ10gPSRhZGRyZXNzMTsKCQkJaWYoaXNzZXQoJGFkZHJlc3MyKSYmJGFkZHJlc3MyIT0nJykkZGF0YVsnYWRkcmVzczInXSA9JGFkZHJlc3MyOwoJCQlpZihpc3NldCgkY2l0eSkmJiRjaXR5IT0nJykkZGF0YVsnY2l0eSddID0kY2l0eTsKCQkJaWYoaXNzZXQoJGNvdW50cnkpJiYkY291bnRyeSE9JycpJGRhdGFbJ2NvdW50cnknXSA9JGNvdW50cnk7CgkJCWlmKGlzc2V0KCRlbWFpbCkmJiRlbWFpbCE9JycpJGRhdGFbJ2VtYWlsJ10gPSRlbWFpbDsKCQkJaWYoaXNzZXQoJGZpcnN0X25hbWUpJiYkZmlyc3RfbmFtZSE9JycpJGRhdGFbJ2ZpcnN0X25hbWUnXSA9JGZpcnN0X25hbWU7CgkJCWlmKGlzc2V0KCRsYXN0X25hbWUpJiYkbGFzdF9uYW1lIT0nJykkZGF0YVsnbGFzdF9uYW1lJ10gPSRsYXN0X25hbWU7CgkJCWlmKGlzc2V0KCRjaGFyc2V0KSYmJGNoYXJzZXQhPScnKSRkYXRhWydjaGFyc2V0J10gPSRjaGFyc2V0OwoJCQlpZihpc3NldCgkbmlnaHRfcGhvbmVfYSkmJiRuaWdodF9waG9uZV9hIT0nJykkZGF0YVsnbmlnaHRfcGhvbmVfYSddID0kbmlnaHRfcGhvbmVfYTsKCQkJaWYoaXNzZXQoJG5pZ2h0X3Bob25lX2IpJiYkbmlnaHRfcGhvbmVfYiE9JycpJGRhdGFbJ25pZ2h0X3Bob25lX2InXSA9JG5pZ2h0X3Bob25lX2I7CgkJCWlmKGlzc2V0KCRuaWdodF9waG9uZV9jKSYmJG5pZ2h0X3Bob25lX2MhPScnKSRkYXRhWyduaWdodF9waG9uZV9jJ10gPSRuaWdodF9waG9uZV9jOwoJCQlpZihpc3NldCgkc3RhdGUpJiYkc3RhdGUhPScnKSRkYXRhWydzdGF0ZSddID0kc3RhdGU7CgkJCWlmKGlzc2V0KCR6aXApJiYkemlwIT0nJykkZGF0YVsnemlwJ10gPSR6aXA7CgkJCWlmKGlzc2V0KCRjcHBfaGVhZGVyYmFja19jb2xvcikmJiRjcHBfaGVhZGVyYmFja19jb2xvciE9JycpJGRhdGFbJ2NwcF9oZWFkZXJiYWNrX2NvbG9yJ10gPSRjcHBfaGVhZGVyYmFja19jb2xvcjsKCQkJaWYoaXNzZXQoJGNwcF9oZWFkZXJib3JkZXJfY29sb3IpJiYkY3BwX2hlYWRlcmJvcmRlcl9jb2xvciE9JycpJGRhdGFbJ2NwcF9oZWFkZXJib3JkZXJfY29sb3InXSA9JGNwcF9oZWFkZXJiYWNrX2NvbG9yOwoJCQlpZihpc3NldCgkY3BwX3BheWZsb3dfY29sb3IpJiYkY3BwX3BheWZsb3dfY29sb3IhPScnKSRkYXRhWydjcHBfcGF5Zmxvd19jb2xvciddID0kY3BwX3BheWZsb3dfY29sb3I7CgkJCWlmKGlzc2V0KCRjcHBfaGVhZGVyX2ltYWdlKSYmJGNwcF9oZWFkZXJfaW1hZ2UhPScnKSRkYXRhWydjcHBfaGVhZGVyX2ltYWdlJ10gPSRjcHBfaGVhZGVyX2ltYWdlOwoJCQlpZihpc3NldCgkY2FuY2VsX3JldHVybikmJiRjYW5jZWxfcmV0dXJuIT0nJykkZGF0YVsnY2FuY2VsX3JldHVybiddPSRjYW5jZWxfcmV0dXJuOwoJCQlpZihpc3NldCgkbGMpJiYkbGMhPScnKSRkYXRhWydsYyAnXT0kbGM7CgkJCS8vIGFuZCBzbyBvbiB3aXRoIGFueSBpbmZvIHlvdSB3YW50IHRvIHNlbmQgdG8gUGF5UGFsLCBhbnl0aGluZyB5b3Ugd291bGQgcHV0IGluIHRoZSBmb3JtCgkJCS8vIFRoZW4sIHNpbXBseToKCQkJJHJlc3VsdCA9ICR0aGlzLT5wb3N0X2l0KCRkYXRhLCAiaHR0cDovL3d3dy4iLiRzYW5kRG9tYWluLiJwYXlwYWwuY29tL2NnaS1iaW4vd2Vic2NyIik7IAkKfQogIAogIAoJZnVuY3Rpb24gcG9zdF9pdCgkZGF0YXN0cmVhbSwgJHVybCkgeyAKCQkkdXJsID0gcHJlZ19yZXBsYWNlKCJAXmh0dHA6Ly9AaSIsICIiLCAkdXJsKTsgCgkJJGhvc3QgPSBzdWJzdHIoJHVybCwgMCwgc3RycG9zKCR1cmwsICIvIikpOyAKCQkkdXJpID0gc3Ryc3RyKCR1cmwsICIvIik7CgkJJHJlcWJvZHkgPSAiIjsgCgkJZm9yZWFjaCgkZGF0YXN0cmVhbSBhcyAka2V5PT4kdmFsKSB7IAoJCWlmICghKCRyZXFib2R5PT0nJykpICRyZXFib2R5Lj0gIiYiOyAKCQkJJHJlcWJvZHkuPSAka2V5LiI9Ii51cmxlbmNvZGUoJHZhbCk7IAoJCX0KCQloZWFkZXIoIkxvY2F0aW9uOiBodHRwOi8vJGhvc3QkdXJpPyRyZXFib2R5Iik7IGRpZTsKCQlyZXR1cm4gJHJlc3VsdDsgCgl9IAogIAogIAogIAogIAogIAp9Cj8+Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/templates/admin_BNToptions.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kX3ByZWZzX3RpdGxlfTwvaDM+Cjxoci8+Cgp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0KeyRmb3JtX3N0YXJ0fQoKIAogICAgIDxoMT5HZW5lcmFsIEJ1dHRvbiBPcHRpb248L2gxPgogICAgPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICAgIAogICAgCiAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskcm1fbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHJtX2lucHV0fTwvcD48YnIvPgogICAgICAgIAogICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JFJlZGlyZWN0VVJMX2xhYmVsfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRSZWRpcmVjdFVSTF9pbnB1dH08L3A+PGJyLz4KICAgICAgICAKICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskY3VzdG9tX2xhYmVsfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjdXN0b21faW5wdXR9PC9wPgogICAgICAgIDxici8+CiAgICAgICAgCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNidF9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY2J0X2lucHV0fTwvcD48YnIvPiAgICAKICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskY2FuY2VsX3JldHVybl9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY2FuY2VsX3JldHVybl9pbnB1dH08L3A+CiAgICAgICAgPGJyLz4KCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFkZHJlc3Nfb3ZlcnJpZGVfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGFkZHJlc3Nfb3ZlcnJpZGVfaW5wdXR9PC9wPgogICAgICAgIDxici8+CiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5vX3NoaXBwaW5nX2xhYmVsfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRub19zaGlwcGluZ19pbnB1dH08L3A+CiAgICAgICAgPGJyLz4KICAgICAgICAKICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskaGFuZGxpbmdfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JENDb2RlfXskaGFuZGxpbmdfaW5wdXR9PC9wPgogICAgICAgIDxici8+CiAgICAgICAgCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGN1cnJlbmN5X2NvZGVfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGN1cnJlbmN5X2NvZGVfaW5wdXR9PC9wPgogICAgICAgIDxici8+CiAgICAgICAgCiAgICAgICAgCiAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5vdGlmeV91cmxfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JG5vdGlmeV91cmxfaW5wdXR9PC9wPgogICAgICAgIDxici8+CgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRzbWFydHlPbl9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc21hcnR5T25faW5wdXR9PC9wPgogICAgICAgIDxici8+CiAgICAgICAgCgk8L2Rpdj4gICAKICAgPGhyLz4gICAKICAgIAogICAgCiAgICAKCgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZm9ybV9zdWJtaXR9PC9wPgoJPC9kaXY+CgogICAgIAkKeyRmb3JtX2VuZH0K]]></data>
	</file>
	<file>
	  <filename>/templates/admin_email.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskbW9kX3ByZWZzX3RpdGxlfTwvaDM+Cgp7aWYgJG1lc3NhZ2UhPScnfTxwPnskbWVzc2FnZX08L3A+ey9pZn0KeyRmb3JtX3N0YXJ0fQoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFsbG93X2d1ZXN0X2xhYmVsfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRhbGxvd19ndWVzdF9pbnB1dH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGdyb3VwX2xhYmVsfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRncm91cF9pbnB1dH08L3A+Cgk8L2Rpdj4KCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHd5c2l3eWdfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JHd5c2l3eWdfaW5wdXR9PC9wPgoJPC9kaXY+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+Jm5ic3A7PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZm9ybV9zdWJtaXR9PC9wPgoJPC9kaXY+CnskZm9ybV9lbmR9Cg==]]></data>
	</file>
	<file>
	  <filename>/templates/admin_options.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[CjxoMz57JG1vZF9wcmVmc190aXRsZX08L2gzPgo8aHIvPgoKe2lmICRtZXNzYWdlIT0nJ308cD57JG1lc3NhZ2V9PC9wPnsvaWZ9CnskZm9ybV9zdGFydH0KCiAgICA8aDE+U2VjdXJpdHkgT3B0aW9uczwvaDE+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGludGVybmFsX2xhYmVsfTo8L3A+CiAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGludGVybmFsX2lucHV0fTwvcD48YnIvPjxici8+CiAgICAJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRrZXlfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGtleV9pbnB1dH08L3A+PGJyLz48YnIvPgoJCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRGb3JtVmFsdWVfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JEZvcm1WYWx1ZV9pbnB1dH08L3A+PGJyLz48YnIvPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRGb3JtS2V5X2xhYmVsfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRGb3JtS2V5X2lucHV0fTwvcD4KICAgICAgICA8YnIvPgoJPC9kaXY+CiAgICA8aHIvPgogICAgPGgxPlBheVBhbCB0cmFuc2FjdGlvbiBwYWdlIGRlc2lnbjwvaDE+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgCiAgICAJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JExhbmdfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JExhbmdfaW5wdXR9PC9wPjxici8+CiAgICAgICAgCiAgICAJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNzX2xhYmVsfTo8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjc19pbnB1dH08L3A+PGJyLz4KICAgICAgICAKICAgIAogICA8aDQ+IHskY3BwX2hlYWRlcl9pbWFnZV9sYWJlbH08L2g0Pgo8c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDsiPjxici8+eyRjcHBfaGVhZGVyX2ltYWdlX291dHB1dH08YnIvPnskY3BwX2hlYWRlcl9pbWFnZV9jbGVhcn17JGNwcF9oZWFkZXJfaW1hZ2VfY2xlYXJfbGFibGV9PC9zcGFuPiAgIAogICAgCTxwIGNsYXNzPSJwYWdldGV4dCI+eyRjcHBfaGVhZGVyX19VUkxfbGFiZWx9OjwvcD4KCQk8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNwcF9oZWFkZXJfX1VSTF9pbnB1dH08L3A+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNwcF9oZWFkZXJfX1VQTE9BRF9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskY3BwX2hlYWRlcl9pbWFnZV9pbnB1dH08L3A+CiAgICAgICAgPGJyLz4KICAKCiAgICAgICAgICAgCjxoND57JGltYWdlX3VybF9sYWJlbH08L2g0Pgo8c3BhbiBzdHlsZT0iZmxvYXQ6bGVmdDsiPjxici8+eyRpbWFnZV91cmxfb3V0cHV0fTxici8+eyRpbWFnZV91cmxfY2xlYXJ9eyRpbWFnZV91cmxfY2xlYXJfbGFibGV9PC9zcGFuPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbWFnZV91cmxfX1VSTF9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW1hZ2VfdXJsX19VUkxfaW5wdXR9PC9wPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbWFnZV91cmxfX1VQTE9BRF9sYWJlbH06PC9wPgoJCTxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW1hZ2VfdXJsX2lucHV0fTwvcD4KCiAgICAgICAgCiAgICAgICAgPGJyLz4KICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskY3BwX2hlYWRlcmJhY2tfY29sb3JfbGFiZWx9OjwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJleHRlbmRIQU5ETEUgVHJhbnNsYXRlIj48aDQ+eyRDUF9sYWJlbH08L2g0PiA8c3Bhbj5bK108L3NwYW4+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0iTmV4dGVuZCI+PGRpdiBjbGFzcz0iVHJhbnNsYXRlQ29uIj4KPGRpdiBpZD0iY29sb3JwaWNrZXIiPjwvZGl2Pgo8L2Rpdj48L2Rpdj4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNwcF9oZWFkZXJiYWNrX2NvbG9yX2lucHV0fTwvcD4KICAgICAgICA8YnIvPgogICAgICAgIAogICAgICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNwcF9oZWFkZXJib3JkZXJfY29sb3JfbGFiZWx9OjwvcD4KICAgICAgICA8ZGl2IGNsYXNzPSJleHRlbmRIQU5ETEUgVHJhbnNsYXRlIj48aDQ+eyRjcHBfaGVhZGVyYm9yZGVyX2xhYmVsfTwvaDQ+IDxzcGFuPlsrXTwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJOZXh0ZW5kIj48ZGl2IGNsYXNzPSJUcmFuc2xhdGVDb24iPgo8ZGl2IGlkPSJjcHBfaGVhZGVyYm9yZGVyY29sb3JwaWNrZXIiPjwvZGl2Pgo8L2Rpdj48L2Rpdj4KICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGNwcF9oZWFkZXJib3JkZXJfY29sb3JfaW5wdXR9PC9wPgogICAgICAgIDxici8+CiAgICAgICAgCgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRjcHBfcGF5Zmxvd19jb2xvcl9sYWJlbH06PC9wPgogICAgICAgIDxkaXYgY2xhc3M9ImV4dGVuZEhBTkRMRSBUcmFuc2xhdGUiPjxoND57JGNwcF9wYXlmbG93X2xhYmVsfTwvaDQ+IDxzcGFuPlsrXTwvc3Bhbj48L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJOZXh0ZW5kIj48ZGl2IGNsYXNzPSJUcmFuc2xhdGVDb24iPgo8ZGl2IGlkPSJjcHBfcGF5Zmxvd2NvbG9ycGlja2VyIj48L2Rpdj4KPC9kaXY+PC9kaXY+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjcHBfcGF5Zmxvd19jb2xvcl9pbnB1dH08L3A+CiAgICAgICAgPGJyLz4KCgoJPC9kaXY+CiAgICAKIDxoci8+ICAgCiAgICAKICAgIDxoMT5QYXlQYWwgQWNjb3VudCBJbmZvcm1hdGlvbjwvaDE+CiAgICA8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskYnVzaW5lc3NOYW1lX2xhYmVsfTo8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYnVzaW5lc3NOYW1lX2lucHV0fTwvcD4KICAgICAgICA8YnIvPgogICAgICAgIAoKICAgICAgICAgICA8cCBjbGFzcz0icGFnZXRleHQiPnskU2FuZEJveF9sYWJlbH06PC9wPgogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JFNhbmRCb3hfaW5wdXR9PC9wPgoKICAgICAgICAKICAgICAgICA8aDI+U0FOREJPWCBVc2VyIEluZm9ybWF0aW9uPC9oMj4KICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JFNBTkRCT1hfYnVzaW5lc3NOYW1lX2xhYmVsfTo8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskU0FOREJPWF9idXNpbmVzc05hbWVfaW5wdXR9PC9wPgogICAgICAgICAgICAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JFNBTkRCT1hfYnVzaW5lc3NQQVNTX2xhYmVsfTo8L3A+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskU0FOREJPWF9idXNpbmVzc1BBU1NfaW5wdXR9PC9wPgogICAgICAgIDxici8+CiAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRTQU5EQk9YX3BlcnNvbmFsTmFtZV9sYWJlbH06PC9wPgogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JFNBTkRCT1hfcGVyc29uYWxOYW1lX2lucHV0fTwvcD4KICAgICAgICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRTQU5EQk9YX3BlcnNvbmFsUEFTU19sYWJlbH06PC9wPgogICAgICAgICAgICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JFNBTkRCT1hfcGVyc29uYWxQQVNTX2lucHV0fTwvcD4KICAgICAgICA8YnIvPgogICAgICAgIAogICAgICAgIAoJPC9kaXY+CgogICAgCiAgICAgICAgPGgxPnskZGVidWdUfTwvaDE+Cgk8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogICAgICAgIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRkZWJ1Z0lUX2xhYmVsfTo8L3A+CiAgICAgICAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRkZWJ1Z0lUX2lucHV0fTwvcD48YnIvPjxici8+Cgk8L2Rpdj4KICAgIDxoci8+CiAgICAKICAgIAoKCTxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CgkJPHAgY2xhc3M9InBhZ2V0ZXh0Ij4mbmJzcDs8L3A+CgkJPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRmb3JtX3N1Ym1pdH08L3A+Cgk8L2Rpdj4KCiAgICAgCQp7JGZvcm1fZW5kfQo=]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplate.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPGgzPnskdGl0bGV9PC9oMz4KPC9kaXY+CnskZm9ybXN0YXJ0fXskaGlkZGVufQp7JHN1Ym1pdH17JGNhbmNlbH0KCjxmaWVsZHNldCBzdHlsZT0iY2xlYXI6bGVmdDt3aWR0aDo5MCU7IHBhZGRpbmctcmlnaHQ6MzBweDsgYmFja2dyb3VuZC1jb2xvcjojQ0NERkM4OyB0ZXh0LWFsaWduOmNlbnRlcjsiPgo8bGVnZW5kPjxzdHJvbmc+UHJpbWFyeTwvc3Ryb25nPjwvbGVnZW5kPgo8ZmllbGRzZXQgc3R5bGU9IndpZHRoOjQ1JTsgZmxvYXQ6bGVmdDsgbWFyZ2luLXJpZ2h0OjE1cHg7Ij4KPGxlZ2VuZD48Yj5SZXF1aXJlZCBmb3IgdGhlIGJ1dHRvbiB0byB3b3JrPC9iPjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRCS1NldF9wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JEJLU2V0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JEJ0blR5cGVfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRCdG5UeXBlfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRhbW91bnRfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRDQ29kZX17JGFtb3VudH08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskaXRlbV9uYW1lX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaXRlbV9uYW1lfTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRCdXR0b25JbWdfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRCdXR0b25JbWd9PC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KCjxmaWVsZHNldCBzdHlsZT0id2lkdGg6NDUlOyBmbG9hdDpsZWZ0OyI+CjxsZWdlbmQ+PGI+U3VnZ2VzdGVkOjwvYj48L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskaXRlbV9udW1iZXJfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRpdGVtX251bWJlcn08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93IGcxIGcyIGc0Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcXVhbnRpdHlfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRxdWFudGl0eX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskVXBncmFkZU1FU1NfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRVcGdyYWRlTUVTU308L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskVGhlQWN0aW9uX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskVGhlQWN0aW9ufTwvcD4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRUaGVQYXJhbXNfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRUaGVQYXJhbXN9PC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KPC9maWVsZHNldD4KeyRzdWJtaXR9eyRjYW5jZWx9Cgo8ZmllbGRzZXQgc3R5bGU9ImNsZWFyOmxlZnQ7d2lkdGg6OTAlOyBwYWRkaW5nLXJpZ2h0OjMwcHg7IGJhY2tncm91bmQtY29sb3I6I0ZGOTt0ZXh0LWFsaWduOmNlbnRlcjsiPgo8bGVnZW5kPjxzdHJvbmc+T3B0aW9uczo8L3N0cm9uZz48L2xlZ2VuZD4KCjxmaWVsZHNldCBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDozMCU7IG1hcmdpbjo1cHg7IiBjbGFzcz0iZzEgZzIgZzMgZzQiPgo8bGVnZW5kPjxiPlVzZXIgUGFyYW1ldGVyczo8L2I+PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFkZHJlc3MxX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWRkcmVzczF9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGFkZHJlc3MyX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskYWRkcmVzczJ9PC9wPgo8L2Rpdj4KCjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNpdHlfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjaXR5fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNvdW50cnlfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjb3VudHJ5fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGVtYWlsX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskZW1haWx9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskZmlyc3RfbmFtZV9wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JGZpcnN0X25hbWV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbGFzdF9uYW1lX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbGFzdF9uYW1lfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGNoYXJzZXRfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRjaGFyc2V0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5pZ2h0X3Bob25lX2FfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRuaWdodF9waG9uZV9hfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5pZ2h0X3Bob25lX2JfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRuaWdodF9waG9uZV9ifTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JG5pZ2h0X3Bob25lX2NfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRuaWdodF9waG9uZV9jfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHN0YXRlX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3RhdGV9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskemlwX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskemlwfTwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+Cgo8ZmllbGRzZXQgc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6MzAlOyBtYXJnaW46NXB4OyIgY2xhc3M9ImczIj4KPGxlZ2VuZD48Yj5TdWJzY3JpcHRpb24gUGFyYW1ldGVyczo8L2I+PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHQzX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskdDN9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskcDNfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRwM308L3A+CjwvZGl2Pgo8YnIvPgo8aHIvPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRhMV9wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JENDb2RlfXskYTF9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdDFfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0MX08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRwMV9wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHAxfTwvcD4KPC9kaXY+Cjxici8+Cjxoci8+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JGEyX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskQ0NvZGV9eyRhMn08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR0Ml9wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHQyfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHAyX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskcDJ9PC9wPgo8L2Rpdj4KPGJyLz4KPGhyLz4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskc3JjX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc3JjfTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNydF9wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHNydH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRzcmFfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyRzcmF9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskbW9kaWZ5X3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskbW9kaWZ5fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHVzcl9tYW5hZ2VfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR1c3JfbWFuYWdlfTwvcD4KPC9kaXY+CjwvZmllbGRzZXQ+CgoKCjxmaWVsZHNldCBzdHlsZT0iZmxvYXQ6bGVmdDt3aWR0aDozMCU7IG1hcmdpbjo1cHg7IiAgY2xhc3M9ImcxIGcyIGc0Ij4KPGxlZ2VuZD48Yj5TaGlwcGluZyBQYXJhbWV0ZXJzOjwvYj48L2xlZ2VuZD4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskd2VpZ2h0X3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskd2VpZ2h0fTwvcD4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHNoaXBwaW5nX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskc2hpcHBpbmd9PC9wPgo8L2Rpdj4KPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskd2VpZ2h0X3VuaXRfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR3ZWlnaHRfdW5pdH08L3A+CjwvZGl2Pgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR3ZWlnaHRfY2FydF9wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHdlaWdodF9jYXJ0fTwvcD4KPC9kaXY+Cgo8L2ZpZWxkc2V0PgoKCgo8ZmllbGRzZXQgc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6MzAlOyBtYXJnaW46NXB4OyIgY2xhc3M9ImcxIGcyIGc0Ij4KPGxlZ2VuZD48Yj5UYXggUGFyYW1ldGVyczo8L2I+PC9sZWdlbmQ+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2V0ZXh0Ij57JHRheF9wcm9tcHR9OjwvcD4KICA8cCBjbGFzcz0icGFnZWlucHV0Ij57JHRheH08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGF4X3JhdGVfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0YXhfcmF0ZX08L3A+CjwvZGl2PgoKPGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KICA8cCBjbGFzcz0icGFnZXRleHQiPnskdGF4X2NhcnRfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR0YXhfY2FydH08L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0Pgo8ZmllbGRzZXQgc3R5bGU9ImZsb2F0OmxlZnQ7d2lkdGg6MzAlOyBtYXJnaW46NXB4OyIgIGNsYXNzPSJnMSBnMiBnNCI+CjxsZWdlbmQ+PGI+VXNlciBPcHRpb25zIFBhcmFtZXRlcnM6PC9iPjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyR1bmRlZmluZWRfcXVhbnRpdHlfcHJvbXB0fTo8L3A+CiAgPHAgY2xhc3M9InBhZ2VpbnB1dCI+eyR1bmRlZmluZWRfcXVhbnRpdHl9PC9wPgo8L2Rpdj4KPC9maWVsZHNldD4KPGZpZWxkc2V0IHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjMwJTsgbWFyZ2luOjVweDsiPgo8bGVnZW5kPjxiPlBhc3N0aG91IFBhcmFtZXRlcnM6PC9iPjwvbGVnZW5kPgo8ZGl2IGNsYXNzPSJwYWdlb3ZlcmZsb3ciPgogIDxwIGNsYXNzPSJwYWdldGV4dCI+eyRpbnZvaWNlX3Byb21wdH06PC9wPgogIDxwIGNsYXNzPSJwYWdlaW5wdXQiPnskaW52b2ljZX08L3A+CjwvZGl2Pgo8L2ZpZWxkc2V0PgoKCgoKCgoKCgoKPGZpZWxkc2V0IHN0eWxlPSJmbG9hdDpsZWZ0O3dpZHRoOjk5JTsgbWFyZ2luOjVweDsiPjwvZmllbGRzZXQ+CjwvZmllbGRzZXQ+Cnskc3VibWl0fXskY2FuY2VsfQp7JGZvcm1lbmR9Cgo=]]></data>
	</file>
	<file>
	  <filename>/templates/edittemplates.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGRpdiBjbGFzcz0icGFnZW92ZXJmbG93Ij4KPHRhYmxlIGNlbGxzcGFjaW5nPSIwIiBjbGFzcz0icGFnZXRhYmxlIj4KICA8dGhlYWQ+CiAgICA8dHI+CiAgICAgIDx0aCA+QWxpYXM8L3RoPgogICAgICA8dGg+eyRkZWZhdWx0cHJvbXB0fTwvdGg+CiAgICAgIDx0aD5TYW1wbGUgVGFnPC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgICAgPHRoIGNsYXNzPSJwYWdlaWNvbiI+Jm5ic3A7PC90aD4KICAgIDwvdHI+CiAgPC90aGVhZD4Ke2ZvcmVhY2ggZnJvbT0kaXRlbXMgaXRlbT1lbnRyeX0KICAgPHRyIGNsYXNzPSJ7JGVudHJ5LT5yb3djbGFzc30iPgogICAgIDx0ZD57JGVudHJ5LT5uYW1lfTwvdGQ+CiAgICAgPHRkPnskZW50cnktPmRlZmF1bHR9PC90ZD4KICAgICA8dGQ+e2xkZWxpbX1jbXNfbW9kdWxlIG1vZHVsZT1QYXlQYWxCdXR0b25NYWtlciBNb2RlPSJkZWZhdWx0IiBCdG49InskZW50cnktPkJ0bn0ie3JkZWxpbX08L3RkPgogICAgIDx0ZD57JGVudHJ5LT5lZGl0bGlua308L3RkPgogICAgIDx0ZD57JGVudHJ5LT5kZWxldGVsaW5rfTwvdGQ+CiAgIDwvdHI+CnsvZm9yZWFjaH0KPC90YWJsZT4KPC9kaXY+CjxkaXYgY2xhc3M9InBhZ2VvdmVyZmxvdyI+CiAgPHAgY2xhc3M9InBhZ2VvcHRpb25zIj57JG5ld3RlbXBsYXRlbGlua308L3A+CjwvZGl2Pgo=]]></data>
	</file>
	<file>
	  <filename>/templates/Email_Userform_form.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[eyRmb3JtX3N0YXJ0T0ZGfQp7JGZvcm1faGlkZGVuT0ZGfQp7JGZvcm1fc3VibWl0T0ZGfQp7JGZvcm1fZW5kT0ZGfQoK]]></data>
	</file>
	<file>
	  <filename>/templates/message.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PGgzPnskdGl0bGV9PC9oMz4KPHA+eyRtZXNzYWdlfTwvcD4=]]></data>
	</file>
	<file>
	  <filename>/templates/orig_email_template.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[PCEtLSBFTUFJTC0tPg==]]></data>
	</file>
	<file>
	  <filename>/templates/sample.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[e2Ntc19tb2R1bGUgbW9kdWxlPVBheVBhbEJ1dHRvbk1ha2VyIE1vZGU9ImRlZmF1bHQiIEJ0bj0iTW9kdWxlRG9uYXRlIn0=]]></data>
	</file>
	<file>
	  <filename>/UDT/</filename>
	  <isdir>1</isdir>
	</file>
	<file>
	  <filename>/UDT/orig_PPBM_Example_Email_UDT.tpl</filename>
	  <isdir>0</isdir>
	  <data><![CDATA[Ly8vLy8vLy8vCi8vLy8KLy8vLyBMZXQncyBnZXQgdGhvc2UgdmFycyBmcm9tIHRoZSBwYXlwYWwgcG9zdAovLy8vCi8vLy8vLy8vCi8vcHJpbnRfcigkX1BPU1QpOwovL2VjaG8iPGJyLz48YnIvPiI7Ci8vcHJpbnRfcigkX0dFVCk7CgoKZ2xvYmFsICRnQ21zOwoJJGNjTUU9ICRfUE9TVFsncGF5ZXJfZW1haWwnXTsgIC8vLyBVc2VyCiAgICAkZnJvbUVtYWlsPSJ3ZXJlIGlzIGl0IGZyb20iOyAgLy8vIE1vc3Qgd291bGQgd2FudCB0byBoYXZlICAtLUFERCBDTVNNYWlsZXIgQWRkcmVzcy0tCiAgICAkVXBsb2FkZWR0b28gPSAneW91ciBlbWFpbCAnOyAgLy8vIEFkZCBhbiBlbWFpbCB0aGF0IHRoZSBtYWluIGlzIHN1Ym1pdGVkIHRvLgogICAgCiAgICAkc3VtbWFyeT0gJ1lvdSBoYXZlIHNpZ25lZCB1cCBmb3IgYSBvbmxpbmUgY2xhc3MnOwoKICAgICRkZXNjcmlwdGlvbiA9ICRfUE9TVFsnaXRlbV9uYW1lJ107CiAgICAKICAgICRNYWlsaW5nQUREPSRfUE9TVFsnYWRkcmVzc19uYW1lJ10uJzxici8+JzsKICAgICRNYWlsaW5nQURELj0kX1BPU1RbJ2FkZHJlc3Nfc3RyZWV0J10uJzxici8+JzsKICAgICRNYWlsaW5nQURELj0kX1BPU1RbJ2FkZHJlc3NfY2l0eSddLicgJy4kX1BPU1RbJ2FkZHJlc3Nfc3RhdGUnXS4nLCAnLiRfUE9TVFsnYWRkcmVzc196aXAnXS4nPGJyLz4nOwogICAgCiAgICAgICAgICAgICRDQ3RleHQgPSAiPGgzPldlbGNvbWUgRnJvbSBTSlJNQy5vcmc8L2gzPiI7CiAgICAgICAgICAgICRUT3RleHQgPSAnPGgzPlRoZXJlIGlzIGEgTmV3IG9yZGVyIGZyb20gPGEgaHJlZj0ibWFpbHRvOicuJGNjTUUuJz9zdWJqZWN0PUZhbGxvdyBVcCBvbiBvbmxpbmUgQ2xhc3MiPicuJF9QT1NUWydmaXJzdF9uYW1lJ10uJyAnLiRfUE9TVFsnbGFzdF9uYW1lJ10uJzwvYT48L2gzPjxici8+PGg0PkNvbnRhY3QgaW5mb3JtYXRpb248L2g0PiBNYWlsaW5nOjxici8+Jy4kTWFpbGluZ0FERC4nPGJyLz5FbWFpbDo8YnIvPicuJGNjTUUuJyc7CgogICAgJGJvZHl0ZXh0ID0gJzxici8+CiAgICA8YnIvPjxici8+CiAgICA8YnIvPgogICAgPGJyLz48aDI+WW91IGhhdmUgc2lnbmVkIHVwIGZvcjwvaDI+Jy4kZGVzY3JpcHRpb24uJzxici8+PGJyLz48ZGl2IGFsaWduPWxlZnQ+PHNwYW4+VGhlIHVwbG9hZGVycyBJUCBpcyAnLiRpcC4nPGJyLz48c3BhbiAKICAgIHN0eWxlPSJGT05ULVdFSUdIVDogODAwOyBGT05ULVNJWkU6IDlweCI+CiAgICA8aHIvPgogICAgQ09ORklERU5USUFMSVRZIE5PVElDRTogVGhpcyBlbWFpbCBtZXNzYWdlIGFuZCBhbnkgYWNjb21wYW55aW5nIGRhdGEgb3IgZmlsZXMgaXMgY29uZmlkZW50aWFsIGFuZCBtYXkKY29udGFpbiBwcml2aWxlZ2VkIGluZm9ybWF0aW9uIGludGVuZGVkIG9ubHkgZm9yIHRoZSBuYW1lZCByZWNpcGllbnQocykuIElmIHlvdSBhcmUgbm90IHRoZSBpbnRlbmRlZCByZWNpcGllbnQocyksIHlvdSBhcmUgaGVyZWJ5IG5vdGlmaWVkIHRoYXQgdGhlIGRpc3NlbWluYXRpb24sIGRpc3RyaWJ1dGlvbiwgYW5kIG9yIGNvcHlpbmcgb2YgdGhpcyBtZXNzYWdlIGlzIHN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSByZWNlaXZlIHRoaXMgbWVzc2FnZSBpbiBlcnJvciwgb3IgYXJlIG5vdCB0aGUgbmFtZWQgcmVjaXBpZW50KHMpLCBwbGVhc2Ugbm90aWZ5IHRoZSBzZW5kZXIgYXQgdGhlIGVtYWlsIGFkZHJlc3MgYWJvdmUsIGRlbGV0ZSB0aGlzIGVtYWlsIGZyb20geW91ciBjb21wdXRlciwgYW5kIGRlc3Ryb3kgYW55IGNvcGllcyBpbiBhbnkgZm9ybSBpbW1lZGlhdGVseS5SZWNlaXB0IGJ5IGFueW9uZSBvdGhlciB0aGFuIHRoZSBuYW1lZCByZWNpcGllbnQocykgaXMgbm90IGEgd2FpdmVyIG9mIGFueSBhdHRvcm5leS1jbGllbnQsIHdvcmsgcHJvZHVjdCwgb3Igb3RoZXIgYXBwbGljYWJsZSBwcml2aWxlZ2UuCiAKICAgIDxici8+PGJyLz4KICAgIDxoci8+CiAgICA8L3NwYW4+PC9zcGFuPjwvZGl2PgogICAgJzsKICAgIAogICAgJGNtc21haWxlciA9JiAkZ0Ntcy0+bW9kdWxlc1snQ01TTWFpbGVyJ11bJ29iamVjdCddOwogICAgCiAgICAkYWRkcmVzc2VzID0gYXJyYXkoKTsKICAgICRhZGRyZXNzZXNbMF0gPSAkY2NNRTsKCSRhZGRyZXNzZXNbMV0gPSAkVXBsb2FkZWR0b287CgogICAgLy8kYWRkcmVzc2VzWzJdID0gIioiOwogICAgLy8kYWRkcmVzc2VzWzNdID0gIioiOwogICAgCiAgICBmb3JlYWNoKCRhZGRyZXNzZXMgYXMgJG9uZV9hZGRyZXNzKSB7CiAgICAKICAgICAgICAkY21zbWFpbGVyLT5BZGRBZGRyZXNzKCRvbmVfYWRkcmVzcyk7CiAgICAgICAgCiAgICAgICAgaWYgKCRhZGRyZXNzZXNbMF09PSRvbmVfYWRkcmVzcyl7CiAgICAgICAgCSRjbXNtYWlsZXItPlNldEJvZHkoJENDdGV4dC4kYm9keXRleHQpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgCSRjbXNtYWlsZXItPlNldEJvZHkoJFRPdGV4dC4kYm9keXRleHQpOwogICAgICAgIH0KCiAgICAgICAgJGNtc21haWxlci0+SXNIVE1MKHRydWUpOwogICAgICAgICRjbXNtYWlsZXItPlNldFN1YmplY3QoJ0NsYXNzIG5vdGlmaWNhdGlvbi0tJy4kc3VtbWFyeS4nJyk7CiAgICAgICAgJGNtc21haWxlci0+U2VuZCgpOwogICAgICAgICRjbXNtYWlsZXItPkNsZWFyQWRkcmVzc2VzKCk7CiAgICB9CiAgICBlY2hvIk1haWwgc2VudCA8YnIvPiI7]]></data>
	</file>
</module>
