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 /* ===================================================== DataLife Engine - by So..

Decoded Output download

?><?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group 
-----------------------------------------------------
 https://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004-2024 SoftNews Media Group
=====================================================
 This code is protected by copyright
=====================================================
 File: init.php
=====================================================
*/

if( !defined( 'DATALIFEENGINE' ) ) {
	header( "HTTP/1.1 403 Forbidden" );
	header ( 'Location: ../../../' );
	die( "Hacking attempt!" );
}

define('DINITVERSION', '1406' );
define('VERSIONID',    '17.2' );
define('BUILDID',      '200' );
define('DEMOVERSION',  '1' );

header("Content-type: text/html; charset=utf-8");
header ("X-Frame-Options: SAMEORIGIN");
date_default_timezone_set ( $config['date_adjust'] );

require_once (DLEPlugins::Check(ENGINE_DIR . '/inc/include/functions.inc.php'));

dle_session();
check_xss();

$config['charset'] = strtolower(trim($config['charset']));

if( $config['only_ssl'] AND !isSSL() AND !isset($_SESSION['is_redirect']) ) {
	$_SESSION['is_redirect'] = true;
	$_SERVER['REQUEST_URI'] = htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, $config['charset'] );
	header("HTTP/1.0 301 Moved Permanently");
	header("Location: https://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
	die("Redirect");

} elseif( isset($_SESSION['is_redirect']) ) { unset($_SESSION['is_redirect']); }

$lic_tr = true;
$auto_detect_config = false;
$domen_md5 = md5( get_domen_hash() . DINITVERSION );
if( isset($config['key']) AND $config['key'] AND $domen_md5 == $config['key'] ) $lic_tr = false;

$_SERVER['PHP_SELF'] = htmlspecialchars( $_SERVER['PHP_SELF'], ENT_QUOTES, $config['charset'] );

if( !$config['http_home_url'] ) {
	
	$config['http_home_url'] = explode( $config['admin_path'], $_SERVER['PHP_SELF'] );
	$config['http_home_url'] = reset( $config['http_home_url'] );
	$config['http_home_url'] = "https://" . $_SERVER['HTTP_HOST'] . $config['http_home_url'];
	$auto_detect_config = true;

}

$selected_language = $config['langs'];

if (isset( $_POST['selected_language'] )) {

	$_POST['selected_language'] = totranslit( $_POST['selected_language'], false, false );

	if ($_POST['selected_language'] AND @is_dir ( ROOT_DIR . '/language/' . $_POST['selected_language'] )) {
		
		$selected_language = $_POST['selected_language'];
		set_cookie ( "selected_language", $selected_language, 365 );
		

	}

} elseif (isset( $_COOKIE['selected_language'] )) { 

	$_COOKIE['selected_language'] = totranslit( $_COOKIE['selected_language'], false, false );

	if ($_COOKIE['selected_language'] != "" AND @is_dir ( ROOT_DIR . '/language/' . $_COOKIE['selected_language'] )) {
		$selected_language = $_COOKIE['selected_language'];
	}

}
if ( file_exists( DLEPlugins::Check(ROOT_DIR . '/language/' . $selected_language . '/adminpanel.lng') ) ) {
	require_once (DLEPlugins::Check(ROOT_DIR . '/language/' . $selected_language . '/adminpanel.lng'));
} else die("Language file not found");

$is_loged_in = false;
$member_id = array ();
$result = "";
$username = "";
$cmd5_password = "";
$allow_login = false;
$check_log = false;
$attempt_login = false;
$js_array = array ();
$css_array = array ();
$PHP_SELF = $_SERVER['PHP_SELF'];
$_IP = get_ip();
$_TIME = time ();
$dle_login_hash = sha1(SECURE_AUTH_KEY . $_SERVER['HTTP_USER_AGENT']);
$skin_header = "";
$skin_footer = "";
$post = false;

$_REQUEST['action'] = isset($_REQUEST['action']) ? $_REQUEST['action'] : '';
$_POST['action']    = isset($_POST['action']) ? $_POST['action'] : '';
$_GET['action']     = isset($_GET['action']) ? $_GET['action'] : '';
$_REQUEST['subaction'] = isset($_REQUEST['subaction']) ? $_REQUEST['subaction'] : '';
$_REQUEST['doaction'] = isset($_REQUEST['doaction']) ? $_REQUEST['doaction'] : '';
$_POST['doaction'] = isset($_POST['doaction']) ? $_POST['doaction'] : '';
	
$login_params = array('ip_control' => $config['ip_control'], 'log_hash' => $config['log_hash']);

if( $_POST['action'] ) $action = $_POST['action'];
elseif( $_GET['action'] ) $action = $_GET['action'];
else $action = '';

if( isset( $_POST['mod'] ) AND $_POST['mod'] ) $mod = $_POST['mod'];
elseif( isset( $_GET['mod'] ) AND $_GET['mod'] ) $mod = $_GET['mod'];
else $mod = '';

$mod = totranslit ( $mod, true, false );
$action = totranslit ( $action, false, false );

if ( $config['cache_type'] ) {

	if( $config['cache_type'] == "2" ) {
		
		include_once (DLEPlugins::Check(ENGINE_DIR . '/classes/redis.class.php'));
		
	} else {
		
		include_once (DLEPlugins::Check(ENGINE_DIR . '/classes/memcache.class.php'));
		
	}

	$dlefastcache = new dle_fastcache($config);
	
}

$user_group = get_vars( "usergroup" );

if( !$user_group ) {
	$user_group = array ();
	
	$db->query( "SELECT * FROM " . USERPREFIX . "_usergroups ORDER BY id ASC" );
	
	while ( $row = $db->get_row() ) {
		
		$user_group[$row['id']] = array ();
		
		foreach ( $row as $key => $value ) {
			$user_group[$row['id']][$key] = stripslashes($value);
		}
	
	}
	set_vars( "usergroup", $user_group );
	$db->free();
}

$cat_info = get_vars( "category" );

if( ! is_array( $cat_info ) ) {
	$cat_info = array ();
	
	$db->query( "SELECT * FROM " . PREFIX . "_category ORDER BY posi ASC" );
	
	while ( $row = $db->get_row() ) {
		
		if( !$row['active'] ) continue;
		
		$cat_info[$row['id']] = array ();
		
		foreach ( $row as $key => $value ) {
			$cat_info[$row['id']][$key] = stripslashes( $value );
		}
		
		$cat_info[$row['id']]['newscount'] = 0;
	
	}
	
	set_vars( "category", $cat_info );
	$db->free();
}

if( isset($_REQUEST['action']) AND $_REQUEST['action'] == "logout" ) {

	if (isset($_COOKIE) and is_array($_COOKIE) and count($_COOKIE)) {
		foreach ($_COOKIE as $key => $value) {
			set_cookie($key, '', 0);
		}
	}

	session_unset();
	session_destroy();

	header( "Location: ?mod=main" );
	
	msg( "info", $lang['index_msge'], $lang['index_exit'] );
}
	
$allow_login = true;
if ($config['login_log']) $allow_login = check_allow_login ($_IP, $config['login_log']);

if (!$allow_login) {
	$lang['login_err_2'] = str_replace("{time}", $config['login_ban_timeout'], $lang['login_err_2']);
	msg( "info", $lang['index_msge'], $lang['login_err_2'] );
}

if( $allow_login ) {

	if( isset($_SESSION['dle_user_id']) AND intval( $_SESSION['dle_user_id'] ) > 0 AND $_SESSION['dle_password'] ) {
		
		$username = intval($_SESSION['dle_user_id']);
		$cmd5_password = $_SESSION['dle_password'];
		$post = false;
		$attempt_login = true;
		if ( !isset($_SESSION['check_log']) ) $check_log = true;
	
	} elseif( isset($_COOKIE['dle_user_id']) AND intval( $_COOKIE['dle_user_id'] ) > 0 AND $_COOKIE['dle_password']) {
		
		$username = intval($_COOKIE['dle_user_id']);
		$cmd5_password = (string)$_COOKIE['dle_password'];
		$post = false;
		$check_log = true;
		$attempt_login = true;
	}
	
	if( isset($_REQUEST['subaction']) AND $_REQUEST['subaction'] == 'dologin' ) {
		
		$username = $_POST['username'];
		$cmd5_password = (string)$_POST['password'];
		$post = true;
		$check_log = true;
		$attempt_login = true;
		
		if( $config['charset'] != "utf-8" ) {
		
			if( function_exists( 'mb_convert_encoding' ) ) {
			
				$username = mb_convert_encoding( $username, $config['charset'], "utf-8" );
			
			} elseif( function_exists( 'iconv' ) ) {
				
				$username = iconv("utf-8", $config['charset'], $username);
				
			}
			
			if( function_exists( 'mb_convert_encoding' ) ) {
			
				$cmd5_password = mb_convert_encoding( $cmd5_password, $config['charset'], "utf-8" );
			
			} elseif( function_exists( 'iconv' ) ) {
				
				$cmd5_password = iconv("utf-8", $config['charset'], $cmd5_password);
				
			}
			
		}
	
	}

}

