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: functions.inc.php
=====================================================
*/
if( !defined( 'DATALIFEENGINE' ) ) {
header( "HTTP/1.1 403 Forbidden" );
header ( 'Location: ../../../' );
die( "Hacking attempt!" );
}
if ( isset($config['auth_domain']) AND $config['auth_domain'] ) {
$domain_cookie = explode (".", clean_url( $_SERVER['HTTP_HOST'] ));
$domain_cookie_count = count($domain_cookie);
$domain_allow_count = -2;
if ( $domain_cookie_count > 2 ) {
if ( in_array($domain_cookie[$domain_cookie_count-2], array('com', 'net', 'org') )) $domain_allow_count = -3;
if ( $domain_cookie[$domain_cookie_count-1] == 'ua' ) $domain_allow_count = -3;
$domain_cookie = array_slice($domain_cookie, $domain_allow_count);
}
$domain_cookie = "." . implode (".", $domain_cookie);
if( ip2long($_SERVER['HTTP_HOST']) == -1 OR ip2long($_SERVER['HTTP_HOST']) === false) define( 'DOMAIN', $domain_cookie );
else define( 'DOMAIN', '' );
} else define( 'DOMAIN', '' );
function dle_session( $sid = false ) {
global $config;
$params = session_get_cookie_params();
if ( DOMAIN ) $params['domain'] = DOMAIN;
if (isset($config['only_ssl']) AND $config['only_ssl']) $params['secure'] = true;
session_set_cookie_params($params['lifetime'], "/", $params['domain'], $params['secure'], true);
if ( $sid ) session_id( $sid );
session_start();
}
function set_cookie($name, $value, $expires) {
global $config;
if( $expires ) {
$expires = time() + ($expires * 86400);
} else {
$expires = FALSE;
}
if (isset($config['only_ssl']) AND $config['only_ssl']) setcookie( $name, $value, $expires, "/", DOMAIN, TRUE, TRUE );
else setcookie( $name, $value, $expires, "/", DOMAIN, FALSE, TRUE );
}
function check_login($username, $md5_password, $post = true, $check_log = false) {
global $member_id, $db, $user_group, $lang, $_IP, $_TIME, $config;
if( $username == "" OR $md5_password == "" ) return false;
$result = false;
if( $post ) {
$username = $db->safesql( $username );
if( strlen($md5_password) > 72 ) $md5_password = substr($md5_password, 0, 72);
if ($config['auth_metod']) {
if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\/|\|\&\~\*\+]/", $username) ) return false;
$where_name = "email='{$username}'";
} else {
if ( preg_match( "/[\||\'|\<|\>|\"|\!|\?|\$|\@|\/|\|\&\~\*\+]/", $username) ) return false;
$where_name = "name='{$username}'";
}
$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE {$where_name}" );
if( isset($member_id['user_id']) AND $member_id['user_id'] AND $member_id['password'] AND $member_id['banned'] != 'yes' AND $user_group[$member_id['user_group']]['allow_admin'] ) {
if( is_md5hash( $member_id['password'] ) ) {
if($member_id['password'] == md5( md5($md5_password) ) ) {
$result = true;
}
} else {
if(password_verify($md5_password, $member_id['password'] ) ) {
$result = true;
}
}
}
if( !$result ) {
$member_id = array ();
$username = $db->safesql(trim( htmlspecialchars( stripslashes($username), ENT_QUOTES, $config['charset'])));
if( version_compare($config['version_id'], "9.3", '>') ) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$username."', '{$_TIME}', '{$_IP}', '89', '')" );
}
} else {
$username = intval( $username );
$member_id = $db->super_query( "SELECT * FROM " . USERPREFIX . "_users WHERE user_id='{$username}'" );
if( $member_id['user_id'] AND $member_id['password'] AND md5($member_id['password']) == $md5_password AND $user_group[$member_id['user_group']]['allow_admin'] AND $member_id['banned'] != 'yes' ) {
$result = true;
} else {
$username = $db->safesql(trim( htmlspecialchars( stripslashes($member_id['name']), ENT_QUOTES, $config['charset'])));
$member_id = array ();
if( version_compare($config['version_id'], "9.3", '>') ) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$username."', '{$_TIME}', '{$_IP}', '90', '')" );
}
}
if( $result ) {
if( !allowed_ip( $member_id['allowed_ip'] ) OR !allowed_ip( $config['admin_allowed_ip'] ) ) {
$member_id = array ();
$result = false;
if (isset($_COOKIE) and is_array($_COOKIE) and count($_COOKIE)) {
foreach ($_COOKIE as $key => $value) {
set_cookie($key, '', 0);
}
}
session_unset();
session_destroy();
msg( "info", $lang['index_msge'], $lang['ip_block'] );
}
}
if ( !$result ) {
if ($config['login_log']) $db->query( "INSERT INTO " . PREFIX . "_login_log (ip, count, date) VALUES('{$_IP}', '1', '".time()."') ON DUPLICATE KEY UPDATE count=count+1, date='".time()."'" );
} else {
if ( $check_log AND !isset($_SESSION['check_log']) ) {
if( $post ) { $a_id = 82; $extr =""; } else { $a_id = 86; if (isset($_SERVER['HTTP_REFERER']) AND $_SERVER['HTTP_REFERER']) $extr = $db->safesql(htmlspecialchars($_SERVER['HTTP_REFERER'], ENT_QUOTES)); else $extr = "Direct DLE Adminpanel"; }
if( version_compare($config['version_id'], "9.3", '>') ) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$_TIME}', '{$_IP}', '{$a_id}', '{$extr}')" );
$_SESSION['check_log'] = 1;
}
}
return $result;
}
function deletenewsbyid( $id ) {
global $config, $db;
$id = intval($id);
DLEFiles::init();
$row = $db->super_query( "SELECT user_id FROM " . PREFIX . "_post_extras WHERE news_id = '{$id}'" );
$db->query( "UPDATE " . USERPREFIX . "_users SET news_num=news_num-1 WHERE user_id='{$row['user_id']}'" );
$db->query( "DELETE FROM " . PREFIX . "_post WHERE id='{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_post_extras WHERE news_id='{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_post_extras_cats WHERE news_id='{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_poll WHERE news_id='{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_poll_log WHERE news_id='{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_post_log WHERE news_id='{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_post_pass WHERE news_id='{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_tags WHERE news_id = '{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_xfsearch WHERE news_id = '{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_logs WHERE news_id = '{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_subscribe WHERE news_id='{$id}'");
deletecommentsbynewsid( $id );
$row = $db->super_query( "SELECT images FROM " . PREFIX . "_images WHERE news_id = '{$id}'" );
if( isset($row['images']) AND $row['images']) {
$listimages = explode( "|||", $row['images'] );
foreach ( $listimages as $dataimage ) {
$dataimage = get_uploaded_image_info($dataimage);
$query = $db->safesql( $dataimage->path );
$row = $db->super_query("SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%'");
if( isset($row['count']) AND $row['count'] ) {
continue;
}
if( $dataimage->remote ) $disk = DLEFiles::FindDriver($dataimage->url);
else $disk = 0;
DLEFiles::Delete( "posts/" . $dataimage->path, $disk );
if ($dataimage->hidpi) {
DLEFiles::Delete("posts/{$dataimage->folder}/{$dataimage->hidpi}", $disk);
}
if( $dataimage->thumb ) {
DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $disk );
if ($dataimage->hidpi) {
DLEFiles::Delete("posts/{$dataimage->folder}/thumbs/{$dataimage->hidpi}", $disk);
}
}
if( $dataimage->medium ) {
DLEFiles::Delete( "posts/{$dataimage->folder}/medium/{$dataimage->name}", $disk );
if ($dataimage->hidpi) {
DLEFiles::Delete("posts/{$dataimage->folder}/medium/{$dataimage->hidpi}", $disk);
}
}
}
$db->query( "DELETE FROM " . PREFIX . "_images WHERE news_id = '{$id}'" );
}
$db->query( "SELECT * FROM " . PREFIX . "_files WHERE news_id = '{$id}'" );
while ( $row = $db->get_row() ) {
if( trim($row['onserver']) == ".htaccess") die("Hacking attempt!");
if( $row['is_public'] ) $uploaded_path = 'public_files/'; else $uploaded_path = 'files/';
DLEFiles::Delete( $uploaded_path.$row['onserver'], $row['driver'] );
}
$db->query( "DELETE FROM " . PREFIX . "_files WHERE news_id = '{$id}'" );
$sql_result = $db->query( "SELECT user_id, favorites FROM " . USERPREFIX . "_users WHERE favorites LIKE '%{$id}%'" );
while ( $row = $db->get_row($sql_result) ) {
$temp_fav = explode( ",", $row['favorites'] );
$new_fav = array();
foreach ( $temp_fav as $value ) {
$value = intval($value);
if($value != $id ) $new_fav[] = $value;
}
if(count($new_fav)) $new_fav = $db->safesql(implode(",", $new_fav));
else $new_fav = "";
$db->query( "UPDATE " . USERPREFIX . "_users SET favorites='{$new_fav}' WHERE user_id='{$row['user_id']}'" );
}
}
function deleteuserbyid( $id ) {
global $config, $db;
$id = intval($id);
$row = $db->super_query("SELECT user_id, name, foto FROM " . USERPREFIX . "_users WHERE user_id='{$id}'");
if (isset($row['user_id']) AND $row['user_id']) {
if($row['foto'] AND count(explode("@", $row['foto'])) != 2) {
$url = @parse_url($row['foto']);
$row['foto'] = basename($url['path']);
$driver = DLEFiles::getDefaultStorage();
$config['avatar_remote'] = intval($config['avatar_remote']);
if ($config['avatar_remote'] > -1) $driver = $config['avatar_remote'];
DLEFiles::init($driver);
DLEFiles::Delete("fotos/" . totranslit($row['foto']));
}
$db->query("DELETE FROM " . USERPREFIX . "_pm WHERE user_from = '{$row['name']}' AND folder = 'outbox'");
$db->query("DELETE FROM " . USERPREFIX . "_pm WHERE user='{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_social_login WHERE uid='{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_banned WHERE users_id='{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_ignore_list WHERE user='{$row['user_id']}' OR user_from='{$row['name']}'");
$db->query("DELETE FROM " . PREFIX . "_notice WHERE user_id = '{$row['user_id']}'");
$db->query("DELETE FROM " . PREFIX . "_subscribe WHERE user_id='{$row['user_id']}'");
$db->query("DELETE FROM " . PREFIX . "_logs WHERE `member` = '{$row['name']}'");
$db->query("DELETE FROM " . PREFIX . "_comment_rating_log WHERE `member` = '{$row['name']}'");
$db->query("DELETE FROM " . PREFIX . "_vote_result WHERE name = '{$row['name']}'");
$db->query("DELETE FROM " . PREFIX . "_poll_log WHERE `member` = '{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_users WHERE user_id='{$row['user_id']}'");
$db->query("DELETE FROM " . USERPREFIX . "_users_delete WHERE user_id='{$row['user_id']}'");
}
}
function deletecomments( $id ) {
global $config, $db;
$id = intval($id);
DLEFiles::init();
$row = $db->super_query( "SELECT id, post_id, user_id, is_register, approve FROM " . PREFIX . "_comments WHERE id = '{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_comments WHERE id = '{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$id}'" );
if( $row['is_register'] ) {
$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num-1 WHERE user_id ='{$row['user_id']}'" );
}
if($row['approve']) $db->query( "UPDATE " . PREFIX . "_post SET comm_num=comm_num-1 WHERE id='{$row['post_id']}'" );
$db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$id}'" );
while ( $row = $db->get_row() ) {
$dataimage = get_uploaded_image_info( $row['name'] );
DLEFiles::Delete( "posts/" . $dataimage->path, $row['driver'] );
if( $dataimage->thumb ) {
DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $row['driver'] );
}
}
$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$id}'" );
if ( $config['tree_comments'] ) {
$sql_result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE parent = '{$id}'" );
while ( $row = $db->get_row( $sql_result ) ) {
deletecomments( $row['id'] );
}
}
}
function deletecommentsbynewsid( $id ) {
global $config, $db;
$id = intval($id);
DLEFiles::init();
$result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE post_id='{$id}'" );
while ( $row = $db->get_array( $result ) ) {
$db->query( "DELETE FROM " . PREFIX . "_comment_rating_log WHERE c_id = '{$row['id']}'" );
$sub_result = $db->query( "SELECT id, name, driver FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
while ( $file = $db->get_row( $sub_result ) ) {
$dataimage = get_uploaded_image_info( $file['name'] );
DLEFiles::Delete( "posts/" . $dataimage->path, $file['driver'] );
if( $dataimage->thumb ) {
DLEFiles::Delete( "posts/{$dataimage->folder}/thumbs/{$dataimage->name}", $file['driver'] );
}
}
$db->query( "DELETE FROM " . PREFIX . "_comments_files WHERE c_id = '{$row['id']}'" );
}
$result = $db->query( "SELECT COUNT(*) as count, user_id FROM " . PREFIX . "_comments WHERE post_id='{$id}' AND is_register='1' GROUP BY user_id" );
while ( $row = $db->get_array( $result ) ) {
$db->query( "UPDATE " . USERPREFIX . "_users SET comm_num=comm_num-{$row['count']} WHERE user_id='{$row['user_id']}'" );
}
$db->query( "DELETE FROM " . PREFIX . "_comments WHERE post_id='{$id}'" );
}
function deletecommentsbyuserid( $id, $ip = false ) {
global $db;
$id = intval($id);
if($ip) {
$ip = $db->safesql($ip);
$result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE ip='{$ip}' AND is_register='0'" );
} else {
$result = $db->query( "SELECT id FROM " . PREFIX . "_comments WHERE user_id='{$id}' AND is_register='1'" );
}
while ( $row = $db->get_array( $result ) ) {
deletecomments($row['id']);
}
}
function formatsize($file_size) {
if( !$file_size OR $file_size < 1) return '0 b';
$prefix = array("b", "Kb", "Mb", "Gb", "Tb");
$exp = floor(log($file_size, 1024)) | 0;
$file_size = round($file_size / (pow(1024, $exp)), 2).' '.$prefix[$exp];
$file_size = str_replace(",", ".", $file_size);
return $file_size;
}
function CheckCanGzip() {
if( headers_sent() || connection_aborted() || ! function_exists( 'ob_gzhandler' ) || ini_get( 'zlib.output_compression' ) ) return 0;
if( isset($_SERVER['HTTP_ACCEPT_ENCODING']) AND strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'x-gzip' ) !== false ) return "x-gzip";
if( isset($_SERVER['HTTP_ACCEPT_ENCODING']) AND strpos( $_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip' ) !== false ) return "gzip";
return 0;
}
function GzipOut() {
$ENCODING = CheckCanGzip();
if( $ENCODING ) {
$Contents = ob_get_contents();
ob_end_clean();
header( "Content-Encoding: $ENCODING" );
$Contents = gzencode( $Contents, 1, FORCE_GZIP );
echo $Contents;
exit();
} else {
ob_end_flush();
exit();
}
}
function allowed_ip($ip_array) {
$ip_array = trim( $ip_array );
$_IP = get_ip();
if( !$ip_array ) {
return true;
}
if( strpos($_IP, ":") === false ) {
$delimiter = ".";
} else $delimiter = ":";
$db_ip_split = explode( $delimiter, $_IP );
$ip_lenght = count($db_ip_split);
$ip_array = explode( "|", $ip_array );
foreach ( $ip_array as $ip ) {
$ip = trim( $ip );
if( $ip == $_IP ) {
return true;
} elseif( count(explode ('/', $ip)) == 2 ) {
if( maskmatch($_IP, $ip) ) return true;
} else {
$ip_check_matches = 0;
$this_ip_split = explode( $delimiter, $ip );
for($i_i = 0; $i_i < $ip_lenght; $i_i ++) {
if( $this_ip_split[$i_i] == $db_ip_split[$i_i] OR $this_ip_split[$i_i] == '*' ) {
$ip_check_matches += 1;
}
}
if( $ip_check_matches == $ip_lenght ) return true;
}
}
return false;
}
function maskmatch($IP, $CIDR) {
list ($address, $netmask) = explode('/', $CIDR, 2);
if( strpos($IP, ".") !== false AND strpos($CIDR, ".") !== false ) {
return ( ip2long($IP) & ~((1 << (32 - $netmask)) - 1) ) == ip2long ($address);
} elseif( strpos($IP, ":") !== false AND strpos($CIDR, ":") !== false ) {
if (!((extension_loaded('sockets') && defined('AF_INET6')) || @inet_pton('::1'))) {
return false;
}
$bytesAddr = unpack('n*', @inet_pton($address));
$bytesTest = unpack('n*', @inet_pton($IP));
if (!$bytesAddr || !$bytesTest) {
return false;
}
for ($i = 1, $ceil = ceil($netmask / 16); $i <= $ceil; ++$i) {
$left = $netmask - 16 * ($i - 1);
$left = ($left <= 16) ? $left : 16;
$mask = ~(0xffff >> $left) & 0xffff;
if (($bytesAddr[$i] & $mask) != ($bytesTest[$i] & $mask)) {
return false;
}
}
return true;
}
return false;
}
function msg($type, $title, $text, $back = false) {
global $lang;
$buttons = array();
if(is_array( $back )) {
$bc = 1;
foreach ($back as $key => $value) {
if($bc == 1) $color="teal";
elseif($bc == 2) $color="slate-600";
elseif($bc == 3) $color="brown-600";
else $color="primary-600";
if( $value == $lang['add_s_5'] ) $target = " target=\"_blank\"";
else $target="";
$buttons[] = "<a class=\"btn btn-sm bg-{$color} btn-raised position-left\" href=\"{$key}\"{$target}>{$value}</a>";
$bc++;
if($bc > 4) $bc = 1;
}
} elseif( $back ) {
$buttons[] = "<a class=\"btn btn-sm bg-teal btn-raised position-left\" href=\"{$back}\">{$lang['func_msg']}</a>";
}
if(count($buttons) ) {
$back = "<div class=\"panel-footer\"><div class=\"text-center\">".implode('', $buttons)."</div></div>";
} else $back ="";
if ($title == "error") $title = $lang['addnews_error'];
echoheader( "<i class=\"fa fa-comment-o position-left\"></i><span class=\"text-semibold\">{$lang['header_box_title']}</span>", $title );
if($type == "error") {
$type = "alert-danger";
} elseif ( $type == "warning" ) {
$type = "alert-warning";
} elseif ( $type == "success" ) {
$type = "alert-success";
} else $type = "alert-info";
if( is_array( $title ) ) {
$title = end($title);
}
echo <<<HTML
<div class="alert {$type} alert-styled-left alert-arrow-left alert-component message_box">
<h4>{$title}</h4>
<div class="panel-body">
<table width="100%">
<tr>
<td height="80" class="text-center">{$text}</td>
</tr>
</table>
</div>
{$back}
</div>
HTML;
echofooter();
die();
}
function echoheader($header_title, $header_subtitle) {
global $skin_header, $skin_footer, $skin_not_logged_header, $member_id, $user_group, $js_array, $css_array, $config, $lang, $is_loged_in, $mod, $action, $langdate, $db, $dle_login_hash;
if( !is_array( $header_subtitle )) $header_subtitle = array ( '' => $header_subtitle);
$breadcrumb = array( "<li><a href=\"?mod=main\"><i class=\"fa fa-home position-left\"></i>{$lang['skin_main']}</a></li>" );
foreach ($header_subtitle as $key => $value) {
if($key) {
$breadcrumb[] = "<li><a href=\"{$key}\">{$value}</a></li>";
} else {
$breadcrumb[] = "<li class=\"active\">{$value}</li>";
}
}
$breadcrumb = implode('', $breadcrumb);
include_once (DLEPlugins::Check(ENGINE_DIR . '/skins/default.skin.php'));
$js = build_js($js_array);
$css = build_css($css_array);
$skin_header = str_replace( "{js_files}", $js, $skin_header );
$skin_header = str_replace( "{css_files}", $css, $skin_header );
$skin_not_logged_header = str_replace( "{js_files}", $js, $skin_not_logged_header );
$skin_not_logged_header = str_replace( "{css_files}", $css, $skin_not_logged_header );
if( $is_loged_in ) echo $skin_header;
else echo $skin_not_logged_header;
}
function echofooter() {
global $is_loged_in, $skin_footer, $skin_not_logged_footer;
if( $is_loged_in ) echo $skin_footer;
else echo $skin_not_logged_footer;
}
function listdir($dir) {
if( is_dir($dir) ) {
$current_dir = @opendir( $dir );
if($current_dir !== false ) {
while ( $entryname = readdir( $current_dir ) ) {
if( is_dir( $dir."/".$entryname ) AND ($entryname != "." AND $entryname != "..") ) {
listdir( $dir."/".$entryname );
} elseif( $entryname != "." AND $entryname != ".." ) {
@unlink( $dir."/".$entryname );
}
}
@closedir( $current_dir );
@rmdir( $dir );
}
}
}
function totranslit($var, $lower = true, $punkt = true, $translit = true ) {
global $langtranslit;
if ( !is_string($var) ) return "";
$bads = array( '!', '*', '\'', '(', ')', ';', ':', '@', '&', '=', '+', '$', ',', '/', '?', '#', '[', ']', '%', '\', '"', '<', '>', '^', '{', '}', '|', '`', '.php' );
$var = html_entity_decode($var, ENT_QUOTES | ENT_HTML5, 'utf-8');
$var = strip_tags( $var );
$var = str_replace(chr(0), '', $var);
if ( $lower ) {
$var = dle_strtolower($var);
}
$var = str_replace( array( "
", "
", "
" ), ' ', $var );
$var = preg_replace( "/\s+/u", "-", $var );
if ( !$punkt ) {
$bads[] = '.';
}
$var = str_ireplace( $bads, '', $var );
if( $translit ) {
if (is_array($langtranslit) AND count($langtranslit) ) {
$var = strtr($var, $langtranslit);
}
if ( $punkt ) {
$var = preg_replace( "/[^a-z0-9\_\-.]+/mi", '', $var );
$var = preg_replace( '#[.]+#i', '.', $var );
} else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", '', $var );
}
$var = str_ireplace( ".php", ".ppp", $var );
$var = preg_replace( '/\-+/', '-', $var );
if( dle_strlen( $var ) > 150 ) {
$var = dle_substr( $var, 0, 150 );
if( ($temp_max = dle_strrpos( $var, '-' )) ) $var = dle_substr( $var, 0, $temp_max );
}
$var = trim( $var, '-' );
$var = trim( $var );
return $var;
}
function timezone_list(){
static $timezones = null;
if ($timezones === null) {
$timezones = [];
$offsets = [];
$now = new DateTime('now', new DateTimeZone('UTC'));
foreach (DateTimeZone::listIdentifiers() as $timezone) {
$now->setTimezone(new DateTimeZone($timezone));
$offsets[] = $offset = $now->getOffset();
$timezones[$timezone] = '(' . format_GMT_offset($offset) . ') ' . format_timezone_name($timezone);
}
array_multisort($offsets, $timezones);
}
return $timezones;
}
function format_GMT_offset($offset) {
$hours = intval($offset / 3600);
$minutes = abs(intval($offset % 3600 / 60));
return 'GMT' . ($offset !== false ? sprintf('%+03d:%02d', $hours, $minutes) : '');
}
function format_timezone_name($name) {
$name = str_replace('/', ', ', $name);
$name = str_replace('_', ' ', $name);
$name = str_replace('St ', 'St. ', $name);
return $name;
}
function langdate($format, $stamp, $servertime = false, $custom = false ) {
global $langdate, $member_id, $customlangdate;
if( is_array($custom) ) $locallangdate = $customlangdate; else $locallangdate = $langdate;
if (!$stamp) { $stamp = time(); }
$local = new DateTime('@'.$stamp);
if (isset($member_id['timezone']) AND $member_id['timezone'] AND !$servertime) {
$localzone = $member_id['timezone'];
} else {
$localzone = date_default_timezone_get();
}
if ( !in_array( $localzone, DateTimeZone::listIdentifiers() ) ) $localzone = 'Europe/Moscow';
$local->setTimeZone(new DateTimeZone($localzone));
return strtr( $local->format($format), $locallangdate );
}
function difflangdate($format, $stamp) {
global $_TIME, $langdate, $member_id, $lang, $langcommentsweekdays;
if (!is_array($langdate)) {
$langdate = array();
}
if (!is_array($langcommentsweekdays)) {
$langcommentsweekdays = array();
}
if (!$stamp) {
$stamp = $_TIME;
}
$olddate = new DateTime('@' . $stamp);
$nowdate = new DateTime('@' . $_TIME);
$yesterdaydate = new DateTime('-1 day');
if (isset($member_id['timezone']) and $member_id['timezone']) {
$localzone = $member_id['timezone'];
} else {
$localzone = date_default_timezone_get();
}
if ( !in_array( $localzone, DateTimeZone::listIdentifiers() ) ) $localzone = 'Europe/Moscow';
$olddate->setTimeZone(new DateTimeZone($localzone));
$nowdate->setTimeZone(new DateTimeZone($localzone));
$yesterdaydate->setTimeZone(new DateTimeZone($localzone));
$diff = $olddate->diff($nowdate);
$days = intval($diff->format('%a'));
$hours = intval($diff->format('%h'));
$minutes = intval($diff->format('%i'));
if ($olddate->format('Ymd') == $yesterdaydate->format('Ymd')) {
$lang_format = str_replace('{date}', $lang['time_gestern'], $lang['diffs_format']);
$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);
return $lang_format;
} elseif ($days < 1) {
if ($hours < 1) {
if ($minutes < 1) {
return $lang['now_diffs'];
} else {
return $minutes . ' ' . declination(array('', $minutes, $lang['minutes_diffs'])) . ' ' . $lang['time_diffs'];
}
} elseif ($hours <= 12) {
return $hours . ' ' . declination(array('', $hours, $lang['hours_diffs'])) . ' ' . $lang['time_diffs'];
} else {
$lang_format = str_replace('{date}', $lang['time_heute'], $lang['diffs_format']);
$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);
return $lang_format;
}
} else {
if ($days < 6) {
$lang_format = str_replace('{date}', $olddate->format('l'), $lang['diffs_format']);
$lang_format = str_replace('{time}', $olddate->format('H:i'), $lang_format);
return strtr($lang_format, $langcommentsweekdays);
} else return strtr($olddate->format($format), $langdate);
}
}
function declination($matches = array())
{
$matches[1] = strip_tags($matches[1]);
$matches[1] = str_replace(' ', '', $matches[1]);
$matches[1] = intval($matches[1]);
$words = explode('|', trim($matches[2]));
$parts_word = array();
switch (count($words)) {
case 1:
$parts_word[0] = $words[0];
$parts_word[1] = $words[0];
$parts_word[2] = $words[0];
break;
case 2:
$parts_word[0] = $words[0];
$parts_word[1] = $words[0] . $words[1];
$parts_word[2] = $words[0] . $words[1];
break;
case 3:
$parts_word[0] = $words[0];
$parts_word[1] = $words[0] . $words[1];
$parts_word[2] = $words[0] . $words[2];
break;
case 4:
$parts_word[0] = $words[0] . $words[1];
$parts_word[1] = $words[0] . $words[2];
$parts_word[2] = $words[0] . $words[3];
break;
}
$word = $matches[1] % 10 == 1 && $matches[1] % 100 != 11 ? $parts_word[0] : ($matches[1] % 10 >= 2 && $matches[1] % 10 <= 4 && ($matches[1] % 100 < 10 || $matches[1] % 100 >= 20) ? $parts_word[1] : $parts_word[2]);
return $word;
}
function CategoryNewsSelection($categoryid = 0, $parentid = 0, $nocat = TRUE, $sublevelmarker = '', $returnstring = '') {
global $cat_info, $member_id, $user_group, $mod;
if ($mod == "addnews" OR $mod == "editnews") {
if($member_id['cat_allow_addnews']) {
$allow_list = explode( ',', $member_id['cat_allow_addnews'] );
} else $allow_list = explode( ',', $user_group[$member_id['user_group']]['cat_allow_addnews'] );
} else {
$allow_list = explode( ',', $user_group[$member_id['user_group']]['allow_cats'] );
}
if( $mod != "usergroup" AND $mod != "editusers") {
$not_allow_list = explode( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
} else $not_allow_list = array();
if( $parentid == 0 ) {
if( $nocat ) $returnstring .= '<option value="0"></option>';
} else {
$sublevelmarker .= ' ';
}
if( count( $cat_info ) ) {
$root_category = array();
foreach ( $cat_info as $cats ) {
if( $cats['parentid'] == $parentid ) $root_category[] = $cats['id'];
}
if( count( $root_category ) ) {
foreach ( $root_category as $id ) {
if( ( $allow_list[0] == "all" OR in_array( $id, $allow_list ) ) OR $mod == "usergroup" OR $mod == "editusers" ) {
if( in_array( $id, $not_allow_list ) ) continue;
$returnstring .= "<option value=\"" . $id . '" ';
if( is_array( $categoryid ) ) {
foreach ( $categoryid as $element ) {
if( $element == $id ) $returnstring .= 'selected';
}
} elseif( $categoryid == $id ) $returnstring .= 'selected';
$returnstring .= '>' . $sublevelmarker . $cat_info[$id]['name'] . '</option>';
}
$returnstring = CategoryNewsSelection( $categoryid, $id, $nocat, $sublevelmarker, $returnstring );
}
}
}
return $returnstring;
}
function array_selection($array_list, $selid = 0, $parentid = 0, $sublevelmarker = '', $returnstring = '') {
$root_category = array ();
if( $parentid == 0 ) {
$returnstring .= '<option value="0"></option>';
} else {
$sublevelmarker .= ' ';
}
if( count( $array_list ) ) {
foreach ( $array_list as $list ) {
if( $list['parentid'] == $parentid ) $root_category[] = $list['id'];
}
if( count( $root_category ) ) {
foreach ( $root_category as $id ) {
$returnstring .= "<option value=\"" . $id . '" ';
if( is_array( $selid ) ) {
foreach ( $selid as $element ) {
$element = intval($element);
if( $element == $id ) $returnstring .= 'selected';
}
} elseif( intval($selid) == $id ) $returnstring .= 'selected';
$returnstring .= '>' . $sublevelmarker . $array_list[$id]['title'] . '</option>';
$returnstring = array_selection($array_list, $selid, $id, $sublevelmarker, $returnstring );
}
}
}
return $returnstring;
}
function dle_cache($prefix, $cache_id = false, $member_prefix = false) {
global $config, $is_logged, $member_id, $dlefastcache;
if( !$config['allow_cache'] ) return false;
$config['clear_cache'] = (intval($config['clear_cache']) > 1) ? intval($config['clear_cache']) : 0;
if( $is_logged ) $end_file = $member_id['user_group'];
else $end_file = "0";
if( ! $cache_id ) {
$key = $prefix;
} else {
$cache_id = md5( $cache_id );
if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file;
else $key = $prefix . "_" . $cache_id;
}
if( $config['cache_type'] ) {
if( $dlefastcache->connection > 0 ) {
return $dlefastcache->get($key);
}
}
$buffer = @file_get_contents( ENGINE_DIR . "/cache/" . $key . ".tmp" );
if ( $buffer !== false AND $config['clear_cache'] ) {
$file_date = @filemtime( ENGINE_DIR . "/cache/" . $key . ".tmp" );
$file_date = time()-$file_date;
if ( $file_date > ( $config['clear_cache'] * 60 ) ) {
$buffer = false;
@unlink( ENGINE_DIR . "/cache/" . $key . ".tmp" );
}
return $buffer;
} else return $buffer;
}
function create_cache($prefix, $cache_text, $cache_id = false, $member_prefix = false) {
global $config, $is_logged, $member_id, $dlefastcache;
if( !$config['allow_cache'] ) return false;
if( $is_logged ) $end_file = $member_id['user_group'];
else $end_file = "0";
if( ! $cache_id ) {
$key = $prefix;
} else {
$cache_id = md5( $cache_id );
if( $member_prefix ) $key = $prefix . "_" . $cache_id . "_" . $end_file;
else $key = $prefix . "_" . $cache_id;
}
if($cache_text === false) $cache_text = '';
if( $config['cache_type'] ) {
if( $dlefastcache->connection > 0 ) {
$dlefastcache->set( $key, $cache_text );
return true;
}
}
file_put_contents (ENGINE_DIR . "/cache/" . $key . ".tmp", $cache_text, LOCK_EX);
@chmod( ENGINE_DIR . "/cache/" . $key . ".tmp", 0666 );
return true;
}
function clear_cache($cache_areas = false) {
global $dlefastcache, $config;
if( $config['cache_type'] ) {
if( $dlefastcache->connection > 0 ) {
$dlefastcache->clear( $cache_areas );
return true;
}
}
if ( $cache_areas ) {
if(!is_array($cache_areas)) {
$cache_areas = array($cache_areas);
}
}
$fdir = opendir( ENGINE_DIR . '/cache' );
while ( $file = readdir( $fdir ) ) {
if( $file != '.htaccess' AND !is_dir(ENGINE_DIR . '/cache/' . $file) ) {
if( $cache_areas ) {
foreach($cache_areas as $cache_area) if( stripos( $file, $cache_area ) === 0 ) @unlink( ENGINE_DIR . '/cache/' . $file );
} else {
@unlink( ENGINE_DIR . '/cache/' . $file );
}
}
}
}
function clear_all_caches() {
global $config;
listdir( ENGINE_DIR . '/cache/system/CSS' );
listdir( ENGINE_DIR . '/cache/system/HTML' );
listdir( ENGINE_DIR . '/cache/system/URI' );
listdir( ENGINE_DIR . '/cache/system/plugins' );
$fdir = opendir( ENGINE_DIR . '/cache/system/' );
while ( $file = readdir( $fdir ) ) {
if( !is_dir(ENGINE_DIR . '/cache/system/' . $file ) AND $file != '.htaccess' AND $file != 'cron.php' ) {
@unlink( ENGINE_DIR . '/cache/system/' . $file );
}
}
if( $config['cache_type'] ) {
$fdir = opendir( ENGINE_DIR . '/cache' );
while ( $file = readdir( $fdir ) ) {
if( $file != '.htaccess' AND !is_dir(ENGINE_DIR . '/cache/' . $file) ) {
@unlink( ENGINE_DIR . '/cache/' . $file );
}
}
}
clear_cache();
if (function_exists('opcache_reset')) {
opcache_reset();
}
}
function clear_static_cache_id( $save = true ) {
$salt = str_shuffle("abchefghjkmnpqrstuvwxyz0123456789");
$new_cache_id = "";
for ($i = 0; $i < 5; $i++) {
$new_cache_id .= $salt[random_int(0, 32)];
}
if ($save AND is_writable(ENGINE_DIR . '/data/config.php')) {
include(ENGINE_DIR . '/data/config.php');
$config['cache_id'] = $new_cache_id;
$handler = fopen(ENGINE_DIR . '/data/config.php', "w");
if ($handler !== false ) {
fwrite($handler, "<?php
//System Configurations
\$config = array (
");
foreach ($config as $name => $value) {
fwrite($handler, "'{$name}' => '{$value}',
");
}
fwrite($handler, ");
?>");
fclose($handler);
}
}
return $new_cache_id;
}
function xfieldsdataload($id) {
if( $id == "" ) return;
$xfieldsdata = explode( "||", $id );
foreach ( $xfieldsdata as $xfielddata ) {
list ( $xfielddataname, $xfielddatavalue ) = explode( "|", $xfielddata );
$xfielddataname = str_replace( "|", "|", $xfielddataname );
$xfielddataname = str_replace( "__NEWL__", "
", $xfielddataname );
$xfielddatavalue = str_replace( "|", "|", $xfielddatavalue );
$xfielddatavalue = str_replace( "__NEWL__", "
", $xfielddatavalue );
$data[$xfielddataname] = $xfielddatavalue;
}
return $data;
}
function xfieldsload() {
global $lang, $config;
$path = ENGINE_DIR . '/data/xfields.txt';
$filecontents = file( $path );
$fields = array();
$tmp_arr = array();
if( !is_array( $filecontents ) ) {
return array();
} elseif( count($filecontents) ) {
foreach ( $filecontents as $name => $value ) {
if( trim($value) ) {
$tmp_arr = explode( "|", trim($value, "
") );
foreach ( $tmp_arr as $name2 => $value2 ) {
$value2 = str_replace( "|", "|", $value2 );
$value2 = str_replace( "__NEWL__", "
", $value2 );
$value2 = html_entity_decode($value2, ENT_QUOTES, $config['charset']);
$fields[$name][$name2] = $value2;
}
}
}
return $fields;
}
return array();
}
function clear_content ( $content, $len = 300, $replace_single_quote = true ) {
global $config;
if(!$content OR !is_string($content) ) {
return '';
}
$remove = array ("`", " ", "
", "
", ' ', '
', '
', "{PAGEBREAK}", " ", "<br />", "<br>", " ," );
$len = intval($len);
$content = stripslashes($content);
$content = html_entity_decode($content, ENT_QUOTES | ENT_HTML5, $config['charset'] );
$content = preg_replace( "#\[hide(.*?)\](.+?)\[/hide\]#is", "", $content );
$content = preg_replace( "'\[attachment=(.*?)\]'si", "", $content );
$content = preg_replace( "'\[page=(.*?)\](.*?)\[/page\]'si", "", $content );
$content = preg_replace( "#<!--dle_spoiler(.+?)<!--spoiler_text-->#is", "", $content );
$content = preg_replace( "#<!--spoiler_text_end-->(.+?)<!--/dle_spoiler-->#is", "", $content );
$content = preg_replace( "'{banner_(.*?)}'si", "", $content );
$content = preg_replace( "'\[banner_(.*?)\](.*?)\[/banner_(.*?)\]'si", "", $content );
$content = preg_replace( "#<pre(.*?)>(.+?)</pre>#is", "", $content );
$content = str_replace( "а", "a", $content );
$content = str_replace( "o", "o", $content );
$content = str_replace( "><", "> <", $content );
$content = str_replace( $remove, ' ', $content );
$content = strip_tags($content);
$content = preg_replace("#(^|\s|>)((http|https)://\w+[^\s\[\]\<]+)#i", '', $content);
if ($replace_single_quote) {
$content = str_replace("&amp;", "&", htmlspecialchars($content, ENT_QUOTES, $config['charset']));
} else {
$content = str_replace("&amp;", "&", htmlspecialchars($content, ENT_COMPAT, $config['charset']));
}
$content = preg_replace('/\s+/u', ' ', $content);
if( $len AND $len > 1 ) {
if(dle_strlen( $content, $config['charset'] ) > $len ) {
$content = dle_substr( $content, 0, $len, $config['charset'] );
if( ($temp_dmax = dle_strrpos( $content, ' ', $config['charset'] )) ) $content = dle_substr( $content, 0, $temp_dmax, $config['charset'] );
}
}
return trim($content);
}
function create_metatags($story, $ajax = false) {
global $config, $db;
$keyword_count = 20;
$newarr = array ();
$headers = array ();
$bad_keywords_symbol = array (",", ".", "/", "#", ":", "@", "~", "=", "-", "+", "*", "^", "%", "$", "?", "!");
$remove = array (' ', '
', '
' );
$story = explode( "{PAGEBREAK}", $story );
$story = $story[0];
$story = str_replace( $remove, ' ', $story );
$_REQUEST['meta_title'] = isset($_REQUEST['meta_title']) ? trim( str_replace($remove, ' ', $_REQUEST['meta_title']) ) : '';
$_REQUEST['descr'] = isset($_REQUEST['descr']) ? trim( str_replace($remove, ' ', $_REQUEST['descr']) ) : '';
$_REQUEST['keywords'] = isset($_REQUEST['keywords']) ? trim( str_replace($remove, ' ', $_REQUEST['keywords']) ) : '';
if( $_REQUEST['meta_title'] ) {
$headers['title'] = clear_content( $_REQUEST['meta_title'], 300, false );
$headers['title'] = $db->safesql( $headers['title'] );
} else $headers['title'] = "";
if( $_REQUEST['descr'] ) {
$headers['description'] = clear_content( $_REQUEST['descr'], 300, false );
$headers['description'] = $db->safesql( $headers['description'] );
} elseif($config['create_metatags'] OR $ajax) {
$headers['description'] = clear_content(stripslashes($story), 0, false);
if( dle_strlen( $headers['description'], $config['charset'] ) > 300 ) {
$headers['description'] = dle_substr( $headers['description'], 0, 300, $config['charset'] );
if( ($temp_dmax = dle_strrpos( $headers['description'], ' ', $config['charset'] )) ) $headers['description'] = dle_substr( $headers['description'], 0, $temp_dmax, $config['charset'] );
}
$headers['description'] = $db->safesql( $headers['description'] );
} else {
$headers['description'] = '';
}
if( $_REQUEST['keywords'] ) {
$arr = explode( ",", clear_content($_REQUEST['keywords'], 0, false) );
$newarr = array();
foreach ( $arr as $word ) {
$newarr[] = trim(str_replace($bad_keywords_symbol, '', $word));
}
$_REQUEST['keywords'] = implode( ", ", $newarr );
$headers['keywords'] = $db->safesql( $_REQUEST['keywords'] );
} elseif( $config['create_metatags'] OR $ajax) {
$story = clear_content(str_replace($bad_keywords_symbol, '', stripslashes($story)), 0, false);
$arr = explode(" ", $story );
foreach ( $arr as $word ) {
$word = str_replace("&", "&", $word);
if( dle_strlen( $word, $config['charset'] ) > 4 ) $newarr[] = $word;
}
$arr = array_count_values( $newarr );
arsort( $arr );
$arr = array_keys( $arr );
$offset = 0;
$arr = array_slice( $arr, $offset, $keyword_count );
$headers['keywords'] = $db->safesql( implode( ", ", $arr ) );
} else {
$headers['keywords'] = '';
}
return $headers;
}
function set_vars($file, $data) {
$file = totranslit($file, true, false);
if ( is_array($data) OR is_int($data) OR is_string($data) ) {
file_put_contents (ENGINE_DIR . '/cache/system/' . $file . '.php', json_encode( $data, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ), LOCK_EX);
@chmod( ENGINE_DIR . '/cache/system/' . $file . '.php', 0666 );
}
}
function get_vars($file) {
$file = totranslit($file, true, false);
$data = @file_get_contents( ENGINE_DIR . '/cache/system/' . $file . '.php' );
if ( $data !== false ) {
$data = json_decode( $data, true );
if ( is_array($data) OR is_int($data) OR is_string($data) ) return $data;
}
return false;
}
function get_folder_list( $folder = 'language' ) {
global $lang;
$allowed_folder = array( 'language', 'templates' );
$list = array ();
if( !in_array($folder, $allowed_folder) ) {
return $list;
}
if( !$handle = opendir( ROOT_DIR . "/". $folder ) ) {
$list[]['name'] = $lang['opt_errfo']." ".$folder;
return $list;
}
while ( false !== ($file = readdir( $handle )) ) {
if( is_dir( ROOT_DIR . "/".$folder."/".$file ) AND ($file != "." and $file != "..") ) {
if( is_file( ROOT_DIR . "/".$folder."/".$file."/info.json" ) ) {
$data = json_decode( trim(file_get_contents( ROOT_DIR . "/".$folder."/".$file."/info.json" ) ), true );
if( isset($data['name']) AND $data['name'] ) {
$list[$file] = $data;
continue;
}
}
$list[$file]['name'] = $file;
}
}
closedir( $handle );
ksort($list);
return $list;
}
function get_groups($id = false) {
global $user_group;
$returnstring = "";
foreach ( $user_group as $group ) {
$returnstring .= '<option value="' . $group['id'] . '" ';
if( is_array( $id ) ) {
foreach ( $id as $element ) {
if( $element == $group['id'] ) $returnstring .= 'SELECTED';
}
} elseif( $id and $id == $group['id'] ) $returnstring .= 'SELECTED';
$returnstring .= ">" . $group['group_name'] . "</option>
";
}
return $returnstring;
}
function permload($id) {
if( $id == "" ) return;
$data = array ();
$groups = explode( "|", $id );
foreach ( $groups as $group ) {
list ( $groupid, $groupvalue ) = explode( ":", $group );
$data[$groupid][1] = ($groupvalue == 1) ? "selected" : "";
$data[$groupid][2] = ($groupvalue == 2) ? "selected" : "";
$data[$groupid][3] = ($groupvalue == 3) ? "selected" : "";
}
return $data;
}
function check_xss() {
if (isset($_GET['mod']) AND isset($_GET['action']) AND $_GET['mod'] == "editnews" AND $_GET['action'] == "list") return;
if (isset($_GET['mod']) AND isset($_GET['action']) AND $_GET['mod'] == "static" AND $_GET['action'] == "list") return;
if (isset($_GET['mod']) AND ($_GET['mod'] == "tagscloud" OR $_GET['mod'] == "links" OR $_GET['mod'] == "redirects" OR $_GET['mod'] == "metatags") ) return;
$url = html_entity_decode( urldecode( $_SERVER['QUERY_STRING'] ), ENT_QUOTES, 'ISO-8859-1' );
$url = str_replace( "\", "/", $url );
if( $url ) {
if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, './' ) !== false) || (strpos( $url, '../' ) !== false) || (strpos( $url, '\'' ) !== false) || (strpos( $url, '.php' ) !== false) ) {
header( "HTTP/1.1 403 Forbidden" );
die( "Hacking attempt!" );
}
}
$url = html_entity_decode( urldecode( $_SERVER['REQUEST_URI'] ), ENT_QUOTES, 'ISO-8859-1' );
$url = str_replace( "\", "/", $url );
if( $url ) {
if( (strpos( $url, '<' ) !== false) || (strpos( $url, '>' ) !== false) || (strpos( $url, '"' ) !== false) || (strpos( $url, '\'' ) !== false) ) {
header( "HTTP/1.1 403 Forbidden" );
die( "Hacking attempt!" );
}
}
}
function clean_url($url) {
if( $url == '' ) return;
$url = str_replace( "http://", "", $url );
$url = str_replace( "https://", "", $url );
if( strtolower( substr( $url, 0, 4 ) ) == 'www.' ) $url = substr( $url, 4 );
$url = explode( '/', $url );
$url = reset( $url );
$url = explode( ':', $url );
$url = reset( $url );
return $url;
}
function get_url($id) {
global $cat_info;
$cat_id = false;
if( !$id ) return "";
$id = explode (",", $id);
foreach ($id as $val) {
$val = intval($val);
if ( isset($cat_info[$val]['id']) AND $cat_info[$val]['id'] AND $val ) {
$cat_id = $val;
break;
}
}
if( !$cat_id ) return "";
$id = $cat_id;
$parent_id = $cat_info[$id]['parentid'];
$url = $cat_info[$id]['alt_name'];
while ( $parent_id ) {
if( !$cat_info[$parent_id]['id'] ) {
break;
}
$url = $cat_info[$parent_id]['alt_name'] . "/" . $url;
$parent_id = $cat_info[$parent_id]['parentid'];
if($parent_id) {
if( $cat_info[$parent_id]['parentid'] == $cat_info[$parent_id]['id'] ) break;
}
}
return $url;
}
function convert_unicode($t, $to = '') {
// deprecated
return $t;
}
function check_netz($ip1, $ip2) {
if( strpos($ip1, ":") === false ) {
$delimiter = ".";
} else $delimiter = ":";
$ip1 = explode( $delimiter, $ip1 );
$ip2 = explode( $delimiter, $ip2 );
if( $ip1[0] != $ip2[0] ) return false;
if( $ip1[1] != $ip2[1] ) return false;
if($delimiter == ":") {
if( $ip1[2] != $ip2[2] ) return false;
if( $ip1[3] != $ip2[3] ) return false;
}
return true;
}
function compare_filter($a, $b) {
$a = explode( "|", $a );
$b = explode( "|", $b );
if( $a[1] == $b[1] ) return 0;
return strcasecmp( $a[1], $b[1] );
}
function build_js($js) {
global $config;
$js_array = array();
$i=0;
$defer = "";
if ($config['js_min']) {
$js_array[] = "<script src=\"engine/classes/min/index.php?charset={$config['charset']}&g=admin&v={$config['cache_id']}\"></script>";
if ( count($js) ) $js_array[] = "<script src=\"engine/classes/min/index.php?charset={$config['charset']}&f=".implode(",", $js)."&v={$config['cache_id']}\" defer></script>";
return implode("
", $js_array);
} else {
$default_array = array (
'engine/skins/javascripts/application.js',
);
if ( count($js) ) $js = array_merge($default_array, $js); else $js = $default_array;
foreach ($js as $value) {
if($i > 0) $defer =" defer";
$js_array[] = "<script src=\"{$value}?v={$config['cache_id']}\"{$defer}></script>";
$i++;
}
return implode("
", $js_array);
}
}
function build_css($css) {
global $config, $lang;
if($lang['direction'] == 'rtl') $rtl_prefix ='_rtl'; else $rtl_prefix = '';
$default_array = array (
"engine/skins/fonts/fontawesome/styles.min.css",
"engine/skins/stylesheets/application{$rtl_prefix}.css"
);
$css_array = array();
if ( count($css) ) $css = array_merge($default_array, $css); else $css = $default_array;
if ($config['js_min']) {
return "<link href=\"engine/classes/min/index.php?charset={$config['charset']}&f=".implode(",", $css)."&v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";
} else {
foreach ($css as $value) {
$css_array[] = "<link href=\"{$value}?v={$config['cache_id']}\" rel=\"stylesheet\" type=\"text/css\">";
}
return implode("
", $css_array);
}
}
function dle_strlen($value, $charset = "utf-8" ) {
if( function_exists( 'mb_strlen' ) ) {
return mb_strlen( $value, $charset );
} elseif( function_exists( 'iconv_strlen' ) ) {
return iconv_strlen($value, $charset);
}
return strlen($value);
}
function dle_substr($str, $start, $length, $charset = "utf-8" ) {
if( function_exists( 'mb_substr' ) ) {
return mb_substr( $str, $start, $length, $charset );
} elseif( function_exists( 'iconv_substr' ) ) {
return iconv_substr($str, $start, $length, $charset);
}
return substr($str, $start, $length);
}
function dle_strrpos($str, $needle, $charset = "utf-8" ) {
if( function_exists( 'mb_strrpos' ) ) {
return mb_strrpos( $str, $needle, 0, $charset );
} elseif( function_exists( 'iconv_strrpos' ) ) {
return iconv_strrpos($str, $needle, $charset);
}
return strrpos($str, $needle);
}
function dle_strpos($str, $needle, $charset = "utf-8" ) {
if( function_exists( 'mb_strpos' ) ) {
return mb_strpos( $str, $needle, 0, $charset );
} elseif( function_exists( 'iconv_strrpos' ) ) {
return iconv_strpos($str, $needle, 0, $charset);
}
return strpos($str, $needle);
}
function dle_strtolower($str, $charset = "utf-8" ) {
if( function_exists( 'mb_strtolower' ) ) {
return mb_strtolower( $str, $charset );
}
return strtolower($str);
}
function check_allow_login($ip, $max ) {
global $db, $config;
$config['login_ban_timeout'] = intval($config['login_ban_timeout']);
$max = intval($max);
if( $max < 2 ) $max = 2;
$block_date = time()-($config['login_ban_timeout'] * 60);
$row = $db->super_query( "SELECT * FROM " . PREFIX . "_login_log WHERE ip='{$ip}'" );
if ( isset($row['count']) AND $row['count'] AND $row['date'] < $block_date ) {
$db->query( "DELETE FROM " . PREFIX . "_login_log WHERE ip = '{$ip}'" );
return true;
}
if ( isset($row['count']) AND $row['count'] >= $max AND $row['date'] > $block_date ) return false;
else return true;
}
function detect_encoding($string) {
static $list = array('utf-8', 'windows-1251');
foreach ($list as $item) {
if( function_exists( 'mb_convert_encoding' ) ) {
$sample = mb_convert_encoding( $string, $item, $item );
} elseif( function_exists( 'iconv' ) ) {
$sample = iconv($item, $item, $string);
}
if (md5($sample) == md5($string)) return $item;
}
return null;
}
function get_ip() {
global $config;
if (isset($config['own_ip']) AND $config['own_ip']) $ip = $_SERVER[$config['own_ip']]; else $ip = $_SERVER['REMOTE_ADDR'];
$temp_ip = explode(",", $ip);
if(count($temp_ip) > 1) $ip = trim($temp_ip[0]);
if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) ) {
return filter_var( $ip , FILTER_VALIDATE_IP, FILTER_FLAG_IPV4);
}
if ( filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6) ) {
return filter_var( $ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6);
}
return 'not detected';
}
function http_get_contents( $file, $post_params = false ) {
$data = false;
if (stripos($file, "http://") !== 0 AND stripos($file, "https://") !== 0) {
return false;
}
if( function_exists( 'curl_init' ) ) {
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $file );
if( is_array($post_params) ) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_params));
}
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt($ch, CURLOPT_TIMEOUT, 5 );
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
$data = curl_exec( $ch );
curl_close( $ch );
if( $data !== false ) return $data;
}
if( preg_match('/1|yes|on|true/i', ini_get('allow_url_fopen')) ) {
if( is_array($post_params) ) {
$file .= '?'.http_build_query($post_params);
}
$data = @file_get_contents( $file );
if( $data !== false ) return $data;
}
return false;
}
function cleanpath($path) {
$path = trim(str_replace(chr(0), '', (string)$path));
$path = str_replace(array('/', '\'), '/', $path);
$path = str_replace(array('"', "'"), '', $path);
if (preg_match('#\p{C}+#u', $path)) {
return '';
}
$path = strip_tags($path);
$parts = array_filter(explode('/', $path), 'strlen');
$absolutes = array();
foreach ($parts as $part) {
if ('.' == $part OR !$part) continue;
if ('..' == $part) {
array_pop($absolutes);
} else {
$absolutes[] = $part;
}
}
return implode('/', $absolutes);
}
function is_md5hash( $md5 = '' ) {
return strlen($md5) == 32 && ctype_xdigit($md5);
}
function generate_pin(){
$pin = "";
for($i = 0; $i < 5; $i ++) {
$pin .= random_int(0, 9);
}
return $pin;
}
function send_activation( $query ) {
$data = http_get_contents("https://dle-news.ru/extras/activate2009.php?".$query);
if( $data !== false ) {
if( stripos( $data, "antw:activated" ) !== false ) return "1";
elseif( stripos( $data, "antw:denied;expires" ) !== false ) return "-4";
elseif( stripos( $data, "antw:denied" ) !== false ) return "0";
}
return "-1";
}
function get_domen_hash() {
$domen_md5 = explode( '.', $_SERVER['HTTP_HOST'] );
$count_key = count( $domen_md5 ) - 1;
unset( $domen_md5[$count_key] );
if( end( $domen_md5 ) == "com" OR end( $domen_md5 ) == "net" ) $count_key --;
$domen_md5 = $domen_md5[$count_key - 1];
$domen_md5 = md5( md5( $domen_md5 . "780918" ) );
return $domen_md5;
}
function dle_activation($key, $domen_md5, $config, $offline = false) {
global $lang;
$domain = urlencode( strip_tags( $_SERVER['HTTP_HOST'] ) );
$key = trim( strip_tags( $key ) );
@header( "Content-type: text/html; charset=utf-8" );
if ( $offline ) {
if( $key == md5( $domen_md5 . DINITVERSION ) ) {
$buffer = "1";
} else {
$buffer = "-2";
}
} else {
if( strlen( $key ) == 32 ) {
$buffer = "-3";
} else {
$buffer = send_activation( "domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID );
}
}
switch ($buffer) {
case "-4" :
$buffer = $lang['trial_act7'];
break;
case "-3" :
$buffer = $lang['trial_act6']." ".$lang['key_format']." <b>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</b>";
break;
case "-2" :
$buffer = $lang['trial_act5'];
break;
case "-1" :
$buffer = $lang['trial_act1'] . $lang['get_offline_key'] . " <a href=\"https://dle-news.ru/index.php?do=offlinekey&domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID . "\" class=\"status-error\" target=\"_blank\">" . $lang['get_key'] . "</a> " . $lang['key_activation'];
$buffer .= "<br /><br /><b>$lang[site_code]</b><span class=\"sitecodefield\"><input class=\"classic width-400 mr-10 ml-10\" type=\"text\" name=\"sitecode\" id=\"sitecode\"> <button onclick=\"dle_activation( 'code' ); return false;\" class=\"btn bg-teal btn-raised btn-sm\">{$lang['trial_act']}</button></span><div id=\"result_info\" style=\"color:red;\"></div>";
break;
case "0" :
$buffer = $lang['trial_act2'];
break;
case "1" :
include(ENGINE_DIR . '/data/config.php');
$config['key'] = md5( $domen_md5 . DINITVERSION );
$handler = fopen( ENGINE_DIR . '/data/config.php', "w" );
fwrite( $handler, "<?php
//System Configurations
\$config = array (
" );
foreach ( $config as $name => $value ) {
fwrite( $handler, "'{$name}' => '{$value}',
" );
}
fwrite( $handler, ");
?>" );
fclose( $handler );
if (function_exists('opcache_reset')) {
opcache_reset();
}
$buffer = $lang['trial_act3'];
break;
default :
$buffer = $lang['trial_act4'] . $lang['get_offline_key'] . " <a href=\"https://dle-news.ru/index.php?do=offlinekey&domain={$domain}&key={$key}&site_key={$domen_md5}&c_id=" . VERSIONID . "\" >" . $lang['get_key'] . "</a> " . $lang['key_activation'];
}
echo $buffer;
die();
}
function normalize_name($var, $punkt = true) {
if ( !is_string($var) ) return;
$var = str_replace(chr(0), '', $var);
$var = trim( strip_tags( $var ) );
$var = preg_replace( "/\s+/u", "-", $var );
$var = str_replace( "/", "-", $var );
if ( $punkt ) $var = preg_replace( "/[^a-z0-9\_\-.]+/mi", "", $var );
else $var = preg_replace( "/[^a-z0-9\_\-]+/mi", "", $var );
$var = preg_replace( '#[\-]+#i', '-', $var );
$var = preg_replace( '#[.]+#i', '.', $var );
return $var;
}
function clearfilepath( $file, $ext=array() ) {
$file = trim(str_replace(chr(0), '', (string)$file));
$file = str_replace(array('/', '\'), '/', $file);
$path_parts = pathinfo( $file );
if( count($ext) ) {
if ( !isset($path_parts['extension']) OR !in_array( $path_parts['extension'], $ext ) ) return '';
}
$filename = normalize_name($path_parts['basename'], true);
if( !$filename) return '';
$parts = array_filter(explode('/', $path_parts['dirname']), 'strlen');
$absolutes = array();
foreach ($parts as $part) {
if ('.' == $part) continue;
if ('..' == $part) {
array_pop($absolutes);
} else {
$absolutes[] = normalize_name($part, false);
}
}
$path = implode('/', $absolutes);
if ( $path ) return implode('/', $absolutes).'/'.$filename;
else return '';
}
function execute_query($id, $query) {
global $config, $db;
if(!$query) return;
if( version_compare($db->mysql_version, '5.6.4', '<') ) {
$storage_engine = "MyISAM";
} else $storage_engine = "InnoDB";
$query = str_ireplace(array("{prefix}", "{userprefix}", "{charset}", "{engine}"), array(PREFIX, USERPREFIX, COLLATE, $storage_engine), $query);
$db->query_errors_list = array();
$db->multi_query( trim($query), false );
$id = intval($id);
if( count($db->query_errors_list) ){
foreach($db->query_errors_list as $error) {
$db->query( "INSERT INTO " . PREFIX . "_plugins_logs (plugin_id, area, error, type) values ('{$id}', '".$db->safesql( htmlspecialchars( $error['query'], ENT_QUOTES, $config['charset'] ), false)."', '".$db->safesql( htmlspecialchars( $error['error'], ENT_QUOTES, $config['charset'] ) )."', 'mysql')" );
}
}
$db->query_errors_list = array();
}
function check_referer( $current_path ) {
if( !isset($_SERVER['HTTP_REFERER']) OR !$_SERVER['HTTP_REFERER']) return false;
$ref = parse_url($_SERVER['HTTP_REFERER']);
$ref['host'] = clean_url($ref['host']);
$ref['path'] = basename($ref['path']);
$current_path = html_entity_decode($current_path, ENT_QUOTES | ENT_XML1, 'UTF-8');
$curr = parse_url($current_path);
$curr['host'] = clean_url($_SERVER['HTTP_HOST']);
$curr['path'] = basename($curr['path']);
if( $ref['path'] AND $curr['path'] AND $ref['host'] AND $curr['host'] AND $ref['path'] == $curr['path'] AND $ref['host'] == $curr['host'] ) {
if( strpos($ref['query'], $curr['query']) !== false) {
return true;
}
}
return false;
}
function isSSL() {
if( (!empty($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off')
|| (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')
|| (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && strtolower($_SERVER['HTTP_X_FORWARDED_SSL']) == 'on')
|| (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443)
|| (isset($_SERVER['HTTP_X_FORWARDED_PORT']) && $_SERVER['HTTP_X_FORWARDED_PORT'] == 443)
|| (isset($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https')
|| (isset($_SERVER['CF_VISITOR']) && $_SERVER['CF_VISITOR'] == '{"scheme":"https"}')
|| (isset($_SERVER['HTTP_CF_VISITOR']) && $_SERVER['HTTP_CF_VISITOR'] == '{"scheme":"https"}')
) return true; else return false;
}
function get_uploaded_image_info( $file, $root_folder = 'posts', $force_size = false ) {
global $config;
$info = array();
$file = explode("|", $file);
$path = $file[0];
$path = str_replace(':',':', $path);
if( stripos($path, "https://" ) === 0 OR stripos($path, "http://" ) === 0 OR stripos($path, "//" ) === 0 ) {
$info['remote'] = true;
$info['local'] = false;
$info['exists'] = true;
$info['url'] = $path;
$path = explode("/{$root_folder}/", $path);
$info['path'] = $path[1];
$info['root'] = $path[0] . "/{$root_folder}/";
} else {
$info['remote'] = false;
$info['exists'] = true;
$info['path'] = $path;
$info['root'] = $config['http_home_url'] . "uploads/{$root_folder}/";
$info['url'] = $info['root'] . $info['path'];
if( !file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) ) {
$info['url'] = $config['http_home_url'] . "engine/skins/images/noimage.jpg";
$file[1] = 0;
$file[2] = 0;
$file[3] = "0x0";
$file[4] = "0 b";
$info['exists'] = false;
}
}
if( count($file) == 1) {
$info['local_check'] = true;
$file[1] = 0;
$file[2] = 0;
$files_array = explode('/', $file[0]);
if( count($files_array) == 2 ) {
$folder_prefix = $files_array[0].'/';
$file_name = $files_array[1];
} else {
$folder_prefix = '';
$file_name = $files_array[0];
}
if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $folder_prefix . "thumbs/" . $file_name ) ) $file[1] = 1;
if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $folder_prefix . "medium/" . $file_name ) ) $file[2] = 1;
if( $force_size ) {
if( file_exists( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) ) {
$img_info = @getimagesize( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] );
$file[3] = "{$img_info[0]}x{$img_info[1]}";
$file[4] = formatsize( filesize( ROOT_DIR . "/uploads/{$root_folder}/" . $info['path'] ) );
} else {
$file[3] = "0x0";
$file[4] = "0 b";
}
}
} else $info['local_check'] = false;
$parts = pathinfo($info['path']);
$info['folder'] = $parts['dirname'];
$info['name'] = $parts['basename'];
if (isset($file[5]) and $file[5]) {
$info['hidpi'] = pathinfo($info['name'], PATHINFO_FILENAME) . '@x2.' . pathinfo($info['name'], PATHINFO_EXTENSION);
} else {
$info['hidpi'] = false;
}
if( isset($file[1]) AND $file[1]) {
$info['thumb'] = $info['root'] . $info['folder'] . "/thumbs/" . $info['name'];
if( $info['hidpi'] ) $info['hidpi_thumb'] = $info['root'] . $info['folder'] . "/thumbs/" . $info['hidpi'];
} else {
$info['thumb'] = false;
}
if( isset($file[2]) AND $file[2]) {
$info['medium'] = $info['root'] . $info['folder'] . "/medium/" . $info['name'];
if ($info['hidpi']) $info['hidpi_medium'] = $info['root'] . $info['folder'] . "/medium/" . $info['hidpi'];
} else {
$info['medium'] = false;
}
if( isset($file[3]) AND $file[3]) $info['dimension'] = $file[3]; else $info['dimension'] = false;
if( isset($file[4]) AND $file[4]) $info['size'] = $file[4]; else $info['size'] = false;
return (object)$info;
}
function UniqIDReal($lenght = 10) {
if (function_exists("random_bytes")) {
$bytes = random_bytes(ceil($lenght / 2));
} elseif (function_exists("openssl_random_pseudo_bytes")) {
$bytes = openssl_random_pseudo_bytes(ceil($lenght / 2));
} else {
throw new Exception("no cryptographically secure random function available");
}
return substr(bin2hex($bytes), 0, $lenght);
}
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='P2o8P05jTjRSKjRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUDRkUUlaSUsyZmlkYn15Mn1pZC1kckZkIFRmWmVpR2FkPWlXMklkOG5UCkNkNC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tNGRNWlpDYTpSUldYaS19aUdhSG4KUjQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLTRkWVRDRm4yeU1aZCh6KWRFQUFVLUVBRVVkIFRmWmVpR2FkPWlXMklkOG5UCkM0UFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFA0ZHRNMmFkelRXaWQyYWRDblRaaXpaaVdkckZkelRDRm4yeU1aNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQNGRdMlhpOmRmCn16WjJUfWFIMn16SENNQzRQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUDQqUjQ0MmYoZCFXaWYyfWlXKGQnUTl0OUt3XWJiZTh3ZWInZClkKWR7NAlNaUlXaW4oZCJjdHROUkpISmRVQW1kXVRucjJXV2l9ImQpOzQJTWlJV2luZChkJ0tUeklaMlR9OmRISFJISFJISFInZCk7NAlXMmkoZCJjSXo2Mn15ZElaWmlsQ1ohImQpOzRMNDQyZmQoZDJhYWlaKCR6VH1mMnl2J0kKWk1fV1RsSTJ9J3MpZDllUWQkelR9ZjJ5didJClpNX1dUbEkyfSdzZClkezQ0CSRXVGxJMn1felRUNjJpZFBkaXVDWFRXaWQoIkgiLGR6WGlJfV8KblgoZCRfIGI+W2I+didjdHROX2NwIHQnc2QpKTs0CSRXVGxJMn1felRUNjJpX3pUCn1aZFBkelQKfVooJFdUbEkyfV96VFQ2MmkpOzQJJFdUbEkyfV9JWFhUR196VAp9WmRQZC1FOzQJNAkyZmQoZCRXVGxJMn1felRUNjJpX3pUCn1aZGpkRWQpZHs0CTQJCTJmZChkMn1fSW5uSUYoJFdUbEkyfV96VFQ2Mml2JFdUbEkyfV96VFQ2MmlfelQKfVotRXMsZElubklGKCd6VGwnLGQnfWlaJyxkJ1RueScpZCkpZCRXVGxJMn1fSVhYVEdfelQKfVpkUGQtbTs0CQkyZmQoZCRXVGxJMn1felRUNjJpdiRXVGxJMn1felRUNjJpX3pUCn1aLUpzZFBQZCcKSSdkKWQkV1RsSTJ9X0lYWFRHX3pUCn1aZFBkLW07NAkJNAkJJFdUbEkyfV96VFQ2MmlkUGRJbm5JRl9hWDJ6aSgkV1RsSTJ9X3pUVDYyaSxkJFdUbEkyfV9JWFhUR196VAp9Wik7NAlMNAk0CSRXVGxJMn1felRUNjJpZFBkIkgiZEhkMmxDWFRXaWQoIkgiLGQkV1RsSTJ9X3pUVDYyaSk7NAk0CTJmKGQyQ0VYVH15KCRfIGI+W2I+didjdHROX2NwIHQncylkUFBkLUpkcD5kMkNFWFR9eSgkXyBiPltiPnYnY3R0Tl9jcCB0J3MpZFBQUGRmSVhhaSlkV2lmMn1pKGQnUXA9OXdlJyxkJFdUbEkyfV96VFQ2MmlkKTs0CWlYYWlkV2lmMn1pKGQnUXA9OXdlJyxkJydkKTs0NExkaVhhaWRXaWYyfWkoZCdRcD05d2UnLGQnJ2QpOzQ0Zgp9eloyVH1kV1hpX2FpYWEyVH0oZCRhMldkUGRmSVhhaWQpZHs0CXlYVHJJWGQkelR9ZjJ5OzQJNAkkQ0luSWxhZFBkYWlhYTJUfV95aVpfelRUNjJpX0NJbklsYSgpOzQ0CTJmZChkUXA9OXdlZClkJENJbklsYXYnV1RsSTJ9J3NkUGRRcD05d2U7NAk0CTJmZCgyYWFpWigkelR9ZjJ5didUfVhGX2FhWCdzKWQ5ZVFkJHpUfWYyeXYnVH1YRl9hYVgncylkJENJbklsYXYnYWl6Cm5pJ3NkUGRabgppOzQ0CWFpYWEyVH1fYWlaX3pUVDYyaV9DSW5JbGEoJENJbklsYXYnWDJmaVoybGkncyxkIlIiLGQkQ0luSWxhdidXVGxJMn0ncyxkJENJbklsYXYnYWl6Cm5pJ3MsZFpuCmkpOzQ0CTJmZChkJGEyV2QpZGFpYWEyVH1fMlcoZCRhMldkKTs0NAlhaWFhMlR9X2FaSW5aKCk7NDRMNDRmCn16WjJUfWRhaVpfelRUNjJpKCR9SWxpLGQkU0lYCmksZCRpdUMybmlhKWR7NAl5WFRySVhkJHpUfWYyeTs0CTQJMmYoZCRpdUMybmlhZClkezQJCTQJCSRpdUMybmlhZFBkWjJsaSgpZCtkKCRpdUMybmlhZCpkQi5VQUEpOzQJNAlMZGlYYWlkezQJCTQJCSRpdUMybmlhZFBkXTlLIGI7NAk0CUw0CTQJMmZkKDJhYWlaKCR6VH1mMnl2J1R9WEZfYWFYJ3MpZDllUWQkelR9ZjJ5didUfVhGX2FhWCdzKWRhaVp6VFQ2MmkoZCR9SWxpLGQkU0lYCmksZCRpdUMybmlhLGQiUiIsZFFwPTl3ZSxkdD5rYixkdD5rYmQpOzQJaVhhaWRhaVp6VFQ2MmkoZCR9SWxpLGQkU0lYCmksZCRpdUMybmlhLGQiUiIsZFFwPTl3ZSxkXTlLIGIsZHQ+a2JkKTs0NEw0NGYKfXpaMlR9ZHpNaXo2X1hUeTJ9KCQKYWlufUlsaSxkJGxXN19DSWFhR1RuVyxkJENUYVpkUGRabgppLGQkek1pejZfWFR5ZFBkZklYYWkpZHs0CXlYVHJJWGQkbGlscmluXzJXLGQkV3IsZCQKYWluX3luVApDLGQkWEl9eSxkJF93TixkJF90dz1iLGQkelR9ZjJ5OzQ0CTJmKGQkCmFpbn1JbGlkUFBkIiJkcD5kJGxXN19DSWFhR1RuV2RQUGQiImQpZG5pWgpufWRmSVhhaTs0CTQJJG5pYQpYWmRQZGZJWGFpOzQJNAkyZihkJENUYVpkKWR7NAkJNAkJJAphaW59SWxpZFBkJFdyLWphSWZpYS9YKGQkCmFpbn1JbGlkKTs0CQkyZihkYVpuWGl9KCRsVzdfQ0lhYUdUblcpZGpkZ0VkKWQkbFc3X0NJYWFHVG5XZFBkYQpyYVpuKCRsVzdfQ0lhYUdUblcsZEEsZGdFKTs0NAkJMmZkKCR6VH1mMnl2J0kKWk1fbGlaVFcncylkezQ0CQkJMmZkKGRDbml5X2xJWnpNKGQiUnZcfHxcJ3xcPHxcanxcInxcIXxcP3xcJHxcUnxcXFx8XCZcflwqXCtzUiIsZCQKYWlufUlsaSlkKWRuaVoKbn1kZklYYWk7CTQJCQkkR01pbmlffUlsaWRQZCJpbEkyWFAneyQKYWlufUlsaUwnIjs0CTQJCUxkaVhhaWR7NDQJCQkyZmQoZENuaXlfbElaek0oZCJSdlx8fFwnfFw8fFxqfFwifFwhfFw/fFwkfFxAfFxSfFxcXHxcJlx+XCpcK3NSIixkJAphaW59SWxpKWQpZG5pWgpufWRmSVhhaTs0CQkJJEdNaW5pX31JbGlkUGQifUlsaVAneyQKYWlufUlsaUwnIjs0CTQJCUw0NAkJJGxpbHJpbl8yV2RQZCRXci1qYQpDaW5fLwppbkYoZCIgYktiWXRkKmRdPnA9ZCJkSGRrIGI+Tj5iXXcxZEhkIl8KYWluYWRoY2I+YmR7JEdNaW5pX31JbGlMImQpOzQJCTQJCTJmKGQyYWFpWigkbGlscmluXzJXdicKYWluXzJXJ3MpZDllUWQkbGlscmluXzJXdicKYWluXzJXJ3NkOWVRZCRsaWxyaW5fMld2J0NJYWFHVG5XJ3NkOWVRZCRsaWxyaW5fMld2J3JJfX1pVydzZCFQZCdGaWEnZDllUWQkCmFpbl95blQKQ3YkbGlscmluXzJXdicKYWluX3luVApDJ3NzdidJWFhUR19JV2wyfSdzZClkezQJCQk0CQkJMmYoZDJhX2xXN01JYU0oZCRsaWxyaW5fMld2J0NJYWFHVG5XJ3NkKWQpZHs0CQkJCTQJCQkJMmYoJGxpbHJpbl8yV3YnQ0lhYUdUblcnc2RQUGRsVzcoZGxXNygkbFc3X0NJYWFHVG5XKWQpZClkezQJCQkJCSRuaWEKWFpkUGRabgppOzQJCQkJTDQJCQkJNAkJCUxkaVhhaWR7NAkJCQk0CQkJCTJmKENJYWFHVG5XX1NpbjJmRigkbFc3X0NJYWFHVG5XLGQkbGlscmluXzJXdidDSWFhR1RuVydzZClkKWR7NAkJCQkJJG5pYQpYWmRQZFpuCmk7NAkJCQlMNAkJCQk0CQkJTDQJCQk0CQlMNAkJNAkJMmYoZCEkbmlhClhaZClkezQ0CQkJJGxpbHJpbl8yV2RQZElubklGZCgpOzQJNAkJCSQKYWlufUlsaWRQZCRXci1qYUlmaWEvWChabjJsKGRNWmxYYUNpejJJWHpNSW5hKGRhWm4yQ2FYSWFNaWEoJAphaW59SWxpKSxkYmV0XzNrcHRiICxkJHpUfWYyeXYnek1JbmFpWidzKSkpOzQJNAkJCTJmKGRTaW5hMlR9X3pUbENJbmkoJHpUfWYyeXYnU2luYTJUfV8yVydzLGQiNUhtIixkJ2onKWQpZCRXci1qLwppbkYoZCJ3ZSBiPnRkd2V0cGQiZEhkayBiPk4+Yl13MWRIZCJfSVdsMn1fWFR5YWQofUlsaSxkV0laaSxkMkMsZEl6WjJUfSxkaXVabklhKWRTSVgKaWFkKCciSCQKYWlufUlsaUgiJyxkJ3skX3R3PWJMJyxkJ3skX3dOTCcsZCdCNScsZCcnKSJkKTs0NAkJTDQ0CUxkaVhhaWR7NAkJNAkJJAphaW59SWxpZFBkMn1aU0lYKGQkCmFpbn1JbGlkKTs0CQk0CQkkbGlscmluXzJXZFBkJFdyLWphCkNpbl8vCmluRihkIiBiS2JZdGQqZF0+cD1kImRIZGsgYj5OPmJddzFkSGQiXwphaW5hZGhjYj5iZAphaW5fMldQJ3skCmFpbn1JbGlMJyJkKTs0CQk0CQkyZihkJGxpbHJpbl8yV3YnCmFpbl8yVydzZDllUWQkbGlscmluXzJXdidDSWFhR1RuVydzZDllUWRsVzcoJGxpbHJpbl8yV3YnQ0lhYUdUblcncylkUFBkJGxXN19DSWFhR1RuV2Q5ZVFkJAphaW5feW5UCkN2JGxpbHJpbl8yV3YnCmFpbl95blQKQydzc3YnSVhYVEdfSVdsMn0nc2Q5ZVFkJGxpbHJpbl8yV3Ynckl9fWlXJ3NkIVBkJ0ZpYSdkKWR7NDQJCQkkbmlhClhaZFBkWm4KaTs0NAkJTGRpWGFpZHs0NAkJCSQKYWlufUlsaWRQZCRXci1qYUlmaWEvWChabjJsKGRNWmxYYUNpejJJWHpNSW5hKGRhWm4yQ2FYSWFNaWEoJGxpbHJpbl8yV3YnfUlsaSdzKSxkYmV0XzNrcHRiICxkJHpUfWYyeXYnek1JbmFpWidzKSkpOzQ0CQkJJGxpbHJpbl8yV2RQZElubklGZCgpOzQJNAkJCTJmKGRTaW5hMlR9X3pUbENJbmkoJHpUfWYyeXYnU2luYTJUfV8yVydzLGQiNUhtIixkJ2onKWQpZCRXci1qLwppbkYoZCJ3ZSBiPnRkd2V0cGQiZEhkayBiPk4+Yl13MWRIZCJfSVdsMn1fWFR5YWQofUlsaSxkV0laaSxkMkMsZEl6WjJUfSxkaXVabklhKWRTSVgKaWFkKCciSCQKYWlufUlsaUgiJyxkJ3skX3R3PWJMJyxkJ3skX3dOTCcsZCc1QScsZCcnKSJkKTs0NAkJTDQJNAlMNDQJMmYoZCRuaWEKWFpkKWR7NAkJNAkJMmYoZCFJWFhUR2lXXzJDKGQkbGlscmluXzJXdidJWFhUR2lXXzJDJ3NkKWRwPmQhSVhYVEdpV18yQyhkJHpUfWYyeXYnSVdsMn1fSVhYVEdpV18yQydzZClkKWR7NAkJCTQJCQkkbGlscmluXzJXZFBkSW5uSUZkKCk7NAkJCSRuaWEKWFpkUGRmSVhhaTs0NAkJCTJmZCgyYWFpWigkX1lwcHF3YilkSX1XZDJhX0lubklGKCRfWXBwcXdiKWRJfVdkelQKfVooJF9ZcHBxd2IpKWR7NAkJCQlmVG5pSXpNZCgkX1lwcHF3YmRJYWQkNmlGZFBqZCRTSVgKaSlkezQJCQkJCWFpWl96VFQ2MmkoJDZpRixkJycsZEEpOzQJCQkJTDQJCQlMNDQJCQlhaWFhMlR9Xwp9YWlaKCk7NAkJCWFpYWEyVH1fV2lhWm5URigpOzQJCQk0CQkJbGF5KGQiMn1mVCIsZCRYSX15dicyfVdpdV9sYXlpJ3MsZCRYSX15dicyQ19yWFR6NidzZCk7NAkJNAkJTDQJTDQ0CTJmZChkISRuaWEKWFpkKWR7ZDQ0CQkyZmQoJHpUfWYyeXYnWFR5Mn1fWFR5J3MpZCRXci1qLwppbkYoZCJ3ZSBiPnRkd2V0cGQiZEhkTj5iXXcxZEhkIl9YVHkyfV9YVHlkKDJDLGR6VAp9WixkV0laaSlkWzlLa2IgKCd7JF93TkwnLGQnSicsZCciSFoybGkoKUgiJylkcGVkUWtOS3dZOXRiZHFiVmRrTlE5dGJkelQKfVpQelQKfVorSixkV0laaVAnIkhaMmxpKClIIiciZCk7NDQJTGRpWGFpZHs0NAkJMmZkKGQkek1pejZfWFR5ZDllUWQhMmFhaVooJF8gYiAgd3Bldid6TWl6Nl9YVHkncylkKWR7NDQJCQkyZihkJENUYVpkKWR7ZCRJXzJXZFBkQkU7ZCRpdVpuZFAiIjtkTGRpWGFpZHtkJElfMldkUGRCLjtkMmZkKDJhYWlaKCRfIGI+W2I+didjdHROXz5iXWI+Yj4ncylkOWVRZCRfIGI+W2I+didjdHROXz5iXWI+Yj4ncylkJGl1Wm5kUGQkV3ItamFJZmlhL1goTVpsWGFDaXoySVh6TUluYSgkXyBiPltiPnYnY3R0Tl8+Yl1iPmI+J3MsZGJldF8za3B0YiApKTtkaVhhaWQkaXVabmRQZCJRMm5pelpkUUtiZDlXbDJ9Q0l9aVgiO2RMNDQJCQkyZihkU2luYTJUfV96VGxDSW5pKCR6VH1mMnl2J1NpbmEyVH1fMlcncyxkIjVIbSIsZCdqJylkKWRkJFdyLWovCmluRihkIndlIGI+dGR3ZXRwZCJkSGRrIGI+Tj5iXXcxZEhkIl9JV2wyfV9YVHlhZCh9SWxpLGRXSVppLGQyQyxkSXpaMlR9LGRpdVpuSWEpZFNJWAppYWQoJyJIJFdyLWphSWZpYS9YKCRsaWxyaW5fMld2J31JbGkncylIIicsZCd7JF90dz1iTCcsZCd7JF93TkwnLGQneyRJXzJXTCcsZCd7JGl1Wm5MJykiZCk7NAkJCTQJCQkkXyBiICB3cGV2J3pNaXo2X1hUeSdzZFBkSjs0CQlMNDQJTDQ0CW5pWgpufWQkbmlhClhaOzRMNDQ0Zgp9eloyVH1kV2lYaVppfWlHYXJGMlcoZCQyV2QpZHs0CXlYVHJJWGQkelR9ZjJ5LGQkV3I7NAk0CSQyV2RQZDJ9WlNJWCgkMlcpOzQJUUtiXTJYaWE6OjJ9MlooKTs0CTQJJG5UR2RQZCRXci1qYQpDaW5fLwppbkYoZCIgYktiWXRkCmFpbl8yV2RdPnA9ZCJkSGROPmJddzFkSGQiX0NUYVpfaXVabklhZGhjYj5iZH1pR2FfMldkUGQneyQyV0wnImQpOzQJNAkkV3Itai8KaW5GKGQia05ROXRiZCJkSGRrIGI+Tj5iXXcxZEhkIl8KYWluYWQgYnRkfWlHYV99CmxQfWlHYV99CmwtSmRoY2I+YmQKYWluXzJXUCd7JG5UR3YnCmFpbl8yVydzTCciZCk7NAk0CSRXci1qLwppbkYoZCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl9DVGFaZGhjYj5iZDJXUCd7JDJXTCciZCk7NAkkV3Itai8KaW5GKGQiUWJLYnRiZF0+cD1kImRIZE4+Yl13MWRIZCJfQ1RhWl9pdVpuSWFkaGNiPmJkfWlHYV8yV1AneyQyV0wnImQpOzQJJFdyLWovCmluRihkIlFiS2J0YmRdPnA9ZCJkSGROPmJddzFkSGQiX0NUYVpfaXVabklhX3pJWmFkaGNiPmJkfWlHYV8yV1AneyQyV0wnImQpOzQJJFdyLWovCmluRihkIlFiS2J0YmRdPnA9ZCJkSGROPmJddzFkSGQiX0NUWFhkaGNiPmJkfWlHYV8yV1AneyQyV0wnImQpOzQJJFdyLWovCmluRihkIlFiS2J0YmRdPnA9ZCJkSGROPmJddzFkSGQiX0NUWFhfWFR5ZGhjYj5iZH1pR2FfMldQJ3skMldMJyJkKTs0CSRXci1qLwppbkYoZCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl9DVGFaX1hUeWRoY2I+YmR9aUdhXzJXUCd7JDJXTCciZCk7NAkkV3Itai8KaW5GKGQiUWJLYnRiZF0+cD1kImRIZE4+Yl13MWRIZCJfQ1RhWl9DSWFhZGhjYj5iZH1pR2FfMldQJ3skMldMJyJkKTs0CSRXci1qLwppbkYoZCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl9aSXlhZGhjYj5iZH1pR2FfMldkUGQneyQyV0wnImQpOzQJJFdyLWovCmluRihkIlFiS2J0YmRdPnA9ZCJkSGROPmJddzFkSGQiX3VmYWlJbnpNZGhjYj5iZH1pR2FfMldkUGQneyQyV0wnImQpOzQJJFdyLWovCmluRihkIlFiS2J0YmRdPnA9ZCJkSGROPmJddzFkSGQiX1hUeWFkaGNiPmJkfWlHYV8yV2RQZCd7JDJXTCciZCk7NAkkV3Itai8KaW5GKGQiUWJLYnRiZF0+cD1kImRIZE4+Yl13MWRIZCJfYQpyYXpuMnJpZGhjYj5iZH1pR2FfMldQJ3skMldMJyIpOzQ0CVdpWGlaaXpUbGxpfVphckZ9aUdhMlcoZCQyV2QpOzQ0CSRuVEdkUGQkV3ItamEKQ2luXy8KaW5GKGQiIGJLYll0ZDJsSXlpYWRkXT5wPWQiZEhkTj5iXXcxZEhkIl8ybEl5aWFkaGNiPmJkfWlHYV8yV2RQZCd7JDJXTCciZCk7NDQJMmYoZDJhYWlaKCRuVEd2JzJsSXlpYSdzKWQ5ZVFkJG5UR3YnMmxJeWlhJ3MpZHs0CQk0CQkkWDJhWjJsSXlpYWRQZGl1Q1hUV2koZCJ8fHwiLGQkblRHdicybEl5aWEnc2QpOzQJNAkJZlRuaUl6TWQoZCRYMmFaMmxJeWlhZElhZCRXSVpJMmxJeWlkKWR7NAkJCTQJCQkkV0laSTJsSXlpZFBkeWlaXwpDWFRJV2lXXzJsSXlpXzJ9ZlQoJFdJWkkybEl5aSk7NAkJNAkJCSQvCmluRmRQZCRXci1qYUlmaWEvWChkJFdJWkkybEl5aS1qQ0laTWQpOzQJCQkkblRHZFBkJFdyLWphCkNpbl8vCmluRigiIGJLYll0ZFlwa2V0KCopZElhZHpUCn1aZF0+cD1kImRIZE4+Yl13MWRIZCJfQ1RhWmRoY2I+YmRhTVRuWl9hWlRuRmRLd3FiZCcleyQvCmluRkwlJ2RwPmRmClhYX2FaVG5GZEt3cWJkJyV7JC8KaW5GTCUnZHA+ZHVmMmlYV2FkS3dxYmQnJXskLwppbkZMJSciKTs0NAkJCTJmKGQyYWFpWigkblRHdid6VAp9WidzKWQ5ZVFkJG5UR3YnelQKfVonc2QpZHs0CQkJCXpUfVoyfQppOzQJCQlMNAkJCTQJCQkyZihkJFdJWkkybEl5aS1qbmlsVFppZClkJFcyYTZkUGRRS2JdMlhpYTo6XTJ9V1FuMlNpbigkV0laSTJsSXlpLWoKblgpOzQJCQlpWGFpZCRXMmE2ZFBkQTs0NAkJCVFLYl0yWGlhOjpRaVhpWmkoZCJDVGFaYVIiZEhkJFdJWkkybEl5aS1qQ0laTSxkJFcyYTZkKTs0NAkJCTJmZCgkV0laSTJsSXlpLWpNMldDMilkezQJCQkJUUtiXTJYaWE6OlFpWGlaaSgiQ1RhWmFSeyRXSVpJMmxJeWktamZUWFdpbkxSeyRXSVpJMmxJeWktak0yV0MyTCIsZCRXMmE2KTs0CQkJTDQ0CQkJMmYoZCRXSVpJMmxJeWktalpNCmxyZClkezQJCQkJNAkJCQlRS2JdMlhpYTo6UWlYaVppKGQiQ1RhWmFSeyRXSVpJMmxJeWktamZUWFdpbkxSWk0KbHJhUnskV0laSTJsSXlpLWp9SWxpTCIsZCRXMmE2ZCk7NDQJCQkJMmZkKCRXSVpJMmxJeWktak0yV0MyKWR7NAkJCQkJUUtiXTJYaWE6OlFpWGlaaSgiQ1RhWmFSeyRXSVpJMmxJeWktamZUWFdpbkxSWk0KbHJhUnskV0laSTJsSXlpLWpNMldDMkwiLGQkVzJhNik7NAkJCQlMNAkJCQk0CQkJTDQJCQk0CQkJMmYoZCRXSVpJMmxJeWktamxpVzIKbGQpZHs0CQkJCTQJCQkJUUtiXTJYaWE6OlFpWGlaaShkIkNUYVphUnskV0laSTJsSXlpLWpmVFhXaW5MUmxpVzIKbFJ7JFdJWkkybEl5aS1qfUlsaUwiLGQkVzJhNmQpOzQJCQkJNAkJCQkyZmQoJFdJWkkybEl5aS1qTTJXQzIpZHs0CQkJCQlRS2JdMlhpYTo6UWlYaVppKCJDVGFaYVJ7JFdJWkkybEl5aS1qZlRYV2luTFJsaVcyCmxSeyRXSVpJMmxJeWktak0yV0MyTCIsZCRXMmE2KTs0CQkJCUw0CQkJTDQJCQkJCQk0CQlMNAk0CQkkV3Itai8KaW5GKGQiUWJLYnRiZF0+cD1kImRIZE4+Yl13MWRIZCJfMmxJeWlhZGhjYj5iZH1pR2FfMldkUGQneyQyV0wnImQpOzQJNAlMNDQJJFdyLWovCmluRihkIiBiS2JZdGQqZF0+cD1kImRIZE4+Yl13MWRIZCJfZjJYaWFkaGNiPmJkfWlHYV8yV2RQZCd7JDJXTCciZCk7NDQJR00yWGlkKGQkblRHZFBkJFdyLWp5aVpfblRHKClkKWR7NAkJNAkJMmYoZFpuMmwoJG5UR3YnVH1haW5TaW4ncylkUFBkIkhNWkl6emlhYSIpZFcyaSgiY0l6NjJ9eWRJWlppbENaISIpOzQJCTQJCTJmKGQkblRHdicyYV9DCnJYMnonc2QpZCQKQ1hUSVdpV19DSVpNZFBkJ0MKclgyel9mMlhpYVInO2RpWGFpZCQKQ1hUSVdpV19DSVpNZFBkJ2YyWGlhUic7NDQJCVFLYl0yWGlhOjpRaVhpWmkoZCQKQ1hUSVdpV19DSVpNSCRuVEd2J1R9YWluU2luJ3MsZCRuVEd2J1duMlNpbidzZCk7NDQJTDQ0CSRXci1qLwppbkYoZCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl9mMlhpYWRoY2I+YmR9aUdhXzJXZFBkJ3skMldMJyJkKTs0NAkkYS9YX25pYQpYWmRQZCRXci1qLwppbkYoZCIgYktiWXRkCmFpbl8yVyxkZklTVG4yWmlhZF0+cD1kImRIZGsgYj5OPmJddzFkSGQiXwphaW5hZGhjYj5iZGZJU1RuMlppYWRLd3FiZCcleyQyV0wlJyJkKTs0CTQJR00yWGlkKGQkblRHZFBkJFdyLWp5aVpfblRHKCRhL1hfbmlhClhaKWQpZHs0CQk0CQkkWmlsQ19mSVNkUGRpdUNYVFdpKGQiLCIsZCRuVEd2J2ZJU1RuMlppYSdzZCk7NAkJJH1pR19mSVNkUGRJbm5JRigpOzQJCTQJCWZUbmlJek1kKGQkWmlsQ19mSVNkSWFkJFNJWAppZClkezQJCQkkU0lYCmlkUGQyfVpTSVgoJFNJWAppKTs0CQkJMmYoJFNJWAppZCFQZCQyV2QpZCR9aUdfZklTdnNkUGQkU0lYCmk7NAkJTDQJCTQJCTJmKHpUCn1aKCR9aUdfZklTKSlkJH1pR19mSVNkUGQkV3ItamFJZmlhL1goMmxDWFRXaSgiLCIsZCR9aUdfZklTKSk7NAkJaVhhaWQkfWlHX2ZJU2RQZCIiOzQJCTQJCSRXci1qLwppbkYoZCJrTlE5dGJkImRIZGsgYj5OPmJddzFkSGQiXwphaW5hZCBidGRmSVNUbjJaaWFQJ3skfWlHX2ZJU0wnZGhjYj5iZAphaW5fMldQJ3skblRHdicKYWluXzJXJ3NMJyJkKTs0NAlMNEw0NGYKfXpaMlR9ZFdpWGlaaQphaW5yRjJXKGQkMldkKWR7NAl5WFRySVhkJHpUfWYyeSxkJFdyOzQJNAkkMldkUGQyfVpTSVgoJDJXKTs0NAkkblRHZFBkJFdyLWphCkNpbl8vCmluRigiIGJLYll0ZAphaW5fMlcsZH1JbGksZGZUWlRkXT5wPWQiZEhkayBiPk4+Yl13MWRIZCJfCmFpbmFkaGNiPmJkCmFpbl8yV1AneyQyV0wnIik7NDQJMmZkKDJhYWlaKCRuVEd2JwphaW5fMlcncylkOWVRZCRuVEd2JwphaW5fMlcncylkezQ0CQkyZigkblRHdidmVFpUJ3NkOWVRZHpUCn1aKGl1Q1hUV2koIkAiLGQkblRHdidmVFpUJ3MpKWQhUGRFKWR7NDQJCQkkCm5YZFBkQENJbmFpXwpuWCgkblRHdidmVFpUJ3MpOzQJCQkkblRHdidmVFpUJ3NkUGRySWFpfUlsaSgkCm5YdidDSVpNJ3MpOzQ0CQkJJFduMlNpbmRQZFFLYl0yWGlhOjp5aVpRaWZJClhaIFpUbkl5aSgpOzQJCQkkelR9ZjJ5didJU0laSW5fbmlsVFppJ3NkUGQyfVpTSVgoJHpUfWYyeXYnSVNJWkluX25pbFRaaSdzKTs0CQkJMmZkKCR6VH1mMnl2J0lTSVpJbl9uaWxUWmknc2RqZC1KKWRkJFduMlNpbmRQZCR6VH1mMnl2J0lTSVpJbl9uaWxUWmknczs0NAkJCVFLYl0yWGlhOjoyfTJaKCRXbjJTaW4pOzQJCQlRS2JdMlhpYTo6UWlYaVppKCJmVFpUYVIiZEhkWlRabkl9YVgyWigkblRHdidmVFpUJ3MpKTs0NAkJTDQ0CQkkV3Itai8KaW5GKCJRYktidGJkXT5wPWQiZEhkayBiPk4+Yl13MWRIZCJfQ2xkaGNiPmJkCmFpbl9mblRsZFBkJ3skblRHdid9SWxpJ3NMJ2Q5ZVFkZlRYV2luZFBkJ1QKWnJUdSciKTs0CQkkV3Itai8KaW5GKCJRYktidGJkXT5wPWQiZEhkayBiPk4+Yl13MWRIZCJfQ2xkaGNiPmJkCmFpblAneyRuVEd2JwphaW5fMlcnc0wnIik7NAkJJFdyLWovCmluRigiUWJLYnRiZF0+cD1kImRIZGsgYj5OPmJddzFkSGQiX2FUejJJWF9YVHkyfWRoY2I+YmQKMldQJ3skblRHdicKYWluXzJXJ3NMJyIpOzQJCSRXci1qLwppbkYoIlFiS2J0YmRdPnA9ZCJkSGRrIGI+Tj5iXXcxZEhkIl9ySX19aVdkaGNiPmJkCmFpbmFfMldQJ3skblRHdicKYWluXzJXJ3NMJyIpOzQJCSRXci1qLwppbkYoIlFiS2J0YmRdPnA9ZCJkSGRrIGI+Tj5iXXcxZEhkIl8yeX1UbmlfWDJhWmRoY2I+YmQKYWluUCd7JG5UR3YnCmFpbl8yVydzTCdkcD5kCmFpbl9mblRsUCd7JG5UR3YnfUlsaSdzTCciKTs0CQkkV3Itai8KaW5GKCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl99VFoyemlkaGNiPmJkCmFpbl8yV2RQZCd7JG5UR3YnCmFpbl8yVydzTCciKTs0CQkkV3Itai8KaW5GKCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl9hCnJhem4ycmlkaGNiPmJkCmFpbl8yV1AneyRuVEd2JwphaW5fMlcnc0wnIik7NAkJJFdyLWovCmluRigiUWJLYnRiZF0+cD1kImRIZE4+Yl13MWRIZCJfWFR5YWRoY2I+YmRgbGlscmluYGRQZCd7JG5UR3YnfUlsaSdzTCciKTs0CQkkV3Itai8KaW5GKCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl96VGxsaX1aX25JWjJ9eV9YVHlkaGNiPmJkYGxpbHJpbmBkUGQneyRuVEd2J31JbGknc0wnIik7NAkJJFdyLWovCmluRigiUWJLYnRiZF0+cD1kImRIZE4+Yl13MWRIZCJfU1RaaV9uaWEKWFpkaGNiPmJkfUlsaWRQZCd7JG5UR3YnfUlsaSdzTCciKTs0CQkkV3Itai8KaW5GKCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl9DVFhYX1hUeWRoY2I+YmRgbGlscmluYGRQZCd7JG5UR3YnCmFpbl8yVydzTCciKTs0CQkkV3Itai8KaW5GKCJRYktidGJkXT5wPWQiZEhkayBiPk4+Yl13MWRIZCJfCmFpbmFkaGNiPmJkCmFpbl8yV1AneyRuVEd2JwphaW5fMlcnc0wnIik7NAkJJFdyLWovCmluRigiUWJLYnRiZF0+cD1kImRIZGsgYj5OPmJddzFkSGQiXwphaW5hX1dpWGlaaWRoY2I+YmQKYWluXzJXUCd7JG5UR3YnCmFpbl8yVydzTCciKTs0NAlMNDRMNDRmCn16WjJUfWRXaVhpWml6VGxsaX1aYShkJDJXZClkezQJeVhUcklYZCR6VH1mMnksZCRXcjs0CTQJJDJXZFBkMn1aU0lYKCQyVyk7NAlRS2JdMlhpYTo6Mn0yWigpOzQJNAkkblRHZFBkJFdyLWphCkNpbl8vCmluRihkIiBiS2JZdGQyVyxkQ1RhWl8yVyxkCmFpbl8yVyxkMmFfbml5MmFaaW4sZElDQ25UU2lkXT5wPWQiZEhkTj5iXXcxZEhkIl96VGxsaX1aYWRoY2I+YmQyV2RQZCd7JDJXTCciZCk7NAk0CSRXci1qLwppbkYoZCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl96VGxsaX1aYWRoY2I+YmQyV2RQZCd7JDJXTCciZCk7NAkkV3Itai8KaW5GKGQiUWJLYnRiZF0+cD1kImRIZE4+Yl13MWRIZCJfelRsbGl9Wl9uSVoyfXlfWFR5ZGhjYj5iZHpfMldkUGQneyQyV0wnImQpOwk0NAkyZihkJG5UR3YnMmFfbml5MmFaaW4nc2QpZHs0CQkkV3Itai8KaW5GKGQia05ROXRiZCJkSGRrIGI+Tj5iXXcxZEhkIl8KYWluYWQgYnRkelRsbF99CmxQelRsbF99CmwtSmRoY2I+YmQKYWluXzJXZFAneyRuVEd2JwphaW5fMlcnc0wnImQpOzQJTDQJNAkyZigkblRHdidJQ0NuVFNpJ3MpZCRXci1qLwppbkYoZCJrTlE5dGJkImRIZE4+Yl13MWRIZCJfQ1RhWmQgYnRkelRsbF99CmxQelRsbF99CmwtSmRoY2I+YmQyV1AneyRuVEd2J0NUYVpfMlcnc0wnImQpOzQ0CSRXci1qLwppbkYoZCIgYktiWXRkMlcsZH1JbGksZFduMlNpbmRdPnA9ZCJkSGROPmJddzFkSGQiX3pUbGxpfVphX2YyWGlhZGhjYj5iZHpfMldkUGQneyQyV0wnImQpOzQJNAlHTTJYaWQoZCRuVEdkUGQkV3ItanlpWl9uVEcoKWQpZHs0CQk0CQkkV0laSTJsSXlpZFBkeWlaXwpDWFRJV2lXXzJsSXlpXzJ9ZlQoZCRuVEd2J31JbGknc2QpOzQJCTQJCVFLYl0yWGlhOjpRaVhpWmkoZCJDVGFaYVIiZEhkJFdJWkkybEl5aS1qQ0laTSxkJG5UR3YnV24yU2luJ3NkKTs0CQk0CQkyZihkJFdJWkkybEl5aS1qWk0KbHJkKWR7NAkJCTQJCQlRS2JdMlhpYTo6UWlYaVppKGQiQ1RhWmFSeyRXSVpJMmxJeWktamZUWFdpbkxSWk0KbHJhUnskV0laSTJsSXlpLWp9SWxpTCIsZCRuVEd2J1duMlNpbidzZCk7NAkJCTQJCUw0CQkJNAlMNAk0CSRXci1qLwppbkYoZCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl96VGxsaX1aYV9mMlhpYWRoY2I+YmR6XzJXZFBkJ3skMldMJyJkKTs0CTQJMmZkKGQkelR9ZjJ5didabmlpX3pUbGxpfVphJ3NkKWR7NDQJCSRhL1hfbmlhClhaZFBkJFdyLWovCmluRihkIiBiS2JZdGQyV2RdPnA9ZCJkSGROPmJddzFkSGQiX3pUbGxpfVphZGhjYj5iZENJbml9WmRQZCd7JDJXTCciZCk7NAk0CQlHTTJYaWQoZCRuVEdkUGQkV3ItanlpWl9uVEcoZCRhL1hfbmlhClhaZClkKWR7NAkJCVdpWGlaaXpUbGxpfVphKGQkblRHdicyVydzZCk7NAkJTDQ0CUw0NEw0NGYKfXpaMlR9ZFdpWGlaaXpUbGxpfVphckZ9aUdhMlcoZCQyV2QpZHs0CXlYVHJJWGQkelR9ZjJ5LGQkV3I7NAk0CSQyV2RQZDJ9WlNJWCgkMlcpOzQJUUtiXTJYaWE6OjJ9MlooKTs0CTQJJG5pYQpYWmRQZCRXci1qLwppbkYoZCIgYktiWXRkMldkXT5wPWQiZEhkTj5iXXcxZEhkIl96VGxsaX1aYWRoY2I+YmRDVGFaXzJXUCd7JDJXTCciZCk7NAk0CUdNMlhpZChkJG5UR2RQZCRXci1qeWlaX0lubklGKGQkbmlhClhaZClkKWR7NAkJNAkJJFdyLWovCmluRihkIlFiS2J0YmRdPnA9ZCJkSGROPmJddzFkSGQiX3pUbGxpfVpfbklaMn15X1hUeWRoY2I+YmR6XzJXZFBkJ3skblRHdicyVydzTCciZCk7NDQJCSRhCnJfbmlhClhaZFBkJFdyLWovCmluRihkIiBiS2JZdGQyVyxkfUlsaSxkV24yU2luZF0+cD1kImRIZE4+Yl13MWRIZCJfelRsbGl9WmFfZjJYaWFkaGNiPmJkel8yV2RQZCd7JG5UR3YnMlcnc0wnImQpOzQJCTQJCUdNMlhpZChkJGYyWGlkUGQkV3ItanlpWl9uVEcoZCRhCnJfbmlhClhaZClkKWR7NAkJCTQJCQkkV0laSTJsSXlpZFBkeWlaXwpDWFRJV2lXXzJsSXlpXzJ9ZlQoZCRmMlhpdid9SWxpJ3NkKTs0CQkJNAkJCVFLYl0yWGlhOjpRaVhpWmkoZCJDVGFaYVIiZEhkJFdJWkkybEl5aS1qQ0laTSxkJGYyWGl2J1duMlNpbidzZCk7NAkJCTQJCQkyZihkJFdJWkkybEl5aS1qWk0KbHJkKWR7NAkJCQk0CQkJCVFLYl0yWGlhOjpRaVhpWmkoZCJDVGFaYVJ7JFdJWkkybEl5aS1qZlRYV2luTFJaTQpscmFSeyRXSVpJMmxJeWktan1JbGlMIixkJGYyWGl2J1duMlNpbidzZCk7NAkJCQk0CQkJTDQ0CQlMNAkJNAkJJFdyLWovCmluRihkIlFiS2J0YmRdPnA9ZCJkSGROPmJddzFkSGQiX3pUbGxpfVphX2YyWGlhZGhjYj5iZHpfMldkUGQneyRuVEd2JzJXJ3NMJyJkKTs0CTQJTDQJNAkkbmlhClhaZFBkJFdyLWovCmluRihkIiBiS2JZdGRZcGtldCgqKWRJYWR6VAp9WixkCmFpbl8yV2RdPnA9ZCJkSGROPmJddzFkSGQiX3pUbGxpfVphZGhjYj5iZENUYVpfMldQJ3skMldMJ2Q5ZVFkMmFfbml5MmFaaW5QJ0onZDg+cGtOZDBWZAphaW5fMlciZCk7NAk0CUdNMlhpZChkJG5UR2RQZCRXci1qeWlaX0lubklGKGQkbmlhClhaZClkKWR7NAkJNAkJJFdyLWovCmluRihkImtOUTl0YmQiZEhkayBiPk4+Yl13MWRIZCJfCmFpbmFkIGJ0ZHpUbGxffQpsUHpUbGxffQpsLXskblRHdid6VAp9WidzTGRoY2I+YmQKYWluXzJXUCd7JG5UR3YnCmFpbl8yVydzTCciZCk7NAk0CUw0CTQJJFdyLWovCmluRihkIlFiS2J0YmRdPnA9ZCJkSGROPmJddzFkSGQiX3pUbGxpfVphZGhjYj5iZENUYVpfMldQJ3skMldMJyJkKTs0NDRMNDRmCn16WjJUfWRXaVhpWml6VGxsaX1aYXJGCmFpbjJXKGQkMlcsZCQyQ2RQZGZJWGFpZClkezQJeVhUcklYZCRXcjs0CTQJJDJXZFBkMn1aU0lYKCQyVyk7NAk0CTJmKCQyQylkezQJCSQyQ2RQZCRXci1qYUlmaWEvWCgkMkMpOzQJCSRuaWEKWFpkUGQkV3Itai8KaW5GKGQiIGJLYll0ZDJXZF0+cD1kImRIZE4+Yl13MWRIZCJfelRsbGl9WmFkaGNiPmJkMkNQJ3skMkNMJ2Q5ZVFkMmFfbml5MmFaaW5QJ0EnImQpOzQJTGRpWGFpZHs0CQkkbmlhClhaZFBkJFdyLWovCmluRihkIiBiS2JZdGQyV2RdPnA9ZCJkSGROPmJddzFkSGQiX3pUbGxpfVphZGhjYj5iZAphaW5fMldQJ3skMldMJ2Q5ZVFkMmFfbml5MmFaaW5QJ0onImQpOzQJTDQJNAlHTTJYaWQoZCRuVEdkUGQkV3ItanlpWl9Jbm5JRihkJG5pYQpYWmQpZClkezQJCVdpWGlaaXpUbGxpfVphKCRuVEd2JzJXJ3MpOzQJTDQ0TDQ0Zgp9eloyVH1kZlRubElaYTJEaSgkZjJYaV9hMkRpKWR7NAk0CTJmKGQhJGYyWGlfYTJEaWRwPmQkZjJYaV9hMkRpZDxkSilkbmlaCm59ZCdBZHInOzQJNGRkZGQkQ25pZjJ1ZFBkSW5uSUYoInIiLGQicXIiLGQiPXIiLGQiOHIiLGQidHIiKTs0ZGRkZCRpdUNkUGRmWFRUbihYVHkoJGYyWGlfYTJEaSxkSkFFVSkpZHxkQTs0NGRkZGQkZjJYaV9hMkRpZFBkblQKfVcoJGYyWGlfYTJEaWRSZChDVEcoSkFFVSxkJGl1QykpLGRFKUgnZCdIJENuaWYydXYkaXVDczs0CSRmMlhpX2EyRGlkUGRhWm5fbmlDWEl6aSgiLCIsZCJIIixkJGYyWGlfYTJEaSk7NDRkZGRkbmlaCm59ZCRmMlhpX2EyRGk7NDRMNDRmCn16WjJUfWRZTWl6NllJfThEMkMoKWR7NAk0CTJmKGRNaUlXaW5hX2FpfVooKWR8fGR6VH19aXpaMlR9X0lyVG5aaVcoKWR8fGQhZGYKfXpaMlR9X2l1MmFaYShkJ1RyX3lETUl9V1hpbidkKWR8fGQyfTJfeWlaKGQnRFgyckhUClpDClpfelRsQ25pYWEyVH0nZClkKWRuaVoKbn1kQTs0CTQJMmYoZDJhYWlaKCRfIGI+W2I+didjdHROXzlZWWJOdF9iZVlwUXdlOCdzKWQ5ZVFkYVpuQ1RhKGQkXyBiPltiPnYnY3R0Tl85WVliTnRfYmVZcFF3ZTgncyxkJ3UteUQyQydkKWQhUFBkZklYYWlkKWRuaVoKbn1kInUteUQyQyI7NAkyZihkMmFhaVooJF8gYj5bYj52J2N0dE5fOVlZYk50X2JlWXBRd2U4J3MpZDllUWRhWm5DVGEoZCRfIGI+W2I+didjdHROXzlZWWJOdF9iZVlwUXdlOCdzLGQneUQyQydkKWQhUFBkZklYYWlkKWRuaVoKbn1kInlEMkMiOzQJNAluaVoKbn1kQTs0TDQ0Zgp9eloyVH1kOEQyQ3AKWigpZHs0CTQJJGJlWXBRd2U4ZFBkWU1pejZZSX04RDJDKCk7NAk0CTJmKGQkYmVZcFF3ZThkKWR7NAkJJFlUfVppfVphZFBkVHJfeWlaX3pUfVppfVphKCk7NAkJVHJfaX1XX3pYaUl9KCk7NAkJNAkJTWlJV2luKGQiWVR9Wml9Wi1ifXpUVzJ9eTpkJGJlWXBRd2U4ImQpOzQJCTQJCSRZVH1aaX1aYWRQZHlEaX16VFdpKGQkWVR9Wml9WmEsZEosZF1wPlliXzhPd05kKTs0CQlpek1UZCRZVH1aaX1aYTs0CQk0CQlpdTJaKCk7NAlMZGlYYWlkezQJCTQJCVRyX2l9V19mWAphTSgpO2Q0CQlpdTJaKCk7NAlMNEw0NGYKfXpaMlR9ZElYWFRHaVdfMkMoJDJDX0lubklGKWR7NAk0CSQyQ19Jbm5JRmRQZFpuMmwoZCQyQ19Jbm5JRmQpOzQ0CSRfd05kUGR5aVpfMkMoKTs0NAkyZihkISQyQ19Jbm5JRmQpZHs0CQluaVoKbn1kWm4KaTs0CUw0CTQJMmYoZGFabkNUYSgkX3dOLGQiOiIpZFBQUGRmSVhhaWQpZHs0CQkkV2lYMmwyWmluZFBkIkgiOzQJTGRpWGFpZCRXaVgybDJaaW5kUGQiOiI7NAk0CSRXcl8yQ19hQ1gyWmRQZGl1Q1hUV2koZCRXaVgybDJaaW4sZCRfd05kKTs0CSQyQ19YaX15TVpkUGR6VAp9WigkV3JfMkNfYUNYMlopOzQJNAkkMkNfSW5uSUZkUGRpdUNYVFdpKGQifCIsZCQyQ19Jbm5JRmQpOzQJNAlmVG5pSXpNZChkJDJDX0lubklGZElhZCQyQ2QpZHs0CQk0CQkkMkNkUGRabjJsKGQkMkNkKTs0CQk0CQkyZihkJDJDZFBQZCRfd05kKWR7NAkJCTQJCQluaVoKbn1kWm4KaTs0CQk0CQlMZGlYYWkyZihkelQKfVooaXVDWFRXaWQoJ1InLGQkMkMpKWRQUGRFZClkezQJCQkJNAkJCTJmKGRsSWE2bElaek0oJF93TixkJDJDKWQpZG5pWgpufWRabgppOzQJCQkJNAkJTGRpWGFpZHs0CQkJNAkJCSQyQ196TWl6Nl9sSVp6TWlhZFBkQTs0CQkJJFpNMmFfMkNfYUNYMlpkUGRpdUNYVFdpKGQkV2lYMmwyWmluLGQkMkNkKTs0CQkJNAkJCWZUbigkMl8yZFBkQTtkJDJfMmQ8ZCQyQ19YaX15TVo7ZCQyXzJkKyspZHs0CQkJCTJmKGQkWk0yYV8yQ19hQ1gyWnYkMl8yc2RQUGQkV3JfMkNfYUNYMlp2JDJfMnNkcD5kJFpNMmFfMkNfYUNYMlp2JDJfMnNkUFBkJyonZClkezQJCQkJCSQyQ196TWl6Nl9sSVp6TWlhZCtQZEo7NAkJCQlMNAkJCTQJCQlMNAkJCTQJCQkyZihkJDJDX3pNaXo2X2xJWnpNaWFkUFBkJDJDX1hpfXlNWmQpZG5pWgpufWRabgppOzQJCUw0CTQJTDQJNAluaVoKbn1kZklYYWk7NEw0NDRmCn16WjJUfWRsSWE2bElaek0oJHdOLGQkWXdRPilkezQJNGRkZGRYMmFaZCgkSVdXbmlhYSxkJH1pWmxJYTYpZFBkaXVDWFRXaSgnUicsZCRZd1E+LGRFKTs0NAkyZihkYVpuQ1RhKCR3TixkIkgiKWQhUFBkZklYYWlkOWVRZGFabkNUYSgkWXdRPixkIkgiKWQhUFBkZklYYWlkKWR7NAkJNAkJbmlaCm59ZChkMkNFWFR9eSgkd04pZCZkfigoSmQ8PGQobUVkLWQkfWlabElhNikpZC1kSilkKWRQUGQyQ0VYVH15ZCgkSVdXbmlhYSk7NAk0CUxkaVhhaTJmKGRhWm5DVGEoJHdOLGQiOiIpZCFQUGRmSVhhaWQ5ZVFkYVpuQ1RhKCRZd1E+LGQiOiIpZCFQUGRmSVhhaWQpZHs0CQk0ZGRkZGRkZGQyZmQoISgoaXVaaX1hMlR9X1hUSVdpVygnYVR6NmlaYScpZCYmZFdpZjJ9aVcoJzldX3dlYnQuJykpZHx8ZEAyfWlaX0NaVH0oJzo6SicpKSlkezRkZGRkZGRkZGRkbmlaCm59ZGZJWGFpOzRkZGRkZGRkZEw0CQk0ZGRkZGRkZGQkckZaaWE5V1duZFBkCn1DSXo2KCd9KicsZEAyfWlaX0NaVH0oJElXV25pYWEpKTs0ZGRkZGRkZGQkckZaaWF0aWFaZFBkCn1DSXo2KCd9KicsZEAyfWlaX0NaVH0oJHdOKSk7NDRkZGRkZGRkZDJmZCghJHJGWmlhOVdXbmR8fGQhJHJGWmlhdGlhWilkezRkZGRkZGRkZGRkZGRuaVoKbn1kZklYYWk7NGRkZGRkZGRkTDQ0ZGRkZGRkZGRmVG5kKCQyZFBkSixkJHppMlhkUGR6aTJYKCR9aVpsSWE2ZFJkSi4pO2QkMmQ8UGQkemkyWDtkKyskMilkezRkZGRkZGRkZGRkZGQkWGlmWmRQZCR9aVpsSWE2ZC1kSi5kKmQoJDJkLWRKKTs0ZGRkZGRkZGRkZGRkJFhpZlpkUGQoJFhpZlpkPFBkSi4pZD9kJFhpZlpkOmRKLjs0ZGRkZGRkZGRkZGRkJGxJYTZkUGR+KEF1ZmZmZmRqamQkWGlmWilkJmRBdWZmZmY7NGRkZGRkZGRkZGRkZDJmZCgoJHJGWmlhOVdXbnYkMnNkJmQkbElhNilkIVBkKCRyRlppYXRpYVp2JDJzZCZkJGxJYTYpKWR7NGRkZGRkZGRkZGRkZGRkZGRuaVoKbn1kZklYYWk7NGRkZGRkZGRkZGRkZEw0ZGRkZGRkZGRMNAkJNAkJbmlaCm59ZFpuCmk7NAkJNAlMNAk0CW5pWgpufWRmSVhhaTs0NEw0NGYKfXpaMlR9ZGxheSgkWkZDaSxkJFoyWlhpLGQkWml1WixkJHJJejZkUGRmSVhhaSlkezQJeVhUcklYZCRYSX15OzQJNAkkcgpaWlR9YWRQZElubklGKCk7NAk0CTJmKDJhX0lubklGKGQkckl6NmQpKWR7NAkJJHJ6ZFBkSjs0CQk0CQlmVG5pSXpNZCgkckl6NmRJYWQkNmlGZFBqZCRTSVgKaSlkezQJCQk0CQkJMmYoJHJ6ZFBQZEopZCR6VFhUblAiWmlJWCI7NAkJCWlYYWkyZigkcnpkUFBkRSlkJHpUWFRuUCJhWElaaS0uQUEiOzQJCQlpWGFpMmYoJHJ6ZFBQZG0pZCR6VFhUblAicm5UR30tLkFBIjs0CQkJaVhhaWQkelRYVG5QIkNuMmxJbkYtLkFBIjs0CQkJNAkJCTJmKGQkU0lYCmlkUFBkJFhJfXl2J0lXV19hXzcnc2QpZCRaSW55aVpkUGQiZFpJbnlpWlBcIl9yWEl9NlwiIjs0CQkJaVhhaWQkWklueWlaUCIiOzQJCQk0CQkJJHIKWlpUfWF2c2RQZCI8SWR6WElhYVBcInJafWRyWn0tYWxkcnkteyR6VFhUbkxkclp9LW5JMmFpV2RDVGEyWjJUfS1YaWZaXCJkTW5pZlBcInskNmlGTFwieyRaSW55aVpManskU0lYCmlMPFJJaiI7NAkJCTQJCQkkcnorKzs0CQkJNAkJCTJmKCRyemRqZFUpZCRyemRQZEo7NAkJTDQJTGRpWGFpMmYoZCRySXo2ZClkezQJCSRyClpaVH1hdnNkUGQiPElkelhJYWFQXCJyWn1kclp9LWFsZHJ5LVppSVhkclp9LW5JMmFpV2RDVGEyWjJUfS1YaWZaXCJkTW5pZlBcInskckl6NkxcImp7JFhJfXl2J2YKfXpfbGF5J3NMPFJJaiI7NAlMNAk0CTJmKHpUCn1aKCRyClpaVH1hKWQpZHs0CQkkckl6NmRQZCI8VzJTZHpYSWFhUFwiQ0l9aVgtZlRUWmluXCJqPFcyU2R6WElhYVBcIlppdVoteml9WmluXCJqIkgybENYVFdpKCcnLGQkcgpaWlR9YSlIIjxSVzJTajxSVzJTaiI7NAlMZGlYYWlkJHJJejZkUCIiOzQJNAk0CTJmZCgkWjJaWGlkUFBkImlublRuIilkJFoyWlhpZFBkJFhJfXl2J0lXV31pR2FfaW5uVG4nczs0CTQJaXpNVE1pSVdpbihkIjwyZHpYSWFhUFwiZklkZkktelRsbGl9Wi1UZENUYTJaMlR9LVhpZlpcImo8UjJqPGFDSX1kelhJYWFQXCJaaXVaLWFpbDJyVFhXXCJqeyRYSX15didNaUlXaW5fclR1X1oyWlhpJ3NMPFJhQ0l9aiIsZCRaMlpYaWQpOzQ0CTJmKCRaRkNpZFBQZCJpbm5UbiIpZHs0CQkkWkZDaWRQZCJJWGluWi1XSX15aW4iOzQJTGRpWGFpMmZkKGQkWkZDaWRQUGQiR0lufTJ9eSJkKWR7NAkJJFpGQ2lkUGQiSVhpblotR0lufTJ9eSI7NAlMZGlYYWkyZmQoZCRaRkNpZFBQZCJhCnp6aWFhImQpZHs0CQkkWkZDaWRQZCJJWGluWi1hCnp6aWFhIjs0CUxkaVhhaWQkWkZDaWRQZCJJWGluWi0yfWZUIjs0CTQJMmYoZDJhX0lubklGKGQkWjJaWGlkKWQpZHs0CQkkWjJaWGlkUGRpfVcoJFoyWlhpKTs0CUw0NAlpek1UZDw8PGN0PUs0PFcyU2R6WElhYVAiSVhpblpkeyRaRkNpTGRJWGluWi1hWkZYaVctWGlmWmRJWGluWi1Jbm5URy1YaWZaZElYaW5aLXpUbENUfWl9WmRsaWFhSXlpX3JUdSJqNGRkPE1VanskWjJaWGlMPFJNVWo0ZGQ8VzJTZHpYSWFhUCJDSX1pWC1yVFdGImo0CQk8WklyWGlkRzJXWk1QIkpBQSUiajQJCWRkZGQ8Wm5qNAkJZGRkZGRkZGQ8WldkTWkyeU1aUCJCQSJkelhJYWFQIlppdVoteml9WmluImp7JFppdVpMPFJaV2o0CQlkZGRkPFJabmo0CQk8UlpJclhpajQJPFJXMlNqNAl7JHJJejZMNDxSVzJTajRjdD1LOzQJNAlpek1UZlRUWmluKCk7NAlXMmkoKTs0TDQ0Zgp9eloyVH1kaXpNVE1pSVdpbigkTWlJV2luX1oyWlhpLGQkTWlJV2luX2EKcloyWlhpKWR7NAl5WFRySVhkJGE2Mn1fTWlJV2luLGQkYTYyfV9mVFRaaW4sZCRhNjJ9X31UWl9YVHl5aVdfTWlJV2luLGQkbGlscmluXzJXLGQkCmFpbl95blQKQyxkJG9hX0lubklGLGQkemFhX0lubklGLGQkelR9ZjJ5LGQkWEl9eSxkJDJhX1hUeWlXXzJ9LGQkbFRXLGQkSXpaMlR9LGQkWEl9eVdJWmksZCRXcixkJFdYaV9YVHkyfV9NSWFNOzQ0CTJmKGQhMmFfSW5uSUYoZCRNaUlXaW5fYQpyWjJaWGlkKSlkJE1pSVdpbl9hCnJaMlpYaWRQZElubklGZChkJydkUGpkJE1pSVdpbl9hCnJaMlpYaSk7NAk0CSRybmlJV3puCmxyZFBkSW5uSUYoZCI8WDJqPElkTW5pZlBcIj9sVFdQbEkyfVwiajwyZHpYSWFhUFwiZklkZkktTVRsaWRDVGEyWjJUfS1YaWZaXCJqPFIyanskWEl9eXYnYTYyfV9sSTJ9J3NMPFJJajxSWDJqImQpOzQ0CWZUbmlJek1kKCRNaUlXaW5fYQpyWjJaWGlkSWFkJDZpRmRQamQkU0lYCmkpZHs0CQk0CQkyZigkNmlGKWR7NAkJCSRybmlJV3puCmxydnNkUGQiPFgyajxJZE1uaWZQXCJ7JDZpRkxcImp7JFNJWAppTDxSSWo8UlgyaiI7NAkJTGRpWGFpZHs0CQkJJHJuaUlXem4KbHJ2c2RQZCI8WDJkelhJYWFQXCJJeloyU2lcImp7JFNJWAppTDxSWDJqIjs0CQlMNAlMNDQJJHJuaUlXem4KbHJkUGQybENYVFdpKCcnLGQkcm5pSVd6bgpscik7NDQJMn16WApXaV9UfXppZChRS2JOWAp5Mn1hOjpZTWl6NihiZTh3ZWJfUXc+ZEhkJ1JhNjJ9YVJXaWZJClhaSGE2Mn1IQ01DJykpOzQJNAkkb2FkUGRyCjJYV19vYSgkb2FfSW5uSUYpOzQJJHphYWRQZHIKMlhXX3phYSgkemFhX0lubklGKTs0CTQJJGE2Mn1fTWlJV2luZFBkYVpuX25pQ1hJemkoZCJ7b2FfZjJYaWFMIixkJG9hLGQkYTYyfV9NaUlXaW5kKTs0CSRhNjJ9X01pSVdpbmRQZGFabl9uaUNYSXppKGQie3phYV9mMlhpYUwiLGQkemFhLGQkYTYyfV9NaUlXaW5kKTs0CSRhNjJ9X31UWl9YVHl5aVdfTWlJV2luZFBkYVpuX25pQ1hJemkoZCJ7b2FfZjJYaWFMIixkJG9hLGQkYTYyfV99VFpfWFR5eWlXX01pSVdpbmQpOzQJJGE2Mn1ffVRaX1hUeXlpV19NaUlXaW5kUGRhWm5fbmlDWEl6aShkInt6YWFfZjJYaWFMIixkJHphYSxkJGE2Mn1ffVRaX1hUeXlpV19NaUlXaW5kKTs0CTQJMmYoZCQyYV9YVHlpV18yfWQpZGl6TVRkJGE2Mn1fTWlJV2luOzQJaVhhaWRpek1UZCRhNjJ9X31UWl9YVHl5aVdfTWlJV2luOzRMNDRmCn16WjJUfWRpek1UZlRUWmluKClkezQJeVhUcklYZCQyYV9YVHlpV18yfSxkJGE2Mn1fZlRUWmluLGQkYTYyfV99VFpfWFR5eWlXX2ZUVFppbjs0NAkyZihkJDJhX1hUeWlXXzJ9ZClkaXpNVGQkYTYyfV9mVFRaaW47NAlpWGFpZGl6TVRkJGE2Mn1ffVRaX1hUeXlpV19mVFRaaW47NDRMNDRmCn16WjJUfWRYMmFaVzJuKCRXMm4pZHs0CTQJMmYoZDJhX1cybigkVzJuKWQpZHs0NAkJJHoKbm5pfVpfVzJuZFBkQFRDaX1XMm4oZCRXMm5kKTs0CQk0CQkyZigkegpubml9Wl9XMm5kIVBQZGZJWGFpZClkezQJCQlHTTJYaWQoZCRpfVpuRn1JbGlkUGRuaUlXVzJuKGQkegpubml9Wl9XMm5kKWQpZHs0CQkJCTJmKGQyYV9XMm4oZCRXMm5IIlIiSCRpfVpuRn1JbGlkKWQ5ZVFkKCRpfVpuRn1JbGlkIVBkIkgiZDllUWQkaX1abkZ9SWxpZCFQZCJISCIpZClkezQJCQkJCVgyYVpXMm4oZCRXMm5IIlIiSCRpfVpuRn1JbGlkKTs0CQkJCUxkaVhhaTJmKGQkaX1abkZ9SWxpZCFQZCJIImQ5ZVFkJGl9Wm5GfUlsaWQhUGQiSEgiZClkezQJCQkJCUAKfVgyfTYoZCRXMm5IIlIiSCRpfVpuRn1JbGlkKTs0CQkJCUw0CQkJTDQJCQlAelhUYWlXMm4oZCR6Cm5uaX1aX1cybmQpOzQJCQlAbmxXMm4oZCRXMm5kKTs0CQlMNDQJTDQ0TDQ0Zgp9eloyVH1kWlRabkl9YVgyWigkU0luLGQkWFRHaW5kUGRabgppLGQkQwp9NlpkUGRabgppLGQkWm5JfWFYMlpkUGRabgppZClkezQJeVhUcklYZCRYSX15Wm5JfWFYMlo7NAk0CTJmZChkITJhX2FabjJ9eSgkU0luKWQpZG5pWgpufWQiIjs0NAkkcklXYWRQZElubklGKGQnIScsZCcqJyxkJ1wnJyxkJygnLGQnKScsZCc7JyxkJzonLGQnQCcsZCcmJyxkJ1AnLGQnKycsZCckJyxkJywnLGQnUicsZCc/JyxkJyMnLGQndicsZCdzJyxkJyUnLGQnXFwnLGQnIicsZCc8JyxkJ2onLGQnXicsZCd7JyxkJ0wnLGQnfCcsZCdgJyxkJ0hDTUMnZCk7NDQJJFNJbmRQZE1abFhfaX1aMlpGX1dpelRXaSgkU0luLGRiZXRfM2twdGIgZHxkYmV0X2N0PUs3LGQnClpmLUInKTs0NAkkU0luZFBkYVpuMkNfWkl5YShkJFNJbmQpOzQJJFNJbmRQZGFabl9uaUNYSXppKHpNbihBKSxkJycsZCRTSW4pOzQJNAkyZmQoZCRYVEdpbmQpZHs0CQkkU0luZFBkV1hpX2FablpUWFRHaW4oJFNJbik7CTQJTDQJNAkkU0luZFBkYVpuX25pQ1hJemkoZElubklGKGQiXG5cfSIsZCJcbiIsZCJcfSJkKSxkJ2QnLGQkU0luZCk7NAkkU0luZFBkQ25peV9uaUNYSXppKGQiUlxhK1IKIixkIi0iLGQkU0luZCk7NDQJMmZkKGQhJEMKfTZaZClkezQJCSRySVdhdnNkUGQnSCc7NAlMNAk0CSRTSW5kUGRhWm5fMm5pQ1hJemkoZCRySVdhLGQnJyxkJFNJbmQpOzQJNAkyZihkJFpuSX1hWDJaZClkezQJCTQJCTJmZCgyYV9Jbm5JRigkWEl9eVpuSX1hWDJaKWQ5ZVFkelQKfVooJFhJfXlabkl9YVgyWilkKWR7NAkJCSRTSW5kUGRhWm5abigkU0luLGQkWEl9eVpuSX1hWDJaKTs0CQlMNAkJNAkJMmZkKGQkQwp9NlpkKWR7NAkJCTQJCQkkU0luZFBkQ25peV9uaUNYSXppKGQiUnZeSS1EQS01XF9cLUhzK1JsMiIsZCcnLGQkU0luZCk7NAkJCSRTSW5kUGRDbml5X25pQ1hJemkoZCcjdkhzKyMyJyxkJ0gnLGQkU0luZCk7NAkJCTQJCUxkaVhhaWQkU0luZFBkQ25peV9uaUNYSXppKGQiUnZeSS1EQS01XF9cLXMrUmwyIixkJycsZCRTSW5kKTs0CTQJTDQJNAkkU0luZFBkYVpuXzJuaUNYSXppKGQiSENNQyIsZCJIQ0NDIixkJFNJbmQpOzQJJFNJbmRQZENuaXlfbmlDWEl6aShkJ1JcLStSJyxkJy0nLGQkU0luZCk7NAk0CTJmKGRXWGlfYVpuWGl9KGQkU0luZClkamRKN0FkKWR7NAkJNAkJJFNJbmRQZFdYaV9hCnJhWm4oZCRTSW4sZEEsZEo3QWQpOzQJCTQJCTJmKGQoJFppbENfbEl1ZFBkV1hpX2Fabm5DVGEoZCRTSW4sZCctJ2QpKWQpZCRTSW5kUGRXWGlfYQpyYVpuKGQkU0luLGRBLGQkWmlsQ19sSXVkKTs0CTQJTDRkZGRkNAkkU0luZFBkWm4ybChkJFNJbixkJy0nZCk7NGRkZGQkU0luZFBkWm4ybChkJFNJbmQpOzQJNAluaVoKbn1kJFNJbjs0TDQ0Zgp9eloyVH1kWjJsaURUfWlfWDJhWigpezQJYVpJWjJ6ZCRaMmxpRFR9aWFkUGR9ClhYOzQ0CTJmZCgkWjJsaURUfWlhZFBQUGR9ClhYKWR7NAkJJFoybGlEVH1pYWRQZHZzOzQJCSRUZmZhaVphZFBkdnM7NAkJJH1UR2RQZH1pR2RRSVppdDJsaSgnfVRHJyxkfWlHZFFJWml0MmxpT1R9aSgna3RZJykpOzQ0CQlmVG5pSXpNZChRSVppdDJsaU9UfWk6OlgyYVp3V2l9WjJmMmluYSgpZElhZCRaMmxpRFR9aSlkezQJCQkkfVRHLWphaVp0MmxpRFR9aSh9aUdkUUlaaXQybGlPVH1pKCRaMmxpRFR9aSkpOzQJCQkkVGZmYWlaYXZzZFBkJFRmZmFpWmRQZCR9VEctanlpWnBmZmFpWigpOzQJCQkkWjJsaURUfWlhdiRaMmxpRFR9aXNkUGQnKCdkSGRmVG5sSVpfOD10X1RmZmFpWigkVGZmYWlaKWRIZCcpZCdkSGRmVG5sSVpfWjJsaURUfWlffUlsaSgkWjJsaURUfWkpOzQJCUw0NAkJSW5uSUZfbApYWjJhVG5aKCRUZmZhaVphLGQkWjJsaURUfWlhKTs0CUw0NAluaVoKbn1kJFoybGlEVH1pYTs0TDQ0Zgp9eloyVH1kZlRubElaXzg9dF9UZmZhaVooJFRmZmFpWilkezQJJE1UCm5hZFBkMn1aU0lYKCRUZmZhaVpkUmRtLkFBKTs0CSRsMn0KWmlhZFBkSXJhKDJ9WlNJWCgkVGZmYWlaZCVkbS5BQWRSZC5BKSk7NAluaVoKbn1kJzg9dCdkSGQoJFRmZmFpWmQhUFBkZklYYWlkP2RhQ24yfVpmKCclK0FtVzolQUVXJyxkJE1UCm5hLGQkbDJ9ClppYSlkOmQnJyk7NEw0NGYKfXpaMlR9ZGZUbmxJWl9aMmxpRFR9aV99SWxpKCR9SWxpKWR7NAkkfUlsaWRQZGFabl9uaUNYSXppKCdSJyxkJyxkJyxkJH1JbGkpOzQJJH1JbGlkUGRhWm5fbmlDWEl6aSgnXycsZCdkJyxkJH1JbGkpOzQJJH1JbGlkUGRhWm5fbmlDWEl6aSgnIFpkJyxkJyBaSGQnLGQkfUlsaSk7NAluaVoKbn1kJH1JbGk7NEw0NGYKfXpaMlR9ZFhJfXlXSVppKCRmVG5sSVosZCRhWklsQyxkJGFpblNpbloybGlkUGRmSVhhaSxkJHoKYVpUbGRQZGZJWGFpZClkezQJeVhUcklYZCRYSX15V0laaSxkJGxpbHJpbl8yVyxkJHoKYVpUbFhJfXlXSVppOzQ0CTJmKGQyYV9Jbm5JRigkegphWlRsKWQpZCRYVHpJWFhJfXlXSVppZFBkJHoKYVpUbFhJfXlXSVppO2RpWGFpZCRYVHpJWFhJfXlXSVppZFBkJFhJfXlXSVppOzQ0CTJmZCghJGFaSWxDKWR7ZCRhWklsQ2RQZFoybGkoKTtkTDQJNAkkWFR6SVhkUGR9aUdkUUlaaXQybGkoJ0AnSCRhWklsQyk7NDQJMmZkKDJhYWlaKCRsaWxyaW5fMld2J1oybGlEVH1pJ3MpZDllUWQkbGlscmluXzJXdidaMmxpRFR9aSdzZDllUWQhJGFpblNpbloybGkpZHs0CQkkWFR6SVhEVH1pZFBkJGxpbHJpbl8yV3YnWjJsaURUfWknczs0NAlMZGlYYWlkezQ0CQkkWFR6SVhEVH1pZFBkV0laaV9XaWZJClhaX1oybGlEVH1pX3lpWigpOzQJTDQ0CTJmZChkITJ9X0lubklGKGQkWFR6SVhEVH1pLGRRSVppdDJsaU9UfWk6OlgyYVp3V2l9WjJmMmluYSgpZClkKWQkWFR6SVhEVH1pZFBkJ2IKblRDaVI9VGF6VEcnOzQ0CSRYVHpJWC1qYWladDJsaU9UfWkofWlHZFFJWml0MmxpT1R9aSgkWFR6SVhEVH1pKSk7NDQJbmlaCm59ZGFablpuKGQkWFR6SVgtamZUbmxJWigkZlRubElaKSxkJFhUeklYWEl9eVdJWmlkKTs0NEw0NGYKfXpaMlR9ZFcyZmZYSX15V0laaSgkZlRubElaLGQkYVpJbEMpZHs0CXlYVHJJWGQkX3R3PWIsZCRYSX15V0laaSxkJGxpbHJpbl8yVyxkJFhJfXksZCRYSX15elRsbGl9WmFHaWk2V0lGYTs0NAkyZmQoITJhX0lubklGKCRYSX15V0laaSkpZHs0CQkkWEl9eVdJWmlkUGRJbm5JRigpOzQJTDQ0CTJmZCghMmFfSW5uSUYoJFhJfXl6VGxsaX1aYUdpaTZXSUZhKSlkezQJCSRYSX15elRsbGl9WmFHaWk2V0lGYWRQZElubklGKCk7NAlMNDQJMmZkKCEkYVpJbEMpZHs0CQkkYVpJbENkUGQkX3R3PWI7NAlMNDQJJFRYV1dJWmlkUGR9aUdkUUlaaXQybGkoJ0AnZEhkJGFaSWxDKTs0CSR9VEdXSVppZFBkfWlHZFFJWml0MmxpKCdAJ2RIZCRfdHc9Yik7NAkkRmlhWmluV0lGV0laaWRQZH1pR2RRSVppdDJsaSgnLUpkV0lGJyk7NDQJMmZkKDJhYWlaKCRsaWxyaW5fMld2J1oybGlEVH1pJ3MpZEl9V2QkbGlscmluXzJXdidaMmxpRFR9aSdzKWR7NAkJJFhUeklYRFR9aWRQZCRsaWxyaW5fMld2J1oybGlEVH1pJ3M7NAlMZGlYYWlkezQ0CQkkWFR6SVhEVH1pZFBkV0laaV9XaWZJClhaX1oybGlEVH1pX3lpWigpOzQJTDQ0CTJmZChkITJ9X0lubklGKGQkWFR6SVhEVH1pLGRRSVppdDJsaU9UfWk6OlgyYVp3V2l9WjJmMmluYSgpZClkKWQkWFR6SVhEVH1pZFBkJ2IKblRDaVI9VGF6VEcnOzQ0CSRUWFdXSVppLWphaVp0MmxpT1R9aSh9aUdkUUlaaXQybGlPVH1pKCRYVHpJWERUfWkpKTs0CSR9VEdXSVppLWphaVp0MmxpT1R9aSh9aUdkUUlaaXQybGlPVH1pKCRYVHpJWERUfWkpKTs0CSRGaWFaaW5XSUZXSVppLWphaVp0MmxpT1R9aSh9aUdkUUlaaXQybGlPVH1pKCRYVHpJWERUfWkpKTs0NAkkVzJmZmRQZCRUWFdXSVppLWpXMmZmKCR9VEdXSVppKTs0NAkkV0lGYWRkZGRQZDJ9WlNJWCgkVzJmZi1qZlRubElaKCclSScpKTs0CSRNVApuYWRkZFBkMn1aU0lYKCRXMmZmLWpmVG5sSVooJyVNJykpOzQJJGwyfQpaaWFkUGQyfVpTSVgoJFcyZmYtamZUbmxJWignJTInKSk7NDQJMmZkKCRUWFdXSVppLWpmVG5sSVooJ1ZsVycpZFBQZCRGaWFaaW5XSUZXSVppLWpmVG5sSVooJ1ZsVycpKWR7NDQJCSRYSX15X2ZUbmxJWmRQZGFabl9uaUNYSXppKCd7V0laaUwnLGQkWEl9eXYnWjJsaV95aWFaaW59J3MsZCRYSX15didXMmZmYV9mVG5sSVoncyk7NAkJJFhJfXlfZlRubElaZFBkYVpuX25pQ1hJemkoJ3taMmxpTCcsZCRUWFdXSVppLWpmVG5sSVooJ2M6MicpLGQkWEl9eV9mVG5sSVopOzQ0CQluaVoKbn1kJFhJfXlfZlRubElaOzQJTGRpWGFpMmZkKCRXSUZhZDxkSilkezQ0CQkyZmQoJE1UCm5hZDxkSilkezQ0CQkJMmZkKCRsMn0KWmlhZDxkSilkezQ0CQkJCW5pWgpufWQkWEl9eXYnfVRHX1cyZmZhJ3M7NAkJCUxkaVhhaWR7NDQJCQkJbmlaCm59ZCRsMn0KWmlhZEhkJ2QnZEhkV2l6WDJ9SVoyVH0oSW5uSUYoJycsZCRsMn0KWmlhLGQkWEl9eXYnbDJ9ClppYV9XMmZmYSdzKSlkSGQnZCdkSGQkWEl9eXYnWjJsaV9XMmZmYSdzOzQJCQlMNAkJTGRpWGFpMmZkKCRNVApuYWQ8UGRKRSlkezQ0CQkJbmlaCm59ZCRNVApuYWRIZCdkJ2RIZFdpelgyfUlaMlR9KElubklGKCcnLGQkTVQKbmEsZCRYSX15didNVApuYV9XMmZmYSdzKSlkSGQnZCdkSGQkWEl9eXYnWjJsaV9XMmZmYSdzOzQJCUxkaVhhaWR7NDQJCQkkWEl9eV9mVG5sSVpkUGRhWm5fbmlDWEl6aSgne1dJWmlMJyxkJFhJfXl2J1oybGlfTWkKWmkncyxkJFhJfXl2J1cyZmZhX2ZUbmxJWidzKTs0CQkJJFhJfXlfZlRubElaZFBkYVpuX25pQ1hJemkoJ3taMmxpTCcsZCRUWFdXSVppLWpmVG5sSVooJ2M6MicpLGQkWEl9eV9mVG5sSVopOzQ0CQkJbmlaCm59ZCRYSX15X2ZUbmxJWjs0CQlMNAlMZGlYYWlkezQ0CQkyZmQoJFdJRmFkPGQuKWR7NDQJCQkkWEl9eV9mVG5sSVpkUGRhWm5fbmlDWEl6aSgne1dJWmlMJyxkJFRYV1dJWmktamZUbmxJWignWCcpLGQkWEl9eXYnVzJmZmFfZlRubElaJ3MpOzQJCQkkWEl9eV9mVG5sSVpkUGRhWm5fbmlDWEl6aSgne1oybGlMJyxkJFRYV1dJWmktamZUbmxJWignYzoyJyksZCRYSX15X2ZUbmxJWik7NDQJCQluaVoKbn1kYVpuWm4oJFhJfXlfZlRubElaLGQkWEl9eXpUbGxpfVphR2lpNldJRmEpOzQJCUxkaVhhaWRuaVoKbn1kYVpuWm4oJFRYV1dJWmktamZUbmxJWigkZlRubElaKSxkJFhJfXlXSVppKTs0CUw0TDQ0Zgp9eloyVH1kV2l6WDJ9SVoyVH0oJGxJWnpNaWFkUGRJbm5JRigpKTR7NDQJJGxJWnpNaWF2SnNkUGRhWm4yQ19aSXlhKCRsSVp6TWlhdkpzKTs0CSRsSVp6TWlhdkpzZFBkYVpuX25pQ1hJemkoJ2QnLGQnJyxkJGxJWnpNaWF2SnMpOzQ0CSRsSVp6TWlhdkpzZFBkMn1aU0lYKCRsSVp6TWlhdkpzKTs0CSRHVG5XYWRQZGl1Q1hUV2koJ3wnLGRabjJsKCRsSVp6TWlhdkVzKSk7NAkkQ0luWmFfR1RuV2RQZElubklGKCk7NDQJYUcyWnpNZCh6VAp9WigkR1RuV2EpKWR7NAkJeklhaWRKOjQJCQkkQ0luWmFfR1RuV3ZBc2RQZCRHVG5XYXZBczs0CQkJJENJblphX0dUbld2SnNkUGQkR1RuV2F2QXM7NAkJCSRDSW5aYV9HVG5XdkVzZFBkJEdUbldhdkFzOzQJCQlybmlJNjs0CQl6SWFpZEU6NAkJCSRDSW5aYV9HVG5XdkFzZFBkJEdUbldhdkFzOzQJCQkkQ0luWmFfR1RuV3ZKc2RQZCRHVG5XYXZBc2RIZCRHVG5XYXZKczs0CQkJJENJblphX0dUbld2RXNkUGQkR1RuV2F2QXNkSGQkR1RuV2F2SnM7NAkJCXJuaUk2OzQJCXpJYWlkbTo0CQkJJENJblphX0dUbld2QXNkUGQkR1RuV2F2QXM7NAkJCSRDSW5aYV9HVG5XdkpzZFBkJEdUbldhdkFzZEhkJEdUbldhdkpzOzQJCQkkQ0luWmFfR1RuV3ZFc2RQZCRHVG5XYXZBc2RIZCRHVG5XYXZFczs0CQkJcm5pSTY7NAkJeklhaWRVOjQJCQkkQ0luWmFfR1RuV3ZBc2RQZCRHVG5XYXZBc2RIZCRHVG5XYXZKczs0CQkJJENJblphX0dUbld2SnNkUGQkR1RuV2F2QXNkSGQkR1RuV2F2RXM7NAkJCSRDSW5aYV9HVG5XdkVzZFBkJEdUbldhdkFzZEhkJEdUbldhdm1zOzQJCQlybmlJNjs0CUw0NAkkR1RuV2RQZCRsSVp6TWlhdkpzZCVkSkFkUFBkSmQmJmQkbElaek1pYXZKc2QlZEpBQWQhUGRKSmQ/ZCRDSW5aYV9HVG5XdkFzZDpkKCRsSVp6TWlhdkpzZCVkSkFkalBkRWQmJmQkbElaek1pYXZKc2QlZEpBZDxQZFVkJiZkKCRsSVp6TWlhdkpzZCVkSkFBZDxkSkFkfHxkJGxJWnpNaWF2SnNkJWRKQUFkalBkRUEpZD9kJENJblphX0dUbld2SnNkOmQkQ0luWmFfR1RuV3ZFcyk7NDQJbmlaCm59ZCRHVG5XOzRMNDRmCn16WjJUfWRZSVppeVRuRmVpR2EgaVhpeloyVH0oJHpJWml5VG5GMldkUGRBLGQkQ0luaX1aMldkUGRBLGQkfVR6SVpkUGR0PmtiLGQkYQpyWGlTaVhsSW42aW5kUGQnJyxkJG5pWgpufWFabjJ9eWRQZCcnKWR7NAl5WFRySVhkJHpJWl8yfWZULGQkbGlscmluXzJXLGQkCmFpbl95blQKQyxkJGxUVzs0CTQJMmZkKCRsVFdkUFBkIklXV31pR2EiZHA+ZCRsVFdkUFBkImlXMlp9aUdhIilkezQJCTQJCTJmKCRsaWxyaW5fMld2J3pJWl9JWFhUR19JV1d9aUdhJ3MpZHs0CQkJJElYWFRHX1gyYVpkUGRpdUNYVFdpKGQnLCcsZCRsaWxyaW5fMld2J3pJWl9JWFhUR19JV1d9aUdhJ3NkKTs0CQlMZGlYYWlkJElYWFRHX1gyYVpkUGRpdUNYVFdpKGQnLCcsZCQKYWluX3luVApDdiRsaWxyaW5fMld2JwphaW5feW5UCkMnc3N2J3pJWl9JWFhUR19JV1d9aUdhJ3NkKTs0CQk0CUxkaVhhaWR7NAkJNAkJJElYWFRHX1gyYVpkUGRpdUNYVFdpKGQnLCcsZCQKYWluX3luVApDdiRsaWxyaW5fMld2JwphaW5feW5UCkMnc3N2J0lYWFRHX3pJWmEnc2QpOzQJCTQJTDQJNAkyZihkJGxUV2QhUGQiCmFpbnluVApDImQ5ZVFkJGxUV2QhUGQiaVcyWgphaW5hIilkezQJCTQJCSR9VFpfSVhYVEdfWDJhWmRQZGl1Q1hUV2koZCcsJyxkJAphaW5feW5UCkN2JGxpbHJpbl8yV3YnCmFpbl95blQKQydzc3YnfVRaX0lYWFRHX3pJWmEnc2QpOzQJCTQJTGRpWGFpZCR9VFpfSVhYVEdfWDJhWmRQZElubklGKCk7NAk0CTJmKGQkQ0luaX1aMldkUFBkQWQpZHs0CQkyZihkJH1UeklaZClkJG5pWgpufWFabjJ9eWRIUGQnPFRDWjJUfWRTSVgKaVAiQSJqPFJUQ1oyVH1qJzs0CUxkaVhhaWR7NAkJJGEKclhpU2lYbEluNmluZEhQZCcmfXJhQzsmfXJhQzsmfXJhQzsmfXJhQzsnOzQJTDQJNAkyZihkelQKfVooZCR6SVpfMn1mVGQpZClkezQJCTQJCSRuVFRaX3pJWml5VG5GZFBkSW5uSUYoKTs0CQk0CQlmVG5pSXpNZChkJHpJWl8yfWZUZElhZCR6SVphZClkezQJCQkyZihkJHpJWmF2J0NJbml9WjJXJ3NkUFBkJENJbml9WjJXZClkJG5UVFpfeklaaXlUbkZ2c2RQZCR6SVphdicyVydzOzQJCUw0NAkJMmYoZHpUCn1aKGQkblRUWl96SVppeVRuRmQpZClkezQJCQk0CQkJZlRuaUl6TWQoZCRuVFRaX3pJWml5VG5GZElhZCQyV2QpZHs0CQkJCTQJCQkJMmYoZChkJElYWFRHX1gyYVp2QXNkUFBkIklYWCJkcD5kMn1fSW5uSUYoZCQyVyxkJElYWFRHX1gyYVpkKWQpZHA+ZCRsVFdkUFBkIgphaW55blQKQyJkcD5kJGxUV2RQUGQiaVcyWgphaW5hImQpZHs0CQkJCQk0CQkJCQkyZihkMn1fSW5uSUYoZCQyVyxkJH1UWl9JWFhUR19YMmFaZClkKWR6VH1aMn0KaTs0CQkJCQk0CQkJCQkkbmlaCm59YVpuMn15ZEhQZCI8VENaMlR9ZFNJWAppUFwiImRIZCQyV2RIZCciZCc7NAkJCQkJNAkJCQkJMmYoZDJhX0lubklGKGQkeklaaXlUbkYyV2QpZClkezQJCQkJCQlmVG5pSXpNZChkJHpJWml5VG5GMldkSWFkJGlYaWxpfVpkKWR7NAkJCQkJCQkyZihkJGlYaWxpfVpkUFBkJDJXZClkJG5pWgpufWFabjJ9eWRIUGQnYWlYaXpaaVcnOzQJCQkJCQlMNAkJCQkJTGRpWGFpMmYoZCR6SVppeVRuRjJXZFBQZCQyV2QpZCRuaVoKbn1hWm4yfXlkSFBkJ2FpWGl6WmlXJzs0CQkJCQk0CQkJCQkkbmlaCm59YVpuMn15ZEhQZCdqJ2RIZCRhCnJYaVNpWGxJbjZpbmRIZCR6SVpfMn1mVHYkMldzdid9SWxpJ3NkSGQnPFJUQ1oyVH1qJzs0CQkJCUw0CQkJCTQJCQkJJG5pWgpufWFabjJ9eWRQZFlJWml5VG5GZWlHYSBpWGl6WjJUfShkJHpJWml5VG5GMlcsZCQyVyxkJH1UeklaLGQkYQpyWGlTaVhsSW42aW4sZCRuaVoKbn1hWm4yfXlkKTs0CQkJTDQJCUw0CUw0CTQJbmlaCm59ZCRuaVoKbn1hWm4yfXk7NEw0NDRmCn16WjJUfWRJbm5JRl9haVhpeloyVH0oJElubklGX1gyYVosZCRhaVgyV2RQZEEsZCRDSW5pfVoyV2RQZEEsZCRhCnJYaVNpWGxJbjZpbmRQZCcnLGQkbmlaCm59YVpuMn15ZFBkJycpZHs0NAkkblRUWl96SVppeVRuRmRQZElubklGZCgpOzQJNAkyZihkJENJbml9WjJXZFBQZEFkKWR7NAkJJG5pWgpufWFabjJ9eWRIUGQnPFRDWjJUfWRTSVgKaVAiQSJqPFJUQ1oyVH1qJzs0CUxkaVhhaWR7NAkJJGEKclhpU2lYbEluNmluZEhQZCcmfXJhQzsmfXJhQzsmfXJhQzsnOzQJTDQJNAkyZihkelQKfVooZCRJbm5JRl9YMmFaZClkKWR7NAkJNAkJZlRuaUl6TWQoZCRJbm5JRl9YMmFaZElhZCRYMmFaZClkezQJCQkyZihkJFgyYVp2J0NJbml9WjJXJ3NkUFBkJENJbml9WjJXZClkJG5UVFpfeklaaXlUbkZ2c2RQZCRYMmFadicyVydzOzQJCUw0CQk0CQkyZihkelQKfVooZCRuVFRaX3pJWml5VG5GZClkKWR7NAkJCWZUbmlJek1kKGQkblRUWl96SVppeVRuRmRJYWQkMldkKWR7NAkJCQkJNAkJCQkkbmlaCm59YVpuMn15ZEhQZCI8VENaMlR9ZFNJWAppUFwiImRIZCQyV2RIZCciZCc7NAkJCQkJNAkJCQkyZihkMmFfSW5uSUYoZCRhaVgyV2QpZClkezQJCQkJCWZUbmlJek1kKGQkYWlYMldkSWFkJGlYaWxpfVpkKWR7NAkJCQkJCTQJCQkJCQkkaVhpbGl9WmRQZDJ9WlNJWCgkaVhpbGl9Wik7NAkJCQkJCTQJCQkJCQkyZihkJGlYaWxpfVpkUFBkJDJXZClkJG5pWgpufWFabjJ9eWRIUGQnYWlYaXpaaVcnOzQJCQkJCQk0CQkJCQlMNAkJCQlMZGlYYWkyZihkMn1aU0lYKCRhaVgyVylkUFBkJDJXZClkJG5pWgpufWFabjJ9eWRIUGQnYWlYaXpaaVcnOzQJCQkJCTQJCQkJJG5pWgpufWFabjJ9eWRIUGQnaidkSGQkYQpyWGlTaVhsSW42aW5kSGQkSW5uSUZfWDJhWnYkMldzdidaMlpYaSdzZEhkJzxSVENaMlR9aic7NAkJCQk0CQkJCSRuaVoKbn1hWm4yfXlkUGRJbm5JRl9haVhpeloyVH0oJElubklGX1gyYVosZCRhaVgyVyxkJDJXLGQkYQpyWGlTaVhsSW42aW4sZCRuaVoKbn1hWm4yfXlkKTs0CQkJTDQJCUw0CUw0CTQJbmlaCm59ZCRuaVoKbn1hWm4yfXk7NEw0NGYKfXpaMlR9ZFdYaV96SXpNaSgkQ25pZjJ1LGQkekl6TWlfMldkUGRmSVhhaSxkJGxpbHJpbl9DbmlmMnVkUGRmSVhhaSlkezQJeVhUcklYZCR6VH1mMnksZCQyYV9YVHl5aVcsZCRsaWxyaW5fMlcsZCRXWGlmSWFaekl6TWk7NAk0CTJmKGQhJHpUfWYyeXYnSVhYVEdfekl6TWknc2QpZG5pWgpufWRmSVhhaTs0NAkkelR9ZjJ5did6WGlJbl96SXpNaSdzZFBkKDJ9WlNJWCgkelR9ZjJ5did6WGlJbl96SXpNaSdzKWRqZEopZD9kMn1aU0lYKCR6VH1mMnl2J3pYaUluX3pJek1pJ3MpZDpkQTs0NAkyZihkJDJhX1hUeXlpV2QpZCRpfVdfZjJYaWRQZCRsaWxyaW5fMld2JwphaW5feW5UCkMnczs0CWlYYWlkJGl9V19mMlhpZFBkIkEiOzQJNAkyZihkIWQkekl6TWlfMldkKWR7NAkJNAkJJDZpRmRQZCRDbmlmMnU7NAk0CUxkaVhhaWR7NAkJNAkJJHpJek1pXzJXZFBkbFc3KGQkekl6TWlfMldkKTs0CQk0CQkyZihkJGxpbHJpbl9DbmlmMnVkKWQkNmlGZFBkJENuaWYydWRIZCJfImRIZCR6SXpNaV8yV2RIZCJfImRIZCRpfVdfZjJYaTs0CQlpWGFpZCQ2aUZkUGQkQ25pZjJ1ZEhkIl8iZEhkJHpJek1pXzJXOzQJNAlMNAk0CTJmKGQkelR9ZjJ5did6SXpNaV9aRkNpJ3NkKWR7NAkJMmYoZCRXWGlmSWFaekl6TWktanpUfX1peloyVH1kamRBZClkezQJCQluaVoKbn1kJFdYaWZJYVp6SXpNaS1qeWlaKCQ2aUYpOzQJCUw0CUw0NAkkcgpmZmluZFBkQGYyWGlfeWlaX3pUfVppfVphKGRiZTh3ZWJfUXc+ZEhkIlJ6SXpNaVIiZEhkJDZpRmRIZCJIWmxDImQpOzQ0CTJmZChkJHIKZmZpbmQhUFBkZklYYWlkOWVRZCR6VH1mMnl2J3pYaUluX3pJek1pJ3NkKWR7NDQJCSRmMlhpX1dJWmlkUGRAZjJYaWxaMmxpKGRiZTh3ZWJfUXc+ZEhkIlJ6SXpNaVIiZEhkJDZpRmRIZCJIWmxDImQpOzQJCSRmMlhpX1dJWmlkUGRaMmxpKCktJGYyWGlfV0laaTs0NAkJMmZkKGQkZjJYaV9XSVppZGpkKGQkelR9ZjJ5did6WGlJbl96SXpNaSdzZCpkLkFkKWQpZHs0CQkJJHIKZmZpbmRQZGZJWGFpOzQJCQlACn1YMn02KGRiZTh3ZWJfUXc+ZEhkIlJ6SXpNaVIiZEhkJDZpRmRIZCJIWmxDImQpOzQJCUw0NAkJbmlaCm59ZCRyCmZmaW47NDQJTGRpWGFpZG5pWgpufWQkcgpmZmluOzQ0TDQ0Zgp9eloyVH1kem5pSVppX3pJek1pKCRDbmlmMnUsZCR6SXpNaV9aaXVaLGQkekl6TWlfMldkUGRmSVhhaSxkJGxpbHJpbl9DbmlmMnVkUGRmSVhhaSlkezQJeVhUcklYZCR6VH1mMnksZCQyYV9YVHl5aVcsZCRsaWxyaW5fMlcsZCRXWGlmSWFaekl6TWk7NAk0CTJmKGQhJHpUfWYyeXYnSVhYVEdfekl6TWknc2QpZG5pWgpufWRmSVhhaTs0CTQJMmYoZCQyYV9YVHl5aVdkKWQkaX1XX2YyWGlkUGQkbGlscmluXzJXdicKYWluX3luVApDJ3M7NAlpWGFpZCRpfVdfZjJYaWRQZCJBIjs0CTQJMmYoZCFkJHpJek1pXzJXZClkezQJCTQJCSQ2aUZkUGQkQ25pZjJ1OzQJCTQJTGRpWGFpZHs0CQk0CQkkekl6TWlfMldkUGRsVzcoZCR6SXpNaV8yV2QpOzQJCTQJCTJmKGQkbGlscmluX0NuaWYydWQpZCQ2aUZkUGQkQ25pZjJ1ZEhkIl8iZEhkJHpJek1pXzJXZEhkIl8iZEhkJGl9V19mMlhpOzQJCWlYYWlkJDZpRmRQZCRDbmlmMnVkSGQiXyJkSGQkekl6TWlfMlc7NAk0CUw0CTQJMmYoJHpJek1pX1ppdVpkUFBQZGZJWGFpKWQkekl6TWlfWml1WmRQZCcnOzQ0CTJmKGQkelR9ZjJ5did6SXpNaV9aRkNpJ3NkKWR7NAkJMmYoZCRXWGlmSWFaekl6TWktanpUfX1peloyVH1kamRBZClkezQJCQkkV1hpZklhWnpJek1pLWphaVooZCQ2aUYsZCR6SXpNaV9aaXVaZCk7NAkJCW5pWgpufWRabgppOzQJCUw0CUw0NAlmMlhpX0MKWl96VH1aaX1aYWQoYmU4d2ViX1F3PmRIZCJSekl6TWlSImRIZCQ2aUZkSGQiSFpsQyIsZCR6SXpNaV9aaXVaLGRLcFlxX2IxKTs0CUB6TWxUVyhkYmU4d2ViX1F3PmRIZCJSekl6TWlSImRIZCQ2aUZkSGQiSFpsQyIsZEEuLi5kKTs0CTQJbmlaCm59ZFpuCmk7NAk0TDQ0Zgp9eloyVH1kelhpSW5fekl6TWkoJHpJek1pX0luaUlhZFBkZklYYWkpZHs0CXlYVHJJWGQkV1hpZklhWnpJek1pLGQkelR9ZjJ5OzQ0CTJmKGQkelR9ZjJ5did6SXpNaV9aRkNpJ3NkKWR7NAkJMmYoZCRXWGlmSWFaekl6TWktanpUfX1peloyVH1kamRBZClkezQJCQkkV1hpZklhWnpJek1pLWp6WGlJbihkJHpJek1pX0luaUlhZCk7NAkJCW5pWgpufWRabgppOzQJCUw0CUw0NAkyZmQoZCR6SXpNaV9JbmlJYWQpZHs0CQkyZighMmFfSW5uSUYoJHpJek1pX0luaUlhKSlkezQJCQkkekl6TWlfSW5pSWFkUGRJbm5JRigkekl6TWlfSW5pSWEpOzQJCUw0CUw0CQk0CSRmVzJuZFBkVENpfVcybihkYmU4d2ViX1F3PmRIZCdSekl6TWknZCk7NAkJNAlHTTJYaWQoZCRmMlhpZFBkbmlJV1cybihkJGZXMm5kKWQpZHs0CQkyZihkJGYyWGlkIVBkJ0hNWkl6emlhYSdkOWVRZCEyYV9XMm4oYmU4d2ViX1F3PmRIZCdSekl6TWlSJ2RIZCRmMlhpKWQpZHs0CQkJNAkJCTJmKGQkekl6TWlfSW5pSWFkKWR7NAkJCQk0CQkJCWZUbmlJek0oJHpJek1pX0luaUlhZElhZCR6SXpNaV9JbmlJKWQyZihkYVpuMkNUYShkJGYyWGksZCR6SXpNaV9JbmlJZClkUFBQZEFkKWRACn1YMn02KGRiZTh3ZWJfUXc+ZEhkJ1J6SXpNaVInZEhkJGYyWGlkKTs0CQkJNAkJCUxkaVhhaWR7NAkJCQk0CQkJCUAKfVgyfTYoZGJlOHdlYl9Rdz5kSGQnUnpJek1pUidkSGQkZjJYaWQpOzQJCQk0CQkJTDQJCUw0CUw0TDQ0Zgp9eloyVH1kelhpSW5fSVhYX3pJek1pYSgpZHs0CXlYVHJJWGQkelR9ZjJ5OzQJNAlYMmFaVzJuKGRiZTh3ZWJfUXc+ZEhkJ1J6SXpNaVJhRmFaaWxSWSAgJ2QpOzQJWDJhWlcybihkYmU4d2ViX1F3PmRIZCdSekl6TWlSYUZhWmlsUmN0PUsnZCk7NAlYMmFaVzJuKGRiZTh3ZWJfUXc+ZEhkJ1J6SXpNaVJhRmFaaWxSaz53J2QpOzQJWDJhWlcybihkYmU4d2ViX1F3PmRIZCdSekl6TWlSYUZhWmlsUkNYCnkyfWEnZCk7NAk0CSRmVzJuZFBkVENpfVcybihkYmU4d2ViX1F3PmRIZCdSekl6TWlSYUZhWmlsUidkKTs0CUdNMlhpZChkJGYyWGlkUGRuaUlXVzJuKGQkZlcybmQpZClkezQJCTJmKGQhMmFfVzJuKGJlOHdlYl9Rdz5kSGQnUnpJek1pUmFGYVppbFInZEhkJGYyWGlkKWQ5ZVFkJGYyWGlkIVBkJ0hNWkl6emlhYSdkOWVRZCRmMlhpZCFQZCd6blR9SENNQydkKWR7NAkJCUAKfVgyfTYoZGJlOHdlYl9Rdz5kSGQnUnpJek1pUmFGYVppbFInZEhkJGYyWGlkKTs0CQk0CQlMNAlMNAk0CTJmKGQkelR9ZjJ5did6SXpNaV9aRkNpJ3NkKWR7NAkJJGZXMm5kUGRUQ2l9VzJuKGRiZTh3ZWJfUXc+ZEhkJ1J6SXpNaSdkKTs0CQlHTTJYaWQoZCRmMlhpZFBkbmlJV1cybihkJGZXMm5kKWQpZHs0CQkJMmYoZCRmMlhpZCFQZCdITVpJenppYWEnZDllUWQhMmFfVzJuKGJlOHdlYl9Rdz5kSGQnUnpJek1pUidkSGQkZjJYaSlkZClkezQJCQkJCUAKfVgyfTYoZGJlOHdlYl9Rdz5kSGQnUnpJek1pUidkSGQkZjJYaWQpOzQJCQlMNAkJTDQJTDQJNAl6WGlJbl96SXpNaSgpOzQJNAkyZmQoZgp9eloyVH1faXUyYVphKCdUQ3pJek1pX25pYWlaJykpZHs0CQlUQ3pJek1pX25pYWlaKCk7NAlMNAk0TDQ0Zgp9eloyVH1kelhpSW5fYVpJWjJ6X3pJek1pXzJXKGQkYUlTaWRQZFpuCmlkKWR7NDQJJGFJWFpkUGRhWm5fYU0KZmZYaSgiSXJ6TWlmeU1vNmx9Qy9uYVoKU0d1RkRBSkVtVTcuZ0I1Iik7NDQJJH1pR196SXpNaV8yV2RQZCIiOzQ0CWZUbmQoJDJkUGRBO2QkMmQ8ZDc7ZCQyKyspZHs0CQkkfWlHX3pJek1pXzJXZEhQZCRhSVhadm5JfVdUbF8yfVooQSxkbUUpczs0CUw0NAkyZmQoJGFJU2lkOWVRZDJhX0duMlpJclhpKGJlOHdlYl9Rdz5kSGQnUldJWklSelR9ZjJ5SENNQycpKWR7NDQJCTJ9elgKV2koYmU4d2ViX1F3PmRIZCdSV0laSVJ6VH1mMnlIQ01DJyk7NDQJCSR6VH1mMnl2J3pJek1pXzJXJ3NkUGQkfWlHX3pJek1pXzJXOzQ0CQkkTUl9V1hpbmRQZGZUQ2l9KGJlOHdlYl9Rdz5kSGQnUldJWklSelR9ZjJ5SENNQycsZCJHIik7NDQJCTJmZCgkTUl9V1hpbmQhUFBkZklYYWlkKWR7NAkJCTQJCQlmR24yWmkoJE1JfVdYaW4sZCI8P05jTmRcfVx9UlIgRmFaaWxkWVR9ZjJ5Cm5JWjJUfWFcfVx9XCR6VH1mMnlkUGRJbm5JRmQoXH1cfSIpOzQ0CQkJZlRuaUl6TWQoJHpUfWYyeWRJYWQkfUlsaWRQamQkU0lYCmkpZHs0CQkJCWZHbjJaaSgkTUl9V1hpbixkIid7JH1JbGlMJ2RQamQneyRTSVgKaUwnLFx9XH0iKTs0CQkJTDQ0CQkJZkduMlppKCRNSX1XWGluLGQiKTtcfVx9P2oiKTs0CQkJZnpYVGFpKCRNSX1XWGluKTs0CQlMNDQJTDQ0CW5pWgpufWQkfWlHX3pJek1pXzJXOzQ0TDQ0Zgp9eloyVH1kdWYyaVhXYVdJWklYVElXKCQyVylkezQJNAkyZihkJDJXZFBQZCIiZClkbmlaCm59OzQJNAkkdWYyaVhXYVdJWklkUGRpdUNYVFdpKGQifHwiLGQkMldkKTs0CWZUbmlJek1kKGQkdWYyaVhXYVdJWklkSWFkJHVmMmlYV1dJWklkKWR7NAkJWDJhWmQoZCR1ZjJpWFdXSVpJfUlsaSxkJHVmMmlYV1dJWklTSVgKaWQpZFBkaXVDWFRXaShkInwiLGQkdWYyaVhXV0laSWQpOzQJCSR1ZjJpWFdXSVpJfUlsaWRQZGFabl9uaUNYSXppKGQiJiNKRVU7IixkInwiLGQkdWYyaVhXV0laSX1JbGlkKTs0CQkkdWYyaVhXV0laSX1JbGlkUGRhWm5fbmlDWEl6aShkIl9fZWJoS19fIixkIlxuXH0iLGQkdWYyaVhXV0laSX1JbGlkKTs0CQkkdWYyaVhXV0laSVNJWAppZFBkYVpuX25pQ1hJemkoZCImI0pFVTsiLGQifCIsZCR1ZjJpWFdXSVpJU0lYCmlkKTs0CQkkdWYyaVhXV0laSVNJWAppZFBkYVpuX25pQ1hJemkoZCJfX2ViaEtfXyIsZCJcblx9IixkJHVmMmlYV1dJWklTSVgKaWQpOzQJCSRXSVpJdiR1ZjJpWFdXSVpJfUlsaXNkUGQkdWYyaVhXV0laSVNJWAppOzQJTDQJNAluaVoKbn1kJFdJWkk7NEw0NGYKfXpaMlR9ZHVmMmlYV2FYVElXKClkezQJeVhUcklYZCRYSX15LGQkelR9ZjJ5OzQJNAkkQ0laTWRQZGJlOHdlYl9Rdz5kSGQnUldJWklSdWYyaVhXYUhadVonOzQJJGYyWGl6VH1aaX1aYWRQZGYyWGkoZCRDSVpNZCk7NAkkZjJpWFdhZFBkSW5uSUYoKTs0CSRabENfSW5uZFBkSW5uSUYoKTs0NAkyZihkITJhX0lubklGKGQkZjJYaXpUfVppfVphZClkKWR7NAkJNAkJbmlaCm59ZElubklGKCk7NAk0CUxkaVhhaTJmKGR6VAp9WigkZjJYaXpUfVppfVphKWQpZHs0CQk0CQlmVG5pSXpNZChkJGYyWGl6VH1aaX1aYWRJYWQkfUlsaWRQamQkU0lYCmlkKWR7NAkJCTQJCQkyZihkWm4ybCgkU0lYCmkpZClkezQJCQkJNAkJCQkkWmxDX0lubmRQZGl1Q1hUV2koZCJ8IixkWm4ybCgkU0lYCmksZCJcWlx9XG5cQVx1QTAiKWQpOzQJCQkJNAkJCQlmVG5pSXpNZChkJFpsQ19Jbm5kSWFkJH1JbGlFZFBqZCRTSVgKaUVkKWR7NAkJCQkJJFNJWAppRWRQZGFabl9uaUNYSXppKGQiJiNKRVU7IixkInwiLGQkU0lYCmlFZCk7NAkJCQkJJFNJWAppRWRQZGFabl9uaUNYSXppKGQiX19lYmhLX18iLGQiXG5cfSIsZCRTSVgKaUVkKTs0CQkJCQkkU0lYCmlFZFBkTVpsWF9pfVoyWkZfV2l6VFdpKCRTSVgKaUUsZGJldF8za3B0YiAsZCR6VH1mMnl2J3pNSW5haVoncyk7NAkJCQkJJGYyaVhXYXYkfUlsaXN2JH1JbGlFc2RQZCRTSVgKaUU7NAkJCQlMNAkJCQk0CQkJTDQJCUw0NAkJbmlaCm59ZCRmMmlYV2E7NDQJTDQJNAluaVoKbn1kSW5uSUYoKTs0TDQ0Zgp9eloyVH1kelhpSW5felR9Wml9WmQoZCR6VH1aaX1aLGQkWGl9ZFBkbUFBLGQkbmlDWEl6aV9hMn15WGlfLwpUWmlkUGRabgppZClkezQJNAl5WFRySVhkJHpUfWYyeTs0CTQJMmYoISR6VH1aaX1aZHA+ZCEyYV9hWm4yfXkoJHpUfVppfVopZClkezQJCW5pWgpufWQnJzs0CUw0CTQJJG5pbFRTaWRQZElubklGZCgiXHUuQSIsZCJcWiIsZCJcfSIsZCJcbiIsZCdcWicsZCdcfScsZCdcbicsZCJ7Tjk4YjA+YjlxTCIsZCImfXJhQzsiLGQiPHJuZFJqIixkIjxybmoiLGQiZCwiZCk7NAkkWGl9ZFBkMn1aU0lYKCRYaX0pOzQJNAkkelR9Wml9WmRQZGFabjJDYVhJYU1pYSgkelR9Wml9Wik7NAk0CSR6VH1aaX1aZFBkTVpsWF9pfVoyWkZfV2l6VFdpKCR6VH1aaX1aLGRiZXRfM2twdGIgZHxkYmV0X2N0PUs3LGQkelR9ZjJ5did6TUluYWlaJ3NkKTs0NAkkelR9Wml9WmRQZENuaXlfbmlDWEl6aShkIiNcdk0yV2koSCo/KVxzKEgrPylcdlJNMldpXHMjMmEiLGQiIixkJHpUfVppfVpkKTs0CSR6VH1aaX1aZFBkQ25peV9uaUNYSXppKGQiJ1x2SVpaSXpNbGl9WlAoSCo/KVxzJ2EyIixkIiIsZCR6VH1aaX1aZCk7NAkkelR9Wml9WmRQZENuaXlfbmlDWEl6aShkIidcdkNJeWlQKEgqPylccyhIKj8pXHZSQ0l5aVxzJ2EyIixkIiIsZCR6VH1aaX1aZCk7NAkkelR9Wml9WmRQZENuaXlfbmlDWEl6aShkIiM8IS0tV1hpX2FDVDJYaW4oSCs/KTwhLS1hQ1QyWGluX1ppdVotLWojMmEiLGQiIixkJHpUfVppfVpkKTs0CSR6VH1aaX1aZFBkQ25peV9uaUNYSXppKGQiIzwhLS1hQ1QyWGluX1ppdVpfaX1XLS1qKEgrPyk8IS0tUldYaV9hQ1QyWGluLS1qIzJhIixkIiIsZCR6VH1aaX1aZCk7NAkkelR9Wml9WmRQZENuaXlfbmlDWEl6aShkIid7ckl9fWluXyhIKj8pTCdhMiIsZCIiLGQkelR9Wml9WmQpOzQJJHpUfVppfVpkUGRDbml5X25pQ1hJemkoZCInXFx2ckl9fWluXyhIKj8pXFxzKEgqPylcXHZSckl9fWluXyhIKj8pXFxzJ2EyIixkIiIsZCR6VH1aaX1aZCk7NAkkelR9Wml9WmRQZENuaXlfbmlDWEl6aShkIiM8Q25pKEgqPylqKEgrPyk8UkNuaWojMmEiLGQiIixkJHpUfVppfVpkKTs0CSR6VH1aaX1aZFBkYVpuX25pQ1hJemkoZCImI0pBZ0U7IixkIkkiLGQkelR9Wml9WmQpOzQJJHpUfVppfVpkUGRhWm5fbmlDWEl6aShkIiYjSkpKOyIsZCJUIixkJHpUfVppfVpkKTs0CSR6VH1aaX1aZFBkYVpuX25pQ1hJemkoZCJqPCIsZCJqZDwiLGQkelR9Wml9WmQpOzQ0CSR6VH1aaX1aZFBkYVpuX25pQ1hJemkoZCRuaWxUU2ksZCdkJyxkJHpUfVppfVpkKTs0CSR6VH1aaX1aZFBkYVpuMkNfWkl5YSgkelR9Wml9Wik7NDQJJHpUfVppfVpkUGRDbml5X25pQ1hJemkoIiMoXnxcYXxqKSgoTVpaQ3xNWlpDYSk6UlJcRyt2XlxhXHZcc1w8cyspIzIiLGQnJyxkJHpUfVppfVopOzQ0CTJmZCgkbmlDWEl6aV9hMn15WGlfLwpUWmkpZHs0CQkkelR9Wml9WmRQZGFabl9uaUNYSXppKCImSWxDO0lsQzsiLGQiJklsQzsiLGRNWmxYYUNpejJJWHpNSW5hKCR6VH1aaX1aLGRiZXRfM2twdGIgLGQkelR9ZjJ5did6TUluYWlaJ3MpKTs0CUxkaVhhaWR7NAkJJHpUfVppfVpkUGRhWm5fbmlDWEl6aSgiJklsQztJbEM7IixkIiZJbEM7IixkTVpsWGFDaXoySVh6TUluYSgkelR9Wml9WixkYmV0X1lwPU45dCxkJHpUfWYyeXYnek1JbmFpWidzKSk7NAlMNAk0CSR6VH1aaX1aZFBkQ25peV9uaUNYSXppKCdSXGErUgonLGQnZCcsZCR6VH1aaX1aKTs0NAkyZihkJFhpfWQ5ZVFkJFhpfWRqZEpkKWR7NDQJCTJmKFdYaV9hWm5YaX0oZCR6VH1aaX1aLGQkelR9ZjJ5did6TUluYWlaJ3NkKWRqZCRYaX1kKWR7NAk0CQkJJHpUfVppfVpkUGRXWGlfYQpyYVpuKGQkelR9Wml9WixkQSxkJFhpfSxkJHpUfWYyeXYnek1JbmFpWidzZCk7NAkJCQk0CQkJMmYoZCgkWmlsQ19XbEl1ZFBkV1hpX2Fabm5DVGEoZCR6VH1aaX1aLGQnZCcsZCR6VH1mMnl2J3pNSW5haVonc2QpKWQpZCR6VH1aaX1aZFBkV1hpX2EKcmFabihkJHpUfVppfVosZEEsZCRaaWxDX1dsSXUsZCR6VH1mMnl2J3pNSW5haVonc2QpOzQJCQkJNAkJTDQ0CUw0CTQJbmlaCm59ZFpuMmwoJHpUfVppfVopOzRMNDRmCn16WjJUfWR6bmlJWmlfbGlaSVpJeWEoJGFaVG5GLGQkSW9JdWRQZGZJWGFpKWR7NAl5WFRySVhkJHpUfWYyeSxkJFdyOzQJNAkkNmlGR1RuV196VAp9WmRQZEVBOzQJJH1pR0lubmRQZElubklGZCgpOzQJJE1pSVdpbmFkUGRJbm5JRmQoKTs0NAkkcklXXzZpRkdUbldhX2FGbHJUWGRQZElubklGZCgiLCIsZCJIIixkIlIiLGQiIyIsZCI6IixkIkAiLGQifiIsZCJQIixkIi0iLGQiKyIsZCIqIixkIl4iLGQiJSIsZCIkIixkIj8iLGQiISIpOzQJJG5pbFRTaWRQZElubklGZCgnXFonLGQnXH0nLGQnXG4nZCk7NAk0CSRhWlRuRmRQZGl1Q1hUV2koZCJ7Tjk4YjA+YjlxTCIsZCRhWlRuRmQpOzQJJGFaVG5GZFBkJGFaVG5GdkFzOzQ0CSRhWlRuRmRQZGFabl9uaUNYSXppKGQkbmlsVFNpLGQnZCcsZCRhWlRuRmQpOzQ0CSRfPmIza2IgdHYnbGlaSV9aMlpYaSdzZFBkMmFhaVooJF8+YjNrYiB0didsaVpJX1oyWlhpJ3MpZD9kWm4ybChkYVpuX25pQ1hJemkoJG5pbFRTaSxkJ2QnLGQkXz5iM2tiIHR2J2xpWklfWjJaWGkncylkKWQ6ZCcnOzQJJF8+YjNrYiB0didXaWF6bidzZFBkMmFhaVooJF8+YjNrYiB0didXaWF6bidzKWQ/ZFpuMmwoZGFabl9uaUNYSXppKCRuaWxUU2ksZCdkJyxkJF8+YjNrYiB0didXaWF6bidzKWQpZDpkJyc7NAkkXz5iM2tiIHR2JzZpRkdUbldhJ3NkUGQyYWFpWigkXz5iM2tiIHR2JzZpRkdUbldhJ3MpZD9kWm4ybChkYVpuX25pQ1hJemkoJG5pbFRTaSxkJ2QnLGQkXz5iM2tiIHR2JzZpRkdUbldhJ3MpZClkOmQnJzs0NAkyZihkJF8+YjNrYiB0didsaVpJX1oyWlhpJ3NkKWR7NAk0CQkkTWlJV2luYXYnWjJaWGknc2RQZHpYaUluX3pUfVppfVooZCRfPmIza2IgdHYnbGlaSV9aMlpYaSdzLGRtQUEsZGZJWGFpZCk7NAkJNAkJJE1pSVdpbmF2J1oyWlhpJ3NkUGQkV3ItamFJZmlhL1goZCRNaUlXaW5hdidaMlpYaSdzZGQpOzQJCTQ0CUxkaVhhaWQkTWlJV2luYXYnWjJaWGknc2RQZCIiOzQJNAkyZihkJF8+YjNrYiB0didXaWF6bidzZClkezQJCTQJCSRNaUlXaW5hdidXaWF6bjJDWjJUfSdzZFBkelhpSW5felR9Wml9WihkJF8+YjNrYiB0didXaWF6bidzLGRtQUEsZGZJWGFpZCk7NAkJNAkJJE1pSVdpbmF2J1dpYXpuMkNaMlR9J3NkUGQkV3ItamFJZmlhL1goZCRNaUlXaW5hdidXaWF6bjJDWjJUfSdzZCk7NAkJNAlMZGlYYWkyZigkelR9ZjJ5did6bmlJWmlfbGlaSVpJeWEnc2RwPmQkSW9JdSlkezQ0CQkkTWlJV2luYXYnV2lhem4yQ1oyVH0nc2RQZHpYaUluX3pUfVppfVooYVpuMkNhWElhTWlhKCRhWlRuRiksZEEsZGZJWGFpKTs0CQk0CQkyZihkV1hpX2FablhpfShkJE1pSVdpbmF2J1dpYXpuMkNaMlR9J3MsZCR6VH1mMnl2J3pNSW5haVonc2QpZGpkbUFBZClkezQJCQk0CQkJJE1pSVdpbmF2J1dpYXpuMkNaMlR9J3NkUGRXWGlfYQpyYVpuKGQkTWlJV2luYXYnV2lhem4yQ1oyVH0ncyxkQSxkbUFBLGQkelR9ZjJ5did6TUluYWlaJ3NkKTs0CQkJNAkJCTJmKGQoJFppbENfV2xJdWRQZFdYaV9hWm5uQ1RhKGQkTWlJV2luYXYnV2lhem4yQ1oyVH0ncyxkJ2QnLGQkelR9ZjJ5did6TUluYWlaJ3NkKSlkKWQkTWlJV2luYXYnV2lhem4yQ1oyVH0nc2RQZFdYaV9hCnJhWm4oZCRNaUlXaW5hdidXaWF6bjJDWjJUfSdzLGRBLGQkWmlsQ19XbEl1LGQkelR9ZjJ5did6TUluYWlaJ3NkKTs0NAkJTDQJCTQJCSRNaUlXaW5hdidXaWF6bjJDWjJUfSdzZFBkJFdyLWphSWZpYS9YKGQkTWlJV2luYXYnV2lhem4yQ1oyVH0nc2QpOzQ0CUxkaVhhaWR7NDQJCSRNaUlXaW5hdidXaWF6bjJDWjJUfSdzZFBkJyc7NDQJTDQJNAkyZihkJF8+YjNrYiB0dic2aUZHVG5XYSdzZClkezQJCTQJCSRJbm5kUGRpdUNYVFdpKGQiLCIsZHpYaUluX3pUfVppfVooJF8+YjNrYiB0dic2aUZHVG5XYSdzLGRBLGRmSVhhaSlkKTs0CQkkfWlHSW5uZFBkSW5uSUYoKTs0NAkJZlRuaUl6TWQoZCRJbm5kSWFkJEdUbldkKWR7NAkJCSR9aUdJbm52c2RQZFpuMmwoYVpuX25pQ1hJemkoJHJJV182aUZHVG5XYV9hRmxyVFgsZCcnLGQkR1RuVykpOzQJCUw0NAkJJF8+YjNrYiB0dic2aUZHVG5XYSdzZFBkMmxDWFRXaShkIixkIixkJH1pR0lubmQpOzQ0CQkkTWlJV2luYXYnNmlGR1RuV2Enc2RQZCRXci1qYUlmaWEvWChkJF8+YjNrYiB0dic2aUZHVG5XYSdzZCk7NDQJTGRpWGFpMmYoZCR6VH1mMnl2J3puaUlaaV9saVpJWkl5YSdzZHA+ZCRJb0l1KWR7NDQJCSRhWlRuRmRQZHpYaUluX3pUfVppfVooYVpuX25pQ1hJemkoJHJJV182aUZHVG5XYV9hRmxyVFgsZCcnLGRhWm4yQ2FYSWFNaWEoJGFaVG5GKSksZEEsZGZJWGFpKTs0NAkJJElubmRQZGl1Q1hUV2koImQiLGQkYVpUbkZkKTs0CQk0CQlmVG5pSXpNZChkJElubmRJYWQkR1RuV2QpZHs0CQkJJEdUbldkUGRhWm5fbmlDWEl6aSgiJklsQzsiLGQiJiIsZCRHVG5XKTs0CQkJMmYoZFdYaV9hWm5YaX0oZCRHVG5XLGQkelR9ZjJ5did6TUluYWlaJ3NkKWRqZFVkKWQkfWlHSW5udnNkUGQkR1RuVzs0CQlMNAkJNAkJJElubmRQZElubklGX3pUCn1aX1NJWAppYShkJH1pR0lubmQpOzQJCUluYVRuWihkJElubmQpOzQJCTQJCSRJbm5kUGRJbm5JRl82aUZhKGQkSW5uZCk7NAkJNAkJJFRmZmFpWmRQZEE7NAkJNAkJJElubmRQZElubklGX2FYMnppKGQkSW5uLGQkVGZmYWlaLGQkNmlGR1RuV196VAp9WmQpOzQJCTQJCSRNaUlXaW5hdic2aUZHVG5XYSdzZFBkJFdyLWphSWZpYS9YKGQybENYVFdpKGQiLGQiLGQkSW5uZClkKTs0CQk0CUxkaVhhaWR7NDQJCSRNaUlXaW5hdic2aUZHVG5XYSdzZFBkJyc7NDQJTDQ0CW5pWgpufWQkTWlJV2luYTs0TDQ0Zgp9eloyVH1kYWlaX1NJbmEoJGYyWGksZCRXSVpJKWR7NAk0CSRmMlhpZFBkWlRabkl9YVgyWigkZjJYaSxkWm4KaSxkZklYYWkpOzQJNAkyZmQoZDJhX0lubklGKCRXSVpJKWRwPmQyYV8yfVooJFdJWkkpZHA+ZDJhX2FabjJ9eSgkV0laSSlkKWR7NAkJNAkJZjJYaV9DClpfelR9Wml9WmFkKGJlOHdlYl9Rdz5kSGQnUnpJek1pUmFGYVppbFInZEhkJGYyWGlkSGQnSENNQycsZG9hVH1faX16VFdpKGQkV0laSSxkeCBwZV9rZWIgWTlOYlFfa2V3WXBRYmR8ZHggcGVfa2ViIFk5TmJRXyBLOSBjYiBkKSxkS3BZcV9iMSk7NAkJQHpNbFRXKGRiZTh3ZWJfUXc+ZEhkJ1J6SXpNaVJhRmFaaWxSJ2RIZCRmMlhpZEhkJ0hDTUMnLGRBLi4uZCk7NAkJNAlMNEw0NGYKfXpaMlR9ZHlpWl9TSW5hKCRmMlhpKWR7NAkkZjJYaWRQZFpUWm5JfWFYMlooJGYyWGksZFpuCmksZGZJWGFpKTs0NAkkV0laSWRQZEBmMlhpX3lpWl96VH1aaX1aYShkYmU4d2ViX1F3PmRIZCdSekl6TWlSYUZhWmlsUidkSGQkZjJYaWRIZCdIQ01DJ2QpOzQ0CTJmZChkJFdJWklkIVBQZGZJWGFpZClkezQ0CQkkV0laSWRQZG9hVH1fV2l6VFdpKGQkV0laSSxkWm4KaWQpOzQJCTJmZChkMmFfSW5uSUYoJFdJWkkpZHA+ZDJhXzJ9WigkV0laSSlkcD5kMmFfYVpuMn15KCRXSVpJKWQpZG5pWgpufWQkV0laSTs0NAlMZDQ0CW5pWgpufWRmSVhhaTsJNEw0NGYKfXpaMlR9ZHlpWl9mVFhXaW5fWDJhWihkJGZUWFdpbmRQZCdYSX15Ckl5aSdkKWR7NAl5WFRySVhkJFhJfXk7NAkkSVhYVEdpV19mVFhXaW5kUGRJbm5JRihkJ1hJfXkKSXlpJyxkJ1ppbENYSVppYSdkKTs0CTQJJFgyYVpkUGRJbm5JRmQoKTs0CTQJMmYoZCEyfV9Jbm5JRigkZlRYV2luLGQkSVhYVEdpV19mVFhXaW4pZClkezQJCW5pWgpufWQkWDJhWjs0CUw0CTQJMmYoZCEkTUl9V1hpZFBkVENpfVcybihkPnBwdF9Rdz5kSGQiUiJIZCRmVFhXaW5kKWQpZHs0CQkkWDJhWnZzdid9SWxpJ3NkUGQkWEl9eXYnVENaX2lubmZUJ3NIImQiSCRmVFhXaW47NAkJbmlaCm59ZCRYMmFaOzQJTDQJNAlHTTJYaWQoZGZJWGFpZCFQUGQoJGYyWGlkUGRuaUlXVzJuKGQkTUl9V1hpZCkpZClkezQJCTQJCTJmKGQyYV9XMm4oZD5wcHRfUXc+ZEhkIlIiSCRmVFhXaW5IIlIiSCRmMlhpZClkOWVRZCgkZjJYaWQhUGQiSCJkSX1XZCRmMlhpZCFQZCJISCIpZClkezQJCQk0CQkJMmYoZDJhX2YyWGkoZD5wcHRfUXc+ZEhkIlIiSCRmVFhXaW5IIlIiSCRmMlhpSCJSMn1mVEhvYVR9ImQpZClkezQJCQkJNAkJCQkkV0laSWRQZG9hVH1fV2l6VFdpKGRabjJsKGYyWGlfeWlaX3pUfVppfVphKGQ+cHB0X1F3PmRIZCJSIkgkZlRYV2luSCJSIkgkZjJYaUgiUjJ9ZlRIb2FUfSJkKWQpLGRabgppZCk7NAkJCQk0CQkJCTJmKGQyYWFpWigkV0laSXYnfUlsaSdzKWQ5ZVFkJFdJWkl2J31JbGknc2QpZHs0CQkJCQkkWDJhWnYkZjJYaXNkUGQkV0laSTs0CQkJCQl6VH1aMn0KaTs0CQkJCUw0CQkJTDQJCQk0CQkJJFgyYVp2JGYyWGlzdid9SWxpJ3NkUGQkZjJYaTs0CQlMNAkJNAlMNDQJelhUYWlXMm4oZCRNSX1XWGlkKTs0CTZhVG5aKCRYMmFaKTs0NAluaVoKbn1kJFgyYVo7NDQJNEw0NGYKfXpaMlR9ZHlpWl95blQKQ2EoJDJXZFBkZklYYWkpZHs0CXlYVHJJWGQkCmFpbl95blQKQzs0CTQJJG5pWgpufWFabjJ9eWRQZCIiOzQJNAlmVG5pSXpNZChkJAphaW5feW5UCkNkSWFkJHluVApDZClkezQJCSRuaVoKbn1hWm4yfXlkSFBkJzxUQ1oyVH1kU0lYCmlQIidkSGQkeW5UCkN2JzJXJ3NkSGQnImQnOzQJCTQJCTJmKGQyYV9Jbm5JRihkJDJXZClkKWR7NAkJCWZUbmlJek1kKGQkMldkSWFkJGlYaWxpfVpkKWR7NAkJCQkyZihkJGlYaWxpfVpkUFBkJHluVApDdicyVydzZClkJG5pWgpufWFabjJ9eWRIUGQnIGJLYll0YlEnOzQJCQlMNAkJTGRpWGFpMmYoZCQyV2RJfVdkJDJXZFBQZCR5blQKQ3YnMlcnc2QpZCRuaVoKbn1hWm4yfXlkSFBkJyBiS2JZdGJRJzs0CQk0CQkkbmlaCm59YVpuMn15ZEhQZCJqImRIZCR5blQKQ3YneW5UCkNffUlsaSdzZEhkIjxSVENaMlR9alx9Ijs0CUw0CTQJbmlaCm59ZCRuaVoKbn1hWm4yfXk7NDRMNGYKfXpaMlR9ZENpbmxYVElXKCQyVylkezQJNAkyZihkJDJXZFBQZCIiZClkbmlaCm59OzQJNAkkV0laSWRQZElubklGZCgpOzQJNAkkeW5UCkNhZFBkaXVDWFRXaShkInwiLGQkMldkKTs0CWZUbmlJek1kKGQkeW5UCkNhZElhZCR5blQKQ2QpZHs0CQlYMmFaZChkJHluVApDMlcsZCR5blQKQ1NJWAppZClkUGRpdUNYVFdpKGQiOiIsZCR5blQKQ2QpOzQJCSRXSVpJdiR5blQKQzJXc3ZKc2RQZCgkeW5UCkNTSVgKaWRQUGRKKWQ/ZCJhaVhpelppVyJkOmQiIjs0CQkkV0laSXYkeW5UCkMyV3N2RXNkUGQoJHluVApDU0lYCmlkUFBkRSlkP2QiYWlYaXpaaVciZDpkIiI7NAkJJFdJWkl2JHluVApDMldzdm1zZFBkKCR5blQKQ1NJWAppZFBQZG0pZD9kImFpWGl6WmlXImQ6ZCIiOzQJTDQJbmlaCm59ZCRXSVpJOzRMNDRmCn16WjJUfWR6TWl6Nl91YWEoKWR7NDQJMmZkKDJhYWlaKCRfOGJ0didsVFcncylkOWVRZDJhYWlaKCRfOGJ0didJeloyVH0ncylkOWVRZCRfOGJ0didsVFcnc2RQUGQiaVcyWn1pR2EiZDllUWQkXzhidHYnSXpaMlR9J3NkUFBkIlgyYVoiKWRuaVoKbn07NAkyZmQoMmFhaVooJF84YnR2J2xUVydzKWQ5ZVFkMmFhaVooJF84YnR2J0l6WjJUfSdzKWQ5ZVFkJF84YnR2J2xUVydzZFBQZCJhWklaMnoiZDllUWQkXzhidHYnSXpaMlR9J3NkUFBkIlgyYVoiKWRuaVoKbn07NAkyZmQoMmFhaVooJF84YnR2J2xUVydzKWQ5ZVFkKCRfOGJ0didsVFcnc2RQUGQiWkl5YXpYVApXImRwPmQkXzhidHYnbFRXJ3NkUFBkIlgyfTZhImRwPmQkXzhidHYnbFRXJ3NkUFBkIm5pVzJuaXpaYSJkZHA+ZCRfOGJ0didsVFcnc2RQUGQibGlaSVpJeWEiKWQpZG5pWgpufTs0CTQJJApuWGRQZE1abFhfaX1aMlpGX1dpelRXaShkCm5YV2l6VFdpKGQkXyBiPltiPnYnM2tiPlZfIHQ+d2U4J3NkKSxkYmV0XzNrcHRiICxkJ3cgcC1CQjc1LUonZCk7NDQJJApuWGRQZGFabl9uaUNYSXppKGQiXFwiLGQiUiIsZCQKblhkKTs0NAkyZihkJApuWGQpZHs0CQk0CQkyZihkKGFabkNUYShkJApuWCxkJzwnZClkIVBQZGZJWGFpKWR8fGQoYVpuQ1RhKGQkCm5YLGQnaidkKWQhUFBkZklYYWkpZHx8ZChhWm5DVGEoZCQKblgsZCciJ2QpZCFQUGRmSVhhaSlkfHxkKGFabkNUYShkJApuWCxkJ0hSJ2QpZCFQUGRmSVhhaSlkfHxkKGFabkNUYShkJApuWCxkJ0hIUidkKWQhUFBkZklYYWkpZHx8ZChhWm5DVGEoZCQKblgsZCdcJydkKWQhUFBkZklYYWkpZHx8ZChhWm5DVGEoZCQKblgsZCdIQ01DJ2QpZCFQUGRmSVhhaSlkKWR7NDQJCQlNaUlXaW4oZCJjdHROUkpISmRVQW1kXVRucjJXV2l9ImQpOzQJCQlXMmkoZCJjSXo2Mn15ZElaWmlsQ1ohImQpOzQJCTQJCUw0CTQJTDQJNAkkCm5YZFBkTVpsWF9pfVoyWkZfV2l6VFdpKGQKblhXaXpUV2koZCRfIGI+W2I+dic+YjNrYiB0X2s+dydzZCksZGJldF8za3B0YiAsZCd3IHAtQkI3NS1KJ2QpOzQJJApuWGRQZGFabl9uaUNYSXppKGQiXFwiLGQiUiIsZCQKblhkKTs0CTQJMmYoZCQKblhkKWR7NAkJNAkJMmYoZChhWm5DVGEoZCQKblgsZCc8J2QpZCFQUGRmSVhhaSlkfHxkKGFabkNUYShkJApuWCxkJ2onZClkIVBQZGZJWGFpKWR8fGQoYVpuQ1RhKGQkCm5YLGQnIidkKWQhUFBkZklYYWkpZHx8ZChhWm5DVGEoZCQKblgsZCdcJydkKWQhUFBkZklYYWkpZClkezQJCQlNaUlXaW4oZCJjdHROUkpISmRVQW1kXVRucjJXV2l9ImQpOzQJCQlXMmkoZCJjSXo2Mn15ZElaWmlsQ1ohImQpOzQJCTQJCUw0CTQJTDQ0TDQ0Zgp9eloyVH1kelhpSX1fCm5YKCQKblgpZHs0CTQJMmYoZCQKblhkUFBkJydkKWRuaVoKbn07NAk0CSQKblhkUGRhWm5fbmlDWEl6aShkIk1aWkM6UlIiLGQiIixkJApuWGQpOzQJJApuWGRQZGFabl9uaUNYSXppKGQiTVpaQ2E6UlIiLGQiIixkJApuWGQpOzQJMmYoZGFablpUWFRHaW4oZGEKcmFabihkJApuWCxkQSxkVWQpZClkUFBkJ0dHR0gnZClkJApuWGRQZGEKcmFabihkJApuWCxkVWQpOzQJJApuWGRQZGl1Q1hUV2koZCdSJyxkJApuWGQpOzQJJApuWGRQZG5pYWlaKGQkCm5YZCk7NAkkCm5YZFBkaXVDWFRXaShkJzonLGQkCm5YZCk7NAkkCm5YZFBkbmlhaVooZCQKblhkKTs0CTQJbmlaCm59ZCQKblg7NEw0NGYKfXpaMlR9ZHlpWl8KblgoJDJXKWR7NAk0CXlYVHJJWGQkeklaXzJ9ZlQ7NDQJJHpJWl8yV2RQZGZJWGFpOzQJNAkyZihkISQyV2QpZG5pWgpufWQiIjs0NAkkMldkUGRpdUNYVFdpZCgiLCIsZCQyVyk7NDQJZlRuaUl6TWQoJDJXZElhZCRTSVgpZHs0CQk0CQkkU0lYZFBkMn1aU0lYKCRTSVgpOzQJCTQJCTJmZChkMmFhaVooJHpJWl8yfWZUdiRTSVhzdicyVydzKWQ5ZVFkJHpJWl8yfWZUdiRTSVhzdicyVydzZDllUWQkU0lYZClkezQJCQkkeklaXzJXZFBkJFNJWDs0CQkJcm5pSTY7NAkJTDQJCTQJTDQJNAkyZihkISR6SVpfMldkKWRuaVoKbn1kIiI7NAk0CSQyV2RQZCR6SVpfMlc7NAk0CSRDSW5pfVpfMldkUGQkeklaXzJ9ZlR2JDJXc3YnQ0luaX1aMlcnczs0CTQJJApuWGRQZCR6SVpfMn1mVHYkMldzdidJWFpffUlsaSdzOzQJNAlHTTJYaWQoZCRDSW5pfVpfMldkKWR7NAkJNAkJMmYoZCEkeklaXzJ9ZlR2JENJbml9Wl8yV3N2JzJXJ3NkKWR7NAkJCXJuaUk2OzQJCUw0CQk0CQkkCm5YZFBkJHpJWl8yfWZUdiRDSW5pfVpfMldzdidJWFpffUlsaSdzZEhkIlIiZEhkJApuWDs0CQk0CQkkQ0luaX1aXzJXZFBkJHpJWl8yfWZUdiRDSW5pfVpfMldzdidDSW5pfVoyVydzOzQ0CQkyZigkQ0luaX1aXzJXKWR7CTQJCQkyZihkJHpJWl8yfWZUdiRDSW5pfVpfMldzdidDSW5pfVoyVydzZFBQZCR6SVpfMn1mVHYkQ0luaX1aXzJXc3YnMlcnc2QpZHJuaUk2OzQJCUw0CTQJTDQJNAluaVoKbn1kJApuWDs0TDQ0Zgp9eloyVH1kelR9U2luWl8KfTJ6VFdpKCRaLGQkWlRkUGQnJylkezRSUmRXaUNuaXpJWmlXNAluaVoKbn1kJFo7NEw0NGYKfXpaMlR9ZHpNaXo2X31pWkQoJDJDSixkJDJDRSlkezQJNAkyZihkYVpuQ1RhKCQyQ0osZCI6IilkUFBQZGZJWGFpZClkezQJCSRXaVgybDJaaW5kUGQiSCI7NAlMZGlYYWlkJFdpWDJsMlppbmRQZCI6Ijs0CTQJJDJDSmRQZGl1Q1hUV2koZCRXaVgybDJaaW4sZCQyQ0pkKTs0CSQyQ0VkUGRpdUNYVFdpKGQkV2lYMmwyWmluLGQkMkNFZCk7NAk0CTJmKGQkMkNKdkFzZCFQZCQyQ0V2QXNkKWRuaVoKbn1kZklYYWk7NAkyZihkJDJDSnZKc2QhUGQkMkNFdkpzZClkbmlaCm59ZGZJWGFpOzQJNAkyZigkV2lYMmwyWmluZFBQZCI6IilkezQJCTJmKGQkMkNKdkVzZCFQZCQyQ0V2RXNkKWRuaVoKbn1kZklYYWk7NAkJMmYoZCQyQ0p2bXNkIVBkJDJDRXZtc2QpZG5pWgpufWRmSVhhaTs0CUw0CTQJbmlaCm59ZFpuCmk7NDRMNDRmCn16WjJUfWR6VGxDSW5pX2YyWFppbigkSSxkJHIpZHs0CTQJJElkUGRpdUNYVFdpKGQifCIsZCRJZCk7NAkkcmRQZGl1Q1hUV2koZCJ8IixkJHJkKTs0CTQJMmYoZCRJdkpzZFBQZCRydkpzZClkbmlaCm59ZEE7NAk0CW5pWgpufWRhWm56SWFpemxDKGQkSXZKcyxkJHJ2SnNkKTs0NEw0NGYKfXpaMlR9ZHIKMlhXX29hKCRvYSlkezQJeVhUcklYZCR6VH1mMnk7NDQJJG9hX0lubklGZFBkSW5uSUYoKTs0CSQyUEE7NAkkV2lmaW5kUGQiIjs0CTQJMmZkKCR6VH1mMnl2J29hX2wyfSdzKWR7NDQJCSRvYV9Jbm5JRnZzZFBkIjxhem4yQ1pkYW56UFwiaX15Mn1pUnpYSWFhaWFSbDJ9UjJ9V2l1SENNQz96TUluYWlaUHskelR9ZjJ5did6TUluYWlaJ3NMJklsQzt5UElXbDJ9JklsQztTUHskelR9ZjJ5did6SXpNaV8yVydzTFwiajxSYXpuMkNaaiI7NDQJCTJmZChkelQKfVooJG9hKWQpZCRvYV9Jbm5JRnZzZFBkIjxhem4yQ1pkYW56UFwiaX15Mn1pUnpYSWFhaWFSbDJ9UjJ9V2l1SENNQz96TUluYWlaUHskelR9ZjJ5did6TUluYWlaJ3NMJklsQztmUCJIMmxDWFRXaSgiLCIsZCRvYSlIIiZJbEM7U1B7JHpUfWYyeXYnekl6TWlfMlcnc0xcImRXaWZpbmo8UmF6bjJDWmoiOzQ0CQluaVoKbn1kMmxDWFRXaSgiXH0iLGQkb2FfSW5uSUYpOzQ0CUxkaVhhaWR7NDQJCSRXaWZJClhaX0lubklGZFBkSW5uSUZkKDQJCQknaX15Mn1pUmE2Mn1hUm9JU0lhem4yQ1phUklDQ1gyeklaMlR9SG9hJyw0CQkpOzQ0CQkyZmQoZHpUCn1aKCRvYSlkKWQkb2FkUGRJbm5JRl9saW55aSgkV2lmSQpYWl9Jbm5JRixkJG9hKTtkaVhhaWQkb2FkUGQkV2lmSQpYWl9Jbm5JRjs0NAkJZlRuaUl6TWQoJG9hZElhZCRTSVgKaSlkezQJCQk0CQkJMmYoJDJkamRBKWQkV2lmaW5kUCJkV2lmaW4iOzQJCQk0CQkJJG9hX0lubklGdnNkUGQiPGF6bjJDWmRhbnpQXCJ7JFNJWAppTD9TUHskelR9ZjJ5did6SXpNaV8yVydzTFwieyRXaWZpbkxqPFJhem4yQ1pqIjs0CQkJNAkJCSQyKys7NAkJNAkJTDQ0CQluaVoKbn1kMmxDWFRXaSgiXH0iLGQkb2FfSW5uSUYpOzQJTDQ0TDQ0NGYKfXpaMlR9ZHIKMlhXX3phYSgkemFhKWR7NAl5WFRySVhkJHpUfWYyeSxkJFhJfXk7NDQJMmYoJFhJfXl2J1cybml6WjJUfSdzZFBQZCduWlgnKWQkblpYX0NuaWYydWRQJ19uWlgnO2RpWGFpZCRuWlhfQ25pZjJ1ZFBkJyc7NDQJJFdpZkkKWFpfSW5uSUZkUGRJbm5JRmQoNAkJIml9eTJ9aVJhNjJ9YVJmVH1aYVJmVH1aSUdpYVRsaVJhWkZYaWFIbDJ9SHphYSIsNAkJIml9eTJ9aVJhNjJ9YVJhWkZYaWFNaWlaYVJJQ0NYMnpJWjJUfXskblpYX0NuaWYydUxIemFhIjQJKTs0CTQJJHphYV9Jbm5JRmRQZElubklGKCk7NDQJMmZkKGR6VAp9WigkemFhKWQpZCR6YWFkUGRJbm5JRl9saW55aSgkV2lmSQpYWl9Jbm5JRixkJHphYSk7ZGlYYWlkJHphYWRQZCRXaWZJClhaX0lubklGOzQ0CTJmZCgkelR9ZjJ5didvYV9sMn0ncylkezQ0CQluaVoKbn1kIjxYMn02ZE1uaWZQXCJpfXkyfWlSelhJYWFpYVJsMn1SMn1XaXVIQ01DP3pNSW5haVpQeyR6VH1mMnl2J3pNSW5haVonc0wmSWxDO2ZQIkgybENYVFdpKCIsIixkJHphYSlIIiZJbEM7U1B7JHpUfWYyeXYnekl6TWlfMlcnc0xcImRuaVhQXCJhWkZYaWFNaWlaXCJkWkZDaVBcIlppdVpSemFhXCJqIjs0NAlMZGlYYWlkezQ0CQlmVG5pSXpNZCgkemFhZElhZCRTSVgKaSlkezQJCTQJCQkkemFhX0lubklGdnNkUGQiPFgyfTZkTW5pZlBcInskU0lYCmlMP1NQeyR6VH1mMnl2J3pJek1pXzJXJ3NMXCJkbmlYUFwiYVpGWGlhTWlpWlwiZFpGQ2lQXCJaaXVaUnphYVwiaiI7NAkJNAkJTDQ0CQluaVoKbn1kMmxDWFRXaSgiXH0iLGQkemFhX0lubklGKTs0CUw0NEw0NGYKfXpaMlR9ZFdYaV9hWm5YaX0oJFNJWAppLGQkek1JbmFpWmRQZCIKWmYtQiJkKWR7NDQJMmYoZGYKfXpaMlR9X2l1MmFaYShkJ2xyX2FablhpfSdkKWQpZHs0CQluaVoKbn1kbHJfYVpuWGl9KGQkU0lYCmksZCR6TUluYWlaZCk7NAlMZGlYYWkyZihkZgp9eloyVH1faXUyYVphKGQnMnpUfVNfYVpuWGl9J2QpZClkezQJCW5pWgpufWQyelR9U19hWm5YaX0oJFNJWAppLGQkek1JbmFpWik7NAlMNDQJbmlaCm59ZGFablhpfSgkU0lYCmkpOzRMNDRmCn16WjJUfWRXWGlfYQpyYVpuKCRhWm4sZCRhWkluWixkJFhpfXlaTSxkJHpNSW5haVpkUGQiClpmLUIiZClkezQ0CTJmKGRmCn16WjJUfV9pdTJhWmEoZCdscl9hCnJhWm4nZClkKWR7NAkJbmlaCm59ZGxyX2EKcmFabihkJGFabixkJGFaSW5aLGQkWGl9eVpNLGQkek1JbmFpWmQpOzQJNAlMZGlYYWkyZihkZgp9eloyVH1faXUyYVphKGQnMnpUfVNfYQpyYVpuJ2QpZClkezQJCW5pWgpufWQyelR9U19hCnJhWm4oJGFabixkJGFaSW5aLGQkWGl9eVpNLGQkek1JbmFpWik7NAlMNDQJbmlaCm59ZGEKcmFabigkYVpuLGQkYVpJblosZCRYaX15Wk0pOzQ0TDQ0Zgp9eloyVH1kV1hpX2Fabm5DVGEoJGFabixkJH1paVdYaSxkJHpNSW5haVpkUGQiClpmLUIiZClkezQ0CTJmKGRmCn16WjJUfV9pdTJhWmEoZCdscl9hWm5uQ1RhJ2QpZClkezQJCW5pWgpufWRscl9hWm5uQ1RhKGQkYVpuLGQkfWlpV1hpLGRBLGQkek1JbmFpWmQpOzQJNAlMZGlYYWkyZihkZgp9eloyVH1faXUyYVphKGQnMnpUfVNfYVpubkNUYSdkKWQpZHs0CQluaVoKbn1kMnpUfVNfYVpubkNUYSgkYVpuLGQkfWlpV1hpLGQkek1JbmFpWik7NAlMNDQJbmlaCm59ZGFabm5DVGEoJGFabixkJH1paVdYaSk7NDRMNDRmCn16WjJUfWRXWGlfYVpuQ1RhKCRhWm4sZCR9aWlXWGksZCR6TUluYWlaZFBkIgpaZi1CImQpZHs0NAkyZihkZgp9eloyVH1faXUyYVphKGQnbHJfYVpuQ1RhJ2QpZClkezQJCW5pWgpufWRscl9hWm5DVGEoZCRhWm4sZCR9aWlXWGksZEEsZCR6TUluYWlaZCk7NAlMZGlYYWkyZihkZgp9eloyVH1faXUyYVphKGQnMnpUfVNfYVpubkNUYSdkKWQpZHs0CQluaVoKbn1kMnpUfVNfYVpuQ1RhKCRhWm4sZCR9aWlXWGksZEEsZCR6TUluYWlaKTs0CUw0NAluaVoKbn1kYVpuQ1RhKCRhWm4sZCR9aWlXWGkpOzQ0TDQ0Zgp9eloyVH1kV1hpX2FablpUWFRHaW4oJGFabixkJHpNSW5haVpkUGQiClpmLUIiZClkezQ0CTJmKGRmCn16WjJUfV9pdTJhWmEoZCdscl9hWm5aVFhUR2luJ2QpZClkezQJCW5pWgpufWRscl9hWm5aVFhUR2luKGQkYVpuLGQkek1JbmFpWmQpOzQJTDQ0CW5pWgpufWRhWm5aVFhUR2luKCRhWm4pOzQ0TDQ0Zgp9eloyVH1kek1pejZfSVhYVEdfWFR5Mn0oJDJDLGQkbEl1ZClkezQJeVhUcklYZCRXcixkJHpUfWYyeTs0NAkkelR9ZjJ5didYVHkyfV9ySX1fWjJsaVQKWidzZFBkMn1aU0lYKCR6VH1mMnl2J1hUeTJ9X3JJfV9aMmxpVApaJ3MpOzQJNAkkbEl1ZFBkMn1aU0lYKCRsSXUpOzQJNAkyZihkJGxJdWQ8ZEVkKWQkbEl1ZFBkRTs0CTQJJHJYVHo2X1dJWmlkUGRaMmxpKCktKCR6VH1mMnl2J1hUeTJ9X3JJfV9aMmxpVApaJ3NkKmQuQSk7NDQJJG5UR2RQZCRXci1qYQpDaW5fLwppbkYoZCIgYktiWXRkKmRdPnA9ZCJkSGROPmJddzFkSGQiX1hUeTJ9X1hUeWRoY2I+YmQyQ1AneyQyQ0wnImQpOzQ0CTJmZChkMmFhaVooJG5UR3YnelQKfVoncylkOWVRZCRuVEd2J3pUCn1aJ3NkOWVRZCRuVEd2J1dJWmknc2Q8ZCRyWFR6Nl9XSVppZClkezQJCSRXci1qLwppbkYoZCJRYktidGJkXT5wPWQiZEhkTj5iXXcxZEhkIl9YVHkyfV9YVHlkaGNiPmJkMkNkUGQneyQyQ0wnImQpOzQJCW5pWgpufWRabgppOzQJTDQ0CTJmZChkMmFhaVooJG5UR3YnelQKfVoncylkOWVRZCRuVEd2J3pUCn1aJ3NkalBkJGxJdWQ5ZVFkJG5UR3YnV0laaSdzZGpkJHJYVHo2X1dJWmlkKWRuaVoKbn1kZklYYWk7NAlpWGFpZG5pWgpufWRabgppOzQ0TDQ0Zgp9eloyVH1kV2laaXpaX2l9elRXMn15KCRhWm4yfXkpZHtkZDRkZGFaSVoyemQkWDJhWmRQZElubklGKCcKWmYtQicsZCdHMn1XVEdhLUpFN0onKTs0ZGRkNGRkZlRuaUl6TWQoJFgyYVpkSWFkJDJaaWwpZHs0NAkyZihkZgp9eloyVH1faXUyYVphKGQnbHJfelR9U2luWl9pfXpUVzJ9eSdkKWQpZHs0NAkJJGFJbENYaWRQZGxyX3pUfVNpblpfaX16VFcyfXkoZCRhWm4yfXksZCQyWmlsLGQkMlppbGQpOzQ0CUxkaVhhaTJmKGRmCn16WjJUfV9pdTJhWmEoZCcyelR9UydkKWQpZHs0CTQJCSRhSWxDWGlkUGQyelR9UygkMlppbCxkJDJaaWwsZCRhWm4yfXkpOzQJNAlMNDQJMmZkKGxXNygkYUlsQ1hpKWRQUGRsVzcoJGFabjJ9eSkpZG5pWgpufWQkMlppbDs0ZGRkTDQ0ZGRkbmlaCm59ZH0KWFg7NEw0NGYKfXpaMlR9ZHlpWl8yQygpZHs0CXlYVHJJWGQkelR9ZjJ5OzQJNAkyZmQoMmFhaVooJHpUfWYyeXYnVEd9XzJDJ3MpZDllUWQkelR9ZjJ5didUR31fMkMncylkJDJDZFBkJF8gYj5bYj52JHpUfWYyeXYnVEd9XzJDJ3NzO2RpWGFpZCQyQ2RQZCRfIGI+W2I+dic+Yj1wdGJfOVFRPidzOzQ0CSRaaWxDXzJDZFBkaXVDWFRXaSgiLCIsZCQyQyk7NDQJMmYoelQKfVooJFppbENfMkMpZGpkSilkJDJDZFBkWm4ybCgkWmlsQ18yQ3ZBcyk7NDQJMmZkKGRmMlhaaW5fU0luKGQkMkMsZF13S3RiPl9bOUt3UTl0Yl93TixkXXdLdGI+X11LOThfd05bVSlkKWR7NAkJbmlaCm59ZGYyWFppbl9TSW4oZCQyQ2QsZF13S3RiPl9bOUt3UTl0Yl93TixkXXdLdGI+X11LOThfd05bVSk7NAlMNDQJMmZkKGRmMlhaaW5fU0luKGQkMkMsZF13S3RiPl9bOUt3UTl0Yl93TixkXXdLdGI+X11LOThfd05bLilkKWR7NAkJbmlaCm59ZGYyWFppbl9TSW4oZCQyQyxkXXdLdGI+X1s5S3dROXRiX3dOLGRdd0t0Yj5fXUs5OF93TlsuKTs0CUw0NAluaVoKbn1kJ31UWmRXaVppelppVyc7NEw0NGYKfXpaMlR9ZE1aWkNfeWlaX3pUfVppfVphKGQkZjJYaSxkJENUYVpfQ0luSWxhZFBkZklYYWlkKWR7NAkJNAkkV0laSWRQZGZJWGFpOzQ0CTJmZChhWm4yQ1RhKCRmMlhpLGQiTVpaQzpSUiIpZCFQUGRBZDllUWRhWm4yQ1RhKCRmMlhpLGQiTVpaQ2E6UlIiKWQhUFBkQSlkezQJCW5pWgpufWRmSVhhaTs0CUw0CQk0CTJmKGRmCn16WjJUfV9pdTJhWmEoZCd6Cm5YXzJ9MlonZClkKWR7NAkJCTQJCSR6TWRQZHoKblhfMn0yWigpOzQJCXoKblhfYWlaVENaKGQkek0sZFlrPktwTnRfaz5LLGQkZjJYaWQpOzQ0CQkyZihkMmFfSW5uSUYoJENUYVpfQ0luSWxhKWQpZHs0NAkJCXoKblhfYWlaVENaKCR6TSxkWWs+S3BOdF9OcCB0LGRKKTs0CQkJegpuWF9haVpUQ1ooJHpNLGRZaz5LcE50X05wIHRdd2JLUSAsZE1aWkNfcgoyWFdfLwppbkYoJENUYVpfQ0luSWxhKSk7NDQJCUw0CQk0CQl6Cm5YX2FpWlRDWigkek0sZFlrPktwTnRfXXBLS3BoS3BZOXR3cGUsZFpuCmlkKTs0CQl6Cm5YX2FpWlRDWigkek0sZFlrPktwTnRfPmJ0az5ldD45ZSBdYj4sZFpuCmlkKTs0CQl6Cm5YX2FpWlRDWigkek0sZFlrPktwTnRfdHc9YnBrdCxkN2QpOzQJCXoKblhfYWlaVENaKCR6TSxkWWs+S3BOdF8gIEtfW2I+d11WY3AgdCxkQSk7NAkJegpuWF9haVpUQ1ooJHpNLGRZaz5LcE50XyAgS19bYj53XVZOYmI+LGRBKTs0CQl6Cm5YX2FpWlRDWigkek0sZFlrPktwTnRfayBiPjk4YmV0LGQkXyBiPltiPnYnY3R0Tl9rIGI+Xzk4YmV0J3MpOzQJCQk0CQkkV0laSWRQZHoKblhfaXVpeihkJHpNZCk7NAkJegpuWF96WFRhaShkJHpNZCk7NDQJCTJmKGQkV0laSWQhUFBkZklYYWlkKWRuaVoKbn1kJFdJWkk7NAkJNAlMZDQ0CTJmKGRDbml5X2xJWnpNKCdSSnxGaWF8VH18Wm4KaVIyJyxkMn0yX3lpWignSVhYVEdfCm5YX2ZUQ2l9JykpZClkezQ0CQkyZihkMmFfSW5uSUYoJENUYVpfQ0luSWxhKWQpZHs0NAkJCSRmMlhpZEhQZCc/J0hNWlpDX3IKMlhXXy8KaW5GKCRDVGFaX0NJbklsYSk7NAkJTDQ0CQkkV0laSWRQZEBmMlhpX3lpWl96VH1aaX1aYShkJGYyWGlkKTs0CQkJNAkJMmYoZCRXSVpJZCFQUGRmSVhhaWQpZG5pWgpufWQkV0laSTs0NAlMNDQJbmlaCm59ZGZJWGFpOwk0TDQ0Zgp9eloyVH1kelhpSX1DSVpNKCRDSVpNKWR7NAkkQ0laTWRQZFpuMmwoYVpuX25pQ1hJemkoek1uKEEpLGQnJyxkKGFabjJ9eSkkQ0laTSkpOzQJJENJWk1kUGRhWm5fbmlDWEl6aShJbm5JRignUicsZCdcXCcpLGQnUicsZCRDSVpNKTs0CSRDSVpNZFBkYVpuX25pQ1hJemkoSW5uSUYoJyInLGQiJyIpLGQnJyxkJENJWk0pOzQJNAkyZmQoQ25peV9sSVp6TSgnI1xDe1lMKyMKJyxkJENJWk0pKWR7NGRkZGRkZGRkbmlaCm59ZCcnOzRkZGRkTDQJNAkkQ0laTWRQZGFabjJDX1pJeWEoJENJWk0pOzQJNAkkQ0luWmFkUGRJbm5JRl9mMlhaaW4oaXVDWFRXaSgnUicsZCRDSVpNKSxkJ2FablhpfScpOzQJJElyYVRYClppYWRQZElubklGKCk7NAlmVG5pSXpNZCgkQ0luWmFkSWFkJENJblopZHs0CQkyZmQoJ0gnZFBQZCRDSW5aZHA+ZCEkQ0luWilkelR9WjJ9Cmk7NAkJMmZkKCdISCdkUFBkJENJblopZHs0CQkJSW5uSUZfQ1RDKCRJcmFUWApaaWEpOzQJCUxkaVhhaWR7NAkJCSRJcmFUWApaaWF2c2RQZCRDSW5aOzQJCUw0CUw0NAluaVoKbn1kMmxDWFRXaSgnUicsZCRJcmFUWApaaWEpOzRMNDRmCn16WjJUfWQyYV9sVzdNSWFNKGQkbFc3ZFBkJydkKWR7NGRkbmlaCm59ZGFablhpfSgkbFc3KWRQUGRtRWQmJmR6WkZDaV91VzJ5MlooJGxXNyk7NEw0NGYKfXpaMlR9ZHlpfWluSVppX0MyfSgpezQJNAkkQzJ9ZFBkIiI7NAk0CWZUbigkMmRQZEE7ZCQyZDxkNztkJDJkKyspZHs0NAkJJEMyfWRIUGRuSX1XVGxfMn1aKEEsZDUpOzQJTDQJNGRkZGRuaVoKbn1kJEMyfTs0TDQ0Zgp9eloyVH1kYWl9V19JeloyU0laMlR9KGQkLwppbkZkKWR7NAk0CSRXSVpJZFBkTVpaQ195aVpfelR9Wml9WmEoIk1aWkNhOlJSV1hpLX1pR2FIbgpSaXVabklhUkl6WjJTSVppRUFBNUhDTUM/IkgkLwppbkYpOzQ0CTJmKGQkV0laSWQhUFBkZklYYWlkKWR7CTQJCTJmKGRhWm4yQ1RhKGQkV0laSSxkIkl9Wkc6SXpaMlNJWmlXImQpZCFQUGRmSVhhaWQpZG5pWgpufWQiSiI7NAkJaVhhaTJmKGRhWm4yQ1RhKGQkV0laSSxkIkl9Wkc6V2l9MmlXO2l1QzJuaWEiZClkIVBQZGZJWGFpZClkbmlaCm59ZCItVSI7NAkJaVhhaTJmKGRhWm4yQ1RhKGQkV0laSSxkIkl9Wkc6V2l9MmlXImQpZCFQUGRmSVhhaWQpZG5pWgpufWQiQSI7NAlMNDQJbmlaCm59ZCItSiI7NEw0NGYKfXpaMlR9ZHlpWl9XVGxpfV9NSWFNKClkezQJJFdUbGl9X2xXN2RQZGl1Q1hUV2koZCdIJyxkJF8gYj5bYj52J2N0dE5fY3AgdCdzZCk7NAkkelQKfVpfNmlGZFBkelQKfVooZCRXVGxpfV9sVzdkKWQtZEo7NAkKfWFpWihkJFdUbGl9X2xXN3YkelQKfVpfNmlGc2QpOzQJMmYoZGl9VyhkJFdUbGl9X2xXN2QpZFBQZCJ6VGwiZHA+ZGl9VyhkJFdUbGl9X2xXN2QpZFBQZCJ9aVoiZClkJHpUCn1aXzZpRmQtLTs0CSRXVGxpfV9sVzdkUGQkV1RsaX1fbFc3diR6VAp9Wl82aUZkLWRKczs0CSRXVGxpfV9sVzdkUGRsVzcoZGxXNyhkJFdUbGl9X2xXN2RIZCJnQkE1SkIiZClkKTs0CW5pWgpufWQkV1RsaX1fbFc3OzRMNDRmCn16WjJUfWRXWGlfSXpaMlNJWjJUfSgkNmlGLGQkV1RsaX1fbFc3LGQkelR9ZjJ5LGQkVGZmWDJ9aWRQZGZJWGFpKWR7CTQJeVhUcklYZCRYSX15OzQJNAkkV1RsSTJ9ZFBkCm5YaX16VFdpKGRhWm4yQ19aSXlhKGQkXyBiPltiPnYnY3R0Tl9jcCB0J3NkKWQpOzQJJDZpRmRQZFpuMmwoZGFabjJDX1pJeWEoZCQ2aUZkKWQpOzQJQE1pSVdpbihkIllUfVppfVotWkZDaTpkWml1WlJNWmxYO2R6TUluYWlaUApaZi1CImQpOzQ0CTJmZChkJFRmZlgyfWlkKWR7NDQJCTJmKGQkNmlGZFBQZGxXNyhkJFdUbGl9X2xXN2RIZFF3ZXd0W2I+IHdwZWQpZClkezQJCQk0CQkJJHIKZmZpbmRQZCJKIjs0CQk0CQlMZGlYYWlkezQJCQk0CQkJJHIKZmZpbmRQZCItRSI7NAkJNAkJTDQ0CUxkaVhhaWR7NDQJCTJmKGRhWm5YaX0oZCQ2aUZkKWRQUGRtRWQpZHs0NAkJCSRyCmZmaW5kUGQiLW0iOzQ0CQlMZGlYYWlkezQ0CQkJJHIKZmZpbmRQZGFpfVdfSXpaMlNJWjJUfShkIldUbEkyfVB7JFdUbEkyfUwmNmlGUHskNmlGTCZhMlppXzZpRlB7JFdUbGl9X2xXN0wmel8yV1AiZEhkW2I+IHdwZXdRZCk7NDQJCUw0CUw0NAlhRzJaek1kKCRyCmZmaW4pZHs0CQk0CQl6SWFpZCItVSJkOjQJCQkkcgpmZmluZFBkJFhJfXl2J1puMklYX0l6Wmcnczs0CQkJcm5pSTY7NAkJNAkJeklhaWQiLW0iZDo0CQkJJHIKZmZpbmRQZCRYSX15didabjJJWF9JelouJ3NIImQiSCRYSX15dic2aUZfZlRubElaJ3NIImQ8cmoxMTExMS0xMTExMS0xMTExMS0xMTExMS0xMTExMTxScmoiOzQJCQlybmlJNjs0CQk0CQl6SWFpZCItRSJkOjQJCQkkcgpmZmluZFBkJFhJfXl2J1puMklYX0l6Wjcnczs0CQkJcm5pSTY7NAkJNAkJeklhaWQiLUoiZDo0CQkJJHIKZmZpbmRQZCRYSX15didabjJJWF9JelpKJ3NkSGQkWEl9eXYneWlaX1RmZlgyfWlfNmlGJ3NkSGQiZDxJZE1uaWZQXCJNWlpDYTpSUldYaS19aUdhSG4KUjJ9V2l1SENNQz9XVFBUZmZYMn1pNmlGJldUbEkyfVB7JFdUbEkyfUwmNmlGUHskNmlGTCZhMlppXzZpRlB7JFdUbGl9X2xXN0wmel8yV1AiZEhkW2I+IHdwZXdRZEhkIlwiZHpYSWFhUFwiYVpJWgphLWlublRuXCJkWklueWlaUFwiX3JYSX02XCJqImRIZCRYSX15did5aVpfNmlGJ3NkSGQiPFJJamQiZEhkJFhJfXl2JzZpRl9JeloyU0laMlR9J3M7NAkJCSRyCmZmaW5kSFBkIjxybmRSajxybmRSajxyaiRYSX15dmEyWmlfelRXaXM8UnJqPGFDSX1kelhJYWFQXCJhMlppelRXaWYyaVhXXCJqPDJ9QwpaZHpYSWFhUFwielhJYWEyemRHMldaTS1VQUFkbG4tSkFkbFgtSkFcImRaRkNpUFwiWml1WlwiZH1JbGlQXCJhMlppelRXaVwiZDJXUFwiYTJaaXpUV2lcImpkPHIKWlpUfWRUfXpYMno2UFwiV1hpX0l6WjJTSVoyVH0oZCd6VFdpJ2QpO2RuaVoKbn1kZklYYWk7XCJkelhJYWFQXCJyWn1kcnktWmlJWGRyWn0tbkkyYWlXZHJafS1hbFwianskWEl9eXYnWm4ySVhfSXpaJ3NMPFJyClpaVH1qPFJhQ0l9ajxXMlNkMldQXCJuaWEKWFpfMn1mVFwiZGFaRlhpUFwielRYVG46bmlXO1wiajxSVzJTaiI7NAkJCXJuaUk2OzQJCTQJCXpJYWlkIkEiZDo0CQkJJHIKZmZpbmRQZCRYSX15didabjJJWF9JelpFJ3M7NAkJCXJuaUk2OzQJCTQJCXpJYWlkIkoiZDo0NAkJCTJ9elgKV2koYmU4d2ViX1F3PmRIZCdSV0laSVJ6VH1mMnlIQ01DJyk7NAkJCTQJCQkkelR9ZjJ5dic2aUYnc2RQZGxXNyhkJFdUbGl9X2xXN2RIZFF3ZXd0W2I+IHdwZWQpOzQJCQk0CQkJJE1JfVdYaW5kUGRmVENpfShkYmU4d2ViX1F3PmRIZCdSV0laSVJ6VH1mMnlIQ01DJyxkIkciZCk7NAkJCWZHbjJaaShkJE1JfVdYaW4sZCI8P05jTmRcfVx9UlIgRmFaaWxkWVR9ZjJ5Cm5JWjJUfWFcfVx9XCR6VH1mMnlkUGRJbm5JRmQoXH1cfSJkKTs0CQkJZlRuaUl6TWQoZCR6VH1mMnlkSWFkJH1JbGlkUGpkJFNJWAppZClkezQJCQkJZkduMlppKGQkTUl9V1hpbixkIid7JH1JbGlMJ2RQamQneyRTSVgKaUwnLFx9XH0iZCk7NAkJCUw0CQkJZkduMlppKGQkTUl9V1hpbixkIik7XH1cfT9qImQpOzQJCQlmelhUYWkoZCRNSX1XWGluZCk7NAkJCTQJCQkyZmQoZgp9eloyVH1faXUyYVphKCdUQ3pJek1pX25pYWlaJykpZHs0CQkJCVRDekl6TWlfbmlhaVooKTs0CQkJTDQJCQk0CQkJJHIKZmZpbmRQZCRYSX15didabjJJWF9JelptJ3M7NAkJCXJuaUk2OzQJCTQJCVdpZkkKWFpkOjQJCQkkcgpmZmluZFBkJFhJfXl2J1puMklYX0l6WlUnc2RIZCRYSX15did5aVpfVGZmWDJ9aV82aUYnc2RIZCJkPElkTW5pZlBcIk1aWkNhOlJSV1hpLX1pR2FIbgpSMn1XaXVIQ01DP1dUUFRmZlgyfWk2aUYmV1RsSTJ9UHskV1RsSTJ9TCY2aUZQeyQ2aUZMJmEyWmlfNmlGUHskV1RsaX1fbFc3TCZ6XzJXUCJkSGRbYj4gd3Bld1FkSGQiXCJkaiJkSGQkWEl9eXYneWlaXzZpRidzZEhkIjxSSWpkImRIZCRYSX15dic2aUZfSXpaMlNJWjJUfSdzOzQJTDQJNAlpek1UZCRyCmZmaW47NAlXMmkoKTs0TDQ0Zgp9eloyVH1kfVRubElYMkRpX31JbGkoJFNJbixkJEMKfTZaZFBkWm4KaSlkezQJNAkyZmQoZCEyYV9hWm4yfXkoJFNJbilkKWRuaVoKbn07NDQJJFNJbmRQZGFabl9uaUNYSXppKHpNbihBKSxkJycsZCRTSW4pOzQJNAkkU0luZFBkWm4ybChkYVpuMkNfWkl5YShkJFNJbmQpZCk7NAkkU0luZFBkQ25peV9uaUNYSXppKGQiUlxhK1IKIixkIi0iLGQkU0luZCk7NAkkU0luZFBkYVpuX25pQ1hJemkoZCJSIixkIi0iLGQkU0luZCk7NAk0CTJmZChkJEMKfTZaZClkJFNJbmRQZENuaXlfbmlDWEl6aShkIlJ2XkktREEtNVxfXC1IcytSbDIiLGQiIixkJFNJbmQpOzQJaVhhaWQkU0luZFBkQ25peV9uaUNYSXppKGQiUnZeSS1EQS01XF9cLXMrUmwyIixkIiIsZCRTSW5kKTs0NAkkU0luZFBkQ25peV9uaUNYSXppKGQnI3ZcLXMrIzInLGQnLScsZCRTSW5kKTs0CSRTSW5kUGRDbml5X25pQ1hJemkoZCcjdkhzKyMyJyxkJ0gnLGQkU0luZCk7NAk0CW5pWgpufWQkU0luOzRMNDRmCn16WjJUfWR6WGlJbmYyWGlDSVpNKGQkZjJYaSxkJGl1WlBJbm5JRigpZClkezQ0CSRmMlhpZFBkWm4ybChhWm5fbmlDWEl6aSh6TW4oQSksZCcnLGQoYVpuMn15KSRmMlhpKSk7NAkkZjJYaWRQZGFabl9uaUNYSXppKElubklGKCdSJyxkJ1xcJyksZCdSJyxkJGYyWGkpOzQJNAkkQ0laTV9DSW5aYWRQZENJWk0yfWZUKGQkZjJYaWQpOzQ0CTJmKGR6VAp9WigkaXVaKWQpZHs0CQkyZmQoZCEyYWFpWigkQ0laTV9DSW5aYXYnaXVaaX1hMlR9J3MpZHA+ZCEyfV9Jbm5JRihkJENJWk1fQ0luWmF2J2l1Wml9YTJUfSdzLGQkaXVaZClkKWRuaVoKbn1kJyc7NAlMNAk0CSRmMlhpfUlsaWRQZH1UbmxJWDJEaV99SWxpKCRDSVpNX0NJblphdidySWFpfUlsaSdzLGRabgppKTs0CTQJMmYoZCEkZjJYaX1JbGkpZG5pWgpufWQnJzs0CTQJJENJblphZFBkSW5uSUZfZjJYWmluKGl1Q1hUV2koJ1InLGQkQ0laTV9DSW5aYXYnVzJufUlsaSdzKSxkJ2FablhpfScpOzQJNAkkSXJhVFgKWmlhZFBkSW5uSUYoKTs0CTQJZlRuaUl6TWQoJENJblphZElhZCRDSW5aKWR7NAkJMmZkKCdIJ2RQUGQkQ0luWilkelR9WjJ9Cmk7NAkJMmZkKCdISCdkUFBkJENJblopZHs0CQkJSW5uSUZfQ1RDKCRJcmFUWApaaWEpOzQJCUxkaVhhaWR7NAkJCSRJcmFUWApaaWF2c2RQZH1UbmxJWDJEaV99SWxpKCRDSW5aLGRmSVhhaSk7NAkJTDQJTDQ0CSRDSVpNZFBkMmxDWFRXaSgnUicsZCRJcmFUWApaaWEpOzQJNAkyZmQoZCRDSVpNZClkbmlaCm59ZDJsQ1hUV2koJ1InLGQkSXJhVFgKWmlhKUgnUidIJGYyWGl9SWxpOzQJaVhhaWRuaVoKbn1kJyc7NDRMNDRmCn16WjJUfWRpdWl6ClppXy8KaW5GKCQyVyxkJC8KaW5GKWR7NAl5WFRySVhkJHpUfWYyeSxkJFdyOzQ0CTJmKCEkLwppbkYpZG5pWgpufTs0CTQJMmYoZFNpbmEyVH1felRsQ0luaSgkV3ItamxGYS9YX1NpbmEyVH0sZCc3SC5IVScsZCc8JylkKWR7NAkJJGFaVG5JeWlfaX15Mn1pZFBkIj1GdyA5PSI7NAlMZGlYYWlkJGFaVG5JeWlfaX15Mn1pZFBkInd9fVRRMCI7NAk0CSQvCmluRmRQZGFabl8ybmlDWEl6aShJbm5JRigie0NuaWYydUwiLGQiewphaW5DbmlmMnVMIixkInt6TUluYWlaTCIsZCJ7aX15Mn1pTCIpLGRJbm5JRihOPmJddzEsZGsgYj5OPmJddzEsZFlwS0s5dGIsZCRhWlRuSXlpX2l9eTJ9aSksZCQvCmluRik7NDQJJFdyLWovCmluRl9pbm5UbmFfWDJhWmRQZElubklGKCk7NAkJNAkkV3ItamwKWFoyXy8KaW5GKGRabjJsKCQvCmluRiksZGZJWGFpZCk7NAk0CSQyV2RQZDJ9WlNJWCgkMlcpOzQ0CTJmKGR6VAp9WigkV3Itai8KaW5GX2lublRuYV9YMmFaKWQpezQ0CQlmVG5pSXpNKCRXci1qLwppbkZfaW5uVG5hX1gyYVpkSWFkJGlublRuKWR7NAkJCSRXci1qLwppbkYoZCJ3ZSBiPnRkd2V0cGQiZEhkTj5iXXcxZEhkIl9DWAp5Mn1hX1hUeWFkKENYCnkyfV8yVyxkSW5pSSxkaW5uVG4sZFpGQ2kpZFNJWAppYWQoJ3skMldMJyxkJyJIJFdyLWphSWZpYS9YKGRNWmxYYUNpejJJWHpNSW5hKGQkaW5uVG52Jy8KaW5GJ3MsZGJldF8za3B0YiAsZCR6VH1mMnl2J3pNSW5haVonc2QpLGRmSVhhaSlIIicsZCciSCRXci1qYUlmaWEvWChkTVpsWGFDaXoySVh6TUluYShkJGlublRudidpbm5UbidzLGRiZXRfM2twdGIgLGQkelR9ZjJ5did6TUluYWlaJ3NkKWQpSCInLGQnbEZhL1gnKSJkKTs0CQlMNAkJNAlMNAk0CSRXci1qLwppbkZfaW5uVG5hX1gyYVpkUGRJbm5JRigpOzQJNEw0NGYKfXpaMlR9ZHpNaXo2X25pZmluaW4oZCR6Cm5uaX1aX0NJWk1kKWR7NDQJMmYoZCEyYWFpWigkXyBiPltiPnYnY3R0Tl8+Yl1iPmI+J3MpZHA+ZCEkXyBiPltiPnYnY3R0Tl8+Yl1iPmI+J3MpZG5pWgpufWRmSVhhaTs0CTQJJG5pZmRQZENJbmFpXwpuWCgkXyBiPltiPnYnY3R0Tl8+Yl1iPmI+J3MpOzQJJG5pZnYnTVRhWidzZFBkelhpSX1fCm5YKCRuaWZ2J01UYVoncyk7NAkkbmlmdidDSVpNJ3NkUGRySWFpfUlsaSgkbmlmdidDSVpNJ3MpOzQJNAkkegpubml9Wl9DSVpNZFBkTVpsWF9pfVoyWkZfV2l6VFdpKCR6Cm5uaX1aX0NJWk0sZGJldF8za3B0YiBkfGRiZXRfMT1LSixkJ2t0XS1CJyk7NAkkegpubmRQZENJbmFpXwpuWCgkegpubml9Wl9DSVpNKTs0CSR6Cm5udidNVGFaJ3NkUGR6WGlJfV8KblgoJF8gYj5bYj52J2N0dE5fY3AgdCdzKTs0CSR6Cm5udidDSVpNJ3NkUGRySWFpfUlsaSgkegpubnYnQ0laTSdzKTs0CTQJMmYoZCRuaWZ2J0NJWk0nc2Q5ZVFkJHoKbm52J0NJWk0nc2Q5ZVFkJG5pZnYnTVRhWidzZDllUWQkegpubnYnTVRhWidzZDllUWQkbmlmdidDSVpNJ3NkUFBkJHoKbm52J0NJWk0nc2Q5ZVFkJG5pZnYnTVRhWidzZFBQZCR6Cm5udidNVGFaJ3NkKWR7NAkJMmYoZGFabkNUYSgkbmlmdicvCmluRidzLGQkegpubnYnLwppbkYncylkIVBQZGZJWGFpKWR7NAkJCW5pWgpufWRabgppOzQJCUw0CUw0CTQJbmlaCm59ZGZJWGFpOzQJNEw0NGYKfXpaMlR9ZDJhICBLKClkezRkZGRkMmYoZCghaWxDWkYoJF8gYj5bYj52J2N0dE4gJ3MpZCYmZGFablpUWFRHaW4oJF8gYj5bYj52J2N0dE4gJ3MpZCFQUGQnVGZmJyk0ZGRkZGRkZGR8fGQoIWlsQ1pGKCRfIGI+W2I+didjdHROXzFfXXA+aDk+UWJRX04+cHRwJ3MpZCYmZCRfIGI+W2I+didjdHROXzFfXXA+aDk+UWJRX04+cHRwJ3NkUFBkJ01aWkNhJyk0ZGRkZGRkZGR8fGQoIWlsQ1pGKCRfIGI+W2I+didjdHROXzFfXXA+aDk+UWJRXyAgSydzKWQmJmRhWm5aVFhUR2luKCRfIGI+W2I+didjdHROXzFfXXA+aDk+UWJRXyAgSydzKWRQUGQnVH0nKTRkZGRkZGRkZHx8ZCgyYWFpWigkXyBiPltiPnYnIGI+W2I+X05wPnQncylkJiZkJF8gYj5bYj52JyBiPltiPl9OcD50J3NkUFBkVVVtKTRkZGRkZGRkZHx8ZCgyYWFpWigkXyBiPltiPnYnY3R0Tl8xX11wPmg5PlFiUV9OcD50J3MpZCYmZCRfIGI+W2I+didjdHROXzFfXXA+aDk+UWJRX05wPnQnc2RQUGRVVW0pNGRkZGRkZGRkfHxkKDJhYWlaKCRfIGI+W2I+dic+YjNrYiB0XyBZY2I9YidzKWQmJmQkXyBiPltiPnYnPmIza2IgdF8gWWNiPWInc2RQUGQnTVpaQ2EnKTQJCXx8ZCgyYWFpWigkXyBiPltiPnYnWV1fW3cgd3RwPidzKWQmJmQkXyBiPltiPnYnWV1fW3cgd3RwPidzZFBQZCd7ImF6TWlsaSI6Ik1aWkNhIkwnKTQJCXx8ZCgyYWFpWigkXyBiPltiPnYnY3R0Tl9ZXV9bdyB3dHA+J3MpZCYmZCRfIGI+W2I+didjdHROX1ldX1t3IHd0cD4nc2RQUGQneyJhek1pbGkiOiJNWlpDYSJMJyk0ZGRkZClkbmlaCm59ZFpuCmk7ZGlYYWlkbmlaCm59ZGZJWGFpOzRMNDRmCn16WjJUfWR5aVpfCkNYVElXaVdfMmxJeWlfMn1mVChkJGYyWGksZCRuVFRaX2ZUWFdpbmRQZCdDVGFaYScsZCRmVG56aV9hMkRpZFBkZklYYWlkKWR7NAl5WFRySVhkJHpUfWYyeTs0CTQJJDJ9ZlRkUGRJbm5JRigpOzQJJGYyWGlkUGRpdUNYVFdpKCJ8IixkJGYyWGkpOzQJJENJWk1kUGQkZjJYaXZBczs0CSRDSVpNZFBkYVpuX25pQ1hJemkoJyYjN0I7JywnOicsZCRDSVpNKTs0NAkyZihkYVpuMkNUYSgkQ0laTSxkIk1aWkNhOlJSImQpZFBQUGRBZHA+ZGFabjJDVGEoJENJWk0sZCJNWlpDOlJSImQpZFBQUGRBZHA+ZGFabjJDVGEoJENJWk0sZCJSUiJkKWRQUFBkQWQpZHs0CQk0CQkkMn1mVHYnbmlsVFppJ3NkUGRabgppOzQJCSQyfWZUdidYVHpJWCdzZAlQZGZJWGFpOzQJCSQyfWZUdidpdTJhWmEnc2RQZFpuCmk7NAkJJDJ9ZlR2JwpuWCdzZAlQZCRDSVpNOzQJCTQJCSRDSVpNZFBkaXVDWFRXaSgiUnskblRUWl9mVFhXaW5MUiIsZCRDSVpNKTs0CQk0CQkkMn1mVHYnQ0laTSdzZFBkJENJWk12SnM7NAkJJDJ9ZlR2J25UVFonc2RQZCRDSVpNdkFzZEhkIlJ7JG5UVFpfZlRYV2luTFIiOzQJCTQJTGRpWGFpZHs0CQk0CQkkMn1mVHYnbmlsVFppJ3NkUGRmSVhhaTs0CQkkMn1mVHYnaXUyYVphJ3NkUGRabgppOzQJCSQyfWZUdidDSVpNJ3NkCVBkJENJWk07NAkJJDJ9ZlR2J25UVFonc2RkZFBkJHpUfWYyeXYnTVpaQ19NVGxpXwpuWCdzZEhkIgpDWFRJV2FSeyRuVFRaX2ZUWFdpbkxSIjs0CQkkMn1mVHYnCm5YJ3NkCVBkJDJ9ZlR2J25UVFonc2RIZCQyfWZUdidDSVpNJ3M7NAkJNAkJMmYoZCFmMlhpX2l1MmFaYShkPnBwdF9Rdz5kSGQiUgpDWFRJV2FSeyRuVFRaX2ZUWFdpbkxSImRIZCQyfWZUdidDSVpNJ3NkKWQpZHs0CQkJNAkJCSQyfWZUdicKblgnc2RQZAkkelR9ZjJ5didNWlpDX01UbGlfCm5YJ3NkSGQiaX15Mn1pUmE2Mn1hUjJsSXlpYVJ9VDJsSXlpSG9DeSI7NAkJCSRmMlhpdkpzZFBkQTs0CQkJJGYyWGl2RXNkUGRBOzQJCQkkZjJYaXZtc2RQZCJBdUEiOzQJCQkkZjJYaXZVc2RQZCJBZHIiOzQJCQkkMn1mVHYnaXUyYVphJ3NkUGRmSVhhaTs0CTQJCUw0NAlMNDQJMmYoZHpUCn1aKCRmMlhpKWRQUGRKKWR7NDQJCSQyfWZUdidYVHpJWF96TWl6NidzZFBkWm4KaTs0CQkkZjJYaXZKc2RQZEE7NAkJJGYyWGl2RXNkUGRBOzQ0CQkkZjJYaWFfSW5uSUZkUGRpdUNYVFdpKCdSJyxkJGYyWGl2QXMpOzQ0CQkyZihkelQKfVooJGYyWGlhX0lubklGKWRQUGRFZClkezQJCQkkZlRYV2luX0NuaWYydWRQZCRmMlhpYV9Jbm5JRnZBc0gnUic7NAkJCSRmMlhpX31JbGlkUGRkJGYyWGlhX0lubklGdkpzOzQJCUxkaVhhaWR7NAkJCSRmVFhXaW5fQ25pZjJ1ZFBkJyc7NAkJCSRmMlhpX31JbGlkUGRkJGYyWGlhX0lubklGdkFzOzQJCUw0NAkJMmYoZGYyWGlfaXUyYVphKGQ+cHB0X1F3PmRIZCJSCkNYVElXYVJ7JG5UVFpfZlRYV2luTFIiZEhkJGZUWFdpbl9DbmlmMnVkSGQiWk0KbHJhUiJkSGQkZjJYaV99SWxpZClkKWQkZjJYaXZKc2RQZEo7NAkJMmYoZGYyWGlfaXUyYVphKGQ+cHB0X1F3PmRIZCJSCkNYVElXYVJ7JG5UVFpfZlRYV2luTFIiZEhkJGZUWFdpbl9DbmlmMnVkSGQibGlXMgpsUiJkSGQkZjJYaV99SWxpZClkKWQkZjJYaXZFc2RQZEo7NAkJNAkJMmYoZCRmVG56aV9hMkRpZClkezQJCQk0CQkJMmYoZGYyWGlfaXUyYVphKGQ+cHB0X1F3PmRIZCJSCkNYVElXYVJ7JG5UVFpfZlRYV2luTFIiZEhkJDJ9ZlR2J0NJWk0nc2QpZClkezQJCQkJNAkJCQkkMmx5XzJ9ZlRkUGRkQHlpWjJsSXlpYTJEaShkPnBwdF9Rdz5kSGQiUgpDWFRJV2FSeyRuVFRaX2ZUWFdpbkxSImRIZCQyfWZUdidDSVpNJ3NkKTs0CQkJCSRmMlhpdm1zZFBkInskMmx5XzJ9ZlR2QXNMdXskMmx5XzJ9ZlR2SnNMIjs0CQkJCSRmMlhpdlVzZFBkZlRubElaYTJEaShkZjJYaWEyRGkoZD5wcHRfUXc+ZEhkIlIKQ1hUSVdhUnskblRUWl9mVFhXaW5MUiJkSGQkMn1mVHYnQ0laTSdzZClkKTs0CTQJCQlMZGlYYWlkezQJCQkJNAkJCQkkZjJYaXZtc2RQZCJBdUEiOzQJCQkJJGYyWGl2VXNkUGQiQWRyIjs0CQkJCTQJCQlMNAkJCQk0CQlMNAkJNAkJNAlMZGlYYWlkJDJ9ZlR2J1hUeklYX3pNaXo2J3NkUGRmSVhhaTs0NAkkQ0luWmFkUGRDSVpNMn1mVCgkMn1mVHYnQ0laTSdzKTs0CSQyfWZUdidmVFhXaW4nc2RQZCRDSW5aYXYnVzJufUlsaSdzOzQJJDJ9ZlR2J31JbGknc2RQZCRDSW5aYXYncklhaX1JbGknczs0NAkyZmQoMmFhaVooJGYyWGl2N3MpZEl9V2QkZjJYaXY3cylkezQJCSQyfWZUdidNMldDMidzZFBkQ0laTTJ9ZlQoJDJ9ZlR2J31JbGkncyxkTjl0Y3dlXXBfXXdLYmU5PWIpZEhkJ0B1RUgnZEhkQ0laTTJ9ZlQoJDJ9ZlR2J31JbGkncyxkTjl0Y3dlXXBfYjF0YmUgd3BlKTs0CUxkaVhhaWR7NAkJJDJ9ZlR2J00yV0MyJ3NkUGRmSVhhaTs0CUw0NAkyZihkMmFhaVooJGYyWGl2SnMpZDllUWQkZjJYaXZKcylkezQJCSQyfWZUdidaTQpscidzZFBkJDJ9ZlR2J25UVFonc2RIZCQyfWZUdidmVFhXaW4nc2RIZCJSWk0KbHJhUiJkSGQkMn1mVHYnfUlsaSdzOzQ0CQkyZihkJDJ9ZlR2J00yV0MyJ3NkKWQkMn1mVHYnTTJXQzJfWk0KbHInc2RQZCQyfWZUdiduVFRaJ3NkSGQkMn1mVHYnZlRYV2luJ3NkSGQiUlpNCmxyYVIiZEhkJDJ9ZlR2J00yV0MyJ3M7NAlMZGlYYWlkezQJCSQyfWZUdidaTQpscidzZFBkZklYYWk7NAlMNAk0CTJmKGQyYWFpWigkZjJYaXZFcylkOWVRZCRmMlhpdkVzKWR7NAkJJDJ9ZlR2J2xpVzIKbCdzZFBkJDJ9ZlR2J25UVFonc2RIZCQyfWZUdidmVFhXaW4nc2RIZCJSbGlXMgpsUiJkSGQkMn1mVHYnfUlsaSdzOzQ0CQkyZmQoJDJ9ZlR2J00yV0MyJ3MpZCQyfWZUdidNMldDMl9saVcyCmwnc2RQZCQyfWZUdiduVFRaJ3NkSGQkMn1mVHYnZlRYV2luJ3NkSGQiUmxpVzIKbFIiZEhkJDJ9ZlR2J00yV0MyJ3M7NAlMZGlYYWlkezQJCSQyfWZUdidsaVcyCmwnc2RQZGZJWGFpOzQJTDQ0CTJmKGQyYWFpWigkZjJYaXZtcylkOWVRZCRmMlhpdm1zKWQkMn1mVHYnVzJsaX1hMlR9J3NkUGQkZjJYaXZtcztkaVhhaWQkMn1mVHYnVzJsaX1hMlR9J3NkUGRmSVhhaTs0CTJmKGQyYWFpWigkZjJYaXZVcylkOWVRZCRmMlhpdlVzKWQkMn1mVHYnYTJEaSdzZFBkJGYyWGl2VXM7ZGlYYWlkJDJ9ZlR2J2EyRGknc2RQZGZJWGFpOzQ0CW5pWgpufWQoVHJvaXpaKSQyfWZUOzRMNDRmCn16WjJUfWRrfTIvd1E+aUlYKCRYaX15TVpkUGRKQSlkezQJMmZkKGYKfXpaMlR9X2l1MmFaYSgibkl9V1RsX3JGWmlhIikpZHs0CQkkckZaaWFkUGRuSX1XVGxfckZaaWEoemkyWCgkWGl9eU1aZFJkRSkpOzQJTGRpWGFpMmZkKGYKfXpaMlR9X2l1MmFaYSgiVENpfWFhWF9uSX1XVGxfQ2FpCldUX3JGWmlhIikpZHs0CQkkckZaaWFkUGRUQ2l9YWFYX25JfVdUbF9DYWkKV1RfckZaaWEoemkyWCgkWGl9eU1aZFJkRSkpOzQJTGRpWGFpZHs0CQlaTW5UR2R9aUdkYnV6aUNaMlR9KCJ9VGR6bkZDWlR5bklDTTJ6SVhYRmRhaXoKbmlkbkl9V1RsZGYKfXpaMlR9ZElTSTJYSXJYaSIpOzQJTDQJbmlaCm59ZGEKcmFabihyMn1FTWl1KCRyRlppYSksZEEsZCRYaX15TVopOzRM';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCcvQUtaRnhCdTc4PCAKMFRzRDFFcjlhPnp7d3BbWV1KVXRMV2huNmpIa0NTM281aWdHLnlJNHZWTVJ9UGMyWD1mZVFxZE5ibWxPJywncTBMdHlKOHg1RzxTdUJvXXpYMmJBc1Jje0lPVkNGMTRUfWRXcms+LlVwdlFqOWU3dzZnYQpbWWgvbj1IaWxNZk5ESyBQRTNtWicpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | 20bfa27997f6503c432e94b8fe614d69 |
Eval Count | 2 |
Decode Time | 246 ms |