Your IP : 216.73.217.68


Current Path : /home/w/u/e/wuectly/www/03cbe/
Upload File :
Current File : /home/w/u/e/wuectly/www/03cbe/akeeba.tar

script.akeeba.php000060400000057107152455705260010011 0ustar00<?php
/**
 * @package   akeebabackup
 * @copyright Copyright (c)2006-2023 Nicholas K. Dionysopoulos / Akeeba Ltd
 * @license   GNU General Public License version 3, or later
 */

// Protect from unauthorized access
use Joomla\CMS\Factory;
use Joomla\CMS\Filesystem\Folder;

defined('_JEXEC') or die();

class Pkg_AkeebaInstallerScript
{
	/**
	 * The name of our package, e.g. pkg_example. Used for dependency tracking.
	 *
	 * @var  string
	 */
	protected $packageName = 'pkg_akeeba';

	/**
	 * The name of our component, e.g. com_example. Used for dependency tracking.
	 *
	 * @var  string
	 */
	protected $componentName = 'com_akeeba';

	/**
	 * The minimum PHP version required to install this extension
	 *
	 * @var   string
	 */
	protected $minimumPHPVersion = '7.2.0';

	/**
	 * The minimum Joomla! version required to install this extension
	 *
	 * @var   string
	 */
	protected $minimumJoomlaVersion = '3.9.0';

	/**
	 * The maximum Joomla! version this extension can be installed on
	 *
	 * @var   string
	 */
	protected $maximumJoomlaVersion = '4.999.999';

	/**
	 * A list of extensions (modules, plugins) to enable after installation. Each item has four values, in this order:
	 * type (plugin, module, ...), name (of the extension), client (0=site, 1=admin), group (for plugins).
	 *
	 * These extensions are ONLY enabled when you do a clean installation of the package, i.e. it will NOT run on update
	 *
	 * @var array
	 */
	protected $extensionsToEnable = [
		['plugin', 'akeebabackup', 1, 'quickicon'],
	];

	/**
	 * Like above, but enable these extensions on installation OR update. Use this sparingly. It overrides the
	 * preferences of the user. Ideally, this should only be used for installer plugins.
	 *
	 * @var array
	 */
	protected $extensionsToAlwaysEnable = [
		['plugin', 'akeebabackup', 1, 'installer'],
		['plugin', 'akversioncheck', 1, 'system'],
	];

	/**
	 * A list of plugins to uninstall when installing or updating the package. Each item has two values, in this order:
	 * name (element), folder.
	 *
	 * @var array
	 */
	protected $uninstallPlugins = [
		['jsonapi', 'akeebabackup'],
		['legacyapi', 'akeebabackup'],
		['akeebaactionlog', 'system'],
		['akeebaupdatecheck', 'system'],
		['aklazy', 'system'],
		['srp', 'system'],
	];

	/**
	 * We remove some plugins' files. If Joomla fails to update them correctly you'd end up with an inaccessible site.
	 * These will be updated / installed right after the preflight event so you don't ever lose their functionality.
	 *
	 * @var string[]
	 */
	protected $preRemoveFolders = [
		// Current plugins
		'plugins/actionlog/akeebabackup',
		'plugins/console/akeebabackup',
		'plugins/installer/akeebabackup',
		'plugins/quickicon/akeebabackup',
		'plugins/system/backuponupdate',
		// Obsolete plugins
		'plugins/system/akeebaactionlog',
		'plugins/system/akeebaupdatecheck',
		'plugins/system/aklazy',
		'plugins/system/srp',
	];

	/**
	 * =================================================================================================================
	 * DO NOT EDIT BELOW THIS LINE
	 * =================================================================================================================
	 */

	/**
	 * Joomla! pre-flight event. This runs before Joomla! installs or updates the package. This is our last chance to
	 * tell Joomla! if it should abort the installation.
	 *
	 * In here we'll try to install FOF. We have to do that before installing the component since it's using an
	 * installation script extending FOF's InstallScript class. We can't use a <file> tag in the manifest to install FOF
	 * since the FOF installation is expected to fail if a newer version of FOF is already installed on the site.
	 *
	 * @param   string                     $type    Installation type (install, update, discover_install)
	 * @param   \JInstallerAdapterPackage  $parent  Parent object
	 *
	 * @return  boolean  True to let the installation proceed, false to halt the installation
	 */
	public function preflight($type, $parent)
	{
		// Do not run on uninstall.
		if ($type === 'uninstall')
		{
			return true;
		}

		// Check the minimum PHP version
		if (!version_compare(PHP_VERSION, $this->minimumPHPVersion, 'ge'))
		{
			$msg = "<p>You need PHP $this->minimumPHPVersion or later to install this package</p>";
			JLog::add($msg, JLog::WARNING, 'jerror');

			return false;
		}

		// Check the minimum Joomla! version
		if (!version_compare(JVERSION, $this->minimumJoomlaVersion, 'ge'))
		{
			$msg = "<p>You need Joomla! $this->minimumJoomlaVersion or later to install this component</p>";
			JLog::add($msg, JLog::WARNING, 'jerror');

			return false;
		}

		// Check the maximum Joomla! version
		if (!version_compare(JVERSION, $this->maximumJoomlaVersion, 'le'))
		{
			//$msg = "<p>You need Joomla! $this->maximumJoomlaVersion or earlier to install this component</p>";

			$hasOldVersion = \Joomla\CMS\Component\ComponentHelper::isInstalled('com_akeeba');
			$jVersion = JVERSION;

			if ($hasOldVersion)
			{
				$upgradeMessage = <<< HTML
<p class="fs-2">
	Please go to <a href="index.php?option=com_akeeba">Components, Akeeba Backup</a> to learn how to install
	Akeeba Backup 9 — the Joomla 4 native version of our software — and migrate your backup settings and backup
	archives with a single click. 
</p>
HTML;
			}
			else
			{
				$upgradeMessage = <<< HTML
<p class="fs-2">
	Please go to <a href="https://www.akeeba.com/download.html">our site's Download page</a> to download
	Akeeba Backup 9, the Joomla 4 native version of our software.
</p>

HTML;
			}

			$msg = <<< HTML
<div class="m-4">
	<h3 class="alert-heading fs-1">Akeeba Backup 8 cannot be installed or used with Joomla 4.1 and later versions</h3>
	$upgradeMessage
	<p class="fs-5">
		<strong>Note:</strong> You will see the messages “Extension Install: Custom install routine failure.”
		 and “Error installing package” printed below. This is normal and expected. Since Akeeba Backup 8 is not
		 meant to be used with Joomla $jVersion it refuses to install at all and Joomla produces these two messages.
	</p>
</div>
HTML;

			JLog::add($msg, JLog::WARNING, 'jerror');

			return false;
		}

		// HHVM made sense in 2013, now PHP 7 is a way better solution than an hybrid PHP interpreter
		if (defined('HHVM_VERSION'))
		{
			$msg = "<p>We have detected that you are running HHVM instead of PHP. This software WILL NOT WORK properly on HHVM. Please switch to PHP 7 instead.</p>";
			JLog::add($msg, JLog::WARNING, 'jerror');

			return false;
		}

		/**
		 * Try to install FOF. We need to do this in preflight to make sure that FOF is available when we install our
		 * component. The reason being that the component's installation script extends FOF's InstallScript class.
		 * We can't use a <file> tag in our package manifest because FOF's package is *supposed* to fail to install if
		 * a newer version is already installed. This would unfortunately cancel the installation of the entire package,
		 * so we have to get a bit tricky.
		 */
		$this->installOrUpdateFOF($parent);

		// Remove plugins' files which load outside of the component. If any is not fully updated your site won't crash.
		foreach ($this->preRemoveFolders as $folder)
		{
			$f = JPATH_ROOT . '/' . $folder;

			if (!@file_exists($f) || !is_dir($f) || is_link($f))
			{
				continue;
			}

			Folder::delete($f);
		}

		return true;
	}

