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 
-----------------------------------------------------
 http://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004-2019 SoftNews Media Group
=====================================================
 This code is protected by copyright
=====================================================
 File: engine.php
=====================================================
*/

if (!defined('DATALIFEENGINE')) {
	die ( "Hacking attempt!" );
}

if ($cstart < 0) $cstart = 0;

$CN_HALT = false;
$allow_add_comment = false;
$allow_active_news = true;
$allow_comments = false;
$allow_userinfo = false;
$active = false;
$disable_index = false;
$social_tags = array();
$canonical = false;
$url_page = false;
$user_query = false;
$news_author = false;
$attachments = array ();
$short_news_cache = false;

switch ( $do ) {
	
	case "search" :
		
		if ($_REQUEST['mode'] == "advanced") $_REQUEST['full_search'] = 1;
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/search.php'));
		break;

	case "changemail" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/changemail.php'));
		break;
	
	case "deletenews" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/deletenews.php'));
		break;

	case "comments" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/comments.php'));
		break;
	
	case "stats" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/stats.php'));
		break;
	
	case "addnews" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/addnews.php'));
		break;
	
	case "register" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/register.php'));
		break;
	
	case "lostpassword" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/lostpassword.php'));
		break;
	
	case "rules" :
		$_GET['page'] = "dle-rules-page";
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/static.php'));
		break;
	
	case "static" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/static.php'));
		break;
	
	case "alltags" :
		include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/tagscloud.php'));
		break;

	case "auth-social" :
		include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/social.php'));
		break;
	
	case "favorites" :
		
		if ($is_logged) {
			
			$config['allow_cache'] = false;
			
			include (DLEPlugins::Check(ENGINE_DIR . '/modules/favorites.php'));
		
		} else {
			
			@header( "HTTP/1.1 403 Forbidden" );
			msgbox ( $lang['all_err_1'], $lang['fav_error'] );
			
		}
			
		break;
	
	case "feedback" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/feedback.php'));
		break;
	
	case "lastcomments" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/lastcomments.php'));
		break;
	
	case "pm" :
		include (DLEPlugins::Check(ENGINE_DIR . '/modules/pm.php'));
		break;

	case "unsubscribe" :
		$_GET['post_id'] = intval ($_GET['post_id']);
		$_GET['user_id'] = intval ($_GET['user_id']);

		if ($_GET['post_id'] AND $_GET['user_id'] AND $_GET['hash']) {

			$row = $db->super_query( "SELECT hash FROM " . PREFIX . "_subscribe WHERE news_id='{$_GET['post_id']}' AND user_id='{$_GET['user_id']}'" );

			if ($row['hash'] AND $row['hash'] == $_GET['hash']) {

				$db->query( "DELETE FROM " . PREFIX . "_subscribe WHERE news_id='{$_GET['post_id']}' AND user_id='{$_GET['user_id']}'" );
				msgbox( $lang['all_info'],  $lang['unsubscribe_ok']);

			} else {
				msgbox( $lang['all_info'],  $lang['unsubscribe_err']);
			}

		} else {
			msgbox( $lang['all_info'],  $lang['unsubscribe_err']);
		}

		break;
	
	case "newsletterunsubscribe" :
		
		$_GET['user_id'] = intval ($_GET['user_id']);

		if ($_GET['user_id'] AND $_GET['hash']) {

			$row = $db->super_query( "SELECT password, user_id FROM " . USERPREFIX . "_users WHERE user_id='{$_GET['user_id']}'" );
			
			if ($row['user_id']) {
				
				$unsubscribe_hash = md5( SECURE_AUTH_KEY . $_SERVER['HTTP_HOST'] . $row['user_id'] . sha1( substr($row['password'], 0, 6) ) . $config['key'] );
	
				if ($unsubscribe_hash == $_GET['hash']) {
	
					$db->query( "UPDATE " . USERPREFIX . "_users SET allow_mail='0' WHERE user_id = '{$_GET['user_id']}'" );
					
					msgbox( $lang['all_info'],  $lang['n_unsubscribe_ok']);
	
				} else {
					
					msgbox( $lang['all_info'],  $lang['n_unsubscribe_err']);
					
				}
				
			} else {
				msgbox( $lang['all_info'],  $lang['n_unsubscribe_err']);
			}

		} else {
			msgbox( $lang['all_info'],  $lang['n_unsubscribe_err']);
		}

		break;
	
	default :
		
		$is_main = 0;
		$active = false;
		$user_query = "";
		$url_page = "";
		
		$thisdate = date ( "Y-m-d H:i:s", time () );
		if ($config['no_date'] AND !$config['news_future']) $where_date = " AND date < '" . $thisdate . "'";
		else $where_date = "";
		
		if ($config['allow_fixed']) $fixed = "fixed desc, ";
		else $fixed = "";
		
		$config['news_number'] = intval ( $config['news_number'] );

		if ( $smartphone_detected AND $config['mobile_news'] ) $config['news_number'] = intval ( $config['mobile_news'] );
		
		$news_sort_by = ($config['news_sort']) ? $config['news_sort'] : "date";
		$news_direction_by = ($config['news_msort']) ? $config['news_msort'] : "DESC";

		$allow_list = explode ( ',', $user_group[$member_id['user_group']]['allow_cats'] );
		$stop_list = "";
		$cat_join = "";
		$cat_join_count = "";
		
		if ($allow_list[0] != "all") {
			
			if ($config['allow_multi_category']) {
				
				$cat_join = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN (" . implode ( ',', $allow_list ) . ")) c ON (p.id=c.news_id) ";
				$cat_join_count = "p ".$cat_join;
			
			} else {
				
				$stop_list = "category IN ('" . implode ( "','", $allow_list ) . "') AND ";
			
			}
		
		}
		
		$not_allow_cats = explode ( ',', $user_group[$member_id['user_group']]['not_allow_cats'] );
		
		if( $not_allow_cats[0] != "" ) {
			
			if ($config['allow_multi_category']) {
				
				$stop_list = "p.id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN (" . implode ( ',', $not_allow_cats ) . ") ) AND ";
				$cat_join_count = "p ";
				
			} else {
				
				$stop_list = "category NOT IN ('" . implode ( "','", $not_allow_cats ) . "') AND ";
			
			}
			
		}
		
		if ($user_group[$member_id['user_group']]['allow_short']) { $stop_list = ""; $cat_join = ""; $cat_join_count = ""; }
		
		$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];

		$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date;
		$sql_news = "";
		
		// ################ Show of a category #################
		if ($do == "cat" and $category != '' and $subaction == '') {

			$allow_sub_cats = true;
			
			if( $config['allow_alt_url'] AND $config['seo_control'] AND $category_id AND $view_template != "rss") {

				$re_cat = get_url( $category_id );

				if ($re_cat != $_GET['category'] OR substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR strpos ($_SERVER['REQUEST_URI'], "do=cat" ) !== false ) {
					$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
					$re_url = reset ( $re_url );

					if( (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//') AND $_GET['cstart'] AND $_GET['cstart'] != 1 ) {
					 $re_cat .= "/page/".intval($_GET['cstart']);
					}
					
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}{$re_cat}/");
					die("Redirect");
				}
			}

			if (!$category_id) $category_id = 'not detected';
			
			if ($allow_list[0] != "all") {
				if (!$user_group[$member_id['user_group']]['allow_short'] AND !in_array( $category_id, $allow_list )) $category_id = 'not detected';
			}

			if ($not_allow_cats[0] != "") {
				if (!$user_group[$member_id['user_group']]['allow_short'] AND in_array( $category_id, $not_allow_cats )) $category_id = 'not detected';
			}

			if( !intval($category_id) ) {
				$allow_active_news = false;
			}
			
			if ( $cat_info[$category_id]['show_sub'] ) {

				if ( $cat_info[$category_id]['show_sub'] == 1 ) $get_cats = get_sub_cats ( $category_id );
				else { $get_cats = $category_id; $allow_sub_cats = false; }

			} else {

				if ( $config['show_sub_cats'] ) $get_cats = get_sub_cats ( $category_id );
				else { $get_cats = $category_id; $allow_sub_cats = false; }

			}

			if ($cat_info[$category_id]['news_sort']) $news_sort_by = $cat_info[$category_id]['news_sort'];
			if ($cat_info[$category_id]['news_msort']) $news_direction_by = $cat_info[$category_id]['news_msort'];
			if ($cat_info[$category_id]['news_number']) $config['news_number'] = $cat_info[$category_id]['news_number'];

			if ($cstart) {
				$cstart = $cstart - 1;
				$cstart = $cstart * $config['news_number'];
			}

			$url_page = $config['http_home_url'] . get_url ( $category_id );
			$user_query = "do=cat&amp;category=" . $cat_info[$category_id]['alt_name'];
			
			if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=cat&category=" . $cat_info[$category_id]['alt_name'];
			
			if ($config['allow_multi_category']) {
		
				$get_cats = str_replace ( "|", "','", $get_cats );
				$join_category = "INNER JOIN (SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN ('" . $get_cats . "')) c ON (p.id=c.news_id) ";
				$where_category = "";
				
			} else {
				
				if ( $allow_sub_cats ) {
					
					$get_cats = str_replace ( "|", "','", $get_cats );
					$where_category = "category IN ('" . $get_cats . "') AND ";
				
				} else {
					
					$where_category = "category = '{$get_cats}' AND ";
				
				}
				
				$join_category = "";
			
			}
			
			if ($view_template == "rss") {
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, e.allow_rss_turbo, e.allow_rss_dzen FROM " . PREFIX . "_post p {$join_category}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$where_category}approve=1 AND allow_rss=1" . $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
			
			} else {
				
				if (isset ( $_SESSION['dle_sort_cat_'.$category_id] )) $news_sort_by = $_SESSION['dle_sort_cat_'.$category_id];
				if (isset ( $_SESSION['dle_direction_cat_'.$category_id] )) $news_direction_by = $_SESSION['dle_direction_cat_'.$category_id];
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$join_category}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$where_category}approve=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
				$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p {$join_category}WHERE {$where_category}approve=1" . $where_date;
			}
		
		} elseif ($do == 'lastnews') {
			// ################ Show all news #################			
			if ($cstart) {
				$cstart = $cstart - 1;
				$cstart = $cstart * $config['news_number'];
			}

			if( $config['allow_alt_url'] AND $config['seo_control'] AND $_GET['cstart'] ) {
	
				if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 ) {

					$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
					$re_url = reset ( $re_url );
						
					$re_url .= "lastnews/";
						
					if(substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' AND $_GET['cstart'] != 1 ) {
						$re_url .= "page/".intval($_GET['cstart'])."/";
					}
					
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}");
					die("Redirect");
				}
			}
				
			$url_page = $config['http_home_url'] . "lastnews";
			$user_query = "do=lastnews";
			
			if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=lastnews";
			
			if (isset ( $_SESSION['dle_sort_lastnews'] )) $news_sort_by = $_SESSION['dle_sort_lastnews'];
			else $news_sort_by = "date";
			if (isset ( $_SESSION['dle_direction_lastnews'] )) $news_direction_by = $_SESSION['dle_direction_lastnews'];
			else $news_direction_by = "DESC";
			
			$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
			$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}approve=1" . $where_date;
		
		} elseif ($do == 'tags') {
			// ################ Seach news by tags #################			
			if ($cstart) {
				$cstart = $cstart - 1;
				$cstart = $cstart * $config['news_number'];
			}

			$tag = rawurldecode( $_GET['tag'] );

			$tag = htmlspecialchars ( strip_tags ( stripslashes ( trim ( $tag ) ) ), ENT_COMPAT, $config['charset'] );
			$encoded_tag = rawurlencode(str_replace(array("&#039;", "&quot;", "&amp;"), array("'", '"', "&"), $tag));
			
			define( 'CLOUDSTAG', $tag );
			
			$url_page = $config['http_home_url'] . "tags/" . $encoded_tag;
			$user_query = "do=tags&amp;tag=" . $encoded_tag;
			
			if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=tags&tag=" . $encoded_tag;

			if( $config['allow_alt_url'] AND $config['seo_control'] ) {

				if ( substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR strpos ($_SERVER['REQUEST_URI'], "do=tags" ) !== false) {
	
					$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
					$re_url = reset ( $re_url );
						
					$re_url .= "tags/" . $encoded_tag . "/";
						
					if( $_GET['cstart'] > 1 ) {
						$re_url .= "page/".intval($_GET['cstart'])."/";
					}
					
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}");
					die("Redirect");
				}
			}
			
			if (isset ( $_SESSION['dle_sort_tags'] )) $news_sort_by = $_SESSION['dle_sort_tags'];
			if (isset ( $_SESSION['dle_direction_tags'] )) $news_direction_by = $_SESSION['dle_direction_tags'];

			$tag = @$db->safesql ( $tag );

			$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p INNER JOIN " . PREFIX . "_tags t on (t.news_id=p.id) {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}t.tag = '{$tag}' AND p.approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
			$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p INNER JOIN " . PREFIX . "_tags t on (t.news_id=p.id) {$cat_join}WHERE {$stop_list}t.tag = '{$tag}' AND approve=1" . $where_date;

		} elseif ($do == 'xfsearch') {
			// ################ Seach news by xfields #################			
			if ($cstart) {
				$cstart = $cstart - 1;
				$cstart = $cstart * $config['news_number'];
			}
			
			if (isset ( $_SESSION['dle_sort_xfsearch'] )) $news_sort_by = $_SESSION['dle_sort_xfsearch'];
			if (isset ( $_SESSION['dle_direction_xfsearch'] )) $news_direction_by = $_SESSION['dle_direction_xfsearch'];
		
			$xf = rawurldecode($_GET['xf']);

			if (dle_substr ( $xf, - 1, 1, $config['charset'] ) == '/') $xf = dle_substr ( $xf, 0, - 1, $config['charset'] );
			
			$xf = explode ( '/', $xf );
			$xfname = "";
			
			if( $_GET['xfname'] AND !$config['allow_alt_url'] ) {
				$xfname =totranslit(trim($_GET['xfname']));
			} elseif(count($xf) > 1 ) {
				$xfname =totranslit(trim($xf[0]));
				unset($xf[0]);
			}

			$xf = implode(' ', $xf);
			$xf = htmlspecialchars ( strip_tags ( stripslashes ( trim ( $xf ) ) ), ENT_QUOTES, $config['charset'] );

			if($xfname) {
				
				$url_page = $config['http_home_url'] . "xfsearch/{$xfname}/" . rawurlencode ( str_replace(array("&#039;", "&quot;"), array("'", '"'), $xf) );
				$user_query = "do=xfsearch&amp;xfname=".$xfname."&amp;xf=" . rawurlencode ( str_replace(array("&#039;", "&quot;"), array("'", '"'), $xf) );
				
				if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=xfsearch&xfname=".$xfname."&xf=" . urlencode ( str_replace("&#039;", "'", $xf) );
				
			} else {
				
				$url_page = $config['http_home_url'] . "xfsearch/" . rawurlencode ( str_replace(array("&#039;", "&quot;"), array("'", '"'), $xf) );
				$user_query = "do=xfsearch&amp;xf=" . rawurlencode ( str_replace(array("&#039;", "&quot;"), array("'", '"'), $xf) );
				
				if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?do=xfsearch&xf=" . urlencode ( str_replace("&#039;", "'", $xf) );
				
				$xfields = xfieldsload();
				$xfields_name = array();
				
				foreach ( $xfields as $value ) {
					$xfields_name[] = $value[0];
				}
				
				if( in_array($xf, $xfields_name) ) {$xf .= "|";}
				
				
			}
			
			$xfname = $db->safesql($xfname);
			$xf = $db->safesql($xf);

			if ( $xfname ) {
				
				if( $config['allow_alt_url'] AND $config['seo_control'] ) {

					if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR strpos ($_SERVER['REQUEST_URI'], "do=xfsearch" ) !== false) {
							
						$re_url = $url_page . "/";
							
						if( $_GET['cstart'] > 1 ) {
							$re_url .= "page/".intval($_GET['cstart'])."/";
						}
						
						header("HTTP/1.0 301 Moved Permanently");
						header("Location: {$re_url}");
						die("Redirect");
					}
				}

				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p INNER JOIN " . PREFIX . "_xfsearch xf on (xf.news_id=p.id) {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}xf.tagname = '{$xfname}' AND xf.tagvalue='{$xf}' AND p.approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
				$sql_count  = "SELECT COUNT(*) as count FROM " . PREFIX . "_post p INNER JOIN " . PREFIX . "_xfsearch xf on (xf.news_id=p.id) {$cat_join}WHERE {$stop_list}xf.tagname = '{$xfname}' AND xf.tagvalue='{$xf}' AND approve=1" . $where_date;
		
			} else {
				
				if(!$xf) {
					
					$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
					$re_url = reset ( $re_url );
						
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}");
					die("Redirect");
				}
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}xfields LIKE '%{$xf}%' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
				$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}xfields LIKE '%{$xf}%' AND approve=1" . $where_date;
		
				$xf = str_replace ( '|', '', $xf );
			}
		
		} elseif ($subaction == 'userinfo') {
			// ################ show user profile #################
			if ($cstart) {
				
				$cstart = $cstart - 1;
				$cstart = $cstart * $config['news_number'];
			
			}
			
			$url_page = $config['http_home_url'] . "user/" . urlencode ( $user );
			$user_query = "subaction=userinfo&amp;user=" . urlencode ( $user );
			
			if ($member_id['name'] == $user OR $user_group[$member_id['user_group']]['allow_all_edit']) {
				if (isset ( $_SESSION['dle_sort_userinfo'] )) $news_sort_by = $_SESSION['dle_sort_userinfo'];
				if (isset ( $_SESSION['dle_direction_userinfo'] )) $news_direction_by = $_SESSION['dle_direction_userinfo'];
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE autor = '{$user}' AND approve=0 ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
				$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post WHERE autor = '$user' AND approve=0";
				
				if( !$config['profile_news'] ) {
					$allow_active_news = false;
					$news_found = false;		
				}

			} else {
				$allow_active_news = false;
				$news_found = false;
			}
			
			$config['allow_cache'] = false;
		} elseif ($subaction == 'allnews') {
			// ################ show all news by user #################
			if ($cstart) {
				
				$cstart = $cstart - 1;
				$cstart = $cstart * $config['news_number'];
			
			}
			
			$url_page = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/news";
			$user_query = "subaction=allnews&amp;user=" . urlencode ( $user );
			
			if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?subaction=allnews&user=" . urlencode ( $user );
			
			if ($view_template == "rss") {
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, e.allow_rss_turbo, e.allow_rss_dzen FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}p.autor = '{$user}' AND p.approve=1 AND e.allow_rss=1" . $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
			
			} else {
				
				if (isset ( $_SESSION['dle_sort_allnews'] )) $news_sort_by = $_SESSION['dle_sort_allnews'];
				if (isset ( $_SESSION['dle_direction_allnews'] )) $news_direction_by = $_SESSION['dle_direction_allnews'];
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}autor = '$user' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
				$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}autor = '$user' AND approve=1" . $where_date;
			}
		
		} elseif ($subaction == 'newposts') {
			// ################ show all unread news #################
			if ($cstart) {
				$cstart = $cstart - 1;
				$cstart = $cstart * $config['news_number'];
			}
			
			$url_page = $config['http_home_url'] . "newposts";
			$user_query = "subaction=newposts";
			
			if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?subaction=newposts";
			
			$thistime = date ( "Y-m-d H:i:s", $_TIME );
			
			if (isset ( $_SESSION['member_lasttime'] )) {
				$lasttime = date ( "Y-m-d H:i:s", $_SESSION['member_lasttime'] );
			} else {
				$lasttime = date ( "Y-m-d H:i:s", (time () - (3600 * 4)) );
			}
			
			if (isset ( $_SESSION['dle_sort_newposts'] )) $news_sort_by = $_SESSION['dle_sort_newposts'];
			if (isset ( $_SESSION['dle_direction_newposts'] )) $news_direction_by = $_SESSION['dle_direction_newposts'];
			
			$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}approve=1 AND date between '$lasttime' and '$thistime' order by " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
			$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}approve=1 AND date between '$lasttime' and '$thistime'";
			
			$config['allow_cache'] = false;
			
		} elseif ( isset ($_GET['catalog']) ) {
			
			// ################ show by catalog #################
			if ($cstart) {
				$cstart = $cstart - 1;
				$cstart = $cstart * $config['news_number'];
			}

			if( $config['allow_alt_url'] AND $config['seo_control']) {

				if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//') {
					
					$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
					$re_url = reset ( $re_url );
					
					$re_url .= "catalog/".urlencode ( $catalog )."/";
					
					if( $_GET['cstart'] > 1 ) {
						$re_url .= "page/".intval($_GET['cstart'])."/";
					}
					
					
					header("HTTP/1.0 301 Moved Permanently");
					header("Location: {$re_url}");
					die("Redirect");
				}
			}
				
			$url_page = $config['http_home_url'] . "catalog/" . urlencode ( $catalog );
			$user_query = "catalog=" . urlencode ( $catalog );

			if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?catalog=" . urlencode ( $catalog );

			$news_sort_by = ($config['catalog_sort']) ? $config['catalog_sort'] : "date";
			$news_direction_by = ($config['catalog_msort']) ? $config['catalog_msort'] : "DESC";
			
			if (isset ( $_SESSION['dle_sort_catalog'] )) $news_sort_by = $_SESSION['dle_sort_catalog'];
			if (isset ( $_SESSION['dle_direction_catalog'] )) $news_direction_by = $_SESSION['dle_direction_catalog'];
			
			$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}symbol = '$catalog' AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
			$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}symbol = '$catalog' AND approve=1" . $where_date;

		} else {

			// ################ show main page #################
			if ($year == '' AND $month == '' AND $day == '' AND !$newsid) {

				$canonical = $config['http_home_url'];

				if( $config['start_site'] == 2 AND $view_template != "rss") {
					
					break;				
				}
				
				if( $config['allow_alt_url'] AND $config['seo_control'] AND $_GET['cstart'] ) {
	
					if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 ) {
						
						$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
						$re_url = reset ( $re_url );
						
						if(substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' AND $_GET['cstart'] != 1 ) {
							$re_url .= "page/".intval($_GET['cstart'])."/";
						}
					
						header("HTTP/1.0 301 Moved Permanently");
						header("Location: {$re_url}");
						die("Redirect");
					}
				}
			
				if ($cstart) {
					
					$cstart = $cstart - 1;
					$cstart = $cstart * $config['news_number'];		
				}
			
				$url_page = substr ( $config['http_home_url'], 0, strlen ( $config['http_home_url'] ) - 1 );
				$user_query = "";
				
				if ($view_template == "rss") {
	
					$not_allow_cats = array();
					
					foreach($cat_info as $value) {
						if( !$value['allow_rss'] ) $not_allow_cats[] = $value['id'];
					}
					
					if( count($not_allow_cats) ) {

						if ($config['allow_multi_category']) {
							
							$not_allow_cats = "id NOT IN ( SELECT DISTINCT(" . PREFIX . "_post_extras_cats.news_id) FROM " . PREFIX . "_post_extras_cats WHERE cat_id IN (" . implode ( ',', $not_allow_cats ) . ") ) AND ";
						
						} else {
							
							$not_allow_cats = "category NOT IN ('" . implode ( "','", $not_allow_cats ) . "') AND ";
						
						}
						
					} else $not_allow_cats = "";
					
					$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, p.full_story, p.xfields, p.title, p.category, p.alt_name, e.allow_rss_turbo, e.allow_rss_dzen FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$not_allow_cats}{$stop_list}p.approve=1 AND e.allow_rss=1";
					
					if ($config['rss_mtype']) {
						
						$sql_select .= " AND p.allow_main=1";
					
					}
					
					$sql_select .= $where_date . " ORDER BY date DESC LIMIT 0," . $config['rss_number'];
				
				} else {
					
					if (isset ( $_SESSION['dle_sort_main'] )) $news_sort_by = $_SESSION['dle_sort_main'];
					if (isset ( $_SESSION['dle_direction_main'] )) $news_direction_by = $_SESSION['dle_direction_main'];
					
					$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date . " ORDER BY " . $fixed . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
					$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}approve=1 AND allow_main=1" . $where_date;
				
				}
			}
	
			// ################ Show news by year #################
			if ($year != '' and $month == '' and $day == '') {
				if ($cstart) {
					
					$cstart = $cstart - 1;
					$cstart = $cstart * $config['news_number'];
				}
				
				if( $config['allow_alt_url'] AND $config['seo_control']) {

					if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100) {
						
						$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
						$re_url = reset ( $re_url );
						
						if (intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100) {
							$year= date( 'Y', $_TIME );
						}
						
						$re_url .= $year."/";
						
						if( $_GET['cstart'] > 1 ) {
							$re_url .= "page/".intval($_GET['cstart'])."/";
						}
						
						
						header("HTTP/1.0 301 Moved Permanently");
						header("Location: {$re_url}");
						die("Redirect");
					}
				}
				
				$url_page = $config['http_home_url'] . $year;
				$user_query = "year=" . $year;
				
				if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?year=" . $year;
				
				if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
				if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
				$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}where {$stop_list}date >= '{$year}-01-01'AND date < '{$year}-01-01' + INTERVAL 1 YEAR AND approve=1" . $where_date;
			}
			
			// ################ Show news by month #################
			if ($year != '' and $month != '' and $day == '') {
				if ($cstart) {
					$cstart = $cstart - 1;
					$cstart = $cstart * $config['news_number'];
				}
				
				if( $config['allow_alt_url'] AND $config['seo_control']) {

					if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100 OR intval($_GET['month']) < 1 OR intval($_GET['month']) > 12) {
						
						$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
						$re_url = reset ( $re_url );
						
						if (intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100) {
							$year= date( 'Y', $_TIME );
						}
						
						$re_url .= $year."/";
						
						if (intval($_GET['month']) < 1 OR intval($_GET['month']) > 12) {
							$month= date( 'm', $_TIME );
						}
						
						$re_url .= $month."/";
						
						if( $_GET['cstart'] > 1 ) {
							$re_url .= "page/".intval($_GET['cstart'])."/";
						}

						header("HTTP/1.0 301 Moved Permanently");
						header("Location: {$re_url}");
						die("Redirect");
					}
				}

				$url_page = $config['http_home_url'] . $year . "/" . $month;
				$user_query = "year=" . $year . "&amp;month=" . $month;
				
				if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?year=" . $year . "&month=" . $month;
				
				if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
				if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
				$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}where {$stop_list}date >= '{$year}-{$month}-01'AND date < '{$year}-{$month}-01' + INTERVAL 1 MONTH AND approve=1" . $where_date;
			}
		
			// ################ Show news by day #################

			if ($year != '' and $month != '' and $day != '' and $subaction == '') {
				if ($cstart) {
					$cstart = $cstart - 1;
					$cstart = $cstart * $config['news_number'];
				}

				if( $config['allow_alt_url'] AND $config['seo_control']) {

					if (substr ( $_SERVER['REQUEST_URI'], - 1, 1 ) != '/' OR $_GET['cstart'] == 1 OR substr ( $_SERVER['REQUEST_URI'], - 2 ) == '//' OR intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100 OR intval($_GET['month']) < 1 OR intval($_GET['month']) > 12 OR intval($_GET['day']) < 1 OR intval($_GET['day']) > 31) {
						
						$re_url = explode ( "index.php", strtolower ( $_SERVER['PHP_SELF'] ) );
						$re_url = reset ( $re_url );
						
						if (intval($_GET['year']) < 1970 OR intval($_GET['year']) > 2100) {
							$year= date( 'Y', $_TIME );
						}
						
						$re_url .= $year."/";
						
						if (intval($_GET['month']) < 1 OR intval($_GET['month']) > 12) {
							$month= date( 'm', $_TIME );
						}
						
						$re_url .= $month."/";
						
						if (intval($_GET['day']) < 1 OR intval($_GET['day']) > 31) {
							$day= date( 'd', $_TIME );
						}
						
						$re_url .= $day."/";
						
						if( $_GET['cstart'] > 1 ) {
							$re_url .= "page/".intval($_GET['cstart'])."/";
						}

						header("HTTP/1.0 301 Moved Permanently");
						header("Location: {$re_url}");
						die("Redirect");
					}
				}
				
				$url_page = $config['http_home_url'] . $year . "/" . $month . "/" . $day;
				$user_query = "year=" . $year . "&amp;month=" . $month . "&amp;day=" . $day;
				
				if( $config['allow_alt_url'] ) $canonical = $url_page . "/"; else $canonical = $PHP_SELF."?year=" . $year . "&month=" . $month . "&day=" . $day;
				
				if (isset ( $_SESSION['dle_sort_date'] )) $news_sort_by = $_SESSION['dle_sort_date'];
				if (isset ( $_SESSION['dle_direction_date'] )) $news_direction_by = $_SESSION['dle_direction_date'];
				
				$sql_select = "SELECT p.id, p.autor, p.date, p.short_story, CHAR_LENGTH(p.full_story) as full_story, p.xfields, p.title, p.category, p.alt_name, p.comm_num, p.allow_comm, p.fixed, p.tags, e.news_read, e.allow_rate, e.rating, e.vote_num, e.votes, e.view_edit, e.editdate, e.editor, e.reason FROM " . PREFIX . "_post p {$cat_join}LEFT JOIN " . PREFIX . "_post_extras e ON (p.id=e.news_id) WHERE {$stop_list}date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR AND approve=1" . $where_date . " ORDER BY " . $news_sort_by . " " . $news_direction_by . " LIMIT " . $cstart . "," . $config['news_number'];
				$sql_count = "SELECT COUNT(*) as count FROM " . PREFIX . "_post {$cat_join_count}WHERE {$stop_list}date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR AND approve=1" . $where_date;
		
			}
			
			// ################ Full News #################
			if ($subaction != '' OR $newsid) {
				if (! $newsid) $sql_news = "SELECT * FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE alt_name ='$news_name' AND date >= '{$year}-{$month}-{$day}' AND date < '{$year}-{$month}-{$day}' + INTERVAL 24 HOUR LIMIT 1";
				else $sql_news = "SELECT * FROM " . PREFIX . "_post LEFT JOIN " . PREFIX . "_post_extras ON (" . PREFIX . "_post.id=" . PREFIX . "_post_extras.news_id) WHERE  id = '{$newsid}'";
				
				if ($subaction == '') $subaction = "showfull";
			}
		}
		
		if (($subaction == "showfull" or $subaction == "addcomment") AND ( (!isset($category) OR $category == "") )) {
			
			//####################################################################################################################
			//          Add a comment to the database
			//####################################################################################################################
			if (isset( $_POST['subaction'] ) AND $_POST['subaction'] == "addcomment") {
				
				$allow_add_comment = true;
				$allow_comments = true;
				$ajax_adds = false;
				
				include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/addcomments.php'));
			}
			//####################################################################################################################
			//         Show the full news
			//####################################################################################################################
			if ($subaction == "showfull") {
				$allow_comments = true;
			
				include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/show.full.php'));
			}
		
		} else {
			
			//####################################################################################################################
			//         Viewing user profile
			//####################################################################################################################
			if ($subaction == 'userinfo') {
				
				$allow_userinfo = true;
				include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/profile.php'));
			
			}
			
			//####################################################################################################################
			//         Viewing short news
			//####################################################################################################################
			
			$cache_prefix = "content_".$dle_module;

			$_SESSION['referrer'] = htmlspecialchars($_SERVER['REQUEST_URI'], ENT_QUOTES, $config['charset'] );
			
			if ($catalog != "") {
				
				$cache_prefix .= "_catalog_" . $catalog;
			
			} elseif ($do == "lastnews") {
				
				$cache_prefix .= "_lastnews";
			
			} elseif ($subaction == 'allnews') {

				$cache_prefix .= "_allnews_". $user;

			} elseif ($do == 'tags') {

				$cache_prefix .= "_tagscl_". $tag;

			} elseif ($do == 'xfsearch') {
				
				if($xfname) $cache_prefix .= "_xfsearch_" . $xfname . "_" . $xf;
				else $cache_prefix .= "_xfsearch_". $xf;

			} else {
				
				$cache_prefix .= "_";
				
				if ($month) $cache_prefix .= "month_" . $month;
				if ($year) $cache_prefix .= "year_" . $year;
				if ($day) $cache_prefix .= "day_" . $day;
				if ($category) $cache_prefix .= "category_" . $category;
			}
			
			$cache_prefix .= "_tempate_" . $config['skin'];

			if ($view_template == "rss") {

				if ($catalog) $active = dle_cache ( "rss", $catalog, false );				
				else $active = dle_cache ( "rss", $category_id, false );
			
			} else {
				
				if ($is_logged and ($user_group[$member_id['user_group']]['allow_edit'] and ! $user_group[$member_id['user_group']]['allow_all_edit'])) $config['allow_cache'] = false;
				if (isset($_SESSION['dle_no_cache']) AND $_SESSION['dle_no_cache']) $config['allow_cache'] = false;
				if ($cstart) $cache_id = ($cstart / $config['news_number']) + 1;
				else $cache_id = 1;
				
				$config['max_cache_pages'] = intval($config['max_cache_pages']);
				if($config['max_cache_pages'] < 3) $config['max_cache_pages'] = 3;

				if ($config['allow_cache'] AND $cache_id <= $config['max_cache_pages']) {
					$active = dle_cache( "news", $cache_id . $cache_prefix, true );
					$short_news_cache = true;
				} else {
					$active = false;
					$short_news_cache = false;
				}
			
			}
			
			if ($active) {

				$tpl->result['content'] .= $active;
				$active = null;
				$news_found = true;
				if ($config['allow_quick_wysiwyg'] and ($user_group[$member_id['user_group']]['allow_edit'] or $user_group[$member_id['user_group']]['allow_all_edit'])) $allow_comments_ajax = true;
				else $allow_comments_ajax = false;
			
			} else {
				
				include_once (DLEPlugins::Check(ENGINE_DIR . '/modules/show.short.php'));
				
				if (!$config['allow_quick_wysiwyg']) $allow_comments_ajax = false;
				
				if ($config['files_allow']) if (strpos ( $tpl->result['content'], "[attachment=" ) !== false) {
					$tpl->result['content'] = show_attach ( $tpl->result['content'], $attachments );
				}
				
				if ($view_template == "rss" AND $news_found) {
					
					if ($catalog) create_cache ( "rss", $tpl->result['content'], $catalog, false );
					else create_cache ( "rss", $tpl->result['content'], $category_id, false );
				
				} elseif ($news_found AND $cache_id <= $config['max_cache_pages'] ) create_cache ( "news", $tpl->result['content'], $cache_id . $cache_prefix, true );

			}
			
			if($tpl->result['content'] AND $canonical AND intval($_GET['cstart']) AND intval($_GET['cstart']) != 1 ) {
					
					if( $config['allow_alt_url'] ) {
						
						$canonical .= "page/".intval($_GET['cstart'])."/";
						
					} else {
						
						if ($user_query) {
							
							$canonical = "{$PHP_SELF}?cstart=".intval($_GET['cstart'])."&".str_replace('&amp;', '&', $user_query);
							
						} else $canonical = "{$PHP_SELF}?cstart=".intval($_GET['cstart']);
					}
					
			}
			
		
		}

}

