Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
$_F=__FILE__;$_X='P0l1P3BCcEY9KkZkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRk..
Decoded Output download
?><?php
/*
=====================================================
DataLife Engine - by SoftNews Media Group
-----------------------------------------------------
https://dle-news.ru/
-----------------------------------------------------
Copyright (c) 2004-2023 SoftNews Media Group
=====================================================
This code is protected by copyright
=====================================================
File: upload.class.php
-----------------------------------------------------
Use: upload files on server
=====================================================
*/
if( !defined( 'DATALIFEENGINE' ) ) {
header( "HTTP/1.1 403 Forbidden" );
header ( 'Location: ../../' );
die( "Hacking attempt!" );
}
class UploadFileViaFTP {
private $path_file = "";
private $file_name = "";
public $error_code = false;
public $force_replace = false;
public $md5 = null;
function __construct() {
}
function saveFile($path, $filename, $prefix=true, $force_prefix = false) {
if( !DLEFiles::FileExists( "files/" . $this->path_file . $filename ) ){
return false;
}
return $this->path_file . $filename;
}
function getFileName() {
$path = trim(str_replace(chr(0), '', (string)$_POST['ftpurl']));
$path = str_replace(array('/', '\'), '/', $path);
if( !$path ) return '';
if (preg_match('#\p{C}+#u', $path)) {
return '';
}
$path_parts = pathinfo( $path );
$this->file_name = $path_parts['basename'];
$parts = array_filter(explode('/', $path_parts['dirname']), 'strlen');
$absolutes = array();
foreach ($parts as $part) {
$part = trim($part);
if ('.' == $part OR '..' == $part OR !$part) continue;
$absolutes[] = $part;
}
$path = implode('/', $absolutes);
if ( $path ) {
$this->path_file = $path.'/';
}
return $this->file_name;
}
function getFileSize() {
return DLEFiles::Size( "files/" . $this->path_file . $this->file_name );
}
function getImage() {
return ROOT_DIR . "/uploads/files/" . $this->path_file . $this->file_name;
}
}
class UploadFileViaURL {
private $from = "";
public $error_code = false;
public $force_replace = false;
public $md5 = null;
function __construct() {
}
function saveFile($path, $filename, $auto_prefix = true, $force_prefix = false) {
$file_prefix = "";
if ( ($auto_prefix AND DLEFiles::FileExists( $path.$filename ) ) OR $force_prefix ) {
$file_prefix = time()."_";
}
$filename = totranslit( $file_prefix.$filename );
if( !DLEFiles::$error ) {
$stream = @fopen( $this->from , 'rb');
if (is_resource($stream)) {
DLEFiles::WriteStream( $path.$filename, $stream);
} else {
DLEFiles::$error = 'PHP Error: Unable to open the stream with uploaded file';
return false;
}
if (is_resource($stream)) {
fclose($stream);
}
if( DLEFiles::$error ) return false;
} else return false;
return $filename;
}
function getFileName() {
$imageurl = trim( strip_tags( $_POST['imageurl'] ) );
$imageurl = str_replace(chr(0), '', $imageurl);
$imageurl = str_replace( "\", "/", $imageurl );
$url = @parse_url ( $imageurl );
if (!array_key_exists('host', $url)) {
return '';
}
if($url['scheme'] != 'http' AND $url['scheme'] != 'https') {
return '';
}
if($url['host'] == 'localhost' OR $url['host'] == '127.0.0.1') {
return '';
}
if( stripos ( $url['host'], $_SERVER['HTTP_HOST'] ) !== false ) {
return '';
}
if( stripos( $imageurl, ".php" ) !== false ) return '';
if( stripos( $imageurl, ".phtm" ) !== false ) return '';
$this->from = $imageurl;
$imageurl = explode( "/", $imageurl );
$imageurl = end( $imageurl );
$imageurl = explode("?", $imageurl);
$imageurl = reset($imageurl);
return $imageurl;
}
function getFileSize() {
$url = @parse_url( $this->from );
if ( $url ) {
if($url['scheme'] == "https" ) $port = 443; else $port = 80;
$fp = @fsockopen( $url['host'], $port, $errno, $errstr, 10);
if ($fp) {
$x='';
fputs($fp,"HEAD {$url['path']} HTTP/1.0
HOST: {$url['host']}
");
while(!feof($fp)) $x.=fgets($fp,128);
fclose($fp);
if ( preg_match("#Content-Length: ([0-9]+)#i",$x,$size) ) {
return intval($size[1]);
} else {
return strlen(@file_get_contents($this->from));
}
}
}
return 0;
}
function getImage() {
return $this->from;
}
}
class UploadFileViaForm {
public $error_code = false;
public $force_replace = false;
private $name;
private $tmp_name;
private $size;
private $max_file_size;
private $chunk;
private $chunks;
public $chunk_tmp_name;
public $md5 = null;
function __construct() {
global $config, $member_id, $user_group;
$this->chunk = isset($_REQUEST['chunk']) ? intval($_REQUEST['chunk']) : 0;
$this->chunks = isset($_REQUEST['chunks']) ? intval($_REQUEST['chunks']) : 0;
$this->name = isset($_REQUEST['name']) ? $_REQUEST['name'] : $_FILES['qqfile']['name'];
$this->name = $this->getFileName();
$this->tmp_name = isset($_FILES['qqfile']['tmp_name']) ? $_FILES['qqfile']['tmp_name'] : false;
$this->size = $_FILES['qqfile']['size'];
if ( !$this->name ){
die( json_encode(array('error' => 'File not send to server' ), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
}
if( $this->chunks > 1 ) {
$this->chunk_tmp_name = ROOT_DIR . "/uploads/files/".md5($this->name.$member_id['name'].SECURE_AUTH_KEY).'.tmp';
$max_file_size = intval($config['max_up_size']);
if( $user_group[$member_id['user_group']]['allow_file_upload'] ) {
if( !intval($user_group[$member_id['user_group']]['max_file_size']) ) $max_file_size = 0;
elseif( intval($user_group[$member_id['user_group']]['max_file_size']) > $max_file_size ) $max_file_size = intval($user_group[$member_id['user_group']]['max_file_size']);
} elseif( !$max_file_size ) {
$max_file_size = 20 * 1024 * 1024;
}
$this->max_file_size = $max_file_size * 1024;
if( !$this->max_file_size ) $this->max_file_size = 1024 * 1024 * 1024;
}
if( $this->getErrorCode() ) {
header( "HTTP/1.1 403 Forbidden" );
die( json_encode(array('error' => $this->getErrorCode() ), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
}
if (!$this->tmp_name || !is_uploaded_file($this->tmp_name) ) {
die( json_encode(array('error' => 'File not send to server' ), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
}
if( $this->chunks > 1 ) {
$this->uploadchunk();
}
}
function saveFile($path, $filename, $auto_prefix = true, $force_prefix = false) {
$file_prefix = "";
if ( ($auto_prefix AND DLEFiles::FileExists( $path.$filename ) ) OR $force_prefix ) {
$file_prefix = time()."_";
}
$filename = totranslit( $file_prefix.$filename );
if( !DLEFiles::$error ) {
$stream = @fopen( $this->tmp_name , 'rb');
if (is_resource($stream)) {
DLEFiles::WriteStream( $path.$filename, $stream);
} else {
DLEFiles::$error = 'PHP Error: Unable to open the stream with uploaded file';
return false;
}
if (is_resource($stream)) {
fclose($stream);
}
if( DLEFiles::$error ) return false;
} else return false;
$this->md5 = md5_file($this->tmp_name);
if( $this->chunks > 1 ) {
@unlink( $this->chunk_tmp_name );
$this->chunk_tmp_name = '';
}
$this->cleanup_old_tmp();
return $filename;
}
function cleanup_old_tmp(){
$files = glob(ROOT_DIR . '/uploads/files/*.tmp');
foreach ($files as $tmpFile) {
if (is_file($tmpFile)) {
if (time() - filemtime($tmpFile) < (5 * 3600) ) {
continue;
}
@unlink($tmpFile);
}
}
}
function uploadchunk() {
global $lang;
if (!$in = @fopen($this->tmp_name, "rb")) {
header( "HTTP/1.1 403 Forbidden" );
die( json_encode(array('error' => 'PHP Error: Unable to open the stream with uploaded file'), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
}
if ( !$out = @fopen($this->chunk_tmp_name, $this->chunk ? "ab" : "wb" ) ) {
header( "HTTP/1.1 403 Forbidden" );
die( json_encode(array('error' => 'PHP Error: Unable to write uploaded file, check CHMOD for folder /uploads/files/'), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
}
while ($buff = fread($in, 4096)) {
fwrite($out, $buff);
}
fflush($out);
@fclose($in);
@fclose($out);
clearstatcache(true, $this->chunk_tmp_name);
$this->size = filesize( $this->chunk_tmp_name );
if( $this->max_file_size AND $this->size > $this->max_file_size) {
@unlink( $this->chunk_tmp_name );
header( "HTTP/1.1 403 Forbidden" );
die( json_encode(array('error' => $lang['files_too_big'] ), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
}
if ($this->chunks == $this->chunk + 1) {
$this->tmp_name = $this->chunk_tmp_name;
} else {
die( json_encode(array('result' => 'chunk uploaded'), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES ) );
}
}
function getFileName() {
$path_parts = @pathinfo($this->name);
return $path_parts['basename'];
}
function getFileSize() {
return $this->size;
}
function getImage() {
return array( 'tmp_name' => $this->tmp_name, 'name' => $this->getFileName() );
}
function getErrorCode() {
$error_code = $_FILES['qqfile']['error'];
if ($error_code !== UPLOAD_ERR_OK) {
switch ($error_code) {
case UPLOAD_ERR_INI_SIZE:
$error_code = 'PHP Error: The uploaded file exceeds the upload_max_filesize directive in php.ini'; break;
case UPLOAD_ERR_FORM_SIZE:
$error_code = 'PHP Error: The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'; break;
case UPLOAD_ERR_PARTIAL:
$error_code = 'PHP Error: The uploaded file was only partially uploaded'; break;
case UPLOAD_ERR_NO_FILE:
$error_code = 'PHP Error: No file was uploaded'; break;
case UPLOAD_ERR_NO_TMP_DIR:
$error_code = 'PHP Error: Missing a PHP temporary folder'; break;
case UPLOAD_ERR_CANT_WRITE:
$error_code = 'PHP Error: Failed to write file to disk'; break;
case UPLOAD_ERR_EXTENSION:
$error_code = 'PHP Error: File upload stopped by extension'; break;
default:
$error_code = 'Unknown upload error'; break;
}
} else return false;
return $error_code;
}
}
class FileUploader {
private $allowed_extensions = array ("gif", "jpg", "jpeg", "png", "webp", "bmp", "avif", "heic");
private $allowed_video = array ("mp4", "mp3", "m4v", "m4a", "mov", "webm", "m3u8", "mkv" );
private $allowed_files = array();
private $area = "";
private $author = "";
private $news_id = "";
private $t_size = "";
private $t_seite = 0;
private $make_thumb = true;
private $m_size = "";
private $m_seite = 0;
private $make_medium = false;
private $hidpi = 0;
private $make_watermark = true;
private $upload_path = "posts/";
private $file = null;
function __construct($area, $news_id, $author, $t_size, $t_seite, $make_thumb = true, $make_watermark = true, $m_size = 0, $m_seite = 0, $make_medium = false, $hidpi = false){
global $config, $db, $member_id, $user_group;
$this->area = totranslit($area);
if ( $this->area == "adminupload" ) {
if (!isset($_FILES['qqfile']) OR $member_id['user_group'] != 1) die( "Hacking attempt!" );
if( isset($_REQUEST['userdir']) AND $_REQUEST['userdir']) $userdir = cleanpath( $_REQUEST['userdir'] ). "/"; else $userdir = "";
if( isset($_REQUEST['subdir']) AND $_REQUEST['subdir']) $subdir = cleanpath( $_REQUEST['subdir'] ). "/"; else $subdir = "";
$this->upload_path = $userdir.$subdir;
} else {
$this->allowed_files = explode( ',', strtolower( $user_group[$member_id['user_group']]['files_type'] ) );
}
$this->author = $db->safesql( $author );
$this->news_id = intval($news_id);
$this->t_size = $t_size;
$this->t_seite = $t_seite;
$this->make_thumb = $make_thumb;
$this->m_size = $m_size;
$this->m_seite = $m_seite;
$this->make_medium = $make_medium;
$this->make_watermark = $make_watermark;
if( $hidpi ) $this->hidpi = 1; else $this->hidpi = 0;
$ftp_upload_flag = false;
if ( isset($_POST['imageurl']) AND $_POST['imageurl'] ) {
$this->file = new UploadFileViaURL();
} elseif ( $member_id['user_group'] == 1 AND isset($_POST['ftpurl']) AND $_POST['ftpurl'] ) {
$this->file = new UploadFileViaFTP();
$ftp_upload_flag = true;
} else {
$this->file = new UploadFileViaForm();
}
if ($ftp_upload_flag OR $this->area == "adminupload" )
define( 'FOLDER_PREFIX', "" );
else
define( 'FOLDER_PREFIX', date( "Y-m" )."/" );
}
private function check_filename( $filename ) {
$filename = (string)$filename;
if( !$filename ) return false;
$filename = str_replace(chr(0), '', $filename);
$filename = str_replace( "\", "/", $filename );
$filename = preg_replace( '#[.]+#i', '.', $filename );
$filename = str_replace( "/", "", $filename );
$filename = str_ireplace( "php", "", $filename );
$filename_arr = explode( ".", $filename );
if(count($filename_arr) < 2) {
return false;
}
$type = totranslit( end( $filename_arr ) );
if(!$type) return false;
$curr_key = key( $filename_arr );
unset( $filename_arr[$curr_key] );
$filename = totranslit( implode( "_", $filename_arr ) );
if( !$filename ) {
$filename = time() + rand( 1, 100 );
}
$filename = $filename . "." . $type;
$filename = preg_replace( '#[.]+#i', '.', $filename );
if( stripos ( $filename, ".php" ) !== false ) return false;
if( stripos ( $filename, ".phtm" ) !== false ) return false;
if( stripos ( $filename, ".shtm" ) !== false ) return false;
if( stripos ( $filename, ".htaccess" ) !== false ) return false;
if( stripos ( $filename, ".cgi" ) !== false ) return false;
if( stripos ( $filename, ".htm" ) !== false ) return false;
if( stripos ( $filename, ".ini" ) !== false ) return false;
if( stripos ( $filename, "." ) === 0 ) return false;
if( stripos ( $filename, "." ) === false ) return false;
if( strlen( $filename ) > 200 ) {
return false;
}
return $filename;
}
private function msg_error($message, $code = 500) {
if( isset( $this->file->chunk_tmp_name ) AND $this->file->chunk_tmp_name ) {
@unlink($this->file->chunk_tmp_name);
$this->file->chunk_tmp_name = '';
}
return json_encode(array('error' => $message ), JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES );
}
function FileUpload() {
global $config, $db, $lang, $member_id, $user_group;
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
$_IP = get_ip();
$added_time = time();
$xfvalue = "";
$driver = null;
$tinypng_error = false;
$flink = false;
$link = false;
$commentsfileid = false;
if (!$this->file){
return $this->msg_error( $lang['upload_error_3'] );
}
$filename = $this->check_filename( $this->file->getFileName() );
if ( !$filename ){
return $this->msg_error( $lang['upload_error_4'] );
}
$filename_arr = explode( ".", $filename );
$type = end( $filename_arr );
if ( !$type ){
return $this->msg_error( $lang['upload_error_4'] );
}
$size = $this->file->getFileSize();
if (!$size) {
return $this->msg_error( $lang['upload_error_5'] );
}
if( $config['files_allow'] AND $user_group[$member_id['user_group']]['allow_file_upload'] AND in_array($type, $this->allowed_files ) ) {
if( intval( $user_group[$member_id['user_group']]['max_file_size'] ) AND $size > ((int)$user_group[$member_id['user_group']]['max_file_size'] * 1024) ) {
return $this->msg_error( $lang['files_too_big'] );
}
if( $this->area != "template" AND $user_group[$member_id['user_group']]['max_files'] ) {
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_files WHERE author = '{$this->author}' AND news_id = '{$this->news_id}'" );
$count_files = $row['count'];
if ($count_files AND $count_files >= $user_group[$member_id['user_group']]['max_files'] ) return $this->msg_error( $lang['error_max_files'] );
}
if ( isset($_REQUEST['public_file']) AND $_REQUEST['public_file'] ) $is_public = 1; else $is_public = 0;
if( $user_group[$member_id['user_group']]['allow_public_file_upload'] AND $is_public) {
$this->upload_path = "public_files/";
$auto_prefix = true;
$force_prefix = false;
} else {
$this->upload_path = "files/";
$is_public = 0;
$auto_prefix = false;
$force_prefix = true;
}
$config['files_remote'] = intval( $config['files_remote'] );
if ( $config['files_remote'] > -1 ) $driver = $config['files_remote'];
DLEFiles::init( $driver, $config['local_on_fail'] );
$uploaded_filename = $this->file->saveFile($this->upload_path . FOLDER_PREFIX, $filename, $auto_prefix, $force_prefix);
if ( DLEFiles::$error ){
return $this->msg_error( DLEFiles::$error );
}
if ( !$uploaded_filename ){
return $this->msg_error( $lang['images_uperr_3'] );
}
$added_time = time();
$file_link = $config['http_home_url'] . "engine/skins/images/all_file.png";
$data_url = "#";
$file_play = "";
$size = DLEFiles::Size( $this->upload_path . FOLDER_PREFIX . $uploaded_filename );
$driver = DLEFiles::$driver;
if( !$this->file->md5 ) {
$md5 = DLEFiles::Checksum($this->upload_path . FOLDER_PREFIX . $uploaded_filename);
} else $md5 = $this->file->md5;
$http_url = DLEFiles::GetBaseURL();
if ($user_group[$member_id['user_group']]['allow_admin']) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$added_time}', '{$_IP}', '36', '{$uploaded_filename}')" );
if( in_array( $type, $this->allowed_video ) ) {
if( $type == "mp3" ) {
$file_link = $config['http_home_url'] . "engine/skins/images/mp3_file.png";
$file_play = "audio";
} else {
$file_link = $config['http_home_url'] . "engine/skins/images/video_file.png";
$file_play = "video";
}
$data_url = $http_url . $this->upload_path . FOLDER_PREFIX . $uploaded_filename;
}
if( $user_group[$member_id['user_group']]['allow_public_file_upload'] AND $is_public) {
$data_url = $http_url . $this->upload_path . FOLDER_PREFIX . $uploaded_filename;
}
if( $this->area == "template" ) {
$db->query( "INSERT INTO " . PREFIX . "_static_files (static_id, author, date, name, onserver, size, checksum, driver, is_public) values ('{$this->news_id}', '{$this->author}', '{$added_time}', '{$filename}', '". FOLDER_PREFIX ."{$uploaded_filename}', '{$size}', '{$md5}', '{$driver}', '{$is_public}')" );
$id = $db->insert_id();
$del_name = 'static_files';
} else {
$db->query( "INSERT INTO " . PREFIX . "_files (news_id, name, onserver, author, date, size, checksum, driver, is_public) values ('{$this->news_id}', '{$filename}', '". FOLDER_PREFIX ."{$uploaded_filename}', '{$this->author}', '{$added_time}', '{$size}', '{$md5}', '{$driver}', '{$is_public}')" );
$id = $db->insert_id();
$del_name = "files";
}
$size = formatsize($size);
$return_box = <<<HTML
<div class="file-preview-card" data-type="file" data-area="{$del_name}" data-deleteid="{$id}" data-url="{$data_url}" data-path="{$id}:{$filename}" data-play="{$file_play}" data-public="{$is_public}">
<div class="active-ribbon"><span><i class="mediaupload-icon mediaupload-icon-ok"></i></span></div>
<div class="file-content">
<img src="{$file_link}" class="file-preview-image">
</div>
<div class="file-footer">
<div class="file-footer-caption">
<div class="file-caption-info" rel="tooltip" title="ID: {$id}, {$filename}">{$filename}</div>
<div class="file-size-info">({$size})</div>
</div>
<div class="file-footer-bottom">
<div class="file-preview"><a class="clipboard-copy-link" href="#" rel="tooltip" title="{$lang['up_im_copy']}"><i class="mediaupload-icon mediaupload-icon-copy"></i></a></div>
<div class="file-delete"><a class="file-delete-link" href="#"><i class="mediaupload-icon mediaupload-icon-trash"></i></a></div>
</div>
</div>
</div>
HTML;
if( $this->area == "xfieldsfile" ) {
$return_box = " <button class=\"qq-upload-button btn btn-sm bg-danger btn-raised\" onclick=\"xffiledelete('".$_REQUEST['xfname']."','".$id."');return false;\">{$lang['xfield_xfid']}</button>";
if( $is_public ) {
$xfvalue = $data_url;
} else {
$xfvalue = "[attachment={$id}:{$filename}]";
}
}
if ($this->area == "xfieldsvideo" OR $this->area == "xfieldsaudio") {
$xfvalue = "{$data_url}|{$id}|{$size}";
$xf_id = md5($xfvalue);
$return_box = "<div class=\"file-preview-card uploadedfile\" id=\"xf_{$xf_id}\" data-id=\"{$xfvalue}\" data-alt=\"\"><div class=\"active-ribbon\"><span><i class=\"mediaupload-icon mediaupload-icon-ok\"></i></span></div><div class=\"file-content\"><img src=\"{$file_link}\" class=\"file-preview-image\"></div><div class=\"file-footer\"><div class=\"file-footer-caption\"><div class=\"file-caption-info\" rel=\"tooltip\" title=\"{$filename}\">{$filename}</div><div class=\"file-size-info\">({$size})</div></div><div class=\"file-footer-bottom\"><div class=\"file-preview\"><a onclick=\"xfaddalt('" . $xf_id . "', '" . $_REQUEST['xfname'] . "');return false;\" href=\"#\" rel=\"tooltip\" title=\"{$lang['xf_img_descr']}\"><i class=\"mediaupload-icon mediaupload-icon-edit\"></i></a></div><div class=\"file-delete\"><a onclick=\"xfplaylistdelete_".md5($_REQUEST['xfname'])."('" . $_REQUEST['xfname'] . "','" . $id . "', '" . $xf_id . "');return false;\" href=\"#\"><i class=\"mediaupload-icon mediaupload-icon-trash\"></i></a></div></div></div></div>";
}
} elseif ( in_array( $type, $this->allowed_extensions ) AND $user_group[$member_id['user_group']]['allow_image_upload'] ) {
$min_size_upload = true;
$hidpi_name ='';
$config['comments_remote'] = intval($config['comments_remote']);
$config['static_remote'] = intval($config['static_remote']);
$config['image_remote'] = intval($config['image_remote']);
if( $this->area == "comments" AND $config['comments_remote'] > -1 ) $driver = $config['comments_remote'];
elseif ( $this->area == "template" AND $config['static_remote'] > -1 ) $driver = $config['static_remote'];
elseif ( $this->area == "adminupload" AND isset($_REQUEST['upload_driver']) ) $driver = intval($_REQUEST['upload_driver']);
elseif ( $config['image_remote'] > -1 ) $driver = $config['image_remote'];
DLEFiles::init( $driver, $config['local_on_fail'] );
if( intval( $config['max_up_size'] ) AND $size > ((int)$config['max_up_size'] * 1024) ) {
return $this->msg_error( $lang['images_big'] );
}
if( $this->area != "template" AND $this->area != "adminupload" AND $this->area != "comments" AND $user_group[$member_id['user_group']]['max_images'] ) {
$row = $db->super_query( "SELECT images FROM " . PREFIX . "_images WHERE author = '{$this->author}' AND news_id = '{$this->news_id}'" );
if ($row['images']) $count_images = count(explode( "|||", $row['images'] )); else $count_images = false;
if( $count_images AND $count_images >= $user_group[$member_id['user_group']]['max_images'] ) return $this->msg_error( $lang['error_max_images'] );
}
if( $this->area == "comments" AND $user_group[$member_id['user_group']]['up_count_image'] ) {
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_comments_files WHERE c_id = '{$this->news_id}' AND author = '{$this->author}'" );
if( $row['count'] >= $user_group[$member_id['user_group']]['up_count_image'] ) return $this->msg_error( $lang['error_max_images'] );
}
if( $this->area == "adminupload" AND DLEFiles::FileExists( $this->upload_path . FOLDER_PREFIX . $filename ) ) {
return $this->msg_error( $lang['images_uperr_4'] );
}
if( $this->area == "adminupload" ){
$min_size_upload = false;
}
$image = new thumbnail( $this->file->getImage(), true, $min_size_upload );
if ( $image->error ){
return $this->msg_error( $image->error );
}
if ($this->hidpi) {
$image->re_save = true;
}
if ($this->hidpi) {
$image->size_auto( intval($image->width / 2) , 1);
}
if ($config['max_up_side']) $image->size_auto($config['max_up_side'], $config['o_seite']);
$dimension = $image->width . "x" . $image->height;
if ($this->make_watermark) $image->insert_watermark($config['max_watermark']);
if ($member_id['user_group'] != 1 OR $image->re_save) {
$uploaded_filename = $image->save($this->upload_path . FOLDER_PREFIX . $filename, true);
} else {
$uploaded_filename = $this->file->saveFile($this->upload_path . FOLDER_PREFIX, $filename, true);
}
if ($image->error) {
return $this->msg_error($image->error);
}
if (DLEFiles::$error) {
return $this->msg_error(DLEFiles::$error);
}
if (!$uploaded_filename) {
return $this->msg_error($lang['images_uperr_3']);
}
if ($this->hidpi) {
$hidpi_name = pathinfo($uploaded_filename, PATHINFO_FILENAME) . '@x2.' . pathinfo($uploaded_filename, PATHINFO_EXTENSION);
if ($config['max_up_side']) $image->size_auto($config['max_up_side'], $config['o_seite'], $this->hidpi);
if ($this->make_watermark) $image->insert_watermark($config['max_watermark'], $this->hidpi );
$image->save($this->upload_path . FOLDER_PREFIX . $hidpi_name, false);
}
$size = formatsize( DLEFiles::Size( $this->upload_path . FOLDER_PREFIX . $uploaded_filename ) );
$thumb_data = 0;
$added_time = time();
if( $this->make_thumb ) {
if( $image->size_auto( $this->t_size, $this->t_seite, $this->hidpi ) ) {
if( $this->make_watermark ) $image->insert_watermark( $config['max_watermark'], $this->hidpi );
if( $this->hidpi ) {
$image->save($this->upload_path . FOLDER_PREFIX . "thumbs/" . $hidpi_name, false);
$image->size_auto($this->t_size, $this->t_seite);
if ($this->make_watermark) $image->insert_watermark($config['max_watermark']);
$image->save($this->upload_path . FOLDER_PREFIX . "thumbs/" . $uploaded_filename, false);
} else {
$image->save($this->upload_path . FOLDER_PREFIX . "thumbs/" . $uploaded_filename, false);
}
$thumb_data = 1;
}
if ( $image->error ){
return $this->msg_error( $image->error );
}
}
$medium_data = 0;
if( $this->make_medium ) {
if( $image->size_auto( $this->m_size, $this->m_seite, $this->hidpi ) ) {
if( $this->make_watermark ) $image->insert_watermark( $config['max_watermark'], $this->hidpi );
if ($this->hidpi) {
$image->save($this->upload_path . FOLDER_PREFIX . "medium/" . $hidpi_name, false);
$image->size_auto( $this->m_size, $this->m_seite);
if ($this->make_watermark) $image->insert_watermark($config['max_watermark']);
$image->save($this->upload_path . FOLDER_PREFIX . "medium/" . $uploaded_filename, false);
} else {
$image->save($this->upload_path . FOLDER_PREFIX . "medium/" . $uploaded_filename, false);
}
$medium_data = 1;
}
if ( $image->error ){
return $this->msg_error( $image->error );
}
}
if( $image->tinypng_error ) $tinypng_error = $image->tinypng_error;
$http_url = DLEFiles::GetBaseURL();
if ( DLEFiles::$driver ) {
$insert_image = $http_url . $this->upload_path . FOLDER_PREFIX . $uploaded_filename;
} else {
$insert_image = FOLDER_PREFIX . $uploaded_filename;
}
$insert_image .= "|{$thumb_data}|{$medium_data}|{$dimension}|{$size}";
if($this->area != "comments" AND $this->area != "xfieldsimage" AND $this->area != "xfieldsimagegalery" AND $this->area != "adminupload" ) {
$insert_image .= "|{$this->hidpi}";
}
if( $this->hidpi ) {
$hidpi_data = " data-hidpi=\"{$hidpi_name}\"";
} else $hidpi_data ='';
if( $this->area != "template" AND $this->area != "adminupload" AND $this->area != "comments") {
$row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_images WHERE news_id = '{$this->news_id}' AND author = '{$this->author}'" );
if( !$row['count'] ) {
$db->query( "INSERT INTO " . PREFIX . "_images (images, author, news_id, date) values ('{$insert_image}', '{$this->author}', '{$this->news_id}', '{$added_time}')" );
} else {
$update_images = true;
$row = $db->super_query( "SELECT images FROM " . PREFIX . "_images WHERE news_id = '{$this->news_id}' AND author = '{$this->author}'" );
$listimages = array ();
$update_images = true;
if( $row['images'] ) {
$listimages = explode( "|||", $row['images'] );
foreach ( $listimages as $file_image ) {
$file_image = get_uploaded_image_info( $file_image );
if( $file_image->path == FOLDER_PREFIX . $uploaded_filename ) $update_images = false;
}
}
if( $update_images ) {
$listimages[] = $insert_image;
$listimages = implode( "|||", $listimages );
$db->query( "UPDATE " . PREFIX . "_images SET images='{$listimages}' WHERE news_id = '{$this->news_id}' AND author = '{$this->author}'" );
}
}
}
$driver = DLEFiles::$driver;
if( $this->area == "template" ) {
$db->query("INSERT INTO " . PREFIX . "_static_files (static_id, author, date, name, driver) values ('{$this->news_id}', '{$this->author}', '{$added_time}', '{$insert_image}', '{$driver}')");
$id = $db->insert_id();
}
if( $this->area == "comments" ) {
$db->query( "INSERT INTO " . PREFIX . "_comments_files (c_id, author, date, name, driver) values ('{$this->news_id}', '{$this->author}', '{$added_time}', '{$insert_image}', '{$driver}')" );
$id = $commentsfileid = $db->insert_id();
}
if ($user_group[$member_id['user_group']]['allow_admin']) $db->query( "INSERT INTO " . USERPREFIX . "_admin_logs (name, date, ip, action, extras) values ('".$db->safesql($member_id['name'])."', '{$added_time}', '{$_IP}', '36', '{$uploaded_filename}')" );
$img_url = $data_url = $link = $flink = $http_url . $this->upload_path . FOLDER_PREFIX . $uploaded_filename;
$image_path = FOLDER_PREFIX . $uploaded_filename;
if( $medium_data ) {
$img_url = $http_url . $this->upload_path . FOLDER_PREFIX . "medium/" . $uploaded_filename;
$medium_data = "yes";
$tm_url = $img_url;
} else $medium_data = "no";
if( $thumb_data ) {
$img_url = $http_url . $this->upload_path . FOLDER_PREFIX . "thumbs/" . $uploaded_filename;
$thumb_data = "yes";
$th_url = $img_url;
} else $thumb_data = "no";
if($medium_data == "yes" ) $link = $tm_url;
elseif( $thumb_data == "yes" ) $link = $th_url;
else $flink = false;
if( $this->area == "comments" OR $this->area == "template") {
if( $this->area == "comments" ) {
$del_name = 'comments_files';
} else $del_name = 'static_files';
$return_box = <<<HTML
<div class="file-preview-card" data-type="image" data-area="{$del_name}" data-deleteid="{$id}" data-url="{$data_url}" data-path="{$image_path}" data-thumb="{$thumb_data}" data-medium="{$medium_data}"{$hidpi_data}>
<div class="active-ribbon"><span><i class="mediaupload-icon mediaupload-icon-ok"></i></span></div>
<div class="file-content">
<img src="{$img_url}" class="file-preview-image">
</div>
<div class="file-footer">
<div class="file-footer-caption">
<div class="file-caption-info" rel="tooltip" title="{$uploaded_filename}">{$uploaded_filename}</div>
<div class="file-size-info">{$dimension} ({$size})</div>
</div>
<div class="file-footer-bottom">
<div class="file-preview">
<a href="{$data_url}" data-highslide="single" target="_blank" rel="tooltip" title="{$lang['up_im_expand']}"><i class="mediaupload-icon mediaupload-icon-zoom"></i></a>
<a class="clipboard-copy-link" href="#" rel="tooltip" title="{$lang['up_im_copy']}"><i class="mediaupload-icon mediaupload-icon-copy"></i></a>
</div>
<div class="file-delete"><a class="file-delete-link" href="#"><i class="mediaupload-icon mediaupload-icon-trash"></i></a></div>
</div>
</div>
</div>
HTML;
} elseif( $this->area == "xfieldsimage" OR $this->area == "xfieldsimagegalery" ) {
$xfvalue = $insert_image;
$xf_id = md5($xfvalue);
if( $this->area == "xfieldsimage" ) {
$del_name = "xfimagedelete('".$_REQUEST['xfname']."','".FOLDER_PREFIX . $uploaded_filename."');return false;";
} else $del_name = "xfimagegalerydelete_".md5($_REQUEST['xfname'])."('".$_REQUEST['xfname']."','".FOLDER_PREFIX . $uploaded_filename."', '".$xf_id."');return false;";
$return_box = "<div id=\"xf_{$xf_id}\" data-id=\"{$xfvalue}\" data-alt=\"\" class=\"uploadedfile\"><div class=\"info\">{$uploaded_filename}</div><div class=\"uploadimage\"><img style=\"width:auto;height:auto;max-width:100px;max-height:90px;\" src=\"" . $img_url . "\" /></div><div class=\"info\"><a href=\"#\" onclick=\"xfaddalt('".$xf_id."', '".$_REQUEST['xfname']."');return false;\">{$lang['xf_img_descr']}</a><br><a href=\"#\" onclick=\"{$del_name}\">{$lang['xfield_xfid']}</a></div></div>";
$return_box = <<<HTML
<div class="file-preview-card uploadedfile" id="xf_{$xf_id}" data-id="{$xfvalue}" data-alt="">
<div class="active-ribbon"><span><i class="mediaupload-icon mediaupload-icon-ok"></i></span></div>
<div class="file-content">
<img src="{$img_url}" class="file-preview-image">
</div>
<div class="file-footer">
<div class="file-footer-caption">
<div class="file-caption-info" rel="tooltip" title="{$uploaded_filename}">{$uploaded_filename}</div>
<div class="file-size-info">{$dimension} ({$size})</div>
</div>
<div class="file-footer-bottom">
<div class="file-preview">
<a onclick="xfaddalt('{$xf_id}', '{$_REQUEST['xfname']}');return false;" href="#" rel="tooltip" title="{$lang['xf_img_descr']}"><i class="mediaupload-icon mediaupload-icon-edit"></i></a>
</div>
<div class="file-delete"><a href="#" onclick="{$del_name}"><i class="mediaupload-icon mediaupload-icon-trash"></i></a></div>
</div>
</div>
</div>
HTML;
} else {
$return_box = <<<HTML
<div class="file-preview-card" data-type="image" data-area="images" data-deleteid="{$image_path}" data-url="{$data_url}" data-path="{$image_path}" data-thumb="{$thumb_data}" data-medium="{$medium_data}"{$hidpi_data}>
<div class="active-ribbon"><span><i class="mediaupload-icon mediaupload-icon-ok"></i></span></div>
<div class="file-content">
<img src="{$img_url}" class="file-preview-image">
</div>
<div class="file-footer">
<div class="file-footer-caption">
<div class="file-caption-info" rel="tooltip" title="{$uploaded_filename}">{$uploaded_filename}</div>
<div class="file-size-info">{$dimension} ({$size})</div>
</div>
<div class="file-footer-bottom">
<div class="file-preview">
<a href="{$data_url}" data-highslide="single" target="_blank" rel="tooltip" title="{$lang['up_im_expand']}"><i class="mediaupload-icon mediaupload-icon-zoom"></i></a>
<a class="clipboard-copy-link" href="#" rel="tooltip" title="{$lang['up_im_copy']}"><i class="mediaupload-icon mediaupload-icon-copy"></i></a>
</div>
<div class="file-delete"><a class="file-delete-link" href="#"><i class="mediaupload-icon mediaupload-icon-trash"></i></a></div>
</div>
</div>
</div>
HTML;
}
if( isset( $this->file->chunk_tmp_name ) AND $this->file->chunk_tmp_name ) {
@unlink($this->file->chunk_tmp_name);
$this->file->chunk_tmp_name = '';
}
} else return $this->msg_error( $lang['images_uperr_2'] );
$return_array = array (
'success' => true,
'returnbox' => $return_box,
'uploaded_filename' => $uploaded_filename,
'xfvalue' => $xfvalue,
'link' => $link,
'flink' => $flink,
'commentsfileid' => $commentsfileid,
'remote_error' => DLEFiles::$remote_error,
'tinypng_error' => $tinypng_error
);
return json_encode($return_array, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES );
}
}
?>
Did this file decode correctly?
Original Code
$_F=__FILE__;$_X='P0l1P3BCcEY9KkZkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZEZQblZTVnNVVHlQREw8VUx5UC1QWm1QND5UU1t5TmJQZ3lDVVZQTy4+cnBQRi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRlBCU1NwYjo9PUN2eS1MeU5iMy5yPUYtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLUZQMj5wbS5VPEJTUChjKVBBcXFsLUFxQXhQND5UU1t5TmJQZ3lDVVZQTy4+cnBGZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRGUFFCVWJQYz5DeVBVYlBwLj5TeWNTeUNQWm1QYz5wbS5VPEJTRmRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkRlA3VXZ5OlBycHY+VkMzY3ZWYmIzcEJwRi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tRlBrYnk6UHJwdj5WQ1BUVXZ5YlA+TFBieS5KeS5GZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRGKj1GRlVUKFAhQ3lUVUx5QyhQJ25dUV1zZTdERFtPZVtEJ1ApUClQS0YJQnlWQ3kuKFAiNlFRCj17M3tQbHF4UDc+LlpVQ0N5TCJQKTtGCUJ5VkN5LlAoUCdzPmNWU1U+TDpQMzM9MzM9J1ApO0YJQ1V5KFAiNlZjfVVMPFBWU1N5RXBTISJQKTtGaEZGY3ZWYmJQa3B2PlZDN1V2eVdVVjdRClBLRkYJcC5VSlZTeVAkcFZTQl9UVXZ5UGRQIiI7RglwLlVKVlN5UCRUVXZ5X0xWRXlQZFAiIjtGCUYJcHJadlVjUCR5Li4+Ll9jPkN5UGRQVFZ2Ynk7Rglwclp2VWNQJFQ+LmN5Xy55cHZWY3lQZFBUVnZieTtGCXByWnZVY1AkRUN6UGRQTHJ2djtGRglUckxjU1U+TFBfX2M+TGJTLnJjUygpUEtGCQlGCWhGRlBQUFBUckxjU1U+TFBiVkp5N1V2eSgkcFZTQixQJFRVdnlMVkV5LFAkcC55VFU1ZFMucnksUCRUPi5jeV9wLnlUVTVQZFBUVnZieSlQS0ZGUFBQUFBQUFBVVChQIW5zRDdVdnliOjo3VXZ5RDVVYlNiKFAiVFV2eWI9IlAzUCRTQlViLUlwVlNCX1RVdnlQM1AkVFV2eUxWRXlQKVApS0ZQUFBQUFBQUFBQUFAueVNyLkxQVFZ2Ynk7RlBQUFBQUFBQaEZGUFBQUFBQUFAueVNyLkxQJFNCVWItSXBWU0JfVFV2eVAzUCRUVXZ5TFZFeTtGUFBQUGhGRlBQUFBUckxjU1U+TFA8eVM3VXZ5W1ZFeSgpUEtGCUYJCSRwVlNCUGRQUy5VRShiUy5fLnlwdlZjeShjQi4ocSksUCcnLFAoYlMuVUw8KSRfCmo0UTAnVFNwci52Jy8pKTtGCQkkcFZTQlBkUGJTLl8ueXB2VmN5KFYuLlZtKCc9JyxQJ1xcJyksUCc9JyxQJHBWU0IpO0ZGCQlVVChQISRwVlNCUClQLnlTci5MUCcnO0YJCUYJCVVUUChwLnk8X0VWU2NCKCcjXHBLMmgrI3InLFAkcFZTQikpUEtGCQkJLnlTci5MUCcnO0YJCWhGCUYJCSRwVlNCX3BWLlNiUGRQcFZTQlVMVD4oUCRwVlNCUCk7RkYJCSRTQlViLUlUVXZ5X0xWRXlQZFAkcFZTQl9wVi5TYjAnWlZieUxWRXknLztGCQlGCQkkcFYuU2JQZFBWLi5WbV9UVXZTeS4oeTVwdj5DeSgnPScsUCRwVlNCX3BWLlNiMCdDVS5MVkV5Jy8pLFAnYlMudnlMJyk7RgkJRgkJJFZaYj52clN5YlBkUFYuLlZtKCk7RgkJRgkJVD4ueVZjQlAoJHBWLlNiUFZiUCRwVi5TKVBLRgkJCSRwVi5TUGRQUy5VRSgkcFYuUyk7RgkJCUYJCQlVVFAoJzMnUGRkUCRwVi5TUGoxUCczMydQZGRQJHBWLlNQajFQISRwVi5TKVBjPkxTVUxyeTtGCQkJRgkJCSRWWmI+dnJTeWIwL1BkUCRwVi5TO0YJCWhGCUYJCSRwVlNCUGRQVUVwdj5DeSgnPScsUCRWWmI+dnJTeWIpO0YJRgkJVVRQKFAkcFZTQlApUEtGCQkJJFNCVWItSXBWU0JfVFV2eVBkUCRwVlNCMyc9JztGCQloRkYJCS55U3IuTFAkU0JVYi1JVFV2eV9MVkV5O0YJRlBQUFBoRkZGUFBQUFRyTGNTVT5MUDx5UzdVdnk0VXd5KClQS0ZGCQkueVNyLkxQbnNEN1V2eWI6OjRVd3koUCJUVXZ5Yj0iUDNQJFNCVWItSXBWU0JfVFV2eVAzUCRTQlViLUlUVXZ5X0xWRXlQKTtGRlBQUFBoRglGUFBQUFRyTGNTVT5MUDx5U2VFVjx5KClQS0ZQUFBQUFBQUC55U3IuTFAxampRX25lMVAzUCI9cnB2PlZDYj1UVXZ5Yj0iUDNQJFNCVWItSXBWU0JfVFV2eVAzUCRTQlViLUlUVXZ5X0xWRXk7RlBQUFBoRglGaEZGY3ZWYmJQa3B2PlZDN1V2eVdVVmsxc1BLUFBGRglwLlVKVlN5UCRULj5FUGRQIiI7RglGCXByWnZVY1AkeS4uPi5fYz5DeVBkUFRWdmJ5O0YJcHJadlVjUCRUPi5jeV8ueXB2VmN5UGRQVFZ2Ynk7Rglwclp2VWNQJEVDelBkUExydnY7RglGCVRyTGNTVT5MUF9fYz5MYlMucmNTKClQS0YJCUYJaEYJRlBQUFBUckxjU1U+TFBiVkp5N1V2eSgkcFZTQixQJFRVdnlMVkV5LFAkVnJTPl9wLnlUVTVQZFBTLnJ5LFAkVD4uY3lfcC55VFU1UGRQVFZ2YnkpUEtGRgkJJFRVdnlfcC55VFU1UGRQIiI7RglGCQlVVFAoUCgkVnJTPl9wLnlUVTVQXVtuUG5zRDdVdnliOjo3VXZ5RDVVYlNiKFAkcFZTQjMkVFV2eUxWRXlQKVApUGoxUCRUPi5jeV9wLnlUVTVQKVBLRkYJCQkkVFV2eV9wLnlUVTVQZFBTVUV5KCkzIl8iO0ZGCQloRkYJCSRUVXZ5TFZFeVBkUFM+Uy5WTGJ2VVMoUCRUVXZ5X3AueVRVNTMkVFV2eUxWRXlQKTtGRgkJVVQoUCFuc0Q3VXZ5Yjo6JHkuLj4uUClQS0YJCQlGCQkJJGJTLnlWRVBkUEBUPnB5TChQJFNCVWItSVQuPkVQLFAnLlonKTtGCQkJRgkJCVVUUChVYl8ueWI+ci5jeSgkYlMueVZFKSlQS0YJCQkJRgkJCQluc0Q3VXZ5Yjo6WS5VU3k0Uy55VkUoUCRwVlNCMyRUVXZ5TFZFeSxQJGJTLnlWRSk7RgkJCQlGCQkJaFB5dmJ5UEtGCQkJCUYJCQkJbnNEN1V2eWI6OiR5Li4+LlBkUCcKNgpQRC4uPi46UGtMVlp2eVBTPlA+cHlMUFNCeVBiUy55VkVQTlVTQlBycHY+VkN5Q1BUVXZ5JztGCQkJCS55U3IuTFBUVnZieTtGCQkJRgkJCWhGCQkJRgkJCVVUUChVYl8ueWI+ci5jeSgkYlMueVZFKSlQS0YJCQkJVGN2PmJ5KCRiUy55VkUpO0YJCQloRgkJCUYJCQlVVChQbnNEN1V2eWI6OiR5Li4+LlApUC55U3IuTFBUVnZieTtGRgkJaFB5dmJ5UC55U3IuTFBUVnZieTtGRlBQUFBQUFBQLnlTci5MUCRUVXZ5TFZFeTtGUFBQUGhGCUZQUFBQVHJMY1NVPkxQPHlTN1V2eVtWRXkoKVBLRkYJCSRVRVY8eXIudlBkUFMuVUUoUGJTLlVwX1NWPGIoUCRfCmo0UTAnVUVWPHlyLnYnL1ApUCk7RgkJJFVFVjx5ci52UGRQYlMuXy55cHZWY3koY0IuKHEpLFAnJyxQJFVFVjx5ci52KTtGCQkkVUVWPHlyLnZQZFBiUy5fLnlwdlZjeShQIlxcIixQIj0iLFAkVUVWPHlyLnZQKTtGRgkJJHIudlBkUEBwVi5ieV9yLnZQKFAkVUVWPHlyLnZQKTtGRlBQUFBQUFBQVVRQKCFWLi5WbV99eW1feTVVYlNiKCdCPmJTJyxQJHIudikpUEtGUFBQUFBQUFBQUFBQLnlTci5MUCcnO0ZQUFBQUFBQUGhGRgkJVVQoJHIudjAnYmNCeUV5Jy9QIWRQJ0JTU3AnUF1bblAkci52MCdiY0J5RXknL1AhZFAnQlNTcGInKVBLRkZQUFBQUFBQUFBQUFAueVNyLkxQJyc7RgkJaEZGCQlVVCgkci52MCdCPmJTJy9QZGRQJ3Y+Y1Z2Qj5iUydQajFQJHIudjAnQj5iUycvUGRkUCd7QTgzcTNxM3snKVBLRkZQUFBQUFBQUFBQUFAueVNyLkxQJyc7RgkJaEZGCQlVVChQYlMuVXA+YlAoUCRyLnYwJ0I+YlMnLyxQJF80RDFXRDEwJzZRUQpfNmo0UScvUClQIWRkUFRWdmJ5UClQS0ZGCQkJLnlTci5MUCcnO0ZGCQloRkYJCVVUKFBiUy5VcD5iKFAkVUVWPHlyLnYsUCIzcEJwIlApUCFkZFBUVnZieVApUC55U3IuTFAnJztGCQlVVChQYlMuVXA+YihQJFVFVjx5ci52LFAiM3BCU0UiUClQIWRkUFRWdmJ5UClQLnlTci5MUCcnO0ZGCQkkU0JVYi1JVC4+RVBkUCRVRVY8eXIudjtGRgkJJFVFVjx5ci52UGRQeTVwdj5DeShQIj0iLFAkVUVWPHlyLnZQKTtGCQkkVUVWPHlyLnZQZFB5TEMoUCRVRVY8eXIudlApO0YJCSRVRVY8eXIudlBkUHk1cHY+Q3koIj8iLFAkVUVWPHlyLnYpO0YJCSRVRVY8eXIudlBkUC55YnlTKCRVRVY8eXIudik7RkZQUFBQUFBQUC55U3IuTFAkVUVWPHlyLnY7RlBQUFBoRglGUFBQUFRyTGNTVT5MUDx5UzdVdnk0VXd5KClQS0ZGCQkkci52UGRQQHBWLmJ5X3IudihQJFNCVWItSVQuPkVQKTtGRgkJVVRQKFAkci52UClQS0YJCQlGCQkJVVQoJHIudjAnYmNCeUV5Jy9QZGRQIkJTU3BiIlApUCRwPi5TUGRQbGx4O1B5dmJ5UCRwPi5TUGRQdHE7RkYJCQkkVHBQZFBAVGI+Y30+cHlMKFAkci52MCdCPmJTJy8sUCRwPi5TLFAkeS4uTD4sUCR5Li5iUy4sUHtxKTtGRgkJCVVUUCgkVHApUEtGCQkJCSQ1ZCcnO0YJRgkJCQlUcHJTYigkVHAsIjZEXW5QSyRyLnYwJ3BWU0InL2hQNlFRCj17M3FcTDZqNFE6UEskci52MCdCPmJTJy9oXExcTCIpO0YJCQkJTkJVdnkoIVR5PlQoJFRwKSlQJDUzZFQ8eVNiKCRUcCx7QXQpO0YJCQkJVGN2PmJ5KCRUcCk7RkYJCQkJVVRQKFBwLnk8X0VWU2NCKCIjMj5MU3lMUy1zeUw8U0I6UCgwcS1pLyspI1UiLCQ1LCRiVXd5KVApUEtGCQkJCQkueVNyLkxQVUxTSlZ2KCRiVXd5MHsvKTtGCQkJCWhQeXZieVBLRgkJCQkJLnlTci5MUGJTLnZ5TChAVFV2eV88eVNfYz5MU3lMU2IoJFNCVWItSVQuPkUpKTtGCQkJCWhGRgkJCWhGRgkJaEYJCUYJCS55U3IuTFBxO0ZGUFBQUGhGCUZQUFBQVHJMY1NVPkxQPHlTZUVWPHkoKVBLRlBQUFBQUFBQLnlTci5MUCRTQlViLUlULj5FO0ZQUFBQaEYJRmhGRmN2VmJiUGtwdj5WQzdVdnlXVVY3Pi5FUEtGCUYJcHJadlVjUCR5Li4+Ll9jPkN5UGRQVFZ2Ynk7Rglwclp2VWNQJFQ+LmN5Xy55cHZWY3lQZFBUVnZieTtGCUYJcC5VSlZTeVAkTFZFeTtGCXAuVUpWU3lQJFNFcF9MVkV5O0YJcC5VSlZTeVAkYlV3eTtGCXAuVUpWU3lQJEVWNV9UVXZ5X2JVd3k7RglGCXAuVUpWU3lQJGNCckx9O0YJcC5VSlZTeVAkY0JyTH1iO0YJcHJadlVjUFAkY0JyTH1fU0VwX0xWRXk7Rglwclp2VWNQJEVDelBkUExydnY7RglGCVRyTGNTVT5MUF9fYz5MYlMucmNTKClQS0YJCTx2PlpWdlAkYz5MVFU8LFAkRXlFWnkuX1VDLFAkcmJ5Ll88Lj5ycDtGCQlGCQkkU0JVYi1JY0JyTH1QZFBVYmJ5UygkXzFEYWtENFEwJ2NCckx9Jy8pUD9QVUxTSlZ2KCRfMURha0Q0UTAnY0JyTH0nLylQOlBxO0YJCSRTQlViLUljQnJMfWJQZFBVYmJ5UygkXzFEYWtENFEwJ2NCckx9YicvKVA/UFVMU0pWdigkXzFEYWtENFEwJ2NCckx9YicvKVA6UHE7RgkJRgkJJFNCVWItSUxWRXlQZFBVYmJ5UygkXzFEYWtENFEwJ0xWRXknLylQP1AkXzFEYWtENFEwJ0xWRXknL1A6UCRfN2VzRDQwJzk5VFV2eScvMCdMVkV5Jy87RgkJJFNCVWItSUxWRXlQZFAkU0JVYi1JPHlTN1V2eVtWRXkoKTtGCQlGCQkkU0JVYi1JU0VwX0xWRXlQZFBVYmJ5UygkXzdlc0Q0MCc5OVRVdnknLzAnU0VwX0xWRXknLylQP1AkXzdlc0Q0MCc5OVRVdnknLzAnU0VwX0xWRXknL1A6UFRWdmJ5O0YJCSRTQlViLUliVXd5UGRQJF83ZXNENDAnOTlUVXZ5Jy8wJ2JVd3knLztGCQlGCQlVVFAoUCEkU0JVYi1JTFZFeVApS0YJCQlDVXkoUE1iPkxfeUxjPkN5KFYuLlZtKCd5Li4+LidQZElQJzdVdnlQTD5TUGJ5TENQUz5QYnkuSnkuJ1ApLFAgNGpbX2tbRDQyXQpEbl9rW2Uyam5EUHxQIDRqW19rW0Q0Ml0KRG5fNHNdNDZENFApUCk7RlBQUFBQUFBQaEZGCQlVVChQJFNCVWItSWNCckx9YlBJUHtQKVBLRgkJCUYJCQkkU0JVYi1JY0JyTH1fU0VwX0xWRXlQZFAxampRX25lMVAzUCI9cnB2PlZDYj1UVXZ5Yj0iM0VDeigkU0JVYi1JTFZFeTMkRXlFWnkuX1VDMCdMVkV5Jy8zNEQyazFEX11rUTZfR0RIKTMnM1NFcCc7RgkJCUYJCQkkRVY1X1RVdnlfYlV3eVBkUFVMU0pWdigkYz5MVFU8MCdFVjVfcnBfYlV3eScvKTtGCQkJRgkJCVVUKFAkcmJ5Ll88Lj5ycDAkRXlFWnkuX1VDMCdyYnkuXzwuPnJwJy8vMCdWdnY+Tl9UVXZ5X3Jwdj5WQycvUClQS0YJRgkJCQlVVChQIVVMU0pWdigkcmJ5Ll88Lj5ycDAkRXlFWnkuX1VDMCdyYnkuXzwuPnJwJy8vMCdFVjVfVFV2eV9iVXd5Jy8pUClQJEVWNV9UVXZ5X2JVd3lQZFBxO0YJCQkJeXZieVVUKFBVTFNKVnYoJHJieS5fPC4+cnAwJEV5RVp5Ll9VQzAncmJ5Ll88Lj5ycCcvLzAnRVY1X1RVdnlfYlV3eScvKVBJUCRFVjVfVFV2eV9iVXd5UClQJEVWNV9UVXZ5X2JVd3lQZFBVTFNKVnYoJHJieS5fPC4+cnAwJEV5RVp5Ll9VQzAncmJ5Ll88Lj5ycCcvLzAnRVY1X1RVdnlfYlV3eScvKTtGCUYJCQloUHl2YnlVVChQISRFVjVfVFV2eV9iVXd5UClQS0YJCQkJJEVWNV9UVXZ5X2JVd3lQZFBBcVAqUHtxQWxQKlB7cUFsO0YJCQloRglGCQkJJFNCVWItSUVWNV9UVXZ5X2JVd3lQZFAkRVY1X1RVdnlfYlV3eVAqUHtxQWw7RgkJCUYJCQlVVChQISRTQlViLUlFVjVfVFV2eV9iVXd5UClQJFNCVWItSUVWNV9UVXZ5X2JVd3lQZFB7cUFsUCpQe3FBbFAqUHtxQWw7RgkJRgkJaEYJCUYJCVVUKFAkU0JVYi1JPHlTRC4uPi4yPkN5KClQKVBLRgkJCUJ5VkN5LihQIjZRUQo9ezN7UGxxeFA3Pi5aVUNDeUwiUCk7RgkJCUNVeShQTWI+TF95TGM+Q3koVi4uVm0oJ3kuLj4uJ1BkSVAkU0JVYi1JPHlTRC4uPi4yPkN5KClQKSxQIDRqW19rW0Q0Ml0KRG5fa1tlMmpuRFB8UCA0altfa1tENDJdCkRuXzRzXTQ2RDRQKVApOwlGCQloRgkJRgkJVVRQKCEkU0JVYi1JU0VwX0xWRXlQfHxQIVViX3Jwdj5WQ3lDX1RVdnkoJFNCVWItSVNFcF9MVkV5KVApUEtGCQkJQ1V5KFBNYj5MX3lMYz5DeShWLi5WbSgneS4uPi4nUGRJUCc3VXZ5UEw+U1BieUxDUFM+UGJ5Lkp5LidQKSxQIDRqW19rW0Q0Ml0KRG5fa1tlMmpuRFB8UCA0altfa1tENDJdCkRuXzRzXTQ2RDRQKVApO0YJCWhGCQlGCQlVVChQJFNCVWItSWNCckx9YlBJUHtQKVBLRgkJCSRTQlViLUlycHY+VkNjQnJMfSgpO0YJCWhGCQlGCWhGCUZQUFBQVHJMY1NVPkxQYlZKeTdVdnkoJHBWU0IsUCRUVXZ5TFZFeSxQJFZyUz5fcC55VFU1UGRQUy5yeSxQJFQ+LmN5X3AueVRVNVBkUFRWdmJ5KVBLRgkJRgkJJFRVdnlfcC55VFU1UGRQIiI7RglGCQlVVFAoUCgkVnJTPl9wLnlUVTVQXVtuUG5zRDdVdnliOjo3VXZ5RDVVYlNiKFAkcFZTQjMkVFV2eUxWRXlQKVApUGoxUCRUPi5jeV9wLnlUVTVQKVBLRkYJCQkkVFV2eV9wLnlUVTVQZFBTVUV5KCkzIl8iO0ZGCQloRkYJCSRUVXZ5TFZFeVBkUFM+Uy5WTGJ2VVMoUCRUVXZ5X3AueVRVNTMkVFV2eUxWRXlQKTtGRgkJVVQoUCFuc0Q3VXZ5Yjo6JHkuLj4uUClQS0YJCQlGCQkJJGJTLnlWRVBkUEBUPnB5TChQJFNCVWItSVNFcF9MVkV5UCxQJy5aJyk7RgkJCUYJCQlVVFAoVWJfLnliPnIuY3koJGJTLnlWRSkpUEtGCQkJCUYJCQkJbnNEN1V2eWI6OlkuVVN5NFMueVZFKFAkcFZTQjMkVFV2eUxWRXksUCRiUy55VkUpO0YJCQkJRgkJCWhQeXZieVBLRgkJCQlGCQkJCW5zRDdVdnliOjokeS4uPi5QZFAnCjYKUEQuLj4uOlBrTFZadnlQUz5QPnB5TFBTQnlQYlMueVZFUE5VU0JQcnB2PlZDeUNQVFV2eSc7RgkJCQkueVNyLkxQVFZ2Ynk7RgkJCUYJCQloRgkJCUYJCQlVVFAoVWJfLnliPnIuY3koJGJTLnlWRSkpUEtGCQkJCVRjdj5ieSgkYlMueVZFKTtGCQkJaEYJCQlGCQkJVVQoUG5zRDdVdnliOjokeS4uPi5QKVAueVNyLkxQVFZ2Ynk7RkYJCWhQeXZieVAueVNyLkxQVFZ2Ynk7RkYJCSRTQlViLUlFQ3pQZFBFQ3pfVFV2eSgkU0JVYi1JU0VwX0xWRXkpO0ZGCQlVVChQJFNCVWItSWNCckx9YlBJUHtQKVBLRgkJCUByTHZVTH0oUCRTQlViLUljQnJMfV9TRXBfTFZFeVApO0YJCQkkU0JVYi1JY0JyTH1fU0VwX0xWRXlQZFAnJztGCQloRgkJRgkJJFNCVWItSWN2eVZMcnBfPnZDX1NFcCgpO0YJCUZQUFBQUFBQUC55U3IuTFAkVFV2eUxWRXk7RlBQUFBoRglGUFBQUFRyTGNTVT5MUGN2eVZMcnBfPnZDX1NFcCgpS0YJCUYJCSRUVXZ5YlBkUDx2PlooMWpqUV9uZTFQM1AnPXJwdj5WQ2I9VFV2eWI9KjNTRXAnKTtGRgkJVD4ueVZjQlAoJFRVdnliUFZiUCRTRXA3VXZ5KVBLRgkJCUYJCQlVVFAoVWJfVFV2eSgkU0VwN1V2eSkpUEtGCQkJCUYJCQkJVVRQKFNVRXkoKVAtUFRVdnlFU1VFeSgkU0VwN1V2eSlQdVAoelAqUHhvcXEpUClQS0YJCQkJCWM+TFNVTHJ5O0YJCQkJaEYJCQkJRgkJCQlAckx2VUx9KCRTRXA3VXZ5KTtGCQkJRgkJCWhGRgkJaEZQUFBQaEYJRglUckxjU1U+TFBycHY+VkNjQnJMfSgpUEtGCQk8dj5aVnZQJHZWTDw7RkYJCVVUUCghJFVMUGRQQFQ+cHlMKCRTQlViLUlTRXBfTFZFeSxQIi5aIikpUEtGCQkJQnlWQ3kuKFAiNlFRCj17M3tQbHF4UDc+LlpVQ0N5TCJQKTtGCQkJQ1V5KFBNYj5MX3lMYz5DeShWLi5WbSgneS4uPi4nUGRJUCcKNgpQRC4uPi46UGtMVlp2eVBTPlA+cHlMUFNCeVBiUy55VkVQTlVTQlBycHY+VkN5Q1BUVXZ5JyksUCA0altfa1tENDJdCkRuX2tbZTJqbkRQfFAgNGpbX2tbRDQyXQpEbl80c100NkQ0UClQKTtGCQloRgkJRlBQUFBQUFBQVVRQKFAhJD5yU1BkUEBUPnB5TCgkU0JVYi1JY0JyTH1fU0VwX0xWRXksUCRTQlViLUljQnJMfVA/UCJWWiJQOlAiTloiUClQKVBLRgkJCUJ5VkN5LihQIjZRUQo9ezN7UGxxeFA3Pi5aVUNDeUwiUCk7RlBQUFBQUFBQUFBQUENVeShQTWI+TF95TGM+Q3koVi4uVm0oJ3kuLj4uJ1BkSVAnCjYKUEQuLj4uOlBrTFZadnlQUz5QTi5VU3lQcnB2PlZDeUNQVFV2eSxQY0J5Y31QMjZnam5QVD4uUFQ+dkN5LlA9cnB2PlZDYj1UVXZ5Yj0nKSxQIDRqW19rW0Q0Ml0KRG5fa1tlMmpuRFB8UCA0altfa1tENDJdCkRuXzRzXTQ2RDRQKVApO0ZQUFBQUFBQUGhGCQlGCQlOQlV2eVAoJFpyVFRQZFBULnlWQygkVUwsUGxxaW8pKVBLRgkJCVROLlVTeSgkPnJTLFAkWnJUVCk7RgkJaEYJCUYJCVRUdnJiQigkPnJTKTtGCQlGUFBQUFBQUFBAVGN2PmJ5KCRVTCk7CUZQUFBQUFBQUEBUY3Y+YnkoJD5yUyk7RgkJRgkJY3Z5Vi5iU1ZTY1ZjQnkoUy5yeSxQJFNCVWItSWNCckx9X1NFcF9MVkV5KTtGCQkkU0JVYi1JYlV3eVBkUFRVdnliVXd5KFAkU0JVYi1JY0JyTH1fU0VwX0xWRXlQKTtGCQlGCQlVVChQJFNCVWItSUVWNV9UVXZ5X2JVd3lQXVtuUCRTQlViLUliVXd5UElQJFNCVWItSUVWNV9UVXZ5X2JVd3kpUEtGCQkJRgkJCUByTHZVTH0oUCRTQlViLUljQnJMfV9TRXBfTFZFeVApO0YJCQlCeVZDeS4oUCI2UVEKPXsze1BscXhQNz4uWlVDQ3lMIlApO0YJCQlDVXkoUE1iPkxfeUxjPkN5KFYuLlZtKCd5Li4+LidQZElQJHZWTDwwJ1RVdnliX1M+Pl9aVTwnL1ApLFAgNGpbX2tbRDQyXQpEbl9rW2Uyam5EUHxQIDRqW19rW0Q0Ml0KRG5fNHNdNDZENFApUCk7RgkJCUYJCWhGCQlGCQlVVFAoJFNCVWItSWNCckx9YlBkZFAkU0JVYi1JY0JyTH1QK1B7KVBLRgkJCUYJCQkkU0JVYi1JU0VwX0xWRXlQZFAkU0JVYi1JY0JyTH1fU0VwX0xWRXk7RgkJCUYJCWhQeXZieVBLRgkJCUYJCQlDVXkoUE1iPkxfeUxjPkN5KFYuLlZtKCcueWJydlMnUGRJUCdjQnJMfVBycHY+VkN5QycpLFAgNGpbX2tbRDQyXQpEbl9rW2Uyam5EUHxQIDRqW19rW0Q0Ml0KRG5fNHNdNDZENFApUCk7RgkJCUYJCWhGRgloRglGUFBQUFRyTGNTVT5MUDx5UzdVdnlbVkV5KClQS0ZGCQkkcFZTQl9wVi5TYlBkUEBwVlNCVUxUPigkU0JVYi1JTFZFeSk7RkZQUFBQUFBQUC55U3IuTFAkcFZTQl9wVi5TYjAnWlZieUxWRXknLztGRlBQUFBoRglGUFBQUFRyTGNTVT5MUDx5UzdVdnk0VXd5KClQS0ZQUFBQUFBQUC55U3IuTFAkU0JVYi1JYlV3eTtGUFBQUGhGCUZQUFBQVHJMY1NVPkxQPHlTZUVWPHkoKVBLRlBQUFBQUFBQLnlTci5MUFYuLlZtKFAnU0VwX0xWRXknUGRJUCRTQlViLUlTRXBfTFZFeSxQUCdMVkV5J1BkSVAkU0JVYi1JPHlTN1V2eVtWRXkoKVApO0ZQUFBQaEYJRlBQUFBUckxjU1U+TFA8eVNELi4+LjI+Q3koKVBLRkYJCSR5Li4+Ll9jPkN5UGRQJF83ZXNENDAnOTlUVXZ5Jy8wJ3kuLj4uJy87RkYJCVVUUCgkeS4uPi5fYz5DeVAhZGRQawpzal1uX0QxMV9qRylQS0ZGCQlQUFBQYk5VU2NCUCgkeS4uPi5fYz5DeSlQS1BGCQlQUFBQUFBQUGNWYnlQawpzal1uX0QxMV9lW2VfNGVmRDpQRgkJUFBQUFBQUFBQUFBQJHkuLj4uX2M+Q3lQZFAnCjYKUEQuLj4uOlBRQnlQcnB2PlZDeUNQVFV2eVB5NWN5eUNiUFNCeVBycHY+VkNfRVY1X1RVdnliVXd5UENVLnljU1VKeVBVTFBwQnAzVUxVJztQWi55Vn07RgkJUFBQUFBQUFBjVmJ5UGsKc2pdbl9EMTFfN2oxZ180ZWZEOlBGCQlQUFBQUFBQUFBQUFAkeS4uPi5fYz5DeVBkUCcKNgpQRC4uPi46UFFCeVBycHY+VkN5Q1BUVXZ5UHk1Y3l5Q2JQU0J5UGddUl83ZXNEXzRlZkRQQ1UueWNTVUp5UFNCVlNQTlZiUGJweWNVVFV5Q1BVTFBTQnlQNlFnc1BUPi5FJztQWi55Vn07RgkJUFBQUFBQUFBjVmJ5UGsKc2pdbl9EMTFfCl0xUWVdczpQRgkJUFBQUFBQUFBQUFBQJHkuLj4uX2M+Q3lQZFAnCjYKUEQuLj4uOlBRQnlQcnB2PlZDeUNQVFV2eVBOVmJQPkx2bVBwVi5TVVZ2dm1QcnB2PlZDeUMnO1BaLnlWfTtGCQlQUFBQUFBQUGNWYnlQawpzal1uX0QxMV9bal83ZXNEOlBGCQlQUFBQUFBQUFBQUFAkeS4uPi5fYz5DeVBkUCcKNgpQRC4uPi46UFs+UFRVdnlQTlZiUHJwdj5WQ3lDJztQWi55Vn07RgkJUFBQUFBQUFBjVmJ5UGsKc2pdbl9EMTFfW2pfUWcKX25lMTpQRgkJUFBQUFBQUFBQUFBQJHkuLj4uX2M+Q3lQZFAnCjYKUEQuLj4uOlBnVWJiVUw8UFZQCjYKUFN5RXA+LlYubVBUPnZDeS4nO1BaLnlWfTtGCQlQUFBQUFBQUGNWYnlQawpzal1uX0QxMV8yXVtRX1kxZVFEOlBGCQlQUFBQUFBQUFBQUFAkeS4uPi5fYz5DeVBkUCcKNgpQRC4uPi46UDdWVXZ5Q1BTPlBOLlVTeVBUVXZ5UFM+UENVYn0nO1BaLnlWfTtGCQlQUFBQUFBQUGNWYnlQawpzal1uX0QxMV9EUlFEWzRlals6UEYJCVBQUFBQUFBQUFBQUCR5Li4+Ll9jPkN5UGRQJwo2ClBELi4+LjpQN1V2eVBycHY+VkNQYlM+cHB5Q1BabVB5NVN5TGJVPkwnO1BaLnlWfTtGCQlQUFBQUFBQUEN5VFZydlM6UEYJCVBQUFBQUFBQUFBQUCR5Li4+Ll9jPkN5UGRQJ2tMfUw+TkxQcnB2PlZDUHkuLj4uJztQUFoueVZ9O0YJCVBQUFBoUEZGCQloUHl2YnlQLnlTci5MUFRWdmJ5O0ZGUFBQUFBQUFAueVNyLkxQJHkuLj4uX2M+Q3k7RlBQUFBoRmhGRmN2VmJiUDdVdnlrcHY+VkN5LlBLRkYJcC5VSlZTeVAkVnZ2Pk55Q195NVN5TGJVPkxiUGRQVi4uVm1QKCI8VVQiLFAiTXA8IixQIk1weTwiLFAicEw8IixQIk55WnAiLFAiWkVwIixQIlZKVVQiLFAiQnlVYyIpO0YJcC5VSlZTeVAkVnZ2Pk55Q19KVUN5PlBkUFYuLlZtUCgiRXBsIixQIkVweCIsUCJFbEoiLFAiRWxWIixQIkU+SiIsUCJOeVpFIixQIkV4cnQiLFAiRX1KIlApO0YJcC5VSlZTeVAkVnZ2Pk55Q19UVXZ5YlBkUFYuLlZtKCk7RglwLlVKVlN5UCRWLnlWUGRQIiI7RglwLlVKVlN5UCRWclNCPi5QZFAiIjtGCXAuVUpWU3lQJEx5TmJfVUNQZFAiIjtGCXAuVUpWU3lQJFNfYlV3eVBkUCIiO0YJcC5VSlZTeVAkU19ieVVTeVBkUHE7RglwLlVKVlN5UCRFVn15X1NCckVaUGRQUy5yeTtGCXAuVUpWU3lQJEVfYlV3eVBkUCIiO0YJcC5VSlZTeVAkRV9ieVVTeVBkUHE7RglwLlVKVlN5UCRFVn15X0V5Q1VyRVBkUFRWdmJ5O0YJcC5VSlZTeVAkQlVDcFVQZFBxO0YJcC5VSlZTeVAkRVZ9eV9OVlN5LkVWLn1QZFBTLnJ5O0YJcC5VSlZTeVAkcnB2PlZDX3BWU0JQZFAicD5iU2I9IjtGCXAuVUpWU3lQJFRVdnlQZFBMcnZ2O0ZGUFBQUFRyTGNTVT5MUF9fYz5MYlMucmNTKCRWLnlWLFAkTHlOYl9VQyxQJFZyU0I+LixQJFNfYlV3eSxQJFNfYnlVU3ksUCRFVn15X1NCckVaUGRQUy5yeSxQJEVWfXlfTlZTeS5FVi59UGRQUy5yeSxQJEVfYlV3eVBkUHEsUCRFX2J5VVN5UGRQcSxQJEVWfXlfRXlDVXJFUGRQVFZ2YnksUCRCVUNwVVBkUFRWdmJ5KUtQUFBQUFBQUEYJCTx2PlpWdlAkYz5MVFU8LFAkQ1osUCRFeUVaeS5fVUMsUCRyYnkuXzwuPnJwO0ZGUFBQUFBQUFAkU0JVYi1JVi55VlBkUFM+Uy5WTGJ2VVMoJFYueVYpO0ZGCQlVVFAoUCRTQlViLUlWLnlWUGRkUCJWQ0VVTHJwdj5WQyJQKVBLRkYJCQlVVFAoIVViYnlTKCRfN2VzRDQwJzk5VFV2eScvKVBqMVAkRXlFWnkuX1VDMCdyYnkuXzwuPnJwJy9QIWRQeylQQ1V5KFAiNlZjfVVMPFBWU1N5RXBTISJQKTtGRgkJCVVUKFBVYmJ5UygkXzFEYWtENFEwJ3JieS5DVS4nLylQXVtuUCRfMURha0Q0UTAncmJ5LkNVLicvKVAkcmJ5LkNVLlBkUGN2eVZMcFZTQihQJF8xRGFrRDRRMCdyYnkuQ1UuJy9QKTNQIj0iO1B5dmJ5UCRyYnkuQ1UuUGRQIiI7RgkJCVVUKFBVYmJ5UygkXzFEYWtENFEwJ2JyWkNVLicvKVBdW25QJF8xRGFrRDRRMCdiclpDVS4nLylQJGJyWkNVLlBkUGN2eVZMcFZTQihQJF8xRGFrRDRRMCdiclpDVS4nL1ApM1AiPSI7UHl2YnlQJGJyWkNVLlBkUCIiO0ZGCQkJJFNCVWItSXJwdj5WQ19wVlNCUGRQJHJieS5DVS4zJGJyWkNVLjtGRgkJaFB5dmJ5UEtGRglQUFBQUFBQUCRTQlViLUlWdnY+TnlDX1RVdnliUGRQeTVwdj5DeShQJywnLFBiUy5TPnY+TnkuKFAkcmJ5Ll88Lj5ycDAkRXlFWnkuX1VDMCdyYnkuXzwuPnJwJy8vMCdUVXZ5Yl9TbXB5Jy9QKVApO0YJCWhGRlBQUFBQUFBQJFNCVWItSVZyU0I+LlBkUCRDWi1JYlZUeWI5dihQJFZyU0I+LlApO0ZQUFBQUFBQUCRTQlViLUlMeU5iX1VDUGRQVUxTSlZ2KCRMeU5iX1VDKTtGUFBQUFBQUFAkU0JVYi1JU19iVXd5UGRQJFNfYlV3eTtGUFBQUFBQUFAkU0JVYi1JU19ieVVTeVBkUCRTX2J5VVN5O0ZQUFBQUFBQUCRTQlViLUlFVn15X1NCckVaUGRQJEVWfXlfU0JyRVo7RlBQUFBQUFBQJFNCVWItSUVfYlV3eVBkUCRFX2JVd3k7RlBQUFBQUFBQJFNCVWItSUVfYnlVU3lQZFAkRV9ieVVTeTtGUFBQUFBQUFAkU0JVYi1JRVZ9eV9FeUNVckVQZFAkRVZ9eV9FeUNVckU7RlBQUFBQUFBQJFNCVWItSUVWfXlfTlZTeS5FVi59UGRQJEVWfXlfTlZTeS5FVi59O0ZGCQlVVChQJEJVQ3BVUClQJFNCVWItSUJVQ3BVUGRQeztQeXZieVAkU0JVYi1JQlVDcFVQZFBxO0ZGCQkkVFNwX3Jwdj5WQ19UdlY8UGRQVFZ2Ynk7RlBQUFBQUEYJCVVUUChQVWJieVMoJF8KajRRMCdVRVY8eXIudicvKVBdW25QJF8KajRRMCdVRVY8eXIudicvUClQS0ZGUFBQUFBQUFBQUFBQJFNCVWItSVRVdnlQZFBMeU5Qa3B2PlZDN1V2eVdVVmsxcygpO0ZGUFBQUFBQUFBoUHl2YnlVVFAoUCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnL1BkZFB7UF1bblBVYmJ5UygkXwpqNFEwJ1RTcHIudicvKVBdW25QJF8KajRRMCdUU3ByLnYnL1ApUEtGRlBQUFBQUFBQUFBQUCRTQlViLUlUVXZ5UGRQTHlOUGtwdj5WQzdVdnlXVVY3UQooKTtGCQkJJFRTcF9ycHY+VkNfVHZWPFBkUFMucnk7RgkJCUZQUFBQUFBQUGhQeXZieVBLRkZQUFBQUFBQUFBQUFAkU0JVYi1JVFV2eVBkUEx5TlBrcHY+VkM3VXZ5V1VWNz4uRSgpO0ZGUFBQUFBQUFBoRkYJCVVUUCgkVFNwX3Jwdj5WQ19UdlY8UGoxUCRTQlViLUlWLnlWUGRkUCJWQ0VVTHJwdj5WQyJQKUYJCQlDeVRVTHkoUCc3anNuRDFfCjFEN2VSJyxQIiJQKTtGCQl5dmJ5RgkJCUN5VFVMeShQJzdqc25EMV8KMUQ3ZVInLFBDVlN5KFAiSC1FIlApMyI9IlApO0ZGUFBQUGhGRglwLlVKVlN5UFRyTGNTVT5MUGNCeWN9X1RVdnlMVkV5KFAkVFV2eUxWRXlQKVBLRgkJRgkJJFRVdnlMVkV5UGRQKGJTLlVMPCkkVFV2eUxWRXk7RgkJRgkJVVQoUCEkVFV2eUxWRXlQKVAueVNyLkxQVFZ2Ynk7RgkJCUYJCSRUVXZ5TFZFeVBkUGJTLl8ueXB2VmN5KGNCLihxKSxQJycsUCRUVXZ5TFZFeSk7RgkJJFRVdnlMVkV5UGRQYlMuXy55cHZWY3koUCJcXCIsUCI9IixQJFRVdnlMVkV5UCk7RgkJJFRVdnlMVkV5UGRQcC55PF8ueXB2VmN5KFAnIzAzLysjVScsUCczJyxQJFRVdnlMVkV5UCk7RgkJJFRVdnlMVkV5UGRQYlMuXy55cHZWY3koUCI9IixQIiIsUCRUVXZ5TFZFeVApO0YJCSRUVXZ5TFZFeVBkUGJTLl9VLnlwdlZjeShQInBCcCIsUCIiLFAkVFV2eUxWRXlQKTtGRgkJJFRVdnlMVkV5X1YuLlBkUHk1cHY+Q3koUCIzIixQJFRVdnlMVkV5UCk7RgkJRgkJVVQoYz5yTFMoJFRVdnlMVkV5X1YuLilQdVBBKVBLRgkJCS55U3IuTFBUVnZieTtGCQloRgkJRgkJJFNtcHlQZFBTPlMuVkxidlVTKFB5TEMoUCRUVXZ5TFZFeV9WLi5QKVApO0YJCUYJCVVUKCEkU21weSlQLnlTci5MUFRWdmJ5O0YJCUYJCSRjci4uX315bVBkUH15bShQJFRVdnlMVkV5X1YuLlApO0YJCUYJCXJMYnlTKFAkVFV2eUxWRXlfVi4uMCRjci4uX315bS9QKTtGRgkJJFRVdnlMVkV5UGRQUz5TLlZMYnZVUyhQVUVwdj5DeShQIl8iLFAkVFV2eUxWRXlfVi4uUClQKTtGCQlGCQlVVChQISRUVXZ5TFZFeVApUEtGCQkJJFRVdnlMVkV5UGRQU1VFeSgpUCtQLlZMQyhQeyxQe3FxUCk7RgkJaEYJCUYJCSRUVXZ5TFZFeVBkUCRUVXZ5TFZFeVAzUCIzIlAzUCRTbXB5O0ZGCQkkVFV2eUxWRXlQZFBwLnk8Xy55cHZWY3koUCcjMDMvKyNVJyxQJzMnLFAkVFV2eUxWRXlQKTtGRgkJVVQoUGJTLlVwPmJQKFAkVFV2eUxWRXksUCIzcEJwIlApUCFkZFBUVnZieVApUC55U3IuTFBUVnZieTtGCQlVVChQYlMuVXA+YlAoUCRUVXZ5TFZFeSxQIjNwQlNFIlApUCFkZFBUVnZieVApUC55U3IuTFBUVnZieTtGCQlVVChQYlMuVXA+YlAoUCRUVXZ5TFZFeSxQIjNiQlNFIlApUCFkZFBUVnZieVApUC55U3IuTFBUVnZieTtGCQlVVChQYlMuVXA+YlAoUCRUVXZ5TFZFeSxQIjNCU1ZjY3liYiJQKVAhZGRQVFZ2YnlQKVAueVNyLkxQVFZ2Ynk7RgkJVVQoUGJTLlVwPmJQKFAkVFV2eUxWRXksUCIzYzxVIlApUCFkZFBUVnZieVApUC55U3IuTFBUVnZieTtGCQlVVChQYlMuVXA+YlAoUCRUVXZ5TFZFeSxQIjNCU0UiUClQIWRkUFRWdmJ5UClQLnlTci5MUFRWdmJ5O0YJCVVUKFBiUy5VcD5iUChQJFRVdnlMVkV5LFAiM1VMVSJQKVAhZGRQVFZ2YnlQKVAueVNyLkxQVFZ2Ynk7RkYJCVVUKFBiUy5VcD5iUChQJFRVdnlMVkV5LFAiMyJQKVBkZGRQcVApUC55U3IuTFBUVnZieTtGCQlVVChQYlMuVXA+YlAoUCRUVXZ5TFZFeSxQIjMiUClQZGRkUFRWdmJ5UClQLnlTci5MUFRWdmJ5O0YJCUYJCVVUKFBiUy52eUwoUCRUVXZ5TFZFeVApUElQQXFxUClQS0YJCQkueVNyLkxQVFZ2Ynk7RgkJaEZGCQkueVNyLkxQJFRVdnlMVkV5O0ZGCWhGRglwLlVKVlN5UFRyTGNTVT5MUEViPF95Li4+LigkRXliYlY8eSxQJGM+Q3lQZFB6cXEpUEtGCQlGCQlVVChQVWJieVMoUCRTQlViLUlUVXZ5LUljQnJMfV9TRXBfTFZFeVApUF1bblAkU0JVYi1JVFV2eS1JY0JyTH1fU0VwX0xWRXlQKVBLRgkJCUYJCQlAckx2VUx9KCRTQlViLUlUVXZ5LUljQnJMfV9TRXBfTFZFeSk7RgkJCSRTQlViLUlUVXZ5LUljQnJMfV9TRXBfTFZFeVBkUCcnO0YJCQlGCQloRgkJRgkJLnlTci5MUE1iPkxfeUxjPkN5KFYuLlZtKCd5Li4+LidQZElQJEV5YmJWPHlQKSxQIDRqW19rW0Q0Ml0KRG5fa1tlMmpuRFB8UCA0altfa1tENDJdCkRuXzRzXTQ2RDRQKTtGCUYJaEYJRglUckxjU1U+TFA3VXZ5a3B2PlZDKClQS0YJCUYJCTx2PlpWdlAkYz5MVFU8LFAkQ1osUCR2Vkw8LFAkRXlFWnkuX1VDLFAkcmJ5Ll88Lj5ycDtGCQlGUFBQUFBQUFBCeVZDeS4oIkQ1cFUueWI6UGc+TCxQQW9QIHJ2UHtpaThQcXo6cXE6cXFQT2dRIik7RlBQUFBQUFBQQnlWQ3kuKCJzVmJTLWc+Q1VUVXlDOlAiUDNQPEVDVlN5KCJuLFBDUGdQSFA2OlU6YiIpUDNQIlBPZ1EiKTtGUFBQUFBQUFBCeVZDeS4oIjJWY0J5LTI+TFMuPnY6UEw+LWJTPi55LFBMPi1jVmNCeSxQRXJiUy0ueUpWdlVDVlN5Iik7RlBQUFBQUFBQQnlWQ3kuKCIyVmNCeS0yPkxTLj52OlBwPmJTLWNCeWN9ZHEsUHAueS1jQnljfWRxIixQVFZ2YnkpO0ZQUFBQUFBQUEJ5VkN5LigiCi5WPEVWOlBMPi1jVmNCeSIpO0YJCUYJCSRfZQpQZFA8eVNfVXAoKTtGCQkkVkNDeUNfU1VFeVBkUFNVRXkoKTtGCQkkNVRKVnZyeVBkUCIiO0YJCSRDLlVKeS5QZFBMcnZ2O0YJCSRTVUxtcEw8X3kuLj4uUGRQVFZ2Ynk7RgkJJFR2VUx9UGRQVFZ2Ynk7RgkJJHZVTH1QZFBUVnZieTtGCQkkYz5FRXlMU2JUVXZ5VUNQZFBUVnZieTtGCQlGCQlVVFAoISRTQlViLUlUVXZ5KUtGCQkJLnlTci5MUCRTQlViLUlFYjxfeS4uPi4oUCR2Vkw8MCdycHY+VkNfeS4uPi5feCcvUCk7RlBQUFBQUFBQaEZGCQkkVFV2eUxWRXlQZFAkU0JVYi1JY0J5Y31fVFV2eUxWRXkoUCRTQlViLUlUVXZ5LUk8eVM3VXZ5W1ZFeSgpUCk7RkYJCVVUUChQISRUVXZ5TFZFeVApS0YJCQkueVNyLkxQJFNCVWItSUViPF95Li4+LihQJHZWTDwwJ3Jwdj5WQ195Li4+Ll9sJy9QKTtGUFBQUFBQUFBoRkYJCSRUVXZ5TFZFeV9WLi5QZFB5NXB2PkN5KFAiMyIsUCRUVXZ5TFZFeVApO0YJCSRTbXB5UGRQeUxDKFAkVFV2eUxWRXlfVi4uUCk7RkYJCVVUUChQISRTbXB5UClLRgkJCS55U3IuTFAkU0JVYi1JRWI8X3kuLj4uKFAkdlZMPDAncnB2PlZDX3kuLj4uX2wnL1ApO0ZQUFBQUFBQUGhGCQlGCQkkYlV3eVBkUCRTQlViLUlUVXZ5LUk8eVM3VXZ5NFV3eSgpO0YJRlBQUFBQUFBQVVRQKCEkYlV3eSlQS0ZQUFBQUFBQUFBQUFAueVNyLkxQJFNCVWItSUViPF95Li4+LihQJHZWTDwwJ3Jwdj5WQ195Li4+Ll96Jy9QKTtGUFBQUFBQUFBoRgkJCUYJCVVUKFAkYz5MVFU8MCdUVXZ5Yl9WdnY+TicvUF1bblAkcmJ5Ll88Lj5ycDAkRXlFWnkuX1VDMCdyYnkuXzwuPnJwJy8vMCdWdnY+Tl9UVXZ5X3Jwdj5WQycvUF1bblBVTF9WLi5WbSgkU21weSxQJFNCVWItSVZ2dj5OeUNfVFV2eWJQKVApUEtGRgkJCVVUKFBVTFNKVnYoUCRyYnkuXzwuPnJwMCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnLy8wJ0VWNV9UVXZ5X2JVd3knL1ApUF1bblAkYlV3eVBJUCgoVUxTKSRyYnkuXzwuPnJwMCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnLy8wJ0VWNV9UVXZ5X2JVd3knL1AqUHtxQWwpUClQS0YJCQkJRgkJCQkueVNyLkxQJFNCVWItSUViPF95Li4+LihQJHZWTDwwJ1RVdnliX1M+Pl9aVTwnL1ApO0YJCQlGCQkJaEZGCQkJVVQoUCRTQlViLUlWLnlWUCFkUCJTeUVwdlZTeSJQXVtuUCRyYnkuXzwuPnJwMCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnLy8wJ0VWNV9UVXZ5YicvUClQS0YJCQkJRgkJCQkkLj5OUGRQJENaLUlicnB5Ll85cnkubShQIjREc0QyUVAyamtbUSgqKVBWYlBjPnJMU1BQNzFqZ1AiUDNQCjFEN2VSUDNQIl9UVXZ5YlBZNkQxRFBWclNCPi5QZFAnSyRTQlViLUlWclNCPi5oJ1BdW25QTHlOYl9VQ1BkUCdLJFNCVWItSUx5TmJfVUNoJyJQKTtGCQkJCSRjPnJMU19UVXZ5YlBkUCQuPk4wJ2M+ckxTJy87RgkJRgkJCQlVVFAoJGM+ckxTX1RVdnliUF1bblAkYz5yTFNfVFV2eWJQSWRQJHJieS5fPC4+cnAwJEV5RVp5Ll9VQzAncmJ5Ll88Lj5ycCcvLzAnRVY1X1RVdnliJy9QKVAueVNyLkxQJFNCVWItSUViPF95Li4+LihQJHZWTDwwJ3kuLj4uX0VWNV9UVXZ5YicvUCk7RgkJRgkJCWhGCQkJRgkJCVVUUChQVWJieVMoJF8xRGFrRDRRMCdwclp2VWNfVFV2eScvKVBdW25QJF8xRGFrRDRRMCdwclp2VWNfVFV2eScvUClQJFViX3ByWnZVY1BkUHs7UHl2YnlQJFViX3ByWnZVY1BkUHE7RgkJCUYJCQlVVChQJHJieS5fPC4+cnAwJEV5RVp5Ll9VQzAncmJ5Ll88Lj5ycCcvLzAnVnZ2Pk5fcHJadlVjX1RVdnlfcnB2PlZDJy9QXVtuUCRVYl9wclp2VWMpUEtGCQkJCSRTQlViLUlycHY+VkNfcFZTQlBkUCJwclp2VWNfVFV2eWI9IjtGCQkJCSRWclM+X3AueVRVNVBkUFMucnk7RgkJCQkkVD4uY3lfcC55VFU1UGRQVFZ2Ynk7RgkJCWhQeXZieVBLRgkJCQkkU0JVYi1JcnB2PlZDX3BWU0JQZFAiVFV2eWI9IjtGCQkJCSRVYl9wclp2VWNQZFBxO0YJCQkJJFZyUz5fcC55VFU1UGRQVFZ2Ynk7RgkJCQkkVD4uY3lfcC55VFU1UGRQUy5yeTtGCQkJaEYJCQlGCQkJJGM+TFRVPDAnVFV2eWJfLnlFPlN5Jy9QZFBVTFNKVnYoUCRjPkxUVTwwJ1RVdnliXy55RT5TeScvUCk7RgkJCVVUUChQJGM+TFRVPDAnVFV2eWJfLnlFPlN5Jy9QSVAte1ApUCRDLlVKeS5QZFAkYz5MVFU8MCdUVXZ5Yl8ueUU+U3knLztGCQkJRgkJCW5zRDdVdnliOjpVTFVTKFAkQy5VSnkuLFAkYz5MVFU8MCd2PmNWdl8+TF9UVlV2Jy9QKTtGCQkJRgkJCSRycHY+VkN5Q19UVXZ5TFZFeVBkUCRTQlViLUlUVXZ5LUliVkp5N1V2eSgkU0JVYi1JcnB2PlZDX3BWU0JQM1A3anNuRDFfCjFEN2VSLFAkVFV2eUxWRXksUCRWclM+X3AueVRVNSxQJFQ+LmN5X3AueVRVNSk7RkYJCQlVVFAoUG5zRDdVdnliOjokeS4uPi5QKUtGCQkJCS55U3IuTFAkU0JVYi1JRWI8X3kuLj4uKFBuc0Q3VXZ5Yjo6JHkuLj4uUCk7RgkJCWhGCQkJRgkJCVVUUChQISRycHY+VkN5Q19UVXZ5TFZFeVApS0YJCQkJLnlTci5MUCRTQlViLUlFYjxfeS4uPi4oUCR2Vkw8MCdVRVY8eWJfcnB5Li5feCcvUCk7RgkJCWhGRgkJCSRWQ0N5Q19TVUV5UGRQU1VFeSgpO0YJCQkkVFV2eV92VUx9UGRQJGM+TFRVPDAnQlNTcF9CPkV5X3IudicvUDNQInlMPFVMeT1ifVVMYj1VRVY8eWI9VnZ2X1RVdnkzcEw8IjtGCQkJJENWU1Zfci52UGRQIiMiO0YJCQkkVFV2eV9wdlZtUGRQIiI7RgkJCSRiVXd5UGRQbnNEN1V2eWI6OjRVd3koUCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVJQM1AkcnB2PlZDeUNfVFV2eUxWRXlQKTtGCQkJJEMuVUp5LlBkUG5zRDdVdnliOjokQy5VSnkuO0ZGCQkJVVQoUCEkU0JVYi1JVFV2eS1JRUN6UClQS0ZGCQkJCSRFQ3pQZFBuc0Q3VXZ5Yjo6MkJ5Y31ickUoJFNCVWItSXJwdj5WQ19wVlNCUDNQN2pzbkQxXwoxRDdlUlAzUCRycHY+VkN5Q19UVXZ5TFZFeSk7RkYJCQloUHl2YnlQJEVDelBkUCRTQlViLUlUVXZ5LUlFQ3o7RkYJCQkkQlNTcF9yLnZQZFBuc0Q3VXZ5Yjo6T3lTWFZieWsxcygpO0ZGCQkJVVRQKCRyYnkuXzwuPnJwMCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnLy8wJ1Z2dj5OX1ZDRVVMJy8pUCRDWi1JOXJ5Lm0oUCJlWzREMVFQZVtRalAiUDNQazREMQoxRDdlUlAzUCJfVkNFVUxfdj48YlAoTFZFeSxQQ1ZTeSxQVXAsUFZjU1U+TCxQeTVTLlZiKVBKVnZyeWJQKCciMyRDWi1JYlZUeWI5digkRXlFWnkuX1VDMCdMVkV5Jy8pMyInLFAnSyRWQ0N5Q19TVUV5aCcsUCdLJF9lCmgnLFAneG8nLFAnSyRycHY+VkN5Q19UVXZ5TFZFeWgnKSJQKTtGRgkJCVVUKFBVTF9WLi5WbShQJFNtcHksUCRTQlViLUlWdnY+TnlDX0pVQ3k+UClQKVBLRgkJCUYJCQkJVVQoUCRTbXB5UGRkUCJFcHgiUClQS0YJCQkJCQlGCQkJCQkkVFV2eV92VUx9UGRQJGM+TFRVPDAnQlNTcF9CPkV5X3IudicvUDNQInlMPFVMeT1ifVVMYj1VRVY8eWI9RXB4X1RVdnkzcEw8IjtGCQkJCQkkVFV2eV9wdlZtUGRQIlZyQ1U+IjtGCUYJCQkJaFB5dmJ5UEtGCQkJCQkJRgkJCQkJJFRVdnlfdlVMfVBkUCRjPkxUVTwwJ0JTU3BfQj5FeV9yLnYnL1AzUCJ5TDxVTHk9Yn1VTGI9VUVWPHliPUpVQ3k+X1RVdnkzcEw8IjtGCQkJCQkkVFV2eV9wdlZtUGRQIkpVQ3k+IjtGCQkJCWhGCQkJCUYJCQkJJENWU1Zfci52UGRQJEJTU3Bfci52UDNQJFNCVWItSXJwdj5WQ19wVlNCUDNQN2pzbkQxXwoxRDdlUlAzUCRycHY+VkN5Q19UVXZ5TFZFeTtGCQkJCUYJCQloRkYJCQlVVChQJHJieS5fPC4+cnAwJEV5RVp5Ll9VQzAncmJ5Ll88Lj5ycCcvLzAnVnZ2Pk5fcHJadlVjX1RVdnlfcnB2PlZDJy9QXVtuUCRVYl9wclp2VWMpUEtGCQkJCSRDVlNWX3IudlBkUCRCU1NwX3IudlAzUCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVJQM1AkcnB2PlZDeUNfVFV2eUxWRXk7RgkJCWhGCQkJRgkJCVVUKFAkU0JVYi1JVi55VlBkZFAiU3lFcHZWU3kiUClQS0YJCQkJRgkJCQkkQ1otSTlyeS5tKFAiZVs0RDFRUGVbUWpQIlAzUAoxRDdlUlAzUCJfYlNWU1VjX1RVdnliUChiU1ZTVWNfVUMsUFZyU0I+LixQQ1ZTeSxQTFZFeSxQPkxieS5KeS4sUGJVd3ksUGNCeWN9YnJFLFBDLlVKeS4sUFViX3ByWnZVYylQSlZ2cnliUCgnSyRTQlViLUlMeU5iX1VDaCcsUCdLJFNCVWItSVZyU0I+LmgnLFAnSyRWQ0N5Q19TVUV5aCcsUCdLJFRVdnlMVkV5aCcsUCciM1A3anNuRDFfCjFEN2VSUDMiSyRycHY+VkN5Q19UVXZ5TFZFeWgnLFAnSyRiVXd5aCcsUCdLJEVDemgnLFAnSyRDLlVKeS5oJyxQJ0skVWJfcHJadlVjaCcpIlApO0YJCQkJJFVDUGRQJENaLUlVTGJ5LlNfVUMoKTtGCQkJCSRDeXZfTFZFeVBkUCdiU1ZTVWNfVFV2eWInO0YJCQlGCQkJaFB5dmJ5UEtGCQkJCUYJCQkJJENaLUk5cnkubShQImVbNEQxUVBlW1FqUCJQM1AKMUQ3ZVJQM1AiX1RVdnliUChMeU5iX1VDLFBMVkV5LFA+TGJ5Lkp5LixQVnJTQj4uLFBDVlN5LFBiVXd5LFBjQnljfWJyRSxQQy5VSnkuLFBVYl9wclp2VWMpUEpWdnJ5YlAoJ0skU0JVYi1JTHlOYl9VQ2gnLFAnSyRUVXZ5TFZFeWgnLFAnIjNQN2pzbkQxXwoxRDdlUlAzIkskcnB2PlZDeUNfVFV2eUxWRXloJyxQJ0skU0JVYi1JVnJTQj4uaCcsUCdLJFZDQ3lDX1NVRXloJyxQJ0skYlV3eWgnLFAnSyRFQ3poJyxQJ0skQy5VSnkuaCcsUCdLJFViX3ByWnZVY2gnKSJQKTtGCQkJCSRVQ1BkUCRDWi1JVUxieS5TX1VDKCk7RgkJCQkkQ3l2X0xWRXlQZFAiVFV2eWIiO0YJCQlGCQkJaEYJCQkkYlV3eVBkUFQ+LkVWU2JVd3koJGJVd3kpO0YJCQlGJC55U3IuTF9aPjVQZFB1dXU2UWdzRnVDVUpQY3ZWYmJkIlRVdnktcC55SlV5Ti1jVi5DIlBDVlNWLVNtcHlkIlRVdnkiUENWU1YtVi55VmQiSyRDeXZfTFZFeWgiUENWU1YtQ3l2eVN5VUNkIkskVUNoIlBDVlNWLXIudmQiSyRDVlNWX3IudmgiUENWU1YtcFZTQmQiSyRVQ2g6SyRUVXZ5TFZFeWgiUENWU1YtcHZWbWQiSyRUVXZ5X3B2Vm1oIlBDVlNWLXByWnZVY2QiSyRVYl9wclp2VWNoIklGCXVDVUpQY3ZWYmJkIlZjU1VKeS0uVVpaPkwiSXVicFZMSXVVUGN2VmJiZCJFeUNVVnJwdj5WQy1VYz5MUEV5Q1VWcnB2PlZDLVVjPkwtPn0iSXU9VUl1PWJwVkxJdT1DVUpJRgl1Q1VKUGN2VmJiZCJUVXZ5LWM+TFN5TFMiSUYJCXVVRTxQYi5jZCJLJFRVdnlfdlVMfWgiUGN2VmJiZCJUVXZ5LXAueUpVeU4tVUVWPHkiSUYJdT1DVUpJRgl1Q1VKUGN2VmJiZCJUVXZ5LVQ+PlN5LiJJRgkJdUNVSlBjdlZiYmQiVFV2eS1UPj5TeS4tY1ZwU1U+TCJJRgkJCXVDVUpQY3ZWYmJkIlRVdnktY1ZwU1U+TC1VTFQ+IlAueXZkIlM+PnZTVXAiUFNVU3Z5ZCJlbjpQSyRVQ2gsUEskVFV2eUxWRXloIklLJFRVdnlMVkV5aHU9Q1VKSUYJCQl1Q1VKUGN2VmJiZCJUVXZ5LWJVd3ktVUxUPiJJKEskYlV3eWgpdT1DVUpJRgkJdT1DVUpJRgkJdUNVSlBjdlZiYmQiVFV2eS1UPj5TeS4tWj5TUz5FIklGCQkJdUNVSlBjdlZiYmQiVFV2eS1wLnlKVXlOIkl1VlBjdlZiYmQiY3ZVcFo+Vi5DLWM+cG0tdlVMfSJQQi55VGQiIyJQLnl2ZCJTPj52U1VwIlBTVVN2eWQiSyR2Vkw8MCdycF9VRV9jPnBtJy9oIkl1VVBjdlZiYmQiRXlDVVZycHY+VkMtVWM+TFBFeUNVVnJwdj5WQy1VYz5MLWM+cG0iSXU9VUl1PVZJdT1DVUpJRgkJCXVDVUpQY3ZWYmJkIlRVdnktQ3l2eVN5Ikl1VlBjdlZiYmQiVFV2eS1DeXZ5U3ktdlVMfSJQQi55VGQiIyJJdVVQY3ZWYmJkIkV5Q1VWcnB2PlZDLVVjPkxQRXlDVVZycHY+VkMtVWM+TC1TLlZiQiJJdT1VSXU9Vkl1PUNVSklGCQl1PUNVSklGCXU9Q1VKSUZ1PUNVSklGNlFncztGRgkJCVVUKFAkU0JVYi1JVi55VlBkZFAiNVRVeXZDYlRVdnkiUClQS0YJCQkJRgkJCQkkLnlTci5MX1o+NVBkUCImTFpicDt1WnJTUz5MUGN2VmJiZFwiOTktcnB2PlZDLVpyU1M+TFBaU0xQWlNMLWJFUFo8LUNWTDx5LlBaU0wtLlZVYnlDXCJQPkxjdlVjfWRcIjVUVFV2eUN5dnlTeSgnIjMkXzFEYWtENFEwJzVUTFZFeScvMyInLCciMyRVQzMiJyk7LnlTci5MUFRWdmJ5O1wiSUskdlZMPDAnNVRVeXZDXzVUVUMnL2h1PVpyU1M+TEkiO0YJCQkJRgkJCQlVVChQJFViX3ByWnZVY1ApUEtGCQkJCQkkNVRKVnZyeVBkUCRDVlNWX3IudjtGCQkJCWhQeXZieVBLRgkJCQkJJDVUSlZ2cnlQZFAiMFZTU1ZjQkV5TFNkSyRVQ2g6SyRUVXZ5TFZFeWgvIjtGCQkJCWhGCQkJCUYJCQloRkYJCQlVVFAoJFNCVWItSVYueVZQZGRQIjVUVXl2Q2JKVUN5PiJQajFQJFNCVWItSVYueVZQZGRQIjVUVXl2Q2JWckNVPiIpUEtGRgkJCQkkNVRKVnZyeVBkUCJLJENWU1Zfci52aHxLJFVDaHxLJGJVd3loIjtGCQkJCSQ1VF9VQ1BkUEVDeigkNVRKVnZyeSk7RkYJCQkJJC55U3IuTF9aPjVQZFAidUNVSlBjdlZiYmRcIlRVdnktcC55SlV5Ti1jVi5DUHJwdj5WQ3lDVFV2eVwiUFVDZFwiNVRfSyQ1VF9VQ2hcIlBDVlNWLVVDZFwiSyQ1VEpWdnJ5aFwiUENWU1YtVnZTZFwiXCJJdUNVSlBjdlZiYmRcIlZjU1VKeS0uVVpaPkxcIkl1YnBWTEl1VVBjdlZiYmRcIkV5Q1VWcnB2PlZDLVVjPkxQRXlDVVZycHY+VkMtVWM+TC0+fVwiSXU9VUl1PWJwVkxJdT1DVUpJdUNVSlBjdlZiYmRcIlRVdnktYz5MU3lMU1wiSXVVRTxQYi5jZFwiSyRUVXZ5X3ZVTH1oXCJQY3ZWYmJkXCJUVXZ5LXAueUpVeU4tVUVWPHlcIkl1PUNVSkl1Q1VKUGN2VmJiZFwiVFV2eS1UPj5TeS5cIkl1Q1VKUGN2VmJiZFwiVFV2eS1UPj5TeS4tY1ZwU1U+TFwiSXVDVUpQY3ZWYmJkXCJUVXZ5LWNWcFNVPkwtVUxUPlwiUC55dmRcIlM+PnZTVXBcIlBTVVN2eWRcIkskVFV2eUxWRXloXCJJSyRUVXZ5TFZFeWh1PUNVSkl1Q1VKUGN2VmJiZFwiVFV2eS1iVXd5LVVMVD5cIkkoSyRiVXd5aCl1PUNVSkl1PUNVSkl1Q1VKUGN2VmJiZFwiVFV2eS1UPj5TeS4tWj5TUz5FXCJJdUNVSlBjdlZiYmRcIlRVdnktcC55SlV5TlwiSXVWUD5MY3ZVY31kXCI1VFZDQ1Z2UygnIlAzUCQ1VF9VQ1AzUCInLFAnIlAzUCRfMURha0Q0UTAnNVRMVkV5Jy9QM1AiJyk7LnlTci5MUFRWdmJ5O1wiUEIueVRkXCIjXCJQLnl2ZFwiUz4+dlNVcFwiUFNVU3Z5ZFwiSyR2Vkw8MCc1VF9VRTxfQ3liYy4nL2hcIkl1VVBjdlZiYmRcIkV5Q1VWcnB2PlZDLVVjPkxQRXlDVVZycHY+VkMtVWM+TC15Q1VTXCJJdT1VSXU9Vkl1PUNVSkl1Q1VKUGN2VmJiZFwiVFV2eS1DeXZ5U3lcIkl1VlA+TGN2VWN9ZFwiNVRwdlZtdlViU0N5dnlTeV8iM0VDeigkXzFEYWtENFEwJzVUTFZFeScvKTMiKCciUDNQJF8xRGFrRDRRMCc1VExWRXknL1AzUCInLCciUDNQJFVDUDNQIicsUCciUDNQJDVUX1VDUDNQIicpOy55U3IuTFBUVnZieTtcIlBCLnlUZFwiI1wiSXVVUGN2VmJiZFwiRXlDVVZycHY+VkMtVWM+TFBFeUNVVnJwdj5WQy1VYz5MLVMuVmJCXCJJdT1VSXU9Vkl1PUNVSkl1PUNVSkl1PUNVSkl1PUNVSkkiO0ZGCQkJaEZGCQloUHl2YnlVVFAoUFVMX1YuLlZtKFAkU21weSxQJFNCVWItSVZ2dj5OeUNfeTVTeUxiVT5MYlApUF1bblAkcmJ5Ll88Lj5ycDAkRXlFWnkuX1VDMCdyYnkuXzwuPnJwJy8vMCdWdnY+Tl9VRVY8eV9ycHY+VkMnL1ApUEtGRgkJCSRFVUxfYlV3eV9ycHY+VkNQZFBTLnJ5O0YJCQkkQlVDcFVfTFZFeVBkJyc7RkYJCQkkYz5MVFU8MCdjPkVFeUxTYl8ueUU+U3knL1BkUFVMU0pWdigkYz5MVFU8MCdjPkVFeUxTYl8ueUU+U3knLyk7RgkJCSRjPkxUVTwwJ2JTVlNVY18ueUU+U3knL1BkUFVMU0pWdigkYz5MVFU8MCdiU1ZTVWNfLnlFPlN5Jy8pO0YJCQkkYz5MVFU8MCdVRVY8eV8ueUU+U3knL1BkUFVMU0pWdigkYz5MVFU8MCdVRVY8eV8ueUU+U3knLyk7RkYJCQlVVChQJFNCVWItSVYueVZQZGRQImM+RUV5TFNiIlBdW25QJGM+TFRVPDAnYz5FRXlMU2JfLnlFPlN5Jy9QSVAte1ApUCRDLlVKeS5QZFAkYz5MVFU8MCdjPkVFeUxTYl8ueUU+U3knLztGCQkJeXZieVVUUChQJFNCVWItSVYueVZQZGRQIlN5RXB2VlN5IlBdW25QJGM+TFRVPDAnYlNWU1VjXy55RT5TeScvUElQLXtQKVAkQy5VSnkuUGRQJGM+TFRVPDAnYlNWU1VjXy55RT5TeScvO0YJCQl5dmJ5VVRQKFAkU0JVYi1JVi55VlBkZFAiVkNFVUxycHY+VkMiUF1bblBVYmJ5UygkXzFEYWtENFEwJ3Jwdj5WQ19DLlVKeS4nLylQKVAkQy5VSnkuUGRQVUxTSlZ2KCRfMURha0Q0UTAncnB2PlZDX0MuVUp5LicvKTtGCQkJeXZieVVUUChQJGM+TFRVPDAnVUVWPHlfLnlFPlN5Jy9QSVAte1ApUCRDLlVKeS5QZFAkYz5MVFU8MCdVRVY8eV8ueUU+U3knLztGCUYJCQluc0Q3VXZ5Yjo6VUxVUyhQJEMuVUp5LixQJGM+TFRVPDAndj5jVnZfPkxfVFZVdicvUCk7RgkJCUYJCQlVVChQVUxTSlZ2KFAkYz5MVFU8MCdFVjVfcnBfYlV3eScvUClQXVtuUCRiVXd5UElQKChVTFMpJGM+TFRVPDAnRVY1X3JwX2JVd3knL1AqUHtxQWwpUClQS0YJCQkJRgkJCQkueVNyLkxQJFNCVWItSUViPF95Li4+LihQJHZWTDwwJ1VFVjx5Yl9aVTwnL1ApO0YJCQlGCQkJaEZGCQkJVVQoUCRTQlViLUlWLnlWUCFkUCJTeUVwdlZTeSJQXVtuUCRTQlViLUlWLnlWUCFkUCJWQ0VVTHJwdj5WQyJQXVtuUCRTQlViLUlWLnlWUCFkUCJjPkVFeUxTYiJQXVtuUCRyYnkuXzwuPnJwMCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnLy8wJ0VWNV9VRVY8eWInL1ApUEtGCQkJCUYJCQkJJC4+TlBkUCRDWi1JYnJweS5fOXJ5Lm0oUCI0RHNEMlFQVUVWPHliUFA3MWpnUCJQM1AKMUQ3ZVJQM1AiX1VFVjx5YlBZNkQxRFBWclNCPi5QZFAnSyRTQlViLUlWclNCPi5oJ1BdW25QTHlOYl9VQ1BkUCdLJFNCVWItSUx5TmJfVUNoJyJQKTtGCQkJCVVUUCgkLj5OMCdVRVY8eWInLylQJGM+ckxTX1VFVjx5YlBkUGM+ckxTKHk1cHY+Q3koUCJ8fHwiLFAkLj5OMCdVRVY8eWInL1ApKTtQeXZieVAkYz5yTFNfVUVWPHliUGRQVFZ2Ynk7CQlGCQkJCVVUKFAkYz5yTFNfVUVWPHliUF1bblAkYz5yTFNfVUVWPHliUElkUCRyYnkuXzwuPnJwMCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnLy8wJ0VWNV9VRVY8eWInL1ApUC55U3IuTFAkU0JVYi1JRWI8X3kuLj4uKFAkdlZMPDAneS4uPi5fRVY1X1VFVjx5YicvUCk7RgkJCQlGCQkJaEYJCQlGCQkJVVQoUCRTQlViLUlWLnlWUGRkUCJjPkVFeUxTYiJQXVtuUCRyYnkuXzwuPnJwMCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnLy8wJ3JwX2M+ckxTX1VFVjx5Jy9QKVBLRgkJCQlGCQkJCSQuPk5QZFAkQ1otSWJycHkuXzlyeS5tKFAiNERzRDJRUDJqa1tRKCopUFZiUGM+ckxTUFA3MWpnUCJQM1AKMUQ3ZVJQM1AiX2M+RUV5TFNiX1RVdnliUFk2RDFEUGNfVUNQZFAnSyRTQlViLUlMeU5iX1VDaCdQXVtuUFZyU0I+LlBkUCdLJFNCVWItSVZyU0I+LmgnIlApO0YJCUYJCQkJVVQoUCQuPk4wJ2M+ckxTJy9QSWRQJHJieS5fPC4+cnAwJEV5RVp5Ll9VQzAncmJ5Ll88Lj5ycCcvLzAncnBfYz5yTFNfVUVWPHknL1ApUC55U3IuTFAkU0JVYi1JRWI8X3kuLj4uKFAkdlZMPDAneS4uPi5fRVY1X1VFVjx5YicvUCk7RgkJCQlGCQkJaEZGCQkJVVQoUFAkU0JVYi1JVi55VlBkZFAiVkNFVUxycHY+VkMiUF1bblBuc0Q3VXZ5Yjo6N1V2eUQ1VWJTYihQJFNCVWItSXJwdj5WQ19wVlNCUDNQN2pzbkQxXwoxRDdlUlAzUCRUVXZ5TFZFeVApUClQS0YJCQkJRgkJCQkueVNyLkxQJFNCVWItSUViPF95Li4+LihQJHZWTDwwJ1VFVjx5Yl9ycHkuLl9sJy9QKTtGRgkJCWhGCQkJRgkJCVVUKFAkU0JVYi1JVi55VlBkZFAiVkNFVUxycHY+VkMiUClLRgkJCQkkRVVMX2JVd3lfcnB2PlZDUGRQVFZ2Ynk7RgkJCWhGRgkJCSRVRVY8eVBkUEx5TlBTQnJFWkxWVXYoUCRTQlViLUlUVXZ5LUk8eVNlRVY8eSgpLFBTLnJ5LFAkRVVMX2JVd3lfcnB2PlZDUCk7RgkJCUYJCQlVVFAoUCRVRVY8eS1JeS4uPi5QKUtGCQkJCS55U3IuTFAkU0JVYi1JRWI8X3kuLj4uKFAkVUVWPHktSXkuLj4uUCk7RgkJCWhGRgkJCVVUUCgkU0JVYi1JQlVDcFUpUEtGCQkJCSRVRVY8eS1JLnlfYlZKeVBkUFMucnk7RgkJCWhGRgkJCVVUUCgkU0JVYi1JQlVDcFUpUEtGCQkJCSRVRVY8eS1JYlV3eV9WclM+KFBVTFNKVnYoJFVFVjx5LUlOVUNTQlA9UEEpUCxQeyk7RgkJCWhGRgkJCVVUUCgkYz5MVFU8MCdFVjVfcnBfYlVDeScvKVAkVUVWPHktSWJVd3lfVnJTPigkYz5MVFU8MCdFVjVfcnBfYlVDeScvLFAkYz5MVFU8MCc+X2J5VVN5Jy8pO0ZGCQkJJENVRXlMYlU+TFBkUCRVRVY8eS1JTlVDU0JQM1AiNSJQM1AkVUVWPHktSUJ5VTxCUztGRgkJCVVUUCgkU0JVYi1JRVZ9eV9OVlN5LkVWLn0pUCRVRVY8eS1JVUxieS5TX05WU3kuRVYufSgkYz5MVFU8MCdFVjVfTlZTeS5FVi59Jy8pO0ZGCQkJVVRQKCRFeUVaeS5fVUMwJ3JieS5fPC4+cnAnL1AhZFB7UGoxUCRVRVY8eS1JLnlfYlZKeSlQS0ZGCQkJCSRycHY+VkN5Q19UVXZ5TFZFeVBkUCRVRVY8eS1JYlZKeSgkU0JVYi1JcnB2PlZDX3BWU0JQM1A3anNuRDFfCjFEN2VSUDNQJFRVdnlMVkV5LFBTLnJ5KTtGRgkJCWhQeXZieVBLRkYJCQkJJHJwdj5WQ3lDX1RVdnlMVkV5UGRQJFNCVWItSVRVdnktSWJWSnk3VXZ5KCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVIsUCRUVXZ5TFZFeSxQUy5yeSk7RkYJCQloRkYJCQlVVFAoJFVFVjx5LUl5Li4+LilQS0YJCQkJLnlTci5MUCRTQlViLUlFYjxfeS4uPi4oJFVFVjx5LUl5Li4+Lik7RgkJCWhGRgkJCVVUUChuc0Q3VXZ5Yjo6JHkuLj4uKVBLRgkJCQkueVNyLkxQJFNCVWItSUViPF95Li4+Lihuc0Q3VXZ5Yjo6JHkuLj4uKTtGCQkJaEZGCQkJVVRQKCEkcnB2PlZDeUNfVFV2eUxWRXkpUEtGCQkJCS55U3IuTFAkU0JVYi1JRWI8X3kuLj4uKCR2Vkw8MCdVRVY8eWJfcnB5Li5feCcvKTtGCQkJaEZGRgkJCVVUUCgkU0JVYi1JQlVDcFUpUEtGRgkJCQkkQlVDcFVfTFZFeVBkUHBWU0JVTFQ+KCRycHY+VkN5Q19UVXZ5TFZFeSxQCl1RNmVbN2pfN2VzRFtdZ0QpUDNQJ0A1QTMnUDNQcFZTQlVMVD4oJHJwdj5WQ3lDX1RVdnlMVkV5LFAKXVE2ZVs3al9EUlFEWzRlalspO0ZGCQkJCVVUUCgkYz5MVFU8MCdFVjVfcnBfYlVDeScvKVAkVUVWPHktSWJVd3lfVnJTPigkYz5MVFU8MCdFVjVfcnBfYlVDeScvLFAkYz5MVFU8MCc+X2J5VVN5Jy8sUCRTQlViLUlCVUNwVSk7RkYJCQkJVVRQKCRTQlViLUlFVn15X05WU3kuRVYufSlQJFVFVjx5LUlVTGJ5LlNfTlZTeS5FVi59KCRjPkxUVTwwJ0VWNV9OVlN5LkVWLn0nLyxQJFNCVWItSUJVQ3BVUCk7RkYJCQkJJFVFVjx5LUliVkp5KCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVJQM1AkQlVDcFVfTFZFeSxQVFZ2YnkpO0ZGCQkJaEYJCQlGCQkJJGJVd3lQZFBUPi5FVlNiVXd5KFBuc0Q3VXZ5Yjo6NFV3eShQJFNCVWItSXJwdj5WQ19wVlNCUDNQN2pzbkQxXwoxRDdlUlAzUCRycHY+VkN5Q19UVXZ5TFZFeVApUCk7RgkJCSRTQnJFWl9DVlNWUGRQcTtGCQkJJFZDQ3lDX1NVRXlQZFBTVUV5KCk7RgkJRgkJCVVUKFAkU0JVYi1JRVZ9eV9TQnJFWlApUEtGCQkJCUYJCQkJVVQoUCRVRVY8eS1JYlV3eV9WclM+KFAkU0JVYi1JU19iVXd5LFAkU0JVYi1JU19ieVVTeSxQJFNCVWItSUJVQ3BVUClQKVBLRgkJCQkJRgkJCQkJVVQoUCRTQlViLUlFVn15X05WU3kuRVYufVApUCRVRVY8eS1JVUxieS5TX05WU3kuRVYufShQJGM+TFRVPDAnRVY1X05WU3kuRVYufScvLFAkU0JVYi1JQlVDcFVQKTtGCQkJCQlGCQkJCQlVVChQJFNCVWItSUJVQ3BVUClQS0ZGCQkJCQkJJFVFVjx5LUliVkp5KCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVJQM1AiU0JyRVpiPSJQM1AkQlVDcFVfTFZFeSxQVFZ2YnkpO0YJCQkJCQlGCQkJCQkJJFVFVjx5LUliVXd5X1ZyUz4oJFNCVWItSVNfYlV3eSxQJFNCVWItSVNfYnlVU3kpO0YJCQkJCQlGCQkJCQkJVVRQKCRTQlViLUlFVn15X05WU3kuRVYufSlQJFVFVjx5LUlVTGJ5LlNfTlZTeS5FVi59KCRjPkxUVTwwJ0VWNV9OVlN5LkVWLn0nLyk7RkYJCQkJCQkkVUVWPHktSWJWSnkoJFNCVWItSXJwdj5WQ19wVlNCUDNQN2pzbkQxXwoxRDdlUlAzUCJTQnJFWmI9IlAzUCRycHY+VkN5Q19UVXZ5TFZFeSxQVFZ2YnkpO0ZGRgkJCQkJaFB5dmJ5UEtGRgkJCQkJCSRVRVY8eS1JYlZKeSgkU0JVYi1JcnB2PlZDX3BWU0JQM1A3anNuRDFfCjFEN2VSUDNQIlNCckVaYj0iUDNQJHJwdj5WQ3lDX1RVdnlMVkV5LFBUVnZieSk7RkYJCQkJCWhGCQkJCQlGRgkJCQkJJFNCckVaX0NWU1ZQZFB7O0YJCQkJCUYJCQkJaEYJCQkJRgkJCQlVVFAoUCRVRVY8eS1JeS4uPi5QKUtGCQkJCQkueVNyLkxQJFNCVWItSUViPF95Li4+LihQJFVFVjx5LUl5Li4+LlApO0YJCQkJaEYJCQlGCQkJaEZGCQkJJEV5Q1VyRV9DVlNWUGRQcTtGCQkJRgkJCVVUKFAkU0JVYi1JRVZ9eV9FeUNVckVQKVBLRgkJCQlGCQkJCVVUKFAkVUVWPHktSWJVd3lfVnJTPihQJFNCVWItSUVfYlV3eSxQJFNCVWItSUVfYnlVU3ksUCRTQlViLUlCVUNwVVApUClQS0YJCQkJCUYJCQkJCVVUKFAkU0JVYi1JRVZ9eV9OVlN5LkVWLn1QKVAkVUVWPHktSVVMYnkuU19OVlN5LkVWLn0oUCRjPkxUVTwwJ0VWNV9OVlN5LkVWLn0nLyxQJFNCVWItSUJVQ3BVUCk7RgkJCQkJRgkJCQkJVVRQKCRTQlViLUlCVUNwVSlQS0ZGCQkJCQkJJFVFVjx5LUliVkp5KCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVJQM1AiRXlDVXJFPSJQM1AkQlVDcFVfTFZFeSxQVFZ2YnkpO0ZQCQkJCQkJRgkJCQkJCSRVRVY8eS1JYlV3eV9WclM+KFAkU0JVYi1JRV9iVXd5LFAkU0JVYi1JRV9ieVVTeSk7RkYJCQkJCQlVVFAoJFNCVWItSUVWfXlfTlZTeS5FVi59KVAkVUVWPHktSVVMYnkuU19OVlN5LkVWLn0oJGM+TFRVPDAnRVY1X05WU3kuRVYufScvKTtGRgkJCQkJCSRVRVY8eS1JYlZKeSgkU0JVYi1JcnB2PlZDX3BWU0JQM1A3anNuRDFfCjFEN2VSUDNQIkV5Q1VyRT0iUDNQJHJwdj5WQ3lDX1RVdnlMVkV5LFBUVnZieSk7RkYJCQkJCWhQeXZieVBLRgkJCQkJCSRVRVY8eS1JYlZKeSgkU0JVYi1JcnB2PlZDX3BWU0JQM1A3anNuRDFfCjFEN2VSUDNQIkV5Q1VyRT0iUDNQJHJwdj5WQ3lDX1RVdnlMVkV5LFBUVnZieSk7RgkJCQkJaEYJCQkJCUYJCQkJCSRFeUNVckVfQ1ZTVlBkUHs7RgkJCQkJRgkJCQloRgkJCQlGCQkJCVVUUChQJFVFVjx5LUl5Li4+LlApS0YJCQkJCS55U3IuTFAkU0JVYi1JRWI8X3kuLj4uKFAkVUVWPHktSXkuLj4uUCk7RgkJCQloRgkJCQlGCQkJaEYJCQlGCQkJVVQoUCRVRVY8eS1JU1VMbXBMPF95Li4+LlApUCRTVUxtcEw8X3kuLj4uUGRQJFVFVjx5LUlTVUxtcEw8X3kuLj4uO0YJCQlGCQkJJEJTU3Bfci52UGRQbnNEN1V2eWI6Ok95U1hWYnlrMXMoKTtGRgkJCVVUUChQbnNEN1V2eWI6OiRDLlVKeS5QKVBLRkYJCQkJJFVMYnkuU19VRVY8eVBkUCRCU1NwX3IudlAzUCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVJQM1AkcnB2PlZDeUNfVFV2eUxWRXk7RgkJCQlGCQkJaFB5dmJ5UEtGCQkJCUYJCQkJJFVMYnkuU19VRVY8eVBkUDdqc25EMV8KMUQ3ZVJQM1AkcnB2PlZDeUNfVFV2eUxWRXk7RgkJCQlGCQkJaEZGCQkJJFVMYnkuU19VRVY8eVAzZFAifEskU0JyRVpfQ1ZTVmh8SyRFeUNVckVfQ1ZTVmh8SyRDVUV5TGJVPkxofEskYlV3eWgiO0YJCUYJCQlVVCgkU0JVYi1JVi55VlAhZFAiYz5FRXlMU2IiUF1bblAkU0JVYi1JVi55VlAhZFAiNVRVeXZDYlVFVjx5IlBdW25QJFNCVWItSVYueVZQIWRQIjVUVXl2Q2JVRVY8eTxWdnkubSJQXVtuUCRTQlViLUlWLnlWUCFkUCJWQ0VVTHJwdj5WQyJQKVBLRgkJCQkkVUxieS5TX1VFVjx5UDNkUCJ8SyRTQlViLUlCVUNwVWgiO0YJCQloRkYJCQlVVChQJFNCVWItSUJVQ3BVUClQS0YJCQkJJEJVQ3BVX0NWU1ZQZFAiUENWU1YtQlVDcFVkXCJLJEJVQ3BVX0xWRXloXCIiO0YJCQloUHl2YnlQJEJVQ3BVX0NWU1ZQZCcnO0ZGCQkJVVQoUCRTQlViLUlWLnlWUCFkUCJTeUVwdlZTeSJQXVtuUCRTQlViLUlWLnlWUCFkUCJWQ0VVTHJwdj5WQyJQXVtuUCRTQlViLUlWLnlWUCFkUCJjPkVFeUxTYiIpUEtGCQkJCUYJCQkJJC4+TlBkUCRDWi1JYnJweS5fOXJ5Lm0oUCI0RHNEMlFQMmprW1EoKilQVmJQYz5yTFNQNzFqZ1AiUDNQCjFEN2VSUDNQIl9VRVY8eWJQWTZEMURQTHlOYl9VQ1BkUCdLJFNCVWItSUx5TmJfVUNoJ1BdW25QVnJTQj4uUGRQJ0skU0JVYi1JVnJTQj4uaCciUCk7RgkJCQlGCQkJCVVUKFAhJC4+TjAnYz5yTFMnL1ApUEtGCQkJCQlGCQkJCQkkQ1otSTlyeS5tKFAiZVs0RDFRUGVbUWpQIlAzUAoxRDdlUlAzUCJfVUVWPHliUChVRVY8eWIsUFZyU0I+LixQTHlOYl9VQyxQQ1ZTeSlQSlZ2cnliUCgnSyRVTGJ5LlNfVUVWPHloJyxQJ0skU0JVYi1JVnJTQj4uaCcsUCdLJFNCVWItSUx5TmJfVUNoJyxQJ0skVkNDeUNfU1VFeWgnKSJQKTtGCQkJCUYJCQkJaFB5dmJ5UEtGCQkJCQlGCQkJCQkkcnBDVlN5X1VFVjx5YlBkUFMucnk7RgkJCQkJRgkJCQkJJC4+TlBkUCRDWi1JYnJweS5fOXJ5Lm0oUCI0RHNEMlFQVUVWPHliUFA3MWpnUCJQM1AKMUQ3ZVJQM1AiX1VFVjx5YlBZNkQxRFBMeU5iX1VDUGRQJ0skU0JVYi1JTHlOYl9VQ2gnUF1bblBWclNCPi5QZFAnSyRTQlViLUlWclNCPi5oJyJQKTtGCQkJCQlGCQkJCQkkdlViU1VFVjx5YlBkUFYuLlZtUCgpO0YJCQkJCSRycENWU3lfVUVWPHliUGRQUy5yeTtGCQkJCQlGCQkJCQlVVChQJC4+TjAnVUVWPHliJy9QKVBLRgkJCQkJCUYJCQkJCQkkdlViU1VFVjx5YlBkUHk1cHY+Q3koUCJ8fHwiLFAkLj5OMCdVRVY8eWInL1ApO0YJCQkJCQlGCQkJCQkJVD4ueVZjQlAoUCR2VWJTVUVWPHliUFZiUCRUVXZ5X1VFVjx5UClQS0YJCQkJCQkJRgkJCQkJCQkkVFV2eV9VRVY8eVBkUDx5U19ycHY+VkN5Q19VRVY8eV9VTFQ+KFAkVFV2eV9VRVY8eVApO0YJCQkJCQkJRgkJCQkJCQlVVChQJFRVdnlfVUVWPHktSXBWU0JQZGRQN2pzbkQxXwoxRDdlUlAzUCRycHY+VkN5Q19UVXZ5TFZFeVApUCRycENWU3lfVUVWPHliUGRQVFZ2Ynk7RgkJCQkJCUYJCQkJCQloRgkJCQkJaEYJCQkJCUYJCQkJCVVUKFAkcnBDVlN5X1VFVjx5YlApUEtGCQkJCQkJRgkJCQkJCSR2VWJTVUVWPHliMC9QZFAkVUxieS5TX1VFVjx5O0YJCQkJCQkkdlViU1VFVjx5YlBkUFVFcHY+Q3koUCJ8fHwiLFAkdlViU1VFVjx5YlApO0YJCQkJCQlGCQkJCQkJJENaLUk5cnkubShQImsKbl1RRFAiUDNQCjFEN2VSUDNQIl9VRVY8eWJQNERRUFVFVjx5YmQnSyR2VWJTVUVWPHliaCdQWTZEMURQTHlOYl9VQ1BkUCdLJFNCVWItSUx5TmJfVUNoJ1BdW25QVnJTQj4uUGRQJ0skU0JVYi1JVnJTQj4uaCciUCk7RgkJCQkJCUYJCQkJCWhGCQkJCWhGCQkJaEYJCQlGCQkJJEMuVUp5LlBkUG5zRDdVdnliOjokQy5VSnkuO0ZGCQkJVVQoUCRTQlViLUlWLnlWUGRkUCJTeUVwdlZTeSJQKVBLRkYJCQkJJENaLUk5cnkubSgiZVs0RDFRUGVbUWpQIlAzUAoxRDdlUlAzUCJfYlNWU1VjX1RVdnliUChiU1ZTVWNfVUMsUFZyU0I+LixQQ1ZTeSxQTFZFeSxQQy5VSnkuKVBKVnZyeWJQKCdLJFNCVWItSUx5TmJfVUNoJyxQJ0skU0JVYi1JVnJTQj4uaCcsUCdLJFZDQ3lDX1NVRXloJyxQJ0skVUxieS5TX1VFVjx5aCcsUCdLJEMuVUp5LmgnKSIpO0YJCQkJJFVDUGRQJENaLUlVTGJ5LlNfVUMoKTtGRgkJCWhGRgkJCVVUKFAkU0JVYi1JVi55VlBkZFAiYz5FRXlMU2IiUClQS0ZGCQkJCSRDWi1JOXJ5Lm0oUCJlWzREMVFQZVtRalAiUDNQCjFEN2VSUDNQIl9jPkVFeUxTYl9UVXZ5YlAoY19VQyxQVnJTQj4uLFBDVlN5LFBMVkV5LFBDLlVKeS4pUEpWdnJ5YlAoJ0skU0JVYi1JTHlOYl9VQ2gnLFAnSyRTQlViLUlWclNCPi5oJyxQJ0skVkNDeUNfU1VFeWgnLFAnSyRVTGJ5LlNfVUVWPHloJyxQJ0skQy5VSnkuaCcpIlApO0YJCQkJJFVDUGRQJGM+RUV5TFNiVFV2eVVDUGRQJENaLUlVTGJ5LlNfVUMoKTtGCUYJCQloRgkJCUYJCQlVVFAoJHJieS5fPC4+cnAwJEV5RVp5Ll9VQzAncmJ5Ll88Lj5ycCcvLzAnVnZ2Pk5fVkNFVUwnLylQJENaLUk5cnkubShQImVbNEQxUVBlW1FqUCJQM1BrNEQxCjFEN2VSUDNQIl9WQ0VVTF92PjxiUChMVkV5LFBDVlN5LFBVcCxQVmNTVT5MLFB5NVMuVmIpUEpWdnJ5YlAoJyIzJENaLUliVlR5Yjl2KCRFeUVaeS5fVUMwJ0xWRXknLykzIicsUCdLJFZDQ3lDX1NVRXloJyxQJ0skX2UKaCcsUCd4bycsUCdLJHJwdj5WQ3lDX1RVdnlMVkV5aCcpIlApO0YJCQlGCQkJJFVFPF9yLnZQZFAkQ1ZTVl9yLnZQZFAkdlVMfVBkUCRUdlVMfVBkUCRCU1NwX3IudlAzUCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVJQM1AkcnB2PlZDeUNfVFV2eUxWRXk7RgkJCSRVRVY8eV9wVlNCUGRQN2pzbkQxXwoxRDdlUlAzUCRycHY+VkN5Q19UVXZ5TFZFeTtGRgkJCVVUKFAkRXlDVXJFX0NWU1ZQKVBLRgkJCQlGCQkJCSRVRTxfci52UGRQCSRCU1NwX3IudlAzUCRTQlViLUlycHY+VkNfcFZTQlAzUDdqc25EMV8KMUQ3ZVJQM1AiRXlDVXJFPSJQM1AkcnB2PlZDeUNfVFV2eUxWRXk7RgkJCQkkRXlDVXJFX0NWU1ZQZFAibXliIjtGCQkJCSRTRV9yLnZQZFAkVUU8X3IudjtGCQkJCUYJCQloUHl2YnlQJEV5Q1VyRV9DVlNWUGRQIkw+IjtGRgkJCVVUKFAkU0JyRVpfQ1ZTVlApUEtGCQkJCUYJCQkJJFVFPF9yLnZQZFAJJEJTU3Bfci52UDNQJFNCVWItSXJwdj5WQ19wVlNCUDNQN2pzbkQxXwoxRDdlUlAzUCJTQnJFWmI9IlAzUCRycHY+VkN5Q19UVXZ5TFZFeTtGCQkJCSRTQnJFWl9DVlNWUGRQIm15YiI7RgkJCQkkU0Jfci52UGRQJFVFPF9yLnY7RgkJCQlGCQkJaFB5dmJ5UCRTQnJFWl9DVlNWUGRQIkw+IjtGCQkJRgkJCVVUKCRFeUNVckVfQ1ZTVlBkZFAibXliIlApUCR2VUx9UGRQJFNFX3IudjtGCQkJeXZieVVUKFAkU0JyRVpfQ1ZTVlBkZFAibXliIlApUCR2VUx9UGRQJFNCX3IudjtGCQkJeXZieVAkVHZVTH1QZFBUVnZieTtGCQkJRgkJCVVUKFAkU0JVYi1JVi55VlBkZFAiYz5FRXlMU2IiUGoxUCRTQlViLUlWLnlWUGRkUCJTeUVwdlZTeSIpUEtGCQkJCUYJCQkJVVQoUCRTQlViLUlWLnlWUGRkUCJjPkVFeUxTYiJQKVBLRgkJCQkJRgkJCQkJJEN5dl9MVkV5UGRQJ2M+RUV5TFNiX1RVdnliJztGCQkJCQlGCQkJCWhQeXZieVAkQ3l2X0xWRXlQZFAnYlNWU1VjX1RVdnliJztGRiQueVNyLkxfWj41UGRQdXV1NlFnc0Z1Q1VKUGN2VmJiZCJUVXZ5LXAueUpVeU4tY1YuQyJQQ1ZTVi1TbXB5ZCJVRVY8eSJQQ1ZTVi1WLnlWZCJLJEN5dl9MVkV5aCJQQ1ZTVi1DeXZ5U3lVQ2QiSyRVQ2giUENWU1Ytci52ZCJLJENWU1Zfci52aCJQQ1ZTVi1wVlNCZCJLJFVFVjx5X3BWU0JoIlBDVlNWLVNCckVaZCJLJFNCckVaX0NWU1ZoIlBDVlNWLUV5Q1VyRWQiSyRFeUNVckVfQ1ZTVmgiSyRCVUNwVV9DVlNWaElGCXVDVUpQY3ZWYmJkIlZjU1VKeS0uVVpaPkwiSXVicFZMSXVVUGN2VmJiZCJFeUNVVnJwdj5WQy1VYz5MUEV5Q1VWcnB2PlZDLVVjPkwtPn0iSXU9VUl1PWJwVkxJdT1DVUpJRgl1Q1VKUGN2VmJiZCJUVXZ5LWM+TFN5TFMiSUYJCXVVRTxQYi5jZCJLJFVFPF9yLnZoIlBjdlZiYmQiVFV2eS1wLnlKVXlOLVVFVjx5IklGCXU9Q1VKSUYJdUNVSlBjdlZiYmQiVFV2eS1UPj5TeS4iSUYJCXVDVUpQY3ZWYmJkIlRVdnktVD4+U3kuLWNWcFNVPkwiSUYJCQl1Q1VKUGN2VmJiZCJUVXZ5LWNWcFNVPkwtVUxUPiJQLnl2ZCJTPj52U1VwIlBTVVN2eWQiSyRycHY+VkN5Q19UVXZ5TFZFeWgiSUskcnB2PlZDeUNfVFV2eUxWRXlodT1DVUpJRgkJCXVDVUpQY3ZWYmJkIlRVdnktYlV3eS1VTFQ+IklLJENVRXlMYlU+TGhQKEskYlV3eWgpdT1DVUpJRgkJdT1DVUpJRgkJdUNVSlBjdlZiYmQiVFV2eS1UPj5TeS4tWj5TUz5FIklGCQkJdUNVSlBjdlZiYmQiVFV2eS1wLnlKVXlOIklGCQkJCXVWUEIueVRkIkskQ1ZTVl9yLnZoIlBDVlNWLUJVPEJidlVDeWQiYlVMPHZ5IlBTVi48eVNkIl9adlZMfSJQLnl2ZCJTPj52U1VwIlBTVVN2eWQiSyR2Vkw8MCdycF9VRV95NXBWTEMnL2giSXVVUGN2VmJiZCJFeUNVVnJwdj5WQy1VYz5MUEV5Q1VWcnB2PlZDLVVjPkwtdz4+RSJJdT1VSXU9VklGCQkJCXVWUGN2VmJiZCJjdlVwWj5WLkMtYz5wbS12VUx9IlBCLnlUZCIjIlAueXZkIlM+PnZTVXAiUFNVU3Z5ZCJLJHZWTDwwJ3JwX1VFX2M+cG0nL2giSXVVUGN2VmJiZCJFeUNVVnJwdj5WQy1VYz5MUEV5Q1VWcnB2PlZDLVVjPkwtYz5wbSJJdT1VSXU9VkkJRgkJCXU9Q1VKSUYJCQl1Q1VKUGN2VmJiZCJUVXZ5LUN5dnlTeSJJdVZQY3ZWYmJkIlRVdnktQ3l2eVN5LXZVTH0iUEIueVRkIiMiSXVVUGN2VmJiZCJFeUNVVnJwdj5WQy1VYz5MUEV5Q1VWcnB2PlZDLVVjPkwtUy5WYkIiSXU9VUl1PVZJdT1DVUpJRgkJdT1DVUpJRgl1PUNVSklGdT1DVUpJRjZRZ3M7RglGCQkJaFB5dmJ5VVQoUCRTQlViLUlWLnlWUGRkUCI1VFV5dkNiVUVWPHkiUGoxUCRTQlViLUlWLnlWUGRkUCI1VFV5dkNiVUVWPHk8VnZ5Lm0iUClQS0ZGCQkJCSQ1VEpWdnJ5UGRQJFVMYnkuU19VRVY8eTtGCQkJCSQ1VF9VQ1BkUEVDeigkNVRKVnZyeSk7RgkJCQlGCQkJCVVUKFAkU0JVYi1JVi55VlBkZFAiNVRVeXZDYlVFVjx5IlApUEtGCQkJCQlGCQkJCQkkQ3l2X0xWRXlQZFAiNVRVRVY8eUN5dnlTeSgnIjMkXzFEYWtENFEwJzVUTFZFeScvMyInLCciMzdqc25EMV8KMUQ3ZVJQM1AkcnB2PlZDeUNfVFV2eUxWRXkzIicpOy55U3IuTFBUVnZieTsiO0YJCQkJCUYJCQkJaFB5dmJ5UCRDeXZfTFZFeVBkUCI1VFVFVjx5PFZ2eS5tQ3l2eVN5XyIzRUN6KCRfMURha0Q0UTAnNVRMVkV5Jy8pMyIoJyIzJF8xRGFrRDRRMCc1VExWRXknLzMiJywnIjM3anNuRDFfCjFEN2VSUDNQJHJwdj5WQ3lDX1RVdnlMVkV5MyInLFAnIjMkNVRfVUMzIicpOy55U3IuTFBUVnZieTsiO0YJCQkJRgkJCQkkLnlTci5MX1o+NVBkUCJ1Q1VKUFVDZFwiNVRfSyQ1VF9VQ2hcIlBDVlNWLVVDZFwiSyQ1VEpWdnJ5aFwiUENWU1YtVnZTZFwiXCJQY3ZWYmJkXCJycHY+VkN5Q1RVdnlcIkl1Q1VKUGN2VmJiZFwiVUxUPlwiSUskcnB2PlZDeUNfVFV2eUxWRXlodT1DVUpJdUNVSlBjdlZiYmRcInJwdj5WQ1VFVjx5XCJJdVVFPFBiU212eWRcIk5VQ1NCOlZyUz47QnlVPEJTOlZyUz47RVY1LU5VQ1NCOntxcXA1O0VWNS1CeVU8QlM6aXFwNTtcIlBiLmNkXCIiUDNQJFVFPF9yLnZQM1AiXCJQPUl1PUNVSkl1Q1VKUGN2VmJiZFwiVUxUPlwiSXVWUEIueVRkXCIjXCJQPkxjdlVjfWRcIjVUVkNDVnZTKCciMyQ1VF9VQzMiJyxQJyIzJF8xRGFrRDRRMCc1VExWRXknLzMiJyk7LnlTci5MUFRWdmJ5O1wiSUskdlZMPDAnNVRfVUU8X0N5YmMuJy9odT1WSXVaLkl1VlBCLnlUZFwiI1wiUD5MY3ZVY31kXCJLJEN5dl9MVkV5aFwiSUskdlZMPDAnNVRVeXZDXzVUVUMnL2h1PVZJdT1DVUpJdT1DVUpJIjtGRiQueVNyLkxfWj41UGRQdXV1NlFnc0Z1Q1VKUGN2VmJiZCJUVXZ5LXAueUpVeU4tY1YuQ1BycHY+VkN5Q1RVdnkiUFVDZCI1VF9LJDVUX1VDaCJQQ1ZTVi1VQ2QiSyQ1VEpWdnJ5aCJQQ1ZTVi1WdlNkIiJJRgl1Q1VKUGN2VmJiZCJWY1NVSnktLlVaWj5MIkl1YnBWTEl1VVBjdlZiYmQiRXlDVVZycHY+VkMtVWM+TFBFeUNVVnJwdj5WQy1VYz5MLT59Ikl1PVVJdT1icFZMSXU9Q1VKSUYJdUNVSlBjdlZiYmQiVFV2eS1jPkxTeUxTIklGCQl1VUU8UGIuY2QiSyRVRTxfci52aCJQY3ZWYmJkIlRVdnktcC55SlV5Ti1VRVY8eSJJRgl1PUNVSklGCXVDVUpQY3ZWYmJkIlRVdnktVD4+U3kuIklGCQl1Q1VKUGN2VmJiZCJUVXZ5LVQ+PlN5Li1jVnBTVT5MIklGCQkJdUNVSlBjdlZiYmQiVFV2eS1jVnBTVT5MLVVMVD4iUC55dmQiUz4+dlNVcCJQU1VTdnlkIkskcnB2PlZDeUNfVFV2eUxWRXloIklLJHJwdj5WQ3lDX1RVdnlMVkV5aHU9Q1VKSUYJCQl1Q1VKUGN2VmJiZCJUVXZ5LWJVd3ktVUxUPiJJSyRDVUV5TGJVPkxoUChLJGJVd3loKXU9Q1VKSUYJCXU9Q1VKSUYJCXVDVUpQY3ZWYmJkIlRVdnktVD4+U3kuLVo+U1M+RSJJRgkJCXVDVUpQY3ZWYmJkIlRVdnktcC55SlV5TiJJRgkJCQl1VlA+TGN2VWN9ZCI1VFZDQ1Z2UygnSyQ1VF9VQ2gnLFAnSyRfMURha0Q0UTAnNVRMVkV5Jy9oJyk7LnlTci5MUFRWdmJ5OyJQQi55VGQiIyJQLnl2ZCJTPj52U1VwIlBTVVN2eWQiSyR2Vkw8MCc1VF9VRTxfQ3liYy4nL2giSXVVUGN2VmJiZCJFeUNVVnJwdj5WQy1VYz5MUEV5Q1VWcnB2PlZDLVVjPkwteUNVUyJJdT1VSXU9VklGCQkJdT1DVUpJRgkJCXVDVUpQY3ZWYmJkIlRVdnktQ3l2eVN5Ikl1VlBCLnlUZCIjIlA+TGN2VWN9ZCJLJEN5dl9MVkV5aCJJdVVQY3ZWYmJkIkV5Q1VWcnB2PlZDLVVjPkxQRXlDVVZycHY+VkMtVWM+TC1TLlZiQiJJdT1VSXU9Vkl1PUNVSklGCQl1PUNVSklGCXU9Q1VKSUZ1PUNVSklGNlFncztGRgkJCWhQeXZieVBLRkYkLnlTci5MX1o+NVBkUHV1dTZRZ3NGdUNVSlBjdlZiYmQiVFV2eS1wLnlKVXlOLWNWLkMiUENWU1YtU21weWQiVUVWPHkiUENWU1YtVi55VmQiVUVWPHliIlBDVlNWLUN5dnlTeVVDZCJLJFVFVjx5X3BWU0JoIlBDVlNWLXIudmQiSyRDVlNWX3IudmgiUENWU1YtcFZTQmQiSyRVRVY8eV9wVlNCaCJQQ1ZTVi1TQnJFWmQiSyRTQnJFWl9DVlNWaCJQQ1ZTVi1FeUNVckVkIkskRXlDVXJFX0NWU1ZoIkskQlVDcFVfQ1ZTVmhJRgl1Q1VKUGN2VmJiZCJWY1NVSnktLlVaWj5MIkl1YnBWTEl1VVBjdlZiYmQiRXlDVVZycHY+VkMtVWM+TFBFeUNVVnJwdj5WQy1VYz5MLT59Ikl1PVVJdT1icFZMSXU9Q1VKSUYJdUNVSlBjdlZiYmQiVFV2eS1jPkxTeUxTIklGCQl1VUU8UGIuY2QiSyRVRTxfci52aCJQY3ZWYmJkIlRVdnktcC55SlV5Ti1VRVY8eSJJRgl1PUNVSklGCXVDVUpQY3ZWYmJkIlRVdnktVD4+U3kuIklGCQl1Q1VKUGN2VmJiZCJUVXZ5LVQ+PlN5Li1jVnBTVT5MIklGCQkJdUNVSlBjdlZiYmQiVFV2eS1jVnBTVT5MLVVMVD4iUC55dmQiUz4+dlNVcCJQU1VTdnlkIkskcnB2PlZDeUNfVFV2eUxWRXloIklLJHJwdj5WQ3lDX1RVdnlMVkV5aHU9Q1VKSUYJCQl1Q1VKUGN2VmJiZCJUVXZ5LWJVd3ktVUxUPiJJSyRDVUV5TGJVPkxoUChLJGJVd3loKXU9Q1VKSUYJCXU9Q1VKSUYJCXVDVUpQY3ZWYmJkIlRVdnktVD4+U3kuLVo+U1M+RSJJRgkJCXVDVUpQY3ZWYmJkIlRVdnktcC55SlV5TiJJRgkJCQl1VlBCLnlUZCJLJENWU1Zfci52aCJQQ1ZTVi1CVTxCYnZVQ3lkImJVTDx2eSJQU1YuPHlTZCJfWnZWTH0iUC55dmQiUz4+dlNVcCJQU1VTdnlkIkskdlZMPDAncnBfVUVfeTVwVkxDJy9oIkl1VVBjdlZiYmQiRXlDVVZycHY+VkMtVWM+TFBFeUNVVnJwdj5WQy1VYz5MLXc+PkUiSXU9VUl1PVZJRgkJCQl1VlBjdlZiYmQiY3ZVcFo+Vi5DLWM+cG0tdlVMfSJQQi55VGQiIyJQLnl2ZCJTPj52U1VwIlBTVVN2eWQiSyR2Vkw8MCdycF9VRV9jPnBtJy9oIkl1VVBjdlZiYmQiRXlDVVZycHY+VkMtVWM+TFBFeUNVVnJwdj5WQy1VYz5MLWM+cG0iSXU9VUl1PVZJCUYJCQl1PUNVSklGCQkJdUNVSlBjdlZiYmQiVFV2eS1DeXZ5U3kiSXVWUGN2VmJiZCJUVXZ5LUN5dnlTeS12VUx9IlBCLnlUZCIjIkl1VVBjdlZiYmQiRXlDVVZycHY+VkMtVWM+TFBFeUNVVnJwdj5WQy1VYz5MLVMuVmJCIkl1PVVJdT1WSXU9Q1VKSUYJCXU9Q1VKSUYJdT1DVUpJRnU9Q1VKSUY2UWdzO0ZGCQkJaEYJCQlGCQkJVVQoUFViYnlTKFAkU0JVYi1JVFV2eS1JY0JyTH1fU0VwX0xWRXlQKVBdW25QJFNCVWItSVRVdnktSWNCckx9X1NFcF9MVkV5UClQS0YJCQkJRgkJCQlAckx2VUx9KCRTQlViLUlUVXZ5LUljQnJMfV9TRXBfTFZFeSk7RgkJCQkkU0JVYi1JVFV2eS1JY0JyTH1fU0VwX0xWRXlQZFAnJztGCQkJCUYJCQloRkYJCWhQeXZieVAueVNyLkxQJFNCVWItSUViPF95Li4+LihQJHZWTDwwJ1VFVjx5Yl9ycHkuLl9BJy9QKTtGCQlGCQkkLnlTci5MX1YuLlZtUGRQVi4uVm1QKEYJCQknYnJjY3liYidQZElQUy5yeSxGCQkJJy55U3IuTFo+NSdQZElQJC55U3IuTF9aPjUsRgkJCSdycHY+VkN5Q19UVXZ5TFZFeSdQZElQJHJwdj5WQ3lDX1RVdnlMVkV5LEYJCQknNVRKVnZyeSdQZElQJDVUSlZ2cnksRgkJCSd2VUx9J1BkSVAkdlVMfSxGCQkJJ1R2VUx9J1BkSVAkVHZVTH0sRgkJCSdjPkVFeUxTYlRVdnlVQydQZElQJGM+RUV5TFNiVFV2eVVDLEYJCQknLnlFPlN5X3kuLj4uJ1BkSVBuc0Q3VXZ5Yjo6JC55RT5TeV95Li4+LixGCQkJJ1NVTG1wTDxfeS4uPi4nUGRJUCRTVUxtcEw8X3kuLj4uRgkJKTtGCQlGCQkueVNyLkxQTWI+TF95TGM+Q3koJC55U3IuTF9WLi5WbSxQIDRqW19rW0Q0Ml0KRG5fa1tlMmpuRFB8UCA0altfa1tENDJdCkRuXzRzXTQ2RDRQKTtGRgloRkZoRkY/SQ==';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCc5djZ9VGFBaDVHcHsycmJqWUNrcVg4aU9CPGdzU3lmRkpNTEUvb1E9LnhWUmxVd3REClc0SzM+MUhJbiBQZFo3XVt1bTBjZU56JywncWxIa2ZRMn14S3AxQ3VzT1dkVTBCNzlHaGdNTHRlWgp2am5tXTZUL3IzYVg0aXo4RVBWU3sub1JZPkRKID1iRkFOPHlbY0l3NScpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));
Function Calls
strtr | 1 |
strrev | 1 |
str_replace | 1 |
base64_decode | 2 |
Stats
MD5 | f6c076d8cb769d12e09391a8bfe927e8 |
Eval Count | 2 |
Decode Time | 154 ms |