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('PD9waHANCg0KcmVxdWlyZV9vbmNlICdsaWIvVGVhbVNwZWFrMy9UZWFtU3B..

Decoded Output download

?>b'<?php

require_once \'lib/TeamSpeak3/TeamSpeak3.php\';
require_once \'cfg/config.php\';
require_once \'inc/functions.php\';
require_once \'inc/core.php\';

TeamSpeak3::init();

$last_info;
$last_check = time();
$in_timeout_check = false;
$doubleECheck = 0;


echo "

";
echo "|  Welcome! This bot have been created by TheTrueElektro  |
";
echo "|   THIS IS NOT A RELASE!! This bot could contain bugs    |
";
echo "|   Please send requests/suggestions/bugs to my e-mail    |
";
echo "|            [email protected]             |

";

try
{
  // Init the connection announcement
  printl("Start Connecting..");

  // Events
  TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'serverqueryConnected\', \'onConnect\');
  TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'serverqueryWaitTimeout\', \'onTimeout\');
  TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'notifyLogin\', \'onLogin\');
  TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'notifyEvent\', \'onEvent\');
  TeamSpeak3_Helper_Signal::getInstance()->subscribe(\'notifyServerselected\', \'onSelect\');

  $uri = "serverquery://" . $srv_cfg[\'q_user\'] . ":" . $srv_cfg[\'q_pass\']
                          . "@" . $srv_cfg[\'s_address\'] . ":" . $srv_cfg[\'q_port\']
                          . "/?server_port=" . $srv_cfg[\'s_port\']
                          . "&nickname=" . $cfg[\'bot_nickname\']
                          . "&blocking=0";

  // Connecting
  $srv = TeamSpeak3::factory($uri);


  // Echo the connection informations.
  printl("Connected on ".$srv_cfg[\'s_address\'].":".$srv_cfg[\'q_port\'].". Query user is ".$srv_cfg[\'q_user\']." on port ".$srv_cfg[\'q_port\']);
  $srv->logAdd($cfg[\'onconnect_log_msg\']);

  // If set, switching to default channel.
  if ($cfg[\'bot_default_channel_id\'] != "")
  {
    $bot_id = (int) $srv->whoamiGet("client_id");
    $srv->clientMove($bot_id, $cfg[\'bot_default_channel_id\'], $cfg[\'bot_default_channel_pass\']);
    printl("Switched to default channel (id=" . $cfg[\'bot_default_channel_id\'] . ")");
  }

  // Ready for actions
  printl("All good! waiting now for event or command..");
}
catch (Exception $e)
{
  die("
 FATAL ERROR     Bot Connection Exception: " . $e->getMessage() . "
 INFO     Stopping now..

");
}


// Keep the Bot watching for infos..
while (1) {
    try                   { $srv->getAdapter()->wait(); }
    catch (Exception $e)  { die ("
 FATAL ERROR     Connection Timeout:  " . $e->getMessage() . "
"); }
}




// ====== [ CALLBACKS FUNCTIONS ] ====== //




function onConnect(TeamSpeak3_Adapter_ServerQuery $adapter)
{
	printl("Server is running with version " . $adapter->getHost()->version(\'version\') . " on " . $adapter->getHost()->version(\'platform\'));
}


function onLogin(TeamSpeak3_Node_Host $host)
{
	printl("Authenticated as user \"".$host->whoamiGet(\'client_login_name\')."\"");
}


function onTimeout($seconds, TeamSpeak3_Adapter_ServerQuery $adapter)
{
	global $cfg, $srv, $last_check, $in_timeout_check;
	if(floor(time() - $last_check) >= $cfg[\'anti_timeout\'])
	{
		$last_check = time();
		if(!empty($cfg[\'hooks\'][\'onTimeout\']))
			foreach($cfg[\'hooks\'][\'onTimeout\'] as $hook)
			{
				if($in_timeout_check)
				{
          printl("onTimeout - Already in Timeout Hook exiting this loop");
					break;
				}
				$in_timeout_check = true;
        printl("onTimeout - Starting Hook - ".$hook);
				$hook();
				$in_timeout_check = false;
			}
	}
	if($adapter->getQueryLastTimestamp() < time()-300)
	{
		printl("Sending keep-alive command");
		$adapter->request(\'clientupdate\');
	}
}


function onEvent(TeamSpeak3_Adapter_ServerQuery_Event $event, TeamSpeak3_Node_Host $host)
{
	global $cfg, $srv, $doubleECheck;

  try
  {
    if ($doubleECheck == 0)
  	{
      $doubleECheck = 1;
  		$type = $event->getType();
  		$data = $event->getData();

  		if (($type == \'textmessage\') && ($srv->whoamiGet(\'client_login_name\') != $data[\'invokername\']))
        onTextMessage($event);
  		elseif($type == \'clientmoved\' && $cfg[\'modules\'][\'sub_channel\'][\'enabled\'] == true)
  			onClientMoved($event);
      elseif($type == \'cliententerview\' && $cfg[\'modules\'][\'welcome_pm\'][\'enabled\'] == true && ($srv->whoamiGet(\'client_login_name\') != $data[\'client_nickname\']))
        onEnteredView($event);
      else
        printl("Notification: ".$type.": ".$event->getMessage()."
");

      unset($type, $data, $event, $host);
  	}
  	else
  		$doubleECheck = 0;
  }
  catch (Exception $e)
  {
    printl("An event were not treaten correctly: ".$e->getMessage(), \'warn\', "
");
  }
}


function onClientMoved(TeamSpeak3_Adapter_ServerQuery_Event $e)
{
  global $srv, $cfg;
  $data = $e->getData();
	printl("onMoved Check Begins");

  //plugin_ChannelNotify($e);
  plugin_SGonChannelJoin($e);
  plugin_SubChannels($e);
}


function onTextMessage(TeamSpeak3_Adapter_ServerQuery_Event $e)
{
  global $srv;
  $info   = $e->getData();

  // Print info
  switch ($info["targetmode"]) {
      case 1:
          printl("New Private Message from " . $info["invokername"]->toString() . ": " . $info["msg"], \'info\', "
");
          break;
      case 2:
          printl("New Message from " . $info["invokername"]->toString() . " in Channel " . $srv->channelGetById($srv->whoamiGet("client_channel_id"))->toString() . ": " . $info["msg"], \'info\', "
");
          break;
      case 3:
          printl("New Server Message from " . $info["invokername"]->toString() . ": " . $info["msg"], \'info\', "
");
          break;
  }

  // If it\'s a command, we call the function in Core.php
  if (substr($info["msg"], 0, 1) === \'!\')
  {
    printl("Message from " . $info["invokername"]->toString() . " is a command.");
    core_BotCommands($e);
  }
}




function onEnteredView(TeamSpeak3_Adapter_ServerQuery_Event $e)
{
  printl("onEnteredView Check Begins");
  plugin_WelcomePm($e);
}


function onSelect(TeamSpeak3_Node_Host $host)
{
	printl("Selected virtual server Id  ".$host->serverSelectedId());

	$host->serverGetSelected()->notifyRegister(\'server\');
	$host->serverGetSelected()->notifyRegister(\'channel\');
	$host->serverGetSelected()->notifyRegister(\'textserver\');
	$host->serverGetSelected()->notifyRegister(\'textchannel\');
	$host->serverGetSelected()->notifyRegister(\'textprivate\');
}

?>
'<?

Did this file decode correctly?

Original Code

<?php eval("?>".base64_decode('PD9waHANCg0KcmVxdWlyZV9vbmNlICdsaWIvVGVhbVNwZWFrMy9UZWFtU3BlYWszLnBocCc7DQpyZXF1aXJlX29uY2UgJ2NmZy9jb25maWcucGhwJzsNCnJlcXVpcmVfb25jZSAnaW5jL2Z1bmN0aW9ucy5waHAnOw0KcmVxdWlyZV9vbmNlICdpbmMvY29yZS5waHAnOw0KDQpUZWFtU3BlYWszOjppbml0KCk7DQoNCiRsYXN0X2luZm87DQokbGFzdF9jaGVjayA9IHRpbWUoKTsNCiRpbl90aW1lb3V0X2NoZWNrID0gZmFsc2U7DQokZG91YmxlRUNoZWNrID0gMDsNCg0KDQplY2hvICJcblxuIjsNCmVjaG8gIuKAouKAouKAonwgIFdlbGNvbWUhIFRoaXMgYm90IGhhdmUgYmVlbiBjcmVhdGVkIGJ5IFRoZVRydWVFbGVrdHJvICB84oCi4oCi4oCiXG4iOw0KZWNobyAi4oCi4oCi4oCifCAgIFRISVMgSVMgTk9UIEEgUkVMQVNFISEgVGhpcyBib3QgY291bGQgY29udGFpbiBidWdzICAgIHzigKLigKLigKJcbiI7DQplY2hvICLigKLigKLigKJ8ICAgUGxlYXNlIHNlbmQgcmVxdWVzdHMvc3VnZ2VzdGlvbnMvYnVncyB0byBteSBlLW1haWwgICAgfOKAouKAouKAolxuIjsNCmVjaG8gIuKAouKAouKAonwgICAgICAgICAgICBjb250YWN0LnRoZXRydWVlbGVrdHJvQGdtYWlsLmNvbSAgICAgICAgICAgICB84oCi4oCi4oCiXG5cbiI7DQoNCnRyeQ0Kew0KICAvLyBJbml0IHRoZSBjb25uZWN0aW9uIGFubm91bmNlbWVudA0KICBwcmludGwoIlN0YXJ0IENvbm5lY3RpbmcuLiIpOw0KDQogIC8vIEV2ZW50cw0KICBUZWFtU3BlYWszX0hlbHBlcl9TaWduYWw6OmdldEluc3RhbmNlKCktPnN1YnNjcmliZSgnc2VydmVycXVlcnlDb25uZWN0ZWQnLCAnb25Db25uZWN0Jyk7DQogIFRlYW1TcGVhazNfSGVscGVyX1NpZ25hbDo6Z2V0SW5zdGFuY2UoKS0+c3Vic2NyaWJlKCdzZXJ2ZXJxdWVyeVdhaXRUaW1lb3V0JywgJ29uVGltZW91dCcpOw0KICBUZWFtU3BlYWszX0hlbHBlcl9TaWduYWw6OmdldEluc3RhbmNlKCktPnN1YnNjcmliZSgnbm90aWZ5TG9naW4nLCAnb25Mb2dpbicpOw0KICBUZWFtU3BlYWszX0hlbHBlcl9TaWduYWw6OmdldEluc3RhbmNlKCktPnN1YnNjcmliZSgnbm90aWZ5RXZlbnQnLCAnb25FdmVudCcpOw0KICBUZWFtU3BlYWszX0hlbHBlcl9TaWduYWw6OmdldEluc3RhbmNlKCktPnN1YnNjcmliZSgnbm90aWZ5U2VydmVyc2VsZWN0ZWQnLCAnb25TZWxlY3QnKTsNCg0KICAkdXJpID0gInNlcnZlcnF1ZXJ5Oi8vIiAuICRzcnZfY2ZnWydxX3VzZXInXSAuICI6IiAuICRzcnZfY2ZnWydxX3Bhc3MnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAuICJAIiAuICRzcnZfY2ZnWydzX2FkZHJlc3MnXSAuICI6IiAuICRzcnZfY2ZnWydxX3BvcnQnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAuICIvP3NlcnZlcl9wb3J0PSIgLiAkc3J2X2NmZ1snc19wb3J0J10NCiAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiJm5pY2tuYW1lPSIgLiAkY2ZnWydib3Rfbmlja25hbWUnXQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAuICImYmxvY2tpbmc9MCI7DQoNCiAgLy8gQ29ubmVjdGluZw0KICAkc3J2ID0gVGVhbVNwZWFrMzo6ZmFjdG9yeSgkdXJpKTsNCg0KDQogIC8vIEVjaG8gdGhlIGNvbm5lY3Rpb24gaW5mb3JtYXRpb25zLg0KICBwcmludGwoIkNvbm5lY3RlZCBvbiAiLiRzcnZfY2ZnWydzX2FkZHJlc3MnXS4iOiIuJHNydl9jZmdbJ3FfcG9ydCddLiIuIFF1ZXJ5IHVzZXIgaXMgIi4kc3J2X2NmZ1sncV91c2VyJ10uIiBvbiBwb3J0ICIuJHNydl9jZmdbJ3FfcG9ydCddKTsNCiAgJHNydi0+bG9nQWRkKCRjZmdbJ29uY29ubmVjdF9sb2dfbXNnJ10pOw0KDQogIC8vIElmIHNldCwgc3dpdGNoaW5nIHRvIGRlZmF1bHQgY2hhbm5lbC4NCiAgaWYgKCRjZmdbJ2JvdF9kZWZhdWx0X2NoYW5uZWxfaWQnXSAhPSAiIikNCiAgew0KICAgICRib3RfaWQgPSAoaW50KSAkc3J2LT53aG9hbWlHZXQoImNsaWVudF9pZCIpOw0KICAgICRzcnYtPmNsaWVudE1vdmUoJGJvdF9pZCwgJGNmZ1snYm90X2RlZmF1bHRfY2hhbm5lbF9pZCddLCAkY2ZnWydib3RfZGVmYXVsdF9jaGFubmVsX3Bhc3MnXSk7DQogICAgcHJpbnRsKCJTd2l0Y2hlZCB0byBkZWZhdWx0IGNoYW5uZWwgKGlkPSIgLiAkY2ZnWydib3RfZGVmYXVsdF9jaGFubmVsX2lkJ10gLiAiKSIpOw0KICB9DQoNCiAgLy8gUmVhZHkgZm9yIGFjdGlvbnMNCiAgcHJpbnRsKCJBbGwgZ29vZCEgd2FpdGluZyBub3cgZm9yIGV2ZW50IG9yIGNvbW1hbmQuLiIpOw0KfQ0KY2F0Y2ggKEV4Y2VwdGlvbiAkZSkNCnsNCiAgZGllKCJcbuKAouKAoiBGQVRBTCBFUlJPUiDigKLigKIgIOKGkiAgQm90IENvbm5lY3Rpb24gRXhjZXB0aW9uOiAiIC4gJGUtPmdldE1lc3NhZ2UoKSAuICJcbuKAouKAoiBJTkZPIOKAouKAoiAg4oaSICBTdG9wcGluZyBub3cuLlxuXG4iKTsNCn0NCg0KDQovLyBLZWVwIHRoZSBCb3Qgd2F0Y2hpbmcgZm9yIGluZm9zLi4NCndoaWxlICgxKSB7DQogICAgdHJ5ICAgICAgICAgICAgICAgICAgIHsgJHNydi0+Z2V0QWRhcHRlcigpLT53YWl0KCk7IH0NCiAgICBjYXRjaCAoRXhjZXB0aW9uICRlKSAgeyBkaWUgKCJcbuKAouKAoiBGQVRBTCBFUlJPUiDigKLigKIgIOKGkiAgQ29ubmVjdGlvbiBUaW1lb3V0OiDihpIgIiAuICRlLT5nZXRNZXNzYWdlKCkgLiAiXG4iKTsgfQ0KfQ0KDQoNCg0KDQovLyA9PT09PT0gWyBDQUxMQkFDS1MgRlVOQ1RJT05TIF0gPT09PT09IC8vDQoNCg0KDQoNCmZ1bmN0aW9uIG9uQ29ubmVjdChUZWFtU3BlYWszX0FkYXB0ZXJfU2VydmVyUXVlcnkgJGFkYXB0ZXIpDQp7DQoJcHJpbnRsKCJTZXJ2ZXIgaXMgcnVubmluZyB3aXRoIHZlcnNpb24gIiAuICRhZGFwdGVyLT5nZXRIb3N0KCktPnZlcnNpb24oJ3ZlcnNpb24nKSAuICIgb24gIiAuICRhZGFwdGVyLT5nZXRIb3N0KCktPnZlcnNpb24oJ3BsYXRmb3JtJykpOw0KfQ0KDQoNCmZ1bmN0aW9uIG9uTG9naW4oVGVhbVNwZWFrM19Ob2RlX0hvc3QgJGhvc3QpDQp7DQoJcHJpbnRsKCJBdXRoZW50aWNhdGVkIGFzIHVzZXIgXCIiLiRob3N0LT53aG9hbWlHZXQoJ2NsaWVudF9sb2dpbl9uYW1lJykuIlwiIik7DQp9DQoNCg0KZnVuY3Rpb24gb25UaW1lb3V0KCRzZWNvbmRzLCBUZWFtU3BlYWszX0FkYXB0ZXJfU2VydmVyUXVlcnkgJGFkYXB0ZXIpDQp7DQoJZ2xvYmFsICRjZmcsICRzcnYsICRsYXN0X2NoZWNrLCAkaW5fdGltZW91dF9jaGVjazsNCglpZihmbG9vcih0aW1lKCkgLSAkbGFzdF9jaGVjaykgPj0gJGNmZ1snYW50aV90aW1lb3V0J10pDQoJew0KCQkkbGFzdF9jaGVjayA9IHRpbWUoKTsNCgkJaWYoIWVtcHR5KCRjZmdbJ2hvb2tzJ11bJ29uVGltZW91dCddKSkNCgkJCWZvcmVhY2goJGNmZ1snaG9va3MnXVsnb25UaW1lb3V0J10gYXMgJGhvb2spDQoJCQl7DQoJCQkJaWYoJGluX3RpbWVvdXRfY2hlY2spDQoJCQkJew0KICAgICAgICAgIHByaW50bCgib25UaW1lb3V0IC0gQWxyZWFkeSBpbiBUaW1lb3V0IEhvb2sgZXhpdGluZyB0aGlzIGxvb3AiKTsNCgkJCQkJYnJlYWs7DQoJCQkJfQ0KCQkJCSRpbl90aW1lb3V0X2NoZWNrID0gdHJ1ZTsNCiAgICAgICAgcHJpbnRsKCJvblRpbWVvdXQgLSBTdGFydGluZyBIb29rIC0gIi4kaG9vayk7DQoJCQkJJGhvb2soKTsNCgkJCQkkaW5fdGltZW91dF9jaGVjayA9IGZhbHNlOw0KCQkJfQ0KCX0NCglpZigkYWRhcHRlci0+Z2V0UXVlcnlMYXN0VGltZXN0YW1wKCkgPCB0aW1lKCktMzAwKQ0KCXsNCgkJcHJpbnRsKCJTZW5kaW5nIGtlZXAtYWxpdmUgY29tbWFuZCIpOw0KCQkkYWRhcHRlci0+cmVxdWVzdCgnY2xpZW50dXBkYXRlJyk7DQoJfQ0KfQ0KDQoNCmZ1bmN0aW9uIG9uRXZlbnQoVGVhbVNwZWFrM19BZGFwdGVyX1NlcnZlclF1ZXJ5X0V2ZW50ICRldmVudCwgVGVhbVNwZWFrM19Ob2RlX0hvc3QgJGhvc3QpDQp7DQoJZ2xvYmFsICRjZmcsICRzcnYsICRkb3VibGVFQ2hlY2s7DQoNCiAgdHJ5DQogIHsNCiAgICBpZiAoJGRvdWJsZUVDaGVjayA9PSAwKQ0KICAJew0KICAgICAgJGRvdWJsZUVDaGVjayA9IDE7DQogIAkJJHR5cGUgPSAkZXZlbnQtPmdldFR5cGUoKTsNCiAgCQkkZGF0YSA9ICRldmVudC0+Z2V0RGF0YSgpOw0KDQogIAkJaWYgKCgkdHlwZSA9PSAndGV4dG1lc3NhZ2UnKSAmJiAoJHNydi0+d2hvYW1pR2V0KCdjbGllbnRfbG9naW5fbmFtZScpICE9ICRkYXRhWydpbnZva2VybmFtZSddKSkNCiAgICAgICAgb25UZXh0TWVzc2FnZSgkZXZlbnQpOw0KICAJCWVsc2VpZigkdHlwZSA9PSAnY2xpZW50bW92ZWQnICYmICRjZmdbJ21vZHVsZXMnXVsnc3ViX2NoYW5uZWwnXVsnZW5hYmxlZCddID09IHRydWUpDQogIAkJCW9uQ2xpZW50TW92ZWQoJGV2ZW50KTsNCiAgICAgIGVsc2VpZigkdHlwZSA9PSAnY2xpZW50ZW50ZXJ2aWV3JyAmJiAkY2ZnWydtb2R1bGVzJ11bJ3dlbGNvbWVfcG0nXVsnZW5hYmxlZCddID09IHRydWUgJiYgKCRzcnYtPndob2FtaUdldCgnY2xpZW50X2xvZ2luX25hbWUnKSAhPSAkZGF0YVsnY2xpZW50X25pY2tuYW1lJ10pKQ0KICAgICAgICBvbkVudGVyZWRWaWV3KCRldmVudCk7DQogICAgICBlbHNlDQogICAgICAgIHByaW50bCgiTm90aWZpY2F0aW9uOiAiLiR0eXBlLiI6ICIuJGV2ZW50LT5nZXRNZXNzYWdlKCkuIlxuIik7DQoNCiAgICAgIHVuc2V0KCR0eXBlLCAkZGF0YSwgJGV2ZW50LCAkaG9zdCk7DQogIAl9DQogIAllbHNlDQogIAkJJGRvdWJsZUVDaGVjayA9IDA7DQogIH0NCiAgY2F0Y2ggKEV4Y2VwdGlvbiAkZSkNCiAgew0KICAgIHByaW50bCgiQW4gZXZlbnQgd2VyZSBub3QgdHJlYXRlbiBjb3JyZWN0bHk6ICIuJGUtPmdldE1lc3NhZ2UoKSwgJ3dhcm4nLCAiXG4iKTsNCiAgfQ0KfQ0KDQoNCmZ1bmN0aW9uIG9uQ2xpZW50TW92ZWQoVGVhbVNwZWFrM19BZGFwdGVyX1NlcnZlclF1ZXJ5X0V2ZW50ICRlKQ0Kew0KICBnbG9iYWwgJHNydiwgJGNmZzsNCiAgJGRhdGEgPSAkZS0+Z2V0RGF0YSgpOw0KCXByaW50bCgib25Nb3ZlZCBDaGVjayBCZWdpbnMiKTsNCg0KICAvL3BsdWdpbl9DaGFubmVsTm90aWZ5KCRlKTsNCiAgcGx1Z2luX1NHb25DaGFubmVsSm9pbigkZSk7DQogIHBsdWdpbl9TdWJDaGFubmVscygkZSk7DQp9DQoNCg0KZnVuY3Rpb24gb25UZXh0TWVzc2FnZShUZWFtU3BlYWszX0FkYXB0ZXJfU2VydmVyUXVlcnlfRXZlbnQgJGUpDQp7DQogIGdsb2JhbCAkc3J2Ow0KICAkaW5mbyAgID0gJGUtPmdldERhdGEoKTsNCg0KICAvLyBQcmludCBpbmZvDQogIHN3aXRjaCAoJGluZm9bInRhcmdldG1vZGUiXSkgew0KICAgICAgY2FzZSAxOg0KICAgICAgICAgIHByaW50bCgiTmV3IFByaXZhdGUgTWVzc2FnZSBmcm9tICIgLiAkaW5mb1siaW52b2tlcm5hbWUiXS0+dG9TdHJpbmcoKSAuICI6ICIgLiAkaW5mb1sibXNnIl0sICdpbmZvJywgIlxuIik7DQogICAgICAgICAgYnJlYWs7DQogICAgICBjYXNlIDI6DQogICAgICAgICAgcHJpbnRsKCJOZXcgTWVzc2FnZSBmcm9tICIgLiAkaW5mb1siaW52b2tlcm5hbWUiXS0+dG9TdHJpbmcoKSAuICIgaW4gQ2hhbm5lbCAiIC4gJHNydi0+Y2hhbm5lbEdldEJ5SWQoJHNydi0+d2hvYW1pR2V0KCJjbGllbnRfY2hhbm5lbF9pZCIpKS0+dG9TdHJpbmcoKSAuICI6ICIgLiAkaW5mb1sibXNnIl0sICdpbmZvJywgIlxuIik7DQogICAgICAgICAgYnJlYWs7DQogICAgICBjYXNlIDM6DQogICAgICAgICAgcHJpbnRsKCJOZXcgU2VydmVyIE1lc3NhZ2UgZnJvbSAiIC4gJGluZm9bImludm9rZXJuYW1lIl0tPnRvU3RyaW5nKCkgLiAiOiAiIC4gJGluZm9bIm1zZyJdLCAnaW5mbycsICJcbiIpOw0KICAgICAgICAgIGJyZWFrOw0KICB9DQoNCiAgLy8gSWYgaXQncyBhIGNvbW1hbmQsIHdlIGNhbGwgdGhlIGZ1bmN0aW9uIGluIENvcmUucGhwDQogIGlmIChzdWJzdHIoJGluZm9bIm1zZyJdLCAwLCAxKSA9PT0gJyEnKQ0KICB7DQogICAgcHJpbnRsKCJNZXNzYWdlIGZyb20gIiAuICRpbmZvWyJpbnZva2VybmFtZSJdLT50b1N0cmluZygpIC4gIiBpcyBhIGNvbW1hbmQuIik7DQogICAgY29yZV9Cb3RDb21tYW5kcygkZSk7DQogIH0NCn0NCg0KDQoNCg0KZnVuY3Rpb24gb25FbnRlcmVkVmlldyhUZWFtU3BlYWszX0FkYXB0ZXJfU2VydmVyUXVlcnlfRXZlbnQgJGUpDQp7DQogIHByaW50bCgib25FbnRlcmVkVmlldyBDaGVjayBCZWdpbnMiKTsNCiAgcGx1Z2luX1dlbGNvbWVQbSgkZSk7DQp9DQoNCg0KZnVuY3Rpb24gb25TZWxlY3QoVGVhbVNwZWFrM19Ob2RlX0hvc3QgJGhvc3QpDQp7DQoJcHJpbnRsKCJTZWxlY3RlZCB2aXJ0dWFsIHNlcnZlciBJZCDihpIgIi4kaG9zdC0+c2VydmVyU2VsZWN0ZWRJZCgpKTsNCg0KCSRob3N0LT5zZXJ2ZXJHZXRTZWxlY3RlZCgpLT5ub3RpZnlSZWdpc3Rlcignc2VydmVyJyk7DQoJJGhvc3QtPnNlcnZlckdldFNlbGVjdGVkKCktPm5vdGlmeVJlZ2lzdGVyKCdjaGFubmVsJyk7DQoJJGhvc3QtPnNlcnZlckdldFNlbGVjdGVkKCktPm5vdGlmeVJlZ2lzdGVyKCd0ZXh0c2VydmVyJyk7DQoJJGhvc3QtPnNlcnZlckdldFNlbGVjdGVkKCktPm5vdGlmeVJlZ2lzdGVyKCd0ZXh0Y2hhbm5lbCcpOw0KCSRob3N0LT5zZXJ2ZXJHZXRTZWxlY3RlZCgpLT5ub3RpZnlSZWdpc3RlcigndGV4dHByaXZhdGUnKTsNCn0NCg0KPz4NCg==')."<?");?>

Function Calls

base64_decode 1

Variables

None

Stats

MD5 65da6194d29f46ccc3cca38e48b13f57
Eval Count 1
Decode Time 123 ms