Find this useful? Enter your email to receive occasional updates for securing PHP code.

Signing you up...

Thank you for signing up!

PHP Decode

<?php eval("?>".base64_decode("PD9waHANCmluY2x1ZGVfb25jZSAnZGJjb25maWcucGhwJzsNCg0KY2xhc3M..

Decoded Output download

?>b'<?php
include_once \'dbconfig.php\';

class WindMill_CRUD
{
	public function __construct()
	{
		$db = new DB_con();
	}
	
//Windmill Codes Start	
	// function for create
	public function create($location_no,$htscno,$datecommunication,$sf_no,$address,$address,$make,$capacity,$multiplying)
	{		
		mysql_query("INSERT INTO `windmillmaster` (`WM_ID`, `LOC_NO`, `HTSC_NO`, `DATE_COMMISSION`, `SF_NO`, `ADDRESS`, `MAKE`, `CAPACITY`, `MULTIPLY_FACTOR`,`STATUS`) VALUES (NULL, \'$location_no\', \'$htscno\', \'$datecommunication\', \'$sf_no\', \'$address\', \'$make\', \'$capacity\', \'$multiplying\',\'ACTIVE\')");
	}
	// function for update
	public function updateWindmill($wm_id,$location_no,$htscno,$datecommunication,$sf_no,$address,$address,$make,$capacity,$multiplying)
	{		
		mysql_query("UPDATE `windmillmaster` set `LOC_NO`=\'$location_no\', `HTSC_NO`=\'$htscno\', `DATE_COMMISSION`=\'$datecommunication\', `SF_NO`=\'$sf_no\', `ADDRESS`=\'$address\', `MAKE`=\'$make\', `CAPACITY`=\'$capacity\', `MULTIPLY_FACTOR`=\'$multiplying\' where WM_ID= $wm_id");
	}
	
	
	
	// function for read
	public function readWindmill()
	{
		return mysql_query("SELECT * FROM windmillmaster where STATUS=\'ACTIVE\' ORDER BY HTSC_NO ASC");
	}
	
		// function for read
	public function readassigned_WindmillbyUser($user)
	{
		return mysql_query("SELECT * FROM assign_supervisor where S_NAME=\'$user\' and STATUS=\'ACTIVE\' ORDER BY HTSC_NO ASC");
	}
	
	
	//function for windmill edit 
	public function EditAllWindMill($id)
	{		
		return mysql_query("SELECT * FROM windmillmaster where WM_ID=\'$id\'");
	}
	
	// function for delete
	public function deleteWindmill($id)
	{
		//mysql_query("DELETE FROM windmillmaster WHERE WM_ID=".$id);
		mysql_query("UPDATE `windmillmaster` set `STATUS`=\'INACTIVE\' where WM_ID= $id");
	}
	// function for delete
	
	// function for update
/*	public function updateWindmill($location_no,$htscno,$sf_no,$id)
	{
		mysql_query("UPDATE windmillmaster SET LOC_NO=\'$location_no\', HTSC_NO=\'$htscno\', SF_NO=\'$sf_no\' WHERE WM_ID=".$id);
	} */
	// Windmill Code End
	


// function for reading Dates
	public function readLastDates()
	{
		 $date= date(\'d-m-Y\', strtotime(\'-1 day\'));
		 $Date_Reading=date("Y-m-d", strtotime($date));		 
		 return mysql_query("SELECT DISTINCT DATE FROM import where DATE<=\'$Date_Reading\' ORDER BY DATE DESC LIMIT 3");
	
	}
	
	
// Mill Code  Start
		
	// function for create Mill
	public function MillCreate($millname)
	{		
		mysql_query("INSERT INTO `mills_table` (`M_ID`, `MILL_NAME`) VALUES (NULL, \'$millname\')");
	}
	
	
	// function for Read Mill
	public function ReadMill($millname)
	{		
		return mysql_query("SELECT DISTINCT MILL_NAME FROM `mills_table` ORDER BY M_ID ASC");
	}
	
	
		// function for Read Mill
	public function ReadMill2()
	{		
		return mysql_query("SELECT *  FROM `unitmaster` where STATUS=\'ACTIVE\' ORDER BY UNIT_ID ASC");
	}
	
	
	
	
	
	
		
// Mill Code  Start
	
	
		
// Unit Master Code  Start
		
	// function for create Unitmaster
	public function CreateUnitmaster($millname,$locationname,$date)
	{		
	
     	mysql_query("INSERT INTO `unitmaster` (`UNIT_ID`, `UNIT_NAME`, `LOCATION`, `DATE` ,`STATUS`) VALUES (NULL, \'$millname\', \'$locationname\', \'$date\' , \'ACTIVE\')");
	}
	
	public function EditUnitmasterbyID($id)
	{		
		return mysql_query("SELECT * FROM unitmaster where UNIT_ID=\'$id\'");
	}

	public function EditMaintenanceListbyID($id)
	{		
		return mysql_query("SELECT * FROM maintanence_list where MN_ID=\'$id\'");
	}
	
	public function EditChargemasterbyID($id)
	{
		return mysql_query("SELECT * FROM charge_master where Id=\'$id\'");
	}

	
	public function EditEmailmasterbyID($id)
	{
		return mysql_query("SELECT * FROM email_master where ID=\'$id\'");
	}

	public function EditUnitmaster($id)
	{		
		return mysql_query("SELECT * FROM unit_map where UNIT_ID=\'$id\'");
	}
	
	// function for update
	public function UpdateUnitmaster($millid,$millname,$locationname,$date)
	{		
		mysql_query("UPDATE unitmaster set `UNIT_NAME`=\'$millname\', `LOCATION`=\'$locationname\', `DATE`=\'$date\' where UNIT_ID= $millid");
	}
	
	public function DeleteUnitmaster($id)
	{		
		// return mysql_query("Delete FROM unitmaster where UNIT_ID=\'$id\'");
		mysql_query("UPDATE unitmaster set STATUS=\'INACTIVE\' where UNIT_ID=\'$id\'");
	}

	

	public function ReadUnitmaster()
	{		
		return mysql_query("SELECT * FROM unit_map WHERE STATUS=\'ACTIVE\' ORDER BY HTSC_NO ASC");
	}
	
	public function getUnitmaster1()
	{		
		return mysql_query("SELECT * FROM unitmaster where STATUS= \'ACTIVE\' ORDER BY UNIT_NAME ASC");
	}
	
	public function getChargemaster()
	{		
		return mysql_query("SELECT * FROM charge_master");
	}

	public function getEmailmaster()
	{		
		return mysql_query("SELECT * FROM email_master");
	}

   // function for Group by using name
	public function ReadUnitmasterMerge()
	{		
		return mysql_query("SELECT * FROM unit_map WHERE STATUS=\'ACTIVE\'  GROUP BY(MILL_NAME) ORDER BY MILL_NAME ASC");
	}
	
	
	public function ReadUnitmasterbyMillName($name)
	{		
		return mysql_query("SELECT * FROM unit_map where MILL_NAME=\'$name\' and STATUS=\'ACTIVE\'");
	}
	
	
		
	
	
	

// Import And Export Code  Start
	
	public function ReadImporttbl()
	{		
		return mysql_query("SELECT * FROM import ORDER BY I_ID ASC");
	}

    public function ReadExporttbl()
	{		
		return mysql_query("SELECT * FROM export ORDER BY I_ID ASC");
	}	
	
	
	public function Read_Import_Exporttbl()
	{		
		//return mysql_query("SELECT *,\'Import\' AS Table_Name  FROM `import` UNION ALL SELECT *,\'Export\' AS Table_Name  FROM `export`");

		return mysql_query("SELECT DISTINCT I_ID,HTSC_NO AS HTSC_NO_N,RKVH,DATE AS IM_Date,C1 AS IM_C1,C2 AS IM_C2,C3 AS IM_C3,C4 AS IM_C4,C5 AS IM_C5,TOTAL AS IM_TOTAL,READ_USER,IFNULL((SELECT ex.C1 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\') AS EX_C1,IFNULL((SELECT ex.C2 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C2,IFNULL((SELECT ex.C3 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C3,IFNULL((SELECT ex.C4 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C4,IFNULL((SELECT ex.C5 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C5,IFNULL((SELECT ex.TOTAL FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_TOTAL FROM import");
	}	

public function Read_Import_Exporttbl_1()
	{		
		//return mysql_query("SELECT *,\'Import\' AS Table_Name  FROM `import` UNION ALL SELECT *,\'Export\' AS Table_Name  FROM `export`");

		return mysql_query("SELECT  im.I_ID,im.HTSC_NO AS HTSC_NO_N,im.RKVH,im.DATE AS IM_Date,im.C1 AS IM_C1,im.C2 AS IM_C2,im.C3 AS IM_C3,im.C4 AS IM_C4,im.C5 AS IM_C5,im.READ_USER AS READ_USER FROM import im where im.DATE>=\'2016-04-01\' ");
	}	
	
	
	
	public function Read_TNEB_Reports()
	{		
		//return mysql_query("SELECT *,\'Import\' AS Table_Name  FROM `tneb_import` UNION ALL SELECT *,\'Export\' AS Table_Name  FROM `tneb_export` UNION ALL SELECT *,\'Line Loss\' AS Table_Name  FROM `tneb_lineloss`");
		return mysql_query("SELECT DISTINCT HTSC_NO AS HTSC_NO_N,RKVH,DATE AS IM_Date,C1 AS IM_C1,C2 AS IM_C2,C3 AS IM_C3,C4 AS IM_C4,C5 AS IM_C5,TOTAL AS IM_TOTAL,READ_USER,IFNULL((SELECT ex.C1 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\') AS EX_C1,IFNULL((SELECT ex.C2 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C2,IFNULL((SELECT ex.C3 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C3,IFNULL((SELECT ex.C4 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C4,IFNULL((SELECT ex.C5 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C5,IFNULL((SELECT ex.TOTAL FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_TOTAL FROM tneb_import");
	}	
	


		
	public function Read_Import_Exporttbl_by_supv($user)
	{		
		//return mysql_query("SELECT *,\'Import\' AS Table_Name  FROM `import` UNION ALL SELECT *,\'Export\' AS Table_Name  FROM `export`");
		return mysql_query("SELECT DISTINCT HTSC_NO AS HTSC_NO_N,RKVH,DATE AS IM_Date,C1 AS IM_C1,C2 AS IM_C2,C3 AS IM_C3,C4 AS IM_C4,C5 AS IM_C5,TOTAL AS IM_TOTAL,READ_USER,IFNULL((SELECT ex.C1 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\') AS EX_C1,IFNULL((SELECT ex.C2 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C2,IFNULL((SELECT ex.C3 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C3,IFNULL((SELECT ex.C4 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C4,IFNULL((SELECT ex.C5 FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C5,IFNULL((SELECT ex.TOTAL FROM export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_TOTAL FROM import where READ_USER=\'$user\'");
	}
	
	public function Read_TNEB_Reports_by_supv($user)
	{		
		return mysql_query("SELECT DISTINCT HTSC_NO AS HTSC_NO_N,RKVH,DATE AS IM_Date,C1 AS IM_C1,C2 AS IM_C2,C3 AS IM_C3,C4 AS IM_C4,C5 AS IM_C5,TOTAL AS IM_TOTAL,READ_USER,IFNULL((SELECT ex.C1 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\') AS EX_C1,IFNULL((SELECT ex.C2 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C2,IFNULL((SELECT ex.C3 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C3,IFNULL((SELECT ex.C4 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C4,IFNULL((SELECT ex.C5 FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_C5,IFNULL((SELECT ex.TOTAL FROM tneb_export ex WHERE ex.HTSC_NO=HTSC_NO_N AND ex.DATE=IM_Date),\'-\')  AS EX_TOTAL FROM tneb_import where READ_USER=\'$user\'");
	}	

	public function Read_Maintenance()
	{		
		return mysql_query("SELECT * FROM `maintanence` where STATUS=\'ACTIVE\'");
	}

public function Read_Maintenance_by_supv($user)
	{		
		return mysql_query("SELECT * FROM `maintanence` where POSTED_BY=\'$user\' and STATUS=\'ACTIVE\'");
	}

	public function Read_Maintenance_Bwn_Dates($hts_no,$start_date,$end_date)
	{		
		return mysql_query("SELECT * FROM `maintanence` where MN_DATE between \'$start_date\' and \'$end_date\' AND WIND_MILL=\'$hts_no\' AND STATUS=\'ACTIVE\'");
	}

// Import And Export Code End	

	
		
// Supervisor Code  Start

// function for create
	
	
	
	public function ReadAllSupervisor()
	{		
		return mysql_query("SELECT * FROM supervisors where STATUS=\'ACTIVE\' ORDER BY NAME ASC");
	}

    public function EditAllSupervisor($id)
	{		
		return mysql_query("SELECT * FROM supervisors where S_ID=\'$id\'");
	}
	
	
	public function GetSupervisorName($id)
	{		
		return mysql_query("SELECT * FROM supervisors where SUP_ID=\'$id\'");
	}
	
	public function DeleteAllSupervisor($id)
	{		
		//return mysql_query("Delete FROM supervisors where S_ID=\'$id\'");
		mysql_query("UPDATE supervisors set `STATUS`=\'INACTIVE\' where S_ID= $id");
	}
	
	
// Supervisor Code  End	


// User Code  Start

// function for create
	
	
	
	public function ReadAllUser()
	{		
		return mysql_query("SELECT * FROM user where STATUS=\'ACTIVE\' ORDER BY NAME ASC");
	}

    public function EditAllUser($id)
	{		
		return mysql_query("SELECT * FROM user where U_ID=\'$id\'");
	}
	
	public function DeleteAllUser($id)
	{		
		//return mysql_query("Delete FROM supervisors where S_ID=\'$id\'");
		mysql_query("UPDATE user set `STATUS`=\'INACTIVE\' where U_ID= $id");
	}
	
	
// User Code  End	
	
	
//For Supervisor Allocations Start	

	// function for create Unitmaster
	public function CreateSupervisor($sup_name,$htscno,$date)
	{		
	
     	$singleHTSC= explode(\',\', $htscno);
		foreach($singleHTSC as $part) {
		 // echo $part;
		 
		  /*$get_sup=mysql_query("SELECT * FROM supervisors where NAME=\'$sup_name\'");	
		  $getrow=	mysql_fetch_array($get_sup);		  
		  $s_id=$getrow[\'S_ID\'];*/
		
		  
		  $get_htsc=mysql_query("SELECT * FROM assign_supervisor where S_NAME=\'$sup_name\' and HTSC_NO=\'$part\'");														
		  $row = mysql_fetch_array($get_htsc);
		
				if($part== $row[\'HTSC_NO\'])
				{
					
				}
				else
				{	
					mysql_query("INSERT INTO `assign_supervisor` (`AS_ID`, `S_NAME`, `HTSC_NO`, `DATE`) VALUES (NULL, \'$sup_name\', \'$part\', \'$date\')");
		
				}
		
		}

	
	}
	
	
	// function for Read Mill
	public function ReadSupervisor()
	{		
		return mysql_query("SELECT * FROM assign_supervisor where STATUS=\'ACTIVE\' ORDER BY S_NAME ASC");
	}
	
   // function for Group by using name
	public function ReadSupervisorMerge()
	{		
		return mysql_query("SELECT * FROM assign_supervisor where STATUS=\'ACTIVE\'  GROUP BY(S_NAME) ORDER BY S_NAME ASC");
	}
	
	
	
		// function for Read Mill
	public function EditSupervisor($id)
	{		
		return mysql_query("SELECT * FROM assign_supervisor where AS_ID=\'$id\'");
	}
	
	
	public function ReadSupervisorbyName($name)
	{		
		return mysql_query("SELECT * FROM assign_supervisor where S_NAME=\'$name\' and STATUS=\'ACTIVE\'");
	}
	
	
		
	public function DeleteSupervisor($id)
	{		
		return mysql_query("Delete FROM assign_supervisor where AS_ID=\'$id\'");
	}
	
	public function DeleteChargemaster($id)
	{		
		return mysql_query("Delete FROM charge_master where Id=\'$id\'");
	}
	
//For Supervisor Allocations Start		


// For Maintanence Code  Start
	public function ReadAllMaintanenceList($issue_type)
	{		
		return mysql_query("SELECT * FROM maintanence_list  where ISSUE_SIDE=\'$issue_type\'");
	}

	public function ReadMaintanenceList()
	{		
		return mysql_query("SELECT * FROM maintanence_list where STATUS=\'ACTIVE\'");
	}

	public function ReadMaintanence()
	{		
		return mysql_query("SELECT * FROM maintanence where STATUS=\'ACTIVE\'");
	}
	
	public function ReadMaintanenceByUser($name)
	{		
		return mysql_query("SELECT * FROM maintanence where POSTED_BY=\'$name\' and  STATUS=\'ACTIVE\'");
	}

	public function EditMaintanence($id)
	{		
		return mysql_query("SELECT * FROM maintanence where MAINT_ID=\'$id\'");
	}
	
	public function DeleteMaintanence($id)
	{		
	
		return mysql_query("UPDATE maintanence SET `STATUS` = \'INACTIVE\' WHERE `MAINT_ID` = \'$id\'");
	}

	
	
}
?>'

Did this file decode correctly?

Original Code

<?php eval("?>".base64_decode("PD9waHANCmluY2x1ZGVfb25jZSAnZGJjb25maWcucGhwJzsNCg0KY2xhc3MgV2luZE1pbGxfQ1JVRA0Kew0KCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgpDQoJew0KCQkkZGIgPSBuZXcgREJfY29uKCk7DQoJfQ0KCQ0KLy9XaW5kbWlsbCBDb2RlcyBTdGFydAkNCgkvLyBmdW5jdGlvbiBmb3IgY3JlYXRlDQoJcHVibGljIGZ1bmN0aW9uIGNyZWF0ZSgkbG9jYXRpb25fbm8sJGh0c2NubywkZGF0ZWNvbW11bmljYXRpb24sJHNmX25vLCRhZGRyZXNzLCRhZGRyZXNzLCRtYWtlLCRjYXBhY2l0eSwkbXVsdGlwbHlpbmcpDQoJewkJDQoJCW15c3FsX3F1ZXJ5KCJJTlNFUlQgSU5UTyBgd2luZG1pbGxtYXN0ZXJgIChgV01fSURgLCBgTE9DX05PYCwgYEhUU0NfTk9gLCBgREFURV9DT01NSVNTSU9OYCwgYFNGX05PYCwgYEFERFJFU1NgLCBgTUFLRWAsIGBDQVBBQ0lUWWAsIGBNVUxUSVBMWV9GQUNUT1JgLGBTVEFUVVNgKSBWQUxVRVMgKE5VTEwsICckbG9jYXRpb25fbm8nLCAnJGh0c2NubycsICckZGF0ZWNvbW11bmljYXRpb24nLCAnJHNmX25vJywgJyRhZGRyZXNzJywgJyRtYWtlJywgJyRjYXBhY2l0eScsICckbXVsdGlwbHlpbmcnLCdBQ1RJVkUnKSIpOw0KCX0NCgkvLyBmdW5jdGlvbiBmb3IgdXBkYXRlDQoJcHVibGljIGZ1bmN0aW9uIHVwZGF0ZVdpbmRtaWxsKCR3bV9pZCwkbG9jYXRpb25fbm8sJGh0c2NubywkZGF0ZWNvbW11bmljYXRpb24sJHNmX25vLCRhZGRyZXNzLCRhZGRyZXNzLCRtYWtlLCRjYXBhY2l0eSwkbXVsdGlwbHlpbmcpDQoJewkJDQoJCW15c3FsX3F1ZXJ5KCJVUERBVEUgYHdpbmRtaWxsbWFzdGVyYCBzZXQgYExPQ19OT2A9JyRsb2NhdGlvbl9ubycsIGBIVFNDX05PYD0nJGh0c2NubycsIGBEQVRFX0NPTU1JU1NJT05gPSckZGF0ZWNvbW11bmljYXRpb24nLCBgU0ZfTk9gPSckc2Zfbm8nLCBgQUREUkVTU2A9JyRhZGRyZXNzJywgYE1BS0VgPSckbWFrZScsIGBDQVBBQ0lUWWA9JyRjYXBhY2l0eScsIGBNVUxUSVBMWV9GQUNUT1JgPSckbXVsdGlwbHlpbmcnIHdoZXJlIFdNX0lEPSAkd21faWQiKTsNCgl9DQoJDQoJDQoJDQoJLy8gZnVuY3Rpb24gZm9yIHJlYWQNCglwdWJsaWMgZnVuY3Rpb24gcmVhZFdpbmRtaWxsKCkNCgl7DQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB3aW5kbWlsbG1hc3RlciB3aGVyZSBTVEFUVVM9J0FDVElWRScgT1JERVIgQlkgSFRTQ19OTyBBU0MiKTsNCgl9DQoJDQoJCS8vIGZ1bmN0aW9uIGZvciByZWFkDQoJcHVibGljIGZ1bmN0aW9uIHJlYWRhc3NpZ25lZF9XaW5kbWlsbGJ5VXNlcigkdXNlcikNCgl7DQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBhc3NpZ25fc3VwZXJ2aXNvciB3aGVyZSBTX05BTUU9JyR1c2VyJyBhbmQgU1RBVFVTPSdBQ1RJVkUnIE9SREVSIEJZIEhUU0NfTk8gQVNDIik7DQoJfQ0KCQ0KCQ0KCS8vZnVuY3Rpb24gZm9yIHdpbmRtaWxsIGVkaXQgDQoJcHVibGljIGZ1bmN0aW9uIEVkaXRBbGxXaW5kTWlsbCgkaWQpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB3aW5kbWlsbG1hc3RlciB3aGVyZSBXTV9JRD0nJGlkJyIpOw0KCX0NCgkNCgkvLyBmdW5jdGlvbiBmb3IgZGVsZXRlDQoJcHVibGljIGZ1bmN0aW9uIGRlbGV0ZVdpbmRtaWxsKCRpZCkNCgl7DQoJCS8vbXlzcWxfcXVlcnkoIkRFTEVURSBGUk9NIHdpbmRtaWxsbWFzdGVyIFdIRVJFIFdNX0lEPSIuJGlkKTsNCgkJbXlzcWxfcXVlcnkoIlVQREFURSBgd2luZG1pbGxtYXN0ZXJgIHNldCBgU1RBVFVTYD0nSU5BQ1RJVkUnIHdoZXJlIFdNX0lEPSAkaWQiKTsNCgl9DQoJLy8gZnVuY3Rpb24gZm9yIGRlbGV0ZQ0KCQ0KCS8vIGZ1bmN0aW9uIGZvciB1cGRhdGUNCi8qCXB1YmxpYyBmdW5jdGlvbiB1cGRhdGVXaW5kbWlsbCgkbG9jYXRpb25fbm8sJGh0c2Nubywkc2Zfbm8sJGlkKQ0KCXsNCgkJbXlzcWxfcXVlcnkoIlVQREFURSB3aW5kbWlsbG1hc3RlciBTRVQgTE9DX05PPSckbG9jYXRpb25fbm8nLCBIVFNDX05PPSckaHRzY25vJywgU0ZfTk89JyRzZl9ubycgV0hFUkUgV01fSUQ9Ii4kaWQpOw0KCX0gKi8NCgkvLyBXaW5kbWlsbCBDb2RlIEVuZA0KCQ0KDQoNCi8vIGZ1bmN0aW9uIGZvciByZWFkaW5nIERhdGVzDQoJcHVibGljIGZ1bmN0aW9uIHJlYWRMYXN0RGF0ZXMoKQ0KCXsNCgkJICRkYXRlPSBkYXRlKCdkLW0tWScsIHN0cnRvdGltZSgnLTEgZGF5JykpOw0KCQkgJERhdGVfUmVhZGluZz1kYXRlKCJZLW0tZCIsIHN0cnRvdGltZSgkZGF0ZSkpOwkJIA0KCQkgcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgRElTVElOQ1QgREFURSBGUk9NIGltcG9ydCB3aGVyZSBEQVRFPD0nJERhdGVfUmVhZGluZycgT1JERVIgQlkgREFURSBERVNDIExJTUlUIDMiKTsNCgkNCgl9DQoJDQoJDQovLyBNaWxsIENvZGUgIFN0YXJ0DQoJCQ0KCS8vIGZ1bmN0aW9uIGZvciBjcmVhdGUgTWlsbA0KCXB1YmxpYyBmdW5jdGlvbiBNaWxsQ3JlYXRlKCRtaWxsbmFtZSkNCgl7CQkNCgkJbXlzcWxfcXVlcnkoIklOU0VSVCBJTlRPIGBtaWxsc190YWJsZWAgKGBNX0lEYCwgYE1JTExfTkFNRWApIFZBTFVFUyAoTlVMTCwgJyRtaWxsbmFtZScpIik7DQoJfQ0KCQ0KCQ0KCS8vIGZ1bmN0aW9uIGZvciBSZWFkIE1pbGwNCglwdWJsaWMgZnVuY3Rpb24gUmVhZE1pbGwoJG1pbGxuYW1lKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCBESVNUSU5DVCBNSUxMX05BTUUgRlJPTSBgbWlsbHNfdGFibGVgIE9SREVSIEJZIE1fSUQgQVNDIik7DQoJfQ0KCQ0KCQ0KCQkvLyBmdW5jdGlvbiBmb3IgUmVhZCBNaWxsDQoJcHVibGljIGZ1bmN0aW9uIFJlYWRNaWxsMigpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogIEZST00gYHVuaXRtYXN0ZXJgIHdoZXJlIFNUQVRVUz0nQUNUSVZFJyBPUkRFUiBCWSBVTklUX0lEIEFTQyIpOw0KCX0NCgkNCgkNCgkNCgkNCgkNCgkNCgkJDQovLyBNaWxsIENvZGUgIFN0YXJ0DQoJDQoJDQoJCQ0KLy8gVW5pdCBNYXN0ZXIgQ29kZSAgU3RhcnQNCgkJDQoJLy8gZnVuY3Rpb24gZm9yIGNyZWF0ZSBVbml0bWFzdGVyDQoJcHVibGljIGZ1bmN0aW9uIENyZWF0ZVVuaXRtYXN0ZXIoJG1pbGxuYW1lLCRsb2NhdGlvbm5hbWUsJGRhdGUpDQoJewkJDQoJDQogICAgIAlteXNxbF9xdWVyeSgiSU5TRVJUIElOVE8gYHVuaXRtYXN0ZXJgIChgVU5JVF9JRGAsIGBVTklUX05BTUVgLCBgTE9DQVRJT05gLCBgREFURWAgLGBTVEFUVVNgKSBWQUxVRVMgKE5VTEwsICckbWlsbG5hbWUnLCAnJGxvY2F0aW9ubmFtZScsICckZGF0ZScgLCAnQUNUSVZFJykiKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIEVkaXRVbml0bWFzdGVyYnlJRCgkaWQpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB1bml0bWFzdGVyIHdoZXJlIFVOSVRfSUQ9JyRpZCciKTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gRWRpdE1haW50ZW5hbmNlTGlzdGJ5SUQoJGlkKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gbWFpbnRhbmVuY2VfbGlzdCB3aGVyZSBNTl9JRD0nJGlkJyIpOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gRWRpdENoYXJnZW1hc3RlcmJ5SUQoJGlkKQ0KCXsNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGNoYXJnZV9tYXN0ZXIgd2hlcmUgSWQ9JyRpZCciKTsNCgl9DQoNCgkNCglwdWJsaWMgZnVuY3Rpb24gRWRpdEVtYWlsbWFzdGVyYnlJRCgkaWQpDQoJew0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gZW1haWxfbWFzdGVyIHdoZXJlIElEPSckaWQnIik7DQoJfQ0KDQoJcHVibGljIGZ1bmN0aW9uIEVkaXRVbml0bWFzdGVyKCRpZCkNCgl7CQkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHVuaXRfbWFwIHdoZXJlIFVOSVRfSUQ9JyRpZCciKTsNCgl9DQoJDQoJLy8gZnVuY3Rpb24gZm9yIHVwZGF0ZQ0KCXB1YmxpYyBmdW5jdGlvbiBVcGRhdGVVbml0bWFzdGVyKCRtaWxsaWQsJG1pbGxuYW1lLCRsb2NhdGlvbm5hbWUsJGRhdGUpDQoJewkJDQoJCW15c3FsX3F1ZXJ5KCJVUERBVEUgdW5pdG1hc3RlciBzZXQgYFVOSVRfTkFNRWA9JyRtaWxsbmFtZScsIGBMT0NBVElPTmA9JyRsb2NhdGlvbm5hbWUnLCBgREFURWA9JyRkYXRlJyB3aGVyZSBVTklUX0lEPSAkbWlsbGlkIik7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBEZWxldGVVbml0bWFzdGVyKCRpZCkNCgl7CQkNCgkJLy8gcmV0dXJuIG15c3FsX3F1ZXJ5KCJEZWxldGUgRlJPTSB1bml0bWFzdGVyIHdoZXJlIFVOSVRfSUQ9JyRpZCciKTsNCgkJbXlzcWxfcXVlcnkoIlVQREFURSB1bml0bWFzdGVyIHNldCBTVEFUVVM9J0lOQUNUSVZFJyB3aGVyZSBVTklUX0lEPSckaWQnIik7DQoJfQ0KDQoJDQoNCglwdWJsaWMgZnVuY3Rpb24gUmVhZFVuaXRtYXN0ZXIoKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdW5pdF9tYXAgV0hFUkUgU1RBVFVTPSdBQ1RJVkUnIE9SREVSIEJZIEhUU0NfTk8gQVNDIik7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBnZXRVbml0bWFzdGVyMSgpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB1bml0bWFzdGVyIHdoZXJlIFNUQVRVUz0gJ0FDVElWRScgT1JERVIgQlkgVU5JVF9OQU1FIEFTQyIpOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gZ2V0Q2hhcmdlbWFzdGVyKCkNCgl7CQkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGNoYXJnZV9tYXN0ZXIiKTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gZ2V0RW1haWxtYXN0ZXIoKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gZW1haWxfbWFzdGVyIik7DQoJfQ0KDQogICAvLyBmdW5jdGlvbiBmb3IgR3JvdXAgYnkgdXNpbmcgbmFtZQ0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkVW5pdG1hc3Rlck1lcmdlKCkNCgl7CQkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIHVuaXRfbWFwIFdIRVJFIFNUQVRVUz0nQUNUSVZFJyAgR1JPVVAgQlkoTUlMTF9OQU1FKSBPUkRFUiBCWSBNSUxMX05BTUUgQVNDIik7DQoJfQ0KCQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkVW5pdG1hc3RlcmJ5TWlsbE5hbWUoJG5hbWUpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSB1bml0X21hcCB3aGVyZSBNSUxMX05BTUU9JyRuYW1lJyBhbmQgU1RBVFVTPSdBQ1RJVkUnIik7DQoJfQ0KCQ0KCQ0KCQkNCgkNCgkNCgkNCg0KLy8gSW1wb3J0IEFuZCBFeHBvcnQgQ29kZSAgU3RhcnQNCgkNCglwdWJsaWMgZnVuY3Rpb24gUmVhZEltcG9ydHRibCgpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBpbXBvcnQgT1JERVIgQlkgSV9JRCBBU0MiKTsNCgl9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gUmVhZEV4cG9ydHRibCgpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBleHBvcnQgT1JERVIgQlkgSV9JRCBBU0MiKTsNCgl9CQ0KCQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkX0ltcG9ydF9FeHBvcnR0YmwoKQ0KCXsJCQ0KCQkvL3JldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICosJ0ltcG9ydCcgQVMgVGFibGVfTmFtZSAgRlJPTSBgaW1wb3J0YCBVTklPTiBBTEwgU0VMRUNUICosJ0V4cG9ydCcgQVMgVGFibGVfTmFtZSAgRlJPTSBgZXhwb3J0YCIpOw0KDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUIERJU1RJTkNUIElfSUQsSFRTQ19OTyBBUyBIVFNDX05PX04sUktWSCxEQVRFIEFTIElNX0RhdGUsQzEgQVMgSU1fQzEsQzIgQVMgSU1fQzIsQzMgQVMgSU1fQzMsQzQgQVMgSU1fQzQsQzUgQVMgSU1fQzUsVE9UQUwgQVMgSU1fVE9UQUwsUkVBRF9VU0VSLElGTlVMTCgoU0VMRUNUIGV4LkMxIEZST00gZXhwb3J0IGV4IFdIRVJFIGV4LkhUU0NfTk89SFRTQ19OT19OIEFORCBleC5EQVRFPUlNX0RhdGUpLCctJykgQVMgRVhfQzEsSUZOVUxMKChTRUxFQ1QgZXguQzIgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzIsSUZOVUxMKChTRUxFQ1QgZXguQzMgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzMsSUZOVUxMKChTRUxFQ1QgZXguQzQgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzQsSUZOVUxMKChTRUxFQ1QgZXguQzUgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzUsSUZOVUxMKChTRUxFQ1QgZXguVE9UQUwgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfVE9UQUwgRlJPTSBpbXBvcnQiKTsNCgl9CQ0KDQpwdWJsaWMgZnVuY3Rpb24gUmVhZF9JbXBvcnRfRXhwb3J0dGJsXzEoKQ0KCXsJCQ0KCQkvL3JldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICosJ0ltcG9ydCcgQVMgVGFibGVfTmFtZSAgRlJPTSBgaW1wb3J0YCBVTklPTiBBTEwgU0VMRUNUICosJ0V4cG9ydCcgQVMgVGFibGVfTmFtZSAgRlJPTSBgZXhwb3J0YCIpOw0KDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICBpbS5JX0lELGltLkhUU0NfTk8gQVMgSFRTQ19OT19OLGltLlJLVkgsaW0uREFURSBBUyBJTV9EYXRlLGltLkMxIEFTIElNX0MxLGltLkMyIEFTIElNX0MyLGltLkMzIEFTIElNX0MzLGltLkM0IEFTIElNX0M0LGltLkM1IEFTIElNX0M1LGltLlJFQURfVVNFUiBBUyBSRUFEX1VTRVIgRlJPTSBpbXBvcnQgaW0gd2hlcmUgaW0uREFURT49JzIwMTYtMDQtMDEnICIpOw0KCX0JDQoJDQoJDQoJDQoJcHVibGljIGZ1bmN0aW9uIFJlYWRfVE5FQl9SZXBvcnRzKCkNCgl7CQkNCgkJLy9yZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqLCdJbXBvcnQnIEFTIFRhYmxlX05hbWUgIEZST00gYHRuZWJfaW1wb3J0YCBVTklPTiBBTEwgU0VMRUNUICosJ0V4cG9ydCcgQVMgVGFibGVfTmFtZSAgRlJPTSBgdG5lYl9leHBvcnRgIFVOSU9OIEFMTCBTRUxFQ1QgKiwnTGluZSBMb3NzJyBBUyBUYWJsZV9OYW1lICBGUk9NIGB0bmViX2xpbmVsb3NzYCIpOw0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCBESVNUSU5DVCBIVFNDX05PIEFTIEhUU0NfTk9fTixSS1ZILERBVEUgQVMgSU1fRGF0ZSxDMSBBUyBJTV9DMSxDMiBBUyBJTV9DMixDMyBBUyBJTV9DMyxDNCBBUyBJTV9DNCxDNSBBUyBJTV9DNSxUT1RBTCBBUyBJTV9UT1RBTCxSRUFEX1VTRVIsSUZOVUxMKChTRUxFQ1QgZXguQzEgRlJPTSB0bmViX2V4cG9ydCBleCBXSEVSRSBleC5IVFNDX05PPUhUU0NfTk9fTiBBTkQgZXguREFURT1JTV9EYXRlKSwnLScpIEFTIEVYX0MxLElGTlVMTCgoU0VMRUNUIGV4LkMyIEZST00gdG5lYl9leHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzIsSUZOVUxMKChTRUxFQ1QgZXguQzMgRlJPTSB0bmViX2V4cG9ydCBleCBXSEVSRSBleC5IVFNDX05PPUhUU0NfTk9fTiBBTkQgZXguREFURT1JTV9EYXRlKSwnLScpICBBUyBFWF9DMyxJRk5VTEwoKFNFTEVDVCBleC5DNCBGUk9NIHRuZWJfZXhwb3J0IGV4IFdIRVJFIGV4LkhUU0NfTk89SFRTQ19OT19OIEFORCBleC5EQVRFPUlNX0RhdGUpLCctJykgIEFTIEVYX0M0LElGTlVMTCgoU0VMRUNUIGV4LkM1IEZST00gdG5lYl9leHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzUsSUZOVUxMKChTRUxFQ1QgZXguVE9UQUwgRlJPTSB0bmViX2V4cG9ydCBleCBXSEVSRSBleC5IVFNDX05PPUhUU0NfTk9fTiBBTkQgZXguREFURT1JTV9EYXRlKSwnLScpICBBUyBFWF9UT1RBTCBGUk9NIHRuZWJfaW1wb3J0Iik7DQoJfQkNCgkNCg0KDQoJCQ0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkX0ltcG9ydF9FeHBvcnR0YmxfYnlfc3VwdigkdXNlcikNCgl7CQkNCgkJLy9yZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqLCdJbXBvcnQnIEFTIFRhYmxlX05hbWUgIEZST00gYGltcG9ydGAgVU5JT04gQUxMIFNFTEVDVCAqLCdFeHBvcnQnIEFTIFRhYmxlX05hbWUgIEZST00gYGV4cG9ydGAiKTsNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgRElTVElOQ1QgSFRTQ19OTyBBUyBIVFNDX05PX04sUktWSCxEQVRFIEFTIElNX0RhdGUsQzEgQVMgSU1fQzEsQzIgQVMgSU1fQzIsQzMgQVMgSU1fQzMsQzQgQVMgSU1fQzQsQzUgQVMgSU1fQzUsVE9UQUwgQVMgSU1fVE9UQUwsUkVBRF9VU0VSLElGTlVMTCgoU0VMRUNUIGV4LkMxIEZST00gZXhwb3J0IGV4IFdIRVJFIGV4LkhUU0NfTk89SFRTQ19OT19OIEFORCBleC5EQVRFPUlNX0RhdGUpLCctJykgQVMgRVhfQzEsSUZOVUxMKChTRUxFQ1QgZXguQzIgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzIsSUZOVUxMKChTRUxFQ1QgZXguQzMgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzMsSUZOVUxMKChTRUxFQ1QgZXguQzQgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzQsSUZOVUxMKChTRUxFQ1QgZXguQzUgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzUsSUZOVUxMKChTRUxFQ1QgZXguVE9UQUwgRlJPTSBleHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfVE9UQUwgRlJPTSBpbXBvcnQgd2hlcmUgUkVBRF9VU0VSPSckdXNlciciKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIFJlYWRfVE5FQl9SZXBvcnRzX2J5X3N1cHYoJHVzZXIpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUIERJU1RJTkNUIEhUU0NfTk8gQVMgSFRTQ19OT19OLFJLVkgsREFURSBBUyBJTV9EYXRlLEMxIEFTIElNX0MxLEMyIEFTIElNX0MyLEMzIEFTIElNX0MzLEM0IEFTIElNX0M0LEM1IEFTIElNX0M1LFRPVEFMIEFTIElNX1RPVEFMLFJFQURfVVNFUixJRk5VTEwoKFNFTEVDVCBleC5DMSBGUk9NIHRuZWJfZXhwb3J0IGV4IFdIRVJFIGV4LkhUU0NfTk89SFRTQ19OT19OIEFORCBleC5EQVRFPUlNX0RhdGUpLCctJykgQVMgRVhfQzEsSUZOVUxMKChTRUxFQ1QgZXguQzIgRlJPTSB0bmViX2V4cG9ydCBleCBXSEVSRSBleC5IVFNDX05PPUhUU0NfTk9fTiBBTkQgZXguREFURT1JTV9EYXRlKSwnLScpICBBUyBFWF9DMixJRk5VTEwoKFNFTEVDVCBleC5DMyBGUk9NIHRuZWJfZXhwb3J0IGV4IFdIRVJFIGV4LkhUU0NfTk89SFRTQ19OT19OIEFORCBleC5EQVRFPUlNX0RhdGUpLCctJykgIEFTIEVYX0MzLElGTlVMTCgoU0VMRUNUIGV4LkM0IEZST00gdG5lYl9leHBvcnQgZXggV0hFUkUgZXguSFRTQ19OTz1IVFNDX05PX04gQU5EIGV4LkRBVEU9SU1fRGF0ZSksJy0nKSAgQVMgRVhfQzQsSUZOVUxMKChTRUxFQ1QgZXguQzUgRlJPTSB0bmViX2V4cG9ydCBleCBXSEVSRSBleC5IVFNDX05PPUhUU0NfTk9fTiBBTkQgZXguREFURT1JTV9EYXRlKSwnLScpICBBUyBFWF9DNSxJRk5VTEwoKFNFTEVDVCBleC5UT1RBTCBGUk9NIHRuZWJfZXhwb3J0IGV4IFdIRVJFIGV4LkhUU0NfTk89SFRTQ19OT19OIEFORCBleC5EQVRFPUlNX0RhdGUpLCctJykgIEFTIEVYX1RPVEFMIEZST00gdG5lYl9pbXBvcnQgd2hlcmUgUkVBRF9VU0VSPSckdXNlciciKTsNCgl9CQ0KDQoJcHVibGljIGZ1bmN0aW9uIFJlYWRfTWFpbnRlbmFuY2UoKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gYG1haW50YW5lbmNlYCB3aGVyZSBTVEFUVVM9J0FDVElWRSciKTsNCgl9DQoNCnB1YmxpYyBmdW5jdGlvbiBSZWFkX01haW50ZW5hbmNlX2J5X3N1cHYoJHVzZXIpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBgbWFpbnRhbmVuY2VgIHdoZXJlIFBPU1RFRF9CWT0nJHVzZXInIGFuZCBTVEFUVVM9J0FDVElWRSciKTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gUmVhZF9NYWludGVuYW5jZV9Cd25fRGF0ZXMoJGh0c19ubywkc3RhcnRfZGF0ZSwkZW5kX2RhdGUpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBgbWFpbnRhbmVuY2VgIHdoZXJlIE1OX0RBVEUgYmV0d2VlbiAnJHN0YXJ0X2RhdGUnIGFuZCAnJGVuZF9kYXRlJyBBTkQgV0lORF9NSUxMPSckaHRzX25vJyBBTkQgU1RBVFVTPSdBQ1RJVkUnIik7DQoJfQ0KDQovLyBJbXBvcnQgQW5kIEV4cG9ydCBDb2RlIEVuZAkNCg0KCQ0KCQkNCi8vIFN1cGVydmlzb3IgQ29kZSAgU3RhcnQNCg0KLy8gZnVuY3Rpb24gZm9yIGNyZWF0ZQ0KCQ0KCQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkQWxsU3VwZXJ2aXNvcigpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBzdXBlcnZpc29ycyB3aGVyZSBTVEFUVVM9J0FDVElWRScgT1JERVIgQlkgTkFNRSBBU0MiKTsNCgl9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gRWRpdEFsbFN1cGVydmlzb3IoJGlkKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gc3VwZXJ2aXNvcnMgd2hlcmUgU19JRD0nJGlkJyIpOw0KCX0NCgkNCgkNCglwdWJsaWMgZnVuY3Rpb24gR2V0U3VwZXJ2aXNvck5hbWUoJGlkKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gc3VwZXJ2aXNvcnMgd2hlcmUgU1VQX0lEPSckaWQnIik7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBEZWxldGVBbGxTdXBlcnZpc29yKCRpZCkNCgl7CQkNCgkJLy9yZXR1cm4gbXlzcWxfcXVlcnkoIkRlbGV0ZSBGUk9NIHN1cGVydmlzb3JzIHdoZXJlIFNfSUQ9JyRpZCciKTsNCgkJbXlzcWxfcXVlcnkoIlVQREFURSBzdXBlcnZpc29ycyBzZXQgYFNUQVRVU2A9J0lOQUNUSVZFJyB3aGVyZSBTX0lEPSAkaWQiKTsNCgl9DQoJDQoJDQovLyBTdXBlcnZpc29yIENvZGUgIEVuZAkNCg0KDQovLyBVc2VyIENvZGUgIFN0YXJ0DQoNCi8vIGZ1bmN0aW9uIGZvciBjcmVhdGUNCgkNCgkNCgkNCglwdWJsaWMgZnVuY3Rpb24gUmVhZEFsbFVzZXIoKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdXNlciB3aGVyZSBTVEFUVVM9J0FDVElWRScgT1JERVIgQlkgTkFNRSBBU0MiKTsNCgl9DQoNCiAgICBwdWJsaWMgZnVuY3Rpb24gRWRpdEFsbFVzZXIoJGlkKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gdXNlciB3aGVyZSBVX0lEPSckaWQnIik7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBEZWxldGVBbGxVc2VyKCRpZCkNCgl7CQkNCgkJLy9yZXR1cm4gbXlzcWxfcXVlcnkoIkRlbGV0ZSBGUk9NIHN1cGVydmlzb3JzIHdoZXJlIFNfSUQ9JyRpZCciKTsNCgkJbXlzcWxfcXVlcnkoIlVQREFURSB1c2VyIHNldCBgU1RBVFVTYD0nSU5BQ1RJVkUnIHdoZXJlIFVfSUQ9ICRpZCIpOw0KCX0NCgkNCgkNCi8vIFVzZXIgQ29kZSAgRW5kCQ0KCQ0KCQ0KLy9Gb3IgU3VwZXJ2aXNvciBBbGxvY2F0aW9ucyBTdGFydAkNCg0KCS8vIGZ1bmN0aW9uIGZvciBjcmVhdGUgVW5pdG1hc3Rlcg0KCXB1YmxpYyBmdW5jdGlvbiBDcmVhdGVTdXBlcnZpc29yKCRzdXBfbmFtZSwkaHRzY25vLCRkYXRlKQ0KCXsJCQ0KCQ0KICAgICAJJHNpbmdsZUhUU0M9IGV4cGxvZGUoJywnLCAkaHRzY25vKTsNCgkJZm9yZWFjaCgkc2luZ2xlSFRTQyBhcyAkcGFydCkgew0KCQkgLy8gZWNobyAkcGFydDsNCgkJIA0KCQkgIC8qJGdldF9zdXA9bXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gc3VwZXJ2aXNvcnMgd2hlcmUgTkFNRT0nJHN1cF9uYW1lJyIpOwkNCgkJICAkZ2V0cm93PQlteXNxbF9mZXRjaF9hcnJheSgkZ2V0X3N1cCk7CQkgIA0KCQkgICRzX2lkPSRnZXRyb3dbJ1NfSUQnXTsqLw0KCQkNCgkJICANCgkJICAkZ2V0X2h0c2M9bXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gYXNzaWduX3N1cGVydmlzb3Igd2hlcmUgU19OQU1FPSckc3VwX25hbWUnIGFuZCBIVFNDX05PPSckcGFydCciKTsJCQkJCQkJCQkJCQkJCQ0KCQkgICRyb3cgPSBteXNxbF9mZXRjaF9hcnJheSgkZ2V0X2h0c2MpOw0KCQkNCgkJCQlpZigkcGFydD09ICRyb3dbJ0hUU0NfTk8nXSkNCgkJCQl7DQoJCQkJCQ0KCQkJCX0NCgkJCQllbHNlDQoJCQkJewkNCgkJCQkJbXlzcWxfcXVlcnkoIklOU0VSVCBJTlRPIGBhc3NpZ25fc3VwZXJ2aXNvcmAgKGBBU19JRGAsIGBTX05BTUVgLCBgSFRTQ19OT2AsIGBEQVRFYCkgVkFMVUVTIChOVUxMLCAnJHN1cF9uYW1lJywgJyRwYXJ0JywgJyRkYXRlJykiKTsNCgkJDQoJCQkJfQ0KCQkNCgkJfQ0KDQoJDQoJfQ0KCQ0KCQ0KCS8vIGZ1bmN0aW9uIGZvciBSZWFkIE1pbGwNCglwdWJsaWMgZnVuY3Rpb24gUmVhZFN1cGVydmlzb3IoKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gYXNzaWduX3N1cGVydmlzb3Igd2hlcmUgU1RBVFVTPSdBQ1RJVkUnIE9SREVSIEJZIFNfTkFNRSBBU0MiKTsNCgl9DQoJDQogICAvLyBmdW5jdGlvbiBmb3IgR3JvdXAgYnkgdXNpbmcgbmFtZQ0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkU3VwZXJ2aXNvck1lcmdlKCkNCgl7CQkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGFzc2lnbl9zdXBlcnZpc29yIHdoZXJlIFNUQVRVUz0nQUNUSVZFJyAgR1JPVVAgQlkoU19OQU1FKSBPUkRFUiBCWSBTX05BTUUgQVNDIik7DQoJfQ0KCQ0KCQ0KCQ0KCQkvLyBmdW5jdGlvbiBmb3IgUmVhZCBNaWxsDQoJcHVibGljIGZ1bmN0aW9uIEVkaXRTdXBlcnZpc29yKCRpZCkNCgl7CQkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGFzc2lnbl9zdXBlcnZpc29yIHdoZXJlIEFTX0lEPSckaWQnIik7DQoJfQ0KCQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkU3VwZXJ2aXNvcmJ5TmFtZSgkbmFtZSkNCgl7CQkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJTRUxFQ1QgKiBGUk9NIGFzc2lnbl9zdXBlcnZpc29yIHdoZXJlIFNfTkFNRT0nJG5hbWUnIGFuZCBTVEFUVVM9J0FDVElWRSciKTsNCgl9DQoJDQoJDQoJCQ0KCXB1YmxpYyBmdW5jdGlvbiBEZWxldGVTdXBlcnZpc29yKCRpZCkNCgl7CQkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJEZWxldGUgRlJPTSBhc3NpZ25fc3VwZXJ2aXNvciB3aGVyZSBBU19JRD0nJGlkJyIpOw0KCX0NCgkNCglwdWJsaWMgZnVuY3Rpb24gRGVsZXRlQ2hhcmdlbWFzdGVyKCRpZCkNCgl7CQkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJEZWxldGUgRlJPTSBjaGFyZ2VfbWFzdGVyIHdoZXJlIElkPSckaWQnIik7DQoJfQ0KCQ0KLy9Gb3IgU3VwZXJ2aXNvciBBbGxvY2F0aW9ucyBTdGFydAkJDQoNCg0KLy8gRm9yIE1haW50YW5lbmNlIENvZGUgIFN0YXJ0DQoJcHVibGljIGZ1bmN0aW9uIFJlYWRBbGxNYWludGFuZW5jZUxpc3QoJGlzc3VlX3R5cGUpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBtYWludGFuZW5jZV9saXN0ICB3aGVyZSBJU1NVRV9TSURFPSckaXNzdWVfdHlwZSciKTsNCgl9DQoNCglwdWJsaWMgZnVuY3Rpb24gUmVhZE1haW50YW5lbmNlTGlzdCgpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBtYWludGFuZW5jZV9saXN0IHdoZXJlIFNUQVRVUz0nQUNUSVZFJyIpOw0KCX0NCg0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkTWFpbnRhbmVuY2UoKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gbWFpbnRhbmVuY2Ugd2hlcmUgU1RBVFVTPSdBQ1RJVkUnIik7DQoJfQ0KCQ0KCXB1YmxpYyBmdW5jdGlvbiBSZWFkTWFpbnRhbmVuY2VCeVVzZXIoJG5hbWUpDQoJewkJDQoJCXJldHVybiBteXNxbF9xdWVyeSgiU0VMRUNUICogRlJPTSBtYWludGFuZW5jZSB3aGVyZSBQT1NURURfQlk9JyRuYW1lJyBhbmQgIFNUQVRVUz0nQUNUSVZFJyIpOw0KCX0NCg0KCXB1YmxpYyBmdW5jdGlvbiBFZGl0TWFpbnRhbmVuY2UoJGlkKQ0KCXsJCQ0KCQlyZXR1cm4gbXlzcWxfcXVlcnkoIlNFTEVDVCAqIEZST00gbWFpbnRhbmVuY2Ugd2hlcmUgTUFJTlRfSUQ9JyRpZCciKTsNCgl9DQoJDQoJcHVibGljIGZ1bmN0aW9uIERlbGV0ZU1haW50YW5lbmNlKCRpZCkNCgl7CQkNCgkNCgkJcmV0dXJuIG15c3FsX3F1ZXJ5KCJVUERBVEUgbWFpbnRhbmVuY2UgU0VUIGBTVEFUVVNgID0gJ0lOQUNUSVZFJyBXSEVSRSBgTUFJTlRfSURgID0gJyRpZCciKTsNCgl9DQoNCgkNCgkNCn0NCj8+")); ?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 d00f609ccae66634c159f8de61ad6ecf
Eval Count 1
Decode Time 111 ms