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.woff000060400000034154152457265740010424 0ustar00wOFF8l
P�OS/2�AVV�cxcmap8�j�u_glyf�3�H����head5�16uN�hhea5�$��hmtx5���loca6xx-Z=�maxp6� Yname6�Z����post8j� � �x�c`da`�������t����B3�f0b�```b`ef�
�\S�X@�; �����x�c```f�`FH��| �����d)1X2D13���V��`��Ȑ���3���?5	0���`�L(\fV6vN.n�/�����������������������D^]CSK[GWO��������’������
�x��|�řoU�{RO�L��䙝��;��3�9H��s�UD9$H�l@`lL8�
�L�	�69`�`�
l?l66�F�z_���޽���ڭ����Z����o�&���s=�(n7�����qgp�������l�<� �A�	��\�	�)/�Zh[�~#��3�-f!�"dZ���-F� �`E�e���P�
!#�!'��9,rf��&�Q�8��U
���v(��9B����	ٻ���vJ��8f,^僑�����0��Kov�����5��)���r�{ed��g���h�d&���'�*t�I�7�P�]�vX_�Ǽ��h]۔�1���LX��x��5+�^�vB,M.�[���%+�p̺_�\��t-^k}1��V��͓5>�;��36�{	���Au�4H�{�OW�v��{��S�
��8�Ś�r�1��s���ณ'�<ǵre��6������q�G��A[r)�͵C��-iA�0��-~v��څ�Je@)#����	9?#zYJ1&`m9�8f2Vf�
c�$0��p��Wj�-�(�@��H��/��\�fX��f�0��[)�Y/�_o��
x����!�>����A8�wї�?Yy�����J�O�� =�H/����_��~��;w�\����� �˽c��|����c�r���ձ3@OR�:�^ʇ�ݩ�\��9L�AzF�$�����uq��n"7���-�q+?�
�M��Τ$��i�R�(��9�����
�JF9��)��d;l%H3�3���
�.6�
��
�e*�ac��fz� Z�TE�oT����~(��x��Ǹ-����GY��9g��$i\�%���f^�b�E�~�i^j�x��1@��\�y�Ц�:��{����P"�hT���)ײ��p�ܫv��^��r8f-�HD��̛��nޣXg	‡��o���T�^Y&�¸�E�<A�|"-^}��;�6e~����8_�o�*G����W�p�������!6�=-�[��v�
-��P�&̺
y�B�4Lսz���r��%���͙<b��嚹6����F�h�)1�����\��E&ߒ�P5�OB��~���S�ʅr�Ŷ:�PF�;��6/��Ixà'�J&�?"��E@�D�DN�~��w<�����/�C��sA�����~5��Ӊ!�G�8���(Ђ�0��ᩔ��OF��u��"����|����m����"%k�����oy�]1�C��϶	��`[�n,7���ͱ%w�[�m�q{�s��a�2�*�:��v�B
��$G*�@y��Ro'~�|K�
�B�h%&������e[��ڂt�lK����sNHգA�~:A(�.��)#C1%f�MB�u��1$*��!U�'��z�Fx���`��Ծ�E��+��gKRkǗn�q��36��v.]o��I�o��\#<i�S��X���=��9�lp��Wn�?�.��::���㜻�{������!'���=k�9뙯3��C�w�.�]vK�5
��t@�v�s���ۻkȵj�Y�U΅k>��ậR��ȸ���6u�,�9�����l��}�)�p]v��t	�`��#��|?�frLA~��C��M��06�H�"J3�������3��ƿTf���wc��۞���}��?#`�{��9�XE
�y�^ضCm��8x����t�.�»�%��D�J�!G`��޸=�y�5;_�!��o�dTuk9�>�z�G�ugo�kh��k��o>*d��1
[��ҽև���z��g��sϓĦb?ԢT���<��sB�-B�����ҧP��
7\+f�MF	h��\��߱���v�^f�	bm�U�Z��g�ڤys���u��D�^�7>0ɏcǩ6_�/��>�MCnd[�Qг�L>+2�$�R��>�l�-L�v[{������
e�>�@[�)#�r����Z���8!��I&�E�@7x�{�U�J�
ن�nգx4p�5>����|2c��|:g�
[�\a]*V�m��2P������Y簇��Q�8I
�+O�u.Yw�c�r�:	�E���6�g��'x�N��j��֟9�m�~�������	�Tn7�[ɭ�6p[G���r��
�h��*�J��J�M0�b��T�%ڢ�4�ɀ�B�6jL�O��TZ��x��ef�{n�F���ۚ1ԙ�I�>@\�v
�C�|����i�FHdaT�G���8f.y���c=E�q��bH%��g���Aq�S0$�za���փ�G�W,���A�Q��
յ7����Wy�����U0��*�7֡syYd�y����6}�*�f�J�2��G�����͟�j�~��>��:�6���б���w^��U�~ �4{�kն�֪�S|�6u�f��6y�5�!��|�4�Y�-�Vpkl���r�sr�pWrG�/q7q�Up&���3=좝�G%��Xٯ!x��@9�A6��غ���	Ɔ��@l�â��2�{�L`��d�V �)hj3;R��(��<�m���e��ӖuJ��&Ҁ+���Ǥ|yW��3�&#6�I(]c�:���pڹ䬕���n_�M��g�C��s,ٽv7,D��l=Q�g��ʽ�.�6.��˜9��^��ϱW�L�z`�8�b�լ?3��T�}�B�k�E_D�lB�p��
���ڏ#��:��u|$�֛�\�G���з����r.[�yN1^��	S���U�׭Ś�/�U��P���r[��!x��x��Bu�8N���Gh�1\έgF��5!�*�)T\�T9P�	���"dEE.�m}NGn���f͈�CBf�l`�aI+c�E�0�P�vb=	�̥�P�w|W�	�����k!i�p���h�Y�\gn��ɮ36%ע���Y7�I���
�w�G�����IG{i}�
�8�(��a�"5xu�c��s���v�˄T�IH�n'�k����$o��zn:.6-�����#��N�W�e���'O�:��ߡ�Ob��H�n8���ٔ��N�
��:�֑B���"I�r�v�)Dj�)�fK|E�Y�Vf����&�f�M'l��T�o��@�W�A�edx�sΙ���h�:�1�WYg
�k܊$�w�`��>@�y����c���
֘7=<�A��� ����P`#YE�?�Ϥ��,h[�׏b����gF�����|�����yT��fb�ޱ<��o��|M��SC�0d�a1/ҕ�?�r\�H�Y��e�A.[��@^���-�>�dk�aF.Ӷ$뒳���̒�)��a"kdlZ�e�y�9+d++�r�C&�(��B,y�)�*���(%�F5�H�Մ~{�qZ=d���K�]�#���z��nxr*R�Ŀ���D����\hc�gۘ��=��߹h���V5y��u������k>͹�Cׯ���c�>���[�I��X�����0�@�s�#����	Q���A��Gz�G)<��ww'�o�q�E�g(�.�ZKmh�ӟ�f��buB̀�����(Z��?]L���D��@���es�@�Z=�WZJ�fYL�ЬZ��(�ۊi�+�`7�-,�5�'"��
�t�PNe�J��OL>9-c�P�f*W�!����J��Ӣ�H��q��Zƈ]�
�<���9����T�ւ��Uo�pF��Q��bЊ	�t�چ���@���H(u(�~�WXD"���Gvx�(�M�U��+O}bD(/�a�a�CF��E�2|f�.�9��CQ&�+�O��,(���1܌����,�E�F��ѽU^8u\J�?�C��M<��K�<]�4IOz<^��j��
D/&�#�x�� ����4�xt�ϫW�uc������V���Ë\tCU]8�3C#X<��x������ᙊf+���L��7jyF*3P~>�9�`�.fs�B��%o�	$z�r) �(�;I�Q�[NlA,c�|K�����0�K�.}4bA6�v�j�+�g�+��ٓч���|R�� o^�[%�.���eK]j=b��^�{]�E!
ŀμ�1C�G�DR��rPƈ��������Q�P�/`���r��(;���K�?�RZbK	��d�+s�Ԕ0�f��PΥM_�E�����Q
qY�p5���N�L��G����UPv[A+�t߁��g��S8$� �ו���D$H%5o��$
h �{Xq�P�G�~**�!w8�<
Eڹ�����əŌC�0}�
n�����•�%��?����%�=��&�6���_A�Z�b�o�W˟,J�+�2�@ �G��MP��Jx푤�L��I��I��ބ�����)=�-�w-'�����}�+���3?4�w�sϴ~��8���A�~U�0�1�M�􃲦�'���P��訃�q��)(V��L|z��c=��Fk^��ָ��D��%	3m&�Y���7Ͳiv�f)謪J��ӄc���۲��$*9�C{����0��n�דh];p�b��j�C�qiD��
_�cZ�(�gaxk���L_9�kEiE�y�
�@���m�64�&���i�lS4%�,�y��%�#��2G(��L��\���T�����-��`��w�)��;�T�7l#5�!_Ã������e��5r�,�hd�"B�7�Ь������b]�H��>hP}��_�L��Js&"�+|<*xD��Q�t�ɝT�E�@G��1� *�<��q�X��
Q����t/���hWɲ`�����k�������j�������\�/���dƟ7���.�!���.��S�L.]�H9���o�=��%��_`���s����
�|&�>�6���֥p�X�����|k˾u�޳(♹7Y�ɬ�;�;�������o�/���P�xh��K/_vپ]�\��2�O�����|�
X4ϱPKO#���e�lR���e˘��ls�<]D�\�hU�q�[�0�.��/��a�[6$E�����)�8.)�c�ݸq�MD<֝п��;֘�5��=�-L�U�f"U/�uT��yKe͝I
��`������=�'ź<L[>��t�|��p^��ݳ���?���0��e��S�=�lS�뺸�n���H:N�L���y��]r�樗B�DSY�B!��z�+":䏚Nw,���so<�������WZW�>�������������s�X('O })����(mF�Cm�T�l��ι�TL�Hg���w�����f|������r�DUG���|�b��P�ƙ�j:gn$�D��j@9��I;����ǖ�*c�̭���wI��`��p�$���r�HjĤ��X��t���6�g]�殅0�ڄ�i@?#�s&��¦O�w�S�ߪo�t��5mmW��ė�kݵ
�:���B…�
Go>�z{v0���5�"#����F�]89_����eE7��he'�/��G:�/�tL'�ʣ�T��rż��J��9���D�圙EX��Z�(��<í�Y��c���+�<o���[w9�L�	���+Pxtz��c,�$��wE�T'})G�<���J�\r�|��O�=Y?�^��$�C<�VX����*fR9S�;'����Q�ȂW_Mâ��y�9�S��y[\��"NB���mC_`@�k�RZ/y�Y�.�����������
c�@S.7w=�/Xo�F�Y�]�w	Xy͖3V)p.4'�_c}9��I�Sϼ�˳gJH+QBr2"�x���_1���,Ts�\�ܒ�ξd��7.6�a�."�cf�����,�Ԝ�3����o�ih譧�U��+�q%R@w-��+Z6/������T�Ҷ�)����;]����D��^�S�Ib�i_n��*��C/�4I�QI!ߒl-�X "��|ٜ-����7c �I�i���W�3�R*3��)���PP��X�V��8�&(�R3�.�͌���ӷ�~���q����18+�� ��Č�����u�gZ8��U)m��W��`l� dC�z��;�jfnӒ�s<��ɢ�/��������q���qs���I����	��;�[��j���T��J֣|�Wl	���*�jIt�z88�&qo ��sz��k̍1���񥟫BOw1"�M�f	S��9�(�$eJa����sv��-Je&	���#˪���lU����*��9֗���^V��0C��K,����s�
�ﴪU�n�	)�zbA��W��e��/r25
�G�(��!j���y٠>�”
b�ɛ�X���~1��Z�A�:�Ј�Wd��@��i�A4�pJ�����fE��!��0�f���=�ݼ[O4�tpJ��۩�j����2J�5�bٓL�)�w���\��Ity��˓�F�M�<��Z����j��Y1̋�
�(���_l�
�y�Bȯ������@o��[�����w��;̖XB) �GB3�UP!��mY�\9H�90�c�	[�J����@<u��&8u@���TZ~��{B��{U�d�W�l%���m�"U�D���B��+M�F�5��P��p4݀8�*R>l4�"������TorB�S'������tE��zV
��Cs����-��c�K�Nx/u�!W2�B�L�
�����нպ>�>xa���.2>ڛ��:��J˔C�LU�=��t���U�FUQ�pt�>�lճu�����I�=�Mj��p�ΎJ�\���};����F��`L��;y��,U���vv�Y����M���Q.�e�Q�Eth-�T2m����Zl^1X��N�68hN��)6	p�,)���:��Y<��*�XK��.��R�Txx���(�|[]D��ڞJ�1tc6R���d�z������Ç�U��8�t�`���1��nݸ��ZY3GɊ,��'�_�v�%��+�?��Ax��KWuJ��gYX
9���x��½��eJv<��w���C&�6F�1<eℎ\p|v��ru9$�J���.O�3���]g�}�=�w�>�u�0E�^��	5��lh�0ѿ���'�O�X�_�S���.�u *�0�<G٦d9��� 3w�
lUc�X�t[fؐ�ǯ��8O���ʹ�Nih����(!G����s��?o}����Vh�z�u�y�g��S%��(�i���(f�؝�d��}��m�l[�xX&F��/8Fۺ�޴k�%ɮM�Z'9��;S���|=+����t���' �Ғ�V�6�&-Q��}��w�b4�����,@6j�E�������u�-��5S��!���-�Rz햧 �fGX�ã�\3��P�7?>�����q�]��o�pe}]0s�f�0��>h�<���<V�|�z��S���a�T��S���
tH�m�ͥ�;����Jk]p��1�.��Ց8���3��E6�cF��?_n"�P��&�2�!>��}���P��O�E����#�a�t��+"�D�H�lq�4�Y/�?o�0���(1y��vD(�v��-��%%��>D��KL�sY;� �):�pf�c�#�|K���+Ȳ%��&�Z��6WuSH�g�Hk��3��[�Y���A]L��_r�U-R#��:�DK��>_u[��,�Cwا�ny��_��Ա���u煬�lj���ʸ\.w�@=~T&��N�v�7t���.��=�՝9���
DR3�D4��H�U��E
"UT��ẘ�U٪�F�H��T�j���:�LJd��pW9��~z���ứD�o��@7š;�^�ө��$����>�;��>؋��7w$�'-;~��)�8qD1"snL{���[2�2���O�9���K񈢂z��H�x\�Ɛe��ϕ��=}�S��nsv��D�%LM��J�}m�%g�	��H�P�`�!�
"�������N���ܪ�(��c�����K�J�����d��@l.F~�B8|�Hy��)�0/a
�
�<��<j$U�qƌ��l�%"_ʄ�Tj����Z�DA����27��Ζ?&�R^He��䜽`���e���2+�|�R��9���Cf&[N�\������)�75�+�JkM+\8���TϑA�u��������ABy�J��?q���F��?z�O��ƻ����>����20�_�j����o��7�tmn������M�h��|U4u�f�y���?�~����$��ۈ��&���x���Xo��m~�Ee��/}�|,5`��O�m���z�M�q;�C������=�=�=ǽ�����d��%iҹJ��-����Ǜ�B���A����j>yya$WS�$}s:m���t�X^�l��GX�6"�ܺh�qpQ�����l��#I��g)��8��n�g9�����֤����Yo9���lD�sr6�Ng������9��a�
�i{�
#�4r�^�o�?&o�Z�?K�ܹtl�إ;Ǝ��ȁ���
qEwf�RW�3��p*y�]ܬ�do�݈4n{�w�^�;��K/��o*��~�ہҊ.�6�},���t�S� �ViмJl���d�����Z1�h���30V
��e���ݾ���ʊR�Xb�5A��tg�_�h(^�-�]0�ׇ���e}@k�<:p����T���;�He��ޗ���훦@�Hnj���„�bO���昱�&ļ��,M�wtԓ�ZСH!ǬY�f	CI0Y�o%ʉ^��.�j�xCr*��ts��@��N�d�ag�~S�dS1�B�gЯwz!�+��ϜYl��oi�M^j�s��K�[�[��+��d��r�}�zH�4��f�!�W�N��xj2�!�?�?R��ˎ��O�$��0��{�
����!��W�%��2U����R8V�2n����?w���\)����?�����H{"syB)�hȫ;}��X�J����M�FGg��l>�ٜ\��qF<gx��l�K���
���-ښa�XY��SѰ�z�
�Y�[���RwG*���� ���;Yyg����t6�S�2u���'�e��Y ��X	뽓(�]��	��z�;+��|G �K-Agm��JKV<�(BȀ�}4����!^{e���N��m�t1IO|��}�&l}�:tTz�l��s�\.|�(�>#�
|�LbN�e�Y[0��d/����3����g���Tlú��gY�x�f�l��t����A�n�OEN�+?�2�^��n:z�!nz��*��d�4D)Y4J�d�!���Vw��y�C�-�#�e_���}�����Ip*�3����U�'V�:��)�C�-xe+�1���P�A����>�^�~����Ž�*����ֻ���ڇ��֕�%�������������:ǴE4����'�s��Q���Ҽ�m=��ҺQ?3YM�[�D�h�p�k�7��O���ڷ�h[�}o�?���G�5/:�uV�����)�5�n�Y��U}k�'Ժ��3�z�s��5u��=��{�P�ӷw+9Y��{�Z��=������>w���ݫjG|�s���W$�h��|�O�Ȑ�찱�v,�h�Z�"�*Їu0\u}uuq�>n��:Im�h-ّl��L�Ei���MoGe3}��h&�~�bpX�f�V�뭗[[ZZ�.����9r!�s&W�5s�P:V�l��nd���
���lͷl���O�T,ö4��^`�-�>'�&����C構v�ZQ@PT�7����E)͒���]�o!�����-��	S�J���N��/��h	��$�C�������hѮ��Ɣ��t]K�F
�7�(	o,
�8��F��5�	�7b�ẗ����yp���.GҨ+4f5�1D�Pt�䚚�<�w�a��%[���c��BH5��U��b�S�4�^���du��0V„z�<�p#�ng
�b]~��P�F!�ڛ�<��~»bf��)��NUXXٿ��1��M�&��j������+�R�t�E.���y`�v��&�sT�s��c�ͼ�`Ǵ���l!dž���
�#)WF�+c���.l�=��>����<
��m�*�+��N�S��J��@G5�=.[��F����OJ�/��T��&����
^E2�c��fMWdK
`��v����u6kr�[��`�̫	Q�kz<�V���	�?��܆�9���θ�U�sZ'�^�:�ɲK��Z,�+�P��+!��31I�Զw�j���Sd�#�iR�����B���e���(�Z�,v�}���8|A��A���&��jK�S�꾪��i�ڠw8������?�8\�u .)�Z����[�ަ��cȸ
c>�)]d�Fb��K�D!�Z.V�6K�!<+��ri;�SG��6; �Qݠ��]!Y���S�|Ǘ��*�%�o8
�>�'f?4i]6�ѴL�7V*ni�f�e	��U�|´E�|���ĥ�~� ���Q^���o�f��U+n'�f��}<��2f*�곾�T�(�0h^-+���3q9���Z�^p	O.ں����F�=�O�7%�����H��e�d!Fz)T���.��|L�2����&M�i�fz�콽�|��6)���tӌ���`�JtN�+��}x�>��`Ϛ>pE�@��C��]s{.����JHM�/�`��T~����U^�����W�Z�_f�f؞�9��:�3�!���T�6,�sT�*)�V�p�f$Ch��\���WW�����K�п��>qa�ɇ���;�u��nɵ�h3��$w�7&��=O��d?�7�z�=Bux�I�;�����G �o��;c�L���<v�Έ7V�H�f��$�@1'�h[@>�b4���f�Ea@�m����?ˆ|���{��S�z�QPܒ���|b[�{;�k���[@��X��wQU�}?������~�q�{�^��n�������e�	J��%GN���|��K��Ⱥ�|�or�s�r�²�e��Dk�oa)p��ǟ�1�ɖ*�_�mqf�%���ln����/�]�ݶm�ȯtz�'�+*�O`Qg�^3�v~0FL;���i���Y���o��BB\��
�]zi��d�|�}�þd���"i�]f�/�w��5�,�s0vɓ��܊��CC�x5���4�.?/��DZ0R�
E��*)��p�ʼ�.T��*	�����5��D��Gs{4�	�iQ�׻u�Pc�@1<�GU^i
����x�#���b�Y�D�!y<�Wt�}��}T7��J�g6'�-b+M���:]��'L�&&�"	F9�.�3!���o�Ǜ�#Bń ����u5T��n��i��A�pI��8�ShM��nmt6(�b�g���7�>-�.�;�huʬ3�	W4(�<�\U�\�C���)�*8���k��^��]-��e�JS�"I'e"I�*������>�2ݞ�ƒ��܎����q��7m{�.FA]�bn-[0Ja���*V����m����/q��C\,�cI`��m�c˴�-��98��S1/ڤ|�[6�Hc��s�5��<�>"нKF5��q�n���8>����%U���NI=�SY��)��>����Z��ҰL�cAmO��ߟ:jӅ�7�ᷛN�K��F�!%�4�5�m)��c�a]iv VȆ�)x������d�򒈷�vw��>�IS_pc�?�fu��o�Y/�jͩ�C�����阹M۰�'�:8�c���m&���I�i��c]���]��&�r`����R��NC�av���u�4u�6g���	�m?q��h�����BD�s<��\��8��,�F��ɳ��O�D�vA�!��.o��>�$s�����$�(�!��H2Up(�j6�.�0.<���x_���5�0����i�A�3y:��p��b{!�v�2�� 4�����9c!f.$d�`���U^~qD$�-/�������T|��3�8�9�����+�+��e}� �{�u�+��A �Zh����n��]{j_�L	�?1��dX�}C�q����!��<���,���lZ��m	=/�^v�c
����D���U>lF�Ӄ�i3F�.ɥ	��1�B������N������3�S�]4�����MArt�X����k���s�������=	�o�
���X��\7�}��>Gj:ebl��&�}��"�ޑ]%v���+��n��Re��� P;�ȝ����������à(MOS��ζ	j��e�\5�5���uN�Ж�]]��)��*x���r�0��-X޽�Y^�-��W��!�,�CLTk\+�4n��ƷvN�lrE�a��0�j�.mB+����X=����z{�Y?Ŏ�.l�)���R��&�	�.�jo�]�Z��m�P&���'��-
1Ws�)�-㵮-��J����G��X�:�&L疲/���eƱ��"ç#(��P��t��W	*��U����b��*
,e����쬥�P��bV�'�C����eЩ�j�B�us�<��fk���q�n:cL���u�4������e����9�{`��}�2.\���m�yl����^��(Zo����.^�?Z�w�#ܡ�K�gֲ@M�?��7A�Ț%�þ�@���b�U۩��UM�ў���4YO}�Ԕfko��{�.�f��W�7Ќ%_e>������s�[�����e�u5R�U�G�}���?��BB�e��@䋚���w�Z�K,�K�T�o=~O~:\u���›`U[oJd������r{o�f�)]m>qA{/t���v.Jxk���fuBR�N}}�A�8�[��vw��w;w����(r�B�Ua����_�-����M�4m/��t;�o����K��v����2ل��dx�DK@�6+Db�Pv��z���8�~V^��~�y��yTU.��u���!�R���K*ty�����*��+�[��N���~~�Ϭ''?=�TNP/L����'9u¬�wZ1zš�[N��g�a=��30�/�zux�c`d``�~]�6_�Y@���O0�����XDX�\&�(Uo~x�c`d``a���#*�5��x�ca```!o����j���*�V�

�
���

��<�.��"x��@��l��(p2�hf�Z�r & �!!~"0"�#*$$Px�c`d``�f�ba& �B��`>cqx����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���UVBQ�; ���n�k���_8�Y��Xx��s���}HHJIˈd����UT�|����������70426153�����ǯ�?�6�v��N�.�n/6o��&k