gitdb2-2.0.3/0000755000076600000240000000000013163135565013154 5ustar byronstaff00000000000000gitdb2-2.0.3/PKG-INFO0000644000076600000240000000211413163135565014247 0ustar byronstaff00000000000000Metadata-Version: 1.1 Name: gitdb2 Version: 2.0.3 Summary: Git Object Database Home-page: https://github.com/gitpython-developers/gitdb Author: Sebastian Thiel Author-email: byronimo@gmail.com License: BSD License Description: GitDB is a pure-Python git object database Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Operating System :: POSIX Classifier: Operating System :: Microsoft :: Windows Classifier: Operating System :: MacOS :: MacOS X Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.2 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 gitdb2-2.0.3/LICENSE0000644000076600000240000000370012637461244014162 0ustar byronstaff00000000000000Copyright (C) 2010, 2011 Sebastian Thiel and contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the GitDB project nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Additional Licenses ------------------- The files at gitdb/test/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx and gitdb/test/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack are licensed under GNU GPL as part of the git source repository, see http://en.wikipedia.org/wiki/Git_%28software%29 for more information. They are not required for the actual operation, which is why they are not found in the distribution package. gitdb2-2.0.3/AUTHORS0000644000076600000240000000003112637461244014217 0ustar byronstaff00000000000000Creator: Sebastian Thiel gitdb2-2.0.3/MANIFEST.in0000644000076600000240000000045412765303653014717 0ustar byronstaff00000000000000include VERSION include LICENSE include CHANGES include AUTHORS include README include MANIFEST.in include gitdb/_fun.c include gitdb/_delta_apply.c include gitdb/_delta_apply.h graft gitdb/test global-exclude .git* global-exclude *.pyc global-exclude *.so global-exclude *.dll global-exclude *.o gitdb2-2.0.3/setup.py0000755000076600000240000000321613163135200014655 0ustar byronstaff00000000000000from setuptools import setup # NOTE: This is currently duplicated from the gitdb.__init__ module, because # that's just how you write a setup.py (nobody reads this stuff out of the # module) __author__ = "Sebastian Thiel" __contact__ = "byronimo@gmail.com" __homepage__ = "https://github.com/gitpython-developers/gitdb" version_info = (2, 0, 3) __version__ = '.'.join(str(i) for i in version_info) setup( name="gitdb2", version=__version__, description="Git Object Database", author=__author__, author_email=__contact__, url=__homepage__, packages=('gitdb', 'gitdb.db', 'gitdb.utils', 'gitdb.test'), license="BSD License", zip_safe=False, install_requires=['smmap2 >= 2.0.0'], long_description="""GitDB is a pure-Python git object database""", # See https://pypi.python.org/pypi?%3Aaction=list_classifiers classifiers=[ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Operating System :: POSIX", "Operating System :: Microsoft :: Windows", "Operating System :: MacOS :: MacOS X", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", ] ) gitdb2-2.0.3/gitdb2.egg-info/0000755000076600000240000000000013163135565016021 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb2.egg-info/PKG-INFO0000644000076600000240000000211413163135565017114 0ustar byronstaff00000000000000Metadata-Version: 1.1 Name: gitdb2 Version: 2.0.3 Summary: Git Object Database Home-page: https://github.com/gitpython-developers/gitdb Author: Sebastian Thiel Author-email: byronimo@gmail.com License: BSD License Description: GitDB is a pure-Python git object database Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console Classifier: Intended Audience :: Developers Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Operating System :: POSIX Classifier: Operating System :: Microsoft :: Windows Classifier: Operating System :: MacOS :: MacOS X Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.6 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.2 Classifier: Programming Language :: Python :: 3.3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 gitdb2-2.0.3/gitdb2.egg-info/not-zip-safe0000644000076600000240000000000113112570022020230 0ustar byronstaff00000000000000 gitdb2-2.0.3/gitdb2.egg-info/SOURCES.txt0000644000076600000240000000322613163135565017710 0ustar byronstaff00000000000000AUTHORS LICENSE MANIFEST.in README.rst setup.cfg setup.py gitdb/__init__.py gitdb/base.py gitdb/const.py gitdb/exc.py gitdb/fun.py gitdb/pack.py gitdb/stream.py gitdb/typ.py gitdb/util.py gitdb/db/__init__.py gitdb/db/base.py gitdb/db/git.py gitdb/db/loose.py gitdb/db/mem.py gitdb/db/pack.py gitdb/db/ref.py gitdb/test/__init__.py gitdb/test/lib.py gitdb/test/test_base.py gitdb/test/test_example.py gitdb/test/test_pack.py gitdb/test/test_stream.py gitdb/test/test_util.py gitdb/test/db/__init__.py gitdb/test/db/lib.py gitdb/test/db/test_git.py gitdb/test/db/test_loose.py gitdb/test/db/test_mem.py gitdb/test/db/test_pack.py gitdb/test/db/test_ref.py gitdb/test/fixtures/objects/7b/b839852ed5e3a069966281bb08d50012fb309b gitdb/test/fixtures/objects/88/8401851f15db0eed60eb1bc29dec5ddcace911 gitdb/test/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx gitdb/test/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack gitdb/test/fixtures/packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx gitdb/test/fixtures/packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack gitdb/test/fixtures/packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx gitdb/test/fixtures/packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack gitdb/test/performance/__init__.py gitdb/test/performance/lib.py gitdb/test/performance/test_pack.py gitdb/test/performance/test_pack_streaming.py gitdb/test/performance/test_stream.py gitdb/utils/__init__.py gitdb/utils/compat.py gitdb/utils/encoding.py gitdb2.egg-info/PKG-INFO gitdb2.egg-info/SOURCES.txt gitdb2.egg-info/dependency_links.txt gitdb2.egg-info/not-zip-safe gitdb2.egg-info/requires.txt gitdb2.egg-info/top_level.txtgitdb2-2.0.3/gitdb2.egg-info/requires.txt0000644000076600000240000000002013163135565020411 0ustar byronstaff00000000000000smmap2 >= 2.0.0 gitdb2-2.0.3/gitdb2.egg-info/top_level.txt0000644000076600000240000000000613163135565020547 0ustar byronstaff00000000000000gitdb gitdb2-2.0.3/gitdb2.egg-info/dependency_links.txt0000644000076600000240000000000113163135565022067 0ustar byronstaff00000000000000 gitdb2-2.0.3/setup.cfg0000644000076600000240000000013013163135565014767 0ustar byronstaff00000000000000[bdist_wheel] universal = 1 [egg_info] tag_build = tag_date = 0 tag_svn_revision = 0 gitdb2-2.0.3/README.rst0000644000076600000240000000463313112567220014640 0ustar byronstaff00000000000000GitDB ===== GitDB allows you to access bare git repositories for reading and writing. It aims at allowing full access to loose objects as well as packs with performance and scalability in mind. It operates exclusively on streams, allowing to handle large objects with a small memory footprint. Installation ============ .. image:: https://pypip.in/version/gitdb/badge.svg :target: https://pypi.python.org/pypi/gitdb/ :alt: Latest Version .. image:: https://pypip.in/py_versions/gitdb/badge.svg :target: https://pypi.python.org/pypi/gitdb/ :alt: Supported Python versions .. image:: https://readthedocs.org/projects/gitdb/badge/?version=latest :target: https://readthedocs.org/projects/gitdb/?badge=latest :alt: Documentation Status From `PyPI `_ pip install gitdb SPEEDUPS ======== If you want to go up to 20% faster, you can install gitdb-speedups with: pip install gitdb-speedups REQUIREMENTS ============ * Python Nose - for running the tests SOURCE ====== The source is available in a git repository at gitorious and github: https://github.com/gitpython-developers/gitdb Once the clone is complete, please be sure to initialize the submodules using cd gitdb git submodule update --init Run the tests with nosetests DEVELOPMENT =========== .. image:: https://travis-ci.org/gitpython-developers/gitdb.svg?branch=master :target: https://travis-ci.org/gitpython-developers/gitdb .. image:: https://ci.appveyor.com/api/projects/status/2qa4km4ln7bfv76r/branch/master?svg=true&passingText=windows%20OK&failingText=windows%20failed :target: https://ci.appveyor.com/project/ankostis/gitpython/branch/master) .. image:: https://coveralls.io/repos/gitpython-developers/gitdb/badge.png :target: https://coveralls.io/r/gitpython-developers/gitdb .. image:: http://www.issuestats.com/github/gitpython-developers/gitdb/badge/pr :target: http://www.issuestats.com/github/gitpython-developers/gitdb .. image:: http://www.issuestats.com/github/gitpython-developers/gitdb/badge/issue :target: http://www.issuestats.com/github/gitpython-developers/gitdb The library is considered mature, and not under active development. It's primary (known) use is in git-python. INFRASTRUCTURE ============== * Mailing List * http://groups.google.com/group/git-python * Issue Tracker * https://github.com/gitpython-developers/gitdb/issues LICENSE ======= New BSD License gitdb2-2.0.3/gitdb/0000755000076600000240000000000013163135565014245 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/pack.py0000644000076600000240000011431613112567220015532 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Contains PackIndexFile and PackFile implementations""" import zlib from gitdb.exc import ( BadObject, AmbiguousObjectName, UnsupportedOperation, ParseError ) from gitdb.util import ( mman, LazyMixin, unpack_from, bin_to_hex, byte_ord, ) from gitdb.fun import ( create_pack_object_header, pack_object_header_info, is_equal_canonical_sha, type_id_to_type_map, write_object, stream_copy, chunk_size, delta_types, OFS_DELTA, REF_DELTA, msb_size ) try: from gitdb_speedups._perf import PackIndexFile_sha_to_index except ImportError: pass # END try c module from gitdb.base import ( # Amazing ! OInfo, OStream, OPackInfo, OPackStream, ODeltaStream, ODeltaPackInfo, ODeltaPackStream, ) from gitdb.stream import ( DecompressMemMapReader, DeltaApplyReader, Sha1Writer, NullStream, FlexibleSha1Writer ) from struct import pack from binascii import crc32 from gitdb.const import NULL_BYTE from gitdb.utils.compat import ( izip, buffer, xrange, to_bytes ) import tempfile import array import os import sys __all__ = ('PackIndexFile', 'PackFile', 'PackEntity') #{ Utilities def pack_object_at(cursor, offset, as_stream): """ :return: Tuple(abs_data_offset, PackInfo|PackStream) an object of the correct type according to the type_id of the object. If as_stream is True, the object will contain a stream, allowing the data to be read decompressed. :param data: random accessible data containing all required information :parma offset: offset in to the data at which the object information is located :param as_stream: if True, a stream object will be returned that can read the data, otherwise you receive an info object only""" data = cursor.use_region(offset).buffer() type_id, uncomp_size, data_rela_offset = pack_object_header_info(data) total_rela_offset = None # set later, actual offset until data stream begins delta_info = None # OFFSET DELTA if type_id == OFS_DELTA: i = data_rela_offset c = byte_ord(data[i]) i += 1 delta_offset = c & 0x7f while c & 0x80: c = byte_ord(data[i]) i += 1 delta_offset += 1 delta_offset = (delta_offset << 7) + (c & 0x7f) # END character loop delta_info = delta_offset total_rela_offset = i # REF DELTA elif type_id == REF_DELTA: total_rela_offset = data_rela_offset + 20 delta_info = data[data_rela_offset:total_rela_offset] # BASE OBJECT else: # assume its a base object total_rela_offset = data_rela_offset # END handle type id abs_data_offset = offset + total_rela_offset if as_stream: stream = DecompressMemMapReader(buffer(data, total_rela_offset), False, uncomp_size) if delta_info is None: return abs_data_offset, OPackStream(offset, type_id, uncomp_size, stream) else: return abs_data_offset, ODeltaPackStream(offset, type_id, uncomp_size, delta_info, stream) else: if delta_info is None: return abs_data_offset, OPackInfo(offset, type_id, uncomp_size) else: return abs_data_offset, ODeltaPackInfo(offset, type_id, uncomp_size, delta_info) # END handle info # END handle stream def write_stream_to_pack(read, write, zstream, base_crc=None): """Copy a stream as read from read function, zip it, and write the result. Count the number of written bytes and return it :param base_crc: if not None, the crc will be the base for all compressed data we consecutively write and generate a crc32 from. If None, no crc will be generated :return: tuple(no bytes read, no bytes written, crc32) crc might be 0 if base_crc was false""" br = 0 # bytes read bw = 0 # bytes written want_crc = base_crc is not None crc = 0 if want_crc: crc = base_crc # END initialize crc while True: chunk = read(chunk_size) br += len(chunk) compressed = zstream.compress(chunk) bw += len(compressed) write(compressed) # cannot assume return value if want_crc: crc = crc32(compressed, crc) # END handle crc if len(chunk) != chunk_size: break # END copy loop compressed = zstream.flush() bw += len(compressed) write(compressed) if want_crc: crc = crc32(compressed, crc) # END handle crc return (br, bw, crc) #} END utilities class IndexWriter(object): """Utility to cache index information, allowing to write all information later in one go to the given stream **Note:** currently only writes v2 indices""" __slots__ = '_objs' def __init__(self): self._objs = list() def append(self, binsha, crc, offset): """Append one piece of object information""" self._objs.append((binsha, crc, offset)) def write(self, pack_sha, write): """Write the index file using the given write method :param pack_sha: binary sha over the whole pack that we index :return: sha1 binary sha over all index file contents""" # sort for sha1 hash self._objs.sort(key=lambda o: o[0]) sha_writer = FlexibleSha1Writer(write) sha_write = sha_writer.write sha_write(PackIndexFile.index_v2_signature) sha_write(pack(">L", PackIndexFile.index_version_default)) # fanout tmplist = list((0,) * 256) # fanout or list with 64 bit offsets for t in self._objs: tmplist[byte_ord(t[0][0])] += 1 # END prepare fanout for i in xrange(255): v = tmplist[i] sha_write(pack('>L', v)) tmplist[i + 1] += v # END write each fanout entry sha_write(pack('>L', tmplist[255])) # sha1 ordered # save calls, that is push them into c sha_write(b''.join(t[0] for t in self._objs)) # crc32 for t in self._objs: sha_write(pack('>L', t[1] & 0xffffffff)) # END for each crc tmplist = list() # offset 32 for t in self._objs: ofs = t[2] if ofs > 0x7fffffff: tmplist.append(ofs) ofs = 0x80000000 + len(tmplist) - 1 # END hande 64 bit offsets sha_write(pack('>L', ofs & 0xffffffff)) # END for each offset # offset 64 for ofs in tmplist: sha_write(pack(">Q", ofs)) # END for each offset # trailer assert(len(pack_sha) == 20) sha_write(pack_sha) sha = sha_writer.sha(as_hex=False) write(sha) return sha class PackIndexFile(LazyMixin): """A pack index provides offsets into the corresponding pack, allowing to find locations for offsets faster.""" # Dont use slots as we dynamically bind functions for each version, need a dict for this # The slots you see here are just to keep track of our instance variables # __slots__ = ('_indexpath', '_fanout_table', '_cursor', '_version', # '_sha_list_offset', '_crc_list_offset', '_pack_offset', '_pack_64_offset') # used in v2 indices _sha_list_offset = 8 + 1024 index_v2_signature = b'\xfftOc' index_version_default = 2 def __init__(self, indexpath): super(PackIndexFile, self).__init__() self._indexpath = indexpath def close(self): mman.force_map_handle_removal_win(self._indexpath) self._cursor = None def _set_cache_(self, attr): if attr == "_packfile_checksum": self._packfile_checksum = self._cursor.map()[-40:-20] elif attr == "_packfile_checksum": self._packfile_checksum = self._cursor.map()[-20:] elif attr == "_cursor": # Note: We don't lock the file when reading as we cannot be sure # that we can actually write to the location - it could be a read-only # alternate for instance self._cursor = mman.make_cursor(self._indexpath).use_region() # We will assume that the index will always fully fit into memory ! if mman.window_size() > 0 and self._cursor.file_size() > mman.window_size(): raise AssertionError("The index file at %s is too large to fit into a mapped window (%i > %i). This is a limitation of the implementation" % ( self._indexpath, self._cursor.file_size(), mman.window_size())) # END assert window size else: # now its time to initialize everything - if we are here, someone wants # to access the fanout table or related properties # CHECK VERSION mmap = self._cursor.map() self._version = (mmap[:4] == self.index_v2_signature and 2) or 1 if self._version == 2: version_id = unpack_from(">L", mmap, 4)[0] assert version_id == self._version, "Unsupported index version: %i" % version_id # END assert version # SETUP FUNCTIONS # setup our functions according to the actual version for fname in ('entry', 'offset', 'sha', 'crc'): setattr(self, fname, getattr(self, "_%s_v%i" % (fname, self._version))) # END for each function to initialize # INITIALIZE DATA # byte offset is 8 if version is 2, 0 otherwise self._initialize() # END handle attributes #{ Access V1 def _entry_v1(self, i): """:return: tuple(offset, binsha, 0)""" return unpack_from(">L20s", self._cursor.map(), 1024 + i * 24) + (0, ) def _offset_v1(self, i): """see ``_offset_v2``""" return unpack_from(">L", self._cursor.map(), 1024 + i * 24)[0] def _sha_v1(self, i): """see ``_sha_v2``""" base = 1024 + (i * 24) + 4 return self._cursor.map()[base:base + 20] def _crc_v1(self, i): """unsupported""" return 0 #} END access V1 #{ Access V2 def _entry_v2(self, i): """:return: tuple(offset, binsha, crc)""" return (self._offset_v2(i), self._sha_v2(i), self._crc_v2(i)) def _offset_v2(self, i): """:return: 32 or 64 byte offset into pack files. 64 byte offsets will only be returned if the pack is larger than 4 GiB, or 2^32""" offset = unpack_from(">L", self._cursor.map(), self._pack_offset + i * 4)[0] # if the high-bit is set, this indicates that we have to lookup the offset # in the 64 bit region of the file. The current offset ( lower 31 bits ) # are the index into it if offset & 0x80000000: offset = unpack_from(">Q", self._cursor.map(), self._pack_64_offset + (offset & ~0x80000000) * 8)[0] # END handle 64 bit offset return offset def _sha_v2(self, i): """:return: sha at the given index of this file index instance""" base = self._sha_list_offset + i * 20 return self._cursor.map()[base:base + 20] def _crc_v2(self, i): """:return: 4 bytes crc for the object at index i""" return unpack_from(">L", self._cursor.map(), self._crc_list_offset + i * 4)[0] #} END access V2 #{ Initialization def _initialize(self): """initialize base data""" self._fanout_table = self._read_fanout((self._version == 2) * 8) if self._version == 2: self._crc_list_offset = self._sha_list_offset + self.size() * 20 self._pack_offset = self._crc_list_offset + self.size() * 4 self._pack_64_offset = self._pack_offset + self.size() * 4 # END setup base def _read_fanout(self, byte_offset): """Generate a fanout table from our data""" d = self._cursor.map() out = list() append = out.append for i in xrange(256): append(unpack_from('>L', d, byte_offset + i * 4)[0]) # END for each entry return out #} END initialization #{ Properties def version(self): return self._version def size(self): """:return: amount of objects referred to by this index""" return self._fanout_table[255] def path(self): """:return: path to the packindexfile""" return self._indexpath def packfile_checksum(self): """:return: 20 byte sha representing the sha1 hash of the pack file""" return self._cursor.map()[-40:-20] def indexfile_checksum(self): """:return: 20 byte sha representing the sha1 hash of this index file""" return self._cursor.map()[-20:] def offsets(self): """:return: sequence of all offsets in the order in which they were written **Note:** return value can be random accessed, but may be immmutable""" if self._version == 2: # read stream to array, convert to tuple a = array.array('I') # 4 byte unsigned int, long are 8 byte on 64 bit it appears a.fromstring(buffer(self._cursor.map(), self._pack_offset, self._pack_64_offset - self._pack_offset)) # networkbyteorder to something array likes more if sys.byteorder == 'little': a.byteswap() return a else: return tuple(self.offset(index) for index in xrange(self.size())) # END handle version def sha_to_index(self, sha): """ :return: index usable with the ``offset`` or ``entry`` method, or None if the sha was not found in this pack index :param sha: 20 byte sha to lookup""" first_byte = byte_ord(sha[0]) get_sha = self.sha lo = 0 # lower index, the left bound of the bisection if first_byte != 0: lo = self._fanout_table[first_byte - 1] hi = self._fanout_table[first_byte] # the upper, right bound of the bisection # bisect until we have the sha while lo < hi: mid = (lo + hi) // 2 mid_sha = get_sha(mid) if sha < mid_sha: hi = mid elif sha == mid_sha: return mid else: lo = mid + 1 # END handle midpoint # END bisect return None def partial_sha_to_index(self, partial_bin_sha, canonical_length): """ :return: index as in `sha_to_index` or None if the sha was not found in this index file :param partial_bin_sha: an at least two bytes of a partial binary sha as bytes :param canonical_length: length of the original hexadecimal representation of the given partial binary sha :raise AmbiguousObjectName:""" if len(partial_bin_sha) < 2: raise ValueError("Require at least 2 bytes of partial sha") assert isinstance(partial_bin_sha, bytes), "partial_bin_sha must be bytes" first_byte = byte_ord(partial_bin_sha[0]) get_sha = self.sha lo = 0 # lower index, the left bound of the bisection if first_byte != 0: lo = self._fanout_table[first_byte - 1] hi = self._fanout_table[first_byte] # the upper, right bound of the bisection # fill the partial to full 20 bytes filled_sha = partial_bin_sha + NULL_BYTE * (20 - len(partial_bin_sha)) # find lowest while lo < hi: mid = (lo + hi) // 2 mid_sha = get_sha(mid) if filled_sha < mid_sha: hi = mid elif filled_sha == mid_sha: # perfect match lo = mid break else: lo = mid + 1 # END handle midpoint # END bisect if lo < self.size(): cur_sha = get_sha(lo) if is_equal_canonical_sha(canonical_length, partial_bin_sha, cur_sha): next_sha = None if lo + 1 < self.size(): next_sha = get_sha(lo + 1) if next_sha and next_sha == cur_sha: raise AmbiguousObjectName(partial_bin_sha) return lo # END if we have a match # END if we found something return None if 'PackIndexFile_sha_to_index' in globals(): # NOTE: Its just about 25% faster, the major bottleneck might be the attr # accesses def sha_to_index(self, sha): return PackIndexFile_sha_to_index(self, sha) # END redefine heavy-hitter with c version #} END properties class PackFile(LazyMixin): """A pack is a file written according to the Version 2 for git packs As we currently use memory maps, it could be assumed that the maximum size of packs therefor is 32 bit on 32 bit systems. On 64 bit systems, this should be fine though. **Note:** at some point, this might be implemented using streams as well, or streams are an alternate path in the case memory maps cannot be created for some reason - one clearly doesn't want to read 10GB at once in that case""" __slots__ = ('_packpath', '_cursor', '_size', '_version') pack_signature = 0x5041434b # 'PACK' pack_version_default = 2 # offset into our data at which the first object starts first_object_offset = 3 * 4 # header bytes footer_size = 20 # final sha def __init__(self, packpath): self._packpath = packpath def close(self): mman.force_map_handle_removal_win(self._packpath) self._cursor = None def _set_cache_(self, attr): # we fill the whole cache, whichever attribute gets queried first self._cursor = mman.make_cursor(self._packpath).use_region() # read the header information type_id, self._version, self._size = unpack_from(">LLL", self._cursor.map(), 0) # TODO: figure out whether we should better keep the lock, or maybe # add a .keep file instead ? if type_id != self.pack_signature: raise ParseError("Invalid pack signature: %i" % type_id) def _iter_objects(self, start_offset, as_stream=True): """Handle the actual iteration of objects within this pack""" c = self._cursor content_size = c.file_size() - self.footer_size cur_offset = start_offset or self.first_object_offset null = NullStream() while cur_offset < content_size: data_offset, ostream = pack_object_at(c, cur_offset, True) # scrub the stream to the end - this decompresses the object, but yields # the amount of compressed bytes we need to get to the next offset stream_copy(ostream.read, null.write, ostream.size, chunk_size) assert ostream.stream._br == ostream.size cur_offset += (data_offset - ostream.pack_offset) + ostream.stream.compressed_bytes_read() # if a stream is requested, reset it beforehand # Otherwise return the Stream object directly, its derived from the # info object if as_stream: ostream.stream.seek(0) yield ostream # END until we have read everything #{ Pack Information def size(self): """:return: The amount of objects stored in this pack""" return self._size def version(self): """:return: the version of this pack""" return self._version def data(self): """ :return: read-only data of this pack. It provides random access and usually is a memory map. :note: This method is unsafe as it returns a window into a file which might be larger than than the actual window size""" # can use map as we are starting at offset 0. Otherwise we would have to use buffer() return self._cursor.use_region().map() def checksum(self): """:return: 20 byte sha1 hash on all object sha's contained in this file""" return self._cursor.use_region(self._cursor.file_size() - 20).buffer()[:] def path(self): """:return: path to the packfile""" return self._packpath #} END pack information #{ Pack Specific def collect_streams(self, offset): """ :return: list of pack streams which are required to build the object at the given offset. The first entry of the list is the object at offset, the last one is either a full object, or a REF_Delta stream. The latter type needs its reference object to be locked up in an ODB to form a valid delta chain. If the object at offset is no delta, the size of the list is 1. :param offset: specifies the first byte of the object within this pack""" out = list() c = self._cursor while True: ostream = pack_object_at(c, offset, True)[1] out.append(ostream) if ostream.type_id == OFS_DELTA: offset = ostream.pack_offset - ostream.delta_info else: # the only thing we can lookup are OFFSET deltas. Everything # else is either an object, or a ref delta, in the latter # case someone else has to find it break # END handle type # END while chaining streams return out #} END pack specific #{ Read-Database like Interface def info(self, offset): """Retrieve information about the object at the given file-absolute offset :param offset: byte offset :return: OPackInfo instance, the actual type differs depending on the type_id attribute""" return pack_object_at(self._cursor, offset or self.first_object_offset, False)[1] def stream(self, offset): """Retrieve an object at the given file-relative offset as stream along with its information :param offset: byte offset :return: OPackStream instance, the actual type differs depending on the type_id attribute""" return pack_object_at(self._cursor, offset or self.first_object_offset, True)[1] def stream_iter(self, start_offset=0): """ :return: iterator yielding OPackStream compatible instances, allowing to access the data in the pack directly. :param start_offset: offset to the first object to iterate. If 0, iteration starts at the very first object in the pack. **Note:** Iterating a pack directly is costly as the datastream has to be decompressed to determine the bounds between the objects""" return self._iter_objects(start_offset, as_stream=True) #} END Read-Database like Interface class PackEntity(LazyMixin): """Combines the PackIndexFile and the PackFile into one, allowing the actual objects to be resolved and iterated""" __slots__ = ('_index', # our index file '_pack', # our pack file '_offset_map' # on demand dict mapping one offset to the next consecutive one ) IndexFileCls = PackIndexFile PackFileCls = PackFile def __init__(self, pack_or_index_path): """Initialize ourselves with the path to the respective pack or index file""" basename, ext = os.path.splitext(pack_or_index_path) self._index = self.IndexFileCls("%s.idx" % basename) # PackIndexFile instance self._pack = self.PackFileCls("%s.pack" % basename) # corresponding PackFile instance def close(self): self._index.close() self._pack.close() def _set_cache_(self, attr): # currently this can only be _offset_map # TODO: make this a simple sorted offset array which can be bisected # to find the respective entry, from which we can take a +1 easily # This might be slower, but should also be much lighter in memory ! offsets_sorted = sorted(self._index.offsets()) last_offset = len(self._pack.data()) - self._pack.footer_size assert offsets_sorted, "Cannot handle empty indices" offset_map = None if len(offsets_sorted) == 1: offset_map = {offsets_sorted[0]: last_offset} else: iter_offsets = iter(offsets_sorted) iter_offsets_plus_one = iter(offsets_sorted) next(iter_offsets_plus_one) consecutive = izip(iter_offsets, iter_offsets_plus_one) offset_map = dict(consecutive) # the last offset is not yet set offset_map[offsets_sorted[-1]] = last_offset # END handle offset amount self._offset_map = offset_map def _sha_to_index(self, sha): """:return: index for the given sha, or raise""" index = self._index.sha_to_index(sha) if index is None: raise BadObject(sha) return index def _iter_objects(self, as_stream): """Iterate over all objects in our index and yield their OInfo or OStream instences""" _sha = self._index.sha _object = self._object for index in xrange(self._index.size()): yield _object(_sha(index), as_stream, index) # END for each index def _object(self, sha, as_stream, index=-1): """:return: OInfo or OStream object providing information about the given sha :param index: if not -1, its assumed to be the sha's index in the IndexFile""" # its a little bit redundant here, but it needs to be efficient if index < 0: index = self._sha_to_index(sha) if sha is None: sha = self._index.sha(index) # END assure sha is present ( in output ) offset = self._index.offset(index) type_id, uncomp_size, data_rela_offset = pack_object_header_info(self._pack._cursor.use_region(offset).buffer()) if as_stream: if type_id not in delta_types: packstream = self._pack.stream(offset) return OStream(sha, packstream.type, packstream.size, packstream.stream) # END handle non-deltas # produce a delta stream containing all info # To prevent it from applying the deltas when querying the size, # we extract it from the delta stream ourselves streams = self.collect_streams_at_offset(offset) dstream = DeltaApplyReader.new(streams) return ODeltaStream(sha, dstream.type, None, dstream) else: if type_id not in delta_types: return OInfo(sha, type_id_to_type_map[type_id], uncomp_size) # END handle non-deltas # deltas are a little tougher - unpack the first bytes to obtain # the actual target size, as opposed to the size of the delta data streams = self.collect_streams_at_offset(offset) buf = streams[0].read(512) offset, src_size = msb_size(buf) offset, target_size = msb_size(buf, offset) # collect the streams to obtain the actual object type if streams[-1].type_id in delta_types: raise BadObject(sha, "Could not resolve delta object") return OInfo(sha, streams[-1].type, target_size) # END handle stream #{ Read-Database like Interface def info(self, sha): """Retrieve information about the object identified by the given sha :param sha: 20 byte sha1 :raise BadObject: :return: OInfo instance, with 20 byte sha""" return self._object(sha, False) def stream(self, sha): """Retrieve an object stream along with its information as identified by the given sha :param sha: 20 byte sha1 :raise BadObject: :return: OStream instance, with 20 byte sha""" return self._object(sha, True) def info_at_index(self, index): """As ``info``, but uses a PackIndexFile compatible index to refer to the object""" return self._object(None, False, index) def stream_at_index(self, index): """As ``stream``, but uses a PackIndexFile compatible index to refer to the object""" return self._object(None, True, index) #} END Read-Database like Interface #{ Interface def pack(self): """:return: the underlying pack file instance""" return self._pack def index(self): """:return: the underlying pack index file instance""" return self._index def is_valid_stream(self, sha, use_crc=False): """ Verify that the stream at the given sha is valid. :param use_crc: if True, the index' crc is run over the compressed stream of the object, which is much faster than checking the sha1. It is also more prone to unnoticed corruption or manipulation. :param sha: 20 byte sha1 of the object whose stream to verify whether the compressed stream of the object is valid. If it is a delta, this only verifies that the delta's data is valid, not the data of the actual undeltified object, as it depends on more than just this stream. If False, the object will be decompressed and the sha generated. It must match the given sha :return: True if the stream is valid :raise UnsupportedOperation: If the index is version 1 only :raise BadObject: sha was not found""" if use_crc: if self._index.version() < 2: raise UnsupportedOperation("Version 1 indices do not contain crc's, verify by sha instead") # END handle index version index = self._sha_to_index(sha) offset = self._index.offset(index) next_offset = self._offset_map[offset] crc_value = self._index.crc(index) # create the current crc value, on the compressed object data # Read it in chunks, without copying the data crc_update = zlib.crc32 pack_data = self._pack.data() cur_pos = offset this_crc_value = 0 while cur_pos < next_offset: rbound = min(cur_pos + chunk_size, next_offset) size = rbound - cur_pos this_crc_value = crc_update(buffer(pack_data, cur_pos, size), this_crc_value) cur_pos += size # END window size loop # crc returns signed 32 bit numbers, the AND op forces it into unsigned # mode ... wow, sneaky, from dulwich. return (this_crc_value & 0xffffffff) == crc_value else: shawriter = Sha1Writer() stream = self._object(sha, as_stream=True) # write a loose object, which is the basis for the sha write_object(stream.type, stream.size, stream.read, shawriter.write) assert shawriter.sha(as_hex=False) == sha return shawriter.sha(as_hex=False) == sha # END handle crc/sha verification return True def info_iter(self): """ :return: Iterator over all objects in this pack. The iterator yields OInfo instances""" return self._iter_objects(as_stream=False) def stream_iter(self): """ :return: iterator over all objects in this pack. The iterator yields OStream instances""" return self._iter_objects(as_stream=True) def collect_streams_at_offset(self, offset): """ As the version in the PackFile, but can resolve REF deltas within this pack For more info, see ``collect_streams`` :param offset: offset into the pack file at which the object can be found""" streams = self._pack.collect_streams(offset) # try to resolve the last one if needed. It is assumed to be either # a REF delta, or a base object, as OFFSET deltas are resolved by the pack if streams[-1].type_id == REF_DELTA: stream = streams[-1] while stream.type_id in delta_types: if stream.type_id == REF_DELTA: sindex = self._index.sha_to_index(to_bytes(stream.delta_info)) if sindex is None: break stream = self._pack.stream(self._index.offset(sindex)) streams.append(stream) else: # must be another OFS DELTA - this could happen if a REF # delta we resolve previously points to an OFS delta. Who # would do that ;) ? We can handle it though stream = self._pack.stream(stream.delta_info) streams.append(stream) # END handle ref delta # END resolve ref streams # END resolve streams return streams def collect_streams(self, sha): """ As ``PackFile.collect_streams``, but takes a sha instead of an offset. Additionally, ref_delta streams will be resolved within this pack. If this is not possible, the stream will be left alone, hence it is adivsed to check for unresolved ref-deltas and resolve them before attempting to construct a delta stream. :param sha: 20 byte sha1 specifying the object whose related streams you want to collect :return: list of streams, first being the actual object delta, the last being a possibly unresolved base object. :raise BadObject:""" return self.collect_streams_at_offset(self._index.offset(self._sha_to_index(sha))) @classmethod def write_pack(cls, object_iter, pack_write, index_write=None, object_count=None, zlib_compression=zlib.Z_BEST_SPEED): """ Create a new pack by putting all objects obtained by the object_iterator into a pack which is written using the pack_write method. The respective index is produced as well if index_write is not Non. :param object_iter: iterator yielding odb output objects :param pack_write: function to receive strings to write into the pack stream :param indx_write: if not None, the function writes the index file corresponding to the pack. :param object_count: if you can provide the amount of objects in your iteration, this would be the place to put it. Otherwise we have to pre-iterate and store all items into a list to get the number, which uses more memory than necessary. :param zlib_compression: the zlib compression level to use :return: tuple(pack_sha, index_binsha) binary sha over all the contents of the pack and over all contents of the index. If index_write was None, index_binsha will be None **Note:** The destination of the write functions is up to the user. It could be a socket, or a file for instance **Note:** writes only undeltified objects""" objs = object_iter if not object_count: if not isinstance(object_iter, (tuple, list)): objs = list(object_iter) # END handle list type object_count = len(objs) # END handle object pack_writer = FlexibleSha1Writer(pack_write) pwrite = pack_writer.write ofs = 0 # current offset into the pack file index = None wants_index = index_write is not None # write header pwrite(pack('>LLL', PackFile.pack_signature, PackFile.pack_version_default, object_count)) ofs += 12 if wants_index: index = IndexWriter() # END handle index header actual_count = 0 for obj in objs: actual_count += 1 crc = 0 # object header hdr = create_pack_object_header(obj.type_id, obj.size) if index_write: crc = crc32(hdr) else: crc = None # END handle crc pwrite(hdr) # data stream zstream = zlib.compressobj(zlib_compression) ostream = obj.stream br, bw, crc = write_stream_to_pack(ostream.read, pwrite, zstream, base_crc=crc) assert(br == obj.size) if wants_index: index.append(obj.binsha, crc, ofs) # END handle index ofs += len(hdr) + bw if actual_count == object_count: break # END abort once we are done # END for each object if actual_count != object_count: raise ValueError( "Expected to write %i objects into pack, but received only %i from iterators" % (object_count, actual_count)) # END count assertion # write footer pack_sha = pack_writer.sha(as_hex=False) assert len(pack_sha) == 20 pack_write(pack_sha) ofs += len(pack_sha) # just for completeness ;) index_sha = None if wants_index: index_sha = index.write(pack_sha, index_write) # END handle index return pack_sha, index_sha @classmethod def create(cls, object_iter, base_dir, object_count=None, zlib_compression=zlib.Z_BEST_SPEED): """Create a new on-disk entity comprised of a properly named pack file and a properly named and corresponding index file. The pack contains all OStream objects contained in object iter. :param base_dir: directory which is to contain the files :return: PackEntity instance initialized with the new pack **Note:** for more information on the other parameters see the write_pack method""" pack_fd, pack_path = tempfile.mkstemp('', 'pack', base_dir) index_fd, index_path = tempfile.mkstemp('', 'index', base_dir) pack_write = lambda d: os.write(pack_fd, d) index_write = lambda d: os.write(index_fd, d) pack_binsha, index_binsha = cls.write_pack(object_iter, pack_write, index_write, object_count, zlib_compression) os.close(pack_fd) os.close(index_fd) fmt = "pack-%s.%s" new_pack_path = os.path.join(base_dir, fmt % (bin_to_hex(pack_binsha), 'pack')) new_index_path = os.path.join(base_dir, fmt % (bin_to_hex(pack_binsha), 'idx')) os.rename(pack_path, new_pack_path) os.rename(index_path, new_index_path) return cls(new_pack_path) #} END interface gitdb2-2.0.3/gitdb/fun.py0000644000076600000240000006234513000652563015411 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Contains basic c-functions which usually contain performance critical code Keeping this code separate from the beginning makes it easier to out-source it into c later, if required""" import zlib from gitdb.util import byte_ord decompressobj = zlib.decompressobj import mmap from itertools import islice from functools import reduce from gitdb.const import NULL_BYTE, BYTE_SPACE from gitdb.utils.encoding import force_text from gitdb.utils.compat import izip, buffer, xrange, PY3 from gitdb.typ import ( str_blob_type, str_commit_type, str_tree_type, str_tag_type, ) from io import StringIO # INVARIANTS OFS_DELTA = 6 REF_DELTA = 7 delta_types = (OFS_DELTA, REF_DELTA) type_id_to_type_map = { 0: b'', # EXT 1 1: str_commit_type, 2: str_tree_type, 3: str_blob_type, 4: str_tag_type, 5: b'', # EXT 2 OFS_DELTA: "OFS_DELTA", # OFFSET DELTA REF_DELTA: "REF_DELTA" # REFERENCE DELTA } type_to_type_id_map = { str_commit_type: 1, str_tree_type: 2, str_blob_type: 3, str_tag_type: 4, "OFS_DELTA": OFS_DELTA, "REF_DELTA": REF_DELTA, } # used when dealing with larger streams chunk_size = 1000 * mmap.PAGESIZE __all__ = ('is_loose_object', 'loose_object_header_info', 'msb_size', 'pack_object_header_info', 'write_object', 'loose_object_header', 'stream_copy', 'apply_delta_data', 'is_equal_canonical_sha', 'connect_deltas', 'DeltaChunkList', 'create_pack_object_header') #{ Structures def _set_delta_rbound(d, size): """Truncate the given delta to the given size :param size: size relative to our target offset, may not be 0, must be smaller or equal to our size :return: d""" d.ts = size # NOTE: data is truncated automatically when applying the delta # MUST NOT DO THIS HERE return d def _move_delta_lbound(d, bytes): """Move the delta by the given amount of bytes, reducing its size so that its right bound stays static :param bytes: amount of bytes to move, must be smaller than delta size :return: d""" if bytes == 0: return d.to += bytes d.so += bytes d.ts -= bytes if d.data is not None: d.data = d.data[bytes:] # END handle data return d def delta_duplicate(src): return DeltaChunk(src.to, src.ts, src.so, src.data) def delta_chunk_apply(dc, bbuf, write): """Apply own data to the target buffer :param bbuf: buffer providing source bytes for copy operations :param write: write method to call with data to write""" if dc.data is None: # COPY DATA FROM SOURCE write(buffer(bbuf, dc.so, dc.ts)) else: # APPEND DATA # whats faster: if + 4 function calls or just a write with a slice ? # Considering data can be larger than 127 bytes now, it should be worth it if dc.ts < len(dc.data): write(dc.data[:dc.ts]) else: write(dc.data) # END handle truncation # END handle chunk mode class DeltaChunk(object): """Represents a piece of a delta, it can either add new data, or copy existing one from a source buffer""" __slots__ = ( 'to', # start offset in the target buffer in bytes 'ts', # size of this chunk in the target buffer in bytes 'so', # start offset in the source buffer in bytes or None 'data', # chunk of bytes to be added to the target buffer, # DeltaChunkList to use as base, or None ) def __init__(self, to, ts, so, data): self.to = to self.ts = ts self.so = so self.data = data def __repr__(self): return "DeltaChunk(%i, %i, %s, %s)" % (self.to, self.ts, self.so, self.data or "") #{ Interface def rbound(self): return self.to + self.ts def has_data(self): """:return: True if the instance has data to add to the target stream""" return self.data is not None #} END interface def _closest_index(dcl, absofs): """:return: index at which the given absofs should be inserted. The index points to the DeltaChunk with a target buffer absofs that equals or is greater than absofs. **Note:** global method for performance only, it belongs to DeltaChunkList""" lo = 0 hi = len(dcl) while lo < hi: mid = (lo + hi) / 2 dc = dcl[mid] if dc.to > absofs: hi = mid elif dc.rbound() > absofs or dc.to == absofs: return mid else: lo = mid + 1 # END handle bound # END for each delta absofs return len(dcl) - 1 def delta_list_apply(dcl, bbuf, write): """Apply the chain's changes and write the final result using the passed write function. :param bbuf: base buffer containing the base of all deltas contained in this list. It will only be used if the chunk in question does not have a base chain. :param write: function taking a string of bytes to write to the output""" for dc in dcl: delta_chunk_apply(dc, bbuf, write) # END for each dc def delta_list_slice(dcl, absofs, size, ndcl): """:return: Subsection of this list at the given absolute offset, with the given size in bytes. :return: None""" cdi = _closest_index(dcl, absofs) # delta start index cd = dcl[cdi] slen = len(dcl) lappend = ndcl.append if cd.to != absofs: tcd = DeltaChunk(cd.to, cd.ts, cd.so, cd.data) _move_delta_lbound(tcd, absofs - cd.to) tcd.ts = min(tcd.ts, size) lappend(tcd) size -= tcd.ts cdi += 1 # END lbound overlap handling while cdi < slen and size: # are we larger than the current block cd = dcl[cdi] if cd.ts <= size: lappend(DeltaChunk(cd.to, cd.ts, cd.so, cd.data)) size -= cd.ts else: tcd = DeltaChunk(cd.to, cd.ts, cd.so, cd.data) tcd.ts = size lappend(tcd) size -= tcd.ts break # END hadle size cdi += 1 # END for each chunk class DeltaChunkList(list): """List with special functionality to deal with DeltaChunks. There are two types of lists we represent. The one was created bottom-up, working towards the latest delta, the other kind was created top-down, working from the latest delta down to the earliest ancestor. This attribute is queryable after all processing with is_reversed.""" __slots__ = tuple() def rbound(self): """:return: rightmost extend in bytes, absolute""" if len(self) == 0: return 0 return self[-1].rbound() def lbound(self): """:return: leftmost byte at which this chunklist starts""" if len(self) == 0: return 0 return self[0].to def size(self): """:return: size of bytes as measured by our delta chunks""" return self.rbound() - self.lbound() def apply(self, bbuf, write): """Only used by public clients, internally we only use the global routines for performance""" return delta_list_apply(self, bbuf, write) def compress(self): """Alter the list to reduce the amount of nodes. Currently we concatenate add-chunks :return: self""" slen = len(self) if slen < 2: return self i = 0 first_data_index = None while i < slen: dc = self[i] i += 1 if dc.data is None: if first_data_index is not None and i - 2 - first_data_index > 1: # if first_data_index is not None: nd = StringIO() # new data so = self[first_data_index].to # start offset in target buffer for x in xrange(first_data_index, i - 1): xdc = self[x] nd.write(xdc.data[:xdc.ts]) # END collect data del(self[first_data_index:i - 1]) buf = nd.getvalue() self.insert(first_data_index, DeltaChunk(so, len(buf), 0, buf)) slen = len(self) i = first_data_index + 1 # END concatenate data first_data_index = None continue # END skip non-data chunks if first_data_index is None: first_data_index = i - 1 # END iterate list # if slen_orig != len(self): # print "INFO: Reduced delta list len to %f %% of former size" % ((float(len(self)) / slen_orig) * 100) return self def check_integrity(self, target_size=-1): """Verify the list has non-overlapping chunks only, and the total size matches target_size :param target_size: if not -1, the total size of the chain must be target_size :raise AssertionError: if the size doen't match""" if target_size > -1: assert self[-1].rbound() == target_size assert reduce(lambda x, y: x + y, (d.ts for d in self), 0) == target_size # END target size verification if len(self) < 2: return # check data for dc in self: assert dc.ts > 0 if dc.has_data(): assert len(dc.data) >= dc.ts # END for each dc left = islice(self, 0, len(self) - 1) right = iter(self) right.next() # this is very pythonic - we might have just use index based access here, # but this could actually be faster for lft, rgt in izip(left, right): assert lft.rbound() == rgt.to assert lft.to + lft.ts == rgt.to # END for each pair class TopdownDeltaChunkList(DeltaChunkList): """Represents a list which is generated by feeding its ancestor streams one by one""" __slots__ = tuple() def connect_with_next_base(self, bdcl): """Connect this chain with the next level of our base delta chunklist. The goal in this game is to mark as many of our chunks rigid, hence they cannot be changed by any of the upcoming bases anymore. Once all our chunks are marked like that, we can stop all processing :param bdcl: data chunk list being one of our bases. They must be fed in consequtively and in order, towards the earliest ancestor delta :return: True if processing was done. Use it to abort processing of remaining streams if False is returned""" nfc = 0 # number of frozen chunks dci = 0 # delta chunk index slen = len(self) # len of self ccl = list() # temporary list while dci < slen: dc = self[dci] dci += 1 # all add-chunks which are already topmost don't need additional processing if dc.data is not None: nfc += 1 continue # END skip add chunks # copy chunks # integrate the portion of the base list into ourselves. Lists # dont support efficient insertion ( just one at a time ), but for now # we live with it. Internally, its all just a 32/64bit pointer, and # the portions of moved memory should be smallish. Maybe we just rebuild # ourselves in order to reduce the amount of insertions ... del(ccl[:]) delta_list_slice(bdcl, dc.so, dc.ts, ccl) # move the target bounds into place to match with our chunk ofs = dc.to - dc.so for cdc in ccl: cdc.to += ofs # END update target bounds if len(ccl) == 1: self[dci - 1] = ccl[0] else: # maybe try to compute the expenses here, and pick the right algorithm # It would normally be faster than copying everything physically though # TODO: Use a deque here, and decide by the index whether to extend # or extend left ! post_dci = self[dci:] del(self[dci - 1:]) # include deletion of dc self.extend(ccl) self.extend(post_dci) slen = len(self) dci += len(ccl) - 1 # deleted dc, added rest # END handle chunk replacement # END for each chunk if nfc == slen: return False # END handle completeness return True #} END structures #{ Routines def is_loose_object(m): """ :return: True the file contained in memory map m appears to be a loose object. Only the first two bytes are needed""" b0, b1 = map(ord, m[:2]) word = (b0 << 8) + b1 return b0 == 0x78 and (word % 31) == 0 def loose_object_header_info(m): """ :return: tuple(type_string, uncompressed_size_in_bytes) the type string of the object as well as its uncompressed size in bytes. :param m: memory map from which to read the compressed object data""" decompress_size = 8192 # is used in cgit as well hdr = decompressobj().decompress(m, decompress_size) type_name, size = hdr[:hdr.find(NULL_BYTE)].split(BYTE_SPACE) return type_name, int(size) def pack_object_header_info(data): """ :return: tuple(type_id, uncompressed_size_in_bytes, byte_offset) The type_id should be interpreted according to the ``type_id_to_type_map`` map The byte-offset specifies the start of the actual zlib compressed datastream :param m: random-access memory, like a string or memory map""" c = byte_ord(data[0]) # first byte i = 1 # next char to read type_id = (c >> 4) & 7 # numeric type size = c & 15 # starting size s = 4 # starting bit-shift size if PY3: while c & 0x80: c = byte_ord(data[i]) i += 1 size += (c & 0x7f) << s s += 7 # END character loop else: while c & 0x80: c = ord(data[i]) i += 1 size += (c & 0x7f) << s s += 7 # END character loop # end performance at expense of maintenance ... return (type_id, size, i) def create_pack_object_header(obj_type, obj_size): """ :return: string defining the pack header comprised of the object type and its incompressed size in bytes :param obj_type: pack type_id of the object :param obj_size: uncompressed size in bytes of the following object stream""" c = 0 # 1 byte if PY3: hdr = bytearray() # output string c = (obj_type << 4) | (obj_size & 0xf) obj_size >>= 4 while obj_size: hdr.append(c | 0x80) c = obj_size & 0x7f obj_size >>= 7 # END until size is consumed hdr.append(c) else: hdr = bytes() # output string c = (obj_type << 4) | (obj_size & 0xf) obj_size >>= 4 while obj_size: hdr += chr(c | 0x80) c = obj_size & 0x7f obj_size >>= 7 # END until size is consumed hdr += chr(c) # end handle interpreter return hdr def msb_size(data, offset=0): """ :return: tuple(read_bytes, size) read the msb size from the given random access data starting at the given byte offset""" size = 0 i = 0 l = len(data) hit_msb = False if PY3: while i < l: c = data[i + offset] size |= (c & 0x7f) << i * 7 i += 1 if not c & 0x80: hit_msb = True break # END check msb bit # END while in range else: while i < l: c = ord(data[i + offset]) size |= (c & 0x7f) << i * 7 i += 1 if not c & 0x80: hit_msb = True break # END check msb bit # END while in range # end performance ... if not hit_msb: raise AssertionError("Could not find terminating MSB byte in data stream") return i + offset, size def loose_object_header(type, size): """ :return: bytes representing the loose object header, which is immediately followed by the content stream of size 'size'""" return ('%s %i\0' % (force_text(type), size)).encode('ascii') def write_object(type, size, read, write, chunk_size=chunk_size): """ Write the object as identified by type, size and source_stream into the target_stream :param type: type string of the object :param size: amount of bytes to write from source_stream :param read: read method of a stream providing the content data :param write: write method of the output stream :param close_target_stream: if True, the target stream will be closed when the routine exits, even if an error is thrown :return: The actual amount of bytes written to stream, which includes the header and a trailing newline""" tbw = 0 # total num bytes written # WRITE HEADER: type SP size NULL tbw += write(loose_object_header(type, size)) tbw += stream_copy(read, write, size, chunk_size) return tbw def stream_copy(read, write, size, chunk_size): """ Copy a stream up to size bytes using the provided read and write methods, in chunks of chunk_size **Note:** its much like stream_copy utility, but operates just using methods""" dbw = 0 # num data bytes written # WRITE ALL DATA UP TO SIZE while True: cs = min(chunk_size, size - dbw) # NOTE: not all write methods return the amount of written bytes, like # mmap.write. Its bad, but we just deal with it ... perhaps its not # even less efficient # data_len = write(read(cs)) # dbw += data_len data = read(cs) data_len = len(data) dbw += data_len write(data) if data_len < cs or dbw == size: break # END check for stream end # END duplicate data return dbw def connect_deltas(dstreams): """ Read the condensed delta chunk information from dstream and merge its information into a list of existing delta chunks :param dstreams: iterable of delta stream objects, the delta to be applied last comes first, then all its ancestors in order :return: DeltaChunkList, containing all operations to apply""" tdcl = None # topmost dcl dcl = tdcl = TopdownDeltaChunkList() for dsi, ds in enumerate(dstreams): # print "Stream", dsi db = ds.read() delta_buf_size = ds.size # read header i, base_size = msb_size(db) i, target_size = msb_size(db, i) # interpret opcodes tbw = 0 # amount of target bytes written while i < delta_buf_size: c = ord(db[i]) i += 1 if c & 0x80: cp_off, cp_size = 0, 0 if (c & 0x01): cp_off = ord(db[i]) i += 1 if (c & 0x02): cp_off |= (ord(db[i]) << 8) i += 1 if (c & 0x04): cp_off |= (ord(db[i]) << 16) i += 1 if (c & 0x08): cp_off |= (ord(db[i]) << 24) i += 1 if (c & 0x10): cp_size = ord(db[i]) i += 1 if (c & 0x20): cp_size |= (ord(db[i]) << 8) i += 1 if (c & 0x40): cp_size |= (ord(db[i]) << 16) i += 1 if not cp_size: cp_size = 0x10000 rbound = cp_off + cp_size if (rbound < cp_size or rbound > base_size): break dcl.append(DeltaChunk(tbw, cp_size, cp_off, None)) tbw += cp_size elif c: # NOTE: in C, the data chunks should probably be concatenated here. # In python, we do it as a post-process dcl.append(DeltaChunk(tbw, c, 0, db[i:i + c])) i += c tbw += c else: raise ValueError("unexpected delta opcode 0") # END handle command byte # END while processing delta data dcl.compress() # merge the lists ! if dsi > 0: if not tdcl.connect_with_next_base(dcl): break # END handle merge # prepare next base dcl = DeltaChunkList() # END for each delta stream return tdcl def apply_delta_data(src_buf, src_buf_size, delta_buf, delta_buf_size, write): """ Apply data from a delta buffer using a source buffer to the target file :param src_buf: random access data from which the delta was created :param src_buf_size: size of the source buffer in bytes :param delta_buf_size: size fo the delta buffer in bytes :param delta_buf: random access delta data :param write: write method taking a chunk of bytes **Note:** transcribed to python from the similar routine in patch-delta.c""" i = 0 db = delta_buf if PY3: while i < delta_buf_size: c = db[i] i += 1 if c & 0x80: cp_off, cp_size = 0, 0 if (c & 0x01): cp_off = db[i] i += 1 if (c & 0x02): cp_off |= (db[i] << 8) i += 1 if (c & 0x04): cp_off |= (db[i] << 16) i += 1 if (c & 0x08): cp_off |= (db[i] << 24) i += 1 if (c & 0x10): cp_size = db[i] i += 1 if (c & 0x20): cp_size |= (db[i] << 8) i += 1 if (c & 0x40): cp_size |= (db[i] << 16) i += 1 if not cp_size: cp_size = 0x10000 rbound = cp_off + cp_size if (rbound < cp_size or rbound > src_buf_size): break write(buffer(src_buf, cp_off, cp_size)) elif c: write(db[i:i + c]) i += c else: raise ValueError("unexpected delta opcode 0") # END handle command byte # END while processing delta data else: while i < delta_buf_size: c = ord(db[i]) i += 1 if c & 0x80: cp_off, cp_size = 0, 0 if (c & 0x01): cp_off = ord(db[i]) i += 1 if (c & 0x02): cp_off |= (ord(db[i]) << 8) i += 1 if (c & 0x04): cp_off |= (ord(db[i]) << 16) i += 1 if (c & 0x08): cp_off |= (ord(db[i]) << 24) i += 1 if (c & 0x10): cp_size = ord(db[i]) i += 1 if (c & 0x20): cp_size |= (ord(db[i]) << 8) i += 1 if (c & 0x40): cp_size |= (ord(db[i]) << 16) i += 1 if not cp_size: cp_size = 0x10000 rbound = cp_off + cp_size if (rbound < cp_size or rbound > src_buf_size): break write(buffer(src_buf, cp_off, cp_size)) elif c: write(db[i:i + c]) i += c else: raise ValueError("unexpected delta opcode 0") # END handle command byte # END while processing delta data # end save byte_ord call and prevent performance regression in py2 # yes, lets use the exact same error message that git uses :) assert i == delta_buf_size, "delta replay has gone wild" def is_equal_canonical_sha(canonical_length, match, sha1): """ :return: True if the given lhs and rhs 20 byte binary shas The comparison will take the canonical_length of the match sha into account, hence the comparison will only use the last 4 bytes for uneven canonical representations :param match: less than 20 byte sha :param sha1: 20 byte sha""" binary_length = canonical_length // 2 if match[:binary_length] != sha1[:binary_length]: return False if canonical_length - binary_length and \ (byte_ord(match[-1]) ^ byte_ord(sha1[len(match) - 1])) & 0xf0: return False # END handle uneven canonnical length return True #} END routines try: from gitdb_speedups._perf import connect_deltas except ImportError: pass gitdb2-2.0.3/gitdb/test/0000755000076600000240000000000013163135565015224 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/test_pack.py0000644000076600000240000002221313112567220017542 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Test everything about packs reading and writing""" from gitdb.test.lib import ( TestBase, with_rw_directory, fixture_path ) from gitdb.stream import DeltaApplyReader from gitdb.pack import ( PackEntity, PackIndexFile, PackFile ) from gitdb.base import ( OInfo, OStream, ) from gitdb.fun import delta_types from gitdb.exc import UnsupportedOperation from gitdb.util import to_bin_sha from gitdb.utils.compat import xrange try: from itertools import izip except ImportError: izip = zip from nose import SkipTest import os import tempfile #{ Utilities def bin_sha_from_filename(filename): return to_bin_sha(os.path.splitext(os.path.basename(filename))[0][5:]) #} END utilities class TestPack(TestBase): packindexfile_v1 = (fixture_path('packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx'), 1, 67) packindexfile_v2 = (fixture_path('packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx'), 2, 30) packindexfile_v2_3_ascii = (fixture_path('packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx'), 2, 42) packfile_v2_1 = (fixture_path('packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack'), 2, packindexfile_v1[2]) packfile_v2_2 = (fixture_path('packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack'), 2, packindexfile_v2[2]) packfile_v2_3_ascii = ( fixture_path('packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack'), 2, packindexfile_v2_3_ascii[2]) def _assert_index_file(self, index, version, size): assert index.packfile_checksum() != index.indexfile_checksum() assert len(index.packfile_checksum()) == 20 assert len(index.indexfile_checksum()) == 20 assert index.version() == version assert index.size() == size assert len(index.offsets()) == size # get all data of all objects for oidx in xrange(index.size()): sha = index.sha(oidx) assert oidx == index.sha_to_index(sha) entry = index.entry(oidx) assert len(entry) == 3 assert entry[0] == index.offset(oidx) assert entry[1] == sha assert entry[2] == index.crc(oidx) # verify partial sha for l in (4, 8, 11, 17, 20): assert index.partial_sha_to_index(sha[:l], l * 2) == oidx # END for each object index in indexfile self.failUnlessRaises(ValueError, index.partial_sha_to_index, "\0", 2) def _assert_pack_file(self, pack, version, size): assert pack.version() == 2 assert pack.size() == size assert len(pack.checksum()) == 20 num_obj = 0 for obj in pack.stream_iter(): num_obj += 1 info = pack.info(obj.pack_offset) stream = pack.stream(obj.pack_offset) assert info.pack_offset == stream.pack_offset assert info.type_id == stream.type_id assert hasattr(stream, 'read') # it should be possible to read from both streams assert obj.read() == stream.read() streams = pack.collect_streams(obj.pack_offset) assert streams # read the stream try: dstream = DeltaApplyReader.new(streams) except ValueError: # ignore these, old git versions use only ref deltas, # which we havent resolved ( as we are without an index ) # Also ignore non-delta streams continue # END get deltastream # read all data = dstream.read() assert len(data) == dstream.size # test seek dstream.seek(0) assert dstream.read() == data # read chunks # NOTE: the current implementation is safe, it basically transfers # all calls to the underlying memory map # END for each object assert num_obj == size def test_pack_index(self): # check version 1 and 2 for indexfile, version, size in (self.packindexfile_v1, self.packindexfile_v2): index = PackIndexFile(indexfile) self._assert_index_file(index, version, size) # END run tests def test_pack(self): # there is this special version 3, but apparently its like 2 ... for packfile, version, size in (self.packfile_v2_3_ascii, self.packfile_v2_1, self.packfile_v2_2): pack = PackFile(packfile) self._assert_pack_file(pack, version, size) # END for each pack to test @with_rw_directory def test_pack_entity(self, rw_dir): pack_objs = list() for packinfo, indexinfo in ((self.packfile_v2_1, self.packindexfile_v1), (self.packfile_v2_2, self.packindexfile_v2), (self.packfile_v2_3_ascii, self.packindexfile_v2_3_ascii)): packfile, version, size = packinfo indexfile, version, size = indexinfo entity = PackEntity(packfile) assert entity.pack().path() == packfile assert entity.index().path() == indexfile pack_objs.extend(entity.stream_iter()) count = 0 for info, stream in izip(entity.info_iter(), entity.stream_iter()): count += 1 assert info.binsha == stream.binsha assert len(info.binsha) == 20 assert info.type_id == stream.type_id assert info.size == stream.size # we return fully resolved items, which is implied by the sha centric access assert not info.type_id in delta_types # try all calls assert len(entity.collect_streams(info.binsha)) oinfo = entity.info(info.binsha) assert isinstance(oinfo, OInfo) assert oinfo.binsha is not None ostream = entity.stream(info.binsha) assert isinstance(ostream, OStream) assert ostream.binsha is not None # verify the stream try: assert entity.is_valid_stream(info.binsha, use_crc=True) except UnsupportedOperation: pass # END ignore version issues assert entity.is_valid_stream(info.binsha, use_crc=False) # END for each info, stream tuple assert count == size # END for each entity # pack writing - write all packs into one # index path can be None pack_path1 = tempfile.mktemp('', "pack1", rw_dir) pack_path2 = tempfile.mktemp('', "pack2", rw_dir) index_path = tempfile.mktemp('', 'index', rw_dir) iteration = 0 def rewind_streams(): for obj in pack_objs: obj.stream.seek(0) # END utility for ppath, ipath, num_obj in zip((pack_path1, pack_path2), (index_path, None), (len(pack_objs), None)): iwrite = None if ipath: ifile = open(ipath, 'wb') iwrite = ifile.write # END handle ip # make sure we rewind the streams ... we work on the same objects over and over again if iteration > 0: rewind_streams() # END rewind streams iteration += 1 with open(ppath, 'wb') as pfile: pack_sha, index_sha = PackEntity.write_pack(pack_objs, pfile.write, iwrite, object_count=num_obj) assert os.path.getsize(ppath) > 100 # verify pack pf = PackFile(ppath) assert pf.size() == len(pack_objs) assert pf.version() == PackFile.pack_version_default assert pf.checksum() == pack_sha pf.close() # verify index if ipath is not None: ifile.close() assert os.path.getsize(ipath) > 100 idx = PackIndexFile(ipath) assert idx.version() == PackIndexFile.index_version_default assert idx.packfile_checksum() == pack_sha assert idx.indexfile_checksum() == index_sha assert idx.size() == len(pack_objs) idx.close() # END verify files exist # END for each packpath, indexpath pair # verify the packs thoroughly rewind_streams() entity = PackEntity.create(pack_objs, rw_dir) count = 0 for info in entity.info_iter(): count += 1 for use_crc in range(2): assert entity.is_valid_stream(info.binsha, use_crc) # END for each crc mode # END for each info assert count == len(pack_objs) entity.close() def test_pack_64(self): # TODO: hex-edit a pack helping us to verify that we can handle 64 byte offsets # of course without really needing such a huge pack raise SkipTest() gitdb2-2.0.3/gitdb/test/lib.py0000644000076600000240000001370112765303653016350 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Utilities used in ODB testing""" from gitdb import OStream from gitdb.utils.compat import xrange import sys import random from array import array from io import BytesIO import glob import unittest import tempfile import shutil import os import gc import logging from functools import wraps #{ Bases class TestBase(unittest.TestCase): """Base class for all tests TestCase providing access to readonly repositories using the following member variables. * gitrepopath * read-only base path of the git source repository, i.e. .../git/.git """ #{ Invvariants k_env_git_repo = "GITDB_TEST_GIT_REPO_BASE" #} END invariants @classmethod def setUpClass(cls): try: super(TestBase, cls).setUpClass() except AttributeError: pass cls.gitrepopath = os.environ.get(cls.k_env_git_repo) if not cls.gitrepopath: logging.info( "You can set the %s environment variable to a .git repository of your choice - defaulting to the gitdb repository", cls.k_env_git_repo) ospd = os.path.dirname cls.gitrepopath = os.path.join(ospd(ospd(ospd(__file__))), '.git') # end assure gitrepo is set assert cls.gitrepopath.endswith('.git') #} END bases #{ Decorators def skip_on_travis_ci(func): """All tests decorated with this one will raise SkipTest when run on travis ci. Use it to workaround difficult to solve issues NOTE: copied from bcore (https://github.com/Byron/bcore)""" @wraps(func) def wrapper(self, *args, **kwargs): if 'TRAVIS' in os.environ: import nose raise nose.SkipTest("Cannot run on travis-ci") # end check for travis ci return func(self, *args, **kwargs) # end wrapper return wrapper def with_rw_directory(func): """Create a temporary directory which can be written to, remove it if the test succeeds, but leave it otherwise to aid additional debugging""" def wrapper(self): path = tempfile.mktemp(prefix=func.__name__) os.mkdir(path) keep = False try: try: return func(self, path) except Exception: sys.stderr.write("Test %s.%s failed, output is at %r\n" % (type(self).__name__, func.__name__, path)) keep = True raise finally: # Need to collect here to be sure all handles have been closed. It appears # a windows-only issue. In fact things should be deleted, as well as # memory maps closed, once objects go out of scope. For some reason # though this is not the case here unless we collect explicitly. if not keep: gc.collect() shutil.rmtree(path) # END handle exception # END wrapper wrapper.__name__ = func.__name__ return wrapper def with_packs_rw(func): """Function that provides a path into which the packs for testing should be copied. Will pass on the path to the actual function afterwards""" def wrapper(self, path): src_pack_glob = fixture_path('packs/*') copy_files_globbed(src_pack_glob, path, hard_link_ok=True) return func(self, path) # END wrapper wrapper.__name__ = func.__name__ return wrapper #} END decorators #{ Routines def fixture_path(relapath=''): """:return: absolute path into the fixture directory :param relapath: relative path into the fixtures directory, or '' to obtain the fixture directory itself""" return os.path.join(os.path.dirname(__file__), 'fixtures', relapath) def copy_files_globbed(source_glob, target_dir, hard_link_ok=False): """Copy all files found according to the given source glob into the target directory :param hard_link_ok: if True, hard links will be created if possible. Otherwise the files will be copied""" for src_file in glob.glob(source_glob): if hard_link_ok and hasattr(os, 'link'): target = os.path.join(target_dir, os.path.basename(src_file)) try: os.link(src_file, target) except OSError: shutil.copy(src_file, target_dir) # END handle cross device links ( and resulting failure ) else: shutil.copy(src_file, target_dir) # END try hard link # END for each file to copy def make_bytes(size_in_bytes, randomize=False): """:return: string with given size in bytes :param randomize: try to produce a very random stream""" actual_size = size_in_bytes // 4 producer = xrange(actual_size) if randomize: producer = list(producer) random.shuffle(producer) # END randomize a = array('i', producer) return a.tostring() def make_object(type, data): """:return: bytes resembling an uncompressed object""" odata = "blob %i\0" % len(data) return odata.encode("ascii") + data def make_memory_file(size_in_bytes, randomize=False): """:return: tuple(size_of_stream, stream) :param randomize: try to produce a very random stream""" d = make_bytes(size_in_bytes, randomize) return len(d), BytesIO(d) #} END routines #{ Stream Utilities class DummyStream(object): def __init__(self): self.was_read = False self.bytes = 0 self.closed = False def read(self, size): self.was_read = True self.bytes = size def close(self): self.closed = True def _assert(self): assert self.was_read class DeriveTest(OStream): def __init__(self, sha, type, size, stream, *args, **kwargs): self.myarg = kwargs.pop('myarg') self.args = args def _assert(self): assert self.args assert self.myarg #} END stream utilitiess gitdb2-2.0.3/gitdb/test/__init__.py0000644000076600000240000000032212637461244017333 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php gitdb2-2.0.3/gitdb/test/test_util.py0000644000076600000240000000627512765303653017626 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Test for object db""" import tempfile import os from gitdb.test.lib import TestBase from gitdb.util import ( to_hex_sha, to_bin_sha, NULL_HEX_SHA, LockedFD ) class TestUtils(TestBase): def test_basics(self): assert to_hex_sha(NULL_HEX_SHA) == NULL_HEX_SHA assert len(to_bin_sha(NULL_HEX_SHA)) == 20 assert to_hex_sha(to_bin_sha(NULL_HEX_SHA)) == NULL_HEX_SHA.encode("ascii") def _cmp_contents(self, file_path, data): # raise if data from file at file_path # does not match data string with open(file_path, "rb") as fp: assert fp.read() == data.encode("ascii") def test_lockedfd(self): my_file = tempfile.mktemp() orig_data = "hello" new_data = "world" with open(my_file, "wb") as my_file_fp: my_file_fp.write(orig_data.encode("ascii")) try: lfd = LockedFD(my_file) lockfilepath = lfd._lockfilepath() # cannot end before it was started self.failUnlessRaises(AssertionError, lfd.rollback) self.failUnlessRaises(AssertionError, lfd.commit) # open for writing assert not os.path.isfile(lockfilepath) wfd = lfd.open(write=True) assert lfd._fd is wfd assert os.path.isfile(lockfilepath) # write data and fail os.write(wfd, new_data.encode("ascii")) lfd.rollback() assert lfd._fd is None self._cmp_contents(my_file, orig_data) assert not os.path.isfile(lockfilepath) # additional call doesn't fail lfd.commit() lfd.rollback() # test reading lfd = LockedFD(my_file) rfd = lfd.open(write=False) assert os.read(rfd, len(orig_data)) == orig_data.encode("ascii") assert os.path.isfile(lockfilepath) # deletion rolls back del(lfd) assert not os.path.isfile(lockfilepath) # write data - concurrently lfd = LockedFD(my_file) olfd = LockedFD(my_file) assert not os.path.isfile(lockfilepath) wfdstream = lfd.open(write=True, stream=True) # this time as stream assert os.path.isfile(lockfilepath) # another one fails self.failUnlessRaises(IOError, olfd.open) wfdstream.write(new_data.encode("ascii")) lfd.commit() assert not os.path.isfile(lockfilepath) self._cmp_contents(my_file, new_data) # could test automatic _end_writing on destruction finally: os.remove(my_file) # END final cleanup # try non-existing file for reading lfd = LockedFD(tempfile.mktemp()) try: lfd.open(write=False) except OSError: assert not os.path.exists(lfd._lockfilepath()) else: self.fail("expected OSError") # END handle exceptions gitdb2-2.0.3/gitdb/test/db/0000755000076600000240000000000013163135565015611 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/db/test_pack.py0000644000076600000240000000545113112567220020134 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php from gitdb.test.db.lib import ( TestDBBase, with_rw_directory, with_packs_rw ) from gitdb.db import PackedDB from gitdb.exc import BadObject, AmbiguousObjectName from gitdb.util import mman import os import random import sys from nose.plugins.skip import SkipTest class TestPackDB(TestDBBase): @with_rw_directory @with_packs_rw def test_writing(self, path): if sys.platform == "win32": raise SkipTest("FIXME: Currently fail on windows") pdb = PackedDB(path) # on demand, we init our pack cache num_packs = len(pdb.entities()) assert pdb._st_mtime != 0 # test pack directory changed: # packs removed - rename a file, should affect the glob pack_path = pdb.entities()[0].pack().path() new_pack_path = pack_path + "renamed" if sys.platform == "win32": # While using this function, we are not allowed to have any handle # to this path, which is currently not the case. The pack caching # does still have a handle :-( mman.force_map_handle_removal_win(pack_path) os.rename(pack_path, new_pack_path) pdb.update_cache(force=True) assert len(pdb.entities()) == num_packs - 1 # packs added os.rename(new_pack_path, pack_path) pdb.update_cache(force=True) assert len(pdb.entities()) == num_packs # bang on the cache # access the Entities directly, as there is no iteration interface # yet ( or required for now ) sha_list = list(pdb.sha_iter()) assert len(sha_list) == pdb.size() # hit all packs in random order random.shuffle(sha_list) for sha in sha_list: pdb.info(sha) pdb.stream(sha) # END for each sha to query # test short finding - be a bit more brutal here max_bytes = 19 min_bytes = 2 num_ambiguous = 0 for i, sha in enumerate(sha_list): short_sha = sha[:max((i % max_bytes), min_bytes)] try: assert pdb.partial_to_complete_sha(short_sha, len(short_sha) * 2) == sha except AmbiguousObjectName: num_ambiguous += 1 pass # valid, we can have short objects # END exception handling # END for each sha to find # we should have at least one ambiguous, considering the small sizes # but in our pack, there is no ambigious ... # assert num_ambiguous # non-existing self.failUnlessRaises(BadObject, pdb.partial_to_complete_sha, b'\0\0', 4) gitdb2-2.0.3/gitdb/test/db/lib.py0000644000076600000240000001106512637461244016735 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Base classes for object db testing""" from gitdb.test.lib import ( with_rw_directory, with_packs_rw, fixture_path, TestBase ) from gitdb.stream import ( Sha1Writer, ZippedStoreShaWriter ) from gitdb.base import ( IStream, OStream, OInfo ) from gitdb.exc import BadObject from gitdb.typ import str_blob_type from gitdb.utils.compat import xrange from io import BytesIO from struct import pack __all__ = ('TestDBBase', 'with_rw_directory', 'with_packs_rw', 'fixture_path') class TestDBBase(TestBase): """Base class providing testing routines on databases""" # data two_lines = b'1234\nhello world' all_data = (two_lines, ) def _assert_object_writing_simple(self, db): # write a bunch of objects and query their streams and info null_objs = db.size() ni = 250 for i in xrange(ni): data = pack(">L", i) istream = IStream(str_blob_type, len(data), BytesIO(data)) new_istream = db.store(istream) assert new_istream is istream assert db.has_object(istream.binsha) info = db.info(istream.binsha) assert isinstance(info, OInfo) assert info.type == istream.type and info.size == istream.size stream = db.stream(istream.binsha) assert isinstance(stream, OStream) assert stream.binsha == info.binsha and stream.type == info.type assert stream.read() == data # END for each item assert db.size() == null_objs + ni shas = list(db.sha_iter()) assert len(shas) == db.size() assert len(shas[0]) == 20 def _assert_object_writing(self, db): """General tests to verify object writing, compatible to ObjectDBW **Note:** requires write access to the database""" # start in 'dry-run' mode, using a simple sha1 writer ostreams = (ZippedStoreShaWriter, None) for ostreamcls in ostreams: for data in self.all_data: dry_run = ostreamcls is not None ostream = None if ostreamcls is not None: ostream = ostreamcls() assert isinstance(ostream, Sha1Writer) # END create ostream prev_ostream = db.set_ostream(ostream) assert type(prev_ostream) in ostreams or prev_ostream in ostreams istream = IStream(str_blob_type, len(data), BytesIO(data)) # store returns same istream instance, with new sha set my_istream = db.store(istream) sha = istream.binsha assert my_istream is istream assert db.has_object(sha) != dry_run assert len(sha) == 20 # verify data - the slow way, we want to run code if not dry_run: info = db.info(sha) assert str_blob_type == info.type assert info.size == len(data) ostream = db.stream(sha) assert ostream.read() == data assert ostream.type == str_blob_type assert ostream.size == len(data) else: self.failUnlessRaises(BadObject, db.info, sha) self.failUnlessRaises(BadObject, db.stream, sha) # DIRECT STREAM COPY # our data hase been written in object format to the StringIO # we pasesd as output stream. No physical database representation # was created. # Test direct stream copy of object streams, the result must be # identical to what we fed in ostream.seek(0) istream.stream = ostream assert istream.binsha is not None prev_sha = istream.binsha db.set_ostream(ZippedStoreShaWriter()) db.store(istream) assert istream.binsha == prev_sha new_ostream = db.ostream() # note: only works as long our store write uses the same compression # level, which is zip_best assert ostream.getvalue() == new_ostream.getvalue() # END for each data set # END for each dry_run mode gitdb2-2.0.3/gitdb/test/db/test_loose.py0000644000076600000240000000211712765303653020346 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php from gitdb.test.db.lib import ( TestDBBase, with_rw_directory ) from gitdb.db import LooseObjectDB from gitdb.exc import BadObject from gitdb.util import bin_to_hex class TestLooseDB(TestDBBase): @with_rw_directory def test_basics(self, path): ldb = LooseObjectDB(path) # write data self._assert_object_writing(ldb) # verify sha iteration and size shas = list(ldb.sha_iter()) assert shas and len(shas[0]) == 20 assert len(shas) == ldb.size() # verify find short object long_sha = bin_to_hex(shas[-1]) for short_sha in (long_sha[:20], long_sha[:5]): assert bin_to_hex(ldb.partial_to_complete_sha_hex(short_sha)) == long_sha # END for each sha self.failUnlessRaises(BadObject, ldb.partial_to_complete_sha_hex, '0000') # raises if no object could be found gitdb2-2.0.3/gitdb/test/db/test_git.py0000644000076600000240000000342512637461244020012 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php import os from gitdb.test.db.lib import ( TestDBBase, with_rw_directory ) from gitdb.exc import BadObject from gitdb.db import GitDB from gitdb.base import OStream, OInfo from gitdb.util import bin_to_hex class TestGitDB(TestDBBase): def test_reading(self): gdb = GitDB(os.path.join(self.gitrepopath, 'objects')) # we have packs and loose objects, alternates doesn't necessarily exist assert 1 < len(gdb.databases()) < 4 # access should be possible gitdb_sha = next(gdb.sha_iter()) assert isinstance(gdb.info(gitdb_sha), OInfo) assert isinstance(gdb.stream(gitdb_sha), OStream) ni = 50 assert gdb.size() >= ni sha_list = list(gdb.sha_iter()) assert len(sha_list) == gdb.size() sha_list = sha_list[:ni] # speed up tests ... # This is actually a test for compound functionality, but it doesn't # have a separate test module # test partial shas # this one as uneven and quite short gitdb_sha_hex = bin_to_hex(gitdb_sha) assert gdb.partial_to_complete_sha_hex(gitdb_sha_hex[:5]) == gitdb_sha # mix even/uneven hexshas for i, binsha in enumerate(sha_list): assert gdb.partial_to_complete_sha_hex(bin_to_hex(binsha)[:8 - (i % 2)]) == binsha # END for each sha self.failUnlessRaises(BadObject, gdb.partial_to_complete_sha_hex, "0000") @with_rw_directory def test_writing(self, path): gdb = GitDB(path) # its possible to write objects self._assert_object_writing(gdb) gitdb2-2.0.3/gitdb/test/db/__init__.py0000644000076600000240000000032212637461244017720 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php gitdb2-2.0.3/gitdb/test/db/test_mem.py0000644000076600000240000000171412637461244020004 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php from gitdb.test.db.lib import ( TestDBBase, with_rw_directory ) from gitdb.db import ( MemoryDB, LooseObjectDB ) class TestMemoryDB(TestDBBase): @with_rw_directory def test_writing(self, path): mdb = MemoryDB() # write data self._assert_object_writing_simple(mdb) # test stream copy ldb = LooseObjectDB(path) assert ldb.size() == 0 num_streams_copied = mdb.stream_copy(mdb.sha_iter(), ldb) assert num_streams_copied == mdb.size() assert ldb.size() == mdb.size() for sha in mdb.sha_iter(): assert ldb.has_object(sha) assert ldb.stream(sha).read() == mdb.stream(sha).read() # END verify objects where copied and are equal gitdb2-2.0.3/gitdb/test/db/test_ref.py0000644000076600000240000000342512765303653020004 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php from gitdb.test.db.lib import ( TestDBBase, with_rw_directory, ) from gitdb.db import ReferenceDB from gitdb.util import ( NULL_BIN_SHA, hex_to_bin ) import os class TestReferenceDB(TestDBBase): def make_alt_file(self, alt_path, alt_list): """Create an alternates file which contains the given alternates. The list can be empty""" with open(alt_path, "wb") as alt_file: for alt in alt_list: alt_file.write(alt.encode("utf-8") + "\n".encode("ascii")) @with_rw_directory def test_writing(self, path): alt_path = os.path.join(path, 'alternates') rdb = ReferenceDB(alt_path) assert len(rdb.databases()) == 0 assert rdb.size() == 0 assert len(list(rdb.sha_iter())) == 0 # try empty, non-existing assert not rdb.has_object(NULL_BIN_SHA) # setup alternate file # add two, one is invalid own_repo_path = os.path.join(self.gitrepopath, 'objects') # use own repo self.make_alt_file(alt_path, [own_repo_path, "invalid/path"]) rdb.update_cache() assert len(rdb.databases()) == 1 # we should now find a default revision of ours gitdb_sha = next(rdb.sha_iter()) assert rdb.has_object(gitdb_sha) # remove valid self.make_alt_file(alt_path, ["just/one/invalid/path"]) rdb.update_cache() assert len(rdb.databases()) == 0 # add valid self.make_alt_file(alt_path, [own_repo_path]) rdb.update_cache() assert len(rdb.databases()) == 1 gitdb2-2.0.3/gitdb/test/test_example.py0000644000076600000240000000253312637461244020274 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Module with examples from the tutorial section of the docs""" import os from gitdb.test.lib import TestBase from gitdb import IStream from gitdb.db import LooseObjectDB from io import BytesIO class TestExamples(TestBase): def test_base(self): ldb = LooseObjectDB(os.path.join(self.gitrepopath, 'objects')) for sha1 in ldb.sha_iter(): oinfo = ldb.info(sha1) ostream = ldb.stream(sha1) assert oinfo[:3] == ostream[:3] assert len(ostream.read()) == ostream.size assert ldb.has_object(oinfo.binsha) # END for each sha in database # assure we close all files try: del(ostream) del(oinfo) except UnboundLocalError: pass # END ignore exception if there are no loose objects data = "my data".encode("ascii") istream = IStream("blob", len(data), BytesIO(data)) # the object does not yet have a sha assert istream.binsha is None ldb.store(istream) # now the sha is set assert len(istream.binsha) == 20 assert ldb.has_object(istream.binsha) gitdb2-2.0.3/gitdb/test/fixtures/0000755000076600000240000000000013163135565017075 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/fixtures/objects/0000755000076600000240000000000013163135565020526 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/fixtures/objects/7b/0000755000076600000240000000000013163135565021036 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/fixtures/objects/7b/b839852ed5e3a069966281bb08d50012fb309b0000644000076600000240000000067612637461244025763 0ustar byronstaff00000000000000x+)JMU052b040031QÐKÏ,I,))ÊL*-I-fØeäb,v%…ïì‚Ó'T>;§§ûª2‘AJÁzaGÅÌw9ævX~{ƺÌ.&™–™“ÊÔ÷åÐ {ÞiN—Ì}~Ä(z§_TAÂÌW/EhøÞЫµ¶ô2S[åï9ÏÄ’3ŠäH/ß±ÈWÒNÕðd­þ„—eÌs ZSRsâóóâ“s2SóJ*¦uDjž{¿»rcÛn[ Õ›u뼡 Ótâ.lzúô¬qydUgiHÊrnÞPÉœüäøÄ”oõói¦F:<±ý}—îÙå„ 1!)ÉÍOal©îØâö¬&A<¢¼üû¯³ò ¡J€Ò™i™©) óæ{t?ºûáõÆä‡ë£ÙZ·ïšsÊ⛂¢†´åáóÛ=»-‹`U\¦d¿/_!"[œZÂpw[aæœÏÇî øj«Ú4ßæ¤& 5¿4¯(5'±$5% ñ¹‰™y ©¾ö3r™|^ÙÌdfù°ÿÉ }XР)/®ÌKƧ¼Š!Ì9~:·ÎA†÷;¿Mj5˜´åË’×¾VΉgitdb2-2.0.3/gitdb/test/fixtures/objects/88/0000755000076600000240000000000013163135565020765 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/fixtures/objects/88/8401851f15db0eed60eb1bc29dec5ddcace9110000644000076600000240000066220012637461244026467 0ustar byronstaff00000000000000xŒšSp.L¦cÛ¶mÛ¶mã$ùbÛ¶NlÛ¶m;9±ì¿ºÞ}kjjº¦º/榟êwLìMˆXXXX™¹€ˆùŒM­`ÌÌM¬èM¬Œ=‰ˆˆ˜Ù˜¹¹8YÙY9ˆˆ˜þ‹ÿïÎÌÄÄÁÆFDôßú?2‚aa`‚1ut8;Ú1Œ,½þßù,œ¬\ÿ»€ a4Ðÿèµ–¯ãv+þlßRÙþb¡ð¾tbÊqë@#÷5 ‘ý|³~ ½Ö»W™%tÒl/Ú§È'Þ§‰7UE×%¡´ŽZ¼S+µ™ÿí±óó~l0HfʪÇ7÷…žT–JªöfS̤˜€ìúsð ”ç<ûÌŸ=oÁ•_Úçׯ=ûOÎjòaýtsÎç¹;Àyí_G<„’0r-cñÓò˜Ã36÷,eÅñÚ[ÒjÍN†6¯»)ç*”Wñý„Š5™0øÍSl[2˵"»&{WÎØÃIœmª Bèªê ›\ø¸&¾–‹eyC‹#>3m‹‡„,.TÏG>ÌU%Âöñ¸±Á+„¦ yýüŽ2>õ´’˜-9[—kÜîæÛîC\0¨ó1eÖT!¦)Þ”äêÚj.‹¤žíŽ´ß6xâðCp™f«*iC…ÖlÔkS¹´µ’©³k¢Ø¥Æ4mQèQ<Ù“³°vIè»XÄ K’²tÄñC0òMË“ÍH·Å¼æ*Ô|g1èÊkÁ­3]9QÎV‰N§Â·v6jã=²%Îëõ%÷å^ó—ÒaN¢.¡ã -"6#|3ðŠÚiQ_Vj‚Ç2}î«fJ¼™Ô©%º5‰¶öׯñÅ`¦ÊÅêÖ“Õ:{C“^ïaмÅ^95ˆkíáÊ̳Ѱ~3&‰l‘È¢½þfNûªÅvÿ~´heÏ>ÓE—(Àѳ Îñ?OÎ*\3ÑVym{©y)\bù ÆÿESúû6ð=–.?;›š±`ÃóÑDò¦/íÛ×óÁs n{¸®h*äñ{;ÉŠ%ª «b<°3YG›CpnÈ.ìN±]…·SèR)ö‹¨fq—Â^Xc8§òP圾2û~Ÿl¤§Óªlòp¹Â|&¬ã˜iŒùÚdºÑÍ5}z\I¬Ù²_’jk§òÞvc³0Àœ•4cOe°Öo‹lw‰n5×u:÷`£x$=í*üL{ëPa!‡m0ÅkËàÊK®hGù6Åuë¢tgT)‘ú‘bXÈk,·µGXa»ÚÃ5®3;sÕ,C—±§ru&St0VŒ`ÊLéØÝ“ÎÝT&ÊP€§$†’ÁÏîèàWíÎwŠ©÷ʾTÆ`'‘[Ѓ³a 91•â”ІW÷DizÚEK;дóAHW„ºõ„¤²²÷o(ÔMênÖ{”?ñpÒ+¨G¨B¦BLÈ¡r·Äô˽í¢Êmj¶`®Xó a}K•‚ÅÝ2Ù“¿ŒŽþٯ̣ôú4Å-2lËgäȦ„¨Ž®ø‚vÏl8?M wét^ B<ÐQÖñÏ`®YÐÅhÄÚ¥‹$°5t’ïž&÷DC61é~Íà ?C¬øß’fË;“Î)u”ȹÊñÚô‰g°ù(»wûû1îz'·‘ᦴ1ÙªëÌ.Ó`% Fƒh§«|¸UçØñEõ8ËÄ£¹'¡¬Èÿe¾FŠóÂ[kEë@ ÖÇ&ˆÌꔣ—¿´5â]z-ªU‰T§Ä¨âDcYjÏ‚Q…šüwsö;dò0m…9>üWwz^¤9©C|ìÚ¦³AG?YK‹`‡ôË:gÝ1Ý3½}­ÃS‰H‘¢½Ê­±]^»˜CLà1‚nÄ“»3à¬Î(G7^¡4P€x¯«] ®¨Üò'„b漆níyÈX”.|”—ädkðÇ êžÅ1$Yd@fxë †¨×0](è´¯Xo–Ø’;û»ÓÜÒºíøl[ÛíØ6¼‘FËõoÞ~ïä=/ºèÑòè=þàùýëãn÷¶ìÁ7ùÉ6¯[’à6 "ŒÜU½‡¤=WÀoöèWž³ÀçïVÿãÅËu ÞÚÜÞG­ä?ù{…ŽÅ›) ÀÍB‘7‘ïæ â¯-dû5õ‚n™Øƒ\úÝ$Š›¿L/ö©å϶&¼\/ežœ(&ýþ¸ÛÚ«ù$“+=2¹"eÝ£Ã}áò60¹eïsË¥¢´:NÕxx¼¹ÏDúCQò:KÍGnºéÚ³Wü'#àÚáBïó> / ÛÁ÷!uL¤U•`ñËïü ZÛQ‰AQÁGÄF°Ù"»{½f †3¤ýO,?¶)訶¿ÈUí5f©û±a±M×E—ÁØK-qo/¼ñ–Ws2Ô½þíf¥ðcçRm|¬€_¿†!ME—cÇ wÕ)ŒŸ) òû{þ?^x ¿(Œ?²6 챉>–±~½ôÌÕÕÐ3ö~ûè<­) ~ÚI÷4Æ¿Æ|ÇNVŽÒ‡U†tØMÕÚæ?×b®z蟇B©0;(¾MvÂù!^Aƒö…W‹d‡G[Åé Ú6óµnueËSßòýžH'x×ÅØò‰u ð37K½Zl¾Dœé¶P¢UîB|Œ.Ίê I] h[ÍduÈê'å×®V׬ݢ×ð×|MAÿ†s¢L õš^-⸂ƒ}†gÔ ò¡ÁÒ'3v9ë²`ŽüÓÊR%бùäIÃÍkf\‹~Hº6:"6»¨Ó0ì¼(Ä•ø<×ô‘ÉœýmØõ´|”MõøþbìÈxüe,ü‘¤ãªõ¿†ºDìz‘xÔø!`ðÁ.rŠ|ŽçBS|V]ѵLHÙ wè žm¾“åçÇ›©ÃÇ‹+i¿´Cv´­cÀˆX犫vèÏßz+‹ëÓ×ÿÛ› :3×ÉÝ9Ó=IøµÍ[rì>vKö»–ºèSÆf:ƒÍj1Áüÿs8ÒŒþ‘‘²JR23ÿ/ÔõøuÿÓÿ‹–Y˜¹Y¹þïÁ|szié[“ìr€cüG¾Æ“¢ÃKÛÛ} LØn<_àÔ~|OôÁiŠ"5³°™á×í9Ë)@‡m °uS4eÖ¡…NÑmG4Ô$¼¤ ±Ù9:Yèø#×ff2“¸?ÂX(ÅÙ6®÷ tÕן:]ØÊlœ6™¶8-0LaùI¸‡Eúâƒ× ˜p;¤oÔüü‚Õ€ób[öëѾ~1Ð@Ñè2œµè4D:ý’[ +·`0™v!cŽ—ÄéÊ>Å+ ˆ"·„ëú·AÊ*Ã']݅ų_KCN¿Zš4°ÎLËr³ú*\Gƒ»êÙ¹(¯º”}8„xÅgŒ@y&«´Ð3iep%'ØR¨þɯaoŸa\ý¸»ôBISÍêÇ*×ø—w‰ÅÅï‰]Œ†ZªN~ÕÆ½UÀ)v`Æxù³KÄÆ¤$e£(åÃd›×6Ù’Å¢–HëžuµƒTâ.œ”ƒèš’`,¿ëYcG¸¡UeC0½1$ÀbwÈΦ†|GCÇ÷HTÓíU9&Œ‡Û™ßÈËé9ƲDÝ]žVf¾‡n ‘â÷{EMë€W ¹N ïƒ»õjv i'7à³&_¿«hs?ÏËá_¨ SGžP(ƒ;¯˜Ö?Á%,£Ñ‚³N '|7P"µ¶#Ëõ£çÄós¤2Ýn¡r¶€…Eãª8é©­EáÈ*b¸Ä £™ú© z·e6m)B# gF5cvœ¦Ê JÓÒÜz þ)ÖxÄ”O˜Ugl·¯å¿tÀé¦ÃÑ‹+‡hz9¬õ"}äË.”îInlŽu..—_×W•4†»{8Áâû yÐ0è?Ÿ”›®•ä#†˜óØÑß1¤“N®â(ò«ðnJ89„ûiÇYm€Hjø¸á³ ©¥¼¾¼ÓkEñCš$b9T_ý{©%ósJ:-çÉ–ájÞec´áÚ¯ÄÉq>tò8„·šÖBÝØ$úÈèy}˜R~¡å]†öR0ëh ty'Yø×ù»2tC\ŸfZšn¤‚Çâfù‚ÙÐÖãE6Ê æ@˜÷µ£1G¾ÌjÒ¼'ëÒÚ—c§STQ8ðBTÊåäšÃæÄYtÅ"ÂÐG#ÁˆMø±NûÇOr rÁw à‡€gÀz¥»¡•´Šv(èQš·®6oȇ…ß%ïÜÀxNqûQä ê•UìµG_2ôC$nÃ拾L¬c¬’…Å>…‘ÊœŸgmÃê2y1XÏ»´%^vÆ; ÊU<mÌ@HiÛ) aš‚†$fxÍ'Í¢°Ý,Q´Ÿ‘êEšRC[FÓ&Ái~´Àîü³CÐæcŽYC°þÐØ‹H/Ó—‰’í¹“Fè¼ bfèŒCˆµ×ƒ늩ƒ¿Ô¡GËuêõ;*Æ部ákXØäàWctžnºwFâÔ‰ i¡x=Ð[2“ Üäj˜aW¶ï*6gR¸Lah-Bd³Ãè#TýNÞ;áêµMuVyý5²„0GÜ…Cþ­Œ_=ë¡e©”Ÿ –¿V‰ÃÃ#ÓôÇгÛYyùžÑ>CqË¿\œùö 5¬ ]ˆêúßúšE\ïι{† 38FS3 ^gõœ›­ºKÇbwÍ«X‰WÉê;bÁ_ åÿ®SŒ×è‹È‡eÄz&k98S·”ôw¡aS9îÐñ¼Ú©£!•EØÅ*¯ùù>û@D×z8eÌ3õm.NÉ;^.üë„Ë”¬P#­Ñ•)€†sZš+¦c{æí -le~߯9 Y „¿¦±¬§åqòÁ¢‹¦AìÐ=˜°ÆûÕuãìnXédq€ç¿ËË'B<E¹<Üœ‹.2L'ê›èº\[6 ‘£0eÕc–Áƒ#Òˆ'`5ñc­ìq´­ìgƒxš„õކ´.qäçYëÉ«×Çž1ÝŽ$ag\½ˆQ- 5Àr`©”d@üÖòžRN…œÂÓ·åõ Lº±â©(ÄúúrÜ9‰Ü‘g£Ž 6;¦Fâ¼€U b‚áI‰ÚùŒ<çÞ?YÉExÀ™ÌÌÐH§vÉç±ü[kÂl†Òw ±p[u¢Õ‹¢²µ$3ðLYE™ ÿiüô Ú\Ã<Ðù =¸ùhDëÃ=ã?‚¾ËžÿW â²!¿^ÖÌýºÄG·járPPQÃÕPÇ,ñla[bS}ŒÓºIñ«Ò6 ›×R9rÐ Ø âmÊ*Ϫ}xþbñµ Í"š¥«-!18ïùA„Ò”šny³ D¹lég¾VÖ<¦ß3j 8ú²Tõ”Õ’žž(|gÝ_eNm ±%~ „Gê—Õ¢‘Û‹%inÿ1UØ;*ܽuüᎣ­Ô}BZJu†€±,jˆ(á]D‚eYªÝót>“Pk;¸ˆ â: êt÷Íî4t:æôË©fÕÐÝéЙÞkD¸e…(­ÆBkžFÓSŠ ³¸¨¶¨_Þ›SZµkà!&ž¢åa]ÔN³&e˜*lŠ©¡ä%aÜ‚@<#F¤•‡k…išá»­)wþ9lÊ×¢¬e0‰L¦C—ÝFàØH 1e‰_;˜Leš*—@Ëè&I×HÃ= g¨]n-ÅU :"ùòÙÒŽÕmE+Tx/=cÜvyú6èÏùÓæ½"vÀ¶ØÉѼ™×Tl(3qÐ×|ªºZ³–©èKsf—Á{ÜŸ¶éP8ï]RÂé¯ÓÆÞ !—Õd¼‹Ös¢€zcýÚ«^C]-“U¯ZU‰Â®ÊùšÑò«ô|7f39Ço#F’ŸÛÃ~‰M§¶cÈ‹yb ¸¸ ~ºé›¸-õ‘u˜e¶ÀXsü¸¦å¹lÅâ ¤ +”Km0±wÀÊDÖM»Iü“WõÙÈÇ•[uuWtôŸÙñþú‹àn©ú#XøxèÊ(ëecÏ„®ÞfU ðç/Ó£ f¬ÿqõyÈÅÔzC^ަˆ›þÌ0 ÅÆ©€º3=ã2 #¬ë]’r„ÅçxT2"Èx z tö'½Ûj]nyଧd•,²îçpk[C׈‡smÒZêŸÅ®’Ë«¹_£Z? åHYlc³ñ; yæc6½…KÅÍ!Ê1¸…-Y³¹)ÚSÒ Zi×ÊÄ"Ò°ÿUºÏfÖêô”AlQ§ÛáH¾:17)4/Ý~¥hLÚA®¢æzUØìüâ×þñQw#<§úš©v[xX ×/„íî)¹ÆbGϲó­×¸..È#;0Í’ptã-ô šxàÈ}S“°.,&à‹l:R bEh?ŽÙâ‡HÀAÆÇ´V÷'*ÿé('vÆÝ¯á—d×AJLšî#tӚзwÔ}!¼¦¸ô˜¼OªÓŸybô½}·5#Œ¯Wëlð¹Ýž†¡í¯Â¸Ì1¾;º‚ÄîÁ»è›yw.EA¨–è4ò€¶BtP̵Wƒ\RÛJùdÇê<ÀEÛÍñ>žèfA…S»ë~>*ô Lë]V|þâñ7_¹_wª)À§ÐÀ(l_® hñ…¦IPX#µ®­Ëµ¡8+DT2Øa²¢ûšÞÃIÒówʉo97pò ÒÇFx ñÆú㟂8N›B »Š(g®`þVÆ¿·ÛÜ2êÍ–g¬YzÌ5)BÎÂ½Š¢ïèüƒ¤ñ$Y…)émN1FExâ@üÞ‡&‘‹0õ Uü2…•õyìŽ5ôÒÿ,E „({Wt'‰èEÃð$yoì N°VÇn²èñY+2æ _힬¯“ª]9M§Äm²ý¤b4V¨^'u‡ð¸–@Ïшº7ÑI6îø»œGt÷±¯oœ0¨’T‚:»Ç…sjÃò S>{7ÝšUé#FF…P7–|2R/ D–w3%"!_œÊÐÆf K/Ó’”Ô–ßúì.Ñ@Š\õãî<ãep÷:Sï/ЮÏmøÕ9Ï k’e·Ì3t ‹‡Ä靸ü^Ý•¿è®ñy+Ùù éÇ?…= çx” Üf›ç¤ñ ^ šs÷•Œ§OC±iQ •Áf|cØ#Œ°¿òp,hï’*É.ÓF;>­ò< ûÒ`óòÝ¢ödÎ#Ó¤l†¹x–›wìœìåÔ:^Êy8'°\Z´y[Óõ¸Ð4e=Llîuf?,yiÈT³ãWQ¢ÿF¹ZòDèJ½Ñg8ðvÛ£!0×óå$¸„b{<à%Rä²êÕÉD)¼ràƒz§´< øËJ‹¸2‚bð—äí»¹¡z 4av’ó±'ÃüH=@DWÏ“ÒЦ6•ŸóÙƒüÆ¥1ã…öR~;|Ì«ý,¸)ùæ·šž<àLÑÀVeÌŸ÷¥`—¹dBOþ7¼^³äe<×v¿1¨ðyªp]­œôÍG~  L·íÈŽ"ƒ|7Dã¾Ô%Ö-ËpMS-/f€vY]gºÇM“Ðh 9:áņöG–sìsŸp½zƒ^œ_Rµß/è÷é×$¿ò„‹weåÕÕ‹¸ïŸ‰Á=l!AMœÂ ŒÍ2—)Þ0ô…¨„…¿$ПfãÙSŧz.V+/±;È@¨òâØ¨•ÊÓõ ÝØÕõóDHÓHX3­hÝaЍµ HèÏè£á©òÏ,ÄÚm‚¶¢§(n6i àØÌÐóp&hýÈi†àr8€å-•M:ÄÄ3VTÐ2 C3ºn‡q3KÔб@†Õ¡ìàWäb;ÂÆ³4‡RjeC¸4tKÔ}ª“Yá"O<¤µƒÎ7ö^ôëÔ*ݧ[n6­¹ê¼x€B^°€š><ì+…°~|ÇgÉB˜bY»D¨Öv׌^®t˜”Öfž±FoÉËLÝM¢[.Îm–;b…QÃ.{ìgÝ¢4A󄣪o-'pËÔ?–„1̪‘Ú~ a/w\ öäsŒû6¥ê*LŠUø~€©Ì_5¼ÇÙ¯’–ÂÿF4J0±Ö¶æÈ ¹<a$ž\´Ó÷ —é~,‹} [cFµc[íaÁŽÕ™*Vâî2¬ÄÜï5P87níú^8¨¿FÛoZk¬Œ ¦Pº’ZƒÖ› í3 öñO’P†ú¨Ÿ¥ýÙkÎåmK´Ó@qÇ(î± àí6m;¦d=÷µ¸‚¸=ì"|Ù§¢KðÀ4¡Ÿu7Pt¸Ö½‡„lõ²¶Zâö>§è%)ŠÚÀº=½ó4öjh­¿ã)+ç D¢%Çåø¯óQ˜±¶ÙÛMF·ñÃP=èåÐQÜáôh黠уãe…h¶iLç+õ‹{Ul¿,MÈS¯ ó˜I³†ñ¸(ˆe"å¶n]‘_üryz²!ݤ1XT¤&ƒåSwGú°Ä„©¾G„™˜ •],„•Ùoâf>Hh"ßÚ¦u;j²3xÔb­S º¤1·‡f(N© ­r\ö2(i–½Þ¸_órÏ FQM¿°kBRø°vÞraxž3$•Ì ÄŽ¨ù ^A-Ežáíq’b¡ŸÞˆ0Óõ kçv”fH–1>ùÃa²´s6žòæë1bdMë Ò ¹µ`Á‹"gÀŠ–KUúvRÛ ' ¼ãN Lo~°ÔTÝšÙàáó7ƒ€­\ÙYC™^~¹V‹ú)àÌ-™¥ù0©ï1FjVN _†ü¯}ÞvÝü𾀈˜õ "Öºev}ò³Yƒr©¹qpÖÁÁ`±Úl•³“@Â/ÄØ×Z,/ƒyjlþ³³ÉùýŽjS&u}žEPúäã¦= 'o)]§ÌݕГ¹ EO aw‰¼-å&µ*¦¼ü:ÝQN»Ã@±9ϸè¸{ÞôIž‰û²V³ƒR‡*Ä9JZIEê°¼WÁ•…-6Ž…åOŽóظ/ê»#{!¥œ· £^«p:/àÒÇ/ßê€Æ÷s)I ´àE#^°Þ>38¢‹x4§‰ÚÚ,ÏÙ_ªª*`öÖ(L{wy‘;ð ÆGÒ­ A _d„ëÛ_ÀòÅfÁ°dCïåêþhPçJïˆD‰†I ‚€¸S¯Þù×È–™<*¾˜O´ÚÄ þÛ¹›¢ôòÉú¨ò€N÷âº[=CûÚ8¼$Ê–G_øó†àÓ|–k¸’åÒú ]Þj$mtýéJoÓ_±œSê]i,¦›ïu€m§;ñäØÅc-ÛÊñª³ &±_ôD­qeofDÁÈ¢×,O›‘›ÆvÁ|ø](@£÷!zãÖŠ\»ßn@›~)çç[%G®ä{!JUœ4¿E2½„ªÐÅëFóäõB5¢H¸ò=Ež j„FÂIƒuË#RŸ¡fLa6÷ ‡:„SUæ´¸R¯ø¼\Ô)ëkW¥ºŽDžÂD›ë¬%퀭îâçÿ?% ulõÑœðQ·ú°´ôcyzÓÅÞÄûÇlìX±¿±2èwá4{͵ 3Ⱦr“QZòfknZ¤BÏ‹®cÎ ŠRg\ú‘qï™ý¸ü[Còæž²ìu5æVð‘ýr%ï° r\ÇÝ/ ŽA©#•;Ä`Îï.Ù¥âDº=6€‚¸ªö·+è’õ(R}»äûcº?†xÆ0àÆf³&þ\O> *ö´°Ùýë Êf¢")q4ŸÜOââ†tucÚ\ÌT xÿ$‘³û¥s_E„j»™“ˆ˜™ÐØ@$¾¿4 É1çq2gË÷¶ÿ2NqL½ê›éÉ©|ùÄà–뿲z+± Vak±²²²P›éñ³»È]M 3/–ÖµèÄF¼WáxÀ¼{ŽSqœ|ÂË–Ñêµ{Eê¿”‚@Q¶L@düE圾¯yÆ./É‚pQä±ú¾CÀCGÊÿ¤°ì¢÷ô"ùŸä—U„”|¢¹×hbÿzHû-ŸOOIÍ7Àò=ët¼Þf'Ðz_–ÆŠ’vɧ ¹“"–R`œÜ”yxËùwG:k›·nÖR%rÿ}xÁßÌD½%£÷á:œ¿r˜VØÌ6².•‚Ž*,µá©¼lýLcq_³skÿ“«@?çub™ÿP|}=×'Ï_¾!”jCeÅÑÏ—€ÏãœZ–ä‘ Q— Áë´5ÄBàLèÕ4xù1 †ôu¶šC¨ú(CØ‡Ž´bO#ú7R9±Ûo/ò^R'y2°$ò€êÍã³÷þnGd-âêÛQMƒ–&·ž”@HQ=yF¾xœ*J–Õ†–! +ÛVo¢øaëvŸj @t—3†qõÛÉ;+Ëã#/ˆç'IactX<`¦µŒ ¶ñpŠ"²šÄšjn|?÷¸¾ËßÊ<’ !ǯnyAƺºÔáÄÙ='uM¶ ~çâ<‰§Õ ï…C\Ø–x¿õ¯¾|TäR¿"]p™ýý%kæŸñJ&oþLXª²wÒd{·^ßø v E4?û‡K<‘NþÌIÇ~‚®ûͽM6¾hý¶dfòÉ›Ž&J§ê.hwœ‡ù1¡O|¤ð½Ä ’DÞÊR¬ý̬ÂKX ‹™§y¡ “÷ÁË›aöµ©g}ÇKë‚Þõ O¦?a ·ŸÀ™4iGµQ|’ó/îøüæ‚®±Ë}'àƒå]†“yåK=[¯Á­Kvûrùûd Ù "<†r‹Y¨|ËWv~ƒè *…û;n'D," JÖúŠ £tMˆ¬hkÄ4I\›Aý*¨ê;²Es ™BéMpÅÁÕœâ˜aÕÔ%ˆ1•®?*`ûùÕð«QNÆÚkB>,`Tcàã™y?$’#_“m¾ùDù'TeÃJî5|Üãá0“×mЕfR×¾üèëÇ$=44•´~!ûpĶ)Œd;-.[ÐùØ«êå“»à}Ëpßê÷tA‘¹–ö8¥²šùx@ƨVa¯õf¾|ë¹í£ùÃ~£®…Ht»æTJ¾jiÙÈF ÷³Ÿú÷(B$¤ß’ cÕ™­÷QîZFäãdš`x„s Н…Faý#¶tÄ øÉùœW| ˜Lœ¯£.^ ¿Sx3PÄô›®Ú]{;à„ˆ¢ØÛ_¶uz#Ç€1$DÄ1Nø{<)h\wYe³×º‹wPÓ¨®Ê9—­˜—å8ÖPpãÞ}û) 'κøp5$Ã…›-ÑÈL¶uwsއÛÓmÜXŸ³‘¸Í(ú¦f (Ô…#Â'r.×ì…N÷¶¥ï¯”@ÿ#Ü—Cò5Êz“ºÏ$A <ñZØ?_$¼p÷.¯\悬[ì~§Øpƒ&Ò¤ñrÜ+75¾õm²Ó¦4æïªÿc›%84>Gª-_©â ˜®³tñ&=Š!=8áBÎ Jp£y¤cî¸\GD ÃtŒ{¹ÅG}‡±1!«µÛr[8ÉÅl&üXk~¶\¸¢L¯„Q 57îtåP"˜ì&úYü´×Ea"~fÊqV%ë|ÈYg¡tý8yÀiÈY[{ïê ‡G³µê}™nâ&LBƒß–‰íQ¢Ì/+lðß"E»Ì2°7®BÓNV›¾½Ó#„ýQýkïYyEÆHËw‚a/|¾ëü®¾Œì÷%+†þ¸?ú©~†Ïéïq«nnÚ/ÏK²øX¤ª7Žä¥Ä1ùIôÝBØÌN\Uði´ Øå%¨úa¤éxõ ß‘m£H1Þ” çäÛ¼Xª†ô ‡|Œ¸ú%«¾÷ëÍÜDÑŸ(†`5[ÅÃÍhI¨Þ¦Eg¦Aª±Ñs3ñi±|PCS†ÁƒÚö?F²±‰U¸am“ŽÀÕ.®–zao°8ÆåµCZÀÝ  (t„ |Ù&øRBüÕ ';Ó‘N*H1î3º¡¸ü5÷Q>«6¶ã‰ ¤–ÂU¾kï¬0«1ezÕ¢V?&IÛĤ€²¬«°¦³Nž$ufž ß’å©«%O*ú-¯ðY%{æ^lˆœ]U7æ‹Õg¯17ˆÌ =•ëŒ[‘ gÀ£p_Û–ªÙ‘Uèuß³‰¼6‘ùW˜ÍÔôvà™¤ÕV.'¢«M1‚8û–á_×xú„O#ÌS ¼oâ{vzÎÈ<®øÞ“^uÖàeÆ`[ ;UÛo2[”RÍh¦'غµ×,ŒæÌ k~ÅȈñ k]ð÷ã÷Ë¿;–-+ù=$ða¡¯Ráñ_ÑQ«v‘ÏN~*aò_ƒ¾þ¼½M›•$¡Úû%U8•9gÿY]{ Úç`B IŠ\sÞ98“ås VB××—ÇŸò³pÄI¶>ÁØ%ÆŽoÒ&¦•ÌàVqC÷ó=ÈÅmb3ðÝ• t¿n§èÏ`ó?g ò»äAkŽFH^oFRg+yqß¿‚Â_n=;«Ì¿-’œ†Å꘰ê+ÖàF2ÎÍ9IóIpF48ï¼Ä I+OÉ/ Š…ñ6½¯Í3‚Ê¡º+vßš¨åÂMON,ä¡:š\¨£nºgÙGœ–ÍÑŒ êÀƒ…xYZísäT±P=¡ ¥Žw25¶ìn¯àX€¨k|^×Ñ•,{Š%É6³ž¬´öI¤ŽË•¦¬ óLÜv„ɾ“¿ˆ5@¨)1ØÜ yV­§åqÚW/I¼)¤Nì¶>ÍÝY‚Ѻ½Àá]ÑØ0Á =¶²ìå‰ö °|Ôªâvój{ Í©‹¨H{2ÜæµÁ7¶-NÀq36Ž.L!j–Q2ÉúE.¨wædiF”?·aK QÒlRww¼/L¯>/3™ÏåÞW¼د˜ÍQˆªßx#¤ŸmJÍ»-|¤h*Ž×†¡X®¨«f“³Âvo}ºûúšÔKRlWð(“ü°`×xzº˜%äó—ve ­äÌÏÕˆa¤ Yî‡Ëùy ò€ÝYúŽ6päTóÎçN噓wøŠ°yL”öPîP±âåu‚Lª@|Ü/ƒ&æg‚òÁRdq)&ÔräÈei­ºå臡R”ÊÌ5û*@°|îDäé˜H¼D1’¢%Pòb’Ü:(ëÔÆµVmOZpkVçÿ†ÑdãJ¦e¢qŒ%¬ŽpJ–„p:Nå¨í 7­,ÉWdGÀRÞWóîºÌy 'ŽïÝJ7ÖúÖ–ãK¬*Z,D9ÝEpY•á• K;0Ô†úàdFÇb–ÓCÈèðtþl!ÊZ OÝ_Ñ6 c>U)H.K5Q0R__LÈ‚ô‡;)f°,wçpyæðÂ+6á+¢Nõ-§S«±·ã­JtîÅ’ú“ìÇgââÑau„W$§>£rˈÏÌì‹{«r¡OƒVO¨•}éò`cÚ, KzP4¢¹ø'\žt^~”qhUc3,]ôk#¯ôÉî9PNóe‡¿¾„ù€Ñ~Ö€!Eö¯ù|6=¶EóD§"ìdƒwᾘe­B"gØç@£’(¨ZNÆ7Æ U2ÎíÅJEZ õPåÅãןézWžÛ.4BÀ^—S|w~æ*»uĸ&Ëï,PwSõ ùá Û…~UaFs òHç(Ùz(äc‡¢ë)´c²W§Oó5ÅMþ% ÐRçè`„›p ϽË=Ѿ[ù+f­e¥â[H¿¦cÙDÆÃ†F¦‹jòʵ¨ñUׯ˜ñâ/ó¸—Žc¦XëY[Îv·Œ{Ó¿QP[!9÷ªè罨c°Û£}Ðü¹UKTÁŒsCC¥©–G;æûIo5ŸAU)ö%~Î4oð²b¨#fÎ2L»0²‘ÒЭù¯(Ìof…Õ²i—›UãN†x>7m1ÞxÇà LhmFÙ–H±õÛÁû¬l i4ZžYGOR+=¹V0x6 [mò».$Ô%Ü¿”Ÿ|‘¸ö^Õ¯áFÊ݃ÐM¶/¤Z«JOÓᛟ¨=nýU'á)TÖ„ÊÉó–ibœýêg«15_¯õÂÌ€ä3C!ºÅ…™ȺDN}òßٗ拼¨I“3„— ™qö‘(iôʸŸ=õ:ë¿ëÀÅ<‹Ì?KTÏœ..yÍóš§Úws¦D• ×¥NªP AÞEº±3f°S‡¿'¯[”.„£ŽI³ÿŽ©gú½ÔޤFšô÷ÓQë#Ú…É1Y‰9ø1þ6ÚwEºjªÙòC^9¾[¦¨è“•XRÄ=e6ÝýçZŸ/¨’0žèkjsÎ&`uöÉ2ÿY»ïp7,¥®¶î$Ô‡Æn³z3£eãn¹¾– ´ÁØ¥‰†‹u³ ƒ„>½I­æLˆ !AïµF[tN6@Ö—Û\›úR ù 6šÔîx2Ùg†–_.Jü›{–Ǻâ.ÿ2iÝêÀÎt•ƒÐ|`> %ŸÝ¹2^Xß3D;lgSž…­» yu@ŸtèèßÐÀöØ\͉r,FT…a)ïɶG … C+?hiãyE9 –Š‹@Xó‘Þõ\«¼ÄcÕ?lÊg;5aó*ýn8Ú ÇÈu—ûr݆2ü|cE€$à‘…ƒ“( ”àÎä£ãHv áÇW?á1…¬ñ~©–&¤îÔ|q|g˧šÜ "@@«¯£'÷S U¦?aü˜ð||Τ@󥸧_äÞŘöfHMÅÖæd®Ø[@•ºd´"KêÓ¢{ï }.óÒ2E¬±5U±¨tmhÒŽ /Ã,|ÑË6*ÁáÊ 2»ËÄ©Æçìr€µKÆ‘˜äþ\áÃp£>XÅeÄñ4™ÂDZŠ=ðK φ24aíçb@FÒ¨ò]9E-“¾ÏdüO9d´%lŠìÛ4nΞ\JÖ0æCÖFë`·ºú_5GªÓõ³_J½´híðÚ¯¡“¥g r0%ªþ,03DÌ=,ÏlÒÞ¯w¯¹§ÅË"~ÇíúkøÍ·Rqж§b}$Í*Ñ1­M)®Ëwþ7)˜^>‹«yeE”àœÏÛuŽ4èA=E éÝIÑðn«}it1ð¡ªZ­7ÈOl7‘Óq œ‘uàÅå8Ð¥ÄT`ijÑìµü½×Á ›ÙÈL†/+ùœ“ðßâ5EÑ7àm"x2»0¼Àº-Y“I æ*òjÎÞ¬ô¶/b8½°±)&Í䦻y·T¢QBš½m/G¤Ÿ»vŸMFCЛ‰ª×X ô®%‡¤DØléÔK­‹PY2nP¬™×5·DñçrûËס5*MÙ¤wƒ¾âø%£qæÓŸP–ψÃÁ3ÓùÚ¦ÜÌŽMÙ*ÿ&F燿iÿ»T×ô«§°DXFÈsš.ðŇMâ)éj0%?wm£C\³Äî˜I×á–ÿ¼Á*Öx*TFU’Ì]ÏÒ }°½ÖO|Eã,uCxKñMLì:ëãSÄ„Ê[}-b[wÇÀª§lªØrÁo뙀Õ@œ" Q)‹w¯z3c3ØÞâþÉ£Y%_ZÐq¸'u¨þ3"…î~·gkÛ`ç„á}ðˆý ðÂŒpŒÁ‚úŽ;A}–j#ƒý)|µ*k÷>‘Àg~/8òðòü™ÕS¶«Ú=–›o”ºû‹ÍB5În|s#»,ý1”•’2Ý¡.ÀeO”·“™Ž˜»ñ du륅N ý¼ äQ,ªÜ¹M£Ÿ„Ô‘)Fð $LǪÀ¯çýª —…×ðx„yí]PVC.zâˆ%HæZÿÝô"íkZ«DB¤YU‡ƒÜjSŒ'órA`¢p‚ë“ò%šX»äÓ¦HÉŠÄýá”ñ+dä)´kÙú†YPVÛŠåÆµ"3ϵ Âlñg«%%½¯¿ Bäát6šV ]3A” Ô0šÒ²6„¤­„C}2H^¥o~”P˜‰úÛT–DˆzsXd7^ ÑS"™§KL_…³ø‰ú.ïŽ&›èÙ§RL"SÖëƒÅÎãè¢[:hÁà)Ó˜o ö×ê‚uS§4is{ú¿§¢|QÝ´˜tÀ…Myo†/,D¬{÷Rèõµ—­åõá©í¯}njÛŸÂÉÎÿ¢Ë“(»iõr* A»¥†¬_çë Õo˜qJþÎ=â*É)ÏËÀ÷bb¢aßG¿-{ê–™n~e¦ùÄüÚ"Ðå&y÷ßJt!>ׯ d*;wÕ¥dËj“n·{/Ñz”ôŠ‚F;˜Ãë|*ű[2ù6ÃLMß¿Ü-¢©ÞxÏet!o*WôìáK”°êzQÕgUD¬Ý¨ü,»{¯×uÀlõTp‰#Ý()á‹Ò ¶Ò=@óÜ;ó¸ùë×êꉆ#‡˜me1FÃMÌ;Åê÷óCÍoà] Œ˜Žå´ÆÐ7mÿký"â7‰M/Óäçk§e0žÆ«èÒ‚Pk€ÀÍØáUD-Éëý'@Ø¿îHt 7µ4ÛŽÞòk\'$ÙKe-xËH¯Šê[R¨~ò¶Ï†Ú Æ0Ÿ=ƒ©HoˆŒš9š€;zUÊ‘3%~œ#f¾Ý5[‹*ƒ—ýêžHdUðŒ‹Î+é}ŠNBJ#P3ÂÀÝÔ£õŸ¸cÍ¸Ž‰?ÐÿUl˜xö׃ZÞ™É{ºRŠHT·Ïé¢UsM¬½Äu$|iWNÅð+qŽ,4ÄlÓl}ï0æ,‘Ǩ/öÇ:-¦uþÁgr#¡+彜 õãæÂÔÖÈöƒ…IÍ«EŸÇ6øû½Q¼~esG×ë¿g>¶d©æ3ȄٞîÖ®vSÍpÈE‰R‰‰A"VÝã»AþÍø¡…gR×K<í+\у3ÀŠPkÔa±kÉåyŠKYjì*…‰v9St‹°CëÆú ŒQÊ._Q%ü(ÎsÌw$œBKÕT¾‰AeR„(úd5u?wIa³‰/žSb ­CP…ZÌö¸î*°^àÙ¯fâ^&ØC“-5øœœz5%û²ÓJd8c©EÄ(# -«{¤Èsȶòø#h¨¬µO‡ó:n®Š~ùàâáOƒ-€ˆç  š§²E$ LŠŒTåpO;LºvÓ J©cØ €º4{³c•9¦gÓô‘ ¯ÏéÜË.ßDjÍ::}YS¨KñËÃy’GCÃBú¢3Û"T=§¯÷=.f·s'L8æú–¡¦5{ª`lÂïj»¯ùÞýŠU‹"›s …§^O2q%›K››¢mxé]ÎM©‰@ÿ÷lì–ÜBD6÷Q,d7.î`ëxÑ*ÙQ>ud8_ïÍ‚â¢^µø8,HéIòRC»Årg¥_f~öõ¼¸·ø¥˜£N’@d1H>Ì~«‡j»i“ûÛŒ$ßœBâœÎ~ÅÏÕÙz5¸ œ¤Ó— ËEJX¾³•Èáõ®w4×êjµòŒ´­-Šz—øÚ û'Š«>bq• ҧد¼ú%Þ°$Ì\ãOª@¡¿ ¦QtÕÔù¾u}gjŸ{¤…Þf8ZáJJ£ snù8‘RGé‡s"Cæ`.ieÜ€åS²nð7ÓÈ ƒúÅ‹Aš«éò1¹î j8?†@H5‘:ž3–ˆm€;HãþëéŽkóLýâL7o6)÷trZ²µ„"1¥ApR³¤6âës =þ/èÆ¶gnÿrCãGg…Á/º#ÊèÁiRŠ¥¨ÇÈÊ·ÁÍ6§.ºÏçâŠZ=5B£xò½a7ª¼¢ÃߪöÊ}ö*{uº˜Ä¦o„ é–×ÐÓBÊ‹TAvCáæOä¿æ|Ô­®¥¯œ0üM2OÏBRh‚qÚ·bÞy\©MÇ…Xbåùý]Ð.ܦ ÁžìrðÀ8+bm*úi¼¨%`BT¦±´ ‰E«¨ºQjy â3 Ë•Vj~o[•}žË»¡DE(ÖÚ*"]=o킂П5º I*ë¡YtxFÓ•äJ¥ETõdwæ’ßÏîó…Ù䥈øCÚº`™Š^-%ó¥ÒBÛ–dL·ôñà[ìǤcN±Õ5Ôtÿ§›![„oê¬SÅ+6øåpÇ:àçJ^ö÷ c3Þoˆ—ô¨ïÊ–&ä`а[¬¾®ErÃN““Î>j|"ï™ð ‚©­<ÌlÂ䓲°ÏN¨¼åE¥`WÊïòÑsüHöŽÐRN™¢ ßÍtMQ)f\)>bto`Å/g£K{$©ÿ·þuÌ›^ ›ë+n¨¾µ]lVÝ1™üxvÒ¤Zce&ð2UœUÁß<ç÷Qúóª¶5{'U,³½{"»r&¤Å‹h^X…?ˆ9 À÷ÔP¬·cBæ§*‡L“€¯;ÿ§ Á!±ÇÎψrqlÕ%¦ÀHyÐýgëŠì‘!Žh0GB¿šh¢Ëw õk Óõ¢ GŽ•†{‹NßîìÄN·j>ͼ¿Çy}U®CØs °Íë še倰tƧNå¡5²é8Þü'lãúý'=2EsLI¬Ëæ'vwÖI>G«eØô‘²^KÕ»6ÉÖ–l¶ÛGûEØ$„[‰|¨ëF­£aœ è®Äc2@Ùda†>v˜Œ»vS kÔ?L„8n}·à`éWqq.uŒU~ßLÓ¹¯ÆÔhTºøcBuþ.:Âʃ{îs¿Âu¨ª+*æ×ølJ1P> „³!­Ow‹ÐJ¤š¸úvò’²ÎY^YËs]cÈé|Ò|ÖïÅ å<ÆuåLÓÓŠÕ:Žüœ©[[BUµÞôX`ݾCð2’eýÀ0úBì%,ªG¥wúÇ!ý>3¾q’ʇò»•O>H‚>Le‰¿t*Ht)¨‹´Ï£OE×ÒA®2hCc>#\Ìô,ºŒ¿?«¬ÏX‡=(»00e±(k¹yL7µ/nQ”ô›BQ'œ´Û~ž5¹¥¤;XU¸Ê !7<œï¬‘Ì v³„GcM®æƒF‚vú2­„ û»V’ÜçR£úóM××cT­.•‘\°%67So,è'æã° ¢ºšŸ—ÔŸeS=]UÃ÷Q"’…šì*ˆâabÁ¥º«–uPÑû®\@áŽ×ò£nŘbß¶2PÃ[_CÎpµ<—Båz;ŧºÜ;_½”(«‚DGïiþÊsÔ«I L{TËÓú…v©ÔKL~Í^ö®Åˆ>ú‡yëAe¥/3ÂÜ0ö>&***ÿ噆wJcdë¡°‘ª¾æ¢BŠ@¨—Q‰ºôž5é¬ÓlÌh '´Ä™JTÖ(JU€ Ð@ÍJ_yÆk Ò®g;ä1-‹ä€3@íí‹RɧÈëªñ»3ê f íJÙ©ç3íd홾l]µét:[ð©œÀŽZ‡±€ \o—®·LÏš¼ñ[cᦵ(ÓØ¥·¯SHz4ªì¨pCùï›>¡¸ó¥Iuƒ…šÝ¥XàGÌÒK~/Æ*î"DÙúÍÞ¢)=«¶´'‹‘QïèðʰKåûdÔlO^ zò„à=Ö¡Ö/Ìòø‘p¿í¿cãmÐ^Õéö’µ¢öüw|µðİ_êÙ÷x'©ŠÎŒ·›ÒL­0Dÿ³“îX@èŠìŒÍˆ…¼ñ?gÞ à”z®Ë3O¸€E6`ΛîæÕ_;‹Õ’Å!Ùp“D‰€$¯âßì„Ò§,†¿ww¨M> N˜ É”Œ‡µ×Qvb0áqœ¢·úP´‹å5Ü$×æÆ…9z@óÝrm%6 Ù äœÕ¡)ƒçz¯DʧgªKΤQœ®$Åû2k¸ „ì’‡K/™«¨²ÈÄÁ?ÿ–€€™ˆRîDÈêµÅô/>O1Öiï(@é€Qûb…Û*å÷TáɬôÈ©ëIˆ€…¡Hbœ¥Û]5dÜ"š\:]¬rÐ},*N¶~ÅùwAj ·±´²Ì#—n䉨 Ù;#‹¯T"õÉ`œò@khï^"Hx)²ÓÒP6JÊÍj¤Ë-ÕC3nýDyư4-êì/©ØtQK`էχ 빃|'i#Åuæ²åâðô+´ucÈ£2Ê ‡î§¯ùÐ}Ø•àÚŸàXi:õ_uDܤ6;hü£Z#ÿo%Üâú6ôfMÍ,‘ËÂQ!Ã69íÜ^šb•Ǧa׆բE_q‘þ\í1¤ð­‰OnÁØÚab=H©Uå£eµ°‰÷*1¦ÏÁä)¿Ñf\½÷Ëbè&¦«Rn+×7 ) à´;:ª6;ƒô¡hGöˆ“fýñ#ìÐ6ÖFM )…4HÄPüZïFÛ¢³m-&À3ëTµ}ïÕÑvKG;àîZ“Õ{ÛbÝtÝ Ü¬# „³xåÕN°kg 2vxâi§jn–3Ý*ÜhdT’:’›Æ·|-–gF‹šÃ†YÍ\ÔTöÆÿ[S9WÏ\=¦v“wÑŽ£jö™øä=Lv?@\Óz¡ ¹¥]Ps3à¶øfyN‡"/˜X‰P§@Úƒ-¾{6mã]|S½u¤$StôãÚ2w£ì(Uî«w²R?úåzÔ¿ÉÐú ¤Ñ;ÚšÙ% û$–Ýô£j)^ÉüÛôÆœ…åO‰È$jU‚ ÿº/zå áhbbK‚HaÑL¤R7ëi¸ë³rÁÉ—;y<ãN]Ù¡bŽ}à㫬R„E[,Ttœm|ÆÕ)ÑIc¿CU˜Æ!` • ÆÇ‘Ä,=’AÓᣨ-Äý‚9±¦ {gaŒlãKåȃ»µ !°ˆ‡¢L3!€§_tĪŽ7<[O¬Áûdÿ´îš¾ü†è€Hìcºw‰Õ*J8j â}‡ÅÉ;ùѵ{é„}©©WAiŸS× p<ýmWÅ J¬òMœ^¢½Ô@^ö1oJÉÓr¢ÔXÄ#Òß&’v^*­SÆÞÑvdo§½Àyfb€p'äæÀÍzeϰ¥\]ÑÇFæü6)’TìýWT”t}Q뎬Aàýˆü¼…A-–SèÌìýO#eIìv‡å»Æš0­x!Ó¼³ž~s$Ûg«nïÑE*¤E£}Ô©8ä‰Ôëõzק̬Òñ tl÷ÄÊßötgRÍ‚aNûÔ£±j°ªWŸ’Ï­'B†AÑõ“'¹@LÝÎGäÚ³·°d«a ¡Yã×dC´–Ð |Ô)]qÑÒ&T;“û2ß_¾ 7QM£ivóý’ [p‘›C´ÏÑZ¢cÅY-õA‰!'aZ«UÖ1c"_gMè|o{„,sBD™}€Øòù*”‡åooh‹#W`Úw¹Ñ75yH£‚ÈÚ3ø’¦½|c4ÎÈtWîÓ˜ÿ# ›±¹jrkÒí=ȽXb›¹Ýzˆå£h³‰ãdô‚‰{ú/på9. ¨„f±ÂQ5-G®’ã=FºM»è]-"¦]M¦)­ìW‘rB„º98”Ê”j+ ÿô¢û<™Ä9ðX™´r¿šEß½|Êýøôöºªd¶–3ò’)pï§Ã ÁQ•(˜WNY¦'(Ieˆ3Ó+MãZ«•->•*yË•‹Ï0cØ”CXQ?ÚSú—€Bc1»6¯Ct r})’ÑGC~BhùhI”áPáü ÏZ=òßÂ!æ† D‰jËHdW‡TöùÅ CþzúƒÏÜ@‚²í0P™îžhj‰onX0æK4æÕ*6¯ceâÉW¢O0pùØÆÃ´‡­P.güºü5¶gO y!18[aï˜xu™íz÷™çwAí|æd˜u)®¾~ü«Y&)¼ë%‡áÕRÄ t¦Ò<‰ )%¬Òì³)¬™aQmˆ_U¢ ~´¦›((Ì ®Ž} ¸Ë(o¨xkýÜÖêï‚ÓÐ¥ÌýÞ½OúíTi¯’¯—js7 …|œ‰ÙêÍV—óÁ:bˆ¬Ä&ÉÒDxI_ š˜Ì;à]Hb#^´#Õž8n_Îô’êu¹ã ,¡g'ÐFF˜ZáJã©> |à df¡À0ÝÚÌY‹Âj–©¨EPx°'ë#;Ð,ù=ažF:Ò¥òñW›Š€àeêîÆ6—·M­Œ \¿U›[Yª?E5êÜÄ«8|>Ò÷ÛÓÞ7 N5ñâcS¶iHc”ùжÕÜ?ó{S=5{¨ vS.®Es¶&[¿ eŠV€ØÀ{!‰¸òq¸ ñíp…4GŠ‚@ãèûÒà´Ÿ×( :qÇî»ÊÃ`õ‘ˆ‚Á<¢ œ¬×iß…Dž4? oðlÐêÔ¥YùbU¦Q=Ä-ì‘•"n5°®Ò«Ê{¯BÓí,º¡£ÅI^ÓɽÈf!)4gæ_›WÇ”|¸¡Ê Gßj—¶-Ð6y(¥öL'·¤ñHn2íý… ÙÕš2Ëu‡‚à }[„Ìø çïû¶OÁ38ݮĉQ¿0Õ™¼În5tûÇUçMÝ<«ØÞØPÃÙ$u¬Å›êŠ6ûÝÚ릑ö.p=…á¾iÅNÆ»µÆgÚ|ˆ©§ö®æÔ÷ë›Å¦øÏ]îHs"ìÓ¦NñUбAZ-o½Ó®·.‚ëìT­kÊò3‘³ #Ä^ðÑ'NlYƒ-·ÅÝ ±êD‡Qm&0 ÿ;>©fÁXÐ tõ¬ã¾BS]ܬ’‘ŸU˼sº·®ÓŒ3GÆPjÿ?ãT^€Ag[”wž%Œs§^ò§ý’ ³b„0Ø•ºÛ¯€D«€•3P§fGçu[gyô®O*ÑQ¡Û LùCÍsú~¦L‡—Ÿ¾ R³ˆÈ˜ )1…Ý䆔Fcjdíõ ðpßAÖål½Nö|±°]!êV.…Žý'‹ûøC’_Úô& L ÑÄšs~¸õ<¨ ª7ݦ'ú%XqJÊeñ¾†‹Ÿûl©ŒŽ´¢Oäŧi\GdVÂ7½Ï€âq1Ínè' Õ°¥ãaÜì¶9ÙËk¨%ôœë2'–PSš‹h|˜g:þr®.!·ýÄMðp­ÛÃCYÂÒ¤cM”ñô8Žn¸Æñ5@Ћ[±èaqŽÕ¾Cmxº¯ g–ÅAÊDèÜtì ç`ô©`¿vÀ—aÊf>U[“+N^_‰pEd‡e%)‡uèŒ×ã]`c‹%ûóç÷°’ñÆD›Y1cæ_ÀÜ[ñôm“(½u¤…c¬‘µ« šá©G(§"xAÛ¤©HðtÐp à±72mÛÔ¸ù[qƒï½ß-<ÕÅÜÓz~4 ¾wŽÊòˆÊ“áåù’x‚F‘|®·ºA’wæè¼ú¹Ûb‚tÙ²Ö¾HôÃm»·çÒsüE9‚encË®þ1®ÕÔÄçÍ:Q¯9Üöè¼Í°œZÉ:²©º‹Èüz¢”¯ 6¡Ò\ÔŸ±?÷í@uÕ2¦~ôõï! —|ƒµw8®‚\,C‹È“Á1­(s qϲc…ܲØÑ+ñëË”7:糊ÏÕ€Œy¯¹µm¬èÎ[Ì"NŒé¤J(þÔS–òx¢m7]äf&à¥L§­wY†‚vëÞ¼TÀ‹RU¥Ñíâá¼6G¼Ç¹A$ìz~<¦nA•uÛQ °j„‡®vgÝÚbáïØå´•–f;< B±’{exKGÛƒŸ¶åØæ¢c ¯;+™~Q‰ÙSmíº6¤8 ï,­*Á¨˜+ÿC‡…f*Ìh±þ¨ Òýÿ;¼•s˜ŸN*uªSçê{)Ž\ öò ÙõaéVL>“XëÒÕq?ëo»ÄÿZŠ5Am(#D襕)Æfãnü§Waí_J¨íø¼ g@žÖÔ#nù‘aXl;H|ê`éÕtT ÒëŽê+_nQG()ÒhêQþCv—ý.%ÂsµA{Æ*·ëIk?:! ¦.û—g}$ú3ŒÆ­óÉTIÄŽ¥,Z؈Kº}Þñ·Ëí¾å»Xl5ÞøçöKŽã´-–B±Å§‚Rì²ú·ò;ž¡+ŠQyÞ¥¢ãi–þ¿rÈÌJ3©†ÒÁ3!vîLõĬ•1ÀLk]g±Û?õ@X1Š&Àè7‚Ø"  Ë<<ÎøÒûè”Yù¬Û™1n±òŒrçÃüª»—+æÿòÝRÛš¼¶•F‰¥6€ŠÝ`Be”ö±z5Q/uöÚ±2°õw¦=ÿ˜ä$F¨Ô†[½Øÿi(ŠOF)ÆÃãÅáš‹+Ín6K˜-r’-/àµ]ÄqE ±ÆFÓ¡sº* º¥Awp_’ U«ÕSŸů´£{SrbDÑ=Ï0-Ìíé pn n‡Á÷•æÁô²ntP|ßUG+¢åGÅQ ª6#ÄAyæŠ,{T/Ý7—œ9¬@:w¨6eœ¿ºràQ~K-‘ö¦‘ÈswP_:^Ñ $"d%ðwu'¥N¶?)¥Æ99]p8ÔC‡éº”9ÄZªÓ1mvSÒ-ЮsE<Þˆ¨µçjmõyMï’O/É•îŒ-¯þÓWìB©“¦Ù£ïÒ^²ùJ–XV„JŸXâ.Ò¼÷‹ª³3XŸ›Sži2ô,'Q4éüß³}æœÖW|•œ T¦]*™‡ž:ÐñŽã`_vO ¦]«›n‘ë7ìumŽ[ÛÉ:D¤f|DK¨LCÓÉDÁ Ô*+­æ¡hÓ„«œÌ¼wVJ ±ƒO;¶/ƾ潶_º ³\‡@¸ì›öòƒƒGx›„Êœ¸“hÕåE_w@j½ËíÖ$ôÚ®Çõºê•+¥>Øu|5>íš à²£ý×RJßM†FÑ iÊUè_éy˜Õd'¿Ú#\fÎJ’ ÓÓ¸NÑønöŽkBí• ˜/&5׬ìGÿKG¼\ЧÃ\»E‹ãªªÚX·˜:Çó -È! .®Maz¢ÈþÛïCOòa¶äŸ·€rÐÓÒ€ê;o$íúØ"ÁA@ËÞa ãØ*F9ó:ˆ$}q áô…c„Þk6IJŒ¸†þí^)9´gAÚ"U-îç‚ÀEt“m- "ê‹Ñ'BQÆè ÊÈA˜¼^"€]M-82ç5 E†<Þ Àµá{)MÁÊù§¼7¾c Ó7bƒèäÚK2 ø³$‡B2$³½z~ú5šl"ÕÙ¨9…–E:ts°ÿubbbMx”9™¨ØôA¶‡J´S•ß–Í͘6õB9s¤é44-RóW¿ù ùyuuå?Œ…A.‰Â©È·ÅyãLÖˆš jKE2lõzá±d›—å‹Çhib‹5ŠÐ•œE‰d×d^v·P¶_¿…máF—8h}Öß—d\¿S׈âìÿW¼b ³ÿ2S¾ñšEzŒÕˆ«£i5]‡9W@é î:=uUI²šöÉ@Ü%1#CÍÔsÅõüir.RÅ—“lü˾"–Yã¼_÷\žƒiª6 }/@&”87/Ûî²k4ßÑGÿdè Ŭ:,1µüÄû'Ÿ+±*ËÇC–‚…DއK×K |iMM3Ù5 a²¾>ãâí£ê"nžbÅP´=¨…ë$ÓÌnb .é‘f¥Zf¥0ŒbÕ‘"b#|&’5SýÒ]€îý„Ù“Œ®ÌÕ»A¡Ò?ŠÂ`ìÓ¹$ Q;!³'Z ™ñ½géKñ˜ápn¤Š”´q¢Á­¾“gÛ•3‹5ã€ÍŽ´«òé÷H|žÐpž´ìlÑâéc¶MéØ\K H»ŸOCº-w½bï镸&Š7ú[µ,Ýa¾j*•Ox9 ¡~n·@g)‹}e4Ë1 §¯¨á£mã9ëï¹n¦›uÙ¶WF€RH[wV#¾;ì- `êâpéHLI‰£œŽÅ«à…öŸÍçD?ˆ·bKUí:`|½¥÷ž·!rý:ÃèeP]ú2È ìöà€LH»èâvÑpýµIú¾ßQò,„¦BåãË ÷z­­J®è¬%»9’YFkRáùwbœ‘÷~ ;R ˆiDé…ì,4‚$ïÈyÏM_0çÃV´N0€ ~ ~ɹMJ #*,\GSÍV×aéÝ2¹ÆŒÖ${ˆâ7Šr[KÀ†¼Où8"cD.‹ß³zŠL¼¥³eŸ,4ׂä1é lñô€Rtƒñ}tΆJÃù™G$O{ ò4ä:Ó­…Ä×\‰®¶ö*f·½:^€æ,—ºYóÖõ0ëÐŒüIÐïV¸âZË´dÖÊþ-æÁÝqücÇô²4»ÞAÊ·»g4ÅÅïEõoQ$B—0®˜Ìë«#!‘n&®3Ú‡I~ŒïÐÃí¸ÓÊbú€¯Pý@ºxI(bRLOf-2÷EetÑD­Y½›¸'½æÊðê“üý}V!¤šË%1Á‡°Ä•sÊ,Û."T›¥ö,®o-€Ä mZîY¿èêùVÐ{O1®žþ§]W,âã»ÆLBÂ’¡ΔŸ!$ç—ØmŒSQ ¥€–.ÓRâìºøØJ꣊Ѵ„Ò"ÄÖ@¥(r8Ú唞¸=úL9.pDý8‘Ò ®,„ŠÊX©Ã‹êŠ|ÇͺQ¿ öêæï½çþܶ‘aâf®½YñÃ!Yœxp騯£®no²mÒ] 1ào¨;ŽÂ™bÖþĘ¿CH'†ÆÚŒ„ŠZÂ_ˆXëTà°†­˜Qµ¢çØ/vFOe;NŽÔÑÖ.HÛ…õ™…‚¤k¯e–lp"ÔSË•KÆ¿úª|0bÿ'Ý^Sa³±ŽO«ç\Tðîo†gƒç·ÊDp?623uºT*e¼Ωƒ~T_:ú8ÔȾ$b«Ò-Ï×d‚ÿþ.Ií"6‹ˆÒ…ÀAqˆÒ£N”U<\Æséÿr9ÛXeˆhež3q ë@ÿ@º¬…@Π¦2Š5'äšI9T¬Ùkóâ·ƒ €ZéÓ†ÒöÕw ;¿®ù0„º0WAØd7,?¶ªFÜH'îC4DáVÊÖùF—`Ò'j›ÉÎÐYÂn¯_çÑQí]@BZá×6`R=åÞº5\žxncSnÓ/¼j0¶Áçœu¯b²|ýP¨¼Ú¢aRxtÁ5&_ZAÙß<@„˜µÒóŒoªK`%|ëÃw4xÌáÆ­bM8 9!•ß7¼wDÝJÝïäýñQ>(Ÿ`ó‹–õ[ØKIêuÁ؈mõ÷atLŠ kÀX U󀄉]ZPE›N¿»>ëc^±k û Òºݵo[õ^8ºŸ›Z®ÄÓÈu»_¾ªÇDén»{Ü&£Å ÀØ[ ¡§L§¦þ’Éò¼•’¾—é¥Ä1FsrS¶Bªmo¤öÂï…8zw½•¶óatÑ]ÙÅ®¤õ5Èܲ1‡6ðãí0TYù<ÐÒz‰, 0§Ö¥@õÇ9À¥^ç½Át­é$¨Ú48VÚ40³ÿѲh»£þÞ§_×PÐÑû:ÊÙ:<ÀHR‡~\-#%Ãu?´ó€„cMÝ»{sš®èÙ*õ/±„)|àÅW­xÎõêÈ–X¾Lntut ,,ˆØ:A¥˜Ñ¾öc@E©¤#éþþaÞÿuî\S¿¹4A`ƒ bjfÇÖ™ü¬™²öâþ”Âa¼[ÀÌÐ2ÖlÛ¿H>&m&i¤nwùï¢*¿1Q”S^Ôßí¼µì2±BŠ%)]‚ž´šÑ/LGÝò±òRQ°{žôA…¸´\™E2/Ý`°‘­á]™B2ÅlsÇo¼ƒ_sûf:”Rœs k\~½év ! Ç^)0ñ6vÆtZއȳÖ@”› ö%–Ô7H%ùý©žš†çÄÆk;Åpè ûŒ7ýý”2ݲ `²•÷î" (\íÊ&è÷ ÖŒc«_凖LÒð~zÁu—ûÛ;7¼ÐÌv’.õÊIb9šèæ¾©à€¾ØVöÂ;²LɀЌÞÈRc“9<6ô:%Âáv}òŠbÏ8Žtäc¡e|¯=íx™ŒŒað#ÜòZ·$+粦WÎë×ÔðÎF›ž|dÕõiú µõ“[Ñ Ðá­EºAªýçÈ_»ÏE“šý6aôe \0ͼ8uÍDaBw-ãðêŒ `Ö±²Ri”2õi´.nñtñTÖ)U ëÈûñ߉…v‘ˆßí?SbuQR2ä‡/Rm<Óóó+€+†õY³^ô3û°õüý¬ÁùSŸtýUdzÑ% þ£–:ú¾AÙPôK",‘M–Œ``WUGŠN™ÏôÍÐøêÖ.ö©Æð7£6 Ó0"RÎÓ”©ûmK€«Y|¡Q°ÀX ,²¡ÇÞTšö_©ó0¶‹iâ ùA \͆­çݺ "—lmO¿¦¥ÔpœÕˆdY¸|n·Ôy2Ç ‡ôíIëÅä}ö&›Ä^Í™¥퇘ep©§–Tªºüsž_c™™þ£qŠ¥Ûûˆ“qDÁ¹ðzoXÄDÃù>Ø«3¾Ô¯ˆµx›þ Ûœ~S`_G™¿Lz‚YÁÿžË޼6•YD¶Ô.rÆËéðFãCÁ°”BÄ€…‡&À¾<}Ï;߭òŸzA¸õ®õ,½Qó7÷2Ž¢ëñýŒÒåGa ¹//¿ñ2$ÈÓ~?çë‹/ö–ËÙ'Ot‡3ûõƒMYš I¡rür;ˆá-—z>®×óÿù:ô ,X呯‘(%0ˆ# èºqRÝÜ¢Àz»ÛK@Ub1™]‡ ªîU+_ð#Êÿ A0¥¾ºÃRfoûê:ºÏéU™ì:lj×[Ñ|×qWÿo\$~‰(ÑÍ«·Zu öq>ðâÓrIøžœs£u®Î–i ¢îÉåÀÌœëÒ:ƒZŸºÄ•†Ñ?éak¤ashq3ýèd¾è¿À´òƚРú009,Ãä‚”¥+v¹‚.„òêøõ÷aÛ(.«´]>ß z`, <¿§ùz$ÅaöA 'Ö¯ew,$(=~»ò+Dý„Ýÿg+õl÷Ws¥'»ƒÑjZSqå¢&ižâEÐIdê ¿Î$Ñ«Üëp#n{8´‚b­– ”÷Dô^­¶²Î–*7ˆÍN‚+›gð¸ 'Ž•±Ïh…BšE8§7N îºDÏÐzN×%¥²gß©ØÂt[y/!z63¬Šuut±‹D¥Ï²/z›i¤Ð¾Û¨h%³¸ÜÅš¸ŽPü¸â¢Z™Ê×!¤ƒ±IÎDýJ}ø|™pÓ?’³W‚,c‚úpíé1DÂ$ʹßTçGõ/>Å‚æÄ›ðUk§^¨xa„±}L_}rð=ò¯6Ôt¹~¹Xd…L: ü“D`^„6µˆÍïp´µ|ùUgJ‘.åAÓÚCs>Ó«HsÃ0¥v»ìÇY aâU=šä éå—ÍúZ™ÁŸ(v´Ú\›M¶7Fè±Hå_¿·¢‚L7Òb GèÍdºŒN²»åÀ˜T¥§( ’¥Ü\ºÀG®éUo듹}šôV¾&¦BⓎ—•ÂViJïZtj‰üøs’ÒÌš°³”›=ÑmÕ%*ãì’H†÷É+wa£Y`ª{OŒêI©Z´ä¡xwœaZæ ÎÃ9"h¹&¹¶Ë„Ïsß\ gDÿã š×&æqš_…ƒÄ‚k;¯ç™«ÆeXñ,X¿”†O*'_¶in$ÂýåF÷6@mz2cèê0°<”踀ØÃ`Ç>ŸFn½R·s”A~è'š{¯Op~hÂEoëÆ"×Ùèã ù¾;43 <;­jj‡¯Çt7*áJ G<=SYTÏð@BÏ 1*ùx²Ærý-…)wEu¯Ku¸9ê"§ß«•áó$vOPk +볨&„ÉÌØ:‚Ÿ^žÀ£U¬ÇGcÄb­MêÓ¨?À~0ð‹fCð5ÌøÇÃ_µà:;w'äˆâ–ÿõSCbòä’bòÄ©ðrÎgèexäà\\“±UœërBÆB$mt2h?µê*BÑË•üüK)‹Eã0Ÿ!ã[ð¶Ø¥`(ÀÌæíëÆÄ»÷X™Lb>Þ|y¦‰Ž2¹d^Ÿ}ÔVÜ€N#FŒ¸ªzÀka6ÿ9 ¢æ§½˜æ—ûæTc‡øzíSšÐ+üùøãèAÉ÷«ÂCR–ñõá"¦(r9jLfm±U=aïõ³ˆ¤O"Kõe/×)Þúx u‹ŠÅ5#ÔúQ}ÂÇ…/T œ\Ù¦òCª¸Áròc¼Ïy˜{?^7ÝÞjò“ÇàÆ.tÄÎŽñÃ7ð­ ¦—”¨&îD^ÆÓß Áà綬»Dyó@,¡£Œ´…?½Çÿv›M:“›Z3¦ÿ»2 êü| â÷}yöY^šÎ Cri¨«I´ˆ·¿è¹5oÒŠ#µj\öCH¨Øt›»l26p× ±ê„PÇ#ë…W¾ewa ˜ …©Ö7ø‚—g»3f ™•7ÊÎb²œ9ÓÊ6Ø ðàiaÈJ¢IMŠEt¼Ùdü\YL¿kf©±kóæ&@OÓ%w—‘ÛUÀ%Dj8å5§/ý擉/x¨ÝcpS\•X¥?É]T_Wunî9B¤a‘nôº«°*xé…ßž[Ü;/RgOE?«Úuªï•¿Ñ³*¢kEÌø3½”…µzÅJHÀ6WØÄ× &¬<ë@›FòÌ¿„ÕãÙNJϱm7·öúÏŒT'Op.¥ž¾ßâ‡1[ ëüçY¬\¹>!ùÒHUŽÚp=uïJPœ^M3´õµ®\W–UÖÈ7>Ùv¶’S08ÁÒz^Ü4„%._%†6„(cK’ìç~Ñõ ~sq^Æø»p›(f£âä¥ÈÐrûÇוSkhX¦ü–80»î²›0qMHt²Ek®d_ ¦\_õE5¸pßÖø?Q)˜PÝaÚDÜf<¿•õÇí|—¯q«¡tCz«74Fõ[².ä~«kMõÚ±˜^3>Fá~OÉøý‹ÀpV ¯•Þ|kh%: ”â"·ù/Ó´ä„ú0oŸLö2q>%Xh ¶ K›Ó™Q)³=Pneî©¿ÛÜ\PS PS±»uø_¹ÁŠ$:ªY*GÁ€ÒÆ/6Ñâí@ªÎÏ–W4`J4Â}Èo ä `V*ïpò<³èÚcTƒzÕÀlTž|P;ƒ#-0IЋwlÁ=‘u–, A1í–!×i|WtÙcÔ0 ¯ºšX .lôú£Û;Ô-xnac gX©Ï¹ØyN@Š ˆ ì ]â&S«‰àEA·Û2Qøã³fÄ«:€”òv€¥ùýiHrÔê ³`Ë¢ŸŸZgWúôdø„‡8]— “Öê²¹Bó”³ÜŠÛ )`µ‚⮉Ñó7Ûä"sz²ÿÊtô‘ùö¦þEn^æ}Oð7d•ÞÜ]—±¿;i‹ººÌלà=pX¶Þ>A$jâîI»`¶ÿ[TH)ÈÿßF{碵=iFÆÉ(ñå­ÉÌøÕ úãf¾/jÆèö‹¼N5ϾÔsš¡Ñ-¨+q35´þ0'|hQšÊ·?Vúoihäe/ÏÀ ´æÈ*U=?c˜Ac u¼½;zxEËý5&§ÁÝ`èµ?2¤û€å†§Bgßt14u )‹¶ ´Uq—½l‡‰ ´Þ~à ï-PøÝ ¨¯HKØæ˜ÄMb·‰”‘~¦íÐ?üq÷ÿˆ9}õi/XM¥w°­Šö¶+$) 7§Ö©é°øux؆dÌv%þW‡Ð,ø!=H?_†ÃLE»u¨l¼Œ¶•ù0bÂ!Bêôy½Ã„ÙÖg|Ã%ÊKÝà 使؉ÏUVä")&t®8í'Ahêí©Í…Lj³Òi ÛÞúDhF«ý»%ÜϾ^34¢ØŸ÷»?'‹xyO1ÐÌð=K ¼oŠL³£ó€Š ²÷-ðómÞrL;÷ƒ5óíóA{ö÷0 Ódx¶BìåEìÎ ˜³ë2?DºxI ÿTÞZ%ûb9¡}}ð&´æ=Y 2ýCMÈ ®‰Aºƒ¦”J¹iøt /üÄøk¾‡N­š¡ŸÞ°O@Üì_y;ó~Uùz'¶ììá¶÷¥#m2 Ýe‰,ôµäx¤PÓÐŠÒ ééKœÀ°QÛÉÔh‘éA‡– U70½äÖoÖ'ƒO÷ùçq*ÿ5Ú–žÀ"Ít£k<ƒë[Ób]p(p`;ÍŽ™¿BÁÔF»>(ëo9µï‘ZÐÍD÷dõÔko…ñ>&R t­ßÜí2Aƒ qk²U(•ò¯çôK¹cŸ†GÒ C`輆²à_:㟂Ù3ýVèá¡Kæ6ôF42¼ã—Tõ4ôßåhŽ`²Øø¡jÌ4ý§Ô¾ÒÀZS²Åt0 a#w€‘"9†=DxQÕ+ä£/ÀÝõ)¤¯kAùÚ¶Óq…×бÿ5Áôí27…¼,Ø9Zvä"¹8þTƒTº€ICŒð&¿´öuyál‹†öoŠåiOŸÌ¢,¯]¼„<Éç… ¹û{qÕD=<ægð«ÉÌy¢CV˜y »ùòª>T‰êDº¬yàÇÎ4Pã[—[çaá?ù*#Fa(ì0ÁΨ©÷Ä×€O…qå=º¡s Ð»t­  4ù,å† €ê'0ÉyYíÔG%òÒ“7n jų¾Óëa^”ìFm#°¤ß±g´Ÿ½mêýÏ€}ˆb“ÂKJ£žJ<»¥yâF¯¤ÐU‚¥À ÅŸT0ØÅŸ¥?À‰ÚA ý…Ní¢œ³x‹%ùÄêö+…TX>u9¡¼uK߈ç=Ƕsœ(™4X1óÎÆ •‰ZEÝdÑÎ|¿-5 I[^4°•⎋УžÓƒ,w5ÐÛô¸ÉRìê'£ï}<¯û_¢N£ÑÆ¡©»¸4Áƒ™è0«>wê°}‡û`ØíTk¥¡’Oo¦fK)ü§žškîY.-©uï®1Ûõ ]“pÒË0‘ޏz´Í•Onû„å÷ÛÜ»ÝHŒ—Ý9é&¶›„¼¦ÃS(‡ðD0|é·¹™¦Žc Õ)e_> ñsy©á^&’3̪/·¶ˆç{Æ4iîa²uˆ)£óÅÑa¦H,<*ÆŽân×ëIü}›·¿8ø;)4|bªœqàN¾ ˜pÝ0Š`û÷¸ª°Ê8© ¢LÉ>«†ø  1úœÜ¨v@bÚÏcâË·cò=(í|$:æ?ÆŒ•²Ûu6­CF6¾ûzhÙ¿¿É *"äñG¶;~~̨Ôúã3ÁKÁòN6ö€;@Ä¿7 Šä Í÷AGÑG$c‡]dHšæD7üå!åѯ0$”´¿ºû%EÑÁ•ÕÓËŽhÛæ‰pè]BŽ  Oµf¨¨”ÊmŠšßW<¼ד³Ïã£c#ºç mZæ~½@Ú•ã´ÁðèùMAðè‚ãÓþH‡®$ªlžÉ´ôgÿ`•}ýîrvC¶S ¿ÐwŸú†£³RøðzŠü_ôjNûï¡m=wE;ìð#ÖƒèqFô&œº_úËÚÄ<´ê…hê.󛋺0ªrºòî¸Do:üi%JÞÒç¿@›\Ž…¼om‡Áʼn匪%ª¼½¢d×—þ^\Š­"ЮJtba™ ½«hXPg¢Á6]9º™ü$]"°mÅ.ðWƒ'æ=•Æýë#žC R¡«o¸“ñÙ¨sËŠçNèÎ*ȭ•.ëƒ0K~Èn½{Ò§ìeÊCs“†Ú¼‚Šõ¬øÌ>Š6ö ³…ª"†CÒeå¦N«ôT+5\=(,LŽÄ/ªÈË^Â?Mé.¿zi"“š>Œyô£üÌÈŽ2âÈ)Ù)ðÞøBî XOÚ¼¬ñ ²œ’°"2*ñ4uFCÓÉp7m¦vУLÚ –¨I\ÑYþ¿ÅftÉNsõ`JLÜü‚Y­q&&ÍáÈ#98½õ×dÝ yÛøß_jy]ÏPîGîh¢'lí°=éÊòÈás†‰šÆßC¥“/S­…Ž3­V’!Lˆi*ÄÊ”OáCaªÃŽ(Ý“7·5èô:`ªpðÌ ñáEˆ;ƒoþÂ/7æZeê¿bb»4¸«-»»Më LHùmµÎ˰¢U+íL<µäjÑy¾et‚ ›p¤läsîºûû^5O¤¸ö©ä/nlüz«‡ía„‹6§½šè¡”®MÔRÖ×ðjæŽiöVÃ0¸7ùwS9Rà¼[«‰§/‰CFß !¨º÷Ëe–$ |J½ã&/C<€Í[‹´÷-!oÝ=4dã+Mg‰·뜎È&!~nV Ïü¢óôYKŸ-ê"eÀ|¶cVh.\7e²²¨°äèBýI|×Ë+,ö¿/ÂY–ŧ{Oá¬c]K ¸¤‘¹ŸÞ&y3Wɉt¾íŽåTI%œwŒË˜¿–§3ä‘^ç$ÔåµÒŸdK èfG\Îûm½q‘-1êËl|ÂVFäi{¡âΩ Èû/^<Õòo}©wB ˆåõýw ‘_.à¶Áín9BÄ!…¡D0vÖ8ÑGŸ¸öÃDéFyžO ”ÞîÁéƒÉñ¯0$pb!‘y`ýçSªŸÔiù°:ª jïq=òéo"OÊØ1zm¢zêS(’DN¢Ã:ªðíñÖ­jtkV.h¶Xïœq~ÕLÛ‚›rðéu?%îæyT„- ÜÖéõ9‡ÔcPp¥V™ …LÝ­ZùN$‚±V|u±–…VFòІ¼ÎƒtÍ:f$¶ÐùMXÛ Ÿ»–ˆÛQñ4)üÏiƒix˜¼LûvN»‹ <•ð˜Tò ™-xáÚ™µ­c z¤ÆV.9”Éžr¶¸¼ÃÜ+äeÞjw!]ÑCŸÓHwÊ›ÞMh$ÈÏäú 7ŠgÏ…2TA³`Ë_’Y¹EfÓf=fïÛ©d„Ï8ÎÖ‡Ç-9—Mb•™õÅüt燅9pPs'zc]–;èø›xcÁucV– ö’?â¿óFnîÍËuB0 W#µå¾?¤Ë#öe@Ð~i-Ñn‘Èæðçá@efªÁüG¿ŽZ‰÷@_wÜü‘…’BÇܶ1¢MX…/" yš›q,”õ¤ÄÜ‚éS¯~Ûi߯íjfú7…áqhVWØ7»Ë÷â¶pKHt™Ë}Xæ³ð*¦àûå4(Ø›Âòþ¶TAÇ.žŒgWµoŽÍäEÆç:oÔ$Õ׼ͳ0Kûï?RfM"GhUÞÑnölä&˶؆f §\ž7ÉYD[Ãx (t ºÜóÿ fÊNC§§ÍÙƒ¨nB£â }Q-¶Pºì§¸jZØß“bg÷®=¼<>ª@X!u+âœ]ì’²¸táQȸ/a]›SÙ¸3å@d™ŸFÁ3dê'{´­…úWTulå0Z4ôM~÷N‚j3Ž ®\¿Šü9Ž[Éæ{ƒŸ/®€îƒ¼ˆŒnÍûͰî¸Äð1RÞ-«”ÀÏ]Kˆ„Ò1¥ÃøæÝ›óôçÎŬáä)™{k_e-0óƒLt)³ˆ5'|èîÖÙXpJièøÄ¼¦Ìþ`I{›C 8(|†ï˜‹‰Î~¶vº(åú»…´T½åÞéTPœY­OÛ‡¡t‹?Ufø4/Ããþ¬g€ûwåueÒ®ŸÊñ‚Ýl&G[òöÓ»~m°ã•ô_e7„ ˜² ©²O¦·ŠuvyÆVu„ª:ƒý†‘?…PõOÖÚi+\ËÙ=þ¨œ³ïÒ‡æ-Î<’9l‹¸R‚¥ÃÓ«(+pÃ-Q´Þº¡0¤I*Cá‚~N£/…5ë°d(—#ŠC!Í›è>Ýõ)–†‘î°öÒ¡W,vÒ!/}|?dû¿B/ÛO¬#v~MŽóÓ˜ ^ReØ*ÌBX”s”´¹À<Ê>ñ‚»‡rºK'Å­O ŠÄ†Çñ³¿8·tnÎo\帴³Õ¬¡¤çëOåt=ekÐ_ϨtˆFQHÓtXK Õ‘»¦f ™äð”WÞÔ0™¤t±ýߟKd8UN©£ãE­øœrø¿Ä*ÕÌ-ו.·ä@lÐ å0à·4p-xÓ]Ȧ֥qW™¨©‹€ÝTX÷ñ:Ö¼@t« 7ƒ¡§ëû–ÂTˆ-ŽU“a]£òÃE£V ‹½¶8¬²^,µc(1<”"ÚB£à(ü´I¸Ù/XPÃEÝ’7Ì7°Ëa PзãÓEðVb˜—=é‘A—ÄFÐ’œ ÷ƒ¶ÝÕ€³wÅ.º¨(ÑLœSœWMûk€omA¾ŒeáÛ8X;Ú¥gt u»§:‡›{ ìó5òÞ ÞÅO¬Cµ-€1[ÀÌr4pOVû“Ø ÛÆÏ4õ½&ÎZ¾+¬1‡B’GDbsè¿»³pÔz œÍÄÉÌ¡*Âþ²ÿùE~r:ٶϹ©=µ-æT&ÃfY™í-ð°8U˜ wdżïúJ‰ T§â&eóú+î4oŒžR“ª l$1@²Aö™êþ!#È:%¦œ×{üÕñ¢]‘äø!Áñ½bb"Ï”)i¢I¨| (ˆñŒÿÄÝ×éOd„]1Oãóæ\õ%¬L¯Vçaï› nA»¬Bâ'âjwãq Π´óäçSÖþiFî!9÷’òP?Ë6 ê%àÛƒÀ†t$P‰»·I-KúصrqÏ| òà}ÇzÕ} µØT^¢¥ë†Vñ£Ó¤ŸòQQ+\ßš>9äpl6Ðs‘vɦÄ?2±1ÖµÎ0‚©pwŸ†s/ÈPÞMýÈ–®|‚Io#ÔW·«ùã+išøMˆˆÏ{A;=S2@ƒ¶žÃŒ›Å‹ñÇΗí‡ÖS L{Ï€+»½ŒÈë¶Þd·_j‹H󺄩Npœ?3Ò¿½ëb@iY&B¬Á~ ]Ô-œüm ÀëAô,Z¯ „ ÿiwy®ùÑ€Ÿwç1§»Eh£à0ZúÙX¸Ü¹Šv"}áý¡]§K‘] @·’ØL!èbÅ"¬·ô–<ÅIŧŒn“`iÑg`éz²óÀ8ƒÛÚzʹFøàkú0¾pѤÇDÍšþ¶˜’tÿï¥ yAàk®_Ù7^D?Ylïü½óª¬šü«f8ªæ—2En;•áÿƒi—?mGy{¤ÕÃ÷˜Z8'ðD?m°;P—ÉÐXÔ†8f LO®¸^.¡øy!Y@Œ:©ÃØTö Ùøâ²ƒá°r™«ô»Lêž<ù"ÿnÐY§;}nvªîèVú¦|b)ZØÁ5ùNs.˺½ÅHûâ$§–Á¶ËÒýžõ8¡¤+IbkÄ’#ëòE?è¬éúäÉžÝGòüº‰e»ßÓAR¶z’S¨í-ùI/ gÍcä@8ÈÂ5Me‘c‘Øxw@Ï4U V.³¨,™_ôÍÕ´?D÷@ù;E°}=?Ô<Uú_ûujææ´™cˆ]¯Êlq´öÏ1îÑ ªÄÒ@¼k}‘•ãÀ™(ömS*|‚jpÅÞ!¹\nM'ÜÃRh"ÔX3õ½=÷Žg€‹cç¢k´V:«Æ1Z*a,[ÔQ¦?æRÿFÖŽXçu‘þVT³¬_ ³«ª¤!Œ‚Âd m:bµÜ:8}§°n1Ï}²H·K·á·ÛJÃ Óøg5qN-MÙçõ[#_°Ý…YV¬5ÜmÓ£ŸçÍ•“~@£€V ^ºâó¹­žø¿4îq÷3æ Êü™³€~ÂGhB€Œ"ý‘þ€.ô½^m ¯¨ÖеŽç#ÊôÒˆ÷HZÏ]ºÁÔ²}2XÇD.s ¥Ü)z—wÁ ³$æzΕùn-ø* §–,Áw{lúiŠøÅI&…Wi•%D&ÒÎd×Fâ5kÂ1Ëå?%@ˆ]›Z™ÂEàâÃHÕ.?å¹%A»8ðÅi“.Éh½£í~Ü ZâÓ˜·?k×›¹Yü¥âêYTfAÜ>ÇÉíGÿQ"e9ePÍÛpZÄÑ‚ -±‘:eK—ÿw?¢(>”—ÕŸÃ^'"9ÝiÑéx_›ûE›˵À2ßDâÎÊÏ"îî'Ç¿DåP=ëlË‹8²ý“…úÐd9|:ŒCššã¡P»Mß6,eºZ´[ö0èFÉÇGAµä $¿æÒ¶o^ ³åâPd«Jšyt˜ë舤ez#×-Të 3VR.I®ì¡ù('çd1ldwŒû³ ª¼o°ƒuM’7N%)ЦþªpRòÐ?£Ÿk (Ha“'å$*3xn&y7y(+ 7®ǧÇPyGΩyum½]2ê3ãôR¦k"·OÍŸlrµKÛ‘&Ò–«ZÒ86Ð4q³?/åWM,~å_È4‘Bau‚ÑØwÈj`z&ä W¦„¿²MÜBãlà·§ŒŒßêÇ×C'}¦8úvp†$ç£Ëz ¼¤PŸª9a ƒø36•¦&L@ (Tö¬ü9†> r0eØl‡Bu̽rѧR”›vIÍí²#äŽzú®QÜbÏ® ŠŠ6GþÔM‘`+òüÝÈ)ÔÚ5)Dê”E7‡˜ÚWçJuQª¦* Š[å£Ä‹Ä±·SÁž QÚ•œŠ#È&æ–þ ‹‚KùH¬ ФmcÖnn£œI‚f“lÉU•×}ªà)ÚÒw4½Í‡Ðg ŒÊAÆu;É×’º‚¢eÞ?—ñ^ä­œËQ[)PêOÐ^ú›´bý‘:÷R­Ý%1©é³LÔ:€ˆø˜t¼oå„áÈq2Í©ì‚ø34rÄp|XÄ¡G¸ùÍ©ÄéýÝî$m'ÑVŸï*/÷òã Ôü‰“JVÿ¡BÒ|—¹öYµ®)Ò’^ 3]?è.tè-E’2˜ÆY¢[ÖQµC¯YÚJÉm3qAçtÔ'»ãŠß“æiòÖ$¿Lw£D—‹šUø™€‚â¿Ùш°ß3M:ÙK¹Ÿ­QL=|Q$FdugÂp/ÖÎŒpo/“l\.¢xÿNa£©c…´+fÚ6e;ò¾ƒ¸ÙsìV^Åâ3ÒÝ£„ï¥àºw8*pØRòlÔg+ÝGZ@[Íy0:ã³´æñg;AB¼÷øš#à÷†ŒyUù±[îeÖÀÚMbañå3H³ØÇF1<‹•=~}û,¡XÉ(­©ù5{î­•{¡«¡ºß9<¿}‰4þ¤€¥Ü\VÄBgr7œ/n6¯9DÒs`·£œfý¡ÿ ÔuV&"*+|_¶‘nR °²Ás¡í¨Â˜’kàb­W Bo§À/x§…%[*1à-¢/YLÕqBÒMœ*cɆüó³À8<õ8¶›°Ài8/FnrGÒAˆ5ÐÂ0ŸãÝщ÷Š®†'~B_ï’q}¾Ë.í䥃LJ4“>†ëÆêU˜»LÜåá/¯óëWÞÉð$ž,L¹,DKµdÜ9‚ÝÆu^E;Ù ñ=#ý­ä2ʽ¢úýW¤ý™ó°Jr B®[ ÿ©¢Tjs¶)m†FMçá&S&wß@jæU¼VªYQW¡PA¼.)Ù.¿5W4gv ˆrã×Ý×—㮚÷tòè LÍð·¼ÇÑž7ùÑPš~UáÕ=Æ›?ìU´"­K“)‹Å…¬ÀîYâЖ4> `³‹ÅÞ†Ì?™-qï¸]¢üS#&ßbÛWj’Ѿ7êžN÷ž¹Õ}B>/I2c¨UÍ(ÒË1ûˆœí»‰0.º8vEúºH‡a”5CócgÐ1¡ì¢>‰Ò†ÓeÅ©Y4!|$|}Ѩ$‹?@£åŸ‚þÑÖ“|eúø‹Î‰Mn ¨7ßÿÞæaÙ‹.»#¬ù¤Õˆ¥M>À!É)-¨e^y#Y«ÂìÝÖz¬q ‘\j°J4î*M-}§> Ö=°o…/k¥ÉRÝò*EmÁ¯q÷q’K½•®±Öxd¬û#Ûò2]Î4Ó‡z] ‡Xm|L˜bZ%ŽbÔ•Uê·÷n3üê•UÙ`­ÒªÀAq[hòÀûôÐËTëÿӮà sXiF”ž7eW7 ÀðCœxeoTó[\xÜÛç0ŒŠZÜ”¨µ²æÈ|€î:((¹í­¨1YaEë-ÙjÁËeþË2LFàׄõF ú,5 ¹»{Aƒ•Tü‡±2cy‚/=ö®HêM&ÚŠ}ãö°Ók{ 7Ü´ûà2àE®…-¯Ÿ&•ùäCu—fþ_"báp¬ú‹fË:"×f8š2¦+M óÔÙrÛz©ÞçœÏ[D¿ï«F1!ÕÙ<Z|šK™ÞR¯$Äoù‰yÇÜP¶xù\›ÑËqäTÿor–’ôñIð!NÃż[jŽÐ&çäåzÙë®Uù`…±>‘L°o×ñ§-á…2B–ï[#O!»®fë ÑAʯ³lÆÕ…pSÜUWúM2tfäÁO¿ÌÞ2©26¸ç=µ~bå|–QrVþ)‹ë¬>øïÊ«Œ¨¯†é»Ó¹ÚÔ¨Qy˜¶:Ù[æËVo¦ê¢­ÙÂqAÓ=w{Ðü†M~3Hç>Htb€ãâ <¾})×€0À›¾ºe(Õ’z…Së©ÚþqÞéÓ»Ý2jz(X›á.°®ß¤¼1„ú^>¤x‹‚¤›Ï&h¿Ÿ 2bص‚‹¡“û(‹G¡ŠfI4±7CŽŠ~(.7©ß÷šÓ4œBIÏè—S Í&˜ µÜ Û¡§M$«®Ó2”¦î0XÄnœ§Ì×> åpÃiU^ä€W%ÀÀR8LœdYÎZ²ã²ôøüG¨¤°£å¦ Þô¨Ô8§A†¨Îöv~מ|[Í ÁÄàjÙÇÔå,Žý†VO2 œ1g½ ÁDJÞée¶.às¡Þ\?ŸLv¶ÊÑ©¶×ÚlP®ÝÄŠ¼Ý!ÓD¹ÁHÑøh†7wL´ÌÕ½ã„ÌGƒ?ÑCûi_ÁÒ}Ý7­al A§ï£ë Èüd’È«Ý~œœš5*p²‘=w8ǰÑÚ8›´3V\¸Ãy¸Á“0Ò95Øænñ$ðª”_ #E¶í Q,ØÊŒ·“Ð+I!¦ûÍ©Q`ðzXά}ý4‚¬Ò›f‘l×s×z#œæóÖu£#™Ñ §ê{‚C ÕVÃã|w¿†‰Àô–µÁ[ñºÂ·Ñ±2˜W‚ì#)BÄ•×âIP­ê¤w]†nüdñØ(¶xô.íHÿfµeç~gõÐÚrÊwt Žñ`tà¨ë|âB¹™ÿ>´ÐÂúö- »îôöI­§mX:~ªÔ–0a¡Ða+]á> Úã'1ØQVJj@}ƒaé9›… .lä`ãFE}¹ªÅ&`w£>GÙîJ~:2¾C©%Q(N¾$û.÷¹Ín1O IB¾‹x_oYÓBÍùäÿ×2[óÃ^UÔVæÐØ*öCÓzo,››ÍéYV;¤ÿòRÏ$KknC-%´N›÷€¸óîÿ~ŸFÍW¦L«N»{98ø¸¥oY½ÍXóÇŽðæÚ}3H ô!óSVDd™aÜ#’öÄu-yWNfé:];w{‚» ÜSƒ.‘¡ éxžaÞKÆ«mFLD4×ãaÅ `ã¯é‹WüÇ&30…^íRsS`¶”µª­ }®KfJá×dû¯ÁrTz0z9ö&फÃEþ^¡µÞB}ÅðŸ¢è1ÀIçöWUü‘³Zað…“0ݧ~“,R²ý»û÷FyòRæÎðÇ&Oû¡{º,D”£äšÞƒì/,öîN ¨@XŸ·!ýˆ7tÞ›“„íD|DëŽrßÝhÞ•&ßòGã3íÇ1^¹TtÙîÍ­z‚›8£­.íEšF‹»äéè<Ù¥r„E<óª}ˆê2pÂ` Vß³ºJ›Ëå7¿þ«”×YÂ[YñáLu „œ®ÍµjµÓ«k¼¾+î¼Á ö¾þ(dQi\ž·_‡È{Û×õF8ÃÞ'r¬½1š£Æ)ÍÆ¥„®’4´6.ìåÙ"ƒÈfjå–fƒöO×ó †9w+ ãÕB¢ðÃ--üør€í#Þo6ñ¡¦¸/¦§±¬G Ý”#=û©—ÝŽ#FÒÒý÷NÕúðÞE¨ãÎÁðrwñH¯Ðé3´:/zWaŽwYšÔïCâF 2½¤Ø´”h Šë@ƒ £7%a9X¢ê›1Âgà$”ÛÈTx_ðmD¢ï}L—ÉX´`Óæ‡>_‚½w+0§C ’#Ìÿ­ì ýâÉ4"LVbrðð[òíÏûÖ‘j*¢ö^6´/{@ãZ0#Ÿ6ácUY^qX™™R§õ¸¦¥?ÎÐt¥BÀÄ6N ån,XZ‘$µ–o>ÓÅA š`[~®Êýøj°2,ÔzÚ{ÁO‘úâ¸8i˜Å«Y[Jâ¨MjH­dˢmÍÀÕ9ÀðÍœ +DÕN¹9‘ŠCø÷Ezx\¡¼éJ2©.8s'G=øFkÕ_;1“v7§!ÂYáµÓqO»rG2þ¯<žˆþT¶hô ÿoŽ¡AˆÁšžN*ƒ…]²\ý°»ºA,…5² næUõÃ|NÔ¬G8Í? šg[L}âà¼Kµ!—!/Ý’˜¥Î¨TauPQ®7’“gÓWªÜêk ì§°x™{\Òd êMöúàH}a\)\á¸Etý°.²Øù.(¥gØŠJvú6Ñ´È1ýBÒ¶Ï…”óý6“$¬ 5Dìà0h• qF_»ÆzYMeà^£ÛÄÖÈŽ]0LÕÕ—Ý‘3ðòü]); êÐJ˜8þD£´F©„­`² åÙof—ó9*¯¾«ìó–•ØîþsŒkÃMG:« õüu‹ÒÁ,æ6£‘°¿’dR;ðÚüؾ÷€¼…Åy5øoL&šáhïZ£Ž<ŸFõkã’ûj÷`3à«­öDò{ú­–«ŸçqZT|¿š¶Ã°2ä#×J«2ÊWòˆ™†sۨÒ<»;Å»¡¯Q¼N;_éü¹éma/ߨ#CÂÇg‹ÝÎû)Ù±¡¥A}wq`ÓÑÏ|¦®x0ˆ"i}¥"¬=ÞDA0jþ¦Ž| ènšvx-’÷­-”qtî¼¼\Óðó3²ÿ¦#Û“´úLhgߥÌ*Q9C O\²â`»A–\™–ZØwWÔ명}Œš"ež¬ƒƒ¢Gé¿V&Ù²>2RÀѶêR—/ÉÝõ…–{Ï^z'U2yür6$&iä´(5…Ãá!ªÅI‚ÐlDC÷¾°v$‡"EU3+ -î+³ÐHŸÝ™ŸŒ:»¶ÐÍþå'âš[V‡º‡ßfµÛ Œ·ø‹D®'Ãvš3ÌØ*®¿%*ÐKxÿ>ÒZNžnê¨Á=åüßÙ :…1Óµ:t^šÞfÓ"…°ékÏq¥¢NâÀã²âj¬Ï§e]4 ‰j êø1GθTÍØLÔ:³ îïÔlú¤ïØAõKšY7ô&Úb¦4¦l‡Žuº£Z"ŽøûœpÆKù°"nz¬/•²Y<zz9û³OÎGGR²2|»ùÚæoJÕzàü|"$Ø,cTÓc¸*×Ûú×»D œ_¿¦:EmÞç¢A…2.xq?Å‘QÍ*H±N7ÓÔ ŽF] çº_ö%¢Æá£xË›^…ØŸ”¬±æéq7–¯Gt‘özÌŸ4"X¸rœvûDÏ·æžhz…M^þ»‹Œ[<ŸøqgÑå›®f°'W[¤÷ß½béx5;Ä”ÞòTŸù$£JÍF—ì³Ú˜ºa-«¶YwÐækE Ç×)Cç?"µšÂ¯;øXBˆ9Åjó\÷Áv2ð˜$C«rÏ›Cyg—KÊ×ͽF D!ÞA#ò7dâçû ´¶Zè üZ4;˜]ÚMVÛ¯À;È•’7^Jú–uT@LzÕXÍi¾q#ŸÔëêwÔõy’…kxü9J6À¼’ÐÅUk”¢Vs¨P[Z\\XÕ¦ë`åµù<à ÆLÒä>ÌÔ@ô‡dµ©uÂ]±ü2ŠP‚<,ûð/úšY2tgIÇ&±l+{¯³Väš=sÄ»ÿàUª4ÐA®¦²Â{ý­\gOÐà ©ýÞÝêpÃjíªóU½þoÂkÒò*ÿÓPBHŒT~z ˜ßB"0˜yÇøF-àA¾ç”͆ ÑP­ $ ol”->$Çß¼ÙzÝÐ'ëØµàzýËF-Ϋv j8É ^M£ÍÅí†QÚX·×¶²Û©ÎR¿4p)áüa¸ºi°wäõÒXUDü^.ÍFPaKàüâÀ`žõK–ŠNrÙgºðÿ`c¹žó YK›±!òÌTÆ¢L- ^<»¦‰¤/’%>Èn¾½ú%÷¿\©Ÿf‡ùÂM<•8Yɇû­»«·OWf•óÕ9†â´¦1À¥€=wƒAÐûëò‚`Ž-\Ñ çqÔ¢Ù»™‹’ÃsÝliZHß@zȱå l##?úݘ›°ªÔ,/€Í2Ì7Ç~ž8HÙŠ–nºUÚ;ïrü²š‹š¸:ƒk$²hÚo”áªÊ¸· mÞ«E0ØÍIÉu?â ¡FŒ×Àž{ ù¸eÚ2¹Ü务PÎŒFhÌ1t£Ì|Šñ& ›KÕcÙº#xæp¨bg‰‹Óé1ɤÍ&âÕÅLÐjï'~¿ -j¨ù“ŽNø¯,“î’¹5­[·ñ{&˜Öšo4ðZ8 }1î{;۰Ι¢ÃÐ|õh„V¬Q#lPõ£} 1¸P-VÜ‘žT «Ä¶®ß¶ùÀx¼ú¡vœ„}3Ä^IÿRLÚî¯e^ïÖ<éÞ$x·bSÇ­šÀˆ6­¨§²è„6WPU§”t±.`]›‰Qþ"{ÉìÞ{¾õ¾@ruo±2pĈ¬Ü>‹(„' Ÿk¾ÔÌþ‹kî„àÃmœb½LŒ³ÐÏa^¸¡? JA”g»ø7†ïìÁOÚœhàqØïüòØJhÀ`ä ëw†q¼%ÍéL~Fç©Íͯ¬šWƒ M×Ò™[„¾Š—º>w„:IàÑÙý쨈;—öÃÏ–Ý3[d”ŒwiKºdÆ=-['½BÔU!bÃ|c´ãšd8W†(ŠríâŽìñ—uÿä Jç#ÁÅÕƒ±5´—ÑDð õþØýJK0éüj 2t1áׇ#ëaŽ®ìl•ñO=š Nå9˜ûÐúl>ƒz®p¬+%ÔÄéç†={w±&@ ÇÔ7™†+RGžz’zÃ<†9‚Í£$Z¢ÿ…Àz†‡È.𔻦îrɬÂÊÜÝ&_Ó‘X“(.5GÖ=&}Ð2í‘ÚÖö–ºzðŠóBoo“F;ÇÃü9qUþãT×/G§7„Q½$=ãŽR¡ïÔ›aT÷·Š®&}–.¾Ò+‰‘©"ž®tAÔº¢ùIy=Á¨E2h£9Êxi¸…ó¨¯Ì§ë’ȃ›¦Á)i‚Q®B> žÌãÿn€ƒT’íøzSÿ0E ¨N®<]Ü0ó|ݼÒ"J)%NÓ+±µÇzÿÜz©k.ý^Mš /p½Ÿœûæ0À—Tž¤¿Õ’ Yl«o=‡#_ø×m®Mæ?[ð ÆM-P–+§*…Å^S¬2º·Û‡y/pˆ&kl•¸ÅUˆIšËIëˆÚâL(Ã'XÌGØÒ³çÊl±åœ¯òj:p— =»Júx¢³p£x£éKx¾Ý‘ È9-š³¬ÌC·‚9Ïeô‚×G‘Ùý×6ãŽÏIÐ _×h®=Õ¢‰ÙÔ‹ú¦'Ԥ׻u¼ÌÊÏ™®Aƒ¦B|òˆkù)Þä˜Éñ$¤Éö]!Cônp#yÄ&Û‘ xŠ[»ìIÏ'ÿ–ryÁQôXi'šÛ"ty¿ËÒí†Êï €ËÕÖ5dÆ<¾Ïb˦nŽžÓÄ”µT<3 Z¡UùTVØxçÂëñ0È+.Pª™Z=º(!ü–¢(#yPûƒ¿g2·,½œ\Kûõ*ÈHVìQA·p¤uvNú‡ a³°õ”ãUå!‚ùbµexIÚgj¾ÿ¡’Eë’]T\ºš6M±¶Ò¹òz‰å/–ØXàÔTóÖ4R¶>Æ¢7 ÅùleÚŽk’9±ñ¢¶5Mÿ)DÛâ•'ÒK,¹3è8ë‰]svïÃT2roh5'(KÞNï×”Äqð³é~®^ñeA’@«"‘Z(þ<£äFÊ'ö®“ŒÎNC}¬îã…]”–æXP”3‹#ºcˆOêñËŸ:G3e¢RÅ·ñÞØgg–u' Ìm¯©ÓZ¯›»÷e«uÌ{ JÎ0–å&›pŠu…jòáh%¢C×77í‡çÛÞïaêÅ®C lNý´Ë£(f`£ãX2ÍÍðÉ4å¬þÆñ4 ¡>ªàÊsfà%¨—¤¯óHÈb ½7fó#hîÌ´’ûÄOãåMÿ`ts«×Í•kíï"Í÷RÎß‚_¼Ñ𣠕fÓsðYÿÏs7êiω*ìAUNþßù&%Òüý0„Ýà>SÁ3WJ bx‘(¤ÒQËødWrâ\Î ¬õ­©¬±ý³³jÀÓîñ{û”a²G²æ†ˆˆË³©¦×Ë JØÏÚ½’Á˜›ÌÅöaÍ&uŒœ[i»³~,ÆMmÔ…¦Œ–“~Rk<ÓbŠ_O[Ñr‡ ·ážäVQ=i¥0`æÑ4Æ|Ü7—§ò3ðwi]œÊ心Îx˜¥ôìÑÉ1¹Ë¥òQœêA„‚ØèòÉ`8Îc”Sß“¹Ì,uDU¾¸hõT-Ϭ&W³ø'31hñ“Çé) úÊ´rUÇnÏŒÅ âøŒ{<=×z\èJÞËñlfj—L7ÿìW ‚îs«…ÂïŒÆú…F²RŽña·ŸÌfÉRrɬÅÁ=VÆadFί£­aÇXÖ®ã $öÈXR­ Q™Cþër[R•fó3ƒ ±í6rX7À¯xJ£™È·r1[÷.<±Tq=˜&åøD¡þXDöBªm¼–JqC'm!äËTš^‰µ>´+< UÆÑbߪ'e±;c^(厅£Ÿ§]çHô¹ÝªòâÇüØÝÑ †qÚžól»}N½s«çe‚‹óƒ2æÑ–™UEMÊ5еEÕø5)}}¸?"qA*úŠD´À¼xýÖá à4ò‡I•õS¶-×#ª‚q4(MB›¶oKÉ—F¯;ÞÏëÂT³3&!©Ž3ú¾YsEïBÏÎÕg‘ô`oÔýÏæ©Éå Nd$ÑpÝ‘"\Â7vÿx·FFd¼rZxW5îÍAìhuM­lè^eIÇäâd™5ÃLÐÃ×1Ûµ#ǪqÙÁª‰mÍ޴”R‚ž ðþ}®†yàG‹uµ7ß:›ý;°f:DåQ«¬†P-@zØž÷ÃhZ½ÑY??m%ùCõî=ãå¡mœ¥éÍR8RôŠ6³w­ô§äïí4h¬*  Ø)o£ZŒvŒÌ/¾eU¶ðámkŒÂ1,\NŠ0…Ö¶›´7mTXrgûËGs‡¿&ñ1UG\¹ØÝ]hl æÍÕž›ŠØÜÞ´r¡_éérαe¾¬Ó.sÆ]frÆR µ=v*"&ùwÂÊMOG´Ð4VMQ_|ÃWû‡$×',dˆ1‚A,‹an9q}I8 ÍfZ‹KûjÅÉÉý}Ø»Jè+¶ôFoÜ;iù‡9"êëëêœ@™-ÿy®ˆº9r´¿Áè¢x,mqHQv©Ôd¸QRx:Ëû›”tŠÿI{ q9ˆØªjèƒtRaÅÛ¶Û[ÄÑ54Š¡ŠÍŸêâÙôŸÃK ±€ìé»öl¹²Ú§qí¢Šn§®^žm÷£ÿÏäó¤Æüó‡ qÑýBx;jÅ+'uŸqpßw €õ€„mðÜ„bRÞ{&Ô͙Ƥ€òœQ#þ%ÛòÛ>ç[öí°iØ2#÷èÈг°•gÃ:©–Ö‰ü,¥Sí=9›VË¿<ÈKíûçªëÔÖD1¿`ßeóšËƒi½õg‚ž5:º÷’¼èÅW¼UrU?ážC€DN„£ËRKÞã@cÙœ­+Ÿ6ôB¾rÀñó¡èb)É'uˆSG‚C÷ðƘ.¢;D¹”<ÎéÀþQú*òhæüh{?[Š¿ßó&ôq§'è&FÇ´›2+R¼*âs¸ÒÚé£àÛCõÀêDW€Ì6UŒ‰ÍT£ŽÁAÇnU"4wóCyQú´Í®¬!úq½~NžŠˆ4.r-yû8¡ÓPqwuq9xCdµ´=øÐ$òjÇ}?ÈY„ÛŸÀô)N"MsK”Zí\†Âhõp¸ÂêE…„méÖ ¿WO˜sï üÒèô–EÝ~$ 7eE2¿ÿ±  ³&X¶šë¤´þ–µ}oUu‹Á<Ðágbàþhñ•ÞhIu<Ÿñû+- ãÅBw—Zp^ñ5j?™îh;ÕÃ>,H½›íÄGÇ%¤±Ybö`(в[Q‹.š˜AÙkàµF&a?ï‚ 6,×ÏŘ˜´|ê˜F)¯'ðÔP7míÆâÆä°¸jÑ‚l¢2*UŒ=v‘ƒô׌vTè·Ö°€ IôyBù H®Ð#dÁüdÛÜ©ÊßË1¼]™BRÍ>©_1å‚¢6ƒÖõÓäç•m4±©ÄŸ¼]ã±p?§Ú¡™ý½¹ÊezC¸$þ¡EûÐà]ôZ“äàxTSELF¸–k;Äÿûå Ïâù€„+ÑBÝ ¡£håRRjî¤1tâf¤s€ìhÞ”62®†!ÀbÍâ…(ë˜äN—>HÇJ³BÁ„_Ö®_CÅD¾Ê(ì4ÜÁ`äo£Z&„ý›ð:¾Ç*Œ¼¦9ñ!8=8ðÀ€ 7}éu¡:Ì"ç`±„Ò¦½_*‡õÊž:«j * I—Ø`÷ÅP§=ÒÓ(~€½ÿí„Pqp;„®.$¼AàÐÅÙ^PåNÇ¿î….öˆ"c4O?3 ùÕÃ:“]|5kq×0ŠÛ´¾öy©ŸaŸJzê§B&Ú.½# ­g ÛÛ/T}¢Sâ9}Ž33µ’¬Æ«ëMH¿‰!¼ÞI|‚›`Uy}Á‰zBt2 T€÷§?(•to‘ë¿ò‰GyÝ81û£}ßF‰°Ë˜áÏ)F®‚™EÇdkgšßBáÁíëB„,ý&Yx÷ %ýÍN¬¦NM¢ PJýæ…Ú6–SƒâRRÂ)y«k¼S^‹ŠðÝ}V9ˆ$jÜ9êâ´Ì%JL-‰ÆÞmŽþ»‹Ý÷Ö ™¤¬ e*á°·oož­ŽsFÒÑÓ±SHús1›ApôáÅàd~·ÜÜòsKü^³«-\p<¿Ù“H éêžÐ¨¶”aÂÄAŒ±äúÛO¸ç#^$u‘RV¥už%Ën—¨€C¼{y§‹ñrg@'³ƒ3h0ãíª§[²$^Ê-Õ÷pJµ?žÜšÖ¥ü7Úö„.Ã_ÜPÖšë‡BDÉÔž=É›œ“ªÜÀ’‘k½€òµF¯Q÷n°Ñzàq¤Ü:‘AáRˆv/¯¿Øfƒ¬¹’JwÓ6È4ÛõÔ ·/`fVÁÙ[f^n=åUj@—ò¶]èwÓ¬|å·ùÕÛÜ0:m573ûoû©­WûKS_qÉñ¦l‘æNÄršìÁûžŒOjöó0ÝK`—(pZbYJãYßHº@X¿ÝùBÏ{AA¿1 yÚ.•ÿ+¡ÜÈP†*¿qéyÞT¨^üÖ$àÌdƒ‹|­«Ô¡GrtK°Å-Öú3È´üÕ áø&ÚLeþ.¿4£×,ä…4ž`ß¡„ÏB#§gèy±ûe©^G‰ÜÛ)Gö2÷Ô÷ó¿ÌºIÕ&ÃìjRñ11L'$ÎçƒE½Ày¾'rZËô„\O‰C“hv@Ë`\œÉ(þŠY–¯x ±B‚Õ¢žÞ)¥ p`Â#Õ`¶ÙÄ;¯ï‚Τ¸¸æ«mýSEÌ€+æÆ¡>VüjäæVÉ>%³SÍ?LšæžU8¡ðýdä$ÉgXŒÖ·Ö|¢qã^•»šä…üxÝ.œ1ÒÑ“¬F¬` Ë–§À“.]é-T„™²|Õ,uÞì©Z'¹Ã«ÎgØó´¹ &;ÞQk6Ø…±˜<ËT?ŸÂ=¸léÇÖ+¸‘K® ÁµµÄÅ ¸ûýš0Ù$u­ÚÒæÊ0f4ÊÐR­´d#vÍ(Ÿ5‰>ãåËžÃC°à‰Ù„uCТ×lÁ-* ÞØQù›Ñ¯ìzôÉÚ-ê‡xP¦ž…¹Æ³ŒÆaò·k±ô|¹å?KýUÔÈ0³«ÙWùÁ"k2rO+cmæôA„dtÂ:7Ž"ͤÕbXOpܵK –ŒhЈzUŒ¢aö®æhèD^V‹xÕd³'’v†ðÎÆ.e^FÛý” _­³»8ÚˆOɃ„öÒ!´ ËËHÝZÜF1¢ ù&y'V‹ïavêŒ×0ïÌ”µ^½u,`{ $Ä¥$ïÁýL©ß[+­ük*è77|C·:’ɬ+:bWVaÔAb-;W_>KyE° à4=v]’qY4Ú„‘ã¾0‘§T/‚Rý<`“bW‘@˜ÐŒVÿkZï¤U Ûjk²$ÓvñÁ´D3Ê ’·ÇnPf| &À³çt'Å oä…Á¯ŸÎ|h*¬NðJ˜xëRJù&.*´í·™\¿}r˜‚kš²ÃðÅ5æ"Ì6Ù@X¡‚ù8ºÏ%òÝ~–Å•(‹ƒDïØQdŽ¡R‡¸Áï mQƒUM•é¢^ÌùÌB?cÄDÔŠº}\5›õÑëMrÊf1})Åõ=Mëgý®ZC•«: Ö”ÕxݯÊO|hðvdÊ´šz¢×ùxO×TEøº§›¤–q;`°NG¯Šœæt$Ùˆ¬xé Ä5+ga¬ˆö4W=R²–˜•jxг·R÷ÍJ^§Ì¤ÁIAÓy¶´Qˆ/‚à`¸ÏÍ ~ʧŠïOÄã}µ…51E@º¿ŽHÇ•¸â†°o_ÊÎF›¤”˜Ðz/?ýu42*ˆ5÷oÄoZ`ÿ˜È œñjÞ³”;äØ޳QøŠˆPÒ»Vµ_ƒ]½³Ùšï¸õw±Ñßz’Q5¯•Ó–¡¹œRÜ¿Œ[OåÇ qß0)¼4 o{*– ¼šÄ_ë(¼…+/Z@¡É”,ú‚îšC4~@*ì}smž31Äíýó„ÏO$–ü!P:4iíùgÈÒ~)|²yÆnx—çì@þˆw»Á³Ú{aHkþ·Ê‘@â®/bô4úüéLe$™ÀÏbpdžµQ˜„TqÑÓÌž–9F ÛaƇ¿_¸¬ðážòmÌ9–\1jþêÞ0ñî_T1óWÂN‘Ù‚¯fÞèÝ:ÖCÔvQ#¶ìƒÝ§Ë`kG}(Yè¿t¬ßBøÓ‹æûÒWݱöc“ø ÀíÂ;oöÞò€ V;:øV'Z}6ñg!è¼C Ž×G-q?§añKäI>sœ8(o/1 7ôS:ìF߀»AãêãÎ'0ýNŽØ½«»Sâ-YŠ‘©a–­À¾I‚¥_lÑúãöOVãE9¹fhpÆ™o‘½Îº\˜Î&7»Ÿ“Ñ$;¹…¬ßÓ1,À®ÿ#Íÿ=S‰A{ùª ähÇ“3$Ó)¤üHÉ#óÖÜ0y¾5ÌŸ»8^Ò Ù}R˜G±Ì¥’ú¤ia¯4¶=.ˆÑ ¶¿æ+ЧWKÉ”××cìóµ£ùÂ:Œß}­yp+ð½|ËhÕ:~™òÒ(nËÙÇa¹m¦'zˆC›gk¡ tÝümÚT9¦GS«²É•†¿ ÔìV¹¨òåö+‡“jDT¾( WlèÁP‘e;j›;Q½¤e"×3eDÒRå­TC-û©NŠGüìãíáØí W,àÍ`sÔwf‚Ÿ1T€O\Ådž,úIªg8“ç(àŽãTeųаz@µp1;êh;Sô¿Í]ÚÂX‰E[ÏÀ–Õ×­Ù æÄY<Öà 'óêJçÉ@ˆA²BÛΤnnÉÈ‹øQ¾0Îö×¢à ·Þ4H%ô¦ ©³¨‡Î½nÿùÂoé}w»?I%Öíi*Çòì'®Æ—B(osÆŒ\fÄ—§ÖòÚZ/Бx¹ï¡:«êUuÆ >Mo³Y˜òg|oP&`†:õûlÁØv¦W œëÑTŒ°àmËS¹Øø\-iLYRñrÑËE8,ÊRÿäOoʽ䄈¼Ãð.§$Å›ZüMºq©Cÿ‘iŠ [÷’½§ZáÆÐŒ§÷S˜ÃdÁBn‰™\éÖÓ¹ßlÎQ‰ˆÀ]ÕÌLõK ÛvÓPù, 9²™‚f ¹ kJiD 4·²Xßø}S(ÓNZb¨Ž”ã©{ò憆³¼º»×“Юåî_Èߣ¤šURçª]·Ô¦\C.w½¼èŽå}ƒ¼,‡‚ ‰:ÝŠ|v ­0I4ÉúùW…0ñ@o1Gœn¬%/ÀíØU'Œ’n†Í*Û µ&]FÔ¾üYq5ðùJ6¯0+&6Sùa‚‡G;}ÊÛvB0M¤(¼79hãO'â±; ošP+VßÓZC¡ÌïÔ·û|s²Âª=æÊ/F*Œ¨~™®ŒÝ‰b«¬S_­áÌ66²‹éýv7ê4jkùÅßKY…Bª”ôEunH›Í ŒÆ 2ûˆHÑ"ó ½UØÞ"rLòÌþoß-‹G\ô°Ì`"_Ð(ÔéqH ÕÑ-‚\rR›ï‚”Qz)¨¢”Ý‚§û‡¡—>‰—ÇË¿?™yà¯&_…PÂ=Sð !¢DQ1Å¿ŒeçðQ(qsãS&bdA‚Žüþ„ž8ÁR6Ù.y…2× ´7ùcrûëtw¿Ë#ßâèZ¼[ýµØÊß “FaÒx»­§¯'ëA ;H‰ìžˆº1J}Ò®„¤ù×ý5UÓµøs%ÔÔñd2Åj;XeЀ?W°Îc‡¹n¶ˆ±}D-"_?SHš¡>²õN®¢SƒaÚ‚eKýõEÀŒÒ’IJhv»°Ý|žÆSY·KØÀ­GkY]¤{ÎÀ¡œ¾Æ²=ÚÀt ëá›´~\B8QX_×3;Ù‘&–Å×eöŒ?.âÙ1þ橄БªîAã06¯UŽ®¼“Ȋpâ Û•ÍÓ^"Ýu©Á¡gÎùXOê—Dû)8ç„æ%t¦•Ñ@I8íM¹èg—¸Þô$j.‰ò_œ¼1T—C#ß1ê/`T•‰ÿM$ñ“¹”Ô1Å«Çÿ®RÆ„›Úîå@ÌAvu§ðˆTxXvVp„›°¦˜p¢ZëõkÒšM,Œ—xØmC‰ ýž½Å©Ï<}oi Mº‰-¾•:0{õÎ3ÛÒ,¶O(;.£‡·.Wi’=Ìæ+Ö®8ëþ ¡x­<ÒýeUe~„C>#Ðí:@<ÿl7F‹wq \ˆ»»nÐ[Ë¢ûvB)ç­ù½s~/¦Ù23ñ†:ï½Ú¿û»™.ŸmB-Rþ>jÊ^F¨øj8ªêfÙ’>XØ—#¦÷m‰’* Óÿr$Ã.Êñ—êXe)šüEæ'¤íD±ò«þé·,Á½`%̵ÌITáéà.“b)" ˆtqKXùËpG¡ÜÇ»äýÝ0rL¹/-yo“«2FПúŠUs{M2¢Ée´>Ùá QL±†äÌÉœèØ ã¯rÛzôÒu0.ŸçôõßU\ à‚Å:rFÅS‡nlæÐóôHROºT|=ÞY ÿ—"°î˜®/‡¡èXÝSä7†ŸáØÈ†9 ¯”P½†1®4¯xqzhCô÷C½>DžÌ%_×øÇ™¬ÞW$‰+x€²»8‡Ê¼Ò8&ü[àÓ € KŒí‘WOñ Le.p>AïÆÆ›á]È•8[rõo+ŒabƒÚÕƒg^Ô´ßˈµàîVŽô™+£ ºˆì8™óößi+Úî S û;Üï´)t”’ë _¡$ÊŒè§dGCÁ.V瞯Óà ¾üÊšå4¡<—Eœ>ÌiúqþLºÂÚ@ª/mGJ öt{‹ëûÔÆ€í50ãx6XÔ@õrNoJ¨/ô8¤ö’‹ÃŽþOnú¸¾”[EÛ†1!”g·t&g”\Ì߸ñ~o¢ÓPFÒV+p]|Ê-C™k¯ËŒ–àtWßþ7ºg7bŸý*g¤¦Š*Êmpƒy‚%µŽ‡Í Ç,?N+oü}aÅzé•ÓÄep¹o5ÑV"ßI½G$שÁãWµ ˜}nòdN ëåÇZl’©ù»&|Þ1•ÀÖw•Ñ‘¦÷t‰y_«ÍÌ(|ú ï½/ÖÂ3œpª§"I>ôÊp5PNj(c?œ‘¢\/¦•!8÷]™¸cÛ·<0k›ÙcñYÀâ9q>CšaèñÜ7SDx¡9\îˆ3ÅÕfß•˜²U¤PµÊVòKx2é_óž81Wt½½Œ‰ú%»ójHQQ§GɺNì]ÖGUv{Yòˆ uEY¤kßl¥M_P¶¸U\/ë¼iÒ”DhC’Iûéuœ|¦štˆÙñ×.øx꺯ûR…`qHèW¶"úO/Ù¢cP¸¸Q{~P¿Ðn²Xë3ØU ’dƧÉqÑü4v Æy1S û÷á+Æ7†¨ƒë¾Ö…y&š¨n½™~;Á‚M'_!oè =¶õ‘­exDW;*pîjå[{šŽÀƬ™óìp#«‚M÷)ÿ‹*€&’Ðÿh“<^+`©ˆ±ô1),­®UòüšÜ'™TaŠòÃÍâFqQf–ÓŸÝ7Zà3FƒP¢<¡WûvÙ³½ô«(ù1àv*Tï9s3òS`ÓF¯`Ñé‚ÑöR˜©Þ%$̾KÓR?½ß¨ÐìÆ}è¥í/Nò{åÍåÛ?Z¢Ž9yfîTÁÝOר[ÌÔïC¶hfpÕÇ!sypF\%‡ÙÞ L“œƒ°Ô*ïNÑŽO/V˾¨`£ºÂ:EyhÌœõ—Ex“4M4FØ> Ⱦ77¹å0ß‚è´1ö²ç÷V¸4½¼°ò”g[ÿ2ZeÞØ4‹';p–ó*¤]êùíñjañfá8Ñè2w?9Ë{ùÞ'&ÛÙ`VÂ*~v—ñXÏ"›‘Jšuê ƒŒ´*ãEí¡ÐTUñR‡R»'MàE‹€Æ#zÃá¾Åë lJ\¨ˆùëû¬Š °ö øð çõÆæ*4Á¾'%œŠÞ E¹h‡3Úà Íèô¶ÏdGb´G QNÛ§õ°ÓK$îUo“@5¾Æ¤Î‚oø‡øœÒÒíŸÒìúÎ hvaT ÷AS–¼ûôÉmÊ|³¸eŒøvPUD•>—Ó‡bªr¦_/Û7³”Ïäwpé}s[ÂW¼H³W+¿ñ{¤Ö2Œcï89å iVímÁ§5ˆe÷£ØÃ<ô* k/hŠß„Ø¥0°ª‹û˜ÄðËÏ;¶à•þnÔ¹O„S¾ËXêÅaÍ_íÞÀ'𧶪ýÙ’ É{Ž%7öÂM-Õí§k‹3Kæ¯M²üBWü{óO/µÄë®éËf£ö¯¢Ï/­ø÷h4 c¸¤ÜX쉑òÛýóÕ©òuüàD¤€gnÔ•¬°Pî&ŸÍf>j OtHä*º+¸UwWñwXUù4EO¨kè62fJÃËJè6VzYîDúMÓÎŒBÂ7r_'€XÚb7X*Øà‚ý…F¨]…ª† ³pÇg0ZSú÷óÃ>$#õØYÖîϵ©N{X’+ÓýbggªÊ’—7ihÏÔAþ¯uJ¿Êãü£e‚°F¥àÈ –ÎM‰L•sóg`O:³æïÇV¬-ô;u[æè°¯ÈÚ]á°M|Ph£bèWqöçáÆU­º šâÁ^z­©=]ÌšÀðú%|OÊ«5ãÂHA¤¤.—+4˜BΔ^ψ­b8 éжY 3÷=½çjÂPCUþaà=Ϻ3p(¥öF\ϸg-c«%á $µ(·WøP’j>Þwx ®½~º×ÛDúÖhR¡>)7¯;ñG%z«;®Á_üpEãu•|ýÎP|8zµG}äv.U³m™×¸B·–%+qÄxÔ*FÁ¬C)™¯+lkaª¹í •hPzYL PмAí«Çz·(êu’¯S&àÏžï—)×9COeZ4§ëºÐŒ$йµIöÆ7QRà„ëcÖ´ ¤s)èÄá–ã "·]5&ËÀV÷ùl%˜ìcÙ8Èåȯܨy{bç´ønÿ_äú1ÕlAK}-‹"¾‰ ®Õ¡`{¯9²ThW ÃÊ) maþ<›I$„†žØÒ€Ð”Qù)FS»3©ý ´wÈü¹aµwÙΔ#­w†ãRÆ8 a§É)ÝåŠî–ÃHùá×4iûxñ¥¶†uŒ”ªÏÚ¡5pvÇštÊG3t£ÏlïîàÛS‘d‹*Ådv[ØeU›HðSñÕ«7»A_²ÛÒ0a%}Õ¹…$÷•TÍAÅL³«æË?\-Ñ$ŸªºãœšÏN?‡å*C]©=uNròæ®ÝïFȵŽnØŒÔQÀäW²°·Ø½4É! û:O\òáS¼C-¤ v/ø}P!IBZ§‘.è´?6œéøZszLaC®ƒ/×VÉ@|¤é_MQ»[åÊfŸË#¬à"ø!¿|l¬oJ®þÞÕ>.²Ê´MgÔQÖ§uÝî=ÞøFÄ“€sk žѲ]IÅaƒzmö›°ŒÍôMªÀœÏAK®pAÁÕ˜°TL•e”l¤/h ü>¶Ô›p4•rÌ«4¶…1s3Æ£9"˜Ê%zG Ç-’X÷(´(¹žX·Í—©’ÜX¬£${(ð \kNHÈQýëÐèhÞ ÔI¼(½Öç” É %YÙe§éžGÖ-iíq‘!2>¥/Û|§ûûyn--¡×ÿû¿FnÜVS9LÔy2ß!Îι«® 9&0t¢ 22-lF8àÌhüó˶¦xåôÿö6þŸ[¢)aW„yQãeÞ]‰ˆ#§ËR%¥…}Dè¹V.$GŠC_ Ž%(‚ìÍ/i\¤•ü2­Ç\m$N¡ ]7]Lè{é> .)rpźiFÔŠ4}ˆóGQKœž|rÁû%dúxFJ¬²1—>u¬0–Z“)Úê¡sô$þO<3ÒIÓ&à@¦Ç‚ɪˆçQÁ‡d@’DM´QA#”qmÖºB7ЈŒ´œ¹²†Ú¬éx -®JÕØÒïŸÆH…•–:„¶pWÃ_Æ c£ü—²HC[«Om.þ'|ø…2;ýå~Å$GXý™Dnu9^m¹ÿ#¦ÇŒÃø× !žõÅÝ:Bóü• ™†k§ˆÂAŠ fAPDœÐ;XmŠRåQB 3¯²£0-‡‡££úÛ“›Ñ—ÉK&œÛÃ[Ho£Ñ¨ Q/š•ïßS>âÅŒc&nΦ’\í]þïs¡=3:„C›©['ˆPm—!à6U¯@´I­ªéÒwN»øAohÕûÁúOHÄ 71ž£û°eH˜¬KTڠ‹˜Žg’„õ²ñÂ$úi¯MÚò¥KÇ¡o`[¤æS 0&o€Œ ëLÒWñýW“8,l•í3RØ<ß`7Á÷ø®‰k´¢í°¿¢ εÎt¦-Ñnóïf—¸ÔéÛÒÌàð¯0£=¡ýÃÿyüB^æ´8Ü%KR§ €ÐÃÇ>$ûk)+Ë ®èDuÄ[‚Tzi¾÷L ¯j}ÛÝN«óΡs&~¥hØyå0Ô!Ìëb¦Ûf…c£¡œ ®kÀ´-ÎYR)“*A7Ž k™µTÔDw²ºŸ÷ï“_J+iõ) YjGE:–6!¶Þ7ÕT£ÐÅ·O_î:›WÑþ\°`°Ñû=¿óóOSsvÁú'7ã9wd¼ v2Æ}‰O]ƒm«áÇpÄ÷˜~݆6!;¢€%ç— Oõ°Ë yÍêCónœS {‡;°FÊ4!,OXæMAÀé¦Áý·š§×)—!ÝÃ) z=Òê d\&­GÛ8M¥¤nn2骼»fr[ùP¡’…kô­ÊzñÔZ¼ŠW»H,GÌ{m±I%ÖL ÞK;ÊV0`/Ò%ÊÛíÞ!ËTD‚ɘA%ÇO£ÇðçÁ/ýC ·]#¯—)Òèû7`ÄS®‰ 1¸Ý ¿ìŒ Àq­þÈóƤcȈ„ ²VJjx’7- ¤/¸ç Üꌘñ÷ý;Ú ~ªdç{=,Û%8$ª¼Ì•Ôÿáaù6>GtvJUßÄÖ_?§)@4èÉè¬d{S&Eui‰*ŠC&2ážѯE š"áLam&Š&L•=oz0êùp¨"¶šºÆ ÌÑ¢ðê*]¼TAñÜxŠÄï FD+ Iιoéÿ<´|ÿì€DÒo‰db$Jº÷ãB™ø ùŸ¬ŒZƽx •úd–ý\@žÄ1™zˆâ·'…›) H)ç¥öI]D› ;F|†V¨êêNÈ-uF^*G¸‡kÕ~¿pÊa·Y€$=ø¥>`Þ›Â~¬àvšøCg„D½wušÜCh½`ø"æó®ÃÔTªF§ à•~Uþçw7„­‹Çå‚çŒÓËYðŒ*É»${ynBJb䶘 0«,š#9‡JmWäÂä‚ûé°Î4Ö{|Y¡ÇñònÊ¡€§ËxNÁ@îKã5Lt„銨M¼÷l%98…¿þÁÚÈË ÆëÚÿ†bõÈAòA©´Ù‚¶˜nxï}ó £o‚Úidh°Ñc¨6ÍWä~˜©vÚ&úÔE½nvw•6¯PïiÙQ64Éͨ…ç?Si13¸‚‘Nsèì!ýË6Hvù N¹„òBÜZý”¸F«3ÍÙqë­Ñ)<:¡™Ì³4KÚ¢^»II$ ç¼%Ö(ßó]ú3—518}}øso™\ï€Ú𛾼ºaÉŽáô:nUö°’a| ¿‡~ˆV0Ö‡~åí®7Ê&ÂÅ¥ïe—æõM®Xò¦š^Ê,·^ßõïzãúX9ôèRàâï´óÀ{ŽÎ^Âøk7¸ Ã~¼’fhÉ”j›)êÞkze‡?_3|êõÇ2•MoÍ­¶¼˜MÎÝ<•Å£IÔ_¦Ø‡:#ŽÑÌyyÁ¤SÞj8b3¨=¤;t‘¯¨Þð@UVéÁˆ%3—0Ò8#Äòæôªzõö€Ÿ•MÅXìhʰÛÜ©®TsÚÇn©q7¸ŒÀ‚}w@øWXuE7'8õGòÔ¥ÃN³_¦U XŒ=ÍÇõùŧÞý>øÙÃLQn ¼¥þH/ !È “ ïŒ/Ùu«+ÁøwnÓâf*´­{Ý¥DÈ|¾êQB–+̯=Ó“Ï8¦ÕßP^‘~éSšiì¯3 ê òð–‘™ŽO\ø¸Œ×¼hdÒ„\Í–Lm&Ä'lhüŠ;@†“ûýþn„Ô4óÉ ´¸BüA÷Éê|Ì ºYøf'^ùp +ë˜Å¤«ï4áÅáŠÖ^Â2FÈwд­h¡ìGÞ‚Œ‘‹’Âàýµ`ÍÆ5ÆOÂÎEæR¥ü ÎÝØ2\‘(@ Ä(€¼8‚ÒŽüu2û HÖðÃ8{ÑuÄiïBb¨¤˜‹^mU=Ò}‰Œ=”ª°rh5’ðÔêƒ9PCÕ³»nsúÙ{š­$Õ!H_Ás@ÕK²¶ƒà m{²?  Ú±ðå²ø3‰p÷vï¾ßS¬Àü&2qÚNšãHiY+›W©+Oú¼œ™§Ó+öÐuætHzD¸¶BbÛ~:øþñê“Èv=VcK­Î3߆@ßÞ7ÕÍjÜM•¿Á¾Îs[ÿ”AqÏɚŧRö ©="‹Óõü#Äšâ„}L‚ÞåËïä>¶TR»¦ÉUÎgâI ¿yÍnz=t¹¢sõν3ÖÇãQ¾ÉÀh Ë„ôj¦bÆ¿£jäNK'’´’ 26î?¦?ñX0-÷¶;2°fV)-%RVHKÚlÀ³£»›Ñ7vè«KX×$ü3™¡Ó%Z– í¿Tz zÎ|f¾qÅ¿7wþ$ïQ¼Ö-²rAÊæ@QðÈR ·1«¤H>¹3ocWBi´¢u¡hi"º£B=-_~‚|¹ ¦$ÓÎVe’᮵òÈÅŒùäÕÄ";|KÒÈÙò_"ƒ6[ ÷Cx-ŠÝ³ÓÚ;¯4IpãÜ縬ȼâ7œ…º p:rsäÂld<Î ¸¼ÎØèØt—¢\ƒo1ÁàSMmâwÁ ÿŽna¯1£^:MqÑÖÉo«Dê'¤Á­uý–ˆKc¡ª K톧ƒ•å¹8\]&ôëþ¦Z£äfã¥âéî1“JBW#i”š_–"$¯‘›dXÂÀi],\ÿ4ZÒwï­šA$œ©àD*ˆo“ÈY«÷ø²)¤vdƹ¸]¦gè>ä[w}4½¯‡% 鸿XÄÍ¢æý^Ž„ŒœV'±\»-*ûDKÐDÖqý^Î ‚Eý»4>`çÙ‘âk!=¿’þßWÜMKAŸ’Ö|¨×#³®vA¨^ ĘGét1ØH´•†Y!Gh‡]K|öôÔö ê„mHXñÎ`ýh‘«tF [)sÃ+vÛÛÿ.ÅÍ[¬JTBåi@Ì<Ë™¢M#Àý´¿½ž*꬗hÖãéÞij#5°­¡vÁÍNÓnc-Œµ‘®Š3³O8u>9Z˜Þ|CÆ+ÒéÂVF4Îgò-ZN ¹7¶åMé/æ?Ì|kãŒañë}‘‹*MåŒÓ²¹äpÚÓ*ûrê°P§[yuqÁ%6Kýn’Ö¬‹E_Ž÷½Œ¸;)1ž†%…1û‡¥ÖbShM¨ÁçߢÜ)•÷…޳fuÞÉW÷¹Áé l±ž ¿x®à±›»ÚëvVŸãåÙ[áÖdFÕ» _ùrè_‡)Ït6ýö}ã¿Í†~ñèðóbOÔ7ãì“§(ËÈ£`ð)ú;DëÖPçÌÓà¸E9Fý**¶xä£èž ÀK tßÁ°¦Ô¬[L "¬þõÙB{þ¶ÌÅCÙäW3¹&fnéé&è.¥Oä@€ LòþÜ…Ñ1p‚ñfñâUeO×y¥­èh¾Syj3z‹×´æ#Í ?5]\9ÅéW‘ÙéáY’9ãçÇN:oâà+–¹ýqÃÝÝ,LxIàŒåÀ uÇ V†w1{"î:¨ãøáER ÚnyYµ6¢¾jtmÓ¡mì¸y,&)4æäŠ G¸c‡÷ë£Ù™­5‹Ð\)óõ2FÐ ¨cêZ«ê ‚L)‚f¬ÌJ³ :ÓÚòF½&öãoOÝYF´ì Î-ÀKuò®ôS>GÎбîUÈiV®?N …)Ÿ™ÐFVÂÁΖ÷&¹ýæc8Óv1|ë_ ÜòÍBHíMÑ£™Ô£›’üJÿÔ—¼ŒÂ°Î|°:êڜա‹ 3m÷{ÌØ–¡@ƒ¤¸J›‚H·‚bèîݦ|ªòR!ÙþŒðØ™èµÁã¥ìL»·¤tY‘Äž®íÎÿ¿l¬/Ž{½ªu´6•ñ¿ÅIZ¬Þ=!)ÄžxÚgE{ƒãã,®ñƒ¯“Ò ¶´q¶ô”ä€ÐJÌ_hýâvuŒ’«Öà/¦×yfq®aÏ)éj‡Ú>Sy+*tŒY^éÅ‘o¨„)õŠ6‡L>^M.YÔnuão_M"¯ÔÞ¨¸¯(Mвì$rMf‰<|øåQÎÃDþt|~½ë¸[¢á)SX£ê3³>–„eIœÞŠ÷¡“V‘AB&)±¯Ž‘>Ë/$å)ãâIØÛ]öÍâR6'Eš˜Ì‡‚ IG¡éq]‰ÞBt/³Éˆ›TÓ\2ý× B›\©.$}t"U7H«ø„‚!²µñ!ûèþs°„Ãak~³ÔWLô;Š}¯4ÖNN•ÁprûŒ^ÒC¨ 'Ží¾ÃÕÆÅÌlšk!ðʦo’Cšå(Rñ…æÜ‡Û\ŸÞ^HØ ,šžÐWй <±„§X“¿Hwír}еAWEŦE†$+OÅàÚéØ 79Nï2Ø?ÎeØ{ÛÝÈíYpv33æÝ씹ŽS®m¿h æÙwQ[¿Æ dÊ5øª’WT•®¸Ä 8l³I+ï£- bÉÁúcÛÄ"f£g:JO¤º.ö…Ç— *ÁŸíùeï|Û ôIÛ}œˆ_l“‚ûÍ&þ“Ä4 ¾Š­è3ʼn¬¶bD‰ÏŽr¼+bUôéÙ (8ÃU?†ŠfÈ5NÀrÄ?“~;8Ã-+éåÃcÃý³.ýijPÄ0Kþ|«ù#5¢zkNO ÀU^ 0 fR(a_˜9Sä–!¯)AyïýÔÙ]}d–½ãc£°ù ²¯ËüX|h»IøTq. në]x>èÉùéÛ­#x{ܦÔ)å%×%·* 7SVQ4AI5ùm}Q¹Î_‡Î®H›ê‰ŠW§—ÝkûË0£›Œi¸<5Êï¬m.ìVÿËuXeA¦2̵'wÌ…/ß“án<¹1qþ}ÓûÃÙ¿”Îÿ«}7âý'¶-Üð‡æb©™³o¾Õ¾ðh¤æÎ­$áLsW cvÉŒý ¾8Ò«´ŽŒðmø»Ä+hn“}“XNwщ鱸ÆaQoÏÜSмJš$ƒh ‹Ad“3)³²æˆâË;\O3Aú|}îŠR˜ª- © ‚qãQ_ìˆ'ú¸)ÓÏÙ\O>i‘Œ£Ê(¾ÕîÓA4;œ©¹Üû‘EíDTb®PhÌYÛ-øøoˆ¨·ŸÛÞo«fG‘I½9—³Lóù.ä>¸¿îŠîõöio¢«k…³Ê‰]þá,0vÀfß–íôÿB=¡åµºwúû¢™·ÞÞJt63Ì ÝITÀî#ﺂÿJ‚ÈÅx v­uõ1uÉÐ2ŠØèJÃÃûDo=îî-—ÉŽ›¡=/ÝvÔ|6ìò§ßù~š&«Å­ùÏÖ„žã”*ÖÅZ/™ËMQµ¢E`€ã”.ÕG±”ý+ÔE=ÂÓ¤ ežéajX“¡2btÎÕ_ÃÑ€›VO1L¿âÕÜ ÿ9Ñ è”°Í_”/Œ˜LN0ã]nbÊêû0£ýrz½0yý ï¦â{<ï,ÍŽÚwï@²e¯aW`64{›•v.Ü´1þê]¨¯¦¾,±D;»‚ªq¸@ú*¤˜•^uÈq}N «ÿ¤ìn îÿÐ¥†!5¤ÂyRó©Ê /ùª›ï•Õ/­:΃-€½›OŸ ujI\ OÇ+bþJ‘ލÓs1.8¾ÂƒX|þªW´¿ï|ݶX§Wb¡“)ŠÝV’`¬íë0$6òLã«ëeºî€¤#VèÌõéçÇohciÐE†[D+QÏ:@Á±zÎAÞüPOÄ­Tq¿Þó·S‘¼ç§AìÙØ-§^æê4@ÿÌõ¹fm@û\Û«‘g1äúCÎ5”?!çý¿Øˆiás©JC!\ žo;ÚÞžˆa\4·cý¯½AŸîÔŠüNÅÖƒ‘¥¶‚)/zï]JÓ«AÕt>} ¾™|e¨å10©Š‡ñ éôì •¤Ó{¶âØËvÝ®Ëgìï”Ì!-)a©]Âäþw#h“üufY.ŠÃupæž9 áTºõ)ͳåSpU1b,*,[†ˆutê 0“Ñrõ™~:÷Ât¶bZü¬áµ B¼ÚÂ꣬J@tFXRîTõ3¥x2ý' ­úº|AF“ÈûXÐ"º\;Q¬fš4ÓK‡ÍÄ…gÿ§TóOu’ø¤úè²mÉ8ø•©riG.ÒµsÝ×Ѷ™óŽƒ5]QYé‘ C/µÛ>˜Á`îŽIÖû.Nã—4Ëì°Ã…1Öµ1Í&®Ix{GÅl º‚s¥ ðÜáÌwäVÂ¥Žúv|§PS³>"íbÅ?ô…^L"t*—IBô4Õ’Êqñ âià?n³[çuJõ«Ý³žÔHu´ÎóoÄÂ&L~ jD1Æ%±1ýV˜ÿøãÕßR ôM vX‚ÿb‹iéžÀ½Â±Iøû`Fªfz(PNŠ:iW¤Œãáú窔ҥBª%å Wõ¡’Wîþ9¸\YL|ÒXÒ…òHÁ³ ­±ûsgŽe¨‚Öùß0ÖÅü„»÷‚—Á­9ü†Ë ¿Ëþñw_­#]Úê§DæT ]æ³L²þû!]Ÿ¹@çÀ×6 +?´z.\p-|Œ×õ_AÞc½½oÒŒúzÛ|¹ÐnE.ø—n­ÈKTbv_!.¥5Ëf¹8ÑÕVóW•¼²Ê¡;Ÿ’…v¹Ë'‰¼ÜÝZ¬íÿK$æ4µ#lžÜ¨ž‚—ãAÅûHÌçkãÔéYB· ˜×ÉhöxvDÁ’6Îéž^…C l ŶhŘW··äú×´V«…?9i^ì`´x 1æ” „¶÷›ßý8É.`=Y‰Â2Bo0(XŒÔ•ʪ_ÞýEHí[?£9Îý9öÝ4R ª»·»Rø2hÀhé9Á0Ѩ¸-¦$±’8[YŽ*¡âWQZð«%Ð9–ŸJL2sñ‹Þ“¼B.øã\‹‹¼ 6]Þ\" B÷AÆ™yþ͉»ê;µ˜¹!3v^¹ É"’Hþª1«.ÀÄÐ×èJoõ8ùl·d€ûåׇ‚=w86?Ã%>ö aª¥ÉïóNyJ5V†P—ô­[|ýáAz¼\QMYAºç ¤Ø•¯Üùç-îd>ns¼¸ ?˜v×?Jò—vO¼"pê†×âÈ0ß~«ý¯‰Í)&š/z{ßsËK,Ê ÄFØ  ™Zz{¥ð=J(ã¡•¹oî‘àû“±f€¶—GÜ?_jØîfEåµ@ÃÅJ§DÕöåGÞÿΪÞ>ËoÅ"E[D„(mƒh*ô±*€ÒpÔ´?{%µ‘Qz;ëŸZÂ÷Ü“ìÍ võõÆlÒ8VÜšËY"Õç#ÂDRTˆŸ³ç¼›Æâëä!’Ÿ|\BLi£íA¤g #/⛳¶ïò6€ø²yŒ Åy£†ã€Uµ™9ôYÆB+kFÅ:¶¶ C‹Û1`D,%Ï#miÿðg¿q:ïD¸"3QÆÎh#ç£ÓÌÁ¾&ÙÜ Véfª{y/`€ð–PyE‘nDŒÖ-¢>F{ÊÚN¯ôªÉ]·â ;wQðæ4§GÚ$/ŸI!–Ã:vm)?5NåèªçyH;`ä?ª³aiÉe¯“Dç&²/¦]j›40ˆ.î4L•U'Uü2‘œR_¡ýõSc‘Ķ“#d©gÂ0€Š¬CÞ)+x­ÜôfˆZ&£¾1xadçR2iÕeã&‡¥*™sÈ-NhYdæX—eG=ºA³Açý<_Y\‚ûÝ‘ŽdVVoK›0wíN.u–B ²&Ñ2²Ê,Cw^;fæÎ¯<ùU„×qàâ{í®ŠÍÙ°Û¢v‰¯­_†c£³DQvBϚĵ¼X°¿ß»dlÒälíƒ Þ„é ¯²$ô°ÑX!ï´=Cbœ°ÙúV“ú2©. ;°U0 ®{„ VézAª†úè&s˜—Ϩ.#·—‡C^ÿ¨ärÕêjdîÎnu+’·­20žÍI·-‹ô6ø”hç4'ío2æÎ´ LËL½à*Ï¿uL>ìòædÐÉ­ […»-­ç5N•3@XAÑíÞùW÷à:?Xâ“¡(RaF\füú  ÷¯¤EA 3.lhÛ¼êÆÚ-Âù®ˆÃQª')gº+ùÎÍÚˆl)ê¶E˜ôS^Ëd9€Ç´õê-ŽCK mIÛd}8¨®-Ò<ÀëŸ.ä¤Q6ã1è(ÄÆ²$ï#½Õã~9—â«À‘ ^ŸÝt²²Ï´½FðЮÉë++ëêkqëº×þ›ÆAÙF¿°~¤Ët2G=þJ1t'ä¾Ò?jÖëiÁÂJI¬œ‹"+§;ú*¸‚=‰yÙßxUÄŠ5n”h= êm2Äå—y@2"K?G‹Äq ò\;Ÿjap%öì6¤ÓAãîR;±Rÿ™ ¡tÌǼÉÑyêÝì5ðÛÜVÂlø%¤*­E°’ë~ úg-ZÁ7ÒQ<0$ì4ÝËñªºSý9ÂU5µcHšú–v÷j¬±å11¿ÃÞŠÛòîçëW~ARŸ…ܘûg ‰£’tg–V|é×åï7±0Ì1g r©Bc#´â嶪YÏB›{¶‡$°ƒwÙ"‡éܤZ€šÀC$jÝ–×!F³ß÷ëT¾u¥OwXœe},cî>=u"ÜoÔ é³ªb4Nuù»ß“Û¶5¡!¹ë£ŽÏÓµè"yp+qXh¹b¾ßÛ=bœF¶|ñï¢0qOUx¸yo(TK“3ñßB<}s¥SW¬>Ì^PCrrý§b]?Lw”ÒÝçK@Ï”ó0Æ”–>Sõv@ž5"¶»¸‰ñô‘5ˆ\ßxæ´T´gôžíT1ˆà#¢Ðbi„FhœÅnÛT.LhSØŸØñ § æÅDì…Ù,¸°6SAH x¾Ñû‹‰*áµ´ŒÐc fZ`Þ\Äú˜Yê«§JF:­µ)ØÂ—Ì™%—·3³ubÈ\£<±×k?›>3¡,½Æ?önß9õÕŸŽ$°öÐÞ §ÁzbÛ\VÉßs ³‰tõ:T.ôAúÓÝRˆ(@Õ±V,áRyqf+É«}ÏEŠïí.›‡=õIQ ~hR^âEÕUŠOD2ø({z&v­+þæx‰b!y˜õtbQŠ’%ÑÿégÄ©ç†w¿Ð~xZè_ˆ%·ÜBàÙ6<Ð;ø dBÅäÍÚ%>1Ò(hÞxç c¼V3 çëîßC×±ÀY(„M´ŒÔ (ºÎ̪ؿɧ«TÑF…œ Gù2©leðU‰¦??í“·¥øõÄ©ƒÄ>‡·y?ôƒÍA$W –®uÌF©xšk/?5{Gà:ØÚv¯`Ò¿¡Ô çãÒ³òhQC54Í’ÙÇùJIÃJô:êWZÌbR²òs¾ÑçBÕ;*7ë˜ß~²ó˪=µ?‹ßlY‰ Ûõ¦dÌœìÑÓdã” Éÿ1tºÈËäí•«6»@!”>rݦ 7|SžCÏÕ²Ý9 Ƥͽà®û~­P‰Ã¶ ¥ 2Êø›Rމ¹”ªU —ä{¯ÿùÙ B´êþ;J*Á#u+âºÖ¶±œº¢b Å))7Ž2ÛiÀAém•ÙÐK‹¾‘’“\Pì ç4ÚJ£ò](Y=벇R”£bËò²—4¶Ù¨HÅÆÅb@Sw!ãÆYº‰)º”YÝ.¹pÈrzý£’³¨ºQÃýx6lGÌíÕáÿçl½k¢;S¿šh€ùx’U¤4faoZÙ”¤UšäáÖ`kÄŽÌbuÅ®=Q>«KùGwÞ1v¢vqçî¾RNà)“ïÿ·Zê&oHñËq¨of°ÞmGrÏvç»\£¤N¹e˜ÕrË ´š†¤ñÃ}õŽöU\÷êLquM“¬¾7[ ÷þªAfÃkf]y˜lýoBÕ¨IÞÁIEÖ†¦‰ÌúÁÝpý–!åÚIF,6 kÞJ¤ \LMжâÔ¡mŒÖã™géÀ-†ŠЩü…©Z<‡9B‹Ø‡º¢ð±Sø¹:ÊîÉpF¶æµà0Õö!9šJз +·äšÀÐ”ŠºF;öÞlòY“)¿Ê…~Úð%š(ƒmÛÔì›ô5$Ìðo°Ev±<å« ²j$%®“™üóÕZ?Z0áÓ˜P±»B|! ÚQC^¡™”oßÙÖ k̼/ï`¸–^ ‰ûû¬Ý‹mÔ½(Éjx-8U—Oêr<¾Át ¸[ÂõNfÚZ H[Êÿ{®¢ hX˜k¶kR ‚™&êxJÒŸ5ÿâ}<}¹åVœ'ð‘{ÒÜ…ÌL ôù–þ@Ý}»S’óìâ•æžÁ©¢åŽ%©R:ân¡b=uJ\…±‘sxh?-¬É mQz=ÃÙYéÂdJíY*_w ï2UYsƒõ“8~Ø$èÿ_ºÐØß%sA)¡»ªµKî½b<Ù¤¥Ö‚|J ÁÀb”zxo¹š¡7mžÕà;Ï <“BRÊS2V6ؼDû>ל\/íibvÆÅ@Ç}­‘æátl3E­=Þº°Ë{Æ« §¿¥ û2–Æ8—¯ãdƒ!¢ÄøCÙz— ‚ïŠ0üÇ; ·$lX•oM.€l÷žÛ(5¤}¡êÃ2Ãõ,©{^¶ûÈd>‚:j+@YôžF{¥Í‡ôV±ÝÙ¡ÌøŸŽEóMØÞjAëaK錤Ñ6¦>‹¹ÄvJéæ¹UÛ¢M…m®¶È|CúØq˜ù›@ÍvhcWë‰üNo׌bÔ­¦’6^ CžGÖÝì Û˜ÞÚNscm‡D£ñG|žMSsÌð^à±òOÎï|øè@Òë~Eyꦠ”ŽòÑý…ЇÝî;áÁ•7›žiyœÛ] #œ­.ãÑGà˜V#ꘃ èÜGà\šd››dDY êw0ê×l¤F”uŠÅ«oXkâc#kŸ ‡rT2g×P`T ÚD©\§o%/‰¥°Çæ?ˆ1S@©ä:W±9OÚ¾¹VpúÏÿ0RàÝ/t›¤Ñ«f MûMX •¶I“ z Nù]ˆ!F_´Éº]î ¾!3ŸUä·O•àqnO3F­äÈäÙmÆe'\~w©/·Ë%½o6Gð…™0õàðšdV±ùô}EÒüÕÐÄRs¶û oµg&÷_7È­Ä‹ûà.³^eájvCâ¬/?8 æbôŒÓܰƒ»SiÌuÔk¿3ðId£ëv°ëÕè/¶æ¢Óšp¡_ ù[&&”’\àËÔ&%Ú`šnE'¨­=n ‡æ­ §3]Žœ§ æLI7zÝ7Ûéã÷ †Ø|oœRo`J}%›ðöÈE¾@u&0v¥f<ûºµ ¶ÿñÔ4¢µpõH͡ӊ,Çð2n{¥µmLÞ²àb¬5SCk VŽô±èCˆ éy¼Î"†õ8Ø»…ä­ Åzn¹Úu0êV¼§ÜVÔÝÊU‹Óè^´æ¹&WeÂy•%;¥ø½ãR©úëjmFæ‚S¢](3óØ´3¿¶à7ÚmjþPy² m^SîfÈ^ £0é‰Q9­ž‹C”?ñR(Dù¬ýXçÐÈP(C¤‘:Øñý´¨PÏïƒiX¿«WÎÑE¯OìË‚3Œ6¦È²f´m2=mäåšÓ†Ýñ¤š8žUg™Õ8@Ç¿(:OÇmÔÚµŠYI–zýySbËH’ùÍ«Á«Ò«Èö§Ãtû! ¹fš>áCÊÙÛÀÄNò©%Ö–%Y|$i|é~ˆ§Ùµ!±S·«¸{ëö ÆEc{W>…‘$±&?ÆïKã È,ÇÞÇW[É-ðYδ,Ö™«2Ó¶_ºKâ“sþH"WôÅɼf«©ÙþŽÔ‡t‡$/íúðB“†©MµH•rš¹$Ù!àÈ}ò›îf^®DÇÝ@=V¾¥…”wcˆÄϨ ŠI6xsYÓ{^½²0ƒäÒqmøÂ€^†RLsíù $øô‚žê!jnPæKh«Ôx çËFvÓ¿FKm*hµPÖÞ.Ü'˜4—­dfrœŸÆÜ_VvêR¦¸f?åf5+vYGOfÙœÏGSÖRýÆÛAÜÁË=/æá"®Ù`árG‚¯NäœìB(ÙR^S˜÷öûÅ;\ìXmZaAÇ«…¡|Ìdu ŸwXÖÈS ÿ±²ÇÜOk˜F…Íæ·¥À""±˜ £­@~?¬«GäKa…B½—; Å4£Uȳ€ÿÇ1k>¥¶0žd‚À€c›¢4ûƒ.¤&‹"XêdŒ£Wrø€¼7[¨V~É%‘~{…ײP­Ïy@»Ó,+ðó±]w’–™žûo%]ñ`ÅhzjPŽ(Éó’ýô’FyrÍ¥TZÅO¸`ï¿5â–Pùïuv‹!DÌáÿÒÍOŽâ×4¯T虀2¢¶v›œ_d“Ií€?zkç™K.ÈO=e;Çåásª R@N}ðm ØöW}Fuü«?»¶ N…máà î_'% 4$x¹üÖAIiÎƒÈ ÄlÂ><ñ³¬Kã–àùéÃ0  S™ö2ý¤Û?òiRT{Å?íã.+ÛÎÑÄP°ÒeÝl‚ÞlpÇûˆvÔzÌ]:hlF½œëRþYÚ%hGbÆ–²ðƒgÛ¬„ÂÙ›Q|6:¶©m#ãP±/—M"å ­UÏ~aÚ¨hvàÕÜw%·ß¯Ú¦hP¨¥êny,fÞ©J›£†—Ê(²õÛW½ÌÚ‚_bÞrÒ¦¶Zw¦]eågz¨ªA|€óº m†ÿ¤áÊTIôŠ=՛Ȥ(„ìš’B›O Ù>8.™GD:SßF¥LÑl Yá13›7wíuj .añ)ä[ y&ŒX~Àô#Ï(îB¯•nÀ´@> äèß4ñ ãÐWQ $(L~KÀ‘zÔ¡ TxeøÁó%Ža&ù§ÆD|<àÜ…jyVD“)þê“ðtÅz.ÊBѯ?ù#¯a÷_G¶È5´Ý¥þyzåŸFÐ;‚·A€½Ó3:D“Õ÷‡÷{ ŠY±å´«¯´ÝÉÑ”£x\c –]ƒó°˜§ŸX–;¬«hž;Ø–äž·gªwÇ|Ù “…n­ç± Uš=ãR…ŠeiVn;M§iˆïW>§½AüªÌxQã×= F5üÁ³=^Å`¿áíUH>¢BÐ)mHÒË ù½zCÔ2ÃЫ,Ûj˜äýPOmº2Çÿ-)ÄŽò*wý«¹u=ÄVž• ƒŠSŸ‰ºz˜ŠM…Ž{ŽB¹FËèÓ¹–zw5]ë‰}ˆ–}!øØts!‘_R£ÚÖꌣh £³"Q¢žê/Ï:¯…q5²‡šÀZ~>„øW¿ôT¥ä…vS $|nÂÐ þ³/öq=ýÒ¢1×X0•1ˆã±­ÉEníñØkòÄJ~©W£–ª`µy÷²å˜ÒšŠ“Ñíœþ݃w|*±¯£áBy ¯UÝ00:ê]^@œš7ùskŽkwˆTnèB®“²BE¡ï¾÷¡éãŒ^˜*F±w#->‚·oü—ˆn~ÇF¦Ý3ÙäËK.#þòì à§jzRvdÅ.®eYÆDœ›åLï¬S½&¯”n›mB\óüä+óé\™*fÒBž„ôé´!2¤3èià¼Eºô‹Å…æ%áÿ,k>Yiaó±9à„óà^¼½°ïÆÖÿ1xµ£GŽ¥ò1>¤þ[ ÍªZõo‹E3ö|Ð_CG«¬û5 QdxÚå`õ5³{šøA]ûùOôôÝ*Ý ¡ü©8¾q íBø¤*£½w%µ8'a+¨T)s™ç>N C½;<„ =·_Âê"W„ÂGÃ7\ÔòßýQƒå¿Åb^>ÚkPKù~¢’1w’HºôUɱÓ#C’‡˜p£®›ÈãµÙ»Ã_=?Å´yLïÕH÷jhÚ¶ŠEäWÀš~Ú±¯Xòwä‘ÀƒFÍC» ·œ©S†ßx ±"ÉšÙ(ホšÕoWv¢Ìw^Þô¾Eä¨Ú*”·÷0 ì°Îj.@Ðõ·TcJ§)î‘CgÈ©WÛ ¨û³LTМÍ¥w'âY‡Ê¬ÃÚO…êÓš¡‰xGKX]¥U?ËÝË…XX'fz•9^°è3a—¶Öê«éça%ºK™ÀqAOZÞÓYu/ÒËüÚ²6á̳iχK¢ð´“à*8ÉaóÔ£• $/ù¿¸1ÜŠ&—Ÿ CzùÁïÄ”CnÉ5{çU´<¤*ÜiÁ 2‡‹Kf åøçÙeÆN =Ä’nÕ€ÝwÉšPŠsx5Ë[m¨xļŸÔuóö´ü¬ÿÞùj­ªöí'ÈÐÆÀµüQ¾Éw©,Ýå×þd¦õ£ÌýtbÉjg°ücΓ€Ùª#.EÌË¨ç“ €Cz21ŒÚëš|œ!¾9«Ó=º¿óÿ”(áP¦ĈŠ~‰ºò©ˆ™aÏHë5—:ëÅPà@úÉ¥*Xiƒðj*” f?ßÑγÿû‡Ÿnr­ ·žÓ@Èü»Xg¸ÛÕߎÚ%[ÆÝê@̃ØÑŽœ°ñ Õ€R‚Ÿ>;bPé·ÀUï^IÞôd¬&xP u¼ªôhƒèö¢Cò\ôé<éŸj×+¦cÇ4ÂEÓÿtf Äù|¾„Ô‰úÿz1CüPt¿¸×3É j½1#`ÂÈÇÏiÎOùÞb-¬îq»dÔIiMzŽD/Ôe:þyŽ·7Ý’¯g¡€½C»†µ­'6à.1êT»»3 ò“¥³£¶4Ø|M§…qÕ$m(¯ì¹»a¶Ô5£ÃùžNm-&›eLÕánüj.B›càì—À„7¦*g9ƒõ}(8k]ù½ÕI¤Ylð”KolŠöØÕ£oÖgõ÷—Ù*,•ÅA16bôð'ʸξç±4uÀÉ`4ïöžõvw "ÉQ±uZÃxIêá“t¥å—ù?d­õòÜèIì ¹iuÂÃî0{ZÜå2|AºjZñ¦JðÞºŸ¨ÃØÙ¸Qä`1 :l*äŠ(RÌþÃõ0vêïmhN"Ä¥§jm…«#<ß4LÜ£çVW*ûccb\€!èðvÑ—[šöL_0=D¢ XK°~Öý¿Š;9ª­ÐamäYé/säv®=§½1Ú=#ÅI -31tí({öÿ æcg¼e!¸àö¨)AÓ%%$c‰Ô\Ž“|É¥ëþ¿ç(Ìn³ÖwØ<,mŠ âççí6­i«&MðþŠsŠ_xulÈüÞJ»ÕŸ¾ yxV‰‹Kh<}‚Yjhø9”È.Ýè]R`¢ÍM¯?uó7}H©i]ª¡Íþ‰"}„3Ñû•R?•§D6D0VÜ 5ðŸ§Ršç_o%­t³† Ðwàƒ[Œ¯¹8ÓH“¬3²l•ÐW>x‚l­ôä¸ä†tÉ¿+Ó9šçÏÆvC^jî͇[K£Š{Õ„hȨA22ോ½°ûpEŽþ"3{‘kK„µïù•œ ¿¡35ãÕ¼º3Éb‘¢¤"¤%×t0%x+d/€çi0í–…|¹*2¹L̰èP”0p15™À ÔÏ·S§ž¥¬@3•IR&@NºákN½QCØ¿{Ø®C& äĥݺòOÿM²!IÊ…/š œ;Û¨=b6LÄû‚rñyŽ«gè¢R î]Ò4†®MÙwïólÈó&,UëdAÀ#Iò„ûg…>ä—‘ã=!Yú¯Ï~€{v€8éKÀJmÔS² µE!Süy…©Œ4G´<—­V no¬ÐȾÚ*bá9BØÿÅ‹Ü<­AFùÓƒ ªoÓ`Š­…&º•,¨ÇÆ>nãÉSô[ dçÐî¤vbìgQN9o­Žã¿Eçõ2™™gÊÚ Ý{ LŽW0âó7Úÿ:T¶+jˆI¢‚Þ¹ƒ~ m^ªrµï˜Õ†ŽX<¦u¿‰ugÀñmlnXßמ46(¥ò´9~^³ÎÔH~ÎÓvBÌž0óiKß3ƵÌ}T÷ ÛñF¸ä,=•Àªi”›ˆåÏ&_dû4¤º'Ç?>žŠÖ-È{@@HÇ #¼7ÿ™Ï½a®²vz„³%ÏÞ£#9Dgèr6¦z4„­c†±f%ã¾>‚¯8‰( Ëa‰s± CTÃÞPÌq5Hà—@ÂÔâNCë 9JÞøáË“» =‚=uֵΠ/«2‚ÁÃs˜Qr¶c ªŸÔýW V O_°ó²Æß›¬_Û˜n¤'ôš°ùîʸiæV$èXß?Š®³é\) n“›`ªC¡n÷Eö$÷¼1Ôó#Sw9aàšˆ Pî#tI`0Ï<E‰|yw“Îà§Èï-C4b_è¦rlìÕòH(ˆ¸ÖAD®‚!‰ó#üŸìtP Šð‡IŠÿ>C‹,ðAY5Ò?º« Û­ÿcÃGáe¿v­üÀ½Ÿ°Ôp\Ár ¸*_Á”Äk‡½L Ú¾õ‰ì˜²{¶g˜ÂI×KWr%tÛŸÄtý»l-œÿ‘M¾tÎ{ÍßT&ÔÝ´:?ÿÓá,žc»…cb´œ€ºØŽN"´(`j·œ·÷?)&¶½A@Ý{%eywØ#ww-‹F7ß¿aÙJ/ Q0Æ:v»òAêªoù/ù$Õ& $Ðhnb©ï»¢·š“†â­ßë½-åÈÀ±Íé¡¡ãä–óŠDðJê¡Oý~¼O4þsýÕ¡É¿ÉgˆFJpKÿ f¶.BÞ>& Ð9lE4ð¥R¨@!¶ÕÔt¨ïÔ¬‚Ê˼‚‚]_¥XC O¼Üª,W’r벉ΞK èÄi@la¨<&¨È«Ö{“^g£<³g‰ Ûžš•ýÖd}˜“xöÁ·©­,ÒL©¡–'w+x&ØW#Dâšsê+ÒÜ{-Õ•´ÿggÓË‚$ B¶yÏ8é¦MX½j[iáïÜ”ðUއH©uý¤´fÄÓ¹tg±—T£â‘õ ¸Ö=¶ã÷ç=)½* dØß5Q”ïܓê¦ô¯áÄÐ^4¤é¸Wf.´UR8Ó• †‹Káâ5i¨~QaEµÛ©xaú-AuS$Z·|´ÈhÌÐDS#L7%H¹Cmôñ>#ŽG‹BkÆ›¯¢ •pȲôŸA;²ñ¯ÄÌ}ä®êfë.W…oÐIæäÒ‘åçòRÕà’òÃPº ·i# ¯1–Üÿu%¨Ë•à)C9+°V¶´¤lâeiÒ0P×8¢/~7#3Ó_’_/ò%ñÇ_ˇ¯^…›Ë?Îß2ÄhoºXô¢iE,òBšRÒìg÷GlvÌt«-Š–Ê.Ck°_`ÞÏpÆlÃù¡ #Ú˜ÕX.æ™#·HÇ”wó_‡a*X›GVÑQ·€MÐ!JB%ƒ7Ía Ô`ýõuo 𦈎?ê±=æâ™8`”Âô•ßfòþC‰ì î<ä6þ… WúÄÕ¸Ië#3ˆ©Ú¬@ù+¦äm­:5­bxÎ xx^’¿­lQw,[•NMœÄK1Ç-ß³PTl½0´z?Åç.ºÊ ꪽ´AU1Fm ‘*]€Rz~æzZ4þï'‡KÞ`/PÓš¨coÚ`šDÙ§ .¬ð.šDˆXšÒ8ۀy"‚ö~®ÎÀ‚ÛhÇÈ&@·?çyRî’yùþ*8ý2 ùüñmÍá\‰(Èø(ZÊÔ ª•ÊoµŽ%'i ±ZÞÊåÄY•#(f…çlФßbø€ÑhÝR‚zÇß÷GtBåhFŸƒõˆ,ðoÚAÊgͶ4Ȉ¤I"‰±à³VÎ6‚lû”5öFq1x*!„Žl™\(Îc0 Š™eþÀ­–›¦Zº©T!Á@{¦¥cGIN¤¿bJm]Ű¼©ßIÜ8ÝTQ Iߺæ|)ž˜ÿ´‚ðžTßêò’ àQžB>e# @ãpŽaŒHÕÎ…x*è´jÿì TžgÑâô¯±m|êL¯¤‡îôsêgËßÃ¥ò4‘ãõXÃÐnÙb5W&”Uîëcd'VãœÂ…kľ¼­™ç•±ÝCó Ù?¥wœ)Fò.eØ1½4G€Kq’ý$ÃQÉAôQéW%ƽÚxl<53"Lá~¬E£ñvQE’©7ƒÅe‹žá×þŒäDÙ¨dw’ß)wè*¿Šü<ì£Ã;éóÝ߈uTЧ~ÛE ®(µ-±‹„Y' ï*°+F°‹\07û=žìè,=ä9^t ¨í¼ÐÎAåÛ-ÿÈA`˜q^È´QK}EcUu ¦ å¨|¤ÒîKîP¤ Pü3ªRä;èžBw¨aD×ìÄá´Æïx/ˆî&·Ï‹P­æµ¯Ý< {¥É¤(A1¶ãzoœÓµZå ëײ"a ù‚9G-º@³Ó•«‰ú©¢''ùwŸæØkä±·ÕÏÓFæ«ñL÷Lý™]ý?£˜ïoê¯r©³TéÕz®ÄYôÓ}ßê©cfaj9à¥R+ñÃqý[lʨ¾HEqÍèCVrúg©ÁÖÝ;h nv°n5Dà×ù&ðam¬Ò3׉u¯ö±çä1Cþ¬éÇ»_5̳VD^w‹Ò†?׎|f@¼Ô¦v®x›Q4¯Må‚]Þ_g=£-¥~gÓ7 [Èj¶)š&’ r ×,ûfvîKÿXKôû "ço¤>íC¢ep~Öµ6ø3=ÌæéÆ«Ô\öUM™a-Š]è‚õw&[ç0° øè{Õäôæ{øv]óÓ¿Èû :Ó¢<§‰Ü3³ Ùë)lÁÑo9¨§¼>…€x{¶ÒW˜*Ûï ùp”7‹DÞP ©Á1ó'%³…xéÖ"Çætz£Ráø4gkö—€Õül*‡„Ó»±ó°P®?Ï'ïÂâÞ&Ȉhª-nùdB$`ì^cœ‰ÏÕÙOz«'·kšqÓzè'YF*H.Ûzà* á'Iˆhñ F§…›¯UÄÓüÉe]}~Àiœ/ cÑ J ¼,4Œ§NŠÉΖò§axŒûÂp^ôa©3±J°¥µ\L” žÁ‡ÇÑðÚ©-´lÝ]"†5`Ãß ÒvŸqé|^ƒ…ÞÐ_›Ùrri”NŠ^!ðKãuRZð‚¨á‹$œøÚå¶6uk4ºhØz¼Õt½¤5‘§.-€{â ¥™¥°—MR›#¾yH3\§(15‚à ù5A6Õ[¥k]ç"û…g2âÍß=è'‘tzË·I× 0Pª^´\޲nÃåm³Ð󺕆¢Û–´L &ïÆ„K}8Öà Ï X#LâØ ]—v·î!µ-&±JOÅyùÂÒ¨éZ«žÉBŒï¦äÒes0ÍYXzŸïlБzRîmÙm–Í$œ‡l¯qL¤s}J}x(ÎV;³Qäiœî¤±µg¤nL,|ž3ÉâA CfcÉÅ'€muM<­?ŸÆ·ÒóãT¸Õ÷Uo™,ÎG\ÎßzØ ï¹Î†ùŸó¦ ›’écfì»Ú)AN3ŠË£Եܤ2 ˜4ÿÛY_m‹í‚*m…Wg ÂHUëò.ÿyl;éDU˜Tù7aú’^…=ü÷W¨)°¯â~“ô»’Û6Óì­z.áÄp×äaVÇc‡3ÔgO iØ^A¤§£Û6þP {mŸlØä…*©›%Âû€hÜß8HtknRSC'4èÍCI8~Ó.‰)E´$sèÝýb1ØwˆäIš©Ø@j”—,:¤c d/ïnÌà ZN3DxHÅ*Ó€lC‹Ô*Lp;«˜i„¼ÇIÒÎÈþ­S1¹H1Ÿ§lÈ©‚¶Ê¥Ât#¼è udÞQªÀ„¡<^\îØìKý‚y8‰“/lzš[ÛZ¿‚¤bzÊrlÝиŒm|M“7G!£´dýÝ®æ å(ƒKSyçä¤Û¬^—AuQjÒW_Å~Ö,Ý©£üIrOjŽ.õŽô?J1…µê¬M tÌ  ã”y˜ÃÒYE‹ÚŠ¿ögTBHƒr¾FùB— )~âqªƒ†ü®/]÷ž+ R×ÈS&› ED¤£³òºs€NQ -nMð>ô¼³û6‘6&°¿sŽ´p¼5ƒ³â9«r“že_-v/îé»A2“í.œ`©õv[çÁt0Ñæó¹—NÄ.¦í7°Ñ—1"4—âI••/w‚âW„0*Ä`¨$¥ LE¸vÝ2@ô’èÔ·ê .†ÿÕéN‚1°¾O v­ŠÔ!+Õt¯¿æº¯ÿ79ôigKIÖ£YÉm»Q‚æÀÜQ ¯0P芩%¨úKø2oäŒGÕaEy.-‡°jð*ý>ôÏÊ•9jþ㙲n®gÝ#h祖xqNïlƳÚÅ-Y¯,FHOoÔèrH21DðÍñýÇÉf¿hQYÛ-_ÄŒÐÕ—üÈj™Ciá˜ÒÙR3©V¾Pñâ,ƒ“·sYï ÚùIbÿèâ2€æÐA_Wî=Ì×c˜Œpa:¿ Xß°üÎ_fSÉ*€Ðå§ÌÉoÉHK…a PÄʾ˜â›²ÊÔVj ¦"úJ´sÚú%Qgo”†ZǬă¹õ"D<õ(vÀmÊPpçQ×N°}¬ãÊ!UÕUÅ.O§­Ò[~Æët [s¶óÚ—…ãÁzÁ¹…¶p &=¨dœÌ–2c«Þ½hˆ²ÃõœJ™D³z‘I5DFYöùfÔÎ&â_ôŒ^ìqu6¢¶³Bâ'ȶ GE³P?í÷³¿ýzOž7|H½5ÝUÚþ*T¨WØÙÆRÞC5ÿIh’^žWv5b›CÇRÂ!Q“íx8zzÆLIÀ$žVªg¢/j[ÒW35íãR‘|‰¾%ÈÖ]µâ×âÅèbhÀ++ÏgýŸ¥)¬±ôqñ*°åmz+!ï$mÖà(Ì~W…H³Ã* X<ŸêJ,`$;l!-odú°†] ‡zë`伡“Þ”9m6`/lò !G.nšè;_ÜïA…™ß{3lð—žGçÎQuÍd*Ú8ã=ž04üaÆM±ìÌJÞ`[ÑEÂÒÙ¸^zׇԵ,ˆô(ýl„&÷mnÊŠ#79¥’ MpJ$ì"Ìl–uÖTBcÿûåÒË¿äšð3¡´‚ÃJr㪰ó×ËÓ5Ùù55yö-è#7.äå©– ]…R@/|.š-T¸ÝºÅfýœeòßÛÞ9A{XÔœíÞ85usÿJzmZrf’ÆðŽù}æÝ“éŽÙÀ ¹¼ìµ>ª—%ÜuFzÒ)ž±È±w :à~žw¾eî,(b†"¾.¥7|6W½àW˜Óv™RÞ;j‘¤<6D±ä+´Ð<‘—º•«ˆ;€„9JÐg‰ ³Ý*ý|{&ÁÐï–l &Ü®c)U§ºUiÑ‚J³'uQ}XdÎm±R<ë4ÝkrSâ9óÝeÌŒË8æþKÜJû‘-+s\¡yËIÛsFÁçšDÑ/V9„X,N$íç&q‘u7€Cûr®[BYlÙ"ó@ì¹tÅÃ’ø”Éë¼Ië¯I‹äÀÈUür;- ÜSeœI«€y´Ïñlщ5–4UVqŽŸ=ÄZhX3ï©ûv•V5˜«lŒ°g€Å\§IævéDájpœ³âÈ À·B£óõ %S’ó‰ñ#@Õ pFôÞ‰Ù\Ç_:)gç--z•{ÞÊ•nÇÎ"–^Šö=¯`©Ÿ¤¨îâ,ßJê Ÿ^N¾»ðdcラåÏdÊrÚß°n¿ŸÇäÓoÄï’·ø¬¡t%K ƒ ñLëÜI¼7|dÔÈójÉ|(UjxŠeNpmÇÈí+Wú?µˆiKF 0Eë’®¦ÖèKPzì»RÓ-*¤O—|›^“Y®{*c(Iѽ9Žt¡ý˜î›4£JÜ´ÂÚ¸oŒ‹—œ„ñ¾-Ç(E=dþ²í€dmIdÓ’Ç-mWâ»xw¡8kYìÒ·uÞ'¾®Ã™˜æVùXÈVN ËɶgÝÑ;Œwwí*u d¡iåÒžZ©v0µ{=Rµî­ JѺzØ®ñG0kNÿN¾jâÀ˜SÔÄ#¼9òº-wnŠáúHÑÍôêùÜv‚-ÂQfPÇ–ekL¥”x,mçêO ½½°­ùÿý¨r_ÎÅ{emRj±<‚Ùp˜ h^2äRÆHk˜Æ–•‘¼I9›³Ž~>'8Œ Ç&$F—NÒ¥ÇFl…ÉQ謇ÛÌsdÁDDp›öâ+@)dä'¡ÿžÂnòJ‰`½¢<ÝÎ~9\µµ·Õ6ÆÉ59+;•"J©²:ÉI´Þ_ZnºŒúý>¦½;è'ÊpázPÃŒ´Ž!^Šè[°ž°`¢» Ã~PDfhð€!¨«`é@T18ÍfÄ;~ýß)ÊÔÚéÇZÉ-=óÄÉë!Æ“çû=÷Lê¬M®ÚŸ@ÕÄ$<¸Ã²Ì` —Dˆk¹…àÐ\šéOÁŽ•—  8^N€~bõDÏ,';9mŠ?j£ÚŒj•Nð|X-ú¬”-ìgÏ+É^"'š1ßBñR.ä®Fq„îŽnó$H,%õoßIN§dò¾D‘›Ð´dN¬áäd7vi„ùC?cHšÏj%dÓEUÓíd¿BŸÂÁá¯Nà´jö0 ª¡šI fn<Ä›{±d3A š¸3Ň÷´À.ø÷FJü9a°¤ÔωyPÃ`d+oÑbAâþžÝüùžÚ€ñÑ‘ŸðGÛÌÿMM­ŒtÃʉ¢™Ù'²4ßÖ&WüiÜ=ìÔr -× ä̓4ÝÕ !Úž…gí;X¥eoPVIj/6ÍHuþ¡Lwš6l•ý ]H{€¼\•çŠëÛ×û«îZMȧý¬mA•ÁÃþvݨªÐ¯qËqn59¡ƒYn¶ëDdY£5ÒS(ìݬ?]¼„'ä,ï,ÂEÊÖ¸oZÌC}éåŸ*Ä`[9æþ%ð¹;²[ðV\ém.QŠ&åé ¸¡ë¥n“JÜÎ0!Â9ÄžÁXs™^q²•0yÜ<'JL±Ö nIÄIÀµîƒ×òóDyíuç“÷yÔ¸tk݈,›\ÿŽiúpØS å’0á¥WY©©?ì\·&.Œ´)ÔPgD±™úæŽu£Üz? k™´Žžg\dšÝwéc¦Ñ–WM]=‹žù¦Öw'»ºB+ÌÁÏ<ð§¨Q¹ ÑŒ`íyæ,*„XD0ìJÖÚŸ&†K:,.mÁɃ†iëðt‰Ñ†G¾Ù…’ºí¡à1F‡PS$> æÓ„ÿùꂾˆl¤{S|ظ>ÖL¢ˆÐùËÿÝ­óa¿#¿ßÉ05ýõ=}Ÿ±<hxFµ«-&”´Ô›ç:aÛû$ñŒºè÷Á.Ñ *¯œTò”Èêé? ëH†ËÒŒ\ 5ÞŸ^}NÚŒyj)M&Å z$£§©Þ!_¾ƒ€üÆŽ‰2`ãÜ«(ɺßÓÙà(öHžî…[]ÕË–ö‘|•Ìo2‚VWU9P‰›,u^Oü,=âu½V~ž…âTcÁ€·=`ïШ_3Ø’Gã9ßø Ãì‡ÿZž¨g]€›R\…v}é·ëw²ÔÁí¯>mbàëX¥›:,8ÿõÃ$’Os®TdB‡Út?íTªwä·?Fßòç¿Ê~nNóò‚T#ݼ>c¾áŽ$Ÿ”7н³\ä€{È mØÏÍäWûqÕaäÂÜ®^l¤ Ò›2`ëòˆ|•.àB Ô$5F¥æ!¦¶å€béÙ„QQä”}޵¶ÑY«°Š®Dh¦PéÿºIº*Á ÖÛÕ“„µÍ15÷œvnãc{ù"œ:ÉÂÁõ'ß±ÃX°[ø× æ{{¾)ìBƒ¹fÑäEò"“¤<ŠÍÂQG´ÞÚþ˜%‡œR˽t¹åê"±HËò¦˜Ñð‚‹âKhëM•†â‰•E_‚ÙÁt¨1uPo¢› ãi/ùõDز AΨØWÜ(ˆìý"kôðçWt/AI˜ÛU4:ä;/ïì­.€Ö3XªM™¦¬*¤Á]ÿÆQ«ê/Ù»‚t¶Ï±wÛ(ém‘ñp.Ùò¿µSݫד ÷cú¿Ë¾Œ’ƒtO R¼Ò~jrkzSÑ)ûÄíš|'ú鸔ê¦6³fTFôÅxæ.t?µ©Á³w¬öÝð;ýõ|m\p׋£‡œHtò8cVÀüXÄð hö&ªˆó uõÉE-š3'¦J#Ö9f,sûy=VäÑÉ`(íc$|lSRJA%’%–“pSP›a]Šø²‡Bt÷ Ë¿›)€‹ƒèˆïé[?ä>ÓÌ«-BØ¿58õº'µz `ܯL|YÌ­vzÚ/šÿ+†–žn'ÑP’…™Kê5êÉj:P3nè³³^›œ¹×Ρ‡h&ŽÁtt'Ä÷BtnI­yÛ‚¯7ùÐ⸞» ßÊfÈ›‰«f ǘk‘…'$R%„#6œJœÂ ŒŽj .pök¸+t¿Å~¡3$šÕ 2Ù2êlüè.‰VýÃecÙF·¨È65]_È׋ËwJù$vÒnëþÓS"ž}…Ðq={¾‚2f‡M0$M碧`Σ!ùÙ•(öéõ”#äEÙ&ùr8ðM7±œ7*Iópz½¼0B„ºÐOÕ´¤ 0̽ó.¢'¤@þÔn÷ÖP¤ü//– —ÀÌÖÔ&qާáÿ›.‹úÈ R÷—µ;óþ¼X˜a/dK€÷’">lÌdÿ{NpCy ¼ïñÖwS©÷¼¼ÑN:ÌÆªèYÊ+.J&Æ6x·['eÖ`(³ÓÑ#±Ð·UAƒM²€Bs öD ’hvDð' °²¼MOä‘è“U4þÝø-Wsh1“SŽÀ} s¯ƒæÖ~ó‹1Ì G'º¢‘–Ý]B7þ|O¿’3\€ž¡õÎåv}³ÂÖ¿½R4Cw”K•ï+ø1i÷£Ã–áÃÀ‹ÏÎÚÏ©Š×õÒ ±´äÓÿï@“ØÅR–!lF7vÜw©ê¢@jþ™0%óR,ˆ]Óât nbÞéÄr2=cáéà>½ðNIþ7 ŒÕØ.ŠGîØ¾°ö>BKpð°è<õÐ_ìÈ pã:ª¡5¸á“P*bÿlW{ñC˜.²Hó…02,Íxç ¿šq5˜SˆîP8ýn/„Pån¤ ¢PU9[˜øAÄX&¢èÖeop¿®.»–ÆðÀ] ©Çñk]GÐYGŽkMŸxs9š(W_@0}ps"Ðȉ¥ úðrXZnpÌ ·©.«Áz’¾½oËÕG¡×oZá§J±¤þÛÞâPÛÎG/6,O· «ÍvÇŒõ±ÈºËüu£Æ)dhdQQUy·sÿ’wÖ«u–2±ÙB×`l,„óÒÃQÂË1|±ù µG§§Ø´3:³lb劕dáP{a¶È>Ö/ÄM,OŒ¯hYw2„¶èxŒYùßÄ›ˆK[’xÃøQ ¡Ýí"4Z%ø:’È-”@u„züœ¥Û©Ã¬AwCÿ…(erA!†FËA²—+œ4aUî3-sGnŽ1GI('%úø/õ*c/nP6U3±¹ì-*•¾©x’Åžˆ2½.ÃßòJÀuðI;#…DÔÁ«0NJÿLö|5 $;zn(*µø"j3&ØpZXȦR€ƒ ®7õ$©/Fׄ9øë±!w! 'ú¹P9šçA±þ4½áÀ¶^9K¸œ…€Hi4`ÿ<¹à¬–! q%üoy Î%_Hn"“ÞAS…U¡–¢®Ã£Ø¾×ÊŒ–"ìaê"¦íÚñ{ÜÜ@®²:#a3Üö háéëé_vè°Ð®Â<%ÓcÔ†#š‰Ò˜mÁ¤ñjoÂã!0~5ÃûDwr„2p°m¯ THú 2cÈQaéi7_ÿ”£‡cržfq»­i™ÛÖ ¹öþ¡{/¾º¨gv…»á—'z]a;š1}'— m¸VÚqÚ¼•s m˦ÓbßS;Í5ŸŽôìP³[ì;)£h{ú+tMðZBÌ>è+‘7ìßµù3CJ– >.\ßëâi“°Ù~¯" ­ ?}g%“5†;ª²î0‚•ìñ–ö&:Žëãn®œkÈr2Z÷|µ¬nÁ!PÕ@hj…[¾\ŽÓ.QÅ!,ÙθoÆö­ÄöõŒj«¹l§ã'¾Ü9§‰AQ±JbYÞÓ+ S¼-Ðl<{_Ÿ@¨ý-K…r&aM÷Õù%ìÝ Ê–‚ d€3‚‚j(- POS[‡Žø!&]`'Þ¯ü—ú¸Ç6Õ„nr3ƒV7²ÄãºMŽè±YßóÄ…)8DSLÙéu¹ +Àœ+×_ôš&Zø¡qAP0‚²*X(GpÀ£Â-ê b½ iJ¡¶ÚjJ _q0GÔ\+¹Z ‘­ÊÚ·¿µ~OoÉ[:‚ʵ³a¦®ŠXá)ÜkîӮ{c…Q1{PÊUD©“"|Û^Ñ¥5ÁûV­=B¯„ûåZOõ‡²ê¹à>™Ý ”ši¿#¾úYJG3¹èK=Å,¹Í­ŠÈ ‡G³ìºžeþÝ {\EÈ3óÏ%ø!³ó øzèþHu͉þZ¸‰šŸÖ: GMˆ¤ aÐ&«€¯ 8Jƒj-}UP\§YÂàwÏäñwÖ‡¥àû®úUªˆÆH$¬Ô ^ût^žó™¶I›ÛÂÈ­(x¾ÉË÷€¿‡0×Ìua®Âž~LÜÇôG}Î+:¨ZCF¡×@ýÅÔÜX;ÛÖ,æ€ë A— *§"…ÚÐ*òå=¶|ZŠmS˜DUdNϲѨº *ÄrtàÝÃw¤õ-4+ëþռǨÛIªÖ`Ʊ6øÙâœæ Ã• N¬ecÇÇç=˜ˆõŽèúY ùT]Ú—žé›5*ÏÄë·6¹¼ã€‰àd<ÆbÀß"4r_Ö½©€oò”…4oMÙWºxtyøU9ë/¦´Ž1Y¨NðÌðAÃ{òB2ãð ^5ÙØ*Å]/¯j~JV<É7<€¥éâxˆ‰›ésô‘‡»P¶[í —…^¼“±lJ1xœiHï’[ßbj¨Ô€³î)2ÆŠàç+Չ˸C- Õ•¦ðdHëög­Z²cK ˜GùfìE;Ô'Üó¯D%q`7°ù}‘¹TyÈ5°R.åý­@õòY%Þ•ìØü}ö-,µ½^F0¯vÛo˳AJ©íçìwÿWl“‚˜жtm®ÆƒÖ‡ñ§M›Å”1¬ dËÄÉ$ÑÍ ËÑ™‹–oøîöYO^Qš@·ü“d\Œš‚‘ðÌlF¤d7  ]I.Íܞᙸ³å¥¬ßŒnM·D‡ˆîpöÒ–¦"—]³Ö¼q4ñÄkkŽðB }§ú4>‹ #¹ß¯Ñƒ©¨†IʽŒÏç >l K쩯9ˆw Mû7˜ñ¡ý¥/—ÑswÔÏ 8 b¸×Át>‰¿_|™JÂ_h°Í£¸@.0—ƒ/ÄÐÔ …²ŠÒ\\LÎØ€®j°Î鈿ý±O– GýÌ#Óñd‹­Æï+&±ii]óþìœY*ÊHPI†sMIçÌnÈEï$%:ÀSç (¥óÔ\'Oê Ã~œ%¼–JÁ ë$5€Liïaé 0r“# £5gëKLsJ­hˆV—½d<ØkûܽŽ`=#óú¢Šðªqï¿vr6HÜ>}›G—nQ@2qX™½Bnû=äÆhiy…CÙ’wqÙx$§þö>V-T\6ð¾ž~Ùbö¨:³-ÇÃ)©§ ¤|y|¯m¸8ˆÇ܃³jÜ »S‹õõDÔ4A¢µNâ^EsmNÅV§Š­žuÏ¡ Àöad-Ñ™ à“ˆá탣!ön¥¡!Ö­™1J†Ð'⪭{‘ÁïÃÎC©Oበ§¤Š&¶oþÁ˜ÐM=ÄV•€ˆ¹²|Èû²M, ®Â†RöO~ƒë½l½sÜB±P™TÒ™gp+µ K 1 ^h ^Ïv$ìZ¿÷Îýp½yÓqØDŸñ9p.Õeð¡¦ô†&!ýŒËÄ ²,cüqHZ”òRvë^Kk~’ÀÉYá!ÈSóô¯¨ÉcfDÑyÅû]–e;¾ÇLtX £w´È„D‡B‚± qf‡ö„dòÈŸ¿ O„ýÿ·í"ÿÍ+šhäž á<É’9×û k¶‚Cz߆tXÿöD× I/øéÓ Ù€õá,©Û‡óóeO²Á&èmk-kñöÑÈ /7‹7ˆïw9,×¹ž` iéš}ú¹¿˜›UùëÆŒSè™ Ý‹sAÙ‰¾{#dyŸ“ç`¨K÷¸Nì 3Ø’zlŽÁ°fâúÇaX´ÇüÍ&[}ùÌ5ð°0•Qæ-/u\ÓMùn\cS$M ;)³¨¹Ö–%+o…ZŒ4h•¦h°·Ó…Mq§±àøPœ,J0Xn‰Y‘i—ZÇKÌurŸ”ÿÿµÇ–S}»ð‰·šºÊ ¬€‰Ž]Xö² î¡ò""œ ¿±=– ++T’í&¹Ô‰3Éâ˜:íÞD«x-î J—ØÿZd‡çskxU¬¦¹tåWëˆ÷щå«ßp8BõbèaÁ[2j¤Ot+ÀV?r: Ó‚4]ÏPÀÅxR^k;¡ý¨sëˆަ1¾¤b…Ûžž¥;’ÿ¿¦Ð¿‹\%_ ã`§:øýc¼“cH‚öJ¶¢]Û¢´qú`ycæ!;gæŽNw^TÖûJÑÏí!a™¥-{:W¢É¿N¡õ~³AGPLÜ@Z³¾ÔóRQC#©‰q}£ð(géMB|§¼´¨Ó*2 rê+ÁYâs<À)VŽƒò+O”]Êÿ4É”g›:¹ ÄQɃg0IK®•K!•;©ÃœÚŽªäˆªìE^( W/CKVŸ²¬ø×B£7}šãrx‡-†U"`flÏu‘v!±Îœ˜/ßçYþ´þüÿpõçZzÂÖgÏ~vhQ·Ëc {Øx¸:x[õ0 Ò8QÌöÛÄ2÷¥ÅûYc *û‰%| ÷´ÇgcBÎÕî|gѧXÍl@›H8c/76a˜’3 >žà~b®0U&ä€?$ ᙬ3ð_Jàg™G0"Ú1ïyÇ€#ºL£å·êéê`y…Vø›$•Pk]Œ…bRÁs£&l"Ÿ…Ä×m[WJlšZñkµ?²Çê%ngºÞFòÕUV7 ¿[ídl) þgϰW_žÉ}a穾a=*sRÿ»yý-Œ¸]¾f_…OA£VÕ×R´•xø¸?2bÖŸtÊ’£à3ư¦EÜE>Ðÿ)jÓq•á5à*a s‹#„!BÁG²[K¥q|Á˜|»DFÌÚóTkÚCdrž“uÈUO (ÆÐ`¬î'³Š(þîÂ\¯4Ó÷IÈîxtÈãWž@ŽÇõã?Ÿ€¼R²^Ch㟴ªWØ·có wt݃ž× k'93Ôòky Ëœ¶¢¢Ô’B#¬‚‚K’Ï^Ú™wÌš'I×C¬½ÝFbmµSÎñ-ÙìÇ+ÛÑk\5¨@ºÝ¹(Õ*íãkBñ*àK†°¾.“>Ÿ”“LW-KKP*~òPüÔ ?Ô¬«ÜÆ_QPu|£tÍñÜW å󪨓¦˜› ÖG e- þCƒ•‹…º^`LXuÀJ ƒ±ð¿[…FuBШòk÷kP²:ÔŠ8…¦ÕqºúÒúyXB’" ‰Äc†crDØ·óª89=NM&ÛãÏ+° ]C°Q«•Ú¶×]µ×f‹xõds¿Š—Kîeï@½!`o“Ä7£§»¹¾·gŽ÷=4ÿ_)-Øâa˜eE®>ÎVûï~3ü7$(DŸ:ÜžÚ4ŒMª9Gw†Ì{ì|õsMŽã{ŠÃiDÎ&B‡p2d÷inVVºvŽk“ÅB& „c¦\Vjâ›25£(<~aèߌӔ?YZð¦kîèÐ…„†à\[:Ê;Ã×ÂÒ ¢Àåž6{aúz)Àû©¥¡f™§‚áÝ]LÖËÚ‹RB@À‰>b´`> k ë‹ó2ÑÉ4W¯ÔY´©l~á¯F®¬óQú¤ëðHHPš>&‡šuuq Ý}tz.ήÌó `*ró.Ô •†ãK¾&DTE—ú­¿b0JÿóuíqI«þs٘Ú@rê;Lž‚„üuÈp“€L%¶*‰«Ÿ*šƒ™š¤Š%ƒ^±ÿ>hî·ÄK›™ xo¤‡ÚDE/5Ë„ oeà×t»¯j \Â{ñ>=Q6ûdÌþM)Ý)1}D9-`i¨=¬´…–yI"§ïæ*ó¦Pàü;Ow¨;Ü¿¢PóàO‹C7¸ôùÌO,=_ÄõÛ“64 #àa'1¦º¹9Áfãݳ$9Q['h‚†ôvHJ뮕§gPEýÞËÂh×+¢'ÄÏê–+3Fþ˜•4Ùÿl!!²‘­#Èú¤ÐʧÍ`gÖæøíšžÒhd;ÆeËïÌ2(kœ#öäMhÀР„÷¾ àRü@Ëÿg>H‰ŠÄ68¬f¿$|]€‹É–GBÔ²£¦-«´…émgÒ’?b1Äá¶æÑ*vÿfCIPõÓU«¢{ô$0÷I©‰ö/"øÊµ°§6–\é—"ì>× —–úK8"Hl¢(ŒÝoõ*E°UÖ§C5Á©¡ŸebêJ^xv j…×ÂÁ4¶M°á¼%C~«Ò‚7vC™ = y Å–Ç[)ë ,*ÜØ­¿WÛJvIXºMbÁDSùdcéG”dÝ2²ƒæx‘çO Ã\NÈÁÏœågÞ¹#DÙRÄ…è:lÀp·ìÔ­¹!ö†ôß1=Nf—(ÃW_ jHÉ®»¿ë“,^Ș€³†0.k(Ö¦³Uø†\l ƒÎý÷(“˜è˹Ã!Ò{µ‚7¥ ZªaóÇG\Ñ)©lvk$¢óK|ÃäÄ\±9BKÚywÄ&’Cu2š¾ËÏmª´©ŠA“âÑ .wÞ]kCqâXï7!²îHOùmK‰Ì|NøªÔê (¤êF22ìU™ãºù9¦9Ó¤Ÿ¼P²’õb*;Ä9„µÎ†ÑËö²N÷zZ‹˜-¼Õ9ÈÃÓˆ; ·ù_¤“à «!qî$«p6aK¸>¾‘cZ÷e"%bL;/¬ÜÚ¸‡ô|®–LºQfê±{äñ'’/'=ö ‹¢¯5õu­²xðヿ3if30øª°y¯æñäRP<5˜£‘ƒ´ßô;‘66—Ý`o&Ä:6Ê£ŸFÊŠÔ#ŠV=>êѯð¿ t¸œsÜP(v”j”`ÖÅëöªä!Ç|eºÆ)´J›â,D®íþb€o2ömJ·yÆÙk1»zœ$0<íBGFùâ:›ùU¸®Ä„¯BNli€ÖèH¨Í^ÊÞãŠ_“(•òÏþk¦!·C 8`ÃãJ¿?½ôbpk \óH‡xÜCBÎ.³E#;BƒHÏk:7qj6òõiüùªlo|²Z”™ÃŠ"ùïÆÍ 0Ip3§‘},»N2>°Mįó"_FáÕMÖ¹¾X)ƉGœ¸¢¹7ò/2´Ž'“ä±· §­% ›2¨úˆ^~ùÛI|zè»çÚiªz}ÇêY)rîé~# PRµ¶‘"|Ò%è´ Ão÷3ßwqÏvƒi>Ð9šÊÍ‹ÍÈ»Â!f"2hÙ¾2ˆiPˆkÍâ~ã«;é5°Ê Z•Êæƒ’½bdŽÜZÅ~öìcîõ/3XæhãT ¬±s0!Õ…|#,Ÿ–;ã+¦b§T`è&Ù PÀØi"o+qÓªÒ‡9+»‘'bõyº‡ äuÎ ~xhP<ž”ÒÀ®H§´^Þ»A@¥<@”²ãVª3}qŒÁn3RdZŒq1Ü<7a6Ùïºjóc3÷¼$Üóvž)Iòø<–‹Ç£2ÇŠ)Ž^™°Ø¬Ö8ê 6Fê%·>ÓƒàýÚ›Ë#Åžƒõxߦþ]{¢”ˆJ‰œâЄ"EÌùÍêì´ ä}׬¼¸éÆhñûÜ=`ã¯2`|½kòÚxÜÇžÜ @°{èV²åy€]=´õûi»äJ3ÈÎ|ÓÃI¸ ÷Ú¹Âì†Æ›{¼”âÛ†°M}1«È øZH¿a |& 65b1,‘3EŒô‡6Mט@ º'iešsi¿”jˆ?þZMíµ?œPæŽ ‰¨Nï|rý;°A:w7ÐSΕ¢Í_åÀâL"ñ¿·¤ J¨ªüQ~y‰%%— à.o¦R"¤(mß¼‰³TEcö‚íÖO”BX¦qËŽ´V'4ÂC‰ÈfùNˆî ª¡Þ*«ÞÎM1ó{™@R~Ïå BBnrÖÚ*ž$NÔŒqËk ë˶£Ì"ºAÝ:[oß±£+?é–cý*É€ª’Úp1*çÝ=áìÇ¥`7â[7’ZÅ«b©%ù%ÝŒz°ämêF e”A÷6ˆÇç@GÞv”1ß*qÙ(”Øù >Ôh1Ø+F0¯LƒÕjésf>¼¶¹:®ŠÒ|¯òŒuTñœ¤×¹Ñ99Oüíþbèj·Gd™¤™K„\ÁÀLÿÄØƒÐVïæ(µ,ÅO÷tWÍ'O4²¶¢ü±p·ä=·ÙLùÕ‘dÜôÿ‡ý±k.ýkÁ¦Tpi…uŽßyÌΨKy)ùw0íÒi.Õ£pÁe…¹-efš$pµ¤ óà¢Óð°ÁøKÍ&ÙñØÅÒ;Mt%¤‰±K¥ãÛ9¾mçÚl\Éöï<,Ú)^70()ÞeMZ:½OÎr…u…œèIékÑ)E#Ó )¹™2¯õ ›¬sTÚîȦfcÇ“lŸ°Ì·¡b—™ùÝ`Ü;­¸ª‡¿¸$M.[’¡œèø%» yi59!] ÿª¨Uº«xõp³ÜÀÏÀŸ[ÝW)ΫŸvñ§²8hiîÉ^ßÁ)ïSÍô.už9LG2Ë×Í; ¹ª¹¯¨Jë–—~ËLuGäL:ŒŸ9‘ I‘lñê×ô„Sýš êÛˆÕ—JxMÎàìÏH¦i2:àúóÓ¬8òõF†‰cç¢IöÑt³ƒ»¾ûÙTYNaÖXÜg<…Ø…ŽÍ¯& TvrŒìu=$“ð¹»T²2+`†ñs†CõíÒÈIÙè ÛyÝÀ×ÁŽý4”ñ\ÿ“Ð/ܘÒ¿%q^È€I‘ŸwoŽs,&§M`ˆ´¨(–|O¿²QYoˆvöÑ4x¦ðnÑ]ºN-i8¶˜­¦…fE÷ ˜²5Š3Vs¤ñ×ç~%€‰‡ú-Irå0Ý ö~D÷òìðqúö©÷ÆQÅN¿¿½OŽÉ[CeÌDîxChÏu8ÉÜ'ÃGŸâtè/8²ïÒÝ‹—`kïGl‚©!qN­yáâbæv‰p2ÃÍ^Pu‰á-bª}«û[ìrOçô7Ôs¨÷Ñ“¡³Òø¸¸ÎJò1d‘umºô>Dè÷Ѫ*æ>S6iü›F_ÚiZÎ'îà‘Æ‡£CZ›8H|=<èEÆþxDê,{)h/•ê$Qx+3Ãvq$†?ö¢Uê6ß\KÂÿ9”ÑCåw~€(×Ff™]ýŽf‘Qíu!åó@3C»¬”DŸ1ˆšŒê¹ÖøÇ~uX¼§w6Ú2¥•ý‹B]¹O/äñ“2¶…ÎFOÌ8ÂÞ>ò2„—³Ì?6[tÌhQü–·<×ïÔ¡4ŠQ+5PAFì®&ù˜Àà+ÎA"xýR_ÑaaÊŽW›ö͎˾‰¨ÎUè°8`3Iá–‹äò†Üü [ê›ÝqqnŽ!K_Ìvò8¥¹BlWÌv˜ãæÏ"jCmn6± H“•…5Èäq’Ê…—ºKcÔÖÉ[^På²oɉ²÷ŽH¿O»jª¸.í§+ž rñ4é£Åõò¦NÌÈ/KÉËÇ¡?¯Þ¦ÛaŠyîNè¥t”*÷nØÂ¾˜h•RFZk…ó3+BÎÅ’üÐ#DQ©úéRT+n±]_áEe™˜­ç=sÃó†:¦Á¼Êóo€hÈ|¡)ŒÞaž$¹X*™g¸ÃŽ·çâaíÞMuE±KP”å |ãèlA=’‰÷]e›ËBÓ«øó#F0þí…¥£@?-Dèržk˜".HÁUÙ;§’p9J2E>»¡hü^±Õ»Æp3ø¥¡9"÷=ü ëàX{ C Œ@ꦋ†»|jµ PÚnª¿dü«öëî|P„k]x~ÒAm¹]zvæ~B¯ÛMÑ@®É›Jñ‘<“Ü¥ÿòÁñ3»¶Û½÷Æ£ àT«ךª‡Ïn´ËõcÔy§ÿöüD¬ÓåpgÁÀ[_Q'¬§|TÕu¾Ÿ|0QaÞd_ŸtM%+ëÛùZäÇ«¿ïóq§u^X¾¼HÅÔöH›š€Ž‘ùeƉÊ×wY&Q¬!m¬TÍȯêTÉK²Kœóàùšßy`Æ8®ƒÁ‰†ñHœ“)(…Ρs3U>@BOñ7Eª`¢þú†‘ $-KëNÂ$þZUÊ$ÝÏ×y襁"™ŸFtòɨ‘ã"ö+©P Bɹî‡-!qÄÝ[¢Ž®ù ǧõža7°ë—)uS5zr= Eï’%¢–#ŒœU^›\ª©mÎíÏHCóÎèù*`Ù¶nÝ `,ü“Ì=Ø¥/úçN$˜ô˜è=[còÁ< en@7 Õß=Ëð÷IEI^KÝwÖýÛ®pL ¼¼Âòá¾Êa°þÞ(²d¾3ñä Q›¿àé]Lè9Œ°eª3)Â_Äá'Þ 7ÚWüw~ÙU2ÑCÈzæÆ¶q›xÕŒÕk²EÕ²A)ٻ {Ä£HOõŒÿÜåÜk’×V(_ZJ%¼E¦€†Ã>Î΂ZÕòvnåõá~GüÖs^Òuî*¢m@a˜åT/ó‡ ×ÉÚ­1ß²œ›àž€^º0…ôÚ¨û‡î÷6jn¡×µ\¨Ó¸Öäuó­ÓÆÊÖ„àfd²À“Î6",Û_2ƒ«YfälégUh(i¿Zx3¤‰ºƒ£ùí'úÖ5ùò¹°)Ù Lø.èa§áIÝêÞŸ’Mñå\FÜ÷zË*í.Žï¶ÛDPÎÆ®Ü¹[›,Ìï­»ÑȬc‘>ƒd5Â#¹2x‰ö½Çäf»N¾FXÍðbÐFˆrþø;>VZ -’Gq£V9ý™%~"@ãü‘gŸZÝ}Nè[ÚŸ4¦Q«ß`ïÙFwÉ:¹ÄЉ7²á»ED²Íp‹ƒž!Ç™¨ ‚%%'F1­e·ÞÇ9ÙF’²ð<^²swùãk ”Þ¿Ùœ lþP§Çâ‡Ì‚xnˆ}\’˜Ä+ÐûXlL ¥ôZ–4ÐHÖ(ËÊDy\¤— ÚÆ7ŽÃŠÁ—"Â݃¬ó&e%b G׆¨!ëÿ›<”–u‚®§âžAh¦­¬‹äÊ#€%T²';j!âõ?®åz/Y.! þ ¹Ü+xˆŧYèS•pˆkWñÍÀ•iw£w=Gcàt±ô—m˜yJÕãA8-º…ìšù@’.šÒ»D5ЧžQP Á^ðA—1ö±ÔÁ¢GOwFµVvèè"UäbI9Ï[½xž¬ßxϼ€Øÿi{D'uw‚”| œab»:/–·õgâPb9t *Kýd§üâLâ„» ±ã¬¸lŽJNîç0OÈN¢çVxz`J‡ÑíªŠ¼¯ž—AbIvãJO$b°Ø8Tî:"„u·›·]à¶]ßÀ¿Þ 1¹Mgº‘÷ý%q~Â÷Cò´?éj¼ÁÿSS6îNQä…)¢d\ŒÙ*WlžP—/O –Ñ ÂïªI|¾›Ÿäi¥ÁVŠsÀ;wSØÞI.V i·Q]U‰ÃücA[ºEѽ¸¨ž’±8i±±ÆÉ)Só–ž v«;¨ë^u}:õãm×9:Y‹ùûÕ3:;ÊÜxóNÄ{]m£t,赊®ÿÒ^`›Ùýj •“껫-c¿1c{yOÆ•Uà§,KŽÀ–E<UGL] Xk}@ÆËžØs4 zC5qŠÍÞ€ž9 …ºhúS“‡*ï÷ÎÓÀH.vÎ8ú¿W"ª–ŒÐúDWÀÜgmŠ„;ÆTøµø&ؼmŠóýâåOŸ‘Å^¡ÑzßeÙïÒG†Æà™Py¤ SÞæ¢"p™fq•ñNˆöz\k-]I!¸¨…ÉÏ?wæLŽ¿ Ï5Id)Íœ‘N QË¥>È´g"™Â7ÀZ Š *²1Ü¿Oí˜d‚t÷l7 Ú©kgÅ“ÿ»K–­áMz1GÚ*ܪö½M9tn1x%v¶[dÝ}©'X¥U)¿ž@L¾ÏäáÞǹ>•ÐÁuŠñT×±ŠÝÏ9‚ZÌN°P¾¹SQ'cœ¶Š¹ŠÄ˜!å (íû ‹µ¯G$åŸNãÛÅaT<«°6[ËÁ¼>P«]ˆ Zkj2—F1ˆð$¨Z¨¨Û'^ôyðn…áÛ†­GÅ?»ærî®G}03 ý¯{‰Ýëƒû]ð×áä ÅͯÅï4:*žºž“Ëw?–²Ge5…Ë1‰oÁ+¬äNéF<±RÔë‹Y©ƒt#rD›µ«¦8–…ÓK3"?uiO¡fyg‰Š¨ä¯ZPEs±ÑPæØ-.#51ñ'ª7ë©ÑZ&Ü,Ñ µ`Þ" ›2)ž‡Q§ao…x·ÕiIêOe ¸™Å-üt£m»D‚|hrÞÀæ¬Áü?OÕ¾%àXZbä Éü YmFôÕ×ÜyðQY‹¤Å{ÓU³õ3€´šFÈ»ù“5JÇ ì‹±E¸„̇Ec¨Y9N¡¾LÖ0íd‡øã(<ÛՇГ‹ ¿m:uŸÏÔ _ðæ®…IøØŸ°ßH”ëÐ1GNäì‹`VMÑA2ÊІÏÅ‘ ¤‹ž ¸AÐ×à$Ó~p@›2L%WA8kô¾˜ñÿ2§Þþ‡ gcHÀ¦½Ðœß/&y%Lšj†¿Ô ôuè@bWóΓ´èapX¼Í9Þ ™AU =˜1zë¾ÔœIf5£ 7õfaÉΜz(qà’$;ý™œ96¥±RøTj<î§dì ;ióÿˆò@Ûý#ÿñÔ¿ä\’Ýn¦Oâ|Í CÍI ”mø?ÿÈ`zÑʼn­ìw‹ÿ*¥Ozº£5—ôÿ±‘rÍÃÝF뿎SÌÈ÷B´Ü J\òJœDcQÊP­ ó<<}¹ÒÀ £óöƒ°'aËC¦U®‰F+Aä}{+Å[³†1ÐEžówÞ6ˆñbWnÎ|K§ÉžÔàçѦ*#Æìbžú=²ãÁê‚ñ8-Î#>¡â÷±™Òˆ¿Ó9²¬‹I#¹Âò}º?ìsnÛÿ”BûÉ&RC ƒÚ«¶žÚŠéð£Ú×lzH„Ìa†pÅ*9ÊÍðFgôÍ¢Þ‹ •@ãžBÜ+?±år`¥#H_€í±Î>Ê3Š+ ;†XŸ gÎFœ ÉQÕ<ÖPoZÄÆ9˜»Gþ†õC-y®Ž•øÁ’ÆúTŸÛób£*u·£û¼{ëÖ.-8;<Í­7ºTž¼_ˆÿÆí̇ ®’]¥Ppp®© k? i½Lw“$7ºpå- ¯6q¦y ß½ypÌ'õ‚‹×à0ç7Éù¨=dR9”Â_ÈŸš;ãK„äFsØ8[o혨ãÓ Êã  rº‚çe©uÄâuåþ}yù)ÿ\Þø #”äãô­$=·#d‡›^Äjð®aÙA*t °çð‹$¤º…äé_ë$è{¥ñ³3[Sß ÅyÕá²ñJ›çŠ%fØô_¶Sm 'ÚœÅ:n³¦lÌà×̰S±%bQ †2Ž®VˆŸ&;Ï ˆµsú³§9Võë£{•J˜0w‚¸ŸÌ†éÀ Ë4Rù¿a¯—öeWf^y6cyé[ P…°M>V¼‚AC¾€4¤ÞÁæ#n\ïtßò "‹±;ŽÄ˽a‰ã ‚<Íüµ*zN_Ynr‡±¸èn¯)Ý+,¿B¾B%`’Á¶MGU©.ñ_\oæw·¤ÂQ¯ìÎûp iJçØŠ `Ùn>ž§gzA¨\ ö¥á ȘëÓYôSƒ ÷ì}L©›j1:ó£! •5 5`ûpˆѪJWõ¿SLwG”Ã5€n‹†Ñ–ͬ"ÛÝÅ·’}¢“ðq¾¦Ê<µbÙ<¢,],"±Ç÷ŒÿW=œÎÒ¤RXW{‘æ;CUæò”OMr2àØ{ ^Ž)e1Á‚ÊßäØh@õº ÚŸ{`*nT,n•ÜÉŸJÓ ŸhfR‡Þ“ ~Hi[P”ªÍJã/¸¥Ÿù}fßó¦H4`Ö™mT¾´)M±¯é·…5g ¡æ0{ w†+"” º$¹8Þ¨á4ô;$“ÄÂÏ M´ ï]¨ë7Žò¼%tÿ@!ñøPX8lãáèè!Dîäv¸8Ž;öF»õc]í¿{$Õ0RF!\"Ù2 k9™GÊ I²!Ìÿ5ak„Ì$æÂ)·\x"”Ì3LÀëS õm‘¡êhß8K€‚5hË4ßýI­†€(ÒÏŒ¾a®Ÿsìå÷ •šOÕ| I ,hÇÙ˜BJûo>¯losÅ3~ã ‚6¨Ó9cÉØ¹u¶J/Éá],NÄpc3Ôâ¹ø—öL¢Lîø«£?w†<§ï¨ÎQ"#×h©œÈÕ9QlÊa€gqž˜Äó׆C÷'Ûàþo¯×ê>ò}ÅÒÀ •LL'e*ØŽîík½–þ0dñgÀuœ%ÈÓιÅüL®çÕ I:÷‰•þ´÷œ=¸b‡F¤ê‘ºIS4ì Ð_ôƒïàz4ª‰*.††4Îý³É®j€6ëËÊGmS›’*?§OA}xsŸÅÒ%Ø)DG_PMÞc7«ŽØƒÿ)o_ 2_7Êزˆºbó’O˜¾ñ¨‘@ÍAÈ̤YtÌ»ìˆÛ››OË&ÔWc¨Íšoƒí‡ i bAOŽni äC\Ü §ƒ”] b"rgä¯(/•~©D[:\¥Ëß É+‡GÌ f|.öÜäÒt„¡fQÜ·b)%®üðGÀàz‚ÒiX0v– Ù£ž¹™ŒE]oo@]˜W§¬â*­Tÿì;ûÞK3y5›“ȦÉÁyFbg`³wF Ru1§BLÌ?V8Y ö¬uÄ|Ø~«bIvéæƨ#-…%wÂòM ˜™âî Ydim{þ*£Ð-Eô°Ï5wi¡ÿD9¿Ë@ÏK8‚¨VyË¥ÞQA` ^zŠšÏ7x±]å9ƒŠÖxp€SuˆØÚ8¸Ógóa¾ÉQBéÅ=þ2˜ŽúÛ oYîcÒ §ÿ!zØ ämv;L÷*^iƒ ôÓ©ò+MY¼™®îÑÐ>Ci«yì„ÿ»ð ì#³Ì Ù* [ѸFzè%žKâÈFÚ%;É‹l:ðëšQ Œ¿àtÁŽz±kÚ]Žüfóo’Æÿ´ÔH5!ÒV÷T!~0ìÅ×ò³á¯'>6en[‹U‘ç{›Ã€ë½Z1ã«d í«ÁØ$Nf“NÏ^àƒ*—S/JƒbSvØk’Γ¬5„¾ÄÁúQ|@ÝáßÜaÌ€áB•FM­@Ó¬c}+ó¿û•ì52x]ÕwèÒ´w“ôêß¼ˆu—}dF¸+vм­ù´<³—ò~© Í–ÞÊ ÑvzàZñ:!ɲéTÖ¯Á¿jæ¸XP‡NZ¡Wƒ$×ð3ãóÐ'¼bÛ‰À×G›‡—€¬Ã,–`÷T+ OsBôKß¼“X|г*ÙŠä¡ÜªzšbÄkLjŸõc4:5Û+ç .‘E´ºõ.'&ð½.'-v¼WBÐ¥=“&éµÌQÚ6"09¨#"œ“ëÉ’ª&wA|M„qÆß…ÒîÊŠtß:;Îÿ‰¼‚Ì-ˆïE©<‘ö–i,ÐïÊ4þZ‰ ë ê(ÐÖC¯-ƒó·TP ,üH°éî@› ÐÚþ¸<“»u–Xæ¦2|Rÿ0oŒI¥éö-£Âõ¼/¡Á}½îíµ ÛÃwÇ_ ‘hÝ)\³~Ç•äLz¡6àà *ÔÍ ¬´/ Ì1¸¯K=*ÌWé’.ÂÝÁÖ]3cÖôç:AY qn<¡a{ø†’@  f»´?:àŒAût](¡¡Ñó>­ùŠèU\ÿ«IK[çÖZê_Ó:á#êFŸ$%LÏ>° ˆþ·-Œ“×ýƳHú# cQÌ('åhë³=Ó7tÈÝhÓ3£ýœS„ Òfx%Í_‰ï´Ç)-pxÅ0#èm¾Þªž3QúI껋‚4÷Ý„·0Æ{ü½Bž%Nà”F¼p, -€ÀBŽÍ]ž€îýf›[éÚ"¸¬Å¬fÅf–úž|›Ë’Öž7"ŽÇúl—þ/ã ¡›0‰~8«åº}¬Àõâ!>€cûü­Ë;Œày z'š¼…ý—ÛA† >†×ŸtðwB& pVØÌ7íÉÄúÄ0 •)R<òpŒ'È£»^DK§©NöMÙâZ›“Bha)”:fVô`ÓÖxqCM£+W´‡E‹¢U¸ñF)5‡büè³ù «ä+è]¸þ—Ö¹wùNN½ùêd\6 …ñ÷)©`‘ýˆn­›¾­!¦íòå«Üô顪±´Qpˆä~KH_‡©l§®ßw¢[g†…'Ôo° •ix“)û7׳ء8k(éÝߥo)¤k`Ùyºm•4d|A<øa³áÀØæ’#‚j¸¼¬•ÿÉã„ðYÍ¡Q(&õÙS®Í³Zª?€^¿½:8ùÒýdú´wm‡§þ4‰dÛ ûb( Y-ñò­ÛíP†Ó²÷šG0ñY™~Š‘LtˆôŠ55yÀÈžÏyÊC{¹é•x‚¢®^íTÔâ“ÉA+æeUAZ…r\³˜ž÷”vVÐê>ì ~?$¸ØåNÒïÓ®%ƒº–‹aŒ 05L.*Î×YŠóú–öb—Ëï00®‹ç‹œ Z-û'H2}Ýèã'msG¼fy]µ=ÇœJE™€F¯mèKÉ_1ºŒ½$U¡‹ž(צž¨&Í–’ÔÙÇlíŽ+ž©NµÍeâ‹ ¸>øZb™<$Ã$3—ÆŽ=\ÔÞr”i³Ì½Æâmo»™`GhÆV7å6šP”Ì·š!À’oŽ;ñRŒ%E †å ¼d‚U«È2ìcM‡©#˜M¬,7ãÀ>uRQ`#çÜ '˜÷σùðÄëúŒߥí0õfº«Š }† kºd*l?´µÛÓÚJSÏÂÑmå‡Õhý¸m7EÜõ§Y„© `Jvé"ŽšI)×úlO,Q¡±ù- Ü¡ÀvØæ*Ü«F0?Ø'ñFìúÊ‘ åxüŸúâLBø<’˜‡ö‡Sí1 1ÒzÕ¸€‘n†žÛ¡f+þÏZ€? è½Éîp?éßz0y²Še4¨˜Ë¸íŸúÄZþ‘ +®l·mZÈ7úÿ+„'Ááã4ã Ú¸ `ñåÆmÙóY®ÿ‹C)-+‹‹`œöL_XðG‡ôÿÚ­ŒU¾9Ò«4ˆ}R!üþ¬Q6æ…Jð[(ý•(ฉ3_,®cçÑMä Šìk!,ˆ‡œ;PTNóÅঃÌånÏîƒhb}Ïž…AdƒvšƒÊ§þ΂‹ Ú §§,„, 'Nçëà2®3txVdÄì5î×Sm¡+xÕƒÕ¶™ûú{„À Äw£~÷A›/ðÔ…ºnÜiIÐt×2dˆ—ªOVVâ¸Ûö™‡Cû߸9( QXI3öÛ÷ ïÁÔ"_ö½r{å¿ÿÍ£âÐC*¥»h?é;SzïE}.¾BñŒ/xQ'í¢žMOØKgz“‹”´tLX-=ùkaQtu`<¡âEˆAd·O8Uå&••Ÿç¢…s%”çtÜ_0öùVdªôp7Ýô šÎSGƒ[ÓÚÝñÙíƒïˆÒA ìÛ;aס¤çªäìqôÖs¸>/º“k+Ž–ýz£Ø2±•’†òÞx¶+;¥hsÏÕø¿8úÖ’z--ŽÿH…§M£8êÙø*7dôƒçYžAüy 5TFÕ Ër¿"¾7­}H±ºIT–Ž’os#¦ýô=HνF1²„*YOaÅvûÀ&É€D*ΗGÅþåâzôÙŽ±Nj¼G7z[¼¢7q,”ù„æ>{­b¤û¾12†?û¨+Ö 4n믥–¡#£ÕP®4ÄH Ž)¨GÝYíNHu"¡‘VÕZOHà Á%µŸååÅœéj,c¨*·™8cKû-äõˆÓmÖ”e¼B¡ÕùŸÓX®Æ<ÚÙ¦Ãsݾ*aôjð”X’w뾈ñå ~ŒIÍÌ‘»­é•i†0üÔh&رO®:wwÕpê•0š­`ˆ ¼®3«ø)<ª)®¾³È§þä7;ÝÉUQ!¶3:Ç:¡%‡^¹„:a*•¨Þ4̬e¨ÖÁ3VíK.·þÌ™0mÿ‡è«í’Ýóò¹ÙDã‹NØüC„üI›¼ò–y>vcö ”ÉÂþaÊȾÉ[rØðùï”·Fÿ´ßxÅ£nÐèÔ0½-”â½ acgºêkXïv »ìŽ¦Ôµ:+'¬2Ô´8o êÔž#LŒÄ[±<šª³ã•ÊJa÷(»#‚X¸ °6‘’Xdo`Ètk5l vºƒ!EKœáë–‘0‹2 ½§Ä^,È$¡®µ"[†· hïcŽæ¦EjÁã× ÆÝeWèÕëÁ‚çOrd~Ý*@kŽ˜'’ wìÜD{ïhü2/û¡dW‚V¤G# Ÿî0|³Y•/±ñúIÕ¿ïM‘O&rÊ!übÅ›ƒñj§ÑÖÀ \Šƒ #.]wX•¦1U,–ö&´ÛYé‘5Äu`&x×ã<So…«ò©ûlˆ÷f¨;ŸÖ4Z3×.¦c&·MÆ1_öúÂzë~ÆN%¨¡:5íÌâêx žOØz´ù5d‹ÊF Uw^£RËPù§ò½¾L¼¸ûqDvþ7Òâ¦ÝQÔ$óÊ÷J‘ïS£Æscà3ÁöJW ZI³P yI¤XËúÛÙmùDLÊrÒU+TèAlä¥6dp÷µ.ö ëí’Ûa¹†OL ?Á›ï^Mì)b‡¾ÔúÕðü;.ÔfÞ‡ƒ¢Æ¨—Ëp ¬í¸ñ—«R ;mÒB…¡Ò­°áw¨Û»Oö:ŠÀ¹hx†¾GJfo-¦îb µF-áeõÿfõªä'C“r ò7)Ý|ÊS ¢ÇÿyZê&5:«(b ³»¨È“Jâ1ø9'OÊþ ‚…%\_þX캼´8ïs¶ø¯zFÔtÊØVª¿hÛΑvŒ“ ;1]cpßà©Èè6÷‰¤MÅ‘KUi4\ädTÍP‡«é®5ƒhqM=>&x$d{[#Æ!!NŽ¤Ø´‘)tKî÷çä*úK'ÀdÄeìŠÈTAo5¿0yµqÜ8ÏO°Û’^b ®Œ6}2Ÿ!¼tÓ®ØV1§|¡•}#U9¡š${Ñ6Á&.JL¶¶²O]P8Z’V\6PNª•él*Dpù2Ø9§"£ :s+L·mŸÁÇËÝï!gºæ¤€õ……/÷^lß(&Å6Á&,ÄôNy‹ð¸SmSß´»( &öð:«n =AWÌB€_-ôÜ­V² ̦‹Uò} Çè²+( „Ñ!Ÿ)аI‚lº+‡¶‰6:hNO›ôµ%;ï‘˹Vˆ"šˆjîRÊb‘ÔH+³ŸB9ïxë@§èççóJ餽lÉÿs!ËKÙ„ µnq)rœZÖ³æjTø“æä·&µ 6«.ø ²~ÉD‹öì¤sÎ^u©?n-ú~fqùö ˳¥WhR‰ƒÓˆæ}ëTFâ´Þwc;þ¥ï¢K–é®òi}Û`ÃÆÓ±ê#Øm,Œ¼ U´)˜æt 7‰,æXw$àC|mþ4°jŽìfêÏkãÇî¬xOJŒ ‰yÌz8ƶYGF/àN¥V#‘Íùtv°åuÏ:ä^€,Ò¬ŠuŸs'ïÕ07ÜËO’ Õ2ÒŸ([<…à’#·ÞÔ5ýq.üý)BÎÙÛ+¡Ë Ø|†©Žh6•>uYp<ÞðC.$øÂ¿VšdnÑnDÔ~Í)„ÀÁÉó¤&-jîÜ:ªkÖ93¬¢s ­.Ó‚&|’èô/ÑbÜpùAèQzi$LÂ|;‚ztÄc¹î¶¡v  ßß[æDOù’_¼på%.é5bPŒõ›%Ége2Ü]w32Y ¿Ž? L.k«Bÿ¥¼|/¾ôscù'"1¸Û}Š:n'´T‡t…Qºd;„²ßsÛáæák·­‹RiÐl”ø™œãlÍGŠü~É‚Ôâö„¦ÊP§=~ÈöÂÑŒÇã·CÆþG*;í…h®¯± Ë¬ÊXs¿ø .æf–ªònC+SÃùøÈÛ¿ÍMeiÔlT¨HŽÝòÂÖ)žœ#9ðŠ0ÂÄìÅ™”7“]” –}`ïyZøIUa,Ù÷%Ërï̲³3בA@œ7µâz“k柪?= ¡Ò‚Gž*5Ž+¼K‘n®Cø"ìôê­Û·ÈhvZéäÞ™˜« ußÄ2‚¨;ö'¿¥ž$YçtP_ˆýÛãÚ¸[¨‚a\`[_·0Ž“EG)Ëkà–(†ÄõÝSúé[ؤ¹Åõ˜Î³ðœ{òS«Â[ ŒOÍ.Á¤ªfÕjY{«{jW~ ô¬QPþ:Y¨áhN šwl~ÐåpHŠmUH?Íeu0AEùö'.•`om= =:réwNj*”µQÙqq¦`™¯ÏòŸz]Òqᔓñ°e†co‚ÿñ¹k?Jqr­BWR~OG 2ƒeÆtWÿâÝv¦3øÜµÚêd;=ζ7@(wú‚©!«Z0·ÑËâÔ˜.*/~“UÃT³Í÷½‹kK6ýwNÎ[çœá‹Ú :…å~—ëiY›±Ë"òù1–Žu\P\.5“ÐÆÐ I@¶¿TtÜŸ¸ÿ³6s´rÀAë*ÎBø?¹¨'-à_>\yÞÍÕ¬Ì8Ü,²œo˜­Åf—4×ç«c€Ü`+BDÿµUBÇ¡FŠ˜O§ÊëRïrí’5Xû.¤1ªà¢` ÍpAß ÿ¹Ç¿˜&Ì28Ù3q¼¯Î0<ÅåËÞü/U*ÀBÿ½ˆwñíôá]öÿØ^œuŽ©@ÿ¹¥Ö™ÀA^:bå»MüM#BIÄùÿnZãëp'ã,žøXjç¬[â–ŽÜ=ýé<É p&m%ÕÝa’ï'(j&”ß'_úlxéë§hð-ÝòTAß…>ʼn3[ëj,2JnØzkÇŸ$ÊHAYQ%n»|¬Ü€¥á£lÜ­h—Òiý¤³Äô¡Ómâµ´9jQ¹CX@ÒäMTJ«Ø†B;|¢Á](kÅ}`|x˰&²sàä9I ]Wd™&˜5‘LkT:ºä%R6Ìú ûi8æ21D»Ý¹YyTs>ç4R\MˆòúQ¶\3äæ#z’gHU¢]ÌšØD¿U1ýÚi®A8³ _N" À­»=ÇçZn–*îÉš';‘Ù ß¹OþâCO$›¼Ì@*~û¢zx]Qûo!oБ!!*T—²><# Íòƒ šû¹Jk%¤ ÓcíkIô•àŸß‚¥R§;ù•¡˜K‚[Å¢Ðr¨ŸÁ³Dš®qCLgHÄ_+#<£“!¢n— Ø'§À-´5!¦–Á¼Hd¹píï1'¸…JѬã4~Â!#»¨Uéæ_·­ÿÁ‚¥2 Àõ¬4÷7êµðË–•ÙZ…ÆÛ)òD8mVoàQ‰ä ©|“*×ö„Aáò… Yí^,p,øR©Çw~h•6ÞÔÜâÄw‘Yöù6|¶«„ôºã[s!wY„*1.¥µ9±š¼¯µ.‚ÜÞ1v…Gx%Z}#ѬVÎ1ÙI·Šh³ ª檻à¢äyŒP‹¾¯z„Öi$qd&•ËdüŸ®ki¶ÇåÌbŠ_VHªÿrå«[À•§Sì¡1ø”s5 Õåñ4LáV@”ex÷Y#£@˜çãâ<¼X`óª UMû4d%tߘ­÷²¼‰œ{ e ›Èìñ}öÅZƒ¹,ée“³…5ð„"¦¥ÛôqáÜHÌ©^’=£ëÛ1éIw§Y& b½ ªí¨%ƒ°pHQwã˜Ù @:JFTqÜñàET!_´pìÌ~—…TÎþïÕRV#Æ7ÒiΘÈð'Ï8“sO2šåÕÌÖ(0¯¯=òa3nïöªð109sæwyÇ ¼ "[†²dDd´X!ÚnNäuľ¥@³W]ýr¹&ÜDѲhçov¯ÔŸZˆÛâõX(ö{`ÐߤqÕo†?-¹´ýÄk­Ðyù&Q­µæ>÷Eïöõ~{‘M[©Ž2 ¥ÃCáº]Mîñ\GŒÝûÞ !R¹B¬‹ÞŸ×{fâל3¯Q×£¹gTä\r·ç^Ÿ 16í»~/—&zÁ^0Fkæ#§÷ê hÈò­3äË;¯½­ù“×­CùÇT¿”Ùõ:TuÌæ)z P‘™¶ ÿG0§YpMc¤«g"]~Ù³O‚ñ(ÔÎ%œ$ÿ ÏaÁ¡dU’Äp¶iXžÍ›ó-6¹F®¼q¢[–¢4òæõ¤¬Dt¹¼EMAÆ,úTmËQ‡Ô)Ù´&Ø÷ˆ«®ÿ øRŒÓ¿sL »†³Œ6q.¦÷üôcëHPZ‹;6û™áD1£íá~Aƨ©ÏMxŸòÿXqŽû_‰A.X~±ófnooÓë‘Â)£ò;üé+ôîvà¸3ñÄΩ7“}C®l¹}‘çby°Ã¶<—B.Ð×…dj]¦[ ¶Sc};’ë;Y»©ÄD±êÍXï7›®Ðh¼KbÃ~¥c‡8\Ïýû<¤ý}–?°EÑ™"‰x¡m형T \×õRûgÿf‚ +o@¾nzwrt{!á3“êy‹¨q_Äjùv¤\\''ˆ[}be•}ÇìýEª:J¯C|«IÌj›]Éæ/fÏU©1˜{¹è@•MûVm†âpÈlO}LpH^©¢0ö× 6ÔÛïej]ºU„'[’"¹0ê›ÕïB]UÖW÷kŽž·ÔÖ=zÐ75>ÓZ}eçMËÇO:êÔÈç2o ŒïÒn—ÑK-ØÏç…ë?nG„ÆÊаHû9ßÊÝ=ñlåd [— À‹©È׉~¶N¿ÃW2µ—*|Ń©!ƒò—qû_Öƒ ¶b–OTaÔ~q3ÓÊWé×d´Æ¹1‡³=$2aÕajš6¯oçÎÜ[ÎÒt9ˆJö ë¹D1] ˜%ÎOññӱ͑õô¸8Í]x XfÞW Ä C×±y½å&ñþÍÕA:UN¬­QH˜Y Ý9“݆ÛÐtCxêýsZ±–Á Gg©÷`Ì!Vh÷’"8”ÛÝôräüØÛÈ\“³ÈÔäA§¿vé©IÌHhk¥"ÝI{¶åK^-FÚI~ú½yc×6ƒ¶;ç½q²°+UjŒM”ìl2ÜicÜVsR_û¹¿dºeØ#r„0ß—þ¡¤…IÈor‡L„¡˜7Å4]I•ÂÈ¡oº«FTò (…›=,sõ<*ï$PRÿL:PÜ”Ÿ±ÅXùݰá>_Bä¦o< Ë"³Õ׎Žx–tItÛ ‘ep49£ A¶®ìˆ'Î,ŽÚIÔÜž3·ÃUþ™Õø_ùˆ[=+‡Æ „4'-ö±ÁU>2÷@üåLä¬9xÉyäŒÆ/ý¦á¯)µ(·ìز²ÐuÒý‹Þ0ù½QkgsÍtÚb‚ë:åÕ9ÀÂË;k~ÂÆžÖâa!4Uì[ãÃ@¬ëX°O løFuHàçºýD?².EþúIvC­F“ûŠ»¯kÆqrfÈß$SóˆÌ7:oy[–ÄÒ%‚…Œ‚o$ãÎ]o”·DÄapt9þu<ÍÿQ;#Hb…þõÀ§öBÙ±;·E€übwθ,c#PÏ3{¢×k¯£­†1M@¢r¿Ñ›#\ùʃPÛºl@6aÕ3¨)›†5Ã{T–ÙÈŽdõú¬Šq£–J”„G>úεB’k¶·KýªÌáÒ›’®ÜÏ|Àk•E€~c‰˜¿u¶—O+9Ã] x§Z2‡²yaÛ,ü2Fš†qÞÁxxã!)¡Õ5M gꔺFrÅÁë–~¤¸W4+©_“Í,óê`r쌡Lãhô c­Ÿ+ó~ÖÔÒP™ÏžpL©¾fƦ¥Õ/Öc©@Å ì–€Ÿ7Þ:*Ŧ‘ÄþíL-ù¦hçh‘¨áúUÞQIMï«Y9oìîF0!#¹fÐíƒXÈ*7÷¿Ñà©¡b˜›ur¦¤Ü5Õ!¿;ŽígQûªVÆà6Pzr’cŸmg„ )|ÂÇG¦‘™ó‰¦-õéÑpzÔØªÅÞ‹µ_„®ºŸd—!$95%Z2‡ÞëPÄ2ª,…RÝnÙø'9ÁAgñ²ý7¦ðL_ö(PNeML.¨€#½/¡Õ­Ö~æ=Ø|þ\ù³ O¬Ð„´âç .Èwº>¤¾)šS ±—‘ykø–ÿÖ7¡T`wÝ=Ü{w ·uk™_,ÅwìU3r“aTþbòL~=C†€0³ê´Ñ*ÕÖ-î[‚¾çÓ¼íÿè[¦Ÿñw¯üFÀ[+c¸ÄuÆã¯®ÞžÞ’¨TⱘÙ-ÐÆOTd«s"ì“"|a”Is@Fíéì{Ü7aL½µ_½ÃºÜ…m"ä+¯+{ ÜB.ß~^ë"¦O¾ŸÇ‹P¬›Ë1,æÝ¦qOTÚÇYŒXe_0–IÙ1;T® ‹QÃÄBk[,1œsË/‚døµî€„eÓDœ†ùÝ$h¼K_H¨…J”'uRw0ö!ýw‚l‚('¡P埒)öHÆŠÄ tZ&Í£&X>³s’Ÿ²x̤àó´”ø·!ø£}ušGpæ÷7´Ni²±¾½ç2·''½J=Ôw‘ÄP5ú¦Ubõh2ÿ^yë?3ác ¾FÝWr¿Å1¤í?MAs–!=ß ¹?¡C(›¸Yâu]¨ƒê3!X=£vÁ´‡ÚÅÌö;€¹Áéóy¤¬?Vc庵ý¡À,Dû.b÷¶ÓAÙðU‘¦…ÅÀCOCèrÂÞÄ@%Ëk?Ÿ„Q9.{aÒŒn#õÜëäÙâ¥)‚Ø3[¡Ù%0¯‡¢õ`Hˆ7óšäEº ¸Ü©Û*iºÒ—C=â §t€…¡UI«¿N½g€ññ_yô戀€ìÆjÜò·Í¸}¬Á7.æõ¡&yz_ô«uWœ´ýÝ CvJ¨¤…}à 6ÅC]Riá¡‚È/±#¥zñØëjdÃñ&OsVršÐÁyK·6< üLúXŠÑÌícÄûÎ0 ý‘ 'a.Ù[Àúµò n ëé½a¾–À£á’Líä Md­Úø­…ÆËœ•z¹€îU su¡Õt( G|›?·JA‘uv´Qc1ÑY˜õ|ö¾ßÒ„³÷¡æ‹íY¥\hÖ´Æ¡oòíˆTÍ;šÐ½[" +¬Ô°£‹ÕÏ$>´hi‚ò¡š=Í–í ~²(\öêè…%)Vuy{AÝ?ºJ\âN²Ò…»û†Œ„ô}ø{¦sçîáW9®R‚Òs®'ÃÖ j 6Ÿ4üG6åÖŒ¥Yîi”r³"¦)"bØv1xÎT¬ÊŒ·Þò_Z½/üü),v¾™‰‡ÆÙ™¢f6·¹¬Âm5èÍð'®îY¸§6X_ý!‡þs…áUãëQEûK/`ްB_nê±vØ ÊÄÊÒ-ñ§Xþ69ò&ឦäN^wU~Ü(ÛJüžùƒç¨ì/¦ÁL µvyˆsyIå„ß:å9ùz2Ýí/¢ßözsжҞór›¹Ï]pÞË[HÌâÅåó 4w¶ÖÁÍwòçO9˜ÿžHþ‘q&®ÙÎ5ÇX€K6ØÌ'qÕß¾kï€Z<Ñù'⬯4 _ëÕf i%½þí‰Ñ^±wŽgbBÿxt˜.\‹iX‡J®¤D‹Ïš®Ó TØü]“Þ‰‰2—}kµHÙ ž‘Â5ƒ-ͨvmtO7)ΣÎÙX®íÝÿrkÆ!Éž.ÁùtèœCÌôcÅæn¬`À=ÐgFŒÎíRË÷NŽ0i-€hjšA!TÁꔽmMzÙ&@œ=S_‰’1u€XiL½“8û‚ÅÆ¤-^Œàæ1bé>Ö%òyéܨþQµRÄ9ÒÔþ2~ƒ@‘͈Í>Ñ£0§»D`” ò½‘õIŒÓm l‡“ï,âP¯× r%*"Öâ/‡vàÆúlГç·Kè´SyªwE]sç‡òqFxqKT‡åŽka]Bâ{É"fs¸Ä+¾.t°¥Œ%t©à)"¹-ÐkE&Y]²õ‘ç¢TÜDSP`_u@0ûv¨G.0W:&PMÕ`gî¶t°&Ýâa™H;Ó*ÎùÕè0uÿ´#EP èQnÖ|îô²-©j|´s€‚<À¥³AèxT’!§ï¤ Ñ×Ë|ôòÅĬÆ&¼¿ç£l¸dàÙÅ&ü€ëœ~‰6„’ 7ÅŠ·;gôâ•©èHaú®æƒ‡)V…^ÃiO>¶¯Å/äRVÃ;h­Ù¶i°a\)®@ü4MCriçŸ#N# ò/Nõ|ynòc Øiù'8õZAýnŠë0µº¢›W·opÕÌ ã+óDÇaôÚzƒ/÷7{€¾í} B²Hv‚M¥a$ªï䵿<ú¼‹*6‘¤¦èäàvîa"òôLç‰M'l5š:¿ÑaÅŽrkßÿJƒÈ!'·HH0±Ñw _TÆIm†þ™¸\2ºž†Ö?„ÀXQãm q{uJX"ÊÂàf(ò•nçQ;ª™j¶P»Ä°b…ü¸’½¸?À4¿ ¾í>0T8AýdäKŽê5ùþþÃhªƒcF¢©4ö¥´o£—ÉYÈMHGf'kñËgGàô.4‘}¬SϪ­3ª°†æ¿!3Ðâàˆ›ýyȃ~3Þ÷éÇÞ6º_&“~b¶Õ{¼û{BV¢‹ë[pL0W‡þÖæ)Au˜qAä±WÒñ€Áë;—Òé±xÕašˆºÚè¾Nöמî¶;b9µ·ªÂÚ÷í´š­i]‡“,ö!y½äª©)@á+$²‚@Ôå:.+à'ÿ:¹¦ú!£êèè `Ý$Ÿf÷ ñ‹¥¨û]2î¸Ðô%’¿¿œØ]{>þî 0"æÖÅn?~°¿¼`Y$‹šµáŸ‹È?Btö0dŽÅ^@®ý$æð1ëv¦-4`yLCKǹOŒ²Ê'ÜÙ×}ÓOžþŒõ¼b¶'0D¤Çªë7¨ÚÔu \¤C#å™®É÷ƒŽ]šÑ>¨©²†˜fÛáÍ1Jýé8&í¬)Æd p [ÓÝÕ¡s¸ÈoŠS.d)àÁq–3é„A^N!`ßK›xÁSe9Nq¼Ÿü­UÍK¬YŽI§—+ïNAû²06H—}gççWmÅû†z µjõJàt/t*{N¸ž•XM}÷´!´5>¬yÒM7 |HdŒY# ×Féɇ8:ù¥’.©ó_%Ñ+œfµÛ\D:ãñ‹É?&$£ó E<&ô÷¹÷ެnÁ®+Ítø²&+5Ø„>?Hàg棋‰.â4h=ˆ¯G¿ÞB-Ù³si‹D¿íÓ¤@®ªA0m‚u¼ž8ÿwDÈ`òžB,ûû)åqˆÖv×t`ôh¾Ü7êSœoôC¡ãÄÊ/D]TÚ;Ö-{ÓÉ nõsþ §ß‡U^£õ9š ý‰½ ^&nˆ^’­WðÓ ¨î³k¦ÓBx.o4%Ïœ[Î+vËýꈻ¦ÃWÔøMó 2Ú””U‘ úXvÒï>%8¡Ö¼©1H±8AÄQ§´"8ì%U~rϦIX‘øá¾#0û[„£ÅÓŸ­ò b†òì6¨Ó@÷lÌöJ@Ý@Þ&3ç‚Äwt?¾ÙêÞ‚ËeCjõÖ“©¥sw°–Ö3«vø4þ •™”UŒAº‡€vn…pݾF;‘ë+œ¤%˜¦«ÖyÓѪßd‚;¥ÑÉd'Ù+â®h$9ûÅ´T V~•I >çÎ.È ŽÄê5´ÀôJZ  &ñÿæúa-I¸[§\ÙŠ@'†2]jáïµ£}ì‹XéW\8–dÖÅi€.IeÙÚ>°l–ˆŽœÑÆþ·qyµôwJÃQD¸Ü£»9õBÇw ®¤¯ÐÁÍ<Î !X¬¢C?à΂ÍYž1Z34ÆŽà1®íÓFÊÛî·¶Àûj^(ðÅÛ)fàäƒÇ˜ÿE“þÖïUÏ*uˆH'4`üYš²º…ËàçxzÖ„ô¿ˆu£)¿¯oö¹k‹¾Wà… Hxõ?’H²zo2ÄX›ÁôO1E+n“©5Ûµ¤Âü¯ÂS ßêZþªxo—…‚úæþ¯ÃêÇ×+AµSu8’b(,ÄØÌé¿jq‚aY£IÎ÷3ÛšÚ»Æsˆ¯¥Å…VQüX&Zê‘6,³\­«<Š3‡*Œ*É »èûm®j”ç»ñf¯U ´¡ðü26–-Ú~VMšHúZoFñayK%8 ÃA“ ôžû¦Br¶žè=ŽŸè«DBÌbH[ÎãêwzIøVïî!‹óÞtYôñÇÙá™:iÙÈÄÑ%Ô:s)ŽK—‰ä» N«êî¨R€Tu€çqAÅsóZñ£(¥ÝCŸ©œç6]B…ð)jö ð¶öÆgfÀ\ó&~õØDØ+¹{έFõ¹hÇ+²¢¨¯ +ýʤ‹É°—8¶¹Pjä ÓUÑA9‰ïnP¾Ó€Ùíté=Ê%ó×Ò›äroAþ¥.¸Û3<¹oúÖjx-ÁõLªr„s ú¨…"G4ƒŸÕÏÀaƃ½ÌÉ û§Ã`ÇÊz•UÈ#mÁˆ˜Š:So-àËÎ_K—ÆQ}ñ›D†Ç~Þ|>`TN&¯¦óÛM9ð+OJüV‰ÈO úSÒE¬Ú} ¥4ù¦¢Ÿ,ptà¬þ¬îÊõú? ¾GÙ n­Ìù:ݨ‰Î%ÌÌ©kˆÝ—,{ Í!I;áH®ÜÙíû#_¨KÌpr;ÐN¬æã%’uDâÖ×É@BÀ±Ôô[×taU‹ Gš·¹¿šr×R|„»tê®;HãªÀœ@îüð¢Î)Ç~¸óǨ€f„–7­BçëLD­8q~· a5Á…ÇÞÚM”óR™ægêŽH¥Àæx K<ž«lKÅ}Ÿ?vÞ,²­qø‹·ˆÞCZA4sÄòn 4TFÛ~i‰oƒ¯6”¤¬ÎºÒ f‹…ž»(1…\”Ù>àjóL"që*NÝo æ*ë_ƯÃ,Ði‹Òˆ§ž@í•e@Z鱯¥.©÷LÜ[WÃò‡\eÿ 6ˆ]º&…¶±' Àƒõe!D™cÁTÒS›züÈ_|îäûÿ×°ŽG&Ÿ8]+âôr’•w——XJ¤”(sðG9T»/Ö”¶Kc­Œ@#3X²ŠK&r3úm¼×&اžº-¤V/¹æ¦ò› yz+PÊ Q*ï Övå/$˜^h~ÙsñH¾×8‹('âζÜÝýòõÙòäË;wú*ýz¤„99·‚ñ–À±~E]Ĺ|™)¶G³ƒgÀyv“í@v/ð¬Íþà“ex<é]üinÅøœ,Ì€ÑeÉX+ñ¯z`ÖÿDÏéW-ò\ùà‰Ã’UýjY˦„Ia/¯âˆ%ÅF/åÇû˜²=t:°PýÕø+áär.M1Ñ¥‰ˆ€€¦K^Ì‚ÞCíÉz˜ ]й”ã¿"`ºÃ 6ŽÎyp£º•l-lâ‚(ò µÞÙG¥Ä£Án³NÀ®ÈÞ`Uš>Lá&ò™§¾ÊrkDÒ‹ž€±§ ÷†|®D—ù#g— !1¹ïâ÷»¬ëp]…;èÀiÎü™Sg2àŠ£2ý ³öœº¿Le$K‘˜ŸcÒó+—ñî”ñÄbRZF’:²HëÛÿÜú!Æb×_.L‘¶úÁf+•¤#ìÇÓº¥²¡ ÿ¸l-ï 0ƒãÄTTîý&ûwkM—¨¿ÄoϿݛ­BË—j%娊¨Ålaë„8?Þi‡²~Œ'5ØWVP€gq@lþTf‘x³A¼öƒR-2ß¼éÃ…<ø 0¤C@£sf”ÿuþsåx~M¸¥˜uÉ&0OE}Óëfÿñ Meã2„b­p€”}–Œñ9‚˜Ìül;Úmü’\²¬T9gÔЋðã¾Ó("ÖCÊ,â–á”ÞYÂ.ßžT(]ë¾{mn²—iG æ\¼Y(dq±øï- ) ¯<< ¬M/γ9tK"HtÉ‹ÚîûjÊ8šw!¨VœCWj£c?ÉZŠh}Åf1DìÑîPá¬1?eí¼`9q}\­³ònf³Äªʶ’ê9Ý[Úòïgá뮹6kBÁ×饡–Xž–Ÿ“GÑ_ë½q•¿Z9‚ù×ô_êDyf…ÁKoˆª.3~˜FAv¥¡x~y58lãîèuzºiVËâáˆ*°gáãW«ƒ„(uµÁ/=µ\î¸%º˜S™ú¤ƒ¦Âo^®Ž}¥\¬âò‚d­Ä~é^ŸaZ‘³xßT®r‚JæÛÀÚ°mîþš_&“u&:¨éßQMa[ú6'ý°`¶^Ž£ÕûêeÛ,º!¿ôПÌj/N†ÎW¦¬ßä!ì=ëâ>8ß.$!æ¡üŠûÁç^0и̓ºÚÝ@³æ2Çœ×&g}Í¢?쎦òª2Fá°®ËÔÏ„_ã¡õœØ`r¦öÁGø“–¤ ÛVÂnºÅâz•]%¿ góB#П+ýHÅ"†É—éB°œ±žÆ+’œ÷ô–“™4fΊ<ÐUzrî(=ÒA'¤‡ôæ÷¯Á9ªžÍ§vË'SŒMáÃ~Da³ÄCgT>¸Â!RãqÑ{C&p¹#Σ´xTÈž®ãúz,PÇß -cÿdn$¤éâX¡Á_\„ƒä-@ß®­Â/LAÿÇèÛe?ˆPöÿžœêÝ0à•Áq£x£ò‹\”…À "(oî¯ DŒ‚ÉLž#[®OY£4üÃnhÀ§r‘%TƒM>¡K;*{jI g`ìod…â˜ÁkcàÒà)ÃRgA—1Ÿ¸”•‡|áî?ü¸ö-–ÐAGäÎÀƒ2'ÇÂ6‰ÉÑCz+xfo˜cW±;v{kJ!nÜX ù><ÁhyëælŽ©Æà^¿A¥yfVASõ¶3њۼ삨sa{šÛ‚ÆT ŽßúöÊŒã¹ï6 †+¢Äóþ&J!ÔvNÍ kµ3m#‘ñ š"f£žqÐXÇÏobÃT \ècÑ ¬`=/˰ÊPw²‡àÃ,¾Ú¹µUx}­gq8-|?Ràª`Ç…š×\1Ñ®ök1îXêföGÚã̹SŽ”:ö¼#©•¹/YÚŸ)2š™Bt6 SÂEH‘x¹`ÁIÜ$’g/μø£ÅKI¶‚CXaîþ*ž"JŽ˜¼Ýý=ëxÍ3ˆjI¬GŸO`ØÆ¨>y›ÏD$Äb"ÓÐçXZ­n¹áÕš@rT“Ô?ë¨<‰ÿi>®üÔÙ!(ÞS…Ôy½DÅÙøGŒåý¶$FÙ/õÎ=-¯»!PÇñÓAž€KgÑ`ÙoIo7r&E-ùòæ Î©¦{øÖ‡j”¼…!˜qoÙPë¬(àãrߦµ?ñ–ˆû]Pgïxâæ¶ûvúë Ä8~?ÛPz˜N,«ºÐ£…X°“­›BlÒY‘Ëηt1ˆxÂ?ÌÙC¦äu$nÚäÊ!¨ˆþ½t@ÃL‹MAK8™\aÁá¥.w)¨kª¥X=*c–("Ѭ4KpiFƒìJ•$ Iúà+Ý6V£mÅ—˜Øpdæêæú_Ž–/éí4#b‘ïªKãËŸçÛâ‘uÃ?BZñ(é¯G³OáÇ](ÐþÁBÇÁtLÞè+„_3- }Ó‚7kaÌk§ì|!¥•ä™÷u»úV¼pOƒaÒƒ:Ù¿#dŸºúSU祥±®¿Úšs;òó*ö>V†=ÒŒË Ù.„¶>Õ[—޹© Ù Ó?(a»œŸNï‰kNpïx(¬´5ö´K.Íë¶€ðë®ËæJK\4ž÷½ûbÅÎz‹§Lå?­ 2 rÞðºé±oçê\J“g¤õ¬–õÏʶØù 5A¾P„a´€U5}¤äÐU œµl¢¾ú”Q²¹„ÓuYÃÁ¬%Öš¹YIÎ2—^qæû®QÐs]L="2&ÜA‡LŸQÔ ¡ÒÐÅ@Ì–J]›ˆ†Ð¶2X¦Ç+š]Üq.º2?Ê ®aó"eÞ˜–¤X)[U¼´ô7S‹†KMÁ´Y8¾5RJ!ž›zXæeS*ìþùî´¥¯\+²VB¤Å­¥èËõK=P(@ºšÎo(L±CötÕ¢K2§Þ-áYŽRÃ;冠Áƒ&‚.ã—‰æ8Bíå_mG"a›xã^Oº±““àYq~mà¯!Ô6Ru®LkÕW°„FdyÖ¨´ê¶” ‡`Ìñ9[FšÒAšÁ±Ü¿^Ô—Š–:[…‰Z+–•¡ÐVžYGÍÄneE`ÝøÑ±bö:ÐÎ2»ç~ýå_£]W¯˜Ót"D{ýÊ·g0’昵¥¨… ™ny2â½e’Õan®XzÌ{•IÜÂd/[ãæ×¥ºÀ׉ߟâjBøx[ú<µxó…ŸÛö ëÔF‰W/­#Ê ©‡{—C=Iè”Ê X²N‚÷ù'ä"Yÿ¦ÝwV¡ÚÉ"]‘ ´jgU:uVÅÝÁ_ž,šÔ ¥_+éÇo'UfÞƒµ`µ/‚4&“j0£ìg@C(8ˆX!JÕš¨Ô{œêÿdv’&ÏýX]TÁ³•ÍeLˆÛ”¬„È2o¼nKônnd ó®'i}ÝI Òn7°Ç ÕG`:èdòŒ¬ Ö• A`RTë/ ©e•εaÈ#™ÿ–ÛW;Úм\ÆÀºš=4ü„×ü÷×!„o°®0NaRpS‰ñ¨z¨òƒ"²c°Ò"ÉÝ)v±Œ´§MºÝÁþXµýa¢Rù Mw£,_ñ4¸°¸!–ÞŠ²‘“ŒqËñà úØÎÈØ¼‡È{§lvlª4¼0©¸œLeO‹1¿næXOXŽëê¨Í·?ÃÐÄÖ§ÞcpúÒA„ A¶†ý›÷#¦¤1²Á5¬ tHÚ.pÏ‹Lñ¿ÄÄ-V{²n2qNÊ‹½ˆÍ8XGìÜÑw^ȳ]¬+„d¹Ü9®5DAö²¹w††Ï–küRù "žæ&ªY„Æ9:ÂaÓ—ü€EáVS £µejµ5”­‰†á ÅB9ºø×½G0q™/SÔªº26!}š34¾¢aFl mµSþ…Öj«£µÅÓìÀ_÷Òz+àŠâa/Ñ£¤Î ì£Ü÷æÊdÌþ"2ºw¤¾Î¢ÁÚ_ÑÒƒ/+5Ðm¥^› àÅÌ;±JEHÄyÐ\äzÓýâæ.ýD¯œTcƒ\Ž.Yæz¼k­D >º$<1·t°5‰í&‚â4͸Ñ!dLVŠHhU¢Ý£¬è¶¢åÍÊÅ Ÿ0n[)dèù<€$“òïÜáŸß²£ª3MM²<ì¤무tF†8ÁÏÞ‹f¸rpÒÖœÇèÞÐy ¦+ü[ªÉSú…/ ô¬‡ckÝØL¡ìJ°JÃç&ñzùu´÷Å”e“E„óZ[–S]¿ÏÑíHv27Æo'êÏþ·¿ ¤rV4Ëùò ¬mյϪu¦/Åü×qøGó$)™"DYÉYãý™=ý‹LËj£žßò"Ü¿,ñÄÙl†÷h\Ó.Êô%¯Ìˆ²ÛòðÖšñ3$á‚Ø¸8¢6>NÐs«>xTvzƒ=å¢*x8 Íîl]> ú¿^ÞøÝÀ;»ïãùhªL-‹ù…°ÑþNœzíšCRó+„0lÙ¯ß^#ÿà¸ö§.ˆ q"! £:Iîˆïmqº‚O¢$ìOÃÙ@–|CØÖ=l‹kaÓGÓÏ‘†17šhŒ¯£Ah­è}Øíex«Mtjä’#˽|õÆ_ؽgùâz AÚ`•x …¯<ê¤ÿRìÄoþ!æ(ä TV£ªcÓט±!°O2•  c21±¦Gx&‰fthA$‡™ 9ËOCžfÑÁ Îü.Å•¶G¬ÜæxA—ô ”Þ¥­®Ê¸vÓ04Ÿ½cŒT¬8ñût޵‘V¸'¥Ú³½ïÕÇ[îɼlë¢8-Ññ>qC ’èôÏW‰Îg‡†ë£ oeÂócðæ‰vtæ„G¸m“jðÈß:ñD§…¯md¡‹ÊôÃ-,s‘˜júƾT/X{§j[9&dÙ°x ˜lŸäIr¼.7[ ƒíÀ³oÈLZ‘2ö¼ Ý’.Hí¢²QEÝù4âóF\ËT*ˆ¡£¡I)z!g_Â0hWY˜ÆWám•Ĭ>(€ê㦰kÿº‡Ñðø˜‘IN»ùààãÚrZõy#Ù©ö 9œòèP£`§WùèœH´NyQ“«&®Až›•µ§¢ÞƘÔBÙ)XÛ›bê^»<Õˆ{šiµ¬ÿUëàŽð3TŸÝAù¿—ÛA <¹ÐëY³îDèeFÒ² Ç—€YÏtÞ`‡—»žÃ¨E@äûÏþ3h˜ [ãeÙÒ!ÊðNŸqœÍWŸ/‡NCõÔet„‡g%¥m̰Ór~¦š·ImWj|bAÒ½°ÉÆ„†wÙ1Õ\4$m榤Ƅ;Â:ä÷ÿãÛÛ7™k¬Q|]#Ó+Nà XÃÂã­Uè—¥{‹Æ¤˜¡¡‹·9ÿ´k2ºåqÌŒûLc¤,Ÿ­±¹Gî\ì~V¥îþŸø@Bˆ¼©ô¨@‚Êé9é/Á+¦¦ëtª«d*à o˜HGI ¸æKP&o²*Þú:ë¨Oâ©ì‡8zÿq”cí/¯ ªYVôb¾/ñ.¬T&íäééáI¦µ54¹…rÄåE£=RF¦#‡©Y¾ —k¯ØÊ‘yš\³LÃHJ…Èîg¶^ \´Ü˜³ØDùÝ¥o¯Àð0Æ¡dê~Q¾9kÇæeYnÏR¾ûÔßn|ùÕ•ó|O*$Z6…$xèYàðÖ°9ec‡§ŸÁÝ•óÇmòåÍk0@‚Ê·²H=@ ñá¸$¾ ²¾ëvoüðËç횯Y–{"ÇLïŸly{5=‰æ‰à }X«Z¢Âߨü)û0Eò3µƒœZÀwé™MŸ^¸YK¿µÚz‰oôr6²T’Y°Tá@^Ë~LH _h%x´òkΰ‚râ†ü ê½Ë)^!¡È‘÷#0Ÿ”ÔÀ‚øãý ¯›Ÿ‚'ƒEåÛ.>ª±é²…;Ö뚃”>ø8šîäq7‡‚ìfâ¶ î›-vlf6} 6ÄKŸO ñZDÀ–‹òm¦y¯ð(Šz"t)¹Hˆ½$phÉBUÚîïø‰Â‚à ƒ®N¹l4’ ÇS¼Íƒ’¹”X¿’jU‰è™Á¥-Êcîg¹±ï•åÖ1€¼ñ/4ߨp5qMÂ*é ÍžB­—À‚:®ÔÒ¨\´–—Ò}Þ³îŠ%Ø´ÈK>ÔÕlŽ |á©Yéêf ø`y¼Ü=ä5¿ëœ½Ç­•÷•È=©'g@ñ¯Õt)"©YÝàÚ•]z/-“wS/J?þâK¹r¾¼¦I2ºQdRpψ¨Ó@×¾…º›‰/À@´û2•Å—^ÍÚÓy©Îãxš™ÿn[ÃÀJ"?Ÿ(K_·$ǘ¨ ´Z© ^íõî’”;uå'ÍÆ ­}Tp îªv.ö"å1í£—+I5%›+ÑSLIW®~Ы~8‹«öÿaèçêþ}CÇ=£å½` Ƭyd:OŠÃ¦Dfu:ªñ† Þ$†„UË8\Ú×Cu²_9Ü1Ø)…Q* çg3ÍŸ{HÕ\kñ½}Æ òyt Gý¾qDJ XÈw ko¶ßÕx_|Ú3ß,o忈 y(cJåXdƒÓ&üªbÀ©g5Q‘™Ø!.£ou¦ØØ a.“ªü;…>ÂXÑøÞGà¿èÖM”'ÍÆðZ>ÇÜ /X 8Oÿ b×¢í~µ÷iyñð3—ûyÝxã\©?#›íy¼4û|3*Ì{Ö¸w’è-¼šS;A4óÇ¢ÄIõ‘ÕÛ+/¥·y¾?÷ú1£¨µqT{~}~1—‹·Ê°;ìÂ9[HðH¾È§hYý_nŒ¢· { @±ûâÌ–ltGná“Ù´mTšވ̣Ã~KU·\Ͼî uìÛk=å8zbãÇŠ”uœPþI—Ú~PÜÆd ºc¸¤ ÃÔËÊŠÆ»±ÎíyéË.àIý² Êõõ¢“¦ÀõUqêê˜|×ÐãC´•¬Z³–¹Ã Y&›vóÜ")=$ኙװ±_BHNK ó‡bûpudå 6´K)§n¡ŠŒ!-œ+âPEu…eËá!XlÐ #—¢çÜP°Ï5ïE?g9µ³ëYuPNiUÃ<}Pf «ÒNA†e³Üd^¢`s¹­è`#6KY l¦æ+‘08T­˜·§n›Eßam¥ÎŠï‡4Qõƒ¶ôÈt%TLú")75øvLºjÉÔ¸QȨ³ÜœæPò†òY"X6Ñ…¿á["»¹’!ãúÜè ÅsÜ€­IÌ@=†R¨(ÝÚq «Û<N½=¬·f?€)è<$¶Ø£  ˆ£¡‡¸±„Œd—Ç]µ+i‰¼ýúØ‹¸£ÆŸª¤o5 E΢“[7~£ ßl,òZ¯*Ám§z¹±O#Äf’iË% ýöðW”h]Añï™ ÙO¼KðË0¾y læ*ÿÖ$n1"FŸää:Gí‹KÃâF‹4Eƒ¹Y9ÎJìÏÆ#SÃÆ¦§ 2ÎçꦷkéUòî]<ɘ¨Çõµæ)A‘Îã׺W)WŒ·OZ…¥‘°Ê°³¢ 5ÉY[!9wy ®ù+ñ¾3e³^†Á »am‘ÕHÙž$Â.crsØ2¹vqÅÛV¸$“ño=&`O\Ä—æ‘n#>N-J`w׋À!0òÂE#¯À¹Àgeq¨}ƒrNC·”ûöý9W6Ô:xø2½&bÐ×%Öà÷I—}éŠpÿ„Ä´ÌŠ:Ë  úåß•Ým­YH#=Kî…zuw1ŸÏÂjjþ/ÎÊJ ø‰¯èäqæ4»ðõ…æ=˜¼ç3ŒµhH†\zàW½‹Ée¬ñùÏ. Th𺆉l¡ÇRS»T6ˆá¿u¯ Ùé7œ9úÛð>d½=ómoyŽÿmí)cÌð±ŽJfÁ^œ i¸Ð…UR]­çpEÁåÙ©ƒ.Šô—räªß*ñú@裫©é‰EŠKÙq^”ãÌ“{}ÍjÁ´ÏæÍØÂ® ðx%<É\£Ê±õ~ÂÔôŸ¦Ö¨ßùS‰ÞâÆ+rƒ`×6‰ßVÑ‘91 ‡Õu¬Ô´w§‚cTbµê.£/äÊ›XLÛòÌ?4.…˜G©C5*Åâôd >üÆýû.½¡W^Ô¯»ŽÓjiž°øÌ÷p†áì¯ÝÖ£­ŽÍbª jê-ØîÝÇÉÙ³&ÁWhóyÇÎ7H× E/|©ZcÊ—êt“ôf#ç @ ÁÖÂO¸/¶.ãÑÈ1£æ‘ÓјKC s>ëeT ò5ÁÅ[Æãjä¨D a€Ïwn–¹‡(ú×dÚÁÇpH—I&åY!œÉOk –¿u7ô0 B§êŸƒ_Û8Wi8jâ…Eu?š³Ýås#7 ú¼¼WÍ‘K‘u‡¼“¾Iò}é?¤9\Å ES˽oFgS ‡Í'¸RRŠÛ9KÌ€­]Bþ{Æ3Ó@=yqLƒBÚͽ~*hPéïyoŽìLÙÑ+‡¢¹rìNF_E¡á›8§Š9 PÑ^¡0þМ)$amºÜ‘éŽöö,šþt–†Ú2öˆ ÷6Âl[^ùxî?Š‘‚½ _Sp˜ÄöBDñœãS¶f²µ¨¯È©ÚªÎ’¼çY!¸¿ž!«s5¨‹®3;c€´ùõ§¸©˜Š* L¥„à"Óä=˜':Šj…ŽC]t…á^ø÷ĸK1¶¥#†%ÞIj>Лp;¾¥ùZ±ßÜý–aÖNÆ&ÔÿæF1í­}¡AïÍJkÕd$ô°üM‹;–J"ø–õ‚NèÙéChC¥è˾aó­ÛF³Ý^¬«öÎóìJÁXlT•~"!»»kO53µ9 \+²(×Xsb&K$í½T/ë¦JL™ÒµO£ˆÛåÁ“‰e×ã[Ë`Ô˜¯ca³sªø;T©Ñ»Ð”[ò…°Á‹y4\ÆEìIPÈ´NÏ ?1"]òÒh1;C2šßiBÑ$l¤ƒ ðîà{@eDþÁGE“ØkeåÍOLšËh‡Þ‰ˆàÆy¿1©ÇôËö…Ñ·8ã³jkµýF§‚´ÙúÓ–aib*ÁÚSÝú*† LÞøvMA¢Bê·MS‘ëË7¶êÔzÒ’òÆÓþ¦FèMaQàIA}›fS¡q¸ ziå°Ê°Ã!Kƒ­(pdj•íññ·J†ï²±ñXQžð}¨LÒ ÙtœµM× iØË¯R0Ž >t8îT«–:…a»îê½³ ºôgihÝÐ,YÆeÌ'Æó¬ÕÛ`¥cQ¨ZH°EB{ 9²ú›·‹Gò•’>ò f¹=Ä ¾Y"ŸŒl¸£°ÁA÷`ùM¦¢g>Z@˜­“ž°½?ÃuM´œÒøDz3ÉÌö¿|¡RKýïÁn²[ó2Hþ¼.¿‚Ç”^s²è©ÊôSIiþ3XºoBöbÄÃîÃÐPº¡RæÒ-uÀ£ë#&ºcŸWK®³s6šxvCØí-Çzàý¿´qqäOÔ7ãØÐÎìi çξg–š}Ÿ: NÃK^Ñdk»úÂÝÝLHSHwîÙô]ûyûu‚‹Ôy[+ÌÃjŒ%ç·Äþ‡Z –Qhn-e¿»²Ðu/ðÒO¥`ýI>Ôòƒ®RBÌ• 0›xX ë$”Ð\!,èOd"{öq»¨ïôü|'5,wñ2~ÉÞÕEm]IÓ’ë”{Q‰S±ÝœdGŽlEj…gÑî3$? ‰QøM·ÓÝ¿(`ÊÐ64#•̆‘çƒä!»äy­G-Ïœ“¤ÀjZH…=Ù³ö:g‘³Ý”‡'Œ¤ ÃÜ>¿Ù=dþ9Æè:¶b hÝŠ¿ ÉŠÇ~t )Õ¨½« G‰Š+ôõèêj_Ne¦> AHLp‰FD3êâ¶À•â É$GÛiì,•’“®µœ)Ïñª ð7&baC‚aäm­Øw…ÁUØ0ܽÄPfié=¤ÇÈr._ñ9i)J"mÆ_ífÔ¦þFq6à†»ÎE…Ê2®Ós¾‘%ùP.­"ËIŒ¾=ÀEÕ+K@´¿é«’šª®óx³YèU±¶—ê°xZ¯õID4‹g÷ʉª>¯¶©G——bÙå47-¼a {ªåäÒ3:ÂNUøÍÁDµRÓO?"q%®’‚§‰V”ôÅ Œêªí×-ÙƒŽ^çV+e,e#¶”V¥÷®RÛÂãrýáfÃR¦z½á‡R”Rª.õ›w3‘B½xEÆ!EïÅþ0‹ç89åÍ¥ôm˜Ì^êûs†Av®%,Q/¥!Í(êÇjxÇVƒèPòË…@äø;.߯ʱQ (ÚQ ض«òþ`¹D›ªÈü!Íüä#õjÜÞ]¶ûÅËb1­ZºÂÙÍý=%‰¬æû µ÷œ ¢9¦jãòzþ´;¹Ý'w¨Ñ’t¨-«µ­)LD~>n#t€SBÞ•á GàÙ-e·è9ŽY:=‹d‹Sá¢SÂØBƒ1¶\€ÅÖŽÂp.tq™¼<¹ é¥åÑìþ%ø$ïÂ=þ¡ùPN%ó`×sÛ75ï?Ñ?I#a.ý ÕB‰s€*ÑÇ~’¨]YAàO¾kÖáfeôiåËÌÌN¥,±ë\˜pð¶ShÂs«i¨¾EŽ›Éÿ<ˆ^Z­fv]Œ-§\¼ÖOWµy](–òÔˆS5ÂþŠ•ÂÉàP2°*u’ A©ÜœÄ®=-/Ù(Æî&…PÜÀ*ë*§$fâ¹}ë8Ò<'£²˜ùÙ6¾^VD24>½Ýêé¨% ŒÝ’}Sñí±L!¤%š< Ç·<¹!p5”!–Í.F "é÷oÄÔ5…ëXB]µ_.w»Ãçw¶x(Bž·'ºÙ~š§FT­Õ‹©UæU°7{¢/ó-+ðeo aq†ËuZ4̰3¢üoA6ägô‹¢èÞƒ,0€¿Fx%NSæðž¡]ží_¾òš¦Î…¨S§ µ…ŽÑ ií-­½b¸œM7Ž3Q˜io¾õòø‹€ÍrØ"ïAG>*¬¢b%¯Å`‰ï=á7‚šÓúΑ%œ£Ð‹ ãkwUŸI§/£ÔN€Xuu÷Á·_‹³P€-­²¥ØðϱUc'ÞüÛË‚gÅí9Å V–®~‚é9õ¹x’qVÞàµê‘æÙŒ“ÏšGÕÉÔ¡TrmýD&ëtxð´SåvÆ 9ö¯œRÒ‡Šü<Œ]ü«öÁtÀ‹0¿œœ³ægz±C¨3 øhÑ\0˜‘ƒòi)÷ܶyÛÊ"Ÿæa§¸][ϘƒÚäÁ;œã*mlð[ÖŸwº§{Žé:~oh,|4¼—Œ|æ [)#~… w˜-^®aÏê%}„7`µ:v¨d¾C;€ç]b¦OÜ@ð{. Y5xèÔØO>äO4M™÷ñ|€W÷©‹ÄzÞ:„΋@T®§›,é¸ tú¡P÷Ø-Zz¨ú¡½LrV™¯Á˜}T½šxhÞK‡Áœr›6¸]UœP\A¼ÝƒÿáÄ¥y‘¤ÈU·=î©À´9†n?NÿL+fÐJ Ë"œ &c±ý€j:\uJ¸ÄM¬7õ‘3\Ý&꺋5èBŸ0.ß"šòŒ0r"V|ij(‰M¶ºp˜ãûÇéøG,GÿÖ¶©¸ôm(A¤æ2¤WÑÊÉÖ?•/Εե>j+)ª^!¶õg}4|Ӓ랆t;^2z60±—'Dôωû°çïÎUK½&y&P×·;ªÇUÀ¾Öž‡ÍêUkó+ïçê9¼IYäß3§±£•>" ô‘ýfÌ™VyÊ”%rÑïÆ ‡CˆßmOZ™ŸÀ2Q\yê'¹šŠ¬Ä.Ÿ$âYå3ð=U‹2R:Tô"7¨5À@Õ; ¯Ò1»É÷—9ìù£T^UÏUPù‚¯]æ%~ ‘¨= ¬g1Z¹€rAzW);ºZÏ]8o?¶µÍ¿w*GÛsàbKB²]°ôóK×ÍЄÍyQÀæ)äï1j …ñÞMEÑ"’þP”TÆšÙ•¨UmRŽÆÛé[H£æÿßýÔ—ûÎwÑ7'#æÎ„ÅÊ´m$¨H½‹i­ê®°¤@pƒàuoµ›Gn}Hwäƒ  Õ¹/E-P½c™J|M¿ÄÆAgw­Êû!Ú$JCêðä3§Tcwêô޵Èü~Š(뉓RfMnüÑÅF¡ÙvµdO÷” xÅŽxË»•–D_†1êm÷ ­x¹ÒÊ#D³ A lw‚!S‚e#]@b1yd ekR!d´TÚKƒôÊÔú¼ÓE©…œYƒ¡CóØcÆ .©ÐVX™”¯)Ä–ÂüX/[ªéó&Fà_°Óßžº¶5õvwg …æ|“ÁŠB5%dKÿ¸Ú3[ˆã^ûVM£3‘”u^³ýr â¹B;ëW'7®6Øøš²Ù)ꜫ“i›žñíÕÌ\JO`*)rk»ø<7Û{õ¨¹œ ¸f¼ÇfPZŒ½ØïË7ì‘4+>¹‡:-%q.†’»V uYª¬â–¾›sdÎ*Ä”ïa8Äþ‘§Û |#‚Àœk¥ØèŒô= ÆCúzœãâN¯4>«ì|½ 0+BRy¯s.ň"÷÷Èxgdµ9¸a3¦eKýñˆüŽÅzÌ¢‰¹¼ÞE;ÃÃøÃtÉs³Ÿý7t‹žŒHŽ„Ã…ä¸ÉÎg1ûŸ±ÕÉýØú‹Â•»yJ|Fs’Åç­ñL\5°™4ˆVæA³sЙƒ±Úû®· ‹ï‘xã~ÿÊëÙeQ€? ¹;j‡…¢t®Z»÷xuçÕÛwï•}—ìÝI#ÉóÆXH ”;LNÉ¿C£-'&ñ¿lXWqªÿôdõ;ü¼µÍ‡¡Ï»î»8 ±WÿåŽæÐ¢>Ôj§Ì»q$Ïy1¢€ÝÃUª‚ÓùîS²*µ<ݱD¡˜¶X1]òuôèd^—8Î)Rš!Å}ß ^Íñ葈žpåƒàñ´CÙX4=ŒÙÆ:>^¦¿R&`ŽFoKâ|A ÷fìþt¼bk®?dgö‹„É6ÄQ‚UðØŒñAûeþ-A–õ@> ö ±áY™í§‡ÙØm³Œ1_Ä¥ù Ö\­&¶ „}Ñ[B*ì|¼ñ ³q„#Øã2ÇסPæ÷k¸ðh¿’þç•ÝÏŽè{³¢?·ƒ;CÓÁ~víFyC«•uȂƆ­*ZÙɺOçÀ S,=„¾‡>_½VüßÉÛFý¦í“šª¾ŠíNDK†ù,ˆñ:Á%HcÏMKT¦c†_¸Oкq/*€o‘¯ê©A¢¾ ÅéÐ̽ ?zö뻥ÿ>‹˜û×¹6>Ƙ…ž7ì8&L_»~N¨ÀO2ˆ ÛÝŸ·ØmS¬—×3+éýc+fNÙXŸÿÁ`Üõöm\þY Ónˆï˜´P˜ZBK×6B”@@ÝÂò†ñü” £¶?àÊ’&18 ×KŸåi6)ó6T§Ëðê1ÐÁ:x‹Ý¹ÉïêòË‚§TÉ‚&V™lf“Jj Þù½™¤ Òe¡5£V#d4Aoqòäþ#He5dµ´úDÜÐõ0êa iœgË­’ÿo1‰jD)ef"ŠÅÒ˶yÿ~8èΖu”D§û•ÅDb,˜ º|ö"`óK|j,ÞCí(‚b®xT Òíp“ÕeKv}¢^ÓŽ]9³„— —¿ÎÙ§h[6ýeàÕ”:Qc¦N†¶¤<„Ô/™êÀ©̳l÷ Ü)sW¦Æ+1_ "n¨Óÿ6-(‘GLÅñZ­Œê¨I­2Èì]I `-U€$”ºSûïSYŒ¼¾ÎŠå +ØØF‹KQþb 5›·Z/ig´‘:owî=Uç ˜$V€í?ÅÂ\쎱oEºÞÿM±ÕC2,©°ÍÆú¡trñ³É/½µ +ÜFÐË{“&¡Ÿ·gp‹_ pæÈú€¢_¡SºÜ7¡øP—çútÜìÅøZò·]ŒªòB$ 3RÚ w(nvцV1ê¤Ä¡_>θ’«¡L¯ 7ÅÿÉ“ž&d´ƒ^ZœWpž+é%þn¢*ÀQÏÞe;ÿ^kÑáýP"á¾±²ÐJ@C‹è"Èœª–VÜ҆ǵ%<€9VQ¯ÅÂ+Óß“!ª@/ ö CO˜¡5cËq³k8¾¦D£Yù-j‚Ëxàñ2O?jW5†`ÁÕLÉÆeáÕÒ¾ hòö#¡Œ»S V¶§ŒÆƒúfn,VQñêü&ÒC3 w‚Vî¬ÒE-F­JÖMlóài2i\Bõ¢ Àx3Ù9azN¯ºyíXšÁyâ :«Õƒ}*¡=kéMLuÿòJÓcü1:O< Ñ/…ÔãëЯ){y?° Ö™v&—N@qÙëµsÜÄkL¤µmÆŠ‡î¸™<ÛÉwDæ_TYl ¤L¸›XÅ·üÔˆœIcZó÷•eí¾&n~R|,ùo¿s:à´  Ûïô¦¸õè…êu¤{èO!gQÃÁÁ„ø«cÇËê´ g;ßhVµ<¼™¤m4¡Ôb¿8eçmcˆÕ‹¹¢ñ){‰nÜÝŽhóÈfåÑD”ñ>ŸÔ3™—ÂÎï¿råwD1Üg1ÆJÕ^Qì]Ô´YXÍQ—ÏÊŠ+_:AdÞ–^«³ƒ•À èù[ÀYÖzë­¹g–°$*5»>h6—Û§¦(›nF) Íâ} Áð`dÄnõ\ ^Oƒ“/ Þ ž^C&TžÎ)Ï`¨Ðúm£Ü,˜x0¬ âš% kHô«P ¨]ªƒ/gý•°³Ü5œª¢šƒ&©búÃñBUlÑ™òüõ†tÌãsÈUìÛÀ´Šœ;þiäxµÂÖS ,4&®Ç˜Tnd²Õ·5§uñ¾ò)ôr†ÅÉÕ5]è\f-ÿC>±·!ïÉ¢T ó?!Nbœz@Æóº—#@@ÇKÖC•²PÓB` yß›ÈäÕO‘už™-ž8Œ‘{Í+°ìS¤’GäÁšîŽÑ%a5اH9åÿŒˆõh8¶ùöTI R äÇ)þè"Õq )ÎÃÅ\Z]ó—b¢³ß ×'ÃÕ¤ÓÒ4+_as@™?ÐoRjÓÍMPGomÓ3âR¶¨Êf-½H»/šh-œ²*Ù©¡8ò¾Äþˆw’ç.- @žÞ  íj ó/fDŽMÉ­ª,ôÞadËE€;óÎú<á3¦ÜDŒ9,Ö‚V*n¤'[+ù#¾…~zz¶{p/.eЬ `ŒHÚå€òDñ¢©rãv_qñ™ETÊ©ÖuÞrX0Ìål´Ä?ž½‚‹¦&L²™jRÆjJE¯`µ÷Ñeii: MEš`UJô­2ÊàOá×¹€ ‹µ*>>@ÍÚ—µÃ$p¯t$X}[層¿Ì B§I¤@ulYCµ°ÜáOÎcôkŸ¹ïe|þ7tøÞƒV'0[þ¡SÞ~R[wþ&žé‹MNŠó; y;’°ï`Bnä,K´æèi?H/JÞW,[ßÒ…ªÓ&ßݨ¡Ü~ýû]|[Äa¸aÊ¢3 %×ð"ÖÓ<™†ºw`’tiÇ&ÕÓ¶óùN £¤ì}ìw-ù`,$æLFo·7¢%B25fa³d‡îÆ[è†ØE¯œì‰LÇÌO½D£7°ü:Ô0Eè qc}Ö\t­FùwÞ"·òø c¯Þ¬Ü2Óº²úKPCü*ºt…ø^µ&gÊû64ž¨Â(–­#ÞôÊɹ¬_g5úFÚ¤5ðÛFù±äð·ûSp*ÕmbFÖp×éþDÛgKܸ%^ý¶9Ðd€–Œ`UXþÒ ß¿Z@£ÆØ‚Ã$â¯O]ÝöýŽ ÏóLj}Œp/Y•DyóÔK^¨r˜HONÄò ¨þÿ$þ„Ò¼ýÀø²gqä ûò¦ÊlwH›ôÞä[Ì7Bµ)üm[W  ¾´ÖÒulîL«2`¡f”$&²¸ØNN‰ºç¸ vÌžôÖR^aÄŠ¸ MÛÂYr¹5þVxª|µ|ò›Î®LM#_Ú')· µ„ð7èdær1Æ·xÎ:Ø“c|5ÚÂë>7Bë¡‘2î׺[%Ð/ͧ$…<…øüˆÝHÉ%%Q̵>ÑZü(1ÓîC– |ß[¥&dRúº¾Ò*L%Ëÿ‡ÐV¢Ú!Í­j¨| <­æ g›]ŠÊS%ï?ŒlCYæl'nÑéþcä+q5nZWøðóƒgZ?l{ÈÖÆÂcòû®âÅs—â5´x\•8«‹A:M»ôøx3 Kcð·Ï_.[Õ=¾¨‡ä'%WÀ) [a#g¹b‘¶XÁnmÏÚ‹—­ß*q?‚|BbK|ô†@IïaZ»Ù9÷?" Ji!:F¿P€ˆQÂ|IÑßÁèƒÓ&«Ý¤ÿŸ§É¯¾F‡nòBº‹Ãvh€xöJ~ÄP§áëIõµÍ>LÏP­½Mä 7øß÷CÓm5¢F÷E¡C²[-^f÷OYÆã‘ÀÞì÷ўƱÀbÀŽvh©“ÌyÔƒ,ÿ޽㎠å–åëø>ŠµÝÆý›äUC5Ìì°šo¬ ‡ª8ýD“¥°[å72}ÔŒÇ…ÎÆðC>‘ò 6SÚ[L3)F3ÂXRšpXu ;4Æ!¿›èv©L›…Ð:vè‹f½ª®©U¾;£+7¤ÏŸ†)–FëŠ))}c¨^«ÚJ­5 вF·ŽkÖ£%ñèí5ÌǤÚ½Ž ~Ô ß8lËÛ./‡ÿFnPD+qä­#4dÔ¹ãÂå±g-‰MôïzöÉž¹Dë`vÒà…väx˜ðÝâ_ç`¸‘AãÄÜ·©•÷™) iÏ ÃX(|æ]Õ¤ü;A•Ò£C7“Л~tfE“RÚ½AT³“ÄóNkUõGÏ0Ž'§}¬ú–ökdNhWsqž¡gN/¿^¨ÙËଛo vHØ8ÝÄm> ' 3yC£œö¿éüLCàÑØ¶9d$mßbõ/’ßY„ß!°LxxSÿ àË` F(ÂišòÅš(ÝÈ¡·J@2\ waÂoÈm Ó8¹'ÆŽÿûç 9)¯¹b[¼K¨¹~C(êðÝál²bZrüHá…g#0tjÞO\‡+”dãF”R­™ s-}ÁS÷¨ãÝ6ñdéf Œ©:5”nÝýïVÿmµxU9õÞAÌâ`r–·ì,fª¸*¨ÿ8wsüÓRÐÐC`ƒȸÊWÜg\ºêõIàíÓ]_ôŽ_O‹7rIu$w¾­þ_ydg³št ¬Hä¥ÖÈr©~Û"¥>1¡ú ¿ÊŸ©BãÕÒ53óØ:ú”ËUÚ>êáú ‘ð /ó—󂔀,‡RF˜|ÃÜf!IõPZ¾×жÝH%á¹TÝøÔeVŸd=/‰_BÓuܤ¬°I%z¾ª] àŽsÂBêBßïÙ7²¸ƒM[E–1Ù9Yœ2÷¿výÓI² O!Ú"yÿÈdsß·– còôÙbynüœ3à,ŸÎ´·é=Å) £ß0gq!!fÛ7FRNnÀŠv˜N€Ü•¿Õ—.ƒ4àA³SH¼¡@¿Ù<©h@5‹ýu=Ó‡ªUõcǼßNø8@=ò&–[G¥et€·Šq;'6¨Â$3~„‰XñPKŸ¬41þ›˜²Žñü¥“C®ŸBµ‚´?öÙ…åb7dȬ:Ò–¶¯nÖFi²Å w½}×Õr¦B³ZôÓòm*ŽRÍ••CÉ6Ò±~è£dcÙòÞ*uÇÛø›pÒwØ]®ÓYo6ü{.IÑFÉú3÷!e{›­Eß®x§1-ß^£€s@ŽWþ0—u?X=»fü*H!w´ÖãÁžhEGÑàìÈÔ½œ8±Úr‡ßŽf&Öò ½ežÂ¹íéãAP' 9Dı°wŸ³1¾”‰~nñÔÎà÷æ;[Ûô’Ý1Y¦Ü)¨¿]~8Þ§¯0¹JPr£÷šýô´×ZŸ)#,ùß`¸gÑñ¸(IÊVÇ‚î ¢/œÀ±µ$oÃz–îÔ;b1‚ž¥óÒ[ ñ82+ˆîåIäm)U†¼!š~Vg,æz8^j#—½ýA+Î ò“šÿ~=Á³™m‰g‰ ž¶RkFJú€03n?¦ÒÕÇz1Ñ‚°8}VäA€‡™~×O£' œ@—Én´JØbo #\‘Âí|cKX$ŸŽßº·Œa§øÕµÂ!9q‘‡¿n•‰¤Eõ¹8R³o® q•Ù{/Ž~b\ö±òÁMf\£x´Q°‹2ÒŠ: ü™@’—%k‘‡ p×°ôº¥êÃÿáÄ ›X ´<­¸kÒ›üþxÝ ¸/®œ´‚„¨Aˆ@ úrÆ„®ŽžãdÇ%:{ïÁ;ú‰;M–À‹,ÉŽ”]æ0sÙx ÕAë¯óðÚk.ƒ&ïÅ5]nDâ¨áËZ= ˆ~ß„‚7EþáìÚL“ãÛØv÷·X×(’nŠÃTƣśØ÷þøž^À{n9jÛç³-¯Øøørÿ59øy­šÈ»¥÷Üœ½÷=a«O`H#õÜž¤ÙO¡™Ïw‰£gÆcÈ Š‰‚ík4Þ´Òý[ŠòDOÇ>‘ÂüOr¿Òzh¾ˆmdüM?¬óþÑe9fý‰‚>ΠW#û¥Jvïuoc˜¾|~1<úÔ©éHcbÓ /ÓP¡¼–‰€‰” D~ÜšAñ´L÷¼€áÿ"‹Ø“ðÃãU*÷OnŠJ ÿ˜â×s„‚ï1Yq)•i¸'¸\AÀua•Ò7¸Œ×JUËn*#Ík,nç;©†TI‚@°<ûD±¥Æ”Ðqð³‘uʹŒ¿ùsÎïœüÇñ.®U6r¹’gœsZÇ pȹt­Öj—JõN rkã¿—þ“ŽÁ,CÌö˱¦.·+†Ÿ3´.¤bºÏtWʨ’ÀݲŒûÁì\%ЀeÑßè$öôä71I,WDJ¢²ù:-EŸÅ¾äRŒk²B®]?4V9w­æ8”Ôõ‘É勦"#~r£žï~¨Íb`I}Q:O‹a¸ f¶„°èµünCYe1âå8™öé›õÁq@õÄú ¼§æ¬íUÈ[Þó¿`I07*ÇÍN0ãu.gäimÓ²ª‰~`~—o*µQSTvðC'¬j I`ÕX¨Or ©iÛ¼õ?¿p½(7J» =¤$ÎçÓíúie:‹õ‘gÐyñ}ÙÐàÃDùÊðßÿɋµÉWFíÊ|´üîµVªîFB8'Ü­*a<©Ñö0Q£²§òÃû#~¹0)’¾(CÒìÇ'Û¬†[‹/8‡]5j7‚ˆ¦S•Ç›ÿ4k©Lzž(óƒ›7•/I„›l…t=ø6cp9RéfLw¦&î¶ i…Æ£¿ ?;½zxçØoÔVmHK)!/hðž7ôt`â®ÿþ_¸7ÒS#8Ì;ס¡¯î)$ügTµDÓ¶ó&Ý÷ ï|û&Fé½ÕÐ>ÔÒûáÜWÃZ`ñw¹_¨^Wxh´ºq’EÚÔl|Är¬Qé:ýMÀ¸ýsãå뜊®áÈ‘þjÜNc; äâ_×_>‡.ð0BžNµ¬ÙBæ²e¬9÷èÜ^°—”–¤\àæ4àòt¿Ë-9äHå;ŸÙZ‡×ˆåÄÆR(Rà~†þ{â.ãyY{z¿ÈqÁXb˜‚¿_m”í¦[RÌbÌÕ»ôÕ7ä ½Gûp„u#ˇçò®ŸìÔƒ)&½#ÉòN6ñ´Vƒ"Ð-D´ÂGF«ˆ— üÓ>C\It(ˆÝ™×‚Úz¥w0L&È(ÛöÚGáG±Õ«9'„r¿þòßs¾w™ñÎÁ;Ü·y ”€‡*„énÎMÌ6êNR0NBò¦’ôу)ëüL®hs®˜ÎIErVœÂc²N ’!¥‘(×ÁE7Î9-ëò­èöùm§Õï X[Î]„™Lœµo<ÙjÖ¹íû}´€îE”u}€ŠCî#Ð37M³©¢x%ŒÐÆ3ÀÃhÆþN´_§ÙEnˆ?ã¿]¦ñ2~7ì6è”dè«ìšüäÇÔ£þŒ³þðBÓŽù±šŒ„ν Àçm{X}ùŸ§e¶ñµ(U¢÷Èx°ÐÁª¯bì’%(þãÐÐ|¶·`Çt2¨ý+\¹X…5[Zåçý¤ðìºÒ ¾÷“,`Ä´£06¦Ú¬_Cùr‘‰XdhüƒÞ”¢$$dWRá1Žb¡Ë°À¦xÉQ üê °réjU+“(lbw‰/QT ‹).róHòÄü.™ÇÒ·µ!À+ñ ñ }¸ŒÚ ]‰+â4WLa~S>Ò\#fLô.í$F©¯üfrR.^®ð‚ÃJÙ)ó#GÄLØÍŒcI&¶÷æÑ<Ž“,k’Ø èáEdf6Z°u…"i3]6ÝÆç×¥ô\¡b-Í{®µgqŒ¦–í<„Ol‰ØüQ¶AÁ&»“8ý“¿/§“ßÿ`ÍM4ageW_·{€•EÕ®±‡’©Å¨«]«¬¾ ¶znŒ+CÆ…4Ö<—¯Ë8!…°(§ùÛa—IÓ06_i£Ãåë{è†à³ Viì䊖y*­3çPç:ÁV×>;‘|ûätÚ Ö N“œC.LÎØú¢î–©‚"¸ˆºh— Z#>;PXH*l‰àôðȤ|ÒžtìG ,àeŽßýmÆhqb´01žÏ—ø¦†2ð7üNÅ`ú¾úîoáS€}¼Ÿfó`mOó—Åþg¨a ·#÷Ëa½Æ~¤)@“ÿ8*ãÿ 2ƒyeævz’v-‚ X†ÒMm&„i.¥×7ÁÇÁÓ–àöY⬓U}ÿÄÿì’ë¼ u™¹ êHÖ¬¸ç®©, f–no3)9ÏÂ;˜-_* ¼„œÉ—§FLd³f$¹¹ë>søI`>„ΈºLj`ÎTm\xs}ŸâÐæo×áûµç¬þ‘I‡…tttöuç8Nn(qž!ÕO8wV¥:!r?9𮓥µ°úi±Ë °µùŸÂ'Qßùhai¦CÝ<ñpâ/FåÎHuk#>ÿÐ ë^0‘ÌóK–°³À£f5=#ÜìPº£êKšÌ9yô¥ËUñ²oü¸¡ h¡Ëyï5°sšƒ¨ÒðCG†v€:Éìñ%@Ù÷+$y°iàœêA6w´ìxUÌÜ g Y Êo¸ÿ‰d¤ ]Ó™ºõ;f¦W9R/ïñîFjØ1;xð? íÅt@†"Ó?ÓÝË$À†ª¦v×Éß¹Zˆl(}\³aUý+ŽSäÞÈ^-òFµ¯p³%dÚPr¿þØxͼkâÞ„9 QÊ%×ã5“ ß¾ž&}86E‡}[;ݯIætÐ]³ûqÁ›>ìs ùÐ)¡ÖƺÁùà» áïÀèÀM‡oîU;SÖ“•S<¤£…p7 7‚+ºWd?+62Ô¿¨¹ˆ MydÕ¦Óz´faþw0 %*„] *Ý­y£‚‡Ï#iÂWÞÊC³-ò#`~*ºX¢kH¨Ñ q!kÌA-`"µp¾ Ö‡pr£ƒG¯;¸®äø›Æ/ÚõJ$æ’[…úNpXÏ×L:¼~=IÿT±–U„ØÛû¤ûÓ5©9Ô»ò¡(c O„†ù5’îYÍ+˜9¦îö€ð |ð[Eôå¿j’t Ô»ÂW—+Þ„g–+I†y%j@†ê½íd¿i]zû#Ë4tŠ©Þ‹ë4òõëø:NãBßôóaßÙN÷gkÞØ [¦[ŒÛP¢ÈTsÀå0TöÈØö¼ ]QÁ†ù¸_ž²„¨¬M€ –¡•‹/0þ2ù j\%Ï"«7®RþK×]îã‚tÝ£?dé’Ö“5“ ý<2ļ©çCºA†ò0äÝ0¤sà~ˈÊS%°Sæ…!Al@d0Ž×“ 902EÔõª8]DèI„J" Wf´M$•˜ Å ¾ˆ`âø ÏÓ5›_¡KàßËÖS5“ík?X "ØØ7´Óý©š7"¨o5”3°}\8)—Ùuµ *6@ºØðc•/c󬜑¹â‚.A}+4ÆAóþ2Ä Ò»D?#Ìõ.Ñ~Ó†Ã?hÝ€aSàÒš±J롚ìk;‹ óRÛœ ûŽvº?T“4©ý4Õ]¥³5X}é°½ÃéPP—n©":°pƒ¬ À‡~½}  ™L…²ò=í3ùÀ‡ž®‡=À‡MÓyÑá!>$FäÖña?¶É;ÖÌùPnðÁæC!”34ú+±HB°p¥!Z$!JðsÂ(A›/ îcWáî©!(ˆ+œ» §E«Ù ¡¼Þ° âÂe½¡¾ ãòÅŸ³|Zð¸fÿ‹%¸ªÞºÝ Äý¤r8%x»p;¿ƒÈɬ #ºá¢úÁV׃[ÀÞ2¢e'D¹ÞGP¸€j¢“haa/wâ3.B¶°¸ „Šùæ$ÞoîYäwGÅF‰þŽC™å|¯ºp®Gn&%Ò‰”(®«ŸA}á¼?tãv ˆ+)žÔ¤ô „‚oÿäÄPè,E6 ¯êÜ4§åqv%–,ÜJ0_¨kÁ±Tu•@;{1J•ê>¼þ0†Sâ${áU”ؘCåÊØÇ2‰õäÍŒñk:#o„ˆ{ÑÃýÑ'„òˆèy¡N>PØ–±èVz$.F…Ï0ºX,QęȩÎH>¤x=›YIØI‘ TLËàC®Î‡ê!‚tˆa‹Ö*¯ü#©„d{Âb`Cv€ð⬮Ȇ`õ¸×c738„¯ñ,6Ôì+*¬õݘEº?v“]W/c¯¥ˆêA|À ðªwðAtÀ²‘0x% 2Þ½7×@ø°^¥•5èž‘½E\É:2@‡ä®U¹Þ›óÁÃßß{—sœ^ì%€!t¾õ±b=uó5¾þüN£ƒÏgZ»Ñâ¾?tóÆÕ!T†è¬Be¦s C ÕYd` ›Ž£ÈÀ¡î¨™op!¤«|²F]1’w±ø4åa#^¢#ŸÈ`EdÐYw_‘!Ÿæ.Û¸yg‹Å~‡·_CæI2ôZ#Ã:› ¯?_žEK}8nt¸ïÏܼ±Ag…Ûwuæ‡ØÉœI‡ìÙ=þx`­*uØ®îg=ä@6²Ð½^«Î8BÈ5°V¥8•* ì®'!Ø»èÍ Zäm&ïQòɃÝi^ÜLp^RÆ×êCãÛi=w3éðãõÇi„hÙkÖíFŸûþÜÍ!L„ÈnM>`÷ùà[¬qt€•t¨Ü•Ûà¬H:tnØ„HK†ôï3[ŒVˆèrsb`É:ä Ul¨Î†êt¨Ÿ)žÅâgF{,8¬çn&¾¿~?‹ ó6ï\°ýIqì&ûØÌ†kRÙiؘhØ.l–+AgEä^qXó$‘§:îN†–®ó†¢«fÐÖ 8®T’ãüERz°¡‹ <¸:·ø[Û¾fbá¯m¢Î‡BÃ2œdøöúí4:˜+ëm_xÈáñ4R×Ìäæñ&:T(b&*¯H’ˆ÷i#͆[ )Çüëniå•8®²¤‘™†¬VsõF~Q¶lÃÙ Ø`~Rd 6~›ÐZQ E¯Ðt–‡ÂC^ÞL>|==Œû>w¾?x³Å‡ª{…Ÿ(ǤiîlZ-u6€4Kókç$7£âïçꄨùzUj¥uØbscá*åS†SbDQBõjì=%ÊŸÝYñg,EMX“+Åý‘×£73<¼¾~=Õ—V˜…´'ÄýdÒëÞâÌÎŒÚá.$DSˆjY‚&(zæHÊÛP<—,×îô•« 2 Cb„0ž™çEóþæ0±ÁÏ‹bΆ“ ^-báÕÂxŸ˜´Ô€½ÿ5¯Úò=ÔðÎëÑ›Æëi¹\[?œ=îÞ¼ÑAw ÷{ì¸øEœ •|è4«ÇÆRòaÆò!s›ÑäC®Ñó ñ!ç+1Lå¶‚ —)ñí,£"óÄ0UªM¹îƒyÑ5r¹þi7 ?çgÌk¡åËí1B¬óÉ×IˆÓ„Q£®"ľãïß¼Bw w$A„žA Vš¾°NÍ5DäC M|ý¼‹ ñOÑÕy&È$„ikH'ÇÙ¼y^p &¡ËfõóÂ…ry[mc¿ÙwøQ©œ1XAÑ—Zg’×ã7“ýõ4…ÔîBmußòÎ÷ÇoÞ¡f–{’èwLcæÆúÓKTf8è#?Aɬ2“uH3¸7F—åºEEffo”`ŒhÌ*g"‹*¶²,ªT]ÔÍŠæ—ŒÒÿ¼¨º<6¾{³:‰ =¬›AîýHŒXOàL>´×“TR`¬»Ô[eψûI¥OàTÝ2ÜŠz$UŸ)«n’ʲ†)B #!´W±EoˆçÍLááŠtË(ìeá²ÚAÈ}‹ ƒ³A7NÏÃ’$±¡®·¦þYÅ\½ÛÆ2ídª,Ó=Ä…u>Ù^íÕNãBnÜ8ïßl\Њê.Á‡ŠLÑ!uÝ0²:lRCa~`PîvPLÁéº+Éœ‰ Y»¯3¸ÂxxŸ°iQ %üðHibÛ‚C:{Uf><,’ú+-=$˜ËëœI‡úZÏ¢Ct÷aÛ›Àäû8Ù'5Mr9w*5ââ.xÛ &ç÷ý Ì˜Ä…áb*c6Á÷òÚÊПlHº]Tv±8œ°¯ð +6(8øt^lRÂäÜoXÎþ•lH –KÖã734”×r`ó-:ì{ÜùþNö,Óe³H\M®`7ÂÍÙ!Ä‡ÒØÕLtw¡’ª;`.{’n›Q,lè49ŽÜcŽ¶Û ¢ûA>x2Ù½“•Ëo]˜i­F¥B>`ˆñ¡è°N%ëk>)ú¾uË}'¶Ï÷GpÞâƒn›ºlÒ»-FÕ  ‚®šBí‰!6Ä‘]{ëlÀ¼ö%²îšQm¬!Ü`í!ò¬}cƒG'ƒ÷¸óÇ4¿ÛæÁ¸[>Ñöád^ÏàÌØ^óil°èbûy=ß³¡<tÕôâ$­_Q†"CbΫ&| IÔkë|³²ø£F5"w£aÙ³6¼»kZÑÅ"øqaldq5Œ@ˆà¹dQ£Û'ô¢;Öçd‘Ú^GD¼|AJtR"LJTry=3ÃCzMgQ"Ce&Jä¾§D˜jgmºVÊœ”A´Æj|A Ž(Ue—àDÉ2à^p¢\o00’-ÑÄ”hègUé¡ðçƒy „>¦çµê”“c}{踈—/À‡Èµn¶cž‹+B¬r&âk<ÕMë-‡}ñáþ@Nv½½éªÉ.CÇ{$¤)FtŽxc8Ÿ„°(BhƒEKªvcä78!r½2ÿ0(0“ö'ô{¨ÜÇ7Ë/˜$„3B„[ˆø³B¹?wd`Ñ<åëqœÉ†ðNcÃðu3c»Á†‡óIU¢L\à4Và ¸0¤;(j]Û9H°ü¼0ísWÁÌÅg8/ú/.4R¡y+«Raf¥ uý ú>§—¼L}s3ÞoRØ· Pðm„4#ôÇx°Î#ãø9~žÅƒñ`_s¸?„óF]3ùèvjÂ(˜gâéŸÉâjIÃ,7Þ•á÷Š6tJ`‚Lˆ×; ŒNd ƒ!dò¬I@‡Ü@ëædPLð)=´MD‡´¶üÐJÝ«¼áoOpçÏêba;¶ÁE²]¾€çïÃ#<4Î×38¯aü?N#”¨"ľiqg;%šîxCAˆ,µ|Åb›Iˆ( · t+Œ„jsÏ'‰kW«Û–W¯¯ ´—ASB5IJä`TJdRÂ-±”ð9½ä™Ã6¦7þ¼FîÆ€ÿC'E'#zxh®;¯Gpf€ø~#jNÞµHa/|¸?‚óF MeѨ^‘¢½ª'%äÅåy`ûXMnô±e¶vh:ÇÚTM4¾ CkË*úXoNç¥^䄨ÉcDSËçôP#Êy…ÉGt%mµÈë雾隣¡u¯RÇmî¦o|F¯yæàidÕˆU. ™ãâèÀVÓ8è«èP¸yyÒö—‚k”KâC# ùÀ3£¸Eµuuºƒ”)o"ž]¨¾Ã‡Ìîëhë雾Žogb[{cñF—û᛺g6ÑASÚ܈›ÝB2ª%6ÐVù¦ÈZqób ͮʒ-êNáTˆ¼R̈¸F‰Í ohv†Nÿ Á¤Ñ>f ôè¢h´Ç²‡õðÍŒ ¯ãëid°M`?ß ¾q68²ØÀùÌ0Ÿ—J:T Ô¸wuÒA}=ÄŒ*>ä!>°l]ç³/ëPÊýÄuI$“‡Ì|²ór‘ºB¹æÃyÉ5réh8oì7Ö¡$öÍ›‘ÜB¬ÇoHˆ×³Ñ¢/¶°p£ÁýÀüÍF]0š'0 ÖAãDÅ—¢šC¯âC‹~XÈ‚œ(BÔvÕÒlI× ÌsãúÂÔ!3—l<*RØèÀ:uóá>Wa_”Jâûx$•\ÏßÌ“bþwªï¼±`7Øp?•ôiî®.VSò1~5P"šé¶4nщɌ£Ml0ß “³‹.ÙuµhbuJ^:ç…A1IA‹í¤ƒ©f§Cý³·Í?[•¬TnÅÇŒäòzüfƆ>úY|èYötx`úf£ƒnÎÜçO›HŽu#J’ ƒ=¬á[&š¯KÊÁÉ0OÎ+2'zX¸É²>]2È€}¦,Qd"ƒ§‘ž:ôxÃF®¼·ƒ)—v0÷Ü?>,°¯ykµ=Ä…u9F;‘ ¥{Ã"Üèp‡É®‹ Ð`<‡m“C=ÍÜuÍ5‘­ypàè*:²L_®Ço!X㮣‚•Œ©ŽF†{S7iãZó²ƒkãR;pzø YùÔ×Cˆ¾JÈ &¯pfh°qš6®c_91!Ê8[tP2ÙUŠŠóX§oääÃàà6øÐ$x@Ç3J}N:pAr4V‰H‡x½É ±Â%ë1ð¡@ƒíOEc£ƒ2‡æEóÌ¡•ßêcmWÌ3*i€ô4²¬‡ofh¨ã4mÜÈcã‚¥=Ê£\P磌_e/ÌU5ó­ˆUgš#cõ¹@_óØ 6Sø®n'Cè×K±o,0+Ut(¬SWÖ` :ÒR·äÑÁ‹¶E‡øÛ.šprâ0tWš=ƈu*ic^WOcD÷ÕuìûÛåþôMñù¼¡‹ª'%*]eí&çÿJÚž¹^'}%%8Ø JhMRã^’I‰ÈÝÉW”àAÙí%*{Xó˾èn¹Á .!•JL§„D0ÉÚoRDÝ+S/Ž ‹$„µ‡Æ±Êzþfˆ™]œCˆùä{‹êrþÆÕ³CW‹á郑ý{ᨯ¥ðÏH‚:%‰™!¤Íßp>ôëeÜ™“t*,<‹É ô3Ü]&ØdƒŸ½:>ª[[ÜPÈ= ,“õ¡«EYOßù4:À>™tèûw¹?}óÔÈž=tî&àåb[C”YwÈØMB6T5¸¹M‹lpoAìϺjkbÕ ÙT‡2Ñ¡’`Cõá¼VT†ò÷ˆN†ÏÖÇ™RÉò˜‹\YÞÌ£"tfÐŽN†º»h–ûƒ7[l3z$pÏz$B¬gnf|øÚ¿žF‡îêúzƒ ÷GnÞØÐÅÉ¡ØAl ô“ Y+-“9°.Œ®N&6Ðb²ªèÉ…Ë#ƒªšÀe*M‹:/4 c}¯ÔÄJ~dd©]h©ÿø–ý‘½yH‰Iø²>D‡eF9cÃk=‹mÑ!Ö=ìáCwͨ:ÅGX”UÈ_qšà6<2˃(­‹ƪ$¬Ë“øÐ¯·tîux¼Åô¸çe†|à[Ó¤†BP&<8ob¥üÁ÷oÝœ‡¥ôy{ŒëŒòk}œF‡æÒÙZo4¸ïßlt`Kqþg”ƒt¨ž?TÍÃ¥¢Û&M„¹| ‹4Œlmˆ-ÖëÂë:lð!òš‡Èg•«Iµ°|ƒú$$Dü]ò¸þÇ”ÔØ¾À"Éc]îõìÍŒý_¿0 ~DtÞ:Öó53”~ŽêÉŠd.% ·ÜxûSFüøõÌŸ¶ ?~žÇt€;dž3çìÃÚC)bÄ2HL^Η܅‚^ç¿‹æwí3^¼ø}Ÿæ;6ßd}õÌ7zþslÔC'àùe^Mü·i…é8Ô'Pž¨¸º0WàÔ´ám䢦gxN<Ñ‘jòŒžèøN†÷A~#˜ãiüÂË·q™êÅ~†sJÉfý³ù6"OÏû.ôíÁ˜ÿƒ?Éßæó¼û%y#9rß-T2®Üqœ3׿eÌà I;€b=r™;½'ÅHy : Áÿ§þ“XÃøÄµ)h˜V9×DŽ˜b/,ŒAQŸOtÑqU –í{4]’" j8!ú oÝ«üŠM”IB[ ™3¿zäj‘qã$mŽê³ŠûOxGFd•ž«ÿçáù¯‘”ô oæÈÉ5ÚÈÄ`h_ÏÉøò%ûÏùî—ÿÌoêÜ~SË_ÿ¦ÖH·?èÝ1Ò»_®Rއ;`aœ¶Gž¾¼«2n=aù×l%&˜žQ=jUâ|ž±…Çl8Ú£PŠó½plìî3ó³NàÚÛ®_ýóv)ÞOÒ4G\ Òö¢Á¬bþé ¢º0¨ÆQEÊ=H0î„/ýö#` GÊœá¹üõ‹0˶Bìr¡çÔ1‡½÷©·ç4¶Ø¶àÆÓкûvÖ&ó&E.uso—HêÁ)+8êzTáÄøÕñ–{‘×Úžê5Ü=‘ SŽväIŒ%±ú+Ž;rE¸ÙYøD$ÚÚ(‚ò.ê=™q¾7Ï0`0 ó(ÅMGµ—çË1ÚÆ§ u—­ó¤Y1®Èe:=uJ™“ x»É7Ùó5ͰŽ™ºžøÉÿNá,~¼Ä½_…ÊÐý›t\ZA,a}††ƒ0U)û¾ vì! Zx:ÿùŒ1¡ÂM´i;V¢ÿy:lÚÙÍg* lz’Áưl=Z©Ûíå9ûó>ÎB»ŽÛO´ó>yªwTï@[X-JˆAXã5ö`a-ƒ_Z4X~#Öˆ*ĺëÒ‰u"Ø7‹ºÀÎÌ\pÉÚœ]μ˜íT3ßB´ç-d‰öòäûùg¡mŠ™‹vhß‘•ãVÉ&Œqé5¥3†mJˆ¶–•gUZô mL±mœˆD»í”~¡htP„5–vkB‡ †^±&«ÜO¨ëšØkÍöÏoø8 j+QPÏÒêrêÆeîF›QÞ LI[GœØF–©Î_`SE=(£’Ùp°™ÐaïÀΨ€q8°±èÎ]:D{†  MÏ2 FbçœJZý>¿âã,¸œo÷ ${¸û=¸MÖ~²„ÄÝD»&´]ë“mƒs™& ‚»«5¦Wd* A‰ë…vÁ¿ÐŽœ¥ÉG‚ŽÈL´£NHºO—Bë0ì­ŠÚ©-Ñ^‹ŽOF»s9–oí}j¾{Fš,¹¿%´TØ‚ZHG'6kt2ÃÒ4Á¬­ éF¤éoaÍ[¿°œ›ŽÝ:tÒAÇ#g« œÀçÛµºŽëld­éý‰ý¿¯g!Ýá!E¤£Ý@úîùXM1:òR¦+І°"Å]4)‰rFϲ/Th3Þc«ºƒ] vÔùX6+oÙ³!ñÇW‰ #I1ïJÁè°i©( ]‚½>a-:Î{Š™`ÏÑìr÷x,~Ãá”-$MÍÑö ’šÒ‘ mÜYsÙ é@»(ÏæFVÂw: ™ûºfÏsª'^+œÑxÓ €#¤vçð¾¾z®©?;>NÜØ‚Z/ìoâåî! /X,z Û Ä3ζuj¸ríîù1àÙó?Fm¼ÀÛˆ7»D¹(׆tò!*hßMxónŸ)GÃÞ¿Îg*®ù½{þlø8n¸Ø'¥óî{¤/훇‚ oÒ~áS4ÉúÉšï¼y¨Ëp›Ÿ’~3Mx— îB? ìÔyPK$ÜÜZÏÙö¿±Ô®xbÆx‚m‹/ GK¼×jÊŸ†Óðî:%­ä\ªÖ»§d’Æ…ô€;åè—L¸i6 ¸µ)G…“á)`l7$ „›ÑQáÞÜ®—ý8®‰‡eÅ?ÌLóˆw"ܘøC%0 ݬՊìú³ž7¦¤‰÷Lzoà}÷¬Lqƒ¡ïÜýPJL¸4 ÀrÑñÖa9šdlæÀ vxøn,¶®Ó²©þ׈·>o4ÁM´ý°D-žp§¸[ᑺ×îõiY–óàN!é†3¡ÝÃmwOËè%(c7¶ja¤j\5­DÁºÓ›~hFm8àNÁáî¼qØ"³Q]J} zõçè©`àiY•u§¨Ó’‹J „†,Ö³‡¸·xøZm7áž§®¥)ðLmøÝÓ2tñÎP¯Æ ©î|G«G»½ 87"LÀ·§‚„ p7¿½ƒ§Hmê;¸•y{Á ÃßÉ—³€-:,y-¬Å<ñãׄsÝîõi™ñqÜyÞw™Úî»§eð+d+ '½l¸(œXQ8iâ·V¨ób/À¹Ïn^=œOËÆ/ÀáÆS¶åëXp¼éÄeGÄ;(žàêƒ3…¬Àá»ÞkÉØÏ„ÓðîAÉ`I7úw4cQcæ¼E&Å“±Áâñ¤©ðªBkÖÈðöd0eÇÛ ÜNŠ'Kž–´eMÝüÓ îÌÜõ(ÀÍ–lá,¤Ä·8Ø:\K²~F|œ…v)Üþ ØÓ ´íÚ½ù~#HÃÎB[i÷¼ðí¡¾£xÔñWk敃{QIΪãÜD"·j ÙD)…3a¦Þ$%ÒÆ‰L;€sa°F¦€0ô‘Rgˆ±³Cœs_â¼Vý è'œ†3< 2Q÷â²zǽ7r¢ˆ=É Rkjeæ"°M!¤ G[`{BâÝ„âPWÆklX©:ÖYdÖ…½vï“ÁÎí‰þÙ„:­+SkÐúÇyP›,jp/K7 î÷ 6ÂÅé-bÍ"°öBm.°VŸ,±Âd.¹¥e-ÑÆr`ÁMj{IÏÚîB´õø”$°#ÁÎI`#jŠj©HQ#„¥h¡®UF?øßip·¡ä/í—aÕq÷pä4?Ðî "­*®Ò(h+õSu;U[nqCÃþÀºoԖС²0…g‘™`o9Nb/s¿˜"ÑVŸ ¢2'€½NýÖêŸßñqØmM°ã›Í¸{6ê&Óiw•Àd/ 2Š4ÚuSé°¡…¶'~Y!;· lrÿF•Náј½3Xs-]yŸC@ƧøÄO’uZg}k1Îoø8 êŽ=Š„:¥]»ÝÂÝñjŽ i"ã^§‰u±S÷á:Óp¬½·$›9_ éÖ™çcÚJ_<9I¶ÎGõÉè™úD+J;/ïì¶ÖúüøŠÓÐ6ÏúÂ$Æí»çcaË·Ïÿ­„› /èh„;ê|Lª·&p‚h{;!o)váYšŽH*¤òàéâ†Üµ‹Ô ¡ëˆ4Î%ž в ’ûm;@ûõÇëYh8t£™TH{´ï‘9+hÎ.´m`^+‰vW…$6‡[Ivöä»iøi¼WVÈn:~ÁÍõ–Éå Ù”tHÞÍ àæš’o? ] õâ-u÷Z¹3Á?Æip7zîÎÓ|¤=Üñî™;:Ï5À]eº.ó|l¢—ÚÀ¼YÆ1$ÀݶT?%½@"5`IìLï49ò)¬u]×m=˜Â6æd5jð"Ëĺõ5Öërüè?NêÜ G=¢°.ãÖwÈ8·%½i‹±#Ü„µ×Z½UF[Øœ{ö—½•Cs°)oÀQøvBÜö’nμ ¶%á°KSòW 4ÁÕ˜²Y‚½>#ûv"؃NóhPÖ¸ÁÒÝ32²”Ô5õ í]Òã<Ž0P?ì¨Ò_ñôÏ #\!¬3£6ò`ͺvØ~SÅhÐÎ̵C6ÁµáI ­ÿ|Çç¿kn¯¥;ìùqܸ¾î~c¥ ¥»‡$/2]VÙI a‰¶‡‘<FØU`]‡dÙÒ¿¡”$mÉv¦Â!Õ¡X÷‹tmŽÍo§Q‡d»¥Ùö6YâàœGáNi ÷ú”4|œ÷Ì!ºàžçÙîãQ’`O¸©øMšè¥p u½Ü4Lä›ñpåq¨d¼T9/°Æ23ó= P8@Ûü†vÁý_ŠÚQa›£YI­7`6úëu}ÄÖ§aݸ,ÆI{_Y»#Ü™X'%$P€ÈÉÃEjP—d$Î $”A¡!ç%íêù_ñBªµ3¯6HÆe?Pšá·Á–®« Z?B:™b6.ð4H Ò5®‘.H—å,¤óL „tŽ7¶;H÷ª\„ò½îû0£ªRU]Õ¸ ªÏú㪀-!6„z[Ä&ÌÖÞ`¦hg+٦ƾX¦5,´kB:겎M‡8¯órmôút,?ò|ÒÚ Í[ØNÕ`wT;>&HáµâW¾BãêWSǤzW,výqué_QüHÙ£ub[ …ÀšU¿@‚èBˤâG¦¯:¦6‰¶ „ð㟹HD* ´×][Kv&ÖéG: íà nÇ®7À.÷Àæ}q06ìV¬»³(°×ͧ<í+Þ6Hѯë‰gcŠuC›ª¢-°kØÄÚtŸQK,bXà éúþ¸ÖëL¤ãyXר”÷YH7ÀîwÀ6ÍMÒ²bb݇ªzÝcHSµz‹†ðë,5ZñA„¼E“xŸ™¡æÖ™'cÚdo,úñ–ªUE@;Pi‚…3ñ‰V+@;­+¬¶VëL¬çÇih£l´o¹Y½w6V¦t‡h8› Ö ¬k؈«ÖìOµ7Å¢—³›ò>?¹kšP³%†ªéÖMk§]Y°³?Šã£÷Ä"eÈ0a ¨®&[_fÖ‰ôüï,¬!‰'Ö¹—¾ÇúÞñÈ>ËPb7¡6K‘BFWñÙ±¨xÝÜŒ°zã ב§#’å@ƒ `hlë"Ù™Ël–`–`Ñ`c§',#ÁîëÔZ3‘þöýÛi`{*’ËÞÐÉÚ½Ã1m”¶wzÅ.n”û°–P1$«½’ÝC{gîT‰%Ú›ûlŒÅw÷iŒ6ìç l…k<€@cç JZkV¯…9æ¯ç=²é:“ÆÞ+ÉÚ½“QE!¬MDš²1ÜWAྯrˆ7ÄT„!©‡¢«cŒ®ï3!èîH­“:')\#Øi4"­ä€šã§“ÞÅï%Øë“ñë÷×ï_O[îv-{°û½“1„á9ø)¬B0Ù®rˆ·Ã¢±»ç|¼Äë-ÃÆg3®¹ÖlyiËŠ:Q†d.Q«°ÎÊB°D!qÌX§eSÝÖÚœ‰ôü8늋€B6˜ì±¾w4j‚}cÀ:5¿ˆ£Ë°½¬رú5^)_õŽAðèÎ0jù…5Œ‡ 7bíÌ«c’EO/:‘H–ȵš0 {­…·µ:çûÀÇY`Çhªaß°/±;âœN5HÄ®‡H¨‹ ŠÇä%Uo„iúѸ¬˜Pwè[ ëL¬µ9½Å*—N—0D%"ÔôÀHg#Å~ƒ~[ ËØkm΄ºï§ 5 Á¾qM¿£Í™`£§2EŽ_°! (’½¨ê­°¢»ñéÐÙˆÉ0¢M¬¥`Ð úëkŸâ,oÑ,jîƒX«Ù¬á9ºj^›·ØZš3‘nßÛYX§\•ôÍ;À^ÁpG›Ó5Á°±dæ`Ù‹žˆpÄ)PB¿¯™ OûÌ­0‚§ØëažÇ#™]2\¸0Ž@ÛXB>C´Ýúus–Zˆv?`öú|lßí»†öd™ÐÎ}‡v»£ÎébO”?íÞ•öe$%0 >IÑö~AØÀæùع¬˜½ÆL£8’ø?ìƒjüXùÑ?PvÆÏOÖàs_§;¥}³Wä½»¡\¯¼Ê‰t_鸟ó-ˆêÓê¨:5Ë˞ד†ÞuYg!k ÎÚN„ºyƗ꾩ÛÚ½s‘S逺)z0jâ2êÑ;BuÔmsCÔIÇ¢›ÉõÊH '@@­:# é.„Ê!¶‰Æ ›F¬ƒys{®!±õ}-Ã!ØvØ%G]fRÌcö½c±ëZAš;ê7 EµÔÌÆWÒ¢lªðÔy•in$‡ÝÀºÚ­Q …Ë»C]Yß CPs_Š Bú SÓº—R¯DûV¿ÕÓpQ¡:ÚØãÜï‰H‡¬,¨ÉïLÇ´Ä©y8©ß|jÍDzK­) Éù§kå‘è3eþ½èt‰aã‹ï©=Ñ\íuç¼­õ7çò­œ…ô䢽îq­ß;9‹Î͹(QƒlÙ½ô‰sU%5w'´û°ú6În"´›6÷Ê–dT¼ÍH }¦ºË‰2H¤P MDªù¦ ÏQ‚¶üokõÍ:ËgAm1(Ï }_±î÷ÎDΡsk5‘NnÊL§ìò7cÔ^´6ÏòXøRÂ'ßëa‰¼~£ÊÙµKÿ"Å ‰BU¢ÇžR¤3›½µòfœ¾¥Ó€ÖžÑ ô¾Œ:AÇÊ*rÈ®•u¨^Ën&ÒáD¬‡®ûÝz=Ü;=£}hퟩ\ Ç…ʨ™=¯Ä ²t©ô=Úü6¯5o‰Q‡º4.=ñAÎ2jàÝ”A@ªB5Œ- èzµµiH_‹nu8 ꙘÀŽû•(ýŽèÆt÷Ã^S Ñ­•ÒM¹mí5ëæ•½¡AÛB5¡Ö¦ŸÁ“ýdÛtoŠ!+ŠwŠlz¡b;ï‘Qk³'ÔkϾÞ| XqÔ@˜Pw³P÷{PS*€ÑïÊå>}UØ2ê®**7Ák‹Ûć͇{` ¥ã¹µëG£ÏI[ìÚ6TÃ*jB¡Ðr’ö’QpG‘R÷Ú5¤¯¥7ì_œ·Ñ1{²÷«•úéiKçƒ6„qBp{BÙ*àÚ^³îžñ±ä=èž*´)QˆÜ¦ì=[Ö@¶57M¾“A…BßIØ0£^ˆF[I;}íÒ×Ò› õ÷¯'uchî‘ v›T؃mwÀn,À%™~äúæ-^<Œ •Qa"´}9ºô>r&ؼ/ÂØöÚ˜tœho£{YÇ£„ …Γ/n V½1’ŽôµeH_Ëo&Öß¾~; mH¹ˆv¶=Úwä7†³Žh3TL´µ¦rO!$šøÏl}a.®øæ%å}C «.uʼÌíúLîbæ Y¶Mp´àÓÁô“`³X ­Ï|›`^ÅQ‚ž—7ô¾ÖßL¨çg­ÌÛÆ~+JO÷NHSa»%WÎk„€­‰ÿœÅl ©7•´vc:bîÇ*”isé6xž9ܬCØÄ:9Ô¦E‚ȹ<@½6 ék ÎÄùõ<¨S­m¦Q{¤ïÜjû™  ¢õ3Uö{hiG‘Ôj_L¸e~jð™ü*ŽÖgueÌÎ>“J÷=sh‰5 ¶fδ†¼œ@Gcf…õZƒ3±__OÃÚº? ûÍJ=ß;k¯kS ¾ì$u‘(“äœÔ#è^¸¼-jr`»/3f[^Ô_˜H‡ˆÂus­‚õL¬¥U€ç­ÀF(‚´{^Q¹¥ë¾>×*œÉêþuœ…uNt‹Co¯ éùÞéÈtxXy^k¤¶rï…1^M ØÝ+׃-Ü #þ!bÍ}l> `njÃþbŸJm2Mµ¢›eÚ%)ó+a:‡p´Ñ·¯…8“Øýk? îÞ•ùÕycÛÁ]¿ÐÐps„k«²âHò8B£kÍs¾Ôì6BuÐù¯ƒæ‘N¸ …·ºÈ‹eENÏlü]}¥®n„dý%È#9D; =R¿µgbݾ¶³Ð.¥ëZSæav¹‡vÔ ²ìK””úEL(Ab—H0 ´‡,¸¥ ©6ˆ55(ŒÐ¾L¦Ôdé+¹X$©/ÙIMŠÚx¢¸·í‚‘ÖÔ^+q&ÔöÕλ†ÖvN7À¾wD&V)’‘š;5£ìV¶×V½ÖåäXKõ«zWŠ#ÚÆ;ŸµwX—µ™ŽuÖ )~ 즨l‘Q `¯ÝâúZˆ3¡®_ëi`›g~¹ï*õzïˆäd>žn™ç» 'z)©¦áÙH¯¨ ¬Q¤úêÁ¹Ú²i,"ÖÕUóiIäv›ÿ}ᄵeÅì`°ÛÙõzAD_«p&Ôå<¨¹“žPÏ»ïê{'$— %rQAQÑ/x)*¯¦¡žK%ôÞ÷lD´!ØÜêÍËÈÆìÆ â¼ÖñÈ<%'¿ÏX×U ƒb¢+Ô…¬^ŸŽõkþZNƒº7²óÌmwPÛ½Ë#çГ̨éœ?´¡”#¡§P}5us¨·-÷&¨5SPÝ/ŽÍ¬7„ºêyÙæGRe<¤Éôwç–eÜÕ±$nÌ`®Ï[Á½–âL^§¯ù,¸[iÊýR7à>¾>VŽ¢'øeÉñº(^ÃÉ^ƒBÚµí½°îÆû±9Ø*¨^ \騏ÑDZ6ñÚ5 0®äÀ:±NÃK~ ƒcY›8±sœ{ ÆzeU_‹q&±Ó×tÖó'Ô&Åzë~kB²¼ø2ScìdlÄšCJÈþœØY;èT„Ë%‘®ï3­¶wPgÜÓ­lþ‰å)y:˜hôI¨ù¸ê™Lb v}޼ ­^kq&Îñk< ikJúb‹;ÙB¿£Å©$ÌzºI-O¿B? Îuª¸šÔën»Ê`6í6/4[}ì:x8f7`5– ºdððûØ]°¦›Y v7€½vék-΄:| g=0>O°ç©²Ûî€ÝL‡#Ú³k摦Újò†Xï–w­@l¶k-èhlÄš¼vŒÊ”£j(i–Ãñ¥çÍ‹TçÙ‰žõéõÙ°oú4¤±áHÏÓmô5Nõô<é¬Ò8/S(qäl¸*«É<\k™Dò”/ÖD°X Ÿ oð9ÑÉr—lìJÖ®\€7–ê'T?Yi…IîŒß\ëI°×¾!}­È™hÿ8 ml™ªJúBÙ7hú½“‘ûX‘C´f-HÅNõBªNëPÝÒ“/$¾[`ól4ªl¼l—/`ͦ±L´9œ`G™ìÄ‚ÞdT1|öòlœÄþþúã,°c€[\Gs4ö{G£ѳï‚í>ý\4'éTSQ ªî·t"êw‹£ë[¥û™7à Â0âÈ¡6¥Tâ\0ÑfžÏóbÆ‘ÀKS¤—ù íµ0gûÛë÷ÓÐF"ÒÙšÚKƽã‘{£RVG e >ð2J¡­âj*ÕÑV.’½àvv¬y:BXý†uæxtuÌ^6©C¢Õ§°¦Ø½ñØð}e«ÖX/ÇÉ믯ßÎÂ:¥ê`Çtì{Ç#ÍhT‘) sh8Y"Œ !P*âݰæ5 ¶“ë$aí®¢Såù¸4WY[ÍMƒê†¢- C¢åäKäT´rN{â eä}1®o3keÎdõ×ׯ§a y3°î¶_ 4½RÃèÔÞÉÀ‚ã2E¥V€­ÒjònXS)\)ãWñáË—²ÞŠÊNËÖ@Ú[aÐyo­…„÷É¡æúcMcƒJ´gJBWPµ2g=ÿ; ꌲ?¡NûíI#×U«Ï£gŽqOècCð#ë|D_²Ò6 R¨9«ö ˪Cõ1÷|IÏqôØøMû¨Ï´aµÜè½°Æxøüe$Øpñ[B½>__Çë8 êÓ;@Ýzºõ½ÃQóèl˜h,:)\ŒDè–'¤Ôæ¬î*>¥ÄL$»3ÅN8l“¡F¢ >ß”Ru6¦}ÑülT3 â€ö4hɹvöZ—3Áî¯ý4°Qð%Øy¯ñÞÙ¨™ôB§6ɾ”ö3‘ÈQ/n‘O´Uªž÷%æØÙÌÁæáXÚ/¬cCR]»€Œ…‡¨t ÕÏFµÂëÐu3†¬õÁc-Ë™´nça=sc%}6ê ¬ïRúc`HÃŒY!„ûMµ–—'ŸãÊc|QOú0„ö"µ:±n< µ Ø™ÛvÔDºøÉXèÛŒê§Á íxœH½>û«½¶Ó€îU8×ý¶“‘î‹’}ÚÖHu®¤zÉ^S ª‡HXÓÕ{ÐòʾytÐQç"Àqíôº¹ýEÞeš|¢C]q"p˯=1£™X§µ{ÈX r&¥ë«…µ•â`‡~ìヱxë¯h æV².éÕHöš*z`µðÔâ~¥ I¦« ØVu³Œ»ê¨¬En"EYÇ£^O‹\.±'œÄƦȨ=+°×G£M°ëY`74ývµR÷`EZÙ~kxc¨Ð‡gšQK´Êý™`¶ƒmYǤnAŽ®Ãu¶öŽÙ®qsVT‘taÞyEmáåÊ?8‚™ù¬Ð^‹r&Ö嵜†6C´'vhßå5®¸0*¹Ö]›õ(XÚ ëèX«üdÞÝMƒR³üÞØ˜ôÑÜWÖY2ËÈ'Ö}°&›…@å;°î #è´w b†gõúl,¯ù5Ÿ…uG3Xϋ ¬íÖ …|®ÂUጰö0RUV>ÖRþ•aÃÑ×F÷soÆR_ŽåÖ´‹+n²+ZÞQ©†Ï'±nhÆeu&{ž5¿Dz}8æ×ôšNCbs"÷ËNÆcœâãè…=J&«2¾ì1„õlm‹"ÒQ§c‹JCrâé˜Ü-αN]§#3˜Î)éâ& fâ/Êd!˜Wú<`C]عÿ ƒ{ öZŽ3ÁŽç=JVÊ—g~·»Ü;(±Mì°³‡ÖÞkQ1¤yÊ—Õ-HîÇ0\Ù*b¡ÃE¨…´·,qeÐlÞg£d¶3÷aª¹Fz}4¦×ðzRl`ðdéöHß;5^¨#¥ö¦ª-“qsÁ #-“Ž?Þ¶j*çË0HÕ£µñdL’,iÌOÃýZ9¶ 'WT&:} ì¡h,½ÓŸ(j0uöZ‹óÇÏ×pØèåìPö`×{'£ç|ÍBjPΗ<„4T£÷À¶ŒOíÆ¬V+€<ïxI1¾ƒº¢^\²ug”b!dO¯éÜ9á ÞÚŠ™Ø,‘^Ÿ‹aü?ÏB:&ÕB’…@ß; µ…ëÎd« ºS\ƒF©*M¡ýr5_÷|{ç—NÞ«ŒÕ‘~8¹6Æ•ªj*¼‚ñ÷‚"Hb/ æùG^$02Y_Í×2œñsÂüã4˜!0'αí2Ã´©Èï¶ÓŠÓÉ£GW%5ú4˜$y{^é'L˜Ý…™`ÎÞ¾Ál‘.¾ž0 žˆ|·°c'bò!Gãâ0H¸Ð Èkã±–àL ¿ïgA`7¨áU¶‡úÞ‘¨yô_Bv_°'ÙƒÇB5zïËË{}KôÔ H[Z]¨#M’z ¸íÀ8_©^ê,ï1Žôù$Øj}'-ß”üÖXÛÖ߯·³°†¨LXçý–“a÷EÍ}VINQ: ÔÑ¡nCP;«›o‰õâ^ ÔñžEj^a¢Ä ºÒ)nÛè‘4›d´)§Ó§°fë«r¤´Ñl<²¹¶{­Â™´þ:¾ž¶EÅêÐ÷»’F»w(Êܪj¢õ¼¦Äš²H¬¾Í Ö¶)¯EH‘ùPt£8¥*fžÞ&*âŠ{Äkͼ> ­>‰µZ_•›îX¼Öë›ùZƒ3Yý:^Ï‚º ÈO¨K¾õ½c‘c^j–ðP÷HJö¸‡P«”󆵪֣©óUä>Ý'Ž×@I.µïGab­d/•.¬5ÜáH#ŽM¤á÷`ܶ$ß©%Ôë“ñë'B³ŒP‡}‹ñŽ'kŒ Hë¤Ø<Ò @kŒ‹Ô€sÕ«”°8¾lçbá¹$SHrò£G³še±*ý$M>‰4šŠš@{âžHל^ëo&£ûg ©nî½¢=ÎåÎì«¢¥«5§â0ÁÜ„óPìHÉÖ¼à‰^Qo n9uaÓ+ŠòÌ2B¥}þ­3uvBŠ:³°N~*Ò´ X'Ä,°eýv‰õZ{3‘n£†µEñº·äŽø&û,zýRý ìBšÅ§I8áì¬ölÁs½"ï¡=×Ë\6?ê;œ9ÝbA0'*VGôQ~|0,™(ÙJ´õ…|­º™(ÏÇâ ”‡i›]™ÞÀ{ÎCޱôgŒ‚5!¬ÍsëO±gÓ44VA¦gLéÖ‘©é@†ü\¹OíŸõp~Gêï{Gì¯'ô}øúø–ª˜ÿ`„Fq`^ jƒBhg£5΃c{]Ôýç´¾ÔŠ‘¶(´çŒ’ʨŸQšGZêôÂÖÔ•ž± ¢âý@­oT¤_rÂ/ ùu 1yæ]þàíXžn?¿~{ §äuðZŸ w¥o`gk‰Á%v•‹B'°æÏÝ7wމt´)IÏð̤8uîø³Øõ¿»öžÆçyƒEîd;ðRø£àå÷àåxíqðòxkqˉàAÍ,Û ü,û>18r›!x”‘À] OmÚ?µùè©-¿ë©]‹UÎ/(ÐfºlXÝf;CÌù]õ;̳?÷Ø®˜gïÁëwÁ[kOÎo^AQ§À Žáb~Wé!æõ æ?ϼò1æåO8/"5sµMðè ÷à=v`´;1ï‚yñ£A¯Ýy¹x¸N¼„é‚àéC.Á[d*b^¿¨?ôÚ]æ•O80bƒÌjæ Õ`||#U)ÿ~Œ#æ•Ï80¼Œës0ÇŒûL¥óò’yáß#úT¾‰#j÷X·yn¶m›ï??ÑÇùÙ4ƒ¶zGbø„»áð•ÿ(ðý'¹6m©jÓqã é‡oÔÁEóy—¡­uœð‚Âö ÕÙf懗„7D¶~¹¶ù†à4,Ø#<°KCŒéó`~ÑŸ» GØÀïïà ‰Ÿq1¼‡Þ¡ âßzÿI®…fO63,ø¥ºCî˜íý‰Yþ RhÜÈËÇjO1~Æ­ð|)üG/ýç¸ÆŠµÅ™oÈia%o×oú;cÁ:eðE(ò’Y¾ÇTC‚.àè§•Æå±•ïZOîk’9ÄdP$Ïw­ÏOËÔД;^¬ÞO¸ÞG¯ÿA/ÿ'Ñ  ÌS+BEÓö}½x[²ùëÀ! U_YŸfv—J“Ü竉ÿ3Ü­ŸÐs}.cþªÎMtŠOÙûó¼VÕúïŒýKÅpëÊsƒoK~*08{¶m=lç¯1§ùÔìËÂróèßÏ‚ù8u;6)Øà~qV™¬at¹sž6†Hß z6Sñ†9~ñ‘Ò:ó®ê…ß1t^¹  §Lsky´ÀZ°cÚ ޼OŒë Ò=q;rßécK‡Ÿãp1AŸŒ¿Î!›§¬„xF[ß?1.Œ0•óÙ¤r•ám˜nžTN ¨3Ûíõ‰2îA6¸ŒªÂ[ˆaë¬æ¬  ‹~´äÔ]Zz¦Ï(P^ÏŸÇQ~= åZÊAgLJߙ!¬,,å™W zïdÍbi“×£`‘‘PÎHmgŽöL_딡)iÆÕ25Ó¥ÓNeø./(g‡y^\Š<çLþ“Ðúe~m¹*s&åG‡ßLx΂óMk˜ÛááWqƒö¡ÿÈüØðžqî|9 HÛ¿ù5pF$ Î8ã>c‘  ë4â3µÌÄy~?ÀŽg¢<PÆ ”çÅÞRˆ-‘9_‡=O"Êm–[9Dùœé|Û8Ã×(ž~§™3è>ê3%#Ê£d¢ŒŒ>Ø3#ØÝÕˆò¼†0kãñ7Ÿb\ û|(WôLüMddFEhƒhÂ90†"óŒ ð;ê¼Ùìø8G˜P>:üZog¡\°Tx‰rwPîð1ÅO:3dè¸ WjH3o 9ûµd’1¸30‡Vr5‚<ÿbUþg<a©ÜdãŒGƒ^ób=P4ÁÂ{£ñMG²D„Ë:*÷tq= âùƒ¤qýð쫉'> ÆVK@\gv†å}ƒ¡eÑ ÖÀr¤!Œ+«:}^^‚ÊsðxoÀ˜·küM¦xð'Èà5º>¨5:ad¡l…Èžz£Ý5·¡¯¯×ýèð³^΂y´tP+ꇇ[#ÊðöÊpXâ5Õ-)XŒ×”±Ë˜( Œ|À¸ uŠ˜bð‚÷Ž)/Ø•{E'ʨêaøÛxÁ†ã/Mº*ß«y(t.¥!Ì¡-aáæ“JrÀ drãøðƒÓ¯Â2<8q é•×/¬gà1`FpÐGµ§FW1¢ˆrmL1x¿NØÙ”y¿®ºQnÅCâÙy¿¶IX‘¢ £>˜Â|}kξÚÓY W¥ò+Ͼ*Ó*lIw=¬ŽƒoVÄÚ`»•i (£®ô æ‡QÓŒ(§Â# †å2Ä^™ç=NÄ9²èióÑ)I},¸Bå'l)ceq"¾¾^¯ÝDÒ˜ ‡³@îi¬Ó¸Ž>VšžágÃ2'`ŒƒpbŒmh™Å7€`~'™hµJw&p^ŒQuÆ€kãY‚›ðãQ©L6p“Á-53(OÒäa9Â?ðÄÈËuuóÇI —vN¡Én,ùärä!ŒQÇÁ%¤aŸV妿ÁÆ3/ÁƒLó+‰5€Œ ò“…¨¹ÍÄAÀ"~w¦¸ ‡æ¿cɤ6‚ŒëI†ƒç3Þ¡ ëÝ-@^úìÍÇAþqȇI\ ÇG_c#DXM÷éH”±™g¢ÌEa1³ú…d»nij>³® ËPʼ^',9å%$%VçsºH.ãíÌÊ"/§ù¯a=>0sÊ2§ÌkQÌ„9·ïgÁlÈv—0Ç㣯˒ ŇéFφ]ͬ[pE=v€>ÑÄO]Ø–Î@0xöÁ4®Â (·œ€2âBYÒ³M{6X¤e\†š½ ½G˜a½?d» ˜—V†ó*‡0= æÑš~)~ƒÝ'À Ÿt\õ Uô†}S€J:iVñ²ç|Ü'Ì p¯W,§)€Ù@íˆÜ‚Õ¡@j÷ÎÓ¯ÌûJ1ZïM˜Ë<0IÓ4ÒLòFù¢JÁüdm óúøë9µsŠE•U„u"—Òáñ6²·Š{ˆnÔ9æ>cÈ(ÜæU¸·†u¿ž ZÓ¦lœ]8cáQ«l±ð>É Á vâJG£c+p…ì2Óîªö3ž\ƒ*Ígó:—Kksâ<ι–tóáÈ[Q(T Ø>cXc.Ï¡`‡CÈÙo%µdƒ4)0åCq“ãz¹ßåäά.–p_A_†Ç6Ÿ@ÒPˆpãYøL"ü¯¶€cëgÜáM°FøðôCŸŽ‘;ÿÆ ¯à4XÂNæ¢O7±z°^ÙÐ¥Sz01ŠHî&+Ä\¬ZðzU´°÷È6XÃ(Ò«Ñ2¦à'Ì\ΊSë°¼¶:!ÌçTŠÀlµ^Â|¬p™0îAínæ„v@=ÁÓ çy.vZy äqd5gvÖ€X¨U·é>ó½Ê¥„x¦ß4D…ä0øän¥QÛ¶'vÛ-!^Ÿ|-‡VÏ‚8qÇoס¢âIEJ-fòÌM Ì«Æ<¥°ÄáéN{Æ[àB'XðÅæÂº™ëíÛ©ØÚ+Nô¨â3'ä°í_‹¹ºú¹#áP2¾0³¤/뻃@|¿ÈÌåTx­—u£/Ë\ ºäAxa¹‡Ÿ2wÀ 7Ù‘¸“ Õõ™Oa®vèR=ãÄü£™ ¿M¸Ð éÇ뉳Vª–2ШY:LÖJ‘3f¸™Z¥Á`\ú:ˆ\€q9 ãaã y;V¹Xe¥cÇêA3ÉHèDGÜÀFcœ@U¬º#ãÒrÄüÅ`½½jˆ(†_Ôò Ñ*ì¾@ÉÒ9¯‰3®³•Ká½deØ‹ ¥I’¹ ±»„y}æµô³S…C¢_:}éXæb’€flTìØ?'íg‘× .ÇHìÃyod&òNÀŒ›[­¬ö·B±Uœ€Ô ­†d ê- LMãU•Œ4€r¦Ô[yä­M‘g~QNg¡Œ^òäc‘Ëüq#‹ˆ O2MŒ¹'R ²µ-åê÷ÉÂÆéc^Ô ‹Æ(n¶¢Ku`“©Ás$dl†¦ј'æÇ9D>+¹º.›ƒ? “Ž%ʧ^úÑâY(÷tÐèKÇ2—ùÓs±Þ¤+™Œt6aëbubÎmä³#9=Q Œsíª—6`Œi ’¡ ’Ð=F"VÁÔäx¥ž×J?úd²ñ΃`cWñ%Äë“Ï&Äç”:¡ Žr­dáÄg?ÖÙw–Ý&•°wu>Í^àåfìL Š‹â&‘±_2ÊfÇÌ-Úݹu \¨!·h”,GF‹y@ãÊ6 j›c£î1Ó=ì ¯…K_P˜³È¼êôózÚ³*ºEÆä‹hÞ2ì!¨bâ…ŠåÊKßìÛY(ëÅ¡c‰ b'·®s+ª3©%£„°w®£À6—\¡¿ÄšKÂ\sHMU£<óì›ùvåÀŒÞö„R\ƒÖ9æÆÞï׈V3bTÞç!{Œ’¸ä²¾RH\êDù¤Jg½“ÅK\Zâ:Ô rhY•M‚lóéî4cÈó’ÓÐz2Ûxé&È cPÕO„-TDž7Ó”Ò$•í -Ei `nqS.£©Mmôü«I9­¯Õ—š¾ÚëY0׃Kõ±Â¥e*‰_Æ ¹‰º·ÉÝD9#JnÖyö¡FÜÀ…qƘɞ÷XU—çÙ‡J]ÅŽw@<*[N¨ÁÇ&`ŒRteÈ9І“ N¯4!¼Ž <θ£ˆ»†øðäkPÂqZÐbl…OùJzµ“êœh8uùŽ.¸Ah»E Ñ´HH¹*jnXÛ‹ 9ÔÌšéb=ñÁE¾GTÀdtçr Ș–ÀÝ»°v¬6V0—Ì5h1­Ögf€ÐÖ€Ö,Ͱ»Äø@ÝŒÛYçq ÕJÇê4å"Wa$ʘ)˜‘vY6@èS3產ºÕ“»È|U?ƒøýé>³ Í0•¡Kvâ$åD¹HÐ)µ@µØ»,HCàÕ¸å¸yˆB›õ½ú@ÞRÒDâ,” e„5ÊÇçÚÇi[p?°Y½edp•%ТµÈˆlÎä£E©U =@Œá*A,2Ëó¡¤7Q2¶%2ð¯†é™ÊŒy©F•Še¸t@ã~p9 àa"­|,m¡?V2A½7S{Î(Ïax`씂äœÅ A€³v@fÈmYªc6÷ŸU e¥BÝ|ä;ÛFƒÁuŒ–5¢GKºUÓ{€ ½(±,†-Ëøp\N\14ÆÝŒ•NÜR–0¯Ï=\»N*ÃM>…ƒþ^>V¶ðªœse¹Í,v¢<Ð l™ç^mÆTOY2TœÐ´ãÀzP‚…Íûa^¨g¦â1Î@Œ±ßÊtÜa0m‹‚ÀkH¬ëˆ| i™øÖŸgá›qXâ{,iéQÛ£1Ñð ÁxŽÖÑÜl¤R(û5$fŒš04‘áa0V°@Œ¥ÊL,x›Æ¿V1w’ÈT gIŠZyæ€ @†¿S ¸ ¬@>г¤dõÇY [?gåcAËDmÓÔ•«ó5q†êqå±×:[ÿM¹Å *¦I76@AF«£)”b¼·1¹˜a('Õ5#*C¬2å¨a´»!ËïóF MXàE$.×ÌΟg}ðʼnò÷³PžÙ÷Aw,jéY ÔpØÁàA†Z“ÅãÆs«ÖAT¿‡]àBQkŒ (‡yšq¾‚·’ öŽÀ€ ›:Ô¥+rœ¤È¹bÔ*v.¼w-ú äIKLµžTå¤bñ±¢¥Ã3;A ÝÄ%áŒbMç¸sà©m1µPg¨¦W‹cŒí±½Ä‹.Ô…‰ y‰j…®ÙDÁ« ˆeŽ¿Á¦U°òã¸D¸"üõ,„çÅö ;6p镽a¨Lç5f ¬€¥bœ[pIØÓ+Œ+ [Ôü„¨X™–¥c‚º’Õ¼OG<ûŠÚ ÉèçÑH§¶t\ <N ¼±5ç'TìJ7õœB†zØŠž6{Gƒ‰/Óó¬H18ÙÃoOõêÕÄ·âBù*¦¤ˆîšÂŠ–ykª§7+ W,¢ŒCAñ pW~CïFŸNέC›ùüB™eƒ¤ª@Ce•Ø K0ǯÑýo¸t£qDtP:ÛOèµÂÀ oÑàâeä*O #zÏ4ê·ñ³¿Þé¦@ª4‚›‡þ¥€û Ë$=ÃZt›××'ŽEÎ_—ÏOþw4ªÓ  P²iÐzЫ & ‰‹§1%/O²Ñ=UÎ2»Âp‹WÊÐHËM`ž9ò3Æ®øë‚54†PEIDc¸‹TæÁ%=åmò¥ß*nœ¯F]Ù$XC³g>²ózËU7ó÷3ßÚÃá+smýѾ¥\²âü^æ;øíŽÕÛ¿þ×ÿþ/ß?Ëë Cˆ3Ø¿Ov' ”Ö¶ Dã#$…„:'„ ‡!$䦘ÐpX%9;!(ÔyLè8?Á ›ž jx^¹‘= …`F÷¸Rn¿/Ÿ`9F Ñr†Øé´ñX‘9¼ðÌs±ÅUd£DK2yÜ—1*ºØÜÄ í™Ñâ×[-¸ÀAˆá:†× #ØÐF`þí¼VõdûC1`˜pM¬¸XÙcxïd ('`¤–ÂQÖæÝa͈#‰–bÁ Ž£QEÄ DŒŒ7hÚÃV Ÿ4Ðrþ­¤ä &eµÞñ Ãb·8AŒ´ÚƒØA¤J’þÆ<ßaR÷  ›é|ǤËK¤û…›ä‰!äôèÀeaf8NÈïÍáÆ–HÄŠ| °ì º÷MÛ'˜ÂŒÂ* ìmŒ„G[„!Tt/ˆ„PÅ|A%ò…Õ΀y0Dav%Iˆ6:p$6Ó˜ X1‹Æ;Xˆ‹~àÀ>&•@Ã&•rÁ·w~‚×1Dà†3 ˆ{ í†y^1_%^E@TM;ãá˜ç üéñÚÑ=Kô˜„¥G<»6!n9Dìtñ°ÇF"¦îD´²&â'8yÄ‚Ô ÚÈû€ØÃ‘ÞD´ž¥a/¼`F‚ˆc{‚ˆPD*Ÿ¸8(FjáìeP•áˆ÷™|Lü¤VÒPø%ÈÆèúÕÚí|½‚U@¬PÁİßï™ûá© ˆ—GU_PøD‚r#„˜Ò„0õ➦ùÊØ„E¬"b™oF‚gFq""N#Lj‚×4ìŸ`ÃEÍŸåZß#xxå_ø C8dœº,i6ŽíDQ5¦—®k; ü¥ÒOë ™Êtf6p/AyMçq2/A àµâà­ÕZy|‚»г$ðJÜ9µç‘ŽÙGÃ_,æ2‰°Wèड'±/i½ fÀ¾\ɾˆ­26/êºUN(´‘/‰||šð[ÛÌæÿ_yÿ¶[K“&‰÷ýDÍ 9[£¾˜¼˜ è6»”Ð_ÕêœV«Ÿ~ÜÌìSfÑ-¯Ê:ùƒcGdS!ƒC_™OP¿z¦ÌJeX‚jˆ¹F,ºLÁsƒ9·mb4\àÂÅ ÓØ°JüJã÷\V‰{  æ„öjBÑÕ5~ Z~°Ÿá0c¸ÖñŒY 0gá—µ…y!£nLü½qÂÖ@ÁX¨0}ïXq÷J4bŽöþaqE>ôb¢ÿš* ØO¡Âد„ÞÖ‚_ÔQ5\Þ£¨ > !E 0˜¨ñØ÷’22Ö€X3ˆæN#Á$39sLÎ1uÑDcÅcø~€€Šð¡-ðÕî¥îáËkøÐãxM 8›ˆ_ò<³~!3Q‰Y"àWëH$KNøâJ”y· Í ¼™ï±âCU[xÎúý°K%O¢d"XrØŸë^vÑÞfr áoö<1ÑÍóˆÐWÊœqï^ßHŽƒ"èÈczÑ‘1‰Øÿvª{ágó+Ä~€8Šø¾øåâÚ¿uw]?œü=Î,\' Cñïy–(ü\~ˆ*+ÄØñë”ù@œ—ý[˜IøEð9#‡#üæ\Ñ~€ øù0vpê—ä¿å"¦Y =µ;Ü—ò;0túÀD@GÌt z" •[,G4öã£Ä¬CxRßã1oQæ÷xdº”-8ç!Šá螈 ú·»ñkÚŸÁÖ‘îßÚñË)(.3ž€ ~…N gH€ß¸20|jžã¾À/{ÀcVdàçuäF&è?´ÐMñû'à‡³ƒøu.ïñËkü\ÀÁÔˆ²S¡–´f`fh‹:( òYàº{Òx’«Ú]žCJ©àW§ø¨‰ßÜ ?ÀÏDøB¡³¤²ƒ/.£L'ÚQ¯ìéZ€8æû¡…¦mà9j>™ð+ºsv ."¡XfždZÀ".ptdçm1þóRb]Ò6—÷Gà —F¿}À‚ЯO9hŒ‚MG êFF%¦‘«ïØïCKº„M1 Ý!h‚¾*DÕa ˜òÁ V‚ôÂ@ä?{ëz †k¸Cí}”ÑKrP¯€>½Ií>°ýO~°~ ›U‚ó÷ÌÛ¿má Æ¯—ôÖn>àÓp&?ø[ÀÏù¶Ï$œ0H 7DHÓjý¯DŸz€ Nú d6™Á¢æ¤º7TÙØ±œ=cz-@pË Ä^B8¿BÒ"¿d…Ff{÷gàºÔž˜"v A4Lü0 Ç—aˆÙfa>½€5$±Ñ8âTò@"ëÑo™˜8œÄ¤JéXó.Ò˜êᇬð«ûzH\+›$´z݋׺HV8$ê¾¾"ø˜•ñºT ¥$â…G_ÙaÊÇD~)ðÉ ø°à@–„à “¬‹ÎÙ®cþ:#˜QX€=PݧÖ%v(Ý"gªT%µÐƒxQÐÄ÷Z E5Sn56&£FÙøÁX†Á“-— f`&Å2ë{ ^äÙ0×ʈùˆŠ`;8Dz?×åuôqBGÕ‚í³D2,$ !‚òô0* ›jC »©¤Õ"œ\o«/<ô:Ð, ðæ*[±üÿÀc1–=™qŸBX×Õ%eæ9€[”È¡ÃÓ/U­>°;—Áëˆ<Á¤Ev¤­@&6ü°’£¬™Púƒøï¾ |Gà׃ü} a]Sì èøA®ëŠø¡¡øðóNøEî^f¸ù 9[дy¦·¾6Ë¡"o0‘A™ðÍÇtcùÖ â‡àrÛûÏërz¤F£g#AÑ44ô !û¨Œõ˜BHÆ/6Œ¾d ¾=°× øYÝà+‚/¸ø£Ô>-ÄÅú|@€w&гr>X×ÑÁyâÑ×ë+R ¬•™â‹ª%“Õ¸ô¼v¯B“þ"òÑNŽÜÉ­lÉ—ä° CxsIÒX€æ‡àA” èùjûäA­kôù`ªvSYÀ®û¤û•gn]€ÛÁ1p:´óÀ}3AÙ†r. ËŒ¹2ˆZ"H¥B0<±•o —…\F_e­‰£ç3ôì(hˆ^uÚ¶G³‰Éâ=ly2ÎäG#zõq€×´m­ÑÕc¯žQGº£‡ ÄEßý¾–‰Xãz¦Ì}ƒ'(• ¹çzá8cˆ^3í\Ÿ÷Vi]÷ʩӹ“úäƒ U"lE˜APÍ2&mÝ@÷j> h-êE èZßb~N“LýA«yàWó¿ ƒ~9¢c¶ãw4½•Öåñ~à›Ù¦‹”ð%5Æ#|P»ç((pTÒ©”Áõ,=æÌжí]‡ÕpõÊíÝ2ïKá¨^€^ÿ+±wËáØVZWÇ=õŒõ¤Ì<¦×ªŠ¹Eðå&ø‚v/’ñŒCC#IÙ åÍBPxâ˜4 B¼<¿6âP¸<¤Í^­ûÞªt2ÒÞ}eœ|˜PHd!z°Ì‘bÔ!£¶nb)â2`—±˜ دœF4 75 ¦·ë¢–gÀ„/ðÒ» fvÕsÛ–ÃA­´.‰;6O™¨ýû©ˆ]htö8,C#B窰ã9úÏl vMJL®lõpös€žéÄÄ*h€¸z^ú‚W„]nû¾æ”l]jžò •5ÎR&E»ªMkÏD¥á¢€S¢`‚]#H‰sîÖà9íÚ‚ÑÆXBZ §ô\*¯‡è f¥u1ÜÑ Ï{'6€—UàIÂÎUa§–zð®a#v/§ÂÖ!=¿8šÑ*ÕS8«‰<¾q ˜àùù‘—~€"…àU4†AÁú`&+­Ká®{Êý²³j’UKÏ7È<#Aâ—µq!‰÷à#z…+ÏN4 K¼þ›á•ÎÆ¶B—€%¢ý¢< ÄNM,i­k6‚ŒL”#gÕkî8-|/ò dô¤¡vÒ8q"»o¤i®T¨ÊI£«)(RÔ~!eñ&¾'G®¨ÊüÐ)%Eš–Äo()~û×ßæÿ-SRDø~PLÐ,*i£¯ËìèAæ¬Sž0Ù»Œsèñ¿Ýý³æPØcÍ\wxOÏXБÁ²†"<ÊX¬”úÏßýµw³Ý•o ÷ÿû×?þ»ÿàÿõ¯ÿïýõòç×ùKÿKóÿý0Ã3Ö>ûüÇŸÿÓ~ìÿð|o<ÿOú-Þ­íÛnÀŸ°™t¹th+ŠIiwCå5¹6È‹0º“)üŽì§§Ãžvw´×ôÓD£G6 y·ØC=Xì1.ö˜§‹¼[Èpï4ÖÁÑ32 &Õé½qŠ-7Ã#•ŽÈC ¦.\+œ˜ç@ ʸ’°ì×ÉnDYˆVÛ¬þ¼¥?\¼Æ_ ß#•›#ë£SüÞêõ{«?í‘NGHçc¤óé„MN!qô³U‡-$fn苇”@Ë«é[ð7p–9#y×a.Ð ä þ Lj*3l©UoßW aÛÄItŠfÒp/¦R´ ß/Ž<‡¸|âüMˆËârq=†¸Î³áþë0@ý¯Ç{ÏóÁ¨@‘!0Ù€=ÒÔ"OÉ l®Uplúã xWFZÌv§ïyÐ7Màkß„¯~¾¶‡¯ÀWÜ!|Å-àË’F ~Í@­êGŽjÔC-òÀt¤#eg0bñÇ[ªªdéÀùÀÓ‹²»øU%$4ö}|½±G®Qÿr}äê.£®Y¶wfw3"w ú­ þ±é7ÏÀ#Ç–)þ{–)î{–)~g™â,cÇ–±¹e¤ ß-“ÉP@*(5²³¼œ ~`é›ÅOð…ô·U É]0w$uËÇ ØÓeq|þöÚLyWGÚŽ€CÉú©ô 1œ”ËáðM„í›ïïÁrt–ã{°,îÁ”Ž$yt¼#ìÁ—ÝÈFýÆØ+c®?>ä¢J©1ˆ4 dà™M½ a×*ž>à · œû¢o¤6kc°Ø‘< ˜¿y –o^‚e –£K°_‚eq §\Ò¡p®]|DunHµÒTòáý°@‰_¤ÒÕøüöuî~4¦ë-ñÅÊf‰ñÊúÑfzËñUø#þí¯à›WdùæYöWd9º"ËñYWdì‡(Dh ·ÑÝ,¬sÉxzÏV€PUÉFÒÆ ™!trŠž°x„©.‰FD>zz¿RÕ°ìÝë' |#Iû ^Ÿ!íÙ©ýÍû´|ó>-ûû´ݧõø>­n‰5:tb†Ø_$ $ôªžW¼f¥ººÏ‘ ìz/mâ`ƒ¡@"Œ vž RS}è¯ÒÃûëm-\ÑUŒ»š'õ|óÇÛÒÁ”ë7ïÆúÍ»±îïÆzt7Öã»±.îFÌæõÅ[&èuD´T 5ÿ,÷¡èe£…”àÔéE@¾y•Õo^eõãU6 ³kt·av½½îŽÃl"â6LöÙúºæ¸a½#±ÀG8?=…Ù5æ¿áœRu·H“;X¤).ÒTg‹4@Î'wB¡}kgîÉ yLÒU5Èoß|>Ü_ýÓƒþm¶Õ›¾•/,Øì¾·`sýÊ‚-öiÁwº`:yÀSv*õ´¦îJ–3(WëßNµûÈ ÕíVkµƒÕZëájmnz¤ºÈaSÄÑÃÂ)ªÛûóßR zd ”ÙPüëøïóû?í?ùgRpcrU)¼±3r£5]À¤¶¡&V2½r¼plÛïžíV¿·7š}ko4ç¾°7š‹·{£9;ß-ƒtm42d·;Ì›«_Þ%€éæáhw4ïþ†wGû˜÷ßþ)îwG3w´;šÙ\ÁÙ·bºþúoÅtýõõ+«3ÜÆtýÜjý#äÆÁò g1ÝàÂÁþ(ß?=\›á«GÞÜ¿½µÝnmF;X›±®Í4éb¥.hlpûý§À:¿Ðìõž&KQi²¥6ƒ=èU“%šê÷–h²ï-Ñì¾²Dsü´D³}á&µn ´ÝÍkbÒØ{²Ä3ß>.Óò7[õßÞv˴ăeZÝá2­ÓØ*9hØß§H}mt•ö‘Z(ïw|Nìµøƒ^ñ —LVhsß[¡5~o…6ûÊ mùÓ mç1á@Ôّ?¿î>tlè|ô…HÖ ÉG«Óÿ-wößþs”Ôÿi%ØØÿ9ÎWgäHq ™ü9…¥vdP|}_ž†–‰&ñ)½âA/9^žþ{ý|ý÷ûVÔßÿ ARÕmÔÿ!ayFå¦ÈN<ø³~¾Â>% °l7‡ ôËÝ|öo¯›¯ÿöy·@º‚?ìbèÿ<‘Jë;¾/ДÆ+¹wÏV†m66 ?ä!x¨W<ð%“ú½nƒþûÕï-Ðô•Ég÷i¦/„HÄ#ÚdÅ÷w_] 7X~|8\ 9ÿ-Ÿ y"ùr"ùr"ù2‘ 5ŠF¦6©ÊÒ*”÷(~kC¦)Kï/zЫ&‹´~/Ròõ{‘’¯_‰”|û)ùö…H‰˜`nG ìÖhËgÕÚú^­ýçÍÓá*mÃõ¯`n,™;–ÌKæçÁ(pÌß'ê ×­K)4€RçJÜR‘Íãá7þ4‹¨lá‹`ðƒ¼“>¿}#YNæl_|8z%bà¨.Hþ<¼gx{âk7…ùïÅfæ¿›™í-`G°c „…ÀØ×-=—¢“wÉ´@f÷]Ý ÀÏð/¤ãó›—9˜¦H°¶¿¿öpðº‡íýÞÑGYòáÞ€¾ ~ø&øñ+±ÅO±Å/Ô‹¶*rÜÓõÃãó‘dk>#6芻„mŽh)Ë BÊË;Š„2ÙG‰OA˜¢r‚åüùo õv–v 7gì–òä–áÈþ¨¦Õ­IÅMS‚ÍYŽ~çZR¾‚0% ëŸõð¨íåoûoµ¦9 Ìbïd“4ˆ¤•;4¢WjP¢×—ív˜zýø¹2‰ð£·ÿ c 5Û$[ :L¼ä Q½ÉûçÜQ»Ÿ]µ¾·Wa'á8‹´\M÷Ä ¦þî$P+&GÝW*Þç@úþ£ § 'ËIþ½›ð¾í—ZAªs$¤l'aØ¿.Úœ›Ïÿq:íÖñÒ3õ ú·ûßI ¶ýß_^ÿë_þÝ­ñÿù×_þõÏÿõ¿ƒÎH®£èK?¼¢!-êB÷ÓÈ_ê?‡™Êïç­¼Âc–Òeä"ÐHßÊÎ:ñ»ÖÉ ëdçc´ëß“u~}Ó:%WÙLdF}kùã§^á-Bo¤;t Êuaw°1âüŽuÞ蓃-Zø{²Í?}Ó6µys`-Dç\È”lŸ<|øªG z¬ý"B!ø³Y˜èÿ–YâÉ‘–Sù»Ú4¯ß4L«5wGšOÎ5¸Ù>}øðŠîïtÓþ5uÉlgïz¥®´P‹û»ºpþÇïZ§µn ]-9ÇA¤ðñó·×%÷Ú}b »§~ר'þ@+¾”ÿ+ß8­OXvq×ãËÝçÛKzà‹1=l¢liµÖù®?PóÚ:Ö#òöå;§åSò¤·è·~U]üüùÛk¬€¾35‚ eçÔïzÍ-·~öôïÉ>þ®}b+c¢€Ë£Ÿaöùó·×X…—ï§[…ÎWÙíŸö]× ¸˜îý»r ž¿kŸíÕIQ-––Fúáó·××ÀJîSßHÕÕ]4ھ봵sàúAZÒß“}þ—û|H°†¯ uôW}J°†¯ u¤F=K‰b8ûS.0¬e©T¬œáάï`L3#I"aä©K·ØäéëÛìz…r!Rj.µ»þ3¬Pˆ7uë> ègïz\à-Üç¨\"ËË}÷JQmbš®ªç²Ï±ô¸Û"S{7Ü骨s¶‡éB'qˆ2v#%‰61ÎTãLDÿR‚¸"»˜ã„xc5þ*H'g»ÃT3¸)J¥¬%¤ÉðÕ†__ ôå^Z™?,“d?‡þ×ï"ˆØR˺ Òy|ðàïNdBè¿p©ã»Ýî™]eÃ\´ëÿHÆñ¬%#+ÏlTþØ5 …µh3Âþ>>¦;¬‹x…37 ò}6Ò•Ð,rÃfÝÓ¢®² ˆüï}@ú2wt¨ÔuÂæ–-uB7Dµt—@\á©ë d–,¡ÚsŸù†´»<è(º¬!?9ÜÁQÐ9íãóuwteø&µ[LvsnÔ)`ä@1bvy2:þóë_ÿÏ·†QÐÚa½ì{ÔÂZ­‹kBŃàíž±‚’þàÂÐ!–’ŠžÊÁìY9†Ìâ‹M݇¼ƒ*Wb¿jî߀jÎÁGt¼‘7I"ôwÖ4 _·`N´ ö`ð¢UÿMÏC‚³ •\·Øí} rgä»çÕ¸ûp‚SS…RºÁd. ·2]ÆVÍ çèøfº:vŸ÷ã<9A“[šîù*ÓeÍÓt)ì]™ôWÆ:Ü õ¦óVa:Ý‚žŒk´1ì6m§Í‡Dœ1­±&f]„w»ol¾Ñ-–E1 £BT‘Y$©`¿ÂP­ 0{ã$˜É<ý/}~’K¢CidœùXbÒ§{8)Ÿ¨­Ï—üu™k¿dhÀZÛÞ€_ñc<"x@CºLº¾‚q0âøt<1ƒñ t”ç(‘ÑDhøŠ'µ.„qb6èLEdzïƒ;4sû¥¾" ´²I—e?@"£ k¦còEs€˜KE7[¨áÓ“ŒÕ (Ð'6"¸€ ”RC°á:œH+7¦Ã{• Á¥ zÛç`òWœÈކûeùTXìÒ¤õEކ,Œèc á¢úÌ~ô~zãÀdšþ’ÇX·,Ýš0_¬4Ÿ—«;wë%”?LIÝJc¸¹2W“bKõÓ“Œ×"ý—èÈ&\†ñRÆóqoÍg[¯^e<êÇÒz{Ùìþ[}Åqt_ÌkòÒ”¬ž°ŒÇè‰//2˜ #зë5·©S )ZVÐûŽŽzš;.¤À|#ƒõÄ3ƒûElMø7‰è ´Ä1œ)P“% Á||R· t_b&½4ú€iÁšeÁ:FÓ[mk ®Ü—RËe¬Yw o)ì-ø÷ŠçÝ„^&„7ÑMXäDÀ­£®9ï@ýEÛÏå«iÁ’bË  õ{ £lˆ2@ûÅÓÓº…l#L³¿Á~Ákÿ!¿á]±Áý,EêËÞ~’ý¼Ñ‡Á'Z·Çñééò&\®ã ¬ë$vqKû¥«ìטÂDF3$±Ë¹ã˜Þ0fëi¿`¿œd EŠÑ÷Ç:öpi@GïÆ³È³Û¬i -èx­¡ §_£ãaèB¢W(_ô§nAÝ~1az¾òÅnÆ ©[Ì2kvŸd?3‘ýº0qì?Ï ìçÇõW×'hY¹0¹Ækì‡ ‘O²_Nûð¡ä¯ØQ<¼AÚ+Ü@HÉ0Ñ…a˜€x ̼=+LÒ¨jjj¹@Lb3‹Úx#yÊ$“ÅÝ·0˜8Ó„² ûÌ uŽV{ÝûƒáÂÊ9|z’ ƒ§C~`§ìlH]ënõ¡[YŸ¡¥.m.³!ÈÁaCðììlXÝlXÅwoPzVUiàˆ  éÃ𤄞UP¹\ôÝ‚)p¸Å`ÁJCëp„ãVʇcËÞ_ÅÁxŸA{[i·Ð2 âŒtZ 4¡,ÈÛÓEU<ñnŸdAþ|{‰" 7&m¹Õ²Ž#êÊIÕ®2 G öcc¡Æ¯1<¤ÖiÁœhÁ`ŒY›æñJAm˜UÂâèÈí3MH]9VU»#’bdþ yŠœvª8_ËVðq ,X“6¡'_F-:ûúÍ€ 4ÈhÑ~’ “£#Ó]c²q;;øWÆn\„e‡©sG¦Ç¦Õ]eCcê 6,9íZ¿`ÃÒßÁäT Jѯ! /cÁHgT&ätråî*N»Ðª¬°?d ýÁ€™E_– ÍðŒÂa?ÞL@{ªàÀzEÆÃñZuÓqƒcÇQ2 ðŸžÆ”!M׸û QNÓE“ébw`Yçaš[˜.–ß—™®i÷EWöAD³³6Ìå!ŠGí3Ðr‚jïÂûŽ­WxHÝVƒc AƒìN¿~îPãkᾇ՘çCA÷ÞLÊèó,÷¬FPRN)ªý¨FÃLú1zGV&Ù?3 Z“.-óð^¹Û+·ÛŒ(}˜š°ÔœWÖÀr‘ùBA`^Ÿž-.Í÷z•ùz˜^e¿öIìö&‡ûEÙ/Úi((¨B·±Œk‘`Åíw ]O™é‡Dú?ÖûXfãOO²!ÛÕ2†¸PâõrC­ FZxKÖ… Cy¹Ê†Ñu† ˾ý*º¯¸0©»Š(Ä vP­k¼fÕ)tUذ´D&Ú0P¢3Q§'2­Æ µ¼LœzÉ)u†LöÓR&ì< o|)Ò×0¡,è±í"b»@ß÷Ó“,X¥EéˆEîgóa¶^;”íŒÎ–|ºÌ‚ݱ§“ß'³£ûŠÓOXcÕ¨Jd°‹4 †˜Ed` #JÆç¹h*¨wìÌŒê½ÚRReú•n”ÐÞÂ}UûÅ– Õ˜ôîŽO¿­jú25JÉÝ~A7W¿A-•&Ãöí“ Øpv¾ˆö‹IöóÃzK½Íì7÷_j‡÷×UöKY1Dê.ÝÞ|_q_bf á‡ù`=†Éâ ëÑb6ÌÇH!+£"EI”I+Iu m¿Jñ\¦ÇtÏý 0ýðCØo=T}0CßO½X”ËTéÆ3í>*¨ºÞC§®;¥ŸžðëÃÄ´{¬"ÖŒWFÆ»0Œ·<>ã¼y•ÆkW/£W 7¯Fÿ•$ (Ôà,ª¬äa>uœõ` æKu¤;a>jO±)Úä²,¤qÌÔÝ>É‚êˆ,pb¤Í„mÄn¦Z kÆ… }©—™° /´Ÿ<~oïx1ãu‘mB¨KTnAHÁ†0a„¡Ì1̬+åÌn Ç\vM£«PÅ9H÷3lvhéäŒ?4•aAÜš0 Š¹Æ“šG­C*»º*’²a”Š4ûô$Z¢„¤GªÇ8>|²nÀ‘€c[°. X®2`A ˜ö™ìh_qaXˆì¥„‘׆ŸÁL(évÎF£ùï¿DÿÅñÊkŽæó̼å‘HNôUÁRϧC?Ó#ÝÈ·¡rÕüa?n9ƒtýñ€W1‘`£€Ø>=ÉziµÂXÒ1AKëÅ6¬çÆõ—yì¸hí-Á•t•õjˆÊƒæ¶'¼‹ö÷ áÐx¦ÌäeÀzô_˜hñM4Þ€’Ä¿2)™Ùÿ–­ý’x}U2ûqY”À¯Y`<övã%YO‡'Ôpá9™¬Ç\ '”²Éâ㓬Ç.FfÙߘd½’e=$åe½õá¹èê½ÔzzoÈ Û>‹í+ÞK÷×€±‘ É9:Ÿ(`zŒî‹ÜÊÊ03¾½q;™Š¨t‚b/&GFsK$r‰ï ‘\Ôz3C¯ï„ã¨È’*è- Ðû’®GÞ0 Ÿd=a`½¤ûZÙÏ伬Wòþ–™³¸hè…ñ.+Aôƒ]±_É~9„¯x/üGýÍÈ’Ô"­ç艠Á'`ôeè—ÈH—²~ç/ª‡|2Ú͘ïDât…!*éÛ4R†“d%€耤=w_dþ=À°YarÍST¡R>6 ì1üø$ æ@ç%Ò±rVÆá=ö_n#ø ëàaÑÐ[ìw¹¨ÑÝ6di¶O`Çðçuøˆ<³Ù=ÄF™•®®\ ‘&dò3±8”ƒöz]\cú##GÅ6UÚÛ]”†b8“¡5'X¢±´܃ùkC2̺ÿp~CÈÂÌùí“ìWPšÂh¡ø»t$õÔSyrØo?,zya?»Ê~d@UÑ]4Ư¸.8€Q}³Fûg$ªv¶7ªªlv‰´Z ûaË¡ÊÆfO¯."ähÌiÀÌè?ãt3}Bò½&MuyLH¨ß>2·l´cSQ‚¤ýPK®hX¢Í° nŸdÁjô_’š6 –ῤ‘Ǿ²à¢“·Økñ—Y ÌåÀ„§þKcï:Šo²`á,¾Ž;, SL¼#ËðÙ¨ÉÿÐ$P›±QȪú5V RÒܨëfG9€;°Ÿ™°iÕè_‘Ϥ×ËðŽ÷›ìçȾŽÖ`6K¦OO²_óEw+›UÕy£Vú€ä”¬gëØaÑÄ›»õÜUÖ³î:Ðz݇ßÇçM¼MCˆÏ†õ8˜5èP‘ÀÆ Â8Æ~h¼Fûi–^‘þ“÷‹$ÊGfvêî®Tp‚¢KŸ2V°^.:>}¿ƒšßð}ÈnWP$Ié þLâŽVýöÉQÚyz0YùÖ à_–ýlܶ޼Ý~ù÷UöëÑ®î¿~Aï0缿bð€:;;Æ`¿ÄLb­”ãf’Åóôì×<ÍGë4Mpî=TlÁ ^õ¾ÀîÀHÎá.*I‚¹ŠÞ§4„JB¦˜rÓî (j ûQ Ž:³Òxó óy­ þ’)Øè{+²^Ø6ß:xXtñf{É/—oø.­„}ìpÞÄÛT{LrpV6p&ia41PŒ¶ Ì|"'.­‡Cð1 a¢pØ“#}ªqoh»aFÞ'Ã6õO߉joo´])ºùX:*&ÏîHU]Gm¸}¦kô\ S@y;9ëȺÐÓ¡ñÖ¶« Û=çç«l‡’_7$¢ÒÖçý»MEwD¸2^ ñôBrXÖóté˜ø í‡ò×……w ašŠ‡Pé´3Ð~Ž÷Ÿ±ðž*½—¹£hÀi@¶âý²º‰L{°û&€Zî ú,°‡D¶ùà‡Ûƒ2ö™Fa<‰ð»Ñšf”Ðû$&•n‘TUG=,XÇŠØ–&Üæ–f&œ;0Ñ~åz• ûÊ×%èÓAîº|ÁƒáDüp,9úDZ\fÙŸ¶ä¥ƒ?hàxBrd:Õ_–ˆ«ê}N­|¬$UFÜ¿Lt'°¢8Sƒ—+B¾!°Ê‡±úoHf"œ9~z’GQÑ‰Ž lõL¿ æ7îÀõ g\4ð€å2"÷@öµ»3`ý‚ûß?=*”i&—[0щqœÔ„>¢M¶%чÉìšÏðyW4»5Eƒ™ö‹š²–ƒwNéMý;A>Sö÷C,rbÛ·¾e3 íÓ“,Bz˜°2 Ê€"¼¡ ëh^Çï‹ÞhýHºÊ€ Ðl¯çëœÖße’©FxÌZšjѰÄ(icš9)¦·pˆfì@°p†áeX¡Wjl£Ç¡Hž˜¨:/X)"KPŒ*»y9õ &ŽÍç"GÚÕ^’“ƒÃàöIÄRÃ*âøhˆŠá1Q( jª©¶õ!ºèß… ãU&ì±îAKyIÔ/ø1,¿‘‡@‰ƒƒ¹A{dÊ úÖhb_R‚½g¤g ·Qî§ÇéKÊÈ€‘@n¿àâ"À–•ÞÔe¢‰ZŽpm È*>’ß,@Y× : Á'VGfÀ>=É‚h‡ØÄÑÄQÇ,i³à:’X´ñ‚`ñ²"DãFÛÞ‘i_pd‚ó0 “‘ƒFyÜ ¢¹û‘ÁR›° ð©c22”¨öv6Z0 õ•ÐÖW–\ Ã+d@@· Òh¨zèí? L4A·``¼Ó0`Ä!ª8ó÷öÉI½gô¶q˜-E%bšzèÇA ®c‰E'/}/*C`RÏ -¬ìc‰öG†5xdé3M(bƒÀP¢zÚ³l‡`,ÈdiG‰~ :ÿ„vkPoÁN%3-Ç5¦v@«Vï»}hÃq¾ïv$‰ "­½Ê¤ákìCËìãõŒtâ8\ç'YuÝÊq _ ãÅ0Œç·Ìz’3.Zxa<•ñ¼9‚!ïsØÉ}Á‰A QçrQªìÁ.Y¶ã Èû/Þ+½lêEÅ€[DˆÑ5՜适ÃìN„]à?cá1„· ØyɉfÑ3‰–YžçòDÆ×nd9Ûoìí¨ v%-—ÒXuyõ¥Eë®mø2Ë!K)^‡¸7ÜœßW2ª¦´²\¨“¦^}l„Û6ŽÃ§@9òÄôuã¹Y›§*[Ç/™‘Q§¦‹›S‘Ph¿cø&Yxt7º|=»¡*¥’h=‡sS3LŽtw·O²2ptãFåÅèà®K¬ƒ]µÆµóÊ€é÷U4äñ]ô} ;¹/ø.®pïõ8ð§!ȺÁhæ¾8kÎúƒº“1€H¼\XBW¿!] «£:‘ÕšOm+Çyзùw"ñÄ©é&1!ãÕ¿Ë@“y8™ÌÈiûñI‹ÛƒºM2\ ~ЧaÀe&-úwÍrz½Ê€Ð±“ó>ü|Á‹3 ±á‡µq5s¡ü^DPh¼øËïh·Gй!,ÇW0,¶‰J KÀ‹Ó®~ ›-'t¹ ¹·1òÇØš›ÐÖ5DÝ„ä`3é]{ܨ"éÉ|x“çL¦Ea–- ÆÞ–œ».¾[ðå2 ²ÅÏHïÖöÎKШÀÇðOSÓ̼Pt€ã8AÁɃ¦ ¶N£†À™P¯h2ßg’¾²a†Rx¨Ò9ql–G¨ÝØš̲ž)¥À¡´ŸÊh›©<ú‘’äÚØwæÇÕW–À´èÛ…Ñž®2Z²¬ /•}ú:÷íbP’ûNi)ðoXÒh${¡i ÔêG`ÁQeÎâ0œú-0ŠP9yàIîˆS®ß«}0zÈzyLÁ #ÅÔo‘îHÏoÂ$§Sà FMš•.Ÿžž7J…Å¢çá›ï…‘¤”um¼0aL¿.3a‹Šú²w[¯~Á„Üñ‡2•M FVß=wé$I™Õ4'MãaµÛõŒ›ú*²Þ$räh¹H.RqVê¢#¶NIô˜¥*/¦wiPŸnd§*Gú#t÷qdWÜà(¨ë Í´èÒí>@º¦N”Qží7ptté÷VZwénš©ðÙËP·EÍš-€˜fådñrÂEùô(Kq®‚¶¶0Q£<ð9•£.ö&=ŠkðÕ6;é±0W¾ o¢§“ù¨ ƒ5tsèá¥.2˜ä­/þÝjoƒÞÅÇmÌ fC½Ö³ôÐnó6ên·”âUvØÍü>‡¹î¢~PÃH·zG—±¬øñQfcH›5Ö-’I³J³¡¡áƒÙ 2æ9¶ ³A\Ôw£ÊçTÄ­tòÇh6‡ÃÍ0ºUIV&K9L¤mf{{ÔXtK¢&yƒX¶°%o:¥?Ø-/ìféšffûp¡áb‰û غš:K#Ÿëi9q>'zÌŸe¹ìÄÞˆu?xrÓtäúÄm”>˜#ÚØµÃpèc!<:Øõl7ºI´[†ÝØ SÔ ƒ‘ØÆ ©éǤۇAKURŠ™ç³'ÓV…†Ä¡ÝæÓ¿Suñõ*»õÅe7_ö÷ÕºqH´1kçh(×t7 {õÓ£ìÆ)¯° ‰×jFÓìæ+¹uPC·›ïá;L/Œ–kxN>jkCÍ…Ì‚%¡:®¶À“’ÄŽð;¨×Fú¬àÝL÷ö0!ÝVèá¹àe9óåØrqn¹òŸ®²œ¹ O#䃨mÝ6MùÄ-/ÇÔ .¿ýãñ¢,çQ‰£’¼,×/5X„ª œ ç"÷™a¸È£st™å12p!ĸÒãØq‘'%Éì“§'–ðÓan¯ÉÊOƒMw|€˜` £õ-yð¥¾ïº·‡Áb=¦Hm⯩íÐtóvéß=’ù*Ó…–Mgq/A•NÚ¥•ågÝ„–#Ÿ&Ô‡l÷8ª U–U¦ß䦭†Jxim†ðwbòÃfížQ“RКt{ƒYݼä§ÍPÒMúbç€ã-YØøf¯·‡ÁýßFs™âå4‘!8Þjóöè××Ò=»«ì‘†½|mû î¤=zÌ ;ÝW…³¤*º}­Né RW]7¡´Z¹*7Í»Å8]ذE‹¡ ^ ˆ´¦÷,«¡ÈÌÙÉ5¹$OÄ8™YïV³Àý6NH ñ  A5)Ûµ1#sÓ[à–™Øò•VC æÝhQaFlíóãèSm‘ÿoQ78 Ž 7ïy~ù9<_e¸~Ó‰`ôÞ'=Ï$ô ·Åq¶Càäöq Ui[¦ÆüQ2<ŠËp,½Ü‹€åÝr®å7fÚ®Âv)HˆÙ£µá‘»}˜Ž¹0ß׉ùaV§Ì¶„ ¶ýöö0„1m4Ïò,·!åÜqÄ=ïs~µü+\·5´Ðl.îï·uŸ³«ù#¿°‰BƒŸ·ÑX¡ZŒ0¡áV&Z ùŒÄ¡üÍjèe¥,2ºÄh5$/E~‹Æ>Z­É È(ÊSLÐMÁ+eö5;R£RãÍÚ»ÉÞøã*ÀF£ 7²Á%éûö>‘ÔëÝ`P›Æ™˜Çµ†{­q  ™‘DÆÑnËô“ö ÔiŽÎ¿èoöÍã°˜iÚÏé—Óx2ÆÝþy'óËKN¡\e1jŒH^ý½òÚ^1(+¥&,F?¦Üâîqã^‰Ã`QZ³:è‡#M†-I¾ýn´Ìºãpñ 1âG5j÷N³[ 6ªIy«q­ª¨@…ƒD›8]'mU7Ò(oÃl<Ñ>0aTÁhé8¸ž·0¿<õ3;_e5ßG«…=“t^·0häX+ 5ÆKcÊŸž6Ϊ¡Ö̹_Œ^È÷÷Lÿónº5Xø`µ„ì¿Zuh·ÊZid›*Õh4ÈÇ69¶ƒ¡_7°º*1yW‰3£•4 ½íía$šIÑLP•^´#«åyûòK?ÔC¼Êj! G$—T÷V‹k«•QÑ@Kd–o‚OOÇ_ÕVkÊ:´áö{ºýŽWRdÈýn4$÷qún[åùˆ^i–ï‘?n:좲UmTsTG¤Õ¬1¢Sý¬oV{{VCͪ†Q·-áØhS7䥤ßÁ®2ZLÎd´ºÓìNÜi´üvâÈ“ªSŸ7z['Y ™ÉA‘ݘø—ä &˜ó»±…¹½—Ú*ÉVF³gJ‘Î`#- gy’djî=DªNeÒ•±”YJÈ£8¾zŒbZ€H.KÜ7!RÑáo+«²3¯ûA[Ÿ)ûå »m4ìe6šŽÄ¨1gu§ "‹ñÆÒ’>Rùü4~%cÂ Ž†Bòo–™Ljꥰ+›V±!nŸþ¸Mq2ÙøC9Nãæ…[~ËðÛ¨sioU©o©ы눜c« tú¹hj“Íø»ïí©h…ª™úØî+¶&zðÀ|ÔF”¨œ`jQÅìɶ‰±GX@ƒéNßO õµŒù<–ðlÙÈœçÌ×-Ë„ÞF(F(Ÿº[”á$•‚¥¨øaÔ—f’ç<šwš«b“,ÎN[£ s‹·xO¤@B_ºV ñÓùPcñǀſ~/#«ÁˆXÈûÂJ'ÙŒý+#FG.SInr# –÷C¬ª ºÄå˜Ú``öŸ·Fzä:P£SÀÜý1jõ¯ß‘–ÈBÔ¢Póû~ùOr ÉcâÙ8OBJõÐû¾‰‘ƒÏòÆ0²‡),uB±%ûãÓIXgn(×p|Å»ãpÑ{™Êk|¾ ± ùÃnƒ}_Ž'q|$`ÔÍ{µ;¼ˆ$­»å4¼ Æ~­!w •šOcžÍc™AŒµ¼{ŠÖcÐæVj,×€ÊUˆ•±>î“ñ$ŽŽ“…ž@p|Q_ŒLŠ  $Ê~kj*œè†vç`W‚dý§Ç1Š‹:€‚Ì£ò·%§ŒÒù‰ZÕÞô= Ú––ŠÊÏb¼‘ %œh‰Ièc¢4€)‰ "Iv‘i 6%ÿééùmüQ°½©†›Žï€y·ßk-îš*-ó=´b~_5Êé,£ípm¢¹VA$ªjÔ¥„ŽSòÃQG-¸Ü0ÇF#EMŸUªÆœŽÌ|¼C>ŽØæ]v¯!?…ç«0³´Ê\û,I>¹àŸ‡U[QÖ¢úü=ÊÝOªc$•Ê*É8´0hc~||'‡‰dC§Þ¸d$ï€y{Ûu•.`F"ebæ­ì1;¹/Ǥ·aÚ'4©Ä݃‰ÄmÌNÐ×m¥ ‘¿ÝãàCB­<[w¨öâmz¸z Ø<ú+‡. sZ†lHm÷€œÿ``·‘±Í9SÁ“{ÅLÄŠ:ª‡À¨„Ñ¢TãçÇÆ )pdd6`ƒmãp6'Ï;¼^rz þ*ȼ$b~/Ô›ËY1l§Lb¶ûÌq{ ö.Ož NP¡þ•9<#ô dV>?ÞBC™'Tè29´@ÇGùœa"¥D4âUó~&&—“£ß2zâi9@»™5¸Å±ÙýÁN}ú ƒ¡²Ã˜ Š»ÇoK =Ö˜°f“q”ÆOOÏoøV„çWÆ×ñåCtÍ—Q~]ËÌòdÎÿíÑgí£8  ‚ qä$òDOZCÈíAÂ^}n#ÁØCÎYš¤t£’úIƒè0Ðçô-ÔÏ¢kXÀI !´¦Ãñ ±hÅåW¬WA“=*µuq]/`ÈNxöt’]í-…™K3QŠ,´‰ƒûhQñ”îÁúõ…œÀ¾j""Ĥ1Rè4M€Öt¨3£!áöqC˜¦¨%LúiðÚ¦ÓÊ‚-ê²f œ“=oÃátrËAr ó¥ ;¼ïѤ¿–"Dذˆ£ãõ_”¤à´!jùާpj:…ƒHœqÊ* ââå™Ù§§ `žÁdâxÝ;Ž1œN—‘Ëßó¨†Q£;À÷ä’ólÉE˜TihkÔ!MŠ€ÈÇ|Y' ÇFt©ZÛÑ5Ç¡yr‘7_PJI1…·ÏÀ<„½a$^¡ïË1Âóžß%ÇtÂ-1ÏÃ&È}”œOºøx¦±³;­p÷'öO Ý€š¸l=òºÙ²4‹ªkdDŠ‘%l£&Ä^§BHr}}~{êšÖ0¸±¨Âq|HÌ[H®c܉ 6]t%í‰øËY ¨ªÔR­gz :_©jBÙ D”üÍ< ŠCÐ’ÖZ#ý.íÉ€ã-%²Ç0Óüô¸!ÐUµˆ›R=ÇCDeAiôÒoôpÀ2m"ìÝÂ'-'Ð’0°IßáÏG{ ¼tµpnÖÌÿ&銯”!éJi;”/ä)9£å%|Pˆ($Ÿ€(Z:o7€É‘ ËQ.±ÝÒñ)ñD‘Ôîc çG¢œ´'v\8ÖÜåa¦+…u0&ç1FD*“¾#îÐãédS²’XEž„œnd3¶Ñ±&¤hÕ¾}ÜæÈ£`o”T«íØ^p=»`‰Þ6¶»î>iiɉgDE¼¶¨l¥Û:rά{p$¤J­¢E²X„¢œÕê5=ê9~ŸDm˜U–¾}øšckáþÍMŸÁ RŸ_ Š¾ ßꛉTý>Z®gÍï~Dg§:}¢ˆÚ õø²C¦2Ö÷c¢0‰z¾FÎ ¨3^uÅøÂdkDv'šþóã.Ï_&˜2‚&J‹7––óÎeLW@·5&{à•}6­ž5ÊãÌ#epfÔ•¬tœ}5 +Žm`ðÉI|)HŒ’”‹=þÀaLÉ6f{ÈZѵJÇ·&ÿùqƒ8QËDë7ð.Ç£eA’sY»sãý8b‹Ÿ5U&xi ÕÃ`§@á ÉÇ‚(´Ï'ÎO Mñ*nD'Ø*—°ùñRp€(«7ÀE´:Ù’ï"<ï:¹Žö ‡Àlºšý®ë¤œRÚ óK NxÒè „?Ëé?AlH¸§Ê…i¿ _\b¢hŸà˜ÜÐïƒ0&ìÀiîLáùObdï¥[†þëLˆÁ1wñü’Ëù5¼^qò#åÓƒ¹ˆOn9hŠ3¦Cë^ƒˆBÓ1B'‚ªy3ÇÓ ¾y} c‘-œ•CTDա˹ÅO¶†Ø1kù"̶þø€˜·\‹m®#×s4WϘbPìgOæ=úĪNû[Gl=ƒ3UÝÁ`ÂŒÜÑÔÙ7ø’-Ç´N\Öë?>mør,²™%÷ÃÊ6ñðt¨ó–“×”_ÂËUðÖ”•è ¶ï9®îŒ[k†Ò¡…Äça“zz°(aâDLªA¨.†!xWˆ/i^¢©­'“ŃúJB44¹¼®}~Ü.XÁA+³±^Žçë¼ãä:ú¾Ðeää¢Y©ŸÓ‚-. 5Bœx‘m⟠ñ:¶ZViE*Žv{AÌ®Z"dRˆñ-níóã8ºÀÔ§º‡£¶Ã0¹Î;N®ÿÀ$H'ÀaϵQO4©ì€asLrz*š§²#ï·VßÑl±Ð©=‘5c2ÊHtÓFÔÅñì¬ëÌ…$îõkê‰"ÉŒ ¢³£< LC]YäÙ‹S‹Š<ùeÅ ôþT D8(ǤîÌ97ø²…WZ)»Ç á’Ù¢M„[¢Š–?V¾¨ón“W—ëu9ïöJMõD¸r·˜–Ã87ä­÷kcõ³ëº 5ÃÜ%üd$ŒYæFÉ[ ¢`4éWgBÕdÂ!¦ÛÇ0Zàù#2<«cxó_ðÖ6B8w@QUOÈG,8˜„¼—êzãôr^…ðrd•óÀˆô˜¤ÄËI°/¨ô²Šù•~™&æŒüéi×dë„à=V¨ó~“—j@u$xŽX›k8¹ÜÐ Ñb] šÂ¹ÀëÑØ^ØÊî9W”ÅiP!¾Ì9DSGOVÉ£’/ˆªq7O¾<€Eê3¥#[ôÇøþ(ð5õóÀ!Møž\pÞótèᘠáHdž5v©ß‰Y—„»ÁsTÓ_kÄ—Í>a²Z3*öA½V+–Õú›Ç `ž¿ƒ"8ßZއy³ÉËó•øFvóà ÜÏ€Öxr½¡¹Œû;4-!›† ¥¨£58l#C UAW`A½½½èF†ožÍÖ)­óN“ë8{;0HZG"\R­{„ÏÔÃÀn¬þ *`ÛI_Œ•÷Ê: öšÄ”íª¤nØ‘tÑ }<ìè+#¼3‰Sæ‘î¹yÜFpD-7 ŒüŽÍ”,ë¼Óä¥fÂU[e~ƒ•{Väzªñ…SS\qU"„LQVÒ 3ËK„9Šx”D.uÈ;Ü\ƒ22BSVÇDåg”†U]Ö¤^º}Ã*6Ã9â†B¼ +¹ŒÃÇÄ HöeäšÏ®¹L7"29F%&¦)+õ‘q ÔR—1ŠÊqH4CûŒäÂANN€çFÓ-êcËìÁ¾yÜ&1›“À ƒœYááü×§êÂÙtÏekŸÝsÔÏîÇ­án‹h¯L<% °ˆÊdA¸Q_ÿÅŠ.8M,9ÃÌNt[+Of_EC ÍØÆž1p~û¸\ðã›À•‡cn¿ºàBIé%¸«.êå!Ûø>‘VÎô7+¹þ§S¡=Âh©“!ö˜ ˨©ÊÞëhTo·&-àĶªT„(êDÔ~ÜFi³ÃLíº$|Ýñ± O¹Œ)ø¶2VpÚÓfÕãF“ŽDc‚k¶Ðz¤Ô*V¢;:Ü=錋Z¥ˆ‘Ó¸œ˜h0!G?‚º‹…ûZ·âïÌi÷8à­Ì1ežÀMaœSÿ×yŸÉKHOWÁ‹šBV·OñÔsmž™_´U{và2%rÐk7ÑêФJ¢hϘ.#²É ‘‘AO “Ýt~oæŒÑÍã†nÔ{'Vz ëGë¼Ïä:æ ÐôtcwnöÇ€½!ŒKL­“9ÊÂö޹à*I<8· ÷­eè $¾I)ÜPP†2ZÕ^hðÓã†/rItðÀ¯,?–Ъó6“Ÿ~ÙËUS’ûpp=˜ŽJ¸ÈL&œÔ‘rç:ÝÑ,$9V¤àM•b ÛpN dë€x4ò”ÀÁãÀ±£b çvÄŒ#ýÉF éºcb!äú õ|Äy`ÛØ!¼n3A§^Pò ÉÉ@Fy$* ÙH4ä§Ì±bG*`$*ƒ‰”)1ùÝÖÉS6-Z²Bð¡|~+wç†(9~¦Ÿ ÒÖy—Éu¼ô¸†‘ë –÷±òºËäÁ3z3ž‹ s[Ž}ˆ^4ã^éô* Î$á9‹Y’A€øú¬\Ș2·U>™«Ÿ7€y«™wü`;>$æ­&ϯ©\pÛøyÐI·ççiîìšc ¦(¨g>[ŸMcîeP"ahröìÂH ‹Ì;ºM¼ _/@ gb•þÃÆ-ʧžw Iáãm¤öms?@Ù=g}úù[¿Ýsvµu›Iåì›hÎ1ñ޵e¸Ïî äT{ Z¤šÈé5„êø°›!k™Ø×ªÄH5T}¨ÏÕÞàB°CJà Týa×pê'9Ú¸«Hò&þÓ]`_á=öˆ™œªÌèT¹CïR”^ÄÑkôNhO–yÐTÅ)KUs? &*ø’bmóîÀTgbLdòÆÃVñÒ› ®IÆxŽ×Aè" ¥Ð!i4‚в±ÖG_¤A^Ë3J„ŸÓ=c7…±ï•Ç¡v¹ôÅÁÂØHz â)M‚x¼3Lãê€Êø|*]ʰÛsT»Ñ0&Ú>~þ¢ÖB…k2E³yÂý£Ôu<ˆüà\I^ºÿЏ²ÈNR&ÍÀr&ðó&ÁgÅMˆrš›B:’öŽC‘Ï‚Ú!¢ÒnwL[”»¿6vÊR–@è“‘ÐÙ4H{HÉD©×ºý F4¶Šb ˆÚ jÀæ€a-ä¢~í~Öà/Ù¥âÚY':üIñoB½ 5Ãå«™Ú8L Y cFN_ªÝéÃgN|V¤Ï%ôð ±dê8¨ÑaFÆFEÚoœ®ÇPÎ'ù¿K ,ôíÁCd‹Ý^S¤ I)œºQô=l ±™”ÒÚú¨îçæéúñpW‡»ÇxbãzlØ‘™Ta83ûÉ€$1?A2—B— ‰Eèž"¢ÙÉ|}ñuh?eƆx¡üÚîH­%ã„ÈEsÊ6žy¡ÌR+ú.6òOœ¶à„yÅÇe %pf£§¾í!‹'¹:„›™ì C¥³MM ²iÏ›Ç&¶‡è¥5Dá¼e¶Gͧ`ÇHŠ.¤‡Õ@¸å9nóYø|\†[ÛpK{ÜN&ás«C9YDšC¸ sÄÍÌôÖÇÄK˜²—U=NùnéÌqYk8–ŒŒ£®L[¹<ãã*àrˆUÀíg+ÛK®uèkÅ¡© Èe¦¯%8Ú( ¾2ohHÐ}+´†D.®crý’)À‘ÃX”9n~3<áã2à ¿Y¤®Èå“5WÊЖlcõƒ§TzyèV%§óÍ gÀFh¥Ê^±QHÇ@M&äà«áVç¸ÕŸÁ åAáf¸Ñ®ä,µ<øÅÀm“´ lÜ8uÄEÁxvQ¬DÊ„ä!¦IØ\lžvG\›·`Tù…Ë€ƒäW$ïÀp'—ÿb¯r–ò†+ÇH(£¹FrµœÎ8ß°âJP«¬æúš FV‹±âøÊ)róË¡áã2äÚ†\Ü´xÂýN ÚÒ1?Ö\ÔõtrâxƱѥªEÐ7²+åz/= žqtnÐH|9²nÁRñqp5lÀ¹²$Ö})¦.fy;ø6üÍAÐàA9ã¨8WœçR²½Õ£ÈZH,ƒÊ·¼8ºqy8¿aÜür(ø¸ 8 €§)ávv7Xb®ôG|ÙplZou¸qRösáΉËLðà¤c(‘Æ…mâ†×%qêð;ÆmA:‰«pk~àfe—Ûmgl%ÙKž&4õƒ¤á˜¼Ç/ÿ‚@5êwUqËÁñ¥;¹UƒnUôP=hæ…Å;!gSäò‚4ùwú.C4Y‘ôŒGÐÝ.Sº#~xÀ^—Ûú‘ó«Zr"’„´5ŠÅÚ«©`ÍÙV”rar¸WSÔíæ{5/¸"Ç ‘ƒÞ‘‹eŸïÎ'·Cò½^‰1«A2ˆ¥¹æ2S¶ÆöµvÔ$Étø!7.¹(îþH¿% xܼ—£ÃÖ?®®p.ïs#ÅÎôœ‹,¾ºJT7XVÆš®œÈQÿB »j°¯!êòê2ÀðcÂ*èp±&†#kèæ÷CÀÇeЕ*èJ>‚îä‚`ÖÑ ©•<|9'Ä)5ÏÌ2  ÄE'4\)åªÖï±ZÆ~#A 1wÄ<%7ïÁømø¸ ;å(bgØÕ3ÞÆEn~K8|\†\Û‹‹îì’ˆq´FÑ3qnn0vy N±aÍ3†ðöˆ’È@M3 †'µÞÈ[‚1Žª¦â€›gææ ¿RšW×Ãï àæ[;»%pQR>€£0›n/Xƒ¥>’Fn®È3)‹ ÔÔXtèGåN– ³±æ¨Bz Ü|äø÷ëë…À•\?²öÈvvG˜–†²\¸™p“¢Èpè8IèØéhdË!Ue«ô‰¸]GÔÊ.í:áòn'·C,­húÍìÂMD¸|¬“á’ŠÛ)’ÖîE£>7Ñ]f´Í±ðêX}´!¢¹nAøÚ^ÛUÀ%tÂ8ÛѾGg'9¦H’ˆú à U ÂZp¨ ˜±à"ÒÁNcµ ËÆ,]9Lvü ÈiÁyìh ñ¸D{­¯õ2àòî /°ÿVgŒîIÀ%ù#Õûœp:äÌ2nè(Ѹ,X#8ÂÈJ!š ¨] ;‡ ý¹»ßk¹¹ nt";»¢ö*ª†‰’"¦t±úáËLI`kpÖV Ýc˃ö!õØ-b¶NÈEjEz!gS䂵—!ý@ÎíÖûou[ÞCwvA˜ C-ëaŒ©ilO<ôCõÑX’»¾B½”²Œêï \nÄ.°í$SÄns]N ›_ WAGªBgЕ¨£&Lëþ@N ‘PfƒâWÓ§#rš†žê…`™ÒéÃŽóKb^¤~ø¸ º< ÛS@ö_êìŽ 4FH4öï†W2èù½N:+ Â;Â2o† 5„Àæ¥\yI@[žÈÑ_Žð ¹?Þkx½,%\Ñ*LäârgbMC¥UnIi’,67Öœ¨lœ“;ç!Ô³Ê5‡1²ëðºí‡[”ø„-b®ŽK"M‘K â»W{½,!\;jBÎí‘;éUkŽÔS{ÀÙ›¦ æåØìÕšж‚‚VêÞ$Ùú!¿Îžn.¹4qýå4®ˆ<nAj÷ê/®8ü}»æ¯þ[\A³ø9jÉ…Ñê õŒšéŒóÊÊ9JsSƒ„*&6{1KâgF#ŽÃõàF*xÛ‚«WÁÖÀaBØì¶|r=ðï¡8¯Î<’$Y2[-Ž.×&äèÌa)k—‚Û ‘ “ ü‘˜U¶f£bÙB$Ãáã2̰>€Y­G˜d–ØóÈ$†L$ð¢0-`ü"Ï÷FêjÏùyRÅ!•Dú)Là:žK-4¼¬mþo™Ã¶`•ÃÇ5°¡ïfƒ­{C{ØÎn… B’ W$F’<[‹m8q¦žÃ†j¹ÙɵeýJÂN´jÁÁ §WgÝ‚j€ÙÌ˰‹vòt †—+’F‚‘§ÑH§ë„c®½m3M$ï4Vw0DHèÀø@l,;¼®mð<¹`x}éÿ» :È P+»Õ=rg÷‚תsòEÒH‘ä$©Æ2j_AGœ©eTç:#rÈ‹°nCä|«cÑ1®=+äæ//Ï/ÏW!ç- 9ßöÉ¥³Útp¢pkòEÒÈ‘dMö¶-|nœ& ‰UÈ%‡:MÂØIßµ¡¾© ¢¥97Žºy"x1üÿüòôòtrYÈår„ÜÉAÂlhªhë6w£5—ÃØ½:é‚.‰‚äoê¡C¡ uF Z 4,Ž5‡ÐlôC̽ßÅLÿÓ˯—_WáfŽ_èäo{÷·ž\TË€´x`=æ\jbÒ’ËÓ Ú¬à¡â`ùÀ̳y¤8C˜ï£Ž¹Êt@Ò1—æy¹Å¬þ¯K¡‹º~Ìíãü³Ò4© X< rqx%A^IÒ’KÓ ¾ÁÕ =íÖS¡"ºÄ$ºWNÀ(&ÅSè|jø¸ : DÍ!@wrE°w\trLÈÙÇe6Äfó…]vFìà?cj—«UAç9RÞ„îÖm,n…\] W_êUÈ˹=“môgÕiK:èpœ¹‘"‰ÁÃ:òRWrQ{ÉHê3v@ðœC?*@r¸IÊp†Ó4ìçÕéŽ[y)—!—r±Ô´Gî슈BÎä–„:îOô6æ!FŸ‰‹òèÊ5Æ<:¢0ÔòQtØéZ‹Ž¡íð…S˜C7¿$ÊK~ÉWAQE&t¡@wvIt^~ YÊp¡ 8t‰Ü$fÚ¬ÉcÐÆ;!GBUfØ1¡ÛµŒîàróútÇ-½¤Ë‹¹Ðþrgõi3-:'¿$lI—$[®s/²_©b®—L9 ¼äç,”³…qñO`è«^Èá8,¦á‘”æÈͯˆô_âeÈÕ ¹´“þ¬BmLŒx)ÎtäFž„äI«äËÕA—»¢fïÕøÏÁ/–¥æ&ª“eN€]f**œb7¿$âK¸»de`çó~ÕÍN›v•w„µ :Å®>NtcfNÑ{ÍÌõÛС΀D…:èÀúö8Š^ Üæ5ꎚ½„ËpSFä°Z {ÜN®Êú¡tà| ŜӚ3ytIÃûá+Ê©#4#WOU¥Ç’ CÊ‘Ðå9ty ]]Þ‚~ ùº“+ÂW‘ç'ù%–6ètG8=ÚðèÆx«A•™~1ª:Gè“E0ÚØ†äÀ-¤ ìÅ¿øË€‹8߀;«Qkº m½¼?I±J’_F®ud7m8tyÐ@© j>,‹3O; !iÍkµ_Óªy¥2‡n~Eø÷â.ƒ®VýÝ®Ð\ôÄ87C·D €NÈé˜óáË:æ¤S*e4ÑEg‘Õ äãœr Â­Îq›_SûWáVlÃÍïøØ£?+PkLÚo®~$K’Îê6Ó?tyÐFôó â9êÛDò7b°ÈU ­§<Ö–fʧØÍ+Ô¹×çËÒÂ¥t`çÊvgWDÔ9çå–ø‘“K© ;-A¯NN—¹rÒRµ.Ôú1—°#íg²±ì˜Ýœá6Ç.Ï©áž_ž/Ë ÷ßv`v*„ý·:»#‚ÖX9]ܯè—Ô"(Ýp銎:'®)u5a<8J(j¦.Š É;ÿ6+·@n^£î¸=_ˆ\$r˜iN»F&6Iíù‡aþù?zJRÔQW´êÜðèÊ`Aˆ„nÄ ‘ DÕí î(@äF_Äüvר;lOÏ—%ÔkÝ€KGÀ]^À¹%~¤KRdº¤nd:éAŽ]£dPFa"m&÷¨¬Hàn×mP.û9tu ÝeõÏŸÐù¸Ï4Õ©…•¡{Pÿ*ù˜ä˜ äFÕUó$`¾q£W ¢D޲‹Cå#¨*k^ô£käæÕêŽÛ¯çËÃ-äêAäzV¬vMÀ%¹%.·D§ ‰š !pjB$×âã`ÂåBCT—ä9jÅ¡pöÛ”Ü ¸ùñë¹=_“®îÑaø”À…àNîWãЗÔ~{Õä–$Ñþ'±¢…%’øP›Ó%qhua}‘•|,9\­q¤…ó<¹9¯VwÜês½ ¹ä*‘+-ì#þ³jµnKÇÜÚƒF•–[Óà~tƒ!’32h·BœƒÿÐ8uãÉÂÈ çy‚n^«î°•çrpm.wÂЧˆ ¤™¢’Ûr%^»U›µ’ý±°¹Ÿj’yÌQ³9- º˜É… ”„×0<áçÈÍï‡òœ¯CΣÞLä¼í‘;+V»$äØçŠI¸á“8ù$AЕ¬ÙÔß_pA¤1Ñ„6Ϩ¦%øÝèËa#qŽðºy±º—žóeÐ/èr9‚î솈¤ÒÆÃ ,$rÌ•TrFB!L]˃¡¡SîÝ=ÞÆÂŒÃ&Eçþû²”#œçºy¹šÈ¥«3¿!¬î‘;¤fé¾Q“Ähº"b“O¶h(#9Ž £VÑJ4T-ÉRû{Èr·ºÑ“ÃJÏ6(—çŽð¼XÝa‹Ïñ2àXpãµíS%gµjhO< öbÔ•K«®’” eŽ %r À'ÑÜN}¤„cåVõl¥n£#'²ÐSOa›_ñ9<‡Ë`ã,0uª÷Ë­Ýâ¼Î‘lµù›.?–‡h¨w„õ†yãÁU=EˆA®LÞ Z¢v6ÃnSr+Üæ—Cx¶g» 7pò·~$ÆÍΪÔ$8h &n#IÂçàÛ½•<9Å•^/«Z«Òl®,ƒQ ¥©J ?Î6xšÒ´Å»=ûgnEë-–#Ü–£Ue,à7Ü´Þx6Ažœ¥<á1—Ÿ¥tï©3€‚eÃzÃLQňƒØŽÛæÿÖ9nó{Á?»ëpƒ"‰€ >ï[†^óä jLnäGb¦/Bò©é|ÓñÖ „õ6VŸSa-Ljɴ©p£úáÅM3K6/P?û§ßÏî2àÒ®û軉­ ÔX@η ôQVi¿4­¸˜ÉÊÇ3£JÇç i,ÍbÁé|ù8nS_NA›ß îéõé÷e ¡S† %·_mkZoO2 äÓ )£„µÀ¬–AO_H'ê%…G z޳âÙõXj¸K·Á¸lÓKáé7¦õ¯‚-m·Bðn×FbëÙiHf’õ·É )£‹„Ñ>pÜ}ää1ÕÈ\HRlÀBbtj˜")]Áƪÿ脘_ ó¢tÇìåéå2ÔJjVŽP‹'GÅš+oÒAo2B@Vßa Ê û1µ¿Í§ÑÐ3oP{Ìo,‘Ž¡«„Wˆgæ°Mo„ÚóÓóU°e\k„-ÁVOÙW ÚG‚œ=JÀM°‰kT»­‰AY“øÌ\vƆÁW'Ôp:¹»ešF²y1ºCÖÿwhi€ækÛƒÎnÑrËýØhÑAÍÔr‘<ØÄ›Ô4ÅÙ‚©¥J¶À–Ò pRYÐX±NçÀMo„ŽÚ¯§_—‡Ž]wÒŸý·:»àýW%?Þɽ©-’x%8n¾  !úwæéR)¸hŒ0R"NÁ†{Ôæ‡æ°Ío„_Oí鲄o ) 6wÛºíÕÞP9ÕØF"DÅ™22åætºn¬ß»‘ ®¤ÕÄZaÉÑ7ºm0–ù6·Àm^…î¨Õ q+7—wzÔÑâIœP ›ÉQkL! §>ê $Íoœ¸ý4$]·1G½S²¹b½‘ëM°Á'ÞæáV°å%l—eÉ{H=`³“wÿ­NîqT&6öht_êVˆrv½7y¸-sZ$TêßEÛ´†:&µÞ ªˆU«*2it‰ R“óæè¼¥ª,ˆÇLCJLH")TÙ ‚I:73%+Õýµù¼säæ…çŽ[|º,ÉÛJÎD®æ#äή… Avy!ÉrU^ˆÙQ#7rÑ^õœ´Ô†DçMeYÞkðWý‰cÍ!;W Dt@‹¿™YóÊsÇ-<]”çÅ]_rVöi|v3uT’9ǰ§À;|ãÌ[ÿܑޤ’€ÃS9c´:#nå€6/:wÐìBÐÒ­ÔÐÊÙµ ñ™HùtPF 4åsd¨9çë„#YrçŽè¦@–‰ÛȹÑZ£®¯‘å-ólå¼èÜך²Ë€kx€×pÜÙÕà\Çt*ºuܦJÿ-¥ü·P)J^4pR¸q§ºÑYÃÞ¥mú­Ì3Hóšs_oþÉ_œpn¾Õ“›a¨Áš»b´›¡FrZñ-S^6±éH%åÊ‘^Œ¦»¬ÜÊh«qì[jv†Ú¼ÜÜ1sOî2ÔÊ@-ç¼êëɵÀ”d!Ç1`¨©M:êQAŽ`¸q¸²g’EV!nV…›®ÚàpoóM:/5?9(&]…šA`‘¨íY¼¬žÜEª3N¹0úð‡È69„¨<ÛTü¬¼PÑs ‹¸“<@‹M ¹q¶Ù[“Ü µy¹cöúëõ2ÔÒ@-Õ´km°vr'”LÒ²FìQÍ+ <&luðÇ{mÌWR Sò´È^A)†äPŽ “ wé¦WçéÊy¡¹£öòëå2ÜÚ†[<ÂíäJ()‹»—H™Í’Óå`Jzê Ôà¸y*BSyelÍ 4QuÔ±ßæÜê<ë6¯2wО]”ãM$ìàJ9ÈŒ‡©qœMX3"êò÷‰IòŸSü*ÅèƒÁ ºïîíÈv Yn¥ÞÛüBɧv{]†Iäa•R¿Ç$žay1É~4Á¹»ù\° »ëÙ£‹Ö"•œ'8’#›£“èä”.C¡ЩÞ,™úExԉзN#û° 'a€G<#áS+KxæÕàßÞˆWÁ3¤î Ú¥,º,y0¢£E ýíÆÀ©,4añ$œptú•¿F'.Љ)\†N&Ù¸A0rN>ELjŽÒ¬§L*þöa ƒÜ*úÑ€O?}Až<Èß„Zçø,ä×j÷A.Ã'²,nG}ïÁNc-zã9u4¾}¾“gPc?²ÉÔ@tDD£åÀ§œÌvz2Ì\2PDÚ%6|î‚à»À7®ãÁÙÆ{’›+|RË©ºøz>ÌíÓ£;|ÂéÙ2ñ!"f÷ÐìöaÀS°¿qGQ&-„ ŸáLñ™ŸÎ©üŽ/—áÚ(å½çNçzZû! P,Ü>l¥{¤Lð]Ðo…>ߨ`= Bi}-´“Sy—¹Ë£%‚’={„¢û"B¼Þ­ÀôKzØò@¨rùn–ú8¶˜@a}-4’Sy‰OW”Pâ#@­ä=@§G´ða°j=\O‚àãÃÀ§ŸAbŸ~`BøÄÁD— _ŸÑ )äTžã¯ËÊ$(ĈP=èô¶F„èaž7Q ïæaC{ MlŒC#*mpÎ"·>¥šÇ±<ÅvB¤päÛï±tzLi-².±(pó°!îÁsÃ=†›= ƒYNå„â•åW¬—!¤!?p !”¿ŽP{o$oêÇÏ>=’1NË“„+¨cںǀâú"[¨÷/–«‚z–ªnP>=¦MǵXáј{û°A”Qk[xR9ž¶Å"[ßd ¹bWJ¼,ɦ¢ygßòé9mŒÄ¨d_cwÄ_ùña{ 3*ø®f÷õ:ñÁi ¹uh^Ï|ý]r¼,Ï7^™?XC§µçA](rZeƒûyû°A„*o²ÔÃ?46„BíOm\z3€æµË××’âe™P8  ¸åôœöõ^úsÀ¤GYÐ;È· ˆ»>7Yâòãœî·!†Å×Wý¼FùúÒîË’¡º±Ç²íWP9=¦=i ‚óêJvûùΠΨ8$ˆOn„gí)Î ‘¯Ï¥û‘—¡“’!_÷ÊB¡žžÑ¬W$]\)áXŽ©Ü>løØ=Òö¼Æ2ñÛíˆ__bóšãëS± ²&?È\Øï¯zzD{Ñ…JÁ”;ÔºyÜódÐA]¬CbÛÝ?¯mh_ux.K•Pú‹ðœŸÏžðP4>"oÂ~¸›‡ žr~D#<KÆÆÍýµ9L3€æuÄ×V|¼,[>÷Ä-¡žÏN ”ð#å¥n6€"ŠÜ`5“àë`¥ãJë#h!ð[‹ —åË4ÑÛênÜ ÓóÙé$ÖÃõȼÎÍÆbù Ctpà3üh_p\×°¾À:¾%ÿ¾‹rzÀ¸[Añ¼:è˜pÍt@íˆÉåzû02Üð%p‹ ¸¡à?8渂FUh‚P\èõæü.Ë(ö›DK(¸œ÷Å/"Ä5DåzÇ7BØc¥p5®¡8iß]ìF ø%Bù‡*&'(´Æór¡ã1-ÏÅ R>ß>lášG7ýƒ§xQccœ8ãp©•¼¼çãB€7å—pYÖÕÇ"G(Ä}Ëi~:°ñ¸á!l*°IÛ ˆMÌklæ'tÌÏá²|+b/a“÷àñ´`K"´Ãˆn>ßð M c2 Ÿí„6<Kk|æ'tÈO×áãZ’ê^{"ž 7|‚¤tË}x” ÎÛç>Ø[ ׿çhcƒƒÞˆ[ƨq!™kùW¸,ír“Òü=>ñYjˆ=Pà6ùøù†nxÒÉx ··Š!8×Á³º¾¿¸¾ÿ —e£‡D¸÷í ñ´dˆ¤ ð¡Z¿ ÃÐâxû|Àã°š\àö2?yÍ`×iÈ4.áY¨ßº\/„G=íM˜ûåsZ1D'S`4p"I÷‡ !¬'´Caƒú˜ ÓqÃúòZÿÎ%\”¬GÊØäÑmÄp~@ ¦ˆ39Š3ýýa+Êo0´aC=¨ê5äË 9Spw€B½ 0Ž ŽÔ ÓŠad‰dZ ö„o„P?î:OjQHS%” Oìõ6/¾¼äÊe…&ÿ'ùp€Ðé]yF§´É±åòöaC(ß“V)2S„Юé•õ-6¯¾<_Šò‚RûMvZ3ÔÔZ¢©€·ÙJ¸}ØbÆsšQx¾4ÝPé­o±yÅðå)÷Ãà*|zL-/(¥|N+†¡2S&Ó¹ý|CMèTÏÔáØ`Lz¤pÏüŒþ•CH—Á“MNP*ñžÓ3ºêgt?0 n@€édHm‡´q­KÎq^/ìu¿ê2„¨†õ3rÖ Ñe„Dn ‡öûîyˆ=PÄ„>ˆWëú›× _ZöÂ'ðô8éžÓº0ÊØHe]åxû°áƒ[>ï°b* nG4–SÌë;l![³ á*„JrƒrÈû-vZ, # ›8Z‹lY¼}l¹˜¹ÅJiDH‡4à‰ë l¡[Òï`—Á£‘èb”ý:-nðˆç™Œ?~ºAƒÍ•<7H<Ù4Fp>ÇuÛf\ˆ½æôüeè -蔃Ði0žÏQTʤÖOBQ·èþÙiWßÜ¥¿—Íè”^‚» "7z‚r;È Á ˆÄ{Åž Œ@Ý) šƒÌkã`ã¡…¾Rzº!130fì·ÙiÁpCHÔLLø°6ÿñaC^t®\m`·Då}pšUëtëBÕ:D¯—AdE~PÉé Ó’aÈì› GO‡O9õûÃÒ‹ÆûÎi©df¦Èb\#´LJ¿ìå2„@E„ª«{„òw‚Ö¯¡íþöá#B…« 9h/Õ"Äüµõ]¿WíÑ®=_…P*EGuu{ÂßäÎjÞfýèF1¨›‡!ªžÛ *^€h;ª™µ·²¼ÍÒ‚¢öwwEŸ.ƒHR³t{ˆNÏêÄÛLÓäÁØÄÚêíÃüéšøJÓðAÜkÏN´Fh¡sÔ]¹ë²ÑÀÙýêƒEtzV'žÕb?Æp%…@o6„T1CÏ/G{@2¥aq® õfZpξ¤l©?WˆAFWÍç=:~IEÞ!åõ$2-´þP£óýƺG¢Ò$-Ö—ÚÕIÕ—ZØ,ÓïAˆ£ñj¾ ßdè3¢â¥g濱v÷€ ÄØ¾«½§ÞÝCÛ¤- -q ™k°% ï¡ÛÀ^Ì9VRZ½ÿd aÈ{¾£ 'û¡êJQkÈò=ò´ìßÚŸ0` ”Äp&%uŒ“¤ˆK³‹›Šç¿Pfwenøéýãûí.+7Ç\NG2îÕpÓZÓ•´Wh¼ømUŸ“š]÷IƒP·&ÇZп1vÆ\´%Í럑ûBʾÿAkØ÷_¤“ú'2z1¶‘P7`à ‘¶»{ ë!Ù5¥†ëøw…¼RXg6¼è‘@mz(ùæU Ì»÷Ìé\+Êa~ʤæUÓ Q-hEÕÝ¡ ¼¿žN‹¦žùBȉ Ù¼Ch6Ü4r …nLìi`í÷ØÀ Î5Î~SC§uì9’J¡¿J, YíC¨sÈòp4œhrЕr qÉžŽÿ†–èï…΃V :+ȈÁ ˆä<¹ÓBã݃ˆžÁo- Rˆ˜±@ýþÙ!ZÁýZ¿öš œõÙ¡uZWõÌxxt‹{é³tô,1_É~âë‡%ÆUTÙ?¸À ž©í͆zi# nhš.±`ú Up;HÔîã×´Öj%-0sM-.$£.žR¡I¬ ¾åpç%4ƒøpGùóû!z²7@J¬JÆâÚ¯Ÿ˜ÕìxPMDGN¸Ý0}Z3ãÒ9·œ κ¥:³ €´“ªÈÁ›'\…bè˃n:“–¹5 È'LPCd.IƪrÐzÙbzóº¹)(ÆsDÎ1Ý“öÅ3ÈÄæ²=°ùV’t‚ÈðÌÉLQÓöhœ,÷’¾ó¢„;Ìj#ãE"l!Mqœ{ óÚì…c € T€ìHÈ Öf©÷æ4èßn¾®7Ð?=ðüßô‚?Ý}|ïñò)„óx€ÿ»Bú´Ð…FüÔjÚ_kµUD›z9R¦(7î4¦î‹ªû§™Æ &×@ÆÒ®'Ä¥òï ‡ìŸC ñ. ÖdbˆÏ!­œäËÜù¨¥HU%èg’®žgç ÖyáùJXÑBŽŒ?ȹ}Fò¤ð8ƒ‹fCMÎE¸f.‹òu0Ý àPS$PÛsß]ÒgŽ›® 3 'ï•î‚ø­/l¼0‚Uüž\wúéúñS\ó_? ŠW(xdãöóÑé¤\íÑù‚=¯Î;G´ñ€y($¶‘avß5þ[½{ÿz½SNÎÃ’m{Ð+¶¶>½ùöúŒó’ö…ËymæËû2µ=ÁiZW´%Z@‹Àê­¤TGáÓ^U´0DÀ;®¾ñòA{|™¢p¢ÁÁ‰vwUü!¨HÖϪzU^W•J‰:Ê è6Ò0Tôˆn€6DùðU(½T82',—Õ3U#v*úžj&W²,ÂÙyÅû÷+>®ÂÍHóÀFöݘ×J­ÄgÄ-ƒ¶±qÐTd~©0ø˜Y7Ë6`%§5çN¸(Šˆn¯B}´›øëKÖ²ò‚g÷—áÆñk$ÑöÊUÙÅÜâí.\RÔPE@5U=aLÜÇjg7-U£j<Ò¹jlFÛøn’žKäï3>.ƒ­E­·šŽp«'¸…wÑö8[Ô¶dE Ñ 7­„_³vCÎÛðEÔQ“TKsný>FQuCMòÝe®À”ļOø¸ ¶Àˆ°ù¶s¡óYѼø<Áyö3â6ZmU« å·íá`wC‹Î0Áà"O7”Á;nDÍ7OžvÐãÎq‹?„(/€[)G¸] Në (Ý5g8Æ œV¹ÚâhLmb [ÀÅGl ÜçP¿­ã^vÜú»0Çn~3@ÿà×UØE³]Ø‹Ìe;¹òð>¼çÕÆîÌUÐ ¹H £/2¹’Æ’ ¸P6.P,w™ãc«zÞ%,RÏ`[ðü6|\ŸÛQ·o¶“›!é¶ÆS ó¦„&ú÷’©æ—Øþ0P¥ü0±ÆV”þÿ#ËÍÈòe*˜à¨Xý8×KË‹"tÅÇU¸%Wné·“›!ç¡éHœ,h/²OºQè¨%>…°xpà wØAsÙuŸ%^©å¼&ÁÖç{tQ‹.ø¸ 45ã!WtZ8¹r”(kɼüXN¹ruå<Ûh{^Iñpß"$ª¬Ò ¦˜5q3œoùýtsT¢ ÒSäi|\† Å9Šì>˜gÓ3Åd¤Cj•ü³Š`^_ê°ljŽ|œÀå’."â¢>´Oº` Úéç÷ ˆ°™*ÅË$×uq×£åÅF2ÑBøº$5ƒ«°ù‚ðïþN®Äˆ½¼í‡#¥5 bFTù$ÌŒ_ËóügVnæ ±ÚUåâÜ:†…ö¼(ú"­Åu#ÙŽåîÃ,¸í„·Fp©&¬YŠ1K€M0¥æì1Հ¸‘¿\—ìÁŽýÈž/ÙóÜÄ`[£ÇÂêíP¡Ô«Úê{ù‘¶é5ׇÁŽù®­ »mÝýM?É$#zkßÅ\oÀÏzú€÷Øš>¡ªÒg׿ÃýïÝŒO:)¾œb™ýàPÒƒ ñèTN Òì'Îñ$4IzF—Ò–«“È‘lŽÝ,8JK#WÔO+HûA1˜>!R¶ƒœ×:2‡­Lk-D¸6ýµóy3ERÄl>BOg` Zmdøï ’ŽŸºòÖ¦E3h8VZM7äèIýAØ8™´AÑ™@ ¯¾25C-7„œ:¥pŠu»ûžÊ¡ ŸlläB\`WW óYk½,^mÛ¨TÂܺ!ë׌軑ג¾ !zSα­vÖ˜Ó?Aí¹¤û`”C€÷…ÿMõ0ŸGkù:ÓmvV˜§Äv#˜ÓiûÊñ.ô¥‡Žé]£¹ó™};i:~ ê2àjÌB£|wÅBWѦðQr~!|r‰HíGña4>½Zel¢ãªzÄKø" iC7c¼Óq1ÎuqAMjdÓ#ÍŽM§!ÕÞGYi9 ó KØ© ¥HY[ô1jiĪÚVt~ëƒ[V>õW΢¢¨@1}3èàØÁ‚{ô”¤ø ¿íí¶Öû©w?§¬Þïè„Ï ]Lî–¯=VDšW|†¬Œ}ûèÔæB´…¢(P¢ù)oÅuãºt– sÅŠÜh Ç2ª³PvL^¶¶´å³ˆŽ’)vér¨_lǰÌÄúŽõÅ ø|Р)´”æuÂò=ð¦[UÞ¨ÜëÈÔJœ—çIwÉ}¶ù«F¨7ŽhNî‘ìÆVlc³µÁbZµ`XØg›®­r7©§[¥ªbíS`80îEìA®ãˆp¢Näê—ãäbÓ¤`aK„Pûs¤³/WZò¥íY”íÔpk•{•°KÏS%éڥǕÓ'RâÛ8pf › fÁ÷ªRÏ6Ý‹RïøõìÉÔœn‰ª·‡÷ƒ¶LNn‚éŸ œ…e¬öóâì5ê¬9½¿¼ÂÆQ@É®-©<ÿÔ+K ÄUq×ø„ÚU˜ŒrjÖÃÕºÕ ™F±E)p´âB²ü”Ö²µåÎ3RŸBN%Ó'°;"€F\. JŒï÷ñˆÌÿ ›¡Gh+”öm2û(ú¿+Mö~%õ| ù–C6ßÛ¶‹'i+©^ÀÑ!£:Õ^¢4DçSìÛÎ 'Þ2¶‹QÇ·§Y*j›C¹åá;>[`TòÓjͤ‚ŠS9Æóþ¢ø~߯Ê'ò‰'7ÌtÿJd_)[®|×§ié’ûP3æ8FØӫ›¢xå=öÕK. `  ;ug5«w(Ò1…‘,æJ&à5›ñ¥v¼“›ŸªÐ W¥×ô¾Zº¤Íˆ!Û`Óù$˜Á»Ñí‡(™¡ŸªÐ¸P7—§ž&:k$áe•bÌ[¹,{5ê •]0çG'xvVì8¼9µ¯V1‚J£ñ*·_é(qÛàß_ þ=ô´ìTD/?"¼Ïæðüÿ7^;DÆ¡eðâz•ˆTÆ¿fYÁsá:0D_$9f&Ê„w‹_Ì»¨´Ö¾O•£œê xM‡ £°Zùÿ·#"'~!+‰5(2öÙ&H¸[ªè0Ú ˜”}tæZJºLïWÀRD®+“ñ'Ì—qˆê1ºÚ.=üBºRcÍu¼ÍñHj)½ dÊ-’ÞþE0ñyAñ£ %Lrà ÷[ÕÙ²W½çK®ò[“œÜ8tÆ—_7H‘8®ìØÆÞÐb@"üÑQOvž§h‘à “ÊUruNJÐñ€èŠö„RŠÆÆÆázïL&©Àwßêù'ÄoËÁ9Lø×ˆGfd³¡5}Y§œ°xý§Pƒ(M•JÃ}S£•5Ò~kuYf!ÊùkÉëpÆ$Àç’œu~jpFi*﨩!òò ž]5Ô¿9í1¡^ãhn $H 6,4]G ü¢—Ýuª¼À¼5üK¿Òrd£µ24P=þ"(ÊâS2üž© >íóüÚEBBÔ‘,¬ò ÄUÅ&’k ,ô¦ùÐε¥yíÃ^Š—f/©¢ ã%pt!&èy¯>_Yý/)郿EÈv}#šQ­K.Ÿ»@ÀÃF Ô"”K •G*-âúˆÑ¨’s@…Œ-Ë`d"‡{ã-y@\:{wög„ègÆ®üýþwóµ˜F˜0O^Öb’f»ÊL·ù× ¿®¬ÓâPr}‘ÍD¾ Bb§Ê-R¸ŠgRdLæ¼Ñ¡š@ÔU#ø^žp‡+”a&ɵ?™{FqS²Òy#õ1Gs3¬1[’~ M¿×Óc4èx0ÍÔjõ Ì›¾;Ÿ'‚N[ÄHåXƒîøGŒ½ÞÁúÍÔ¸­0%õ…T®|fVŽ.iìi=/‹2%_E‰L¦Ž²Ëš~ Á,€vä\­'‹¥ÌCxPôÂ3~OJ®˜Ï÷9k–rŠ`S’põó'bˆˆ°»>ÅÊ^à;ì«Æžm;Ñ„1yÀ±ó1™ù2÷P|ã€Î©€×âNlË¥x]+¡®l䉼_àòéí¯>µ ¬q&†ªR¤°Q·ˆ%Ÿ¼,mGæËÑGÌÝF1Ñ¡úY¡ñ» B¡øF|ï˜2£ýY/lU²…ˆàMqFmõ5Kîvžc[5C^_#ýפÎN×Y²Æ€4¡ö™Oár²4}Ͱ›ÌŠÆ ɽU<0{o+VãfØ–0QÕqðâƒâa0‘tõ)Õ å2+íÒÊ*˜aD;ú›î 'D.î‡dô/T™‚ÆÇÉšfHâ¾æ\ýÂo‹'{Ù\  ƒQ©Ô`»O~)%ÞâdvEC¥SlÑh?YB¨·ØëÊ'™ë!:}= ~ÈFtçŠÒ”Ù‡ Õ.šÿ<H±•(N3~äûGœ¼ó±FLZ²’žóó”0_2ö§ÁE%Ênà<9öÀébÑ44ÁØ<‡IûÔršp’ÕG ›cJ¸[ ¼lP¦®m Jï/>I´±†êÁ‘‰;ÕZïÈ$€X2íR¿0°‡ ·%ë²–÷‘^h">õ®þa†õ'C ;õ-\‚R2öiȃùV¶Çîm,C'‡Ñ^®Šˆx‰Ÿþ¹-cõ®D@¤¤y‘•@£ÈæÚ­ÃËͪ„®ï]¡ÈQƒ+‰³ÿ${&Lûuñ}NAAG}»i‡ýmÑž*êÜHuYŠè¯”··îðöÑOpÙöIkëÓ9K²º3kn|+ `ïSç9p ªw¸žÐÆ(ÓÆWw{-E!˜M ÉG¾šLÿ°¬Dƒwc%G‘Úå„7ðHE.-9¿÷—Ù-¢ðU} BÈ›c WÔ7ñˆÏ]&”8”“}¹RÕyÜÁœž¶bÉkwÒ-³ƒòƒ­¸5á&ˆhNöy’ÌQ¦ïMÞJ•„$þKŒ}ÿ#ŸíG8—¤Mõ2ò¥®›ÇñM±’àìµË1‘u3†ƒ²oncXæ6QÞÄeJ)*lìZÚNB_Ùî#+O—¨’‰ªu:gÂûâOpãίÓ-K:qºÌõêâµhKvf|K"?{¯D9¡2"«èÀJðý{èŒV¾¼Íξæœa$dÂUe:í†hˆ¶JÌ?±®sJ¡4žáˆyDZöû¢àÃQ„“D¥©ô—í k9‚Ì¿.ÉgÖh)y ¶›OF;K ß–×EX„5Q¿;Âjr꦳¯3°n8®·âÕÅ“=ËfàKYMs¼c[Ã(™ADÒƒ©!ÍgÈÚ=rà’SÚ¸|Ÿ«Õ4n(ZV5q*—î¼uEsÅ, ÌÕÈb‹Š+ bv÷:ÜâÝü ŒE´/‰õ6‹l÷FkÑy¦Yí‚@çP§Ëž°î¾ÔÌ–à ¦j¥k»hÁöC 7Ê׬4ý /£?)ˆ¬¾ÏBøU¢BY´·ˆ­:ªÆj:$%·=íàuÁC„4½Iì"Ñ‹ÏÁ½’ªcÚlÇã”Üò‹=$ŧN÷‡mŒµL…ùËR¸šŸ!ÏÝì¼cCù6ýýXfÚîÞ6Ç2T>âús‚ÆÆŽ›T,èÍ?²Å‚­ÕÈŸ>'q:ôÿ2Ãng&}ÒÁùH©rø(¨K2ù_®Rø¯¯hÖ­q\RW‰<´\ ËmKY]—{(²üJžQ\ ùç\óÁ®¯A µžžT;d|¹fÉ!l~e•ƒ0ruÒ[±›}Лáaé7I>¶Ätp\Îôƒ©P‚71}c’d7ëŒ5¬‚!côÊ ÷¿.Ÿ{ƒÀj¬±sŠý@J`1ó?Ý¿¨nñJ];ËS½ÛÛ¿ck–ÊmyçFA¹¥máJYÅ&ue2xÔFœR ü¾ü£Ç1ä0“`.ZY’EE;‹°œ¥™æ´ jzõ=Îåñõ¾t]æA’û™ ýÅì§. „Q•–X(‘’&Z²… ˆþK¯ißåóþâ!>ƒI½ßÐŽÙÕºZêü<–ñÁ@Ð'·Hx: ^sÙôë³ å»öBO’×p<ÇȦñ™œÒrÀyÍw‚¦.¾ ä¼WèÁsÑ­+6Ý5Á)–7*»0ܬ&¾ ¡²-]ÊÙ†òÄ2m·ú~RûÙÜæšk̵ X¤ U­E'Mõr) v…~œÕK•þºÃƒMæë£Œ0°éðÁvˆ=p?–#Kq:]ì¾ÃfN+ÞHû.ŠÞúâÔ\œdó_ðÝ.?|<Ž8ÓF™Œœnxc}eÿñìßÒý¹fœG¨ð¶ÄÛµØíÖ–'±ü7ž® ¤ºl¾)À *Þ‚¸rrcÚjd”¨÷䋎ü«í.>þùšNq(DŽE—¦Lå$Ñ2¯^¬~ÄWÆù#¿»|ë¬BQPXV@W×ÀÇ!Kk4FFZžcÂ.ÉÖVøî ‚î#úBðÌ 9Zd;ýßµ8òË}µÄ´‹ '1e¸xBï†k¾¥ÁmÏ0ˆgEaß5E£™¬.ë¬ožÂu¼½Òj¶lC ¬}Õ1<ßâEªøDfò\ªýwm4NØÎÉßA° Ùºš¹ÁJÅ|¤Î$²Õ–è½Î¦Ã*r£ü¹F\cfçz¯C.¤ÍâjND?¥KÇ?Ö>×Ikdò `rÜwòª *ëSlö‡WI7l¹O,—»¯‚çâopûGI4Og=yìÓaçBç"eûAÖîŽËTï RÃ% ÒÛºÀ|æv!LßîgvÕˆ–š6 € ¶åÄŠvõ9pF‹Q¼±©Wj>ïpã¬^£S0lw†ähw®1æ}wË>ûØ© v†F7þã™÷ÖŸmÕˆüìdd[GäÂïB@'¾œCn‚ný6g²‚2ä±.k›Þ–O0kz§˜ЗÙP#ðÀçV<Íq¿[š7)Ø„¶æ3ºi9ÌaùPJ=¡Ë†'à@ò„ñûHlÂê›VƒÙ™Bžön­]ï– X»ÓÛ Àx&2£¯µ(‚œ[¹¦ò:šûŸØ¥X™¦AïºË€´­V‰8®*:iÃI£……PªD½o ã0ØI6 2Êè™À& NpŒí¦Qú9 ØÑæL[¥¹'˜†›±½V "äç@wRpöËÏ=€‘õù@•Öaòï.!ð×Aþ.u«˜1ˆãI“Éà+Uº» nmªeÄ<ß½[¡H­z¤À>_Äê0ºàôý#•+!¯æUyÞfÖÚ=: Ÿ … ðÍ/L¬?öŒ”Ï^ä_—wbÂŽÍ=ÞŸ|Bkn¤Aß"%”à=ìÌÞëötc±(å.àËtðÔKþÌ‘LÕÿ ¨gsù€·t >¹è¶´øš¡Æõ*÷Õ²1:yþÈ_¬Ö̇eÆ–eh5ŽæEKºGy•-qõÓH# ºÌÒsHLóh<#ׇ±óMúOO,5ù<,"žîÚCà!ÖÂfü†uZZ‘³ *Üp®põP þúå¿t…S{¾ET_R¸ÕK SLÏj‡˜EÇò”b6õ–zʧE‡£¿|^ÖÌóv4øuC¥µªpòjÒŽiA°VKf5ꆀ¡îá$‡¹(™C¦4š¤6èÒÝ^•ùL*?÷¥}3ÂHVÎ\lvñ|·s*é.ß¼ØçxZ5ét'V–ZMôr¾þ ’Þz`ψMK2Íš¨ºàÛ‹M+5ô[–µa|ƒ վͽí: SÆ%nÓÉm÷éý‰$ÌÛ´â[³è6ïÉ¡w窇˜tnS Á‰Q§^÷É€‹éŽ¢Íâaâ½!¸Öè¹ÔÌP&Rˆ u ¹–€r¥Š-†Ôhê¸ËVM|Zž9爄e’œ:’‘y1b6œÓXÓî;w#ì.Ê´ÓöRôê}óz÷Ì{ôù¼”NcôÓ— ç¸1;þÀ…"Ž: vùþi‰fîFùH&R,Vqã.ÕFÝöT@Í_Täâ~Ð]–XÉÒ©Ì0÷ˆGçL ùÅ¡ÞMˆîrõC¤nZo6¡¾”ìÆ3Ñ‹$ò¡þ¿+>êù×Zžôx+¹Ôp.,H¾¾yÀ¾Œ×*k¢1+ˆ"9êUþÔýéò­âw9»?`üãj4‰ûÏm ÚÂe×ÕqGwÕˆ3wy™¨Ÿ^ªùÔf1¹éçÜÞ)ßÔÛ·Í©<©)îåØjbl?ªÔô'=̉ ý[åx å—ÛÈ=¦é¨bH@,†kfé…ϹØãÃxFþ½ì¼–ò¦ #LWñÚßć ‰c^ðÌõ.·½Ñ͔Ι‡c­ ¶/H~©èøwCH=S`¦4mV÷°ü°¨2ý„šê\¿$_EªyôÆèD ÑíGbw‘ô 1Lf³vKµHÖUçß}¡8÷$5šd±Aá'UçœzéKê}€&Ñü€ywyèþuwøž&=3ò M,ßeƒˆÒÐÍ_Gž¯aÅ/Æ«éu¦­¨¾ §$6¥Uë5vš~Û3#´õœfÅÌc/FÛd’_Mކwy)(±†ìï‡/í$z:^$ß‘™U<ºùÜäk“„ý ûÓŒ2Îä廉÷`ÚàâŸÉG j.Y7õ¾¯tXdhNa’TòY÷42íuð•t`qS6WB`lK|S¿9”¸6G–‹ÀwXhÇžD5Ü ÞW¥u£3ò3J,>3ê©´ ÷Z=¨†/­Hh9xqêÞ²T{#>Ø¥yéÝM»1}Ê ’\¼ô‹*o½#¶êèú¦ßÙßTæ„8ë8=žšqÊQø°84fé>è•j¹n‹²D="§’&ur¢Ä‰oh){ÄÓtdrë Ò6>1Ùlbœ<ý'¸|ƒ×ðw…UTbÉ>¯>›ÌzC“}‰Rc9¡‚·7ÎôH5ëÚÉ#0[Nþ‚˜BÁH±ò„çâ -!$£ê©OC0/é|=xÊ][„„×Þ&k|Æ}dŽù=èÇE,í¦Êy Xšø#OHhÇFÕÐ/×` ©v+2DR¯¦Mj®uÁ)è-~æ`°À\®ã¯ï„î úƒm9¨@Å“L¼2}Çú8ÿ^kMS$°î4ï_ª‡1£&§J£æT³+ü@9wÚb%3§âÊ"¯PÎ,`ßiÌ~¢Î5£·~¬à7öG7.ýäS+lš§ÅQ^Ö$3OP£V—ƒz•bXC‘ÓwbÃÐFèá¸O²8=@P °IŒ Û´°ò9PRTËgiºBd: ó•´æ ·ÆŒ~iµ[ùÖí|oõlU;Ô˜ûÇ/`ÌX6’ÇËÁd‰zü>¨  ï•NF.pôUÞlxµªãˆ†ü¯S—Ö‹”!ªŠÓãŽen«Æû³ŽM€þ»M¿2R3—ý¨ãPû3”ø0êRwâćÛbÉ/Ž8Ù‹|?/€‡ÿ:µ5„¾4„³½°6OíåLl«ÃE’ÂÂ@*mŽ²Ø„}¦+2€ž´¹òVoÊ8!ÜDåÝ_&ªצ1øEºKSn¨0ÍA ^ëKìÓR„…Ä0°´}œÍ±Ù(<4kjPß¹4OA“›ŽS¯A[ÄÐÓ8SáÓõå€ „0ÛQÙB;¯….ã!ÍwNcl™sp´ü¨dwX ÒÎ'Ðg"÷n`u1t¼†V±¤Ê§ÀiYo+”-J^×Ôû“¿8XDŠbÒ‚½°HõøÝøf¾žU‡þU¤Œ`â¯ÿ´N••ù]ÁÄÁŸ8â9™Ùj {&uêZFg$Ï,Õ~Ì`°s~rЪ`yxL¹gmfib „?šóh›*w­ìÊeÁî­õáÐ )u¦¸™ný0;j<ë‚ÐYþóª* -Y,~¤Øù7wC¶dN –Ç8Œ øð×ܹ|¨}sLÌAë|¡–µ!6[ê8±Vþ ¿©×s?›ó° Î4ÉC0AL°À'a$È»ïac ÏÎJx09-˜ìËÓJ³òA¼$IWjR•Nÿš_ÙúK0ŠSQ¶ì×ky·ÉY™^7õK˜ájÿ®*‹ó‹Ä§`ür©´¶h䟨«£üó'"–;w¤­Ï(Ø¿[Cð̶‹`³Qü·Ü™f- ½;<黯7¹beE!,i©ýuUð|»Ûöø¡é.ÝxtÖÎïug:;óÌ RÝL‚ð¾›u°p÷¬µ4NMQêi‹‚fÜËn{=•miEÖ4‰þmïuC±#$Q“Û@(:¥%bµÈ³ì–z‰ÒMõa§~J¬brxq.˜ãíuþýrö77S\B7—S¢á´.dïï'­ÉÌÿkûgEñÿ°ÛóatÍoc°¦§èäV«œ‘³\êAÊÞ¹Ž"íRæ3 -÷÷Zž”òoúã0ªÐ zÊõít‰ XSSSãˆ]KÖãûƲª9Ã?¹üìYxšI‘ïbà rœ\‚´•Åv…:ì™=c9 žu'ÈŽ@/~ # +qæqÁ枬lUw0pJï ЯZ©_n¢áD‚­›ÎÂ8Iv.kW9 Ç91K~,y<Ã(¡AÎ6ÊhšW¶Ñ`$j¢i¿ÈÂO޼ðunB4³ƒýßuxýZñÅÆöÔ…É#|ñ&_äºþjY’ÇøôöDÏ&Q&€·Œ™ld ŽŠ"éžl ºÖV|Rœ)=1OçââXÞäÚ£GÊHe(^’·Oaµx¶áò&AîIôz–¨t4pHÍÌ}'få¯å±þ=×íÀä‘sa€áGòؤB7óR±¦ìÔP‘‡)X¸6„A±Ï0ÝõÔvcü£ŒÕá'ßRPK€eˆNxñзײŒÀ0ÕÅÝ䧦1¥Ÿïú23­ó,šh±JRÆä•§¯ãI Øó9àúæ_²³Ë†úϦֹeš0ÀGÕ©ÕPä—ÙJ¶‘zXVªIúÃó[_|"ÙL 3¹8²,ÐÞjT¯O&aØ$.ÊD~ÐëˆKÒMÔúó~÷X ž bè¨Î±À`wœuá \æÄ/ü ËÒîúò4Ëï-¿®ácFE ±XÖÔ&=…%÷S)×§@(Ý{ÿ—Äûl±«:„-ê¦ñ(ž³,º¾¹Ý¬0H[eú¥;lK ×ýPûïÂé &»R}ü?næˆàÐ5V‚~Ëð•r T;:\ ón½6LÓ\fq¼ªˆÕŸå Ž˜ªÐ)€x€3A¹Q ¬ÜIì›1i> å‚qÄ3¸sÄŒ¦óA¶Ô©,ŽüQŽî BYTmÄ)k͔ˣbL8™3º™ªñ¿Ä_Þv$—KµˆA?Î._ö¦µ‚Ϲð'"O½63-n™ˆ$”®Dö/A¿–ÆÚ•'Ì^;¯Zo ¥ƒ^¦dÁˆ5~Ã0[£Á›&œ/¼Äöfqy¾4eóÌšjŠçDM×ú!õx÷VÜñ ]ý¥\¿K¹b¶/^„ÞLkî) Âà°"ÒmpìnI ïð||?„B#õ>7ì†Q M,Èq+ýEæ¦`NnÃo:L˜r‚à·É)¾ÖgNP›µjf•ís“⬳ëë)laÓÛI‡ÁµÔñƒÖÐÚtÌlÏÅ>glIÈ¢îGëú±Ö!ÝEí ƒø  ˜Ù'ÎÀ÷ŽRޤÎ1¤ë™Û;¢:ãn‚%•—/Ôa¯1ýルâ=<éµM¿_Š€Þ쥷`ܰ¨ál±ö刀ý(#V¦Ã’¯p¼&•±ãýdÖüG#µp¡E°H›Ë-ÍQ´‹-ÆkcX˜ÿôzÕÜ1im$½*ó€mœ:ói#´,ª¡™5|.€Ç>±Òg^í6¬èA¹ë=/RÉ–ýô^.ŒŠò烿ƒ5]Ö$â+¶çÜŠé zóh¶1”ò‘¼® 2ð*!Ùêil_Œg"ëžø@ˆýGÅòR \´`ì ¼³í²6!]#ƒîgXŽHˆ®kÞl˜öœkÍŽ‹’›A?G „÷Ψ4›VQñƒwç~{: l|Ãp]`¹±‹hò'äJ1‡Í’ü ”Y.ƒh›B3Y·Ä°ÎrU2Æ‚MÊÓå]'¿³›sM«b²2. »œYIu¬du^ßF’(·¡òJ±ûBWȼqÏM’pªs¾pÁO? ·h­l”E:ÌÕà‰+@ —†t†O^ú2¥ý½u7þݘó(‚jÌ )™ˆjp¡i†¥‡Íþƒ’Ä¿ž¾D¤ PÌ¡øVËëmltÔ{åÏ"…ˆOÔݾÈD'ýغ CADØ\]bQn&™p*CÊtƒ¤;X5÷‹…±M±3OÏž±£<í>ÑÁÊ{yÍë³ý‘§Îœâ=ͳÄuþœ®·©8™x§¥Ö«P‰7Ó€B™“_ ¢Ïw1™1¤sŸä†âêr«²l/jÚ2v`C-µa<îñ¤¨kk¤%šבÁŸÕ— åamÓ¢Oég ØÕL2hØ59ÎPêŠjÈÏœþ!â®w–çÅÂ~³†ÄxO4Ø ­–#ÀñPâ¡ÄB÷ ¢Öí3ü0ja7GjÒäòæ£çˈ[A·IøéÉšå8Ge¥fŸàzݬÁ–ÊÉ¿¦jšuú¹ Æž:NŸ¦ëzzŸîoñeÓÎH}b?ÕÀ3¦t :.N3-^õþÅ,YgŒÜ±‡ 2ˆÈØZÚLë©&ÙrÃh;©Ó‘¤Çä'ôFV”låÑý“mÛ£ug茷íÅ‚÷%ûÿY?²},-A#<ñ½K þÍ•.‚8Í’ÀÔ¥ñúå[?÷ÞÜ:¨äEÌ{-oVàôLp‚Éx:4̧.²Â/ yº¼ÙÄy¿¢Kïa¦%ÙãoEäŠ"È>ío†Wš!¼a”‰Ÿ±í=®ntb°î¬¬éí™4)è˜<9<òGWš™ÎêüÕ|dËNVÞgC îw¬} ël´†nç .Ø¥Dó§Aý:A½DÕ› 'ÙüÖ7Ï#cÕ²D¡§Î’=)ôúµhg½šb ~s*cÁzû|&WÚ3”B+ÙAk”bV[¢ûÈ]øÀ6qÄ×ê𘋷¤è(›/L½ûìâ*%Ÿe»†ä« O—fýZRš¨œZkWÔòüÜ·Å1Ù €4EÛpÿ›ìòc¼`¥aRþÌ@5LW‘"+d¯åûoÕ]Ù ×øÐ¼¸ã»À+©Ø#ü^4&5³A•‚=Ö‘’xY¿ûÍ 0¼;“zö–ÂäbûyÖ IEÚA=NìF &CüøžÔl¯ÕµgqOĺ…˜ˆêiI 7`˜i$k¸IENwæeS0Úneô˜ã(‚¼sɘ-òßÝ…"ð¦›Û=^§Gs<×·Ry øXк‘6| “ØgÅdì«ÛJ3µˆ¨L/.6ïšôTöúå<äIØòáyÌ[ VJmN¦è6îÙû=^¶ì-æaŽ»¥ê™«cSM‚¨–Ë&!†ý׬€“› %`´@Ñ(À`°ªç -F…¡êGÂYm" ŠßÛ€Vܤ:{¼«—n‰k°WJ™\‹ŒÛúš=" k9cúøßêªÉië–C][,/¼<9=áÕ&Ö{ø0ɹÌp®K*S-–tû*‡mœ7pžvM 6¶“&î n¥A¸¢O?ý¹M¹š§0¨1–Âo¶Øv§•…ÕVX…Ö °wë Å0n;Ûñ#) ”ûÿòe&ˆ—t{?»„kXW~jòïK‘¢bÿ`ú®K¨Ÿ3MxZ¥°Î7¯"À¨EÔ’ å…Ìn‰0‡›šÙ)µ7Iùywèu˜8ñùWï=¡D˺noøí;tuÔ¿­ÒÞuâ¾ÐÁ¬|¢ÔH>P˜”¿ùnÔîM°x÷oìÇŽk+ªu2W¥¿ Ͷ÷¦lÅ5Û"¡Ö£Bu‚ 25šj!£Å'ßS4b•I$ä\Ó,ä~šªú¡| ™²PŽÙ¼©GßsާõÔÇ>´¬4\fú;ÌLî< ç¯c¯¾nÇüü3"8Î)|•0×™}¾Üo3Ž^‰*Â,Q–^½ÈMJŒn´ñý,Ã1Á³[Ô!è¼Òry ßD¬dt–Nð¼¥ýF ó÷wGk¸êB1˜ŠKvšþâk0I Þ9že$ÍÆžó4™‡çF˜R«IÞt æ2€+”\.o=Ðpu4#ó¡&ŸëŠ!eBý$U7 Œž×BßëX.ÿ g@ÑNÚÉSŒ¼9!mlò\õ·eˆ7/ßÑm³ŒØwâ…’(~ut2áwŸÀ5³|¯çòQÔò E)Š`;ã½XWÍ7ÀŸµIÄi.&SWHS`4e¥É¶ÿf×à‰_ÙÌF²BŒƒô1Jÿ¡60Úg¤¶à‘Ð7ŒíS€>Ý \“ÇgÑÕ)ìtÓÝRl-I ÉÎæ[Hêà?sPBõ üeªåКLx©R]óËÚõ_~>ó¿\·ûb4Ý¡E9GPAæÀè”#-Ã*"BÇ£AáŽÜðû! ?£äK5£Œ22ìü`BÔ9$2Ûa½Œ¦¶ƒÊ]dÂ÷1h¬ÛIWr‚Õx^Š{ÖùèºÏ™€ŸÕ´½“=|g1—’W ï7L(YU–­Àòò¬†øÒñ6ƒ0– yüx/—ˆÀêÙ„Y©úpƒR›®¦ÒÕýÅËÒ‹9Ÿà Ö·“?LéÒp5øžkpîEϪGª’Ï\$çÖŒ£†À†¤Ç2Í_ëàµh~µÏ=Ô`KåeYž‚úé¬ÇÁ¤Î²;@Ä¿9ó¢]Ù>/tô€¦¨Jô9*oøf8sV:åÜ“X5¿¢ÎZ5›à•wŠ&l‡èòNÛÇÐ}‹šz÷P–ïmd'–Šjî"è!5jÖ(ï’®wÏòŠ·'°0PG°h\:%cÐru»9–*ß hjѱñ8À:.‰Äüú öj|ÓÑh¿xmBO:Às›¶ø QŠ…¾˜Ÿ _ \ %Z^„®Çû¯õXFB°@<úW§'­ ’õ/ˆ!ýæù£HUªDºV.1úv‹SŒ7ÿÇ_ ¥žß6ˆ_PÛ÷LÃBÔªo5÷|ýx£–2GBý1ó­’ûÀ«[+·¸é;1‚±§a°}´4ÏŽ,HvJ¨.®¿¥&ÝÜá%.Gä'rG°ŸL-.§Ï"µZ²&äh[aI0‡u©xX\gr0ùÁ< •¨~Ò7—lmïgÏ·b¹ˆ7˜P=Sµß_ž†wþUsÿ“4ò!•[Ì`uо*Ì ]Õ´½Ì?¹NçR+¤ŒÎ–æíÅ…WT¤*•1ô°(+ I¶}4q–ÔLµøÈ¦Y¤¿v-Tè9 Á6ÜB¦×)·ôÒü8R„éËÛu`É&išŸ8¬š>©Ÿ(²ÇÜu½…<ƒ$½†öáýøÛ?葃ßwÝÄlµÈkùVCjÓÍ0ÎEÒï5&Îà$Û N qüBÜ_?\†X–¼(Hõ­o}C|ù¢ á$<¢1›W–/\dFÐ÷»ZŸïd"”ú²_¶›föà?¡+iþ€ÏŸ3Åc`C1?o;ø‚rlU"¿Jmœ+UócHÁÿi ÊÑ$Ï»ÀÔꊷà©<›H¦Ãm@d!7ѱš1ØŠŒ7|‘†µó| ½¾h2tèv±æTÒÇÝäL+ÙjÏw¹ãû™‘Œ°ÔdÇht[u Ÿ@Nñ Â0ÕÒš¥TÃ4j¬2áŠ|˜¹R§È øY1é/a´wl}‹š|m}¬"€°ÔõWÃøJ¿¯ê+ý7åüoQ…ö'}¶ªl{1ÚΉ4Òæ‚m‘Gg€‚ù0ïSæü!ẩý¯fi=¸¥œŽe&1jˆä‡þùÄEš.Û+AàMP{“ê*aÒ;¯Cšê±™ÿ,Ónà Wø ö`Âð’º"6yœ²!D͉ÎIæÔ¹Ü~~†Lcº5×o3þD8–Ã*k9äO&­™ttÝ„Auç”eá{ƒ)ñœÕâi†UYjê„RÏ£Š—º›3¦ep±!×ظönÂ)+f–‚täÃ+Ì·òm”ÉšUßø0DÓŠµî³ŸhÛ—:! ˜ÎËzv04‚¯0ú+xÑLîÚõL"_i¸å F/¥Ü¶ñË…62*§ÿ4‘›±?v<¨®r÷C?ûªUw3ýÆýæ"³™èºÌH’<,̾2³ <€‹†Ð«¯Xk×/ é©ÕË©º™Æ+¼ôÖoÂÜ*†Ì>M¤ã8{•ø|á.[´ñE†0…z¼<êhb$õ6êÎÎPñ?½2»Z_¯heþ0¿~6Lé›,= »¹ºs¨¬´æŠ¬副.j0]lpWJk5GÙHÕù¯(C';;'9—b»  d)I_.Æãå~v¾£ÓÝ÷Å9d9*•Õˆ`›Ån„4p`>¸{ßwÁ„ëX#]–̃0(AŸßðD ú&îɆ½FB`ã+T"Žá7[Ä>Ä+ÆAY'›ôÛŠ«5Ô˜ÅȨú'ƒR5²Ðë_Û{¦<®u ŽF7¿ÍÉ­{U"±ï°±mú¸ò´W‘;â÷bþÂH_XµGf–=äb._[Oˆ"/üöÑc¤äÎôÜÈ Äô1av…ï¦,X-µËmërjqÂé ©5/Õ=¡9”,CN½æúe2’$ŽÛè±ýâÁ !ª‰Eÿ±L+ {ÍÈJ”W2:gæ•DʧDŒ-\èÅ–×2Ùâ |{GaP›¤6¼›€± BÆ¿6󒥸I<í@ri–ò ïØ6;Ëwi縻I¬É˜-:ÚÉ'û,DûàÉ5¯Iqg¥Dá’4ÛÈk?75Dó7o'Š ¼ÈÍM*Ünù‘pÑ¢ðžÚ·“QF>96¶]B1ßf2Úªš;k&¨b»{\¬×^fy”ýmaŒYÿ¥_:L®÷ÈÍ/ÃÃ; Ho›´âé¬Ñ<¨»‘58Â׎Õm•G2^ëÞÈ‘ ìÙcóI4poµ4R}ô#Ø–åê,?‚)иÖ“2POq“É×áÇdV³õz`}Tõzú0˜ešÐÊ&zÂUÅóSk nwç»&áXûúƒ ?O¤O±ì6÷ñ¾E¿É›é#b›kg5„7­é g²Æ¬÷JìplDØTHi$ÀµÇ‰t>í ôO¯Žúì%ÆûpüÒNtEÏRBcàNµöLq¥°”×—E†î§¢*A6Mjfu‹ü‰«Aš•ó&QhÉGsÒÏ i_ÏRç¬ ÿˆ*L˜wahPì%œ#q¡œˆŠñ‰ÿõå&€·–gñõT|èÞZ””Ï.C]Çm¼æ);•k¼Â©ÕÛ´DO]Š- Ù3­¸+ª„ëpAkRrsÅ]Ñi8úLßw¥ƒI!¸"¶vÃKmQ{¬ú‚Fw—ˆªÁFRÛNDA©×äöÒî­ôÉÿEX-Ù|ê+¤Y=f1vÑïìÔ€²ùo1`[ƒÜ—zûðûD-ƒ„—+d¥Ýš/Ö°pœ’«yMaW÷s…ׯÜ=ì¯õZLœýðÆàjø¿fwÿ8Üzb1J&"íÙ>òFõç/Þ3Ú’Š*ÉQ×÷™’ ’O?Jùu}tŒsž0˜Ìaz—áoû¯òÛų;S$¦3Ò¾}מ¹ÒùshFÕµjûQ<ì_¿×L ††o„uÓK»šyK"ç‰EVcI×*PS”°U¹'ÓªÑU&±Ñ kݳö¶ýÉf^ø¦€ÏÃö{µå]wÊVònø2¾kŸÛ_FŸ‹bÓ²”-pvH;0G÷;PsåÖÞòE,—QV½ú Z/*@ÒYáiýÃic³sbºYSÇ7¾³qßXcìõ²˜)M/¸ìg¾œ˜Öà!oðöKTépió:Ë–~›+×<ø*V.¼¸\â­Í¢è(*O²ú±–ä•Ñÿ’_ھˡ°Á%)DܧþtgDác0=„â=Z=è¾îU¸Âq˜Fj).Lºt¶§³{.ø¯ ·g¢‰Ñ¸žÜxMËŠŠzáZ:Gñ‡%oÔóà‚š;{ê¸Õk Ã¢·€ÌK{¼^œ¥èâM2ÌÇ…,KáÕ‡QrPLeéeÅÆ–†Õu¾:ûÿò³„!Å ÈØ€S5¸õ»/Ú®\¢Zߌõ—äzÏ䙢‹.–ƒÍŸw¾^ÿWÊÔrSãFŽ@‘,nÿEªlË Šøàö´×?u!ßÍ2,ÓîëÝ*Ý*÷nyíÓœfåˆÓ·xO…U>`•6·ÇF¶Ï:7¸õÑÁ¨÷{ .Jßò²OŽ•«½.ühï\ê]dýATÜ‹I[@™ÄÑS+ØBÿœPfE‘Ùu‹¼=қ䠡ëh ¿G¿ Y °ºÓ¡A3­óvÒg/Ž_]@d¸ÈÛ=ÇQŸ¤6sLŠEw¨ìàÖ]V¬ ©Zý½¿ø ·ËUËb…ü·€*”ÏõÍ{$‰/Ê~¶%ÈDÖÖtZu¬F €xà(ªÌñŸì § 7 $ÇÊÙØ€N`¶3Z`-`¾‰ˆ­gV×Q:-'k\õðÜ.½']6šè»¦5ìulCÁÝ~ œÀ*±ƒêÄ\5å†lŠ3àÛßKû§!¥ï7›EÌúPño ¡è«µÀ‘UÉÁ.3Þ­ôNØ^…dº;£c1È+ˆ€b¾|ül\góhÿÒ!£è0§¾Žàu¿övégp–lÏÕÏiÎO¥`\÷¿£HÎÙR¹YjøXûdJµydth2•Yàà&ü¯3<&,¢Ç»¦ø]ÆI­ßMŽO”Í]ªÁƒñ®5+Þ›f PA$½,ÅòÙaÑ| 7,• +ÑeÎÖÃý™ãS¿*ˆd÷/zQOY `Hg*€¨ûqKTkGb©b«\uä!2ƒ5C\ûPóü\Í(±ç#“®RR™n’YøHÁÑ”¬cÌ«þï6PªL¢iŒ—4(‡`q‡;m´‚ZlÅ èªþ<ï—† KE>Y×£™ÑPÄ~W™æ'Ÿ_©Cìíhí½R“¨Ó0Ô0° ì5ó·À"Ÿ¨Ã¨¥ï>NÒUûLj·1wù9îÕÜCP«GŽ1x¡Dë[1ØÊO"P|¡[ä0W+}Ë¥ÉÁoU:×ü·} jДD_& mí?:›àÏ>áß…5¢‰|£Š;9 ¥‡°¤¨`žsâHˆ¹{‡‡~0oJQ ¨9þp¹‡DLdøHkˆbgÙW‚¼Œ6©mð¾Ø^ Ïu(E=»ë‰s±SC5ó± €†éY/¹˜ Š ~˜ß.2ÌæÎÙྗ–ôòY×Ҕƞ —Ðö‘½œ\ øÿEó6Tkb›8a ¿ÑC‹îÅ€ùbÓa3Û1À¶‰É™Œ•UÕ¬0>–d9‚õT(¼:@Kµ–Á7D!ØØ2òØLöc¶ŒÁB`Íaû:æÔ&o¥ÑïÕV·Ku_9ÝÚ.«eµ8°àbO¨$Šq…œÅTúp¸^bVÛq¾?ÅlÓ,ô#pº©<%Î-×¥õŠ_¸èd û³ï <>ÖàÆìº‰»)ÚxÓ)^äÍ£ $νâkÌœÛ#ÕÍ?BÝÉ1!¸[çMû pJxrþƒêåW@‹¬¹bž7Ÿ›Ô‚;Ø)«Å–…%lÃ’´®C¾ñ bk0Aw ÃHø1]ZáS¤4•­lÉyˆ”a7¬hçBÝÆŸ.€–àJ P<0˜šþ;­lÞ¥4Ÿ†K´AXº0 ¾‹„› uò,eðY:Vnn^µZO)2¢ã…íMÄ3„´£•ü(±a³vÔŽ¹˜Åæ¯'j·åTeRÑa\Oû#<³¤JŒ2HT(?«•Ë´ÇßE*\ZX·y+‹ôœoÝLm»^ƒ¥#,å=L+ŒOCó „ˆEâKkÅ­²f>±ï)#¬´ Ôd—á¶×o&‡ òG&(rgRFÔ›7lç óîKäŠëµð˜öN. sï\ß™š¿¾JÌK¼Œ–9¥¬,¡v˜¼¥Ö‚4+Ó‡Ã}­ZsÒä÷”ÖI˵œŠëâæˆ8o*bO?¦Å^Bª¹§¼±é™Á°£Ü/D{ì§À eØ>ZoÇžà ^D†5µf‹°MóaÒsÚ…l" ?"2Ô,Ñ1òõe¦^{bÜrž Ë)?Eâås_*%\¥š Ÿ}p3óð<•œÔ<{œx©’¬ V½q"JB1çØŽ›\PÕX'ŸúA¤æ„ÝsÔƒ)Üž­†SD^±fǹ_’]W•ÿ’2×gRµ0ÀH‡xbâ[@Ð=h ¡Ã¿")'÷D™ÍÕ©¼ 3&¶'d dAuÈôך•íªô6}WÎÞq¡ì}.G§÷LyÀn é»ÝVý‘fjõyÑ€PaO¡cT-¶“ºØzÒn4ô̰|”²ÕIÕæm†IqvF˜§à[[MÊO᣹3|w¨V@æ5Ãq5åÚ…³ÅĤпîËÊ$}(LW£ÑÒ•â»ÞÊñ8BÛ„VèWXyœû+¦­-Ð=AÏOÈMH“‡…2l·99Âã¶&Þ( >FMÚsq°ït0:”¶8§6Ÿáβbf{óCO”ïã LáYü µ"]'öd›äë±Éù°E`ðN™OIü¡íû×Xÿ-¸ŒÆŠ§Z¬Šý~ë˦æ%§´Øõº]'!Qg¤ÃæËùê9 |·!Z}>­d†µÃì )áÒ`Ò®Z’ðEYrZ@­MC¤x ÐåÿŠÒùi{U§ÿ6G+í„1ºæƒß›^¦Ö¸„oyUY•òÝÈQÎ%ŽÒJ]Üo‚Jgïbß-íÆVÆMs¨-’è„GäG/Žy5]©¡§’Küú:KR÷Ô3Åw*fÂJ«ÆÚ-h€Þ‡3Ž·eûšñ¼iAÀ™Gß©!y² U–qr¥WÅæŠu+üxO 7ÿT0  ÅÓ¶LØèñ{«Þ8w¹xƒ+}=ù‹V›.•ôvö].…­(F6.¯Gà1+ë8*Œ £ª¾Zþ«Æܤƒ¸Ç¬Vrl;_·&áÆýÓ&p Œ“ ZÒìáóŸÉ²ð%¸.“*Ia Åîô5%í3úœØ‹xAÉäüâêSÄÇÂm |þüÃûbq#¨_t žBB•êA|8œì©¢zå䘋aÞ¾Ê þ¥Iâ¬rD ¨³U-©6.Ù®;c6¼t‚ÞƒVcAÕ•°VÔºŸAé,—Ir§ˆÛ³Ö¡×éÛ™¢]kÝ–pšåB]ÔN.«½ócŸ›ûçQ4ÜãXÍ­áãyk“ô•ŠÖ3Sºd $zʾèà—¿–ƨ@»ÿò³¤½ù1]™Ê.êçDJ Q¡®#òÖ}3¦«SŠYGP[8¾¹OÍŸ¦¥»^zïëXbb¶Ä8ãe)põ´´9šôâQövô›Dx™å^º–SØd‹½Ç:0‰’&y.êA‡ÌH§#ç§ý»s9›½§™˜ïm´QNADaµ•Á4Þ õÞÆ-ÏŒ9Éy‚jÖÔPgøXJ¢XÅ5 þDûÙW£™bÊšÌ@mP±ÚÍflmUWú0ˆ%¿ ” Y!á­g.èí¹„Ï€:ÉfEóõúl»3¬O·¾ÒÈKËV7s,˯h,Ó0Ù°FšRï¾H%N‚S‘7Ôè"ð ‰ÿl¾FæžÕm*-•”l“¢2v‹Å®oøµ¸kè¦Úñ$nò¸8÷äW«u0<Ž+¼6œ‰®í5$Ñí_aå<˜Ô¿Â¾—¹:æQÈ­*ϦßåyÅvóKÀöŸèjýTeü¨-ý&Át“»ŒƒU¾ž-±ŠÐì°«8OŠmwsëŽ;Nq.ƒÁëL›ô¬Š©Vb—ÖæÚÊÀõý` êËѯeØT¹Û}ÿšÏ;–¦¾u\;oÆ&il·µI9—-Ž ßcÖ}ú¾e²ÇE²1J¥Wn Ÿ¶Ó^ÎQùˆ2n 0¯Ñ<Ïe“6Þý.ü“¿dAÇé8÷Ô¤”gåYdÀêsÔ™™³gC.T}Q`8kò-5 ã¡Î05Ô'—g&”º#áD#râúByÕgÝçj¯y¢x‡£ƒNüÇvícÏ8êÇk 0Ȉ7½’¤ æ)”ܽ‡Û‚,7kU½žÿšÄÈC_μ@%ÍóÜ/’˜ƒ‹LR4 ¿z$èç€{ÒÖ-[5ÿ×/°œ¢Jll‰ËЕTzŠØV9^–yyó»]–‚@Ó˜HˆÙ>ú<=Ùu—ŠŒQº¢Qæø¬%4Ÿ#DD†H ¶,jrí ‘LŒ±uŽ…u¾ro\ÄÍn *˜€ô>±âx¡Þ¡©‹(÷”{Mܱǯ~¥}ÚçML-lÕÇÿ {ƒ’rÂGpá†%&Ý÷<Ûle¾‰ND_𱩝%{¢i=N-ý^/ê¬b Ô¼â›V¦Ÿ =»»`(ûé ¬é"¶å#pîq☠o§NÝÜQ…"üKò9G&øËQ o(õGy>>b˲ôŠÍò.=ˆëêÌä–µÜ&hgÇJw!@ µäÚò2íQ¦¥àpæ‘ìÒ)`Ãn“«ÝPÈvgêñ=QŒa z4O¬ö(îQ‰Áë5Ý9±w[I©óÚ|ãVЩI1m‚,•|tïÇ-”º`÷Úüz I[ù½ù]n㾺”mÕTV”±ªN’ç³&$È[_»Á‚Ðm8õðY!à7aøµ4 ”aîÓâúå}3B÷ž¦®@ÕjAìMc–³Þ&JdÝ™ô<·ìŠSI D,ìèQZÆF ^1D}D;¨7+M€p$‰š_|c­X&鉆wÛ‹JŒ²"¹Tµÿ=ÏæÆ*¦™Æ‰õAHI²1éýhõ™)ÚÏ«rò[‰ì_ 2"4B¢"Ã:[%€¡a?L{hN‰ü ›¼a•GÔÍ/äÒó:ÕõL‚,}A•3î)ƪ²-Ï:æ*cßh×Áøq[M  aCvoöËÏSõp“ºœ»ÕšáɇnѵØ<ã¸d´=ÑÏ}YùÃâ®P´L BSÎ=µRů»¸#ÇÙã‰î€RéTnçÇsIã—>–[£]¦‹+ÛLBœ>o0Ž¡‘ˆr@&fFJ„`z=}‰¿;ƒ‰‹ëþwЩxlIÚÛõœö‘%ÄØñ³î—>j3t*¢ê2èæ¼P¹Í¿9Àì¨|ˆ¬ÜÛ¤J#¼Æ:à‘Ýc¼1ík—#¦$ÅÿÐßþyÂyÆGƒ|㘖P9?_ð˜H:è䥿Wééÿ^e(Uïøÿî‡UF&´Ch#—ô)%G/‘áñ„'üÀn;!ñ«ï¹ÛZ,{‰í~ð×;#G7§°ÞÜ u€:Š' [¦èœ_!˜Æpxå~ÍŠ‘ãÇèÍÙ¡x.è‘­¼³Ç‡L²)Ü?±'#è‰}ø®Ÿ³É:ý6ª­UïOÈóÖ dΩYpµÊÅ,ŽÙÜ'uص ÚK2¡ÿÎJ´>‹y…zKz |©Øê{Ä›y¶®úÓØ§.¼Þ¨Äãéå5.·£áë;´ª†é XÐ X6±0ñ(kºÏ¨ÁT<àÇVF)@¾n-ÀºYÁeØÒåÁ~&æ¶µ€Ázt69ØÇš¼eíïëQØPB¨žJPN}yÙ›:sªœ áêýÍþOë ÿïio£»×bÙ}ŸWH³ˆ¶}¥Ùþó¼u×É?Ш@Éï—…u…»¬íËíî ¥ýœò:OíîñšÉΩŒ¾wµÉUü"±ï“)2²L³ ÐÐ)¶÷·MÅ·KC ÀtëÁäÍ'ŽÞÉU5øETtˆ‡†ækAÃ¥_ò2ËÓJ í=”0„8M.TrHÏ«# =󱡖uê° ·bh¡EX•T Öð·*%O©Å{ ÿ{éÝA³Þ–à,9ˆó–mÿw%TÌ "5Ô¢ùŠ?ÍßfŒµ†lØï¾ÿר‹ÙW¼qŒ‚UýbrzvúôÏË&ÅF0ûgaJÄÓѲw¥Å(zç~/ê» ç™S1p±&Hºa]@"ß°– ;íå6µ@v7ì´Ú  î=$”3æžš0…4‘èöÙ(+ù¶ ”£ êò¬Ëw‹ ÄpÊbmóà.Lei ¶0öQ•š¶È-ÐØPèöÝ52zð q7”øoCEŸ¼;$Ì;Ú¼ó&EE9²àoý–UIÛ(°¹.¡SßÒϨÎÞÔ„l=NOŠ`]¶Q¿§Îë+,Ž91“²È¯ˆ1ðúŒø‚~'6³^ì=¥×†ô·UÈ×íq³pëdØÕ¨gç\B“„ØÜéS#‘OíB†øtî²é„ÿ)1 ¦ú"¿Þ2äøÌå’-êòÅ4%Ü÷Û’2¯Oz¯dW U¸¤—šöË—`ƒgë„ô¿w"Eç¥áÕfuéWj‘+ÇŒmz˜z¨U‘š\hÆ3½˜6ío*é­5·³˜rÍy™ô¶Y<ÜÜÛ<_ÞíýìÀßÙu%ëX™N ù~Í O*å ƒ²û:J3uÏ[.lìjþp߯qÄ„$§b‹5€¿ùkK¤Ìêt!Œ¿.-ßP+ÖÞì\9!O–pï÷îið•I¬9Q " ‡$áð}47ߦ·s}hfÕ¨ERxŠ—pŒº{ d'œ+ t^µS3D”à7/•2,çµ—¤2qÆÎ{y’ jƒó‘7‹Þ¹Ñ´[AÑLJÌM,W1WdÛ§ÍKéÈÝBšJg CŸ"¿šMð»‡u iÜ‹«Q•B \“p&1]W¥{JMÕEpu^JkiÎ+Úñx*ý÷^Söwú¼ó€5ÕͤOl•ýEG_Æ™u~ccGÉÎÛwPîÇ2CF#Î#Z.…<±œììÒ†a<ôyt|Œg¾W̘š2âÅX€ ù÷¿"w"Ù¬¨:Cs[Êx…ìvíÄÍýåùVb g~@Â;ÝÅ¿øì|;Dy— êó¼,#âRæ^Ùâ’ñÉY”±Jrk»v†Ó¼YeD©¥€qÓû•+x-3÷¼¨‹³m•õ|ÄÒjw‚óp‘Ó!?dfÄ—@¶UBmE2­Ý±‚¾;`ÚY±•~ýc€”Ä^lÌòªS|«&´EÊuË¢§k¤wW!Ÿ,Žüo´f0­“Þ?IN©bÙ­_}ÉÒ×57çŒKêQ!iþ½ØÏß`Ì¢™ˆ¼Uê®yó$ŒêÇpA¼.‰Î%BÍR:3£U.t‚H›ò¸¨ïNa<Ñ”\ª”fòV µ~‚Uˆõ$ò”ë•ú¿ÍN¨³Åòš~\¨ëÇy­ kè¤M“ñiƒxm ¶Iu?go› ã²š>ÌG>e¹Æ|+km¢Q%¶=r¡€ÛuF;FiNÚ ´ìõè´XížsM*×ëFíîQ¡E¾—#ð Øð#Ò¨RbesŸùgfÊm’°3·Š‡ FUJR§´¿-jîŒ) ‰š)ñÏ'WŠmuëFã· Ïè tn‚ç;-½D”ý·@ÁªÒ®ÏÝ÷†V:ÐFÍ?Çþ²À&†Î[‡4àMû‚ÑñÍà9[²oÌDÊetGy4çtTÐpÆP¡é²´¿F¹ü&±è♹½rŠŒöÞ x…»5[l˜¶$ÖŸ­Õ·ÀSÍ×åD©[¹¹³ÊçòÆ0ôчò¼†„ÉæõÄ7Þ‘TÀ®·’N±ÚØH?±G„D`M•>T©MA îíHqpÄŸÄîA¯l_ß,ü€QÔÉ*Ч^º?R=/,n²}M§7]šGh)07qû‚C²ÅoÜ~uʀ輄ãoóc<B]s…&CšÃkÒà©âïÈ[½>=NϩϥwÒ«TqÔÉQ®—cFiïʃÓ_zîüq\ôx)sŸ‘óžqù¥)œ«¡Ñm ^}•\l阨O¾9=âbט‚Î*µ×i3œyY­ÈlÔyÛ Œq©¦óó횈Ü|„éór#’,„ ú¢éa úúò1i ¤Í?”´ÝŠÜDf4X%—Â!qf^„ÍñŠá(O@¼¡3è,Uó¶[4Ã<‹MÒt½Î/‚æ›,W'MŸñ¬Ô—lë€Fßî´ànLŠžÊGürCDÀ0ªñ,íŸq ÕÅ =lcvQÍ·A²!è?¬¦Æ…á–2Äg%›ªìÇ‚Í"f€ÏHlIùšh'µÀo5Ò|Lø¢œFwXìF4öù<-7·=ß–[õ†è¾ 6†%ËDêVSTÅÎZ¿÷LIØ<"8NM(Ë­VÁàÜ[”§s](™oÁÚ>¯cçîaQ&W²às©µ`%X\!Õêý¬sÓÐ*¢ÄL)wVÑE»ª;ñ”™•¸Ü¤²yźi9ä`,ß»r¢MQ2¶~N»GœÕ9“Ôwm¨?ØÄ¨—¨=ÈZø¾í#±¯L²|{Þà T*EdˆãA÷Ĩt]VŠ£¦({¿½†v¶C`!ûq§öU”‹X¤¶qü¡e^¾9ecÏ2YÚ…DºN†˜‹É™–j½MWøö19¯ƒ¨¾ÊãÍ«ê¾×6u>j–Qþvå9À=ÙÞ:qßí'òFmQ†¢9tîö6˜·k Ôv±ìãq¡JƒúéðÞð–g—ôP |ÁÅá“’Ì®ubw}uc™fÒ…nHð¹‹ûíO¤Ò7_YË‚¿=Œg—öó™Ø>;  ß¹ ÿæÎt’Â9™ qŸ‰’H?W ·:áüÁiž$‹{C°‹Gÿð ú-´ ›X|q÷»ðTM u£h Ï·ÌPXТ„:ÛLÑO|ÒÀ­Ak<*Wšp<ˆŠ_nǫɵßн]¨ŒÀøc“XXÙF…«°@—žsû›OÍá•ûÁÃOPTêãìãyêPE!YLÌpñJ9:ÚA–%ÀބɰüѸq‚¤83í3^vúË}z å@™5û=;ŠyrPÚÑŠ"SÕwð IÓzjtèîuí ‘ŠËdáÖ±P%­²¬b[ŽúHBÚù®ð@j¸†Ì 3œ]wN@ ¡h0¨†Ëº›9xZóEÍþY¥JÈ ”ì ÛJ&Î vkÓÇ º*bõ3=øÊ>M…³¹Àgƒ¢QBˆ½©b“Ž£Ã÷eÈäŠÿMöµ™^–֢вÞC‹%ù×P0uÀbm›àן1ëˆ*‰…×pÅ ‘¦”«•[ô ëGÆöǨ¾±WOÞç"“"“Ü`|¾×ù“ê{£WËÄν)HHÅ-….·¸Â+êåîÅ>NßÿîpPÈð‡'ŠèŒâJL¤RÂ+”b¨œ”$â”xÅ¡.YYõåÀg’•½g½ ¶CÑ älA>o”Îðίå’Ê^ TXdóxCáù(švÿ•Ìøñqt0ž?NÔÍ•°lg‡¦öºÀ6{žb«º‚þóåBj…±@Ò,®ˆÀûÄÒ%ÖÓéNëV÷ —°`¦nú}eêdxñ*m›ðï–Y¡câ•ÐTQê_},7ýô©Ž9*­~­q— äÚ}ÑyùÛ!É| ÷æÀ· ×ÕÇqH²Ág´Gk,ÎAîÐÿ‡ÜJ ¤ÛçÝ¢l¹Uváð›l¬¶v|ÒÝWÍ:ºñ_˜£X\A£d:ð:­¤b§ÃIny‹ˆ”[}žÍÑìu[*¢¤K‚#{”xoÍ#2Ñ>ÔqìL«Ï‹{V,t+vi×ñbi6#Ü¿¡F`g¥Nñ™bU­WiJ˜È’Áó›Ù5š ß9ŒÀhaœ›8{¦þfHqœŒ$·êp‘~ì_ }ٲnjke¢FüчZ9©þ%Ccßdøeæ»¶· D?;C¤ k=®\³Ý#¥qÿÜ„ÜÙ@µ·=œL } §ž·P¬Ôû'ÔBk- iθ` :ÓètÝÙö’>ÊúÍëGIúh¦(.Z E¶"ÔÀVE-SØ6þ7¨¦¥OÆ’¸x‘Ô~MŒ¬™É+3§R«’ÑÆtƒýÉ¡m¥‰u²ºRIX¼€3бÚÒ¶´h¨–zÞ6ùîzûŠTzôV®‹ú pçáÅ›kiŒs¦™ÄO¢Xh¡~=¯{tÚª—ÜÇåŽ2Cþ7óWßAôZ›jê(Y·&×cR§ë?»¬‰BG‘ȶ®üIØþëЄ}˜ÉºOfë©l8Yý4MÔwGÍý=шì]¤9íÉL\ †Ø¶ òϰë<þaBùê9“æ ôF¦¤4eYö#vcÍðÂ<$ÐW4o«Ü"M‚Á~þMˆ ÃÏŽEOž³:¢oµ@˜0MtÏãéúc{Û§Ø$ Гed3X @kXÌf†z=…$¾íéq”ÿ1åEÓÒh‚ü©M±Ä[g[s&Br×€íÙ 80Î…ï&þ<èZ¡Ý‡ší 8uXÄFª>“^Öéô~1ªöF ‚w)ry¦AÒ;ÓEÙ’cP~‚d>øõÒµœgVø<9Î8¸Áñààµ2£ º²'þêí» mÓ vìà^)›íöÁl%ò‰HTìë ~IYåfÀ±}£HÛ.O¬ù }£FäÃF{M$ †×ƒ—/C+Ô‡ͨyòN;‚ö¸~“¼öŠ|Y*o%r™»Ø5Î3±µ°Êj$MH…,zÿ9Íå*jú }êÍíÍæT«>÷”M/ØzTncH•NÏ×Þ÷zìþFA*3‡›"¤~Ã$x©ýÓjÀбj,—ºŸíè ®Šý Â2O†œ²(Än°`îOùn‘gûNvÝ>+èã*FõŽHq´‡›ËAÜx öV¾¯k.X€mŒƒZzrR´ŽƒÁVÄœE…ˆ²õ¾úDÂfreYtF íYöè™|φd7ïëà…‹è§$ïû¬RÕ rŸdŸÕpQ¦ë„èÛE5RÌCye”ò’Ü0©PÜÄ¢ngOϘbðøõRiÓ¼ßW %àJT¥Ežü?î¶Lû‘¡/'ßeLÎƇ;ê–j„ôÚD´A4ðž ìX@¸N½ÔŽBrÒRo›GNQ4¼ sP»fwu eŒ'­g‹õàý±‘ ôµŽ^çQï•>ÇÂÐ9 Þ øe¬›à™gsË=ŒÖ’xºãʺºzbè63Ü'¹J0óQ@6¾ª¿ŠžXGˆ•›/ Ñò˜ &µG‡úá²Ô€S"k¶<»ý˜ƒ´éGÒÃÀcQ"Ù¶FÖö“Àb®UÄâ‘kÙNL‚€¦¥èE(v¢¬Ê*Tî6ªu¹Så$’Xç]ã+Æ£u2É¥‰LOͮߟ®OÉC< H$ šp3H;"@»W›9,K«H¸C+Ñ×™/#°ú•“Ç ÛwqEl£&a®jÇxpÉæ/îÍ3¾¡ùʳcIÄQÆ·ºzõž¦ nÉ,=Fc³w–ã”­½ÖFÿ À"ú GFŒ )”¦ßL²uo¨9«X5п²¨à!<äpPÖù/ BShó{(+P3Ô^wœÞãVÔdŒ“€ŒW¤ìÊØäò’:oþäWC¿¯#[Þ8yd¹åù¼yeVd†•¥=Õ¤¤;G‹øMœó×ff{šˆˆŸäuKÀoËÐÙ¾¼0ø^²ˆDJ¹¶xoÒÒ3Ô@äOlž•%r4«oÃGDEáÄ0¿ÐlÝ\"é:0šª}'±N• üÏ­÷hvòWäÞ6=KÓ\&þ5Z‚]½1§é“ï‚OÓÇO(Þ)ܺåJµWÂ"åfËÞ½´Ž- ⢠sÄx'‘dÿ;ü¥Šàsæé8ƒÁõôÍd\‚÷™ŒAL[¤'hM"G{R^Ñ0ó¨|ƒ¢ ­‰Šý²‡c̶Ü2?EÁÝ)ÖªäªØ‡BXpF%{:aâÿš0Ì9†óÂA[ÏïúåAbo㣅©åf!B᛬oiTûFCöÜJªÛ¸ncH²þpä¶”êBç»\tH²PPÿxôÔ–èÔqïÂÎ-ÔqŒ:6ñÀb,uÌü&«y-ŸÎ²ƒ³Ì¹z0âþaJ ECg¡oWR)âŸh3¨ E$»1%!"^Å“ElKr<éT!ik#";J€Ë™”§öæ®/íß­¥ 7éS$»¨OQLIÈ Û)¡Ê»c1ƒb}ÃeHàѲžŸ‰ÇÏ6x²ˆhÔÓÜ%2,*àÑîeIÊZˆn xù½5.S[ËGßá`S!(ð–q˜ñ Ûp›ä´ãNí‚^Ô¡ `ü«ûÛužÍ-ÎíÝdÛj9¶-(«Ò¬=ev•I*:’ldëù?ŒžAâkïÞ!C µÌÁ„<.ƒÁåü÷‹)Ü`½&ˆ‰ÇæúºrM 2ØýZ]4¥k°'ÌT¸jŒ$¿ ô?®jŽS?X€î\Í´¤VÔ¼ œ²a0‰[Á0ð8VjLߥxŽ=îl«!¢î‘ÓKÅqG¨Ì ÝÚuG‹´˜3±, Qž,Tœ>‘p ¦Åx†ÓÊ9>U3I†ëUìŠñøß$©ïËÄ-Èy`ùn&oG¬cOa\3×ÕŒ–;Wûö@|_;v<Ö)W·§";rؼÅG^köÅZ]a¥¾€ØîüÛ¯÷ÄŠlhxTï¢Dk²á·pˆ©ZMñö"ÿJ&D|ùÜö•g¾%ÎÄ(»¶>8†ó+ìM¬à*Ù~œ®]U¤Cµ ûÎ$¥ö¿Ù ¼ì¹RŸßb_ÀóëRžÂŠ”¸v€À½•±¿8î{ëd 4žfS^d|qÈ‘€s±—v£dšÃ:šÝ Îïú¢Œiµv»Q³†õ·ä$ºü™§´øoÉ¡.ÊRÔYµn¿H½¶ºµâkÝ,´èÈöñ¯ÙávT?ÿ¬èÿ!èwÉøZü®{©´ì7 Äò–ùâ™ü¸Rõ¢oY 'r'C|=Ï”gáòÁ@bàÓÊc‹Ì’ÜnSMwô.A;tCê:=^ͲºdÄeàX^óâr.ä5–Ë',ì¬v&Ðg$2®}¾4r¬û.ªJ–} ˆ~°õþanÿpp‹¯æÈ´ÛÀ[¬¸jÄ­°½ÒµÀû/ÇFz»i~£¯ñ͘(HDp[TÈ7^C‚¹Ô1F„»°øvÙHD”iJš0‹µk"ª ¶“Mâd¿FQ™ÝaNEƒë4ô•¬»aª²+´å}#ëoÿZÛ„½Ó4v¤^Hi’ ßÅô0è_á8*wCˆëáÊé´ÁÃP÷mKñáiÛ Ãáj­QöâôØ ³¼¥ vV—Ú­éÚÃkj8ê–6ÑXÃ^aÑú4ÖüòD1ú_³Õo–MÇP>©HònŠò77×U;xGáìdÖˆ¡h° {N´Óü+û¶Ìû€P®œÍ$eªjc‹rT•{‰T¢.ó'×Ò¢Š\űúÖě܇üŒž»êF‡±jàÕ-¢Y`6#äUCEþOzÃÇÀ†¹¦Y¡º4Q¢ñNsÞ ÏÉpÀyàNC ]Ÿî&³6 QW!¡6ZßÅMÏS¶6Û&ŒŸÎøf:ëYL“»5C+ö˜ùµ}}úk Ñ›7”¬î¯Õ3»÷¤È(¿‹cæ2ÃjoV9#…eNݳ_a™»ÿ3+¤BL9õŽ÷› jG±HÝ–­ H"Ç;î2é„<%Åóªaþ¤}ÂÙ–«u+B,ʆ—Ä’dãi4´^ÍÝñ)v”¦M#8ƒ V¾/ ¼3¶âæÄ§ÔØÏ^ß÷¾ÜâÕod¦ä–X¸éûz`¢Oëx„…·¦[7ô^v²¤{0³¢Ðäâqºt @žöÓŸøÈmLXñgƒ.üòÞgšî-kÉãV4ý΃ڼðâåôT0àSâgÍß^¿Fsè&]—k2$ÇôUS&Ÿ¨µpª#Tl¦•ú&ß%d·_] ƒGÚËAñ@wrf€2-ËrùúåòóŠFWqÖÇЋœLòÎ¥x~òUžWUõÈß0ÿ<¸á½Ik*i­yÕʼn2u ù hwyø_]ŒÆ®îàfÍŸß ðDúeÄå—‹è«á©|•qš%~Í€MÝ—Ü’RY”7á$ã©  «,ï«“ ‹uRö„Ã|²R0-ïVŒ ŠÇ¹;ì¥W¬m[ó·Â£¢Gìo¹A Çn®qE»$ÏM´VsfõŸ¤ÊØ—g’~l ¯‚Ž<¼•¤2TóÁ=7aï >§ xYòEŽÂ¹u°Mò#>y !šUFkôôªyØ,c-i(¨Øü^JçÜïÔ¥Zž¥ôñÛAÞ&Üø ã䌄é]r©‡³M¬X[*I¶åDf0«Ý1Q—z>óúüÑR’aÇ&¢ôXÐmœsŠvG€%ñràC®Wwk¶¼—”ã .Cï†øß˃œÏ2©m"Eû”@4žáÙÕøE`aKx¼Á¦àòhŒ*–ü$‘¢5^ÞôÚd`)³g;Ã4¯7ª›˜”¬ð›xê rå!WB[L^ùt EOÀí¸Ñöô^‹¡!è’É}¤<žŸ×È@r²ÉªòÔC®]å¿>¶]WScw.Í'õm"F “ZñØö˸ïÆð£î<Û°ëuu7&·!ÕíÔ<Öž8S~öº‚õh«Ýö¾þPíRŒÊ-8£-¢… P€íÈÎú€0¬@˼‚u.z+E©5^[<ßÎpaýÏboòñËh=|!Å|Ç‚¹"Ršc‚ȰžzIPI5ŠúMD|È•—n  §Ý:Võ<ú Ô/F±fŠZ¥ðHųÊñŸ˜SXý½oPî‚’(Y}>wæFÊêÐ’J'|Å byÅ„;ʈ7På›]ß\O2Å"1?£…B1‚ … €Ƹ@À$ÅK½ôNßZöam¶ faë‘!*ù,‘ž?yÊâ$BÑðñòX?°€Óÿo´¥\ÅÊ¥–ªä>©Õ©Ô'+¿ª$a°=bR§ò‡/G¼!èR7ÃÔçö—^|ð³xQ›ÇÞî[œ & žéß*4ðÏNÛ=ä]«Çª™îniºbb6po\ÑG´”¢æ6i5ÂZ¥äR+½.óåãeFl’Ø—ö[^ÂA '}¸ÆZÎ4EmÌ–¡mK€¨¼d®êÃ?üñY5†ºpVΚœ÷-•ç-öâÎ[ô诳—nzzÙ£ÝÈÚ³úXl´îì*Û=Ò¨Šä®fÂÙý>ŠA)Ë×íÀ´à@R”v7“;á›==Ä=c ¹;3€I7!­º=ûˆâ´‹Æ|ßɾéð=3Î@*xôpÓ)*¾m´äè™|Åë’);]ŠCˆ±ÜÂÍŽ ¸Ê_¾èé:àŽ¿…êFÆIH.UîP3'ÍWƒ±·$XÞÐ…EË@µŽ¥‰4ÜäÇ6)·QGwä:‹¤ÊFðÕç}h¦m}^Œ|Æ <ɪÄL›­Kci-P›Ü>þ <š \®P*µC·bÎL±–Æ<Â|:|`m¨£b²uê‘GÄw[¯ØyݬAO¼ˆê´¡ºsœ‡Û¢¤Üit†Jv€k¿õMOqPÒ²Ù“TWŒi´N‚ÇGï<· ÷a·ÚçþÞ*Ø6úaLN´T®ÙÕ=ÓÞ‚qKËC(¨•¥L/–ñ=(‘w¡ýkñ1«Ó#UqÊ/M$Dö=Ÿ¬KI¾€®]¸"¤zØKJܪpá€ëç/Ü`S[¿GMÚ´ä'©¬xFBš5^“Y àMŸ€«Yí±êQ¡Ñ|A¤W´kü¸EoñEú ‚ÒoàÒgr\ëaè²5Ð9=¶ú­HW¢’kÑ&öIòn ï{·DlÝ{»fwHX€ÎKÙFhZã~Þ*KºÇ'QÎ Ú‚ õ݉Á¬ˆPõ‹p=ªÚ .0@döAX5×ûz—ÞôLÎ#MÕd™¹A±Q27)­ÍaÅiô] ¸|Kl…ßµj°¹×w/ý¥šSAjãÒð Ú×ïþ¾ò-'{§N9Túñí)ÓÅçêe¥¼œ½¯è´üø <ç8çl¯ *BK„>n®…óTPΜܦøYvZçpþf‘ã´O’iƒÃ‹T/kµÃ(†ž¶Úd%Ápxä°§ÕÐSG„LãÄ[B4…õÿY­ø–»¼¸qo«ÕˆB£ðUA /¸¹g_/þqæ5¢ñq€ÑBZ¯EMµ“èpŸ´Ò·[†È“[ÿë(xûŽ'¯ÀPu„hö&±îy&ëXû ÕnLC§…z}àršÞÂUUQÓ~Hvk¦¡ß ¯[óUÀ3ówzRZ‚%µ~QÁV9ˆm5iŒ(‡ ¢}päR—×÷˜­‘x?Õ§Þ@Ó1”,³dË]»Cï3¡*lì¯p&Z”®Ùl?”<˜¢ŒnyÁF¬JC7óL,â`3ôŽõs‡ßŸšÜY0¾‘Õ¿A©Ð Dò ñ¡'ø;…;H'Šð8ã+Gþ9KÙp~—ÁIe¯Ü *©¾n ·ÍjÌ,ƒsPÎ•š‹Ÿµ¦EÁÑ9Zð6þŽLržG–R¡rºaizÄÖ51Xƒ±ÇÒeº–¦‹Ötp+ª-æ£ÿ;ìöÈ`ÈZû 4°w’?²]!˜™˜XѯElBZÒIøJqi?: ƒ ,U (ºô¤'-·|Û…¢ цéQÛ~íy£ØŽ9»Ï©E)<;ÛÎuE¾èÿk-sÛÞqýC}$C2j]@I%Ôkï;é5X&œ˜ïœ1SûàkD9²¼RDŒ”â7C„j¥"d 9tÖ1%ó…ÿ«&1¯É–€NÁì·ZzýEké`îl?]ÓuI†ÞŸðо¼P*Y\_šCÿ{y{’Ç…Ç´b]¼Ãh¯¨¿LXƒŒßiL‰ùO– r<Ê+á4\¾~])xÈÓúÞS,ŒË¤š[|È}¶u(r¡–Œªí°¯JÄôdcÿš˜ìd­Ð-j-öƒB ¦]àfŽ"+þÄØÌÿÐͱîrį6e[ć'.5åõ‡xÙ’°XÆ Ab8„0îé W#z,û)úâNpÖ÷zÙØÖÑ+üUÝpk¼ŸTâV´M¯Õ¥ëŒÜŽ ›+ž¡y¨N¿ o_‡§~¸é˜âl8•rA¢G¾_°ä?,ehå–SKŒñÝ8ü‹%Ç÷¢Äœã=Çç´þ0<‰Ïê¢ µq9zî{š’Œ„/+ºîÀ±ø ëÍ8áâ’ǯ®šŽ¬R£›ÆŽ9*Q4ªqÜŸ¶CÓºÇMçšÀN¤:ÿ%«_È=„¾^r¦NØó6ay‡(Ê…'Ð\à [¡DáãûCNMJZ¦b"7sÝ«ç1ýÖ^ïØ|y½ª~t„Ã4 ½9yGuþFhûŒ×a«íOŒ=ò×F8¿£!èñÝHëý*‹å2»©Ây¾‘ÃOñèt1T¿œ£Q[´xý`ŽÅlù{ÐÇn£†(wÇœ©¿1E˜%<Å”+ùøGüðLç[3þ£¯ƒgª¦Ñ:MJ™uh§jw 3žÄTÜÔ¡ÛkD†Q]ês»#íª.tÅq¡"RáX^b5ÕYk@ãϰ҉…-r"‘Ä‹vë’Óêá¬úî!ß%Î1º‡[ì07ÆÌwÇùä-ûÒR_€yª9º54…ޢɋñI-èLj»˜(ئæ$rxÛ‰¼ Ûc_ÐÐHÑWÂxÒbÑè"àÚœä¯jBøª¢*ÌtõÒyŸêH Xoq#®õ²é™_f{pA³™pHf\”u.½)Ì7/?Ìxâ“¶Mÿw%ÒAÑéíÊ!I,MJŒ{†EADô n¯»à°?%OëÝê± íR¦å´ŸOA!>–Q8®úé Ïbß²­ý<{8t§s¯l2 îDlŒÃ}?²÷0ù< ¸ÅOûavõ9 ¥æ«núÍå÷?‘Æ¢"5e”üE3ܸº0„[xâEÃIs]V  ’¹¾'Œ½ŠÍ|®'Ô]áR^r”\r1é´ûl(nŸW«4R Y§ÅÝ,@nðÃçYG2€Ó†zàÈ>n³nVüÙV†´ò]~ÙÖ, t„S2+A<%Ÿ7=[µòˆáRt¦|¨w‰TxQzBÙ.(vƒoÞWPˆVËq°Rð#5“C_PÛ J€o Ê?U0¨Y-ëDÅy«Ü¬¥ïhéNX×Íóßè¼7²ˆS9·‰01úØQònÖ#Ž ?÷AÿS[½ïÓÔõlZ…¸Abº˜ÚÞݪõC¥K~Sn@ßB#à ¨õ'a}¼ Â|öùøçÊ”ýÀ=åBœ½± BiP;¸¾žÑЧ¨q€•ÏØªQÓqŽ—šr‰ËŠ s]D¨KBõº‡µaŒ‘+^ø¬@múhŒ–:žà ƒi©Ð=Ÿ2ý°ÉrßSÝf:’¥2Ê;]1‚ø€j6gPÒ ¢›¼ú5 é=gíÜ4´Yü‡r”Û×|ÓìÿǵMxý^L8Ê ÿ'ÊŠrÆÞ-J2u砦Ȟö?Ä1œºÍõQ ë˜ ŸüK2þDøLµ@ׯÉ}• 6â4*Bm.¤™‘l«>{ѱ’<äœ[K6K ¹ ¢û$tE’;ºµÄɱ9¼ÃØÄb¡æÇò…ÄØŽ—€Ç¤e2¢4_Ž&¹ ?5vÁl'µãI…m1L×ÿ.XG ,ë]”×…\¾±ÌÊO=¢ÌÀÚ9*éTÆÇÞ/[JÒL·èjH¨Ph^œ ^aWê¶·ã¿öbvG<@¯G´òï³Uݧ/äç†æB¹öZ˜ìWWvò& nâ“d“;çoƒP·} T,éØc‘*ÚÁS+¦Ãùê›ÅEªgu6r`,u²mð–^«¨oèláû{hßKP¼¾ìÝ~@³ ˜r³ö>ÇèM`QÓê`K'à`ÙnN¥úKµTЀ B)L™e›ãÏVºƒGvÇg,Nž¼*Ïáó&Ç™« F³“ÆgdŠ ‘Ï]ÕoñŽ÷óË Û Œ[ƒC´4ïYõBsxQ»@|F°w•Îâºstõƒ_¾Ð*sw8å. —ûSÆòêFO—Þ‚ó¸2»²Åûz¹"«Å©™þ¥`áš®Vx2«ÚÀZ-?¼]4\#ϯLdF!ÞäIS %ÊéÌÐ1ÎÖK{ŠÃ6…²ˆH .ê?yÛäD×?®-£Ô5¯Yjãq°øeyEØhqöÀ’Ô’4FŸ¼-³<Û*©¦Ä$èð¨e5ˆESo¦ÇҲᾯì|CâÈÀ“GŽÙ}XDÃ)×lò ‹°²•Ÿ.=÷ŵýÎJ£•Ï…×5ÆšÜìúΟ4$Éhòƒ¤¦:5“7ÉâÖúîy]´K¥¹j§Մ¢ˆ¢Á{U½þ·H*«à­FW–rDÑ8¿¥8ƒ¿e,[9°´…­ÔFEÇÉ—¸ÃÉñJÖŸ,ӨĦ.T¹Ã”ý嫬úýŽ iÉD=úÎ1Ü‘kr _/Ce›&i0¬âýþ­k@ïÊ-¿mµT8O­±qy:øl’/EŽäaD¯‹–WNõ‹=è)Ë«–ô\Æêž{c(²î¨ÿ មá|“\ç5éç’eVl Ké˜ÛŸ›¬öØ¿²nÎ’& J¹é¬Ís%Œ6¾·‹L*Ž^\pavG˜Œ| h§uB|˜·6áÈWt%ÓK¿ÈLqQÓ­ÙÜ~Ü{Ê,Õ0ßD¸+{/h7üf+µ‡Dû$`e¹d,J‹Ï"jsÊ×&ªtÆäi£÷p\¿gnwÝ~_ Nض‘Ì5:ßѦÍm²xÊ–²!­ ezwÁÅQüÁ 'ãZ™ J?–N‰Ÿu^mI<ýéêvõè¥4ÚEàá{T^ÌÈõÛOîÅâ0@C;vö•üå1FSJÎÇ6%ÈÁ–² è"ã2µŽÕÑ–ÉÅuHàÇ·DˆÖ¶ÿ„Pdóƒçж¾l‘H: Â_’H'íÖÛijDçêÂfmj¼zZœmWÁ]1N6 !QòÅ>‰þ͵íÍvÊhd\Ï>²aŸ†*Ò`Ðe+Ehg„ô•ÚÎ ³SgéÄ î·oNkbÖï[“*ÿj8:¯¯iáv¥žÈ)²ÝlÚ¿ƒ€ÈןàÍ$ï™ÑGÚ#®üßP™2ûù¶¿Ñ€;çí>ú‰äS`\À«¿)c6º‰º®ÖA¯ðù²?ò{}h:Ÿ½v0 ‹YZ@iêgitdb2-2.0.3/gitdb/test/fixtures/packs/0000755000076600000240000000000013163135565020176 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.pack0000644000076600000240000014524312637461244027473 0ustar byronstaff00000000000000PACK‘xœËK Ð=§`obèðIŒñz†ÎX’ÒŠ o¯gpû’7:³¶Å0&fœ$ s°À›<%ac‡!'õÊ·¡ãd½ø`¥x´.‡dÄ`¢¸ñ2 ¨üËÞõ)£æM?–Ê«¾Ð§ï[mûíÙr]ÏeoWm,¢OŒÓ'°ê§­ŽÁÿ~5øê ÷˜D.œxœ;j1sB˜AjýZf1†MŒÁ‘OÐRKc#-³Z°oïIœ§EÕ ÞÅ\ ÑøÛ1BU%P¶p±=S²H\W‚Û·G@lŸÞ{c d[e§%ûLœ^Åj Vaµ#QFså]¶¬ASÀèrjRSÎÞÙÊ1·@‘¼*£w¾ ¾¯¾Ãûm[:¼À¯¼ux¾,ã{È~ºöÒæÚ×#X½õ„˜`¢yÐuë_µy=‚Óæ`ÌÇrÙ¤M]u*¿Oš;i¦TšxœŒËJ1…׿)~º)Ss™ÜŠˆP|ˆ\þiÓv’!“>¾ƒèB.ÜÎ÷Ó*"#5"æ)â z)#gŽF«¼öL™^apdrs¥t£‘iÛS*¤‰Ò°Áj.ƒ½ãAp~øö­ãL ËÐ ¦•ˆëß:ÕÀ­âQPå] ni§RámÉ©À^ÝèrÇcjsÃú<_n»PÆ'`\ &´d:ª)%k;¦¶ZÿZ“w¬G_]'ØžÃÃèRnÝ’'.]ñg mîæVSh[XQOƒ{øÛÞ€—tƒÍO Ýßr(y¸®qÞ“;¿¤kKù××.»J…ý’xœÑÏJÄ0ð{žbn«B×üÙ´Í"""‚Ï “d² ´Ii³lßz=žføø~ÌaêLÔsn“¼#Ñc… %…s"XÔ>ï1¤”l™rëè w­ô½&'ZDïU°Æ«Ðw¨Z½%ôÝWVSà$Eë%ǃñè¤TdM¯·ÅéV é-9†çË oçœ <Ã+Ž˜ <œR]*ÍOS±eÝ»2>‚Z Õd ï8g[:¦ºµþ¥Ù;Í';cvv5ÜûBs‰©Ò2¡£&åMNUj†”i)×#nƒ±;ø[Àz®iXŽð’VXýð1“±ºxs %ÃÀX~€ˆKLùø« —T#\O/€jÜ›=û]_Š•xœÁJ1E÷ùŠG7aÚ—d’I‹ˆàF?â%yéŒu’’f@ÿÞAíÖ…Û{Ïá´Ê &²âHÖ¨¤uÀ(-&ÐÄöÖh’fªœxOÊ FK¯Éõ&¡Vä'Í6«íLpãC0)9gpŒŠIÒkO*ìûå!¸>:´´±TxYòTà ži¦\àþ4µkãúx)¾|ìB™@ª5¯m/-t8 Šu§¶Rÿ²Å+׃¯”ÃÛ·ó~¦)·NîìNwaäp.Kë–ìKÍ[X¯ß„wð7}·é±@. ¦ùòþ ›.m døë|_B¡}3‘xœŒÍJ1F÷yŠ»« £ùŸ¤ˆnDð$¹s§ÛI†4ÅúöE®·ß9ßi•H*RI$]@Õ¨ÕÖ‘+KÖ)£±B²%TÊ ´ð=’B;x­zãIpç—ÞE«M/¢ŽØK~üae wÑiIV`//¹|‘¸TÎ{Å©M¥ÂË)§Oðæ ÜïR;6ªK‰å|‹e~!ÊjΡã=çl]çÔVë_oöJuGkÈ8Áæïærëp"Ü—SëRèܵÒ-•ÆtÞÀJ \$ÆnàÏÖ\ØÛÚtu½…p8”8~·”÷4À*a+5ÑÖôïtßöùw‰˜xœÍJ1„ïyо-.ù$‹ˆàE¢ÓéÙ 8ɳ">½Að¼ÅWTQ£3C09.R3ÑJÞtN¥‰mÔÙ¢ÄuÑŽ‚8°s åjl”:+gW%'DÏœýj5fe••) ¥?Þªè‰ -9Zã]d%C@©cH‹u^%›Èk‡ock^oµ4x†ܱ6x¸–ñ1¸?-µ¯3µý”v:.s„‡{é¥ÓݢԿÒâû•!u¬´ÁiÇRÇIˆ;øU°qœéøÙJ†uÞVê°Âl«e|/ßœáh“ç.~”i(™xœÁJ1Dïùо-³f’™d²ˆ^Dð#:ÎNX'bVį7 ž}©zU4Õ*3hôÆH F…`i¡Å£-¢ó4’Z&ý\d±cåÜÀFo<Ũ«]ô4³<+œWhÙš‰¦_Þ+©æq2AÚq nÖR=«Ø[gЍòc°Î ¼¶µTx¾æTàžpÃ\àîœÚ[ãú°_>ŽT¶{Õ¬œ™œ”0H+¥èê–Z§þ•/\Ï ¾b¦•n7L¹ kkû˰2†aGº ´2]ÐÍ?Œ7ðßÖ‘N€ï%ˆ}÷”Ï€ú»9µ„¯é“ì¥÷p_©!‚ŸxœPËNÃ0¼û+V=Á¡•ólRqA\ù‚µ½NV$vän åëq¸!n«Ñì¼$AÑWy[j£›¶ñ}m,i¬(-v•)[Óum¹W & Mo:Wu¾¥Ú½é+Û8[×}…¦(öºEë ]˜Fá*cLð¼ŽðO8cˆp;°…ÒýM|ßÙ8ßAQ6eßÖ]ßÀVïµVY2ë_ßjYvöxŠìÀç–ÀY,°0NüA–È!k)õ€0Mœý¾ÛÁÕF¢9žN”سEá ú/X´¯Çk˜È‹’1Ó01š‰`³¦ióÛï6C”v" ë²-(#Øí’XÔÛÈv>Bˆrq=C`K;¥^xä¶Ñû­9þ0Œút§œ³¨ÿxœuÛyÆ0سؕRD¨DD¶´RBE²„B$‘%YRöTd)ë{ï˜Ñ˜¼=ŸOÿô=çÞ9ëïüÎ}÷îUSQSpG“à$íB&!‰Àzµî‘Xë÷ãÃÊ<[îyêô$ïD¬â_‰vÇâH਻§€ê ö~]u¥&c³/¨í?4åGc¼àx ÁÑÝæÇ{w]¶¥ÖàËóûR>TsØÌüÔ1Ó£îwÐ×D‘à .ÖWkF§KvFÜ)KI\ºXqѱf¾3˜*\àD¤º*XKÁ–t»’Ð¥!À/«ñ&ÑYÅ7#žfÐD$‚šOB‘<7jåaŸEk/'~Ú;½Ú €s¿ç·rgÉÛ_ÉQæí¸wYõ‡Üõ=4ƒÁ¹€µ¼f‹ÙÖ¿hÜ›Žûè’QARÚ'L/PÀˆCêÍKˆRy¼ASj¿ÖèúGþö!ËSOW¬•žU^Ètø¶Î;ìòÝjV«´jp,f¬?´ìo |.´=]šž°x³µÿpðjƒ¾·oÉ6ö+8£á¨Qð}â·­a>ÍÑ ƒ»º‚•½ÁžZ?ç3qdóNù“…Öý¹œ}ªþŒ‹ÅÓêÜùÃß›=-¿^s¿vŒ#ŠyvðŠø FÇcüAZ³O–=äx¥â€wnÿÅg#ë•r\÷2Ò•Aë*’ò¡êì§èGA@O ³ù ¼Ü0 ‰Á#¡b'ޏþ¹’Câváû]™“Ž‹)¥=úŒe0p/¨z2¯ïm^ËAœ¥X+~¥¶V6#¥µîMëëb.ІšÑ‚—ìç<ºïs6Wf´d¬+ª7ÙF@ìhñèBën6Ç1•ӜР'Á uÔ§ÖŸÛp2Çéµ·%nt«hK¦$£F!Á‘@—ÞeæŒ 8ßÏì}³”´ïjãšž€tƒ¹á^ph8ÿQaË&‹LKmªÓ–®.fö[«ŽL‚¡±®H?°Ìí[ß¹Á,^[:]˜ø4]í®{òb×ÿ)êwæ•~7 ›WÈŠ½Œ*}è«m0ʨ1H8¤»˜I]6W_çhV†?z0Ò:ñÅa¡Ö)~Ünš.pÉâ¡ÃÕB™Ç!¥Q±g¢)ÎË M‚‘H¨€«;›¯¢¼w‹÷Œ¬ÈâÍ·¹‡D¬Y´b›{ô1oË5 ØõvN øÇbÝÐî ÍhµËýxtNM||æe“…î…ÿZ2–ùx€#Z…90çGtý{¬žÉÛj{tŽœê¿ÀÇPÄID€;3ôâ=î·•sí¯>*ŽR¬%)•saÔh77ʰj·seÚ1$¾g}ákBö^¿ît‹«©kyZo® %Å-ko?ƒJ½oIò‰ÖjÚÕ½–§¶£ÿÛNB•IÝ¡m®°¯LwU õØÖà \jxgYÇ‘¼·ôå[Qñ/ß>Denp" †ôÃãP³?Êb¾×ô"ïqÑÙ¸s±Vó7ùc$ ‚ÁH8, ùb&ã"žùg[vÀŽ|»æ×°€ÆEc¹Žð½K‚êÔQ‰Ì’’¿kE’\våînÓ]ËC AuPæ€çéʤDÞKòs¬Q°FêE‚y! îH˜ )Ú@a±É ²Ûز'ªm÷759Æ"8 _œƒ`‰[w´øÑâr~år•›s(xÊõ›0– RÞ¼úÒ&åÓ-*KEœsö!'Y; =¤;´‹ºñ:Í”=st_T¡Q ÷â–ÄíñŒŽ€„vgŸ-×ÛÞ=lUxs7¿ÿB¼›Ù½£ Z;Aùyô¶ß­]SÀ£l[O…#—×eþf\¶ÐXp¢¹B[×ùºo%²l%w9/H ›ßY°ý"È€18¨µ¤úDZTj*×)pÙ.ꞟ͸¸Wõ$Qœ•™9Ð,Û‘~fvA÷DdWÈ¿š€ôÂQ6¿;—I>×ô–†Ýómîþ25|ã*î_NÑâ@ôìå"“a\Þ ¢îX¯l´Ö; …¶h¬Ô-‰y °$Ùë/â]á‹Éµ1õYgÖÐD<†²”ôôçèea/s1‰Ö1Úó­zá)#§Œ!(ýÉÁoâû8Í»j•JÉlœZo¸¦§îß%«•¢_3éd¥ Îé­éqdÔ—íŠ'™{žl|xcìi°BuÆÚïC@"ÀËûí{k_Ã&î˜õTëK7Ù%5ÌŒ¨<_«HŸ<Ó {ìqxKÏ!Û!­vø«?³ÁŒÔ“ÚðCãÒcw‘únFËç+½Ï~#íÄh} õRŒ9ʽûåŸxã<6ŽvDA~†+ƒÃ‚;7øÊ^ŸYSÁ´kƒ£«ïKÖónÞëcÐÐr@·hlÚ¡÷å’,Ì¢g»o:ñèÛìµJ€“â…œÁ[‰nàÑHæÚ{š¨z¯’‘ÈX$¥ŠšJ¯²W Jò´jrZw6ñŠyF½Z«HÏŸÊ­I‘LW1hŒçRd/¤0R2Z¡æ}?Òô1"J®ßÍ#ÏÒü Ä2HîJåü5jyhå-ÚUœ±V|moä 1Æb`—#¡ðºZ>õ^L›¬jýü_Ään=˜AR1êÚ?%Ü–gsßÇ?þ1Žzheý |Vñ’Œner²ùvy'ë|3>i§ìYÍoHlÖfjûÇâ1pÊhq¿k€Zmšk³ü¥?aÑi:/Îeüƒ¡ÿ@›3èdp*hëK%Õ§Æãi¯ý›™€$"¡iI`–è¡î‚­ãcÉŸN¨¥ªwšúå5i1” Á¡_ZåÏta´(!ÉÐè}ª #»ãûȯ 6g.íWý ˨¿óD©…/ùeu±äÆfqMÆ2,&(K·Þ¯6ÕÜ "H&ˆ®ŒÔÝ?Ëà]ÁóÑJö_é½Éü:K±»¥_ Ž;|<ÒΔ°v‰åëS¼Ãæl~Ã'‹ÀfDw¥vf·3ã²IõD$f0êÎ%§ÕUÞ|ÁÓãÆÍáÕÖä¾ÿ”ÃàÀ%ãïI«ªA„Oz<²/4ûª§e«zCÊ¢Cð h7ÚÀ{–4ð†åõ/yìhMmoë•t©µ ,wÈMy™)ÁCÚ“L/ñq>Áx~ò% ÁßBí’Çupß^n«¿ý0£¨Wkä6Ãf g3¶˜ÔXæD| «ø\™eóF€0öw¿¢Æzâ?ï’3ø:î´3$ôÒD“߉Õôåv9·æðŸ{î•N¬91PlÀZC[©`·òR[û:Ì G_o¿/•¨Äy)Ñô_‡4§u¦by&÷ß=žÑ0{“‡#!o¿>½É6WÞžVGù×Ê?”.y^,ØeJÍx-ŸÞ¨¿’¨@D­‹˜qRjI«ÐÍLÌsSþ[Jï›h‹zÔƒ# Ã5Ð!+ˆØ²S5ÿq¾¹ÿ¤ÊìúJ\À±ˆ&éU•CíúCƒWÛz8ùÂ??Þ%çH;B"pBŸ1Ø«|³g0á³§éãèW÷Ÿ9¬"(@èþhPp‹o\ËÔbÖºdë­?•CWˆø($í„`‡x(2ê}åŒO`µÅl€öÖŸ â¥\Ï(+0É̱dŒ~=ònsÎ-Ï-q- 9rt–l-v~èßuºªô¡¨¤møu¡ ”=wÑjƒ&çí-#2sqr×û•+»6ï8£¹œW NÒÒžÓÚø|ó¯HÖx‚ò!&Ö×+•P}¯ôÖó¨… ]İmÃô?Ym¼àž h,àž·‡˜þÜß‚mƒ /ò6d£à™í« ܹààÑ'9F÷¢ÚíöŠ§Ð¶¢øŽ¨Ò_‡]N=ù뉬¨½±q&Áv8Á½$áèƒ}Ú´WÇB‰\€Å§¤3ãØ’’nÍRo¼Y%%}öéßj¨[Î1o‚™üF²qñÒƒóà*Ì ÂCãåöÔåÖ|á]*3ú!7½rÍÖî£eyD²-ö41¯·ÿ%™þ邿^óõraf½E‡ÿa(@ưKöê1„e|¯BãpÕ‰÷Â2´HAòÇC50öí2´BÎp…, 7|+ÊÚ@%®p0n€’¶Ý >º5™|Ãh$&^E‹Ùì¶X1”Àbø»ámã¢÷c¼$ç>¾x¥½/f7M 8²Ú‰ørñ¬Í™¾›o·¤¦ŒRg±Œ  *…è-ÏzpïöÔd‰Ó…}¯ÓV†IQ³r—ív×ûª©­ãdŽ››§èÀ¼ìÀÃÊ¥ò,ÇxÄiùo= ùÍ©öþÊôƒ†Nœ¤ö¥I½š1¹ù’©f¡¯âÿã WXÜʆaZ²ãExGûû{·^·8o÷5µIÒQèÈV*” ûK"¥w·ÆÁ‘² ¤ÆóuÚô¸ †Ÿîo²=Ëô¦;Mz{Åå‹ûÞÓ °À# ?BkzÛÆÀBŸ·¿¯lŠa*>÷¹> ü–;£¥ýØüïãR6•ÑI)X²ñ¼sò:9žxF‹#¸RRrÃêí¯™|¸¬wwÞ.uŸb´x4ÂîõÛ»¡ ÀEɹ㨠V_ÄSåMó5‰]Ná!\¿4;mr‡­´<—ãC†è“ã‹ l;„þ…¡®!n÷¢à‹|å¡Ï<ÙWô†ï®'§Yª)Z K‰æ`[_³î (@‰ÃczÑî›W™tø/9t¼ 9KÛ‹‘®heÉ49’ÂæÙ`Ó³Ü+1§–w“ŠÏ)Ú N[h­oÆÿª8Ž 0:ǃL<êY¿B|к¡Ã@¨Ÿ¶Æ‡åTÌ/Ì#CžéôõÜ4è‡D8!¼ ó†vŒ©åçêE=c_˜êûæv¿úF¸»y"Ðâ9Ó¦¼ñFÚƒÀÆÜß´’—A{Qó2§ÿ„Ùfô7,”Ÿ7Ÿ½©ó>oFƒÓ+(àRG¥|0e«‰ô,w}b†GÆwÚmÚŒ_Ù»DOV9WMiÞ~a£f\’jÿIZË é(þS͇ä¼ÃàuÞªâSá ôç­žŸô×ÜJ;Ͷ;Kd=q?õiîH,šÇ0ð‡R6p¯$¿ŠŽ»ÜÌmAø»´ç 7Ûñ›.S4Ž&Aém8ÁH`9 Š}ðHÐP˜»ª´güÀ󬿒w¯}!/¨æ]KƒÌ½¦×™øFwŸa*=ë`X“ÃN `j¹))u&þëwË~ÃyE~èhüL÷åȹe:N½DëÅáX®áN±¾¾žž<ÃóèÖŒ•1µ ¸¼]ÁÈ$4lþá_7¬ü†ƒÐ‹'øïº^ˆù ³AW+‡¸œf£îƒ”79õ„°óÀ¼Ú‡G??xXñrbÌ{uú÷nÓá9ÞUªwxÇÃGœ#/03XÑ·"¸õ€]I;°€•g…´Îã³êˆQ19ü¬²óE/1/ïw'£‚£zö@,"7O ìÔØz.WÉʨõŸàÁ‡ñ¡øÚ¤3ýëò$¢:DN¦üجêM7®(~¹o  ,PöHÔOw`«‡VÉ&-Ù"´õ¹ÆPz´…²$î’§ùÁo7›¸ðuuwÉ‹èÒ7 åˆLK€ÜéhÞY4r”&W®ü¢^|íNjzNÆPjåxa7Ó#dÛ ¹wOª}/ÖPÑdýó¦¬+ËcÔIžEᦼÍÛº‹UM¢õcF>þ¢Ó$”k[=ÛÁRÝ-¡âeþvëïiE½æ®‘:öO)b+,Yj/+°9É„h°oÚË“· bÐXÏåQ„¾m`s'óÕ‚mx;ë”ñüÌU”²r‚uŠä—dZüŠ© !†Ö;-9íB–[½ÉHâßö@pŽõ°XéÞ<3³c÷¦Ï¬ E¯è8%€„Ò˯Á´³ÏÿI™k>ªXvP59ø?Qú!¢À$2ª¹jû’Áð“fÓÿj<¥ÞŸœ—xFOIp"e>™>Ÿuà{¬3\Vô†»û]Ž&™­ôŽìâ…s%/вjO&Ísk÷pû\7«Ù¾qÕÛú`—_³÷›TŒ²ýèÅá3¤Tñ? YÓ×G/Ñ9pòÁÀó]î†[~•·•XæÆË ËIæ ÔŸxüöï0·ÄP Ùá¦LË”bx\€W˜ëG“I:@Ä#Pˆ~_Üìtî…Þñ¾Âžb³‹˜…W++ƒ' ü ÊjˆÀÇ3ávd|Šâ{kr!b…€¯ Ù˜Ã&?Ïh¤·×‘ƒ0o†’hw4î8J™¸i¿óŽÛ ÅxÐh×,g¡C« (ÙÛ^Þ9¿¾åT\øE?#Íȼ¥BIÚ;Âr±‡æ§¯—îÙI|3›ø‰^ €éïõ.åê¼³¦óaãZð²X-JF]GMT€UÅYv±mÌ}ƯöCáš®”_+fh‚b{Kí‡ò¸SqÏŒ;va\hô)¬¦(ýeÿÑ¢°ðVžùRð{ñŽ5M,ßÈÞ7¸óòöC\ï ÝÊMŠ0LšôX•hãæ-yœÒk¤{›>Ü4>îE$~åBfhÒè~GszCØhö©G's[ÈûËÒ;jVÒ|[ÑA|„ny}œ5·ÃMåÑÆ8zæ ÇxR‚O_7}MŠ¢Í¥s®$§#Ã†Ó †3ÃûSé)%¿ VI™ï8ð>£‚µ¬¯Í»y·õ[Ù!A:Öt'TÙh× Ÿön¾øœ‰g¿Þµ Y™­wʲ:)ØùÒY·mÌ«,|BxJ9Õ`›Â b?ú²j”lClŸ{£,Zô$Îí²–ëAí¨5) ˜ˆÏh¼pÙ¤´ÄeØ*ü‚ÞRç™R› M$Zú¡Wï…éã»»v½lýófÂõ~žÃpõ*ˆ†V[®É7<3¼DM¬ž©x6îLTšbPÐ Zo‘Âðc\&ëo;O‰&÷ä? Ô¼®ãao6ùÁ›yÊPÀ9¿’Uá)Ó_àug:ÙE‡D¤ío)+#{ü<"_,Ç”¸çÖŸ‰¶Ï~­ÕmeO3;ß©öË&Ó6¼'xœ@SnŸ\½?Ú–¬ýóÚãK%Ê?…ˇ1*2}bzêá Xøz›¶ºÊ¹•>¤> :Ëݶ¿{nVÍm˜6¸5l©ì?~Z`Ü åþWn%"b•_¶•¶‰ví?üù¦Tú&;–¿”D‚ÒS‰Z—î%>‰UÇêŠ hóþ0uàY180"!BÍȧÐa«©×|¨üYMø\¯=WžÈ¾)X·ðp3`TàÜáê*)IÜî¼ÀgÐ0aýêLÑw'ZB—@^þ< N‰Ö(ÚF_k3TëÚ#}”MLGwÈ(p ˆ8ÇN#áÜéx bòçìiZù÷¶\:øs÷Øö“¿oñåp4|:Ðrf€y…Ñ_ái'ÖÉÙ b”¿æÞm*›8u(ÉyB'8ðÅOéå[×kl!3~¥zþ˜+m·„>…ap8O ¬údÙ4ÕÀ–Óx$ìÄÉß:õ6Aǧ׀(@ìán«³1„eç¶Ýþ²…ïPoÛ :èDMLÓò¢Ùsë ÆÈc;Ãã«ß†r–Ð3jfVï¹Ë{<1IB!¼–“õmÄ|g…Ý_†Áà|¡”镱ôÔEöŠ7CùcޏF«„Ä@ƒök˜éº6Iu_Ö±”ÎUx¯êÍ6x¤b®—ùÁåäÊžnòãºÓÞÅ#Wÿ*ß•ÕNÿù kâ µUæž8—™î`c Í¡¼Ër¿G$‹þrÛúŽ-ømÇGß)õû‰¡Œ ´ÁòD¸*6ÎØÉH»0äyæºëÞŠrJ€Î#T”jݼ÷²òA«Ép¥¤Ë?È·{¸*†„–ô¾ò°miËË”*¦EDÁ… %û³4ë¤#Kã 'g7Š~jå+âZmPÀ;GV¯æ«ž®a¶µiʧßü”šTûkÐXwÚ§ÛªÕÔ;K˜»·|Íf«·˜™©Ø°DüÏ«|»ë•àg5†y2lÎ?Eƒþ^P Z¥ÙÚ­}†Ð'%*TXj'gULÁËÛ hÐóþÏ'}z_°¡_îN©£ÈÚ7]Ëñ¡þ}™ßç¹G\À×ðÉ÷ >ÓÀùˆëHqÔ±6n™Olë„.²Ž¸¬(=¯âŽwLÞÄŸ&±Ž(äì?´ßFá°>õñH/pE‚¾ÕÚ%ó´0í2ðˆUàů¾‚´J œ åEBS†îâQÌ![õkÞåü#ë½ÏOñ#ß­’ÔÛ,–ƒ¤«"ïTÇÔò<7ÉÍ(c>ÙHÐ;êuÕÝAÖ™$þð+“Ý–¯¯F×¾B«Ëš­bÔ˜æ¡vfUjoç½ÑܘäWÃKåV9²¶ê>Z”8><ëÁßÝ£n|,VÃ+:I_‰%€c}XùÞçKkÒ<_`ºÎ%ü—Ñ ½]}PɬB…ûutî®9xõXmã¸s2ºH‹^3Æx?n«(¨·MÝ m@?ؼÈ-¸y~µ'¡()l¿‡kDcÌsÜÖç¸^—+ñݾççªö…–…|,NÜÔpá‚—ŒƒVÌ_„)WsPšè/#¢€ÍÕïö˜¼i òÒ>aÞoTcÒhnUu'£n§„iøÖ Ç økŸ}2¯Gv<Šm Qe«§½£å`ßÓÂ?öc¹/-¸ºvÄ  XK¢€ú¯O[õª#ÚË?m:k¥ k¥m$Âò‡.º2¹¼Š­Icã÷BÍS:û^<ÓÿK°D(¡ù÷ ö©Óç_ùè€#õNÇØñsæ…& ŒdÆÏØðìzNž×ûJ%%Û˜lUú‡¡€ “ìñþCooÞ} €zªFª>,Sê´Â+WôëNõ›hFdñ)o¶¸¯â¶çøFëFè5°aîËm#ØÄ„¯}o#¥?uhmïø‡¡]ö#NIQW›J\5gïU*ìÛJÇÀŠl‹Ø'¬²]ÕpZÿ¸OíR)ïÑò§(`ÏÏmf¡©õâëç+*´¾§8ˆÉñÐd,œÕHè® Iɽ[XtI‰áAÂF93‰©þ¢¢È+–rø¡n^n”µñ¹ ìè*rCM&>O_ i3€°9@Pð8/ŠðTÕ›XÁ…nêôQ[K¢€¦”I3m|ðGu«¹·ö?è ¥¢¨ßÙP“:ê]ÂØ&ë=BDF“ÚS‡h ‰ðåÏ*s³,BÊd³Ê=˜öþáÍæó4\!Hµ³¬-’4C[;`ÿÛzÎGûºö°õãVx¸uœ\ÑP;¶ØpÞùÙÞÖÝÌ]ª1¡¾ÕèÇuš„z÷Ô»‹E÷{óø«ÝùÔRUiÿNÉ~“ÈS•<á©ò•}²êPBdƒ‹iDlë? ¤ ÷-­•¶Óµ>»-—£{ø í’Ýú > Ip[^ ˜ÆÍ 7«û%¦Õtêýq{ËöTìÿ``i-¯‘Îõ]aù[0_2WÞ:¸¼±Q,ÀÃiýü‡µÜ©±Mw×qe}BÿÍ6LBçÊWxœG¸ÿøoôo°Ò&³ö&’ L— WäYùv|øpNÕ®ßM³œ0”isæâ›²ÑÖCK‹)®wZØÂäŒS‘“Q3³;3½) #Eº@xœu“ÏrÔ0 Æïy Í`6K­f€Ò Ì0}ÇV±ŽdyÿðôÈɶ{\’ÈÒ§ŸåÏ÷px»û¸»ÝÝÂOŒè2ÂwVÌÍÝŸ¦ùJ'Ì)y|.oÚYõMœ÷¦ Wœ’fç÷-w«Ú6«×ÍÖöt°ä°ö7a¤îúlðknµ§ž†"N«¿ÈnêÓ,ÖŠ:%Á™3-\6°‹òh-.ÇcJæÀ%ž×ñ,—6[0Ï£7ÙjçÒMf︜ÜÞÖMï‚WíöÃr&JvÝû2aÒ•¯ÌÁÙ'ËùÇjÁ_Óu^þ¥õ xœœ 8T]ûÿ)DQ:¡HR¢2˜3ˆr¨ä‰IŒ™Á0f4‡¤¤ˆ)ç„…Dgщ”ŠRÕ“RDN9’ÿÞ{{yž÷w]ÿç}Þ÷­ëú~îµ÷Z÷º×½îµö`utˆºº*Z^4‰ÃaÑ<¸*[D1¹ÚÜ%4c³X«œ÷m{íè`¬°¨’æÅ`²¨"¡/®áêŽÓo—l6ªŽPxæ_eCò¥zÒèT‘{R28ɦ®*ºôa·Ð#«ï|ýÓÍ6[DšGŸ¶ø©=€OÑ 6,0¼9Õ4 )ô’—‹êEâP1,*›Kç°µØÞ"wo»†^Ì(wøæýî°oäáòÔøI “Ë¡wà‰ |“r®„YJ¹×øÄÏý<å‘ÍShžž:Í–YêvV®•ïqXA©÷jéë\Û²$¾ zÝ@ª‡@xÌÞAÝšÕz‚qD,7#Gó|Ö%¾R`ÈH«Ö†Áz:î¶.;Œìä‡2·¸_—Äë*È$†À€•“‘Ø1‰Èr›¿~kÄt2sd½¥7‡ãOu^Ô’0jgâù—UÑ& Q eöoþÔëê@ÿ 2‘€øo}rß-6ª-š·’“¼p•µç_~GÂ"‡ìñcR¨°AnNŸÆËáOUwÅ'ÊRÏw¸®åö ³¨$ †Ã¢R1~| )F䎮¹RaÛÒû,Bt÷ÞÚséGú’¦!$6b{õì•Kð9µé­cŒngû!›ÐG§X|!ÓÇJæh‘EþÆ dî¿q*íÅ%BÂ{…?Ü‘Çü‡åÀï…ŒÑȰµáçÛköúÚgßOÔÐØ¾Î3Ö·á  Äbh :DÚm=ÝÒµëµz¿Ã¯Û‹ê,Åì„8¸ßaŸ„µ/™9ÕV ©¨=¾}ÿ®ÏCM³€Í€A',W \¢u]¡~–÷éè®aíígÓµ3Ú¹.†ËdA3ȃg}¥YÑî¨ËɾÎJ·#ΪgJa–UŽr† Í 1-õ{×Õé-ïgÖh ™gUšløç3 %b(CËÍãqj®?òéëµÌ®^³LMbu0,9~GXܶ'ä g¿yç+±Å©×D³ÎOCÅ8 ™E÷„…¶¬›X“{„Çójؽ—;öE3”>B,†ÌdPYlñ׸ªó/ŸÈ*>;§ïW„shÑW«@ŽCìB®À ù!=Ðú6Š–½×§´þ¦÷¶¹W«ÇÅ=ž§'ùÁÚ‚^ÖΆ‘9Ò–ço?.¡=«?)huùZÙ›€ZÛÄùñy6÷Dڗ矵ý3³ð:64†þl‘×–ä¼ Ý7¼?“@¹¶‚å³­!é*×Õf‹MÅ0ý9ÐË"cS^³âgrKÀO­G¯›Ä>,îL&ˆ A»;˜Í¡"/­¡ùêÀRöÛ›}’{͈¥*6Õ3j9ãA f2(v°ÆðEšfŽx]x{ØÞÓ|®>åšK1;ä Êá‡âxc¸Ï[^-?õ¸èJbfK•óm}ýÝ |•Q¹ôD\ê{‡D‡õÞ2¡Þ¤ur'V›R:*è‹«äoõÐ0þ,jÉEŒc]Î˾*¼úœ¶ªÉèåì%_b,<'ÿWTP½{`§YõñaŸ+ŽÞŸ7y.À¶8v„ãCêŠ[K/¨Ëµ›º8²}iÓ.Ã^ÂMƒ¸BlŸÉËjϳ.Ý~Õ ¨Q„1(üGÀð½—'-†bü¼z?,ò¾;OéÀ¿…]ëCîÏ> @ºÿj+™ç¬ÖZGO.0{]T[ú#õû¥?"´4Q‘9w,u¾÷úàÔ#¹TSŸ¨¿§Ï\g9 C&q0‚Ô|{pªâ¡YÈÒoãº7 ë\FÄzoÛ×ðB‘Ò¶åGc«Ôçoê0Æ"¥é€^x &4_é¼û2#⣧šØ5‘ µþ^‰§Iºt{€2(5Ф*ÒgÎ× ¬ÏP»íàá3'ad×¥ YÚu(Å?_‚¥©Žß®xì+mší[ws6’vo •B‘†Íõ ÐXÐk0YÈ3­˜ë¼it´VQÚlý<Úʰ©Ýò¾BvI2ÓÏZ!yï‚NÆÇ¦ÛGþ̼¾r›ÃºÉºyš±ÏÓ¥„â8\¨ Ïï½¾ëÝ>"zºõökL¡ió†’63¡¸²?Žmž4/XôöÙ:çÆM'ÝU"ch颲»=Ãö&±¨ƒõ-fo”Ψl1Ýsÿ³Ñ9bx=×ö& Çñìó”ŽË&–[ÌèÜC3>/Yù·,¶«ð˜@Ù7x"IQù'å¤YCîó{Þ©‡Ýý&ŒœXhéÇpý)¼ÌqØw7Œ¹yö9:L:,çŽ\[«1 y]ÂxìŒôÔM÷vßQ^N¨žt&ò(aW}ÏÊ•°ÿ<fít~¡Ù¬jq€Ë—B}Ä „õb›{džšD —‰V~qQ‹·Á¢zÈ%èL64˜P¨‚åÿd˜hîÚm“¢,·ÌV¿Ã\þñüat®éÂQ–Mö……Ù«qÃG¿JDšHåVhL~Y¦šP&A àqXmÑ7+ðÌqÒ(_œRáúÇA÷Á}ºñÂ=@¢Ó(ohÍ€ÉÅÝÿ¬î.ø¥¸|GwPŒÖµ3ëü¶$0â¯<~}öêÏcÇWßíq è0h¼ WÂ0Õ¼áDæ¯Õ+^„U >tHäX@ŽáûSÉÞ$†BjÅù¯²»gó4ÖkP½Ó[¿µîŠ @âú/‹êÇäƒÏ‘ÛÂïͼ,æÞ­ø.YLc° ðAcp $–;å¬IRÞ»:Cqæ.§ÑÒ:z;¶ åp*A†2(&ô¯?@E²CÑ+Z6­öo ï‡{5”æ>Ÿ$í‹ x8úÒÙ¼­†Éñ¦ò‚|ä壩fß­xscæðÁe§¬2ûoC "Ó¹¼Íü—çG£ŽœÕ>³í¯Çµª™K뇲(Z Üê¸X‰­¢©áÀÑgK«Ï•j–Ç¢xJ_%?ÐŒ¤yÒ¨ÈäOôRRq \X×5CÞ_ÿV½±Úü/ ã˜Êb1YÐtóLža z…Ôì¸úÑ\¾w®rMâÊPÚ¶ùQY^pbCæBéoÌÎgß«;×]lž%2õ£R<½kÏÙI€Áò2‹Æ&³˜l¤G›ºtLñl;ÛêÑ>+î—é={)”ÑE2SΰÙh¹a4ycRnªÜ±pÕYV=®]zæ(E˜NyRùïdFúAQ™0܉?vëÒÇŠGÙ‹n¦ è(Tyci‡Q»hyrÂé9©´5_•ãçoÍbXž£6Ð^–·ès¯7îÌ —{~dÇrfW´HEõ& !( öá;^XéŒì\™J yÈ^lx(ÑÛá§£‹Äà½JcÚ9«ŸnÕÍzsÊ|&¼ Â_R,_ §ª—›ÿfZWw×Î%~º1k©OwÄ>Yƒñ<€Á!©¡dB[Þâs¸-¯§Äµb"Ü­\Råp«5Ð àðB„Ëñç"/v^Éöm¦D½o®ô¦ýß3¢oÞ©¡Þ/“}ᄱoª³¤èê³Hó<åÀ$qõ~³Kc>O„jxîBÛeF0î%DÿѼqcøþ‡¦³e8ä8Î>IÞ§!ÜÂáu‘ SPä²õÙ|kåcÇ"Æ>ä=¾YÚ”~¶bùR8/ãð7%ÅyÞÎÇÊú[q fUE©M]b–â‚ ˆ/Ã@Hè¬ÕißÜ?ÍÈ^9dW,s9¤8ð€íKC²ÊfƆëW{½ø·0«É\ÛñÐë ôppc‘È‚…i[±h⊱¨¿>»¤f4¸–ø†©0‚ð¹HtO&ËÚ¯x=Ù4Õw.øOçB/=Üøe»ýÛˆˆ¾ ›Mâ½NÄŸƒV¿_Þ»9ûpvÂ5N¹VpTj€è ´2#ƒ½&µ#Zohé–_»Î¸ÑŠDvÛ€¾° .CÃ@kÒL«fcP§çúæýzZ°sJnåŠTf”pdà;+€ßßÈø¯ •ÛP¶Q¡ôäðºšå[M^)|Dƒ0oS4¥°˜þþphšx¿éÂEWš¥ÚFÌÕ¹»GEÖˆ)»&°ÿ1AbÁ!À¢l£f³ÿÙBß+æ),w{° t“É[ hJ.“}VÇJïôœgà—jž¦z¡—x3™HJ*u’k2ø“&14< í¥oTïí¸èuÿó„ÐDG2̾ÙôÚÉK¸'ªø§á³Ó 5…4<·©`ñ6ù>V¬Í<çñ›ñžKjwÆþ.ê{´ ½mˆ8|ãOãíðÊ·õË‘C ?KÛn¸|&þK¡Ñþ8ÃztšÌ¾‰¹<£æÝŒß™»XŠ%ìÜPøi” ×JƳS6Œü•¨½ªoør닲¬WѤ;¢Âÿ±_×wœÀ¬Ïš¸²t•땸ٮ‘¤ÕF˜†A›ÒíÊv{2Ëfô„nëljkÏ̲%i )"Wb@iù–-> —UáiIµë¨9—…2=^Ò„L¤îy’òö¼w2Ãdi^Lvû~üC" Ã 3`’{LR[OmÚ:_ÞêOñã©k†—'Q)¼ò±mÛÁg—<êîÇ+ÎÛ–·1‡ª6 ³?¼¾Rÿ!!y³Dýîî¾ëE=ASnÞnï­˜ÖB¥¤¤aõü’¬W£oKÝRéÜÛZòa›Ç‘[ïÛyˆ\dTnæÎ¬7¯›“ÌåŽøÛº+_ŽûØÃbôõ ¬'ˆ#¢_¹Ôçðå¼M3çyOú½^}."!9M‹´-LÚ±¹stÍék3EîV†ìŸdÈtO“s9žúˆa7{ñºër.3î´w³×¬«{©ð8 Äaös™^tò_¥¦×--ÿëë™óN½Jr79€oÑxä]‹~Yëpþ®\ôc^Zóð€6@©ËS¢;tÈðIÝ÷°«zk•d©¦ëŸKÖ ôpa,8 “žõûd諭»|‰ø!o»‹¿4ß~˜ôXž-Íï¿[³¡±mí’o¥ù´Ïs÷oÒSJô8ž^˜)Ðöv®8¢sê+¹Ûlmcݲå> ǃæ¡ñ³Ò…Ò&KN4öî«ÉÒ]iz±gïãó¡¡;¶Ì?ÌOº¼^ÄN3zËÛõWßiüüàp„i&sœß}k°\Úëæ±§¯îU3ü@y„àè+FñÈW‹Š^Íû¶÷K'™kE·ÜÔzÓxX<ßnW*¹0«gÂ'·ä`Ú¥-g±>¿—XT%àC Þ”žçq¡-Un4¶Ïªüû¾Õƒvf0ít‘‹±üÖØ?WEŽšäy!–™–‘¶%°üá†sw6´ý‰„ÏÚ×Ï>8w@:ïú ·É¡¸`±ü:¶é›z­KuÊó™Ú%NËÚ¹ûæ€`Äi /ˆZ]<µjpÄßfV™ÆÞ„»)Æ¡gŠ=ÈH,ÁB,1¡×%ìRÀŒwƳ³Îº²A‘?¹a½ÈøŽhe‹¶ÄäœTGÆ`àk›eJáQ€A]¾7£sÀa¹KðÞ%¡ ª+?ýƒQÑQ‰=× |Wô†z]xÌã·ðƒÎ‡Æü¸Ò¢Œ!VW†ÐõX¾3 3™–ÝnGÎ}pS¯áô¤ÁÂÛ5ç©Ã€\O0Rœ^çþIeQc±ë¾ ¹“'ÝÕOþy¶ðN,ß! ¼’,˜h.²?r&¥wm_$bKÓ]ŸñD ø¾ÈF6JÈAÂ…¿ØÅJk‡"vv=›ùõÑ׎cq(€ã»5Šï ÞCå»kŽ­|¿gEÏáåæqê+Ÿ»éÂŽÇ鈤®?®xø(´…z£¡|Ðlm»Jl`;­ã1 ®Ÿ´Ü!ñÍÿûüÔù<,+ÄêÊ„¶¹Øy½‰tÐó×:XÑù=x#s\»Õ^Kçwà5©¿0=NLßÊŸûLMjÖú%•Õ4I¤í_u9@ @ù>ð£ "‹ ¯¸þ¸ ?òÑÇÆ`–‡K Ôκôm$`¼¹ _¤nEE:øÀ† ålí×i;?D[Vy?Z ²Ð!ÓtÞPÜRÞAþÑùþwHÆÆþϯ–— ™J¾wL«Víý}Æz¹g.æ«üÒ•u¯ìÉV¢?½¯ýhP7ðž ™B*ÖyìNcâƒCn#wp ײŒ-šï,‰W"z½Qíʧ6ozP`\ž~SÿÛ¼¤åð|Ÿá@NèÂDNôû—+¶êŸ,.b>±1Œ½)Øi# D…K O$T÷WzGé䬔Q šp\æp|@²^¿ÃE¨]˜mûö5îiÔ¤ÜS\JVUÄÀõÔ„e€Å ƒÊབྷr©eôç9SoçÏwõúàsúÑÄ@ð}"É¢ Ý·Eò矂º qWJB¾¼Ã?3äÁä§ñŽì:¶vš©cFκEÕþ1Ä.§¨žäÄécŸÚC/ ßÝ4ai®S=¯ò‚÷çSu[^3S`AäÀp„…ü‘—†k²‹¸ºþ7o$<×'NU*Ï_C½Í›~š¿¾,­|¬*÷ÏYW æüÃß5·ßHl6r#(æ s !Ï'¤ÜK¬V+‘¼§·¤²åÁñ'ŒûƒB.-üýéÁH™{›6tuÍ$&¢?/Ý”´zÓéZAÔ"sõ¯ÄMÉXYßh7ðýúk«+`Ë7Ç`2€ômó›ôÈÉ £;߿իzy¡æ°".íy‰W±KÖt_J?ÿ¦¾n9`Ç7‡f+‹““ìM«}r.ئ0ót&tž nzeÛ£üÝ~¦ —­Y´ºY—ù[¿`5è xóÅGæ}#-Ë8Z¸Fú‹îà¦TRä¶o³„ÀG<¹Àrœç·§[jR·|§®½7sòÏm@Nö0…†D)–ù娝1V•9¸{Ô²›vFS€^¯ç×R§/jæ;ßµ¥ÉKqsÓÕ›¢¶Y¿»ß€Ï"aO/5/r’4þºJVêxØÜsû¾}‹zãýAt DÂ-ñEO¼O:IVP;þ;ÂÇäðÏ¥¨M¬ÐCÈ$äñ¥FŽ,ø¢šfÚµÖU+¯³rƒÚÊ5§„æ°:"2ŠéýmŠº^æ ì“buOHÌMRd:Œ]QÐsªŒµˆ–Q|[Þ˜ê¨Ù”‚1¥2(ü¢²çøgåÛ}q²ÚÍ v«Ásd@0¦ÓW•Ôž…Ÿ”ö¯I:RTÕíuÒrÞèñY$U Oºcß&U‘¥²w%Hi[$­;Dá›Àç»Hª)=¢çƒîuºWıܰÚå @è ÁqþÚפ¾¤Ü{åÖ¿BÛ$ºv|xu³ô¯o ÁJl«úYVì²Ó¹ÕuHï K´)Fà~€#±óæÿœ5Srby²¶¯ëb­Q'dþæÑ·w½Rì*‹Õ,*þ¼4VU=\×ù ¦9u!¼:²ãBÓñ­‡®}Ô}ï!?JÏ2Úø%7½s¡UMã%á2FË\¹¥?¶-Üþ"÷®ñS ÆžíÍâJŠéî~ÃäÍ–JQq…>??ÿã ‚±dcXü…x¼RjÃa•ÆÃË£]5ëþÔí#g¬Jf´áVEŠbvƒºÍëÂè„cS1mŸ?XÿòV~æ—šç.«/·Z¬Øå8X k[èÃΆSOd­ŸÑuv~é3Q§+2ó]?¤Ø¹Ov„`ÜEŠ8Ÿ.‹fóņl12Åþ骋åí·¹Ѐ`wóç@¿%vÆÀ*ýÆ´ê^ÆÆ¤ÞK5¦(‚ 8\)gcZ9eŽc<ŽO¤Ï{:QÙÉ|§ZþLô% †ß“äKÅ šÍá¥I zF—³*go¦^ Šý¹¡ÉZ0‡Î}?&?._þ×þ×r¾Þu˳µ {SOŸšB ‚ÿNXx’»½î§šÕɹ˾dó'n<dÐù¡åÂuñ˜@ ã{Æ׆ž÷}î9×ôì*¡‡Toeœ¼Š'vÏß½¦!ÖZ5æs”ÌœÑ߀¾ïåß0qIžϽðpœ{ù£Î“ÒÂYôǶ€‡áë”5s]–˜‹ˆ:4© ,S<œ­> Ðá1~PÖæGBJµi¡Š›=uõ1ñ>t Ígæ4Z]~ÊACÖr±_w;íŒÄLŒwÕ?°Im¿pp/7eFg>*ÅÓ­D¢âõüÎí˜u0½²H©!µHïÈ“öå#_Ô¿ÖK·ÆXûˆºÏêV peCb (ÜŽ•Æåö¤žvyúGÌ‘u[„/ ˆ±‚ yÈIä(Ä{®Ác7~ù¬ÆâÖì¹Mí‹MN8ñðCrWÞ¡õŒàúƒGK»éƒWÿ,<¡þÎøÿQa­HGYÝ"›…¬f{¯Ýs¿„?õïž×à>RîG¯I}-P³-Öº¬3˜¾•04ôZñééÇ»=4®t¼š`i ï¶ÊìUß—™õžæÖv?{Ëbv%€àxM¯FmrïņL^ 1 vr¾‘µ2÷NúB@ŽçÉÉL‹‹Œ|t½¯ ŸÝ{»PÊ›¦XºxädŒö»mßi;‹Ë+cy/ì½ma€Ý»oÃÃLâüy1€’=rˆáWâJH‘VÇ7‘}:¸™ÃS«L%ä/z"ïÁLÁÆðY%éµ&vŸè'•çmj–Rn;´Ðëñôü#] ‚Wl! 3ºG¼2žb7E]· OxˆO€ÏHØÐ‚À°z°ÑIqÁ¯&éL]¿|×—ÍÊ îm; ¨…g×pqq^Ê(=aˆª_úôÈ–?fø‚9çÓdøòï¸OPÑf\›z×SX¶ÀU¢ÃG¾>|Ù¡Ó¡“ƒç1Âc|æätÇ»—Ùïº%:éU !m¿…óâpÓ…·Yd_øíyÇP¼¬¥Òd¦£+y·j?_î©+‹Ù}0 èûÛ'ïŽÓ‹´¢§_{&ŸË<¥ì óWª€ˆHhDns!‹0âÜ9{_¶ƒ{ÈïõûÞùslÆìº…Y®¶#‡ÂŽVÐóó””w~r11 sòñÁ‹¦Dsw@ŽåõןÎ$¡£ÓœySñ ±èýÕ?‘kí"½¬®8m}@p¡“FöžrÊêå¯üËá2W-4Ï òÆ”»r<슞L:7±?r›W×8Ù.;¸Kfç˜ÞÒ&Àë€ó#¬Ûå%Ý VYçsäIñèÁ¡ˆÍÏÄntNìc®u”Ú&þÜÎQÇ3mG«(ÀàQ†Ãôgb˜,~mV“=ø!dörÇ9“¦z¾N¡Jñ¥‘‹Nå/#j0̹TÛYS}öÞÜKm%ý~^G@92“Ë»Ù5‡¾ntEKû³ÛDfš™j"Š §lίG5 {öþâȤœš”’^DÖOß0z@3ÀA°àÖ¿uäü—*gÆ$Övu{¼\ryÁ2—v=€ÖGéi%åÇWÓ³ò{GWÊ6ÞzáFɧ+,bðÂSxÅs³Þö}œ¥ú]¼ûN@¼YHÈ €Â ¯Ö 6üß~Q)Xk~͵á¨xò‹ÈõnûTÏþúÊ`É¢€AÖ&å%­sËל÷Éu)äºè¥=ôvÆõ‰Qç‡3‹î7EìŠY‘(b~çùËf€!ð›/Ÿn2²ù']óF¥‘xâZ¡ÌT‹Þªp!òÁŽS1+Û~ålõ¾×Ì7¤8(T¾ºý ׸º°6|s‰=ëÌ®‹ø’×/pA³™]ãR£ Ï¸þðÅNÁÕßCߦ4E>›ÇížyñKvDËì‹Þƒë!Ø:»<¸h{*ã[_¹B÷¬ø°šœ¥ (e¼h eæ,2•NâU‰[†’«×´\Ùœ,ÛõœŒ¯l öÝŽ<›˜ã,:1c“«a`U½¥Év[`®ãÃN'Mü®êî¢UYòÛ³%Ô.¤"³X `x¡ñ>ä¾wÇ´½]yÒ4<‘¤¾S\í×|´dA„b@ç‚6šd—·|Pï'Nü´ )¤~r=ÛåVÓß’|x|_êo sIš˜£wÇ€mÌl(ûûl[¼„áE$îm¸á³2κÃY$盹!´ãa!mNlþ«°-( åT½ !ÒÚ’¤ÞùužÆ·j3.&¼QHmG òÉ_Ž?y²YI*•ò:ªf±¶×l—-ìÔB-–¿† ?‘ññ²XŒåúÑ [¼H¢JÑUQ >×¥²¡ íÁ»¥pHRÉ¡¯j™þ1›Ø‰s geC„‡¡D¸˜åé'Øû±‘€ÙèÔûnò¬Á¢Šó5éÎW‡ ä²#“…¡’ dÿ P˜}OêxÀžk‹†Ã–˜ÔÔÊzp&à‡ÊÞùýØúçGÛ’9ο¯¥ß/? Ú ÈpPÈ£"9c±c£¨“ìeöŒ3ny\ü×|1@ˆ‡Ã|*ˆf9¸ô¹ˆÒ'侨·{\W¼µÏ>; º‚Úûãcâ§g{Z »ý±±îׇñ÷@°LÄÇ9töw¯ÙÖ ã×>ÍX:Yí=`‡€\lâŸènM åŽËH·5Ç4bmZ:tÒ ê ¿bªýªÚo/ø áêãÈm³cÊìöÄ£B,\çàðråæü§)ö»5>Õüq»|ï(¡ùu¾,ª$ê`9èÎHvsÕr;ýô‰‹MÒ‹Oçîш^OÐã¹ÿ{¤Vrÿ±áý]Üïeê¹½O̵v¾”8TÙéÖ¯¹‘Lõº$ùCûã…j}íg‰€ÏSB‹6¯øiö`GŒ÷÷Ÿ³jî/ýµˆe¨}zön#@®‹ ö…ÜÔ‘ò|XõìšL<ùcf7 $ð ïk<þcDeßñ´dÛe4ŒµÊP¥„ù³\V%#S­{R÷3Q".JÒÄ'¥a?{ù»¿õ+õðFVÎa”+¬Ûû֮ßDE¬}¼åU¡)6 wS›Jó4kéý v¼¿W%…Œ[Óâb 0X€asýüøkýÝà/·ï|a‚vu±ž·zÃí®Í…(ôðØ’š›6E­ª¿’•òŸ4=^cl*˜<WŸK9þ¾Ì»éº¾ì¶wWˆ€—д¿Ž6äþýë7H[R+æx\ë4Àý¤ƒÿ³ÇXÛ}¡xñÛBo¥uâÇH€ ÀǤ®bh÷ÒêH…ÜÉ Í%ñœáã¥f¥?­€½Y­\C¿kGώάýjÄy´¸8<:¤áW°4¶gÞå VPŠbšÜn%§Ø–Ù ¦‚É )E䌻³Ïþ?YÞs~åŽàÇOOžLaS_:¨ÆÖ’<®þó2Hö¼c±õÁ@ФŽu‘îKþ©ÙßÞ’wl 9øÏà£;Ç)¾î*øôTP ŒÐÝvjQü¤‘zæÌ9Ì}*vu¿FW ‡°YîÐvš°7°ìB >ªõbfó‰oC€ÛׄÿÅN)$­zW6làº`™­¿ãŽ[–È/°Lß¼Ï:Qäø»·Æ…Õ/.aY…#¢vº¤'hJ¡=˜<·ýàÒp37Â3ôJ²Å²AËþÎânÑ 9gsGDvªî“ >fÈXS$’÷P˜ êÁå¡“¶_“­H’>†Ç3À]òܪžüP ¤Ô‚žO†\¶½|îakîõ”¶„7º´»›S1%H]øß `üH d¶Š¶›îK0Þ(·x»¶MjfÄåæ[Å–†æ".™w¿y›CòÝ–2ÖË­*¹ù3 y4ì‘B¤0d.”´ûW×[’îÓž£.½»¼ë|Áï¯Z??G¸ AØ›IçådÒe¯—¯Øß²ä𻬼š²Xøënáe+ËáVç´ºðÌOg¥—Ÿs©šýt‰ø€$²üAº@£Ñ+¹4ÔeÑêwO«zeŽìåË&QD°/ä0™È®©Ã»ªcqùªö3õ5y•¢«GÕx Õz¼ï¨ùÕÍáñ­vK—üÝ=S¬SÇnûر‘Ë—)–/ÅpüÿCbŽà'3\ ?¯þ®vç]6¿–qdô¢Å¯_»åzúüÛ®‚§êþçUšrÙX¹¥ÂŸ=-÷îLz¯žIé#gRü‚Å[^¸wYË”h­ÙúÐüðÚ}h€‡ñ óóaçƒýÌû²ºÎ6{—Û½§œÚ(ñ¨ra¥Û2û˜ =§wï3ûb°¾vÊ5Ž(uQåÝ%E ‘¥E¿H3>,/‰lR°”ž¹©Œœˆ;mýkÔœ–Zvoë÷§’øYüØ«EXž·m^‰´n̉8¤²6Þ]y\X 6€ß9| ÂGl°¹ wŸLñ{4JuÔÀÝŒª»_¯^d6€þ ø)tñÜ=w¦s;Cþ¤1ê Ã§¦X£Ø‡þ,&¯&!õGRþ=ãnI‰rEQ¸É÷èÛHõ“å'ø‚7®4Cª¼ì+knbî—Ÿ®­Îj0¼Cu*#üÞ12ï–“îB¹m¥ê2N¹ËsΊ¥ÈÉo¬è ­ðŽ%€úHùäá­g MçÇú»?8(¾@'óH®9@„$?|Âþ‡Ÿ-~¼¸„ËòÑTÖŒv)-M>#pÄÿÅÁÕ=^}kÁ ¢ÿÜê¾>]—"{4|+õÖx=!ïGóbñ]ø´b¬ÔÄO1G¬’Ø;1*­’U F_ÈxAíÀ@®aáŒÔBò±„ÌgAâÙQ±`€6‚|9#ÀªÆÆÌsÜd–Íóú$’w$4ð}4ŠaQwáÂø¡NÅØækœÛøð‘Õß–­OtjKðýEzÞíß+w}¿0²µ¶ìåÈÝýœ‹sËØYfÀÙjýž¤’VURäFˆ›$3–gNÞuµŽÑ ]ÔÀRj{lF×$­syt­’ XG]ÐB C±PXÏÈ[æ%÷&á¢û£ÄçĆõçzå öáuB 4á_ÉÀ[Ó{ÜmYSüLQµ<ï¼UYØö¬ûX¸TûõìF¹ÈYÅÝœ9ß4;úÖ”_óLHÂHO.ÃwÚÕ©sÅã}YWmRbò¯‘ì·rj@{„ r÷ó¬Ä!›Ÿ¡E‘±ë.vΟbÌXOZ@½”ua&'«o­‹šÕsócºÅ8ñE€õJøÇ–ÐÚÿíŸjÑ»ì:9©ö_{w6…ê­Ò0Ô1y/ÀÿšOøEöúîœóÒ¢­oFîú÷«<×nŠ5ZåíÑ9JåE¾ƒí‰ØòÖ1ûƒmÎÌËb(€C”WNGJ•þTšóhoMòçµ{>㞃QEÅå•÷wÜ}ýÝx»dµ!`õFÞٯߑ„ ¤¯è=Ù`³ˆë×U¶Ö‚‘DZ÷ÒUØ÷8¬³j~à<ñó¬O“U7ÈÔ< ·öJ5À:ê$.Ç›·)Õ5 )³ HÒ«UNj÷•Ĉ*ŒCýÚzpit ïÍøws—…Äv­ í¥¼.>±ªÄÌVÙÌýyÌNÀÈýjŸ‰N²w%£·[ÅœÚs ùÐv©÷cÁN!ü˜ñŸ}” @Ú^“àëÒÞ/ºÅ¹Ý¸vñCwÀñßá˜B¥S9ÈϪ(0ÆÃÆz{(s“ÃhÛ~/+|oöH-ÚÏD‘j ‰eoÚ3Ø3C?å¯[ü¬~§Ë} 1ÔgùŸ` :¶mU[»“¼dòh e³[vr­l® À¢ŽKö£õаC–V뇻£’ç¿h*?¥òÈ}[À‡E¿z‚vHLÁÆ2Uë*9ÉÃó‹yÛÎßló;Ûåñ:ÿr 4P~4:üÆ?àpê¦R"{Kaä7SD=–wc¨¡¥­Ês¡ÌWÜbòQëÖûögCiZ@¢ÞèÁbúR Jßvº„˜ð¦ûGdtg󿉇söŽŒG½’AeãÿUð9CUsÉ·GŽÕ}Œ6õïkötXÔù×]‘[`PjJ¶îœD”ýêýÏŸõiFE^r Þ €€Â9€Ày¯-è-û°ö6ñÁËD•IOl#:°GÖ =O¹ø]u´ú•†‰ïUŸܢ°))  "0ÝÈkrþ¯vØä¾\Û7¿äµc\“ó3¥™ÛÇS4Ñvˆ"vÁ7Hö$ê•ü´>Ç·Õû²#;vôþ3#ùy”űh¼E¦g–Q¯¬òÈnmíîZkz´`ÉwÀ„þ<šÏ¼_4ªu{ö:çHO½ÄølcÕ–¬ð=ሺ*ƒÉ@¾|ûî:¤—˜^û4ÆDÊö]³â'; ÷ö/ëPº:@?ñ F³ö~Öoù"Rñv¾ïeÔ™»;=ˆøÓ©Ó®ÖÕ{)tïROøbõWÒ½þ²Â¡^O€F}•íMBâ‡p!Z@,ªKÝàòèÒ¼{ù*/U3cÏ&H$êª^H–›:šî3'&tc—ýüø sÚ–gº]ä¨w2épp pãßÚ ÉÙûÖÉcþ¹!o­˜úϯىÀüל“Äž^锋À¬.Îk®)î#â_ú\µS™­B’8~&N`Sƒü™,Z¶ø£—øOJ˜áûX­{LýlË*ìÌShPGŠºPKšŸ?ÿd¸bÇËSg~w½®(HðpïlZd¾Ðcyz^+°ž@£´¯_ú⮨#‘nïÓêú,.Ï™ tÑçB¾F3€—ÇRƶ6¹<ôŸ÷t_ÌÁãï=ú®µ±ÿ‡E¥—÷í¦jsõ‰jÄЈUšh¢AàµÿÞ&›CbPHÈ*Î`ò®X .¢ýt²t•“qdã}5ÙÁôž Ÿ6ÂS¹ca@à5û/¹V4ê§V¼]ý5¡n…Ê‘þ %òOzšP'C.D°Ñþ$â·Œÿ Q¾&Umo`.“À}±PcQ5&Úz1Á1_?>B]}¨w¤11ÛAÍj(„ ÚƒÛ9É\Þ«y?þïH`oËÜøú×€m`[0Kà‚8ò^ÇOb¤¿Šl Xvo#+/u´mÜñ)j'"vTË o'‡¹iÑ¡ï¦ÃNmå>ŸÞ¶ñ€m¤z Í_ÄnâÉÚ>EÅSNf?Øe­ðüDzލ]¼ÈàÏäc Þ}§5µ×çGdžûøAKø[pAJ·è‚_¡´½Ýð«ßìw’,SåÄá“eKÔëÖ ŒéÁû.–²RœŠúôóy㡼ìõùý'ƒ -)‚]|î@ai¥Gd~þgà«©êä¾õóü颖?ÃK$DaÙâ—åÛ"ó®îÝð@ç¥êÊÕ€žf¤ÿ_¡",R­½·ñGÿzCýUi5??þðuÍ®ã½@‰îÅ¢1("ì}½bVo¥Þ–³à4Ò^>?öÿÇ ¿æì€¼Oxœm–y ÔÛûÇgˆlY?eËĨìK–ìkÊN›¥ÄÃLfƘ…l%º%YNúR–,IDiHö­RˆÑbi±‹D·I®ßø^uï¯ßoþ˜Î뼟ç<Ÿç¼Ïó-è:)ÅxŸEó=¾n¡—‘‘w‰‡î%|Ƚ«¥©©§£ƒT'¢ñ"š Ó× ih6 Nt€Ì$MØ2¬ŠSiúPüA‡Î—éÏöÄ6ŒÖIm?Ž«qÛÛ~¥B1xUëã›çyzêí⦦­Óá#°rçÛtÏ_5šO#¸Zòë¦å†MĈõǰ°×‹JÜŸ>BÝŸµÖéx»â3£´àÚje‰»£˜·<$R,ööOu™j×lnFûRÉhN³ÿÄŸ7Ôc;xΙÏÂÛ)É&à· þެBÎ Ý™mêëê[äSî) ªA‡¢¬Ž&û‡DSˆ°*&§ð¹‚>ÕæÓòLÂ^ãˆå‹¹†à1Ç"æô‚Ü¥”Å 4¯†_ÖøšTh{uæ¡ pÙ²ßÂàí•r}…“•JU[f÷<í#h/Žn¦åKÇhx’š‚ÁáC°ìôV  eÓk œ%…Zï_i7pä }[ìÍ×7d?ÞS°ŸPªŒpS[àJ[wúMÅ—‚&a6Î(Åùjá,{TÁ¯ évo4æÁDs ÂÍ÷ÝÎ\Òñàu4•š“¿@[N‹øMCÀ¢Il®vLç,ú™EÃx%ªUÓrTØ›ʹšIÉÓyn½sû¨ë[nóû½]áSNêƒÜ¶}×HPÓÚÁvøp=`JÞv±o9@okî¯ÝË‘Oÿñ16³îú{‹â•Nжõ¤îºÈ³²`šîãüÜÄJ@‚,‘<2Ðˬ'ÙÂ.7´X‡Dt[Ç«£@Ïi(&ª¯ésÓ¶·WM`’æCyMþs‰À€×êïºx§©rÆ`ü@l´Ø½¤=c4ûb¾HÎe²8ì³lŠT¿oµ¾Ø2žðšBkûù[HÇŠt*¾ï]>ãšf±ËjHñ8áh4²š?–ößZ.¼7¡pû˜+¹ØÝ‰g>Ÿ¢Êp9ªþV1< OSóóeÃvÇ`iwXÿÊ€µH²~s€ÊùªÌ·J-ù…!Χö‡=sŵ¡Ï¯/ûƒ«|…Vi˜ðæÚi5þ?ƪ(7¤èJY¯Oü&¿qݨdžÆPæèa²è ×2)IÔg¡>…™æ€~i¨hV#¼šx/|õ¾áí…º"~'*s Tð߆‡¨ß³“ _ˆt&ô¥ˆÙtßíÍÁæPUZ[À½.ø)—7DÛË—rV›“5À#(ëIñ~™gùµ¼ÄŽ") ïn}“*PÜæhóà—6Ví~N?™}‹ðüϳ/Ë•L¡“6ÚXp°k"ßð½eT«˜§ûsb•å"¨Ø¶ú¦OX/Pã¾?mq«F̧®»M2€OP"µ°Ž½ÿŽjòáqüúêÙíý;ÀXPÂ<]ò¢×„0¥éAÙò|öµ:ëO±·K‡‚%Ñ6ò]hIÓ îð-¯_]2ºµ5QŽ-‚VwÞél•”?s¦MxJŸßìB]Œ«¹%W›É£Eƒ­û5ùóÍU'S§â‚(4BP[ÿÔ>ÑOùˆV×%zìÇòñ¯«_ÿ/úÏ…7TÅU™Ùj敊÷Ù#‚Ýy³þ½`„3¡RDÙ|Hô‹«Â¥ƒö-ZÂ?ê @XÄ 2ÁòI[ÊÀÄ$÷‰ÕœŒóOlj*5‡ò’>;¬8xþù­«M'HæÑÖ3÷Ó@°¨4Ä`¼¶\©.Ý­1Ïün×›aöEzä‰J{¢ºcÜ#-y´8BÖ( Û!ö¿³WÇÁ–QJ˜ïŠ-â,Ïšo{Rj–kA$?ÂF™'î•dÙ)3ªv*Ù]z —¤Äâ U ®¶‘ O|Þá>®÷¡«HöeVˆ)Ácõ1¶z9á ðK6s„â 9áMYL‘Èîzì`Â{ ¢¯úꀅP~B’Þ¼®ð·+³¶¯Ãä]¾}$=Ð~s…ªYÞwÈFƒòd…ñK„äßøDÓg†JÓÃf®=º•'­+ÿ\ºGKxl7b˜IʳšüKßt°LÖ2c:Â>ÿl'a1W/dÒ2ôTÓ7ÖŠËì‹áÓbš*j?“ Ñ(x_zĽ:ÇHgoœÈ‰Ðò:ÎíO^ý#‚¥lÈHìøZ]¡ 3k¿ý¡2òÅQ;í_9ŒL:n¿=GO婢î‰ÊÔpIõ.½Ðg¼ªF.÷˜.AþØz2Âö”Ôü+0·#ΰp,iªŒs:ù—åwÃ:¿P‘T“àMM?¼¿¿¿áNeÊC´‘ÖYLÀMÑ ×©bràDÜz¦;ÒÚ?–":æðäëbv¶.„¬"1—ÅÁ¡ä“%QYï<ÏÊ æÛ+‘{Ÿ2Y’ÇáÜËÜ]蜱†Ç¼…úÑ݉ݶ±Cêëê"Øvˆ&ªSq°eÉ¥÷GÖª?¥Ácí ª>MN~ˆ`(÷²¬e1AM´©³~§aÊz > œ  ¤:vùº á®]Àc½^¾ 쥗!ï·é3E«ó¸žë2c÷¤¾ëª²˜Çd¼àJB‰öÒü©Ë›¡=iù7 ]6 ’¨ÇÛôÜHk‘^¶½&-·RÔ©Ÿ¸ ‘ ‚ÖÒËJO]—k[ÝÕÞ¯’‹”‹çýr$çäùe¿Z.òÑÜ7 ìi½>oný¯CQé¾Ä ?:»ÕÙgû8,S(Þö°ãfù5u¤ÝÛyêßlIŒ¥`¨†¦ã1&ï ÔÎó5uò«SÃë"  )Åp>AÛö+qx’^‹ÓCÊTÚb²ùÑþköÑQç1(O  Ù.‹Ö‚N*¨½‹Iµsdž=5ª*XE¼²wéCEZ¥¦µð˜ê1ø:…uý~\ŽÓ»ü ƒy*-ºÊ¯Ìê%g/zÄÞÚA½ž1 |v¯A¶;Ïê†N¨„Z»‰†ÖÔëX¼( Á{Ä¡åîC†è㢈 <Š-ÕÞ(EãxöÂv3¬´€;øí³œsÓØôž—Ý%äf-Ùf…Á©ùa 44»¢Ò.~ ¢+"I~Uˆ?Ô{1BiÌÏ{¢á¯´Î\kAÑ­úBäK¯îsAÞUà¬r7ädº[}‚wÈéQÜxÀû]GáÛ=À_ÅÇó]Öµ‚¥NÄšòëOç»Ì ÖýԀ͠¬?•í¢-r§ˆîIˆ~ýï>(DV€f²Ôõ‹Ø|'ÛÊòûU®™ÑDÖ'œ[qS†0`«ª† `)ëçô¶µš)i:ÀlÈó™Œvw‰²Ó ªzŒnTÙÕ¤¯î¹ «çi/N;^`HúüÁSñAoHïÙûœ6 *?–%6–Úw:aŸìOŠÎ=Ù†&ù±ã¬›\RK\@&†³æ³#— OììXïÿßï²Çêd©Nz’wBÁ´¯í²}b“¤bI~jd4&ÍÉD Œœ-Ä£Öüõ ^j–ÓàEjLæ)ɽ–í/ 2˜m‡ç毞bªcáû>›ˆUÌ|E;¨\Ã>ó+3„ÂÝŸÊ4Š/ÝŸ-;SLvô.šöÚ›nRÅ2ï´Q[Zšb¡I„¤ò[#-ç^ÕvL EôwOåi‚,ÍYcßéù}áÒ¥ÿ™•îÍ4á‘§FüœhX*íW˜üá½pfê‡ÕP³×Àî€l\÷¤k ó¡Ö Ü”½8¯Å<:o¢¯zí|›§…‚”Ä„›äOö”A%³‡v†˜\±·½Ô‰¤X‚3³ÀlGhŽ)¥ãgÈ *(~qù`õN¾‚ –Ö¢ç¶U»~S€NöCÓ°jT,…ýj±ç[ÿ vÀˆ}k µA‰I=¹ÈË!ªž7åøÅ‚ЛµÆÀÎÊÖ¶k30;9ÍöÅ\56¯òÆÒOŠØè£ûå… Z·¢úÎÓµ³ŸÉhM¾zQë8…÷1#„éu zÅ(­éi?ð:Ré:¾õмë-ÛMP¶¹ÒÐ4úFOŸ.c]다D”Þ—î¹I­g=ž< Îè‡ÿz&dð«þxœuÚy T]pÑ¢lQJ"EŒ-{Qd©”%%‰f†Élf±†B¤,•‘-KÙ“,o))²oe‹ì$$;¥òÍ̺£ûÕ¿¿sçÜçœóœçœKA^^EIITÖM†“ÉD´…Œ$±|Αßâuæûáœñ5í¤1«qÃÜÜg %Ú‡'"YÚ¾µ¯]oóÒ°ÁY§vîcmXCÅ#Ð8 Ä qÔ'¾†ßÿ­¿u@DøÉmã‹Hé®ß { î„D¡1H–õ9ež÷ÖyjÎLñO îjûúË@ Ï0§‘#<µg0YeYyYY²™åÏ£á\ïÖLœ«l +jVð‚öŠtŸ䙸pqËnágü}Gî…ôË@ût_kÂñºUKòškŽÕï?¼|¤¯½€öJ@¾'wœ ÿ5½Q¤¤‹«müÚ+Óýø˜&©Aˆ;Þrʼq,iFüè h¯B÷%¢ü™6‚f™BÁ³9ßZ¿_^»˜íUéÞaÓékÁáó.«¶Te¼¸øJ ÚÓô§™âœÖ{"7ÿá&¥)¸Øë‡CiFôoðm) ¹'ú0×|önNï³é±ýЈ~›¿¹<ÆD3ÖÖx1?jñrfFî—Ј~ ‚=ß’›]ÛÜC&ú~ùÜL¡ÓUhD¿[Uó¼)%^­ñ×yœwkZ:´¢Ÿ“ú̹&ÇLßMľlÌÐùSá+%hDÿìtÆ–þRŒw/„‰­mKF § ==šßTˆ„8§»aå™:÷Óûz¥~tŠ[,UÇžÝÒdßìõÿ¤l  =MÏŸJÛLlQåý¹5åµ*U…%× =Í̱{ŒŒÌtç'Õ7\r~βg ÚѤÔÏPæÎ X;•Þiqà(ç²ìD =ÍaÉÄø¢û_9ÿ“y £m¶`ëáéíéZ1d㦣¡ÇñSC‰¬x{M×Ù çPú#:>³úï>Ë¥À×’"ÚµtS:¾B{àù†ÅýUyØ’«–#ƒñ©q×ÓÝ Å¡=¦-þhÓšoxÛ„ÃÏL²|S:uo´¢“c¨¡—l³pº’uañJñ°~´¢ã3ÙÜÐÈòË^Œ}¦:ß9hìµÅ×$h̵õ¤e~|º!K}WñG7%f(ÐXérèõŠ>Áî‘Ê¡=Ÿ·ëû@{5ºç><{CºF:Ò'FQ`Àß0]|[2´§÷ÆñCIUg¨ÄþožÀö‡³ãeöAi%Æh}0¼¹±uf‹—/Öº]±£Ø°´FkwC÷ùÅœOõQúvq7ú–¥=M€ö@r~9,îïÚá­";Ðl­qd÷4´FKñÐõ÷¤{õ›²\|»ðDZüchŒÖ‹Fù~¬¶aþí³¼_ÌvªiÅqC{`´´i}´«u®YD(9¡™¢xìTF6´Fë2¾¤Ÿ£ûlt`ý­fW·\¡m¬Ðž¦'ÂɸÁÖ©'M¿Ô”Kk)_yj9óx Â\—ææDÈÑ·=m꪿&Þö@ôÕ…´84Ø~¦vwî=hD¿yت€û•šUÖà³Ú[Á%µáz6О¦¥wï¹.“³¾[b2W}1‹ãnÝç„À6ˆÞ¨¬TlYë\ý. ?!-˜[ÖèDœÒÖý¼ÚÑlCíT°ÒH×½0Æw°xSñÃ\ShD3þf‘ƒZoCÚÖ|Û­¦:e'D¡=ÄXïRsµÊQ®GkUŠE\xQ§ £ëòžDåßùÍU{öåGRcë§3Pz¹ >o/7äSªtnùH$O rÚÑ|¥Z]hqpÚX#<ÀX`Æ,Á!.½ÚÑÄstñ_b ¥L–÷µçg&n•l;íhr)`)ÊH–ŸóÃòcÉÆÛ׬öôФ &}Ó©·A6ú õ G"¯™“}¥—+¤îGì=Úž|°nÝè®#Î8Vˆu®²R!ýü3x„_x/¡[Iá˜Ü±ÈRh¼í©CB•;¦;R’íì¾{lÍ’éõÔRh¼íÌë9×vUZRZr"Ý!ê_•• )÷pì½ÆêwBŽ ¦bn«>Qº‘y–óHæzã –Ï}¨ÞüïÖÖVHùAéå iKìüËçš™uí*J©Ý²O0o¡=ðüÜé ©C\©R-:ÞúzÝ{+0B =’ê7ó ¨”æßoÙã¦ÛtšÚÑ©úé24;u>ä¦ô^w¹ÖRˆ=q9 j;Z-(Þàz#éïùV©`ßã–Pz¹ÂP¸‘b®uÀôp–bþõ ­&g •• ãH ¯B ”ù@& ‘Ⱦ Q館TÆRÿ²ýøÖM*H©Þ/½>: 2šËw¦Þ/¢wçlUgâÅb’ÆŠ/ð'¿åîqKWpþªÉÝüà€gö ¼,o72´Å‹&“©gg8ÙÞ‘zpvùåßæ¶Á®Ç¯öd²Q«_aIíò1N²G£x{Y{<Åø„GæðÇ›/ÎkÈ|ßb¶y!$p í0p,†'Ñx‰Þ‰¥ºK‚›+Üu]×ýIê—߬ÞULŪÊÊ¢v4£>$ÈD Ë:ëzä÷ïõ°Ny5»vz(6ç]–íád醠oh¹Ä™?w¼Ÿ^b[PÖ Åæ¼eKX†X ƒ&‘¸öÇ}·¶ßu¾öJåÎææœâtYžM´wA;Ð;¹W±lk¬W{ƒ§Ú•­y°¢¸½ …@£P0žˆ…“é´`ŸV£¼èËG“FNH–± ûÄ‚©‡$ÂÉHVz‰ÿ¼ÕÎ ½› Vz¶‹]Ú6× n×—Ÿ£¼Y¥H¶ð2üà·©çÎhXñ²ÅÛÛáñN07FÖžDbéݶN£Õlj{|êÃOõC’v¶‹˜©,•²<@ó•k›õ+ŒÂwöÇ¿’;õŸƒ!]DwÜþËá›óM>T9a Z"·ŽF_á–¹VËp($õU˜ºy17g|Cḭ̂ȭ›ÃaaåÕŒø£Ðn Zòr›}d“1ä4ªÉ?º|¿ã€&ÃàýyCžÞõÏ®{‚îîiŠÜZáQ™fX ¼ Ê}½]‘sçÐÁ¢ÑÑ’ñb`…ÃáÉÔÐÓíº[ã%æ˜ÓÛ?7fìkä( Ê-“[¼7ÉŒÜÚíÂáUçj2#”¾ô`£ íÑXž ÿû”þ±u—ÇÇÜ?:>_JW8f½Z»=¸£{ª{3»ÈàÏš&ÿÛyÞ“Õz]ã j‡&!í‡ÚI’yfÖWËyóÎïŽgc€†b5XÒ°{z²«áÑiO°S·Ï¢DC.½>¸†D8Ž1ç²DwŽzÌœ„ O?zs)z… ,)8xfÖ—Ç•êvCm°K×àW%ßmãìIÚº£Ý™Ñ­EEË9b¶ÑÔ¦fRöæ€Û³ÊdU°uDÚ;Áh·{tmâk¤óbQå"ñ²ûÿä?.^ ù&"™–‡»ïˆ‹½–^ᇠ‡š(#äÔs%£«Ûà)d‡@ºÑ[صS)Œo½¼—¬dŽ_Зæ~æÑØë †ïl>Dz«=½¿zØæ½Y ³%Ýa´½°Ö[¸öŽR¸¤MI•~(ßPmyý8pÿeí¯î<÷jiO¶ŸDQÜ.°D“ñx pUÆ™#)QX¬Ú,0çäq­Öh,1H8— µÜ®çåÓ·'Ц ¾5Ž}ö” âqÀ lÛ˜ØÑà÷:@lDÇs¬Š»t›Á0Äc©‰F&"^èg˜ñÍP¢¥Û`ô\ð)²µøp éN—ÏÛ„¿Œµp¥ í4@hWY (¶g’+ùsïºImìuC9l_8žÚ&1I Ž ÃÛ]¢Nx 8½)±ó“4’Íh;Y¸]3”ÝÜÀ…„t£­9PoÒÓ¦H/«ÿ™@ºí :/×*ª•"ÊÜ´LáF.qFf¦M¾Ü/¢'> V"ÿcÆ$$‘šýèØíœ{ßn1~§Î`‹'§T¾å_ íC0ŽÄâ1ylº»<¨ÿî0þò}Ö w–âWqýK$Éžˆ¶✫ÐQdà.œ÷˪ë¬l0ÉIÙ¢jØÒ÷êÂb4¡ì6ZvÐ!ôú:ĉá’L蛫õß93¶éNÔ•±(ÉðµªÖ³_[e MW땟ª›ÜËáC–0Œ¨C.¤Ýë –Z…énÓ{^qî=¯‰j¹ý‰üµoßÕq‰®r+³8"¥LÈÐOÔ'ñpÅDLŽÜ¹§ìÁŽ‚“È0`é<[\ò㚺i6Þ(Ì„ê¥ÆË~åe«9hôJgü7eµu®ñQ ö5/ͼjzgæôíˆg¬RÝDÙñצ,¤œ½¦:¥ž<õ^­éðƒÀI«ëN±¬IÛ1ê¡‚ï$^Š‚!CFÁITqä"¹¡li4×TYõ)˜uf– Ã"‰H–¬ƒ{ܱ¨æ¬¬±úÆÓå1Ÿÿ4û7ÀaH8µïÔ¤G÷!¤ßºÈÀØ·bŠå·&·ià`¥ÌžšA•„£7Š¹í¥œRì Ë 4qOq°'Q*x™EXúº¿yê5·¸ gü2³XâÈñÔæUžî$/—õx§š•>j?8wŒG;­¢2äìéª3#8TŠPªtfj½"ß u½oÃe`…¤f8q9á ÝJkPâ¾´¸)(JøþÈŸÚέ¹àFDjíGϵf•­ø.SÁЂïJEKRWî-î"‚Mg /# OåíÛ—]É–Ìë÷Áë»2ˆ9ÂIŽŒsz†sñZŽ;ðÈÄ«íN6¶³:ª#p×"ˆÏ»ÔïCCÈbðÀ¢ÐtïâSiؽwsÒ«òÀ âñò7˜‰6Ó)ŒØJ‡XŸžGĆ¢Ä6¯‘;vüX“@Is«Èsö¨o6½ã–ž˜ó_~í{UÏl‰ÔÔÍ(Ó¿¼Žû1ú@³CpOxH³¿¨»3^ɘo×ä•Î9ÝÔ8äd›»k¤âj&D±p4Cá%|/íÑZí·—ÖÄ>ÔtÓÛU|äwö*K"`ѵª4*ÓÌ–?7{9Jݯåüu»ô10¦';8 è† 9à=!ûõÆíã6ð127ÁHÿè•ÚL^YUÙSîyc|ëO©¦W4;î“cþÑ·>-,ë 3÷«§±œ|›_$¶ÿé%Æß輑™ÃÉá`Ä×㜔Œz=l¡ùO‹•. S'xó½jpœÍçh'|ìÌXvµöÇ–»ñ™WP965¬ÿ z\ÞBPZ iûŒzªæÛ(ÛDV€±ÃÏŒ³3&¯yš^) <ƒj¤Ìo˜æˆÂ ”òÞi× Mru®€±LÓ›5¼ºšu$±Œ <©Ürõm\öò3ÃåW»Ú¯è@l×E‚KÙ\ù{‡d³lxÁÒ…®bÌm÷]PDÁ_{U& Èšº¦Hó€ŽvP&"{ùqj^ðˆ °EG¸Å.ÖŸÆSÈŒN¥-x¦¼.{üÎ}nÿ·˜"/åˆ(—FYKùÞÕžˆDP×Ì<›»ÊƒÑÇÿ¼é¿Œœ|Ý©öJuí»Á[ €Ç‹| Ò”KT¡èæÊ6T<½¢Ë„‰$$xi©·Jíá¸ÿ¹æñt“5ÉEüä¹R}&OÛ¯ûÄá’_–<¾®!|ë ØDÒP£ð2$ ‘NàGûú&Kã‚<ÊÖ|_WéÛgôÞ7픓¬™¢ª˜´­](IRS"ðL‰¥°‡Õ=§ÌÔ&ubo£×IÇL2É¿ƒû¨)‚„3µ6Ž"É*¨ÄwÖÈüf’+ý¬”ðØ\i~TÆç6gi†_‰YâÁç‘ÁâçfZpG7r¦Ê‡uJ¹±­ÕLÜ™‚$Yð€Íç,i¦õšÄ`ÖäóV§Í˜<í?pÐkæ/¬é"ì¨?wtã ‹ä–‘[•L’„dWr­w°T:ë>&Ä ûZÕ²eHœ º·T4{ÿTÜiÙE·wÊŽ}nNWlYeékÚZK 1÷˜z 6ƒè™™Ú] W"Ý™1’1Ç.òR®lâmJQ`]¯1ïK!#ZeÁ¸T±\!KòaÜ·í˜ÿòt‘Õ{çÐÉ¢•&0$m£ë–§w ŠZÞ·¸²=ï‹<÷Íç×ÈÁÕzeÔÔ#wûÉì·jIÝžÚ©úØÛéBIî0v¤z2¨À¶O^Ž6b=2½EáûtÉÃ52LÉ+6Þú$䣶 É£.˜¾”Kn LºÄ–'­Ž¾Æ=볟šl4ô&ÆËa|ó«¬+¸Þ3CŒ}4˜KõÃÆøXÀŠwÛ°šÿÝAû%-3~+p–¢ks4žì9³§k~µ^.ôgt¢;íëvò^0”“Y›Ô¾QSj•¥»cù|}Y&o_~7¿ì"8ÇñÙŸ쨛0 |$„,¸¸~žÊù¬-I7:×Ú2CF^Úˆ—tI)ÎÜÿëe„úŽžÒfíwÌL²¾ÿÒ†ã1G÷TeþøÈÝüµP͉IÑulPØK`2Í›ÊÄ~]yô¥-ìi > (vX<‚Â(¼Z5zž…5Kí33plŒï>$àx-¯'Ò¸ß}â¹ÛIùžÜW÷ÞÀÌk‡Ç íW¢jÇìú†ƒÛÞ²{)^Uw7U¾’ùs?È/ïì?IŠ[ÓYÏw½©@}­¶{Øð%?Nƒ‰ÿ¦Úäö³!#ÅÎÃj¬»[7”M޽Eƒ-µ¬¢õÁV\ Ú1q7çWIžüVbä/¤àè[êJñe]ô's.dn öE¯}í=¾PÝ9xWid»b¾YHïÁ~i©Ö‹l“ûêÀ-Ú-óßé(Ñób$ jRüT{BÔ·¾pTñ¿~9têóë²³ÓñõœMBMh•}é:sØ5pI[)vÙ¬Þ® {Ò‡Š¹;¹–bwŠufã ¦V!°¨-‚î ¨‡GœqÛê¡—ÕâvZ\·Ù?rr\´jkOÐÅ¿Ôwbñ޽uhwò:3±%ísïT•¹_ÿuÀ_œYkºn¨4¾š›Ëù~žBŽ°Æ ¨<¦V½¾Už÷®Ã/ȧͯÝ<¹€LÀ€¶- ?kMáÔ™.rÓÍû®’®_­ÿñ¯¤U0$45¦î0 Ü}ù¾Zø{UäÇ{~y²Hé“}»j £/Xuüm³<0àÓcgØÛ„ášO6—[îüsííìÓ1ÐëõAõ£7MÅ~Š*YÇ™møÓ[ º§rŨuŸ+ÐoiV‘Cü&[",Õ4v_ÿ½CK5zùïF–ÃO+½ÈHÆIãœ8y>eiÛç#™ŽrŸö4ö"q(Ÿ†¨»ÏHY$G¥4ù²¢¥òm½¦‘n —÷üvé’’<õYÜb÷×&;ËZ~JNËɬ8„z´V‚ñËh5`*BRªÞ¼Üä|êÇŒjËÕƒk°Œ_£ßU`0´Œ´ò›š ¨¿©óóQ¼Xx¶±@ýll£ùa5Ò¥­cuÀÌ'#íqh{8†…Wmþ[þ÷¹ÄiՉ톷7%…1žI!®\m1ÞŽÛ3Hw³:úf¥©1/²z7ë&¥³³£%Ó··úöã^oºáFÔD†ìrqE¡îó0ê€S¨Ó‚þ…ÿ@´üíXL»»Õ[ŽpuËë‹F@XÚcF—’;žøÍ~Üîj²|¹Eâ¶öÿ¿š´é°.xœmRmoÓ0þœûGV5u4'lª ¤êšQ©* |a0%ñeµÒa'Q å¿cç…1‰OqÎ÷¼ïâE˜É*Ô{€Û$Žn7Ÿy²þøióaÇãÍv 7ëøÞ¢ö*x̃9À6Ž<ð.0–Jר‰PXïI™ƒÆ[RZ*,dI8“U^6‚Ê •”jÂ:UYZ–š]ƒ¬°V'|5¤s%3ºìË‚Š´)ë¬5^Œô`ÀIvÑd–§õXfx>£)º“Áº TþE Œ òƒ%êŽÓéÀaFuä<Í2Em4Ç÷ëw7x½ µaÕ”%ë ¹áN’krãO¶±ÏpFGÃrÅp±§ýò’¿þê3pËÝ<Š´&.+AGä?Œ„¢B‘™¼ãôæ~ÂÞ†,б‘Wéw⇪<õN8g®‰h@]ÈdÇ…TõÉí$I§ù¿s¡|\žÍC 䄞y„[˜Éhçù´ Ѓj¿ÁÖ÷îfÇ<O¡pb¶fT\ГÈ7³K÷Ã.a„aèá[ÛÍFÕUÔTšj+رõR‘ý®lDüeÙËé5ºÏÙlëpûŸ\v¶~À¶xζ²xœsÉO.ÍMÍ+I,ÉÌÏÓJÍñË/I-Ö5Ô3Ó3Â’ŠÜè ʳ¶xœÍ[ësÛ¸ÿ,ý°nâP2åØnÚ\O–gœœsM/‰o§i›f8”Y¬)Ráö®ÉÿÞ} @RŽsÓvzÅb±ûÛpßÅé<©")³*NÊ8Ý_úß™Æy8_J·)›ýSÎK·-’IºMëp~å¶Ì’lÖ ž­VqƒT^6r)Û-ã›0iÐ_çÙe.‹¢ÉÚ<ËòAbQ0wý¢ Ëx.â´Q¾ ò*õŧ*–¥/r˜y-s_,Ã"yžå…/Š2çåDÏ›giQŠù2ÌE•â–ƒª/å‡b*—q©ZÇ,´B|§áÏ'ü“ãŸ1ü(Ž \ĉLúýG#ñ^Š0¹ 7pFÀ¢x|õÖªÒ«b_Œiª´ˆ/S1³j±ù‡ÇüÃÇIkî3[, Ü_"S3Ú‚’vS­dÌ6¥,L'ì#xû§ÓàÙÅ_ż¼%îú\ÊT€ÄÒ8½„%"™ ½±Ê"é ½í›eVHܰ8‹“¸Üˆ0—H£¨Š5 ÁOq%×%nLŠ›¸\fU).eY"ý›<.KXúË¥T”‰B Ã÷û,¼ZаĿú=’ʈ¿'ýžE’Õ"þUNú_&F ¥5q–5­D­qÖR£$Ë®ªuÀœ©V¯‡»ÍÂBûÀU.Ë*O…šS/çíÚëù‚&‡fáë,ŽDEw¯ÃÿúÂÞ¼/Ú{'^:ö¿AVðôøv&I6÷}š’-¼Ö„áGO©0§fœ,î^¼naû¶5ÿðïpØïõ¢Xz yăB€ŽÁ.Ê ¡VåM<—;`re,å­ÇS`}h²Yw_…W”-,ÁB°âÁ*N‚TŸÔ1¼ã$œ%Rëœc˜FHB!ö¬30,ä!³j¬mÖxhƒ°‰%¿ÅñÍwª¨ªMí)kÔCOô)hÑkñÌÃ4ÍJkˆoÄK©éLkˆVÑSF}¼[G ro,Û7[T#a^o%W+ÀAOw58#¡ü §|__ú½(£… dÀ%§¾[Ä2ïÀ"ÓýÆ–ÄØE¶q&耧¦hë­Ë0O6âìüù€&a#"všyÂNBo‘!z¬«’‡=XEìM‘5d` ÐWxØz¬åæœGË«BÒy’°Í‰²è#%ad¨zŽå2LÅ´õŒøÂÅÇS¡X uÏ´ô{àVF{¸ã¾‹xË´I$a~)jhäM®Q‰5âÇFÞފbÉɈq^å¹D)q3F.˜ÚA“¢a½!»@{ºz[pé×€F†+Áÿižgš´bX¢á(PT•·Ë£}q`ã´ iÿÞOåm !¤š˜v: Õ¡ÐÊžö7% ó‡ÍIÔGN•Œ+N V€2ÒL(Co2amFåa˰æX{ UE-#½‰¨ö2+CÅ=³/vw™üTü=x{ñæìôUpöúG2L¹²mlÿ¬ÌŒlÆ(–ÚÁ=ˆþ‘0:bxè- CÃå/>›×ï^¾œX¶JÛ«¼qòà:°‚9‡‡)4Ï;$¿Uô_\éË4²„oY³RGåí!|Å)„Xx p€îãÃÑÁG;~Hs6O0?c€º+ÂPšK MŒÇµÖá&»#‘z ÿN⢜´ãýžÅ¦å÷­pud6æ£Üý×ÚŽÕgíàk‘„Í3ýu­,’šÙ A –óõÆÃˆ WµäÉ}Õ½ÆÏ¸bç@ƒÚˆhÔÒçÖ£:Dõ  )÷êèÁa¶Ö`Ä¢u†×Vµ¥=í0Ïü;S)ž¿<ý)8ÿåìµð«ã㣃¡ÛõþÍ‹‹ Ó{8ìŠGYîø‹wÑÌÒ\ÅŽ…‰äŸÁá@O–‚ïXäÙ ø–Ëð0o(ÂF7΀Ç Š½–àsê >ίÚí2 $R¬‘*©Î=DfG§MgÌ$UÄà PDˆ™•§fê8Õ¦5Æåf-ÓpEÇ'ø5ä€rÁñŠ @ia"ÓvøYÇž ,]âóÔ9O+0=-)„Ao€ºVŠ0ól¹-dB¾’*¤ºx4„}…•H‚‹ÒÖëFΕKHms¹ï]`+0²/ø,U:G_އ(þ‚Ǽ/I̹“8bj ñµL¸ƒEJþÇQôqŽBµUÀ§A(o_ & Ú!-1Áñ!â´µDwZƒô`¤Ž>îü韃Ó×C×hNÛé´¹õ­âb–óå`¨Iít¬ŒV;dßÙézz‡O¨#JiÑ\kEñÅ® hzÓ5§Ÿ?3Šˆû=—_Ж € SjÔOÇÁî]ªgK Ü'ï $ú¸è|€3j#hm©³3 ±ãTê@[ MÂb “±õÀ§8¡IÂI¥s‰ÑiÜ×WŒ« jÔÛkD –!á·‹CñD…j1¥4"° SÄ{{*„cE$´ýÜWºÚsT¾1À×Z¨d@’o'ùõV.Ój¥D.á«®§ÓI×µÆ-ˆÓ|\.µ-ø#˜ ¯>d7£ˆ+ü[!~(<I\î ñÎ)üøŒ& ¯…rK¨Dæ(ãtŒŸp*3É:#B†>@½mžä7 xÙ°13çõa6høå̱¦ùÇ}ÇOÜå(Ø&óÅ0ü™Õh];«qqFEÚ_„L _S†¹§/ÏŸò¾äb $'ÿß›…/âÕ¸xüòÚèm`7g5ðc|¢ŠÔ[¥eøŽSòi,›é¯ÊÛ’¬Ò1ØKH@0%¡÷·ŠøÞÂcþÖa^Èv<äÕ˜"³KÌqj‡ë ˆ ØeYó×^²ƒ¿¦ B—¹EÎ,Æ&VgɵädçÞ8 ò…&p’r°Gvf9œ èà‘ÀP•´³>nØõ£ÂO:ˆ#÷ÌN“øO­^¯WwíZ„µ‡Ýá¶Žà4\¯!6#:¤Ðd_ôY{Ì–V15_¸+™øô½$¯Ðr èBíýV–ñ|‰i»UAÅj£â)¤€”z+Î,´Ÿ ë°(¡ˆŠweÛ/ü7œä–Lv´†ÜuòÃ-ù.¹ª%z*ÿ­‡Æ‘³7Žf‡rßÕºûv@íçÏ}V‚ŽTxêN°ë¼=b»Nq©ÊÒÞ ¶iéYk Ë(£ª Xùµ/êÜ* QžOŸ¨(qZI]Ü!¾ZÖ®®ÔÒ,UÕ P´|ãuŸlÇIV-Űl—SHS…4…D:uˆYz$ ´Å^”S~Ård_œ;F-äð2ŒÓ¢„86‰\µå› 3rÑf,| º¸RÎi{Fmnlš©µ§î¡º²±ž¢i}=)ß±.Ž\2®¦œŸsÞã[üšô½o WV{5[D–Pêtà°]ÌguûfUëêm:g³EÇÚrÆ!´êHR¤•ÕªpïÍÙóàdz—§lúº²fá P†¦¬|Äæš-Û"\¹ÑrÚ, Ý©')¨©ý ·*\Aqk«GXöµ¢!S检c"Äù¦TÀàBS*é£g¢ÜNCB…qËšú4¶hÃÐb×…EÑãDîz´7èUlÚumyÇã±øTÉŠê4ÃH½#êJ«$1M›Üª­»¼ÁØ®Æ ÉZ©Ñ"µÈª4R·r …¡¾äLøö®Uɶ5/#_,cŠÍéZÈ©ÇÏÉÉA³Ö,nv+¶s±+ž`‡òÜò½R {ôž¾ Ȱ{@÷^½}êÙejñdh]ªq´ÂÁàÕÃ"h“y.ãL'ÐïØ»!kG-Ùlˆãc`Dìém=1îœg-ÆMÙSVcÓ†#Ä­Ûm'ÝŽ¿ß-ˆŠêC3Ò‡­Âø_‚A’i½\ƺ¯úŽAÛ1Ð=”54îaã£#£ŽˆjiÀ„FÄk@;MµfG wR ~‘•=¥š–Ñu­K¬¶üžc™;qh°ðP Õ7b$2¡;5…¡(r>#q¡Âiçh1ËB&¥«^ °Õ`n‹g_ô0¾Epû<à?lfïÜ0}Ä)—wì¿ ð5Í>‚˜Òóª.‡Y1»û]ã“MCñ ^Ý“ÖY½8 5Ç+ö)`m‚»˜iyA“ƒÛ÷¦ÖµiûÖÔHéKW¥ÂÔF¶y‡Ø9zí|x¤B$ð^3¾1ßÅ2^´/Á4”vDéä€:#-<¤.°œ¶žªõÛn¸oU€€>9‡ÓèÔ­!Ãöïéf7M'}ÛUÜ~¯ž¡ÜÛí½©žÿd1D7¡…¤‚þ'Öðâ&.!uæò =`CýÁðîÙù«W/.~°Z.ÞœÙßXïsúOúÜxgeàM2$LLiÓ=þÖ4ö:Âæ»(GrVIùCm:³Pgý|³ñ Re¦-êÎPÛF µ•lË%C8.SëÇŒ,®"ý€NQÿ2?=i,ÁÀ1iZF¹Ö÷aœ5Šï¸ë{tse¶L<˜<>?$±X&ólt£µ„XA§úÁ/§Ï~Þ¾øéõéÅ»7g¦äƒ$…¤ç£¤ˆRÃÉgW5QÕV_½T)tÒšˆPCăÁ/o^T¿;¢pºÁ›!£,ì+R žèq-®kÉÎ)/Ýà ÞÑYá«O%µo]½¨«T}-¯Ÿ'ÖÌ»s NÞë2Ǹ˜3£¸X'á¦æNÿðĬl Ùº³«™}×ÅKæÆÓRo! PÀwí•Á€A˜îPWQ ùcÆéíY˜_Î}çiÇš®Ý¦u.ñ­£õÛnÜù L^Ä—þT«šÌU¿GgÉLX–ï¨~ß„r>,hdбÍtÁ@d÷CLK“°¸y*ŽÚoþ@¯°X¾ŒÓÁPÇe:ÕƒSk¢©‹À§š€ÞÈ·LÏëé Œ¾‘€º1«É¨§Ó_£ÂGi²,mêë‚,E›Ä?'‘Æ’u® MYˆÇ5P ¦-Ë,M¼25Æk4Ñ£a¥2«ÜÑcˆ±@‡UaBiÁï¡ÿ3»éèf6QHÚZdŽKt¯ðÒøènjÐÖn;zöïÙÿ€ÊýúT:xOE…‡ààðåf˜n ÜNÇx‚«Uü"x_¼ 73)ŠlS ÇÞÝÔÕS7zÅû‚^ÎË[ÂâÚ×áç}ŸúšqÏã4ñq¬hªW†xQÚ×µP~‚¢:u-[—˜Ô»™úZ‰R›ˆÀcºa^UÔ¥(zÞÊ—Ót ³×àô;ýØ;§aF‹ò©ßí6UÞ£øt}ë³eç…qßN¸ÔS\~l½ÄUÏ…™×Ó$©ëEª´X‡,ˆÝÿBØ8 ½úxœ½=ýWÛF¶?ÛÅ„ž›1Ýnû6NxKÁ$œ̳¡Ù6›£#lkcK^I棯üïï~̧42&í¾=Û€FwîÌܹßs5|'£Ùr‰iQ,v§ÍotË"}Á–fœbaE£(¾‰Æ]j G<@ã¿—Q^ä܈h‚8n¢ì*Í£nNÆÑD\{Ááåà4øpyzqÒÌ‹°ˆG»ÌÃ;D¼;{]õá?ˆ­Ñ2›Í»Ío¢dO_‚ÏúŒ¯w0ü%8º<pvtÚ³»rÏ€Ãå¬Ðšß@KœDâ|Ðû9øñò8žüÚßuþö½~588{× Þ÷Žz~ý—N³9š†™ œQ–¥Y^dŸx ƒAŸÁ>­¥lžÏñäÞ]Ý(MrAœ[3Š2œd<§'?ÞŸ{ƒáIÿ,8»ü öߊÎ]ç‡Îß:©Cð%º·©ôšÿªG¸‹©ÆT '“T/f–&×¼ÜYzä‹(³xîš}`E<\(Mº 0S’Ñ"¿ñ’€ˆåYzwo`èí2² çѶü}æ9sä*ÚìýÐé4_m‰Ë<"6êŸ_?õ~9??‰0q.¶^yfkl•b¨*"Õ2žêFDšGëu:ì .t/flgõŠ¥hÕ·i6vÈ[yK"g(Ü ø{9RL<‹ê[‹,¼ž‡Á4 ÇQÖ]»V‚-»Úº¥ÐK6BÓ2¢ŽØ-þ- 1Éà1¸ZN&QÖºIã1L¦È¶…|Í üM?'óh~µ-{íæÿ6ò=þ¦“ÝÄwèÂ{žwQ]R†5`Û[Ôk_¶îìÃÏÝY”ˆݲHó¤Ýl4ä@«a\~´¸oÑšl`øO¼t€ymèc·Š—o©'˜EÅ2KäãC³¢2Oú‡§MÜ®8M&âtTÌmYsNÃd<r’(ÎÇŠ’£Y%Å‚)YC) ƒÉoãb4-ÀÐÐeJ™‚|8 Îúç¯DrºÜÞ ú?a×è 7¼8\ @#cgå nÝ:4Rù{†¹<ûé¬ÿñ Cç “–"Ép·Y\DŠ*¬uþó|?pǽ|Çï‚pWãQ\Ü‹tBû ú/{‘‹‘µ!¸¿OŸíÍ»¬(<ÀÖ4±â|™cö#äÛi:·‘ÜR¤èt%`Ÿ<./÷[–¦5ü‹šc?ë] ù‘ Pœ'㪪V“úL'M”ZrºÎÚ0Õµ­ÅU DU;´×B¨³iÛU ð—PzvO] ÏC߯ð7÷¤Î.ÞËS÷’hœ¸'â=9;î+¼Ø·çÑnÇ'§[aÞœ¥¤iBß²Û³/:Šz³ÆðjM=rÚÿ A(‚Ó“'ÒùÆ[OÁ|'z~t8E)ˆkP¤ 8Oû‡(Z6Q@óFÉMkãÝÉE øãÇþ°·±»Kh…q-s}ð®w‡#âc@Ïî.Y®ÛZÓ8¾8G\Aï|ø3ëc ™ñÅÖÂu>èÿ„¨ÜÕJ}ªD@ÉóÒš‰“ÙbvÍ?…0ÚÖ(ß‚²•ÏÂ|ÚåôÑ,Jˆ”艅ÿ· ;8K¯_½ÒöúÙha<ö*› NÄ—m2h6giú%³ø ·A(”‚Nc°àsþ7õÕ@oÐõØýõÖþßßLӼص»»‹)„*œ ÒLü ,O Ð@ÐP¯hy/ߊ¿Àr‚:šf-$Æ‹¿¿ )Gú”Þ¼¦7D,ý&YÎøå«š8€=0‚{óV„…E+ó L 8Nh™Ã;ÜLTºèGmeÒÉ?Ó©%Ó‰¹vD/vÄh’­ýXôæàå§£½”ÆZæá-w§m§÷'hù (^ü³óB¿n6*O×ÝàYðÜÿñÜâB'xd@Ûºi\|[÷¡,j ºÁ\åu—-hÕ¤@PCâç&›Ø?F H2¼CŽAdO$ëFÈI¾eÀ„IEtáø§%å%Íß­¶£ GÙ-kó‘C³abË–C“!V·×³ô*œñœHƒ¿;íÿxpH \œ$:þmgߣM“åÝ{à©sü¦s: ÂÅ,ËíuNϯE’îŒ 8‹H••ò¼˜Ê@ÙF}ξA†›NS/gX,³÷þ¬Ç‡ƒƒÞÿ\ö†Cκ’Xéj¹/å¬MX¤qµ‡m£çå”*Ç0ÚTÍUÉJ§’æíaaª.yÔ-•à¸iWeŒ£;À¼×¶3DUs~ýY_ºö–½w²¨Ä‰Ž¸YÙN}èuÝÛ*6JajdàÃn<ÑwõLPæ$ÍÉGµ{;qžÑê„(±Y£š0«0QÉÔֺܵìWQƒôé¬Ü‘Eœ-Š8+Ù´óA?Ò3êX?‰·2lwæby[6÷`bÂÏV{õ‚‹˜ÉzÃÙ’’´õŽ ƒ#¸Ýzf§ÐMŽG/Ñâw7O¸W¯3QÜÜÇOÏ,ª%߯¢³g+’8t†gaeEÙ (¦ìŽÐ;½è^ôŽ6ڦ˳EMâ;ÌVº#oséUN®ãz™mω~©ªa>1Û9É#bŽÑÍ¢0‹¢s;Œú›¾ÓD'…éEˆç„•CCufh޲Þ|âq¢Ò4vÔ¡ÈP:wÄ÷IEæQ’@ÎÞWˆ¡½ÁõvÌÞÞC+ÑR³nkÕ6‚¹µFÛQ0ÆIaƒŽ À7t\mÙ ëòv.û5Ž„Bá‹Ù¼"¹eµO»îù¼"å|—RN5YSðyÁÆT¡ BÝF¥ N®'{JC3+x3«¾\¬ž×jùV™×z1AY¶µÿ °>"’·\ÿPk d1E‘…I>‰²\Ÿ| ÁFâyHâ†ÍÍÒ<§·OC¯ Tõ€”RÌ€a=}˜šÊu¹QתÜ×¥à5>Q[ÚëÕŠþùšOQ'—YÄ™xjQqüñä‚ûG=ä`à\,©v׉uµR³BêÖ–û®­ò㯶İHÁá¥9«€2OÑ ¾£0A'%K„ ”2ÊÉhœC3°ÔXº»1©›Ïµ_•e¨"WÝj½V ¯[´/ËD¨0óGá¬á"‹UažÅ˜N°kÑÉóºÜ…<#Ûd¦øO¹ƒŽKåQØR=W¬¶þ†eU"ÇNÉxs.äAißG³zè]ÎS{ ‰@XÍ&0*`èÂÜ~›JÞUs9-¢}4Õµ¹­ÖhŠ©»/ðDàãxüõ;Ÿ¿ÿ.4Hè‚üæé¸ ³@  |,¬-)µìTZv_Ø…áhlœÀ¬ºÀitG »ÑëºÁ³®Ž…¦&^ŠÀå–б]ìx¥ ´P€bqÓ€Š`”±¾ÿs‹$T}’©ÐƲ#Sá8LžÁ±ˆ$ýÿ|Ò0—ÏÈr’XTT¿ôPú”˜v8|‚“vŠ9®À̸ó([:äzð¿rµºó!÷Bºs£)Šˆ‡>›4?´"ECT€vy‡M××éŠÑâåK%U6›‹ò!›]èÎKþüyçÛ»mdc¹ŸèHM²Ó4nM;È|‘Ò&\(ðÙ_^ý =¤æûny;ö`Në /Mf÷Aq›ã+SøÈ‘vÃCP‹uš9˜<ÅüÕóÝ­üåÛm”]¿U3TÉ>€¾/¿ezðì1÷Z¥Fyåµ ^½ÜÇ™¯v?6]hÎÛ5ƒt×Ü{аdϤuhµEf°t¾A@~æO€Ìo<ÍFÇÿöøä´×Ø«~¼§ðWèÇÙU@‰ð<þ]Ö+­eÎL<†OräOóÖœâŽa²ØÎc?º18- ­ åd–Þ¶€mOš|ÓLãkÒ­\L âuãÞ¬…ë¬ÿcÿèYìoÞ'u®ù®Á×y`[X¥õ4}ÞVœ~…a¤'Aºü`žãP£±æÐnNœBÓ†üšÜ²4„®ÌöªÚA˜\G¯ÅÕ}åoŸÏÆ; !èÂBÒ0lS-5“ïè’¼Av‘ƒÀŠ¢‚Fáö“ZR-ÆÕ_½üáÅË[T!™kXåš­‚8"“”=±É†'V‡ï{UÃ,û;eyͧÒh݃‹Á©ö'ž|B$‡5QKõÀ‚N3‰/jýZ#‹ù®Op" /v ž!·3íðª¶×‚J“â<Ç5`‘h)ÝÐ.wûp2žœ½ .  l“oÑ–+Øt‚ÕÚ¸LÂ+pä‹”Of\}Nþ47'cW %ÝdAŸ@ôŽÇøÎ}•†Æ†å)ØWLo•À›£#²¨G¹OÕL”¼Û^Ø6B¢vLõW<¦l[c¨NbôhµÍG®~.ÏEŠ’Q)æ ìT1,¨ ÕÊÊ.ϦìDÞÊnͰsjh6ö2¦`CK‚ï²d†¦æ_©e?ŸP o2M‘ÄÂUfÅ{ë? 㤈ä[s'Ød˜}hL(uQþ>«•YÄ £ÊÞ E‚"åýr¯‰ÔöN]Îùu•[%Ë“ª0,Ó¯Âr㉠Jþ~1*¦5îeÁí¸*s»:i€~æ‘ʶٽç¹Lë‡#Ì¿c@ü<Ç»ÜÓlãJ×­f£)QžJªOL¥Wìs›øn¯ç$¿5m68MæÆn<<íìÛÕôeý@tÞT—̸öÉaÿ5Ö*+²xÞÚ4–P¤ðHWA¿ï:–¦ñ¦á^€Q¶„#ž¢é¥³1½m;ªÝ*£´{l@+}Ã,s&ˆ ¿Ÿ#=M¼éù_Ù?à™ttªØ«Uåz¨àKªóÒ&—)´ÕÈ)x…ž›;)øe€o‚8ÃÒ—I_'À¨òÞ.X´«qÓÿ›]ÆYëÀÈþÚi Šd% ¶5 ’Ö®Å^OpÎÍw—Öôy¶é†š¥Í|GÜP)¡”w"ôDOMI¡¤¹M×Sŵˆ“þÙï4j)7+â:Ê-GòÓ¢¶!}“ÓRŒëÈ)O’,cÔ:m­Ø­aV,ºöD&Ф…T9FÉ‹Êe¬`× 7‚¦D'o¹p6–Ù[¢qÁ¯ØÚ"†¦,#8ÀOc\º$º¥gUDƒQj4VÚUœB$[„@•ùRÙeèbÀÍ*ýÚÚ€€¹„ÕÑfè+{Ðt(lºøÀ¢ Œh=qu\¤ûu½ãÑÕ=Ô­bÛA«ÙŒ²f#é(B¡êHÁÝEB~ú¶óù+¤Î _”ÜáJIîò5…Íòt|&ªlŸºUÓ΢åª$¾¹L¼U1RW'æcñFÈkú¤“·Øa‡O±üœ€î§{qþâ5…½òLŽÑº|‹ijuן¹GË2_4úKcdG¼¤¾¨„ÿ¾û w¿"RñµcG-hÖÔl½ [BM=dl+‹öÎâñ£Ð¿îuí h[wíyh‰Î¤¤ å ÿ™p~^1ð¯•æWcÎY'㢔;,ù¼òo±Œþ­3úø°³ä“;Ç[ÒMvAˆ¥^¦d…_xã¹{À S ªþY%éT©Æ/÷±fá ²G3s1ÍDO~ÁT•ªHw}Ë¡˜£¦fyÁß#☓3åy"'£*Dþÿߥkª1œ¼Šùѥʱì‹LbÂêÑ:Q¢„)QËICÙt¡‚5ê°Ù"Y­†#lñ »Yш¿Ù¢Ýi9èJ6 Lÿl˜ýqá­øÅùÁ³ùhÖªÌâå•q®u ìP§â¨rÚ2‹në²O‚"¾ÿT¹ªùóZ6n5[+†õ”2×ó1†rÇ¿èv¯PþÉn+þ¤Km—_I˜vý5± ­¬(B…³^W—œ\g œu"=yW:øÑ´ÜÜV'C¶•Phys0¨ÌAm²¦"üœ´)á´Ó6% ²nöF'´ l.Ý9êP(¼J3õõ‚£–}§>%åNÑ—žµ{ùN ªjò (JÕð&çÿ+“Ëõݬ3PÓói™®ô>™È"ï8'W—œGhܲt.èñ&N—¹PÕ–", ¾5³aÀè·Œ¯ù˜"LdÝ·­ƒjL–²X ·ß1¥²žÀ·ù’3´1ÀI`øKÞH%£_¼ÓLÄó™¹+´Vð·ÊäÒ)9©¥º§‡WUÏøcóa­»±žÕyŠ4IR1“()ÏÐMÒ«ÚY©Kñ+kÜ +?ãÞLÄ%ó¿îõÈVY¢)Ÿ'ç†TÑÝ"ù„p€lÕ#7C£we™>ÛpÉskmº&d²°,lT[‚²ä9—òñw´üÖ„}Ô?¤19*h±nãÕÓd˜ ÉÅŽ9“Þ¢{#tÎöo;o¨+˪kUOÓ›7êRkÚfäŸBùnxÆx‘†P—»¯Ñ)â·0;³Â*Lº¤4 lC·üž‡`iw®m“ù˘âöY´Ú´Ql‹_ƒá/g‡Áñéåð=Û€¾?Ø .c ~´Ms²l ÄôOÊ)4÷“â,{žoa6w׺|×h‡Ï}áÏWx“C–¯ÇËJ¦²6Q‰ª Û>á x¡Àç®ë6’±k%…Aš K¡œ?ùAÂ'™Ÿ 2ÎØèjö¯ô:í lö˜ +¾÷¸Ÿå~NÁwÄûz$P¦L±$ºúH ìÌá³›±ÔØÄïĹͫ¸‰×‰sZÛä8ùý8×¼){‚7–ˆ¥Y,±ŠïKfÁm˜%¦q=-¹4=¢ÔÙ²ÎV–ˆüLÝ¥!=ÇÉ<ˆð & ã„ψñžoœ§ÛÓ¿c䳺s´ÌK<²þÙé/âwøõpÐ;¸ ßzÿ8kÜùþûï©t‹.¦àÒål,¦áM$& (@2ÆKrk±ðwcþv/Æ1(‡"Íîeígšlt AM9ÿߺƒp”Îi>–ú:ÎG™7|ƒÐ%IQ!õÎúxŸg;Hˆ1Å(t“Xigä½a„eÞKöáOhjå~~ø³V©LÓÚô~ÁjX㪆‘¬qˆ›‘¼(˜Ð° Àüi™íÈâyþšŽˆulQZ_EDÁ~"tÛ|ÈJ«SOno·Õ%WÒÎñÕ)N_ BæíÄz?j›SHµŸIoS©]Ç‚?5n¾íËí˜lÀåÒáßV,%¸Í·æT˜'w-Ç^…Y*R”ê¦ Žp×mß^åÒÎß±—ѰmÈÝïÁ·µ Úvÿì”U6¥zïëÊ)b¥²/ªÙYZ7g«Q9­d9Püôk5ŽÚ¼´^sŽ×ùS ÎwdøA%€§¡öUe›ÊÔÝèÏžV)i½Ù¬è’ÿ^!“É$ F£}Mä GŸóâ¾6sð–cÐ L§x'c¥ú®¢ë8I(,à‹)L„o«4kÝfãŸ*KÇe©Q/K tÙ({)˜BŒ¢/ÿ'6ìõ~ †½ f» ¸! ^oìmwÍ™øä‘„…'œ7]üÉbF_ ¾£7aã‰Øœ‹ låÍõ˜V¦5ê»Ù•s$5n#6Üù’jPðÆ”{¥áÐcª£œâ GTŽƒJ™eZn´Çn€zœ¢%2U37UÆÿ³¬þëòdþhæâÑœ… °2wQÙ=ö|[¸"oayôê(«6‡Á R8Ê çÏùb±Çâ }èeKtùÎ|m„ݯ¹Ê´0ßtñûK.ÖþžËQ$zYå㧯Y”Nø‡ø©$²8k¹Ú­"¬Ü›xÖzߊïö¾¯¹ò#6€×ª2ä•XLÚM8‹Ç]Áyxï À¿>¡dT]) ±™½?ϬêX-¦H²S¼™ätôy±‹…þ”~RíE@î±ÒCÉKD«6m׎ã$œIŒðrpìj[:³Æßä9þ¯XMÚ;øôÎŽxOœ¡*]šâ™º3—&Òþ:ì G×èTÎWzïöÑ›Ëú‚UÆ× È£!­sîgï™ûSAåð™cÂ:Ñ­‘]µ½&vp‰•NUGÞ 'ÊpOç-UFbÔŸÿJ%?Œ{'SÃ÷m¶é×vÑØ³{hþØá›¹ê8£\xœŠuüÕ®¤`¿oÈPUÉ™ZÖTJgþº»3‘t­#lib-git-svn.shVT–#C ¦¾¢Þ5»®}-! Ú;““O“\“<ãØFB Àž{$‡k)žTjÀbŽÓ“ßÀ³È4³4í³TåÅœÌO7'#üwÁ¯ |·‡›’rŸ“M·©sbŽŽ7g®zkt+ô¶jhͪ³{e3PR¥³iÐ3W`<*Ñ’läH“§…€žàr¥Sù}_ÓQòîœú¹=ž³@*z?¶yWŸÇ‘5ø¹ITb÷#¶c¯³®ð’*‰AíG â­mÍP 7Yz¬éi³²N¤.ÚÙ¿â!æêÅÙHË ç³Úâ³ö#”³Æ%¹4ç©JhÜTi€0Ǫ+‹±X40000 t5100þÍžÈÁO+ªM€ý±Î?Úy“³,çUí|y5ÀW7a„,êYx§„Èe³³®-¨ÂÊ*xÝTö’0ËD>ÿn‚3o ³0ß-&3óøxEeúõÛ„Æïá-œ@P“2¯ç@$*€Ù²ªtçM:JìÝ»c«™“È2„õ+*O P_îªÓŠ!ÛB˳`3%³¶5Rä·ÅªO|i"ëÅÉ#ib«]\“8듉9¡IÞ(ÄWÑ¥rdÒ\s _³¬9{“S=ùl¡qFZ¦ #&»½6 U†žv³`>“Ž?7æ7ÇÔÛÜã7´ÐqœJ¨mDzpÙ“Ù?b“k@žaI‚“¹ž»´¿´ÞE¶ÑDˆªÝГA³“;B*“ÂA5³eBݤŒ”ô½æ/ió'±j³ÐE$à“VH£xa aæ5–Ú×èj§ãí£±’"“ I˜:žvŽkëפÄjÎlWF×Ô@³¹I<ñY«h›Õ÷ߺ'­¹Ühض[gþ³ MÌp_¤Îƒ&XóŸXmCË¿+Ño³éP òº-£Lkñy Í2µªŠ®ì§³|S4BbuŠÏº¹ü%”ã• µ±100755 t9600-cvsimport.shC" Áímy,»¤µ*{¨º×I†»­“DV`_Ü]”¢ üò1¿#Y„Åj>D¼“¸V{G™,à€¾xœP¯ÿ n n«Üq.fIÜ{,lÅÌ­²¾Êy‘¿yV¼”£€Éñþ¸ L“8N¢È{˜‘êyí˜N;Aµ3;t“Ô+R2Q¯Ô³w©5y$éë`xœ;Äÿ n n°UqH¦“ÀXõ"Ë=™l0—‘Ô=‹³&ˆL5öAÛí®Ò0µXÜlE8´Ð›³Â/^Iún‡Cxœ›°„ñÆbÆ !†›{ [0Yûìbxœãÿ n n° 7Â.ª_Éçü¬¡¬ÂÞþú“ëækÕ®*à€ xœP¯ÿ n n° ŠšGBÁ(·‡†G[¤qß™cj³4z)¬økÊFÒµ=¥£‚á ï8Óâ$Ú³Â/JÂ.ª_Éçü¬¡¬ÂÞþú“ëæk­'¼ãˆexœ›°„qÉbÆ ox7+ð™(oî1lQPüsïþQxœû‘ÿ#Âj‘½GW§›Y¿¬}¾Êè°ðûÐÆ('½´û-Í5÷å€,xœUªÿ n n°’"wNlØ ÖíîÛæ.•lЇö³-âòvÏ;ˆê@ËNmÆ#Î'ËÆ>³#‹žAÓ ²kpÏùãLÍèFüÐe©[³Â/^Õö(®è dxœ¸Gÿ n n«¥ƒšoI¬ÎE«×|‰ÿ’žë³Ä‘¿vÆÝ/ïÇ¡ÖÍVq¯&§‹&WZš~‘êy Îàt[V£56† è9ñ` ³w@ôwe‘ýÆ;ÿY8´Éo(êïÀt`³Ë JÐu$Ÿ7Cy] aÓiE*ÇÐ ³) 0ð °äsÇÌ¡i]Ükà !ùÚŽô³m!AJL ðï3É´ën¬M“çi§x³Â/^øÆXñÍ<Ǽc¤¢³W¤u¥ŠÔ›@5Tpgitdb2-2.0.3/gitdb/test/fixtures/packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.idx0000644000076600000240000000431012637461244027110 0ustar byronstaff00000000000000ÿtOc  !!!!!!""#####$$%%%%%'''(((())))******* —&óý#YÍ¥‚rO¯';ô@¦³ýÜó&õ¹ ¸OÔ]W<ðw²*Ù;) LúJŒÇÇÚ†¹Æ„é‰:á§.ññǩÓ/IJ²º9Û(T=v®ÚË¿ba¦%ªÅ–B§žK‚Z±²Åßã ¶©êF…L¼:¶pM¬™‰ùkŵ±&;X,ðÅðµ…BN]!¹YkÅñØ œ!‰Nfo,ªnÌS¨ùz™îävxÙOÐÛ¦X|fSÁÙßµõ/62´R³ZÃyøÍ!aVéõ]ïñÿ ðÌf¸f˦¶ˆew`Âi½u¼èN‚ZœûwÐ &³N`èh¬ºëÿŠ1P•orcœÏ [km°¼ÏâÓõÜ+«u²rGHOoŸ¼ôô7%‚’¤Çz“ WæÛs#ókH'…Cr˜µwŽâÑ|:4szµã *¿eî5›r6DŽÀxuwœTQºŸâÿÑõ]²å_Q¬ì¬x¾Ó Ì55„µ ¢çÒš ëÖÁ”"u€ñ;ŽÐ*·þ=·œÙ›)Nù›+N¤“a¯(êS ŽÕ4:˜&§›Ï2+O¼‰Ì‘#ÌLÜû#"f9žG³nÞÿÀT²Â×€ìÕÝK¡·pb{é¤#Âó0\ô°z§[^—m‹U‡]Œö4££r«#¸ªa¾„·Ï÷ˆèØD@lÉq2¿»ep·+O Þ?¤gãß°D±¹Ñ½F»?[´ÊT1w OÞ5û‰Ó‚ó¿{“þ@Ȱµ™9úßFxt™YôÔ7D•c¢iÙª×r»oYúÀÒÖ¶@çì‹y®ò xhŽiÅtê}×9•| tfƒçø[ &ƒš¹ùÿÚ´ 3IU/2d'—W„^m/§pàÜ,xÓ½=Ò ­y£/ ¨âŽ3ŸË¶}êÜ:ÞêŠÜ°…w¡ç®w•czuz€ùë£Òz&yØKJé &°p’¼Ë{÷ÚD_®oýúÏ>®î gc6Å/L,µÓ¿Ù$5¢71î³´§Å_á&Æ]ø8 ‰3ÜKñ99$¨Æ#­­ò8Œ®Ç>^†[õ¨•åõ<Òkè&/»wKì|¸ù¾Æ¯ÒL|ÚªÙ°‚ËD¢L‚ïSò/‹¯›aN2ð‚ßC*KÍWÅÃ;ýJAòäøf¿eRÑîØ<4‡òá-ø,p õ½qõ鬛QÛ$ùAÿµn×Ô”lå&ú˜:Zå6§‰dA›|MáæYôj;k§Y¡QÅ­|¦càmÅ07C(lûП|ŸääºÑŸn ÀSز.:ÇöÙ–铊VPѾŒvˆ÷º"q¼›HëwuHÉñÚC³R…ãpï +¾ — ©ê1 éN³ ¡d *“ Õ X7( W T Ù jà Ä „ü )° Á éÎ! —  ñ V^>¨LÑ»¡ *×6¤`cP‚ƒ>YTJr¥_nœ¬Ìøöá‘êƒW]ãgitdb2-2.0.3/gitdb/test/fixtures/packs/pack-11fdfa9e156ab73caae3b6da867192221f2089c2.idx0000644000076600000240000000357012637461244027335 0ustar byronstaff00000000000000ÿtOc ­Eür~ÜõÊÜ¢^ù"(O2»oÁ’mmÑËßÄWèÿ˜2póc½? eùKÎ >”¶¨;&¸†'H D BíÔ¦ºÊäô7'ç¡0ý3m"yK €ÙŠó?r]¦ô-+b:¬#¸%ˆ…©´ešÉ“t/,YîTúË}rÀ¹þ8‰óW©-­‹'}³©Y½A3×çÌ>2<¹:¶`­bÝ|Œ‹Ö7ª›Á„:„9þ=e A¤R˜cÖ¹^ƒf‹¿ÁA—ÎmpÑ…È›½‘‰ bØ^Áj­Óû™:×£e­ÞËW"ÙÚĺR‡Ž~Jp(ØW«â4Â2Î ŠÎóô?£LnhR+Vè¹Âá›ã!̺]þ¯B"­!M üС”¼_€/ÝMR±ô%~yÉ»2ÌÿvIÆZ {F!gàÂq—óªÒ=Nº³* ZºcAÀ.#vjüùxëÿöY$Ä^ÊÕ°ùÓÎ-SJ0'ñ¶÷ÙýIïÅNŒÓëYñgérB˜xn· ãòýÁû/”¤öÉÉÄ3 gO/>”¨Ée”Ò:Èv1× È*’àÉ8¥h6u—ÇÍÉ&>DHuȹÈ-ñÍ<Ǽc¤¢³W¤u¥ŠÔ›@5TpVºf泑ëƒïÃìŸÈ£wˆ‘gitdb2-2.0.3/gitdb/test/fixtures/packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.pack0000644000076600000240000013773112637461244027256 0ustar byronstaff00000000000000PACKC™xœÍÍ !@á;Up71Ãð·$ÆØƒ6Ãà’,‹A<ؽ[ƒ×—|ys0Ëâ©äÄ Š Q#‘[‚ò`MðKÒÞk2Æ/J¼âà}J§R˜-Pr&{tZ6#;« Ç%‰ø™kòÎ)¾g»|¬•7yIßÑ÷ÚúíÙbÝÎÔÛU*ôÎÁ±EyGmuNþ× Zãþä,KÝXüÝF› xœÌM 1 @á}O‘½ é´“VÁ;èR':þ@­ oï€7pûà{£‹@ŠŽç¸yâà-®i~D‹ˆÑSr–ÂÑð{l­ÃU¿†r…Û¦’áœ>½U-íò,¬ùxoe;"Ê"„üdþÕtè¦È»;Âå™FuLh<%0PñsUÇÖnkEžã'î¼ølAÁÅ}õM/OyÕZ|t…›Ç‚~̦0ŠÈá”׎Hsôwì÷U eÞÜ®(;åqOE`! [½1²î¿ÎÙë³/;¹7ï[ƒ‹JÁÅäÈø§Ÿ5~õÅú² ùãøÚ7ïJQÇÉ3¾=áµ£äÔ9Q¨þ?þèÍ#%¦Jq¡ü•Öžr=Ã*;s=oË·Ç‘Ç==ë÷*!ãÊŠ„!œœ(ÝÎfjrÙ6yôHtÐé-~÷h¾”äã’禺4³7WVVÎåƒG]ðí”B¹Ôƒ ‘ñnøNPsò,ñ¬X¿qŒñ×J%¾$s`¬}kcÓpoüêSùÒOi ª‹î<¥y€Á¯ì–×Ñ¥•š¢¼ÇÃ#Å>UQ•é›”x%¬êE§ëC̲ó³z“»+6ó앆â¼hDȆOTð…5¯•ÒÔ¦«Œ4*_E QcêñõY“5·™µÉ4&wquTÃ*ÂTHVΠÒè«|†`àõ‹Ù¢>õ5²¼òù>%‡Y~²í·;ô´úÌè‡2Ѝ‘­³oXó7ãd?Öaw£Ü§³yWˆQ˜ÛyÇ×áG[çG)…JHÖãÊ\àÜlÕ”yŠÆçh{‡›™œ›U”ÂPbÒÄä• Ù·¾îM‡†i ëÊv£©ƒaJõ/ º< ­/®½Ìš4MÅ“þqô–†ºñ«J‚ÁÄrYË‹ÄUb¼±Þ/½ù²6DÇ fl0»¿W1ÙúS Ÿ¬[\¡û7>x}€‚ÕÖôvXë݇’xàoH¥Qi½.,k|"¹ÿæ¿M‚-‹nSçUB°Uæ)Òã ™µPðÎc÷uîý>¶ÊD#b¢ò„rü3Ã5øçyÓà¦X÷ þƒR_‰î4¥$Bòí @!¹.Fn:àu[ë óÁ?ÏÎñ­t†ü•P ÙÔ¶øæåÃYíK;Ãw"F—íÏŽ@(Æ>ŠFIÈÑÝy°Ôt?çÐÒ¹;™‚+½uú4ÛD… ¢NÔƒ ïýASÜ{î?É]ƒl-“)¹áØ"“Rf­ÄVzùèvalxÚy+×x³œžÈ"GJáKBîÖ…çYý“·]53÷SøaL”zu8H^õ…Nµæ‡^ÒŒƒ6îÒT7N]'g©¹Vé\QØ¥ †–êb㈘§Ÿ~nïîIÑhöòŠ#ÛÓù¤!¶×ÓÞ¾õ\߯C‚@o,%‰X,"ò#Øý:óÀ÷Š_¼è{¸n;›#¶½þiIÅ`˜7=m¯ð¼Œ¬î_Øû¦ÊeöN&«!†­ZgnhWw”tuïÚLŸ®S ‰pùÝ’ŒìÂ×ú¸âZžÃpè±$çz_5Jâœ=„èSËÉÝæ¡ýû³Ø´¶ìOì\¯ÝêžU 2˜¬Dša¾ž–ï‹[þ¦'ìNZLX£ÞS”Á1âò²¸3e©MaÞ¡5+eiZP->MþgÀòžå€™Ãü|VT}FWkð°Z\ ­±RÖû3“—@±RxœTÁŽÓ0=Ç_1R/i(TìÞÈ)B+–—‚ÐÞ,×4†ÙnYñïŒã¤µÛT"'™yófæyì…ªõk¨6?àlA¿Jcd9™¾TOüáéÛ¦âÕæÓ×ìþ.ñ ¶<ÅÀ¸¿[2f9HÂÈFÑpaöþ°LvÚ:0Pl…Å’e#ÔD(üZN°ƒ¶j¯q7âe×¶ÊqÛˆ÷'È\„¼NµÈ‰”^ešµè…kl’ì§J; 2·EøžþØ©øâŒ(Ùß’1÷»G/œ‡æÅ/£ò±=^kî–ùlÏÅ2Š ¤9•`,ò|@žš~å ’‚Étô,ü—rjÑFr¦Uø…|×UCb"ÈliYƒô‰FbßDêcΰ,Ë`x®:Š|—‘yÎ1ˆ’øéP¶ñIò„ptÜæ7C„uõ††ûe>õ45×¹'ODz3ûÞûº`P@|oëδ‚™T­$l…ü‰zgßhëvÊ - ¡·î*êUõÿ†4žƒïëü€&þ˜òZ=SÉÝ)w¢6é6]œt»‚ät¶ÝW€úÐB·ýÒq¨è 5‚>wzOñê'êÙÂW» •U­‹óÍçÿ]¨¼.°3xœ}SÁnÂ0 =Ó¯°ÄZUã°MB =MS•¶.ÍV’.IÙ¤iÿ>; Û¥ŠÝg¿?g(+Ubó$ÙdÁÎRá) &ÌçŒÌ;‡ -hµT 8 ®¦ŒnÅ[‡`é ׄhØI—qõ”[Á½< 5d°T» R…¢>ÈØ3‘Î_ê]-—Ú´­V¥eZéî‚,NãB+ë ¨%c ½¡—¬\‰:ëuâÇp?µÈ2jŽOÏÓ1•h¬qó¥6Ðvy# YÔX¼ž¡ÇnÑ5Î2õÕ¬“MºBóg6멯ÁËùjûÚëéÁÓõv‘\Â×éjžÙ¢*A–ÄïµÁ¾bº g|àGÆ TÉ¥(ŠFÑt8‚=îs^ l ïä¹dÁÿ¤µa¿ U碭9:%ëÝtôGÃg0øeõq­—F{²iðEnã=Ù—ÀV¸ÚoE · #^—!MFVÀoÀ?Ö÷ *”¢·xœeË‚@ E×ö+Ø(!×î\¹0ñÌt¤Š2ã#þ»€£®ÚÛÞž6MÙˆ&ƒëín]l írzKHYT5ab«©0¯ºr‚ÊŠ¨êÒaV5¶*µ¥€.ª€} ï0åk~ +xü³ÆÚcl‹^L_ä(ž÷Bz\áër9ë¦X¶¥ó4x‹*CnúÅâ@§Ï–uwÙÐÏ?´ÆÊ=ßèöOé=)‰fƒ‹lü f xøihy¹2xœm’ÁnÛ0 †ÏõSÈÅ T÷vêÚ´¹t‡¼€¡È”-$¦JNš·Ÿ(9s²íbп¨ü)®œ¥-üÜ¿þzÛµ»j•þá"T/ø˜ÈDç)€õ :ÅÔƒ'ˆ‚£¤ZŽAüáÀšÌ€¡Í‹\¯`oŒ:b „—9CÁe@FPwàB¦•03R<]!Ì;a$¶Ò#Þ’T–„¨9¶){+± ðÛ…Üü|-:þ ƒŸN]ae?*qmÊ}Ò‡S²áÏÈv¥iÁÖäéYü¬ÿxd´'߃¹ @0³&Ã\L«Dê ²6G0z øÉèáÛ0ž¬ë'ÆN´¹ÇœË8úˆæG¢ ?µ*˜9OÚ¨Må¯ë¦’G;{×Í·%©N%CL¯¡6bPÁ½RƯ,uUõôö$–9ª–¨4Ñiœi‹÷ü]ÿ¸mÎ>y:ÿoÍÄpªóû^<ï–rÞŸÅdõ¶é_Ûýç¶Ým_ß׋UÎ5f«m†Ör ]¬:g«ßÌÑ"µÜxœVmoÛ6þ,ÿ ý ÁÚt¯¨ ií¬Æ·ˆÝýDÐÒÉæ"‘I%õŠý÷ݑԛíl+И¼ÓÝ=÷Îg²P9ìnñÇr½ü°âï&Ïð. Im½X¬’äâªyýúÅ´£~Z-W›ÅÝb½Y®~cŒyþUÏßÜ-ëëÛE|Ù3Öï>|nõ}?øþö#¿½¾û=0~˜²ç)+´aÒêR8ÈY&,ØËJЉÂa–>ïT¼ùði5¿¾ûTüØë~ûnù~΃aÏû©ç]Ïç‹y„óó4A«…å,¥‘X-ŒEûBáÿ<‡üסÍõ—ÛÛÅænù–¿_Ül‚š_¦“‰u¦É3ðÀ¥*ô¬%”z ÇŸ°o²¾vÂ8©v¬”Ö‘¥$~—骒Žr¸ØYÇÕÛ?!s\#1¨U ¡?º`v¯UÔd‡ÊGâ[ݨ\˜ï¬x=o„•#¨¦NjådZ! l/ KkƒAùŠ ´ÌéÚ(à¹pI²r§0ŽR9”®W7.jßñÆŠ’¥ØpC™$eáÕÕå$I¯9ž•æ˜Øþþ(Êûx#¹(Ëx5PéàPÕîÀNÊʪ.eqà{Œ¯6‡HF’ŽG§k͵ÉÁ´±ã!n­RxDÚ–z{D‚|hF¹ÎòxkT-²{¥°XˆV3 „6À“m¡Ô>Fh"¦ëÕË  ÇÜí]çó£A(êë  !"8¢a)b ÚÀf{0XµÌÚ`ÒØV†kUb”böæ²(žLòZMYòÁÝgÇhí†DL`¬uÙamµÅ¨aCvñ%·Ø–c¢¯Yù˜'ÊGq°ÜiµGŸn|û‚?uÊwÆ  –Øn©‘ð6•hÇT%•À’ŠÄJZ‹½É<–’ı7@5Ã>AÜ:‡þD@†ý•ŽŠ`Fõ-ç°Ûc[ÄÆÜp.b’X[K>õÚác“#¿‚-¦Œ²PT.‰ ­ßOvš±Oa¬‘Ì¡¹dN;QΆ$i%+àmÁ¨Hkv…̾ÇŸdâ4æ]ž:#b>í0cŸªÌxIJMƒÝ ¾hô‘rÕ|±+ÿ‚¶XdIi{ˆÓ•BÃ"òá Ý¨¹®]’úSáź&²u‰ó7Ž üVÔû‘0¦ ýO”³5d§$¶K¶½—5d£\Î*ñµ»wI/5îâ ÐSºTîíP†v Å\ ‡Âú½ï{0ÐúÀ&9òW†õ<ÏÎsi°ÇÍÕ­Ç‚BM#=–Z¤„rû{6>^8=;¸w$/N«Åç$¹:¥Ï—77ø–Ym’—“ zŠ- -ú.#?Ü¡z/ù­v‘úô7/wÓ‹ã}ž^²s«{:›<ГF–ÀΫ:%£“XÒ`TÀ jk1ÚSÃx²—ìt3£é¨Æ×¸¦¨!š0»l,™"é¡óäßl`ˆÆöX%tðu±» àý)Å$î׉?e÷ͨ[@‰ ¦}<ˆÎÑNê Q±œJp”ì'è#ú¤è( •0÷íþäTµÈKµq¤;üö¦{qÿ`8+K–ÒßiÿT$ß9õ½OhiSÇF‡*Ž¡š×‘CÇ Ð Ûãbôd)þÒÊbáß¹—bZŸ~0D ±¥±CŸ®GˆŽËî Ðÿ¥6wºµrªÞ ùÍZVdþ¡ûmÒnÀ°=/»;µjÓ6ßÑÕ½4ù?\<©¡É3Â^Lþ´µ’ðŽ1ðŒ@V²÷V½{C”PÛºNuéxœ…•ÍnÔ0€oЦt¡…rA@Ô^ÚªåÆ©7$•*NpBÈò:“ÄÔ±#ÛÙÝréCô™Âk0öæÇ³­„ròçÉüÏø÷«?ïod© (óß.¯¾^~aŸ³#ÞçÞ³kïÈ¢ƒ‡·×Ç—§þYÕyÂCB…ÈÉD`týèC„oU% ~EhÁSâô8N¦SÕIoy›‰4CôÝûýí‡Hª9ÑþD‰vÐda§vÝïäe";b? ¶ÈvêhÍÈø•|ðù‹|‘2¹˜¹Ù5 ­?"/ÌDÒ¼·³ÖqháOÍþ¼éfŽPÄBZ\´p6@¶Ï Í+s\m$µ)6ÈÞm¯›Pú—SÀ¢Ntµ°”œ-ÒùKRž0\Fü»‹ª‘¬wêf×Ú"ºExœSMoÛ0 =Ç¿‚h.‰‘¢;úä5j ë¡Ã2… Út"Ô¡IN×û,³ÛŲH>ò=RªŠJ¬à"¿¸fâŽ3&®“¡·(¾1±Î4…ƒBKÎ f‡&a›GxMH»¸"$WX#ínÅÒÿKiZÏýå ›‹œóüûC–üÊ"õC¡EræEº!—ÁI „ éÔa…’,)ÚÈZ•Gž$ƒ†¬Z–ÐV²Kyv~ú°#áÙ·*ȼ1ȺÖEÑÕ NÓR?Ó{,;ÊG­Êq–„£›¤ ¾2ÄîÔH‡b-Ý2›@¡Éº­ÄãÚýûe: ól”Ûs÷ÇcSX$—ÑÚŸôx”å¨[Óç«ÐL`?·ZÓ¬ú‰M˜Q·M]¿ˆ¶?15ñЬC#ãÊ{ÆöùLÀgøûÿkâÂ/R”ËagÿlÝ7>»ÛmÝ×[Îòiþñ†‰Ùí”Íat|6Ž~büŠM÷açѰ/œ]Îæ‚qþ™û ãmÛŠ-;i·/µ¿'iX”V1¬”µŠB?õ%¬/÷à "•ªJ~oœ}þ°¡xœ½=ksÛ8’Ÿå_dª&’×ï8™l<“=Ù–md)'É“är)EBשáòg3ûÛ¯ €”ìÌn]ªbK@£Ñh4ÝüC0 }9gí³wçÝÖð%eñ}ë‡ ôæ™/ÅÓë Ýõ¢ÅÒMw³4˜ïÍžj•IO²©Y6s“–”E£wíCç]§}Þ–…?ÿ>&{³77Ü¿ßìœóÎE¯=î8§ƒ«þyK|û&þ§×=u~í ûW—âgqpwxtpP ¿æn*O£,ô›ÞNÒ¢Ù„Ÿ_üû§–xóF<׋^>§²—øùð°µõƒ ý`j’r>v®úïûƒý–øñGñD'ÑþÐqº}ç¼;ìôÇ­‚šs¬hú²ÕhâÏÝ7¾“Þ/%ö0OäÖ±½D­•*íÛ°óVûÖë¿×ºÈ7ôBhßhê%€£Ñ8ÒKO£ñ¼†Z"Å‹ým‘…7a´ Å"‚ k‹e”$Ád.Ä$Ý4ˆB1rºÝ‹Á7ü}önØÛûET×ÿµÝëž üwpðüþ!ò-±-Úâ©ÄÒK£ø^̃ðæ©áÒG‘F £t&c2( À=h‰Ç3)nÝy&ÅÁáKÄŠm¡üî|~ˆ >ð‰ü@æc3wžDâY’Š™»\Ê0ÁŽ&L*°?!ù›þ`Üy">J±Kĺ-’Y”ÍýðÐ$/€ @&µ»»» ׋£„ûZ¹÷ tt„ד¸ Eu"ä­ŒïW0>¹‡ø­È@L i”Å"S‡îœÆ¯M£%~Ò„Æ…%¡XÁ¼¸!6Nc7LpU@…›â±ïÁh7YJ/˜cÛÝ”Y‘Dج`6"ê&‘„¹±LJò'@M,—P&ÔdÌ„«~÷“XE1Œ¤‰”Jh¦0«À‡¹L£ho¯µeKÉÛî¸×éTs©×T]s« ~Š©Éå¸%~ùEoÝÊ« œ “àV ¤Ò½™ˆn%qd7‹}Ñ&*¼÷PS”à¬B<¢XFq*þz|ø Å*R’¨,„éñÅd+¼§ ¸®÷Ä fqi|ƉS]–§ðÍYD]¸)Ôbç~äe àN’ 5±Z­ö®£èz.÷`™‰e–&"HK©r+’<‘0ïË8ZÊåVç5¨(” ií¶ûíרËšmµ‹dµÄ—îÁË݃?½ÚÆ~U=5˜HßO½%¬]ü¾t½–®©ÄaÆ·'MàÌ)YéLô`§G1H£ŸˆŸSõ鿢ğïEñõäÎÙ2‚µS†M½¤ÎK÷ÄH.S¹˜nØ^ä I)fiº|½¿œ ÜÐETûÌbö>òo7̰mbH"ì=í«ÞØyr> †cR.T§n+ÇwSWÀ¾—yi— ²ÔO°½™$´Ö¾:ê¾í·ÇWÃìaÇÇÇ}qtü¼jö)è³§Ø€ñ2g&]\0ÿÜjd¡šXäÂÌüêbÿ'5• è ,ʺ*}Èädë“|T¨FŸr‡i°¤I'à æÑJ"êÝ@s¥&µ1Óuí‘»¨n“‚7®h¢zD9ˆ@¸A&A¾[b&³8Hàs¡J+Ð{(¬Yä—7sÃkéç"û‘GMpÓ@âZŒ“àz·b7QÌšˆFê²Dm'¬w}yÍ`W&׿ñ¢Ëõ®ÁÌ&7ó¥á™Zå´‡?OêjªÆà:pÙ.‚ÛE¸Ûe0/vÑuµgM/Ƹ/~9:øªW€Õá5yƒÀBس¾\ô:ŸœöpØþüõDÀ’[D ÀcŒOŒþ=éxuã†òZ~@y K ´†+ˆ£†1P\Ã(­a”ÚRÅ9'Ör®fðÛ¡¼KͽBÅuœ~û²sÙ½ üàî`:¶ôÚѸý–«¡Í@£¶´¡ö•]KmGïºcqxD¦i7Ü]Ȫ[T0ºð«çàA(d‡6¶açrðk^}T©¾ú0p{¨>®T·ÏÏ;¥P­×¿kÞ1@Þ¹…¾ŸCä½vËY´¼gC fˆ,»,,úA‹Ë%x¢¦1Ø`MÉ|SÖòž8ÍRÔ¤!špJ×RœË¡ö+tÓñ“-‹}Àmð¿xªÊ}Ó‰omaSÐqA8ÇV·Ø6P¯«–fpùIº#ê*’ØkmU4<ü­vßäò öŸA%H!n£çéVd! Fj™ˆÇ16@d¼å}“iˆ=`ÆtšÈ4šÖº#p´Z ûP&)нÉ;Âj÷‹hÚÔþË |Zn ûÔ–ÅÇr‚·‘‚ÖQHš¸¾TÌe¸SAÛkILƒ­· uâÍ/úBlm5XjÂÊŽ%Ø!·ø&š„Füü³¹Òpäú@òÚ7ÁC¢fB=&­¤èð¤=Yù ~¶Ç è…º’x葺„4½1™_i ¹€+eÙĽZ£7/,&[åºÍ÷M­mu+ÝŒÛ"£©q³ihÄ––¬¡è„9:žl™F`‡æ¨Œ¦ÌÕ\‡Ín|³¹í·_ÌÆzkð1A‚–eÒÄ [«?‚ ZLüMüôâ…x-^Û*ÂÜš ñF ÍŠ™P5ú=ôý°P“够”P`D+r¾}3ÝÆš¦ª®',vÞÂr¨* ЦÑð0TÈ8Éi­æó䎨(èpô© Ú%©#珞¥îd.°CwPá8Éýã"‰ò½ T8dA>%?n5pòd^‡\TËÏæˆVœc¯££ÒK %‚/»ÁJ»›ú~ŠRS^¾| oü±µ`ÍŒ¨‰H#ÇÇÛʩԵŒÔS˜F³¹A¾&`<² ó8Ðp º4æÀ¶@Ö#6’ÞZ`}Š)êÅ*†‡Ì)V.˜¡Æ8ñ¿[¦)+£Þ6ˆ –443Ö"´Rk*Íõ÷·"˜öڊΔDYJ´%ê“MÛ1*UŠáì_Ä+Ô;ÿú©ª£‰» ¾¾‹ÜG gËáßö›”pmÓ·Š)N a¼£>¡#çå_”;Xq·b öEùêÑ×€½‹%‘åµMøôNq(Ú)àriÞöïPúZ–½P--îš]g¥j ÖCßÉÁ}Üy±:¤` ©†D“ëûN·Yƒk; ßõÖ ‡Ko?w}2íÀÃÎ( ·ƒé+ÁùÝÈaOöËq‡ÃCrä7‰ 'ÀV„dÅgpõ£›lYßúQÊÞÄŠ"±+ºåQУðP€Í,–s4Ä£ìzÖÚ“LõòÌçÐBÞ4–d-r ›>N2ïF¦äã{.r ü†c¬ˆ-À„\,Ó{P°Ñb…­=1Š€øgÐ ‚&’/iTŸbiîôWltæ\ubê¤a¬)Ó@ÙÿdQáq PôÎøž‡œƒŸx6¸üÐwO»½îø3¼gÃÁ¨X£$îÙ‹iÒ´G-,Œ+0PV#á¯BRqØXrÕFªbM3Z’•6Xª)7Ø­|†o¶ø 7,Úµj`Éxh.Ýt¦7âÒ²åŽ`Ã*RE^3”«©¯´ÊŽPÁ¾–±‰T¯á…è¹qI|þ}=ýY¸1ð«hR¬o£æ%p%MöJ•ÉÜR¢¨Õè%ÈÿBPmŽ|ßð;ÑÒŠ–x2Ñ¢:ÆÉu@Ðá§Õg…‰¾“€Mä´ò* #V™p\ cû9•O´UY3IÖ|ãxÀÆ)± þÜÊmPµëÐì ³‡?ÜÄJTX¨5´yõÜ6ÖXNc › cT¸òÂ< ±#úW½ÿ´ü—Ô›±}íI6O` ŒêšIæqçð&ÞȦôë±æ•߃³”py‡û…)ä;öhTý†´+Hs’Ä‹BäácÞ´<´–a¶ÑäÒKé°-“ÁéßÓö9˜´»‡;üµ?èwàûú jú²;†‚¼~<ì`ý‘úzÚœÂ×çymû-|;Þ¡XÈ âO3<òné†h,R,a#ç¼Ó·¡ÅKÕ~ع(Ê~Reíþgõé²ýiGÅbõ«22íóŸ±tç ƒ´àk°—+ΡP,AœFäO…©ÓéÿÚú—þXø;â:ŽVX8uQìʵ8·+œ0;L\:”̆¶d Qz ªÔ] £ô8éÇ„¿¸ã=ãԭ݃M vÛÁÇ&L#ƉØ{Ű›‰âo D6ÁÿoòZ.§Š‚HUõ³@Ð4˜ï¿PÙ —Q¤Ñ¬µp(À;¨¹‹yêpZmÀ ¯EÓæ6¶ôøó±š¡&æƒMÑ-"Pt—%|ŠÆAÜNã§–$0Íu®‹™*Þv™ëZlZ©ˆC÷“è±……òLÈu6š›ÞòÃ$[®òúÍfJT51žº°NÕÙØ•³u‰wá ÆP¾ˆiN˜ü&Fnì°«ãüÜáªØÎ<‚‡ ôDœ'êûÆb²À‡°HÏ:â¨lFÕÜõ$åÍì—©[µHFﻜó øxö^—8’›`)Î/pÓy€ÌƧ¤É߯F°UøÐ韋WDz{©’Gç÷ ½`Ýó^¿&1¦í´e­;ŽQÏÑuçN”>ÇaŽ"bxìNñsœœk/źÉú¥„ñ’:vTäÑKºÊý_;ÃÓ¨éÚ:0ÓÇ8+G5uÝ·ýÁœ¸áp05Žíù(¢!#­˜JêP£Ï·Q µmy,þ„u³‡ÁfcŠ+¾tŽÜÌÚÆ´”uýÒáv.$Eæ¨ðü•/uT¹õâ;iñYlƒÄ7ºŒ ìòV†xXVäaªnœI+Ÿå²=>{—Ï%6`û0NLÈåÜDNÆÌá4Áx>* Ì&õbš‘ˆ]/˜ßïz`~„……Q×Õ°}öÙéŽÐnêÑŒcmÐŽųˆ>s–Ö[ÿán¬yE!àQm,Ø‹D´ eœçm‚§ˆ'•ù×ÜküBq²Ëö§¯tÒ« Ý+§èãÜÉ–”(TíÍÐz!Ý/ñÿ,B<µhVƒÇRM Ҳʮ7u´¡aMHÇӅ܉p@€—YjXéVOó(‘Hï%Žæó‰ µkùÙs™bqj²a‡Wn'¼ ∮Lpv>团µ\g1{l ‰¦A²°I]úAÕoY”ªcš iŠŽ‘QVAèt˜S’d`Zda‘J¡UbpDÆ9BŠ9õóèÏŠ±B‰¼Y¿rãÐqu”%Õöt?Ê×â´µ%ýù½zÈÍæ©þ1t³Ä@…w"4pT Á™ƒ‰3·„ð} ¨]Jƒó1—té£ ­ÑJ¥¯…š mU=Wê:˜µí˜P47ž)Æó©Q:MîC/£Ø&'ê$+q§’àQ÷ÚçlØ»p.Ú½Q~~¥—v{ê «,üØöù$KKf±pŸòn'± ÒãÐeìùtØîƒ)7[î½Ó:7*0•|ܱKÛ½íÏ#»´óéC¯{Ö+²°ÓXë8Ô™ŸÝµ¯Æ°9¶G£_­˜@Ì¢‚­,'Ãæ‚1TœZ½àÄ­ˆÓÉ¥'æÉxÙt´FÝA_˜;fqÈÁ±žòŠ’.µh„;Ø<æ[ôu9î^ÂD¿k÷ [£tëΪ•¥_7øØï ÍÊãíà¼hHWUɦТ§f=Û å¹\{ܶ[•Õt]ت>¦k°bÈ–®à£O¾¸šÇ*‹}›ï J¼PÜÓT/«šÅM%84]€¹··×ŽSœ]9N³ÉLÍe s0Ý•$Ž0˜W=@úOãÄA°i …³ëw£j;ÔKº]¡zTk}ÈÐv™à·L:îdËÛõ,â.ÌÐf/.ãTóYƒÄ)`6Ъ|?Á+‹e“)(à ¬É™Å,0lñ Ã_­:Ò{6:ÆÊ5}’C.ïkœ!‡.g¬ëÑÉo‰¨›EU÷`ŸóØî‹s” çšø}4nŽi‹ï¤¥Îâ&Áã¦á¥ñ6hå§&­â"Þ"/t†—Î^؃޹CßßW(R^á6ðùtpþ™´²dã sÊ:ÄøMùµB1˜û¥ÒÅ %#¢Y°ÇÆJ©eÉ¥L1ŒB·¸ ;ð—pq¹lu÷%)®¯ã%Jºߪ+ÇüLD0 ðj'b‹¥›|ÔÁpÑ=îtåðEñOe¨˜ÌP5‡zMÉ•µbÃ+l/_ä•Z“¢ò˜öÇ|ŽÙº¥ hC×ݺ±9ÅÄ„7t}̾t”Xi«¢ d*²ÕAéìséú Ð‹ÓM˜§æ÷6p¨ŸºÞø‹ÄhO5¤–Ãu0ϨŸjµŽ;I¢y¦,ô*~mÙã÷/_ñ&þ³ýg¸`thŠ4>€ì¤Úü÷X ÂÌËG7Zß0go§¼ÿº>K…taÝåÝ•<)`F$øšáÇ^Ô7:tÐMç‡veÚR¦V›iQ‚9^"¶]½m>Ó*¶ÉM ºëRA)«ÔV-ÛÓšUºàî'ÙÔFP9í¶z©Û>˰UÙÍ¿ÙKžSíÔ¨2¿Ò“ÕM•_•.L¼ Ü¼<ìž7øì›&C%éÓÅ`;VJ6.‘W˜o›P­eÎd•SVotŠ‚{$hó«,–X¶c8loÚtÈsûéaKA¹Ø[¯ÜcDº¦2ÝlU×H?_ÝÜ—Š^k3yªž¯I|9zñ²b¦™o,´eaxºº4ðy_ÉÀØÇ‹¿!øDøTË>EYlŸÔ‹ùЊ˼ìö»—W—NûôtØùU”žLžN¨*~28‰©?š5©¸ÆXÅyS³øFÑch…ÛêJUÒY1EÊ,ÃØÇšõ ß³ÍSŒ‘]5q*óØšÍÓ'uIv¬,_d$…Ážw[ »ñ¼Î]à­Ùà­‚Eq»È@ª_‹¼ ¡e ¾ytýoá³"âtܯŸå/úHóÎà(:&Õâíîë8:uÙÒà+~ùºr*ñŒ­€2”0›SÉýÂf*|ß±1%ôKƒëß2‰‹äÚJÏÀãÄÍj:°xGáâŸkšk +‹yQŸpV“'Ž ¸£îÈšúéÿ__Zü£ºÛЇÆ3Þi•ªý˜´…xeèmÚM)Õ©aNÇoY€6;Ù\_c2Ù5šâ­Þª\˜cÂ`­K9GÕ¤]G]—NC=€Kbaˆª¦J+’ѽUØ]ðº¶Ó /Û=åAQɰÓk»¿vòï£wƒá8ÿ’GéKw4xõòà°hxqvôêèˆB‡†š˜E+‡N…L>¡­Ã#ÂO¿G¡T”—T*ÝOv-a¾…®!÷9ïˆ-t´yhdSe¶ÒÔSx¯>6×™”¹ËeÝ•ÎPXMKªòУ¡±¨ÈH¨<ïôÇlv}`>=7 ´ äâÈÀç å²ש4ôMÝ,E1{5¡¥ϯÐóÛ ;]€âƒmQ#œz‰\¸ÁÜ,".å{Æzì•DÕ5ȵ£O2‘ñä/ Z.º¾êÜ3ÿêð£Åœ“©þš;Ÿ#«ÏaÔÈ•úf¤9½>4n½v:ñ@”™ì¾'б™U³ ´ó­Â«'§µØ€ëyM%Sž5æÙö.•xŸ´<2^c¼ñC=ä_°zýƒ?xÓ8u"¢N—u­ †*jyGAXÉÚÅ`Pˆ]IÕ-)4¹&dÅó)•6:½4¥£ù˜¢M§x>NÀOôIìkÚsØä|â¯úšU†G\aZwAº<$³¨S…9qutóï¤ ’*ÕcNº7Î1kœ¿r*é@½üd>?ÂXd¶PÓ¨µÂpå³pºƒª@عòõox1ßôtZÔÑBò3ˆóàFòEš}Õù>bÙ¿Ã{ø‘¸c+¢÷›­d %Å]Ö´>ôÆ•>#Ëýé/9mæð[½—Ñá=Ìê¨íWøâ^¦Ã÷„®Fú­>½xðÞ*vèn€_´Gã‹Áö­óu0ç^‡õÚüU˜J#ƒÞaÉ*ÊJ¤ø`-sr#£DÉ{0 A¹9;àÿ­;ôx˜#Û|cÚÞ&j6ªÇUÌ Õ‡jÌOíš—7mSrÍiÅw½,×CAP´éè¶åT}¿p®¹ÈhÌ,úƒ€?—k#c-â7ÐBxàü„´ªL´¬:-P¿?âÃŽÙb¢Tn"”ε¶œ·ç(½¬¹½[8øF B5·Õùî4~Õ¦CæßX­í ïGª>Fô§Pä4à\çîON”˜†ß‡¦Òx8ï88}Ñö:1d5-Ö.1k„Ah«¤úLXk1”ê:_ŸL«5œDÑÜ¡XÉ& j£í–?Ó;­[tWz~"ù8V›9 ÒàÖ7¿ÂŒµ(ÉîÆõå¡7ò(¢ì¨”L=\èJl«[úšü¿Üo}D:F.üÞ¤:ÞÖÍç¦1'÷˜ïSC©s=&î¼n4\/ãÄ<»JßFJcû>þAÑÁæ!=¬Ÿqéz‡Âe_´Úˆ K®Q-(©Ì5%†ÿy·œ^{ÌÐ-†E6‡›^„Q«µ“9Õœý®ÁÒ]à˜ÉùRâó1¡ÇiLÖÃq ÷~‚¯Žeà€óü@6éåâOoO}6øÑw +Ѿ¢ËPvÈÉ·}3J$Ë54LÅ]Ô]cJ\/|í¨>$7ÊtéÊ[ç·ŒÍæ•Ì‹z$ n1k¾A™ŽíW3¾Ça0T9õ2Qòª/_kâ<ñº±–ëäjé^Ëxϳe‰—©rÓãX~íuì.,‡öšì Ö¬r®¦Ð`4âúu#}ÔgôÈýQ$‡ò€0tùêއ̾zÑ\#²˜‹ Ìà_Ÿ&ÐòÓZÒ ÔZ¸\Tg)÷)Ân©+\^•±üâ¤3ýçàŸ6¨s1 =:óŒÒ+ar¯Q†î:(2ÝJ%¦¾Ëê(©Øá<æšÓ N>©iâÆ×·uí¶±Â: 7P!1'ƒ09û˜†©#‰8Ä»®8õbå&‚þi«†b·ÝAÁT”œö¬ø–Xû¯¸.ˆíK ŸuŸ‚ï¾Ã×Ê6˜S„/ÅàAGå¹›‡I«! —N¾ùÏI¶*ÅæÙ”d©v€i»øÊ ¡Wô)io ;©ôó¿ …—¾q›™—¾‰ÕêÏ&‘·Ãá ­|aæwµ“òå<3ȶáA3úF÷‘ƒéÔBZûPèÐ-ãê!· ×jyšpCV{³`šêœ®¸ákŠ+Ê‹b—·–eV`b¯Èÿ"Ò$JgD«P÷‰þîK™¯ôq„÷`º= >´Ï: íÞTR™sÚ¹@æÛ§ íæTã£exÜÚ¿Ã(6CëgC§=v:ƒž&¹úø*§F ¯ÀžhV(úVCFaЬ)¹@ù%Æ{Zë€ÖÜ,ÀÙÙúÎFl1·Á*¤ Z¡ÙDÛŒ¤žUBèyųi+Kº kÊ”AÌã9,6ŠVz—”ã`XyD–ù€;߃æYs­sRŽ tÜp Ì“]Zù’Ì—WM z[¿sËQ Ëœ(S½(Î{,y/ Âü=¾´Hã2—zâÔb´–»zYŠO­òMÿrÏܽç­2 k o¢•ÓsƆŒàïîÈžÚ»æÿ»”¤¯•‘¨àq1_¼‹ç¨Ï…6øSG£z«qš~Ýfé}v—MŽÇlÚ¾ìVãh“Š¡‡xôx}XÎgo0™(‚>¶¼þ;%‚'ë8F[ä^Y!Xk[Z—T:  m6šDåQÔßOÉ«’²è zd‡qmÎß+ñGô€iaÁïHêùlô;BÖO;#þ€]€»&CVëüì>EBÐ;ÕC¶K9pZå´ÚÃEËuDò/aÉ`ç|Š¥uÖÇ»TzFí;uxVË…7ó¾àÖ¸Œ—UÁbÚ®Q\Ps»œßF‹ó¯açq>ûpu7ïJ>Ì.Ïï®oÙ);°éËÇ›ÅmWpyw}=|ž-º’›O³ë«O³®h6?¿êiÝ}™-.oósÄîŠ?}ù<»¸º¼š}‡F*q 1ƧM5Áܽôž½a"¥=y®žÚ¨ A¼Êýåõì—è|±8ÿõ›ƒ$ˆBi ­‰³6(@ÖÿÝ7’v\¯‰¾Ð7 ºmB9ñNL§Úªµø)Îì½æ¹oW5R2õGl£|/FtM 3ˆ–ïôa-à%ó6^¶(|牠b’U9éO-)uŒ×Ñ«äÕ|Ò8T6J51†f–&ÞR¼¨0‰â¼Ä•U±ÊûÂ`w*•Véu{:åüfß>ú†Çö^/#®5_³`…7ÔÙè´J»òv5Êiγ°žÍ6$m},»Ú R›o=7%~å±ø‚‰ÝÂ1„£XÜ$h:Ì8¥â{Ÿ3 ôÓ„©Š/w1®PÅxß°§åP×îî.;añãtU¹w[’¼>«/öêûa {}V¿ÖFG l4È×ÿ„ Šþu š¸YxœmTMOÜ0½ï¯íh/U%Ô‚BUµjÕBȱ'‰‹í‰ÆÎ†-â¿wì|,¥ì%Îì›73o^|zçC"¯’Õʹ=´UBõNN—×cí³1ÄŽN71ñ H0(÷º~ó´ùéN1äàíûwg‡P†Ü~|'¡ç³äç‚ð hòžÂ½Äâí|‚Lû´UÆl+Øžu(¨0¤‰ u6|Ü>W\Ûˆ:eü•ÄËÿÒChQŽ* 61™AËŒ ê¡Í“Ö6(ÞCDź[yXyžo2zšQ¤¨€ :Lã’!gý@C©}1Ÿs‘Ëy½JÝÚôHü`C ‰WGKz>H.cOÑ&’î¤q’HÀŒeQ‚kžÈfKݨ‰Í<ñZë@³dÛ4ÿ³£qEטFÄ]¬æ(Ññe»`Ò S#ç"Ó%Á‘2@õoi/–4Æ&BÃäå¤~£—VB™à†eFp6H+âIÝåz*«–¶ašô¢ìCh}ŸÄ»Òè ¹(WÊX«œý3áe‘™3‹<³9j2LÓJh]©GnËB¾’ FʼžÅ;tÔ{ñ!tÂKl‹Þ-æ)×ü]NþN;œÊN—‘²‹+y®‹,¶R÷^ÆX²ûÁ¹bä,ñ¢¢ÒŒ6uoˆ:9’zvÞ-–=ýêMŽÑSyÈ‚”Ø­c$mË0ïqÉg¬U,b\ŠÍqOœæR³eà ¥†‘§|娼Üʈ"Îf•è9«øåóùå’{Ô¶±Â/‹u[ì§4ŸÍ"ÎÞzý=™Öþ¹¢lzÝøN±¥AºÞ÷BEÍë‘sñ!®ðÿÊÌÿÏè¤Úƒ1+påÚ˜ï ÙÊÙ6{YŽàæBmdÈ¢üõÍuf’ò/ê äº,xœ…QÁJÃ@=g¿b —*%éEÉ©„J…ª‡(("KºÙMânÙhAüw')Ú&mñ¶ófÞ{3oGZ™B*H³§;~s»Zð% ìaÌ£kÂÆÙÒIïƦ!Ì![ΣKQ ”(]K§¿Ó¾Ê£úb6ªHXЯKCÃ-b•ò %!ž>>ƒÀ-Us´˜×T ¼!Ä ¡Â ªÜAhòw™ì< Ë…­U³˜d¨œÅ‡ÆgÝ(%ÝëUt¿%ì{wP»°¨­— ê¼ôí)½4ÒÕC¶¢ADÙË}ÄŒÉ-Jg`x|ؽŠñ. ¿Hþar¬œmÊjÓàY‘ œHi¯ÜÒþŽùL Î!@ÔcO§ñ¤Î‡ÕÅyz×íþƒ¯e©Í±Â~¶ÿ\šâä4QG+öÕ쑾xœÏ Â0 ÆÏëSvÑÒ7èItàMï£k3ÿ¤Òv"Šïîd Û¼y I¾ü¾/9Õì°†U±Ül»¢\‹¼ë‰q81…Ö&ðÕm*ZL"ÏðÙh²2µÈ®žȯR‹§þpÆë9&° Ùœß×-GÚ3: NéŽ 8è‰×0‡lLlz¼% }ãÜ@6ûõ—¬`òAWLóÏõ|òþØ^þaw$‘#;ªÅ Æa„w¹ÙxœµVKoÛ8>K¿b€­xÛ l‘Ç¡@‹m€´=löÒ‹AK”ÅB"U’jœ¾~ûΔ,ÊJê-°¹8|Ì7¯ïêD”²à%¼~s{÷jý6=Á…|X§Ï3P-ûÜqP›O<·P* ¯-–;Èž§ÆêOÜîÚí^’a äš3Ë×££ ÈUÓv–û‚!T©U[ñ…KØteÉ5Ú’ù]% hn;- 0h•–k° ‡^ÁVÌ‚©TW°áÐ2cx· ÊtÃ1i£ KÈY]›(‡[j…»X>xïÿ¹½íÝÚâ+ %u§9^½«x”4± •¥€¼À…V#/jñ¤|Æ19¡Øxp}vKXr;—CJ}â;4’s…ËÒÃF-r%þ‹d˜Ì :iÄ–ü× ½à–_ùrèõÔí…ÛÁ¦ô­ö>°53¼X,CÏÿrÕ›¦xO­³ªâ:H}Š’uád®îgŸ å¦Ê8Ÿž‰ o”~Àj³-ê¢ëáI".üadÇä3v{V¨"úHÞšTn'Tk²ìdn2¿a”™ç)&Z[ÑÖØtÑp÷ÂVP2&ÝyãYJPäÁ°†G‡¢!çoJ„ß…D)kR„Tò¯\ãŽæ†cmB' Iê™ÞÒ¼¨˜œB¡©ô²i™ªP"]žsƒC9cõ2ÅäíR¤µ÷즙0>¨ V 4‹“èÚÂ)ÁY k\O§*ªëœäC]Éõ!Ùc-?JUšý'öþv|8Jnj}ÏF"ÅS\4ªÓùPd*9uÒÆL<Š¿"‡çá±ü€GØA(ÿ… O±Ã òã òkvˬÈQÙ5=í$ûDƒÞè|=Óÿ°½çÀØÆêíœMØÞÛü.kÒoiò(ázn¢iŒGö%¢„…Œ€ ‰ßw&Æñ·V0ägC˜Ñ8…ª'ÉÁ»ÓÏä$ñMô¸þ‘ö;ĦËôG/”–ټꕢyÐJ¤†0¤cÉ­öŒ ‚9n²Åà®L6ªÅSÓìÃða„Þ"Oñ„ü]^GSoT¨c =ô2b³ï׌ɨÙÎhJgcGCοm E‹È­2Flê~ô…{YY|'1—øÃûï›oÖïnÞ'/z¸W·¯Hxmí½À†ã#</¾~+(…ÆûØUjgx*ù®Å¯x4Žéâ)L¤a[&äÈhB×Ú™© ï«B»ª„ž ×òŠiÈ2Š·ÝëiÿM.ZÕº10{è’¾ö¿-Š)>Λb¼7|B¡Å9Mü0áÿB¹©€=ÜÙ‰Õ]ÿ~ :9…Ÿç»—çK¸ºA§ήáO1~à lr¸F·àôÔ÷ä (¼ä£D|ú½dO.œìO¸ÄÑœþ ÆÜ›þ¼“xœ¥ZmsÚHþ ¿b*©:cìuvs—d«dc.€|ÖÎ%[*˜³X½³w{¿ýº{F ‰‘íª¥R‰ÔótOOOwO÷(o›uÖdÝp³‹Är•°F÷”w:ïØ?Ò@„¬Ë®Ýµ„z[-Ǭ׿ºr®ë¯áY<{…á`î§g¯’ˆóöÖõï߬^Õëq¥ó„EüÁÁ"ü<±X8á&a‰¿¥<厤|¨×“݆㼡ðX£9_¹Á’;‹ÀINY¬©ZõZ¥A,–÷Xè{Î:ôxë@ øV’8Žä0³D ˜â•{V@%„X¤¾¿q“Õéñ \Ïs"¾^¼ ø‰ aÀ(ùr‹Ø/~Z ÷ÚíÏ*HŠ,Âhí& óÛÚ¿¡ì' ¥6=7qq®‚ß\YöИ8¶q[«u;ΙvŸÇc"1çZÌh:<@.´ñt84ì¯ò^ ¹1&Ýkœuô2®-{²Ÿè\êõí=äBéN‡Ó1éÿbê}§^Ûd“9ƒŽ"¡äú>sgðJñ§[´1$þ³Ž~wP•éaç°îµÙý‚]t¤.cw Ä,L“Mš(`ŸX‡ÍÒ„m9»Â-KV@lÇlá»K¶øR<ð³ŠxˆŠWaêC°… 1˜ÞMý„=¸~ÊYå¿©W.Õr¬éäfJV}:jWb —F÷ €À&eu¾fv§öìοÆûø‘±Îé1|b›¦ÓØüL¿ìÀÃXá§àç:éæÝ„1-ü üj:€2=óî~¡ûs4q,Ô~hÉ+ø;tìt­›¾9v® »gÚ{ø:¸5X· l\Pæ' ¼k ,›"ùH÷÷OÂ[Ëîsð¿iàׯ¼Ø}Î4ÙÃÏt»úÏiß,^Áu» ¾W²ú®ÛUƒ [kÚ#cP€ëvÕ¼ëOœÛþäZEj®ÛUÛüÅ´ÇfÁ” ®ÛUŠmçÊ_è•àº]µM™•(uáº]íY6¤˜éåÐêMd}×í*dΜ p(`¾8%áD8mÿŒ”˜ýå~ýš@¿6Ÿ“òßO/ÓØÏ)ó‰ýïHŽ®€aÿ©× ‡«ð}(ÃÈãŒð}#æ÷îc™‹`éC…ú~¸-¹Î&‚Å<¶Xs¦±?øIy `Íl LÔÛ,âî=*­Þ=žðyÕHÉ^Ñâ{±ãÎþ4€Œ<_)ºÆs`Uk¸¸hE.¤oES+‰2=äN<#^$ùb-2Æ­N%G:¾AWPÍ)¶áÑœSÌ“t£žÝ,ñ¡làÌB¤½8>–ɪlssæ‡Á’=z¾Zƒš Ç·ÂK2›V¡¨õœœÉJÄ þ€bl¶#GÁe3°Ñq±çÉZ„ià9²¼¥¯ dÉ•²åÏý0 ‚¤‘ƒ5\\ZG3#"†^`¹:ÏL>±T²Ã; –kA¦žçP›ÌÜù=@d}W¢;Xï}¨ÿšò ]ƒúaä 4Œ²‚mB cAÑR„›Ñá,# Í P®, g´+Ûø¬h?ìi`)Çô€vQ Ì[ ½Ëh]k8ìã”?f”ÛëþÄß]¨?µPß¼!iõKËBõÒ”Â>©ÅÊ«Påf¹¦È¾Ô[aß•i I²ž¶Øá <%¦:Øò"0ÈòkÞ7Cßq£¸µ IæÛ¯öPÚš û2‡‚E:MãØeZL[ÊÊôÒ"‚-¤¼gx÷ÖCÖ Lb<ÏY39ÛOŸ§žgÝK¡}™Á´ÚÂCŤԪ5ªZ½Ve‹‡ÔþäüQ&Ï)SÏR/Wˆ¥ßJdgÕ<\Ï0}7 ƒ°r ôØŸ8dÞˆd"ÉŸ38ŽýgžFH\á·óxaÅ$ÕTA Æ,šbzÒŠ®–ý“’¾] Ì;ǰmã믔r²ð;Zš‹ßy#h1Ÿ"°¯á¢Qe‰SöW„±'a¨Á)ô;á ÿ†"²1ÐmÅçc圬 1µn‘ µ¨ ”âOžÛAÎý²» ¶ŠHÍ&×;]hÝ_YøW4ù‘ROêOÏ«ã¬9œòO)%pž—-t?¢ÏD™ ‹W)Šxt¡RcÏ\¨Ç*GªÉÃö ½ óŸ•.x(ÖžÖ¦j4ÏûE¡æ£y‚…Ò äHªÆ€• ÝA!0½É:éæµ3d O×€ž¦V;¯÷ÿ•.êù<¼‰Œ3H«b>,IJp >¸Q1Ó-Ev…5Ÿóú^^*þ¼°b]á¨kÍÁK'ø‹ÏZÃh«v´ `“ÂM#EV ^Tˆ9ÚО91»u9PÞJ5صn¾Â.ÇnúÝ/Ɖ=t™-²ÍÏæ2–MƒE6t.Þó:b!hœ¬äê[£±smn Û¿ú@rZ‡±3Åþ÷ïÁ+d¬ý{þì•ÝAÛ‘»e[;¥˜e­x>QGÓÁ›ƒ”FÊ»-U`ç iá°ßa°[S/ÑÞäPmânãT¨É~ øS3ÍBPÈUâE]²â‡EiÐÆz¯œe„%¢ïš“… )-Ï'Åž‘¸€À#1wn=ˆ}zAùµ@‡·áð¯HâýLµ _k‡¿ËÔ¢g¤Æ¨ˆLÕÐECŸñÉZE-‡XpJE}гn[T³"…³CN’@ &ÇÉò¼²«ýô1ø™©W€_噡ߔÛÆã•­¨ Õ²]Íɳ µu7ÀŒFDÁŽÐdçÀ—y°¼/À¢eãÃ#ÈÛH$e‡¼lâó¨®VêF”löhKr,©Â ’hçLÁöxu=M…á‚vj.éÜ<>Výè:BiÌÜ$áë øQºÁ«jÄQ«“c¶>âtŠ?âtÉ#ÝŽ¹sÈHž–È‹&¡9æñGHU v\-éŽ[À¶«? kBÚ…Ôãt™ãBÌ0ÉYˆyíÒ†¼ÂNäxøUAšˆ2ÜvÅÐ/,àøñÈiV`x§+‰Ü .΂×IÒæ"ø ÌÅ”÷H‘V?:@äG#;hÎ]S¶®©\øi¼Ò¥oÊÞo›‡¥"¼DÄG äMªcôzf¯V;1N´ÃtÙã]ýxÏÀQ…€ž0´àMŠêòD€­L¾Þ˜êêºW;™èAÓÑ—‘u;)wU€¡i¦y¦'d©„>%ANŸ^ªì¶‰Â ‡2?éÐîÏvøí&;MÛò"ót€Noø\,vX> Ü×—GG¤Š5_o”~WýÁÄ´ÃÂ54õkP˜KÛúbŽj'—'ºëަªRx”#s¡¾{ÈJòšŒçBË»d…Q W6žŒêcåKPz¬s†ò” È מûÜ ”¨ÅB€Ì²4Ûè~uú§aó|œDi «I §†®ŸŠs}ݽRpëµ½:KªÄÐu¢;_q/×P´†’›«,ûÒâ“ÂÙ¡“ÙeY«,¾¬]žðŠa(½Ê:VíöQJ Â*K¨Þò¸.Ò¨n„zB,l½ü︷ÿ}¬ ¸ÿxœWmoÛ6þlÿŠk‹u²á8N»åÃŒ p§õZ»…›ì}h‰¶‰H¤JRM²¢ÿ}w¤,KŽ”VŸ$ÞsϽðîH÷»Ð‡s•Ýk±ÙZÎ{ðb4ú~Í¥Pp¯YʤBÐq÷™X˘¯ábvyyþn9 _wŸá·¼ºÔ=îÃÕVØrs k‘pÀO!-×’%°âö–s ±X¯‡0ƒ°Æ}‚ÕLšµÒ)׆ øp3t¢Hi~¤¹d)ì2ݰ;Þ,ø'´&d”ä1»÷€x„D;÷¸(7ÀÇ. rõw^z–ÜCn8äÒˆä1˜­Ò˜A2†ìÁ'–ä|@Œä¶æ¨¢ˆš8 b[a°VÁV%1¼|q´ÂÈз£3J°ì†“îÑÆ·á¡ã<^iÎnü;PèÌ:r2jo•7l€i§š1cÐ5¦UNy“hÞÁ÷NNÉ$Ñ€3á˜u[ˆdÎdÏ'a·…óÉáÚC8á3í7wz9¹~{.§‹É|Z€^0~OŽ#,!0" ÓÂÞC*¤Hó‚GßõªvvlgËéäMA¶gÛ©•^ºl²,Âi¥šO—¯¦%Õ鎊ÝÕ©Ž|Jö„§ß>³Ål~=ßù6û ùðùÁÆ ¤²…[̶I±n°îì–ö—ŠŽøŒÕyd]™†3às·S–V´eë‹üýbôï¸ÛqßýŒÙ-~|R"†~Ì,+?"iÃb!RÒXOÐ_ç2¢ì‡¨I5Š˜K;®JV¼ÿq\t5ŠucÇP0¶%_sÜɈ{Eáðwk†ë„m̸Ó! e“ºduï*”ä%Ø—Bˆâx\%?w”j]H_»Duz-U1{3”\ú<„±“›sòœŒ )hj`S:¯Hî»Gç¦àëvðpÈ5Ãæ÷PòÞyã;™Å°Ö*-Á$v[wo,O‡»õãÚÈ /go§áo“·³‹€ö¸Aà_Ž~!Û=xò3Œzõ8ó$ךó2ÚØB€ÃHô¾Gða†H3Íeʲ6]/mÐŽ¶<ºáqˆu¢rE&L¸’éû6V*9¬,اù”Ø¿Œ»]~GußÇÖPQùT+·7Þ©º§˜÷Àf¶C‘$_S€·Yï»þ ë6³^|½}4TËŽ)SYž0ûUפràŸ‡TãrümÁ5(¯µúªréy©Vnn»îƒq•1¡i\5kà‰3n“á5~ÐÕä”;ÅvƒÎXfsã*mŽWŒ%,à®!0Ø*ÊSbÌ %‰þÈŠC{g{õ¢^iuÃeèÜ=¨i?iâF¦Û„Î?E¨k]ý~2[†× w¬\uu†]Ñëu4üù¸ÇW}hT8[¾{3]Â?ÝNÁ“Ùâh0ßnŽ4K1ã½<NP®æÅ h4õçûixþz²(¢$'‚áìr~Ïag»2É„hº6ÒÏß]Ôèƒ:£#¬Óté æA »ûM‹¥ðEéD³*ù˜ó¯e~¥¡¼VßÁŠÕ͸â]êqÛP¬1ïWâÞÇmcÔÛÛÃVJ?Ó:-mù¨°iô||ÌR‹›•m(‰¨ëér²}pôw« æ–»fÍsÕ|{ÕUM Ó“Óñ÷n߉ڀÅEÍeÉyœp7ë-™6]¥ñ¬¬iºÊå¨Ö)Ó³ëW0¢«ÊBw¿1_å›o:v‡]yÀ6‘¸fð¸æ]Üe‡Ê¾þªíNÖŸÑVlS,l°à• ¯ÕŸ¿Àí—¼+µh8ÇQã[ðÞ×F0—ˆ{0.ܶ¹‹oˆ±É 7-‰6:WÁf@lìàoî¤RPgÄJê÷ö˜'–… þTÙf@Ažá˜k$eIÈâ˜Ç®ú|þÉ>º‹xœ…U_OÛ0n>…%^ êÆ`{˜èS׆Q©°©”BÈ É¥±HìÊvnâ»ï.qš˜Q©êïÿÝï®{"“)dl<™ñ³`I!Áq±z•X– ÍAZ½fÿ‚ÞJ±2!-+@‚^’ǚɸ„»ÓitdzÙðö~ÀCV* ,< ^ÁÆwt3â§ÓáO~ñ ð£]‚ëÉt<ÎÆìx[]Œ/¯'ó3öm[v~u9ÿ‘Ûï›ìá%)V)ðBKPÞRj". • íë’Z/Q ªÚÂel-hªµ²rl]½§øh´ˆv*ÄZÅûæ%+â…Aæ•…¡!K½z“º±qòHIí|—žš1„™(àa•¹úÚˆkìÄ‹†æëÈMú›ÖÇI¦œÞº‘{€0¹zæNã䨅2úTÏÊæ 9ƒÄ*-ÀtriA¹´ëw¤â a !»¯‰* Tn#¶£lA‹ÍÅ_A½Ý%t¶ØŽ"6r2S„\oºMÿ–u[¸©1Öeî¾ÞÈoÐc!»VÆØ%ü2›k€ Þ ™˜“J™0=:Oë·Fàɲ ¶bÍâ $Sä °eËÕ%|ÞxÀU¸|ëA=P8°L«’a-Ÿš–¯ÝpÈ´^N'Óè­—Ê8C<·ì½å¬ ùâ=U™½Y~ s¼smðNG¸ßýÎÏøùðæ¾F6¼Tý$HRc”ä¸$™xÙÖ:7KH:çé|8Ec>‹FW³ËÉŸhzÛI³‘ž^TTç>5’èf8š£Í×nel“œ7áv'ÑgÝg:§ýÊ–(\áš©«è;% üj5Äéf…ÖûÛúq(ºÿB­ƒ¹ãዽ¦u»é¤‡¬‡hïÌŸ”HYœ¦Í}4œÀÅ L{˨?ïûòz„\ì(ïIÏ«x×^‡Ï¹Hò6TuÂ1G E«áEjµ¶/‘”!%¾«>¤·gÔâ¡ðf^k,Àr Elñ"ðä9Ýwµ­² tmfÄ_ðÝb¿a¸ÀcŽõ¢h[Õë±»ZÒ.Ê4ÖíèÞ)Ȥ¡TOUÌ:Yiƒi°â&Þ@“ô•,Öõ¿Cµ© S‘ÿTò¹xœmÐÑ ‚0àû=Åor„>€—&XWÝÆvÔANÑ%>~›PCërÿÎÿ±HWFQÇó ‹G‘c~9à‰E.Ó†¶1£ÙÒ``ê´‚Z[É¢ê i&‰½°ÍNvf´ 1ÿ¦qö©†k¾¡èÑ0·¬pü«ÿeÔ6¼0¡·d«VsÜ?-Î åp½—%¸J«°¤€§[âù—pç=$IâV2‘QºòÜú_¼öKµn”¼xœmP»N1¬Ï_aé8¥I›«PŠDC‘.B–±÷Ϋ˜µñƒñïØçÀD³òÌX;;ÓãD&þpÜÄÓÝþQX_$øM²˜BV‰O”^ª³aŽìƒuÊQL\ø½uRWydRâ™*°øŠéÂhðÉ”w¦ˆ3æo!í¶Öug¿,oкb³ÂA$ƒtEµs¤µ ¾Cxq '|ps€¤lÖe‡œwÛ‘}Ž?©Bé`X£Ýü–u¶MEÔ§ç ¿üT­®vª¸ñ¡TBõ_«æÚ¤ŒUhiˆé{)a@êŤ©Ã_¼œS›™ÐÂmÉÐiœØJL”¾?xœ•R]k1|ö~Å‚/z\ýèc[[ú)(ØBéÓs‰—zM$‰ÚþûîÞ§¶© zãì¸;3m%u"$Ü?¾ÄwÏ7“ø!hã³Òbª±üùv>ŸÍax¾ŽçS8‚~@œeÙ‚ñÈæ^ ÒXޝâËVDñ_kÊOˆÏµà^$hdšÅ;‚€s³ë§x<}˧ð+üÆjزlC „ÓkÐ[a¿|ªôf“ ¾BÜZ”qj©Y†ÿÂ4¾ÆúŠ2:JI hãkf? íÈ,¥=tÂúš˜Žìvœ·Ú·X;ÄÏ(gÒT[£æY÷’\Ú³¨r¦˜ŒjgöÌFJãòñMòNmÁvxÊ,„8A¯×£}ˆÑ¨ÄUjÿP“¾VÃëá¸@•¼2¥Wè*OU–”jîDœgÃ2”X[Ã…s”kÓŒ’‡ñ(”í©ì`—*žB&ÖË`°ÑŽOKeñ2lC^†bÑ:¸K!îrª6`ðÙ ×-E­_Mì7SeŽ{X( o?zSksƃ¸¢&5‘B,%ÔÆl” ¾ô—Mµ¸xœ½koÛFò³õ+6..%]E–Ü8h긅"ѶPYRE)u® š\Y„)’åÖ{mûÍìƒ\>d;)î‚ÀäÎÎÎÌÎ{WüÊ[.]‘óÑÂL/gý…µ\ŒÆÖEë+{m˜É§¬³Ñذ¦gg¦±°Þ&yófɳ±qeõçóþÇÖáA‹“Râ­H˜ÅÄ 7‘çÓ˜x ¹ Âû€¤!I²( 㔬|ºõ®}Jì8¶Ȇn®iœt€Ä!'œ»«Y–¹¬ÆÜM'–¥“—/I J~8%½·oßv{c½õ•X¬GÝDé#OýƒóÉr„a€ó1’üOQ#ÔOh3^1CßQB·) / ĺÀõV {õMÓ5d¶‘œù)Sš½×YJlrí¥äÞNRºÊ|’ƶë¥@ÑöI’>øTê¯jœ&ô$o)‚49›¶ÌÑ¿ m«-ñþ á ^åÛ¯ÝOºÎœÙHåëgÆôŒ­µ¬ô!‚5–CUºªâÕ$¸4ßkÛ6î5"Hée­ýÝ]ŽÇäÝ;E4PÝwäÑØ 9 J}Óº\Ž#滚§ ç!=öxEz:€ÀLΚ:· º€/Hé ¨|m'dÆ”¤k€ö˜òš¢’Á`¤Eq¸õ66š€„+@£Ä§ÁMº–#—:0F1Mh*¸¨³™Wà[œ ìlä R½´Õ£Îñò évŽuxô¸)ȋ¥û³-|SúÞâDefiŽ5üKk9]º´®¦3cb™Óå|`7]æÞ7¾wíÒ\Ò]‘ãηcPê’ãn·M¦ €#ƒ$lÉ*Œ‰iÌñä'MWw^¢nW c24† tT´J9áªc‘ÌýWRèÇRº^ïl€¢r(è/püÌ¥ä]xIêvÖ?(0xaô&`Ì2tå©_[ ,k0ÐZ fÇ7UXìã "‹ïmÀíëòEvloê`ô¹ ¶ëÅàš ¨Þ†–¡uHâÝ@ú©¯½·½ªvˆgÝ hè7HBç–6å…NUÉY!O}“©e~4-Óƒº2eêS‡S”OÛIBã ÓrÁ¶ h ^”zA3¾:"Ž™9)ñ!TȽÙNYÂÓÙNÖå•y¿0Ûh0|Pwï„Áb*̻Ӳ2°[¦t“(@îÃÌw!oßQrãÝÑ€d<]´±|b… ”@N Í×k´sÓÁ}x‘Å®Þ)UQhŠ.¬ËþU¾ ¯»oßÔ¶0›²6“}ßÏöUìÆÒ9™ÎÅr>;…è¡)ÔN°ue(Íâ¬]­£rQ.Ciq¡úÉ¢ê*Š=§¡Z­©Aù[eƒåŠ%[ì^â€Ü…ž Jµo¨–#8k;&–ô\“²ëÕPÛ¤Óéè;w 52Ñ"HéªMzmrE=' PTÂxÝÏ$Ǥ¼·ã’í?¤X" ‚Å4eÅa†yAc`í@ õݬ‡”@Ï¥Ó&w¶Å‚“•€äQºL‘_L¹ jòYô±‰ jfèšVÞÖÙD¥•ÚDp4\+" 2Éåe¦ÆåtaÍþP‰LQÚûe>Zä¨èFû3 ÂøC¡v=ëÃáh­$nó@Õ«·²›A*J-|) YÃÙkI‹Ÿ«¶kÇi›` h¥¢Ál õ„)[ùöM"^Ý64˜+@…¿`‘rà<¡Žš„|°ÀFëÎö3””}O?õ"8¸A «Eàܸ{ÒR374ÎúÐu[³þà'cháù*Õpú ;V­+zÝ£×â,¦4,7Âr¬Ç.—mÐ+·ÿKÉ~kíÉV›ÛÏß!xïGB*bËÎ~O¾=jØ:CmW»E.G &„†$ƂԻþ&¹~$ßõÞ‘ïÉÑñåHÜf%_‡ø°]fzö&ý!FÏ'4é?Ü5®³UîN˜iͱ* û.:÷9g@£ÁràoWäÀRp—#›¹t#£ËŸ† ãrVÄÔ­ Õœ•x•¼8¥®q@#Õ夲,(¶ ßKѪÀKûhÖÎb>è›< ¥±c'L!ù¨&}1Uâ³¶¡±Û²Þð¤äÓ]2Œ³ª¾=îøšûGîbBk6ÇÛÅl1]ªJÃlco]>,307 s®|¶ê ìùˆo\[c>ŸZ^-Vên>Èu¬WçY<¬Ùk³—ð¿pAºÿÌÙ[+Oç|,¶Á¡…Ý„š%Rp»E*ÿԕܶù:>„UuÏ0 °"gZÃÑCÓùÈ0åô*„ó¹lûÅ |¦f@Ín_ë,IC©9¼ä‹Ïš,yIC4˜(ª“Å™Å[Óz?=_š…›¼»b|å ZÈ$\Sú¡ð|kCnÞSÍË{7Þ×äÜîJìîvñ»{&CÒÄQv:vTWœÆ£÷LÛsãgvÎ+ƒ´£6Þô÷Z –L.æ“å¸v“'šž*–’qÖqù2á°A ï3<öê#R)í0„r Æ{ Goý§µw¿ö îj ^ Áß§8±·—|óÍIk\ˆÌºÉIë¯\R5‘ÆàÃ߬bÀ‚h ãëVzƒˆd ºY­Ad‚ñ@N‰@Ã) ïz_À„Nm¯‘5¤ù0R¤hŒ=‰ž#>%ü/ÃF¶FcñÓ1)Ö|AÖrJY+Àß÷×£X `V©½`“äÏ?ÅÞ ¥ŠÅ½gk”S: šmäiIšEyZÇΗªø© Ðóoji ªò¾ST~d›d O•k®}¶q© ´„;ƒvd|²Ã8’áÊU ÏçI´C¤f#üÈoi¸ ¾'ÿJöY½æ'öƒ‹ÞlQXØÉYÇß¹1'ö4á@vïLŒoEþÁ_àሀ»àŸEðû/I ªÒbèzpš/†¶­mud9LC?¼§q1Ì"È:ù] °„<P‹IùëÑñ›OÅ ^h›³þÀ€CZ·WGðÁG%p<»è#øuqWÔ=ðÅ$Õ¶íÜâA O­$®mõOøuÃÔñ&¢[Üš•àW4eº¹¨*.ÓW3.“_ÅeÊlÆe›*ウÁ%’Â$ù:¼ Öê›ÇñQW]ÆL÷ŒezSkXþàíãÚ»YóœI¬´‰ÂŒ,·o!>´-Øão&ì ×*Ç´±Ë/~}+óxªâq*/®mü@.ß‚ oM2Ÿp>á‡Á Éü“üàˆÙMT ÒpæóøE^ GY$.“Ç…²gNøaªNðMS™ëÀ-óõ¢‚½ê !9åRˆ©îc›ö­G¶\Ýéglð3÷÷ÅÛW6PÝù¤?¶~6§óEKþPbýž„q*N-|O;ˆp€wß Œv€Ÿ“¢¯ªÍK¹•Ñ•û\ƧàX»Žæ~ˆŸÏ§Ë™e—Ї¦ò±ä?ECTüøõ|4d_®ÁS~€±±[päÏÿW^Þ"±…xœ­XMoã6½çW ’CcÃMÒk{ º@`Ñ.¶Ý³AK#‹€Dª$Åÿ¾3Ò’%;)² ,°DÎÇ›7oƹѕ)±‚?¾>~yÚ>]ÝЃ6x|¾º_Ã#ìêjÐtV›€‚…PÓÛ©{\_„Þ!¬ï¯äö:lãÍߨ̬áw‡* Y18ÀüÔŸø§ÆäÍ×¶oJØ!T±„A‡Z>m6¨<Þ®`¨Ñ€±ÐX³§  Ä’ -ƒ€µ\ÖF‡ÛôÑá =WÖ¶ «c˜Ÿ¾ÛŹ0¢Lãå½-4eSB‹­uñúbu9‹òB £»o])¨ŒGb²SaÛV‡>è¦Bõ©,ªÆ÷Ú€íCׇ Íª£‡Êºxn4Å–äÍk€ ÛdcËÏ[¾D¸’ŸB5`Éž«tªÁNgr’­h¿7[â‘ö5–tÖ!QÃxøesâœïsèKÿ1IÉ… lÝyòx{}www½ŠV,hSê‚¡ µ ‘›.hK ThèV«½'DJ¹\(Ð&W_òµü?Öí/‰ï˜ÇñV0%´ŽEhUðãQñ/P;ÙøÁwXèJ äw×WwÏÃ7Vj†®Õ&2n¤›È5úšQ-$ûEÓ—(΋Þ949¥M¤óXúäí£¥KÕ’q|UEh`M!é¢*êH¤ñö’%>%»°ÿü‚¬ýn=•\•e&;¥:Ö}ŸþyÝêF¹³\#˜Ÿì€/è6 #Þû^9E"G@Ëf …ÎqôK£o.–ñU¹ÉèO¾’U±ó¢“(Õ1Œ9•x¨K¾Ѻɹmñ€&¦IvÙÐŽâ+êÔá¥Ì \é7°#C$:/éh;Vzº H$ËE$7/Æ'j"gž¸µ"Ú'¸¬J I¶2êÜ‚ËKF²Ð{Q½¬Bj¯¨þ¢Egˆ8Ž“ÄG8úx`4DZV1‰O9LÄMI´Le‰X˜*ÒHE_ÆØªÁÅ•ÞÅ€RœÜ»„G|d@Nã”–Ìi‘†H¦ÛP]ç,‘EïzN”ëELîŒ0/Š]Xâðd>¥‹BpØ®…›ŽÚ¡"F±ÚJ1csDÚYJº´1Üû£…ç™"k~þóÛçÏ›IWÀæè8ÑÄN}Ç/"4QÎÁ¥g(ê@µ—wc•"5-FýLnÔQDùp’O2±¥|êåy‡ÄÌÅêûÓü½T­Ác«¿‘öŸÜ¾Õà‹ÿÈ@9ÅXT3å?2‹äáû³àŽÖ¼óUÈ ?êÒ¤0ß•ÐØ1‡-1·D÷~F_’¯¤ÀÓx.'Ë –(ÚN6•(gÚù$0$‡£ÿ5/£ÉþwqNÓÈÏ–Müž†Y´M‡@Uñ·BçßfåcÜG'[P¼Áƈø'ÆxyÉ&ëÎ,ÊÛ.6,ãÓFk9‘¿5¯-bÔ¥ÒŒÞÓ²t“䢀»4ˉ<‰ŸÞ58@– ¶ú“O&nI.kÕyxÑj&§ITV@Î4ëj•—ë4-f×%}ÚaÎ6Kúú?GzÒþé`Ï”K-Т÷jÕXÚ(qøtï>Q²7—±“Td‰!oªÔÁ ®>S÷¼¯‘4Ólw8[”më÷y÷e*ÏvnXP­¤_$áv^´qȲy»šÆvÆØÞL5>î@gýN[î‘í}„$7¼”Vp¿Î-`ÿf˜½exœ•TM›0=‡_a)—6âÐÝãæÄ&´©´ QJ¥Ý“Å’¬Ù&ͶÊïØ‚ •Ú‹ÁïÍçÛs–ó=ääË.ÜÒ7ÇÆ¡ÛzÀ›)$Ô´N5ÕâpòÛ›Yz$I¸‹|wK7a°cñúµÃ‚¨§ãm¡Í.샬žâo¡ EqÒÛï|ï¼V• ®á¤ûšVq”„/‰SD‡µE¥e“é¾/ã=†Ã.½&Pšde*ÉBHV0Ž ãšp?SòØu䉬iP œ¨&ö[/Gí $){èŠâuHƒ$~ö‡À@“Ö઩ÝwB »2±MØ©lfÁâ®XÁaOJ¦í– ;î[uR-Ëa,žÊ÷eÜ'Ì*ÈMŠ) U.-w&oìíLšåMG¢žÝEmZ1eâÜð½NY52hKè Ì”B.SÇmÎN´^èrbœW +¼F¨ôÃÝdüR»˜Ò©n¼zw ž`nø!ÕYIÿBg¢á£ ?…ÜÓ¶B—ÀV`ïBiUQßÀÎkðø5 v¯t~¾?%³O“l?Éj3»›dÍ5œÝ²µó}¸V€÷ðIÕ%¡J5;‚‹âœJ£ƒEÍ|°Ë¼J åIèÞ J_q{Ofèä(êP×Xí!>ŒÏÞŸŒî¹ ´O†OÚÃ'“ÆÇ¥“:‡šUàäV“ÉG޹„ÿó2UYê­ÉsÿРÛ¿ü£“O®ç]ð‚(ö 0¼7GíXîý€!{±HxœSÁnÓ@=g¿b¤)µœ¶j)HD q¥Ré¸Yk{OãìšÝÙƒøwf׸"D-\ìõhÞ›7ï­çÔ˜X¿ý¸.Öj.g28}ª³LAŸZôÚ!x»“íúaƒUÐjßëRJ-v=:h‚©˜¬ñ§}k Vè½vÔ àÝu »‚Gçs(ÃÆÚ:Õ¹%³ñ¾oQ6À^¶p<ñvºÚ‚m@CGR”ÓÌA›:¢[}/ÊGÞQ¨óÀéÄ]Û®GB‹.¤œ ›Vd_/_^=ƒÆ!æâCêÜáκ!Tv€'öØ5@~¢çÍ.r‘yú޶YÜ[ª!;‘’q…m [ÞaÅþ·´r`ô“Î÷×_>¼{Õ¿x¾,‰%”ª%–öàP¶Þ£¸äyRvÛÛÐÕPbÄ'Ä‚dKòñò"ñô– §~ äÄD±Í÷X‘îbJ¶Òl]äˆñı4ì=H%ÞŒä}”z¦<»Pqê+’Eìà‡šãic-SÃJÍF zv+õs¥ŽÑG¸h].~ ö±Q™vN#!~“å Œc:k·¡/"`q$&—(ør,!K¯“Õ!YFF®/?Êö°Yþ”&ö¨«vd|ZLž‹¬1'Ó-úK_¼®#ÓÓÅoÍò'“éâÏŸ€dˆÿTJ:-ßÄ8à5œ¯*Æ~§0¤tûùæF2Qjަ¦Fý®c„̺ªxœ­VûoÛ6þ9þ+ PØB{X‚ K›Â‹•&€cw~쉠©SLT¦<‘JšµýßwGJ~ÍË2t0 KÇ»ï<~ÇCšS¸žLÞ‰ëÆ!½kƒõgãP••  %ÕOæ/6d¯TYdm~œÌ/vÅ(í#‹7 ¬+feÊkY‹ÜÜvÔ€~BHСr0“È ¸9‚šŽúp…Õ$Ð),ÊÌécWHcS,@[¶-­œešM´½Xf¸@ã¤c+i¨ÒóËöq1Ë3JåE¢Í]öx ojÁäl¾@Ò5wp+ß“)Ûy^f Xt¤QKŠ©.¥õqÜk —WýîÛ1#¶‡¥¯ñt‹KÊCÜNû“®L ý›ï½èÇx4¾Ä`z ¯¡ó¡óÍWNgµ!;¶µ¸_uI n»?‹QüÃ4OÆpÖ8D“èôŸ=¼òèwºBâMwY>“™PJS.›-Hrø툋á˵á3<Ì©ÍN«vó/^¾ÝHcÓ‹6Ú5å3}x'Í'¼¨Îi >}Ú¯óz]ÑÖ*–Á0T4é»ëî ×Ÿ[;Ùùz…Ä:±ðgfO¦£AÜñh4m® †q5œz+tJês›åNh©£mãcã€mTžTÅ çƒ,§ÚÌ[ ^_!Håô=’ê%Z'°‚ˆQÈüê¦C”åJò—6ŽŽ‰ î=¶CoQÂÚÎ1¡ï=ñCT½Ðò}®r/³l&Õ{‘H'kis-NK£ZÍ Ë*­5ðž´ 2øÁm%O”B ÀùÖñxša9Cé?Q8XæÖ+j´KJ*Tú—Iû¡ÐŽÒ¯b²|fÉ *û”ÕDpU»tÅQ½Œ”1½­¾Í³#Š!ÊkÒ;­1Un(˜ÿÙ”Yö…¸\­1—=Ó)ªGâàýb:Ý*Òûu‡NT ,ðÅ[GÌ-e,¶užÂãçÚÞÇ[”æKÌCG ÚüM»ið„ÄŒÿ«7æ’=`;ˆg¸—I"¼b½ çæÈײñz}žZ;öÖár¯“š‘6•ýÉ÷]eF5Ÿpþß7¿b í²u‹/=‰TJ©çe³Û@:)ɤXÄÿîdwÁ®Š¹Í—ïÅ$Y¢ {{<;Ýîn–Ë[x²‹F·èä:Sjªª±Çínýúò¼¹Û­ó5Hþ@U6xÒ CÛ·Í‚Ñ4Œ5xvšZÐeht`%:’#ºÆF^ >”ž5Ö–¾xœuŽÏ ‚@Æï>Å‚•Þ [Tô¾l:kS9³£áÛg¦„’·™ïÏ/DKXu:¤™>oŽ»m–ê}vÌå@Ú'|ìÃBE‰¿º—Î]U¡hKqä…ë\ÔWQI¼þp—ä“À fÓj áv1 E [Aï6 °‡‘ë^F3C£‘¬SIwù•šòÿo¬¬ ßûa¯kB`ð‚TNú%•t-ó±¡xDïjC mð8‡Ò°xœeÁ‚0 †Ïî)špQrðè™è/¾À2F'KºÍŒñíÝHHDzë×ÿïßV9ƒ7á„—rж”Î#(Mý ÏQV1–ie;TÐ4üQ?o5¿³,öÚâ/bÚ â‹óhL;*…žÈ=#AÁJ:;½ð¿EèWnL Oa%ÁùýÄ~(6"á$Z¤½8ô¨ÿå ÛÒé“öaÄ×äÓ5~Ž¶ÓŠ}ö’_\¹$xœ…‘ÁjÃ0 †ÏÑS˜æÒ…°ó ç² ƒ±»qmyÑHä`;í`ìݧ4-4mÇ|1–ÿOú%•äÙ¡WÛ×gýþ¶Ùè(åMŒ—!(‰m7:T«ˆ{Jø±]¤G›U>4±êŠSȆ¾§¬ªù®U5˜ˆœøiöœ"¦¬'2GD†¼>¡RaÎV=4@<§?Šy¯}7¦öí\øVW«+‡× 8Ñb6á=ÖN‚¶&ªJž ~l'µá0µsKIÂ…È¡ Ñd™aZßÖY=Y:Dʨ±7ÔéØîVXZcÓc EQ¨é,L§q÷‰VZüã¿r4çR—ªiH#:ý´“ÍY±5ˆS(‘e/ð Èsµ xœmÍÁ Â0 à{Ÿ¢°‹–½§Ýø%kSh³Òuâã;oùCòýöô8\®ãp³gÕI$Ư"®º x›€b‚|XkÙ\Õêl#­UÙöÚ-,³›¡h("CÂþMÁ¼X˜¦‚÷ã©‘òcñEþõZÓ¯ÙŽ?àŽïÎCºU²§ žFOHŽ»xœu1‚0…gú+š° q‘ÕÑupÁèÚ`9ôÚ&ׂñßÛjˆ p[¿÷îõ]Œµ® æ§¼Øç¢Èw—â|¼æâÀbQÃŒÂP;®€î dK;H¬£V:.RèxúجYq?ÿBÖ Òhëù£$žÞ¨Ôò·3•²Ù8Ñ ÷¥ÞÖ² ¦¶mÜj;¬îÀöµÃÃwƒ² #øqOhˆ6:à…3N… zø“Ð} ŠšŒ ”¡WÒ¬‚7]aÍÞø«Ž¼ƒxœ¥VMOÛ@=ã_1—°Š’‡JäP*$*šCBÖÆ^Ç[ìÝhwM’Vü÷ά?b*•NÆ3oæÍ›Í¡LT,¸»øvùe~ ñ›Tbg¬3Eä@/~‰È…™´þ+0éD>ëYK_¦ÄÆÍ‚×YɈÄR¡¬\*C¤ åú ÀÐïñêöògx~þð4ƒ)ƒ\l:€ÊáÛ¬T”™õ,<Ëtô¦b åŒÇØÃò Ò ™E)7Hç‚l z®c2¼+ÃlI¾nìüáûexq3ÿ§õêöüº²ž|‚) €Á<uj·] ¬CæÄNa!Ô†n™mò+n,>Îà¸Ý€bÀæ3œíÊk¿K2¾´ø²©²ýÒ·Á¦üøñäÓSÉFA»MO­uT ëѬö¯-abt")©–£6šŽvð¤¥paÎ7a%¤Ä©ÞŒ^´Œwð=1)»‰¸ŠêÔF‰¦ŒÁ¢`žVÙØ›n³LëçbUC”åv›Ã¨;­Â©,`‘܉ãÆM[ÆU FÔÅÝ WeÁ5“2†”¿`ßjå%ÆjÀ‹AÖ)wd“v2ÄÅý<„×òE(ŸÚ[dˆ’à'‡ä&2££1Zú%O° 4à”Žj•n@ÝPá éÆ2ÂÏdÒŽJ¹ mŒ^ûm±Ú&]I" päHþžmA#©‹,¥$F`-”fà¸tH‡%Ö{rUäõ¾ð‡¦Ô¦ñÍ42²òw£W YêÈ*–ï ¸–.…•F?'‘ÊÄ&ÖB.pímËÍ…(ñ ‚Õ4êYéµÚ#eOË¡­Ýú‚§Ä ãFËpŒ‹ïàÊ¿!æ<]ߌ6,_áJˆ÷Â~×iCfB-]: ¥ÿG*´C°5Ž#ýAãþâhÎÜUóìïœç/£ižLhÈ<]×»¥¼Zúdñ9†þmÒKX]iÌ?0ñ pHCÒÕóß)Z£LxDõuÂÃHŒ«ŸÄð/„åÓb±xœuޱ Â@DëìW,¤Ñà\%P ±[$·aî6AÿÝ h£ØLñ˜yL)A=<,W;:Ö§í~]Ÿie†¢üÃ!YÃÈ£äáX-ÞñEæLlŠA“´ÊE 5:x:€±“ ˆQi®ô‘Ì&>wÜU>â¿ïæÙS+†U¿ÀÏ…”]P²z ðÇÐMì³xœuUÛnÛ8}޾bà¼Ø‚“Ø–›<}èfÓ6hQn¶X`w!Ð"e³•Hƒ¤mÿ½3¤¬Kœ‚$Μ9sæâs™+.røüæöCú>:Çÿ¥ÇѹTYQq½þ&2w¹DÑUA ŸYö]pvØ Æ…AûUãËý»OoþZÝÁdÿj2ŸÎ“ùúì*†½Nܿޭ¾Ü/?Á¬1ï0Mú(Œ•Z¥úûðqCúõú5lVÅp6‚Ÿ?¡gJF£È:S!/ÈÁ謒Ê%³ùr“Z¹QÌUF,ž=Ôéž›…rF »ˆ~-Ž",o—ñ9uõ »ß­­&Ñ×¾žÄ© Åeý”.²7¾xœ•WmOÛHþL~ňJ‡™ÒV÷áTî*…b*M8'T:µ•»‰7É Çv½ë@„øï7³ë—µcîh¤@2ÞyöÙyyvòJ,“ˆ/áfLýpr3»šŒ§áåàEÂ÷ìžÈX.y˜f*T»ŒÃãààd2ã Áb “„áÉàÀ¸…þøÜ«¿Œ‚‹ÛÏþxÖX.‚Éí§!Q¤‰„{¡Ö¤ÀòU±á‰jÁ]YÎg“ɵ?{€ÞáÕøc÷iG°f[sÎ`øO)žCÂ6ÜÆ™ú3ô°°Èp3 z¨4<œB,Žwn i\/ Dõ/ü 1|]_Ÿ>~òO§{!\Æl%)†u¬ÃO¾ž¦—ô†¿à­g?Î&7áhŽÙl€KÞõb›SômoLì'Úl[ö±oì¿·ì—Wççþ˜ìRåÅB•ñ;P5P‰DY¼sgÑUÐZ CŒy±f9 1ìžv,É•‹à'à áþxÿž>¬Ó8’ Ö\W¤KýÙ z°K Ø©+‚%Ð%Ä í"¡5¹ÁbyÎv¯ñ³ÞF®Ó\…T7õfM䨂JJ¥PHD•XezquòñàèÛ›#K¬ä„× qš¬ö1ÉÚv¦ÂK ežr \1¹æÒƒñíõõð–ÅE*Ušcf)Æç’¨’^¤¿Í9,Eó¨Àp¯Ré6®ãYÌ0Hä}'’ˆ\õ…¬hß3l×ð‰ó „ªr³IWvûs` – qÂW”–®w© ¶~’w"C-€²–PXcoK¶ÂrÇ|ßë‡lïÕ4‰Uò ”â9[ÜÕ°2§;µ|^5ªUÕÑk,äƒÍQ#UôtÃ?5 8ÃãÚâš‹» m×Ö#]WÕUSÞ0OVY=RÑxÄzÅs¯äÿDf…ªÃQ·.–?¶å†«r—êSÊŠ>£P‹; ¾Ó=I+OÚ²LWAßENN$¹ö¡ÁåZ¿Ð¾MECM¬³Š´¤c¢^F ×èº!ð¹}#À°J—¡©@$VBéß‘øã`ÓËÑñ[Y-ìDüÖ“wÜŽD¢L©žV3†Kñ€ï˜ÓÈÑ*ì,ÇÓ=´3K uby‰åà_ Týºxœ‘1 Â0…gó+ºh*®™DÝÝDBL.ö°^¥I'ñ¿ÛV-JÅ-ùî½w$!Ï=¬gÛùR¯½I ˆñƒ‰ËÊF¸˜h3M®bPq #£›™²›ì¦“½ƒ–DVâ¦zöÐøŸÌ‘÷º¸D*8´—úêâ\ŽÁäyaU'ïHÍ!ÇþD*{² š8bŠºë0ì•’#Õê|‰øM׫cœÓ¶8ŸßV¼œ r ¿Ee&ü%äú !•ïß2w{¶¨Ê²8xœ•S=kÃ0£_qàÅ1†Ð5žº¥Ð¡Ðt–kQEÒ©´”þ÷žì4uì˜4Ëîã½wïìLµ¦‘-<ÝïwüñáyÏw,£„2ò,ÇúX#8×* W(ðÅVu'<)_±Õ»U •®Øw5bÔ¨H1B4A½Ù€2Æ— ´¶õ´@ Mt<„í]ÏÅznç©ÌOàymM@4¢üÀ†ÌTm°®Ž'eµ–ÂçóÖË^Gë¥äi]f›^‚ì$Å6šq5ú“ë‘ä§á°…bÃÀY'B¯;_8°ŽJÅõÜ壣£· ÒŸ{‘ŠåÉ µµoÑÝyͺïÔ «*„sÒ4·¨è/œˆFßÈbs:Я,~áR7܈e$Tµ@&Œ~«´äž.@ ¼xœUAKÄ0…ïùÃöÒ–lôèYXQDÐ{È&3ÛÁ6-ÉDÑ_o²TVOCæ½÷åMÃ<¼<¾==<ß›£jÊ“þÙ¨†ƒ›²GØYön™W+û,< ãN©C¯ ‡Wž¦/X­{Gáoô0UÈgdáp‚‘¬Ãb=¨…ýf54å4¶EòÝÝ?©†q“4¸%$7Ú=Í¢a†Œ±"‘OYИ¶¥%ÎV ]c‰‘† ·]W¸ªb6nDëM­we_¨§L„QC‰Ï¡œÊ!%›ê4É^Ký6º4î5l®úWƒÁ3©A=sî¸xœ…M‚0F×ö“°Q XÝiä ¡Sh‚Ó¦3˜x{ HÔÀ¬úó½×™fÎ’A ×Ûåt;V•>«,íáòH±Ä¡Ñ·™K¥Þ0ŽC_?µtÑmÙ%!ŸVxkµ€x©ûC©ÉÌO™5z v-¡JðOŽ¥Žòñ4žX éê¹8éqÁO l8´ÁÔÚ¶©P»Tð®ù*`lDKRu¾7 jô¦÷Çdñaeüyþ¿y}çv…)`Ù|Ê&‰ÊŒ³ê\¶;¹‹xœUÛn7}¶¾b#°%(NûÚ}KF‹É[€µj sÉ5ɵ´ýúœá®â•,¤qKæe.gÎ’—Öx͆>}ýçË»êÃâëùÇ|qi}ízÍôgÊ›7Í_Çk6ÈÒâÍŠ>°ë(ªC7Pn_ë·ÔÅÐqtÝ÷!³&bÙM ;GIÎÃÍ‚V¤ü@ ŽGS²‰"wNÕðÚÙÜÐÕ·««u±ã}íT«² žº`}–gì_{]îšà `Ê("$˜ZOJÜrwÊFA%ï˜÷ªí¯ÉBO*ŠMŸš‘Ú”¹ "Ú¢„îÔ`,bï‹mÚV ã4à'‚ ÍçÑnm~­­1¯sdþUÐoçqâHå k±õç}…øôu&üÃŒVçœÏúB?w^‰ÉºPejÕÞ±(¸c¾4tïwQu œÍZ‰“ û BOË5°y¢> }½½•,4YßaSØûÉ…pGÎÞñqØYO$À”BÄNõM%ßWš'Ù–…{`¨Çúë*åÁñÏ)ïÊZØëî‘Õ‰žã s{¯Z0ð$ÍØñuÁäC¥ïO5Ì»ðkHOg{*›rl*3rªÏÀœ£‚g çO = Ô™ýQ,Ìècèf½ ÿú<ŒHðð>à}Qòà8Ü8°¸DU[Œ¡¾ˆgt/™µ³Ÿêàp„Ûú1Y|qqA§m }>&zÌ0ƒ$Wƒ¼8â"cª". ynÇKÝ)¿íÕz”n¡Užçg] GÎCn‚ÿßî¹~^êÅ%N5‹ï’Ûó(¿xœSÎLËKIMSrutöputòq÷àRŠd楢 r¥V”¤å)”åg¦(ä&eÇ¥&&g$&夯ç'e¥&—k—•&—(¥–Ågæ¥å+hYÅ: ™y%0i9ùéšÖ\\Ê©y)™i\zç*î¿xœOË Â0<7_±Ð‹†þ'>À‚àÅcͦ]Ún$‰ÖÏ·­¥/3ì°3³›’eƒN›m~Ü©ó:?¨½H{‰gªÀ{DÏpsd€˜¢òhWªN7õ"D-"|HŠØ:)a åjrGÐÆL^ëüW?È3‘$¯…µ-EOÎú™C¯VÚƒdÝâ»i¼Óê§®‹öÈñϦYn¨\7å¶‚.ñGððù}’H‘ Yñ ˆà¿Íxœ¥W[Oã8~¦¿âˆy¨ºPØGžP›YvËÌŽV«Ud’“Öµ+Ûá2£ùï{Ž6iB;ꮄ vÎå;·ï„²Ð90M>=¤W½ô,5®Ž=çm™y°X¤ÊdOð½wÍ……>ßh±À‹Õ…±r–6n+MÖJ ©úꉮKíäLcA˨úœŒAÐ/”˜¹<™C?{LsáÅñE_=Z$æ(röpÔpµRØ”¤Ó•ÐÒ^ÌöÔx´BïíÆâÂxÜ¡TÕ0yõVp¼H¥àAIç)wo›!Ó;º@*Ո̗B=¶ÂÅæªå¥¡ú¦ ³t°´&Cç€ÞÇòg e¯lÕ‘YLdÔL˜ŸÀ½Vo€5*‘ç &ºn"Q-`g+5|!`&ŸQF´©}º«Ê]H ¹ª‘ý÷þª+¬v"æ[.@£lKDÕq:hû‰UëĦ™‡lîô0LXœ©g¡V(®ÌBúyºî¾L&|W©J‹'ЯÃo3R?9¶v*¶¤aÅ;-˜Ô- ðˆ{äãUr9þ<Ò¡ºÇ'\ƒ&ÍÜÝú{0|%þÙ‰Ž Ç®¦ª–KšdÜçfÉä‘2Ccåè2+—ž›gBÄäÖ| Ð _ºFC±éŒ­…²¾Á¦S6˜™Å‚ø‘ rÊX(:]×´å ÈÿÜé]œÜðÖ‹'š‹ÇÒ{àMàQotDhÝR¯ú`·ý¯¼JpR—YGPï…F~8Œ°‰ên{×ÕÎÑkÖ}áfuØ"wär¶æ§°U˜ ‘ϋ𩗠젲Õ&H…ï6Ö†2µ‰ØP™öÉ­`†gFØ6ÐÏJoŠ¢ae}ómóLÖcx´H‘È–¢yFËñpœ¨½•è¶­MII„·g{&"Â֭…<€kK¬wL{MVþ»éì„zYÕ{zßïŽPúÿñé±eÛ“ÙmKuEe£«dt“2¡}ºŸÞ^~Nïo`¸ým2ÞOáè—³ãî’Iòg2!±ób_¯'ãÑåtLb¿oÅ+N§X­¦öÂÎЯÇ"o;¥©HnØ\'IañÎþ"žmpÕQøÒ¹£t6†Ö¢3ê9Ò‡Ô 1lóÙôJê'^vKã$Qò´QÅ´’ìÀi.ðÖVoµ=Y*Õ:‘îîê‹úÉÅöb º\ðWµ`J?h-|‡Û‡ß¨l\ÝŒ¯“õó_®“ÏÕ ~Ä9‰+¬ƒ:š|wïà৤ØÝ}ÔÞ¬Ùø~»Ñô;44ê\@|ÿ{áXÿ>á\³ÃxœVMoÛ8=Û¿b€,°¶à¦É×í¡(’íM¸½ Œ4´ˆH¤@RvEÿûΔ-ÉönrH¢ù|3ó8ä’ºD ›‡§çù—ù })'ÁÜyÛ,6Æ#ü3ŸF;E%,dZ4¸žeYgëõ|¦´ú/×vð!êÚgmçªÜ¢t-’rvÌÔ)ÆÐòy$½œB¢/þ+GЧp#ÛS–±ø˜æ}6ŸAïîÁиC-Á‹­ ª;ֈΛwÒ×>hÀh¨°³ÊyUÀ‚Ú.ºÚ/ƒC%ê½8¸3¿`ðÇÀ`œìý+ x÷ªÚ<%É»¶“¦QÖ;m˜ÅÕ[Q¼®Çš®­(£âX½4 p¢ WWžèVyßæ­5?ëù¯õ”VYü›oÑ/¦üZ’µ?´ÈáÚãŽ10 }€’N*èð…ÑP=y#Ú6n‚ ÞùÑü gN>=Ö¨U™ÖÓb|–ƒŒÌÏ6«°'žQÛþsLîÿ 5ÜÄojD?Ÿ1}Üd¢ûX±ˆ6ªW´oâÏ[G2§O#û‹žD¼áѤ£¦Å£d»+ÉsQ´Äƒ!Q"¡á(¡›+*è•g GKÔÒ—“¸’Òöî#Ó5éÕ΢4!5LÖd\*¨HùÖŠ.²äÏ êe)QŸ”M«ßqˆ¤„%]…Ì{U×$‡þ ‘"¼ „$ý^زG×(稹yeˆë¨Á¢v´&_:ûŠZ¼GT–(K^m/V袺ý×Îmƒv‹IyŽðLqböhÅ2mhn~8:Y UÏ•®‘Äj:&—I8ÕÜåÕ•ÙÓd>#V ÈñîìË®>FpÊò6ã+/­7ºX¹ÒmàfáX¥;òˆ`þJ˜&M1ª ý¢·ˆÂºt§Öô7žÒeî-Ýâ„ÿÚ½v¥'ƒZÓT.¾ 'ï yé­˜Ð$‡‹0Ξr"g. bÔöO›hiGŸéáö묈,þ½úáÉ„ß1Julà8Rzx$ŸhöÜi÷‘NzÌ„Èxä æiGÞò4QwÍ@–‡‹‘GñôéÇç/ùæáñ{þíùÛÃlöîV#ñ§¯_Å‹{øðî–cíÓß›Í󿍾'5wëu©äü_Ãk!G¼§xœ•VMsâF=£_Ñ»>SØØ©=Amª\;TÖàÂxwoª±42“ˆÕ̯7•ÿž×#`Çဤžþ|Ýý¤#•éTf4»ŸÄ—Ó››‹É0þ=:‚Hi¹#¤.—ôwÔÍfñöÑÕtö}¦ó3üºûÇ£ï£ËâÛñíè€øÛÅx~;¾~›M'×ñÛ:wãëÉÅ—7&ÓÑ÷ñ¼ý3ˆ"çm™xJ*OãšD:Çu&F; Kް«AÔ*T{Â?î{¨EºwJ?Ò©Ò]:5¥Ç¿´¶ŽN讉ʞéŒ2cI²2UV&^Á9µCLRz!­òŽœOÙ .ì(¸ ~‚CʬYR!¬ÔþøtÇûÉ9yC ±’$\Kž›Dx™’p§'ׯ'ÛG&¾´HÂ/$=!¼xÈee,u:¨C…騽ZgTÿØÐJ‘6 éA&f ‹PÚ/uM›È„ ìùY'À'.TߌŽt§~(DíU8ÖNæ°L’´d2hëcX-…NÛÇ´,¹ñ¹q²NŽ–WCWÛ‹ÌÃTy€Ž@fYä’Áædy8ÝgÆ»;-û #'=Z†ÓZæ,\·WI™c쮆¯·Ol0»vß;›¬ÁzÅd' ½ ÙjãÉ•Ea,*݂хŠT€‡”«pCžwaí’\IiòNÖ€>ë@½¨¥Ðs¥Õ ò©ï 4h®$öhGRÝw¤æM-µSÜ4mâFÿ|_ʰóx6Ä u,S©×!•a,P© {ñ ùÐ<œÔ¥†:Ö¶U˜Øo{fÚ᪚$¢Îñ ¨‚‘•[¼O×–ú¿Òüdß͇ã 7ޝÇóøòfØ ñ+˜oüù‡óéý<ž‡0 gú´›p¼ŠMáÛ{äÛ¥0…߯±2‰“ô «.íÌ#Çb^¨Í{Že^2Ån*q/…çíÎÕ_k¥>}üz1ûüõâËýèã)»™BÏyŸõ¶'Z «ÂΕ “?™YØ2Øô^­$†‡ÿSMS°Y„M•¼ªEi &5“^«ˆ%ðU©ëWRUv&ùÍQQ*j¨±±Ö5=ëd2Méògâ®c¾V*0 F¾(=ÂbÕdØœKg_cÏáäÃtñŠ|q«~Š*/K_ŠºI^:>Hÿ$¥f7[îY5TÆù¯E-yî…)™MR/ì%AÛP'Ó“À!'JOÊ/P£.m†w4 cÙVȪõ’DøÓ¡þ4àuÛzƒfiH0$fjƒÒËkðŒª+N´ ôÉOi 3¡òÒÊ-‚lwØõq;CÚ¥•QX¹Tx†·6O[4ŠœM¨>(ðá!›I…[Ÿ9Mª ¶åvÂ¥ÉRo©EGxI«,ú\.h¿²xœmÁjÃ0 †ÏÑSrÙB.½6§² …2ØÏV³V.’](¥ï^; %é ãOþýÿª}O{õóµÿÔß›ÞB'\0ÈÉF%HNŸýÓ†¢nPÙ@• «†Ñ¢¿`™wP% tê‚ü׫ªjüÁ³ÛÉ3~‚>°EÎÎÄIu<¶Oäøª9ÑzÕÁ½ð4 ööÒ¦ô¬UcÍC;”تIÅx Ë&å|½/Äz@ã¤]¨›‘½çu6ô=<ÉAlä¼ xœ]Í? Â@ ð¹÷)·héÒÙÉ­ PAœCíål°æä.ŠõÓ[±øoËûñx±ìÅ‘‡mµ,q]׫Ý+cGb¡?5tSŠ, ©kJ$Ñ8à9¤Y$)\;ȵÙ÷T˜,Ëß ¨§>ï_>Ò€ÁûD:ùE„ô¡ø„Ž¿‚Ä©ûzùö¶k"äãâ|a,‰co{PFVºxœuÁnÂ0 †ÏõSDô2LÚ®}8LB»G¡IWK¥ !ÞD„ª¢ëŲÿ|ùý»Ä†¤jØa·ÿþùÚoùÊ8#©±%RÝ©ØÂ ßn:ìý{»è½ µg}kœïÌ/»B‘¥ÄñıT*("´î’§³6"¤úçstáÇ § Ê¨Ü"} ÝgPÔ­plU­ q§¬áÖÅð™RZ`Wý)é:ÙÞ¢ËÉ .àHèß^ÏZŲœ BJžvÏ|X³¬>˜GNôS¼ óKKE¸¨“•¿xœeŒQkÂ0…ßó+.ôeŽ µÐ½ì)³™Êª)Y…½…ØÜbÆ‘DýZÊjÁ·{Îùî™Æjlà{“³ºËåšD]6§ÕsW ^ñ%/$‚ ˜§Ïˆ`[^±`ñäì“î‹J–tùÅ*¹¥?°H’dÜ *Vlº¾eYšbl‡õUz£ñ ¬~©ÏÖ¨ÊÁk‹1ô„±Ò‡ªâù†›½ïÍeV?<ýÞè닦f­‚Šaü¼ܯªOd«n–DÏ4äíij´ŽxœXmoÛ6þ\ÿŠ[ò!vâ¸iö-i;t[†Ûš¡É€b]áÑe•H¤ìzEÿûž#%[¶å´BQS$ïî¹ç^HåXe:•Ý?¼ýñÏ_¦¯ÇxSZn&OOtJ÷ÞÎêìÄQ"4Í$ÕN’ÒT ½¢¥X¹+ŽÍV^’°V¬Æd,yCÎËS3å­°+ÖU=ÇòBÚ¬0Kr"“Øf•ž» Ö7æåÐêLɶÂ*¡½#Ÿ …’ `Eª¬ŒõX`c¥¬,¥Ó«FÕ³ $$¿„B*e9“–° …IÎe:¦\ê$Ùu4…jÖ„gV«"¥Ä”U!?µ ŸB “ÖÑ27 ü‰‚œú¨>ñ$…SÅŠ>j³Ô­ƒxn=ãxs÷@…œCøS­:h+£´\¨“FêŸpšJ/’ü„U°€©¤^鉫!"eÖ”¤ÀžËeQ4º–¹*d n5a•¢P)-­ê[ð—(í„?Âàðá§Û ©éŒž…m®Áø^¦z€Nù iõ@cC~›Dtò÷ÅÉ8ˆ,[ÄD£«ïŽnütÃ4¡›0‘?Êj¾¤v5”û\µÖ3„ÊJ'íø6‘{c¼Œª°çîW¶yTbuDKåó€¬a>UV&ñW­LMKc?B®Q´ ¼WíM€çÖ,‡n6¦û»ßo¦÷·ÝŒ®›x&“ ½–VŽƒ)8nàZdÞya=ÓÍnøg:%“!zîóm5=±ª€ÁQ¬Ž‚ÁZ%7W\Ôðß ¡ ûþdÛ?'=ÐḛùîáõÍÛÇØ]†ò"9ÞÝEe ;¹ãjåè<òß:–Ô.¶N6Ì’3 —›siêyΑR1yc*¥Foº¢œHæ%M›l³O9Ç3¯þ¸e¹PN1×J“Ö…lKuÉÕahn:PÞ½{w34ÕÆOÑJ]]6Æ ^4ùæbXx€p†&sþ2ÔÓ³MXˆäŒOÐ̼­ƒ¬-©­•œÜÜÄJŒBߘЫ Eņ›£1‹®º£Êªêôh]eŒÇ04D fžJé¸`¹Ø·§ƒÁ±ÒIQ§’žÃ'iý$9 Æ¥Õ”䮓¡0~߸`¦N|KÝçÁvrêc£¸^¿"_ðtœbãõàËõ`÷ôº}sû@ô™.ÆüoÛ}á£íœŸÖV¡p%«¡ óp º0h$¼ÒÊ·AžŽ)¢B¾öHXÉ• w…6›£[ý…®X׆ðýRaÏZºƒÓqØn]0a]Un)ª]E"Ð×A•sl¶&}YÑ lF`Nf<ša„Dhñ¿ ‡ûÿšómdÛÛe¼ ÅE,Vú¬p3‰ñCg|¾n2(º¢‹§‡ÈØv†÷1Þš†¶ n:¬ (Êáwkh£Á“'»-ÿ–žÄŠ2æçOx¥uåESM—·˜äS’Ýk«a†@ÚsO ¾m‚“Ü:Ð vÓ—Ú8ZËÉëK»3)÷’j/§˜ßÚ+¥Â îZÜòÚã´?K¶J!M÷+}d4I›¶[|?uXlØ=;c.“ý….Åý "ÄíPW‡(Æ‘µ]œ‡šG‰›òãÚ:ù$W wY,N&øïŒ“%ÜKæŠO…Àk@£ä·šèàsÀÅÞæ•¦ûÈ?wŒúU5]¶›Á0hHÅP £ÇõQ+øé­òÝ©Ë^S³ËæJF1f_°’Ö{EÓé'=±÷«Jò÷\3;<•Ÿ*\ঙyô5nÂÕ&7E*m{r„^ðé@nFå_Óš[ =(”é}ƒ)ŸbVÍj/§Óá0Ê qïÐ>_Ž¿FxêdžpUí$àöÁ’áŠÕ“„í±ùËío7¡?¡¸Â] =œ%(Ãy.ɸòµ—Î0Ï/:Ü7uæ¶Mö[ä&•¥ë¸æxïí§,=ÍðýöÕ  ŸïªëÑ7ÇY€\ß]ÀzÊWU®û #$xÐþQUS|/ó=ÓídQ!ð –Oeªðy7ìÁ¼§3ãÄìnŒãS©ŒíXêAŒÚ?_0ûÿ9žœ/·xœu‘ÁNÃ0 †Ïä)¬õ2ªŠ‰sOœà¸WYâ´Ô©±M¼; ëº2Ä)öŸüŸ­?•5¤ÑÀëÓs÷"ª\Z¹•%å’FØøý*~6Bà'c Pž"ƒd€šeßñaÂVˆÈ!)†¬ÀIÜÍÝÙ=í­\ì=ê¬/´¥Ž¶'É)` »È3HÅI:w;NG$F õN|µËj«jçý{šº\oÏ'*Ìì™ òñ¾½8-1L2D,†nŸŒÁ°]ã,ãØÀ‡·y¦–,›+Ïyê!Ú#þƒûù¾»ÉCc@³¶\.š_©7…Ÿ!¢BÒÖ”€~þ­¤ñ ô !´(xœmÑ]Oƒ0àkøMvA²›AùpË®0C4g&šjHÔ X ,ÓÅÿnE&Ç…ëçœ÷íI')Ûð’¡èåÑ» \?vŸ¢µ¢h¯º¦N.-ô|Ic<ÜKÁ#²º ¥Ø#âëk7ˆo=wå…Š–ŒxÏÑŸ5U­Ñ& j놊8g4eT%É©@%-1tým©(³)BHGÓYoE•22ïEÎ ÒòÀ|€ ‚á PóOكτ-PÓðš Ö’|[·Åi®æcÏ6;šCêÚ`qÇË-¸­ã+ÐI3ž§ÅLÔ¼* þ]ÃŽ îî"ÍóS±cƒÓ/l2Sv(è{%ºC$šxñy Л{!?÷H ÛîÑê*¿–ê7‚î¨Ý½xœSÎLËKIMSñrut‰wö÷ p ‰÷àR fæ¥bˆs¥V”¤å)dæ•(äçå•Ä'”k”åg¦hZsq)§æ¥d¦)èk¡ëTÐÒç_!YµŽxœU[OÛ0~®ÅQy¨Ð¦i‚§Â@t´ -Óž"ã8‰EjG¶CÓþûŽíBSèEÛS¢sùÎñ¹|gOä2ã9L’ÁíÝx”LÒ+²‡!ùŠŒì ɪ&ãÐe”•ü¨ì¶DšÏ”õ2b¬n˜«©4µÒ~“ÎB¬ ß3ÒaJ ¬¤¢FW(yR"ƒ(£–¾©ßœóWÏÿÍ!~‘DpÛhiàˆLÃ7&oªÔÊ+ž¸“Û’ƒª­P„©¬wÕœ©BŠžÒN!$­ëJ0úPñP™äýâ½Ñ~i õO´jxÀÂ_‘9Û¨O:BZØ ·iÀ8ØÿP­-9sÚ´ë#éŒ÷H§Ó±uàŠÑ®Ó~T`W¦´Æ®‹óö‹Î‹ÄrnY¹Õ¶ÎÒãJýš_;pätKĺ1kÛ|E¬9k†×E E°Ê+ZÿÖ€ž ³ÚÃåðjÊÓJ±Ç\Tn($vþ‰ëe8œÂÉùƒ>nÀxzw•†C8Þ¤¼%ç1œlR_$¿Òdz Ÿ7ü¸N’Q_7éïãäÛè.†ã/„ô—3O[o6°~sœe7‰¸T€ƒ·¥£)Êþ»ý\í+8Æ›¼9‡Ù50/+ýü?ƒUP{Úïû1¬>4ö™&Cã2ð˜P­U¡éÌÙ7XpÜE—æ"°È%¨11(¸f9ß•z¤£ñ$އ£ÁÅxp~ݦ®Íœm÷ߢàæs·ÕÛ%ñy|}‡H ‡V(W’œ‡R;ÎêûQ 0‘0g@6Uµru} ]ço8¯=šw·%µ0GL»¤qVwbÞÄñºˆ0‡b&/e¼¶%¨Àb~Ùw£]ÄãÉt½kÀ…F~ÅJ`ß •B-fgqC(¯nׂ^ކÃÑÏÉàûtsUUjîü<|DÞóy‹·]-°¡Y“–‡/\+P¨ÖsaøŒ5Ò6À!Ì0CZ„i²Vníð`GÄ“³£”åV,9z;®gèµ½À1ãvb$Žêÿ‡?²òʶ§­#ºã.¼ËÙ7{§ßº³°¸ þº/ñé¨8u³¾#‘Õ<–¼¿+ÿ=d‘“¿kr¾lxœTM‹Û0=Ç¿b ÇuºôºÐÃÂB{*…"G2’º-ûß;#9Ž¿B`/r23šyïfÖªÒ%VðëçËKñûÛïÅk²&ƒÒ8²%ÎÛVzÐâŒjoßà_²’F;­vê ±y2w_vW_45ÂÉÔ*íálJÜ%ï»>µ·ˆE‰NÞ2_Œ*!Û·U…–îÏ1„sšÙ©¿}fá•$cÍ|цª!M¼Ò§3<Ÿ9 JM£Âsj6 á~ø |uû |îdˆaä“B]ð¿tƆ ÅYô­Õ£ QÛ÷)3.> R£N‡`Y°|™>' €»b£{öÂ6NŸX9ô¤mJᱸÕ\(„X¥•/zûuûޤ­>„¦RÆä)ƒW¬´PµZze4ø£ðPt°7þ¦" ‚Ø› º„HÍQÉ¡2\+%:ÙS2Vn\óWÇÔ"·¬Ru}#gUã}@q©Ã)´ ¥+³Kü[ƒ<ŸŒ3Íz§u½òTøMÊ.=•ë,Üij+•æFáÓ{F ݨSgebîZwNÖßËÃç=ª<ôË·‹—ÅáçŸä`“_aµ—¡V=÷4mHÛmb+JÁ”l`Pbª=´ÿ¾„´ô1Á6öçÏþÂT”cÏI§÷bjmExpÅTQVu9¤ټaÆ‹r"~0j‚¬!ÕRCÈ1åÏ×BÖ]ÆàBð-‚½ëë÷¯µvÊ!ÜtEÚºµ%Ì¡jh F}Y¤Ÿ°°jš÷®M3óÝež†)åjn«1´RìsSße6ÂRŒuCœ“8£¸Óå,Cxt)$å ‘;M¸DŸ§¨··j‡H9¾FÙ&,·¾&kêZ±Y@¸=˜CQ®´]ßÿÃ4Lâ›»´2‰o_’§‡×V‰äwSÍB2÷Ø¥<¿ ¤Ž\éièXѳ‡#²¿'®Ó_Ë¿ÓÆ.â|‘‘‚ü3„ßHƒ=(8«B&º°±[Ä1¥°–œ•ÃÄñ¨PÐ5Šˆ]íÒJ.M¿t´Ú`ïÿuœŒ¿Ðx—½Txœ­SMkÜ0=¯~…`/“Ko¥>…(”„ÒèmP¬±wˆ# i¼-ýïÙÞcv7)Ô‡ÅûFóæÍóÓ’jg±Ö?î¿Ü|ü ß¿ÞÞ~ƒOj)9œÃGüîæ'Lkú½R‰cW±î\0Õ#pDLà“w©TŠ÷ó r¬WÅÆ¡vÀW«±¯2Õǽ.Š«kµX\àÔÅørUžž1úO©Iú·ZTrR†¬MÔÅÖw­¿Á¸ÄX¾¬:ÏÐöÖ°H¤öbÝR,O‘·>!t²ŒèA;;ò@nßšPª?gôöñKÔ8´½{ò‡wÙŸÞËÉÿ.de@¦á¼k÷ÐyG2-Ì ^àiÞ(²úåæcLÓˆ´D›)˜)ˆ=•à|èL;s&DÉ×NÀ¼hðœCÄh_‹Áôç éÚ=<—ü#N÷Ìk4È L‰~a>p*¶‘Y·TñIçÆ“ÕÅ8N¼0“æÁòÄâ4'†(O×%ë—êbj×òÜ1F×Ç`ºçêw­GŠ\‹©ÒÿËUÊܼ–òÖ쇜¹¡l$Çqgx…±'Üú×èä¿«¿=ÿ…É»W—|—Z¢³T«¿¹XÔ³´"xœ•Q=kÃ0Ýõ+¼4ÆH—@ÆBÛ@p–¤«Pä³s4>éLÚþúJJëÄÍÔEºwï=2ª¹Â^Ö;½ß=/õ«ÊBNŒ·%%Ÿ=FØÀžÆ ˆëµ=§e0ÏÁx?´Ä <.$ ’Ï•ºÂ 'û®;F=H½LÅÛ±ˆ!ä¹ã¤O_йÃÖP°çt?[©$çÎTÉñŸƒä“ædJðC®mdÛUÁý=ŽM‹—€½ §>;Ó‡…èÈpGY¤—GyžÄ‹KrBŽdÙÏâË­^?mË7u!p˜| ö”š 9q·y7ÈèzÚ!A+ÓÇñ[ÿ*˜âPØ”ûÍ& ¹¢ZýÞŒTß”¦¼›½GxœTMoÛ0 =G¿‚h.ޤØ9§6lXO½ì(¨kS$C¢ÒEÿû(t¶›»Øà#ùù${ko°w÷ß??¨¯bË‘õø[ëk— ÂMÄs <´7B$й&xÒîFx›K°¤Ñ¤bc=A%¤ºU›]µ,—{N‚,Ç‘¡’‡¥ñJSöÉž<¨[Í@jõ§ÝRíÿ›FµÚ¡ö¹{×7ñžEÄYØÚD!>ÏíÜ,º`| ݼ"b?ŠªCŒ¹#bMª Ù›£xåô­„ìBäIZÍ„S ÞÁðP r·¢ßa˜X%ý¼ÞaxïYÍ'×_F»Añ>h]vHGVIÐÄpæ32Ö2ò(3¨>W ,Rè’[ʧh ÕpºEæ û¹Çr|“Öj‘I¡áêª(À~â½*¶ÖúÖÀ6A*ÔbãëÐë3…¡ªÏ ¼pÑ.—Ì¡ ¶bR.œ”AÒÖ¥7VmŒ%¼fûð7;eÙHÝuȃ±“(·VföWv}jöܹ=|°¸Ølþ±ûÒ“«S{æn÷._½7¥r•èo?Q§ š«åèf_uùO”»¼ ѽ± °Ó¥Xñ'³†Û´/xœuRÑn1|Ž¿b%^’J>àªJ ¡jE+r(–±÷¸Uûd¯ªªÿsä Éƒ%Ïxv¼žõˆ*k°‚§²(WOr.F ‘ÅwBŒÈê&„/ ¹Ûú«hã´kœ—;–ÇÄÕs)‡ÂY1-ǧÔê×´(gÓ3n2/ÜjQ.‹É÷ vñó~Y,&ó±ø› ØGÍpv9Y ’,1©&WºV²µWV×èl`8’+ôh5æÇºýÚ…©-Zó¶–½Ò/8`ëvÊÛî2(k ÊcÊbÛFF&z²h½ÓÂaë*ଡŽLT ÔL©È©zK¬ÖÍÐÀÎùC^¦Å¿/¸Ó†NŸ”.À½¬¨7yøöcYÕ^hÚônÚç}„Ï Ê$«hs}ªî”Ã9ÑDCçÈ@¦×7¹À=£·Ð÷÷Ï*”ýçøäÜc£˜:”­â:ä¢÷{?NM¶)Óëÿfœ…›ÄÉû©¥1RiRï_>”ü0 ÒJCëhI(„6qC„¨µÚ©**@]QºäF)úàUÆ`õ^D·*(E›‹~UÉc-”ÚÈÛh~Š$…ȧ¸áTÜ–l±àã¢O2Eÿ—Áƒ˜ô-‰Š)ñlƒ·eJ5ÙE¥Ô•¶¬¨4J{ÌçµcóåÄÁÇS†ƒ‹Ó]™âÀ ºŽPëübª§yεcì(”R;ûÌ”ýð÷ÏÛîì"2Ìh‘pT—‹7sÄGxœ ßÿŸŸ°“˜Ìá°8©¾ÅÍ/~dŒ´)¡“§xêewؘ™$D Ïë{ŠÆ•/,@¦ÄÑõxœ[Â2—eƒ, ~ºï™ˆ—Ùææ¶v=:nÄÜ[„[gitdb2-2.0.3/gitdb/test/fixtures/packs/pack-c0438c19fb16422b6bbcce24387b3264416d485b.idx0000644000076600000240000000516012637461244027112 0ustar byronstaff00000000000000  !!!"#$$$$%%%%&''''(()))))))))++,,,,,,,,,-....////////00011222334466667788888899999:;;;;<<<<<<<<>>>>>>>??@@@@BBBCCCCCC‚fkÖoé¶Y•žmõ`æ6«h.˜­&Va©¹äuÐø§½mûBç’~A9ÌêÃ$êvÞvTxOÎ N‰°­†ž5mÚóîõ¢ØÚª÷ØEù¤­›ëò8ˆK™4‡«…7‹ý¥¯2I¨=fJü‰ÉŽmÖµ *‚ù¯4gp^› #s`yè:X.CE5ý''·ÎãŸèêü±Š×°¢Éè–Ü@u¶O‹¿œ c4r ï'Ò>Ñ¥F°@Ìõ¡é_bØ@ 'Op$úC ‹³çB F_šŒ‘Ѽd=ú穹Ã.7–DªÔ&Ó¸>Ú>_5àfÌY ¸JÙPû]Û ì°ÍT˜ÖìÃ}D¿‡DvGSˆB- ÞMB@b‘˜œIU?t(LW‘æWé Â ôô+Œ¥³Å6ºò¼fY|~©ˆcD ù È`õºp‘"ù€YºLH·–m³LcE¤E« â5¬ƒB[Ñ…˜ÄiÊ ‰¿yeÚ¡R>Øf’œaLMBØÑJÝ ù&­[,àˆÛ^«a½žå ¶Mrc4YÎ.e?nûvüiã:G¹†ù¬ÃTêဴøþ¨W;*lõÈŠ¯8â…>oÒãÍÖÁ€ËD»rÉHOÙü«^ü-ƯÓËœj}Pw@~gÜ©~¸RtÆž.tiáÔÔ ;®&z ° FºŒI×)܈êb—P|¡CMt¶RùbƽýÝþ u€-Jˆ"e&eþ*‡n‹#ãìh™Íª#ºŽŠžNîÄP[,]"å&oHRç_ ‹ÙÃ%açM'ú̘¢j¢Ëg<œaŽí‡ºZ·Ž´cV2ÂCYgÐØd¤ÝñÜ59ƒÃdŒNåy5c=•`iy'[F)¤w‰p\t_ÕlàÉÞ¤·¨”åg&Zù¦š0Ý\W„9¶DNPM¿¡˜Ìá°8©¾ÅÍ/~dŒ´)¡`"™à#5¢âi>2º¨+%œ#„?* ‘²öSöõ¯ç ‡X× ;Ý¿>f¾¯ uŸ *,«š1/Ch€•m —¾(ù©wDÎ 0ñ‹ #Ó 7îùefr¨cNmŸóv0¨­pšáÝÞD£M¯k­‹+÷ÏÛîì"2Ìh‘pT—‹7sÄG½ï÷÷‘Ùkš4ïÛK|S ¹­ÃÖ§÷úì"‘Ùæ"ÇmͳïЇl^>o(~ºï™ˆ—Ùææ¶v=:nÄÜ[„[Z+ ïsÿé…2߆#+dƒ µ6gitdb2-2.0.3/gitdb/test/fixtures/packs/pack-a2bf8e71d8c18879e499335762dd95119d93d9f1.pack0000644000076600000240000000722412637461244027251 0ustar byronstaff00000000000000PACK*Ÿ xœËA! @Ñ=§`ob 3EHŒñz¶‡df0ˆ o/gpùòzSµóƒ$¥˜r ,ÈÈ·‰1z˜A0ܽyQÓ½ÛC$aRÎ9Òä†|,‰SÉ#ÀЧ/µÙ›2½{¡ÝÞ—¢«=ó·Õ½lõúܨ¬G©ÛÅ:N ÚøÇÝJïú¯7â͆1C,Ÿ xœËM B!ཧp„Îø Ý¡.àèØòf‹n_ghûÁ·&³´˜u‰¥’­*:2mÒ6£5äÚiñL“÷%£ð6¨ª‘ëZ$ò•±¹ÄH ×(Ò{mcÊ+Sz­–vyÛ?ä‰>sì­Ë½§ö8æÑÏRCp•SF(%~ÚÛZüïÄp;C(Ÿ xœËM @á=§`ob¦ÃÏ@bŒwÐ e°$m1ˆ ooÏàö}y£‹hÈ‘ÐS2çÌ.àD„¶LÈɤb-°W/î²-ÄB7Ä䈔(‰MFbô!ä`“eÅŸ±´®ï¾Gå]?–*«¾¤oo{ÝÚí¹q]ÏsÛ®zÂà£>¨£nu ù÷W3ª!ÑB¸Ÿ xœËK Â0Ð}N‘½ ÓÉ· âô™LÆšVb\x{{·Þè¥è‰Èsƒ^Í¢P´ÂÖ1ˆ & „@¨^©—mhOž &K9KA6â8FFJa@ìñUúŒeïú^(½GM›~,µ¬úBß¾oµí·gKu=ç½]õ„Ñ;nöú muŒòïWÕoDqŸ xœËM Â0@á}N‘½ ùi2ñz™djM+1.¼½=ƒ»Çot-Åû4gæE¨dOÙ'£íÄYõ¢.ÛÐ%rœŒ€ddk!‘Ø8;ÀQbÊ&!(Š>cÙ»¾ Ó{TÚôc©²ê û¾Õ¶ßžêzÎ{»jë0oBòúdœ1êÐVÇ•úkD[Ÿ xœËA @Ñ=§`ob`HŒñz ƒ%)Å .¼½=ƒËÿ’?³\C†`)GEÆ9LÅëd“ pTˆ)”PŠxÅÁû”„€ZtÉx o êD|²DžM#?síCÞ9Å÷¬q—µò&/é;ú^[¿=[¬Û9÷v•¼³¨lÐò¤@)qh«sò¿¿È ~”ëAΟ xœŒI!"»‰a_cüƒ~ ‡d âÁß˼Vªj"Žè¬èš"“.`držt.(ŒA‰1ËÙ “G\&‰ÚI(2¨@`µH–dµÑƒrà|æÖ¿Â{V8øc«´ó ~G?jë·gƒºŸSoW.UpkbCà'¡„`‹¶:'ýÛ³¤ØϼC€Ÿ xœËQ !ÐOᣫ£BDw¨ Œãl+äfݾÎÐïƒ7‡ˆ^J@’Bœ å- Bë‰ØHè,³&QO²Om©¤%Ûìx%EæÀ¡PÄœ£““¢÷ÜúÐWÉôš•v}Ûª<ô)Fßkë—{£ú8rogmlD¿€^À¨Ÿ¶:§üû[õá»C°Ÿ xœËQ !ÐOá:îŒ Ý¡.0êl+äfݾÎÐïƒ7‡ˆ^ Ø1RʸÚL‰lˆ‹Ñ ™™$gõä!ûÔì aB‰Þ2•ƒÇòJnaÇ΃Nà¿çÖ‡¾Jâ׬¼ëÛVå¡Oé3ú^[¿Ü×Ç1÷vÖ¡3@ £~ÚêœòïWÔŠçC+Ÿ xœËK Â0Ð}N‘½ ÓÉD¼ƒ^`&Ø@ÓJŒ ooÏàöÁ]Dû’ çb‹ÐELH6‡@ɹ ~æ‰Õ‹ºlC[ŽèèÌn.b ³‡HIÈúèlælˆ}EŸ±ì]ß…é=*mú±TYõ…¿}ßjÛoÏFu=ç½]õ„Ñ;.D}P‡¶:†üûUFõ¦\C‚Ÿ xœËM @á=§`ob¦ÃO!1Æ;è˜é`IJ1ˆ ooÏàöå{£‹èHœ BF²™8Dæ8¡a¶ náLh½7Q½R—}hŒ>Ò2»0K°Ð¥xÈy^<z2VTúŒµu}JïQÒ®k‘M_èÛÛ^j»=k*Û™[½ê ƒwœú ŽZËòï¯Õ­¬CUŸ xœÌK Â0@ÑyV‘¹ ï“‚ˆ{Ð ¼¤/6Ð6ãÀÝÛ58½pîèªVRˆ9dOÅeÊÉÇ2q*Ó•{!ŽŒæ%]·aSŒ(&=#Š#FÊT˜²ÏÅ%Œbä3æÖí]“¼G•Í>檋½¤oo[]Ûí¹J]޹­W‹t ~?¸`@f¯kCÿõ&“ùî×B'Ÿ xœËM Â0@á}N‘½ “ßÉ€ˆwÐ LÚŒ ´Ä¸ðöö nß½,frR­ÉõúÌ(éj^ádÎv1Þû Úh­†ÍÒ;ÿÛ«[‘%øÔZ~;ø¢xœ340031Qrutñueø¹ïØúK>5·VÝÜÐtšÕe‘OÓû`Ý|½xœ%ÇÁ €0ÀªØ lCÚBÔƒ,„œ\VÄîUüÍŒÔr«x;2Žß•kä¸qvÛ!›,ò&\TÁH!ìðNyÐúÒD¨XØ+«Õ1KDŸ!¢xœ340031QrutñueØë¶Û>zË©Ãrÿ{즿;/7}µm d€xœ‹ ˜ØŽ¢xœ340031Qrutñue˜ç¾9ïÞÿ!›‰_oàxs•å®7ȼ äd€>xœ‹uŸà´|¢xœ340031Qrutñueر*q_ËöÞúóß;^ÜpqÈ9Yh´Õ?ï½IxœuSÉnÛ0=‡_1·.¨©EÂ@Šë¦B'°äXP-±¡9*IÕÐßwHI±Ó´:‰Ãy ‡WWÓÇn”¿ï}ƒ†]‹Ç*(Úá_«Â ÛCçdA/­(=”o€0`e‹Ny´J:þš­Üo$Ô–Ú'Be`Ó=”V OÜô˶¸‡{+G3{”ÖH ÂT°h,q= ã¼¾!ö>J¿OÍŽfÎùÿÄ/áíŽÖè$Ìó;´`;c”©£›uÔz‹åSP¿Ue#¤†¯ˆ¶:Bb‡üÕ)²ùcÙ:ߦ«UºÍîÖ'!RŒÙzì ¿%Tx0E’#A‡-%”XÉ9cgcÀNú®åmÄy¡5;c¤ªšƒ0>¤Ž…˜ 0uîÑJÂ)ÝÏ1 Vý‘jåò¸ÅR¨%§ŠÎ+lEù$jò! r¤»¦z²"b¿ðóA£ñ¾'IÛ·Šüm×Éq¤XjNk!­*Ëï6‹%{5ho\°(Ëo¡´(4y2ázi¢°sqhõ­+>À¡¡Kšœá–¢ÁÑ\=ÁkÊÒ»Pž –““Φ+x‰û亷´qr„ Yj ©tŽæ…øƒÑX –_ ðï)MMò€8ÖÿEðý¿‘ŒÝ¦Ù*[ßÀ*Ë·/Çm:ŒÅ®u¼F¬µŒœ±’œ²dyþ°„í&]|_n^°<ÓÁˆÚ#תnE@´mä{ŽòâüòóåìyÄ’½ÒñÁJÇØ*[,×ùtÓtÕky€ëü ¬T)“ —2>†±vç쟌™mƒixœ›Ëyžm£¢ãæ*&e&ÃÏfxœ;϶–qÂZ ‚Á¢xœ340031Qrutñue{ù5öýÇÿ‡x>œIÛ‘vzÙ¶ŽÔrãiUxœ;϶Žiƒ.##o¢xœ340031QrutñueøºbêÓ¯6—²_¨éï.÷~S³ƒ‰]ÔÕ …i€xœ;Ï6‰yÃDFF.S¸¢xœ340031Qrutñue°z¸\ïãÇã+OÖ÷ôÚ$¶Ëò¶FÊ jg€Vxœ;ÏöŽeC xè¢xœ340031Qrutñue(®Úú¸ŸGkê; ÓÙEf.}*J·¼ iixœ;϶…uÃf&F.Øÿ¢xœ340031Qrutñuex·Y®~Ëò£ñÕŽÅþ°åî4¾ã Ç iUxœ;Ï6mƒ3#¢G¢xœ340031QrutñuexpG§âò^[‘Kœlk+YëósJ¬µø õ¢xœ340031Qrutñue¸bîÂ05yQæM¹U׋vçGþb>p µ¿ Lh‡,xœ›Ëù‡c£b bý¢xœ340031Qrutñue¨Øw™ëŒ©i ÛVA…EÏ/Íây}í µ :¢xœ340031Qrutñueøhi)¢²â˜òÚµŸ,zÖ·‹›Ð µ´ ¼äˆxœ›ËÙ͹Á—QÈ1%%³$3?‹ËÓ/8ÄÑLJks<#ãæj&%&Ë7 ¢xœ340031Qrutñue–[ñ³jæ»'Re7ýE.Ü^Q“Ä Äïˆvxœ›Ë9‡sÂ9É ×ÀPÏ W_W¿`.[$0ñL#׿xF.ÆÍÕLJLa# ¯>¨LÑ»¡ *×6¤`cP‚ƒ>Ygitdb2-2.0.3/gitdb/test/performance/0000755000076600000240000000000013163135565017525 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/performance/test_pack.py0000644000076600000240000001242413112567220022046 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Performance tests for object store""" from __future__ import print_function from gitdb.test.performance.lib import ( TestBigRepoR ) from gitdb import ( MemoryDB, GitDB, IStream, ) from gitdb.typ import str_blob_type from gitdb.exc import UnsupportedOperation from gitdb.db.pack import PackedDB from gitdb.utils.compat import xrange from gitdb.test.lib import skip_on_travis_ci import sys import os from time import time class TestPackedDBPerformance(TestBigRepoR): @skip_on_travis_ci def test_pack_random_access(self): pdb = PackedDB(os.path.join(self.gitrepopath, "objects/pack")) # sha lookup st = time() sha_list = list(pdb.sha_iter()) elapsed = time() - st ns = len(sha_list) print("PDB: looked up %i shas by index in %f s ( %f shas/s )" % (ns, elapsed, ns / (elapsed or 1)), file=sys.stderr) # sha lookup: best-case and worst case access pdb_pack_info = pdb._pack_info # END shuffle shas st = time() for sha in sha_list: pdb_pack_info(sha) # END for each sha to look up elapsed = time() - st # discard cache del(pdb._entities) pdb.entities() print("PDB: looked up %i sha in %i packs in %f s ( %f shas/s )" % (ns, len(pdb.entities()), elapsed, ns / (elapsed or 1)), file=sys.stderr) # END for each random mode # query info and streams only max_items = 10000 # can wait longer when testing memory for pdb_fun in (pdb.info, pdb.stream): st = time() for sha in sha_list[:max_items]: pdb_fun(sha) elapsed = time() - st print("PDB: Obtained %i object %s by sha in %f s ( %f items/s )" % (max_items, pdb_fun.__name__.upper(), elapsed, max_items / (elapsed or 1)), file=sys.stderr) # END for each function # retrieve stream and read all max_items = 5000 pdb_stream = pdb.stream total_size = 0 st = time() for sha in sha_list[:max_items]: stream = pdb_stream(sha) read_len = len(stream.read()) assert read_len == stream.size total_size += stream.size elapsed = time() - st total_kib = total_size / 1000 print("PDB: Obtained %i streams by sha and read all bytes totallying %i KiB ( %f KiB / s ) in %f s ( %f streams/s )" % (max_items, total_kib, total_kib / (elapsed or 1), elapsed, max_items / (elapsed or 1)), file=sys.stderr) @skip_on_travis_ci def test_loose_correctness(self): """based on the pack(s) of our packed object DB, we will just copy and verify all objects in the back into the loose object db (memory). This should help finding dormant issues like this one https://github.com/gitpython-developers/GitPython/issues/220 faster :note: It doesn't seem this test can find the issue unless the given pack contains highly compressed data files, like archives.""" from gitdb.util import bin_to_hex pdb = GitDB(os.path.join(self.gitrepopath, 'objects')) mdb = MemoryDB() for c, sha in enumerate(pdb.sha_iter()): ostream = pdb.stream(sha) # the issue only showed on larger files which are hardly compressible ... if ostream.type != str_blob_type: continue istream = IStream(ostream.type, ostream.size, ostream.stream) mdb.store(istream) assert istream.binsha == sha, "Failed on object %s" % bin_to_hex(sha).decode('ascii') # this can fail ... sometimes, so the packs dataset should be huge assert len(mdb.stream(sha).read()) == ostream.size if c and c % 1000 == 0: print("Verified %i loose object compression/decompression cycles" % c, file=sys.stderr) mdb._cache.clear() # end for each sha to copy @skip_on_travis_ci def test_correctness(self): pdb = PackedDB(os.path.join(self.gitrepopath, "objects/pack")) # disabled for now as it used to work perfectly, checking big repositories takes a long time print("Endurance run: verify streaming of objects (crc and sha)", file=sys.stderr) for crc in range(2): count = 0 st = time() for entity in pdb.entities(): pack_verify = entity.is_valid_stream sha_by_index = entity.index().sha for index in xrange(entity.index().size()): try: assert pack_verify(sha_by_index(index), use_crc=crc) count += 1 except UnsupportedOperation: pass # END ignore old indices # END for each index # END for each entity elapsed = time() - st print("PDB: verified %i objects (crc=%i) in %f s ( %f objects/s )" % (count, crc, elapsed, count / (elapsed or 1)), file=sys.stderr) # END for each verify mode gitdb2-2.0.3/gitdb/test/performance/lib.py0000644000076600000240000000071212637461244020646 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Contains library functions""" from gitdb.test.lib import TestBase #{ Base Classes class TestBigRepoR(TestBase): """A placeholder in case we want to add additional functionality to all performance test-cases """ #} END base classes gitdb2-2.0.3/gitdb/test/performance/__init__.py0000644000076600000240000000000012637461244021625 0ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/test/performance/test_pack_streaming.py0000644000076600000240000000533713112567220024124 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Specific test for pack streams only""" from __future__ import print_function from gitdb.test.performance.lib import ( TestBigRepoR ) from gitdb.db.pack import PackedDB from gitdb.stream import NullStream from gitdb.pack import PackEntity from gitdb.test.lib import skip_on_travis_ci import os import sys from time import time class CountedNullStream(NullStream): __slots__ = '_bw' def __init__(self): self._bw = 0 def bytes_written(self): return self._bw def write(self, d): self._bw += NullStream.write(self, d) class TestPackStreamingPerformance(TestBigRepoR): @skip_on_travis_ci def test_pack_writing(self): # see how fast we can write a pack from object streams. # This will not be fast, as we take time for decompressing the streams as well ostream = CountedNullStream() pdb = PackedDB(os.path.join(self.gitrepopath, "objects/pack")) ni = 1000 count = 0 st = time() for sha in pdb.sha_iter(): count += 1 pdb.stream(sha) if count == ni: break # END gather objects for pack-writing elapsed = time() - st print("PDB Streaming: Got %i streams by sha in in %f s ( %f streams/s )" % (ni, elapsed, ni / (elapsed or 1)), file=sys.stderr) st = time() PackEntity.write_pack((pdb.stream(sha) for sha in pdb.sha_iter()), ostream.write, object_count=ni) elapsed = time() - st total_kb = ostream.bytes_written() / 1000 print(sys.stderr, "PDB Streaming: Wrote pack of size %i kb in %f s (%f kb/s)" % (total_kb, elapsed, total_kb / (elapsed or 1)), sys.stderr) @skip_on_travis_ci def test_stream_reading(self): # raise SkipTest() pdb = PackedDB(os.path.join(self.gitrepopath, "objects/pack")) # streaming only, meant for --with-profile runs ni = 5000 count = 0 pdb_stream = pdb.stream total_size = 0 st = time() for sha in pdb.sha_iter(): if count == ni: break stream = pdb_stream(sha) stream.read() total_size += stream.size count += 1 elapsed = time() - st total_kib = total_size / 1000 print(sys.stderr, "PDB Streaming: Got %i streams by sha and read all bytes totallying %i KiB ( %f KiB / s ) in %f s ( %f streams/s )" % (ni, total_kib, total_kib / (elapsed or 1), elapsed, ni / (elapsed or 1)), sys.stderr) gitdb2-2.0.3/gitdb/test/performance/test_stream.py0000644000076600000240000000722113112567220022422 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Performance data streaming performance""" from __future__ import print_function from gitdb.test.performance.lib import TestBigRepoR from gitdb.db import LooseObjectDB from gitdb import IStream from gitdb.util import bin_to_hex, remove from gitdb.fun import chunk_size from time import time import os import sys from gitdb.test.lib import ( make_memory_file, with_rw_directory, skip_on_travis_ci ) #{ Utilities def read_chunked_stream(stream): total = 0 while True: chunk = stream.read(chunk_size) total += len(chunk) if len(chunk) < chunk_size: break # END read stream loop assert total == stream.size return stream #} END utilities class TestObjDBPerformance(TestBigRepoR): large_data_size_bytes = 1000 * 1000 * 50 # some MiB should do it moderate_data_size_bytes = 1000 * 1000 * 1 # just 1 MiB @skip_on_travis_ci @with_rw_directory def test_large_data_streaming(self, path): ldb = LooseObjectDB(path) string_ios = list() # list of streams we previously created # serial mode for randomize in range(2): desc = (randomize and 'random ') or '' print("Creating %s data ..." % desc, file=sys.stderr) st = time() size, stream = make_memory_file(self.large_data_size_bytes, randomize) elapsed = time() - st print("Done (in %f s)" % elapsed, file=sys.stderr) string_ios.append(stream) # writing - due to the compression it will seem faster than it is st = time() sha = ldb.store(IStream('blob', size, stream)).binsha elapsed_add = time() - st assert ldb.has_object(sha) db_file = ldb.readable_db_object_path(bin_to_hex(sha)) fsize_kib = os.path.getsize(db_file) / 1000 size_kib = size / 1000 print("Added %i KiB (filesize = %i KiB) of %s data to loose odb in %f s ( %f Write KiB / s)" % (size_kib, fsize_kib, desc, elapsed_add, size_kib / (elapsed_add or 1)), file=sys.stderr) # reading all at once st = time() ostream = ldb.stream(sha) shadata = ostream.read() elapsed_readall = time() - st stream.seek(0) assert shadata == stream.getvalue() print("Read %i KiB of %s data at once from loose odb in %f s ( %f Read KiB / s)" % (size_kib, desc, elapsed_readall, size_kib / (elapsed_readall or 1)), file=sys.stderr) # reading in chunks of 1 MiB cs = 512 * 1000 chunks = list() st = time() ostream = ldb.stream(sha) while True: data = ostream.read(cs) chunks.append(data) if len(data) < cs: break # END read in chunks elapsed_readchunks = time() - st stream.seek(0) assert b''.join(chunks) == stream.getvalue() cs_kib = cs / 1000 print("Read %i KiB of %s data in %i KiB chunks from loose odb in %f s ( %f Read KiB / s)" % (size_kib, desc, cs_kib, elapsed_readchunks, size_kib / (elapsed_readchunks or 1)), file=sys.stderr) # del db file so we keep something to do ostream = None # To release the file handle (win) remove(db_file) # END for each randomization factor gitdb2-2.0.3/gitdb/test/test_base.py0000644000076600000240000000541412637461244017554 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Test for object db""" from gitdb.test.lib import ( TestBase, DummyStream, DeriveTest, ) from gitdb import ( OInfo, OPackInfo, ODeltaPackInfo, OStream, OPackStream, ODeltaPackStream, IStream ) from gitdb.util import ( NULL_BIN_SHA ) from gitdb.typ import ( str_blob_type ) class TestBaseTypes(TestBase): def test_streams(self): # test info sha = NULL_BIN_SHA s = 20 blob_id = 3 info = OInfo(sha, str_blob_type, s) assert info.binsha == sha assert info.type == str_blob_type assert info.type_id == blob_id assert info.size == s # test pack info # provides type_id pinfo = OPackInfo(0, blob_id, s) assert pinfo.type == str_blob_type assert pinfo.type_id == blob_id assert pinfo.pack_offset == 0 dpinfo = ODeltaPackInfo(0, blob_id, s, sha) assert dpinfo.type == str_blob_type assert dpinfo.type_id == blob_id assert dpinfo.delta_info == sha assert dpinfo.pack_offset == 0 # test ostream stream = DummyStream() ostream = OStream(*(info + (stream, ))) assert ostream.stream is stream ostream.read(15) stream._assert() assert stream.bytes == 15 ostream.read(20) assert stream.bytes == 20 # test packstream postream = OPackStream(*(pinfo + (stream, ))) assert postream.stream is stream postream.read(10) stream._assert() assert stream.bytes == 10 # test deltapackstream dpostream = ODeltaPackStream(*(dpinfo + (stream, ))) dpostream.stream is stream dpostream.read(5) stream._assert() assert stream.bytes == 5 # derive with own args DeriveTest(sha, str_blob_type, s, stream, 'mine', myarg=3)._assert() # test istream istream = IStream(str_blob_type, s, stream) assert istream.binsha == None istream.binsha = sha assert istream.binsha == sha assert len(istream.binsha) == 20 assert len(istream.hexsha) == 40 assert istream.size == s istream.size = s * 2 istream.size == s * 2 assert istream.type == str_blob_type istream.type = "something" assert istream.type == "something" assert istream.stream is stream istream.stream = None assert istream.stream is None assert istream.error is None istream.error = Exception() assert isinstance(istream.error, Exception) gitdb2-2.0.3/gitdb/test/test_stream.py0000644000076600000240000001320712637461244020134 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Test for object db""" from gitdb.test.lib import ( TestBase, DummyStream, make_bytes, make_object, fixture_path ) from gitdb import ( DecompressMemMapReader, FDCompressedSha1Writer, LooseObjectDB, Sha1Writer, MemoryDB, IStream, ) from gitdb.util import hex_to_bin import zlib from gitdb.typ import ( str_blob_type ) import tempfile import os from io import BytesIO class TestStream(TestBase): """Test stream classes""" data_sizes = (15, 10000, 1000 * 1024 + 512) def _assert_stream_reader(self, stream, cdata, rewind_stream=lambda s: None): """Make stream tests - the orig_stream is seekable, allowing it to be rewound and reused :param cdata: the data we expect to read from stream, the contents :param rewind_stream: function called to rewind the stream to make it ready for reuse""" ns = 10 assert len(cdata) > ns - 1, "Data must be larger than %i, was %i" % (ns, len(cdata)) # read in small steps ss = len(cdata) // ns for i in range(ns): data = stream.read(ss) chunk = cdata[i * ss:(i + 1) * ss] assert data == chunk # END for each step rest = stream.read() if rest: assert rest == cdata[-len(rest):] # END handle rest if isinstance(stream, DecompressMemMapReader): assert len(stream.data()) == stream.compressed_bytes_read() # END handle special type rewind_stream(stream) # read everything rdata = stream.read() assert rdata == cdata if isinstance(stream, DecompressMemMapReader): assert len(stream.data()) == stream.compressed_bytes_read() # END handle special type def test_decompress_reader(self): for close_on_deletion in range(2): for with_size in range(2): for ds in self.data_sizes: cdata = make_bytes(ds, randomize=False) # zdata = zipped actual data # cdata = original content data # create reader if with_size: # need object data zdata = zlib.compress(make_object(str_blob_type, cdata)) typ, size, reader = DecompressMemMapReader.new(zdata, close_on_deletion) assert size == len(cdata) assert typ == str_blob_type # even if we don't set the size, it will be set automatically on first read test_reader = DecompressMemMapReader(zdata, close_on_deletion=False) assert test_reader._s == len(cdata) else: # here we need content data zdata = zlib.compress(cdata) reader = DecompressMemMapReader(zdata, close_on_deletion, len(cdata)) assert reader._s == len(cdata) # END get reader self._assert_stream_reader(reader, cdata, lambda r: r.seek(0)) # put in a dummy stream for closing dummy = DummyStream() reader._m = dummy assert not dummy.closed del(reader) assert dummy.closed == close_on_deletion # END for each datasize # END whether size should be used # END whether stream should be closed when deleted def test_sha_writer(self): writer = Sha1Writer() assert 2 == writer.write("hi".encode("ascii")) assert len(writer.sha(as_hex=1)) == 40 assert len(writer.sha(as_hex=0)) == 20 # make sure it does something ;) prev_sha = writer.sha() writer.write("hi again".encode("ascii")) assert writer.sha() != prev_sha def test_compressed_writer(self): for ds in self.data_sizes: fd, path = tempfile.mkstemp() ostream = FDCompressedSha1Writer(fd) data = make_bytes(ds, randomize=False) # for now, just a single write, code doesn't care about chunking assert len(data) == ostream.write(data) ostream.close() # its closed already self.failUnlessRaises(OSError, os.close, fd) # read everything back, compare to data we zip fd = os.open(path, os.O_RDONLY | getattr(os, 'O_BINARY', 0)) written_data = os.read(fd, os.path.getsize(path)) assert len(written_data) == os.path.getsize(path) os.close(fd) assert written_data == zlib.compress(data, 1) # best speed os.remove(path) # END for each os def test_decompress_reader_special_case(self): odb = LooseObjectDB(fixture_path('objects')) mdb = MemoryDB() for sha in (b'888401851f15db0eed60eb1bc29dec5ddcace911', b'7bb839852ed5e3a069966281bb08d50012fb309b',): ostream = odb.stream(hex_to_bin(sha)) # if there is a bug, we will be missing one byte exactly ! data = ostream.read() assert len(data) == ostream.size # Putting it back in should yield nothing new - after all, we have dump = mdb.store(IStream(ostream.type, ostream.size, BytesIO(data))) assert dump.hexsha == sha # end for each loose object sha to test gitdb2-2.0.3/gitdb/util.py0000644000076600000240000003021313112567220015562 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php import binascii import os import mmap import sys import time import errno from io import BytesIO from smmap import ( StaticWindowMapManager, SlidingWindowMapManager, SlidingWindowMapBuffer ) # initialize our global memory manager instance # Use it to free cached (and unused) resources. if sys.version_info < (2, 6): mman = StaticWindowMapManager() else: mman = SlidingWindowMapManager() # END handle mman import hashlib try: from struct import unpack_from except ImportError: from struct import unpack, calcsize __calcsize_cache = dict() def unpack_from(fmt, data, offset=0): try: size = __calcsize_cache[fmt] except KeyError: size = calcsize(fmt) __calcsize_cache[fmt] = size # END exception handling return unpack(fmt, data[offset: offset + size]) # END own unpack_from implementation #{ Aliases hex_to_bin = binascii.a2b_hex bin_to_hex = binascii.b2a_hex # errors ENOENT = errno.ENOENT # os shortcuts exists = os.path.exists mkdir = os.mkdir chmod = os.chmod isdir = os.path.isdir isfile = os.path.isfile rename = os.rename dirname = os.path.dirname basename = os.path.basename join = os.path.join read = os.read write = os.write close = os.close fsync = os.fsync def _retry(func, *args, **kwargs): # Wrapper around functions, that are problematic on "Windows". Sometimes # the OS or someone else has still a handle to the file if sys.platform == "win32": for _ in range(10): try: return func(*args, **kwargs) except Exception: time.sleep(0.1) return func(*args, **kwargs) else: return func(*args, **kwargs) def remove(*args, **kwargs): return _retry(os.remove, *args, **kwargs) # Backwards compatibility imports from gitdb.const import ( NULL_BIN_SHA, NULL_HEX_SHA ) #} END Aliases #{ compatibility stuff ... class _RandomAccessBytesIO(object): """Wrapper to provide required functionality in case memory maps cannot or may not be used. This is only really required in python 2.4""" __slots__ = '_sio' def __init__(self, buf=''): self._sio = BytesIO(buf) def __getattr__(self, attr): return getattr(self._sio, attr) def __len__(self): return len(self.getvalue()) def __getitem__(self, i): return self.getvalue()[i] def __getslice__(self, start, end): return self.getvalue()[start:end] def byte_ord(b): """ Return the integer representation of the byte string. This supports Python 3 byte arrays as well as standard strings. """ try: return ord(b) except TypeError: return b #} END compatibility stuff ... #{ Routines def make_sha(source=''.encode("ascii")): """A python2.4 workaround for the sha/hashlib module fiasco **Note** From the dulwich project """ try: return hashlib.sha1(source) except NameError: import sha sha1 = sha.sha(source) return sha1 def allocate_memory(size): """:return: a file-protocol accessible memory block of the given size""" if size == 0: return _RandomAccessBytesIO(b'') # END handle empty chunks gracefully try: return mmap.mmap(-1, size) # read-write by default except EnvironmentError: # setup real memory instead # this of course may fail if the amount of memory is not available in # one chunk - would only be the case in python 2.4, being more likely on # 32 bit systems. return _RandomAccessBytesIO(b"\0" * size) # END handle memory allocation def file_contents_ro(fd, stream=False, allow_mmap=True): """:return: read-only contents of the file represented by the file descriptor fd :param fd: file descriptor opened for reading :param stream: if False, random access is provided, otherwise the stream interface is provided. :param allow_mmap: if True, its allowed to map the contents into memory, which allows large files to be handled and accessed efficiently. The file-descriptor will change its position if this is False""" try: if allow_mmap: # supports stream and random access try: return mmap.mmap(fd, 0, access=mmap.ACCESS_READ) except EnvironmentError: # python 2.4 issue, 0 wants to be the actual size return mmap.mmap(fd, os.fstat(fd).st_size, access=mmap.ACCESS_READ) # END handle python 2.4 except OSError: pass # END exception handling # read manully contents = os.read(fd, os.fstat(fd).st_size) if stream: return _RandomAccessBytesIO(contents) return contents def file_contents_ro_filepath(filepath, stream=False, allow_mmap=True, flags=0): """Get the file contents at filepath as fast as possible :return: random access compatible memory of the given filepath :param stream: see ``file_contents_ro`` :param allow_mmap: see ``file_contents_ro`` :param flags: additional flags to pass to os.open :raise OSError: If the file could not be opened **Note** for now we don't try to use O_NOATIME directly as the right value needs to be shared per database in fact. It only makes a real difference for loose object databases anyway, and they use it with the help of the ``flags`` parameter""" fd = os.open(filepath, os.O_RDONLY | getattr(os, 'O_BINARY', 0) | flags) try: return file_contents_ro(fd, stream, allow_mmap) finally: close(fd) # END assure file is closed def sliding_ro_buffer(filepath, flags=0): """ :return: a buffer compatible object which uses our mapped memory manager internally ready to read the whole given filepath""" return SlidingWindowMapBuffer(mman.make_cursor(filepath), flags=flags) def to_hex_sha(sha): """:return: hexified version of sha""" if len(sha) == 40: return sha return bin_to_hex(sha) def to_bin_sha(sha): if len(sha) == 20: return sha return hex_to_bin(sha) #} END routines #{ Utilities class LazyMixin(object): """ Base class providing an interface to lazily retrieve attribute values upon first access. If slots are used, memory will only be reserved once the attribute is actually accessed and retrieved the first time. All future accesses will return the cached value as stored in the Instance's dict or slot. """ __slots__ = tuple() def __getattr__(self, attr): """ Whenever an attribute is requested that we do not know, we allow it to be created and set. Next time the same attribute is reqeusted, it is simply returned from our dict/slots. """ self._set_cache_(attr) # will raise in case the cache was not created return object.__getattribute__(self, attr) def _set_cache_(self, attr): """ This method should be overridden in the derived class. It should check whether the attribute named by attr can be created and cached. Do nothing if you do not know the attribute or call your subclass The derived class may create as many additional attributes as it deems necessary in case a git command returns more information than represented in the single attribute.""" pass class LockedFD(object): """ This class facilitates a safe read and write operation to a file on disk. If we write to 'file', we obtain a lock file at 'file.lock' and write to that instead. If we succeed, the lock file will be renamed to overwrite the original file. When reading, we obtain a lock file, but to prevent other writers from succeeding while we are reading the file. This type handles error correctly in that it will assure a consistent state on destruction. **note** with this setup, parallel reading is not possible""" __slots__ = ("_filepath", '_fd', '_write') def __init__(self, filepath): """Initialize an instance with the givne filepath""" self._filepath = filepath self._fd = None self._write = None # if True, we write a file def __del__(self): # will do nothing if the file descriptor is already closed if self._fd is not None: self.rollback() def _lockfilepath(self): return "%s.lock" % self._filepath def open(self, write=False, stream=False): """ Open the file descriptor for reading or writing, both in binary mode. :param write: if True, the file descriptor will be opened for writing. Other wise it will be opened read-only. :param stream: if True, the file descriptor will be wrapped into a simple stream object which supports only reading or writing :return: fd to read from or write to. It is still maintained by this instance and must not be closed directly :raise IOError: if the lock could not be retrieved :raise OSError: If the actual file could not be opened for reading **note** must only be called once""" if self._write is not None: raise AssertionError("Called %s multiple times" % self.open) self._write = write # try to open the lock file binary = getattr(os, 'O_BINARY', 0) lockmode = os.O_WRONLY | os.O_CREAT | os.O_EXCL | binary try: fd = os.open(self._lockfilepath(), lockmode, int("600", 8)) if not write: os.close(fd) else: self._fd = fd # END handle file descriptor except OSError: raise IOError("Lock at %r could not be obtained" % self._lockfilepath()) # END handle lock retrieval # open actual file if required if self._fd is None: # we could specify exlusive here, as we obtained the lock anyway try: self._fd = os.open(self._filepath, os.O_RDONLY | binary) except: # assure we release our lockfile remove(self._lockfilepath()) raise # END handle lockfile # END open descriptor for reading if stream: # need delayed import from gitdb.stream import FDStream return FDStream(self._fd) else: return self._fd # END handle stream def commit(self): """When done writing, call this function to commit your changes into the actual file. The file descriptor will be closed, and the lockfile handled. **Note** can be called multiple times""" self._end_writing(successful=True) def rollback(self): """Abort your operation without any changes. The file descriptor will be closed, and the lock released. **Note** can be called multiple times""" self._end_writing(successful=False) def _end_writing(self, successful=True): """Handle the lock according to the write mode """ if self._write is None: raise AssertionError("Cannot end operation if it wasn't started yet") if self._fd is None: return os.close(self._fd) self._fd = None lockfile = self._lockfilepath() if self._write and successful: # on windows, rename does not silently overwrite the existing one if sys.platform == "win32": if isfile(self._filepath): remove(self._filepath) # END remove if exists # END win32 special handling os.rename(lockfile, self._filepath) # assure others can at least read the file - the tmpfile left it at rw-- # We may also write that file, on windows that boils down to a remove- # protection as well chmod(self._filepath, int("644", 8)) else: # just delete the file so far, we failed remove(lockfile) # END successful handling #} END utilities gitdb2-2.0.3/gitdb/__init__.py0000644000076600000240000000207013163134535016351 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Initialize the object database module""" import sys import os #{ Initialization def _init_externals(): """Initialize external projects by putting them into the path""" for module in ('smmap',): sys.path.append(os.path.join(os.path.dirname(__file__), 'ext', module)) try: __import__(module) except ImportError: raise ImportError("'%s' could not be imported, assure it is located in your PYTHONPATH" % module) # END verify import # END handel imports #} END initialization _init_externals() __author__ = "Sebastian Thiel" __contact__ = "byronimo@gmail.com" __homepage__ = "https://github.com/gitpython-developers/gitdb" version_info = (2, 0, 3) __version__ = '.'.join(str(i) for i in version_info) # default imports from gitdb.base import * from gitdb.db import * from gitdb.stream import * gitdb2-2.0.3/gitdb/utils/0000755000076600000240000000000013163135565015405 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/utils/compat.py0000644000076600000240000000210512637461244017241 0ustar byronstaff00000000000000import sys PY3 = sys.version_info[0] == 3 try: from itertools import izip xrange = xrange except ImportError: # py3 izip = zip xrange = range # end handle python version try: # Python 2 buffer = buffer memoryview = buffer # Assume no memory view ... def to_bytes(i): return i except NameError: # Python 3 has no `buffer`; only `memoryview` # However, it's faster to just slice the object directly, maybe it keeps a view internally def buffer(obj, offset, size=None): if size is None: # return memoryview(obj)[offset:] return obj[offset:] else: # return memoryview(obj)[offset:offset+size] return obj[offset:offset + size] # end buffer reimplementation # smmap can return memory view objects, which can't be compared as buffers/bytes can ... def to_bytes(i): if isinstance(i, memoryview): return i.tobytes() return i memoryview = memoryview try: MAXSIZE = sys.maxint except AttributeError: MAXSIZE = sys.maxsize gitdb2-2.0.3/gitdb/utils/encoding.py0000644000076600000240000000115112637461244017544 0ustar byronstaff00000000000000from gitdb.utils import compat if compat.PY3: string_types = (str, ) text_type = str else: string_types = (basestring, ) text_type = unicode def force_bytes(data, encoding="ascii"): if isinstance(data, bytes): return data if isinstance(data, string_types): return data.encode(encoding) return data def force_text(data, encoding="utf-8"): if isinstance(data, text_type): return data if isinstance(data, bytes): return data.decode(encoding) if compat.PY3: return text_type(data, encoding) else: return text_type(data) gitdb2-2.0.3/gitdb/utils/__init__.py0000644000076600000240000000000012637461244017505 0ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/typ.py0000644000076600000240000000057312637461244015441 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Module containing information about types known to the database""" str_blob_type = b'blob' str_commit_type = b'commit' str_tree_type = b'tree' str_tag_type = b'tag' gitdb2-2.0.3/gitdb/stream.py0000644000076600000240000006607413000652563016117 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php from io import BytesIO import mmap import os import sys import zlib from gitdb.fun import ( msb_size, stream_copy, apply_delta_data, connect_deltas, delta_types ) from gitdb.util import ( allocate_memory, LazyMixin, make_sha, write, close, ) from gitdb.const import NULL_BYTE, BYTE_SPACE from gitdb.utils.compat import buffer from gitdb.utils.encoding import force_bytes has_perf_mod = False PY26 = sys.version_info[:2] < (2, 7) try: from gitdb_speedups._perf import apply_delta as c_apply_delta has_perf_mod = True except ImportError: pass __all__ = ('DecompressMemMapReader', 'FDCompressedSha1Writer', 'DeltaApplyReader', 'Sha1Writer', 'FlexibleSha1Writer', 'ZippedStoreShaWriter', 'FDCompressedSha1Writer', 'FDStream', 'NullStream') #{ RO Streams class DecompressMemMapReader(LazyMixin): """Reads data in chunks from a memory map and decompresses it. The client sees only the uncompressed data, respective file-like read calls are handling on-demand buffered decompression accordingly A constraint on the total size of bytes is activated, simulating a logical file within a possibly larger physical memory area To read efficiently, you clearly don't want to read individual bytes, instead, read a few kilobytes at least. **Note:** The chunk-size should be carefully selected as it will involve quite a bit of string copying due to the way the zlib is implemented. Its very wasteful, hence we try to find a good tradeoff between allocation time and number of times we actually allocate. An own zlib implementation would be good here to better support streamed reading - it would only need to keep the mmap and decompress it into chunks, that's all ... """ __slots__ = ('_m', '_zip', '_buf', '_buflen', '_br', '_cws', '_cwe', '_s', '_close', '_cbr', '_phi') max_read_size = 512 * 1024 # currently unused def __init__(self, m, close_on_deletion, size=None): """Initialize with mmap for stream reading :param m: must be content data - use new if you have object data and no size""" self._m = m self._zip = zlib.decompressobj() self._buf = None # buffer of decompressed bytes self._buflen = 0 # length of bytes in buffer if size is not None: self._s = size # size of uncompressed data to read in total self._br = 0 # num uncompressed bytes read self._cws = 0 # start byte of compression window self._cwe = 0 # end byte of compression window self._cbr = 0 # number of compressed bytes read self._phi = False # is True if we parsed the header info self._close = close_on_deletion # close the memmap on deletion ? def _set_cache_(self, attr): assert attr == '_s' # only happens for size, which is a marker to indicate we still # have to parse the header from the stream self._parse_header_info() def __del__(self): self.close() def _parse_header_info(self): """If this stream contains object data, parse the header info and skip the stream to a point where each read will yield object content :return: parsed type_string, size""" # read header # should really be enough, cgit uses 8192 I believe # And for good reason !! This needs to be that high for the header to be read correctly in all cases maxb = 8192 self._s = maxb hdr = self.read(maxb) hdrend = hdr.find(NULL_BYTE) typ, size = hdr[:hdrend].split(BYTE_SPACE) size = int(size) self._s = size # adjust internal state to match actual header length that we ignore # The buffer will be depleted first on future reads self._br = 0 hdrend += 1 self._buf = BytesIO(hdr[hdrend:]) self._buflen = len(hdr) - hdrend self._phi = True return typ, size #{ Interface @classmethod def new(self, m, close_on_deletion=False): """Create a new DecompressMemMapReader instance for acting as a read-only stream This method parses the object header from m and returns the parsed type and size, as well as the created stream instance. :param m: memory map on which to operate. It must be object data ( header + contents ) :param close_on_deletion: if True, the memory map will be closed once we are being deleted""" inst = DecompressMemMapReader(m, close_on_deletion, 0) typ, size = inst._parse_header_info() return typ, size, inst def data(self): """:return: random access compatible data we are working on""" return self._m def close(self): """Close our underlying stream of compressed bytes if this was allowed during initialization :return: True if we closed the underlying stream :note: can be called safely """ if self._close: if hasattr(self._m, 'close'): self._m.close() self._close = False # END handle resource freeing def compressed_bytes_read(self): """ :return: number of compressed bytes read. This includes the bytes it took to decompress the header ( if there was one )""" # ABSTRACT: When decompressing a byte stream, it can be that the first # x bytes which were requested match the first x bytes in the loosely # compressed datastream. This is the worst-case assumption that the reader # does, it assumes that it will get at least X bytes from X compressed bytes # in call cases. # The caveat is that the object, according to our known uncompressed size, # is already complete, but there are still some bytes left in the compressed # stream that contribute to the amount of compressed bytes. # How can we know that we are truly done, and have read all bytes we need # to read ? # Without help, we cannot know, as we need to obtain the status of the # decompression. If it is not finished, we need to decompress more data # until it is finished, to yield the actual number of compressed bytes # belonging to the decompressed object # We are using a custom zlib module for this, if its not present, # we try to put in additional bytes up for decompression if feasible # and check for the unused_data. # Only scrub the stream forward if we are officially done with the # bytes we were to have. if self._br == self._s and not self._zip.unused_data: # manipulate the bytes-read to allow our own read method to continue # but keep the window at its current position self._br = 0 if hasattr(self._zip, 'status'): while self._zip.status == zlib.Z_OK: self.read(mmap.PAGESIZE) # END scrub-loop custom zlib else: # pass in additional pages, until we have unused data while not self._zip.unused_data and self._cbr != len(self._m): self.read(mmap.PAGESIZE) # END scrub-loop default zlib # END handle stream scrubbing # reset bytes read, just to be sure self._br = self._s # END handle stream scrubbing # unused data ends up in the unconsumed tail, which was removed # from the count already return self._cbr #} END interface def seek(self, offset, whence=getattr(os, 'SEEK_SET', 0)): """Allows to reset the stream to restart reading :raise ValueError: If offset and whence are not 0""" if offset != 0 or whence != getattr(os, 'SEEK_SET', 0): raise ValueError("Can only seek to position 0") # END handle offset self._zip = zlib.decompressobj() self._br = self._cws = self._cwe = self._cbr = 0 if self._phi: self._phi = False del(self._s) # trigger header parsing on first access # END skip header def read(self, size=-1): if size < 1: size = self._s - self._br else: size = min(size, self._s - self._br) # END clamp size if size == 0: return bytes() # END handle depletion # deplete the buffer, then just continue using the decompress object # which has an own buffer. We just need this to transparently parse the # header from the zlib stream dat = bytes() if self._buf: if self._buflen >= size: # have enough data dat = self._buf.read(size) self._buflen -= size self._br += size return dat else: dat = self._buf.read() # ouch, duplicates data size -= self._buflen self._br += self._buflen self._buflen = 0 self._buf = None # END handle buffer len # END handle buffer # decompress some data # Abstract: zlib needs to operate on chunks of our memory map ( which may # be large ), as it will otherwise and always fill in the 'unconsumed_tail' # attribute which possible reads our whole map to the end, forcing # everything to be read from disk even though just a portion was requested. # As this would be a nogo, we workaround it by passing only chunks of data, # moving the window into the memory map along as we decompress, which keeps # the tail smaller than our chunk-size. This causes 'only' the chunk to be # copied once, and another copy of a part of it when it creates the unconsumed # tail. We have to use it to hand in the appropriate amount of bytes during # the next read. tail = self._zip.unconsumed_tail if tail: # move the window, make it as large as size demands. For code-clarity, # we just take the chunk from our map again instead of reusing the unconsumed # tail. The latter one would safe some memory copying, but we could end up # with not getting enough data uncompressed, so we had to sort that out as well. # Now we just assume the worst case, hence the data is uncompressed and the window # needs to be as large as the uncompressed bytes we want to read. self._cws = self._cwe - len(tail) self._cwe = self._cws + size else: cws = self._cws self._cws = self._cwe self._cwe = cws + size # END handle tail # if window is too small, make it larger so zip can decompress something if self._cwe - self._cws < 8: self._cwe = self._cws + 8 # END adjust winsize # takes a slice, but doesn't copy the data, it says ... indata = buffer(self._m, self._cws, self._cwe - self._cws) # get the actual window end to be sure we don't use it for computations self._cwe = self._cws + len(indata) dcompdat = self._zip.decompress(indata, size) # update the amount of compressed bytes read # We feed possibly overlapping chunks, which is why the unconsumed tail # has to be taken into consideration, as well as the unused data # if we hit the end of the stream # NOTE: Behavior changed in PY2.7 onward, which requires special handling to make the tests work properly. # They are thorough, and I assume it is truly working. # Why is this logic as convoluted as it is ? Please look at the table in # https://github.com/gitpython-developers/gitdb/issues/19 to learn about the test-results. # Bascially, on py2.6, you want to use branch 1, whereas on all other python version, the second branch # will be the one that works. # However, the zlib VERSIONs as well as the platform check is used to further match the entries in the # table in the github issue. This is it ... it was the only way I could make this work everywhere. # IT's CERTAINLY GOING TO BITE US IN THE FUTURE ... . if PY26 or ((zlib.ZLIB_VERSION == '1.2.7' or zlib.ZLIB_VERSION == '1.2.5') and not sys.platform == 'darwin'): unused_datalen = len(self._zip.unconsumed_tail) else: unused_datalen = len(self._zip.unconsumed_tail) + len(self._zip.unused_data) # # end handle very special case ... self._cbr += len(indata) - unused_datalen self._br += len(dcompdat) if dat: dcompdat = dat + dcompdat # END prepend our cached data # it can happen, depending on the compression, that we get less bytes # than ordered as it needs the final portion of the data as well. # Recursively resolve that. # Note: dcompdat can be empty even though we still appear to have bytes # to read, if we are called by compressed_bytes_read - it manipulates # us to empty the stream if dcompdat and (len(dcompdat) - len(dat)) < size and self._br < self._s: dcompdat += self.read(size - len(dcompdat)) # END handle special case return dcompdat class DeltaApplyReader(LazyMixin): """A reader which dynamically applies pack deltas to a base object, keeping the memory demands to a minimum. The size of the final object is only obtainable once all deltas have been applied, unless it is retrieved from a pack index. The uncompressed Delta has the following layout (MSB being a most significant bit encoded dynamic size): * MSB Source Size - the size of the base against which the delta was created * MSB Target Size - the size of the resulting data after the delta was applied * A list of one byte commands (cmd) which are followed by a specific protocol: * cmd & 0x80 - copy delta_data[offset:offset+size] * Followed by an encoded offset into the delta data * Followed by an encoded size of the chunk to copy * cmd & 0x7f - insert * insert cmd bytes from the delta buffer into the output stream * cmd == 0 - invalid operation ( or error in delta stream ) """ __slots__ = ( "_bstream", # base stream to which to apply the deltas "_dstreams", # tuple of delta stream readers "_mm_target", # memory map of the delta-applied data "_size", # actual number of bytes in _mm_target "_br" # number of bytes read ) #{ Configuration k_max_memory_move = 250 * 1000 * 1000 #} END configuration def __init__(self, stream_list): """Initialize this instance with a list of streams, the first stream being the delta to apply on top of all following deltas, the last stream being the base object onto which to apply the deltas""" assert len(stream_list) > 1, "Need at least one delta and one base stream" self._bstream = stream_list[-1] self._dstreams = tuple(stream_list[:-1]) self._br = 0 def _set_cache_too_slow_without_c(self, attr): # the direct algorithm is fastest and most direct if there is only one # delta. Also, the extra overhead might not be worth it for items smaller # than X - definitely the case in python, every function call costs # huge amounts of time # if len(self._dstreams) * self._bstream.size < self.k_max_memory_move: if len(self._dstreams) == 1: return self._set_cache_brute_(attr) # Aggregate all deltas into one delta in reverse order. Hence we take # the last delta, and reverse-merge its ancestor delta, until we receive # the final delta data stream. dcl = connect_deltas(self._dstreams) # call len directly, as the (optional) c version doesn't implement the sequence # protocol if dcl.rbound() == 0: self._size = 0 self._mm_target = allocate_memory(0) return # END handle empty list self._size = dcl.rbound() self._mm_target = allocate_memory(self._size) bbuf = allocate_memory(self._bstream.size) stream_copy(self._bstream.read, bbuf.write, self._bstream.size, 256 * mmap.PAGESIZE) # APPLY CHUNKS write = self._mm_target.write dcl.apply(bbuf, write) self._mm_target.seek(0) def _set_cache_brute_(self, attr): """If we are here, we apply the actual deltas""" # TODO: There should be a special case if there is only one stream # Then the default-git algorithm should perform a tad faster, as the # delta is not peaked into, causing less overhead. buffer_info_list = list() max_target_size = 0 for dstream in self._dstreams: buf = dstream.read(512) # read the header information + X offset, src_size = msb_size(buf) offset, target_size = msb_size(buf, offset) buffer_info_list.append((buffer(buf, offset), offset, src_size, target_size)) max_target_size = max(max_target_size, target_size) # END for each delta stream # sanity check - the first delta to apply should have the same source # size as our actual base stream base_size = self._bstream.size target_size = max_target_size # if we have more than 1 delta to apply, we will swap buffers, hence we must # assure that all buffers we use are large enough to hold all the results if len(self._dstreams) > 1: base_size = target_size = max(base_size, max_target_size) # END adjust buffer sizes # Allocate private memory map big enough to hold the first base buffer # We need random access to it bbuf = allocate_memory(base_size) stream_copy(self._bstream.read, bbuf.write, base_size, 256 * mmap.PAGESIZE) # allocate memory map large enough for the largest (intermediate) target # We will use it as scratch space for all delta ops. If the final # target buffer is smaller than our allocated space, we just use parts # of it upon return. tbuf = allocate_memory(target_size) # for each delta to apply, memory map the decompressed delta and # work on the op-codes to reconstruct everything. # For the actual copying, we use a seek and write pattern of buffer # slices. final_target_size = None for (dbuf, offset, src_size, target_size), dstream in zip(reversed(buffer_info_list), reversed(self._dstreams)): # allocate a buffer to hold all delta data - fill in the data for # fast access. We do this as we know that reading individual bytes # from our stream would be slower than necessary ( although possible ) # The dbuf buffer contains commands after the first two MSB sizes, the # offset specifies the amount of bytes read to get the sizes. ddata = allocate_memory(dstream.size - offset) ddata.write(dbuf) # read the rest from the stream. The size we give is larger than necessary stream_copy(dstream.read, ddata.write, dstream.size, 256 * mmap.PAGESIZE) ####################################################################### if 'c_apply_delta' in globals(): c_apply_delta(bbuf, ddata, tbuf) else: apply_delta_data(bbuf, src_size, ddata, len(ddata), tbuf.write) ####################################################################### # finally, swap out source and target buffers. The target is now the # base for the next delta to apply bbuf, tbuf = tbuf, bbuf bbuf.seek(0) tbuf.seek(0) final_target_size = target_size # END for each delta to apply # its already seeked to 0, constrain it to the actual size # NOTE: in the end of the loop, it swaps buffers, hence our target buffer # is not tbuf, but bbuf ! self._mm_target = bbuf self._size = final_target_size #{ Configuration if not has_perf_mod: _set_cache_ = _set_cache_brute_ else: _set_cache_ = _set_cache_too_slow_without_c #} END configuration def read(self, count=0): bl = self._size - self._br # bytes left if count < 1 or count > bl: count = bl # NOTE: we could check for certain size limits, and possibly # return buffers instead of strings to prevent byte copying data = self._mm_target.read(count) self._br += len(data) return data def seek(self, offset, whence=getattr(os, 'SEEK_SET', 0)): """Allows to reset the stream to restart reading :raise ValueError: If offset and whence are not 0""" if offset != 0 or whence != getattr(os, 'SEEK_SET', 0): raise ValueError("Can only seek to position 0") # END handle offset self._br = 0 self._mm_target.seek(0) #{ Interface @classmethod def new(cls, stream_list): """ Convert the given list of streams into a stream which resolves deltas when reading from it. :param stream_list: two or more stream objects, first stream is a Delta to the object that you want to resolve, followed by N additional delta streams. The list's last stream must be a non-delta stream. :return: Non-Delta OPackStream object whose stream can be used to obtain the decompressed resolved data :raise ValueError: if the stream list cannot be handled""" if len(stream_list) < 2: raise ValueError("Need at least two streams") # END single object special handling if stream_list[-1].type_id in delta_types: raise ValueError( "Cannot resolve deltas if there is no base object stream, last one was type: %s" % stream_list[-1].type) # END check stream return cls(stream_list) #} END interface #{ OInfo like Interface @property def type(self): return self._bstream.type @property def type_id(self): return self._bstream.type_id @property def size(self): """:return: number of uncompressed bytes in the stream""" return self._size #} END oinfo like interface #} END RO streams #{ W Streams class Sha1Writer(object): """Simple stream writer which produces a sha whenever you like as it degests everything it is supposed to write""" __slots__ = "sha1" def __init__(self): self.sha1 = make_sha() #{ Stream Interface def write(self, data): """:raise IOError: If not all bytes could be written :param data: byte object :return: length of incoming data""" self.sha1.update(data) return len(data) # END stream interface #{ Interface def sha(self, as_hex=False): """:return: sha so far :param as_hex: if True, sha will be hex-encoded, binary otherwise""" if as_hex: return self.sha1.hexdigest() return self.sha1.digest() #} END interface class FlexibleSha1Writer(Sha1Writer): """Writer producing a sha1 while passing on the written bytes to the given write function""" __slots__ = 'writer' def __init__(self, writer): Sha1Writer.__init__(self) self.writer = writer def write(self, data): Sha1Writer.write(self, data) self.writer(data) class ZippedStoreShaWriter(Sha1Writer): """Remembers everything someone writes to it and generates a sha""" __slots__ = ('buf', 'zip') def __init__(self): Sha1Writer.__init__(self) self.buf = BytesIO() self.zip = zlib.compressobj(zlib.Z_BEST_SPEED) def __getattr__(self, attr): return getattr(self.buf, attr) def write(self, data): alen = Sha1Writer.write(self, data) self.buf.write(self.zip.compress(data)) return alen def close(self): self.buf.write(self.zip.flush()) def seek(self, offset, whence=getattr(os, 'SEEK_SET', 0)): """Seeking currently only supports to rewind written data Multiple writes are not supported""" if offset != 0 or whence != getattr(os, 'SEEK_SET', 0): raise ValueError("Can only seek to position 0") # END handle offset self.buf.seek(0) def getvalue(self): """:return: string value from the current stream position to the end""" return self.buf.getvalue() class FDCompressedSha1Writer(Sha1Writer): """Digests data written to it, making the sha available, then compress the data and write it to the file descriptor **Note:** operates on raw file descriptors **Note:** for this to work, you have to use the close-method of this instance""" __slots__ = ("fd", "sha1", "zip") # default exception exc = IOError("Failed to write all bytes to filedescriptor") def __init__(self, fd): super(FDCompressedSha1Writer, self).__init__() self.fd = fd self.zip = zlib.compressobj(zlib.Z_BEST_SPEED) #{ Stream Interface def write(self, data): """:raise IOError: If not all bytes could be written :return: length of incoming data""" self.sha1.update(data) cdata = self.zip.compress(data) bytes_written = write(self.fd, cdata) if bytes_written != len(cdata): raise self.exc return len(data) def close(self): remainder = self.zip.flush() if write(self.fd, remainder) != len(remainder): raise self.exc return close(self.fd) #} END stream interface class FDStream(object): """A simple wrapper providing the most basic functions on a file descriptor with the fileobject interface. Cannot use os.fdopen as the resulting stream takes ownership""" __slots__ = ("_fd", '_pos') def __init__(self, fd): self._fd = fd self._pos = 0 def write(self, data): self._pos += len(data) os.write(self._fd, data) def read(self, count=0): if count == 0: count = os.path.getsize(self._filepath) # END handle read everything bytes = os.read(self._fd, count) self._pos += len(bytes) return bytes def fileno(self): return self._fd def tell(self): return self._pos def close(self): close(self._fd) class NullStream(object): """A stream that does nothing but providing a stream interface. Use it like /dev/null""" __slots__ = tuple() def read(self, size=0): return '' def close(self): pass def write(self, data): return len(data) #} END W streams gitdb2-2.0.3/gitdb/exc.py0000644000076600000240000000243312637461244015401 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Module with common exceptions""" from gitdb.util import to_hex_sha class ODBError(Exception): """All errors thrown by the object database""" class InvalidDBRoot(ODBError): """Thrown if an object database cannot be initialized at the given path""" class BadObject(ODBError): """The object with the given SHA does not exist. Instantiate with the failed sha""" def __str__(self): return "BadObject: %s" % to_hex_sha(self.args[0]) class BadName(ODBError): """A name provided to rev_parse wasn't understood""" def __str__(self): return "Ref '%s' did not resolve to an object" % self.args[0] class ParseError(ODBError): """Thrown if the parsing of a file failed due to an invalid format""" class AmbiguousObjectName(ODBError): """Thrown if a possibly shortened name does not uniquely represent a single object in the database""" class BadObjectType(ODBError): """The object had an unsupported type""" class UnsupportedOperation(ODBError): """Thrown if the given operation cannot be supported by the object database""" gitdb2-2.0.3/gitdb/db/0000755000076600000240000000000013163135565014632 5ustar byronstaff00000000000000gitdb2-2.0.3/gitdb/db/pack.py0000644000076600000240000001626312637461244016133 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Module containing a database to deal with packs""" from gitdb.db.base import ( FileDBBase, ObjectDBR, CachingDB ) from gitdb.util import LazyMixin from gitdb.exc import ( BadObject, UnsupportedOperation, AmbiguousObjectName ) from gitdb.pack import PackEntity from gitdb.utils.compat import xrange from functools import reduce import os import glob __all__ = ('PackedDB', ) #{ Utilities class PackedDB(FileDBBase, ObjectDBR, CachingDB, LazyMixin): """A database operating on a set of object packs""" # sort the priority list every N queries # Higher values are better, performance tests don't show this has # any effect, but it should have one _sort_interval = 500 def __init__(self, root_path): super(PackedDB, self).__init__(root_path) # list of lists with three items: # * hits - number of times the pack was hit with a request # * entity - Pack entity instance # * sha_to_index - PackIndexFile.sha_to_index method for direct cache query # self._entities = list() # lazy loaded list self._hit_count = 0 # amount of hits self._st_mtime = 0 # last modification data of our root path def _set_cache_(self, attr): if attr == '_entities': self._entities = list() self.update_cache(force=True) # END handle entities initialization def _sort_entities(self): self._entities.sort(key=lambda l: l[0], reverse=True) def _pack_info(self, sha): """:return: tuple(entity, index) for an item at the given sha :param sha: 20 or 40 byte sha :raise BadObject: **Note:** This method is not thread-safe, but may be hit in multi-threaded operation. The worst thing that can happen though is a counter that was not incremented, or the list being in wrong order. So we safe the time for locking here, lets see how that goes""" # presort ? if self._hit_count % self._sort_interval == 0: self._sort_entities() # END update sorting for item in self._entities: index = item[2](sha) if index is not None: item[0] += 1 # one hit for you self._hit_count += 1 # general hit count return (item[1], index) # END index found in pack # END for each item # no hit, see whether we have to update packs # NOTE: considering packs don't change very often, we safe this call # and leave it to the super-caller to trigger that raise BadObject(sha) #{ Object DB Read def has_object(self, sha): try: self._pack_info(sha) return True except BadObject: return False # END exception handling def info(self, sha): entity, index = self._pack_info(sha) return entity.info_at_index(index) def stream(self, sha): entity, index = self._pack_info(sha) return entity.stream_at_index(index) def sha_iter(self): for entity in self.entities(): index = entity.index() sha_by_index = index.sha for index in xrange(index.size()): yield sha_by_index(index) # END for each index # END for each entity def size(self): sizes = [item[1].index().size() for item in self._entities] return reduce(lambda x, y: x + y, sizes, 0) #} END object db read #{ object db write def store(self, istream): """Storing individual objects is not feasible as a pack is designed to hold multiple objects. Writing or rewriting packs for single objects is inefficient""" raise UnsupportedOperation() #} END object db write #{ Interface def update_cache(self, force=False): """ Update our cache with the acutally existing packs on disk. Add new ones, and remove deleted ones. We keep the unchanged ones :param force: If True, the cache will be updated even though the directory does not appear to have changed according to its modification timestamp. :return: True if the packs have been updated so there is new information, False if there was no change to the pack database""" stat = os.stat(self.root_path()) if not force and stat.st_mtime <= self._st_mtime: return False # END abort early on no change self._st_mtime = stat.st_mtime # packs are supposed to be prefixed with pack- by git-convention # get all pack files, figure out what changed pack_files = set(glob.glob(os.path.join(self.root_path(), "pack-*.pack"))) our_pack_files = set(item[1].pack().path() for item in self._entities) # new packs for pack_file in (pack_files - our_pack_files): # init the hit-counter/priority with the size, a good measure for hit- # probability. Its implemented so that only 12 bytes will be read entity = PackEntity(pack_file) self._entities.append([entity.pack().size(), entity, entity.index().sha_to_index]) # END for each new packfile # removed packs for pack_file in (our_pack_files - pack_files): del_index = -1 for i, item in enumerate(self._entities): if item[1].pack().path() == pack_file: del_index = i break # END found index # END for each entity assert del_index != -1 del(self._entities[del_index]) # END for each removed pack # reinitialize prioritiess self._sort_entities() return True def entities(self): """:return: list of pack entities operated upon by this database""" return [item[1] for item in self._entities] def partial_to_complete_sha(self, partial_binsha, canonical_length): """:return: 20 byte sha as inferred by the given partial binary sha :param partial_binsha: binary sha with less than 20 bytes :param canonical_length: length of the corresponding canonical representation. It is required as binary sha's cannot display whether the original hex sha had an odd or even number of characters :raise AmbiguousObjectName: :raise BadObject: """ candidate = None for item in self._entities: item_index = item[1].index().partial_sha_to_index(partial_binsha, canonical_length) if item_index is not None: sha = item[1].index().sha(item_index) if candidate and candidate != sha: raise AmbiguousObjectName(partial_binsha) candidate = sha # END handle full sha could be found # END for each entity if candidate: return candidate # still not found ? raise BadObject(partial_binsha) #} END interface gitdb2-2.0.3/gitdb/db/git.py0000644000076600000240000000520612637461244015773 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php from gitdb.db.base import ( CompoundDB, ObjectDBW, FileDBBase ) from gitdb.db.loose import LooseObjectDB from gitdb.db.pack import PackedDB from gitdb.db.ref import ReferenceDB from gitdb.exc import InvalidDBRoot import os __all__ = ('GitDB', ) class GitDB(FileDBBase, ObjectDBW, CompoundDB): """A git-style object database, which contains all objects in the 'objects' subdirectory ``IMPORTANT``: The usage of this implementation is highly discouraged as it fails to release file-handles. This can be a problem with long-running processes and/or big repositories. """ # Configuration PackDBCls = PackedDB LooseDBCls = LooseObjectDB ReferenceDBCls = ReferenceDB # Directories packs_dir = 'pack' loose_dir = '' alternates_dir = os.path.join('info', 'alternates') def __init__(self, root_path): """Initialize ourselves on a git objects directory""" super(GitDB, self).__init__(root_path) def _set_cache_(self, attr): if attr == '_dbs' or attr == '_loose_db': self._dbs = list() loose_db = None for subpath, dbcls in ((self.packs_dir, self.PackDBCls), (self.loose_dir, self.LooseDBCls), (self.alternates_dir, self.ReferenceDBCls)): path = self.db_path(subpath) if os.path.exists(path): self._dbs.append(dbcls(path)) if dbcls is self.LooseDBCls: loose_db = self._dbs[-1] # END remember loose db # END check path exists # END for each db type # should have at least one subdb if not self._dbs: raise InvalidDBRoot(self.root_path()) # END handle error # we the first one should have the store method assert loose_db is not None and hasattr(loose_db, 'store'), "First database needs store functionality" # finally set the value self._loose_db = loose_db else: super(GitDB, self)._set_cache_(attr) # END handle attrs #{ ObjectDBW interface def store(self, istream): return self._loose_db.store(istream) def ostream(self): return self._loose_db.ostream() def set_ostream(self, ostream): return self._loose_db.set_ostream(ostream) #} END objectdbw interface gitdb2-2.0.3/gitdb/db/__init__.py0000644000076600000240000000057112637461244016747 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php from gitdb.db.base import * from gitdb.db.loose import * from gitdb.db.mem import * from gitdb.db.pack import * from gitdb.db.git import * from gitdb.db.ref import * gitdb2-2.0.3/gitdb/db/mem.py0000644000076600000240000000656012765303653015773 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Contains the MemoryDatabase implementation""" from gitdb.db.loose import LooseObjectDB from gitdb.db.base import ( ObjectDBR, ObjectDBW ) from gitdb.base import ( OStream, IStream, ) from gitdb.exc import ( BadObject, UnsupportedOperation ) from gitdb.stream import ( ZippedStoreShaWriter, DecompressMemMapReader, ) from io import BytesIO __all__ = ("MemoryDB", ) class MemoryDB(ObjectDBR, ObjectDBW): """A memory database stores everything to memory, providing fast IO and object retrieval. It should be used to buffer results and obtain SHAs before writing it to the actual physical storage, as it allows to query whether object already exists in the target storage before introducing actual IO""" def __init__(self): super(MemoryDB, self).__init__() self._db = LooseObjectDB("path/doesnt/matter") # maps 20 byte shas to their OStream objects self._cache = dict() def set_ostream(self, stream): raise UnsupportedOperation("MemoryDB's always stream into memory") def store(self, istream): zstream = ZippedStoreShaWriter() self._db.set_ostream(zstream) istream = self._db.store(istream) zstream.close() # close to flush zstream.seek(0) # don't provide a size, the stream is written in object format, hence the # header needs decompression decomp_stream = DecompressMemMapReader(zstream.getvalue(), close_on_deletion=False) self._cache[istream.binsha] = OStream(istream.binsha, istream.type, istream.size, decomp_stream) return istream def has_object(self, sha): return sha in self._cache def info(self, sha): # we always return streams, which are infos as well return self.stream(sha) def stream(self, sha): try: ostream = self._cache[sha] # rewind stream for the next one to read ostream.stream.seek(0) return ostream except KeyError: raise BadObject(sha) # END exception handling def size(self): return len(self._cache) def sha_iter(self): try: return self._cache.iterkeys() except AttributeError: return self._cache.keys() #{ Interface def stream_copy(self, sha_iter, odb): """Copy the streams as identified by sha's yielded by sha_iter into the given odb The streams will be copied directly **Note:** the object will only be written if it did not exist in the target db :return: amount of streams actually copied into odb. If smaller than the amount of input shas, one or more objects did already exist in odb""" count = 0 for sha in sha_iter: if odb.has_object(sha): continue # END check object existence ostream = self.stream(sha) # compressed data including header sio = BytesIO(ostream.stream.data()) istream = IStream(ostream.type, ostream.size, sio, sha) odb.store(istream) count += 1 # END for each sha return count #} END interface gitdb2-2.0.3/gitdb/db/ref.py0000644000076600000240000000514613163133340015753 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php import codecs from gitdb.db.base import ( CompoundDB, ) __all__ = ('ReferenceDB', ) class ReferenceDB(CompoundDB): """A database consisting of database referred to in a file""" # Configuration # Specifies the object database to use for the paths found in the alternates # file. If None, it defaults to the GitDB ObjectDBCls = None def __init__(self, ref_file): super(ReferenceDB, self).__init__() self._ref_file = ref_file def _set_cache_(self, attr): if attr == '_dbs': self._dbs = list() self._update_dbs_from_ref_file() else: super(ReferenceDB, self)._set_cache_(attr) # END handle attrs def _update_dbs_from_ref_file(self): dbcls = self.ObjectDBCls if dbcls is None: # late import from gitdb.db.git import GitDB dbcls = GitDB # END get db type # try to get as many as possible, don't fail if some are unavailable ref_paths = list() try: with codecs.open(self._ref_file, 'r', encoding="utf-8") as f: ref_paths = [l.strip() for l in f] except (OSError, IOError): pass # END handle alternates ref_paths_set = set(ref_paths) cur_ref_paths_set = set(db.root_path() for db in self._dbs) # remove existing for path in (cur_ref_paths_set - ref_paths_set): for i, db in enumerate(self._dbs[:]): if db.root_path() == path: del(self._dbs[i]) continue # END del matching db # END for each path to remove # add new # sort them to maintain order added_paths = sorted(ref_paths_set - cur_ref_paths_set, key=lambda p: ref_paths.index(p)) for path in added_paths: try: db = dbcls(path) # force an update to verify path if isinstance(db, CompoundDB): db.databases() # END verification self._dbs.append(db) except Exception: # ignore invalid paths or issues pass # END for each path to add def update_cache(self, force=False): # re-read alternates and update databases self._update_dbs_from_ref_file() return super(ReferenceDB, self).update_cache(force) gitdb2-2.0.3/gitdb/db/loose.py0000644000076600000240000002011112765303653016322 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php from gitdb.db.base import ( FileDBBase, ObjectDBR, ObjectDBW ) from gitdb.exc import ( BadObject, AmbiguousObjectName ) from gitdb.stream import ( DecompressMemMapReader, FDCompressedSha1Writer, FDStream, Sha1Writer ) from gitdb.base import ( OStream, OInfo ) from gitdb.util import ( file_contents_ro_filepath, ENOENT, hex_to_bin, bin_to_hex, exists, chmod, isdir, isfile, remove, mkdir, rename, dirname, basename, join ) from gitdb.fun import ( chunk_size, loose_object_header_info, write_object, stream_copy ) from gitdb.utils.compat import MAXSIZE from gitdb.utils.encoding import force_bytes import tempfile import os __all__ = ('LooseObjectDB', ) class LooseObjectDB(FileDBBase, ObjectDBR, ObjectDBW): """A database which operates on loose object files""" # CONFIGURATION # chunks in which data will be copied between streams stream_chunk_size = chunk_size # On windows we need to keep it writable, otherwise it cannot be removed # either new_objects_mode = int("444", 8) if os.name == 'nt': new_objects_mode = int("644", 8) def __init__(self, root_path): super(LooseObjectDB, self).__init__(root_path) self._hexsha_to_file = dict() # Additional Flags - might be set to 0 after the first failure # Depending on the root, this might work for some mounts, for others not, which # is why it is per instance self._fd_open_flags = getattr(os, 'O_NOATIME', 0) #{ Interface def object_path(self, hexsha): """ :return: path at which the object with the given hexsha would be stored, relative to the database root""" return join(hexsha[:2], hexsha[2:]) def readable_db_object_path(self, hexsha): """ :return: readable object path to the object identified by hexsha :raise BadObject: If the object file does not exist""" try: return self._hexsha_to_file[hexsha] except KeyError: pass # END ignore cache misses # try filesystem path = self.db_path(self.object_path(hexsha)) if exists(path): self._hexsha_to_file[hexsha] = path return path # END handle cache raise BadObject(hexsha) def partial_to_complete_sha_hex(self, partial_hexsha): """:return: 20 byte binary sha1 string which matches the given name uniquely :param name: hexadecimal partial name (bytes or ascii string) :raise AmbiguousObjectName: :raise BadObject: """ candidate = None for binsha in self.sha_iter(): if bin_to_hex(binsha).startswith(force_bytes(partial_hexsha)): # it can't ever find the same object twice if candidate is not None: raise AmbiguousObjectName(partial_hexsha) candidate = binsha # END for each object if candidate is None: raise BadObject(partial_hexsha) return candidate #} END interface def _map_loose_object(self, sha): """ :return: memory map of that file to allow random read access :raise BadObject: if object could not be located""" db_path = self.db_path(self.object_path(bin_to_hex(sha))) try: return file_contents_ro_filepath(db_path, flags=self._fd_open_flags) except OSError as e: if e.errno != ENOENT: # try again without noatime try: return file_contents_ro_filepath(db_path) except OSError: raise BadObject(sha) # didn't work because of our flag, don't try it again self._fd_open_flags = 0 else: raise BadObject(sha) # END handle error # END exception handling def set_ostream(self, stream): """:raise TypeError: if the stream does not support the Sha1Writer interface""" if stream is not None and not isinstance(stream, Sha1Writer): raise TypeError("Output stream musst support the %s interface" % Sha1Writer.__name__) return super(LooseObjectDB, self).set_ostream(stream) def info(self, sha): m = self._map_loose_object(sha) try: typ, size = loose_object_header_info(m) return OInfo(sha, typ, size) finally: if hasattr(m, 'close'): m.close() # END assure release of system resources def stream(self, sha): m = self._map_loose_object(sha) type, size, stream = DecompressMemMapReader.new(m, close_on_deletion=True) return OStream(sha, type, size, stream) def has_object(self, sha): try: self.readable_db_object_path(bin_to_hex(sha)) return True except BadObject: return False # END check existence def store(self, istream): """note: The sha we produce will be hex by nature""" tmp_path = None writer = self.ostream() if writer is None: # open a tmp file to write the data to fd, tmp_path = tempfile.mkstemp(prefix='obj', dir=self._root_path) if istream.binsha is None: writer = FDCompressedSha1Writer(fd) else: writer = FDStream(fd) # END handle direct stream copies # END handle custom writer try: try: if istream.binsha is not None: # copy as much as possible, the actual uncompressed item size might # be smaller than the compressed version stream_copy(istream.read, writer.write, MAXSIZE, self.stream_chunk_size) else: # write object with header, we have to make a new one write_object(istream.type, istream.size, istream.read, writer.write, chunk_size=self.stream_chunk_size) # END handle direct stream copies finally: if tmp_path: writer.close() # END assure target stream is closed except: if tmp_path: os.remove(tmp_path) raise # END assure tmpfile removal on error hexsha = None if istream.binsha: hexsha = istream.hexsha else: hexsha = writer.sha(as_hex=True) # END handle sha if tmp_path: obj_path = self.db_path(self.object_path(hexsha)) obj_dir = dirname(obj_path) if not isdir(obj_dir): mkdir(obj_dir) # END handle destination directory # rename onto existing doesn't work on windows if os.name == 'nt': if isfile(obj_path): remove(tmp_path) else: rename(tmp_path, obj_path) # end rename only if needed else: rename(tmp_path, obj_path) # END handle win32 # make sure its readable for all ! It started out as rw-- tmp file # but needs to be rwrr chmod(obj_path, self.new_objects_mode) # END handle dry_run istream.binsha = hex_to_bin(hexsha) return istream def sha_iter(self): # find all files which look like an object, extract sha from there for root, dirs, files in os.walk(self.root_path()): root_base = basename(root) if len(root_base) != 2: continue for f in files: if len(f) != 38: continue yield hex_to_bin(root_base + f) # END for each file # END for each walk iteration def size(self): return len(tuple(self.sha_iter())) gitdb2-2.0.3/gitdb/db/base.py0000644000076600000240000002143012765303653016120 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Contains implementations of database retrieveing objects""" from gitdb.util import ( join, LazyMixin, hex_to_bin ) from gitdb.utils.encoding import force_text from gitdb.exc import ( BadObject, AmbiguousObjectName ) from itertools import chain from functools import reduce __all__ = ('ObjectDBR', 'ObjectDBW', 'FileDBBase', 'CompoundDB', 'CachingDB') class ObjectDBR(object): """Defines an interface for object database lookup. Objects are identified either by their 20 byte bin sha""" def __contains__(self, sha): return self.has_obj #{ Query Interface def has_object(self, sha): """ :return: True if the object identified by the given 20 bytes binary sha is contained in the database""" raise NotImplementedError("To be implemented in subclass") def info(self, sha): """ :return: OInfo instance :param sha: bytes binary sha :raise BadObject:""" raise NotImplementedError("To be implemented in subclass") def stream(self, sha): """:return: OStream instance :param sha: 20 bytes binary sha :raise BadObject:""" raise NotImplementedError("To be implemented in subclass") def size(self): """:return: amount of objects in this database""" raise NotImplementedError() def sha_iter(self): """Return iterator yielding 20 byte shas for all objects in this data base""" raise NotImplementedError() #} END query interface class ObjectDBW(object): """Defines an interface to create objects in the database""" def __init__(self, *args, **kwargs): self._ostream = None #{ Edit Interface def set_ostream(self, stream): """ Adjusts the stream to which all data should be sent when storing new objects :param stream: if not None, the stream to use, if None the default stream will be used. :return: previously installed stream, or None if there was no override :raise TypeError: if the stream doesn't have the supported functionality""" cstream = self._ostream self._ostream = stream return cstream def ostream(self): """ :return: overridden output stream this instance will write to, or None if it will write to the default stream""" return self._ostream def store(self, istream): """ Create a new object in the database :return: the input istream object with its sha set to its corresponding value :param istream: IStream compatible instance. If its sha is already set to a value, the object will just be stored in the our database format, in which case the input stream is expected to be in object format ( header + contents ). :raise IOError: if data could not be written""" raise NotImplementedError("To be implemented in subclass") #} END edit interface class FileDBBase(object): """Provides basic facilities to retrieve files of interest, including caching facilities to help mapping hexsha's to objects""" def __init__(self, root_path): """Initialize this instance to look for its files at the given root path All subsequent operations will be relative to this path :raise InvalidDBRoot: **Note:** The base will not perform any accessablity checking as the base might not yet be accessible, but become accessible before the first access.""" super(FileDBBase, self).__init__() self._root_path = root_path #{ Interface def root_path(self): """:return: path at which this db operates""" return self._root_path def db_path(self, rela_path): """ :return: the given relative path relative to our database root, allowing to pontentially access datafiles""" return join(self._root_path, force_text(rela_path)) #} END interface class CachingDB(object): """A database which uses caches to speed-up access""" #{ Interface def update_cache(self, force=False): """ Call this method if the underlying data changed to trigger an update of the internal caching structures. :param force: if True, the update must be performed. Otherwise the implementation may decide not to perform an update if it thinks nothing has changed. :return: True if an update was performed as something change indeed""" # END interface def _databases_recursive(database, output): """Fill output list with database from db, in order. Deals with Loose, Packed and compound databases.""" if isinstance(database, CompoundDB): dbs = database.databases() output.extend(db for db in dbs if not isinstance(db, CompoundDB)) for cdb in (db for db in dbs if isinstance(db, CompoundDB)): _databases_recursive(cdb, output) else: output.append(database) # END handle database type class CompoundDB(ObjectDBR, LazyMixin, CachingDB): """A database which delegates calls to sub-databases. Databases are stored in the lazy-loaded _dbs attribute. Define _set_cache_ to update it with your databases""" def _set_cache_(self, attr): if attr == '_dbs': self._dbs = list() elif attr == '_db_cache': self._db_cache = dict() else: super(CompoundDB, self)._set_cache_(attr) def _db_query(self, sha): """:return: database containing the given 20 byte sha :raise BadObject:""" # most databases use binary representations, prevent converting # it every time a database is being queried try: return self._db_cache[sha] except KeyError: pass # END first level cache for db in self._dbs: if db.has_object(sha): self._db_cache[sha] = db return db # END for each database raise BadObject(sha) #{ ObjectDBR interface def has_object(self, sha): try: self._db_query(sha) return True except BadObject: return False # END handle exceptions def info(self, sha): return self._db_query(sha).info(sha) def stream(self, sha): return self._db_query(sha).stream(sha) def size(self): """:return: total size of all contained databases""" return reduce(lambda x, y: x + y, (db.size() for db in self._dbs), 0) def sha_iter(self): return chain(*(db.sha_iter() for db in self._dbs)) #} END object DBR Interface #{ Interface def databases(self): """:return: tuple of database instances we use for lookups""" return tuple(self._dbs) def update_cache(self, force=False): # something might have changed, clear everything self._db_cache.clear() stat = False for db in self._dbs: if isinstance(db, CachingDB): stat |= db.update_cache(force) # END if is caching db # END for each database to update return stat def partial_to_complete_sha_hex(self, partial_hexsha): """ :return: 20 byte binary sha1 from the given less-than-40 byte hexsha (bytes or str) :param partial_hexsha: hexsha with less than 40 byte :raise AmbiguousObjectName: """ databases = list() _databases_recursive(self, databases) partial_hexsha = force_text(partial_hexsha) len_partial_hexsha = len(partial_hexsha) if len_partial_hexsha % 2 != 0: partial_binsha = hex_to_bin(partial_hexsha + "0") else: partial_binsha = hex_to_bin(partial_hexsha) # END assure successful binary conversion candidate = None for db in databases: full_bin_sha = None try: if hasattr(db, 'partial_to_complete_sha_hex'): full_bin_sha = db.partial_to_complete_sha_hex(partial_hexsha) else: full_bin_sha = db.partial_to_complete_sha(partial_binsha, len_partial_hexsha) # END handle database type except BadObject: continue # END ignore bad objects if full_bin_sha: if candidate and candidate != full_bin_sha: raise AmbiguousObjectName(partial_hexsha) candidate = full_bin_sha # END handle candidate # END for each db if not candidate: raise BadObject(partial_binsha) return candidate #} END interface gitdb2-2.0.3/gitdb/base.py0000644000076600000240000001753512637461244015545 0ustar byronstaff00000000000000# Copyright (C) 2010, 2011 Sebastian Thiel (byronimo@gmail.com) and contributors # # This module is part of GitDB and is released under # the New BSD License: http://www.opensource.org/licenses/bsd-license.php """Module with basic data structures - they are designed to be lightweight and fast""" from gitdb.util import bin_to_hex from gitdb.fun import ( type_id_to_type_map, type_to_type_id_map ) __all__ = ('OInfo', 'OPackInfo', 'ODeltaPackInfo', 'OStream', 'OPackStream', 'ODeltaPackStream', 'IStream', 'InvalidOInfo', 'InvalidOStream') #{ ODB Bases class OInfo(tuple): """Carries information about an object in an ODB, providing information about the binary sha of the object, the type_string as well as the uncompressed size in bytes. It can be accessed using tuple notation and using attribute access notation:: assert dbi[0] == dbi.binsha assert dbi[1] == dbi.type assert dbi[2] == dbi.size The type is designed to be as lightweight as possible.""" __slots__ = tuple() def __new__(cls, sha, type, size): return tuple.__new__(cls, (sha, type, size)) def __init__(self, *args): tuple.__init__(self) #{ Interface @property def binsha(self): """:return: our sha as binary, 20 bytes""" return self[0] @property def hexsha(self): """:return: our sha, hex encoded, 40 bytes""" return bin_to_hex(self[0]) @property def type(self): return self[1] @property def type_id(self): return type_to_type_id_map[self[1]] @property def size(self): return self[2] #} END interface class OPackInfo(tuple): """As OInfo, but provides a type_id property to retrieve the numerical type id, and does not include a sha. Additionally, the pack_offset is the absolute offset into the packfile at which all object information is located. The data_offset property points to the absolute location in the pack at which that actual data stream can be found.""" __slots__ = tuple() def __new__(cls, packoffset, type, size): return tuple.__new__(cls, (packoffset, type, size)) def __init__(self, *args): tuple.__init__(self) #{ Interface @property def pack_offset(self): return self[0] @property def type(self): return type_id_to_type_map[self[1]] @property def type_id(self): return self[1] @property def size(self): return self[2] #} END interface class ODeltaPackInfo(OPackInfo): """Adds delta specific information, Either the 20 byte sha which points to some object in the database, or the negative offset from the pack_offset, so that pack_offset - delta_info yields the pack offset of the base object""" __slots__ = tuple() def __new__(cls, packoffset, type, size, delta_info): return tuple.__new__(cls, (packoffset, type, size, delta_info)) #{ Interface @property def delta_info(self): return self[3] #} END interface class OStream(OInfo): """Base for object streams retrieved from the database, providing additional information about the stream. Generally, ODB streams are read-only as objects are immutable""" __slots__ = tuple() def __new__(cls, sha, type, size, stream, *args, **kwargs): """Helps with the initialization of subclasses""" return tuple.__new__(cls, (sha, type, size, stream)) def __init__(self, *args, **kwargs): tuple.__init__(self) #{ Stream Reader Interface def read(self, size=-1): return self[3].read(size) @property def stream(self): return self[3] #} END stream reader interface class ODeltaStream(OStream): """Uses size info of its stream, delaying reads""" def __new__(cls, sha, type, size, stream, *args, **kwargs): """Helps with the initialization of subclasses""" return tuple.__new__(cls, (sha, type, size, stream)) #{ Stream Reader Interface @property def size(self): return self[3].size #} END stream reader interface class OPackStream(OPackInfo): """Next to pack object information, a stream outputting an undeltified base object is provided""" __slots__ = tuple() def __new__(cls, packoffset, type, size, stream, *args): """Helps with the initialization of subclasses""" return tuple.__new__(cls, (packoffset, type, size, stream)) #{ Stream Reader Interface def read(self, size=-1): return self[3].read(size) @property def stream(self): return self[3] #} END stream reader interface class ODeltaPackStream(ODeltaPackInfo): """Provides a stream outputting the uncompressed offset delta information""" __slots__ = tuple() def __new__(cls, packoffset, type, size, delta_info, stream): return tuple.__new__(cls, (packoffset, type, size, delta_info, stream)) #{ Stream Reader Interface def read(self, size=-1): return self[4].read(size) @property def stream(self): return self[4] #} END stream reader interface class IStream(list): """Represents an input content stream to be fed into the ODB. It is mutable to allow the ODB to record information about the operations outcome right in this instance. It provides interfaces for the OStream and a StreamReader to allow the instance to blend in without prior conversion. The only method your content stream must support is 'read'""" __slots__ = tuple() def __new__(cls, type, size, stream, sha=None): return list.__new__(cls, (sha, type, size, stream, None)) def __init__(self, type, size, stream, sha=None): list.__init__(self, (sha, type, size, stream, None)) #{ Interface @property def hexsha(self): """:return: our sha, hex encoded, 40 bytes""" return bin_to_hex(self[0]) def _error(self): """:return: the error that occurred when processing the stream, or None""" return self[4] def _set_error(self, exc): """Set this input stream to the given exc, may be None to reset the error""" self[4] = exc error = property(_error, _set_error) #} END interface #{ Stream Reader Interface def read(self, size=-1): """Implements a simple stream reader interface, passing the read call on to our internal stream""" return self[3].read(size) #} END stream reader interface #{ interface def _set_binsha(self, binsha): self[0] = binsha def _binsha(self): return self[0] binsha = property(_binsha, _set_binsha) def _type(self): return self[1] def _set_type(self, type): self[1] = type type = property(_type, _set_type) def _size(self): return self[2] def _set_size(self, size): self[2] = size size = property(_size, _set_size) def _stream(self): return self[3] def _set_stream(self, stream): self[3] = stream stream = property(_stream, _set_stream) #} END odb info interface class InvalidOInfo(tuple): """Carries information about a sha identifying an object which is invalid in the queried database. The exception attribute provides more information about the cause of the issue""" __slots__ = tuple() def __new__(cls, sha, exc): return tuple.__new__(cls, (sha, exc)) def __init__(self, sha, exc): tuple.__init__(self, (sha, exc)) @property def binsha(self): return self[0] @property def hexsha(self): return bin_to_hex(self[0]) @property def error(self): """:return: exception instance explaining the failure""" return self[1] class InvalidOStream(InvalidOInfo): """Carries information about an invalid ODB stream""" __slots__ = tuple() #} END ODB Bases gitdb2-2.0.3/gitdb/const.py0000644000076600000240000000013212637461244015742 0ustar byronstaff00000000000000BYTE_SPACE = b' ' NULL_BYTE = b'\0' NULL_HEX_SHA = "0" * 40 NULL_BIN_SHA = NULL_BYTE * 20