	/**
	 * Runs after install, update or discover_update. In other words, it executes after Joomla! has finished installing
	 * or updating your component. This is the last chance you've got to perform any additional installations, clean-up,
	 * database updates and similar housekeeping functions.
	 *
	 * @param   string                       $type   install, update or discover_update
	 * @param   \JInstallerAdapterComponent  $parent Parent object
	 */
	public function postflight($type, $parent)
	{
		// Do not run on uninstall.
		if ($type === 'uninstall')
		{
			return;
		}

		// Always uninstall these plugins
		if (isset($this->uninstallPlugins) && !empty($this->uninstallPlugins))
		{
			foreach ($this->uninstallPlugins as $pluginInfo)
			{
				try
				{
					$this->uninstallPlugin($pluginInfo[1], $pluginInfo[0]);
				}
				catch (Exception $e)
				{
					// No op.
				}
			}
		}

		// Joomla 3: Always uninstall plg_console_akeebabackup (it's J4 only)
		if (version_compare(JVERSION, '3.999.999', 'le'))
		{
			$this->uninstallPlugin('console', 'akeebabackup');
			// These dependencies are not removed when uninstalling a plugin while installing a package (thanks, Joomla)
			$this->removeDependency('fof30', 'plg_console_akeebabackup');
			$this->removeDependency('fof40', 'plg_console_akeebabackup');
		}

		// Always enable these extensions
		if (isset($this->extensionsToAlwaysEnable) && !empty($this->extensionsToAlwaysEnable))
		{
			$this->enableExtensions($this->extensionsToAlwaysEnable);
		}

		// Joomla 4: Always enable the plg_console_akeebabackup plugin
		if (version_compare(JVERSION, '3.999.999', 'gt'))
		{
			$this->enableExtensions([
				['plugin', 'akeebabackup', 1, 'console'],
			]);
		}

		/**
		 * Try to install FEF. We only need to do this in postflight. A failure, while detrimental to the display of the
		 * extension, is non-fatal to the installation and can be rectified by manual installation of the FEF package.
		 * We can't use a <file> tag in our package manifest because FEF's package is *supposed* to fail to install if
		 * a newer version is already installed. This would unfortunately cancel the installation of the entire package,
		 * so we have to get a bit tricky.
		 */
		$this->installOrUpdateFEF($parent);

		/**
		 * Clean the cache after installing the package.
		 *
		 * See bug report https://github.com/joomla/joomla-cms/issues/16147
		 */
		$conf = \JFactory::getConfig();
		$clearGroups = array('_system', 'com_modules', 'mod_menu', 'com_plugins', 'com_modules');
		$cacheClients = array(0, 1);

		foreach ($clearGroups as $group)
		{
			foreach ($cacheClients as $client_id)
			{
				try
				{
					$options = array(
						'defaultgroup' => $group,
						'cachebase' => ($client_id) ? JPATH_ADMINISTRATOR . '/cache' : $conf->get('cache_path', JPATH_SITE . '/cache')
					);

					/** @var JCache $cache */
					$cache = \JCache::getInstance('callback', $options);
					$cache->clean();
				}
				catch (Exception $exception)
				{
					$options['result'] = false;
				}

				// Trigger the onContentCleanCache event.
				try
				{
					JFactory::getApplication()->triggerEvent('onContentCleanCache', $options);
				}
				catch (Exception $e)
				{
					// Suck it up
				}
			}
		}
	}

	/**
	 * Runs on installation (but not on upgrade). This happens in install and discover_install installation routes.
	 *
	 * @param   \JInstallerAdapterPackage  $parent  Parent object
	 *
	 * @return  bool
	 */
	public function install($parent)
	{
		// Enable the extensions we need to install
		$this->enableExtensions();

		return true;
	}