/*
=====================================================
 The output of the page header
=====================================================
*/
$titl_e = '';
$nam_e = '';
$rss_url = '';
$rss_title = '';

if ($do == "cat" and $category != '' and $subaction == '') {
	
	$metatags['description'] = ($cat_info[$category_id]['descr'] != '') ? $cat_info[$category_id]['descr'] : $metatags['description'];
	$metatags['keywords'] = ($cat_info[$category_id]['keywords'] != '') ? $cat_info[$category_id]['keywords'] : $metatags['keywords'];

	if ($cat_info[$category_id]['metatitle'] != '') $metatags['header_title'] = $cat_info[$category_id]['metatitle'];
	else $nam_e = stripslashes ( $cat_info[$category_id]['name'] );
	
	if ($config['allow_alt_url'] ) {
		$rss_url = $url_page . "/" . "rss.xml";
	} else {
		$rss_url = $PHP_SELF . "?mod=rss&do=cat&category=" . $cat_info[$category_id]['alt_name'];
	}

} elseif ($subaction == 'userinfo') {
	$nam_e = $user;
	
	if ($config['allow_alt_url'] ) {
		$rss_url = $url_page . "/" . "rss.xml";
	} else {
		$rss_url = $PHP_SELF . "?mod=rss&subaction=allnews&user=" . urlencode ( $user );
	}

} elseif ($subaction == 'allnews') {
	$nam_e = $lang['show_user_news'] . ' ' . $user;
	
	if ($config['allow_alt_url']) {
		$rss_url = $config['http_home_url'] . "user/" . urlencode ( $user ) . "/" . "rss.xml";
	} else {
		$rss_url = $PHP_SELF . "?mod=rss&subaction=allnews&user=" . urlencode ( $user );
	}

} elseif ($subaction == 'newposts') $nam_e = $lang['title_new'];
elseif ($do == 'stats') $nam_e = $lang['title_stats'];
elseif ($do == 'addnews') $nam_e = $lang['title_addnews'];
elseif ($do == 'register') $nam_e = $lang['title_register'];
elseif ($do == 'favorites') $nam_e = $lang['title_fav'];
elseif ($do == 'pm') $nam_e = $lang['title_pm'];
elseif ($do == 'feedback') $nam_e = $lang['title_feed'];
elseif ($do == 'lastcomments') $nam_e = $lang['title_last'];
elseif ($do == 'lostpassword') $nam_e = $lang['title_lost'];
elseif ($do == 'search') $nam_e = $lang['title_search'];
elseif ($do == 'static') $titl_e = $static_descr;
elseif ($do == 'lastnews') $nam_e = $lang['last_news'];
elseif ($do == 'alltags') $nam_e = $lang['tag_cloud'];
elseif ($do == 'rules') $nam_e = $lang['rules_page'];
elseif ($do == 'tags') $nam_e = stripslashes($tag);
elseif ($do == 'xfsearch') $nam_e = $xf;
elseif ($catalog != "") { 
	$nam_e = $lang['title_catalog'] . ' &raquo; ' . $catalog;

	if ($config['allow_alt_url']) {
		$rss_url = $config['http_home_url'] . "catalog/" . urlencode ( $catalog ) . "/" . "rss.xml";
	} else {
		$rss_url = $PHP_SELF . "?mod=rss&catalog=" . urlencode ( $catalog );
	}

}
else {
	
	if ($year != '' and $month == '' and $day == '') $nam_e = $lang['title_date'] . ' ' . $year . ' ' . $lang['title_year'];
	if ($year != '' and $month != '' and $day == '') $nam_e = $lang['title_date'] . ' ' . $r[$month - 1] . ' ' . $year . ' ' . $lang['title_year1'];
	if ($year != '' and $month != '' and $day != '' and $subaction == '') $nam_e = $lang['title_date'] . ' ' . $day . '.' . $month . '.' . $year;
	if (($subaction != '' or $newsid != '') and $news_found) $titl_e = $metatags['title'];

}

if ( ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ) OR (isset($_GET['news_page']) AND intval($_GET['news_page']) > 1) ){

	if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ) $page_extra = ' &raquo; '.$lang['news_site'].' '.intval($_GET['cstart']);
	else $page_extra = ' &raquo; '.$lang['news_site'].' '.intval($_GET['news_page']);

} else $page_extra = '';


if ($nam_e) {

	$metatags['title'] = $nam_e . $page_extra . ' &raquo; ' . $metatags['title'];
	$rss_title = $metatags['title'];

} elseif ($titl_e) {

	$metatags['title'] = $titl_e . $page_extra . ' &raquo; ' . $config['home_title'];

} else $metatags['title'] .= $page_extra;

if ( $metatags['header_title'] ) $metatags['title'] = stripslashes($metatags['header_title'].$page_extra);

if (! $rss_url) {
	
	if ($config['allow_alt_url']) {
		$rss_url = $config['http_home_url'] . "rss.xml";
	} else {
		$rss_url = $PHP_SELF . "?mod=rss";
	}
	
	$rss_title = $config['home_title'];
}

$s_meta = "";

if ( count($social_tags) ) {

	foreach ($social_tags as $key => $value) {
		
		$value=str_replace(array("{", "}", "[", "]"),"",$value);

		if( $key == "news_keywords" ) {
			$s_meta .= "<meta name=\"{$key}\" content=\"{$value}\">
";
		} else {
			$s_meta .= "<meta property=\"og:{$key}\" content=\"{$value}\">
";
		}

	}
}

if ( $disable_index ) $metatags['robots'] = "noindex,nofollow";

if( $config['allow_own_meta'] ) {
	
	if(is_array($custom_metatags['simple']) AND count($custom_metatags['simple']) AND $custom_metatags['simple'][$r_uri] ) {
		if( $custom_metatags['simple'][$r_uri]['title'] ) $metatags['title'] = $custom_metatags['simple'][$r_uri]['title'];
		if( $custom_metatags['simple'][$r_uri]['description'] ) $metatags['description'] = $custom_metatags['simple'][$r_uri]['description'];
		if( $custom_metatags['simple'][$r_uri]['keywords'] ) $metatags['keywords'] = $custom_metatags['simple'][$r_uri]['keywords'];
		if( $custom_metatags['simple'][$r_uri]['robots'] ) $metatags['robots'] = $custom_metatags['simple'][$r_uri]['robots'];
	}
	
	if(is_array($custom_metatags['regex']) AND count($custom_metatags['regex'])) {	
		foreach ($custom_metatags['regex'] as $key => $value) {
			if(preg_match($key, $r_uri)){
				if( $value['title'] ) $metatags['title'] = $value['title'];
				if( $value['description'] ) $metatags['description'] = $value['description'];
				if( $value['keywords'] ) $metatags['keywords'] = $value['keywords'];
				if( $value['robots'] ) $metatags['robots'] = $value['robots'];
		    }
		}
	}

}

$metatags['title']=str_replace(array("{", "}", "[", "]"), "", $metatags['title']);
$metatags['description']=str_replace(array("{", "}", "[", "]"), "", $metatags['description']);
$metatags['keywords']=str_replace(array("{", "}", "[", "]"), "", $metatags['keywords']);
$metatags['robots']=str_replace(array("{", "}", "[", "]"), "", $metatags['robots']);

if( $metatags['robots'] ) $robots_meta = "
<meta name=\"robots\" content=\"{$metatags['robots']}\">";
else $robots_meta = "";

$metatags = <<<HTML
<meta charset="{$config['charset']}">
<title>{$metatags['title']}</title>
<meta name="description" content="{$metatags['description']}">
<meta name="keywords" content="{$metatags['keywords']}">{$robots_meta}
<meta name="generator" content="DataLife Engine (http://dle-news.ru)">
{$s_meta}<link rel="search" type="application/opensearchdescription+xml" href="{$PHP_SELF}?do=opensearch" title="{$config['home_title']}">
HTML;

if ($canonical) {
	
	if (strpos($canonical, "//") === 0) $canonical = "https:".$canonical;
	elseif (strpos($canonical, "/") === 0) $canonical = "http://".$_SERVER['HTTP_HOST'].$canonical;

	$metatags .= "
<link rel=\"canonical\" href=\"{$canonical}\">";

}

if ($config['allow_rss']) $metatags .= "<link rel=\"alternate\" type=\"application/rss+xml\" title=\"{$rss_title}\" href=\"{$rss_url}\">";

/*
=====================================================
 speedbar creation
=====================================================
*/

if ($config['speedbar'] AND !$view_template ) {
	
	$s_navigation = "<span itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\"><meta itemprop=\"position\" content=\"1\"><a href=\"{$config['http_home_url']}\" itemprop=\"item\"><span itemprop=\"name\">" . $config['short_title'] . "</span></a></span>";

	if( $config['start_site'] == 3 AND $_SERVER['QUERY_STRING'] == "" AND !$_POST['do']) $titl_e = "";

	if (intval($category_id)){
		
		if($titl_e OR (isset($_GET['cstart']) AND intval($_GET['cstart']) > 1) ) {
			$last_link = true;
		} else $last_link = false;
		
		$s_navigation .= " {$config['speedbar_separator']} " . get_breadcrumbcategories ( intval($category_id), $config['speedbar_separator'], $last_link );
		
	} elseif ($do == 'tags') {
		
		if ($config['allow_alt_url']) $s_navigation .= " {$config['speedbar_separator']} <span itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\"><meta itemprop=\"position\" content=\"2\"><a href=\"" . $config['http_home_url'] . "tags/\" itemprop=\"item\"><span itemprop=\"name\">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;
		else $s_navigation .= " {$config['speedbar_separator']} <span itemprop=\"itemListElement\" itemscope itemtype=\"https://schema.org/ListItem\"><meta itemprop=\"position\" content=\"2\"><a href=\"?do=tags\" itemprop=\"item\"><span itemprop=\"name\">" . $lang['tag_cloud'] . "</span></a></span> {$config['speedbar_separator']} " . $tag;

	} elseif ($nam_e) $s_navigation .= " {$config['speedbar_separator']} " . $nam_e;

	if ($titl_e) {
		
		$s_navigation .= " {$config['speedbar_separator']} " . $titl_e;
		
	} else {

		if ( isset($_GET['cstart']) AND intval($_GET['cstart']) > 1 ){
		
			$page_extra = " {$config['speedbar_separator']} ".$lang['news_site']." ".intval($_GET['cstart']);
		
		} else $page_extra = '';

		$s_navigation .= $page_extra;

	}
	
	$tpl->load_template ( 'speedbar.tpl' );
	$tpl->set ( '{speedbar}', '<span id="dle-speedbar" itemscope itemtype="https://schema.org/BreadcrumbList">' . stripslashes ( $s_navigation ) . '</span>' );
	$tpl->compile ( 'speedbar' );
	$tpl->clear ();

}
?>

Did this file decode correctly?

Original Code