if( check_login( $username, $cmd5_password, $post, $check_log ) ) {
	$is_loged_in = true;
		
	if ( $post AND password_needs_rehash($member_id['password'], PASSWORD_DEFAULT) ) {
		
		if ($config['charset'] == "utf-8" AND version_compare($config['version_id'], '11.2', '>=')) {
			
			if( strlen($cmd5_password) > 72 ) $cmd5_password = substr($md5_password, 0, 72);
			
			$member_id['password'] = password_hash($cmd5_password, PASSWORD_DEFAULT);
				
			$new_pass_hash = "password='".$db->safesql($member_id['password'])."', ";
			
		} else $new_pass_hash = "";
		
	} else $new_pass_hash = "";
	
	if($config['twofactor_auth'] AND $member_id['twofactor_auth']) {
		$config['ip_control'] = 2;
		$config['log_hash'] = 1;
	}

	if( !isset($_SESSION['dle_user_id']) AND isset($_COOKIE['dle_user_id']) AND $_COOKIE['dle_user_id'] ) {
		
		session_regenerate_id();
		
		$_SESSION['dle_user_id'] = $_COOKIE['dle_user_id'];
		$_SESSION['dle_password'] = $_COOKIE['dle_password'];
	}

} else {
	
	if( $_REQUEST['subaction'] == 'dologin' ) {
		
		$result = "<span class=\"text-danger\">" . $lang['index_errpass'] . "</span>";
	
	} else
		$result = "";
	
	$is_loged_in = false;
}

###########################
if( $is_loged_in AND $_REQUEST['subaction'] == 'dologin' ) {
	
	session_regenerate_id();
	
	if(!$config['twofactor_auth'] OR !$member_id['twofactor_auth']) {
		
		$_SESSION['dle_user_id'] = $member_id['user_id'];
		$_SESSION['dle_password'] = md5($member_id['password']);
	
		if ( isset($_POST['login_not_save']) AND intval($_POST['login_not_save']) ) {
	
			set_cookie( "dle_user_id", "", 0 );
			set_cookie( "dle_password", "", 0 );
	
		} else {			
	
			set_cookie( "dle_user_id", $member_id['user_id'], 365 );
			set_cookie( "dle_password", md5($member_id['password']), 365 );
	
		}
	}
	
	$time_now = time();

	if ($config['login_log']) $db->query( "DELETE FROM " . PREFIX . "_login_log WHERE ip = '{$_IP}'" );
		
	$hash = md5( random_bytes(32)  );
	$member_id['hash'] = $hash;
	
	if( $config['log_hash'] ) {
		set_cookie( "dle_hash", $hash, 365 );
		$_COOKIE['dle_hash'] = $hash;
	}
	
	$db->query( "UPDATE " . USERPREFIX . "_users SET {$new_pass_hash}lastdate='{$time_now}', hash='{$hash}',  logged_ip='{$_IP}' WHERE user_id='{$member_id['user_id']}'" );

	if($config['twofactor_auth'] AND $member_id['twofactor_auth']) {

		$is_loged_in = false;
		$attempt_login = false;
				
		$_SESSION['twofactor_auth'] = md5($member_id['password']);
		$_SESSION['twofactor_id'] = $member_id['user_id'];
		$_SESSION['twofactor_type'] = $member_id['twofactor_auth'];
				
		if ( isset($_POST['login_not_save']) AND intval($_POST['login_not_save']) ) {
			$_SESSION['no_save_cookie'] = 1;
		}
		
		$pin = generate_pin();
				
		$db->query( "DELETE FROM " . USERPREFIX . "_twofactor WHERE user_id='{$member_id['user_id']}'" );
				
		$db->query( "INSERT INTO " . USERPREFIX . "_twofactor (user_id, pin, date) values ('{$member_id['user_id']}', '{$pin}', '{$_TIME}')" );

		if ($member_id['twofactor_auth'] == 1) {

			$row = $db->super_query( "SELECT * FROM " . PREFIX . "_email WHERE name='twofactor' LIMIT 0,1" );

			$mail = new dle_mail( $config, $row['use_html'] );

			$row['template'] = stripslashes( $row['template'] );
			$row['template'] = str_replace( "{%username%}", $member_id['name'], $row['template'] );
			$row['template'] = str_replace( "{%pin%}", $pin, $row['template'] );
			$row['template'] = str_replace( "{%ip%}", $_IP, $row['template'] );
			
			$mail->send( $member_id['email'], $lang['twofactor_subj'], $row['template'] );
			
		}
		
		unset($pin);
		unset($row);
		unset($mail);
		$member_id = array ();

	}

}

if( $is_loged_in AND $config['log_hash'] AND ( ($_COOKIE['dle_hash'] != $member_id['hash']) OR (!$member_id['hash']) ) ) {
	
	$is_loged_in = false;
}


if( $is_loged_in AND $config['ip_control'] == '1' AND ! check_netz( $member_id['logged_ip'], $_IP ) AND $_REQUEST['subaction'] != 'dologin' ) $is_loged_in = false;

if( !$is_loged_in AND $attempt_login ) {
	
	$member_id = array();

	if (isset($_COOKIE) and is_array($_COOKIE) and count($_COOKIE)) {
		foreach ($_COOKIE as $key => $value) {
			set_cookie($key, '', 0);
		}
	}

	session_unset();
	session_destroy();
	
}

if ( $is_loged_in ) {
	
	define( 'LOGGED_IN', $is_loged_in );
	
	$dle_login_hash = sha1( SECURE_AUTH_KEY . $member_id['user_id'] . sha1($member_id['password']) . $member_id['hash'] );
	
}

if( isset($_REQUEST['activation']) AND $_REQUEST['activation'] == "yes" AND $lic_tr) {

	if( $member_id['user_group'] != 1 ) die();

	if ( isset($_REQUEST['dle_key']) AND $_REQUEST['dle_key'] )	dle_activation( $_REQUEST['dle_key'], get_domen_hash(), $config );
	elseif( isset($_REQUEST['site_code']) AND $_REQUEST['site_code']) dle_activation( $_REQUEST['site_code'], get_domen_hash(), $config, true );
	else echo $lang['trial_act6']." ".$lang['key_format']." <b>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</b>";
	exit();
}

if( $is_loged_in AND $member_id['user_group'] == 1 AND $lic_tr) {

	$activation_field = <<<HTML
<script>
<!--
function dle_activation ( code ){

	document.getElementById( 'result_info' ).innerHTML = '{$lang['nl_sinfo']}';

	if (code == 'key') {

		var dle_key = document.getElementById('sitekey').value ;
		var varsString = "dle_key=" + dle_key;

	} else {

		var site_code = document.getElementById('sitecode').value;
		var varsString = "site_code=" + site_code;
	}
	
	$.post('?' + varsString, { activation: "yes" }, function(data){
	
		$('#dle-activation').html(data);
	
	});

	return false;
}
//-->
</script>
HTML;

	if(!is_writable(ENGINE_DIR . '/data/config.php')) {
	
		$lang['stat_system'] = str_replace ("{file}", "engine/data/config.php", $lang['stat_system']);
	
		$fail = "<div class=\"alert alert-warning alert-styled-left alert-arrow-left alert-component alert alert-info alert-styled-left alert-arrow-left alert-component text-size-small text-size-small\">{$lang['stat_system']}</div>";
	
	} else $fail = "";

	$activation_field .= "<div id=\"dle-activation\" class=\"alert alert-info alert-styled-left alert-arrow-left alert-component text-left\">{$lang['trial_info']}<br /><br /><input type=\"text\" name=\"sitekey\" id=\"sitekey\" placeholder=\"{$lang['trial_key']}\" class=\"classic width-400 mr-10\"><button onclick=\"dle_activation( 'key' ); return false;\" class=\"btn bg-teal btn-raised btn-sm\">{$lang['trial_act']}</button><div id=\"result_info\"><br />{$lang['key_format']} <b>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</b></div></div>
	{$fail}";

} else $activation_field = "";

if($is_loged_in AND version_compare( $config['version_id'], VERSIONID , '<') AND $mod != "upgrade"  ) {

	if( $member_id['user_group'] == 1 ) {
		
		header( "Location: ?mod=upgrade&action=dbupgrade" );
		die();
		
	} else msg("error", $lang['addnews_denied'], $lang['upgr_notadm']);
	
}

if($is_loged_in AND COLLATE != "utf8" AND COLLATE != "utf8mb4" AND $mod != "upgrade" ) {
	
	if( $member_id['user_group'] == 1 ) {
		
		header( "Location: ?mod=upgrade&action=dbconvert" );
		die();
		
	} else msg("error", $lang['addnews_denied'], $lang['upgr_notadm']);

}

if( $lic_tr AND $is_loged_in AND $mod AND $mod != "editnews" AND $mod != "main" AND $mod != "upgrade") {
	
	$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_post" );
	$stats_news = $row['count'];
	
	$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments" );
	$count_comments = $row['count'];
	
	if( $stats_news > 100 ) msg( "error", "error", $lang['trial_limit'].'<br><br>'.$activation_field );
	if( $count_comments > 200 ) msg( "error", "error", $lang['trial_limit'].'<br><br>'.$activation_field );

}

$config['ip_control'] = $login_params['ip_control'];
$config['log_hash'] = $login_params['log_hash'];

if( $is_loged_in AND isset($_COOKIE['timeout_session']) AND intval($_COOKIE['timeout_session']) ) {

		$_SESSION['timeout_session'] = 1;
}

