php-src/ext/phar/phar.phar

1232 lines
52 KiB
Plaintext
Raw Normal View History

#!/home/cellog/testapache/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 - 2008
*
* 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(); ?>
6 pharcommandclicommand.inc<6E>!<00>D<EFBFBD>H%
<00><15><><EFBFBD>directorygraphiterator.inc<6E><00>D<EFBFBD>Hu.XM<>directorytreeiterator.inc<00>D<EFBFBD>HXe#Q<>invertedregexiterator.inc<6E><00>D<EFBFBD>H<EFBFBD>j<>Q<>pharcommand.inc4<63><00>D<EFBFBD>H#<00><>Z^<5E>phar.inc<00>D<EFBFBD>H+CbcD<63><00>ks<6B>H<EFBFBD>3<EFBFBD><33><31><18><><EFBFBD>j<EFBFBD>L`/<2F><><EFBFBD>ڪd/<2F>d?<11><><EFBFBD>t7#a<><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <09><><EFBFBD><EFBFBD><EFBFBD> fz<66>=<3D>R^<5E><><EFBFBD><EFBFBD><EFBFBD>݋W<DD8B><57><EFBFBD><EFBFBD>$<24>,J<>(<28>n<EFBFBD>l5J<35><4A><EFBFBD>`=<3D><>"/w<><77>&<14>p'd(%{<7B>
<EFBFBD><EFBFBD>²<EFBFBD><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><EFBFBD><EFBFBD>s<EFBFBD><EFBFBD><EFBFBD><EFBFBD>*,8<>W<7F><57>?<3F>!~<7E><>Y<EFBFBD><59>B<EFBFBD>s<EFBFBD>.co<63>d!¨`w<><04><>L<EFBFBD>ȹB<C8B9><42><EFBFBD>.<2E>[<5B>a<><61><EFBFBD>s\<5C><><EFBFBD><00>ƣK"<1A> <0A><>v;;<3B><*<2A><><EFBFBD>C<EFBFBD><43>&<26>+<2B><>J<EFBFBD>]I6e<36><10><>4<><34><EFBFBD><15><><EFBFBD>^<5E><13>Y<EFBFBD>Ұ<EFBFBD><12>-D><3E>0P`<60>|<7C><><00><>~<7E>I<EFBFBD>p<EFBFBD>ۀư<DB80>,<2C><><EFBFBD><EFBFBD>Y<EFBFBD><59>J<EFBFBD><4A>77k^h<><68>O<EFBFBD><4F><03>ٳ<EFBFBD>o<EFBFBD><6F>,Y@<40>Lb<4C><62>c<EFBFBD><63>U<EFBFBD><55><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>[{<7B><>=<3D>,<2C><><EFBFBD> <0B>E<7F>旋'<27><><EFBFBD><EFBFBD>s<EFBFBD>#<23>O<EFBFBD><4F><EFBFBD>#ֳDJ^<5E><0E>s<EFBFBD>d>^,<2C><>(3o<11><11>-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>iJ<69>œ<EFBFBD>"<22>
<EFBFBD>
<EFBFBD><EFBFBD>b<>n<EFBFBD>N<EFBFBD><00><>@<40>]e Tf<14>鲔\,<2C>Ծ2=<3D> <0C>ilB<><00><>z<EFBFBD>pu`!<0E>oZ<6F><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><01><><EFBFBD>͆5<CD86>~<7E>O ;<3B>N<EFBFBD>7<EFBFBD><37>6<EFBFBD><36>å<<3C><><04>b<EFBFBD>}<7D>j<EFBFBD><6A>,<2C>
X$<24>h:<3A>n<EFBFBD><6E><EFBFBD>'z Ik<>i<EFBFBD><69>C#<23>עL<>7<EFBFBD>9ۅ"<22><><EFBFBD> 0)<29><><EFBFBD><EFBFBD>cd<63><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>k<EFBFBD>N<EFBFBD>@$<14>|<1F><><02><>A<><41><EFBFBD>I7`<60>d<EFBFBD><64><EFBFBD>T<17>"<22>ju"<22>.<2E>J<EFBFBD>ը<EFBFBD><D5A8>Ca<43>`F<><46><EFBFBD>R<EFBFBD><52><EFBFBD><EFBFBD> ~Q<><51>M<EFBFBD><4D>t_<74>ܫ<V<>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD> <0B><>S&<26><12><>Sۭ*1_<>8,S<><53><08><><EFBFBD><00><>i<EFBFBD><69><EFBFBD><EFBFBD>v<15>;<3B>*<2A><>{t <0C>|<7C>x<EFBFBD><78><EFBFBD><EFBFBD><EFBFBD>A<EFBFBD>bCk<43><><ED8187><EFBFBD>JF#<23><>"<22><><EFBFBD><1C><>c<EFBFBD>d<EFBFBD><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<18>QMD0-r<>DZ<>f^7h,<13><>5<EFBFBD>2f<32><66>܇<EFBFBD><DC87><EFBFBD>H<7F>VG7Bh<42>A<EFBFBD><41><EFBFBD><EFBFBD>֕><3E> <0A>Z<EFBFBD><5A><EFBFBD><EFBFBD><EFBFBD><EFBFBD><14>I,S"f|<7C><>O<08><><EFBFBD>\<5C>t<1E>D<EFBFBD><15><><EFBFBD><EFBFBD>?<3F>y{ Xp<58><70>q<EFBFBD>\<5C>@<40><>P0<50>8f<07>MI<4D><49><EFBFBD>U!<21>
ޠ<EFBFBD>x_<10>L<EFBFBD><4C><EFBFBD><EFBFBD>"<22><a<>[LZ%Vs<i<><69>=/J<><4A>$;6Q <0C>\3h<33><68>v<1B>]<13>'UroU5T>˻<><CBBB><EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><32>><3E><1D><>N<EFBFBD>8y<38>%<25>,<2C><>QSX,}<01>3~<7E>ny<6E>r"<22><16><><16>K<><4B>Ҿ<EFBFBD><D2BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>a1<61>c<>9<14>P<EFBFBD>t<><74>Z<EFBFBD><5A><EFBFBD>%<16>`<60><>,<2C>[5`<60><>gJ <09> <20>W<EFBFBD><57><EFBFBD>#<23><1E><>z<EFBFBD> d<>_?=7 "<22><><EFBFBD><04>>j<>Y2lD<08><>[z<>N<0E>b)<29>. <0A>Uj<><6A><EFBFBD>@A<1A>5A<35>M(<28><>><3E>q
<0F>j <0C>tحK:v<><11>M֮@<40><>2^<5E>B<EFBFBD>U<EFBFBD><12>܀<08>.<18>n<EFBFBD><6E>ʋ*<2A>:r{ݲ<>ͥ<EFBFBD><CDA5>h4<68><00>n<EFBFBD><6E><EFBFBD><07><>~<7E>֔TT0<<3C><><EFBFBD><EFBFBD>)8D<><44><EFBFBD><EFBFBD><EFBFBD><02>:\<5C><><Jـ<03><>.<2E>Sk<>?<3F><><EFBFBD>:ma<02>y><3E><><EFBFBD>С<EFBFBD><D0A1><EFBFBD>O<EFBFBD>ؙ<EFBFBD><D899>m]<5D><1B><>"<02>-%<25><><EFBFBD><EFBFBD><1C>ʑ<EFBFBD><1B><0E><06> <15><><EFBFBD><14>nv<><76><EFBFBD><EFBFBD>glL<6C>~袞]<5D><>x<EFBFBD> <20><>˥<EFBFBD>] <A<03>y0<79><30> <09><13>d<EFBFBD>mzt<>Q<EFBFBD>#<23>Qe<51>f|<7C><><EFBFBD>w<EFBFBD>N<EFBFBD>VW<1B><1E><><EFBFBD>Y<EFBFBD>-uJ z^ <0C>b<EFBFBD><62>{
f<>6<EFBFBD>~<7E><>/%7mdH<64>g<1C> <09><12>;O2<4F><32>1<EFBFBD>w<EFBFBD><04><><<3C><0E><><EFBFBD><EFBFBD><EFBFBD>D<13>C䁠<43><E481A0><EFBFBD>b<EFBFBD><62><EFBFBD>e<EFBFBD><65>x:<3A><><EFBFBD><EFBFBD>3<EFBFB3><33>,!<21><>8<><38> <0A><12><>ǭj<C7AD><6A>r<EFBFBD>K,-<11><><EFBFBD>*<2A><>TA<54>ZŊ_ TL532<33>H<EFBFBD><48><EFBFBD><EFBFBD>.<2E><19>~<7E><>ܷ <09>v<EFBFBD>1e<31>[<10><03>K;<3B>K<EFBFBD>E<EFBFBD><45>&g<>L4<4C>:*<13>*<2A>@<40>o<0F>9j7<17><>1AHYYs<59><73><12>k<EFBFBD>x,<08><>3R5EQ>qpV<70><56>%F<><46><08>I<EFBFBD>1<EFBFBD>j8<6A>*<2A>+<2B>㭾PCӬ8<D3AC>b<><62><EFBFBD><EFBFBD><EFBFBD><EFBFBD>c<15><>؋<EFBFBD>ӏ*xX<78><1E><00><><EFBFBD>9<EFBFBD><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>h<>5<EFBFBD><35><EFBFBD>q<>g@<40>O<EFBFBD><4F><EFBFBD>y<18>/<2F>#<23><>4z<34><7A>0<EFBFBD>V<EFBFBD><56>A<EFBFBD>-2Q<>u<EFBFBD>8<EFBFBD><38> @7<><37>Qj<51><6A>}.V<>"<22><><1C>d<15><><EFBFBD>8 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>lH{<7B>_Ʋ<> <0B>M<EFBFBD>d[n<19><>Z;<16>\k@<40><><EFBFBD>wN<77><4E><EFBFBD><EFBFBD><EFBFBD>q<EFBFBD><71>a5<01><><02>_R$a
;<3B><><EFBFBD><1F><13><><EFBFBD><EFBFBD>0<EFBFBD>V\XH<58><48><EFBFBD><EFBFBD><EFBFBD>~<7E>@8'<14>$<24><>1 <0A>>g<>t<<1C><>JK<>
UpJ<EFBFBD><EFBFBD>yr lT i<><69><<3C>f<EFBFBD>(<14> l<>(r<>B<EFBFBD><42>K<EFBFBD><4B>j-5\<5C><><EFBFBD>ܦ<1B><>f<EFBFBD><66>\<5C>
<EFBFBD>r<EFBFBD><EFBFBD>0޸$+<2B><><EFBFBD><1F><15>(<28>G<EFBFBD>44<34>͔n F<><46><EFBFBD>&<26> ȕ3<C895><33>]с<><14>!$<24> <09>S<EFBFBD>SfN z<1B>T撻<54>~<7E>Bc<42><63>0w<14>`v<><76>}0<>R<EFBFBD>6 <0B>ޢ<EFBFBD>̚;V)<29>]/'<27>V<EFBFBD>L&<26>w<05><><EFBFBD><0E><><EFBFBD>i<EFBFBD>Q<EFBFBD>4<EFBFBD>r<02><1E><><EFBFBD>x<>n<EFBFBD>׵<EFBFBD><17><><EFBFBD>X<><58>Z<EFBFBD><0E><><EFBFBD><EFBFBD>z<EFBFBD>B5<42><35><EFBFBD>K<EFBFBD><4B>B<EFBFBD>/<2F><><EFBFBD>T>IX<10><>4e<34><65>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD><7F>q<EFBFBD> Erܻ<72><DCBB><EFBFBD>)K<>n5˺<35><CBBA><11><0F><><16><><EFBFBD><EFBFBD>vx<76>!<21>wOW<4F>f#.c<>o<EFBFBD>˺[<5B>P<EFBFBD>N<EFBFBD>2<EFBFBD>ya<79> <0E><>3<EFBFBD>cUK<1B>3<><33>&<01><><EFBFBD><EFBFBD>#<23>=<3D>!+Д<>X<EFBFBD>)<04>MS<4D><1B><>Mm<0E>,<2C><><EFBFBD>J<>j<10>k}1<>:ƒq<C692><71><EFBFBD>=8+6<><36>`\{[3:<3A> V <0C>4C<>̖ʶH#<23>ڬ,8<>/y<><79>say<61>W<12>Y<><59><EFBFBD>J Wy<57><14><><16><><EFBFBD><EFBFBD>ڝ<<3C>Zh<5A><68>0<EFBFBD>"<22>f<EFBFBD><66><EFBFBD><EFBFBD>F<><46><EFBFBD>[텟Qʬ><15><>Ec<45><63>
<EFBFBD><EFBFBD>Y_<EFBFBD>/<2F>k<EFBFBD>Ҍ<EFBFBD>sr,<2C> <20><>XT<><54>"sQ{<7B><>x9<18>g.<2E><>#<23><><EFBFBD>d m8<6D><38><19><06><><EFBFBD>&=3<><33>1<EFBFBD><31><EFBFBD><EFBFBD>BZ9ڡ<39><DAA1><EFBFBD>~5<>Gy<02>à<><C3A0>H<EFBFBD>@/<2F><><EFBFBD><EFBFBD>Gx<47>"<22>j<EFBFBD>,<2C>`5<>q̪S<1B>a<EFBFBD><61><EFBFBD>d<>-<2D><>)<29><><EFBFBD>|R<1C><<3C>9<EFBFBD><39>-<2D>v<EFBFBD>/!љ<><D199>^'<27><><EFBFBD>ai<1D>S<EFBFBD><53>q<EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD>"_i<><69>^R<><52><EFBFBD><EFBFBD>:<3A>V!JL<><4C>TTgu<67><75><EFBFBD>D<12>3p<33>
!/)<29>u<EFBFBD><75><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>p&ixW<78>Wik<69><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><13>4<EFBFBD> <20>tG<13>k-<2D><><05>?ͺ<><05><>AO<41>@<10><>4<EFBFBD><EFBFBD><7F>1<08>S<><53><EFBFBD>BcAB{<7B>Ԭہn<DB81><6E>fw<66><10><><EFBFBD>ۖ<EFBFBD><DB96>`<0F>t<EFBFBD>7o<37>lz=<3D><>ܶl<DCB6>wr<02>K<EFBFBD>FH<46>@<40>2<EFBFBD>] <09><>L<EFBFBD> <20><><EFBFBD>8<EFBFBD>-<2D><10>+<2B>9x<1B><><EFBFBD>QV<51>g<EFBFBD>p tM<74><4D><EFBFBD><EFBFBD>al<1C>ڡ<EFBFBD>H<EFBFBD><48>LL<><4C><EFBFBD><EFBFBD><EFBFBD> <0C>
k-!
A?<3F><><EFBFBD><05><>ri<72>R <0C><>n<EFBFBD><6E><EFBFBD><EFBFBD><EFBFBD><04><>9<04>Y<10>5r<35>Y<EFBFBD>P:<3A>!(<28><08><>@<40>DA<44><41>[<5B>i<EFBFBD>&<26><><19><><EFBFBD>y_QH<51>q8<71><38><EFBFBD>!<0E><0F>Qȓ=9<>Y<EFBFBD>o<EFBFBD>ݶZ˂Se,<2C><>f\*QPu|<7C><13><><EFBFBD>j<EFBFBD><6A>i<><69>}m&w<>q<EFBFBD><71> <0C><><EFBFBD> <0A><12><><EFBFBD><EFBFBD><EFBFBD>Q"s"<22><>_<EFBFBD><5F><EFBFBD>&sC<73><43>:<08>y<EFBFBD><79><EFBFBD>a<18><><EFBFBD>7N<>ڷ]<5D>v<EFBFBD><76><EFBFBD>b9<62>; <0C>8z <0C><>?<>!G<>${Q<>N<EFBFBD>`T<><54>^y<><79><EFBFBD><EFBFBD>^p<>O]<5D><>i<EFBFBD><69><EFBFBD><EFBFBD>Ӷ><3E>?2<><32><02>S]o<>@|<06><><EFBFBD><0F><><EFBFBD>@<40><><EFBFBD>rP<>żT<C5BC>d]<5D>b<EFBFBD>dlk<6C><6B>5<><35>ݳ <0A>K<EFBFBD><4B>|'<27><><EFBFBD><EFBFBD>ͭ<EFBFBD><CDAD>y<EFBFBD><79><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>\.e<><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>h<EFBFBD> Qj$<24>]<5D><><EFBFBD>&0F<30>eE<0E>'<27><>TU<54><55>$.!L<>R0<52>̙`ZT0Q<30>8#<23>Aa<41><61>{<7B>a<>[<08><>ϗ<EFBFBD><CF97><EFBFBD><EFBFBD>1<EFBFBD>7<EFBFBD>(<28><><EFBFBD>㐯E<E390AF><10><><EFBFBD>d<06><>'Ak<41>><3E>`<60>8<EFBFBD> ۈ<02>A<EFBFBD><41><EFBFBD>@<18><><EFBFBD>"y,Ý `lP<6C><50><EFBFBD><EFBFBD><EFBFBD>d<EFBFBD><64>i<EFBFBD><69>ִ<EFBFBD> <0A>'<27><>B<EFBFBD><1D><05>=l3;<3B><><EFBFBD><EFBFBD> s<>a<EFBFBD>*ME<4D>aI<61>
<04>B<EFBFBD>]N<><4E><EFBFBD> <20>˄^KΠ<4B>8,a<><61><EFBFBD>,<2C>P}An<08><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>`.L<><4C><EFBFBD>F<EFBFBD>x#<23>ǝСc<>y<EFBFBD><79>B<EFBFBD><42>|<7C><>jt<6A><07><>?ƿ<><C6BF>\M<><4D><EFBFBD><EFBFBD>f\<5C>:G<><47><EFBFBD><EFBFBD><EFBFBD><07><17><EFBFBD><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<27><>p\<5C><><EFBFBD>p2<70>F%I͵9<CDB5>?<3F><><EFBFBD>۝?7a<37><61><EFBFBD>3G<33><EFBFBD><E79784>t<><74><EFBFBD>M`<60>+<2B><><EFBFBD>K<EFBFBD><4B> x<>l<EFBFBD><6C><EFBFBD>Q<1F><><EFBFBD><EFBFBD><EFBFBD>˖<EFBFBD>'<27><>v۴l,yl+<2B>89+<2B>s<EFBFBD>t,U<><17>a<>c<EFBFBD>1<EFBFBD><31>C<07>⺺{<7B>
<EFBFBD><17>;<3B><13>Ӌ<EFBFBD><D38B><EFBFBD><EFBFBD><EFBFBD><1D>C<EFBFBD><19><><EFBFBD> U<><17>ԇ<EFBFBD><D487><EFBFBD><EFBFBD><EFBFBD>ruJ<75>ߝ<EFBFBD>S]K<><4B><EFBFBD><07><>|M|3<>;QD<18>|<7C><>b<EFBFBD><62>?r;<3B><>̬H<12>2<EFBFBD>#3<><<3C>j<EFBFBD>h}
<EFBFBD>X <20><>ڮ<EFBFBD><DAAE>5:Le<4C>Ύ<EFBFBD>VY
<EFBFBD><EFBFBD><EFBFBD><02>P_k<5F>0n <20><><EFBFBD><EFBFBD> j<>ˆ;<3B><><EFBFBD>@<40> <0A><><EFBFBD>$)<29><><14><>}I<>C'<27>{ <09><><EFBFBD>eU<65>M+<2B><14><><04>+<2B>C0v<30><76>X<12><>FR<46>hf<68><66>"<22>ؚ\ha<68>(:n<><6E>`z<><7A><EFBFBD><EFBFBD> <20>J<EFBFBD><4A> ><3E>T<EFBFBD><54><11><>"<|8<><07>T<EFBFBD>g<><67>/0M<30>kz<>d W<><57><EFBFBD><EFBFBD><EFBFBD>J<EFBFBD><4A>z<EFBFBD>QTy<54>,<<3C><>!j<>@<40><>і<EFBFBD>ȏ<59>Yx<59><78><EFBFBD>K<EFBFBD>5<EFBFBD><35><EFBFBD>i}DV<05>9Ş!<21>$<24>c<EFBFBD>9)<0E>C<EFBFBD><43>/<2F>=<3D>w<EFBFBD>6<EFBFBD>?;<05>u<EFBFBD>R#<23>vv{wk7N<37><4E>i<EFBFBD>^<5E><><EFBFBD>i{<7B>$<24>R$qM<71>\<5C><>G<EFBFBD><47><EFBFBD>7<08><>D<EFBFBD><44><6D>{m$r0 3<><33><01><><EFBFBD>l<EFBFBD>ݻ<EFBFBD><DDBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>iK<><4B><EFBFBD>|<7C>.a2Fɘ^D<>,O<><4F>8<EFBFBD>w<EFBFBD>`<60>Gr*<2A>qX<14><><EFBFBD><17><18>^<5E><>r<EFBFBD><72>B<EFBFBD>4<>B<Me><3E><>j<12>R<EFBFBD>ߣ<EFBFBD><DFA3><EFBFBD>;<3B><><EFBFBD>s|<7C><>E<EFBFBD>e<EFBFBD><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>_U<0F>V<EFBFBD><14><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>U<EFBFBD>oCQ;|<7C><><EFBFBD><EFBFBD>G<EFBFBD><47>4<EFBFBD><34><EFBFBD>,D9<44><39>F&<26>)}<7D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>xQ<78><51>(<28><>H<EFBFBD>e!'b<><62> <0B>Z@S<>;N<>"<22>%6<><12><><13><>2<15>,<2C>A<EFBFBD>R0<52>r<EFBFBD>,<19><>.<2E>qA<><41><EFBFBD><EFBFBD><EFBFBD>\<5C>LQ=<3D>n<EFBFBD>E˅L<CB85>Ѭ<><D1AC><EFBFBD><EFBFBD> <13><>=bk'~<7E>zoK<6F>?[<5B><>hl<68>&F<>3Y<33><59><EFBFBD>><3E><><EFBFBD><EFBFBD>eo;<3B><1F><>0<EFBFBD><30>o PnS<>y"<22>2?<3F>e&ò<17><00><>}<7D>P<<3C><><EFBFBD>
<EFBFBD><EFBFBD><EFBFBD>xo<EFBFBD>#<11><><EFBFBD><EFBFBD><0E><>``<60><>`<60><><EFBFBD>H|#KA?<3F>* <0B>p<EFBFBD><70><EFBFBD>Lc_<63>w<12><>$<24><10><18>핌/e<1B><15><><06><><><D4A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!<02><><EFBFBD>j<EFBFBD>]<5D>)~tKf<4B><66>H4|jg]<5D><>b<EFBFBD><0E><>:+*Ƒ<><C691><EFBFBD>%<25>UA<55><41><EFBFBD>p*<2A>S<10>()DKB/<18>Z<EFBFBD>7캚G<ECBA9A>9r<39>G<EFBFBD><47><EFBFBD><11>&<26>i!<21>ak3D^<5E>d<EFBFBD>XJ`<60><>Á(29<32><39>8&<26>W<EFBFBD>ܮ<EFBFBD><DCAE>B<EFBFBD><42>3#<23><>"I<><12>|/zLߠ<4C>PM<50><4D><11><><EFBFBD><<3C><><EFBFBD>ӭ <0C><>#<23><>V<00><>Y<10>QX~z<19><><EFBFBD><EFBFBD><EFBFBD>/_<>G0<47> <0C>%A<1E>
<EFBFBD><EFBFBD><EFBFBD>h<EFBFBD>jB<EFBFBD>#<23><> )<29><><EFBFBD> q<7F><71><11> M0ZA@rө<72>Q<EFBFBD>̠w<CCA0>mX<6D>w<EFBFBD> )3<>$<24>)/<2F>s<EFBFBD>%<25>4XOgC<67><43><EFBFBD><EFBFBD><EFBFBD>"<22>E<>.X<><58><EFBFBD>fe<0E><05>b<08><>a><3E><><EFBFBD><EFBFBD>T<EFBFBD><0F>t<EFBFBD>}@<40><10>&<26><><EFBFBD><1A><><EFBFBD>q)Q<>`j3<6A><33>0v:<3A><14>. <0B>YG^<5E>R,h<>,<2C><05>C|<7C>G<EFBFBD>|1<>(<28>V9.<2E>=n{4*D<>:EY<45>(T<><54> I<19><00><>2<EFBFBD>1|Z<><1C><02>ܣݤ"<22><>ڷ<EFBFBD>!<21>̀Ŕw<C594>w<EFBFBD>^<5E>F)<29><>$z<>e+3<19>K<EFBFBD><4B><EFBFBD>o<EFBFBD><6F><EFBFBD><17>$<24>1<>r<EFBFBD>7<EFBFBD>$<24><><14><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>K<EFBFBD>Y]]<5D>D<EFBFBD><44>;<3B>u<EFBFBD>̵Y <16>N<EFBFBD>s?<3F><><EFBFBD>v<EFBFBD>|!<21><>N<EFBFBD><4E><08><><EFBFBD><EFBFBD>/4<>b<EFBFBD><05>y<EFBFBD><79><17> (<28><>>?<3F><>x?<3F>'4<>S<EFBFBD>˙<EFBFBD><CB99>D,Aٜ
<EFBFBD><EFBFBD>̖1<EFBFBD>J^<1B>B<EFBFBD>%ٲ$<24><0E>.<2E><>N<EFBFBD>d<EFBFBD>T,G<>8<EFBFBD>h- z<>L<EFBFBD><4C><EFBFBD>5<EFBFBD><35>
W<>u<EFBFBD><75>%<25><>%y<><18>A<><00>)<29>mG<6D>ia%<25>Iɨd쾑<04><><EFBFBD>+<2B><><EFBFBD><EFBFBD><01><13>8<>!<21><><EFBFBD><EFBFBD><EFBFBD><02>Q<EFBFBD><51>W<EFBFBD><u<> <0B><08>L <09>]G<><47><EFBFBD>8 <0A><><EFBFBD>D <0A><1E><><EFBFBD><EFBFBD>|E<><45><EFBFBD><E9B7A7>J<EFBFBD><4A>/H<><EFBFBD><E88187>(<28><1D>N<><4E>*<2A><><EFBFBD>R<EFBFBD><52>Z<EFBFBD>; <0C>};<3B><><EFBFBD>`><3E>Pc<50> TC)BG<42>- <0B>\Ih<49><68><18><><EFBFBD>:<3A>[pd<>Zp<0F>N{<7B><><14>K<EFBFBD>R<EFBFBD><<3C><>S<10>+<2B>G <0B>54<35><16><><EFBFBD>g<EFBFBD>&Cvk
<EFBFBD>tG<74>"<15><1C>"]`?h<><68>W<><57><EFBFBD>Y<EFBFBD><59><00><><EFBFBD><EFBFBD><EFBFBD><12><><EFBFBD><EFBFBD><15><><EFBFBD><EFBFBD>2<EFBFBD><32><EFBFBD>1G<31>u^H<><04><>*<0F> <0C><><EFBFBD> J4<01>-<2D>0<EFBFBD><19>c<EFBFBD>t%IJҢ<C4B2><D2A2> @#Qd<51>h<EFBFBD>9c<39><63>R<>,_<>3<EFBFBD>|<7C><10><><EFBFBD><EFBFBD>ȤX<C8A4><58><EFBFBD>R<EFBFBD> <0B>:椚c{I~9D2:I!<21><><EFBFBD>9<EFBFBD>;q<><71><EFBFBD>\J<7F><4A>f<EFBFBD>$<24>\<5C><><73><C8B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
N<14><02>S<EFBFBD><53>e29;{)<29>h<EFBFBD><68><EFBFBD><EFBFBD><EFBFBD><<3C><><EFBFBD><EFBFBD>Az<>CZ<43>i<EFBFBD>Nz<4E>/q4
<EFBFBD>}<7D><0E><03><><EFBFBD>;m~<7E><><EFBFBD><EFBFBD><EFBFBD><03>)"<22><>'<27>t<EFBFBD>r<><72>m<EFBFBD>ak_ۏ~<7E>F<EFBFBD><<3C>B<1D>}`<60><>B<0F>6"o<04>asoc<6F>oM<>yxF1@<40>p<1C><><[fY<66>â?<03><><EFBFBD>/<2F>EwI
^<5E><><EFBFBD><EFBFBD>G3<47><33><EFBFBD><EFBFBD><EFBFBD>06?+Gֆ<>g;_<>?2<00><>P3<50><00> <0B>1<08> <0C><>^<5E>s<EFBFBD><14>('<27>&<26>k<EFBFBD><18>,<2C><>s& `<60>R<EFBFBD>R<EFBFBD><52>a<EFBFBD><61>a<1D><>2<EFBFBD><32>+<2B><>/2<>><11>?<1A>9<EFBFBD><39><1A><>.Ɍ5<C98C><35><EFBFBD>L<EFBFBD><4C><12><><EFBFBD>Q<EFBFBD>KTr=<02><><EFBFBD><EFBFBD><EFBFBD>_<EFBFBD>u"Ad<41><64><EFBFBD><EFBFBD><EFBFBD>}q<><71>c1M̄m[<5B>R<EFBFBD><52><EFBFBD><EFBFBD><EFBFBD>SU'<27><>& <06>$<24><0F>&&<00><><EFBFBD><17><02><><EFBFBD><EFBFBD>`<60><>e<EFBFBD><65>Ԯ<EFBFBD>vFp<02><><1F><>W<1B>3<EFBFBD><33><EFBFBD> <0B>o<EFBFBD><6F><1B><1F>H<EFBFBD><15><>0g<>{<08><><EFBFBD><EFBFBD><04>Н<><10><<3C><1A>B<><42><EFBFBD>[$#<23>`<07><> Z<><5A>^D<><18>BV<42>Ï<EFBFBD>7 J<>I<EFBFBD>t'<27> <0A>^G<><47><EFBFBD><EFBFBD><03> <0C><05>*<2A>Z<EFBFBD><5A><EFBFBD>J<EFBFBD><4A><EFBFBD><1D><>Ǟ<19>@<0F>5<><35>l<EFBFBD><1D>ˤ<><CBA4><EFBFBD><EFBFBD><EFBFBD><63>4b<34>#4` X<><58><EFBFBD>l<1E><><06>)<29><><EFBFBD><EFBFBD>~<7E>h&yo8<10><>Wr<57><72><EFBFBD>B E<>,t6Z<18><>LD<4C><EFBFBD>T@<40>q<1B>L<EFBFBD><4C>2g<32><10>`<60>M<EFBFBD><4D><10><><EFBFBD>skcZ<63>('<27><>-<2D><>#{K<>f<>o&<26><><EFBFBD>a<EFBFBD>8<><38><EFBFBD>t<EFBFBD>¦w8[<5B>ǵ<><C7B5><EFBFBD>vJ<76><4A><EFBFBD><EFBFBD>>R|.<2E><><EFBFBD>*<08><18>)yq<79><71>><3E>b 3`M<0E>~&<26>s<EFBFBD>_<EFBFBD>LSǍ{t<>;<3B><><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><7F>2<EFBFBD>]<5D><> <0B><03>Q<EFBFBD><51>kx`苞<>6~:JԜ<4A><D49C>><3E>BRU <0C>uFI`mGc<47>{p<><70>i<07>"<22>@X<><0E><>1|<7C><<3C>+M<>^ <0A><>,<2C><><EFBFBD>x5Pmw<6D><EFBFBD>-a<02>%Ö1I<31><0E><4F><DC9E>+<2B>+?<3F><0F>W<EFBFBD><57><EFBFBD><EFBFBD>T+kd<>
<EFBFBD>Ӡ<EFBFBD>|<7C>l<12><04>H<>y<EFBFBD><79> <1B><>\<16><>+<2B><>0<EFBFBD><30><EFBFBD>u<EFBFBD><75><EFBFBD><1F><><EFBFBD>x_~x<>{<7B><0F>w<EFBFBD><77><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><01>S<EFBFBD><14><><EFBFBD><18><>'<27>/<2F><>
<EFBFBD>@{<7B>^<5E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <03><>1<><31>= I<><49><EFBFBD><EFBFBD><08>|a<>~<7E>W<EFBFBD>F<EFBFBD><46><EFBFBD><03>`<60><><EFBFBD>B<EFBFBD>W<>u<EFBFBD><75>q<EFBFBD><71>ˬ<14>9<EFBFBD>cܨD#<23><18>p<>0x<06><>)<29><>ͥ<EFBFBD><CDA5>B<EFBFBD>=&<26><><EFBFBD><EFBFBD>s<EFBFBD>
<EFBFBD>3<EFBFBD><EFBFBD>E<01>@x<>#<23><><><CEA2><EFBFBD> <0A>A] <09><>i<EFBFBD><69><EFBFBD><EFBFBD>.<2E>([J{RȰ<>Q<EFBFBD><1D><>7<><37>"ɺlcۄ<63><1A>q<EFBFBD>qBOy._<><5F>hq I<>6<EFBFBD>ؕ><3E>wDcR<07>w<EFBFBD>`]3|<7C>EMJ;<3B>[<5B>*<2A>t<EFBFBD>wQ<>CG<13><>\Yl<59><04>b<EFBFBD><62>T<EFBFBD>/ AQ<41>yx<79>v<EFBFBD>fc%<25>!<21><>}@<40><><EFBFBD><EFBFBD>6
<EFBFBD>Z}<7D>=<3D>Y5<><35>VRÓ<52>.6d^qB<71> *<2A><> <0A>k\<5C><03>n<EFBFBD><6E><EFBFBD>Zs<5A><73><4A>*<2A> <02>f<EFBFBD> <09>n:v<10>z<EFBFBD><7A><04>W<EFBFBD>tS<74>b5<18>ʡfˢ&<26><>[<5B><>/<2F>9( <0C><>:<3A><><EFBFBD><05>(<28><16><>0b<30><62>&<26>|r<>&<26>Z9+1F<31><46>S<EFBFBD>`<60>ij%<25><>'<27><><EFBFBD><EFBFBD>8+<E<01>* M<><4D>(jt$<24>bL<62><4C><EFBFBD>z,9B<39>-ۖI<DB96><1E>|<7C><><EFBFBD>p
<EFBFBD><EFBFBD><0E>;1<><31>;G़<47><E0A4BC><EFBFBD>L<EFBFBD><4C><EFBFBD>聵 6_<01><<3C>-<00>Fx<46>G<17><>?<3F>K<EFBFBD>h<EFBFBD><68>Ӌn<D38B><6E><EFBFBD>V<EFBFBD><56>@<40><>IT<49>$<1F>$S<>]<1E><03>pa<70><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><12><>G<EFBFBD> P:+<2B>* e<><65>|<7C>D<0F><>!<21><> <0C>5#<23>5<18><><12>W<0F><><EFBFBD>3<EFBFBD>V}C<>byk'kv4<76><1D>^<13>"<22><><EFBFBD>@<40>)<29><>n<EFBFBD><6E><EFBFBD><7F>J)<29><><05>#<13><>h<EFBFBD>uˢƵt<C6B5>O <0C><><EFBFBD>#)<29><>(`A1<41><31><EFBFBD>f*<2A>5<EFBFBD>Fc<46>^uw<75>MX<4D><58><EFBFBD> <0B><>wYɔd<C994><64><EFBFBD><13><><EFBFBD>\+<2B>f<EFBFBD>{8<1D><><EFBFBD><EFBFBD>Q<EFBFBD>j<10><><EFBFBD>2]<04><>/h<>B<EFBFBD><42>c<>3a<33><18>Ex3<78><33>F<>*<2A><>b<>c% E`<60><> <0C><EFBFBD><E4BA8F> <09><><EFBFBD><EFBFBD>c<EFBFBD>><3E>L<16><><EFBFBD><EFBFBD>*<2A><><EFBFBD>۞<EFBFBD>z<EFBFBD>m<EFBFBD>`p]ٔ<><D994><><C590>H<EFBFBD><48>c<EFBFBD>9<EFBFBD><39>J<EFBFBD>W<EFBFBD>wU:0{<7B>59<01>;<3B><00><><EFBFBD><EFBFBD><EFBFBD>}<7D><14><><EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD><EFBFBD><EFBFBD>T<EFBFBD><54>;;<3B><>N<EFBFBD><4E>Yf<59>Pz-9<><39><EFBFBD>i<EFBFBD>S<EFBFBD><53>\<5C><>w<EFBFBD><77>m<EFBFBD>%1<>b<EFBFBD><62><EFBFBD>\<5C><>j<EFBFBD>Рi<05>q<EFBFBD>U<EFBFBD>l<EFBFBD>8<EFBFBD><38>^fp<66><70>2w<><77>P<EFBFBD><50><EFBFBD><EFBFBD>9<EFBFBD>f<EFBFBD>oҘW*<2A>N\<5C><>Y<EFBFBD>K<EFBFBD><4B>Y<EFBFBD><14>+<2B>GQf&<26>BU<42><55><EFBFBD><EFBFBD><EFBFBD>Z<EFBFBD><5A><EFBFBD><EFBFBD>hϢ<>4<EFBFBD><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j<EFBFBD><6A><EFBFBD><EFBFBD><EA98A7><EFBFBD>_V@TK<54><02><>%.&<26><><01><> <0B><><EFBFBD>vPxc<78><63><EFBFBD>.<2E><>RL<52><4C><EFBFBD>ڂ zޱN<DEB1><4E>nʹC<CDB4>z<EFBFBD>ȥ<EFBFBD><C8A5>ӓ<EFBFBD><D393>p#/`<60><>`<15>yF9=<3D>/<2F><>*2<> i[<5B><>b"<22><12>p<EFBFBD>d"<<3C><><EFBFBD>{<7B>PT<50><54><EFBFBD><EFBFBD>V<EFBFBD>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD>>8<>$<24><> <0B>4Vr<56><72>)<29>O}`E<><14><><EFBFBD><EFBFBD>tI܌:
<EFBFBD>H"<22><>X<EFBFBD><58>U<EFBFBD>2<EFBFBD>Zas<61><73><EFBFBD><EFBFBD>ߝDy1<79>Z<EFBFBD>M<EFBFBD>8<EFBFBD>BV<42>N<EFBFBD>,?<3F><><EFBFBD><EFBFBD> <09><>,<2C><><EFBFBD><10>Y
<EFBFBD>;<3B><>?S<>}<7D>
ϩH\<5C>IF<49><46>N2<4E>3<EFBFBD>W<><57><EFBFBD><EFBFBD>L<EFBFBD><0E>}T<><54>+
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><13>8<EFBFBD><38><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <0B><><EFBFBD>J<EFBFBD> <1C><><EFBFBD>+<2B><15>7<18>Q<EFBFBD>)<29><1C>Ld@<40>G<EFBFBD>ܔ<EFBFBD>t <09><>C<EFBFBD><43><03><> T L|<7C><>
Ͱ&<26><>0<EFBFBD><30><EFBFBD><04>`S=eFP<46>MU?5/<2F>b'BɊ<42><C98A><EFBFBD>&<26><><EFBFBD>/<2F>n5<6E><EFBFBD><E0B7AA>Ӓ<>:4,<2C>d<EFBFBD>D~a)<0E><>F<EFBFBD>܆0<DC86>Y<><44><CE83>wo]<5D>AUQ<55>6S<36>j<EFBFBD>B<EFBFBD><EFBFBD>ɍ<EFBFBD>R<EFBFBD><52>*ZQ<5A>P/Foi<6F>#<01><>z<EFBFBD>m|<7C><>kJv<4A><10>2<EFBFBD>T}<7D>O<EFBFBD><4F><EFBFBD><EFBFBD><EFBFBD>c;<3B><>庰v<1C> <20><><EFBFBD><EFBFBD>B::5<1E><><EFBFBD>xDy<44><79>O<EFBFBD>M@<40><>H m<><6D>|<7C><><EFBFBD><EFBFBD><EFBFBD><15>L+<2B>a<EFBFBD><61><EFBFBD><EFBFBD><EFBFBD><EFBFBD>P<EFBFBD>+ <0A>34<12>Պ&<26>?<3F>Q<><51><EFBFBD>><3E><><EFBFBD><EFBFBD>*Ve<56><65><EFBFBD><EFBFBD>f<EFBFBD>~<7E><>z<EFBFBD><7A><EFBFBD><EFBFBD>;<3B><>m<EFBFBD>~d[<5B>v<EFBFBD>;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>8<EFBFBD>76<37>N&<26><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֱ<EFBFBD><D6B1>UU#<23><>|<7C><><04><><EFBFBD><EFBFBD>N<EFBFBD><06>6<EFBFBD><36><EFBFBD><EFBFBD><EFBFBD>ɑ<EFBFBD>Z[Q<>`Cq<07>r<EFBFBD><72>c<EFBFBD>ϫq/U<08><><EFBFBD><EFBFBD>U9^)<13>6_*Pv<><76><EFBFBD> *w<<3C><><08>q<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD> <0B>Mhjx~<7E><><EFBFBD>˓<EFBFBD><CB93>a<EFBFBD><61>k<EFBFBD><6B><EFBFBD><EFBFBD>O<><02>;
1E;G0<47>g<EFBFBD><67>{<7B>`<60>niK<69><4B><EFBFBD><1F>@<40><> :<3A>bLa<4C><61>dt<64><EFBFBD><E381AB>Y<EFBFBD><59>d<EFBFBD>*Q<>Q<EFBFBD>i%
p<EFBFBD>U<EFBFBD>Ga<EFBFBD>n<EFBFBD>Uꭥ<EFBFBD><EFBFBD>W<><17>$k<><6B>7<04>f|2Q1u<31>jOYq<59><1F><><EFBFBD><01>ܜ<EFBFBD><DC9C><1D>U<EFBFBD><1C>F<EFBFBD>W<EFBFBD>=<3D><><EFBFBD><EFBFBD><EFBFBD><07>/<13>/u<>œmG<6D>(<28><><EFBFBD>dn<13>{<7B><>_R<><52>k<EFBFBD>F]<5D>`T<> <20> <0C><>$<24>>I<13>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Й*^<5E>C<EFBFBD><06>(<28> Zq<>Ы5<D0AB>H<EFBFBD><48><17><><02>1<><31>}<04>[IP5<50><35><EFBFBD><EFBFBD>M<06><><EFBFBD>G<EFBFBD><47><EFBFBD><EFBFBD>m:<1D>:<12>0<EFBFBD><30>Wn<57><6E>|Z<><5A><EFBFBD>w<EFBFBD><77><EFBFBD><EFBFBD>+<00>9<EFBFBD><04>"<22>`#L{<7B>u<EFBFBD>i<13>h<EFBFBD>t}a<03><><05>R<EFBFBD>l<> F<><46>-`q <0A>C,s<>H <09>`+\<5C>(<28>d<EFBFBD>j`<60>u0<75><30><EFBFBD><EFBFBD>,(<28>7g?<3F>"T<>MHJ<48><4A> <09><>9"<22><><EFBFBD>o<EFBFBD><6F><EFBFBD>ǃ[O<>ө<EFBFBD><D3A9><EFBFBD>zG<7A><35><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>M<EFBFBD><4D>d<EFBFBD><64>t1*<2A><>8<EFBFBD>r<>_#M<1C>K<EFBFBD><03><>M<EFBFBD>/<2F>G<47><EE94BD><EFBFBD><EFBFBD>LC<4C>%M<><0F><1C>"<22>̬<EFBFBD><CCAC>V<EFBFBD>[<05>m<EFBFBD>C <0B><><7<>k<EFBFBD><6B><EFBFBD>ȅ<13><><EFBFBD><EFBFBD>a<15>-<2D>T<EFBFBD>EM<45><0E><>}.z<>'<27><>I9ZU<5A>7<>X<EFBFBD><58><EFBFBD><15><>ע{<7B>ӣ<06><><EFBFBD><EFBFBD>˸t<CBB8>N<EFBFBD>ۺ<EFBFBD><DBBA><EFBFBD>D;<3B>ey#:<3A>x<EFBFBD>#<23>-⯙<><E2AF99>:<3A><1C><><EFBFBD><02><><EFBFBD><EFBFBD>mr<6D>ub<75>"ǓIu t<>sU<00><>ʡ<EFBFBD>
<EFBFBD>Spt<1B>L<EFBFBD><4C><EFBFBD><EFBFBD><]θ<>O<><4F><EFBFBD><EFBFBD><EFBFBD>7<EFBFBD><37><EFBFBD><EFBFBD><EFBFBD>yɡ<79>RW<06>I:<3A>[<5B><><EFBFBD><EFBFBD>.X<>o<EFBFBD>5t<35><74><EFBFBD> 251<35><31><EFBFBD><EFBFBD>7C<37><43><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 3~<7E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><7F><>|U<>Ju<12>ɥ<>Ȳ<EFBFBD><C8B2><EFBFBD><EFBFBD>;x,<1F>ה83q-<1E> ͵ɪW-<2D><>c<EFBFBD>X6<58> <0B>n?J<>X<EFBFBD> <09>ORm@t6z49/<2F><><EFBFBD>><3E>T<15>zOj<4F><6A>z=<3D><1C> <11>q<EFBFBD>'<27>R<EFBFBD>e<EFBFBD><65> 5<><35><EFBFBD>*7<>55<35><35>UY<55><59><EFBFBD><EFBFBD><12>V<17>A<EFBFBD><41>W<EFBFBD>f6
<EFBFBD>X<0F><><EFBFBD>9^<5E><05><><EFBFBD>Z<EFBFBD><5A><EFBFBD>k
<0E>M4dՂKK]_<><5F>g<EFBFBD>ע2<4B>f<EFBFBD><66><EFBFBD>)4zZ0<5A>
<EFBFBD><EFBFBD>h<EFBFBD><19>&<26>nl<15>BKE%5VL<56>'Yy<59><79>+X<>L<EFBFBD><12>#<23><>4,<2C>=<3D>D<><44>;<3B>N<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>GhFϖ#D<>g<EFBFBD>{<7B><01>`M<>%j<>jF<6A> <20>+*<00>z!D˒<>T<>Vʁ>P<><50>'*p<><70>*<2A><>r<EFBFBD>=z<><7A><01><EFBFBD>8<EFBFBD>4<EFBFBD>_;<3B><><EFBFBD>ʟ%h<><68>J><3E><><EFBFBD>Z#.-Ѝ<>E<>[<5B>inU]<5D><><01><>><3E><>ڸҤ<DAB8><15><>i^<5E>u;A<>Z<EFBFBD>P?<3F>2e!nըć<D5A8><C487>[S<><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD>q8<71><38>6<><03><><EFBFBD>Iڨf<DAA8><66>]<5D><><EFBFBD>#<23><><EFBFBD><16>u(I<>M<><4D>
<EFBFBD>ij<EFBFBD><EFBFBD><EFBFBD>Fg<EFBFBD><EFBFBD>6<EFBFBD>B<07><>ck<63><6B>YS<59>Ӄ><3E>x<EFBFBD><78> MQ$<24>1<EFBFBD><31>gڃŤ--<2D><>(<28><><0E><><EFBFBD><EFBFBD>$<24><><EFBFBD>z1<7A><31><EFBFBD><EFBFBD>c<EFBFBD><63>}<7D><>6\Sן<53><D79F><18><>6C<36>z<><1C>^i<><13>ǩj;<3B><>9<EFBFBD><07>Z<EFBFBD>s*q؞<71>
<EFBFBD><EFBFBD>A<><12>r%<25>jꧾ<6A><EAA7BE><17>ѽ<EFBFBD><08>q<EFBFBD><14>u<EFBFBD> -<2D>I HCzM<7A>` <0B>ޤf<>/<2F><>m<EFBFBD><6D><EFBFBD>s=:4.xMʉPv<50><76>06<><36>k<EFBFBD>F<EFBFBD>:<3A>ͤ}1<>&3{<7B><>>`<60><07><><EFBFBD>YK<59><4B><EFBFBD>߽:<14>]<5D>A<>?<3F><><EFBFBD>&7<>:<3A><>𔲄<EFBFBD><F094B284>NuO _<>K<EFBFBD><1C>Æ$?G<><47>k<><6B><EFBFBD>;<3B>*<>$<00><1B>P֕ `bܭ<62><DCAD><EFBFBD>d<EFBFBD>w<EFBFBD><77>^<5E><><0E><>aL<61>A<EFBFBD>$;<3B>`W<><57><00>/<2F><><EFBFBD>Jz<4A>&`<60><14>@<40>ڪuPUR<V<><56>d<EFBFBD>[<5B><>H<EFBFBD>?<3F><>u<EFBFBD>|<7C><>A<EFBFBD><41><EFBFBD>t<EFBFBD><74>?<3F>7ˤ6 <36><DB91>
\b<><07><>CIz\F<><46>ͥ<EFBFBD>=;<U<0F><>}[*<2A><>0<EFBFBD>5F<35><46><EFBFBD>b<EFBFBD><62>9󂤫2<><32>,<2C><><EFBFBD>v9&em<65><6D><EFBFBD>Vf1<>J<EFBFBD>M<EFBFBD>`<60>i]<5D><><EFBFBD>6<1F><><EFBFBD><EFBFBD><EFBFBD>F<>W<EFBFBD><57>ج<EFBFBD>(߿y)<29><><EFBFBD>K5H<35>8?<3F>Z<EFBFBD>ׂ<1E>p<EFBFBD><18><02><>qW0<><30>l9a<39>j=)<29><06><><EFBFBD>w\o֜͸<D69C><CDB8><16>^<5E><><1C>><3E><>S<EFBFBD>n<EFBFBD>2H<32>|<7C><><EFBFBD>e<EFBFBD><65>V@<40>Her[<5B>I{<05><><12>=<3D><><EFBFBD> <0A>.<2E>-kӾ<1E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ea*<2A><>kS<11><><EFBFBD>>dYÿ<59><C3BF>\Ʌj<C985>Y<EFBFBD><59><EFBFBD><EFBFBD>z<EFBFBD><16><>+*uW<75>:N<><4E><EFBFBD>l<EFBFBD><1B>Y<EFBFBD>5Nyk<79><6B><EFBFBD>K<EFBFBD><1C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'<27><>W<EFBFBD>8<EFBFBD><38><EFBFBD>N<EFBFBD><4E>0<07>cOms(<28><>><18><0F>E<>Z<EFBFBD><5A>iCEӘ$|<7C><><EFBFBD>-F<><1B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>"<1D><><EFBFBD><EFBFBD><EFBFBD>o<EFBFBD>0<EFBFBD><17>t<EFBFBD><74><EFBFBD><14>o<EFBFBD><6F><EFBFBD><EFBFBD><EFBFBD>Kb<4B><>_<EFBFBD>vN <20><>V<EFBFBD>'<27>m<>ϻ<EFBFBD><0F><13>gu<67><75><EFBFBD>]?*3=c<><63>
8<>:<3A><>}<7D>
<EFBFBD><EFBFBD>ã<EFBFBD>*
}૾ݍ<E0ABBE>[0О1<>YۣX&<26><>.<2E>@0%<25>ku<6B><75>H/<2F>b<EFBFBD><62>S<EFBFBD><03><>ph<70><EFBFBD><7F>1<EFBFBD><31><EFBFBD>u<EFBFBD>><3E><>SXK<58><4B><EFBFBD>Cf<05>I<02>ߕ<EFBFBD><DF95><EFBFBD>'\d<>"R<><52><EFBFBD><EFBFBD>t<EFBFBD><74><EFBFBD><EFBFBD>Mdl<>k<EFBFBD><6B><EFBFBD>X<EFBFBD>/"<22><><15>(<28><><EFBFBD><EFBFBD>D6<44>ٶ<EFBFBD> <20>ө<><D487>M<EFBFBD><4D><EFBFBD>e<EFBFBD><65>P<EFBFBD><14><>:Qxk<>Ͻ<EFBFBD>vM<76>['<27><01><><EFBFBD><EFBFBD>P<EFBFBD><01>t_e<5F>9<EFBFBD>_<EFBFBD>(aD ,<2C>j]<5D>RC: 5TW%h<>n_<1B><>jTþ<54>0<>~<7E>G%<25><><EFBFBD><EFBFBD>5<EFBFBD>`<60>+P'<27>D<EFBFBD><44><EFBFBD>t|R;-<2D><><EFBFBD>H~<03><>4<EFBFBD><34>P<><50>"<22><>q<EFBFBD><71><EFBFBD>#u<03>C<11>ᐨю<E190A8><D18E><EFBFBD>*<2A><>b<EFBFBD>߲<EFBFBD>a<EFBFBD>H<1C>H<><48>t<EFBFBD><74><02>TiVu<56><75>I<19>_S;<3B><><EFBFBD>ea
jK<><4B>p<EFBFBD><70><EFBFBD><11>ƾJ}<7D>wE<77>\<5C><><1D> <02>w><3E><> <20>rQ<72> J<>)<29><0E><>qDZ<44><5A>tCNl/dC{<7B>:<3A>to<13>hn<68><6E><EFBFBD>2<EFBFBD><32><EFBFBD><EFBFBD><EFBFBD>Sf<>5<EFBFBD><35><07><><EFBFBD><1A><><EFBFBD><EFBFBD>Ƭ<><C6AC>:<3A><><EFBFBD><EFBFBD>ZQ<5A><51>lfkk<6B>P<EFBFBD>ˎ,<2C>Z<EFBFBD>U$l<>t<EFBFBD>jp|QvP<76>TrD߂ଅ <0A>SIVf<>k?<3F><><EFBFBD>ݨ<EFBFBD>:<3A><><EFBFBD><EFBFBD>[8<><38><EFBFBD> <0B>] <0B><><EFBFBD><EFBFBD><08>E<EFBFBD><45>d<EFBFBD><64>y;<0E><><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>D<EFBFBD><44>{g{<04>ȶ<EFBFBD>4X<06><13>t,<2C><><EFBFBD>[ztn<74><6E>Ƶ<>E<EFBFBD><45>]<5D>c<EFBFBD>E<EFBFBD>u<EFBFBD>wu<77>b<EFBFBD><62><EFBFBD>Ul<55><6C><EFBFBD>pE5<45><35>S<EFBFBD>W+T<>_(<28>k<EFBFBD><6B><EFBFBD><EFBFBD>x<EFBFBD><78>1<EFBFBD><04><><EFBFBD>j?<3F><08>G<EFBFBD>2kok<12>>m<>7ㆱR<E386B1><52><64><D8A6><EFBFBD><EFBFBD><EFBFBD>IV<49><56><EFBFBD><EFBFBD><0F><>JHRK!<21>vPr<><72>bB@<40><>(a<>U<EFBFBD><08><>k<EFBFBD>4<EFBFBD><34><EFBFBD><EFBFBD>,3ޒ>N<>ƫ<EFBFBD><C6AB><EFBFBD>G<><47>z]k-Fϳ<46><CFB3>VTU<54>|<7C>Jv<4A><76>K n<><6E>\=<3D>d<EFBFBD><1D>#nhD<08>|s<>;(<28>':ց<>J<EFBFBD>պ<EFBFBD>cu<><75><EFBFBD>Z<EFBFBD>`<60><><EFBFBD>[T<><54>f<EFBFBD><66><EFBFBD><EFBFBD><EFBFBD>F<EFBFBD><4E>A<EFBFBD>M<EFBFBD><4D>?lsլu<D5AC><75><EFBFBD>.<2E>`<60>T<07>l<EFBFBD>`<60><>M<1F>&<26><>(<28>V<1E>Vv ު<C28D>qTA6^<5E>:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><7F><EFBFBD><EFBFBD><04>Gg<47>C<EFBFBD>0<EFBFBD>b<07>aJ<61>i<EFBFBD>B<EFBFBD>'7lq<6C>:<3A>ꨚj<EAA89A>v<EFBFBD>2<EFBFBD>L'<27><>!<21><><EFBFBD>Jh<4A>, <0C><> <0C>g<EFBFBD><67><EFBFBD><EFBFBD>
~<7E>6<EFBFBD>|=k<><6B><EFBFBD><EFBFBD>yf 4<>mS W<>}<7D>&Wdk<64><6B><EFBFBD><EFBFBD><EFBFBD><EFBFBD>]<5D><>D,l<>v<EFBFBD><56>φS<CF86><B<><42>[<5B><><EFBFBD>*V<1D>3<EFBFBD>U-+<2B><>q[ <0A>,V<>؛k<D89B><6B><EFBFBD>C<EFBFBD>c<EFBFBD>8<EFBFBD><38>k<EFBFBD><6B><EFBFBD>Yt\+<2B><>|<7C>8Ƨ8gb<67><62>pdu<04>[<5B>_<EFBFBD>ڠ<0E>VjW <09>/<14>-<2D>U ag"<22>&5*<2A><12><>5<>[I<><49><EFBFBD>i^<5E><><EFBFBD><EFBFBD><12><12><>K<EFBFBD>9<EFBFBD><39><EFBFBD>+t<><74>suZ<75>61:<3A><><EFBFBD>n<EFBFBD>ix<69>k<EFBFBD>><3E><08>U_;<3B><><EFBFBD><EFBFBD>:Ϣ9<CFA2><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><0E><>?2r<0E><>HZ<48>y<EFBFBD><79>~ պ>k*k<><6B><EFBFBD><13>5<>6?<<3C><>y<EFBFBD><79><EFBFBD><13>Ɠ#<23><><03><>ә<EFBFBD><D399>p8+<2B>ê<EFBFBD>=<3D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>g<EFBFBD>QUP<55><50> <0A>><3E><><EFBFBD>)<29>l)<29>5Qu<51><75>T<><54><EFBFBD>Eѯ,1<> <0C><>y<19>)<29><>?<13>n6<6E><03>C!<21>E<EFBFBD>C<EFBFBD>:q<>4<EFBFBD>ص<EFBFBD>[<5B>B<EFBFBD><42><EFBFBD><EFBFBD> <0C>-<2D>%<25>
<EFBFBD><EFBFBD> <0C><>Q<EFBFBD><51><EFBFBD><EFBFBD>9<>a<EFBFBD>N<EFBFBD>@<12><>N<EFBFBD><4E>#<23>ܛ<EFBFBD>ؗ3<D897>}E$N<1B><>Ey#1<>a<EFBFBD>L<EFBFBD><4C><EFBFBD>I<EFBFBD>-?<3F><16>Cq<43><71><EFBFBD> <0C>S<EFBFBD>SEcB <0C><05><>#<23><><EFBFBD><EFBFBD>C>|<7C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42><EFBFBD>|<7C>^<5E><><EFBFBD><EFBFBD><EFBFBD>!<21>R<EFBFBD><52>5jֳ<16><>V^<5E><><EFBFBD><EFBFBD>]`a<>^ وմ_<>t<EFBFBD>+%-M<><4D>e<07>\gǧq+)<29><i<>~<7E>pah<61><68>0<EFBFBD><30><EFBFBD>Ѧ<EFBFBD>|R<><52>{+:-<2D><>V<EFBFBD><56>53{<7B><03><>](S<><53>*<2A>{1nf~ɸ_<0E><><EFBFBD>K<EFBFBD>w<EFBFBD><77><EFBFBD>]<5D><><EFBFBD><EFBFBD><00>Zt<10><><EFBFBD><EFBFBD><EFBFBD>[<5B><><EFBFBD>P<EFBFBD>?<3F><>3<EFBFBD>+(<28>%&y<>z<04><>O <09><12>3<EFBFBD><33><19>'P<0F><>w<EFBFBD><U:<3A>G<EFBFBD>ZO8<>Z<EFBFBD>&k}<7D><18><> <0B><>j<EFBFBD>L<EFBFBD><1A><><EFBFBD><EFBFBD>hK?<3F>h<EFBFBD><68>-Zp<5A>F
t<EFBFBD><07><><EFBFBD>߭PDG Jl/3<><33><EFBFBD>۽<>f<EFBFBD>й<EFBFBD><D0B9><EFBFBD><EFBFBD><08>+V<>[]<18>Q<1B>&u<>IYz:<3A><>Ȫߥ<C8AA><DFA5><EFBFBD><15>^<5E><>K.<2E><> Xa<58>oi<6F><69><EFBFBD>
Z<>6<EFBFBD><36>ТKd<4B>#<23>m<EFBFBD><6D>nvy<76> <20>a<EFBFBD>5 <0C><1B><>L<EFBFBD><4C><EFBFBD><EFBFBD><EFBFBD>ieG<65>w5ʳ<CAB3>Q^<5E>dՕ<64><D595><EFBFBD>'/<2F>שЯ<D7A9>%e<><>#PKݯ0<DDAF> ^<5E>sw:<3A>]<5D>X<EFBFBD><58>y<EFBFBD>vo<76>yn<79>@<40><>"Vv<56>(t<><1D>&<26><>0<EFBFBD><30>Q9<51>jq;<3B><>6<06><EFBFBD><7F>Z<EFBFBD>2<EFBFBD><32>j<EFBFBD>F7hc<68><63>j۠Mݶ<4D>J<EFBFBD><4A>͛kx<6B><1C><>VS<>&>b<><62>֤u'<27>%j<>F<EFBFBD><46><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>j)<29>V<EFBFBD><56>'<27><><1D><><EFBFBD>~=<3D>.&<26>><3E>τ<15>WsJU}<03><>J <0C><><EFBFBD><EFBFBD>L<EFBFBD>&<26>+<2B><>|m nM<6E>C<EFBFBD>ھ񶋶<DABE>F<EFBFBD><46><EFBFBD><EFBFBD>^<5E><><EFBFBD> <0C><>#W<>z<EFBFBD>U
<13>U<EFBFBD>N<EFBFBD><4E> <09><><EFBFBD>_<>!@<40><><EFBFBD>"<22><>ڐF<DA90><46>O<EFBFBD><4F><EFBFBD>LG3@<40>=DM<44>b<07>P<EFBFBD>5<EFBFBD><35> <09><>aY<61><59>[<5B>⎬m<E28EAC>v O<><4F><<3C>]<5D><>)<17>soS<1B>j<EFBFBD>Z<EFBFBD>/]<5D><><EFBFBD><EFBFBD>v<EFBFBD>ǽT%<25>:<3A><>)c<> <0A>v]<5D>Eb<45><62><EFBFBD><EFBFBD>ӛ*<2A><><EFBFBD>=K<>O)<29><>)<29><12><1D>-<2D><EFBFBD>]<5D>L<EFBFBD><4C><15><>7<EFBFBD><37>ͨ.<2E> <0B><>z<EFBFBD>.j<>?8T<38><54>,<2C>:<07><>a<EFBFBD><16><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>hg<68>
<EFBFBD><17><>H<EFBFBD>#[T5$<24><>޶L<><4C><18>z4ʃ<1B> <0B>)<29>Lu<1D><>x<EFBFBD>;<17><><EFBFBD><EFBFBD><EFBFBD>;TMe,<2C><>{}4b,<2C><><EFBFBD><EFBFBD>]@<40><><EFBFBD><0F><>u8<06>3n<33>\W<> <0C><><EFBFBD>t<EFBFBD><74><EFBFBD><EFBFBD><18><><EFBFBD>E<EFBFBD><45><EFBFBD><EFBFBD><1E><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Gx<47><78>ӟ<><E1A7BE><EFBFBD>]<5D><><EFBFBD>~f<>I|<7C><>P<EFBFBD>|<7C>s<15>H@N*E<><45>W<EFBFBD>z<EFBFBD> nSV<53>:C<>^<5E>_^<5E>B<EFBFBD>"<22>j<EFBFBD><6A>p<EFBFBD>t?<3F>y<>`<60><> r<>B<EFBFBD><42><EFBFBD><EFBFBD><EFBFBD>+<2B>c<EFBFBD>B<EFBFBD><12>^<18><><EFBFBD><EFBFBD>RM<52><4D><EFBFBD>:+<2B><><EFBFBD><EFBFBD>O*<2A><>Yxm66:<3A><00>72r¿<72><C2BF>R<EFBFBD>l@>k<>1<EFBFBD>U<EFBFBD><55>_4 <09><>;%<25>X<><58><EFBFBD>р<EFBFBD><D180>%<1B><><EFBFBD><EFBFBD>l<EFBFBD><6C>A<EFBFBD><41><18><10><>E<>c<><63><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>_f<5F>}<7D><>Ayޞ<79><DE9E><EFBFBD>,.<2E><><EFBFBD><EFBFBD>bW<62>9<EFBFBD><39>6n=};<3B>8Q<><51><EFBFBD>t<EFBFBD>3<EFBFBD><33><EFBFBD><EFBFBD>i<EFBFBD>sj<73>hp<1D><><EFBFBD>1j<31><6A>C<EFBFBD><43><EFBFBD><EFBFBD>5;<3B><><EFBFBD><05><>o<EFBFBD><6F>S}o俖<6F><E4BF96>o<>ܐ߰v<DFB0><76><EFBFBD>Zzk<7A>X<>c<EFBFBD><63><EFBFBD>By<42> <09>w<EFBFBD><77><EFBFBD>xN<17>@<40>Za<>Ex<45><78>c& <20><>/<2F><>v<EFBFBD><76>D<EFBFBD><44><EFBFBD><0E>'<15>j4<19><>@<40>$<24>x<EFBFBD>W<EFBFBD><08>?<3F><>1<><1B>o<><6F>]<5D><><EFBFBD><EFBFBD>]<5D>4<><34><EFBFBD><EFBFBD>)B<>9ztw+<2B>.<2E><M:<3A><>/<2F>4<EFBFBD><34>Bw <17>ɑ<EFBFBD><17><><EFBFBD>ϏS7q<37>ڙ<EFBFBD><DA99><EFBFBD><E6ACAB>P<EFBFBD>\<5C>|PWx<57>7Ϫ<>ՌrΊ<72>~{<7B>9N翲yf<79><66>Q0<51>@<07>5<EFBFBD><35><EFBFBD><EFBFBD><EFBFBD>7<EFBFBD><32>&<26><EFBFBD><7F><EFBFBD><EFBFBD>p_l<5F><6C>fT<66>}<7D><>o<EFBFBD>&<26><>'v/<2F><42>k<EFBFBD>4<EFBFBD>Ckx<10><>t|<7C><><EFBFBD><EFBFBD>\R<><52><0E>ҟ8<D29F><38>
j<EFBFBD>7l1<EFBFBD><EFBFBD>P<>H<EFBFBD><48><EFBFBD><EFBFBD>iGH<47>5<EFBFBD><35><EFBFBD>$<10>/r<13><><EFBFBD>І<><14>g<EFBFBD><67>z<EFBFBD><7A><EFBFBD><EFBFBD><EFBFBD>pu<70><75><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;<3B>9<EFBFBD><39>䂯;pU<70><55>T<><17>\<5C><><EFBFBD><EFBFBD><16><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> }<7D>{k<><6B>Cz<43><16>t8Ǜ6<01><><EFBFBD>.<2E>Z^<5E><>Iw<49>N$_<><5F>@P<>ʕ<EFBFBD><EFBFBD><7F><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B<EFBFBD><42>
P<EFBFBD><EFBFBD>3<EFBFBD>C<EFBFBD><>?<3F>S<1F><1C><><1F><>AO<41>@<10><><EFBFBD>6<EFBFBD>T/<2F><>Xk/zh<7A><68>`<60>0<EFBFBD><30>e!<21><><EFBFBD>!<21>w<07><>mH[.d<><64><EFBFBD><EFBFBD>[<5B>tV<17>R<EFBFBD>h<EFBFBD>`<04><>6u<><<3C>6<EFBFBD>ms<6D>B +{aÚ2H :<3A>1<><31>b<EFBFBD>%r<U<>9mQ<6D><51>@<40><><EFBFBD><EFBFBD><16><>ם<EFBFBD><1D><>aQ<61>%<25>T<EFBFBD>X<EFBFBD>1<EFBFBD>m<EFBFBD>/<1B>ӓMex^<5E><>9)tC]{<7B>[<5B><>XW<58>zuY*<2A>z<EFBFBD><7A><EFBFBD><EFBFBD>j7<6A>Nlp=<3D><>ݎ<EFBFBD>څ;x<>$<24>nC/<2F>}ŪUQl<> 9<><39><EFBFBD>-<2D><>tq<74>"a<11>L24<32><34>U<EFBFBD><55><EFBFBD><EFBFBD>s<EFBFBD>ѝ<EFBFBD>e<EFBFBD><65>6<EFBFBD>u<EFBFBD><75><06><4E><CF89>,<2C><18>x<EFBFBD><78>!<21><><EFBFBD><18> t<>B<EFBFBD>T<EFBFBD>μ<EFBFBD><CEBC><EFBFBD>0mI<1E>g<EFBFBD>!,<2C>'<27>ڇ<EFBFBD>rH<><48><EFBFBD>/<2F>O+<2B>,<2C>[]<5D>i<EFBFBD>*<2A><><EFBFBD>(# GBMB