<?php
/*
=====================================================
 DataLife Engine - by SoftNews Media Group 
-----------------------------------------------------
 http://dle-news.ru/
-----------------------------------------------------
 Copyright (c) 2004,2019 SoftNews Media Group
=====================================================
*/
?><?php $_F=__FILE__;$_X='P2NaP11KXQ10ZyoNdHJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyDXRsTzAxMFRBeVhsYWtiQWtYbC1sMiBsc0t5MWZYR3VsN1hNQTBsTnFLLn1sDXQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ10bEYxMX06Z2dNUlgta1hHdWVxLmcNdC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDXRsUUt9IHFBYkYxbChJKWxECgpXLUQKVT1sc0t5MWZYR3VsN1hNQTBsTnFLLn0NdHJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyDXRsbUZBdWxJS01YbEF1bH1xSzFYSTFYTWwyIGxJS30gcUFiRjENdHJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyDXRsL0FSWDpsWGtiQWtYZX1GfQ10cnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnINdCpnDXQNdEF5bCghTVh5QWtYTSgnT25tblR7L2FhZk57ZmEnKSlsaQ10CU1BWGwobCJKMEk1QWtibDAxMVg0fTEhImwpOw10dw10DXRBeWwoJEl1MTBxMWxabAopbCRJdTEwcTFscmwKOw10DXQkUWZfSm5UbWxybHkwUnVYOw10JDBSUktHXzBNTV9JSzQ0WGsxbHJseTBSdVg7DXQkMFJSS0dfMEkxQVZYX2tYR3VscmwxcS5YOw10JDBSUktHX0lLNDRYazF1bHJseTBSdVg7DXQkMFJSS0dfLnVYcUFreUtscmx5MFJ1WDsNdCQwSTFBVlhscmx5MFJ1WDsNdCRNQXUwMlJYX0FrTVhQbHJseTBSdVg7DXQkdUtJQTBSXzEwYnVscmwwcXEwICgpOw10JEkwa0trQUkwUmxybHkwUnVYOw10JC5xUl99MGJYbHJseTBSdVg7DXQkLnVYcV94LlhxIGxybHkwUnVYOw10JGtYR3VfMC4xRktxbHJseTBSdVg7DXQkMDExMElGNFhrMXVscmwwcXEwIGwoKTsNdCR1RktxMV9rWEd1X0kwSUZYbHJseTBSdVg7DXQNdHVHQTFJRmwobCRNS2wpbGkNdAkNdAlJMHVYbCJ1WDBxSUYibDoNdAkJDXQJCUF5bCgkX0VhcHZhc20+JzRLTVgnU2xycmwiME1WMGtJWE0iKWwkX0VhcHZhc20+J3kuUlJfdVgwcUlGJ1NscmxVOw10CQlBa0lSLk1YbChPVGFdUi5iQWt1OjpRRlhJNShhZk57ZmFfT3tFbGVsJ2c0S00uUlh1Z3VYMHFJRmV9Rn0nKSk7DXQJCTJxWDA1Ow10DXQJSTB1WGwiSUYwa2JYNDBBUiJsOg10CQlBa0lSLk1YbChPVGFdUi5iQWt1OjpRRlhJNShhZk57ZmFfT3tFbGVsJ2c0S00uUlh1Z0lGMGtiWDQwQVJlfUZ9JykpOw10CQkycVgwNTsNdAkNdAlJMHVYbCJNWFJYMVhrWEd1Imw6DXQJCUFrSVIuTVhsKE9UYV1SLmJBa3U6OlFGWEk1KGFmTntmYV9Pe0VsZWwnZzRLTS5SWHVnTVhSWDFYa1hHdWV9Rn0nKSk7DXQJCTJxWDA1Ow10DXQJSTB1WGwiSUs0NFhrMXUibDoNdAkJQWtJUi5NWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWdJSzQ0WGsxdWV9Rn0nKSk7DXQJCTJxWDA1Ow10CQ10CUkwdVhsInUxMDF1Imw6DXQJCUFrSVIuTVhsKE9UYV1SLmJBa3U6OlFGWEk1KGFmTntmYV9Pe0VsZWwnZzRLTS5SWHVndTEwMXVlfUZ9JykpOw10CQkycVgwNTsNdAkNdAlJMHVYbCIwTU1rWEd1Imw6DXQJCUFrSVIuTVhsKE9UYV1SLmJBa3U6OlFGWEk1KGFmTntmYV9Pe0VsZWwnZzRLTS5SWHVnME1Na1hHdWV9Rn0nKSk7DXQJCTJxWDA1Ow10CQ10CUkwdVhsInFYYkF1MVhxImw6DXQJCUFrSVIuTVhsKE9UYV1SLmJBa3U6OlFGWEk1KGFmTntmYV9Pe0VsZWwnZzRLTS5SWHVncVhiQXUxWHFlfUZ9JykpOw10CQkycVgwNTsNdAkNdAlJMHVYbCJSS3UxfTB1dUdLcU0ibDoNdAkJQWtJUi5NWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWdSS3UxfTB1dUdLcU1lfUZ9JykpOw10CQkycVgwNTsNdAkNdAlJMHVYbCJxLlJYdSJsOg10CQkkX05hbT4nfTBiWCdTbHJsIk1SWC1xLlJYdS19MGJYIjsNdAkJQWtJUi5NWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWd1MTAxQUllfUZ9JykpOw10CQkycVgwNTsNdAkNdAlJMHVYbCJ1MTAxQUkibDoNdAkJQWtJUi5NWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWd1MTAxQUllfUZ9JykpOw10CQkycVgwNTsNdAkNdAlJMHVYbCIwUlIxMGJ1Imw6DXQJCUFrSVIuTVhfS2tJWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWcxMGJ1SVJLLk1lfUZ9JykpOw10CQkycVgwNTsNdA10CUkwdVhsIjAuMUYtdUtJQTBSImw6DXQJCUFrSVIuTVhfS2tJWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWd1S0lBMFJlfUZ9JykpOw10CQkycVgwNTsNdAkNdAlJMHVYbCJ5MFZLcUExWHUibDoNdAkJDXQJCUF5bCgkQXVfUktiYlhNKWxpDXQJCQkNdAkJCSRJS2t5QWI+JzBSUktHX0kwSUZYJ1Nscmx5MFJ1WDsNdAkJCQ10CQkJQWtJUi5NWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWd5MFZLcUExWHVlfUZ9JykpOw10CQkNdAkJd2xYUnVYbGkNdAkJCQ10CQkJQEZYME1YcShsIkptbV1nVWVVbFcKWWwvS3EyQU1NWGsibCk7DXQJCQk0dWIyS1BsKGwkUjBrYj4nMFJSX1hxcV9VJ1MsbCRSMGtiPid5MFZfWHFxS3EnU2wpOw10CQkJDXQJCXcNdAkJCQ10CQkycVgwNTsNdAkNdAlJMHVYbCJ5WFhNMjBJNSJsOg10CQlBa0lSLk1YbChPVGFdUi5iQWt1OjpRRlhJNShhZk57ZmFfT3tFbGVsJ2c0S00uUlh1Z3lYWE0yMEk1ZX1GfScpKTsNdAkJMnFYMDU7DXQJDXQJSTB1WGwiUjB1MUlLNDRYazF1Imw6DXQJCUFrSVIuTVhsKE9UYV1SLmJBa3U6OlFGWEk1KGFmTntmYV9Pe0VsZWwnZzRLTS5SWHVnUjB1MUlLNDRYazF1ZX1GfScpKTsNdAkJMnFYMDU7DXQJDXQJSTB1WGwifTQibDoNdAkJQWtJUi5NWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWd9NGV9Rn0nKSk7DXQJCTJxWDA1Ow10DXQJSTB1WGwiLmt1LjJ1SXFBMlgibDoNdAkJJF9OYW0+J31LdTFfQU0nU2xybEFrMVYwUmwoJF9OYW0+J31LdTFfQU0nUyk7DXQJCSRfTmFtPicudVhxX0FNJ1NscmxBazFWMFJsKCRfTmFtPicudVhxX0FNJ1MpOw10DXQJCUF5bCgkX05hbT4nfUt1MV9BTSdTbG5mT2wkX05hbT4nLnVYcV9BTSdTbG5mT2wkX05hbT4nRjB1RidTKWxpDXQNdAkJCSRxS0dscmwkTTItY3UufVhxX3guWHEgKGwic2FUYVFtbEYwdUZsL0UzN2wibGVsXUVhL3s4bGVsIl91LjJ1SXFBMlhsekphRWFsa1hHdV9BTXInaSRfTmFtPid9S3UxX0FNJ1N3J2xuZk9sLnVYcV9BTXInaSRfTmFtPicudVhxX0FNJ1N3JyJsKTsNdA10CQkJQXlsKCRxS0c+J0YwdUYnU2xuZk9sJHFLRz4nRjB1RidTbHJybCRfTmFtPidGMHVGJ1MpbGkNdA10CQkJCSRNMi1jeC5YcSAobCJPYVRhbWFsL0UzN2wibGVsXUVhL3s4bGVsIl91LjJ1SXFBMlhsekphRWFsa1hHdV9BTXInaSRfTmFtPid9S3UxX0FNJ1N3J2xuZk9sLnVYcV9BTXInaSRfTmFtPicudVhxX0FNJ1N3JyJsKTsNdAkJCQk0dWIyS1AobCRSMGtiPicwUlJfQWt5SydTLGxsJFIwa2I+Jy5rdS4ydUlxQTJYX0s1J1MpOw10DXQJCQl3bFhSdVhsaQ10CQkJCTR1YjJLUChsJFIwa2I+JzBSUl9Ba3lLJ1MsbGwkUjBrYj4nLmt1LjJ1SXFBMlhfWHFxJ1MpOw10CQkJdw10DXQJCXdsWFJ1WGxpDXQJCQk0dWIyS1AobCRSMGtiPicwUlJfQWt5SydTLGxsJFIwa2I+Jy5rdS4ydUlxQTJYX1hxcSdTKTsNdAkJdw10DXQJCTJxWDA1Ow10CQ10CUkwdVhsImtYR3VSWDExWHEua3UuMnVJcUEyWCJsOg10CQkNdAkJJF9OYW0+Jy51WHFfQU0nU2xybEFrMVYwUmwoJF9OYW0+Jy51WHFfQU0nUyk7DXQNdAkJQXlsKCRfTmFtPicudVhxX0FNJ1NsbmZPbCRfTmFtPidGMHVGJ1MpbGkNdA10CQkJJHFLR2xybCRNMi1jdS59WHFfeC5YcSAobCJzYVRhUW1sfTB1dUdLcU0sbC51WHFfQU1sL0UzN2wibGVsdnNhRV1FYS97OGxlbCJfLnVYcXVsekphRWFsLnVYcV9BTXInaSRfTmFtPicudVhxX0FNJ1N3JyJsKTsNdAkJCQ10CQkJQXlsKCRxS0c+Jy51WHFfQU0nUylsaQ10CQkJCQ10CQkJCSQua3UuMnVJcUEyWF9GMHVGbHJsNE08KGxzYVF2RWFfbnZtSl9vYUNsZWwkX3NhRUhhRT4nSm1tXV9KM3NtJ1NsZWwkcUtHPicudVhxX0FNJ1NsZWx1RjBVKGx1LjJ1MXEoJHFLRz4nfTB1dUdLcU0nUyxsCixsWylsKWxlbCRJS2t5QWI+JzVYICdTbCk7DXQJDXQJCQkJQXlsKCQua3UuMnVJcUEyWF9GMHVGbHJybCRfTmFtPidGMHVGJ1MpbGkNdAkNdAkJCQkJJE0yLWN4LlhxIChsInZdT25tYWwibGVsdnNhRV1FYS97OGxlbCJfLnVYcXVsc2FtbDBSUktHXzQwQVJyJwonbHpKYUVhbC51WHFfQU1scmwnaSRfTmFtPicudVhxX0FNJ1N3JyJsKTsNdAkJCQkJDXQJCQkJCTR1YjJLUChsJFIwa2I+JzBSUl9Ba3lLJ1MsbGwkUjBrYj4na18ua3UuMnVJcUEyWF9LNSdTKTsNdAkNdAkJCQl3bFhSdVhsaQ10CQkJCQkNdAkJCQkJNHViMktQKGwkUjBrYj4nMFJSX0FreUsnUyxsbCRSMGtiPidrXy5rdS4ydUlxQTJYX1hxcSdTKTsNdAkJCQkJDXQJCQkJdw10CQkJCQ10CQkJd2xYUnVYbGkNdAkJCQk0dWIyS1AobCRSMGtiPicwUlJfQWt5SydTLGxsJFIwa2I+J2tfLmt1LjJ1SXFBMlhfWHFxJ1MpOw10CQkJdw10DXQJCXdsWFJ1WGxpDXQJCQk0dWIyS1AobCRSMGtiPicwUlJfQWt5SydTLGxsJFIwa2I+J2tfLmt1LjJ1SXFBMlhfWHFxJ1MpOw10CQl3DXQNdAkJMnFYMDU7DXQJDXQJTVh5MC5SMWw6DXQJCQ10CQkkQXVfNDBBa2xybAo7DXQJCSQwSTFBVlhscmx5MFJ1WDsNdAkJJC51WHFfeC5YcSBscmwiIjsNdAkJJC5xUl99MGJYbHJsIiI7DXQJCQ10CQkkMUZBdU0wMVhscmxNMDFYbChsIkMtNC1NbEo6QTp1IixsMUE0WGwoKWwpOw10CQlBeWwoJElLa3lBYj4na0tfTTAxWCdTbG5mT2whJElLa3lBYj4na1hHdV95LjEucVgnUylsJEdGWHFYX00wMVhscmwibG5mT2xNMDFYbFpsJyJsZWwkMUZBdU0wMVhsZWwiJyI7DXQJCVhSdVhsJEdGWHFYX00wMVhscmwiIjsNdAkJDXQJCUF5bCgkSUtreUFiPicwUlJLR195QVBYTSdTKWwkeUFQWE1scmwieUFQWE1sTVh1SSxsIjsNdAkJWFJ1WGwkeUFQWE1scmwiIjsNdAkJDXQJCSRJS2t5QWI+J2tYR3Vfay40MlhxJ1NscmxBazFWMFJsKGwkSUtreUFiPidrWEd1X2suNDJYcSdTbCk7DXQNdAkJQXlsKGwkdTQwcTF9RktrWF9NWDFYSTFYTWxuZk9sJElLa3lBYj4nNEsyQVJYX2tYR3UnU2wpbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1NscmxBazFWMFJsKGwkSUtreUFiPic0SzJBUlhfa1hHdSdTbCk7DXQJCQ10CQkka1hHdV91S3ExXzIgbHJsKCRJS2t5QWI+J2tYR3VfdUtxMSdTKWw/bCRJS2t5QWI+J2tYR3VfdUtxMSdTbDpsIk0wMVgiOw10CQkka1hHdV9NQXFYSTFBS2tfMiBscmwoJElLa3lBYj4na1hHdV80dUtxMSdTKWw/bCRJS2t5QWI+J2tYR3VfNHVLcTEnU2w6bCJPYXNRIjsNdA10CQkkMFJSS0dfUkF1MWxybFhQfVJLTVhsKGwnLCcsbCQudVhxX2JxSy59PiQ0WDQyWHFfQU0+Jy51WHFfYnFLLn0nU1M+JzBSUktHX0kwMXUnU2wpOw10CQkkdTFLfV9SQXUxbHJsIiI7DXQJCSRJMDFfaEtBa2xybCIiOw10CQkkSTAxX2hLQWtfSUsuazFscmwiIjsNdAkJDXQJCUF5bCgkMFJSS0dfUkF1MT4KU2whcmwiMFJSIilsaQ10CQkJDXQJCQlBeWwoJElLa3lBYj4nMFJSS0dfNC5SMUFfSTAxWGJLcSAnUylsaQ10CQkJCQ10CQkJCSRJMDFfaEtBa2xybCJ7ZmZhRWxMM3tmbChzYVRhUW1sT3tzbXtmUW0oImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVfSTAxdWVrWEd1X0FNKWwvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1X0kwMXVsekphRWFsSTAxX0FNbHtmbCgibGVsQTR9UktNWGwobCcsJyxsJDBSUktHX1JBdTFsKWxlbCIpKWxJbDNmbCh9ZUFNcklla1hHdV9BTSlsIjsNdAkJCQkkSTAxX2hLQWtfSUsuazFscmwifWwiZSRJMDFfaEtBazsNdAkJCQ10CQkJd2xYUnVYbGkNdAkJCQkNdAkJCQkkdTFLfV9SQXUxbHJsIkkwMVhiS3EgbHtmbCgnImxlbEE0fVJLTVhsKGwiJywnIixsJDBSUktHX1JBdTFsKWxlbCInKWxuZk9sIjsNdAkJCQ10CQkJdw10CQkNdAkJdw10CQkNdAkJJGtLMV8wUlJLR19JMDF1bHJsWFB9UktNWGwobCcsJyxsJC51WHFfYnFLLn0+JDRYNDJYcV9BTT4nLnVYcV9icUsufSdTUz4na0sxXzBSUktHX0kwMXUnU2wpOw10CQkNdAkJQXkobCRrSzFfMFJSS0dfSTAxdT4KU2whcmwiImwpbGkNdAkJCQ10CQkJQXlsKCRJS2t5QWI+JzBSUktHXzQuUjFBX0kwMVhiS3EgJ1MpbGkNdAkJCQkNdAkJCQkkdTFLfV9SQXUxbHJsIn1lQU1sZjNtbHtmbChsc2FUYVFtbE97c217ZlFtKCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1X0kwMXVla1hHdV9BTSlsL0UzN2wibGVsXUVhL3s4bGVsIl99S3UxX1hQMXEwdV9JMDF1bHpKYUVhbEkwMV9BTWx7ZmwoImxlbEE0fVJLTVhsKGwnLCcsbCRrSzFfMFJSS0dfSTAxdWwpbGVsIilsKWxuZk9sIjsNdAkJCQkkSTAxX2hLQWtfSUsuazFscmwifWwiOw10CQkJCQ10CQkJd2xYUnVYbGkNdAkJCQkNdAkJCQkkdTFLfV9SQXUxbHJsIkkwMVhiS3EgbGYzbWx7ZmwoJyJsZWxBNH1SS01YbChsIicsJyIsbCRrSzFfMFJSS0dfSTAxdWwpbGVsIicpbG5mT2wiOw10CQkJDXQJCQl3DXQJCQkNdAkJdw10CQkNdAkJQXlsKCQudVhxX2JxSy59PiQ0WDQyWHFfQU0+Jy51WHFfYnFLLn0nU1M+JzBSUktHX3VGS3ExJ1MpbGlsJHUxS31fUkF1MWxybCIiO2wkSTAxX2hLQWtscmwiIjtsJEkwMV9oS0FrX0lLLmsxbHJsIiI7bHcNdAkJDXQJCSR1eFJfdVhSWEkxbHJsInNhVGFRbWx9ZUFNLGx9ZTAuMUtxLGx9ZU0wMVgsbH1ldUZLcTFfdTFLcSAsbFFKbkVfVGFmTm1KKH1leS5SUl91MUtxIClsMHVseS5SUl91MUtxICxsfWVQeUFYUk11LGx9ZTFBMVJYLGx9ZUkwMVhiS3EgLGx9ZTBSMV9rMDRYLGx9ZUlLNDRfay40LGx9ZTBSUktHX0lLNDQsbH1leUFQWE0sbH1lMTBidSxsWGVrWEd1X3FYME0sbFhlMFJSS0dfcTAxWCxsWGVxMDFBa2IsbFhlVksxWF9rLjQsbFhlVksxWHUsbFhlVkFYR19YTUExLGxYZVhNQTFNMDFYLGxYZVhNQTFLcSxsWGVxWDB1S2tsL0UzN2wibGVsXUVhL3s4bGVsIl99S3UxbH1saSRJMDFfaEtBa3dUYS9tbEwze2ZsImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVsWGwzZmwofWVBTXJYZWtYR3VfQU0pbHpKYUVhbGkkdTFLfV9SQXUxdzB9fXFLVlhyVWxuZk9sMFJSS0dfNDBBa3JVImxlbCRHRlhxWF9NMDFYbGVsImwzRU9hRWxCQ2wibGVsJHlBUFhNbGVsJGtYR3VfdUtxMV8yIGxlbCJsImxlbCRrWEd1X01BcVhJMUFLa18yIGxlbCJsVHs3e21sImxlbCRJdTEwcTFsZWwiLCJsZWwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10DXQJCSR1eFJfSUsuazFscmwic2FUYVFtbFEzdmZtKCopbDB1bElLLmsxbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWxpJEkwMV9oS0FrX0lLLmsxd3pKYUVhbGkkdTFLfV9SQXUxdzB9fXFLVlhyVWxuZk9sMFJSS0dfNDBBa3JVImxlbCRHRlhxWF9NMDFYOw10CQkkdXhSX2tYR3VscmwiIjsNdAkJDXQJCWdnbCMjIyMjIyMjIyMjIyMjIyNsc0ZLR2xLeWwwbEkwMVhiS3EgbCMjIyMjIyMjIyMjIyMjIyMjDXQJCUF5bCgkTUtscnJsIkkwMSJsMGtNbCRJMDFYYktxIGwhcmwnJ2wwa01sJHUuMjBJMUFLa2xycmwnJylsaQ10DXQJCQkkMFJSS0dfdS4yX0kwMXVscmwxcS5YOw10CQkJDXQJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbG5mT2wkSUtreUFiPid1WEtfSUtrMXFLUidTbG5mT2wkSTAxWGJLcSBfQU1sbmZPbCRWQVhHXzFYNH1SMDFYbCFybCJxdXUiKWxpDXQNdAkJCQkkcVhfSTAxbHJsYlgxXy5xUihsJEkwMVhiS3EgX0FNbCk7DXQNdAkJCQlBeWwoJHFYX0kwMWwhcmwkX05hbT4nSTAxWGJLcSAnU2wzRWx1LjJ1MXFsKGwkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsLWxVLGxVbClsIXJsJ2cnbDNFbCRfTmFtPidJdTEwcTEnU2xycmxVbDNFbHUuMnUxcWwobCRfc2FFSGFFPidFYXB2YXNtX3ZFeydTLGwtbERsKWxycmwnZ2cnbDNFbHUxcX1LdWwoJF9zYUVIYUU+J0VhcHZhc21fdkV7J1MsbCJNS3JJMDEibClsIXJybHkwUnVYbClsaQ10CQkJCQkkcVhfLnFSbHJsWFB9UktNWGwobCJBa01YUGV9Rn0iLGx1MXExS1JLR1hxbChsJF9zYUVIYUU+J11KXV9zYVQvJ1NsKWwpOw10CQkJCQkkcVhfLnFSbHJscVh1WDFsKGwkcVhfLnFSbCk7DXQNdAkJCQkJQXkobCh1LjJ1MXFsKGwkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsLWxVLGxVbClsIXJsJ2cnbDNFbHUuMnUxcWwobCRfc2FFSGFFPidFYXB2YXNtX3ZFeydTLGwtbERsKWxycmwnZ2cnKWxuZk9sJF9OYW0+J0l1MTBxMSdTbG5mT2wkX05hbT4nSXUxMHExJ1NsIXJsVWwpbGkNdAkJCQkJbCRxWF9JMDFsZXJsImd9MGJYZyJlQWsxVjBSKCRfTmFtPidJdTEwcTEnUyk7DXQJCQkJCXcNdAkJCQkJDXQJCQkJCUZYME1YcSgiSm1tXWdVZQpsWQpVbDdLVlhNbF1YcTQwa1hrMVIgIik7DXQJCQkJCUZYME1YcSgiVEtJMDFBS2s6bGkkcVhfLnFSd2kkcVhfSTAxd2ciKTsNdAkJCQkJTUFYKCJFWE1BcVhJMSIpOw10CQkJCXcNdAkJCXcNdA10CQkJQXlsKCEkSTAxWGJLcSBfQU0pbCRJMDFYYktxIF9BTWxybCdrSzFsTVgxWEkxWE0nOw10CQkJDXQJCQlBeWwoJDBSUktHX1JBdTE+ClNsIXJsIjBSUiIpbGkNdAkJCQlBeWwoISQudVhxX2JxSy59PiQ0WDQyWHFfQU0+Jy51WHFfYnFLLn0nU1M+JzBSUktHX3VGS3ExJ1NsbmZPbCFBa18wcXEwIChsJEkwMVhiS3EgX0FNLGwkMFJSS0dfUkF1MWwpKWwkSTAxWGJLcSBfQU1scmwna0sxbE1YMVhJMVhNJzsNdAkJCXcNdA10CQkJQXlsKCRrSzFfMFJSS0dfSTAxdT4KU2whcmwiIilsaQ10CQkJCUF5bCghJC51WHFfYnFLLn0+JDRYNDJYcV9BTT4nLnVYcV9icUsufSdTUz4nMFJSS0dfdUZLcTEnU2xuZk9sQWtfMHFxMCAobCRJMDFYYktxIF9BTSxsJGtLMV8wUlJLR19JMDF1bCkpbCRJMDFYYktxIF9BTWxybCdrSzFsTVgxWEkxWE0nOw10CQkJdw10DXQJCQlBeShsIUFrMVYwUigkSTAxWGJLcSBfQU0pbClsaQ10CQkJCSQwUlJLR18wSTFBVlhfa1hHdWxybHkwUnVYOw10CQkJdw10CQkJDXQJCQlBeWwobCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPid1RktHX3UuMidTbClsaQ10DXQJCQkJQXlsKGwkSTAxX0FreUs+JEkwMVhiS3EgX0FNUz4ndUZLR191LjInU2xycmxVbClsJGJYMV9JMDF1bHJsYlgxX3UuMl9JMDF1bChsJEkwMVhiS3EgX0FNbCk7DXQJCQkJWFJ1WGxpbCRiWDFfSTAxdWxybCRJMDFYYktxIF9BTTtsJDBSUktHX3UuMl9JMDF1bHJseTBSdVg7bHcNdA10CQkJd2xYUnVYbGkNdA10CQkJCUF5bChsJElLa3lBYj4ndUZLR191LjJfSTAxdSdTbClsJGJYMV9JMDF1bHJsYlgxX3UuMl9JMDF1bChsJEkwMVhiS3EgX0FNbCk7DXQJCQkJWFJ1WGxpbCRiWDFfSTAxdWxybCRJMDFYYktxIF9BTTtsJDBSUktHX3UuMl9JMDF1bHJseTBSdVg7bHcNdA10CQkJdw10DXQJCQlBeWwoJEkwMV9Ba3lLPiRJMDFYYktxIF9BTVM+J2tYR3VfdUtxMSdTKWwka1hHdV91S3ExXzIgbHJsJEkwMV9Ba3lLPiRJMDFYYktxIF9BTVM+J2tYR3VfdUtxMSdTOw10CQkJQXlsKCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPidrWEd1XzR1S3ExJ1MpbCRrWEd1X01BcVhJMUFLa18yIGxybCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPidrWEd1XzR1S3ExJ1M7DXQJCQlBeWwoJEkwMV9Ba3lLPiRJMDFYYktxIF9BTVM+J2tYR3Vfay40MlhxJ1MpbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1NscmwkSTAxX0FreUs+JEkwMVhiS3EgX0FNUz4na1hHdV9rLjQyWHEnUzsNdA10CQkJQXlsKCRJdTEwcTEpbGkNdAkJCQkkSXUxMHExbHJsJEl1MTBxMWwtbFU7DXQJCQkJJEl1MTBxMWxybCRJdTEwcTFsKmwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJdw10DXQJCQkkLnFSX30wYlhscmwkSUtreUFiPidGMTF9X0ZLNFhfLnFSJ1NsZWxiWDFfLnFSbChsJEkwMVhiS3EgX0FNbCk7DXQJCQkkLnVYcV94LlhxIGxybCJNS3JJMDEmMDR9O0kwMVhiS3EgciJsZWwkSTAxX0FreUs+JEkwMVhiS3EgX0FNUz4nMFIxX2swNFgnUzsNdAkJCQ10CQkJQXkobCRJS2t5QWI+JzBSUktHXzBSMV8ucVInU2wpbCRJMGtLa0FJMFJscmwkLnFSX30wYlhsZWwiZyI7bFhSdVhsJEkwa0trQUkwUmxybCRdSl1fc2FUL2UiP01LckkwMSZJMDFYYktxIHIibGVsJEkwMV9Ba3lLPiRJMDFYYktxIF9BTVM+JzBSMV9rMDRYJ1M7DXQJCQkNdAkJCUF5bCgkSUtreUFiPicwUlJLR180LlIxQV9JMDFYYktxICdTKWxpDXQJCQ10CQkJCSRiWDFfSTAxdWxybHUxcV9xWH1SMElYbChsInwiLGwiJywnIixsJGJYMV9JMDF1bCk7DXQJCQkJJGhLQWtfSTAxWGJLcSBscmwie2ZmYUVsTDN7Zmwoc2FUYVFtbE97c217ZlFtKCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1X0kwMXVla1hHdV9BTSlsL0UzN2wibGVsXUVhL3s4bGVsIl99S3UxX1hQMXEwdV9JMDF1bHpKYUVhbEkwMV9BTWx7ZmwoJyJsZWwkYlgxX0kwMXVsZWwiJykpbElsM2ZsKH1lQU1ySWVrWEd1X0FNKWwiOw10CQkJCSRHRlhxWF9JMDFYYktxIGxybCIiOw10CQkJCQ10CQkJd2xYUnVYbGkNdAkJCQkNdAkJCQlBeWwobCQwUlJLR191LjJfSTAxdWwpbGkNdAkJCQkJDXQJCQkJCSRiWDFfSTAxdWxybHUxcV9xWH1SMElYbChsInwiLGwiJywnIixsJGJYMV9JMDF1bCk7DXQJCQkJCSRHRlhxWF9JMDFYYktxIGxybCJJMDFYYktxIGx7ZmwoJyJsZWwkYlgxX0kwMXVsZWwiJylsbmZPbCI7DXQJCQkJDXQJCQkJd2xYUnVYbGkNdAkJCQkJDXQJCQkJCSRHRlhxWF9JMDFYYktxIGxybCJJMDFYYktxIGxybCdpJGJYMV9JMDF1dydsbmZPbCI7DXQJCQkJDXQJCQkJdw10CQkJCQ10CQkJCSRoS0FrX0kwMVhiS3EgbHJsIiI7DXQJCQkNdAkJCXcNdAkJCQ10CQkJQXlsKCRWQVhHXzFYNH1SMDFYbHJybCJxdXUiKWxpDXQJCQkJDXQJCQkJJHV4Ul91WFJYSTFscmwic2FUYVFtbH1lQU0sbH1lMC4xS3EsbH1lTTAxWCxsfWV1RktxMV91MUtxICxsfWV5LlJSX3UxS3EgLGx9ZVB5QVhSTXUsbH1lMUExUlgsbH1lSTAxWGJLcSAsbH1lMFIxX2swNFgsbFhlMFJSS0dfcXV1XzEucTJLLGxYZTBSUktHX3F1dV9NalhrbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWx9bGkkaEtBa19JMDFYYktxIHdUYS9tbEwze2ZsImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVsWGwzZmwofWVBTXJYZWtYR3VfQU0pbHpKYUVhbGkkR0ZYcVhfSTAxWGJLcSB3MH19cUtWWHJVbG5mT2wwUlJLR19xdXVyVSJsZWwkR0ZYcVhfTTAxWGxlbCJsM0VPYUVsQkNsTTAxWGxPYXNRbFR7N3ttbAosImxlbCRJS2t5QWI+J3F1dV9rLjQyWHEnUzsNdAkJCQ10CQkJd2xYUnVYbGkNdAkJCQkNdAkJCQlBeWwoQXV1WDFsKGwkX3Nhc3N7M2Y+J01SWF91S3ExX0kwMV8nZSRJMDFYYktxIF9BTVNsKSlsJGtYR3VfdUtxMV8yIGxybCRfc2Fzc3szZj4nTVJYX3VLcTFfSTAxXydlJEkwMVhiS3EgX0FNUzsNdAkJCQlBeWwoQXV1WDFsKGwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfSTAxXydlJEkwMVhiS3EgX0FNU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfSTAxXydlJEkwMVhiS3EgX0FNUzsNdAkJCQkNdAkJCQkkdXhSX3VYUlhJMWxybCJzYVRhUW1sfWVBTSxsfWUwLjFLcSxsfWVNMDFYLGx9ZXVGS3ExX3UxS3EgLGxRSm5FX1RhZk5tSih9ZXkuUlJfdTFLcSApbDB1bHkuUlJfdTFLcSAsbH1lUHlBWFJNdSxsfWUxQTFSWCxsfWVJMDFYYktxICxsfWUwUjFfazA0WCxsfWVJSzQ0X2suNCxsfWUwUlJLR19JSzQ0LGx9ZXlBUFhNLGx9ZTEwYnUsbFhla1hHdV9xWDBNLGxYZTBSUktHX3EwMVgsbFhlcTAxQWtiLGxYZVZLMVhfay40LGxYZVZLMVh1LGxYZVZBWEdfWE1BMSxsWGVYTUExTTAxWCxsWGVYTUExS3EsbFhlcVgwdUtrbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWx9bGkkaEtBa19JMDFYYktxIHdUYS9tbEwze2ZsImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVsWGwzZmwofWVBTXJYZWtYR3VfQU0pbHpKYUVhbGkkR0ZYcVhfSTAxWGJLcSB3MH19cUtWWHJVImxlbCRHRlhxWF9NMDFYbGVsImwzRU9hRWxCQ2wibGVsJHlBUFhNbGVsJGtYR3VfdUtxMV8yIGxlbCJsImxlbCRrWEd1X01BcVhJMUFLa18yIGxlbCJsVHs3e21sImxlbCRJdTEwcTFsZWwiLCJsZWwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJCSR1eFJfSUsuazFscmwic2FUYVFtbFEzdmZtKCopbDB1bElLLmsxbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWx9bGkkaEtBa19JMDFYYktxIHd6SmFFYWxpJEdGWHFYX0kwMVhiS3EgdzB9fXFLVlhyVSJsZWwkR0ZYcVhfTTAxWDsNdAkJCXcNdAkJDXQJCXdsWFJ1WEF5bCgkTUtscnJsJ1IwdTFrWEd1JylsaQ10CQkJZ2dsIyMjIyMjIyMjIyMjIyMjI2xzRktHbDBSUmxrWEd1bCMjIyMjIyMjIyMjIyMjIyMjCQkJDXQJCQlBeWwoJEl1MTBxMSlsaQ10CQkJCSRJdTEwcTFscmwkSXUxMHExbC1sVTsNdAkJCQkkSXUxMHExbHJsJEl1MTBxMWwqbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1M7DXQJCQl3DXQNdAkJCUF5KGwkSUtreUFiPicwUlJLR18wUjFfLnFSJ1NsbmZPbCRJS2t5QWI+J3VYS19JS2sxcUtSJ1NsbmZPbCRfTmFtPidJdTEwcTEnU2wpbGkNdAkNdAkJCQlBeWwodS4ydTFxbChsJF9zYUVIYUU+J0VhcHZhc21fdkV7J1MsbC1sVSxsVWwpbCFybCdnJ2wzRWwkX05hbT4nSXUxMHExJ1NscnJsVWwpbGkNdA10CQkJCQkkcVhfLnFSbHJsWFB9UktNWGwobCJBa01YUGV9Rn0iLGx1MXExS1JLR1hxbChsJF9zYUVIYUU+J11KXV9zYVQvJ1NsKWwpOw10CQkJCQkkcVhfLnFSbHJscVh1WDFsKGwkcVhfLnFSbCk7DXQJCQkJCQkNdAkJCQkJJHFYXy5xUmxlcmwiUjB1MWtYR3VnIjsNdAkJCQkJCQ10CQkJCQlBeSh1LjJ1MXFsKGwkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsLWxVLGxVbClsIXJsJ2cnbG5mT2wkX05hbT4nSXUxMHExJ1NsIXJsVWwpbGkNdAkJCQkJCSRxWF8ucVJsZXJsIn0wYlhnImVBazFWMFIoJF9OYW0+J0l1MTBxMSdTKWUiZyI7DXQJCQkJCXcNdAkJCQkJDXQJCQkJCUZYME1YcSgiSm1tXWdVZQpsWQpVbDdLVlhNbF1YcTQwa1hrMVIgIik7DXQJCQkJCUZYME1YcSgiVEtJMDFBS2s6bGkkcVhfLnFSdyIpOw10CQkJCQlNQVgoIkVYTUFxWEkxIik7DXQJCQkJdw10CQkJdw10CQkJCQ10CQkJJC5xUl99MGJYbHJsJElLa3lBYj4nRjExfV9GSzRYXy5xUidTbGVsIlIwdTFrWEd1IjsNdAkJCSQudVhxX3guWHEgbHJsIk1LclIwdTFrWEd1IjsNdAkJCQ10CQkJQXkobCRJS2t5QWI+JzBSUktHXzBSMV8ucVInU2wpbCRJMGtLa0FJMFJscmwkLnFSX30wYlhsZWwiZyI7bFhSdVhsJEkwa0trQUkwUmxybCRdSl1fc2FUL2UiP01LclIwdTFrWEd1IjsNdAkJCQ10CQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfdUtxMV9SMHUxa1hHdSdTbCkpbCRrWEd1X3VLcTFfMiBscmwkX3Nhc3N7M2Y+J01SWF91S3ExX1IwdTFrWEd1J1M7DXQJCQlYUnVYbCRrWEd1X3VLcTFfMiBscmwiTTAxWCI7DXQJCQlBeWwoQXV1WDFsKGwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfUjB1MWtYR3UnU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfUjB1MWtYR3UnUzsNdAkJCVhSdVhsJGtYR3VfTUFxWEkxQUtrXzIgbHJsIk9hc1EiOw10CQkJDXQJCQkkdXhSX3VYUlhJMWxybCJzYVRhUW1sfWVBTSxsfWUwLjFLcSxsfWVNMDFYLGx9ZXVGS3ExX3UxS3EgLGxRSm5FX1RhZk5tSih9ZXkuUlJfdTFLcSApbDB1bHkuUlJfdTFLcSAsbH1lUHlBWFJNdSxsfWUxQTFSWCxsfWVJMDFYYktxICxsfWUwUjFfazA0WCxsfWVJSzQ0X2suNCxsfWUwUlJLR19JSzQ0LGx9ZXlBUFhNLGx9ZTEwYnUsbFhla1hHdV9xWDBNLGxYZTBSUktHX3EwMVgsbFhlcTAxQWtiLGxYZVZLMVhfay40LGxYZVZLMVh1LGxYZVZBWEdfWE1BMSxsWGVYTUExTTAxWCxsWGVYTUExS3EsbFhlcVgwdUtrbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWx9bGkkSTAxX2hLQWt3VGEvbWxMM3tmbCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1bFhsM2ZsKH1lQU1yWGVrWEd1X0FNKWx6SmFFYWxpJHUxS31fUkF1MXcwfX1xS1ZYclUibGVsJEdGWHFYX00wMVhsZWwibDNFT2FFbEJDbCJsZWwka1hHdV91S3ExXzIgbGVsImwibGVsJGtYR3VfTUFxWEkxQUtrXzIgbGVsImxUezd7bWwibGVsJEl1MTBxMWxlbCIsImxlbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1M7DXQJCQkkdXhSX0lLLmsxbHJsInNhVGFRbWxRM3ZmbSgqKWwwdWxJSy5rMWwvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsaSRJMDFfaEtBa19JSy5rMXd6SmFFYWxpJHUxS31fUkF1MXcwfX1xS1ZYclUibGVsJEdGWHFYX00wMVg7DXQJCQ10CQl3bFhSdVhBeWwoJE1LbHJybCcxMGJ1JylsaQ10CQkJZ2dsIyMjIyMjIyMjIyMjIyMjI2xzWDBJRmxrWEd1bDIgbDEwYnVsIyMjIyMjIyMjIyMjIyMjIyMJCQkNdAkJCUF5bCgkSXUxMHExKWxpDXQJCQkJJEl1MTBxMWxybCRJdTEwcTFsLWxVOw10CQkJCSRJdTEwcTFscmwkSXUxMHExbCpsJElLa3lBYj4na1hHdV9rLjQyWHEnUzsNdAkJCXcNdA10CQkJJDEwYmxybHEwRy5xUk1YSUtNWChsJF9OYW0+JzEwYidTbCk7DXQNdAkJCSQxMGJscmxGMTRSdX1YSUEwUklGMHF1bChsdTFxQX1fMTBidWwobHUxcUF9dVIwdUZYdWwobDFxQTRsKGwkMTBibClsKWwpLGxhZm1fUTM3XW5tLGwkSUtreUFiPidJRjBxdVgxJ1NsKTsNdAkJCSRYa0lLTVhNXzEwYmxybHEwRy5xUlhrSUtNWCh1MXFfcVh9UjBJWCgwcXEwICgiJiMKWT07IixsIiZ4LksxOyIsbCImMDR9OyIpLGwwcXEwICgiJyIsbCciJyxsIiYiKSxsJDEwYikpOw10CQkJDXQJCQlNWHlBa1gobCdRVDN2T3Ntbk4nLGwkMTBibCk7DXQJCQkNdAkJCSQucVJffTBiWGxybCRJS2t5QWI+J0YxMX1fRks0WF8ucVInU2xlbCIxMGJ1ZyJsZWwkWGtJS01YTV8xMGI7DXQJCQkkLnVYcV94LlhxIGxybCJNS3IxMGJ1JjA0fTsxMGJyImxlbCRYa0lLTVhNXzEwYjsNdAkJCQ10CQkJQXkobCRJS2t5QWI+JzBSUktHXzBSMV8ucVInU2wpbCRJMGtLa0FJMFJscmwkLnFSX30wYlhsZWwiZyI7bFhSdVhsJEkwa0trQUkwUmxybCRdSl1fc2FUL2UiP01LcjEwYnUmMTBiciJsZWwkWGtJS01YTV8xMGI7DXQNdAkJCUF5KGwkSUtreUFiPicwUlJLR18wUjFfLnFSJ1NsbmZPbCRJS2t5QWI+J3VYS19JS2sxcUtSJ1NsKWxpDXQNdAkJCQlBeWwobHUuMnUxcWwobCRfc2FFSGFFPidFYXB2YXNtX3ZFeydTLGwtbFUsbFVsKWwhcmwnZydsM0VsJF9OYW0+J0l1MTBxMSdTbHJybFVsM0VsdS4ydTFxbChsJF9zYUVIYUU+J0VhcHZhc21fdkV7J1MsbC1sRGwpbHJybCdnZydsM0VsdTFxfUt1bCgkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsIk1LcjEwYnUibClsIXJybHkwUnVYKWxpDXQJDXQJCQkJCSRxWF8ucVJscmxYUH1SS01YbChsIkFrTVhQZX1GfSIsbHUxcTFLUktHWHFsKGwkX3NhRUhhRT4nXUpdX3NhVC8nU2wpbCk7DXQJCQkJCSRxWF8ucVJscmxxWHVYMWwobCRxWF8ucVJsKTsNdAkJCQkJCQ10CQkJCQkkcVhfLnFSbGVybCIxMGJ1ZyJsZWwkWGtJS01YTV8xMGJsZWwiZyI7DXQJCQkJCQkNdAkJCQkJQXkobCRfTmFtPidJdTEwcTEnU2xjbFVsKWxpDXQJCQkJCQkkcVhfLnFSbGVybCJ9MGJYZyJlQWsxVjBSKCRfTmFtPidJdTEwcTEnUyllImciOw10CQkJCQl3DXQJCQkJCQ10CQkJCQlGWDBNWHEoIkptbV1nVWUKbFkKVWw3S1ZYTWxdWHE0MGtYazFSICIpOw10CQkJCQlGWDBNWHEoIlRLSTAxQUtrOmxpJHFYXy5xUnciKTsNdAkJCQkJTUFYKCJFWE1BcVhJMSIpOw10CQkJCXcNdAkJCXcNdAkJCQ10CQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfdUtxMV8xMGJ1J1NsKSlsJGtYR3VfdUtxMV8yIGxybCRfc2Fzc3szZj4nTVJYX3VLcTFfMTBidSdTOw10CQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrXzEwYnUnU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfMTBidSdTOw10DXQJCQkkMTBibHJsQCRNMi1jdTB5WHV4UmwobCQxMGJsKTsNdA10CQkJJHV4Ul91WFJYSTFscmwic2FUYVFtbH1lQU0sbH1lMC4xS3EsbH1lTTAxWCxsfWV1RktxMV91MUtxICxsUUpuRV9UYWZObUoofWV5LlJSX3UxS3EgKWwwdWx5LlJSX3UxS3EgLGx9ZVB5QVhSTXUsbH1lMUExUlgsbH1lSTAxWGJLcSAsbH1lMFIxX2swNFgsbH1lSUs0NF9rLjQsbH1lMFJSS0dfSUs0NCxsfWV5QVBYTSxsfWUxMGJ1LGxYZWtYR3VfcVgwTSxsWGUwUlJLR19xMDFYLGxYZXEwMUFrYixsWGVWSzFYX2suNCxsWGVWSzFYdSxsWGVWQVhHX1hNQTEsbFhlWE1BMU0wMVgsbFhlWE1BMUtxLGxYZXFYMHVLa2wvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsfWx7ZmZhRWxMM3tmbCJsZWxdRWEvezhsZWwiXzEwYnVsMWxLa2woMWVrWEd1X0FNcn1lQU0pbGkkSTAxX2hLQWt3VGEvbWxMM3tmbCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1bFhsM2ZsKH1lQU1yWGVrWEd1X0FNKWx6SmFFYWxpJHUxS31fUkF1MXcxZTEwYmxybCdpJDEwYncnbG5mT2x9ZTB9fXFLVlhyVSJsZWwkR0ZYcVhfTTAxWGxlbCJsM0VPYUVsQkNsImxlbCRrWEd1X3VLcTFfMiBsZWwibCJsZWwka1hHdV9NQXFYSTFBS2tfMiBsZWwibFR7N3ttbCJsZWwkSXUxMHExbGVsIiwibGVsJElLa3lBYj4na1hHdV9rLjQyWHEnUzsNdAkJCSR1eFJfSUsuazFscmwic2FUYVFtbFEzdmZtKCopbDB1bElLLmsxbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWx9bHtmZmFFbEwze2ZsImxlbF1FYS97OGxlbCJfMTBidWwxbEtrbCgxZWtYR3VfQU1yfWVBTSlsaSRJMDFfaEtBa3d6SmFFYWxpJHUxS31fUkF1MXcxZTEwYmxybCdpJDEwYncnbG5mT2wwfX1xS1ZYclUibGVsJEdGWHFYX00wMVg7DXQNdAkJd2xYUnVYQXlsKCRNS2xycmwnUHl1WDBxSUYnKWxpDXQJCQlnZ2wjIyMjIyMjIyMjIyMjIyMjbHNYMElGbGtYR3VsMiBsUHlBWFJNdWwjIyMjIyMjIyMjIyMjIyMjIwkJCQ10CQkJQXlsKCRJdTEwcTEpbGkNdAkJCQkkSXUxMHExbHJsJEl1MTBxMWwtbFU7DXQJCQkJJEl1MTBxMWxybCRJdTEwcTFsKmwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJdw10CQkJDXQJCQlBeWwoQXV1WDFsKGwkX3Nhc3N7M2Y+J01SWF91S3ExX1B5dVgwcUlGJ1NsKSlsJGtYR3VfdUtxMV8yIGxybCRfc2Fzc3szZj4nTVJYX3VLcTFfUHl1WDBxSUYnUzsNdAkJCUF5bChBdXVYMWwobCRfc2Fzc3szZj4nTVJYX01BcVhJMUFLa19QeXVYMHFJRidTbCkpbCRrWEd1X01BcVhJMUFLa18yIGxybCRfc2Fzc3szZj4nTVJYX01BcVhJMUFLa19QeXVYMHFJRidTOw10CQkNdAkJCSRQeWxybHEwRy5xUk1YSUtNWCgkX05hbT4nUHknUyk7DXQNdAkJCUF5bChNUlhfdS4ydTFxbChsJFB5LGwtbFUsbFUsbCRJS2t5QWI+J0lGMHF1WDEnU2wpbHJybCdnJylsJFB5bHJsTVJYX3UuMnUxcWwobCRQeSxsCixsLWxVLGwkSUtreUFiPidJRjBxdVgxJ1NsKTsNdAkJCQ10CQkJJFB5bHJsWFB9UktNWGwobCdnJyxsJFB5bCk7DXQJCQkkUHlrMDRYbHJsIiI7DXQJCQkNdAkJCUF5KGwkX05hbT4nUHlrMDRYJ1NsbmZPbCEkSUtreUFiPicwUlJLR18wUjFfLnFSJ1NsKWxpDXQJCQkJJFB5azA0WGxyMUsxcTBrdVJBMSgxcUE0KCRfTmFtPidQeWswNFgnUykpOw10CQkJd2xYUnVYQXkoSUsuazEoJFB5KWxjbFVsKWxpDXQJCQkJJFB5azA0WGxyMUsxcTBrdVJBMSgxcUE0KCRQeT4KUykpOw10CQkJCS5rdVgxKCRQeT4KUyk7DXQJCQl3DXQNdAkJCSRQeWxybEE0fVJLTVgoJ2wnLGwkUHkpOw10CQkJJFB5bHJsRjE0UnV9WElBMFJJRjBxdWwobHUxcUF9XzEwYnVsKGx1MXFBfXVSMHVGWHVsKGwxcUE0bChsJFB5bClsKWwpLGxhZm1fcHYzbWFzLGwkSUtreUFiPidJRjBxdVgxJ1NsKTsNdA10CQkJQXkoJFB5azA0WClsaQ10CQkJCQ10CQkJCSQucVJffTBiWGxybCRJS2t5QWI+J0YxMX1fRks0WF8ucVInU2xlbCJQeXVYMHFJRmdpJFB5azA0WHdnImxlbHEwRy5xUlhrSUtNWGwobHUxcV9xWH1SMElYKDBxcTAgKCImIwpZPTsiLGwiJnguSzE7IiksbDBxcTAgKCInIixsJyInKSxsJFB5KWwpOw10CQkJCSQudVhxX3guWHEgbHJsIk1LclB5dVgwcUlGJjA0fTtQeWswNFhyImUkUHlrMDRYZSImMDR9O1B5ciJsZWxxMEcucVJYa0lLTVhsKGx1MXFfcVh9UjBJWCgwcXEwICgiJiMKWT07IixsIiZ4LksxOyIpLGwwcXEwICgiJyIsbCciJyksbCRQeSlsKTsNdAkJCQkNdAkJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbClsJEkwa0trQUkwUmxybCQucVJffTBiWGxlbCJnIjtsWFJ1WGwkSTBrS2tBSTBSbHJsJF1KXV9zYVQvZSI/TUtyUHl1WDBxSUYmUHlrMDRYciJlJFB5azA0WGUiJlB5ciJsZWwucVJYa0lLTVhsKGx1MXFfcVh9UjBJWCgiJiMKWT07IixsIiciLGwkUHkpbCk7DXQJCQkJDXQJCQl3bFhSdVhsaQ10CQkJCQ10CQkJCSQucVJffTBiWGxybCRJS2t5QWI+J0YxMX1fRks0WF8ucVInU2xlbCJQeXVYMHFJRmcibGVscTBHLnFSWGtJS01YbChsdTFxX3FYfVIwSVgoMHFxMCAoIiYjClk9OyIsbCImeC5LMTsiKSxsMHFxMCAoIiciLGwnIicpLGwkUHkpbCk7DXQJCQkJJC51WHFfeC5YcSBscmwiTUtyUHl1WDBxSUYmMDR9O1B5ciJsZWxxMEcucVJYa0lLTVhsKGx1MXFfcVh9UjBJWCgwcXEwICgiJiMKWT07IixsIiZ4LksxOyIpLGwwcXEwICgiJyIsbCciJyksbCRQeSlsKTsNdAkJCQkNdAkJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbClsJEkwa0trQUkwUmxybCQucVJffTBiWGxlbCJnIjtsWFJ1WGwkSTBrS2tBSTBSbHJsJF1KXV9zYVQvZSI/TUtyUHl1WDBxSUYmUHlyImxlbC5xUlhrSUtNWGwobHUxcV9xWH1SMElYKCImIwpZPTsiLGwiJyIsbCRQeSlsKTsNdAkJCQkNdAkJCQkkUHlBWFJNdWxybFB5QVhSTXVSSzBNKCk7DXQJCQkJJFB5QVhSTXVfazA0WGxybDBxcTAgKCk7DXQJCQkJDXQJCQkJeUtxWDBJRmwobCRQeUFYUk11bDB1bCRWMFIuWGwpbGkNdAkJCQkJJFB5QVhSTXVfazA0WD5TbHJsJFYwUi5YPgpTOw10CQkJCXcNdAkJCQkNdAkJCQlBeShsQWtfMHFxMCAoJFB5LGwkUHlBWFJNdV9rMDRYKWwpbGkkUHlsZXJsInwiO3cNdAkJCQkNdAkJCQkNdAkJCXcNdAkJCQ10CQkJJFB5azA0WGxybCRNMi1jdTB5WHV4UigkUHlrMDRYKTsNdAkJCSRQeWxybCRNMi1jdTB5WHV4UigkUHkpOw10DXQJCQlBeWwobCRQeWswNFhsKWxpDXQJCQkJDXQJCQkJQXkobCRJS2t5QWI+JzBSUktHXzBSMV8ucVInU2xuZk9sJElLa3lBYj4ndVhLX0lLazFxS1InU2wpbGkNdA10CQkJCQlBeWwodS4ydTFxbChsJF9zYUVIYUU+J0VhcHZhc21fdkV7J1MsbC1sVSxsVWwpbCFybCdnJ2wzRWwkX05hbT4nSXUxMHExJ1NscnJsVWwzRWx1LjJ1MXFsKGwkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsLWxEbClscnJsJ2dnJ2wzRWx1MXF9S3VsKCRfc2FFSGFFPidFYXB2YXNtX3ZFeydTLGwiTUtyUHl1WDBxSUYibClsIXJybHkwUnVYKWxpDXQJCQkJCQkJDXQJCQkJCQkkcVhfLnFSbHJsJC5xUl99MGJYbGVsImciOw10CQkJCQkJCQ10CQkJCQkJQXkobCRfTmFtPidJdTEwcTEnU2xjbFVsKWxpDXQJCQkJCQkJJHFYXy5xUmxlcmwifTBiWGciZUFrMVYwUigkX05hbT4nSXUxMHExJ1MpZSJnIjsNdAkJCQkJCXcNdAkJCQkJCQ10CQkJCQkJRlgwTVhxKCJKbW1dZ1VlCmxZClVsN0tWWE1sXVhxNDBrWGsxUiAiKTsNdAkJCQkJCUZYME1YcSgiVEtJMDFBS2s6bGkkcVhfLnFSdyIpOw10CQkJCQkJTUFYKCJFWE1BcVhJMSIpOw10CQkJCQl3DXQJCQkJdw10DXQJCQkJJHV4Ul91WFJYSTFscmwic2FUYVFtbH1lQU0sbH1lMC4xS3EsbH1lTTAxWCxsfWV1RktxMV91MUtxICxsUUpuRV9UYWZObUoofWV5LlJSX3UxS3EgKWwwdWx5LlJSX3UxS3EgLGx9ZVB5QVhSTXUsbH1lMUExUlgsbH1lSTAxWGJLcSAsbH1lMFIxX2swNFgsbH1lSUs0NF9rLjQsbH1lMFJSS0dfSUs0NCxsfWV5QVBYTSxsfWUxMGJ1LGxYZWtYR3VfcVgwTSxsWGUwUlJLR19xMDFYLGxYZXEwMUFrYixsWGVWSzFYX2suNCxsWGVWSzFYdSxsWGVWQVhHX1hNQTEsbFhlWE1BMU0wMVgsbFhlWE1BMUtxLGxYZXFYMHVLa2wvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsfWx7ZmZhRWxMM3tmbCJsZWxdRWEvezhsZWwiX1B5dVgwcUlGbFB5bEtrbChQeWVrWEd1X0FNcn1lQU0pbGkkSTAxX2hLQWt3VGEvbWxMM3tmbCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1bFhsM2ZsKH1lQU1yWGVrWEd1X0FNKWx6SmFFYWxpJHUxS31fUkF1MXdQeWUxMGJrMDRYbHJsJ2kkUHlrMDRYdydsbmZPbFB5ZTEwYlYwUi5YcidpJFB5dydsbmZPbH1lMH19cUtWWHJVImxlbCRHRlhxWF9NMDFYbGVsImwzRU9hRWxCQ2wibGVsJGtYR3VfdUtxMV8yIGxlbCJsImxlbCRrWEd1X01BcVhJMUFLa18yIGxlbCJsVHs3e21sImxlbCRJdTEwcTFsZWwiLCJsZWwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJCSR1eFJfSUsuazFsbHJsInNhVGFRbWxRM3ZmbSgqKWwwdWxJSy5rMWwvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsfWx7ZmZhRWxMM3tmbCJsZWxdRWEvezhsZWwiX1B5dVgwcUlGbFB5bEtrbChQeWVrWEd1X0FNcn1lQU0pbGkkSTAxX2hLQWt3ekphRWFsaSR1MUt9X1JBdTF3UHllMTBiazA0WGxybCdpJFB5azA0WHcnbG5mT2xQeWUxMGJWMFIuWHInaSRQeXcnbG5mT2wwfX1xS1ZYclUibGVsJEdGWHFYX00wMVg7DXQJCQ10CQkJd2xYUnVYbGkNdAkJCQkNdAkJCQlBeSghJFB5KWxpDXQJCQkJCQ10CQkJCQkkcVhfLnFSbHJsWFB9UktNWGwobCJBa01YUGV9Rn0iLGx1MXExS1JLR1hxbChsJF9zYUVIYUU+J11KXV9zYVQvJ1NsKWwpOw10CQkJCQkkcVhfLnFSbHJscVh1WDFsKGwkcVhfLnFSbCk7DXQJCQkJCQkNdAkJCQkJRlgwTVhxKCJKbW1dZ1VlCmxZClVsN0tWWE1sXVhxNDBrWGsxUiAiKTsNdAkJCQkJRlgwTVhxKCJUS0kwMUFLazpsaSRxWF8ucVJ3Iik7DXQJCQkJCU1BWCgiRVhNQXFYSTEiKTsNdAkJCQl3DXQJCQkJDXQJCQkJJHV4Ul91WFJYSTFscmwic2FUYVFtbH1lQU0sbH1lMC4xS3EsbH1lTTAxWCxsfWV1RktxMV91MUtxICxsUUpuRV9UYWZObUoofWV5LlJSX3UxS3EgKWwwdWx5LlJSX3UxS3EgLGx9ZVB5QVhSTXUsbH1lMUExUlgsbH1lSTAxWGJLcSAsbH1lMFIxX2swNFgsbH1lSUs0NF9rLjQsbH1lMFJSS0dfSUs0NCxsfWV5QVBYTSxsfWUxMGJ1LGxYZWtYR3VfcVgwTSxsWGUwUlJLR19xMDFYLGxYZXEwMUFrYixsWGVWSzFYX2suNCxsWGVWSzFYdSxsWGVWQVhHX1hNQTEsbFhlWE1BMU0wMVgsbFhlWE1BMUtxLGxYZXFYMHVLa2wvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsfWxpJEkwMV9oS0Frd1RhL21sTDN7ZmwibGVsXUVhL3s4bGVsIl99S3UxX1hQMXEwdWxYbDNmbCh9ZUFNclhla1hHdV9BTSlsekphRWFsaSR1MUt9X1JBdTF3UHlBWFJNdWxUe29hbCclaSRQeXclJ2xuZk9sMH19cUtWWHJVImxlbCRHRlhxWF9NMDFYbGVsImwzRU9hRWxCQ2wibGVsJGtYR3VfdUtxMV8yIGxlbCJsImxlbCRrWEd1X01BcVhJMUFLa18yIGxlbCJsVHs3e21sImxlbCRJdTEwcTFsZWwiLCJsZWwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJCSR1eFJfSUsuazFscmwic2FUYVFtbFEzdmZtKCopbDB1bElLLmsxbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWxpJEkwMV9oS0FrX0lLLmsxd3pKYUVhbGkkdTFLfV9SQXUxd1B5QVhSTXVsVHtvYWwnJWkkUHl3JSdsbmZPbDB9fXFLVlhyVSJsZWwkR0ZYcVhfTTAxWDsNdAkJDXQJCQkJJFB5bHJsdTFxX3FYfVIwSVhsKGwnfCcsbCcnLGwkUHlsKTsNdAkJCXcNdAkJDXQJCXdsWFJ1WEF5bCgkdS4yMEkxQUtrbHJybCcudVhxQWt5SycpbGkNdAkJCWdnbCMjIyMjIyMjIyMjIyMjIyNsdUZLR2wudVhxbH1xS3lBUlhsIyMjIyMjIyMjIyMjIyMjIyMNdAkJCUF5bCgkSXUxMHExKWxpDXQJCQkJDXQJCQkJJEl1MTBxMWxybCRJdTEwcTFsLWxVOw10CQkJCSRJdTEwcTFscmwkSXUxMHExbCpsJElLa3lBYj4na1hHdV9rLjQyWHEnUzsNdAkJCQ10CQkJdw10CQkJDXQJCQkkLnFSX30wYlhscmwkSUtreUFiPidGMTF9X0ZLNFhfLnFSJ1NsZWwiLnVYcWcibGVsLnFSWGtJS01YbChsJC51WHFsKTsNdAkJCSQudVhxX3guWHEgbHJsInUuMjBJMUFLa3IudVhxQWt5SyYwNH07LnVYcXIibGVsLnFSWGtJS01YbChsJC51WHFsKTsNdAkJCQ10CQkJQXlsKCQ0WDQyWHFfQU0+J2swNFgnU2xycmwkLnVYcWwzRWwkLnVYcV9icUsufT4kNFg0MlhxX0FNPicudVhxX2JxSy59J1NTPicwUlJLR18wUlJfWE1BMSdTKWxpDXQJCQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfdUtxMV8udVhxQWt5SydTbCkpbCRrWEd1X3VLcTFfMiBscmwkX3Nhc3N7M2Y+J01SWF91S3ExXy51WHFBa3lLJ1M7DXQJCQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrXy51WHFBa3lLJ1NsKSlsJGtYR3VfTUFxWEkxQUtrXzIgbHJsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrXy51WHFBa3lLJ1M7DXQJCQkJDXQJCQkJJHV4Ul91WFJYSTFscmwic2FUYVFtbH1lQU0sbH1lMC4xS3EsbH1lTTAxWCxsfWV1RktxMV91MUtxICxsUUpuRV9UYWZObUoofWV5LlJSX3UxS3EgKWwwdWx5LlJSX3UxS3EgLGx9ZVB5QVhSTXUsbH1lMUExUlgsbH1lSTAxWGJLcSAsbH1lMFIxX2swNFgsbH1lSUs0NF9rLjQsbH1lMFJSS0dfSUs0NCxsfWV5QVBYTSxsfWUxMGJ1LGxYZWtYR3VfcVgwTSxsWGUwUlJLR19xMDFYLGxYZXEwMUFrYixsWGVWSzFYX2suNCxsWGVWSzFYdSxsWGVWQVhHX1hNQTEsbFhlWE1BMU0wMVgsbFhlWE1BMUtxLGxYZXFYMHVLa2wvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsfWxUYS9tbEwze2ZsImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVsWGwzZmwofWVBTXJYZWtYR3VfQU0pbHpKYUVhbDAuMUtxbHJsJ2kkLnVYcXcnbG5mT2wwfX1xS1ZYcgpsM0VPYUVsQkNsImxlbCRrWEd1X3VLcTFfMiBsZWwibCJsZWwka1hHdV9NQXFYSTFBS2tfMiBsZWwibFR7N3ttbCJsZWwkSXUxMHExbGVsIiwibGVsJElLa3lBYj4na1hHdV9rLjQyWHEnUzsNdAkJCQkkdXhSX0lLLmsxbHJsInNhVGFRbWxRM3ZmbSgqKWwwdWxJSy5rMWwvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsekphRWFsMC4xS3FscmwnJC51WHEnbG5mT2wwfX1xS1ZYcgoiOw10CQkJCQ10CQkJCUF5KGwhJElLa3lBYj4nfXFLeUFSWF9rWEd1J1NsKWxpDXQJCQkJCSQwUlJLR18wSTFBVlhfa1hHdWxybHkwUnVYOw10CQkJCQkka1hHdV95Sy5rTWxybHkwUnVYOwkJDXQJCQkJdw10DXQJCQl3bFhSdVhsaQ10CQkJCSQwUlJLR18wSTFBVlhfa1hHdWxybHkwUnVYOw10CQkJCSRrWEd1X3lLLmtNbHJseTBSdVg7DXQJCQl3DXQJCQkNdAkJCSRJS2t5QWI+JzBSUktHX0kwSUZYJ1Nscmx5MFJ1WDsNdAkJd2xYUnVYQXlsKCR1LjIwSTFBS2tscnJsJzBSUmtYR3UnKWxpDXQJCQlnZ2wjIyMjIyMjIyMjIyMjIyMjbHVGS0dsMFJSbGtYR3VsMiBsLnVYcWwjIyMjIyMjIyMjIyMjIyMjIw10CQkJQXlsKCRJdTEwcTEpbGkNdAkJCQkNdAkJCQkkSXUxMHExbHJsJEl1MTBxMWwtbFU7DXQJCQkJJEl1MTBxMWxybCRJdTEwcTFsKmwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJDXQJCQl3DXQJCQkNdAkJCSQucVJffTBiWGxybCRJS2t5QWI+J0YxMX1fRks0WF8ucVInU2xlbCIudVhxZyJsZWwucVJYa0lLTVhsKGwkLnVYcWwpbGVsImdrWEd1IjsNdAkJCSQudVhxX3guWHEgbHJsInUuMjBJMUFLa3IwUlJrWEd1JjA0fTsudVhxciJsZWwucVJYa0lLTVhsKGwkLnVYcWwpOw10CQkJDXQJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbClsJEkwa0trQUkwUmxybCQucVJffTBiWGxlbCJnIjtsWFJ1WGwkSTBrS2tBSTBSbHJsJF1KXV9zYVQvZSI/dS4yMEkxQUtrcjBSUmtYR3UmLnVYcXIibGVsLnFSWGtJS01YbChsJC51WHFsKTsNdAkJCQ10CQkJQXlsKCRWQVhHXzFYNH1SMDFYbHJybCJxdXUiKWxpDXQJCQkJDXQJCQkJJHV4Ul91WFJYSTFscmwic2FUYVFtbH1lQU0sbH1lMC4xS3EsbH1lTTAxWCxsfWV1RktxMV91MUtxICxsfWV5LlJSX3UxS3EgLGx9ZVB5QVhSTXUsbH1lMUExUlgsbH1lSTAxWGJLcSAsbH1lMFIxX2swNFgsbFhlMFJSS0dfcXV1XzEucTJLLGxYZTBSUktHX3F1dV9NalhrbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWx9bGkkSTAxX2hLQWt3VGEvbWxMM3tmbCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1bFhsM2ZsKH1lQU1yWGVrWEd1X0FNKWx6SmFFYWxpJHUxS31fUkF1MXd9ZTAuMUtxbHJsJ2kkLnVYcXcnbG5mT2x9ZTB9fXFLVlhyVWxuZk9sWGUwUlJLR19xdXVyVSJsZWwkR0ZYcVhfTTAxWGxlbCJsM0VPYUVsQkNsTTAxWGxPYXNRbFR7N3ttbAosImxlbCRJS2t5QWI+J3F1dV9rLjQyWHEnUzsNdAkJCQ10CQkJd2xYUnVYbGkNdAkJCQkNdAkJCQlBeWwoQXV1WDFsKGwkX3Nhc3N7M2Y+J01SWF91S3ExXzBSUmtYR3UnU2wpKWwka1hHdV91S3ExXzIgbHJsJF9zYXNzezNmPidNUlhfdUtxMV8wUlJrWEd1J1M7DXQJCQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrXzBSUmtYR3UnU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfMFJSa1hHdSdTOw10CQkJCQ10CQkJCSR1eFJfdVhSWEkxbHJsInNhVGFRbWx9ZUFNLGx9ZTAuMUtxLGx9ZU0wMVgsbH1ldUZLcTFfdTFLcSAsbFFKbkVfVGFmTm1KKH1leS5SUl91MUtxIClsMHVseS5SUl91MUtxICxsfWVQeUFYUk11LGx9ZTFBMVJYLGx9ZUkwMVhiS3EgLGx9ZTBSMV9rMDRYLGx9ZUlLNDRfay40LGx9ZTBSUktHX0lLNDQsbH1leUFQWE0sbH1lMTBidSxsWGVrWEd1X3FYME0sbFhlMFJSS0dfcTAxWCxsWGVxMDFBa2IsbFhlVksxWF9rLjQsbFhlVksxWHUsbFhlVkFYR19YTUExLGxYZVhNQTFNMDFYLGxYZVhNQTFLcSxsWGVxWDB1S2tsL0UzN2wibGVsXUVhL3s4bGVsIl99S3UxbH1saSRJMDFfaEtBa3dUYS9tbEwze2ZsImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVsWGwzZmwofWVBTXJYZWtYR3VfQU0pbHpKYUVhbGkkdTFLfV9SQXUxdzAuMUtxbHJsJyQudVhxJ2xuZk9sMH19cUtWWHJVImxlbCRHRlhxWF9NMDFYbGVsImwzRU9hRWxCQ2wibGVsJGtYR3VfdUtxMV8yIGxlbCJsImxlbCRrWEd1X01BcVhJMUFLa18yIGxlbCJsVHs3e21sImxlbCRJdTEwcTFsZWwiLCJsZWwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJCSR1eFJfSUsuazFscmwic2FUYVFtbFEzdmZtKCopbDB1bElLLmsxbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWxpJEkwMV9oS0FrX0lLLmsxd3pKYUVhbGkkdTFLfV9SQXUxdzAuMUtxbHJsJyQudVhxJ2xuZk9sMH19cUtWWHJVImxlbCRHRlhxWF9NMDFYOw10CQkJdw10CQkNdAkJd2xYUnVYQXlsKCR1LjIwSTFBS2tscnJsJ2tYR31LdTF1JylsaQ10CQkJZ2dsIyMjIyMjIyMjIyMjIyMjI2x1RktHbDBSUmwua3FYME1sa1hHdWwjIyMjIyMjIyMjIyMjIyMjIw10CQkJQXlsKCRJdTEwcTEpbGkNdAkJCQkkSXUxMHExbHJsJEl1MTBxMWwtbFU7DXQJCQkJJEl1MTBxMWxybCRJdTEwcTFsKmwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJdw10CQkJDXQJCQkkLnFSX30wYlhscmwkSUtreUFiPidGMTF9X0ZLNFhfLnFSJ1NsZWwia1hHfUt1MXUiOw10CQkJJC51WHFfeC5YcSBscmwidS4yMEkxQUtrcmtYR31LdTF1IjsNdAkJCQ10CQkJQXkobCRJS2t5QWI+JzBSUktHXzBSMV8ucVInU2wpbCRJMGtLa0FJMFJscmwkLnFSX30wYlhsZWwiZyI7bFhSdVhsJEkwa0trQUkwUmxybCRdSl1fc2FUL2UiP3UuMjBJMUFLa3JrWEd9S3UxdSI7DXQJCQkNdAkJCSQxRkF1MUE0WGxybE0wMVhsKGwiQy00LU1sSjpBOnUiLGwkX217N2FsKTsNdAkJCQ10CQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPic0WDQyWHFfUjB1MTFBNFgnU2wpKWxpDXQJCQkJJFIwdTExQTRYbHJsTTAxWGwobCJDLTQtTWxKOkE6dSIsbCRfc2Fzc3szZj4nNFg0MlhxX1IwdTExQTRYJ1NsKTsNdAkJCXdsWFJ1WGxpDXQJCQkJJFIwdTExQTRYbHJsTTAxWGwobCJDLTQtTWxKOkE6dSIsbCgxQTRYbCgpbC1sKFlbCgpsKmxXKSlsKTsNdAkJCXcNdAkJCQ10CQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfdUtxMV9rWEd9S3UxdSdTbCkpbCRrWEd1X3VLcTFfMiBscmwkX3Nhc3N7M2Y+J01SWF91S3ExX2tYR31LdTF1J1M7DXQJCQlBeWwoQXV1WDFsKGwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfa1hHfUt1MXUnU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfa1hHfUt1MXUnUzsNdAkJCQ10CQkJJHV4Ul91WFJYSTFscmwic2FUYVFtbH1lQU0sbH1lMC4xS3EsbH1lTTAxWCxsfWV1RktxMV91MUtxICxsUUpuRV9UYWZObUoofWV5LlJSX3UxS3EgKWwwdWx5LlJSX3UxS3EgLGx9ZVB5QVhSTXUsbH1lMUExUlgsbH1lSTAxWGJLcSAsbH1lMFIxX2swNFgsbH1lSUs0NF9rLjQsbH1lMFJSS0dfSUs0NCxsfWV5QVBYTSxsfWUxMGJ1LGxYZWtYR3VfcVgwTSxsWGUwUlJLR19xMDFYLGxYZXEwMUFrYixsWGVWSzFYX2suNCxsWGVWSzFYdSxsWGVWQVhHX1hNQTEsbFhlWE1BMU0wMVgsbFhlWE1BMUtxLGxYZXFYMHVLa2wvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsfWxpJEkwMV9oS0Frd1RhL21sTDN7ZmwibGVsXUVhL3s4bGVsIl99S3UxX1hQMXEwdWxYbDNmbCh9ZUFNclhla1hHdV9BTSlsekphRWFsaSR1MUt9X1JBdTF3MH19cUtWWHJVbG5mT2xNMDFYbDJYMUdYWGtsJyRSMHUxMUE0WCdsMGtNbCckMUZBdTFBNFgnbEtxTVhxbDIgbCJsZWwka1hHdV91S3ExXzIgbGVsImwibGVsJGtYR3VfTUFxWEkxQUtrXzIgbGVsImxUezd7bWwibGVsJEl1MTBxMWxlbCIsImxlbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1M7DXQJCQkkdXhSX0lLLmsxbHJsInNhVGFRbWxRM3ZmbSgqKWwwdWxJSy5rMWwvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsaSRJMDFfaEtBa19JSy5rMXd6SmFFYWxpJHUxS31fUkF1MXcwfX1xS1ZYclVsbmZPbE0wMVhsMlgxR1hYa2wnJFIwdTExQTRYJ2wwa01sJyQxRkF1MUE0WCciOw10CQkJDXQJCQkkSUtreUFiPicwUlJLR19JMElGWCdTbHJseTBSdVg7DXQJCQkNdAkJd2xYUnVYQXlsKGxBdXVYMWwoJF9OYW0+J0kwMTBSS2InUylsKWxpDXQJCQkNdAkJCWdnbCMjIyMjIyMjIyMjIyMjIyNsdUZLR2wyIGxJMDEwUktibCMjIyMjIyMjIyMjIyMjIyMjDXQJCQlBeWwoJEl1MTBxMSlsaQ10CQkJCSRJdTEwcTFscmwkSXUxMHExbC1sVTsNdAkJCQkkSXUxMHExbHJsJEl1MTBxMWwqbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1M7DXQJCQl3DXQNdAkJCUF5KGwkSUtreUFiPicwUlJLR18wUjFfLnFSJ1NsbmZPbCRJS2t5QWI+J3VYS19JS2sxcUtSJ1MpbGkNdA10CQkJCUF5bCh1LjJ1MXFsKGwkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsLWxVLGxVbClsIXJsJ2cnbDNFbCRfTmFtPidJdTEwcTEnU2xycmxVbDNFbHUuMnUxcWwobCRfc2FFSGFFPidFYXB2YXNtX3ZFeydTLGwtbERsKWxycmwnZ2cnKWxpDXQJCQkJCQ10CQkJCQkkcVhfLnFSbHJsWFB9UktNWGwobCJBa01YUGV9Rn0iLGx1MXExS1JLR1hxbChsJF9zYUVIYUU+J11KXV9zYVQvJ1NsKWwpOw10CQkJCQkkcVhfLnFSbHJscVh1WDFsKGwkcVhfLnFSbCk7DXQJCQkJCQ10CQkJCQkkcVhfLnFSbGVybCJJMDEwUktiZyJlLnFSWGtJS01YbChsJEkwMTBSS2JsKWUiZyI7DXQJCQkJCQ10CQkJCQlBeShsJF9OYW0+J0l1MTBxMSdTbGNsVWwpbGkNdAkJCQkJCSRxWF8ucVJsZXJsIn0wYlhnImVBazFWMFIoJF9OYW0+J0l1MTBxMSdTKWUiZyI7DXQJCQkJCXcNdAkJCQkJDXQJCQkJCQ10CQkJCQlGWDBNWHEoIkptbV1nVWUKbFkKVWw3S1ZYTWxdWHE0MGtYazFSICIpOw10CQkJCQlGWDBNWHEoIlRLSTAxQUtrOmxpJHFYXy5xUnciKTsNdAkJCQkJTUFYKCJFWE1BcVhJMSIpOw10CQkJCXcNdAkJCXcNdAkJCQkNdAkJCSQucVJffTBiWGxybCRJS2t5QWI+J0YxMX1fRks0WF8ucVInU2xlbCJJMDEwUktiZyJsZWwucVJYa0lLTVhsKGwkSTAxMFJLYmwpOw10CQkJJC51WHFfeC5YcSBscmwiSTAxMFJLYnIibGVsLnFSWGtJS01YbChsJEkwMTBSS2JsKTsNdA10CQkJQXkobCRJS2t5QWI+JzBSUktHXzBSMV8ucVInU2wpbCRJMGtLa0FJMFJscmwkLnFSX30wYlhsZWwiZyI7bFhSdVhsJEkwa0trQUkwUmxybCRdSl1fc2FUL2UiP0kwMTBSS2JyImxlbC5xUlhrSUtNWGwobCRJMDEwUktibCk7DXQNdAkJCSRrWEd1X3VLcTFfMiBscmwoJElLa3lBYj4nSTAxMFJLYl91S3ExJ1MpbD9sJElLa3lBYj4nSTAxMFJLYl91S3ExJ1NsOmwiTTAxWCI7DXQJCQkka1hHdV9NQXFYSTFBS2tfMiBscmwoJElLa3lBYj4nSTAxMFJLYl80dUtxMSdTKWw/bCRJS2t5QWI+J0kwMTBSS2JfNHVLcTEnU2w6bCJPYXNRIjsNdAkJCQ10CQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfdUtxMV9JMDEwUktiJ1NsKSlsJGtYR3VfdUtxMV8yIGxybCRfc2Fzc3szZj4nTVJYX3VLcTFfSTAxMFJLYidTOw10CQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrX0kwMTBSS2InU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfSTAxMFJLYidTOw10CQkJDXQJCQkkdXhSX3VYUlhJMWxybCJzYVRhUW1sfWVBTSxsfWUwLjFLcSxsfWVNMDFYLGx9ZXVGS3ExX3UxS3EgLGxRSm5FX1RhZk5tSih9ZXkuUlJfdTFLcSApbDB1bHkuUlJfdTFLcSAsbH1lUHlBWFJNdSxsfWUxQTFSWCxsfWVJMDFYYktxICxsfWUwUjFfazA0WCxsfWVJSzQ0X2suNCxsfWUwUlJLR19JSzQ0LGx9ZXlBUFhNLGx9ZTEwYnUsbFhla1hHdV9xWDBNLGxYZTBSUktHX3EwMVgsbFhlcTAxQWtiLGxYZVZLMVhfay40LGxYZVZLMVh1LGxYZVZBWEdfWE1BMSxsWGVYTUExTTAxWCxsWGVYTUExS3EsbFhlcVgwdUtrbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWx9bGkkSTAxX2hLQWt3VGEvbWxMM3tmbCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1bFhsM2ZsKH1lQU1yWGVrWEd1X0FNKWx6SmFFYWxpJHUxS31fUkF1MXd1IDQyS1JscmwnJEkwMTBSS2InbG5mT2wwfX1xS1ZYclUibGVsJEdGWHFYX00wMVhsZWwibDNFT2FFbEJDbCJsZWwka1hHdV91S3ExXzIgbGVsImwibGVsJGtYR3VfTUFxWEkxQUtrXzIgbGVsImxUezd7bWwibGVsJEl1MTBxMWxlbCIsImxlbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1M7DXQJCQkkdXhSX0lLLmsxbHJsInNhVGFRbWxRM3ZmbSgqKWwwdWxJSy5rMWwvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsaSRJMDFfaEtBa19JSy5rMXd6SmFFYWxpJHUxS31fUkF1MXd1IDQyS1JscmwnJEkwMTBSS2InbG5mT2wwfX1xS1ZYclUibGVsJEdGWHFYX00wMVg7DXQNdAkJd2xYUnVYbGkNdA10CQkJZ2dsIyMjIyMjIyMjIyMjIyMjI2x1RktHbDQwQWtsfTBiWGwjIyMjIyMjIyMjIyMjIyMjIw10CQkJQXlsKCQgWDBxbHJybCcnbG5mT2wkNEtrMUZscnJsJydsbmZPbCRNMCBscnJsJydsbmZPbCEka1hHdUFNKWxpDXQNdAkJCQkkSTBrS2tBSTBSbHJsJElLa3lBYj4nRjExfV9GSzRYXy5xUidTOw10DXQJCQkJQXkobCRJS2t5QWI+J3UxMHExX3VBMVgnU2xycmxEbG5mT2wkVkFYR18xWDR9UjAxWGwhcmwicXV1IilsaQ10CQkJCQkNdAkJCQkJMnFYMDU7CQkJCQ10CQkJCXcNdAkJCQkNdAkJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbG5mT2wkSUtreUFiPid1WEtfSUtrMXFLUidTbG5mT2wkX05hbT4nSXUxMHExJ1NsKWxpDXQJDXQJCQkJCUF5bCh1LjJ1MXFsKGwkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsLWxVLGxVbClsIXJsJ2cnbDNFbCRfTmFtPidJdTEwcTEnU2xycmxVbClsaQ10CQkJCQkJDXQJCQkJCQkkcVhfLnFSbHJsWFB9UktNWGwobCJBa01YUGV9Rn0iLGx1MXExS1JLR1hxbChsJF9zYUVIYUU+J11KXV9zYVQvJ1NsKWwpOw10CQkJCQkJJHFYXy5xUmxybHFYdVgxbChsJHFYXy5xUmwpOw10CQkJCQkJDXQJCQkJCQlBeSh1LjJ1MXFsKGwkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsLWxVLGxVbClsIXJsJ2cnbG5mT2wkX05hbT4nSXUxMHExJ1NsIXJsVWwpbGkNdAkJCQkJCQkkcVhfLnFSbGVybCJ9MGJYZyJlQWsxVjBSKCRfTmFtPidJdTEwcTEnUyllImciOw10CQkJCQkJdw10CQkJCQkNdAkJCQkJCUZYME1YcSgiSm1tXWdVZQpsWQpVbDdLVlhNbF1YcTQwa1hrMVIgIik7DXQJCQkJCQlGWDBNWHEoIlRLSTAxQUtrOmxpJHFYXy5xUnciKTsNdAkJCQkJCU1BWCgiRVhNQXFYSTEiKTsNdAkJCQkJdw10CQkJCXcNdAkJCQ10CQkJCUF5bCgkSXUxMHExKWxpDXQJCQkJCQ10CQkJCQkkSXUxMHExbHJsJEl1MTBxMWwtbFU7DXQJCQkJCSRJdTEwcTFscmwkSXUxMHExbCpsJElLa3lBYj4na1hHdV9rLjQyWHEnUzsJCQ10CQkJCXcNdAkJCQ10CQkJCSQucVJffTBiWGxybHUuMnUxcWwobCRJS2t5QWI+J0YxMX1fRks0WF8ucVInUyxsCixsdTFxUlhrbChsJElLa3lBYj4nRjExfV9GSzRYXy5xUidTbClsLWxVbCk7DXQJCQkJJC51WHFfeC5YcSBscmwiIjsNdAkJCQkNdAkJCQlBeWwoJFZBWEdfMVg0fVIwMVhscnJsInF1dSIpbGkNdAkNdAkJCQkJJGtLMV8wUlJLR19JMDF1bHJsMHFxMCAoKTsNdAkJCQkJDXQJCQkJCXlLcVgwSUYoJEkwMV9Ba3lLbDB1bCRWMFIuWClsaQ10CQkJCQkJQXkobCEkVjBSLlg+JzBSUktHX3F1dSdTbClsJGtLMV8wUlJLR19JMDF1PlNscmwkVjBSLlg+J0FNJ1M7DXQJCQkJCXcNdAkJCQkJDXQJCQkJCUF5KGxJSy5rMSgka0sxXzBSUktHX0kwMXUpbClsaQ10DXQJCQkJCQlBeWwoJElLa3lBYj4nMFJSS0dfNC5SMUFfSTAxWGJLcSAnUylsaQ10CQkJCQkJCQ10CQkJCQkJCSRrSzFfMFJSS0dfSTAxdWxybCJBTWxmM21se2ZsKGxzYVRhUW1sT3tzbXtmUW0oImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVfSTAxdWVrWEd1X0FNKWwvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1X0kwMXVsekphRWFsSTAxX0FNbHtmbCgibGVsQTR9UktNWGwobCcsJyxsJGtLMV8wUlJLR19JMDF1bClsZWwiKWwpbG5mT2wiOw10CQkJCQkJDXQJCQkJCQl3bFhSdVhsaQ10CQkJCQkJCQ10CQkJCQkJCSRrSzFfMFJSS0dfSTAxdWxybCJJMDFYYktxIGxmM21se2ZsKCcibGVsQTR9UktNWGwobCInLCciLGwka0sxXzBSUktHX0kwMXVsKWxlbCInKWxuZk9sIjsNdAkJCQkJCQ10CQkJCQkJdw10CQkJCQkJDXQJCQkJCXdsWFJ1WGwka0sxXzBSUktHX0kwMXVscmwiIjsNdAkJCQkJDXQJCQkJCSR1eFJfdVhSWEkxbHJsInNhVGFRbWx9ZUFNLGx9ZTAuMUtxLGx9ZU0wMVgsbH1ldUZLcTFfdTFLcSAsbH1leS5SUl91MUtxICxsfWVQeUFYUk11LGx9ZTFBMVJYLGx9ZUkwMVhiS3EgLGx9ZTBSMV9rMDRYLGxYZTBSUktHX3F1dV8xLnEySyxsWGUwUlJLR19xdXVfTWpYa2wvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsfWxpJEkwMV9oS0Frd1RhL21sTDN7ZmwibGVsXUVhL3s4bGVsIl99S3UxX1hQMXEwdWxYbDNmbCh9ZUFNclhla1hHdV9BTSlsekphRWFsaSRrSzFfMFJSS0dfSTAxdXdpJHUxS31fUkF1MXd9ZTB9fXFLVlhyVWxuZk9sWGUwUlJLR19xdXVyVSI7DXQJCQkJCQ10CQkJCQlBeWwoJElLa3lBYj4ncXV1XzQxIH1YJ1MpbGkNdAkJCQkJCQ10CQkJCQkJJHV4Ul91WFJYSTFsZXJsImxuZk9sfWUwUlJLR180MEFrclUiOw10CQkJCQkNdAkJCQkJdw10CQkJCQkNdAkJCQkJJHV4Ul91WFJYSTFsZXJsJEdGWHFYX00wMVhsZWwibDNFT2FFbEJDbE0wMVhsT2FzUWxUezd7bWwKLCJsZWwkSUtreUFiPidxdXVfay40MlhxJ1M7DXQJCQkJDXQJCQkJd2xYUnVYbGkNdAkJCQkJDXQJCQkJCUF5bChBdXVYMWwobCRfc2Fzc3szZj4nTVJYX3VLcTFfNDBBaydTbCkpbCRrWEd1X3VLcTFfMiBscmwkX3Nhc3N7M2Y+J01SWF91S3ExXzQwQWsnUzsNdAkJCQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrXzQwQWsnU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfNDBBaydTOw10CQkJCQkNdAkJCQkJJHV4Ul91WFJYSTFscmwic2FUYVFtbH1lQU0sbH1lMC4xS3EsbH1lTTAxWCxsfWV1RktxMV91MUtxICxsUUpuRV9UYWZObUoofWV5LlJSX3UxS3EgKWwwdWx5LlJSX3UxS3EgLGx9ZVB5QVhSTXUsbH1lMUExUlgsbH1lSTAxWGJLcSAsbH1lMFIxX2swNFgsbH1lSUs0NF9rLjQsbH1lMFJSS0dfSUs0NCxsfWV5QVBYTSxsfWUxMGJ1LGxYZWtYR3VfcVgwTSxsWGUwUlJLR19xMDFYLGxYZXEwMUFrYixsWGVWSzFYX2suNCxsWGVWSzFYdSxsWGVWQVhHX1hNQTEsbFhlWE1BMU0wMVgsbFhlWE1BMUtxLGxYZXFYMHVLa2wvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsfWxpJEkwMV9oS0Frd1RhL21sTDN7ZmwibGVsXUVhL3s4bGVsIl99S3UxX1hQMXEwdWxYbDNmbCh9ZUFNclhla1hHdV9BTSlsekphRWFsaSR1MUt9X1JBdTF3MH19cUtWWHJVbG5mT2wwUlJLR180MEFrclUibGVsJEdGWHFYX00wMVhsZWwibDNFT2FFbEJDbCJsZWwkeUFQWE1sZWwka1hHdV91S3ExXzIgbGVsImwibGVsJGtYR3VfTUFxWEkxQUtrXzIgbGVsImxUezd7bWwibGVsJEl1MTBxMWxlbCIsImxlbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1M7DXQJCQkJCSR1eFJfSUsuazFscmwic2FUYVFtbFEzdmZtKCopbDB1bElLLmsxbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWxpJEkwMV9oS0FrX0lLLmsxd3pKYUVhbGkkdTFLfV9SQXUxdzB9fXFLVlhyVWxuZk9sMFJSS0dfNDBBa3JVImxlbCRHRlhxWF9NMDFYOw10CQkJCQ10CQkJCXcNdAkJCXcNdAkNdAkJCWdnbCMjIyMjIyMjIyMjIyMjIyNsc0ZLR2xrWEd1bDIgbCBYMHFsIyMjIyMjIyMjIyMjIyMjIyMNdAkJCUF5bCgkIFgwcWwhcmwnJ2wwa01sJDRLazFGbHJybCcnbDBrTWwkTTAgbHJybCcnKWxpDXQJCQkJQXlsKCRJdTEwcTEpbGkNdAkJCQkJDXQJCQkJCSRJdTEwcTFscmwkSXUxMHExbC1sVTsNdAkJCQkJJEl1MTBxMWxybCRJdTEwcTFsKmwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJCXcNdAkJCQkNdAkJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbG5mT2wkSUtreUFiPid1WEtfSUtrMXFLUidTKWxpDXQNdAkJCQkJQXlsKHUuMnUxcWwobCRfc2FFSGFFPidFYXB2YXNtX3ZFeydTLGwtbFUsbFVsKWwhcmwnZydsM0VsJF9OYW0+J0l1MTBxMSdTbHJybFVsM0VsdS4ydTFxbChsJF9zYUVIYUU+J0VhcHZhc21fdkV7J1MsbC1sRGwpbHJybCdnZydsM0VsQWsxVjBSKCRfTmFtPicgWDBxJ1MpbFpsVT1kCmwzRWxBazFWMFIoJF9OYW0+JyBYMHEnUylsY2xEVQoKKWxpDXQJCQkJCQkNdAkJCQkJCSRxWF8ucVJscmxYUH1SS01YbChsIkFrTVhQZX1GfSIsbHUxcTFLUktHWHFsKGwkX3NhRUhhRT4nXUpdX3NhVC8nU2wpbCk7DXQJCQkJCQkkcVhfLnFSbHJscVh1WDFsKGwkcVhfLnFSbCk7DXQJCQkJCQkNdAkJCQkJCUF5bChBazFWMFIoJF9OYW0+JyBYMHEnUylsWmxVPWQKbDNFbEFrMVYwUigkX05hbT4nIFgwcSdTKWxjbERVCgopbGkNdAkJCQkJCQkkIFgwcXJsTTAxWChsJ0MnLGwkX217N2FsKTsNdAkJCQkJCXcNdAkJCQkJCQ10CQkJCQkJJHFYXy5xUmxlcmwkIFgwcWUiZyI7DXQJCQkJCQkNdAkJCQkJCUF5KGwkX05hbT4nSXUxMHExJ1NsY2xVbClsaQ10CQkJCQkJCSRxWF8ucVJsZXJsIn0wYlhnImVBazFWMFIoJF9OYW0+J0l1MTBxMSdTKWUiZyI7DXQJCQkJCQl3DXQJCQkJCQkNdAkJCQkJCQ10CQkJCQkJRlgwTVhxKCJKbW1dZ1VlCmxZClVsN0tWWE1sXVhxNDBrWGsxUiAiKTsNdAkJCQkJCUZYME1YcSgiVEtJMDFBS2s6bGkkcVhfLnFSdyIpOw10CQkJCQkJTUFYKCJFWE1BcVhJMSIpOw10CQkJCQl3DXQJCQkJdw10CQkJCQ10CQkJCSQucVJffTBiWGxybCRJS2t5QWI+J0YxMX1fRks0WF8ucVInU2xlbCQgWDBxOw10CQkJCSQudVhxX3guWHEgbHJsIiBYMHFyImxlbCQgWDBxOw10CQkJCQ10CQkJCUF5KGwkSUtreUFiPicwUlJLR18wUjFfLnFSJ1NsKWwkSTBrS2tBSTBSbHJsJC5xUl99MGJYbGVsImciO2xYUnVYbCRJMGtLa0FJMFJscmwkXUpdX3NhVC9lIj8gWDBxciJsZWwkIFgwcTsNdAkJCQkNdAkJCQlBeWwoQXV1WDFsKGwkX3Nhc3N7M2Y+J01SWF91S3ExX00wMVgnU2wpKWwka1hHdV91S3ExXzIgbHJsJF9zYXNzezNmPidNUlhfdUtxMV9NMDFYJ1M7DXQJCQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrX00wMVgnU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfTTAxWCdTOw10CQkJCQ10CQkJCSR1eFJfdVhSWEkxbHJsInNhVGFRbWx9ZUFNLGx9ZTAuMUtxLGx9ZU0wMVgsbH1ldUZLcTFfdTFLcSAsbFFKbkVfVGFmTm1KKH1leS5SUl91MUtxIClsMHVseS5SUl91MUtxICxsfWVQeUFYUk11LGx9ZTFBMVJYLGx9ZUkwMVhiS3EgLGx9ZTBSMV9rMDRYLGx9ZUlLNDRfay40LGx9ZTBSUktHX0lLNDQsbH1leUFQWE0sbH1lMTBidSxsWGVrWEd1X3FYME0sbFhlMFJSS0dfcTAxWCxsWGVxMDFBa2IsbFhlVksxWF9rLjQsbFhlVksxWHUsbFhlVkFYR19YTUExLGxYZVhNQTFNMDFYLGxYZVhNQTFLcSxsWGVxWDB1S2tsL0UzN2wibGVsXUVhL3s4bGVsIl99S3UxbH1saSRJMDFfaEtBa3dUYS9tbEwze2ZsImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVsWGwzZmwofWVBTXJYZWtYR3VfQU0pbHpKYUVhbGkkdTFLfV9SQXUxd00wMVhsY3JsJ2kkIFgwcXctClUtClUnbmZPbE0wMVhsWmwnaSQgWDBxdy0KVS0KVSdsK2x7Zm1hRUhuVGxVbENhbkVsbmZPbDB9fXFLVlhyVSJsZWwkR0ZYcVhfTTAxWGxlbCJsM0VPYUVsQkNsImxlbCRrWEd1X3VLcTFfMiBsZWwibCJsZWwka1hHdV9NQXFYSTFBS2tfMiBsZWwibFR7N3ttbCJsZWwkSXUxMHExbGVsIiwibGVsJElLa3lBYj4na1hHdV9rLjQyWHEnUzsNdAkJCQkkdXhSX0lLLmsxbHJsInNhVGFRbWxRM3ZmbSgqKWwwdWxJSy5rMWwvRTM3bCJsZWxdRWEvezhsZWwiX31LdTFsaSRJMDFfaEtBa19JSy5rMXdHRlhxWGxpJHUxS31fUkF1MXdNMDFYbGNybCdpJCBYMHF3LQpVLQpVJ25mT2xNMDFYbFpsJ2kkIFgwcXctClUtClUnbCtse2ZtYUVIblRsVWxDYW5FbG5mT2wwfX1xS1ZYclUibGVsJEdGWHFYX00wMVg7DXQJCQl3DXQJCQkNdAkJCWdnbCMjIyMjIyMjIyMjIyMjIyNsc0ZLR2xrWEd1bDIgbDRLazFGbCMjIyMjIyMjIyMjIyMjIyMjDXQJCQlBeWwoJCBYMHFsIXJsJydsMGtNbCQ0S2sxRmwhcmwnJ2wwa01sJE0wIGxycmwnJylsaQ10CQkJCUF5bCgkSXUxMHExKWxpDXQJCQkJCSRJdTEwcTFscmwkSXUxMHExbC1sVTsNdAkJCQkJJEl1MTBxMWxybCRJdTEwcTFsKmwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJCXcNdAkJCQkNdAkJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbG5mT2wkSUtreUFiPid1WEtfSUtrMXFLUidTKWxpDXQNdAkJCQkJQXlsKHUuMnUxcWwobCRfc2FFSGFFPidFYXB2YXNtX3ZFeydTLGwtbFUsbFVsKWwhcmwnZydsM0VsJF9OYW0+J0l1MTBxMSdTbHJybFVsM0VsdS4ydTFxbChsJF9zYUVIYUU+J0VhcHZhc21fdkV7J1MsbC1sRGwpbHJybCdnZydsM0VsQWsxVjBSKCRfTmFtPicgWDBxJ1MpbFpsVT1kCmwzRWxBazFWMFIoJF9OYW0+JyBYMHEnUylsY2xEVQoKbDNFbEFrMVYwUigkX05hbT4nNEtrMUYnUylsWmxVbDNFbEFrMVYwUigkX05hbT4nNEtrMUYnUylsY2xVRClsaQ10CQkJCQkJDXQJCQkJCQkkcVhfLnFSbHJsWFB9UktNWGwobCJBa01YUGV9Rn0iLGx1MXExS1JLR1hxbChsJF9zYUVIYUU+J11KXV9zYVQvJ1NsKWwpOw10CQkJCQkJJHFYXy5xUmxybHFYdVgxbChsJHFYXy5xUmwpOw10CQkJCQkJDXQJCQkJCQlBeWwoQWsxVjBSKCRfTmFtPicgWDBxJ1MpbFpsVT1kCmwzRWxBazFWMFIoJF9OYW0+JyBYMHEnUylsY2xEVQoKKWxpDXQJCQkJCQkJJCBYMHFybE0wMVgobCdDJyxsJF9tezdhbCk7DXQJCQkJCQl3DXQJCQkJCQkNdAkJCQkJCSRxWF8ucVJsZXJsJCBYMHFlImciOw10CQkJCQkJDXQJCQkJCQlBeWwoQWsxVjBSKCRfTmFtPic0S2sxRidTKWxabFVsM0VsQWsxVjBSKCRfTmFtPic0S2sxRidTKWxjbFVEKWxpDXQJCQkJCQkJJDRLazFGcmxNMDFYKGwnNCcsbCRfbXs3YWwpOw10CQkJCQkJdw10CQkJCQkJDXQJCQkJCQkkcVhfLnFSbGVybCQ0S2sxRmUiZyI7DXQJCQkJCQkNdAkJCQkJCUF5KGwkX05hbT4nSXUxMHExJ1NsY2xVbClsaQ10CQkJCQkJCSRxWF8ucVJsZXJsIn0wYlhnImVBazFWMFIoJF9OYW0+J0l1MTBxMSdTKWUiZyI7DXQJCQkJCQl3DXQNdAkJCQkJCUZYME1YcSgiSm1tXWdVZQpsWQpVbDdLVlhNbF1YcTQwa1hrMVIgIik7DXQJCQkJCQlGWDBNWHEoIlRLSTAxQUtrOmxpJHFYXy5xUnciKTsNdAkJCQkJCU1BWCgiRVhNQXFYSTEiKTsNdAkJCQkJdw10CQkJCXcNdA10CQkJCSQucVJffTBiWGxybCRJS2t5QWI+J0YxMX1fRks0WF8ucVInU2xlbCQgWDBxbGVsImcibGVsJDRLazFGOw10CQkJCSQudVhxX3guWHEgbHJsIiBYMHFyImxlbCQgWDBxbGVsIiYwNH07NEtrMUZyImxlbCQ0S2sxRjsNdAkJCQkNdAkJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbClsJEkwa0trQUkwUmxybCQucVJffTBiWGxlbCJnIjtsWFJ1WGwkSTBrS2tBSTBSbHJsJF1KXV9zYVQvZSI/IFgwcXIibGVsJCBYMHFsZWwiJjRLazFGciJsZWwkNEtrMUY7DXQJCQkJDXQJCQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfdUtxMV9NMDFYJ1NsKSlsJGtYR3VfdUtxMV8yIGxybCRfc2Fzc3szZj4nTVJYX3VLcTFfTTAxWCdTOw10CQkJCUF5bChBdXVYMWwobCRfc2Fzc3szZj4nTVJYX01BcVhJMUFLa19NMDFYJ1NsKSlsJGtYR3VfTUFxWEkxQUtrXzIgbHJsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrX00wMVgnUzsNdAkJCQkNdAkJCQkkdXhSX3VYUlhJMWxybCJzYVRhUW1sfWVBTSxsfWUwLjFLcSxsfWVNMDFYLGx9ZXVGS3ExX3UxS3EgLGxRSm5FX1RhZk5tSih9ZXkuUlJfdTFLcSApbDB1bHkuUlJfdTFLcSAsbH1lUHlBWFJNdSxsfWUxQTFSWCxsfWVJMDFYYktxICxsfWUwUjFfazA0WCxsfWVJSzQ0X2suNCxsfWUwUlJLR19JSzQ0LGx9ZXlBUFhNLGx9ZTEwYnUsbFhla1hHdV9xWDBNLGxYZTBSUktHX3EwMVgsbFhlcTAxQWtiLGxYZVZLMVhfay40LGxYZVZLMVh1LGxYZVZBWEdfWE1BMSxsWGVYTUExTTAxWCxsWGVYTUExS3EsbFhlcVgwdUtrbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWx9bGkkSTAxX2hLQWt3VGEvbWxMM3tmbCJsZWxdRWEvezhsZWwiX31LdTFfWFAxcTB1bFhsM2ZsKH1lQU1yWGVrWEd1X0FNKWx6SmFFYWxpJHUxS31fUkF1MXdNMDFYbGNybCdpJCBYMHF3LWkkNEtrMUZ3LQpVJ25mT2xNMDFYbFpsJ2kkIFgwcXctaSQ0S2sxRnctClUnbCtse2ZtYUVIblRsVWw3M2ZtSmxuZk9sMH19cUtWWHJVImxlbCRHRlhxWF9NMDFYbGVsImwzRU9hRWxCQ2wibGVsJGtYR3VfdUtxMV8yIGxlbCJsImxlbCRrWEd1X01BcVhJMUFLa18yIGxlbCJsVHs3e21sImxlbCRJdTEwcTFsZWwiLCJsZWwkSUtreUFiPidrWEd1X2suNDJYcSdTOw10CQkJCSR1eFJfSUsuazFscmwic2FUYVFtbFEzdmZtKCopbDB1bElLLmsxbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWxpJEkwMV9oS0FrX0lLLmsxd0dGWHFYbGkkdTFLfV9SQXUxd00wMVhsY3JsJ2kkIFgwcXctaSQ0S2sxRnctClUnbmZPbE0wMVhsWmwnaSQgWDBxdy1pJDRLazFGdy0KVSdsK2x7Zm1hRUhuVGxVbDczZm1KbG5mT2wwfX1xS1ZYclUibGVsJEdGWHFYX00wMVg7DXQJCQl3DXQJCQ10CQkJZ2dsIyMjIyMjIyMjIyMjIyMjI2xzRktHbGtYR3VsMiBsTTAgbCMjIyMjIyMjIyMjIyMjIyMjDXQNdAkJCUF5bCgkIFgwcWwhcmwnJ2wwa01sJDRLazFGbCFybCcnbDBrTWwkTTAgbCFybCcnbDBrTWwkdS4yMEkxQUtrbHJybCcnKWxpDXQJCQkJQXlsKCRJdTEwcTEpbGkNdAkJCQkJJEl1MTBxMWxybCRJdTEwcTFsLWxVOw10CQkJCQkkSXUxMHExbHJsJEl1MTBxMWwqbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1M7DXQJCQkJdw10DXQJCQkJQXkobCRJS2t5QWI+JzBSUktHXzBSMV8ucVInU2xuZk9sJElLa3lBYj4ndVhLX0lLazFxS1InUylsaQ10DXQJCQkJCUF5bCh1LjJ1MXFsKGwkX3NhRUhhRT4nRWFwdmFzbV92RXsnUyxsLWxVLGxVbClsIXJsJ2cnbDNFbCRfTmFtPidJdTEwcTEnU2xycmxVbDNFbHUuMnUxcWwobCRfc2FFSGFFPidFYXB2YXNtX3ZFeydTLGwtbERsKWxycmwnZ2cnbDNFbEFrMVYwUigkX05hbT4nIFgwcSdTKWxabFU9ZApsM0VsQWsxVjBSKCRfTmFtPicgWDBxJ1MpbGNsRFUKCmwzRWxBazFWMFIoJF9OYW0+JzRLazFGJ1MpbFpsVWwzRWxBazFWMFIoJF9OYW0+JzRLazFGJ1MpbGNsVURsM0VsQWsxVjBSKCRfTmFtPidNMCAnUylsWmxVbDNFbEFrMVYwUigkX05hbT4nTTAgJ1MpbGNsWVUpbGkNdAkJCQkJCQ10CQkJCQkJJHFYXy5xUmxybFhQfVJLTVhsKGwiQWtNWFBlfUZ9IixsdTFxMUtSS0dYcWwobCRfc2FFSGFFPiddSl1fc2FULydTbClsKTsNdAkJCQkJCSRxWF8ucVJscmxxWHVYMWwobCRxWF8ucVJsKTsNdAkJCQkJCQ10CQkJCQkJQXlsKEFrMVYwUigkX05hbT4nIFgwcSdTKWxabFU9ZApsM0VsQWsxVjBSKCRfTmFtPicgWDBxJ1MpbGNsRFUKCilsaQ10CQkJCQkJCSQgWDBxcmxNMDFYKGwnQycsbCRfbXs3YWwpOw10CQkJCQkJdw10CQkJCQkJDXQJCQkJCQkkcVhfLnFSbGVybCQgWDBxZSJnIjsNdAkJCQkJCQ10CQkJCQkJQXlsKEFrMVYwUigkX05hbT4nNEtrMUYnUylsWmxVbDNFbEFrMVYwUigkX05hbT4nNEtrMUYnUylsY2xVRClsaQ10CQkJCQkJCSQ0S2sxRnJsTTAxWChsJzQnLGwkX217N2FsKTsNdAkJCQkJCXcNdAkJCQkJCQ10CQkJCQkJJHFYXy5xUmxlcmwkNEtrMUZlImciOw10CQkJCQkJDXQJCQkJCQlBeWwoQWsxVjBSKCRfTmFtPidNMCAnUylsWmxVbDNFbEFrMVYwUigkX05hbT4nTTAgJ1MpbGNsWVUpbGkNdAkJCQkJCQkkTTAgcmxNMDFYKGwnTScsbCRfbXs3YWwpOw10CQkJCQkJdw10CQkJCQkJDXQJCQkJCQkkcVhfLnFSbGVybCRNMCBlImciOw10CQkJCQkJDXQJCQkJCQlBeShsJF9OYW0+J0l1MTBxMSdTbGNsVWwpbGkNdAkJCQkJCQkkcVhfLnFSbGVybCJ9MGJYZyJlQWsxVjBSKCRfTmFtPidJdTEwcTEnUyllImciOw10CQkJCQkJdw10DXQJCQkJCQlGWDBNWHEoIkptbV1nVWUKbFkKVWw3S1ZYTWxdWHE0MGtYazFSICIpOw10CQkJCQkJRlgwTVhxKCJUS0kwMUFLazpsaSRxWF8ucVJ3Iik7DXQJCQkJCQlNQVgoIkVYTUFxWEkxIik7DXQJCQkJCXcNdAkJCQl3DXQJCQkJDXQJCQkJJC5xUl99MGJYbHJsJElLa3lBYj4nRjExfV9GSzRYXy5xUidTbGVsJCBYMHFsZWwiZyJsZWwkNEtrMUZsZWwiZyJsZWwkTTAgOw10CQkJCSQudVhxX3guWHEgbHJsIiBYMHFyImxlbCQgWDBxbGVsIiYwNH07NEtrMUZyImxlbCQ0S2sxRmxlbCImMDR9O00wIHIibGVsJE0wIDsNdAkJCQkNdAkJCQlBeShsJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbClsJEkwa0trQUkwUmxybCQucVJffTBiWGxlbCJnIjtsWFJ1WGwkSTBrS2tBSTBSbHJsJF1KXV9zYVQvZSI/IFgwcXIibGVsJCBYMHFsZWwiJjRLazFGciJsZWwkNEtrMUZsZWwiJk0wIHIibGVsJE0wIDsNdAkJCQkNdAkJCQlBeWwoQXV1WDFsKGwkX3Nhc3N7M2Y+J01SWF91S3ExX00wMVgnU2wpKWwka1hHdV91S3ExXzIgbHJsJF9zYXNzezNmPidNUlhfdUtxMV9NMDFYJ1M7DXQJCQkJQXlsKEF1dVgxbChsJF9zYXNzezNmPidNUlhfTUFxWEkxQUtrX00wMVgnU2wpKWwka1hHdV9NQXFYSTFBS2tfMiBscmwkX3Nhc3N7M2Y+J01SWF9NQXFYSTFBS2tfTTAxWCdTOw10CQkJCQ10CQkJCSR1eFJfdVhSWEkxbHJsInNhVGFRbWx9ZUFNLGx9ZTAuMUtxLGx9ZU0wMVgsbH1ldUZLcTFfdTFLcSAsbFFKbkVfVGFmTm1KKH1leS5SUl91MUtxIClsMHVseS5SUl91MUtxICxsfWVQeUFYUk11LGx9ZTFBMVJYLGx9ZUkwMVhiS3EgLGx9ZTBSMV9rMDRYLGx9ZUlLNDRfay40LGx9ZTBSUktHX0lLNDQsbH1leUFQWE0sbH1lMTBidSxsWGVrWEd1X3FYME0sbFhlMFJSS0dfcTAxWCxsWGVxMDFBa2IsbFhlVksxWF9rLjQsbFhlVksxWHUsbFhlVkFYR19YTUExLGxYZVhNQTFNMDFYLGxYZVhNQTFLcSxsWGVxWDB1S2tsL0UzN2wibGVsXUVhL3s4bGVsIl99S3UxbH1saSRJMDFfaEtBa3dUYS9tbEwze2ZsImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVsWGwzZmwofWVBTXJYZWtYR3VfQU0pbHpKYUVhbGkkdTFLfV9SQXUxd00wMVhsY3JsJ2kkIFgwcXctaSQ0S2sxRnctaSRNMCB3J2xuZk9sTTAxWGxabCdpJCBYMHF3LWkkNEtrMUZ3LWkkTTAgdydsK2x7Zm1hRUhuVGxEV2xKM3ZFbG5mT2wwfX1xS1ZYclUibGVsJEdGWHFYX00wMVhsZWwibDNFT2FFbEJDbCJsZWwka1hHdV91S3ExXzIgbGVsImwibGVsJGtYR3VfTUFxWEkxQUtrXzIgbGVsImxUezd7bWwibGVsJEl1MTBxMWxlbCIsImxlbCRJS2t5QWI+J2tYR3Vfay40MlhxJ1M7DXQJCQkJJHV4Ul9JSy5rMWxybCJzYVRhUW1sUTN2Zm0oKilsMHVsSUsuazFsL0UzN2wibGVsXUVhL3s4bGVsIl99S3UxbGkkSTAxX2hLQWtfSUsuazF3ekphRWFsaSR1MUt9X1JBdTF3TTAxWGxjcmwnaSQgWDBxdy1pJDRLazFGdy1pJE0wIHcnbG5mT2xNMDFYbFpsJ2kkIFgwcXctaSQ0S2sxRnctaSRNMCB3J2wrbHtmbWFFSG5UbERXbEozdkVsbmZPbDB9fXFLVlhyVSJsZWwkR0ZYcVhfTTAxWDsNdAkJDXQJCQl3DXQJCQkNdAkJCWdnbCMjIyMjIyMjIyMjIyMjIyNsLy5SUmxmWEd1bCMjIyMjIyMjIyMjIyMjIyMjDXQJCQlBeWwoJHUuMjBJMUFLa2whcmwnJ2wzRWwka1hHdUFNKWxpDXQJCQkJQXlsKCFsJGtYR3VBTSlsJHV4Ul9rWEd1bHJsInNhVGFRbWwqbC9FMzdsImxlbF1FYS97OGxlbCJffUt1MWxUYS9tbEwze2ZsImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVsM2ZsKCJsZWxdRWEvezhsZWwiX31LdTFlQU1yImxlbF1FYS97OGxlbCJffUt1MV9YUDFxMHVla1hHdV9BTSlsekphRWFsMFIxX2swNFhscicka1hHdV9rMDRYJ2xuZk9sTTAxWGxjcmwnaSQgWDBxdy1pJDRLazFGdy1pJE0wIHcnbG5mT2xNMDFYbFpsJ2kkIFgwcXctaSQ0S2sxRnctaSRNMCB3J2wrbHtmbWFFSG5UbERXbEozdkVsVHs3e21sVSI7DXQJCQkJWFJ1WGwkdXhSX2tYR3Vscmwic2FUYVFtbCpsL0UzN2wibGVsXUVhL3s4bGVsIl99S3UxbFRhL21sTDN7ZmwibGVsXUVhL3s4bGVsIl99S3UxX1hQMXEwdWwzZmwoImxlbF1FYS97OGxlbCJffUt1MWVBTXIibGVsXUVhL3s4bGVsIl99S3UxX1hQMXEwdWVrWEd1X0FNKWx6SmFFYWxsQU1scmwnaSRrWEd1QU13JyI7DXQJCQkJDXQJCQkJQXlsKCR1LjIwSTFBS2tscnJsJycpbCR1LjIwSTFBS2tscmwidUZLR3kuUlIiOw10CQkJdw10CQl3DXQJCQ10CQlBeWwoKCR1LjIwSTFBS2tscnJsInVGS0d5LlJSImxLcWwkdS4yMEkxQUtrbHJybCIwTU1JSzQ0WGsxIilsbmZPbChsKCFBdXVYMSgkSTAxWGJLcSApbDNFbCRJMDFYYktxIGxycmwiIilsKSlsaQ10CQkJDXQJCQlnZyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDXQJCQlnZ2xsbGxsbGxsbGxuTU1sMGxJSzQ0WGsxbDFLbDFGWGxNMDEwMjB1WA10CQkJZ2cjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw10CQkJQXlsKEF1dVgxKGwkX10zc20+J3UuMjBJMUFLaydTbClsbmZPbCRfXTNzbT4ndS4yMEkxQUtrJ1NscnJsIjBNTUlLNDRYazEiKWxpDXQJCQkJDXQJCQkJJDBSUktHXzBNTV9JSzQ0WGsxbHJsMXEuWDsNdAkJCQkkMFJSS0dfSUs0NFhrMXVscmwxcS5YOw10CQkJCSQwaDBQXzBNTXVscmx5MFJ1WDsNdAkJCQkNdAkJCQlBa0lSLk1YX0trSVhsKE9UYV1SLmJBa3U6OlFGWEk1KGFmTntmYV9Pe0VsZWwnZzRLTS5SWHVnME1NSUs0NFhrMXVlfUZ9JykpOw10CQkJdw10CQkJZ2cjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw10CQkJZ2dsbGxsbGxsbGxzRktHbDFGWGx5LlJSbGtYR3UNdAkJCWdnIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNdAkJCUF5bCgkdS4yMEkxQUtrbHJybCJ1RktHeS5SUiIpbGkNdAkJCQkkMFJSS0dfSUs0NFhrMXVscmwxcS5YOw10CQkJDXQJCQkJQWtJUi5NWF9La0lYbChPVGFdUi5iQWt1OjpRRlhJNShhZk57ZmFfT3tFbGVsJ2c0S00uUlh1Z3VGS0dleS5SUmV9Rn0nKSk7DXQJCQl3DXQJCQ10CQl3bFhSdVhsaQ10CQkJDXQJCQlnZyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDXQJCQlnZ2xsbGxsbGxsbEhBWEdBa2JsLnVYcWx9cUt5QVJYDXQJCQlnZyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjDXQJCQlBeWwoJHUuMjBJMUFLa2xycmwnLnVYcUFreUsnKWxpDXQJCQkJDXQJCQkJJDBSUktHXy51WHFBa3lLbHJsMXEuWDsNdAkJCQlBa0lSLk1YX0trSVhsKE9UYV1SLmJBa3U6OlFGWEk1KGFmTntmYV9Pe0VsZWwnZzRLTS5SWHVnfXFLeUFSWGV9Rn0nKSk7DXQJCQkNdAkJCXcNdAkJCQ10CQkJZ2cjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIw10CQkJZ2dsbGxsbGxsbGxIQVhHQWtibHVGS3ExbGtYR3UNdAkJCWdnIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMNdAkJCQ10CQkJJEkwSUZYX31xWHlBUGxybCJJS2sxWGsxXyJlJE1SWF80S00uUlg7DXQNdAkJCSRfc2Fzc3szZj4ncVh5WHFxWHEnU2xybEYxNFJ1fVhJQTBSSUYwcXUoJF9zYUVIYUU+J0VhcHZhc21fdkV7J1MsbGFmbV9wdjNtYXMsbCRJS2t5QWI+J0lGMHF1WDEnU2wpOw10CQkJDXQJCQlBeWwoJEkwMTBSS2JsIXJsIiIpbGkNdAkJCQkNdAkJCQkkSTBJRlhffXFYeUFQbGVybCJfSTAxMFJLYl8ibGVsJEkwMTBSS2I7DXQJCQkNdAkJCXdsWFJ1WEF5bCgkTUtscnJsIlIwdTFrWEd1IilsaQ10CQkJCQ10CQkJCSRJMElGWF99cVh5QVBsZXJsIl9SMHUxa1hHdSI7DXQJCQkNdAkJCXdsWFJ1WEF5bCgkdS4yMEkxQUtrbHJybCcwUlJrWEd1JylsaQ10DXQJCQkJJEkwSUZYX31xWHlBUGxlcmwiXzBSUmtYR3VfImVsJC51WHE7DXQNdAkJCXdsWFJ1WEF5bCgkTUtscnJsJzEwYnUnKWxpDXQNdAkJCQkkSTBJRlhffXFYeUFQbGVybCJfMTBidUlSXyJlbCQxMGI7DXQNdAkJCXdsWFJ1WEF5bCgkTUtscnJsJ1B5dVgwcUlGJylsaQ10CQkJCQ10CQkJCUF5KCRQeWswNFgpbCRJMElGWF99cVh5QVBsZXJsIl9QeXVYMHFJRl8ibGVsJFB5azA0WGxlbCJfImxlbCRQeTsNdAkJCQlYUnVYbCRJMElGWF99cVh5QVBsZXJsIl9QeXVYMHFJRl8iZWwkUHk7DXQNdAkJCXdsWFJ1WGxpDXQJCQkJDXQJCQkJJEkwSUZYX31xWHlBUGxlcmwiXyI7DXQJCQkJDXQJCQkJQXlsKCQ0S2sxRilsJEkwSUZYX31xWHlBUGxlcmwiNEtrMUZfImxlbCQ0S2sxRjsNdAkJCQlBeWwoJCBYMHEpbCRJMElGWF99cVh5QVBsZXJsIiBYMHFfImxlbCQgWDBxOw10CQkJCUF5bCgkTTAgKWwkSTBJRlhffXFYeUFQbGVybCJNMCBfImxlbCRNMCA7DXQJCQkJQXlsKCRJMDFYYktxIClsJEkwSUZYX31xWHlBUGxlcmwiSTAxWGJLcSBfImxlbCRJMDFYYktxIDsNdAkJCXcNdAkJCQ10CQkJJEkwSUZYX31xWHlBUGxlcmwiXzFYNH0wMVhfImxlbCRJS2t5QWI+J3U1QWsnUzsNdA10CQkJQXlsKCRWQVhHXzFYNH1SMDFYbHJybCJxdXUiKWxpDXQNdAkJCQlBeWwoJEkwMTBSS2IpbCQwSTFBVlhscmxNUlhfSTBJRlhsKGwicXV1IixsJEkwMTBSS2IsbHkwUnVYbCk7CQkJCQ10CQkJCVhSdVhsJDBJMUFWWGxybE1SWF9JMElGWGwobCJxdXUiLGwkSTAxWGJLcSBfQU0sbHkwUnVYbCk7DXQJCQkNdAkJCXdsWFJ1WGxpDXQJCQkJDXQJCQkJQXlsKCRBdV9SS2JiWE1sMGtNbCgkLnVYcV9icUsufT4kNFg0MlhxX0FNPicudVhxX2JxSy59J1NTPicwUlJLR19YTUExJ1NsMGtNbCFsJC51WHFfYnFLLn0+JDRYNDJYcV9BTT4nLnVYcV9icUsufSdTUz4nMFJSS0dfMFJSX1hNQTEnUykpbCRJS2t5QWI+JzBSUktHX0kwSUZYJ1Nscmx5MFJ1WDsNdAkJCQlBeWwoQXV1WDEoJF9zYXNzezNmPidNUlhfa0tfSTBJRlgnUylsbmZPbCRfc2Fzc3szZj4nTVJYX2tLX0kwSUZYJ1MpbCRJS2t5QWI+JzBSUktHX0kwSUZYJ1Nscmx5MFJ1WDsNdAkJCQlBeWwoJEl1MTBxMSlsJEkwSUZYX0FNbHJsKCRJdTEwcTFsZ2wkSUtreUFiPidrWEd1X2suNDJYcSdTKWwrbFU7DXQJCQkJWFJ1WGwkSTBJRlhfQU1scmxVOw10CQkJCQ10CQkJCSRJS2t5QWI+JzQwUF9JMElGWF99MGJYdSdTbHJsQWsxVjBSKCRJS2t5QWI+JzQwUF9JMElGWF99MGJYdSdTKTsNdAkJCQlBeSgkSUtreUFiPic0MFBfSTBJRlhffTBiWHUnU2xabFkpbCRJS2t5QWI+JzQwUF9JMElGWF99MGJYdSdTbHJsWTsNdA10CQkJCUF5bCgkSUtreUFiPicwUlJLR19JMElGWCdTbG5mT2wkSTBJRlhfQU1sWnJsJElLa3lBYj4nNDBQX0kwSUZYX30wYlh1J1MpbGkNdAkJCQkJJDBJMUFWWGxybE1SWF9JMElGWChsImtYR3UiLGwkSTBJRlhfQU1sZWwkSTBJRlhffXFYeUFQLGwxcS5YbCk7DXQJCQkJCSR1RktxMV9rWEd1X0kwSUZYbHJsMXEuWDsNdAkJCQl3bFhSdVhsaQ10CQkJCQkkMEkxQVZYbHJseTBSdVg7DXQJCQkJCSR1RktxMV9rWEd1X0kwSUZYbHJseTBSdVg7DXQJCQkJdw10CQkJDXQJCQl3DXQJCQkNdAkJCUF5bCgkMEkxQVZYKWxpDXQNdAkJCQkkMX1SLWNxWHUuUjE+J0lLazFYazEnU2xlcmwkMEkxQVZYOw10CQkJCSQwSTFBVlhscmxrLlJSOw10CQkJCSRrWEd1X3lLLmtNbHJsMXEuWDsNdAkJCQlBeWwoJElLa3lBYj4nMFJSS0dfeC5BSTVfRyB1QUcgYidTbDBrTWwoJC51WHFfYnFLLn0+JDRYNDJYcV9BTT4nLnVYcV9icUsufSdTUz4nMFJSS0dfWE1BMSdTbEtxbCQudVhxX2JxSy59PiQ0WDQyWHFfQU0+Jy51WHFfYnFLLn0nU1M+JzBSUktHXzBSUl9YTUExJ1MpKWwkMFJSS0dfSUs0NFhrMXVfMGgwUGxybDFxLlg7DXQJCQkJWFJ1WGwkMFJSS0dfSUs0NFhrMXVfMGgwUGxybHkwUnVYOw10CQkJDXQJCQl3bFhSdVhsaQ10CQkJCQ10CQkJCUFrSVIuTVhfS2tJWGwoT1RhXVIuYkFrdTo6UUZYSTUoYWZOe2ZhX097RWxlbCdnNEtNLlJYdWd1RktHZXVGS3ExZX1GfScpKTsNdAkJCQkNdAkJCQlBeWwoISRJS2t5QWI+JzBSUktHX3guQUk1X0cgdUFHIGInUylsJDBSUktHX0lLNDRYazF1XzBoMFBscmx5MFJ1WDsNdAkJCQkNdAkJCQlBeWwoJElLa3lBYj4neUFSWHVfMFJSS0cnUylsQXlsKHUxcX1LdWwobCQxfVItY3FYdS5SMT4nSUtrMVhrMSdTLGwiPjAxMTBJRjRYazFyImwpbCFycmx5MFJ1WClsaQ10CQkJCQkkMX1SLWNxWHUuUjE+J0lLazFYazEnU2xybHVGS0dfMDExMElGbChsJDF9Ui1jcVh1LlIxPidJS2sxWGsxJ1MsbCQwMTEwSUY0WGsxdWwpOw10CQkJCXcNdAkJCQkNdAkJCQlBeWwoJFZBWEdfMVg0fVIwMVhscnJsInF1dSJsbmZPbCRrWEd1X3lLLmtNKWxpDXQJCQkJCQ10CQkJCQlBeWwoJEkwMTBSS2IpbElxWDAxWF9JMElGWGwobCJxdXUiLGwkMX1SLWNxWHUuUjE+J0lLazFYazEnUyxsJEkwMTBSS2IsbHkwUnVYbCk7DXQJCQkJCVhSdVhsSXFYMDFYX0kwSUZYbChsInF1dSIsbCQxfVItY3FYdS5SMT4nSUtrMVhrMSdTLGwkSTAxWGJLcSBfQU0sbHkwUnVYbCk7DXQJCQkJDXQJCQkJd2xYUnVYQXlsKCRrWEd1X3lLLmtNbG5mT2wkSTBJRlhfQU1sWnJsJElLa3lBYj4nNDBQX0kwSUZYX30wYlh1J1NsKWxJcVgwMVhfSTBJRlhsKGwia1hHdSIsbCQxfVItY3FYdS5SMT4nSUtrMVhrMSdTLGwkSTBJRlhfQU1sZWwkSTBJRlhffXFYeUFQLGwxcS5YbCk7DXQNdAkJCXcNdAkJCQ10CQkJQXkoJDF9Ui1jcVh1LlIxPidJS2sxWGsxJ1NsbmZPbCRJMGtLa0FJMFJsbmZPbEFrMVYwUigkX05hbT4nSXUxMHExJ1MpbG5mT2xBazFWMFIoJF9OYW0+J0l1MTBxMSdTKWwhcmxVbClsaQ10CQkJCQkNdAkJCQkJQXkobCRJS2t5QWI+JzBSUktHXzBSMV8ucVInU2wpbGkNdAkJCQkJCQ10CQkJCQkJJEkwa0trQUkwUmxlcmwifTBiWGciZUFrMVYwUigkX05hbT4nSXUxMHExJ1MpZSJnIjsNdAkJCQkJCQ10CQkJCQl3bFhSdVhsaQ10CQkJCQkJDXQJCQkJCQlBeWwoJC51WHFfeC5YcSApbGkNdAkJCQkJCQkNdAkJCQkJCQkkSTBrS2tBSTBSbHJsImkkXUpdX3NhVC93P0l1MTBxMXIiZUFrMVYwUigkX05hbT4nSXUxMHExJ1MpZSImImV1MXFfcVh9UjBJWCgnJjA0fTsnLGwnJicsbCQudVhxX3guWHEgKTsNdAkJCQkJCQkNdAkJCQkJCXdsWFJ1WGwkSTBrS2tBSTBSbHJsImkkXUpdX3NhVC93P0l1MTBxMXIiZUFrMVYwUigkX05hbT4nSXUxMHExJ1MpOw10CQkJCQl3DXQJCQkJCQ10CQkJdw10CQkJDXQJCQ10CQl3DXQNdHcNdA10ZyoNdHJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyDXRsbUZYbEsuMX0uMWxLeWwxRlhsfTBiWGxGWDBNWHENdHJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJyDXQqZw10JDFBMVJfWGxybCcnOw10JGswNF9YbHJsJyc7DXQkcXV1Xy5xUmxybCcnOw10JHF1dV8xQTFSWGxybCcnOw10DXRBeWwoJE1LbHJybCJJMDEibDBrTWwkSTAxWGJLcSBsIXJsJydsMGtNbCR1LjIwSTFBS2tscnJsJycpbGkNdAkNdAkkNFgxMDEwYnU+J01YdUlxQX0xQUtrJ1NscmwoJEkwMV9Ba3lLPiRJMDFYYktxIF9BTVM+J01YdUlxJ1NsIXJsJycpbD9sJEkwMV9Ba3lLPiRJMDFYYktxIF9BTVM+J01YdUlxJ1NsOmwkNFgxMDEwYnU+J01YdUlxQX0xQUtrJ1M7DXQJJDRYMTAxMGJ1Pic1WCBHS3FNdSdTbHJsKCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPic1WCBHS3FNdSdTbCFybCcnKWw/bCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPic1WCBHS3FNdSdTbDpsJDRYMTAxMGJ1Pic1WCBHS3FNdSdTOw10DXQJQXlsKCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPic0WDEwMUExUlgnU2whcmwnJylsJDRYMTAxMGJ1PidGWDBNWHFfMUExUlgnU2xybCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPic0WDEwMUExUlgnUzsNdAlYUnVYbCRrMDRfWGxybHUxcUF9dVIwdUZYdWwobCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPidrMDRYJ1NsKTsNdAkNdAlBeWwoJElLa3lBYj4nMFJSS0dfMFIxXy5xUidTbClsaQ10CQkkcXV1Xy5xUmxybCQucVJffTBiWGxlbCJnImxlbCJxdXVlUDRSIjsNdAl3bFhSdVhsaQ10CQkkcXV1Xy5xUmxybCRdSl1fc2FUL2xlbCI/NEtNcnF1dSZNS3JJMDEmSTAxWGJLcSByImxlbCRJMDFfQWt5Sz4kSTAxWGJLcSBfQU1TPicwUjFfazA0WCdTOw10CXcNdA10d2xYUnVYQXlsKCR1LjIwSTFBS2tscnJsJy51WHFBa3lLJylsaQ10CSRrMDRfWGxybCQudVhxOw10CQ10CUF5bCgkSUtreUFiPicwUlJLR18wUjFfLnFSJ1NsKWxpDXQJCSRxdXVfLnFSbHJsJC5xUl99MGJYbGVsImcibGVsInF1dWVQNFIiOw10CXdsWFJ1WGxpDXQJCSRxdXVfLnFSbHJsJF1KXV9zYVQvbGVsIj80S01ycXV1JnUuMjBJMUFLa3IwUlJrWEd1Ji51WHFyImxlbC5xUlhrSUtNWGwobCQudVhxbCk7DXQJdw10DXR3bFhSdVhBeWwoJHUuMjBJMUFLa2xycmwnMFJSa1hHdScpbGkNdAkkazA0X1hscmwkUjBrYj4ndUZLR18udVhxX2tYR3UnU2xlbCdsJ2xlbCQudVhxOw10CQ10CUF5bCgkSUtreUFiPicwUlJLR18wUjFfLnFSJ1MpbGkNdAkJJHF1dV8ucVJscmwkSUtreUFiPidGMTF9X0ZLNFhfLnFSJ1NsZWwiLnVYcWcibGVsLnFSWGtJS01YbChsJC51WHFsKWxlbCJnImxlbCJxdXVlUDRSIjsNdAl3bFhSdVhsaQ10CQkkcXV1Xy5xUmxybCRdSl1fc2FUL2xlbCI/NEtNcnF1dSZ1LjIwSTFBS2tyMFJSa1hHdSYudVhxciJsZWwucVJYa0lLTVhsKGwkLnVYcWwpOw10CXcNdA10d2xYUnVYQXlsKCR1LjIwSTFBS2tscnJsJ2tYR31LdTF1JylsJGswNF9YbHJsJFIwa2I+JzFBMVJYX2tYRydTOw10WFJ1WEF5bCgkTUtscnJsJ3UxMDF1JylsJGswNF9YbHJsJFIwa2I+JzFBMVJYX3UxMDF1J1M7DXRYUnVYQXlsKCRNS2xycmwnME1Na1hHdScpbCRrMDRfWGxybCRSMGtiPicxQTFSWF8wTU1rWEd1J1M7DXRYUnVYQXlsKCRNS2xycmwncVhiQXUxWHEnKWwkazA0X1hscmwkUjBrYj4nMUExUlhfcVhiQXUxWHEnUzsNdFhSdVhBeWwoJE1LbHJybCd5MFZLcUExWHUnKWwkazA0X1hscmwkUjBrYj4nMUExUlhfeTBWJ1M7DXRYUnVYQXlsKCRNS2xycmwnfTQnKWwkazA0X1hscmwkUjBrYj4nMUExUlhffTQnUzsNdFhSdVhBeWwoJE1LbHJybCd5WFhNMjBJNScpbCRrMDRfWGxybCRSMGtiPicxQTFSWF95WFhNJ1M7DXRYUnVYQXlsKCRNS2xycmwnUjB1MUlLNDRYazF1JylsJGswNF9YbHJsJFIwa2I+JzFBMVJYX1IwdTEnUzsNdFhSdVhBeWwoJE1LbHJybCdSS3UxfTB1dUdLcU0nKWwkazA0X1hscmwkUjBrYj4nMUExUlhfUkt1MSdTOw10WFJ1WEF5bCgkTUtscnJsJ3VYMHFJRicpbCRrMDRfWGxybCRSMGtiPicxQTFSWF91WDBxSUYnUzsNdFhSdVhBeWwoJE1LbHJybCd1MTAxQUknKWwkMUExUl9YbHJsJHUxMDFBSV9NWHVJcTsNdFhSdVhBeWwoJE1LbHJybCdSMHUxa1hHdScpbCRrMDRfWGxybCRSMGtiPidSMHUxX2tYR3UnUzsNdFhSdVhBeWwoJE1LbHJybCcwUlIxMGJ1JylsJGswNF9YbHJsJFIwa2I+JzEwYl9JUksuTSdTOw10WFJ1WEF5bCgkTUtscnJsJ3EuUlh1JylsJGswNF9YbHJsJFIwa2I+J3EuUlh1X30wYlgnUzsNdFhSdVhBeWwoJE1LbHJybCcxMGJ1JylsJGswNF9YbHJsdTFxQX11UjB1Rlh1KCQxMGIpOw10WFJ1WEF5bCgkTUtscnJsJ1B5dVgwcUlGJylsJGswNF9YbHJsJFB5Ow10WFJ1WEF5bCgkSTAxMFJLYmwhcmwiIilsaWwNdAkkazA0X1hscmwkUjBrYj4nMUExUlhfSTAxMFJLYidTbGVsJ2wmcTB4Lks7bCdsZWwkSTAxMFJLYjsNdA10CUF5bCgkSUtreUFiPicwUlJLR18wUjFfLnFSJ1MpbGkNdAkJJHF1dV8ucVJscmwkSUtreUFiPidGMTF9X0ZLNFhfLnFSJ1NsZWwiSTAxMFJLYmcibGVsLnFSWGtJS01YbChsJEkwMTBSS2JsKWxlbCJnImxlbCJxdXVlUDRSIjsNdAl3bFhSdVhsaQ10CQkkcXV1Xy5xUmxybCRdSl1fc2FUL2xlbCI/NEtNcnF1dSZJMDEwUkticiJsZWwucVJYa0lLTVhsKGwkSTAxMFJLYmwpOw10CXcNdA10dw10WFJ1WGxpDXQJDXQJQXlsKCQgWDBxbCFybCcnbDBrTWwkNEtrMUZscnJsJydsMGtNbCRNMCBscnJsJycpbCRrMDRfWGxybCRSMGtiPicxQTFSWF9NMDFYJ1NsZWwnbCdsZWwkIFgwcWxlbCdsJ2xlbCRSMGtiPicxQTFSWF8gWDBxJ1M7DXQJQXlsKCQgWDBxbCFybCcnbDBrTWwkNEtrMUZsIXJsJydsMGtNbCRNMCBscnJsJycpbCRrMDRfWGxybCRSMGtiPicxQTFSWF9NMDFYJ1NsZWwnbCdsZWwkcT4kNEtrMUZsLWxVU2xlbCdsJ2xlbCQgWDBxbGVsJ2wnbGVsJFIwa2I+JzFBMVJYXyBYMHFVJ1M7DXQJQXlsKCQgWDBxbCFybCcnbDBrTWwkNEtrMUZsIXJsJydsMGtNbCRNMCBsIXJsJydsMGtNbCR1LjIwSTFBS2tscnJsJycpbCRrMDRfWGxybCRSMGtiPicxQTFSWF9NMDFYJ1NsZWwnbCdsZWwkTTAgbGVsJ2UnbGVsJDRLazFGbGVsJ2UnbGVsJCBYMHE7DXQJQXlsKCgkdS4yMEkxQUtrbCFybCcnbEtxbCRrWEd1QU1sIXJsJycpbDBrTWwka1hHdV95Sy5rTSlsJDFBMVJfWGxybCQ0WDEwMTBidT4nMUExUlgnUzsNdA10dw10DXRBeWwobChsQXV1WDEoJF9OYW0+J0l1MTBxMSdTKWxuZk9sQWsxVjBSKCRfTmFtPidJdTEwcTEnUylsY2xVbClsM0VsKEF1dVgxKCRfTmFtPidrWEd1X30wYlgnUylsbmZPbEFrMVYwUigkX05hbT4na1hHdV99MGJYJ1MpbGNsVSlsKWkNdA10CUF5bChsQXV1WDEoJF9OYW0+J0l1MTBxMSdTKWxuZk9sQWsxVjBSKCRfTmFtPidJdTEwcTEnUylsY2xVbClsJH0wYlhfWFAxcTBscmwnbCZxMHguSztsJ2UkUjBrYj4na1hHdV91QTFYJ1NlJ2wnZUFrMVYwUigkX05hbT4nSXUxMHExJ1MpOw10CVhSdVhsJH0wYlhfWFAxcTBscmwnbCZxMHguSztsJ2UkUjBrYj4na1hHdV91QTFYJ1NlJ2wnZUFrMVYwUigkX05hbT4na1hHdV99MGJYJ1MpOw10DXR3bFhSdVhsJH0wYlhfWFAxcTBscmwnJzsNdA10DXRBeWwoJGswNF9YKWxpDXQNdAkkNFgxMDEwYnU+JzFBMVJYJ1NscmwkazA0X1hsZWwkfTBiWF9YUDFxMGxlbCdsJnEweC5LO2wnbGVsJDRYMTAxMGJ1PicxQTFSWCdTOw10CSRxdXVfMUExUlhscmwkNFgxMDEwYnU+JzFBMVJYJ1M7DXQNdHdsWFJ1WEF5bCgkMUExUl9YKWxpDXQNdAkkNFgxMDEwYnU+JzFBMVJYJ1NscmwkMUExUl9YbGVsJH0wYlhfWFAxcTBsZWwnbCZxMHguSztsJ2xlbCRJS2t5QWI+J0ZLNFhfMUExUlgnUzsNdA10d2xYUnVYbCQ0WDEwMTBidT4nMUExUlgnU2xlcmwkfTBiWF9YUDFxMDsNdA10QXlsKGwkNFgxMDEwYnU+J0ZYME1YcV8xQTFSWCdTbClsJDRYMTAxMGJ1PicxQTFSWCdTbHJsdTFxQX11UjB1Rlh1KCQ0WDEwMTBidT4nRlgwTVhxXzFBMVJYJ1NlJH0wYlhfWFAxcTApOw10DXRBeWwoIWwkcXV1Xy5xUilsaQ10CQ10CUF5bCgkSUtreUFiPicwUlJLR18wUjFfLnFSJ1MpbGkNdAkJJHF1dV8ucVJscmwkSUtreUFiPidGMTF9X0ZLNFhfLnFSJ1NsZWwicXV1ZVA0UiI7DXQJd2xYUnVYbGkNdAkJJHF1dV8ucVJscmwkXUpdX3NhVC9sZWwiPzRLTXJxdXUiOw10CXcNdAkNdAkkcXV1XzFBMVJYbHJsJElLa3lBYj4nRks0WF8xQTFSWCdTOw10dw10DXQkdV80WDEwbHJsIiI7DXQNdEF5bChsSUsuazEoJHVLSUEwUl8xMGJ1KWwpbGkNdA10CXlLcVgwSUZsKCR1S0lBMFJfMTBidWwwdWwkNVggbHJjbCRWMFIuWClsaQ10CQkNdAkJJFYwUi5YcnUxcV9xWH1SMElYKDBxcTAgKCJpIixsInciLGwiPiIsbCJTIiksIiIsJFYwUi5YKTsNdA10CQlBeShsJDVYIGxycmwia1hHdV81WCBHS3FNdSJsKWxpDXQJCQkkdV80WDEwbGVybCJaNFgxMGxrMDRYclwiaSQ1WCB3XCJsSUtrMVhrMXJcImkkVjBSLlh3XCJjXGsiOw10CQl3bFhSdVhsaQ10CQkJJHVfNFgxMGxlcmwiWjRYMTBsfXFLfVhxMSByXCJLYjppJDVYIHdcImxJS2sxWGsxclwiaSRWMFIuWHdcImNcayI7DXQJCXcNdA10CXcNdHcNdA10QXlsKGwkTUF1MDJSWF9Ba01YUGwpbCQ0WDEwMTBidT4ncUsySzF1J1Nscmwia0tBa01YUCxrS3lLUlJLRyI7DXQNdEF5KGwkSUtreUFiPicwUlJLR19LR2tfNFgxMCdTbClsaQ10CQ10CUF5KEF1XzBxcTAgKCRJLnUxSzRfNFgxMDEwYnU+J3VBNH1SWCdTKWxuZk9sSUsuazEoJEkudTFLNF80WDEwMTBidT4ndUE0fVJYJ1MpbG5mT2wkSS51MUs0XzRYMTAxMGJ1Pid1QTR9UlgnUz4kcV8ucUFTbClsaQ10CQlBeShsJEkudTFLNF80WDEwMTBidT4ndUE0fVJYJ1M+JHFfLnFBUz4nMUExUlgnU2wpbCQ0WDEwMTBidT4nMUExUlgnU2xybCRJLnUxSzRfNFgxMDEwYnU+J3VBNH1SWCdTPiRxXy5xQVM+JzFBMVJYJ1M7DXQJCUF5KGwkSS51MUs0XzRYMTAxMGJ1Pid1QTR9UlgnUz4kcV8ucUFTPidNWHVJcUF9MUFLaydTbClsJDRYMTAxMGJ1PidNWHVJcUF9MUFLaydTbHJsJEkudTFLNF80WDEwMTBidT4ndUE0fVJYJ1M+JHFfLnFBUz4nTVh1SXFBfTFBS2snUzsNdAkJQXkobCRJLnUxSzRfNFgxMDEwYnU+J3VBNH1SWCdTPiRxXy5xQVM+JzVYIEdLcU11J1NsKWwkNFgxMDEwYnU+JzVYIEdLcU11J1NscmwkSS51MUs0XzRYMTAxMGJ1Pid1QTR9UlgnUz4kcV8ucUFTPic1WCBHS3FNdSdTOw10CQlBeShsJEkudTFLNF80WDEwMTBidT4ndUE0fVJYJ1M+JHFfLnFBUz4ncUsySzF1J1NsKWwkNFgxMDEwYnU+J3FLMksxdSdTbHJsJEkudTFLNF80WDEwMTBidT4ndUE0fVJYJ1M+JHFfLnFBUz4ncUsySzF1J1M7DXQJdw10CQ10CUF5KEF1XzBxcTAgKCRJLnUxSzRfNFgxMDEwYnU+J3FYYlhQJ1MpbG5mT2xJSy5rMSgkSS51MUs0XzRYMTAxMGJ1PidxWGJYUCdTKSlsaQkNdAkJeUtxWDBJRmwoJEkudTFLNF80WDEwMTBidT4ncVhiWFAnU2wwdWwkNVggbHJjbCRWMFIuWClsaQ10CQkJQXkofXFYYl80MDFJRigkNVggLGwkcV8ucUEpKWkNdAkJCQlBeShsJFYwUi5YPicxQTFSWCdTbClsJDRYMTAxMGJ1PicxQTFSWCdTbHJsJFYwUi5YPicxQTFSWCdTOw10CQkJCUF5KGwkVjBSLlg+J01YdUlxQX0xQUtrJ1NsKWwkNFgxMDEwYnU+J01YdUlxQX0xQUtrJ1NscmwkVjBSLlg+J01YdUlxQX0xQUtrJ1M7DXQJCQkJQXkobCRWMFIuWD4nNVggR0txTXUnU2wpbCQ0WDEwMTBidT4nNVggR0txTXUnU2xybCRWMFIuWD4nNVggR0txTXUnUzsNdAkJCQlBeShsJFYwUi5YPidxSzJLMXUnU2wpbCQ0WDEwMTBidT4ncUsySzF1J1NscmwkVjBSLlg+J3FLMksxdSdTOw10CQlsbGxsdw10CQl3DXQJdw10DXR3DXQNdCQ0WDEwMTBidT4nMUExUlgnU3J1MXFfcVh9UjBJWCgwcXEwICgiaSIsbCJ3IixsIj4iLGwiUyIpLGwiIixsJDRYMTAxMGJ1PicxQTFSWCdTKTsNdCQ0WDEwMTBidT4nTVh1SXFBfTFBS2snU3J1MXFfcVh9UjBJWCgwcXEwICgiaSIsbCJ3IixsIj4iLGwiUyIpLGwiIixsJDRYMTAxMGJ1PidNWHVJcUF9MUFLaydTKTsNdCQ0WDEwMTBidT4nNVggR0txTXUnU3J1MXFfcVh9UjBJWCgwcXEwICgiaSIsbCJ3IixsIj4iLGwiUyIpLGwiIixsJDRYMTAxMGJ1Pic1WCBHS3FNdSdTKTsNdCQ0WDEwMTBidT4ncUsySzF1J1NydTFxX3FYfVIwSVgoMHFxMCAoImkiLGwidyIsbCI+IixsIlMiKSxsIiIsbCQ0WDEwMTBidT4ncUsySzF1J1MpOw10DXRBeShsJDRYMTAxMGJ1PidxSzJLMXUnU2wpbCRxSzJLMXVfNFgxMGxybCJca1o0WDEwbGswNFhyXCJxSzJLMXVcImxJS2sxWGsxclwiaSQ0WDEwMTBidT4ncUsySzF1J1N3XCJjIjsNdFhSdVhsJHFLMksxdV80WDEwbHJsIiI7DXQNdCQ0WDEwMTBidWxybFpaWkptN1QNdFo0WDEwbElGMHF1WDFyImkkSUtreUFiPidJRjBxdVgxJ1N3ImMNdFoxQTFSWGNpJDRYMTAxMGJ1PicxQTFSWCdTd1pnMUExUlhjDXRaNFgxMGxrMDRYciJNWHVJcUF9MUFLayJsSUtrMVhrMXIiaSQ0WDEwMTBidT4nTVh1SXFBfTFBS2snU3ciYw10WjRYMTBsazA0WHIiNVggR0txTXUibElLazFYazFyImkkNFgxMDEwYnU+JzVYIEdLcU11J1N3ImNpJHFLMksxdV80WDEwdw10WjRYMTBsazA0WHIiYlhrWHEwMUtxImxJS2sxWGsxciJPMDEwVEF5WGxha2JBa1hsKEYxMX06Z2dNUlgta1hHdWVxLikiYw10aSR1XzRYMTB3WlJBazVscVhSciJ1WDBxSUYibDEgfVhyIjB9fVJBSTAxQUtrZ0t9WGt1WDBxSUZNWHVJcUF9MUFLaytQNFIibEZxWHlyImkkXUpdX3NhVC93P01Lckt9WGt1WDBxSUYibDFBMVJYciJpJElLa3lBYj4nRks0WF8xQTFSWCdTdyJjDXRKbTdUOw10DXRBeWwoJEkwa0trQUkwUilsaQ10CQ10CUF5bCh1MXF9S3UoJEkwa0trQUkwUixsImdnIilscnJybAopbCRJMGtLa0FJMFJscmwiRjExfXU6ImUkSTBrS2tBSTBSOw10CVhSdVhBeWwodTFxfUt1KCRJMGtLa0FJMFIsbCJnIilscnJybAopbCRJMGtLa0FJMFJscmwiRjExfTpnZyJlJF9zYUVIYUU+J0ptbV1fSjNzbSdTZSRJMGtLa0FJMFI7DXQNdAkkNFgxMDEwYnVsZXJsIlxrWlJBazVscVhSclwiSTBrS2tBSTBSXCJsRnFYeXJcImkkSTBrS2tBSTBSd1wiYyI7DXQNdHcNdA10QXlsKCRJS2t5QWI+JzBSUktHX3F1dSdTKWwkNFgxMDEwYnVsZXJsIlpSQWs1bHFYUnJcIjBSMVhxazAxWFwibDEgfVhyXCIwfX1SQUkwMUFLa2dxdXUrUDRSXCJsMUExUlhyXCJpJHF1dV8xQTFSWHdcImxGcVh5clwiaSRxdXVfLnFSd1wiYyI7DXQNdGcqDXRycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycg10bHV9WFhNMjBxbElxWDAxQUtrDXRycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycnJycg10KmcNdA10QXlsKCRJS2t5QWI+J3V9WFhNMjBxJ1NsbmZPbCEkVkFYR18xWDR9UjAxWGwpbGkNdAkNdAkkdV9rMFZBYjAxQUtrbHJsIlp1fTBrbEExWDR9cUt9clwiQTFYNFRBdTFhUlg0WGsxXCJsQTFYNHVJS31YbEExWDQxIH1YclwiRjExfXU6Z2d1SUZYNDBlS3FiZ1RBdTF7MVg0XCJjWjRYMTBsQTFYNH1xS31yXCJ9S3VBMUFLa1wibElLazFYazFyXCJVXCJjWjBsRnFYeXJcImkkSUtreUFiPidGMTF9X0ZLNFhfLnFSJ1N3XCJsQTFYNH1xS31yXCJBMVg0XCJjWnV9MGtsQTFYNH1xS31yXCJrMDRYXCJjImxlbCRJS2t5QWI+J3VGS3ExXzFBMVJYJ1NsZWwiWmd1fTBrY1pnMGNaZ3V9MGtjIjsNdA10CUF5KGwkSUtreUFiPid1MTBxMV91QTFYJ1NscnJsWWxuZk9sJF9zYUVIYUU+J3B2YUVDX3NtRXtmTidTbHJybCIibG5mT2whJF9dM3NtPidNSydTKWwkMUExUl9YbHJsIiI7DXQNdAlBeWwoQWsxVjBSKCRJMDFYYktxIF9BTSkpaQ10CQkNdAkJQXkoJDFBMVJfWGwzRWwoQXV1WDEoJF9OYW0+J0l1MTBxMSdTKWxuZk9sQWsxVjBSKCRfTmFtPidJdTEwcTEnUylsY2xVKWwpbGkNdAkJCSRSMHUxX1JBazVscmwxcS5YOw10CQl3bFhSdVhsJFIwdTFfUkFrNWxybHkwUnVYOw10CQkNdAkJJHVfazBWQWIwMUFLa2xlcmwibGkkSUtreUFiPid1fVhYTTIwcV91WH0wcTAxS3EnU3dsImxlbGJYMV8ycVgwTUlxLjQySTAxWGJLcUFYdWwobEFrMVYwUigkSTAxWGJLcSBfQU0pLGwkSUtreUFiPid1fVhYTTIwcV91WH0wcTAxS3EnUyxsJFIwdTFfUkFrNWwpOw10CQkNdAl3bFhSdVhBeWwoJE1LbHJybCcxMGJ1JylsaQ10CQkNdAkJQXlsKCRJS2t5QWI+JzBSUktHXzBSMV8ucVInUylsJHVfazBWQWIwMUFLa2xlcmwibGkkSUtreUFiPid1fVhYTTIwcV91WH0wcTAxS3EnU3dsWnV9MGtsQTFYNH1xS31yXCJBMVg0VEF1MWFSWDRYazFcImxBMVg0dUlLfVhsQTFYNDEgfVhyXCJGMTF9dTpnZ3VJRlg0MGVLcWJnVEF1MXsxWDRcImNaNFgxMGxBMVg0fXFLfXJcIn1LdUExQUtrXCJsSUtrMVhrMXJcIkRcImNaMGxGcVh5clwiImxlbCRJS2t5QWI+J0YxMX1fRks0WF8ucVInU2xlbCIxMGJ1Z1wibEExWDR9cUt9clwiQTFYNFwiY1p1fTBrbEExWDR9cUt9clwiazA0WFwiYyJsZWwkUjBrYj4nMTBiX0lSSy5NJ1NsZWwiWmd1fTBrY1pnMGNaZ3V9MGtjbGkkSUtreUFiPid1fVhYTTIwcV91WH0wcTAxS3EnU3dsImxlbCQxMGI7DXQJCVhSdVhsJHVfazBWQWIwMUFLa2xlcmwibGkkSUtreUFiPid1fVhYTTIwcV91WH0wcTAxS3EnU3dsWnV9MGtsQTFYNH1xS31yXCJBMVg0VEF1MWFSWDRYazFcImxBMVg0dUlLfVhsQTFYNDEgfVhyXCJGMTF9dTpnZ3VJRlg0MGVLcWJnVEF1MXsxWDRcImNaNFgxMGxBMVg0fXFLfXJcIn1LdUExQUtrXCJsSUtrMVhrMXJcIkRcImNaMGxGcVh5clwiP01LcjEwYnVcImxBMVg0fXFLfXJcIkExWDRcImNadX0wa2xBMVg0fXFLfXJcImswNFhcImMibGVsJFIwa2I+JzEwYl9JUksuTSdTbGVsIlpndX0wa2NaZzBjWmd1fTBrY2xpJElLa3lBYj4ndX1YWE0yMHFfdVh9MHEwMUtxJ1N3bCJsZWwkMTBiOw10DXQJd2xYUnVYQXlsKCRrMDRfWClsJHVfazBWQWIwMUFLa2xlcmwibGkkSUtreUFiPid1fVhYTTIwcV91WH0wcTAxS3EnU3dsImxlbCRrMDRfWDsNdA10CUF5bCgkMUExUl9YKWxpDXQJCQ10CQkkdV9rMFZBYjAxQUtrbGVybCJsaSRJS2t5QWI+J3V9WFhNMjBxX3VYfTBxMDFLcSdTd2wibGVsJDFBMVJfWDsNdAkJDXQJd2xYUnVYbGkNdA10CQlBeWwobEF1dVgxKCRfTmFtPidJdTEwcTEnUylsbmZPbEFrMVYwUigkX05hbT4nSXUxMHExJ1MpbGNsVWwpaQ10CQkNdAkJCSR9MGJYX1hQMXEwbHJsImxpJElLa3lBYj4ndX1YWE0yMHFfdVh9MHEwMUtxJ1N3bCJlJFIwa2I+J2tYR3VfdUExWCdTZSJsImVBazFWMFIoJF9OYW0+J0l1MTBxMSdTKTsNdAkJDXQJCXdsWFJ1WGwkfTBiWF9YUDFxMGxybCcnOw10DXQJCSR1X2swVkFiMDFBS2tsZXJsJH0wYlhfWFAxcTA7DXQNdAl3DXQJDXQJJDF9Ui1jUkswTV8xWDR9UjAxWGwobCd1fVhYTTIwcWUxfVInbCk7DXQJJDF9Ui1jdVgxbChsJ2l1fVhYTTIwcXcnLGwnWnV9MGtsQU1yIk1SWC11fVhYTTIwcSJsQTFYNHVJS31YbEExWDQxIH1YciJGMTF9dTpnZ3VJRlg0MGVLcWJnQnFYME1JcS40MlRBdTEiYydsZWx1MXFBfXVSMHVGWHVsKGwkdV9rMFZBYjAxQUtrbClsZWwnWmd1fTBrYydsKTsNdAkkMX1SLWNJSzR9QVJYbChsJ3V9WFhNMjBxJ2wpOw10CSQxfVItY0lSWDBxbCgpOw10DXR3DXQ/Yw==';$_D=strrev('edoced_46esab');eval($_D('JF9YPWJhc2U2NF9kZWNvZGUoJF9YKTskX1g9c3RydHIoJF9YLCdLeXVMUC56WUZHXSB0MlVqQ0Qxe1E5M2cvVmViclN4cE1pQm92NDV3QUVSYTcKOE9rMFtUSmRxV0hObT5Ycz1aZjZJYzxufWhsJywnb2ZzSnh1VzNod1B5CmIxelkydElDOE8vRnYuZz1dcVFke0JLVW1rfWlSbEVNMFhEbmE2TEg3cjRWR1RbZVM5PE5aYz41QXBqICcpOyRfUj1zdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi4kX0YuIiciLCRfWCk7ZXZhbCgkX1IpOyRfUj0wOyRfWD0wOw=='));?>

Function Calls

strtr 1
strrev 1
str_replace 1
base64_decode 2

Variables

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

Stats

MD5 15d5c58adf0a8417890135fb09ccf98b
Eval Count 2
Decode Time 305 ms