	/**
	 * Runs on uninstallation
	 *
	 * @param   \JInstallerAdapterPackage  $parent  Parent object
	 *
	 * @return  bool
	 */
	public function uninstall($parent)
	{
		// Preload FOF classes required for the InstallScript. This is required since we'll be trying to uninstall FOF
		// before uninstalling the component itself. The component has an uninstallation script which uses FOF, so...
		@include_once(JPATH_LIBRARIES . '/fof40/include.php');
		class_exists('FOF40\\Utils\\InstallScript\\BaseInstaller', true);
		class_exists('FOF40\\Utils\\InstallScript\\Component', true);
		class_exists('FOF40\\Utils\\InstallScript\\Module', true);
		class_exists('FOF40\\Utils\\InstallScript\\Plugin', true);
		class_exists('FOF40\\Utils\\InstallScript', true);
		class_exists('FOF40\\Database\\Installer', true);

		/**
		 * uninstall() is called before the component is uninstalled. Therefore there is a dependency to FOF 4 which
		 * prevents FOF 4 from being removed at this point. Therefore we have to remove the dependency before removing
		 * the component and hope nothing goes wrong.
		 */
		$this->removeDependency('fof40', $this->componentName);

		/**
		 * uninstall() is called before the component is uninstalled. Therefore there is a dependency to FEF which
		 * prevents FEF from being removed at this point. Therefore we have to remove the dependency before removing
		 * the component and hope nothing goes wrong.
		 */
		$this->removeDependency('file_fef', $this->componentName);

		// The try to uninstall FEF. The uninstallation might fail if there are other extensions depending
		// on it. That would cause the entire package uninstallation to fail, hence the need for special handling.
		$this->uninstallFEF($parent);

		// Then try to uninstall the FOF library. The uninstallation might fail if there are other extensions depending
		// on it. That would cause the entire package uninstallation to fail, hence the need for special handling.
		$this->uninstallFOF($parent);

		return true;
	}

	/**
	 * Tries to install or update FOF. The FOF library package installation can fail if there's a newer version
	 * installed. In this case we raise no error. If, however, the FOF library package installation failed AND we can
	 * not load FOF then we raise an error: this means that FOF installation really failed (e.g. unwritable folder) and
	 * we can't install this package.
	 *
	 * @param   \JInstallerAdapterPackage  $parent
	 */
	private function installOrUpdateFOF($parent)
	{
		// Get the path to the FOF package
		$sourcePath = $parent->getParent()->getPath('source');
		$sourcePackage = $sourcePath . '/lib_fof40.zip';

		// Extract and install the package
		$package = JInstallerHelper::unpack($sourcePackage);
		$tmpInstaller  = new JInstaller;
		$error = null;

		try
		{
			$installResult = $tmpInstaller->install($package['dir']);
		}
		catch (\Exception $e)
		{
			$installResult = false;
			$error = $e->getMessage();
		}

		// Try to include FOF. If that fails then the FOF package isn't installed because its installation failed, not
		// because we had a newer version already installed. As a result we have to abort the entire package's
		// installation.
		if (!defined('FOF40_INCLUDED') && !@include_once(JPATH_LIBRARIES . '/fof40/include.php'))
		{
			if (empty($error))
			{
				$error = JText::sprintf(
					'JLIB_INSTALLER_ABORT_PACK_INSTALL_ERROR_EXTENSION',
					JText::_('JLIB_INSTALLER_' . strtoupper($parent->get('route'))),
					basename($sourcePackage)
				);
			}

			throw new RuntimeException($error);
		}
	}

	/**
	 * Try to uninstall the FOF library. We don't go through the Joomla! package uninstallation since we can expect the
	 * uninstallation of the FOF library to fail if other software depends on it.
	 *
	 * @param   JInstallerAdapterPackage  $parent
	 */
	private function uninstallFOF($parent)
	{
		// Check dependencies on FOF
		$dependencyCount = count($this->getDependencies('fof40'));

		if ($dependencyCount)
		{
			$msg = "<p>You have $dependencyCount extension(s) depending on this version of FOF. The package cannot be uninstalled unless these extensions are uninstalled first.</p>";

			JLog::add($msg, JLog::WARNING, 'jerror');

			return;
		}

		$tmpInstaller = new JInstaller;

		$db = $parent->getParent()->getDbo();

		$query = $db->getQuery(true)
		            ->select('extension_id')
		            ->from('#__extensions')
		            ->where('type = ' . $db->quote('library'))
		            ->where('element = ' . $db->quote('lib_fof40'));

		$db->setQuery($query);
		$id = $db->loadResult();

		if (!$id)
		{
			return;
		}

		try
		{
			$tmpInstaller->uninstall('library', $id, 0);
		}
		catch (\Exception $e)
		{
			// We can expect the uninstallation to fail if there are other extensions depending on the FOF library.
		}
	}

	/**
	 * Tries to install or update FEF. The FEF files package installation can fail if there's a newer version
	 * installed.
	 *
	 * @param   \JInstallerAdapterPackage  $parent
	 */
	private function installOrUpdateFEF($parent)
	{
		// Get the path to the FOF package
		$sourcePath = $parent->getParent()->getPath('source');
		$sourcePackage = $sourcePath . '/file_fef.zip';

		// Extract and install the package
		$package = JInstallerHelper::unpack($sourcePackage);
		$tmpInstaller  = new JInstaller;
		$error = null;

		try
		{
			$installResult = $tmpInstaller->install($package['dir']);
		}
		catch (\Exception $e)
		{
			$installResult = false;
			$error = $e->getMessage();
		}
	}

	/**
	 * Try to uninstall the FEF package. We don't go through the Joomla! package uninstallation since we can expect the
	 * uninstallation of the FEF library to fail if other software depends on it.
	 *
	 * @param   JInstallerAdapterPackage  $parent
	 */
	private function uninstallFEF($parent)
	{
		// Check dependencies on FOF
		$dependencyCount = count($this->getDependencies('file_fef'));

		if ($dependencyCount)
		{
			$msg = "<p>You have $dependencyCount extension(s) depending on this version of Akeeba FEF. The package cannot be uninstalled unless these extensions are uninstalled first.</p>";

			JLog::add($msg, JLog::WARNING, 'jerror');

			return;
		}

		$tmpInstaller = new JInstaller;

		$db = $parent->getParent()->getDbo();

		$query = $db->getQuery(true)
			->select('extension_id')
			->from('#__extensions')
			->where('type = ' . $db->quote('file'))
			->where('element = ' . $db->quote('file_fef'));

		$db->setQuery($query);
		$id = $db->loadResult();

		if (!$id)
		{
			return;
		}

		try
		{
			$tmpInstaller->uninstall('file', $id, 0);
		}
		catch (\Exception $e)
		{
			// We can expect the uninstallation to fail if there are other extensions depending on the FOF library.
		}
	}