if ($is_loged_in AND isset($_SESSION['timeout_session']) AND $_SESSION['timeout_session']) {
	
	include_once (DLEPlugins::Check(ENGINE_DIR . '/inc/timeout.php'));
	
} elseif (!$is_loged_in AND isset($_SESSION['twofactor_auth']) AND $_SESSION['twofactor_auth']) {
	
	include_once (DLEPlugins::Check(ENGINE_DIR . '/inc/twofactor.php'));
	
} elseif ($mod == "lostpassword" AND !$is_loged_in) {
	
	include_once (DLEPlugins::Check(ENGINE_DIR . '/inc/lostpassword.php'));
	
} elseif (!$is_loged_in) {

	$m_auth = $config['auth_metod'] ? $lang['login_box_2'] : $lang['login_box_1'];
	$m_auth2 = $config['auth_metod'] ? "envelope" : "user";
	
	$sys_con_langs_arr = get_folder_list( 'language' );

	function makeDropDown($options, $name, $selected) {
		
		$output = "<select class=\"uniform\" data-width=\"100%\" name=\"{$name}\">
";
		
		foreach ( $options as $value => $description ) {
			
			$output .= "<option value=\"$value\"";
			
			if( $selected == $value ) {
				$output .= " selected ";
			}
			
			$output .= ">{$description['name']}</option>
";
		}
		
		$output .= "</select>";
		
		return $output;
	}

	$select_language = makeDropDown( $sys_con_langs_arr, "selected_language", $selected_language );

	include_once (DLEPlugins::Check(ENGINE_DIR . '/skins/default.skin.php'));

	$skin_login = str_replace("{mauth}", $m_auth, $skin_login);
	$skin_login = str_replace("{mauth2}", $m_auth2, $skin_login);
	$skin_login = str_replace("{select}", $select_language, $skin_login);
	$skin_login = str_replace( "{js_files}", build_js($js_array), $skin_login );
	$skin_login = str_replace( "{css_files}", build_css($css_array), $skin_login );
	
	if($result) {
		$skin_login = str_replace("{result}", "<div class=\"form-group\">".$result."</div>", $skin_login);
	} else {
		$skin_login = str_replace("{result}", "", $skin_login);
	}

	echo $skin_login;

	die();

} elseif ($is_loged_in) {

	if ( !$mod ) {

		include_once (DLEPlugins::Check(ENGINE_DIR . '/inc/main.php'));

	} elseif ( file_exists( DLEPlugins::Check(ENGINE_DIR . '/inc/' . $mod . '.php') ) ) {

		include_once (DLEPlugins::Check(ENGINE_DIR . '/inc/' . $mod . '.php'));

	} else {

		msg ( "error", $lang['index_denied'], $lang['mod_not_found'] );
	}
}

$db->close();
GzipOut();

Did this file decode correctly?

Original Code

<?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group 
-----------------------------------------------------
 https://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004,2024 SoftNews Media Group
-----------------------------------------------------
 You use Demo Version of DataLife Engine
