Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
eval(base64_decode("Y2xhc3MgQml6dGVjaF9BdXNwb3N0X0hlbHBlcl9EYXRhIGV4dGVuZHMgTWFnZV9Db3JlX0..
Decoded Output download
class Biztech_Auspost_Helper_Data extends Mage_Core_Helper_Abstract
{
public function buildHttpQuery($query)
{
$query_array = array();
foreach($query as $key => $key_value)
$query_array[] = $key . '=' . urlencode( $key_value );
return implode( '&', $query_array );
}
public function parseXml($xmlString)
{
libxml_use_internal_errors(true);
$xmlObject = simplexml_load_string($xmlString);
$result = array ();
if (!empty($xmlObject))
$this->convertXmlObjToArr($xmlObject, $result);
return $result;
}
public function convertXmlObjToArr($obj, &$arr)
{
$children = $obj->children();
$executed = false;
foreach ($children as $elementName => $node)
{
if(is_array($arr) && array_key_exists( $elementName , $arr ) )
{
if(is_array($arr[$elementName])&& array_key_exists( 0 ,$arr[$elementName] ) )
{
$i = count($arr[$elementName]);
$this->convertXmlObjToArr ($node, $arr[$elementName][$i]);
}
else
{
$tmp = $arr[$elementName];
$arr[$elementName] = array();
$arr[$elementName][0] = $tmp;
$i = count($arr[$elementName]);
$this->convertXmlObjToArr($node, $arr[$elementName][$i]);
}
}
else
{
$arr[$elementName] = array();
$this->convertXmlObjToArr($node, $arr[$elementName]);
}
$executed = true;
}
if(!$executed&&$children->getName()=="")
{
$arr = (String)$obj;
}
return ;
}
public function ausPostValidation($url, $headers = array (), $auth = true)
{
$api_key = Mage::getStoreConfig('carriers/auspost/auspost_api_key');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Auth-Key: ' . $api_key
));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec ($ch);
curl_close ($ch);
return $contents;
}
public function getAllStoreDomains() {
$domains = array();
foreach (Mage::app()->getWebsites() as $website) {
$url = $website->getConfig('web/unsecure/base_url');
if ($domain = trim(preg_replace('/^.*?\/\/(.*)?\//', '$1', $url))) {
$domains[] = $domain;
}
$url = $website->getConfig('web/secure/base_url');
if ($domain = trim(preg_replace('/^.*?\/\/(.*)?\//', '$1', $url))) {
$domains[] = $domain;
}
}
return array_unique($domains);
}
public function checkKey($k,$s = ''){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, sprintf('http://store.biztechconsultancy.com/extension/licence.php'));
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'key='.urlencode($k).'&domains='.urlencode(implode(',', $this->getAllStoreDomains())).'&sec=australianpost');
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
$content = curl_exec($ch);
$res = Zend_Json::decode($content);
$modulestatus = new Mage_Core_Model_Config();
$enc = Mage::helper('core');
if(empty($res)){
$modulestatus->saveConfig('auspost/activation/key', "");
$modulestatus->saveConfig('carriers/auspost/active', 0);
$data = Mage::getStoreConfig('auspost/activation/data');
$groups = array(
'activation'=>array(
'fields'=>array(
'data'=>array(
'value'=>$data
),
'websites'=>array(
'value'=>''
)
)
)
);
Mage::getModel('adminhtml/config_data')
->setSection('auspost')
->setGroups($groups)
->save();
Mage::getConfig()->reinit();
Mage::app()->reinitStores();
return;
}
$data = '';
$web = '';
$en = '';
if(isset($res['dom']) && intval($res['c']) > 0 && intval($res['suc']) == 1){
$data = $enc->encrypt(base64_encode(Zend_Json::encode($res)));
if (!$s)
{
$params = Mage::app()->getRequest()->getParam('groups');
if(isset($params['activation']['fields']['websites']['value'])){
$s = $params['activation']['fields']['websites']['value'];
}
}
$en = $res['suc'];
if(isset($s) && $s != null){
$web = $enc->encrypt($data.implode(',', $s).$data);
}else{
$web = $enc->encrypt($data.$data);
}
}
else
{
$modulestatus->saveConfig('auspost/activation/key', "");
$modulestatus->saveConfig('carriers/auspost/active', 0);
}
$groups = array(
'activation'=>array(
'fields'=>array(
'data'=>array(
'value'=>$data
),
'websites'=>array(
'value'=>(string)$web
),
'en'=>array(
'value'=>$en
),
'installed'=>array(
'value'=>1
)
)
)
);
Mage::getModel('adminhtml/config_data')
->setSection('auspost')
->setGroups($groups)
->save();
Mage::getConfig()->reinit();
Mage::app()->reinitStores();
}
public function getDataInfo()
{
$data = Mage::getStoreConfig('auspost/activation/data');
return Zend_Json::decode(base64_decode(Mage::helper('core')->decrypt($data)));
}
public function getAllWebsites(){
if(!Mage::getStoreConfig('auspost/activation/installed'))
{
return array();
}
$data = Mage::getStoreConfig('auspost/activation/data');
$web = Mage::getStoreConfig('auspost/activation/websites');
$websites = explode(',', str_replace($data, '', Mage::helper('core')->decrypt($web)));
$websites = array_diff($websites, array(""));
return $websites;
}
public function getFormatUrl($url)
{
$input = trim($url, '/');
if (!preg_match('#^http(s)?://#', $input)) {
$input = 'http://' . $input;
}
$urlParts = parse_url($input);
$domain = preg_replace('/^www\./', '', $urlParts['host'].$urlParts['path']);
return $domain;
}
public function isEnable()
{
$websiteId = Mage::app()->getWebsite()->getId() ;
$isenabled = Mage::getStoreConfig('carriers/auspost/active');
if($isenabled){
if($websiteId){
$websites = $this->getAllWebsites();
$key = Mage::getStoreConfig('auspost/activation/key');
if($key == null || $key == '')
{
return false;
}else{
$en = Mage::getStoreConfig('auspost/activation/en');
if($isenabled && $en && in_array($websiteId, $websites))
{ return true; } else { return false; }
}
}
else{
$en = Mage::getStoreConfig('auspost/activation/en');
if($isenabled && $en){return true;}
}
}
}
}
Did this file decode correctly?
Original Code
eval(base64_decode("Y2xhc3MgQml6dGVjaF9BdXNwb3N0X0hlbHBlcl9EYXRhIGV4dGVuZHMgTWFnZV9Db3JlX0hlbHBlcl9BYnN0cmFjdAogICAgewogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBidWlsZEh0dHBRdWVyeSgkcXVlcnkpCiAgICAgICAgewogICAgICAgICAgICAkcXVlcnlfYXJyYXkgPSBhcnJheSgpOwogICAgICAgICAgICBmb3JlYWNoKCRxdWVyeSBhcyAka2V5ID0+ICRrZXlfdmFsdWUpCiAgICAgICAgICAgICAgICAkcXVlcnlfYXJyYXlbXSA9ICRrZXkgLiAnPScgLiB1cmxlbmNvZGUoICRrZXlfdmFsdWUgKTsKICAgICAgICAgICAgcmV0dXJuIGltcGxvZGUoICcmJywgJHF1ZXJ5X2FycmF5ICk7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gcGFyc2VYbWwoJHhtbFN0cmluZykKICAgICAgICB7CiAgICAgICAgICAgIGxpYnhtbF91c2VfaW50ZXJuYWxfZXJyb3JzKHRydWUpOwogICAgICAgICAgICAkeG1sT2JqZWN0ID0gc2ltcGxleG1sX2xvYWRfc3RyaW5nKCR4bWxTdHJpbmcpOwogICAgICAgICAgICAkcmVzdWx0ID0gYXJyYXkgKCk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJHhtbE9iamVjdCkpCiAgICAgICAgICAgICAgICAkdGhpcy0+Y29udmVydFhtbE9ialRvQXJyKCR4bWxPYmplY3QsICRyZXN1bHQpOwogICAgICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBjb252ZXJ0WG1sT2JqVG9BcnIoJG9iaiwgJiRhcnIpCiAgICAgICAgewogICAgICAgICAgICAkY2hpbGRyZW4gPSAkb2JqLT5jaGlsZHJlbigpOwogICAgICAgICAgICAkZXhlY3V0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgZm9yZWFjaCAoJGNoaWxkcmVuIGFzICRlbGVtZW50TmFtZSA9PiAkbm9kZSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoaXNfYXJyYXkoJGFycikgJiYgYXJyYXlfa2V5X2V4aXN0cyggJGVsZW1lbnROYW1lICwgJGFyciApICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZihpc19hcnJheSgkYXJyWyRlbGVtZW50TmFtZV0pJiYgYXJyYXlfa2V5X2V4aXN0cyggMCAsJGFyclskZWxlbWVudE5hbWVdICkgKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGkgPSBjb3VudCgkYXJyWyRlbGVtZW50TmFtZV0pOwogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Y29udmVydFhtbE9ialRvQXJyICgkbm9kZSwgJGFyclskZWxlbWVudE5hbWVdWyRpXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICR0bXAgPSAkYXJyWyRlbGVtZW50TmFtZV07CiAgICAgICAgICAgICAgICAgICAgICAgICRhcnJbJGVsZW1lbnROYW1lXSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgICAgICRhcnJbJGVsZW1lbnROYW1lXVswXSA9ICR0bXA7CiAgICAgICAgICAgICAgICAgICAgICAgICRpID0gY291bnQoJGFyclskZWxlbWVudE5hbWVdKTsKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbnZlcnRYbWxPYmpUb0Fycigkbm9kZSwgJGFyclskZWxlbWVudE5hbWVdWyRpXSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICRhcnJbJGVsZW1lbnROYW1lXSA9IGFycmF5KCk7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNvbnZlcnRYbWxPYmpUb0Fycigkbm9kZSwgJGFyclskZWxlbWVudE5hbWVdKTsgICAKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRleGVjdXRlZCA9IHRydWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoISRleGVjdXRlZCYmJGNoaWxkcmVuLT5nZXROYW1lKCk9PSIiKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAkYXJyID0gKFN0cmluZykkb2JqOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiA7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gYXVzUG9zdFZhbGlkYXRpb24oJHVybCwgJGhlYWRlcnMgPSBhcnJheSAoKSwgJGF1dGggPSB0cnVlKSAKICAgICAgICB7CiAgICAgICAgICAgICRhcGlfa2V5ICA9IE1hZ2U6OmdldFN0b3JlQ29uZmlnKCdjYXJyaWVycy9hdXNwb3N0L2F1c3Bvc3RfYXBpX2tleScpOwogICAgICAgICAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1VSTCwkdXJsKTsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCBmYWxzZSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9IVFRQSEVBREVSLCBhcnJheSgKICAgICAgICAgICAgICAgICAgICAnQXV0aC1LZXk6ICcgLiAkYXBpX2tleQogICAgICAgICAgICAgICAgKSk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CiAgICAgICAgICAgICRjb250ZW50cyA9IGN1cmxfZXhlYyAoJGNoKTsKICAgICAgICAgICAgY3VybF9jbG9zZSAoJGNoKTsKICAgICAgICAgICAgcmV0dXJuICRjb250ZW50czsKICAgICAgICB9CgoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0QWxsU3RvcmVEb21haW5zKCkgewogICAgICAgICAgICAkZG9tYWlucyA9IGFycmF5KCk7CiAgICAgICAgICAgIGZvcmVhY2ggKE1hZ2U6OmFwcCgpLT5nZXRXZWJzaXRlcygpIGFzICR3ZWJzaXRlKSB7CiAgICAgICAgICAgICAgICAkdXJsID0gJHdlYnNpdGUtPmdldENvbmZpZygnd2ViL3Vuc2VjdXJlL2Jhc2VfdXJsJyk7CiAgICAgICAgICAgICAgICBpZiAoJGRvbWFpbiA9IHRyaW0ocHJlZ19yZXBsYWNlKCcvXi4qP1wvXC8oLiopP1wvLycsICckMScsICR1cmwpKSkgewogICAgICAgICAgICAgICAgICAgICRkb21haW5zW10gPSAkZG9tYWluOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHVybCA9ICR3ZWJzaXRlLT5nZXRDb25maWcoJ3dlYi9zZWN1cmUvYmFzZV91cmwnKTsKICAgICAgICAgICAgICAgIGlmICgkZG9tYWluID0gdHJpbShwcmVnX3JlcGxhY2UoJy9eLio/XC9cLyguKik/XC8vJywgJyQxJywgJHVybCkpKSB7CiAgICAgICAgICAgICAgICAgICAgJGRvbWFpbnNbXSA9ICRkb21haW47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGFycmF5X3VuaXF1ZSgkZG9tYWlucyk7CiAgICAgICAgfQoKCiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGNoZWNrS2V5KCRrLCRzID0gJycpeyAgICAKICAgICAgICAgICAgJGNoID0gY3VybF9pbml0KCk7CiAgICAgICAgICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9VUkwsIHNwcmludGYoJ2h0dHA6Ly9zdG9yZS5iaXp0ZWNoY29uc3VsdGFuY3kuY29tL2V4dGVuc2lvbi9saWNlbmNlLnBocCcpKTsKICAgICAgICAgICAgY3VybF9zZXRvcHQoJGNoLCBDVVJMT1BUX1BPU1QsIHRydWUpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgJ2tleT0nLnVybGVuY29kZSgkaykuJyZkb21haW5zPScudXJsZW5jb2RlKGltcGxvZGUoJywnLCAkdGhpcy0+Z2V0QWxsU3RvcmVEb21haW5zKCkpKS4nJnNlYz1hdXN0cmFsaWFucG9zdCcpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVElNRU9VVCwgMzApOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIHRydWUpOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWVBFRVIsIDApOwogICAgICAgICAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfU1NMX1ZFUklGWUhPU1QsIDApOwogICAgICAgICAgICAkY29udGVudCA9IGN1cmxfZXhlYygkY2gpOwogICAgICAgICAgICAkcmVzID0gWmVuZF9Kc29uOjpkZWNvZGUoJGNvbnRlbnQpOwogICAgICAgICAgICAkbW9kdWxlc3RhdHVzID0gbmV3IE1hZ2VfQ29yZV9Nb2RlbF9Db25maWcoKTsKICAgICAgICAgICAgJGVuYyA9IE1hZ2U6OmhlbHBlcignY29yZScpOyAgICAgIAogICAgICAgICAgICBpZihlbXB0eSgkcmVzKSl7CiAgICAgICAgICAgICAgICAkbW9kdWxlc3RhdHVzLT5zYXZlQ29uZmlnKCdhdXNwb3N0L2FjdGl2YXRpb24va2V5JywgIiIpOwogICAgICAgICAgICAgICAgJG1vZHVsZXN0YXR1cy0+c2F2ZUNvbmZpZygnY2FycmllcnMvYXVzcG9zdC9hY3RpdmUnLCAwKTsKICAgICAgICAgICAgICAgICRkYXRhID0gTWFnZTo6Z2V0U3RvcmVDb25maWcoJ2F1c3Bvc3QvYWN0aXZhdGlvbi9kYXRhJyk7CiAgICAgICAgICAgICAgICAkZ3JvdXBzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgJ2FjdGl2YXRpb24nPT5hcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkcyc9PmFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnPT5hcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnPT4kZGF0YQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd3ZWJzaXRlcyc9PmFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSc9PicnCiAgICAgICAgICAgICAgICAgICAgICAgICAgICApICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgTWFnZTo6Z2V0TW9kZWwoJ2FkbWluaHRtbC9jb25maWdfZGF0YScpCiAgICAgICAgICAgICAgICAtPnNldFNlY3Rpb24oJ2F1c3Bvc3QnKQogICAgICAgICAgICAgICAgLT5zZXRHcm91cHMoJGdyb3VwcykKICAgICAgICAgICAgICAgIC0+c2F2ZSgpOwogICAgICAgICAgICAgICAgTWFnZTo6Z2V0Q29uZmlnKCktPnJlaW5pdCgpOwogICAgICAgICAgICAgICAgTWFnZTo6YXBwKCktPnJlaW5pdFN0b3JlcygpOyAgCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRhdGEgPSAnJzsKICAgICAgICAgICAgJHdlYiAgPSAnJzsgIAogICAgICAgICAgICAkZW4gICA9ICcnOyAgIAoKICAgICAgICAgICAgaWYoaXNzZXQoJHJlc1snZG9tJ10pICYmIGludHZhbCgkcmVzWydjJ10pID4gMCAmJiAgaW50dmFsKCRyZXNbJ3N1YyddKSA9PSAxKXsKICAgICAgICAgICAgICAgICRkYXRhID0gJGVuYy0+ZW5jcnlwdChiYXNlNjRfZW5jb2RlKFplbmRfSnNvbjo6ZW5jb2RlKCRyZXMpKSk7CiAgICAgICAgICAgICAgICBpZiAoISRzKQogICAgICAgICAgICAgICAgeyAKICAgICAgICAgICAgICAgICAgICAkcGFyYW1zID0gIE1hZ2U6OmFwcCgpLT5nZXRSZXF1ZXN0KCktPmdldFBhcmFtKCdncm91cHMnKTsKICAgICAgICAgICAgICAgICAgICBpZihpc3NldCgkcGFyYW1zWydhY3RpdmF0aW9uJ11bJ2ZpZWxkcyddWyd3ZWJzaXRlcyddWyd2YWx1ZSddKSl7CiAgICAgICAgICAgICAgICAgICAgICAgICRzID0gJHBhcmFtc1snYWN0aXZhdGlvbiddWydmaWVsZHMnXVsnd2Vic2l0ZXMnXVsndmFsdWUnXTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkZW4gPSAkcmVzWydzdWMnXTsKICAgICAgICAgICAgICAgIGlmKGlzc2V0KCRzKSAmJiAkcyAhPSBudWxsKXsKICAgICAgICAgICAgICAgICAgICAkd2ViID0gJGVuYy0+ZW5jcnlwdCgkZGF0YS5pbXBsb2RlKCcsJywgJHMpLiRkYXRhKTsKICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgICR3ZWIgPSAkZW5jLT5lbmNyeXB0KCRkYXRhLiRkYXRhKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICRtb2R1bGVzdGF0dXMtPnNhdmVDb25maWcoJ2F1c3Bvc3QvYWN0aXZhdGlvbi9rZXknLCAiIik7CiAgICAgICAgICAgICAgICAkbW9kdWxlc3RhdHVzLT5zYXZlQ29uZmlnKCdjYXJyaWVycy9hdXNwb3N0L2FjdGl2ZScsIDApOwoKICAgICAgICAgICAgfQogICAgICAgICAgICAkZ3JvdXBzID0gYXJyYXkoCiAgICAgICAgICAgICAgICAnYWN0aXZhdGlvbic9PmFycmF5KAogICAgICAgICAgICAgICAgICAgICdmaWVsZHMnPT5hcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnPT5hcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSc9PiRkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICd3ZWJzaXRlcyc9PmFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJz0+KHN0cmluZykkd2ViCiAgICAgICAgICAgICAgICAgICAgICAgICksCiAgICAgICAgICAgICAgICAgICAgICAgICdlbic9PmFycmF5KAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJz0+JGVuCiAgICAgICAgICAgICAgICAgICAgICAgICksCgogICAgICAgICAgICAgICAgICAgICAgICAnaW5zdGFsbGVkJz0+YXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnPT4xCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIE1hZ2U6OmdldE1vZGVsKCdhZG1pbmh0bWwvY29uZmlnX2RhdGEnKQogICAgICAgICAgICAtPnNldFNlY3Rpb24oJ2F1c3Bvc3QnKQogICAgICAgICAgICAtPnNldEdyb3VwcygkZ3JvdXBzKQogICAgICAgICAgICAtPnNhdmUoKTsKICAgICAgICAgICAgTWFnZTo6Z2V0Q29uZmlnKCktPnJlaW5pdCgpOwogICAgICAgICAgICBNYWdlOjphcHAoKS0+cmVpbml0U3RvcmVzKCk7ICAKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBnZXREYXRhSW5mbygpCiAgICAgICAgewogICAgICAgICAgICAkZGF0YSA9IE1hZ2U6OmdldFN0b3JlQ29uZmlnKCdhdXNwb3N0L2FjdGl2YXRpb24vZGF0YScpOwogICAgICAgICAgICByZXR1cm4gWmVuZF9Kc29uOjpkZWNvZGUoYmFzZTY0X2RlY29kZShNYWdlOjpoZWxwZXIoJ2NvcmUnKS0+ZGVjcnlwdCgkZGF0YSkpKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBbGxXZWJzaXRlcygpewoKICAgICAgICAgICAgaWYoIU1hZ2U6OmdldFN0b3JlQ29uZmlnKCdhdXNwb3N0L2FjdGl2YXRpb24vaW5zdGFsbGVkJykpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRkYXRhID0gTWFnZTo6Z2V0U3RvcmVDb25maWcoJ2F1c3Bvc3QvYWN0aXZhdGlvbi9kYXRhJyk7CiAgICAgICAgICAgICR3ZWIgPSBNYWdlOjpnZXRTdG9yZUNvbmZpZygnYXVzcG9zdC9hY3RpdmF0aW9uL3dlYnNpdGVzJyk7CiAgICAgICAgICAgICR3ZWJzaXRlcyA9IGV4cGxvZGUoJywnLCBzdHJfcmVwbGFjZSgkZGF0YSwgJycsIE1hZ2U6OmhlbHBlcignY29yZScpLT5kZWNyeXB0KCR3ZWIpKSk7CiAgICAgICAgICAgICR3ZWJzaXRlcyA9IGFycmF5X2RpZmYoJHdlYnNpdGVzLCBhcnJheSgiIikpOwogICAgICAgICAgICByZXR1cm4gJHdlYnNpdGVzOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGdldEZvcm1hdFVybCgkdXJsKQogICAgICAgIHsKICAgICAgICAgICAgJGlucHV0ID0gdHJpbSgkdXJsLCAnLycpOwogICAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJyNeaHR0cChzKT86Ly8jJywgJGlucHV0KSkgewogICAgICAgICAgICAgICAgJGlucHV0ID0gJ2h0dHA6Ly8nIC4gJGlucHV0OwogICAgICAgICAgICB9CiAgICAgICAgICAgICR1cmxQYXJ0cyA9IHBhcnNlX3VybCgkaW5wdXQpOwogICAgICAgICAgICAkZG9tYWluICAgPSBwcmVnX3JlcGxhY2UoJy9ed3d3XC4vJywgJycsICR1cmxQYXJ0c1snaG9zdCddLiR1cmxQYXJ0c1sncGF0aCddKTsKICAgICAgICAgICAgcmV0dXJuICRkb21haW47CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gaXNFbmFibGUoKQogICAgICAgIHsgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICR3ZWJzaXRlSWQgPSBNYWdlOjphcHAoKS0+Z2V0V2Vic2l0ZSgpLT5nZXRJZCgpIDsgCiAgICAgICAgICAgICRpc2VuYWJsZWQgPSBNYWdlOjpnZXRTdG9yZUNvbmZpZygnY2FycmllcnMvYXVzcG9zdC9hY3RpdmUnKTsKICAgICAgICAgICAgaWYoJGlzZW5hYmxlZCl7CiAgICAgICAgICAgICAgICBpZigkd2Vic2l0ZUlkKXsKICAgICAgICAgICAgICAgICAgICAkd2Vic2l0ZXMgPSAkdGhpcy0+Z2V0QWxsV2Vic2l0ZXMoKTsKICAgICAgICAgICAgICAgICAgICAka2V5ICAgICAgPSBNYWdlOjpnZXRTdG9yZUNvbmZpZygnYXVzcG9zdC9hY3RpdmF0aW9uL2tleScpOwogICAgICAgICAgICAgICAgICAgIGlmKCRrZXkgPT0gbnVsbCB8fCAka2V5ID09ICcnKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAKICAgICAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICAgICAgJGVuID0gTWFnZTo6Z2V0U3RvcmVDb25maWcoJ2F1c3Bvc3QvYWN0aXZhdGlvbi9lbicpOwogICAgICAgICAgICAgICAgICAgICAgICBpZigkaXNlbmFibGVkICYmICRlbiAmJiBpbl9hcnJheSgkd2Vic2l0ZUlkLCAkd2Vic2l0ZXMpKQogICAgICAgICAgICAgICAgICAgICAgICB7IHJldHVybiB0cnVlOyB9IGVsc2UgeyByZXR1cm4gZmFsc2U7IH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgICRlbiA9IE1hZ2U6OmdldFN0b3JlQ29uZmlnKCdhdXNwb3N0L2FjdGl2YXRpb24vZW4nKTsKICAgICAgICAgICAgICAgICAgICBpZigkaXNlbmFibGVkICYmICRlbil7cmV0dXJuIHRydWU7fQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQ=="));
Function Calls
base64_decode | 1 |
Stats
MD5 | cc3605a04c3d05b3f84f6f571a8ca390 |
Eval Count | 1 |
Decode Time | 93 ms |