	/**
	 * Enable modules and plugins after installing them
	 */
	private function enableExtensions($extensions = [])
	{
		if (empty($extensions))
		{
			$extensions = $this->extensionsToEnable;
		}

		foreach ($extensions as $ext)
		{
			$this->enableExtension($ext[0], $ext[1], $ext[2], $ext[3]);
		}
	}

	/**
	 * Enable an extension
	 *
	 * @param   string   $type    The extension type.
	 * @param   string   $name    The name of the extension (the element field).
	 * @param   integer  $client  The application id (0: Joomla CMS site; 1: Joomla CMS administrator).
	 * @param   string   $group   The extension group (for plugins).
	 */
	private function enableExtension($type, $name, $client = 1, $group = null)
	{
		try
		{
			$db    = JFactory::getDbo();
			$query = $db->getQuery(true)
			            ->update('#__extensions')
			            ->set($db->qn('enabled') . ' = ' . $db->q(1))
			            ->where('type = ' . $db->quote($type))
			            ->where('element = ' . $db->quote($name));
		}
		catch (\Exception $e)
		{
			return;
		}


		switch ($type)
		{
			case 'plugin':
				// Plugins have a folder but not a client
				$query->where('folder = ' . $db->quote($group));
				break;

			case 'language':
			case 'module':
			case 'template':
				// Languages, modules and templates have a client but not a folder
				$client = JApplicationHelper::getClientInfo($client, true);
				$query->where('client_id = ' . (int) $client->id);
				break;

			default:
			case 'library':
			case 'package':
			case 'component':
				// Components, packages and libraries don't have a folder or client.
				// Included for completeness.
				break;
		}

		try
		{
			$db->setQuery($query);
			$db->execute();
		}
		catch (\Exception $e)
		{
		}
	}

	/**
	 * Get the dependencies for a package from the #__akeeba_common table
	 *
	 * @param   string  $package  The package
	 *
	 * @return  array  The dependencies
	 */
	private function getDependencies($package)
	{
		$db = JFactory::getDbo();

		$query = $db->getQuery(true)
		            ->select($db->qn('value'))
		            ->from($db->qn('#__akeeba_common'))
		            ->where($db->qn('key') . ' = ' . $db->q($package));

		try
		{
			$dependencies = $db->setQuery($query)->loadResult();
			$dependencies = json_decode($dependencies, true);

			if (empty($dependencies))
			{
				$dependencies = array();
			}
		}
		catch (Exception $e)
		{
			$dependencies = array();
		}

		return $dependencies;
	}

	/**
	 * Sets the dependencies for a package into the #__akeeba_common table
	 *
	 * @param   string  $package       The package
	 * @param   array   $dependencies  The dependencies list
	 */
	private function setDependencies($package, array $dependencies)
	{
		$db = JFactory::getDbo();

		$query = $db->getQuery(true)
		            ->delete('#__akeeba_common')
		            ->where($db->qn('key') . ' = ' . $db->q($package));

		try
		{
			$db->setQuery($query)->execute();
		}
		catch (Exception $e)
		{
			// Do nothing if the old key wasn't found
		}

		$object = (object)array(
			'key' => $package,
			'value' => json_encode($dependencies)
		);

		try
		{
			$db->insertObject('#__akeeba_common', $object, 'key');
		}
		catch (Exception $e)
		{
			// Do nothing if the old key wasn't found
		}
	}

	/**
	 * Adds a package dependency to #__akeeba_common
	 *
	 * @param   string  $package     The package
	 * @param   string  $dependency  The dependency to add
	 */
	private function addDependency($package, $dependency)
	{
		$dependencies = $this->getDependencies($package);

		if (!in_array($dependency, $dependencies))
		{
			$dependencies[] = $dependency;

			$this->setDependencies($package, $dependencies);
		}
	}

	/**
	 * Removes a package dependency from #__akeeba_common
	 *
	 * @param   string  $package     The package
	 * @param   string  $dependency  The dependency to remove
	 */
	private function removeDependency($package, $dependency)
	{
		$dependencies = $this->getDependencies($package);

		if (in_array($dependency, $dependencies))
		{
			$index = array_search($dependency, $dependencies);
			unset($dependencies[$index]);

			$this->setDependencies($package, $dependencies);
		}
	}

	/**
	 * Do I have a dependency for a package in #__akeeba_common
	 *
	 * @param   string  $package     The package
	 * @param   string  $dependency  The dependency to check for
	 *
	 * @return bool
	 */
	private function hasDependency($package, $dependency)
	{
		$dependencies = $this->getDependencies($package);

		return in_array($dependency, $dependencies);
	}