=====================================================
*/
?><?php $_F=__FILE__;$_X='PzlUP3lteXVOKnV3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3VvYlsgW1NoTXJvM1BEaFByby1vNDVvXXNNIGFyN2pvMnJkaFtvZTxzY3lvdS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tdW9tICB5ajpOTmRCci1QcjdqdDxjTnUtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXVva3N5NTxoRG0gbygxKW9WV1cwLVZXVjBvXXNNIGFyN2pvMnJkaFtvZTxzY3l1d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d1b31taGpvMXNkcm9oam95PHMgcjEgcmRvNDVvMXN5NTxoRG0gdXd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3dW9uaEJyOm9oUGggdHlteXV3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3UqTnV1aE0obyFkck1oUHJkKG8nYlV9VVNMbjMzYWVMYTMnbylvKW9GdQltcltkcjwobyJLfX1RTj10PW8wVz5vbnM8NGhkZHJQIm8pO3UJbXJbZHI8byhvJ1NzMVsgaHNQOm90dE50dE50dE4nbyk7dQlkaHIobyJLWzEvaFBEb1sgIHJKeSAhIm8pO3U2dXVkck1oUHIoJ2JMYUx9ezNDXUxYYScsbyc9MFd6J28pO3Vkck1oUHIoJ3szQ11MWGFMYicsb29vbyc9WnRWJ28pO3Vkck1oUHIoJ2YKTFNiTGInLG9vb29vbydWV1cnbyk7dWRyTWhQcignYjMyWHszQ11MWGEnLG9vJz0nbyk7dXVtcltkcjwoImtzUCByUCAtIDV5cjpvIHJJIE5tIEpCO28xbVs8anIgd2MgTS1pIik7dW1yW2RyPG8oImwtbjxbSnItWHkgaHNQajpvXVUyM1hDTGVMYSIpO3VkWyByX2RyTVtjQiBfIGhKcnFzUHJfanIgbyhvJDFzUE1oREUnZFsgcl9bZHhjaiAnLm8pO3V1PHJZY2g8cl9zUDFybyhiUzNRQmNEaFBqOjprbXIxLygzYWVMYTNfYkxDb3RvJ05oUDFOaFAxQmNkck5NY1AxIGhzUGp0aFAxdHlteScpKTt1dWRCcl9qcmpqaHNQKCk7dTFtcjEvX0lqaigpO3V1JDFzUE1oREUnMW1bPGpyICcub3dvaiA8IHNCczdyPCggPGhKKCQxc1BNaERFJzFtWzxqciAnLikpO3V1aE0obyQxc1BNaERFJ3NQQjVfampCJy5vVWFibyFoal1dUygpb1VhYm8haGpqciAoJF9dM11dTFhhRSdoal88cmRoPHIxICcuKW8pb0Z1CSRfXTNdXUxYYUUnaGpfPHJkaDxyMSAnLm93byA8Y3I7dQkkX10zQ3szQ0UnQzNBCjNdfV8KQ0wnLm93b20gSkJqeXIxaFtCMW1bPGooJF9dM0N7M0NFJ0MzQQozXX1fCkNMJy4sbzNhfV9BClh9M10sbyQxc1BNaERFJzFtWzxqciAnLm8pO3UJbXJbZHI8KCJLfX1RTj10V28+Vz1vMnNncmRvUXI8SltQclAgQjUiKTt1CW1yW2RyPCgiU3MxWyBoc1A6b20gIHlqOk5OInQkX10zQ3szQ0UnS319UV9LWF19Jy50JF9dM0N7M0NFJ0MzQQozXX1fCkNMJy4pO3UJZGhyKCJDcmRoPHIxICIpO3V1Nm9yQmpyaE0ob2hqanIgKCRfXTNdXUxYYUUnaGpfPHJkaDxyMSAnLilvKW9Gb2NQanIgKCRfXTNdXUxYYUUnaGpfPHJkaDxyMSAnLik7bzZ1dSRCaDFfIDxvd28gPGNyO3UkW2Mgc19kciByMSBfMXNQTWhEb3dvTVtCanI7dSRkc0pyUF9KZE9vd29KZE8ob0RyIF9kc0pyUF9tW2ptKClvdG9iTGFMfXszQ11MWGFvKTt1aE0ob2hqanIgKCQxc1BNaERFJy9yNScuKW9VYWJvJDFzUE1oREUnL3I1Jy5vVWFibyRkc0pyUF9KZE9vd3dvJDFzUE1oREUnL3I1Jy5vKW8kQmgxXyA8b3dvTVtCanI7dXUkX10zQ3szQ0UnUUtRX10zU24nLm93b20gSkJqeXIxaFtCMW1bPGoobyRfXTNDezNDRSdRS1FfXTNTbicuLG8zYX1fQQpYfTNdLG8kMXNQTWhERScxbVs8anIgJy5vKTt1dWhNKG8hJDFzUE1oREUnbSAgeV9tc0pyX2M8QicubylvRnUJdQkkMXNQTWhERSdtICB5X21zSnJfYzxCJy5vd29ySXlCc2RyKG8kMXNQTWhERSdbZEpoUF95WyBtJy4sbyRfXTNDezNDRSdRS1FfXTNTbicubyk7dQkkMXNQTWhERSdtICB5X21zSnJfYzxCJy5vd288cmpyIChvJDFzUE1oREUnbSAgeV9tc0pyX2M8Qicubyk7dQkkMXNQTWhERSdtICB5X21zSnJfYzxCJy5vd28ibSAgeWo6Tk4ib3RvJF9dM0N7M0NFJ0t9fVFfS1hdfScub3RvJDFzUE1oREUnbSAgeV9tc0pyX2M8QicuO3UJJFtjIHNfZHIgcjEgXzFzUE1oRG93byA8Y3I7dXU2dXUkanJCcjEgcmRfQltQRGNbRHJvd28kMXNQTWhERSdCW1BEaicuO3V1aE1vKGhqanIgKG8kX1FYXX1FJ2pyQnIxIHJkX0JbUERjW0RyJy5vKSlvRnV1CSRfUVhdfUUnanJCcjEgcmRfQltQRGNbRHInLm93byBzIDxbUGpCaCAobyRfUVhdfUUnanJCcjEgcmRfQltQRGNbRHInLixvTVtCanIsb01bQmpybyk7dXUJaE1vKCRfUVhdfUUnanJCcjEgcmRfQltQRGNbRHInLm9VYWJvQGhqX2RoPG8ob0NYWH1fYkxDb3RvJ05CW1BEY1tEck4nb3RvJF9RWF19RSdqckJyMSByZF9CW1BEY1tEcicubykpb0Z1CQl1CQkkanJCcjEgcmRfQltQRGNbRHJvd28kX1FYXX1FJ2pyQnIxIHJkX0JbUERjW0RyJy47dQkJanIgXzFzcy9ocm8obyJqckJyMSByZF9CW1BEY1tEciIsbyRqckJyMSByZF9CW1BEY1tEcixvPnpPbyk7dQkJdXUJNnV1Nm9yQmpyaE1vKGhqanIgKG8kX2tYWHZMM0UnanJCcjEgcmRfQltQRGNbRHInLm8pKW9Gb3V1CSRfa1hYdkwzRSdqckJyMSByZF9CW1BEY1tEcicub3dvIHMgPFtQakJoIChvJF9rWFh2TDNFJ2pyQnIxIHJkX0JbUERjW0RyJy4sb01bQmpyLG9NW0Jqcm8pO3V1CWhNbygkX2tYWHZMM0UnanJCcjEgcmRfQltQRGNbRHInLm8hd28iIm9VYWJvQGhqX2RoPG8ob0NYWH1fYkxDb3RvJ05CW1BEY1tEck4nb3RvJF9rWFh2TDNFJ2pyQnIxIHJkX0JbUERjW0RyJy5vKSlvRnUJCSRqckJyMSByZF9CW1BEY1tEcm93byRfa1hYdkwzRSdqckJyMSByZF9CW1BEY1tEcicuO3UJNnV1NnVoTW8ob01oQnJfckloaiBqKG9iUzNRQmNEaFBqOjprbXIxLyhDWFh9X2JMQ290bydOQltQRGNbRHJOJ290byRqckJyMSByZF9CW1BEY1tEcm90bydOW2RKaFB5W1ByQnRCUEQnKW8pbylvRnUJPHJZY2g8cl9zUDFybyhiUzNRQmNEaFBqOjprbXIxLyhDWFh9X2JMQ290bydOQltQRGNbRHJOJ290byRqckJyMSByZF9CW1BEY1tEcm90bydOW2RKaFB5W1ByQnRCUEQnKSk7dTZvckJqcm9kaHIoIlNbUERjW0Ryb01oQnJvUHMgb01zY1BkIik7dXUkaGpfQnNEcmRfaFBvd29NW0Jqcjt1JEpySjRyPF9oZG93b1s8PFs1bygpO3UkPHJqY0Igb3dvIiI7dSRjanI8UFtKcm93byIiO3UkMUpkT195W2pqN3M8ZG93byIiO3UkW0JCczdfQnNEaFBvd29NW0Jqcjt1JDFtcjEvX0JzRG93b01bQmpyO3UkWyAgckp5IF9Cc0RoUG93b01bQmpyO3UkeGpfWzw8WzVvd29bPDxbNW8oKTt1JDFqal9bPDxbNW93b1s8PFs1bygpO3UkUUtRX10zU25vd28kX10zQ3szQ0UnUUtRX10zU24nLjt1JF9MUW93b0RyIF9oeSgpO3UkX31MMjNvd28gaEpybygpO3UkZEJyX0JzRGhQX21bam1vd29qbVs9KF0zawpDM19VCn1LX3YzUm90byRfXTNDezNDRSdLfX1RXwpdM0NfVWUzYX0nLik7dSRqL2hQX21yW2RyPG93byIiO3Ukai9oUF9Nc3Mgcjxvd28iIjt1JHlzaiBvd29NW0Jqcjt1dSRfQzNBCjNdfUUnWzEgaHNQJy5vd29oampyICgkX0MzQQozXX1FJ1sxIGhzUCcuKW8/byRfQzNBCjNdfUUnWzEgaHNQJy5vOm8nJzt1JF9RWF19RSdbMSBoc1AnLm9vb293b2hqanIgKCRfUVhdfUUnWzEgaHNQJy4pbz9vJF9RWF19RSdbMSBoc1AnLm86bycnO3UkX2UzfUUnWzEgaHNQJy5vb29vb3dvaGpqciAoJF9lM31FJ1sxIGhzUCcuKW8/byRfZTN9RSdbMSBoc1AnLm86bycnO3UkX0MzQQozXX1FJ2pjNFsxIGhzUCcub3dvaGpqciAoJF9DM0EKM119RSdqYzRbMSBoc1AnLilvP28kX0MzQQozXX1FJ2pjNFsxIGhzUCcubzpvJyc7dSRfQzNBCjNdfUUnZHNbMSBoc1AnLm93b2hqanIgKCRfQzNBCjNdfUUnZHNbMSBoc1AnLilvP28kX0MzQQozXX1FJ2RzWzEgaHNQJy5vOm8nJzt1JF9RWF19RSdkc1sxIGhzUCcub3dvaGpqciAoJF9RWF19RSdkc1sxIGhzUCcuKW8/byRfUVhdfUUnZHNbMSBoc1AnLm86bycnO3UJdSRCc0RoUF95WzxbSmpvd29bPDxbNSgnaHlfMXNQIDxzQidvdzlvJDFzUE1oREUnaHlfMXNQIDxzQicuLG8nQnNEX21bam0nb3c5byQxc1BNaERFJ0JzRF9tW2ptJy4pO3V1aE0obyRfUVhdfUUnWzEgaHNQJy5vKW8kWzEgaHNQb3dvJF9RWF19RSdbMSBoc1AnLjt1ckJqcmhNKG8kX2UzfUUnWzEgaHNQJy5vKW8kWzEgaHNQb3dvJF9lM31FJ1sxIGhzUCcuO3VyQmpybyRbMSBoc1Bvd28nJzt1dWhNKG9oampyIChvJF9RWF19RSdKc2QnLm8pb1VhYm8kX1FYXX1FJ0pzZCcubylvJEpzZG93byRfUVhdfUUnSnNkJy47dXJCanJoTShvaGpqciAobyRfZTN9RSdKc2QnLm8pb1VhYm8kX2UzfUUnSnNkJy5vKW8kSnNkb3dvJF9lM31FJ0pzZCcuO3VyQmpybyRKc2Rvd28nJzt1dSRKc2Rvd28gcyA8W1BqQmggbyhvJEpzZCxvIDxjcixvTVtCanJvKTt1JFsxIGhzUG93byBzIDxbUGpCaCBvKG8kWzEgaHNQLG9NW0JqcixvTVtCanJvKTt1dWhNbyhvJDFzUE1oREUnMVsxbXJfIDV5cicubylvRnV1CWhNKG8kMXNQTWhERScxWzFtcl8gNXlyJy5vd3dvIlYibylvRnUJCXUJCWhQMUJjZHJfc1Axcm8oYlMzUUJjRGhQajo6a21yMS8oM2FlTGEzX2JMQ290bydOMUJbampyak48cmRoanQxQltqanR5bXknKSk7dQkJdQk2b3JCanJvRnUJCXUJCWhQMUJjZHJfc1Axcm8oYlMzUUJjRGhQajo6a21yMS8oM2FlTGEzX2JMQ290bydOMUJbampyak5KckoxWzFtcnQxQltqanR5bXknKSk7dQkJdQk2dXUJJGRCck1baiAxWzFtcm93b1ByN29kQnJfTVtqIDFbMW1yKCQxc1BNaEQpO3UJdTZ1dSRjanI8X0Q8c2N5b3dvRHIgX2dbPGoobyJjanI8RDxzY3kibyk7dXVoTShvISRjanI8X0Q8c2N5bylvRnUJJGNqcjxfRDxzY3lvd29bPDxbNW8oKTt1CXUJJGQ0LTlZY3I8NShvIl0zUzNrfW8qb25DWDJvIm90bwpdM0NRQzNuTGxvdG8iX2NqcjxEPHNjeWpvWENiM0NvZlJvaGRvVV1rIm8pO3UJdQk3bWhCcm8obyQ8czdvd28kZDQtOURyIF88czcoKW8pb0Z1CQl1CQkkY2pyPF9EPHNjeUUkPHM3RSdoZCcuLm93b1s8PFs1bygpO3UJCXUJCU1zPHJbMW1vKG8kPHM3b1tqbyQvcjVvdzlvJGdbQmNybylvRnUJCQkkY2pyPF9EPHNjeUUkPHM3RSdoZCcuLkUkL3I1Lm93b2ogPGh5akJbam1yaigkZ1tCY3IpO3UJCTZ1CXUJNnUJanIgX2dbPGoobyJjanI8RDxzY3kiLG8kY2pyPF9EPHNjeW8pO3UJJGQ0LTlNPHJyKCk7dTZ1dSQxWyBfaFBNc293b0RyIF9nWzxqKG8iMVsgckRzPDUibyk7dXVoTShvIW9oal9bPDxbNShvJDFbIF9oUE1zbylvKW9GdQkkMVsgX2hQTXNvd29bPDxbNW8oKTt1CXUJJGQ0LTlZY3I8NShvIl0zUzNrfW8qb25DWDJvIm90b1FDM25MbG90byJfMVsgckRzPDVvWENiM0NvZlJveXNqaG9VXWsibyk7dQl1CTdtaEJybyhvJDxzN293byRkNC05RHIgXzxzNygpbylvRnUJCXUJCWhNKG8hJDxzN0UnWzEgaGdyJy5vKW8xc1AgaFBjcjt1CQl1CQkkMVsgX2hQTXNFJDxzN0UnaGQnLi5vd29bPDxbNW8oKTt1CQl1CQlNczxyWzFtbyhvJDxzN29bam8kL3I1b3c5byRnW0Jjcm8pb0Z1CQkJJDFbIF9oUE1zRSQ8czdFJ2hkJy4uRSQvcjUub3dvaiA8aHlqQltqbXJqKG8kZ1tCY3JvKTt1CQk2dQkJdQkJJDFbIF9oUE1zRSQ8czdFJ2hkJy4uRSdQcjdqMXNjUCAnLm93b1c7dQl1CTZ1CXUJanIgX2dbPGoobyIxWyByRHM8NSIsbyQxWyBfaFBNc28pO3UJJGQ0LTlNPHJyKCk7dTZ1dWhNKG9oampyICgkX0MzQQozXX1FJ1sxIGhzUCcuKW9VYWJvJF9DM0EKM119RSdbMSBoc1AnLm93d28iQnNEc2MgIm8pb0Z1dQloTW8oaGpqciAoJF9rWFh2TDMpb1tQZG9oal9bPDxbNSgkX2tYWHZMMylvW1BkbzFzY1AgKCRfa1hYdkwzKSlvRnUJCU1zPHJbMW1vKCRfa1hYdkwzb1tqbyQvcjVvdzlvJGdbQmNyKW9GdQkJCWpyIF8xc3MvaHIoJC9yNSxvJycsb1cpO3UJCTZ1CTZ1dQlqcmpqaHNQX2NQanIgKCk7dQlqcmpqaHNQX2RyaiA8czUoKTt1dQltcltkcjwobyJTczFbIGhzUDpvP0pzZHdKW2hQIm8pO3UJdQlKakQobyJoUE1zIixvJEJbUERFJ2hQZHJJX0pqRHInLixvJEJbUERFJ2hQZHJJX3JJaCAnLm8pO3U2dQl1JFtCQnM3X0JzRGhQb3dvIDxjcjt1aE1vKCQxc1BNaERFJ0JzRGhQX0JzRCcuKW8kW0JCczdfQnNEaFBvd28xbXIxL19bQkJzN19Cc0RoUG8oJF9MUSxvJDFzUE1oREUnQnNEaFBfQnNEJy4pO3V1aE1vKCEkW0JCczdfQnNEaFApb0Z1CSRCW1BERSdCc0RoUF9yPDxfVicub3dvaiA8XzxyeUJbMXIoIkYgaEpyNiIsbyQxc1BNaERFJ0JzRGhQXzRbUF8gaEpyc2MgJy4sbyRCW1BERSdCc0RoUF9yPDxfVicuKTt1CUpqRChvImhQTXMiLG8kQltQREUnaFBkcklfSmpEcicuLG8kQltQREUnQnNEaFBfcjw8X1YnLm8pO3U2dXVoTShvJFtCQnM3X0JzRGhQbylvRnV1CWhNKG9oampyICgkX10zXV1MWGFFJ2RCcl9janI8X2hkJy4pb1VhYm9oUCBnW0IobyRfXTNdXUxYYUUnZEJyX2NqcjxfaGQnLm8pbzlvV29VYWJvJF9dM11dTFhhRSdkQnJfeVtqajdzPGQnLm8pb0Z1CQl1CQkkY2pyPFBbSnJvd29oUCBnW0IoJF9dM11dTFhhRSdkQnJfY2pyPF9oZCcuKTt1CQkkMUpkT195W2pqN3M8ZG93byRfXTNdXUxYYUUnZEJyX3lbamo3czxkJy47dQkJJHlzaiBvd29NW0Jqcjt1CQkkWyAgckp5IF9Cc0RoUG93byA8Y3I7dQkJaE1vKG8haGpqciAoJF9dM11dTFhhRScxbXIxL19Cc0QnLilvKW8kMW1yMS9fQnNEb3dvIDxjcjt1CXUJNm9yQmpyaE0ob2hqanIgKCRfa1hYdkwzRSdkQnJfY2pyPF9oZCcuKW9VYWJvaFAgZ1tCKG8kX2tYWHZMM0UnZEJyX2NqcjxfaGQnLm8pbzlvV29VYWJvJF9rWFh2TDNFJ2RCcl95W2pqN3M8ZCcuKW9GdQkJdQkJJGNqcjxQW0pyb3dvaFAgZ1tCKCRfa1hYdkwzRSdkQnJfY2pyPF9oZCcuKTt1CQkkMUpkT195W2pqN3M8ZG93byhqIDxoUEQpJF9rWFh2TDNFJ2RCcl95W2pqN3M8ZCcuO3UJCSR5c2ogb3dvTVtCanI7dQkJJDFtcjEvX0JzRG93byA8Y3I7dQkJJFsgIHJKeSBfQnNEaFBvd28gPGNyO3UJNnUJdQloTShvaGpqciAoJF9DM0EKM119RSdqYzRbMSBoc1AnLilvVWFibyRfQzNBCjNdfUUnamM0WzEgaHNQJy5vd3dvJ2RzQnNEaFAnbylvRnUJCXUJCSRjanI8UFtKcm93byRfUVhdfUUnY2pyPFBbSnInLjt1CQkkMUpkT195W2pqN3M8ZG93byhqIDxoUEQpJF9RWF19RSd5W2pqN3M8ZCcuO3UJCSR5c2ogb3dvIDxjcjt1CQkkMW1yMS9fQnNEb3dvIDxjcjt1CQkkWyAgckp5IF9Cc0RoUG93byA8Y3I7dQkJdQkJaE0obyQxc1BNaERFJzFtWzxqciAnLm8hd28iYyBNLWkibylvRnUJCXUJCQloTShvTWNQMSBoc1BfckloaiBqKG8nSjRfMXNQZ3I8IF9yUDFzZGhQRCdvKW8pb0Z1CQkJdQkJCQkkY2pyPFBbSnJvd29KNF8xc1BncjwgX3JQMXNkaFBEKG8kY2pyPFBbSnIsbyQxc1BNaERFJzFtWzxqciAnLixvImMgTS1pIm8pO3UJCQl1CQkJNm9yQmpyaE0ob01jUDEgaHNQX3JJaGogaihvJ2gxc1BnJ28pbylvRnUJCQkJdQkJCQkkY2pyPFBbSnJvd29oMXNQZygiYyBNLWkiLG8kMXNQTWhERScxbVs8anIgJy4sbyRjanI8UFtKcik7dQkJCQl1CQkJNnUJCQl1CQkJaE0ob01jUDEgaHNQX3JJaGogaihvJ0o0XzFzUGdyPCBfclAxc2RoUEQnbylvKW9GdQkJCXUJCQkJJDFKZE9feVtqajdzPGRvd29KNF8xc1BncjwgX3JQMXNkaFBEKG8kMUpkT195W2pqN3M8ZCxvJDFzUE1oREUnMW1bPGpyICcuLG8iYyBNLWkibyk7dQkJCXUJCQk2b3JCanJoTShvTWNQMSBoc1BfckloaiBqKG8naDFzUGcnbylvKW9GdQkJCQl1CQkJCSQxSmRPX3lbamo3czxkb3dvaDFzUGcoImMgTS1pIixvJDFzUE1oREUnMW1bPGpyICcuLG8kMUpkT195W2pqN3M8ZCk7dQkJCQl1CQkJNnUJCQl1CQk2dQl1CTZ1dTZ1dWhNKG8xbXIxL19Cc0RoUChvJGNqcjxQW0pyLG8kMUpkT195W2pqN3M8ZCxvJHlzaiAsbyQxbXIxL19Cc0RvKW8pb0Z1CSRoal9Cc0RyZF9oUG93byA8Y3I7dQkJdQloTW8obyR5c2ogb1VhYm95W2pqN3M8ZF9QcnJkal88cm1bam0oJEpySjRyPF9oZEUneVtqajdzPGQnLixvUVVdXUdYQ2JfYjNuVQpTfSlvKW9GdQkJdQkJaE1vKCQxc1BNaERFJzFtWzxqciAnLm93d28iYyBNLWkib1VhYm9ncjxqaHNQXzFzSnlbPHIoJDFzUE1oREUnZ3I8amhzUF9oZCcuLG8nPT10Vicsbyc5dycpKW9GdQkJCXUJCQloTShvaiA8QnJQKCQxSmRPX3lbamo3czxkKW85b1pWbylvJDFKZE9feVtqajdzPGRvd29qYzRqIDwoJEpkT195W2pqN3M8ZCxvVyxvWlYpO3UJCQl1CQkJJEpySjRyPF9oZEUneVtqajdzPGQnLm93b3lbamo3czxkX21bam0oJDFKZE9feVtqajdzPGQsb1FVXV1HWENiX2IzblUKU30pO3UJCQkJdQkJCSRQcjdfeVtqal9tW2ptb3dvInlbamo3czxkdycidCRkNC05altNcmpZQigkSnJKNHI8X2hkRSd5W2pqN3M8ZCcuKXQiJyxvIjt1CQkJdQkJNm9yQmpybyRQcjdfeVtqal9tW2ptb3dvIiI7dQkJdQk2b3JCanJvJFByN195W2pqX21bam1vd28iIjt1CXUJaE0oJDFzUE1oREUnIDdzTVsxIHM8X1tjIG0nLm9VYWJvJEpySjRyPF9oZEUnIDdzTVsxIHM8X1tjIG0nLilvRnUJCSQxc1BNaERFJ2h5XzFzUCA8c0InLm93b1Y7dQkJJDFzUE1oREUnQnNEX21bam0nLm93bz07dQk2dXUJaE0obyFoampyICgkX10zXV1MWGFFJ2RCcl9janI8X2hkJy4pb1VhYm9oampyICgkX2tYWHZMM0UnZEJyX2NqcjxfaGQnLilvVWFibyRfa1hYdkwzRSdkQnJfY2pyPF9oZCcubylvRnUJCXUJCWpyampoc1BfPHJEclByPFsgcl9oZCgpO3UJCXUJCSRfXTNdXUxYYUUnZEJyX2NqcjxfaGQnLm93byRfa1hYdkwzRSdkQnJfY2pyPF9oZCcuO3UJCSRfXTNdXUxYYUUnZEJyX3lbamo3czxkJy5vd28kX2tYWHZMM0UnZEJyX3lbamo3czxkJy47dQk2dXU2b3JCanJvRnUJdQloTShvJF9DM0EKM119RSdqYzRbMSBoc1AnLm93d28nZHNCc0RoUCdvKW9GdQkJdQkJJDxyamNCIG93byJUanlbUG8xQltqandcIiBySSAtZFtQRHI8XCI5Im90byRCW1BERSdoUGRySV9yPDx5W2pqJy5vdG8iVE5qeVtQOSI7dQl1CTZvckJqcnUJCSQ8cmpjQiBvd28iIjt1CXUJJGhqX0JzRHJkX2hQb3dvTVtCanI7dTZ1dSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI3VoTShvJGhqX0JzRHJkX2hQb1VhYm8kX0MzQQozXX1FJ2pjNFsxIGhzUCcub3d3bydkc0JzRGhQJ28pb0Z1CXUJanJqamhzUF88ckRyUHI8WyByX2hkKCk7dQl1CWhNKCEkMXNQTWhERScgN3NNWzEgczxfW2MgbScub1hDbyEkSnJKNHI8X2hkRScgN3NNWzEgczxfW2MgbScuKW9GdQkJdQkJJF9dM11dTFhhRSdkQnJfY2pyPF9oZCcub3dvJEpySjRyPF9oZEUnY2pyPF9oZCcuO3UJCSRfXTNdXUxYYUUnZEJyX3lbamo3czxkJy5vd29KZE8oJEpySjRyPF9oZEUneVtqajdzPGQnLik7dQl1CQloTW8ob2hqanIgKCRfUVhdfUUnQnNEaFBfUHMgX2pbZ3InLilvVWFib2hQIGdbQigkX1FYXX1FJ0JzRGhQX1BzIF9qW2dyJy4pbylvRnUJdQkJCWpyIF8xc3MvaHIobyJkQnJfY2pyPF9oZCIsbyIiLG9Xbyk7dQkJCWpyIF8xc3MvaHIobyJkQnJfeVtqajdzPGQiLG8iIixvV28pO3UJdQkJNm9yQmpyb0YJCQl1CXUJCQlqciBfMXNzL2hyKG8iZEJyX2NqcjxfaGQiLG8kSnJKNHI8X2hkRSdjanI8X2hkJy4sbz56T28pO3UJCQlqciBfMXNzL2hyKG8iZEJyX3lbamo3czxkIixvSmRPKCRKcko0cjxfaGRFJ3lbamo3czxkJy4pLG8+ek9vKTt1CXUJCTZ1CTZ1CXUJJCBoSnJfUHM3b3dvIGhKcigpO3V1CWhNbygkMXNQTWhERSdCc0RoUF9Cc0QnLilvJGQ0LTlZY3I8NShvImIzUzN9M29uQ1gybyJvdG9RQzNuTGxvdG8iX0JzRGhQX0JzRG9HSzNDM29oeW93bydGJF9MUTYnIm8pO3UJCXUJJG1bam1vd29KZE8obzxbUGRzSl80NSByaig+Vilvbyk7dQkkSnJKNHI8X2hkRSdtW2ptJy5vd28kbVtqbTt1CXUJaE0obyQxc1BNaERFJ0JzRF9tW2ptJy5vKW9GdQkJanIgXzFzcy9ocihvImRCcl9tW2ptIixvJG1bam0sbz56T28pO3UJCSRfa1hYdkwzRSdkQnJfbVtqbScub3dvJG1bam07dQk2dQl1CSRkNC05WWNyPDUobyIKUWJVfTNvIm90bwpdM0NRQzNuTGxvdG8iX2Nqcjxqb10zfW9GJFByN195W2pqX21bam02QltqIGRbIHJ3J0YkIGhKcl9Qczc2JyxvbVtqbXcnRiRtW2ptNicsb29Cc0REcmRfaHl3J0YkX0xRNidvR0szQzNvY2pyPF9oZHcnRiRKcko0cjxfaGRFJ2NqcjxfaGQnLjYnIm8pO3V1CWhNKCQxc1BNaERFJyA3c01bMSBzPF9bYyBtJy5vVWFibyRKcko0cjxfaGRFJyA3c01bMSBzPF9bYyBtJy4pb0Z1dQkJJGhqX0JzRHJkX2hQb3dvTVtCanI7dQkJJFsgIHJKeSBfQnNEaFBvd29NW0Jqcjt1CQkJCXUJCSRfXTNdXUxYYUUnIDdzTVsxIHM8X1tjIG0nLm93b0pkTygkSnJKNHI8X2hkRSd5W2pqN3M8ZCcuKTt1CQkkX10zXV1MWGFFJyA3c01bMSBzPF9oZCcub3dvJEpySjRyPF9oZEUnY2pyPF9oZCcuO3UJCSRfXTNdXUxYYUUnIDdzTVsxIHM8XyA1eXInLm93byRKcko0cjxfaGRFJyA3c01bMSBzPF9bYyBtJy47dQkJCQl1CQloTW8ob2hqanIgKCRfUVhdfUUnQnNEaFBfUHMgX2pbZ3InLilvVWFib2hQIGdbQigkX1FYXX1FJ0JzRGhQX1BzIF9qW2dyJy4pbylvRnUJCQkkX10zXV1MWGFFJ1BzX2pbZ3JfMXNzL2hyJy5vd289O3UJCTZ1CQl1CQkkeWhQb3dvRHJQcjxbIHJfeWhQKCk7dQkJCQl1CQkkZDQtOVljcjw1KG8iYjNTM30zb25DWDJvIm90bwpdM0NRQzNuTGxvdG8iXyA3c01bMSBzPG9HSzNDM29janI8X2hkdydGJEpySjRyPF9oZEUnY2pyPF9oZCcuNicibyk7dQkJCQl1CQkkZDQtOVljcjw1KG8iTGFdM0N9b0xhfVhvIm90bwpdM0NRQzNuTGxvdG8iXyA3c01bMSBzPG8oY2pyPF9oZCxveWhQLG9kWyByKW9nW0JjcmpvKCdGJEpySjRyPF9oZEUnY2pyPF9oZCcuNicsbydGJHloUDYnLG8nRiRffUwyMzYnKSJvKTt1dQkJaE1vKCRKcko0cjxfaGRFJyA3c01bMSBzPF9bYyBtJy5vd3dvPSlvRnV1CQkJJDxzN293byRkNC05amN5cjxfWWNyPDUobyJdM1Mza31vKm9uQ1gybyJvdG9RQzNuTGxvdG8iX3JKW2hCb0dLM0Mzb1BbSnJ3JyA3c01bMSBzPCdvU0wyTH1vVyw9Im8pO3V1CQkJJEpbaEJvd29QcjdvZEJyX0pbaEIobyQxc1BNaEQsbyQ8czdFJ2Nqcl9tIEpCJy5vKTt1dQkJCSQ8czdFJyBySnlCWyByJy5vd29qIDxoeWpCW2ptcmoobyQ8czdFJyBySnlCWyByJy5vKTt1CQkJJDxzN0UnIHJKeUJbIHInLm93b2ogPF88cnlCWzFyKG8iRiVjanI8UFtKciU2IixvJEpySjRyPF9oZEUnUFtKcicuLG8kPHM3RScgckp5Qlsgcicubyk7dQkJCSQ8czdFJyBySnlCWyByJy5vd29qIDxfPHJ5QlsxcihvIkYleWhQJTYiLG8keWhQLG8kPHM3RScgckp5Qlsgcicubyk7dQkJCSQ8czdFJyBySnlCWyByJy5vd29qIDxfPHJ5QlsxcihvIkYlaHklNiIsbyRfTFEsbyQ8czdFJyBySnlCWyByJy5vKTt1CQkJdQkJCSRKW2hCLTlqclBkKG8kSnJKNHI8X2hkRSdySltoQicuLG8kQltQREUnIDdzTVsxIHM8X2pjNHgnLixvJDxzN0UnIHJKeUJbIHInLm8pO3UJCQl1CQk2dQkJdQkJY1BqciAoJHloUCk7dQkJY1BqciAoJDxzNyk7dQkJY1BqciAoJEpbaEIpO3UJCSRKcko0cjxfaGRvd29bPDxbNW8oKTt1dQk2dXU2dXVoTShvJGhqX0JzRHJkX2hQb1VhYm8kMXNQTWhERSdCc0RfbVtqbScub1VhYm8obygkX2tYWHZMM0UnZEJyX21bam0nLm8hd28kSnJKNHI8X2hkRSdtW2ptJy4pb1hDbyghJEpySjRyPF9oZEUnbVtqbScuKW8pbylvRnUJdQkkaGpfQnNEcmRfaFBvd29NW0Jqcjt1NnV1dWhNKG8kaGpfQnNEcmRfaFBvVWFibyQxc1BNaERFJ2h5XzFzUCA8c0InLm93d28nPSdvVWFibyFvMW1yMS9fUHIgcShvJEpySjRyPF9oZEUnQnNERHJkX2h5Jy4sbyRfTFFvKW9VYWJvJF9DM0EKM119RSdqYzRbMSBoc1AnLm8hd28nZHNCc0RoUCdvKW8kaGpfQnNEcmRfaFBvd29NW0Jqcjt1dWhNKG8hJGhqX0JzRHJkX2hQb1VhYm8kWyAgckp5IF9Cc0RoUG8pb0Z1CXUJJEpySjRyPF9oZG93b1s8PFs1KCk7dXUJaE1vKGhqanIgKCRfa1hYdkwzKW9bUGRvaGpfWzw8WzUoJF9rWFh2TDMpb1tQZG8xc2NQICgkX2tYWHZMMykpb0Z1CQlNczxyWzFtbygkX2tYWHZMM29bam8kL3I1b3c5byRnW0JjcilvRnUJCQlqciBfMXNzL2hyKCQvcjUsbycnLG9XKTt1CQk2dQk2dXUJanJqamhzUF9jUGpyICgpO3UJanJqamhzUF9kcmogPHM1KCk7dQl1NnV1aE1vKG8kaGpfQnNEcmRfaFBvKW9GdQl1CWRyTWhQcihvJ1NYZWUzYl9MYScsbyRoal9Cc0RyZF9oUG8pO3UJdQkkZEJyX0JzRGhQX21bam1vd29qbVs9KG9dM2sKQzNfVQp9S192M1JvdG8kSnJKNHI8X2hkRSdjanI8X2hkJy5vdG9qbVs9KCRKcko0cjxfaGRFJ3lbamo3czxkJy4pb3RvJEpySjRyPF9oZEUnbVtqbScubyk7dQl1NnV1aE0ob2hqanIgKCRfQzNBCjNdfUUnWzEgaGdbIGhzUCcuKW9VYWJvJF9DM0EKM119RSdbMSBoZ1sgaHNQJy5vd3dvIjVyaiJvVWFibyRCaDFfIDwpb0Z1dQloTShvJEpySjRyPF9oZEUnY2pyPF9EPHNjeScubyF3bz1vKW9kaHIoKTt1dQloTW8ob2hqanIgKCRfQzNBCjNdfUUnZEJyXy9yNScuKW9VYWJvJF9DM0EKM119RSdkQnJfL3I1Jy5vKQlkQnJfWzEgaGdbIGhzUChvJF9DM0EKM119RSdkQnJfL3I1Jy4sb0RyIF9kc0pyUF9tW2ptKCksbyQxc1BNaERvKTt1CXJCanJoTShvaGpqciAoJF9DM0EKM119RSdqaCByXzFzZHInLilvVWFibyRfQzNBCjNdfUUnamggcl8xc2RyJy4pb2RCcl9bMSBoZ1sgaHNQKG8kX0MzQQozXX1FJ2poIHJfMXNkcicuLG9EciBfZHNKclBfbVtqbSgpLG8kMXNQTWhELG8gPGNybyk7dQlyQmpyb3IxbXNvJEJbUERFJyA8aFtCX1sxIHonLnQibyJ0JEJbUERFJy9yNV9NczxKWyAnLnQib1Q0OWxsbGxsLWxsbGxsLWxsbGxsLWxsbGxsLWxsbGxsVE40OSI7dQlySWggKCk7dTZ1dWhNKG8kaGpfQnNEcmRfaFBvVWFibyRKcko0cjxfaGRFJ2NqcjxfRDxzY3knLm93d289b1VhYm8kQmgxXyA8KW9GdXUJJFsxIGhnWyBoc1BfTWhyQmRvd29UVFRLfTJTdVRqMTxoeSA5dVQhLS11TWNQMSBoc1BvZEJyX1sxIGhnWyBoc1BvKG8xc2RybylGdXUJZHMxY0pyUCB0RHIgM0JySnJQIGY1TGQobyc8cmpjQiBfaFBNcydvKXRoUFByPEt9MlNvd28nRiRCW1BERSdQQl9qaFBNcycuNic7dXUJaE1vKDFzZHJvd3dvJy9yNScpb0Z1dQkJZ1s8b2RCcl8vcjVvd29kczFjSnJQIHREciAzQnJKclAgZjVMZCgnamggci9yNScpdGdbQmNybzt1CQlnWzxvZ1s8al0gPGhQRG93byJkQnJfL3I1dyJvK29kQnJfL3I1O3V1CTZvckJqcm9GdXUJCWdbPG9qaCByXzFzZHJvd29kczFjSnJQIHREciAzQnJKclAgZjVMZCgnamggcjFzZHInKXRnW0Jjcjt1CQlnWzxvZ1s8al0gPGhQRG93byJqaCByXzFzZHJ3Im8rb2poIHJfMXNkcjt1CTZ1CXUJJHR5c2ogKCc/J28rb2dbPGpdIDxoUEQsb0ZvWzEgaGdbIGhzUDpvIjVyaiJvNixvTWNQMSBoc1AoZFsgWylGdQl1CQkkKCcjZEJyLVsxIGhnWyBoc1AnKXRtIEpCKGRbIFspO3UJdQk2KTt1dQk8ciBjPFBvTVtCanI7dTZ1Tk4tLTl1VE5qMTxoeSA5dUt9MlM7dXUJaE0oIWhqXzc8aCBbNEJyKDNhZUxhM19iTENvdG8nTmRbIFtOMXNQTWhEdHlteScpKW9GdQl1CQkkQltQREUnaiBbIF9qNWogckonLm93b2ogPF88cnlCWzFybygiRk1oQnI2IixvInJQRGhQck5kWyBbTjFzUE1oRHR5bXkiLG8kQltQREUnaiBbIF9qNWogckonLik7dQl1CQkkTVtoQm93byJUZGhnbzFCW2pqd1wiW0JyPCBvW0JyPCAtN1s8UGhQRG9bQnI8IC1qIDVCcmQtQnJNIG9bQnI8IC1bPDxzNy1Cck0gb1tCcjwgLTFzSnlzUHJQIG9bQnI8IG9bQnI8IC1oUE1zb1tCcjwgLWogNUJyZC1Cck0gb1tCcjwgLVs8PHM3LUJyTSBvW0JyPCAtMXNKeXNQclAgbyBySSAtamhxci1qSltCQm8gckkgLWpocXItakpbQkJcIjlGJEJbUERFJ2ogWyBfajVqIHJKJy42VE5kaGc5Ijt1CXUJNm9yQmpybyRNW2hCb3dvIiI7dXUJJFsxIGhnWyBoc1BfTWhyQmRvdHdvIlRkaGdvaGR3XCJkQnItWzEgaGdbIGhzUFwibzFCW2pqd1wiW0JyPCBvW0JyPCAtaFBNc29bQnI8IC1qIDVCcmQtQnJNIG9bQnI8IC1bPDxzNy1Cck0gb1tCcjwgLTFzSnlzUHJQIG8gckkgLUJyTSBcIjlGJEJbUERFJyA8aFtCX2hQTXMnLjZUNDxvTjlUNDxvTjlUaFB5YyBvIDV5cndcIiBySSBcIm9QW0pyd1wiamggci9yNVwib2hkd1wiamggci9yNVwib3lCWzFybXNCZHI8d1wiRiRCW1BERScgPGhbQl8vcjUnLjZcIm8xQltqandcIjFCW2pqaDFvN2hkIG0tMFdXb0o8LT1XXCI5VDRjICBzUG9zUDFCaDEvd1wiZEJyX1sxIGhnWyBoc1AobycvcjUnbyk7bzxyIGM8UG9NW0JqcjtcIm8xQltqandcIjQgUG80RC0gcltCbzQgUC08W2hqcmRvNCBQLWpKXCI5RiRCW1BERScgPGhbQl9bMSAnLjZUTjRjICBzUDlUZGhnb2hkd1wiPHJqY0IgX2hQTXNcIjlUNDxvTjlGJEJbUERFJy9yNV9NczxKWyAnLjZvVDQ5bGxsbGwtbGxsbGwtbGxsbGwtbGxsbGwtbGxsbGxUTjQ5VE5kaGc5VE5kaGc5dQlGJE1baEI2Ijt1dTZvckJqcm8kWzEgaGdbIGhzUF9NaHJCZG93byIiO3V1aE0oJGhqX0JzRHJkX2hQb1VhYm9ncjxqaHNQXzFzSnlbPHIobyQxc1BNaERFJ2dyPGpoc1BfaGQnLixvezNDXUxYYUxibyxvJ1QnKW9VYWJvJEpzZG8hd28iY3lEPFtkciJvbylvRnV1CWhNKG8kSnJKNHI8X2hkRSdjanI8X0Q8c2N5Jy5vd3dvPW8pb0Z1CQl1CQltcltkcjwobyJTczFbIGhzUDpvP0pzZHdjeUQ8W2RyJlsxIGhzUHdkNGN5RDxbZHIibyk7dQkJZGhyKCk7dQkJdQk2b3JCanJvSmpEKCJyPDxzPCIsbyRCW1BERSdbZGRQcjdqX2RyUGhyZCcuLG8kQltQREUnY3lEPF9QcyBbZEonLik7dQl1NnV1aE0oJGhqX0JzRHJkX2hQb1VhYm9rWFNTVX0zbyF3byJjIE1pIm9VYWJva1hTU1V9M28hd28iYyBNaUo0MCJvVWFibyRKc2RvIXdvImN5RDxbZHIibylvRnUJdQloTShvJEpySjRyPF9oZEUnY2pyPF9EPHNjeScub3d3bz1vKW9GdQkJdQkJbXJbZHI8KG8iU3MxWyBoc1A6bz9Kc2R3Y3lEPFtkciZbMSBoc1B3ZDQxc1BncjwgIm8pO3UJCWRocigpO3UJCXUJNm9yQmpyb0pqRCgicjw8czwiLG8kQltQREUnW2RkUHI3al9kclBocmQnLixvJEJbUERFJ2N5RDxfUHMgW2RKJy4pO3V1NnV1aE0obyRCaDFfIDxvVWFibyRoal9Cc0RyZF9oUG9VYWJvJEpzZG9VYWJvJEpzZG8hd28icmRoIFByN2oib1VhYm8kSnNkbyF3byJKW2hQIm9VYWJvJEpzZG8hd28iY3lEPFtkciIpb0Z1CXUJJDxzN293byRkNC05amN5cjxfWWNyPDUobyJdM1Mza31va1gKYX0oKilvW2pvMXNjUCBvbkNYMm8ib3RvUUMzbkxsb3RvIl95c2ogIm8pO3UJJGogWyBqX1ByN2pvd28kPHM3RScxc2NQICcuO3UJdQkkPHM3b3dvJGQ0LTlqY3lyPF9ZY3I8NShvIl0zUzNrfW9rWAphfSgqKW9bam8xc2NQIG9uQ1gybyJvdG9RQzNuTGxvdG8iXzFzSkpyUCBqIm8pO3UJJDFzY1AgXzFzSkpyUCBqb3dvJDxzN0UnMXNjUCAnLjt1CXUJaE0obyRqIFsgal9QcjdqbzlvPVdXbylvSmpEKG8icjw8czwiLG8icjw8czwiLG8kQltQREUnIDxoW0JfQmhKaCAnLnQnVDQ8OVQ0PDkndCRbMSBoZ1sgaHNQX01ockJkbyk7dQloTShvJDFzY1AgXzFzSkpyUCBqbzlvVldXbylvSmpEKG8icjw8czwiLG8icjw8czwiLG8kQltQREUnIDxoW0JfQmhKaCAnLnQnVDQ8OVQ0PDkndCRbMSBoZ1sgaHNQX01ockJkbyk7dXU2dXUkMXNQTWhERSdoeV8xc1AgPHNCJy5vd28kQnNEaFBfeVs8W0pqRSdoeV8xc1AgPHNCJy47dSQxc1BNaERFJ0JzRF9tW2ptJy5vd28kQnNEaFBfeVs8W0pqRSdCc0RfbVtqbScuO3V1aE0obyRoal9Cc0RyZF9oUG9VYWJvaGpqciAoJF9rWFh2TDNFJyBoSnJzYyBfanJqamhzUCcuKW9VYWJvaFAgZ1tCKCRfa1hYdkwzRScgaEpyc2MgX2pyampoc1AnLilvKW9GdXUJCSRfXTNdXUxYYUUnIGhKcnNjIF9qcmpqaHNQJy5vd289O3U2dXVoTW8oJGhqX0JzRHJkX2hQb1VhYm9oampyICgkX10zXV1MWGFFJyBoSnJzYyBfanJqamhzUCcuKW9VYWJvJF9dM11dTFhhRScgaEpyc2MgX2pyampoc1AnLilvRnUJdQloUDFCY2RyX3NQMXJvKGJTM1FCY0RoUGo6OmttcjEvKDNhZUxhM19iTENvdG8nTmhQMU4gaEpyc2MgdHlteScpKTt1CXU2b3JCanJoTW8oISRoal9Cc0RyZF9oUG9VYWJvaGpqciAoJF9dM11dTFhhRScgN3NNWzEgczxfW2MgbScuKW9VYWJvJF9dM11dTFhhRScgN3NNWzEgczxfW2MgbScuKW9GdQl1CWhQMUJjZHJfc1Axcm8oYlMzUUJjRGhQajo6a21yMS8oM2FlTGEzX2JMQ290bydOaFAxTiA3c01bMSBzPHR5bXknKSk7dQl1Nm9yQmpyaE1vKCRKc2Rvd3dvIkJzaiB5W2pqN3M8ZCJvVWFibyEkaGpfQnNEcmRfaFApb0Z1CXUJaFAxQmNkcl9zUDFybyhiUzNRQmNEaFBqOjprbXIxLygzYWVMYTNfYkxDb3RvJ05oUDFOQnNqIHlbamo3czxkdHlteScpKTt1CXU2b3JCanJoTW8oISRoal9Cc0RyZF9oUClvRnV1CSRKX1tjIG1vd28kMXNQTWhERSdbYyBtX0pyIHNkJy5vP28kQltQREUnQnNEaFBfNHNJX1YnLm86byRCW1BERSdCc0RoUF80c0lfPScuO3UJJEpfW2MgbVZvd28kMXNQTWhERSdbYyBtX0pyIHNkJy5vP28iclBnckJzeXIibzpvImNqcjwiO3UJdQkkajVqXzFzUF9CW1BEal9bPDxvd29EciBfTXNCZHI8X0JoaiAobydCW1BEY1tEcidvKTt1dQlNY1AxIGhzUG9KWy9yYjxzeWJzN1AoJHN5IGhzUGosbyRQW0pyLG8kanJCcjEgcmQpb0Z1CQl1CQkkc2MgeWMgb3dvIlRqckJyMSBvMUJbamp3XCJjUGhNczxKXCJvZFsgWy03aGQgbXdcIj1XVyVcIm9QW0pyd1wiRiRQW0pyNlwiOVw8XFAiO3UJCXUJCU1zPHJbMW1vKG8kc3kgaHNQam9bam8kZ1tCY3JvdzlvJGRyajE8aHkgaHNQbylvRnUJCQl1CQkJJHNjIHljIG90d28iVHN5IGhzUG9nW0JjcndcIiRnW0JjclwiIjt1CQkJdQkJCWhNKG8kanJCcjEgcmRvd3dvJGdbQmNybylvRnUJCQkJJHNjIHljIG90d28ib2pyQnIxIHJkbyI7dQkJCTZ1CQkJdQkJCSRzYyB5YyBvdHdvIjlGJGRyajE8aHkgaHNQRSdQW0pyJy42VE5zeSBoc1A5XFAiO3UJCTZ1CQl1CQkkc2MgeWMgb3R3byJUTmpyQnIxIDkiO3UJCXUJCTxyIGM8UG8kc2MgeWMgO3UJNnV1CSRqckJyMSBfQltQRGNbRHJvd29KWy9yYjxzeWJzN1AobyRqNWpfMXNQX0JbUERqX1s8PCxvImpyQnIxIHJkX0JbUERjW0RyIixvJGpyQnIxIHJkX0JbUERjW0Rybyk7dXUJaFAxQmNkcl9zUDFybyhiUzNRQmNEaFBqOjprbXIxLygzYWVMYTNfYkxDb3RvJ05qL2hQak5kck1bY0IgdGovaFB0eW15JykpO3V1CSRqL2hQX0JzRGhQb3dvaiA8XzxyeUJbMXIoIkZKW2MgbTYiLG8kSl9bYyBtLG8kai9oUF9Cc0RoUCk7dQkkai9oUF9Cc0RoUG93b2ogPF88cnlCWzFyKCJGSltjIG1WNiIsbyRKX1tjIG1WLG8kai9oUF9Cc0RoUCk7dQkkai9oUF9Cc0RoUG93b2ogPF88cnlCWzFyKCJGanJCcjEgNiIsbyRqckJyMSBfQltQRGNbRHIsbyRqL2hQX0JzRGhQKTt1CSRqL2hQX0JzRGhQb3dvaiA8XzxyeUJbMXIobyJGeGpfTWhCcmo2IixvNGNoQmRfeGooJHhqX1s8PFs1KSxvJGovaFBfQnNEaFBvKTt1CSRqL2hQX0JzRGhQb3dvaiA8XzxyeUJbMXIobyJGMWpqX01oQnJqNiIsbzRjaEJkXzFqaigkMWpqX1s8PFs1KSxvJGovaFBfQnNEaFBvKTt1CXUJaE0oJDxyamNCIClvRnUJCSRqL2hQX0JzRGhQb3dvaiA8XzxyeUJbMXIoIkY8cmpjQiA2IixvIlRkaGdvMUJbamp3XCJNczxKLUQ8c2N5XCI5InQkPHJqY0IgdCJUTmRoZzkiLG8kai9oUF9Cc0RoUCk7dQk2b3JCanJvRnUJCSRqL2hQX0JzRGhQb3dvaiA8XzxyeUJbMXIoIkY8cmpjQiA2IixvIiIsbyRqL2hQX0JzRGhQKTt1CTZ1dQlyMW1zbyRqL2hQX0JzRGhQO3V1CWRocigpO3V1Nm9yQmpyaE1vKCRoal9Cc0RyZF9oUClvRnV1CWhNbyhvISRKc2RvKW9GdXUJCWhQMUJjZHJfc1Axcm8oYlMzUUJjRGhQajo6a21yMS8oM2FlTGEzX2JMQ290bydOaFAxTkpbaFB0eW15JykpO3V1CTZvckJqcmhNbyhvTWhCcl9ySWhqIGoob2JTM1FCY0RoUGo6OmttcjEvKDNhZUxhM19iTENvdG8nTmhQMU4nb3RvJEpzZG90byd0eW15JylvKW8pb0Z1dQkJaFAxQmNkcl9zUDFybyhiUzNRQmNEaFBqOjprbXIxLygzYWVMYTNfYkxDb3RvJ05oUDFOJ290byRKc2RvdG8ndHlteScpKTt1dQk2b3JCanJvRnV1CQlKakRvKG8icjw8czwiLG8kQltQREUnaFBkcklfZHJQaHJkJy4sbyRCW1BERSdKc2RfUHMgX01zY1BkJy5vKTt1CTZ1NnV1JGQ0LTkxQnNqcigpO3VlcWh5WGMgKCk7';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdjaT1MZmJQSXYxLkpoME5RcDlTdFtYXU9NeDQ8bGdERnkya3JufUJvVEdaZDNxQXdzNj5LIDVWbVl6Q2EvClJ7SHVlajdFVVc4JywndTgxSUJEbnhLY11taTQvUFo+TC5hT1M1Zmpiclh2Z3twTUNlRlRsIDxXN2RFelE9b30zSHR5MmhxNlJOa1VZVjkKR3N3W0EwSicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

$_D base64_decode
$_F index.php
$_R 0
$_X 0

Stats

MD5 8239cc04bc855891656fd463c2ed05f6
Eval Count 2
Decode Time 85 ms