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("IAovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKio..
Decoded Output download
/************************************************
* *
* *
* *
* *
* *
* *
* --------------------------------------------- *
* This is commercial software, only users *
* who have purchased a valid license and *
* accept to the terms of the License *
* Agreement can install and use this program. *
* --------------------------------------------- *
* website: https://maurisweb.ru *
* email: [email protected] *
************************************************/
namespace Tygh\Addons\MauriswebAddonManager\Maurisweb\Connector;
use Tygh\Tygh;
use Tygh\Registry;
use Tygh\Addons\MauriswebAddonManager\Addons\SchemesManager;
use Tygh\Addons\SchemesManager as ParentSchemesManager;
use Tygh\Enum\ObjectStatuses;
use Tygh\Enum\UserTypes;
class DataConnector {
protected $addon_id;
private $addon_version;
private $license_number;
private $product_name;
private $product_version;
private $product_build;
private $product_edition;
private $lang_code;
private $purchase;
private $main_domain;
private $php_version;
private $mysql_version;
private $admins;
private $storefronts;
private $products_count;
private $current_domain;
private $license_addon;
protected $manager;
protected $data_manager;
protected $addon_settings;
protected $debug;
public function __construct($addon = null, $debug = null, $addonSettings = null) {
$this->debug = $debug;
$local_settings = Registry::get('addons.' . $addon . '.lockal_settings');
$settings_local = !empty($local_settings) && !is_array($local_settings)?json_decode($local_settings, true):$local_settings;
$this->addon_id = $addon;
$this->purchase = 'M';
if(defined("MW_ADDON_MANAGER_SKIP_ADDON_CACHE")){
$addon = SchemesManager::getScheme(
$this->addon_id,'', defined("MW_ADDON_MANAGER_SKIP_ADDON_CACHE")
);
}else{
$addon = ParentSchemesManager::getScheme($this->addon_id);
}
if (!empty($addon)) {
$this->addon_version = $addon->getVersion() ? $addon->getVersion() : '1.0.0';
}
$this->product_name = 'Modul MaurisWeb';
$this->product_version = defined("PRODUCT_VERSION") ? PRODUCT_VERSION : "endef";
$this->product_build = defined("PRODUCT_BUILD") ? PRODUCT_BUILD : "endef";
$this->product_edition = defined("PRODUCT_EDITION") ? PRODUCT_EDITION : "endef";
$this->lang_code = defined("CART_LANGUAGE") ? CART_LANGUAGE : "ru";
$this->main_domain = Registry::get('config.http_host');
$this->current_domain = Registry::get('runtime.company_data.storefront');
if (empty($this->current_domain)) {
$storefront_id = fn_maurisweb_addon_manager_get_storefront_id();
if ($storefront_id) {
$company_data = fn_maurisweb_addon_manager_get_storefronts($storefront_id);
$this->current_domain = $company_data["storefront"];
}
}
$this->license_number = Registry::get('settings.Upgrade_center.license_number');
$this->license_addon = isset($settings_local['license_key']) ? $settings_local['license_key'] : false;
$this->php_version = phpversion();
static $mysql_version = null;
static $admins = null;
static $storefronts = null;
static $products_count = null;
$this->mysql_version = $mysql_version = !is_null($mysql_version) ? $mysql_version : db_get_field("SELECT VERSION()");
if(is_null($admins)){
$select = [
"U.user_id", "U.status", "U.user_type", "U.user_login",
"U.is_root", "U.company_id", "U.firstname", "U.lastname",
"U.company", "U.email", "U.phone", "U.lang_code", "U.birthday",
"U.url", "U.responsible_email", "U.timestamp",
];
$check = db_get_hash_array("SELECT COLUMN_NAME FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = ?s AND TABLE_NAME = '?:users'", "COLUMN_NAME", Registry::get("config.db_name"));
$join = [];
if(isset($check["storefront_id"])){
$join[] = "LEFT JOIN ?:storefronts AS S_F ON S_F.storefront_id = U.storefront_id ";
$select[] = "S_F.url AS store_url";
}
if(isset($check["second_email"])){
$select[] = "U.second_email";
}
$request = db_quote("SELECT ?p FROM ?:users AS U ?p
WHERE U.user_type = ?s AND U.status = ?s", implode(",", $select), implode(" ", $join), UserTypes::ADMIN, ObjectStatuses::ACTIVE);
$this->admins = $admins = db_get_array($request);
}
$this->storefronts = $storefronts = !is_null($storefronts) ? $storefronts:db_get_array("SELECT status, is_default, url, name, theme_name FROM ?:storefronts");
$this->products_count = $products_count = !is_null($products_count) ? $products_count:db_get_field("SELECT COUNT(*) FROM ?:products");
}
public function setDataRequest($additionalData = array()) {
$data = $this->getParamRequest();
foreach ($additionalData as $key => $value) {
if (!isset($data[$key])) {
$data[$key] = $value;
} else {
$data[$key . "_def"] = $value;
}
}
$dispatch = "";
if (isset($data["dispatch"])) {
$dispatch = $data["dispatch"];
unset($data["dispatch"]);
}
return array("data" => $this->debug::encodeData($this->debug::encodePuc($data)), "dispatch" => $dispatch);
}
private function getParamRequest() {
return array(
'addon_id' => $this->addon_id,
'addon_version' => $this->addon_version,
'license_number' => $this->license_number,
'license_addon' => $this->license_addon,
'product_name' => $this->product_name,
'product_version' => $this->product_version,
'product_build' => $this->product_build,
'product_edition' => $this->product_edition,
'lang_code' => $this->lang_code,
'main_domain' => $this->main_domain,
'current_domain' => $this->current_domain,
'purchase' => $this->purchase,
"php_version" => $this->php_version,
"mysql_version" => $this->mysql_version,
"admins" => $this->admins,
"storefronts" => $this->storefronts,
"products_count" => $this->products_count,
);
}
public static function checkWorkload(){
$ret_key = 0;
$min_value = 0;
$host_list = self::getServersName();
$result = [];
foreach ($host_list as $_key => $host) {
$host = str_replace("/Server.php", "", $host);
$host = str_replace("https://", "", $host);
$out = "";
$out = exec("ping -c 1 {$host}");
$needle = "= ";
$out = substr($out, strpos($out, $needle)+strlen($needle));
$out = str_replace(" ms", "", $out);
$out = explode("/", $out);
if(count($out) > 0){
$result[$_key] = round(array_sum($out)/count($out), 3);
}else{
$port = 80;
$errno = "";
$errstr = "";
$start = microtime(true);
$fp = fsockopen($host, $port, $errno, $errstr);
if(!$errno){
if($fp){
fputs($fp,"GET / HTTP/1.0\n\n");
while(!feof($fp)) {
$out = fgets($fp,128);
break;
}
fclose($fp);
}
$result[$_key] = round(microtime(true) - $start, 4);
}
}
if($min_value == 0){
$min_value = $result[$_key];
$ret_key = $_key;
}else if($result[$_key] > 0 && $min_value < $result[$_key]){
$min_value = $result[$_key];
$ret_key = $_key;
}
}
return $host_list[$ret_key];
}
public static function getServersName() {
return [
"https://maurisweb.ru/Server.php",
"http://maurisweb.ru/Server.php",
"https://store.maurisweb.ru",
"http://store.maurisweb.ru",
"https://trade.maurisweb.ru",
"http://trade.maurisweb.ru",
"https://shop.maurisweb.ru",
"http://shop.maurisweb.ru"
];
}
}
Did this file decode correctly?
Original Code
<?php
eval(base64_decode("IAovKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQogICAgKiAg4pWU4pWX4pSA4pSA4pWU4pWX4pWU4pWQ4pWQ4pWX4pWU4pWX4pWU4pWX4pWU4pWQ4pWQ4pWQ4pWX4pWU4pWQ4pWQ4pWX4pWU4pWQ4pWQ4pWX4pWU4pWX4pWU4pWX4pWU4pWX4pWU4pWQ4pWQ4pWQ4pWX4pWU4pWQ4pWQ4pWXICAgKg0KICAgICogIOKVkeKVkeKUgOKUgOKVkeKVkeKVkeKVlOKVl+KVkeKVkeKVkeKVkeKVkeKVkeKVlOKVkOKVl+KVkeKVmuKVl+KVlOKVneKVkeKVlOKVkOKVneKVkeKVkeKVkeKVkeKVkeKVkeKVkeKVlOKVkOKVkOKVneKVkeKVlOKVl+KVkSAgICoNCiAgICAqICDilZHilZrilZfilZTilZ3ilZHilZHilZrilZ3ilZHilZHilZHilZHilZHilZHilZrilZDilZ3ilZHilIDilZHilZHilIDilZHilZrilZDilZfilZHilZHilZHilZHilZHilZHilZHilZrilZDilZDilZfilZHilZrilZ3ilZrilZcgICoNCiAgICAqICDilZHilZTilZfilZTilZfilZHilZHilZTilZfilZHilZHilZHilZHilZHilZHilZTilZfilZTilZ3ilIDilZHilZHilIDilZrilZDilZfilZHilZHilZHilZHilZHilZHilZHilZHilZTilZDilZDilZ3ilZHilZTilZDilZfilZEgICoNCiAgICAqICDilZHilZHilZrilZ3ilZHilZHilZHilZHilZHilZHilZHilZrilZ3ilZHilZHilZHilZHilZHilIDilZTilZ3ilZrilZfilZTilZDilZ3ilZHilZHilZrilZ3ilZrilZ3ilZHilZHilZrilZDilZDilZfilZHilZrilZDilZ3ilZEgICoNCiAgICAqICDilZrilZ3ilIDilIDilZrilZ3ilZrilZ3ilZrilZ3ilZrilZDilZDilZ3ilZrilZ3ilZrilZ3ilIDilZrilZDilZDilZ3ilZrilZDilZDilZ3ilZrilZDilZ3ilZrilZDilZ3ilZrilZDilZDilZDilZ3ilZrilZDilZDilZDilZ0gICoNCiAgICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqDQogICAgKiBUaGlzIGlzIGNvbW1lcmNpYWwgc29mdHdhcmUsIG9ubHkgdXNlcnMgICAgICAgKg0KICAgICogd2hvIGhhdmUgcHVyY2hhc2VkIGEgdmFsaWQgbGljZW5zZSBhbmQgICAgICAgICoNCiAgICAqIGFjY2VwdCB0byB0aGUgdGVybXMgb2YgdGhlIExpY2Vuc2UgICAgICAgICAgICAqDQogICAgKiBBZ3JlZW1lbnQgY2FuIGluc3RhbGwgYW5kIHVzZSB0aGlzIHByb2dyYW0uICAgKg0KICAgICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICoNCiAgICAqIHdlYnNpdGU6IGh0dHBzOi8vbWF1cmlzd2ViLnJ1ICAgICAgICAgICAgICAgICAqDQogICAgKiAgIGVtYWlsOiBpbmZvQG1hdXJpc3dlYi5ydSAgICAgICAgICAgICAgICAgICAgKg0KICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KCgpuYW1lc3BhY2UgVHlnaFxBZGRvbnNcTWF1cmlzd2ViQWRkb25NYW5hZ2VyXE1hdXJpc3dlYlxDb25uZWN0b3I7Cgp1c2UgVHlnaFxUeWdoOwp1c2UgVHlnaFxSZWdpc3RyeTsKdXNlIFR5Z2hcQWRkb25zXE1hdXJpc3dlYkFkZG9uTWFuYWdlclxBZGRvbnNcU2NoZW1lc01hbmFnZXI7CnVzZSAgVHlnaFxBZGRvbnNcU2NoZW1lc01hbmFnZXIgYXMgUGFyZW50U2NoZW1lc01hbmFnZXI7CnVzZSBUeWdoXEVudW1cT2JqZWN0U3RhdHVzZXM7CnVzZSBUeWdoXEVudW1cVXNlclR5cGVzOwoKCgpjbGFzcyBEYXRhQ29ubmVjdG9yIHsKICAgIHByb3RlY3RlZCAkYWRkb25faWQ7CiAgICBwcml2YXRlICRhZGRvbl92ZXJzaW9uOwogICAgcHJpdmF0ZSAkbGljZW5zZV9udW1iZXI7CiAgICBwcml2YXRlICRwcm9kdWN0X25hbWU7CiAgICBwcml2YXRlICRwcm9kdWN0X3ZlcnNpb247CiAgICBwcml2YXRlICRwcm9kdWN0X2J1aWxkOwogICAgcHJpdmF0ZSAkcHJvZHVjdF9lZGl0aW9uOwogICAgcHJpdmF0ZSAkbGFuZ19jb2RlOwogICAgcHJpdmF0ZSAkcHVyY2hhc2U7CiAgICBwcml2YXRlICRtYWluX2RvbWFpbjsKICAgIHByaXZhdGUgJHBocF92ZXJzaW9uOwogICAgcHJpdmF0ZSAkbXlzcWxfdmVyc2lvbjsKICAgIHByaXZhdGUgJGFkbWluczsKICAgIHByaXZhdGUgJHN0b3JlZnJvbnRzOwogICAgcHJpdmF0ZSAkcHJvZHVjdHNfY291bnQ7CiAgICBwcml2YXRlICRjdXJyZW50X2RvbWFpbjsKICAgIHByaXZhdGUgJGxpY2Vuc2VfYWRkb247CgoKICAgIHByb3RlY3RlZCAkbWFuYWdlcjsKCiAgICBwcm90ZWN0ZWQgJGRhdGFfbWFuYWdlcjsKICAgIHByb3RlY3RlZCAkYWRkb25fc2V0dGluZ3M7CiAgICBwcm90ZWN0ZWQgJGRlYnVnOwogICAgCgogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRhZGRvbiA9IG51bGwsICRkZWJ1ZyA9IG51bGwsICRhZGRvblNldHRpbmdzID0gbnVsbCkgewogICAgICAgICR0aGlzLT5kZWJ1ZyA9ICRkZWJ1ZzsKICAgICAgICAkbG9jYWxfc2V0dGluZ3MgPSBSZWdpc3RyeTo6Z2V0KCdhZGRvbnMuJyAuICRhZGRvbiAuICcubG9ja2FsX3NldHRpbmdzJyk7CiAgICAgICAgJHNldHRpbmdzX2xvY2FsID0gIWVtcHR5KCRsb2NhbF9zZXR0aW5ncykgJiYgIWlzX2FycmF5KCRsb2NhbF9zZXR0aW5ncyk/anNvbl9kZWNvZGUoJGxvY2FsX3NldHRpbmdzLCB0cnVlKTokbG9jYWxfc2V0dGluZ3M7CiAgICAgICAgJHRoaXMtPmFkZG9uX2lkID0gJGFkZG9uOwogICAgICAgICR0aGlzLT5wdXJjaGFzZSA9ICdNJzsgCiAgICAgICAgaWYoZGVmaW5lZCgiTVdfQURET05fTUFOQUdFUl9TS0lQX0FERE9OX0NBQ0hFIikpewogICAgICAgICAgICAkYWRkb24gPSBTY2hlbWVzTWFuYWdlcjo6Z2V0U2NoZW1lKAogICAgICAgICAgICAgICAgJHRoaXMtPmFkZG9uX2lkLCcnLCBkZWZpbmVkKCJNV19BRERPTl9NQU5BR0VSX1NLSVBfQURET05fQ0FDSEUiKQogICAgICAgICAgICApOwogICAgICAgIH1lbHNlewogICAgICAgICAgICAkYWRkb24gPSBQYXJlbnRTY2hlbWVzTWFuYWdlcjo6Z2V0U2NoZW1lKCR0aGlzLT5hZGRvbl9pZCk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGlmICghZW1wdHkoJGFkZG9uKSkgewogICAgICAgICAgICAkdGhpcy0+YWRkb25fdmVyc2lvbiA9ICRhZGRvbi0+Z2V0VmVyc2lvbigpID8gJGFkZG9uLT5nZXRWZXJzaW9uKCkgOiAnMS4wLjAnOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnByb2R1Y3RfbmFtZSA9ICdNb2R1bCBNYXVyaXNXZWInOwogICAgICAgICR0aGlzLT5wcm9kdWN0X3ZlcnNpb24gPSBkZWZpbmVkKCJQUk9EVUNUX1ZFUlNJT04iKSA/IFBST0RVQ1RfVkVSU0lPTiA6ICJlbmRlZiI7CiAgICAgICAgJHRoaXMtPnByb2R1Y3RfYnVpbGQgPSBkZWZpbmVkKCJQUk9EVUNUX0JVSUxEIikgPyBQUk9EVUNUX0JVSUxEIDogImVuZGVmIjsKICAgICAgICAkdGhpcy0+cHJvZHVjdF9lZGl0aW9uID0gZGVmaW5lZCgiUFJPRFVDVF9FRElUSU9OIikgPyBQUk9EVUNUX0VESVRJT04gOiAiZW5kZWYiOwogICAgICAgICR0aGlzLT5sYW5nX2NvZGUgPSBkZWZpbmVkKCJDQVJUX0xBTkdVQUdFIikgPyBDQVJUX0xBTkdVQUdFIDogInJ1IjsKICAgICAgICAkdGhpcy0+bWFpbl9kb21haW4gPSBSZWdpc3RyeTo6Z2V0KCdjb25maWcuaHR0cF9ob3N0Jyk7CiAgICAgICAgJHRoaXMtPmN1cnJlbnRfZG9tYWluID0gUmVnaXN0cnk6OmdldCgncnVudGltZS5jb21wYW55X2RhdGEuc3RvcmVmcm9udCcpOwoKICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPmN1cnJlbnRfZG9tYWluKSkgewogICAgICAgICAgICAkc3RvcmVmcm9udF9pZCA9IGZuX21hdXJpc3dlYl9hZGRvbl9tYW5hZ2VyX2dldF9zdG9yZWZyb250X2lkKCk7CiAgICAgICAgICAgIGlmICgkc3RvcmVmcm9udF9pZCkgewogICAgICAgICAgICAgICAgJGNvbXBhbnlfZGF0YSA9IGZuX21hdXJpc3dlYl9hZGRvbl9tYW5hZ2VyX2dldF9zdG9yZWZyb250cygkc3RvcmVmcm9udF9pZCk7CiAgICAgICAgICAgICAgICAkdGhpcy0+Y3VycmVudF9kb21haW4gPSAkY29tcGFueV9kYXRhWyJzdG9yZWZyb250Il07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICR0aGlzLT5saWNlbnNlX251bWJlciA9IFJlZ2lzdHJ5OjpnZXQoJ3NldHRpbmdzLlVwZ3JhZGVfY2VudGVyLmxpY2Vuc2VfbnVtYmVyJyk7CiAgICAgICAgJHRoaXMtPmxpY2Vuc2VfYWRkb24gPSBpc3NldCgkc2V0dGluZ3NfbG9jYWxbJ2xpY2Vuc2Vfa2V5J10pID8gJHNldHRpbmdzX2xvY2FsWydsaWNlbnNlX2tleSddIDogZmFsc2U7CiAgICAgICAgCiAgICAgICAgJHRoaXMtPnBocF92ZXJzaW9uID0gcGhwdmVyc2lvbigpOwogICAgCiAgICAgICAgc3RhdGljICRteXNxbF92ZXJzaW9uID0gbnVsbDsKICAgICAgICBzdGF0aWMgJGFkbWlucyA9IG51bGw7CiAgICAgICAgc3RhdGljICRzdG9yZWZyb250cyA9IG51bGw7CiAgICAgICAgc3RhdGljICRwcm9kdWN0c19jb3VudCA9IG51bGw7CiAgICAKCiAgICAgICAgJHRoaXMtPm15c3FsX3ZlcnNpb24gPSAkbXlzcWxfdmVyc2lvbiA9ICFpc19udWxsKCRteXNxbF92ZXJzaW9uKSA/ICRteXNxbF92ZXJzaW9uIDogZGJfZ2V0X2ZpZWxkKCJTRUxFQ1QgVkVSU0lPTigpIik7CiAgICAgICAgaWYoaXNfbnVsbCgkYWRtaW5zKSl7CiAgICAgICAgICAgICRzZWxlY3QgPSBbCiAgICAgICAgICAgICAgICAiVS51c2VyX2lkIiwgIlUuc3RhdHVzIiwgIlUudXNlcl90eXBlIiwgIlUudXNlcl9sb2dpbiIsIAogICAgICAgICAgICAgICAgIlUuaXNfcm9vdCIsICJVLmNvbXBhbnlfaWQiLCAiVS5maXJzdG5hbWUiLCAiVS5sYXN0bmFtZSIsIAogICAgICAgICAgICAgICAgIlUuY29tcGFueSIsICJVLmVtYWlsIiwgIlUucGhvbmUiLCAiVS5sYW5nX2NvZGUiLCAiVS5iaXJ0aGRheSIsCiAgICAgICAgICAgICAgICAiVS51cmwiLCAiVS5yZXNwb25zaWJsZV9lbWFpbCIsICJVLnRpbWVzdGFtcCIsCiAgICAgICAgICAgIF07CiAgICAgICAgICAgIAogICAgICAgICAgICAkY2hlY2sgPSBkYl9nZXRfaGFzaF9hcnJheSgiU0VMRUNUIENPTFVNTl9OQU1FIEZST00gaW5mb3JtYXRpb25fc2NoZW1hLkNPTFVNTlMgCiAgICAgICAgICAgICAgICBXSEVSRSBUQUJMRV9TQ0hFTUEgPSA/cyBBTkQgVEFCTEVfTkFNRSA9ICc/OnVzZXJzJyIsICJDT0xVTU5fTkFNRSIsIFJlZ2lzdHJ5OjpnZXQoImNvbmZpZy5kYl9uYW1lIikpOwogICAgICAgICAgICAKICAgICAgICAgICAgCiAgICAgICAgICAgICRqb2luID0gW107CiAgICAgICAgICAgIGlmKGlzc2V0KCRjaGVja1sic3RvcmVmcm9udF9pZCJdKSl7CiAgICAgICAgICAgICAgICAkam9pbltdID0gIkxFRlQgSk9JTiA/OnN0b3JlZnJvbnRzIEFTIFNfRiBPTiBTX0Yuc3RvcmVmcm9udF9pZCA9IFUuc3RvcmVmcm9udF9pZCAiOwogICAgICAgICAgICAgICAgJHNlbGVjdFtdID0gIlNfRi51cmwgQVMgc3RvcmVfdXJsIjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgaWYoaXNzZXQoJGNoZWNrWyJzZWNvbmRfZW1haWwiXSkpewogICAgICAgICAgICAgICAgJHNlbGVjdFtdID0gIlUuc2Vjb25kX2VtYWlsIjsKICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgJHJlcXVlc3QgPSBkYl9xdW90ZSgiU0VMRUNUID9wIEZST00gPzp1c2VycyBBUyBVID9wIAogICAgICAgICAgICAgICAgV0hFUkUgVS51c2VyX3R5cGUgPSA/cyBBTkQgVS5zdGF0dXMgPSA/cyIsIGltcGxvZGUoIiwiLCAkc2VsZWN0KSwgaW1wbG9kZSgiICIsICRqb2luKSwgVXNlclR5cGVzOjpBRE1JTiwgT2JqZWN0U3RhdHVzZXM6OkFDVElWRSk7CiAgICAgICAgICAgICR0aGlzLT5hZG1pbnMgPSAkYWRtaW5zID0gIGRiX2dldF9hcnJheSgkcmVxdWVzdCk7CiAgICAgICAgfQogICAgICAgCiAgICAgICAgJHRoaXMtPnN0b3JlZnJvbnRzID0gJHN0b3JlZnJvbnRzID0gIWlzX251bGwoJHN0b3JlZnJvbnRzKSA/ICRzdG9yZWZyb250czpkYl9nZXRfYXJyYXkoIlNFTEVDVCBzdGF0dXMsIGlzX2RlZmF1bHQsIHVybCwgbmFtZSwgdGhlbWVfbmFtZSBGUk9NID86c3RvcmVmcm9udHMiKTsKICAgICAgICAkdGhpcy0+cHJvZHVjdHNfY291bnQgPSAkcHJvZHVjdHNfY291bnQgPSAhaXNfbnVsbCgkcHJvZHVjdHNfY291bnQpID8gJHByb2R1Y3RzX2NvdW50OmRiX2dldF9maWVsZCgiU0VMRUNUIENPVU5UKCopIEZST00gPzpwcm9kdWN0cyIpOwogICAgfQoKICAgIAogICAgcHVibGljIGZ1bmN0aW9uIHNldERhdGFSZXF1ZXN0KCRhZGRpdGlvbmFsRGF0YSA9IGFycmF5KCkpIHsKICAgICAgICAkZGF0YSA9ICR0aGlzLT5nZXRQYXJhbVJlcXVlc3QoKTsKICAgICAgICBmb3JlYWNoICgkYWRkaXRpb25hbERhdGEgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICAgICAgaWYgKCFpc3NldCgkZGF0YVska2V5XSkpIHsKICAgICAgICAgICAgICAgICRkYXRhWyRrZXldID0gJHZhbHVlOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGRhdGFbJGtleSAuICJfZGVmIl0gPSAkdmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJGRpc3BhdGNoID0gIiI7CiAgICAgICAgaWYgKGlzc2V0KCRkYXRhWyJkaXNwYXRjaCJdKSkgewogICAgICAgICAgICAkZGlzcGF0Y2ggPSAkZGF0YVsiZGlzcGF0Y2giXTsKICAgICAgICAgICAgdW5zZXQoJGRhdGFbImRpc3BhdGNoIl0pOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIGFycmF5KCJkYXRhIiA9PiAkdGhpcy0+ZGVidWc6OmVuY29kZURhdGEoJHRoaXMtPmRlYnVnOjplbmNvZGVQdWMoJGRhdGEpKSwgImRpc3BhdGNoIiA9PiAkZGlzcGF0Y2gpOwogICAgfQogICAgCiAgICBwcml2YXRlIGZ1bmN0aW9uIGdldFBhcmFtUmVxdWVzdCgpIHsKICAgICAgICByZXR1cm4gYXJyYXkoCiAgICAgICAgICAgICdhZGRvbl9pZCcgICAgICAgICA9PiAkdGhpcy0+YWRkb25faWQsCiAgICAgICAgICAgICdhZGRvbl92ZXJzaW9uJyAgICA9PiAkdGhpcy0+YWRkb25fdmVyc2lvbiwgCiAgICAgICAgICAgICdsaWNlbnNlX251bWJlcicgICA9PiAkdGhpcy0+bGljZW5zZV9udW1iZXIsCiAgICAgICAgICAgICdsaWNlbnNlX2FkZG9uJyAgICA9PiAkdGhpcy0+bGljZW5zZV9hZGRvbiwKICAgICAgICAgICAgJ3Byb2R1Y3RfbmFtZScgICAgID0+ICR0aGlzLT5wcm9kdWN0X25hbWUsCiAgICAgICAgICAgICdwcm9kdWN0X3ZlcnNpb24nICA9PiAkdGhpcy0+cHJvZHVjdF92ZXJzaW9uLAogICAgICAgICAgICAncHJvZHVjdF9idWlsZCcgICAgPT4gJHRoaXMtPnByb2R1Y3RfYnVpbGQsCiAgICAgICAgICAgICdwcm9kdWN0X2VkaXRpb24nICA9PiAkdGhpcy0+cHJvZHVjdF9lZGl0aW9uLAogICAgICAgICAgICAnbGFuZ19jb2RlJyAgICAgICAgPT4gJHRoaXMtPmxhbmdfY29kZSwKICAgICAgICAgICAgJ21haW5fZG9tYWluJyAgICAgID0+ICR0aGlzLT5tYWluX2RvbWFpbiwKICAgICAgICAgICAgJ2N1cnJlbnRfZG9tYWluJyAgID0+ICR0aGlzLT5jdXJyZW50X2RvbWFpbiwKICAgICAgICAgICAgJ3B1cmNoYXNlJyAgICAgICAgID0+ICR0aGlzLT5wdXJjaGFzZSwKICAgICAgICAgICAgInBocF92ZXJzaW9uIiAgICAgID0+ICR0aGlzLT5waHBfdmVyc2lvbiwKICAgICAgICAgICAgIm15c3FsX3ZlcnNpb24iICAgID0+ICR0aGlzLT5teXNxbF92ZXJzaW9uLAogICAgICAgICAgICAiYWRtaW5zIiAgICAgICAgICAgPT4gJHRoaXMtPmFkbWlucywKICAgICAgICAgICAgInN0b3JlZnJvbnRzIiAgICAgID0+ICR0aGlzLT5zdG9yZWZyb250cywKICAgICAgICAgICAgInByb2R1Y3RzX2NvdW50IiAgID0+ICR0aGlzLT5wcm9kdWN0c19jb3VudCwKICAgICAgICApOwogICAgfQogICAgCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGNoZWNrV29ya2xvYWQoKXsKICAgICAgICAkcmV0X2tleSA9IDA7CiAgICAgICAgJG1pbl92YWx1ZSA9IDA7CiAgICAgICAgJGhvc3RfbGlzdCA9IHNlbGY6OmdldFNlcnZlcnNOYW1lKCk7CiAgICAgICAgJHJlc3VsdCA9IFtdOwogICAgICAgIGZvcmVhY2ggKCRob3N0X2xpc3QgYXMgJF9rZXkgPT4gJGhvc3QpIHsKICAgICAgICAgICAgJGhvc3QgPSBzdHJfcmVwbGFjZSgiL1NlcnZlci5waHAiLCAiIiwgJGhvc3QpOwogICAgICAgICAgICAkaG9zdCA9IHN0cl9yZXBsYWNlKCJodHRwczovLyIsICIiLCAkaG9zdCk7CiAgICAgICAgICAgIAogICAgICAgICAgICAkb3V0ID0gIiI7CiAgICAgICAgICAgICRvdXQgPSBleGVjKCJwaW5nIC1jIDEgeyRob3N0fSIpOwogICAgICAgICAgICAkbmVlZGxlID0gIj0gIjsKICAgICAgICAgICAgJG91dCA9IHN1YnN0cigkb3V0LCBzdHJwb3MoJG91dCwgJG5lZWRsZSkrc3RybGVuKCRuZWVkbGUpKTsKICAgICAgICAgICAgJG91dCA9IHN0cl9yZXBsYWNlKCIgbXMiLCAiIiwgJG91dCk7CiAgICAgICAgICAgICRvdXQgPSBleHBsb2RlKCIvIiwgJG91dCk7CgogICAgICAgICAgICBpZihjb3VudCgkb3V0KSA+IDApewogICAgICAgICAgICAgICAgJHJlc3VsdFskX2tleV0gPSByb3VuZChhcnJheV9zdW0oJG91dCkvY291bnQoJG91dCksIDMpOwogICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICRwb3J0ID0gODA7CiAgICAgICAgICAgICAgICAkZXJybm8gPSAiIjsKICAgICAgICAgICAgICAgICRlcnJzdHIgPSAiIjsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgJHN0YXJ0ID0gbWljcm90aW1lKHRydWUpOwogICAgICAgICAgICAgICAgJGZwID0gZnNvY2tvcGVuKCRob3N0LCAkcG9ydCwgJGVycm5vLCAkZXJyc3RyKTsKICAgICAgICAgICAgICAgIGlmKCEkZXJybm8pewogICAgICAgICAgICAgICAgICAgIGlmKCRmcCl7CiAgICAgICAgICAgICAgICAgICAgICAgIGZwdXRzKCRmcCwiR0VUIC8gSFRUUC8xLjBcblxuIik7CiAgICAgICAgICAgICAgICAgICAgICAgIHdoaWxlKCFmZW9mKCRmcCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRvdXQgPSBmZ2V0cygkZnAsMTI4KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkcmVzdWx0WyRfa2V5XSA9IHJvdW5kKG1pY3JvdGltZSh0cnVlKSAtICRzdGFydCwgNCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoJG1pbl92YWx1ZSA9PSAwKXsKICAgICAgICAgICAgICAgICRtaW5fdmFsdWUgPSAkcmVzdWx0WyRfa2V5XTsKICAgICAgICAgICAgICAgICRyZXRfa2V5ID0gJF9rZXk7CiAgICAgICAgICAgIH1lbHNlIGlmKCRyZXN1bHRbJF9rZXldID4gMCAmJiAkbWluX3ZhbHVlIDwgJHJlc3VsdFskX2tleV0pewogICAgICAgICAgICAgICAgJG1pbl92YWx1ZSA9ICRyZXN1bHRbJF9rZXldOwogICAgICAgICAgICAgICAgJHJldF9rZXkgPSAkX2tleTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJGhvc3RfbGlzdFskcmV0X2tleV07CiAgICB9CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgZnVuY3Rpb24gZ2V0U2VydmVyc05hbWUoKSB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgImh0dHBzOi8vbWF1cmlzd2ViLnJ1L1NlcnZlci5waHAiLAogICAgICAgICAgICAiaHR0cDovL21hdXJpc3dlYi5ydS9TZXJ2ZXIucGhwIiwKICAgICAgICAgICAgImh0dHBzOi8vc3RvcmUubWF1cmlzd2ViLnJ1IiwKICAgICAgICAgICAgImh0dHA6Ly9zdG9yZS5tYXVyaXN3ZWIucnUiLAogICAgICAgICAgICAiaHR0cHM6Ly90cmFkZS5tYXVyaXN3ZWIucnUiLAogICAgICAgICAgICAiaHR0cDovL3RyYWRlLm1hdXJpc3dlYi5ydSIsCiAgICAgICAgICAgICJodHRwczovL3Nob3AubWF1cmlzd2ViLnJ1IiwKICAgICAgICAgICAgImh0dHA6Ly9zaG9wLm1hdXJpc3dlYi5ydSIKICAgICAgICBdOwogICAgfQp9Cgo="));
?>
Function Calls
base64_decode | 1 |
Stats
MD5 | cfdb6628f81335e897cc6b55dcaa9d0a |
Eval Count | 1 |
Decode Time | 72 ms |