	private function uninstallPlugin($folder, $element)
	{
		$db = Factory::getDbo();

		// Does the plugin exist?
		$query = $db->getQuery(true)
			->select('*')
			->from('#__extensions')
			->where($db->qn('type') . ' = ' . $db->q('plugin'))
			->where($db->qn('folder') . ' = ' . $db->q($folder))
			->where($db->qn('element') . ' = ' . $db->q($element));
		try
		{
			$result = $db->setQuery($query)->loadAssoc();

			if (empty($result))
			{
				return;
			}

			$eid = $result['extension_id'];
		}
		catch (Exception $e)
		{
			return;
		}

		/**
		 * Here's a bummer. If you try to uninstall a plugin Joomla throws a nonsensical error message about the
		 * plugin's XML manifest missing -- after it has already uninstalled the plugin! This error causes the package
		 * installation to fail which results in the extension being installed BUT the database record of the package
		 * NOT being present which makes it impossible to uninstall.
		 *
		 * So I have to hack my way around it which is ugly but the only viable alternative :(
		 */
		try
		{
			// Safely delete the row in the extensions table
			$row = JTable::getInstance('extension');
			$row->load((int) $eid);
			$row->delete($eid);

			// Delete the plugin's files
			$pluginPath = sprintf("%s/%s/%s", JPATH_PLUGINS, $folder, $element);

			if (is_dir($pluginPath))
			{
				JFolder::delete($pluginPath);
			}

			// Delete the plugin's language files
			$langFiles = [
				sprintf("%s/language/en-GB/en-GB.plg_%s_%s.ini", JPATH_ADMINISTRATOR, $folder, $element),
				sprintf("%s/language/en-GB/en-GB.plg_%s_%s.sys.ini", JPATH_ADMINISTRATOR, $folder, $element),
			];

			foreach ($langFiles as $file)
			{
				if (@is_file($file))
				{
					JFile::delete($file);
				}
			}
		}
		catch (Exception $e)
		{
			// I tried, I failed. Dear user, do NOT try to enable that old plugin. Bye!
		}
	}
}
Akeeba-Products.woff000064400000031640152457265740010425 0ustar00wOFF3�
JOS/2�AVV�cxcmap8�z�:*�glyf�/"BXm'�0head0�16
9K�hhea10$��hmtx1L��loca1\jj��maxp1� Rname1�Z����post3D\���x�c`da`�������t����B3�f0b�```b`ef�
�\S�X@�; �����x�c```f�`F(��|� -� a��,<������Vd0`pd�aH�����3�O�?����P3�#6QtEL(\fV6vN.n�/������)*&.!)%-#+'�����WQUS��������70�10a1}�tix��{�ŵn���=����gv����������Jڠ��9�H(����"�����K2 ��D�`�� s�&\�6c���`m��Y	��{��{O��P�U�u��s��r���K��+q]\7��M�fps�E�q܉�I�&nw
ww�A���B��v��v���i�-��n���B�����n+y�� l��
�m��Q�!'�� �����>b��F��9v_mC����>�<Dx�y�잏'v��w{Y�K��i$v3��8�Z緆g撛|B��8{�l��SP��	[R��YP�G_�����O�,4��B4r��x�]Z�a��[���1c�5�ŰU�{"}��O�{@(83�a��/C�MM��p�ה�����	�M�u���o��cH�Vl���6Y�3�S�����@�v9�
�c�A������g^=ϹW=e��ְU�"�uͽ���j�p����U��:�*׍��M�fr�Ń�㠳5U������ ��$Zv���n����xW�
��2e"p�e{�`2�W�S�VLk6Sg��0�H�}'?p)��"(�«��j��z��U0�93��_�o�@ƹ�b��u�-߆g�q�[=Ri��3�=Dž���'�X���8���y\eCv,�^�y�6pNC%|
���3��5r�����쳈)��-~�q^�{������վs�U��=M͈��^�G��ީ�\C��s�>��qi.�
�ڹ
7����&rӸ��Bn���1�d?�\FєB(+�*U�R(Pfԕ3^?0)���>��J�mؑ�:B�	�	F�w�w�p�nP�n0�(s����:a6����SUt�Ne�9�(�'9����=��B��>�i��9�$i���T��<?-$�/ݠo�,/�}�-0@��\�y�Ц�:2��"�5	�I�ע�7�߲u?�'n[뼆�;����Z&�<��y��o~�';���$�(�7o�;���L(�q��a=I�|*+^q&
��V�)�S�o8��bs��j��>�_���Z�k�x������W������v�](kf݆�?A�4lտj����r����J}Cvq���qm\'7���Fz��T��vZlGc~��#	]%�j�ll�l�hUK�b��<LPE�{�.��%�`P�R�Mx�R����;�-����w���a��
Y�D؋�^z�:v�������:���M�s��*�)���R20�Ra2v-oG_+���8>)�֧/�:�n�ǿz�8�=��Yp�%��l���<��0��M�ss\�]���6p[�]ܩܙܹ�E���5h�]<�Fg�I�X
�YB���^l/Y�\�BeD	�g
�q�I`�_�#���3;bF[��@�d0�!^�B���l�ʺ�G@��d:Z���� :<���O���C��=�j�[�ȫ�`�y�o�l4�+
b�)��1��A�\�︍��K�9#�w��M��O9#�a���}p�#N:�]��[��ov�������{,b|��Xp+����"�/�s܏�O`ɧr��]�oC�i��߷[΂�V���!�w��ֹܺܳh���y��d�4�J�y����vu�,�e�����w�
�ցg��|ı���<�:/HŮo�J��^E���ck���23�BZD�f�Ԭ�=��5o7T�,h33o���`�#ܘ9;�kL�i�2j��܍�.u�A\5۬7}�&�w�3��e�$JW��xX>����7�4����Pmηa2���n��<���)ߟ�[��{ηj�wr��PƷ8/g]w���b o_q�9m���$��<�:^@�c�1!!#���.4���`�xFR��j1?�d���8���s�}���e�6� 6�:M�e��́�bK�]�4o.|�]��>��(�k`�uビL9Nu�҄z)��{j#�ކ��؄>U%S1���kw�v�
��^��ΈN-8T�#T)q�]���D]�dMi#���y�����W�*�
�~����B~�3�#��#R�5�,�ع6���K�قs+����B��i}�1hފC�%�/����&�q��
D��.Y��0����a�gM��_��t$50}g���z�)ΟP4A��<�1u��s���,n>��;�[ŭ�62�󸋹+j�E���H�E�ˢ�$W`�D˕Ըfi��]����*5\������T0B�qX��%k���)�	�qQ�1Ђ�w��I��.8�SXpE�4�1����è��ku~�,����J��!�9�3���!�Ҧ/�1
�և��9�
���U:�y�(�����7[΄�s�P�x㿁(_PI;H���V��п��|{-2�?"9pBq�Ԧ/<�ĩ]�ҹ����'��7е|��_:w��9�k�"TQ
}��k�6?�>D�f���5j�ԗ�Ԧ.���&�s�s�X����G��n)w����nw:w6ww)wwww��>e:�5Y0Y$�.��5$��~�l�0ki�UBM����j�/�ܨPC�!�S�ʮ=X���B��5�t���`�f
5:����CG� �v�̇��y�F��襓��Z�a��'@l��()=csҐ��)���nFL>'�>��ߚ����|�E,V`�#��쀥����_h� ���o�7�A���  ���P7���O�)�rg��,�9���Z���h�wsʯ��6�b��o����ه#A�y�߰�|,���1���RK���)����]��Ӽ�o�Z$��,���:��
���u1�]T7rg��	��y�%�������)b�?g�˹u,�@������B-�H�
�`���+:s���p4�c�5WY4'j�M�$S��6�	�5����N�G %���	
�,����wB�s>�R�Ր����lh49|�o��d�q�"Wc(����m ):A���>�j�YR�ўEY����?��s.�n
xv�g���Ð��eB��d�I����w8��q�aR0�|�7�ʎB�O��ٖ7/���
g��8�=�L��<m��s�&��0���(�V��R��T:1&W�n$0��S�@�k�5�g�Z��300�s�ڌ��	����<�n�g����ش6`�����;g=�np�s˛�í(��c���N����c���}��w�V�7?<0����>�t����TU>b�f�.a)�،��y1�D=s���#�3����(�&gyT��6b�>tƾ�	���te�3+v`�q��l��
\�`��(��0�B�����,�%�K�1�X�tG�q &2�E��\�/2x�@:�tr�l��+O<M��<�D�=��
|�p�����%�?�G�=�Qs�h���k���^�N/٥������u��y�=��TL��;Y����g儳]Ns����pc`Ӿ;M�Z;��6٥��9�A�`'���@�.�fc����/��
�m~���Pq +6ar��� a	�e�B�br
(��(��h��s�q�swr��r�q?B��A��t�Yf??��� �Vж*�z�4/3kf����(��&YV�V���++e�%�*f3�r�ԁ�������E���
���r_B"j��TΖK�L���a�!1[�����D�3�j�P��Y�0�Ί!ے���M��Q�g���P*�_5�cj��R��{X�Ϝf�7��קEY@i�a'!$�3�3C���HhMh���4,�������'P�A��md�5]xc�@yA�
`F�u-z���&+l����#q3��^�C FJ�C�hC��'��ѩ���`]��ґ#�=�?��6�_	�C�t}�$=ͺ�~=h�/&�'�x��!��F�4
ӓ`(��guc����NވF�s=���h4dGw�x�!
R�^  (�'0�!����;�f,3�~��9�`�/��R���`�$F�jŒ�/JR2b�����ؿ�^��etx�蒥K�e���Z��<�[��Jsy�d�09��!UL���2ț�T����q��ǖ:�Q�;=��Ή�x$t�ŏB2&���T�2f��N$�穞U��,w�N��,��rs0]:�rJY�����6ks�”�8%�y�Z�ڡ8�ˤ�����$eu��l^sp^8��C<�ے	6���TA��U��t��0D��?La6�K�0�T,L%��tE$
��HX���x�"�IeC%3�a#��
�ĺ����s�9�Z6f3��`�:�[˝��R�xei�d��B���fIO�鲫�-�!�E@$(�M��ñ�tY���J��D�ҭP�;+x�H�`�v�8z寷"+!?�eJ�s��-�:��5�}�C��4�W�s�w^ZO�k;�t|C�0�y�\��o�Y��ɇ�m��4`h����@�vFg��{�8�R?��KY��?m�쬝�g��8��mWm{�mW,kX]]ʶg�6��>�5M&q�3��>h�qMM㠫�ě����W�*\��"��u1|5w�y]B(�B���yUɒ�P�X�@kE��E�D�j[�|g�a��x5+�΋�$���BQ�8"Z,�V#dV�2v�J�7�g>�Io�����L�ׯ#�t��!��/7�2����Ba�
2'B�7�м��ˋ��8���}���Vn��T�3��>!ģ�@@$�{�w�La���Q��il�&؃����`��
c��N���B�}�i4���$˂�����_p@�}�NDԴ�����P.�L!g
:*5�3�6����Ӆ"��ܥy��+d�9� �E����0W����<3x�%��A���=�'��&ؾɹ΄���up�s�޵Ξ�(���79[ɬ����[+$���]B�9]K�}4���޺|�ҋ�]�w���_�q��C����!������9�r�Y�:4�\��B*����]�
9[2�v����e���XE���	V��E_���_A�a+#���RZ��UY>��O��q/�_��&��s'�8鍅�W�Ckv�b!,Z�j����L��+Ε���[*��|�'>
v�)�o����Wx�C-�'M;ne`�i���U��r�y��a��j�S���lc�[���i��M�l����`cێ�;�F��,E*�֪$��Bҿ�_L�z�4�n[Nu
b!!��p�7�s���;o	���w��w�r�p��#�\�9�2(�{�����a���ܮ���*ʸ���Ye�ؗ3��r��%��1�j���°޴�E���X��"<F�Ȱ
3G5����Ivl�g'm_6W��>���9�G~���/��j�v{|0)���Vx��yu`��{&�i�3]R���SSK?.�K�[JS`<s�i�8��Y��M�ik�7�(y����8d�P�a�����?�O��!�6&�&8o���"���Ԏ����qr�u3'�{	O�׎�p��L����,�0
����
z#F�f(f1d�+(b�v;$�d�|obQ�ReJ�A�llE�V-�"��B���;�#int�枾-�#�i���M��ó/��D;R3ZZf�:c�%�iь��e�U_g&�8Y ���\���ht���MK��DJ��v�+����B��L��>i�Ÿi���&��$�C�f��j#KM�N�T��T��m2�H�$z�F=Ր�����㝞�s������!����)�A+dق���7fh��J �2��U&=&�J�%J�?F�<kB�F��l��`�m��Pu���j�
����[KbQ�VJ�-���/�N��שW��$���uO��x���Y�
2�
�G�(��#j��ɽ��
��T�l��z� ��b؟L�7)�:�*D�� ��D�"R54"Ҩ�h�� ټ��͊<�4?}�gRL�����v���_O�E���)5-zT�Wա�`<zĨt44��@:%f?�*��	)�ėw��<�ԓ
4�	��!e����כbD���(/6QD�=2X�}��y�_�U�Z�27��D�e�#n�vsgp�q��kG�
[H��c^(h���4�3/Vk;�K;�.���r�Pk�CV��#g�k�#;D�/>�v籟�����ߨJ,߿D�|k3ə�
$g)�^���b�%㉅`Z�b[���Ct�Hn�Ԧ' ���#���5c�kZ����I�=I
�'�M�	��^���Y	0�Լ�G�xY喖�%�z'��c*�#�t�/E�٦Ղ��XvѲwz�^ק�� �_a�������t�o?�vgƣj��	���	�UY	*J�����j�>����M���6�H��Mk���D<ޡ�����!�~��x��bq1���Q�����JP���=���U��Ek	3nTD�bW]E�}mT�� ��)�V�|M��� �o��B�T+�v���h�g�J�V@q�*|]�75�x��Ⱥ�P^������+��!�u���қ�S�T��#���|�Ή�*W��\⼛��
��5{��Ȳ����;���<{D�g��w�C	��᳜�l	1������}�UJ�=��ג�/B.�7F[��2q��Bx|~�׌��{$�J����@�㇛�Ï;��{�����q�e���{�y.��<��e�Ds��w�OΟ><s�� �G�J�r�憢��]/bv%Y-���
v��1�]:z/6��k�>���.r�\u��bqn�s!W��Ͷ�~0or"��[���y��ɮ��*�v�D�M;�ܠL�tCwꂅ���E���e��-���7t�q�vv�i����7~!/>�v�	��"惵�21U��Ͳ��h�s0b.-�K]��i�R���O���|�����qg��4�L� �;�ڷ<JVO�����gN��ҫO~�1gv����w��c�����)������	Y>_ӧÿCY�����Y�,��e�}.��Ez����v��ۧ�g�^?��:�D����
y�hgn!n��}C��&�7����r���-�)v.2�S���\�f��Jڠl٥V�6��O̐�~�b(�~�f��9?�r��Y���	�����GRf�8�ҊG��f�9 ���Y����i2��J�0C�Ҟقp���I��y��,���b�����S�Ԋ�N���g%�V�ZȞN_}kD�g�XG} 0�e��YZ����
S�k��z�N#�J�B��w��ʒ�!-s˛<��-G���W׽g��ٳ���/��=c@��AP�8J�z��S\ߍlL]$Wz�4��!��+��V( I�VT��1��*����w>��u�#Z<"-�QQk��F��3)����_g�t�Gx�Zŷ�wS����@7ţ{���׫���4����>�w,?�|"�]q`�ྐྵ'�88�9��3�����G�ň,�1�e(I�d>�G-�T
I���n}�h*�7x3#I������0�\���\2��h*�gg!+�</ek
��Tz�i�T%<�(������|\7 ��
�P��w�?㫟񫊢@Ǝ���O��.x`E6�e����$rC8+����h����s�D���-��q#�X:�2V�M	
�VHŮ�E�Lf���/|��� KLs͘��C���s�Y�T2yv�$��(p֮m3��ZA;[��Z�=s58d0�~p
%[�Kn�J(nl�Rz���8{�=���i�{7�ʆ�LJ%��Rʣ��o��g�[�p��x�n��g��{��w;����x͚�]�΁.��w�N�W�ojox������Ua�.��u����
�+�o�z���6�yξ�����&��;����?�2z�u�}�OdF�p��:}�X�)�"n;���׹[�ǹ縗�w�T���R����|�P�ֳ�^�K&^,�
��<��6���������ez�����—�!����E��E�-�����<���D�\D�/V�_p�`�y��_��+��Bu>���>9�\8����5zQ?F�~���`(�����Y-;���s�DM�z��w;���zV��b��KǶ�]�m��mp�lE���T�q�+M�9�	G��)��M�`�^މL��~}ᅿvο���\.���2nzH�T(�XJ!�Y܄��"��fQB�b#�w�DY`Œ��Jb32V�J|Y;�����:ئ��lk�NL������-�R���������e��o��h�u��d�	"��AW���C�򹟽�]����S1�,�D�$�oYx<�Y�nj
�a*
��.I7
�L6ia�"E<�f5��%�t5Ռ�R�[��-\T�&��U<�ٶ>�1I��'���{��8�uq�d[��"�g�ԇ9�/f6�3g��$�[���Kv��u�)n$�[�TMr�R5_�1�q=��͆k:��e��Uv��<�0$���+��y����
��wB6�ɐ�\��tI���glU��&�a�M4��[f�����`�K�������t�	_ ��G��7d�
Ѡ��f��m�5"�?:��Ï��d����qy�g�sF0e��p�xScW8�߲�F�m�Y�d�|}8�
���o.��4ݑɀ�����_�y燂��E:���9E3<��RϬ�3??乀�r�xmy���@J<���l������2�:�E"Tݣ����1$�e�������e:=[N�CDŽ�'�Χ����A��	�^�
у�A�%���l�6a�����]Ð,���-[�e��! !c��Pm���W}Y՞]U_�b\<�P,���\~���W�3�Kp9|�jw7#�
n#F��j�yi�6D)]6*�t�1����Y�x�}��ʬ��R5v¬��^et#�r�
c�,�aheͬ�ĚX�T�F@|H��W�6����_�
�'���Y��죍O�/�L��֧����O6>�]0|me^��V޲�=���W���i�h6}[;O�k���c|�S�y��z�}�s�:~f��>�w@�B��wuߘ�W>�_�c��D�|��r����_=�5�ⵣN�Sq����˯��w�}��ԦU�3�!p���M�]��{~_�շg39ܸ�{֚���]#�n��y����3�Ol�5n��*._��tٍ�|ʊ�nfH3n����l^�ѭБ����é&h���&��$]�t�wJ��Hc��x#ٖ����v�i�����4�f.��G�\.�<�crX��X_e-�B��y�������ڷ�<G��t���6nZ�	h��Ya��k�,��V����]@�B0@�U2{�a[cN�Mob��ϖ�������l�����;쓔�d#*0��]BV�$Ղ�*�h0�0���\��S�T�mhn��ȟC3�
$�i�$k-�Vz.���n+�d����Z�ȴи�)EIY���'lk	iy;��I#��&��:��.�_^�IM%���3�(������0,���0�oi����D���l2-�ս����L,z�7�C66Y59��0�3��?�š��
i���|Ŋ4��"~?t���`�ZL�v��)VFgj*�}��Z0ヨ��M��&�U�B9rV�+��e�Y���2�rX5�m���=b��u�b_�/٢]���n���
6�g~`�!�Ȁ
UL���܅}n͒4��e�_��n�V��O|1M��
-|8,P4�����pl���-���#����PJ�(������g	AE2�Hc[�6MWf%pN
��[=��i�P�.+a�.�)QnjV�٦v��hF|��5���ś��˪3wwL2��:�
�'�>E6�D�W衴�%QA����h��&����GN����MC���z����<F	D��vy(��o�����u]�klE�Uۛ�ZP��t3�
�&�!�Po0`����5���Y7����h�I� E�`��N쪎!�֏�9G�q�>a�Ɗ��R�`uT˵���H�J��B�Ͳ�֑���mT5������ʕO�����U^K�_X�}O��xx�6�lEN�r0eL�LX���
��n�%̲O���-��'l:�L\���{��Ľ���к�����O\�p+�ի���q�1SaV��K��r"&ͫd��z&.'�xZ����.��+6ov����A�N���H.}��8��|U�Y
��^]3䅢5�8�KW�̤�.�I�n���{�.�r�+���x�q�#�;�^��z��z�W�0r�#��R~�w��Kbg�-�O��1��B�l�_���~Ѥ}Bi8L[A%�_�i�x����cF
��Z�O�xrx�����:Y0N ���T�.-ws��5��:j�p�6chG�\��������W�aĚ��ą-�&�������ȰP�/����>��O��D?���Ax��c߉�^�Px
�N�gu��#��7a戝�o.g��&�ݰ3�Mƕ0B��u9	�*�@����m�'7��*F�,�hg�F$؇�E�gِ��oW�AuT��7�$��ʾ���?�3 K-���;�SU�}�����W��y����~�����o�u�IJ��!������*r��k����]�w�g��U�*[�D4,��X}��mw��92[�+`oG��܅��
>�A�˲�.�HG?��w�%��	,묺�1�}x�&��0�`I&nU��Zf��]����t-�K/-Ԟ��/�?�`�*����"i��������*1j0[��`�R$��1ۄ@�5���m�ɋ"�,��-�hTQ%E�<^"R��z؉�PU%��-���O�� 4@c��И�ٯ�������b�J�%j.╀�C@KDdI.j)���'
e����P�1�-~��dy`����a}”xjB!��a�7�zSB8����d�Uzr�p)RN	B8?Z�>sdS��߫h����{|��)^���4��nmt>,�r���<�ВL��!-���?�h}�n��)_<,�<�\�|�G�0�)�*xòꈇ�A����˾fY��ԺX�KE�HR�N%�0��7�_���W���S~O{"�8��.^�����bn
�	����5�J�-k��]qA���]a���zl�X	Ab��9�M���<��p$�EL*�0���0��9�@k��s�c��\2���w
嶖�����PZ����3?�W�2��ˌ��`ėFeB<�xb��hꨍg�ޘ�_m<�7��݆�
�$h�T�	|��4Uf[�R>jfp�1��b����Kb��Ɲ��Ӷ��Ƽ9�aU_���u:o�zͫ4���#���	{��~�[^:r�Y3I9���v
�!�Ğ��u�3�A7s�k�1���k��B�d��4���UL���(�Al�w"Kc �{G�O��!�ny�/�D��?��I�ū�W��yup����v�."h8���'� �e^Njdn��s�$�zd�CI�
�\��a�Ƈ����Kz�[#�rE7�
1,Կ�Nǖp0�f��-���`�C+	"A��f�#d���	Y?�!!�k�[����N��E����̿}+O(���J-�(?<b���a�Ѿ�}�붻���&���0��������@�͵�v���#�v��ᖠ���s�q�s�r��ҵP.���Vr�.R7�c~�>����~7�>ls(̙��}�ɾ�����W�?�,�m8v�1(��S��I!�>��ӊ~�mO ���ֳ@�'kZ@U��x��_�a"�Q�20BRax0(J�(��h���4L�)�`��c��P��5�#u|�Z��ұK@�9u¬'ܱ���'�?V	��#���s��p�4�x�c`d``����m�2p�0��U��h���C,",@.H0�
�x�c`d``a���#*05��x�ca```FV����l���0
�`�
(
���
 
��0��$z��B��n ��*r4�jh�\�t(�  �!,x�c`d``0a�ba& �B��`>�jx����N�@���f�D
.Iƅ�rqǎ

;B�R��R:�t �%|�'��n�)����I;�Ι33p�O��&�\3:q	��\��\!,W��r���r�Ձ�n���r��o�Z��\��,��-W�M�U܉g�5���:f"���x�d"�o�™/>�K#�p#��oO�Z��Me����-�3���J���-d~m��1�j�uF*12���j���q�Ƥ�N'��
�$�>��q��C�9�2�Cl8Kf}�1�Q����d�21��=W�v��aE��=��Y�-2�y�>�A�8�WnI����:�P4i�[�����
���Pﲊ�~���x�}���@�K���w���ƃ/������D2�r�
�JbeU5u
M-m]=}C#cS3��������������������������