php-src/ext/phar/phar.phar

1229 lines
52 KiB
Plaintext
Raw Normal View History

#!/usr/bin/php
<?php if (!class_exists('PHP_Archive')) {
?><?php
/**
* PHP_Archive Class (implements .phar)
*
* @package PHP_Archive
* @category PHP
*/
/**
* PHP_Archive Class (implements .phar)
*
* PHAR files a singular archive from which an entire application can run.
* To use it, simply package it using {@see PHP_Archive_Creator} and use phar://
* URIs to your includes. i.e. require_once 'phar://config.php' will include config.php
* from the root of the PHAR file.
*
* Gz code borrowed from the excellent File_Archive package by Vincent Lascaux.
*
* @copyright Copyright David Shafik and Synaptic Media 2004. All rights reserved.
* @author Davey Shafik <davey@synapticmedia.net>
* @author Greg Beaver <cellog@php.net>
* @link http://www.synapticmedia.net Synaptic Media
* @version $Id: Archive.php,v 1.52 2007/09/01 20:28:14 cellog Exp $
* @package PHP_Archive
* @category PHP
*/
class PHP_Archive
{
const GZ = 0x00001000;
const BZ2 = 0x00002000;
const SIG = 0x00010000;
const SHA1 = 0x0002;
const MD5 = 0x0001;
/**
* Whether this archive is compressed with zlib
*
* @var bool
*/
private $_compressed;
/**
* @var string Real path to the .phar archive
*/
private $_archiveName = null;
/**
* Current file name in the phar
* @var string
*/
protected $currentFilename = null;
/**
* Length of current file in the phar
* @var string
*/
protected $internalFileLength = null;
/**
* Current file statistics (size, creation date, etc.)
* @var string
*/
protected $currentStat = null;
/**
* @var resource|null Pointer to open .phar
*/
protected $fp = null;
/**
* @var int Current Position of the pointer
*/
protected $position = 0;
/**
* Map actual realpath of phars to meta-data about the phar
*
* Data is indexed by the alias that is used by internal files. In other
* words, if a file is included via:
* <code>
* require_once 'phar://PEAR.phar/PEAR/Installer.php';
* </code>
* then the alias is "PEAR.phar"
*
* Information stored is a boolean indicating whether this .phar is compressed
* with zlib, another for bzip2, phar-specific meta-data, and
* the precise offset of internal files
* within the .phar, used with the {@link $_manifest} to load actual file contents
* @var array
*/
private static $_pharMapping = array();
/**
* Map real file paths to alias used
*
* @var array
*/
private static $_pharFiles = array();
/**
* File listing for the .phar
*
* The manifest is indexed per phar.
*
* Files within the .phar are indexed by their relative path within the
* .phar. Each file has this information in its internal array
*
* - 0 = uncompressed file size
* - 1 = timestamp of when file was added to phar
* - 2 = offset of file within phar relative to internal file's start
* - 3 = compressed file size (actual size in the phar)
* @var array
*/
private static $_manifest = array();
/**
* Absolute offset of internal files within the .phar, indexed by absolute
* path to the .phar
*
* @var array
*/
private static $_fileStart = array();
/**
* file name of the phar
*
* @var string
*/
private $_basename;
/**
* Default MIME types used for the web front controller
*
* @var array
*/
public static $defaultmimes = array(
'aif' => 'audio/x-aiff',
'aiff' => 'audio/x-aiff',
'arc' => 'application/octet-stream',
'arj' => 'application/octet-stream',
'art' => 'image/x-jg',
'asf' => 'video/x-ms-asf',
'asx' => 'video/x-ms-asf',
'avi' => 'video/avi',
'bin' => 'application/octet-stream',
'bm' => 'image/bmp',
'bmp' => 'image/bmp',
'bz2' => 'application/x-bzip2',
'css' => 'text/css',
'doc' => 'application/msword',
'dot' => 'application/msword',
'dv' => 'video/x-dv',
'dvi' => 'application/x-dvi',
'eps' => 'application/postscript',
'exe' => 'application/octet-stream',
'gif' => 'image/gif',
'gz' => 'application/x-gzip',
'gzip' => 'application/x-gzip',
'htm' => 'text/html',
'html' => 'text/html',
'ico' => 'image/x-icon',
'jpe' => 'image/jpeg',
'jpg' => 'image/jpeg',
'jpeg' => 'image/jpeg',
'js' => 'application/x-javascript',
'log' => 'text/plain',
'mid' => 'audio/x-midi',
'mov' => 'video/quicktime',
'mp2' => 'audio/mpeg',
'mp3' => 'audio/mpeg3',
'mpg' => 'audio/mpeg',
'pdf' => 'aplication/pdf',
'png' => 'image/png',
'rtf' => 'application/rtf',
'tif' => 'image/tiff',
'tiff' => 'image/tiff',
'txt' => 'text/plain',
'xml' => 'text/xml',
);
public static $defaultphp = array(
'php' => true
);
public static $defaultphps = array(
'phps' => true
);
public static $deny = array('/.+\.inc$/');
public static function viewSource($archive, $file)
{
// security, idea borrowed from PHK
if (!file_exists($archive . '.introspect')) {
header("HTTP/1.0 404 Not Found");
return false;
}
if (self::_fileExists($archive, $_GET['viewsource'])) {
$source = highlight_file('phar://@ALIAS@/' .
$_GET['viewsource'], true);
header('Content-Type: text/html');
header('Content-Length: ' . strlen($source));
echo '<html><head><title>Source of ',
htmlspecialchars($_GET['viewsource']), '</title></head>';
echo '<body><h1>Source of ',
htmlspecialchars($_GET['viewsource']), '</h1>';
if (isset($_GET['introspect'])) {
echo '<a href="', htmlspecialchars($_SERVER['PHP_SELF']),
'?introspect=', urlencode(htmlspecialchars($_GET['introspect'])),
'">Return to ', htmlspecialchars($_GET['introspect']), '</a><br />';
}
echo $source;
return false;
} else {
header("HTTP/1.0 404 Not Found");
return false;
}
}
public static function introspect($archive, $dir)
{
// security, idea borrowed from PHK
if (!file_exists($archive . '.introspect')) {
header("HTTP/1.0 404 Not Found");
return false;
}
if (!$dir) {
$dir = '/';
}
$dir = self::processFile($dir);
if ($dir[0] != '/') {
$dir = '/' . $dir;
}
try {
$self = htmlspecialchars($_SERVER['PHP_SELF']);
$iterate = new DirectoryIterator('phar://@ALIAS@' . $dir);
echo '<html><head><title>Introspect ', htmlspecialchars($dir),
'</title></head><body><h1>Introspect ', htmlspecialchars($dir),
'</h1><ul>';
if ($dir != '/') {
echo '<li><a href="', $self, '?introspect=',
htmlspecialchars(dirname($dir)), '">..</a></li>';
}
foreach ($iterate as $entry) {
if ($entry->isDot()) continue;
$name = self::processFile($entry->getPathname());
$name = str_replace('phar://@ALIAS@/', '', $name);
if ($entry->isDir()) {
echo '<li><a href="', $self, '?introspect=',
urlencode(htmlspecialchars($name)),
'">',
htmlspecialchars($entry->getFilename()), '/</a> [directory]</li>';
} else {
echo '<li><a href="', $self, '?introspect=',
urlencode(htmlspecialchars($dir)), '&viewsource=',
urlencode(htmlspecialchars($name)),
'">',
htmlspecialchars($entry->getFilename()), '</a></li>';
}
}
return false;
} catch (Exception $e) {
echo '<html><head><title>Directory not found: ',
htmlspecialchars($dir), '</title></head>',
'<body><h1>Directory not found: ', htmlspecialchars($dir), '</h1>',
'<p>Try <a href="', htmlspecialchars($_SERVER['PHP_SELF']), '?introspect=/">',
'This link</a></p></body></html>';
return false;
}
}
public static function webFrontController($initfile)
{
if (isset($_SERVER) && isset($_SERVER['REQUEST_URI'])) {
$uri = parse_url($_SERVER['REQUEST_URI']);
$archive = realpath($_SERVER['SCRIPT_FILENAME']);
$subpath = str_replace('/' . basename($archive), '', $uri['path']);
if (!$subpath || $subpath == '/') {
if (isset($_GET['viewsource'])) {
return self::viewSource($archive, $_GET['viewsource']);
}
if (isset($_GET['introspect'])) {
return self::introspect($archive, $_GET['introspect']);
}
$subpath = '/' . $initfile;
}
if (!self::_fileExists($archive, substr($subpath, 1))) {
header("HTTP/1.0 404 Not Found");
return false;
}
foreach (self::$deny as $pattern) {
if (preg_match($pattern, $subpath)) {
header("HTTP/1.0 404 Not Found");
return false;
}
}
$inf = pathinfo(basename($subpath));
if (!isset($inf['extension'])) {
header('Content-Type: text/plain');
header('Content-Length: ' .
self::_filesize($archive, substr($subpath, 1)));
readfile('phar://@ALIAS@' . $subpath);
return false;
}
if (isset(self::$defaultphp[$inf['extension']])) {
include 'phar://@ALIAS@' . $subpath;
return false;
}
if (isset(self::$defaultmimes[$inf['extension']])) {
header('Content-Type: ' . self::$defaultmimes[$inf['extension']]);
header('Content-Length: ' .
self::_filesize($archive, substr($subpath, 1)));
readfile('phar://@ALIAS@' . $subpath);
return false;
}
if (isset(self::$defaultphps[$inf['extension']])) {
header('Content-Type: text/html');
$c = highlight_file('phar://@ALIAS@' . $subpath, true);
header('Content-Length: ' . strlen($c));
echo $c;
return false;
}
header('Content-Type: text/plain');
header('Content-Length: ' .
self::_filesize($archive, substr($subpath, 1)));
readfile('phar://@ALIAS@' . $subpath);
}
}
/**
* Detect end of stub
*
* @param string $buffer stub past '__HALT_'.'COMPILER();'
* @return end of stub, prior to length of manifest.
*/
private static final function _endOfStubLength($buffer)
{
$pos = 0;
if (!strlen($buffer)) {
return $pos;
}
if (($buffer[0] == ' ' || $buffer[0] == "\n") && @substr($buffer, 1, 2) == '?>')
{
$pos += 3;
if ($buffer[$pos] == "\r" && $buffer[$pos+1] == "\n") {
$pos += 2;
}
else if ($buffer[$pos] == "\n") {
$pos += 1;
}
}
return $pos;
}
/**
* Allows loading an external Phar archive without include()ing it
*
* @param string $file phar package to load
* @param string $alias alias to use
* @throws Exception
*/
public static final function loadPhar($file, $alias = NULL)
{
$file = realpath($file);
if ($file) {
$fp = fopen($file, 'rb');
$buffer = '';
while (!feof($fp)) {
$buffer .= fread($fp, 8192);
// don't break phars
if ($pos = strpos($buffer, '__HALT_COMPI' . 'LER();')) {
$buffer .= fread($fp, 5);
fclose($fp);
$pos += 18;
$pos += self::_endOfStubLength(substr($buffer, $pos));
return self::_mapPhar($file, $pos, $alias);
}
}
fclose($fp);
}
}
/**
* Map a full real file path to an alias used to refer to the .phar
*
* This function can only be called from the initialization of the .phar itself.
* Any attempt to call from outside the .phar or to re-alias the .phar will fail
* as a security measure.
* @param string $alias
* @param int $dataoffset the value of __COMPILER_HALT_OFFSET__
*/
public static final function mapPhar($alias = NULL, $dataoffset = NULL)
{
try {
$trace = debug_backtrace();
$file = $trace[0]['file'];
// this ensures that this is safe
if (!in_array($file, get_included_files())) {
die('SECURITY ERROR: PHP_Archive::mapPhar can only be called from within ' .
'the phar that initiates it');
}
$file = realpath($file);
if (!isset($dataoffset)) {
$dataoffset = constant('__COMPILER_HALT_OFFSET'.'__');
$fp = fopen($file, 'rb');
fseek($fp, $dataoffset, SEEK_SET);
$dataoffset = $dataoffset + self::_endOfStubLength(fread($fp, 5));
fclose($fp);
}
self::_mapPhar($file, $dataoffset);
} catch (Exception $e) {
die($e->getMessage());
}
}
/**
* Sub-function, allows recovery from errors
*
* @param unknown_type $file
* @param unknown_type $dataoffset
*/
private static function _mapPhar($file, $dataoffset, $alias = NULL)
{
$file = realpath($file);
if (isset(self::$_manifest[$file])) {
return;
}
if (!is_array(self::$_pharMapping)) {
self::$_pharMapping = array();
}
$fp = fopen($file, 'rb');
// seek to __HALT_COMPILER_OFFSET__
fseek($fp, $dataoffset);
$manifest_length = unpack('Vlen', fread($fp, 4));
$manifest = '';
$last = '1';
while (strlen($last) && strlen($manifest) < $manifest_length['len']) {
$read = 8192;
if ($manifest_length['len'] - strlen($manifest) < 8192) {
$read = $manifest_length['len'] - strlen($manifest);
}
$last = fread($fp, $read);
$manifest .= $last;
}
if (strlen($manifest) < $manifest_length['len']) {
throw new Exception('ERROR: manifest length read was "' .
strlen($manifest) .'" should be "' .
$manifest_length['len'] . '"');
}
$info = self::_unserializeManifest($manifest);
if ($info['alias']) {
$alias = $info['alias'];
$explicit = true;
} else {
if (!isset($alias)) {
$alias = $file;
}
$explicit = false;
}
self::$_manifest[$file] = $info['manifest'];
$compressed = $info['compressed'];
self::$_fileStart[$file] = ftell($fp);
fclose($fp);
if ($compressed & 0x00001000) {
if (!function_exists('gzinflate')) {
throw new Exception('Error: zlib extension is not enabled - gzinflate() function needed' .
' for compressed .phars');
}
}
if ($compressed & 0x00002000) {
if (!function_exists('bzdecompress')) {
throw new Exception('Error: bzip2 extension is not enabled - bzdecompress() function needed' .
' for compressed .phars');
}
}
if (isset(self::$_pharMapping[$alias])) {
throw new Exception('ERROR: PHP_Archive::mapPhar has already been called for alias "' .
$alias . '" cannot re-alias to "' . $file . '"');
}
self::$_pharMapping[$alias] = array($file, $compressed, $dataoffset, $explicit,
$info['metadata']);
self::$_pharFiles[$file] = $alias;
}
/**
* extract the manifest into an internal array
*
* @param string $manifest
* @return false|array
*/
private static function _unserializeManifest($manifest)
{
// retrieve the number of files in the manifest
$info = unpack('V', substr($manifest, 0, 4));
$apiver = substr($manifest, 4, 2);
$apiver = bin2hex($apiver);
$apiver_dots = hexdec($apiver[0]) . '.' . hexdec($apiver[1]) . '.' . hexdec($apiver[2]);
$majorcompat = hexdec($apiver[0]);
$calcapi = explode('.', self::APIVersion());
if ($calcapi[0] != $majorcompat) {
throw new Exception('Phar is incompatible API version ' . $apiver_dots . ', but ' .
'PHP_Archive is API version '.self::APIVersion());
}
if ($calcapi[0] === '0') {
if (self::APIVersion() != $apiver_dots) {
throw new Exception('Phar is API version ' . $apiver_dots .
', but PHP_Archive is API version '.self::APIVersion(), E_USER_ERROR);
}
}
$flags = unpack('V', substr($manifest, 6, 4));
$ret = array('compressed' => $flags & 0x00003000);
// signature is not verified by default in PHP_Archive, phar is better
$ret['hassignature'] = $flags & 0x00010000;
$aliaslen = unpack('V', substr($manifest, 10, 4));
if ($aliaslen) {
$ret['alias'] = substr($manifest, 14, $aliaslen[1]);
} else {
$ret['alias'] = false;
}
$manifest = substr($manifest, 14 + $aliaslen[1]);
$metadatalen = unpack('V', substr($manifest, 0, 4));
if ($metadatalen[1]) {
$ret['metadata'] = unserialize(substr($manifest, 4, $metadatalen[1]));
$manifest = substr($manifest, 4 + $metadatalen[1]);
} else {
$ret['metadata'] = null;
$manifest = substr($manifest, 4);
}
$offset = 0;
$start = 0;
for ($i = 0; $i < $info[1]; $i++) {
// length of the file name
$len = unpack('V', substr($manifest, $start, 4));
$start += 4;
// file name
$savepath = substr($manifest, $start, $len[1]);
$start += $len[1];
// retrieve manifest data:
// 0 = uncompressed file size
// 1 = timestamp of when file was added to phar
// 2 = compressed filesize
// 3 = crc32
// 4 = flags
// 5 = metadata length
$ret['manifest'][$savepath] = array_values(unpack('Va/Vb/Vc/Vd/Ve/Vf', substr($manifest, $start, 24)));
$ret['manifest'][$savepath][3] = sprintf('%u', $ret['manifest'][$savepath][3]
& 0xffffffff);
if ($ret['manifest'][$savepath][5]) {
$ret['manifest'][$savepath][6] = unserialize(substr($manifest, $start + 24,
$ret['manifest'][$savepath][5]));
} else {
$ret['manifest'][$savepath][6] = null;
}
$ret['manifest'][$savepath][7] = $offset;
$offset += $ret['manifest'][$savepath][2];
$start += 24 + $ret['manifest'][$savepath][5];
}
return $ret;
}
/**
* @param string
*/
private static function processFile($path)
{
if ($path == '.') {
return '';
}
$std = str_replace("\\", "/", $path);
while ($std != ($std = ereg_replace("[^\/:?]+/\.\./", "", $std))) ;
$std = str_replace("/./", "", $std);
if (strlen($std) > 1 && $std[0] == '/') {
$std = substr($std, 1);
}
if (strncmp($std, "./", 2) == 0) {
return substr($std, 2);
} else {
return $std;
}
}
/**
* Seek in the master archive to a matching file or directory
* @param string
*/
protected function selectFile($path, $allowdirs = true)
{
$std = self::processFile($path);
if (isset(self::$_manifest[$this->_archiveName][$path])) {
$this->_setCurrentFile($path);
return true;
}
if (!$allowdirs) {
return 'Error: "' . $path . '" is not a file in phar "' . $this->_basename . '"';
}
foreach (self::$_manifest[$this->_archiveName] as $file => $info) {
if (empty($std) ||
//$std is a directory
strncmp($std.'/', $path, strlen($std)+1) == 0) {
$this->currentFilename = $this->internalFileLength = $this->currentStat = null;
return true;
}
}
return 'Error: "' . $path . '" not found in phar "' . $this->_basename . '"';
}
private function _setCurrentFile($path)
{
$this->currentStat = array(
2 => 0100444, // file mode, readable by all, writeable by none
4 => 0, // uid
5 => 0, // gid
7 => self::$_manifest[$this->_archiveName][$path][0], // size
9 => self::$_manifest[$this->_archiveName][$path][1], // creation time
);
$this->currentFilename = $path;
$this->internalFileLength = self::$_manifest[$this->_archiveName][$path][2];
// seek to offset of file header within the .phar
if (is_resource(@$this->fp)) {
fseek($this->fp, self::$_fileStart[$this->_archiveName] + self::$_manifest[$this->_archiveName][$path][7]);
}
}
private static function _fileExists($archive, $path)
{
return isset(self::$_manifest[$archive]) &&
isset(self::$_manifest[$archive][$path]);
}
private static function _filesize($archive, $path)
{
return self::$_manifest[$archive][$path][0];
}
/**
* Seek to a file within the master archive, and extract its contents
* @param string
* @return array|string an array containing an error message string is returned
* upon error, otherwise the file contents are returned
*/
public function extractFile($path)
{
$this->fp = @fopen($this->_archiveName, "rb");
if (!$this->fp) {
return array('Error: cannot open phar "' . $this->_archiveName . '"');
}
if (($e = $this->selectFile($path, false)) === true) {
$data = '';
$count = $this->internalFileLength;
while ($count) {
if ($count < 8192) {
$data .= @fread($this->fp, $count);
$count = 0;
} else {
$count -= 8192;
$data .= @fread($this->fp, 8192);
}
}
@fclose($this->fp);
if (self::$_manifest[$this->_archiveName][$path][4] & self::GZ) {
$data = gzinflate($data);
} elseif (self::$_manifest[$this->_archiveName][$path][4] & self::BZ2) {
$data = bzdecompress($data);
}
if (!isset(self::$_manifest[$this->_archiveName][$path]['ok'])) {
if (strlen($data) != $this->currentStat[7]) {
return array("Not valid internal .phar file (size error {$size} != " .
$this->currentStat[7] . ")");
}
if (self::$_manifest[$this->_archiveName][$path][3] != sprintf("%u", crc32($data) & 0xffffffff)) {
return array("Not valid internal .phar file (checksum error)");
}
self::$_manifest[$this->_archiveName][$path]['ok'] = true;
}
return $data;
} else {
@fclose($this->fp);
return array($e);
}
}
/**
* Parse urls like phar:///fullpath/to/my.phar/file.txt
*
* @param string $file
* @return false|array
*/
static protected function parseUrl($file)
{
if (substr($file, 0, 7) != 'phar://') {
return false;
}
$file = substr($file, 7);
$ret = array('scheme' => 'phar');
$pos_p = strpos($file, '.phar.php');
$pos_z = strpos($file, '.phar.gz');
$pos_b = strpos($file, '.phar.bz2');
if ($pos_p) {
if ($pos_z) {
return false;
}
$ret['host'] = substr($file, 0, $pos_p + strlen('.phar.php'));
$ret['path'] = substr($file, strlen($ret['host']));
} elseif ($pos_z) {
$ret['host'] = substr($file, 0, $pos_z + strlen('.phar.gz'));
$ret['path'] = substr($file, strlen($ret['host']));
} elseif ($pos_b) {
$ret['host'] = substr($file, 0, $pos_z + strlen('.phar.bz2'));
$ret['path'] = substr($file, strlen($ret['host']));
} elseif (($pos_p = strpos($file, ".phar")) !== false) {
$ret['host'] = substr($file, 0, $pos_p + strlen('.phar'));
$ret['path'] = substr($file, strlen($ret['host']));
} else {
return false;
}
if (!$ret['path']) {
$ret['path'] = '/';
}
return $ret;
}
/**
* Locate the .phar archive in the include_path and detect the file to open within
* the archive.
*
* Possible parameters are phar://pharname.phar/filename_within_phar.ext
* @param string a file within the archive
* @return string the filename within the .phar to retrieve
*/
public function initializeStream($file)
{
$file = self::processFile($file);
$info = @parse_url($file);
if (!$info) {
$info = self::parseUrl($file);
}
if (!$info) {
return false;
}
if (!isset($info['host'])) {
// malformed internal file
return false;
}
if (!isset(self::$_pharFiles[$info['host']]) &&
!isset(self::$_pharMapping[$info['host']])) {
try {
self::loadPhar($info['host']);
// use alias from here out
$info['host'] = self::$_pharFiles[$info['host']];
} catch (Exception $e) {
return false;
}
}
if (!isset($info['path'])) {
return false;
} elseif (strlen($info['path']) > 1) {
$info['path'] = substr($info['path'], 1);
}
if (isset(self::$_pharMapping[$info['host']])) {
$this->_basename = $info['host'];
$this->_archiveName = self::$_pharMapping[$info['host']][0];
$this->_compressed = self::$_pharMapping[$info['host']][1];
} elseif (isset(self::$_pharFiles[$info['host']])) {
$this->_archiveName = $info['host'];
$this->_basename = self::$_pharFiles[$info['host']];
$this->_compressed = self::$_pharMapping[$this->_basename][1];
}
$file = $info['path'];
return $file;
}
/**
* Open the requested file - PHP streams API
*
* @param string $file String provided by the Stream wrapper
* @access private
*/
public function stream_open($file)
{
return $this->_streamOpen($file);
}
/**
* @param string filename to opne, or directory name
* @param bool if true, a directory will be matched, otherwise only files
* will be matched
* @uses trigger_error()
* @return bool success of opening
* @access private
*/
private function _streamOpen($file, $searchForDir = false)
{
$path = $this->initializeStream($file);
if (!$path) {
trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR);
}
if (is_array($this->file = $this->extractFile($path))) {
trigger_error($this->file[0], E_USER_ERROR);
return false;
}
if ($path != $this->currentFilename) {
if (!$searchForDir) {
trigger_error("Cannot open '$file', is a directory", E_USER_ERROR);
return false;
} else {
$this->file = '';
return true;
}
}
if (!is_null($this->file) && $this->file !== false) {
return true;
} else {
return false;
}
}
/**
* Read the data - PHP streams API
*
* @param int
* @access private
*/
public function stream_read($count)
{
$ret = substr($this->file, $this->position, $count);
$this->position += strlen($ret);
return $ret;
}
/**
* Whether we've hit the end of the file - PHP streams API
* @access private
*/
function stream_eof()
{
return $this->position >= $this->currentStat[7];
}
/**
* For seeking the stream - PHP streams API
* @param int
* @param SEEK_SET|SEEK_CUR|SEEK_END
* @access private
*/
public function stream_seek($pos, $whence)
{
switch ($whence) {
case SEEK_SET:
if ($pos < 0) {
return false;
}
$this->position = $pos;
break;
case SEEK_CUR:
if ($pos + $this->currentStat[7] < 0) {
return false;
}
$this->position += $pos;
break;
case SEEK_END:
if ($pos + $this->currentStat[7] < 0) {
return false;
}
$this->position = $pos + $this->currentStat[7];
break;
default:
return false;
}
return true;
}
/**
* The current position in the stream - PHP streams API
* @access private
*/
public function stream_tell()
{
return $this->position;
}
/**
* The result of an fstat call, returns mod time from creation, and file size -
* PHP streams API
* @uses _stream_stat()
* @access private
*/
public function stream_stat()
{
return $this->_stream_stat();
}
/**
* Retrieve statistics on a file or directory within the .phar
* @param string file/directory to stat
* @access private
*/
public function _stream_stat($file = null)
{
$std = $file ? self::processFile($file) : $this->currentFilename;
if ($file) {
if (isset(self::$_manifest[$this->_archiveName][$file])) {
$this->_setCurrentFile($file);
$isdir = false;
} else {
do {
$isdir = false;
if ($file == '/') {
break;
}
foreach (self::$_manifest[$this->_archiveName] as $path => $info) {
if (strpos($path, $file) === 0) {
if (strlen($path) > strlen($file) &&
$path[strlen($file)] == '/') {
break 2;
}
}
}
// no files exist and no directories match this string
return false;
} while (false);
$isdir = true;
}
} else {
$isdir = false; // open streams must be files
}
$mode = $isdir ? 0040444 : 0100444;
// 040000 = dir, 010000 = file
// everything is readable, nothing is writeable
return array(
0, 0, $mode, 0, 0, 0, 0, 0, 0, 0, 0, 0, // non-associative indices
'dev' => 0, 'ino' => 0,
'mode' => $mode,
'nlink' => 0, 'uid' => 0, 'gid' => 0, 'rdev' => 0, 'blksize' => 0, 'blocks' => 0,
'size' => $this->currentStat[7],
'atime' => $this->currentStat[9],
'mtime' => $this->currentStat[9],
'ctime' => $this->currentStat[9],
);
}
/**
* Stat a closed file or directory - PHP streams API
* @param string
* @param int
* @access private
*/
public function url_stat($url, $flags)
{
$path = $this->initializeStream($url);
return $this->_stream_stat($path);
}
/**
* Open a directory in the .phar for reading - PHP streams API
* @param string directory name
* @access private
*/
public function dir_opendir($path)
{
$info = @parse_url($path);
if (!$info) {
$info = self::parseUrl($path);
if (!$info) {
trigger_error('Error: "' . $path . '" is a file, and cannot be opened with opendir',
E_USER_ERROR);
return false;
}
}
$path = !empty($info['path']) ?
$info['host'] . $info['path'] : $info['host'] . '/';
$path = $this->initializeStream('phar://' . $path);
if (isset(self::$_manifest[$this->_archiveName][$path])) {
trigger_error('Error: "' . $path . '" is a file, and cannot be opened with opendir',
E_USER_ERROR);
return false;
}
if ($path == false) {
trigger_error('Error: Unknown phar in "' . $file . '"', E_USER_ERROR);
return false;
}
$this->fp = @fopen($this->_archiveName, "rb");
if (!$this->fp) {
trigger_error('Error: cannot open phar "' . $this->_archiveName . '"');
return false;
}
$this->_dirFiles = array();
foreach (self::$_manifest[$this->_archiveName] as $file => $info) {
if ($path == '/') {
if (strpos($file, '/')) {
$a = explode('/', $file);
$this->_dirFiles[array_shift($a)] = true;
} else {
$this->_dirFiles[$file] = true;
}
} elseif (strpos($file, $path) === 0) {
$fname = substr($file, strlen($path) + 1);
if (strpos($fname, '/')) {
// this is a directory
$a = explode('/', $fname);
$this->_dirFiles[array_shift($a)] = true;
} elseif ($file[strlen($path)] == '/') {
// this is a file
$this->_dirFiles[$fname] = true;
}
}
}
@fclose($this->fp);
if (!count($this->_dirFiles)) {
return false;
}
@uksort($this->_dirFiles, 'strnatcmp');
return true;
}
/**
* Read the next directory entry - PHP streams API
* @access private
*/
public function dir_readdir()
{
$ret = key($this->_dirFiles);
@next($this->_dirFiles);
if (!$ret) {
return false;
}
return $ret;
}
/**
* Close a directory handle opened with opendir() - PHP streams API
* @access private
*/
public function dir_closedir()
{
$this->_dirFiles = array();
return true;
}
/**
* Rewind to the first directory entry - PHP streams API
* @access private
*/
public function dir_rewinddir()
{
@reset($this->_dirFiles);
return true;
}
/**
* API version of this class
* @return string
*/
public static final function APIVersion()
{
return '1.0.0';
}
/**
* Retrieve Phar-specific metadata for a Phar archive
*
* @param string $phar full path to Phar archive, or alias
* @return null|mixed The value that was serialized for the Phar
* archive's metadata
* @throws Exception
*/
public static function getPharMetadata($phar)
{
if (isset(self::$_pharFiles[$phar])) {
$phar = self::$_pharFiles[$phar];
}
if (!isset(self::$_pharMapping[$phar])) {
throw new Exception('Unknown Phar archive: "' . $phar . '"');
}
return self::$_pharMapping[$phar][4];
}
/**
* Retrieve File-specific metadata for a Phar archive file
*
* @param string $phar full path to Phar archive, or alias
* @param string $file relative path to file within Phar archive
* @return null|mixed The value that was serialized for the Phar
* archive's metadata
* @throws Exception
*/
public static function getFileMetadata($phar, $file)
{
if (!isset(self::$_pharFiles[$phar])) {
if (!isset(self::$_pharMapping[$phar])) {
throw new Exception('Unknown Phar archive: "' . $phar . '"');
}
$phar = self::$_pharMapping[$phar][0];
}
if (!isset(self::$_manifest[$phar])) {
throw new Exception('Unknown Phar: "' . $phar . '"');
}
$file = self::processFile($file);
if (!isset(self::$_manifest[$phar][$file])) {
throw new Exception('Unknown file "' . $file . '" within Phar "'. $phar . '"');
}
return self::$_manifest[$phar][$file][6];
}
/**
* @return list of supported signature algorithmns.
*/
public static function getsupportedsignatures()
{
$ret = array('MD5', 'SHA-1');
if (extension_loaded('hash')) {
$ret[] = 'SHA-256';
$ret[] = 'SHA-512';
}
return $ret;
}
}
?><?php
}
if (!in_array('phar', stream_get_wrappers())) {
stream_wrapper_register('phar', 'PHP_Archive');
}
if (!class_exists('Phar',0)) {
include 'phar://'.__FILE__.'/phar.inc';
}
?><?php
/** @file phar.php
* @ingroup Phar
* @brief class CLICommand
* @author Marcus Boerger
* @date 2007 - 2007
*
* Phar Command
*/
if (!extension_loaded('phar'))
{
if (!class_exists('PHP_Archive', 0))
{
echo "Neither Extension Phar nor class PHP_Archive are available.\n";
exit(1);
}
if (!in_array('phar', stream_get_wrappers()))
{
stream_wrapper_register('phar', 'PHP_Archive');
}
if (!class_exists('Phar',0)) {
require 'phar://'.__FILE__.'/phar.inc';
}
}
foreach(array("SPL", "Reflection") as $ext)
{
if (!extension_loaded($ext))
{
echo "$argv[0] requires PHP extension $ext.\n";
exit(1);
}
}
function command_include($file)
{
$file = 'phar://' . __FILE__ . '/' . $file;
if (file_exists($file)) {
include($file);
}
}
function command_autoload($classname)
{
command_include(strtolower($classname) . '.inc');
}
Phar::mapPhar();
spl_autoload_register('command_autoload');
new PharCommand($argc, $argv);
__HALT_COMPILER(); ?>
N#/usr/src/PHP_5_3/ext/phar/phar.pharclicommand.inc?,<00>e<EFBFBD>G<EFBFBD>
-<2D>zF<7A>directorygraphiterator.inc<6E><00>e<EFBFBD>Gu<00><>r<EFBFBD><72>directorytreeiterator.inc%<00>e<EFBFBD>G]<17>p<EFBFBD><70>invertedregexiterator.inc<6E><00>e<EFBFBD>G<EFBFBD>IC<49>C<EFBFBD>pharcommand.incm<63><00>e<EFBFBD>G!Q<><51>Ӷphar.inc<00>e<EFBFBD>G)<00>k<<3C><00>ko<6B>F<EFBFBD><46><EFBFBD>ZЕT,ɖ]<5D>wv<77>^.w
$m<><6D><EFBFBD>A<><41><EFBFBD><EFBFBD> Eꖤ<45><EA96A4><EFBFBD><EFBFBD><7F>><3E>]{Ɲ[wv<77>;<3B><><EFBFBD><0F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD><57>Q<EFBFBD>P&q<><71><EFBFBD>A<EFBFBD><41><EFBFBD>ixB<78>y<EFBFBD>nYVȇ]<5D><><EFBFBD>[<16> <20><'o<><6F><EFBFBD>V<EFBFBD><56><EFBFBD><EFBFBD>,v#<23>}<7D><>2'<27><>(<28>R<EFBFBD>k<14><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>2<>o<EFBFBD><1C>1<><31><EFBFBD>K~Z<><12><>6/X<16><36>,<2C>3<EFBFBD>\ <20><><EFBFBD><EFBFBD>=M<><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<3B>r#<23><>'(ܖx<DC96>'<27><><EFBFBD>e <0B>!Àm<C380><1B><>;<3B>a<EFBFBD><61><EFBFBD>dNƂo<C682>ȵ<EFBFBD>k<EFBFBD><6B>v0<76><30>zT<7A>!<21>G<EFBFBD>kT@<40>ʰ<EFBFBD>9Kc)Xq`<60>:<3A><><EFBFBD>.<2E>' <0B><03><><08><><EFBFBD>\<5C><><16>(9M<39><4D><EFBFBD>--<2D>vr<76><72><EFBFBD>,x<>|<05><>m?ã
<EFBFBD><EFBFBD><EFBFBD>#"<22>'<27><><EFBFBD>Hc_b;e,c<><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD>6<EFBFBD><36>阄;~%<25>G<EFBFBD>xy<78>z";<3B><1C><><03><>'B<><42>"<22><>8<EFBFBD>i<EFBFBD>k<EFBFBD>,<2C><><EFBFBD><EFBFBD>j<EFBFBD><6A>X<EFBFBD>z<EFBFBD>Q'<27><>үiv<69>VLx<4C><78>l<EFBFBD><6C>=<3D><><06><>B'5<0F><><1D><><12><> lvHP<48><16>I<>.s<><73><EFBFBD>G<EFBFBD>p-2&<26>hoL<6F>1 <20>5<EFBFBD><35><EFBFBD>=8<><38> <20><>z<EFBFBD><7A>(㟝<><E39F9D><EFBFBD><EFBFBD><01><><EFBFBD><EFBFBD>p<EFBFBD><1C>+P#<23>ω7<CF89>\<5C>
<1C>@B<>z<EFBFBD><08>\<5C><><EFBFBD>#<23><>P<03>5<18>ҕ! @V&nZ<6E><5A> .<2E>b<EFBFBD>.<2E><>2<EFBFBD><32><EFBFBD><EFBFBD>l,1~<7E>"#<23><>{ZP^<5E> Y<><59><EFBFBD><EFBFBD>t<EFBFBD><74>5_N/<2F><>o( <1C>.H<><15>D<EFBFBD> R<16><><EFBFBD>(<19>D <0C><><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD>Xs<58>G]W<><57>^O<1E>Q<EFBFBD>Li<4C><69>
<EFBFBD><19>T<EFBFBD>-<2D><>W<1B><><EFBFBD><EFBFBD>f<EFBFBD>k<EFBFBD>s<EFBFBD>q<EFBFBD><15><1D>O3
<EFBFBD><EFBFBD><EFBFBD>t-i<06><>e<02>˂8<CB82><38>9<EFBFBD>X<7F>L<><4C><EFBFBD>m<EFBFBD>/<1E><><EFBFBD><10>Ma<4D>Ң<EFBFBD><D2A2>YK<59>pc<><63>MZ<4D><5A><EFBFBD>Ɓ<EFBFBD>Q<(c<><63> L<><4C>/Q.<1F>t?#A.<2E><>bB<1A><><EFBFBD><16><>/<2F> [<5B>2GZ<14>O<EFBFBD>wn<77><6E>Z[<5B>A<EFBFBD><41><EFBFBD>a<EFBFBD><61>1A<>Y:z<>1WKnF#<03>۸զ6<D5A6>h<EFBFBD>Ÿ<EFBFBD><C29F><EFBFBD><EFBFBD><19>N-)I<>9<EFBFBD><39>a]~<7E>|<7C><>><3E><><EFBFBD>f<EFBFBD>X<><16><><EFBFBD><EFBFBD>?<3F><><EFBFBD># E<>Nl\F<> <0C><>C\@u<><75>Xd<58>H<03>Њ<EFBFBD><D08A>k<EFBFBD><6B><EFBFBD>;<3B>z<EFBFBD>I<EFBFBD><49>vD<76><44><EFBFBD><EFBFBD>o<EFBFBD>:<3A><>Y<16><>MG<4D><47><EFBFBD><EFBFBD><12>+`+<2B>3Z<33>,=<3D>j6<6A>q]<5D><>m<EFBFBD><6D>j_*<2A>W<EFBFBD><57><EFBFBD><EFBFBD><EFBFBD>fP<66>*o<6F><7F><EFBFBD>_<EFBFBD>K<EFBFBD><4B><EFBFBD>=?0<1A>Uc<55><63><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><15><> <0C><><EFBFBD><EFBFBD>|<7C>QB9<42><39><EFBFBD>ӯ<EFBFBD><D3AF><EFBFBD> 6<1A>l <09>z<EFBFBD>QE(6Y<00><>)<29><>з<EFBFBD>x<EFBFBD><78><EFBFBD>g<EFBFBD><67>><3E>%6<><36>c<EFBFBD>E
<EFBFBD>bL.@<40><>ח<EFBFBD>N<EFBFBD> <09>h#*N><3E>,<2C><><EFBFBD>u<EFBFBD>
<14><><EFBFBD>09S<39>"<22><>YK6<1B><>H<EFBFBD>,<2C>r<EFBFBD><72><EFBFBD><EFBFBD>=<3D><><EFBFBD>[v*<2A>[3zH8j<38>i<EFBFBD><69><EFBFBD>X<EFBFBD><58><EFBFBD><EFBFBD>) 4<> r<>i<EFBFBD>s1<73><31>n\<5C>Q !Xr<58><72><>8
C_<EFBFBD>Ǘ<EFBFBD>65<EFBFBD>,Q<><51><EFBFBD><EFBFBD>ZE<5A> @<40><>נ<EFBFBD>W<EFBFBD>B<EFBFBD>2<7F><32>؟<EFBFBD><03>C<><43><EFBFBD>u<1E>'Ob<4F>:<3A><>0k'<27> <0B>x _<><5F>Bq<42>{<7B>x<EFBFBD>?f<>Qwd<77>Z<EFBFBD>e
<EFBFBD>И<EFBFBD>`<60>È<EFBFBD><04><><EFBFBD>,KT<4B>#<23><><EFBFBD>~ka<6B>G<EFBFBD><1B>{i@<06>I4sz<><0F>?9<15>c<EFBFBD><10><><EFBFBD>$N'ٗyAn) R<02>薲ic<69>pbɤH*<2A><><EFBFBD><EFBFBD><01><>^<5E>5+<2B><><00>W<EFBFBD> 2<>5|<7C><>?<3F><><EFBFBD>Lf+<04>G<EFBFBD>,<2C><><EFBFBD><EFBFBD>'3<1C>NN<1D>"<22><><EFBFBD><EFBFBD>j\L<><4C>a<EFBFBD><61>y,E<>M<EFBFBD>K{}<7D><><EFBFBD>Lſ<4C><C5BF><EFBFBD>ݑYX78
^<5E><><EFBFBD>i<EFBFBD><69>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD>5<00>I<EFBFBD><49>KO<4B><4F>j<EFBFBD><6A>?T54<14>%U<>
<EFBFBD><EFBFBD>H<EFBFBD>R<EFBFBD>Zx<03>˿<EFBFBD>8<EFBFBD><07>?<06><>t<>Y<EFBFBD><59>j<EFBFBD>#t<><74>Y<EFBFBD>B<EFBFBD><11>rH<72><48>!(v<>,<2C> u <0A><>|<7C><><EFBFBD><EFBFBD><EFBFBD>;9ʼn<39><1A>̼<11><><EFBFBD>gq.hE<68>
<EFBFBD><08>
ͱECbJ_<EFBFBD><EFBFBD><EFBFBD>\ii<><02><>ŏx?<3F><12>d<EFBFBD>
<EFBFBD><EFBFBD>!<21> <09>~N<><4E>oT<6F>f<18><><EFBFBD>#<23><><03>G[<5B><>L<EFBFBD><4C><EFBFBD><EFBFBD>.#<23>.<2E>D<>.<2E>#<23>k<EFBFBD><6B> <0B><07><><EFBFBD>"8<><05>b<01>TS<54>>m<><6D>*j*Lu*<2A> ({<7B>ҭ<11><>?^<5E>4<EFBFBD>>R3a<33>Jb<4A><<3C>-<0F><><EFBFBD>N|!<21><> |m]lD|<7C>>\<5C><>d&"<22><1A> -5<><35>UiP<69><1E>Đ<EFBFBD><C490><19><><EFBFBD><EFBFBD><EFBFBD>ﯽT<EFAFBD>$<24><><EFBFBD><EFBFBD>%%?&<26>ԯr,<2C><><EFBFBD> ~ <0B><>g<EFBFBD><67><EFBFBD>聀c<E88180>w<EFBFBD><77><EFBFBD><EFBFBD><EFBFBD> gH]<5D> <7A><D08A><05>A<EFBFBD>>c<>{@<40><><EFBFBD>,<2C><><7F>rz<72>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȅ}1<7F><31>K<EFBFBD><4B>d<1F><><EFBFBD><EFBFBD>8@[<5B><>8Q<38><02>]<5D><>Vk`1<>D<EFBFBD>
x<1A><e<01>K\<5C>A+fhn<68><6E>uF<75>A<EFBFBD>n<EFBFBD><36><1A><01><>1<EFBFBD><31>Sv3A5N<35><4E>D<02>/<2F><>[<5B>{<7B>ZW ;<3B><1A><>_<EFBFBD>h&<26><>F<EFBFBD>R6<52>#W<><57><EFBFBD>@<40><><16>T#<23><12>(G<><47> <0A>a<EFBFBD>U|<7C>1<05>ٓ5<D993>)V<>&<26>n<EFBFBD><6E><EFBFBD><10>e<EFBFBD><0E>}"f<16>n<EFBFBD><6E>Ff<46>gu<67> <0C>pQ<>)t<><74><EFBFBD>(<28>R<EFBFBD><52>0<EFBFBD><30>X 8apl<>n<EFBFBD><6E><EFBFBD>Se<>e<EFBFBD><65>.'<27><15><>Z<EFBFBD>Ȅ<EFBFBD><C884>L<EFBFBD><4C><EFBFBD>6y۪<>
fej<65><6A><EFBFBD><<3C>[<5B> <0B><><EFBFBD>&B<><42>١<EFBFBD>ȧ<04>ΖY'<27><>><3E>+<2B><01><>գm i<>+<2B><><EFBFBD><EFBFBD><EFBFBD><10><>R<EFBFBD><52><EFBFBD>i<EFBFBD>+Ћ<><D08B><EFBFBD><01>h`pqx<71><78>,u<><75><EFBFBD><EFBFBD>1ɟrx<<3C>DGj<47><6A><EFBFBD>]qϸr{<7B><>2W[<5B><>GTUW<55>8:<10>Hʽ<48>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><02>( <09>|<7C><>L<EFBFBD><4C><EFBFBD><EFBFBD>aRJ<52>V7)<29>ײ<EFBFBD>4V]IZN#<<3C>m21_xA<78><41><1B>K<EFBFBD><4B><02>;1A<31><41><EFBFBD>Mu<4D>}=`c1<63><31>U<EFBFBD><55>6<EFBFBD>g<><4C><DD9C>.1f<EFBFBD><EFBFBD><EFBFBD>;<3B>wq<77>kL<6B><4C><EFBFBD>,<2C>ԗ<EFBFBD><D497>o<EFBFBD><6F>k <20><>Y<EFBFBD><59><EFBFBD>{8`<60><>)o<1B><>yL<79>uUK<55>?,/Vv<56><<3C>:ЪU<D0AA><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> c)<16><><EFBFBD><EFBFBD><EFBFBD>~<7E><><1A><><EFBFBD><19>pa^<5E>𧫾Q<F0A7ABBE><EFBFBD>Cy<43>E^K<>d<>qO<71>W<EFBFBD><57>43<34><33><05><>3~<7E><><EFBFBD><EFBFBD>q1<71>e<EFBFBD>p<EFBFBD><70><08>}8w)<29>S<13><><EFBFBD><04><><EFBFBD>
yZVMjzm <09><17><>Jn<4A>h<06><><EFBFBD>g<EFBFBD>߶)L6-0<>7w<37><4<>3C<00>SDƓ<44>fl<66>#<23>t$s<>mL<6D>N<EFBFBD>,<2C>F<12><><EFBFBD><EFBFBD><EFBFBD>h-<2D><><EFBFBD>^<5E><<3C><>%<25><>U<EFBFBD><55>uq<75>ɵ8<C9B5><38><EFBFBD>⨿<EFBFBD><E2A8BF>H<EFBFBD><48>o&<15><>nK<6E>6<EFBFBD><36>T<>, <0A><>[d1 <0A><04> <0B><>(XI[<5B>A<EFBFBD>g<<3C>Y<EFBFBD><59><EFBFBD>
<EFBFBD>D CέMXqDt<44><74><EFBFBD>{<7B>@&h<><68><EFBFBD>a<EFBFBD> <20>]'<27>m<EFBFBD><6D>Ӽ<EFBFBD>m<EFBFBD><6D>e7<65><37><>9<EFBFBD>ڳB<DAB3><42>:<3A><><EFBFBD>9v<39> ժ<>!<21>-ШOf<4F><66>?<3F><><EFBFBD>?.N<><00>R<EFBFBD>N<EFBFBD>0}f<><66><EFBFBD>><3E> 5<>L#☰8<E298B0><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>š`<60><><EFBFBD>B<EFBFBD><EFBFBD><7F><EFBFBD>Dc<44><0F><>=瞞<><E79E9E>z<EFBFBD><7A><EFBFBD>m<EFBFBD>V<EFBFBD><56>n<>l<EFBFBD><6C>0<EFBFBD>Teb<65>$O<>BA<42>_<EFBFBD>qj[<5B>I<EFBFBD><49>DV<44><56>m<EFBFBD>K<EFBFBD>FYu<59><05>%<25>5<EFBFBD>F<><46><EFBFBD>(<28>;<3B><>G
<EFBFBD>f`J-$<24>e(V<><56><12><10>:<3A><>/<2F>ԔK<03>`8t+T<>'D$0<><30>!`ς<><CF82><EFBFBD>{M<>C<EFBFBD><00><>"ԡ@<40>DA<44><41>[<5B>i<EFBFBD>&<26><> e<><EFBFBD><7F>($<24>8<EFBFBD>u<EFBFBD>v&<0E><07>(<28><>i/߷<>n[<5B>e<EFBFBD><65>2<EFBFBD>qL3.<2E>(<28>:>ʉJ<CA89>5<><35>i<><69>}m&<26><>8<EFBFBD>C<EFBFBD><43><EFBFBD><EFBFBD> <0A>%4շS<D5B7>+FI<46><13>\<5C>~7<>V<><56>s<EFBFBD><73>8<0F>S< <0C>{?<3F><66><C3A9>mW<6D>݁j<DD81>˗<EFBFBD><CB97><EFBFBD> <20><><EFBFBD>0Z<30><5A><EFBFBD><EFBFBD>p<>N<EFBFBD><4E><17><><EFBFBD>F<>H-<2D><>I'<27><>{}<7D>"<22>L<EFBFBD>}<7D><><EFBFBD><EFBFBD><EFBFBD>i^<5E><><EFBFBD> <0B>S<EFBFBD>n<EFBFBD>@}<06><EFBFBD>$<24>i<>'!<21>@T'<27>b^*U<>3<>+ۚ]'<27>&<26><>Y<EFBFBD>\r<11>%<25>x.g<><1F>_fQ֨7<D6A8>'GGp<47><70>1<EFBFBD>\:<3A><>&D<><44>?te4<><34>52 )<29>3<18><>2<EFBFBD>Q<EFBFBD><51>I\@ <0B>`<60><01>2<EFBFBD><32>(<28>D<EFBFBD><44><EFBFBD><00><05><><EFBFBD>)R<>Un.4__z<5F><7A><EFBFBD>1<EFBFBD>o&Q$<24><07>C<EFBFBD><16>\<5C>n<1F><>3<12>6<EFBFBD><36><EFBFBD><02><><EFBFBD><EFBFBD>؆<14>BL<42><03><>N&<10><>"<19>T#<23><>7<EFBFBD>'$%<25>N<><4E><15>j<00>4&s<05><18><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ө<EFBFBD><D3A8>R<EFBFBD>4Q<34><51><>%Ȅ<><C884><EFBFBD>4S3Ab Mڧ<>B<EFBFBD><42><EFBFBD>(c.<2E>E<EFBFBD><04><><EFBFBD><EFBFBD>`h}6gͬca<63>g<><67><EFBFBD>k ><3E><>E<10><><1B>e<EFBFBD>ے:<3A><><EFBFBD>*<1C><><EFBFBD><EFBFBD>?<3F><><EFBFBD><EFBFBD>;<3B>܍KX<4B> <0A><>wSg8p]<>ӛ>N<>o^>IO<49><4F><EFBFBD><EFBFBD>x<EFBFBD>o'<27><>ـm<D980><6D><EFBFBD><EFBFBD>5<EFBFBD>{<7B><>&l<><6C><EFBFBD>j<EFBFBD>T<EFBFBD>~E<>sJ@GL<>tƸ4<C6B8><34>p!W8<57><67><C9B2><EFBFBD>*<05><>+^<5E>[[<5B><><EFBFBD>Rp<01><><EFBFBD>Y[<5B><1F>f|<7C>;<3B>f <0C><>ԑT<D491>~<7E>z<EFBFBD><7A><EFBFBD>,<2C>ď<EFBFBD>m(<28><><EFBFBD><EFBFBD><EFBFBD>^<5E><><EFBFBD>vR<76>v<EFBFBD> u<><16>l<EFBFBD><6C><EFBFBD> <0B><><EFBFBD><1F><>^<5E>QmWa<57><61><EFBFBD><EFBFBD><EFBFBD>X<>;-<2D>ʫ{<7B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>z'<27> C<><43>*t<> <> <20>_<EFBFBD>%ٙ"<22><><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD>j+k<><6B>)<29>s<EFBFBD><73><EFBFBD>2_<10><>U<EFBFBD><55><EFBFBD>d_<14><><0E><>Y0<59><30><EFBFBD><05>P<EFBFBD>j1>o <20>0ުP<DEAA>zV<>қ<07><> bvv7 <20>2<EFBFBD>A|w<>u[Z<>u.<03><>&<26>M۴RH1<48>L<EFBFBD><4C>2c<><63>K<><1A><><EFBFBD>;<3B><1A><><EFBFBD><EFBFBD>1<EFBFBD>&Z<>l]/{2X<32>>(<28><61><DB8B><78>4<15>q<04>S<EFBFBD><53><EFBFBD><0F>Tc<54><63><EFBFBD><11><><EFBFBD>|<01><>J@<07>X<58><C29D><EFBFBD><EFBFBD><EFBFBD>R0<52>nU<>8 <6F>x <20><>і<EFBFBD>6<EFBFBD>$E<><45>#<23>@F<><46><EFBFBD>PZc<5A>/<2F>H<EFBFBD>Y\U<><55>S<EFBFBD>(<28>dO<1C><>s<EFBFBD><73><EFBFBD>~d<><64><00>=<3D>w<EFBFBD>6<EFBFBD>?_<>
$<24>.<2E>F<EFBFBD><46><EFBFBD><EFBFBD><EFBFBD>]R<>uR'<27>{I<><17>׷u<D7B7>^J<>$<24>)RKR<4B><52>n<EFBFBD><6E><EFBFBD>|<01><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>{m$ <06><><EFBFBD><01><>w<EFBFBD><77><EFBFBD>Ν<EFBFBD><CE9D><EFBFBD><EFBFBD>þf<C3BE>ϒ<EFBFBD><CF92><EFBFBD>".&<26>rg<>Q<EFBFBD>M<EFBFBD>A<EFBFBD>͋|<7C>b<EFBFBD><62><19>0.>c<>4.K<><4B><EFBFBD><EFBFBD>'<27>==<3D><><EFBFBD>"/{ `<60>%{<7B><>b<EFBFBD>E<EFBFBD>i\q<0E><><EFBFBD><EFBFBD>?<3F>;>B<><42><EFBFBD><EFBFBD>g<67><7F><EFBFBD><EFBFBD><EFBFBD>r|*2~U<>lj<6C>*<2A>7[Q?<3F><11>{<7B>HJ iS^<5E>j<EFBFBD><6A>g<EFBFBD><19>g<EFBFBD>}%'''_<><5F><EFBFBD><EFBFBD>}LҔ<4C>9[<5B>|<7C>fE<66>T<EFBFBD>t<><74><EFBFBD><+<2B><>c<EFBFBD>$cy1<79><05>rV<72>
<08><>3<EFBFBD>1<EFBFBD><31>+<01><><EFBFBD>٤J<D9A4><4A>Ha".D<>#<23>a<EFBFBD><61>*<2A>K<EFBFBD>U1<55><31><EFBFBD><EFBFBD>^<5E>Ќ<1D><0E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\$<24><02><>8M&o<>cr1<72><31><EFBFBD><EFBFBD><EFBFBD>Ԭ<><D4AC>`'=<1C><><EFBFBD><EFBFBD>_$<24>l<EFBFBD><6C> <0B><>4Z+<2B><><EFBFBD><EFBFBD>+W<><57>E<EFBFBD><=d<><64><03><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}D>)<29>>}<7D><><0F>?<3F>f<EFBFBD><1A><>5{<7B>&<26><19><>z<EFBFBD><7A><EFBFBD><EFBFBD>Wq/<13>D<><44>NSX<53>,<2C><><EFBFBD>h<EFBFBD><68>#O?<3F>@#9s<39><1F>s<EFBFBD><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>s<>G<><47>><3E><EFBFBD>j<EFBFBD>`[<5B><><EFBFBD>8<15><>A<EFBFBD><12><> 42<34> _<>d&<26><>k<><6B>R<EFBFBD><52><EFBFBD>%Q<>g<EFBFBD>'Y<>b2%<25>Z<EFBFBD><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD>L<16><><17><><EFBFBD>d(닼<><EB8BBC>(<28>G<><47>W<EFBFBD><57>O@<03><>CV<43><56>$<24><>DQ<15>$̋K<CC8B>g<EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>,<2C><>Y<EFBFBD>$<24>@<40>:<3A>GvlG<6C>eG0<47>"<22><1E>g<EFBFBD><17>;:<3A>=<3D><><00><>Gq<47><71>e4l<34><6C><10><><EFBFBD><EFBFBD><EFBFBD>/^x <00><12>c<EFBFBD>=E<>!<21><>c<><13><>%g3P3z<33><7A>D<EFBFBD><44><02><6B>=<3D>ή<EFBFBD>Bzgs<67><73><EFBFBD><18><>=<3D>B<EFBFBD><19>֤<><65>4<><34><EFBFBD><EFBFBD>#<23><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<27>>X<><58><11><><02><><EFBFBD>1<EFBFBD><31>E<><45>2<06>H<EFBFBD><48><EFBFBD>3<EFBFBD>.<2E><><EFBFBD>w<11>z(<28>i<> <09>(<28>T<1C>8l<38><<11><04><>#<18><>*N<>[<5B><><G<><47><EFBFBD>_<15>$3<><33>I<>X<EFBFBD>|<7C>a<EFBFBD>|R<>aH<61><0E>L8ƫ<1C>YA<59><41><EFBFBD><EFBFBD>Y<EFBFBD><59>h<EFBFBD><68>`<60>r<EFBFBD><72>>-Q<>@\3<><33> <09><>OsUw[ׁ<>[<07>7<EFBFBD>v<EFBFBD>K`^<5E>x<EFBFBD><1A><><EFBFBD><EFBFBD>a<EFBFBD><61><EFBFBD><04><>M<EFBFBD>5<EFBFBD><35><EFBFBD>O<><4F><17>*<2A>%6M
<EFBFBD>qH:<3A>0<><30>n<07><>zMM<4D><4D>m&<26>Y<>LhU<68>wi<77>aL<61><03>E<EFBFBD><45><EFBFBD> <0C> <0A>K<0E><><EFBFBD><EFBFBD><EFBFBD>(<28>(<28>^Ь<><D0AC><EFBFBD><EFBFBD>h9<68>F<EFBFBD>|<7C><>7<EFBFBD>0*<17><><EFBFBD>~<7E><><EFBFBD>a<EFBFBD><61>~I<><49><><CEAF>.A86W(<06>a<EFBFBD>Na<4E><61><EFBFBD><EFBFBD>#<23><>I<EFBFBD>ZW<5A>ne<6E>j]~<19><>dS<64><53>z\N<><4E>,<2C>-<2D><1A><><EFBFBD><EFBFBD><EFBFBD>D<> ׃VDяLQ<4C><51><EFBFBD>1<EFBFBD>t6@n9<6E><39>7R<37><52>J<EFBFBD>I@rrSVb<56>AR<41>*uLd<4C>e<EFBFBD><0E><11>H<EFBFBD><48><19><>b<EFBFBD>q&<26>#H<><48>_<EFBFBD><5F> <09> <0A><>_ <0B><>v<><76>U<EFBFBD> <09>y <0C><><EFBFBD><EFBFBD> @<1C><17><>6Q<36>"<22>|}q"]<04>I"<22><0F>{.<2E><>(<28>=<3D>|<7C><>;!<21>o<14>9_<39> <09>O<EFBFBD>s<17><<10>w<EFBFBD>!|<00><>86<38><36><EFBFBD>Ŗ[<5B><><14><><E48082><10>j<EFBFBD><0E>0<EFBFBD>$ 1&BR[<5B>i<13><><EFBFBD><EFBFBD><EFBFBD>\r<10><><EFBFBD>۴<>af<>`G,f0 <09><><EFBFBD><EFBFBD>G/<-sOa?Y<>K]H<><48>Jߨu<DFA8><75>Z<EFBFBD><5A>4<>+<2B><>7V<05>?%<25>&X ^U<>'EK<45>6( 1<1C><>E<EFBFBD>Z<EFBFBD><5A><EFBFBD><EFBFBD>F2<03>+˸<><1E>@l<>dD<64>ʘm<>a<1E><><0E>`<Df<>hO.㹈 <20><><52><C3BA>\܈k<DC88>~<05>,<2C>v?<3F> <>Ovp"[I.t<>j!qh<71>zl<05><><EFBFBD>I{<7B>i<EFBFBD>h=<3D>ȱj"<22><><EFBFBD><EFBFBD>X<06>P<><04>]<5D><1E><0E><><EFBFBD>d<1C><><1A>9<EFBFBD><39><EFBFBD>t<EFBFBD><74>ֿ?W.|<7C><><16><>&G,z<>+<2B>z<EFBFBD><7A>}<7D>H<>B0<42>@>u!?<3F><><EFBFBD>F<EFBFBD>c<EFBFBD><63><02><>0샛!?<06>N<03><1D><>.<2E>q<>B/<2F><><EFBFBD>A%<25><>W<EFBFBD><57>=t<>̳<18><><EFBFBD><1C>><3E><><EFBFBD>d<17>%<03>k<EFBFBD><6B>7<EFBFBD><37><EFBFBD><EFBFBD>Z<><5A>6<><36><EFBFBD>a<61><1B><><EFBFBD> <20><>a<EFBFBD>9|ö<><C3B6>!&Ra<52><61><EFBFBD>d<EFBFBD><64>
&/<2F>0<EFBFBD>x<EFBFBD><18>P<>;<3B>%<25><> <0A>d6o<36><6F>Ƈ<EFBFBD>sA<73>V<EFBFBD><1A><><EFBFBD><EFBFBD><EFBFBD>:k_<6B><5F><EFBFBD><13><><EFBFBD>t<EFBFBD>Q<10><><EFBFBD><EFBFBD><1D><19> <0B>tT;eO<65><4F><EFBFBD>h<EFBFBD>D<EFBFBD><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5(w<1E>0<EFBFBD><12><><EFBFBD>}<7D><><EFBFBD><R<><52><EFBFBD>z$<24>ק;<3B>O2fD<66>6<EFBFBD><36>N<>i<EFBFBD> xVn<56><6E>L<04><>1<EFBFBD>ύH<CF8D>/<2F><><EFBFBD>؃<EFBFBD>zq<7A>C<EFBFBD><43><EFBFBD>`<60><>I(hm<6D>M<EFBFBD><4D><16>5<EFBFBD>4<EFBFBD>d2@"<22> <0B><><EFBFBD>-<2D>AL<41>:r<>L<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD>+<2B>>IU&z<>`?<3F><>PZ<02><><EFBFBD><EFBFBD>:<3A><><08>%3<>5ų X<><58><EFBFBD><1F>3<EFBFBD><<3C>s<1E><19>«4<C2AB><34>~<0F><><<1B>~<7E> XU~<7E>l<EFBFBD><31>]<5D><>BS<17><><EFBFBD><EFBFBD>x'0<>6<EFBFBD><36>x<><78>iB<69>/<2F>(C)!<21><14>U<EFBFBD><55>M 7<>Ox<4F><78>÷ g<><67>@<40>B<><01>l<EFBFBD><6C>ׅ<EFBFBD><D785><EFBFBD><06><>7<EFBFBD>c<><63><08>'<27><>̅<><CEB2><EFBFBD>B~<7E>D<EFBFBD>k<EFBFBD>$<24>A <09>!<21><>2jj<><6A><EFBFBD><EFBFBD>.T6<54>+<2B><><EFBFBD><1F><><EFBFBD><EFBFBD><.<2E><15><>%<25>mj<6D><19><>G<EFBFBD><47><EFBFBD>ZD<5A><44>r<EFBFBD>&<26><>޻<EFBFBD>ސ<EFBFBD><DE90>e+<2B><>]<5D><>0W<30><57><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD>K<EFBFBD>Pj>`}<7D><17>ppo<70>ش<><D8B4>w<EFBFBD><77><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><71>w<EFBFBD><77><EFBFBD><06><><EFBFBD><EFBFBD>#<23><><EFBFBD> IDa<44>lL<6C>1u<31><75><EFBFBD><EFBFBD>}-<2D>!.<2E><>><3E> <><7F><EFBFBD>MʒW1<><17><>e <09><><EFBFBD><EFBFBD>F<EFBFBD>*g<><67>o<EFBFBD>8<18>37<33><37>"<22>#X?5 <0A><08>c<><02>d<EFBFBD><07>ͮg<CDAE><67><EFBFBD><EFBFBD>l@{<7B>`<60>2 <14>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD>Ċ<EFBFBD>1<EFBFBD><04> X<><58>J <0A><0E><>v<EFBFBD><76><EFBFBD>@de<64>iH+h<>W<EFBFBD>ɛ<EFBFBD><C99B>s-<2D><>`M<><4D>t<EFBFBD><74>6K<36>U<EFBFBD>$T<>N<EFBFBD><4E><EFBFBD>_-/<00>K<EFBFBD>+|Ӥ<><D3A4>8M<38><4D>~<7E>er߽<72>*<2A>[2
W/<2F>r۬7,<1A>T<EFBFBD><54><EFBFBD><14><> <0B>*P<><50>W<EFBFBD> <20>l<EFBFBD><6C><EFBFBD>%"<22><1D><><EFBFBD> <0A>io\I=?<3F><>z#<23><>F<EFBFBD><46>C<>v<EFBFBD><76><EFBFBD><EFBFBD><EFBFBD>e&<18>h<EFBFBD>du<64><1C>1_<31><5F>2<EFBFBD><32>U<EFBFBD><55><EFBFBD>ϰ%΋<>,h<>b<EFBFBD><1B>}<1A><><EFBFBD>>%<<3C><>e<EFBFBD>[ʚX5<04>r<EFBFBD>9=S5<15><>F<EFBFBD><46>UO<55>(`ҳ<>"<22>C<12><13><>U2<>x㧁<06><>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>c<EFBFBD><63><EFBFBD><EFBFBD>k<><EFBFBD><E782A1><EFBFBD><EFBFBD><EFBFBD>`<60>P<EFBFBD> <19>ӫ <17><><1D>*<2A>uC<75>R<EFBFBD><52>p<EFBFBD>55<35>y<08><><00>;<3B>}<7D>K <0C><><EFBFBD>`~<7E><><EFBFBD>ț
ߺH<EFBFBD>e<EFBFBD>8Z<><5A><EFBFBD>eC<65><43>,8<>I*<2A><>C<EFBFBD>G<EFBFBD><47>V<EFBFBD>A<EFBFBD>7I<37><49><EFBFBD>)l<>sf<73>Q<>h<EFBFBD> #<23><>8<EFBFBD>W<0F><>o1<6F>y<EFBFBD><79>a<EFBFBD>n#<23><><EFBFBD>NB\<5C>ۣf{<7B>[zf.4<EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>nS(A<>$b<>TVۨ9
<EFBFBD><EFBFBD>[3<><33><EFBFBD><EFBFBD><EFBFBD>H<EFBFBD><14>m<EFBFBD>'<07>$E#`<60><>ąEy;<3B><><EFBFBD><14><><EFBFBD>[m<>N<EFBFBD>^<5E>M<EFBFBD><4D><EFBFBD><EFBFBD><EFBFBD>H(x<>XUK<06>ƨ7ށ<37>H<EFBFBD>l<EFBFBD><6C>$6
<EFBFBD><EFBFBD>&$<24><><EFBFBD>
<EFBFBD>×<EFBFBD>(<28>uj<75>'<27><><EFBFBD>B<15>S<EFBFBD>4<EFBFBD> pAi<41>݀h<DD80>>"<22>%<25>B<EFBFBD><42>9<EFBFBD><39>\t C<><03><><EFBFBD><EFBFBD>Ҁq<D280><1C>e|=<3D><><07>pC<70><08>.<2E>,<2C><<3C>p=n<>y<EFBFBD><79>'<27><><EFBFBD><EFBFBD>al$y"<22><><EFBFBD>S<EFBFBD>=<3D><>&<26>*Y.{GG<47>#0Ayv&ҽ<><D2BD>V7w<37><77><EFBFBD><6D> rW¸8B;<3B>a)b><0F>־Y _Le<4C><65><EFBFBD><1B>\<5C><>h<EFBFBD>ݰ<EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD> +<2B><><EFBFBD>b<EFBFBD><62>b9<62><39>J<EFBFBD>H <0A>x^3[<5B>1<EFBFBD>)<29><><1A>1<EFBFBD>j<EFBFBD>><13><>$<24>}<7D>k<EFBFBD>Fuk<13>A<EFBFBD>r<EFBFBD>{<7B><>^{<10>:R<>m<>\<5C><>3R<33>{%<13>B
<EFBFBD>fv<EFBFBD><13>c<EFBFBD><63>N<03><><EFBFBD><EFBFBD>Zk<5A>U<EFBFBD>^
ͪ<EFBFBD><EFBFBD>۟&E9<45>u<75><7F>I<EFBFBD><49><EFBFBD>T<EFBFBD><54>L7%<25>U<EFBFBD><55><EFBFBD>)LƉX<C689>v<EFBFBD><07><>_<EFBFBD>@<06><>2<<3C><1C><><1B><>:<12>)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>V!<21>C<1A><>%<25>r<EFBFBD>(<28><>r=<3D><>*<2A><C4B5><11>(<28><1A><><EFBFBD>JB]Յ<>Q<<3C><G`U^<5E><>^<5E>."<22><><12><><EFBFBD>r)<29><>W<EFBFBD>㟮Z<E39FAE><5A>S#J
<EFBFBD>V<EFBFBD>f<>V:o<><6F><0E><>S<EFBFBD><1C><><EFBFBD><EFBFBD>'x <0B>`<60><>S)E]<5D>3b<33>gl/A<>ND<4E>q<>O<EFBFBD>^<5E><><EFBFBD>@qNY<4E>1<EFBFBD><05>|eVX(*D<03><><EFBFBD><08>
A<EFBFBD>>Y<>Yj<59><6A><EFBFBD>`<60>~zkt2<74><32><EFBFBD>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>W(<28><17>~<7E>|}<7D><><EFBFBD><01> <09>R~<0F><01><><EFBFBD>(<28><><EFBFBD><EFBFBD>1)H1{ۖ<>]<5D><16><>b<EFBFBD>28<32><00>Q<EFBFBD> t<><74>=<3D>ۣ<EFBFBD>@1<><31>=1<01><05> <0C><><EFBFBD>=<3D><>O<EFBFBD><4F><EFBFBD>ް/<2F><>9MhO<68>o<EFBFBD><6F> E3<45><33>&<17><>4<05>6z<36><7A><EFBFBD><EFBFBD>COظ^<5E><06><> <0A>'<27><56><CBBD>v&<1B><>ρ<EFBFBD><CF81><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD>d<08>P<EFBFBD><50><EFBFBD>0_<30><5F><EFBFBD>v<EFBFBD>cR?<3F><>h<EFBFBD>C<EFBFBD><1D><>bm<62><1E><><EFBFBD><EFBFBD><EFBFBD>-濙<><E6BF99>s`<60><>)<29>ן<EFBFBD>As<>[<<3C>&X<>l<EFBFBD>ʨEF<45><46><EFBFBD><EFBFBD>w<EFBFBD>w<EFBFBD><1E><01><>+<2B>r<EFBFBD>P1<><31><1A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>u<05><>|<7C>:5BD֪ɪ<D6AA>6P<36>*<2A>Mv<4D>P5p<1A>M<EFBFBD>G<EFBFBD>!<21>P<EFBFBD>F8<46><38>Q<15><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><17><17>h_<68><5F>E7<45>-<2D><><EFBFBD><EFBFBD>׋g<D78B><02><>p̽c`<60>3P<33><03>ɡ<EFBFBD>o i<>6 <20>F<EFBFBD><46><EFBFBD>f<EFBFBD>c<EFBFBD>V)fR<66><52><EFBFBD>V<EFBFBD><56>Iv<49><75><D386>gS<67><53>%<25>[=<3D>gi<67>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD>oqC_)NAu<41><75>0<EFBFBD><30>!T<><54>4<EFBFBD><34><EFBFBD>TF<54><05><07><><EFBFBD><EFBFBD><EFBFBD><0E><1C><19><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>H<EFBFBD>35<33><35><1C>kd<6B>;:Ay<41><79>:<3A><>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD>#y<><79><EFBFBD>GPVvGw<47>P<EFBFBD>=K<><4B><EFBFBD><EFBFBD>(p]Ɨ<><C697>a<EFBFBD>+9<>99<39><39><s<><1C><><EFBFBD><EFBFBD>,{QSG<53> <20><><1B>V<04><>u3<75>`<60>(<28><><EFBFBD>P%<25>ƶ<EFBFBD><C6B6>)1%3ec<65><>V<0E>`<1E>BLf<4C>&q<>K<EFBFBD>T|<7C>F<>N<EFBFBD><4E>&Ճ*<2A>j<EFBFBD>d<EFBFBD><64><EFBFBD><EFBFBD><1E>
<EFBFBD><1D>C<EFBFBD>;<16><><18>q<>d<EFBFBD>YX~<7E><>x<EFBFBD>k<EFBFBD>v<EFBFBD>n<EFBFBD>Y2<><32><EFBFBD><EFBFBD>5<EFBFBD><35>]O<><4F>טSx<1A><><EFBFBD>Bg5<1A>|<7C>IWz <20><><EFBFBD>I<EFBFBD>A<EFBFBD><41>4<EFBFBD><34>7<EFBFBD><37>c<13>ѶnL<-u,_Q<5F><14>X<EFBFBD>]<5D>)<<3C><>x=<3D>q Y<><59>bfzl<7A><6C>ʫ<EFBFBD><CAAB>͔[ <0A><><EFBFBD>m<EFBFBD><6D><EFBFBD><EFBFBD>(c,ГzZ<><5A>$<24>P<EFBFBD><50><EFBFBD><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD><41>bf*<<3C>Y<EFBFBD><59>
<EFBFBD>cIT<EFBFBD>u-<2D><><EFBFBD>1B<31>+<2B>>꣱<><EAA3B1><EFBFBD>$<24><>뚬3Ѽ<33><0F><>s<02><><EFBFBD>d<EFBFBD><64>KR1<52><31><EFBFBD>\<5C><>ٯ<03><><EFBFBD>)<29><12>1j<31>T{<7B><1E><><EFBFBD><EFBFBD>_?<3F>9<EFBFBD><39><EFBFBD><EFBFBD>uZa<>uq<75><71><00>r<>xK<78><4B>k<EFBFBD>*<2A>OTr@<40><>+h%<25><><EFBFBD>V<><1C>jpp<70><70><EFBFBD>ӆx2<78><32>'b+<2B><>V<EFBFBD><56><EFBFBD><00><><EFBFBD><71><C894><EFBFBD><EFBFBD><07>W<EFBFBD>E<EFBFBD><45><EFBFBD><EFBFBD><EFBFBD><18>1<EFBFBD>ӹ <0C><>A<EFBFBD><41><EFBFBD>E%<25>ȕ<EFBFBD><C895><08>"aCmLr<4C><72>:/$R<>n<EFBFBD>Gݩ@<40><>¥^⛞G[Gm<47><6D><EFBFBD> <0C> CzI<7A><49>I<EFBFBD><49>s<EFBFBD>~^t<>.my<>}<7D>X<EFBFBD>o<EFBFBD>7u.(c<> 5<><35><0E><>l3c.<2E>DU<44>_<>|<7C>l7<6C>Y<EFBFBD>s@<40><><<3C>q&@d<>2<EFBFBD><32>,D!9<><39>^<5E>Q<EFBFBD><51>(uHͪ;n<>a<>l*<2A><>@<40>:ħ'<27><EFBFBD><7F><EFBFBD>X<EFBFBD><58>y<EFBFBD>\A;<13><> <0B>E<EFBFBD><45><EFBFBD>pHȜY<C89C><59>^<5E><>1#<23><>B<EFBFBD><42>D<EFBFBD><44><EFBFBD>LY<4C>7|<7C>.J<><4A><14>*vQh=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k<EFBFBD><6B><EFBFBD>"27<32>6<EFBFBD>UP <0A>%Hj<48><6A><EFBFBD>̀<EFBFBD>V<EFBFBD> <0A>W.<2E>0<1A>w<EFBFBD>f<EFBFBD><66><EFBFBD><EFBFBD><1F>>Ue"t|<7C><><EFBFBD><EFBFBD>FK<><4B>"<06><13><>8}W<><45><CDA8>{{5o;gn<04>l=F`x<><EFBFBD>;<14><1B>b<EFBFBD><62>%<25>F<EFBFBD>Ɗ<EFBFBD>)ݨ+<2B>p<EFBFBD><70>WT<57>!ks<>f`!}<7D>
<0E>Z><3E><15><1B>VsENc}<7D>@<40><>s<EFBFBD>L<EFBFBD><4C>T|<7C><03><0E><>,<2C><><EFBFBD><1E>~<7E>8D<38><13>(<28><18>@<40><><1D><><EFBFBD>Tjn<6A>i<12>_<EFBFBD>Q$Qۂr<DB82><72><EFBFBD>u.><3E><>9<EFBFBD><1C>@<40><><EFBFBD>YZe"<22><>%}<7D>ԵGi<<3C><>h<1F>?<3F>?<3F><>`V<>X<1A><><EFBFBD><EFBFBD><EFBFBD>1;@CRk<52><<3C><><00>ݖLM=<3D> <0C><>Y<EFBFBD><59>65<18>"=Ru?2<>G<EFBFBD><10><>(<28><>v'<27><><EFBFBD><13>)tj;<3B><><EFBFBD><EFBFBD>{:<3A><>c<EFBFBD><63><EFBFBD>bhcu[<5B>
<EFBFBD><05><><EFBFBD><1D><>/<2F><> }+<2B> o<>H<EFBFBD>K<EFBFBD>H <0C>\<5C>
<EFBFBD>z<EFBFBD>W<><57>U<EFBFBD><12><>ޚ<> <0C>˩.<2E>kgf<67>d+.<2E><>ʞ+Z<><5A>f<EFBFBD>EA<>ڲ<EFBFBD><DAB2>ծNm|<1A><><EFBFBD><EFBFBD><EFBFBD>zT{<7B><1D>^<5E>p<EFBFBD>Cm<43><6D><0E><>l<EFBFBD>S5e<35><65>x<EFBFBD>Y.<2E>^<5E><>(k6|<00><>Bԥ<1C><><EFBFBD>&<26><07>t
̇<13><>pC<70><43><EFBFBD>Q<EFBFBD><18><><EFBFBD>Zbc<62><63><ҝ8<D29D>f<EFBFBD><66><EFBFBD> <0A><16>V<EFBFBD>H<><48>U<EFBFBD><55><EFBFBD><EFBFBD>K<EFBFBD> ؀<17>V<03>bRL<52><05><><EFBFBD><EFBFBD>.<2E>Ȯ<1D><>*^<5E>z+WJ<57><4A>Z]I<1B><17>Q<EFBFBD><51><EFBFBD><17><><EFBFBD><EFBFBD><EFBFBD><78>+p<16><><EFBFBD>L<EFBFBD>0t<30><74>ʴ-*<2A><>&<26>k[[&^<5E>\<5C>u<EFBFBD><75><02><>)7꫞&<26><>j]<5D>QG<51><47>-<2D><>5<EFBFBD>7<EFBFBD><37>;Y<><59><EFBFBD><EFBFBD>̦v<CCA6><76><EFBFBD><EFBFBD>N:<08>. CQ<43>f<EFBFBD>m<EFBFBD><6D>zk<7A>+HT<48><1B><>R<EFBFBD>QI`m<16>˺n<CBBA>f<EFBFBD><66><EFBFBD><EFBFBD>`<60>!_<><5F>j/2bf<62>(<28>Cm$qY<>w<EFBFBD>Q<10>D<EFBFBD>G54<35>-Id<17><>Dv<44><76>D f<><66><EFBFBD>߼`<60><12> d-><3E><>v<EFBFBD><45><D498><EFBFBD>T<EFBFBD>]S<><53> <0B><>͋x<CD8B><48>%<25>ZԞa[%k<1B><><EFBFBD>j<EFBFBD>K<EFBFBD><4B><EFBFBD><EFBFBD>]<5D><> <16>_V9<56><1F><>vb<76><62> g<><67>{<7B>ynD<6E><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <0A>)<29><><EFBFBD><EFBFBD>kF<6B><34>,((<1E>b<EFBFBD>FC<46><00>F<EFBFBD><46>B<EFBFBD><42>u<><75>P<EFBFBD>u$<24>n <0B>҃R<D283><52><EFBFBD><EFBFBD>eK<><4B><EFBFBD>t8H<38><48><EFBFBD>m<EFBFBD>K<EFBFBD>:<3A>V F<>n<EFBFBD><14>i<EFBFBD>><3E>PN7<4E>ʖw<CA96>’`I<><49>X]<5D><15>d<EFBFBD><64><EFBFBD>g7<67>v<><76><EFBFBD><EFBFBD> <20><>%H
rN <09>w<EFBFBD><77>]<5D>k<EFBFBD>1oW<6F>ܦ<EFBFBD> <0C>j7<6A><1E><>^Ka<4B>)<29>x<12>GގGd<05><> <09>4H'<27>L*<2A><><EFBFBD>_<><5F>$_g<5F>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?e)<29><><EFBFBD>Rf@<40>WfV1M<31><4D>|:<3A><><EFBFBD><0E><><EFBFBD>9<EFBFBD>?<3F><07><>!<21> <0B>jb<6A>B<EFBFBD>)`c|<7C>H<EFBFBD>kc<><63>S9<53><39><EFBFBD><19>̼<EFBFBD>
;<3B>+ <0A><>v<14><>G<EFBFBD>́U$Q4=<3D> <0A><><EFBFBD><EFBFBD>q<EFBFBD>3<01><><1D><>V<EFBFBD>G<47>ْB<D992><42><EFBFBD>Q D<><44>Q<EFBFBD>9<EFBFBD>+<2B> <20><><EFBFBD><EFBFBD>?r<>r<EFBFBD><72><EFBFBD><EFBFBD>q3<71>[<5B><>F<EFBFBD>[+q<><10><>r<EFBFBD>i<EFBFBD><69><EFBFBD>P)<29>-<2D><1B><>B<1A>CT<43>)_<><02><>&<26><><0E>X&<14>/<2F>O1<4F>*<2A>Ny<4E>ƈ:<3A>x0<78><30>u<EFBFBD><75>8<EFBFBD>j<07><>9!a<><61><EFBFBD><F~2<>F<EFBFBD><1B><><EFBFBD>8q W<11>R<04>ϔ\<5C><><EFBFBD><EFBFBD><0E><>,Q<>U  <0A><>LY<4C><59>E<EFBFBD>6<>3<EFBFBD>#<23><1C>r<EFBFBD> M<>XS<58>i<EFBFBD>ŧ<EFBFBD><C5A7>>I<><49><EFBFBD><EFBFBD><1E>g<EFBFBD>@톃<>L<EFBFBD>L^<5E><><EFBFBD>oS<6F>M<10>7<EFBFBD><37><EFBFBD><12><> $Z+eHr/D<><44>'<27>
$<15>P<EFBFBD><50><EFBFBD><EFBFBD>l4Ѵl<D1B4>է<EFBFBD><D5A7><0E><>Nn<4E>/9<>H0W<30><EFBFBD>_<EFBFBD>J<><4A>¸>><3E><><EFBFBD>mq<6D><71>W<EFBFBD>t<EFBFBD><74><02><>{I<>,<2C>̽rts<74><73>O <0A><><EFBFBD>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD>!p8<70><38><EFBFBD><EFBFBD><11><>jjy<08><>|W<>R<EFBFBD>n<6E><7F>FMo<4D><6F>uVo<56>Ƶ0 <0B>H<><48>ilV<6C><56><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD>)<29><><EFBFBD><o}B՗m<D597>v<EFBFBD><02><><EFBFBD><EFBFBD><EFBFBD>><3E><>:Z-<2D>'<27>,<11><><EFBFBD><19><>ͤY<CDA4><59><EFBFBD>b<EFBFBD>&<26><><EFBFBD>S<EFBFBD>-2&r<>L*<2A><><EFBFBD>\1l<31>Y<EFBFBD><59>uƩ0<C6A9><30>c<>Rh{<7B><><08>&vV<1F><><EFBFBD><EFBFBD>m<EFBFBD><6D><EFBFBD><EFBFBD>=Y<>;o<><6F><EFBFBD>1<EFBFBD>$<24><>u'O<>Ի%<25><>Ŀ<>?<3F><>y<0E><1A>q<EFBFBD><71><EFBFBD><EFBFBD>pZ͑/<2F><>56<35><36><EFBFBD>CW٨<57><D9A8>b<EFBFBD>n<EFBFBD><6E>eSU~<7E>贉O<E8B489><4F><EFBFBD><EFBFBD>><3E>r<EFBFBD><72><EFBFBD>*<2A><>s<EFBFBD><73>G<EFBFBD><47>h+jR<6A><52>h-<2D><><EFBFBD>5<EFBFBD>N<EFBFBD><4E>?<3F><>><3E>L-<08><>[)<29>1/
<EFBFBD><EFBFBD><07><>ʓq<CA93>}eD~<7E><><EFBFBD> &^<5E><><EFBFBD><EFBFBD>ڔ<EFBFBD>(<13><>3O<33><1B>SB<0E><><EFBFBD><EFBFBD><1E>ܲ<EFBFBD>P<EFBFBD><50><EFBFBD><EFBFBD><1B><> <02>P_큯K<ED81AF>2<EFBFBD><32>ɠ<11>"<22>vf<76>k<02>u<EFBFBD><75> <20>{Q<>D<EFBFBD><44>I?]<5D>-<06>>M$<24><>[=<3D><>'<27>E۫{[Æhh<06><><EFBFBD>f;<3B><><18>l<EFBFBD><6C><EFBFBD><EFBFBD>E9s<39>&<26>6:v<><76>3<EFBFBD><33><EFBFBD><EFBFBD><EFBFBD>p<EFBFBD>9V<><56><EFBFBD><EFBFBD>T+<2B><>3@7Y{<7B> <0C>͵<CDB5>++<2B>C<04><>e:<3A>S<EFBFBD><53><EFBFBD> M⪹<4D><E2AAB9><6A><DEA2>u髐‚}j?<3F><><1B><>UY-$<><EFA3B2><EFBFBD><EFBFBD>%<25>
<EFBFBD><EFBFBD>_я<>&f<1B><><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD>n<12><><EFBFBD>(3<>^<5E>O<EFBFBD>zN<7A><4E><EFBFBD>R<EFBFBD>ke<6B>Q/<2F><><EFBFBD><EFBFBD><EFBFBD>4W)<29><>b3}<7D><><EFBFBD><0F><><EFBFBD>L؇9<D887><39>M<EFBFBD><4D><EFBFBD>&<08>s<EFBFBD><73><EFBFBD>Hj<08><><EFBFBD><EFBFBD>QNY<4E>
a<EFBFBD><EFBFBD><EFBFBD><EFBFBD>μ<EFBFBD><EFBFBD>h<EFBFBD><EFBFBD><EFBFBD>=<01><>V:iIW<49><57>Dj<44><6A>&R<><52>ɩ<EFBFBD>D!<21><>V<EFBFBD><56><EFBFBD>c<EFBFBD>n <09><08>6<EFBFBD>d<EFBFBD>Mԓb<D493>կL<D5AF><4C><EFBFBD><EFBFBD>ݭ[<74>><3E><><EFBFBD><08><>a.<14><1D><><EFBFBD>F<EFBFBD><1A><><EFBFBD><EFBFBD><EFBFBD>}<7D>ӽF<19>8<11>
h<EFBFBD><EFBFBD><EFBFBD><EFBFBD>+79U<39>yGc=<3D>MO<03><><EFBFBD><EFBFBD><EFBFBD>nB<6E>0<EFBFBD>>T<08>J<EFBFBD>b<EFBFBD>?k<>Ƨ7<C6A7>e<EFBFBD><65><EFBFBD>=/㼑כ<E3BC91> <1A><><EFBFBD><EFBFBD><EFBFBD> LK<4C><4B><EFBFBD><EFBFBD><EFBFBD>w<EFBFBD><6B><DD9C><EFBFBD>7<EFBFBD>n<EFBFBD><6E>v<EFBFBD>D<EFBFBD>Q<EFBFBD><51><EFBFBD>!Crb<11><>=<3D>Ж<EFBFBD>7-ȏ<>a@<40>&O<>c<EFBFBD><1D>z4O<34><4F><EFBFBD><00><>"`Jz_<7A><5F>r<EFBFBD><72> <0A>ϕ7-|<7C>kW0=z/<2F>Y3<59><33>&\<5C>%H!<21>*EK<45>f<EFBFBD>z<EFBFBD>(<28>q]<5D><><EFBFBD> <0B>u<EFBFBD><75><EFBFBD>j)<29>u<EFBFBD>h
E=t8&惬^KoO <20>1vU2<55><32><EFBFBD>x<EFBFBD><78><EFBFBD>]<5D>r<04><><EFBFBD><EFBFBD><EFBFBD>"<22>AC<41><43>0<EFBFBD><30>^ݕpNa<4E>3<EFBFBD><33><EFBFBD><EFBFBD>T<EFBFBD><54><EFBFBD>3<><33><EFBFBD><D.C<><43><EFBFBD><07>S<EFBFBD>#pO<70><4F>V6ȗ<36>"<22><><EFBFBD><EFBFBD><EFBFBD>IJ <0C>^"<22>gD<05><><EFBFBD><EFBFBD><EFBFBD>PJh<4A>Y
$<10><>{<7B>%+<2B>_<EFBFBD><5F>ም Y<15><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"<22><><12>/<2F>H<EFBFBD>5+bq<62>GQ<47>PL<50><4C>z<EFBFBD>#VZEw<45>V<EFBFBD><56><EFBFBD>ز<0E>u<EFBFBD><75>.9k<EFBFBD>k~<7E><>6<14>cb<63><62>}$D `<60>M<EFBFBD>t<>K<EFBFBD>X~F<46><12>6w<0E><>P<>奯%q<><71>ry<72>ԓ>T7<54><37><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!h<>  <0B>V$|<7C><>N<EFBFBD>NU]f<>u^/<2F><>Ϋ<EFBFBD><CEAB>_<EFBFBD><5F><EFBFBD>l<EFBFBD><04>'t<><74>|<7C> 4<>b5<12><00><><EFBFBD>-zi(dK <09>w<EFBFBD><77><EFBFBD>t<18>Nb<4E><62><EFBFBD>\c<><63><EFBFBD>eG<65><47><EFBFBD>`,z<>*r<><72>A0<41><11><><EFBFBD>K<EFBFBD><4B>X<EFBFBD>"<22><><EFBFBD>~<7E><>Я<EFBFBD><D0AF><EFBFBD><EFBFBD>'<27>x <0A>^<5E>*<2A><05><><EFBFBD><EFBFBD>t8Q]1U<31><55><EFBFBD>7<EFBFBD><37><EFBFBD><EFBFBD><EFBFBD>=<03>+<2B><>]WJ<57><4A><EFBFBD><11>p<EFBFBD><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>nk<6E>u:<3A>~<17><>D<10><><EFBFBD><EFBFBD>yy<79><79>I1<49><31><EFBFBD>l<EFBFBD><6C>]<5D>8s<38>g<EFBFBD><67><EFBFBD><EFBFBD>_<EFBFBD><5F>G<47><17>"[&<26>MSS00 <09>㵸t<E3B5B8>z\<1D><0F><17><>ׂ~<7E><>3]L<>s<EFBFBD>n<EFBFBD><6E><EFBFBD>$<24>r<EFBFBD><<3C><>W <1F>|<7C><>5<EFBFBD>>G˲|<7C>9Zޔ<5A>?<3F><><EFBFBD>o:ġ<> !<21><>r<EFBFBD><72>yoʦ<6F><16><>}<7D><> <20><16>xQ]6<><36>ȗ<EFBFBD><C897>6<EFBFBD><36>nS<6E>
<EFBFBD>o<><6F><EFBFBD>i<EFBFBD>(%<25><><EFBFBD>|<7C><><EFBFBD><EFBFBD><EFBFBD>l<><6C><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>}!C?<3F><><EFBFBD><17>I<EFBFBD>!<21><nK<6E><<3C><>7B<37>|<12>ls<6C>z<><7A>7sI<73>g<EFBFBD>%<25>u<EFBFBD><75>{%!7+J/<2F><>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD><17>2<EFBFBD>ި<EFBFBD><DEA8>B<EFBFBD>><3E><0F>2<EFBFBD><32><EFBFBD><EFBFBD><15>x<EFBFBD><78>k<EFBFBD>X<><58><EFBFBD><EFBFBD><04>ˬn<CBAC>P<EFBFBD><50><EFBFBD> 3<><33><EFBFBD>)T<><EFBFBD><<3C><><EFBFBD><E2A69E><EFBFBD>><3E><><EFBFBD><EFBFBD>e<>hJ<68>c<EFBFBD>P<>A<EFBFBD>5<EFBFBD>i<EFBFBD>}<7D><>W0Ƚ<30><C8BD><EFBFBD>V<1B>z*`<60><><69><DA82>F7`<60><><EFBFBD>|*<2A><05> :06]<5D><>@yC<79><43>?<3F><><1B><><EFBFBD>I"<22><>c<EFBFBD><63>[g'h<>3<07>Ź<EFBFBD>;PHo#2/<2F> x5p<><70>\<5C><>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + <0B><>B<EFBFBD><42>/A{<7B>к/l<><6C><EFBFBD>j<EFBFBD>ѻ+y<>P+m<>F<EFBFBD>n<EFBFBD><12> <11><>s<_<>Ia<>WyY&<26><>XeL6Ie(a<1B><>%<25>S<EFBFBD><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD>n<EFBFBD><6E><EFBFBD>.<2E><><EFBFBD>M<EFBFBD>~+v<><76>h<> <14><><EFBFBD>n<1B><><EFBFBD><06><><EFBFBD>Օ<EFBFBD><D595>0<EFBFBD><30><EFBFBD>I[(P<><50><19><> w<><77><04>z<EFBFBD>T<EFBFBD><54><EFBFBD>yD<79><44><1E><>%<25>+<2B><><EFBFBD><EFBFBD>_B<5F><11><><EFBFBD>7<>r}<7D>ӫS<D3AB><53><EFBFBD><1F><>v<EFBFBD>Q<EFBFBD>#<23><><EFBFBD><EFBFBD><EFBFBD>Q<EFBFBD><51><EFBFBD><EFBFBD>lk^68)a7Ɛ<37>-<2D><>_馎<5F><E9A68E><EFBFBD>g<07><>ץ<EFBFBD>W<EFBFBD>bc<62>vѳ_<D1B3><5F>c|<05><>_<1F>'s1<73><01>>7M<37><4D>!<21><><EFBFBD><EFBFBD><11><><EFBFBD>m<EFBFBD><11>@<40><><EFBFBD><EFBFBD>|bT0y<30>M<> <0C><>?b<02><>,<2C><>Ǥ<EFBFBD><C7A4><EFBFBD><EFBFBD><EFBFBD>`<60>GR<47><1C><>އH<DE87><48><EFBFBD>&dY5<59> W<><0F><><EFBFBD><EFBFBD><EFBFBD>ГP><3E><>\\ <20><> B`<60>;<3B>-ɮ.<2E><>W<EFBFBD>H<EFBFBD>;<15>zA<7A><41><EFBFBD>#<23>q<EFBFBD><71>:<3A><>Z<EFBFBD>=*<16><><0E><EFBFBD>l-<2D>w<EFBFBD><77><EFBFBD><EFBFBD><EFBFBD>:r<><72><EFBFBD>VH<56>ot#<23><><EFBFBD><0E> v=<3D><><EFBFBD>:<3A>j,<2C>io<0E>h<EFBFBD><68><EFBFBD>z<>ߨ<> <0A><>F<46><EFBFBD>ބ#<23><>;Xi<58>c_<63>Ã<EFBFBD>]<5D><><EFBFBD><<3C><><EFBFBD>?<3F><><EFBFBD>|L<><12>az,<2C>A<EFBFBD>-<00><>!<00><><EFBFBD>`ռ1w<31>><3E><16>fu<66>o7<1A>F<EFBFBD><46>-p<><70>P<EFBFBD>u<EFBFBD><75><1B><>5/18#"2v<32><76>w<EFBFBD><77><EFBFBD>ʋ<EFBFBD><CA8B>5<EFBFBD>ݾ<11><>]<5D><><EFBFBD>f<EFBFBD>8<19><>U<><55>E2Y<32>5<EFBFBD><35>gC<67>c<EFBFBD>e|5PĤ<50><C4A4><EFBFBD><EFBFBD><EFBFBD>}<7D>M<12>MF,z<>w<EFBFBD>ȋ<EFBFBD>y\ "<22><1C><>}Kl<4B><6C><EFBFBD><EFBFBD>{<10>|<7C><><EFBFBD><EFBFBD><EFBFBD>
~<7E>#?|w|<7C><01><>AO<41>@<10><><EFBFBD>6<EFBFBD>T/4<>ڋ<1E>4<EFBFBD><07>) <0C>qY<71><59>.j<><6A>݁jj i˅<69><CB85>޼}K<><4B><EFBFBD>E<EFBFBD>T<<3C>(<28><>c<EFBFBD> A] O<>MzEۜ<45>P<EFBFBD>Z<EFBFBD><> <12><><EFBFBD>E <0C><>`<60><>OqN;<3B><>'<27><>f6<66><36><EFBFBD><EFBFBD>%z<><7A>mXVe<56>6<EFBFBD>9Vq m<><6D><EFBFBD><06><>dS<19><>o N
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>n:<3A>v^]ֆJ<D686><1E><><EFBFBD><EFBFBD><EFBFBD> <0A>\Og}<7D><><EFBFBD><EFBFBD><EFBFBD>^) <09><>Ћ'F_<46>jU<6A><05>t<EFBFBD>BN~<7E>s<EFBFBD>>0]\<5C>HX<48>$<24><> <0C><>;}<7D>C<EFBFBD><43>ht<68>x<EFBFBD>><3E>M<4D><07>A<EFBFBD><41>s"<22>:<3A>-<2D>2<EFBFBD><32>kL<6B><4C>9<EFBFBD><39>ݲ<>&<26><>3<EFBFBD>9<EFBFBD><0F>V<EFBFBD>Q~&ò}o|؎!7@<02>?_9X-˪<>~<7E>L<EFBFBD>W^<5E><>d*<2A>tGBMB