././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3559937 pyregion-2.1.1/0000775000175000017500000000000000000000000012316 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7531085 pyregion-2.1.1/CHANGES.rst0000664000175000017500000000770400000000000014130 0ustar00jjleejjlee2.1 (unreleased) ---------------- Other Changes and Additions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Support for angular units of 'd' and 'r' added. 2.0 (Oct 14, 2017) ------------------ This is a major new release of **pyregion**. There are some API changes (listed below), but overall our goal was to keep backwards-compatibility as much as possible while fixing code and installation issues and refactor the internals to use Astropy more. We note that we are developing a new **regions** package that is supposed to become a superset of the functionality that is now in **pyregion** and might be moved in the Astropy core package as **astropy.regions** in the future. The main difference is that it represents regions as classes and uses Astropy angle and coordinate objects, allowing for easier region-based analysis. It is not feature complete, especially the DS9 region file parser is not a complete replacement for **pyregion** yet. Still, you are encouraged to try it out ( http://astropy-regions.readthedocs.io/ ), give feedback or even contribute. For **pyregion**, the plan is to continue to do bugfixes and releases, but to keep API changes to a minimum to avoid breaking existing scripts or pipelines. If you have any questions or issues or requests, please open an issue in the **pyregion** issue tracker on Github. API Changes ^^^^^^^^^^^ - Removed ``rot_wrt_axis`` parameter from ``ShapeList`` and internal methods. - ``ShapeList.as_imagecoord`` no longer accepts a ``asropy.wcs.WCS`` object. The conversion from pixel to image coordinates depends on the center of the image defined in ``astropy.io.fits.Header`` in order to agree with DS9. - ``pyregion.ds9_region_parser`` - ``RegionParser.sky_to_image`` now calls its first parameter ``shape_list`` instead of ``l``. - ``pyregion.extern`` - ``kapteyn_celestial`` removed. - ``pyregion.wcs_converter`` - ``convert_to_imagecoord`` changed signature with the switch to Astropy and takes a ``Shape`` object. - ``convert_physical_to_imagecoord`` changed signature to accept a ``Shape`` object. - ``pyregion.wcs_helper`` - All public methods and constants removed. They are replaced by Astropy, or replaced by private methods. Other Changes and Additions ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Astropy is used for all sky to image coordinate conversions. Science results may change, as `SIP `_ and `distortion paper `_ corrections are now used if present in the FITS file. - Headers with more then 2 axes are now supported; only the celestial axes are used. - Rotation angles are measured from the Y-axis instead of the X-axis, in order to agree with DS9 and potentially other astronomy software. This is a change from previous behavior, but only affects images with non-orthogonal axes. Previously, this behavior was controlled by the ``rot_wrt_axis`` parameter. - Astropy 1.0 is now required. - Shape conversion for multi-dimenstional HDU does not raise exceptions. - Parser supports hex color in attributes 1.2 (Aug 11, 2016) ------------------ - https://pypi.org/project/pyregion/1.2/ - The changelog for this release is incomplete. - We'll start collecting a complete changelog starting after this release. - This release brings major changes to the code, docs and test setup, the package was converted to an Astropy affiliated package. - There are only a few bugfixes and there should be no changes that break scripts or change results for pyregion users. 1.1.4 (Oct 26, 2014) -------------------- - https://pypi.org/project/pyregion/1.1.4/ - The changelog for this release is incomplete. - Change tag attribute from string to list of strings. [#26] 1.1 (March 15, 2013) -------------------- - https://pypi.org/project/pyregion/1.1/ - No changelog available 1.0 (Sep 14, 2010) ------------------ - https://pypi.org/project/pyregion/1.0/ - First stable release ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7531085 pyregion-2.1.1/LICENSE0000664000175000017500000000204000000000000013317 0ustar00jjleejjleeCopyright (c) 2009 Jae-Joon Lee Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3559937 pyregion-2.1.1/PKG-INFO0000664000175000017500000000243000000000000013412 0ustar00jjleejjleeMetadata-Version: 1.1 Name: pyregion Version: 2.1.1 Summary: python parser for ds9 region files Home-page: https://github.com/astropy/pyregion Author: Jae-Joon Lee Author-email: lee.j.joon@gmail.com License: MIT Description: pyregion - a Python parser for ds9 region files * Code : https://github.com/astropy/pyregion * Docs : http://pyregion.readthedocs.io/ See also the in-development ``regions`` package at https://github.com/astropy/regions a new astronomy package for regions based on Astropy. Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Science/Research Classifier: License :: OSI Approved :: MIT License Classifier: Operating System :: MacOS :: MacOS X Classifier: Operating System :: POSIX :: Linux Classifier: Programming Language :: Cython Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 2 Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.4 Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Topic :: Scientific/Engineering :: Astronomy Provides: pyregion ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7531085 pyregion-2.1.1/README.rst0000664000175000017500000000207700000000000014013 0ustar00jjleejjleepyregion ======== pyregion is a python module to parse ds9 region files. It also supports ciao region files. * Code: https://github.com/astropy/pyregion * Docs: https://pyregion.readthedocs.io * PyPI: http://pypi.python.org/pypi/pyregion Installation: ``pip install pyregion`` Lead developer: Jae-Joon Lee ([@leejjoon](http://github.com/leejjoon)) FEATURES -------- * ds9 and ciao region files. * (physical, wcs) coordinate conversion to the image coordinate. * convert regions to matplotlib patches. * convert regions to spatial filter (i.e., generate mask images) LICENSE ------- All files are under MIT License. See LICENSE. Status ------ .. image:: https://travis-ci.org/astropy/pyregion.svg?branch=master :target: https://travis-ci.org/astropy/pyregion .. image:: https://coveralls.io/repos/astropy/pyregion/badge.svg?branch=master :target: https://coveralls.io/r/astropy/pyregion New regions package ------------------- See also the in-development ``regions`` package at https://github.com/astropy/regions a new astronomy package for regions based on Astropy. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7571084 pyregion-2.1.1/ah_bootstrap.py0000664000175000017500000011116600000000000015363 0ustar00jjleejjlee""" This bootstrap module contains code for ensuring that the astropy_helpers package will be importable by the time the setup.py script runs. It also includes some workarounds to ensure that a recent-enough version of setuptools is being used for the installation. This module should be the first thing imported in the setup.py of distributions that make use of the utilities in astropy_helpers. If the distribution ships with its own copy of astropy_helpers, this module will first attempt to import from the shipped copy. However, it will also check PyPI to see if there are any bug-fix releases on top of the current version that may be useful to get past platform-specific bugs that have been fixed. When running setup.py, use the ``--offline`` command-line option to disable the auto-upgrade checks. When this module is imported or otherwise executed it automatically calls a main function that attempts to read the project's setup.cfg file, which it checks for a configuration section called ``[ah_bootstrap]`` the presences of that section, and options therein, determine the next step taken: If it contains an option called ``auto_use`` with a value of ``True``, it will automatically call the main function of this module called `use_astropy_helpers` (see that function's docstring for full details). Otherwise no further action is taken and by default the system-installed version of astropy-helpers will be used (however, ``ah_bootstrap.use_astropy_helpers`` may be called manually from within the setup.py script). This behavior can also be controlled using the ``--auto-use`` and ``--no-auto-use`` command-line flags. For clarity, an alias for ``--no-auto-use`` is ``--use-system-astropy-helpers``, and we recommend using the latter if needed. Additional options in the ``[ah_boostrap]`` section of setup.cfg have the same names as the arguments to `use_astropy_helpers`, and can be used to configure the bootstrap script when ``auto_use = True``. See https://github.com/astropy/astropy-helpers for more details, and for the latest version of this module. """ import contextlib import errno import io import locale import os import re import subprocess as sp import sys from distutils import log from distutils.debug import DEBUG try: from ConfigParser import ConfigParser, RawConfigParser except ImportError: from configparser import ConfigParser, RawConfigParser import pkg_resources from setuptools import Distribution from setuptools.package_index import PackageIndex # This is the minimum Python version required for astropy-helpers __minimum_python_version__ = (2, 7) if sys.version_info[0] < 3: _str_types = (str, unicode) _text_type = unicode PY3 = False else: _str_types = (str, bytes) _text_type = str PY3 = True # TODO: Maybe enable checking for a specific version of astropy_helpers? DIST_NAME = 'astropy-helpers' PACKAGE_NAME = 'astropy_helpers' if PY3: UPPER_VERSION_EXCLUSIVE = None else: UPPER_VERSION_EXCLUSIVE = '3' # Defaults for other options DOWNLOAD_IF_NEEDED = True INDEX_URL = 'https://pypi.python.org/simple' USE_GIT = True OFFLINE = False AUTO_UPGRADE = True # A list of all the configuration options and their required types CFG_OPTIONS = [ ('auto_use', bool), ('path', str), ('download_if_needed', bool), ('index_url', str), ('use_git', bool), ('offline', bool), ('auto_upgrade', bool) ] # Start off by parsing the setup.cfg file SETUP_CFG = ConfigParser() if os.path.exists('setup.cfg'): try: SETUP_CFG.read('setup.cfg') except Exception as e: if DEBUG: raise log.error( "Error reading setup.cfg: {0!r}\n{1} will not be " "automatically bootstrapped and package installation may fail." "\n{2}".format(e, PACKAGE_NAME, _err_help_msg)) # We used package_name in the package template for a while instead of name if SETUP_CFG.has_option('metadata', 'name'): parent_package = SETUP_CFG.get('metadata', 'name') elif SETUP_CFG.has_option('metadata', 'package_name'): parent_package = SETUP_CFG.get('metadata', 'package_name') else: parent_package = None if SETUP_CFG.has_option('options', 'python_requires'): python_requires = SETUP_CFG.get('options', 'python_requires') # The python_requires key has a syntax that can be parsed by SpecifierSet # in the packaging package. However, we don't want to have to depend on that # package, so instead we can use setuptools (which bundles packaging). We # have to add 'python' to parse it with Requirement. from pkg_resources import Requirement req = Requirement.parse('python' + python_requires) # We want the Python version as a string, which we can get from the platform module import platform # strip off trailing '+' incase this is a dev install of python python_version = platform.python_version().strip('+') # allow pre-releases to count as 'new enough' if not req.specifier.contains(python_version, True): if parent_package is None: print("ERROR: Python {} is required by this package".format(req.specifier)) else: print("ERROR: Python {} is required by {}".format(req.specifier, parent_package)) sys.exit(1) if sys.version_info < __minimum_python_version__: if parent_package is None: print("ERROR: Python {} or later is required by astropy-helpers".format( __minimum_python_version__)) else: print("ERROR: Python {} or later is required by astropy-helpers for {}".format( __minimum_python_version__, parent_package)) sys.exit(1) # What follows are several import statements meant to deal with install-time # issues with either missing or misbehaving pacakges (including making sure # setuptools itself is installed): # Check that setuptools 1.0 or later is present from distutils.version import LooseVersion try: import setuptools assert LooseVersion(setuptools.__version__) >= LooseVersion('1.0') except (ImportError, AssertionError): print("ERROR: setuptools 1.0 or later is required by astropy-helpers") sys.exit(1) # typing as a dependency for 1.6.1+ Sphinx causes issues when imported after # initializing submodule with ah_boostrap.py # See discussion and references in # https://github.com/astropy/astropy-helpers/issues/302 try: import typing # noqa except ImportError: pass # Note: The following import is required as a workaround to # https://github.com/astropy/astropy-helpers/issues/89; if we don't import this # module now, it will get cleaned up after `run_setup` is called, but that will # later cause the TemporaryDirectory class defined in it to stop working when # used later on by setuptools try: import setuptools.py31compat # noqa except ImportError: pass # matplotlib can cause problems if it is imported from within a call of # run_setup(), because in some circumstances it will try to write to the user's # home directory, resulting in a SandboxViolation. See # https://github.com/matplotlib/matplotlib/pull/4165 # Making sure matplotlib, if it is available, is imported early in the setup # process can mitigate this (note importing matplotlib.pyplot has the same # issue) try: import matplotlib matplotlib.use('Agg') import matplotlib.pyplot except: # Ignore if this fails for *any* reason* pass # End compatibility imports... class _Bootstrapper(object): """ Bootstrapper implementation. See ``use_astropy_helpers`` for parameter documentation. """ def __init__(self, path=None, index_url=None, use_git=None, offline=None, download_if_needed=None, auto_upgrade=None): if path is None: path = PACKAGE_NAME if not (isinstance(path, _str_types) or path is False): raise TypeError('path must be a string or False') if PY3 and not isinstance(path, _text_type): fs_encoding = sys.getfilesystemencoding() path = path.decode(fs_encoding) # path to unicode self.path = path # Set other option attributes, using defaults where necessary self.index_url = index_url if index_url is not None else INDEX_URL self.offline = offline if offline is not None else OFFLINE # If offline=True, override download and auto-upgrade if self.offline: download_if_needed = False auto_upgrade = False self.download = (download_if_needed if download_if_needed is not None else DOWNLOAD_IF_NEEDED) self.auto_upgrade = (auto_upgrade if auto_upgrade is not None else AUTO_UPGRADE) # If this is a release then the .git directory will not exist so we # should not use git. git_dir_exists = os.path.exists(os.path.join(os.path.dirname(__file__), '.git')) if use_git is None and not git_dir_exists: use_git = False self.use_git = use_git if use_git is not None else USE_GIT # Declared as False by default--later we check if astropy-helpers can be # upgraded from PyPI, but only if not using a source distribution (as in # the case of import from a git submodule) self.is_submodule = False @classmethod def main(cls, argv=None): if argv is None: argv = sys.argv config = cls.parse_config() config.update(cls.parse_command_line(argv)) auto_use = config.pop('auto_use', False) bootstrapper = cls(**config) if auto_use: # Run the bootstrapper, otherwise the setup.py is using the old # use_astropy_helpers() interface, in which case it will run the # bootstrapper manually after reconfiguring it. bootstrapper.run() return bootstrapper @classmethod def parse_config(cls): if not SETUP_CFG.has_section('ah_bootstrap'): return {} config = {} for option, type_ in CFG_OPTIONS: if not SETUP_CFG.has_option('ah_bootstrap', option): continue if type_ is bool: value = SETUP_CFG.getboolean('ah_bootstrap', option) else: value = SETUP_CFG.get('ah_bootstrap', option) config[option] = value return config @classmethod def parse_command_line(cls, argv=None): if argv is None: argv = sys.argv config = {} # For now we just pop recognized ah_bootstrap options out of the # arg list. This is imperfect; in the unlikely case that a setup.py # custom command or even custom Distribution class defines an argument # of the same name then we will break that. However there's a catch22 # here that we can't just do full argument parsing right here, because # we don't yet know *how* to parse all possible command-line arguments. if '--no-git' in argv: config['use_git'] = False argv.remove('--no-git') if '--offline' in argv: config['offline'] = True argv.remove('--offline') if '--auto-use' in argv: config['auto_use'] = True argv.remove('--auto-use') if '--no-auto-use' in argv: config['auto_use'] = False argv.remove('--no-auto-use') if '--use-system-astropy-helpers' in argv: config['auto_use'] = False argv.remove('--use-system-astropy-helpers') return config def run(self): strategies = ['local_directory', 'local_file', 'index'] dist = None # First, remove any previously imported versions of astropy_helpers; # this is necessary for nested installs where one package's installer # is installing another package via setuptools.sandbox.run_setup, as in # the case of setup_requires for key in list(sys.modules): try: if key == PACKAGE_NAME or key.startswith(PACKAGE_NAME + '.'): del sys.modules[key] except AttributeError: # Sometimes mysterious non-string things can turn up in # sys.modules continue # Check to see if the path is a submodule self.is_submodule = self._check_submodule() for strategy in strategies: method = getattr(self, 'get_{0}_dist'.format(strategy)) dist = method() if dist is not None: break else: raise _AHBootstrapSystemExit( "No source found for the {0!r} package; {0} must be " "available and importable as a prerequisite to building " "or installing this package.".format(PACKAGE_NAME)) # This is a bit hacky, but if astropy_helpers was loaded from a # directory/submodule its Distribution object gets a "precedence" of # "DEVELOP_DIST". However, in other cases it gets a precedence of # "EGG_DIST". However, when activing the distribution it will only be # placed early on sys.path if it is treated as an EGG_DIST, so always # do that dist = dist.clone(precedence=pkg_resources.EGG_DIST) # Otherwise we found a version of astropy-helpers, so we're done # Just active the found distribution on sys.path--if we did a # download this usually happens automatically but it doesn't hurt to # do it again # Note: Adding the dist to the global working set also activates it # (makes it importable on sys.path) by default. try: pkg_resources.working_set.add(dist, replace=True) except TypeError: # Some (much) older versions of setuptools do not have the # replace=True option here. These versions are old enough that all # bets may be off anyways, but it's easy enough to work around just # in case... if dist.key in pkg_resources.working_set.by_key: del pkg_resources.working_set.by_key[dist.key] pkg_resources.working_set.add(dist) @property def config(self): """ A `dict` containing the options this `_Bootstrapper` was configured with. """ return dict((optname, getattr(self, optname)) for optname, _ in CFG_OPTIONS if hasattr(self, optname)) def get_local_directory_dist(self): """ Handle importing a vendored package from a subdirectory of the source distribution. """ if not os.path.isdir(self.path): return log.info('Attempting to import astropy_helpers from {0} {1!r}'.format( 'submodule' if self.is_submodule else 'directory', self.path)) dist = self._directory_import() if dist is None: log.warn( 'The requested path {0!r} for importing {1} does not ' 'exist, or does not contain a copy of the {1} ' 'package.'.format(self.path, PACKAGE_NAME)) elif self.auto_upgrade and not self.is_submodule: # A version of astropy-helpers was found on the available path, but # check to see if a bugfix release is available on PyPI upgrade = self._do_upgrade(dist) if upgrade is not None: dist = upgrade return dist def get_local_file_dist(self): """ Handle importing from a source archive; this also uses setup_requires but points easy_install directly to the source archive. """ if not os.path.isfile(self.path): return log.info('Attempting to unpack and import astropy_helpers from ' '{0!r}'.format(self.path)) try: dist = self._do_download(find_links=[self.path]) except Exception as e: if DEBUG: raise log.warn( 'Failed to import {0} from the specified archive {1!r}: ' '{2}'.format(PACKAGE_NAME, self.path, str(e))) dist = None if dist is not None and self.auto_upgrade: # A version of astropy-helpers was found on the available path, but # check to see if a bugfix release is available on PyPI upgrade = self._do_upgrade(dist) if upgrade is not None: dist = upgrade return dist def get_index_dist(self): if not self.download: log.warn('Downloading {0!r} disabled.'.format(DIST_NAME)) return None log.warn( "Downloading {0!r}; run setup.py with the --offline option to " "force offline installation.".format(DIST_NAME)) try: dist = self._do_download() except Exception as e: if DEBUG: raise log.warn( 'Failed to download and/or install {0!r} from {1!r}:\n' '{2}'.format(DIST_NAME, self.index_url, str(e))) dist = None # No need to run auto-upgrade here since we've already presumably # gotten the most up-to-date version from the package index return dist def _directory_import(self): """ Import astropy_helpers from the given path, which will be added to sys.path. Must return True if the import succeeded, and False otherwise. """ # Return True on success, False on failure but download is allowed, and # otherwise raise SystemExit path = os.path.abspath(self.path) # Use an empty WorkingSet rather than the man # pkg_resources.working_set, since on older versions of setuptools this # will invoke a VersionConflict when trying to install an upgrade ws = pkg_resources.WorkingSet([]) ws.add_entry(path) dist = ws.by_key.get(DIST_NAME) if dist is None: # We didn't find an egg-info/dist-info in the given path, but if a # setup.py exists we can generate it setup_py = os.path.join(path, 'setup.py') if os.path.isfile(setup_py): # We use subprocess instead of run_setup from setuptools to # avoid segmentation faults - see the following for more details: # https://github.com/cython/cython/issues/2104 sp.check_output([sys.executable, 'setup.py', 'egg_info'], cwd=path) for dist in pkg_resources.find_distributions(path, True): # There should be only one... return dist return dist def _do_download(self, version='', find_links=None): if find_links: allow_hosts = '' index_url = None else: allow_hosts = None index_url = self.index_url # Annoyingly, setuptools will not handle other arguments to # Distribution (such as options) before handling setup_requires, so it # is not straightforward to programmatically augment the arguments which # are passed to easy_install class _Distribution(Distribution): def get_option_dict(self, command_name): opts = Distribution.get_option_dict(self, command_name) if command_name == 'easy_install': if find_links is not None: opts['find_links'] = ('setup script', find_links) if index_url is not None: opts['index_url'] = ('setup script', index_url) if allow_hosts is not None: opts['allow_hosts'] = ('setup script', allow_hosts) return opts if version: req = '{0}=={1}'.format(DIST_NAME, version) else: if UPPER_VERSION_EXCLUSIVE is None: req = DIST_NAME else: req = '{0}<{1}'.format(DIST_NAME, UPPER_VERSION_EXCLUSIVE) attrs = {'setup_requires': [req]} # NOTE: we need to parse the config file (e.g. setup.cfg) to make sure # it honours the options set in the [easy_install] section, and we need # to explicitly fetch the requirement eggs as setup_requires does not # get honored in recent versions of setuptools: # https://github.com/pypa/setuptools/issues/1273 try: context = _verbose if DEBUG else _silence with context(): dist = _Distribution(attrs=attrs) try: dist.parse_config_files(ignore_option_errors=True) dist.fetch_build_eggs(req) except TypeError: # On older versions of setuptools, ignore_option_errors # doesn't exist, and the above two lines are not needed # so we can just continue pass # If the setup_requires succeeded it will have added the new dist to # the main working_set return pkg_resources.working_set.by_key.get(DIST_NAME) except Exception as e: if DEBUG: raise msg = 'Error retrieving {0} from {1}:\n{2}' if find_links: source = find_links[0] elif index_url != INDEX_URL: source = index_url else: source = 'PyPI' raise Exception(msg.format(DIST_NAME, source, repr(e))) def _do_upgrade(self, dist): # Build up a requirement for a higher bugfix release but a lower minor # release (so API compatibility is guaranteed) next_version = _next_version(dist.parsed_version) req = pkg_resources.Requirement.parse( '{0}>{1},<{2}'.format(DIST_NAME, dist.version, next_version)) package_index = PackageIndex(index_url=self.index_url) upgrade = package_index.obtain(req) if upgrade is not None: return self._do_download(version=upgrade.version) def _check_submodule(self): """ Check if the given path is a git submodule. See the docstrings for ``_check_submodule_using_git`` and ``_check_submodule_no_git`` for further details. """ if (self.path is None or (os.path.exists(self.path) and not os.path.isdir(self.path))): return False if self.use_git: return self._check_submodule_using_git() else: return self._check_submodule_no_git() def _check_submodule_using_git(self): """ Check if the given path is a git submodule. If so, attempt to initialize and/or update the submodule if needed. This function makes calls to the ``git`` command in subprocesses. The ``_check_submodule_no_git`` option uses pure Python to check if the given path looks like a git submodule, but it cannot perform updates. """ cmd = ['git', 'submodule', 'status', '--', self.path] try: log.info('Running `{0}`; use the --no-git option to disable git ' 'commands'.format(' '.join(cmd))) returncode, stdout, stderr = run_cmd(cmd) except _CommandNotFound: # The git command simply wasn't found; this is most likely the # case on user systems that don't have git and are simply # trying to install the package from PyPI or a source # distribution. Silently ignore this case and simply don't try # to use submodules return False stderr = stderr.strip() if returncode != 0 and stderr: # Unfortunately the return code alone cannot be relied on, as # earlier versions of git returned 0 even if the requested submodule # does not exist # This is a warning that occurs in perl (from running git submodule) # which only occurs with a malformatted locale setting which can # happen sometimes on OSX. See again # https://github.com/astropy/astropy/issues/2749 perl_warning = ('perl: warning: Falling back to the standard locale ' '("C").') if not stderr.strip().endswith(perl_warning): # Some other unknown error condition occurred log.warn('git submodule command failed ' 'unexpectedly:\n{0}'.format(stderr)) return False # Output of `git submodule status` is as follows: # # 1: Status indicator: '-' for submodule is uninitialized, '+' if # submodule is initialized but is not at the commit currently indicated # in .gitmodules (and thus needs to be updated), or 'U' if the # submodule is in an unstable state (i.e. has merge conflicts) # # 2. SHA-1 hash of the current commit of the submodule (we don't really # need this information but it's useful for checking that the output is # correct) # # 3. The output of `git describe` for the submodule's current commit # hash (this includes for example what branches the commit is on) but # only if the submodule is initialized. We ignore this information for # now _git_submodule_status_re = re.compile( r'^(?P[+-U ])(?P[0-9a-f]{40}) ' r'(?P\S+)( .*)?$') # The stdout should only contain one line--the status of the # requested submodule m = _git_submodule_status_re.match(stdout) if m: # Yes, the path *is* a git submodule self._update_submodule(m.group('submodule'), m.group('status')) return True else: log.warn( 'Unexpected output from `git submodule status`:\n{0}\n' 'Will attempt import from {1!r} regardless.'.format( stdout, self.path)) return False def _check_submodule_no_git(self): """ Like ``_check_submodule_using_git``, but simply parses the .gitmodules file to determine if the supplied path is a git submodule, and does not exec any subprocesses. This can only determine if a path is a submodule--it does not perform updates, etc. This function may need to be updated if the format of the .gitmodules file is changed between git versions. """ gitmodules_path = os.path.abspath('.gitmodules') if not os.path.isfile(gitmodules_path): return False # This is a minimal reader for gitconfig-style files. It handles a few of # the quirks that make gitconfig files incompatible with ConfigParser-style # files, but does not support the full gitconfig syntax (just enough # needed to read a .gitmodules file). gitmodules_fileobj = io.StringIO() # Must use io.open for cross-Python-compatible behavior wrt unicode with io.open(gitmodules_path) as f: for line in f: # gitconfig files are more flexible with leading whitespace; just # go ahead and remove it line = line.lstrip() # comments can start with either # or ; if line and line[0] in (':', ';'): continue gitmodules_fileobj.write(line) gitmodules_fileobj.seek(0) cfg = RawConfigParser() try: cfg.readfp(gitmodules_fileobj) except Exception as exc: log.warn('Malformatted .gitmodules file: {0}\n' '{1} cannot be assumed to be a git submodule.'.format( exc, self.path)) return False for section in cfg.sections(): if not cfg.has_option(section, 'path'): continue submodule_path = cfg.get(section, 'path').rstrip(os.sep) if submodule_path == self.path.rstrip(os.sep): return True return False def _update_submodule(self, submodule, status): if status == ' ': # The submodule is up to date; no action necessary return elif status == '-': if self.offline: raise _AHBootstrapSystemExit( "Cannot initialize the {0} submodule in --offline mode; " "this requires being able to clone the submodule from an " "online repository.".format(submodule)) cmd = ['update', '--init'] action = 'Initializing' elif status == '+': cmd = ['update'] action = 'Updating' if self.offline: cmd.append('--no-fetch') elif status == 'U': raise _AHBootstrapSystemExit( 'Error: Submodule {0} contains unresolved merge conflicts. ' 'Please complete or abandon any changes in the submodule so that ' 'it is in a usable state, then try again.'.format(submodule)) else: log.warn('Unknown status {0!r} for git submodule {1!r}. Will ' 'attempt to use the submodule as-is, but try to ensure ' 'that the submodule is in a clean state and contains no ' 'conflicts or errors.\n{2}'.format(status, submodule, _err_help_msg)) return err_msg = None cmd = ['git', 'submodule'] + cmd + ['--', submodule] log.warn('{0} {1} submodule with: `{2}`'.format( action, submodule, ' '.join(cmd))) try: log.info('Running `{0}`; use the --no-git option to disable git ' 'commands'.format(' '.join(cmd))) returncode, stdout, stderr = run_cmd(cmd) except OSError as e: err_msg = str(e) else: if returncode != 0: err_msg = stderr if err_msg is not None: log.warn('An unexpected error occurred updating the git submodule ' '{0!r}:\n{1}\n{2}'.format(submodule, err_msg, _err_help_msg)) class _CommandNotFound(OSError): """ An exception raised when a command run with run_cmd is not found on the system. """ def run_cmd(cmd): """ Run a command in a subprocess, given as a list of command-line arguments. Returns a ``(returncode, stdout, stderr)`` tuple. """ try: p = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.PIPE) # XXX: May block if either stdout or stderr fill their buffers; # however for the commands this is currently used for that is # unlikely (they should have very brief output) stdout, stderr = p.communicate() except OSError as e: if DEBUG: raise if e.errno == errno.ENOENT: msg = 'Command not found: `{0}`'.format(' '.join(cmd)) raise _CommandNotFound(msg, cmd) else: raise _AHBootstrapSystemExit( 'An unexpected error occurred when running the ' '`{0}` command:\n{1}'.format(' '.join(cmd), str(e))) # Can fail of the default locale is not configured properly. See # https://github.com/astropy/astropy/issues/2749. For the purposes under # consideration 'latin1' is an acceptable fallback. try: stdio_encoding = locale.getdefaultlocale()[1] or 'latin1' except ValueError: # Due to an OSX oddity locale.getdefaultlocale() can also crash # depending on the user's locale/language settings. See: # http://bugs.python.org/issue18378 stdio_encoding = 'latin1' # Unlikely to fail at this point but even then let's be flexible if not isinstance(stdout, _text_type): stdout = stdout.decode(stdio_encoding, 'replace') if not isinstance(stderr, _text_type): stderr = stderr.decode(stdio_encoding, 'replace') return (p.returncode, stdout, stderr) def _next_version(version): """ Given a parsed version from pkg_resources.parse_version, returns a new version string with the next minor version. Examples ======== >>> _next_version(pkg_resources.parse_version('1.2.3')) '1.3.0' """ if hasattr(version, 'base_version'): # New version parsing from setuptools >= 8.0 if version.base_version: parts = version.base_version.split('.') else: parts = [] else: parts = [] for part in version: if part.startswith('*'): break parts.append(part) parts = [int(p) for p in parts] if len(parts) < 3: parts += [0] * (3 - len(parts)) major, minor, micro = parts[:3] return '{0}.{1}.{2}'.format(major, minor + 1, 0) class _DummyFile(object): """A noop writeable object.""" errors = '' # Required for Python 3.x encoding = 'utf-8' def write(self, s): pass def flush(self): pass @contextlib.contextmanager def _verbose(): yield @contextlib.contextmanager def _silence(): """A context manager that silences sys.stdout and sys.stderr.""" old_stdout = sys.stdout old_stderr = sys.stderr sys.stdout = _DummyFile() sys.stderr = _DummyFile() exception_occurred = False try: yield except: exception_occurred = True # Go ahead and clean up so that exception handling can work normally sys.stdout = old_stdout sys.stderr = old_stderr raise if not exception_occurred: sys.stdout = old_stdout sys.stderr = old_stderr _err_help_msg = """ If the problem persists consider installing astropy_helpers manually using pip (`pip install astropy_helpers`) or by manually downloading the source archive, extracting it, and installing by running `python setup.py install` from the root of the extracted source code. """ class _AHBootstrapSystemExit(SystemExit): def __init__(self, *args): if not args: msg = 'An unknown problem occurred bootstrapping astropy_helpers.' else: msg = args[0] msg += '\n' + _err_help_msg super(_AHBootstrapSystemExit, self).__init__(msg, *args[1:]) BOOTSTRAPPER = _Bootstrapper.main() def use_astropy_helpers(**kwargs): """ Ensure that the `astropy_helpers` module is available and is importable. This supports automatic submodule initialization if astropy_helpers is included in a project as a git submodule, or will download it from PyPI if necessary. Parameters ---------- path : str or None, optional A filesystem path relative to the root of the project's source code that should be added to `sys.path` so that `astropy_helpers` can be imported from that path. If the path is a git submodule it will automatically be initialized and/or updated. The path may also be to a ``.tar.gz`` archive of the astropy_helpers source distribution. In this case the archive is automatically unpacked and made temporarily available on `sys.path` as a ``.egg`` archive. If `None` skip straight to downloading. download_if_needed : bool, optional If the provided filesystem path is not found an attempt will be made to download astropy_helpers from PyPI. It will then be made temporarily available on `sys.path` as a ``.egg`` archive (using the ``setup_requires`` feature of setuptools. If the ``--offline`` option is given at the command line the value of this argument is overridden to `False`. index_url : str, optional If provided, use a different URL for the Python package index than the main PyPI server. use_git : bool, optional If `False` no git commands will be used--this effectively disables support for git submodules. If the ``--no-git`` option is given at the command line the value of this argument is overridden to `False`. auto_upgrade : bool, optional By default, when installing a package from a non-development source distribution ah_boostrap will try to automatically check for patch releases to astropy-helpers on PyPI and use the patched version over any bundled versions. Setting this to `False` will disable that functionality. If the ``--offline`` option is given at the command line the value of this argument is overridden to `False`. offline : bool, optional If `False` disable all actions that require an internet connection, including downloading packages from the package index and fetching updates to any git submodule. Defaults to `True`. """ global BOOTSTRAPPER config = BOOTSTRAPPER.config config.update(**kwargs) # Create a new bootstrapper with the updated configuration and run it BOOTSTRAPPER = _Bootstrapper(**config) BOOTSTRAPPER.run() ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/0000775000175000017500000000000000000000000015541 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/CHANGES.rst0000664000175000017500000004336600000000000017357 0ustar00jjleejjleeastropy-helpers Changelog ************************* 2.0.10 (2019-05-29) ------------------- - Removed ``tocdepthfix`` sphinx extension that worked around a big in Sphinx that has been long fixed. [#475] - Allow Python dev versions to pass the python version check. [#476] - Updated bundled version of sphinx-automodapi to v0.11. [#478] 2.0.9 (2019-02-22) ------------------ - Updated bundled version of sphinx-automodapi to v0.10. [#439] - Updated bundled sphinx extensions version to sphinx-astropy v1.1.1. [#454] - Include package name in error message for Python version in ``ah_bootstrap.py``. [#441] 2.0.8 (2018-12-04) ------------------ - Fixed compatibility with Sphinx 1.8+. [#428] - Fixed error that occurs when installing a package in an environment where ``numpy`` is not already installed. [#404] - Updated bundled version of sphinx-automodapi to v0.9. [#422] - Updated bundled version of numpydoc to v0.8.0. [#423] 2.0.7 (2018-06-01) ------------------ - Removing ez_setup.py file and requiring setuptools 1.0 or later. [#384] 2.0.6 (2018-02-24) ------------------ - Avoid deprecation warning due to ``exclude=`` keyword in ``setup.py``. [#379] 2.0.5 (2018-02-22) ------------------ - Fix segmentation faults that occurred when the astropy-helpers submodule was first initialized in packages that also contained Cython code. [#375] 2.0.4 (2018-02-09) ------------------ - Support dotted package names as namespace packages in generate_version_py. [#370] - Fix compatibility with setuptools 36.x and above. [#372] - Fix false negative in add_openmp_flags_if_available when measuring code coverage with gcc. [#374] 2.0.3 (2018-01-20) ------------------ - Make sure that astropy-helpers 3.x.x is not downloaded on Python 2. [#363] - The bundled version of sphinx-automodapi has been updated to v0.7. [#365] - Add --auto-use and --no-auto-use command-line flags to match the ``auto_use`` configuration option, and add an alias ``--use-system-astropy-helpers`` for ``--no-auto-use``. [#366] 2.0.2 (2017-10-13) ------------------ - Added new helper function add_openmp_flags_if_available that can add OpenMP compilation flags to a C/Cython extension if needed. [#346] - Update numpydoc to v0.7. [#343] - The function ``get_git_devstr`` now returns ``'0'`` instead of ``None`` when no git repository is present. This allows generation of development version strings that are in a format that ``setuptools`` expects (e.g. "1.1.3.dev0" instead of "1.1.3.dev"). [#330] - It is now possible to override generated timestamps to make builds reproducible by setting the ``SOURCE_DATE_EPOCH`` environment variable [#341] - Mark Sphinx extensions as parallel-safe. [#344] - Switch to using mathjax instead of imgmath for local builds. [#342] - Deprecate ``exclude`` parameter of various functions in setup_helpers since it could not work as intended. Add new function ``add_exclude_packages`` to provide intended behavior. [#331] - Allow custom Sphinx doctest extension to recognize and process standard doctest directives ``testsetup`` and ``doctest``. [#335] 2.0.1 (2017-07-28) ------------------ - Fix compatibility with Sphinx <1.5. [#326] 2.0 (2017-07-06) ---------------- - Add support for package that lies in a subdirectory. [#249] - Removing ``compat.subprocess``. [#298] - Python 3.3 is no longer supported. [#300] - The 'automodapi' Sphinx extension (and associated dependencies) has now been moved to a standalone package which can be found at https://github.com/astropy/sphinx-automodapi - this is now bundled in astropy-helpers under astropy_helpers.extern.automodapi for convenience. Version shipped with astropy-helpers is v0.6. [#278, #303, #309, #323] - The ``numpydoc`` Sphinx extension has now been moved to ``astropy_helpers.extern``. [#278] - Fix ``build_docs`` error catching, so it doesn't hide Sphinx errors. [#292] - Fix compatibility with Sphinx 1.6. [#318] - Updating ez_setup.py to the last version before it's removal. [#321] 1.3.1 (2017-03-18) ------------------ - Fixed the missing button to hide output in documentation code blocks. [#287] - Fixed bug when ``build_docs`` when running with the clean (-l) option. [#289] - Add alternative location for various intersphinx inventories to fall back to. [#293] 1.3 (2016-12-16) ---------------- - ``build_sphinx`` has been deprecated in favor of the ``build_docs`` command. [#246] - Force the use of Cython's old ``build_ext`` command. A new ``build_ext`` command was added in Cython 0.25, but it does not work with astropy-helpers currently. [#261] 1.2 (2016-06-18) ---------------- - Added sphinx configuration value ``automodsumm_inherited_members``. If ``True`` this will include members that are inherited from a base class in the generated API docs. Defaults to ``False`` which matches the previous behavior. [#215] - Fixed ``build_sphinx`` to recognize builds that succeeded but have output *after* the "build succeeded." statement. This only applies when ``--warnings-returncode`` is given (which is primarily relevant for Travis documentation builds). [#223] - Fixed ``build_sphinx`` the sphinx extensions to not output a spurious warning for sphinx versions > 1.4. [#229] - Add Python version dependent local sphinx inventories that contain otherwise missing references. [#216] - ``astropy_helpers`` now require Sphinx 1.3 or later. [#226] 1.1.2 (2016-03-9) ----------------- - The CSS for the sphinx documentation was altered to prevent some text overflow problems. [#217] 1.1.1 (2015-12-23) ------------------ - Fixed crash in build with ``AttributeError: cython_create_listing`` with older versions of setuptools. [#209, #210] 1.1 (2015-12-10) ---------------- - The original ``AstropyTest`` class in ``astropy_helpers``, which implements the ``setup.py test`` command, is deprecated in favor of moving the implementation of that command closer to the actual Astropy test runner in ``astropy.tests``. Now a dummy ``test`` command is provided solely for informing users that they need ``astropy`` installed to run the tests (however, the previous, now deprecated implementation is still provided and continues to work with older versions of Astropy). See the related issue for more details. [#184] - Added a useful new utility function to ``astropy_helpers.utils`` called ``find_data_files``. This is similar to the ``find_packages`` function in setuptools in that it can be used to search a package for data files (matching a pattern) that can be passed to the ``package_data`` argument for ``setup()``. See the docstring to ``astropy_helpers.utils.find_data_files`` for more details. [#42] - The ``astropy_helpers`` module now sets the global ``_ASTROPY_SETUP_`` flag upon import (from within a ``setup.py``) script, so it's not necessary to have this in the ``setup.py`` script explicitly. If in doubt though, there's no harm in setting it twice. Putting it in ``astropy_helpers`` just ensures that any other imports that occur during build will have this flag set. [#191] - It is now possible to use Cython as a ``setup_requires`` build requirement, and still build Cython extensions even if Cython wasn't available at the beginning of the build processes (that is, is automatically downloaded via setuptools' processing of ``setup_requires``). [#185] - Moves the ``adjust_compiler`` check into the ``build_ext`` command itself, so it's only used when actually building extension modules. This also deprecates the stand-alone ``adjust_compiler`` function. [#76] - When running the ``build_sphinx`` / ``build_docs`` command with the ``-w`` option, the output from Sphinx is streamed as it runs instead of silently buffering until the doc build is complete. [#197] 1.0.7 (unreleased) ------------------ - Fix missing import in ``astropy_helpers/utils.py``. [#196] 1.0.6 (2015-12-04) ------------------ - Fixed bug where running ``./setup.py build_sphinx`` could return successfully even when the build was not successful (and should have returned a non-zero error code). [#199] 1.0.5 (2015-10-02) ------------------ - Fixed a regression in the ``./setup.py test`` command that was introduced in v1.0.4. 1.0.4 (2015-10-02) ------------------ - Fixed issue with the sphinx documentation css where the line numbers for code blocks were not aligned with the code. [#179, #180] - Fixed crash that could occur when trying to build Cython extension modules when Cython isn't installed. Normally this still results in a failed build, but was supposed to provide a useful error message rather than crash outright (this was a regression introduced in v1.0.3). [#181] - Fixed a crash that could occur on Python 3 when a working C compiler isn't found. [#182] - Quieted warnings about deprecated Numpy API in Cython extensions, when building Cython extensions against Numpy >= 1.7. [#183, #186] - Improved support for py.test >= 2.7--running the ``./setup.py test`` command now copies all doc pages into the temporary test directory as well, so that all test files have a "common root directory". [#189, #190] 1.0.3 (2015-07-22) ------------------ - Added workaround for sphinx-doc/sphinx#1843, a but in Sphinx which prevented descriptor classes with a custom metaclass from being documented correctly. [#158] - Added an alias for the ``./setup.py build_sphinx`` command as ``./setup.py build_docs`` which, to a new contributor, should hopefully be less cryptic. [#161] - The fonts in graphviz diagrams now match the font of the HTML content. [#169] - When the documentation is built on readthedocs.org, MathJax will be used for math rendering. When built elsewhere, the "pngmath" extension is still used for math rendering. [#170] - Fix crash when importing astropy_helpers when running with ``python -OO`` [#171] - The ``build`` and ``build_ext`` stages now correctly recognize the presence of C++ files in Cython extensions (previously only vanilla C worked). [#173] 1.0.2 (2015-04-02) ------------------ - Various fixes enabling the astropy-helpers Sphinx build command and Sphinx extensions to work with Sphinx 1.3. [#148] - More improvement to the ability to handle multiple versions of astropy-helpers being imported in the same Python interpreter session in the (somewhat rare) case of nested installs. [#147] - To better support high resolution displays, use SVG for the astropy logo and linkout image, falling back to PNGs for browsers that support it. [#150, #151] - Improve ``setup_helpers.get_compiler_version`` to work with more compilers, and to return more info. This will help fix builds of Astropy on less common compilers, like Sun C. [#153] 1.0.1 (2015-03-04) ------------------ - Released in concert with v0.4.8 to address the same issues. 0.4.8 (2015-03-04) ------------------ - Improved the ``ah_bootstrap`` script's ability to override existing installations of astropy-helpers with new versions in the context of installing multiple packages simultaneously within the same Python interpreter (e.g. when one package has in its ``setup_requires`` another package that uses a different version of astropy-helpers. [#144] - Added a workaround to an issue in matplotlib that can, in rare cases, lead to a crash when installing packages that import matplotlib at build time. [#144] 1.0 (2015-02-17) ---------------- - Added new pre-/post-command hook points for ``setup.py`` commands. Now any package can define code to run before and/or after any ``setup.py`` command without having to manually subclass that command by adding ``pre__hook`` and ``post__hook`` callables to the package's ``setup_package.py`` module. See the PR for more details. [#112] - The following objects in the ``astropy_helpers.setup_helpers`` module have been relocated: - ``get_dummy_distribution``, ``get_distutils_*``, ``get_compiler_option``, ``add_command_option``, ``is_distutils_display_option`` -> ``astropy_helpers.distutils_helpers`` - ``should_build_with_cython``, ``generate_build_ext_command`` -> ``astropy_helpers.commands.build_ext`` - ``AstropyBuildPy`` -> ``astropy_helpers.commands.build_py`` - ``AstropyBuildSphinx`` -> ``astropy_helpers.commands.build_sphinx`` - ``AstropyInstall`` -> ``astropy_helpers.commands.install`` - ``AstropyInstallLib`` -> ``astropy_helpers.commands.install_lib`` - ``AstropyRegister`` -> ``astropy_helpers.commands.register`` - ``get_pkg_version_module`` -> ``astropy_helpers.version_helpers`` - ``write_if_different``, ``import_file``, ``get_numpy_include_path`` -> ``astropy_helpers.utils`` All of these are "soft" deprecations in the sense that they are still importable from ``astropy_helpers.setup_helpers`` for now, and there is no (easy) way to produce deprecation warnings when importing these objects from ``setup_helpers`` rather than directly from the modules they are defined in. But please consider updating any imports to these objects. [#110] - Use of the ``astropy.sphinx.ext.astropyautosummary`` extension is deprecated for use with Sphinx < 1.2. Instead it should suffice to remove this extension for the ``extensions`` list in your ``conf.py`` and add the stock ``sphinx.ext.autosummary`` instead. [#131] 0.4.7 (2015-02-17) ------------------ - Fixed incorrect/missing git hash being added to the generated ``version.py`` when creating a release. [#141] 0.4.6 (2015-02-16) ------------------ - Fixed problems related to the automatically generated _compiler module not being created properly. [#139] 0.4.5 (2015-02-11) ------------------ - Fixed an issue where ah_bootstrap.py could blow up when astropy_helper's version number is 1.0. - Added a workaround for documentation of properties in the rare case where the class's metaclass has a property of the same name. [#130] - Fixed an issue on Python 3 where importing a package using astropy-helper's generated version.py module would crash when the current working directory is an empty git repository. [#114, #137] - Fixed an issue where the "revision count" appended to .dev versions by the generated version.py did not accurately reflect the revision count for the package it belongs to, and could be invalid if the current working directory is an unrelated git repository. [#107, #137] - Likewise, fixed a confusing warning message that could occur in the same circumstances as the above issue. [#121, #137] 0.4.4 (2014-12-31) ------------------ - More improvements for building the documentation using Python 3.x. [#100] - Additional minor fixes to Python 3 support. [#115] - Updates to support new test features in Astropy [#92, #106] 0.4.3 (2014-10-22) ------------------ - The generated ``version.py`` file now preserves the git hash of installed copies of the package as well as when building a source distribution. That is, the git hash of the changeset that was installed/released is preserved. [#87] - In smart resolver add resolution for class links when they exist in the intersphinx inventory, but not the mapping of the current package (e.g. when an affiliated package uses an astropy core class of which "actual" and "documented" location differs) [#88] - Fixed a bug that could occur when running ``setup.py`` for the first time in a repository that uses astropy-helpers as a submodule: ``AttributeError: 'NoneType' object has no attribute 'mkdtemp'`` [#89] - Fixed a bug where optional arguments to the ``doctest-skip`` Sphinx directive were sometimes being left in the generated documentation output. [#90] - Improved support for building the documentation using Python 3.x. [#96] - Avoid error message if .git directory is not present. [#91] 0.4.2 (2014-08-09) ------------------ - Fixed some CSS issues in generated API docs. [#69] - Fixed the warning message that could be displayed when generating a version number with some older versions of git. [#77] - Fixed automodsumm to work with new versions of Sphinx (>= 1.2.2). [#80] 0.4.1 (2014-08-08) ------------------ - Fixed git revision count on systems with git versions older than v1.7.2. [#70] - Fixed display of warning text when running a git command fails (previously the output of stderr was not being decoded properly). [#70] - The ``--offline`` flag to ``setup.py`` understood by ``ah_bootstrap.py`` now also prevents git from going online to fetch submodule updates. [#67] - The Sphinx extension for converting issue numbers to links in the changelog now supports working on arbitrary pages via a new ``conf.py`` setting: ``changelog_links_docpattern``. By default it affects the ``changelog`` and ``whatsnew`` pages in one's Sphinx docs. [#61] - Fixed crash that could result from users with missing/misconfigured locale settings. [#58] - The font used for code examples in the docs is now the system-defined ``monospace`` font, rather than ``Minaco``, which is not available on all platforms. [#50] 0.4 (2014-07-15) ---------------- - Initial release of astropy-helpers. See `APE4 `_ for details of the motivation and design of this package. - The ``astropy_helpers`` package replaces the following modules in the ``astropy`` package: - ``astropy.setup_helpers`` -> ``astropy_helpers.setup_helpers`` - ``astropy.version_helpers`` -> ``astropy_helpers.version_helpers`` - ``astropy.sphinx`` - > ``astropy_helpers.sphinx`` These modules should be considered deprecated in ``astropy``, and any new, non-critical changes to those modules will be made in ``astropy_helpers`` instead. Affiliated packages wishing to make use those modules (as in the Astropy package-template) should use the versions from ``astropy_helpers`` instead, and include the ``ah_bootstrap.py`` script in their project, for bootstrapping the ``astropy_helpers`` package in their setup.py script. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/LICENSE.rst0000664000175000017500000000272300000000000017361 0ustar00jjleejjleeCopyright (c) 2014, Astropy Developers 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 Astropy Team 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 HOLDER 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. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/README.rst0000664000175000017500000000503300000000000017231 0ustar00jjleejjleeastropy-helpers =============== * Stable versions: https://pypi.org/project/astropy-helpers/ * Development version, issue tracker: https://github.com/astropy/astropy-helpers This project provides a Python package, ``astropy_helpers``, which includes many build, installation, and documentation-related tools used by the Astropy project, but packaged separately for use by other projects that wish to leverage this work. The motivation behind this package and details of its implementation are in the accepted `Astropy Proposal for Enhancement (APE) 4 `_. The ``astropy_helpers.extern`` sub-module includes modules developed elsewhere that are bundled here for convenience. At the moment, this consists of the following two sphinx extensions: * `numpydoc `_, a Sphinx extension developed as part of the Numpy project. This is used to parse docstrings in Numpy format * `sphinx-automodapi `_, a Sphinx extension developed as part of the Astropy project. This used to be developed directly in ``astropy-helpers`` but is now a standalone package. Issues with these sub-modules should be reported in their respective repositories, and we will regularly update the bundled versions to reflect the latest released versions. ``astropy_helpers`` includes a special "bootstrap" module called ``ah_bootstrap.py`` which is intended to be used by a project's setup.py in order to ensure that the ``astropy_helpers`` package is available for build/installation. This is similar to the ``ez_setup.py`` module that is shipped with some projects to bootstrap `setuptools `_. As described in APE4, the version numbers for ``astropy_helpers`` follow the corresponding major/minor version of the `astropy core package `_, but with an independent sequence of micro (bugfix) version numbers. Hence, the initial release is 0.4, in parallel with Astropy v0.4, which will be the first version of Astropy to use ``astropy-helpers``. For examples of how to implement ``astropy-helpers`` in a project, see the ``setup.py`` and ``setup.cfg`` files of the `Affiliated package template `_. .. image:: https://travis-ci.org/astropy/astropy-helpers.svg :target: https://travis-ci.org/astropy/astropy-helpers .. image:: https://coveralls.io/repos/astropy/astropy-helpers/badge.svg :target: https://coveralls.io/r/astropy/astropy-helpers ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/ah_bootstrap.py0000664000175000017500000011116600000000000020606 0ustar00jjleejjlee""" This bootstrap module contains code for ensuring that the astropy_helpers package will be importable by the time the setup.py script runs. It also includes some workarounds to ensure that a recent-enough version of setuptools is being used for the installation. This module should be the first thing imported in the setup.py of distributions that make use of the utilities in astropy_helpers. If the distribution ships with its own copy of astropy_helpers, this module will first attempt to import from the shipped copy. However, it will also check PyPI to see if there are any bug-fix releases on top of the current version that may be useful to get past platform-specific bugs that have been fixed. When running setup.py, use the ``--offline`` command-line option to disable the auto-upgrade checks. When this module is imported or otherwise executed it automatically calls a main function that attempts to read the project's setup.cfg file, which it checks for a configuration section called ``[ah_bootstrap]`` the presences of that section, and options therein, determine the next step taken: If it contains an option called ``auto_use`` with a value of ``True``, it will automatically call the main function of this module called `use_astropy_helpers` (see that function's docstring for full details). Otherwise no further action is taken and by default the system-installed version of astropy-helpers will be used (however, ``ah_bootstrap.use_astropy_helpers`` may be called manually from within the setup.py script). This behavior can also be controlled using the ``--auto-use`` and ``--no-auto-use`` command-line flags. For clarity, an alias for ``--no-auto-use`` is ``--use-system-astropy-helpers``, and we recommend using the latter if needed. Additional options in the ``[ah_boostrap]`` section of setup.cfg have the same names as the arguments to `use_astropy_helpers`, and can be used to configure the bootstrap script when ``auto_use = True``. See https://github.com/astropy/astropy-helpers for more details, and for the latest version of this module. """ import contextlib import errno import io import locale import os import re import subprocess as sp import sys from distutils import log from distutils.debug import DEBUG try: from ConfigParser import ConfigParser, RawConfigParser except ImportError: from configparser import ConfigParser, RawConfigParser import pkg_resources from setuptools import Distribution from setuptools.package_index import PackageIndex # This is the minimum Python version required for astropy-helpers __minimum_python_version__ = (2, 7) if sys.version_info[0] < 3: _str_types = (str, unicode) _text_type = unicode PY3 = False else: _str_types = (str, bytes) _text_type = str PY3 = True # TODO: Maybe enable checking for a specific version of astropy_helpers? DIST_NAME = 'astropy-helpers' PACKAGE_NAME = 'astropy_helpers' if PY3: UPPER_VERSION_EXCLUSIVE = None else: UPPER_VERSION_EXCLUSIVE = '3' # Defaults for other options DOWNLOAD_IF_NEEDED = True INDEX_URL = 'https://pypi.python.org/simple' USE_GIT = True OFFLINE = False AUTO_UPGRADE = True # A list of all the configuration options and their required types CFG_OPTIONS = [ ('auto_use', bool), ('path', str), ('download_if_needed', bool), ('index_url', str), ('use_git', bool), ('offline', bool), ('auto_upgrade', bool) ] # Start off by parsing the setup.cfg file SETUP_CFG = ConfigParser() if os.path.exists('setup.cfg'): try: SETUP_CFG.read('setup.cfg') except Exception as e: if DEBUG: raise log.error( "Error reading setup.cfg: {0!r}\n{1} will not be " "automatically bootstrapped and package installation may fail." "\n{2}".format(e, PACKAGE_NAME, _err_help_msg)) # We used package_name in the package template for a while instead of name if SETUP_CFG.has_option('metadata', 'name'): parent_package = SETUP_CFG.get('metadata', 'name') elif SETUP_CFG.has_option('metadata', 'package_name'): parent_package = SETUP_CFG.get('metadata', 'package_name') else: parent_package = None if SETUP_CFG.has_option('options', 'python_requires'): python_requires = SETUP_CFG.get('options', 'python_requires') # The python_requires key has a syntax that can be parsed by SpecifierSet # in the packaging package. However, we don't want to have to depend on that # package, so instead we can use setuptools (which bundles packaging). We # have to add 'python' to parse it with Requirement. from pkg_resources import Requirement req = Requirement.parse('python' + python_requires) # We want the Python version as a string, which we can get from the platform module import platform # strip off trailing '+' incase this is a dev install of python python_version = platform.python_version().strip('+') # allow pre-releases to count as 'new enough' if not req.specifier.contains(python_version, True): if parent_package is None: print("ERROR: Python {} is required by this package".format(req.specifier)) else: print("ERROR: Python {} is required by {}".format(req.specifier, parent_package)) sys.exit(1) if sys.version_info < __minimum_python_version__: if parent_package is None: print("ERROR: Python {} or later is required by astropy-helpers".format( __minimum_python_version__)) else: print("ERROR: Python {} or later is required by astropy-helpers for {}".format( __minimum_python_version__, parent_package)) sys.exit(1) # What follows are several import statements meant to deal with install-time # issues with either missing or misbehaving pacakges (including making sure # setuptools itself is installed): # Check that setuptools 1.0 or later is present from distutils.version import LooseVersion try: import setuptools assert LooseVersion(setuptools.__version__) >= LooseVersion('1.0') except (ImportError, AssertionError): print("ERROR: setuptools 1.0 or later is required by astropy-helpers") sys.exit(1) # typing as a dependency for 1.6.1+ Sphinx causes issues when imported after # initializing submodule with ah_boostrap.py # See discussion and references in # https://github.com/astropy/astropy-helpers/issues/302 try: import typing # noqa except ImportError: pass # Note: The following import is required as a workaround to # https://github.com/astropy/astropy-helpers/issues/89; if we don't import this # module now, it will get cleaned up after `run_setup` is called, but that will # later cause the TemporaryDirectory class defined in it to stop working when # used later on by setuptools try: import setuptools.py31compat # noqa except ImportError: pass # matplotlib can cause problems if it is imported from within a call of # run_setup(), because in some circumstances it will try to write to the user's # home directory, resulting in a SandboxViolation. See # https://github.com/matplotlib/matplotlib/pull/4165 # Making sure matplotlib, if it is available, is imported early in the setup # process can mitigate this (note importing matplotlib.pyplot has the same # issue) try: import matplotlib matplotlib.use('Agg') import matplotlib.pyplot except: # Ignore if this fails for *any* reason* pass # End compatibility imports... class _Bootstrapper(object): """ Bootstrapper implementation. See ``use_astropy_helpers`` for parameter documentation. """ def __init__(self, path=None, index_url=None, use_git=None, offline=None, download_if_needed=None, auto_upgrade=None): if path is None: path = PACKAGE_NAME if not (isinstance(path, _str_types) or path is False): raise TypeError('path must be a string or False') if PY3 and not isinstance(path, _text_type): fs_encoding = sys.getfilesystemencoding() path = path.decode(fs_encoding) # path to unicode self.path = path # Set other option attributes, using defaults where necessary self.index_url = index_url if index_url is not None else INDEX_URL self.offline = offline if offline is not None else OFFLINE # If offline=True, override download and auto-upgrade if self.offline: download_if_needed = False auto_upgrade = False self.download = (download_if_needed if download_if_needed is not None else DOWNLOAD_IF_NEEDED) self.auto_upgrade = (auto_upgrade if auto_upgrade is not None else AUTO_UPGRADE) # If this is a release then the .git directory will not exist so we # should not use git. git_dir_exists = os.path.exists(os.path.join(os.path.dirname(__file__), '.git')) if use_git is None and not git_dir_exists: use_git = False self.use_git = use_git if use_git is not None else USE_GIT # Declared as False by default--later we check if astropy-helpers can be # upgraded from PyPI, but only if not using a source distribution (as in # the case of import from a git submodule) self.is_submodule = False @classmethod def main(cls, argv=None): if argv is None: argv = sys.argv config = cls.parse_config() config.update(cls.parse_command_line(argv)) auto_use = config.pop('auto_use', False) bootstrapper = cls(**config) if auto_use: # Run the bootstrapper, otherwise the setup.py is using the old # use_astropy_helpers() interface, in which case it will run the # bootstrapper manually after reconfiguring it. bootstrapper.run() return bootstrapper @classmethod def parse_config(cls): if not SETUP_CFG.has_section('ah_bootstrap'): return {} config = {} for option, type_ in CFG_OPTIONS: if not SETUP_CFG.has_option('ah_bootstrap', option): continue if type_ is bool: value = SETUP_CFG.getboolean('ah_bootstrap', option) else: value = SETUP_CFG.get('ah_bootstrap', option) config[option] = value return config @classmethod def parse_command_line(cls, argv=None): if argv is None: argv = sys.argv config = {} # For now we just pop recognized ah_bootstrap options out of the # arg list. This is imperfect; in the unlikely case that a setup.py # custom command or even custom Distribution class defines an argument # of the same name then we will break that. However there's a catch22 # here that we can't just do full argument parsing right here, because # we don't yet know *how* to parse all possible command-line arguments. if '--no-git' in argv: config['use_git'] = False argv.remove('--no-git') if '--offline' in argv: config['offline'] = True argv.remove('--offline') if '--auto-use' in argv: config['auto_use'] = True argv.remove('--auto-use') if '--no-auto-use' in argv: config['auto_use'] = False argv.remove('--no-auto-use') if '--use-system-astropy-helpers' in argv: config['auto_use'] = False argv.remove('--use-system-astropy-helpers') return config def run(self): strategies = ['local_directory', 'local_file', 'index'] dist = None # First, remove any previously imported versions of astropy_helpers; # this is necessary for nested installs where one package's installer # is installing another package via setuptools.sandbox.run_setup, as in # the case of setup_requires for key in list(sys.modules): try: if key == PACKAGE_NAME or key.startswith(PACKAGE_NAME + '.'): del sys.modules[key] except AttributeError: # Sometimes mysterious non-string things can turn up in # sys.modules continue # Check to see if the path is a submodule self.is_submodule = self._check_submodule() for strategy in strategies: method = getattr(self, 'get_{0}_dist'.format(strategy)) dist = method() if dist is not None: break else: raise _AHBootstrapSystemExit( "No source found for the {0!r} package; {0} must be " "available and importable as a prerequisite to building " "or installing this package.".format(PACKAGE_NAME)) # This is a bit hacky, but if astropy_helpers was loaded from a # directory/submodule its Distribution object gets a "precedence" of # "DEVELOP_DIST". However, in other cases it gets a precedence of # "EGG_DIST". However, when activing the distribution it will only be # placed early on sys.path if it is treated as an EGG_DIST, so always # do that dist = dist.clone(precedence=pkg_resources.EGG_DIST) # Otherwise we found a version of astropy-helpers, so we're done # Just active the found distribution on sys.path--if we did a # download this usually happens automatically but it doesn't hurt to # do it again # Note: Adding the dist to the global working set also activates it # (makes it importable on sys.path) by default. try: pkg_resources.working_set.add(dist, replace=True) except TypeError: # Some (much) older versions of setuptools do not have the # replace=True option here. These versions are old enough that all # bets may be off anyways, but it's easy enough to work around just # in case... if dist.key in pkg_resources.working_set.by_key: del pkg_resources.working_set.by_key[dist.key] pkg_resources.working_set.add(dist) @property def config(self): """ A `dict` containing the options this `_Bootstrapper` was configured with. """ return dict((optname, getattr(self, optname)) for optname, _ in CFG_OPTIONS if hasattr(self, optname)) def get_local_directory_dist(self): """ Handle importing a vendored package from a subdirectory of the source distribution. """ if not os.path.isdir(self.path): return log.info('Attempting to import astropy_helpers from {0} {1!r}'.format( 'submodule' if self.is_submodule else 'directory', self.path)) dist = self._directory_import() if dist is None: log.warn( 'The requested path {0!r} for importing {1} does not ' 'exist, or does not contain a copy of the {1} ' 'package.'.format(self.path, PACKAGE_NAME)) elif self.auto_upgrade and not self.is_submodule: # A version of astropy-helpers was found on the available path, but # check to see if a bugfix release is available on PyPI upgrade = self._do_upgrade(dist) if upgrade is not None: dist = upgrade return dist def get_local_file_dist(self): """ Handle importing from a source archive; this also uses setup_requires but points easy_install directly to the source archive. """ if not os.path.isfile(self.path): return log.info('Attempting to unpack and import astropy_helpers from ' '{0!r}'.format(self.path)) try: dist = self._do_download(find_links=[self.path]) except Exception as e: if DEBUG: raise log.warn( 'Failed to import {0} from the specified archive {1!r}: ' '{2}'.format(PACKAGE_NAME, self.path, str(e))) dist = None if dist is not None and self.auto_upgrade: # A version of astropy-helpers was found on the available path, but # check to see if a bugfix release is available on PyPI upgrade = self._do_upgrade(dist) if upgrade is not None: dist = upgrade return dist def get_index_dist(self): if not self.download: log.warn('Downloading {0!r} disabled.'.format(DIST_NAME)) return None log.warn( "Downloading {0!r}; run setup.py with the --offline option to " "force offline installation.".format(DIST_NAME)) try: dist = self._do_download() except Exception as e: if DEBUG: raise log.warn( 'Failed to download and/or install {0!r} from {1!r}:\n' '{2}'.format(DIST_NAME, self.index_url, str(e))) dist = None # No need to run auto-upgrade here since we've already presumably # gotten the most up-to-date version from the package index return dist def _directory_import(self): """ Import astropy_helpers from the given path, which will be added to sys.path. Must return True if the import succeeded, and False otherwise. """ # Return True on success, False on failure but download is allowed, and # otherwise raise SystemExit path = os.path.abspath(self.path) # Use an empty WorkingSet rather than the man # pkg_resources.working_set, since on older versions of setuptools this # will invoke a VersionConflict when trying to install an upgrade ws = pkg_resources.WorkingSet([]) ws.add_entry(path) dist = ws.by_key.get(DIST_NAME) if dist is None: # We didn't find an egg-info/dist-info in the given path, but if a # setup.py exists we can generate it setup_py = os.path.join(path, 'setup.py') if os.path.isfile(setup_py): # We use subprocess instead of run_setup from setuptools to # avoid segmentation faults - see the following for more details: # https://github.com/cython/cython/issues/2104 sp.check_output([sys.executable, 'setup.py', 'egg_info'], cwd=path) for dist in pkg_resources.find_distributions(path, True): # There should be only one... return dist return dist def _do_download(self, version='', find_links=None): if find_links: allow_hosts = '' index_url = None else: allow_hosts = None index_url = self.index_url # Annoyingly, setuptools will not handle other arguments to # Distribution (such as options) before handling setup_requires, so it # is not straightforward to programmatically augment the arguments which # are passed to easy_install class _Distribution(Distribution): def get_option_dict(self, command_name): opts = Distribution.get_option_dict(self, command_name) if command_name == 'easy_install': if find_links is not None: opts['find_links'] = ('setup script', find_links) if index_url is not None: opts['index_url'] = ('setup script', index_url) if allow_hosts is not None: opts['allow_hosts'] = ('setup script', allow_hosts) return opts if version: req = '{0}=={1}'.format(DIST_NAME, version) else: if UPPER_VERSION_EXCLUSIVE is None: req = DIST_NAME else: req = '{0}<{1}'.format(DIST_NAME, UPPER_VERSION_EXCLUSIVE) attrs = {'setup_requires': [req]} # NOTE: we need to parse the config file (e.g. setup.cfg) to make sure # it honours the options set in the [easy_install] section, and we need # to explicitly fetch the requirement eggs as setup_requires does not # get honored in recent versions of setuptools: # https://github.com/pypa/setuptools/issues/1273 try: context = _verbose if DEBUG else _silence with context(): dist = _Distribution(attrs=attrs) try: dist.parse_config_files(ignore_option_errors=True) dist.fetch_build_eggs(req) except TypeError: # On older versions of setuptools, ignore_option_errors # doesn't exist, and the above two lines are not needed # so we can just continue pass # If the setup_requires succeeded it will have added the new dist to # the main working_set return pkg_resources.working_set.by_key.get(DIST_NAME) except Exception as e: if DEBUG: raise msg = 'Error retrieving {0} from {1}:\n{2}' if find_links: source = find_links[0] elif index_url != INDEX_URL: source = index_url else: source = 'PyPI' raise Exception(msg.format(DIST_NAME, source, repr(e))) def _do_upgrade(self, dist): # Build up a requirement for a higher bugfix release but a lower minor # release (so API compatibility is guaranteed) next_version = _next_version(dist.parsed_version) req = pkg_resources.Requirement.parse( '{0}>{1},<{2}'.format(DIST_NAME, dist.version, next_version)) package_index = PackageIndex(index_url=self.index_url) upgrade = package_index.obtain(req) if upgrade is not None: return self._do_download(version=upgrade.version) def _check_submodule(self): """ Check if the given path is a git submodule. See the docstrings for ``_check_submodule_using_git`` and ``_check_submodule_no_git`` for further details. """ if (self.path is None or (os.path.exists(self.path) and not os.path.isdir(self.path))): return False if self.use_git: return self._check_submodule_using_git() else: return self._check_submodule_no_git() def _check_submodule_using_git(self): """ Check if the given path is a git submodule. If so, attempt to initialize and/or update the submodule if needed. This function makes calls to the ``git`` command in subprocesses. The ``_check_submodule_no_git`` option uses pure Python to check if the given path looks like a git submodule, but it cannot perform updates. """ cmd = ['git', 'submodule', 'status', '--', self.path] try: log.info('Running `{0}`; use the --no-git option to disable git ' 'commands'.format(' '.join(cmd))) returncode, stdout, stderr = run_cmd(cmd) except _CommandNotFound: # The git command simply wasn't found; this is most likely the # case on user systems that don't have git and are simply # trying to install the package from PyPI or a source # distribution. Silently ignore this case and simply don't try # to use submodules return False stderr = stderr.strip() if returncode != 0 and stderr: # Unfortunately the return code alone cannot be relied on, as # earlier versions of git returned 0 even if the requested submodule # does not exist # This is a warning that occurs in perl (from running git submodule) # which only occurs with a malformatted locale setting which can # happen sometimes on OSX. See again # https://github.com/astropy/astropy/issues/2749 perl_warning = ('perl: warning: Falling back to the standard locale ' '("C").') if not stderr.strip().endswith(perl_warning): # Some other unknown error condition occurred log.warn('git submodule command failed ' 'unexpectedly:\n{0}'.format(stderr)) return False # Output of `git submodule status` is as follows: # # 1: Status indicator: '-' for submodule is uninitialized, '+' if # submodule is initialized but is not at the commit currently indicated # in .gitmodules (and thus needs to be updated), or 'U' if the # submodule is in an unstable state (i.e. has merge conflicts) # # 2. SHA-1 hash of the current commit of the submodule (we don't really # need this information but it's useful for checking that the output is # correct) # # 3. The output of `git describe` for the submodule's current commit # hash (this includes for example what branches the commit is on) but # only if the submodule is initialized. We ignore this information for # now _git_submodule_status_re = re.compile( r'^(?P[+-U ])(?P[0-9a-f]{40}) ' r'(?P\S+)( .*)?$') # The stdout should only contain one line--the status of the # requested submodule m = _git_submodule_status_re.match(stdout) if m: # Yes, the path *is* a git submodule self._update_submodule(m.group('submodule'), m.group('status')) return True else: log.warn( 'Unexpected output from `git submodule status`:\n{0}\n' 'Will attempt import from {1!r} regardless.'.format( stdout, self.path)) return False def _check_submodule_no_git(self): """ Like ``_check_submodule_using_git``, but simply parses the .gitmodules file to determine if the supplied path is a git submodule, and does not exec any subprocesses. This can only determine if a path is a submodule--it does not perform updates, etc. This function may need to be updated if the format of the .gitmodules file is changed between git versions. """ gitmodules_path = os.path.abspath('.gitmodules') if not os.path.isfile(gitmodules_path): return False # This is a minimal reader for gitconfig-style files. It handles a few of # the quirks that make gitconfig files incompatible with ConfigParser-style # files, but does not support the full gitconfig syntax (just enough # needed to read a .gitmodules file). gitmodules_fileobj = io.StringIO() # Must use io.open for cross-Python-compatible behavior wrt unicode with io.open(gitmodules_path) as f: for line in f: # gitconfig files are more flexible with leading whitespace; just # go ahead and remove it line = line.lstrip() # comments can start with either # or ; if line and line[0] in (':', ';'): continue gitmodules_fileobj.write(line) gitmodules_fileobj.seek(0) cfg = RawConfigParser() try: cfg.readfp(gitmodules_fileobj) except Exception as exc: log.warn('Malformatted .gitmodules file: {0}\n' '{1} cannot be assumed to be a git submodule.'.format( exc, self.path)) return False for section in cfg.sections(): if not cfg.has_option(section, 'path'): continue submodule_path = cfg.get(section, 'path').rstrip(os.sep) if submodule_path == self.path.rstrip(os.sep): return True return False def _update_submodule(self, submodule, status): if status == ' ': # The submodule is up to date; no action necessary return elif status == '-': if self.offline: raise _AHBootstrapSystemExit( "Cannot initialize the {0} submodule in --offline mode; " "this requires being able to clone the submodule from an " "online repository.".format(submodule)) cmd = ['update', '--init'] action = 'Initializing' elif status == '+': cmd = ['update'] action = 'Updating' if self.offline: cmd.append('--no-fetch') elif status == 'U': raise _AHBootstrapSystemExit( 'Error: Submodule {0} contains unresolved merge conflicts. ' 'Please complete or abandon any changes in the submodule so that ' 'it is in a usable state, then try again.'.format(submodule)) else: log.warn('Unknown status {0!r} for git submodule {1!r}. Will ' 'attempt to use the submodule as-is, but try to ensure ' 'that the submodule is in a clean state and contains no ' 'conflicts or errors.\n{2}'.format(status, submodule, _err_help_msg)) return err_msg = None cmd = ['git', 'submodule'] + cmd + ['--', submodule] log.warn('{0} {1} submodule with: `{2}`'.format( action, submodule, ' '.join(cmd))) try: log.info('Running `{0}`; use the --no-git option to disable git ' 'commands'.format(' '.join(cmd))) returncode, stdout, stderr = run_cmd(cmd) except OSError as e: err_msg = str(e) else: if returncode != 0: err_msg = stderr if err_msg is not None: log.warn('An unexpected error occurred updating the git submodule ' '{0!r}:\n{1}\n{2}'.format(submodule, err_msg, _err_help_msg)) class _CommandNotFound(OSError): """ An exception raised when a command run with run_cmd is not found on the system. """ def run_cmd(cmd): """ Run a command in a subprocess, given as a list of command-line arguments. Returns a ``(returncode, stdout, stderr)`` tuple. """ try: p = sp.Popen(cmd, stdout=sp.PIPE, stderr=sp.PIPE) # XXX: May block if either stdout or stderr fill their buffers; # however for the commands this is currently used for that is # unlikely (they should have very brief output) stdout, stderr = p.communicate() except OSError as e: if DEBUG: raise if e.errno == errno.ENOENT: msg = 'Command not found: `{0}`'.format(' '.join(cmd)) raise _CommandNotFound(msg, cmd) else: raise _AHBootstrapSystemExit( 'An unexpected error occurred when running the ' '`{0}` command:\n{1}'.format(' '.join(cmd), str(e))) # Can fail of the default locale is not configured properly. See # https://github.com/astropy/astropy/issues/2749. For the purposes under # consideration 'latin1' is an acceptable fallback. try: stdio_encoding = locale.getdefaultlocale()[1] or 'latin1' except ValueError: # Due to an OSX oddity locale.getdefaultlocale() can also crash # depending on the user's locale/language settings. See: # http://bugs.python.org/issue18378 stdio_encoding = 'latin1' # Unlikely to fail at this point but even then let's be flexible if not isinstance(stdout, _text_type): stdout = stdout.decode(stdio_encoding, 'replace') if not isinstance(stderr, _text_type): stderr = stderr.decode(stdio_encoding, 'replace') return (p.returncode, stdout, stderr) def _next_version(version): """ Given a parsed version from pkg_resources.parse_version, returns a new version string with the next minor version. Examples ======== >>> _next_version(pkg_resources.parse_version('1.2.3')) '1.3.0' """ if hasattr(version, 'base_version'): # New version parsing from setuptools >= 8.0 if version.base_version: parts = version.base_version.split('.') else: parts = [] else: parts = [] for part in version: if part.startswith('*'): break parts.append(part) parts = [int(p) for p in parts] if len(parts) < 3: parts += [0] * (3 - len(parts)) major, minor, micro = parts[:3] return '{0}.{1}.{2}'.format(major, minor + 1, 0) class _DummyFile(object): """A noop writeable object.""" errors = '' # Required for Python 3.x encoding = 'utf-8' def write(self, s): pass def flush(self): pass @contextlib.contextmanager def _verbose(): yield @contextlib.contextmanager def _silence(): """A context manager that silences sys.stdout and sys.stderr.""" old_stdout = sys.stdout old_stderr = sys.stderr sys.stdout = _DummyFile() sys.stderr = _DummyFile() exception_occurred = False try: yield except: exception_occurred = True # Go ahead and clean up so that exception handling can work normally sys.stdout = old_stdout sys.stderr = old_stderr raise if not exception_occurred: sys.stdout = old_stdout sys.stderr = old_stderr _err_help_msg = """ If the problem persists consider installing astropy_helpers manually using pip (`pip install astropy_helpers`) or by manually downloading the source archive, extracting it, and installing by running `python setup.py install` from the root of the extracted source code. """ class _AHBootstrapSystemExit(SystemExit): def __init__(self, *args): if not args: msg = 'An unknown problem occurred bootstrapping astropy_helpers.' else: msg = args[0] msg += '\n' + _err_help_msg super(_AHBootstrapSystemExit, self).__init__(msg, *args[1:]) BOOTSTRAPPER = _Bootstrapper.main() def use_astropy_helpers(**kwargs): """ Ensure that the `astropy_helpers` module is available and is importable. This supports automatic submodule initialization if astropy_helpers is included in a project as a git submodule, or will download it from PyPI if necessary. Parameters ---------- path : str or None, optional A filesystem path relative to the root of the project's source code that should be added to `sys.path` so that `astropy_helpers` can be imported from that path. If the path is a git submodule it will automatically be initialized and/or updated. The path may also be to a ``.tar.gz`` archive of the astropy_helpers source distribution. In this case the archive is automatically unpacked and made temporarily available on `sys.path` as a ``.egg`` archive. If `None` skip straight to downloading. download_if_needed : bool, optional If the provided filesystem path is not found an attempt will be made to download astropy_helpers from PyPI. It will then be made temporarily available on `sys.path` as a ``.egg`` archive (using the ``setup_requires`` feature of setuptools. If the ``--offline`` option is given at the command line the value of this argument is overridden to `False`. index_url : str, optional If provided, use a different URL for the Python package index than the main PyPI server. use_git : bool, optional If `False` no git commands will be used--this effectively disables support for git submodules. If the ``--no-git`` option is given at the command line the value of this argument is overridden to `False`. auto_upgrade : bool, optional By default, when installing a package from a non-development source distribution ah_boostrap will try to automatically check for patch releases to astropy-helpers on PyPI and use the patched version over any bundled versions. Setting this to `False` will disable that functionality. If the ``--offline`` option is given at the command line the value of this argument is overridden to `False`. offline : bool, optional If `False` disable all actions that require an internet connection, including downloading packages from the package index and fetching updates to any git submodule. Defaults to `True`. """ global BOOTSTRAPPER config = BOOTSTRAPPER.config config.update(**kwargs) # Create a new bootstrapper with the updated configuration and run it BOOTSTRAPPER = _Bootstrapper(**config) BOOTSTRAPPER.run() ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/0000775000175000017500000000000000000000000020764 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/__init__.py0000664000175000017500000000345400000000000023103 0ustar00jjleejjleetry: from .version import version as __version__ from .version import githash as __githash__ except ImportError: __version__ = '' __githash__ = '' # If we've made it as far as importing astropy_helpers, we don't need # ah_bootstrap in sys.modules anymore. Getting rid of it is actually necessary # if the package we're installing has a setup_requires of another package that # uses astropy_helpers (and possibly a different version at that) # See https://github.com/astropy/astropy/issues/3541 import sys if 'ah_bootstrap' in sys.modules: del sys.modules['ah_bootstrap'] # Note, this is repeated from ah_bootstrap.py, but is here too in case this # astropy-helpers was upgraded to from an older version that did not have this # check in its ah_bootstrap. # matplotlib can cause problems if it is imported from within a call of # run_setup(), because in some circumstances it will try to write to the user's # home directory, resulting in a SandboxViolation. See # https://github.com/matplotlib/matplotlib/pull/4165 # Making sure matplotlib, if it is available, is imported early in the setup # process can mitigate this (note importing matplotlib.pyplot has the same # issue) try: import matplotlib matplotlib.use('Agg') import matplotlib.pyplot except: # Ignore if this fails for *any* reason* pass import os # Ensure that all module-level code in astropy or other packages know that # we're in setup mode: if ('__main__' in sys.modules and hasattr(sys.modules['__main__'], '__file__')): filename = os.path.basename(sys.modules['__main__'].__file__) if filename.rstrip('co') == 'setup.py': if sys.version_info[0] >= 3: import builtins else: import __builtin__ as builtins builtins._ASTROPY_SETUP_ = True del filename ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/0000775000175000017500000000000000000000000022565 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/__init__.py0000664000175000017500000000000000000000000024664 0ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/_dummy.py0000664000175000017500000000557400000000000024444 0ustar00jjleejjlee""" Provides a base class for a 'dummy' setup.py command that has no functionality (probably due to a missing requirement). This dummy command can raise an exception when it is run, explaining to the user what dependencies must be met to use this command. The reason this is at all tricky is that we want the command to be able to provide this message even when the user passes arguments to the command. If we don't know ahead of time what arguments the command can take, this is difficult, because distutils does not allow unknown arguments to be passed to a setup.py command. This hacks around that restriction to provide a useful error message even when a user passes arguments to the dummy implementation of a command. Use this like: try: from some_dependency import SetupCommand except ImportError: from ._dummy import _DummyCommand class SetupCommand(_DummyCommand): description = \ 'Implementation of SetupCommand from some_dependency; ' 'some_dependency must be installed to run this command' # This is the message that will be raised when a user tries to # run this command--define it as a class attribute. error_msg = \ "The 'setup_command' command requires the some_dependency " "package to be installed and importable." """ import sys from setuptools import Command from distutils.errors import DistutilsArgError from textwrap import dedent class _DummyCommandMeta(type): """ Causes an exception to be raised on accessing attributes of a command class so that if ``./setup.py command_name`` is run with additional command-line options we can provide a useful error message instead of the default that tells users the options are unrecognized. """ def __init__(cls, name, bases, members): if bases == (Command, object): # This is the _DummyCommand base class, presumably return if not hasattr(cls, 'description'): raise TypeError( "_DummyCommand subclass must have a 'description' " "attribute.") if not hasattr(cls, 'error_msg'): raise TypeError( "_DummyCommand subclass must have an 'error_msg' " "attribute.") def __getattribute__(cls, attr): if attr in ('description', 'error_msg'): # Allow cls.description to work so that `./setup.py # --help-commands` still works return super(_DummyCommandMeta, cls).__getattribute__(attr) raise DistutilsArgError(cls.error_msg) if sys.version_info[0] < 3: exec(dedent(""" class _DummyCommand(Command, object): __metaclass__ = _DummyCommandMeta """)) else: exec(dedent(""" class _DummyCommand(Command, object, metaclass=_DummyCommandMeta): pass """)) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/_test_compat.py0000664000175000017500000002671200000000000025630 0ustar00jjleejjlee""" Old implementation of ``./setup.py test`` command. This has been moved to astropy.tests as of Astropy v1.1.0, but a copy of the implementation is kept here for backwards compatibility. """ from __future__ import absolute_import, unicode_literals import inspect import os import shutil import subprocess import sys import tempfile from setuptools import Command from ..compat import _fix_user_options PY3 = sys.version_info[0] == 3 class AstropyTest(Command, object): description = 'Run the tests for this package' user_options = [ ('package=', 'P', "The name of a specific package to test, e.g. 'io.fits' or 'utils'. " "If nothing is specified, all default tests are run."), ('test-path=', 't', 'Specify a test location by path. If a relative path to a .py file, ' 'it is relative to the built package, so e.g., a leading "astropy/" ' 'is necessary. If a relative path to a .rst file, it is relative to ' 'the directory *below* the --docs-path directory, so a leading ' '"docs/" is usually necessary. May also be an absolute path.'), ('verbose-results', 'V', 'Turn on verbose output from pytest.'), ('plugins=', 'p', 'Plugins to enable when running pytest.'), ('pastebin=', 'b', "Enable pytest pastebin output. Either 'all' or 'failed'."), ('args=', 'a', 'Additional arguments to be passed to pytest.'), ('remote-data', 'R', 'Run tests that download remote data.'), ('pep8', '8', 'Enable PEP8 checking and disable regular tests. ' 'Requires the pytest-pep8 plugin.'), ('pdb', 'd', 'Start the interactive Python debugger on errors.'), ('coverage', 'c', 'Create a coverage report. Requires the coverage package.'), ('open-files', 'o', 'Fail if any tests leave files open. Requires the ' 'psutil package.'), ('parallel=', 'j', 'Run the tests in parallel on the specified number of ' 'CPUs. If negative, all the cores on the machine will be ' 'used. Requires the pytest-xdist plugin.'), ('docs-path=', None, 'The path to the documentation .rst files. If not provided, and ' 'the current directory contains a directory called "docs", that ' 'will be used.'), ('skip-docs', None, "Don't test the documentation .rst files."), ('repeat=', None, 'How many times to repeat each test (can be used to check for ' 'sporadic failures).'), ('temp-root=', None, 'The root directory in which to create the temporary testing files. ' 'If unspecified the system default is used (e.g. /tmp) as explained ' 'in the documentation for tempfile.mkstemp.') ] user_options = _fix_user_options(user_options) package_name = '' def initialize_options(self): self.package = None self.test_path = None self.verbose_results = False self.plugins = None self.pastebin = None self.args = None self.remote_data = False self.pep8 = False self.pdb = False self.coverage = False self.open_files = False self.parallel = 0 self.docs_path = None self.skip_docs = False self.repeat = None self.temp_root = None def finalize_options(self): # Normally we would validate the options here, but that's handled in # run_tests pass # Most of the test runner arguments have the same name as attributes on # this command class, with one exception (for now) _test_runner_arg_attr_map = { 'verbose': 'verbose_results' } def generate_testing_command(self): """ Build a Python script to run the tests. """ cmd_pre = '' # Commands to run before the test function cmd_post = '' # Commands to run after the test function if self.coverage: pre, post = self._generate_coverage_commands() cmd_pre += pre cmd_post += post def get_attr(arg): attr = self._test_runner_arg_attr_map.get(arg, arg) return getattr(self, attr) test_args = filter(lambda arg: hasattr(self, arg), self._get_test_runner_args()) test_args = ', '.join('{0}={1!r}'.format(arg, get_attr(arg)) for arg in test_args) if PY3: set_flag = "import builtins; builtins._ASTROPY_TEST_ = True" else: set_flag = "import __builtin__; __builtin__._ASTROPY_TEST_ = True" cmd = ('{cmd_pre}{0}; import {1.package_name}, sys; result = ' '{1.package_name}.test({test_args}); {cmd_post}' 'sys.exit(result)') return cmd.format(set_flag, self, cmd_pre=cmd_pre, cmd_post=cmd_post, test_args=test_args) def _validate_required_deps(self): """ This method checks that any required modules are installed before running the tests. """ try: import astropy # noqa except ImportError: raise ImportError( "The 'test' command requires the astropy package to be " "installed and importable.") def run(self): """ Run the tests! """ # Ensure there is a doc path if self.docs_path is None: if os.path.exists('docs'): self.docs_path = os.path.abspath('docs') # Build a testing install of the package self._build_temp_install() # Ensure all required packages are installed self._validate_required_deps() # Run everything in a try: finally: so that the tmp dir gets deleted. try: # Construct this modules testing command cmd = self.generate_testing_command() # Run the tests in a subprocess--this is necessary since # new extension modules may have appeared, and this is the # easiest way to set up a new environment # On Python 3.x prior to 3.3, the creation of .pyc files # is not atomic. py.test jumps through some hoops to make # this work by parsing import statements and carefully # importing files atomically. However, it can't detect # when __import__ is used, so its carefulness still fails. # The solution here (admittedly a bit of a hack), is to # turn off the generation of .pyc files altogether by # passing the `-B` switch to `python`. This does mean # that each core will have to compile .py file to bytecode # itself, rather than getting lucky and borrowing the work # already done by another core. Compilation is an # insignificant fraction of total testing time, though, so # it's probably not worth worrying about. retcode = subprocess.call([sys.executable, '-B', '-c', cmd], cwd=self.testing_path, close_fds=False) finally: # Remove temporary directory shutil.rmtree(self.tmp_dir) raise SystemExit(retcode) def _build_temp_install(self): """ Build the package and copy the build to a temporary directory for the purposes of testing this avoids creating pyc and __pycache__ directories inside the build directory """ self.reinitialize_command('build', inplace=True) self.run_command('build') build_cmd = self.get_finalized_command('build') new_path = os.path.abspath(build_cmd.build_lib) # On OSX the default path for temp files is under /var, but in most # cases on OSX /var is actually a symlink to /private/var; ensure we # dereference that link, because py.test is very sensitive to relative # paths... tmp_dir = tempfile.mkdtemp(prefix=self.package_name + '-test-', dir=self.temp_root) self.tmp_dir = os.path.realpath(tmp_dir) self.testing_path = os.path.join(self.tmp_dir, os.path.basename(new_path)) shutil.copytree(new_path, self.testing_path) new_docs_path = os.path.join(self.tmp_dir, os.path.basename(self.docs_path)) shutil.copytree(self.docs_path, new_docs_path) self.docs_path = new_docs_path shutil.copy('setup.cfg', self.tmp_dir) def _generate_coverage_commands(self): """ This method creates the post and pre commands if coverage is to be generated """ if self.parallel != 0: raise ValueError( "--coverage can not be used with --parallel") try: import coverage # noqa except ImportError: raise ImportError( "--coverage requires that the coverage package is " "installed.") # Don't use get_pkg_data_filename here, because it # requires importing astropy.config and thus screwing # up coverage results for those packages. coveragerc = os.path.join( self.testing_path, self.package_name, 'tests', 'coveragerc') # We create a coveragerc that is specific to the version # of Python we're running, so that we can mark branches # as being specifically for Python 2 or Python 3 with open(coveragerc, 'r') as fd: coveragerc_content = fd.read() if PY3: ignore_python_version = '2' else: ignore_python_version = '3' coveragerc_content = coveragerc_content.replace( "{ignore_python_version}", ignore_python_version).replace( "{packagename}", self.package_name) tmp_coveragerc = os.path.join(self.tmp_dir, 'coveragerc') with open(tmp_coveragerc, 'wb') as tmp: tmp.write(coveragerc_content.encode('utf-8')) cmd_pre = ( 'import coverage; ' 'cov = coverage.coverage(data_file="{0}", config_file="{1}"); ' 'cov.start();'.format( os.path.abspath(".coverage"), tmp_coveragerc)) cmd_post = ( 'cov.stop(); ' 'from astropy.tests.helper import _save_coverage; ' '_save_coverage(cov, result, "{0}", "{1}");'.format( os.path.abspath('.'), self.testing_path)) return cmd_pre, cmd_post def _get_test_runner_args(self): """ A hack to determine what arguments are supported by the package's test() function. In the future there should be a more straightforward API to determine this (really it should be determined by the ``TestRunner`` class for whatever version of Astropy is in use). """ if PY3: import builtins builtins._ASTROPY_TEST_ = True else: import __builtin__ __builtin__._ASTROPY_TEST_ = True try: pkg = __import__(self.package_name) if not hasattr(pkg, 'test'): raise ImportError( 'package {0} does not have a {0}.test() function as ' 'required by the Astropy test runner'.format(self.package_name)) argspec = inspect.getargspec(pkg.test) return argspec.args finally: if PY3: del builtins._ASTROPY_TEST_ else: del __builtin__._ASTROPY_TEST_ ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/build_ext.py0000664000175000017500000004651100000000000025125 0ustar00jjleejjleeimport errno import os import re import shlex import shutil import subprocess import sys import textwrap from distutils import log, ccompiler, sysconfig from distutils.core import Extension from distutils.ccompiler import get_default_compiler from setuptools.command.build_ext import build_ext as SetuptoolsBuildExt from ..utils import get_numpy_include_path, invalidate_caches, classproperty from ..version_helpers import get_pkg_version_module def should_build_with_cython(package, release=None): """Returns the previously used Cython version (or 'unknown' if not previously built) if Cython should be used to build extension modules from pyx files. If the ``release`` parameter is not specified an attempt is made to determine the release flag from `astropy.version`. """ try: version_module = __import__(package + '.cython_version', fromlist=['release', 'cython_version']) except ImportError: version_module = None if release is None and version_module is not None: try: release = version_module.release except AttributeError: pass try: cython_version = version_module.cython_version except AttributeError: cython_version = 'unknown' # Only build with Cython if, of course, Cython is installed, we're in a # development version (i.e. not release) or the Cython-generated source # files haven't been created yet (cython_version == 'unknown'). The latter # case can happen even when release is True if checking out a release tag # from the repository have_cython = False try: import Cython # noqa have_cython = True except ImportError: pass if have_cython and (not release or cython_version == 'unknown'): return cython_version else: return False _compiler_versions = {} def get_compiler_version(compiler): if compiler in _compiler_versions: return _compiler_versions[compiler] # Different flags to try to get the compiler version # TODO: It might be worth making this configurable to support # arbitrary odd compilers; though all bets may be off in such # cases anyway flags = ['--version', '--Version', '-version', '-Version', '-v', '-V'] def try_get_version(flag): process = subprocess.Popen( shlex.split(compiler, posix=('win' not in sys.platform)) + [flag], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = process.communicate() if process.returncode != 0: return 'unknown' output = stdout.strip().decode('latin-1') # Safest bet if not output: # Some compilers return their version info on stderr output = stderr.strip().decode('latin-1') if not output: output = 'unknown' return output for flag in flags: version = try_get_version(flag) if version != 'unknown': break # Cache results to speed up future calls _compiler_versions[compiler] = version return version # TODO: I think this can be reworked without having to create the class # programmatically. def generate_build_ext_command(packagename, release): """ Creates a custom 'build_ext' command that allows for manipulating some of the C extension options at build time. We use a function to build the class since the base class for build_ext may be different depending on certain build-time parameters (for example, we may use Cython's build_ext instead of the default version in distutils). Uses the default distutils.command.build_ext by default. """ class build_ext(SetuptoolsBuildExt, object): package_name = packagename is_release = release _user_options = SetuptoolsBuildExt.user_options[:] _boolean_options = SetuptoolsBuildExt.boolean_options[:] _help_options = SetuptoolsBuildExt.help_options[:] force_rebuild = False _broken_compiler_mapping = [ ('i686-apple-darwin[0-9]*-llvm-gcc-4.2', 'clang') ] # Warning: Spaghetti code ahead. # During setup.py, the setup_helpers module needs the ability to add # items to a command's user_options list. At this stage we don't know # whether or not we can build with Cython, and so don't know for sure # what base class will be used for build_ext; nevertheless we want to # be able to provide a list to add options into. # # Later, once setup() has been called we should have all build # dependencies included via setup_requires available. distutils needs # to be able to access the user_options as a *class* attribute before # the class has been initialized, but we do need to be able to # enumerate the options for the correct base class at that point @classproperty def user_options(cls): from distutils import core if core._setup_distribution is None: # We haven't gotten into setup() yet, and the Distribution has # not yet been initialized return cls._user_options return cls._final_class.user_options @classproperty def boolean_options(cls): # Similar to user_options above from distutils import core if core._setup_distribution is None: # We haven't gotten into setup() yet, and the Distribution has # not yet been initialized return cls._boolean_options return cls._final_class.boolean_options @classproperty def help_options(cls): # Similar to user_options above from distutils import core if core._setup_distribution is None: # We haven't gotten into setup() yet, and the Distribution has # not yet been initialized return cls._help_options return cls._final_class.help_options @classproperty(lazy=True) def _final_class(cls): """ Late determination of what the build_ext base class should be, depending on whether or not Cython is available. """ uses_cython = should_build_with_cython(cls.package_name, cls.is_release) if uses_cython: # We need to decide late on whether or not to use Cython's # build_ext (since Cython may not be available earlier in the # setup.py if it was brought in via setup_requires) try: from Cython.Distutils.old_build_ext import old_build_ext as base_cls except ImportError: from Cython.Distutils import build_ext as base_cls else: base_cls = SetuptoolsBuildExt # Create and return an instance of a new class based on this class # using one of the above possible base classes def merge_options(attr): base = getattr(base_cls, attr) ours = getattr(cls, '_' + attr) all_base = set(opt[0] for opt in base) return base + [opt for opt in ours if opt[0] not in all_base] boolean_options = (base_cls.boolean_options + [opt for opt in cls._boolean_options if opt not in base_cls.boolean_options]) members = dict(cls.__dict__) members.update({ 'user_options': merge_options('user_options'), 'help_options': merge_options('help_options'), 'boolean_options': boolean_options, 'uses_cython': uses_cython, }) # Update the base class for the original build_ext command build_ext.__bases__ = (base_cls, object) # Create a new class for the existing class, but now with the # appropriate base class depending on whether or not to use Cython. # Ensure that object is one of the bases to make a new-style class. return type(cls.__name__, (build_ext,), members) def __new__(cls, *args, **kwargs): # By the time the command is actually instantialized, the # Distribution instance for the build has been instantiated, which # means setup_requires has been processed--now we can determine # what base class we can use for the actual build, and return an # instance of a build_ext command that uses that base class (right # now the options being Cython.Distutils.build_ext, or the stock # setuptools build_ext) new_cls = super(build_ext, cls._final_class).__new__( cls._final_class) # Since the new cls is not a subclass of the original cls, we must # manually call its __init__ new_cls.__init__(*args, **kwargs) return new_cls def finalize_options(self): # Add a copy of the _compiler.so module as well, but only if there # are in fact C modules to compile (otherwise there's no reason to # include a record of the compiler used) # Note, self.extensions may not be set yet, but # self.distribution.ext_modules is where any extension modules # passed to setup() can be found self._adjust_compiler() extensions = self.distribution.ext_modules if extensions: build_py = self.get_finalized_command('build_py') package_dir = build_py.get_package_dir(packagename) src_path = os.path.relpath( os.path.join(os.path.dirname(__file__), 'src')) shutil.copy(os.path.join(src_path, 'compiler.c'), os.path.join(package_dir, '_compiler.c')) ext = Extension(self.package_name + '._compiler', [os.path.join(package_dir, '_compiler.c')]) extensions.insert(0, ext) super(build_ext, self).finalize_options() # Generate if self.uses_cython: try: from Cython import __version__ as cython_version except ImportError: # This shouldn't happen if we made it this far cython_version = None if (cython_version is not None and cython_version != self.uses_cython): self.force_rebuild = True # Update the used cython version self.uses_cython = cython_version # Regardless of the value of the '--force' option, force a rebuild # if the debug flag changed from the last build if self.force_rebuild: self.force = True def run(self): # For extensions that require 'numpy' in their include dirs, # replace 'numpy' with the actual paths np_include = None for extension in self.extensions: if 'numpy' in extension.include_dirs: if np_include is None: np_include = get_numpy_include_path() idx = extension.include_dirs.index('numpy') extension.include_dirs.insert(idx, np_include) extension.include_dirs.remove('numpy') self._check_cython_sources(extension) super(build_ext, self).run() # Update cython_version.py if building with Cython try: cython_version = get_pkg_version_module( packagename, fromlist=['cython_version'])[0] except (AttributeError, ImportError): cython_version = 'unknown' if self.uses_cython and self.uses_cython != cython_version: build_py = self.get_finalized_command('build_py') package_dir = build_py.get_package_dir(packagename) cython_py = os.path.join(package_dir, 'cython_version.py') with open(cython_py, 'w') as f: f.write('# Generated file; do not modify\n') f.write('cython_version = {0!r}\n'.format(self.uses_cython)) if os.path.isdir(self.build_lib): # The build/lib directory may not exist if the build_py # command was not previously run, which may sometimes be # the case self.copy_file(cython_py, os.path.join(self.build_lib, cython_py), preserve_mode=False) invalidate_caches() def _adjust_compiler(self): """ This function detects broken compilers and switches to another. If the environment variable CC is explicitly set, or a compiler is specified on the commandline, no override is performed -- the purpose here is to only override a default compiler. The specific compilers with problems are: * The default compiler in XCode-4.2, llvm-gcc-4.2, segfaults when compiling wcslib. The set of broken compilers can be updated by changing the compiler_mapping variable. It is a list of 2-tuples where the first in the pair is a regular expression matching the version of the broken compiler, and the second is the compiler to change to. """ if 'CC' in os.environ: # Check that CC is not set to llvm-gcc-4.2 c_compiler = os.environ['CC'] try: version = get_compiler_version(c_compiler) except OSError: msg = textwrap.dedent( """ The C compiler set by the CC environment variable: {compiler:s} cannot be found or executed. """.format(compiler=c_compiler)) log.warn(msg) sys.exit(1) for broken, fixed in self._broken_compiler_mapping: if re.match(broken, version): msg = textwrap.dedent( """Compiler specified by CC environment variable ({compiler:s}:{version:s}) will fail to compile {pkg:s}. Please set CC={fixed:s} and try again. You can do this, for example, by running: CC={fixed:s} python setup.py where is the command you ran. """.format(compiler=c_compiler, version=version, pkg=self.package_name, fixed=fixed)) log.warn(msg) sys.exit(1) # If C compiler is set via CC, and isn't broken, we are good to go. We # should definitely not try accessing the compiler specified by # ``sysconfig.get_config_var('CC')`` lower down, because this may fail # if the compiler used to compile Python is missing (and maybe this is # why the user is setting CC). For example, the official Python 2.7.3 # MacOS X binary was compiled with gcc-4.2, which is no longer available # in XCode 4. return if self.compiler is not None: # At this point, self.compiler will be set only if a compiler # was specified in the command-line or via setup.cfg, in which # case we don't do anything return compiler_type = ccompiler.get_default_compiler() if compiler_type == 'unix': # We have to get the compiler this way, as this is the one that is # used if os.environ['CC'] is not set. It is actually read in from # the Python Makefile. Note that this is not necessarily the same # compiler as returned by ccompiler.new_compiler() c_compiler = sysconfig.get_config_var('CC') try: version = get_compiler_version(c_compiler) except OSError: msg = textwrap.dedent( """ The C compiler used to compile Python {compiler:s}, and which is normally used to compile C extensions, is not available. You can explicitly specify which compiler to use by setting the CC environment variable, for example: CC=gcc python setup.py or if you are using MacOS X, you can try: CC=clang python setup.py """.format(compiler=c_compiler)) log.warn(msg) sys.exit(1) for broken, fixed in self._broken_compiler_mapping: if re.match(broken, version): os.environ['CC'] = fixed break def _check_cython_sources(self, extension): """ Where relevant, make sure that the .c files associated with .pyx modules are present (if building without Cython installed). """ # Determine the compiler we'll be using if self.compiler is None: compiler = get_default_compiler() else: compiler = self.compiler # Replace .pyx with C-equivalents, unless c files are missing for jdx, src in enumerate(extension.sources): base, ext = os.path.splitext(src) pyxfn = base + '.pyx' cfn = base + '.c' cppfn = base + '.cpp' if not os.path.isfile(pyxfn): continue if self.uses_cython: extension.sources[jdx] = pyxfn else: if os.path.isfile(cfn): extension.sources[jdx] = cfn elif os.path.isfile(cppfn): extension.sources[jdx] = cppfn else: msg = ( 'Could not find C/C++ file {0}.(c/cpp) for Cython ' 'file {1} when building extension {2}. Cython ' 'must be installed to build from a git ' 'checkout.'.format(base, pyxfn, extension.name)) raise IOError(errno.ENOENT, msg, cfn) # Current versions of Cython use deprecated Numpy API features # the use of which produces a few warnings when compiling. # These additional flags should squelch those warnings. # TODO: Feel free to remove this if/when a Cython update # removes use of the deprecated Numpy API if compiler == 'unix': extension.extra_compile_args.extend([ '-Wp,-w', '-Wno-unused-function']) return build_ext ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/build_py.py0000664000175000017500000000265600000000000024757 0ustar00jjleejjleefrom setuptools.command.build_py import build_py as SetuptoolsBuildPy from ..utils import _get_platlib_dir class AstropyBuildPy(SetuptoolsBuildPy): user_options = SetuptoolsBuildPy.user_options[:] boolean_options = SetuptoolsBuildPy.boolean_options[:] def finalize_options(self): # Update build_lib settings from the build command to always put # build files in platform-specific subdirectories of build/, even # for projects with only pure-Python source (this is desirable # specifically for support of multiple Python version). build_cmd = self.get_finalized_command('build') platlib_dir = _get_platlib_dir(build_cmd) build_cmd.build_purelib = platlib_dir build_cmd.build_lib = platlib_dir self.build_lib = platlib_dir SetuptoolsBuildPy.finalize_options(self) def run_2to3(self, files, doctests=False): # Filter the files to exclude things that shouldn't be 2to3'd skip_2to3 = self.distribution.skip_2to3 filtered_files = [] for filename in files: for package in skip_2to3: if filename[len(self.build_lib) + 1:].startswith(package): break else: filtered_files.append(filename) SetuptoolsBuildPy.run_2to3(self, filtered_files, doctests) def run(self): # first run the normal build_py SetuptoolsBuildPy.run(self) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/build_sphinx.py0000664000175000017500000002526700000000000025643 0ustar00jjleejjleefrom __future__ import print_function import inspect import os import pkgutil import re import shutil import subprocess import sys import textwrap import warnings from distutils import log from distutils.cmd import DistutilsOptionError import sphinx from sphinx.setup_command import BuildDoc as SphinxBuildDoc from ..utils import minversion, AstropyDeprecationWarning PY3 = sys.version_info[0] >= 3 class AstropyBuildDocs(SphinxBuildDoc): """ A version of the ``build_docs`` command that uses the version of Astropy that is built by the setup ``build`` command, rather than whatever is installed on the system. To build docs against the installed version, run ``make html`` in the ``astropy/docs`` directory. This also automatically creates the docs/_static directories--this is needed because GitHub won't create the _static dir because it has no tracked files. """ description = 'Build Sphinx documentation for Astropy environment' user_options = SphinxBuildDoc.user_options[:] user_options.append( ('warnings-returncode', 'w', 'Parses the sphinx output and sets the return code to 1 if there ' 'are any warnings. Note that this will cause the sphinx log to ' 'only update when it completes, rather than continuously as is ' 'normally the case.')) user_options.append( ('clean-docs', 'l', 'Completely clean previous builds, including ' 'automodapi-generated files before building new ones')) user_options.append( ('no-intersphinx', 'n', 'Skip intersphinx, even if conf.py says to use it')) user_options.append( ('open-docs-in-browser', 'o', 'Open the docs in a browser (using the webbrowser module) if the ' 'build finishes successfully.')) boolean_options = SphinxBuildDoc.boolean_options[:] boolean_options.append('warnings-returncode') boolean_options.append('clean-docs') boolean_options.append('no-intersphinx') boolean_options.append('open-docs-in-browser') _self_iden_rex = re.compile(r"self\.([^\d\W][\w]+)", re.UNICODE) def initialize_options(self): SphinxBuildDoc.initialize_options(self) self.clean_docs = False self.no_intersphinx = False self.open_docs_in_browser = False self.warnings_returncode = False def finalize_options(self): # We need to make sure this is set before finalize_options otherwise # the default is set to build/sphinx. We also need the absolute path # as in some Sphinx versions, the path is otherwise interpreted as # docs/docs/_build. if self.build_dir is None: self.build_dir = os.path.abspath('docs/_build') else: self.build_dir = os.path.abspath(self.build_dir) SphinxBuildDoc.finalize_options(self) # Clear out previous sphinx builds, if requested if self.clean_docs: dirstorm = [os.path.join(self.source_dir, 'api'), os.path.join(self.source_dir, 'generated')] if self.build_dir is None: dirstorm.append('docs/_build') else: dirstorm.append(self.build_dir) for d in dirstorm: if os.path.isdir(d): log.info('Cleaning directory ' + d) shutil.rmtree(d) else: log.info('Not cleaning directory ' + d + ' because ' 'not present or not a directory') def run(self): # TODO: Break this method up into a few more subroutines and # document them better import webbrowser if PY3: from urllib.request import pathname2url else: from urllib import pathname2url # This is used at the very end of `run` to decide if sys.exit should # be called. If it's None, it won't be. retcode = None # If possible, create the _static dir if self.build_dir is not None: # the _static dir should be in the same place as the _build dir # for Astropy basedir, subdir = os.path.split(self.build_dir) if subdir == '': # the path has a trailing /... basedir, subdir = os.path.split(basedir) staticdir = os.path.join(basedir, '_static') if os.path.isfile(staticdir): raise DistutilsOptionError( 'Attempted to build_docs in a location where' + staticdir + 'is a file. Must be a directory.') self.mkpath(staticdir) # Now make sure Astropy is built and determine where it was built build_cmd = self.reinitialize_command('build') build_cmd.inplace = 0 self.run_command('build') build_cmd = self.get_finalized_command('build') build_cmd_path = os.path.abspath(build_cmd.build_lib) ah_importer = pkgutil.get_importer('astropy_helpers') if ah_importer is None: ah_path = '.' else: ah_path = os.path.abspath(ah_importer.path) # Now generate the source for and spawn a new process that runs the # command. This is needed to get the correct imports for the built # version runlines, runlineno = inspect.getsourcelines(SphinxBuildDoc.run) subproccode = textwrap.dedent(""" from sphinx.setup_command import * os.chdir({srcdir!r}) sys.path.insert(0, {build_cmd_path!r}) sys.path.insert(0, {ah_path!r}) """).format(build_cmd_path=build_cmd_path, ah_path=ah_path, srcdir=self.source_dir) # runlines[1:] removes 'def run(self)' on the first line subproccode += textwrap.dedent(''.join(runlines[1:])) # All "self.foo" in the subprocess code needs to be replaced by the # values taken from the current self in *this* process subproccode = self._self_iden_rex.split(subproccode) for i in range(1, len(subproccode), 2): iden = subproccode[i] val = getattr(self, iden) if iden.endswith('_dir'): # Directories should be absolute, because the `chdir` call # in the new process moves to a different directory subproccode[i] = repr(os.path.abspath(val)) else: subproccode[i] = repr(val) subproccode = ''.join(subproccode) optcode = textwrap.dedent(""" class Namespace(object): pass self = Namespace() self.pdb = {pdb!r} self.verbosity = {verbosity!r} self.traceback = {traceback!r} """).format(pdb=getattr(self, 'pdb', False), verbosity=getattr(self, 'verbosity', 0), traceback=getattr(self, 'traceback', False)) subproccode = optcode + subproccode # This is a quick gross hack, but it ensures that the code grabbed from # SphinxBuildDoc.run will work in Python 2 if it uses the print # function if minversion(sphinx, '1.3'): subproccode = 'from __future__ import print_function' + subproccode if self.no_intersphinx: # the confoverrides variable in sphinx.setup_command.BuildDoc can # be used to override the conf.py ... but this could well break # if future versions of sphinx change the internals of BuildDoc, # so remain vigilant! subproccode = subproccode.replace( 'confoverrides = {}', 'confoverrides = {\'intersphinx_mapping\':{}}') log.debug('Starting subprocess of {0} with python code:\n{1}\n' '[CODE END])'.format(sys.executable, subproccode)) # To return the number of warnings, we need to capture stdout. This # prevents a continuous updating at the terminal, but there's no # apparent way around this. if self.warnings_returncode: proc = subprocess.Popen([sys.executable, '-c', subproccode], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) retcode = 1 with proc.stdout: for line in iter(proc.stdout.readline, b''): line = line.strip(b'\r\n') print(line.decode('utf-8')) if 'build succeeded.' == line.decode('utf-8'): retcode = 0 # Poll to set proc.retcode proc.wait() if retcode != 0: if os.environ.get('TRAVIS', None) == 'true': # this means we are in the travis build, so customize # the message appropriately. msg = ('The build_docs travis build FAILED ' 'because sphinx issued documentation ' 'warnings (scroll up to see the warnings).') else: # standard failure message msg = ('build_docs returning a non-zero exit ' 'code because sphinx issued documentation ' 'warnings.') log.warn(msg) else: proc = subprocess.Popen([sys.executable], stdin=subprocess.PIPE) proc.communicate(subproccode.encode('utf-8')) if proc.returncode == 0: if self.open_docs_in_browser: if self.builder == 'html': absdir = os.path.abspath(self.builder_target_dir) index_path = os.path.join(absdir, 'index.html') fileurl = 'file://' + pathname2url(index_path) webbrowser.open(fileurl) else: log.warn('open-docs-in-browser option was given, but ' 'the builder is not html! Ignoring.') else: log.warn('Sphinx Documentation subprocess failed with return ' 'code ' + str(proc.returncode)) retcode = proc.returncode if retcode is not None: # this is potentially dangerous in that there might be something # after the call to `setup` in `setup.py`, and exiting here will # prevent that from running. But there's no other apparent way # to signal what the return code should be. sys.exit(retcode) class AstropyBuildSphinx(AstropyBuildDocs): # pragma: no cover description = 'deprecated alias to the build_docs command' def run(self): warnings.warn( 'The "build_sphinx" command is now deprecated. Use' '"build_docs" instead.', AstropyDeprecationWarning) AstropyBuildDocs.run(self) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/install.py0000664000175000017500000000074600000000000024614 0ustar00jjleejjleefrom setuptools.command.install import install as SetuptoolsInstall from ..utils import _get_platlib_dir class AstropyInstall(SetuptoolsInstall): user_options = SetuptoolsInstall.user_options[:] boolean_options = SetuptoolsInstall.boolean_options[:] def finalize_options(self): build_cmd = self.get_finalized_command('build') platlib_dir = _get_platlib_dir(build_cmd) self.build_lib = platlib_dir SetuptoolsInstall.finalize_options(self) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/install_lib.py0000664000175000017500000000100000000000000025422 0ustar00jjleejjleefrom setuptools.command.install_lib import install_lib as SetuptoolsInstallLib from ..utils import _get_platlib_dir class AstropyInstallLib(SetuptoolsInstallLib): user_options = SetuptoolsInstallLib.user_options[:] boolean_options = SetuptoolsInstallLib.boolean_options[:] def finalize_options(self): build_cmd = self.get_finalized_command('build') platlib_dir = _get_platlib_dir(build_cmd) self.build_dir = platlib_dir SetuptoolsInstallLib.finalize_options(self) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/register.py0000664000175000017500000000454700000000000024775 0ustar00jjleejjleefrom setuptools.command.register import register as SetuptoolsRegister class AstropyRegister(SetuptoolsRegister): """Extends the built in 'register' command to support a ``--hidden`` option to make the registered version hidden on PyPI by default. The result of this is that when a version is registered as "hidden" it can still be downloaded from PyPI, but it does not show up in the list of actively supported versions under http://pypi.python.org/pypi/astropy, and is not set as the most recent version. Although this can always be set through the web interface it may be more convenient to be able to specify via the 'register' command. Hidden may also be considered a safer default when running the 'register' command, though this command uses distutils' normal behavior if the ``--hidden`` option is omitted. """ user_options = SetuptoolsRegister.user_options + [ ('hidden', None, 'mark this release as hidden on PyPI by default') ] boolean_options = SetuptoolsRegister.boolean_options + ['hidden'] def initialize_options(self): SetuptoolsRegister.initialize_options(self) self.hidden = False def build_post_data(self, action): data = SetuptoolsRegister.build_post_data(self, action) if action == 'submit' and self.hidden: data['_pypi_hidden'] = '1' return data def _set_config(self): # The original register command is buggy--if you use .pypirc with a # server-login section *at all* the repository you specify with the -r # option will be overwritten with either the repository in .pypirc or # with the default, # If you do not have a .pypirc using the -r option will just crash. # Way to go distutils # If we don't set self.repository back to a default value _set_config # can crash if there was a user-supplied value for this option; don't # worry, we'll get the real value back afterwards self.repository = 'pypi' SetuptoolsRegister._set_config(self) options = self.distribution.get_option_dict('register') if 'repository' in options: source, value = options['repository'] # Really anything that came from setup.cfg or the command line # should override whatever was in .pypirc self.repository = value ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/setup_package.py0000664000175000017500000000017000000000000025750 0ustar00jjleejjleefrom os.path import join def get_package_data(): return {'astropy_helpers.commands': [join('src', 'compiler.c')]} ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/src/0000775000175000017500000000000000000000000023354 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/src/compiler.c0000664000175000017500000000573100000000000025340 0ustar00jjleejjlee#include /*************************************************************************** * Macros for determining the compiler version. * * These are borrowed from boost, and majorly abridged to include only * the compilers we care about. ***************************************************************************/ #ifndef PY3K #if PY_MAJOR_VERSION >= 3 #define PY3K 1 #else #define PY3K 0 #endif #endif #define STRINGIZE(X) DO_STRINGIZE(X) #define DO_STRINGIZE(X) #X #if defined __clang__ /* Clang C++ emulates GCC, so it has to appear early. */ # define COMPILER "Clang version " __clang_version__ #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) /* Intel */ # if defined(__INTEL_COMPILER) # define INTEL_VERSION __INTEL_COMPILER # elif defined(__ICL) # define INTEL_VERSION __ICL # elif defined(__ICC) # define INTEL_VERSION __ICC # elif defined(__ECC) # define INTEL_VERSION __ECC # endif # define COMPILER "Intel C compiler version " STRINGIZE(INTEL_VERSION) #elif defined(__GNUC__) /* gcc */ # define COMPILER "GCC version " __VERSION__ #elif defined(__SUNPRO_CC) /* Sun Workshop Compiler */ # define COMPILER "Sun compiler version " STRINGIZE(__SUNPRO_CC) #elif defined(_MSC_VER) /* Microsoft Visual C/C++ Must be last since other compilers define _MSC_VER for compatibility as well */ # if _MSC_VER < 1200 # define COMPILER_VERSION 5.0 # elif _MSC_VER < 1300 # define COMPILER_VERSION 6.0 # elif _MSC_VER == 1300 # define COMPILER_VERSION 7.0 # elif _MSC_VER == 1310 # define COMPILER_VERSION 7.1 # elif _MSC_VER == 1400 # define COMPILER_VERSION 8.0 # elif _MSC_VER == 1500 # define COMPILER_VERSION 9.0 # elif _MSC_VER == 1600 # define COMPILER_VERSION 10.0 # else # define COMPILER_VERSION _MSC_VER # endif # define COMPILER "Microsoft Visual C++ version " STRINGIZE(COMPILER_VERSION) #else /* Fallback */ # define COMPILER "Unknown compiler" #endif /*************************************************************************** * Module-level ***************************************************************************/ struct module_state { /* The Sun compiler can't handle empty structs */ #if defined(__SUNPRO_C) || defined(_MSC_VER) int _dummy; #endif }; #if PY3K static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, "_compiler", NULL, sizeof(struct module_state), NULL, NULL, NULL, NULL, NULL }; #define INITERROR return NULL PyMODINIT_FUNC PyInit__compiler(void) #else #define INITERROR return PyMODINIT_FUNC init_compiler(void) #endif { PyObject* m; #if PY3K m = PyModule_Create(&moduledef); #else m = Py_InitModule3("_compiler", NULL, NULL); #endif if (m == NULL) INITERROR; PyModule_AddStringConstant(m, "compiler", COMPILER); #if PY3K return m; #endif } ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/commands/test.py0000664000175000017500000000252400000000000024121 0ustar00jjleejjlee""" Different implementations of the ``./setup.py test`` command depending on what's locally available. If Astropy v1.1.0.dev or later is available it should be possible to import AstropyTest from ``astropy.tests.command``. If ``astropy`` can be imported but not ``astropy.tests.command`` (i.e. an older version of Astropy), we can use the backwards-compat implementation of the command. If Astropy can't be imported at all then there is a skeleton implementation that allows users to at least discover the ``./setup.py test`` command and learn that they need Astropy to run it. """ # Previously these except statements caught only ImportErrors, but there are # some other obscure exceptional conditions that can occur when importing # astropy.tests (at least on older versions) that can cause these imports to # fail try: import astropy # noqa try: from astropy.tests.command import AstropyTest except Exception: from ._test_compat import AstropyTest except Exception: # No astropy at all--provide the dummy implementation from ._dummy import _DummyCommand class AstropyTest(_DummyCommand): command_name = 'test' description = 'Run the tests for this package' error_msg = ( "The 'test' command requires the astropy package to be " "installed and importable.") ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/compat/0000775000175000017500000000000000000000000022247 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/compat/__init__.py0000664000175000017500000000056000000000000024361 0ustar00jjleejjleedef _fix_user_options(options): """ This is for Python 2.x and 3.x compatibility. distutils expects Command options to all be byte strings on Python 2 and Unicode strings on Python 3. """ def to_str_or_none(x): if x is None: return None return str(x) return [tuple(to_str_or_none(x) for x in y) for y in options] ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/conftest.py0000664000175000017500000000315700000000000023171 0ustar00jjleejjlee# This file contains settings for pytest that are specific to astropy-helpers. # Since we run many of the tests in sub-processes, we need to collect coverage # data inside each subprocess and then combine it into a single .coverage file. # To do this we set up a list which run_setup appends coverage objects to. # This is not intended to be used by packages other than astropy-helpers. import os from collections import defaultdict try: from coverage import CoverageData except ImportError: HAS_COVERAGE = False else: HAS_COVERAGE = True if HAS_COVERAGE: SUBPROCESS_COVERAGE = [] def pytest_configure(config): if HAS_COVERAGE: SUBPROCESS_COVERAGE[:] = [] def pytest_unconfigure(config): if HAS_COVERAGE: # We create an empty coverage data object combined_cdata = CoverageData() lines = defaultdict(list) for cdata in SUBPROCESS_COVERAGE: # For each CoverageData object, we go through all the files and # change the filename from one which might be a temporary path # to the local filename. We then only keep files that actually # exist. for filename in cdata.measured_files(): try: pos = filename.rindex('astropy_helpers') except ValueError: continue short_filename = filename[pos:] if os.path.exists(short_filename): lines[os.path.abspath(short_filename)].extend(cdata.lines(filename)) combined_cdata.add_lines(lines) combined_cdata.write_file('.coverage.subprocess') ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/distutils_helpers.py0000664000175000017500000001736200000000000025115 0ustar00jjleejjlee""" This module contains various utilities for introspecting the distutils module and the setup process. Some of these utilities require the `astropy_helpers.setup_helpers.register_commands` function to be called first, as it will affect introspection of setuptools command-line arguments. Other utilities in this module do not have that restriction. """ import os import sys from distutils import ccompiler, log from distutils.dist import Distribution from distutils.errors import DistutilsError from .utils import silence # This function, and any functions that call it, require the setup in # `astropy_helpers.setup_helpers.register_commands` to be run first. def get_dummy_distribution(): """ Returns a distutils Distribution object used to instrument the setup environment before calling the actual setup() function. """ from .setup_helpers import _module_state if _module_state['registered_commands'] is None: raise RuntimeError( 'astropy_helpers.setup_helpers.register_commands() must be ' 'called before using ' 'astropy_helpers.setup_helpers.get_dummy_distribution()') # Pre-parse the Distutils command-line options and config files to if # the option is set. dist = Distribution({'script_name': os.path.basename(sys.argv[0]), 'script_args': sys.argv[1:]}) dist.cmdclass.update(_module_state['registered_commands']) with silence(): try: dist.parse_config_files() dist.parse_command_line() except (DistutilsError, AttributeError, SystemExit): # Let distutils handle DistutilsErrors itself AttributeErrors can # get raise for ./setup.py --help SystemExit can be raised if a # display option was used, for example pass return dist def get_distutils_option(option, commands): """ Returns the value of the given distutils option. Parameters ---------- option : str The name of the option commands : list of str The list of commands on which this option is available Returns ------- val : str or None the value of the given distutils option. If the option is not set, returns None. """ dist = get_dummy_distribution() for cmd in commands: cmd_opts = dist.command_options.get(cmd) if cmd_opts is not None and option in cmd_opts: return cmd_opts[option][1] else: return None def get_distutils_build_option(option): """ Returns the value of the given distutils build option. Parameters ---------- option : str The name of the option Returns ------- val : str or None The value of the given distutils build option. If the option is not set, returns None. """ return get_distutils_option(option, ['build', 'build_ext', 'build_clib']) def get_distutils_install_option(option): """ Returns the value of the given distutils install option. Parameters ---------- option : str The name of the option Returns ------- val : str or None The value of the given distutils build option. If the option is not set, returns None. """ return get_distutils_option(option, ['install']) def get_distutils_build_or_install_option(option): """ Returns the value of the given distutils build or install option. Parameters ---------- option : str The name of the option Returns ------- val : str or None The value of the given distutils build or install option. If the option is not set, returns None. """ return get_distutils_option(option, ['build', 'build_ext', 'build_clib', 'install']) def get_compiler_option(): """ Determines the compiler that will be used to build extension modules. Returns ------- compiler : str The compiler option specified for the build, build_ext, or build_clib command; or the default compiler for the platform if none was specified. """ compiler = get_distutils_build_option('compiler') if compiler is None: return ccompiler.get_default_compiler() return compiler def add_command_option(command, name, doc, is_bool=False): """ Add a custom option to a setup command. Issues a warning if the option already exists on that command. Parameters ---------- command : str The name of the command as given on the command line name : str The name of the build option doc : str A short description of the option, for the `--help` message is_bool : bool, optional When `True`, the option is a boolean option and doesn't require an associated value. """ dist = get_dummy_distribution() cmdcls = dist.get_command_class(command) if (hasattr(cmdcls, '_astropy_helpers_options') and name in cmdcls._astropy_helpers_options): return attr = name.replace('-', '_') if hasattr(cmdcls, attr): raise RuntimeError( '{0!r} already has a {1!r} class attribute, barring {2!r} from ' 'being usable as a custom option name.'.format(cmdcls, attr, name)) for idx, cmd in enumerate(cmdcls.user_options): if cmd[0] == name: log.warn('Overriding existing {0!r} option ' '{1!r}'.format(command, name)) del cmdcls.user_options[idx] if name in cmdcls.boolean_options: cmdcls.boolean_options.remove(name) break cmdcls.user_options.append((name, None, doc)) if is_bool: cmdcls.boolean_options.append(name) # Distutils' command parsing requires that a command object have an # attribute with the same name as the option (with '-' replaced with '_') # in order for that option to be recognized as valid setattr(cmdcls, attr, None) # This caches the options added through add_command_option so that if it is # run multiple times in the same interpreter repeated adds are ignored # (this way we can still raise a RuntimeError if a custom option overrides # a built-in option) if not hasattr(cmdcls, '_astropy_helpers_options'): cmdcls._astropy_helpers_options = set([name]) else: cmdcls._astropy_helpers_options.add(name) def get_distutils_display_options(): """ Returns a set of all the distutils display options in their long and short forms. These are the setup.py arguments such as --name or --version which print the project's metadata and then exit. Returns ------- opts : set The long and short form display option arguments, including the - or -- """ short_display_opts = set('-' + o[1] for o in Distribution.display_options if o[1]) long_display_opts = set('--' + o[0] for o in Distribution.display_options) # Include -h and --help which are not explicitly listed in # Distribution.display_options (as they are handled by optparse) short_display_opts.add('-h') long_display_opts.add('--help') # This isn't the greatest approach to hardcode these commands. # However, there doesn't seem to be a good way to determine # whether build *will be* run as part of the command at this # phase. display_commands = set([ 'clean', 'register', 'setopt', 'saveopts', 'egg_info', 'alias']) return short_display_opts.union(long_display_opts.union(display_commands)) def is_distutils_display_option(): """ Returns True if sys.argv contains any of the distutils display options such as --version or --name. """ display_options = get_distutils_display_options() return bool(set(sys.argv[1:]).intersection(display_options)) ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/0000775000175000017500000000000000000000000022271 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/__init__.py0000664000175000017500000000111500000000000024400 0ustar00jjleejjlee# The ``astropy_helpers.extern`` sub-module includes modules developed elsewhere # that are bundled here for convenience. At the moment, this consists of the # following two sphinx extensions: # # * `numpydoc `_, a Sphinx extension # developed as part of the Numpy project. This is used to parse docstrings # in Numpy format # # * `sphinx-automodapi `_, a Sphinx # developed as part of the Astropy project. This used to be developed directly # in ``astropy-helpers`` but is now a standalone package. ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/automodapi/0000775000175000017500000000000000000000000024433 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/automodapi/__init__.py0000664000175000017500000000002500000000000026541 0ustar00jjleejjlee__version__ = '0.11' ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/automodapi/autodoc_enhancements.py0000664000175000017500000001242600000000000031200 0ustar00jjleejjlee""" Miscellaneous enhancements to help autodoc along. """ import inspect import sys import types import sphinx from distutils.version import LooseVersion from sphinx.ext.autodoc import AttributeDocumenter, ModuleDocumenter from sphinx.util.inspect import isdescriptor if sys.version_info[0] == 3: class_types = (type,) else: class_types = (type, types.ClassType) SPHINX_LT_15 = (LooseVersion(sphinx.__version__) < LooseVersion('1.5')) MethodDescriptorType = type(type.__subclasses__) # See # https://github.com/astropy/astropy-helpers/issues/116#issuecomment-71254836 # for further background on this. def type_object_attrgetter(obj, attr, *defargs): """ This implements an improved attrgetter for type objects (i.e. classes) that can handle class attributes that are implemented as properties on a metaclass. Normally `getattr` on a class with a `property` (say, "foo"), would return the `property` object itself. However, if the class has a metaclass which *also* defines a `property` named "foo", ``getattr(cls, 'foo')`` will find the "foo" property on the metaclass and resolve it. For the purposes of autodoc we just want to document the "foo" property defined on the class, not on the metaclass. For example:: >>> class Meta(type): ... @property ... def foo(cls): ... return 'foo' ... >>> class MyClass(metaclass=Meta): ... @property ... def foo(self): ... \"\"\"Docstring for MyClass.foo property.\"\"\" ... return 'myfoo' ... >>> getattr(MyClass, 'foo') 'foo' >>> type_object_attrgetter(MyClass, 'foo') >>> type_object_attrgetter(MyClass, 'foo').__doc__ 'Docstring for MyClass.foo property.' The last line of the example shows the desired behavior for the purposes of autodoc. """ for base in obj.__mro__: if attr in base.__dict__: if isinstance(base.__dict__[attr], property): # Note, this should only be used for properties--for any other # type of descriptor (classmethod, for example) this can mess # up existing expectations of what getattr(cls, ...) returns return base.__dict__[attr] break return getattr(obj, attr, *defargs) if SPHINX_LT_15: # Provided to work around a bug in Sphinx # See https://github.com/sphinx-doc/sphinx/pull/1843 class AttributeDocumenter(AttributeDocumenter): @classmethod def can_document_member(cls, member, membername, isattr, parent): non_attr_types = cls.method_types + class_types + \ (MethodDescriptorType,) isdatadesc = isdescriptor(member) and not \ isinstance(member, non_attr_types) and not \ type(member).__name__ == "instancemethod" # That last condition addresses an obscure case of C-defined # methods using a deprecated type in Python 3, that is not # otherwise exported anywhere by Python return isdatadesc or (not isinstance(parent, ModuleDocumenter) and not inspect.isroutine(member) and not isinstance(member, class_types)) def setup(app): # Must have the autodoc extension set up first so we can override it app.setup_extension('sphinx.ext.autodoc') # Need to import this too since it re-registers all the documenter types # =_= import sphinx.ext.autosummary.generate app.add_autodoc_attrgetter(type, type_object_attrgetter) if sphinx.version_info < (1, 4, 2): # this is a really ugly hack to supress a warning that sphinx 1.4 # generates when overriding an existing directive (which is *desired* # behavior here). As of sphinx v1.4.2, this has been fixed: # https://github.com/sphinx-doc/sphinx/issues/2451 # But we leave it in for 1.4.0/1.4.1 . But if the "needs_sphinx" is # eventually updated to >= 1.4.2, this should be removed entirely (in # favor of the line in the "else" clause) _oldwarn = app._warning _oldwarncount = app._warncount try: try: # *this* is in a try/finally because we don't want to force six as # a real dependency. In sphinx 1.4, six is a prerequisite, so # there's no issue. But in older sphinxes this may not be true... # but the inderlying warning is absent anyway so we let it slide. from six import StringIO app._warning = StringIO() except ImportError: pass app.add_autodocumenter(AttributeDocumenter) finally: app._warning = _oldwarn app._warncount = _oldwarncount else: suppress_warnigns_orig = app.config.suppress_warnings[:] if 'app.add_directive' not in app.config.suppress_warnings: app.config.suppress_warnings.append('app.add_directive') try: app.add_autodocumenter(AttributeDocumenter) finally: app.config.suppress_warnings = suppress_warnigns_orig return {'parallel_read_safe': True, 'parallel_write_safe': True} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/automodapi/automodapi.py0000664000175000017500000004015200000000000027151 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ This directive takes a single argument that must be a module or package. It will produce a block of documentation that includes the docstring for the package, an :ref:`automodsumm` directive, and an :ref:`automod-diagram` if there are any classes in the module. If only the main docstring of the module/package is desired in the documentation, use `automodule`_ instead of `automodapi`_. It accepts the following options: * ``:include-all-objects:`` If present, include not just functions and classes, but all objects. This includes variables, for which a possible docstring after the variable definition will be shown. * ``:inheritance-diagram:`` / ``:no-inheritance-diagram:`` Specify whether or not to show the inheritance diagram for classes. This overrides the default global configuration set in ``automodapi_inheritance_diagram``. * ``:skip: str`` This option results in the specified object being skipped, that is the object will *not* be included in the generated documentation. This option may appear any number of times to skip multiple objects. * ``:no-main-docstr:`` If present, the docstring for the module/package will not be generated. The function and class tables will still be used, however. * ``:headings: str`` Specifies the characters (in one string) used as the heading levels used for the generated section. This must have at least 2 characters (any after 2 will be ignored). This also *must* match the rest of the documentation on this page for sphinx to be happy. Defaults to "-^", which matches the convention used for Python's documentation, assuming the automodapi call is inside a top-level section (which usually uses '='). * ``:no-heading:`` If specified do not create a top level heading for the section. That is, do not create a title heading with text like "packagename Package". The actual docstring for the package/module will still be shown, though, unless ``:no-main-docstr:`` is given. * ``:allowed-package-names: str`` Specifies the packages that functions/classes documented here are allowed to be from, as comma-separated list of package names. If not given, only objects that are actually in a subpackage of the package currently being documented are included. * ``:inherited-members:`` / ``:no-inherited-members:`` The global sphinx configuration option ``automodsumm_inherited_members`` decides if members that a class inherits from a base class are included in the generated documentation. The option ``:inherited-members:`` or ``:no-inherited-members:`` allows the user to overrride the global setting. This extension also adds four sphinx configuration options: * ``automodapi_inheritance_diagram`` Should be a boolean that indicates whether to show inheritance diagrams by default. This can be overriden on a case by case basis with ``:inheritance-diagram:`` and ``:no-inheritance-diagram:``. Defaults to ``True``. * ``automodapi_toctreedirnm`` This must be a string that specifies the name of the directory the automodsumm generated documentation ends up in. This directory path should be relative to the documentation root (e.g., same place as ``index.rst``). Defaults to ``'api'``. * ``automodapi_writereprocessed`` Should be a bool, and if `True`, will cause `automodapi`_ to write files with any `automodapi`_ sections replaced with the content Sphinx processes after `automodapi`_ has run. The output files are not actually used by sphinx, so this option is only for figuring out the cause of sphinx warnings or other debugging. Defaults to `False`. * ``automodsumm_inherited_members`` Should be a bool and if ``True`` members that a class inherits from a base class are included in the generated documentation. Defaults to ``False``. .. _automodule: http://sphinx-doc.org/latest/ext/autodoc.html?highlight=automodule#directive-automodule """ # Implementation note: # The 'automodapi' directive is not actually implemented as a docutils # directive. Instead, this extension searches for the 'automodapi' text in # all sphinx documents, and replaces it where necessary from a template built # into this extension. This is necessary because automodsumm (and autosummary) # use the "builder-inited" event, which comes before the directives are # actually built. import inspect import io import os import re import sys from .utils import find_mod_objs if sys.version_info[0] == 3: text_type = str else: text_type = unicode automod_templ_modheader = """ {modname} {pkgormod} {modhds}{pkgormodhds} {automoduleline} """ automod_templ_classes = """ Classes {clshds} .. automodsumm:: {modname} :classes-only: {clsfuncoptions} """ automod_templ_funcs = """ Functions {funchds} .. automodsumm:: {modname} :functions-only: {clsfuncoptions} """ automod_templ_vars = """ Variables {otherhds} .. automodsumm:: {modname} :variables-only: {clsfuncoptions} """ automod_templ_inh = """ Class Inheritance Diagram {clsinhsechds} .. automod-diagram:: {modname} :private-bases: :parts: 1 {allowedpkgnms} {skip} """ _automodapirex = re.compile(r'^(?:\.\.\s+automodapi::\s*)([A-Za-z0-9_.]+)' r'\s*$((?:\n\s+:[a-zA-Z_\-]+:.*$)*)', flags=re.MULTILINE) # the last group of the above regex is intended to go into finall with the below _automodapiargsrex = re.compile(r':([a-zA-Z_\-]+):(.*)$', flags=re.MULTILINE) def automodapi_replace(sourcestr, app, dotoctree=True, docname=None, warnings=True): """ Replaces `sourcestr`'s entries of ".. automdapi::" with the automodapi template form based on provided options. This is used with the sphinx event 'source-read' to replace `automodapi`_ entries before sphinx actually processes them, as automodsumm needs the code to be present to generate stub documentation. Parameters ---------- sourcestr : str The string with sphinx source to be checked for automodapi replacement. app : `sphinx.application.Application` The sphinx application. dotoctree : bool If `True`, a ":toctree:" option will be added in the ".. automodsumm::" sections of the template, pointing to the appropriate "generated" directory based on the Astropy convention (e.g. in ``docs/api``) docname : str The name of the file for this `sourcestr` (if known - if not, it can be `None`). If not provided and `dotoctree` is `True`, the generated files may end up in the wrong place. warnings : bool If `False`, all warnings that would normally be issued are silenced. Returns ------- newstr :str The string with automodapi entries replaced with the correct sphinx markup. """ spl = _automodapirex.split(sourcestr) if len(spl) > 1: # automodsumm is in this document # Use app.srcdir because api folder should be inside source folder not # at folder where sphinx is run. if dotoctree: toctreestr = ':toctree: ' api_dir = os.path.join(app.srcdir, app.config.automodapi_toctreedirnm) if docname is None: doc_path = '.' else: doc_path = os.path.join(app.srcdir, docname) toctreestr += os.path.relpath(api_dir, os.path.dirname(doc_path)).replace(os.sep, '/') else: toctreestr = '' newstrs = [spl[0]] for grp in range(len(spl) // 3): modnm = spl[grp * 3 + 1] # find where this is in the document for warnings if docname is None: location = None else: location = (docname, spl[0].count('\n')) # initialize default options toskip = [] inhdiag = app.config.automodapi_inheritance_diagram maindocstr = True top_head = True hds = '-^' allowedpkgnms = [] allowothers = False # look for actual options unknownops = [] inherited_members = None for opname, args in _automodapiargsrex.findall(spl[grp * 3 + 2]): if opname == 'skip': toskip.append(args.strip()) elif opname == 'inheritance-diagram': inhdiag = True elif opname == 'no-inheritance-diagram': inhdiag = False elif opname == 'no-main-docstr': maindocstr = False elif opname == 'headings': hds = args elif opname == 'no-heading': top_head = False elif opname == 'allowed-package-names': allowedpkgnms.append(args.strip()) elif opname == 'inherited-members': inherited_members = True elif opname == 'no-inherited-members': inherited_members = False elif opname == 'include-all-objects': allowothers = True else: unknownops.append(opname) # join all the allowedpkgnms if len(allowedpkgnms) == 0: allowedpkgnms = '' onlylocals = True else: allowedpkgnms = ':allowed-package-names: ' + ','.join(allowedpkgnms) onlylocals = allowedpkgnms # get the two heading chars if len(hds) < 2: msg = 'Not enough headings (got {0}, need 2), using default -^' if warnings: app.warn(msg.format(len(hds)), location) hds = '-^' h1, h2 = hds.lstrip()[:2] # tell sphinx that the remaining args are invalid. if len(unknownops) > 0 and app is not None: opsstrs = ','.join(unknownops) msg = 'Found additional options ' + opsstrs + ' in automodapi.' if warnings: app.warn(msg, location) ispkg, hascls, hasfuncs, hasother = _mod_info( modnm, toskip, onlylocals=onlylocals) # add automodule directive only if no-main-docstr isn't present if maindocstr: automodline = '.. automodule:: {modname}'.format(modname=modnm) else: automodline = '' if top_head: newstrs.append(automod_templ_modheader.format( modname=modnm, modhds=h1 * len(modnm), pkgormod='Package' if ispkg else 'Module', pkgormodhds=h1 * (8 if ispkg else 7), automoduleline=automodline)) # noqa else: newstrs.append(automod_templ_modheader.format( modname='', modhds='', pkgormod='', pkgormodhds='', automoduleline=automodline)) # construct the options for the class/function sections # start out indented at 4 spaces, but need to keep the indentation. clsfuncoptions = [] if toctreestr: clsfuncoptions.append(toctreestr) if toskip: clsfuncoptions.append(':skip: ' + ','.join(toskip)) if allowedpkgnms: clsfuncoptions.append(allowedpkgnms) if hascls: # This makes no sense unless there are classes. if inherited_members is True: clsfuncoptions.append(':inherited-members:') if inherited_members is False: clsfuncoptions.append(':no-inherited-members:') clsfuncoptionstr = '\n '.join(clsfuncoptions) if hasfuncs: newstrs.append(automod_templ_funcs.format( modname=modnm, funchds=h2 * 9, clsfuncoptions=clsfuncoptionstr)) if hascls: newstrs.append(automod_templ_classes.format( modname=modnm, clshds=h2 * 7, clsfuncoptions=clsfuncoptionstr)) if allowothers and hasother: newstrs.append(automod_templ_vars.format( modname=modnm, otherhds=h2 * 9, clsfuncoptions=clsfuncoptionstr)) if inhdiag and hascls: # add inheritance diagram if any classes are in the module if toskip: clsskip = ':skip: ' + ','.join(toskip) else: clsskip = '' diagram_entry = automod_templ_inh.format( modname=modnm, clsinhsechds=h2 * 25, allowedpkgnms=allowedpkgnms, skip=clsskip) diagram_entry = diagram_entry.replace(' \n', '') newstrs.append(diagram_entry) newstrs.append(spl[grp * 3 + 3]) newsourcestr = ''.join(newstrs) if app.config.automodapi_writereprocessed: # sometimes they are unicode, sometimes not, depending on how # sphinx has processed things if isinstance(newsourcestr, text_type): ustr = newsourcestr else: ustr = newsourcestr.decode(app.config.source_encoding) if docname is None: with io.open(os.path.join(app.srcdir, 'unknown.automodapi'), 'a', encoding='utf8') as f: f.write(u'\n**NEW DOC**\n\n') f.write(ustr) else: env = app.builder.env # Determine the filename associated with this doc (specifically # the extension) filename = docname + os.path.splitext(env.doc2path(docname))[1] filename += '.automodapi' with io.open(os.path.join(app.srcdir, filename), 'w', encoding='utf8') as f: f.write(ustr) return newsourcestr else: return sourcestr def _mod_info(modname, toskip=[], onlylocals=True): """ Determines if a module is a module or a package and whether or not it has classes or functions. """ hascls = hasfunc = hasother = False for localnm, fqnm, obj in zip(*find_mod_objs(modname, onlylocals=onlylocals)): if localnm not in toskip: hascls = hascls or inspect.isclass(obj) hasfunc = hasfunc or inspect.isroutine(obj) hasother = hasother or (not inspect.isclass(obj) and not inspect.isroutine(obj)) if hascls and hasfunc and hasother: break # find_mod_objs has already imported modname # TODO: There is probably a cleaner way to do this, though this is pretty # reliable for all Python versions for most cases that we care about. pkg = sys.modules[modname] ispkg = (hasattr(pkg, '__file__') and isinstance(pkg.__file__, str) and os.path.split(pkg.__file__)[1].startswith('__init__.py')) return ispkg, hascls, hasfunc, hasother def process_automodapi(app, docname, source): source[0] = automodapi_replace(source[0], app, True, docname) def setup(app): app.setup_extension('sphinx.ext.autosummary') # Note: we use __name__ here instead of just writing the module name in # case this extension is bundled into another package from . import automodsumm app.setup_extension(automodsumm.__name__) app.connect('source-read', process_automodapi) app.add_config_value('automodapi_inheritance_diagram', True, True) app.add_config_value('automodapi_toctreedirnm', 'api', True) app.add_config_value('automodapi_writereprocessed', False, True) return {'parallel_read_safe': True, 'parallel_write_safe': True} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/automodapi/automodsumm.py0000664000175000017500000006616400000000000027374 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ This directive will produce an "autosummary"-style table for public attributes of a specified module. See the `sphinx.ext.autosummary`_ extension for details on this process. The main difference from the `autosummary`_ directive is that `autosummary`_ requires manually inputting all attributes that appear in the table, while this captures the entries automatically. This directive requires a single argument that must be a module or package. It also accepts any options supported by the `autosummary`_ directive- see `sphinx.ext.autosummary`_ for details. It also accepts some additional options: * ``:classes-only:`` If present, the autosummary table will only contain entries for classes. This cannot be used at the same time with ``:functions-only:`` or ``:variables-only:``. * ``:functions-only:`` If present, the autosummary table will only contain entries for functions. This cannot be used at the same time with ``:classes-only:`` or ``:variables-only:``. * ``:variables-only:`` If present, the autosummary table will only contain entries for variables (everything except functions and classes). This cannot be used at the same time with ``:classes-only:`` or ``:functions-only:``. * ``:skip: obj1, [obj2, obj3, ...]`` If present, specifies that the listed objects should be skipped and not have their documentation generated, nor be included in the summary table. * ``:allowed-package-names: pkgormod1, [pkgormod2, pkgormod3, ...]`` Specifies the packages that functions/classes documented here are allowed to be from, as comma-separated list of package names. If not given, only objects that are actually in a subpackage of the package currently being documented are included. * ``:inherited-members:`` or ``:no-inherited-members:`` The global sphinx configuration option ``automodsumm_inherited_members`` decides if members that a class inherits from a base class are included in the generated documentation. The flags ``:inherited-members:`` or ``:no-inherited-members:`` allows overrriding this global setting. This extension also adds two sphinx configuration options: * ``automodsumm_writereprocessed`` Should be a bool, and if ``True``, will cause `automodsumm`_ to write files with any ``automodsumm`` sections replaced with the content Sphinx processes after ``automodsumm`` has run. The output files are not actually used by sphinx, so this option is only for figuring out the cause of sphinx warnings or other debugging. Defaults to ``False``. * ``automodsumm_inherited_members`` Should be a bool and if ``True``, will cause `automodsumm`_ to document class members that are inherited from a base class. This value can be overriden for any particular automodsumm directive by including the ``:inherited-members:`` or ``:no-inherited-members:`` options. Defaults to ``False``. .. _sphinx.ext.autosummary: http://sphinx-doc.org/latest/ext/autosummary.html .. _autosummary: http://sphinx-doc.org/latest/ext/autosummary.html#directive-autosummary .. _automod-diagram: automod-diagram directive ========================= This directive will produce an inheritance diagram like that of the `sphinx.ext.inheritance_diagram`_ extension. This directive requires a single argument that must be a module or package. It accepts no options. .. note:: Like 'inheritance-diagram', 'automod-diagram' requires `graphviz `_ to generate the inheritance diagram. .. _sphinx.ext.inheritance_diagram: http://sphinx-doc.org/latest/ext/inheritance.html """ import abc import inspect import os import re import io from distutils.version import LooseVersion from sphinx import __version__ from sphinx.ext.autosummary import Autosummary from sphinx.ext.inheritance_diagram import InheritanceDiagram from docutils.parsers.rst.directives import flag from .utils import find_mod_objs, cleanup_whitespace __all__ = ['Automoddiagram', 'Automodsumm', 'automodsumm_to_autosummary_lines', 'generate_automodsumm_docs', 'process_automodsumm_generation'] SPHINX_LT_16 = LooseVersion(__version__) < LooseVersion('1.6') SPHINX_LT_17 = LooseVersion(__version__) < LooseVersion('1.7') def _str_list_converter(argument): """ A directive option conversion function that converts the option into a list of strings. Used for 'skip' option. """ if argument is None: return [] else: return [s.strip() for s in argument.split(',')] class Automodsumm(Autosummary): required_arguments = 1 optional_arguments = 0 final_argument_whitespace = False has_content = False option_spec = dict(Autosummary.option_spec) option_spec['functions-only'] = flag option_spec['classes-only'] = flag option_spec['variables-only'] = flag option_spec['skip'] = _str_list_converter option_spec['allowed-package-names'] = _str_list_converter option_spec['inherited-members'] = flag option_spec['no-inherited-members'] = flag def run(self): env = self.state.document.settings.env modname = self.arguments[0] try: self.warnings[:] = [] except AttributeError: self.warnings = [] nodelist = [] try: localnames, fqns, objs = find_mod_objs(modname) except ImportError: self.warn("Couldn't import module " + modname) return self.warnings try: # set self.content to trick the autosummary internals. # Be sure to respect functions-only and classes-only. funconly = 'functions-only' in self.options clsonly = 'classes-only' in self.options varonly = 'variables-only' in self.options if [clsonly, funconly, varonly].count(True) > 1: self.warning('more than one of functions-only, classes-only, ' 'or variables-only defined. Ignoring.') clsonly = funconly = varonly = False skipnames = [] if 'skip' in self.options: option_skipnames = set(self.options['skip']) for lnm in localnames: if lnm in option_skipnames: option_skipnames.remove(lnm) skipnames.append(lnm) if len(option_skipnames) > 0: self.warn('Tried to skip objects {objs} in module {mod}, ' 'but they were not present. Ignoring.' .format(objs=option_skipnames, mod=modname)) if funconly: cont = [] for nm, obj in zip(localnames, objs): if nm not in skipnames and inspect.isroutine(obj): cont.append(nm) elif clsonly: cont = [] for nm, obj in zip(localnames, objs): if nm not in skipnames and inspect.isclass(obj): cont.append(nm) elif varonly: cont = [] for nm, obj in zip(localnames, objs): if nm not in skipnames and not (inspect.isclass(obj) or inspect.isroutine(obj)): cont.append(nm) else: cont = [nm for nm in localnames if nm not in skipnames] self.content = cont # for some reason, even though ``currentmodule`` is substituted in, # sphinx doesn't necessarily recognize this fact. So we just force # it internally, and that seems to fix things env.temp_data['py:module'] = modname env.ref_context['py:module'] = modname # can't use super because Sphinx/docutils has trouble return # super(Autosummary,self).run() nodelist.extend(Autosummary.run(self)) return self.warnings + nodelist finally: # has_content = False for the Automodsumm self.content = [] def get_items(self, names): self.genopt['imported-members'] = True return Autosummary.get_items(self, names) # <-------------------automod-diagram stuff-----------------------------------> class Automoddiagram(InheritanceDiagram): option_spec = dict(InheritanceDiagram.option_spec) option_spec['allowed-package-names'] = _str_list_converter option_spec['skip'] = _str_list_converter def run(self): try: ols = self.options.get('allowed-package-names', []) ols = True if len(ols) == 0 else ols # if none are given, assume only local nms, objs = find_mod_objs(self.arguments[0], onlylocals=ols)[1:] except ImportError: self.warnings = [] self.warn("Couldn't import module " + self.arguments[0]) return self.warnings # Check if some classes should be skipped skip = self.options.get('skip', []) clsnms = [] for n, o in zip(nms, objs): if n.split('.')[-1] in skip: continue if inspect.isclass(o): clsnms.append(n) oldargs = self.arguments try: if len(clsnms) > 0: self.arguments = [' '.join(clsnms)] return InheritanceDiagram.run(self) finally: self.arguments = oldargs # <---------------------automodsumm generation stuff--------------------------> def process_automodsumm_generation(app): env = app.builder.env filestosearch = [] for docname in env.found_docs: filename = env.doc2path(docname) if os.path.isfile(filename): filestosearch.append(docname + os.path.splitext(filename)[1]) liness = [] for sfn in filestosearch: lines = automodsumm_to_autosummary_lines(sfn, app) liness.append(lines) if app.config.automodsumm_writereprocessed: if lines: # empty list means no automodsumm entry is in the file outfn = os.path.join(app.srcdir, sfn) + '.automodsumm' with open(outfn, 'w') as f: for l in lines: f.write(l) f.write('\n') for sfn, lines in zip(filestosearch, liness): suffix = os.path.splitext(sfn)[1] if len(lines) > 0: generate_automodsumm_docs( lines, sfn, app=app, builder=app.builder, suffix=suffix, base_path=app.srcdir, inherited_members=app.config.automodsumm_inherited_members) # _automodsummrex = re.compile(r'^(\s*)\.\. automodsumm::\s*([A-Za-z0-9_.]+)\s*' # r'\n\1(\s*)(\S|$)', re.MULTILINE) _lineendrex = r'(?:\n|$)' _hdrex = r'^\n?(\s*)\.\. automodsumm::\s*(\S+)\s*' + _lineendrex _oprex1 = r'(?:\1(\s+)\S.*' + _lineendrex + ')' _oprex2 = r'(?:\1\4\S.*' + _lineendrex + ')' _automodsummrex = re.compile(_hdrex + '(' + _oprex1 + '?' + _oprex2 + '*)', re.MULTILINE) def automodsumm_to_autosummary_lines(fn, app): """ Generates lines from a file with an "automodsumm" entry suitable for feeding into "autosummary". Searches the provided file for `automodsumm` directives and returns a list of lines specifying the `autosummary` commands for the modules requested. This does *not* return the whole file contents - just an autosummary section in place of any :automodsumm: entries. Note that any options given for `automodsumm` are also included in the generated `autosummary` section. Parameters ---------- fn : str The name of the file to search for `automodsumm` entries. app : sphinx.application.Application The sphinx Application object Returns ------- lines : list of str Lines for all `automodsumm` entries with the entries replaced by `autosummary` and the module's members added. """ fullfn = os.path.join(app.builder.env.srcdir, fn) with io.open(fullfn, encoding='utf8') as fr: # Note: we use __name__ here instead of just writing the module name in # case this extension is bundled into another package from . import automodapi try: extensions = app.extensions except AttributeError: # Sphinx <1.6 extensions = app._extensions if automodapi.__name__ in extensions: # Must do the automodapi on the source to get the automodsumm # that might be in there docname = os.path.splitext(fn)[0] filestr = automodapi.automodapi_replace(fr.read(), app, True, docname, False) else: filestr = fr.read() spl = _automodsummrex.split(filestr) # 0th entry is the stuff before the first automodsumm line indent1s = spl[1::5] mods = spl[2::5] opssecs = spl[3::5] indent2s = spl[4::5] remainders = spl[5::5] # only grab automodsumm sections and convert them to autosummary with the # entries for all the public objects newlines = [] # loop over all automodsumms in this document for i, (i1, i2, modnm, ops, rem) in enumerate(zip(indent1s, indent2s, mods, opssecs, remainders)): allindent = i1 + (' ' if i2 is None else i2) # filter out functions-only, classes-only, and ariables-only # options if present. oplines = ops.split('\n') toskip = [] allowedpkgnms = [] funcsonly = clssonly = varsonly = False for i, ln in reversed(list(enumerate(oplines))): if ':functions-only:' in ln: funcsonly = True del oplines[i] if ':classes-only:' in ln: clssonly = True del oplines[i] if ':variables-only:' in ln: varsonly = True del oplines[i] if ':skip:' in ln: toskip.extend(_str_list_converter(ln.replace(':skip:', ''))) del oplines[i] if ':allowed-package-names:' in ln: allowedpkgnms.extend(_str_list_converter(ln.replace(':allowed-package-names:', ''))) del oplines[i] if [funcsonly, clssonly, varsonly].count(True) > 1: msg = ('Defined more than one of functions-only, classes-only, ' 'and variables-only. Skipping this directive.') lnnum = sum([spl[j].count('\n') for j in range(i * 5 + 1)]) app.warn('[automodsumm]' + msg, (fn, lnnum)) continue # Use the currentmodule directive so we can just put the local names # in the autosummary table. Note that this doesn't always seem to # actually "take" in Sphinx's eyes, so in `Automodsumm.run`, we have to # force it internally, as well. newlines.extend([i1 + '.. currentmodule:: ' + modnm, '', '.. autosummary::']) newlines.extend(oplines) ols = True if len(allowedpkgnms) == 0 else allowedpkgnms for nm, fqn, obj in zip(*find_mod_objs(modnm, onlylocals=ols)): if nm in toskip: continue if funcsonly and not inspect.isroutine(obj): continue if clssonly and not inspect.isclass(obj): continue if varsonly and (inspect.isclass(obj) or inspect.isroutine(obj)): continue newlines.append(allindent + nm) # add one newline at the end of the autosummary block newlines.append('') return newlines def generate_automodsumm_docs(lines, srcfn, app=None, suffix='.rst', base_path=None, builder=None, template_dir=None, inherited_members=False): """ This function is adapted from `sphinx.ext.autosummary.generate.generate_autosummmary_docs` to generate source for the automodsumm directives that should be autosummarized. Unlike generate_autosummary_docs, this function is called one file at a time. """ from sphinx.jinja2glue import BuiltinTemplateLoader from sphinx.ext.autosummary import import_by_name, get_documenter from sphinx.util.osutil import ensuredir from sphinx.util.inspect import safe_getattr from jinja2 import FileSystemLoader, TemplateNotFound from jinja2.sandbox import SandboxedEnvironment from .utils import find_autosummary_in_lines_for_automodsumm as find_autosummary_in_lines if SPHINX_LT_16: info = app.info warn = app.warn else: from sphinx.util import logging logger = logging.getLogger(__name__) info = logger.info warn = logger.warning # info('[automodsumm] generating automodsumm for: ' + srcfn) # Create our own templating environment - here we use Astropy's # templates rather than the default autosummary templates, in order to # allow docstrings to be shown for methods. template_dirs = [os.path.join(os.path.dirname(__file__), 'templates'), os.path.join(base_path, '_templates')] if builder is not None: # allow the user to override the templates template_loader = BuiltinTemplateLoader() template_loader.init(builder, dirs=template_dirs) else: if template_dir: template_dirs.insert(0, template_dir) template_loader = FileSystemLoader(template_dirs) template_env = SandboxedEnvironment(loader=template_loader) # read # items = find_autosummary_in_files(sources) items = find_autosummary_in_lines(lines, filename=srcfn) if len(items) > 0: msg = '[automodsumm] {1}: found {0} automodsumm entries to generate' info(msg.format(len(items), srcfn)) # gennms = [item[0] for item in items] # if len(gennms) > 20: # gennms = gennms[:10] + ['...'] + gennms[-10:] # info('[automodsumm] generating autosummary for: ' + ', '.join(gennms)) # remove possible duplicates items = list(set(items)) # keep track of new files new_files = [] # write for name, path, template_name, inherited_mem in sorted(items): if path is None: # The corresponding autosummary:: directive did not have # a :toctree: option continue path = os.path.abspath(os.path.join(base_path, path)) ensuredir(path) try: import_by_name_values = import_by_name(name) except ImportError as e: warn('[automodsumm] failed to import %r: %s' % (name, e)) continue # if block to accommodate Sphinx's v1.2.2 and v1.2.3 respectively if len(import_by_name_values) == 3: name, obj, parent = import_by_name_values elif len(import_by_name_values) == 4: name, obj, parent, module_name = import_by_name_values fn = os.path.join(path, name + suffix) # skip it if it exists if os.path.isfile(fn): continue new_files.append(fn) f = open(fn, 'w') try: if SPHINX_LT_17: doc = get_documenter(obj, parent) else: doc = get_documenter(app, obj, parent) if template_name is not None: template = template_env.get_template(template_name) else: tmplstr = 'autosummary_core/%s.rst' try: template = template_env.get_template(tmplstr % doc.objtype) except TemplateNotFound: template = template_env.get_template(tmplstr % 'base') def get_members_mod(obj, typ, include_public=[]): """ typ = None -> all """ items = [] for name in dir(obj): try: if SPHINX_LT_17: documenter = get_documenter(safe_getattr(obj, name), obj) else: documenter = get_documenter(app, safe_getattr(obj, name), obj) except AttributeError: continue if typ is None or documenter.objtype == typ: items.append(name) public = [x for x in items if x in include_public or not x.startswith('_')] return public, items def get_members_class(obj, typ, include_public=[], include_base=False): """ typ = None -> all include_base -> include attrs that are from a base class """ items = [] # using dir gets all of the attributes, including the elements # from the base class, otherwise use __slots__ or __dict__ if include_base: names = dir(obj) else: # Classes deriving from an ABC using the `abc` module will # have an empty `__slots__` attribute in Python 3, unless # other slots were declared along the inheritance chain. If # the ABC-derived class has empty slots, we'll use the # class `__dict__` instead. declares_slots = ( hasattr(obj, '__slots__') and not (type(obj) is abc.ABCMeta and len(obj.__slots__) == 0) ) if declares_slots: names = tuple(getattr(obj, '__slots__')) else: names = getattr(obj, '__dict__').keys() for name in names: try: if SPHINX_LT_17: documenter = get_documenter(safe_getattr(obj, name), obj) else: documenter = get_documenter(app, safe_getattr(obj, name), obj) except AttributeError: continue if typ is None or documenter.objtype == typ: items.append(name) elif typ == 'attribute' and documenter.objtype == 'property': # In Sphinx 2.0 and above, properties have a separate # objtype, but we treat them the same here. items.append(name) public = [x for x in items if x in include_public or not x.startswith('_')] return public, items ns = {} if doc.objtype == 'module': ns['members'] = get_members_mod(obj, None) ns['functions'], ns['all_functions'] = \ get_members_mod(obj, 'function') ns['classes'], ns['all_classes'] = \ get_members_mod(obj, 'class') ns['exceptions'], ns['all_exceptions'] = \ get_members_mod(obj, 'exception') elif doc.objtype == 'class': if inherited_mem is not None: # option set in this specifc directive include_base = inherited_mem else: # use default value include_base = inherited_members api_class_methods = ['__init__', '__call__'] ns['members'] = get_members_class(obj, None, include_base=include_base) ns['methods'], ns['all_methods'] = \ get_members_class(obj, 'method', api_class_methods, include_base=include_base) ns['attributes'], ns['all_attributes'] = \ get_members_class(obj, 'attribute', include_base=include_base) ns['methods'].sort() ns['attributes'].sort() parts = name.split('.') if doc.objtype in ('method', 'attribute'): mod_name = '.'.join(parts[:-2]) cls_name = parts[-2] obj_name = '.'.join(parts[-2:]) ns['class'] = cls_name else: mod_name, obj_name = '.'.join(parts[:-1]), parts[-1] ns['fullname'] = name ns['module'] = mod_name ns['objname'] = obj_name ns['name'] = parts[-1] ns['objtype'] = doc.objtype ns['underline'] = len(obj_name) * '=' # We now check whether a file for reference footnotes exists for # the module being documented. We first check if the # current module is a file or a directory, as this will give a # different path for the reference file. For example, if # documenting astropy.wcs then the reference file is at # ../wcs/references.txt, while if we are documenting # astropy.config.logging_helper (which is at # astropy/config/logging_helper.py) then the reference file is set # to ../config/references.txt if '.' in mod_name: mod_name_dir = mod_name.split('.', 1)[1].replace('.', os.sep) else: mod_name_dir = mod_name if (not os.path.isdir(os.path.join(base_path, mod_name_dir)) and os.path.isdir(os.path.join(base_path, mod_name_dir.rsplit(os.sep, 1)[0]))): mod_name_dir = mod_name_dir.rsplit(os.sep, 1)[0] # We then have to check whether it exists, and if so, we pass it # to the template. if os.path.exists(os.path.join(base_path, mod_name_dir, 'references.txt')): # An important subtlety here is that the path we pass in has # to be relative to the file being generated, so we have to # figure out the right number of '..'s ndirsback = path.replace(base_path, '').count(os.sep) ref_file_rel_segments = ['..'] * ndirsback ref_file_rel_segments.append(mod_name_dir) ref_file_rel_segments.append('references.txt') ns['referencefile'] = os.path.join(*ref_file_rel_segments).replace(os.sep, '/') rendered = template.render(**ns) f.write(cleanup_whitespace(rendered)) finally: f.close() def setup(app): # need autodoc fixes # Note: we use __name__ here instead of just writing the module name in # case this extension is bundled into another package from . import autodoc_enhancements app.setup_extension(autodoc_enhancements.__name__) # need inheritance-diagram for automod-diagram app.setup_extension('sphinx.ext.inheritance_diagram') app.add_directive('automod-diagram', Automoddiagram) app.add_directive('automodsumm', Automodsumm) app.connect('builder-inited', process_automodsumm_generation) app.add_config_value('automodsumm_writereprocessed', False, True) app.add_config_value('automodsumm_inherited_members', False, 'env') return {'parallel_read_safe': True, 'parallel_write_safe': True} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/automodapi/smart_resolver.py0000664000175000017500000001006400000000000030055 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ The classes in the astropy docs are documented by their API location, which is not necessarily where they are defined in the source. This causes a problem when certain automated features of the doc build, such as the inheritance diagrams or the `Bases` list of a class reference a class by its canonical location rather than its "user" location. In the `autodoc-process-docstring` event, a mapping from the actual name to the API name is maintained. Later, in the `missing-reference` event, unresolved references are looked up in this dictionary and corrected if possible. """ from docutils.nodes import literal, reference def process_docstring(app, what, name, obj, options, lines): if isinstance(obj, type): env = app.env if not hasattr(env, 'class_name_mapping'): env.class_name_mapping = {} mapping = env.class_name_mapping mapping[obj.__module__ + '.' + obj.__name__] = name def merge_mapping(app, env, docnames, env_other): if not hasattr(env_other, 'class_name_mapping'): return if not hasattr(env, 'class_name_mapping'): env.class_name_mapping = {} env.class_name_mapping.update(env_other.class_name_mapping) def missing_reference_handler(app, env, node, contnode): if not hasattr(env, 'class_name_mapping'): env.class_name_mapping = {} mapping = env.class_name_mapping reftype = node['reftype'] reftarget = node['reftarget'] if reftype in ('obj', 'class', 'exc', 'meth'): reftarget = node['reftarget'] suffix = '' if reftarget not in mapping: if '.' in reftarget: front, suffix = reftarget.rsplit('.', 1) else: suffix = reftarget if suffix.startswith('_') and not suffix.startswith('__'): # If this is a reference to a hidden class or method, # we can't link to it, but we don't want to have a # nitpick warning. return node[0].deepcopy() if reftype in ('obj', 'meth') and '.' in reftarget: if front in mapping: reftarget = front suffix = '.' + suffix if (reftype in ('class', ) and '.' in reftarget and reftarget not in mapping): if '.' in front: reftarget, _ = front.rsplit('.', 1) suffix = '.' + suffix reftarget = reftarget + suffix prefix = reftarget.rsplit('.')[0] inventory = env.intersphinx_named_inventory if (reftarget not in mapping and prefix in inventory): if 'py:class' in inventory[prefix] and reftarget in inventory[prefix]['py:class']: newtarget = inventory[prefix]['py:class'][reftarget][2] if not node['refexplicit'] and \ '~' not in node.rawsource: contnode = literal(text=reftarget) newnode = reference('', '', internal=True) newnode['reftitle'] = reftarget newnode['refuri'] = newtarget newnode.append(contnode) return newnode if reftarget in mapping: newtarget = mapping[reftarget] + suffix if not node['refexplicit'] and '~' not in node.rawsource: contnode = literal(text=newtarget) newnode = env.domains['py'].resolve_xref( env, node['refdoc'], app.builder, 'class', newtarget, node, contnode) if newnode is not None: newnode['reftitle'] = reftarget return newnode def setup(app): app.connect('autodoc-process-docstring', process_docstring) app.connect('missing-reference', missing_reference_handler) app.connect('env-merge-info', merge_mapping) return {'parallel_read_safe': True, 'parallel_write_safe': True} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/automodapi/utils.py0000664000175000017500000001574400000000000026160 0ustar00jjleejjleeimport inspect import sys import re import os from warnings import warn from sphinx.ext.autosummary.generate import find_autosummary_in_docstring if sys.version_info[0] >= 3: def iteritems(dictionary): return dictionary.items() else: def iteritems(dictionary): return dictionary.iteritems() # We use \n instead of os.linesep because even on Windows, the generated files # use \n as the newline character. SPACE_NEWLINE = ' \n' SINGLE_NEWLINE = '\n' DOUBLE_NEWLINE = '\n\n' TRIPLE_NEWLINE = '\n\n\n' def cleanup_whitespace(text): """ Make sure there are never more than two consecutive newlines, and that there are no trailing whitespaces. """ # Get rid of overall leading/trailing whitespace text = text.strip() + '\n' # Get rid of trailing whitespace on each line while SPACE_NEWLINE in text: text = text.replace(SPACE_NEWLINE, SINGLE_NEWLINE) # Avoid too many consecutive newlines while TRIPLE_NEWLINE in text: text = text.replace(TRIPLE_NEWLINE, DOUBLE_NEWLINE) return text def find_mod_objs(modname, onlylocals=False): """ Returns all the public attributes of a module referenced by name. .. note:: The returned list *not* include subpackages or modules of `modname`,nor does it include private attributes (those that beginwith '_' or are not in `__all__`). Parameters ---------- modname : str The name of the module to search. onlylocals : bool If True, only attributes that are either members of `modname` OR one of its modules or subpackages will be included. Returns ------- localnames : list of str A list of the names of the attributes as they are named in the module `modname` . fqnames : list of str A list of the full qualified names of the attributes (e.g., ``astropy.utils.misc.find_mod_objs``). For attributes that are simple variables, this is based on the local name, but for functions or classes it can be different if they are actually defined elsewhere and just referenced in `modname`. objs : list of objects A list of the actual attributes themselves (in the same order as the other arguments) """ __import__(modname) mod = sys.modules[modname] if hasattr(mod, '__all__'): pkgitems = [(k, mod.__dict__[k]) for k in mod.__all__] else: pkgitems = [(k, mod.__dict__[k]) for k in dir(mod) if k[0] != '_'] # filter out modules and pull the names and objs out ismodule = inspect.ismodule localnames = [k for k, v in pkgitems if not ismodule(v)] objs = [v for k, v in pkgitems if not ismodule(v)] # fully qualified names can be determined from the object's module fqnames = [] for obj, lnm in zip(objs, localnames): if hasattr(obj, '__module__') and hasattr(obj, '__name__'): fqnames.append(obj.__module__ + '.' + obj.__name__) else: fqnames.append(modname + '.' + lnm) if onlylocals: valids = [fqn.startswith(modname) for fqn in fqnames] localnames = [e for i, e in enumerate(localnames) if valids[i]] fqnames = [e for i, e in enumerate(fqnames) if valids[i]] objs = [e for i, e in enumerate(objs) if valids[i]] return localnames, fqnames, objs def find_autosummary_in_lines_for_automodsumm(lines, module=None, filename=None): """Find out what items appear in autosummary:: directives in the given lines. Returns a list of (name, toctree, template, inherited_members) where *name* is a name of an object and *toctree* the :toctree: path of the corresponding autosummary directive (relative to the root of the file name), *template* the value of the :template: option, and *inherited_members* is the value of the :inherited-members: option. *toctree*, *template*, and *inherited_members* are ``None`` if the directive does not have the corresponding options set. .. note:: This is a slightly modified version of ``sphinx.ext.autosummary.generate.find_autosummary_in_lines`` which recognizes the ``inherited-members`` option. """ autosummary_re = re.compile(r'^(\s*)\.\.\s+autosummary::\s*') automodule_re = re.compile( r'^\s*\.\.\s+automodule::\s*([A-Za-z0-9_.]+)\s*$') module_re = re.compile( r'^\s*\.\.\s+(current)?module::\s*([a-zA-Z0-9_.]+)\s*$') autosummary_item_re = re.compile(r'^\s+(~?[_a-zA-Z][a-zA-Z0-9_.]*)\s*.*?') toctree_arg_re = re.compile(r'^\s+:toctree:\s*(.*?)\s*$') template_arg_re = re.compile(r'^\s+:template:\s*(.*?)\s*$') inherited_members_arg_re = re.compile(r'^\s+:inherited-members:\s*$') no_inherited_members_arg_re = re.compile(r'^\s+:no-inherited-members:\s*$') documented = [] toctree = None template = None inherited_members = None current_module = module in_autosummary = False base_indent = "" for line in lines: if in_autosummary: m = toctree_arg_re.match(line) if m: toctree = m.group(1) if filename: toctree = os.path.join(os.path.dirname(filename), toctree) continue m = template_arg_re.match(line) if m: template = m.group(1).strip() continue m = inherited_members_arg_re.match(line) if m: inherited_members = True continue m = no_inherited_members_arg_re.match(line) if m: inherited_members = False continue if line.strip().startswith(':'): warn(line) continue # skip options m = autosummary_item_re.match(line) if m: name = m.group(1).strip() if name.startswith('~'): name = name[1:] if current_module and \ not name.startswith(current_module + '.'): name = "%s.%s" % (current_module, name) documented.append((name, toctree, template, inherited_members)) continue if not line.strip() or line.startswith(base_indent + " "): continue in_autosummary = False m = autosummary_re.match(line) if m: in_autosummary = True base_indent = m.group(1) toctree = None template = None inherited_members = None continue m = automodule_re.search(line) if m: current_module = m.group(1).strip() # recurse into the automodule docstring documented.extend(find_autosummary_in_docstring( current_module, filename=filename)) continue m = module_re.match(line) if m: current_module = m.group(2) continue return documented ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/numpydoc/0000775000175000017500000000000000000000000024127 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/numpydoc/__init__.py0000664000175000017500000000030200000000000026233 0ustar00jjleejjleefrom __future__ import division, absolute_import, print_function __version__ = '0.8.0' def setup(app, *args, **kwargs): from .numpydoc import setup return setup(app, *args, **kwargs) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/numpydoc/docscrape.py0000664000175000017500000004540600000000000026455 0ustar00jjleejjlee"""Extract reference documentation from the NumPy source tree. """ from __future__ import division, absolute_import, print_function import inspect import textwrap import re import pydoc from warnings import warn import collections import copy import sys def strip_blank_lines(l): "Remove leading and trailing blank lines from a list of lines" while l and not l[0].strip(): del l[0] while l and not l[-1].strip(): del l[-1] return l class Reader(object): """A line-based string reader. """ def __init__(self, data): """ Parameters ---------- data : str String with lines separated by '\n'. """ if isinstance(data, list): self._str = data else: self._str = data.split('\n') # store string as list of lines self.reset() def __getitem__(self, n): return self._str[n] def reset(self): self._l = 0 # current line nr def read(self): if not self.eof(): out = self[self._l] self._l += 1 return out else: return '' def seek_next_non_empty_line(self): for l in self[self._l:]: if l.strip(): break else: self._l += 1 def eof(self): return self._l >= len(self._str) def read_to_condition(self, condition_func): start = self._l for line in self[start:]: if condition_func(line): return self[start:self._l] self._l += 1 if self.eof(): return self[start:self._l+1] return [] def read_to_next_empty_line(self): self.seek_next_non_empty_line() def is_empty(line): return not line.strip() return self.read_to_condition(is_empty) def read_to_next_unindented_line(self): def is_unindented(line): return (line.strip() and (len(line.lstrip()) == len(line))) return self.read_to_condition(is_unindented) def peek(self, n=0): if self._l + n < len(self._str): return self[self._l + n] else: return '' def is_empty(self): return not ''.join(self._str).strip() class ParseError(Exception): def __str__(self): message = self.args[0] if hasattr(self, 'docstring'): message = "%s in %r" % (message, self.docstring) return message class NumpyDocString(collections.Mapping): """Parses a numpydoc string to an abstract representation Instances define a mapping from section title to structured data. """ sections = { 'Signature': '', 'Summary': [''], 'Extended Summary': [], 'Parameters': [], 'Returns': [], 'Yields': [], 'Raises': [], 'Warns': [], 'Other Parameters': [], 'Attributes': [], 'Methods': [], 'See Also': [], 'Notes': [], 'Warnings': [], 'References': '', 'Examples': '', 'index': {} } def __init__(self, docstring, config={}): orig_docstring = docstring docstring = textwrap.dedent(docstring).split('\n') self._doc = Reader(docstring) self._parsed_data = copy.deepcopy(self.sections) try: self._parse() except ParseError as e: e.docstring = orig_docstring raise def __getitem__(self, key): return self._parsed_data[key] def __setitem__(self, key, val): if key not in self._parsed_data: self._error_location("Unknown section %s" % key, error=False) else: self._parsed_data[key] = val def __iter__(self): return iter(self._parsed_data) def __len__(self): return len(self._parsed_data) def _is_at_section(self): self._doc.seek_next_non_empty_line() if self._doc.eof(): return False l1 = self._doc.peek().strip() # e.g. Parameters if l1.startswith('.. index::'): return True l2 = self._doc.peek(1).strip() # ---------- or ========== return l2.startswith('-'*len(l1)) or l2.startswith('='*len(l1)) def _strip(self, doc): i = 0 j = 0 for i, line in enumerate(doc): if line.strip(): break for j, line in enumerate(doc[::-1]): if line.strip(): break return doc[i:len(doc)-j] def _read_to_next_section(self): section = self._doc.read_to_next_empty_line() while not self._is_at_section() and not self._doc.eof(): if not self._doc.peek(-1).strip(): # previous line was empty section += [''] section += self._doc.read_to_next_empty_line() return section def _read_sections(self): while not self._doc.eof(): data = self._read_to_next_section() name = data[0].strip() if name.startswith('..'): # index section yield name, data[1:] elif len(data) < 2: yield StopIteration else: yield name, self._strip(data[2:]) def _parse_param_list(self, content): r = Reader(content) params = [] while not r.eof(): header = r.read().strip() if ' : ' in header: arg_name, arg_type = header.split(' : ')[:2] else: arg_name, arg_type = header, '' desc = r.read_to_next_unindented_line() desc = dedent_lines(desc) desc = strip_blank_lines(desc) params.append((arg_name, arg_type, desc)) return params _name_rgx = re.compile(r"^\s*(:(?P\w+):" r"`(?P(?:~\w+\.)?[a-zA-Z0-9_.-]+)`|" r" (?P[a-zA-Z0-9_.-]+))\s*", re.X) def _parse_see_also(self, content): """ func_name : Descriptive text continued text another_func_name : Descriptive text func_name1, func_name2, :meth:`func_name`, func_name3 """ items = [] def parse_item_name(text): """Match ':role:`name`' or 'name'""" m = self._name_rgx.match(text) if m: g = m.groups() if g[1] is None: return g[3], None else: return g[2], g[1] raise ParseError("%s is not a item name" % text) def push_item(name, rest): if not name: return name, role = parse_item_name(name) items.append((name, list(rest), role)) del rest[:] current_func = None rest = [] for line in content: if not line.strip(): continue m = self._name_rgx.match(line) if m and line[m.end():].strip().startswith(':'): push_item(current_func, rest) current_func, line = line[:m.end()], line[m.end():] rest = [line.split(':', 1)[1].strip()] if not rest[0]: rest = [] elif not line.startswith(' '): push_item(current_func, rest) current_func = None if ',' in line: for func in line.split(','): if func.strip(): push_item(func, []) elif line.strip(): current_func = line elif current_func is not None: rest.append(line.strip()) push_item(current_func, rest) return items def _parse_index(self, section, content): """ .. index: default :refguide: something, else, and more """ def strip_each_in(lst): return [s.strip() for s in lst] out = {} section = section.split('::') if len(section) > 1: out['default'] = strip_each_in(section[1].split(','))[0] for line in content: line = line.split(':') if len(line) > 2: out[line[1]] = strip_each_in(line[2].split(',')) return out def _parse_summary(self): """Grab signature (if given) and summary""" if self._is_at_section(): return # If several signatures present, take the last one while True: summary = self._doc.read_to_next_empty_line() summary_str = " ".join([s.strip() for s in summary]).strip() if re.compile('^([\w., ]+=)?\s*[\w\.]+\(.*\)$').match(summary_str): self['Signature'] = summary_str if not self._is_at_section(): continue break if summary is not None: self['Summary'] = summary if not self._is_at_section(): self['Extended Summary'] = self._read_to_next_section() def _parse(self): self._doc.reset() self._parse_summary() sections = list(self._read_sections()) section_names = set([section for section, content in sections]) has_returns = 'Returns' in section_names has_yields = 'Yields' in section_names # We could do more tests, but we are not. Arbitrarily. if has_returns and has_yields: msg = 'Docstring contains both a Returns and Yields section.' raise ValueError(msg) for (section, content) in sections: if not section.startswith('..'): section = (s.capitalize() for s in section.split(' ')) section = ' '.join(section) if self.get(section): self._error_location("The section %s appears twice" % section) if section in ('Parameters', 'Returns', 'Yields', 'Raises', 'Warns', 'Other Parameters', 'Attributes', 'Methods'): self[section] = self._parse_param_list(content) elif section.startswith('.. index::'): self['index'] = self._parse_index(section, content) elif section == 'See Also': self['See Also'] = self._parse_see_also(content) else: self[section] = content def _error_location(self, msg, error=True): if hasattr(self, '_obj'): # we know where the docs came from: try: filename = inspect.getsourcefile(self._obj) except TypeError: filename = None msg = msg + (" in the docstring of %s in %s." % (self._obj, filename)) if error: raise ValueError(msg) else: warn(msg) # string conversion routines def _str_header(self, name, symbol='-'): return [name, len(name)*symbol] def _str_indent(self, doc, indent=4): out = [] for line in doc: out += [' '*indent + line] return out def _str_signature(self): if self['Signature']: return [self['Signature'].replace('*', '\*')] + [''] else: return [''] def _str_summary(self): if self['Summary']: return self['Summary'] + [''] else: return [] def _str_extended_summary(self): if self['Extended Summary']: return self['Extended Summary'] + [''] else: return [] def _str_param_list(self, name): out = [] if self[name]: out += self._str_header(name) for param, param_type, desc in self[name]: if param_type: out += ['%s : %s' % (param, param_type)] else: out += [param] if desc and ''.join(desc).strip(): out += self._str_indent(desc) out += [''] return out def _str_section(self, name): out = [] if self[name]: out += self._str_header(name) out += self[name] out += [''] return out def _str_see_also(self, func_role): if not self['See Also']: return [] out = [] out += self._str_header("See Also") last_had_desc = True for func, desc, role in self['See Also']: if role: link = ':%s:`%s`' % (role, func) elif func_role: link = ':%s:`%s`' % (func_role, func) else: link = "`%s`_" % func if desc or last_had_desc: out += [''] out += [link] else: out[-1] += ", %s" % link if desc: out += self._str_indent([' '.join(desc)]) last_had_desc = True else: last_had_desc = False out += [''] return out def _str_index(self): idx = self['index'] out = [] out += ['.. index:: %s' % idx.get('default', '')] for section, references in idx.items(): if section == 'default': continue out += [' :%s: %s' % (section, ', '.join(references))] return out def __str__(self, func_role=''): out = [] out += self._str_signature() out += self._str_summary() out += self._str_extended_summary() for param_list in ('Parameters', 'Returns', 'Yields', 'Other Parameters', 'Raises', 'Warns'): out += self._str_param_list(param_list) out += self._str_section('Warnings') out += self._str_see_also(func_role) for s in ('Notes', 'References', 'Examples'): out += self._str_section(s) for param_list in ('Attributes', 'Methods'): out += self._str_param_list(param_list) out += self._str_index() return '\n'.join(out) def indent(str, indent=4): indent_str = ' '*indent if str is None: return indent_str lines = str.split('\n') return '\n'.join(indent_str + l for l in lines) def dedent_lines(lines): """Deindent a list of lines maximally""" return textwrap.dedent("\n".join(lines)).split("\n") def header(text, style='-'): return text + '\n' + style*len(text) + '\n' class FunctionDoc(NumpyDocString): def __init__(self, func, role='func', doc=None, config={}): self._f = func self._role = role # e.g. "func" or "meth" if doc is None: if func is None: raise ValueError("No function or docstring given") doc = inspect.getdoc(func) or '' NumpyDocString.__init__(self, doc) if not self['Signature'] and func is not None: func, func_name = self.get_func() try: try: signature = str(inspect.signature(func)) except (AttributeError, ValueError): # try to read signature, backward compat for older Python if sys.version_info[0] >= 3: argspec = inspect.getfullargspec(func) else: argspec = inspect.getargspec(func) signature = inspect.formatargspec(*argspec) signature = '%s%s' % (func_name, signature.replace('*', '\*')) except TypeError: signature = '%s()' % func_name self['Signature'] = signature def get_func(self): func_name = getattr(self._f, '__name__', self.__class__.__name__) if inspect.isclass(self._f): func = getattr(self._f, '__call__', self._f.__init__) else: func = self._f return func, func_name def __str__(self): out = '' func, func_name = self.get_func() signature = self['Signature'].replace('*', '\*') roles = {'func': 'function', 'meth': 'method'} if self._role: if self._role not in roles: print("Warning: invalid role %s" % self._role) out += '.. %s:: %s\n \n\n' % (roles.get(self._role, ''), func_name) out += super(FunctionDoc, self).__str__(func_role=self._role) return out class ClassDoc(NumpyDocString): extra_public_methods = ['__call__'] def __init__(self, cls, doc=None, modulename='', func_doc=FunctionDoc, config={}): if not inspect.isclass(cls) and cls is not None: raise ValueError("Expected a class or None, but got %r" % cls) self._cls = cls self.show_inherited_members = config.get( 'show_inherited_class_members', True) if modulename and not modulename.endswith('.'): modulename += '.' self._mod = modulename if doc is None: if cls is None: raise ValueError("No class or documentation string given") doc = pydoc.getdoc(cls) NumpyDocString.__init__(self, doc) if config.get('show_class_members', True): def splitlines_x(s): if not s: return [] else: return s.splitlines() for field, items in [('Methods', self.methods), ('Attributes', self.properties)]: if not self[field]: doc_list = [] for name in sorted(items): try: doc_item = pydoc.getdoc(getattr(self._cls, name)) doc_list.append((name, '', splitlines_x(doc_item))) except AttributeError: pass # method doesn't exist self[field] = doc_list @property def methods(self): if self._cls is None: return [] return [name for name, func in inspect.getmembers(self._cls) if ((not name.startswith('_') or name in self.extra_public_methods) and isinstance(func, collections.Callable) and self._is_show_member(name))] @property def properties(self): if self._cls is None: return [] return [name for name, func in inspect.getmembers(self._cls) if (not name.startswith('_') and (func is None or isinstance(func, property) or inspect.isdatadescriptor(func)) and self._is_show_member(name))] def _is_show_member(self, name): if self.show_inherited_members: return True # show all class members if name not in self._cls.__dict__: return False # class member is inherited, we do not show it return True ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/numpydoc/docscrape_sphinx.py0000664000175000017500000003547000000000000030046 0ustar00jjleejjleefrom __future__ import division, absolute_import, print_function import sys import re import inspect import textwrap import pydoc import collections import os from jinja2 import FileSystemLoader from jinja2.sandbox import SandboxedEnvironment import sphinx from sphinx.jinja2glue import BuiltinTemplateLoader from .docscrape import NumpyDocString, FunctionDoc, ClassDoc if sys.version_info[0] >= 3: sixu = lambda s: s else: sixu = lambda s: unicode(s, 'unicode_escape') IMPORT_MATPLOTLIB_RE = r'\b(import +matplotlib|from +matplotlib +import)\b' class SphinxDocString(NumpyDocString): def __init__(self, docstring, config={}): NumpyDocString.__init__(self, docstring, config=config) self.load_config(config) def load_config(self, config): self.use_plots = config.get('use_plots', False) self.use_blockquotes = config.get('use_blockquotes', False) self.class_members_toctree = config.get('class_members_toctree', True) self.template = config.get('template', None) if self.template is None: template_dirs = [os.path.join(os.path.dirname(__file__), 'templates')] template_loader = FileSystemLoader(template_dirs) template_env = SandboxedEnvironment(loader=template_loader) self.template = template_env.get_template('numpydoc_docstring.rst') # string conversion routines def _str_header(self, name, symbol='`'): return ['.. rubric:: ' + name, ''] def _str_field_list(self, name): return [':' + name + ':'] def _str_indent(self, doc, indent=4): out = [] for line in doc: out += [' '*indent + line] return out def _str_signature(self): return [''] if self['Signature']: return ['``%s``' % self['Signature']] + [''] else: return [''] def _str_summary(self): return self['Summary'] + [''] def _str_extended_summary(self): return self['Extended Summary'] + [''] def _str_returns(self, name='Returns'): typed_fmt = '**%s** : %s' untyped_fmt = '**%s**' out = [] if self[name]: out += self._str_field_list(name) out += [''] for param, param_type, desc in self[name]: if param_type: out += self._str_indent([typed_fmt % (param.strip(), param_type)]) else: out += self._str_indent([untyped_fmt % param.strip()]) if desc and self.use_blockquotes: out += [''] elif not desc: desc = ['..'] out += self._str_indent(desc, 8) out += [''] return out def _process_param(self, param, desc, fake_autosummary): """Determine how to display a parameter Emulates autosummary behavior if fake_autosummary Parameters ---------- param : str The name of the parameter desc : list of str The parameter description as given in the docstring. This is ignored when autosummary logic applies. fake_autosummary : bool If True, autosummary-style behaviour will apply for params that are attributes of the class and have a docstring. Returns ------- display_param : str The marked up parameter name for display. This may include a link to the corresponding attribute's own documentation. desc : list of str A list of description lines. This may be identical to the input ``desc``, if ``autosum is None`` or ``param`` is not a class attribute, or it will be a summary of the class attribute's docstring. Notes ----- This does not have the autosummary functionality to display a method's signature, and hence is not used to format methods. It may be complicated to incorporate autosummary's signature mangling, as it relies on Sphinx's plugin mechanism. """ param = param.strip() # XXX: If changing the following, please check the rendering when param # ends with '_', e.g. 'word_' # See https://github.com/numpy/numpydoc/pull/144 display_param = '**%s**' % param if not fake_autosummary: return display_param, desc param_obj = getattr(self._obj, param, None) if not (callable(param_obj) or isinstance(param_obj, property) or inspect.isgetsetdescriptor(param_obj)): param_obj = None obj_doc = pydoc.getdoc(param_obj) if not (param_obj and obj_doc): return display_param, desc prefix = getattr(self, '_name', '') if prefix: autosum_prefix = '~%s.' % prefix link_prefix = '%s.' % prefix else: autosum_prefix = '' link_prefix = '' # Referenced object has a docstring display_param = ':obj:`%s <%s%s>`' % (param, link_prefix, param) if obj_doc: # Overwrite desc. Take summary logic of autosummary desc = re.split('\n\s*\n', obj_doc.strip(), 1)[0] # XXX: Should this have DOTALL? # It does not in autosummary m = re.search(r"^([A-Z].*?\.)(?:\s|$)", ' '.join(desc.split())) if m: desc = m.group(1).strip() else: desc = desc.partition('\n')[0] desc = desc.split('\n') return display_param, desc def _str_param_list(self, name, fake_autosummary=False): """Generate RST for a listing of parameters or similar Parameter names are displayed as bold text, and descriptions are in blockquotes. Descriptions may therefore contain block markup as well. Parameters ---------- name : str Section name (e.g. Parameters) fake_autosummary : bool When True, the parameter names may correspond to attributes of the object beign documented, usually ``property`` instances on a class. In this case, names will be linked to fuller descriptions. Returns ------- rst : list of str """ out = [] if self[name]: out += self._str_field_list(name) out += [''] for param, param_type, desc in self[name]: display_param, desc = self._process_param(param, desc, fake_autosummary) if param_type: out += self._str_indent(['%s : %s' % (display_param, param_type)]) else: out += self._str_indent([display_param]) if desc and self.use_blockquotes: out += [''] elif not desc: # empty definition desc = ['..'] out += self._str_indent(desc, 8) out += [''] return out @property def _obj(self): if hasattr(self, '_cls'): return self._cls elif hasattr(self, '_f'): return self._f return None def _str_member_list(self, name): """ Generate a member listing, autosummary:: table where possible, and a table where not. """ out = [] if self[name]: out += ['.. rubric:: %s' % name, ''] prefix = getattr(self, '_name', '') if prefix: prefix = '~%s.' % prefix autosum = [] others = [] for param, param_type, desc in self[name]: param = param.strip() # Check if the referenced member can have a docstring or not param_obj = getattr(self._obj, param, None) if not (callable(param_obj) or isinstance(param_obj, property) or inspect.isdatadescriptor(param_obj)): param_obj = None if param_obj and pydoc.getdoc(param_obj): # Referenced object has a docstring autosum += [" %s%s" % (prefix, param)] else: others.append((param, param_type, desc)) if autosum: out += ['.. autosummary::'] if self.class_members_toctree: out += [' :toctree:'] out += [''] + autosum if others: maxlen_0 = max(3, max([len(x[0]) + 4 for x in others])) hdr = sixu("=") * maxlen_0 + sixu(" ") + sixu("=") * 10 fmt = sixu('%%%ds %%s ') % (maxlen_0,) out += ['', '', hdr] for param, param_type, desc in others: desc = sixu(" ").join(x.strip() for x in desc).strip() if param_type: desc = "(%s) %s" % (param_type, desc) out += [fmt % ("**" + param.strip() + "**", desc)] out += [hdr] out += [''] return out def _str_section(self, name): out = [] if self[name]: out += self._str_header(name) content = textwrap.dedent("\n".join(self[name])).split("\n") out += content out += [''] return out def _str_see_also(self, func_role): out = [] if self['See Also']: see_also = super(SphinxDocString, self)._str_see_also(func_role) out = ['.. seealso::', ''] out += self._str_indent(see_also[2:]) return out def _str_warnings(self): out = [] if self['Warnings']: out = ['.. warning::', ''] out += self._str_indent(self['Warnings']) out += [''] return out def _str_index(self): idx = self['index'] out = [] if len(idx) == 0: return out out += ['.. index:: %s' % idx.get('default', '')] for section, references in idx.items(): if section == 'default': continue elif section == 'refguide': out += [' single: %s' % (', '.join(references))] else: out += [' %s: %s' % (section, ','.join(references))] out += [''] return out def _str_references(self): out = [] if self['References']: out += self._str_header('References') if isinstance(self['References'], str): self['References'] = [self['References']] out.extend(self['References']) out += [''] # Latex collects all references to a separate bibliography, # so we need to insert links to it if sphinx.__version__ >= "0.6": out += ['.. only:: latex', ''] else: out += ['.. latexonly::', ''] items = [] for line in self['References']: m = re.match(r'.. \[([a-z0-9._-]+)\]', line, re.I) if m: items.append(m.group(1)) out += [' ' + ", ".join(["[%s]_" % item for item in items]), ''] return out def _str_examples(self): examples_str = "\n".join(self['Examples']) if (self.use_plots and re.search(IMPORT_MATPLOTLIB_RE, examples_str) and 'plot::' not in examples_str): out = [] out += self._str_header('Examples') out += ['.. plot::', ''] out += self._str_indent(self['Examples']) out += [''] return out else: return self._str_section('Examples') def __str__(self, indent=0, func_role="obj"): ns = { 'signature': self._str_signature(), 'index': self._str_index(), 'summary': self._str_summary(), 'extended_summary': self._str_extended_summary(), 'parameters': self._str_param_list('Parameters'), 'returns': self._str_returns('Returns'), 'yields': self._str_returns('Yields'), 'other_parameters': self._str_param_list('Other Parameters'), 'raises': self._str_param_list('Raises'), 'warns': self._str_param_list('Warns'), 'warnings': self._str_warnings(), 'see_also': self._str_see_also(func_role), 'notes': self._str_section('Notes'), 'references': self._str_references(), 'examples': self._str_examples(), 'attributes': self._str_param_list('Attributes', fake_autosummary=True), 'methods': self._str_member_list('Methods'), } ns = dict((k, '\n'.join(v)) for k, v in ns.items()) rendered = self.template.render(**ns) return '\n'.join(self._str_indent(rendered.split('\n'), indent)) class SphinxFunctionDoc(SphinxDocString, FunctionDoc): def __init__(self, obj, doc=None, config={}): self.load_config(config) FunctionDoc.__init__(self, obj, doc=doc, config=config) class SphinxClassDoc(SphinxDocString, ClassDoc): def __init__(self, obj, doc=None, func_doc=None, config={}): self.load_config(config) ClassDoc.__init__(self, obj, doc=doc, func_doc=None, config=config) class SphinxObjDoc(SphinxDocString): def __init__(self, obj, doc=None, config={}): self._f = obj self.load_config(config) SphinxDocString.__init__(self, doc, config=config) def get_doc_object(obj, what=None, doc=None, config={}, builder=None): if what is None: if inspect.isclass(obj): what = 'class' elif inspect.ismodule(obj): what = 'module' elif isinstance(obj, collections.Callable): what = 'function' else: what = 'object' template_dirs = [os.path.join(os.path.dirname(__file__), 'templates')] if builder is not None: template_loader = BuiltinTemplateLoader() template_loader.init(builder, dirs=template_dirs) else: template_loader = FileSystemLoader(template_dirs) template_env = SandboxedEnvironment(loader=template_loader) config['template'] = template_env.get_template('numpydoc_docstring.rst') if what == 'class': return SphinxClassDoc(obj, func_doc=SphinxFunctionDoc, doc=doc, config=config) elif what in ('function', 'method'): return SphinxFunctionDoc(obj, doc=doc, config=config) else: if doc is None: doc = pydoc.getdoc(obj) return SphinxObjDoc(obj, doc, config=config) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/numpydoc/numpydoc.py0000664000175000017500000002620300000000000026342 0ustar00jjleejjlee""" ======== numpydoc ======== Sphinx extension that handles docstrings in the Numpy standard format. [1] It will: - Convert Parameters etc. sections to field lists. - Convert See Also section to a See also entry. - Renumber references. - Extract the signature from the docstring, if it can't be determined otherwise. .. [1] https://github.com/numpy/numpy/blob/master/doc/HOWTO_DOCUMENT.rst.txt """ from __future__ import division, absolute_import, print_function import sys import re import pydoc import inspect import collections import hashlib from docutils.nodes import citation, Text import sphinx from sphinx.addnodes import pending_xref, desc_content if sphinx.__version__ < '1.0.1': raise RuntimeError("Sphinx 1.0.1 or newer is required") from .docscrape_sphinx import get_doc_object, SphinxDocString from . import __version__ if sys.version_info[0] >= 3: sixu = lambda s: s else: sixu = lambda s: unicode(s, 'unicode_escape') HASH_LEN = 12 def rename_references(app, what, name, obj, options, lines): # decorate reference numbers so that there are no duplicates # these are later undecorated in the doctree, in relabel_references references = set() for line in lines: line = line.strip() m = re.match(sixu('^.. \\[(%s)\\]') % app.config.numpydoc_citation_re, line, re.I) if m: references.add(m.group(1)) if references: # we use a hash to mangle the reference name to avoid invalid names sha = hashlib.sha256() sha.update(name.encode('utf8')) prefix = 'R' + sha.hexdigest()[:HASH_LEN] for r in references: new_r = prefix + '-' + r for i, line in enumerate(lines): lines[i] = lines[i].replace(sixu('[%s]_') % r, sixu('[%s]_') % new_r) lines[i] = lines[i].replace(sixu('.. [%s]') % r, sixu('.. [%s]') % new_r) def _ascend(node, cls): while node and not isinstance(node, cls): node = node.parent return node def relabel_references(app, doc): # Change 'hash-ref' to 'ref' in label text for citation_node in doc.traverse(citation): if _ascend(citation_node, desc_content) is None: # no desc node in ancestry -> not in a docstring # XXX: should we also somehow check it's in a References section? continue label_node = citation_node[0] prefix, _, new_label = label_node[0].astext().partition('-') assert len(prefix) == HASH_LEN + 1 new_text = Text(new_label) label_node.replace(label_node[0], new_text) for id in citation_node['backrefs']: ref = doc.ids[id] ref_text = ref[0] # Sphinx has created pending_xref nodes with [reftext] text. def matching_pending_xref(node): return (isinstance(node, pending_xref) and node[0].astext() == '[%s]' % ref_text) for xref_node in ref.parent.traverse(matching_pending_xref): xref_node.replace(xref_node[0], Text('[%s]' % new_text)) ref.replace(ref_text, new_text.copy()) DEDUPLICATION_TAG = ' !! processed by numpydoc !!' def mangle_docstrings(app, what, name, obj, options, lines): if DEDUPLICATION_TAG in lines: return cfg = {'use_plots': app.config.numpydoc_use_plots, 'use_blockquotes': app.config.numpydoc_use_blockquotes, 'show_class_members': app.config.numpydoc_show_class_members, 'show_inherited_class_members': app.config.numpydoc_show_inherited_class_members, 'class_members_toctree': app.config.numpydoc_class_members_toctree} u_NL = sixu('\n') if what == 'module': # Strip top title pattern = '^\\s*[#*=]{4,}\\n[a-z0-9 -]+\\n[#*=]{4,}\\s*' title_re = re.compile(sixu(pattern), re.I | re.S) lines[:] = title_re.sub(sixu(''), u_NL.join(lines)).split(u_NL) else: doc = get_doc_object(obj, what, u_NL.join(lines), config=cfg, builder=app.builder) if sys.version_info[0] >= 3: doc = str(doc) else: doc = unicode(doc) lines[:] = doc.split(u_NL) if (app.config.numpydoc_edit_link and hasattr(obj, '__name__') and obj.__name__): if hasattr(obj, '__module__'): v = dict(full_name=sixu("%s.%s") % (obj.__module__, obj.__name__)) else: v = dict(full_name=obj.__name__) lines += [sixu(''), sixu('.. htmlonly::'), sixu('')] lines += [sixu(' %s') % x for x in (app.config.numpydoc_edit_link % v).split("\n")] # call function to replace reference numbers so that there are no # duplicates rename_references(app, what, name, obj, options, lines) lines += ['..', DEDUPLICATION_TAG] def mangle_signature(app, what, name, obj, options, sig, retann): # Do not try to inspect classes that don't define `__init__` if (inspect.isclass(obj) and (not hasattr(obj, '__init__') or 'initializes x; see ' in pydoc.getdoc(obj.__init__))): return '', '' if not (isinstance(obj, collections.Callable) or hasattr(obj, '__argspec_is_invalid_')): return if not hasattr(obj, '__doc__'): return doc = SphinxDocString(pydoc.getdoc(obj)) sig = doc['Signature'] or getattr(obj, '__text_signature__', None) if sig: sig = re.sub(sixu("^[^(]*"), sixu(""), sig) return sig, sixu('') def setup(app, get_doc_object_=get_doc_object): if not hasattr(app, 'add_config_value'): return # probably called by nose, better bail out global get_doc_object get_doc_object = get_doc_object_ app.connect('autodoc-process-docstring', mangle_docstrings) app.connect('autodoc-process-signature', mangle_signature) app.connect('doctree-read', relabel_references) app.add_config_value('numpydoc_edit_link', None, False) app.add_config_value('numpydoc_use_plots', None, False) app.add_config_value('numpydoc_use_blockquotes', None, False) app.add_config_value('numpydoc_show_class_members', True, True) app.add_config_value('numpydoc_show_inherited_class_members', True, True) app.add_config_value('numpydoc_class_members_toctree', True, True) app.add_config_value('numpydoc_citation_re', '[a-z0-9_.-]+', True) # Extra mangling domains app.add_domain(NumpyPythonDomain) app.add_domain(NumpyCDomain) app.setup_extension('sphinx.ext.autosummary') metadata = {'version': __version__, 'parallel_read_safe': True} return metadata # ------------------------------------------------------------------------------ # Docstring-mangling domains # ------------------------------------------------------------------------------ from docutils.statemachine import ViewList from sphinx.domains.c import CDomain from sphinx.domains.python import PythonDomain class ManglingDomainBase(object): directive_mangling_map = {} def __init__(self, *a, **kw): super(ManglingDomainBase, self).__init__(*a, **kw) self.wrap_mangling_directives() def wrap_mangling_directives(self): for name, objtype in list(self.directive_mangling_map.items()): self.directives[name] = wrap_mangling_directive( self.directives[name], objtype) class NumpyPythonDomain(ManglingDomainBase, PythonDomain): name = 'np' directive_mangling_map = { 'function': 'function', 'class': 'class', 'exception': 'class', 'method': 'function', 'classmethod': 'function', 'staticmethod': 'function', 'attribute': 'attribute', } indices = [] class NumpyCDomain(ManglingDomainBase, CDomain): name = 'np-c' directive_mangling_map = { 'function': 'function', 'member': 'attribute', 'macro': 'function', 'type': 'class', 'var': 'object', } def match_items(lines, content_old): """Create items for mangled lines. This function tries to match the lines in ``lines`` with the items (source file references and line numbers) in ``content_old``. The ``mangle_docstrings`` function changes the actual docstrings, but doesn't keep track of where each line came from. The manging does many operations on the original lines, which are hard to track afterwards. Many of the line changes come from deleting or inserting blank lines. This function tries to match lines by ignoring blank lines. All other changes (such as inserting figures or changes in the references) are completely ignored, so the generated line numbers will be off if ``mangle_docstrings`` does anything non-trivial. This is a best-effort function and the real fix would be to make ``mangle_docstrings`` actually keep track of the ``items`` together with the ``lines``. Examples -------- >>> lines = ['', 'A', '', 'B', ' ', '', 'C', 'D'] >>> lines_old = ['a', '', '', 'b', '', 'c'] >>> items_old = [('file1.py', 0), ('file1.py', 1), ('file1.py', 2), ... ('file2.py', 0), ('file2.py', 1), ('file2.py', 2)] >>> content_old = ViewList(lines_old, items=items_old) >>> match_items(lines, content_old) # doctest: +NORMALIZE_WHITESPACE [('file1.py', 0), ('file1.py', 0), ('file2.py', 0), ('file2.py', 0), ('file2.py', 2), ('file2.py', 2), ('file2.py', 2), ('file2.py', 2)] >>> # first 2 ``lines`` are matched to 'a', second 2 to 'b', rest to 'c' >>> # actual content is completely ignored. Notes ----- The algorithm tries to match any line in ``lines`` with one in ``lines_old``. It skips over all empty lines in ``lines_old`` and assigns this line number to all lines in ``lines``, unless a non-empty line is found in ``lines`` in which case it goes to the next line in ``lines_old``. """ items_new = [] lines_old = content_old.data items_old = content_old.items j = 0 for i, line in enumerate(lines): # go to next non-empty line in old: # line.strip() checks whether the string is all whitespace while j < len(lines_old) - 1 and not lines_old[j].strip(): j += 1 items_new.append(items_old[j]) if line.strip() and j < len(lines_old) - 1: j += 1 assert(len(items_new) == len(lines)) return items_new def wrap_mangling_directive(base_directive, objtype): class directive(base_directive): def run(self): env = self.state.document.settings.env name = None if self.arguments: m = re.match(r'^(.*\s+)?(.*?)(\(.*)?', self.arguments[0]) name = m.group(2).strip() if not name: name = self.arguments[0] lines = list(self.content) mangle_docstrings(env.app, objtype, name, None, None, lines) if self.content: items = match_items(lines, self.content) self.content = ViewList(lines, items=items, parent=self.content.parent) return base_directive.run(self) return directive ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/extern/setup_package.py0000664000175000017500000000027500000000000025462 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst def get_package_data(): return {'astropy_helpers.extern': ['automodapi/templates/*/*.rst', 'numpydoc/templates/*.rst']} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/git_helpers.py0000664000175000017500000001450100000000000023644 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ Utilities for retrieving revision information from a project's git repository. """ # Do not remove the following comment; it is used by # astropy_helpers.version_helpers to determine the beginning of the code in # this module # BEGIN import locale import os import subprocess import warnings def _decode_stdio(stream): try: stdio_encoding = locale.getdefaultlocale()[1] or 'utf-8' except ValueError: stdio_encoding = 'utf-8' try: text = stream.decode(stdio_encoding) except UnicodeDecodeError: # Final fallback text = stream.decode('latin1') return text def update_git_devstr(version, path=None): """ Updates the git revision string if and only if the path is being imported directly from a git working copy. This ensures that the revision number in the version string is accurate. """ try: # Quick way to determine if we're in git or not - returns '' if not devstr = get_git_devstr(sha=True, show_warning=False, path=path) except OSError: return version if not devstr: # Probably not in git so just pass silently return version if 'dev' in version: # update to the current git revision version_base = version.split('.dev', 1)[0] devstr = get_git_devstr(sha=False, show_warning=False, path=path) return version_base + '.dev' + devstr else: # otherwise it's already the true/release version return version def get_git_devstr(sha=False, show_warning=True, path=None): """ Determines the number of revisions in this repository. Parameters ---------- sha : bool If True, the full SHA1 hash will be returned. Otherwise, the total count of commits in the repository will be used as a "revision number". show_warning : bool If True, issue a warning if git returns an error code, otherwise errors pass silently. path : str or None If a string, specifies the directory to look in to find the git repository. If `None`, the current working directory is used, and must be the root of the git repository. If given a filename it uses the directory containing that file. Returns ------- devversion : str Either a string with the revision number (if `sha` is False), the SHA1 hash of the current commit (if `sha` is True), or an empty string if git version info could not be identified. """ if path is None: path = os.getcwd() if not os.path.isdir(path): path = os.path.abspath(os.path.dirname(path)) if sha: # Faster for getting just the hash of HEAD cmd = ['rev-parse', 'HEAD'] else: cmd = ['rev-list', '--count', 'HEAD'] def run_git(cmd): try: p = subprocess.Popen(['git'] + cmd, cwd=path, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) stdout, stderr = p.communicate() except OSError as e: if show_warning: warnings.warn('Error running git: ' + str(e)) return (None, b'', b'') if p.returncode == 128: if show_warning: warnings.warn('No git repository present at {0!r}! Using ' 'default dev version.'.format(path)) return (p.returncode, b'', b'') if p.returncode == 129: if show_warning: warnings.warn('Your git looks old (does it support {0}?); ' 'consider upgrading to v1.7.2 or ' 'later.'.format(cmd[0])) return (p.returncode, stdout, stderr) elif p.returncode != 0: if show_warning: warnings.warn('Git failed while determining revision ' 'count: {0}'.format(_decode_stdio(stderr))) return (p.returncode, stdout, stderr) return p.returncode, stdout, stderr returncode, stdout, stderr = run_git(cmd) if not sha and returncode == 128: # git returns 128 if the command is not run from within a git # repository tree. In this case, a warning is produced above but we # return the default dev version of '0'. return '0' elif not sha and returncode == 129: # git returns 129 if a command option failed to parse; in # particular this could happen in git versions older than 1.7.2 # where the --count option is not supported # Also use --abbrev-commit and --abbrev=0 to display the minimum # number of characters needed per-commit (rather than the full hash) cmd = ['rev-list', '--abbrev-commit', '--abbrev=0', 'HEAD'] returncode, stdout, stderr = run_git(cmd) # Fall back on the old method of getting all revisions and counting # the lines if returncode == 0: return str(stdout.count(b'\n')) else: return '' elif sha: return _decode_stdio(stdout)[:40] else: return _decode_stdio(stdout).strip() # This function is tested but it is only ever executed within a subprocess when # creating a fake package, so it doesn't get picked up by coverage metrics. def _get_repo_path(pathname, levels=None): # pragma: no cover """ Given a file or directory name, determine the root of the git repository this path is under. If given, this won't look any higher than ``levels`` (that is, if ``levels=0`` then the given path must be the root of the git repository and is returned if so. Returns `None` if the given path could not be determined to belong to a git repo. """ if os.path.isfile(pathname): current_dir = os.path.abspath(os.path.dirname(pathname)) elif os.path.isdir(pathname): current_dir = os.path.abspath(pathname) else: return None current_level = 0 while levels is None or current_level <= levels: if os.path.exists(os.path.join(current_dir, '.git')): return current_dir current_level += 1 if current_dir == os.path.dirname(current_dir): break current_dir = os.path.dirname(current_dir) return None ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0613294 pyregion-2.1.1/astropy_helpers/astropy_helpers/openmp_helpers.py0000664000175000017500000000611100000000000024355 0ustar00jjleejjlee# This module defines functions that can be used to check whether OpenMP is # available and if so what flags to use. To use this, import the # add_openmp_flags_if_available function in a setup_package.py file where you # are defining your extensions: # # from astropy_helpers.openmp_helpers import add_openmp_flags_if_available # # then call it with a single extension as the only argument: # # add_openmp_flags_if_available(extension) # # this will add the OpenMP flags if available. from __future__ import absolute_import, print_function import os import sys import glob import tempfile import subprocess from distutils import log from distutils.ccompiler import new_compiler from distutils.sysconfig import customize_compiler from distutils.errors import CompileError, LinkError from .distutils_helpers import get_compiler_option __all__ = ['add_openmp_flags_if_available'] CCODE = """ #include #include int main(void) { #pragma omp parallel printf("nthreads=%d\\n", omp_get_num_threads()); return 0; } """ def add_openmp_flags_if_available(extension): """ Add OpenMP compilation flags, if available (if not a warning will be printed to the console and no flags will be added) Returns `True` if the flags were added, `False` otherwise. """ ccompiler = new_compiler() customize_compiler(ccompiler) tmp_dir = tempfile.mkdtemp() start_dir = os.path.abspath('.') if get_compiler_option() == 'msvc': compile_flag = '-openmp' link_flag = '' else: compile_flag = '-fopenmp' link_flag = '-fopenmp' try: os.chdir(tmp_dir) with open('test_openmp.c', 'w') as f: f.write(CCODE) os.mkdir('objects') # Compile, link, and run test program ccompiler.compile(['test_openmp.c'], output_dir='objects', extra_postargs=[compile_flag]) ccompiler.link_executable(glob.glob(os.path.join('objects', '*' + ccompiler.obj_extension)), 'test_openmp', extra_postargs=[link_flag]) output = subprocess.check_output('./test_openmp').decode(sys.stdout.encoding or 'utf-8').splitlines() if 'nthreads=' in output[0]: nthreads = int(output[0].strip().split('=')[1]) if len(output) == nthreads: using_openmp = True else: log.warn("Unexpected number of lines from output of test OpenMP " "program (output was {0})".format(output)) using_openmp = False else: log.warn("Unexpected output from test OpenMP " "program (output was {0})".format(output)) using_openmp = False except (CompileError, LinkError): using_openmp = False finally: os.chdir(start_dir) if using_openmp: log.info("Compiling Cython extension with OpenMP support") extension.extra_compile_args.append(compile_flag) extension.extra_link_args.append(link_flag) else: log.warn("Cannot compile Cython extension with OpenMP, reverting to non-parallel code") return using_openmp ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/setup_helpers.py0000664000175000017500000006636000000000000024233 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ This module contains a number of utilities for use during setup/build/packaging that are useful to astropy as a whole. """ from __future__ import absolute_import, print_function import collections import os import re import subprocess import sys import traceback import warnings from distutils import log from distutils.dist import Distribution from distutils.errors import DistutilsOptionError, DistutilsModuleError from distutils.core import Extension from distutils.core import Command from distutils.command.sdist import sdist as DistutilsSdist from setuptools import find_packages as _find_packages from .distutils_helpers import (add_command_option, get_compiler_option, get_dummy_distribution, get_distutils_build_option, get_distutils_build_or_install_option) from .version_helpers import get_pkg_version_module from .utils import (walk_skip_hidden, import_file, extends_doc, resolve_name, AstropyDeprecationWarning) from .commands.build_ext import generate_build_ext_command from .commands.build_py import AstropyBuildPy from .commands.install import AstropyInstall from .commands.install_lib import AstropyInstallLib from .commands.register import AstropyRegister from .commands.test import AstropyTest # These imports are not used in this module, but are included for backwards # compat with older versions of this module from .utils import get_numpy_include_path, write_if_different # noqa from .commands.build_ext import should_build_with_cython, get_compiler_version # noqa _module_state = {'registered_commands': None, 'have_sphinx': False, 'package_cache': None, 'exclude_packages': set(), 'excludes_too_late': False} try: import sphinx # noqa _module_state['have_sphinx'] = True except ValueError as e: # This can occur deep in the bowels of Sphinx's imports by way of docutils # and an occurrence of this bug: http://bugs.python.org/issue18378 # In this case sphinx is effectively unusable if 'unknown locale' in e.args[0]: log.warn( "Possible misconfiguration of one of the environment variables " "LC_ALL, LC_CTYPES, LANG, or LANGUAGE. For an example of how to " "configure your system's language environment on OSX see " "http://blog.remibergsma.com/2012/07/10/" "setting-locales-correctly-on-mac-osx-terminal-application/") except ImportError: pass except SyntaxError: # occurs if markupsafe is recent version, which doesn't support Python 3.2 pass PY3 = sys.version_info[0] >= 3 # This adds a new keyword to the setup() function Distribution.skip_2to3 = [] def adjust_compiler(package): """ This function detects broken compilers and switches to another. If the environment variable CC is explicitly set, or a compiler is specified on the commandline, no override is performed -- the purpose here is to only override a default compiler. The specific compilers with problems are: * The default compiler in XCode-4.2, llvm-gcc-4.2, segfaults when compiling wcslib. The set of broken compilers can be updated by changing the compiler_mapping variable. It is a list of 2-tuples where the first in the pair is a regular expression matching the version of the broken compiler, and the second is the compiler to change to. """ warnings.warn( 'Direct use of the adjust_compiler function in setup.py is ' 'deprecated and can be removed from your setup.py. This ' 'functionality is now incorporated directly into the build_ext ' 'command.', AstropyDeprecationWarning) def get_debug_option(packagename): """ Determines if the build is in debug mode. Returns ------- debug : bool True if the current build was started with the debug option, False otherwise. """ try: current_debug = get_pkg_version_module(packagename, fromlist=['debug'])[0] except (ImportError, AttributeError): current_debug = None # Only modify the debug flag if one of the build commands was explicitly # run (i.e. not as a sub-command of something else) dist = get_dummy_distribution() if any(cmd in dist.commands for cmd in ['build', 'build_ext']): debug = bool(get_distutils_build_option('debug')) else: debug = bool(current_debug) if current_debug is not None and current_debug != debug: build_ext_cmd = dist.get_command_class('build_ext') build_ext_cmd.force_rebuild = True return debug def add_exclude_packages(excludes): if _module_state['excludes_too_late']: raise RuntimeError( "add_package_excludes must be called before all other setup helper " "functions in order to properly handle excluded packages") _module_state['exclude_packages'].update(set(excludes)) def register_commands(package, version, release, srcdir='.'): if _module_state['registered_commands'] is not None: return _module_state['registered_commands'] if _module_state['have_sphinx']: try: from .commands.build_sphinx import (AstropyBuildSphinx, AstropyBuildDocs) except ImportError: AstropyBuildSphinx = AstropyBuildDocs = FakeBuildSphinx else: AstropyBuildSphinx = AstropyBuildDocs = FakeBuildSphinx _module_state['registered_commands'] = registered_commands = { 'test': generate_test_command(package), # Use distutils' sdist because it respects package_data. # setuptools/distributes sdist requires duplication of information in # MANIFEST.in 'sdist': DistutilsSdist, # The exact form of the build_ext command depends on whether or not # we're building a release version 'build_ext': generate_build_ext_command(package, release), # We have a custom build_py to generate the default configuration file 'build_py': AstropyBuildPy, # Since install can (in some circumstances) be run without # first building, we also need to override install and # install_lib. See #2223 'install': AstropyInstall, 'install_lib': AstropyInstallLib, 'register': AstropyRegister, 'build_sphinx': AstropyBuildSphinx, 'build_docs': AstropyBuildDocs } # Need to override the __name__ here so that the commandline options are # presented as being related to the "build" command, for example; normally # this wouldn't be necessary since commands also have a command_name # attribute, but there is a bug in distutils' help display code that it # uses __name__ instead of command_name. Yay distutils! for name, cls in registered_commands.items(): cls.__name__ = name # Add a few custom options; more of these can be added by specific packages # later for option in [ ('use-system-libraries', "Use system libraries whenever possible", True)]: add_command_option('build', *option) add_command_option('install', *option) add_command_hooks(registered_commands, srcdir=srcdir) return registered_commands def add_command_hooks(commands, srcdir='.'): """ Look through setup_package.py modules for functions with names like ``pre__hook`` and ``post__hook`` where ```` is the name of a ``setup.py`` command (e.g. build_ext). If either hook is present this adds a wrapped version of that command to the passed in ``commands`` `dict`. ``commands`` may be pre-populated with other custom distutils command classes that should be wrapped if there are hooks for them (e.g. `AstropyBuildPy`). """ hook_re = re.compile(r'^(pre|post)_(.+)_hook$') # Distutils commands have a method of the same name, but it is not a # *classmethod* (which probably didn't exist when distutils was first # written) def get_command_name(cmdcls): if hasattr(cmdcls, 'command_name'): return cmdcls.command_name else: return cmdcls.__name__ packages = filter_packages(find_packages(srcdir)) dist = get_dummy_distribution() hooks = collections.defaultdict(dict) for setuppkg in iter_setup_packages(srcdir, packages): for name, obj in vars(setuppkg).items(): match = hook_re.match(name) if not match: continue hook_type = match.group(1) cmd_name = match.group(2) if hook_type not in hooks[cmd_name]: hooks[cmd_name][hook_type] = [] hooks[cmd_name][hook_type].append((setuppkg.__name__, obj)) for cmd_name, cmd_hooks in hooks.items(): commands[cmd_name] = generate_hooked_command( cmd_name, dist.get_command_class(cmd_name), cmd_hooks) def generate_hooked_command(cmd_name, cmd_cls, hooks): """ Returns a generated subclass of ``cmd_cls`` that runs the pre- and post-command hooks for that command before and after the ``cmd_cls.run`` method. """ def run(self, orig_run=cmd_cls.run): self.run_command_hooks('pre_hooks') orig_run(self) self.run_command_hooks('post_hooks') return type(cmd_name, (cmd_cls, object), {'run': run, 'run_command_hooks': run_command_hooks, 'pre_hooks': hooks.get('pre', []), 'post_hooks': hooks.get('post', [])}) def run_command_hooks(cmd_obj, hook_kind): """Run hooks registered for that command and phase. *cmd_obj* is a finalized command object; *hook_kind* is either 'pre_hook' or 'post_hook'. """ hooks = getattr(cmd_obj, hook_kind, None) if not hooks: return for modname, hook in hooks: if isinstance(hook, str): try: hook_obj = resolve_name(hook) except ImportError as exc: raise DistutilsModuleError( 'cannot find hook {0}: {1}'.format(hook, exc)) else: hook_obj = hook if not callable(hook_obj): raise DistutilsOptionError('hook {0!r} is not callable' % hook) log.info('running {0} from {1} for {2} command'.format( hook_kind.rstrip('s'), modname, cmd_obj.get_command_name())) try: hook_obj(cmd_obj) except Exception: log.error('{0} command hook {1} raised an exception: %s\n'.format( hook_obj.__name__, cmd_obj.get_command_name())) log.error(traceback.format_exc()) sys.exit(1) def generate_test_command(package_name): """ Creates a custom 'test' command for the given package which sets the command's ``package_name`` class attribute to the name of the package being tested. """ return type(package_name.title() + 'Test', (AstropyTest,), {'package_name': package_name}) def update_package_files(srcdir, extensions, package_data, packagenames, package_dirs): """ This function is deprecated and maintained for backward compatibility with affiliated packages. Affiliated packages should update their setup.py to use `get_package_info` instead. """ info = get_package_info(srcdir) extensions.extend(info['ext_modules']) package_data.update(info['package_data']) packagenames = list(set(packagenames + info['packages'])) package_dirs.update(info['package_dir']) def get_package_info(srcdir='.', exclude=()): """ Collates all of the information for building all subpackages and returns a dictionary of keyword arguments that can be passed directly to `distutils.setup`. The purpose of this function is to allow subpackages to update the arguments to the package's ``setup()`` function in its setup.py script, rather than having to specify all extensions/package data directly in the ``setup.py``. See Astropy's own ``setup.py`` for example usage and the Astropy development docs for more details. This function obtains that information by iterating through all packages in ``srcdir`` and locating a ``setup_package.py`` module. This module can contain the following functions: ``get_extensions()``, ``get_package_data()``, ``get_build_options()``, ``get_external_libraries()``, and ``requires_2to3()``. Each of those functions take no arguments. - ``get_extensions`` returns a list of `distutils.extension.Extension` objects. - ``get_package_data()`` returns a dict formatted as required by the ``package_data`` argument to ``setup()``. - ``get_build_options()`` returns a list of tuples describing the extra build options to add. - ``get_external_libraries()`` returns a list of libraries that can optionally be built using external dependencies. - ``get_entry_points()`` returns a dict formatted as required by the ``entry_points`` argument to ``setup()``. - ``requires_2to3()`` should return `True` when the source code requires `2to3` processing to run on Python 3.x. If ``requires_2to3()`` is missing, it is assumed to return `True`. """ ext_modules = [] packages = [] package_data = {} package_dir = {} skip_2to3 = [] if exclude: warnings.warn( "Use of the exclude parameter is no longer supported since it does " "not work as expected. Use add_exclude_packages instead. Note that " "it must be called prior to any other calls from setup helpers.", AstropyDeprecationWarning) # Use the find_packages tool to locate all packages and modules packages = filter_packages(find_packages(srcdir, exclude=exclude)) # Update package_dir if the package lies in a subdirectory if srcdir != '.': package_dir[''] = srcdir # For each of the setup_package.py modules, extract any # information that is needed to install them. The build options # are extracted first, so that their values will be available in # subsequent calls to `get_extensions`, etc. for setuppkg in iter_setup_packages(srcdir, packages): if hasattr(setuppkg, 'get_build_options'): options = setuppkg.get_build_options() for option in options: add_command_option('build', *option) if hasattr(setuppkg, 'get_external_libraries'): libraries = setuppkg.get_external_libraries() for library in libraries: add_external_library(library) if hasattr(setuppkg, 'requires_2to3'): requires_2to3 = setuppkg.requires_2to3() else: requires_2to3 = True if not requires_2to3: skip_2to3.append( os.path.dirname(setuppkg.__file__)) for setuppkg in iter_setup_packages(srcdir, packages): # get_extensions must include any Cython extensions by their .pyx # filename. if hasattr(setuppkg, 'get_extensions'): ext_modules.extend(setuppkg.get_extensions()) if hasattr(setuppkg, 'get_package_data'): package_data.update(setuppkg.get_package_data()) # Locate any .pyx files not already specified, and add their extensions in. # The default include dirs include numpy to facilitate numerical work. ext_modules.extend(get_cython_extensions(srcdir, packages, ext_modules, ['numpy'])) # Now remove extensions that have the special name 'skip_cython', as they # exist Only to indicate that the cython extensions shouldn't be built for i, ext in reversed(list(enumerate(ext_modules))): if ext.name == 'skip_cython': del ext_modules[i] # On Microsoft compilers, we need to pass the '/MANIFEST' # commandline argument. This was the default on MSVC 9.0, but is # now required on MSVC 10.0, but it doesn't seem to hurt to add # it unconditionally. if get_compiler_option() == 'msvc': for ext in ext_modules: ext.extra_link_args.append('/MANIFEST') return { 'ext_modules': ext_modules, 'packages': packages, 'package_dir': package_dir, 'package_data': package_data, 'skip_2to3': skip_2to3 } def iter_setup_packages(srcdir, packages): """ A generator that finds and imports all of the ``setup_package.py`` modules in the source packages. Returns ------- modgen : generator A generator that yields (modname, mod), where `mod` is the module and `modname` is the module name for the ``setup_package.py`` modules. """ for packagename in packages: package_parts = packagename.split('.') package_path = os.path.join(srcdir, *package_parts) setup_package = os.path.relpath( os.path.join(package_path, 'setup_package.py')) if os.path.isfile(setup_package): module = import_file(setup_package, name=packagename + '.setup_package') yield module def iter_pyx_files(package_dir, package_name): """ A generator that yields Cython source files (ending in '.pyx') in the source packages. Returns ------- pyxgen : generator A generator that yields (extmod, fullfn) where `extmod` is the full name of the module that the .pyx file would live in based on the source directory structure, and `fullfn` is the path to the .pyx file. """ for dirpath, dirnames, filenames in walk_skip_hidden(package_dir): for fn in filenames: if fn.endswith('.pyx'): fullfn = os.path.relpath(os.path.join(dirpath, fn)) # Package must match file name extmod = '.'.join([package_name, fn[:-4]]) yield (extmod, fullfn) break # Don't recurse into subdirectories def get_cython_extensions(srcdir, packages, prevextensions=tuple(), extincludedirs=None): """ Looks for Cython files and generates Extensions if needed. Parameters ---------- srcdir : str Path to the root of the source directory to search. prevextensions : list of `~distutils.core.Extension` objects The extensions that are already defined. Any .pyx files already here will be ignored. extincludedirs : list of str or None Directories to include as the `include_dirs` argument to the generated `~distutils.core.Extension` objects. Returns ------- exts : list of `~distutils.core.Extension` objects The new extensions that are needed to compile all .pyx files (does not include any already in `prevextensions`). """ # Vanilla setuptools and old versions of distribute include Cython files # as .c files in the sources, not .pyx, so we cannot simply look for # existing .pyx sources in the previous sources, but we should also check # for .c files with the same remaining filename. So we look for .pyx and # .c files, and we strip the extension. prevsourcepaths = [] ext_modules = [] for ext in prevextensions: for s in ext.sources: if s.endswith(('.pyx', '.c', '.cpp')): sourcepath = os.path.realpath(os.path.splitext(s)[0]) prevsourcepaths.append(sourcepath) for package_name in packages: package_parts = package_name.split('.') package_path = os.path.join(srcdir, *package_parts) for extmod, pyxfn in iter_pyx_files(package_path, package_name): sourcepath = os.path.realpath(os.path.splitext(pyxfn)[0]) if sourcepath not in prevsourcepaths: ext_modules.append(Extension(extmod, [pyxfn], include_dirs=extincludedirs)) return ext_modules class DistutilsExtensionArgs(collections.defaultdict): """ A special dictionary whose default values are the empty list. This is useful for building up a set of arguments for `distutils.Extension` without worrying whether the entry is already present. """ def __init__(self, *args, **kwargs): def default_factory(): return [] super(DistutilsExtensionArgs, self).__init__( default_factory, *args, **kwargs) def update(self, other): for key, val in other.items(): self[key].extend(val) def pkg_config(packages, default_libraries, executable='pkg-config'): """ Uses pkg-config to update a set of distutils Extension arguments to include the flags necessary to link against the given packages. If the pkg-config lookup fails, default_libraries is applied to libraries. Parameters ---------- packages : list of str A list of pkg-config packages to look up. default_libraries : list of str A list of library names to use if the pkg-config lookup fails. Returns ------- config : dict A dictionary containing keyword arguments to `distutils.Extension`. These entries include: - ``include_dirs``: A list of include directories - ``library_dirs``: A list of library directories - ``libraries``: A list of libraries - ``define_macros``: A list of macro defines - ``undef_macros``: A list of macros to undefine - ``extra_compile_args``: A list of extra arguments to pass to the compiler """ flag_map = {'-I': 'include_dirs', '-L': 'library_dirs', '-l': 'libraries', '-D': 'define_macros', '-U': 'undef_macros'} command = "{0} --libs --cflags {1}".format(executable, ' '.join(packages)), result = DistutilsExtensionArgs() try: pipe = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE) output = pipe.communicate()[0].strip() except subprocess.CalledProcessError as e: lines = [ ("{0} failed. This may cause the build to fail below." .format(executable)), " command: {0}".format(e.cmd), " returncode: {0}".format(e.returncode), " output: {0}".format(e.output) ] log.warn('\n'.join(lines)) result['libraries'].extend(default_libraries) else: if pipe.returncode != 0: lines = [ "pkg-config could not lookup up package(s) {0}.".format( ", ".join(packages)), "This may cause the build to fail below." ] log.warn('\n'.join(lines)) result['libraries'].extend(default_libraries) else: for token in output.split(): # It's not clear what encoding the output of # pkg-config will come to us in. It will probably be # some combination of pure ASCII (for the compiler # flags) and the filesystem encoding (for any argument # that includes directories or filenames), but this is # just conjecture, as the pkg-config documentation # doesn't seem to address it. arg = token[:2].decode('ascii') value = token[2:].decode(sys.getfilesystemencoding()) if arg in flag_map: if arg == '-D': value = tuple(value.split('=', 1)) result[flag_map[arg]].append(value) else: result['extra_compile_args'].append(value) return result def add_external_library(library): """ Add a build option for selecting the internal or system copy of a library. Parameters ---------- library : str The name of the library. If the library is `foo`, the build option will be called `--use-system-foo`. """ for command in ['build', 'build_ext', 'install']: add_command_option(command, str('use-system-' + library), 'Use the system {0} library'.format(library), is_bool=True) def use_system_library(library): """ Returns `True` if the build configuration indicates that the given library should use the system copy of the library rather than the internal one. For the given library `foo`, this will be `True` if `--use-system-foo` or `--use-system-libraries` was provided at the commandline or in `setup.cfg`. Parameters ---------- library : str The name of the library Returns ------- use_system : bool `True` if the build should use the system copy of the library. """ return ( get_distutils_build_or_install_option('use_system_{0}'.format(library)) or get_distutils_build_or_install_option('use_system_libraries')) @extends_doc(_find_packages) def find_packages(where='.', exclude=(), invalidate_cache=False): """ This version of ``find_packages`` caches previous results to speed up subsequent calls. Use ``invalide_cache=True`` to ignore cached results from previous ``find_packages`` calls, and repeat the package search. """ if exclude: warnings.warn( "Use of the exclude parameter is no longer supported since it does " "not work as expected. Use add_exclude_packages instead. Note that " "it must be called prior to any other calls from setup helpers.", AstropyDeprecationWarning) # Calling add_exclude_packages after this point will have no effect _module_state['excludes_too_late'] = True if not invalidate_cache and _module_state['package_cache'] is not None: return _module_state['package_cache'] packages = _find_packages( where=where, exclude=list(_module_state['exclude_packages'])) _module_state['package_cache'] = packages return packages def filter_packages(packagenames): """ Removes some packages from the package list that shouldn't be installed on the current version of Python. """ if PY3: exclude = '_py2' else: exclude = '_py3' return [x for x in packagenames if not x.endswith(exclude)] class FakeBuildSphinx(Command): """ A dummy build_sphinx command that is called if Sphinx is not installed and displays a relevant error message """ # user options inherited from sphinx.setup_command.BuildDoc user_options = [ ('fresh-env', 'E', ''), ('all-files', 'a', ''), ('source-dir=', 's', ''), ('build-dir=', None, ''), ('config-dir=', 'c', ''), ('builder=', 'b', ''), ('project=', None, ''), ('version=', None, ''), ('release=', None, ''), ('today=', None, ''), ('link-index', 'i', '')] # user options appended in astropy.setup_helpers.AstropyBuildSphinx user_options.append(('warnings-returncode', 'w', '')) user_options.append(('clean-docs', 'l', '')) user_options.append(('no-intersphinx', 'n', '')) user_options.append(('open-docs-in-browser', 'o', '')) def initialize_options(self): try: raise RuntimeError("Sphinx and its dependencies must be installed " "for build_docs.") except: log.error('error: Sphinx and its dependencies must be installed ' 'for build_docs.') sys.exit(1) ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/0000775000175000017500000000000000000000000022275 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/__init__.py0000664000175000017500000000066500000000000024415 0ustar00jjleejjlee""" This package contains utilities and extensions for the Astropy sphinx documentation. In particular, the `astropy.sphinx.conf` should be imported by the sphinx ``conf.py`` file for affiliated packages that wish to make use of the Astropy documentation format. Note that some sphinx extensions which are bundled as-is (numpydoc and sphinx-automodapi) are included in astropy_helpers.extern rather than astropy_helpers.sphinx.ext. """ ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/conf.py0000664000175000017500000002714100000000000023601 0ustar00jjleejjlee# -*- coding: utf-8 -*- # Licensed under a 3-clause BSD style license - see LICENSE.rst # # Astropy shared Sphinx settings. These settings are shared between # astropy itself and affiliated packages. # # Note that not all possible configuration values are present in this file. # # All configuration values have a default; values that are commented out # serve to show the default. import os import sys import warnings from os import path import sphinx from distutils.version import LooseVersion # -- General configuration ---------------------------------------------------- # The version check in Sphinx itself can only compare the major and # minor parts of the version number, not the micro. To do a more # specific version check, call check_sphinx_version("x.y.z.") from # your project's conf.py needs_sphinx = '1.3' on_rtd = os.environ.get('READTHEDOCS', None) == 'True' def check_sphinx_version(expected_version): sphinx_version = LooseVersion(sphinx.__version__) expected_version = LooseVersion(expected_version) if sphinx_version < expected_version: raise RuntimeError( "At least Sphinx version {0} is required to build this " "documentation. Found {1}.".format( expected_version, sphinx_version)) # Configuration for intersphinx: refer to the Python standard library. intersphinx_mapping = { 'python': ('https://docs.python.org/3/', (None, 'http://data.astropy.org/intersphinx/python3.inv')), 'pythonloc': ('http://docs.python.org/', path.abspath(path.join(path.dirname(__file__), 'local/python3_local_links.inv'))), 'numpy': ('https://docs.scipy.org/doc/numpy/', (None, 'http://data.astropy.org/intersphinx/numpy.inv')), 'scipy': ('https://docs.scipy.org/doc/scipy/reference/', (None, 'http://data.astropy.org/intersphinx/scipy.inv')), 'matplotlib': ('http://matplotlib.org/', (None, 'http://data.astropy.org/intersphinx/matplotlib.inv')), 'astropy': ('http://docs.astropy.org/en/stable/', None), 'h5py': ('http://docs.h5py.org/en/stable/', None)} if sys.version_info[0] == 2: intersphinx_mapping['python'] = ( 'https://docs.python.org/2/', (None, 'http://data.astropy.org/intersphinx/python2.inv')) intersphinx_mapping['pythonloc'] = ( 'http://docs.python.org/', path.abspath(path.join(path.dirname(__file__), 'local/python2_local_links.inv'))) # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = ['_build'] # Add any paths that contain templates here, relative to this directory. # templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. #source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # The reST default role (used for this markup: `text`) to use for all # documents. Set to the "smart" one. default_role = 'obj' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. #language = None # This is added to the end of RST files - a good place to put substitutions to # be used globally. rst_epilog = """ .. _Astropy: http://astropy.org """ # A list of warning types to suppress arbitrary warning messages. We mean to # override directives in astropy_helpers.sphinx.ext.autodoc_enhancements, # thus need to ignore those warning. This can be removed once the patch gets # released in upstream Sphinx (https://github.com/sphinx-doc/sphinx/pull/1843). # Suppress the warnings requires Sphinx v1.4.2 suppress_warnings = ['app.add_directive', ] # -- Project information ------------------------------------------------------ # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: #today = '' # Else, today_fmt is used as the format for a strftime call. #today_fmt = '%B %d, %Y' # If true, '()' will be appended to :func: etc. cross-reference text. #add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). #add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. #show_authors = False # The name of the Pygments (syntax highlighting) style to use. #pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. #modindex_common_prefix = [] # -- Settings for extensions and extension options ---------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.coverage', 'sphinx.ext.inheritance_diagram', 'sphinx.ext.viewcode', 'astropy_helpers.extern.numpydoc', 'astropy_helpers.extern.automodapi.automodapi', 'astropy_helpers.extern.automodapi.smart_resolver', 'astropy_helpers.sphinx.ext.doctest', 'astropy_helpers.sphinx.ext.changelog_links'] if not on_rtd and LooseVersion(sphinx.__version__) < LooseVersion('1.4'): extensions.append('sphinx.ext.pngmath') else: extensions.append('sphinx.ext.mathjax') try: import matplotlib.sphinxext.plot_directive extensions += [matplotlib.sphinxext.plot_directive.__name__] # AttributeError is checked here in case matplotlib is installed but # Sphinx isn't. Note that this module is imported by the config file # generator, even if we're not building the docs. except (ImportError, AttributeError): warnings.warn( "matplotlib's plot_directive could not be imported. " + "Inline plots will not be included in the output") # Don't show summaries of the members in each class along with the # class' docstring numpydoc_show_class_members = False autosummary_generate = True automodapi_toctreedirnm = 'api' # Class documentation should contain *both* the class docstring and # the __init__ docstring autoclass_content = "both" # Render inheritance diagrams in SVG graphviz_output_format = "svg" graphviz_dot_args = [ '-Nfontsize=10', '-Nfontname=Helvetica Neue, Helvetica, Arial, sans-serif', '-Efontsize=10', '-Efontname=Helvetica Neue, Helvetica, Arial, sans-serif', '-Gfontsize=10', '-Gfontname=Helvetica Neue, Helvetica, Arial, sans-serif' ] # -- Options for HTML output ------------------------------------------------- # Add any paths that contain custom themes here, relative to this directory. html_theme_path = [path.abspath(path.join(path.dirname(__file__), 'themes'))] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. html_theme = 'bootstrap-astropy' # Custom sidebar templates, maps document names to template names. html_sidebars = { '**': ['localtoc.html'], 'search': [], 'genindex': [], 'py-modindex': [], } # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. # included in the bootstrap-astropy theme html_favicon = path.join(html_theme_path[0], html_theme, 'static', 'astropy_logo.ico') # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. html_last_updated_fmt = '%d %b %Y' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. #html_theme_options = {} # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # -- Options for LaTeX output ------------------------------------------------ # The paper size ('letter' or 'a4'). #latex_paper_size = 'letter' # The font size ('10pt', '11pt' or '12pt'). #latex_font_size = '10pt' # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. latex_toplevel_sectioning = 'part' # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False latex_elements = {} # Additional stuff for the LaTeX preamble. latex_elements['preamble'] = r""" % Use a more modern-looking monospace font \usepackage{inconsolata} % The enumitem package provides unlimited nesting of lists and enums. % Sphinx may use this in the future, in which case this can be removed. % See https://bitbucket.org/birkenfeld/sphinx/issue/777/latex-output-too-deeply-nested \usepackage{enumitem} \setlistdepth{15} % In the parameters section, place a newline after the Parameters % header. (This is stolen directly from Numpy's conf.py, since it % affects Numpy-style docstrings). \usepackage{expdlist} \let\latexdescription=\description \def\description{\latexdescription{}{} \breaklabel} % Support the superscript Unicode numbers used by the "unicode" units % formatter \DeclareUnicodeCharacter{2070}{\ensuremath{^0}} \DeclareUnicodeCharacter{00B9}{\ensuremath{^1}} \DeclareUnicodeCharacter{00B2}{\ensuremath{^2}} \DeclareUnicodeCharacter{00B3}{\ensuremath{^3}} \DeclareUnicodeCharacter{2074}{\ensuremath{^4}} \DeclareUnicodeCharacter{2075}{\ensuremath{^5}} \DeclareUnicodeCharacter{2076}{\ensuremath{^6}} \DeclareUnicodeCharacter{2077}{\ensuremath{^7}} \DeclareUnicodeCharacter{2078}{\ensuremath{^8}} \DeclareUnicodeCharacter{2079}{\ensuremath{^9}} \DeclareUnicodeCharacter{207B}{\ensuremath{^-}} \DeclareUnicodeCharacter{00B0}{\ensuremath{^{\circ}}} \DeclareUnicodeCharacter{2032}{\ensuremath{^{\prime}}} \DeclareUnicodeCharacter{2033}{\ensuremath{^{\prime\prime}}} % Make the "warning" and "notes" sections use a sans-serif font to % make them stand out more. \renewenvironment{notice}[2]{ \def\py@noticetype{#1} \csname py@noticestart@#1\endcsname \textsf{\textbf{#2}} }{\csname py@noticeend@\py@noticetype\endcsname} """ # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # -- Options for the linkcheck builder ---------------------------------------- # A timeout value, in seconds, for the linkcheck builder linkcheck_timeout = 60 ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/ext/0000775000175000017500000000000000000000000023075 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/ext/__init__.py0000664000175000017500000000010200000000000025177 0ustar00jjleejjleefrom __future__ import division, absolute_import, print_function ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/ext/changelog_links.py0000664000175000017500000000617100000000000026603 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ This sphinx extension makes the issue numbers in the changelog into links to GitHub issues. """ from __future__ import print_function import re from distutils.version import LooseVersion from docutils.nodes import Text, reference from sphinx import __version__ SPHINX_LT_16 = LooseVersion(__version__) < LooseVersion('1.6') BLOCK_PATTERN = re.compile('\[#.+\]', flags=re.DOTALL) ISSUE_PATTERN = re.compile('#[0-9]+') def process_changelog_links(app, doctree, docname): for rex in app.changelog_links_rexes: if rex.match(docname): break else: # if the doc doesn't match any of the changelog regexes, don't process return if SPHINX_LT_16: info = app.info else: from sphinx.util import logging info = logging.getLogger(__name__).info info('[changelog_links] Adding changelog links to "{0}"'.format(docname)) for item in doctree.traverse(): if not isinstance(item, Text): continue # We build a new list of items to replace the current item. If # a link is found, we need to use a 'reference' item. children = [] # First cycle through blocks of issues (delimited by []) then # iterate inside each one to find the individual issues. prev_block_end = 0 for block in BLOCK_PATTERN.finditer(item): block_start, block_end = block.start(), block.end() children.append(Text(item[prev_block_end:block_start])) block = item[block_start:block_end] prev_end = 0 for m in ISSUE_PATTERN.finditer(block): start, end = m.start(), m.end() children.append(Text(block[prev_end:start])) issue_number = block[start:end] refuri = app.config.github_issues_url + issue_number[1:] children.append(reference(text=issue_number, name=issue_number, refuri=refuri)) prev_end = end prev_block_end = block_end # If no issues were found, this adds the whole item, # otherwise it adds the remaining text. children.append(Text(block[prev_end:block_end])) # If no blocks were found, this adds the whole item, otherwise # it adds the remaining text. children.append(Text(item[prev_block_end:])) # Replace item by the new list of items we have generated, # which may contain links. item.parent.replace(item, children) def setup_patterns_rexes(app): app.changelog_links_rexes = [re.compile(pat) for pat in app.config.changelog_links_docpattern] def setup(app): app.connect('doctree-resolved', process_changelog_links) app.connect('builder-inited', setup_patterns_rexes) app.add_config_value('github_issues_url', None, True) app.add_config_value('changelog_links_docpattern', ['.*changelog.*', 'whatsnew/.*'], True) return {'parallel_read_safe': True, 'parallel_write_safe': True} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/ext/doctest.py0000664000175000017500000000364100000000000025120 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ This is a set of three directives that allow us to insert metadata about doctests into the .rst files so the testing framework knows which tests to skip. This is quite different from the doctest extension in Sphinx itself, which actually does something. For astropy, all of the testing is centrally managed from py.test and Sphinx is not used for running tests. """ import re from docutils.nodes import literal_block from docutils.parsers.rst import Directive class DoctestSkipDirective(Directive): has_content = True def run(self): # Check if there is any valid argument, and skip it. Currently only # 'win32' is supported in astropy.tests.pytest_plugins. if re.match('win32', self.content[0]): self.content = self.content[2:] code = '\n'.join(self.content) return [literal_block(code, code)] class DoctestOmitDirective(Directive): has_content = True def run(self): # Simply do not add any content when this directive is encountered return [] class DoctestRequiresDirective(DoctestSkipDirective): # This is silly, but we really support an unbounded number of # optional arguments optional_arguments = 64 def setup(app): app.add_directive('doctest-requires', DoctestRequiresDirective) app.add_directive('doctest-skip', DoctestSkipDirective) app.add_directive('doctest-skip-all', DoctestSkipDirective) app.add_directive('doctest', DoctestSkipDirective) # Code blocks that use this directive will not appear in the generated # documentation. This is intended to hide boilerplate code that is only # useful for testing documentation using doctest, but does not actually # belong in the documentation itself. app.add_directive('testsetup', DoctestOmitDirective) return {'parallel_read_safe': True, 'parallel_write_safe': True} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/ext/edit_on_github.py0000664000175000017500000001346400000000000026442 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ This extension makes it easy to edit documentation on github. It adds links associated with each docstring that go to the corresponding view source page on Github. From there, the user can push the "Edit" button, edit the docstring, and submit a pull request. It has the following configuration options (to be set in the project's ``conf.py``): * ``edit_on_github_project`` The name of the github project, in the form "username/projectname". * ``edit_on_github_branch`` The name of the branch to edit. If this is a released version, this should be a git tag referring to that version. For a dev version, it often makes sense for it to be "master". It may also be a git hash. * ``edit_on_github_source_root`` The location within the source tree of the root of the Python package. Defaults to "lib". * ``edit_on_github_doc_root`` The location within the source tree of the root of the documentation source. Defaults to "doc", but it may make sense to set it to "doc/source" if the project uses a separate source directory. * ``edit_on_github_docstring_message`` The phrase displayed in the links to edit a docstring. Defaults to "[edit on github]". * ``edit_on_github_page_message`` The phrase displayed in the links to edit a RST page. Defaults to "[edit this page on github]". * ``edit_on_github_help_message`` The phrase displayed as a tooltip on the edit links. Defaults to "Push the Edit button on the next page" * ``edit_on_github_skip_regex`` When the path to the .rst file matches this regular expression, no "edit this page on github" link will be added. Defaults to ``"_.*"``. """ import inspect import os import re import sys from docutils import nodes from sphinx import addnodes def import_object(modname, name): """ Import the object given by *modname* and *name* and return it. If not found, or the import fails, returns None. """ try: __import__(modname) mod = sys.modules[modname] obj = mod for part in name.split('.'): obj = getattr(obj, part) return obj except: return None def get_url_base(app): return 'http://github.com/%s/tree/%s/' % ( app.config.edit_on_github_project, app.config.edit_on_github_branch) def doctree_read(app, doctree): # Get the configuration parameters if app.config.edit_on_github_project == 'REQUIRED': raise ValueError( "The edit_on_github_project configuration variable must be " "provided in the conf.py") source_root = app.config.edit_on_github_source_root url = get_url_base(app) docstring_message = app.config.edit_on_github_docstring_message # Handle the docstring-editing links for objnode in doctree.traverse(addnodes.desc): if objnode.get('domain') != 'py': continue names = set() for signode in objnode: if not isinstance(signode, addnodes.desc_signature): continue modname = signode.get('module') if not modname: continue fullname = signode.get('fullname') if fullname in names: # only one link per name, please continue names.add(fullname) obj = import_object(modname, fullname) anchor = None if obj is not None: try: lines, lineno = inspect.getsourcelines(obj) except: pass else: anchor = '#L%d' % lineno if anchor: real_modname = inspect.getmodule(obj).__name__ path = '%s%s%s.py%s' % ( url, source_root, real_modname.replace('.', '/'), anchor) onlynode = addnodes.only(expr='html') onlynode += nodes.reference( reftitle=app.config.edit_on_github_help_message, refuri=path) onlynode[0] += nodes.inline( '', '', nodes.raw('', ' ', format='html'), nodes.Text(docstring_message), classes=['edit-on-github', 'viewcode-link']) signode += onlynode def html_page_context(app, pagename, templatename, context, doctree): if (templatename == 'page.html' and not re.match(app.config.edit_on_github_skip_regex, pagename)): doc_root = app.config.edit_on_github_doc_root if doc_root != '' and not doc_root.endswith('/'): doc_root += '/' doc_path = os.path.relpath(doctree.get('source'), app.builder.srcdir) url = get_url_base(app) page_message = app.config.edit_on_github_page_message context['edit_on_github'] = url + doc_root + doc_path context['edit_on_github_page_message'] = page_message def setup(app): app.add_config_value('edit_on_github_project', 'REQUIRED', True) app.add_config_value('edit_on_github_branch', 'master', True) app.add_config_value('edit_on_github_source_root', 'lib', True) app.add_config_value('edit_on_github_doc_root', 'doc', True) app.add_config_value('edit_on_github_docstring_message', '[edit on github]', True) app.add_config_value('edit_on_github_page_message', 'Edit This Page on Github', True) app.add_config_value('edit_on_github_help_message', 'Push the Edit button on the next page', True) app.add_config_value('edit_on_github_skip_regex', '_.*', True) app.connect('doctree-read', doctree_read) app.connect('html-page-context', html_page_context) return {'parallel_read_safe': True, 'parallel_write_safe': True} ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/local/0000775000175000017500000000000000000000000023367 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/local/python2_local_links.inv0000664000175000017500000000106200000000000030061 0ustar00jjleejjlee# Sphinx inventory version 2 # Project: Python # Version: 2.7 and 3.5 # The remainder of this file should be compressed using zlib. xœ¥”=OÃ0@wÿŠ“ºÀà Z!¤n€U µbwœ+1ríp¶KïÇIi›”QeIä˽wþ8g³"Wf ʬÐxK%¬œ²†lS²ï(ý¦¥Ï­‰‘×Í×1 “k&ƒQrÃóp)”ÉÀ.ÀçÊÁBi—Û 3H¤]„ÎaÁ)ó_Z¥I¤‹Ú>d“H¯ï‰,ÅÐ× _M…_Âð"æ’ òbvIî—zЀ8›<ŸŒ?oÙ',O…wg¯B<•o@œÍËâdÁžá»}5ºdsµDüqã¨ÛØÄ8KK®ÂÁÈßô6úo²9 ¤«£%üè|‡¶@Ó­9ȯ]Τ52ÅvMÁ‡ØQÉCý®üR çÚò#ùunÏÑóœPdSkõýeð›]íW³¸Þ€ÉKõ쨰ɨ¥ÍdÎ RÆŸÿû¼êü_­/ªÖø“'RÉšãG4Hâ¯Õ·ØíÒÛÁ½„·ä·±fžªC{ÃÒÖß| åEª»;åö½¤-¿³ï2½ä{ÉÁÌ]iäÄÇMë;û–¨«HÏãm‹8û‹´RK././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/local/python2_local_links.txt0000664000175000017500000000314600000000000030111 0ustar00jjleejjlee# Sphinx inventory version 2 # Project: Python # Version: 2.7 and 3.5 # The remainder of this file should be compressed using zlib. # python2 IndexError py:exception -1 2/library/exceptions.html#IndexError - IOError py:exception -1 2/library/exceptions.html#IOError - KeyError py:exception -1 2/library/exceptions.html#KeyError - ValueError py:exception -1 2/library/exceptions.html#ValueError - TypeError py:exception -1 2/library/exceptions.html#TypeError - # python3 only TimeoutError py:exception -1 3/library/exceptions.html#TimeoutError - bytes py:function -1 3/library/functions.html#bytes - urllib.request.urlopen py:function -1 3/library/urllib.request.html#urllib.request.urlopen - concurrent.futures.Future py:class -1 3/library/concurrent.futures.html#concurrent.futures.Future - concurrent.futures.ThreadPoolExecutor py:class -1 3/library/concurrent.futures.html#concurrent.futures.ThreadPoolExecutor - queue.Queue py:class -1 3/library/queue.html#queue.Queue - print() py:function -1 3/library/functions.html#print - # python3 only collections.abc collections.Generator py:class -1 3/library/collections.abc.html#collections.abc.Generator - collections.ByteString py:class -1 3/library/collections.abc.html#collections.abc.ByteString - collections.Awaitable py:class -1 3/library/collections.abc.html#collections.abc.Awaitable - collections.Coroutine py:class -1 3/library/collections.abc.html#collections.abc.Coroutine - collections.AsyncIterable py:class -1 3/library/collections.abc.html#collections.abc.AsyncIterable - collections.AsyncIterator py:class -1 3/library/collections.abc.html#collections.abc.AsyncIterator - ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/local/python3_local_links.inv0000664000175000017500000000122200000000000030060 0ustar00jjleejjlee# Sphinx inventory version 2 # Project: Python # Version: 3.5 # The remainder of this file should be compressed using zlib. xœ­ÕÁŽÚ0Ð{¾b$.í!YTUâÖîa·ª*!Qq­{h\;µ¶Ù¯ïgÉšlÏÇvÆ ØV…ÔAê#jolG´N Ëdk~#÷kØ4¾0šZv]ï–Ù'`ZÀ*ûHÍ? ‹%“Z ³_H{©\aj% Gব,:‡j'õ/xU2Ï(ºjõ%­PR\Â7’(ºjÖ¥5ýJ?Àò,³ÍCÕöf…/Õ¢ëOûˆ4©µäF´±ûZszš ºouÐO“Ü ‘Ïål;ƒ”Ýð4’û¬`îç›6éyDí¼ðM…ç”AÄ-}Jwq‰!dÞj´!#âÈT·"ç Ú«hè2£oS¡žßˆ~`· “¨t8«¤²Rûwï§ÒjnKÛñcŸRxÂržŒÿ?íéèÒÉ%Ÿ+æ\ˆOb»ÓÆ ’ø3sË»£ü¿ö`„ôV¾Ò»áv@ˆ>2¥bç;!ý•I,=Whª_ÑôÉé'Ôñö™l!þ©Qó¨%Œþ^ûÓBÝ#Ô }inuüÜÂD¹#e³ªŠ\‹ž¸:ï{ø¡tuþ;‰/wx†–yó®–.–¿ !þn²X{0Bz×Þo±øH ùÏ/LúØòxA&UÝXS{ºžâ®¸™ÌÜ5šß£¸‡Ð\’ÈRBiòJFü?././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/local/python3_local_links.txt0000664000175000017500000000540400000000000030111 0ustar00jjleejjlee# Sphinx inventory version 2 # Project: Python # Version: 2.7 and 3.5 # The remainder of this file should be compressed using zlib. # python2 only links cPickle py:module -1 2/library/pickle.html#module-cPickle - unicode py:function -1 2/library/functions.html#unicode - bsddb py:module -1 2/library/bsddb.html#module-bsddb - dict.has_key py:method -1 2/library/stdtypes.html#dict.has_key - dict.iteritems py:method -1 2/library/stdtypes.html#dict.iteritems - dict.iterkeys py:method -1 2/library/stdtypes.html#dict.iterkeys - dict.itervalues py:method -1 2/library/stdtypes.html#dict.itervalues - urllib2.urlopen py:function -1 2/library/urllib2.html#urllib2.urlopen - # python3 print() py:function -1 3/library/functions.html#print - # python3 collections.abc collections.Container py:class -1 3/library/collections.abc.html#collections.abc.Container - collections.Hashable py:class -1 3/library/collections.abc.html#collections.abc.Hashable - collections.Sized py:class -1 3/library/collections.abc.html#collections.abc.Sized - collections.Callable py:class -1 3/library/collections.abc.html#collections.abc.Callable - collections.Iterable py:class -1 3/library/collections.abc.html#collections.abc.Iterable - collections.Iterator py:class -1 3/library/collections.abc.html#collections.abc.Iterator - collections.Generator py:class -1 3/library/collections.abc.html#collections.abc.Generator - collections.Sequence py:class -1 3/library/collections.abc.html#collections.abc.Sequence - collections.MutableSequence py:class -1 3/library/collections.abc.html#collections.abc.MutableSequence - collections.ByteString py:class -1 3/library/collections.abc.html#collections.abc.ByteString - collections.Set py:class -1 3/library/collections.abc.html#collections.abc.Set - collections.MutableSet py:class -1 3/library/collections.abc.html#collections.abc.MutableSet - collections.Mapping py:class -1 3/library/collections.abc.html#collections.abc.Mapping - collections.MutableMapping py:class -1 3/library/collections.abc.html#collections.abc.MutableMapping - collections.MappingView py:class -1 3/library/collections.abc.html#collections.abc.MappingView - collections.ItemsView py:class -1 3/library/collections.abc.html#collections.abc.ItemsView - collections.KeysView py:class -1 3/library/collections.abc.html#collections.abc.KeysView - collections.ValuesView py:class -1 3/library/collections.abc.html#collections.abc.ValuesView - collections.Awaitable py:class -1 3/library/collections.abc.html#collections.abc.Awaitable - collections.Coroutine py:class -1 3/library/collections.abc.html#collections.abc.Coroutine - collections.AsyncIterable py:class -1 3/library/collections.abc.html#collections.abc.AsyncIterable - collections.AsyncIterator py:class -1 3/library/collections.abc.html#collections.abc.AsyncIterator - ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/setup_package.py0000664000175000017500000000044400000000000025464 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst def get_package_data(): # Install the theme files return { 'astropy_helpers.sphinx': [ 'local/*.inv', 'themes/bootstrap-astropy/*.*', 'themes/bootstrap-astropy/static/*.*']} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3439944 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/0000775000175000017500000000000000000000000023562 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/0000775000175000017500000000000000000000000027276 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/globaltoc.html0000664000175000017500000000011100000000000032123 0ustar00jjleejjlee

Table of Contents

{{ toctree(maxdepth=-1, titles_only=true) }} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/layout.html0000664000175000017500000000655100000000000031510 0ustar00jjleejjlee{% extends "basic/layout.html" %} {# Collapsible sidebar script from default/layout.html in Sphinx #} {% set script_files = script_files + ['_static/sidebar.js'] %} {# Add the google webfonts needed for the logo #} {% block extrahead %} {% if not embedded %}{% endif %} {% endblock %} {% block header %}
{{ theme_logotext1 }}{{ theme_logotext2 }}{{ theme_logotext3 }}
  • Index
  • Modules
  • {% block sidebarsearch %} {% include "searchbox.html" %} {% endblock %}
{% endblock %} {% block relbar1 %} {% endblock %} {# Silence the bottom relbar. #} {% block relbar2 %}{% endblock %} {%- block footer %}

{%- if edit_on_github %} {{ edit_on_github_page_message }}   {%- endif %} {%- if show_source and has_source and sourcename %} {{ _('Page Source') }} {%- endif %}   Back to Top

{%- if show_copyright %} {%- if hasdoc('copyright') %} {% trans path=pathto('copyright'), copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
{%- else %} {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %}
{%- endif %} {%- endif %} {%- if show_sphinx %} {% trans sphinx_version=sphinx_version|e %}Created using Sphinx {{ sphinx_version }}.{% endtrans %}   {%- endif %} {%- if last_updated %} {% trans last_updated=last_updated|e %}Last built {{ last_updated }}.{% endtrans %}
{%- endif %}

{%- endblock %} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/localtoc.html0000664000175000017500000000004200000000000031760 0ustar00jjleejjlee

Page Contents

{{ toc }} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/searchbox.html0000664000175000017500000000042000000000000032136 0ustar00jjleejjlee{%- if pagename != "search" %}
{%- endif %} ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/0000775000175000017500000000000000000000000030565 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000021700000000000010215 xustar00115 path=pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_linkout.svg 28 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_linkou0000664000175000017500000001212100000000000033567 0ustar00jjleejjlee ././@PaxHeader0000000000000000000000000000022200000000000010211 xustar00118 path=pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_linkout_20.png 28 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_linkou0000664000175000017500000000327500000000000033601 0ustar00jjleejjlee‰PNG  IHDR[â8A bKGDÿÿÿ ½§“ oFFsvek pHYs × ×B(›x vpAg\@0¢Ð¬IDATXÃå˜iŒ_SÆϘÚ+Új‹fF« BH‘XbOÐέ†ª}‰-Z¤Abû¢$¤Öi…V#¸T•ZCÕ– µIi™ÚU”d¦ª÷ý›;·÷?™)Ó*OrsïyÏsÏûžçžóžs®è!ج’ôLOùÙ`[À–=é`œ3|¼±;»1`{ÛͶﱽÔv]mú«ßØÞX°=˜l¦y’Zjs„á@30ŒlÈ<,éÝ’ÆöÆ @+ð60SÒ϶ûÇG½í‰ñü¡¤mo œ¬‘t—íþÀ%À `¶¤4üÔ pÐX<,’Ô1¦„:`•R~qÂPà` ð.°0kœÐ¨WJéŒs¶@R>)é÷ÎÀ´Ntž$éS`6p6pTØím¢5…—ÿÆHš“s8˜Éã{à@`»¿ ÷J:×v=ð%``/à9`çàœ/iší~À\`ÿbŸ{ƒçœH7KBäÝ€§"Æ“o€f¥´:¡/°hRÊʱ' J™\"ö`ànàÜ*ý[!©ÍöåÀ”ˆÿ `'I­ØÆö¶µ}Ÿí ¶o´Ý9÷#Ûg›Ùþ6ì l²}’í—m¿h[¶›lO·ýeð~ŽòtÛgE;õnÇÛkmϳ=Ëö^ÑÎKQ¿&âš~*¸² Ò NøÑ §ìµNxÊ ×æl30¡L-'ÌwÂ~¥uö ÛOÒ lOŒ˜Ïm)†ÙÞ©`»"×±ÁakÈÙšs\"5äߟ[m,ˆÝfû˜Bý±¹ú 9{ígÃþ[Œþ¼Ø“ªØà„'(Ê8á}'ëðú;aqÑ^{N•:l_q-ãÔHZ"éëx©.„Ü5ÇkŠû×ÀOñ|[ì86—„¤_Y?Ü-éé‚í¸¸ÿB6m‰8×wDqkÚ×… ÚÊ(eY´5$ʯwdz"ðD%¿—iZMh²´1/éѪbÛîmûZÛŸ‘åÒ¸0Çë] ŒV’-Ž_Ù¾9öÕ냲…ª1îK%­)Ôå®AÝðÓBûº08­À9•lî *±íN¶à'’ž M/ÎØÛÛo×;·GcJ=IÏÛ€€þÀeÀ›¶û®§àÕ:T6’܆ò}ÖæÊ³€£œP à„F 7°¸“6J}Kú h,ÌÐa¡S‡ÎŒŠV`¤¤‹%½üXU é[I—»WEÀÿˆÔ°<îM¶‹;¤Á¹çeÝh³1ÏWÊjà% 2úF3;I!±ËF6’Z ¦âÇ¥†ÈcÀrIKªtªÝ›=¢"€¤VIS€rªà·¸°½Y7Å®ï·ÎÈù8/ŠmÀü®4æ„}Õdg‡<¦çÄóhàÁ.4§.p*Úv»ø*žw·}=YJ9ÖÝÙ¼,²=øì”…9ú;À @_`†í¹ÀÊ.þ'IÉöê#{lï |Hv868·Hú¦ðÞÞNRòûï-ÈRãÍ%£öM Þ ûµJÿšQÕÐVCvNé öŒ¶¸&ìk"À“ÉrrÉv$Ä•Ç:ŽŒidi¥8%®WiµU!i­íÑÀcáçÒ\õÀý¹XóÌsÂL²…w7`2°¸o?)8áNàqàÖ.ŠØd{rxS˜yÙ¾ÓÞ¸˜,¡¯î—ôží1À²³ýòàöŽúß‘”æåOtÁ\ V $MSë©A{UÒGeÑFºj&;öö#›IIZg‹dK| ó€=ÉÆJYTM'lE¶»¤”–ÎÔ‹³Äé]ü(¯Hú üMq¨¹h=ÞÛÏ ¯lˆkþ~›<&wmGÿk±pYº™½!üõäÿì%âÿÈ#ÀædëÀX¥·h=…ÿ’ØSß»À3p5™Ø‹óÛĞƟ ½§pÅ%tEXtdate:create2012-10-18T20:57:33+02:00¢p_f%tEXtdate:modify2012-10-18T20:57:33+02:00Ó-çÚtEXtSoftwarewww.inkscape.org›î<IEND®B`‚././@PaxHeader0000000000000000000000000000021400000000000010212 xustar00112 path=pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo.ico 28 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo.i0000664000175000017500000010033400000000000033461 0ustar00jjleejjlee@@ (@F  (n@ ( –P (¾Y(@€ ÿÿ ÿ* ÿVýy ý›¬±ûÕúûüí÷ùüìýýýíýýýí§ªû× ü«ý‹ýoüKÿ ÿ ÿÿîûHýýÌúìýó ûøûü°µÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜Ÿÿÿûþ ûúûöýòúéûÇýÿIóÿ¿ÿ!ýyûÏüðüúÿÿÿÿÿÿ ÿÿ>KÿÿÏÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿûúÿðûÚü—û?ã ÿÿý|ûÚýöÿÿÿÿÿÿþÿýÿýÿLYþÿÌÏÿÿûüÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿerþÿýÿýÿýÿýÿýÿþÿÿÿÿÿÿÿüûûíú½ÿZÿÿüJûÇýöÿÿÿÿþÿýÿýÿýÿ*<þÿ™¡ÿÿêíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉÎÿÿ3Eýÿ ýÿýÿýÿýÿýÿýÿýÿýÿþÿÿÿÿÿÿÿÿðûÄüXÿÿü•üêÿÿÿÿþÿýÿýÿýÿ1ýÿ“þÿäèÿÿûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrþÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿÿÿÿÿÿÿüïù´ÿ=ÿø$û®ýúÿÿÿÿýÿýÿýÿýÿ.Cþÿ·¿ÿÿùúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”Ÿþÿ*ýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿÿÿÿÿÿÿúâû†ÿÿ3üÃüþÿÿýÿýÿýÿýÿýÿ^pþÿÓÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷øÿÿ…“þÿ+ýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿÿÿÿÿýöü¸ÿ7 ÿ(øÃ!ÿÿ ÿÿ ýÿ ýÿ ýÿýÿýÿsƒþÿåéÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÍþÿPfýÿ %ýÿýÿýÿ ýÿ ýÿ ýÿ ýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿýÿþÿÿÿ ÿÿûÙ ÿi#ÿ úº#ÿÿ"ÿÿ"ýÿ"ýÿ"ýÿ ýÿ ýÿy‹ÿÿîðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâåþÿu‡ýÿ =ýÿýÿýÿ!ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ!ýÿ!ÿÿ!ÿÿ ûìýƒÿÿ$ý›$ýÿ$ÿÿ$ýÿ$ýÿ$ýÿ"ýÿýÿmþÿëîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýÿÿ¦²þÿ8Týÿ%ýÿýÿ!ýÿ$ýÿ$ýÿ$ýÿ$ýÿ$ýÿ#ýÿ#ýÿ#ýÿ"ýÿ"ýÿ"ýÿ"ýÿ#ýÿ#ýÿ#ýÿ$ýÿ$ýÿ$ýÿ$ýÿ$ýÿ$ýÿ#ýÿ#ýÿ$þÿ$ÿÿ#üõ!ü’'ÿ &ÿj'ûñ(ÿÿ&ýÿ&ýÿ&ýÿ&ýÿ!ýÿNiþÿÞãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçëþÿmƒýÿ5ýÿ ýÿ ýÿ%ýÿ&ýÿ&ýÿ&ýÿ%ýÿ%ýÿ$ýÿ#ýÿ#ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ"ýÿ#ýÿ#ýÿ$ýÿ$ýÿ%ýÿ&ýÿ&ýÿ&ýÿ&ýÿ&ýÿ&ýÿ&þÿ&ÿÿ%ýø&üš3ÿ)ÿ%(ûØ*ÿÿ)ýÿ)ýÿ)ýÿ(ýÿ%ýÿ'IþÿÇÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙßþÿUqýÿ'ýÿ!ýÿ'ýÿ)ýÿ(ýÿ(ýÿ(ýÿ'ýÿ&ýÿ#ýÿ(ýÿ"DþÿPkþÿp†þÿ‡™þÿ’£þÿ‘¢þÿ„˜þÿm„þÿNjþÿ!Cþÿ&ýÿ"ýÿ%ýÿ&ýÿ'ýÿ(ýÿ(ýÿ(ýÿ(ýÿ(ýÿ(ýÿ(ÿÿ&üú'ü˜9ÿ ÿ+ý”*þÿ+ÿÿ*þÿ+þÿ+þÿ)þÿ*þÿ®ÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàåÿÿQoþÿ%þÿ%þÿ+þÿ+þÿ+þÿ+þÿ*þÿ'þÿ$þÿ"Gþÿt‹ÿÿ¶ÂÿÿÔÛÿÿäèÿÿïñÿÿöøÿÿúûÿÿúûÿÿö÷ÿÿîñÿÿãèÿÿÔÛÿÿ¹Åÿÿ}’ÿÿ/Rþÿ'þÿ&þÿ)þÿ)þÿ*þÿ*þÿ*þÿ*þÿ*þÿ*ÿÿ'ûù'ý‰Uª+ÿ;-üæ.ÿÿ-þÿ-þÿ-þÿ,þÿ)þÿVtÿÿêîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíñÿÿ]zþÿ(þÿ'þÿ-þÿ-þÿ-þÿ-þÿ,þÿ$þÿFþÿ‰ÿÿÒÚÿÿðóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóõÿÿ×Þÿÿ£³ÿÿ?`ÿÿ)þÿ)þÿ,þÿ,þÿ,þÿ,þÿ,þÿ,þÿ.ÿÿ,üñ.ýt@ÿ/ý™/þÿ0ÿÿ0þÿ0þÿ0þÿ-þÿ :þÿ¿Ìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿz“þÿ1þÿ(þÿ0þÿ/þÿ.þÿ/þÿ,þÿ+þÿZwÿÿÇÑÿÿøúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜâÿÿ”§ÿÿ#Lþÿ'þÿ.þÿ/þÿ/þÿ/þÿ/þÿ/þÿ0ÿÿ.üâ-ÿI0ÿ%0ýá2ÿÿ1þÿ1þÿ1þÿ0þÿ/þÿbÿÿðóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¯¿þÿHþÿ)þÿ1þÿ2þÿ2þÿ1þÿ.þÿ8þÿx’ÿÿæëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿÄÏÿÿTsÿÿ+þÿ/þÿ1þÿ0þÿ0þÿ0þÿ1ÿÿ1ÿÿ/üÈ2ÿ$@¿3ýn3üø5ÿÿ3þÿ3þÿ3þÿ1þÿ8þÿÀÌÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿëïÿÿEkþÿ,þÿ2þÿ4þÿ3þÿ4þÿ1þÿ8þÿ€šÿÿñôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôöÿÿÕÞÿÿËÕÿÿËÖÿÿ×ßÿÿõöÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâçÿÿqÿÿ1þÿ0þÿ3þÿ2þÿ2þÿ2þÿ3ÿÿ2þÿ0üŸ@ÿã 2ü¶6üþ6ÿÿ6þÿ6þÿ5þÿ5þÿDlþÿèíÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”«þÿ @þÿ/þÿ6þÿ5þÿ5þÿ4þÿ0þÿt‘ÿÿñôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäéÿÿ—­þÿ\~þÿ?eþÿ1\þÿ,Xþÿ,Xþÿ2]þÿ?fþÿZ}þÿ§þÿÖßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïòÿÿu’ÿÿ3þÿ3þÿ5þÿ5þÿ5þÿ5þÿ6ÿÿ4üð4ÿX8ÿ 5ûå:ÿÿ8þÿ8þÿ8þÿ7þÿ7þÿ–®ÿÿûüÿÿÿÿÿÿÿÿÿÿÿÿÿÿðôÿÿ@jþÿ0þÿ8þÿ8þÿ8þÿ8þÿ.þÿRxÿÿæëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñóÿÿާþÿ:eþÿEþÿ1þÿ*þÿ-þÿ.þÿ.þÿ-þÿ*þÿ0þÿCþÿ3]þÿj‹þÿËÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿíòÿÿlŒÿÿ1þÿ6þÿ8þÿ7þÿ7þÿ8þÿ8ÿÿ5ýÌ5ÿ:ÿO9üô<ÿÿ:þÿ:þÿ:þÿ8þÿ BþÿÏÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®ÁþÿMþÿ3þÿ;þÿ:þÿ;þÿ7þÿOþÿ»ËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÞþÿ^„þÿ@þÿ/þÿ4þÿ9þÿ:þÿ:þÿ:þÿ9þÿ9þÿ9þÿ8þÿ4þÿ.þÿ6þÿ/]þÿ‹¥þÿóõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàçÿÿMuÿÿ3þÿ9þÿ9þÿ9þÿ9þÿ;ÿÿ8ûý8ÿÿ<ÿ{;ü÷=ÿÿ<þÿ<þÿ<þÿ;þÿ9hþÿæìÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿcˆþÿ<þÿ:þÿ<þÿ<þÿ<þÿ2þÿx™ÿÿõøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÝþÿOyþÿ6þÿ5þÿ<þÿ=þÿ<þÿ<þÿ<þÿ<þÿ<þÿ<þÿ<þÿ<þÿ<þÿ<þÿ9þÿ2þÿ Aþÿf‹þÿàçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÓÿÿ!Sþÿ9þÿ;þÿ;þÿ;þÿ<þÿ=ÿÿ9üÝ;ÿ'=ý¢?ûý@ÿÿ?þÿ?þÿ=þÿ?þÿkÿÿðôÿÿÿÿÿÿÿÿÿÿÿÿÿÿñôÿÿ7gþÿ5þÿ>þÿ>þÿ>þÿ;þÿMþÿ¾Îÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêïÿÿc‰þÿ8þÿ9þÿ?þÿ>þÿ>þÿ>þÿ>þÿ>þÿ>þÿ>þÿ>þÿ>þÿ>þÿ>þÿ>þÿ?þÿ>þÿ7þÿ:þÿ[„þÿàèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿ‘¬ÿÿ=þÿ<þÿ>þÿ>þÿ>þÿ@ÿÿ>üþ>ýˆÿAþ¿BÿÿBÿÿAþÿAþÿ?þÿBþÿ•°ÿÿúüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉ×ÿÿ#[þÿ9þÿAþÿAþÿAþÿ:þÿUÿÿäëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”°þÿ Fþÿ9þÿAþÿ@þÿ@þÿ@þÿ>þÿ:þÿ6þÿ5þÿ5þÿ7þÿ;þÿ?þÿ@þÿ@þÿ@þÿ@þÿAþÿ;þÿ=þÿeþÿñõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãëÿÿ>oþÿ>þÿ@þÿ@þÿ@þÿAþÿBÿÿ?üÝ<ÿBûÒDÿÿCÿÿCþÿCþÿAþÿDþÿ³Çÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢ºþÿTþÿ>þÿCþÿCþÿCþÿ9þÿŒ«ÿÿûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿâêÿÿEvþÿ7þÿCþÿCþÿCþÿ>þÿ4þÿDþÿBsþÿs˜þÿƒ£ÿÿ„£ÿÿjÿÿ0fþÿ>þÿ:þÿBþÿBþÿBþÿBþÿCþÿ;þÿ Fþÿˆ¦þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿ§¾ÿÿCþÿ@þÿBþÿBþÿBþÿDÿÿBûúBýhUÿEûãGÿÿEþÿEþÿEþÿBþÿFþÿÈÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡¨þÿOþÿAþÿEþÿEþÿDþÿ@þÿ®Äÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©ÁþÿYþÿ?þÿFþÿCþÿ9þÿ&aþÿ¡ÿÿ¨ÀÿÿÔàÿÿöùÿÿÿÿÿÿÿÿÿÿïóÿÿÈÖÿÿ—³ÿÿ?rÿÿ?þÿBþÿEþÿEþÿEþÿEþÿ=þÿ$_þÿÇÖþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâêÿÿ4kþÿCþÿDþÿDþÿDþÿDÿÿEýþBüÄ@ÿ FúêJÿÿHþÿHþÿHþÿEþÿIþÿÕáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿxžþÿMþÿDþÿGþÿGþÿFþÿ Oþÿ¾Ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚¥þÿIþÿEþÿ?þÿHþÿ_Šÿÿ¿ÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒßÿÿbŽÿÿHþÿEþÿGþÿGþÿGþÿEþÿEþÿ\‰þÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿùûÿÿ‰ªÿÿEþÿEþÿGþÿGþÿGþÿIÿÿDûñJÿ4IûåLÿÿJþÿJþÿJþÿGþÿLþÿÙäÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtœþÿNþÿGþÿJþÿJþÿHþÿZþÿÃÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿp™þÿBþÿ=þÿ ]ÿÿЬÿÿêðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèïÿÿ]ŒÿÿBþÿIþÿIþÿIþÿJþÿAþÿ `þÿÆ×þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËÚÿÿ PþÿGþÿIþÿIþÿIþÿKÿÿHüùJÿxLúàNÿÿLÿÿLþÿLþÿIþÿNþÿÖãÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{¢þÿ RþÿIþÿLþÿLþÿJþÿ\þÿÃÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrœþÿ;þÿ.hÿÿ¬ÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËÛÿÿ+iÿÿGþÿKþÿKþÿKþÿHþÿNþÿo™þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçîÿÿ5pþÿJþÿKþÿKþÿKþÿKÿÿKüþLü¿OûÓPÿÿNÿÿNþÿNþÿLþÿOþÿÈÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°þÿYþÿJþÿNþÿNþÿMþÿRþÿ¼Ðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€¦þÿ5nÿÿ®ÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøûÿÿŠ®ÿÿFþÿMþÿNþÿNþÿNþÿFþÿ9uþÿô÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿðõÿÿnšÿÿMþÿKþÿMþÿMþÿMþÿOÿÿLûéPüºQþÿQÿÿQþÿQþÿOþÿRþÿ±Éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬ÆÿÿbþÿJþÿPþÿPþÿPþÿHþÿ¨ÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿºÏÿÿ¹ÐÿÿüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÕÿÿ\þÿNþÿPþÿPþÿPþÿIþÿ!gþÿÈÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿûýÿÿ™¹ÿÿPþÿNþÿPþÿPþÿPþÿRÿÿPüïRýŸQüüTÿÿSþÿSþÿQþÿTþÿ‘µÿÿùûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚæÿÿ'mþÿJþÿSþÿSþÿSþÿJþÿ}§ÿÿõøÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ùÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûüÿÿüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿØäÿÿAÿÿNþÿRþÿRþÿRþÿMþÿ`þÿ›¼þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿºÐÿÿTþÿPþÿRþÿRþÿRþÿTÿÿPüíVÿ}UüøVÿÿUþÿUþÿSþÿTþÿf™ÿÿïôÿÿÿÿÿÿÿÿÿÿÿÿÿÿûýÿÿF„þÿOþÿTþÿUþÿUþÿQþÿ9{ÿÿØåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑàÿÿœ½ÿÿéðÿÿÿÿÿÿÿÿÿÿÿÿÿÿæîÿÿ_“ÿÿNþÿTþÿTþÿTþÿPþÿ Zþÿ~¨þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑàÿÿVþÿQþÿTþÿTþÿTþÿVÿÿRüíVÿPWüóYÿÿWþÿWþÿVþÿUþÿ0wþÿåîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆ±þÿ _þÿSþÿWþÿWþÿVþÿXþÿ¡ÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçïÿÿSÿÿ:}þÿÖäÿÿÿÿÿÿÿÿÿÿÿÿÿÿìóÿÿjÿÿPþÿVþÿVþÿVþÿTþÿYþÿjœþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛçÿÿ ]þÿSþÿVþÿVþÿVþÿXÿÿVüíZÿ"Xúì\ÿÿYþÿYþÿYþÿWþÿ^þÿÃÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜéÿÿ-vþÿQþÿYþÿYþÿYþÿRþÿ;€ÿÿÙæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßêÿÿb™ÿÿQþÿ9þÿÛèÿÿÿÿÿÿÿÿÿÿÿÿÿÿëòÿÿhœÿÿSþÿYþÿYþÿYþÿWþÿZþÿb™þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞéÿÿeþÿWþÿXþÿXþÿXþÿ[ÿÿXüífÿ XüÇ]ýþ\ÿÿ\þÿ\þÿZþÿZþÿ~¬ÿÿ÷úÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzªþÿ^þÿWþÿ\þÿ[þÿ[þÿWþÿd›ÿÿêòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿×ÿÿOÿÿXþÿKþÿNŽþÿó÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿáìÿÿV’ÿÿVþÿ[þÿ[þÿ[þÿYþÿ\þÿeœþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÝéÿÿ dþÿYþÿ[þÿ[þÿ[þÿ^ÿÿ[üífÿ_ý„]üù_ÿÿ^þÿ^þÿ]þÿ\þÿ*xþÿÜèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàëÿÿ<„þÿXþÿ]þÿ^þÿ^þÿ\þÿ_þÿdÿÿÓäÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑâÿÿ‡³ÿÿ)wÿÿTþÿ[þÿYþÿt§þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒâÿÿ4þÿYþÿ]þÿ]þÿ]þÿZþÿaþÿr¥þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙçÿÿ`þÿZþÿ]þÿ]þÿ]þÿ`ÿÿ]üíÿbÿ<`ûñcÿÿ`þÿ`þÿ`þÿ^þÿ]þÿ˜¿ÿÿûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®ÌþÿoþÿYþÿ`þÿ`þÿ`þÿ]þÿ[þÿBˆÿÿ—¾ÿÿÏáÿÿøúÿÿÿÿÿÿüýÿÿäîÿÿ´Ðÿÿ‹·ÿÿ?‡ÿÿZþÿYþÿ`þÿWþÿ"vþÿ½Õþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹Óÿÿeþÿ]þÿ_þÿ_þÿ_þÿ\þÿhþÿеþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÜÿÿ`þÿ\þÿ_þÿ_þÿ_þÿbÿÿ]üímíbýÌdýþbþÿbþÿbþÿbþÿaþÿ/€þÿÚèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘»þÿiþÿ[þÿaþÿbþÿbþÿaþÿZþÿ_þÿ;†þÿr¨ÿÿ°ÿÿy¬ÿÿW—þÿoþÿWþÿ[þÿaþÿbþÿ_þÿ]þÿp§þÿøûÿÿÿÿÿÿÿÿÿÿÿÿÿÿùûÿÿ‰·ÿÿYþÿaþÿbþÿbþÿbþÿ]þÿrþÿ¬Ìþÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ­Ìÿÿbþÿ_þÿaþÿaþÿaþÿdÿÿ_üíUªeýwdüùgÿÿeþÿeþÿeþÿdþÿ`þÿy®ÿÿùûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýþÿÿºþÿoþÿ\þÿbþÿdþÿdþÿdþÿcþÿ_þÿZþÿYþÿZþÿ\þÿaþÿdþÿdþÿdþÿaþÿ]þÿGþÿÔäþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØçÿÿ9‡ÿÿ_þÿdþÿdþÿdþÿdþÿ\þÿ(|þÿÜêÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷ûÿÿ‰·ÿÿeþÿbþÿdþÿdþÿdþÿgÿÿdüígÿ%füâjÿÿgþÿgþÿgþÿgþÿeþÿpþÿ°Ïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Æþÿ3…þÿcþÿ_þÿfþÿgþÿgþÿgþÿfþÿfþÿfþÿfþÿfþÿfþÿfþÿ_þÿcþÿG‘þÿÆÝþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿ˜Áÿÿcþÿeþÿfþÿfþÿfþÿeþÿ`þÿGþÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿìôÿÿZ›þÿeþÿeþÿfþÿfþÿfþÿiÿÿfüíÿiý—hýýkÿÿiþÿiþÿiþÿhþÿeþÿ5‡þÿÍáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËáþÿg¥þÿ'}þÿeþÿ`þÿdþÿfþÿgþÿhþÿhþÿgþÿeþÿaþÿbþÿwþÿj§þÿØèþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐäÿÿ5‡ÿÿcþÿhþÿhþÿhþÿhþÿdþÿ pþÿ‰¹þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàíÿÿ&þÿfþÿgþÿhþÿhþÿhþÿkÿÿhüíjÿ0kúánÿÿkþÿkþÿkþÿkþÿjþÿeþÿN˜ÿÿ×éÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹Öþÿi¨þÿ=þÿ|þÿ qþÿhþÿdþÿfþÿlþÿvþÿ0…þÿXžþÿ«Îþÿüýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïöÿÿd¦ÿÿdþÿjþÿkþÿkþÿkþÿkþÿdþÿ*„þÿØéÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿ¼ØÿÿkþÿhþÿjþÿjþÿjþÿjþÿmÿÿküínýmüþpÿÿnþÿnþÿnþÿnþÿmþÿgþÿSœÿÿÑåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáîÿÿ«Ïþÿ‡ºþÿmªþÿ_¤þÿe§þÿx±þÿ˜ÃþÿÊáÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòøÿÿ|µÿÿnþÿkþÿmþÿmþÿmþÿmþÿjþÿmþÿl«þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôùÿÿq®ÿÿlþÿlþÿmþÿmþÿmþÿmþÿpÿÿküïuÿ%mýÔrÿÿpþÿpþÿpþÿpþÿpþÿoþÿiþÿD•ÿÿ·×ÿÿûýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìôÿÿ~·ÿÿ tþÿkþÿoþÿoþÿnþÿjþÿkþÿiþÿ.‰þÿÒåÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÙêÿÿ#‚þÿmþÿnþÿoþÿoþÿoþÿoþÿrÿÿoüérÿgpûôuÿÿqþÿrþÿrþÿrþÿrþÿqþÿlþÿþÿÁÿÿáîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕèÿÿj¬ÿÿsþÿoþÿqþÿqþÿpþÿsþÿ~þÿtþÿtþÿ¿þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿ•ÄÿÿnþÿoþÿqþÿqþÿqþÿqþÿqÿÿrýþnüÂ`ÿtü«vÿÿuÿÿtþÿtþÿtþÿtþÿtþÿtþÿqþÿsþÿR ÿÿ²Õÿÿãðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâïÿÿ§Ïÿÿ:“ÿÿoþÿrþÿtþÿtþÿtþÿmþÿ%ˆþÿ—Æþÿn°þÿb©þÿóøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜìÿÿ0þÿrþÿrþÿsþÿsþÿsþÿsþÿuÿÿsüúrýyxÿ1výÓzÿÿwþÿwþÿwþÿwþÿwþÿwþÿvþÿuþÿpþÿ {þÿW¤ÿÿ©ÒÿÿÑæÿÿëôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿð÷ÿÿÔèÿÿ«ÑÿÿT¢ÿÿxþÿqþÿuþÿuþÿuþÿvþÿsþÿ vþÿp²þÿÿÿÿÿï÷ÿÿåñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüýÿÿ‰Àÿÿsþÿuþÿvþÿvþÿvþÿvþÿvþÿyÿÿuüéwÿ/xÿ[wûê|ÿÿyþÿxþÿxþÿxþÿxþÿyþÿyþÿxþÿwþÿtþÿvþÿ+þÿh°ÿÿ›Êÿÿ¼ÜÿÿÊãÿÿÒçÿÿÔèÿÿÒèÿÿÍåÿÿÃàÿÿ§Ñÿÿt¶ÿÿ2“þÿwþÿsþÿwþÿxþÿxþÿxþÿxþÿxþÿqþÿ7”þÿÙëÿÿÿÿÿÿÿÿÿÿýÿÿÿýþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃßÿÿ…þÿvþÿxþÿxþÿwþÿwþÿwþÿyÿÿxÿÿwüª’ÿ|û„xûù~ÿÿ{þÿzþÿzþÿzþÿzþÿzþÿzþÿzþÿzþÿzþÿxþÿwþÿuþÿxþÿ…þÿ)þÿ-’þÿ)þÿŠþÿ|þÿuþÿwþÿxþÿzþÿzþÿzþÿ{þÿ{þÿ{þÿ{þÿvþÿ €þÿ‰ÁþÿþþÿÿÿÿÿÿÿÿÿÿþþÿÿúüÿÿþÿÿÿÿÿÿÿÝíÿÿO¤ÿÿvþÿyþÿyþÿyþÿyþÿyþÿzþÿ|ÿÿwûï|ÿHÿŽÿ {ü—~ýú€ÿÿ}þÿ}þÿ}þÿ}þÿ|þÿ|þÿ|þÿ|þÿ|þÿ|þÿ|þÿ|þÿ{þÿ{þÿ{þÿzþÿ{þÿ{þÿ{þÿ|þÿ|þÿ|þÿ|þÿ|þÿ|þÿ|þÿ|þÿ|þÿ|þÿwþÿP¥þÿôùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿýþÿÿõúÿÿ†Áÿÿyþÿ{þÿ}þÿ|þÿ|þÿ|þÿ|þÿ}ÿÿ}ÿÿzû«’ÿ€ÿ€ý¢‚ýýƒÿÿ€þÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿþÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿyþÿ!þÿ«ÕþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëõÿÿÀþÿ„þÿ}þÿ~þÿ~þÿ~þÿ~þÿþÿ‚ÿÿ~ûä}ÿ7„ÿú¨ƒüû…ÿÿ‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€ÿÿ}ÿÿb±ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüþÿÿ¿ßÿÿ/˜ÿÿ€ÿÿ€ÿÿ€ÿÿ€ÿÿ€ÿÿƒÿÿ€ýùý€ÿ€ÿüž…üù‡ÿÿ„ÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿƒÿÿ‚ÿÿ„ÿÿn¹ÿÿúýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòùÿÿÇäÿÿšÎÿÿ; ÿÿƒÿÿƒÿÿƒÿÿƒÿÿ‚ÿÿ…ÿÿ…ÿÿ€ü²ˆÿ’ÿ…ý’„üòŠÿÿ‡ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿƒÿÿ‚ÿÿÿÿ€ÿÿ‚ÿÿ]±ÿÿåóÿÿùýÿÿÿÿÿÿÿÿÿÿàðÿÿ¼àÿÿƒÄÿÿ“ÿÿƒÿÿ„ÿÿ…ÿÿ…ÿÿ…ÿÿ…ÿÿ†ÿÿˆÿÿ‚ýÌ‚ÿ+€ÿ‰ýu‰üáŒÿÿŠÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‰ÿÿ‘ÿÿ•ÿÿ •ÿÿ%–ÿÿg¸ÿÿËçÿÿ³Ûÿÿ¬ØÿÿÕëÿÿ©ÖÿÿL«ÿÿ‰ÿÿ…ÿÿ†ÿÿ†ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‰ÿÿŒÿÿ†ýÔ‡ÿ@‹üMˆüÈüûŽÿÿ‹ÿÿŠÿÿŠÿÿŠÿÿŠÿÿŠÿÿŠÿÿŠÿÿŠÿÿŠÿÿŠÿÿ‰ÿÿ‰ÿÿ‰ÿÿ‰ÿÿ†ÿÿ•ÿÿxÁÿÿ«Øÿÿ¦ÖÿÿÓêÿÿëöÿÿs¾ÿÿ‰ÿÿ’ÿÿ&›ÿÿˆÿÿˆÿÿˆÿÿˆÿÿ‰ÿÿ‰ÿÿ‰ÿÿ‰ÿÿ‰ÿÿ‹ÿÿŽÿÿ‰ýÔˆÿGŠÿ#Šý™‹üìÿÿÿÿÿÿŒÿÿŒÿÿŒÿÿŒÿÿŒÿÿŒÿÿŒÿÿŒÿÿŒÿÿŒÿÿŒÿÿŒÿÿŠÿÿ•ÿÿV³ÿÿsÀÿÿ]¶ÿÿµÝÿÿ´Ýÿÿ‰ÿÿŠÿÿ‹ÿÿŠÿÿŠÿÿ‹ÿÿ‹ÿÿ‹ÿÿ‹ÿÿ‹ÿÿ‹ÿÿŒÿÿÿÿýþ‰üÆŒÿ<€ÿÿTŽüÇýó‘ÿÿ‘ÿÿÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿÿÿÿÿ”ÿÿ‘Îÿÿ–Ñÿÿ†ÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿŽÿÿÿÿ’ÿÿŽýóŽþ­Šÿ%ŒÿÿqŒýÔýõ“ÿÿ”ÿÿ‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÿÿžÿÿ’ÐÿÿsÁÿÿ‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’ÿÿ”ÿÿ’ýûüÜýs€ê €ÿ™ÿ”ÿw‘ýÒ“ÿð“ÿÿ—ÿÿ–ÿÿ”ÿÿ“ÿÿ“ÿÿ’ÿÿ’ÿÿ’ÿÿ’ÿÿ’ÿÿ’ÿÿÿÿœÿÿP´ÿÿ7ªÿÿÿÿ’ÿÿ’ÿÿ’ÿÿ’ÿÿ“ÿÿ•ÿÿ–ÿÿ”ýûüç‘ýœ•ÿ0€ÿªÿ”ÿ˜ÿW“þµ”üè–ýô”ýþ™ÿÿ™ÿÿ˜ÿÿ—ÿÿ–ÿÿ–ÿÿ–ÿÿ•ÿÿ•ÿÿ•ÿÿ–ÿÿ–ÿÿ–ÿÿ—ÿÿ˜ÿÿ™ÿÿ˜ÿÿ”þÿ•ýó’úâ“ýš”ÿ7™ÿÿÿŽÿ šÿ&—ýi˜ü¯–üà˜ýï•ýõ•ýú–ýþ™ÿÿšÿÿ›ÿÿœÿÿ›ÿÿ™ÿÿ™ÿÿ˜ÿÿ—ýû•ý÷™ÿð—úâ—þ°–ÿd‘ÿªÿªÿ™æ ™ÿ›ÿ8™ÿi—ýŽšþ«—üÇ—ûØ—üá—üê•ýè˜ûÚ™ýΘþ¹™ý˜›ÿu˜ÿE›ÿ™ÿ €ÿ( @ ÿüdýŸüÁþþÿÿÿÿÿÿ¢¦ûíþº ýšüW ÿÿ,þ«úûýÿýÿuþÿÿÿÿÿÿÿÿÿ‰þÿýÿýÿýÿúüüÀüJÿÿý‡úûýÿýÿ>Pýÿ½Ãþÿÿÿÿÿÿÿÿÿúúÿÿ&:ýÿýÿýÿýÿýÿýÿýÿýÍüKÿ þºýÿýÿýÿbsþÿýýÿÿÿÿÿÿÿÿÿÿúûÿÿ\nþÿýÿýÿýÿýÿýÿýÿýÿýÿýÿý¦ ÿ+ÿþ»!ýÿ!ýÿ!ýÿŠ™þÿÿÿÿÿÿÿÿÿôöÿÿÈÏÿÿ0Jýÿ ýÿ ýÿ ýÿ ýÿ ýÿ ýÿ ýÿ ýÿ ýÿ ýÿ ýÿüÛÿ+%ý‹%ýÿ%ýÿ%ýÿp…þÿÿÿÿÿÿÿÿÿúûÿÿs‡þÿ(ýÿ%ýÿ%ýÿ%ýÿ%ýÿ%ýÿ%ýÿ%ýÿ%ýÿ%ýÿ%ýÿ%ýÿ$ýÿ$ýÿ$úí"ÿ5+ÿ0*úý*ýÿ*ýÿ>^ýÿüüÿÿÿÿÿÿõ÷ÿÿ@_ýÿ)ýÿ)ýÿ)ýÿ)ýÿ$Gýÿyþÿ¥³þÿ»Æþÿ¯¼þÿ¢þÿPlþÿ 1ýÿ)ýÿ)ýÿ)ýÿ)ýÿ)úð'ÿ..þ¶.þÿ.þÿ0þÿÌÕÿÿÿÿÿÿþþÿÿXvþÿ.þÿ.þÿ.þÿCþÿ²Àÿÿþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêîÿÿ{’þÿ3þÿ-þÿ-þÿ-þÿ*üÞ$ÿ3ÿ#3ûþ3þÿ3þÿXyþÿÿÿÿÿÿÿÿÿ¤¶ÿÿ2þÿ2þÿ2þÿ8_þÿìðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍ×ÿÿ#Nþÿ2þÿ2þÿ2þÿ2ýž7ÿt7þÿ7þÿ7þÿ·ÇÿÿÿÿÿÿúûÿÿOþÿ7þÿ7þÿOþÿèíÿÿÿÿÿÿÿÿÿÿÓÜÿÿ`‚þÿKþÿ6þÿ =þÿ;eþÿ§ÿÿóöÿÿÿÿÿÿÿÿÿÿàçÿÿJþÿ6þÿ6þÿ6þÿ7ÿO:þ³<þÿ;þÿIþÿúûÿÿÿÿÿÿ¸Èÿÿ;þÿ;þÿ;þÿ¯Âÿÿÿÿÿÿÿÿÿÿ¡·ÿÿ@þÿ;þÿ;þÿ;þÿ;þÿ;þÿ;þÿPþÿÀÏÿÿÿÿÿÿÿÿÿÿÎÙÿÿ@þÿ;þÿ:þÿ:üÛUÿ@üÞ@þÿ@þÿCrþÿÿÿÿÿÿÿÿÿjþÿ@þÿ@þÿ(^þÿýýÿÿÿÿÿÿÇÕÿÿCþÿ?þÿ?þÿ?þÿ?þÿ?þÿ?þÿ?þÿ?þÿ FþÿÅÓÿÿÿÿÿÿÿÿÿÿs–þÿ?þÿ?þÿ?þÿAÿSAûõDþÿDþÿgþÿÿÿÿÿÿÿÿÿAtþÿDþÿDþÿj’þÿÿÿÿÿÿÿÿÿM|þÿDþÿDþÿ7lþÿ­ÂþÿÑÝÿÿÂÒÿÿHyþÿDþÿDþÿDþÿTþÿðôÿÿÿÿÿÿîòÿÿNþÿCþÿCþÿDüÈIûøIþÿIþÿ|¡þÿÿÿÿÿÿÿÿÿ)fþÿIþÿIþÿ°ÿÿÿÿÿÿÿÿÿÿWþÿ Qþÿ¥¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆªÿÿHþÿHþÿHþÿxžþÿÿÿÿÿÿÿÿÿ\ŠþÿHþÿHþÿHþÿFÿ!MûçMþÿMþÿošþÿÿÿÿÿÿÿÿÿ6sþÿMþÿMþÿ‰­ÿÿÿÿÿÿÿÿÿÿ#eþÿÁÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýþÿÿ8sþÿLþÿLþÿ^þÿýþÿÿÿÿÿÿªÃÿÿLþÿLþÿLþÿMÿcRýÓRþÿRþÿ\þÿÿÿÿÿÿÿÿÿYŽþÿQþÿQþÿh˜þÿÿÿÿÿÿÿÿÿËÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿþþÿÿÿÿÿÿœ»ÿÿQþÿQþÿQþÿÏÞÿÿÿÿÿÿÛæÿÿQþÿQþÿQþÿOý§Vþ®VþÿVþÿ"mþÿÿÿÿÿÿÿÿÿž¿ÿÿVþÿVþÿcþÿöùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³ÿÿãìÿÿÿÿÿÿÂÖÿÿUþÿUþÿUþÿ­ÈÿÿÿÿÿÿöùÿÿUþÿUþÿUþÿSýÏ\ÿl[þÿ[þÿZþÿÜèÿÿÿÿÿÿó÷ÿÿjþÿZþÿZþÿz©þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ’¹ÿÿ[þÿçïÿÿÿÿÿÿ»ÓÿÿZþÿZþÿZþÿŸÁÿÿÿÿÿÿþþÿÿ]þÿYþÿYþÿWúàaÿ*_þÿ_þÿ_þÿr§þÿÿÿÿÿÿÿÿÿžÂÿÿ_þÿ_þÿ_þÿ€¯þÿýþÿÿÿÿÿÿÿÿÿÿßëÿÿG‹þÿ^þÿ*yþÿÿÿÿÿÿÿÿÿ—½ÿÿ^þÿ^þÿ^þÿ²Îÿÿÿÿÿÿðöÿÿ^þÿ^þÿ^þÿ[ûòÿaýÔcþÿcþÿhþÿáíÿÿÿÿÿÿÿÿÿÿn¦þÿcþÿcþÿcþÿeþÿ({þÿlþÿcþÿcþÿdþÿ±ÏÿÿÿÿÿÿÿÿÿÿA‹þÿcþÿcþÿcþÿÛéÿÿÿÿÿÿÖæÿÿbþÿbþÿbþÿ_ûóiÿ_hþÿhþÿhþÿH“þÿüýÿÿÿÿÿÿÿÿÿÿ•Àÿÿqþÿhþÿgþÿgþÿgþÿgþÿ mþÿŸÆÿÿÿÿÿÿÿÿÿÿÌáÿÿhþÿgþÿgþÿ zþÿÿÿÿÿÿÿÿÿšÃÿÿgþÿgþÿgþÿgüÜfÿkúálþÿlþÿlþÿj©þÿþþÿÿÿÿÿÿÿÿÿÿíõÿÿ“ÁÿÿQ›þÿ8ŒþÿG•þÿ€¶þÿâîÿÿÿÿÿÿÿÿÿÿîõÿÿ#€þÿlþÿlþÿkþÿ‡¹ÿÿÿÿÿÿÿÿÿÿVþÿkþÿkþÿkþÿiþ³pÿ]qþÿqþÿqþÿqþÿNœþÿð÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàîÿÿ7þÿpþÿpþÿpþÿ~þÿñ÷ÿÿÿÿÿÿåðÿÿtþÿpþÿpþÿpþÿoÿwtþ­uþÿuþÿuþÿuþÿ€þÿŽÂÿÿñ÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñ÷ÿÿ“Åÿÿ~þÿuþÿtþÿ yþÿÇàÿÿÉáÿÿÿÿÿÿÿÿÿÿs³þÿtþÿtþÿtþÿtûþvÿ'yÿ{ûçyþÿyþÿyþÿyþÿyþÿ|þÿ@›þÿl²þÿ€¼þÿq´þÿJ þÿ þÿyþÿyþÿyþÿyþÿŽÃþÿÿÿÿÿêôÿÿÿÿÿÿÌäÿÿ|þÿyþÿyþÿyþÿwþ¼}ÿ5~ûô~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ~þÿ}þÿ}þÿ}þÿ}þÿ"ŽþÿäñÿÿÿÿÿÿÿÿÿÿèóÿÿP¥þÿ}þÿ}þÿ}þÿ}þÿ{ÿ<ƒÿD‚üó‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿ‚ÿÿŸÐÿÿÿÿÿÿÿÿÿÿýþÿÿÑéÿÿsºÿÿ‚ÿÿ‚ÿÿÿÿý–‰ÿ6…üå‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ‡ÿÿ†ÿÿ†ÿÿ†ÿÿ†ÿÿ†ÿÿ†ÿÿŠÿÿœÐÿÿÓêÿÿ¼ßÿÿi¸ÿÿˆÿÿ†ÿÿ†ÿÿ†ÿÿ‡üÇŽÿ ÿ‹þ»‹ÿÿ‹ÿÿ‹ÿÿ‹ÿÿ‹ÿÿ‹ÿÿ‹ÿÿ‹ÿÿ%œÿÿ‘ÍÿÿÊæÿÿ3¢ÿÿŽÿÿ‹ÿÿ‹ÿÿ‹ÿÿŠÿÿŠÿÿŠüÇŽÿÿÿ‘ÿaŽüÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹ÌÿÿÿÿÿÿÿÿÿÿÿÿŒüþý˜Žÿ €ÿ”ÿ_’ýÔ”ÿÿ”ÿÿ”ÿÿ”ÿÿ”ÿÿ”ÿÿ$£ÿÿ”ÿÿ“ÿÿ“ÿÿ“ÿÿ“þ½“ÿ;•ÿ$—ÿl˜þ°™ýÑ•üæ˜üû˜üé™ýÑ–þ²˜ÿwšÿ&(0 ÿù\ýš&2üÅùùýîÜÞûì$1üÉý¢ÿeÿ1ÿýiýÐÿÿ9Eÿÿ²¸ÿÿÿÿÿÿ¸¿ÿÿ ÿÿÿÿÿÿüðý ûBÿýÿÿÿÿl{ÿÿìïÿÿÿÿÿÿÚÞÿÿ;Oýÿýÿýÿþÿÿÿÿÿüîûÿÿ "ýŸÿÿ ÿÿƒ“þÿÿÿÿÿÿÿÿÿ¡®þÿ)Cýÿýÿýÿýÿýÿýÿýÿ!ÿÿ"ÿÿ þ¾ø&&ýk'üý ÿÿg~ýÿüüÿÿñóÿÿgþÿ#ýÿýÿ#ýÿ-MýÿTnýÿ[týÿGcýÿ<ýÿýÿ!ÿÿ'ÿÿ'ýÐ&ÿ(1ÿ+ûÙ'ÿÿ&Nþÿèìÿÿÿÿÿÿeþÿþÿ!þÿ5Xþÿ­»þÿéíÿÿÿÿÿÿÿÿÿÿþþÿÿÙàÿÿŽ¡þÿEþÿ$ÿÿ.ÿÿ*üÄÿ3ÿd4ÿÿ1ÿÿˆ þÿÿÿÿÿ£µÿÿ1þÿ&þÿMpþÿçìÿÿÿÿÿÿïóÿÿÇÒÿÿÀÌÿÿÒÜÿÿÿÿÿÿÿÿÿÿÓÜÿÿ@eþÿ*ÿÿ5ÿÿ1ýŒÿ8ý¨7ÿÿFþÿÝåÿÿøúÿÿ;gþÿ&þÿ(Xþÿâêÿÿÿÿÿÿ¤¹ÿÿ4\þÿ2þÿ)þÿ @þÿMsþÿ»Ëþÿÿÿÿÿáèÿÿ1^þÿ1ÿÿ8ýó8ÿD>ûÕ;ÿÿ8iþÿÿÿÿÿÈÖÿÿKþÿ2þÿŒ¨þÿÿÿÿÿ¯Ãÿÿ;þÿ,þÿCþÿ Gþÿ9þÿ,þÿFþÿ¬Àÿÿÿÿÿÿ·ÉÿÿEþÿ=ÿÿ>ú¨UÕBúê@ÿÿ[‡þÿÿÿÿÿ¢»ÿÿ>þÿOþÿÅÕÿÿþþÿÿ3jþÿ@þÿ^‰þÿ»ÍþÿÓßÿÿ…¦þÿSþÿ7þÿWþÿÙãÿÿÿÿÿÿOþÿ=ÿÿDüòCú5KùæFÿÿbþÿÿÿÿÿ›¸ÿÿ@þÿ]þÿ×âÿÿõ÷ÿÿ+iþÿš¸ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¾ÿÿJþÿ@þÿo™þÿÿÿÿÿžºÿÿKÿÿLÿÿIýpQýÔNÿÿP‡þÿÿÿÿÿ±ÊÿÿPþÿ WþÿÀÓþÿüýÿÿÁÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþÿÿó÷ÿÿ?|ÿÿ?þÿ3sþÿùûÿÿ×äÿÿ YþÿOÿÿPþ­Vþ±Uÿÿ#nþÿøúÿÿäíÿÿ"nþÿFþÿv¦þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦Äÿÿ¾Ôÿÿÿÿÿÿc—ÿÿDþÿ"mþÿâìÿÿôøÿÿbþÿTÿÿQýÑ]ýv_ÿÿ_ÿÿ¶Ñþÿÿÿÿÿ~­ÿÿQþÿdþÿ©Éþÿÿÿÿÿÿÿÿÿûüÿÿ”»þÿeþÿµÐÿÿÿÿÿÿU’ÿÿLþÿ"rþÿàëÿÿôøÿÿhþÿZÿÿYúâaû:büö^ÿÿGþÿÿÿÿÿôøÿÿO”þÿUþÿdþÿFŽþÿR•þÿ1þÿVþÿBŠþÿøûÿÿåïÿÿ!vþÿUþÿ0€þÿúüÿÿÛéÿÿ jþÿaÿÿ_úèqÿ fü¬mÿÿgþÿ½þÿÿÿÿÿñ÷ÿÿw®ÿÿvþÿbþÿ`þÿhþÿQ—þÿßìÿÿÿÿÿÿ‚µÿÿaþÿaþÿb¢þÿÿÿÿÿ¦ÊÿÿjþÿhÿÿgýÔnûHoýômÿÿtþÿ’Âþÿÿÿÿÿÿÿÿÿàîÿÿ«Ïÿÿ¡ÉÿÿÆßÿÿÿÿÿÿÿÿÿÿ¥Ìþÿ rþÿdþÿrþÿÇßÿÿÿÿÿÿ]£þÿhþÿqÿÿmý©ªÿrý“zÿÿqÿÿtþÿX¤þÿÇàÿÿüþÿÿÿÿÿÿÿÿÿÿÿÿÿÿàîÿÿt´ÿÿ xþÿjþÿQžþÿ±ÓÿÿÿÿÿÿÏåÿÿþÿnÿÿyÿÿtýgózüÈ‚ÿÿwÿÿuþÿ ~þÿ3•þÿ^¬þÿe¯þÿFŸþÿ…þÿvþÿqþÿ‰þÿÙëþÿÿÿÿÿóùÿÿV§ÿÿrþÿÿÿwüÞxÿ ‚ù+ûÕˆÿÿ€ÿÿ}þÿ|þÿ{þÿ{þÿ|þÿ|þÿ|þÿ|ÿÿ„ÂÿÿÿÿÿÿÿÿÿÿÍæÿÿ'’þÿ}ÿÿ„ÿÿ~ýs…ÿ,‡üÄÿÿŠÿÿ†ÿÿ†ÿÿ…ÿÿ…ÿÿ…ÿÿ ‰ÿÿ“ÿÿ§ÖÿÿÑéÿÿ‘Ëÿÿ6ŸÿÿŽÿÿŒÿÿ„ý¨™ÿ ÿŠý™ýô•ÿÿŽÿÿŒÿÿ‹ÿÿŒÿÿ>¨ÿÿžÓÿÿ4£ÿÿ ÿÿ‹ÿÿŒÿÿŽÿÿŠý¦ŒÿüL’ý¨’üøšÿÿ—ÿÿ–ÿÿ”ÿÿ;°ÿÿ™ÿÿ“ÿÿ—ÿÿ”ýÙŽýsŽÿ ™ÿ”ÿ9™ÿq–þ²—ýÓ–üç•üä—ýΕý©™ÿf•ÿ$(  ÿÿÿ* ýmîïý“cmýƒüU#ÿÿÿÿ1ÿ üª üû‘šþÿþþþþ4Eüþüÿüîý• ÿÿ1ÿúá6ýÿßãýýô÷ýüG\üûûûûý ûþüÿ ûí'ûHUÿ'þ¶+ýÿÝâýøÆÒýþ#ýÿ!üþl„üþ§³ýþœªýýKiüú!üþ$üý0üPUÿAÿC$ýÿvýýöùýþ 3üþ DþÿåëþÿúûÿÿÁÎþÿÏÙýþÿÿÿÿÅÐýü;þÿ-üñ>ÿ%>ýˆ4ýÿ×àýü”ªýþ$ýÿÏÚþÿÉ×þÿ4ýÿ"ýÿ"ýÿ RýþáêþÿÄÒýú6ýÿ;ý¨Aý¨Jþÿ÷ùýüRýþTþÿÿÿÿÿ0aþÿIxþÿ¼Îþÿœ¸þÿ Býÿ UýþþþþþW‚þÿ7üöUÿ-Mý RþÿôøýüXˆýþ_þÿöøþÿ´Ëþÿÿÿÿÿûüþÿÿÿÿÿœ»þÿ5ýÿ¾Ïýþ°ÉýüAýÿ Tÿt\ÿtOýÿÈÚýü­ÈýþCýÿ»Òþÿÿÿÿÿÿÿÿÿ¶Ïþÿ¡ÂþÿÐàþÿBýÿ—·ýþÏßýüNýÿYý lÿ-XüöNþÿþþþþKŒýþWýÿWšþÿGþÿ\ýÿÔãþÿ¢ÆþÿIýÿ­Êýþ¿ÖýüVýÿdý¨mý¨dýÿ‰ºýúÿÿÿÿ¡Æýþ@ŽþÿN–þÿÔåþÿíõþÿuþÿdýÿïöýþy°ýü_ýÿoýˆuÿ%uýñmýÿQ¡ýüÕéþÿúýýþùýþÿ´Øþÿþÿ{þÿºÙýþêóýþ}üýqýÿvÿCUÿ|ÿP€ýývýþvýú ‚ýýýþtýþoýþ¬Ôþÿþþþþ¼ýøtþÿ€þ¶Uÿ‡ÿHˆþí‰ÿÿ…þþ…þý ŒþûN©þû–ÎýüZ²ýý‹ÿÿ…þá„ÿªÿŠÿý”ýî‘þÿýþ:ªýþ þÿ†þúþª“ÿÿÿ€ÿÿÿ—ÿ–ÿU—ÿ€ÿˆ™ÿl¤ÿ*ÿÿÿ././@PaxHeader0000000000000000000000000000021400000000000010212 xustar00112 path=pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo.svg 28 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo.s0000664000175000017500000001103200000000000033467 0ustar00jjleejjlee ././@PaxHeader0000000000000000000000000000021700000000000010215 xustar00115 path=pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo_32.png 28 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo_30000664000175000017500000000353400000000000033460 0ustar00jjleejjlee‰PNG  IHDR szzôsBIT|dˆ pHYsÓÇòŽtEXtSoftwarewww.inkscape.org›î<ÙIDATX…Å—PT×Ç?÷ñc‘P° ˆ „FƒUBìȘ&Ådi”I# ±ÒÄJhC2æÇŒ5ÑÔtw:íÛª5ÑÒSÒÆª©é„Ú¡%¨ZÉF2Vk­JFŒ`ÁŠ(JdÙ÷öÝþqaß., É?½3gæ½sÏïýžûΞº®óÿ\Ñ_ÄÉ•ìÎ#šÅHŠl ø2pèZ€Ý8ØãéÔ¯KL”Wš;†AC°È‹h4¥z>ÕÀ$?ñôé—#¹hJ~‹»œ›´`;&y˜#D²ËÂß b0¨Â¤Åu‹»2RìqKàJr'âã7˜<6.´;`Îã2Ò‹@‹†Ž&°Ìa‹$`›+Æâ1ôWB]Ç, w.rÆM¶|»r€Þh?G6B—m"ù‘GêÕïKàƒ…“œ0º#Ñ&¢: WBÅaˆË°mL6¸pÏ€+àΔƒx¥Áti@D1Çä;«áz§ v³ú7zCýrׇóE9ÎÐäš ‹,“é_Gÿ±hbÞˆy•ˆ;¾Ñ Ðñ!,e÷ÙUÄ—¦AÚlˆO†„©ˆ€-^;V€¬…~ï;MçÅðKxUZùK%:Lü剜"¸ë9äžáT½rÝë†3WCúWaá8úè9ô³`p4XW·;KšxBjó«ËwÙÉ¥„Ö÷á“ýÐÚׇ.WêLDå_e5Êw`ÎDîzFíG;ßz9ì¾?@ÈghI^Ž ÄâUˆ¥›Ô³áƒÆMÈl…+çíãÇÄs%bñZˆK„»Ÿ‚Ão@ûÅ`ó!8¹ò—À¬o‚)Ô!ÔÊpu¹4W›;Uü0ˆ0×i'÷Ý@V— ë\Ð}>üÖßôÁž Èu Àôƒˆï¾ ¦übdëÇ‘‰Yáþ>rµ¡z—c0iØI,\1D‹‰ÜX §)‡Ìùׇˆ×üˆ__…Šm cáB3ì߬|f̃¹ÙI.œ²KŸ;ò“NÖ¤AqÐ!~*Üùr8Þg)ã¬BÄß…¬;!*â'#î©DÔôÁürdÓN;Ql’ à|(€Ùá Xôj®€[Ã`aPy÷ã* ÷ר—¦Ô¥h¹bâO½¶Î 9el¢­ïë 0HÆi¦a29HáReÜÝ 5*Ã@ä)}豄 ¢cU5ö»aÙIr mý0›Jú€nARÂPÊør‡j­&5â“+Þðçõ£AL:éµKðAƒÍ\îÿ´ž eà'_Œ໩âlg'ò›Èm/!7|ü¾p7z‘¯T@ß5å—0 KÕÞ¹Àg†öƒ ú@/fHN|ׯ@b bÁÃÈú8X‹lü,yf} ºÚ ®ú•ˆU; )U1·o»bSµ j€~Ú¦‚aS2!&A”8¼/‡‚û ¿Ž7ªhu¯Ž.@ùó0¿D=¿_oo nIøý/© Ió”è70è¦FÞ§¬&%ÀýÁ¶,Ô*}t â—ƒ{Ë#ÿ$'Ï@ütbÅËʾç?ÈuO„Ú j&Á¡DèºÎK î-T㎉E4| )épá,ò;·Ûí³ôˆµ¿…¨!ÊÎ7ÿ¼Èö3ˆiÙ0ý6X°“Ô¾¹ò8önðôB°ÚSjOEÑšÅNi 0ýÈÚ-ˆg<0c&”T@Ãe]· ùßKˆ» .²ó ;©Þzäæç¡³-Tû³™R[åt:iºÝy±è„·‹,, å4âÑçÝEBÛY8{Z5˜öðîFô÷A¬¦¤ƒÐK]àä?‘úÓð»upíjèLñ©,ñ<«÷…" ^?aReÁ ÀAO/¬YŽØü–±áHKCî}K7ÿÙ¼V='N†´ èhß@$.:4Á}žr½säFp"jÊw^ùÆqo?%Š…føä$¢äâþ2HÍ€÷€°O6àƒžËà75E)iנس\o™FÌ„ë*õj¬þ”î{YU†¬¢üI´¿…ܹ㠦!bò¦¦Qà©Ð[Ç¢&âX¾¶Æ])àWHTÿ]º í…ŸAÖ­Ê`Їu×W ëâXq;¤dÍúgõÚ± "20¼Ö¯Ð·k·að:µobÝ3¹u‹2pÄ!}rô¸nÒ,TjÝäN$9Là¿¡k“{rÀâAMP*a¦Öri.©išÜ[ï—ËÊÎ h“Ш™ì÷¼¨7O$éç0 Ë•Lg§$3ó3Çãÿ¼ G®ÿ.Á½8<ßÇIEND®B`‚././@PaxHeader0000000000000000000000000000022100000000000010210 xustar00117 path=pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/bootstrap-astropy.css 28 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/bootstrap-astr0000664000175000017500000002744300000000000033506 0ustar00jjleejjlee/*! * Bootstrap v1.4.0 * * Copyright 2011 Twitter, Inc * Licensed under the Apache License v2.0 * http://www.apache.org/licenses/LICENSE-2.0 * * Heavily modified by Kyle Barbary for the AstroPy Project for use with Sphinx. */ @import url("basic.css"); body { background-color: #ffffff; margin: 0; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 13px; font-weight: normal; line-height: 18px; color: #404040; } /* Hyperlinks ----------------------------------------------------------------*/ a { color: #0069d6; text-decoration: none; line-height: inherit; font-weight: inherit; } a:hover { color: #00438a; text-decoration: underline; } /* Typography ----------------------------------------------------------------*/ h1,h2,h3,h4,h5,h6 { color: #404040; margin: 0.7em 0 0 0; line-height: 1.5em; } h1 { font-size: 24px; margin: 0; } h2 { font-size: 21px; line-height: 1.2em; margin: 1em 0 0.5em 0; border-bottom: 1px solid #404040; } h3 { font-size: 18px; } h4 { font-size: 16px; } h5 { font-size: 14px; } h6 { font-size: 13px; text-transform: uppercase; } p { font-size: 13px; font-weight: normal; line-height: 18px; margin-top: 0px; margin-bottom: 9px; } ul, ol { margin-left: 0; padding: 0 0 0 25px; } ul ul, ul ol, ol ol, ol ul { margin-bottom: 0; } ul { list-style: disc; } ol { list-style: decimal; } li { line-height: 18px; color: #404040; } ul.unstyled { list-style: none; margin-left: 0; } dl { margin-bottom: 18px; } dl dt, dl dd { line-height: 18px; } dl dd { margin-left: 9px; } hr { margin: 20px 0 19px; border: 0; border-bottom: 1px solid #eee; } strong { font-style: inherit; font-weight: bold; } em { font-style: italic; font-weight: inherit; line-height: inherit; } .muted { color: #bfbfbf; } address { display: block; line-height: 18px; margin-bottom: 18px; } code, pre { padding: 0 3px 2px; font-family: monospace; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } tt { font-family: monospace; } code { padding: 1px 3px; } pre { display: block; padding: 8.5px; margin: 0 0 18px; line-height: 18px; border: 1px solid #ddd; border: 1px solid rgba(0, 0, 0, 0.12); -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; white-space: pre; word-wrap: break-word; } img { margin: 9px 0; } /* format inline code with a rounded box */ tt, code { margin: 0 2px; padding: 0 5px; border: 1px solid #ddd; border: 1px solid rgba(0, 0, 0, 0.12); border-radius: 3px; } code.xref, a code { margin: 0; padding: 0 1px 0 1px; background-color: none; border: none; } /* all code has same box background color, even in headers */ h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt, h1 code, h2 code, h3 code, h4 code, h5 code, h6 code, pre, code, tt { background-color: #f8f8f8; } /* override box for links & other sphinx-specifc stuff */ tt.xref, a tt, tt.descname, tt.descclassname { padding: 0 1px 0 1px; border: none; } /* override box for related bar at the top of the page */ .related tt { border: none; padding: 0 1px 0 1px; background-color: transparent; font-weight: bold; } th { background-color: #dddddd; } .viewcode-back { font-family: sans-serif; } div.viewcode-block:target { background-color: #f4debf; border-top: 1px solid #ac9; border-bottom: 1px solid #ac9; } table.docutils { border-spacing: 5px; border-collapse: separate; } /* Topbar --------------------------------------------------------------------*/ div.topbar { height: 40px; position: absolute; top: 0; left: 0; right: 0; z-index: 10000; padding: 0px 10px; background-color: #222; background-color: #222222; background-repeat: repeat-x; background-image: -khtml-gradient(linear, left top, left bottom, from(#333333), to(#222222)); background-image: -moz-linear-gradient(top, #333333, #222222); background-image: -ms-linear-gradient(top, #333333, #222222); background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #333333), color-stop(100%, #222222)); background-image: -webkit-linear-gradient(top, #333333, #222222); background-image: -o-linear-gradient(top, #333333, #222222); background-image: linear-gradient(top, #333333, #222222); filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); overflow: auto; } div.topbar a.brand { font-family: 'Source Sans Pro', sans-serif; font-size: 26px; color: #ffffff; font-weight: 600; text-decoration: none; float: left; display: block; height: 32px; padding: 8px 12px 0px 45px; margin-left: -10px; background: transparent url("astropy_logo_32.png") no-repeat 10px 4px; background-image: url("astropy_logo.svg"), none; background-size: 32px 32px; } #logotext1 { } #logotext2 { font-weight:200; color: #ff5000; } #logotext3 { font-weight:200; } div.topbar .brand:hover, div.topbar ul li a.homelink:hover { background-color: #333; background-color: rgba(255, 255, 255, 0.05); } div.topbar ul { font-size: 110%; list-style: none; margin: 0; padding: 0 0 0 10px; float: right; color: #bfbfbf; text-align: center; text-decoration: none; height: 100%; } div.topbar ul li { float: left; display: inline; height: 30px; margin: 5px; padding: 0px; } div.topbar ul li a { color: #bfbfbf; text-decoration: none; padding: 5px; display: block; height: auto; text-align: center; vertical-align: middle; border-radius: 4px; } div.topbar ul li a:hover { color: #ffffff; text-decoration: none; } div.topbar ul li a.homelink { width: 112px; display: block; height: 20px; padding: 5px 0px; background: transparent url("astropy_linkout_20.png") no-repeat 10px 5px; background-image: url("astropy_linkout.svg"), none; background-size: 91px 20px; } div.topbar form { text-align: left; margin: 0 0 0 5px; position: relative; filter: alpha(opacity=100); -khtml-opacity: 1; -moz-opacity: 1; opacity: 1; } div.topbar input { background-color: #444; background-color: rgba(255, 255, 255, 0.3); font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: normal; font-weight: 13px; line-height: 1; padding: 4px 9px; color: #ffffff; color: rgba(255, 255, 255, 0.75); border: 1px solid #111; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.25); -webkit-transition: none; -moz-transition: none; -ms-transition: none; -o-transition: none; transition: none; } div.topbar input:-moz-placeholder { color: #e6e6e6; } div.topbar input::-webkit-input-placeholder { color: #e6e6e6; } div.topbar input:hover { background-color: #bfbfbf; background-color: rgba(255, 255, 255, 0.5); color: #ffffff; } div.topbar input:focus, div.topbar input.focused { outline: 0; background-color: #ffffff; color: #404040; text-shadow: 0 1px 0 #ffffff; border: 0; padding: 5px 10px; -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); } /* Relation bar (breadcrumbs, prev, next) ------------------------------------*/ div.related { height: 21px; width: auto; margin: 0 10px; position: absolute; top: 42px; clear: both; left: 0; right: 0; z-index: 10000; font-size: 100%; vertical-align: middle; background-color: #fff; border-bottom: 1px solid #bbb; } div.related ul { padding: 0; margin: 0; } /* Footer --------------------------------------------------------------------*/ footer { display: block; margin: 10px 10px 0px; padding: 10px 0 0 0; border-top: 1px solid #bbb; } .pull-right { float: right; width: 30em; text-align: right; } /* Sphinx sidebar ------------------------------------------------------------*/ div.sphinxsidebar { font-size: inherit; border-radius: 3px; background-color: #eee; border: 1px solid #bbb; word-wrap: break-word; /* overflow-wrap is the canonical name for word-wrap in the CSS3 text draft. We include it here mainly for future-proofing. */ overflow-wrap: break-word; } div.sphinxsidebarwrapper { padding: 0px 0px 0px 5px; } div.sphinxsidebar h3 { font-family: 'Trebuchet MS', sans-serif; font-size: 1.4em; font-weight: normal; margin: 5px 0px 0px 5px; padding: 0; line-height: 1.6em; } div.sphinxsidebar h4 { font-family: 'Trebuchet MS', sans-serif; font-size: 1.3em; font-weight: normal; margin: 5px 0 0 0; padding: 0; } div.sphinxsidebar p { } div.sphinxsidebar p.topless { margin: 5px 10px 10px 10px; } div.sphinxsidebar ul { margin: 0px 0px 0px 5px; padding: 0; } div.sphinxsidebar ul ul { margin-left: 15px; list-style-type: disc; } /* If showing the global TOC (toctree), color the current page differently */ div.sphinxsidebar a.current { color: #404040; } div.sphinxsidebar a.current:hover { color: #404040; } /* document, documentwrapper, body, bodywrapper ----------------------------- */ div.document { margin-top: 72px; margin-left: 10px; margin-right: 10px; } div.documentwrapper { float: left; width: 100%; } div.body { background-color: #ffffff; padding: 0 0 0px 20px; } div.bodywrapper { margin: 0 0 0 230px; max-width: 55em; } /* Header links ------------------------------------------------------------- */ a.headerlink { font-size: 0.8em; padding: 0 4px 0 4px; text-decoration: none; } a.headerlink:hover { background-color: #0069d6; color: white; text-docoration: none; } /* Admonitions and warnings ------------------------------------------------- */ /* Shared by admonitions and warnings */ div.admonition, div.warning { padding: 0px; border-radius: 3px; -moz-border-radius: 3px; -webkit-border-radius: 3px; } div.admonition p, div.warning p { margin: 0.5em 1em 0.5em 1em; padding: 0; } div.admonition pre, div.warning pre { margin: 0.4em 1em 0.4em 1em; } div.admonition p.admonition-title, div.warning p.admonition-title { margin: 0; padding: 0.1em 0 0.1em 0.5em; color: white; font-weight: bold; font-size: 1.1em; } div.admonition ul, div.admonition ol, div.warning ul, div.warning ol { margin: 0.1em 0.5em 0.5em 3em; padding: 0; } /* Admonitions only */ div.admonition { border: 1px solid #609060; background-color: #e9ffe9; } div.admonition p.admonition-title { background-color: #70A070; } /* Warnings only */ div.warning { border: 1px solid #900000; background-color: #ffe9e9; } div.warning p.admonition-title { background-color: #b04040; } /* Figures ------------------------------------------------------------------ */ .figure.align-center { clear: none; } /* This is a div for containing multiple figures side-by-side, for use with * .. container:: figures */ div.figures { border: 1px solid #CCCCCC; background-color: #F8F8F8; margin: 1em; text-align: center; } div.figures .figure { clear: none; float: none; display: inline-block; border: none; margin-left: 0.5em; margin-right: 0.5em; } .field-list th { white-space: nowrap; } table.field-list { border-spacing: 0px; margin-left: 1px; border-left: 5px solid rgb(238, 238, 238) !important; } table.field-list th.field-name { display: inline-block; padding: 1px 8px 1px 5px; white-space: nowrap; background-color: rgb(238, 238, 238); border-radius: 0 3px 3px 0; -webkit-border-radius: 0 3px 3px 0; } ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/copybutton.js0000664000175000017500000000532100000000000033332 0ustar00jjleejjlee$(document).ready(function() { /* Add a [>>>] button on the top-right corner of code samples to hide * the >>> and ... prompts and the output and thus make the code * copyable. */ var div = $('.highlight-python .highlight,' + '.highlight-python3 .highlight,' + '.highlight-default .highlight') var pre = div.find('pre'); // get the styles from the current theme pre.parent().parent().css('position', 'relative'); var hide_text = 'Hide the prompts and output'; var show_text = 'Show the prompts and output'; var border_width = pre.css('border-top-width'); var border_style = pre.css('border-top-style'); var border_color = pre.css('border-top-color'); var button_styles = { 'cursor':'pointer', 'position': 'absolute', 'top': '0', 'right': '0', 'border-color': border_color, 'border-style': border_style, 'border-width': border_width, 'color': border_color, 'text-size': '75%', 'font-family': 'monospace', 'padding-left': '0.2em', 'padding-right': '0.2em', 'border-radius': '0 3px 0 0' } // create and add the button to all the code blocks that contain >>> div.each(function(index) { var jthis = $(this); if (jthis.find('.gp').length > 0) { var button = $('>>>'); button.css(button_styles) button.attr('title', hide_text); button.data('hidden', 'false'); jthis.prepend(button); } // tracebacks (.gt) contain bare text elements that need to be // wrapped in a span to work with .nextUntil() (see later) jthis.find('pre:has(.gt)').contents().filter(function() { return ((this.nodeType == 3) && (this.data.trim().length > 0)); }).wrap(''); }); // define the behavior of the button when it's clicked $('.copybutton').click(function(e){ e.preventDefault(); var button = $(this); if (button.data('hidden') === 'false') { // hide the code output button.parent().find('.go, .gp, .gt').hide(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'hidden'); button.css('text-decoration', 'line-through'); button.attr('title', show_text); button.data('hidden', 'true'); } else { // show the code output button.parent().find('.go, .gp, .gt').show(); button.next('pre').find('.gt').nextUntil('.gp, .go').css('visibility', 'visible'); button.css('text-decoration', 'none'); button.attr('title', hide_text); button.data('hidden', 'false'); } }); }); ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/sphinx/themes/bootstrap-astropy/static/sidebar.js0000664000175000017500000001155300000000000032541 0ustar00jjleejjlee/* * sidebar.js * ~~~~~~~~~~ * * This script makes the Sphinx sidebar collapsible. * * .sphinxsidebar contains .sphinxsidebarwrapper. This script adds * in .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton * used to collapse and expand the sidebar. * * When the sidebar is collapsed the .sphinxsidebarwrapper is hidden * and the width of the sidebar and the margin-left of the document * are decreased. When the sidebar is expanded the opposite happens. * This script saves a per-browser/per-session cookie used to * remember the position of the sidebar among the pages. * Once the browser is closed the cookie is deleted and the position * reset to the default (expanded). * * :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS. * :license: BSD, see LICENSE for details. * */ $(function() { // global elements used by the functions. // the 'sidebarbutton' element is defined as global after its // creation, in the add_sidebar_button function var bodywrapper = $('.bodywrapper'); var sidebar = $('.sphinxsidebar'); var sidebarwrapper = $('.sphinxsidebarwrapper'); // for some reason, the document has no sidebar; do not run into errors if (!sidebar.length) return; // original margin-left of the bodywrapper and width of the sidebar // with the sidebar expanded var bw_margin_expanded = bodywrapper.css('margin-left'); var ssb_width_expanded = sidebar.width(); // margin-left of the bodywrapper and width of the sidebar // with the sidebar collapsed var bw_margin_collapsed = 12; var ssb_width_collapsed = 12; // custom colors var dark_color = '#404040'; var light_color = '#505050'; function sidebar_is_collapsed() { return sidebarwrapper.is(':not(:visible)'); } function toggle_sidebar() { if (sidebar_is_collapsed()) expand_sidebar(); else collapse_sidebar(); } function collapse_sidebar() { sidebarwrapper.hide(); sidebar.css('width', ssb_width_collapsed); bodywrapper.css('margin-left', bw_margin_collapsed); sidebarbutton.css({ 'margin-left': '-1px', 'height': bodywrapper.height(), 'border-radius': '3px' }); sidebarbutton.find('span').text('»'); sidebarbutton.attr('title', _('Expand sidebar')); document.cookie = 'sidebar=collapsed'; } function expand_sidebar() { bodywrapper.css('margin-left', bw_margin_expanded); sidebar.css('width', ssb_width_expanded); sidebarwrapper.show(); sidebarbutton.css({ 'margin-left': ssb_width_expanded - 12, 'height': bodywrapper.height(), 'border-radius': '0px 3px 3px 0px' }); sidebarbutton.find('span').text('«'); sidebarbutton.attr('title', _('Collapse sidebar')); document.cookie = 'sidebar=expanded'; } function add_sidebar_button() { sidebarwrapper.css({ 'float': 'left', 'margin-right': '0', 'width': ssb_width_expanded - 18 }); // create the button sidebar.append('
«
'); var sidebarbutton = $('#sidebarbutton'); // find the height of the viewport to center the '<<' in the page var viewport_height; if (window.innerHeight) viewport_height = window.innerHeight; else viewport_height = $(window).height(); var sidebar_offset = sidebar.offset().top; var sidebar_height = Math.max(bodywrapper.height(), sidebar.height()); sidebarbutton.find('span').css({ 'font-family': '"Lucida Grande",Arial,sans-serif', 'display': 'block', 'top': Math.min(viewport_height/2, sidebar_height/2 + sidebar_offset) - 10, 'width': 12, 'position': 'fixed', 'text-align': 'center' }); sidebarbutton.click(toggle_sidebar); sidebarbutton.attr('title', _('Collapse sidebar')); sidebarbutton.css({ 'color': '#FFFFFF', 'background-color': light_color, 'border': '1px solid ' + light_color, 'border-radius': '0px 3px 3px 0px', 'font-size': '1.2em', 'cursor': 'pointer', 'height': sidebar_height, 'padding-top': '1px', 'margin': '-1px', 'margin-left': ssb_width_expanded - 12 }); sidebarbutton.hover( function () { $(this).css('background-color', dark_color); }, function () { $(this).css('background-color', light_color); } ); } function set_position_from_cookie() { if (!document.cookie) return; var items = document.cookie.split(';'); for(var k=0; k= (3, 3): from importlib import invalidate_caches else: def invalidate_caches(): return None # Python 2/3 compatibility if sys.version_info[0] < 3: string_types = (str, unicode) # noqa else: string_types = (str,) # Note: The following Warning subclasses are simply copies of the Warnings in # Astropy of the same names. class AstropyWarning(Warning): """ The base warning class from which all Astropy warnings should inherit. Any warning inheriting from this class is handled by the Astropy logger. """ class AstropyDeprecationWarning(AstropyWarning): """ A warning class to indicate a deprecated feature. """ class AstropyPendingDeprecationWarning(PendingDeprecationWarning, AstropyWarning): """ A warning class to indicate a soon-to-be deprecated feature. """ def _get_platlib_dir(cmd): """ Given a build command, return the name of the appropriate platform-specific build subdirectory directory (e.g. build/lib.linux-x86_64-2.7) """ plat_specifier = '.{0}-{1}'.format(cmd.plat_name, sys.version[0:3]) return os.path.join(cmd.build_base, 'lib' + plat_specifier) def get_numpy_include_path(): """ Gets the path to the numpy headers. """ # We need to go through this nonsense in case setuptools # downloaded and installed Numpy for us as part of the build or # install, since Numpy may still think it's in "setup mode", when # in fact we're ready to use it to build astropy now. if sys.version_info[0] >= 3: import builtins if hasattr(builtins, '__NUMPY_SETUP__'): del builtins.__NUMPY_SETUP__ import imp import numpy imp.reload(numpy) else: import __builtin__ if hasattr(__builtin__, '__NUMPY_SETUP__'): del __builtin__.__NUMPY_SETUP__ import numpy reload(numpy) try: numpy_include = numpy.get_include() except AttributeError: numpy_include = numpy.get_numpy_include() return numpy_include class _DummyFile(object): """A noop writeable object.""" errors = '' # Required for Python 3.x def write(self, s): pass def flush(self): pass @contextlib.contextmanager def silence(): """A context manager that silences sys.stdout and sys.stderr.""" old_stdout = sys.stdout old_stderr = sys.stderr sys.stdout = _DummyFile() sys.stderr = _DummyFile() exception_occurred = False try: yield except: exception_occurred = True # Go ahead and clean up so that exception handling can work normally sys.stdout = old_stdout sys.stderr = old_stderr raise if not exception_occurred: sys.stdout = old_stdout sys.stderr = old_stderr if sys.platform == 'win32': import ctypes def _has_hidden_attribute(filepath): """ Returns True if the given filepath has the hidden attribute on MS-Windows. Based on a post here: http://stackoverflow.com/questions/284115/cross-platform-hidden-file-detection """ if isinstance(filepath, bytes): filepath = filepath.decode(sys.getfilesystemencoding()) try: attrs = ctypes.windll.kernel32.GetFileAttributesW(filepath) assert attrs != -1 result = bool(attrs & 2) except (AttributeError, AssertionError): result = False return result else: def _has_hidden_attribute(filepath): return False def is_path_hidden(filepath): """ Determines if a given file or directory is hidden. Parameters ---------- filepath : str The path to a file or directory Returns ------- hidden : bool Returns `True` if the file is hidden """ name = os.path.basename(os.path.abspath(filepath)) if isinstance(name, bytes): is_dotted = name.startswith(b'.') else: is_dotted = name.startswith('.') return is_dotted or _has_hidden_attribute(filepath) def walk_skip_hidden(top, onerror=None, followlinks=False): """ A wrapper for `os.walk` that skips hidden files and directories. This function does not have the parameter `topdown` from `os.walk`: the directories must always be recursed top-down when using this function. See also -------- os.walk : For a description of the parameters """ for root, dirs, files in os.walk( top, topdown=True, onerror=onerror, followlinks=followlinks): # These lists must be updated in-place so os.walk will skip # hidden directories dirs[:] = [d for d in dirs if not is_path_hidden(d)] files[:] = [f for f in files if not is_path_hidden(f)] yield root, dirs, files def write_if_different(filename, data): """Write `data` to `filename`, if the content of the file is different. Parameters ---------- filename : str The file name to be written to. data : bytes The data to be written to `filename`. """ assert isinstance(data, bytes) if os.path.exists(filename): with open(filename, 'rb') as fd: original_data = fd.read() else: original_data = None if original_data != data: with open(filename, 'wb') as fd: fd.write(data) def import_file(filename, name=None): """ Imports a module from a single file as if it doesn't belong to a particular package. The returned module will have the optional ``name`` if given, or else a name generated from the filename. """ # Specifying a traditional dot-separated fully qualified name here # results in a number of "Parent module 'astropy' not found while # handling absolute import" warnings. Using the same name, the # namespaces of the modules get merged together. So, this # generates an underscore-separated name which is more likely to # be unique, and it doesn't really matter because the name isn't # used directly here anyway. mode = 'U' if sys.version_info[0] < 3 else 'r' if name is None: basename = os.path.splitext(filename)[0] name = '_'.join(os.path.relpath(basename).split(os.sep)[1:]) if import_machinery: loader = import_machinery.SourceFileLoader(name, filename) mod = loader.load_module() else: with open(filename, mode) as fd: mod = imp.load_module(name, fd, filename, ('.py', mode, 1)) return mod def resolve_name(name): """Resolve a name like ``module.object`` to an object and return it. Raise `ImportError` if the module or name is not found. """ parts = name.split('.') cursor = len(parts) - 1 module_name = parts[:cursor] attr_name = parts[-1] while cursor > 0: try: ret = __import__('.'.join(module_name), fromlist=[attr_name]) break except ImportError: if cursor == 0: raise cursor -= 1 module_name = parts[:cursor] attr_name = parts[cursor] ret = '' for part in parts[cursor:]: try: ret = getattr(ret, part) except AttributeError: raise ImportError(name) return ret if sys.version_info[0] >= 3: def iteritems(dictionary): return dictionary.items() else: def iteritems(dictionary): return dictionary.iteritems() def extends_doc(extended_func): """ A function decorator for use when wrapping an existing function but adding additional functionality. This copies the docstring from the original function, and appends to it (along with a newline) the docstring of the wrapper function. Examples -------- >>> def foo(): ... '''Hello.''' ... >>> @extends_doc(foo) ... def bar(): ... '''Goodbye.''' ... >>> print(bar.__doc__) Hello. Goodbye. """ def decorator(func): if not (extended_func.__doc__ is None or func.__doc__ is None): func.__doc__ = '\n\n'.join([extended_func.__doc__.rstrip('\n'), func.__doc__.lstrip('\n')]) return func return decorator # Duplicated from astropy.utils.decorators.deprecated # When fixing issues in this function fix them in astropy first, then # port the fixes over to astropy-helpers def deprecated(since, message='', name='', alternative='', pending=False, obj_type=None): """ Used to mark a function or class as deprecated. To mark an attribute as deprecated, use `deprecated_attribute`. Parameters ---------- since : str The release at which this API became deprecated. This is required. message : str, optional Override the default deprecation message. The format specifier ``func`` may be used for the name of the function, and ``alternative`` may be used in the deprecation message to insert the name of an alternative to the deprecated function. ``obj_type`` may be used to insert a friendly name for the type of object being deprecated. name : str, optional The name of the deprecated function or class; if not provided the name is automatically determined from the passed in function or class, though this is useful in the case of renamed functions, where the new function is just assigned to the name of the deprecated function. For example:: def new_function(): ... oldFunction = new_function alternative : str, optional An alternative function or class name that the user may use in place of the deprecated object. The deprecation warning will tell the user about this alternative if provided. pending : bool, optional If True, uses a AstropyPendingDeprecationWarning instead of a AstropyDeprecationWarning. obj_type : str, optional The type of this object, if the automatically determined one needs to be overridden. """ method_types = (classmethod, staticmethod, types.MethodType) def deprecate_doc(old_doc, message): """ Returns a given docstring with a deprecation message prepended to it. """ if not old_doc: old_doc = '' old_doc = textwrap.dedent(old_doc).strip('\n') new_doc = (('\n.. deprecated:: %(since)s' '\n %(message)s\n\n' % {'since': since, 'message': message.strip()}) + old_doc) if not old_doc: # This is to prevent a spurious 'unexpected unindent' warning from # docutils when the original docstring was blank. new_doc += r'\ ' return new_doc def get_function(func): """ Given a function or classmethod (or other function wrapper type), get the function object. """ if isinstance(func, method_types): func = func.__func__ return func def deprecate_function(func, message): """ Returns a wrapped function that displays an ``AstropyDeprecationWarning`` when it is called. """ if isinstance(func, method_types): func_wrapper = type(func) else: func_wrapper = lambda f: f func = get_function(func) def deprecated_func(*args, **kwargs): if pending: category = AstropyPendingDeprecationWarning else: category = AstropyDeprecationWarning warnings.warn(message, category, stacklevel=2) return func(*args, **kwargs) # If this is an extension function, we can't call # functools.wraps on it, but we normally don't care. # This crazy way to get the type of a wrapper descriptor is # straight out of the Python 3.3 inspect module docs. if type(func) != type(str.__dict__['__add__']): deprecated_func = functools.wraps(func)(deprecated_func) deprecated_func.__doc__ = deprecate_doc( deprecated_func.__doc__, message) return func_wrapper(deprecated_func) def deprecate_class(cls, message): """ Returns a wrapper class with the docstrings updated and an __init__ function that will raise an ``AstropyDeprectationWarning`` warning when called. """ # Creates a new class with the same name and bases as the # original class, but updates the dictionary with a new # docstring and a wrapped __init__ method. __module__ needs # to be manually copied over, since otherwise it will be set # to *this* module (astropy.utils.misc). # This approach seems to make Sphinx happy (the new class # looks enough like the original class), and works with # extension classes (which functools.wraps does not, since # it tries to modify the original class). # We need to add a custom pickler or you'll get # Can't pickle : it's not found as ... # errors. Picklability is required for any class that is # documented by Sphinx. members = cls.__dict__.copy() members.update({ '__doc__': deprecate_doc(cls.__doc__, message), '__init__': deprecate_function(get_function(cls.__init__), message), }) return type(cls.__name__, cls.__bases__, members) def deprecate(obj, message=message, name=name, alternative=alternative, pending=pending): if obj_type is None: if isinstance(obj, type): obj_type_name = 'class' elif inspect.isfunction(obj): obj_type_name = 'function' elif inspect.ismethod(obj) or isinstance(obj, method_types): obj_type_name = 'method' else: obj_type_name = 'object' else: obj_type_name = obj_type if not name: name = get_function(obj).__name__ altmessage = '' if not message or type(message) == type(deprecate): if pending: message = ('The %(func)s %(obj_type)s will be deprecated in a ' 'future version.') else: message = ('The %(func)s %(obj_type)s is deprecated and may ' 'be removed in a future version.') if alternative: altmessage = '\n Use %s instead.' % alternative message = ((message % { 'func': name, 'name': name, 'alternative': alternative, 'obj_type': obj_type_name}) + altmessage) if isinstance(obj, type): return deprecate_class(obj, message) else: return deprecate_function(obj, message) if type(message) == type(deprecate): return deprecate(message) return deprecate def deprecated_attribute(name, since, message=None, alternative=None, pending=False): """ Used to mark a public attribute as deprecated. This creates a property that will warn when the given attribute name is accessed. To prevent the warning (i.e. for internal code), use the private name for the attribute by prepending an underscore (i.e. ``self._name``). Parameters ---------- name : str The name of the deprecated attribute. since : str The release at which this API became deprecated. This is required. message : str, optional Override the default deprecation message. The format specifier ``name`` may be used for the name of the attribute, and ``alternative`` may be used in the deprecation message to insert the name of an alternative to the deprecated function. alternative : str, optional An alternative attribute that the user may use in place of the deprecated attribute. The deprecation warning will tell the user about this alternative if provided. pending : bool, optional If True, uses a AstropyPendingDeprecationWarning instead of a AstropyDeprecationWarning. Examples -------- :: class MyClass: # Mark the old_name as deprecated old_name = misc.deprecated_attribute('old_name', '0.1') def method(self): self._old_name = 42 """ private_name = '_' + name @deprecated(since, name=name, obj_type='attribute') def get(self): return getattr(self, private_name) @deprecated(since, name=name, obj_type='attribute') def set(self, val): setattr(self, private_name, val) @deprecated(since, name=name, obj_type='attribute') def delete(self): delattr(self, private_name) return property(get, set, delete) def minversion(module, version, inclusive=True, version_path='__version__'): """ Returns `True` if the specified Python module satisfies a minimum version requirement, and `False` if not. By default this uses `pkg_resources.parse_version` to do the version comparison if available. Otherwise it falls back on `distutils.version.LooseVersion`. Parameters ---------- module : module or `str` An imported module of which to check the version, or the name of that module (in which case an import of that module is attempted-- if this fails `False` is returned). version : `str` The version as a string that this module must have at a minimum (e.g. ``'0.12'``). inclusive : `bool` The specified version meets the requirement inclusively (i.e. ``>=``) as opposed to strictly greater than (default: `True`). version_path : `str` A dotted attribute path to follow in the module for the version. Defaults to just ``'__version__'``, which should work for most Python modules. Examples -------- >>> import astropy >>> minversion(astropy, '0.4.4') True """ if isinstance(module, types.ModuleType): module_name = module.__name__ elif isinstance(module, string_types): module_name = module try: module = resolve_name(module_name) except ImportError: return False else: raise ValueError('module argument must be an actual imported ' 'module, or the import name of the module; ' 'got {0!r}'.format(module)) if '.' not in version_path: have_version = getattr(module, version_path) else: have_version = resolve_name('.'.join([module.__name__, version_path])) try: from pkg_resources import parse_version except ImportError: from distutils.version import LooseVersion as parse_version if inclusive: return parse_version(have_version) >= parse_version(version) else: return parse_version(have_version) > parse_version(version) # Copy of the classproperty decorator from astropy.utils.decorators class classproperty(property): """ Similar to `property`, but allows class-level properties. That is, a property whose getter is like a `classmethod`. The wrapped method may explicitly use the `classmethod` decorator (which must become before this decorator), or the `classmethod` may be omitted (it is implicit through use of this decorator). .. note:: classproperty only works for *read-only* properties. It does not currently allow writeable/deleteable properties, due to subtleties of how Python descriptors work. In order to implement such properties on a class a metaclass for that class must be implemented. Parameters ---------- fget : callable The function that computes the value of this property (in particular, the function when this is used as a decorator) a la `property`. doc : str, optional The docstring for the property--by default inherited from the getter function. lazy : bool, optional If True, caches the value returned by the first call to the getter function, so that it is only called once (used for lazy evaluation of an attribute). This is analogous to `lazyproperty`. The ``lazy`` argument can also be used when `classproperty` is used as a decorator (see the third example below). When used in the decorator syntax this *must* be passed in as a keyword argument. Examples -------- :: >>> class Foo(object): ... _bar_internal = 1 ... @classproperty ... def bar(cls): ... return cls._bar_internal + 1 ... >>> Foo.bar 2 >>> foo_instance = Foo() >>> foo_instance.bar 2 >>> foo_instance._bar_internal = 2 >>> foo_instance.bar # Ignores instance attributes 2 As previously noted, a `classproperty` is limited to implementing read-only attributes:: >>> class Foo(object): ... _bar_internal = 1 ... @classproperty ... def bar(cls): ... return cls._bar_internal ... @bar.setter ... def bar(cls, value): ... cls._bar_internal = value ... Traceback (most recent call last): ... NotImplementedError: classproperty can only be read-only; use a metaclass to implement modifiable class-level properties When the ``lazy`` option is used, the getter is only called once:: >>> class Foo(object): ... @classproperty(lazy=True) ... def bar(cls): ... print("Performing complicated calculation") ... return 1 ... >>> Foo.bar Performing complicated calculation 1 >>> Foo.bar 1 If a subclass inherits a lazy `classproperty` the property is still re-evaluated for the subclass:: >>> class FooSub(Foo): ... pass ... >>> FooSub.bar Performing complicated calculation 1 >>> FooSub.bar 1 """ def __new__(cls, fget=None, doc=None, lazy=False): if fget is None: # Being used as a decorator--return a wrapper that implements # decorator syntax def wrapper(func): return cls(func, lazy=lazy) return wrapper return super(classproperty, cls).__new__(cls) def __init__(self, fget, doc=None, lazy=False): self._lazy = lazy if lazy: self._cache = {} fget = self._wrap_fget(fget) super(classproperty, self).__init__(fget=fget, doc=doc) # There is a buglet in Python where self.__doc__ doesn't # get set properly on instances of property subclasses if # the doc argument was used rather than taking the docstring # from fget if doc is not None: self.__doc__ = doc def __get__(self, obj, objtype=None): if self._lazy and objtype in self._cache: return self._cache[objtype] if objtype is not None: # The base property.__get__ will just return self here; # instead we pass objtype through to the original wrapped # function (which takes the class as its sole argument) val = self.fget.__wrapped__(objtype) else: val = super(classproperty, self).__get__(obj, objtype=objtype) if self._lazy: if objtype is None: objtype = obj.__class__ self._cache[objtype] = val return val def getter(self, fget): return super(classproperty, self).getter(self._wrap_fget(fget)) def setter(self, fset): raise NotImplementedError( "classproperty can only be read-only; use a metaclass to " "implement modifiable class-level properties") def deleter(self, fdel): raise NotImplementedError( "classproperty can only be read-only; use a metaclass to " "implement modifiable class-level properties") @staticmethod def _wrap_fget(orig_fget): if isinstance(orig_fget, classmethod): orig_fget = orig_fget.__func__ # Using stock functools.wraps instead of the fancier version # found later in this module, which is overkill for this purpose @functools.wraps(orig_fget) def fget(obj): return orig_fget(obj.__class__) # Set the __wrapped__ attribute manually for support on Python 2 fget.__wrapped__ = orig_fget return fget def find_data_files(package, pattern): """ Include files matching ``pattern`` inside ``package``. Parameters ---------- package : str The package inside which to look for data files pattern : str Pattern (glob-style) to match for the data files (e.g. ``*.dat``). This supports the Python 3.5 ``**``recursive syntax. For example, ``**/*.fits`` matches all files ending with ``.fits`` recursively. Only one instance of ``**`` can be included in the pattern. """ if sys.version_info[:2] >= (3, 5): return glob.glob(os.path.join(package, pattern), recursive=True) else: if '**' in pattern: start, end = pattern.split('**') if end.startswith(('/', os.sep)): end = end[1:] matches = glob.glob(os.path.join(package, start, end)) for root, dirs, files in os.walk(os.path.join(package, start)): for dirname in dirs: matches += glob.glob(os.path.join(root, dirname, end)) return matches else: return glob.glob(os.path.join(package, pattern)) ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1621602324.493365 pyregion-2.1.1/astropy_helpers/astropy_helpers/version.py0000664000175000017500000000107000000000000023021 0ustar00jjleejjlee# Autogenerated by Astropy-affiliated package astropy_helpers's setup.py on 2021-05-21 13:05:24 UTC from __future__ import unicode_literals import datetime version = "2.0.10" githash = "fd80be7cf8698e2350a919ef7fc89871db0ba580" major = 2 minor = 0 bugfix = 10 release = True timestamp = datetime.datetime(2021, 5, 21, 13, 5, 24) debug = False astropy_helpers_version = "" try: from ._compiler import compiler except ImportError: compiler = "unknown" try: from .cython_version import cython_version except ImportError: cython_version = "unknown" ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/astropy_helpers/version_helpers.py0000664000175000017500000002346300000000000024555 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst """ Utilities for generating the version string for Astropy (or an affiliated package) and the version.py module, which contains version info for the package. Within the generated astropy.version module, the `major`, `minor`, and `bugfix` variables hold the respective parts of the version number (bugfix is '0' if absent). The `release` variable is True if this is a release, and False if this is a development version of astropy. For the actual version string, use:: from astropy.version import version or:: from astropy import __version__ """ from __future__ import division import datetime import imp import os import pkgutil import sys import time from distutils import log import pkg_resources from . import git_helpers from .distutils_helpers import is_distutils_display_option from .utils import invalidate_caches PY3 = sys.version_info[0] == 3 def _version_split(version): """ Split a version string into major, minor, and bugfix numbers. If any of those numbers are missing the default is zero. Any pre/post release modifiers are ignored. Examples ======== >>> _version_split('1.2.3') (1, 2, 3) >>> _version_split('1.2') (1, 2, 0) >>> _version_split('1.2rc1') (1, 2, 0) >>> _version_split('1') (1, 0, 0) >>> _version_split('') (0, 0, 0) """ parsed_version = pkg_resources.parse_version(version) if hasattr(parsed_version, 'base_version'): # New version parsing for setuptools >= 8.0 if parsed_version.base_version: parts = [int(part) for part in parsed_version.base_version.split('.')] else: parts = [] else: parts = [] for part in parsed_version: if part.startswith('*'): # Ignore any .dev, a, b, rc, etc. break parts.append(int(part)) if len(parts) < 3: parts += [0] * (3 - len(parts)) # In principle a version could have more parts (like 1.2.3.4) but we only # support .. return tuple(parts[:3]) # This is used by setup.py to create a new version.py - see that file for # details. Note that the imports have to be absolute, since this is also used # by affiliated packages. _FROZEN_VERSION_PY_TEMPLATE = """ # Autogenerated by {packagetitle}'s setup.py on {timestamp!s} UTC from __future__ import unicode_literals import datetime {header} major = {major} minor = {minor} bugfix = {bugfix} release = {rel} timestamp = {timestamp!r} debug = {debug} astropy_helpers_version = "{ahver}" try: from ._compiler import compiler except ImportError: compiler = "unknown" try: from .cython_version import cython_version except ImportError: cython_version = "unknown" """[1:] _FROZEN_VERSION_PY_WITH_GIT_HEADER = """ {git_helpers} _packagename = "{packagename}" _last_generated_version = "{verstr}" _last_githash = "{githash}" # Determine where the source code for this module # lives. If __file__ is not a filesystem path then # it is assumed not to live in a git repo at all. if _get_repo_path(__file__, levels=len(_packagename.split('.'))): version = update_git_devstr(_last_generated_version, path=__file__) githash = get_git_devstr(sha=True, show_warning=False, path=__file__) or _last_githash else: # The file does not appear to live in a git repo so don't bother # invoking git version = _last_generated_version githash = _last_githash """[1:] _FROZEN_VERSION_PY_STATIC_HEADER = """ version = "{verstr}" githash = "{githash}" """[1:] def _get_version_py_str(packagename, version, githash, release, debug, uses_git=True): try: from astropy_helpers import __version__ as ahver except ImportError: ahver = "unknown" epoch = int(os.environ.get('SOURCE_DATE_EPOCH', time.time())) timestamp = datetime.datetime.utcfromtimestamp(epoch) major, minor, bugfix = _version_split(version) if packagename.lower() == 'astropy': packagetitle = 'Astropy' else: packagetitle = 'Astropy-affiliated package ' + packagename header = '' if uses_git: header = _generate_git_header(packagename, version, githash) elif not githash: # _generate_git_header will already generate a new git has for us, but # for creating a new version.py for a release (even if uses_git=False) # we still need to get the githash to include in the version.py # See https://github.com/astropy/astropy-helpers/issues/141 githash = git_helpers.get_git_devstr(sha=True, show_warning=True) if not header: # If _generate_git_header fails it returns an empty string header = _FROZEN_VERSION_PY_STATIC_HEADER.format(verstr=version, githash=githash) return _FROZEN_VERSION_PY_TEMPLATE.format(packagetitle=packagetitle, timestamp=timestamp, header=header, major=major, minor=minor, bugfix=bugfix, ahver=ahver, rel=release, debug=debug) def _generate_git_header(packagename, version, githash): """ Generates a header to the version.py module that includes utilities for probing the git repository for updates (to the current git hash, etc.) These utilities should only be available in development versions, and not in release builds. If this fails for any reason an empty string is returned. """ loader = pkgutil.get_loader(git_helpers) source = loader.get_source(git_helpers.__name__) or '' source_lines = source.splitlines() if not source_lines: log.warn('Cannot get source code for astropy_helpers.git_helpers; ' 'git support disabled.') return '' idx = 0 for idx, line in enumerate(source_lines): if line.startswith('# BEGIN'): break git_helpers_py = '\n'.join(source_lines[idx + 1:]) if PY3: verstr = version else: # In Python 2 don't pass in a unicode string; otherwise verstr will # be represented with u'' syntax which breaks on Python 3.x with x # < 3. This is only an issue when developing on multiple Python # versions at once verstr = version.encode('utf8') new_githash = git_helpers.get_git_devstr(sha=True, show_warning=False) if new_githash: githash = new_githash return _FROZEN_VERSION_PY_WITH_GIT_HEADER.format( git_helpers=git_helpers_py, packagename=packagename, verstr=verstr, githash=githash) def generate_version_py(packagename, version, release=None, debug=None, uses_git=True, srcdir='.'): """Regenerate the version.py module if necessary.""" try: version_module = get_pkg_version_module(packagename) try: last_generated_version = version_module._last_generated_version except AttributeError: last_generated_version = version_module.version try: last_githash = version_module._last_githash except AttributeError: last_githash = version_module.githash current_release = version_module.release current_debug = version_module.debug except ImportError: version_module = None last_generated_version = None last_githash = None current_release = None current_debug = None if release is None: # Keep whatever the current value is, if it exists release = bool(current_release) if debug is None: # Likewise, keep whatever the current value is, if it exists debug = bool(current_debug) package_srcdir = os.path.join(srcdir, *packagename.split('.')) version_py = os.path.join(package_srcdir, 'version.py') if (last_generated_version != version or current_release != release or current_debug != debug): if '-q' not in sys.argv and '--quiet' not in sys.argv: log.set_threshold(log.INFO) if is_distutils_display_option(): # Always silence unnecessary log messages when display options are # being used log.set_threshold(log.WARN) log.info('Freezing version number to {0}'.format(version_py)) with open(version_py, 'w') as f: # This overwrites the actual version.py f.write(_get_version_py_str(packagename, version, last_githash, release, debug, uses_git=uses_git)) invalidate_caches() if version_module: imp.reload(version_module) def get_pkg_version_module(packagename, fromlist=None): """Returns the package's .version module generated by `astropy_helpers.version_helpers.generate_version_py`. Raises an ImportError if the version module is not found. If ``fromlist`` is an iterable, return a tuple of the members of the version module corresponding to the member names given in ``fromlist``. Raises an `AttributeError` if any of these module members are not found. """ if not fromlist: # Due to a historical quirk of Python's import implementation, # __import__ will not return submodules of a package if 'fromlist' is # empty. # TODO: For Python 3.1 and up it may be preferable to use importlib # instead of the __import__ builtin return __import__(packagename + '.version', fromlist=['']) else: mod = __import__(packagename + '.version', fromlist=fromlist) return tuple(getattr(mod, member) for member in fromlist) ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/astropy_helpers.egg-info/0000775000175000017500000000000000000000000022456 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1621602324.517367 pyregion-2.1.1/astropy_helpers/astropy_helpers.egg-info/PKG-INFO0000664000175000017500000000755200000000000023564 0ustar00jjleejjleeMetadata-Version: 1.1 Name: astropy-helpers Version: 2.0.10 Summary: Utilities for building and installing Astropy, Astropy affiliated packages, and their respective documentation. Home-page: https://github.com/astropy/astropy-helpers Author: The Astropy Developers Author-email: astropy.team@gmail.com License: BSD Description: astropy-helpers =============== * Stable versions: https://pypi.org/project/astropy-helpers/ * Development version, issue tracker: https://github.com/astropy/astropy-helpers This project provides a Python package, ``astropy_helpers``, which includes many build, installation, and documentation-related tools used by the Astropy project, but packaged separately for use by other projects that wish to leverage this work. The motivation behind this package and details of its implementation are in the accepted `Astropy Proposal for Enhancement (APE) 4 `_. The ``astropy_helpers.extern`` sub-module includes modules developed elsewhere that are bundled here for convenience. At the moment, this consists of the following two sphinx extensions: * `numpydoc `_, a Sphinx extension developed as part of the Numpy project. This is used to parse docstrings in Numpy format * `sphinx-automodapi `_, a Sphinx extension developed as part of the Astropy project. This used to be developed directly in ``astropy-helpers`` but is now a standalone package. Issues with these sub-modules should be reported in their respective repositories, and we will regularly update the bundled versions to reflect the latest released versions. ``astropy_helpers`` includes a special "bootstrap" module called ``ah_bootstrap.py`` which is intended to be used by a project's setup.py in order to ensure that the ``astropy_helpers`` package is available for build/installation. This is similar to the ``ez_setup.py`` module that is shipped with some projects to bootstrap `setuptools `_. As described in APE4, the version numbers for ``astropy_helpers`` follow the corresponding major/minor version of the `astropy core package `_, but with an independent sequence of micro (bugfix) version numbers. Hence, the initial release is 0.4, in parallel with Astropy v0.4, which will be the first version of Astropy to use ``astropy-helpers``. For examples of how to implement ``astropy-helpers`` in a project, see the ``setup.py`` and ``setup.cfg`` files of the `Affiliated package template `_. .. image:: https://travis-ci.org/astropy/astropy-helpers.svg :target: https://travis-ci.org/astropy/astropy-helpers .. image:: https://coveralls.io/repos/astropy/astropy-helpers/badge.svg :target: https://coveralls.io/r/astropy/astropy-helpers Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Framework :: Setuptools Plugin Classifier: Framework :: Sphinx :: Extension Classifier: Framework :: Sphinx :: Theme Classifier: License :: OSI Approved :: BSD License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Topic :: Software Development :: Build Tools Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Archiving :: Packaging ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.5253677 pyregion-2.1.1/astropy_helpers/astropy_helpers.egg-info/SOURCES.txt0000664000175000017500000000631600000000000024350 0ustar00jjleejjleeCHANGES.rst LICENSE.rst MANIFEST.in README.rst ah_bootstrap.py setup.cfg setup.py astropy_helpers/__init__.py astropy_helpers/conftest.py astropy_helpers/distutils_helpers.py astropy_helpers/git_helpers.py astropy_helpers/openmp_helpers.py astropy_helpers/setup_helpers.py astropy_helpers/test_helpers.py astropy_helpers/utils.py astropy_helpers/version.py astropy_helpers/version_helpers.py astropy_helpers.egg-info/PKG-INFO astropy_helpers.egg-info/SOURCES.txt astropy_helpers.egg-info/dependency_links.txt astropy_helpers.egg-info/not-zip-safe astropy_helpers.egg-info/top_level.txt astropy_helpers/commands/__init__.py astropy_helpers/commands/_dummy.py astropy_helpers/commands/_test_compat.py astropy_helpers/commands/build_ext.py astropy_helpers/commands/build_py.py astropy_helpers/commands/build_sphinx.py astropy_helpers/commands/install.py astropy_helpers/commands/install_lib.py astropy_helpers/commands/register.py astropy_helpers/commands/setup_package.py astropy_helpers/commands/test.py astropy_helpers/commands/src/compiler.c astropy_helpers/compat/__init__.py astropy_helpers/extern/__init__.py astropy_helpers/extern/setup_package.py astropy_helpers/extern/automodapi/__init__.py astropy_helpers/extern/automodapi/autodoc_enhancements.py astropy_helpers/extern/automodapi/automodapi.py astropy_helpers/extern/automodapi/automodsumm.py astropy_helpers/extern/automodapi/smart_resolver.py astropy_helpers/extern/automodapi/utils.py astropy_helpers/extern/automodapi/templates/autosummary_core/base.rst astropy_helpers/extern/automodapi/templates/autosummary_core/class.rst astropy_helpers/extern/automodapi/templates/autosummary_core/module.rst astropy_helpers/extern/numpydoc/__init__.py astropy_helpers/extern/numpydoc/docscrape.py astropy_helpers/extern/numpydoc/docscrape_sphinx.py astropy_helpers/extern/numpydoc/numpydoc.py astropy_helpers/extern/numpydoc/templates/numpydoc_docstring.rst astropy_helpers/sphinx/__init__.py astropy_helpers/sphinx/conf.py astropy_helpers/sphinx/setup_package.py astropy_helpers/sphinx/ext/__init__.py astropy_helpers/sphinx/ext/changelog_links.py astropy_helpers/sphinx/ext/doctest.py astropy_helpers/sphinx/ext/edit_on_github.py astropy_helpers/sphinx/local/python2_local_links.inv astropy_helpers/sphinx/local/python3_local_links.inv astropy_helpers/sphinx/themes/bootstrap-astropy/globaltoc.html astropy_helpers/sphinx/themes/bootstrap-astropy/layout.html astropy_helpers/sphinx/themes/bootstrap-astropy/localtoc.html astropy_helpers/sphinx/themes/bootstrap-astropy/searchbox.html astropy_helpers/sphinx/themes/bootstrap-astropy/theme.conf astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_linkout.svg astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_linkout_20.png astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo.ico astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo.svg astropy_helpers/sphinx/themes/bootstrap-astropy/static/astropy_logo_32.png astropy_helpers/sphinx/themes/bootstrap-astropy/static/bootstrap-astropy.css astropy_helpers/sphinx/themes/bootstrap-astropy/static/copybutton.js astropy_helpers/sphinx/themes/bootstrap-astropy/static/sidebar.js licenses/LICENSE_ASTROSCRAPPY.rst licenses/LICENSE_COPYBUTTON.rst licenses/LICENSE_NUMPYDOC.rst././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1621602324.517367 pyregion-2.1.1/astropy_helpers/astropy_helpers.egg-info/dependency_links.txt0000664000175000017500000000000100000000000026524 0ustar00jjleejjlee ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1621602324.517367 pyregion-2.1.1/astropy_helpers/astropy_helpers.egg-info/not-zip-safe0000664000175000017500000000000100000000000024704 0ustar00jjleejjlee ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1621602324.517367 pyregion-2.1.1/astropy_helpers/astropy_helpers.egg-info/top_level.txt0000664000175000017500000000002000000000000025200 0ustar00jjleejjleeastropy_helpers ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/astropy_helpers/licenses/0000775000175000017500000000000000000000000017346 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/licenses/LICENSE_ASTROSCRAPPY.rst0000664000175000017500000000315400000000000023177 0ustar00jjleejjlee# The OpenMP helpers include code heavily adapted from astroscrappy, released # under the following license: # # Copyright (c) 2015, Curtis McCully # 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 Astropy Team 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 HOLDER 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. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/licenses/LICENSE_COPYBUTTON.rst0000664000175000017500000000471100000000000022753 0ustar00jjleejjleeCopyright 2014 Python Software Foundation License: PSF PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2 -------------------------------------------- . 1. This LICENSE AGREEMENT is between the Python Software Foundation ("PSF"), and the Individual or Organization ("Licensee") accessing and otherwise using this software ("Python") in source or binary form and its associated documentation. . 2. Subject to the terms and conditions of this License Agreement, PSF hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use Python alone or in any derivative version, provided, however, that PSF's License Agreement and PSF's notice of copyright, i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee. . 3. In the event Licensee prepares a derivative work that is based on or incorporates Python or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to Python. . 4. PSF is making Python available to Licensee on an "AS IS" basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. . 5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. . 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. . 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between PSF and Licensee. This License Agreement does not grant permission to use PSF trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. . 8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License Agreement. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621602324.0653298 pyregion-2.1.1/astropy_helpers/licenses/LICENSE_NUMPYDOC.rst0000664000175000017500000001350700000000000022506 0ustar00jjleejjlee------------------------------------------------------------------------------- The files - numpydoc.py - docscrape.py - docscrape_sphinx.py - phantom_import.py have the following license: Copyright (C) 2008 Stefan van der Walt , Pauli Virtanen Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. 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. THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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. ------------------------------------------------------------------------------- The files - compiler_unparse.py - comment_eater.py - traitsdoc.py have the following license: This software is OSI Certified Open Source Software. OSI Certified is a certification mark of the Open Source Initiative. Copyright (c) 2006, Enthought, Inc. 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 Enthought, Inc. 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. ------------------------------------------------------------------------------- The file - plot_directive.py originates from Matplotlib (http://matplotlib.sf.net/) which has the following license: Copyright (c) 2002-2008 John D. Hunter; All Rights Reserved. 1. This LICENSE AGREEMENT is between John D. Hunter (“JDHâ€), and the Individual or Organization (“Licenseeâ€) accessing and otherwise using matplotlib software in source or binary form and its associated documentation. 2. Subject to the terms and conditions of this License Agreement, JDH hereby grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce, analyze, test, perform and/or display publicly, prepare derivative works, distribute, and otherwise use matplotlib 0.98.3 alone or in any derivative version, provided, however, that JDH’s License Agreement and JDH’s notice of copyright, i.e., “Copyright (c) 2002-2008 John D. Hunter; All Rights Reserved†are retained in matplotlib 0.98.3 alone or in any derivative version prepared by Licensee. 3. In the event Licensee prepares a derivative work that is based on or incorporates matplotlib 0.98.3 or any part thereof, and wants to make the derivative work available to others as provided herein, then Licensee hereby agrees to include in any such work a brief summary of the changes made to matplotlib 0.98.3. 4. JDH is making matplotlib 0.98.3 available to Licensee on an “AS IS†basis. JDH MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, JDH MAKES NO AND DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF MATPLOTLIB 0.98.3 WILL NOT INFRINGE ANY THIRD PARTY RIGHTS. 5. JDH SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF MATPLOTLIB 0.98.3 FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING MATPLOTLIB 0.98.3, OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF. 6. This License Agreement will automatically terminate upon a material breach of its terms and conditions. 7. Nothing in this License Agreement shall be deemed to create any relationship of agency, partnership, or joint venture between JDH and Licensee. This License Agreement does not grant permission to use JDH trademarks or trade name in a trademark sense to endorse or promote products or services of Licensee, or any third party. 8. By copying, installing or otherwise using matplotlib 0.98.3, Licensee agrees to be bound by the terms and conditions of this License Agreement. ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1624633127.347994 pyregion-2.1.1/docs/0000775000175000017500000000000000000000000013246 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7571084 pyregion-2.1.1/docs/Makefile0000664000175000017500000001074500000000000014715 0ustar00jjleejjlee# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = _build # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest #This is needed with git because git doesn't create a dir if it's empty $(shell [ -d "_static" ] || mkdir -p _static) help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " text to make text files" @echo " man to make manual pages" @echo " changes to make an overview of all changed/added/deprecated items" @echo " linkcheck to check all external links for integrity" clean: -rm -rf $(BUILDDIR) -rm -rf api -rm -rf generated html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Astropy.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Astropy.qhc" devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/Astropy" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Astropy" @echo "# devhelp" epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." make -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." doctest: @echo "Run 'python setup.py test' in the root directory to run doctests " \ @echo "in the documentation." ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3519938 pyregion-2.1.1/docs/_static/0000775000175000017500000000000000000000000014674 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7571084 pyregion-2.1.1/docs/_static/contents.png0000664000175000017500000000031200000000000017233 0ustar00jjleejjlee‰PNG  IHDR(?¶wsRGB®Îé pHYs  šœtIMEØ 7C{´ÌtEXtCommentCreated with GIMPW7IDAT×¥9 ÂZþÿ^']ÔxŒ.$@”Z[‚!£8EÈž-«oöÃoì\éà¦K©IEND®B`‚././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7571084 pyregion-2.1.1/docs/_static/file.png0000664000175000017500000000061000000000000016316 0ustar00jjleejjlee‰PNG  IHDRóÿabKGDÿÿÿ ½§“ pHYs  šœtIMEÕ  )¶TIDAT8Ë­‘±JÄ@†¿Ir('[ "&xØÙYZ ‚Xø0‚!i|†_@±Ô÷•t§ÓDÄæÏ] ¹#¹Äxÿjv˜ùç› Y–ÐN‡ažE‘i«(ŠÌÄÉ™yž£µ@D¦£&±ˆ`Û6®ë–P¦Zk’$)5%"ôz½Ê.NñA#Aœba‘`Vsø¾_3ñc°,«™àä2m¼Ýñþjó [kŸìlv¹y|!IÕ´ðþyô;ÀðvÈé "Œß®°—a©?ŸAúðÄ7Œ`ô˜ñÇc^énôk?¸²Bg}»TЙ¹D#ÁÑÞ "R¹D1÷£çyüEŽRê*ŽãÝ6MJ©3þK_U«t8F~ÇIEND®B`‚././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7571084 pyregion-2.1.1/docs/_static/mpl.css0000664000175000017500000001775200000000000016212 0ustar00jjleejjlee/** * Alternate Sphinx design * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl. */ body { font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif; font-size: 14px; letter-spacing: -0.01em; line-height: 150%; text-align: center; /*background-color: #AFC1C4; */ background-color: #BFD1D4; color: black; padding: 0; border: 1px solid #aaa; margin: 0px 80px 0px 80px; min-width: 740px; } a { color: #CA7900; text-decoration: none; } a:hover { color: #2491CF; } pre { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; font-size: 0.95em; letter-spacing: 0.015em; padding: 0.5em; border: 1px solid #ccc; background-color: #f8f8f8; } td.linenos pre { padding: 0.5em 0; border: 0; background-color: transparent; color: #aaa; } table.highlighttable { margin-left: 0.5em; } table.highlighttable td { padding: 0 0.5em 0 0.5em; } cite, code, tt { font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace; font-size: 0.95em; letter-spacing: 0.01em; } hr { border: 1px solid #abc; margin: 2em; } tt { background-color: #f2f2f2; border-bottom: 1px solid #ddd; color: #333; } tt.descname { background-color: transparent; font-weight: bold; font-size: 1.2em; border: 0; } tt.descclassname { background-color: transparent; border: 0; } tt.xref { background-color: transparent; font-weight: bold; border: 0; } a tt { background-color: transparent; font-weight: bold; border: 0; color: #CA7900; } a tt:hover { color: #2491CF; } dl { margin-bottom: 15px; } dd p { margin-top: 0px; } dd ul, dd table { margin-bottom: 10px; } dd { margin-top: 3px; margin-bottom: 10px; margin-left: 30px; } .refcount { color: #060; } dt:target, .highlight { background-color: #fbe54e; } dl.class, dl.function { border-top: 2px solid #888; } dl.method, dl.attribute { border-top: 1px solid #aaa; } dl.glossary dt { font-weight: bold; font-size: 1.1em; } pre { line-height: 120%; } pre a { color: inherit; text-decoration: underline; } .first { margin-top: 0 !important; } div.document { background-color: white; text-align: left; background-image: url(contents.png); background-repeat: repeat-x; } /* div.documentwrapper { width: 100%; } */ div.clearer { clear: both; } div.related h3 { display: none; } div.related ul { background-image: url(navigation.png); height: 2em; list-style: none; border-top: 1px solid #ddd; border-bottom: 1px solid #ddd; margin: 0; padding-left: 10px; } div.related ul li { margin: 0; padding: 0; height: 2em; float: left; } div.related ul li.right { float: right; margin-right: 5px; } div.related ul li a { margin: 0; padding: 0 5px 0 5px; line-height: 1.75em; color: #EE9816; } div.related ul li a:hover { color: #3CA8E7; } div.body { margin: 0; padding: 0.5em 20px 20px 20px; } div.bodywrapper { margin: 0 240px 0 0; border-right: 1px solid #ccc; } div.body a { text-decoration: underline; } div.sphinxsidebar { margin: 0; padding: 0.5em 15px 15px 0; width: 210px; float: right; text-align: left; /* margin-left: -100%; */ } div.sphinxsidebar h4, div.sphinxsidebar h3 { margin: 1em 0 0.5em 0; font-size: 0.9em; padding: 0.1em 0 0.1em 0.5em; color: white; border: 1px solid #86989B; background-color: #AFC1C4; } div.sphinxsidebar ul { padding-left: 1.5em; margin-top: 7px; list-style: none; padding: 0; line-height: 130%; } div.sphinxsidebar ul ul { list-style: square; margin-left: 20px; } p { margin: 0.8em 0 0.5em 0; } p.rubric { font-weight: bold; } h1 { margin: 0; padding: 0.7em 0 0.3em 0; font-size: 1.5em; color: #11557C; } h2 { margin: 1.3em 0 0.2em 0; font-size: 1.35em; padding: 0; } h3 { margin: 1em 0 -0.3em 0; font-size: 1.2em; } h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: black!important; } h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor { display: none; margin: 0 0 0 0.3em; padding: 0 0.2em 0 0.2em; color: #aaa!important; } h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { display: inline; } h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover, h5 a.anchor:hover, h6 a.anchor:hover { color: #777; background-color: #eee; } table { border-collapse: collapse; margin: 0 -0.5em 0 -0.5em; } table td, table th { padding: 0.2em 0.5em 0.2em 0.5em; } div.footer { background-color: #E3EFF1; color: #86989B; padding: 3px 8px 3px 0; clear: both; font-size: 0.8em; text-align: right; } div.footer a { color: #86989B; text-decoration: underline; } div.pagination { margin-top: 2em; padding-top: 0.5em; border-top: 1px solid black; text-align: center; } div.sphinxsidebar ul.toc { margin: 1em 0 1em 0; padding: 0 0 0 0.5em; list-style: none; } div.sphinxsidebar ul.toc li { margin: 0.5em 0 0.5em 0; font-size: 0.9em; line-height: 130%; } div.sphinxsidebar ul.toc li p { margin: 0; padding: 0; } div.sphinxsidebar ul.toc ul { margin: 0.2em 0 0.2em 0; padding: 0 0 0 1.8em; } div.sphinxsidebar ul.toc ul li { padding: 0; } div.admonition, div.warning { font-size: 0.9em; margin: 1em 0 0 0; border: 1px solid #86989B; background-color: #f7f7f7; } div.admonition p, div.warning p { margin: 0.5em 1em 0.5em 1em; padding: 0; } div.admonition pre, div.warning pre { margin: 0.4em 1em 0.4em 1em; } div.admonition p.admonition-title, div.warning p.admonition-title { margin: 0; padding: 0.1em 0 0.1em 0.5em; color: white; border-bottom: 1px solid #86989B; font-weight: bold; background-color: #AFC1C4; } div.warning { border: 1px solid #940000; } div.warning p.admonition-title { background-color: #CF0000; border-bottom-color: #940000; } div.admonition ul, div.admonition ol, div.warning ul, div.warning ol { margin: 0.1em 0.5em 0.5em 3em; padding: 0; } div.versioninfo { margin: 1em 0 0 0; border: 1px solid #ccc; background-color: #DDEAF0; padding: 8px; line-height: 1.3em; font-size: 0.9em; } a.headerlink { color: #c60f0f!important; font-size: 1em; margin-left: 6px; padding: 0 4px 0 4px; text-decoration: none!important; visibility: hidden; } h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, h4:hover > a.headerlink, h5:hover > a.headerlink, h6:hover > a.headerlink, dt:hover > a.headerlink { visibility: visible; } a.headerlink:hover { background-color: #ccc; color: white!important; } table.indextable td { text-align: left; vertical-align: top; } table.indextable dl, table.indextable dd { margin-top: 0; margin-bottom: 0; } table.indextable tr.pcap { height: 10px; } table.indextable tr.cap { margin-top: 10px; background-color: #f2f2f2; } img.toggler { margin-right: 3px; margin-top: 3px; cursor: pointer; } img.inheritance { border: 0px } form.pfform { margin: 10px 0 20px 0; } table.contentstable { width: 90%; } table.contentstable p.biglink { line-height: 150%; } a.biglink { font-size: 1.3em; } span.linkdescr { font-style: italic; padding-top: 5px; font-size: 90%; } ul.search { margin: 10px 0 0 20px; padding: 0; } ul.search li { padding: 5px 0 5px 20px; background-image: url(file.png); background-repeat: no-repeat; background-position: 0 7px; } ul.search li a { font-weight: bold; } ul.search li div.context { color: #888; margin: 2px 0 0 30px; text-align: left; } ul.keywordmatches li.goodmatch a { font-weight: bold; } ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7571084 pyregion-2.1.1/docs/_static/navigation.png0000664000175000017500000000033200000000000017537 0ustar00jjleejjlee‰PNG  IHDR<§ñÐúsRGB®Îé pHYs  šœtIMEØ y݉štEXtCommentCreated with GIMPWGIDATÓ½ÁÀ0 ÂûOëB©t~8qgª*°m,© 0Ö{,šB†ÀÌt—Ø6oœ.™qú\Y›~t7Ö"Lð“ßIEND®B`‚././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7571084 pyregion-2.1.1/docs/_static/region_ds9.jpg0000664000175000017500000024653100000000000017453 0ustar00jjleejjleeÿØÿàJFIF]\ÿáExifMM*ÿþCreated with GIMPÿÛC  !"$"$ÿÛCÿÀ_ "ÿÄ ÿÄo  !1"AQ•ÓÔ2STUVau‘”Ò#78FGXqv’“¡±´Õ 3456BRt„¤³ÁÄÑá$df²µð%&br…–¢£ÂñCDWce¥(Es'‚ÿÄÿÄ?!1AQaRq‘¡±"2Ñð3Bbr‚’Áá#4²ñS¢$ÒÂÿÚ ?…¢4®•ŸCééçÒÖ ¦–ÓHù$’Ù œ÷XKœKrI$’OZ¸íGHûQÓ¾*ƒä,¼šÎê]¥ª2˜íNØ–0ö;æ àZx»%ÇTèᥙWG§­=).YÍÝFÂ"pëqážÃ¥Ê…©Þ烜¥+ÎÖ8·j:GÚŽñT!Z3“3¨YYÚV˜dOŒÊÁ%#ö·5„üw¸½îyÀ.98€p ¡Yk(«mô”š¢;E4›1Õ2­­©„–·d¢GVøU•ÔiÆê+ÃÐ…ç+93™Ù95²Þ3mzOÔ·&-”ÍÀû­>àâ°[t¹Tšz-§å‘­.wü—NZ:ˉn÷JéV›•¯Oé»{cºHÊÊŠ¡Y?5‰“Ö27÷mÙðãZÏQ%š*íEACp¤Ž;Åîhå²¾Ó_ôþÞg!íGHûQÓ¾*ƒä'j:GÚŽñT!v«êŠ}K¨ir¤u²KSÌ,·tù¶Zr;Åù'Ýø=ûEV¸¦½¶J9áy«ŠZø£…p9c¡#iÇþ‘ u}…Ζ*NŸå»ìIÊÊ™sæqžÔtµ;â¨>Bv£¤}¨éßAòP·Õ¥))l—*Z¦UÈk›$í‰Ò´žàñôí†ÈÏØ[ Þ¶ßM­õf•°×IK i%ß¶Ãvƒdp!Ž#HøeR Ûaoò·.g# 5}³‡v£¤}¨éßAòi "N;QÓž*ƒä-ç\ÖE[t†fÃrŠv²cSj ŽN{Z\F3Œ«[]f4u=žçKAVÊ—ºàÙ'lN•§Òž> pÙû ß‘EKagù©_Í´ã´ÍPòu¦lwY-µzSK¾hÃI1Zá-îšë`=õŽ×Éöž¹>FÑè½8ñ6äs­´ÌcásœÐÝ+®Ü/T£Z^ISK,uPÀÆÔÃ_0Œ˜äwsîU3«© ¾Þí0ÕÃu ®tÒÔ²Ï-ÁHFÎA'‰v0•â¾E{'érÙFÒú¯c›Üt›·Õjͧ¢”qÑtäFA7QûQÒ>Ôtù  r‡]AWq¡‚Þæ:**éœæ?m¥ÍÎ@vÐÆqÅk+M(FpMÅxÔ”£+)2—µ#íGNøª¨éj:wÅP|…tŠ}>ª+é'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä+¤NŠŸU’|YKÚŽ‘ö£§|UÈNÔtµ;â¨>BºDè©õPé'Å”½¨éj:wÅP|„íGHûQÓ¾*ƒä-¦Åf¹_*ßIk¦ç23#›¶Öá œ¸ÖBºô<ÖÄ9‹å*äððv•—dUi+ÆïÄç¨éj:wÅP|…±[9&Òµ¶ÚzçÛ´jç2*ºX#“Înq»êËJ޶*ÛEÖ¾Ïcš†Ù[U¢{KáÏh<æcŒ×Ä|+•iÁ%k.ävœäï{¾ó_¾rY¥mvá\-¾=óbp¢£‚W0¸8ŒüÌ`w%TQè­#SW ?jú^ìfò[d c2q—ŽwÊÝ&¶ÜmúJ·ŸÐURo+é¶7ð¹›XŽ|ã#Ž2>KGO5e\4”ìÛšymÈNqÀ<:ÊS„w³çd'9&­=%–š=B,/к}õ¯v"k-PÊ;ÎiØô¼ ÉÆ0sŒjœ²èm9§ô®¦¥Oé¡WGC.'£ „l<3=˃‡x‚ ô55âÝg§‡GUßeçíôîºÆ[B÷⸌ì ÈÆã¸â·[*¬Ú7U[+CðPL°ì´ƒAÀAÃÇŽhµ8Ëj)d÷kÏóì_$â՛׎œ‰üœhSky9Òõ´Ph¡IQe£’Ÿœ^*Y)ŒÀÍ’æŠb±Œ€Hs:íbÝù»μ•Ä%e/CÒx:-ÝÇÔ⇫z–‚ñåWš'¡Ç*Þ¥ ¼yUæ‹·¢ïÄ1o$sܨu}N!èqÊ·©h/Uy¢zr­êZ Ç•^h»z'Ä1o$=ʇWÔ⇫z–‚ñåWš'¡Ç*Þ¥ ¼yUæ‹·¢|CÖòCܨu}N!èqÊ·©h/Uy¢zr­êZ Ç•^h»z'Ä1o$=ʇWÔãöÝË%¹›4­äð ­±¼ºM.˼-Û£;'€â0¢ÕèWªêd©ª:i¤vÓÞûíQ.?]©=úºw¾}‹ìwÝ(ÚÖ˵œCÐã•oRÐ^<ªóDô8å[Ô´*¼Ñvô]ø†#­äŽ{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4OCŽU½KAxò«ÍoDø†#­ä‡¹PêúœCÐã•oRÐ^<ªóDô8å[Ô´*¼ÑvôOˆb:ÞH{•¯©Ä=9Võ-ãʯ4ZŸ+ú+”+W&Z†²òý mómî/2JîáÇf6`âÀ$ =6¹WeWÎfñÿø'üÞeÇÄ5g/C«E;¨ú›w$9ö±nüÝ‹žvZSó»7'ôœÆŽá¾×vØù¥c±ûM˜nä;.ÜåÜ àz—Cäƒç3 ~Ö-ß›±]Üív˧5é;uw4¨eU78²nffv%fÐ;/8pâ2²OvGS6ÄýQ§éô¶–Ó‘Ë¢i«ª)¬Ôp‘¾é¸#T"•À±¬ËH Èê$lå”k޾ªšž«b×KÊôäÔIo‚Ühš d{j¤¬ã¼¤´õœl.ëyÒÚfõ<µ;h¹M58¥–Jº(åsá N.–€ðÓÃhÖ«ižÙ;eívÑÓžÉs(ùפØýw~“¹ëêáÔ€¸DDœ¹ ÓÝ!¬õÕ×´m!wæÜ¡Ü?å[„û5Ô›2F›?;9ÛoÍÝé}1æwÍmÕTº W^ïVÚë•U‹WW6Þhá"ˆ ZˆØÝƒø€‰ZâK%Ú{ÁÙg­»BÐÝ5Ó}¥éΔçëžô\;ýöÖÖ÷y³µ·µÝmg9â²Ë£4|²É4ºRÄù%’¢Yë|D½õ ¨q;Þ=å÷ 0÷¹Š8öÞ^ý–´ãÖO„û¨ ‹™ö@UX©ìpK¤,Z¿VVÈê]7i¸Ò2s,ÎÙÞ<4ìÆÆ$ŽË†^Ü´®˜©õ–Ó:—qÛ´^y¶ÖãŸÑGQºÚÆÖÎØ;9Ùnq×à@yæ¶’óÉuÒ÷¡4ž¢šÛ¿D×뺺Zfšûž÷cº‰ñ¾8  ¡±DÖ`p.'Їyå” 3«µ}5Þ{´Õ«MVAm§¤‰Ôµo¯drN&25Òãæ…­ÝÈÂrãèòqÉã袢~ƒÒÎ¥ŠGË&ÑcðÐ÷ì`0ÖCž ¬nz[LÝ/T·»ž´W])69µmErOË™±#spâ\0x”ªå]M[Î#Ô“SÇèŸ6‹æñÒSsG™ gË£.ßǶÐÓµ°DLÛcÉyLäRÞõ ·UÒ_kyüÖ U_g‚­ñ29g†ÒÇH# fÞŒµ­†rNßÚ¶™ö»hý±éOØQþÍõÏWëßýÏMî©–Ë]²×κ2ÝGCÎêUSÍàl{韹_²ÓÎ\xœ &.qËý¾ÉwÓv;MïPt?<Ô41Ñ2Z7ÕÒ×Ô‡—GKS HÞBý“\À ZK¸`ôuók¶^­²Û/6ê;• ØÞÓUÀÙb~pÚc2:À(-Úµ-×Hßnº^Õní7P\5•†Ïy§¶¾ ­”ñOÿέñöa|͇.¶Bf{® èÚ‡S^-Õv+GÊUf¡ºV^ná¶+]¸ÊÈ"2yešAKáÚnÙݵÏÌa¬ovOL§Ñš>žÁQ§éô¥Š+=L‚Z‹{-ñ6žW’èÃv\{†q#=Èð¨Ñš>¢ÁO§ê4¥Š[=4†Z{{íñ:ž'¢\ØËvZ{·ñ=Ñ𔽵vÏ¢^ú¶_CMÏ8æãco§¹®÷cÒíì÷xÆÎ×ïv{•é>G/Z¾³Të .¦žiim²Q¾ÞÛ…E½×(„°“#*DâÆ ¦‡3-i-yâìw;t:3GÃ[q­‡JX£ª¹Ç,W ›oˆ>­’œÈÙ]³—‡ž.È'¯*fž°Ø´íè´ý–Ûh¥|†WÃCJÈçqká­ëÀ’ç“=Cgä/T\´¼õ”÷Hiã,š‘„ËFV žÜ[ˆŒ„¼`´àF2:: <ý®¢ù;ŸFÑr[Wh±Ý5EÆÕi•öÚ–I,–¹$yM…ÅÑÊü‘S$r=Ãhåsûö¾Ô£_Yî· ¨nw uÖ´tUµ¦¥”¶öI™±l4ž;'`0rO§©t†¤¶ÖÛ)t^œ‚†¿wÏ)£µÂت6Ó7Œ ÃöIÈÈ8O­úº‚Í7nº‚Žót©¨uGù§‚ŽkÍããµ#àìHþéÀŒõ%.‚ÐÔ–ÚÛe.‹ÓP×îùå4v¸[FÁÚfñ¸~É9ˆ[¸Wd-¿¥ylä’ƒ ­ÝïLÿ˜]_±K6)£=ÙÝÉŒchwâÑÕÖ;ª‡Uk¶Uܨ®uVê9ë¨7œÎ¦HéiöÆË÷o#,Údp(*è-W©íØô…÷*^µv¡75¢:GÔY;öÛéŸUþjcix•Îk@;D7!Ó+\¤>ÊÆ\uMŠÕYnЗ¹j©E-Tµ­},AÏk%­ih‰ÍçáÍ{Féz2»Fhúê)è«t¥Šª–¢µÕóC5¾'²Z§ :w4·B çº õ­[”žMj54ÑÙ®¶‹E Vj›DTµª[IñˆŒ”¯k£’îòœÂÝžã†H+Or“¬¨$l7 :ZíCqÑ”w(-”¬ª ¬ t³È»ÃÞKpÝè{XCZ8cdÓ¼¡ò‰xå"Ç¢[ª·U¨ìµ5®·Àùê)èáŠHžá²Ùš$xkZ̆—1à»·Ùy>ÑöÍ2Í>lÚêWQRQÕ>²Ž)\Êf5™ÎȆŒd` –Ó4Ìtí¢—¢·½¹¢œÏ{úîëæ{y;[8ÚÏ 5nÇ]WwÖüŒiíM~|2\ª£••EÀÅ4‘쎸0Œ “€è*š×l²Ûb¶Y­ÔvÚsº¦¤±DÌ’ã²Æ€I$àu’TÄì·ImÖ4÷Êj9ªdÕÚfá¢CŒìk"ª™¦Z&†ã$É ’2âC K‹@î¹ÍKµ,<žk ]`†ån¼h½#kÑM¨£•²ôOŽK™Ù Úa‡h0HÓ²\ö¸ð,õ­Î×lºs^“·Q×sJ†USsˆ&æfgbVm²ñ“‡#)lµÛ-|ë£-Ôt<î¡õU<ÞǾ™øÛ•û m<àelj‹rƒ¦9±ro}¥¶j = ÇOSÇ-Uš©ò>J3[ Céãq5 sÞ#tÅ¥Ïlnðœ’ÑC§¹¼éºí=Ga» <&ˆéñ=žéH*ÜRêP6â©ixº{ø 0@Ù.êö£íUÔV­)b ¥¸Çº­†šßL©f6dkZÆბ‡ Y´æ–Ó:kÚæ´Y¹ÎÎÿ˜QGO½ÙÎÎÖÀXÚv3Õ“á@\-[•½W‡äÖÿªžø[%¾‰ï¦F÷±õî!cƒ8áÒ9¶û LB¶xÆöf4I Î.sÚÝ£0=ïÊ.­µja£îz²nqG}±ÑÛª(,Ð>®¡õЙ$¥²Šfªn¿µ˜cšSüM²×<5Å œC\@ãƒÔ»"‡sµÛ.œ×¤íÔuÜÒ¡•TÜâɹ™™Ø•›@ì¼dáÈÊÊ·­_¬´ß+úðÒÓÃo¼^õ6—´Ô²Ù3*ßRRÌH§}C#ŒÈæÆÐ ¬ÙçÀ¢k[­©tíÖï]LX$ÖQÛª7´sÔFÈm­’rÚg:ÎÂv\À;‘–ñ˽S_¥´ÍIsí;hªé]×H﨣<Ý~µ½Èù¦ÆÎÖvqà £Sòy¦nÚ2«NPÙ­¯ù:¶ŠÝ<6èÿäîu™+¢hgkh—–íwÊœòÊ©¾ë«5žï¨¨ï´wm O~’H©£ŒSÕŠÄ‘°Ç÷DÅß4k¶Dmù˜Ø;*¾s7ÿÁ?æó-Ë“ý!lÑúz‚ßKOFúèmÔ”U—é[µ¼Þ!'pp Ó{*¾s7ÿÁ?æó ?94ÖU‘rS¢)íZfãs‚ 7o‰õ cÚÃ#``pnrÏ„÷{Û­ÿÚ-Ïá“Q»¾q7Þ¸ÿ­g³r³£/VØ®vc¨îT3guSI¥îRÄüÓ²öÓpA¬€úíÖÿíçð¿É§n·ÿh·?…þMl:gRÙ5/Iô%o:諌¶Êß™=›ª˜±¼ºkCˆÈ9àJ¸@hݺßý¢Üþù4íÖÿíçð¿É­å7n·ÿh·?…þM;u¿ûE¹ü/òkyDÛ­ÿÚ-Ïá“NÝoþÑn üšÞQ£vëö‹sø_äÓ·[ÿ´[ŸÂÿ&·”@hݺßý¢Üþù4íÖÿíçð¿É­å7n·ÿh·?…þM;u¿ûE¹ü/òk`µ[éªèßSRúé%}UH$\*mDh kÀÀw”®‡·ø+ügUå¯n·ÿh·?…þM;u¿ûE¹ü/òkjè{‚¿Æu^Q:ßà¯ñW”@j½ºßý¢Üþù4íÖÿíçð¿É­«¡íþ ÿÕyEQ¬«´¦ÓuzQÖWÐÚé67óóêÙ66ÞÖ7¹cËŽ\掾€¬íÖÿíçð¿É§n·ÿh·?…þMm]oðWøÎ«Ê'CÛüþ3ªòˆ W·[ÿ´[ŸÂÿ&ºßý¢Üþù5}s†Ñnæ¼â+ÓùÕC)£æõóáîÎ ÷nvíœ8½Øhï‘•3¡íþ ÿÕyD«Û­ÿÚ-Ïá“NÝoþÑn üšÚºßà¯ñW”Xk¨¬Ô4SÖÖÔTÒÒÓÆéfšk½K2ç9Æ\$“À€Öûu¿ûE¹ü/òiÛ­ÿÚ-Ïá“X­šÃBÜlÕWºy53-t¶çÜä­¨¦»Á¦kCŒŒ’@ÖÉÜ I#ˆ c²Eb½Y¨o6ɫ硯§Ž¦š^‘¬nÜOhs‡HÈ à€P=ºßý¢Üþù4íÖÿíçð¿É­«¡íþ ÿÕyDè{‚¿Æu^Qªöëö‹sø_äÓ·[ÿ´[ŸÂÿ&¶®‡·ø+ügUå¡íþ ÿÕyD«Û­ÿÚ-Ïá“NÝoþÑn üšÚºßà¯ñW”N‡·ø+ügUå¯n·ÿh·?…þM;u¿ûE¹ü/òkjè{‚¿Æu^Q:ßà¯ñW”@j½ºßý¢Üþù4íÖÿíçð¿É­«¡íþ ÿÕyDè{‚¿Æu^Qªöëö‹sø_äÓ·[ÿ´[ŸÂÿ&¶®‡·ø+ügUå¡íþ ÿÕyD«Û­ÿÚ-Ïá“NÝoþÑn üšÚºßà¯ñW”N‡·ø+ügUå¯n·ÿh·?…þM;u¿ûE¹ü/òkjè{‚¿Æu^Q:ßà¯ñW”@j½ºßý¢Üþù4íÖÿíçð¿É­«¡íþ ÿÕyDè{‚¿Æu^Qªöëö‹sø_äÓ·[ÿ´[ŸÂÿ&¶®‡·ø+ügUå¡íþ ÿÕyD«Û­ÿÚ-Ïá“NÝoþÑn üšÚºßà¯ñW”_V ,Vù€sLÔ±Làd|˜sØ{§’â2N2O§Û­ÿÚ-Ïá“NÝoþÑn üšÙà¼ÒO '‚žé,R4=e² µÍ# ‚Ä÷ÒúÊï⪟&€Õ{u¿ûE¹ü/òiÛ­ÿÚ-Ïá“[WJCë+¿Šª|št¤>²»øª§É 5^ÝoþÑn üšvëö‹sø_äÖÕÒúÊï⪟&)¬®þ*©òh W·[ÿ´[ŸÂÿ&ºßý¢Üþù5µt¤>²»øª§É§JCë+¿Šª|šUíÖÿíçð¿É§n·ÿh·?…þMm])¬®þ*©òiÒúÊï⪟&€Õ{u¿ûE¹ü/òiÛ­ÿÚ-Ïá“[WJCë+¿Šª|št¤>²»øª§É 5^ÝoþÑn üšvëö‹sø_äÖÕÒúÊï⪟&)¬®þ*©òh W·[ÿ´[ŸÂÿ&ºßý¢Üþù5µt¤>²»øª§É§JCë+¿Šª|šUíÖÿíçð¿É§n·ÿh·?…þMn4•L©Ú؆²-œgI$9σm£?s©E‚óI<,ž {¤±HÐö=–Ê‚×4Œ‚gPÇn·ÿh·?…þM;u¿ûE¹ü/òkjéH}ewñUO“N”‡ÖWTù4«Û­ÿÚ-Ïá“NÝoþÑn üšÚºRY]üUSäÓ¥!õ•ßÅU>Mªöëö‹sø_äÓ·[ÿ´[ŸÂÿ&¶®”‡ÖWTù4éH}ewñUO“@j½ºßý¢Üþù4íÖÿíçð¿É­«¥!õ•ßÅU>M:RY]üUSäЯn·ÿh·?…þM;u¿ûE¹ü/òkjéH}ewñUO“N”‡ÖWTù4«Û­ÿÚ-Ïá“NÝoþÑn üšÚºRY]üUSäÓ¥!õ•ßÅU>Mªöëö‹sø_äÓ·[ÿ´[ŸÂÿ&¶®”‡ÖWTù4éH}ewñUO“@j½ºßý¢Üþù5¢òõx¾_ù)¿ÓI¤î4QÁASPù\׸¶ Ïp00sœ÷—déH}ewñUO“Zç+5L©äw]ìCYΛ¸çI$9Í,½[mûH þÆïœF÷®?ë\.ŸBë(»ª-TÍr–0Æi·Û˜ '¥ý¶ÆØEA; /îžá‡“Œlãºv7|â4o½qÿZèH!ÔiYÛ|•Uúv°éÑÊ¢««Ž»OÔ\édl´ñ YÝE„‰C%orÒsž8>äÑ]bäwNZnÝäšžÁ½+‚©±èØøÄ’öXXÐͲZ4‚ѽ¢ˆˆ" ˆ€""ˆˆ=òË Ü«òGÎÙYs¡5Z”ÔÒÒ´½òÄ / ÊÌdº!´dhs6µ°îyW¢µ57$ºB[öšÔwmEE§ª †×uµIs¶>O!å°mTQÖnŸd¿3 ²2æì¸7Ñsiþ”½Yõ³¾Zë UÈ[ª\Ö8FgšVÊ@çQ‚ pÜ=‡}¼Ôþ¶þiž <¡«l÷ÛΩå>ŠÙ¦/£Vô·F¶ ÇÕ›e`†;n}¿×ÖÊ[¸Ùs#w¸“¦hk=')ÙµnˆÔw Q6»¨«´Ý©é%ÞдB÷×63LØÃ˜`Þ;¯ctOrºe«OVZõ%çQÐÚw7KÞã¤gÜÆíöå…‘w&¸µ¸i#¹=ü«}æ§õ·óH<õ3TÓIY¦n´ºäÙ'¢š6:Ý3"ªÌ ^òÉ8÷.q;®úBü94Öö-;ÉýÞZÙ­­¡®z›}|ø¯â–®4EUS óS\ó½Àôe‡¬£­‚®µK¤‚FÈÆÍ}ª•„´ä1÷B׎ZàA!m;ÍOëoæyêˆMÉÓzŸOVÐÖMÊ=Åšš×«9¹|‰á{7tâ"…ìa4üÚC±vñíÉtþˆ»ò‡ÉC5º¿ÝcÔvQ,x4†Œ¹”aÅ‘È AÀJö€á8sƒ¶A=“SÚ.Ú’ÁYb»ÑM-¾¶=ÕDq1zÛ·{\ê H9…2†õ TVèiiiãlPà ;0Öµ¢·p 8%^ŽÕW--¯.ú~äÝI©9GµÝ®4Ï}²Ý•”ñ˱Àã ºG5ŽÌ˜xÚj­ä[“ËÍUêÁE«í·x+…=î›S†Xf§çÑT9ì-­¹ºvн¢æ>3 d#á±é-æ§õ·óH<õ7šŸÖßÍ óÔ•»KåSµýÏ1¬éN†ô7ßsìlsý¾w×ìió>q­®;?¿]×”úZC­CÉu«GÝê©é´lÒÛ¤F¢j&à§d„—:¥®kÖເvr·Mæ§õ·óH<õ7šŸÖßÍ óÔœèy:»Ö: L:6fÇ?"í¡dsPî¡GM½¹ÏŒŸzw‡h‡wGŠ­ÔÚ^i9:ÒsRè=G%ÆÙ¥Ev«žœ’¦ÓW.ÃyÛDPuIXé_´Ú’"0ðyk¶Ï§·šŸÖßÍ óÔÞj[4ƒÏP4°ªfÔ+hf ªPï©f¬5Oûj7LI2–œ‚òIqï«%C¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾EC¼Ôþ¶þiž¦óSúÛù¤z€¾P4çîjÑï}7ôMP7šŸÖßÍ óÕechŽÉo‰¡û1RÅK‹ {ZÀ»‡9¸pŒ8ð(rƒh…œ¯]õU °PZÌq¸gªßOýËO¿ÉA4RÏ<Áµ’œ¿òºG+PÓG©«jæ.ièË~ïÿ™CÁr¹(-wh D;ؤg§sº¶Þyo·2¤nÎÉÁÇ^ Ã/<«qtÍݰ;i®#­I§ˆT0G#‹ãaÃHï«)*_5 íÓ5¬7æ9@D¸ÒÇU_4È Øá³ÔÙí"››ÅÝG^Tk5 RRÎʪ’&¹ãÔUu=MU²i[Áp@BµX›=SidÁ¥üZ®Mºž‚ªHd$Â;ù↛¹×Fýô‘@â2Nx(ÓÉÏ%š¢VÔ:Šãul=Îñ9½ÓOAWH÷²2`ã‚]Ö±Þ²H;@´ðï(Va Âl´3øÂPí׉yãà©qæí¾[ =u÷œ@Ž3´ëë_5Õs sÿƒÖ¯´Ý–’ܳ—ïc8‘™@j¦é§ÚßOsnÀ†°4±ÿZBîZ²åE~·š;¨,Ž›¸‡dqÇRã7ŠvS\%Š0á=Îzð€†ˆˆéÏcç·OûÝAþî¤]#E~ãlž÷ÓÿFÕÍû>t:Þê÷u"é+÷d÷¾Ÿú6 -ÑDDD@DDÊyWù×r©ïuÏýÚÅÕ—)å_ç]ʧ½×?÷k»¾q7Þ¸ÿ­sOD½mè'èïÓ_æ}#¼í[šÃÍy—9æ›þÆû}Ÿšï¶¶sÃu³Át¾ÆïœF÷®?ëX½tÏí>»ö¯Ò=#Ú¾ö>‹Þõììn÷›çÍw{­¾;à€Òôo,ú;ýÖ“R[æ¹Ûfå§KÑ×1ðÄiC¿cÆØÚÐd -;oyiF™NÓ[Oaìm>‹´MQA MÂkeîi/—¸iL¬Š®XY/Š˜6iߺ~#Œ`.9+ »‘­3o¹TßY6£¹¹º†]UÑb²1õøqŒ1® Ù.vÏvÍ¢@•ÏkZ®rKÈ}E§“í;Ò·«¾›ÕTöj›]mE–ª"ãM=Sê%ÒFð×°¿ÓŲC¶°÷Ò€½±ò»qÕ7zÚ}¢f»ÒÛ¨­U•‚¢å-Qetbfˆc-1¼²"í¹cÀ´ÀœÜœj­]våÓ”7wu²Ùy‡1Ž9Au>ö"áŒDÒýàîÚwÌÜ[¶бªä¦Ðoõ×{v¡Õ6‡\㢎é˸Rpˆ¾wµÕ %ì.É$’n(´-¢‹”;޶¤©¹A[sŽ]LÊœSÔI r¹¸Ú%±½ÍÙÚÝõ8°½­xiDDD@ÁûT?Uþu*ž©-·Ke ½±VÜhé¤55n šv°‘Φã‚z¸#¶³–ϳûÐh«;a°{9løÛ?½;a°{9løÛ?½fг¶³–ϳûÓ¶³–ϳûÐh«;a°{9løÛ?½;a°{9løÛ?½fг¶³–ϳûÓ¶³–ϳûÐh«;a°{9løÛ?½;a°{9løÛ?½fг¶³–ϳûÓ¶³–ϳûÐh«;a°{9løÛ?½;a°{9løÛ?½fг¶³–ϳûÓ¶³–ϳûÐh«;a°{9løÛ?½;a°{9løÛ?½fг¶³–ϳûÓ¶³–ϳûÐh«;a°{9løÛ?½;a°{9løÛ?½fг¶³–ϳûÓ¶³–ϳûÐh«;a°{9løÛ?½;a°{9løÛ?½fг¶³–ϳûÓ¶³–ϳûÐh«;a°{9løÛ?½;a°{9løÛ?½fг¶³–ϳûÓ¶³–ϳûÐjœýÍZ=ï¦þ‰«l6g-Ÿg÷¬šs÷5h÷¾›ú& <ƒËj[®ê„&ž[}¸±§¨b†W9«…ñSI!›¹øÝ°átÞTk')ýæ9㣭Íp#€ÍÞµ]ak·GQ¼ÆðÞè5®Y«â’FšÖ’3ž}ÊÚ³u3K¼dg,¾¾-°²Š¸Òº@ö8ä¸c_¢ õäû¨UÓÖ [&ëH%Å£¾ [Z]±{[ =Kk±ézÍM-\TÅ ôôÍ’=§H颉±äzRã Á<3ŒàeÃ>.´(Òsœ¶RßÃ<¼ÈΩ;3Vž‰°Ûéã©ÚßÔmHöž¦Fpë8s¼.ak  …­Ž }l:–ÙSQjf¢orúúú¨ù¾3»Ø?;]üï±Ô=/»ÃJ¯ÄKg8xð&}%%&óÎüÝ×s˸®‚¨©®“êy¾WÎÝÚiœb{¦ÚÙpwr¾ã‘î’mäŽkœ=0<2«Ädµ¯t¤‚U‹ÄF‰ñÆrüah.)ëÚòòÉd''kz†š6Ô€éÀÚ+f®î‰‰J®”ÓJÇÒÊ×oQÇ}«‹]KÚéÂc9ÂÇEm­¬ªŠššË,®ÙcZ2\VÕ¨ƒwvDdaùï¨åÓ[뢪 ‘Íž'í±íýéè!4ÓQò[e¤¨ÑÍ r1îm¾~è] E~ãlž÷ÓÿFÕ rQ5g&všº——Ï=%’8õ¹Î·Ò~·ýû²{ßOýP舀""ˆˆ" ˆ€""ˆˆå<«üë¹T÷ºçþíbêË”ò¯ó®åSÞëŸûµˆ nBnt6^Æý7y¹Ï¸¡ ±Šš™v ¶"cKžì4p8•µÕë-IfÓך‹¦Å£¨¦¦´ËÍä<âZ†íBÜå›@g.þcwÎ#Fû×õ®]¢ù=¾ÛoâÁÚåÊK&ÔW~‚©eÉôϾ¾å´ø£lÛ¦Ë#.ïcÁd¥„`€ïzËRÙ4~›«ÔzŽ·˜Úé67óîŸ&ÆÛÚÆ÷,Ç.sGßW ÃZ³JêÓ¤î1Z4MÊ’Žñ¤h¨Ým³izêF6ãu<ÎŽhÞd|²2'IŠ§á² ¦´—½ÕéÍUMm¡ÚJû#½¨UŸNÊ0Y.ðp ‚âKr#Ø"BÂXª‘yo±ïGjk~³ÒU—ÊK½ òßÒý=#4ôó½ìŽÇ=¸É0ef_»|{¦ÉÕÇ€Û¤@DDD@SØè`}åt•áϬ«$Gp¨¿²eÇ†Ž®ðSz>›Õn~6«ò«ƒö¨«üêU=£é½Vçãj¿*Mê·?UùU-:>›Õn~6«ò©ÑôÞ«sñµ_•RÑ£é½Vçãj¿*Mê·?UùU-:>›Õn~6«ò©ÑôÞ«sñµ_•RÑ£é½Vçãj¿*Mê·?UùU-¬53Ib·Ì%™¦jX¦p3É&öéî.#$ã$ðSwóú´Ÿ|UfœýÍZ=ï¦þ‰ªz&þV“ïŠoçõi>ø¬h€É¿ŸÕ¤ûâ›ùýZO¾+ 2oçõi>ø¦þV“ïŠÆˆ ›ùýZO¾)¿ŸÕ¤ûâ±¢&þV“ïŠoçõi>ø¬h€É¿ŸÕ¤ûâ›ùýZO¾+ 2oçõi>ø¦þV“ïŠÆˆ ›ùýZO¾)¿ŸÕ¤ûâ±¢&þV“ïŠoçõi>ø¬h€É¿ŸÕ¤ûâ›ùýZO¾+ 2oçõi>ø¯‡9ÎvÓœ\O|•øˆ!r+è5Í]|McÜÛu¸–»À(`Z5Ê÷ ÒAY%ÞøAÂØ¹f¨t| U¶Ntu¸ú Z1’“y˜ráà@E†¦j©$s¢k{®çÜWTUhÌnŒp*¥òSÇ(ØÚ>¥ej«§ŠM¦»bSáï &DàȶžÒ×u°I$2°|Ã'=e~\¦nøâ\xû‹æ)¢™›$ñÔ€ŸJèiÉ™HýèWÚbiIx…ñ?yq¦e=;F0Î!“ŽOˆÈû$-[}#& ‰€ŽûŠ»¢š¦¢X©¢ŠYe{šÆE œ÷€I'¼©¯N5!i;ZÏÁÝy£jÏgSjå>±“ÐZá£dï’9ež®|‡2W>8‘Çlˆ¶œä¿k=Ö+¼QšŠ’íž ®ò¿n޼ô" ©ç¢ì”´pÍÛ‰¨—±ç{Ëo# ÛØÏW™ÿǺ/†Qteµ®Ÿk¿•ìS…£^…ÓÄOjiY¾?žzšT”Îy1œµ ¬”¾Hüàg*â³s8vドÀʪš)!íÛ•ì—•ï’igÞ;º õ/Îs³;˜bfÞ< î§&#iü«±;e³–wmàP“™wÀLHá…õ½–*W™ŽèáK©d‰Ï9ÚÏqS¾«s˜Øý¢þ(è¿ §<”ØÏ††‡ýÝHº&ŠýÆÙ=ï§þ«žrsÉe”ž³ECþï¤]E~ãlž÷ÓÿFÔº" ˆ€""ˆˆ" ˆ€""¹O*ÿ:îU=î¹ÿ»Xº²å<«üë¹T÷ºçþíbcwÎ#Fû×õ®„¹_"ó]éû¬U~–»ÄZx¾ßO1Ã%¨ qŽ;MÀ.À=ÐàzÇZÔ½®|ÓíéÎoèiÛ>÷.Øé=îç›çyïÌ÷~Ÿk¹ÚÏ QrFµåSßn:^ËG§,×Í;f£šùÒË0àÔjEÉQ]Wf¡ª¹Ûú6ºjxä©£ß y¼¥ ¾=¶ð~É$mSD@DDí%UDt¢`ÖTÔíXêjZ\j%qÃÚZ2 ñ+'<¹zê£þëÖyE>ÁûT?Uþu*ž€¡ç—/]TÝzÏ(œòåëªû¯Yåò (yåË×U÷^³Ê'<¹zê£þëÖyE|ˆ yrõÕGý׬ò‰Ï.^º¨ÿºõžQ_"‡ž\½uQÿuë<¢sË—®ª?î½g”WÈ€¡ç—/]TÝzÏ(œòåëªû¯Yåò "Ú#d6Š*xÌå°SÇ3@è^톆ä±Ü[œgJP4çîjÑï}7ôMSÐD@JÊúzI¢‚FÔÉ,­sØÈ)¤™Å­ †4à ¦õøTµÿºZo{ꥦ@:RY]üUSäÓ¥!õ•ßÅU>MOD”‡ÖWTù4éH}ewñUO“SÑ¥!õ•ßÅU>M:RY]üUSäÔô@@éH}ewñUO“N”‡ÖWTù5=:RY]üUSäÓ¥!õ•ßÅU>MOD”‡ÖWTù5––¶:™ O]9žŠh[ð½ gÜëR” OÝËø­'ûu( 舀""ˆˆ òñ!<¤ÔB×AmîÓ­&ª–Ji‚pFx-ï–Ö@ÞT*$.̆ßm8ð˜Ó­Z¡ÆHăº€ª£kœ^é6šÑÕ•2Š‚¢¥Íu8sˆ9È +A¥!ÿ…°r]Wÿ;­6i¶·uõÐS9ÍÆÓZùIgWZ¬iS•Ih“~R»±W5;ØòéeËš=)_Tml•!Þ”c©lÚÚÏ$4¹Ú?SXžù°g¹Ë˜ã°â>ë†}1àø®ÐÚWQêY€²Ù+«™¶è÷ìf¼7hµÒ; iÆ8:Ç„,°ö…Aל”b··x¦×™Ý‡{"5$²_N!î³Oy]Úçž%§s¢©Œ‡G+‡1Èp#ˆ ÷Õí'®ßZÚY¬õõ˜XùIK,¬Œ¸gv^²çùassÃ$ƒŒô+RR–íiëÃÿ‘IòT!í\h)F´Z|Öh넓Сå4×ÇWG§“›Gn¡s#Ú;-q¢§ uv[“îÖ`™ÓÓv]±Åo|§P]e»ˆ ¶ÕÊCIÃaqØ{i¢kšxp!À‚;Ä´jM;|Š¯æ–«ŽéÞ›f™ÿÜ«ön+%¶¾•½p2TÇa”Úu#âŠx*^çc%c’Ë-x•°;ZÙ¥i±Ý îH¥÷,5ZWRCFÙã´ÔÉ ð±/Af6Æ0FHÇ€A:¥ŽÂŤêG>hª^ÒÁÅ¥*±WÓæF½-8ˆ4m`øJ“l²9ÑÎsž® ê‚:Jº±OY!ˆ¹„F÷8‰ËC³Þ$lç ¬“€A[le8Š(C¹ÙÌÏR9àÌ“ÇvÉ´æçV*{ÿ3þݶâ‹Ýxªÿídzwm¸£V¼Ð˲431?©Ã¼©)iŒu[LˆI“€JÛ.\ò9Äc âU–ÂKµ­.? <†‡7“;\0áGD÷z>‘t û²{ßOýW?ä;hrch9w3¢Éðž¤]E~ãlž÷ÓÿFÔº" ˆ€""ˆˆ" ˆ€""¹O*ÿ:îU=î¹ÿ»Xº²å<«üë¹T÷ºçþíbcwÎ#Fû×õ­_ÐÙÍ9§JQó~Úº_uÑMØèÍîû¡ñ·Žm½ù¦Ï¤Úî·yâ¶ŽÆïœF÷®?ë] ϯšï±¼ê­ª!Ó· õ)®¢¦ÛÏ™$‘7b ˆÁ‘›¹Òæà—FàA,È$×k.L5 ö GonºçV½Cn‚’ª–ùm5žX£,ßÓ5’Ã/qÙâ27àÑÔ‘[¥¬ÔºwLÚ´ý“IKl¢†ŽÌA{™\@œ4g ÷‚²D@DDD@@°~ÕãUJ§­~ >}¥nžÓóÄÙê«$/ây6€_¶ìdã+ë¡ÿÕ}#ÿÉȨzýWÒ?ñü™:ýWÒ?ñü™|Ї¡ÿÕ}#ÿÉ“¡ÿÕ}#ÿÉȨzýWÒ?ñü™:ýWÒ?ñü™|Ї¡ÿÕ}#ÿÉ“¡ÿÕ}#ÿÉȨzýWÒ?ñü™:ýWÒ?ñü™?N~æ­÷ÓDÕ=G¶K¿¶ÒÌ#¦…މ´ä˜Äe£cg-ig6F:”„ÿºZo{ꥦSÕMÙ›ûœ¬¶ÐÖ¾JY‹¹ä„F#C‘³°ðâ\XxŽ( dT=þ«éøþLþ«éøþL€¾ECÐÿ꾑ÿäÉÐÿ꾑ÿäÈ äT=þ«éøþLþ«éøþL€¾ECÐÿ꾑ÿäÉÐÿ꾑ÿäÈ äT=þ«éøþLþ«éøþL€¾P)?t/â´ŸíÔ¨þ«éøþL¥ÙãæÕU4¬¶Yh@drJ(IÚ9/ ÏÌXîdïœx8 ,ÑDDåÂA+;MÈ6ûoæê’Ô)æs̯ `”«ž^[ÿûB©Íëèûn~!N¹ù©{\cÃX@MªfÜî,‘Û­¥g§nmÓ÷ûUìCÎd5[­½½Ûöv°qœc8*ŽŸœ¹® Œ–޾ îš@ax~IaB¥8Õƒ„ÕÓV}çS³¹suºX%¤h´Z®ô³‡§U\£¨an –Á8ã“Ôxqȉc¹\í÷8ë-uUUQçbX$1½¹8qº Q8íþú´§ˆÇ0‘Ü\{áB!:z§Å·ëqw{—ÕZ‚ç}¯mUê ÔT¶&Bgs${X0Ò÷ ÝŒ §eÇ'‚¶¶’ژݗ9§kQ> –¹§lž8[lð²ÜÒæìÊQ té” ’KD²H7|Ù>¾ IY&ñÍlƒ¨-ñT»/Ësà åõaÓðvÐ÷Yï(7j—sð)œ)ê$ƒdÆ—/Žyp®dT¬—šÄFÄX¤ d4pÏ^N2I$ä’¢¸×‡ü+éÍš)‹âhqÊŒ¡4ÚЄ©ÂM9+ÛNFç%’«OZã¾UDÇï#<Ùíw8Œmý‘œŒ‡`÷°`Ó]‚–¢0°3w¶NKØsŸtç9ô¡£h%½]e§4•29ðŽ§¼¿ShÚØ³‘é”](9íÛ?ϹB›©Ò[?ûû¿]IZ‚á-â¸Èæ÷ ua@¢l4Ìj—ãøX'ÜÒ™¶8÷Š®º×ÍSDìFÒáÔB°´÷ß"M-%½F’‹/¤[þŠýÆÙ=ï§þ«žr IäªÈ\0M GýHºŠýÆÙ=ï§þ¨ tD@DDD@DDržUþuܪ{Ýsÿv±ueÊyWù×r©ïuÏýÚÄ.ÆïœF÷®?ë^t´Tr—wìp¶ê½;]­iïñÜ*·QºJI¨âeX{ ªá'Ú×ZCÚÜm¯Eö7|â4o½qÿZ¿´h}-iÐ/Жû^çN¾žzgQ󉘦/27l¸¿‰{øídg†8 8®˜å/”ÈtÝ.Ÿ¡·Ú.÷ÁÉ妷>cQ<“l½±Ë¸;sÍ+{vC6^í‚d4;»•}]­;`¸ò_¦¨ï6»}šÒ6±â'¹ÔlHc‰ EBðei¯ ÷@®ƒC¢l*Ø/z~˼[ìM²[ÌÕ“5œÖ3·=ÞГaÏLJ¨ÐèJì–žKë´†¡µZ*›{¨ž¶óMGã£3Lí­˜\LlŒ660·dÓ\\€ç2r¹v¼A§ƒ«-“wkµTENÚëee š7™bª¤Þå¯cØæŒË42aÀ·,+oä·^ë[¢iyB©HSéÚÊ{„Ï¥¨–jIh72=°—Ôã%aã·qlƒ´±²v˜¹+Ь–:‡Ù横eÖžïÎê®3Ô>ª…½óI!{ÃHkâÁ“Üñ)kä«“ûmh©¦Ó¹¬Žª()ª'–zZfTœÎØiäs¢„?$8FÖ‚Ò[ÔH@yû•YõmfÔ6†\¡eS´Íò’ñh ®´˜‹îC$qó‡mÍ› -™»¡²rv}l¹Åw"šW[a·VX«*)á§Œ^+K¹¸1¹°ovŒ-tLsb$±ŽÍ’OG@DD3å꾿MÑY5µ®÷45–ŠÓ6'K(†þg>k»ˆ>~Q—†¸æìåÍr __©(¯zÚé{šj˽hŠke”Ã`05ÝÊ™?©NËœAkvpçn—]5dºjK6£®¢ß],›þŽŸzöîwÌ —¹5Ùhºì%«MY-z’ó¨èh·7KÞã¤gÞ½ÛíË "îI-nHî@Ï( 6Ú¡üj¯ó©TõOj­ŽšÜÖ:žºBjjÎ`¢šfþÊ›¾Æ‘Ÿs­IéH}ewñUO“@OE¥!õ•ßÅU>M:RY]üUSäÐÑ@éH}ewñUO“N”‡ÖWTù4ôP:RY]üUSäÓ¥!õ•ßÅU>M=”‡ÖWTù4éH}ewñUO“@OE¥!õ•ßÅU>M:RY]üUSäÐ 9ûš´{ßMýTõŰX-pOâ–:v=ik„MzˆS÷CÒ–jëg<¬¡çtòAÎhåÝÏÛKvã~ËÆr8 ˜ˆ?h[(:ŸRiÞNîÕ5–úÍQú¾ãM\[Ò,<Á‘¿mÏ™“³æ“ ÜàúGa§¹?÷KMï}Oô´Ê5«MY-z’ó¨èh·7KÞã¤gÞ½ÛíË "îI-nHî@Ï+-\¢ A®dÏ ·Ôw1Dé~mMÔÖ‚OÜ 4P:RY]üUSäÓ¥!õ•ßÅU>M=”‡ÖWTù4éH}ewñUO“@OE¥!õ•ßÅU>M:RY]üUSäÐÑ@éH}ewñUO“N”‡ÖWTù4ôP:RY]üUSäÓ¥!õ•ßÅU>M=@¤ýÐ\¿ŠÒ·R)¬®þ*©òkâØ÷Ïv¸Õ jÈ¡t±µÓÓIÓšéÉ= œ7«Â€²DDD@x?—gír¯Wt}·«ø…:ж÷%ÑäÁn\¿Nú~X*žÎõºÙžèëO{S‡¸ìí .m7ˆ¡¢šnÒ%ýñJ¾®•Ípžœçk¬c‚ u NGãRÛTøÙºv¼€üƒæ,Í“ÅYSÔSó†4’GDùe–bá•wMoªæM©t3'ÞêeÓTÔ5È¥Œ;‹ŸÔ­u•3ë¤4oafpÝÀ­·6¨8—4·‡°Ó\ ´€;>æPÕ¦dgŽ| c¢{éLdàž¬÷×åDñ‰ÈÓÁÊ4ÕÔ9»¬–°q( *Øj6dfÉ_›™\Ò|¬Èk%ù«ð[Ö¢9â)ˆkŒà7O³‰¬ÉÏYï)ðmÒç`“ÅK§4…ÑËtO¦ï¨Ž‘Ô²¸7%™à€ûÑ>-Œã¾UÐÈÚ±ionú¼BçÜÖßëUÓfI7„OQ@{ó‘ŽMm#ÁIGþï¤[þŠýÆÙ=ï§þ«@ä@8rgiôÜÒ‹?g£éÿ¢¿q¶O{éÿ£jÝD@DDD@\§•w*ž÷\ÿݬ]YržUþuܪ{Ýsÿv± ±»ç£}ëúÖ}%ÊÖ†Ô&‡VË{£±ÐÖçb;ÅT4Ò³æ“FÝ¡¶@Ú4ólñ9 wðN0v7|â4o½qÿZâ¦Ñ΋_vÓt¦¬–+†ªÓ÷JSw¸Û`­ª} šÑâ7²Ràñ$mgrèÚrñ&X@ô•v³Ñô4SÖÖê»--=k¨&šk„LdUMtqv€KtêW5TµÔPVÑTÃUKQe†h^ÉXá–¹® ‚àA^DäãFjz­DýA§mÓQG¦µþ¡‚®“OÍI¾¥S@ÆŠ~vÖ@èÚY°všÓ²àZÐ}/£9ÓhÞJ¬zvj ­òSG#ßK5s*ß ’WÊXéYmyx;-À<pD ÕD@®jclÓš“NY.pV3¶ ‰)i«C)b™¬ÚdRÈç —Éű´\AäÒúÆÙ¨õ&£²[ ¬kõÒÔÖ–4ÒË3™´ø¢‘®;Oƒdi´;ꇖ{ÿXQ[tE#OÞd{o÷Gd}<`=¬Š):ä‘À5²€íÑ[9Ù-r1b¿èú+–ˆ­ „éû4Œm‚èÑ o­§¹’ÅT‘¸–ºR½'kg;EÀlÖkM¦zOQi·O4•ueòKIÜìTÊIõ>â™Ð¶?`­‹ä¥ƒö¨«üêU=¡l~ÁZ>!ÉN…±ûhø„_%OD…±ûhø„_%:Çì£â|•=:Çì£â|”è[°VˆEòTô@@è[°VˆEòS¡l~ÁZ>!ÉSÑ¡l~ÁZ>!ÉN…±ûhø„_%OD :Úí±ìŠ·”pÊæÅcnÓ˜×8†´2I<}OP4çîjÑï}7ôMSÐ÷]ÑvjëŸ3¬®æ”òOͨâÞO6ÃK¶#fFÓÎ0x’˜ˆ œªi™ìÚ2çBÚˇnÁn¦¤Ë<{M.•ò0?ƒ!Á–—n϶Zú::ÍEHÊÚ:j¦2†¥ídñ6F‡o)ÆpàFpO¹¿&œšv¿Ë«»OeÜiúMÏj uVò -üeÕüÞ² Ú—Ã[ÀÞäº{ÿt´Þ÷ÔÿKL€t-Ø+GÄ"ù)ж?`­‹ä©è€Ð¶?`­‹ä§BØý‚´|B/’§¢BØý‚´|B/’ cö Ññ¾Jžˆ cö Ññ¾Jt-Ø+GÄ"ù*z t-Ø+GÄ"ù)ж?`­‹ä©è€Ð¶?`­‹ä¬VÚJ*kås)mô4Â:jrÓ,q»»tÛ\Z îÙÀðà­ OÝËø­'ûu( 舀""ˆˆ òõ×)5[¨‹¥}¾ÛÇÿä)Ö…³4!­”ÜÃÔBßùkºMnåvi£hqŠßmssÕžcNV}¼Mw¬}lÍh{ÈÎÈÀ ó½Ó“Àu¨:I]´CAâTˆdc¤p•ýî õîÛpxåž#È i9靖.•1Ûã£.& ì†ø¿S.ÃZ@Øï¯ØªÌ£!à¤ÃÚgHÜ4øÄ5ÛlHó†ž8_‘E#)ò×çk« TAÛO—Ó=h A]LîI´PX¢¸=‚FÅÃ=^@ð Ü ÂýÓ˃°y°ÓCóÍ€à:‚Ç>%…¯ hh8Ê­¤©/„“&|,/¬Ú” ÙoRMs$¦,·¹s² ÙtV”¹ëô»TÙ$_`wÉ÷µ4Ò=±‰^ P^„ìIÔZkNVÜ«nÕñÒ i·bG‚qÝŽÜ@hü¶ruY¡))ᯅŽÞFÙ#9i9ÇZä%ñ7g/{x–ž^–ì·å[Mê{]žÓuL®lro¥©Øs@=[#hÞâW›^Í­‰"~Ô™î¼|ò àþM-/Ô”Gö}"ßôWî6Éï}?ômZ"Ÿ;{^@æ´}^÷Ò-÷E~ãlž÷ÓÿFÔº" ˆ€""ˆˆ" ˆ€""¹O*ÿ:îU=î¹ÿ»Xº²å<«üë¹T÷ºçþíbcwÎ#Fû×õ®„¹ïcwÎ#Fû×õ®¡u¦¢ÓýMå9ôz¦ç~¡ÏeÎó~ž¢ÛV]]Ͷ 3jö‰lo mDÐÖIÙ.ÖÊæ×l½[e¶^mÔw*±½¦«²Äüá´Çdu€WÕܦr¦hªÝ~fеܛj«¼ÓÚi)+îÕM›¸ª; „5Ûl}I~ì»-®*¶çËæ¦í{Sjj=¢9Oc¯šŠfÉ$µpÜ¡û–ÌÑã/—æ†7‡3¸nÉ/Ð6k]²ËmŠÙf·QÛhaÎêš’Å2KŽË$“ÖISŸµO-:³M_ozN¶’Ñ[t¡Ô6{TW:k}A‹u]¦/æm‘òHöžÐÖJ ËÛ€6pî™Èþ¥ÔZžÁq¨ÔÖY­•TWZŠ8%}ôBº»&*–Á>_s\És¸´ñï7T\‡‘ê›Ü|¶r©bºj[½òžÛÑÕÕò3æ{Êg½û,¬™8ÎÜrrO^@>åÚãf±èîºE}¬ª†FÓ[mÖ‹ÍM ÕõS9­d-HÃ!$g©îkCËZx‚AEç!¨5ÿ&óÝtƒotwK¥•­Öw «©ª¯ˆ9²ÛAM·3dŽÎ$‘ò9ÅÅÅ£$%ã—ÍLlÚT[,öŠ{^›·Xkjmõ ’ië:E¬‘ídí{Ãd Å&KsŽ; F¢à•\°kVíÒÓX¢¥íþm»’–W¿l™75{bP0Ðb‡g/,y3ltFuÏWÛuw˜(Ù]`Ô5–If¤c£Š§p[‰[œãCÀ-/wNxàoAOzž•Î¥¨e<-ª« ¬k ¿Îe$–ºšL’8;¨¥›˜j/dŸÇæJ}ƒö¨«üêU=CÌ5²?Ïãó$æ‹Ùçñù’¾D0Ô^Èÿ?Ì“˜j/dŸÇæKŸÛ*ot–UVJKw¸ZæÑ¯¸GEQ#ò:¼4GZӲѲàçàห.[(µâ郎¶-Am·G%lÕUT.¿Ïj­¹ˆ£á 2BǸÆ6Üé@np‚ÓÝ6îa¨½‘þ™'0Ô^Èÿ?Ì—™ß®'Ö4óTYnz¦Ñg¤äÂå}£¤éÚ­ô7êä‰Ò>q&òp×FCŽ-ÙÇpÜ«¯ZïZWèÍs«æÕ7xîÚzͤêm®§«|G-TqIPçÓÆ[ »n{²$c†ÈÀ=SÌ5²?Ïãó$æ‹Ùçñù’¾D0Ô^Èÿ?Ì“˜j/dŸÇæJùìa¢Éola›¦ÒÄ"-¼ÃaÚ,a$·÷#‰SU¦ª–‡FÛëkja¥¥§µA,ÓLðÆFÆÂÒç9Ç€I< Ì–ÎWu5Žõõ{õn§·]§’†ù‘Úm³Eæµ²šGCdÞÅa¿2—‡è€õ‚/6^9~Ö ;Q]u±Xª*§Ñ4:–‰´Ï•¬…óÔ²›bM¢L€™[.Áh=§ð•b×<¢ë™¹H¥Ò ª;Bë½9Fé­M>†ªß#eþ‘û ;®!¹Ù.“d<é…Mwel—ÚXè\ÆHê€çºmÙcw´ç ˜äç½Dñ ‘ò;Êþ±×­5Q&œÛ±ßzCœ>žÏW-—;q·Xòa©Û sNÃY‡ñ'³?÷KMï}Oô´ÈÃQ{#üþ?2Na¨½‘þ™+ä@Pó EìóøüÉ9†¢öGùü~d¯‘CÌ5²?Ïãó$æ‹Ùçñù’Ñy_¬¯©å“ ".w*K=âK¤—¨k%¤|æ Pè–'6@œNÈpã àbŸ’Ýa©j»Ÿ¬*®ÓT_©lW)b­™­{öéÝ;bs²y6d¸â2ì’I©s EìóøüÉ9†¢öGùü~d¼¡«õž°ÒÚNQfÕwÖ:ãÉ…®ñQ%MÂZ§ŠÉ«¡†I£|Îs¢&9^1h‚-i­ÔŠÏÊmë@ÐjKë,.ÖÚf„1÷9ä¨e=]4’TFÚ—¼ÎÐ÷DÃܼcˆp z3˜j/dŸÇæIÌ5²?Ïãó%¥ö9Ý.uöÝko¸\k+¡²ë+•²Õsºic¦Œ°²7Hò^ü»åÇÀu$0Ô^Èÿ?Ì–{$5p\«E\ÌžgC‘Æ«xæ´vž!‚L™9'€áÅ[¨Ÿº —ñZOöêPÑDD ì‚vß)Õqµ‡"ßmî¿S®ní¨%ã&Yßjí¶hícså÷+^—¾WÐËCn š–‚YXð( ÚÒ#ì‚´»ß'À¹¢“Bê§Kº&~øP,¹~8÷²±ARÍî °àVÙKɦ½cÓ¢5!¯6©þJ’þJõ“$dÑš'‹±kœÿé@knkãkp‘Ö¢SBý²ö0ì÷×@w'ZÌ@Z4V£'½ÿ%ÍòVHù:Ö‘Qáº7Pí÷FÍŸöP­,Îì“;ëî±à¨ÝÏZÚâä÷Zs^ïFjç«£&Ïû*=O'ºÝÄ£5<=?É@kÍçd4 g©c•Á€‡0“Ö·7òy¬ß v4v¢y¶L?ôªÚÍÊ _·ŠÔŽÁè¹þ”­qO;£âÆ‘Ád¥ 2¿aÏkvY[9<å §~ͨ²zÚmsþÊÌý¯+œÝ©D˜â:*sŸü( B¼˜¦àü5œ=±šù{Èö׃Œ«ŠÊ$øc¹<Õ¡ ñ= QÇÿÏO 9B2»AÔÂ23´ëDãÿBWàË´ùIï.Šy)]#9’wñÔ¶aÉÖ¾}ÉŸóQ±ot\ØÿeE“Cr]$ Ðz§`?6‰ðGÞ =ÁÈäÎÒáÀJ"<_H·ýû²{ßOýV‰ÈÍ-E'–Ú*¸d‚¢žž’)b‘¥¯cÛAJ \AVñ£%‰º>È×JÆ‘o§à\=M¨ ¤X÷ðz´|«G÷Á‘=ü­ßßÁêÑýð@dE«G÷Á7ðz´|cßÁêÑýðMü­ßDX÷ðz´|«G÷Á‘=ü­ßßÁêÑýð@dE«G÷Á7ðz´|)å_ç]ʧ½×?÷kRßÁêÑýð\³•b%¼©AÝsÁö1±»ç£}ëúÕŸ¡¦‰ô7ô:è_ù¯ëu7«o¿\ÛÞ~¹Ýzos«‚¥ìs†èîB´sଵжFÙèå{ø9-”×àÖ·íÍçÙ+'‹çòÈ }G¡ô¶¡½Ay»Z÷ÕÐÓºËD‘oéÜàçA0c€žFLR3‹¸wG44ÜŒòoO`¼X™`™öûÌt±WÇ-ʪC+)qÍÛ¶é š€i Ý·7Ÿd¬ž/ŸË&æóì•“Åóùd·wäÓDÝ®W[}—y]u¨¤ªª©eTÑÊ&¥4òÆö¼^ÀHÚŒ´H9ÉVúOMY4­¶K}Š‹›C5D•S¹ò¾YgšC—Ë$’>G“ûçpê)»›Ï²VOÏå“syöJÉâùü²«MY-z’ó¨èh·7KÞã¤gÞ½ÛíË "îI-nHî@Ï*á@gKIZú6\쮚8į?rÓµƒ÷aÝ^“syöJÉâùü²Z×5vˆÓšªåk¹Þi« u§}Ì*i.5’Á½ l›/…ì=Ðh'«#¾UÆæóì•“ÅóùdÜÞ}’²x¾,€Óî’h{†Ó«¨îõ3>žZIj%¿×ºyiäÙÛò™¶ß -tâX q8œ×NJ¹?¹Všš9 Zøébžšžy`¥©e1Ì šž76)ƒ0Dp ½@µno>ÉY<_?–MÍçÙ+'‹çòÈ oÐÓDû ôÃÛ/ì©¿l½_ÓÿàôŸôU¾™ÓVM5Ò} EÍzVã-ηæ¯~ö¦\o$î‰ÙÎÈà08¦îo>ÉY<_?–XéúZyª"Šçeq¦pl§£ç®!®ÇëÜx=§‡…Õ[5¹¬u=t„ÔÕœÁE4Íý•7}#>çZ“ÒúÊï⪟&²no>ÉY<_?–MÍçÙ+'‹çòÈ })¬®þ*©òiÒúÊï⪟&²no>ÉY<_?–MÍçÙ+'‹çòÈ NŽÓݹöãз~œèîŒç]Yûy½Ýìlìz~9Æ{ÙÇC.€äýòÉPÍ5}§ª}Ö¢ïÎéb¸ÁPʪ†LöMÀö€Ƹ0àw<Þw7Ÿd¬ž/ŸË&æóì•“ÅóùdƒUÉ·&ÓÛh­ÍÒ7z:z;t–¸Å =‘ϤyÚ|2º-—LÇ;."Bì¹Îqâç–éÉ÷'W*ÓSS£î-k㥊zjzè)jYLsf§Œ6)ƒ0Dp ½@¼îo>ÉY<_?–XèúZ®Š*È.vS͉Æß8ÚiƒöG:Д‡ÖWTù4éH}ewñUO“Y77Ÿd¬ž/ŸË&æóì•“Åóùd>”‡ÖWTù4éH}ewñUO“Y77Ÿd¬ž/ŸË&æóì•“Åóùd&Ùé®zæ‘嶺´GGYNòèÜXøÂÓ‚G ª57&š'RèËf޽ÙyÕŽÕºæT¼êfn·Q˜£îÚð÷aŽ#‰9ÎNO²no>ÉY<_?–MÍçÙ+'‹çòÈ YrQ§+´Ý\K¡÷FéæX(…ÕÕRó8ÞÙ#…ílÃh"PwŒ8p.ÙÁ¢Ð\ŒQÓê›î£ÕVÛkYu·\íÔUõ’¢Ž5µ¨sc|Ò=òÈ÷m´ä’ç—:Îæóì•“Åóùe†¡×H s²íÎýÜméû§l—cõîãÇÀ€¡Ó¼šh?z§»Zl»ŠŠNq̘ꩤ‚‹~í©¹¼/yŽ £×»kx:‰ ò®Q ‚W2g†Ûê;˜¢tŽ?6¦êkA'î%Ô÷¦¸µ×+ àÿÉóùeù¹¼û%dñ|þY¥!õ•ßÅU>M:RY]üUSäÖMÍçÙ+'‹çòɹ¼û%dñ|þY¥!õ•ßÅU>M:RY]üUSäÖMÍçÙ+'‹çòɹ¼û%dñ|þY¯j».šÕÛê.ö{몭Ò>J*ºZZêZŠrö<2hC^Ðæœ9¡ØvAÀÅlz“Øà°S7FÕó}?OSMm€ÚêÌQÅQîv½…»2ï£ q$’x’NßGÒÕtQVAs²˜&htN6ùÆÓHo²8Ö²no>ÉY<_?–@h4¼›rm¶¶Üí#w¬§¬·GkWSÜ*ÜÊF¦C¥Út,k°à#-Ú×-iN€äýÔUtói«ìòUÖÁ]5lñ\e­5!‘µNÌí, ÙxÙpìï;›Ï²VOÏå“syöJÉâùü²“IÛ´ö•¶Éo±YnôÐÍQ%Tî}¾²YgšC—Ë$’5Ï‘äþùÄœ:€ ߥ!õ•ßÅU>MdÜÞ}’²x¾,››Ï²VOÏåúRY]üUSä×űïžíqªÕ‘Bè)ck§¦’§5Ó’{A8oW…gÜÞ}’²x¾,››Ï²VOÏåÑ@¤éj¨Ÿ,7;+£dŽˆ»£çÓ\Záúöx‘÷MÍçÙ+'‹çòÈ h¢no>ÉY<_?–MÍçÙ+'‹çòÈ h¢no>ÉY<_?–MÍçÙ+'‹çòÈ bËfÝÆÇÙíÒîãdMt´¬‘Û-hkAs'Ä÷“¡l~ÁZ>!ÉY77Ÿd¬ž/ŸË&æóì•“Åóùd>…±ûhø„_%:Çì£â|”§éi樊+•Æ™Á²žœ¸†»¯qàöž“syöJÉâùü²BØý‚´|B/’ cö Ññ¾Jɹ¼û%dñ|þY77Ÿd¬ž/ŸË 1ô-Ø+GÄ"ù)ж?`­‹ä¬››Ï²VOÏå“syöJÉâùü²BØý‚´|B/’ cö Ññ¾Jɹ¼û%dñ|þY77Ÿd¬ž/ŸË 1ô-Ø+GÄ"ù)ж?`­‹äªÚ›­Ý•AFê ƒäßcq@öãtðÇçyRÞ§;ïØ_!ª}ŠâŒóÄŸBØý‚´|B/’ cö Ññ¾J¬é SìTgž'HjŸb£ø£<ñgж?`­‹ä§BØý‚´|B/’«:CTûÅç‰Ò§Ø¨þ(Ï<@^ÒÓÓRC¸¤¥¦¥‹h¿b[Kˆœ4<À¢‹-›wg·K»‘5ÒÒ²Glµ¡­ÎœÞU!ª}ŠâŒóÄé SìTgž ,úÇì£â|”è[°VˆEòUkkµSœÛLd“þhÏ!ÉN…±ûhø„_%dÜÞ}’²x¾,››Ï²VOÏåúÇì£â|”è[°VˆEòVMÍçÙ+'‹çòɹ¼û%dñ|þY¡l~ÁZ>!ÉZÿ+TôÔœ‹ëˆ))i©bívæýˆ!lm.4’pÐ8ðÙ77Ÿd¬ž/ŸË-?–w\™ÉN²¦’åhsäÓW96# ˜9Ìm3ƒðL¤ÝÇ=}GñØáô?è¯{›ùß–ƒØáô?è¯{›ùßo”ÎTu-“”ªÝ'j¶CEEjÓ5†¶åSFÚÓ,1÷£‰µ0–ŒµÌÉ%Åäw `2í)ËÆúëvŠ÷GΩÇkôöH¨(÷UUÕ7*]öÄ“:8ø‚Fd ^ó‚vímÉlºÎù¨úsšô®¨ÒûŽi·ºÞÈçïö¶ÆÖ6±±œz`´¿òp¥u,̨ÔÐÕI¼±MNÊ‹P’œ¾ÙJi‹fˆÉóXåkžK˜[6œÈc@kf´¶×UÛଥšÝqžÙ_IVƉiªa8|n,s˜î¤9Ãs65«re¤[£lÛ·ÖÙd¨­–®NŽ´Ão§a~Y1¦µ­nÓÜ÷œqqi@@·~ën÷ÁþÕBž [¿u·{àÿj¡O@kšÿXÛ4]¶†®áeT×ŒÊ JF4ËSS1Ã#i{šÆð$½Íi㜫Rò×¥j%¡¢Žß}uÚ¦ë[k–ØÊFÉQM-6êK¶XðÆ»:G?l5ÎËE¿,—”;ºÝQU <–Û­=ΟœRŠšy_Ð1Í sw‘¹¯{KCšxŽ8Z‹‘gQÕéÛ­££¶]¬×ú¦¾Ùa¦¥¥UÄ!{"œö1‘ìI+¦9iÛÐ5 #Ëæ¡»hi®ÓÛèæ½3F×jEK@[t5²ÓµæWÕ°fÑů'®ÕÉ…ú»Tòu§µʇ˜Ö\­ÐÔÍÆÈsØÓ0çaŽÎÓAvÐiXv@æZ±ò—NÓó:ÝS5}+ôf˜˜CD {™QW-C¦k‹Þ@”°4‚26³ûÕÓy6ÓµÚOF[tõuç¥AO4S6”@ÆÅmkqê`q.s‰sœFËvXÐ65Ãû7Pgô4êzaý›¨?3útõ®jclÓš“NY.pV3¶ ‰)i«C)b™¬ÚdRÈç —Éű´\Aå±­[•=K®ôuEŠjÙ­µBHêm÷ Ô5Q¸:9£=`‚0vK\Zçæç( *^\tô—ÛC¡’²’ÇQQyŠJÉ­¢hªâ·À$’¢ £ŸõŸM‡69KË\Ü0ŒœÇ—m;¢®¾§Mj˜$‚Å¡†“›A,ÕVéd ç ÝLæ´3!Ï9Ž ÉÁá~ä>Åp¥ÑÖªKŒÖû>šµ\­Ž‚*voª™YK¸|›c dœ]!vÜâH Éß#rŠª‚ë5ŠºŽ¢Ä,’Åm°Eo}DDbYgœ=óÉ#Àh8‘È'd»2óËf·K¨!Š•ÊK4–Ø£eb”Üß^ͺvÑç͉n\G€HÚtÅÅtÇ T6ª½'U]é¬õÔÜÝÌÌ])-$NŠÜì H‡›±ØÃr%Æ_“Åv¤@Ò¿¸Û7ñXÿ£bž i_Üm›ø¬ѱ=s>TõÖ¥²r‡£4>›´ÃÎ5$“—\ê¢lðÄÈX\ö¶Í«ïPÙ£µ]í5ÕVho”qW²óš]²ÙZa’@ÜZò×wCã*ÛØùK™Ñš~·TÍ=.œ¢½QÌøh„O«eÅc‹I{„E玠¶NH9*n‚­eSë,SºTVØú7NÃBùCH/šy¶¤–Y²Ì÷mfA%„@1V^ll¿Ç]ù¼ÊÍV^ll¿Ç]ù¼È z¯Ù2ÿ×?•cY*¿dËÿ\þU¬Ûu8šÑÕqº*‰ašF9±Œy$]“Üàõ€xŒç€Ï§¢¹ÒÇRD1Âù¤l@1¢@w¦8ë8ŸpJÁ•,£‚šK‹¤m<3ÇÌ@Ã¥×Äzºóž8à>Ž—Ím'>ý•<{[¯Kºgãœ}Ïu²""•ýÆÙ¿ŠÇýõJþãlßÅcþŠzJå7”(4PT\4ÍöåKQ$PC-¸Ò¼ËQ#ËYq>fK$‡ÙcÀç<ŠßF-3Û'Es¿3퇵®•ÝGÍzKckq³¼ßu÷{½ŒþûgºS5žŽÔ×}gÔö½YGGOh§{im•¶É* mKÃØú“»¨ˆ¹û§˜À~Ðh/ âV¹è+ÿ97ý²ÿÈ}¹vãÌùù×=ØÆï¼ØÜíñÙÝmc¹ÚÏt€ÍOË֖Љ¶ßc¶ÖÑ\«-UŽ‚-‹“(8‰¢Bö–¹Íß60@ëf«å¶Ã;ÝéÍGSÍìÃPGºe0ç6£·þxÍ©Æ6[ó7ìËóFüÏÓlë”Ý[»5ºÅ&¯ÛµÙ-ך++[mÙž>‘kØçT?z[6Ã^ì2,œŽ£oè+þ²ýO;JýƒüëõÏü¿üH¥d¹ÐÞ¬Ô7›dûúúxêi¥Ø-Û‰íc°àÈ à€TÅO¢l­hËœç<뢭Ôô[ýÞÆ÷uYµ³“³œã'ë*áL~ÒÔûáSý<Êz¦?ij}ð©þže=¨rƒÊ ›F\¬6šÊjÊë¥þ¡ôöê:gBÇJæ]ÝÍ$qŽ.c@/ÚsžÐÐxâž«•Ëc'¢¡¡Òz¾áv¨³IzšÕ¹°ÖRS2MÙÞG;ã.y~ÓC#Û.ÙÈ—\r¥¤kµ™–˜nÔtÔ2m²¾†ºÚ*ékbsp€|r±ìxkØøåaq†4«"÷}2ë5v—×ÓCx Ó/ÓÒVÜíÜôŒÛæI7ŒÝ–8–µ¯2401¸;$¸ Vò­hÓ1O_qÓÚ¥¶JHé$­»ºÛ¹§¦/ `-™Ì–Bݦ—¶(ÞYµ‡àZ5Í+ËD•7{¥’égšáxv®ºY,Ô˜Ø×ÏOG$t²>y[!®ãÝ·$–õã(܂í.Wš›Ž§ç]+n¥¥5 du”RÓ‡l¾–V¹Œ’<µÒÆØðüÈfØ-ˆ;w•qÝn‚Ñtº7PÜonŽºÁ¾·IÏb’Dêc>ÑÙtL{¼áßà@_“ýWh×:ݪ¬O™Öû„eñ‰£Ø{ \Xö8xZæ¹§‚FA#ß*OôëtžŽ·iñS S©#"I¡¡†’=Î.{› -k#Î8geÇ.7ÈÙºƒøÓ?¡§SÔ ìÝAüiŸÐÓ©è s_ëf‹¶ÐÕÜ ¬ªšãq‚ÙAIHÆ™jjf8dm/sXÞÄ—¹£ Ž®²Þio3> ô[è ÃdŒ9¥Ì!ÎkÚsƒž4WNN5-Â例=V¸†§SX+k§§ž{;y†ª=Û lÈǀƆl¹Ó9ÙÚÚ.È Vÿ({'Ot¦?æ_i½=¼æ¯çÜçŸsMÆ6¶=?qÕ®;{Uíÿ—­§ZÍIm¾Ú*­×ZKm–h"•ô¦¦MÎ1Hö:2Æ<‡9à·Fuoòd¶v¿Ð¶Vs~Õz k™·o}Ïù÷8ÎÖ67½ÎëÙá¼Ït¯kyª¹ê—j»¶«†KÄúšÕ|©4¶Ã;™A £ŽFéžæ—m¸ºB÷¬4cˆ3Fß{eÓt—¾‡»Ù¹Îßù•Ö››ÕE²÷7»'g;;CAï«„D³cý¸¥ÿµ?ž«P¾ý!¨ÓðOq8W!pŽèÛ1‡Ž ðNÒ od•–×E¶†úÖܨ®µVªém­}<ÑÐÅ#ß. ¬.Äð#.dœØŒ=Ž9¡åãLÓÙ…umÞªž†Ýk«½Üiè㊠~Ö˜‹âtÆCàâØ·Û ãiÄÉìÜ™]î—}#£mÌÕ4¶{M¥¡×{7¸ªã’(ÜéCŒUr9ó0ÊZæ1„2<=Ç Ôö=o,×z¿b×{·Y¨¯Mu·jy:9¬c]Nýèl;mcrÉprrz€M'-zV¢þëK­÷Úv³S?L>²ZFóv× ì7h<— \h%¸As ºbä>‚¿ë/Õ·_Ø?Í\ÿÌÿºò%/옿ëÊ“~·ýOýE)dÅÿ\~T›õ¸êê( kœknX´ÎŸTÓÞhnì›NSÒUKbŒ:¶‰–˜:@dcàǸà5Ü8•Ñ×8å’K&¸ÖtÛ¤¿æ}%²ñC²ÿùJ›xÙ x״û‚L°eÞ”žß–-3o¹]mí¡»×MAy¤±BêX£tUÕõ<Þ ›q€w›Â̓Àñ וë5³¡©+ôö£¥½^n3Û©-TðÓNùaÆÑK+`sÔa®d®247híÔCȮƉ ¶»Rïu.ª®k»è~eY^$.Ú’œHaa ÙìâÐᎠÛê]ªu“6[Ö¶£¹óš‰Ýp§¬°Æê ˆ$w bcÙ4{¢æH'/¹ÎîCÝtÅÞ;õ‚Žï ʵQíš[+éê!=E’FáAwÁë‚ ²Zç&Z[´gÒ½+YvèÚq;ª=Ûø“€8ì°ge­ÉÙhkrq•±  XfêãLþ†OP,?³uñ¦CN§ 9÷-ºê¿AÑiZº*hj#ºjj;]c]M,ïm<¢Bó#;N“¸ dðÙ$…—–;Y- º‚Ï}«¿V]km"ÌÈàmDUlÛ¨{åa­,9l§;c!Á·¼¦è®Ý;Xÿ”ù‡AjKßëÍþãoæ^˜límzn8ÇQ\ú³±þ–{»ï½[kª†¦¹ß#¦ºYEUetlcá’ëKË LsdÛhÈâÞ¬¯²6Ñå·x©&ªÑ§H²öLTد¸Š# fâA÷ZHs†3Ô´Vº´j»½òÑGMr¢¸Y$„US×SnŸ»š=ä2“€öäì»fFCØÃÁp®[ù¸Ûy6¹ÜìµS^îišk·[¬‘ÂgJÅW$ÑÅNX8»æma ¹Î9'´ò¡$Ó:§Têjëì×{–¡’”K#©ÙlTÐî¢Ë[ÀÈAq{ÆËI=˪ÐymýÃjŸ´Ûßô [òÐymýÃjŸ´Ûßô @Gìz¤ž«»ºMBÖÛ[úÓXKɯiŽê÷1ÖVïÑ^Ú+ÿ‘Z‡c‡Ðÿ¢½îoä ~@@芯mÿ‚‡È§DU{h¯ü>EO\?KöBت´í-Ee¶ûs­}Цý#¨mLœÖ™a~Zê™e¢;º“eÀÛÛ°ôEW¶ŠÿÁCäS¢*½´Wþ "¹UÛ– ©yJ¡³Ú©¡¥Ò¬Ó=´ÖÞªiLæjåÛQÆÙXøÆÎÓrX÷í‘ó-\sVö@i;}Šªët±ê: Õš–ù4Ó¾Zº‰Û %w3˜0÷³-{˜ì;€88©ÐÚ,õUó<õˆw²5™£o!±^ãÄòÇÑ^Ú+ÿ‘\Ÿ—ý3UÒ¼ÏLjùº:Üë¸ÞPGOέ­ÚÍt;éY·ã©îÛnËN³oKËž©ž¶š+6£–¢;4wÊ  Ýhd“w´ì‰ÎpÚqgs(À<€âÐ7ŽˆªöÑ_ø(|ŠtEW¶ŠÿÁCäW$å?–Ú‹Õõö-9YO©tÍE5ÔVDæS2¤°Ç+Ì3–½Ži-7¹ÁØÚhnJ²¨å’‚תoÖ‹µÈÕRVÚ-ôv¨¨bmCª«¡26÷9tR²â\wLnÉÒdI芯mÿ‚‡È§DU{h¯ü>EsÈ9pÓ3Ü­–˜,ºŽkµ}ÆákæÒÆù`¬£ 2C!l…œCÙ‡µÎŒeï`k‹wNOõ]£\hëvª±>g[î—Æ&aì-qcØáákšæœ ŒþˆªöÑ_ø(|ŠüæQZíw)d½ÎÝé5Õ9245­G³écÒžÿ}X*ÍYû–»›ý‚€È-› sµ-Á»C àð㽸Uí¢¿ðPùg7ëpÿÔÿÔV4ˆªöÑ_ø(|ŠtEW¶ŠÿÁCäTšé¤§¢ž¢YªäŠ7=”ð–Ê@ÈcKÜÖ‚z†Ó€Éâ@â¸&ì‡ÿ›v]A¬ìõ‘3UTVÇ`¡´Û÷Ò›¿dFçïÜéŸ#ŸMÄQwaÙ…¯@w.ˆªöÑ_ø(|ŠtEW¶ŠÿÁCäW<²rá¦n•t,è]GCGWyŽÃÏ+)cÜŸ“šÉðÌׂweÛ½€à{­žé4.gUt+m–]FÇßiëdµ2¢–8ùÜ´¼e§cŒ›;{8py".;;Àö¹­¡ôEW¶ŠÿÁCäVAj1[(­ô—™éb¤ŒFÓXç<´ ­¨Ïð{Øë+IìzÖ÷~Pù*¶ê«åºÊ™'c„ Ù†PÉ\ÀøÁ{Ü “¶AÚkˆ%¤ôˆªöÑ_ø(|ŠÅGoš®Š*È5EÀÁ3C¢qŠ´ÒœŽu«EJþãlßÅcþˆDU{h¯ü>E:"«ÛEà¡ò*z tEW¶ŠÿÁCäS¢*½´Wþ "¹'#¼¹Óêm7¦ªmµ”w{Ý=Âhd¢·JêYßH÷"…¹|¯x‡aù s\v˜×‚Áq_ˆ™´R\¤ÔÖ]G§j(lÑ^…},fy餗rÍ–Å#ý,ad¥„Œ€‹@è}Uí¢¿ðPùŽÊyÝ5EEöª«›¼ÈÆHÈÃv‹̘êqï®aÊ+ÕÚv ,²iêÍ=½ÕT6›™Ôá‘2’xÞ÷ÏñJavÈiÉvÁiÛháž¡u=.¯°6ûo·Ü©-óÈáG%l"#Wôµ fK„oënØkˆÁÙ‚@³©¶ÔÍS,ÃQÖD$yvÃ#‹e¹9ÀÌDà{¤•¢*½´Wþ "§¢®Žß5]Uj‹‚f‡Dã#i¤79ëYz"«ÛEà¡ò)¥q¶oâ±ÿFÅ=¢*½´Wþ "Uí¢¿ðPù=r}YË5-ª×Zѧ/¶›„ö«­e‰÷š!5Ïp1‰7ñ‚ØÞ²"æõHš-F+e¾’ó=,T‘ˆÚckç€Öµµþ{ec芯mÿ‚‡È®mÈG)7Ýyz¾Ñ]é-°GoµY+"4±½¥Ï­¢Ê´÷dpn0@ë$ñ]a¢*½´Wþ "±R[檉òê.’:"íÔ#ºk‹\?YÏÒ>â´P4Çí-O¾?ÓÌ€tEW¶ŠÿÁCäS¢*½´Wþ "§¢DU{h¯ü>E:"«ÛEà¡ò+B¤å¯JÔ_Ýiu¾ûNÖjgé‡ÖKHÞnÚá†í’á!k€-·È#at:~^´|´PÜM¶û¶¶ŠåYj¬tl\™@éÄM°ìµÎnù±‚X8›¨ÓÚÅ =æxŽùÓ>pÖç9Î9Ìe¸ËÏPAc芯mÿ‚‡È®ly}ÐðÚ*îuô·ÛtPØ ¿BÊš—ÕÒË …»°pwÎl}ÞÃIp{K£;Å·è­oA©î÷Ë ·\­7‹²áA\Ø‹ãG¼‰áñ>HÜÜõXuEÁѲGD]º„wMqk‡ë9àZGÜYz"«ÛEà¡ò)¦?ij}ð©þže=¢*½´Wþ "Uí¢¿ðPù=q½eË\t÷ûU§KÛæ¨kõµ6˜¯¬«¤7q?²šð[$eÑ€d;.,¸´³Ij4Ôµ‘ÇyœÍW ’J‡5›À@`à7{=LÒøV>ˆªöÑ_ø(|ŠåW>^¬Réš‹–ÛrÕ¶«µf¬®œÖäú=ÒÖHe`îK¾hØÉhE:"«ÛEà¡ò+•?–‰,ÚÇ”ê}Wgš‹Oèèèß D1±óHfnÇ+¶Œ®-1á­ nw¥‡‚ÞôV· Ô÷{å[®V›ÅŠHYp ®lEñ‰£ÞDðøŸ$nnzžH-9†@ºèНmÿ‚‡È§DU{h¯ü>EOD]%¾j¨Ÿ,:¢àèÙ#¢.ÝB;¦¸µÃõœð-#î,½Uí¢¿ðPùÓ´µ>øTÿO2ž€‰l³RÐË ¼ðÔIgRçº3H$y;-rÞÀÁ*Ïæ?èÿùŠ:áVN\fn¯¬·jY(è(iµ  Û§¶É.i-´ñͼ{÷ùcÀs‰ÙŽM¼`5dûóôüÄùú?þbãòòÆÛ—&·ÍW§t¥ô:–Å%Úß-\0¾–¥£lËÎ`1¹¹’=’†ƒ²ÒFëÉ…ú»Tòu§µʇ˜Ö\­ÐÔÍÆÈsØÓ0çaŽÎÓAvÐiXv@kùú?þbÅWQIKK5UCéÙ ,t’;4 “Ç©|*ÍYû–»›ý‚€»=†¹Í»C ¿;ßa>cþÿ˜±ÍúÜ?õ?õ%®®i§× ú)ªdc¢½ÏHÖ3gb0ƒÄœ¸ÜsÇÃŽ Ÿ”KÍVäÿQj (á’ªÙjª¬…“XçÅžÐà$e£8 ã¾9¶rõb‹LÓÜoVÛ”Ž¢µZk5e æ¶××±ŽŒ¾A+Çtó6ÈCHâNBªôEW¶ŠÿÁCäS¢*½´Wþ "µ;Ÿ)ÖË^¤¥µ\ìކޮòË%5Ö¢±ÒÍXö1¬kž&s ‚Qì‘é¶{¥«ZùkRr‡ í:fß7@êI.õ•Ôaž:V;bZwì€é -xÞKÂà:¯DU{h¯ü>E:"«ÛEà¡ò*z *ßA8«Šj{ƒç•®{"ƒ‹ZZ ɇnoÃöV^†¸{b¯þkäÐ~ì­Åj?¤§SÐ)-SRÖGÎs5\‚I*øw€€ÁÀlìõ0KáXúá튿ù¯“SÖ‰®yO³imYM¥ªïz¾T[¥¹6†ÚÈL¦ h–H÷¯;2{o"7œc m pöÅ_ü×ɧC\=±Wÿ5òkMÕ¼«Z4ÌS×Ütö©m’’:I+nî¶îié…KÃX fs%·i¥íŠ7–maÀ8Œ7^X´Í¶Û¨j*hnüúÇyŽÎûHŠ>Y4…¢SÂdFH^ÃÀ¹¬y¹@o pöÅ_ü×ɧC\=±Wÿ5òkGôbÓ=²tW1»ó>Ø{Zé]Ô|פ¶6·;Í÷_q·»ØÏï¶{¥ÑÐ:á튿ù¯“ZŸ+¶ÎmɆ´©©»OWP4¥Õ‘G+áàÓLKˆ h'‹YǨgÝ[ÚÐymýÃjŸ´Ûßô @;>‡ýïs [òæ<€Gs¨äEGIMzdl¶0ïi9™l™Õ_žÇPïõð[¯0¾x5WÞÛ~Råp­#ØõЩ¨{oç;Ý]¥öú7cæªZþ7§Òïvv;û9ÚÀëœÂùàÕ_{mùIÌ/ž U÷¶ß”€Ð(y¥el­¿Í5+tt\ÑÃL#{ٞꡯ.pi# 0µÀ9=K\¼vœæ½+£j4¾ãšmî·²9ûý­±µ¬l`g˜-rïÈ?HÒ2Ÿ·ÊM ‘ÞRÒì<î¥d›òvý#ö6}®pÛ]G˜_<«ïm¿)9…óÁª¾öÛò¢~ÇúZ‹F²µ›Õ¶ÝK«(©YU¦Ê)a¦ª¥ºazàØÈÆò3—=ÛN3;#5ÃÚ놤»jŠÍk¾½V^m7ªyk*(Xö:6È áp‘À7i¯h Ú|„9Îê<ÂùàÕ_{mùIÌ/ž U÷¶ß”€çZ[‘^†ÖÖM[6¥ç5Ôw›Åâº6Pî⩚ác-ŒbcÁÆBNxŒðÛùÑ^‡|›Ú´wIôŸGï¿Î·æògËé6Œmã¬õgÜVÜÂùàÕ_{mùIÌ/ž U÷¶ß”€¹Uš³÷-vþ%7ûaæÏªûÛoÊXªí7zªY©jªŸ Ìtr7Ñ–‘‚2ž¤Å7ëpÿÔÿÔV5]_ â¦F:*-EHÖ3gb`AâNNÜŽ9ãáǘ_<«ïm¿)r¹„äWµCùËÎûIéOþGcžóݯþáÝìmÒÚÇyt^a|ðj¯½¶ü¤æÏªûÛoÊ@s¯A_ùÉ¿í—þCíË·gÌιîÆ7{ýæÆçoŽÎëkÎÖ{¤ÐœŠö¯èoÿ9yßi=)ÿÈìsÞ{µÿÜ;½¯ú[Xï.‹Ì/ž U÷¶ß”œÂùàÕ_{mùH >G´$œéa¦b¾Ís¶ÓI ·Ç%;#0Ä餗»pÉ’Be ¿¹i fÓ´]ºªna|ðj¯½¶ü¤æÏªûÛoÊ@\¨W÷fþ+ôlQy…óÁª¾öÛò–AEsŠÙEo¤·ê*X©#´Æh\ç€Öµµ!þ{ejŠ›˜_<«ïm¿)9…óÁª¾öÛò£Fò%’‹MPÖëË•M>œ¢ºC@ú*FRTE-p,’FHíÆ’æ‚ „„»l·f6ÔOØÉK=¡ÔQÛh5ˆY*¤·X…8¨drE43¸o™÷Ѓ#É"F##mvîa|ðj¯½¶ü¤æÏªûÛoÊ@hÚ¿’ëÞµ‚ß±Öw8hõ ØQGddt{˜#s]L#tŽyÞ—¸¹òHñÔÎvžNô¥V¢ª³E{š¾Ã€Ùéjc.šÝ8Ó–6ŸÖö€sÜ—<‹a|ðj¯½¶ü¤æÏªûÛoÊ@\¢¦æÏªûÛoÊNa|ðj¯½¶ü¤­+û³ú6)ê¨Q\â¶Q[é-úŠ–*HÄm1š9à5 mmHƒÞÇYXù…óÁª¾öÛò+ÏÕ}Ûp7›jÊ6WCÒQ2å5—yYW |s2ny(™¦¦f‰FÄÀn˲Çmw=£˜_<«ïm¿)9…óÁª¾öÛò#ü—ú]nõÝ9Ò]%n´ÑlsMÎï˜Òó}¬í»;~›6z²îµÑÕ70¾x5WÞÛ~Rs çƒU}í·å .T 1ûKSï…Oôó(¼ÂùàÕ_{mùK$W:{X¡§·ê(ŽùÓ>phLsœçæBÜe稠€µEMÌ/ž U÷¶ß”œÂùàÕ_{mùHuè+þ²ýPûuýƒü×õÏüÏü*¢›±ëwf·X¤Õûv»%ºóEekm»3ÇÒ-{ê‡ïKfØkÝ€ÆE“ƒ‘Ôzç0¾x5WÞÛ~Rs çƒU}í·å 9F¢ì|¥¾Û⢫Õ328´M.–iŠˆ·OQì©âóÀº&ƒ^ ÃÁâ7¾Lt+tl·z‡>Ä$¹IÙ¬0Û)ádlÀhkKäy.sÜL’8 ¬44g7œÂùàÕ_{mùIÌ/ž U÷¶ß”€¹EMÌ/ž U÷¶ß”œÂùàÕ_{mùH Zcö–§ß ŸéæSÕTW:{X¡§·ê(ŽùÓ>phLsœçæBÜe稠±ó çƒU}í·å .W«ä>GßÛWK«æ†ÚÝlÍ`(_@Ç—TpÞÆé6#-î Øxp”ì¹½/˜_<«ïm¿)9…óÁª¾öÛòŽÃØïIg³TÙ)o6†QôuÊŠš©ºn‘w;kØÇTU9Åòn™#šB®žå!ìw¤‚¬KæÑQ¿·Zè«%¸é¸+gg2‰°¹Ô¦g:87±±¡Áñ˃Ç'¹Ì/ž U÷¶ß”œÂùàÕ_{mùHuÊ"0êË–µ™ºª²ÝG«©èùìÒÇ#›QHÁîÿàúW:0Üæ JÖ’Ó´òc¡[£e»Ô9ö!%ÊHˆ†Ía†ÙO #fCZ_#Ésžâd‘Àma¡£9¼æÏªûÛoÊNa|ðj¯½¶ü¤Ê*na|ðj¯½¶ü¤æÏªûÛoÊ@JÓ´µ>øTÿO2žª ¢¹ÓÚÅ =¿QDwΙóƒBd{œç8ç2ã/=@u˜_<«ïm¿)r¸Ý§ù-úî-S¯š)"¾Þï l4 a¸ÀȃZç¹ÍÌ[AÎcƒ‰Áh}/˜_<«ïm¿)9…óÁª¾öÛòëLò+Í.Z²á}Ô¼êmSf6»›mT<Â*‡¸8IY$fIXj\ÁÍ h.ìòV÷ɶ®Òz2Û§«¯=,ê x©¢™´¢6(£llkX S‰sœKœâ6[²ÆÊæÏªûÛoÊNa|ðj¯½¶ü¤ʬ՟¹k·ñ)¿Ø+0¾x5WÞÛ~RÅWi»ÕRÍKPÍTøfc£‘¸¶Œ´Œìõ 6)¿[‡þ§þ¢±ªêøo21ÑQj*F±›;órväqÏ8(üÂùàÕ_{mùHÝmdí—F_4ç9æ½+n¨¢ßîö÷[ØÜÍ­œ¬mgÇX\Ч±ëyf¸Ø£Õû»ÝºÍEzk­»SÉÑÍcêwïCaÛköKƒ““Ô:ç0¾x5WÞÛ~Rs çƒU}í·å 9u÷žÕ•šŽEGÏŽ¡‡PÐÕÖZyÅdFcÅ3ç´ÉF C rÎììaÙ´G!òi{þ‹«‹WÍWmÑò\…¾†J4¾*½¿O vL/9~6\Àôçô¾a|ðj¯½¶ü¤æÏªûÛoÊ@\¢¦æÏªûÛoÊNa|ðj¯½¶ü¤¡û²µÿ¨þ’OU4T7:{”uòÐj:¹bÑÆ&æ48´“ÜHÞ9cz×ÇC¿ØMUãVùÒåsŽZù6®åÚëKµ5®ZwG%m¨U6)ÁÌuP=’E$s47‹ÜÇ5Ø,ôÛ[wC¿ØMUãVùÒt;ý„Õ^5o 9F¸ì|¥ÕÜ›Wªf¬Ž¾ÕGBÚ›µ­¯£}+%=A{wbGl¾fì!2aÌ/ËvšÞIí—.T,Ü \ë·•ÔtñšÚ()›ulMs`«tn.!ñ‰e Úsœß™áã`ííÝÿa5W[çIÐïöUxÕ¾t€çVÎD©-Úú«QSÜ-§ªÔ/¿Hj4üÜDŽÆUÈ\#‡z6ÆÌaã¨<´ºò¦èwû ª¼jß:N‡°š«Æ­ó¤ÊÐymýÃjŸ´Ûßô [/C¿ØMUãVùÒÕùZ·º‹’}mVÛøIÚÍÊ-íMdr¶6ºûG¡Äœx .;>‡½ï[?)])s^ÅÏ¡ïDûÖÏÊWJ@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@™Ë·ÎC^}­Ü6‘nkLåÛç!¯>Öî?›H€¨ì\úôO½lü¥t¥Í{>‡½ï[?)])DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@Zg.ß9 yö·qüÚE¹­3—oœ†¼û[¸þm"£±sè{Ñ>õ³ò•Ò—5ì\úôO½lü¥t¤D@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDD@DDiœ»|ä5çÚÝÇóiæ´Î]¾róínãù´ˆ ŽÅÏ¡ïDûÖÏÊWJ\×±sè{Ñ>õ³ò•ÒD@DDD@^@ìˆì ×üòÅ}ÑÖKF™¨ ·ó}Ô•”ÓºWo)â”íÌÑéžq€8cì¯_¯æ§f”—²{Vàuó>÷ú æÝÙ“ÊTÍa°hü :Ÿ.º~‹ì„×רZú«FžfZó:i‡YÇ~R¼{¦moç¹Ìá´?z| ³èÚèíÔ¬i!€uß@vmQËî·µ0˜-vžžc×ö% L•£ïvM“Kã>µŸË-?RÜ[_=βRÖ¬_²>€ë¿åI¯Ãrm`âÓùe ~ÊþPØì2Í¥OÙ¥ŸË.=_Jædȵ꽦IÅèª^ÊnQ¦´º_îRÏ唨{&¹Bs€}›MîSOå—Ÿì³4ã#¾?"¹ßÆÜpAQöCë)cÚ’Û§Á÷ ›Ê¨µÝ’Öˆ­ztý˜&ò«ŠÓ×7w€P+jrü’~l=“û5ñiü²¯©ì¦å '`Y´¿Ý¦ŸË.:jØ÷´¨òêm/e§(²7/²éAö)j<²àÛL®ÎÀTán{Õ¸PúÊ®P$8è}/ñiü²ÈþÊNPš2,ÚcâÓùeÀ)Xèäð«fB%ˆ`¤l§ì¤×Òpu£L±M?–_RöPëöõZ4ÏŧòˉSм;?ÔWÕE9Ë'e7(-,ú_âÓùeõIÙM¯$~$´éö)§òËŠš><øŠ®’šhe៸ Ò±öIkEµÑºw8õ ¼ªŽþÉ}p$-m«M‘Ÿ[ÍåW‚¢FLJ/¸*÷.?Þ_Ù'¯Cr-oâÓùeý“Úý®ÇC韋Oå—$uD&>÷ÂeSØNF⓲_]K«V›bžo*§ÈÍdžÓÙÿüyUç^ 8ÉøBËÜÊvCð„~“²[[·8µiÏ‹ÍåU}we&¼ƒ;0~Í4þYr1ÒÆ\©®ð¼öOä@uŠÞ˾Rá'wcÒG«®’£ËªáÙ“Ê‘7 4ë:Ÿ.¸m˹È>⮥§2NÓŽÿéºË.Sê"6'Õž•]@¹ö`ò¥Hâ`ÒïMGSå×)±BÑZæJ;ʳT[iphýïyÕÙ«Ê 8è ñ:Ÿ8_Ÿå«ÊŸ°3âu>p¼ÝYäaG@zgüµySöF|N§ÎüµySöF|N§Î™‘éŸòÕåOØ ñ:Ÿ8OòÕåOØ ñ:Ÿ8^fD¦ËW•?`4gÄê|á?ËW•?`4gÄê|áy™™ÿ-^Tý€ÑŸ©ó„ÿ-^Tý€ÑŸ©ó…æd@zgüµySöF|N§ÎüµySöF|N§Î™‘éŸòÕåOØ ñ:Ÿ8^€ì>å¯UrÃÛOlÖû-'DsNoÑÐÊÍ­îûkknGç¦ãë=}ïç2ögêeýPìßíHf""ˆˆ" ˆ€""´Î]¾róínãù´‹sZg.ß9 yö·qüÚDGbçÐ÷¢}ëgå+¥.kعô=èŸzÙùJéH" ˆ€""ˆˆ" ˆ€/ççe=*{&uIpë½üòp/èðe;¤‹²OTHÖœb—ó8 ?¥à4›a§8ÓûŠòÔo-oP$u缦é‹Ó…8ØC¬øÝîFÔeÜ8’‚„¹ïî½ÕxÀÍÖPºVÀs£T^šÎÍû″¹ÇÏÝZuÚœ9çgÜï©U—­¼áÍøJ‰@üp€û´S<8}‘ßVUtÒ60á…K·FÖàãÀ¬¦0˜0Kzœ5Fü| ò¶¤–ä÷d®k7ÇdŽòÉ ªÁ¤ý€€«†g½øþ¥`Êb[ŸëR£³IÚ,wÞ…!ì1·aŠÝL7ƒ> ¾d#tð*H¥,vB±¦ªË@$uxP5P7þ ®m0Žÿ ´–V»¾i0r€Ù,јséG}|ÜéÚ×p÷;ê¶Ùp’à8xVZë‹^=0ïwÐ!k7G>¬jXÛ¶âÑûãù¤5.yÀïû«}¦fÑÃÔ€Ò›\¥ÅáÃñ©SQ9àÓð,´ÔÒ9Àlž¿e–® Þÿu]ÔP7wœ~5ŠËFðAÙwPï{ªâ°EŤ×A±/øýÕ2×Ô¼d« |åÄÄÜ„ÎÜl Ã$vU)«{Ýë_NžHÛž( Ž‘±ìàç©}ÏGÆp~­ÁqpöÉæd¬qì½Ù*cÃÆ:· û+®c¾>òû¯nÓÏÙXé"-~x 7º¦6›ƒÁî(*†<¸ ï*¶NæG‚‡QT2{¡ð "\ Û~G¹ßS¬6àçG|wýÅœ5ÎâB¼´T1ƒïÈ€¹§¤lMðxR¶ÖêÈŽËsÕûì,-ª/4qâ·5M·Nöx{Ȫ,¥.%¸àO¦Ï}j37aäx î\¦Ò7vòÖ~ñÝïúK‹\ã-¨ß4D@DDD@³?S/êƒÿfÿj^3^ÌýL¿ªý›ý©ìÄD@DDD@™Ë·ÎC^}­Ü6‘nkLåÛç!¯>Öî?›H€¨ì\úôO½lü¥t¥Í{>‡½ï[?)])DDD@DDáîÉû{%å×QLZÒ]Í»ßè±îã>ÈøË¹l¿ž÷ù¿æÑ 9¥ºCŒ~%*®wlcŠº ¢câêü~âƒv¤þ{è R¸Jüìç¼µêèj9.ø ß(ã…ïò²\-pI-«øH]#$‰*u¬ì¼gÝW×HkŽÈïÿ WÇo{œ~4ÃFö˜– Ùž %B†GGÀ©Q÷Z¯|¹9[5‰¬¡àuŽ¿°£GFÖñÇãGM¸õ³ò•ÒD@DDD@^?ìŠh<°ßëÿ7üÞ5ìãŽÈš–³–Ëôdõs~ÿú4H ^¥Q©kØF[œžÿ¸¬+9±-ÆqáZ† 2K#€'?‘Në³£›¹#á*Úßv|Ä4ñÉÇYZì”nÛÉü…ZÙ¡k$ã ‡dHÀç§tÆõ·+%U\q@ðxGk•Uï‘ä;á@f›—¹Shã-ªúL¹À•`ÙÃ@ ny#E¨ÎÁRi†ðåX»9©CO!üx+ˆ*PÌm…T]Ú#q-áÄõ(¶ÊÇ6Lmÿ}>çBÞ.÷<¢R±‘¿ÄÙšUj'þ¹²pqûÝÿwl |TÌž¶HÞ2×úö†#>긧¢ÚpëøX#ðS¢¨Ý€œ)v!'©k÷ɼÀÏy]:´ºG¸à5 q$’sn™»° õ޾6¼< óQh‹ÎÓT·Êº«cÙ$üÚªŽ Æ¾ªß),Ž¢!Æ78G! âFö\0µÝ·9‡%XFJ…4<V“¶WãXx +£ ’SÁ®øêZÂC‹]ð+Ë\e­ë ml6,†µûf‘¡®#¾§È@9¸ZÌ5)p øUÄUms2Oã@Oª©x§Ù¸µZʉD§¯áVÕ#gú¨¬,w ]vÃrâ>é÷áwh$Þ¿ T¢}†ãUuÕÞqqëð >õSª#8¢´Zæ‘!È[£‹e‹ŠÖnÑ4<àÿå@S¢úsNWʈˆ" ˆ€/f~¦_ÕþÍþÔ¼f½™ú™Tû7ûRÙˆˆ€""ˆˆ" ˆ€-3—oœ†¼û[¸þm"Ü֙˷ÎC^}­Ü6‘Qعô=èŸzÙùJéKšö.}z'Þ¶~RºRˆˆ" ˆ€""ˆˆ" Á]”·CÙ©¡ƒy¯{ý½ê¼ÙMo|½úšp×aÜ×½þ‰@kTî|X'¯Ü÷åFÌ™%D§ˆÄÀ8© i-@VÖ–0¸ ERCðßL¹B÷{Ëò‚ÜãÝzüÕ2É ÇŠšœ—dþU>¶6Äp¢: 1¹à€²‚&†à/­Æ_þ*ž;–Œ„©°Wƒƒ‘ð /©ãÝ3*uÄÄÏ{À³RÔ¶Fc!@»R—´–稠)îW##ˆÏø+°¹ÒƒöV7Ñ?zr×àVtPÀ8ð÷=µÍÝaßñÁD¼–v}ßÈ¡ÇRæÊ““3x”ò»yÁ|×Í+m5c‹^ØZæœvO­ \sýJ%òœGd®#ÖÒ²P¹0•Ý({ÜC* ÎÈÙiÀðq$ýÕ²UÌáù£ÉË‹lsc×.ÿeªöW¸”zú8®ÒRÎ ŽAƒƒ‚8ä÷U’«¨·\¤ÓõÅÎ{N! -o<œõñÈ#ú–ÍÁZÖ¿Š¢9(®H@€ã‹Û²×dÓÖOõðhð 6ÆÍ²qýKôÍ´ÁaŒÅS– ,nês?t/Ý˳ÔP`vÐY\ÌñQ!o…Kù@dƒ¹ŒvóW×t?ù-Öúàïäùnï­®ù³¢Úk¶™·Ô­.Z¢8m¥,ÑiºFc¨’Ý-mc]XöÏPp]‹K·Lk#˸´ «|ÒUÔËWW<•<É,²¸¹ò=Ç%Î'‰$œ’V)˜ß 6ª¥¦»ËEt—uiºÀhkäÙ.ÝFç5Í› NÝJÈ¥Ùn ÷{9ʯÔV;žžºÕYïrÑ×Ò¿bhdëië\ ‚È ‚ }€z½¾‘|ÑPÜ›‡Ü,Á´•÷IJãó OY;Ì.qÃZÓJÀ8 4 ÈÞ²¾ânBÃ.LÇì©ô¬ÃrPéä1 ¥MapÆÅ9ÀQK\xñ@~¹ùSX#áàU»e¯ÁWk¢ÇeLkŽ|*$ÕðVµ°“…OQN滨 >.Ê…XÒ]÷TæÑÅcxzl1U\!qqÏå[dq03Ѝºµ€c¨ 5·SÿÆV !ÿŒ©µÈ÷V6ä{Û²¾éá'ˆGÜ»=Gà@aE(S» ü Œ-( h¿CONz‹ÙŸ©—õAÿ³µ/²žG wÀ½•úš>?D ¦‘žëþT€öB" ˆ€""ˆˆ" LåÛç!¯>Öî?›H·5¦ríóןkwͤ@Tv.}z'Þ¶~RºR潋ŸCÞ‰÷­Ÿ”®”€""ˆˆ" ˆ€""ˆˆñÏd…$åŽû>ËrîoÇèñìeäȹÃ9^¾0÷¹¿{ý4%ž"×u/Œì…bâÉ_€’Qm7 ~4$Îiw¥SKc#euµî<þ%¾žJvž®¯ ܇<‘á*ލ¸7Sj§qqÃàP¥9P`Ú2Ž'­_ÙíÕuõ0ÒQÂé§”áŒhâ¸{½åQNø}•¹ØØ)¬sUúYj)¢?ô@̤c¨àÆßt=ÃS^nùuy.ßñ«ä™F&¤©ÃäúžKµú¥«ä™÷M ¹±²‚>uPwµ ˲[a᳎ûÁ'¬¦íس ¹UÆ;ÍŽbÆ·Ü÷ªÝÏû°q…„¤þµ´ø¼ßøìY¬ ú‘Ú|e›ÿ ’²äKm]=\ímÚ•“Æ\6¦…ŽqávÐ{l; GБºåÖÝ<»úž|Éi-$;$àç.ðwÝÚeƒdõ*ûƒm6mwòÏSΫ[=4-dm;$Ê—eÞŽ9à¶ ÀÓÔ€§r¡Þ#emªzW¿i¹ cÃKˆ9$2@SjšxáWIµ¼û¨ Ú'Åk3MLù`qË"~Ñ`'8w€çh}Ųšv’Ð9>‘´š–ãA;ÃÅç.˳Ö08í÷o³TwÀ ;]…š`QÞx $²rY_2UuŸ…F/,¿( ª;}gáWZNÿ–ìÚº«|WJ ctÔHæGU ½3 iÈ €ö»ŽËØÇKBÕ¤$©6Š[•Ú¾+m¦‚®á[.wtô°:Y€IÃZ 8žàPuU”XõU¹µêìKMQ±±Î)äkd†]œ’ݸÞÇlž-ÚÁâ Š^Î hÖ/²Òrgµ×\â­Õ”rÂA;'¦§·»æ­ò³1¾C4’=¦7?îkÈ-k[¢I9#üL¹=k3 K>â©d‡*T.qÙcËò˜èÛß_°³k­Ig ¸`‡ ³… ’q‹qWfœ%*u«FYìEïµíÛšÊúðY˜7àœ†¨5ÍÈb¬t-œ³;‡ÖræwÂÃÖ¿”8¢ ý‚8ÈUŒ­ºÿŸ–,Ä`jPrÒJ.Í­Û³NÍg’ÚJû®WÎ6IÂÂ×aêÆ¢äŸqUNv^~ʰÄLtýÆUµlt€¬¬vVv´9¨ j® >êŠÀC–Ã]NNN?§’—ÿŠ4‰1¥Ãlêà)o8û*æ•í@TÔÛ·lô£àT50üÓ[ÕIdÑà-ráN&¯Ý@UGK–çà_tÔ{ÉÃp>-¼„£“wR|Ð4¦„é }½ˆÏW[{Ù^©ì(Ó]®»W–ÿ2ô­#Òïü?õ—Ÿt&­§¢¤ q?½ÿá“ûß²½5Ø›}ŠöýPb$îy¦{œuÝÑDDD@Zg.ß9 yö·qüÚE¹­3—oœ†¼û[¸þm"£±sè{Ñ>õ³ò•Ò—5ì\úôO½lü¥t¤D@DDD@Ž{%˜=/®ÏóÍã^Æ^즺:[5 8.Ãy¯|zÚ"€Ð©¦Ù¨=ÿ Ù¨dd±4pê\ö×:`{®¿ ÜtÌŽ—ghž¡×öP%#]Ä·ñ*­K@ g÷§¼<+f€68³…A¨+áï FžÖLŽàzüA¬¶<宸Á-KKÎ}}Fbw@ 4¶ÒI™s\8øÍO&Ö–§ ãÍëdÿÑÞ1›g;©:º¶xõŒá»²&4–´u¥ƒNÕSŠ©h«å|TU@6Gµ›f'–Háïì¹àq+>!55žË¿ö~MÛŒ¸´ÔUD®âïÇ“Ë{³v\l[QǼR_OŽòÃuOlU1:78m4ž§·¼æž§4ãK2‚Õtd¤¯th„ã8©EÝ¥ˆ¨ö°c«ª¨w¡¢Ÿlø6ãtmø^ö»ž¬•!î|²6(˜ç½îÙkZ2\OP~\ãe»™5ÎçsêÀ[ØiîcÈ<„àzˆ`àZU–¥‰k,»·¿ ú^Ëy—%8ô YåݽòÊöo+Ùo*è¤Æ‹$à« ˆ´©LkZM†sLsýJ\LdQ•Š08¬u2¸´à”™ÊœK 5}#Nö ;§Ç^!Ûc‹CH>æ]žò¸µTIWn¦©ùacÜÕ’à¾î´bãGQI!LÂܹ»[$õ{‡î-{“‰¡‚Zë™/8Ši$.s@#e˜8'Ž{Ã#Ý@ls0£v—gú”Ê‘‚£á©@L\¥n£Äl ‡ݬŴs޾ësÀ·G ­®Ï)›_ñúÊÞY“„zV`åXµä™¥NŽ<ޤZ’ç/IÜa¶^C«ã–[eSKqŠ0çÓ¿ƒ‹A!¦Fð‘›\Œc¿z’Säu,œÔ/öª›%êªÙRøä};öD±c™‡‹dŒ6˜öæ»Zà{빸[MΜ_4=Äû…Ÿf’¯¾é)\NâSÖNÁÌ.qÃZÓJÀ=>Èê@@¨ap Nü+Ú˜2Þñ*ŠŠG—u~"€«’gg 5 55µpÒRSËQS<Žba{ä{ŽÖÄ’H¶Ç¡… ÏUW‹-l¢’&Á¿¬©ˆ’Ñ$pí45¹æWÆÜ–mã ^©èË}m¯I[úŽºMY3¦ßÖÕBHqŽI‹ZÌ‚6bdaÍÀ~Þ2€Æý9n³|ÓW\ù¼íãÑ%²Ö?{+¿[¦âÇK±˜HQun±šçM%¢Åk¥Ó6e®·P=眴Jda©•ľ¡í$^v[Žá¬Éθç,EÃi±8÷ŠÈa8ê*D++Úê@Adglp*Ê–äpï(±ãl}•eš>ÂD1¯Ê¶â3öÌsŒÿŠTÈÃö@T4Â]ŒüÈŽèŹücîŽøJ>&ð8¬ ý¾¤ŒïvšH äÞY¤kœÃ89ù§Ù'¯îþ_¸©qQvz?_óêzp«:ÑS¦Ú©º÷qK^7ŠÉÛ-…}ͿʗÃ#Ú;éo÷ƨn0Í€½‡eÄ층ß`ŽO™äœ/ÈDÚØpý3HË]öAàT¶e¥øýÿ짦£[õ£gÆ)yÇ%Ë-ž.쮀qS)ñ‘’¾¦e1ÿFwÝs?¬Ç÷‡ÏJæ™C]é\-v:ðG÷UDÝžL…L$ã8µ(ñ[»tk•Ò¾ë–ÒBDZPÜi¶^p{¼§ApÈÁ'á_3‘2™”‡EÜ+ò²rÞ¥$@@ÊÁ<]hʧ¸àû½õ"ª##sƒÔ±QS†¿½ßVrú‡R—›ã9 -KB³© g ® ¹Î@~ÃY$cÄ}Ò½{úœÕ/¨:ól“³ÑØãŸ\¯º'åzïõ6r¿ÏÿŽþÔ€ö" ˆ€""ˆˆ" LåÛç!¯>Öî?›H·5¦ríóןkwͤ@Tv.}z'Þ¶~RºR潋ŸCÞ‰÷­Ÿ”®”€""ˆˆ" ˆ€""ˆˆð—eU>ó—Fï5ïÿ¢Â½Ú¼7Ù>Ç»—D@8ÿ6üÖ$6µÚöäÿá-ÖÃnt!§áûïuUY1š\1Äuý…¸Ûª©Ã ˜8™âsiþêÐ5ž~Áü«¢ÔVSº,³áZâ’:¢x¬xPTo%ÅKá¹ SíÛž¾¿Yß#º!CWßÖ î ŸëVuuQàü+K$È@K¶Ýj!…´Ó6:ªfçfÁs[ž=É9™Ê¡á©·uuØÚôk>fi`é6Úº¿×~MgÏRõÕO…¹·ÁõV8™HïwgÒž¼ìlƒ“‘Ž ¤³ZÀö>02:– ¢Y téBŸÒµñïz²ÊT)Ò¾ÊÍêõoµ¼ßy FôÜ/·àp_‘·h« OÐÅ“r WÑnú=HÇŸ²´ÎP­Ì¤šŸQÀ* ’0æ²ÇìµÏ ‚:±ž9îGÐd`'+æJXç…ÑÈÆ½®k€ ƒÖ@j¶Û„WZêà-î‡vÐs°îûOØÿ•ñ9U]4µÊÃ#ëôÌÎ|@ï%¤“ºs±œ5¼2á‡ç‡N1»Pß«›%’hçd©qÁìqfrÑÃc÷Û9$žãÁ‹KFû®§¬¹Å59†7ãgwÝ‘²Z ÎFsƒžBßi¡â3ùU~†°U–6OW&]9iÉ''ŸppáÃ9ðäìL‡))nqÞð©‡wÿº—@Ö†ŒøåÁì ëä0Aà±JÄÙ2þ !%o£«! »´Ö²I-Õ,u5tLÁsà‚vKÛÁìÚàÆ;¼¾ïVYm7:Š Ý…ØFâc•½m‘„´Ç4‡4÷Á¾«é+r¨ÖÌ:v‚–{%]âÞÎoMsª{§ ¦Î˜ÜA{€s¸€Ö-$kiÛp»Ü)ìVƒ‚+jÚó¾aŽFÐ]3›“ÞÑnBŽnÖûIØÓ6ýÄÇIÖbJ¢…ôq p-‘‡8”…Ez¼×\+¤¬¸VOYS&6æžWH÷`2ârpqCŠ£hõþ4ÕÙÓTÏ5ULÒÏQ3$²Èòç½Ää¹Äñ$“’JÖëÙ‡²¶jŒÉ÷ÈwG€¢—‚ÀAÊšøòzŠøtEóLåžwáŠ>Éa_Ž.y h$“€YC©6ìŒ[ì?ünw†ã?‰a’†³9³þ ¯Že]ëJÁ•_MO¬¼MŸ Æâ—ô¿±&‚_×ø•œgmªªžŽ¬;&šqöc*ÒçkxÃ'Þ”é©õ—ˆøn3ÿ¿¥ýŒˆ¾%Äg8Ëzœ3Ö< èóÕŸzTyÅS‡ iÿðåÇV”•œ—‰:xu)©Æ”®¿uýˆñ¥§,pÚaÎxg¿î÷’™ãYa§ª˜ºšJYZל²GFì1ßÜzÜ=囫ŠåŠWîÑ/h`çGf¶ÃŒg|žVkU²Í4ô³J÷NßUqmŽ ´GQº~ïLÇaÍv:²ÓÀãÝWsqÄ…ðýÙ=åkŠ’³0S©:RSƒi­ë"²šŽ’pvšêI{Û$¾>ÿ èw¸ä÷Ô‡Ñ>šGG îšp}ÕkoŽ,™dc'‡À>êq•½Ó‰“’©…ÕF“ÉzþkÚK±,$*N)NMÚÊ׊ɶ–Zå’úe{äAyhaPex?e}É0â2IŽÓ¸xUç”Hõ,rT’qýKaÇ}~1™p@fcLƒŠûeÑÎ?ËN@RÌìczªº˜GûêÔÞ~¿û6ïíKËUÕ"@@!z«õ9F¯O‡£¿´ =vˆˆ" ˆ€""ˆˆÓ9vùÈkϵ»æÒ-Íiœ»|ä5çÚÝÇói‹ŸCÞ‰÷­Ÿ”®”¹¯bçÐ÷¢}ëgå+¥ ˆ€""ˆˆ" ˆ€""¼YÙ&Æ»—@Hÿ6üÚ%í5ãÉ [¯äÿ£~mEd{,Ëx(•7 é€÷=â­i‹^Ì*}C‘á?‘eúg÷Ád7i1ĸýеHœ[*²cÚæ ,d¹d“Çá ¶éspaž÷|&À%A¸Ã‘ð *_U$’úguøU•®ØORƒ>÷|*Êš1€€ûÚs}J‡¹_-‡û¯©ËP ªsN2~1³79T1<™åeìÕ2å–ŽLádžŒ“œ~4†ßþè '©~Œ¯‚ð£Îó²p€É%@ÎÛ*0ÕTí¢õ™Â<µ$»¾¾Zý£ÅaØÉYXÔ)«îBr°Sžµ÷3ƒ‡×>ÝŒ~®¹ÒpÉøV¢sÁ}AFçŸÊ€Íoa‘Ã>fi{€qø—íº—`ƒŽÿ…YH6X®8ËJú¤´ý…)­¯×FÀ 5ÚÈÎÑû+ 9!ÜVÍ%±Ò3hüJ¢¦ð¿«ñ >$9î*ŠÖeÇì«g5Á¸*$ñeM¹ê_305½JÏqÇüV*šl°ý Žl¿h™þyÿî7ò¬µóö|+‹þ¸üªºß§.ÆmöoûÊ_ÅTElÝ`| éÔcÀø†•—lláXb+L{I„ÄÜ\¥Ò°l !Õ4´*ÙIÆU½U=ÖP ¢fíANÝ·‚88ç¹oQë8û™P©=ˆ¹0¸w‰­IÚû÷%«o’Wo’%Ï+©¡Ž—ˆ“I| ‘Á½]áøÉUõ³=ì¬lÓJér÷’çu’T—FÕÊPØž»ûIãq ½g(+EeÂ+%ß½ñm½å9ÛÚï¯Í¬*ÌÂÞ?Þ«ëcøxU†C+dibÆ×wkâ¹ )”I†¨óÌãÀ³5›\Û©NέXòGW®?S‰ÛG^ûý¥y´ä/Z~¦Ð ëâ{ýý©ì$D@DDD@™Ë·ÎC^}­Ü6‘nkLåÛç!¯>Öî?›H€¨ì\úôO½lü¥t¥Í{>‡½ï[?)])DDD@DDâ®É—Ëf ãëoÍ¢^Õ^쥬1òõ¨âÉÀæ½ÿôXP¥5Iaÿ‚ç)•ª5Áã­g5È wSœäð#æøUЧifp>XF×y2RxœæõŒkO,§dŒ` )]iê+,Í=JÀÓµÜpácOycø/É\8úBËÉ@E†$Î Ø­{-hÝP ‰ŽÁÀR›˜Ç¬¢2Ìäu*Ú’8_bW–ã%a‘¥ÄåYr5Û]kö¢0|–ž Œ§Š:<,0Ê@ëR£!èÏËWÜ.ÊÏ<#g<xÙ‡ 2¸žòÉIâ¿8Åa’ 3©`Ö³ÂÚ`ÁàTÕ’î³ð«:YÉesŒg|Í;]Ã!AÞÔWçuž´èøŒ…&Š-¹Ú…C§vį¸ë[ €ç¨øBx·QBiAq—Àþš¸à·½Þ ;ËâFe§‚–[´¾Œ 4“„Tq8? E³°ã÷Á\T1»DpëQA¬*ë~œ»·Ù¿ï)}QS0ÃTGI‡aJ¬8È ½Íqq*ØqRšðÆu… 0à¿es¶zÊæ¦@÷ž#­bÝä,dµ. x 0cg¼±:`ÓÞS&kvOR©¬;.8ð &¶MàÂü»Äb¤e(Ñù¬¼8äõ¬ðñ•ñeÞé¤ÅÛvz‰ï7«¾­g¨;Ð绋’Oº©=Kn^¿ã_Ó‡ÿ[çûU2\¢žoùŸÊŸ4õ) k›&8«.;µÌ y8ï¬Íx-¸óåÎÚÆİ—Œà©mŒÁJd-,â_vÔg©|ºS…e_NÐxÞUÒ0p€ý†l*Æ9šYŽ ˜ Ì&-oY@dž6¾N+Ö¿©Ýcn¸Ùïôö•äpKúϽyú/n¹Ï{£ÿ´ =lˆˆ" ˆ€""ˆˆÓ9vùÈkϵ»æÒ-Íiœ»|ä5çÚÝÇói‹ŸCÞ‰÷­Ÿ”®”¹¯bçÐ÷¢}ëgå+¥ ˆ€""ˆˆ" ˆ€""¼%ÙUM·ËΣwù¯ýîÕá¾Ê'GmDÃŽ×óXÊ®`YÌÛ.ãù-k áÔ«jæîÎ}sÏf3ø”wÔÿ²¦5ÿ‚¾™9ðþ4ƒ¥%ÜÛGZ‡€ñ$/¹&¾Q²ÓÈ ÏVvÏÙð/ƒ(pëX^ÐNPø«+ä1QÒÏS nÑd1—:³ÞâÉ­—zH]=U®º›©$§sZ2p2H𪈀}äúªJ¦ÕÓVìÏÆÿئQ­·xÉ[…üoý‹jjÐ2˜Ú–»¿ø•\š’þ:¯W/¿ûÖ;]îåHÃ-ªž2K‹b™Íøp_¢¥ZÎñWíþH)b6]â¯üOÿɰC#WìÒÕ ¥Dµ,©ÂùZ1´èXvºø¸‡=g'ÝYën“ONèžÊ@×u–RÆÇ|! …ݪ·_*ç›ûgäKj½×Ê­¿7åòçäVÔÏ“êXC¶¸©FæÝ†ÇQo ªk £1‘öLe¥Ç«‹³øÎqÑÖA’¹öÚI›#²Ö=ÒãÁ»/dž¤é&¯x<¸5ŸeÚó·yΖ¢NôÞ\ϲíwÝ.W#ºM“…&ž£üå\ÔÕÄán†ž6»æ‚ï㇠½ÎÁðwûëêY¬â7¨. ƒ²çV±Àñ#t2=Ì„ée—Èü²óô4ì¿Óyÿ]¿7¥Éb =¸þ¥øÓÇ+âß5°@ÑQIY$¿¾s*šÖŸŒãáYã6÷T»jj˜©ÈËH²<tÐqÇC8•¦ö¢Õ»ïáwäw§i½¨4–ýoÙfß‘¥ç9ÊÊ¥°™œÚy$’..{\~à' üm1# ZÕÑtd¤“Djh‰*Ê&–µaŠ2×`…0 …Ó§Ë$!Ê}-5mT[ÊzJ‰˜ £ˆ¸gÁÁAdD»¨«[]è]ƒÂ¢3ÿˆ*13•:Rœ5Jùòð3bêN•T…®“yç§z!׊º ÞsM<~—ynq׌ýÅZft®à³µÑÒÉ5T•­aŽ rö‰ðÂâæ´mlìwYÀð ,ͧµËZÚj8¢&x[™é )ä伂ѓµœ’ Æwèæá8·mZ_/;–~™äe—´z)ºs‹{:É/•oâôY¿,ìŠY7½åí9ÜVÙ\úfÙ*àŽ‰±nê!asö„…Á²eÄm`‡PÉp Öûœõ…~¿L¤ömg¾ÜÝÚiÂâ}áIìµglíÁ;å~"&áHaXšA8 (aÙÊÐj2 x¬55 4€{Þ©î ÛD´Ij¶¤<{þôÙv‹GºkÉk¸¬Ôï̬ô‚®·é˱›}›þò—ñGÕżrý4 7üVh¸ ¯É¥À°ÄB|@†VŒag{òVõ !HÌ;+ä<…–R2±7 ?]!Ù* KKʰ{FÊû¡§k¥3HÜÇÚpÇ{ë¾­B¤ö"ähÂáÞ&´i'kïÜ–­¾I]¾H,&šš*@0ÿ×fðíÜ·«<øI_¬Œ)4¹Î{Ž\ã’qß+æ&wK”¡±=wö“ÆâzÎPVŠÊ+„VK¿{âÛ{ȳÅÃ*%¥]É-êP'§ çàVšgä…1ÏÙb­Œ¬¢]¦áºbIûŠHwZÍYáUòͲ‰K‰†0âQçÎ$óoõXKÇÙ^ÆýNsÜë¯û?ûJò55€ÎÀ½{ú±îûz÷z?ûJÖ¨ˆ€""ˆˆ" ˆ€-3—oœ†¼û[¸þm"Ü֙˷ÎC^}­Ü6‘Qعô=èŸzÙùJéKšö.}z'Þ¶~RºRˆˆ" ˆ€""ˆˆ" Áý•/-å÷R`ú×óXW¼ƒ{+>š“ù/æ° 9³êNÆ2z¼*Ü^ò²=¼Ìmî…|œµZEM¶ßñPë`-ÏÆ€ÃÏ„¯§ùXâid{À FBYY`yrŒó´å.…¼B9iasžú²sFˆöx 0†í+àwRÙÂø};‰Î?M,Çe}Í3±ÖWÅ,ñRÍ>ÓÅ^çú‘Y™KƒÕø×ìŒØ@}± µF¨nö%ÇùéдÁÄáNlgeb¤`Ú lÌhÌ8z³§-,ã…Dù°ÿðR"ª=@þ$”å€ðÂúàðP6žþ+,MfÆ³ÝÆOÂzØÂ†øÜç—I'$“Ö¹³)É6¬‘5V–”áN[S–Wµ’Z»_;¼“vY]fÁ~ÒÍNÞ+g­f§pÚÝWq2(6ÇRø©¢Ãsð+~ÎÈÏKªc‡\͇‚"½æ˜ä;Ç¿îª'íÆâ€ü­⩞7U¨%çŠùš!°O¸€¥l9wcE a‘˜yÇ…}ÄòÒ€¸îPê^©ýOW;\ãÿÇÿi^G29Íà½eú`ƒ®óÿãÿ´ =nˆˆ" ˆ€""ˆˆÓ9vùÈkϵ»æÒ-Íiœ»|ä5çÚÝÇói‹ŸCÞ‰÷­Ÿ”®”¹¯bçÐ÷¢}ëgå+¥ ˆ€""ˆˆ" ˆ€""¼Ù_ o/ú”gÖ¿šB½î¿Ÿ½–Î?å ©Ú­?4…Î?{+-.^õ(Üâ¥ºÈ Š8ñ¡Üc?aYFæ²5¤í”C£ õ,2DãÞ*Рê ñд €©ŽmO¦ˆ´Åel#9,§ n0€Á4¸à±Ävœ±Õ•ùJü8}”µ,[@pVtÖ÷IûÓð(ö€×;ß•nöj(œ!½þòZ’ØøÛ‡| ÃwW@»QÂÊwéOyhw††Ìà<%|3ÞXfppXÝÀ¬O“VHÔc6J™l§©®«Š’’'M<®ÃÞ³ýÃÝï(ÊJ ÊNÉœã¹IÙ-Y&™ÝÐû*qnÜx÷d$‡§Ã'*DŠêÊw ÇGŒ zÕ¼ŒkÇPX¡‰­x8~êXZ"ð/‰C¸úé¶c(¢RçwÐéǧÆÀBLOaO“„ËàÚï ¤ħˆ{œãñ,2<7‚¶¶˜p‰kUí-yáà[uCƒÚµë”¸žä;dÙu÷°9dPKQY-;6æšAmÈq8'‡YRî7šÑ ÎæÔÑšh^Ü´½œváåÏvVÞÏP^7¶0‚Ãm¸­]­Ý|žý8Ùð<o{3âÔÖ¤qZ»ZÍnO&õÑdžôŒÔÍRÃU´Ó²¾«þ2½“ß,X3Áfd;_ûªÊz‚JØtý,·*Øé¡i%ĸ ì7¾ãöujÂŒI»%›eU«S¡NUj;E+·Á ·OU3 ‚3$8kAëVlÒÑÒ°>ïr†…îÆÌA»×ãà8uñûŠØÜ £€ÑÚCáìÏ-/yâ0ÈÀð¹îÁd-'<>çEã12}7dœŸ<ï®V“ìÐòbñøïš2èiîÉ9¾yÞ1Or´·­ Œ¤Ó‘Á5ÊrÌŒ k\qÇñ dn²HóŠ:šf´÷&96‹‡»µÕ÷<*ÚÆŽXøðS^ÍZº³oø­ä¬¼V[¬X½µ•jñÚkÉY>õeºÅÑeªFl¶zˆ;ûR08}Œ_UguA&‚¶–¤ŸIÞÄŽð÷'ÁÇ¿Ô ¸…¯Òœø}μ?N³ì’R^Š_û÷ M<èâ%Ù%/E/ý¾ê-ÖŽ¾ÜO;¥–&ä7l·-$Œà8p*†¶pGø+yî—h桊®VÓÊ6]xc¯Áœœã¯¾¾Þ4ÎÇÅSc¹-‘®uDnc¯=}XéêG‰¯‡_ëÃk=`¯—«º;]¡ã18X¯y§µž°MÙe›ö•óÊ;|Ù¦T¬¨RFs•¶ßtÔö±ížÊ)‰TÀv˜ìÀø®=þ'RTS쎯ĵÐÄSÄAT¦îØlU,U5VŒ¯ùÜÖô`·°—öVÁ |Y÷<*Ž—¸z¿¦«kcâG®/+«©„n?g¾hckƒî¬×*†¿8#­@§ŸaùÊ⢆"}Ï ¥«±<ã¬]^ xÈêðªªéCÉ ÷Ðw¼p¿\þåXiû?£¨ºWÜ)­–ÊoM4Ç2Nà[µõË Œ†´^æ ³ªÔ°['–-M-¦¼ˆ«äpuÆFç2Ž! Ë]²ã&2qÏÜÝ:1Úk]Ñ\›Ï>I7ÆË2[;Ù—IjàŠªj(íôó°IO-ʪ*T4ŒíDgsƒYœm78ÈÌú1k§žZy5æ™sâycŒm­‘„ƒƒ‡6œµÃÀA ÷–¥VúšªÉªê¦–yæy’YdqsÞâr\âx’OJý (ô™»Î­¿…/7-«÷$/¸ÙÛ¤iªÙ0·k3WQ6Ĩš”¼mv_Sqämg@àg ÇL^mTí¬­·È(žñu±8MK#°NË&a1¼ðvC\pZàxƒŠ7IÅYX/7K=Kªm7*Ë|îfíÒÒÎèœZH%¤´ƒŒ€qîT±TþšŠK„•ŸŒl—ô±x½ÇØŒl¬º[U5ÖÃ{ŽXï”Ñ[+ÜÌS×Ð@ Ÿ´ÍàorÃjµÃ‰-•_³ÔYî/£¨’žvñ0ÔSJ%‚¡™#n7ŽnAá YK¥>Žkf\7>iï^ŠAÇz)KH ,ûM*̳½…ŽJg?©§àZˆ•ÜáÌiþåzÇã=ÿ²©£xa;.êð*‰ "CzÐ`“lqJˆZBü…»&r€Œ"Åa©‹‡˜?º9_ykŠªF9 •ëÔê$wž÷Gÿi^e’¥‡ìx¨¿SÞ=ÛõÏ»ÑÿÚP¯DDD@DDiœ»|ä5çÚÝÇóiæ´Î]¾róínãù´ˆ ŽÅÏ¡ïDûÖÏÊWJ\×±sè{Ñ>õ³ò•ÒD@DDD@^첨{yÔ±‚p9¯ýï•àËL”&¦þIù¤(iÜâ2J 8PéðHV”Ñ‚ñ¤åHŒä/—Å•ò×`áõ $¯žqS)ãÞñYNZÜÿZ‘­rú’fìªÊ—9X;º¿©.I†Òýl›AW4¹ÎS!ÛÙµÅbØ ©,êG€@!LoR‚$ +(¨‚Êž@Ô©›-8Ub£'‡äS(£–®¢*h·4Ïlq· eÄà Ÿuqµw¡ÉIE9IÙ#=94vÊ›‰ýv}ªJs-×}Æ87ÕrZªá ~ ©†Z¦ÃLýºZVn vÚh$—àñN.vVÖ:‚¬aSA6Ik/%¹}×Ìøh¶Y,åŸbܹeªë6XB ÌX¡STF"˜%j¼Ò}ÅÀ­¾Ãµ•ºVáÄŠ=äg¯. ŸJ{Þå«NˆåËnÓl}nž»Û¢k§ŸOXÎ6]‡¹¾‚„õq^wµ¨&ôR…û6—ãåsÉöÓÙÃÅ¿¥Nû6ãäµwÊ×#ÁUƒŒŸ…XÅX6zÿ×Yžµ!Žp^‰ëïªÚ=gáVT6ê©âË»¦…Þ–J‡ì±Žùá÷F›¦m}î–’SˆÞâ\1Ö$»Œ}Õ*zé®5òTÍ!~ÑÃrÝœ7<8û?dõ¬êÕn‚‹I¥vÚ½“m+nÎÏ]-£¾^f"½j˜vÃÉE¤¥&Õì›iYd®í-^VÑß+ÇPÛã2]Y´ÎÄEÃ>áj mš©ñ¸ÓOKVæ‚LpK´ìxqßÿôÆw Ù²CØç5Íâ8 ¨¬.*Æ»o÷£ê¢üßÞ ‚¼q.O÷£wl¨´»ßßX¬…ì•Ì‘¥®kˆp#…$GÀ·hkwtf†²••”ƒ‹#.Ø,9ÎC€Ï|¨wKF‘ÕÖ©E3Z$n?5‹¯;@w¸uÿPÊï¿:U61Ù»²–±|;'—ÎüIЫÑâ¡°›´e{Æ\3Ö-ðj×ÉJE–ù]hlÀèä§—;È%nÔoáŽ#û±œ åN¹Zè/´óWéó³RÆ '¶ì÷Më1Ÿß®ÃÞÈj×ëFÆUkk*)jôÓÉ­ÎËãqk†F8î.WÀ^}>ìTò—)-ýº­ÏpÄû2õ# ö*ï{¥ÊknR[²iXøf|r±ÑÈǹ®-#wŠýtä7•³^Oªôýf ¦£Ü]hÞÎ|Æ=îl‘–€0Zxg€k‰'‚ÓâÅ[‚ÅŽÚÙe¾ß餪²[ÞÆÏOÛ·ÔÌö¼Ãp´8ÆâçpÃü¢Àèš»Qܵ5á×+‹¢1°Á,؆šðd10pc:‡Ù'$’jr›©îôÌc¬¸pIqÞÛÉ&µo.åk³`žÿe·ÔÊÍ)c‰±mš«ÌqVÔ=™à6Í˧ƒ ÁÈÞœ/‡k}jÞæWz¦Œpd4Õ²Cc¼ÖFÂÆŽ Ö€à V¤'¾¦·M{7 ož OŒ¾gâîÎmȵ~¶ÕÏîk¯•7XúÄ7PÚøš„#œ=¡Ých €HÎ ÎZz½/xŠfݨe²ÜžÀ!¬ ãHdÚÔÔø.h9~L$5£gf#Œ¡Ðÿøêlw¿?gP_¦¶åãlŸcMroy’íh¸Z] ³°ÉGS´i+b0U4c.Ä ã#-8sOrà×®Ÿ¹ÂÚWZî’[lÛ)¤ ìy g0‚öJÑ÷ømÔµí4—7\ðêšf8 ˆ àÉZ>ãÇrî"ªénžÑruîä1’²HÉ-’7°>7Œ€@s×`€Fp@9 s©'‡Ä,Öi­ëŠàÖýÙ¦µiuÙf‹KÕŽ¢ÏzšÙTúyd‹d‰iäE+Ðæ=Žms\×pñðV6Û(˜ZÞÿïJÉiªuçJôt‚3Yec¦¤-¡òS9åÓFHO,s·½iœ“€›g¹Ç@'ÃûÕ~¬å ¿\rvßÁ®YÛ;;«»\ä’ÜTßlí‚–úSÞ+F¸@3€¬÷—KÔUñͰz{Þêç÷"×Lï²V¢%4Ž-Q¤—¼TúˆÆM@ø >³ž¥"–'½ÝõŽŠ"òÙ-ôa­Éú®xÜÈøø§?SôåÚãùö•çK³"8ð/E~§à"Msöh?´ =Xˆˆ" ˆ€""ˆˆÓ9vùÈkϵ»æÒ-Íiœ»|ä5çÚÝÇói‹ŸCÞ‰÷­Ÿ”®”¹¯bçÐ÷¢}ëgå+¥ ˆ€""ˆˆ" ˆ€""¼ÙlÓþP˜ÿüÒïÕà~ËLz>ê_俚€äÐHZñöUÅüò¤S©\@h i'w–JXÄŽeW9Êe¾}— øP 8kGØ_—&4F~âü§¬hŒ} ƒs®ƒ¾uÌÇ ‹Š˜ù7C-Ï¢ Tp¬ ËJ’É@ ‚0ТԸ¥!Ò8(59@F’C•ø×8¯Ça 3ÆHëWÖÇ2ŽÁ[v’@ÙdÍ#A¹Î5v3œÎÏQã ê#*’¤žFE n’G¸5Œ`ËœIÀ²¬u…LrVCk¡›yAm›ÂàNÌŽÎd” §í䑃év| &!¹Ê4VüßbÝÞì­½\Ër©8PŽüßð­ßÌì­½mp*Ÿ6Ñ@ì…ðÈŒ•û‚ Ön23;\ØžCFV*HöRšiŽÎGä@|2\u§n’[î”õ±ñtO·>˜cud2©7x*M7rB…Jq« «¦¬û]jP­NTê+ÆI¦¸§©ºê|1>+&ßZ7‘œ Fã’cáÀcÁöG6´…ŸK\èI%–é¼µ2±ÑÊÂÐa~@.˺g¼áį»­¶²ÓV`©c¶ vêN‘ ã< Ç{‡XÊópUÝû¥wó/¥õ£Çµhû/£õç«!°IXÓ€vÙžíÃËy…´”ö‹ `ié"­{½Rj¨ã•ÎÇXà 1ã8;­¬âÛ¤¬TÕ,ìŒún°¨§{Š«6Ô^‰6²ÜÛVwk;=/k]6äÞÎF¶)ìWìÔ[NŸŸ©’Ò™&¦> ã$s¤o’ö¹Ø FO­ß)'¶VIIYîV‘AÒ2Ò!ÀA êz¢Å-3ÜÆÆ0ÂxáZ­i«Ñb©çÙë›DÂ? íšV·ÜØ|rœñ.ßc 0&žQi·Òwwµôi»¼Ý“YêžI;óê5q#]ß gd޽hhéËc5}îx"6‡>’g€AvæpÀ%Ä󓌕¢ÓÌâþ$­Û“׉k®OãOSi¬ß3ø[¨;8õŒI ná׳ƒH,zQ¥ÓoƒÚî_U¹¸¹%Û»Q mÄÅ¥«¢´_èë*Ù+èÃÌu‘Æt”ï“0dŽ.ÏnrÎAŠÁwЦÉ{®´Ôɧ¢©’žGFâZ\Ç’3ƒŒQd‘¥ªÏ•*‡Ôj·VÈ#ÕÐÐÕNæFÖË-$RHü4 žç8àu’’¼q±·íEßùZ·üŸý’ž²àç°®÷„ªZ‰KžN{ëõòÖJÀðI[ˆŸ29Î +¡qvH*Ξ ¾°³ÉHsð Ð41Ã*ú9ÚØºÂ¤teà²I9l}gá@f¬¯$d/Lvµ ëR;üÃûBòdõNë? õWê|Ìeíß9áÌ?´ =Zˆˆ" ˆ€""ˆˆÓ9vùÈkϵ»æÒ-Íiœ»|ä5çÚÝÇói‹ŸCÞ‰÷­Ÿ”®”¹¯bçÐ÷¢}ëgå+¥ ˆ€""ˆˆ" ˆ€""¼ÙjãþP:˜üÒïåà^˃٩¿’þi ”FܻЗÀXžÐÕûÊ4Âû§—º Î)˜ï -ÝRZÎñ*úЇ<õþ%‰óg†V2{è ñ9RÛ Â«ଔžúcÈhÍ‹ÁÑÅÓèꫯŸÖióFÑSe‹›¾¦ßRÚªvñpê{OXû|>ÆVãeÙþµek¨–âX$,~1‘àSªkíõ wHQ†8’D´À5ÙáÖ_‰XTñxW³4êÇŠ¶ÒíY'Ú³åÇÍLv ìÎ.´:ÊÊk¶9)vÆÏ÷xÔ wlQ$½WÓŠzÉ£kZÐã³×ž®¥aªª¾˜Ïo0Ì ¸Â&ÈÆN6³Þûª‚åGW M4ðíggxÂÜøq•£§Âb¤è¶¤Ö±vm>ÃRÄàq’t$ã)'œ]›O³Ä·‡U^Ÿ×[ÿ”ÏîU÷ºŠ©ŒÕ3>WžûWàx¥RטܤG0xÆB• -ª4ãÉ%èY†öf -ºcÅE/D|O;šÓö< ¦® —îVµQ4ãÀ Çk«¬™ÑÒÓO;ÀÚ-Ž2â‡i””Uäìsœa©;"šy W×·ÃE£ìÖÖÁ©‘Ϭ¨~Û^ö—c`pq-=‚A8o|qO§­Úx2ᩞ¨ø-Ã¶È 4½Ã 798ïã¿Å«U½Ö\nµ†²ãPú‰‹Cvˆ:€€c¾Iï¯.–>´eK:pwÚÎÍÙ«.)^íé{ZùÛÆ†!{J¼%G:TÝö³JR³IG¬•ÛoKÚ×ÎÔõ/%`ÜVj–•¹Ú^±í›µ†'Ôòk¨Û Ϧ¯·ÕÊÃ#CÄ!µ1†“—ù¢iÆq¶2¡èzÚ[f¹°\ë¥ÝRR\é§žM’í†2V¹ÇpàVNNóSs«°Ÿÿ»£} xàçO–ËNÀz†ÔñBÂO×;‹}0¡.à¼ØÑU'ˆ¡7õYåÁÅGÆñ~Dïk4|]¨*íWZ»et[šªIŸñíl=Ž-pÈÈ8 ñ î‘ø#ì­‡_S¾¶;v¯‰ÂúÉU³#\Y[¶j6€9iy,›hpÖ‚•ªm–õ-8JνÍ룶é,¤»šhŒ•™Ñ/Õª–Ñ‹õšŠ8¨žÜ~·5,QÄæøNX!“8ÀÞìä–’­4þ¨` ¯ï2¹ÝŠümûÚj˜yݺ§dUR—ìíã;/c°v$nNËðq’s\æºÌÓiÚÓÎ(5u-²3×Mv‚£{ºðO‘£ mÙqîÚ1š)ÏÝ"©M7£I¼·&•ÝÒÊï[^÷m)5µ™Ðîúµ”în×[Hô˜ZΨRè–ÓIÆ[ÅkkXÞ­ˆ`D×{»o’QŽ»œà‡‚ªaªÓVµQsާ®8h„°R’IZÙ]Ä`ÆÖ7-p"PA žíw©ºÖIWY(’i1’hÖ´`5 @›x©E$ÔMÝZöÑ$ìòvmå¢Y¦íϤ®cpþ räô:*ë•tœ)ém»çÿ{à‡Y̳FÞ[Y8‘ªÓ°9Ù[Ätî²è6TF*5œÀ.m$/i9nN“4`Ò9±ÆCŠcÚ•.‡|ÞÏsú­ÍEI®Íúk~¬÷…sÊœo¥ÕŽ¡•Ñ™èè(ijxdÑRCŒÚi –½®iÁëFÓ´4÷mKGCVù#¢2kdŒ€ø©£i|ÏnAÉlm{€Á'žŸPÝg¼ß+ïM‰“×TÉS+c09î.! ’q“Ã$¤¯,lmû1wþf­ÿä?d†JÌÈ ÿÝa…ÃiXÓ¹»#8ê[ˆŸ´ìÙëRˆi $ÓõaC’»dõ…>zv‘ŸëUÌ-ÏÜRâ®$|*%Êf–“‘Þ@SOŒ¯Vþ§y㮿ìÿí+ȵUqãø×¬ÿS’MáמçGi@zíD@DD¦ríóןkwͤ[šÓ9vùÈkϵ»æÒ *;>‡½ï[?)])s^ÅÏ¡ïDûÖÏÊWJ@DDD@DDx²¿èƒÔßÉ4…{åx²ÃèƒÔßÉ4…ÌÅÌq_X_yÃP§ +ÞZ³Ìì¹b1í6JIYó–¬M„‡Š™$·üPÈ9Ybi*TtÛO\[í‘€ã½ü$c¶Tlþ+i®¶Xr<¾Zõ\{( ôÒ ³ºN ²à੬psP¦˜ŽùS¬Òš:J‹Ã¸=Ÿ0£ÏY™Ã‹ÇýFääµîˆõ_Q9V:—šÅQKj ™“ACcåŽM¦M;ŽÔ’7€á’}±·‰à³WùÜi[]{¾9.Æø1Wœ£FÙK^ůŽJÜàW1Ä©P´¸…Ž”ØZBÒk2E#ˆ !fÏP_lx~œ â —O݈Ež+,]Á@e–ŒðP'`S¥›¹P%qq@bk‹]Á\ZêÉ=õ Ž‘Ó8`~5yMj{µüH jZÌ7¬ü)UU´Þ³ðª·‡EÁa’cÿ’iÎ×Z²¤Ô·Šp틌ÎÚÆw„Iðmg ]–N9_CÔ©¯†£ˆ[5`¤¹¤ýLøŒ% TvkÁIsIú›$ÚäíIf²Ï!âé$¤Ï=òpzÊSÞ¬ó»n«M@g>™ÐT¾&{˜`È1ùV²ò{ëî 6\²|+ ¾”ãÙ)GѬ¹¾ ƒ_D\†Rüd²å¡»ôĸ‚Çkd@ÖËñÝ]÷pʉqÔwwÆèc¨°à5±Ó°00 `Ö:¼?‰TÃR61ýKæOš²pi¦é¦×›¿;çÏQaû>-IÒRkM«Ë¿æ¾|õ TÈé%t’8½ï;NsŽI'¬’¢ÎÖìžM©„Ž*¶ ^‚VÉ¢I+"²¸ •^Ü©Õyq*¾F–•Ó¥­¾Yiª"ª¥šH*!{dŠXÜZö8‡8‚BØu¥²7ó]KC4VûÎ܆Ð)곿‡vßÖÚ×89€ÿðßsB–lä[N›¾ÅIA]g¯yk¹nùÁd-tо2LsF]ûæí8ä5ïn[æãÄÂq”kSWk&¸ÅëÞµ\lÖ[WRMhÌ:ZªÜ%–Å©––Ép{=DPïM3ñá ‚àÓ#ƒ›Ç,{ð6ƒ `êÍ5rÓww[nM‰Ä±²Á -™_+\[<„´Â÷4DÓÔæ €F'K’L+­Mw«Ô7ª‹µdtÑK6ÈlTÑ¢‰Œhc#cGSZƵ£¿€2Iâ©$ˆ—+ð”§¹Õúå›¶î q²Êù]ÝÙ^Ç$Öã-1.pV1íu÷”J6ã*v{…¨‰¦Sž² Jü÷ԺƒNlć 3Äç¢V*Ç=Íë+ö éîk‚]¬c'Šõ·êl“Ÿÿý©y~¢˜<ï^«ýN¨7ןôº?¿üeë„D@DDD@™Ë·ÎC^}­Ü6‘nkLåÛç!¯>Öî?›H€¨ì\úôO½lü¥t¥Í{>‡½ï[?)])DDD@DDàNËŽÈ=Mü—óHW¾×óÿ²Õøì…Ôãø§æ 9™“ˆ +Asz”6;/ ÊŸdÆ8w$nÅd‹ WÀðXò}9ŒŠÎÆŒ(-¨Àâ²ÅT3þ( *6ësá[­‡r!nÑo¥ AФãWWFÐÕá íBb-!¤w–_ÓŽ½«®3.'?À€×eÍwQY “ —Tê";š˜ØxUÒ> N̬á٘ץKûÛ{ž×°¾XÀJ…»O¯ìaOÄ ¬ÕhÔ¥-š‘ióV:šzb”c+ìo;AVtnpà ú{K:ÂÉDöìŒøådï > vx) €»Ž ‰BAxÏ…^Sìl©[%1ðó&\8XT¯Êbð1ß@YéÚé{Ýáá[¼¶ØÛIœwüª4¥&ñí8C½î­Þ¢‚GÄØbfÛÜ@Ô›vDg8Ó‹œÝ’Í·¢G*¼@[!Àð÷½ÕGP×WA¸Ai¥†­’\×$qK»c0ãÜ—`—gÂÜÞ'¬UÅSMSyµSÏAl¥¡Ž®#(l#nÞ\^÷åÄ`œ‚ì`ª’½œ³üî<ùãç²çN“qI»»+Úú/ªùet“Õ;A£[…±VÜ®´•“RTRÚ™4/tr7¢éNÈa}KUe¸ÀzJÞú °ÑŠ›tmØ‘ÝÂHh89ahÉô¥:8¼“Ïž_ç}î¼Rœ©Þ/|^×}­¯á»äkr… “Á\×iÊöÑ:¾‚Z{¥#µ4´n.0úo×@{NK@Æ8ª¨*¹BPÕ¨bibtå{dø§Á­Sä̰’ |à L0¥ÁÔ¢^}U¼lw•-IÉ*æhË‚ªª…À“ýH é:ˆÁêS* iQ󴀉$;¨©-iekG|¼áq`¾›}E²ºßOs¶Túhf’Ý©`“®)`Ák€íx)µºvL²hª™.ð9äÅA ¸ÆÜð!ÂS€âL%økvœ#ηt¾f‰cž©º”e²Þ»âùµ–|ÓOÖD¶·3æ®*šj©©j – ˆ^c–)ZøÜ \A ¯È‰Ú⯨õv¡‚š*Y«c¸SÀÁrCTf³h­DLp´í tqå¡FàÇ,ñKÁñ<# ž²!´¯&9j§¬ÎPÜ‹h‚²Èü,í¸×ëÔÿnÏnÇ|ÃûBò}+NFW­;q³­1þý¡êTD@DDD@™Ë·ÎC^}­Ü6‘nkLåÛç!¯>Öî?›H€¨ì\úôO½lü¥t¥Í{>‡½ï[?)])DDD@DDüöì¹~;#5CŠ~g þ„¯ç§eëùEê‡øy§æp 9“ÈV4¡Åƒì*¨$`:ÖÃl t@’:gaï¬;°¬«ZÐx{йîÂÍ!ai ¬Ò=bm 3Äç%²îØ^÷Ð2JÀ%Žöˆ.q8kG[ŠÍ )‘ÂjÂ×;g0;–ÿy^¾ÙÐè–+-Š[­õM­TW¬ŸÊ¹¿•×)»ìÇSäUÕLì@ÆÇªè 41Làê¹e¨\oO²[ÄŽ¥Ž¡­Êóåí,dÝY7üOîOb< z¶Ž!5Ïil)II)&æÜ–R½¾W,÷§£)…8ɹs"ÅUűTÆèf<>•ÇÜ?ñ־˰WÍAŽVlHÖ¸{ª{évZç êÚï·Á÷&ÚŸíÅ_ü{¥¯ÐÞwá 6Þé7‘=§«N?râ ˆà“HJA ’¼šve¢žr׳àVÔµD´qïxH‹ŽTÊlW9ò—.ÀH ðªã€3•ŒUl<`þ4QÑõÏ, ÄŽ É'ÀÉ'¼Øî÷Ø_©àp1‡co`‚þ=gÜáœ.iÒpQÛi¨i<‘6ZÉ›.Ó_µ‡211´?‡œúV•÷KW4ó2Úé${ƒZÆä—Ôï•k{ ejÿ-÷ü¿ŸûÌ•j™EhŸ/Ú~±[–o7hÚ×ɶâà Š:ª¦M$ÓM#jW22àÁÇ‹ˆê_]—PÚ›|Q×\4Sn¡<ahÁsÇï³Àq'ªªíu¸WM\¯‰¸Øˆ˜Ù²Á†Žºá}O> ïÿg!Š­ˆiÐ…¡Ö–ü÷GV¸6㹫¢^¦Ó÷‰µÊh­5ò2J¹\×6ä8œqÔµšØ]߬tr0–¹®-#¬Þ*ëUÔ¾K£d•î|¤¥sœâIq0FI'¾V!¨kçÔ×Åv„çeµ»Os -$µà‡·ÒŽØëà§USu%ªÍóÿ¯3'³å§„¢í­˜Ý+Ŭ–—º—~Ïiªšªª*¶ÔÑTMM; Ù’'–9¹8#ˆàHV»4kX©£¦æ×X6T™ÔGÄ™˜3Ü–þùÇtÀLºÙè«(*nÖ¢alRfzøâ\×דޠ[‘œúeKH_M;%ŠGG$ncÚpZGAEC:,³Oòëó“5-Œ_ú´ïÅÙß&ŸV\V|ÖjQz3î8²¤2=®.CY½ÒAOM ’ˆ¦§Œ€!—g=Ës‡aÄx0æþô]PZÖsŽË±¯ ]W†Õ¬ôkz{Óìðz¬š>öõ,51µí?aD|ØZÈÚ€G>òªãO‚~Ï…Vìž+`ª!ウª‚\3…G´2¢CÔ¸dÃx >›ÊÊØ¶Ö¿%H¥Å‚¦œ´gúÕd®-8WÕ/k›Ž µÔÛÇp‰_—9~´xU´V×lçeßSHèÝéO_‚8Õ…„ܴq M4€96Xö‚Ä"Ù 4r4ް’œŽ ùÇõNÓ”“;|B•NѲ¸€ú ¼T*ºPàqùT‰¥-<'Ôw'8@QÖÓìö|*=3>ºM²qáPØ NP,ˆp^¤ìmŸôí ÊÐÏÇ Õ]€’öëŒpæÚ¦DDD@DDiœ»|ä5çÚÝÇóiæ´Î]¾róínãù´ˆ ŽÅÏ¡ïDûÖÏÊWJ\×±sè{Ñ>õ³ò•ÒD@DDD@_ÏžË×Ù ©ÇñOÍ!_Ðeü÷ì¿oÿÈMNŠ~i ‡‘ Ç…\ÛêœÖ“ÕáT£j\/Ùq$Åýd¨òŒ¬1¼• 4‘ÅÄJÄøËq೉ u¥U;&ˆ°äŽ¢®ÃF”«AVmAµv³i_6—w¶E]<‡x&q>SPHë* Ñ˧îÚ?|:Ôš&¶FåŽðñê^ß¶ðøŠ²x¨$è/–.Æ+t^IÅï´”dÝݳ¹]6—˼˶Iã•"–Œ¯‘üe`’w::\´€éOöï¯3ìú¸Ç'£ýRyF)å›ôI6÷&NSQ,âª#†O²€üà䃃ǩS:Š!ÆW>Wcs—Ói)Â8{§ûÖÙa½‘²ñ|Õ5nëÔM÷¥÷ŽÕN Çüm¯ÚlÕ$;3HH$ñÙ_Ö¿j%9ë*9ŠH†)¦sF}#ø·¯«ÜXÌÛÂZæì<-+W¶°þýV®? %:yežÔ"­í'ºÖW‹qÑ]]"4ÞÊQ–¦Mé=òÙàxƒÖ ÄÐTˆ£Êù´ÚwEÇå Ì2Šw¸¹¤f3Ž÷|+XÜ KHùa"?ׇ3ì…ihÕtQNܶñÁÇÿã^ß´­¡hGêofk÷­u,•–ÚOù£'£*‡Êö<ê_¬qiRŸLY×ùVcÙ Ã-?]/sÖ¦iJJzËÜn¯Š¦Z fº¦¬A ¤véƒhŽäã†ídµ’U²Uõ¾Yhô]T­4À\ªÛM’ —b$xÎKŸ 8p9`àFqe$¶®ôYþvèbÇÊ}Ä¥&¢¸«ê×8«ÉvkîuW[­MαûSÔÈd~ Ãrx4d“€0Ï[ Òéëc+C¥‚é]æáÑ™SV»¬9Ĵަ‡ß4­6ÜÞsY6ú7Ò6=ìÎÙc2q´ãÞ¬ŸŸy¸ÁYu’ZCQÍšÖE8-2nØÀÆíl€3†Ž¯„õ™Fm^£×ò쪶3pÂEZšY«eeeö?EmoMQ‘Œ¬²=¤*zYNé'¤[jg¶XmU;¶²Ih$Ù'1½ñ4ñ={1·©US¼m|*Æë»ŸOYêXçíFÙ©ÒÐ[&ó çˆ"`:‡•Fç–8+k}W佇ÙÖT6VŠRK±I¤»V\‹ê™èªb­¢™ÐÔDv˜öõƒýc½ŽúÇ©é-47ú8"‚šªC°ÂÇSÌÐ hÏ 8ðá’?{•[Q ÁüŠ~­£}{­×1´UÍܾGŽ<þ·7¦¸ñ$úRñß]¤ö¿Óz?'ù¯ø+ÇSèšÅÁ|ÑYÛYGzæÖ±ß|–RwùÒõ”ðWˆkËùHÜÕlœÂAÚå® v㳎¢TK«f£¨š–¡¥“C#£‘¹dpëQªÛ-\ô• ÝÏŽŽFä—4àŒŽˆRõ%L—e âyú™_%,ïyˤtMa'ñ#ú$—Ë^ =Wç¯÷%´¡ˆH;Æ¢¶»Òm5»8Ý7«´‹*G¿/ë_¹ u¬QÆâì¬Îikxª@üáÅaš=¾¥òùr‘N湚–ÝKIG ]U(ªž}§EžæÆÎÓ¶x»$<Ò 2r²Š–¦†zªZnk5>˦‰.Œ°¦íqn ` ¹Ä—ä` +ji)jhá§©Ÿ›Ë[Žas ÚÙv8ŒâÎÖQ.µ´”SÓRÏÎ&¨Ãe•¬-``;[-ÚârC $7yß6Öý«óµ¯ý?O}ùžWÏ·û[{_½³³µýG}ÿxÖˆâ²FXÉã•ú%z'ªevO}YÌúh+¦…´0lÇ#š só€qü%Q¼ÊŸZ)箞f\iƒd‘Îh,“8'?Á[°×襳³{­vtÏM®ëØôpwèg±³µxý[:ZW¶×uíȸaô¬‘±1„¹ÍàOx ÷T*ºxß’X3"¤†&TG3„s‹ìC@ëÀWìsçÿeV2Ý.VÑik^Êúe©V>Ý6VÒ:Z×ÙWÓ-u¶ò]0hàY ‰îžy¿4ìÞ6˜ ¸ë$õì´qv;¬u`m=³*ˆsUI2ÁPÉ¡‘ÑÈÇ1ív H9ñXªÅÊ EÙþ~qàyÕ¡)ÁÆ.Ïó׊Ín̹dî¹ÑOQW³”íµ¡­v},Dÿ±ÀØdHäi%E¯¸OV×¶(£fKc…Œ>™Ø2HãöhhÝPæ÷ÿ… n ß.\?<=]xjR§ue¹-ç‚ÑqvSìŽ# á“1•\*óêYZFUæ’LQæ#¼°M!iÂÄ$.@c›‹¾êùÙÈY I+é£hò4µ¤¯T~§£Ë®A=]ý¥yzfí0à^¢ýOhµÉ=þþÒ€õ‚" ˆ€""ˆˆ" LåÛç!¯>Öî?›H·5¦ríóןkwͤ@Tv.}z'Þ¶~RºR潋ŸCÞ‰÷­Ÿ”®”€""ˆˆ" ˆ€""ˆˆþ|ö_ŸÿzœüÒý_ÏþËHLÚ›Áþiù¤(9{ºŠ)ÜÞñV°Ò5ÉàXçØÔÌÁV! 3î(1;SKþg÷ÿ~¦CsUvóVT“ >&¥õ(2ÒÇ··ŒR ½ÿ²;êΪ^äý…Y$‡hñZ°¸ÚøIíÑ“MëÁ® h×'tFQRÔüsjæo7”µ±íaҰ๸ðÇZϘâŒG kF 9”ÖV &'¾VŒoµ*â©Æ–Ê„{1VN[äÕÞoÁi‘ÈÁEÜ‘#Á=ké˜ÇZ€e9_¢r8d¯4™-üZˆËû¦ä=½D~E’7—©QCž<¬6® ´kQy¯·¦·¦²kz#(©+2-7Í#kÀ#*lx =,{5uQƒ–‡}Ò2T’Ò´ûc O Œ”i} FQåÅN+=éI&÷Øå97Ëfˤã½ùU憧…—‹Å«j-˜¤lñ44aãˆÇ½Èáá÷BÖh¤1ÈOy]Zn;½`'Éý®,ë«•§ÙÛ¡Š ô”/ß&Ÿ…×yšÅó.ïT̉ÇÞ÷UCYÝ+÷îë?ðªâv†W†ZSÕAÝwÕ{dƒHÙá–=íMULnÞ0í1Â(ó²Ðî¡xî€3ÇjZmKÂÕ§}íçu È}2ìþèÅŠýZ?Äÿá3>’ZiîH*ßM-²1Ìas‹¤-€`‡7dælídãÁêUð5KÓGEïk?;§P0hà»<£ßçþa–ÕzÓzÝG¹E?Y?Ú:Õ<ÔÔT쬔ÃQPüî 8sYƒ¹WXàÃ×Öîçúäu'gáVÚªYEúzišÖËFFý‡í4º6"àH fz»ë‘É9WùêFŽæ›}Ö˾ù¾VÞXÓßëÚçú}ÜŽÚ0hÌ!ØhD[°Œž¿ _UÑÜ($¬¡¦æÓÓ÷UP¶BcÝ’ÖµìÚ˽1Ãq9p#†Ch"y—o¸ÉA[TMkݲXþ-xê-pï´Œ‚;ສ7”Ý×çç2º˜8SùðñQ’á’|²Ó$ÝöuGÄ€õªÙ˶»ëiºiëƒ.U-¦í· ž)jê¤d1MNÁlÙc‰oƒÄdŽ /k¯gu[qµS3¨?¶|ŸÌ;nþ$cÝÉ:³G!íL$⥉ßrÍø,ïÊÇÆ©¨’ã ªë Ûž¢ŒGS(s·,Ot}Ñ$÷{¶ÄHÿ¤;¤²³žÙ.ã$%µ~ø÷'fF´w²×¸Žô##"|ÑØ"°Cm«»>Ybª’xå §tíc\×¶QÌÚAþû p*=uŽÖùd£7餂XZec)ÛÜna$!g­¸Ç<.’ùö›Vk<ùgæy´§ÿÕèiÂ[Qoel´¬¥x«»$­eªË$´FišŸêQ+bÃN< ;*p޿ưO;\ È} IV×¾µóMPZpTº°×gPℹè í©$ŠÇ6Ô‹é´ä ¬ñF;ø@W˜\QQeaï«çÄÍž «j£÷âor‡Ë탂Ã(9@fÞ8õÜzÔWÖ¾c~Ö€²sÉ <£+4|X¾d’4aFtEÇ€*[ÆJ•GNz¿--¾+èZx¥TƒµÔ¾#VW `ÒN{¼ª\â×á-›8âTz™z—ÛK‹x,Æ]Ö€ÏC+^ð:×­;ÚÀÍb[Ž<Ç?Î’)!!ã¾½iØf²Éõö„¨QDDD@Zg.ß9 yö·qüÚE¹­3—oœ†¼û[¸þm"£±sè{Ñ>õ³ò•Ò—5ì\úôO½lü¥t¤D@DDD@„{)Ø=u#ú/æ°¯w/ vU|þ5&?Ñ5…Ì*d«›$’¦½Žqê+é”RKéXãö­§JÛC L¶©ÙÄÆñ÷6BèÏB£ã•&¸ ÏÇ÷„ 2U4ý…Ç.*EQ$}Å µÅ÷'R"Í!8Q$qΠ䯶°’¿)ãsQRö6GÕ4xSí¡2@ Ê×å÷==,Òo%ˆug$~EñÌh»Ðÿâ?Þ¾œÔ@¯V—·½©F O2ÙÒ÷ gvß_â_L‘‚Wà`qʉqõËÀʲ §ÉÉú…p¬é% äiã iû ê6QU¶(Ë‹LÉÝq9|myün*P¹IJט›Ní¡Ç{$êðm¸°j+ü•5¸DøMnw1ˆ8;tÐàY‘‡d á…’r®«¥­›=ï—.Ûfa©Öî?›H€¨ì\úôO½lü¥t¥Í{>‡½ï[?)])DDD@DDá>Ê’/ŒŸô_Ía^ì^ 쳓g—H?Šþk œÄZçî­»JÐAPæíµ‡€ëêЩ&ù¨ãßð-žÏu4»$ðýî{è î÷b¤Ž”¹¬9CÝ\Òïb‘Á wú¾ÊÙëµ+¦ƒd»ÁûŦÜjw²Ÿ{Ý@@›%ËêZü{ žr€—+šB€O‰Î%e¥iq@BŒèzµ’,1B-ÄŸušŽÔ:—åXÙà¤@àÖ}űù( QF\Vf±Í+ò‘Ã*YÙ#( Dá¼WärŒ¯š‡`pQZîíkY À r`|¥(8g(ù@êPÃÊýÉ%.)rVÇ£\%»š3ÝsÚy©™ê’GÆáO{õÝÙðôm!IŒ¸)B[2L§G§£*wµÓWáϸšùj³×C¥-ôZ®p­Ìû,ÃYVÀ6‰ÃZѼil˜â_à_:ÐË\Ú-DíÏü§ßöÍDxd¹ Æîæ^¡úï5ºV¾‚Ùí÷“‹]|F)Ÿ»t†žLÜíhp˘ãöv\ñƒµ…rJ2tÞñ?Î'›R¤ªÒ†2+æ…î–o„⸴ÖVY¸­Ì¨µÛç¹\à¢Ìc¥~ ’zÜ÷Ñ—8÷€'¼¦ßka|‘[mò-ôqÁ.Éo8%ĺw4ãwÈkXÒNÎMýÆŽ§H[§´LO}®nÍaŠ¥®Òž¨Hn{§î>0~ýÁkL¦Æ£5Ñ­‡®ÿ·Ü» Qc'ï Þ é¶iñ—fèò»ÞŒß/0QGEΩ´Ñ8>·„¶‡mƤvsÝ7‰Á9‹]p¬­ª}UmTõUÆÜ³H^÷``dž'€î,²À?ÅC‘¸*·95fÍÃÒ„œã›ße|õñ>ç9(׸wÊýà…‘†£¥'dn‚‰Í“fZs,sKœ²Ù9ÉË^FH <Š»±*µ:89ë«ÝI ®’ìŽj6 “SMV÷íË kñ˜ÜÆì0†€v˜rO JuÄ]­õo¸EDk ‰²¶¬»u4§xÆ–;™\vÜâHÛ8$¼†ìj¦ygžJ‰å|ÓHâù${‹œ÷’ID£„ž_m—û(ÿ+_MõyI7šI¶ÝEVUs<Þ[eÂÿK;·•bÉ,»-{DñÎÌrµ€œdì€2©[yŠM6Ÿ³ÇQ´ç2wÇ,Å€¸‰^èÈ즌íwJ¿Õê^±ÜEß¶6ñ½íÝ~[Œt:úšVWÔ7£íÎÍ}Tol ãe¥­%îÈ#e ž\F;µ:Á<ÚŠ Šzpí­œã.qÀÚ{°6œkZц¢jÛ…[ë+ê§«¨“rÏ#ž÷`2OÀ÷j+}E}l4±ï**%lQ3 m9ÇdðO}ý˜ßçQ§$ú\CYxGŽº½ÛYe¢WwøÓÖ¹¯7FÓ3n8#iš®vÆ^) o% u†Ž8ë'q ,ú‚µ×«åUÁÛ286&²ÂÖÄÐC! 1­ÉÆ:ÏY°¾:Ûlµ:Áinþ¡Òž’¸ípœ±Çf(°p`ÈÉâ÷¸†ì€¨á«³´#°»ÿ9a¶±&JÊÖÖvÊïÍeeÁ&ÕÝ—ã ÀQeîJ°s²†’ª=î’Nõ³ò•Ò—5ì\úôO½lü¥t¤D@DDD@‚;+£²R»ø¯æ¯{¯öXÎÙ©šHáÍ4…Êê…ç T²µÃ¬(¯âx !Ëœ¤s–ðRLyJñ;<@Kdûû,…¤…™»'ŠœdhoX@`-9Y ‡kÿuð×îSiˆ >$‡`(®w)Õn<[Ýñ@dÁY¡îJÆÇ·a}x loR[‡5A€d…0e­@aš0 T3À¦K!Ê'FJø !ÊYÀX¤÷ êâ³µ™<H‰XRœã( TÎ, S*qýJ4€ðQƒŽØ@^Dàà¿%fTz'á£>3l€°¢¼[䦊‡QZùÜ1ᬬ¦~î®&åƒG-‘¡­ 5ã€8h|SX Í’?O\`¸½¼EÛ¹¬ 5Î$FIký!áÞp[Àg¦¤Ó…[3N ·¥¾SWõñûÜóÞTï,4ÜÜóô·—ò¸ç›%Õ2X¦’ ã|RÆâÇÆö–¹®zˆ=å†y'¨Ž"|³HàÈãcKœç€I'¼­cÕÚ¨õê[ÏÇ¥ùKÔ:‚ ‰êá¾]#¨¨ÙßJÊ·‡É²0Ý¢Nž¥ËS¾¯Ãü“SÆl»Â7·Yëý:xðæXG¥ki"Ù!³Â"Þîê^ÑRöíìágl’AÆÐkx\‘× J: ¨,ñe³~»]ŠWmñµ€€ùž¡Àcú–Hç?ŠÏ°×ž+ì@ÑÄ 2FÎV9²²Æà¾åkvò=+ƒ_ÅlThû«T•ŲxTû}qŒŒ‘ßï .îP|Ì‘àð¯Gþ§ðp~¸ðÐcùÊóSî¾<7«Â½7Ø ö½ÚØ·ü‡ö„©QDDD@Zg.ß9 yö·qüÚE¹­3—oœ†¼û[¸þm"£±sè{Ñ>õ³ò•Ò—5ì\úôO½lü¥t¤D@DDD@óÛ²ì»ü¢µ@Çù§æ¯èJð'e”M=:™ç¿Í4…ÈX|++c+>Ô [ *<Û>â‘>qÁ@;(—»g©atÇÂWÔ¹kiäîºûêÂ)0U8%ßuO¤idÈUó»!K{N:†8 1¶r2VvN ˜Ü³BÒJÒ–n!N媺ž"¦Ã<¥ù !Ë5CJù‡ -)$ËpWÍSxà$ Ãr¿&=äXÝ®òµ¤c8dVÀAÊ™„5e!Œ3 –¼‚N=Åõ5C³Œþ%Çm Íï¬È§Jaû ¢°÷gVÍ“Öy÷V(¥Gyÿ»Âvz”ÃI†çúÖ]ë@EsOYYü8•-ôÁ>ç…@–"×ãÝ@fžòûkÜþWÕ$CåYÌb2€ÁÍKøà| åôo`Èá÷ ³¥sJÍPælᯓ#]‚â½gúžÎ.ß'Øÿí+Êu` ½OúžÚ:èx:?ûJÖˆˆ€""ˆˆ" ˆ€-3—oœ†¼û[¸þm"Ü֙˷ÎC^}­Ü6‘Qعô=èŸzÙùJéKšö.}z'Þ¶~RºRˆˆ" ˆ€""ˆˆ" À]–’c² S7ÁÍ?4…{õx²¾"þÈN{ßæ¿šB€äó¸•õC™d‘[LDDã½àPèdÝTqðÿZdŽÔ_p~¡TÛÄyÈ#îyo®ŒÂ÷{áV^êÚ#À{þꂺ·8UŒç©Lž§nB2zü+õŒk¸é"#‰KÈ $ p~K‚í­j ]®ñøÕ3Nx«jhZGP@RKCÃÒŸGe+ƒ¸ð-–¢Ô1º‚ =9ˆ?™ >çâY# ÇFð@~n¸(•Ž*Ã#eB©žFã 3Óà(VóáÁD|$œ #`l¨€‚qáVÞ ,Ñí 2bÞµ•YÈøVˆˆCøøPª ŸÄ,—1ÙŸM{Gòû’‹‡>(ª°Ü>‘’‡»¼¢ËNöu~EûÓO -[Áb˜–Ád†NR}—0õu +e›»9+ôT0L> äíÛŽ<*¦Jç£ð /*jZZ@#áPOvüªñTç$ü+$u!§‰üh &·e«$uMŒñ!FŠpñ…‚­®A@[ŠÖ¼`ð¬NJ¤¡Ú.âJº‰ŽÙà€—$Œž#©SÕ½¦CŒu©[Ö°õõ*ÞéÒñÏZÖÞx|+ö¼à}Å&ÙZ3î¨÷¦†0ýƒùP ¨ 8ÈøWÍMWº>W¿;Â=kêM·Ž²€–dÞ ez»õ<ZuÑ=þþÒ¼›A ½ØåšÌÿPh@z™D@DD¦ríóןkwͤ[šÓ9vùÈkϵ»æÒ *;>‡½ï[?)])s^ÅÏ¡ïDûÖÏÊWJ@DDD@DDy§–n@5†´åJïªm—+ 4U»Û*g•² ˆ#Œä6":Ø{熥‘ãڮŽ{,e­»éqß©ŸÈª™;yF26õ¥1žýUG^ØDŒ)û9HŒ`Þ´§Ü©ŸÈ¬5݉ܤÎmïIŽúª ½ªˆ ·±”Àü›æ‘øÝGRYØ‘ÊKzïzOãUA{m/‡±G”Fêó¥~åUG‘_nìRåŸÛ-ñ©üŠöj ÅžPÛ×yÒÿŸÈ¬£±w”f4ÇÆgò+ØH€ñ÷ù/rÛ1ñ™üŠÂîÅŽP‹³Ó_ã3ùìt@xþŸ±{_Gé®úgîTÏäT±ØÏ®€ý¶ÓŸÉ/Z¢Èsv1k×õ]ô×Ý©ŸÈ¨ÏìZåÇ…ãL|f"½Šˆ Sv/ëèÎ]wÓ'ìTÏäTÇv4ë¢Ìt¶›Ïñ‰¼’õš íLþE|ÅžP1ûq¦>3?‘^ÅD%ìSåã…ãKüj"¢ľQv²/ZWãUE{Y4¥ìUå ,m^t±û3ù7ü—õî1Òúgã3ùëä@xòNÅ­xáûo¦~3?‘QÏbŸ(Y/ñ©üŠöZ Öî?›H·5¦ríóןkwͤ@Tv.}z'Þ¶~RºR潋ŸCÞ‰÷­Ÿ”®”€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€-3—oœ†¼û[¸þm"Ü֙˷ÎC^}­Ü6‘Qعô=èŸzÙùJéKšö.}z'Þ¶~RºRˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""ˆˆ" ˆ€""´Î]¾róínãù´‹sZg.ß9 yö·qüÚDGbçÐ÷¢}ëgå+¥/!ò[ÙA y;äÛMèëÝ£STWÛítûÙ(é tNÞFÙFÉtÍ>•ã9Ž~ÊÙf§%§éYüN›Î˜Eæ‘Ù¥Éqú_Ö¦ó…ú;490?KÚÏ┾p€ôª/5ŽÌîLOÒî³ø¥/œ/ÑٙɟµÝgñJ_8@zM›GfW&‡ésYüV—ÎÐìÈäÔý-ë?ŠÒùÂÒ¼à;1¹7ö·¬þ+Kç ôvbrp~–µŸÅi<áèä^r˜\{YÖ¤ó…ô;09;?KÏâÔžp€ôZ/:ŽËîOÒÆ³øµ'œ¯ÑÙyÉñúWÖ¤ó”¢QyÜv]r~~•µŸÅé<å~ŽË~•µŸÅèüåèt^z–Úý*ë?‹ÑùÊý–šý*k?ÀQùÊЈ¼ø;,´)úTÖ€£ó•ú;,41úSÖ€£ó” ‘yüvWèƒô¥¬ÿGç+ôvVè“ô¥¬ÿGç(þ‹€ŽÊ½~”uŸàh¼å~ŽÊ~”5Ÿàh¼åßQp1ÙO£}¨k?ÀÑyÊú”º<ý'ë?ÁQyʽ"àòH¤ígø*/:_£²‡I{MÖ‚¢ó¤xEÂdþ“?IºÏðT>t¾‡dî”?IšÏðt>t€î¨¸Xì›ÒÇé/Yþ‡Î—èì™Òçé/Yþ‡ÎÍ ’údý%k?ÁÐùÒý’ºhý$ë?¼¡ó¤qEÄdž›?I:Ïï(|é~ŽÉ:~’5ŸÞPyÒ·"âC²?O¤}g÷´t¿Gdm€ý#ë?½ ó¤lEÅGd]„ý#k?½ ó¥ú;"lgéYýí ;J..;!ì‡éYüv¿Gd-—Ú&³ø-þv€ìè¸È섳ûCÖ¿Î×Ðì‚´{BÖ¿ÎБ£ô…¬ÿý¯ÑËõ¬ý ë?ÿ_çhÄ‹_-žÐ5Ÿÿ¯óµô9z·¤ gÿë¼í×ÑrËżýOõŸÃnóµú9v¡?SígðÛ¼í×Qr1Ë¥úŸk?†ÝçkôråF~§ºÏï­Þv€ëh¹0å”ýO5Ÿß[¼í~Ž[©ÔóYýõ»ÎÐa(¶@~§zÏï­¾x¿G-PŸ©Ö³ûûož :².T9hŒýNµŸßÛ|ñ}Y˜~§:Ïïí¾x€êh¹hå‘§êq¬þþÛç‹ôrÅŸ©¾³ü%·ÏE/°þ›ë?Â[<ñ}Wž~¦ÚÏð–Ï<@tä\Èr¹!úšë?Â[<ñ~ŽV¥?S]gø[gž :b.h9YœýM5Ÿámžx¿G*õý3Ö…¶yâ¥"æã•Z£õ3Ö…¶yâý©ÕŸ©–³ü5¯Ï9¨Ö©Ž³ü5¯ÏWèå>¸ýLuŸá­~z€è¨¹àå6¼ýL5Ÿá­~z¿G)wõ/Ö‡µùê¡"çÔ›‘ú—ë?ÃÚüõ~ŽQî‡ê]¬ÿjóÔ@E Qn§ê[¬þ1jóÕô9C»©n³øÅ«ÏPê- rƒx?RÍgñ‹Wž¯Ñ¯ï'êW¬þ1jóÔö‹Eöö~¥ZÏã6¯=_C]ß?úU¬þ3jóÔð‹Hæú~¥:Ïã6Ÿ=_£[ßÏÔ£YüfÓç¨ Ùiœ»|ä5çÚÝÇóiÈÖºƒÿ¥ÏãVŸ>Z×+Zžóqä“[QÕò{©­0ɦî[U•“Ûx¤”¡ SßÄ€x‘œ ó{[~ÝSû×oüÎLÅs­¿n©ýë·þg ¦b+VV¬MYZ€ÊÕ•«VV 2µejÄÕ•¨ ­YZ±5ej#VV¬MYZ€ÊÕ•«VV 2±ebÄÅ•ˆ ­YX±5eb+V¬LYZ€ÈÕ•«VV 2µejÄÕ•¨ ­YZ±5ej+VV¬MYZ€ÊÕ‘«VF 2µebÄÕ•ˆ ­YX±5eb+V¬LYZ€ÊÅ‘‹F 2µejÄÕ•¨ ­YZ±5ej+VV¬MYZ€ÊÕ‘«VF 2µejÄÕ•¨ ­YZ±5ej+V,LYX€ÊÕ‘‹VF 2µebÄÕ•ˆ ¬YZ±1ej+VV¬MYZ€ÊÕ•«VV 2µdjÆÕ‘¨ ­YZ±5ej+VV¬MYZ€ÊÕ•‹VV 2±ejÄÅ•¨ ¬Y±±dj+V,LYX€ÊÕ•«VV 2µejÄÕ•¨ ­Y±µdj+V¥ËŸÎC^}­\6‘m­Z—.9 yöµqüÚDšùì_Ò¼¢h+f±Õw{Õ<× J^i²¦&µ°GK _4Bã·¼d½DŽþBÜGa_%£éƒYür›ÍÕßc¦·Ø¹9¦¦¬­æ×!WUYO-T’ަšŠ8]âØpÙåÈŒ4<».Ú ßPi…¼—¦ gñºo7_£°¿“ôìþ7KæëÒ¨€óXì1äÄ}1k?Òùºý†|™ûbÖ¥óué4@y´vòh>˜õŸÆ©|Ý}Ã~MGÓ&³øÕ/›¯H"ΰç“lšÏãT¾n¿Gaß'é—Yüj“Í×nå*šó[ÉÖ¥£ÓŽ™·©íQ[ Û™C¡pˆµä‡m–áÙMÏãžl­£§Ô—ˆ,sÉA¬õžÝS¨­³GfÔ&† :›a¢tÏuT›f%nÓž÷v—8¹u>O*-•:J•Ö“sñË<ŽåW%ML3G3ãš)%‘ïsÜÉ[#2æ÷=ËvJ‹ŽÄ^OÇÓN³øÅ'›/ÑØ GÓN³øÅ›/C¢ÏC±'A¦­gñŠ?6_£±/B¦½gøz?6^„DŸbn…MzÏðô~l¿Gb~†MšÏðô~l½¹ýÖÜÍQÊÚÉt¸^¢ ¶Y-õT±[®õ4–¢zÖÊçydËiá<¸7dìãiÙŸŽÅ >›uŸáèüÙ~ŽÅ->›uŸá¨üÙm†ÿy¸ö=èûÕMÆaq½Å§¢¯©„îdx¬©¤Š ´³·9“H™²ZNZZ@"³R¾³M]oÚ^Ów½6ÚþÖdÝ**jÏî³RUlTJ÷LͨckFËÆÁÌÙy. kVÅM>,t9«µ7Kshù÷2š—›ïöFów·Mµ±µ®8Æx©Ã±[F¦ýgøj/6Vú•õšjë~Òö›½é¶×ö³û&éQSPÎuš’«b¢WºfmCZ6^6.fËÉqÙ´Í Öíqªt…¾ózŠ–K}e<µ5òWTSTTK]’2J£)ô´ðÇm0“³Ý;h v,hßmúÏðÔ^l¾‡bÖNÏð´^lº?#2×É¢emÊé[u©‚÷x¦5uŽk¥•±\ªcfÖÈ kZkZÐ æ€àñsH§gøZ/5_£±{I{rÖ…¢óUÞÂc“NZÏð´>j¾‡c”NzÏð”>j»ªÔùZ«ª¤Ñì•3S:®ïk –Hd1ɹ¨¸SÁ0kÛ‡1Æ9ÚCšNZC€ n;4°útÖ„¡óUú;´¸útÖ„¡óU½hªwYyEÔ:b–ºç=®žÑm¯Š:û„õ²2i¦®ŽB%ï“d¶ž.ãkd’.q:–Ýg@öóÒ÷®šíߢÿm*9§5éîa»æ›|ßö7qµ»ÚÚîó¼îÐ×ÞÆ‹h±×ôµÔÝ-ͤæ<öJ>o¿Ù;½æÍ.ÖÆÖ6¶xã8â§Æ­4>µŸßÐùª—·YÐ=¼ô½ë¦»wè¿ÛJŽiÍz{˜nù¦ß7ýÜmnö¶»¼ï;´Û¬èÞz^õÓ]»ô_í¥G4æ½=Ì7|Óo›þÆî6·{[]ÞwÚ0ìlÓcéÛYýýš¯ÑØÝ§GÓ¾³ûú5[­H¹Òòëjc¯÷9íÕú~å0¶HcÐ>)­Í`cç8ïs#žFÓƒvA êVjI¬ú†JÍigåÉ©']»h‘ÖÒÙîm 9´U¤ì9²SŰ`ÙîÀhsc†žOÏï¨<Õ~ŽÇ+úxÖ}Aæ«¶"ŠŽÇKúyÖ}Aæ«ôv;XÇÓÖ³ûê5]¥\v·šGÐÚ÷Ssžsß;4;ó7øÙ¤ÎÞëy±ÞÛÙÏ ­ãZÓºõÊ.žÓU×8-u‹•|±Ð\'¢‘óC5 q“,d›!µ÷[$¸ kHÔ´Óë5-ÖÃ¥î×{Ó­¬í›ö5Ò¢š¡üÂë %.ÝDOlÏÙ†G4í<í’ý§€àØìµ§ÝgÿëüÑ~Ž@mcéûYÿúÿ4XôÓë5-ÖÃ¥î×{Ó­¬í›ö5Ò¢š¡üÂë %.ÝDOlÏÙ†G4í<í’ý§€á6Õ.z&;†¨Õ¨,–{•â€ÃK[S UK¢¹>š‹æð=µ½±Æbåî™ò´©I8äÙíÿYÿúÿ4_C[púÖþ»ÍÿÉå5æIRÁ~tƬK;£dóo¦†œÌóO²eÛr²ý§í9®;oÎÛ¶!ƒÛÇÕYüï4_£šõAÖ»Í]D#…Ѫ³ø-Þh¿G!´cê…¬þöÝæ‹­­ZÓºõÊ.žÓU×8-u‹•|±Ð\'¢‘óC5 q“,d›!µ÷[$¸ kH_‡Òª³ûÛwš/ÑÈ0ú¡ë?½·y¢Ê/÷›wcÞ°½S\f7$Z†* ™ŽúF :š¸©Ë‹ó¼sY `¹ûEÄeÅÄ’k9D}g'}/Ú½Þôͽ}ºÊ7J‹ŽÍU'4æò7>Mü¹kp×dml·}\9®–ÞŽåSsnrzC~Ú ½ÆæLn±G½îç;\66ûøS‡"°ª.³ûËo™ªþQYÉßKö¯w½3oD_nŸòÒ¢ã³UIÍ9¼çO“cg.ZÜ5ÙAÛ-ÅÕM–²Ç® Ó:_PÞ¨zgMÝfç…E×›ÕC-)çkj¤~69̤±¥­~FÖv[€#EãT]g÷–ß3_C‘–ª6³ûËo™¨wK-Ýô:º““{– šéû–®ûSRf»á­§³TÊã¡"vÈö9Œ‘%ωâžNŲ‡UlºæÇt¨¡–jh5¢’ãD1¾!+ØÑYQÇI%Û"Nç#oC´}QõŸÞ[|Í~ŽGqõHÖƒ¶ùšê(€åã‘óÿÔgø;g™¯¡É ÇÕ'YþÙæk§"™HäT­gø;g™¯ÑÉ,£ê•¬ÿló5³r±t¯±òY«ov¹ù½}¾É[UK.Ã]»–8æ;8‚ðª[U¹š_•;M’×p½KAs²\*ª¢¸Ýêkó-<ôM‰Í5<džÔLahvÐÚÎËpAÉ4ãê—¬ÿló5J/½9U½å3StO6‡›lEnçý©wÛy£ÙØÙÜlãŽw™á²«õÛë&µr¯ª:^õËIoz›]* §ƒuj¦«fÝ©ºÏð6¿3Tíõ“Z¹WÕ/z‚夷½ Í®•SÁºµSU³nž7ˆfù´²8ïXý C]–Ñ7–h$³[ï·÷ßu1½ÉM4ºs™>¶* {â§fíµ[§s]þÔŽ–¬¼µÄÇ,Ç%Õƒê¬ÿkó%ú90®Tígø_™.Šˆx92¯Týgø_™/ÑÉ¥Ä}T5Ÿà-~dº 9ðäÚä>ªÏð¿2_£“‹ ú¨ë?ÀZ¼ÉtÆuÛë&µr¯ª:^õËIoz›]* §ƒuj¦«fݪúÏâÖŸ2[² 4¡¢µÿUõŸÅm>bµ®V´ÅæÝÉ&¶¬«å S]¡Mܶ¨ë ·6)3I(FV? Œ8q9­-3—oœ†¼û[¸þm"HìZ°UKÉÆˆÔõ×dŠ“NºŠÛK 1Ñ2wÂùŒÏ/võÅôÑìl¶0Ð\y ŽÔ¼mÉw+ÜŸX98Ó¶y9vÕ6™©m°2zl´ò2š]€d®u½åÀ<¸\îóÖ¶OG^O>¸½_â _ѨR¢ò×£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€õ*/-z:òyõÅêÿRþOG^O>¸½_â _ѨR¢ò×£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€ôÅúßÒÖ:û_=­ ç”ÒSóª)wum´·yðv^Üå§´kï'÷ýOCwf©Ôöɪêôý}ŽŽ[môÑÀÊÁöI%D¦W E 9€ °s´ y£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€ïöJ-} Ò/z›LÖÐ ­ìz~zi_ÜœlÈêÉpì–€G ä5fžº×ß-ºƒOÝè­·j jš6ººÕtï‚wBù’Äàýªx°í¼¶ I ·€z:òyõÅêÿRþOG^O>¸½_â _ѨÙI£/ö‹ukÚªkŒ2×MXk(= Kë*9ÌÏìž75Í—""dqdo{NÙvØØ4]‹µÛmΪçs>¦¦²¦aí¯ž¢y'”±™%¬ÞJý–—8†à8‚ãç?G^O>¸½_â _Ñ©èëÉç׫üAKú5êT^Zôuäóë‹Õþ ¥ýžŽ¼ž}qz¿Ä¿£P¥Eå¯G^O>¸½_â _Ñ©èëÉç׫üAKú5êU©ß´åüê©õ–¾Û-Õu”0QV2åk}lnd™ñÄsÂXìÔKµ’ðFÆpv¸7£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€íŽäþH´•.–¢¿ÌÛ]®†Õ¦9é™# ¨·Í½dÒ¹»&VÈc§`Øá¶\ÒüŒëteÒ¾ý¨h§¾Vtv⢊ÚêzXz>¥õTÛP¾iÿ›Híæ%nÓ0Öì^x×£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€ìµëteÒ¾ý¨h§¾Vtv⢊ÚêzXz>¥õTÛP¾iÿ›Híæ%nÓ0Öì^n´žžºÐ_.ZƒP]è®Wjújj7:†Ô”ì‚LøÀòÊâýª‰rí¼°A»€z:òyõÅêÿRþOG^O>¸½_â _ѨFhÛk¶‰íüëonUõÛ{½Œsš¹ª61“éw»9ïìç8+Ë^޼ž}qz¿Ä¿£SÑדϮ/Wø‚—ôjÔ¨¼µèëÉç׫üAKú5=y<úâõˆ)F =J©µ¥‹¶+­Íªæ“2¦š²šcñ¬žžx爽™ÌÞDͦ‡4–ä4áç?G^O>¸½_â _Ñ©èëÉç׫üAKú5Ü­šWREp¯½×êŠ#|­èúy'¡µiÅ-Cå1¤–S·#g¨ŒÉ·À=…­„ºh7]ïEvÃEÚ¿Môß4è×síÿ=çû<ç}»ØçíÎw}Îv¾h¸×£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€ì½ Ýw½Û jý7Ó|Ó£]Ï·ü÷Ÿìóöïcœw·9Ý÷9Úù¢vƒuÞôWl4]«ôßMóNw>ßóÞ³ÎwÛ½ŽqÞÜçwÜçkæ‹z:òyõÅêÿRþOG^O>¸½_â _ѨFVX¹Æ¸µênu³Ì-µ”<ßwç8–•û{Yá³Í±ŒíõŒq×ëteþ¶­´šª8Û¼wVÓË@÷ׇÇV+ª3ìn›3ZÐÝÎD- #x¸Ÿ£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€õ*/-z:òyõÅêÿRþOG^O>¸½_â _ѨR¢ò×£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€õ*çý Ýw½Û jý7Ó|Ó£]Ï·ü÷Ÿìóöïcœw·9Ý÷9Úù¢ã^޼ž}qz¿Ä¿£SÑדϮ/Wø‚—ôj¹\ô®¤–áA{ ÕBùEÒñÏ]j3Sš:ª†J"1G,Gn6ÁO“oˆcËšKÁl*}uµ²×_aÔ4P_(úGQ[muE,Ý!Rʪ˜Y4ogÍ£nï2»e™k¶ÉkÑדϮ/Wø‚—ôjz:òyõÅêÿRþ@vZ}uµ²×_aÔ4P_(úGQ[muE,Ý!Rʪ˜Y4ogÍ£nï2»e™k¶ÉO'÷ú'XªlšžÙ]º[•U@¸ÙßUO-Utûé'Š6ÔFbs §„¹îls½…Ç.s¹£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€ôÅ’;¬6¸c½ÖÑV×­ìôtަ‰ýÑÆÌn’BÜ7åç$Ã8W–½y<úâõˆ)F§£¯'Ÿ\^¯ñ/èÔ©QykÑדϮ/Wø‚—ôjz:òyõÅêÿRþ@z•k:³O]kï–ÝA§îôVÛµ5M]]@êºwÁ;¡|€ÆÉbp~Õ¸½_â _ѨË_ nº“¤;wÔ4U¼æÉ[d‹¡í®¡ÝÁYºß¹ÛÙ§ÚÌ#Ø#d7»È~FÊ¿Ej«ÇHV^µ…wgY+m6ÊË=®Z>gηEó8:¦G=ít–lº¸½_â _Ñ©èëÉç׫üAKú5ÙuFºÝ©¨(u Uç¦i涺j®îš:Y9¼Âf2,Ã6vâ“eûN;@†¨Ð7[£õ5¡¢£±ê¼ôÍ<Ö×MUÝÓGK'7˜LÆE˜bfÎÜRl¿iÇhÁƽy<úâõˆ)F§£¯'Ÿ\^¯ñ/èÔeÕët~¦ ¡Ô4Tv=Wž™§šÚ骻ºhédæó ˜È³ LÙÛŠM—í8í3ë ¾¶ýj‡UCžÔ1:%Uê*!càl²’Q;YK´¢ ÷ í‘Äýy<úâõˆ)F§£¯'Ÿ\^¯ñ/èÔ©QykÑדϮ/Wø‚—ôjz:òyõÅêÿRþ@z•–½y<úâõˆ)F§£¯'Ÿ\^¯ñ/èÔ©W?Õët~¦ ¡Ô4Tv=Wž™§šÚ骻ºhédæó ˜È³ LÙÛŠM—í8í8×£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€ï:“KÞn•,¯ƒQCu¾î.VnqoÞÁH ¥|21c¦iÞÔHÛtZÍ—UöƒuÝt¯l4]´tßMó¾w1ßó.a³Í·ÛÍŽoÞßgyÝggækz:òyõÅêÿRþOG^O>¸½_â _ѨËÚ ×uÒ½°ÑvÑÓ}7Îú5ÜÇ̹†Ï6ßo69¿{}çuŸ™¬ôú2ÿMIS_Oª¡‡QÕ]ÅÖ¢¢:¶‚gŠFшŸJ'Ût[–1Û&lïš×çF¸Ÿ£¯'Ÿ\^¯ñ/èÔôuäóë‹Õþ ¥ý€í”ú2ÿMIS_Oª¡‡QÕ]ÅÖ¢¢:¶‚gŠFшŸJ'Ût[–1Û&lïš×çF®t]‚ªÈÛ­UÎá }Òï\+k¥§¦4ðmˆ"¢8Ü÷¹ÝÁvžâ]´r ož½y<úâõˆ)F§£¯'Ÿ\^¯ñ/èÔ©QykÑדϮ/Wø‚—ôjz:òyõÅêÿRþ@z•iœ»|ä5çÚÝÇói ôuäóë‹Õþ ¥ý¨9FåŸBÝ9=Ô–Ê>^uMΦ²ÓU4SY)ØÊ—¾'5±9ÂÞÂÐâCIiõŽ´ÿÙ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/_static/region_mpl.png0000664000175000017500000031177300000000000017551 0ustar00jjleejjlee‰PNG  IHDRs"£bN\sBIT|dˆ pHYsaa¨?§i IDATxœì½yœœU™6|Õ^½¤÷N§²tBØ‚2:*ã•_B¾ ‚¼aQæUp™‘çSÆ H’Q¶—a‘Eüœ°¨l!IgßÓIw¶î®ª®úþw媻îóÔÓY»Â¹~¿þõSÏr¶ç<çÜ纗) xxxxxxxxxT%¢»{/ÌyxxxxxxxT1¼0çáááááááQÅ𜇇‡‡‡‡‡Gà sU /ÌyxxxxxxxT1¼0çáááááááQÅ𜇇‡‡‡‡‡Gà sU /ÌyxxxxxxxT1¼0çáááááááQÅ𜇇‡‡‡‡‡Gà sU /ÌyxxxxxxxT1¼0çáááááááQÅ𜇇‡‡‡‡‡Gà sU /ÌyxxxxxxxT1¼0çáááááááQÅ𜇇‡‡‡‡‡Gà sU /ÌyxxxxxxxT1¼0çáááááááQÅ𜇇‡‡‡‡‡Gà sU /ÌyxxxxxxxT1¼0çáááááááQÅ𜇇‡‡‡‡‡Gà sUŒøÁ.€G06mÚ„G}“&MBMMÍÍ;ŸÏ#õò~5¿;ƒÿýíF?–-[†øÃhkk;ØÅ9dá…¹ŽG}\pÁÁ.†‡‡‡‡‡Çãg?ûfÍšu°‹qÈ s#]]]×#‘ ‹!ßõ:Óé4êëëÑÐÐhmmEkk+ ±±uuuÅç}}}غu+z{{ìZM­\¹ÑhmmmÅUf,C,D£ÑâùH$‚B¡€|>ÂÐÐ —Ëå9NË•ž€ï‰ÇãH&“H§Ó€d2‰D"Q¼WòÉf³Èf³€L&ƒl6[,›ü×°Ê,¿y¥‹ÅŠyÆãñb»' Äb±bÙ …BIyr¹\1ŸB¡PÌWî—6äg2™ `pp°X~6‹!ËNjŰnÝ:ÄãqŒ;¶¤Í¥.¹\®˜·¿+.g¡P@$)yºÞ’·s.—+Ö;—Ë™õŽÇãÅöÔiq¹#‘HIÿc'ç¡ó‘2sÿ’6—ç\ýƒÓ–{¸O$“I¥}2™Lëc½_iÝ.K–,A¡PÀGQ’'—shh¨XÝ'$Oø½qûºúj>Ÿ/i]%ïVúÐàà`ñ÷/îú;”6L$H¥Rem(í&ie2™b>Aß•ÇÈB¥¹Ìcïà…¹Z,ð„Æ“IMM FUà:::0fÌ»;ævìØ¨¯¯G*•*¦·}ûv¬]»‰D %§Lˆò[À€žÄyb`ÁC„3©O|ˆ™c•1ׇÛÝÅ ,NX_«nVºAyi;E©£~&È»0[xÒíf©ä¿Kfª¤¬®<[[[KØ\÷7~žû”e '¿¥œš™cö;ÏÕo44£Ëã_ÓŒ³ôñD"QÆÀ³­ž¥vö°ÇÛ ^˜«2hÃomKìRW²á5°{¢(æÄbpp°„ÍI&“˜2eŠYôYðp F.!/h2pM4ú7«V´0ÇÇr@™`kMŽº\:Ô€è¬g€ru >Ö6f–jRþ[L€¬¢€I“&••E *=—pkýÖŽ.iPzúX«†õ=a…l—Øõî­ï…Õš,è2èºð·£û»¾¦ÓÒB? (\?~|É5I‹¿QmÀïJ«Çy!Q 2ÆX*Ù½e{yü’oÊrxq»Ú—=±ÛÓ6ž^˜óx;Á«Y=<<<<<<<ªž™«°Q´ÅƉj(õJ¸H$R<* ”0 ‰D¢$äÃRÓÈy«a1Z­ÇM5™f7X}ņßÌN„ay8œ‚Å’¹êÀŒ —'‰”¯ÕŒAˆÇãN£tñj•ó–C‹.›ËÑÂòFuy¦ZmPéYåѬ’+Äfó´ºÒ¥”>¥ëì2+`–LC{ Êoþ´ú3Lø "(ºIY´S §Íå ó®¸Úk—dz ¶˜û7÷ÿT*U¼[*lÏÐy¼à…¹*|<©‹]\MM jkk‹çY˜Ëf³Å$B(%žoJVÍ …2•ƒÃ °­’¥J”üeàØf‹¦xNC8Vßu•S«U-¯SgNÎ[ïÖò,åô-S—ÐÅöjrMÆn+ë»æoÇú^\*Ouˆ—º]ÇÍã…«ÏŽËâ…9·¼šÕÃÃÃÃÃÃãŠá™¹*¬Z9Jz:.ÙL§ÓEf®¦¦‰D¢ÄóSÔ©²Š•óš5° 6Zfö.(îPjnæ…™) šmÒÁku„})'Ç¢ ˲iCkó¹Jp1ÌD±7Ç}¸XX9fUêj±\ÌVqÛÉo‹© ë­èbæô­*v¯åw¤vµTÝRí1)°úŠî»º­¬@Ã`šû®ÕµÁ¸Å0»bÁÉoK¦ã¿YÒÒ>JbIŠ÷ºå˜ /­vv1§V{H sí¸Åå’cs$Ž&°kܳ<[],¡‡Ç¡ /ÌU $ÌGI¯¯¯/ puuuÅ ›:$‡#¯U zÛ,žìaëj[8K@°T@<9°úSOè<‰ZåÔ[q…‰ð¯Áeò´³ÔÑÚ[‘ÛIž×.ç£Õ¬ü®”3b÷ÆQü9ˆ¼g—w/ •ÂyècË–ŽÞæJ‡ìJ¹\±X¬d«1~‡’®ØöŠU-ع„9>Çlùûõ¸µU™¶kã…’+ 1×ÇÕ?ÃÚjáÍòìXáat»è~ËmÀãçËï] ÇòL"‘@:.Ì\¾V7s?baëÍýÈÛÏyêðÂ\•@vn¨­­E}}= ¡¡£FÔÖÖ–DLgŽ·’Ò¶=<Èj£p^™ëû{`´¶ýq…j4ËgÙãiCim›Wig+D†Ë ›ãñ±ÄL—Í%³0'׬ zßJ-̱À`Ù*Yl¦eüní&!å ²…sÙÌiGn7©¶/c®fZø·fØÆ*LX vÌüj˜)ÚøžòYXç2„e‚ìݬþiÙ¥º„9Nk¸‹«,VŸÐ}_ÚYvy°öYf»RÍ>³ƒÈÐÐPñy—œ+”‘‡Ç¡o3çáááááááQÅðÌ\•@Ôlétº„™“Ôëëë‹+TÙm@ìävîÜiîŒ ÷24S”{–Y †ØÏXêOkoE9¯WóVèˆB¡PV‹™co¸ vB3s\ÛÄЬ×S{†Ê}Ö>—’VfN«À…ÁH$ˆFw‡a;&W´i[.«´¬÷Îí¬ÛÇb4­û\j|f^th9§ëÃb’\fÚÃ’ÕÎò[þ[Az5“çj÷l6ë DT—Yàõb¥c¥ÁöxA¶p–W6{|kqWÙøýF"‘µ(3s©TÊ쇜®ËC\·ËS—ÛÃãPæªbôË*¶úúú¢`רØX<‰DÍfK&CvߊIæRÛ0¬çxbпµÀÄyY›Æ¥á´jÊel®m¼‚ló,è È%Ìi´ž€¬­Ó¤N@yl«ÎÙ^K AýO×!¨ß•W?c©Þ­¼¤Ìs‘ï×*Û 8„®E’vxàm­q‚!ß/fØ~ŽUú,DkG¯jõ8ÔàÕ¬U ÏÌU „áÐL¯Pe…+ {°ò3¼½6笵Ÿ#¯juø½é¼Ë+S uá ¡\+2¼”'Œáx%6DŽÙ@_«ç,gmÜÍÐj,×}ì•éR{3t;» ûµQ;«U™ÙÔª÷0Œ›U~ë·fk-•%3v̘ˆz^Þ ïÌ”¿áá:o²•cISï÷É÷h•:3Aüi¯ì=u4°œsªY­:ë{˜™Ëf³Å4]}%(ȶþæù¼6Kàû´g³†0ºƒ?00P²kf%Í U­‡GµÂ sU,u ) T°µ•+K«?\‹Ž,oÙœhÕl6[ÃòÕ«Iø˜u=ÈyZ¤eÿf©€Yµ¤.eèmƒX`ÂE ü_«Ã,õ–”ÓzoºœlWÇùê÷ËBVõ©u]ß+éVRsþÚÃÚUO­îÔ¡l,£~Ÿ.¡œÓf!M„K˜Óf âIžÉdœ&.ûÄJjkþ–]Ï0\‚Œ2¹ŒüŒú‚LVÿ°„9ë;sí!ϱ\«­­- ›"6ÃétºøÄÌ$ÈÔÄãáÕ¬U ÏÌU Dm™ÉdŠì×ÀÀvîÜ `«Åô.¶…Õ í9hå-Çl ÎjVmm©“xe.àõJ]Ž-¯J©³ +¡=j-¦@—-ˆYcF”5ö¼Õ*SÍàiD£ÑU¢VI[g³Ù"ë ÷Y¬ ³µz·fœø{i²ÊJ—ÇÍÆh§öTåöá:k–ŽÙ–0Î7ºOTŠ1Ʊìä·¾®ËÏõÒฎü®„™³T‘Aç­)•¼{ƒL¤ü.vû—¥2Þ–Üb[õ7ªXfæ8Ððàà`1’¸›üÞÂ0æÕ/ÌU Ä31—Ë…¹þþ~S-©ÃU(0XEǦ®ˆö:B¿¶Ÿ±Ô..ÏG±—±„6«×d0ç­¯ÂN‚|¾4®%ÀUð]{ªÙ³étZŧ½ð€Ý*m]~¹f©cµpïV¹­uÙ´êœËiýDz‰r…üßçd´·¢Ë~N§k¥#×XM¬ûŠö´J…9^|e2™PßEP{êÅ ÁAB\%¡Ñجíå\jVë>Wþ®EŠ~o–P*àó"Ø5&vÈ yÖ«Y=Ex5«‡‡‡‡‡‡‡GÃ3sUY…‹ªp3sétºDêÚ¤^³¬6åkš¥s@17–Ó…°6ÖªWZ=[†ÖìÌ`mèn=Äи‚þöéWžnàR~7ÚyAoïòâÓõb†”/—Ç©ö޵ ™WWAÍÒé²Éí`R‰QæˆÙžJÌ­vŠª;@¸‚î²#3sÚùA{|Z,ü®t„0Î)“m1mZµäaA3{œ§Ë)G{³k6_úÇUäg,Ôö8Ôà…¹*LŒZðuޏɓr*O *S¦*µŽ-»4­ÓÞì-hÙqÉo>oM4zЖ0'"D¸„9˦ʸ,‚ QM±jÔ…°»ðýÖ.üžô5Vƒk+«šµý«õdkí¢ÁÐv‡Ü/µç²^‚!6–NÊÃõhA—OÃòðtyœò÷¡ÓâïÅ%Ìéïõq•—ß[X§®ƒ•¿U—0ÖfΕ¯•¿¾GÛ0jÓ V5[à>­Z÷ªVC^˜«¤R)¤Óé2–‹í×ÄŽÊ q¡CÈ-°Y\XaNÃe׿²• LXW¾ÚPØiÞbè\ÂO¥É-¡5‰˜»7Xpâë<,"¶Ë³vy°ØU ”ÓŽ •"ïKù¬]*ډŠ‘mt½uŒ6æ¸,\-ÐWb^ôw ¤W²EÓv—|Ÿ8:HšÜW]ÂÃp„1Wy†#HÉù°Ì·M0ÇÏZùº˜I«œšávoÆýH ÃÝpüJÙuBÄÚiÉãÚámæ<<<<<<<<ªž™«¤ÓiÔÖÖ–ÙÙX웬ž­klÿ¦Ï3§Ù…=Y‡µ¯²Ôe: o\®ENOÀªaæduÎmèR'G£Qd2Ó»U³>š¥cOH¹æR êkËÆí!픾†´¥†r1Ú{WGõg›;NW«YYõÍ!GØ;W÷OËsX‡,áóüî5kgÙïI¹ Ã0²./Ï ;=6%°Ø°Jp}K•Xò0jNW>Ì.ê± hG m ”ö§,vN÷OùvkkkQ[[[ ;’L&KL¬äétºø¼ôG+½g«Ç¡/ÌU R©jjjÊTzBvÇ>ãAН±Q< LZ…âR©„xâ — Ãùp™³Ù¬ÓÑ‚Á“Lü¬v$‰’zŠ ¢”xm›Æ÷Yç¹~A¶=Ö±¤e9ž¸TËV>–À&‚Œ¶]t•CÒÕ‚7ßïÊG s,P³ªØzŸR—ÀÀÎV™¤ –zVÇŒs…‘ÑÎ-®þî¦X€tÙ”Êq˜o&Œ0Çãü`å¯íù ²aä1ÇjOKèuÙ¼J»‰‰ °K0«©©)þN$%ã„,ÒétÉ.Z˜³l?ƒ¾c‘¯fõððððððð¨bxf®J jV¯„uX½“€6–{\,^%W2®®Ä”Yù˱+$ˆVs],†#,»¡½7-è°šª¤RãrY¿™s•Yhò$u½7fnµŠ‘™)¯(,iÊyËñDxN¥RÎÝ XmÌÐêc‹ùµöieG ËkW;œ—vRbq°¥|. 3äàòøt¡Ò÷àJO.fN ýØÅD[^³VY¸1›ÆÇz¯i~žYyFœ&ä˜Ùx]GŽ=ô¡U|µM àÞ (8{;*-Ȱp¥õòÆá– #Ç.Û'.—<“ÍfKÔ¡.\)›€Õ‡\V%²À‰Ü/o‡¥ VZ}å¿+ŒOÊœ¾ö¬µ„LŸ×Oð–ÊTÚÜå­ÈC«S-ÁŸ'¾x<^fcÇ À,Z«Dµ×­KqÙaê{\¶Ú.̃l%¹lú\˜g´Pä² 2( ¬ºñ;µl%Y-vm–Md«ƒJË·í²¯äqHÊ`ÙÖr?æYvþÜsÏÅœ9s0iÒ¤2¡êÚk¯°KX»ôÒKq '˜iÏž=—]v¦OŸÅã æÌ™ƒh4ŠÙ³gæÏŸË.» ·ÝvàñÇÇ¥—^ºo+ìááááááñ¶Á!/Ìõõõ¡»»»ìü5×\ƒO<“&MœvÚixâ‰'ìþÎ;ï<üñv v.anéÒ¥xâ‰'ŠÂÜ»Þõ.Ì™3§xýÚk¯Å²eËŠ¿g̘™3g…¹ùóçó ^±ÊŠ3™L–¬xYÅ•ÍfÍÕ:3ÂjYÁc³Ùl1ÞD\b¾»Wµ.uË\X-‹™ch6’Ïé-|¬g„YÐû»JXLeïD¹/è^—q·µ­•”è²ZÑJ×bcäppT~7Z…˜ÉdŠyyÍrl:N[æüu›ZmÍ[ÑqþAÌ vš.,6ÏÓo¸LWXïÓ ßÜΖɀ•öÞ2sºÎœŽÅÌqŸ–w­·Í’û\Ž"¬ZåxrÌÌ1dÌáº[N:šÕ—<˜­Ü‘Ðßß_RkÌðð)8ä…¹_ÿú׸ôÒK‹L›`îܹxê©§JÎýíßþ-€]Ú9çœ*}aàK–,Á‰'žèîîFoo/Jîijj“O>‰®®.Lž<¹(PARtòù¼i¯$ªMNWþ‹Û¾ü–‹íWKŽyÖ^¯ —§ž¶ë²lÔ´m¶ÿ²Pí¡É€‚¬ÛYžÑç‡+4h›9KO¥RÎöÐuàóZµkÙ+ry7 =YG˜c{<Úø°Ú;‘H'ÛT*U"ô …BQ}Æ*}™¸­6p…–±TaaT®.ï »Ð°p I|ìÚײut©‡ƒlV+Ýo•“ó´BŽðø#‚Û¦Yß²~/ü-ðž«étºä[Ôžµ–Ùƒ¿×x<^LW®I9µ0' Õh4Z2–°êÇ‘‚CZ˜{饗pòÉ'—}x"dõôô`îܹv a×]wqÎ9çàÚk¯ÅM7Ýd²z.ôööbþüù˜7o^1 ---èîîFwww™é‚Øo¹œx¢•Ð ®A‡¸%KXÒ¿¹,â` BAØIÏbHtÚò[·ƒ¾Æ“Žkr–48ËøžË"F@[!é²m%„¥ŒSX0 ÚzÊbqøÉ—ƒ ç§ìxâfÊ‚@Ëé‚™_äø]q\,.?£ËÆp9±\ú]Wêç–-šõ¾XðÖöfš¹µbè…-“Kà c³«õbÅZ„¿1^ ÈsÌæYvr,HIÿ´ì] ÝH$RRî£:ž¥µXÉd2%ö¸{"Ð{xìoÒÂÜ‚ 0{ölôöö–œ!kéÒ¥E[¶'Ÿ|3gÎÄc=†®®.\z饸ö·¿¦¦¦‡ }}}øõ¯ûî»7ß|sQ=[ “'O.²•ðæ›o¢¶¶¶8H577câĉ¡žõðððððð8tqÈ sóçÏ/ j.œtÒIÅãéÓ§ãôÓOÇK/½„N8]]]¸úê«CåÕØØˆÙ³gcöìÙ8÷ÜsñÇ?þ±¢‰DŠvvA`²þþþ¢]ˆ¥–±T]Jö"dŸÂ:X¬Ÿ¦D®»TAš1ãÿVº®|,5›KýZ€ÕÎ.UÅHhU`w±Ú‰U‘:x®ÅtêrrþšM*‡3áëÌDÈëXC‡q1.Ƌϱg>Ÿ7í0¥¯3³fíhÁyê|5»k©´…©±T‰|_%oT\^°\7¾ÏÅ Jÿ°ì(ƒÌ\å bæt¾Œ p*+Í}_›hÓ ËÌ™[1ípy–r¸×w”†Øá=~Yí­=Š÷Ä6ÓÃã@á溻»ã¶µ´´ØÅŒ1šššð /8Âàºë®Ã‰'žˆO~ò“{œCºãŽ;®XnKµÂƒ’+všÜÇœV1ÈoíP!Ѓ<çÅaô ˼¥þÕé³ÍŠ®CÐUÉÉÁ*«9­ÒöA~,£pIÛŠ§UC,¨»Ô¼ApÙÒé2Ù…ÁêZøÑ¶‹î‡L ûþB U®ºÜÖ..ÁÎÕW‡-±J.ÈfÎJƒïa£~½á|´ZÒå 3\51PÞ_Ù´#(uÝr IDAT–«\­ð;ò]ò{°`:LÈàà Ó6R³r>Œm¬~ïAmã²­õð8X8$…¹'Ÿ|K–,)Æ•5ëµ×^‹“O>9#½½½˜9s&æÌ™ƒ®®.(Æ—{á…œùlÞ¼¹LôðððððððØ’œV¯¾ôÒK˜3gN‰êsòäÉX²dI ×ÛÛ‹ÓN;-t> ,À“O>‰¾¾¾’4$ý®®.455aéÒ¥EaOî k+'ChW°U6†¶v‚p›3S†šU²Ø yFÊçR2;£YÂJ{iêgä9ím'u³`=ϬU7©3—™W™˜*T+x°UN6x׬|Ìl39ZÊÐÎÖ}®² c©—õ3AÎ*œ·ìU÷IÉØõ~¥í™q³X6ÎÇrþСkt¿å¾d±lZkÝg=o1fš™s©Ûùh–N÷‡0ÆûaúKµkÝo™pùõ{fæ–™õÁÁA ™™ãº1›‰DJBü°Óˆ6+°@örõì›G5àæ4¬ñ[ßún¿ýöb¼·yóæáôÓO&DpÚi§ášk®)qxøÕ¯~…O<±(¬]wÝu˜7o^ÑþnÞ¼y{$X&y-°° ñ“Øc‹Uì¹888X<ðí²q y.5«?xÀ–IxOì,õH™ÞÊRûòdÀê©Ê%¦'f—Ç¥V »¼µ –PΣҤjåký¶ž×·5‘ë‰ZÛnZŠ–êË*¯î®÷¾7†òÞ-¡^§=\ÆJjÖJvnü]k3îZtÙ=î ´=žö`µîÑíf ô²•Û[aLtHZzïNöVägt Z†KýÈÐLa45¦™)d6AXUäãuʼnc6P{й_"¬Ë5½ýçëê\.éw®5–J]îq©ë­<¹]ôùJžÂ\n—m ƒR6KNu9-L |@©É…¥ZµÀ‹6˜¸¯¸ÚY/ì\6°®ü¹­ù[äoT„9V§r{¹fkÁ•Çb/ÐyŒTŽuàáá1¢P(ðꫯ†äÛ¶mÃo¼žžžýT2ƒÏÌU X%É̳¼åÍ˵š•Ù¸ ˜W» yIþš c/3ËcLój\«2˜¹q­Æ™©à¶ÑÏhÖËŠw¦÷–ÕisýÙi·ÇbUžµQ¼®§f"˜!afßAww7V­Ze¶G% ¬X±…B£G.ž£fÕ,3:î›ü£¦Ô±Ó–C ¿ŽÈЬ-§ľ±ŠÖºÏbå\jS3ä ëR+»˜9.Ÿ6)°ÔªÖ5].K%•:ç©.f渼Ì쩜õûá> ½¬>£Çfæ2™ŒSÊùqžƒ“sÏÌyŒxa®J j ­ž²lºD`aŽíä´êN#ÈnFçi©%Í ÍÛ]Þ|ZÍj)C¥²YÞh¬zsM¶Z˜Ó!I¬6²„b)ËVÉì™UÕ29f³Y,\¸ÐY ö,¡\X¹r% …:::œê>k²w Z=,ˆDv’Ö‚ª5 ZB¼kñ`AÒµ3KåÍÏ1Â|A‚\šÕe—jÕI«-Ó‡ ¸ú£õ¼.ï^"}_ èÜ¿µm›ö”vµsm˜þd«ÇéðwÆã sÖÄm ÷°'.µ·‡Ç†æª2 ¸â¼éV>:ª>P>`É9}ÍŽDOàìÚÏl ¯Ò­ÉÄbæXhÕ¶gSÉö„R ûŶ7ºlæD³š!µ Íü°§Wú:Zþ¢E‹Jœ¸ ¦NŠqãÆ¨õë×£»»ÛœT`ÕªU( ;vlñ\ÐD©ÙI×3—Ë•¼7žì´½”+Š¿@úšKXßX6u.;LFðæ¼ËQÛ¥YiX‚‡ËÎ.LÙ¬òHþüͧR)§0§ÃwXã ÛÌ1¬›KçïM\O‹¥ãcˆ-aÛµU¡´;Wp=½0ç1àmæ<<ªýýýX¶l™yíØcÅøñãKÎ1cÆàä“O.Ö4V¯^Í›7ïâzxxxx xf®J ªJf:âñ¸Éð#b1̸å«W3粃b[8Ž Î´ZÝdŸåb¥Z½Ëª7Ë«’ï‘ô,†Çbæ,> f­òëßl»Ål«N_«‡W®\i²,mmm%³ÑhGuR©–.]j–éÒ¥¨¯¯Gmmm ‡eí"‡Ï`8Bvyú²w±å¡i©YuY,›N)¿+ô‹VÙ»àR-³*/È~ŽÓÑ œ|cz/dË®LÛ˜ZeÔS&«ž¼kW|ÌÞÁ±X¬Œ1æ¼-6p3¼ÚÄÀbé‚ ïa‘Í>\ÏX¬)·Õ§½ýœÇÁ„æªâN´-”5ønÛ:ž€,uKýÉ* ÉGÔªb«å {RÉÎǨ­ºÈ9—jUOö.{© '¢®–º²A·Þå€ÓcCÒãüu,5VßaãÆæù£>º¤ V?˜0a"‘º»»ËžÏçóX¸p!Ž;‚œåÄÁ繇ÿóó¼ø2„•Pº]“ŽÝg©ÁXP²Ój^®§VÿYp©1å?Û¥Y!d—„½*•Ó‚ËY$LYxœ²ot øÚ´ÂR¿r^ü_[÷Xªë\.g¾©ƒÕ÷]ß—ÙÃã@À«Y=<ªÙl¶d`Akk+F*ÎÎNL™2ż600€åË—ïU=ö‰Î;ï<<üðÃøÂ¾p°‹ãáá1Âᙹ*A&“ÁÀÀ@‰‹<“ùaF (7®fƒW¼.cm^%Çb±"ãÆ*¬\.W¢Ze1+M.—j¹\Z•Ĺ[»PXm ÷@µ¼Nµº×å%É^:Ƀհ›6m*; ècÆŒÁ¶mÛ°aƲkëׯGKK ÚÚÚ*¦ãb…5sÂÌ–‹©îyI—Y:iOyOܦº}%í Vš¹è²YÝ»TÕZÍšL&M'£~ðƒ˜={6:::ðúë¯cæÌ™¸ÿþûö’ARÿV2w`5´Å’içJß’†°¨ÃU§y WrD±œ$,Q›¢h5¾‹™cX«]=Sç±?á…¹*A1D€l©Åƒ, iÚ­ß !"çyðÔjWk0Ö¡ô&Õ®%‚lñ†!a¸T.D›À¶}AaSx Ku-õáºéÁ½<µG†%ÈoW ßööv§í˜n¹6qâDìØ±;vì(»oéÒ¥hiiqNîîÅÊך¼x!`½7ø´0¨óÔöpò¼V³r×í Û£’šÕRÝË÷bõké;:m¹Ç²™‹Çã8þøãqÉ%—à˜cŽÁsÏ=‡k¯½kÖ¬ÁÝwß+®¸×\sM(¡ÑªÓp~iîûZH‘ó|ËãÜ%ÔÉxÃ}‡¿W]ü-…æô}z¬´ò·ž-VtÚ–ÚÚ xû ^ÍêáQؾ}{Ù¹ššÔÕÕ ;­h4ŠÃ?Üœà°zõê=*£Çžá°ÃÃõ×_[n¹ñx_úÒ—ðµ¯} +W®D&“Áí·ßŽ÷¿ÿý8þøãvQ=<Í|¹V†®Húz•n­š…á²ØÍÆqÌ:3Çê1f#,C|®‹ŽË&iq¹9 ²Ž¯ëæbúXõ¦Ù2gµ§n'—Žóíïï/k£ÆÆÆ' ÝAlI:ÆÄ‰Mו+W¢³³³hœo¥Í¹úÍŽX»ehÆÌR™î DõïŠQh±0úØU† ‡mÊàzž™¹ÖÖV\xá…8묳ÐÓÓƒ›nº O=õTIŸ( ø¯ÿú/|ò“ŸÄ•W^‰K.¹¤XÝWö¦Ý,°‡²>'ec3‹0̘ն•T¦Aï&ŸÏ—0ë•`ÝÃ&Ö÷"l±KCÀïJ;ÛðëØ*‡‡ÇžÀ sU‚L&Sôls HzCskp`Û/íõ§m^´J„ÿkXÑéƒT«’¿öe/UIO«ºXdaŠU¡Öb–дµkBÑíÊm"ïˆÓ°Ò²î‘6Óu™LÆ|çµµµeåÑÑéƒ<6;::°aÆ2uëÐЖ.]Š#<²¬ŒVT ÉÀ*O¶mãç,ˆ¥Éí6Ü Â–ÚÍZ<°Š‘ËÊ•üw sú;H§Ó8ûì³qÁî¼óNüö·¿-¶òûÑ~„üà8ýôÓñÔSO9ËS©¾úû RÓ²bÙ¼±0§U³a˰‚u=è>«>.X C Ô†ÅÑß_ÁÎ t{ /ÌyxŒp¸vp¨©©Ù«t#‘ºººðÊ+¯”][·n:;;ÑÐаWyxìF$Ái§†K.¹mmmxðÁñ³Ÿý }}}1üàÏþ3ž~úi\rÉ%xöÙg}ÂÃÃãí /ÌU ‰DÊ‚‹j¼r ¯r]XkÆÍb ôoV­F£åû¯ZjVmìÎÁI9=½ÖÀ.‡3¤ÖuÕå“<ù9fõÊÜÅ4¸Ò–󮀫©Tª,°²V³© £Ñ(ÑÞÞnư[¾|9¦M›VV.W¹+¡RÐe+¸h}9'÷¹â¥Y,¾Æêd­¾ b¢ñxï|ç;qùå—㨣ŽÂ³Ï>‹ë®»kÖ¬°›]¶XNkΜ9¸ë®»pÎ9çàW¿ú•Ó Üeì/¿­÷ær¼‘z[çòîÕé1;êJ;¨~V~VþÌ:2s¬ãpZÏh› Fµ aX:¾æá1xa®J 6_Ñh´ÄF„'nx úyVÿ±cÙq ¨mô@Èù»öYdA‘…VQ±ºl¬äXÛȹlãôdà²_Ó“çã²áѰ®ºY×.aŽÕy,\ZÂ\ jÊ”)èéé)»góæÍèïïG]]] ÀT~®+O–¬¶ÒOèÚCYÒÕ÷XÁg]¿•/j•¾++àìĉqÉ%—à¯ÿú¯±páB|ùË_Æë¯¿^¼Ÿß›«OK›­[·=ôfÍš…Ç[·n-Þ´wqX™R©:]ç\ik{Sëò3–@Fàw-h]ã™>ÔZ ¯U¦.¡Ñ ï"ß÷ °ðÂ\•ÀÀ\+<=À¸5ýLû6àÖB‰‹¥ Ty QRiw š³XG]í¨aMÐÌê²±ÓÅÞè|–Ä~E£Ñ2fN pA¿ÓñãÇ›AƒW®\‰£Ž:Ê™†WßÑýMÚÀ5iYÌM¥I\3sšùp•1¨–M”.›¶lnnÆ\€3Ï<›6m·¾õ-<÷Üs%;†0»¨ûŠ«¿ÿò—¿Äé§ŸŽO}êS¸õÖ[mçê.¶© íJ/,ëÏyj§+½x<^Ï2LþABš®UWWÈýrÎå¼£ÇV ÛKÎË%zxÁ s8ì°Ã̽_7lØ€®®.$‰ƒT²êB2™ÄŒ3pþùç£P(àŽ;îÀÃ?Œl6["Èì)úúúðë_ÿŸúÔ§ðÀ`ÕªUû¨äÕ /ÌU „%Ò«Gž\ª»°öM®¼njÙ•T²[±®ër¹œéåÈvKrÞZ k[AÞÛ… z2 Éê`½ï'«†\L¿7×þº<òLÐÞÚÎÆÅ®ºÞ­ ‘H ³³³,Æ\¡PÀêÕ«1iÒ¤À÷éJ_ßÇ,¬åU]ÉÀòüÓvFÌri6. “¤ëbÕÍR OŸ>]tZ[[ñàƒâÞ{ïEÑÎ3ÈMÛýYyÊõ|ûØÇðÙÏ~7ÜpCÉ5]þJ°˜¹ázÈV:çjCéÛ¬z·ØkÞ‰%(gXÓÖ:0´7o˜0#AáL”§Óg¥çÚ¦RÕ/ÌU dSnùv±®å]`Õ\KÀƒ¡Þvˆ#òs(  žÏÙÕ¸&½»…äÇÍÁŒ·=“‰U8ÚNEλ„9½[§­C°Áåâ‚àzOR—=Ñp&õB¡€qãÆ™ƒ×¬Yƒ &8'È Å‚>o º.Ç‚JB¥ÎÖ‚”oO᪛äF‹Î S§NÅÓO?»îº ëׯ/ÖÁeFÀ}T‡ ²Ô¬’N6›ÅÝwß/ùËxÇ;ÞW_}uXur©VÃÄú +˽AÏk…0¦Vˆ”=eÂdPßã>¡ ¸n.áÉå4!çÄJq¥åæ¼Pwècxîh‡,jjjÐÞÞ^v~hh¨(œxìÆ„ pã7â;ßù²Ù,®ºê*Üpà E/Õý‰§Ÿ~‹-ÂÅ_¼ßóòððùðÌ\• •J!N—0sz7×JN«ê,BY¥óÊTVŸ©Tªh3ÅìÒÐÐP™§e%oÁ|¾<`®‹)àcf0\FÝš 2°·Ê©™¹h4j²š ÓÁD¹Myï\ËãÐÅtq¹ƒÔ¬š…ÛU"—ã°Ã3ÔlذãÆ3Ó br8mÛÁ,{Œjï>Wù]jæá RÍÍ͸ð qæ™gbÆ øçþg<ýôÓˆÅbeªJýíiãv¹ŸÙI—4¯b÷Ío~ï{ßûðä“O–ÜäÈTé}X¨¤¦×÷ó»fèvr™%è1ÄÊÇú] AA 3°7—£š\³Ìô=Alž‹±Þ—ì\vpoØqpðÂ\• ¶¶õõõÅ-½8… A¥ÁC«/R»;D‰D1Oý¡meó@lM4–0ÉÇ2qó`$eãÉŽ½ƒ„9-Lrþzâu ¬,@j «¤ƒTgÖ9ÉÓ¥žÍd2¨­­Ýë’Ÿohh@CCCIØ Øºu+ŠŠõÄF0p©€t;»lŠ´@&GX°Ë+’ïI¥R8ï¼ópþùç#—Ëá¶ÛnÃC=d†Žáï)¬ šý ÿþóŸÿŒçŸ]tž~úé¢÷§eó7û1ùÆ,…ÞJªH«_²ý›Ø Zéh;Yþ\f:W¹¬¼ÂÀ% ¹„¹ Oc—š–ÇWßÑãœeê¡ïs©}Ã,-p¹µIŒ%Pú ×û^Íêá1‘J¥Ìóûk€=z´y~Æ û%¿‘Žh4Š|ä#øùÏŽOúÓxðÁ1kÖ,Ì›7Ïð@á'?ù ÚÛÛqÖYgÔrxxx\xf®JN§Q[[[¢NÕxÃx<ñÊšUZÛ$«áT*U²ã‚ôÕô!ËbCˆ EL`ÔöQ¨ÙRƒš­5ˆʽì¬<-0;ÁmèŠAÅí®ï òÔ‹F£NaN ­"t1YAuàsíííX²dIYŸX¿~=&MšTÑ@[{‡AÖJד¿—a|#åR53N:é$\y啘:u*žzê)üøÇ?Æš5k*:IÚÚq&È@û‡'ë,X¾|9~øaÌš5 =ôP£*õ ó-…ä¦å>åbæåxhh¨ŒcX1ýô¾·Ö~Ê\ƒ0*c 2nÕÁ•Ÿk\Õ×­q@®é±Å‚°rÌŒY¬0§áRÿêc/—™û‘ËÜGÊ»ñxì?xa®JJ¥PSSS6ñò‡¯…… Š€?<r„?Pöš­DÍs^úXï¾àz&¬ 'ŸÏ#›ËbcóF¬î\Š¡±¿É\‰BCÑ!lk؆µcÖ¢) :Åèõ£Ñ¹ªõÛê‹yZˆ… û/ë·n÷°g$A:6¯e2S¦ zr‹ÇãhnnÆæÍ›KîÛ¹s'¶mÛ††††25KPù®ö°ú’Vus^¬¶f{³}…Ã?ŸûÜçðÞ÷¾ùË_pùå—ãõ×_/Ö;¬p¬UÁa&K¶™ÓösV;Ý}÷ݘ>}:>ýéOã?øA`½‚)alÞ$ þo]ã>é²eû¹J^´V{³ÚÕ5žÕÁº¯’Ê¿]!G\uq l7éòrÕÏXjY—ÐÆmã2» ²¹³„I™+ÄŽ:•JM]R©TÙ»4û^˜«3ÇI.—3톬¡’€~F pAéT‚]«Z—–S(EÛ6bÙäeH a[Þ±ühÞÖŒÆl#¢‘ÒI5—Ëa(2„¾š>lj؄ի±nì:4ô5àˆ%G a{ðmG€p 3,®z»ÒgÍBd³ÙÀ}=5ÂLh‚¶¶¶2aØÅÎ566–ÿ•X*+ŠÃšÐ‚@~ž )KöÅBkk+þ÷ÿþß8óÌ3±víZ|ík_óÏ>ªžÚqCàÚvL?ëæt]´½eËÜ{クð ñ›ßüË—/Ö·$e+üXéZù„]˜ ´¡|°È¿­ºUêëA¸þ¤uà>aÙÉYå°|NË5X šæ˜Õå¾ÃïÃæ¬ïOÛ ¢Ñ(‰Dq‘YWW‡úú] bqÒcl߾ݷ>ðœGU"“Ê`ñÑ‹±¥} Fow¼þ´ ´ìVÇ‚Q!†¦íMÕ7 WNĦ–MX6aœ°WNÄä“-ŒÈÎ.Ùµ¿è¦M›JòÀÎ;ÑØØXÂÌ…Q±¦K5ª?}?¯mŒ¤|M§Íçå÷‡?üa|ö³ŸECCæÏŸ{î¹§ØÖÑhÔd¨%_Kêúv‚Ø N‡ƒR[l‘Uï¡¡!Ì;_ýêWqì±Çâå—_.ÉSC:ÿ°ÌÜpÛJÌZZ”‡ÍÓ5þ¸T§•àj›Jö´®´\°ÍÌi–N³q|—ÕRókQ{ÃZ»å¸<øc±R©FhjjBSS ¾¾¾ÈØÉ¸´eË–aµ•ÇžÁ sU‚D"T*¸u”+Tƒë£ÔÏð$Èçs¹\EÛž=…]œonÛŒ7Ž{½8ꕣʧ€·æ{¶ ÑÂB '‰á𵇣£¯/õ"·ï~íÝH¤Ëì‹Ï±ú€òm•¬P®‰SÊd©/ëêêÊÔžÂÌÅãñ¡So“¦ó±`MreÂôôôU­RÞ Õ¾Õ†¼=—Õæ\BR%Ó%ŒE"œ|òɸä’K0yòd<ù䓸ñŒuëÖ pAp vëû´l]f €[­™ÏçñØcaæÌ™¸òÊ+1{öìây KõVI˜sÙ¿YéZåäóAýÒµÀžÂ”-L™]iXm!¶ù ³ ¸žáožãržÖØ(eÔ6ÉÉŽ¥¯szR&OùXæ¢ÚÚZ»„9 6ÞÒÒR _$̾ß×ùÀ`äë<<ÞB_S·-=-˜ö§iHäöí 1jç(œòÊ)ˆ"øŸ£ÿƒ‰ý§Æ.d¬±? ‹Ìó===û-Ï®®.|ó›ßÄM7Ý„íÛ·ãŠ+®À¿þë¿bݺu»h{…B¡€ýèGxÇ;Þ~ðƒ»8ž™«Í®UU²¢â=J5 ì^1;`©ú,õV° (,3g±lA×ôJt(9„7{ [0íõiæJR«½¸®šYt×dkðî7Þç§=Wï|õˆÀ½âÖéèU¯ÅÆhÄ•&¿ÓææfóÞ;v`ôèѦqs[«Ù«<ÑhuuuرcGÉùÞÞÞ2ï8—“LP±öå R³ºŒå+9§HÙÚÚÚpá…âCúÖ¬Yƒë¯¿Ï?ÿ<€ò.¸ò ræ ëÑër Ë8åóy,X°Ï=÷®¸â <óÌ3÷L㘴§p©Y÷Ä £’GPž:­á\ãë. BÐ~±®h —Ã'þÃbé¬2²k*˜Õ–ç-5«ËCÔ¬¢N­¯¯/ªYÛÚÚPWWW¼/›ÍîWÛ^ÝðÂ\•@>:­ª²T;:ž‚‹V IDATOêÚ P˜üÛuú,Ø…™†#̱ºaÑ‹åqì¢c‘Œíö– Ûà ÀÐC,C}®Çv‹zkG¯ÅØ cÍç¸ìVþ|n8B€%ÐÊ`©±mÛ¶A„ËËåÌrêI;h"5jT™0—ÏçÑ××gÖ^™\wV—±¥c'j[<Ëæn8êÏt:sÏ=3gÎÄàà n½õV<òÈ#e*2m/¤uÛyóäd³:ÁJŸÓ}EðÃþ÷Üsf̘_üâfÙ­´ƒ„9KXÐêOkVMëJŸÃ¤è¾ê²SXž¥VŸäzëmƒêÈœküÓýˆMC¬›<ÃeX˜,äɷ슓é±oáÕ¬#=-=X×±S—L-:&ìoŒî±ÇâÍÉoŽuk,3U­}}}û5_—z× [2Ò‹Åð±} wß}7Î;ï<Üÿýøìg?‹|0ÔV`ÕŠeË–ëêz§lÙ‚þð\¿p!&«Å‚‡‡Çðᙹ*x¸¹‚2ãfy2Cd1x¸ Ù™e±Ø8QçX«û Õ¼ ¼Z\1qšûš1~óxDb‘2F$ˆ³PÉÃPpäÒ#±¾y=Vv®Ä”åSJžg†É•·^™‡…µŽF£hjj¶mÛJî›9ë­’‚Å E£Q¤Ói“Ú²e‹Ó;Ïê+ùÇM§V-‹ =l§œr .»ì2tuuá‰'žÀwÜžžӉłů©Êô¹áÃK>.f,È1Áu~Μ98ãŒ3pÑEá–[n)¹Ïb¢Â¨8‡ÍÄéß/77cim-¦oÚ„é›6áw--¸cìX¼ú‹ãrüòGÝZÉ(¬ã†ëXÔ¬ìˆ$ß¾õý»Ô¬r¬=UƒÊ¥¯1KÏÇš™c†;L_µØeûe7šL&ƒ^Íz á…¹*½Õ“¥’(ŸL,ºŸ= ƒB“°ºŽí0¬-nª4¬²Y×¶×oG_cŽ_x<¢‘hÙÆöÌRÍUò@+ ˆebèÜЉ5cÖ`ÒòIˆ!Vö<`{K ,»=W™µýJ</Çb1477cåÊ•eåܼy3ZZZJÒ‘|¬2¹Ôæ2qÖÖÖ–©Z·mÛf Y–°ÏíoykÕêÞìæ0eÊ\~ùå8ñÄñòË/ãÒK/Å’%K*¦íê.»ÇJÓ?ƒLžwÝ·iÓ&üô§?ÅÅ_Œ_ýêWX½zµùLÐqXõ#°»O¹ìÊôØ”ÇqÃ1Çà¶_ÄöX ];w⧯¼‚gð“ÎN¼”N›es™hX׬óVû¹®‡bù>îßz|ðyK}éj7 Ö»au¬\O$%‚?§Mr,|ÆÐвÙlQhÛ±cz{{‹i‰Í\$A.—+^óØ¿ðjV5c× 5˜Âè-öæïûãÖŽC&™Áƶ%Fkk«y~ãÆý[6k;±L&3¢VÜmmm¸úê«1gδ··ãºë®ÃUW]…7ß|ó`í  ‹¡¿¿ÉdŸøÄ'vqL,««Ã÷?mÙ,~2aþqÊtf2¸sáBܶd Nܾý`Ñãjà™¹*‹™cfM”3 Áq‘xOK8¦Ê5§÷E.ÓP =m=èÜØ‰(JÕš¬ŠZºòw14ZQ³­£¶ŽÂ¦æMèØØQv¿Ë`Yòä•:;tXÃf¾÷Çmmm5weذaŽ8âˆb>V{XL-³Alamm­ޤ··mmmźJþ:¡\Ó;A帘hN7‰`Μ9( øÞ÷¾‡‡z¨Ì„€ÓÓÇÖ{ÛWŠ…†µžãßÖsïÿûñ÷ÿ÷˜4ixàÜsÏ=—Aé ¬ö bÉø·Å\ 3'nÞŒ//Y‚ ;ç56⃽½¸xÍܹt)ÔÖâööv<_W°§òßbƒúwP=õ=AZ;Cåg©äe,©¤Zåq·’C%sN`©Q]ªUf›³Ùl1°v___1ŸÁÁÁ’ÅŸh<ö?¼0W%°„9mÁî嬢Ó6lã!ÐBR¡P(ÙS’U®aÂ]¸Ö6“ƒÈ¤2hØÚ`zX *y”nJÛƒqÛJûŽÚ: ½Í½%B‰•·¨€9ÏJ¶UúÝhO5­~loo/‹‡¶yóf mv¬<-¯JÉ'—Ë•ë:IpP­[·¢µµµ¤òDeÙé¸ú VZmËéY}¿P(à•W^AWWþó?ÿ3p‘Âv¥ü>]“µ¸\Â(Ÿ¯ô„Qs %®gŽ>úh|éK_»ßýn<ÿüó¸ú꫱páÂÀ²•ÑÕA†ëšË!ãÛS§â'/¾ˆë-ÂÅG§š›ñX}=þº·—m܈¹Ë—ãOé4nkkÃ3oÅ> ²a³ÊÄåÒ R¾ÏZà„µÏÓösAp-¸\¬üŒÕO\íÎçyÖLŵ Êf³èïï/¦-éìØ±£$XL´¯Çþæª "ÔɱËÝœ Éu}‹™“(à|MŒZÝ=G· ›õýúx8ØZ·Ë¸ÔöQ%: SÚ®Ò„TV½bá£nkÖŒ[ƒ\4‡ØP¬DÀ`ö-ÈO “–CŠ0qCŠÓ, =zt™0W(°~ýztttëúÙ‹¹|)C}}½é±uëÖ"fe¯ábÙô=.NÏçñãÿsçÎÅYg…yóæ9í­$}¶'Ôíåb$¬ò‡Ì\çö–”çÇŒƒÏþóøøÇ?ŽÅ‹ãÒK/Å3ϳ'v`ú|]œ%ˆ¸¶¨“víO&qã1Çà{/¿ŒËÖ¬ÁÇC¾PÀÕÕá¿jkñžíÛñ¹žܺj^K§1wôh<ÝÒ‚B¤<®c¥cý­ëw0Üöq1s"ôVJ¿ÿJÎÚ>™Ëbµ»k¡É—ί’C—ü*jkxáŸL&Ëê,BŸÇþ…·™ó±ØY¿±\ éÁŽÄ…úíõ@ØQ{ðC(tvvšç­m·ö¢Ñ¨i77’VÜ+V¬ÀÃ?Œ .¸`ĆãØ×¨¯¯Ç¾ð<øàƒxï{ß‹o|ã˜1c†SÉx­¡sÆÇEëÖáݼ«I$‚çêê0küx|züxlFñÝ+ðË7ÞÀ‡¶lA´Â‚ÁÃãíÏÌU!˜I°TJ‘H$•á`Àš†g» ~FV^‰D¢ÌNNàúmÙÖUB>ŸÇPlñ\ù¡<†PôXVÀºnÚ3Kž ‚´e“•ÏçÉìJ3Ék§ Kì …†™Óï£P( ¡¡étºèI&ظqcE»(ÎGÃ|TÚ¦¾¾¾l…Ýßßo²X: —M¡€Y2ÝŸõ; Ú}äî»ïÆi§† .¸·ÞzkY}´êP3Ó:_þo»Ô®AªÐ ÛD´Ê5ãì³ÏÆe—]†ššÜqǸóÎ;±ý9 ð˜Á,²þ¯ƒ?óu®àçcÇâ][¶àŸ—.Å9‡Ž ü-E"øcm-Ô×ã¤ÁA\ºq#nZ¶ ËÖ­ÃOÇŽÅcmm( ¼­¬|ø½¹Þ¯.k˜÷£móø{ä<õqpŸÊf³%v¤<²mÊÕU×xÆsŠ|“R?þ.JÒ. Èd2¡êè±wðÂ\•@>Rþˆ\œ¸¤»Ô]Ö6JÑhÉdÒŒÁ644TŒâ­·b>ZÈп]*‹ @¡|‚gU «Â85X˜âô-5G¤ð–jù2@«\]ö{Z¨³ÚY Ô\.çèÑ£±bÅŠ’2bóæÍhnn¶ë@ªPKåjM‚ Ù<›!¶3Éd²ä<§¥UÅ–*Úeç§ë4ñ»2~ùË_âSŸúî¿ÿ~¬]»¶l‚µì D0“s.ÜR5sº–Ìå¤ ÐmU §žz*¾øÅ/b„ ¸ÿþûñÃþ6l(y¾’ê0L>aÕx.û8 ñºß—ØGF"ø§®.ÜûÚk¸qÕ*\zØa(ö±/×ÕáÊÆF³cfoØ€êîÆÅ«WãžqãðH{;r!:Ë·’Y€Wäóy§Ý\Pgèò³y^s8#;SIùä¿ÞÚË5V±:V‡§²Ì$ø{—kaœo<ö^Íê1bŠ"Ýwž…{Š|ì­jhd|..UëþÜ(^ l‚‘žæÏŸÞÞ^\|ñÅ»(ûG}4n¿ýv|÷»ßÅš5kpþùçãúë¯Ç† vÑö)z ücWÞ·};.¬àùZ]®ž:{,ÖÕášînüú¥—pöºuHî¥=¢‡GµÁ3sUaæ\«^í‰w"«S-g^IÊ*Îb·’ÉdÑ"‘H”¨-Ö(5Vg§‰L&šAHö'‘Me‘‰f.¤Í|˜eÒ+a—a{óÂç„Õé¯Ý¥^L ìŽNoµ[mÂD¯˜­•13T---H$%*À®%S§N-QAž[ª/ ¹fÙÌ»„9¶Qs©•å·ËÀÛå9èbW4Ã#×2™ î¼óNüÃ?üæÏŸ×_Ý©zc¶«O轌-õº.ßp˜9«ŒÎÎN\~ùå8ãŒ3°xñb|þóŸÇïÿûÀ烘¸°¬\}¬8î_»éê ÿ_CîhkÃU6`Am-þ¢XaÍ.®«ÃW§NÅä|fõjüýÒ¥øÌªU¸§£óÛÛ‘ `è‚ þ9?þ—Ê•™:¼®Ë¢Y.«±W·å´ãú®Ù!Eçé',³=ŽhíCk><ö¼0WeдeOFK¶XÑîî<°²Jí-øe;®d2Y<Ï“[0§½%åX«lù|5½»ñmõÛïÝ- p^z÷Ë&'H‡«`¡y{Ãv$Hîf§¬lhh¨l·Ԯz0u©÷ôÎ{GGV­ZUrÿÐÐzzz0f̘²ô\‚†ž$ ×fÙaìa¬P..Ï=—:Lžu VœÇÿ÷mÊ®ºêª’ç]¤csØí îòŠ´Îå­¨úúz\xá…8ï¼óÐ×ׇo¼<ð€säÀ\žVþA¨¤Z•~ìR­-*,ü`Ìœ´cþmõjÌèêÂN w᪺ÓiüÓ”)˜;n>½z5®\µ ®[‡»ÛÛqoc#v’I‰¤a A.Xï/¬àË»1ð8ÃeÐí¤û޶YÓ÷ÈoËìƒËÈêWI×°ƒ¼Ì¹ÜAç,Zýƒ‘¡7òð0P³½Ñ\;®鎆¨ÛZ‡‚û Ø4Ö¯_¿_ò«5+°k‚š;w.¦M›†÷½ï}»8ÃB<ǹ瞋ßüæ78çœspçwbÆŒ¦ w(#‰à; MCCø§uë€aس­J§qcW>qÌ1xª±W¬[‡Ç-Â¥7b”g‰<Qxf®J F¯®«÷„Ap­’™‰ÒÌœ@«9­ö¤hÅböXå*êfÃJV¬ùê·Ôcsûf¶â°²<,X޲òt1šD½–OæÑ×܇ñÝãyòê•wà6pÅÚ²T²ÛÊí&^­555e¦===E§fJ¬¢uÙ{*Ìé:Wb?,5«‹¹°"Ú þô§?áü#fÏž?þñÅ`×V{뾯Õõh8ŒÊH³5AŒãÔSOÅ•W^‰qãÆáÀœ9sÐÓÓ³GŒª>?Ua˜täØR¥VJ'l}V%“¸~ìXüÛªUøCo/~ÓÜX~Íd­N$pãa‡á¶öv\¸~=fo܈ 7mÂ=øñ¨Qè5úB˜vÒå(X3šzWÆÞ~«:_þ/ÇAN Öû©ä|ä:癹/ÌU d/LÞZ+›Í–x5±úS{–É@“H$LÁNãJ*×䬅%í‰i ƒù|™L¦Äö‹U°Ð¶¼ Ý'uc[í6Ôm¯+³Aâß.{™@,!IÒ°êF±¡s ‘Ƭ³™0 –šCÛeM,,s{hÕ^GG–-[V–÷š5k0eÊ”²^òtÙìèòk•¶e³)êô0¹ .u4Pº‹Û¹ñ;ty1ßu×]øþ÷¿3Ï<÷ß™zK«ÙÖßçiÙWjhun%ÑiÓ¦á‹_ü"Ž?þx<÷Üs¸ú꫱dÉ3í°£Kˆ #¤hK'.5k WûXs3æïد¬]‹?×Õaù[*BKXvÙWnH$pÓØ±˜ÛÞŽ 7mÂ…[¶à3½½¸·© w45¡gvk°Þ¯.¿+ ~†û¤ôC—ªU Í t¾•ŽÙ~OÆO« YÓÇA‹êJ‚ŸÇþW³zŒh4­kBb õöú0°fÜ´mlC2c3S.UëŠ+˜ÑñH¬W¬XÇ{ ³fÍB}}ýÁ.NÆŽ‹o¼wÞy'jkkñ¹Ï}_üâ‚ÜÛ7‹5É$n^¹©½`yz |»£Ó'OÆ=MM8¿¯O-[†¯l܈Ñ>|†G•Ã3sU‚ìܹ³„ÉbÕƒ¹Ï2ôå½?µY!ŽkÄiñ MÓéZÃ+DV¹Ê³ü[ éµ/mÇÚ#×bô²ÑhÊ4•åk1nš)Ð*i×1×amçZô×öãÈ×tª—ä·× Õ—IÊÏå±¶n†¨®®­­­èéé)É7“É`ýúõ˜0aBñÜžw\æ}¡* #øYªhË’™Î tñ‹_àoþæopþùçãŽ;î0c ŠšÕR}³jU³ÍA E&Î 3gÎÄ–-[pà 7àá‡.2¹ANAüßË‹Ñå±7FýAÐßb9A¥|£Q\3q"~¾hþÏÚµøöĉÎç\ÅŒ¾dß3wµ·ã‚Í›ñ©Í›ñÿôõa^c#~ÜÒ‚5o9[èç­v׌—Å„YϺ˜hëÝé´ùýŸMØÑ!Hìr:Òm¨MSÂ:Œxxa®JÐßß_Ü}Áå ª?vVñ}zóv†%H°:Wçïòfe•”žyPp p\ÞŽîl9l ºßÑ^<¡X>]g©“œ×Â)—Õu,H `Q×"Œ];­;[1Ùmo¥½ö„7àôYa;*íEʘ8qb™0K—.ŤI“Jlö¸­£Ñ¨©jvÁu]úVu[Pè—}§•—\syô1¶nÝŠßüæ7˜9s&yä3ŸÞ—XçíR³êR\¯ ‘Hàãÿ8>ó™Ï ãÎ;ïÄ/~ñ‹@»Ãá¼—Jùëûô3{—j–Á}O“zaãR.5 ß?×­XMMø]ssY´ðá¾äÿÎxs:;ñóÑ£q^O>µifööâþ¦&ÌinÆ2€x¬µÌ1¤žZ˜«Ô¾a…c9ú[±Ê`å´`pµ§Ëó×e7­Í4<ö/¼0W%(º·»¶ÆÒƒ´Å>éû]l pƒƒƒÅ GìötºÖjÜð*]—«ÒÍG1ù/“ñê{^Åò Ë1eÕ§ñ»5ñÊo§‘G¯Ly‰¡ŽXv„)ômUTiÅÊíÁïI—-ŒÝb[[°•÷³°}ûvlذeõÔƒl%&¨R]‚Ê©Zà\ç5»Á÷Å|ãò=ðÀ8ãŒ3ðéOßùÎwÊîVÎZ°°¡Ù .nS]¦|à¸øâ‹ÑÑчz?ýéO±iÓ¦2»ÊJpÙ…ñï°‚\Ø|ô;°®i{N‹]©œrü›Ñ£ñWÛ¶áëK—âÍúz¬O¥œm ÛÉ%àD£QôG£¸sÌÜÛÖ†s6mÂE==ø_½½xpÔ(ÜÖÒ‚7ß~\ud ˆì*Ù*º˜8++O=îê],X}h8¼¶íÓã, ½{cKë1ðL:õ€æ}Ì1Çàßÿýßñõ¯Ë—/ÇìÙ³qË-·`Ë–-´‡"üëäÉØ‹áŸ/Fl³>ýÑ(~ÚÖ†OŠ›::ðWýýø¿Ë—ã{6àH¿¿¨ÇÇÈž©<аB“¸VÏò;ŒçC‡Â`¯Y «U®.°jE«§ØFN{i­Ç-‡\Moù°·nœ³nšMÓªfíµùH™ò¬i[ƒã‡¶­m€í(éÌGÎUB3h¥dW3vìX,Z´¨,LÉ–-[°fÍŒ7®,ï°l¯²­²Z,€V¯[j}Ýn.¦Óå!­ÃŒh•+3±X Ï<ó >þñ㢋.Â?þã?–”7hg m®ÀÏHh œµëììÄg>ó¼ï}ïÃâÅ‹ñ•¯|/½ô …‚i?¦U£A”®~Äð…UÁZÐy„QÑé¼%ÏŠ,|k€oLоú*>»z5n;6T¹]éiUh.—C6ÅÏ[Zpo}=þ×¶m¸tóf<¾cI¥p˨Qx™Øt=¶évfÓ ‹mÔeÑetõ£d«ÇǬݱÆB ËãÜÅÌñ±gç¼0WÅЇÿpÅÓ6^<é±;Z°šU‡CÑåa[0-_C¹°Tt½Ú…h!Š7¦¾-£¶à¨¥G!=”.©ƒÔ™U™Úæ£$ÝHÛÒÛð§®?akíV¿äxŒÝ26P³(kÀÛ°0d9Qh•i4EWW^{íµ²´^}õU´··—ÜrË-øÝï~‡B¡P4“°v‚„$ÆžªYè`+Ù›åôœV7òq©ˆëÜ«MMøÉøñ˜½r%^hhÀkkur¡’ÐF‘‹Ç1¯¹¿®­Å™[·âо><ºiO&ñÝÚZ,PŽ®1¡RÝtÛTú÷DUd §ïµÌ"x.ß»«ŸiÛ`/Ìx5«GU!‚¦¼9G½qzÚzðü»žÇú–õ(`ÏT.CÑ!,î\Œg§=‹\,‡¿zý¯0v³{µ?R1qâDÔ¨=,]¶–û"Ô…ÞVà &<ñç?ÿ/¿ü2fÍšåŒM·§H$8묳pÛm·aúôéøå/‰+®¸¢(Èyì[Ü3n^lhÀ7/F“£oî+ä"Ì««Ãß´·ãsMM?4„ÿÛÛ‹ûz{ñžýœ·‡GXxf®JPɘVH$xkåÈF±®IL³>ì ÁÆ¿¼É³6øÖ^A@©7l˜:ŸÏб¶M››°è¨ExùÈ—QÓ_ƒ ë'`Âæ H%KʦWÎ…BýµýXÖ¶ +ZV Ëbʺ)˜ºz*b…ÂìÚe­6Ã:@¥©ëÍe·¼O…UŠD"8ꨣðÒK/•¥»dÉtvvûƒ8Y Çèy``À<ŸN§KÊl1qÜ÷\jÖ°mfÝÇ,¬œ´šöÞ{ïÅM7Ý„}èCxâ‰'ŠçaLQ— á=ïyÎ?ÿ|´¶¶â‰'žÀüùóÑ××`×·§ÙU—Z®Rža†íÒ÷†aØ€R#«¯º˜¤ Ð|÷k—Z2ŸÏ#à†#Ä]/½„o,_Žÿ3u*ö4FXÆl(ǃõõ¸?ÆGúûqÕŽx ¯Ï'øNm-~÷Ö÷%°œ£\ió=–J¼’jQÉÁß“Õ×-ÆZ³t–óPÊàkG ý /ÌU xkÀ‹F£ÅÉ:•J!•J§Óé"ƒ¤re¸<,µ0g}ìA¨äÁ¦ëèB>ŸG¢?iš†-;°ªsÞœð&Þœø&êûëѸ£MMHåRˆ¢ÈÇòH`KÍôÖöbgr'’¹$&õLÂÄMQ—©C!Z®ž¸Ô af@cÁL?$¤Èï±cÇbùò娼ysɵ|>×_Ç{lQ]âšð]¶[®ðuuuN[8òƒãêÉZçÇu®ÕŸZ¨ë³fÍ<ýôÓ8ûì³ñ?ÿó?èïï/kË A—ï2e Î?ÿ|~øáX°`n¾ùf¬]»¶XW Ü;Y{v3Âv{‚°vr•Ô{A÷Ëo— Á[^•Å%(ZêÊ-é4þåðÃñoo¼ó֯ǽ£G;ÛÐe÷çRosÿ”w)¿s‘þ3ÃÖÕaz?®Ú¾÷õõá…Dÿ>jžL¥}kœåg­ºUz/aÆANÇõµúSS¼­T&ëÛ弨tà@/÷ðœG•#‚š¶6¡ikrËrèiïA_]úêú°ºu5 QÚŽj(ަþ&Œë‡æÍèÜÚ‰ÈС )‰`Ú´ixæ™gÊ®mܸk׮Ũƒñ lÛ¶ÍÛØˆpyOþß5kðùžÜÞىnj]+øØ%ÄY÷é1Æ2IМNE`õà հ«ñBÈ rÞ›ÕÃãC*•ÂñÇo^Û¹s'^ýõaMÈÚO !OªƒƒƒxàpÊ)§”ìaˈD"8å”Sð/ÿò/øÄ'>ßÿþ÷¸æškðÈ#8½{=V¥Ó¸iÂüÝ–-8ÓÑ_$^ª­Å纺0kêT E"¸aùrĽÞc?Â3sUÀ(«V[%‰"—J¥Šìœ\³T]#LÒçkìËlž+ø®6Þ× € ÂÅCÓÚCV3xAL·?Ïç:HìpUwšmÙ—¶R¬†ÖyZ,UNq†˜4i–-[V–VOO^{í5¼óï4Û‚Y©\.W4êgD£Q´µµ•mRÏå‘>`9Ü0ÛËÏ0(mk©Á‡ãŒb±ÍÑhøÃ0}út̘1ßýîwKž9âˆ#0sæLLš4 /¼ðî»ï>¬[·ÎôúÖuÐЬ›Tb.,†ØÅеI%–­û½7*Þ µl˜÷¨=Óõo)Û#­­8¹¯_Y½/¥RXJÞ¥AŽ\NKåj1g®1P³Z+ ´ærx°½H$G8æMƒë­Y6 8p¯>§ÇiW½+±t•œ„¼šõÀ sUK0Ê'{-ŒÉ±Vuɇ){_±µ/!‡aŽ8ÎS œ¤äñÄ¿K­À`Š_{ êÇ¥f¸¼õdªËd ^amî‚Òaõ¶Þ•ÀJûï|'z{{M{·M›6áOúN:é¤2á‘•eË–•©k]¬œ,,Õ˜K«ëüÿ³÷æav]ÕèïÎ5ªA³J’…‘-Ù2±fðB÷G7X6!$˜G¾—nHâ`Òt¾ÝtlŒ_º!Læu'`AL: ¶ågxek°lÙªÒP¥Y¥[¥RUÝ[çÞûþ(í«u×]kŸ}o•T*±úôÕ¹gØÓ9gŸµ¿µöæ2+oɰ“ŽÓ<5Ù'—ËaÓ¦Mø£?ú#¼ímoömÛÐÕÕ…}èCX»v-öìÙƒ/}éKxíµ×ÊÊ6¥ƒVþžÒg~,mÏ]˜W‰Q柖žVF-_É7È Äu“Ï\+­`Ïçñ¥¹sqÙéÓ¸¯¿]¼!îÕÔÉæ‚Aïa<ÇGBC.‡ï-\XìÍJ>¼NÒ½¡û$cÎÛ •û#†É©R«TNZ^ÉPô8wðÆÜ,1,lŽÄ./ ?Gë ¨1–J¥ŠÇ¢Ñhqš jÌÖPböl~dtÄé²´7b\>ö|JÚV´ÌRf€I£_[¹%Jº–ûˆI×qÿ9ú—;ü_sÍ5ؼy³h?~¿þõ¯±fÍ477ó7× ‰Ì09-GØÜaÆ`“ 8—»¹oô^Óû6ŒèÎ;±k×.Üzë­Ø²e Þõ®wapp_ÿú×ñüóÏ—LÅC?Z¶©kª™²GƒäWMšÜ€âû¹áæ3:¨† ´±dù|§#ü邸~_þøèQüUg§µ ¶¶äƒ6?;jüÔ øØÀ~ÖÕ…cuu€àwj3š] j›ÿ›9Î÷qãM t++5¬µåÁ<3wþàMf‹õõõxç;ß©^étO<ñ¶mÛ†‘‘‘¢ñtèÐ!<ûì³¢=gÎtuu뢟7üüç?GCCÞóž÷`Ó¦Møó?ÿs<ÿüó3],*ñZm-îëìÄ­'Oâ½##3VŽ>Œú Àß/\8ceðøÍgæf ÌhJŠŽ30#¢\.‡ ÔiF¨=F×]¥×ÅãqÔÔÔ¯1×OLL”ÉN”¢ùóEàìˆÎäÉý:\Và2-e ø””Õ“¢fid«9_›hÓtLëÀGüÕ¤K§´ iJ2^WWÞûÞ÷âÉ'ŸT÷ûúúÐ××Wôe³9ø_vÙeb$´)g=]F暟&»V"[KùPv×®]xå•WðýïGE>vÅÊ>ÓýôY¡nÕ²[Zd«ÆÀÛXµJ%S~}5,]˜,§¥VV‰™“X¡¿knÆÕ##øo‡჋ãxËÎM…™¬Éåð{ýýøYWŽÔÔ8ÕÓvŽ&­ré^cé4Ÿ9sŸÂ$~^.Þîf;'?Ré‡7æf ¨£9õE“(õ J>ƹ\N € /µé,ÌKIL^´# =~Œ§ÍË611¡Nï@ +›œ§É¬Ü—ûÐÑzI¤©›ä[ǃhÞÜŒðròtm õᆡ–Ùîììĵ×^‹'žxB]Í€8 EOOæÌ™£Ê'®KtñºJËÅ™mÍ?Ò¶4ô£÷‘|õ«_UË@I|ðB%zºêÃt­ýJŸ›¤}„h3Œhôšé„f€Úd_©œ’?Ÿ(¹ ø|W~º?î?|·ÎŸ|D^.O (±Aò[¤û>tø0s9üÏyóJŒ^N›D Èn0ÜXâý ½ÖfVROÞæÔïx¤rzœ{x™ÕÃã7---¸öÚkÑÐÐPÕõX»ví4—ÊÃãÜ ‹áOºº°nl wžÇéJjr9|ìÐ!üŸŽ9Ÿ+RxüFÃ3s³ñx¼8•ˆ´Ö%uÏårÈd2â$³tJ‰= Ìƒ$1jt=_Pœ§EÙ8à —Evñh0`räÇÙ9š¶t½6¥eq¨,6B§íÁó×¢Y)(sÄóälßž šššpã7b×®]xýõ×™ˆ… ⪫®*F8k¬°t/(´`*Óð¿ÄÛÚCŠJ6e“ØMs5©—2§t?u LŸÄÀòmþ›²Ü6Çûjƒ\žëmÛ·žæÆ>/·Cž þ ‹F–˜â>sX9 ¹§£Qü߃ƒx¬© {–ßåp ÖˆF£øÐ‘#h |·»»"6޲ÀRÀùËÙx [ôuX]´ý潤ìµô}ðÌÜù…7æf Lt)ýˆrcÎÀÈ¥’ÿ›Mú3×ö΋~¥m*Ácn||ããã€l6«sÔx‹Çã%2.ÍGó3‘¢v©ÔKËHÛR’AK n”P¹B3>h}$#Ž–_ú-ÕW2 øü~«V­Âüùó±cÇ>|X,0Ùö+V¬À%—\b•èmÑ›´Ý¥è:ú ‚ yköSiÔ€>Ç’t¦EOÓs*5Œ$ ̤O EsÌ–¿t¬šhô°rÚŒ8-­Ó6‰¸š4õéRöŸMþ¬±V ûŒ±`Þs5”¶~º®A$‚уÖUrÕöG£Q¤‚?rÿØÖ†þX Qäô× »jüg¹k‡TÎj¢¿%IÛ”™¾³¶r{ƒîüÁs¿¡hhhÀÕW_±±1 "Nchhù| hooÇܹsË&øõ¸8ñFM žohÀ}óç«çTÀì¥ý<}ÕN10ÂÊVÌ¿âÒW†[Nœ@S.‡ï^DÑÞ³Þ˜›%0ÌŸ·‹F¦gMÒ¢Ðé] PƈŽä¨´j˜93*¥ì’aµx®A“õøˆU € #V›\Áëh“y]×P¥ep-²VÊ“3ˆœE5¿S©æÎ‹¹sç–•ËEêåmÈ¥ɤçQ™U ¡e õäò¸kô,®¤ºrÖƒGÖN5P€Ëe4/ .s€Ñó¤ýa™­Nœuv5¦è9Ó\á’¯KÐE%ayָıcøÇÖVìFeÁDÆp…=ˮ̆à×…ÈðrÒþY ´;æ1½ðÆÜ,ƒ&“J/=•9éôҋ˗ު惨}Ä©Ÿ\6›-Êh\bô‘¹+$€—v0š!£Äh}x„£ÑÊåàj"5¿EnDS?H)"•—ßÖÁjò%Õ =ZÝx”(ŸªF2²øÒ\Ôxáþž®‘ Ô8ŒF£ªA®¥çÚN4O[›iL‡íݱSÒ½w™T–à]ÊèR~½™«¤œÕ ̘»%FS.‡oµ¶ó‘ŒjÍ2Û’\¯AëÏM>š/›‹; ½ž÷Ç6£“×Çsç>šÕÃÃÃÃÃc ¨Íçñ‡ƒƒøqs3Èš°ç ž™›…Ð&ˆ5¢7ÍèˆÎëÆGµ”… L…æì*É~”™3lœ z0i¹È..ìJ4¶ˆ²q|~6mdÍ™1*½Ñyël …mäJ+IÚ5#yÊêh£dMJŸ):§¬”«„Ióæí£1¶ºÑg’²qta-ØÃ¶î/­3ŸÏÞ+‰ ‚À5ëòœÒ´iž42V‹‚6ùMÅa¿¬<(g%y´¹î83G·]ßYWÖÑ5 [ð-›KÿbóÓ‹F£øÝ¡!4VNJ[«&µÓcƒg`Û–˜9ú›ß#þ^jï«TF)Ï©0¡•Ás³¼c¥†}©¨ìF?œt¿I‹~P4£Mû@Òóy„¢‹dZ­¡F?:ZÇhó¡õ‘¢X%ØŽK4ÛÔ(Úõôjk„寇ôçiQ¸hÜã1ÝÏ4Í •>t€A¥Uê/ÇË|模ddIMÉ –|QMž6¹ZúðÙ$On„ó>è¹’ôO»ú±…ùåI†‘fÌÙ`óiãéiyVZžŽÍÐu­Ö®© À†“'ñãÆÆVÎ¥Ìæ9Â'ÙÖÞå0_a¾-¹–H.M"5ׄÉÁ¦Ÿò2ëù7æf8S@?:Zg@§ödcCꤥ)6xÅ_TÛVtsÙ–Ò¶y%c†)¸v<Üp¦ûmeµw|Üð– !ó›–G3¶«!k#zpÿµ°©l8ŒÁFƒ|èGûyšm>¨ Ç 4£—ŸgÎåÛÜg‘3·´žÛÂp)pÅæsÇv¦Â€D£ÑÉ©B”caïG%ï»Æôi×kLš­<ü^WÒ„µëG‡‡ÑœËá›­­eyTÒH÷ZòS£ÆgÙ]ü!)4µÀv­É_°ÐòØü(=¦ÞgÎÃÃÃÃã Ôäó¸-ÆÑï}å<´.”e¤ÏŽ¥u`yº“ÃëC=:ñ3÷©¤L)—smõ–À™uº‚„&ãóç‰^#ùjIc›ecÊ\®0ØÞm'LvuÍ[+/ —¯iÞÆWîëÍÍâ5Zhša¥æ¯Æó¿Ò;KŸczÌæ§gs ‘8¾mÎó2ëù7æf ÌKçâßd> ôÃ¥M7a`:fó"RyH“§¸,È}~Ì1Í`㟋ÌÊËÀóÕÀ;Léo“,¸k ]#u”‘HDýÀjF§fÀÙ:GjdQh†¥9ær- h|Âø1i…*­šg‡žvÿµg…þÒóÎyjXNLL”Ìf›Ï1¬lÜ8––“`ÊCW2¡¦©áyÓm>p“`3Ãò’ 9ÍwI”a†j¥ç›k¤}5ù<îH§ñPCöÇbˆVh4Ku±¶¡æ‹këë5ÿ7—{Î\Í…†ؼ!wþàeV ñ{§N¡9Ÿ/²r3 ÏÌÍbÐ<—¸ã¸ ‹Á"\kµQeòù|GÏ—F°šó0ôp‘·$Y€–SÊÇŒX¥ ZNÛèSc~lÑÀ•LeÀËJËårtŒK®œ= ²¯ƒV6M>äÒ*•R©´Êƒh™+m·°¶Ð‹Lùƒ (²sÀä”;Rƒ‰‰á+æ¹ÓØ^4)OrWcfÃØ#—|ª‘fùõarf%ì›Kyx½ +·©¾û£QàŒJÁŸÉJ˜¿°vw•Fi¿/å#©)aí%1s.Á.ª‰ÇôÀs³ <ŒÜ€vÒqíÕäǰ¨UWJe\ú ëL%éR“Î4_#Wðt%éþ¦7Æ(¤T^N›Œ&Qj¾`.p•`iÙ¸ŒÏSð¹ê€rßB:7ب´*ù#Je¤íö|ñ2kÒ.M'—Ë!“É”£ó'Jï $ÉÓ,÷}4ii® \nÓî}ª”g3nª1Ü*AØ}Ñ“®¾z.Ò¦¶æ!ùÎ}txÍù<þ¦©IôWãýèt°Ò³oŒ<—Áºä£ùØò<¹Ÿ_%ƒɘtuƒð˜x™ÕÃÃÃÃÃÃ5ù<ìW˜{ó ÿ$ÎÐÑ~˜ÄgFQ¶ÿéyZ~øÈ‹æï2b¶åi+‹æ®É Õ‚Ž&©äÇEŠ,ðÉ7%æ³-¶(Ï0ÆNú–®-=ÎØÑQ¼Æó´léÑçˆFjÌœtŒ§eX|#ÁÖ–4ÏT*…Ä™)'¨äžÏç‘H$Š+›ÄãñâúÃâ;jØL.¯šó¤w.,B Ê¡Ïg<wvŸ°¹Mп•"Ì}¢’|øõûå|à ÚnFK>¯75#Iùd¾.}£kÛJLºôÞóLƒT¶J5MjÖò¦þoÅyå0JJ´°y§$#šnÓs*‰fåyñ|òÁ¶Ô‡š÷ƒ¾/6™X2ÐùÌÞ;ð2«‡‡‡‡‡‡n9y­¹¾ÑÒ2ÓEñð(gæf ¸tb M„kF[4òNZÃÑH0üz4fÍ00š|¥EE¹H.<-ù}'•‚2AZðÍ×lp†K‘ü˜¹Æ…ita¸l#ßB¡Ê:Ðs%p6!Œùä’¸&³ò€ÊkA'´œœarÛJc(9³fÞ‹d2‰T*H$Å2Qp­ŒÒ~úŽØÞ —É™éý•w¸‹ÆT =K•2jÒµ\ pé“\ê£yñßa5ù<>58ˆlnÆ@*…è™ý•ª¶zU b`›ÛMêlÌ?ŸÞ›{ŒVÎjÚÇ£:xcnBó­1Òy‚ _pÉȪÔ'†\%)’_4š•K¶.y‰2Ì׈ÂÔÓœGýÏxGfó9£×kù˜s94ƒƒKm´ 5‰P2Š$<-ò‘Ö‰—O>Ë£ó ùÄ™ßa² 7¶èsÄý$ŸPÓ¶.hÞ>Ô¨§“›íD"Qæn Éðô]äp54¥kÂ"¥‰†¥(Y­mÌóïÚ¸úµ…¹sPƒFKùT:ø“ŽÙdcMÊŒF£¸9FKà;ˆ3_Ò°üm¨Ff¥×ð «]"U%ù•æL>&-õ%Ò;Î}ë<Î-¼17KÀ?RfŸý›¥†¤ó”|t¤|Lz•‚C.ŽçÕŽæ©1ÄÙ ÍÇ Ð0úA޲Nš2€Ü7Μ£9ó{öA1çp?Ds¾¡¡í.ù-ò´ä7gÎÓŒ^ÂB“¯äë§ÕMb¦ü|~$6P3d€rÿH‰µàÌ*e[ù6÷] »?<­nZùif E§Ò‘êQô³Rs8 ›ñ¡ùƺ¤Ã ;WfN3N5QK[sþ€ZŸú(n¿ýöé­°‡‡‡‡Ç”‘Êçñ‰£GñÏmm“óÊyx\ ¸è¹¡¡!ôöö–íÿÜç>‡+¯¼K–,\ýõxì±ÇL¿û»¿‹5kÖ˜4ì4cîî»ïÆÞ½{‹¿oºé&Ü|óÍEc-ìø¦M›ŠùÚÍf‹#i* .'iÎÿœ©àÌ•c´m‰1ãerÉŸô¤û0hì†ÄÊQGvZN‰MäíÁCìµ€m¤ËÛŠ²O{¥±+´\æz)ð„·mwz ½NcÞ\Y9IòÔTÌ~~ß]¬—¤!ò…Õ‡Bb ã–ËåŠ,e¼‚ (aæ(711¡NLó³µ)gÊÍ>i]^éú¾ÒróçˆîçŒ3-¯ ³¥¹L„1xaÌœ+«e˃Kƒa  )ˇϰrvw‹yÚäOžžVf³®É¬´>ZŒÛ‡$¯òçLc¼)ËÇeTÚçQ–Ûô™ÕÓyTŽ‹Þ˜ûáˆÛo¿½È´lܸ?þxɾk¯½Ð×ׇõëׇ¦ÝÛÛ‹t:¦3˺´´´àñÇÇ’%KÔã›7oFOO–.]Z4(m˜˜˜(Y:Ð l²(…ÍpI[—y¥¼yþ6£Î•Â熋¹È?BücÇË벤•ÉGú òm$ùÑ\1Êë%IàüíãÎÁ;l:eˆ&Ëk~~šïœ+\e`.AÑ_ÅwŒ.ÍE} ‘g ¸l6["­jm`óGs÷S5ОUú›ú(Šƒ:²¯wí÷t ̰³ùŸñí°ôé¾DàSÇãŸZ[ÑŸJ‚¡J,×¾Èæ“Fß_͘ãõå>ˆaý)`ŸFI»ŽoKî ¸ÑJ.p:[GOë£/’!cÒÓ>4Ü€“êÂëåâG JúLðý’oPþŒr0Ì€ãiM¦,ÒàCZV8Oè×ê IDATûܹú ¹”{*õàÏTÛ¤šHIÃðwGFЖËá­­eR¦k{ØüÙlå “Y§ ÞÛ"Z)ø»/õÉæ]2Ïé¹Ý=d\”Æ\oo¯uÞ¶¶¶6“ÌEKK ¶lÙ¢;ÌÌËÐÝݺºº’}Ó‹T>ÛÒi<ÜÔ„ýÉäÅù‘:2‚ö\ß<37h5yåu¶¹,êÂJZùèóa ¹†ØÜJÌ6ﳤ~Ë<Ì.JcŽË«[·nÅ%ÿþ±åÒ—T7jüHÑaR]y¹NË#Õ¹Òz˜²ñè^©>6IJ„šLmÒ3×jÏ÷÷Ó jš–¹ïÜ0ÓÀË¡EôÙŒ}›kAŒ‘(•“Gãj«NhƤMçu²¡£),)O³¿’´5#Êü¦÷£ÀÃÃx¸±û“I§ôm2«´]i:aéj¾›Åz‘óLzšq*1aAÒ1cÈe¿ ®AždåÚÚ¦ì[èR[]\X:nXãÎlkЉöŒñ}’¬IWbý¤>Âxç½1·qãF<ú裈D"¸ãŽ;póÍ7ãºë®ÃM7ÝT25ÈÐÐ~ùË_Vœþ]wÝ…û8ÅIoo/¾ùÍo:÷ðððð˜y¤òyÜžNY9ï™ì1›pÑs6lP£Z§+Z5,éÈÇȬK¥Ež¥££H$R ñšmÂWš®Ë(›Gr™–þ¦R‘Ä̉EbçÂF¹T¢£ì•ÄPB’ù œ¥ÔØ8>©,GCck÷B¡PÂÆÑ´¤(HlLB˜|Ck+ŽÐöÔ®çùh¾Ÿü¹Ó\$6Ž·7gŸ4fŒƒ^#±q6y“>ÓÒ{Ió—˜lê.`›´˜3´%ò;Wº/šLkäJ‰Í£e¦ÇÂ$Sé½v½È&])*³Ò2Iu¢p‘ºyûÐÁ‹ä«hêJ—¤“Œ1j¬HsõIi¹‚~D©Êë 8iÛ6X e+|°ó(ø3c¶Múæ¹£2¸fˆhpõ{t½¾’ó’ù÷8¢¹(âù8b¹bA Ñ\± †X.†TB²àæÐìááñ›…›‡†Ðøöœ93]ªà¹YÃЉhÍ~ œE¢à#,Êâðc•:»8ØòÚsÎëIÛË©¦ øÇUò™-ÎN~6‘·ô^Ÿí2Óü%Ãr*F\%.¼Ü•&Y¹?85é¸Ê¬Zžñx\4èxÚÓÝWJý½OæYÓ¤UÉ/ÎH©Å®bÌTÙíQ¼1çáq!–‹¡n¬®l?uêÅbeR¤A]¶×o»䋌` Eµµç²øU£1h´o˜hÀOVükö¯Á¼¡y8RwÏ­|ïÛþ>¬X…h4Š7:ß@}¶ÑXËÓ˱îÈ:Äb1œ¨9‰èÞuè]SZîÍã‡Ñ>1çÎé¢xxLÞ˜›%0Ì\¡P(éH슡Í5i³[À>2u-ûT®×$ —|§c¿9Fço£ŒŸ¼–KOf[b[h¾|t­9ÛsÆŠ²ƒ.Ɔ ~ ùJóîE QDóQ$@"€‰HGíZ g–4é…>Ç<ýby+m˜>¯g ¢Ñ(4ÀDl G1 -Ó†ÑÔ(N¶œDÇHVYcÇðëÅ¿F*—Âûúßw¶ügþQ9ÊÔGb[µ{`ÚËÃR½%¦…·‘Ä"ñëù1þ»Rf‹³oüùvyÏm’i¥nÕÊ5@‘•믫+úÊI"’2Pæ[ëP.¡ŒØ˜ºj ±q’ÛÆúJQªfÎSÊ„ÓwŽÃ€Î¼17K u”܇Ç@¢Îm>kÚ~Mޱ¥¡}D´í©È$Rz®ÇµúÚ `ÉHÊW¦ áÛR9xûi2#ŸV„‚K½4-iº ž¯k#÷=Ó¦áS²¸ÀVš5 ibx¶ ôh~¶ö‘Œ6›Gózrã-™LŠçÑò»øx{L¼ÉìááqÑcÉÈÀkí¯÷mïÞŽtMÐÛÚ‹úl=®8xºNwá™ÏÏKIdc“S“k<†úlýù+¸Ç´ãß8á}å<.:xfn–€ú¤¸økH”}*¥Ã+I_;WŠ•Ê%1¶<\˦É6†‘ã’˜6­„+;âÊRI×j,}nøD ÕŒœ¥irL9è6eƒ °úKIéò´ ¨ìCÙ«gëŸÅÄDÁsMÏá@òÞ}äÝH!…÷ï?žë|½­½¨ËÔ¡çDšÇš±½{;vwìÆ‚¡ÈF²( IŒà‘Åà·öÿ–_‚Kà§«~ŠK\R\û4Œá0  ¨a ”°t’\ÎëÆÓk\ØVé=ÒžMºŸ ¸4k“Vù;Z­t—Ìçñ9‚_´µaMM ›QI&•ƒoó2Òô¥5¨mlž–¿+l÷ŠOq%}_¨[ƒñ™3Çè6G5*ŒGuðÆÜ,5ä´NŽwŠšñ¡€®åÒ “8¤8/Ÿ-jýn´´´NØE‚ ÄGD“5§c^Wðyžle4iÛî«4퀖¶íc ùã…ùóIFM$)ñ“ÊËËL Èw¿ ¹Óg&&&ŠóúµeÚpÝžëŠeËårÈ!‡U«°jଟÜ;ö¼£äyMRøÀö¸ÊWbÐ` è m -iÆ?²•Á•¼WZpŠÙ¶åU©_¿Ö¥Ï 3šløw'N`ÎľÓÕUõ`—ç'í[^Ñ€ö%RÿîZ.í-X†ìèùšÌÊ·µïïó¦jô{¸Áˬ=Ь\k+öÕÔÌtq<<¦ž™›epu®Ô!9Œ­ ËW’´|léj#{›´,±“ZÞ¶ý6‰Ã…±3Ó}ð?í|ž?ÿë*Òàʬ٘#D!M—AËBÙFs½TÏ\.Wd¸œk›ž…NÂl IÆaì½–§ÍRxh{H÷žGæòhV úѺÑ{Bëg ‘$0S.õ¨Tf¥Ì,ÏÓäÅ·m© ® ‚Vf³.åcú…"+×Ý-Ö‹çS ´érèû‹ÅJÜK¦ÂfÒëMar;-‹Ä´Òþ‡nÛž ºO»¿çÞ˜›Å°X®£-mÍ¿‰waÛ.e–òœNÉU/s¥$I¾Ð:g©Ýøý°É3Z9iÚÆ5ÁãÜÃˬ5 +÷ aå<<.&xfî"Bµ½f›3G>“˜Å0&Ibʦ“Ý£irfKʇ—Crä— Iœ’T¨Ie4Ï_¦­àÀó§mL£4 g“ )3ÆÙE)SO[z@y;s •ž§I¾ô/Èp™“Kc褲ÑèÔ° ©Î’ìKïŸÓPcÒˉàšcÇ0‹aGs3^mmÅ(‰¾5iK²¨ôî¹¾ca2+}çyä¤-X`í©SxçÐ>pü8~ÙÖ†½55"+g+»æÁA™0ñIß1é¾Åãñ’ùùdÏZów'¬ý)#ÌÙ;þŒhn üz:?ž&½óUS<μ1wa²žÍ÷ÄÅGÌV†é„$«h¯º¦'ý–Œ/ŸÍ߈Ïä/]£-é”GÚ>ÊÜ0‘ÊÈ#V¥©=8$‰Ò€OnÉ€2éHŽ9_2˜¸Ñ'-úÎÏ£°ùÚ&Q¥¾‰ÕB2ˆyØü&Ãü©aW‰‘õÿ.]ŠÂÄÇöîE@_C¶·´`[S¶57ãD2iõ“›Êûo볌ÖgÍÉdpM:w¤Ó¸*F]>#É$kmÅ·çͳæcÛ®¦.‘H¤Ä‡Ž>ÇÒÀA’ißTéàZ›8š¿ï.&)/)j]Šà÷ѬçÞ˜óððððÀ³x¶£(0l «Ói¼-ÆÛOœÀ‡úû55x¥©iòCö&“%~vçÑB«NÂ;NžÄ5ƒƒX1:Š€øŸóçãé–¼‘J!o ïŒïq‘Âs³®Ñ[a#K›#1 ÒÉ^«…k¤š´ÍÁG–a“ª†IÕì£í&HNÔ9>ª•¸„GÙ>Ÿ=ObµLY¤5i¹#ÿTÁåú›G˜<ƒ (ch¹¥{Eó ›ÏŽ‚4Ðg¯šºk÷×%ˆ†_kî 0<Œµ–Ø•h4ŠþÚZô×ÖâçgVIhÅêáa¬N§±zh¿}ô(bãq¼Ò؈Wñrc#ö46"wæY«–)7û45¡qbWãš“'ñ['O¢50ã¹–|oÞ<<×Ò‚áDâlZù¼Õˆ«”³1äZ”8—ÚÍ~*­še²ÂdçJ\]¤º™À œýÖò¥ì¢Æ:zFîüÂs³ ¶ÎÆEfÕ¶ùBÉ…BÅsll´ˆµ°t4¿•J?6)È¥=¥ý´Ý¨dÊåÔ°)5ælS]TÒ1J’I%¾yR¾ÆXÐ JiWÓa~aZy¸¡AåT:Ío[úA¡¾BüÞð|¤2rŸ9©KeWú¾QãÖV~Ì\Oåù°A™fxWúŽñûÊïÇ`*…';:ðÿµ·#ŸÏ£>ðÖ¡!\6<ŒËO U(`4ÅÎÆFlknÆöæfìllÄ1¬hžÔˆáu-yG#,Ã;Òi¼3ÆÛ†‡ðF}=~ÚÝg[[ñjc#ò´ÌŽò¯K_`3Œùýá9ZÕ\3h4+5æè„Â|*ntUê{Ió·¹YPH>w4 [çÞ˜›epaÜlàwŠ7ÐŒ¥³1š1Ç·«õ]q j~r.¼äçÆ§#ÐØ0­lóC‹©Á$ù›ñ4lL—Μ\ðë¥Qºqú–ž1-?nàhLA˜ñ!ÕX Z© Ò´$.ÁÚÜ}6hÆ ¤iùsf²ÒXXOÇãx®µϵ¶ù‹ûDNŰåϺ­‘®åiðo…-Mé…7æf ŒOŒ‹db açïl¤›v6ÿ9^¶J?RG •™;â»vl’«I¦€¾œö“í¤Ní\2 ¶ò¸t°´Îü¯v¯¹œDç°‹Çã%Ï›ŸVd*à’&õ?ãKiv[0…T¸ÈÓ¶`Í •fî7çh˃ñ´y™]aî­fñsé¶í½=Z[‹Çëê°ùLPES6‹·ž‰˜­|wéR¼ØÒ‚Q*‡‡”•ª.>‚®ªÖ†ZÛPãÚÇPC/l53’¦â}#z¦RƒN’Xµ>Msm ×ðwœ÷á~ž¹óoÌyxxxxœw '“x¶£O··÷yÇã:xcn–Áe&#¼8Å'° £Ñ%ù&LÚ°9kr®$íj#èJênꦱ ¶à î,}\§® Ò‡K€Š-]*ói ÚS悲¼\|¦z­¼4ZJH”©¤³àWÉIŸOÛäËq²šOÛA§ü loiš“¶I‡³ tö©ü|z .›my®A{/\"4«Kp‰yî$\Ç´rký¤¼ ý®†Ý¤ÁKTA ,wó0 ïŠAXh$×°²jûÍó(M›DÁßú'‰b¹%fÎ¥¯ð˜:¼17KàB¥‡ùŽðß’ŒFÏÑ$FÿíCa+ï°è¬ïRº&_͘³ÕÛ@ZÛœCeAêïEA´ Ê$à°e¥\}Ù4?®0Øî&¡Ð¢M’–3eζ§$³Rc®F“ó$ÉHj+nœkÆo#¥êò¡âϤ4¥ õ·¢eá†*•V%:-ÿ0Ÿ1WNs£àé»Èvaƒ%)]W7W÷—k4©–¶¡éË4¿1iŽCólh.6ÉUë+uu±I®šŸ™o›óÂÓƒ© ¿<<<<<<<<r®Qf|¿ÍŒû³˜}a‘œaepéì5¿›¯˜ÖQ‡ùZIò)플HâÌìõÉd²¤lÔŠÊTfå¦&+ºÈKSíØ#‘òùÒ%|4_2*Ò /'mwڞ܀“¤fjèÒ¶q• ]¡É’’¨4\B6÷žúDñöpyo©1È}m+]¸Óñ1ÕL.2~%>güZI¤Ͱ2ÛÅÕ”SKÃfärÿ3~}/]|A)¸Q'ÕIð÷AÚ¦ÐÜm¾Ï¤+•8ûqsi~æki .Îë.à^~¬FÅ–÷T 9×rTºQhmµé˜mÍ ãÓÐÐ #@W.¤çÐV^͸¬ÖÀ²ùKrŽæë§&9?ð>s³ž™›%0£NÛhK£Þ¹g#$WÀÆBÐ fmׇIÕŒ¼M»Q&ˆ®ÑiÀ%hÊbRvÓ7e¦,mD/I™œ óA1õ cr‘bˆ!éÊ'¥µÍÎO£/m7e¨ÜEŸ éúj¢Yi™Ì_z( Be(Ñ+Õ—?+ôy¡re) âêçÉÛJúÜÍÖ[cglr%í#8£jŽÙ&F®†Á²!ÌçÍVŸj¤U[ª•Í––´m»žËœôã“K¬¶«£V7ÊÎÛγÕCú.Ñ¿ž™;?ðÆÜ,„Í€£ÛRGÍ?ôÃÍeVM–œNÐP5sP¹ÈAÜæF«ö uî GeVn”Tjxòó¥ŽÚö³J\(`ßü}ØÓ³Ëö.CÏ@Uæ¾utZŒjï=ý(ImCÛŒOe¢Kò´NÜTš'ŽJ]tŸ­œÒ~É ¥yrÐE6J}hÞñx¼Ìˆ3ùpÃRË—öÜèåe×ÞM^ÓÀŸWÛ3.øÒóîbdiÒ%u­°2.ï²”¶v½$Q_K©ßã>¦ÒýÐÊaöQWͬä>Jχô¬ycîüÀs)&bx}Åë8ÚqÏù×ÝÃÃÃãb„ïÝg (ÛFGÒ¨’ÿ¶9âÒQ!w¼ž.pçpÃÊI¬a%ù‡ôÍh‘ŽF%’žc&ÖÒ6£äñññâÈsbb¢¸>«­Þ•À6‚¶átÝil¿l;&â@@H"ã’ž \âseÖ´Épé9\‚’¤U&´ˆm) ™³ Z@}Vl²³vÜ6‡FÊj2S©Ü°«’4Kû:… ?—¦Ç×u­ƒKýèv5î66Oê¹+…Û»hcô4Æ–Ec.yßT)SÈ]Ù³1sô<Þ·Ù˜l—õ‹=¦oÌ͘¦ÖùHôå/¡Ë"ç®SmðßôÃ'I&6_<~~؇ŸCú`ÐŒN)a¶³ÙlÙÇ‘.­C¥,sMd2A .@¯ùaMü™0nFÝhâAƒ-ƒ’"8éÉ¥IéW"«r£‹–>{ô¾P_:*³RÙNC¯ás$j¾Žô½žÊ¬’¼æ?g >n4™klF…ddÑß\¶¢÷>“<"™NO‰DÄ÷‡ºÔ°ãu¥Ñ¹¦<|n»©`šŸ›M&¥ûl×ðëµ1mOmA­•Ôþ–Þc͘Óò¶­.ÆœVjdæóyuàÂ]u4wé‡fõð¸1÷ð\¬xsŽÍ9†E‹@ ~ððððð˜Ý¸`˜¹Í›7£··‘HK—.źuëÐÔÔ4Óź``&´¥#I™3 ’…Ä’I&>Â××”òѰ9(S 9z»²[ôzîNG£¹\Ùl¶$“O.—+J¨Ü©ÊNf¤œÉdŠR«Iû\±q.Ø»h/ ,<¸ÙT-§ZŠ×sÆJbáÂò‘dZž¾”XYÎÓ´r‰SƒH§ÒMŽb$1‚ÓñÓ"3AgŒÔâßHD,$ÑRhA+ZÑ’oAK¡Íùf4šeãXû,=ïæž~ gd$Z RàçG"‘’÷ßlóyùü€|rfÊhRfŽtP0ZW¨&P@ ®°]£1šÒ³Æ¥KÍE›ƒ“ÊÌæ×>TƒÖNkÇåmþ,Ñà¥3 ’«åÓ µ=eÖ¹ ‹gæÎfܘ۴i¾ýíocéÒ¥Å}/¾ø"î¹çÜqÇøð‡?<ƒ¥»p`:[jÀqcŽÃ&#ÐNßEnã¡ôZô««üB?(ù¼¼t`÷‘À;sþ—vfR}òù<²ÙlÙrg¼NT²5†4½ËTa“O$œ®;Ã]‡±bÏ Äóq\Ò{‰ZnÔ…ùƒñ4¸ÄÊ÷SYPúÄãñ³QчaÃ~¯9ŽÓ‰Órƒ8bƒâþ†|šrM˜“›ƒy™yèÊu!޳†‘©'ɪ4ÚÙey2M2ty®¹ìL9ÍÊeB›LIÓ6éÒûÈe4“7 ]>Ü’Ñj“ü ɩüþÛæŠÂ·Í4-´o°É½´^šd)Áæ¢ù*òªTÛ~×}aÇé;¢}w<Î-fܘÄ#<"Û¸qãy.‡ÇŽKö¢&Sƒù‡çÏtQBDô×÷cã~¬?ˆ\4ijÔåë/ÄQÀC#‚’mŒ#ˆÈÎ×#ÑŒDGp0qÛj¶M@ÛDÛ¤a7Ú…ŽÑ$ Éiª¡GµH&óX¹r«VaéÒQtt˜3'‹öö 47O / ) —‹ ›bp0cÇ’8~<#G’ؽ»¯½VàÝ <.b̸1×ÖÖ6ÓE˜H&“¨©©)Uj£Û1 fÄ-9‹SØù]˜9i)EE™c@9Óà›Ó4—sŒ”Jå1ÃØIÑœ¡ì+hT¦«³µ # #8Öy +_[‰hAOKc"$pFVK‹;Õó@ Š1ŒaWÓ.¼Úø*²±lYšñ|mmhŸhGÛDZr-hÌ7¢!×€xä,+MËeòÅb( €Ñè(†¢CŠ!I#M·G££¤À`rƒÉAìhÜH!‚¶LºF»Ð5܅ޱäs¥ò<Ÿ¯K°€üìWr¥÷¶µÄÌqV‰J¦®Ö´ÿàÁ"ZùmÌš;³žÃêÕ§ñîwáškNaÙ²1$@D°o_ ŽM¡¯¯/¾˜D:@DÏGPS ­msædÑÙ™ÅÚµ§pë­‡CC1ìÜÙ€§ŸnÅ3Ï´áØ±Z±½´gÜök Â0íÁ¡ÉÎ6 Zc'«‘LmçÑmMÒ–XMs7æNœ8;î¸Ë–-+Ùÿ /à†n˜¡R]xH$H&“ª¼Lït"¶èDiqkMàà9='«¾>.ë$y9€IŒFþqcNkkiº W™R‚6ihXhgÞ·¤µ£µè>ÒBDŸbÔA’¤µzP£ÁœË~Úf<²4"@€—_Æöú혈–N(Z“«AÏxzÆz0obbˆ•ÔX{-3 1ÏQm¾õÑzÌü’2 ŒæGq(~ý‰~ô'úq<~¼HÞ"œ¨95'ðjÛ«¨›¨Ã‚“ 0p>šÇ›‹›Íj›(Ø&qOްwBš¶…G.Ó6 ïr</[OV‹€—ÞqM:åu“ýå ¸ôÒ|ðƒGðîw¡µ5Àà`O=ÕˆM›Ú°kW=öîmD6[>=“”7Ý×Ú:+NaÕª1\qÅ0>ûÙ}¸ë®½Ø½»?>?ûY7†‡kŠõämi¶é”0•DhÒrÒ~F‚­ÚñJàrß\`Ú_3Nyš•n=ªC¤p.<´+Doo/6oÞŒ={öÚÛÛ±~ýzôôôÌpÉf/½ô®¼òJ¼ýío/ Ñ-þ1p™Z„ŽöÍo‰•âl„yq'&&¬#síƒFýþ¸S¾TVà j~6®ì Ý–œ¡ùy¦|•ÂÕ¯ŒB3\:ö‘–¼rÕ+X¹c%ºu‹Œ™at4ÖQ›–Ã6u"§çÿ+sìpò0žl~éxúl¢X>¾+ÆV`A° œ`ŒÚVš/-# dÐ:òå’F £8”:„Ħ"L‹×65aá±…˜|>"™òÕ2lóÑiS:hÌ }&‰‰jjjŠ¿“ÉdI}MºÔÓæ“ï)­7 ¦H$Åmú¼ÐºÑŸ‰‰‰bºÆg0Œ™£å¬­-à†ŽáÃ>‚K.E<ÒŠ'ŸlÆöí5ÈçÏÞKþކù¢iåhlÌã꫇ðÞ÷¦ñîw"-à‰':ððÃó°kW+"ý¹ ûTJÇ¥ç@cܤcô>Úž—U,\ò·]Çë–¶y&2™ >Œ-[¶àŠ+®°¦íQ=fœ™€¥K—¢¯¯¯äw{{û –ÈÃcvbßÒ}¨©CÇ‘Ž jâ¡ ØÒ°/6¾XÜ-D±jlÖŽ®ECÐ0¹o%™šÂ$+¸èô"A€±èúSýè«ïÃá†ÃE–s¸v;íÄ®»Ð}¼ Ž.@ópóŒ•{¶!ÏãßþÛcøä'ÐÚ:§žjÁ7¾±Ï>Û€\®ú5˜]pút›7·ãÉ'»ÐØ8|à8>ô¡C¸á†—ñòË-xðÁ娵ËßKÙ‡7æ¤hÖ-[¶àÞ{ïõѬ”ñÐÖäQªÜw‰_c®£çPéÌÕǃŸÃáýå‚0‰Cóã°Rµrj¤Zž¶(`$~?%)”nµ!ÝžÆ%¯\‚B¾€<ÎÖ'—ˉS«Øò¥Ï”)§ùÍTÊâÐg¨P( Éã©Ö§ðFýÅó»&ºpí©kÑ–;ã3;›eÕll(m.qk²ž‹±P›¯EÏ©,<¹ã±qì­ß‹ý-ûq²þädÑ<vÄÁ΃hiÂÒ}KÑ~²è 3G5ˆ4á5ed¨ük|ùx»ð´x™8ëOÓÓÖ5¦™ðn¼ñ8n»­sçfðóŸwàÁçáСI¦1É# ¿/.ì¿í<# ÅðƒÌÅCÍÃÕWbÆ}øÚ×^ÄSOÍÁƒ.ÇõgÊå¶B6­‰9_{&y?EïI˦&P„ùâ™ëÃÞ[¿èe֙Ìs>šµ2ÐŽ–:]KW%Æ×Hòû’%7p1J¸ßÐt ‡]éi;Ì‘8Ì÷©ÇhºÍ?ÔñœÂækS@–@ýP=Z·ç`£ùÐç熢û%ùÅæ .mùOÎyûêö÷½ýÔÛqåø•%rªdÀIí)ùkJÖ°i$h9i;h¨ÉÕ`ùàr,9ºÃ5ÃØÛ¾Ú ˆOÞ“á†a¼|éËh9Õ‚eû—¡m¨­l’f›¤‰DJî¯æ?Erz>m7iDM®çåÐ~Óg§šw¹»;ƒ/|a/Þþöa<ùd+îºköík¨jp¸tnÇ£xúéVüú×m¸ñÆãøä'÷âžÃßþm~ðƒEÈçËÝ*•a©[ØÉ>„rYµ9á4ÙYK·šólýïÏL9Ã|=¦3nÌùhV©chÎNµÂ%[.¹ VzØÒº¥hÈÅ 1\›¾Ë2Ë]@p…hoÂêþÕXy`%¶D_wNÕŸ¤ÓØré´µbùþåh=Õ:Ã¥iðáÃøý8u*Ž?ú£xá…É6¹Ð‚ …}´ O<Ñ[o݇O|¢ÿê_Ã}÷½}} 3]<+fܘóѬn0#l>í&sp–©R)2s#!Œš·9ÛjASѱ~µýœÑq‘Š¥s4É‚²p<®£ÙjX¹þ·ô£ádšŽ6}å´zšhOÊH,, ¬_I@ºnOíìlÞ9yN!‚Žß€ÅÁbPPeg©­xMþSy.$¶Xªƒm*x!Ž…ƒ ±`p·Æîù»1R78Ù|/¬~íév¼åÀ[ÐrºÅêî@·5&ÔEŠøÖ‚” +'I]ôyåS«¸Å„-ø^W—Ãù/ûð¾÷ á'?éÀW¿º§OÇJŒ8­Ÿª†ýs €cì “x`1~õ«vÜ}÷ëøúןÇÿø+ñË_NÎÙ¨©4Û«]o®1Ç8S«õ?.!ô·ôÝTwéMyð8·˜qcî¶Ûn£Yï½÷^ÍJ²Ùlh$`—(ø1Úé©Õìóàér¿=é%–Ò’¦Tp…k$VXV%Ðdãóå¼ÏóìÄé–ÓXùë•E_9©<ô:¾b…$³rŸJnq5æÏG!vök®Â}÷íÁ¶mõø³?ëÁðp¼"ß8ùºví0n¼ñ8V­ÁÒ¥cˆÇ ‚z{kÑÛ[ƒÑѲÙr¹‰’ÉZ[üöoâÖ['翊a×®ZlÝÚ€‡nÇÑ£¥F˜­:[–(~ò“¹8p ù—;ñå/oÁüëpêT¢äþLÓ¿fÎE³ÏëIÛ0›Í¯‘Xr.o»¸‘H÷ÊÕ¨xœ̸1ç£YÝ@9 a—æSÁ :j M—¯C˜± `¢X|l1æ ÎÃÎE;10gp¤ù¯«ûWcî±¹"K'Eó:Ù"N Â>Ü.Ï»«awõÕC¸ÿþ=xöÙF|îs=ÈfíSIûëêüÎïLN$ÜÓ3†ýûkðòËMxøá.¼öZ=öì©Çø¸^>³ÝÖ6+NcÕªQ¬Z5Šü(6l8Œ'ŸlÆCuâ…DB¼/½Ô‚Ï~ö2ÜÿvüÕ_½ˆ»ï^‡Ó§“ª; õ‡ÇãEc.‘HˆË°år9APR&É?º’Hý°ãaçÒúðm)š•§S‰áè15̸1ç£Y=<ªÃñyÇ1Þ0Ž¥[—†Ÿ|q é@q{ÙÐ2Ë™¿HäXÓ·óNÎöÅÛŠ,ÝÖ%[1Ð2€Õ{W#‘K„'tcÍšSøÊWöà׿nÄ]wõ *cn-Ã-·Âûß Édÿò/m¸ÿþ¼ôRÊeÒpã`p0gžiÂ3ÏLºÔ×çð âæ›ã›ß|{÷¦ðÐCxøáNd2îúÿ›o6âOÿt-î¿+þë} wß}²ÙÿŒzx̼1ç£YÝ`Fm\ioIn£×S†ÃuâSÀ}ò[Û~mÏ¥ÇJ™9›mc4+‘—] E/APÆîHr™)Oq;’ÇÀò´jEýp}q¿æpÌ÷kѵZyµs8rÈa°fИiDÃxr‘òè\-–Ï—”Ï‹ÇÁŸ=íÙ¥yjíÊëÊËlÀƒ3xЂTÖÎt'Þ3òžI–®}’¥;ÚrO¾íI¬~s5:;Äú˜çCcf´ WT*­Ì›—ÁW¾²Û·OJ«a†\)ûŸÃïÿþAüá Žã{ß›‹‡îÄà`z½K”9wŸ8}:†ý¨›6ubíÚ¬_ ŸùL?n¾ù¾øÅ%xå•RfÛæVÑÛÛ€»ï^‹ûïüÇ;pÏ=—ƒ³|FV¥Ë¥I˰Ñåî‚ ÀÄÄDÉóO—ó’˜0Û=«T6ÍŸ.Ãè:[€Ç¹ÅŒs>šÕ R]¡Qá¢}Dù”.¾Wü£ãš5Þ¸1çâ'§¡ÒÈ,—kœŒ‹ß“ä#ÆÛêØ‚cÈÔf°bË µLšaÇ£†mF»Ö1óûd~'‡QˆNn·Žµ–­\A#6i´=xº\¾4×KrT,CyJÂÁÄAœLœÄPt#Ñ‘’t…shÊ5¡1hDëD+:Æ:Ê§Ô ^ù½¢þ}´èy¼Akz× {°ÛoG6™déVnÅÊ=+±àЫäËý \ýâ\ájÔÖæð•¯¼‰S§bø³?ë9#Úå@³É’üÅ_ôaåÊQüÝßÍÅw¾3¯(ÍÒ• ø D3²\_¯¼ÒŒW^iÆÆcø‹¿Ø‹_Ç?üC¾ùÍù%,f¤D"ìÞ݈{ï½ÿù?oG__#~ðƒeÅcÀÙ{Œ1—J¥J¥555%ÆŠ$“É”¬ƒKåXWãIºw®Æœm0H SnÌÙò™êÔRn˜qc˜4Þ–.]Š|ä#ÅÅä·nÝ:Ã¥º°`Œþ¢¹NRÉ~mº ¶ÙôùY2ÄÂÊD¯ÑæíccßÂêvM5†£ô¢SRphËàä¢9\~sÍAÝHlk°Úî_qB‚mŠ )Ÿ¡ÔPq_óX³j|p–L2øÌ1©Ý([k »¡ø^o|½u½ZË;†1 dž1€³; Àœ`ºÇº1|>æŽÏEœt‘’K?ð|>>Î@æóytœèÀ;ÓïÄΞ8:ç(^_þ:ÆRcXòæ’?ºjüÚ\ázå| øâ÷aþü,n½u††â ¨ä‹jظü06l8„R¸õÖxõÕzù’` í}›¶<¢¿¿wÜñVÜrË!ÜqG?Þõ®4¾øÅlÛÖhÍÏÜϧžêÄßþí2|âo`ïÞ¼ðÂÜâ9fÀD  DbRJO$EÃÎì3ùäóùâ¾x<^H!O¶6qeí\¾œeL&“*C虹™ÁŒ‡¤lÚ´ ===øÜç>‡%K–àñÇ477W$óyxü¦àÈÂ#È&³Xðæ‚™.Jrѳ†[2w~¦oÈ!‡—›^ÆOæþ;w”r‘BùF4çšÑ”kBS® ©|ª<¡prá?øÁA\wÝþÓZŒÞÞZ§kêësøÆ7vãŽ;â{ßëÂÇ>¶òŒ!73Èç#øþ÷»ñû¿)Òéxà5ÜrËçë¿ÿý¥xæ™N|æ3;ÐÜœ9‡%õð°cÆ™¹G}ƒƒ“>6ét·ÝvàÚk¯EssóLí‚¥¿%º×|¤¸_‡+®MSb¶¥ã5ŸM2åõå×I×𦖖«3£~—6ÕX7%3åÊÅr8¸ô ::Q;V[¶+÷âiU ie¾Ÿ!…\9+'I£´|& §/mG"d¢<>ïqœH8›G!ŠÅÙÅXžY޹ù¹hA ¢ˆ–1 ãÇPtéh£1ÀñÄñâ9c±1¼Úü*^m~ÝcÝX}b5:Ç:‹eçrµ$sÉUò‰\Ö· ‰ÑÞxË@8Öu Ùd«¶­B"8ËÜL•}“ 1·æ¹Ñ˜µ|>®®,þäOúñðÃmx≧òµ´Làoþf,Èâ¶ÛÞ‚­[ÍÚ¬öë$†<¬ÏàeKÿàÁF|úÓoÃwîÇŸþé~´´äñÝï.€6GÝYŸ×<þû_…ŸÁwîÀ½÷®+žÃ'6¿)ãFûi3a0e㤉¤5)ÔÀ•E§¿µo…Ù6lœÙ¦Lw™Ž>Ô£r̸1wå•W·[ZZðÃþ7nô:»Mú³st›v’ñ%}`mÓ—p'pºBÓ' 9äð/ÝÿR4ä"…VŸZ+F¯@}l’í¡NÀP“¯AM¾¹N¬À Æ ‹Œat?ÞH½½©½Eãôpía^psGçbÍÉ5h-Âçþ&O´d¤ajÜ™ãݺ‘K൷½†|,¡Ö!¼rå+xëÖ·¢f¼¦¤í(4ÿ&Ûqé\Û3SþŽEð…/ÀØX ÷ß?ßš¾¹¦¥%ÀÆo¢¥%‡O}jvï®`Ô°Õ­ÚYØ»ñÍo.Á©S ÜqÇ>¤R|ûÛKÄóL:±X 'O&𵯭ľ°O=uO?=W¼†=Cˆö3æù Ï|Ûêf;f“\mßSÎd2Y6µ õ+•ÒòFÝùÅÑÚ›7oÆ-·Ü‚¡¡I9cÆ 8yò$Òéô —ÌÃãÂAп¸ÝýÝH 2á8ºI IDAT€ÚìY¹m4i÷[›*^™ó ŽÔMJb5¹üëƒÿW ]…T¡ú¶©-Ôbyv9nL߈ý8®ºMgWÖ8Tw?Ÿÿs<Õõ2Ñé•ÕÚ·ã²-—!‘™dãÆưcÝdSÙiÍgª¸öÚ4ÞùÎa|éK‹12ÎÔ×çðõ¯÷¢µ5‡O}ê-g ¹ üýß/À×¾¶ðøØÇú®zòÉ.<õTn¿}'R)}Ös…óÊ̽üòËX³fMɾ 6`ëÖ­øÈG>R"«®_¿/¾ø"O£Ðe'4)O‹Î³1f\¦tJ‘Ö˜6-ϰH,W9¥Rؤ^¸Fiåç¿ ÍcA_9+7§c¥Ia‹.–¯úÌYÿ§Ñ”›1§9ئKÅ(v7ïžv9.=})Þ¬}[·àTü`_Ó>©;‚«_E£‹ÊØMøÙê ­[?T·=÷6ìºrÆëÇ‘©Í`皸ôùKG\u+Ü0Lþ»CËÂYu-ŸX¬€OzO?Ý„§ŸnF¸DZÀ_ÿõ^,Z”Á§>µ}}gý(yÝmŒw5LœëÚм<ð£-DCCwÞ¹ƒƒ)üò—]%çJLõÆ+ðï<…~°?þñ%%Ï”™v(Ÿ(˜ªÙl¶x _½ƒÖÁÖf†Aã+E¸À&­š  ÉJËMû}ÏÈÍ Î«1·~ýz¼ôÒKňUøñŒ={ö µµÃÃÃ%Ç®¸âŠóY¼Yj¥Dê{¡IjÚŒò<z=M—Ι¤]O¥%š&ý+åiƒMjæçT —È0É7Oó´•KÚ7‘˜ÀÀÂÌ럇d6Yâ+&‘Iå¤y_@÷Ù“¢”é1³¿6S‹H>‚B´€“õ'KΣƒë š_gc1ØbÅÐ tŒw »!góÅ ›®å’Ì%X>¾»jváÅæ‘‰f0ÇÝO`ù©å¸úøÕ@p6-*AQ#‰Êhš]3VƒKŸ¿;~k2uŒ6âõ5¯cå‹+…lðÓ{jkg—œ¹^z/ÿÍ¿9Š%K2øÂÜ&ƒþƒ?8†uëF°aÃ2¼þzmYzÕ Œlƒi™,è@‚¶ü¯ÿµY|ö³{°}{+.ŸûŽö‡‡×âg?[ˆõë{ñ‹_,ÆØXéà–^c #Í^(ÉdÉdŠÇ¸ËÛ¤ææg¨ùÉI«Vð~ÞÉÖãÜ༚ÐW\qEÑXëëëÃòå˱~ýz<úè£xä‘GpÅWàÎ;ï<ŸEòð˜8°hrU…û.¼VŠX!†öÓí€Ó©ÓIŽ„\QÌÄİhdÑ9Ƀ#†V^…›ß„Ecgó|³ñM<Öý²Ñé“C“Ù$VmY…ø™Õ†ç cß[÷M[úÕ ‘ÈãSŸÀ/~цݻÃ#P{zÆñéOÆßý]¶l©|¹¹™G_ÿú2 Çq×]¯Â`ãÿïeˆD ¸é¦=ç¾xç•™3+:lÚ´ 6lÀõ×_7ß|³äœÇ{ ÷Ýwîºë®óY´Y W}Íq–¯•YéŠâxô•ĨPYA’…*µO¥_©£´Ë£]ÓÓä\ƒl2‹ù˜¿o>b™˜(MW#³ÒÅÜ¥ ^[[Ó{Ý9܉ã“Q¡G›¢ñxcYÚaR ÄöšU%€É)>ø¹aQÁ¼½´Õ.8ËÅDïO¿»ÇwãWÍ¿B.šÃáÚÃxdá#¸þðõ¨ÉÔ8¿W6ƒÔH +¶¬À®·ïB!VÀÑEGQŸ®Gç@§šž©£Ö†.Á;Fvçç^{í tvfñàƒóJòâ×Oî/à/ÿòJâoþ¦³â`"4u‚2¢6v’Ëú\n§ùŒ%𕯬ÄW¾² üà!üô§ó !ŸÏ#NâŸÿy!~çwöãþaÎ(«e’«y÷hôj>?9‡f6›-;O’äùv%અôÀç–«„U§ézÙõüà¼sëÖ­Ã}÷ÝèííÅ~ô£2iõúë¯/BxÈp =ó«0ô¶~(x‡I}ó8Lú¼ó²I’®~2’QhëD\äWÓ~RÇ©sRlåÖÎçÇö/ÞH>‚î¾îbÞ®Fœ­œÔ—òç²;¿_Ô÷‹FÆvuâÕù¯öµïÃòÁ删Ԩ±p6©·ø¼Fª‹vçѹfÛH tâWŠh4ŠKƒKÑ2Ø‚_´þã±q %‡ðÈÜGðþ÷#ñÿ³÷ÞqrwÚøÓ=y6ÌlNZiw•Qˆ(0 ŒÙ ìûùgûüÊlcŸ FŸ1¶Á¯åŒ >8s[¬8l !ɉ¤,!$VZi³6Ìæ8©§ûýcT³5µUÝ=+úù|ö³=*uUõSßTZ܉¶'"ÄN´¸bÕõÑ“òCå¨9³P7¿Þ~/ÒûÌKºÌcÖ«R–åïÿsŸkÁ®]>Ô×;0ˆú׿؎ †ð¥/U 6÷1eŒæ6zaÉÞ£Ô™§jß·/û[n»­;wf£µÕÍM›oÜXŠ›o®ÃâÅ'°eK\‚K›—Øíö$2GçI¸p8œ´—ˆÌé©YÍØÜ‰ÌSèùœž·év$uã…&±ÈÜ©Å)måsÎ9wß}7î¾ûnøý~¬X±Ë—/Çþýû“î#qç,ƒþ¸Ódð“¿X,–ø# ]áÙ?dÅK&z«rÌþ±×È æÍ½¥Œè`4é›mçÑüÑéåtã!1jŠ€F¼W^Ú©ö½4iI›|EÇiƒiÈêÏôyúЙ6޲(`ÿx}‰¼ú£—&32’ÿl_fÏ‘c‘èËì ÕP¢•`yÏrø”¸óV¿£o½MÖFôwÚIˆ'±}TóNä¡ >n€¯Ù4?ç8BÜÐu¼ŠÐîjÇî¼ñõÄŸúáT¤wÇ lÈBKY˸¦o„믠½Ý‰·ß6ž›W®ìÀà ŒßþÖ˜ø~\Ð…ë¯oÁ76ãškZ1{v/¾WöX14dÇï?çŸß…òrc;ÐK1cF?¦OïŸòX°Àâ#ì÷û±yófÔÔÔ ¦¦Ó§OGyyùG]¬ÈJÉŒ½ÏžŠ¬Èhq?«naƒÄÒvCô±È¦‚Þ?«ŽeÝØE*={-‘jÕè˜Î—½65£fÕ­>å©×È=äwÈB $€ÒªRHQiÄ{5“–Y©cx©Fm6 » á*u!ì £Åׂ@ZCIý€~–ç!­WžÜP.1¢¶(3Ñ×Û—ˆÇJãˆ4š–î±}]äÙÊÚa‰êïS|øt÷§ñJî+ˆI1Tûª1s`&²´¬Dþ$-ž7«hl'ú9dT®Àû¿Hq’Ÿ×œw”ïaɶ³È’>ˆV™Åÿǰxq'þõ¯lD£úêm·[Ųeݨ¬ÌA$b‡,ÛöŠT|ìq^^7ÜЊk¯mCaápŒ¿XL‚ÍFòJ¨ªòãÿ(ÃŽ%P¾jn+³&&o¿ÎÎcX¶¬¿úU\+аwoì¸ðÂŽËHêo’4<–YoVz~V%é]è™V˜ù.èI8õæ º±åä•7G[˜8|ädŽ ¢¢u1>ö}`és$¸ˆ|ð"wMjä#×i I1½t*ƒ÷`¯‰Žészñ¿Ì6 2 úÃ˦Õ8½ް¹µ¹Iá\ØûDn4„S”.›>}mBcvÓl¼_ñ>àýâ÷±äØØ8úAö½ˆêtMæôÌÁÁœƒÐ$ {²öàS­ŸJ˜ðˆ&K|õ@“!r,2”'(T qñÀÅØž±°'w®>quÒx…&á9°m6†‚Æ´MmƒjWÑ0«³ÍÒ­½(ã•›ý@Óù‘ÿÓ§ °0‚·ÞÊæCî½öÚn¤§ÇPY9,Ácç,™`É<“–¦bõêã¸á†f„B6lÝZˆ÷ßÏAuu&ÚÛÓ Ëv81TT bæÌ^\tQ3î¾{º»ãé§ÏÆ»ïNIª7oWºl b1¯¾ZŒåËñôÓ314”ìôE?‹»våâ xöÙòíÎÆ4$e¡Mab±X¢¬FdŽÀˆ8óÎë™–Ðs8[Nºl¼r’ô­Ð$§e¶`ácˆ`z]%](ª.‚¬NÎa:¥s üƒñ};û<}¨Í®×ôçtÍ[‰K¦ÓÑÖ0®éóCóáWâunsµá„÷ĸ¦_z¬öhœä´·£?sâÕx‹wa`À†ýû3 îÔpë­xë­ 47Ï%gœÑ‹gžÙk®iÃï?+W.Æ/9Û·¢µÕ M‹…hÔ†cDzðÚkåøÁ.Áw.EUU.¾ûÝøÎwރחò¼új1\.K–«¹ß{/3gö#//4.y[° ‡Éù•ø‚•Xð gKÏÒÎôŸÈxVÏ@]dXLCäXÁƒ‘‘.9ŸÊ3—û¾x*=öv2¹è¢n¬[w€«W_„¿üe:Å·Û Çǃ´´´ÄŸ×ëMwuà׿þ~ñ‹Å8óÌ~øÃíÈÌ&t¢9Po^€Ž7Þy'7Þx²œl.ÂΓ»wçBUsÏíñèv&Žd|ÍÇ¢wÍÞ£×¶´™(-2NIyi' ѯoŒu¬[0‹ÌMˆ&wD.ØéMÎôäÛ°X/W¬ ƒžx\4ѧÒF¼6Àý0³åÒÆ+OÄÉs0c=%=È;œÄF¾O½géc=•‹Ùþ”*™eÛÑ×ïCiW) jbÇ”P51eŸgÁö¿Šþ ”õ•YÁ–Â-è‘{’>Ætc¼þËöeÞ˜ Ǽ6-‹–Á®Æ¥gÍÞfÈ69AÒh/oöÃJ)½~SÐTØ¿µ3¯a—xX–l¸‘Þ’1Ìž=ˆ>ðök¯íAk«o¿!,ÛV,Ù Ç ôãG?:Œ]»rpÿý‹ÐÕåƒÃá€ÛíFZZÒÓÓ‘žžŸÏ¿ß¿ßŸÏ‡ÌÌLdff"==ÎÆÚµ×"77ˆûî{‡:‚Ðv¾zõÕ”•  ¼|ë¡Lþ††œhlLìYÉtûÓä&tF ·±8^^Ÿ¡ûK6S%t&™³`ác†Ö¹­pö;‘Õ ¶QšL˜wb\ѸÚ-ÀŒ[Ú$\¸9Áø®A{¯½Š€30ny¤ ;ì(ŠÅËc bÀ>¾»`ÈšŒ‚Æ“ž¢2Ð:¥u\Ó§1ujŠ?412o^û÷§%TŸ£…ÛÃý÷WáèÑ üøÇg Ûgª©) ÆŠ„…ñ½Š£Ï‘•˜H:Â1„e¨’«$IIÆÖt0N:z9}^´²dËdF½Ì{^ï>ÖùƒWv%̃^~zªUQù³ÑWÔ‡Ò¥Ðbw¿QúšI“äϪ©ÍH õÞè~ÖƒÒuἚóðάw IŽæEV( ¥}q‰Ùq€§ª–±kv\Þr9¶”lA¯«a[Ïû;.ïº3¢3„ϱÁ{yÒ76.#ëyÈëãàQ‡ëj²–äÉÊ«ŸªªI¤Ó& lÿVUMhªhd £ åµÃØr²i¤røÀ•¨m¼Ï+'«Ž …hjJìY½øç?“ë–h“-ÇŽeâÒKÛ Ëj’'0¯­æ½65:fa&/Þ|H@76òfe=ˆ-L ,27É@tÈoÀxPòî3ìô`¤#¦ëEè§y.ö¬»½Dj?Q9E÷ʲ,$¢ ‹W¶ñRð+AëœV¸z]Ȩ«ªR%‰¢4yKFçˆ*ËßçÇü¦ùø 4.•Û5eܵnäåŽè_´jÜ,Ü17®nºÛж¡ÍÛ†˜ÃÖÜ­81x—/…Ss&¥IÛ Ò‘ì XÇ+ö„]¤ÐÛÙ%ãÀ©tZ,¹¥Aú‹3ìDFOú³ûJ !è"-’–”ýŒhaÇ;¦QVBs³ƒƒü]0Èseeax½rsǤÙEOvvË–5ãÙg+ÐÚšIŠ“)²1=!sééñ˜{‰kt»…B! %ÒD"Ø´é,\xa n½µÎLJع‘Œ^}ª«31cF²Ä׆µµp¹T…ÐÐ0Ò)„÷nF3ÏðffÉœi̓fÈ)í=laâ`©Y-Xø˜` g…È;” §Ÿ;y{9J;ãÒ8UVñδwÐï?oL§êÄ•ÍW¢b`8ÄQUZ^ÌzŽÆqËÇ4´9Ú’&%IéÆþâ¸;§{BòÈË‹ ½Ýixß¼yAÀ‡Ž­®×]ׂXLÂÆSŒoN±˜Œ×^›‹. /OlghÇŽe¢¢¢²¬O¼:;ãÞÖ99cËÏ‚#X’¹I²âbW‰fWq<•%OÊEçGÿæÅŒcc±{ ’gˆ·9/ŠIĖϨ.¢ß£ÅxêšQ‡’vÖ ¡un+Ü=nø[üdIØ6<É\*eç©·èXY´ºÑLú¢:g†D1gÔ=„v_;¢ö(¶OÛŽËê.CF4.‰´ÙlI}•uL0êûÙÅí‹Q)Ä.ÿ.Då(lø«ÿ¯(‹–aqd1 Ô‚e&†îÀHµ/È6©-™;ê>š°“+'öi%i°³lÝØ±Ä–“À×åC#â$u cê þçÎóÚ÷ss£howpŸ??„†'úûõ÷]Ö“ØÉ²Œ¥KxóÍ| ¹àp ǰ$R2—˯׋ŒŒxÉÈÈ€×ëMÜGæ¢zâR9§3NHßy§_üâ\qEë×—&•M4¯6£ßUuu&\.S¦ô£±1Nªyq*;;ãÒ8šÌ™}¢s¼v£Ç2-q½/‘´ÌÌÜÊëSzq0-ÉÜ©Eæ& xćFª6TFϘ<Û"ÚÓ={Ú&ˆø4–¤bÔ³eÓS½'‘3U¹ÇÎÅ»sÞE_Z‚® þUñ/\R ²ƒÙÜM’èf(3àTœI}”&itDÒ¹˜CUzöfïELޑР'œXXÒHGû§%ƒä7>}ŽÀ®ØaØ¡8=A])Šž4œmC>Ÿ‚Þ^‡¡”ÍíÖÐÕÅ· 4»˜š1c² =ªÚ„Ý>"I'Û¿ócáÂVî„›xN‚`0þ¬Ý>¬I{{{ÈȸÆÂh>§ç=ɽH# Ç²ÝnOšÇív{J„ŽGæDõ s&™³`á#F_~³1ýé§¥­î¨—½»*v¡3£19†w§½‹Pk³zô·¨J$Ì ÏŬð,Ty«°Ë½ r\°ðð†û F Q.Fq¤ÙJ6wÛ1‚rµÞZT§U£ÓÕ™8ŸÊÇÅíOøû´Gãd.fŸA›Mƒ¢1§SC8<¶ºæäĽO‰±1$<‰¼F‹H$Þ&N§1QQ”á½c-X˜(Xdn’€] éUÉ饩÷ÛÌ5V Ç“:èÙɉ¤\"Ûž„k,¢}#¯;#)†Ù¼EéJ²„æÙÍHïL‡¯ÓIæ«õ$s©¼GH[`äÆá´½í-Èz.‹‚FëIeœ1'.E%= ¤H•jF=líüpja‘¹IZ\ÍDzªµÑ;‘MmÏêèI×Ì&Ñ¢É]OEI—Aï>iä©þD•-UˆÔ¬½…½òaÖ;³FØÊ¥b'g&O=9µÈ²¬/Ч–äÙÙ‘2’f‡‹š!=–Žª¼*@UN†œCXܱx„ŠŒûU·%©±);Nl˜žy¡y €£î£8æ<†>ûp˜ UVÑëìE¯³W¿ÑøÃ~,l_ˆ¼¼xùAzé1C–äÑÇìØIR÷Ÿô¦”T‰;/©ÄhðÆ‡‘T‰Ü‰Èp¹Ä÷ñLÈñ°=[üýz½ z{Id³p8 ‡Ã‘¤B$mH÷šð‘Ý HZ^¯‚PH±­ŸhaH—ŸÀf‹ÿE"·ÝÈ3š¦ÁfÓåÖ°fLPDjV‘‰Ëq<ÂØˆæc‹Ð:Xd΂…4œ˜}íÈè4o'tºA‚„m àx±¯x4ICCF6º6bqçb)E’oN, ^„E½‹Ð«õ¢ÑÞˆVO+Ú]í°$ˆ’à‹úP:XŠi}ÓàĽc85AR»‚¨;Î\¡ñÙØžE8,Ãí6^‘93¨«‹ÇÉ«¨À¾}#ƒÊËûPW—>¦4\®x›u«Ünápj 1 R…Eæ& x*Vž!,ùoVª£·â2Z¥²ÒÖÐÚÈèÚhÕ©'u4‚ÙºˆÒ6’ ò$ ©¢§¸¡Ì¦½5-)m‘gzy›m7vWV:g”›Ý6’4,¹ {޲y ÉŒÞHWÓñvÉÛˆÉ1ô9ûðÂàÌÁ3q^ÿy¥äúÐN7t?¤%¬––ÒÑfΨÓ”i˜Ö3-.=ƒ† =ˆçÂö04hm24hp¨d¨ÈŒfBŽ {8òöl¥ÛƒäI~³Á´y»IèIÕÓÇÞ>¯i©’èObÝÙé@N_¬D÷ý¾>òòR³Ccç¯ÆF'ì˜1£{öäê†C"sK8Æà`¼h¯l²Ÿ( LvƒPU3göàí·s…u2ƒììxÚýýüO(ék’ƒßAg§ÓÔ;Õ+‹h>gçz3Á¶YÓÞX¢çð±ÌsN ,27‰avâI…È X‘Ç«ÎÑ‹ .B*“…™—Hµ™ ±3£6£¶e'\MÒÐ2§™m™HïNOºÇHÍ:šIUO]¬ªÃöZ´ªŠÝAo+*:š”Ðé±ÏòT@¥¡R\âz¼÷6:ÜÐ$ Ò Þ]¥ýKQ ŒÈ_oWl(v‡ÖfÍ©8‘Îzý€ ~ãŬ#$·VÿémsÇË£/wX5œÖ—ƽ—ŽÑ"‰îÃäæ¼=z4 ‹÷Âf“@öf5ÓO“ë*cï^?®¸"€_,ãÞOB‘°#¡P(¡r¥É0Løhû¹iÓÚQXÄÞ½Ù‰ûDjV™’e³öŒüX IDATgÇ dMÛÇÉ¿?›-ÞŽfɶhnæz*»¦Ð÷“6¤Ç’¢(Â…e*‹;KÕzj`É~-XøÐ=¥áŒ0Šª&F…8™á‹úpmóµ8¯û<ÈZ|Šê±÷`ƒÞI{'É©à“ :K†½g}ß„äÓÞîJæhTUy‘–¦bÚ´±ítð—¿cúôA,Xš½¢Y\sM ÚÚ<ص+gLéÌš5€¶6z{õwÇ ^³Æ»hX°0X’¹IŽñPAÒçy+S³N¬ú`,bù±JéôòM›é=ÃJ:ôV÷ Ù$´Ìn¯Å‡ô¾t¡zœ]!••=ÏS ²N¬†žÔ‡.3oÓx#Cml8kà,”+åxÃÿÚíÐ$ û¼ûPïªÇ•ƒW¢X)‘?[~‘A6+‰c÷ ¦ËIÇçyÐ’{ye`U»<¯U='^;÷ô œ'N™™p…]IϰÓ볪ª¢µÕ’’0$IKHÜxu®ªŠKçÎJ6+I¦¯ïÜ™Žº:¾úÕãøö·3 iÉ^òŠ¢$IHƒÁ`âX–åN2À°4oêÔ^\vYþøÇ™ˆ'g^bÄŽË9spôh¦®$LUUÅ·9kiq$73¿éÍ"µ*ëøc$Ó‹µÇîÆbt?¶$s§Ÿx2×ÓÓðûýwNlÌæ¯gGÁˆTÐ÷ˆlòȳf&d‘-ˆ‘]N*“½Q}ò7‚¨}EêÓTÒK¨®¦v ’Áô]ÓM§£÷7KZõT2"5+M6R”I›‰ðšùPd+ÙXÞ³û¼û°Ó»ª¤¢ËÖ…ÊÌJL‹NÃEÁ‹P $•Ÿ Tʪ:Ùú°ÿYÒGGÎ'à‘³à8"ui? æ5$®ç׿'®!•1.ËrBâ6eÊêë=ÂwÕßoGS“ óæ±iS2‰cŸÑ_LÊxôÑ2<ñć¸ñÆTV#‹%Òˆ2n¡4±cÕàÉ$'†;îØ…'Ò°aC‰Ð3[¤Â¤ ”Í&cæÌ~¬_?mÄB…#³g ­Í‰Þ^ǘç&Úƒ—ΗgãJ çNC”†‘ÊHžXs+hð©Ã'†Ì]uÕUؼysâwee%n¹å–Äo¿ßÊÊJ\yå•)¥ÛÓÓƒ—^z püøqÔÔÔà©§ž‚Ï7¬öxì±Ç•••¸ç‘GI\Û²e ®¾új«ÃB Ê*Zgµ"ëD¼ýç±w:A†Œ…C Q¡T`KÚì@½£õŽzTD*pþàùÈñÚO7œ˜uo\}—Ù‘ À?a3UUñ>:gNœÌÝ;wîИóÜ·/ë×âöÛëpüxÈcŠn¿ý**úñío_€hT0úù¶¸8ˆôtÕÕÆèsæ  ªjlž³,˜Á'‚ÌUVVbëÖ­Iç$IÂÞ½{ÑÕÕ…ŠŠ ”••%]_³f €8Y[½z5Î9çnÚ«V­Âm·Ý†%K–@âx÷îÝ€'Ÿ|²,cÕªU€ 6à¶ÛnÃï~÷;ÀæÍ›±zõjÃ:ðDîz+^=Õ(ï™Tx阕 ð¤3©ä£'eÔ[õš•ð¥rY´:§u"ꉢhGQâ¼™÷ɞ׫§jVUC`´ÿêh¤s¼çYɘ™tsc¹X9°‡‡±Ã½ýr|{®g jœ5˜™‰Eƒ‹¥ üY2OÍj”?©ƒ$I#¼f¹jt&h++ám9EKŸh°³@q­Ó[ãϫʗÁ&«éò²é°×Ø9‚—_ŸMMNÌ;ˆM›Ävf²,cÏžL|÷»õÈÍ °Î?ìœC×õ¿(ÁÔ©A<þøaÜ{ïL¼û®±æ‚îÓÄÂnWñíoç?ÝŒG‡Ã‡½ˆÅøÎYtþ츔åá`¼—]ÖpXÆÑ£ÙjÖfÍÀ‹/›–¦óêDÿFJY°ŽK#Ë5r¾y³åॣª*×DAÏiÊÂøã´'s½½½¨©©á^óù|8ûì³Gœß°aV®\™¸¶fÍ!™«­­Å–-[dîÜsÏÅ“O>™¸¾fÍÔÕÕ%~ß|óÍX±bE‚Ìmذ[¶l1]ö#¬gׯ›$ͪeE“»A2cS¥w~<Á#—©ªøØgGc?’;Ð6« ÙMÙHJ!Máµ¹¨}õT«zª"ÖNm,*d³Ä’¶}¢Ub¢°ܰì&ñ¢`­¬š+á-Kõ‰@N5ó‡ç²iG¦!-8Ü̘Eˆl/õX￟ŽsÏí3O¯½–o~³Ÿýlþð‡bSå÷oÿñexä‘Z¬[wë×çáW¿*Áà ØS–%`sç†qÿýÇPQÄ<¯½– œô<;Oèxh 7Üpo¾YˆÁÁa;8`¤ÝãôéÈÌŒáý÷ÓF­Z5;çðLD’÷E J^™Iº´jUdÊËÏÂÄà´'sëׯÇêÕ«’63¨©©ÁÍ7ßlê^"#8~ü8.\˜H§§§™™™I÷øý~lݺååå\© Y°I”áâ <ÑꕽfvК‘Š&’¿ˆhš™¤õÒ׃¨ Ùó¢ûÚËÚuFQtT߃ըMõ$/ì9z’¦WߢÍëiéû®i2bÖ‡-+/ž޵ã<l8;z6æGçã}ÇûØáÜ „&i8ê>Š£î£( —`vÿl”•Â×vŽW6’7ï>ºÌô¬ ]OòÈ1i:”[Ǥ²¦¢±¤ÕåÕ [½7£´¹41ƒ›S£Åöí>\w] "how Ó´ãÿÈÆM7uà™gŠ`&[=’§(ÀwNÅÊ•øÖ·Zqùåݨ¬ÌÆK/ùÑÞîñ|¼¿K8÷Ü!Üzk–.íAM_úÒipÀ…Ñ…˜œ‡®ØãÞƒ߯é„ëN¸NÀscæàLTôUÀýèFƒ°#Œ#GÈ $Îå·æcƱÐRðÆ ÞyÇE.½´/¿\¨{oeen¾¹—]Öƒ­[Ç.EÓ$¼øb.¶mËÄW¾ÒŽ/¹·Ý@M ‡»ÑØè@4*!-MŬYa,XBNŽ‚úz'~þó¼ôR.€ñ rã8r$ÕÕÆu»ôÒn¼óޱ˜5Ø-LŸ«V­ÂªU«pË-·`çΆP’¤„èF“T`zd.U6³jÚTȃ•.›ÿxÃ,á1£ZÙ¨Äì1fS—gЙ´k@*Z‘*•½Æ»/ÕÈðìs¼´*RÏæŠþñâ´ÑöstZlžªªrÉm'äÔœ8kð,Ìë‡W >ô~ˆ†´¨RÓ†¡!Û¶eê’(Þü©·Á ™ °m ZøÓ;¦°qy»š£sš²0:œ–d®¦¦&å¸qäþÝ»w§ž„ƽ÷Þ‹… âÖ[ou4È€*((€×ëµ´ÅÂG‡öíPm* «õUTÆ$‡‹‘?˜ÁöAԥס6£îNr:=èôtâ0CVeäs?”üÁ|d³aÓFK.(’‚6_šýÍhÍlEÌ–,½,é(Á¼ÆypDˆÁœ­âxãõ׳ñ­o5ⳟmÇOLѽwóæ,¬\Àƒ6àóŸŸsZl2Î9]øô§Oà—¿œ‹pX¿_Øl*–- àÿÈÁàà©éC¸\.8qµ6!º±X CCcYcA§%™Ûºu+Ž?žˆ+GÔ¬kÖ¬Á¢E‹°dÉ’„ÝÚhHº+V¬À“O>‰òòrHHËöìÙ#”¼‘p(§<ÉžÄEª«ÊÑJèÌJÉR‘¦é­ÆÍ–ËŒŽw¬8´ÏhGNMlC¶„TN$)Ñ“œÐÇz’8^ÝXI{9'RˆèÒê>¢¶aÕ‚d5Ï“ÒÑž<ÐjQ¢ò¡;U'fuÏÂôŽéèwô£ÞWÆÌFô¹†÷6UeíiíhOkÇ¡¼C°©6äå"3˜ oÈ‹´HhðúW$"ãÕWó°lY;þð‡â“±ÚF>|° /¼p·ßÞ‚Ÿý,ÙáGϴ¬$Š3ó™Ù¹ƒn7·;‚ï~÷0öîÍÂßþV YÅɆå¸ì²NäçGQY9÷ÐH£!*ŸÞ;¢¯óÆ’HǓ̕…M—V)‹¤“–šõÔâ´$s¬zuß¾}xòÉ'ªÏžž,]ºÙÙÛ-g…óÎ;Ït>»wïÆÖ­[ÑÛ;¼ !Ž(//‡ßïGmmm‚ì‘{Æ"ý3="@§j¿a40?ŽRC=òBƒ×<2""sé’€ +ˆ +Œ“ɪSq¢¤¿%=%Èȃ¤%'þ¸ ¡Áƒ-[²ñÕ¯žÀ¦M¹ˆDô‰ÇsÏåãÊ+{ðÃ6âÖ[gMJuë¢E½X¶¬ ?ýé ´µ¹ ï_¼¸g5€;ïœu JgÁÂ0$í4§ÍO=õ6oÞœpˆX±b–,Y‚ÞÞÞDpßãÇcÆŒ¸ë®»RN¿··k×®ENN:;;Q[[‹§žz*‰¯X .\»v­éô÷îÝ‹… bæÌ™ ›9#£s#£xú9V¢1Ú¥H’¤—–YÕ¢™ºˆV¥´—{lVå*Z¥ò³ÚÐ3½3ÿ>öˆ=åºÑe³ÛíImËJÏxjTÑÐfû†hOKú˜ghÏ3€fÕNlÑ ëCÞ‡Ëå‚Ã!æp8àt:¿ãA[G¶ë$AaÓ†ÚlL0ÖÓ4)žCÐD¿£}ö> ¹†0àÀ kC®!(öaUf*pÅ\ðE|ÈŠdÁò!3˜‰ìP6$MJòäµ'¼-è÷AŒÕiÉ ­†¥ÁŽÞ¸(- âùç÷ã·¿†?ý©xÄuvŒL› /ÆÖ­>ÜÿThšyG3sžôÉÌœ¡çRZÅýWjk½øö·çôŽÕ3%ˆá¿ÿûzzì¸í¶™PÕ‘cÒL™ys“è}°ó¶ÈkU¤Mà寗É#&öɥǭ~%1çTUE8Æž={pî¹çróµ0vœödn²ƒ%s€ØûJ3ÔˆÌM¬:Ç é4«r1²Ó«/M=2'š¨Eí!:V< j®¯ANUòå鿣÷AáMæìv>,™ãEƒçՉΗ9ÚFjK{m²ue·Æ¢Í|lé÷a·Ûä9r%—¼~E‚¦Š<íxdŽU'ëÕSÓ4hЖÂr !ì C“âÁ€%ùd[Ùmm'ëf“áéJ:2µLØbÃêi–hÒDš¤éíŽÁS'«ªšøÐò&"st_`ûšhav×]ÇpÅX¹r!IéÐÿI>W^Ù‰µkëPY™ƒµkK ËÉNFó˜Ñ\d¤J4Z¬ñÆbAA Ïšm|³…I œ1'ƒHCÃd—^š€:Ž$©§:† Þ?.x晩Xº´_ÿz-{l¶áý[¶dÁëUðàƒMˆF%üìgSØÊâcˆüü(~ÿûZØl¾öµ™èêrÀ€"++Šo~³¯¿žC‡ÒÓà=[˜\°ÈÜ$‘r˜1&‹‘|ª­4yçhi€žŠ•·bfÿ‹V™F«u£ëzÏ©\£Þ(z§÷"çƒØ¢ú¡ xuIDh©»16-¡áÈÓRTú{/6/Íñ°õâÅ¢#çEÛ±ê_žúQ´õùÏS%³jN#öh!Ú΋.3¯ÏŠ$²tyͪ+ÙcQ?éîvã׿®Àš5ÕØ¾=;väŒËìÜô׿æÁíÖ¬iBzº†‡žU•Fäa4®É=¼yÃŒºÕÅÅ!üáu°Ù€¯}­MM2dYÑ—ðïÔ| Wò¦§õHUJ¯WçѨVÙ|®ÓC€ßiXÊ¿S‹Ì&Ð#Fã™ÞxL˜tZf&2Ö^D¤–aC2°÷Œ—:Æ(Îù£2²Žf™Ê‡°y¸HýazÁ;irh¬ —&9zäƒ÷Yõ©ÈN&U¢òÒ±­Øòð‚þÒéñÞ/[3&ÑÇöîÍ@{»£ gb³©¨¨áòË»ñÙ϶#//н{Óqß}åøç?ýˆ¤¨Ý•$ ÷Ý׌Ï}®÷ß?ï½—¡K-X8U°ÈÜi ‘Á¾HÍjÆËÉÈ`ÖŒô‰Î½–Ö¸Ýñ¯ÛíN’Ü5€„ô i„®·J5ãÌÀ«Ÿèœ 6dÕe!»>;ûÙn<ø` ^}5+‰ÈV²fFƒ¡§²ih‰*]=ˆîÑû6°¿YS•ñR[ЇEæ>He0‘zÂ2+n×›„èûh5œÛíN"sô–Nš¦%‘8òQ£'/¶œ"Ò–ªm‘è·'èÁÔýS¡JjB€`–¨¥MÊIŸ§I„ˆ\³qÙhèÙ£™QݲêAZ}I“FÖ6Žu·Û Ç“8v:‰gHÚ‘HÑh”s-ÈñT«FDNôX¢Ëk{–lÓ»gÐ6$MúY6Ún‘ÔßÌûõ©Ñz¶šy>îºk&~ø8~ö³£X·n*^z)ßpaÅžÅdlÙ’…-[²ŸÁܹƒ'ÉÙ>ûÙvää´”¨¯÷àÈ‘ lÙ’?LCuuB¡øBÐn7n‡‘¯ }´çŸß˜‚¿ÿ=²llÿš*ŒF"ˆ®³ö–Fù²äK¯Œæ7’–hû8 ã ‹ÌY°`Á‚…qA$"ãž{fàßhÀÝw7`ÆŒ |*ÔQšNN¼ù&‰Ù¨!??Š©SCp¹T¸\*Žx¾‘ˆ CCÔÔ¤!´¥D`õPVºuÇá÷ÇpÇxï½4Kµjác‹ÌMb˜]1§jˆKŽV^Õ‹×^ËÂÚµÓ08hKHäŒi¼4Ç*)4Óî¢gF«Í“z¤ž—·…‰‡Eæ,X°`Á„àƒÒñ…/ÌÇ׿ބï~·K–tcݺi8r$í£.6›†oìÀ7¾qŠ"á®»*ðÆümù,Xø8Á"s“fV–f îÙk*«(# S*Ò9@,aá­ÜõTl$?veH‹ÒgÏÑ«éTWÖ©ª­ÍÂ(°.‡Œ®9OÕÓiòŽÙ¾"ÚÜž÷¬ÍfcT_ês‘]’¤„s qˆ¡ÕèäÝé©?G=é¦Ùçh ³(]^Û³çÙ¼EñüÌ–Q$U6òäý6êüs¡ ÿ÷ÿNÃ?ÿ™…5kêñÇ?~€×_ÏÆO¡±‘¯z+ÌJk‡Õ’®¸¢ _ÿz ÊÊÂØ¸1 ëÖMEoïÈ}iéc½­Ù|h¤*§ïgû™÷hV2§7Ïå[aaâa‘¹I³ža,Dö<²2šûÆCuȆs C2Ðqú7í½ÈzXŠ&YÖe_´*È¬Ú UÒfƃ&c´ šÝà‡¬ =,‰­os{Öî-§hg‘á‘9Þ1]r>ÏS£³Azéò³ï–&·zyÑ…9aŸ¥Ë©—&6]ožÚ˜­§YO³ 3ý33 ½üöíËľ°ŸùLV­:—^ꫯfãÏÎÁáÃÞ÷…,èíüAÿ·Û\ye¾ð…æÍ â­·2pÏ=ÓP]M$‡Éá“H¹x;°^È"©EEę׿ØôDdNWOõ+2aÔfT»l¾&™›$ “¸hñ ÑªÌˆò¸h²à‘ÌÑ bzg‡h4 ‡ÃIÆöš¦%®)ŠÂÝ`œ.«ÝnOúÒN414k-’€š•†Òi}ìyéÓä‹uB‰Åb‰ûôvo Ó¦IMžX ~ƒ€•ÒDMÏRdkÃ>CÊÀ~D EIr2 û®(Óçé7»ÁøXŒ¾õ¶å¢Éž­™èšÉàó~›Iƒ‡XLÅ_ÿš‡M›rpÓMmX¹² Ë–uáàA/^z)[·úNÚ¦¥.ÅÖ“~±N%%C¸ñÆvÜxc²²¼÷^:þýß˱{7q¬9‘¬Tæ»T%¢£è[a4ï‹®§º@ cÔr€85°Èœ ,X8¥‡e<ÿ|ž>—\Òƒ[néÄC5âûßo®]éØ¶Í‡íÛ3ÑÒâ—ül6sçöãâ‹;qÉ%(/¡¿ß†¿þ5ë×g£¾~bÔ½,œ*Xdn’a4jV=É+}‹§»Š3’ì±åÅb ) -™†%PD2G¤iÑhtÄ~œä>Ѫ–HêØüéúëyÚéI ÇKÅÊ‚M—–~Ñ툻ÙU±êÚK˜gGB„vgCÄÐÒ<²*§Ó¦U¨´ªŠ ¬Kò§%^¬š• I P^Žú+®@ñ»ï"êvCŽF!‡Ã°E£° ÀÛÒ[ LõœðÊf6=öo¼ðlBiI-Ô³4’αcTOB4ÒÃΪ*aûö,lßž…‚‚.¿¼—]Ö‹ï~· kÖö“»>¤£ºÚƒ@À‰Ž:;Pv|ip»#ÈÍ"/OAqq³g`öì̘ß ¢«ËŽíÛýøÕ¯J°cG&ɘחʧ*1ãIOG#Ýä=OKßõ §YÐ{‡fÞ¯Í éG–šõÔÀ"s“FjV#ð&‘ï·™ò™UÁ²å¢óŠp6KŒÅb\u"I›§c?tt><Ò;FðìçDuJflOXû*4qMÅ@d3'"s´j•ÞéµM¢Ó¥Õ,lÌ9’ÃáHª+!ñä­Že {ÌfC`Ö,ÔŸ}6ÚçÌÁ@^”“;K4^w¿Þ±¼­­HolDæñãÈÛ»þêjH}~4N¢øwìo=U”hw ÖÙ…>&`?Ü¢>mDàxçõÒº°­Í?ÿÙ?ÿ9.ìǼyƒ˜;7ˆ›n ;;y|öõÙ (4M‚,kp»Uxø |àªJÜñ¯G¼Xû3xs £!8ô»¢ÍNqßäÕStÞ±YXÄí£ƒEæ,X°0©v»Q7w.êÏ: Mgž‰¨× oGŠÞÓÞ|]%%h¼òJœùÛߢð­·³Ù :ˆ9ˆø|˜2¥¥(-Eí²e¨þ·ƒ£·yûö¡è­·¿s'0FïX cÃà  Û¶ù±m›ÿ$AÐà÷+ÈË‹"''ŠÜܲ²Øí€,Š"!‘ÐÙ—Üut8ÑÞî@8œSÑR¥Z8]a‘¹I‘TÈheÌ»Æ[¥9W•MT‘3+Á# hcyV‚A{³²ù‹Âo°R:f–ˆÎ‹TÙz0»bIÙ`¾´ZŽ•ÐÐeaÛÑÈH™gˆÏ“ˆ² Õ´«ÃáH„#¡Ã”ЪvVuÊÊ»W]…ª‹/†j·#§® 6oFéž=Ȩ­…„øûk+/Gã•W"âóÁ34”,­ljBî¡CÃõ’eôÍ™ƒ¶… Ѷp!ö<ðÜ(ýÇ?Pºiºí2Ð*qè1AÚWï~ZRʓΑ=s=˜IÏHJ'2ÁHþ-¡§Ç¾>ª«S!dªié$¯¢òŠæ`v,Í"' rÍHj?ÖDxs¾IÝxj&,Œ,27I@{ Žfuiv‚0J[OM32ÇÚê5+}žö>Äj,ÑÄÆóΤ?xtÙôbÑñHg*6!©Ú¹ˆH/®‚œ#¿É9Ê‚M›·”ž%§Ñ6Y¸\®¤w@oA$I¯;?õ)ìZ¼6EÁù¯¾ŠŠ÷ÞCzWW¢ž eK—ÝÐh§L1´e³È9r9GŽ`Þ / ·¼µ×^‹š+pìóŸÇ”Í›1ýÙgáêîFãÐ(Šð<$UUÕMWÄ'Ì,øŒT´Fi‹îKe~Øñn“јªL”=­Þ=ã­jÍé>XdÎÂ'±˜Š’‰p8 Ñh:b±LD"éÐ46[v{d9›­’4±{iZ†"ËØqÁxóÒKu¹pö›oâìM›à ¡( Do®(TCùù)çé«­ÅY¿ý-f?ý4¯¾ÇV¬@óå—£¬²¥ë×Ã Ž­R,X°0°ÈÜ$O®·ÚùÓ¿õTfŒòið‚ðò¤L¬¥HÅJìŒ6ŒfÁófU”4ôôÌCOÏèéY€`°Š’Uu Ra…ÝÞ »½v{;œÎ¤¥íƒÇ³Gï¨V¨Fï÷›nk"eãIæØ>C«áØi4DR!â 阽—gŽçAßF!IZý~Üì.ä~Ñ;aƒþŠ&mÚ[޵Oä‘$žŠ•ç5K·kç÷þÔ©xfÉøúûqÛï~‡Œúz@X§mh´$Ip ’‘»ÝžTf©`ûyÆ18ˆÙÿõ_˜ºq#ÝqÞÿñQ¼q#¦ÿæ7pPž×¬jUo½Hþ,XòG«ZEdޱ¥ã‘ =“ =ðÏæÎhŒÆTIŽY»8³jI³à½kÑ)fÒ©±GcÎAŽé°B"›=½üé{É»åí‚Á¦)2ǰ0þ°Èœ…Ó ŠâAGÇ•hk»}}óuïu:;ápôÀnïƒÝÞ›­6[ü·,÷AUeD"9ˆFsf#̓¢ä@Q²·¶†¦9 ÍF}ýÑØx7|¾ÈÍ݈¬¬÷,Õ¬Ih6žq^>÷\œQW‡å¯¼‚Xo/F£Øôôö"˜5~¤{ÚÚpö éºëP}Ûmè>çÌÿÉOà;ztÜò°`Á‚…ÑÂ"s“<³ÆÄc׋ÒMå¯Ìfë£'Í#šŽ¶¶[Ñѱª:rŸG@Ezz üþƒðû?€Ïw.WgÒÊQQ”R-Þj_ÓlˆFs044ýý碣c%hr§ªéèî^‚îî%p»kQTô"òó_‡,Œ¡G×ÅŒa¹^ÛÐåfõÀJÆè6¦¥´dŽÜ I2Hƒ'-⩃EÁ$á™K.ÁΊ \óÞ{¸fÇ„ÃaD¨ûDefa³ÙÖÙ‰ÎéÓ!;ÐNÆ­Ós U˜ÂX}š†’‘µo­Yƒ=?ÿ9æ=ú( ÞxCèœÀSçò$Ÿf&ˆ3G*’vë6À¬÷¨±¤ÎHÅgöX$écËAŽÍ:ŒÕ@ï¼h2³/ïh´fUóì|J;tÑNdDJÇîSͶ™¨OÛíö$©ŸžêÖ©Eæ& èIlR7ZµLÎóÔ±¢¾Çî AƒÝƒµ†C½Œf¡@ßgdó–ÊØ-JèE}w s;´Z°`ÁÂøÁ"s“DâB¯ôy¶d4X±8{½äy:¥jkgF5Ê>+ZóVȽ½£¡a "‘âÄ5·ûŠŠþ€¬¬A’HHqYˆÔ¼²²P/úûãNO=<žŽygdFFÆ÷ £µu%ÚÚ>Uõ@U=¨«û.ºº.Gyùáv·Ú8êIãR…HÂAKDÌn¯ªjRÒûFÚl¶$É-©Øú™ÏàXy9n}öYøG?’íòˆT·£ ÞÊ?#4 }Üûd9ycz3R9ÞØ“$ Eÿú\Ñ(ö?ðÞsÎ[·.n€‘vqìotxv{ìó¼ë@²š•ì™ÆX<@õ¤Xfú$‘(Ñ;~í1jVõh¤ÂÍó¼4Ø Ôì^¹¢1$²Ïdóàµq*:t«reAnO5Ÿ±ý4 ITŽ¡!¤uuÁ×ÜŒœcÇPxð |'N$åËæÇÛA„=W°cÎyôQì]³ïƒ8÷É'! žçmMG“`^{8i*CN:OZ=k– ™Y˜™ýH‘B^è¶mxs™ÆK]šÊóô»ÑS-šUçë-tɱHMm6v¦ó5ê'¼Å§ ¶0q°Èœ…5:;¯B}ý=ˆÅ2ç23w¢´ôa¸Ýİý£)[OϰŠÕïßmꇣ?ENοpüø}‡‹ ª^ÔÕ}]]—cêÔ‡àrµNT‘?h9oßz+Îü׿0ïÝw“„‘‡ˆÛýK– fÑ¢¸N–U…#Šß i(:|ŽPAŸ¹¹è-)A÷Ô©¨»(nïhQ¶mæ=÷œä¹Q èÝwqÖ/~ßù¼]]˜[Y9ê´,X°`!XdnCoõÌJãˆÄÉf³%I4xêU6m3ùó`vÍ[qjÐÚúe46Þ‘¸×nïÁÔ©¿@vö«ˆ/FõwO0kôÌ†ßøû—²&s1øýûLK= #cÎ8ãßÐÐð DJw>þ3ÊË¿¿›Ðƒ•­›ž·á©ð€fwƒ`Û0IMêñàÍ/} yÇŽáÜ^@ð¤é€^Xž$K•el_¹U‹C³Ù + rêê0cûvÌxóMØUÿ»v-†²²põOšTVÚlh›;-g…ú‹/Ʊk®Á±«®BÎÑ£8ã„¿ª*Q’?ñ ¥AKÀl6¦½ù&Â……øð _€¿¾%{ö$=CKRD!Kè6dÛ–H²Fõ¬1=¹‡öfe%¥‰ö4P·Š$ÞzýÊ(#©/O Ë“"ñú¸H"ddÊÀëýMçE¿3A Ð7ˆ¤qä˜u°HÕ‘‡ US‰ò&¶0zXdn’ÀH\mD^hïÃÉzAêå£÷Û<µ*;aišŒ††ÿ@[ÛŠÄs¹¹›PVö Øl]0"q$-="ÃSíñáM¼áp††ÊÂnÔ­7¯Ý$iÓ¦=Ÿo êêþÑh!T5 Ç?†iÓDvößuÓ4ƒTUR£AP%ц±X G—/ÇPN.}ì1D©}Nyžl_µÙlPì½újìùô§s:áíéÁ…/¾ˆ);wBeŽÀÓݾ‚‚$bDàPïÝ‹â½{qîÓOãÄYgáàÊ•èœ=o<ü0Ü]]¸ðñÇá?r$©¯°ö{¼~4÷å—ÑWQ]wÞ ßý÷ÃwÒ›–ÜÃS“²ö{´ÚšõZ¥óæ;Òö¢r𱋽,û[¤†ãÙBŠT†ôAÛ|©ªšd:"2Ù ï§ç:Ѽg´`¢Ÿ©½õžáAï:KæhˆTôfL`Øú›ñ¦åyÂòH§¥^=µ°ZÛÂÇ ªêDuõO’ˆÜÔ©¿ÅŒ?„ÃÑó–,É*Ö=cJ+3s'æÏ¿YY›Nž±£¾þÇho_¡ûÜdCÿ”)¨Z¶ ³_y™ÍÍ©?ï÷ãÙ‡ÆÎeË Çb¸ô¹çðÅ5kP¾gw"Ëhod·Û0íâýûqÕ÷¾‡ëW­BéöíûýxcíZXµ*årJš†ó~ýkx;:ðöÝw#âñ¤œ† ,¤K27I@VÔ©¬ôôÒFÆ8ÒS‰ÕG£¾ ù(JŽûéIÇ@’LŸþäåm=>aà›ÓuëéY˜8ÎÊÚ%LÇl»Ùlƒ˜6í>Øl=èè¸ÐÔt/T5 ÿR¹SÏ1Ä xN´$)ÉSÀþÕ«á 0}ýz(”4A¤†Ô4 v»±X Móæáõo~ªÍ†37oÆ…/¿ IG¤ª*2N:6t–•¡ðÓ$ˆ¢ÄîÞ^\ô›ß ïO¶DíuסuÑ"\öàƒð47'I“ô ¿¡.zì1üó±Ç°ïË_ÆODëÑæiflêiXxs¯=Ì–Ùìû7ÓÖÆ‹ÌMÐvoF—°ôÄÈS;é L!1«Zø"~BdYF$R€êê_!ª8ym³gß¿'7m‘šD϶‡ÜǪVE6/"hÚ°dN–ƒÈÈ8Ì­³‘ ƒ='I@qñZÈr?ÿhn¾Š’ââ_¥lÿ– ±©ëôÚ†.»(°/y¾ùškÐuƸàþû¡ƒPìvîîl^’$aÿg>ƒ½ŸûdEÁu¿ü%J?üpDYi;PrÍßÐè,-EÞ†þ ?ľ®.ÜpçØû¥/¡úÚk±é—¿Ä‚^Àì¿ü%ñ¼(”éoi--8ë™g°ûë_Ç”;1eïÞ$"E·» o¼²íC =°íÄk7Ö&S„Ñ, ycžþ-2eÙÙÒD•UÑ‹‚&³s‰ÙzˆÎñTàfaÖ‹”W†TmØôÔÎly̦%úŠ …ÑÃR³ZøÈ‹¥¡ºú× "g·waÞ¼ÛDîㆡ¡2D"¹Ÿo?þ{ß_Gq®ý잪sÔ{±%YrŦ˜!!¡‡1䣄„„’.ÍÆráBèàK)$¹ÁНé!ÜàPb0ØÛr‘d[½IGÒ©»ßÒ¬çÌ™Ùst$ìãŸ~Þ³»3óÎìÎì;ïóÎ;ªš¹™§¢¢¢b…q®«ëhiY]Ÿž‘Ô#¹¹ØqÉ%¨xõUoØRÚ·.¹ë¿ýmx‡†pö 7Šœ ƒ••wŠqà#à¸n€{tŸ\p޾ᆔÒ×¼ñ*Ö¯Ç?úÂÙÙiËaÆ f°•¹iÍJƒža™ý‡tò—ÊÌ”-‹='ºf–F×46Þ‚Phl1dz \„¬¬- 2›ÕIVf:f JK(rLèB6¶è/——·Žk)L÷ ´ô/¨ªº Àعžž³ÑÑq‰T]' ònzóÚ˜nú=âýí9ýtÄÝnÌþÝïÞ=º^»ÿû¼óÐtÄ(سg]y%ü}}R²xGFMC°¬,fˤ­)äXÂN'ÊvïÆY?ù J¶lAçâÅxëæ›¡Œ[~h+/[x<è:üÝïw:ñá…rß+MÓ¸íBÚ•×æ¤ B‘ÑlÛŠÚˆ¬Šä­eÿx׬`6Nпé¾È«¯ÐrçäñxŒ?·ÛðÛårn·Ûø£Ÿ3ýgµØŒ›È}ž÷Žó@묵‘•}_és¢öåÉœî*ÊÓ,z”É…M³Nˆ|ÚèÎDwjz…‰è a JG‘›(Ørºº.Æààчcõõ?…ÓÙMãûïYÉkV: ¹¦XZFÔÖýý{ýåèør<ÊB†þ/,| G»wß ÀŽŽK‘•Հ·ÒfbÕ¯=XZ’]}É»/)_— ­§ŸŽòüž@:g· ¶ñxÛN9ÛO: Ù]]øæ7BÑ4ÄÆÃ˜•ɆýpD£-,4ÒÈR%0h;'Üv^½öZtì¿?ÞºõV}à «y[,ƒ·¯oŒnýÙÏP÷Úk(§¬‹<<+š5•çÍ£hEa`Ìòe:+ÈŒ'V÷ˆ®³+;É3bC0±;~Ðçé÷„~†2coÕª4ýO‡ØáùâšùDÓ}„=•É*¿éŒ§VéEù¥’·ÌÀVæ¦9èAŸõ…¡•Þ@@~óŽiÈtdÚÿÍ*?‚o »›Ä‘‹cæÌëàr톦¥7Ð[ͦy¿y><¼4{&Æh¸\½ðzw€Üf¦Ì¥2Ò2ä彄òòbtt\ ص뿕õ}de5që,ôeA§a㪉vÅ0›Ýws ¢……˜ñLò´<‹‚ªªèZ°/¼®`'^{-ƒÍ]Æù\##çäp¯™ùòbÁ9N{÷Ýxýª«ÐvàxwÙ2vÛmÜ|é­“âñ8ª^'žˆ/¸Ç/_•YY¥PV)§f[i¹ÝÒíNûÖØ çÉqÔE×ì.¹a˜ IDAT„rBc+|À7ìCeS%ck ‹?ÓFqñ#ÈÏ0‡înÄãÖá6>kèZ—,Aá{ïÁ·gTš˜Çƒwn¼J<Žc¯¿Nʪœ¼ˆe84È7î»E è8ä||ÙeRiûýå/Ìš…]_ûZFå±1õˆº£h:¨ ˜ûá\Ì[?s?œ‹ÂÎBlÛ¢®èg-¢/lËÜ4Mí°~ôlMÔQ”'È”Ÿ­GçúÑÚú tÝÈÍý þŒX,u:‡-CÆ2Èó½‘)SÓ4ô÷Óþr$ÍØ'b™ɧ(@UÕ/ Õ!š‡p¸--ÿššÛ“Ò˜ÍæS-Ÿ¶°V–Öç!xÀž;³¯»ŽëÿÓmíu×As¹pÈ=÷ÀßѸ@[¦w50ƒ¯·šhS¨x`û¦iBki‡ão¹»ë.ì:ñD47£úå—¹ÚºY¸mf¼ý66~÷»¨|÷]8C¡_>ž•=«†ÈwJ†>Õ´½ÁwI?2Ü4\´T·`Ø? *tèðøQµ« Îpò {Q©@dUº¥á¸577X³ª¨ˆ:£¸ç{d¡-a$ü ‘Éét&äE—if!ë¬ïDå–Jø>èªcyæ ä z{5ZjZ0kÇ,áxʳ’þÆsƒaË!]Kœˆš•½×Æg[™›& 3 †œg 嚉AÖŒ‚ùxttü¢Q²àa3ÊÊ~]× ë|úÓJNÞuÅ(SiCŒãœœ÷¹ùŠèGÙÁ§ªj55×aûö'¡iYèé9 ¹¹kQPð†Ió¸ •MS®¼ëôÿ,Z—,¯¹…&U¦&RN÷¢EèÞäoߎÊwÞA æ[>‰hVZ1Êîì#EEÈêê2î…aó…Mq( N\ºÏ?ü06üèG({÷]¸úû…y“ü=ö^yàl?é$ÌöY®oœ±x‚‘Õl»(º=eâêCÅx£ýÍ"®4`Îî9Èk̓:t d`뢭X¸e!ÜQwÂÖ€V<ñÆ·æÆò…Ë|àèã›?ºÙƒç_Iž'ý^‰”93ºr4{}IÜ–¦iðõûÐRß"lwÚ†ª†×¯Ò òΙ¹Eùd wécvɃM³Ú˜R ‰¡¡“ªÚŠŠË¡ªéon>•ˆÅ|Úàõ6ÁãéžÒò½Þ]¨¬ÜKMïÚõ ÄbyS*ƒ,Beeè=ê(T=ý´Ð"FCðÁÒ¥P4 ‡ÝzkÆäȧwûëë3–'3Ãawß ÝáÀÚ›o–JãïéAÍo`Ç)§ îvg\¦Lc׌]˜½k6òƒùPÆŸ¤ùÁ|ÔïªÇî»?c ?#è0Úƒ…Ê4 #dcú¶ÌMÈ„bÁÌ\Ÿê,ŒMceЧËÅüèìÜûÑ+-½.W+dª$SŽVô«®Ñhb±Ä㹈Åò i9p:‡áv÷ÁåêÛÝ‹ý@ºL^Þº¤¼ÌžO¦f§……ÏbhèH x<ßGuõ¯…uåg‰LGn³k}_û”X eÿü§q޵Ñî§]„hn.f?þ8\ýýˆÃ< ,Éà;ø“tMc EÕÕ¨x÷]SùiGtÞyÖB§( *6mBå¿ÿ¶ÃCÓ·¾…ú_4¥ u]ÇÜ^@ӱǢùè£QóòËF™ôbÍJÓ…,Ì,­V+ÙߤEQ0êEq{1T×Þw…äW4Z„&SZ‹ŸH92u0{ŸY ¦¦kF¸!‘‹]´u’e0’dS€±€“©I}üŸÈbÏ.HcïYæÌ(P+»ì½<¤ã¦acja+sÓ4ÍʃU´~3ÈtZ‘2g¶ºIÓ4ìÞ}¢Ñ™¯w#rsŸO Ved‘¡edä­C0x‚ÁÅ#+æ»7ŸaãØçûÄ’f4£YÓ¥2ÆüçîÂààW¡ë^tuòò§àõö÷§ú|D×D#Þ56ŸþÃGÞ† pŒŽ*‰./`×)§ÀÝÛ‹Ù> müâd·³bó"Š”A³67ºŽÁ²2aÝÙÝDÔ.OiTUG®XçþøGlþÁPõöÛðö÷sëI&dþövT½÷¶Ÿ~:fþßÿAadf;ºnf´3-§LZ>¶ Õª**\N—pE¬ Õð_LuÕb: 8ãÝÖº®#&ø*šù@² ß):=9G~{‡¼)¿ßŸ¤˜óƒðy“ú‹Œ_Z*t(/MªçÓ¡\Sq{‘ dcâ°iVS‚‘‘y:Òø×£¿ÿÐ4הɠitwŸ‰­[ÃÖ­«ÑÒ²À RŠÜXz¿qÜÔôKìØq‚ÁE“%®.W7JJžèºmm?œrÌ÷x0pÀ(|ï=©ûwœ>t§sÿô§ŒË¢ÆãP4 #¥¥ÏÛ(CÓpÄw@WU¬½å©4sŸ{Ãh;âˆI“+ V&á5åËù¡.ÝQжm.6ÚG‡Ž`~-óZPÞXþKhãËÛ27Í šõÈÎ<­faVÎófV³›×ÛŽœœ÷04t8ºîGw÷uèïÿ(*º ~ÿËP”D Ptlž|šæBgçyèì<ñx>'M~ÿFx<»ár Âá‚Ħå"-B4Z„Ph&†‡÷ÅÞ5‘ô÷ƒþþcà÷Œòò•ÈÉyºžÚlšG5ÉWT¬DOÏYдltwŸ†ÊÊ¿Âëm¶•ìûˆÈZ <ºÇƒ‚÷ˆÐò½M`Ï©§Â1<Œò5k ©‰Aœiê‹¶¶Ð«þx+¹ésŽP¡ü|aÝØólœ7:¶)ƒX£J6oFÕ¿þ…Ö¯} Í'žˆê—_6_$Mîöí(úä4ŸpÊßzKH³¦¶=XˆöÁeƒÚ:ä†sðP.1ò#rüdLl‹2‘•Êê=£[°c"y~¼÷0QH¿SlÐaú=vE\¨ý ]³»Ð1·c, d eaÖ‡³àˆ8 AlÙ–{¿Yûˆ¬æ“IyZ=/š®·1ù°•¹i2±†^ÁÆžu0Þ*-ÖïÅÌ÷Чd˜)[c FóçÿsÐÕuS¨ˆÅf¢³ó×ðz?DIÉíðz7ró–QæxŠÑÐÐþhn¾ÞØ÷•Àçû……ÿ€ßÿ²²¶CQâ–þ€ñ¸½½§S³"ûÀ €;@^Þ먪º‡õÂq;É)sNç**Ckëeœhm½óæÝœ@±Qð Ì6dM%›)s´|ý‡Ok+²öìF]£8’¦óè£ËÎÆÌU«’”0p—€¦Y‡qÌÖ‘U†ÜÁ "ÙÙ h^ ^Þ4xÊ­0,¾ÿ~´~8¶ž{.fþýïF:VN’¦jÍlüùÏ,*‚§£#!4 "™xõ¡óbÇUËîŠ@ÊšÝ5Îúj§ŠÂ‘ñ4 £ß׆Šì»uß„w†§HÈúwÉЮÄMè¨éF(&zu.ûlEÏZ4f²~nªªÂó jsUÒ½²u•A*¾j$_+÷:_3…1Yxß 2¥ZéÁVælL)üþ-˜9ó(.^‰¶¶«122F3…BaÏžÕÈÉyEE÷Âãé˜P9šæÁîÝW¡»û,êl EEkPZú|¾†ñûäg®G¥¥«QZºšæB_߉èì<¡Ðlc;Zƒ‹QYy;òò^žü2(+{g#+DOÏñ˜1ã1ää4Mz¹fÐ?ï¿/µŠµñ¢‹€xu“@±xûû1Z\éò¥ÕCwŠm¥Û°µd+ )T9¡,Þ¹jlê?Ôwn½ ̯BþSv„§\6>°•¹i³P,XŠÀ,È'ë8Ÿ*H=üþ¨«»À‘è꺑ÈX舡¡Ó ž€¢¢GPZú?p8†M-s<Ù¢Ñ'RTEc”Y™VãŒÌ¢IÛíNglL.l2û öã+Óéi…BôgVïX”Óé„Óé„Ë”–> ¾…’’¿@QÆöãŒÅŠÐÒr#¶lyCCGre Ï…ÃÕØ¼ùaC‘s¹º±hÑe(/ÿß”¹tàtö£¶v)ªªn068--+ iÉÁaY¥Íl°æ)räœÇ££¢â €®;ÐÛûUdeeqÿ¼^/¼^/Ün·ÑöN§ÓPúhÇwò—ʳ×4 #uuÈÚ½ÊȈqž½‡üõu”hë×'Üc¶€\Ke@Þ®]€þY³ÎÓu–ý˜‘… º®°kÚXl3ò7÷¾û]Ç–ŸþÔØü‘ôÄI?oãF¸ûúÐ}Ä ²ÐÏÇårô³SUÕxNf2‹þhYHˆ‚Jþgÿغʎ+<™XùØk²°z?ÙzÓu£ß'ºž@òN2c£h2fV7ÑX [ލ¥ÒvVu4kS¶nô»ëv»árM]Ä‚/3leÎÆçÇ*+W`Þ¼3Ÿÿãüèh=¶m{ ÿ‘‘:nÚẊ††;ŽùFee5cß}/ß¿cJd'(,|ÕÕW i0x,ÚÛoA ºGÊ(/ÿ—qÜÚúÙ†º™=Y;wZÞ§­®FVsó¤Ë”¿cìèÚo?ŒmdîäoÚ„`}=F**LïUtEï¿Þßd©lذñE†M³~AÀ‹N/ò³ADëYÍxé4f¦|6_Ñ,ÒéìB}ý ^…={®4|ßÀ¦M‡¢´ôyÌœù'¸Ýýãõu`çΛ0::fyÉÊÚ‰… /‡Ë5˜$/On«¶°›WNΫ¨®þ vï~ºîÃààéÈÊú……%åÍ££EíÎK§ª* áóubd¤ ]]ûBUKàõStö˜•!råg7÷ÁÊ:§­¯G>’DD¾òÀéDño$PU4ÅhíŒYð‚ååØzî¹èZ¼Ðú•¯ õ+_kx…Û·cÖš5¨X·§ÚhJšç³F׃¶^Ñ¿ æÜ}7Ö=ú(¶]vö¿é&Óz½ÿ>Ú¿ùM„**ÕчÑà÷Ⱦ4íLSâl¿âµ•x«?yÈTžŒ2cV:¬ÈLD³Òt2"k}]DÁŠäg-aÄúÊ+/çk5îðŽeÜLD鉅Ùö™›ØÊÜ4Û‘¸›€Ó.V#Oq¥‘ùØ‹cöë%¢gsr6aÁ‚¢¯ïx´´ü‘HººÎDoªZ‰òò§ÐÑqúú¾6^÷AÌŸ¿ .× —~àÉlÞÀ&RPhdg¿‡ÊÊåhm]èì¼~ÿzdemå¶ {N‡.—ÕÕÿÆÖ­§A×ho? ¬M 7è•ÐG´_- ÏAÞLI'Ï=ZXˆxn.²šš’®±è8í4@×Qö쳦 ”ýð†óò°õì³±ëÄá Pÿâ‹è›7%Ÿ|‚ÜŽ UU¡ýàƒñÞµ×Â×ىſù Š7nänÌ.j¶\ÖOÏ»{7\ýýØo¿$D¶~Eë×C‰FÑwøá¨~ñEƒ¢Æ>èl:ž2Å*`f&úYÒ ?ëkÖ&?9ѽ²JHª“ÆT”¶]­òɪâÆ“ñ˜<3ŠÓ*ÿT £ä™µ§¦i 2Ðt«É‡ÝÊ6>×P ¨h ŠŠÞFGÇÙhkû>âq?âq?vïþ1ÚÛ¿ƒh´püî8æÎ½ ^oëg*3Anî+ý3úú.àFkëí¨¯?kRü÷fÎ|[·žرã@,X`c2ª‹¹åmi±¼wxÞ<8‚A¸4”X†fÌÀÛ·Þ ÍéÄü¿þõ/½GdŒò6„¬[‡yÏ=‡@m-6^x!Þ¹åÔ?÷®\ %G‚¼õëÑs챕”ÀÛ-Ž=èAÁ¦Mè>äT¿øbÆÊ·aÃÆ—¶27MÀ³,ѳg++[ªH•¢ÉÀžg¯±N´4¢¼ü””ü --?BW×Fà^(+{ùùÿNÊWô›=6³É‚­Ciécdä0„B ÏA pŠŠö~°eËd-,JJšá÷wcx¸­­óçÁç‹÷Ò”íÀNò£­G²Ö^áqeÎÓÖf){´ Y»w'gƒ×š]Á9\ZŠwn¹žþ~ö‹_À30( tÊòB/ÈkjÂQ7ßŒí§œ‚O¿÷=„ qЊB….ÕHö•«W£ç¸ãÐúï þ·¿M¨'›_á'Ÿ`×·¿ u|AfeÓÅb1©0%"ÚŒ,f ÷°ž%‘΃¥!Sí/<‹—•‹5+²Þ‰Ò±å¤Óß­(Iѽô¹T-sìΉÀkCÖÚKË0™²Ø0‡½bƒö± ƒ½ŠˆþMÿ±é2¡üYÉÆ[)É[-)ÀŽ^ÔÔ܉}÷=~ÿ'Ô•fÌø}ÒÊ5™?Ѫ0;Q8q”—ßiœëæââ,زy2íTWEÖ––ù í˶;¡/­>0ì³2{¢UUpööB6m¯˜ÏÝå‚¿±1éý°ú¸’z³«,#ªŠuK—B ‡qè 7À$­R¤ö‹ÇQÿüó8øž{Ðö•¯`ãÅ·§"¤iùx*òW°u+”pxlÕîxÝØ|IÛæ74 š“ƒ‘ªª¤ûègÈ*ƒ¢?¶‰Þ+ú]¥Ê[åÉîÈÁ¾3ù3{Í êË 2 ö½Íô¸Í[uN}ÞÙª­R­c*íÆ®nžªvµ±¶2gcZÂçk¢E?ÂŒ¿¢DPQñ8œÎàg-~ÿzdg¿ˆF+Ñ×·dRÊ))i0Ž{{§~£ïHi)Ü]]–÷ î¿? (ÈÞ²%ceï8ûlgÎÄA·Ý6f‘K•k×b¿ßÿÍßü&Ú;,crålߎPE4 ¿¡¼mÛyó2V¶ 6¾<°iÖižõ‚]ùDÏÔØ«ˆ–˜ 9YKM{™Ñ¢"TT<‚ÒÒ' (hš˜àåŸ X9G“z——?ˆ;Æiôöž‡²²U`>fÏ€}n¤ :VVnî^_ÁÞÞ½£óòí§Iƒ¥[-ã™yO/à ²ò¬îéô‘匮‹V+^Sí‹éX˜ÌÊâµY}Ec(¯L^‘UžXßh«8 ÞâBÉÒt¹Y]yò‰êÃcØc^V;hðÔÀ¶ÌM3ˆhUb–'´)ž¥Äè¼d1Uæs^¾Vf}E Ð’‚¸¦KµL”–ᵻ߿ ÙÙc4h$2££ó“î—mú¥D"p»[¡ªci__)ÂápuÆ£ÐÌÂK°ïŠõ¨¹ÝPÃÉ{c²m52k ëðoßžt/ëdz¥ƒï’ã–¯} ÑœT?ÿ<·^Vb{uû=ô4‡ çœcz/½âSäBàp8Põš†ŽNHºŸ}æù Ì™#”Ÿ-Ÿ(wc} Yñf)9+ZŸ~Ö2ï#K³ãž7s­°šÌðúÛeú«Ùø"j³¶’ÝìØMB“cz §Fó‚H³ÏW4Ö³õeÓë¬òž¬ï„dØÊœ S„‚‚5Æq p\ÆóWÕ8rr:Çó/…¦¥æ°?QhW™cËÏ4 jyÀ®3Î@ÉûïÃ×Þ>áü¼ê^|»?áÜÜ ç§Æbp `xÆ Ë{s››¬®†žâB 6lذiÖiv†M¯|¢W£±tthT¯Ñ32ZÞ> V¦üTÊ73ÿ§"?ïšh¦+²v²Ço`ÏžeŽGUÕCITkª *8'§ UˆÇ]èîö¡  ß¸/<®hE"úEÀ‹­ÆÏ¥­I<ÊGóxà´ðWÓ4 q— c íñ©ª*W6‚Á9sœ5 s~ûÛ¤À½ä~šfåÑ«, Týâ‹Øqæ™hüæ71÷ñǹû’˜QÏYš=;©OzKWU„JKs»÷z1P]j¥/oïYò?}LÀk3ÝJCÖrG·'K½‹Ú‚}.2ûFóä#÷ˆ`–ž¾G”·ègg6¶š¥çÛ4­J,—äk½í™L#‹%Q¯€55Í£geï§³çy}ÆÆäÀVæ¦ XS:9G¥ïå™»É1}ž=–ñ§³Ê‹-“`heÁLåoæ’ª2ÇBF¹³RÞDEg9904t Âá™Ð´b¸\})ËHß«iZ‚2ç÷ïp ³³n÷XÌ7]×·F‹Åh<^}x!.ö®žMÞ!Aw»¡Œ—aÝí(%Þô^åIQ Ì %CÞ¦M¦û¹’ûyÏÀ˜p(ã ´uêV®4•O¾ƒÎ3§© ƒóç£ÁÄ}> WT`¤ª #••­¬ÄhEtàY×Ñ3w.òÆ·9£jÒ¯yŠ̘–OU÷†ža•ÖçÖˆÉg:={¿¢(†lô.¼àÆfÏ$¤ê62‘òE㤌DÚØX—>ùÌ‘ót;“1”ÿiŸ55mVQ}hùÙó¢1¸gؘ|ØÊÜ4íÿÂv~ÙÙ«x›•Ò&:&ƒ =˜óCYEÓªf  LúT®…Ãï߆¡¡áp<ž€”‚av=¦ÇÓl\ëé)Baá0€½VP’†µÌ‰\R&ω™}ß4ÇÐ˱œhn7I_«úÖÕÁ×Ü „BÆÂúÂ*x< ïž’÷ÞCëI'a¸¢>*nÝN¬£;--Åpe%†ËË1\QáÊJôÏ X·bl7%EV{;|­­(Z·Y­­ðµµÁßÑOO\±âë y¿yÊœè<ùØ‹¬_<ƒ_öžç?É‹Qȳð²å“¼yçÍ`Öe,iÕ/¼`œ×œNŒ–—c¤¢£3gb¤²#®¨ÀhYt\9…¯½¾¶6”¾óú:3_x¥o¾ OW70±ñ±¶-6lØH¶27M c™3£Vy³2*•wY‹/]¦¨Ñ‰æÃË“@Ö¯†µÌ±é}¾½¾P££µÜ¼eÚ^dÇ÷†ÓˆF„ÆC…Ð3wr¯(l‰MËÅZët‡CJIÓN@@ šÉBßK·KJàûàƒ$Ëí×%² ±–¬„vAV{;Z=ÁêjŒTUQ¢%%QØÂaøÛÛáooGåûïwtÀ×Ú OO”q‹ ½—*í?F—I·§ÃáÒ’t~@â>­<ð,‘¼÷Òår%Ð{lÈ zXQþ2}$ÿ)3*Ô¬¯ˆ,i²}[ô®ðòÉ"²XÑ4+ÙC™¬d¥-stù´e~‡èwЦ\eÇ=³1+•öCIÀÊÄúµñhE6]o‘ì,MËRl"êOä?Fƒ¦ûh?9¢´ÒÔ*O fë&j¢*™€ }ÊÞÇöO: ï¹[•KìJUB§z<CËÊÊJPì<O½J@+ølH«Õè¢cVÎTüymÅoìí¼¦¶2gÃÆÂíîÇ~ûŸVZYßœ‰ZGÓ…«¿±ü|èÌ>î®.@Qš1c,¬ÈËŒM(6lؘ¹i v¶)K[˜9Âòò¦ÓÈ*é8¾fb¦.S·tò·ªçç…b°¢š¬@XAUU¸ y½€ßutTxŸ¯« ª©AöîÝ å[½“¬%Å·y3"ßûFÊÊॶó¢ÅɱY9t¾f±ÓXYØØä˜·HÝ Áì™ðvS ÷c%idÞ/Ö"ÃsÄgWÆÓuÞS¸…C…ðE|IÖÚ÷ù”¶%‡ÁÕÁjAï\ÄAKM F|#€èŠ_Їòåp„“Ë1V &v"EÓ©¬5Îï÷|>²²²ŒYæÜn·‘_<OXN¬^<*5K4oò'ßÍX Q{±Ô,MÛ˜<ØÊÜ4Ýáx«ý’s¢M–fMå~Dõ™h^2çs#5‘jùéÀÌÿŽ¾ÇŒŠäýQs¼2SñÅr€xa!\œ}RIšì;#óæA}ç¡L<ÙØûrÖ­ƒ‹¡ÿ°ÃPöÌ3IeÑÊíH®ÑeˆÚ[´Õ™H饕6^(’TÞq6DÈDß/zá{Ì–IêW<\Œõ5ëqÀ®àŽíU6F=£Ø2g æmÇUŽy靖ˆÚ>qE°uÑVÔî¬EÎ`tM‡Á¼ v,ÞÙ͆+êÊHßãQ‡"¹YY‰n·;Aóûýðù|€ÜÜ\C™ËÍÍ5”9LJÃa䇞َÏét&=7z"‘вo6Þ¥Òž¢1\UU[™›"Øk†mذ‘¸ûÇöšÞ—³u+ iÜâ«mÃÃÈýðCôwÜ„ó¢¡ÍЊÛé_ćv€k>ƈ{À¸"7wL‘󆼓Z~KM jwÖ"w0Ê8¯@AÎ@ª·W£½.yâ`ÃÆ— ¶en"UËœh&Ì£R]ø*­É£†SqTæQm©”É˃-ƒ=æýæåÿy¦[yíéøée깑ò­hRÞÀn¥,›} yçÕHþÆF Í› yzúäÛ³ ôJ•ýå½öœW]…=—\‚ú›nJºÎk3 -c°¶j(„]gœžÅ‹1Å äoÞ,”A´[KÅfR™cëaEƒ9yÔ*Ø—¦‡u]GV8 õ-õX·ß:¸ñ@xF=ˆiÉ«‘ è˜|¼<ÿ&©|Ôd-‡"ÅŽk¹`­d˜È3 ¯É~ÐEíneÙ]“µNÊ*tÙÛ¶!8>7̼O>ÁÀ¾ûbxî\øLe¦Ÿ)¯|G(„÷ßæ›oFñßÿ޼÷Þ³TàØcz3øhn.Ú;U/¼€’5k°ýê«ñá ü…PûûßÃ54ÄÍG¤ÐɾçV×Óx°Ï€[GÀnäÎ.Üq`GÕðÑh¬mÄœ¡9pFö*5¢wƒ·£­Ð‰]Ñ¡¨ $jÖt PÇÊàM€1ËL)Úô»AêCÇe¤-D™óûýÈÎÎFÁxíââb”——ÊËËQVV(**2üç\.¢Ñ(Œ-ˆ ãÌŒŒQÜ###FÌ:R6­ˆ›Mà躒ÿéö‘OØXtt9t¸F'“Ö°}ælذ‘1älÛ†áÚZÄ©Uy<”¾û. ë«_ÍH¹…/½„œuë°kéRÄ=ë&ØuÞy€¢`æO gÇ,¾ürÌ^±Ýǃ{ ]ÇÉ ýüyĈ{›ê6aŸíû  óæcÛ‚myC“^¶ØÁœAîµÁœAø‡ý“.ƒ ŸwØ–¹iˆti0³{È ÊÌgÄ ffyúž©‚È:'²b˜Yæd­˜t~Vma–Ö*l~2V!³z§z>§¡ºÓ‰áúzäR~sÄ‘³e £ïCPûÇ?rÛL†&¢å©¾ývl~òI´üä'¨¾ÿ~(œüxòÓ~eÃ55h=ã T¯\ G_bã2”¬Z…¼×^CÓW áÆÑ~ÒI¨»çdíÙÃÍW&¯ÉЂ²V\™~NƒÝ÷•¥„Éïa×06ÖnÄ¢‹à ¹‰Gàv¡nSv.Ú‰ºMuðŒz¬s¬ÅŠµÆ‘ó¢UÁt^3÷ÌÄ–…[P×T‡¼`TE…¢*È@SMökØn·Û ‡d?-ÖR+c±¢Ó°Ö9rìt:üäÈêUŸÏ‡üü|/¢©ªªÂŒ3ÕÕÕ†•Ž…ÃáHXKÊ ‡Ã{ÃÃFùf¾ŽVT3Q±Ê‹î/$-í§G¿4]ocra+sÓV6Ýùè-bh_™­‚XˆÌø2^3jý€¥£ ™ÁŠZå)5f`*e²çÌOåa&— n&—Íš*Å þÆF(Ñ(çÌá*sF^|­­ÖÕÁª5E^ö½q77cÆŠØsÝu\¼ó¾÷=8M':½ªªˆaó¯~…¬={Pöøãed¤kkìë¯Gá /`÷Ò¥Øð裨xäT<òÔHDŠªJ§Meúè]áùÅÑÊÏŸ‰Ýš¬ÛßÛÀv#‹îmï7j7Ôb pÅÃÅIï!/ -Ÿ¦iR R\nYˆÝ3v£¹¦*T@ü£~,Þ¹xç^_?^>´\2®ìØÆŽ›´ÂBÆVÇc„ÉËËCqq1*++µµµ¨¯¯7®ÉÀï÷£¦¦À˜Ï‰9722bP®ÃÃà ¥2“TÞo:=ï{ÂæÍ*ÁöÆS›fµaÃFÆ F£ð75!8¾ eo¼ÝåBÿa‡e¬üÒU«õÉ'ÍŸ†ÇƒfA÷„fÌÀæ+÷ù0oéR8Bbú0oíZ,<ç”=ú(Ú¿ÿ}|ú׿bðàƒ3U…Ϫº«Îâ^óŒzPÜ:ù!\ÜQ7f7ÍÆâÍ‹q`Ã8¨á Ìß=žØÄ(u6¾(°-sÓ ì,Èl¦N®Ñ›<Ó9Ó³¹x<Žh4jxŒD"Æ ž·Ù²² D2ÓùdÂGçͳÀ‘ýnÙóDV–JÖR$CY˜åk–ÇDÛ—=/k!b­Yì10Fµ,ZÄ̓¶œÌxæ4]pZ–,AÁÚµÂ2S¡¸5áY³ D"ÕÖâ“§ŸFåo~ƒ‚—_†ÎyžºÓ‰Þ3ÏDëÏWOæ^~9œ»w#Â)3AŽHe¿þ5ò^z -Ë—£á¡‡PøÒK˜±b\ýý¦–Tž){ÿD­Õt~ñxÜèÍÛÙ÷X6­™E€Í‹ÞkVÖš/²’±–9rÌëû2}”]ÁÊ$î¢áõzV¯VTT–µyóæ R (\__Ÿ`™#”k0ÄÈȈ±ÒU4αýU¦ÎV×xÖ`¶|²0ÅÆäÃVæ¦1Ì: »É3íËAâÑ[ÇÄb1„B!Ã|¯ª*"‘HÂudy‘Ü™PØRɃG°Ê¯Y™lž"Y2ññµJ+“/^’¡^DÔ·ÙqÁ ý´Ó*+ƒ¯»[(“khÞŽ ì·bšr+ðÌêÖsþùÐü~T<ôò_ym—_Ž]·ÞŠöÿ9o¿ ï–-€¦YYÕ×cà˜c+.Fñÿþ/*W¬€ct1“6`Ý;v`ÖE¡ÿ[ßBÇUWaà«_EÅŠ(|öY(ºžÔÆ"Eb"ï›ýòhG2Ic}ÀØèû'ênÀ†9¡E~jt}èð 4…KOHév4½ÇSp¬\ ØzªªÊmKUU¬YYY…Z\\Œªª*Ì;ÒRähøý~ÔÖÖSàHØ’ $Œgt˜^ÝxcµÕ„)•É'=QÒÛÐFê°•96ldëÖA‰FÑs䑨~þyÓ{Ë_yÍ^ˆ¾£Fñ›oN¸ì®K.2:ŠÒ?þ*€Úk¯Åð¾û¢ÿÔS<ì0ôžs@ ‡áêè@þÿýŠ_|YÛ·§]¦ ðùç‘ÿ¯¡í?þ-7Ý„¾ÓOÇŒ[o…¿±qÂu²aÆ +ØÊÜdæÊsÌÍÎÎ6Ž=T‡X,†ááan<*Q,¨Tfæ4dÒY9*óî³²nXQ«"šË,/™rSÏš'²@ÊÊ.K§’NTo×è(ò?þ}G‰š^àÞCñ«þúW4_pv]|1 _ÝTF3™ oÉÄssQòç?šf,¬ðoÚÿ¦Mc §ЦAa-Ž&ùJ[¥zzPyà Èî9´ýâØöÄÈyë-T®XïøªWRÞDê™)¨ªš°Âlg^3+ðV–Ò 0ÈnVnVVeÑ.ô½lõ%3ëœÈH\Xü~¿W®¼¼µµµÆN™@ii) ²²]]]€®®.x<c¬·ÏÈyÖ*3>Ðib±XR¼9ö¼4xj`+sÓV> ôòyB©fee&ŸÏ—°ôØÛñ¢Ñ¨A³&ê”ôm‘­ÃDò3óÝåGÓ¬ô1ÉCTO.+3«:ð'ß¶Î2r§*G*ééz꺎¢wÞÁÎË/GÄï‡{Ü¿‡ÝAÓ4¨¡òßÃÇðìÙðlÝ*E§²²«ªŠ®+®€£ôÄyp>,¡yï…oÝ:Ôuzðtýìgh8æÔ\qrßz‹['ºé–™®ÂÇóŸ“¥YyùÐièÕ±ñx+hÁ%É›Ë:ùZåeå@ÌBÔ24I*ùša¢–9V>O_ò7l@ç׿Žò—^2®ñè:wg'üŸ~ŠàÂ…ÃÙÑ‘”I#jãΫ¯¢Q”ßsOÊò¤RWÞ{Ǧïºür@Í~€ÈܹèXº Ï>‹Š‡BɪUÐ2`±˜(K¿GôUô;Æ.RM§²V26–¥•e”¾‡–…—7oÃyD8^¿æO‰»Jvv¶±çjUU•0íD‘ŸŸÜÜ\c+héq\&¦›Yÿ6Éozû/6 o<´iÖ©­ÌM3°æn³{èöS¡ÓÓô»ÒL¦LM$£˜ÕÃŒv’QàxrŠ03?QùfÊœHá°Ry6‘Ò&C¯Y Ú2 ]¾ H§-}õUl»ê*„ àîëK¸Î¾Sշ݆-?ŽæåË1ûg?Kª' ZþÁ¯±²2ä?û,œœ•|2²Nì³Õ9ή.d56"«±¹k×¢ãŠ+ÐzõÕè;å̸í6dS•S°QðÙûE÷²JV~šô9Þ;%:ÏæMß‹Åvc`}|éñŒN#;I4£YiŸ9Z™£wl }æ&¤LÚÿÓËéLÐÌÆ «fÍÆV:*‚É×^™ QGÕtd°*ŸVÐxƒ!;øÑ[,3âÇ…B¡„%ãdPŠD"Mð#Õ̱˜ýس2óê!sŽ>/ëÓb¦<‰Šr"Jo&“DÏÓJ>Ùv—¸­Ò˜)ë"¾þ:”Ÿÿí'œ€™?.´¶Äb1xàijÂБGb¤ªŠ»`€­+9ßqýõ@<Žª;ï´´¨ð꓎Òb–NUUôŸ>t…>jœWPõ«_¡à…ÐzãØþè£(zòI”=ø ãÛ3±å¥óNÓéÌî}¬e}ž\¼ Z:J…™UH¤„Ê*´¼2Ç䢙rL‡}ÊÉÉ1ÆñtÆ‚TÀnÃF&뢸}²c„Œ¥Ÿ´'Ý>¼!ˆ¢)Z(a#³øÒøÌüñ ¿W¯^ UUQXXhü½öÚkiå}×]wáá‡ÆÃ?ŒeË–¥týŸÿü§aš·aã‹W0ˆ²ü­K–@§öÍP»|9 (h~àé2†=ÑÊJä­Y§É® Sž /"ýå/I×|Ÿ|‚Ùçž‹Š{îAÿg`ÛóÏ£ãòË¡Ù=6l¤‰/Åè±zõj¼úê« çEÁúõëÑ×ׇºº:# #Qº.½ôR,^¼˜›÷þ𨪊‹/¾ðôÓOã²Ë.Ãï~÷;©ëkÖ¬Á¥—^jYB{° È=ä: LêM,m¡P(!|(2"‰‡Ãá„ô23r‘ßœ•åC–¡Ï§C£MÖlYÖ2—j;˜ÝofUJÇ2'{¿ ¥MŸ¯|üqtœr :Ž?¥T˜žEÒ»u+ò_~“OF÷w¿‹’'Ÿúã´._è:jï¼S¸_¤HN…,C'ÓéX ~ý눕—#÷å—“fËÆýš†Â•+‘óÊ+Øsï½è¾ôRx7l@î[o™ZJ&úN§j]µºÏL¾TßC³ñƒGé™É™.­HÓýš¶ÆÑÙ=)€Þb²A”H$’À¢ÐmųHÈZ*yß³1ǬL“‹/¼2700€FAàμ¼<pÀIçŸ~úi|÷»ß5®-[¶L¨Ì-[¶ ÍÍÍÆï³Î: K–,1”5«ëO?ý4þùÏZÖƒVäèÎjv?1½ŠS Éo§Ó™`®‡Ã†C$1Ž­¨@ºLÑïT?f¾,éú¹ñŽÙx:ƒ’èã+ú8±iÍ(Q{¤BQ™å›*x½ˆnWUž]»PøÖ[hýÿ%ût‹MÕòå<úh´_u ^xnÆÚF—?´p!Â55Èû׿àL6ÿ6«w¦•þö_þˆÇQyÓM–e)--p57#š—ßk¯!–òYˆÞwÒQ~xyðè>«t<9x´¯h2c5æðÆ+7²€ŒL|‡¡ÀÑ <±¸l²188`lk¯P(dŒé¬O´¬-š’o ½³/_Zé#yXt¶r75øÂÓ¬«V­’²|Ñhllä*y¼û€±²ˆ ??¯½öšéõW_}\«  _$T>öB55è“S¢jf,_ÝåBóЦ÷î"V¹_ý*S¢N½çœƒXI Ÿz  ÚWs¹üÆ7÷·¿Mt6lØø¢â m™ûè£pÈ!‡øi‹ØÎ;qÇw¾óï`Ù²e¸ãŽ;„V=Âk………hllÎHÈõÆÆF®<šÕÌBF[æ"‘HÂjVvŸC: ±ÆE£Q.Íje•“q¾5oÖΣ?D4šŒS;kàÍdÍêc•—• ²3f™¼déVÞùT,@VÏÅ 9›7#wýz´>ò_VÁò^¾?Æð!‡ óœsPöÔSI÷ŒÎ™ƒÑÙ³‘»n|ƒƒ€ Õ-»Ð! BBÿñzÑyÍ5PFGQvçÂüér‚ßü&´Ü\äPá[R±ŒÉ¾™´öñ,YìØ$rÍHG.ê—2ÏØÌ}ƒ÷›XåèýOécz< ttt o|uøàà`ÂÂ5B»b7ÞxJ‡¤â΋´?oŒ§™#;hðÔà ­Ì}ðÁ¸øâ‹«,ŠŠŠpæ™g~øaœ}öÙXµjfÍš…K/½wß}7òóó %/Ó¨««Ã1Ç#uoGG\.—áóæõz6oÖ4Íèlg¢;úí$/çç™ÕS¡÷2i^Ѭ2´¤¬¢cFyŠŠb6Q¤J­Êæ'óqãÑ02 y&•=†­÷݇¡Dîúõ–²ÍºôRlY³m×^ ßöíÈaÒ4-_¨¿ývK™x0S4Rigº]šóè^/*ñ‹„ÀÅfùÎ=¾µkáij’’[FíÏþž å#Š/Ýò­&)¼ß²e±~rt¬Nzü¡Cƒèº>%1Õš››Ñ1‹1`xx8! o 3s[¡ëÀî†ÃŽ»ôy^9ƒƒƒˆD" ÚÍÇÆäá K³>ýôÓÆ¢Î:ë,C‘€%K–`õêÕ†/¬Y³píµ×šæ1(Š‚c=Öò>zpŒF£Æ";vé„ü÷ÞƒoÇ´üð‡àÛÉ¡†B˜ýÝïñ8v>ô"%%Ƶљ31¼Ï>ÈÙ¸ÞÎÎÉ:ôz*†=¾>@ÁóÏK¥ Í›‡ÑƒBþãO²t6lL Âá°a)ŒF£FüR“/¤e®±±1å¸qäþ>ø@ÚZ6 ³¡ÒÒRø|¾3¶™*/³üÙ¨««ãž…;a¯§ÚgŽý›^¾O_“ÔxŠ‚å˜ %UeˆHØ6a©+ÙeËÝÇ£º¬îKå#g%'oPMåyóΛ}&Bi¬[‡âW^AóÏ~†ÜwÞ£¿ß2Ÿ‚µkyè!´ýä'øä‰'0ïÊ+Üøà,ÌÊÅî zÌh#Yh^/v¬ZÝåBíW@ …@ç"R$ã¹¹<í4ýéOpP2Òr%•ÅyÖ2”cªï;nˆòùL‘ÿEJ…¨lÑó±’—–a"Š/›–VØhš•VìEIðMŽLZø6ô÷÷ãÓO?0¦Ìõôô‚Á`’2Ç«hrÌö¬ÆÙ ‚ÉÃR™c©Ñ>úøÃ ß·@ €ãŽ;.!X/YÌpðÁK—SWW‡üü|455aÖ¬YÆù@ `X÷¬®§™Ù/½Dòª}3ÿøGK¹bÙÙX÷òËð¶µaÖƒbëýt— %¯¿ŽE¿ú•A1Ð;šÿ鰃ذa>üðC˜‚5ÞFjøRЬ6lØø|Á×ÜŒª•+Ñrá…è?üpËû¯¹PUÔß?Š×®Åágž c#º9o¯^ž|]Ó õž{°ûᇡ»\˜qýõ(ýŸÿI)]QÐuà pµ¶¢`ÕªÉÔ† _J|áiÖ/di6ÌL[tO:&zÙt¢³Í#¢]Ì䑽&‚l;XÑf´Y*׬òN¥mxÏžMÏQ¥©Mº|c¿ªª¨~ä ÏŸí·Ü‚ý.½¾]»¸÷ÆÜnô{,<(üà€;Äa—\‚Æ /Ä®óÎÆÛo‡¿¹ûÝ~;rvíJéùZYæçž‹î+¯„–› Ïöí¨½è"¸’,VeÎ;#Gê‹.‚&ÏG¦¿Ê€W/«Mëeû7±zÊZ´I9ôu™þų$ñ(zµjUô2zOkr‡ ËÚèè(†††Œõ‰H$‚þñÛ´‹É³^“ôCCC47ôõõ‘††† j5 iØv—,{!ÏŠ›‹b#³°•¹iš®" ]3šDtÍLqñàåÁƒ•2)\xr’ó¼A[F+šU$2t†l;‰îµ¢‰Ò S¹žJ;ÓrÑþj¼ôóo¹z[î¼\v\ãA»i4]uàp î׿NÊ£î‘GP½z56_=z?kÿ{dµ¶¢fÕ*T¾ü2ÀY]Kþ7¥UóÏGï ­ J(„ÒûïGÙ¸5.Å^Ó4„gÍB÷5× åJøß{Ï2]ªïž•ò%sŸYŸ¹°Çé(VʘD µlŸ0SE(•èv» Åjdd$Á¯nxxØPà4M3Àh4jG"#}(Âðð°±"6 &Ñ©$ KgË*̼ö0ûVÈLüe¿6&¶2gÃ†Ï ÎÑQ,\¾ÿþ÷ØrË-XtÍ5P)_+ÍéD÷‰'ÂÝÝâ·ßæZ³\##8ছ0RQ­W^‰þý÷ÇÖ«®BÃOŠÜ†¿ù&J_yê¸ÅC„HE†Ž?'ŸŒð>ûN'”p…þ3Jî»ol°Lã¥;è¸ë.¸ÚÚPrß})§·aÆ +ØÊÜ4‡Ùìg"3#«›¨<Þ ~2,G¼¼S©¯ÙLUÙh:Ô•¼öäÅrã!•Xƒ"ª‰Xˆu‚XÚ‡T»³ûÿòàëìÄ>7Þˆ÷݇Æ+¯Äœûî!¤vþä'cy÷;¡Ì‡º®#«­ .] MUѼd ÚN= b`ß}±óòË¡ÄbPC!8†† ƒÐ].hn74¯ñ¼<€,îÐ4¸‘ÿøã(Xµjï>«Ï™½¦iº®¼¡ P{ÞypR+wEéÓµ‚²íÂæ™.ØwÐÌ2g%›Yþ™´äˆ(_³ßf}”^Ìáp8 k½ Äápýctt4¡D"cÿTú8&“¼É–X$ oq Ï"*r™0c@d,¢2l]¦Ó`#ó°•¹iˆÉ0_ËR¸éú¨É¦áå‘®"4YÒ¡­E¿Ù¼3Z¡Óu}Òö?d?Ö¤ntytÝxrˆB˜ÐÈß´ sî¿Û®»Þ¶6T?ù$4UEûi§Á l|7ú$eÅãq#ü®ëPâqÔ>ñjŸxQ]G÷QG¡÷«_ÅÈŒˆæç#ž›‹hQ”X J<D"ðnÞ ï¦MÈ~÷]øß|s¯‡ÄÕŽ¼côûÚúéèýÑP~÷ÝÈÙ²š ûîMä}Éô¤F¤ÌÑ×DýV¦ +Ít¨[‘2—N^ìq86äs: ¡7êv»ì ÓC+i´2Ç[Lÿ&ùÑTª•ÍÇDÏó&©Œy<É$/4ÌÃVælذñ¹@ÅßÿŽPEš.» šÛ¸ÇÝãAͯvžª¦¡ä7PòÆÐ4MhÝà…ј(†=­¿ü% ž~Å>šñüm:tl9h |¸ ¬' 6l|Qa+sÓ4]eFÏÈ`¢3kYzIVFºU†’Ý'C×°òóf§V4DºV…t,2º®CQ”+]¶Èª$[¾™’c ÔŒb¥e¦Ëõ§?A …Ð|ñÅ@<ÇÐÊŸ{f­¢ªª!'gŽFººÈ'²Vhš†Ñ}öAóý÷#ûßÿFÍwBq:¥)¬TÞc™±À̩ݬ¿Š¬?2ïhºÖA++‹¡ì!  ˜„Ð/m™KU>ºoÆb1ƒþ$Ö6 qe*éä½ ‡Ã†•-'L*X™érxqÍž‡Ì3Jœ†hÌ`û o[榶27M`õ1f•˜ù•˜É!E«ÉRQìDeÊ^KEqcϳÊTªþˆ²çÌäKGd2xšÑ›©Òå쇆¾GÆ/Ž'Hñšùè£,Z„ÀGÀ@s¹ F£Rï8ïºÕ½f×Ì>b¢ôÁƒÆö»î‚¯© s®¿Цªõ® VmÈ{?Íú"ZýNção&·ˆâcË–é ½å½¨ÙXƒž²d²,•96?+ºœ¾—þŸ(fÀÞþF ÿ92Y!ÊX$Ið£6V.+:ÕJ©·Rð­ž§h+šÔ˜ÉI+¾6&¶27M cYIÕªÃv¢i"®ú÷éG$7èÀ=èFÁæ8ÃN˱‰ÎSfü0³TîY¸¥ðŒx ÆUTn®DãÁh8¤á¬0r»rQþq¹°Ž²“4Qß¡û­˜E£Ñ„÷Ÿ'Åú‰3vläíìÀÊ›ÎØ(:o³eh9i+9©çd¸0ØHFæž¼ 6ldón¿û^y%F««±aåJôyäg-’)Ú¿ým4Ür ŠÞ|ó¯¾ÎñxaÓ1O Gu {w6Ê_/GÅ(½Ù»³ÑqTbž©ýXÏØ<å;Ê¡h ê?¨‡‚ñÿ5e;ÊPõiÕ”ÊcÃÆç¶enš€PY2ô˜#2±‹½§%ŠpŽûþó"& ½%k½Hõšdé-V¸Tê#C±V::h©¬¿–Œ<2¯x<.EÁšYƒs7mÂþßûv,_Ž­÷܃òÕ«QýàƒpP4—6‹˜ ÍËÉÁŽÿøtŸpªž|³~û[èãÔj*e§jq–yÉ=VÖp3ëSïü^~TOǸ®@§Ûƒ¢ Eèß§eÊLó³’?(º‚â=Å”Î뺎¼Æ<ÄO‰J”¯Ÿ˜•C_­F5KÃcN€d·3ëœL–}È5‡Ã!´ló¬vööïS[™›& „7èÒ÷°çÒ…(ôm2·¢ªdä‘ñû±ò×HåØ 2ƒ¼ˆÞ’U˜RÕ‡[Ó´$ª•ÀŠ2çÉdõæ=S³6 )X‡Ã!”‰8ŒÇãñ¤úy°ÏÒ¥h?ã ìºâ x jî½y~hZ?3Èô# z(¶-[†¸Ï‡ù·Ý6BEQ ¥ðA%eò>ÈV““Tß+3%BÔÿ¢yQdõeAQ•¤ôÞ/úñƒ1§B¹šÝ/šÌ銎žêôUô!¿5º²wj¥Ì‰Ê™ˆ«{ÎL‰M@DÊÝ¿Í\dÝ7Øk2ï­Ì±[û¥š—ÌÃnu6l|î¡(æì{ÑEp cëo~ƒ†{ïÅH]Ýg"O¤ ;¯º ŸÜw|»wãàüÀˆ…÷…ƒaØ ý³ âŒ8¨ûw(c¿mØø’Â~û§ D–9"*P¼•…<ÊUQã^Þ¬ÚÊÚóîX9•«ªj¬ãÍDE¶²Îï²÷XÑC²3R3çnºú^ÑŒ—•EDǤ2[=3úFÔ6l:b£ß#`ï»FGÑçÉìkj¢K/EÏÑGcÏO~‚M>Šâ¿ý +W»gOÚ–Ñ3`ëÍÏGûyç¡sÉ(ñ8êW¬@ųÏÂ!9YR¡ôyé­hq™<Uûc:MÓ C‡®XÓh²£TúfýÆzÃzU´»yyоe.U9D´¨,;À¦!ï?Ý—éqYUÕ$æ$]koü ©azü¡­„Š¢$ê&ò8Nc<&.92AÃmL¶2÷‚ÌÇÖ, }­À‰|TUMê¨VÙž]IÅÊ+¢þ2 ³ö›ˆÒh–.Ó”…Œœf¾82ù™Ñ•t[Ñ1êèóº® )WE¯¿Ž¼7ßD÷™g¢í‡?DÏ·¾…ì?DÑ3Ï ÿÕWá(øéÖ'TSƒžo} Ýßù ë¨xòIT=õ<ã¡c?X"ÊÕŒ–dû›m+¢2Àô"Z…¯Ï—¤¤ŒÂ=à6òNõ}•¥VE²ñ”ÞñDaææ £Ìe"j“†Ì¤ÏJÙ§ÏÑ«TI:â KOé >» ùmcra·² 6¦%ÔX e«V¡è™gÐwôÑèýö·±ë¶ÛÐrÝuÈýuä­]‹¼?„sp0å¼uEAhÖ,¾ö5¾ñ Œ,\Çà ÊV­Bùcáÿ·w6½q×>CR´ãJ4iç ­E.ÜÐ’pÙ²™l 3ô/cþ€Œ“JÚy%‘‹¬%¶dQÎ&ÈæJ3‹‹,„CÁ›@?†ö•D ‡ì»PªsæÌ9UÕ=3œiò}‚Ý=ÝõÑÕU}ê=UÕ§Ÿ?õr;ãƒÞúâ-úò¿¿¤oÿï·ÓI %ôâÍ´õ_[ôÝ?7 ßÀ˜+8>5N#v 7—Çå,WWQbÓR ,eÏç.Œé™Ç¶Âö¹Š³ª–jª)/1eêsÓjiý*-Ÿk˜÷Ô}JŒ;‡»\“$QWoSšMš¼Ÿ&ïß§?øm¿ÿ>}ýÓŸÒÖûïÑkOžÐëý+½öô)õÚܤñþ“èà€OŸNÿš““ôââEz~ñ"½¸x‘_F^¼ ÿøË_èÂÿHgþüçTñ;4ÜþY‰QK»qEº{ŠÇRˆˆFGèüÿœ§¯.~E›ÿ¹IÉaBT":µ{оÿ—ïÓØþX0žPCé‘çd‰§›á'üšºÉ“ÿ³<'\åÒ&>h3Ä­x²¶s\ó…ÕA>!Bíß®ýÆ\Á/Dë%ja5fZ¥ç2ºåjõ¹`CnÖXò4æšÁÔÍ‹×z!dqÛY®Œ×P(íYžƒnŒƒPxR³ÿ¯Ž¼Ær%kyGŒ¹‚àäoߨ<•¨Ãh@¤´;«Ê×(„^J>N,YÝ—±®HùŠyñĺVy¼!ƒ%&,yåïë%Èá/<ø\œyëv]¨>d¹_YŒº<«¾Å*ò9æûÖõ±ßÝ´î#ßæ³Öåoýê´Æœ“¥îÅtÈBéÏbÄ…êmÖúÌ륯mçÿ¹/‡Ê}tÀ˜+üCÍZeÏbØù*~è%"äúÆŸ„^ZR¹É¢4„ÍP2, LÞtô+ý>Ãz©gi°yY»‰ Ö'¿ÜXͬ†¸•¶¬ùòÅ©î|¬Ÿ¯^dŧ>ñc–zcXHÕg|Y÷@¦Ç:Ïg4†”`-?–ÛA uåýöÅŸ§¬­tƶÝ{>|uïððÐc)ãÖ&0Þƒ‘‰Ê\A888èPæb…Úb¡™ ©$1j\–4ø® …éëIÇŒ§ñ¹ }ç‡ÔRK-ɪn…® å+¤„Z®Ø^ÀÖËH÷ŽoÆ´/üÐ91î,žNK]’iöÍþ–ñwóXh®¿%[>ŸV~µE`µñ¼–â&·]x|¥ü:ˆü&´–KÁì–^+qÖu¾¶1Ôþe©§ÚóÀ뢵 ¯£1ʧ;ëŠÝc® 8c.«A”mÃ76¬PÇÜmÃÍz4ÀÍ P` Ì„J«²ù”-Nß9!…À’ëÖw]câá¿Åô®eø5.±î×Pú´^n צ¥e)wNŒb¤©˜YÂå×äu;ZæûEÞgC†aÕ1~<Ï3ÄÉUt-eÎ÷L9U-äJ³Ü¬ü Òͪµ½¢[Wiž!ݤ#K{ /¤6w£Ìimh?ÊtcîzqÇ6 1n#ÎÁÁj¸Ås¾Æ§›—³¢¥G®“gMË÷5¦ýtód-~|qjçȰó¼äòv¬m+þ~‰Êë· °,«èky°Ü¯2ŽïÜSWåK»Ï]lƒÒ¥šeØ…•žqì¶µ¼ù:$¡û+¯ µZ¼®í±†ƒô­ðaÝ?·ÏÛÔúî6@2W´T¬ò’·‡$Ý.ò¸vnHÓ·s7'OsVW†ï|®ÌÉóä·@Ý1ž6_/Ù¹˜øå]d{…TB´ž6_„Õ§¢øîµO ËúŒYnìX%*æùˆu»k„T2+]òÚXµÕ:7ïpƒeNSkùWçàV 0æ ‚eÌYd}9Êc–«Êª¨–”…<×Ä4¾p¹kEž']«Yg—źL}d}qÉÆ8ôýDå²É⎉Ƀe(Jc26LŸ1—Õ85¶eœ½6Àdº¬} +m1nVë¿vVb‡"øÜëVùúâ’V­c—gsßvŒQï«—<Ÿ­VËì(ŽŽšÆX(í¾ôøÒsž@1Wœ1ÇÉÛCÔI­ñŒ5âBÄ~Þˆp=6/ÒøÐÒ)Ç¿Å|…B[6!Ô{Í£’úÔ«Øk¬4øŽÇŽÛ‘aYáÅ„•UÅñ]c•µï˜e¨úÒœ5]VZµk²¾äÜý·Œ_¸¡:ÂÃ|Û§ÖÄàS̺ Û×)°Ú#WßCí7ŸÑë«o¾ëùä*>á@K¯;/Ô††:Iy:%ڽΣz‚ü`Ì@2WBn2¢îÜ>•Ïç멘Ū%VÚbUJßêòòƒénßçÊð©a1®HŸ;ÉRbâô©†>%'Va̪¢æÁ§¼ZnÑnŸKKa‰U¿´0ܱXÅ;Žõ›FÌó¥Å¡=»yI_ºä=ånE-ÍYÂŽ=®Íf×â²Ô4m[s1Ze£ìÉïrs×° ƒ­àaiõH«û¡{šQ쎻àf=`̘HWs¹ºÇöÆåÿÒ«(Yª”‹C‹“†vùàaY.K KÁâǤ²áS‚­88yT™Xå(ö7-ÍRÝŠ-GËõ%·ùù–2i=GZÕ¶ênŒ«M»^¦ÉwŒçǺ½rÏiù·Ü©YÕZ«ŽÇ>ƒrÂÿ»Ve<±õ"”¦XïŽV6¡ò"w´À˜+–ácÌÅ÷ˆiôå¶“ü¥ôÏϳƥŒŒdžÁšç\™-Ú1ëÅÙKcNs…^nòŸ¡éŒ8é.¶VÝ—ø ÷/Cù’äerÿe‰ŸÈ6>d¹[e ï™6v34[sYÊ—²õZ†Œ _¦_–½v|¦µg\Âë°œ9¯¥_kcb n+­¡º( @ŸAkå™ïË1»yÒïË—õ\úÚãPùÆSwdú[­VÇg ÝvŒ1'ï-8:àf(0Pæ ÿ¶¨†O¥ãpY||¼£ÓKöõêxzù¶hìþs÷_/{¢R­áù ¹¤äq™6Ÿ;&‹‚çâ±ÜhYòªMzð}[–«i¡çJƧ¥Å·^Ÿ+c©2…TºÐïÚ} )ÒVyÈgÑÁ¤×Å~RÞ·nòíòó¼Ä´ÖoNqÏ¢‚KbT!·jsø¾»ZyûÂÕÖh#²× ¥9¤¾û”P«-ÈKŒªºžãî•Ì¿‡1 »œi ú Œ¹‚[¬syƒã^üܘ¥R©”ºßÛ¶µŠ,%yŸûP[¨WsÆä-¶1ôg¹Y}Ɯ˫oœ‹eÜùÜ•Vº|çÉøÜïrœœæ:Œu±ú.\Ï7äùoI’˜.B‡,ת|F­p­—l§BÇ>£H3âä5Ü-gÕs+]1iÐŽ[„\‰Dÿvûçqý…ŒC9þNÞ›,i&j7æä"½¯£VÛ*9+ßÚÄØñ¥ ;`ÌW™bz{Úµ2‰{¡¹Š-Ïkã%|ã(dú|Fß½Ý=ˆQ'bŒ9Ÿ""kÆ\¬ñX«¬´¼Yã×dx¡°óäA¾c¾b…Å'®@hX÷ÆÚ·ž ë~Å`Ä>¬ûn½D­NZÌõ¾ûÁŸX£‘ok×hõ'¶Ã#ã³:Ò8ãÛÚš‘Úx]ë¹òå?—šJÆ ÷ù¿X#NÛ–m­3Š´´[íž.ßw*σû×K+Ïî<~_­öôÜe€e® h=.ÙÃÕÆ²9,5Í]366Ö&ŸË^®ÖCl6›™]®2ý–kÔrGù©0Zï1Ömlõxc]¼7ÏÇ+†.\îþ³T²X7nlOZI|Ë™¸0³Î¼UæòºÚx-×¹•ÿ%1ö:ßyVž}ájnÉ,ncWGC®Y‰åjæíosœ*Rà$ÜËÀÕbMI ¥“_/U-™÷|åàò-Ç©ùV°¾­¥Éµíuªy\¥ãªKŒ›!ä³®ñ¹?Caóž·$‹«-« ‰Ã]ղǫâh †t‰XßF•ƒ”}X®îÐùŽXÕBsOõƒZ;ûWûưæBâç…Ô³¬ÏQL˜Z–ú¥={ν§©v–éK£O¥‹uåreÎBÔéNÕ¶9Ö‚×£££îJíòø5…J»Æ×ÎÉ%O,ÕN†šio•»Taå=ÒÔwY¯µ¬D¯ÞOp³0æ ‚k\Ü‘ߘ³Ö âÇ›Í&íììÐË—/éܹs©ËŽèU£ipÚty¢8ÃŒ£5’Úï¾±F²‘Òâ•㛲ŽAòëN"¢¶q6<-ü¸/ëÅÀß§OŸR«Õ¢sçε|læþÔzŸm½,y>GFF:\™±÷Ê¥Ã2}®Lù[L¹'I’>û|;&’ƒƒóú,FÛææ&ŒŒÐÄÄéŸYŠ#¦¾ð<¿‡¡q¥¡4iîCk_Ûæ“‹?¯1ç°¾H£•w]ºó,#\Þg·¿³³CãããtöìY¯a' :­.JWfè‹4>47+¿ÆçrÕfñÊ÷Óøøx*€þ7ë çùóçôÍ7ß : G4 ÚÙÙt2@xöì={ölÐÉ=àÙ³gôâÅ‹A'c Ì.§kª ïM¹o¦ZƒgyÏoŸ’$¡½½½¶°ùL*9éϰ²Ö³Xe"äÎ ¹/øvŒòå÷,Ï s––kR€¯—¬s½bmÑ^îÔâÓÜK¡Å)ÆÍjmK…94³Ò¡•¼^¦_Sì´6ËZ›ÐíËuæøù>%mll¬MÉò©Ïüú˜zj¹Ô-7«¼Ü$›uðÀ˜+¼ÒòÊÂqÒ5ú¼‚iƉ‹’$Iê2•F!Q§›•‡Å¥v«‘´ŒŸf„IWdŒÛH ÛmÇ4(±îIÖ†ÔzÑÅŽ¯"² ¹Â=wyò¡{åÆr÷ºÕj™qYÆ~̹yÏñ]+ë•6îM¦ÑZ†)Âw¯­çÀrk×È|‹[û꙼F^ï<î|×~ñöÇ=C1 ´´ø”9kb…Söµ¶QªZüž¤m›K÷‹/:fÊJeÎåõåË—©Ë•·»DÔÖΞ:u*ý¯Êó·¿¿Ÿ¶ Íf3 ×y]´¶VÞgK¡æå8::Úá’wï0Œì/0憜'OžÑÆÆF_ãÁ$ˆãÅ?þñA'ôˆíííA'ôˆ“<9éÉ“'ô“ŸüdÐÉ8¶”h¿CÍææ&Ý¿Ÿ.\¸@§OŸtr€höööhccƒ~þóŸÓ›o¾9èä[`ÌL€(00æ Œ9€c ÀÀ˜(00æŽ)Õj•Þ~ûmúúë¯ÐPžÇ”åñe †sÇ”wÞy‡Êåò “zÊóø€²<>ô£,5ž† Ž?øÄÓh4huu•¶¶¶¨^¯Óää$ݼy³íœëׯÓo¼ADDëëë´¼¼Üö{Ì2‚1ñpfggéÁƒ9rt²¶ò¬V«´¼¼LwîÜé"W'“£*K‡¯¬VWWÓ—ÿÖÖ}üñÇtöìÙ¬Y:± KYV*úðÃÓý‰‰ ªT*tõêÕ¬Y'‘ -ׯ_oÛŸŸŸOfggÓý[·n%7nÜH÷+•JòÑG¥û³³³ÉÊÊJR©T’ùùù¤Ñh䊇s÷îݤT*¥û?N¦§§“J¥’Æã¶—––’µµµø s†¥<«Õj²´´”ÌÏÏ'—.]j;åÇQ•¥¯¬\:vwwÓýF£‘ÌÏÏ'I‚²ŒeXʲR©$µZ-yøða²±±ÑöÊ„€17¤ììì$—.]Jêõzz¬Z­&¥R)­èo¼ñF[Cž$I›¡5;;›Ôjµ$I^5X•J%W<ŽF£‘\»v­--×8V«ÕôÅrÒÆò¬T*êKåéç¨Ê’ã++ß1”¥Ÿa*ËJ¥Ò– ÊøÀ˜¹!¦Z­ÒÆÆFºáÂ""ª×ëT¯×©ÑhЙ3gÚ®™˜˜ Ï?ÿ¼mßa}°ÛçÎ;ôÑG©aðxÜv‚/ŵ1låé+”§Ÿ£*K‡uï···iuuµ#keÙɰ”e (K`1sCÊÄĶs/ãr¹LÿûßÕë&''©^¯§ã,\E·*|(G­V£+W®˜á„â9é [y†@yÚUYÆðñÇÓüü<ݽ{—îܹCËËËtýúõ¶sP–6ÃT–DDkkké¶olÊH Ìˆ[·nÑìì,?>xn­V£z½N÷îÝ£ÝÝ]Z[[£µµ5ÚÝÝÍÏ£GèÇ?þqǹÕjÕŒçöíÛ´±±AOž<É˓à ËÓ噣*KÉÜÜݽ{—ÖÖÖhrr’¦§§Ó4 ,ó1¨²$"ššš¢……ZXX ééétBÊ9:.è†õõõdzz:»ñàÁƒŽ±kI’$ÓÓÓÉêêjÏâI’¤m ÈÎÎŽ/ÈÆ ËÓq÷î]uìÈÆQ”¥UVëëëÉÒÒR²±±‘ÌÎÎ&¥R©c@?ˆge)qm­Vw@™+‹‹‹´¶¶Ö1v£ßñÔëõŽ18 {Už ÷ ò/..Òòò2?ž>ûì3ºuë---µñ S}qíî£GœP0f®,..ÒÊÊJ›ìoÚÞÞνˆ¥ÏÇi}}=]WέgõÛßþ–®\¹Bsss¹â:É ²ø §qg†¡,'&&hvv¶Í½{íÚ5ZZZ —/~J ÞÎC‰“Ý%¥R‰Òý7n¤c+êõ:ýáèKû¬m¿R©P¹\¦«W¯R½^§ÝÝ]úÅ/~AKKKé9ÎýZ.—£_¾|¹Ç9€l”’$Iè'Õj•._¾LDôÊõzpp@D”Ž¥#z¥Ô¹ÉYÀ €1P`0 ÀÀ˜(00æ Œ9€c ÀÀ˜(00æ Œ9€c ÀÀ˜(00æ Œ9€c ÀÀ˜(00æ Œ9€c ÀÀ˜(00æ Œ9€c ÀÀ˜(00æ Œ9€c ÀÀ˜(00æ Œ9€c ÀÀ˜(0ÿZª§HpY>gIEND®B`‚././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3519938 pyregion-2.1.1/docs/_templates/0000775000175000017500000000000000000000000015403 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3519938 pyregion-2.1.1/docs/_templates/autosummary/0000775000175000017500000000000000000000000017771 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/_templates/autosummary/base.rst0000664000175000017500000000037200000000000021437 0ustar00jjleejjlee{% extends "autosummary_core/base.rst" %} {# The template this is inherited from is in astropy/sphinx/ext/templates/autosummary_core. If you want to modify this template, it is strongly recommended that you still inherit from the astropy template. #}././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/_templates/autosummary/class.rst0000664000175000017500000000037300000000000021633 0ustar00jjleejjlee{% extends "autosummary_core/class.rst" %} {# The template this is inherited from is in astropy/sphinx/ext/templates/autosummary_core. If you want to modify this template, it is strongly recommended that you still inherit from the astropy template. #}././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/_templates/autosummary/module.rst0000664000175000017500000000037400000000000022014 0ustar00jjleejjlee{% extends "autosummary_core/module.rst" %} {# The template this is inherited from is in astropy/sphinx/ext/templates/autosummary_core. If you want to modify this template, it is strongly recommended that you still inherit from the astropy template. #}././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/_templates/indexsidebar.html0000664000175000017500000000055700000000000020741 0ustar00jjleejjlee

Links

GitHub Project Page

Download

Issue Tracker

Other stuff

license : MIT

././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/_templates/layout.html0000664000175000017500000000051300000000000017605 0ustar00jjleejjlee{% extends "!layout.html" %} {% block rootrellink %}
  • pyregion documentation
  • {% endblock %} {% block relbar1 %} {{ super() }} {% endblock %} {# put the sidebar before the body #} {% block sidebar1 %}{{ sidebar() }}{% endblock %} {% block sidebar2 %}{% endblock %} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/api.rst0000664000175000017500000000025000000000000014546 0ustar00jjleejjleeReference/API ============= .. automodapi:: pyregion :no-inheritance-diagram: :no-heading: :skip: cycle, RegionParser, read_region, read_region_as_imagecoord ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/changelog.rst0000664000175000017500000000011300000000000015722 0ustar00jjleejjlee.. _changelog: ********* Changelog ********* .. include:: ../CHANGES.rst ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624623945.3227026 pyregion-2.1.1/docs/conf.py0000664000175000017500000001612400000000000014551 0ustar00jjleejjlee# -*- coding: utf-8 -*- # Licensed under a 3-clause BSD style license - see LICENSE.rst # # Astropy documentation build configuration file. # # This file is execfile()d with the current directory set to its containing dir. # # Note that not all possible configuration values are present in this file. # # All configuration values have a default. Some values are defined in # the global Astropy configuration which is loaded here before anything else. # See astropy.sphinx.conf for which values are set there. # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # sys.path.insert(0, os.path.abspath('..')) # IMPORTANT: the above commented section was generated by sphinx-quickstart, but # is *NOT* appropriate for astropy or Astropy affiliated packages. It is left # commented out with this explanation to make it clear why this should not be # done. If the sys.path entry above is added, when the astropy.sphinx.conf # import occurs, it will import the *source* version of astropy instead of the # version installed (if invoked as "make html" or directly with sphinx), or the # version in the build directory (if "python setup.py build_sphinx" is used). # Thus, any C-extensions that are needed to build the documentation will *not* # be accessible, and the documentation will not build correctly. import datetime import os import sys try: import astropy_helpers except ImportError: # Building from inside the docs/ directory? if os.path.basename(os.getcwd()) == 'docs': a_h_path = os.path.abspath(os.path.join('..', 'astropy_helpers')) if os.path.isdir(a_h_path): sys.path.insert(1, a_h_path) # Load all of the global Astropy configuration from astropy_helpers.sphinx.conf import * # Get configuration information from setup.cfg try: from ConfigParser import ConfigParser except ImportError: from configparser import ConfigParser conf = ConfigParser() conf.read([os.path.join(os.path.dirname(__file__), '..', 'setup.cfg')]) setup_cfg = dict(conf.items('metadata')) # -- General configuration ---------------------------------------------------- # Remove intersphinx mappings we don't need (for faster docs build) del intersphinx_mapping['h5py'] del intersphinx_mapping['scipy'] # If your documentation needs a minimal Sphinx version, state it here. #needs_sphinx = '1.2' # To perform a Sphinx version check that needs to be more specific than # major.minor, call `check_sphinx_version("x.y.z")` here. # check_sphinx_version("1.2.1") # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns.append('_templates') # This is added to the end of RST files - a good place to put substitutions to # be used globally. rst_epilog += """ """ # -- Project information ------------------------------------------------------ # This does not *have* to match the package name, but typically does project = setup_cfg['package_name'] author = setup_cfg['author'] copyright = '{0}, {1}'.format( datetime.datetime.now().year, setup_cfg['author']) # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the # built documents. __import__(setup_cfg['package_name']) package = sys.modules[setup_cfg['package_name']] # The short X.Y version. version = package.__version__.split('-', 1)[0] # The full version, including alpha/beta/rc tags. release = package.__version__ # -- Options for HTML output -------------------------------------------------- # A NOTE ON HTML THEMES # The global astropy configuration uses a custom theme, 'bootstrap-astropy', # which is installed along with astropy. A different theme can be used or # the options for this theme can be modified by overriding some of the # variables set in the global configuration. The variables set in the # global configuration are listed below, commented out. # Add any paths that contain custom themes here, relative to this directory. # To use a different custom theme, add the directory containing the theme. html_theme_path = [] # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. To override the custom theme, set this to the # name of a builtin theme or the name of a custom theme in html_theme_path. html_theme = "default" # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = '' # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '' # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". html_title = '{0} v{1}'.format(project, release) # Output file base name for HTML help builder. htmlhelp_basename = project + 'doc' # -- Options for LaTeX output ------------------------------------------------- # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]). latex_documents = [('index', project + '.tex', project + u' Documentation', author, 'manual')] # -- Options for manual page output ------------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [('index', project.lower(), project + u' Documentation', [author], 1)] # -- Options for the edit_on_github extension --------------------------------- if eval(setup_cfg.get('edit_on_github')): extensions += ['astropy_helpers.sphinx.ext.edit_on_github'] versionmod = __import__(setup_cfg['package_name'] + '.version') edit_on_github_project = setup_cfg['github_project'] if versionmod.version.release: edit_on_github_branch = "v" + versionmod.version.version else: edit_on_github_branch = "master" edit_on_github_source_root = "" edit_on_github_doc_root = "docs" # on_rtd is whether we are on readthedocs.org on_rtd = os.environ.get('READTHEDOCS', None) == 'True' if not on_rtd: # only import and set the theme if we're building docs locally try: import sphinx_rtd_theme html_theme = 'sphinx_rtd_theme' html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] except ImportError: warnings.warn('WARNING: Readthedocs theme package ("sphinx_rtd_theme")' ' not found, using default theme instead.') # otherwise, readthedocs.org uses their theme by default, so no need to specify it # -- Resolving issue number to links in changelog ----------------------------- github_issues_url = 'https://github.com/{0}/issues/'.format(setup_cfg['github_project']) # -- Turn on nitpicky mode for sphinx (to warn about references not found) ---- nitpicky = True ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3519938 pyregion-2.1.1/docs/examples/0000775000175000017500000000000000000000000015064 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/demo_helper.py0000664000175000017500000000170300000000000017722 0ustar00jjleejjleeimport math import matplotlib.pyplot as plt import pyregion def demo_header(): from astropy.io.fits import Header return Header.fromtextfile("sample_fits01.header") def show_region(fig, region_list): h = demo_header() n = len(region_list) nx = int(math.ceil(n ** .5)) ny = int(math.ceil(1. * n / nx)) nrows_ncols = (ny, nx) grid = [plt.subplot(ny, nx, i + 1) for i in range(n)] for ax, reg_name in zip(grid, region_list): ax.set_aspect(1) r = pyregion.open(reg_name).as_imagecoord(h) patch_list, text_list = r.get_mpl_patches_texts() for p in patch_list: ax.add_patch(p) for t in text_list: ax.add_artist(t) if plt.rcParams["text.usetex"]: reg_name = reg_name.replace("_", r"\_") ax.set_title(reg_name, size=10) for t in ax.get_xticklabels() + ax.get_yticklabels(): t.set_visible(False) return grid ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/demo_print_region.py0000664000175000017500000000176400000000000021151 0ustar00jjleejjlee"""Example how to read and print regions. """ from astropy.io.fits import Header import pyregion def print_shape_list(shape_list): for idx, shape in enumerate(shape_list, start=1): print("[region %d]" % idx) print() print("%s; %s(%s)" % (shape.coord_format, shape.name, ", ".join([str(s) for s in shape.coord_list]))) print(shape.attr[0]) print(", ".join(["%s=%s" % (k, v.strip()) for k, v in list(shape.attr[1].items())])) print() if __name__ == "__main__": print("** coordinate in FK5 **") print() filename = "test01_print.reg" # filename = "test_text.reg" # filename = "test01.reg" shape_list = pyregion.open(filename) print_shape_list(shape_list) print() print() print("** coordinate in image **") print() header = Header.fromtextfile("test.header") shape_list2 = shape_list.as_imagecoord(header=header) print_shape_list(shape_list2) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/demo_region01.py0000664000175000017500000000075000000000000020070 0ustar00jjleejjleeimport matplotlib.pyplot as plt from demo_helper import show_region region_list = [ "test01_fk5_sexagecimal.reg", "test01_gal.reg", "test01_img.reg", "test01_ds9_physical.reg", "test01_fk5_degree.reg", "test01_mixed.reg", "test01_ciao.reg", "test01_ciao_physical.reg", ] fig = plt.figure(1, figsize=(6, 5)) fig.clf() ax_list = show_region(fig, region_list) for ax in ax_list: ax.set_xlim(596, 1075) ax.set_ylim(585, 1057) plt.draw() plt.show() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/demo_region02.py0000664000175000017500000000052000000000000020064 0ustar00jjleejjleeimport matplotlib.pyplot as plt from demo_helper import show_region region_list = [ "test_annuli.reg", "test_annuli_wcs.reg", "test_annuli_ciao.reg", ] fig = plt.figure(figsize=(6, 6)) ax_list = show_region(fig, region_list) for ax in ax_list: ax.set_xlim(596, 1075) ax.set_ylim(585, 1057) plt.draw() plt.show() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/demo_region03.py0000664000175000017500000000207200000000000020071 0ustar00jjleejjleeimport matplotlib.pyplot as plt from mpl_toolkits.axes_grid.anchored_artists import AnchoredText from astropy.io.fits import Header from astropy.wcs import WCS from astropy.visualization.wcsaxes import WCSAxes import pyregion region_list = [ "test_text.reg", "test_context.reg", ] # Create figure fig = plt.figure(figsize=(8, 4)) # Parse WCS information header = Header.fromtextfile('sample_fits01.header') wcs = WCS(header) # Create axes ax1 = WCSAxes(fig, [0.1, 0.1, 0.4, 0.8], wcs=wcs) fig.add_axes(ax1) ax2 = WCSAxes(fig, [0.5, 0.1, 0.4, 0.8], wcs=wcs) fig.add_axes(ax2) # Hide labels on y axis ax2.coords[1].set_ticklabel_position('') for ax, reg_name in zip([ax1, ax2], region_list): ax.set_xlim(300, 1300) ax.set_ylim(300, 1300) ax.set_aspect(1) r = pyregion.open(reg_name).as_imagecoord(header) patch_list, text_list = r.get_mpl_patches_texts() for p in patch_list: ax.add_patch(p) for t in text_list: ax.add_artist(t) atext = AnchoredText(reg_name, loc=2) ax.add_artist(atext) plt.draw() plt.show() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/demo_region04.py0000664000175000017500000000053400000000000020073 0ustar00jjleejjleeimport matplotlib.pyplot as plt import pyregion reg_name = "test04_img.reg" ax = plt.subplot(111) ax.set_xlim(600, 1100) ax.set_ylim(600, 1100) ax.set_aspect(1) r = pyregion.open(reg_name) patch_list, text_list = r.get_mpl_patches_texts() for p in patch_list: ax.add_patch(p) for t in text_list: ax.add_artist(t) plt.draw() plt.show() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/demo_region_filter01.py0000664000175000017500000000162100000000000021433 0ustar00jjleejjleefrom astropy.io.fits import Header import matplotlib.pyplot as plt import pyregion # read in the image def demo_header(): return Header.fromtextfile("sample_fits02.header") header = demo_header() # sample fits header shape = (header["NAXIS1"], header["NAXIS2"]) reg_name = "test.reg" r = pyregion.open(reg_name).as_imagecoord(header) m = r.get_mask(shape=shape) fig = plt.figure(1, figsize=(7, 5)) ax = plt.subplot(121) plt.imshow(m, origin="lower") patch_list, text_list = r.get_mpl_patches_texts() for p in patch_list: ax.add_patch(p) for t in text_list: ax.add_artist(t) # another region reg_name = "test02.reg" r = pyregion.open(reg_name).as_imagecoord(header) m = r.get_mask(shape=shape) ax = plt.subplot(122) plt.imshow(m, origin="lower") patch_list, text_list = r.get_mpl_patches_texts() for p in patch_list: ax.add_patch(p) for t in text_list: ax.add_artist(t) plt.show() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/sample_fits01.header0000664000175000017500000000214000000000000020702 0ustar00jjleejjleeSIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 1629 / length of data axis NAXIS2 = 1653 / length of data axis EXTEND = T / FITS dataset may contain extensions EQUINOX = 2.0000000000000E+03 / default CTYPE1 = 'RA---TAN' CRVAL1 = 1.7114680010248E+02 CRPIX1 = 7.9250000000000E+02 CDELT1 = -1.3666666666667E-04 CUNIT1 = 'deg ' CTYPE2 = 'DEC--TAN' CRVAL2 = -5.9266678641361E+01 CRPIX2 = 8.2750000000000E+02 CDELT2 = 1.3666666666667E-04 CUNIT2 = 'deg ' CTYPE1P = 'X ' / sky coordinates CRVAL1P = 3.3045000000000E+03 CRPIX1P = 5.0000000000000E-01 CDELT1P = 1.0000000000000E+00 WCSTY1P = 'PHYSICAL' LTV1 = -3.3040000000000E+03 LTM1_1 = 1.0000000000000E+00 CTYPE2P = 'Y ' / sky coordinates CRVAL2P = 3.2695000000000E+03 CRPIX2P = 5.0000000000000E-01 CDELT2P = 1.0000000000000E+00 WCSTY2P = 'PHYSICAL' LTV2 = -3.2690000000000E+03 LTM2_2 = 1.0000000000000E+00 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/sample_fits02.header0000664000175000017500000000333200000000000020707 0ustar00jjleejjleeSIMPLE = T / Written by SkyView Thu Mar 19 00:15:05 GMT 2009 BITPIX = -64 / 4 byte floating point NAXIS = 2 / Two dimensional image NAXIS1 = 300 / Width of image NAXIS2 = 300 / Height of image CRVAL1 = 304.75 / Reference longitude CRVAL2 = 45.7 / Reference latitude RADESYS = 'FK5 ' / Coordinate system EQUINOX = 2000.0 / Epoch of the equinox CTYPE1 = 'RA---TAN' / Coordinates -- projection CTYPE2 = 'DEC--TAN' / Coordinates -- projection CRPIX1 = 150.5 / X reference pixel CRPIX2 = 150.5 / Y reference pixel CDELT1 = -0.006666666666667 / X scale CDELT2 = 0.006666666666666666 / Y scale COMMENT COMMENT SkyView Survey metadata COMMENT COMMENT Provenance: Observational data from NASA Goddard Space Flight C COMMENT enter, mosaicking of images done by SkyView. COMMENT Copyright: Public domain COMMENT Regime: X-ray COMMENT NSurvey: 1 COMMENT Frequency: 0.3 EHz (.1-2.4 keV) COMMENT Coverage: Isolated pointings in the sky. Total coverage < 14 COMMENT % COMMENT PixelScale: 15" COMMENT PixelUnits: cts/s/pixel COMMENT Resolution: 30" but variable across the field of view COMMENT Coordinates: Equatorial COMMENT Equinox: 2000 COMMENT Projection: Gnomonic COMMENT Epoch: 1991-1994 COMMENT Reference: ROSAT Mission Description and Data Products Guide, availa COMMENT ble thr ough the ROSAT Guest Observer Facility, NASA GSFC. COMMENT SkyView Rosat Survey Generation description. COMMENT COMMENT Survey specific cards COMMENT SURVEY = 'PSPC 2.0 Deg-Inten' ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test.header0000664000175000017500000000116400000000000017217 0ustar00jjleejjleeSIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 1629 / length of data axis NAXIS2 = 1653 / length of data axis EXTEND = T / FITS dataset may contain extensions CTYPE1 = 'RA---TAN' CRVAL1 = 1.7114680010248E+02 CRPIX1 = 7.9250000000000E+02 CDELT1 = -1.3666666666667E-04 CUNIT1 = 'deg ' CTYPE2 = 'DEC--TAN' CRVAL2 = -5.9266678641361E+01 CRPIX2 = 8.2750000000000E+02 CDELT2 = 1.3666666666667E-04 CUNIT2 = 'deg '././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test.reg0000664000175000017500000000423000000000000016541 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: pspc_skyview.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 circle(305.66137,46.273027,286.45302") ellipse(305.2084,46.309061,240",600",15.433424) # color=black width=4 box(304.61491,46.299899,1032",552",28.9055) # color=white tag={Group 1} polygon(304.30761,46.142612,303.94162,46.140616,304.12265,46.314927,303.72947,46.178781,303.9453,45.887034,304.10869,45.854872,304.30963,45.889013) # color=red line(305.70423,45.962694,305.10953,45.946101) # line=0 0 dash=1 # vector(305.47681,45.437697,1448.972",63.434949) vector=1 # text(304.75479,45.939998) text={Text} annulus(304.01194,45.570957,216",506.2428",674.9904") # color=yellow ellipse(304.7357,45.626666,349.44527",196.03028",797.79697",447.54464",339.24891) # width=2 tag={Group 1} panda(305.48266,45.157674,0,151.26,2,398.8488",797.6976",1) # color=blue width=2 epanda(304.78308,45.140013,0,88.057145,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=(0 88.057145 228.1969 327.92448)(193.49419" 257.83216" 504.22594" 671.88407" 672.30125" 895.84543")(8.11303) color=cyan epanda(304.78308,45.140013,0,88.057145,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,88.057145,228.1969,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,88.057145,228.1969,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,228.1969,327.92448,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,228.1969,327.92448,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore point(304.26232,45.252305) # point=circle point(304.0256,45.251053) # point=box color=magenta point(303.79815,45.262722) # point=diamond point(304.25414,45.105615) # point=cross point(304.04637,45.104528) # point=x point(304.25577,44.918982) # point=arrow point(304.02028,44.931056) # point=boxcircle bpanda(305.53095,44.934745,0,290,1,605.36378",294.48644",1371.1215",666.9984",1,342.545) # color=blue width=2 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01.reg0000664000175000017500000000076000000000000016706 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 ## -ellipse(171.15816,-59.263193,22.632",10.332",317.01716) # width=3 background ascircle(171.10096,-59.250612,18.510811") # color=cyan box(171.16339,-59.281643,42.804",23.616",19.038396) # width=4 polygon(171.1239,-59.26881,171.09051,-59.262088,171.0985,-59.285735,171.1239,-59.27698) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_ciao.reg0000664000175000017500000000047200000000000017701 0ustar00jjleejjlee# Region file format: CIAO version 1.0 -ellipse(11:24:37.960,-59:15:47.50,0.3772',0.1722',317.017) circle(11:24:24.230,-59:15:02.20,0.308514') rotbox(11:24:39.213,-59:16:53.91,0.7134',0.3936',19.0384) polygon(11:24:29.737,-59:16:07.72,11:24:21.723,-59:15:43.52,11:24:23.641,-59:17:08.64,11:24:29.736,-59:16:37.13) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_ciao_physical.reg0000664000175000017500000000037200000000000021574 0ustar00jjleejjlee# Region file format: CIAO version 1.0 -ellipse(4053.9922,4121.9905,46,21,317.017) circle(4267.9987,4214.0083,37.623659) rotbox(4034.5013,3987.0067,87,48,19.0384) polygon(4182.1103,4080.8819,4307.0067,4129.9947,4276.9938,3957.01,4182.1053,4021.1054) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_ds9_physical.reg0000664000175000017500000000064300000000000021361 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: t1.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 physical -ellipse(4053.9922,4121.9905,46,21,317.017) circle(4267.9987,4214.0083,37.623659) box(4034.5013,3987.0067,87,48,19.0384) polygon(4182.1103,4080.8819,4307.0067,4129.9947,4276.9938,3957.01,4182.1053,4021.1054) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_fk5.reg0000664000175000017500000000075300000000000017455 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 -ellipse(171.15816,-59.263193,22.632",10.332",317.01716) # width=3 background circle(171.10096,-59.250612,18.510811") # color=cyan box(171.16339,-59.281643,42.804",23.616",19.038396) # width=4 polygon(171.1239,-59.26881,171.09051,-59.262088,171.0985,-59.285735,171.1239,-59.27698) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_fk5_degree.reg0000664000175000017500000000075300000000000020770 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 -ellipse(171.15816,-59.263193,22.632",10.332",317.01716) # width=3 background circle(171.10096,-59.250612,18.510811") # color=cyan box(171.16339,-59.281643,42.804",23.616",19.038396) # width=4 polygon(171.1239,-59.26881,171.09051,-59.262088,171.0985,-59.285735,171.1239,-59.27698) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_fk5_sexagecimal.reg0000664000175000017500000000101500000000000022007 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 -ellipse(11:24:37.960,-59:15:47.50,22.632",10.332",317.017) # width=3 background circle(11:24:24.230,-59:15:02.20,18.5108") # color=cyan box(11:24:39.213,-59:16:53.91,42.804",23.616",19.0384) # width=4 polygon(11:24:29.737,-59:16:07.72,11:24:21.723,-59:15:43.52,11:24:23.641,-59:17:08.64,11:24:29.736,-59:16:37.13) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_gal.reg0000664000175000017500000000104700000000000017530 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 galactic -ellipse(+292:01:59.027,+01:45:33.389,22.632",10.332",297.784) # width=3 background circle(+292:00:04.651,+01:45:41.444,18.5108") # color=cyan box(+292:02:29.979,+01:44:33.837,42.804",23.616",359.806) # width=4 polygon(+292:01:06.152,+01:44:53.528,+292:00:00.146,+01:44:56.102,+292:00:42.141,+01:43:40.599,+292:01:15.844,+01:44:25.760) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_img.reg0000664000175000017500000000063300000000000017541 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image -ellipse(750,853,46,21,317.01716) # width=3 background circle(964,945,37.6236) # color=cyan box(730.5,718,87,48,19.038396) # width=4 polygon(878.11234,811.88766,1003,861,973,688,878.11234,752.11234) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_mixed.reg0000664000175000017500000000103100000000000020064 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 -ellipse(171.15816,-59.263193,22.632",10.332",317.01716) # width=3 background galactic circle(+292:00:04.651,+01:45:41.444,18.5108") # color=cyan image box(730.5,718,87,48,19.038396) # width=4 galactic polygon(+292:01:06.152,+01:44:53.528,+292:00:00.146,+01:44:56.102,+292:00:42.141,+01:43:40.599,+292:01:15.844,+01:44:25.760) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/examples/test01_print.reg0000664000175000017500000000052600000000000020122 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 circle(11:24:24.230,-59:15:02.20,18.5108") # color=cyan background box(11:24:39.213,-59:16:53.91,42.804",23.616",19.0384) # width=4 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/docs/examples/test02.reg0000664000175000017500000000062400000000000016706 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: pspc_skyview.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 physical ellipse(82,167,36,75,346.95915) epanda(140,166,87.19363,195.80251,1,32.5,39.5,65,79,1,307.90041) -polygon(78.265142,201.73486,132,209,125,178,163.73486,116.26514,78.265142,116.26514) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/docs/examples/test04_img.reg0000664000175000017500000000103700000000000017543 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: E3000-7000.b1.img.fl.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image -ellipse(750,853,46,21,317.017) # width=3 text={Ellipse} background circle(964,945,37.6236) # color=cyan text={Circle} box(730.5,718,87,48,19.0384) # width=4 text={Rectangle} polygon(878.11237,811.88766,1003,861,973.00003,688,878.11237,752.11234) # text={Polygon} point(800, 960) # point=box color=black text={Point} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/docs/examples/test_annuli.reg0000664000175000017500000000176300000000000020117 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image ellipse(936.01565,922.00132,30.407693,20.504055,58.654304,39.550882,107.20306,72.287547,30) annulus(712.00157,914.99658,57.134451,76.17922,95.223988,114.26876) panda(711,716,338.334,648.034,4,38.9388,77.8776,2) epanda(893,720,53.141616,122.03456,1,33.936596,47.21819,67.873192,94.43638,1,28.831146) || # epanda=(53.141616 122.03456 217.20636 259.80344 311.69855)(33.936596 47.21819 67.873192 94.43638)(28.831146) epanda(893,720,122.03456,217.20636,1,33.936596,47.21819,67.873192,94.43638,1,28.831146) || # epanda=ignore epanda(893,720,217.20636,259.80344,1,33.936596,47.21819,67.873192,94.43638,1,28.831146) || # epanda=ignore epanda(893,720,259.80344,311.69855,1,33.936596,47.21819,67.873192,94.43638,1,28.831146) # epanda=ignore bpanda(982.0005,775.9995,0,360,4,28.9995,30.9995,57.999,61.999,1,0) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/docs/examples/test_annuli_ciao.reg0000664000175000017500000000134000000000000021101 0ustar00jjleejjlee# Region file format: CIAO version 1.0 annulus(11:24:40.397,-59:15:16.99,0.468502',0.62467') annulus(11:24:40.397,-59:15:16.99,0.62467',0.780837') annulus(11:24:40.397,-59:15:16.99,0.780837',0.937004') pie(11:24:40.465,-59:16:54.89,0.319298',0.478947',338.334,415.759) pie(11:24:40.465,-59:16:54.89,0.319298',0.478947',55.759,133.184) pie(11:24:40.465,-59:16:54.89,0.319298',0.478947',133.184,210.609) pie(11:24:40.465,-59:16:54.89,0.319298',0.478947',210.609,288.034) pie(11:24:40.465,-59:16:54.89,0.478947',0.638596',338.334,415.759) pie(11:24:40.465,-59:16:54.89,0.478947',0.638596',55.759,133.184) pie(11:24:40.465,-59:16:54.89,0.478947',0.638596',133.184,210.609) pie(11:24:40.465,-59:16:54.89,0.478947',0.638596',210.609,288.034) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/docs/examples/test_annuli_wcs.reg0000664000175000017500000000215400000000000020766 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 ellipse(171.10843,-59.253758,14.960585",10.087995",28.857918",19.459034",52.743907",35.565473",30) annulus(171.16832,-59.254719,28.11015",37.480176",46.850202",56.22023") panda(171.16861,-59.281915,338.334,648.034,4,19.15789",38.315779",2) epanda(171.11991,-59.281368,53.141616,122.03456,1,16.696805",23.231349",33.39361",46.462699",1,28.831146) || # epanda=(53.141616 122.03456 217.20636 259.80344 311.69855)(16.696805" 23.231349" 33.39361" 46.462699")(28.831146) epanda(171.11991,-59.281368,122.03456,217.20636,1,16.696805",23.231349",33.39361",46.462699",1,28.831146) || # epanda=ignore epanda(171.11991,-59.281368,217.20636,259.80344,1,16.696805",23.231349",33.39361",46.462699",1,28.831146) || # epanda=ignore epanda(171.11991,-59.281368,259.80344,311.69855,1,16.696805",23.231349",33.39361",46.462699",1,28.831146) # epanda=ignore bpanda(171.09611,-59.273707,0,360,4,14.267754",15.251754",28.535508",30.503508",1,0) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621606789.5812197 pyregion-2.1.1/docs/examples/test_ciao.py0000664000175000017500000000160100000000000017406 0ustar00jjleejjleeimport math import matplotlib.pyplot as plt import pyregion import matplotlib.pyplot as plt # from demo_helper import show_region def demo_header(): from astropy.io.fits import Header return Header.fromtextfile("sample_fits01.header") region_list = [ "test01_fk5_sexagecimal.reg", "test01_gal.reg", "test01_img.reg", "test01_ds9_physical.reg", "test01_fk5_degree.reg", "test01_mixed.reg", "test01_ciao.reg", "test01_ciao_physical.reg", ] fig, ax = plt.subplots(1, num=1, clear=True) h = demo_header() reg_name = "test01_ciao.reg" r = pyregion.open(reg_name).as_imagecoord(h) patch_list, text_list = r.get_mpl_patches_texts() for p in patch_list: ax.add_patch(p) for t in text_list: ax.add_artist(t) # patch_list[0].set_facecolor(None) # ax_list = show_region(fig, region_list) # for ax in ax_list: ax.set_xlim(596, 1075) ax.set_ylim(585, 1057) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/docs/examples/test_context.reg0000664000175000017500000000462700000000000020317 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image # composite(818,804,22.791484) || composite=1 color=red point(818,804) || # point=boxcircle # text(917.93183,1012.7012) || textangle=22.791484 font="times 12 normal" text={I} # text(1038.5994,726.09152) || textangle=22.791484 font="times 12 normal" text={II} # text(719.41413,591.67326) || textangle=22.791484 font="times 12 normal" text={III} # text(601.61767,880.81539) || textangle=22.791484 font="times 12 normal" text={IV} box(605.81608,905.40937,312.19512,39.02439,22.791484) || box(620.9621,869.4441,312.19512,39.02439,22.791484) || box(919.09424,1016.1681,39.02439,312.19512,22.791484) || box(1014.738,738.86864,312.19512,39.02439,22.791484) || box(1029.8552,702.89125,312.19512,39.02439,22.791484) || box(716.57467,592.13153,39.02439,312.19512,22.791484) || box(666.40018,761.54827,312.19512,39.02439,22.791484) || box(651.25415,797.51354,312.19512,39.02439,22.791484) || box(636.10813,833.47882,312.19512,39.02439,22.791484) || box(590.67005,941.37466,312.19512,39.02439,22.791484) || box(575.524,977.33995,312.19512,39.02439,22.791484) || box(560.37801,1013.3052,312.19512,39.02439,22.791484) || box(1075.2743,594.98745,312.19512,39.02439,22.791484) || box(1060.1571,630.96483,312.19512,39.02439,22.791484) || box(1044.9724,666.91387,312.19512,39.02439,22.791484) || box(999.55334,774.81768,312.19512,39.02439,22.791484) || box(984.43613,810.79506,312.19512,39.02439,22.791484) || box(969.25147,846.74409,312.19512,39.02439,22.791484) || box(1026.9902,1061.6062,39.02439,312.19512,22.791484) || box(991.04728,1046.4696,39.02439,312.19512,22.791484) || box(955.03709,1031.3047,39.02439,312.19512,22.791484) || box(883.15144,1001.0315,39.02439,312.19512,22.791484) || box(847.14118,985.86658,39.02439,312.19512,22.791484) || box(811.19838,970.72999,39.02439,312.19512,22.791484) || box(775.25558,955.59341,39.02439,312.19512,22.791484) || box(860.43576,652.71563,39.02439,312.19512,22.791484) || box(824.47049,637.56961,39.02439,312.19512,22.791484) || box(788.50521,622.42358,39.02439,312.19512,22.791484) || box(752.53995,607.27755,39.02439,312.19512,22.791484) || box(680.60939,576.9855,39.02439,312.19512,22.791484) || box(644.64412,561.83947,39.02439,312.19512,22.791484) || box(608.67884,546.69344,39.02439,312.19512,22.791484) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/docs/examples/test_text.reg0000664000175000017500000000124500000000000017610 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 line(171.2398,-59.290221,171.17045,-59.241461) # line=1 1 width=2 # vector(171.15897,-59.260323,121.9732",291.286) vector=1 # text(171.08249,-59.263998) font="helvetica 14 normal" text={Region} line(171.12155,-59.236131,171.06222,-59.243213) # line=0 0 font="helvetica 14 normal" dash=1 # compass(171.09742,-59.292704,31.583948") compass=physical {N} {E} 1 1 font="helvetica 14 normal" dash=1 # ruler(171.25782,-59.237453,171.2087,-59.261266) ruler=physical physical ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/examples.rst0000664000175000017500000000064700000000000015625 0ustar00jjleejjlee.. _examples: ******** Examples ******** demo_region01.py ---------------- .. plot:: examples/demo_region01.py demo_region02.py ---------------- .. plot:: examples/demo_region02.py demo_region03.py ---------------- .. plot:: examples/demo_region03.py demo_region04.py ---------------- .. plot:: examples/demo_region04.py demo_region_filter01.py ----------------------- .. plot:: examples/demo_region_filter01.py ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3519938 pyregion-2.1.1/docs/figures/0000775000175000017500000000000000000000000014712 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7611084 pyregion-2.1.1/docs/figures/demo_filter_mask.py0000664000175000017500000000066700000000000020601 0ustar00jjleejjleeimport matplotlib.pyplot as plt import pyregion region = """ image circle(100, 100, 80) box(200, 150, 150, 120, 0) """ r = pyregion.parse(region) mask_1or2 = r.get_mask(shape=(300, 300)) myfilter = r.get_filter() mask_1and2 = (myfilter[0] & myfilter[1]).mask((300, 300)) plt.subplot(121).imshow(mask_1or2, origin="lower", interpolation="nearest") plt.subplot(122).imshow(mask_1and2, origin="lower", interpolation="nearest") plt.show() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/figures/pspc_skyview.fits0000664000175000017500000261710000000000000020336 0ustar00jjleejjleeSIMPLE = T / Written by SkyView Thu Mar 19 00:15:05 GMT 2009BITPIX = -64 / 4 byte floating point NAXIS = 2 / Two dimensional image NAXIS1 = 300 / Width of image NAXIS2 = 300 / Height of image CRVAL1 = 304.75 / Reference longitude CRVAL2 = 45.7 / Reference latitude RADESYS = 'FK5 ' / Coordinate system EQUINOX = 2000.0 / Epoch of the equinox CTYPE1 = 'RA---TAN' / Coordinates -- projection CTYPE2 = 'DEC--TAN' / Coordinates -- projection CRPIX1 = 150.5 / X reference pixel CRPIX2 = 150.5 / Y reference pixel CDELT1 = -0.006666666666667 / X scale CDELT2 = 0.006666666666666666 / Y scale COMMENT COMMENT SkyView Survey metadata COMMENT COMMENT Provenance: Observational data from NASA Goddard Space Flight C COMMENT enter, mosaicking of images done by SkyView. COMMENT Copyright: Public domain COMMENT Regime: X-ray COMMENT NSurvey: 1 COMMENT Frequency: 0.3 EHz (.1-2.4 keV) COMMENT Coverage: Isolated pointings in the sky. Total coverage < 14 COMMENT % COMMENT PixelScale: 15" COMMENT PixelUnits: cts/s/pixel COMMENT Resolution: 30" but variable across the field of view COMMENT Coordinates: Equatorial COMMENT Equinox: 2000 COMMENT Projection: Gnomonic COMMENT Epoch: 1991-1994 COMMENT Reference: ROSAT Mission Description and Data Products Guide, availa COMMENT ble thr ough the ROSAT Guest Observer Facility, NASA GSFC. COMMENT SkyView Rosat Survey Generation description. COMMENT COMMENT Survey specific cards COMMENT SURVEY = 'PSPC 2.0 Deg-Inten' HISTORY HISTORY Settings used in processing: HISTORY HISTORY cache = /skyview7/cache/surveys/ HISTORY coordinates = J2000.0 HISTORY descriptionxslt = cgifiles/description.xsl HISTORY dummy HISTORY equinox = 2000 HISTORY finalpostprocessor = skyview.ij.IJProcessor,skyview.data.BoxSmoother,skyHISTORY float = on HISTORY footertemplate = cgifiles/skyfooter.html HISTORY galleryxslt = cgifiles/gallerymultipage.xsl HISTORY geometrytwin = PSPC2cnt,PSPC2exp,PSPC2int HISTORY headertemplate = cgifiles/skyheader.html HISTORY htmlwriter = skyview.request.HTMLWriter HISTORY imagefactory = skyview.survey.CachingImageFactory HISTORY imagesize = 2.5 HISTORY imscale = 2 HISTORY localurl = http://skyview.gsfc.nasa.gov/surveys,/skyview/htdocs/surveys HISTORY lut = colortables/b-w-linear.bin HISTORY lutcbarpath = /images/colorbars/ HISTORY mosaicker = skyview.process.Mosaicker HISTORY name = PSPC summed pointed observations, 2 degree cutoff, intensity HISTORY noexit = HISTORY nullimagedir = ../images/nodata HISTORY nwindow = on HISTORY output = ../tempspace/fits/skv16698428032769_3 HISTORY outputroot = ../tempspace/fits/ HISTORY pixels = 300 HISTORY position = w63 HISTORY postprocessor = skyview.ij.IJProcessor,skyview.request.HTMLWriter HISTORY projection = Tan HISTORY quicklook = jpeg HISTORY requested_coords = 304.75, 45.7 HISTORY reqxpos = 304.75 HISTORY reqypos = 45.7 HISTORY resolver = NED-SIMBAD HISTORY rgbtemplate = cgifiles/skyrgb.html HISTORY rgbwriter = skyview.request.RGBWriter HISTORY sampler = NN HISTORY savebysurvey HISTORY scale = 0.0041666667 HISTORY scaling = Log HISTORY settingsupdaters = BatchCompatibility,SettingsFixer,skyview.request.ToasHISTORY shortname = PSPC2, PSPC2int, PSPC 2.0 Deg-Inten HISTORY size = 2.0,2.0 HISTORY spellprefix = http://skyview.gsfc.nasa.gov/surveys/pspc20/int/ HISTORY spellsuffix = ,Tan,J2000,600,600,0.0041666667,0.0041666667 HISTORY survey = PSPC 1.0 Deg-Inten,HRI,PSPC 2.0 Deg-Inten HISTORY surveyfinder = skyview.survey.XMLSurveyFinder HISTORY surveymanifest = surveys/survey.manifest HISTORY surveysheader = cgifiles/survey.header HISTORY surveytemplate = cgifiles/skysurvey.html HISTORY webrootpath = /skyview/htdocs/ HISTORY HISTORY Map generated at: Thu Mar 19 00:15:05 GMT 2009 HISTORY HISTORY Resampler used: NNSampler HISTORY HISTORY HISTORY Image mosaicking using skyview.geometry.Mosaicker HISTORY HISTORY Used image:/skyview/htdocs/surveys/pspc20/int/i08818_r2.fits.gz HISTORY Used image:/skyview/htdocs/surveys/pspc20/int/i08817_r2.fits.gz HISTORY Used image:/skyview/htdocs/surveys/pspc20/int/i08944_r2.fits.gz HISTORY Used image:/skyview/htdocs/surveys/pspc20/int/i08943_r2.fits.gz HISTORY END ?ùëÚã˜? g…±W?ã±MY½?õË$lÊ~?Ÿ_R‚M?Oþ6\3 ?·²`˜În?ã¥,ûÙz?;Ô€ i7?^÷†ñÀH?æ«ü“³ø?i\eÅk? ÂŒšKMÈ? œ„±Î? ˜ XŸ9?fbIæ?âÑù+|.?/(©!´C?O•kx€?è2zÓUÏ?ª7Qý,?{‡ Å9?ˆ×J(]÷? pój/­ù? µ6™K´?¨Ä{ü#È?ÃËâšUY?rC¶Ÿ›?|½ E2?ouÇ e¢?¸ifOˆô? ÅõöÚó1? >M`mª? *ùÈ? ñ—C Ðí?'“FŦù?O‚›òC?t½ª/Ä«?èš®ˆ×P?}|æ3ö?À‡@‰|°?áÒ÷lg‹?¥åÝ)¼1?H<\_Ð?÷ù:Þ§?Ð’ç±?ߊ)y0J?é4rÂÐ?œÑP³ö?¡Þå í?WÝ׳Er?^­W@Ê"?Fµ­²†ð?/Á¯‡A°?0õB^Í?Gþ“X+?Y–=ùÂ?;ù|«Ç¦?Ò >î? Ç$âç?S'’ëÇ?©›@[Ùœ?`áóÙŒÄ?š&ÛÒ==?R6S?g`¹`í?©fé€+¤?ì2-=Úª?Óä¿?Ú&!Ñ?ý›¦í4÷?´ð‹R ¶?)ÞV‰PÔ?>Þ²©ö?㟷Ý%¬?%ø^·?+Ê4¶è?**„ º?D/ ½B,?ƒ¨Þ*C±?Úã‹li4?6‚Ëöö?Œ€ÃÚ2†?ëE"¤BŠ?t÷‡¼x?S¦þw!?³,ˆƒh?¦éû¿³? ã¢xÕ?íŸJ;fê?¾÷¨íx?BΆ@ÉÉ?8 g;û?| Vx' ? |¼Ä’?hù=‘?”ò³£Þ?ÌóDj?¤4' ?¤j6 ÁP?‚EH ?õøUÑ;’? ݦsÛD?.HÕpî¶?KLýdûÈ?\AlW¾ñ?e^a‡?iG‹f¨z?a5b(‡î?<ö?.#J?è™Æ‹m,?XðÂ$öt?—iût¨[?Æh#:úª?3nÜÆ?®ßºô1?œF8ÂQÛ?É“¼ºûó? ÌÀ©ž§?Æ?”ýp¨?¢Ñ6NM?(~ ÄY¹?®UýZt?ªrߢ J?Nâ(wdû?jÆgÈL?€ä%?†¹ìŸßU?ʼnd?´?$%ã?À Ÿã*?ØFY?(ä—Ó?eNàË?e>J©u?+;—} ?Ó)¢ Ã?q÷ï¼|‡?ÈT»,?f2é%¶Y?Œx)CÀ•?z¦æÜsÈ?Szî \ß?GÙðú²&?„b$Éöµ?)½« Ϫ?L¤„¼“K?ö‚ηË?"%6àcö?´õ‹€?~¬Nâ¸?A„K˜“"?Á³…­‘Ï?ÕNkÙ?j ¬¶:?Œ‡hç%ˆ?aâ{ïq¼?!ïeØ?æÆ±¸Óº?ÅËò’ ü?™D€û ?-ÓÞ\Xx?cm›­ ?H4"4/D? nÀˆ?!ŸåÕ&x?£HœÑ?°÷“ø?'”cù¡l?½¤Â‰~?€ãls¡?$ZWþ?lýçÒTž?Š» ÄéK?­-»+5?Wþ²?Ýï²h¹?Ò\qö?Ÿ{ëJèÈ?ìã<å[¬?‰Ð¢—b’? [Ãщ?a¹Ô3H?àñÌØÿ*?6—ÇÀº(>ûLqZžeT>øK¬„Ý>önbš>ô’_òÃ#>ó³{–vn>óµ6‰û:>ôÖM”€„•>öÖ’ ôÊ>øçÑKRt´>úìh¬=>ù€ÍcÊþ>÷[w`Ô>ôKq JH>ñgLX=`ë>ï…‘ýý>ð-1cÐ>ó7kÅ8>ø€á½,>ÿâÒ5vó6?(W~tÍ?ä ’ßn#? –»Ù“&? ž¿£ˆh? ë[<îCÞ? 3LH:?å4GŽ=5?¸=ð·?Sy‰Èô?[ª@|Ý ?%À×è?¼eún?ÿG„yú?7wRu? ¨ ¾;Lš? ú&“=B?žÈP”À$?´ìÇúL?C\ŽéP?s¸Œ£œ?TAÃÄè?—NJŒÒ?ïÔqºú?!"6W“Ö?¢øâ*ˆ? (~^w…?Ä0æ.9¾?|ÈÖŠÖ%?f¸ÐTv€>ú²p–ç<>÷`@ÑLË>ø£Ev:4]>ý’Q  ¹?jŽ<ß?uu^ÑA? 5Æ=¦‹? =*øT)?ÁljM| ?”«QìH?‹mÚ£áG? Û=o`ãV?D.aLq4?tC«ðá?ªXÎŒ?}çWé7?ÉÖÄ?$æ¯`?uj ã$?”mÊðç¶?jãpÀ‰p?xŽ»YþÜ?/ƒŸ«?¾ NMÓÎ?2 ®ÿS?B>˜3l?ô©êˆm?Í|ÙZï?iüe°.‹? ¬¤K? YX C£§? £¿Ì°Ñ?(8Ýu§h?C¹*¬qç?´s|áyL?/ŠÙÂŽ‚?h+³—=? í3ñR?½èë8ú ?~“aà?vÄ&•!?¥›ÜN? ygÅ>ë¹?ØÐº¸Æ?³?¸Y)2?&’zFx?Ì{à ?Ù_²É”?Ç´lÛ? 8ž¦ û? ÉÛl˜*? ÉÇ Û? ’Íò$8¤?¯½øO\›?Aø[ÂÜ¿?‚‡}p@ã?ÛÄ8ð ?øG$òÕ€?›¶›ñ¼?¼U^À­Ì?~E`5ËÎ?7q¼ñ?µF»ƒ¼?v¿$ùwP?o‘6+d:?ªŽYy›?$Üsv©?Ë ·2?Ñé÷iF?7€¡Ô‚½?îɱår?¹ÿòß|?Ÿ›P¶R ?‘É«Ó?cG¤ ¹ý?ÝÄyR¤?Ùõ7“aØ?NÉü–ú?S‚4öWÅ?†sŽ´^?ÊÒÓø?¤µ ˆƒ›?ÅÉåþª?=„ãž? i'S?""û7"¨?xºÐêÚ5?3?³Âûx (?v‰ü¯sð?1¨§ò»`?Ëù,ÀŸJ?3¶G?dx_ea?i´ôUN?[ø8e5ß?WnÕ µ?k™]Ù*Ä?’´îöv?¬×‹ÂQÉ?Ѝ¸ º?";£åÂ?h+5ua?>¡ê™?Ñ_ÉÅF?p¥R‹|‘?޳:Zg?* ¦sšN?*4›áŽ×?á5ž|?U@Žç}?£ì ˜j?ëñëIž?W+—ì£?,5l?"Sí ?8¤–’Í?}dX”~Z?­4èW£„?µØ™T¹?žÎ%O7å?‡X£ÞÔw?˜Ì™q·[?öE/Ù_»?«aý(×i?¦-‡æ4?¼Æíœ”?¿‹W&©?Céóg´? àÕ£?‹Î¼Â"ê?î]:«?\X_ºæ?щrçP?!)¼ÄF^?QŠ ? ?”^b" ˆ?G_d  ?5<[,8?ý¢Ò5/t?¤ÈxÉB|?Q$&a­? ‚½PÞ?º#Jò?3h®;$ ?_‹]hÉ”?OÒÞLµ¾?<°à¶†?lD!°QF?ð’ª|ý?<ìPn\Œ?Æ~SÈ>¸?i‰á óD?×v•„?ØåI»CF?jãÜ­ë?»DÒ]t?Æã“Š»?§‘ld?†G>^#?€2!!b?B-%(Ç'?{%¯=Óº?ÒôÆ+u? Ïó#?ú¨¼úÇU?R81>;_?Ó‰¤¨.>û’?FHD€>øb£ Œ°>õâÑhƒir>ôe£?[Rq>óˆÃpZLÐ>óˆ`á?Æ>ô¯Bi§r>ö®¡þó>øÐÁ©‚>úòëZb<>ùó€ jç>øB‰ê˜>õ®”ôÖÜ>ó5‰\$ƒv>ñÜÍpÎ,>òk_Y6l›>õRL ¨À>ú–±çæ3P?ÝÝ6ÆBÚ?ÙM¡’ÕÆ?|⌒“á? 'l¶Ï†? ÛÈÂ.? ûOF·ú ?è/C#$ú? øU7iè?I cP?µ*aÃe!?^·³¶? Ø+Çy$Õ?ìg`ÍÏ?áþõ aï?TZÝTª?~"Qiåf?«"ãÇ?Õ? ^ýAî?ƒ„ì“ÇÀ?¡:ÙOt?Ü@ûÑ ?ÞGœjqü?º$'ñ‘s?é€ß´QR?©=øi˜? à8ùe? ¢ülÿ¥? ¹‰%¡0è? Þme•º¸?¾´}i1?ò±a¥¦?4ƒv“?1c!c‰ï?•X,Ê^>? “£r7Î?Tûìdì@@¼>ø˜I1 š>ù²ö h‰ü>þD˜±žý°?w¯`œ5?% ÚÔ? nöizPc? ç=ÞMeá? B`F¶ÜŒ? €Øñ?D^? W“Áê@? ŽÃ+¬? CÁl[T?ÞÚœ8?¿€‰óœŸ?>œí&1~?—Øpz»6?§N… vp?\#L^?°[ûÓDà?„(êòdS?‰38J¶Ò?O€B®?¬1Š!ö?ú/ n?ýzT©?„“&úŠ?Ъ{Üߦ?3fއx0? ‡­™m? ܸ›é“? [D#På?…\óI^ú?veÎŒqŒ?Xôcʹ·? àŽH“û?z ’Ë??ˆîyWÊ?±OgËNì?Lu_Øúù?3áìST?…9k&ÂN? ´| À?ý›B(ÀÈ?koÇ›å?xXßF­Q?þV8#@œ?+~e;?Ëzî°? óµgÑT? ¤Èÿ¡T? ÀÚèRUP?Š tºC£?wén½E?ƒ—p…?“´qn¨?Á<©ø(?¿õÁ‹Ý´?UFÒ¶K?p>£Þ%ú?*Ń÷®?°|fáo?0—qÍ’n?Ï1àªð?¨zƒ œ?Ï(þÞ¼?G^5o %?ÿ’:®ùì?Üð¬b?É—Dhæ?¿zÿ:ìu?Ä€wóºÎ?×®×ê3F?ã Þr=?»½Ñ•?.ÎÛ¡Þ}?¾¿ì F?ˆ¬#!¾ú?ˆ&ù¢Cß?L&MR„? Ò¶ÃÄü?ñvëçõÑ?%R´ ´?³Ã-ê±8?›}tüZ?Ìã(í¤?7véKŠå?É0ª H?p‰ßš?Õ°K6?«3eùö?{,wÿK?[S,˜ÿ‹?uÇ”[|Œ?yš‰Rú0?~VáÄ|Î?˜fó]¦?ÍÏ:÷Ù?[®ø%ˆ?5ØÓa;ª?ˆRE'?¥'úqšµ?ÜHõw?êóOšˆ³?F—âü?„ç‹Æp?r?fý–?ßt6ó°,?ºšÍ>?ßúÐÙ<~?&ÝW£y?ko9`?“Hfê|?‹:•—ë-?Aúûpñ?¥€¡-2Å?§_@Ô 6?Fz«_g(?•†Çõ°0?·‘Ûx-H?Ó e&åÈ?ºûÕê?MÃBV€Ì?ª¼PNz? !·¨)?e?._ ?Ë9„êàl?Y½ëcYß?9Â+§Ã0?‘+ØN"ˆ?s}ή·Ë?ÔÒd y?…xòf ?:° §è?¤á·-?‚a¬Ü?·xðÈŒ?IY±-2Ä?Z´Y¸oY?"‘—v[?àV5ÖM?ÐQTÛ¶8?u¢ÛHÙ?Ì8«´ž?Íeå“3Â?÷ÊB?+N?$Û>º?;ÕÃ4.?4ë#—%9?ÔÈì(ì?ÛÞ©»?“äµ^m?:d;(…¨?ËRžžË?DV‹±Þò?¯JY¶?"qä˜,&?½ •ÂV?•™7Ÿ/Š?­Cƒ‰z?î-;Þ¿¸?6%¸~sc?hlnÚ?xà+OÒÍ?sÊ't­?u8±•ð?ŸË‘Ͷæ? ö l©?À$=i%?¥XÚR ?’×âÍÂ?_¦%k,?ðÊ;²gN?E¦DDkú?ufZò’? ü°ÎèÆ?ß¾œ Îä?1—÷U¶ˆ?|¹ÓD"¦?–1§À}Ì?Sø.c´è?ŸýmIÆã?†‰¦Ô±ê?8æda+ª?ýØÉÈG÷?îÜT¨G?£BƒÝÆ?’pn© í?¯¨ÄÀFH?À'÷9yÃ?¡*^&?R,à ‹~?æq v?iÅC´Ô.?Öã Îô?kI{?øûON?‰Ém{o?ç:dü-?6e¢¿o?ôðDéÒ¸?ÖtîáJ?µ/£¨?Â0$¤VO?ÊÛU†‘?£I¤Ý?NÙ kýÖ?à;é)J~?)ïÚ4? ¥„Ȫô?x4Ö  '?yÞ7|Ç?*SbO|?¯å8¬ND?,®ZF"?¬à^»ó˜?"z³„¦,?tdrg ?—gð¬a?¢Il‹,÷?ÆŠ´ÏE4?;Q ‰V?$!ë3l?iý:?,FD"¢¬?çÍËjÛo?rÀ¾n?¤qñ‡?|3¦7?", †aA?Í«ª"D?¤üê‘w›?¤¾ºdËH?œÈøþ5Æ?BÞ½j‘^?Sqm¸e?±am4?ïÑáxEe? éw¯tÃ?4¨rP?°(Æ¿>ü\`³d£>ø9*ìëÌ>ö%z­p…>ô˜s-—™(>óÁàÌ8¯>óÍ@C å>ôä+÷Ë>öÖ¯¿Nñ£>ù,4ßY>ú£¦40ÒÚ>û ªH‘ÉÌ>ú' èÒO>øqj¤¡Ú>öÀÂl;Áj>õø9`ô¸>öͼèü8T>ù®[Dbθ>þ¥{ŠéUé?¡#Õf4»?BéyPœV? €IˆQ? š÷¸Yv? ¾J~N–? Üã ^L?^xcï]?üŸ†Ð%÷?j1·Ê*ÿ?œâ9²ð?Æ:ןõ? i¥U_€?–2 ‹Â?0ëˆ‹Š•?ªNMqid?Å•Ó^qG?½ŠØøšö?Àê‘C“?¿eúÒs“?l¯í. ?a¯÷ ³¢?]íÃÄ| ?s,%^yN?#ËyÆ?F’±yÂ? «gÙgΔ? ì¼ x„†? FR¾Ü˜? …ªÞÇÉ?»x"†?ZØø ¥¥?¹á5Î1Ç?ãáÙ.)?}Héz×?&šsgél?“Œos´¸?­ÚùùS…?¬ÀÉ;'?_0´æ?ò1åA#?ÕWƒ˜>þ%n—ÏF >úÕpêüÞ>û©Z:S-#>ÿ”XÎ?™´ì¼‹¥?‘GòÜžÒ?sfd-õ? ÛþÁºÚÎ? ¯ÈÁh’? ·6Üzz? Z7Vñ| ? N)“ >? }>{K0F?³)ˆå>?41G?pÑXµ¿?žq¼­6?Ždî¿kâ?lÁuN_ô?}gÈâƒ?JÞÜÚ?Bï]YL?Á ÷&0??/u> M?€ä Θ?¨/Ï>Eè?)¦r ü?¦,8B;? j^„'"?? z„έ®? ÛõÔL>?É æîœ?ød³ß›?T88$?Pû™‰6?f7,Ø÷?«r(i? £$Ž CX? ºI€‘ÜI? u…Ö’?Ÿ–,à@²?c¸ï?zéùÕ7?´ÓOI©?”µS‰æ?”Z1j¥ô?q¹ÀY?ñÒ $?ýoàž?¥Gäë Ø?S-V©§?sû6F?óáÞ{Ï?¶"_«)7?ÔTùPò?Sß:H?#½òæ?)*¤k­þ?Lj/Jnê?[ ?»¾E´Ÿ¦?÷0˜¹]è?.íØ? ?ïbʯ?Xz´ÑåÄ?;Þæ5Å@?žÌ¢™Tž? ¦¡ÊÜ?pjͱX–?@÷,œÔ??þMäeÌ?Ž’t5?<8U>jü?E¢ô 0„?˜u1 ’.?Šõ¾ÿá?´Ìg ?LجҨv?Ð%6±B¢?0œù¯°?i;~Ïåp?‰2SYb?‚ÖÛZ?ˆEþ˜¡´?¤GssÞL?ᚯ’¥d?:2 éñ?”B,j%?ÇÒ΋¢_?­.”WK?.Òoˆwý?VfS ±?LÓVkæ8?M;6ºn?’™]Šóº?GvîÂøR?}ÜNÔAÁ?/I: |?AV ©rž?± „²?çWi?'Þôåa?-ýÖÖ&?â~aKÏ?8rú`J?,(•¤w?È¥ÉvR;?#y¼Îæ›?Zù¥.?‰Bjt¯?Äå•ÑÈÌ?a±ã­1?o.²þ¤÷?Ï)þ.ð?0éäï÷? uôÕE¦?8Èì"}Ú?>,,ë?s†kîÃ)?KÂìEö?vzN¼?8 }?tÜš À\?'sWä?“;p=×®?½7ÙòwX?Âw»%Â?ÅjQ!¸?×K†(?çm;ø ?Ça(õ¦?:´Vu?ç\¯tð?Dü»j„Q?èÔ÷?ª? ×L]“Â?àïNi?žU0M¿>þÁ£Ú>ú%ì ÃÝ>÷Ÿ ¿bÏÅ>ö *ÖY>õ?vO`>õEVVÒÛ<>ö:ÅKÌÁ >÷ÿ€k‹(>ú!²âÃ>ûøü¦um>üÿȤ¥l)>ý #kc…`>üo§?@q>ûƀܱvÊ>ûÅDÞÈ{é>ýuÀ />ÿÛº1Bªœ?-‘Þ®? ýÙ}·O?õœÞú? §”6 x–? ­å[­.? ð†Y3Éx? EILø­õ?œÜ3±"?çÅ#Á—Å?0ó=æç¦?=. iê??ª²Q8W?ÅFMù$+? êu;JÓ?a–T[I"?ßjs r?èk;…'ª?¤ð5 8ƒ??cçïj?¼x~ B?òp¿D&?¡û¤'}? Ì+—ú1?ÿ†¬A!k?YS5a–? 92Õ®åe? ^TíF±?#|Öp?š6Y(? ÝR+ëä?†²Ù ä„?Ž„“"ãÊ? ŸZ’q‰?aX‹üÅ?0wÜžu ? dÐË?£Û×lŒ?ÝÿkÒj?õ–òÉŽ1?råq¾×? õŒjg÷±?@à@äôL?ôœ’L>ýÄÊ仄>þH«…à(?JYfø’? ÉGÛp9?q\úš×?e“G„ºd?ô®q”°?G»—CÜN?’Ô@Øù?µÔxñ¼?̪ÒD„?÷¬úù¾ü?‰ì™Y¬ô?q±>¬µ?“âcþ¡ô?×ñRÝœ?-H/ÿJ?‡Þ¾Åá?Õa¦âœÑ?÷kÂR ?ÇsK4Yœ?#ßÒ:p?þ÷Ŷ€?dlªUëD?uÀÙ³?] '| 8?J•ùÉ-E?gº/Î6?Ôâ¾!1?£AîÏ’d?ÐY²ÿ ?F^ôcÜ?äéóî_?…ÿ ¢?É Zö?l±4‰?šÛ(›Â?¡ªnU—¨?“Œ\€X•?‡îó^k(?”û ‡s‡?É1’ ?$Ú£ä5?—} 9 t?dUï‡?9(ŠŠ?ñ#€”¾?—‚úV;$?µ—ÿ^P¢?›VÑr³!?ñýK?š=kxãŒ?€œËtè?qa»¦â?¨‚Ù€*?¦¨‡Î¶Ô?ô–@µCÜ?_™WKî?³½PÔA?Âü¡m©Ð?sðÝŒ3?¾0Ù—ª?ª:!ÚoP?Jðé24?·…±C­?U¡˜Pì?E=‹Â?‡šømµ?ÐëÔ,¶c?#ý·@Vº?~øê÷Lf?ä2Åîn?_5ªdý0?$èD?öùqn/ê?OÅnm’ª?"ʩӢK?i+L»xT?ú]S¡…&?ýBøœ?Ù¦}™Õ?˜&Vg?³Î¾U‡2?A,Õû8B?rá@ïðP?…à#x¦?®éÆdoÐ?”Îß?ÁK:\?¸ XÐ(?âgyó­Œ?!ʱÐÄ?Ur~ROv?d&Oãé2?>‰”m£h?áR6¶CÜ?U ÿe<?¬²Ý™?ý´²±X$?^»Yq=?Ý’\v?‚¤OK´?Sh?L?Rô°ST?~iß®Ä?ÉD<]?!v­å?r¦åÕ÷}?µ6òÍm~?íÑ…?À»?+¾¸tj?‚ßä52D?Üô<ÄŠ?«ŒKeÕc?rŽ_?8»î¤\Ê?ÚÃæ»_³?7õ&D¸?@»‹Í ¦?ý¬y¬?¯‘Ð?YY K;?¾E–æ?Žà@ÕoJ?}¨ÐÙ@?l(VÚ¬?7ÙÂê“p?ÉÁÞ¼æ? èƒ+ض?T8•µ?éÎ5’Tå?©&^ÚÜ!?Män ÓF?Ø+NÓƒa?O`ŽÉ?´ŸžóZB?ý}ê\ðê?UIYun?ÕÝi À?ñ9^Û?å=Õ°$? Á¨5? }@üœR–? L A'„?öu££õ?²’þ¿‰?,=Z%ýŽ?™}§?ä 6g=}?îlÊñש?¦¿ýqÒˆ?¾­¼ñz?Zg>ßÊ?ǘÁs?<¨¦pY»?‚«Új`?°: Œ9Í?Ö{÷5ß‹?þ8ä,mî?-ÐÛke?s¤´›’?éû•›?¯—+’±Î?Ù¨Š‰?f»rbÏM?Bw5+/?FOE÷r?HR¢Î?$ *M?ÊÒñ<Ö?<™Gh?|X4¦Ô?ÌÉæH[:?øõœšlÚ?øÕÉý¦?£qâó™ž?С-'?k!g•±Ñ?|²s Z?0/Üþ™Æ? ‘°°!?ÇU7ém?jmæ*2$?©ŽÍQ9>ýŽÂ‹½>û¶ü±’Ç>ùœtf‚Þ>øÑË ²9r>øº®“8˜¸>ùd{u–fÛ>úÀýÌ.>üŽ©¤~æ„>þaež¸Šë>ÿÔ¬tÅÊÏ?]“»ö?œ„’S†R?Øp¸’>D?Lú{æU?-bB™vÄ?˜,~ýžÇ?ŠÍl„R?Ô!ÜsSï? ¸3~f? ®ø¬C? 1±®I¾? MÍš Ù? $ØO<ò‡?DCiÀ¤B?‰aŒé'À?ߊ™í_?ð+<ÑÖ2?äL0™CM?QïŸ ;ƒ? f ˆ0xY?=ÍšéGÞ?į™?®lZ ?¤ËÖAÈÆ?í8O)ˆ8?¬}ÎÀ?ݬ¦êQð?^Q–V•|?p7€Òv˜?žÇ«æâ? zÑ¥K? ceœ?¿ÿc‹?©äUxiÍ?% ÅÇ6? =i·¢Y6? ÀÝKÁ.‘?¦ü˜nA?/á,ƒ?£ 1©Þ’?–A%ŽQ¶?˜„#$K?T®Þ{6?´–Ltj"?úpá·z?¬2H5q7? ×Aãh@5?‡Ô!ûc?ùŠûÊ?‹Bwr?¬Œ‘,);?Ü0bôî?k®ƒ˜§U?Á¹¿õv?}‡ðuéb?‹Ñ‹]-?"F¨õË?¥mN—53?; Î]>?Rfå‚îÝ?^»™LYë? íx ¥r?Ô9¢G•0?«›êø5?W‡.ë?Ž6¸‚Ò8?ð«‚£?¾C_l£?©UbZäÕ?pZõPt?¿â„„`? ?òø°?d‡bK•?º¦è© £?œÃÞ h? Võ¹H[€? ûíg›ôÏ? ú¯@^P2?  VO¯1?Uk¢HpZ?­ŠÄÍCt?L ǬH„?–86w÷ø?è ñªî?DþëfuÀ?8$ úÞ@?øíNö¬8?ÇÈ0ÄMV?ýX¹¯ÄÐ?ü‰!¡,E?"꟥à?¹P¡Kñ? ÕV )t? ‹:$z[è? ‡EŽTYû? š—zÅ~@? t¥Õ†J? §zŒ2v? Æxae?“R’±Ð?,¹ž¬?­±ÁÃN?OÈ´5}?ôߨ÷?Öu“$?…~C†#?ØÅ¼g;?µ±± ³Ö?,­®õ]x?mù±lT?µ†¶º¹?9 “Žþ?mêâLö?h³ù„P?·˜ ‹?jO’œ¢?4§ôF¸%?v'§µ¬?Æ-M-”?F,¡©?Z_ ¾B6?kX{âV?(ýêffÙ?x^fv˜?R!åTyÊ?ÄÝä')Ø?ï8Ë„ ?÷ªêÊÛé?˜6v;Ì??,€a?Åw £F#?­Ð¦ÜÍ?ù0$yÐ?JîØ-?Jy쓨?ú=ô&³¡?| 'š›ó?¿Ó¿ˆ'r?Ê^tõI¤?±ŽzÂl?‘4ÞEl…?†?ű#°?£ΦÜÿ?휨H?\cpÙ?Øt¤ˆ—C?AÕì?r¶jÔ$?P¼¸±?Ëdt¿?ëË(7D?Ъ ™WÐ?¨³ó»™ù?©È+¾.¢?:¢øá?Þs”¾^?D6ÕÇU?+|ÏHŒ²?pËÄ:?Ý€Mœg?5S ?FÍaŠ?ôýôÝÌà?=~f,?0¦É~é?ãeãP!Ð?j‘OwöÐ?ÑÛŸÒ<é?!dÍfaR?a[?(RN?›}ã#2>?ÙÁvÆÂ>?%áóPü?†¨2!õ\? ÆbÊ"—?ÂŽ‡Vé?Ä;žý#?'xb+ £?ü#ršv”?<ù(·“?ÄÀGO“?OK³ºŠ?ŒqË*¸?=Câßf¬?M_cÿº?×¹ý57É?ß°wG?F°jÿ'l?™:{|ÿ(?&ÁAÞëw?ôÑJ'«º?û‘xÞºñ?)0üŸÚ?e74 &Ì?”ª‡\Tõ?ž-Öó0?o7Üb^?•Åü}°?YÛÅTn?‘_hÊ?ƉB ’‚?{§?f?–œ)Æ¡?L£pOÁ/?6ù’÷˜.?NP7iÄ’?ˆ&úúh?Ö‰Q'°(?,j,}M?€{ïaý–?ÒRiuŠ?*æÆÕ§?—9®»8Œ?#©òû ?ÕV³¢…?¥50µÓ?# í÷º?J”ÆÎ¹?Þ+%¬ä?•çåw?ú“ûES,?~k@ýâ?È<ÅÉ#|?r‡ø?U²|uíµ?Õ°‹¶Æ?€ h®ÿ?C[¨ˆÇ?†b?`ó?³[©/¿?Ei±‘¿È?Ä™µn·S?@.¡ˆÇ„?ÆÐ­;ãL?]è7ì,H?ÿ¿ù J?œ]ƒ6´€?)ÿwÔ”þ?¥Ÿ>ªÚ?¥ßŒZ»?{˺¥m?ÚÀ®Ü³?# xµ$?GHî|ß?I;vP²4?ˆÈl8t±? ÓG›N’? ݲÿîp? ï‘qN/ü? Øó¾m?%806Ë‘?ÞM0¡­?;?*­9?{‰ãC€?|QžHÓ??-³ûY?Œ yï0â?ž(iS‚?l¾³ùã(?°IÃUC?ckræD’?¢_¸•Í?Î}ÆT£?ø"ðŠÇ?,à™áãˆ?z–5Ü;ß?è™y8nÌ?dh7@Ši?”>wdtþ?D¼º ÒÌ?&{qÖÿ?*¢Q*É?VÆ•8ªË?{R³K?|EôÆæ?Kâz¢]?ê¹íæN*?_ø'eâl?® ó.‚?Èë]üž1?–´!¼?÷<•)Iê?ÙÜ¿ÔÈ?AÐ{\uÑ?LØ’â8?)ýЗc? !„ÙÑn,?h‚¨ll?d 4_ù9?$¼ÂpÔ?’']Œpì?„Q ×Í&>ÿªL±1£>þÙp“ÿ8j>þ„‰¶Ø>þ®ØÎ(»æ>ÿZŸÞTøi?;Ó–ÊNd?í„þÞ_ ?¨ûŠÛ86?]®§’¹?ë¸íö?ÑÕµ{?½­óŸL?èRqµ?Ucßóä?óíºß!? ‘ðc£ÞN? ÜO¯§Sô? lô´%? ïÃéIZ? M|fÒf?Á²¦ª?Ùý‰w?RDËØJ?ì-…-È?'kzóš¶?öäv|?hú\°K'? U °ê¼¸?RÜÕÔ?º¬ÓÏ£?v»Çe†Æ?òñBäF?ß  2?ú˃·d?ªððƒ¢?!@ùè~?S­Í^ð?…iõÑÌ? \)« ? tu®~?P艎?SÍ­]?C8¸š¬~?ø`bnã? (9’…)?½Kè `??‚/³?²ï^Az?® ¿SŸ?ÀŸírâ}?™ž1*&?)p¡ Ô?°À¯ŸK ?° ¨œŽž? }ÇS×?¶Ø&ª‰î? ?è¾?Lntí?d‡N¿¶°?QJÄÂ.?fˆ)? ®D?”Þ¶?l§!ùP?|nã>‹?¤Txý?» ┇?ÀÜÓ^}¤?ÿ&AÃ}è? lã=Xî=? ºñ(?R?"¾öžTÈ?&þéÖ?/ˆQˆ:ó? À @Nr ?€¤Ù¨=?º ¦BX?QÛ"È/?|ë(G?Í©·Ë?H ZU?—IøÚ^[?lÞiÉ¡Y? -áÄHo-? ›G#§÷È? …;Np7N?3ºLðK?¨ÿ®†-Ê?ÿ_+o?| ªOÀ?ï¬ÚIÄ? 'ˆŠÚ? ¨$NÄ]? yH×3³?nØëÊ|?²ï€?T~ãФÐ?wvtPÊ?Ëbg=}?²váQ¥?²¶¾UÓÆ?ǦÍbvº? !ýÙ? Z‘¾R7? G-ò¦9? Êk"ªï?  +Ôx? f\Q h? ²VpB6?4³Ò? ?0ÐõêÀ?WÑŒ&¡Ù?1´R76?ãÛÒtN?1ÜhÝ©?QÝa!?oeÖÏU?®¢RŒæ ?^Gé=}?[##øö?~ø  fY?9Wí=¯?:Ñûþ?ú%|?<ÕJU¤?"/¸ˆèù?Erµõ¼p?lèNU™Î?‡>ß‘wn?wPAWÏ$?3_Lz?b¸ùç?Ah1‰¼?Ȱ$¨ƒ?ùo?8í2eÖ)?`Wä€J?ª|\ÅÌf?;7/—Š.?.ì6€d?Ôøõd??šì Xó? y8Ê?ß]Ø’·„?jðo[?ªë™èÏÄ?«Í ]M?†:r?tšÈœ~U?|±›¨?±ÈVéW^?ÏÐü¬ ?…Zù%¦ã?ù¦•à×ç?QúâV?qøÖf‚2?HFîFF?Ê(jŸ 2?ü饮Ù?ónéŠó?Ôÿ”Ê•õ?ÐPiÖš?Ýb¾à?ÐÕH™v?Ž?’?ÙAŸ7Gú?ë9í?[ÑúqH–?¥ŸhÝ\œ?0÷üïÕ®?a@¯q^Ú?­Þ®'?ß¿[>M?bç‰ÉN:?ë@t´? ­ë8¢x?ú¹×‡?C'¹øÍ¢?{m6 I?¿¬Ì¸*?”/Í•n?sm¨ãý?ð…¸­””?ŽD‡ ¶?OP%R?/S1–ìQ?"ž½¶Z?äW·?é–«4`ˆ?x‘Œœ?¸¤=ÒNˆ?…C -„6?ì L¶-? Á•Î? 9¾M]¡?|0À(¨?K'¼Ô?²2Àœ/C?EÖ¬(P-?ø`‚Ü©Î?»ÐÙÞ)?…èïv?NͽQ?Þ@¢œ?ÌW¯:-»?sþ—€•\?^„R?rØÈî?Ç…ŽïÂ?øÿûr?XŸRçv?® ²ëïB? Ǿؔ+?aÕ¹"–š?Ÿ/Â"AÔ?„§×ñÑ? ÆÓÛì? ]SùVÞ¡? °(@_x? q¡óp´? YF‚j ?v¦ƒ^?ù8^S¹¬?.JÚŸ?,ßa}š‚?Û‰¶ï ?4 §u?AÁZ0?AÈ|zuc?w5…§Ø'?Àüò}B?þÚXâ’?6Ñî·?öÛQÇ·a?œ#vJÜ?´G”ð?5V¦R ?¹ i?¢tg³*?»Ábr–?d<‘À ?µBhUÐ?Ùu<åö?X™ð•¹? ¸ÐVu’ü? æ½1ä3?ï ¯^ñ?içîRG¡?RGTVmÌ?ˆG³µ$7?óÅÌ­¾a?„ù¾Ä?.Ýqèð?ïLêþ‚ó?ÎLÊ}ï?×ïpQÓ?"ûп?‘5G¦-À?F =Ç|“?4nÍŠ]?Yå(b(?­Ù•ñõ*? 0|¸ &? ’úö¸—ò? ãoc4!ò? Üö¡4æR? B—wŽÿ? ת&8ú¸? €é/lŸv? U9âõÞ?¨£)¡?ûWlµÛõ?äŸÚÊ?êR®Ç†?_­o…ÌÉ?IO%‡·ê?T'l2{? êÃËûžj? d¾­‰‹?‘7z°{Å?«˜ÝeZà?–ÌKв?©i5 ý?šÁÂfm?_Ägg<?5bÒ“›ô?ű²¼? ôïlw3]?Ìbo›mä?,ȱ]Zá?$:•90?Y­…é»?1[RÏ+X?ÿLÖ²F?:g<£Âà?©þ,Ýð?v.NWt?ÙI0?&Ð@m‰?!*?ÙÁÂ?D>[Ïxt?…ÍZfÈ ?£ìOßÄó? 4£îày'?°¢¾+T??©hû£4? W«® O? ©S÷iÊ8?V„U˜?EC%ÊÖ/?—S~ãÛÅ?Œæ~®æ¤?ʼnïCà¹?m¦?h ²µô?ù <\¶?¦Z½Ù’? ôB,‹Æ? Øg™b? 5ëÓy? Û,–h…F? ªÄ8"À? °„°b³? #ëiÕt¾? 7*LC:?âÄkßÞ?cò ¤öR?,”mBî¨?‹H’™PP?h/MkÜ)?Þ¯¦Imø?/òÉXÜ?L£Ðr¨V?ò‰5[ú?w©uº”˜?\œ·¹Æ?4 *ü£d?+™ áo?øï˜ÅæQ?ÐTÜž¼?«iá‘z½?í'`•?rÞLFÛÉ?:Lö1?Ljîsz?vƒ$>ª?îRÔ;8?‹3€á˜ õ?> .!ño?'¤ké¥?ÐÍ9€ãè?'+J.fÛ?; gÿc?2ßçÒö¿?7ÙN^²?`öäR¡˜?´aÆ&å?#±™h¾î?—̪¡ç?ùµ;­†?6ξÜ?Aô"ý$Ø?+¢Ï©?¡jÝce¤?ð}Lácp? T~ÈI?ù–t¬°? ©G†¢r?L Iç£?ì"&t#ý?&%ÄAø? ôÞð¶R?›ÜÈz'g?Ér^(å.?ôx»1'?ñã2‰Æ?¬yû¼¸?$ÁjP?f Vwó?x®ÍS’`?Z,ò?ÿøÊ¾"è?b‚>`a?‡1Óµ`ç?ƒYÛ—®m?w/¬m}?„’Ðó š?Ç@cÈ+žR¶?ìOO,‡t?Ö<%ÛH¿?Í\e= ?ÔÓ@`7?õëéOb?;-F0ë¾?¬­¤»o?M¹øY?dU‘^? ËR›y?' ¼.Í?ìýÓ?5ÍaOÐ?þ:CoÞ?ž†¸Ö®>?áªg«é€?´ð}{d?^:¥!Î?*Gqƒ)ê? ÃMT™z?ì.d/j?êQ×±³$?Úì1÷ó?ˆ´`%Óc?/‹º’B`?"kÁ´E?Ç\Ær?‹ Wyw?ª …× ?öÌÕÙ@!?«³‡&3a?&5S¢QU?gÒÀÉŽ?€èǺ`6?ŒÏ»9ä;?¨Þ$ Š?çoÔkí?Gy¹ Ëš?·(È ž6? !;ˆ2?òÛú‹_? ¤Û” >? ¡~y›ˆ? Aƒ§éh? ¿&n( ?YߟA?h*´v?nLŠ¥¬?¤[¿]?«t«~RŠ?]z²“N? Ïe j?ÒýÞ7yË?s;›Œoø?ý5-aÜ?~ˆ¡°&?µœBž?ˆ}iy¤º?#°x[?ƒ¿ß7Tý?ô —3N1?˜ºâ!ð:?‹O¢ÚÕ)?î‹®Ús?á‡×ï?¨?¸ š!)L?ÅÌ¿Ç ?‚ÍÛ÷\?YÝ"ð7h?¡Nƒ}6?¼Ü#6?’¾hKcÑ?„£”ß5?VŠWÃjf?F]Ë`éc?çe [w?/w;,Z?ácWùñ?ªÛù•C? VZ2@d?dmàj>?Ûh½ \#? ‹õ&|¸? é…y6 ú? Ö}Ö½Ô? Ç™®,? –Ã5b¶‡? „ ·h?­{1þ©•?8ÏÖXEl?¶Ûj²“,?!- !"?~¬^œtm?é¥'ÏÑ?ˆl•þÃ?"õûÖ9?í ¥nQ?Ò~~¼à?"Ku„.? ·]ŠTï? ]/ ÏQÀ? ×­áD'œ? ì ÿÝ]’?e®›jZ?YÄÈ”? Kr‡R? 2kJkç?àìq£=‡?oÛ\9ìð?J²ß·[ø?ÕUôíÓ$?Zû5ÙÉè?€ù´oÜ?»/¡7þ?L/.¢ú? NPOǶ? N z/le?ë¶Žýºî?÷èo›„a?¦Ç^iE? æZ±œ?2…迚?'<ú ³Â?ì\”v?xÑè›y?½»õb?e쵇@î? ϶ î? ­ÖÂô?✮ú?Ãï&Ä£y?0ô%]º? C‰ŒüÐ? º;NH%ì?„Ãÿמ?µêLÍ¿Z?‡ e þ?”ƒÙ*Â)?œÕa&P?–öÅÉ|?¹¬dõ¦N?m÷‡Ýüá? _½£??Õº­|Ç?¼ µ?9§"˜ç?œÂ°X?’m„%?J)éßû¹??ßÞD?GßÏɦ?§bá„ħ?òS3ü6†?ÑÔDù^Â?Áµ-2»?á·žåÚ?üõÕ³?¢áàÙ +? ]ðß`ëÚ? Æ“Ï<ð?xaÛ®?A;Ý6M? ËÕas°hO??œ2,×?¤Z3<2r?²îJò—¤?‰ÎßæýZ?UUÞäÔ?CLa0üV?w‚7÷îî?¨\#[?ïgŠ)°?1š¸;Qz?lj? ‚™&Â?i˜[n‡H? \8Ç„?Œ.˜ ?øó?9Ç?i aÂ?î‚6?Ž:®\Ÿ?>ÔÀ-v?ò7Iá_´? )Zµ?O ©FÙ? Í?³_®¦?1ïxÇ ?«ŒÀìÜú?jf¨¥v?^x–««È?r¨IÈx?’€¶„Ú?¬{LÕ?³êzIÍ?—/.Pl•?>x<‹ç?Žd·ïŽ?r_‰v¢þ?ç¹±ŽË¤?â4Î×?àÛšvçê?°MXl?“Tïðs˜?¨$YüW?^Ç€I?«b‹Ä?£ër:?ƃ3Ùð?üöT?¶?7i.œv?8úü‡zz?ñ«"?¶?Uοí1F?j¤ªU®?I\Im/?ò¬:J¹?fI!¥¬?/GN?• Xø$?(¶î­Í?˜Cºùà?Ú—õ…à? êsqX? œ†Mt¨x? ”tXgá?2ª”mêi?jÒ/­Ì>?|.ôÐÖ3?<ÎdÊÞä?Ì(C1D?`úâ¤? ô1û¾ ?Í|¶’¾?g Ζ¯ú?ð¾hgµ?}r´ÜJ?’¢›_?¬ngéN4?`¸¯ö/ê?Ož‡5Þ?g ^äðÙ?“×Ðש?ÊZñÈPÙ? }bÑu?P¸_¯.?ÆR”aÃ\?{û\Ü?sßrUú?¡aþ/ï;?鸸/@)?'“ÿXxþ?2ÒÂËZA?ëp„O’ê?Cyf%íH??Ÿvëp?ëï¬pÓ?TRÌ’¶?y@~á«K?YŠ_mø%?+rÉ‘¿?Œ¿¥5H?.ǯɈï?U"–sí?¶ÁÐXR3? ü³m™l¢? Å•IÆõ? Ç™¦Œà? Æ ‰Wü? ¥4‘¸í? ]/л»? î¬ •? Ob}%ç? tÇHè6²? `”P²}? 0H¬ÎLõ?[1Õ?hÒ„c?LQê?‘ž?àSvsŒ? _!ô0È? ´åüC'Â? nȤÉzœ? êàVÈ¢ü?ܦ¹}á?$åöj?tÛÔY²n? Ù%nóâ? KVO6? JóVtŠ?xŠj-¿?¯N¬AU?l­K½9?u*]£Ôá?3’A³?’¶]€mF? nbz= ^? —†õÆž‹? ÙÕŸ"Þ?B¾æ•à?ýz…ƒÙ?Ñ=zåfdÙ?pj¢=H?gñ.‡ì?b%j´¿? Ùf[%O˜? à˪_ª?U÷Èˬ8?=â­d¸? *bó¤? bæ!zN? &“B @8? ñIÞ1«Ú? ­çë`?¹ 4sí~?Ã8³/ì?Á"?]N·¦?a¡Z›Ë?-ÿ4ØÌ¶? 8c§q1„? øLw¶±? \*‚=? +»8”ö? ŠG÷\?ÌŒQã“?1èlªêI?´•éÉã»?B1æf?›ÓPTê$?†8Ë?ØÀ?æËíͤÇ?²Tðr±þ? \OŸ}'€? ¬*7O? ¼°ð¦? oÞ s8?Ñ•¾æM?×–Ý\?Pö DZ?žñEæ¶?,·JxoB?›°kÈR?ÜTùTÆæ?gµ’ŸEº?tu…Hæ?%²u¨kñ?qëÛY?`ßš_©Ì?.Bª•°?³¿œ:²?~ÁSy'?™ÛR²±´?ŒbÌ?žã˜$Ì?mÇi, Â?TÎÙ`q?CªªíÓ?Q²“äŠ?«Teˆ½?3•§øÈ?¶É=ŽœÐ?=™ÌVË?Ÿ2#÷?¾EEL]™?•¬|­™™?4·We6?²–¡BY ?*–Â/´?`þgßÈ\?ª20Æ Ó?Mâ<¯†’?_ gHH?Þ\0/Ô?²ol?÷?Sð:QÑ5?ČҒè?Çœ¦'Ô?UXQY?‹ž;˜Ø?Úgɇà?\›¡D1P? Q6Œ—? a3Sœ@?E{icf?fŒcÀáD?SÞ߿ʨ?æ ¤ ÷Õ? ¦‡—r?ÓRƦè?S'Ûðm?¤FVDÿ?ÏNP–$æ?ѽ÷4ú)?®\G&7—?zêÓ%|ß?`A›8P?‹œ¶j@?¶Ý¡ÁC€?êÏ÷À?Zÿ99y­?%Ç>é²? Ó¼@œ£È? w{ ´"]?š_‹Ìp? sÂÙ/Y{? Ý)P¸¨2?[¦qùWL?šé/_£Ò?KcJqv?[‹Øp_’?ŠlÉ»h?ËyêN¾?Ngš‰?tˆY« '? iLV%’? ð‰ñݱ? ö\ÎMß? qci͘?? Û»}ë ? e4€4??–—•H? íXÉ\¤~? oòc+? @¬oµ€?$û?ÍÃPPk?šïÒßR?n9b9±H?Ê ž†? ØÄ¢K¯? æŒ,Ü*? &Ðó×à? à¯o=H? át3dÚ6?wl‚x½?'u÷ल?O‘Wªø?wœŸ1ì?~^c‹‰R?>‚Ôç®?¤P9’h@?„±u,èR? §n+ÇR”? ZæÅ ? Kqþ޼? ôŠY冒?¹ ›éÜë?3˹æå?º%ÑEª?£:ehXx?— %F0?š°Ê?ªZ<–Zý?ì4ÑØÜ?ü£ð¿ù&?àl“í¿?ÚàÙ…ñ?ñvÁ½´? hFMcß? ©€:¼?ËÂSnE?M·iâR–?©xn`…?4yöÜÜ? WPƒÇ¨? /ôìV•?¢‹ó±Ax?—£ Àˆ’?Û§nú£?4.Ãk<Ï?4•}¯Å~? ³g¦Ñ€? Ѝ}Ô‰ý?ù¸iô?ñzÒ`¦?yYûg=?‰ãÔчÁ?[‹C m@?3ÎH§˜ô?Jˆ',ÌŸ?±ŸÅå¥?OÑ×Ã?ñ(R?ddºG?•.J ƒ¦?“cNÜV)?„ô×€)°?ŒåÈ +{?¸«|d>?ùáx0¨?8±«Ÿ ?WÊH‘¬‹?Gd?h¹Œ?ýúŽ?yŠ'2åq?À~°ÿ‹{?æý Ôó?¡Sƒ?æÂ ¯4Ê?‹©:Ê»?PE¼¬`?“é0O8?Úˆß?2 noJ?Xµ\S-?*\ÅSÏ?®¸PEkä? u‡aM?r¡œýU†?÷ÚjðSÆ?—pÓ^9.?6n>"ub?¶.»—1´?µÊñš? ±OôGµ?¼6É,?çûb¯×·? aà:(?7ûLªd¼?¨†BOfq?ó/Þ,J?&§mb‘?^âË”?¹™÷?UÜ]6d?@ÖqdÜ?‘69(p? \'³"A?ѽ„Ù¾?Ë)+hÅÝ?æèî³×?•Æ –?(©A'¨ê?»Rª–?yæ  ?f¯~êêÒ‰?ÒWÉZá? »œð2?Ä  #µ?ÚL|±n?>}Ü¿­ ?ÝðæBv?­0Ý62‰?¢Ì£ªw?­—M5ßJ?¯“sÝj•?ƒÑùcµv? (¢'Ín?Cà¶7p?2¥[œé?õò$ è?¡S'­•?D7˽Z8?ã∌GÐ?…®/°"??2 Qß°á?ð´SW¯F?Â?Cì^f?žóû§Æ?zÄJ¹Rv?M@Ù½Xã?tN+©x?Þ,N‹S?®Š½Cì?‹÷$Bd?nK“ïr?@)à×B?æü~ŸX.?Qh›5Ñ"?„…„uô4? ˆÅ™F«?×S“—–y?[­>‰Ì?PJ&)oJ?¾°q¿Ia?—(x+¸|?·`X? §dð|à˜? Јڀ„? (Y-­˜m?hÉ)Ñ®V?’g¦:Êó?@%Ú[ª¯?T¸þð» ?‰€Üá ?ѩԙP)?`¸nš0?Ç<|…? ‹ñÍ×=? ›%E`? ’‹c3? ˜D1ý"Ù?u8‹Kà€?"D„]eµ?™ƒÉ¾{+?gÉhâI?-þZL.Ð? å&îµ? ¿üaÅø? io wWó? $~D×Yú? ³hVc­? ‚1ÒÀ2Ê? ø·´€/? ÃÅêv,? ý} ðŸ4? -q^öŽ?m;%G~.?+SïØ£?Пd‡)?ú“mãÒ?ÑÁSc;€?–qL˘¼?6V=ؼ?¦ô DðV?柖°ñ?Õ.D? ŒøñK1? ݺØá ?ºt¿´|†?¦çìÝ®?{5Z¥’Ñ?Š•Œé?j鎎Ê?¿ã=bO?VKVðà?7fã§á?›°°ý1,?Ì&±²“'?5B±š¸?aÚN)tº?ÙÊa‹gù?K]Í?t?dƒS?‚ôj|š?+S8ý®m?O„yu*ê? \N…’? ÝŸGê¾?ý«Ì žJ?ª†€îŲ?¾Cž=ñ&?1ÿ,,?.¬˜³Uh?÷‹:¿gå?©ö„ûŒÜ? Ç9 °? ¸-cr¥?ÿ‘ØsÜ?>>ÉLj?Œg宆À?$y–·c?|ÀCëJ?’=Ô^«?åa¢°ëÆ?eG´pÄ]?ä?в±?2ÌëN\R?:;@ë£?µÆj?¾¬óKq¿?‡|¼L3‹?tá‚i¡?€æƒ‰µ´?•;y6ã?˜bùŠpv?w…Tåäâ?'ø­5Ø3?¦tdÇJ?òP¤ÅÚ?e¿›D«®? ñ©ïÕ0? öSßè? ÖVò:8? Ê|š…÷?Äø¦bdÖ?¶7®ô>?·Ãͧ÷?P³·R?/â •D?¾N´!‚?"À3’¥·?Œw[/ôä?‚<~³(?ÀàPv~ï?mÓò W^?þfŒ‹"Ì?^€‘R?ŠyÝ™iÍ?‰r,ŠQ´?c´êñÄ®?ÿ°”?¯nÔ‚1/?-3jc]?bÜÚë‘4?”A÷âAÇ?ÅÌ6Ÿ?“Qäe ?èÃGF?S¹ …?gâöç?Ñ>†Š?Ž"!öœ?–Z>»Uþ?Ø ”lÝÌ?74Å]e?…ûýJâˆ?ÁùÎ&?"8z$D?¬ dc?|ÇÁb…Î?b9óÖ?(βú?µ«í–?§ JÑ®¼?þM>¥@?ÎÂ%þ?÷ö‡”Bí?b÷Šàó/?ùÔÙ…1'?±ÿ¤Ùt?¯6ë ç?`±úšÁU?9Ü28Á?óc.²Ü½?wÌHù¢$?½ÞŒ¾3Á?ÈÔ:MMø?¢Áxîµy?Uæ]¾‡°?ë9!”4?nßWRœ?òhÁ˰?‰ôCÙÃ?Bø%÷+?=ͺ?‚Y ^?ò„¢?Ó¼†{S?¬X¨iòœ?‹ ‚ Ÿ?{Fê4áâ?}µè]/?¤U x?hAkhãü?Æmâˆî?i EK¨?z]‘Cº?l ïÇêï?w² Ÿ§m?Ö‚o‰$Š?¯uQ&àB? í›Åí?á¤bÛ»?uI #>?K¯0…iÂ?‰»GIô?¢_ŽŸ”?†°ìÿ›E?0¿fkùx?œJ˜Rõm?žr¿`m?s?E?,Õ}«.:?yÃ_áó¦?–™Êíα?>ùð˜?®ëÐO[?ò3N T?ŠžØg-U?Šì‰¤ƒU?é¬ìv?}0L\?á”I‘?h•ƒo/ž?g­ ì™?ü&9ìÜ‚?&çñU€w?ø¦­ƒyÜ?–»Ž‘Æ?5ù}‹f¹?C­™©?`ìþÉR?&\WÀ˜i?R*÷±ìÆ?½Üø¡Ç‰?Câ·”#×?ÌÐÕ) ?QƨîI?Ïð£Æ ?A¢Åðâm?¦îý‹B?šyæ©?G:¿B?– B·ž?¢¶ HÊû?šÔƒ @3?XLRÉN? îIã«Jø? kþ#8? ö†,ùLÍ? ’ì[Ôo?õ}’u2Ã?€ÍØl{Ü?´ùbtz?Þ‚0lµ?ÄÈ%SB?F;rÖÙ€?du…„‡?AW/ÿ¨ÿ?‘X¶ÓC?úåÞf/Q?$Â*è`?”ä¾Rv­?<= ly?ö#dexÃ?’2ƒ„r?æ`ÜŸ*?ãz¨ ùo?›ÊÈx?6›%÷?Òg†JPì?u`ôÈÑ?Ô€v?rŒuÛ?­ß$ž,?Ö©N›?d×Å/©?¶Žÿ»è?°$ÛD#1?üp Åæ?rKG/nT?ãXÌ¢í¶?0N;+?P 8NŽ?D—ƒÍ ?¯ë[¹? ·˜±‹?ë ;’aX?ç³LØ?Uÿ[.I2? Èu‰Õ“? „°åËÔ? :cê:íô?Ðu¦P†È? N} ‘? gÚ`}$ê? ³+ìÐÛ)? Í:áÊB? {® ×%P? À‰˜Ù³"? ÑÐ!jgÞ? ýðTwá4?‰ÀÚ8pÏ?”÷Jߦ?†>`Þ€ž?V΃h;? ¾žÐo,?{J3òI ?‹\‰/“?E™ú¨?\?Ñ=ìŒ?e«ˆV~C?7$Q¥²?i Œjdr?¯3ªb?þZ.âC/?)6ôBý–?JÛºÃÞè?)aF›?h¥¼wgo?4?㽆Oa?79Ã?D]÷Õ‡™?ϳ‚? öEˆM¤Ø? ˆ3C)Òµ? Ë/ÏœU? ² Ý¯ê?Ùß^{o?ÆOr?rÒìVÐ?…ºvo ?³Ãƒ5?õf{T¾.?…OüEç?Ò7Mk#-?ºÛ…ž†? h¶ðÙ? #W:Ý?˜c*X^?cÿ¶N.ß?cMiô?ãJÈܵœ?±ÞÖþБ?â¬ÉÊS?‡˜3„Î\? sÌûZ? $/ µ$? ÁD<)}£? õ˜ò?‹Ù? #Óò;\}? ÀY»Ój? šÁÜ ~?ôž~Z?Z³É(§?`)ž[YK?·v?èÍc1¿?¢ØmlÜ?K0ª:Pf?çöïœ`?wúq|~…?ùù`ÞôŒ?t3 w-?ñÓ\šw^?J³—°îG?9JȺ¶B?ú!­‰.»?Ðàò7Š0?·Õ?Vޤu)V?‚Ñ›9!<~?DnŠ  ?¡ß¢ ,d?Ñ õbQ?¹ŽÉ´¢´?bgæ2<‰?ìsèãÐ?}õÐb@Ò?.¯ø,5¸?þµ”:?¿áQÊ`H?v«Ì¯n?›+–*G?QÎŒ Á,? `”„(`Ê? xK^?õÅä7:š?QO~¤')?ä!F™?º *¹ö?龂O³R?/ôŠéøé?ŸâêþN?LµÜ1È~?H>äœÃ™? $·-Ô?ZG飇?pˆLuÈ?Í∦…?M{J u?¼$¿'F(?àj´;=?‡h&n¶?’w#ß ?Oi7ÄÒ?ùsbÊû(?´ó&õ²?{©"§•?‰Ó;§M8?P™ÚÔ?ßúfâ ?{zí?z›{ŠgÔ?ëÀPü?¡Us?¨`?QB~ºóæ? a¾Õ^Í? °rÂ?cWOà (?ßKvž"Z?+¬hLk5?C= ¾î?#Ö/øv?ÎZ¶Õå´?JÃØƒX?­*È}Š?×à¶m?£ž!Æü¹?hÁ´³¥ñ?_L¹óÒ?n˜ž3à?wpáÂè?k_.¦Ï?N2ÀÙ&r?2}ãâ?*¤J?8ãÓë!€?J2‹UŸc?;‘ì?éG)]Zé?@#ì*?K] Å‘6?2qÎÁk?/z½„?|zx WV?CB¯‰?‘šš m?Yó×]Šu?x„íl?¾;¿’ƒ›?üPÐH7?LËüÀj?àµM|QŠ?lmŸ?°ûòub–?²~ï7?s?Èåa?û1o6?SaýO¹z?‰CL´7?¯Ð…/"ü?ââXßò?FÍæ>[Ã?þÛïÅ ?õðx¡?”÷‚9ü«?:‰ôÍØ?Ò/Á™?'Àä·>r?E¬ù6?§©ÍŠj8?Ó™[~ž?µ,'YÛ?u5®ÀêM?H apØá?d¦ódp?ïýD'É™?ð"•ßÝ?M–Ä® L?áëÌ%#¦?Š&¸h?0)ßÅ0?ËPOëD?V@˜`ý?Ä-tÔ6ë?ûXljO?ÜLHN?Q”މ>?`æ ?.KCs $?òPÈL?ÃFÏEžN??örÅvB? €ÊØæ@¤? ™ªDÈô?–Àx´ÀÊ?8i=ç¾ ?}æñøÝ?èY‰«­N?8nÛâ"p?.ç(b[Þ?©iì„ ?¬§LÂo?^èè-5^?õ»+t„?Ÿ QT?}/À5í?œFx|Œá?õ¼½KÏá?ní¯i0v?à-ßµO‘?$zSš?-´ò±]d? ˆb;¹ê?ã¯7A# ?Ì„M0F@?Á7;O8?žïÕXðG??…†Æô?• k!¿î?»ŸÃŠ~°?ì9^´É?aœT(?|?=š¯<Ê?wäüµ… ?ê´ã/m¼?b«º°j¶?º¦ÆÞÙ?倶÷œ½?ç¹ôŒ>?ÄœFä?p™­:M?ÔdZ­m•?ߊ‹V”?š¥üi‡O?[–¢‹™? ªHeî k? ™•ï+k?z7l¶²n?]äëZq? º8,^? F bxy? ˆØÂÓp©? –€èZ ? ]¡7&â?!&2¥ñ?Ï~¹k)?øEžÛ•½?ͯ-2?Ð%&ßݬ?Þ$Ó8Ÿ?ÀÜ.W$?C=.e(ó?FØýïàì?Ò6Á/k? «Ýw?Eù98?°e¶z_?…oÁÍ>ˆ?Ü×e±+?¯‹«ï^Õ?ÕwÃÔB? êÕc?û\Œˆ„?_Cïòè?§®]gÄ?õ9PF?Mö±)¢&?aOÒqaý?s[èº? OóCðÊÿ? ïÀI§? <¤êlü? *OíŽÁš?*çQ×ý?©üV?¨gN¹xá?¯ê™ÀÞš?Ò€²ÛmØ? sM¢¨‰?¤D[2? Wçc>?ƒ™þ¤(à?L˜%T0?´,cpùâ?8¬íYî?fÏ„¶?t88Çf?倽¥?âÖžíÏ?*[§š½?!‡ Ê‹?%Ø4¤ð?ò –>½·?S·Ô6•?_m…A¼? ”ý˜ìÝ8? jÖ¨8µ? ƒÌ¢ôgð??VR]‰%?:§×qü8? øÕ??°‡;ŸN?…þG¼€C?9r,Ÿº2?Ö¡~O¦†?iÄø‘°ª?ülqÁÈ?•aÑMsG?9$õT(>?ì¾LNò?¹q‹ˆ?­™Ó»¨?Ü?+ñ[?M}Rnݵ?õUùi¤¶?­»ÙíÞ?ACÊD?‘__5È?RÕ]€ûò?ÇÒ_žu3?<¿‚›H?Gw¶ÜÑn?®‰vœ¿#?LÄ9lØ^?¬%o°?Å-¶”?gìñï? ì¨Zwö? >“Æ”¹ƒ? N›0 Ÿ?~²gÊg?ÓàÏÝó?9sŒO”s?§§CÞe?*~h]™ß?®F¾ Fd?d1ÆÉ»?¦ãV? s¥ÜÀެ?¡©qÔZ?éÏ Uõ®?y$™Q@ë?†ò#ñR›?DxÑüK¿? Æò™r¼Â? ÷£6 G?=Á<Ÿ:?’jµ¥?©Aµì?n”ãÈžý?é\¶P—ô?@\È.?¡ÿº`+¤?,“¿¡ƒ?Ý›Ò*w~?šB »r?Aq`?¼u„<¢ƒ?Z`˜$g?˜RG©?îN¹$ƒ¼?–x›QÅ? ¿•Dö?\àÒºž?“@ÞGm÷?õ‘Æþë?ü*yglž?HÔ!ñÝR?·V¹UtL?Zz$µ”?Iƒ u?—‡P_æã×?Ia‰„_~?ž’½ å?ë§ï½F?D™¶ž^?É<Ê`±å?š¶ßÏ3‹?Ê‹ <ïŽ?Kúw† 2?óh¾yE€?†pAÖD?ÓÊYCæ|?ÁM rLQ?Mhí9¼”?ˆS[µEÞ?Žƒ™s¿W?ˆWZßö€?¥á€à6?NžÝ?çÛù¦M?Ô‰­àõ?˜WÉ P~?3e͆\?Ó­ð°S0?líÏ/œ?øÆ’ŸÃõ?u¿]%èJ?Ô¿ÌÉ ?úS¾Á?Æ8|Ǧ…?#°G\³x?.‹_Г?Ð÷åRÄ?ãϽƒ?e,8X?CuåøÙè?˜Œî Ÿ°?Û“2(M?žÖ{‘?!$r9)?oâ28ÛÂ?éaöøÙH?AÐ=¨?¤2¸H` ? ýFÐ?À? hö?“t»÷[?žÊ@zŽ?ÖPÑá\þ?S$‘dç?\!¼uÈ"?~îàç¾?’ûÍM&?±¢H ~C?謆Äy?&Wóë-³?=\¶ŠÓý?»P»Œ?_«Ù×4?yÝW›«?×ÓcÆ?ãHa³? ¡ï (q?Å×ÞŸÜ?,\6ô²î?žqØ£g¯?óÂRýäº?ö õ?'þ Œ$?˜ô“ŠX?à"¯Cå?gãð D?’x©ÎÊ?Yßu>Åt?¹øxÈ”? §ÂÌÉúÌ? ôÛ˜d?;4SíÆ’?‡,ÍŽß½?Û±ÓVÍ:?ïVó†? [? d€? Âp.ÈŽ? öÊhQ‚?ìˆd!­?¬—ª‡€?;’Ö? „¾4?5%ÆAF¿?Yº£rm?Vd*Â2?ïÆ™A;?ÿ¨ÕnÔ?†>YÜ·?«"A­Ï$?±$ âö{?ÞIa¾Ü¼?m‘õq’Î?ƒ (XØç?"¯øÆ0??*s´î®?T«ŽžK?Háø†Ï?µµsÄ(J?iÏ«¬?b7æ(ü?ÊEy!f?ñ6ž¶©f?héôƼ? ؃? °ã*Ÿ n? 0Û Üô? @6¹7?:ê Œ°Â? …{‰…?¤¥¯zÛ¡?›Âl$¨?µkyñ¢?÷ðåÒcô?¬PEÖ4?EAÿát?7 ˦?¤ÈriP"?+úXp9 ?«€9²?Qî( §@?iâ®Él?`ÃÅ!?šÕË–(?‰-¶ôà‹?žöAÈ,?©BD¦?æ%æà_?b¸%ðF%?í• ±?Æ Œ²G? úÈv]B? –±¿üÙŒ?™ò°rˆ?á3®¶Ò?ª …Ϩ?ò[qTÍ=?Õjeâ$?œãC]O8?N*7ø?óËG Ò?š·3kH?O‚~Bw.?Òñ>ßI?îå£þy?ÔzwÑ?Ê?»ä?Ø“Ñó: ?Ú'À¡&?KhË’¤Ð?ï ž-?°ÄÞ^zf?Šå,\Ââ?ôs’òŠ?NåƸ?h.φýñ?e;Ûª? ·ºû? ݆EûŠ? uî%|mH? ?ÅìÉÜ? ç®ÈÅ^? -{w§ƒz? ñ9)ÃQ?žùf b?Ocñ†¥Ü?ZÚ'ì`?Ìó[’#_?wÄYÞ8?.5„¥Ê?¦»½3¸è/?§‘gs?’l2S.?¢†õzB?†d ´*?Ê^ÍÊÚê?{huâ?‘ÛøŽÏÿ?ñõ2Ò‰À?r§ÔuT?á„Hd‡™?^Ë(f‘?ÖÆj2ž:?‚óïN¨?ÚÔv<ñ?*1!æât?6!êót?7£SSµ˜?cÃEáþâ?ÛÏ]8 “?§ }2þ?»MŒ>D}?ÙŒ Š7?qÚŽ[g?ûl ü8?–ŸÈ­ô.?8Vb@ "?Ñ¥Ðs0?T/꩘D?´gQà¶?è…þ·rÎ?æ'1ŠŸ?££ÂÈ8?­Jbû¢?eiaA² ?›¯í¦l?ó¶fèiz?›UËͦ?¥¢Vªü[?þŸAtŽ?sž;׿ø?ÌD$?åZ~´æ2?Áp.I*?~ÂKz›?B µNÑs?O»Ò(ì?aq¥é?ôžˆãï?®ùc'>N?)M6Fƒš?f.ã5a¥?6§Ó¶?§tÜÞ¿K? ”áïF?Òšp[J$?Kn;X¼?ÇSÿö€p?Ñò8 ? Á´í?/Pé¯b?%DýÇ?ÊŠ÷I?›KÎY?²Z]¶?Ï«¹Q3Ó?h:É:U?ïéåÉ j?qúÒ9 ?ñ—ªˆ?n€×é`´?ô±R.?›ªDY*3?€ˆü;Ú–?´GŽCv„?,è ¦ö–?Äpµ:C?E©ƒš¦?†ƒnÊM?q\²wÎ?ï(ýŠ?arJDÅý?™úp;ºÑ?Ù™ëXD?HÌ?¬Ó…?ƈûc?™Ï¬?mÀû™Õ,?äA›îŒë?]•œ÷~ ?ÊÑ‘ÒL¼?,Ê%*ý>?Š-Òéw?䨣}Y?-AË#¶•?HåÎWl?Òµ=µ?yþ§®6ù?} Im˜E?B=äö£?>ŠÆ)m?ñ†C­‘¿?:ñކŠ?å\Á? 5Au?˜<€…6?Ë{Uö? ¶"?~‘*¦?¹Ö “h ?™#ÄqÎÖ?äV•¦Í?üƒ ÷?¢Ò/èÈ?ð§èÛ?—NÃ?ósÕ<ð?…*SÍh?H؃”¾?C…Öß#X?iA‚ ?£¿´#ˆ†?åIzž–?05MʺÕ?’y]^?w±ý©€?°æ£ƒR?®©öjˆ?âÁ=Qä?f д>? ³ïœ? jIpÒød?¾F¯ ³?Ú¶Z?Ñ <ÐdÞ?Ç|½Ï%? Teçû¹²? Š¢H0È? …‚AOýœ? ¿?^C?ÒÑB†Š?ÿAÔHM«?¿©olÀÖ?²½®­‹ê?ÂæH—þÊ_?ˆt _?>þçy˜?D’Ë„x?Ãú¹ T\? ×Cà? èᲯ? «˜™ùÛŸ? ÕÁÐ/l? –ZQÊ ? ÉÀzÙ¤?üé!ý'?¾ !ýŠ?<ÔÞk? Âr w?;[)Õ!Ø?œQèBM?ŒZ“D…o?t®Ó’ÿ‡?·vcï1‡?Ä]27? Wî´!?ìhXìå?3»O$ñZ?Uñh%¤ò?„’á¦F?Zÿ™ýq2?î)×Ú°?45vL->?6Ù¯ôa?E¦áÙ9\?w¡ã½^¥?µ]BGRi?¤‰F¡ïˆ? go@üwþ? Ñ36&9?HAU"[J?H„ê¼i?1Äv_æ?²–?–³?«=Ÿˆ6?—ÌA€ð1?s‰}‡ð”?A¬Ë`zN? ¨ß²pŽ?äH7–[0?ËJ¶Á"?¿Ž@o?¹¯G»ƒ?¶`ZžÛ„?·Æ¸Ü!â?À /·Tß?ËÒm½­?Èp^Bô$?žÚS°W?6Mçå:?ˆLÙ¼ÔÄ?ž#¼˜÷?+‡ßçœ? 0Å,Ï? ›ùîùÈ? ›ïÃöbÕ? +Þ—Àk–? ø¦Þ÷~? ü¤Þ¢ÌÑ? žž»Kæ?Üñi-ÕÐ?×T[c Èe‡¯Ã? ³„hu^?3Ö”DøÄ?̱ܓ'°?‰4h=ƒñ?y%t€*$?¯Ž“³»?;©aÏ=#?#ãÄ•?eéù²M¦?ýÖ°2£?ì9òW¨Å?5µ;ŘÞ?Ü:j`? ÓÄrÅ? öÆ/ŽÉ? NE=?Ô×k8ˆÊ?–sÚ-Ö´?¯E¡·Ž?z¡9!Fø?ô0Y¬N¼?9ö?@Üœ“!²?ëë4üÚ?s:`.Ã?Ǧˆ î?è½ãÂÑ6?Ü@Õâ¥Ã?§¸ 'ÿI?OX›oë?Ùñîâê¾?Rö$娙?ƈÂo@?;ˆ>%8Ž?±‹ïŠ?$²^ÔßK?Uqû}Ž?1×g¶$å?Å£E‚+?6ޏˆü#?ÖÕ“åÿŽ?Üàˆ\AÇ?*¹½³¡?—=[6&?öô5‡&?"m_l?ùþð¢Ž?c!Èßá?VÒ8µ?ÚVö«? Ì)ÆŸ?Åv?>sEñµ?–CÀéZ¹?9ÞCž0p?*®ó‡w?_áå ?Ê:ýÓ?]ù…@é¼? 圇e5?º0ÁS?Z R!]R?Ø¡éМ?*.M¨¦?G14p?(Íë?Ê÷Ç|j?0ã ‰Û?mŒ¦OCW?§»AúhV?zÅ€ì?ÚooòÃ{?y ‡.t?—ûÒ(µ%?9¥N,c?°xøDÚB?ÔpÉ%’?£è.ú@??«Bd2?×´Õ¯ ?1…é›sc?òu‰!‹Í?†,^öe?ècÏU?+º¥^Û˜?t…aÎ*?ïP|2­=?ÃyNàÔú?™´—º?·¼(l°?¹Æ4ÓK$?à4p“+ˆ?÷­EµXÛ?Ô«Ex¸?YÛîè%,?‚w‹~:?[—`|?É´=q,?‘Ê{]µ”?(l†x?Ïòµ¡(s?…’è|?>ÅRÑ« ?û섎y?Êîp£'?¿¡ø?l?ì)Öðñ?J³ÒÐ…î?¾ê6NÖ? Íð¦‡Â?Nå\ÐR?9‘YÎR?å;¿?ÖS?eŽ–1£í?×VnYük?\mÙ"H?p)V×? ÖPÂÔ?@öÇOå?“xr?द9o?ÝCòk?-+64`?=`Iþ„?XØ`x?„Þý<ÛF?·Ÿ¾Á:p?ѽÁ¿Bè?­ÒQe¸?1?vÐ?[*¥Ð??K˜?2ë‰LD?Fr5×óù?«BAÁi?0§øÈ ? zìø??¼Q”ë¥U?8mþ@?wÚ–J]?û‘›@?Ûq‹b¬? ¿ªÜqè? „p·>V? Þ¹5æ? [2ãyœ? I¶²ù[©? U/ñnD‚? +‰ÞÈÀ?¡x…®®%?ÉŽ¼rbp?àMjá?#Xc¢?«LO‹Eë?\v•ë'?˜M$¾?‰ ÆX¥?䫉 ®?ÏËb÷¡?4ý[Rš?^r‡ét…?,k÷iû? Fe¥„¥? F'Sbû? á’ ynÆ?I;=K«?²ôò^óÙ?G.O?‘ø±ýk ?ßY`£­”?áU z¸?™×#ç? Ö*íGs?S&íÿ?Œ‰g¦Øœ?庣f?ƒkæ•Ú?s3ÿeT?®æÈ?%ö:"f[?Ë_fö?”¢g~æ?j¾…(?&>˜+E?•« #I?‘±ðžª?޹ä³?R€ƒ#Ô?uI-è?»Ú¬g˜¶?E²D.C?T4ÔIð?ÿ9‹ÇÔh?ï®^¼„P?ϳˆ¹²¬?¦ÒãÔ(Û?‹Úmî0h?Œ€¹d!z?™IÓ‰,A?…a…#”?„…‘?8tB“„?ÝÀ¤R~?g Ÿaƒ? ú¶Z›,—?q:§?'Ø.á?ŒCBÅ?2åà Ù©?ÃRé{÷Ï? ²5‰.„·? sl œ&? «=ŸŽÈ´? K+uM.? Ñ¢Çp? ÙP*0—|?|²ä€µ?ŒŸ<:X”?gËmá†ã?ï%¸0=?.¦Ôþ@è?”סÖw?¯ɵ°â? ¶Èµì?%'Ì_ÒÂ?YP9%ö?" yÅ(?¢»_Z¤P?Âϸz:?’Ö[½?"‚Ú29*?Qú)5 ¢?þ2¥N£ì?)À„´½? ô( 0Ï:? \uh§Å? q_V6š?¾jØÚ «?†ç1†Û?£&;&²? ½‘K]®? p³¬yCî?,­|Ú3?5òöñ¤ß?âá²­¼?"¢¶?ÞÄ]dŸy?Š?g|‘?Uí ËZ?nXÙÐ?Ýqã,?—Kê¼u?ˆd=RžL?ž{dñš?¿ ùÀL?ºÍnDû?R…[îƒZ?PõÒ\Ú?©¦5ÕÌn?‚!Ïé ?(±ÐÀG?¬6¶ù´?M+èçÌ?ûï‹¥|*Ëf?QÔØëN?XèI¢?Iƒ « Ð?ƒâT+o?̘Öìw®?OÆ +þ?¢ øRx?á_$žæ?„\yŒŠ? v‚¤ïÌ@? ­)Qm'? kcãý¤­? ǹI‘ìN? ¡L¥wv? ž2Pb? tµÞ€D?ñ ¿&.?óQ FU?'´5;gÒ?U•Zî?Á‡hŠ£Ï?[†]mƒ?÷6Ȳ ?xB`»Z?ôÂgC3D?³_cö X?:Ê)? Œ"$9?ÊþöuDu?Óë¢mù? Ï=û¤­? t:}úä? ©0!?H?vé/~iô?ñÑù„ö‘?&˜aih@?víÓû?ÃÐÀ‚ž?0ܘcœˆ? g5õkf? l³%=? ?^õMà¡? Ú„•9à?@Ö=gó?‚ÉqÅ÷?Á0úÆ+„?(éN7ûI?ê7•™†?-åÊ[ŸO?∮?iÐ)l?0K"z?*rŒ‚i‘?5VàZ?GRUNI?pe³éÅo?ƹaZ³? Q[¦”®Ë? ý›o*Æ`? ¥k¿2d?(kÑ1Ì?€¹&¡»„[³?Μ@ÅÄ?TÝ¡HÃ?wB¯gÄÐ?cè‹Xǹ?ÙÆ?DÓ.éPg?mB%H¬?zÌ6I?‘Qæ~ý?‰psccè?šœ]ö&?ô Š(ù?±"~4ú?Õ¸=ìø?R¹æºà? 0~Ó• ?á$1z5?°áµ©?_•›±ìÏ?ÙA7^_?V•‘¹? Z/¶?ÊGÌ‘Ö`?XÁ_²#?ȉËî?0~eGå?¯,Øü¾Æ?gäž¡®?xC ÃO¢?èc—±} ?žK‘?`þfx™?ì(9è«!?5ÒJÓú?Æ¢”,4†?2ì…?¯ ?;º\`?½}DŽ?°^%Õ×Þ?ƒ°Ô½¤?`ÜÈkçi?*#G£9²?Ëb.4Ö?F@¢~Ñ¢?³×L:\M?>6ÞÖ?ï÷ûžs?Mê–Q46?ôÜæl÷ˆ?éqɨâ?÷HS¤\Ü?ãIùÑ?~s$''?²€çeUZ?…¥þóŒX?Ôl Kf?“5Èæ¼?(ÃÇT?õHkd=T?ˆ›çF??° Tš?y<°RS?ÖÕ­âð?PQ_Ì?$wÖ%G,?3Ë÷î\?:ÌAÜÉÝ?<ÂBáž?6 ¯Ò?#…Ä_{‡?´A?ÙÕTØžg?ªïýN¹?»Et6‚?kš¼*œˆ?q-pA/ƒ?:m¬Þ?§¨­¶?žlšÀõå?X¬áÓ1Ì?×`»‚–?7¬o®Ü?¥‡ŸF¢?EæeÖov?'.À~Ó-?;pŠ\Ye?^sÀ“?e††ž.?1%D–?¼‡Œæõs?Ž]7"?sÌ¥›Ö{?ëTê…?œtÿ8¨e?’±@ê (?ÌÿÄ1É\?C͈Œ˜?é"9ÿáŒ?³»Ç#‡?—¡íé?…è”é?j˜×kW»?0™ÞÉ?¼zq˜6?ùô«˜ÁO?ÚÈGë* ?_l)åÄ?œYoNðä?»þ¬¢ùI?ó›5wÅ?r­iF?OÈVlkx?ŒŒNž?h*¶žÂ?Þ·ÕO4b?Íi™´Ž?ÆRkÆÈ@? w€lý?-µ³Q®?Qm*O†? O•™¸c?xŽR ˆº?Åú•1e†?ˆND²&?Ž Rª¿?Y¤(m?¶žêu?I²HŒ·µ?ÕúÒùCb?nhåâÊ?-¶Œ•?åhÇ®?)xROZ?!Ð%Ö‚•?ξêiÜ?.¥¶gÚ?̓i¶ô?€jóXF? :‚ëü?V9Éoä»?TLJY?†”+6?òYï\n?SíBÚH ? +„™ê;á? æìIJŒæ? d=0a¦? Ž‘E‘¦á? }2EšQï? DIæ¯N? H¸ºÝì? ºCšEë¥? |³:«Ö??Žª¨ŸÆ?³KW%-@?³MBX!¬?MB©ÏÞ? ¬T§âž? @þ? ‡¨ˆ½ ? h*P¹Þš? ÄAy¯Qý? Çü[Ä?€>eJ{?5<óƒ?Q»·¤œ?§hŸ¤À? C÷oÑ? g‘+åô? rȰ‚¡Ÿ?Ö<ðÊu?ô òaÿ¹?b7ð)?‡b±å? Ú¬•j¤? EC|&9?4v4m±?Éò!Û½>?e’+ŽÒ ?”tfaÖú?•½É²«?‹óŒ?Û)Éôƒx?^!¸Æ¹/?,T?ï§Lª?ÖCœ  ?Ì¥òƒ¡?ÏpRMò?¿³‚üT­?`‘¢‡¸?qÖf¬èÔ?Õ¹Û™ .?¤Bü S?%ìŠoa?€Ðœm?û¦À§#ø?Dn±J|? þtFoÏ&? ?ݺ9Ú°? øƒŽ? ‚xÉÎ/ú? Jp¾^b¯?°Þ6b?|Bm‹Ôì?& ËËoê?¢â{™÷é?sŠÜ?Œäü-û±?çŽófî?0J:TÊn?kõ‘ý$ß?ŸÖ(€Ô?ÎÙEìÌU?ö¬at¬? ³ÑBÜ? `Æ Ò?í½Š³}Â?±ÊEÉê¡?Wî·¼Â÷?ÚМïòõ?2|«óy?`$ùÆúþ?íÆ‘ÒY? 4]Ɔ? Ü%:¯f^? îŽ` ? ¥93I´†? n6™½S? !oÝšÞ? q=ü d¬?=fL?@]‘ÊòÒ?îï.Ž)?¤´^¤†3?%€>SùÆ?CfžwT?öO»J¤?_Eʸ?¶µÁM‰?0\ãÇü?ä­¤-tÖ?ËŠ žkÞ?Å|ŠYð6?«Â“?b_°S?ä1è±”ã?H'ûƒ­X?»‹Œ’Œ¼?ṟ`e?”íÆ¹’?)ËÐJö°?Ú‘àp?ç åÿ?ïlPHl?kS¿OkH?uíô¨s? #k×:?‡‘Ú±gø?òo„Íz(?Qà•Õ>?~ÀO<›¼?ľÊÚ¡¢?JUlÙ\?é37:a?z¬)ÊbÈ?㟵·2X?ë”"§?ÜŸz‘Ž?ñg»j·?±{TÃAú?jkÝqD?*8øòPÈ?ø A¿˜•?Ô9É ?»ÓÅ¢—?®_ÿ¶¶?®{VÎûð?¼èÓ¸?˱$·£?ÃpðOV?„KИ?ý4˜:@?9e©¨Èi?_EÔ›? Ií"h?#m< ›B?óøV¾?ÉÄ-¤Z?#Ù]Rúü?3~’È?6Vaôâ?¾WÉ."?G#:’,Ü?ÌP¥{?²?l/¢‘Þ½?:™¡í€??gn‹˜1?xˆKõ "?߉8|¾?nk#5Ò*?#“ÅŽ*È?ÿ7k¨m?ü„ö¾? ã¡\µ?ïa5?ÏS&¬§;?<!%a¼?8E­dT?ýÓ8z^?÷£0úÃd?¢°Rج?%­Aç^˜?S-ë%?a"‹bV?Ÿ=åƒÒž?<(p"&°? b²=Gw8?CF¦I=?†Ü‚£#À?·ÑN™ ?Ú’çâì?¿ü“ˆ ?KÛ·r°?ÕcH,;?¥¦‡_ø?£Æí« Á?œ¨íFµÏ?XÕßþƒ ?²¦ˆ‰'0?¤”%ÌÆ?“¾àón? ©­¼`*s? "{a'?#£M{?x(upÙ?@(÷+?Q|fÕ§?éÀ…³—Ø? „u>°>? ©­pá/X? RÝi? æqò l? cÅâMÆ ? ºe<÷ß? *w ä7? L`ˆQU? >C~‚i ?  Ÿ`™u? ½œÂ;ò? wá7–œ? U€·Œz? qã»e˜? Ì)rËžÜ?  Š? óQØbäÕ?áú9Ë—&?Ī5%iZ?Ír0¼R?\»ªJæ?‘Q,Ù€?úcìðî?£fùwÌ?3|íFš„?›î=S?€‡Uã4?¯/}9¥?Rç¥Õ? ¡–¶{î? «°µ[®? Y†îp ?”¬âÂj?m0dL…?ö›®·ø?D”À;ž?—‰È^Ô?Ç–Œžã?#S[Zè ?Oþ\€ì? X¤rM´? 75:ï\·? Ü×ãA|? D;ªkÁÔ?~t½WðÍ?³òh ¢2?W7b&@?ï«Û‰s?XÞÔhW?e§k"Ég?ýœòg¹?謖V?âSL',º?½F%ôðM?pÒØ_P?Ëì²b?ê“x¬Í? H³y? y±W? /&Óiç*?Epà|Š?ÜqÒÄ?ÌMŽªŽ?’¨®3<Ê?3rÃÛp—?œÛ}ç \?Àu`?˜•êÇG4?2,¯ÛB?¦‚,øçò?–ÞãP‰?¨+I&†O?rª¼ ŽÅ?€+e÷ý?†…¸ê¬?ìð0d?LNµQuÅ?>Pö®t+?ÛŠxKÚ ?3eBPK˜?å~rÜ? «•¨”˜? &»”$¢¤? ‘Àòÿÿò?áà´ø.É?iL½òl?„¦®ë)p?œ<&j?—è^?iã¼ŒŠ°?¶3šÈ?UØcÚ‚{?JÿG⯮?Ývsz,?üCù}ª?:]MÎÃK?jw}ÍÆ?æ¦GniE?ÎŒ{æ:•? i;Ps?¾ „ @>?{ë•9sš?3á= ?Ì^S’8â?;î™ó’)?Û+yÈt?š'YÌe?ªÞ!™Ï?nm…b³ù?A· §x ? ]^æ?ûÖ w\?ò|ŒÍ· ?FÂÁF—?HÏÝC4?ºä^v§?S ²¯‚u?îVYp´?[îKþª?sG(﹯?+[¬õd? ôÈ:Y¥? $ztc±?—*à6Qž?dç=àF½?j^¼yÅ{?„Íẕs?†‰±ik0?K”0ðš¡?ÈÔ?(g Xb?_žgV¢?éáÏÏP?âJ]ñ»v?Z8¸=(?3&té€?+°w€d†?÷Hdì>â?Z³?šËR?@õf¥?¿‹‘—~Ç? t¦ù‚™?j8Ø% ?BrÓ)Ã?$Œ×¿¡? *VØù+?g‚ÄÒ®Ö?LúTE »?!÷P?½›a´ÝÕ? ,te‰?‘ 8?µYwbX?:qOh z?µµÓºI?D+ Xo?ôY$›Ki?Ū¹’ï?®Ùe`5]?¦ýª)qr?©µZ Íß?±§¯B$?°p@XV†?Œ BÝ-)?),sXÏ?}hí7?›&«´¢Þ?­T:ÜU’?åßf†Œ³?g஥t?7eØt.2?A&#ùWý?^e‘úd+?iòñ†€t?M>w1[”?ÏïÎÐ?¦Ë¶ÊJê?EgÕ{R?ó©Â ?¦Äf3®6?²¥³+=? 6ûf¼?jv;þ—Å?ô‰‰Qš?¯Ù«àÈZ?¢ |ú?Æÿuà­Q?vðë?8Üñ¡ðÈ?'ß–ô»À?© –¶¹s?¦{‡«8²?&•Ñ3éL?Jk;¦4È?GóqzÑ?[à€²!ø?»è³tj?‰¦daô¨?ÍÒ¥údƒ?{Òa;Ô“?xÿÑL©?£€ß\?Ö’†é?îÓžç ?ÐlãJ^˜?k g›ôf?ºRj×Õ?¿œ¥òý?}GgÔí?ôF¦¤úx?&Ñ ÍA¶?mÌ82?à­õ¤?¾Œœú?MYD¶–t?BQó6¿?0ÂÍ#?2Á%ß:?Þ"Œ ? ˜®ëå?ÕÞð :‰?U Žø9Þ?jÝü8¾?Ø1ûh? u„w°Ûv? 6„èÃú?p¯1caÐ?i…ìD?@]‘@š/?èªï)“¬? E#x9? }vé? œ/¡ÏÎ? ï–…r%? ÊÖVO ú? |‘Û¿Ä4? éó×§? †«3.Œ? 1ïÉd? €$²_š? M´'X?¶ÕQ° ?J(è¥õ?FhøëD?$¢2»Ë–?Ô1µSú²?dIV*ë9?ìšø †?n»S{È?ÈÂj8J?ʼn١Nî?>sýùƒ’?65°/yŽ?ØiÊLt?d$uiN?&bs[¶N? …ä—ÃJ? ÐêE%´œ? Q?È¿t? v X¡î.? ì4¤Zɯ? KäV†`‚? GÈu«â? Ü»!0 ? é*×Þñ? <àÄŒ4? ŸzÏü ?ãB%zŠz?í=êñõâ?\öΗú?®'”H}W?ø4+ŒL?D>\~oL?Æ-uÚ ?Ï*0i‰¢?ø8ød{¨? ­(YÙ2?uüš~¿?ê‰O;??÷ѺÑ?ôú`e¤4?›à Z? Âá ¢¨?U#•A”i?B(µ÷Ð?ƒ‡´U? "ò0ô!? Rü~Ï5ú? u8/6? oµå¾? LÛ'ñ3 ?0Êù¾Ë?AÑ@Um?œÁbËM?Ô)Åb?ŽÔ›öò¿?±ÿ?³äõ«IØ?¨ê“ŧ?;VuœôÇ?‹ÎÉÁG?yRÎ÷¶¶? ªëÇj€Î? ºŠPˆíµ?c^63Øž?•à¨fªp?4¿¡BÆ?yì^¨£?Ÿî*8:¨? aŒo?uÑ%¬ß?"påh¾?]1eúkà?D7·NZ´? þ cEÞŸ? ˆ3‡0? çW,Ì´¨?1 `ž…°?‹'kM¹?$ÀÚ ¡?+„¨ ~?À€­ê‹“?ë•B†?“Z×$Ck?ä²øÖ?x„ÒÆ¥ï?IæL-ÄÚ?ížp2?€(.n¹? 1âJšbð? /ÓµNR? J±"õ+? L]ý=¬®?EL…-`Â?§vÚ´?œåXÝtè?l Ã{?ÿÄgle?G†Þúÿ?<ƒ àG?ä;°‘¸?R¾s÷ê?£xEû,?û—õDËŽ?} Ø50?A¤ºÎâw?O½³tl^?”øººž?éµ(ô?ÞlPØç?÷Œü?œ«»KP?ÛƒMl?KçÅy~Ý? ý6£Ÿ@? WçKýÅ? •þ³Mß? ­¨cr:e?[­¯XU¶?£!ƒùÔ?‘C| è?cœœÉ@?Xz×`?—'FŽB?å!ßxÓ?ì˜EYyŠ?¤ñ£;´%?ô`Þ?sœ]LÌh?åÍ6óÃá?¤wÞz“«?ÉÝ”&®?G×Ödö?÷¶Cøã?¥Ûƒ›† ?-ybÿ?ù ùŽî?ªoÃîi?µùiÇp?²Ñ‘GE×?¬½B¾M?«¤wI“r?º <³¦?Û=»Hõæ? £„ò|?FoÑ%ß}?ˆÀD8ÿ¢?Øðr¦??e^‡[?ºKN´?54{Íб?Œø„Ž×û? «V«å´?f׳½A?õüE èI?{ÝOÿ™Ñ?'5Jñà?ðM×’Ð?1@A¶³?dGHÖå?w¨ƒáû?BWŒYÎ?´:»D² ?áüM‰|?wK†?Y —Õ*F?$›®&ñ?{=¹(7?A7b ×?0ëÈ;?ó™†Ì–?GãŠþ8?>Wßö|?w =g^J?®|V¬¨§?«îP ?ºöB. ?ìšloÈö?”>0ÃÍÏ?ŽšH~¨?©`Æ‘÷â?°+"&ÞÎ?v4… ö?ÛD &‹¾?ÓÑÆz?l¾²•î?Åþn4?^ûy° ?o¨M@?ûM‘†e«?±Ç Æ•?†ámy°ž?n‹D=?bOþÃúT?[Àî(Ø?KåhËìE?kzØ|?«§Ï2?ü8Vµ°ò?!ÿÙtZ?E7&7‘?–s-à?/p÷»)s?¿’îYp?®&mHÚ?/uD¾ï?/ > œ`? óÝøR?Äõ†ð¤D?j—5dJì? 7†|T?R6,¦?zÌ¢ü´?Á:1È?^‰4NqÂ? Fƒ™df?¤?’ô(‘?~¯œvqÏ?žµ5(—?øqŽ¢?i5+Æ?º*hJ˜?°ðS (?"iošº?ô2µ?_Ê+$°ð?iÜÀ_ß?Ybnú(?iCU¡|?ËŒ¹-Ê_? 'Þ8ò?ðZèšjÛ?¯˜Á==k?À}·Ìk,?ý|£`ce?Aö!Ž#?q8k€T·?yÛÒ3¯Ñ?Q½ÛJq?ïrã¤:J?Cm™¶ï?: ªýÖ?¯Äy ?ÙYÄ“ƒc?Šú¬ µ?ôÍQá_ü?Ax…ƒÄì?£]æV‹Ç?J¥ÐxÂú?W‚^¹3„?Î…ÂGu?–DçlCl?€˜b >?]mM O"? Ùìgð?y!­Ép?h@ÿÕ}\? ¤YÌÖÝ€? ã]ν? bê3\|S? Yýl?íƒ®? *`[Îyã? ðTÆö~ ? öh³ÖÝ.? ۪߿¢”? K•ö«á? $ë\µÞt? Šô$K’? оGÑ*ò? L,¦ÀK¥? +îŠô? j‡””h? æUUùQ? wíUu? úÔ=Œé«? QËDÞ¨Š? `?H,g ? FèÔ? ‡8…·ÒP? ÓgQ„TÇ? #)6ŽLó? Í,Æë@? ËíÕÌÛ?Ƙ¯î4?…?¢Ù\DÐ?Ñ1SÈ™? Ì!}I†? jäZOy°? ÂÆ6L5-? #Ôú-ì? Ž.2‰UÁ? ÷è׫à? Lücýù? }TFÛM? ¾‘z¼? jm"ÅŒ? a=3/Y? ŸÕã¶ã? ZêLa? œà»Îõ]?<¨ª;ƒj?r{V¢Í‚?!ÉN–?šã!ÀĘ?êqN1Ì?)Ÿ#?a‡.Ñ?êP¶wY?e7€Å3?ë’‡ÁX?:ñ‘ŠR?ôö’§)? ¦ŸÄ‰Qª? ¡;TfÞ? 2Q<gû? ‡xs}%? ¢ƒŠ‚ï(? OíBRlº? +ù 'f? Á»ó”+Š?jÂÀõPn?û\kýwÛ? ÿC¨~æÂ? EgêiÕ? —G"ïø¶? ÆaNtŠ6?¸Ä‹H÷?kþÐà>B?ù(eSrB?@85ñáæ?‹Ò¼3¤?Ý•¥ãº?)þ-´?c®SGÆ?¾5ö?²»€î?ÛrP³?ÿà~e¡ ?n„© ”?Ô}ìb§?`Èò„?¾Ø¦Öçé?ûâ¶æô?á{Ö1Ú? Ó7œþn8? àèAˆ ? ëSÆ]? ã 9â? Õ7À`ƒÝ?ݘŠû÷ä?œ)>‚?v 8LZ?ôfò+lü?vÞQa¶?÷u×/T?š¶OW4? ž§Ï.?Ioà¡d?­'¤Inç? ¤ÿv¢æ? ×])40? á f=Ÿ®?ãþ¾?W•FnÙð?Á›åY? 8kíhB?<£u[f?F'±h ?(¦}]Ú?Á8|ÈM?6Ø¿Å?‹PÝþ? ‰«¡{yf? è=Õu·g? B°úŽ}?³<õç|@?W %6ââ?MFÍ` ê?¬DÊžèæ?„A'/ÈÌ?Ô©0€¦n?†‹j?nÞ+ ¡?[ÞÖdéÀ? (D™ð? Ë¢é\¼? \uP V? &j¡? ó<Ùñ-Ä? F6@¯º?99Íü?ˆ¹$i?žá`43¬?¢ÒìëÚ3?r©Å°6.?òùeÛ+-?·àbÕÞ?ÙvÅLJ3?Q›­)HÊ?˜Ð=ü<.?Ï×dZõü?¤R¤IX?‘Öþ_-À?P «)˜?UIçC¨?ŒWª)TZ?ÍFÌ)ܦ?ë‚Á„?Æ`Ã;ãü?T}÷¦0?MHyyÊ? Ljß/{? {ò|Ô9§? Ælë¶;Ø? ÙK3—"? ªeloJª? û·Ø£Þ?xÏÔo¸?qdˆZ9K? îâ¶4é?‘<ä·t?ün?GŸ4$Ä?f’,¢,)?O†L”2?Ôy–\?³ !TJØ?}1Û³ø±?’×3§s?ɉOìP?¸bB`i?{«:-úœ?ÜK7š?a^Õ@ܶ?c!A3k9?4´à©V›?ùþž Ê?Ìúoµ”?ÂVLt†ð?â|9G›?,¬õ‘ o?™ûGðûÿ? HBÓ9?–~ÞÛ±–?àÆõM-?gm.ÍUY?Ĩé1Nj?$‘Ø×—?˜ÏÂ&?Å×~#¯!?ÚØþz?¶":k~?e“VlCé? ¸½LÒŠ?Ï1”o’?Æ¿JÇoŽ?ìÃ)ÏñÚ? …¥TUž?1×*jèz?õí û¬?Z'Fé½\?pþ«Õš.?p»áA~®?£¼:ŠMÍ?L[c†?‡é"Jƒ=?=« ^íù?%•ØGô?äR™½ ?0¹²^Ÿª?ñeX–­?D@®÷‰²?oölZ„ ?ÆÛ^ÚÄ/?‰a?‚œ?ÒÐK?–ÀF1à?¯Ó€K 4?ézçÚ„7?´Öâš­?ðc$Æï ?j?`ß?jÒºâ«?h².‡á?¤©õ#æÆ? Q4!?œÄà£|š?NYáf?ž1c?ìaŒØÎ?Ñfj1þ$?¶¶'Æ?‚(ù šÊ?7±]Îi?…‰œæ}?ÎrsŠ? þ²ùÁÖ?£™°éÔF?g6­ÃQ?aÛ1Žê÷?vš›séÉ?…¥Eù¦¾?yŸAµ?K‚RÊA:?ÿZYé?žƒ/† ˜?4”eBï~?¡x*6R{? É ?#—?Èñ2¤¿è?zCM¾?ÉR2ŠÑ‚?™Õ,ª?£R¢+b¨?ún³cL?…pêÀ ?œŠ¥¢?dþÃ?Û?=Œ}µ@ ?z;„þ†?3>iCÄ?F/Wb°?.¯Fdn?w¾_–‡?'È¿÷MS?˜ø¼ÉÎW?¯°óöy?áÉ¢í¦¾?°®ÏâÁ?̧Âw†“?Ôâ•<¬?UžR™»ž?Œÿ³ºyñ?®u½ÐÚ?µšôÒ?“ÅÈ䆩?*Ø&ô¥?R%°½šš?îX™ÈÎq?÷cG*”ò?€ža?ùñ?²xŸ©ß¨?Âh?u¿4?韖c.«?Z±)ê9?66¯un’?‚ÐJ·E·?,ÂX¦,Ï? ÙÅà?üHº•î?Ö*¸!¸Æ?‰JC#^X? –ØJÆ?ëì‚ò? É$DØ? •Ÿá>éù? ¢Äpƒç? 5è—Š”? õ™’}òc? PžJ 5Ý? ô¯®T? —#L'pÀ? ébÂ÷s? Øl”H¯v? áQê“8? 4A‰òv? tH˜X4? ÒòñEûÂ? TzªÐ®—?ê?þO.?zëª&j/?öŽÜä>ü?h8åÆU?ÿ$yࢣ?þ†Ãz2Î?¡gL!^?øon©d]? Ú–ˆl? ó¥M+=R?éö¢Îi?AóÅ‘Ny?Ý8¬Ýˆ»?RnNê¢ø?¬ž s¯Ð?釬œ¿¾?ùÓâ 4Ì?ËñÆ—âÈ?XjÄÊ]?¦ã >Ù?•ðcÌÞ8? ¹ç/u`Ø? é°Õt!? K”èbùÃ?ÿ9¹Ì=?YŒyàm?‹ŠÀºâ?b’Õò‰U?E—5¶? +ë—Õ?º¥êΙb? Š´³p0? [÷•H|/? ‘…Bv³? ·ð ¶–? LžÞ &O? ö=ÌçB1? ÞGz¾Î?(;Ï“•h?pï4!-?{Œ0;¡\?—þÈÕ_Ù?ž…J£³?dNá•j?Ë%Ó«R?Åøn¹œA?^%²ºO?­½M^xâ?×Ðtŧ?ÿ¡œLïN?Du9¤ªO?¾zq§Õ?zÌÔ ¼d?uÃÓ£[æ?˜š‰øFK?¾ýd+%ö?ÃÈãÄ•á?Žz‹Ô t?ŽÆòè?ï@žø°? ‹,ä~¸? X¸`~5m?  ]´~ã¤? ˆ`âf¼§? ïÚâ–§? ßÉ5ÝD? ÕØ Â[?·ý•Æß?yëÈfVt?ë`T‚?g |'ã?³QI»ë«?í12;¢? ÀÝAÎ}? â/rç?r¥ûå?92  !?¬8¤¹Á?m5blur?XO+c?.DÎÉë?±e3¡¶Û?Ä8?¬&?t)E?Æ?íù(œ‡´?fáƒ-ñâ? *°9ê?ñ]Ie/‘?%®¯ù€V?¡bRT1?Qp iƒ?„W°µ°?×Qfî9À?wQ1•È´?òýf3m?OøáAX>?žH×jÉ?ãóU¾h?EY ©?5ÄjçÁ€?(¯Q`šû?÷N|ÀÒÑ?µ×¥¯û?€-sòU}?j›ALŸl?t¿ÐÚ0½?‡3À¿Î?z—§EÿÛ?)3˜ÐŠÀ?€À¬ñ®Ì?cÁ®åÚ?‰× )iU?´Fzb?Q©#ÃÏ?{û¾m~?-èà‹¸W?%Ñã?Ë™¼ž.?vŒ¦ƒ?Ï˵ /­?ÙzšÔ?E¶Öh³?ŸÇDø 6?kAq-¤?ÀÍñG°?‘g=ÝtÔ?´rT,?÷ÉúÁ“Z?)-ÇG`Ó?¡ÓE?§H¡d©¾?¸©ª ?Q†¬äÛ?“¥I é^?¯æ•öÏæ?ÔB¦¬?…^HL#?…Éf\Þ? ¾ ô.Ï?¬~ÆèX¦?c$ª·/"?1ãP&¡»? «ô{p?ßbàiÕî?¹?è_?OKaÚ?š íNÌD?)êsþÂñ?êw¤Ù’¥?â>Ô—Ú>?ÿUäk´8?#ùA¦·?2ÞµðS²?!ËçUÖ¦?îvfçÓ?œvߘ P?/1£%u„?­98™gh?&žb‡Ó?kDaý?ò‚.m/.?‡Ž<úÏ?ï]¹??ß¾Jô÷?*šJÇ:?¥o±ÍÆ?N½äÛ?Ü.&"L? œgº‘ë? Ar]Ó¢?ŠŽ5Ó?ÛAª¯-ë?Å~縛ª?‰úÀŠçI?f¢XpW+?‹š„¼?œÂåh?£ ×ft?…$FïÐ?hì"9?‚S›ì­k?·¯C7ÁR?í \?xOYþ"?>]öÜ?^LÓEÒa?fc·©¡H?+€Púý?zR~žKç?-W}W˜?=Dip¼?Âû“n}?í"Û¦??ôëyÑk?`á053?m²t}ŠÐ?-¤ý?Xî FÙ2?åFý?·ò&œãñ?¯¤IÜðì?¬O­<Þ•?–¦ÃÞ €?cÈ}áù?0q‹2ž?a¯œ7á?Ž"Û: ¬? Ìk·õ®B? <£'áÿ·? ø–Ð>­?  ‘j? U –[uz? ®\IH†? ÒtÝñ? •QÍÀÄ? úþ¨ÿ¨±? 7lgñ=á? –³­`? UœvN? ˆh®VòP? m Ö? á“{¦œ³? £¦ˆ ?& ¨m×?;tªå€? Ì.HFœõ? è)R+“L? ÃîãÿEO? ¢Á òœ? ÁÇ£JE³? I7Ø“mª? LüVB„? Ì¢Þ¿,? ¬³½z ˜? ¼p¯ÖŸ´? ¼ÃÀ†B? zJª‹Ó? âWÎÜ*^?ð°ö? õ=Ž:? Ù>´`ˆ? Áˆìñ? ·¼Ï“ö©? À6ý? Úš°÷º%?E Q|À?(G=¸Èâ?JÛÍ)¯ã?bM ©?fh¤øó=?Kýl…ÕÎ?h80u? ©Ã‘ (? ÷å*ª¥? ©ót?? KgnY k? þ×䉂? «øÄcI? ?Ûª³9–? µ%“‘¤Ý? ±ÕSi? ~Üq? q[‰d?èÊ0Â? /¡X¬? ðOÞòˆJ?  Œ{º†? !ÑQ7 ? ÏS‘¬D? ŸJ¦šzÎ? !¶21w? µ°gy™? äsv(Æ?7¦õ ?¾Ô7it?5BZà?lœrP”?Àß„®º?’¦Ëåfù?Â7GÃÅÕ? g®¤É½?BÍ‚Ò?|?K«4Ê?µóÚ¿Æ×?ððÛ¤É?,~<š?Yx¸?_ðLÐül?(øîõO?±°£'g?œÔ»œ?ÊüÇ m$? ¡ÛŒ3 ? »­ü‚—ø? Û©ä? ‘Ð']Â? 6oÔHh´? ¡È]ˆ? ðűìíø? ð&?1ˆ®? Ým1=ÿK? —~®4²Æ? PIt? o0[0…?ãî™J¥Ö?½5£Õx? 4xa´N? V^¢¿‹º? þAïD1Ž? ã/fIº·?¹×Gº¾v?©ÕÜE?6?SÈj74ß?áEÈ ?TnöHo?£`Rm?¶}dO¶?x¸¡K?ášU>Y?ý”qÝhÅ?ÕЕwÍJ?  ÐZÔ™Ã? §Ž$~^? #@e_ï? 0ö?Ó½?ÍÓ“;b?Þú8T8a? =ñ˜i%é? Ç´¸öA? dTÓ kš? mÉ¡„/? §N=ê¬? Bntõ¯? ÔuìêÈ? _|Ò ? íÑ)+F?–”ƒ^?|TiBÖ„?`X„‘?9Èž©þý?@×]2¦Þ?W×1˜_¿?S?Î œé?˜g6ªi?R9¤ÜØ?,žôßi?¤¾@—z–?ÚÂÜÂ{’?ö‘U”?e-uò?e¹¶¢j°?繉ÐÚ?¦ž! ÂÉ?™r] } ?©"×V?¶°µWŽ9?¥Üå =?fÝç•÷I?óŠw]ß?Ø›ÁÃ? ¬s‚ìdê? §WNð7¸? úïèx>? »3¼ó«? ܼnP¨ã? 4Öm©È? –§ýDq? ë¾×••Ô? :Å-íK? šR1L˜?Wn¼}ì?º´ ÷P?b[j©Å?ü)ŠWЇ?E–ô°\?›Kö 9n?¾ÿ ÿ[?ç‹Víž?ï$$.ŠÆ?zeP¥"?ê¥ì€+?YŃ€›í?<.=þçd?©c_¾(?ÙÒF÷ß?ŽÎÜ?ƒš°:?Sé~`ºê?EÁø¹?'œ÷C@? ¡OºÛL? {—Ü¢l? P?$ýü?ßÄÇç6?~Ã>Ó¶à?ëϲÆ?4‰$Þ¾ë?l‘ÅÑÜ?›Z.½}?»=à"z?Á¶:7|?¦¹Ú]g¦?nÕ™ú,ï?)Üdˆ)7?é¥ O?µ2Zf‡?„ŸXUQZ??æ%‰ ?ÊÀ·‡gš?6džê?5‡”Y±„?GšëØ?‹@ñ€µ ?9óa Un?p&_é“?-Y†ä?õËd—é?ªPp0w#?í¹VOÄ?¥[5Ò)?ð£Q§ó?!…»Ô?v¾¤/è`?Em¶4?œ#SQ?j íüÒ?‡Ð]Í>?ÆÙµQ€?ùÛE*ÚÝ?ö,ÖÚŠ?•\EÚeæ?½Ué«›¦?kç=š?ºñ¼n‹j?ר`êÈÂ?ïq]6Yf?"PÇ|?gp®ZÐ0?Ë * ¦?G£«µD¬?âäKãè? ›£f`‹?wåjÙå?S¬|­ ?V²¨`?Ò“Q ù?…Áòøå?TbŠA?R[Ùsž?|…çˆ%Œ?»¬dmF8?ñ3¿;3?1«j>?úäƒë ?ÊOHo?u»'Œ“¦?ùÎGqçB?Y‰W:*?©“þM`3?IWðþa?v… ª6s?ŸK|EF?``ÌÜ·Ü?jDg¡ò?×whµ‚…?€q4,Ýž?,«rkP?˜<šËæ?¦g#ù?½#Ö@?E\ûŸX?>ñ¸æ?è”õ÷?O¾%]-?iæ+a•u?¦"J%°|?TÂѧ+?wpAF ó?âÄëÙ?ÛÔÚÚ?â߈­sý?÷,—½Ç?ÃÁW'P?£ŒV;¬?"2±ë¨?BU­,?Zh è"j?8–D+f?¢á% ý?q”E«:\?ŸÇºã6?J0í< T? $p£ø1?ÔÚš%€?õ~h6?‡¼E‘?Ä?C‚¤…l?V͆ëµ?ÂòÙ?z†È˜#œ?hÈŠ&?q~‚C?z¼tA9a?sSŸðTH?U`1S$þ?$â-z¿:?Õö;€?cƒ?n¯f?½skÝ?ÍKQkn:?Á2å[ñ?ÙÆjÕ?ú” K? ƒèwoŽë? ÄÙ@§9? Jþ_£b? üHHôt? ¨LsÛ˜L? zv¾? Û¢oÄ? ¥"õ‹¨? çñrðì? *™™—Å? Á‘ºŽát? é×´š/? ´x9о*? F“îŠ? å2ƒå?(Šý5wG?ø|KMFÒ?¹â9KcÓ?jDozÑÒ?ÿØyˆg?d¡Y,?xc¾b]:?$˜$›’?aµÃû]¨?EÿÔ—M²?÷„! ­? pi¶…¹? Z•2,õ¤? û– »hT? köÏ ›9? ”Àåò°{? <™ûƒp-? ÷¬ä¾J? ùGªìˆî? ­Æ1¾=? 1¡Q¨’ÿ? Ìnî÷Ç? ßwÖ)0?/žë§C¨?£Ã¢¶[?kñ3MŠ?£PfN_”?Aïዸõ?àé©•;?´€€±9X?±ŽN€Ò?¹•ÿ5õü?¡Ÿ ìbR??{( *Ä?vÌ$ÍIÏ?@úd’?®¥ò¯S?à˜Vó<ƒ?þ1¾žô?*釫á9?€Z¾{I¾? £{ ½P?Ìë‡ZY?··ú“<ì?µÝ”/M>?®8ÕŒF?Iïæ?Ko¸X3?Ùµq¥?ú£à˜Ñü?³£9¤ ? SM)'–? Àà[<3¼? eà£ü;±? 1쯌P? ­9Ü„? ÞƒÎTg? ²p§Aö|? Ÿ„½QO? Âö¹ òv? +Ö\¾öª? ÓÇ–Ëžä? ¥\‰ô \?Œ¦Â7Ö?‹„Cô?Û?`9yªº¨?,¿7AM?7ûHêè§?qC¯îŸ?¤Ôƒ"?‰?«¢µú?åQ$fž¼?¥u—£ ?çW:Ùª?é+!3ºú?óu|Þæ?@=æ+ì³?÷M]9À?(„KÞÁ?ÎUÀ!=?Ï $Òú?~MàBÄ?6?gÅ?C°…ùlˆ??—»e?—‘…890?è4C™Sò?/Œèì?A n?alHJŸh?pÏÌJÛk?^4«,G?¬Cã: ?¹¹Q Š?9‰ÜZ?°·pfÇÊ?&“ˆ?—IOF‚˜?øØæ­ã?D%;F5?ÝÄ ET?Åæ~¹é[??¾ïùŽ?<ã_¨?aî÷1Ã? 0÷{??ÚÏàÆ¾ƒ?€ \¨b?·;Ui?g׺ÙyÈ?°Ãf ™?Ú< zCD?6ËÎoI˜?^ÔÉa?Qg÷2E›?ͳÑw?%TP«?\/\50Þ?§½xñÚ?—qÑÒ?L6¾Áì×?—ݬFÎ?X³OÙVq?º{J‹ö?ݾ›s÷û?îŽèÛz? •)AÅ?<Йš?‰V=³;Ô?óÿ\MÌ?„Æßlì—?@1¯“)?ù)ì–?Ȭw§?ê×©Ó ¬?Å'‹L4Ý?§<…ƒ4Ø?¨ôÉg?Öÿ@”3¤?'XÝ?ï?Iü"—`?ÃBÛ@«â?äÕƒa¼À?âA–¿N?» Ä3=~?g,²jÖ—?Ûp°›?3Ÿß*Š?<Ùdƒa?{¹*ús?‡+ºÜ¨?.·÷ Ñ ?ßü ˆ—?\[š¢5?Ò)¥")?be¬N²?GÞ{¢jã?£KQœ?z îª?¾ÇØè‚?X”޳rB?(KÝšbK? >ý‘Fƒ?î&*L—Û?ÃBÇÉ?¶?˜Ž2£k?ƒFHÿi ?‹¯½wP?›€–2€?~òýÇq¡?û‹åVpƒ?ëùºt;µ?NÔÞ2ƒ?Að¯·D?ï¾Äñ¼?q›ío?;Yõm?±@Dzã?zFÝ[qÜ?z Ø\'?½ádl ?J$±q?Dï/ ?I¹&3g?y”ÓÞ?$Dsîd?%ßñÍÿ?ŽM?ò1û?q?Š-8?¨9æT?ÖJǰ?5ÉÿZ…?gÚ%Ç?&bÑ¥?#³š7ûF?¦+vËÈ?–ånù· ?ì´÷5Œ?9µ³¸€? ¬`ŠÊ? bRÛ²G=? _›°*à? ’ö“MÕG? ÝáZ?Ë5R?%¸MYú–? æG.? ]À}hϺ? ¯H6ø~G? úо¬¸? ¿¼3ã‘? àK¦ÊÁ1? Z(.Œ´? ˆbÀÎÐÓ?Çõ™ýò×?ö?isg2?gµ:B?“ªál‹Œ?„äæ&£?0b9Îu? Ùe«?å³–X6Ú?¢yåä[?t[¼Æ¼?5àò¿³I?Ë9—ጞ?Þó‰U¸?ˆ¾¸Q?U>dX? ^>@­b(? 6e¼}®? ýÖÏfÕ›? ÆFï'? eCÆšï? ‡÷«N…X? ͘XWøÝ? å‡Tþ}«?£”_¥¢?Yáª[´?+U³u¤?ê™ïŸ?ôÖ‰m¥?DII{\ý?•¹!„—f?üò0­ ?w¡çhË?ëÓ†¿t?×›ãÓß?ÄÇkéºÆ?¸å¦µŽ? ÐL*v?ì0ú?PÌÚ}ú:?"稷¨? tv±ø™?å ï¾ÿå?Ø^7PÔ?Nn0³7?­“=“¡l?=ùê0?ú³“ÀàV?ØÏ±½?à £– ?¥õeú¦?uùj§C?2âp:„6?ɶñø‹`?,[óšŽ?žzÊž?$å¹/Ê? »ý±þ$? T|Á^¬? ÛÁB½ˆ? HlÿáëV? ¥‘ ]Às? ­øÜ%Ç? »/†B[6? ºk5ç"? i|0Ɇ? ɰÒI2/? ¸tøÈ…? Õ 6Û‹ö?"¨» éÒ?\.Æ8·?YœÌY8?‹ÜÄ÷ª†?Ú‘>-žS?ޱ¸E0?èY³£Q?1c± N?Þ‰Ñ~Ç?É25 ?¯PÎ[?ûÞVé”~?5÷õ¥…œ?ÙØ­Ý9Ú?ý Z×Â? Dn&v\?®†›ïí?’d?bKág°?¤Ú|Aä? ÓÊ7sî?J%š Æ?©v¶µ’I?Ù_é§Þ?õçŸÙv¨? ¨4˜–?b8þu?üê“yRv?«m\½‰x?N«&•‹?X¥7•û?wÜ–'ŸO?’‰1V¢K?¸ÍèSëØ?òÖ°ÅDë?Bµ&ªí?«&¤ÀÜU?6 ùê?ö‘-8Æ#?œ«†îd?dHÝ…kð? ¨Vñ„?Å*"H«?P¼®ïTˆ?sZ±½Í?œ×‰Ò,?]ëÌy¬?†÷Ä[?á^MÔZ±?¥Öçœ?è©B¶€?œ©Q_t?¢ZB”?Ôrîêz?  9qB?$0ï^Ô£?ð0]íÅ$?N7Ÿiû?/d1Gç˜? ä8>dh?Ç­i©Ïh?Ð8kà?ÝÃ÷»(?÷1¦:?K”jöMú?»ˆÂ?Z´Ÿî¬>?*TN+?½'e’ ? ¹*p?®t?4æ€ÃÀ?’­7L—?9×MÛ€ž?€ykð?ßu7¥Ç—??;ó?ˆ·‡š¾?³±ï\1´?¿_!³N“?¥›¥‹Sb?TOÍqذ?¸–Œ½Ì?Ñÿ¶ùü[?Ès)?ßU £FÇ?c= û}?‡„ôܹX?Vpî‡|6?°À^Ï\R?YÅév£Z?÷BB6?qvKÿdÀ?VïÕö?¨ë ä;?ðäwq,?áy¶\r?QàhœÕÃ?©†p±W]?6NfÝÙ?1„æ>?²%n)?³vûŸÇø?*3Ša–?½– sÇ?zñ:/ë?2rÕÁê?ÓÞ´Ô¼?c|½K?÷·,ék¥?«ð¨õÌ?‹B[*Â?ù'Þ?Y®#¬å{?âR¥˜b?ú£B)?¢ƒ“Þ+þ?÷-±½áL?{r¯òÞ?¹Pi¢.? ;]?Øç?îo–%å?ÊAß_[?´É È?ÇÔ?EáÉ?bGé¥?ZtCà}?ùö¿0”?å~À8P?ùmÄaQ?#M•+zÜ?aŽü²?¸wÀÈ?È3î?E­^Ôš­?qNM° ?QЛ§?§a–‹^Z?¼›9ÍH?Έ1a¬¡?ÑcPœ?·0Ã#(¤?yÆ@¤Z? – B”?y+/Å­?¿ƒž•º?.ˆ3ìe? Ó蔘Ê? ¯Õm½§? ³q Kê„? ÂA^Ð7Ò? º<Øû²y? †z ÇÂ? /}žSÉÅ? ÚWJ¬œ? ºØëÙŸ^? ûí3h9? ­’ÌÂ5d?»^zø,2?îßæ©d?}hk–Óƒ?ϤÅè-?Þ_á ›?³/ ¶Ç~?k*"ùû'?)6ŠøŽ? –¢ Áò?!e<\[ ?sG”PýÀ?ù^¦¯Nž?Z]]ü?6ë\K?’°€iœ?€çËu¦?訂“¬?к³&ª¬?ÊÛºóQ? ÌçŽÇ¸\? .É“Gàª?Wc£É?swþÜ`x?xb{:¹¢??ŽpV?¥¡îï? ™A­[d? œvµÊ°?¦ƒ *×?ç°Ü×^?ûfV{M?w4œ£S„?‰Qy;Kæ?YmOLâõ?°¼ Y?äðu.ìÈ?ËÇm´›f?A,“‡>?Œ+;œŠè?XÍ#¢‹?uXt:ˆs?¾˜Æ?š?Ëó”?š–Örg ?6¼ÞÐb?®cÊ}?cÁ.?|YgÕû¹?§ÏuÀ0?a˜)‡”¸?&2êÊØ^?D>È–Žâ?š.ïYà?ñÝŠa?ÕaˆÈ?›¼Ç6ûÍ?‹ÉW_? èü|D'5? öŒ8¬Ö? p\M:,?”ùÙÆ;¢?ºð„ P4?¢% ¦ ?QØ~L4¦?½÷q î? ¼ã“ 0"? Ò1É?4.Îl?kèÀÖE?ÒÃÞí˜Z?ƨiÚ¼r?aÀèP·?ªu&] "?®ã5]?N7ëœ.?¢³$¡?¡9ô>˜X?›žSœ{k?z»™ê?Pn•œ5_?E«_¢?C}·I±m?&Óû´Ë ?¾‘…<L?Ûõ<͸_?c„6'?X)C…0B?â‡æº?CÝ?ß2? Žv—Ú¶Û? [Úá7—à? ?oq\~m? Cn]_†Ç? /t}¨8? â_b?‘O4@Î?RX9¶þ´?à ؎â?#éæ'»b?ýÛ»$?ìÔâmœZ?¹²ûÆæí?¯a‹›¯Æ?Û+ì–?" t?|ñÅ:¯?AžÇ?¸òå8?À:,¡Û?pš4&O?8u5¸?Êó¦L?ÿÚ£¶t?P»Ù\?© à_Ûú?„f¼8†?Z†e?(†?¤ a´^ø?<·-Ü?“­‡”º˜?EˆD?wÛSQ?ÞW­ûš?¥{Ê;7?`¥ œT>?Z§¿i~?¦*K6RÚ?Atwâi~?(ÂFþÌ?Ô¢$åãK?œAæu/h?6 ™ÀÓ? €R@-Æ? ®[¶j^? ¹·q‚? çò6±­? m×òpœ×? eôic¥? ʯÝÍ{N? ‰ýOê•4? Œ¬É÷? Ç)õ²Zª??+Ž" ??‚ÀfÆym?”HøÀ¾â?ÎUv,rK?°èqë¡?4ž]8zä?õ<á?-Je"úñ?×Bý•8??þx«'?Æ\g ?‚˜%J?Vó+ú>ø?ôþþ? qWTcð?¦¨\4ƒ?µ¯‹uu?v31›ý?–Ì ã?€"0îZ?&RUÔ·x?ï£9ðÊ?^ŽÉí-?Œ+f×’¼?™7?ðl¨?›0H¾ÌD?¸¹±z…?c¾Î(3?ù³#0+p?D 3q„?IŸWƒ¿? ¬DH¨?¯PFM’Æ?D†äÐ?wOÍ—?]Äœø?ùÆ`l­b?0 õR"?Øû'EÀ?1…äl˜ ?‰ª4º€?+_Æ?|?J}Ù²WY?ñ¡Ôå…Á?&gYŠãp?«tIñ?W5ZM0?þÎXð®?ƒ°ùù ?áxV“Ó?'Àor?vxâGe:?í¦` õv?™ý$“?i8eOy?0!®L·?Á %'E?ô7QNÿ?ù6Gö~¡?¹KZ#µ?Tãr$l3?ÏÒjÚÄ„?`ºÐb ?93HÔ?!“ê%µŽ?ñ7§G?Íg5ºâ?¶—':ä?`X&q{? šÖH/ÕÚ? L‚:˜? T*vzß'? Ÿ6W˜=,?%ÜÆÛän?àÖ ©)?¹SFhw?E“‚çÏï?š…¡E7?ÖãWß Û?øù‰CW?4gî£ÐÁ?k+«v ~?PV¨?²‹g®{É?•ö®b¤u?@óB‹??¾‡$µ?%cc š?!‰×ë?2þŽJ8â? ¢^×Oz? wíx˜ð ? š{œ÷…? Öe:êÃê? ö ê…}²? ßÏ8^‚ ? ¢q§ÓNI? n|énöú? zÚXû? ègèO[Õ?¯ƒfƒ?ŸZ­Uk?8-mùQ ?rt<‚?r¡P÷*?ErAëC*? ³5`E?¼K*üAï?º,B Ì?¼5'×q?|d&Œ¿’¯wÎ?cÏ`N­?È5Øæt?¾Ûâ?(¬…™r?OvE^†?ÃÊÇ{? Èç7ª{x?úr™úÑí?"‰¡=i?˜ÊIb? l;ey¶?‘&G[šÆ? ÙDÍ•ä? Ãø{¶Üˆ?–×÷Mº?`tº'‘?ýÌèoÞ!?"bÉâ%n?•wÑ+0?ræíL4ô?Öm—sÂ?´hê¼?nÅ)‚S™?Ää_b?Cš&Ö?Ý8µaxR?S¶Ì%­?¼Út°,…?íNÜ $?ÒîÍЈ”?rÔÍ ê ?ÝE¨}¨?%N–ƺm?^Ì–¾Ô¦?  ÁÑð?þñ<#­¤?÷*2(0?¨ø¥6DK?™6»ËÖ?Ëåôv¯?à »àp?LûUôP?‡àæ¾®o? fçëZOü? ±ãññ ? ¦Gqص¼?¥»o5? &ô~b?#ïmBj?Â2ð?õd)ƒ8?³üÕl? "À®Ý‚ ? íšÈÞCÆ?œô¯Ò¼"?Úw™“Ðï?n#lEu?}§v,¶ ?"¦ËâG?#o·—?ýÙ^µö`?2¾8@D?çißF>Ð? G¹w{É?ÕpdÕ¼?TK2/´?R b,?Uƒ1€âÙ?oÃê«6k?rþ@gl?$é¹vˆ?P oů²?ÖÈ'6—–?À\ݲÒë?9îx=r¢?‹\í|/? CM°GÀ? ÒìeÙ.? ÂΑÉôª? ݯDU a? ã%ä*? eO®?íjV85›?¸ 7Ú?cQç•Ù?v!ÒD¹À?\-ÔàæÄ?1û~—=?Íœ™.Í?µþ*ob?Çm¼)Ï?55‘1~µ?{_qæB?éƒ 0²?ƒA8ò¿?@Þtó”ò?:öéŸ.?Õ5›r-?yR>øÒÅ?æ_;÷»? $}Àbr?ä|L̆á?wvé•)®?Ü=ä)`?2’Z™Î—?—MØ?ÿˆ7äÃ?·I vv¸?d‰íôS.?ô7öú?³†!ÔÃ?OZrÅ~¬?å'Çi?\T¹l?Ó>bÈ?ƒÙ ø?"ð™E©@?¹pc?·ºÆ`—ø? ÷+[¾? ê2™)Ó? ÌùÄfoÔ? éECåk? v²¦ò¾k? ‡õ+'Õ»? ÿ Ÿ °? æ‘›*[ù? úàë”à?@Ê_Uy&?¿ îz¿?ÁH{¼Ò¥?ÈxÈH°µ?륶€£U?üÄĺ? Ôà4?¯Añ!¾?Þé¶[@k?—“/µ>ê?ópÑâ3w?z›H5â?ILøà ?ŸdJL¥Ü?Fþñ6Ð?\I´wž?íÅbö÷”?õ,}(„Î?Uˆik W?ߧݨUš?\bËð=Ì?™§ Ãc?vÃK™_d?ÃEª?g¥G“?–Èš¶½?˜—'.qÀ?Gw­Í¨R?©#¨`²?ÛšpKް?Õ&Ûš0?¤ î°¡ñ? Ãh¢¿ Ý? ‚TX g^? ÆÓþ°Í?G¿ ìx?«×gÌ?´uYõ.x?Y°|÷b’? Êœ sN`? OÔ ®ØR? $nbnø¯? XÌþ]j? ͸;ͱ?G²ì¦ìQ?’GZw×?›º¯9÷?}aõþ?i[%™e¨?Žóàÿå‡?N2|‡Ê?ÊÇõž?eip¬mz?÷ßÐÑÒ?­w1†?e»„ ?_a.Î8?S¬.6Á?ÍÑ~d?Ç4¬}‹W?¾¦W7ãð? ¶Š b”¨? '±Ä?ªŠ5…#¯?ŽbÏÌŠJ?Ç"2¢ý²? þáp?)ÊÁTýN?îs•Ðð'?üàÇ ë?âq(W?Ýq‡£? ©$Œî²?`Ö ú™h?ÞÏYÅñ€?Äjzù¿‰?u™^ÿ ß?WvF5E?µ ƒœƒy?“nÛ h?áè²™ð„?T²&NT?®G3çÁk?¾ôBn:?v©Î¼˜ä?âµ8šßr?ôcýïž?C{<ÚM ?i!áϺ? ûŸPF+?ó8"]Ù?ù©Äì?[käœ4–?‡Mƒòƒ? üJ%‹L? ø{ åm? ÊRÕ‘;&? 8|Ëaþ*? <´ Ó)? Ó”eÌ?˜Z×ýÂB?¶Îæ¸Ê©?7,Iöâ?b‰´~2Ð?fµ(†~ ?W ©xO?*Y:ªrÒ? ´èÑô¨A? ¡¶¾×Ö¬?z]iUM‡?àWGL:õ?‹?ö*j?¯&6*g‹?cA -–R?ØÙ"®6?GŠEÜÏÔ?±é,@ºZ?C/<γV?Kê ›s?ͧò^ð?h øýÐ?-ÿ+1A?20ÊGÕ¬?YEŠD“Ò?p’¨Õ̲?8b(Ψ?vÝÞC1? ©B`H}?˜ MIÀ?„^½“uq?Ý×ß«“Ú?»ƒº±Dá? Wà ? |08U? ‹2÷i¶? yôzÃl? ÙŽ<»Ê,?:ɱò(|?"ؘ§Ë?i§ñžLì?v¨œ T÷?`I3‘¡?BÓêü?0X¡Xû?2~ã…[?F:A“M¶ÿsÃ?‡í3c?ã \T`Ó?£}f´ç)?·y¯tò?éç‚Qpð?ó³sª?›jò$¯? ÐX³ÉÐm? ¶ËÔé—? ›Ûob? ÐËß 6%? ŽëGú•? ݸûE­Å? ž~£©½r? ¥1eDj[? Њj+ ?„gÅ?<  ^ZÖ?–s$æ?å)Œ#?×p¶Ö¥ü?Çõ£eèÕ?—ösÜÚ ?&ûkãºd?^IV€Ìö?:ÊiAA‚?ÍÚ`¬X?6¿:9?™Z`«:? OÉ 8?Ú½]a4?"þ?§ü! ¡&?ö s9± ?zç‹h‰?ó ’%%×?Š»¤ÿoÎ?ëþ½ò9û?>gì&iJ?²ù Ó8?sÆkr—­?™JŠOêz?'‚Ž«N?_Ì|·?;¾F ›I?€UmC~‚?¯:jpæ?”ú ;w?[v·Å›?é7oL?H^ è| ?ID–õk´?%]i~€?ÏÌ£‰“?N©Ž>µ?â:ŠnâÞ?×Zº²À? ˜´wM?¢ Gîa ?5ve4Îë?³?übÂ?ÿ‰¥€d?6¼7íN?üçÉÕo«?Ôõ½E ?±Zÿdí?Ö-,?ŸOÒatË?¸Kõì?ç»ÿ_­?PÊ/´=?6œ9PA?ü£Šh?G̦¹í?y}ˆª?ªÒ¤–­?]­¸+Ò\?•d݈?C¬ã?BÄSøê´?z½8Fz?ÚD<Âó?,?½Ú¬ìÄÞ?Ý(ÀÏã&?dxIj&?kžPûdB?!kÛÁ?¿¢ÙÑ–?… •Zí?P[&+´Ú?•y!×?à?áÚ—aH?ú‡y-bÌ?¼#Øpä¥?oû2 E?ç:i`ù? pØ™‚?ê“ê.§Å?©\ïšÕ ?xï§oý1?rús29?Ê¢Ãh˜‡?MGNò* ?éḹo5?…"†Vê¹?½Î¯ ?”>.N>þ? ¹,t?l,'ÒÌ?•‚^‡Ëå?a^0œ?µ1ë?–Jjqÿž?)ÕÏ{¬?ªBEú޶?§ÆÀ)? ¡Zh n? gãYm¤‚? ó5‰íÈÖ? $×¶gu ? Û§¢ º? ödo¿J?SPx¹ß?À‰D$~ï?ƒ0‰ãZ ?þÝ3(3?T…¾èS ?›iö"Cý?ñÌ£Ha?d¢Ís(Œ?ã3”Ë‘ ?C>ÈÊ?W™µDê?ÇZ{Áî?QÆPHtç?_†Ñs!?_ëzÍ¡”?·üÔÛ?{Êug? ¼˜§(­? ² ¸ID?Ô¾XL^m?cwl&‘½?oÂ*×Ô?ÜÜb”$? Ö^óVïj? ²ü” ‘? ƾ|ÖD´? =T‰IÀù? ,ÞrM? ï+‹Î? =x‰( *? j*%”? ¸9ë@÷(? H"+c¦6? )+Ôw?KЬ[De?ˆòqM©?YñuïÓ¿?×Êvme?9 7i+ó?{ÒÖ‚ª?—W_d¯?v‡È„}p?ÿœ¬wŽÿ?%ìlª§Â? û݇­? …«â‡æ1? –Ûÿl|?Êg;? m5†öx? jØIÅú­?p¡xÎL4?Hkà·?*Z±í&?^w{P/?}ä"ä—?:£âDyû?:NÞ9ì?@nóÖ?P躊?²¨Ô›?ÝHP?O$ÞÖÿ’?lºH³xi?)iK«³?xD7>Õ?ç‡×4?0¨Ð{…ï?!œyWák?¬p¤VF?èl—„Ò?þÓ|õà?Q"¦r?@0’x| ?ŽÅÙk˜£?ýP㎟?—É­ M?VÉÑ€Rh? »²ò~ð«? = ²UWŠ? ÎF•/|]? Sƒ±Éà? ¦(l é? ¥ú…ÒL¤? Papêé?ÉX_ÂÈ?Rjèæ;(?3æt«X=?¨¿óã\?Ôá®±?ÇUGx ±?y^Ö C•? ʦ”Ý? tŠ„xn?5Ÿ­Ád?š)±ÁI??TIöëœ?i;ÇξT?+WÙ³? Y ž+ð?Ê/>k ¶?f6Ê“‘S?ýÃÎ%©o?©áé¥Û?{nJ2@8?{à Em?¦ºÎÎâ?åÆx‘ ?  ‘$?ÞÝ'·=Á?3› Ñ‚? g¯%V?žvõVß?K¨_?r:F ì9?IЂ:7?ί§ŠÀ?ÇæD}S?Þš»‹’?Á ·X•?4»Ã››¸?"˜HË ±?“ˆæ>Ö?¨!¤à?‰ýäù?~3பs?L¯ÜÓi?]ð«¶?X_@,y ?2 ªG£­?UgE± Ó?*Ìuß³ ?ÛzÁɨn?6ëYY?,EZ@?ÐŽ¬$0?Tîᾃ²?ñ@2Ó%r?͵יð_?ö·fø~ì?^äöWqš?ìtXÝ}Ý?Šg2õ’ï?0—ÂuNÛ?ÞÕ¥‰à?ŽÕÙC&´?'¬¬˜?~Â5ü?f͆Õ?ÅSù¯ÎT?¢ÂÆ[b?(4tG «?˜G^¯¾C?héû&? Zåü¨ ? 2¯áKSÍ? ê2a`v°? \9’(dâ? ZÊ!Kr? µâ°N8è?A§²FH‡?dïÓðï? àÖ@9[?b.+–?Ïz¾:>D?ÏŽö?_ýQ3À?ѸGëv‡?Q¶À½€ˆ?³_ª§?¸?ÆЧúø?müèfx?°›?nÖp?±.^Ú÷P?¤ ©ÓTé?€4¸s,?ažò†p?8÷Ì*Œ?xi’³ ¨?4ü™_?Çþ°¾fd?È=!+¤D?ý C¹š? ¬lønp? Ï‹¡åŒ? zçý×? A0ê˜×ò?rÇvÂò?Ö¼¯\?ô9jñ£?E{CÏñ$? ò4oƒÅ? QÙ~Û…¶? "U†? ÞvØy¬?ší\Pa?uñÿG™h?Øß–?úÓ×g[ã?îúUf?ÅÌåöf„?4–}6Ò? ÉÑU° ?»{ý Ô? #MN F? M>õºM”? 9ó¶Ù ? Sàs6’Ã? ×J veÚ?œnñ¾Ív?ÒuA3H?+{I•X?QŽl~ã?tžøcF?cžgL;g?Ôí=¢ûz?s]9rÐ? Y}.&â? \^VžÆ?ˆ®zQ*~?Cñöp‰ ?_È:?LÀç ?Eç2½¤?–Ý“0I6?±Ét¨?Dú+uìÄ?ކ„Â~?ˆìC*Üà?¡Þ•ìè?¡ø?¸ ü? ²ðD´K?Äcob?:ÒǼ`Ð?¾ÃFúy?Þ;0Ì{à?§ÓÍ,‡??}bfIË?wtÜÔ?é©¿k¬?€zò>[ª?méìN?ºª²Ù¦v?xÕ ÒQ"?]ݬeQ?A7eøüê?Q›Q‘<–?b¬½C·#?9lcŸ¨?ž×í#ë¿?räË=Lí?¹³Õ¦ ?™RIÈ~š?M,,ù¡ž?&M+K©?KpñÁ3? :¸æÝöÃ? üRë˜? `K‰-Ëê?T£Óhè?ÈÀÄA?@ äänã?pÃËM^v?v¤þϪm?„À›qÊÌ?É.‡>ä(?*@k•Z{?ˆ¡}‹\?é  u.¸?9•*ŠUò?tV¼VK?§ÃÅ=[q?뢰3Pã?Vªóµ&?ñïÁ„»?¸‹xêö?‘;Üýé ?U,_ÑM#?ÚÆËÃ?âO«¢Œ?Ô4©ˆH?_-_\Ú?ÊÞâg¨?6AÈ—=?ª‹Ž¢õ*?95Ð?w¿nã¸?²Ð©®?Ò¦#ÅE?åeU‰º?g@#L? a1祒Â? å=¹£É.? Õ1‚ª^? í¾”]Dz? ß즗z? uü 5ÿ ? ­Ý²„êŠ? ½ðxíP? þè_´¦D?c‰Üi›|?ÉTÄë?¸Út“Ó1?fÚ=¸¡8?(R‡Ö•æ?Q\ 8Æé?”t1à?cÿN ?'˜¡?ÙýÒ4a?kê™»Z?œ¬>Ô?\÷¦ðœÌ?¿žê4å¬?ê|¦¨6¦? ¡È*Lí?®D„†? ×Âlp? Àà¸\K?u#˜vùˆ?ÖÇ—QÍ?Ï|ØF?°–K^?TŠ/ÇP¨?ŽK`7„?SJ9ÿ¹D?Á˜áø‚?ð¸Ó½?ˆ¹W¡¿?I\j¶$Z?_WÁÇU.?ºCÕ¿†Y?@-pn÷Ï?ÞÒ?štÇ?pSm(D?TS¶¤ÆÌ? #;«ø?Õwi„,O?E~ïX4–?AgQm½?¯s?°Ãá?™¦ád?*àŒr``?¦ëÑN‡t?¢ž? ºPô¯®? ÅzYû8? ¼ñf\‚4? sØÀñô@? ¯8 r8t?67ây"#?jõšÓó£?-êyU¯Ž?ÌJì¨-?85Qœ©?wÅ Rý?¥hV[bŒ?á„^¦?;ÜÓÒÇC?¥m8ÈÎ?ôàšy?üÏíj?£x/;QÞ?ï½a?þêƒð•?4Ôµ4?%¢O˜Þë?#ÛÇ '|?°?t›3\?Ü;uÅÿ?[¡ÃaÐ?ÁVÝUS¤?©¨zV ?ã:½$Ž? ~g@[s? » B\œ{? é=€ë€ì?DêCÚ¦z?ö‹â–É´?5njÍ?Èð¨6Ål?%د'ø?D,¾¤Ž? ¸Õ©„ ? muÄ—Ê? ÝêäD7¦?ú §fÆ$?²òÈ!?ýÐ/3!?éÂÇMkk?˜â@}À?.uP•p2?x$Kû©?}‚O¨&? YÈÃí6? !`¡¬‰È? + X0Ô? ûâVú? {kGF?fïv?í<Ü^?ôâGøÈ?«–è?! exŒf? -Îöt?ž±ÈDi?žXVÿŠ?¿W¥åwôH€? ÷¬ÅÅ*?àÂüíÆ?5Çp“….?Äûì?àÛÂi?NµrTÀ¢?oŒ>ŸKT?œH7'?îL]Ì`?r]lôƒ’?$£‰„?ë£ãàÚŽ?¨[ÇZ˜6?>d·r¡¬?¢^ò Ú*?ÜQvQ$²?.Ú’´?.CÎù8?wB”%¥É?ë„|ÑÅ?ŽtDð?Vêã›t?.©M \n?úb{L?—¨îµ#?ì¹Éº?í¸ÏÆ~?¡Ô´‰“°? &¸z?…YäEçÒ?é/qñà?UÏÜô`?Ê`ò¾é?>AâüA£?©è±Ó=Ü? ðú*k?r²}KÛ?ðá€Säg?Ÿïï÷þJ?²IqN?¾pH«;?{Èô^?v]Ã'E?»§P¸è?Ó Jj«¦?»ˆ—ŽG?„ey:?CªÜi ? Jç)?Û³weÝ?ºúD|?£QžKŠ?œu}æ??®kp…P‹?ç¦[´Õh?QŠÛB¦?î=‡’`?´¶:ÜŠ?þ¤ŠÚ?_Çܸ?úOq÷?7cü˼Ä?û_!ŒK?GY”mÎ?;5Sº¤í?¡WqO??¶á- ?qpAþEˆ?Fº\ˆJw?Ùh–š?0¦Ýò…²?þH¤È^?Æ6ƒ½¥?Y½7k:“?–B @2?oî‡ s?ñ teÇÜ?<½¢¸Š?|¢ìÜZÆ?ØjÒÀB?mj4ôÄ}?HF~ý*´?a )Ux…?˜ï»Ô@1?¿š|?ŸŸXa5„? ûu„?/QÙ2]6?ÛèI?D×UŽ?DåìS»?üˆ ?-H«¥WN?Ô›±f8?0xù?[ ÅÚ!6?L)IxÒd?ã©=ûœ?9HûÁ©À?ðת9ò? £ÕÑ÷ûp? Û®Rpkr? ÆÒñ÷µÖ? n™ñ;“¾?½Äü¬?BS»º8?<Îbé?Ö†ÊÉ?¥´‹*(Æ?¹'-¹i?P«Så3Š?’b'ÜE0?À£»øõ?…­;?ªŽ–ÑôË?Óß;nóÍ?Fo Þí¿?ÌíB*?jM>·œ?Ànµ–?ÜBÐÃçØ?©:å?{ ?djû¤¾?á}:ë P?ófdž!?€Ö¥Ô‰? úÀD?I­GŽÏ.?ëE=¹S?mš“¨Ž~? À J%˜? ˆÏ ‚D? ,Ôk9`?WèBc?*°ªW_ý?@Î=N>?]ð.g¢?•8(ï†ä?Þ P–!¸?Hwvâì?"¡)°·Ò?àÄ^ê(4?Uæ›5?˜>Œô&?ÇjÈZâ?ÛCÑjp?kZ’I? ž¬ˆ†ù?¾?!“?°B-(?¨c¡?âZ?c™”Ád©?·MåØ$‡? œûª7ƽ? *›Î Òá? ƒÑè¾£?ΗËÁ?9ßyè–?ýŠ)rÄ?`´ñ¥G?žú,«ˆ„?Ó\Áx—?ãÌ™ÌÐ? ~òô +”?+‹+ÜSX?4¿êj!V?ëƒé…›P?'UÐDÄd?öS}Ú?~бXaÄ?ÓhÎ(ue?¥wžº_î? ƒ1ßn:? op矫F? ‰`é)ì»? %Ü>Ed? ¶‹ô¾µù? ‹ô}Óî?O˜?¦€¯?G"DÁ¯Å?gzS%,?xŽ@ÿõ†?Y·Ã­?ô „¨ø?"Vf?©{ÏÇÞ¹?OðâJé?ü¢IÇœ?Ò“ãX9?-·1د.?Ža–öè ?w?:‚7?žåZ›J?Iwì?¢9}Ó>Ð?XôVCÊ?j$0Œ$¿?JÔ*ÀÄ?¯­Ã1[²?ÃJ§“Cä?˃æk? é©Ï{?Xª¹ÿ?w£YK:?hŸnŽ?5M¥:ÂJ?r4Z:N? ã¾zÀ—? ©\j—? /Bcv?Àêqðº,?Þßæ¿-û?†§¾K ?¤;Õ,S?%¹öT.?ý8Áã•%? rD¶o^? ?eÔÅ{¦? PlôùÕÎ? &l|e–? ÁËoÃz??FÑÁrÿ?¼ö~®ý?AS.¤^?³mø]„¹?ë`im‹?Í„²áÍ?ZÀ]¨Ô?®j¿5>? ó@YüFV? NGµ%˜? Úùún»? «_0ùÜ·? ÍMˆá? KÌìÓJ?0¯´?v˜ÌßcÎ?ƒ)bKÈ?TP…\‚?fÖ+‡S?y§…[?Žxþ¹# ?H²1À?½DEÊ? ÒpÄ.?]åãîØ?ŽÝígm?ºÊÌð?H¡7Ⱦâ?#˜0*6&?"šx¡/?vâœ? óìëh~? º^ë+’? ˜„ˆ‡(? ÆhN¨?oâø?˜Ñf&Ë?޳â…[8?[Ç¥Ü? ’&ŠÑ?–¦W©ó0?ñ¨2ž;â?6© µ–?ƒâC `?ñVù ?‚&ˆÐZ®?"Ó쌎 ?«Åî`W8?ó©;‘h²?ãP¨’ð?p…¦FÎ?í©Ôñ°?N SLJ?ºÙä¾8=?3„a3÷²?¤·?ãv5LR?<¬¸QK?ÊcL&•[?˜ºCÀVw?Ÿ-èžÆ/?ÁH™td?ÔtñŒì?°¥ŠX…?>u./˜_?„È™«¶?¨ƒWËR?ÞÃè~è?VÀ¼É?%® fö?@ô‹Mµ•?„Š" ¾?¿oÅK?ÈoÛ¸&ö?†5^Žì?õbK¯?…tNbFæ? )iñĈ? v”©]–? ÆÙï÷? 8œ¦‹Ó~? ]/Ò™'z?}:¢:?z9Fõé?oÒèóÝB?6ªd­ N? §Só|?ŽÂ#3²?óåS}?+²`pc?L¢A—?RÃLµ±B?ÕnôÛ?P¹â¶¦?ö”²K @?‰Ä4"[Ú?$½.–[´?ÇûºÖ?võ³Ì?1˜gc¿¶?ä—9j?i™Ag‚?™5 Ä?V¾Ö‹¾?¡k~lfÞ?—Xçºí§?mO‡˜?` ¤ D?Ew ¸?£ïøyH?Ù ½sÏË?»¥æ%Ý?…×Ñäò?G$¨”? £vç£y?»ãU*ßÖ?F6‡Ÿä??™¹©cSd?¶~™:'?± !è’k?¬Ôp­p?Âéì0š?÷§Þ÷»Ð?6îá{¦B?b«aÀˆ?cޝœu?1~7c?Ѧzš?OJ‡dk?·½tÍ­Ž?²?{qÔÝ*?ï Ôù>µ?zX×$è? _Ã?ŸýP”fš?•ÜpÒ˜?h(=Áo? ‹Ä.²è? _ðQÃ? àì¯Ñÿ3? 5ørbèU?±®B®ùŠ?½­º?°#òÇNJ?­9­¹v? ’lP4@¦? ½Kú?~Õƒ–h?HøóY?ñi¸c“ ?)N‹…m?û@¶7°Œ?„sýë?Ëèœî1À?v{ÝjyT? (ª¦ù+¼? òðaåÎ? :Ø9ÿT? /½±¹ïÇ? Aåá:Ï?ŸwÔk?6xã|?Ì©.5?7òº¶ò?%’0ol?ÌMÚ5ªF?¶'à™`?ìÇ@¨VV?r…<¤?aóSY?Í£`­e4?ˆ×ñû7Ü?ðÃŽÀÈ•?yÙ5Ã?"íî¦%? oȲÖ?c ø¸bØ?¾V ÓÌ?@:>¾Aˆ?œì.hš?–0ý_D?ƒ[;œ ?PJü’?x€ òŠ?ÔP«a?…¯,×}?{¢¢1²?„KJOg2?`ðuiÂ?ϯ]‚©À?/|͵? -J,†˜D? <Œ-°?ÁÆdœP˜?õ—‚²Ð@?Þ“ÑÖ6«?jÊJ|µ? EægŸH? !!÷? ºþ©FÆ?^´¦Ì)?¢Éᓯ ?+¡¸•;ß?@­òDœ2?*pÌh? ÑZ5¶?ã¥tý§Ý?Ìkue½ý?²!AC¾c?uRŠ_?Ùïð?erc„z7? ¬UW®*? ÷½ êÖB? gÆê¬? ˆIÿ(è? Ç–˜(S? c H©©Ú? õÙÞ?lLa!(?3Á\ó«$?>ˆœá— ?Óûô]š¬?>_rê*?k×VŽ0?[ ¢8‡;?¦ú>–¬?»Æ{#•?U"Ü ÇN?êI]•£V?MEZàt?ÜcÐpÌå?‘F¬‡q?U¹T–ÖR?×Oƒæ? »ß-9´? cÖ݃V? 3ГDê? `5Ç)42?þ±a?Qÿ'Y›#?³‘`µŠ?l–Ìã®?G´aœ–u?ö5"-Ê„?oÆp®¬?ÂeH‹R? þHTH?`Ù™®JÊ?Ð jiü?Gõè³O?¥6á’›w?ÁèZùùB?ŠX_kï^? ÿGs_?[¾RBp?ª£põæþ%?¾Xè£=?kžr©?“6êÙd?~¯±“¶?(æÇ’?Ÿ¡Qº%d?û+iý?S!W¶† ?¸2– ?3Ì]bkõ?Ìqù»;½?…sé04?]úu¸ÿ?OÒÉC?RÖ4-c?a„DƒÉš?z¾–¨Ìž?ž¯i•ŒX?Éoû¬¢Y?íøˆ"Œ?÷Á½;¨?Ñ Yq¨V?o ͳ6’?Ú^)æl?.{ 0£ù?’ÊX·¯¦?'KqZ„?úë53?5;O Q?@h¹m%?’c}ûT7?òF7Jß?Z¦cÒ$?Ƀ_íXt?>gñ˜n°?¸ÿê'ÊX?7.ôšû?±=ü·¢#?0˜ò„œ?GY?ƒ3©?+­©u5?µkê“?ñž'cªj? õª´€Ó?3åÝÃ@þ?>üfÈö?\bÖ'"?n ÑóýÙ?¼'‘r] ?(캤ÈD?•aMâ5H?åN§[Y?„ësÙ?ÞÄ>Iñ4?|q÷6 ì?ë IŒ?Fä£E?®X%A&?<? Œ÷?fB?5ƒ²yò?~ØÌsß?Qd„0\?íê^.ž¦?0r?/î? Ï{a?h8^0W?‘½xsB?‚Ûf¦ì\?oe›b›?./ª}yÈ?³bÁ™ey?¹ø³™2?wá?ŸŸ­Ë ?¢‰1Ý}Í?7?»ËŠ?ØÇ„!@?} ßIx‹? óo\œ?_hR2 ?VÈ3×B»?æ7åêm?j¨µ`&?(ì³$R£?<1#Qy?ŠïÁì‹?3V—@Ì?;ç3Û”?”%÷û,?!ê®A%?Ì;Yª‘ö?¨'•à x?ÀÒ·J2?r}rŠKÉ?Ùí‚§?/ÛjäÓ?¯q†æØ?x%â#Ûª?~ÜÖxg?”$HA¥ê?}8Ðc…Þ?¿;J? }ÂõSÏ? »ÆûG¼a? ç;$n™ê? Šmô~m}?áÐ;hÆ?ühA¸5? Ï:Š‚c/? BR[§ë? ,[– ‹ë?EÖt8Ð?•q‘æv0?<"Å«kz? m!9vê,? ñk2`ñA? À½Ò ž? Þ¶SÝw:? DW1®ˆe? çíIZŒZ? ½pçX ?®- +qí?šRÏ­3ª?.BAvO?mÖÛ-…?‰¾p¤øN?ˆKÃ0ŽB?rWEP æ?N”j$Øp?!–¨ƒ È?àUqD>@?~"ÅŽ®?!kŠ”cì?ÆdXÄPÈ?e(¨ J? ý0ï#µÓ? Ÿ$Hßdn? mÞÌç? ‘»‹ßå?1CP¾É?YOêx ¬?zñrΧ¤?hùXÇE;?R¢GmR+?ÙÞ6„Ì?¤çNàF‡?øÄ@ó?F]?‹ídõÓ_?à»ÎÎ?9´ .PŠ?wMÉDÒë?v+ìpì?#è·¤ç ?‰éwæ¼?ǸØ™\?F˜LæÞ?M‰‘Dsü?¯LJ"?¼€.Üö?}Í:¨Q?¥•Æ’$?5fQ26&? ¿ØZZúì? `dËèo*? .ü¥]zÝ? 9¤꙾?4ÎŽæÿ?òµW”–?‚1Õí?$€jÛ?ã>%!Í?ß­R>ª–?E&ä9ÌÅ?45Œ&? ¬Ys< '? ‚äYƒÃ? m^¸-T?¶v_F?&áÊy_V?zU†ct*?Z§°ÁÆ?€jC¼T^?lð½³ ’?~ñuw¨&?ß»ž «Z?ªÔÕÇß8OÕ´?$ò­\˜?ìÇ’EeÔ?µwi+Lë?n=1ÄQ›?!†+ƒ¡?ác®Ä4®?¿t¶B?Ä”Ü6îþ?ëºöR*ô?$¸b½%³?X-Žš8?kñäõÙ?I5Õä-0?âOóØú?=ÛŠe~?óÿ˜é|? 5ø/¥”? ¨ës‚ò˜? |È.Ëpÿ? ê•“¨?ÆG8§î?[ÙÀ´L?Vw|eoU?çäÏÆÓ?I¸ÊÊ@?a-*W{û?!²*gGh?“ÑÝ.Þ?½6¦Ð—Æ?xœ$Ûá`? Ƭfœ:‹? Ý@ÁÿyÒ?¨A®º?ß{Xé0š?–‘(˜Õ”?-üö~X?²šÄ?1?P‹BÞ?½%W&ïð?Yú´¼½v?öm±œsÔ?oŸšóª?Ÿ>/^)?m٦ƭ?ß'ˆx?N¾wÙ?8póˆâ{?ƒ!ás“Ü?ŽuÛD?÷¬¹¸;?#ÐáúM?†ß‚ &?}" ¦¯?©2ÓŠìé?@PJCô½?µ—A‚ùŠ?ìx7ßÖm?Ü×’…GZ?Ÿb›Æy ?gšÛE€@?lÿÎ yÌ?Òxâ‡Ã?šÇÌ h?®)yÌP@?åÓyH„?ç§½_…? FZá?"Šî?¡ýÑqˆð? ›,\?ãë‚ V“?^¸ÀjªŸ?Áð¶¦æ|?Y5,qÌ?[µl‘?Ùf¿ûz?´\ðñûÍ?¬}²…?{Dâ€t?óË}uÁ ?óLìŠ@?>øHK¢? ” %ïè0? £ëÓHÝË? ‘R×L? 6ØTk²? BÖ.óH?h áÆœ?uÝ”dÓ?)G˜OP}?wZäGâ?˜cS¶?o{†.?!ĘêV? /Åvkú? ŽJ'zšl? (Ñå&`? QLEìZ? v¬P°H? Øn±B¢9?e5ÿYØ‚?]L¶£#?&:`Ç€1?Ðu°z*¤?<À³² z?bñÜ“eË?;5?t ?«Z˜»ï«?Œ·ðÑ?Æðu &?iQeor€?°°Î ‚?í¼o{# ?n¼QÌ?`›9lã ?°ŒY0c?t·‹†¨h?Ã;ÿ¸?<‰ж ?©‹õœQ3?ÙÜ}Ì*`?¹w6”á˜?Xût?Zx?äPŶ á?Œ´Æo€?l€v* 4?~¶çÿG?›º÷#Æ~?‘=M¶2?<£¸?5,;ªb? ›+ݶÿ? "æ&ó? ê<”Vañ? hIõzû“? œÛüÔ? ‡$äAH? ”ÁÞÎ? æ×5h ?©Ã A­D?AH ½t?2ßÜ=¡0?Lòf{G?övqžÃ?]“vÊ?¼LžÌì??ñ¡u¤?ô!J¢0–?ÀðÛ5¥è?±7*Ê)?‹T§~ë–?'¼ÿ ]b?±™—¬æ? ­1õl` ? ÝŸëÇ v? ? ="’k?f6ñ+¼?%¬ÑöÖ? Q]´V[? ֗δ”? „ä2£~?†í ¡R?[îû”e¼?©- ?CŒmÁïÐ?K›oHNG?Eêb“+?På8­Îø?Ž)ÒÊh(?ü¦gs²?A}„™?t4Oæ.? 0kì4?£L›™¹Â?þ8*é™ï?ú­‚¨?—H¶?èP¥Ó›?møT@? MϹÈ?AÔ3òŸ?¼ÉTvß?JH!?1ŽñX?TryÆ.?\$÷ÜjT?1!`»0?Ñ+eÏU?NÃix ?ÂÎ`ÒÅ?>'gTP?Æê£ï ?`Pe¼–?!; j?ð´à5%9?bÇfTl?@”Y?žÈ XHâ?«>iå´?[`1$mí?’§¸â5û? jªN‘?|¬‡YY?vüÖì`?n·¸Z?¢Ã9»óz?’A8!-\?oó«ÓŽ?eþçŠòŸ?š³¢f?$ t7ô?›Æ‘?/Žq«G?’ŽÇçòþ?«öæ Ž?µö#ný?R¤œÖ"?ÝúÄ/ëv?N8È`E¿? )8aú¡?Ø·ûÁH ?üigS(´?È0¨ ,?î¾OEŽ?¥€©êßù?,Á!ÆÎf?—£G3n?ŽówFš?˜¨Œ!‰:?^:ú&`?WQ¼­d—?u`ʧXj?¨ßȱ'–?äXC!öí?¢jM?E¥Ü¦T?Q¤øËHA?4ÒhT°Ó?ë+²×À?|„kýF?ùÁ·Rm?v¯À‡Ç?pWDJë?ž¢éX¼.?K±î`âN?[Ê( ?ÇxÞŸ76?šÀ?†xiŽ‚?’$‡Vg?À!agÜ? ö‘‹j~?f SÚŒ?Á ŽþØ ? ›Ò<?4èàÂã?(»ÝO??Ø­ûW6?IGÙô?“‚ñ¿?Æ'§yô?È#–mˆ‡?^*Òóæ?kÝÄÓ?Ç$÷æR?¥3‚¸?ý®jI?WMÁyë?oן£‡¨?]6õªÕ?æZýì?Xn]ŠP•?fp% ? ¯}÷Ý7? ÷ôé!x? ùZ4±ïb?ý¥³?-2ïq=Á?ÙÍGG>?oä÷„Û^?íkb€A?dn™ù‚?ê7ÕÔÛ?Šïÿüzå?:e‹*€?Ö}ýLãÌ?3Ïú¬2?1ßã™c?ÊÝù§9$?8fœ] ?DQçIu?‚ÓmÔ?õ÷x’Ü?¬%wÔ \?£ ¤ Ø4?ÑdÊ¥ ô?,ŸWÚL?§vл?)»¾}'?޲\žBj?³ù€ýz?‡üq›ª??ÙRÿ«‡?9)èŠ?'n×½LÆ?ØM%“ª?#œÑ,æ?ñ˜ÔÇD€?:c¼8è?;LJ§Ð?$ÒUÙo?yÈ‹3 ?÷x3­?~H¶€P? Õhé?#¾Ið?î7^)?ì·>Gã?l÷ÁÛz:?ŒgXÌ?)xf:ãà?ú»Ì\ ?­Mæ¥Õø? ’´ä´?Ð^Fl?ø0sÙ&I?ïX¸7´[?‰lð¦f? ×Âh:ñ¦? ²—X9gE? Ü?+öù1Š?Võd?:-,ÌÄP?ø8T J?QœV XÌ?v"à”i?J9do?ŽÌ§_§>?tFH·? µ¾û©­ú? ãws «á? tt5rr? gΞ§#Ë?¹‹£³®?K›‹åš\?¿‹@_ž‹? .$`ê³?Æ!T’0?û¹…´?¦sË;^?nñº3V?÷×+E…Æ?kB5Î?tô!“ì?L¢©¥ ?9ãÖá>?lóPdïÀ?óÎ?¾…¸ˆÕ?„y6Û·¥?L–ƒþ*?eE«Š†?ÅBn"â?ü…`3E·?ú9ø'àâ?ÈZ5Älp?†êfe‘?WèRÑã?S±:!?t0oR6?š@]Àdâ?pÀMë\?aó)Õ?Ï®Pÿ3?”ÌxÆöò? cÞkËd? …—o'δ? ( K¼‚Ç? ah2S+–? :Ýî!Ú?¯,oP¡?L¯•bðÀ?R¤aK}å?,Ìè cÊ?¡mCß\?”¤$E&?@D?VÆjîLd?œ•4Åe?[O/œ?» €ãG?¾àÓÅ|?ôý÷óÐ?îü¯v?Ûøýù´?E-ð©¤?kÞç!_? „³zÝ1? Æ€g/ã…? LOeôšL? J´´Œ´? ÓëXa? L–±Çì? ¨ÈÄÞÿÆ? ,EÏmB‹? Í–Õ«R?~1Ö=ª¢?2n<ª?áÙœw*?CÚAWö?Œâ²=?À€I|?ו/C&r?Ð0ço?¯ƒCسß?€Øß~?OÔyø§®?$TÞ±­,?ã?—˜?ÓÛç?¹ìÓvH¢?Ã/¸äWú?D ³¶?GbùÐÒ?º, ?S`Û|?ýÑôÖî?›Ïú¤ÃX?ÔÛÅw6?f¤Peb?žQsÌ?Õ:-“µð?ø0pj?l8ùl?¨òªkà?®åIGÕ?fÖ{?Ñü¸‚ˆƒ?£A²!…?'‘÷9œ…?LMŠoÁ?„`¾‹Ñ²?¨Ÿ†-‚ø?vfØ¿ÈÁ? kÕMå? }û.±4ô? â|[à¦? ½Äî`F&? ØÔfã2b?øÍ`Áö?2Yu•Uh?ž‡5ÀÓ+?R{ =C?\Pxg†?ÄÓº,?ŽÀõ7§? µ,Ç͵Z? #wœš? ±f0‹õ’?(:¿C³?R‹„àÃ%?Eš%ý?2cS>ìT?8ëÔ ?5ÀB_ÌZ?BöÖwÅ÷?x j¦`?íɦÒµ?¶äŸ?Þt4¥?X~‡ƒP?ýZxöÃÁ?’ð)º‘v?â#„<1 ?˽¡Ãã?Nèf?€á £Ì?xÌY+» ?O­ÈÚ²?)Ù|›&?뀪™§Ù?ÙÍ:0n?褬º±˜?â”|à‰?Ö2¼`Þ±d?€Ï‹Bm?8j燖?áS`TÇ3?e˜»Ta´?¸~<º‘t?ÛÊq®|?Ù”]E©?»(`q?‚nŽrß?. L«Ã?ÁäñG?I¿Ñµ˜?ÞIÃ{H3?˜c¿Ð€?„%á¥ÃQ?Ÿkrxp?ÜáV3žf?,k⩞-?€Rl<¨?Í¿Ík°»? u)F?&G³ß-&?duÈ0?Ö7m3{?f;x±ÿ?ÕSŒG ?5º·2?—Î)ßê?Ú/¿Þ?ŠÐZë±?+Ú¡­Ï?â?¿y³?ÉJQxä? ¦lʇ?\å(R€?ЙmR§m?W“¨‘âÙ?àÍnˆv?`óÑK‡?ËÛÅ}²¬?²9Ž¢Š?6»rÑtø?Í<äKÒ?±²Ei‚í?l©©ýÌ?v›`…è?évÑõ½æ?Ц§bv?V]üW*?:ñ†©?"mÅÿµ?ÿÀÖ骂?¡Óõö¥?0ÐŽ‚a:?²‘'T3+?,{ÅÔÑÌ? ¬×/=X…? Q•'ƒÌ? B£å? ¢?ãù|?xæ•1 ?¬;„ljY?„ ²à{ð?,Íëéž?¿4Ä(Ç?=€4»Âç?¹=q4?I̸žO?ú=cʯ ?¿óX{Ž?xPrŒ?ôõyÏuß?Î4Ê©b?Á‚bÊE•?xcØñ†?LÿE_ÎÚ?Âïĉá?Ü5y*?iÿ|_Ñ[?-)ã&?#pEÅÅç?KÇjâ?Ÿ"{ü?#ê£Ê?YC¶‹œ?q‡x?D°ŸóÙ?ö¸йò?ÒnÓÚP?,+{Ôâ?@½œü!P?#cûpì¦?½oý=ÎP?Ôèèå!Z?ƒkoµ^?!ñ{Óû?"nס¼?"ªg)Óº]?!ÍS7wø?aø®qh?º¹PÞá„?H Î?,Ènw/¹?,õ÷m?gUj?"®?3Ã.6,?Œs®œ½Ù?‹§¼‹§?&:7þ(R?OÜÍ=´? ¾‹õ`§F? jáæù|? UÜk$Éb?—Åš§w?In;3j‰?j€™Ì?vËd®Cé?SþŸÒ’?á³ah»?”ç¨ùýÿ?nk 'Ÿ?h >2¥ü?yÁöí¸¹?8¸Ø;` ?¼'MŸ8÷?8˜odó?âh³h:?ÎýríòÎ?ê‹Þ÷T? z’â‡?ÕoJÕì?*Sp@:?°blX,??Ô'VÀ?=ÉÒ??¢[ÊD?&îFM¸? –pW“?›hÌ?“~ÍB?S2ˆ‹ÎÔ?†{ÁVW?—»§k?rçæ€J?rÌêÔ?]0<Ÿô+?Šuï¯Ð°? õ$¤J? »™³%ø? ðzF¨c ?£{} Q?Ú:N^à2?¼ÄÖAA?šGÛ‚?KKóAÓ?˜à>ÙX?j"OkP?Ñ]•S­?ñžý¢®?Jô¹@Hf?¨èO±Žú?jÀ]`=–?¹ZøÅS€? œ‡RÅl?Q"É<ûÒÎ?dô=0 ?ÁÛoàÉ¢?©?2L?3*³øÉf? mDkrï?‘/*4ó?ÚæV9N¾?ÁýŠZ£?#!ãp¯?O#†:”?%Œ`“h? é1âÓ Ã? 볪ƒŒ? ! ?¸/Æ? p,•ùzž? ½V OzX? ø­QϽœ? )!Zñë?jÏDÉÑ?å™®÷=û?¿$i´?? üÝ+Ç?ß™þ†}? Ž* ? ³«Sú²È? g)êŽ8?ý­ÓëÝì?ëaàh?}böéØ?œÅ=?Œ³FhÕÈ?oeá?eP¡Z~?‰¯%Nun?íj£ë›?›OÏ\ò?™uuú?æí,v–8?q OÞá?²c…b?’»þK6X?Æà7?‘ýGhKa?ô‚H+We?Fƒ×i?Í0Xî?ruù-? :t°Ÿ˜?¬Ø„p`?uØ‘yU?lÇÈï ƒ?ƒ’¡n?šúX›<6?šw2Š&â?z—Év?D-)õ?<ÇðÿÆ?µÙcn/?|¸þªÕ?‰õít?¡Q{Ûb?Fg_­J?1<”¾d?‚ëû´!¸?¬,j±?ˆ} \‡ç?\T¸þ?ÖøÄ£Õ?ö 5¢ºb?¯™—tÒn?*åÝ( q?\-´Æƒ¬?ôC€¬gq?^çoöì?Dï±wÞ?êó¦'?Ù§¹µp?x¨®ù?ãq +°?-5eÁ¶?t¦…ú(?Åö¯®•›?õ”Šã?Aµ©à(…?IAi$³?AWèhú¸?W”9ý ?¯ýTË?C1h *?ã7ÃÙ¾?KD˜'¿?çØã–>? j @´ ?;°;Ìè?Xša¶ ?N‰Ÿø:?"aùÆÌ?ðøØÕ¿2?âDø»L?/wã;f?Œ]}U’?[ê?U£üy¹?r|F̤ò?_0S"œÕ?%ÝÃæÏ?¼ýøÔ°?>î8÷”û?ñ¿"<½×?à¸_šÜ?´ILA.?¡?ê¯?HAX1^?éÔZ†2?••õ]~§?P‰?D>žk3V?«y1Üü?d;Y„)Æ? èyAdí?ïãBDY?7#ØZòå?:ÅÃðš,?Ó$¶Ç?PóWìÆÿ?œ«­3L?¤—änÑg?_SzEi?Æiȶòi?°éœ¥²4? ÊBÀ`#? >0æÛíÊ? [ ß“€? 3˜>ϰ? ‘“®á?îφ¼?Êc«¹ã?ŽÍ˜2o?04JHáâ?œ4H|]?.ħ+ñ?o¤èV¾?ÉhM32Ô? >wQJî?NRu²U?uG“èõ?¥š—1¿j?ÐêÇšÂ?óô´ÖÌ?]‡Ž‹¥?QegS?¥uOèÀ? ;¡P?nÍ\眶?¨]­}¿Ï?Ÿ—Á}Ÿr?Kˆ=µ^F?¶\búH1?õ² @"Ÿ?!†oØà°?NÖ$‡·µ?‡÷Zª? ÛñB÷? ä1H.õð? ,6P? •›U¤ë.? üÇ8¨? JH2õæ~? „˜ÇR~?Î#]Ï ?Zúû9ûÉ?]ÿ²»?÷^Á!M? *lü½[? Ú}iy@€? Îʲ€œ.?¼ì³¡h?«íRh¨F?2 ÐÝ?ed–ï9?QåG ô?C¢wÁN?ã@Ec?ÚÉÁ„ª?j-n?¢Ào³Æd?~ß#o†1?¤ÃlðÖ?þCå¸Î?‘'º•Á?êçôbg?|xöž%´?ŒFq•é¡?5ú7/Ë:?x¢¥–@º?b~G ?Ï(ûî?¨°M?åC!‡­v?Xžûx‡?öågy?Ícs†L?ÒoWÉì¹?ëïÍȪÜ?9ByôI?WðcÍ?÷¿»íW?ã<|Ýÿ?ÇzVi?¡¬GÔ­?wÐÖ_Ô?ZO\fq¡?`Ÿ¨Á‚g?œ•p®r ?3V—`?©{ùñr?IÊ]"›[?Ëð(ÒŠ?Q¥vÔr?ùði"’ ?…ŒÐV˜f?µS¬Ëë¯?–y‰©ßÁ?;ô¨×¨Ê?¼¶,ºHÖ?4J˜è>?ÁÆ*2Ò?‚s¢Êž?Œ%˜v<;?ÓÚuà”?;(Àæ±?IC³ÀÒ˜?ôsL2š‚?”uî?\{Ûf Û?/úF^Bº?ã¾IlÕ?QÞ»,¡?gÛþk*?+uõ>7Å?³fUWÔ)?÷ñßx?ƒaU±+?û‹Æ²ð?˜ÿFŽ v?m/?TÄH\A?«5Wá^ø?‘ßõá$?*«,d²?ÄÐbžòú?LS¦ÝÛ?ƒ0ÖNTN?^úq?$ç$q?¼Í Ä„Î?¶¼÷óè?Ž eúZ?Œ›Ì‚?!)†Qߎ?’Ë;(Ø?Æá¾Ø´>?ÅÌQÈ—¯?³f¬X?µ<öÖ.(?ܯÔ×Ì0?ïQOz‡?^·iÒz?œ¾MÐf?ïåô»þ`?hÍÒã¤?^öùÏÛ¤?súÇ%Æ?wÑš‚µR? KÅxZ?—Æ…æ2?ƒ•Ôªº?P6ã…>?ñ9/¾Ö?o;KÂìT? ë0Kê]? ”–ëÇêÖ? •ø¥˜ù? ûì×à§Ó?²@ªÚÆ9?€Gy Ä?ÒWöFÕ?6ì2÷˜b?-aWx?êµo¡?¶Ä?®„–7?x’¬[f³?• \ ~[?ÖBc¾h?#ÂíR?z¢ìÁO‘?ï=fØ?j%Þîï?Ä [+„:?ÖwÀ‚f?<>ÈQÔ?ŒÎð?X=™?™[ÍvÛ«?ÖL…ÒŽ?UôîëæC?hºEñ?»d¯3?둦wlP?ùâËXœ?°€²Y?)-Räð?#këš?,n—'Á? ¤»½"f? ˜kw¹™? õ$›­wý? ˆ.Ö€?|-^åÛ?8k¨²Œ?´ª„Á„h?+ÅýjÐ6?šÄM±—?ÿè×O0 ?WöÔÄ?œ!Ål’Q?Ã’’Æ*&?É!"#?¯Õ¸Ò"?…,ÔëÖ?[ÀMM¿?D¥{–´?E‰kÃ-?VCµa©Ö?dŸäÔ0Ì?^2É›q?:g[ÒÍ?ü³å$=?µ“J›;¾?vÕ‚ÿsÛ?Lœß¾?9 #43?65U|k?=Y «?NãsWÌJ?qŸË¹g€?­ê«É?¶Ð(?oP¾¡X\?Ô¾mrk?livç?)‹¦—©¾?÷Bbºz?‡„gËÇ/?èµzZ?-×åJæé?jæ·€SË?fÞ”¢ù€?0E1&*„? DöVËð? šg§À? ™'>? ‡—2¢Ïv? Ý&Jãºl? /ƒ¶ò? j8&ýž? ã 2Î? / ¬ì:D? gd©8? …jJÉP? …f!L?¸x5eeÀ?âZ–x ?«cap~‚?ÍK1:?2äSoÆ÷?(|`ú?¶CqÄÜ4?{¡•ßD¾?{ƒOA”À?Í7‹Ìë?vìrV?n+ fþ¾?¦JGÚàs? ¡ô2dž?bÎ Q?êOã5e¥?"]-‡Ç? “Q~E?–ݺ´ã?Á0‡NJ?”|™Sô?Ž ¹°Ü?wÐRdy?¸NC“9ˆ?Û¨>`?wÞ2äÇ?)ZjÇ/÷?Û„äN{?"£Wuã?=€½¢gƒ?Tm¥:W»?b4"[?f ³Ïf?_„nÊðü?P À–?@s`Áä?AÈ+ÿÙB?gÿ?V Î»®?û¹ûƒP~?P“š?S!0à|? Ý,MUä?„¢!€WH?ÇÝÚì]™?à1'¼{A?ÛgÉèB ?Ì¢³ƒm?œ¡ƒó>?ÿmÑl? ³|iâf? ÿÇú6I]? ÜñEÊ»?…>®aÒ?ÒÏó|aÄ?ìèósJ\?é.v®?¶ï½Esx?]Ì‹`SM?ð?u·£F?z#f>Pà?õã­4Ý ?Okj1ñÜ?rO¬ãv?VøE_8?xåÝZ?‹ô=,%±?ò½ Wƒ?6oAÄLæ?MÿPØ×d?5¹FãF?ø%ïH?ddð»A? W£g02? sƒ:Ï? ÈìWáš? Þ‡¸DY? "pž Ö'? ®t<Áù?R7ç-?cÝ0ØpÐ?ú6T?r%êª'*?ÛPÖ˶"?G*œU?ÃFîf?Y£b…ÛÁ?yˆYé|?áwÄ2Üp?¾ð–´v?ˆÙ-É·f?¹½0Ûi?TÅEª,?3I!¦ä?Çâ® B?1„tÙÜ$?Ç ¹¯¿?ô…A¬d?^îjÍŽÿ?Ò«NL¬?[i­Ü'Ø?èÉÎyÝ? Êßo?B!ˆ¹Þ?™  Þ?î³ûâ¡?:¹Ù/xò?Ÿ:©NÊ?`e0‘[|?ÈÜê'tä?Š2€p>?XŽ(ÌΉ? QökƆR?"íPÔb¶?%ÙŠbŸG‚?(ÒPȹñˆ?+{Súëá?-z³ˆÕXN?.švU!ò÷?.Ü2bº ¬?.ráPðò.?-¥|49æ?,¬ÕÓêòÊ?+žÚÏÉý?*oÄqÇ.?)•C—S?'J +çXŽ?%DjÏ‘Ô&?#9œfàz? âŽzéF!?ÉtÐÿ6?m×·XYØ?Á=‹€?¦étÙ™?òs4©GT?…ÐÖ«?c¢ËJL ?¨üoSÕÿ?qI!'?µµ¦½9Æ?AÄÜ üÕ?Éè;µFm?Q’Ÿ©?OYz€ð?ó ´¶Yú?æï5àŸB?YsÈôb?yé+hk‘?õ8hÁý?Uû:ˆ÷?ut–»mõ?H´MæIÊ?è7L¡·ò?ƒšäýÁ»?G·½|Ðû?F™Ó’yÌ?sÕ¥»Q—?¹›i¶?^2ÝjY? ¶+|¯p?}=TïÈa?²%£ƒ?Èù)?R‚ÅC!I?¸¨î¦?R“sp^9?+¸Ò?ºJ4ä/?×|8êéç? ÓâÁý%È? íæ´{4Ñ? iT? sör}£? Ι¦…Š? ÿIQ[œ?ÿÈoù *?¾Gÿï~D?£©Ò?õÌ ã?Ê¢ïB?ž÷µ 6?¢*¤ëêJ?ÔŠÈ\š?­z¬ÁÔ?97 +e¢?h~5ÙÙÔ?¥Ö)‰?ðÆKÎô?>í&1?u?þAœ?xi™v¾j?;39E… ?È©Ö?CM¨ã;ƒ?²XŸˆz?dè<‘ç?¿¥…S#z?PsT\+?ÖDˆˆ?6øŒº©ã?G9ƒ'Ž?ûÿ« á)?nÛ‰!?ŸDÉH±_?žÊ’a?ŠHbü?5“:?ÔöÙ©»d?Û-Žü?³¦<˜?5E½È…?ÒMëÍÍ?YUÇåÚ¦?Åö 6X?H}©Fè?M,ªÜa?e¢$T ?_¾èøOÜ?>Iò³3ð? já»W?פͱ”?µ)ÁïÃÕ?¯[@tl4?Ä"A d0?ãFáð?õKcí¶?æÁÛð5?±Aüšè?[ËAznü?÷lj/ü?•à˜úN?BYù#¾?õV¤¦?ÜžõsÂ`?ͬýa0?Ú$i ‰?­a»Åž?HëIL?¢¾‰?JÍ[·?`­šÁ}? ÎCù–?·Ôvœ:?›¤ka{?KàRšm1?ÐȇfË?4û¾[µÊ?‹Ãz»Qv?ÏÓ"×8p?·¿ë\ƒ? äÐ;üŸ°? PÒÝÄ`? ÛÖúˆ~? ]<›<5x? ¼‰Þ½Ò? 4³×? XŸÔ8ç¼? U~‚!î? CÝFL#ñ? :š˜òL? ߃•o;“?û±1Ze?œbÒη6?œ/c/Ó)?V>ôš?¶?™†—cþ?Vœ$fàW?ˆ»ÚwÈV?½%ÊXk¸?Ì…¶­[?¤îíjüø?oÑŸîÿÔ?fFÙïø?rpÄ/¥?‚2Íê÷„?Œ*µbô`?À¢€”™?‰ÃêÙ?†ì÷D,?‘þüÏþ?¹]¢³»;?«cáâ?ƒR½T??"þœ:+?ןDSuÖ?‰„æ5^Ú?0}™:?m*ÿÌ0?f 7 mB?ø_–ýÎ?&#ºQmJ?ÊTÃ?¦’`´ª?0zÿ… ?½všòÜ?d–Žƒ°ü?9–Áñ?G€­U÷?‘—Gðgá?7³–jÔ?ªÛú×?¤äÃ,??=N 2?–¢eC`ú?D“lQ?ô¥ßæÂ?uÏðlc?¡´ˆ.×+?j„Ф?ßa@ N?"Ò»Ê?^Euçd?uÑXÀÞž?®/µnvˆ?‘áý»'Æ?9'L# „?P ‰…Au?P;¹H'z?y3Pãz?"» |?Û‚bE¸?2x´œ³‰?xÿ}Ú}?hÉrÛ#\?ól‡Mì?}{„6y?¼'br1©?Ó~{ŠtT?ÍwÖÞ7’?»aÀï©?rJ$¹Z@? ØCBEÏÁ? ùy¡ úó? ¬ðúÎ?B ` h?'YyÌèæ?j挩RÖ?­Ï¦Cœ?¿å¨?Ž·8!˜â?&s¨•è?¡6="!?PûUƒ?z­Æ4»?È‘={sS?ìªrüs­?ߟº+?§a§S?L–Fpä?ÏÔ‡ Œ?%<Ó§qt?<› yÁ?e2Ovœ?¦j' ÿn?)bÖ2ª®? ŸkBªý? «Í{­_t? Ò˜š”d? 'ÿ—˜MÚ? pÉ«¼ü?8Šk´TÔ?Ç1wÌå?¾jüÊ‘?Eذ®e¿?¥õºÛ¸?÷È¥® ®?RºMÓÄ.?IJo¸ë?S‚cÐà?ÿÉhüv?Àþ K(?Š)Äv?@„e=sã?ÅŽ²otË?yǤv?îVŒµ$Ø?šýháœ"?!½ E`?šÖt¿¿É?7T eÙ?‰ ¬ýº?æÂòé?“Ý( %N?Q?zaA?SNÛ\x?šªÄˆë=?ÅLE?™ðZ\Á?0ê:‹mt?òù'OD?€ƒÓ)´?Ød³Ú?bLö½O¼?ÔŽ:?!¢¸³ä¾ ?$^Y¨rœ?'‰«>Ëø?*í§ï¨Ém?.2Â1‘;?0}y”·?1ƒdz??2$ZëÐ?2s×hæÅ¥?2Œa¬€?2}Öù£¦?2Eï(ØJú?1Ñ×Óöò?1 ê©#á?/È©©ÄV?,Û’a)óx?)ˆ¸DÃ1Ï?&#U˜­$?"û,·Iál? Fo1n4T?1@;™¿W?ÌZÒÚÈk?(V{Ciœ?=¾»ô?Cw¸?wRU,¨?m[ìÎ?"¥ðÁ?–.õCU?Ç/¶Ž?yrÁz-?§EÓá^H?Ãò<–Î?ù^G5è?\àL¡ò?ÜW+/«?P‡Û•´?‡™çC?d(ŠzL?æ€à‘#­?3K‹R*I?ƒ˜@~àI? çöb4G?Ú£ S²A?êÅœ‘?#hGæøÀ?„¸p®gÜ?&A7Ò?"°êñŠU?xLW„˜?óç÷1XÚ?>Ôî[Ä?ÿû:ºÂ?ë¥æ7ˆ?§æïž´+?&:e#ˆ?ï{àm¶? {jëÔ? I÷>-h]? ¯ ¡‰Au? ÖPx›í? ¬á|Núš? åã„*?¢NÅÊŠ?íhÐùô@? ÆI"*G?{A7hz?ÿvs?î£b¥D?B%ÇÁü?=þ%±oý?t¡ÿl¨n?£Ó^« ?ÈÐ%þ¼Ž?ê!kÝò? ê=åûÊ?1NߨÙZ?GiÑñJ??þÉÖ:?'Y€c?¿E Z?_ŸOXí?mœ˜•V?÷ÞÌg2p?*}ø„+€?”6$¶ù?ÿx¨*Z?oZñ–0?‚-ÀØ^?=Œ $s?·bËέ¥?LÌ”:?;‰­Ø´å?ö¼°ä?ö£s8?Ï®Bu?–wì [b?j…C’4ÿ?D9@B”?Fw®_? :#q>i?/×)?7ßzs"?93ž›`%?k§ïàF?Ë´ÔVÞ?uY}Šf?##6k—?çÒ6ß?Ñ¿txó?ã++Ï?ûøfû»?;àßÁê?NZoͺm?4¯†#Á?íVþ×?„Ž I¤é? -ß·(˜?”6FåBÉ?'ÜØ%Û?Ð3[1h?•Idå·?€Š ·œ°?–W©»þ”?Ò´+ ©à?(âi¤)’?ˆNˆÔ?áˆÀR‡D?*Ç!Á®?Yƒ™æ‡\?iÌ]ÁD?S¡“”?׌ÓÒ¸?³¾Ø`#B?4¹"Ø¥?¥›§§j¤?-YAÚ?C?TÌNÉ?”3ü>?‰(? ƽ~èãv? b‚žÞL–? ÚîðÞÊ=? 8_’E…? ¥8!w»è? aAkù"i? ©ª´æ2? žÅëð±r?3ZV 0¬?¦ù­Í?·ßtú?ýô¦©u?‹Ϩ_?íi%;0û?ôÈÀVŒ?̹ÄHšv?™_þU<”?€ƒmˆ¤? EŸå°å?³ô+Ã?¹±ÊÁp?¨$¯¡0?Á*J.Óq?ïMÆ W? vÚÝ?0ùäd# ?¥S–a€?ÂÓ?–f?&°WÏj?B…±ð´?®›¢¨?²Ü®µ?ÂZASd?VÐa1«?º84ñ¥?ÞPStïÃ?XDâù¨?›íJQJ?ÕÛE{?¼bMŠSÍ?¦oiû+Ù?Œé@åƒ?oSóûd/?ZP;Úh?[‘“?€×'̤v?Ò;Œœ9”?OR'ýGº?ï¡øi¬V?¦€’W@t?dêŠÃ±?‘Væm$?®¢‡oÙ}fC?F¼²ÛóÚ?Å—Æ  ?inqŸn6?9©ñI_?BJLH?m?‹_:xFT? k)ñÝO?¢ 8@B? Ž·&rŽ?[ÚMRi&?<ÉG}Á%?È€8Ö-?Ã=ŠTÒ?_ù/­m€?~'SÇ‚?·½lxˆû?WË,¶m?F¤¿c›Ê?U»<¾ °?PJ翇î?m¢bÞ/`?€奖(?]6å9x?é"cUF ?ä±ÃÅ?ÿf=?¤)í6ºâ?æ_+Š?l¨4W?›]tòià?®™bhÁ?´4|Æx ?Žï\:¬?G¨? ew ÷0? µgäI>?!U–¢k¼?¼{‹oe®?$’Ô u'?‚ÇP*ü ? q6QJ>?i3C õ‹?ëŽØ…jÊ?Eíÿ F0?5wnÅ?Ïb3…E>?ù¸šçe?9þ%Á?òæÌpŒ?Éëè–w?“r_yM?Gz *à?Ì(c?ö0?ÜTTÏ´?à!h©.Å?h:Ôõ?ÉA¯åN?‘@ŠlèØ? a‘þÚé? mŽ¿>w? ɶ†;7K? ,Lº²=? øEj¶–?mî½>K.? _\S‡Ž?“ÜšÄûC?ܵ†?î»2…,?e^öÆÿÇ?Ë$bª‹?L$±Í0?ä@³hÌò?‹À8‘¶?6 §Ï±h?ϓ̒¾#?@P…z‚Ð?u\¡ÙD?iEsj‚?&û&aî¼?Âåó¡nÒ?PÙÙ°?Ü‚þß?hÅ\’ ]?ý›é þ?ª d­½Y?ˆ ]Úît?©Ea…í€?uÊ7é6?©}1U ¿?cÊi¸¶?>þG¨é?Qól,lM?ÉQïàCË?Ì(±Ù‘?z/¶Ø? y³ó›¡?"±Â:Íkv?%z’ïij6?(×cÜþ)?,¦,pâ?0Nªé“H?21S€Ìå@?3×—÷€Ê?54-1ëI?6M¸1WñÌ?70…晊û?7ÚËýÿ¸É?84ŸÖ§Z‡?8}«æ×?7[Â+ §¡?5õöÜöV?3÷k5qBR?1ð—v!Ê?.­og˜ö?)%)XU0ø?$×´`Ð+?!Oþ8›ŽB?‰4;X?îû9 ÔŸ?ÍÜ^[@Ä?ˆùâó¼á? A·'X>?O€xÛŽR?9 ‡Y}?“¢KL›À?$Vú¾?‘9E„jú?ñ+=úW?MÝÍ.¤ª?Ä+èÎâ½?\*gÇåÒ?ý!‡±?xWì‘M?¢ÖwÇ.?PžÆeÏ?–£YŸQ?›å7Ê_?žÉîù?Ü×áÆ?p¼å ?S]ßqÑ?q1ÐK”?Åòó®¤?c‚Û¨)W?\‘|ÚA?§Dņh?ÏÉâð?Bm ˜z?ó¸ø-Ið?……\^P?'IÃ7?xhÃUШ?1yMfðQ? q’µSzf?Ë¡*®¥?Ja…Œ?Ž ,шA?µ§3Ä_?¨…>¹l~?‘ÁÏh?‘ rCâs?µÑŠ•?ò#k+¸R?-ÉŠ@V&?U¨nqœ¾?dŒc¾/ÿ?a°ëôìü?X65*?NÒMYN;?Dª2u¼?2€{êì?£Œªò¸?ÛðQè?ã?œ?ÿY?e,ÁçB,?Q\޼‘?q÷6ݺ?Äê{}<ê?-ŒˆJ”ô?€³…M¥È?˜Ž#öµT?eéÀE X?ö°¾ÓõºaÜÇ?Poó’?¡"gè?õ줸ý?vÞ8Äõ? ·2d?¹ø²†OŸ?ôƒµóæ?¢œ-ÖL?ï—U¦]?dG8§6’?×ËÁ¯ý?ĺûˆ¯?~Ú?ÉF-?;§í½n?–=n€¡?*?/[??]¢@È?M/í”?™h0ª:?`Ò*Lã?1˲œ?ù´kü?ûÞn[YÄ?«fxQò?9“A?7°QÏ ¢?o]÷*û?Î3Ørð?`(uc­˜?Õý‡KÀ?0iŸß÷?rcš™^ü?§Š¶4íÚ†??¿ù8 ‚?@7Ytã??®3¾!’?>òì­&!?;¯*g4Á?82,½®€µ?4‹ŽbC‚Ü?0îL¼=æ?+S06e°Í?%Øó+ Eb?!‡øVž’ª?œï}«§?ÖÑnF@@?‰¶ý·?gžTÚ9?FK°÷ãä?õrp(†˜?4?J"©Á?º¹f»ù?P;•Üš5?àdbëüv?vêsH`?&Íão[À?ñâÀ¹Cl?¼{éü̲?Uz'–çs?ˆEó¯¬i?2D͸¡ð?SæÌƒì‹?ôrÜØT?Ê4èÊìa?¯öï“ëö?ô~9K„?›;)ú>ì?“`‘•0?ÒÛµO\?`Bò®A¡?Bt©]á?iK–e¢?¢ÿyu¤:?ªy3»v¶?@n£y>I?5µ8Â?§ï³ûi?Õ/jçYˆ?¦ñJ‰6n? ÄÔ [5¿? ˆ×ÑÞ(&? R¥—Ö,? 2þSÈT?âÉ,«DÃ?kÏù&??G…iKH?¼åÛMŒ?áp ‘àf?Ïév Þ+?¹¹…Y?ÂKråßv?ïnÜ\\Q?,B•v'b?Z‹rSÅ?e";3(|?H—¬8†?á4î9Î?ÐDÀ´4?–kaà¼?k\Rú°?MÀåœe?4꯸\?Ñ¥ Të?ë‚x8Zª?½ß)÷á?ŸðáÏš#?¥(‚ëIÍ?Ó*Æ|Ð.?®€§h?\Ý~U¿?zmÂûˆw?a¤Èhe²?êoSé?­É-ϬÞ?MÎA=?ü³X4?=ÁL‚‹X?Ř`+o?®°ê˜®°?ÚÃq†?(z'Þ?3°_Ʊ£?ü9,y¦?VUÓÂ!?:â·ÑëÖ?¸·ŒLâ?ðћР,?‘'?CPI% ?²eÚ®³C?r®®$&?…ßT÷)?ÔaQ@ˆ?:ÔŸòt?ŒÛ­ÚuJ?§ó¿^Eû?~ 3Õ¨p?Ó¼A?ˆ,•kÿ?é­S~ÔØ?LWHz.?¾ÍÌéß?Qh7ã>?€‡ÉÔr?!j„Çž€?qP ?ô÷¤ðÞ?‹/))z ?£Ðû|?rÂ5[U—?¨©kS¸?¸zk ?§ïp»?{™P+¡?3óŒ¨íû?Ò34¤Fz?[ ­nøk?Ùnãßîg?]Ì3œ£j?ô-ØÏSŽ?tÅFB%?=Æy°Æ¦?8{Û¥X ?B†t»¦Ö??2¼£¤?%"®3Áð?:%'Ñ2?üÈ2Õ£ú?9ä'ax?Òz‹Z4á?_¯y›?íÁ¦·;8?zOl<Õ?ð'|Ä~?Cß+p“È?t°Lc?‰wP•Ôv?Ž*Ü÷?’?°Fá¹?¦=úù{ ?ØãN†Ò°?3v¼„›˜NT?ºaɇ€?5«v°›J?§¬\ÅãÁ?3~Aí'?tÙ Êç¶?ô¿è¹¾?¬„ìý ˆ?³öÊ2Î?f²ù¼?¶Ù é™&?ˆ†Oú?h}w§åç?AiM"÷? ^Ôö²?»›ïQô?S·¹†¦p?Å2··–?ýZq.}ý?èütƹD?}¹Ìâž?ÀUØÛL?Äìò4'v?©éëÁ?‹ËLõTì?†ì={ ?ª¨™i¡V?ûuY'v™?q:h&aI?ü—¼òÔ ?êÒ1·Š?.ï4]d?æýeÁÉ?Í`4‰?¬??…»EŒ? © ,Ç?ê¨ ÏÙN?ý| á9[?Ìãâô?bÈDŒ€‹?ÚNÌme?V53ª(?ìÛ¬¼íŸ?¤ÖXfÄ?ä®å§Vr?QÎ’W^,?Þ³Õ¸ˆ?ZFë§#?/°&[ê?‘Ÿâ:$?Ý[¯òL?ø6§æ´?èž™£±”?¸Žçnf5?pD°F”Ê?òÕ¾–? ÚÍØKŸrà?Üž•O#? ™R‘$£?g´iêCÒ?Mê*­‡?_ E“Ój?ˆÕ8é¦#?”õþé?@3%4?`ûUÃ?ús£•`?Gì ±?¨WÝÕn?ûrNR ? cä{Ê€?ƒu¨\?üÆ á€Y?éJå?U›ж?Í =X%?4MàÞ?ØÁ ˆ“?!”“›¤d?#¾ç¡V?&¥Ng_º—?*zT.œØà?/Og‚‘x?2„)ôÇö?5µÄ&4‘?9ïç9K?<•â£øÞ?@ dj±ûÂ?A·òèÛÀ?C9¨ wêf?Dc9¥D^?EŒ2‘„D?Dípõ®`h?D¢a_pz?BxyõZœ?@Oñ+j–Œ?;¬æÀ ?6¡½¸ö ?1ôÑÁ²oy?+êJ°Ì¹L?%‡ˆÌ;Fª? ·/ˆO?ƒšFƒ?ÇqÀG?›VAu1?ù&Å)˜!?}MÌ ?g8XÁl²?•=^Ž"?7 4{¼?ÅÔ®†½?IÁr’}?j‰Ú>)?ø£¯%÷?&pžoe?ù'`n?~îÒªñ?º•ÚóQa?3wJø»2?F÷¯¸?/ÿ£…ÞI?}šV? yÿåýب? ²[°Ó¹!?$¼Š Í?´#%tÑ=?éÓadQÁ?ákÍ×'?n0Ž­:I?—ŒjÌf?Œ?¢óý¬?‚êÑ•‡z?š•ˆŒrà?Î+7,`~?þp€?þš4?Ö¥f×c?rcô?𠫸iÙ?mYþn?»ãðo–?·¯‰ ÅÖ?Ïí:Pç?~ôcwÀ?n#, át?N<@¾?%Zk:J?è~¼%ð?ÅaÞ%!Ï?Âz­¸çB?ÞZ×¾X?Ì…Ø/?'4wrà7?(¯Z8?D7öII?Á8uÕš?wn­_å?LiNP…x?iéÜÑè¸?ïsø±“c?ãfnÊx~?, *ïØ?”]0vf?Ù:E.?½÷#$¹?÷P\çL?áN:ÊX¶?'ÙÈ3È?x¶3Í?øõw›Ž?ý£oé?V6m ¥y?.¸‹zõ?GÕËöl?»kÚspö?H`î‡ûœ?º f©Wf?èDÒ÷q;?Â8º²?Oš*ÄXÂ?¨wüä?éæ8Ī?*wϯg?ƒ²·ÑÆ? ÕÚX7æ?»‡àf˜?øcÂ*?ïò_»â?5ÔÌ’`Ê?÷{2ôà?žNŽ4Ää?oà ?NéšzWQ?[áu¡?@Pß3£? rzCb?¨Ž:”&œ?0Šd"Ç?¢[z]ï ? »Û‹C–?{í‚çPm? ð²[ ?ˆýýq`Þ?^n@ׯn?„Û?í?Û8Bôze?OÀÝJ?FÈü0'Õ?bŽ7€l9?x9tî?“ÈËÄ’C?À2¥yÞÜ?þ;‡áx?E/¹Å‹Ô?ˆô Ü,?ÁyÀ¼?í¿]9?6(V’ˆ?(˜TœŒ??t÷Í`?WcjáË?w¼?!dZ?¨“Q<7Q?ñ³G»úâ?W³E ‚)?ÚÖk…D?v¹/×?"Û³0.?Óg±~iv?zhW¨Ä? X¶f?xûAI µ?Éôå£`?ÑLÈM‰?(û¹t?D¹Ú¶‘?K¡£Å¨?5ã¹–t?ü®à[“½?¢†?µSJøj?3’yÏÆ½?üÌc£â ?êeâ ·?Ù5@L?´xšük?vv4K†?!oÖ™õˆ?¶´kŸO?-ÐLúû?vFº9¢?}“¬‚$?4T~¯”©?™3ù‹:?º™b½iÒ?²æ‘“š?¡Œp?¢ ˆÒ@²?ʧñ.1¦?#JFê3q?¥®TÞ<6?@²_ £°?â—d=?…Û¼‰*Ý?5«Æ¾ã¬?±dn׃?D¡q?À?7ï²¶6¤?€7Ü›‡?Á} ¦ ï?ÞEŠÔŒw?Ʀ+\N?|x3« U?y«E_~? 2³árÏ?BÔá¦$ó? õ%X6À?¼­U t?"ëÈè¢ß?aPo2¡+?°”•pâ?ûŠ3¢?K€òR@j?ƒÕ"w£â?¥x)§4'þ?7—‰„Gÿ\?<σSx?@e†5-{I?Bà'‘øU?ETê†Î’p?G•jv¢¢?IcU\ “?Jz¡¹êÔW?J¢ùôÐxF?IÀüÒùKv?Gàl´7?E4~Ž Ú?B -ÞR6?=wk L,-?73…¨Ëð?1¼¢ð4¡?*ŸŒyàÿ¡?#æÇõ »?)aÇý¿ä?Ÿáo!’æ?}²A>D?,L –Q?-ñÞîÚ>?öë†=¾?~yצëþ?#Ù-ôK?ÞœïÙ*®?«5,~íp?–Ô‚Ëb?¨ÕŠ€—®?Îf½Æ?ÓÓwi ?qƒ$ó~3?bk2Œ¨?†Ds¿Þé?ú:jc!?ÐRO½??£˜Ë4C?ªp¤®-s? ÷¦Á9¼ ? ^O!kÈ? ¯ŠRÛ7m?¾cìÜJ-?/–`‚,×?+ ñ\ Ì?%íÍl‚b?ï#eàAœ?^~Ñ)ßP?hÓºÓ?Ôa‹ç3›?ÔXV¤?²Ùè'Y¬?’î®w­?Ò^”p…}?@5/1?«DóNB?f~Ë?ÕC?T$L×~?>oOÒR ?Åkÿ#$¶?sÉ˰?£•ó¿Æ?'›B2‹?\—¾Ý_W —R?mÛ$¶?¹bol*?±ÐÝ¿r‚?™…PŽD?‡×§V?MG wT‘?ÓÞÔ éÜ?>[>˜1?$nËêÞ?%Í Go?ºööK~?JØà±'?¸y÷C]±? “(‡?Ps—ˆ°?Ÿúe¯U?úù7O4?v4Éžcª?J:èzÐf?˜‚µö ?îÂþÕþ?…­È¶´?çàÕ^bK?4NI5„ ?fa_D?‚ÑeŒþª?“È=ÅØ?žÞ23:?¥$ơÜ?¦ëny<Î?¨ 0§}w?®önE ?À·¥‘%„?ÝH/“?'B¸Í9?$Ò d±€?Iñ K¨?rþPþR?¦‘E*µŒ?ì'ö6?H’yˆž?¼÷õ ~&?DHµýÿÕ?Ôr!ÊeD?_”]˜c?Ø£wBÒÖ?8&Ï]-~?€7ÝΕ¯?»FsÏ "?õ+v 1?1ùšáNÁ?iY¹ëü"?ŠÝuÃS¢?†Î?'å.hé ?Z¯Ãˆ[ÿ?`qCRâ?µ õA„)?Ê ]g?Êâ Gt¦?º³/~#è? lX#‹?ƒÐ+õñ?kõï·Ù?`ZˆS4?m¸÷R¦{?§ùï®ëT?%lñ% ”?ïwÌë;?õØTë"?¤\’Ë?yQl!ï?ÂG\±€5?6ëòbw?w ±% ?–­ïˆ)?›º Zh?ƒñH™z¼?K\ ½:?§ðXH?ÄÀÙ…àO?Àm= 0?óÕo?…Vmù?öI«ÎIò?>jRBV?x7P1×?IЧVµ?»öÎÝý?9ÑyíKà?+ÑÁ©©?Î:ùø6?&îJ}T?Ù°v¥ ã?²/Î}ä?\^p|/Õ?²ã™?µñ2¤ H?ˆ½ísÂ?Uãã— B?A•cÇ_?Ye³¹–¸?™+ÌBy{?ëÛßÝVŸ?9Qmé?nÅߨ}’?é–µøM?q¿×än?A+H梠?ûª*ùu?¬åy~ì?c d›¸Á?-S,<1?o£©ß—?6C P?†Ðº›ïà? 9CßJÜ?±­!ƒÕy?nN®Êt˜?.Š‹UÛ~?í62Üã`?¶[P.ü?£LÈ9ü?ͪݧ»˜?F¤AúP?¥TªÙˆ?irÇcPö?!@âËœ~?#w–z‹,?&²‘̰$?+JF²ÅÜ?0¾vª7¸Ò?4°³e?9r¶”?>î&\ð=Š?B€¬?7æ?EºiÒú°>?HøœÄ¥ þ?Kû,–¬¤?NqÙÈkü?P¬”za„?P9h$T¼?O–ƒlH_9?Mzßú¢ëÒ?JWÃÚÄý?F‡ôÿ¡…?BtÞgßE?= q¶’ÕP?6cl8æY?0P9”ÿR@?'ÏÍŠmU?!u›K~ ?MàµtØ?ÙÁg‹½?¸Mó.v¹?;Ê¥HYÛ?¦öN°–? ¶šÉ?oîÖk?3$ØCæ?씃Æ3Ÿ?˶Hzñ?Þêµk3?Œ€ê`?M<§“çö?%dùÿ¾?Láj1_ð?öÛIè?-øèF¿?ùžËÕ¡P?íŸ]ÖÅ?• Õf? •¥!/æù? êxËkÜ? aƒ%'êÚ? º™&+9Â?¯y¢?÷iccÛê? Lýî?ç!Ö§àÞ?^„T„jª?+ŸfÄ?ŽSsÑL?‚)žÈ³0?Z! “?xü ô%?1žyéž ?²ÏY/Ô?ë£,p?Ɖ‰?:÷cÝ%?”áG×4?€¨™f$ß?t5 ì>?’òÄÙ?Ãfç¢ß?˜ؾî?è)zõcw?˲3ýë`?$–¾Yé?ÖE{h?œX_Ö?4ñ é$À?ÇŒ î?0Š76ÄÐ?¹Ž|ÒJ?ŽŒxi?‹iÓŠÓ¨?ˆ½½{„&?dÓ‘ªâ¬?áú#¥?™R·äšw?Òž¯èŒ?¦SõIÈ?`æ*S%ð?J÷Ö\¡?Y|ûNŒ?u5)v?ƒïŠJ¶?t:ÐZ‡F?I[ìýow? ¥Ë¢0^?*œ|-?•V+Dš?zÍE÷Ë­?ÌôÔ?S” !¶8?í©½?Íçö\ù?9é[¨Z‚?ôS™’¤ž?ëéüo?Ñà@vç‡?z~Žòµ?Y)?ÇpA?§DOó8€?€ñ·itF?ápe³~?¥9„Z>>?’¸gN¬?g X[‰?çQi?îSböÒ?vOͶz¦?•‹OWÄ?wEléË?PÐêeµ1?Z7½”?ˆã VQ?bDJ[0c?&ô‘B¥?(eGÖ§?!Ë»R¯?4¢yêg?kÙAõ?œ#6ì^ª?ݤ¡Kâ?ãö»"2?»<[iŠ?ië‘q‰“?îvÇGï?H”Á7 P?~°Xóoµ?¡¾NZH?Ì ƒe‹?åý+ˆh?`J¾Ð0«?+Ó=K¢ì?›BÂ㓆?E,£(b?Ýêp+ú-?uX…vù?ï![¡á ?=+Àª„?_º®U­?_0j•Ð?E8ÐöM ?U²Ù—?ènm×o¨?¼¿àJñð?¤…NšªZ?§/Éim.?‚̱ç?ìÏ>8{?å!9æ¨?=X ªÅ£?[<(-jÀ?w?_äßÅ?›µ=$A?ÓSòëÐ?#Xõ„¡?ŠöŒål?¥'9?wO‘xõ•?à?þ«?42Á R?uæá°š?±\bûz?ô€©p%Ó?EqÔs÷?š­5 Î?á€ei¿1?Ð#kÆ?ò£Í«å?¦õY½ g?Êä,?[ý™ˆ?iÎæ'Åv?doãPSª?yÙ¼¨4?ܯájçõ?³òÍ/Ê>?0‰ÒÀ?¾;ƒ•;7?¨“î(Ûá?–Sλ¥?f¾*¸š*?xb0?ž+3?ø™Qáî?Œó¤\©ñ?ômF‘ê?B¶£•V?cˆûžS?CѲþd?Ùñ{¿?:?)ý#/£?Eg/k?Fî[%FB?MNú´•?už¹?ѳþ訂?f¾-M…½?'®)pV?þ« Ã-Î?ÙÒ ×"?³-t4#Ó?0 éÖ?z¼õ›?uß&ZiT?€»3ËXö?‘‡0˜ˆ?›œŽàs?“~r‰e?r´Tëמ?:šTB©?óKè<„‚?¦½nü?[¼f%øÌ?èÈ9Â?ŸHa¥&?$Ö/æÐ?ÍXæRG?²Ó$Ã)Ž?áBÄ…ðX?N³^t]?Û&%Nä¶?/ÞîuB?_w³Ûí?x ‹ƒ?~œ9Âí1?~jI]}·?‚±d¸tö?’­Džú0?±[Up1?äˆýlHà?6›åd•?´y«Ëp?eRxsî?;Q‹"Ð,?YÑðò?Ò™TY#*?[P³µ?²4¡ÆèË?çå+íi¶? Â*¿Î?«•î^È?ÆÓØY9?ðaÀ·2º?¶dÕ°˜»?‰‹',¿?W^h¶?âMhx_Ð?l†Á’Š}?ñAÎ\hÉ?hÓÇ|?¸Å¶*v?¸¸moLÎ?YnÎ5v?þ½s¦Ñ? $.¤ô??´ôJø/¿?û~oÉá¤?§aü¸œ?k1“i²?÷¿tÍ?EÜU¯îl?5vïÙ(l?î^/dv?œè>ç9?hùX/Ðj?k,›Ó? ? Q‘n–t?aÖ.üÆ?&&¾Æ?Àâ0yx?Ší ýX?ˆ´c#F?ÊáÛë.þ?axK÷Bi?wVâ´? ·Ð¹Mt?"÷Ýù1?&`Ô‡j½ø?+\6ìš¹?HK©1Á”?L@½¾Í4?Oó}µ4Wr?Q€ùØ Ü)?R„µ« â?RÝcü ?Rv³ûÐÖå?QU8,Ð…?O+žõñ—Ü?JÓÉ߉±è?Fìº8#ì?At8ã8­?:†2G'Å´?3†à¨po?,-Ôg¶E·?$E¿Úä ?‚{Š0?á»8b6R?Ûl¼°Þ?Íãs-~?ȬëòÞ?ç.q÷?=ާ\}Ç?¬Ÿ~Ÿ²’?5íã¶c?êÚ1W.?Ýq?¹ö? ÂÑsY?HrÙ\D?>Á, Þ!?—w÷|”?þp§¹ &?ŽÅ=ø·?^‡"Úz?}%1Hu? œr¯w½? •oÊñØ? \ÄSô? ÞLê ô? ¾MC(.º?(§’Ÿò/?—"…}?ðD¾¬ô\?ûQ,ó·?Œs³g?øáIÏ5¼?X5äá¢?G¨™¦Öà?ÐEaã??² óŽ#?QV&„w?—µDÓ¨à?èÉEIü,?®o²;`?ˆ†³¤?-ºV€íW?ŠÏ4ÛjÚ?¾tQV?ï¡W®)? U-–Ž?z†$¯?‰ŒôºÇ?#þŒ)‹s?ÞãtŒÕÚ?òH.;ûˆ?Á5œi;B?²Ä+, ?Ã>{$?öñÞÿ ð?cÅýw¾´?1ÿ >ó?0nÿ4Û?,n… z?ÿ RÉ-Ð?šÜ ?ÚÝ9ñ?bj˜¤ÒÙ?ÏìQâ?k;u:Qn?>x¯#Ð?@zMô"®?X{&kb?h#²Pß³?Yi1=(?+õÛi´?ögÏõRˆ?íKKåc?N¯‚á-?9‚© ?VwjN&è?È3›XEN?(­µä²?,uCy?œµSU æ?dv_³Ä?–ÕF¢ª?h§HùÆ? d=9k? ñ ³jÏ×5:?ò»œU)\?ªÌ`gÉ©?VòR›L? ÔÒ‡Æ?ÙVpIù?Í:‚B´°?ä@¤}”?ŒÐNÐ ?@—6?c¬…’–•?u,‰JT¢?xô]éæ?|1ªü¬?Žæ|·}'?¼õC4 ù?º¤rÆ?jÅ¥RÀÁ?Ô{‹+p?7Ãï?‰j5ç?Í@u®ˆ? ÉŠ?XÛtY‡?´Ú&‹†‡?ô¶ õ?sí·=4Ž?ª´·³Œ5?«¹³‡€?lçÓZ¦6?ëLaC>?*¬¦XØ?:¢Oz‹ ?vå?"×Å8Ü?Àìø®?6Wùï´?{È!à?µnzì?óä¿v?o'¦vû¿?¥ÒVª×@?¨õ®Åm ?}Op™ýÊ?3¼cn]˜?ß0i7¤®?ŽàÎ(ƒ`?M·Äl›c?$ûƒã/1?Qu(?FÞX½¾@?£¾yö ?3¤l¨c—?çÒÒ QÁ?§ä’}ÙX?\HUì?ü6Ç À›?“¨W)׺?< »á‚ ? ²ß,¿H?'s(;?q°+ßýÀ?L3Ô3/ì? ”óchÀ?"K‚Sô‚?%Ò'®T?+ž„Ö›Ø?18½"»\–?6ðÅ?óã©&?NÇ_7fß*?Qƒ?z<‘?SGUØnI¾?TyÉ‘¼ÐG?Tïúsè1º?T”€=m?SiÌ•Ÿ»?Q6Û·Þ?NlU8:¨?I KA+?6—‘àÑy?0C|ÙrÔ?'80 ‹ëÅ? ÏÜgœü$?_Ë6p²?vrÝËmT?Õ*)þ6ž?¥ø{rhá?Ifœ >?P½½N8?€"ÚM@@?ȱSPGÂ?:b2á3%?ì§•É?â(tæ4?ö¶»jð?ÞN h‡?=Oê‚M?ÑËL‹ã ?—úkâîx?Ò bDAJ?äÏÀ†*(? Ô…‘KFJ? õ!lPÄ? å¹éÌ2? 4DjãZã?¹iÙÃþ?n?±'Ç?З¥{Ϋ?zFËņ¿?¿ŠÃYWÐ?o Ø¥?¼Ö¡„¢l? •ƒ:nR?_àƒ2[?ôÿ‹,ÖË? 0_…?ݼœqýÃ?iklYb`?²Äpn‰]?}âAÖþ©?g¶"?„X÷TÃ$?ŠPz?JA?«tæî¹¬?ï.ñ‡_?!TCwÞõ?!á~ò™»F?"+T ó.¬?!Å=žË ? ¹C™ÇžN?€<ÜíŒ?P·&B²?s!YwN?@LVe]?Ò3ÂL{p?l<ëè?ȶ:ºÎo?¹dâ_ð?©Åô¼’®?qµ%K»"?u%ÓŒ ?g(û›¤*?½ ’šò?'áD%ä?¿Ð¬P3ˆ?Ó'Ñ' ?Œ Á1?špwº@?œÈã«„;?~à·8Ë?B–zŒ¿?éø=?àÔ _…?3œ-Å­Ð?ã/]o8?ò¤K!§?4ÉMìyH?içÛá„?Qònwx†?½b) ¨¦?˜«:û(?íîßE=è?è Sïâ?ÃÕ™Öa ?ÅT‰X’™?(Ý ?<âÔiS?—ÚB׈é?–r/±?ÛÞ­:‚?#h¹„±?'“ Åö?]bbý>$?_x‡¦ì?z{ôv?”£>8ëã? T‚ö„?Ɔ„FÊô? g_x‡å? œ‘ïpŽ?¿e ð?ïôÏK%J?Kyg!È?|ÔcuÙ?Ksÿ;Øù?ªv üàà?±«gž‹“?‡îÙO€?Iéмð?ý´"»ÔÞ?•Å!º6Z?ÿ‡ÑhQ'?2ôœ–J?<øŽ°–¦?>Ý;΂?e´gõÔ?·ÎË•Á?x;‘×- ? ¡½æ^.?®ú*a?„ñp¨ž?^Ÿ° G?ãAS¬½?U‚1?Î:¶ÓCÏ?Ò¡½)?¦ÍÁV³ˆ?V]`Ÿóm?òZ“Ÿ82?’ö¬?M3ìè®?2‡&ï÷?BjK€Ø?n3ÈîÏ?Ÿ v»ì†?¿Í#¥ë?ÄòË”îN?°Å*jò?’¯ä¦©?€C¯Õ ?‹ù°Ü*?½e3á?Îx¾¥W?tïñý½?Ü–T*ñº?;n”5ÕQ?\øZ?âK3 '÷?=0´BÐ?¥™¹ÔW?éÒ'bº?té@Öä?±="¥†?¶3ßÿ3?yšûÚ:?ù[×U?;gC»6š?Qø‰$ ?_±”Úàà?”SÆ\5?ÓgÀ}ú?Sú´ñ?|·fdz&?"6-jÍ?Ôxð'¨†?gÆ÷©0À?Ɇl!?ÿॣ²?#+¾ž?Iø“)03?€ÆÛ”û?ÄÁ :§*?™J’Ø?0üÓÝ~?0r(¦?ùÙ]ë×?ŒœÞ¶?ñ‹%úÏi?8ƒe¯?vY²J»—?Ãn}ë?5· kßì?ÜÀ‰;?Y¤*U r?îYÐÃG?¨ÝHÌ©{?Nº²ýN‚?”wÚáô?@Çë΋?H³}íd ?à òLù•?Ã,ðö? `òƒ0 ? 1ÄîFR? »ØíÄ-? Pçé]{?0Vˆ/RŽ?Ñ›%m?-—â`ß…? @’[Ä?s &±*?3b³ú4?dï2^ì?×+(j.?åj=ÈQ?Ùóa¹Ø? â¡äŸ$?Ç×퉶Â?: •à?bNK~2?/Cá?:°ãªì?¬åd%5?‚žåA½? e‹`’‘?"/½-$?#߬'Œ?%RéX˜ô?%n£õÁá?$Èkœtºd?#@d/м?!1±tä™?¹‘}ÙÊ?U¡ÞTø¨?|&¸*Ù?«XÇóø?¨€~hD?2WØ¢Âã?N’+¯Ò?ØÞÏ Ù?“:ov?$É‚ ï’?™™r{¨º? Å›?—ãÓ*†?PŠ$§|ã?6›ÛòÓy?:™âá›?@Cöã}Æ?/ʽ?ù7¯Ã§‡?§aPbƒ,?X3ªÊî?5`šì^O?bKywÆ?ìê$plø?Äþg¡ˆ5?ÃÈê¤Ð?·âæb˜‚?rM=(ã?ΩHD?»#±C–ç?:¾Ù’êÒ?gpÎ\1€?oóWV„?Fð=M?{¹Í??ðíf|ù?t'Lë?{ÍÎ.VÔ?× :™ÛÃ?9Ì¥Øì?M9gT «?Èö+Dxv?…Êò’;?Œá t?„ x?vÇVù8H?¥‹,°?M$½ìü?FŸ›Œ†?ýÇ01Ä?6òî9zù?”ë7y?ºˆ«dö?lcKÕ)?¢9®Ð¼°?¢^¸?9µ°ÿ³–?÷cG€"?À¸œc?}ɶ+’$?ºûË ?e7’ÏÓ?ƒ^Rx*?kr;r?¶¡Üº?.ØÊ^?§ÔVÎ?a¬;œ­´? ÔaŒO?å7&Ò¹?Ä5‹DOÛ?„š¿ È?î¤Vm ?a“~£œ?z›L H ?_š#Êœµ?«ÊZ?³5Èà?IŽ,æ¦?ö­£˜?μê®ô?Õ¿d­é?ýÛáºÅ*?.ržo|?K´¦Ô·?EÐl²}?}T…™?Ýå]?¥"os?Œæ‘Ð k?¢ØŸŽ²?æÊƒuj?LJœ½¾.?Â?aÔxm?:fL´÷ö?®Ãx£ß?!·k ‚*?˜Î†¾ Æ?#fÿ0?Ž!â:–º?ñù/Ö~æ?+Í~,ð©?+IV3Ö?è`– ?cB ¹‡°?£ýŸß1ð?½§ ˆÀ?Ñǹâ—? . ›Ý?ޤ!‡ä?v ÜYA?µŒ{UUë?'8õ„@2?šXxH*?è§I†²p?‰q°?þMGvì?îœ×<ü?ðÔ|PÅ5?X?”è?g»Nœb?øtIp¯?e×Ó^T˜?ëbyãµÃ?šô›fš?}óñæz?‹vÛ=›ö?³á T³?ÞàÿÍS”?÷þ’Rh?ô(ò²P?Ôd‹™(î?£¤ØìØ?pHM `?EiްM?%ï²Ü›ï?^¦ÈmY?âùÍ'?Ùñ=? ÄaÎb?.àÀ–Ç?–Q.%? ˜ùÅb?ïa~J_Ú?Ò:hv¸Æ?Èsi‡’`?àdstq?ù↉N?f¾6Øf?²3b‹ñl?ëÄÛ…â? ›`)2?Q*l¬?(W’×75?=EæžS?fšË3#Ô?§#‡c`‘?ûv(»_p?[£ œ?½ËÅbI]?kÆo/‡?_·ééCQ?’õ‹‹µX?¶Pàø4?×äÙ8lÃ?¡¢e?R)?ÎÑ*?¯É8™²? fÃ?Pd–ï?eR]Lº?JëJû’É?÷æP?ßÒà!ÒÇ?Ë•¢¿.?ãûá_?±c¤þÍ?^3°Ö?~ÃÊ 'Ù?g¶]XX=?W¼lÅV?š‚6WµO?ª¶RçŠ?©žu@,?fü\Ig?Q d­2?Yܦ°F?h“¨u·?c{ñ/g}?;çбgô?ùÖµ×?º"x²7¤?ªhù˜?éÏÖëhŽ?|-¸Xà?@”±©<›?ÝT{ª?ŽÀíyÕ?Í„ Y°X?ÀÁÒº¨m?~lö¼*?~ÜY†'?´ˆpßm?IF;iù?âÿÉšG?‰árMÌ?M­r1ú“?A"ïq5¤?pFKOzY?ÖØ‘/? ?^ß©±üh?æ}J&Ñ?Œ&(¸”º?"Û‚ª?ƽÑG»4?“"•(úÙ?=IÕù¿?³ FŒD ?á¿À@ï?ýïö ¾H?ðô·-Tø?µ‚Ñšq¸?Zóÿs¼?ÿ|¬¬?Áå‹O˜"?¹ÛŸ.Ÿ?í.pÛã5?RЩ'_’?Ùw(j:?o×aÖQ‘? Á,Uþ?¦/R }?@ÊaíJN?×b?^v‡|Êþ?Æx_äQè?ýRj­°‚?ö¯HSy?«Âǹä ? æ¶±9^?^Ì‚ž"Ÿ?w[Ž9¦?†ì€°?±„]x7¿?!7R9q?Ï`— ¿ ?ÌÒlÉ&Ï?òcnÃ`y?n³$í?÷·çìï?ÿ4ˆí\?Èq_èf?—u×"P?†õû hð?¢ØgFÑo?ãº+gž²?3ÁÒø?y:]òô? Bpp?¡.[0(?~ÖYÇó¼??c`·•Ë?èÚH$,Þ?$@Ô×?&úú¤?¬˜å½He?cÃô- `?EÂeÍ&~?Róa??}1=´õÿ?­LhzÓ—?Ì”9¹–?Í¡gNp7?°O°€yè?mäµ;¾?Izay”?â€?ögŒ¸?áaðK”ô?ÞHIöˆ?ògß´Û?n3a.D?]tã3?Ÿpüs@?Ó铸>?òærÝÉ?F]¿V?l­'eü?1ÔÎ`_?`=±4?š/5d^è?ÑχþT¥?úùø)9?Vµ¯0d?XA ¶?)Dô#?²f‡€?=:üG$ö?xéYöt0?Îì³Æ„d?3¤cÖP?•(¹Ü&Z?á^£ ¹®? ý„mû4?lVþP¢?$‹ñk=Z?:Iq©?u ¬Ç%A?ÛÏϯ*p?`3«Ê~?âÞöC¨??tÉžiˆ?[áú–r‚?2ÇŸkÜ?Õ8ûåd?bã_5q¨?<‡³j?É_nãj?ËLaE?þüy>¿Ò?MøûµŠ?—÷×– ?¾°R‡ "?°%éA7l?k:M½Ã?þºÍ·Î;?ƒL,¸Ô?Wž3i?µ´èP.Ü?qE8†v?8’£º¼±?m™þx«?Ë­SWþ?±×Ñæ°?×L.“ßr?X‹eü]?5äLS_Ñ?K•ãY‚?^ö§04?6˜{ÌTà?°¬ü#?ÇYþ¢þ?£þÿ€á?#[ûsª?—ëà Æ?ù´£c?P¬6@?¨”, ?\¨œ¤?´)‘N4[?–E¹í°?¾áõxš”?¨À¶§?ŠÍô5C?÷H>z —?\õâ –¬?Èú…Jú?L\jûWý?ótâÌ?ÍYäüý;? ™óXý?!ÍŸÅ@*?È‘0÷3p?"úAĵé-?'×&:R‘\?.ó㻉v?4V`’Ä<…?:š9q?A wmÆ;?E©†ú‹?Jk’m3?Of©6ì»?R °Pét?TyAŠ,^?Uj S¼rš?V ØžÚ?UÔ£ÿÎï?TÊêR´?S LÔÿ‰Œ?PÆÜ…Ý-Š?Lg8üåj5?GcZf?B5F|`?;\bmÉU?4„ìÑü?-#æêTÏ?%.ó¹2ÁÖ?¾ˆ]åt?3J7æ?#çr?ÑsÚÎé?&9nîn‘?ònÚÃøp?ÒqG=¾?–Äß:¸X?:PV±àî?ÐMW§Ë?pÜϤ?$€|7¨º?åDÊÆÐ?œ×‰è&?7åCrf½?lsœcjî?ZÕeóò8? …½nÀ? 8Na¡ç? °Djõ7ø? á¼QÖ?¦éÁ0è?%‘Ʊ7ù?Ù.D@?‰_æÉî??üè­u¹?óš‘tÀ?’ Œ<ê?K¸ã,îð?ö@ª-ÞK?aAŠ‚Ú¿?µ±m²Là?&ÕïÝIÜ?ç6¹Á?¸OßNP?åîÚ jq?NW—±·f?t—f™žä?‰©ÄöÍÚ? ]¸ëÜb?"þr÷| ?%äp:E¡ê?(‹t삨?*Pop_ Û?*²¹-5íœ?)dä*$?'1Ñøì(˜?$0ÅpÉ-?!.Bt6?@jÆÐža?s¢Ð$?“ë]±?MnŠ?ó¿ª×?Hüiµ;?ºÞƯ´Q?õJ­õ’œ?©sY?¥OègW?åZ€«ô?•‡B?Ü–S4ö?—_ dPû?£WÏ?`²}ÿh?ÓÅJÛÆß?Èh–1˧?ägj¶!ç?É“˜ýýb?;Ç’ã-?7„ŸzÓE?í6û™FÔ?¢ÓÇåR?‹R…¹ÔÞ?¬¼m(ø?ßÚÒÛî0?í#™y:Ï?¬·ýË®?e´‚Œ?h:g“ýÈ?Â÷µ±?`-l*Œ?Y&ùQÿ?«Ðôà?@ø= ?ø˜U«hy?´Š \TÄ?_ñYv?ð¹A‡ðÔ?b>ñÒW?® ‹§?Ëtr1Ð?²^=$r?iD£X ?.Ó†çÌ?¥Ü4°¡z?h¢|Agð?[ìHšf?y+t4éß?§òOŠí?Çz+ß?»²«‰û?yMäQÕœ? ô–w?’Ø]ŽÎ?3šÑR'Z? â+44Ð?,i¬â=?f{3€.?Ãò#×M?Ìh\²¸?†f}%v?BÿHû7?û³ÕF)?¨•Àè2Ñ¡ð?³ÎFCL{?"ˆý{,r?Éc÷¡5?•zyš5?k$ÈÌ?3Áw^"ô?ê¶¾Íh?œL¼¢Z¬?cüÕ´ ?Xi¿?‚?‘‹D{?ÓdÃɵ?3sð‡,3?…Gm–?¶|ò9?„?ÃÂÀjy9?´±A=y«?’–ˈ@?aÔ­$L¿?"9_+•?ÕÍ‚”E?†ŽÀóª?E•=\j?#=¯(ã?$ëqBY?Af°á˜?e ~„¯|?{Ï+Ò¸?y¨ùžÎ°?_ Jì6˜?5q_‘m?Q¶MD?àá !?Á±Å{®?±åÀ}Ð?¹RÇÐ?áŠóg?/š—c¢Ä?žÑfW8å?2 ?¤ø?”)â&B?ó2Ç AB?6qéõ?dÔŠ­VC?‰•Ô*)ã?¬ãÌå«J?ÐCéønõ?ïÔwæ?÷rcÅ­? M“ ?7‚Ñy?ôî QÆ?ñð¯9r?u7Œ ?AS¤%ì?·Ù%2ª? ’>6F?wAôÀz?ÀêÇ$?ÝÒ'L"2?ÖÿSZz”?É¥S{~?Úx¨?$v«Ûe?«&ZŽ×ï?W-Ê’“?ýÌÞÙ« ?p‰}ÛäK?Žl|ID?N6W@ûð?¿å~Š?(í>œ?Lã.¸?Àl'5‚?‚{L:%?£ú—e®¾?M@×¢ê?Á7ÖF@^?cúIVo?ÎDZÉ.ˆ?Þù. ?Ž¡ôkaÆ?ó_Á«´?2’=YxÎ?tñš?Ñ>Æ7²t?R¨=ùØá?öô’šþ?ÁmlwV?ÃÖ<¤í"?˜?èšš?Û¡Aéë¤?i Gwe?kÇêè¬_?Ö†.s6Ä?Î:ÒÝü?Ãë£vFá? «Ì ›ü?æF ¿Yò?lŽöHÂw?¶¢‘, ?Õê…ut?ØIx–?ÏÖ÷r6?Ø1_àY‚?÷J}âñ?ž¨Á÷wl?€^*m9Í?©JðD¥I?û,tú?\Lµ?Ä6OÒg?:E±ô\?É‹–z°?xS´Ü¢?Nl5êcš•?Y.P›×?ûB:Æñ@?ŠÐ³F?'ÍWË!¼?öh§HGá?æÕĽú?²VY…›=?㎡Ü( ?áÕ·ÝoÌ?ñõž\? ¤W°z?#g?GÛ\‹?&rÍ>…¨‰?)4™@ø9?*ÿäý’”T?+RÓ›D^?*µãER?'“BµZ?$x£m@?!f_pâ?¢^V¨Žf?Í{LÕñ?3­G@â?ƒ¹S¦þû?ce®ì–—?­!è4î?åRAF?^ö{Þ??HE˜|?î¿V}èŠ?ê'篛?‰ÔÞO¯u?»OPNY?¢¶Ž¤£?+8:ø?+¦(1”Ä?À,¬ò:?¦ÏDç?" {E/? „ÍWr?B=.ÐA?QIÍ?§ƒ:Óc?B£«; %?o¿˜a ?™&ÌÛ?¹8`÷?È,ÉüÈ ?¹9®ñK?|-»ô0? ™YÍÜx?m}sŸú?ɽ“?/?NðeL¦K?.†OŒ˜h?‹ ×!o?jZ…z?¯ k^#?ûŠ o?]i ç‚Î?)‘éÀc?ì8Êf?›((î?yh¾‚ø?W‘ràÕm?/cE+¼? ÀJéÐ?䨕i?"g`ÊŽ? U0kf?Šêœš?õñ4v­†?Ø‹Úà?¾àü^F?«£Úµö^?ŸæxÐM?ŸÝa»mø?µùˆË.@?ï’ƒVÿ”?UfÈ}0ó?äm4E?Œ0"†?4UfÑÍÂ?Æ|™ÇEè?5åû?€ÛøÿÍ?®dë~`¢?ÈÕLú©l?ØÉ”8Ü?â&h«çã?ã¯#A^?ÚÝ2ÊŠN?È _b!á?²ü€ŸJ0?ªx˜œÎm?À4\@?ÿ¥G?hu4Ld?èoaÄé7?^þίs?¬- Üš?ÁUíäê?¬èÑ{™?’ƒŠ¶(y?¢/÷/¤?ùטÔI?šd>¼¾å?e"í®AH?&sŠRÃu?§õ¦Q~¿?ÂêìÍ^¡?j4s§ ?¬sÛy?®S΋Qu?¢ê°zù»?ÃåDWà?Féú0mÙ?OC©ª5¸?ß׈t Å?ÕVøÝ?ëÓ&ûËs?Ö EQë ?Rƒböa?BZSø?­¹51?¿¨¸cÄ ?°>d¿H?°ec0Jl?ßt"èqÑ?KO÷)9?ý+L£?\7ÈV?u´¤ /¶?`ë"õiu?¾Q¡Ót?fÝ@¥á?ié±Ï?–D_DŒ? ÷¸×œj? Ý#Qü®?;EýØw?–þªù„Ð?¸D]±‡?‘^m °e?7Ð~n?ÇG©A¡?d¡Ø_Y?9Ô¥dÑ?i,ÛÍ?šaûœ?ó‹qO¬7?)gß?‡ÿ@Æø?]Ý‚ ñ?ž ’¯?VjãOƒ,?)cÞ‘S¸?`ÄãFÁ?.èU>Ò?ƾüÐ$6?pÅáÿQþ?!¼½‰?$¸í‘éq¶?*XÔB®,?1 va´æ?6Mfï¸?<´Jéf9?BçA$ìb?F5Yþ÷&|?Juös¦…?N´ ?HÚ?Pù+È%j?R1ðªZô^?RÅ6+lš?«@²óªÏ?“.ëð®?d¿ëÛa°?'©Êxä?ë÷‰óŠ?É ­¥?ÞLsÝŽ—?KúCÒÞ7?>Ió’¿/?òÚœb=?´;ÁŽ? Zð)[O4?"îv;&?%ýôÑv?(Npˆ‚¬?)ëôºÑõc?*'OŠ”ú?(ì”îë?&“yÕpV˜?#³‹¡QÔ? å3›,d?<ÂíÒ?¦€í ?Dûª´6?¥eèÖ?tੈÎ?|ëwUµs?¨åÒ2>?ü.sëÕ? âsãî’?›È\RG?ö·Æxª?›rݥȈ?dŒUÍËü?!÷@O?ªªHJ”l?ä­~±#?ÉQ ±ÝÌ?e¿ØÇT?Ô~öã_|?<Þù,7.?À.n7Œ«?q×_˜®ô?Pæ’/ô³?MãÐm¦?V¹N*Þ?_ö»}>?dft\ò}?]'~ì?=I®aF?õ!Oˆhu?|éâU$?ÞÇìËž•?9QkÑ¿?r£7$ ?BÛb™M?±Áât4ø?¤5½´¬–?×óÚrð?<Š þ_u?‡-|¬Ã›?nXnR*,’s?tŽÈC‡@?ŒÂCZFÎ?“(Füj¨?‘;v a?‰Y´Å?{ѵ|?fæ£2-Æ?T%ž*j˜?Q“Ú"'ä?pëbª´?¾ ‡j‡Î?6«ðm±·?ÅD,l®?EÅ7¾Ì?•=£ t?¥ZRÓ?‡ÍyÙe?hé@¼bV?z…ï$)?Ü…!†œ?‹~7>í?ea_?1ój/p?·‰d°”Z?ÌCv½›?_PŸ¦?|\žòñ{?GÄò«?ù»‰â?ÓÔ6ø?í|M‰¥?Y82f?ÁÞ¿?ȹò—Ð??ÀÕqó÷?£ù¯:ëþ?›PK+ò?ëq¯y?‰l&’h?—â£õî?Už)¡Ìd?ÀàÉCõ?å{¾›¼? 3s#/û?Ñórsñ?€œÆÐ{I?îØwv?ãMá§ Í?SX¨¤u?Á ›?ö·¶a ô?¦îyÕ‘t?칎™l?¢)V?»1qQŽ?@ÒRÍð?Foë×·?äQ^cö?7<$%í ?eX£zI?¶ð‚??~cÈy?én¤ËCþ?8Š…õëŸ?ù¦À'€?Ñ:h»»?¯±Š¬?&à@/4?üŸF2W?øûŠ_%?µUà‰?idf„?9·1Ô`?³Œ¤·Æ?ÆÅàÊÐ@? :ü˜?#G }óÍä?'ü–îXÃ?.³â^Eå´?3ÍÊ‹­Ø½?9Vf†F6??ÒžJ£Á?C$éýé?G6= [_0?JÃç¢?MË; ÆåÈ?Oõ¬ÃYÑŠ?P0<çdí?Pc…/)ˆ?O[÷\ÿg?LíRbŸËµ?IÁëA{?F*v;ž¿?Bt‘µJÉ?=Ì•‚~jV?7fébWÜ?1ø²àÁÍ‹?+7¬S7&?$™BÙKoû?ÑûTîj?ŠÖðË#?_y6Ùª¸?ê¥-d$?Ÿ˜ Ñõ?ɲuM?ã;{_Ãr?¥@õå?ßy.Äi?Üàä‘?þ¤m,î?㶦oÞ=?¹£aù¨? SXT{}? ) ªhH? ÷Ü` ’?å,|$?1…e*?¤îL3ˆK?î\^*?µ´Nû¸?•@íãh?€_ŒË ?žß¾0?UùŒÜB?¥20rÍ!?yJÛø?ÊÍÓ……?¡©¶k$?œ6À¶aŠ?ŒÃ€nì·?päÁl‰?NdÕÑ?!¤Žv‚ñI?#ûJOÚÚ?&£ÈäÉd?'W­ó=~?'xZX@FH?&fZ#Ÿð£?$nw½þÀ|?"t³!ÿi?’?Kù'?Ðÿkéõð? »P x?"N‘»“?Á`hÚ¥ø?£ÖΆ?Y?žÎOü¿”?¬Q8†¼?䞟¾2F?máÐN¾#?f„{?ÒÉJ%€?˜ŽˆP?†ïÐPsÄ?fN3æÃ?ÖgmO?P9W+¸H?8]ÉyÌ?ÌËM"wô?*(ÓDýh?wFÅ.+?Ùºíê®—?jyÈwŸ?.7¼¹8Ü?·ÿ_Nþ?–’@?^q6ë?—”Gú?þ`U?ÉF?j¶CNï?ݦj¹8?0‘v;§?صp? ìcÞÈ{? yn~€8? ê2œã¯à?U¸jøaZ?Ì®Q«?(lv»ÒŠ?{¿’g6h?îX“–³?ÿ-=ªN?â^ûø°š?4Æ¥“Ê? ¯û>ËM?æ7)òvf?Ì)ÔP‰e?+ &?“ê…tjä?ë mðæ ?c'%˜–X?×7–XžO?%ßxJ ²?HÝø t?`áên<Õ?ž{Õ0©?ªñ@ܸ?Ø4J€?”ltl¾>?\G?u0?9àsH²u? B:´ƒ(?µÆQ2¬†?{…é[l?‚±|{Æk?Ð4ílj§?KPé´&?Îþ(1?=ˆYIÓ¶?ŒR+6Â9?Åb0j·?þ‘/‡E?IvÄß_&?¥Ï}i%‡?þE‚páÐ?3 æòãú?,‚ìï$?êÒÀ·0?„ŸaV|¯?#^a̳Ê?ë&J•Æ?ñ™Z[9?-úÄÁ?„  ¬˜?Ç€\Ûµ^?Ñù‘°9„?•´ØÏº?%¢ðlâŒ?­›0£™?]gŸSö?Sr—UHg?’žÑôå?{0¹Ö?—[‚c‡?-xFÖD?À |†‚W?LíïñÀ?Ó»¯ó¼T?R?æ‹J?ÂkžÍý?`žîwš?UÔ•/J?c¾™³W?; Aê?Ñš;®? G”!.T?&b®2ÿy?íÑ8u¯%?/â~þ?%¯°ŽóÇ?Û±”jï½?Ìó[”?«œY.?ˆ="«ý?L8°ºà?J¥Eu)`?í­†™?æòjøé?oÀ×]ÏG?ü/  ?gà}º?˜á]?‰·aKÓ?S’Ž®•º?: F ?ý ÓÄÝ?v›ë 1?.[c|Í?YÞ/?q[zˆw©?i:y‚ú?@E‰F|?ýóÁHãï?«Wƒ\š’?R‚¨¿c5?ÿRûZ?¿ã!hâ[? â¥ÎÆ?¨#Xaž?Ðmr²¸? Y·»Ìh?MG.6}ã?‹1»Ÿ?Ççœܧ? °V¸mò?gó5I”^?ÝœzZ(?lºÑÙÍM? 1÷X‡v?¤UÔ`Ì?)¾A¯N?Œkv­y·?Ér×z¿n?ç¬èE|?ó)i¦ ?öSU}q?õx÷±'?ð^];{?è$¶7 ?ä"'}4!?ò¥Bñ?#¨Ï!ëE?k_ë¢?õïGxÚ?šÖÕtƒ ?\¢àœ?fu`q ?qŒÝ«Ù?R‰Üäë‚?8+>”7­?S]Uý?¾‡Ôʵò?s¿DG?MH”‡.Û?•Ó{D?’ŠšÄÒ?žJ³Ë£?#_ÅÍzö?)¼Yt6?Ò,Fâ´?T'R|F?øËë=¨`? ­Ê²›¨?Î_'QÌ?ZwÛ ìy?ž…§a–é?WÐðxÂ?"[Ô?’dŒaúó?SÉ×3.?B(”è?qI¦M¬? Ê‘_˜?¡wèįþ?;bªišk? ¹Q2—q?où Ä/Å?#uðr`¬Ê?ˆÀb.·Ö?ƒç‰Ë%?ÛGSÝÛ°?}|»:á?2=c„?O•ÌURã?V–bè?ÓÅ*y?^A¨þ*?{ß:£Š?„@~ÇÎ?±EYÁç?[È áuì? ëÇã}bœ? #o¯!´Ç? ngÛ'Ø?X1êˆê?1[s–‚?Ña‘¸?yJÚm„?„kDËö?¯MY¤E?µ§yå@?ÂOƒÊâG?Ié– ÆO?í0TY?ÏÆû ˜?º˜Åéßþ?yVM%ê?yËÑrþ?sŸâEQÓ?`v–W‡?AÃ/Çú?#7 ¥ˆ?ŒrMÎR?:êd7ûè?ªú©¬T¶?•wòÛ…£?-¼Ó,|?”5Ô?M§?±7Ô\çA?!Œ7˜âŸ?# _He`?#ìÕËý6ž?#õ@å« ?#®5èèW?!¨¸Çè3’?ßðj×Ú>?Ÿðûá.?×Z¦š?†;Âùã?̘ýÚ?ÌXÇÓà^?à<ÜÛì?çUÈ |?æ–Þ*?õ!¾l?p*J+Tj?Väuõ{M?À#žNÉ?³ø<ÙN?ŽC¨XÉ*?|Ë|ä?'©ö0¡ž?pD§îìI?O H·óÍ?Ñ_À*ö?>:ŒÁ?D…&W„î?‰ ˆ¶í€?ŠŸŽú~?¼4HQ¾?© =È4Þ?³„Å!–ö?Ãv5›û?Ä® µe]?¦âÚ‚µÝ?^B…©h?ä“)5ü*??,2»?ÿ 4ø+¾? …ƒª¼‰Ò? Z>îÿÐÝ? ÇÊÑïy¥? ¥–ÐW? ?ÌpAÆ ?Oc³­? ðÆ5Ž?åMQV?È¢8=O´?hToïêf?$W)%®¤?­ÎÌÁH?X:×=’?¿¤¯Zªu?7ôJ½>´?¬—ãXç ?’£Û#v?xëâT±×?Ú¡õZ?>rú‰†ë?¦a‹°ß|? ÀIuJ?b'…0•Ñ?—Ï·ÖK_?˜‹[mŒˆ?Qž8mfk?µÌâ|ï‘?Á0y5ä!?}#Ó6ÑÈ?+T)›Ò?v—×;€ ?C?« ?Ûtýþ? å7”1H?™GÌ.?|UyãëÝ?¤î‹Ž,? {>¬þ?ŽjˆlÇ?*×égJ?¹"ñÑ?ÖÛ--‘?-_Ó{*?ŽÌP?¯8ñ‘‹›?eÓ/ý¶n?IßéE]€?i°Of0?¸vnç’R?ÉI:$p?a.] Q®?}6ATÑ]?_ÝœÆ6¦? ϲ€?•¤¾Ý¿?~sGŸ?•¬ŒÎ ?Aœbà[?$èµý`?Cߎš«?“DrÁ?ü§,¹C?hlÁô¡¼?Å­C³.? ÿY,e„?DÑ Ì+?w§*Ôª#?±òõSÅ?üH1¶ ï?Xþþ,€?¾qrvǵ?"½Í¶þÒ?x d‘È?·ðn%“ˆ?ä„9HWg?ãËz? 2~zY`?7¾öˆž?JTJik?Y?uà|?k9‘¹­?Žn=Y¢?ÐÓ­"•?9-6R‰ï?ÀC Ô ?N¡Ü¾b?ÃiŒ3»Ð?ç?¡ë&? mþÒÃk?÷ °eZ?ñ†æX9?$/u ’[?¡Ì’Ôæ|?\«(æ?,ÏFèŠ ?âÿ§Q$V?OwŠ-j?NÆߺ?ÊÁÛï?Çf=nMI?^õü Ï?Å’IÖZÐ?CºÕ:¨Ç?)Ï^PôZ?¾5xû?(º®*l?eMñêÇú??ã Uµ,â?å“(…º?Ûàæô)? p}ÂÖƒâ? d‹j<Š?š¨Ä벪?¬ZÖ×?|w!!Ê?ÕDƒ?ù?~“U?ñOŠˆ?C<½ùD?´ÔGJÀz?ëe5?<<Í‚gP?Aa‚–dú?N8s´Ä?¢bG4à?q­Ã?Ë9G£@¢?•J_ÆB?“ªu'jÒ?›·šo?$„;*’?\ûΖ‚½?#¡9]?ˆeááV¡?­mj°B?À©*Duã?ðàÂþ]c?a-†ÖÜ)?NÝ&ƒ“?90’b?B&ÌìÚŠ?kË xuÈ?|HÆä2?]æIf8?>EŒ»?wxïÂÖ?|T19¤ó? ähéǰ­? ]š7±Vâ? #"Ž¥Ü? pÂÑX™? |Uþy‹? fé~,¯„? *-&H·À?Œ9¬¿³?×ø8ñh?=ç€r‡’?”²1Ç?ißHâã'?D¾PáÔ?·^`¿Ö›?ìd¯úFå?+|ùq?l6!v? ÷n@?òàßè\c?¥ó;ot?ŠT¦•?øß.¿µ?ÓÀ {û?M¼Ø­Y?¶†rgEm?>›Ð†GJ?y$®xó?JNzlÃŽ?í|¥uáF?íⵜÀ?4¢jrsî?­¡ÓdŒŸ?DDbø„?áÙjm¿Ô?fýƒˆ K?µ–(ÿ†É?¼”ý4?„=º-?.x4P¯Ã?éµv¨ñ¡?Ý3Ÿž?øë?¬{ßø?»”?›ŒY õB?ßg-ˆç?ÕÀ£ Ü?UjÌU?ðžlú¾È?LG¦ r?¹ÑÐ\µ?[à\Œƒk?G _cC²·úe?>‘ ÿ³?»Á;³Ï?L`­¨Î?TæÁ˜fø?cãlPž?h˜õä?‹çs@ª?ë×&a¤j?Œ(kÁ?UP ®àž?ð° ÊÚ?Â0'¿h?ãz'}Ï?¹ù“ô#?zF=ú°ž?t/öÕ>'?‡”&W˜?aUxx“Õ?Å3|.E?‚c2KŒÕ?ã]O{Q?¥Ìu¼Š?2y6Ôˆ?»»È?-ÊåÅÜ?<÷K»V?³^x>?CKYÿ®?Þaì¹ Q?¹ëÇ`j?/H”ÿÕ?ž´}.ó?O†Ÿ/•Ò?jÃó‡n ?ÃжÃ?´çÄù?ªÐ M™b?ŸMH£J?Ødh¢?.XC·0?vRs÷µ¼?ˆžñ]vx?BŽeùa?†ëï>ÊÆ?>{OŸý?[:X™Y¦?à˘Ɉ?ç¥Æl?¤E._é?ZEÆs ?Lý ?¬üô€0H?šÛûP£?#²x䓌?M `k?qlm ?h[YEãº? D³ãz?þµAù3°?¿åᨽ?.2WsS¸?61‘LŸ`?ó$ 2¦€?¶cõ4#G?å 5õO?ƒ¨þ¡M~?!ðW#>XÝ?%QÂÃæ?* èj|úü?0 îeQ#?3°iDwT?7ǽÖëã–?<¡œÆë&?@$ê^Ò§?AùÚÐû¾ò?CSý ã&Þ?DÈGŸ€‚?Cÿs™‡È?C>öÿ·E?AáM¥¿Q?@V—‘(?<ìå:ôÐ?7ÅÇ–ßZž?3¼t».?0½ì6š‰?*é`@¼?$Ùò+?rC? ½«Ü™k?B÷ C??ïT÷J)?H·‡Krˆ?ð)‚Œ¨ç?eÖx¶µ?'¡ó‰|ñ?àZîr?q“Ñù˜×?ðŸ]^Ÿ*?•Ž»+?4Ýæ2çÃ?W ª¤?žòWef?2»ê]?eÝ͈(?›.Üu/?·éÝŸ J?GêÙê?-1õs»?ÛIãž?¸«Äç¹?jÂ`â%?øk'õ è?Á¥úJé?OvVLÛ™? @Çþ—€]? ¿b‚?n) 0øÉ?&ÂyË€?³Ãn?àŒÅ?š©˜u5?IìfLÞâ?þ:-¤ôŸ?ÇÍpÂø5?²¦è‚¶?Çô8š¦?%‚÷{?¢Lµ'?z…‚§!”?ŒÊT¯}Ø?©Ñ–óà?ŒqEj?ò\Ìþ?¸òåK‡5?îÐvo?4eïVƒt(€?½ew½£+?S„®\n?Üê,‡?­²É¼?ªÀL:'?ÊÏ- ?B?´Rý¸ ?n¶Eqi?Û†&dê?HeĘv?§öá£?ï?+Û9Å?_¦w/q?Aò/ä¡?gÇÅ'e0? É%œ˜?óóè"Á ?ZÈ(=…?Âõ;À¦g?}!zK‡?NWÊî6[?r½Çæëž?£“6à°?ªÂŸÈø?¤r–y`?zíp&þ=?d‡Ö-Ý ?6´v,?̼JXïÊ? ù‹‡?æÚ¦ä¾|?O¾€UK?FÒ!ÄÞ?ÚòVÀtè?05mm?‚ªŠSÝ6?B,Ž‹«?EÍ¡sŒ ?=s:rü?%;ä?¿Õx¼?Ý ©?pm?øc©Ô¸ô?º•³b4?Fè=l?‡‹vŒœ?¬xæ?•Q Ákr? o{¾ Þ?ëÝäRs?¤Xyi²?Â<ž¿ù”?Õúáªâz?K5ÒJ:L? ’í¨@?õosˆ?é¦n:Ýv?Éý†ˆE?~ZÔ½”0?òopæÝ?x¼ñI?Ârש.~?ñkÈBS?–üu6û@?Å-¸KÉ‘?ª°®0?ˆ’ A´?Ÿëü¬Û_?"ù’Wƒ?0 # Ô®?¯hfVuÔ?$þ¬3Z?„„i(?˜ç÷Š®;?}Â4"ª?{V‹¹8?DBH(>?žÔ*Pž ?x$vNÝË?ë¯ÆBÍ?D·76?ø;ýi°C?˜ª^Ð%~? ]®¥Ø¬T?"쿟 ¤o?&›“»…¹?+lêÌhÒ?0¢î$Æ]?3ôŽóqc?7|e-üÂ?:õAÙ|6?> )Ùú=$?@.ñ`eôO?@ÔõºO&?@Þ®P—«²?@N1eÖù?>lCX’åC?;rÎÑDF0?8é䉤?4€\ð‚‚?1'Qr}]?,T§úáXÚ?'9í>HCè?"ÿC¡yx?. •¦%?è¥òÿ\?K|ÁÕC?›tœž£¤?+Ñ™8?k.:Ì`Ó?ú!ÄV¤L?š;2…çö?=ð±V\Ì?úy> Ì?ç¹TÿÿC?"?щ?g»-³S?”¾¡žp?•¹ÏÑ׬?…pÜ¢á?©õ„W«?KÚ¬*-9?‚P s¡M?]ç•™?väõ¸¬$?ùéxMA?®•½»Â?#} áü?Ù/l’ä?­7rz? 6þì7~Ê?úêuZ¿]?NÆ +ž?"–x¤Ûˆ?ù)je?©èç>¤[??O¡Añ?Ë –Éj?arSšj¥?„Qœ¯E?æ8!Åùþ?Ýÿü…PM?ùµ¥?9MÐQÏ>?˜Àfl?-®ö¼?kÊ« {?£Ìéî?—1.kJ?Bîó-*?¹ò² Ö? O+Q? uûÖ«?P¡/|Ðþ?HȆ¿[Ú?~a›1Û?ÔÜ Ó´?¯ ½¢?!jSöa?Çã‚Y[i?]ZVH?:»‰Š˜Ž?…!¹Ò\?9|òÈñ­?vyg6·Š?&˜–$? }Z3óí?Ø_³û¼?M†½Wk?H©Ú´x?ȇôFÿë?ç*–Ô}?ÐÖÙh?ºô]×B_?×ÊQBK?K~YÉu¾?"[Zÿ"ú?Mþnß/?ª st³e?‡´?:eT =?%èeR¼±?Ä—ê™ö?&ØnÅà?ÓÏõ˜Rø? T”\¾? õé6ÂîP1¦I??µPÅ?lÎ%C´?â/€,?õcÀç4b?fmõÄ­¡?!x>´â?å%¾=î?`Ðrž?]; Lx¦?×â"©‹)?³Ö|I?1H)ÂpN?¬q4WTÚ?ž¥ í¢?þ«ºK¯F?œì>+Å?5Õ+Ò%p?”Ͷyh?ª]ðTí—?¸?sÆæ?t*JÍœ ?Ù^®²?É"Ðá¾`?=é×Kò¥?ÃÃ*½ÞÜ?>· ­žM?Ÿì?ãÙ—Ư?ò.Ftè?P£³B4ú?œXž×Ü ?†G–¨?ut^á0¹?×.ÉØFŠ?ÿX#Nô*?ÌB€üUù?.«k-¶W?-ýüóÝ?౓аƒ?n%„ÇX8?o÷Àø?ÂÅ£ÀÉ?ØKÃ-Ñ?Qüˆ.ÆA?+Ô èê?OjKËß? !rÆ(?ÔlC?u„ŸgçÚ?ã;¢‰º?E‰Î‰öŸ?øÔpù?¹Ü²·Z?Æ(ˆz?ƾÎÂâ?Óÿ4W~ó? ÅÀ^ÔêpÃ?zdâ(V?*!,>?õ[³b?w¢ÃBow?ÛÒA•ÚÓ?SÏ#ÑP:?ãŽù¹ô„?´hv©?ÕË7ž­4?t›ûâ ˆ?n­9¡ßp?[ÉQÎ4ä?»Ëž>åt?6«ñ (¼?ÅéS¦ºj?³¦kú×=? èÀ8WÎ?ï3ˆAŒ?¶4U³à?–V&€í–?2ýøªè?þèm?žÐ*”v?FCe?“W}†æõ?¾ñlL`?¨¥%t?_cB¸¾X?6b»vyá?)îSÇ¿?3 Q@?EÓ%±Jz?R6ËÏU?FY(ì?c‰3V ?Æ‚f°Ì?_È”Òн?úèTyX›?®Îk<;?Ž´b8VI?§k¢Â¶¥?üËÐÑÝÊ?†Tîx·q?*f»ò?½S–>å¾? è._œ×?õˆÖ1–?xå<ÅŸ?ÄœÈu?$3Byµ?ài`O*?Ouð?«Pbå?™ÜìáN?TjxT"?²|Jì{?’²) †D?öHrJˆ?úé*å?ÎëÌ^1~?©§ŸþÖ&?½ssÖá?Ù_ø>?­/ÀMÛm?Š2y—YÆ?¬`) wò?3ùõY ? {n”?ô6¬ËÎ×?¡ã×? PeýŒ ?&þbiÐ?;wnÚ¼U?LëÑÇ/?¥ŠÈ!?t9hŒ{?¸÷J(?EÌ)÷M?Ø&í*°?9žÀ]ˆ(?TC”^J?<˜©“¢ˆ? o^ü? ?-0×ü?xwj7?úž 5ê?–‹Á½‘ ?+5B3ˆ¸?¡ÅrI9?ó¿ew*ô?*§tUXü?ZŠ•ñÈ?™N¡ßò?ñã@Û |?ZÏ›…(j?´½¬H4ë?Õ^ >?š*ò;?õ'ØÖ4?ò[ñ^8ï?±TÿQ7?Zà×R&?O ? kñœ?_7 ¼Ü?‡¡d%±?Í.²¯j^?fX m\õ?1rÒ)?<õ‰iâ?‚a˜œú?ݧñ?5½\nµ€?j_ýëª?i-Àßáb?+h9pÝ]?²£ Cb?T˜üïü?5aņ?Vy§#?ˆkòÇÙ…?îh34?¢®›£?³¾ÚL?žoÏ„?Á»þø«?œØ¤Æ?+Bó4ä€?¡ŸÆØ?Ф3bä0?¼˜ ––“?}½;:‡°?7˜ÿŸ¦î? å0?ñ°æÈø?D>éBžó?™ÅYî .?üâßc7N?d¦V{¸ì?ÜLˆ„{‡?`¤÷ O?h7 Gc2?š×ð嘊?ûSýï†?U|Þ üò?p‡µJFÎ? Ö†¥&Š? *Å{\#? <ñbØ?Sª ‚°?8í¦+±ê?ͲË@ì?)rS ?oª¹áæ@?×b°ª5ø?£4ó‡x?Caz?X—õ?iOÐa¨M?c@ßåW?Á£çfø®?6¾ž6?³ÔAäj·?|FsE¢ë?¦*èÕ ?Œ¢;?†ç˪[–?Ë'xµ¦?jJŽýB ?]ëÕ€x?•h–›?×?ü4ƒëe?wµiÞ?éG5üg„?5è|Ô»’?OPçN-Z?7oÔ‚b?øš{ŒSÑ?˜ÔçŸÉ?ºë†Kû?M+ÍáZ°?= ½¸fe?áiìÉ;?V;òËD?Ì­c ]Ð?z5™À–Á?Š'ÅÜI?Qbÿ~2?4«BµðÕ?çêúB—?-³Rè<„?é”B:ƒ?ü¶Þn“?Šø.õ:f?!‡Aº[Ì?$”š“èˆ?(Xêr«sN?,® FË\ä?0®ÔÝèƒ?3 ö·kß4?5<ò|Jj?7^j¨?84cÑû?8—òĺ~¦?8WDØcÌ?6ÖeLTùÌ?4æ^¾ÿV ?2ŽøÈÉ?0£ã_©²?+jèåE?'8Îél?#°{ÙX? ÌJ z±À?â„ëgù|? ˆÃ á?ô¨8Tã„?±ÓX±÷?ÈC\xS?Ô ï·Ô?‹tbÙ÷½?ÃüTèª!?Ër&ߣ‚?·+•$ò?½ÂAúk[?á/µ;4?øVE•Qn?®ÕÔP˜°?Ò*ü’k?oá}„?ÎÈj…—?N8ÏiîX?0{:‡?o«Þ¦ní?Ƽțüj?Ñ÷ªÈØ’?GÀÀO?—Žßbä?¨“”J? ¨–ÎZs?ºÎ€7àÀ?¦ôÏDs?—ð§/Ö˜??s©d³?’ãʼ|?½O¾'"?Hä‘xNß?ÁÃ#~y?58;ñZ.?¯’ý¿L-?;·ìí« ?á¯R±@¶?¤S´­l\?~Â4”Q?`”M Ð?73ûÃ*z?ô¦Óz€?”«8gÇ?#Qç•Ùú?·Ž1K^v?gý^6°?E“¢¾Ç¸?Y@ÊJ?¦réY@.?+ú%ap(?á+Y ë?¯oÍxWÖ?n¡>p?îIÚÀ? ÇÙî ˜?¾ç¡Z;ÿ?68ü?¹'axPè?ŠÔRï5”?Îr»o¶È?t‡Pé Q?DsÖR?óÜ-0¢ô?E©Ü™_­?êR͘?oD.;Ë?fG6Ò€?--D¶lV?ù¨—JÖ?ýÁ/ˆKb?^u¨¨¼@?+:ynðª?YAg<=?Än”Ù0?8Ž_õϽ?Z…³ü?{$n+y@?"?P+á?ŽÚ¬ÉuÚ?ÏAÐp7ë?—Üòb? „±Æ9? ¡¼Ü.û¥? Ĉ_{Â? ÿÃF™á? “kÁ©? |ê*BË? θ H? H¨/? Éoð…¢ò?JtÒ‘è?CbÂúM?±†`}Œ…?÷މ°´X?)g†Â™?[®6o]?œ-pIoœ?ð´2ù+?Wp8’Þ£?ÆŠìím?-}Tû$?x7_“OV?ª.?-:?¢‹1 !?—Ôl=›?;–A|Õ?„é½Fë?ráV:N?J'Àù? Â(F®Ä?ˈÂü?§kz?·?·„†Ÿ’?t»º_b?uþaÓ9¦?÷¶ü?aÿ¥e?›ÏAÂ?šƒê”|W?v¢;Ë?`ö^Œ?’µHµrþ?+ýö»‰?iÍíì?Ï.¸†?Íö³IÎ?õѸtû?„7;f ?§ûd³ƒ?´ €vž*?û|2±ìh?±]x'ø(?ÙS{‚÷?K³(¬§Ä?Êè¥]ð? ¤öh´S?5eu[ŸQ?$þ ÏÃ?÷oWc‘}?þäí;¡À?I ê¼?ÐOf'ÑÄ?v„9™µB?K‡å,?“¶(…ö”?äö„9¬?÷ ËRo?3œš°Eœ?`4ñ­ËB?§uñÜÝ?Ågûdr?SÉ ëú3?oÀN/׉?2é»Lv?‘Ãö^w?™cžœ¥?oߢú Ã?@ fÇR?3 ç®…ø?hûBŠ„?ò~š¿ÛP?͕ɂª‘?äá}Ïz±?Ò´\…?LøÕï?uyèücÈ?š8-°u?Ïdþ®B¨?(BŽš×?«G󞪺?N¦u#)‹?ü­ÕJ¡k?`eS?‘Ìç«?\Œ¨™$?Ñé•;Áþ?&¾ =\?ŽÕ]õßB?؈ Ó€?~— aþ?Ñx3Æîf?ëú˜`?Îõ*G•?’8Ó^?Xø/õââ?@ûé39H?U>v¹I?ŠÚ„(?Ƹ<¿5?êb4ÄŠ?ß7Ó¯a?œJƒÐ^”?#à¥þ–?|âÿ[6?®Ëx–tç?ÄYäb…©?ÐpœP¸8?ñ9K*:ç?Kh  ð?#ŒÆ•Á? ­™=?¦(gèçN?p ¨srÂ?Jö—³Üþ?ÿmÆÝ·ß?a;'¶/v?\·•*?ü`³¢Y ?dJšº?ÇVû²øu?T#ÆhèB?)"J3á®?K-¨Ç°ÿ?¨ÜaëóX?(Œ‡Cû?·±ñQøì?[€Ñˆ¹u?*ýw¸Ûè?@·\bèÙ?¤D3—?;ÎCW¸?ÑO£÷ ¸? ¤¯Ú/? }롤P?  e2½jC? z©“³û? ô]n#Õ? ܤ æ?¤©" ì? z/<Ñ‚?_ ™¼8 ?ÅFÖA?x•9Éof?¸iA«?³™b„Åh?nD?o¤?±!ˆ›?Çcðœæ?%©vZ‚‰?ŽñåFV?Ddþލ`?{µ¢^øµ?‹ÿõÈë®?ÂMìNë¡?GiQZ?%á/Ò?83›tÎ?}´7?ä¸&UË?Jw€¢h?“®¢×ê?§¸wAN?{ᙜo?}Ì¢ý€?”"öÔ–?ªåždš?`ˆBo7þ?¥m{·¦?º°XRo8?šÍҸ˿?VÚ¬@eý?òá6Ÿ®? ‰g"¹?_,ÌÇðY?/ ¼«Ë˜?й<ƒtf?vB wØÏ?äª<êùX?°$Ž×ô.?–óÞØ&Æ?HØD•?{#ÁªC? †6Э4?øiv.9|?u€ØžÏ?%ȵéJÝ?"Î7(G? cÛ­Ô?Ôßà˜?†¥­cø ?µD)Spà?R0”Dª6?aò¸¦ÿð?ì”ÀS¾?ñ•‚Ûž?ωãA?iõj¶î?p½@EzØ?«C*è×?&ïA_Š¥?„ÓÔê?`©[íh?|]·»?ÜÌáÒ&‡?ɽŸò¾?©»»£ñæ?ϽY»ÿ«?T·Bí³¤?_LØ«?Ïì÷žlW?O8Øys?3v>–? )ØNT-”? RR!5ýŠ? ÙS"t?âÚt6?mâi's?0·‡|â?YDVTó?ù0@ê¦ð?¸S`æÃ?VO²–:?Ђ³œ8ü?-aå ‘]?~÷ ‹}Ø?Ý]éŸ1™?\Ød6o?ÿ“0Õ½X?ºû8 ?v;P9c? a••¡?´ØÚ0Ùí?B5VVl ?߀ðÇ?£V*Ã?›©íèØÅ?Ì·dJ9g?4÷Ø@—?ϱ ZÞ?“# I¯–?j²'êD?2Ì(Ò†“?ÀŸI¶c“?óØc¶]l?ÊÈ=Ô±6?j“öcÍ?¢ÿö?p‹`dœ?WŸ}\D?ªf  .?ÕyÖGÁ]?…¾Ç¨†?Ú7'ÙÊî?²=QKªZ? oÞcÈ?wd‚mÐ?ɱ·Ýt?ŠÐ{‚ÃS?{àÀtÆ?Ę_ð]?yƒO?•iu9Y?÷¼"¥HN?l'kU?ºÐ>ÛÒ?¼bSçòÔ?i§$¤?Û'¼Ë¬?9öZ‡‚?OÈ<à›ï?_Í™ÞÝà? %™Bå„? ßÚè‘? ÷ŠoŠ»P? OÿC{ÜZ? ÖÍp¥¨? Gˇk}? ¢ã»o? 7©{{é?kZõIŒ?pég Ý?f(Nõ¸?baÒþlØ?¬;j 's? ã[Û?€)»“,>? ¢Ø›~?¦[<Í?:•QjL%?·Šp ? 5½ü?-*Ò[b?$êLõ…?Ñ)hv-?çšö‰RŒ?ϧߗ)°?¸Ðβ¹²?™'%úÙ’?oÓ°c!?½¸díZ?ú&a?$®†nÑj?7ÑÅÑ–?FgîÅx?q”:yÁ?׋Ê@{ä?¨Ênî?ÈšR-„?Fjb߈n?D=~oè?Ó0SŸM?ñPï7UŒ?…™8êhŠ?]EºRXO?.õ3ê¢è?ªæ›Â&Ä?’6 ™ç?ËSýï«v?gÍ>þL¤?ŒÏ%‰¡?¹,ç66?[ë´r?üX'YÊÿ?Ã5,/…f?”‰b°5á?{&+ é‡? 0? –F?"(dm?%=!„¶B?()ña¿-?+7{‚~h€?.=È­ Ö?0~Ž F?1“®xÕ?263geæm?2I)¼Vi?1Ã,Ÿ\F?0²¿ä¬™?.x¥Ùn‘Ñ?+$\~ð¶h?'Ðb¨kdÎ?$Íäó‚0?"F¼Ù,? ;« +¡h?#  ?Jб òî?¼1ˆÅ]?f˜Ûc"¨?X6r„\­?®ø5Ô‚?‡q6›?þ’2éÊ?'@p‘L?ÿlæ~?hµ|uü?Y†ÐÝ?¢€Ý<}?—fùA}â?­›KfX#?âAYHä?z¸º?ßaÙ[ò×?rA}=+?byš´“?V’Kç?UÈ4²%? þ“©?èP„¦?ƒå¢K÷?>Ég¢Q¼?RItc>?Õ]s"?9Ø(÷,?&zÓ\Úê?–åïÖ‚A? ÜÀi€î?l&º5Z?)v³ù? ©9FÜ?:œˆ?;?ÓÀ Q¡?׎o- x?*t?´?™ŽÈW¢?êØê%˜Ï?ò‡æÖ|Œ?¤ÿó€±·?xîof?vÔi*¾?Êœ)7?â¾ãovˆ?% p%qì? o§*à? ±þ[´Ç? b” Z? ˜»x ÚZ? =Ò‚?:? Êf¹*? èsŽ—D³? Ç4äzþ%?€P”Œ>?ZÂÕ®“?]À)ce?gß=™?‡1¢/?'JÈÃÌÍ?äiæðÓ?ª9Ú8p?c%]VX?úmžã?`+cÜ:?ŽƒgK}?*UO.?x´)“?_µ1ìRf?Q D _¯?HÏ.áßA?>pÝÐ&±?/ Ð;Ü? Ò Jo?øqGß?,úCo¨?Låq³•¨?w•öÅ??£óÔ%+?Æ=yÛÝ?у±B.œ?¿Éæ(Ëõ?똀ª¦?Ø€?Å~^>°?\!ïd`b?Gÿ㸀?O•Ÿëc?#;À?ƒ9Ô¿ù•?\¬•ÕË?Ïp‹øÇ&?-¼ðU9?‡GŠXëÇ?>°7ù$k?Lcè¦ÝT?—¿Sa?óiKxm@?2tøÆš§?<Œ_"z?PÀÓN?ëKèôíò?Üò™.?M¨óž?^ˆŸm,ì?˵QWjE?&G0„?UW4C>0?VZ:Ö²?9Œ±Šà? ib~b?•±Tf?73íÖ?z€Voœ"?Á´wÜÛ??ä°»Ä÷?Áa¬òýü?L!^ás»?”k-¨?¼‹æsJú?ï=sлX?Pó€Ûï?ùBÎÉ¥?írÉ:mì?Ó}ù=?n$œ¬Bà?·®oî¿Ð?âž7Q…0?îÐïJ*?öw²¿?$ã Ø¿?¸®`Œo?s-ß 3u?’¶Z¬ƒù?ÌŠ9vü}?âÚCG°?œß³Œt?å ¥Š©â?Êß®‹?€@F9 ?Au¡n~“?:1˜ÓV?t€yážZ?ÚÔ¼È#?I‘*ØžS?¤ˆòèDd?ãhéw¬,?CâÚgy??Øصû?we)vó?­ÎKÝÏî?È¿ñ¿>è?¬>%~†?HL„7«?ô[èõ7?GãúÁ´¤?B)]üŽ?7±¨`f?Ý/‘› ?ú¨$?wã?~7f­g?¢á‘>?Adˆ? !Å+Ì?!ÔAßL?±ôíø"«?ÄmØ ?=ù’Âf?ñÞ¾¾·?·¹s“?~\Ne{L?U%kÏ?^gRß?·ßë¹Ö-?a l<Ìù?/¯ÚúâB?Ùê ã? ˆt+T .? Ð3ÏMC? ¿Ç ·m? f:pÏÃë?·ÙŸ`Ìš?n /¢‘t? ½_õyº?¢<Ù×?D=xDÙü?ÏÍvåµ?7ålÕÑZ?ßBgTµ]?¡ ¸k?°žñ‹ù»?g  *]ã?ß?W Àn?Üɇyê?`DÍìbö?žÕn¤?áÝþi¾?a &¬Q®?.æÀûæ«?>ˆÅß‘?wÀùn!²?ĸâ¨,ª?òüúZ·?P°eU?_85{—?,޶¡>S?µ¸¾wŒ`?W6Qº?_ç° ·î?Â…š½!?@i_NŽ?È< ­?9ù¡3uq?}ùÁ@ù§?”û´^Í?šþÃþ^&?Æv‰|‚†?Nºe ‰?`Io96?ÖþÎTK?Ugš? =~sÊ?é…rç?¤…—ÚŒP?ì(hè!?Œv\ºþß?zŠÁ¢fÆ?Ô[+©Â?Ö¼#8z ?Î{FM? RpeŸ?Ø™ æÇ¡?júß2fA?Ý+€Wƒ_?(dÙ r ?,üùÿ0? aêëÿª7?"gŽæ=d–?$Ÿ×åA¯?',>Jåf?)v sæ.?+ÕþÆn)‘?-à|1±Ê?/MߺF¾?/á/+o?/yÀvB¾2?.€‚Ãyª?+ú—4‘¼•?)^ ÄTÄ…?&£ävIÓÀ?$cytOú?!îñ:î¢÷? -½¥6/?€6º???œÑJø?·½fö^?xe¶Iðx?Y›Ø{,??œ‘óãß? ñ綃M?cúqãzÆ?h¶ñ…>6?3¬rÛì?¢„$L?d–÷öY?¶ï+? ¨ö2Œ?*ÍÈ?S8Q?ÆùÀ0W?ðßôŽš?4Wó[â?¢O6ç ¯? ®…»‰$? yAo 7ú? ï¯ Ëì? M%n¨? ÕVw‘?,5È×x?È,†Rð?pŸw? XzÖ´æ?~ÒÖF—?Î (€¸P?Q=š”?®?Ò$Ð$=?ygžp?ÔG¦Ó?òt,?ãó$ººA?’ÓC5è0?aìP*:?z›÷©ù?ß>ƒ} ã?v½~‰³ì?"´"6d¾?Òy4?‰¥ñJ&?Vó kD_?N»ŽMª?{~Šèb6?Üœ žý?gó¥•I? ùÌÃ\8?¼U®©8Ø?^)ê‡~?Û-½cî?ÍéëKJ?! Õ°.–?ð ›j¿?°?›5·?’ ß|«?¾y¿ø?ChC•?¯O2?û;êð?ɳm½Ò?Eô&ív ?P+Wí ?ß°çç: ?g—ÚO?ãðæÝsÜ?¨t6ñWò?ƒÐÜéql?¢ò;…Ô†?$ú@B`k?]›×®ß?QḓQ“?¶­›–œ?ª¿‚QB? XÑÁ?Å MK×¶?8Å QáR?’lßï3w?ôÚª'CÞ?4ö×è?TÅNƒªc? ·#ðtx? rºË´c? {Kùq¨? ®è" ? ñ?)âÑ|? 6"|¡j÷? »»(Ób(? Iƒ œ2? ²°Í? õýâ ¼ô?@P¦oÎ4?Ð&5Ä×Å?Ïò>c*?ŸÂµª-6?|Ö|÷¶?dƒ 0:y?=D2±Ä?ñƒ”¥n?sÃÜ{ƒ@?À{è?àv<ã6?èà*l<5?ípˆêÂü?÷íýÃD?æÒAñ?TçÖª?Côôv?ÉžÛb?¿²O?ý´¸?"Ô‹°ä’?)§tJR?/h%fj5?0bkô[V?$k ‰”?„?H ?ÜyjÙÁº?ÇÅ“¢ýC?ò!ÕõÍ?y]ßVlú?VM~˜Ò²?WÛýiQ¬?6‰¬:#?©àøßÂ?ðå\èT?óôV¾z?ÑÁT/ê?B î™?O!„“Ñ»?.ìž å?ç˜hŠ?‘PnR·Û?J"sT$ ?*¦0À??áçôo:!?уöö?}ÅfK?ðä}pk»?K`r-?±!=7gÒ?C0z607?û$Eáö?0 Çð?J?€µÉÜ©Š?礸 jª?A×p6þ(?w„ñ#Cé?Š˜µZ®„?˜Tº5Tá?ÎÓ)ˆñŠ?W‚Eç?CE¢²hO?~sOèrm?Ó¦ã„ðØ?ûÐ1GOÖ?·µÈ °?èꌱj?Ÿ#Áá©0? ÔÉ?ç÷Ë<?Kˆš“Ü?a­N›Ö? |S¯õ?Eåà Ø{?Çû˜0ÁÍ?4ì/Û$D?Œ/“ËÂ?åñ›úñ??Ç¿qÑò?’x‘¼Ô”?ÁŒ=²Ø?®'ˆ?H´q?™n€#à?¸;JË÷?½W_õà?¶ØOSư?¬8¡@Yð?©ˆ!ßÍÕ?Èf9Ÿ*?-×í1H‘?þjçê?M—mT? hz9ˆ?¤u¸Ê™?Áà (? »”FXh?§|_Œ^Ò? ©þ*Dí?æ²ÊžÝC?ÝΘ¿¼?,0Ð ¥?/›Žçö?µ˜ëؤ?ÆAv)r$?C"k5 ?øÿ.”Xò?¶öîÆdZ?d¤Ç^0? ÷÷RI?Û4~Ø6w?ø2j¬6?u¢ *¸?5ÔŠÄ‚¾?ðï¶Xwk? 'œ 3×? †æ•]lõ? ‹’(Í1q? B  ƒŠ?‰Cµt-‚?[ª+XÎN? d)‹‚º?ê̵ʋz?Ç8 -ì?Èóɳ¥?ˆMzÖ?¸´¾¤?Ð1eÒ '?8— ýœ?®§qð!`?éXfw$(?¸²À©Rº? ¾¥d#?Sd!–Š0?’µ!û«?Ôp²% ?Úa°-€µ?ºeð$ å?`ƒ(%?ɹޅ—?ðw\—?ô&¦ÛGÅ?Z@ϲ?‰ÓÆÓ¹“?˜·¬j?V6 ª–È?³Ó¾<á3?|j/Æ&‹?^éŒSdŒ?U:õˆÌ?+¡…¦è?~²@F+?5Û,¨ã?gPx‰œ”?S/éÕ?Aüåm¸?yÎ\!?5VªÔ"³?š 7L?±z«Oõ>?i‚Ú Ê3? gR:?7¡"Ãàœ? i#%¨ú?!´ÜM@Ò?#ˆ]’Ò¹?%…ï¢>Œ?'ʺ:S!?)vJ½à©,?*ø•±].?+ÜöÅðÂ?+úàÿQüQ?+F=ÑM"¬?)Õ] bl?'Þü,vwë?%­µc2”?#‹=u_ôE?!«Hz߯X? Øñ‡˜Á?·rß>®?@Íâ’?bðDZˆT?Ô£ÃåÈ? ·aEf<¶? 8<ž›¤? ¼8“ èó? [z¡Ï”? 5ÖÃ)¬? VF‚: ? ¢Ò@ï? ìDøk5ð? åFþ©í? ÔZa·ñ? )ô[oS? ˜:*Y”?ŒjÒíÒ?ATo2ù?ëÓôÃ>?æ"R ¨?Öa¸ŽdY?¨SºD?OÞÄ®´?Ç2€ÝD(?¿)]dZ?ODÖ` ø?{žŒ+?¢•Ün™?Á°Ë­0X?Ôô˜r§?ÜÑQÎèh?Ý—C¼ËI?Ú·wŽÀ?ÓÑÙEÈ1?ÆŸá¸øš?³×¢?íø@ìÁ?@Ö™º?“š×™>?&sÓÝÕÛ?pY.v?fl·J+?åý­)ð.?s¨ °ö?ø)MnìË?rÒÿv¢?ïR éIy?so••Aq?ñáñnE”?J¿Wm¯?X]á0? 9-EÁ?f$éŠ?†ñò¯z?‡;W*Ó?y4Éˤ_?gWé…XD?_9]e%\?zSXTøŸ?܉ÿcûf?©uái;?ô ìvf?°ŸÏÿ²?®±„DЈ?¢ ³?9Á˜Mf?<‚¦\Gh?-ñÔ¬Û?~3øû?#8Á¨AÈ?ÛF«›DÂ?éc“aìG?u.ÑAÂ!?‚XN•D?ñúp ?´öÁå”?'M}¯§R?œ°yö¨G?ûøÈq–?p°ÈùÍà?6Œˆ+?n7Wes?áນj?À¯³àȨ?;"˜?Q¶? s%E)„? /éÙpê˜?õžszi^?sHï,?;: Þ?]»½Y?í®:,˜?-Æé)Ü?x©2Ä?ùrÎ?Y¼?ÂàAD??Ú)”ÛTŽ?& ³»~?p$û=*?{y-GÏ?"š|†®t?lå’H?…ÉR wú?«ódsú? ˜c|?½r–!Z˜?µ0€"mÃ?áB ^?(UŽ_#?pO½‰Ià?š"ª–b?‰ž—å Ø?2 ᜓ?¡ÁËŽ×?ÿî)Þï?{L3RÆg?1¦Þ,|?«À=ð?ø ry:?퉚6?s-pþd?  ËÆ=®?–C@g-Ð?™ã&h´´?ûewNýº?ýÒ —Þ?»ª%oW'?"Ïe9‘?ñE ‹dp?ʶz7#?Nó]¦Ê>?;–EÁ%J?ußIÓX?¥zyÉ?8Æd @!?.ñi-øi?/÷ šòÊ?r±¢2rÑ?!Û8·Ÿ?Uë÷ @? å¿åvb?5a#ƒÐ|?³°N?tuU5ä„?|¾(ª¼?àƒ£r?h? Úh‰à?"z[OÇ6?$v —¿?,{ ­+Z?÷ý:E°?®Xêˆð²?dDMî?3ߺ|2ø?2¿6e!ó?lnJ`Í?Ù¢ýZ"h?`z4Ö,ë?Þ¹bÆÂ?:B·%Â?oÚ›´F4?–s_ûŠ?ÖFnóþ?Uc·´Ó÷?%§åàÔÂ?9d¥Õ æ?dæÞ AÊ?j«üÇšŠ?û-{À?2ÖÎÂ2¾?Ùœ+Hà?0j§?˜Ý?|Ìø˜.?üÖ=ž.?Òž/ú ?ü1X¡Â\?^Xì×?Ù“l’=?[Öw#¼?ãIrƒ a?|Û´Z?'•5NøÃ?Óë¼ú±L?[Þ|¯È?—Æû^Ò?p È/àV?êº&{€?öáˆ?(†&bž?iMb€? ¼F¨Ö?f-€?!Úr–¤ø?‚J–ÖS?I¼ÚhTÐ?‹a¾sbQ?=‡— l?2Þ=Üõa?"( H±'?½aŠÅ t?Îr”Ô¦?K€VGoG?V¢@ŽYõ?.áõ¸Ìe?´³Ìð(?K\ý±j?å­•ÚþÉ?è‹ÔJÔb?7y(n\ ?¢*‹÷§?öîó*Óv?L¹^€?Ñü®, ?&«t_?†P|€ Í?i{z(¤?ÌÉ~?_l]£?ŒSl>cÕ?rM¹ß† ?ô÷OE°b?·¤Rvg?§=ü_ì?äÔ*«T?G¸ÁÔad?Ïë"†©?­ImÌ—?Еø±gj?-µƒ)?mþrJ¡?š¦áÊ?qØ9ÖJ?¬ªò–?€¥À¾©­?á³Í»Ã?r“ñ¶®?NŠ^i_f?i ìÈ|?’eÚ½U²?ŒWâúŸ?'²" ßj?ZžàæÑ´?IêRçøÓ??M6ˆX&?’Wèüâ?ŠÕ9Cu:?FJª,öÃ?«&"Sç>?o u´Ôi?0AÍ6’?%jr)’T?$áPÄZÀ?"0,‰1l?!*‹ªçï?»#ɵú?x6vBÙô?q- ‘?y=ÝÏ?iù›öHŽ?;y¼_? ñ0Ê?öù*5?rŒ°µUY?HrK”+š?ë¥Ìñ”?-­ý?f•¨§?¤2>J?··)úM˜?"Z_/²?¦&Ì1?³­5ŒV®?Š®ìPU??s¿¾Dð¶?˜T%jwÜ?9‘“Ø?šŸXóÂ?ô¸a ˜Š?¥€ŒÑœ?Ô>.·ì¤?gN°ì0{?÷tã“l?„b6SG?Ukyñ?k­Â²H?—#uPE?N®#J_?Ã"Ḗ¿? `ÜÖèV?À€Iæ*?¡TÚÌþn?¸£t¬g?Oܦ Qê?ÈÏ4·•?pHZYâ?g(g3N?§$[ „?e^óïN?²ùØ”4?pØ]5‰Š?gm>ʽ¼?§S±Ãd?4¨v2ì`?üïgã/‚?ÙfŒto?š K¯?-UÎ&z?.$Ÿ\ÅU?äcŽ`bÀ?Lš@œ?ÏÄgW?ærb`Ô?„ô¶‘-g?ªËòL? &ù›2×?ìœe›äð?É!„?+‰Úþ¼Ñ?*1p5ë?Ù]$‰>ƒ?a•.?ëéÍ1KÄ?Oz)Lý«?bö¯MN?NjwÔ¦?>T¡œ¶ì?^R\?ËåÞ6?Ž6!ë$?˜ï”h.?ȇG³ §?ñ*óçAS?ìS>*=:?¦ú»B¶?'6Y\Th?ˆš˜H·?Ü‘1 €–?äÚ4Ç/œ?9àä˜j? ÉÔ}˜p? uØõ².Þ? *Ã?k4Ñ? ë eŠ(? Äè¿A5Î? ½¦S¾(‰? ÄS¿—Üœ? ¹Å×w? ‰õeÏ‚ß? B.ûÍ? ÿUÍ¥Ä? 6'ƒ¦yÍ? Ù¶t k¬?FêÌ;Ù?@Uñ®?½åZ=ŸI?»ø°‹v?´^áj?%êì‡ê?lfL¹‰\?FɦŠ?³¨õNK?&¤ùÐ+™?q¬BWÉn?Ý‚Ÿ8ÿ?‰&-ó?jó¿>€}?FeZlyë?%ò”óïÝ? RdãÌõ?êßÊÍï?È#ÍÉz?¤¦ô8@?‚9^\?bÓ•ZU?E‚¾m±Ì?3×tR¸?F¾âÜB÷?£É¨ÁŸï?fspºØ,?Œ5Þ†-Û?êðïÁRú?;ïé^"ý?7 é J?¯¹_'°?¦˜3z?D–Ü^4?ÍšÏá?ÍDÁ?…¦Mxw£?Ü!ðÌ:‹?bXf‚kž?ã«[L6?.O³VÞÝ?,ÏeLR¦?æjh^SW?tÂ/ã•ý?íìoMH?Uóyìùø? Ùáßá?Ãï³?Æmx Wž?Å®þUwB?鿯»_+?RË Üèi? Ÿ8t? ×KñÏ?ô?ÁKÚƒÚ?ÃB’ö?õÑdƒìÅ?Fñ Ü?¬.×°›?*ÀãO¹?Ë ì?Œ[ýÔè?Vz0T‚?ÏÅÈhè?dër?e÷÷THó?›IB?\]¥Œb?€àü¢÷š?ŠJìºd?‰dø²ü0?-ƒ·ê'?·Ìlõ3Ã? B+×t¾?érÎiÅŠ?&z¼ÿµô?Ð1¤ò.?½²4¦µž?«Ýöãa?Oþ×>.J?{×Wûüª?'®ùÝÄž?sìs(Œ?–M™Z“ø?Ä8‡±y0?$ü!R?̦„æã?¹ùsÜ,?ÕÛ‡ö«è?øjˆÂú?öÙ ‚ž?¹xh¹Ð¼?O>ù ëÖ?ïó¨?ç©j#¥]?qfÈRNH?•"!ñ­Ô?¦+õ?¦5usè‚?ÎÆ=~éh?Xëþp^ý?AN‚¹?·&Úƒ¿_?:>ÄJ?aE’@j?ö˜fv‚?Æ/i.e$?ÃÌDăÕ?âØ»XlÈ?¸\³`?dàOµå?§?Íd‡c?½àÿ&?ƒ\«rˆÀ?ãêÁ¸O?éÔÜ‹_Ÿ?»ÚšÏwž?%NÍÜÜ?–Ò³Éð”?ö°Z'¦ê?»Wå6vU?ÙDåÛ´P?.rßoŽ?Š6}Ä=?¹ ûXS?—:ˆ´B? ñýùX?w=úc•?Óõ-—š?npÿ®)‘?_ÂS’-­?•hŒ½{?ÙïO‘jÀ?ëÓ¿³?˜þh0Ñ>?ÚŠ#Í?¡Nk—–ÿ?d›þuõ?0+]dç–?(ŧð­?OŒ$ýéÆ?œ´.‡~Ù? Øœµ¸”?­„ ÃY?—Í­?à×O?š?‰º)°{?v-t§t~?q­uÊ??[váœß?­xsÔG!?£ºZþ˜?'„«)€ù?[A‹kc—?vÝiòÏ?ºŠ ða±?^Uᧈ?‚'X@®¢?%šò°¸?+«stX?c}&Â+ ?šÇÏ Å?¡‚]P ?Qü)ßQR?“s@ªý?]f3õP$?¹HêˈÇ? »4"?£“)™ð?Šh˜ÈíU?£@8’À8?Â0xæ‚?ÀvÃ+®ë?º<ÚÂð?Ö¨ŽS?ð69 ÏÍ?ç"»è¯g?ª€¯a:´?<Ãx‡*?±ú&»%¿?&@½‹¤@?aˆË×Ù]?¶j£kë?Aû¢ÿð? ìrJäê*? £ïù‡w? fQº8/ë? ;ÝZáïQ? '’Rð+Œ? UýŒ‰¸? ²"(¾œ? Ì(³˜úN? ƒ§'WÎ? NÊõÉ^? ]ù«kd? ÖW¶l"‘? Ä _‘4?‹n’¦?a +; S?Lûµo‰??f?-Ê¡z? ŽŸ ’?ØdãfV?†R¿˜,”? LN±Ä¦?`H 68?xß·E¯?_ Ø~?(°Y¾n?îte|A?¿…ÊZ.?œÁw"i&?~AÎj‹9?]àØÒ-B?< `Y¦Z?šy0ß?®?ÑFè?þ …46P?òžðD8?bÀxÑ?òööz?9<èÖê?ÏɸSt? Á—J%?U›ûë¢í?“`Öˆ¥H?Òlzwè?ïþV“b¶?>:Î/Ìà?`û͵ƒ?²Y´×]?k¬ÚÌO ?–ýÞ–ÓT?Ë'©?Å/Î]¿?âékèèò?ãZ¬TÀ?“½Øì>? ƒÛ¢Û?b>¹éÑÙ? fZl˜‚?¿Ù1›·l?»nQ÷Ún?žd²¹$?ˆ4êF¤è?¡?9Újä?¬_ÑÒ?Åuïê‰?Ì „ž?? `\´?RÄåQ)o?©¦ ëc¢?üGºu¿´??ÓToà?h2åO Ì?mî¸ó:?UäûØ?5icRPÐ?+ÉVg3?SÏÓ¤?±N'ÌíA?4¤&ÎÄ?»ã;±ÆÈ?(®èÐøò?nú Z¶?™©áðã?ÃÙDº?Gùß»?éý¤1$y?KnÒ…yZ?}D'Ã!?¹Æ‚ð?O+ éó¿?oëç£È?`9cóØ?»Î¸Cj?4ÝVl­?dÊYŽs0?ŽAXä»?“Eà90?¶mÁ«:ž?8Ò¤ Wœ?ÛÙ,Ì_ƒ?Á2?òŒ…?çÖp_1“?:Å«¼¬W?¢ÅÂÚ¹`?‰£¸×?nÕ=\]R?­˜6ðsJ?­«]tòÌ?Tůú?–ϼsCp?€žóÇ#À?5u±·üT?ço0÷\ ?˼fÃê–? •ï×Í?ÁPµ?Ý„hé”à?:ˆøOkX?aq’Ö?Ê1”c~ž?›zm µ?>¢îî?W'ZÜ ?©ÐE¨rI?Bøö,í?9WDþ[¼?w5@ñ?ÅXÙ\?âš §T?¢zq©ž?ýטɿÃ?¥SA?<jÀŒ ?¶Ó¨¾Õß?Ê‘Á„ú°?ŒôÕíO+?Üž)û±²?kšµY~?ÚÍ®-¾?ÝÙ°×ý?UUïœF?Q…bç­0?ÿé­‚2ø?ªvg„Ž?(»…?Œ¹»½ì?Å öh6Y?x4(Šl?N3H¸3?€«ÌÖ?é—ÅY?lÆ6NŸ¼?èr/‡â?/[Î#‚?ó³eµ?FýÍ?¡ì;2n0?Ö_Eçcö?çýp y?ù|ý"*6?nªýÉ&?B\goâ?‰0V©c¾?1R>›?ܳ˜0…n?'6e‘?ä6("?íØ©Òlj?t*/ƒ±?ÙÌ_á?=J³î¸¦?#:Ï›?y•°ÙD? 1}¬?>ùžºM?æ'|zuD?¡õ®h$å?êé‘ut?¸GSœ?ã:mIà{?6¡ÖÔ0s?|Dâ¢?†•…ÐÁ¨?3–g€Î?m/‚Ùf?+óòÚ–?u½fJ)ð?hƾz²K?0›wq*?û˜$Pô?)yü?]dç+bÖ?oëúq·?ð="š8w?ý=¼CY~? £‚xÍÖ?  ÷¨?ÚO1}Ð?…­Ñ-G?׃°?›°Lk:J?-JE*‰Û?©=gè¨ä?#Úp¥½¾?¼©‰NÒ?fãúïdè?8'üæ%? ênÖ…÷Š? ʨDßÚ? ·*E–ô? ŸØmhØí? z1®÷´? L-²Šhƒ? -’%ë0æ? >osHTb? ™°Ó´Ä‹?L“ÌE£?Uµ‡I ,?T8pGn?Ȧ;F?éÏÈÔ ?¿f]½ô?•L…€+?Uê' ¥?Ôö”ðÔ?•­Èíÿ?ïf)<2a? U?³ñ?êuø@?«ºÎ\Œ?hµ9?4¢-=«?‚ÒZ™¨?÷ëußy?ÛP$Ò?»F½Þ7?ž`ñˆíp?(»O— ? Ñ13¥@?éup|?Œ.¿aJ˜?¯]ú¼ýÌ?f‘v©?ž"$¸!?b„¥×?Kl½µU”? nS¼“;Ê? ¹JæçYd? ìZÄz?ÔLÙtô?[QËú¦™?C3^“¹?V6.Æën?1SŸÔ¶.?|}7¹r?ëâyÅbÅ?6nÌ”s?1'ó²jn?×|Ä~#?>ƒÂ—?}=¸‹? ó>œ/?¨SAçC&?’¹dÓ²@?m‡µ‹ÛÀ?Wuõöœ?v?.žéÿ?å<Š,6?ª„} –?¸wp¢@?ø÷¾Ô´f?Y)ìvÓ?Ít‘?Kû´äIÔ?ňuÏ‹`?$HÛ<ò?UîiI„?XeáD?2QšÅ*?Nq¿£†È? •¶?‘VÍè?”-2!¾$?öì.Øö??2T´'ƒ?M4p¡ÌÌ?_!ÄZ?Bk¢r?Ƶù³îÿ?6›± ?ǸP6,?fù\‡mÍ?öì|¨6?Z¢ïÍR?£õ”ª?p³}ó•?;9|½e&?ùà~ÕâÇ?¾ZïÉÏ?ŽÛš¶?jïOÓ-•?UĆ'?W F,¬ô?}j·Ò¾?Øl}?[éåjwŽ?õ·ÿ.*ß?…{Oô'œ?ëÖÞdÄ?·ªºTœ?ûšòm$*?§êPV ˆ?'@^úK?‡þ¿<ÿ·?Ù½f—ø?/HäN ? LöËÌ´?H¦˜Hío?C­¹‚¸0?¢¢‰À}?`°˜nÞþ?[ŸÜ¨0³?Y¢1z›?o† ¿0?„¾ˆ§X?Šêzh?I‚AÈÃÈ?å ßWŒL?u¹Ó½ù2?-‰h"V?2F¼"s?7)•w?Ìö›Ó{?Kb®£?˜·&Œº£?¦iÔØ\?Ó·XupC?ƒÙQzö?¯Ü¶wÇ?‚‘ÇÑ'x?B€y|`€?-Ž&j†?`1|Ó0>?Ò”YçÃ?h“S¸&B?OƒBd‹?2ö¢?÷–E/@?)õV¯’¬?ÒZWÙ?œÁí¼T?ÈðØ6V?£&ocXO?Kú8à?îÕ{©?Ã1 Óz?÷Þfeö?¦>…ž?Ä».h³?'l´àJ°?Œ ·fÎ?²4P1©z?u*²ÂO?Ú³»-ª?Âké?‚?Y†«RÎñ?ìågf?ß(Ìpº?J¥X˜Y?e‹š¨èv?ˆ5 …Ç?XãÃÞ?Ô?ÞÒ˜Ô?AÃt‘É?s"Û!áÙ?{ðy€?RÎG=ìµ?!l{¯¯Ê?es¼Ë‘?Óõ˜f ?ó ¬”?ë#Kß<~?@SQàù?/)t}‘þ?çéoí[„?’ÞYëp?>2fy?à $]:q?kRÅÀ ?Ú´êý‚??wÞi*º?¶òMöÖ?aóˆÎóM?\,ùe)?¸¿0ÙG?òZ²Zþ?­t…Òî??0ÚáØkˆ?ñÜÖþ¸?Ò6X@ýb?ºÇ¿2 ? J =Ð[a?!!ÙÅû(æ?!Ò²—ˆ?"Eý}4N?"fºï^„ç?")åP2Uü?!“6Sð–? µã%O}“?X9E®?%nȹ ü?µ [=à?ÿŒ#&Ô×?‚Nµ?FŸF!Òì?nŸ1]Î?¤•ö¯Ûc?E1ͨÂ? ùã@¨? =|ç|Õà? Èc£Vód?Sp)O’¢?ż$ïf?h» ¢D?ÏF!¯ †?ž+ý×?mBwt?ú€S5?˜&·Åpb?W X¼y?2‘T U?$kŽ‘(Õ?4÷–áz?~O”à‘Y?_ cÿ?(6mH?gb>w?Ä62°¿¢?éX³þo(?Ë‹£ÐÖ?&Aš4Ü?¼ìjô%"?†›ƒÊÆ´?”×iM}?îädÜj^?S9ôðu?t9R'’?7¤ƒí?<@Šö'?îÝmïú²?X,¢ã¤&?–"{¾¿?º¥™z>?Õ:ä"Aì?ÿ:Y–²?`C…ŽÛ°?%ÃnÓ?nÖ’…>ª?8«açQ?V$Fë–?{<0ú#?WŒ®<ª#?±áy'°‘?yýd‘jT?ÈœzôCO?Ö5@„ Õ?êÞ$›.?L@ a?-‘æ³$?  b?¡?”ÊXV.?Þ‹I8‡¿?D¯è?‘‰FÕpx?šº°Z?B ‡FwŒ?s—œ(þ6?&rnÞšH?`ØsXì?=:Û–5q?é³$5?žÉY‡”?‹• —‰?Îl(t?glí¡ã«?D‚ž²{5?I+¿Æ?Y[Œ• ?^J×/ç·?Hªe¤À?}]²•?»Ïå7Xœ?S©+`Ü?èªw|ɧ?‡½-”Éf?6‚'°?çVQ`"¶?x}¹\¢?¬w Ù?Øqæq&a?®ºe‹õ?œXL²Œ¨?˜Fî³H¬?šH_£¾\? ßÑl?³a°¦)?Ý[êùw?,rAY˜?ªG6·Àø?.„±ûc? —qï«?(M+Ú/?¾¤ç÷Ñ?[>ÒQ®?üQœ4³?ž¥ÏÎÚ?<Õ®—Iø?Ç8LBa ?(/öhÆ?O×Ti:j?@7Pè‰?¬ø¿¤2?×ü Ú‡Æ?°‘u´5?˜åä§ÎJ?‡iu3ü?oW¬ a?O,8è¬ð?0iá=ã?'·v‘†?Qšwì'H?Ò¡B˜ÁY?Õ¯>žØ¾?$¸ÂFD?âÂi+<?Ø´Çå#‘? Ó˜ö:K?!nH±<~?"e ^pá?"²õ°+tû?"Qº\êh˜?!lÙµÝ#? QüÀ¹Üm?¥Ñ—?OË‹ùrQ?ÀRDä8?È0´?ؼ}he?E!uç/?1JòâXC?ÊøQO?#—¸þ>?RÕ$¯Í(?gqÉ+Œ?e#´§½?ONSÏ4„?4Sùs=K?/ò;œ<Î?b^üòSš?áwU ¢¨?°^ÃSI?¹t•Oß?ÉÁkÀ?tU$£Î?ÕQx?«µðkÂ?Z‘½HÞX?ðË8›³…?R‘~g™œ?wàþBÛ„?tª^1.?oâ÷<" ?ž>[?Ûn7¹8?Hºbô#M?µûW!?[‹¨òl?&_¼’W?ùl™Â½?ãtV¸?ðÐõ(^Œ? GW~SI?e%°†™?¬m2<S?ãÕ¯8Íz?þû·fíø?øXÅ%õÖ?Ï<>è\Û?†Ã†¾?$kÕ}—?²Eˆ"‘l?Br?{`?êL…ß™b?Æ âº@ê?ïÂjj˜L?wÒÂy³ú?Xß, Ô?pþY¨‰º?‡ÃŽ™3?cÞÕ ?ßh}‰”?ûî!`±?Íûîmêe?u1Ðe)÷?¢Fº¸?€þËØò?ìÍ®.ü›?Lgf’0Ò?klo–½?Ô›»Ðfö?Þ‡Ìj7–?¯K£g{Z?V«-ðR?玖»¿?ÓYÀ²t?µxŒSØ? çjÓ#?úCßs‚†?)†¬ï ì?=^VÕV?òCÃú€Ü?:˜¢À?;²M„À?7‹[Ž:?c¾O×Õl?Ôm¡¢_m?zÜrêÍ?6À;$?è~Ú±,ê?y<ø-?Ø…Nà²Þ?öÜù1]?ÆfOh[´??7ç…O?b½‹zŽ”?>d8?í.lU½¡?˜G2©Ìl?rýÆÒh¢?®$6)qá?dEV„Wù?‹®?cÌ?ô³î)?Y¹: ?y»dv»d?2¿O ?Žª¦Š™ú?¾'Á¢Ä¥?2~‹T?“P¨›G ?€‰¾l4?³®ÍpÀ?ùàÇ¡:§?öŃ?ùä[‘]£?‘ÈY“I?‡¤q †?Á3’ë?m+ìÄ›(?Æ‚¤8?¢a®ì™Ì?Ú“˜›Éœ?(ØšaÓì?@dgC&å?쨦ÖÓ?$a‡ÑØ?É 0J?À)™‚™b?vþjHàx?1àËýj?áLÜi=Ã?q5^gÑ—?Ü'!_Û?2 ZÏgŒ?“ ”›6³?&bAnn ? ‚gˆïŠ?Oíú;j_?ýV~Íãe?’¤þùr?Uúؽ\r?Ñù˜ˆ?cµã ×*?ú˜Jž?‰ÖÿqŸ ?ÿãƒBEÊ? Ÿ†ž\Tœ?!æÞ/ ?!8äúɶÀ?!Ã|úôÞ? ’‹GSNt?›_?`^?¯R°ˆ?—"{7gz?„ãYw‹S?˜.Z­Ã”?׿€.T?79}ˆ1 ?«€¦½?;áír”? ÁùÖD?—|È_Õ?.ý…ûe?րǷ®?œ|Òº1?ÓDk­‘@?VÛ.ƒ²—?yÓ¶t³]!Šž?ÈúñˆÏ?F÷5ý½Î?­—N¿¿;?µüy?Á3G F?„Âkb×?ißÓ¸*?ÐYçß?úb€42¬?£‰¶Â]º?'þ?^áuë&?¨ ¼nÓ?õð¨Ûõ–?’êRY?fÄKÀÏì?»<ÂÝ¢o?Åó†è?_XKæ?‚KKb}?Aõí@Yþ?¶:Bäj5?ôîf†ì?"„Hõ/?ŒP?¿AqÙ*?% ¬W.?dz±³-?u=TµK?g½b«?Qƒõ®ƒŒ?F?Åý"´?FŠè}Ê3?EýåŸÜá?7 Œ„ƒ?­\ç©–?ö{mç?ñ‘ÞB¨×?2—¾BÎ?ê©’Eþ?L¨ókí~?ß°úe?‹UèNé?<ßUV¥?!Xl/¤í?#F/抮?$fsÓ8Ô?$³t Šñ?$%¡¼÷ž?"òlûÜ ?!y.x¹4n? b%?NÏi«ª©?OÀèÙ\"? Žt% ¾?#W‡˜…µ?5®]¸? xva²?C/ É ?ØÓ(Îã|?ú'mpò?í…œcÀ?T1…p?ökÈö¦/?òÚ¶QËB? ¿”Fw?_S`4M?õÑÜb?Ï\ñB3ô?áä–ÓI?#V1ER?Ƃܢ5?,ÿTj??ò7Î*-?Ê"ðÔU4?γ¡žœ? Ϊ™»~?p˜ÂŸ¾¾?‘*ùkzï?¨ý=Õ: ?ÛhôÎE¦?3Ò³¡ÀË? ýJe#?‚&=?8‡ö9˜K?<19„Ü•?‰ÌZgÄ?âÈO£Þ?·®GŸW?®—ÚŒxÇ?×5Éüƒ?5é%h?Àf :N?\«^ƒ›Ï?ìN­G ?W©lÍm°?—R¾KAÆ?´Î¤Ì˜?¾`› C`?¼ Ä÷K¾?«•º ¯¸?†ÉåÉÊ?I”¢Î£˜?ý/Æk?­{]¨C?f`¼tc)?-MÙ—?ˆXô6?äÇ 7º>?Óþ0CÄ?ËŸÙùB?ÉîÙý”?Ål¶h¤~?´ÓXÑ ?’usnqˆ?a™Ëã?-àÇm~n?Äκ°®?½sAÂ?|Hoî½7?5(šyÇ?DNg;ÌÒ?†VˆMv8?Á1ûr7? \L½¯«R? £–îÿ«Z? ´r¨³¶? ™³Õ†? atg_Š? ‹JT‹‹?uŸÆ´x?¦…’ß|L?ÆU¯ÕÛÌ?×ýÊZrË?Õ™kÀYj?°(=¶¯?]s)(?ëd#_É?‡mWÔ?v4…1B?ö.P »2?!êÏ•À ?ß n‚mS?æ–ãæE?㺚õ m?˜E—?öíJ5Â?“Ôü’.?Ig€Xô÷?¢(>ô)Ó?4[¾å¼?ëw¶BYò?¨ƒ\»Å?O1óù,¸?Í:;{xæ?JV^4?8ËŒØ?ß/Ù! Š?RîPª™€?}àMQ/?k¬‰ÿih?2¾vk¢?÷àÄIª?ìaˆ™E??HajØ ? uüÖ]?Dä=/÷ê?¹®^#ÝŒ?#”Á7‚I?C¿ÿƒfÃ?üEA2o?Y¨ÉÝV`?°¥æGc?Ø5'ÅGb?kÞ'^¿è?XÍ\öÝ9?‡Ý‘¸}P?ÈNRj˜(?çˆuíö?Èÿ;¤ñp?qJ„·q¿?a1Ïp?·Õ­œ?¼Öíãß?4IÙœô?(ÌÐVK?B) G+?njþ¤WÒ?\£½¥Sš?äiš?ŽêN?Ù"Œ‡1?Ží?–?C‹I{I?ü½Ñè ›?¬¨Wq¬Á?Az7ó^Ð?µ}W…)|?ž˜‹˜?{V¥è¡ª?åé;©?Ùƒ€Îjn?þ޽Í?{ D?GÙ4tR ?QgÁv5ö?…ð%Ú$?ÒŸå` ?/ª%Ž?E‰ÔB?åoCí?… k{–?çÓta‰? Z¯G?þ"÷_׉?ºçjâ?ªœýy;d?Ö›«†?Ó§ѱó?×K7·¹?‚­ZV?tžc¶j¬?NÙ oÔ?æþùÅ¿?àæÚqLü?m4ŒØ1?`75N†K?e‚ L8î?]IÆYm?¯/ÿ™¸?@ih³*/?“sÔn¼$?¹|Ö‰F?6@|ÿáÔi?ýøzód?H ÙÖ:¤?a7‹/¨?–ÜzÌ9 ?+ÁÀì^Z?Gk}CŠ? ë? ¯‘ÙN?eøñ‘sB?Í¡ñÿá?T¹¹ ? ƒì‡‹?¤‚;Yà?ÎäÏ÷ìj?4xHd?½ñð°ÇÁ?™À,¤ôD?>°y½Äš?䔾ôeì?Àà ¼?ñy!Ûð‰?~Àžß~?V¶©qN…?d%È«î7?–æxV‘?Ùjé)’?êTQ‘n?îÑâÔ‘?ÄbÄ4Ä?k=õaê*?ómƒ>“?q‡CÈ$æ?ö¹ÀúCæ?‹(ãÓ*í?0/•܆?å$è€~H?¬à3jÆ?Îù”C/?ŽdáÞbN?°Ús§¥µ?ð%€{¦??¹L7×"?Žr~5?Ì%S“¿?ï4îðå?øLëC?ï“]Ô2(?áCÄ?ÖmÎX ?Ñ<_ ƒæ?ÓxÚP¹?┵$…?rÎ~¥'?L®A!ö‘?ªÄŽÛûJ?&GE™?ežý7Ú?ž®#óÛ?¾)pPº?ÖLÛdy?óz²É}?ÞZç¤?/¬ÛãÙ?2&Há:'?szæVÊ?ýþ1òšT?KHdU?Wq÷Ñ??Z-ÊT*?ñc>q?”ÏlNX`?)O¦„³Ò? ¸ <»&¢*F ?oZ3ñh?~.be^?¹2¡ð·?~çjÇN?†a¦ Õ?¤$”ÙÝ?éJ£·ä?d7iæ H?pV†?Å9„Ì?çl²?HZç¬#b?ªœ›¨?Bó õì?×—J?ùÆø”?Üâ¬"Ìë?“ƒ…'Ó?ÉfÚ$?]¾½,9'?¢Æ%” ?ü!@#Ò?p')ó?éÞ£bh?GNŒ¶½Å?m’H´#?V™ÍŽI?žWKèf?ºó‹Pº?!Oœ¼H@?!(k®B[Ñ? Ùþ™do? pxøRª!?è:SðZv?ÖI…è,ã?¶fÖ­t?y«?_P©X‘?IRñ?»ˆ ¬?LÄ]ú¯d?ö'¡PÎ8?ñS†ÇkD?s„Nòm?’ÓF*/?8P¯fö?%.eÌdþ?þ¬õY?Áßâ~>º?-Gp¢±û?naºÙ%?±b:ø?ÍZRor?¥µûx?DÖ1€?ÜYBý\?Y$Òì.@?±ÜÀšl?ÝÑ}àgð?×Y4‰²?”Ü~×Ä?5!ÐG¦?Siùä•?^%W×p?FŽÜaI0?/¢³wâé?I#ĵG±?ÁÊúà«—?°˜@¨?…•OÒè?QªÀ?#°šD?/EHåö?ñ$C ‰Ú?["%2ª?íÜôë?öé¼Ññ^?– ú’Ì?‰á¬o÷ß?ºÉo"ë0?øb„’(ò?Ô Á/?î’Ztô,?˜Â/dÍŒ?8ä Q ¹?ƒÛЈ?$û:$—?°…L¸?•…E?§Ìצ²œ?«àÞlò?m¶Sä(?Ñâ4ë?Üõ홥s?ªŒy’?Zû™+\ë?¥é<-è?¶©%D ?axþ²ì ?ýùÅÔøñ?ˆ6Ùlq?Ü”ŒÐ?ƒ]^¤1?¨t€ˆ‰?Ñœ%øm?Ä;G(Óf?÷š2Æ?lÕ?A"Sc? )KY?[ˆ ¹?OlRëLf?›O1º­;?攩äÙÞ?¿µ?äéXÊë??ék„?“›Y3O?(ÉìÂ?ÄCT#K?X"|Â^?0¡,r?+`1DÁ?}“íô˜>?ýà3|?¥JW)J?4ºPj[?–Vã6ב?4EŽË,?¨ÌE?K¥äTož?¼D_ËIÈ?HZ±«·?¬÷¶Ù?:À Rz?úWhzÜN?§¬¥Â!?ƒ)^ü™?iÆFf‘?7ü¯¬ Ç? qªš¾i? ߆0‚2,?  ß‡? $/ìâßn? ¾‹š ¥? ”=êÖ$R?‚pýàsL?ã^ŠÏ»?^¶ä‡‹?Ö’ˆ“­?©,? :¨? "S®^? W”nsò? ODa6æ,? Ʊõ¿Qê? G3~Ø©á? ßš{­¡¯?ôôˆÆð?HÅAÊ–?Cª…!n?ßýøÜú?¤^l”Í?õ’¢Þ–?“ñ|Hn›?Sz4"?ˆ+M8–?-?ÕSë?+ÖÔšåa?£øôw0Å?”ÜÃõF?Óqêøñ?Ã~Qe?)÷®â?fDH7n?/û7™?‚Î'm? «RËaÖ?Útb|+?q~»ˆéã?‹šýªÈ?,¥ AR?:]yŠÇ?†ï<ïÞ?ÞQ÷é?ê‡g¬Ï?ÿ6O?F˜¦h?¶33‹À?nøØ/\À?¾?¶Ü?·Ej*¦?Rï 4?Gíü4þ˜?@˜ñ^ ?‡÷½ˆq?!ãÚL÷œ?™¦1So? X#ô ?_‰à»N ?®DÆÏ`Ï?òx噿?ü ä‘?ó%H¹ä?š¡îiææ?ƒy““‹?ƒ¸¡—iô?õ$Íy|?v_Új€‘?ªb?«Õ·—ç4?cSk³æJ?9îI”:÷?;Š ¶Ê=?mð©Ñ4·?ʉi·˜Ð‡´I?·²O'žS?eø_½²?@„ĺ¥?ŠºíAŽ?¼ç?Ý‹ç?6äZ÷u?ÂI¢«x4?^×ýX0?ñBá%*?Y¾Èú;¯?ue)?^`sL[G? ‹^G?ž;jÚ .?<ÚØšê?‰-&?õ?,úˆ¦ô?d[/È÷ß?ûO|Éñ?°½7?T“õ¥ÿ?Æ "_æ?üȧHð? <€ç̃?±c]UÂ?)ÆU×wD?FÌ›{˜?WÏÂ|â?B²ôÞi,?ôGxÌ6ô?d†ô4m?—×õ|Jî?ž¶Ü”ä‚?•Ù9—íü?¢æZ;°?êÀö¥ü?… OÌ&?s1àe? Šå Ž?ìG¾³ï?7gÍf>?p»8Kéà?šèƒ(‹?Êõ½Õ=9?"eÞËN¾?ÄŠ&ûž?È0µAf*?)Óªî?ÀË?V? ¦çâ0†v?!D«5k¨?! 4rÿ¦?!±wÔFFŠ?!€1â9ÿ?!5¹32? •ªÖAf¿?ò— ;0?¡ëZö¼?HÁ(v9…?ð;$?šÖ »¢2?B~ܲ?åÜaIØ?’5BvB?iYm(Í?—¸E‰ ð?E𱻬?~å¶úr?*|#[Œ?¿,©;?ñÒÕš¨*?ŸuâÕí¼?Û­6AU?Vh¨?˜¹Ø21?ìâÓrÆ?OSm”?±cI¿•?=3?<’4oæ?bE„èVœ?sÍárp?f•Õ«ut?0q‚ˆŸv?Ʋٵa?"ÙóçÔ?K÷!€?T‚eÑ?a;+òK?¢Á®‚Ä?F¡±:?_U~Iï?ØÆõÄË?|"•Êp?S¨rÕÔ?=—J¦„²?Ç•Xo?qA,ô¸?æe ¸ž?UX5÷h?¶ã¬zl? T‚žï½?D7¹„Â?ƒÂЃå„?˜#& »?k“TU£?Wzª?¯0ÜB?„±³V\é?µÉ­B§?IÏJ$^?%¦ÿÖJZ?yP>¾.?ꦸ²Ö€?yè÷Œi?¸ôg4?²Mà|͘?{úŸæÙ?,*fï!?Ò2”íA–?uÕ£¼"?blvDù?ÀŒB(\?gW‰úìR? Ö‘c>?«ÌІ$?Hò ;ÿÆ?ë9Íó`?¡:6ŠH2?|¢'\Ð?‘ÚNÞ?ß±¨ú‹?x4m­–µ?U5…oö0?m>¶ `%?­àßÿM²?ùM/BG?&Ÿò0?¶Mfx´?f.Àí"0?1ÔÝÕmÄ?cEA-(¯?ÿÑg?_ìÂç?…öÖõÞ?¼ r0s?0#® ?P¤Òáßã?(%ÿÜÁ?æ‚]XôB?©ú½³„v?•¼zÛV?Ì…ôzž¬?j®*YÏf?p"Ãê?¹w_þ§ö?uÄ¥?ÈbœŸô?zO©>Qa?WÚÙ8 ¢?·‰mÈB¤?Ú'‚¢? ÷Ø|b?–Ï0|?™˜Õtø#?l oÆ? Žøø?={Ü?‹?{ck»'j?™ÁyŸ'ˆ?s¶_K·?òž«±i? ž‡ .?Æ®*1ßü?)fs?K(œ­Š?LØUê?UÌ`SìŸ?ŠoÖB‡?/‹ìI?ºOÙiÔ?±jº®?Úeɶ?)`¼ÉN?ŒBƵ;ð?æÂ /É–?f—˜™G?ª]·›á?®¸t?Ù?%¶Å|åh?ˆ%Îÿ5ë?îW65ö?bõ°Á ?åð…Ü­{?uD(˜ÛI?Û׈ƒ.?Ú=qü‘?ÑÜ&Ê?–² ?u.’¡ýÙ?ýÑjÆ?z;tã±?Å-4ø-^?˨FO­?’ìU H˜?2ýÂÍb?ÈIRÁ±p?d‰£mR? ‘Üä†Ú?±2î•L™?[í%b¬?TØ ’?óQ”ÒÅX?*iÏ”˜?LœQ8TÑ?¯¢ÙU~?å¡it?€‡_ZhD?ædÞ7\i?QãH>\?À=­j¤?"€`šf&?gÏêå?ˆ×²Â@¥?š‰ëV¿È?ÇÒ$V?N{1i¤?r>mPŒú?o ^üÄÄ?gôÝ¿%ø?S=2“­?!ó6œ†?$Fjc#³:?&=Ð)Íj?'qª¯ÁÊü?'w†ì?&½/üPµŒ?%Q5G?#$äöYö?![kÉ0€? ®e2+™?‡ ¢ÖÿÂ?È\{÷©z?dÏ `bê?÷ñÀ:?Kct ±Ž?YF­mø"?:?Utš?hšÏ`h?ö|"˜nö?Œ^£¹n?CX.–˜?½3FõŒ?q\{%?XtÅ8æ?`݉Öùt?wŒd8™?‘\Uü¯€?²›«Þ1„?í¤'¶¶š?V¸5(íÕ?õO–°šh?¼Ñª|˜?‘½+3j¯?Yܪñ˜? [ÜÕʹ?°I Ìê¨?\lÔÔìä?MSy~T?ã­ „?™jŸüK?[ Ò(?T¦‹“õZ?Cs2T˜—?øÕÕ(‹ ?õ ¨XK?(=š×Ì?ã7fÔ4?ßÜ3jˆœ?/5ƒšùT?ÇÔ áÑT?‚3Ϫ8?&¿ÉsL?‰ Ý¿na?žµ¤øÒ?‚•ý49&?`E×ð”Ð?YNŸ™v?qÀS›C?“aB¿–n?˜Ý&=¯?_S„¼ŒY?ÐYdAy?ç0>ò:’?¶äi¥&?fW÷&—²?*ŸÓÇo~?7œÉÐ2?®ïÔ9?”’Œìå‰?ÏÛ!@iº?7 y¥‰?¡5C€Â¹?ôägl?0}•î}E?i&×?ÙÏXx+?gÁ9tš?pÄó¥†$?ÝŒ,x›Ö?ˆã²\–’? ˜>'!ê­?!DÓg£¾|?!­W(ÓÉ?!ÅÅ"ª-?!’íÎ#Úã?!$+¬Œ? ‹ÉòÔC?³Î¶­Î"?6gÿ×Òª?²5ýá ?2£Àp [?¾ÅÕU6?YæŒç? ê G6Ô?ámù5I?ý3Ñ‘kº?}¿/¦w\?y2M{æ?ìôçÞÜ?¹ªçŽÿ?©Ë*ºb?†íf°?.{¸§ Ü?™® ?ØÄÌPY ? ¯7Æ?-£´l'{?K}´;-Æ?U%ˆ‚x±?HÞCšv|?23äï`? U/ªV¦?‚ð}?;±–?ïw•îåš?¢w™?C@Ê?\v 7Óñ?{ý©°®ò?£Èn(#l?"Ðþµ?Ô.ÞHŸN?=RõŽÙ?°áÒ [A?mAÃ×?+èÜÒ?ONNë?3”ã°?ÈNâ–?;û¦Êt?Ç5J&?”.{?­Q¾ ™D?÷™P;øC??“¾}2¦?SÝÅ©«Ó?!Aá¼?½GÁ*9?\¯=AœS?8%¹Æ :?qÃQŸâi?R|Ä->?Ð#ÜŠ¨?™åZš?693Ë ?K2Óš5?§ëwÏèž?³ØIŸÀ?YÃδíÂ? ~yÐCâ?®AàYe—?Fúücô[?ã¢}Ù×?c" z?PƒUVZ˜?ÔÒÞ=Ð?Ú"n†?ጾJ? 噟U?‹€‹Î?Œš»"Ý?Ç­…»?½~¹8?“ì™ò?¬P°¿8?Ÿ§™ê?Ìäu[_m?ùJ Fˆ?BÌ1fÁ?+T >? ž<ñ¬Ò?…ÖæÛ?Ö0!ÈŽ?¦2…˜QÑ?+”‚+Ý?cÀ}Ke¤?¸ùtª´?JÂ9nUß?:ªæ±'?’½4Ò·H?GËâ¤$€?BvI~2è?m\åîv–?¹§u'b?Z&‰+Þ?“m¡möz?gñè’?‚¹bUª ?â=¿•š? Q Èÿ?s¶‚Òæ?ÏłԄ?  ?IÅR˜?¥· <^? , g%é? ZË- P? ½Èµ'è? ­@ÝyÕ˜?3DòÜf?‰*Ô¦?AÍ=¼aS?uýª*‹?6‡LÉz?.\/I~y?vDñžiz?( ¥mkü? ß/ŒQ? %[,Íà?ýú‹RÅ$?ô7T¨ë? ä?¾¤þ? ^fÀ?}? äìzŽ?XóÀà?àd”Ÿ?:¼žWµy?Q¬|,r?S+LÌ8ž?n@?¡þ.?ÓЩa?¸?[úÊpŽ?Ì K(ñ?3gZ½LÇ?cH-–Ø?Ðþi>[Ö?ÝrFž­?kß=‘‰r?cAôÏkº?×a ÷¼?Æ9S‘÷?1>qu´?¦€ëˆb?Œ5¹?ëÜÅuJ?³©™mÄT?¾3z|¨;?Ûî€k^É?ÜŽó…Z?˜SØe?÷‚S*/?õ¼B²t?ŸE¥äC/? ŸGÌž?U*]”/?›”ݼd¿m…е?fª#%$`?ÑÇO(*o?_(³Ó?Ýtÿ^s“? –áë±?óÿ?¾t'Œ©?GIúdœ„?ÐÌ%h€ô?mÁsÇ?3Ñ€©?Âÿ›%p?_0²‘ë?ûªØˆV?³¢¶Ù? Ìt‹’?É­ê;Yí?ï™Q"?‰4€\•.?ù D'?o~2vv?ð…Ýø?zé z/?_Ã`¾?m胲±?ºï'>i—?õ[í¼L??D@}àF?á(!fÑ? ”Hå)?û/ÐÏ?Ï šS‹å?|ø¼FØT?!ß$ÓÊ?$ŽÁÌ“?%РáÐ]w?&ä/1J):?'²Ú¾ö?&'J8"X?$šw6š˜¸?"Ê ÷œÚ'?!%`o¸«“?å®F”ÏC?|íƒW?Ä穟ÔD?Ol]f& ?¼y—å~¶?Ý~¸Þ:6?µSüMQ>?e¬‚ém ?õ‚‡ˆý?óØ(6.¾?ƒšU3w?t˜+Ïl?&èl"?w36J?>½þÓÊ?v÷IX¡Y?¬Œ÷Q¨Œ?Ô7ãB‰*?ô%ü-0®? OC¹ÿ/?mðuZÓ?æªïbñ ?ƒ}NY ¿?2“õçã†?ä8u–¦?—Îät¸?T±yüq?'°šÏVÈ?<£Ù…\?œ­í1?àÈ:e*æ?†ßŽ$r,?åò›ëB?ü‘Óbˆ?ÖZ¢¹?†¬OMâ?'}òµ h?Úß¿^#?ÆÜÀ{?: d2o?•ÉY‘H?Le‚‡V?ézÔ¶Éì? ÒâÊxÿ? m¹ñDj?É÷PâUÆ?iH”_2[?/Ôrã1Ï?.$3mо?P@ÎïŒ[?jS‚–{?LDI’*?ÐVWK¯?麮?¨Í‚ÅÈ$?:Õ«¤–?ÞÁV¯›Ç?ѨÄCã?:™[¡WÃ?FŸCÞ?`×ë¯õ^?ÓÛBBT?F?K•T¼?œ¦Ã ½®?Ò“&æ%?ý=i‚?CõÚ(ö?ДX'•?Áöš,b¤?@ÊsÈÔ?»ËdýÖ? 2ˆ#Ž"? æ– dÍ?![uÚ:J=?!ŠV¾~Ö?!Y±PZd? ð­~ߌi? XT~œC ?C°÷‰‘”?¶Zíû‘ ?@×ÿæ?‡K4½À?'ì)H?—à ’?]7QcÂ?hÇü?Ô÷–ý ?µà¦Sdè?B·Àâ?Íž¡Hd?ŃßèÞŸ?Åx‰&­>? ÄûÔH?>Önƒ/¨?ž¿ÕöÌ?Ï ¼¤Ä?Þ?üm}´?Ï–Ê’?œ”¢}R?C §ÐÁ#?Ñ'Äó•d?d¨¨ ÄK?‰qP”ý?üØ# ?û[×Ú‡}?óúñWfí?ÃZëtÛ?Rîn»?£—ÿ¤5?Ðu¿¾.?áOP [?…Òú¸rß?p»ßÇ??Îd—Ù?€‡‰_Mð?J°`åÌý?í¦väì?=ßÿ=?/» 3d¼?Ú…?Éûg#Œç?l™"v?†gŽÐº{?êõ·U×?*ôër?,Ü‚b¾•Ö†?ÿÖÏE£Ó?ˆ…zÑ?#0×.Ü7?ÃliÇ-µDÀ2ø?b¯–D‰?™hDxíY?ìǹì>?ZŒz®ƒ?ÚÎhªM]?j="ˆJ?L ƒ?Õ€‘¶wš?Ã(Åñî?ÏíÈ>€ñ?ãÿÞÛwÚ?à¾c6Ùð?¬©E@{?Þ½ÂÄðÃ?†å&¬?¿|±‹?“Ï[EîÎ?3<´?ྴ#}ð?Û.Î N`?Jq…ª¤Á?1ýÑ0·Õ?t3LßáH?àrÙùx*?Gœþ¹Æ0?Œ¦äÓ?©ø$¶”+?¶Ž8çŒ?×áÛÔ?5‹Áoz“?ñÞ?Yr?.BMqš?„ÏŠ?c? ’1ntÎ? 5gE ä6? ±‡…vQŽ? èîØÂ+? ÖÂÏq»? „%‹¯Í`?þI˜!êÌ?®˜*FJ?4¤hx¾?£â\S0m?Ñ50p?ŠÝWûSŽ?+Å |;?™Ï3…?QX"˜î? Ã"Ôóä?J9Ù¨ë¯?üƒ|-ø?þÒ&ið?уÄ;W?'ø7nÛt?û»Gxé–?ž÷ M?álH_?ÈO¨â?÷íÆ¥d0?¶ãEÚqá?7—˜Ü?Llò?ªü‘ó^F?êÇ·ò–?hÂu@.B?3‰´rÓ¦?5ñ­7 ?B>Ê_?(nØsb?ÉÈ8@¿¯?%õin‰¥b?¶UÅ•v?n£êƒNY?ìƒt+Ÿ?8½i)zæ?pFH©zÈ?·ç—??2?¨‡Á?ø*@|?8‹>?h1‘¾é?Xårå_ù?YÎè0P(?pŽ»Q›J?qóÃB\²?1iþhô²?‹Uu›Ë?l¹eN†Î?Õ–£û©B?× N¦Ë0?ä?.É’© r?ã¹í­0Ç?ß™Bk§@?@” 5ÂE? >¼¤½À?*Ö¨^ÈG?)¶(?è…RÆ‚^?QÓ _¹4?³PùIÊ?ñ¢Á_èP?  Š˜¹;?xÙ^=ƒ?•PætœÔ?. CÊ?˜ÐôÉIè?Õk êúb?®ùäÓ£6?8ãLØF?¥3Íhf?.xÈMŸf?„’ì‹?KÜd?NCü?'Â$0íƒ?“ ¤?ûa?!Ô±;?®ëµÿ?ü|Î)É?kº“?™¥ôãÿ$?»3ꊪ:?áCÔ=µÅ?þ‚áoz?WÈëGê?ªRàM˲?$€Ê«p?¤P*P?hÚœw|D?cÈÛÍ'?… Dïì?¯ƒùà?Ä8úU•@?®1fßF?csîŒs6?ß³fç? ,½Û[T?•uo2pÍ?àªU«i?+@Ž.+/?‚¶Éž‡á? ›¡ ?.¨PM}?;f¢gÁÄ?êq•,ù?=ÿ‹ëH?b³L<6£?‡§$?/+»±b?< µ¬x?Ç©áC÷?».Råʼn?ï ö„c?4 G\ã?Z%7 à?7Ž"Ô…?­à­m!²?^kTz?p‘“´é@? 5[@x{ ? ¦ …a÷C?dq›’Eç?è˜l8Ð/?bš”h?·ÛÐöW?š /Ö?®qà N? ®oÛqf? £io›à? 2¡N!ž? ëµ= Üë? ˰cÓF? ã–þö?7W Ë%„?cäFÒ¨Y?Jç¡Gã¶?Kt'¶?Q»Žp?Ø»ÌXÁ?Yi6?Hàc¬Ü|?¯?ÕÛ«ó?o8¡²?ýg¬Êˆ?òüÅØ'?X'6{?‡‹ÓPµ?i•,Âðß?ûãªÝ?´ŠO…Î?z•¨%Ø?p‰]Š$?z‚Ô?gë’gg?gbÝÿì?o[éÿ(?ôÈüQ?z¼Yó­Ð?AšÓÀå?JÌ¡;O/?‚ä]2Ÿ?Õ¾uî}?<Š)DM?»×«Ž,¦?W¤|x„ý?Ô$—1ð?½ÑbÏö6?dwŠÿy?ö¤ì©?€úqƒ!?ø||:?öSì..?(êbüÞ?ÌÊS›â?áij¨?F»ß±ã¶? Yêà¿Øe?!ahJsðä?",ôsÂ?""Ñí‘»M?!»~ð9Ÿ? ô­ÆB]? ] ò£?‰UZ¡Ø?t#–•«*?Ù9}'¹??zÒòB¥O?=Nµù ?@rp|(?AÝ€j?—ôÝ*T=?a+ª;R?’VÎÎð¤?xÌÿï™?Ö±œ>Oà?²Î›´ú˜?ü:aLat?ÎC_°À?BÊò c`?íÆ4Ì´?v—Џ ¸?Ô|«˜x?r™òd?2K»ô?O®#@?lŸÌU׎?*s]ó¦?½v”Ñê\?ãÊ€¼É?&‡ÔêZ?<ÿŠzòÈ?:T7nR?díkª?˜¸˜ýo ?¸ä~‡¬?²{ÝÔý?~”ºlw? +†ÞÎ? :ÕƒJ‡>? EšÀnSi?Y? @É"rÀ? s+ú? tmFR¿? 4àU;I?‡‰½?Ç?Œšâ\ê?ÆÏx×ì1?i€xɶž?w-Qz¹›?ÇóG 6?Ù²&¦Š?3?8ag¾?ç’CT¼?6êKfX"?G‹¢ð™Ö?Rö J)º?•›Mý`?!†”`»?И[—Ö?+:¡¿òø?e˰Wjl?” ¥r ž?Ÿð³˜q?„‘~é¯?M:N£0?ª9wÑÕ?è7ûHÕ?ó’g|&Ø?F_;E?ãÂz£[Î?º8è+"?§£Œ“»?€çÓæI?"cUg8?q¹Ž×¼Ê?c‚ÉSR?ù¢Éœ…þ??©:¦®)?EÈ8NÞž?Šû×BY?ß8jp®k?£ ~;?ŒXÔ°*³?Âõš^Èx?lºç°®?ž†í£?TWÈ”?lR -ã?­z%äTH?ÝP^ÕE?Õ5D!²?Š£®ƒ[¶?©;¼z?\xñ_ìß?…d¡¼/?n—þE9?ùÒ‘àl?.áÖ²o?Ë/¢3O‚?Sö?2Õ?ù˜~%>¶?ÿ¿÷ å?,ó.?gºÈé¯?z³drY?|n•$Qr?Dq'G»î?ÍоÛÇø?4®8^¯?¨oJž·ž?W4Z‡}?YÀÞ3a ?ª¼¾?*߆ӽ?«PG]>?*çÜÚ?+ÑŒÓþ?»Ãs>?èH-­?¹áM ß?±üùTú?èXIÀË ?^UWí?úeæ“Fú?“påÓO.?+ ;¥ö?7%Õe³j?BdX]sg?Jgñ‰à…?vZÅDœ?ØÂ &ƒ·?f åtÒ?úœ™ŠÒ?j»GWR?—|"#Ñk?z§Ž¨;Ò?Ñ;Hx?• ïe’‘?édŒ*U?">ý¸,?Gvˆ@i‹?mÆ*ò¶?¯ç##H›?(æ;SÌ?ÞL-¦ìð?½9N‡5?¢¯l…A?n]r¸‡"?2#œÔ?ŠoX J?ì¾ vG?Hk;?®¯uDVY?0¡Ü‹¨?à®þ)/‘?Ð÷®lò:? õgÓ¸t?™aÁAb?g&ôãØE?]zìä?W°)Tyè?,ÒÜ&÷P?·uš~Î?Ú8™×[°?‰Œü|:?ËLÁ”A?»SOØ?ˆ¢è‘Ýg?lWÃyB?˜R>Bùð?(îN=‹?`*_‚?Y© )ž‚?»^ºJE?„dÌ?m-Gëãâ?¤×N³¤?Òœ/¯@?ýňæ?JfßC˜_?‡‚OØ`?“’*q6?pÙW¥\?”;÷ì?{”b òC?ç6'–?ìq8NØ?˜Zb?‘2þ¯q?%×SO\b?¹ÿÚ˜¯2?6šJæ?é&ˆF?È…œV¯ý?⽓?6¶¦GI"?D¹ê½…ò? > 1•è«? ÛýÚÎo?¬ä€‘ÇÔ?(ˆds3~?ŒàOïŠ ?ÒôR?·sM¦~?á£ÁÏÓN?  O? ó£—ÖÚ? º1ÞîÂ? vD+Ík? HSc8‘î?B@¦ ?fRw²?Y¯|óä?£wóúî?äÞœÄf?º'ŽÇ±„?zP6ÿ4ò? u¡K–?FÓ¤W ?F!¹Áèº?#B ˆi?Ó僖?s•Šif?SfZ|MH?½ AÁ¥?=Ø€¾Ê¨?»Ûîé=¡?òøµš?*¡Ç3x?×9ØŽMþ?ÿá!x?î"(1ä?¨…†{L?‹Ve‹Ï­?ÝçÆ»ÎQ?Ťëj[?< ·`iÄ?¶d(É[? ±4Ïõ;¯?mp£,Ä?ÇÒŠ$Vé?|T¡í`?•ž´Ÿ?ô_¹–—?[ÁF!?’„ظ¤?€)ùû4Ì?7ÃØJº?è/ àòy?»ž†ì´?»æ72Q?Ëb0þ/x?¹D*ß?b^p°V?Éj¡¤Œô?·?=ä?›æÆ?…u\.D~?ã°ìá&÷?Y¥ìøó?êŽÜ™!É?‘sÑWžß??v®‡ ¶?âÖt\€?ré«pö?òÈ5ÉÛ?yƒ=5{?"³"Ñ`=? sî <>?D‚›¿À?Ô‰º9Äh?¥«¨Õ3 ?…Uöô"?(»)¥Gþ? ~-Iz:? Li¿†i? ¬—AÐ?7xß_Ä?"´'O? ­r?añÉ × ?ÔU¶Ìš?È”û"?cLÌy¶?¨Pýàú$?‹Úšo?'ìÑ €€?®Ï“u¬D?Y}]1g°?YG4>±Ç?ͼ°Â¯^?¾ÀÿûÈÎ?x‚È“?Ä[¾ŽÀ?Š»§’?I4N”4?åv0ŒVÄ?UÐNmO3?ž›ª$Íý?ËŒž¾¬?èH êaž?ü¾……%?]c¢?&ö¨tZ-?Y½Bçm?À=&™Q¤?n >O™&?c¸Eéìl?Ч#5‚?¾Á‰àÙ?ß*×Ö´?ÙìjW?©5w¦!`? $.™-?åáÛKͳ?ÆëU™˜?pÂõ l?ó.™ª+ç?\„¾ Û?¢+xi€ê?¡Åü;à%?0ÝQt¼?5òòBp?¿3Ù ô±?bš­ ?h:7†æ”?,•"ÊXà?y^­•!?>œ~‹õ?E4fõñ?OšEEÀ?3•I%×b?çîA€P?€«x1wì?!ÆyÙé–?ìÈsGí¼?ò^R´~¬?,>p†›Ñ?Ú-÷¬?ÓMÁ+ #?Bv ü?#%dìË?ï5®Ô‚?»¿îçN?CUH¹?‡ @8§?¸`ø«(®?'V×¢ÈÚ?Â~w+†?hàòœ´r?ø±„¡W¿?`+tñ?¥kˆÞÆ?àfT$?-… ¸†?žxU_÷Õ?.˜"r…ô?ÄŒœ’±¹?;ƒd¡¿ô?pÄ5ÞÌ?P ÚóŠz?×$òË8?kèøêÂ?¹é]‘^?üØäpõ¤?ßýŽ•”÷?Ý?ñ? -Ÿdâ?†Ô Š…¢??óD–?$9.O`Ü?ñí¡îN?ï¹Þ£ð?­Iö˜Ä?Lôqõ­‰?׿b*.?V¯ËEÀ?Ñ}¿µ·š?TØ+?ïý¥?ºX½kÅg?ÅL{?ñ—>Ÿª?²´“&Z?‚ûX+Á¼?nnÓœõ?P§òAB?itþú?\h5ž?J&êOà?Ç<þqó?æ¡fÜ_?Ñɦ<ÙH?¾PD1;?ß…àØGË?XrÄg^?1MÅÓǺ?YTâÝ<«?®3Ⱦ? –wÔ?E?N-tX¡l?ràÁB?Ggš ?çJ1ä?­š¹Óœ?Ô´¿JD ?îTö”†J?ä®}ƒ"?¶ ³Ð?€ ÊÃ?iX^EÝT?‰²\ø4?×}‰sep?-1b™l.?^Ö¹kå³?O˜uÑέ?ÿ=õ.0?ˆdhõ"?CÊ€Ã?Îöˆãê“?Œè¢y]>?‘ܻڣ? ÕyTE Æ? ¾Â—Úú?È’ò{ `?bhzŒÔ?ÐÞKEm¬? Rz?¸s^t? WV€‚? £žÿØ Ã? Á§E0´? ©•iƒj? p™™: ?35òH Ç?B?µL?íÆ­mÝ?x‘Ù$â? èrJe–?ª-ü[½?NÏ=‹#?â=&ßB•?MTk:?…¢²Êx?™t cfv?¨‡]ÀŽ?Ó_¹-9?*+Ã0_¯?¥˜¦¯Ã„?/Ñ{ÁGy?®ëBd¯? S!f¤?-×ÁýGA?ý„ŒÚXY?dÜfûªY?^ž±•á?•êß'?îÐÖsg?Pâ,À„ß?7?ö ¯Ѹ?´=[lä)?*ùÒ¯û?j؃g\¢?kb·Í^?§óÉè ?Å£Šíüµ?éÄÆ3É?¤ópóú?E’ÇŸë‰?wµeohÉ?²áùN?¡6ÌÃ9?j¯’,Õ?îêýž¼Ê?ßëÃ?µêd_Ó?`z…ÿWN?ä4rXþ;?@ã*†”?~¾gù®Ú?§kÕC?ÂSf)œ£?Ô©G;Î?çÇp‹¥]?œfC¥ö?cØü!Lß?þ<-„P„?âRÆ Z?ü1)@jQ?'Ê®üò£?BX 5š?6*{‚÷?üÀU8ˆb? HTÉò? tQµžã%? {X¬Ñ1:? ^l$Ý\?í0òÒœ?×à?¢'?”ì ï¡?7…l‚³?qh0 Î?² ÊÉÝ?Œ'±?†™þ L>?\Ìêæw>?Œ  Ga?׫ìÐo?­ÇÎ9íŽ?WyBÅ: ?~ÄJvß?”ÔC€2?3tˆÛ?(ãRƒ‘Ò?:{ÿ§Î ?=ÿøS??%‘†Û?û Kæ,ò?Ô +¯w?ÃÈÖ “?ÒVâíú?øÂC8¤ ?(15j?MÕqø¸+?[ˆ÷Âúd?Ka.%^þ?!Dc4‚P?é¦dÄË?¸XV#¼?¥ }ò‡?ÄfŸ]üØ?ØC‚Î??¯§`mÙ?\ñJM? 'Ϙ¡R?¤ô,‘\Æ?#ý R§B?÷¡²w’?üý‰B¼Þ?wY¦Â“†?Xšžþ?•?#eÄâ? s>>?B5|›¸Ã?Ï¡ =˜?t½çû‘À?k/s[ÌÜ?˜Ãj ?«_œbî?SCâ z„?6Öô9?læ£dî?ø–Ôœ?jŽ==5?Õÿ‘?ç ¡x/®?“Ú˜†n ?è¶kÙ‹7?=ðë¿i?s[\2ˆ?Eûæíä?¹ã ^‰â?€ýˆìÆ?‘Nš3WÉ?Ò+þÇYK?,üsNK?P¯¹æ p?]„Â{'Ã?KS\n”r?2Èù Hµ?+õºÑöà?=RMÃ\$?YôÔ@•õ?nîp?wFHª†À?ƒ•´Þ¶[?­ ƒ- b?ý͆Â?[«HþV¾?•φkûr?v:ˆdÀ?á4-“ð2?æÒÉ€V?€ ¦çIb? w}=³>? Fód—þù?Irl? ~jyçõâ? ÝÅ:ùµ? QнŸ?¢.™ e’?f}~­‡º?åı ð?5l6C¾?4JBR? œ‡¬¤X? Aê~2? €Rî'V? ¥µF!Vd?“jÜÛ9É?[c: çº? K ¬aä?dŸO5®?Ç) òðp?6 Mæ‚ ?°n ¬Ì=?*Æ2Áé?‘€Ÿè I?ÔNèYy8?ó÷”ˆ!,?Z°lò?0Õü¯Ò?Š"Ì?0?L½1xt?¸!ÿm7?RÅéaI?ÅN.cÌÏ?ûúŽôF?ê49Ú¢?„¬ŸG\?¿"`Àm¼?›<~·?0œâ3u?´ëá"à?áTd´›S? PyžhÇ? rÒðô? ñÊ~*ì`?Á$‹H~l?ö‡Î˜<®?ú™@¼L¦?Â9À? ??õ;DŒ?}ëdàÌ?–Å'Žè?¥g4×oï?¾ XLÎ3?ꊙöf?+oËô*%?z€—®=f?ËW%Ï£4? c{—6ì?#Ì—¿œ?ã1õºB?K•ï%‰? üÙv¡?w¦dÒ?{U5gk? ,8p?L[ÿ«ÞÜ?ÊœŠS6?GÙ6?‘°Œµª?”bxu‹Î?^fc÷…?ÕHÆ·Wa?fc:úZ?<"{œ1?{f ²?ññ d$?…wT:(?™ÆMIA?-LZÕŒ?M'_ºá?¨}Á™?žÞ—è=?…R„šw:?ÿüV­ h?vôç- =?ã ðš#A?DØ”³Í÷?¥ï¢Qíì?%ƒE…5?¢ U7æ?Y#í·Ÿ?>ÿï•Ã?LÕ€) €?l®Ïꀣ?{Ê<üV4?T' ?ýð?Ú&:<0?9‚d(´?ñг3P??»Q> ¢ü?ˆþYãóu?móŒµ?böš2`C?L šÞ?¥k\=2?…&²>¤?ç$%?Øt³›"¹?á:òvß9?ýT‹’H?J.LïZ?àt†Ç?ÎérÄZð?Uj£i´?¢È6Ñ8?ZäÞVD?UHW·?Ó†¸ów‚?jób7æ ?à–<ÀÃ?8qŽä?zm&ˆ?«}‡÷J ?ωۃqK?ì®/•s?r56?V£QÛg3?ØßvfËŒ?¢Ïb¯•×?§~­Ù?Æ [hš?Ù¢-:x[?ÈÀOy¿‹? CÝŠ{_Í? ˆ:½,ª|? ¬ß#ç&? ¬áU¹? ŠÝt'„? RW‚sâ®? @”éÚ? !yÎíL? ð ùvO? pBß„à? '»Â¥Î? É,:å?šæº`•?æ~us„?@ªÔWï?è´®÷i’?WlOØX?ŸT`VñZ?Šye75? B¢ª\äÖ? ¢ÛX—m´? ËBôÌ? ³5m 7? fºˆ7âþ?ú ¡gQ ?!Ε±0¤?l‘ïZP?ó3îÁ—?»Û ïd?½9®–‘R?âMqSÊ? ¶-ri?–¸ß·?ì©qÙÅ´?m‹ÅÑå%?œh¾_F?‘c(±ïå?yýa4©–?‹´MI–*?ôÑKVêâ?Ï!Œ t¹?=’ ?¶Œ1†l?w:vî¸?&…ºÿÑÜ?š„†PMÝ?¾‹žæûa?“Šò±ñ?*?Ç*È?šÑCóI? Ú·(?z»ä6a,?'1£ôÖ(?!Ü”kúÞ?x!u;c&? ’tÇ‹?û.üØ#ª?Ýú;C?©E¤Ù²?WA¹õhJ?ùecØÌ?¥ Obx?[¼^ë¹?þ(Nçmz? (_œ? W4ê£?"m¢õ—M?†:Ɡ?ƒ[F?~á-w$ ?Ø0´âý÷?ÄŸvÂÑ¢?B·PaŸ?'òSi^c?>§ó2 k?^…‰öºŒ?v…W™¤Á?‡PÍÐÏ?˜Òµh~3?°P_6ê?Í|Ü‘w¡?é‚¿£Àø?üÒ»ʺ?éÃ?óaX¨^?Ó¹}rœ ?¥?ÀšÆ?n\½Ó?;EC=?zé.ç?,¶î+ÿ?uc4qKZ?útøiô?®cTÁ?xÈ ¤§’??èÞª{w?ñ(0`g“?…ô;( >?x¥[Á?zJq@¾?óÚzu^ƒ?m±®?Ðõ0¤|?ðæjƒ¯þ?¤Â¡³³ô?ÒÎ\¯/Z?ƒÇWº8(?ãÿN˜ß?5;?o#?¸V&Åݵ?š>b´M±?ë’wÒØ?¡æ/ß½? ¯Ûƒå:?Âíí™*&?åé5(Ñ?ñþ[O\?àdþèà?·Øý×–P?„ìHži?P 5©?æ¶Ô#˜?èö‘$<†?¹Ot+º­?‘³OFØÕ?w’h’>þ?p‰QqA±?„*&ùC¢?»R¯ÙŒÐ?$È·S€?“!,SÎ?ÓOúÜ?ir]OÏ?…´¸ k?WŽŠ?ãílhÏè?Af5¬—?Œõl=T°?åÕ°^®0?hd{z?&çÙ¹? ‡'àR‹?EAòVcy?s‰¶(Ë[?‰[è&?t«Ö1R?;áV@¯?úÞüz?ÑuãP?ÐgÝñ6?ð_eÖEª?J· "Ä?O½2É/-?†zJà4R?ÒŒ|³.?7#=:±?˜d;D?½-?jè)åËR?þ”õ?#TÛs„? ýýHYý$? 1ªÜ(/ý?‘OÏÜ{•?  ¢`ôð? q4·!š? GX|Mí? ί@/q–?V&-”î?5lZ¹Û\?µËniúL?û°c²¿?üåÍýÖ¦? „ÒGA)©? JJP6? µQr¶"?‰xXÀ$é?½¡Ê‚Ù?S/ÀaÓ¼?¬2ÍÎ2?÷ÆQl`‡?DcTWð£?šáq'] ?ùGéØó?P»x¶-?ŒïB»ÐG?¢”ÜÍÌ"?œåíù~?™uêK ?À{å˜o?%Í£÷”®?¿Ôb»“•?jÔ$½?û¿mÏW?R"s)?_ M@J4?" ÓÓÐ=?›²¯×ÖÔ?É÷ ’}?°¨/'nô?cT:Fö®? Óï%ì? ÑËFV)Ñ? c(ó4ãì? qÎÙdT? Ú­ääR?qUÄ>Óy?2©vã"?"ƒÏhE?ߨPLQ?XíÆ·% ?”yíHnñ?©6-‘d?´„+YÅ?Ï€¥–Ë?fÅ"©¿?[¢—“^‘?À¥Õ$=?#è¬sBd?oÜý5D|?Tв?xrÌza@¥?§òRŒŽ?g15i#?C—”·B?mm]eÑ?Þˆ6ËT0?q‰&• ›?ô‚ô߃??I£M x?ClM;Œ?kI ·h?ÃuÔu?|™¡@?AÙ)‘? Ë’?£n ç?/{Ô·[?0êÌï?MܯРb?…;`##?õå‘”ä?væÆËÝ?x:íÇc?̇« é?$Æ@’@?kä}ÝV?¸Ù¢í [? }Cd“ü?fc÷-Xè?Ãgî`• ? ˜‘~ú?~†¿ Ën?âeJâ’?S¼2ø\?Úey/TH?|Їøæ?<‡g6S.?¿(KÙ¶?ú’b¨›È?Õª4QïG?ÝLC–?X¶Ûª«?md®þ:?”ƒvSÝf?¡±N£óÈþ`? dЃv?à¾" ¤?g®ÛØWR?žîr—?ˆ2Þ –§?8€”¢J?Ɇmqº?U œón?ó¤ÄËøM?ºË¿¬M ?½;$îI’?ং€?‚‘êÑ•p?#M6‰!Ó?ÇZ¥L’`?\þC»ÅP?épPFæ~?ƒ$—ä…?>ÍŒZY?r·6ïî?á¹pñ¯.? /˜d’ ? #héjÜ{?mv\Ÿ·?Ýâ ת?Ü7ùcL^?ЀÆZ>?\æ•F?önvý•]?c¸“X„r?>8¤.áì?Ve¾—˜?ˆYyŠ/?Ã,ø‹3þ?ë^°Ú,?B+ŠßÌ?~¸V/?¬h€¬H?Åç¿K?ÇãøÖ€â?µé#F‡?–ïtÿk§?qIœWó?H~hn?PPI³?ø+Ð6É"?ãdzˆ¼Ž?óçD› g?=£“nv?Ç7éç?‹ßùcD ?s$hйx?^Žä”£‹?0ò&¬â?×È/4ÆÈ?Q`^;ü?«qehdw?ø›ó«à?@fÑÜ»?pÞi);x?böj¦ ?ä"]ì6?ÚÑ]1n?PÕè MÖ?{à€Ê,Ô?ª–´PNÆ?'Ÿžð3??!Y5gÝ? à:ÛHB?‡¡¤ð?Å7ëd Æ?¬Ø ?[™?¹˜?€irÀ*I?\Í/ ñ?káVÒJ?T–§ÇŠ.?J:B¿2?OÍÙzk?^cÐÿ¯Þæ?åN1H·?™¿_¦?†àÙÖÂ?©ð;hÒ?ë=žC?33ì8OŽ?{ lÞÌ?Ì ÅÄò?*®Õê2ß?€‡¼é¾?—{¹:?1 ÌÝ™ü?)ºÝ¿®x?/ÏQ‘Ž? ˜B§Œ|?v¬‚X–?¤F}Å{›? püH?õ^? äÔ5€ †? Þ³<à‘Ì? ‡\†ö(í?üsw_¤?ö;b­Î±?[ÿÝŒÏ`?†„¸9¥¯?ƒB(A? /Å ´>š? G8yþ? sÖŸWé­?jG·@ ?|±Îm#õ? Ûžzµ©?g¬òp?¨¥à?™÷š+?!­JHã§? cÖ‚´zt? Pið;ºN? ¸Ò\©&? Â’ûô’? Ö,˜?¤™h~ïa?˜Ò8~.+?8ËQð§¨?¡Þ=Vú@?Ö»_@Ä?ê“}7¸‚?ùgïžç?ûEï?bîEw©%?È8y"R]?<§ÏÁõ?©4˜/¨~?÷7‚Ö<´?|£þ,Ú?vVÛÐ??Ë‚i0?Œß³2áò?m˳j±?ŒJû/$Ê?üuŽ?ƒZžbðZ? sŠ2½?œœ½›?Ûê‚;é ?Øø *ƒ‚?£Šeeqv?V}ÏO?]À¸Â?ºëptËý?aøK0^?äsŒŽóÄ?3yÓA«ß?W{Ø)Œ»?p{A§µ?§ÐÖGW?Z˜ ‹t?¶JÎI?ª… ±o/?éM5m$ò?"ó¾¿öP?SZÊ©­?ƒ| Ù·ï?·GçŠ?ô|?=<~T\=?”hrûÿ?úr¡ š•?pZñƒ1?ôæÞr?ö?ˆ=gËq'?)e² ¶?×Z—– 9?Ž”Z÷ ?Gx³y÷?öê®6Ó?‘ïš?[òØ%ñ?sclñ6~?º¡&R²?ëÒ#µBˆ? ݹ¡ðj?ÑøøÌ?_b“Ÿô?÷Ú¤¾Ë?ÇšOrØ?‰û#×;Ë?H³@·Ì?Vyk×?Å í/˜h?wŒZ†‘ª?Ñ/î??Æâ6Þã‘?†qãÿ$µ?u/‡+)Î?¡\µÓd? ¿Ž¿n?£Ì'5?W²k^i¢?L5”§?Â@H™•©?d˜³?÷i%G?xü]q=t?ã+_Qv¯?0ÁÚäc®?fïIдÿ?›‹Ò—èJ?ïͰ-Þb?€D3r;¸?T/ XXŽ?Xl¬ßÜ­? 5yÆ8? ³„ã¾(ê?!?hy:Ð?!h2ïh¹?!‘CŒNÔ7?!’Rí«ö?!kÐVV?!'_ÇvnT? Û6]Àh? šŸÕ# ? n  š ? N¬3wî? -Ó 8ì(? T‡KT‚?™(Tt÷r?@Ô"ýy?&˜žkË?oVÃ48Ú? '/þjH? ŸZ~4^?!?XÊŸ’|?!Ï‹²ÓO?"(Þëè q?"4Q?!í Cñb?!eS¯½K÷? ¼UgŽ¡B? iLÙLS?áÚ˜Þ?guˆS@F?-"ýdó˜?]¢90þ?×÷rU¬?ia²sôr?×ßãeÁX?lÏ?'|?°ç±0t?n|=T—&?û¹ð›pÍ?šÉ+Z?‹V5“‚ð?ü¼Býum?ýOÚ’â?uyÛ À?. š Œ?ä\œ3tó?b²ˆ ÃÞ?‘…O¸ûà?x3‰5›È?15–‰Â?ÙŠj¸¼?‡ßôPÂd?J·KÞA?,5mÈ`?3èÃDXÄ?c>PÒ?±§ž¾SQ?Aš&ñú?hl!/èÐ?¼ ñ(r+? ÞM×á?–›lnáH?Jõy~n?+cú¹õ? &ÆáÄ?¨ ŠZ?±~£”ëÙ?ûê´N ?eÔ“ï¨?²!l„éG?Æ!†µ+Ö?*²O]‡ø?¤©=Ñ?…ñÚAyˆ?]fmU†~?rt«GbO?¨löÁ_u?ò“îùÞ??K \ˆqÝ?©’Hl›8?ÿùÐ4…?> ^?Ì?XÞ íD?P„:ß8_?/‰,'Æ?ߛѦ®?á*RT,)?ÇÕÖËÈ?¹¦c©qÝ?¶á®˜Px?Çt—ÆÔp?ü6š'œv?h8¨ü|w?Z>.T?ü[·²ÓÒ?Ô`¦Ý!?pZX?áeêŸÞ?zW0V?ÍdÉ?ö?ì@vOô'?ð³9´”^?êǬRŒZ?ÐÚÁá”Þ?}ù¨(ò ?Äÿ™4?ˆ k•Ò²?×­òÍæ?íe!ñâ?uÙ¨?°Ù^ï§?Õc‘‰4É?‹Yƒ?SY?²Í¥¾$‘?×”¨•I?•Åm¨Þ?úz"¯Ë‚?5ÄmïL?Iûvêö?KÚq_Î?W=KËÆ?æIþå?ÆàF$ñ?É2êwû?_CЧU–?wÖãlÜ?R¾ùWw†?ñ^7}¡?jÍÜ”]…?ç¥9¡çØ?deñx¿?lïÛ1¨‘?{ý r?š1äE?®L ¹ä½?ªÉ¶Æ?‘óTø`?jB™x¾é?6Ǟɩ³?÷é^ÅÞ8?²Žéíc‚?q(ç2ü?=õwÈ?fA&‡ï?è#«ôª?™ÝÉeîQ?òA¿?ÓØùØi?ä(ãÑå0?vÞ¬?‘`?S† Õ7o?vI„ü?ÀÐæµ? Wén?S/4Ì™?Ü5&x?ÔĨ~ÖH?,œàZþ?!Ó!ª]h?ÀTÊï@k?Æ£[p1?†àýQŽ? eã$Ïó?óÞ?ÚmC&iF?cðœè†?ýèAÖ4~?NÀìú/?‹¬1ÚÈ?®û¤ò?µ ¨ ?  ˆ C8?y<0M¹?P•ˆUCô?7F}I¢S?6òféSõ?IÈ+Ça?ZÖ_Ž?PËÆpº?Õy,hª?ÄÖ7"y?bsÌ_ ³?O%7?fÓ^Ö ?6:‚*G?«±4R?Tñqº¿?º)…L€?ìªÍRtè?ºùeÞæØ?~À6Jþ–?/ô¶Ý=?ÃRÊÝ4†?/«{j!?wQÓµ¬Ì?¯¶ãz²?ú.® 2€Rû´”? ³SÔ²?k%•)ð?6— Ld#?È$…S™ ?^¤üúÇ?:èf¢6š?Œ€›}ö?p»©Hß?Ê …&Þ?fAÂ1?s+m ?bçÂîÝô?zEìØ?Tˆ=—ç1Ä?¾×tz?$,±U?l”táÙm?ˆ³ }Ëž?x_T¢¬?JØ{ V?,ÏA¾Þ?öv@€¡º?ñ×B&CŠ? f†Lg/?@ƒÏG:?“ïDmÿ`?˜TÙŽP?Ä( mp?³MéªÄ?ϰ$ÿ–"?ù¡ }®=?}íàßæ?Ê­ Lû˜?0ý¯Š)?9ºx¾Ø´?þ!¬©Ô?¡n^ŽÆÜ?<,Âlæ?˨WùÒu?0'bµè??~qÆ2Ê?á„MpV*?b*ˆ D?Äx"¿±a?JÏ5îå¨?ؾ†bRØ?D™>æÎ1?fèn¡¤?*^x(?¥’I¥Y’?D 6†s?µjC0‚æ?òŒµTV‹? õÜv?"3Rð™?_ ø@—?Ûu­ K„?šaøZÖ?‹QÈ€?”6$šøÌ? ÑgÑa?§O+°Ò*?©Ä@ŸØl?±Á”Éú^?ËóìÔù?«¢¯í"?`8ÚÞ€?âBt^Òë?ƒµšê˜?5£Ï©×n?럃èAÖ?š&¿Œm?;Àª b~?ίÊ=›½?R²z—1¾?ÈJ¦Ü?0mt??ÕŒ³?æc€¦=4?2­‡JüÞ?k!И.?…'Ñ«ì-?{ã)A®?VU0Tó?(DxyÍ¿? @çíb?Õ@'S¬?Ti°s•'?®mJãî?vßgNZ?,bɪŸŠ?$|lA?¯äÿ³„?'4¥½?¡V}•†Õ?IÝðýe€??,µÙFœ?‹WaKî?%/ Dë3?öò ½½ê?è…‹8c…?äû Õ‹?Û>ÂÌ=´?»kLWO?u¤NÄZ?ÿcCÿÖX?[„ØÜî?Ÿ×ÝÙF?ðµciÌ?r&pCs‹? hŸ? ™¥Ñ´Ê?!%`ãîNÔ?!¬$õIÿÍ?"㤮¦?"w_Qñ?"«²ÒË®?"³{ï·ð?"ŒêÌNu?"<ìG§§û?!Ó^¬F?!d[¥Ýï…? þ¸ïy? §oü íÔ? ]XHrD? !zøCy7?ø½<†ïø?ø=˜²0? -¹ßŒµ? ’¬O ?!!‡U2« N|?Owsz»?7{œ¹„?ש٩®N?µ@ÁÐèm?ÂB?ØyË]•?x‘¬?»3EZ?õ}¤9’?'ìŒE*?H5bÈIÛ?¢º~DPü?êÿ Ùù“?îß»¸²Ê? B{“Óžg? M†-Â5? ´«C[Ý?’*Ëoäé?È"-L²e?¸,ü??}£qiÃ?i.¯^-?Vº"F_{?ñ£¨x~°?Hœ”ñóÈ?‘ò¸±È?%Õ˜"?hÍ]Œ?¢ o8ÁÐ?¸õ |2Ç?.¢7Ä@j?Ð!~¼‹Ô?pOì¯5)?ò˜©‰¼¸?Oû8¡Õb?–Ò°ï>?â§nEDB?N¥únø?åéýæ0?šBI3PW?FÈK?¸íNÕý?ÉD¡Á~ ?fˆ¿FÁ?£Ë*?²ØÈúõ?ÙbŠþúP?MebX×? U=ö”u?9àjg¦ø?j GÎÁn?‰œSøz?ˆi‹ˆ? ä&½Ü? Sê׊? ZŸ8…Öº?m9±?a-‘öVX?EŒ‚/]!?eV;¤? sTS5? ŒÃÞ‹æ?«­-q€ž?\n¤Õ5 ?”Œ•7X ?;>"sJ?fÃS=\x?G¾é×ir?Ç;¢&·ˆÎ?ËÖ=t#å?ÀK”)Ê?žöQk *?^Köv@?¸´[Ø%?N4§sï?¬~Æ€^?E:xµ“®?(ˆ ††?XiúÌ;ñ?ÌÿJK¯Ð?wÂj1/?"“‚l ?ŽÅwôÃò?ô?1R³?IÏá—(Z?‹¦\?¶×ó¤Ø?ÌÞ%Ò8?Írˆqˆ?½d,ü-Þ?ª5 8?¨Ô2™Yê?Îá´Ÿ±Š?&üo k?ªºU¾Üˆ?DW×ö?×±&ËÒŽ?MšÃÛC?DQbD?Уǥ…ï?¦œ¼v?IØ ~Ñ?¼ç€Ð6?RíþœŒ0?îwèº-w?iÌÍ»ov?©´±|Îr?¨®XÄü?vòÓ±-?*š¾“T?ÝßÅ*È?›NN(fê?e%¦–ó?,SuuN¶?Ø·P?QLh÷Aw?ìá#Ø?¨ý ˆeØ?¿qv‹)?üµ¸oIr?y˜¥˜?6`‚ŽO˜?èJËT!?(oXÌ?Tâž!?ÉТ¢?‘Èor?J‹ù?´Éþež?J'÷àÃ=?§0µ˜x?-.¹z9?ÔL ’?Œ°8*Œc?Fã°‚Î?õj`·¢?“åƒà˜Ê? æ‘Ù³?‰Æ¾I? "aŽ|?føƒ¶«?ºm"a  ?š爅?EZmm¾È?p?:éÕ¯?{•ÁǾæ?dWhàÖ?6€ã&¶? ¦ÝL>?x…ë'¦?:~èÞö?©"÷<ëH?8L¼=øÔ?ºÎ"¼ôb?®í>ë?îaÕ{€? O€–?ϳëî*g?Ç eëp ? Ö´ý=…? xÉ&)Ý? §äÒ D? ›Õ9aÍ? R¿nk Ÿ?§JkMdˆ?]LÔŸ ?øÀ®ÃþÐ?¶$ÚÍ‘?ÎP$n[A?aɳ·«!?hÕ\ÖNI?´Ö+%ô¢?ž±‘ç?.?¹š­?L± ¦ ?ñòS€%?Ì~h?Èå åÔ?ë°u}Ì?"*†QN?Q¤ûŒ?cç6Ño?K¬H#KŸ?Æïèæ¬?ŽîŽË?ôB[å ?K>‡.W†?´@”Ä¢?U¹ÊÚ;©?K— ZPÃ?™Þs_ Þ?"Ó—uŸŽ?­}BÛ,?øE2ý?×Ð?&¼Ü?J”¡Í?yˆÒ>R?¢´1 ¤u?úBb¤è?“–¯JÙ˜?džÑ¥¾î?TàÊh;?SÕ0ñ?`͸¹?ˆÎÛ¼?A?ÔÖ?9¢?? à[d ?¯ã h›?‹ÁF`W?(|¸à?¿ß:€z?Ê”Þ ®?H™©v?SÁHâ?cÄÃâ‚?¾(Yh?ḃ¥¤?M_Q“Rq?yš¶}?ßÛ¨}Í%?lz¬{L ?ùµ¡?»^? )C¶&š? Ÿ•ä9*¬? Ë¢7¡ïp? ¨FX¦”þ? B“K‘?fû‰9‘v?4·¾ƒòL?zæÓÚµ?Õd,Ÿ?&u¤²?»Ùª§à?Å‚¤@1?LOóQ"?ÕÛNÄŒ? ]_Tåø?à.GŽ?©>=Ì-Â?é7[OðÍ?v@ãàa@?z²Ì|?¾$S6ׂ??Tý@6>?¥íH7Ú«?c³%k?v©=™}=? 6 æ?–*¼-?ƒ³¼Úè¸?&GÔi{µ?{ow…½ ?`ÀˆV¢ä?ÐáÛÜÝè?ë_ˆ#«´?ïäÓoö4?(F7¤8}?É0K?Ùw}TÆî?0r¾4‚F?²¯–?¼-×l?ªNÉï ‡?j˜jpÐÌ?=P;@o?Ø·eÖ€4?ŸµU=?g  ?!s}™,¡?ÆLÁ~ß¾?M½5Þ¾"?­Uº¼Ê€?Û‡¶‘-ô?Û”›ÑYá?ÇÕh=^?Ð9 Ç/?'t­±„-?ÑÈ~}4¸?ž gb?IU´{)?vþaÉO ?m†0É]„?9!E×Â?ã‡å?Ú€7˜ð4?ܲ(ì…?²&›`X?ó5¡×æ? |Ïho¦4? “éêðÜ,? ÈÜÝ)ò?³¢|?ö&uÅ:??‘öÛÜ¢? æJ9ØH? ïpÊ? ÜŸæÓø?>-¬ ½d?Ôêkt?!þ’»q?«Sýhi? ´¦Ã¡mÎ?Ð  ?Àþ¼?Ìß27?R€ÎKI“?ã|H?ÓÞ]é?düàK"ó?ÙeÀÒŽ¡?Zö!ï©l?ð¥ã`Ü?‡:÷”? S Vþ?n¥ÊÉ"?ƶl ,Y?-'ê"W?¸š¯C?ì?lÂo>n?;*úψ? lÛpß?¦píf,:?4–EËÚ?lOˆ} z? Ø6ÐpÆ? y8‡1-¶? o›ï«? ÏIÄNìT?š #ó?¿¼~ðð?®6ç~??k %?ÞȲ2•Ú?ZbH\¡i?«òUò f?Öhq°ŒÇ?àdlv?ÏA¦\„L?¦I‰f{Â?l|&—>?0Âú}? bwh2?ûåeI?[v­£¤à?Ýsï8Y?…ŠDˆMÔ?7'í#?Øêë"£?_’éê¿?ÑS±;qœ?AF ¨]Ü?Âøù,òB?[ò┄›?û€XÖ?€-.7?ȧ‡˜?ÅòÓ,s?€P`Á—'?w! 0‡?¥e8䯠?Hf³ý? nÉÓ=?á=ŠÚõ?¼ÚÜUÏ?zàýÅ×Ì?™-‘´l?K+±xϪ?gäý™Ì÷?€é]¼>Û?¿Ã?øÅÞ?|ç?= õ²ó?™#‰"Ò©?/hmÜ ?ÞûYÝ«?w +ÜPh?ǯràR?±Ìl0Ü?1þíÝgY?b‘çHÎ?t«'Œ?£cB@?"N»(ú?‚ä¬8.?‚û‚ܧª?_¥PVW?Œ_UZs€?â%¡—j ?8g@Pú?k˜jC3?cd§®€?¿Ú©{?œo±Û½ ? }±aˆ˜? FW¬\ÕÒ?  ±¡åLH?!rÖ¤ }?!§L7æ?ù?"6“"£æô?"²(õ&r?# «*·?#?~é±ñ?#MW·ƒ Ú?#6É:¤>?"ü 3LÒ"?" ;)Ù€œ?",OÊýi!?!®M6[ú?!4$æC? ÇãŽ{8? pHôÃ4,? 4Ý;E~"? "âüÜ? <±Å`» ? Žx„»¾–?! æê(‘?!¢+A—8D?"/9f×Èþ?"“/úË•?"³@OÉ?"È*G¤Z?"ú*YJ?!HÕ.þYP? ví›iÉ_?dP™«…x?7¦$p?‘ 40,?´KðR?ò¹#» ?Ä{¬?ÂÎ4I<Ì? \Ø(šð? ½Ó*¿? ó(œÏ’? ñãE§>›? µzè5G? @f]ojà?<ùVÜ?ÌFI ?lo@šL•?\-/ŸY?Ã|¶éâÐ?¡˜ÁÃò¸?Ìd(D¢œ?T3Òe?#ìõhë?¯»[µ?ú…³ç?î¯ð(? °žk?I^æÀwQ?Ÿwƒ !?À¸ºÐ³R?Ây¶$?‰BX;¡?÷îlÁ?fz8Tx‘?‹­ 46?™˜·´?È{ñ³î¼?j€´e? _†¡‡Ü? ÄÁi±ƒ? Ò’äñ¡ö? †#{Ví?᫆0KÔ?f*—‘9?âÚ$hò?‹UXË?q Ám¶?}âËâ?ˆ§oŒä?sÖ$˜‡?BÈáO\Ð?ÑÌþ`M?9 jf6&?Ã¥©FN?ɸAߌò?5-0}R?ÙÍûÈçª?ˆ¾ú7?!£T,ºB?œ¯ãÖžŒ?k‘jÛÍ?u~«âPà?üßu?¡Qyé­O?Uiüat£?û†Eô«'?lø‹ˆà£?…´rZdj&?"×þ?G•¹nB«?,éMN'z?¿ÖO$?!*À^Ÿ¤?Ó€èRÁ8?Ý | YÖ?ïÐÃ¥~?¡ßîwªw? ½Y„ ±î? ioëÀ? —;¬C!? D.ƒ ðc?ÃVÓ Bä?!n–&:? ð^ í8ì? VÛî>T†? ’çÝ`x¶? @uW}?´”x?nc@Š]¾? Wa7Äf‚? á­U¶aì?L\x)‰?ÍN‡´"?ïÙJfn?MHiH­?Àݼ|?i¯ß9É?š"IŠ’?¦õjuŽO?Ê6`7GÝ?]v§#ë?zŽZL°?ã ÎI{Î?B¢ë ÑN?Ÿ‡»G…? ÁGùT?“ÓGnH'?:ù:`?êïI‡Î°?h9«Ë¹à?Û°j¶Y?E·‹V:£? ¸ 0KëŠ? Níd# ¬? +PÏ3«? mUñæÓz?,)û n0?kz?Š-@pßÑ?z„Õ©á ?fU®o ?.Ù—ž’J?À'îVº$?¾¶L“™?6ÿ` “”?.#QÅÊ?n?Ð8¸?³à'iü ?L—ÿì?ÞX†?†|…´Ã?d”èqþ?ùtW¨?Tèxb?»2›?²°n¸?bºÖ?Wq#üPæ?E:®¾8?n†Â_ž?¯úþ‹É?.KÁ Þ?.LµØ ?Qa§µ‡?˜C-I÷A?JØ/T€?̆óz¾?Ÿ8zÊýW?yð‡1 (?R ¢Ôý?)ò·zú¤? åá¨ð?ý±ÚÉÀ? ‰o\l?2T´»-»?~=8Bª?ì¶|4?xäAŸä?¹Ë?ºÒ“­»?[‰I®¢å?õ–09î?‡AoWlR? Yy›]ƒ?‚;%†»ï?àÙ^ˆT?&ºµ•Å”?V–ûwüR?rsûÓû?z¼%UC¬ËD®?âà\¨?éÃòY#m?;l3Ã1?ñäzE?VxIÅ+1?/RÉUðê?o‘SŠl?è\ÿ§}ë?eƒ…È?·@14Ä"?Ã@-åß?…§¨Å‡? zÕÇAI? Kÿ?]¥+? œqéüÕ?! *Þa !?!–&CØ û?"2 I·'Õ?"Å8 tž?#6‰žBª@?#wŸ¬Ý2?#‡t:RS?#n¿" !?#8 ½d?"êt/ƒéÎ?"ŠD?ë ?"b3µ?!¨h¡ink?!78+ÍÚO? Ñ:´6F? }wë? E€s\b? 3Ãê²¥Ñ? QÄZ+Žð? ¡KS€ƒ•?!SûÍq*?!œjžMã?"+qà /?"U(ôá?"UùeS?" ÀÉ)eý?!„°â? Ô/ÿÐ? ©‘g±?lnñè?0p¤e©˜?ß{DÂi?æGHÙ‰?§UT>C?„Á,®4…? ?Q:q™k? ·8khÄp?!än«6X?!U:ç^ÁZ?!_<žóAP?!-—•¦(? ½Ak3ú? Áãé¥?¥2¸gG?«¥ì?æ:äs?( [¿ìŠ?ëS£=?T,ª?=el’ ?aŠûagÆ?g˜€¢ç?b«U„}`?r>ÂÍ?¢šÊ2Õ{?胜R?$"Œ Bp?7¶ž?øF?_Ç.X?©EbN?O®=q?*,¨LÊ? ¦{5uf?úà1Š.?Ø”ƒeó?ãßwàõŒ?D«;±±?£Ú•ÿƒ?;C iy]?¢s¶}¤?œª\á¯?e: ÿ_‰?…åôÑÑ?}¼âØÃÛ?cÐ1Ò?JÇ»?:'bÅÂ?-ýš‚å6?#¥ÇÄ? Oá^î@?œR×n­?ÇŒ®Þ?kpšV˜£?ëõØ(Ë&?†¿ÙUÝù?Û36ÿ?c‚Áö*?d€oÿûr?rÄuÿk?ªÎÂDm?C?1ñC?Cüšà?:Ô§oW?È Ç@?¹À0Ö›á?7KEø? ÷ñ~[?2ž¸`‹?À¯:3á…?ú9_»…? Q¥¼ ? JG>Hµ?ɉº?e¥Ú'%?±tcû};?þ´ £V5?¦ÈgŒ(?vX+å¯-?¤¤ƒEpù?ëœ3s0?%z¸¶_z?LHëiŒá?ZˆÞ¸?ð/ TÅž?Çy¬é>? |Óâ??©Måûñ&?k<%ˇ?$¥¥¾›`?»¦î€?0þ®…gÆ?™OW"A? »ÆŒßw?•]Æ©£%?+Ïöà‰M?¹\o4ùÔ? #’Ö»K?C/‹W¨?poG&â?~wro,?§7»Œ›Ú?ºŽ©š?ü£Çè{?¯L9{³4?lCç(o?±92`TY?Èb‘óÕ2?òø™U{?V!oHÄ?ôSaä´?¸üé{?‚b¦_ƒ?4_Ye?²ûFß`‚?ï,2®†?ìy šŒ?É3%µXd?º‘/4¿?òž%ß ?Iò„Åû(?d4ÈŽ·&?Õfî\_´? lZ§~D?à"»–[s??[—p ?˜xRÁXV?LG¨kï•?s„í§Ÿ?ΩæážÂ?õwlè^D?¢ al~? ߤY¤P‰? ó¾^Ê? nˆõò?KlçÏŸp? à³Ö¢¿? œÞ¨»? ¬ãÕ7P? ÓIÁÑ?1? É_ñ s†? UÉãmÙJ? uD´ö†? A%)¬Ù¹?‚ ‘#'?±;ÀÁ¯Ž?q›oé¥é?Ä›.jÜ*?1NúÍCž?ˆWFè?í(qÚ×@?¾lž];?d—‹+_†?+B'„@}?0WdÀ7†?kܯPý?Æ\$«”?-,sÜ.?œ(JD¶:?¨í¼]9?¬FÙ¸§F?R—hÜ‚?S€Öa!?p,¸Çê?Õ6"fQF??,ãŒ|? ÁZ“€B«? v€A"\? {ºQ6’¼? òM:0?ñ3ÿé9?>ðà}m?=ÀæÎ?YW쑲¼?knz¼¯?PÃݨ>s?ô±uN?R$pQ!?t×dï%ü?fʾöä?,3!gŒ?ÄêËfs ?7¤&\?—Ÿ}'[‹? 4д?¹–[s?À¿ÉR^™?(/Uþ²?àÓ YH?Íz.ô?ÏׯH©h?ÓÄÓœ?ÓG¢ä ?Ï“2½ ?ÃÃ#|?žœºÄeÚ?>M«èl?€q×vBè?T( EÕx?ÅÞ·ÝD¬?ü}.ue?)ÿ¿/m’?yA&~'£?ƒ= ?ÈÃÕ†Ê?ºÑ•“¿³?¸fXõ™?™HâØ ä?@0p'E?¥Â…“A9?ßî®-$?/‡óÂ?pºdé â?üYæëš?°yÏÒ>“?v|Ù‡—?;ÌiOšè?üŠ2¬û?Á53±†¡?•}"ñÖ?€h]²æÙ?„z'cœ’?£1q?®ò?ßuÙ˜$¤?:°ý#]Î?±ðÏ\e4?<í»ÃWÂ?Ñý¦¿p„?j‚ý•?œzX_ë?•6XÍ@?åÄ?•tU¤Éd?ð®/í?*ú¿H¹?Hű…?P-ýTË ?I*¨ªÙ?<¡óMah?7Éß^Œ?JtÒT‹w?ŠÐ¼†?¶Ý³¹å?©#Gä]p?kµá:¬?%PN¼ŸL?°Ôòìä?ïÓ†åQ ?Ïl§×f?L2’ÍÀ?u2ÕÚ,?mUâ«÷?gí•P¢-?Ÿ|gì?HSmFo?ƒ*©[l?S~ æv—?þm Àê?.@ï* ?ÅAŒ >½?+uŽ)r?A[⎑w? ʘgW3? MÛ5PÑ¡? –p[eç? ó#WÓÊÈ?!r&]T?"ZØþZ?"º"ͬâg@…?R¬®fL8?Ù•AŒ~ð?°šA|Wq?FýV\´? rëˆüG?Êås c?Ê ±©È{?¥EùP~ ?g ^Sû?)‡ðžá?¦dhçn?RdÛÑ/?üôwÛX?ã9–¸?xOò¯Â?Ð{B?‹Qг\?÷`ÿý¥¤?>‹¯ 9?cè.ëà?o»¼ÏÇ?eÞŽÆØ?LªŒÛü?(ô» |?ŠÅº»>?ù™W¯N?ÂËüý?}a×’” ?šÇ „?æÉ&Ôw?¢ÚQ÷Õí? Gx+žË?<Î=ïvÿ?öAhüBm?kv#»rn?Ï…„§ü–?X>Y4?/ á h*?j}(’~œ?B±Eð?ô“Û”F?T©ùk?»†O.O?¥„škÔ?$+yÍ?³{gñ ?–ÑLæy’?žñ_i?UÉ¥·˜µ?–…§Õ’Ú?Ý@¢&ÜÊ?ti É0$?|Õ?åȇ˜%?{u¾tvq?W%†Ï? ŒÉ ¬Œ?溊ÂÉV?Õ¿Vy'Ï?|ð˜?Ÿè3ÅFÆ?rñÕY?_6ÓÞA?<{ù&;Å?ã½=-Áü?<+䄵¸?DXÚÌ?[¼"©?ïP^Kú?çI—%?Šd´‹_?äâB÷6_?-_dÙ”?m]¤è?On‚S|?Ù¤_Bãå?`NC¹rA?Cà5êD?¨ÜãÅ8j?^Þ>f&Ð?}6 ?!žQÝõc?¿/Ì0l?¤ŽÑôho?P)MvÞû? Ü ·"kˆ? Çðl¯…o? œL…4ô? U4Á{g? öz)$ïœ? £×hÝ^¯? ´½™‡_c? °+-?äÒ‡¸?¹©¤o?Ì—wAP?­³\ï$?mb%v?“ô©YÇE?ÖÖ{¿O? žƒü—?“½K^Ú?êíjÞAŠ?kò±ä @??f„W?bè4?)²?¾K’yˆs?8²—¾â?Ä6®çéì?\ô[m:š?ï¶ÿ'Í?®é*OÃs?]:…÷é4?Öï$h.?`•(n ?»õèd„ÿ?9A!\Ùà? ô ß ÅF? n¨†Sp?šw«žõŠ?º”p?¶d)øy?Ê]=›¼?ú¨­uÜ™?¦ -­,?°lS`ý?ÄO*G/?,y9¹?W— éZg5?‰E’Tž?üé\EÐ?ö¢Ë^'?JM ,:?õ¦Ívþ{?¤q4w*H?˜§ÞPa?h „cª ?¼¶GÖ!ñ?3öÉÇé?ÔúsÄž?¦« Ûî?L7¤¯&?ü°ØbBœ?¤ßB™Ü]?SÇò7Št?±Fâ—0?ö㤠?íðÏ3?ýû¾ÙäW?(¢«ÍåÎ?pøTƒ-?֥ͬÀ?S«ã…cº?ßBÑ"–z?q˜|öÐE?û‘dõ®?“¿ ‚­Â?õ"ëƒz?sÑr?ËÓ.à]K?òƒ¿úE?ù—¾ÙÍt?ì)Ú˜Î?Ù¹0?ÐÝŽ|6f?äÑÁT)ˆ?%„YÔï?_™áÂ?HA¤p?q³=´?ßÉZc è?qÑñ”?Ñtd?4GÁ̰Y?›s '&?¬ Nù9?ú¦¨:cÍ?'jz1?)8 ݺ?fSŽÕqÊ?à+Ah?5©í$½?¸{@0?OBHd¢Ì?ëáæðr?ò[–Ùø?ý_Ù1@? 6”á“? iJç÷ÇT? °®Rëê? ùy’J?![ Ív€?!ãçĶ¿?"ŒgýÐNº?#=sãk*?#Ó£•Òˆ?$-b{Ê9?$9*Öë¢? ùtÆËôÒ? „tOJÄ?l„+¡Ât?TLÏ¥?:äX*¥ž? —ön$•?JX_ƒ”?³ccÚ¼?¥Œ6»r?Pµ +?~–àëh?©"å…c–?ÍQtæ?Ò¸œ8u,?+˜¬—ž?›vYÐÆ?[Mˆ´?j@CÉÈ ?_h“?B².€É ?Û<90?ؘðd[?ŸH“+«ê?‹ª¡sø?ÆVJÅì¡?kéÔ˜®ï?€Ž}Ô«¼?ï÷ùþs?—Åuˆ"?Oæú T?ú£Þäùç?Ñýœ?щ$]‡?ìmH¶LÔ?Öð‘{Yì? 8gß`Ê?\ãPSû»?%Oƒào?9ÏA¶?CÍBJÍÈ?Ä®œûN?“ŽqB?hýÈ?Ôæù—´?†4¢ ­x?t0ͳëí?dU‰c À?<+Útõ? ÚÑZZ¨?G/£ ?W@h:?›þn<_?ù4A§ƒ?ùFÌ/Á?ÕͲ̈?zP³’0O?òCTà ?X§Å\jT?¿{òL³z?"ÙÔ=X?hÀÊou?wÕ ¬«%?>ÀŦ_?¹¶dl¬s?öì Ÿ¹l? H>ׇ?/‡Ôõ?\(¶æ"?ú§Ÿj†L?%qRw?æÍý\?¯åë8÷?d€€ð‹(?`å°!q?º³oàÊï?Weõ"8ù?]Í‘ð#¦? €u¢?÷çé?!àíÖæ?²”v8Â?–Î7&a?¦#}öÏl?­t3qR>?|uˆÅÿ ?ðŸX}Ý?uCï3Ò?ÃÈV‹?qûxà ?KbY^?=üþH ?cºKà(u?\;•aý\?Œ»<#,=?ž">°—ý?€!ëÛù?kè5î‹?±"¾w0D?uÒ£¾_¶?K™¯Æ?ÛÔZ­²›?A>¡¤’>?jKuŒxô?fÎÀñVœ?vmòX,?9»_çà?]½0_F?Ê nJ?añ" ?ØÔ ü?ƹ^Ÿ?€æûóDp?6jþ³?áLÀ8æ?Óí¶?ÛÆ<àì?i®ón?ËA6 ˆâ?s­«%?±X`b~?ÑC¾q9?‹R÷e(?óY@F(¶?òò[«?6‡~·æ?[ëâ•{?SÉ})l? u›Cr?{-›Éz?²Ý—¾k¯?¸­A?Ø ?Š´?†Z?!;5yZ•?|ös¦Î*?³ù`#?î!«ÑB?` ©È´Þ?3;  p?v ‘U,?!Ju†Áò?Gãñ>?<_¦È_ª?wIã3y~?¼†`#¶8?°_ox?24½Áü?)f6î9!?º¢/3ŒÅ?Ää‚©NZ?FpDÄ?a^ˆ7¿?SBˆYrU?[fž1?¥Ï1ŠrH?CÀbdp„?)‰·¦ž?7} 'Ëd?D«&¤6¨?,3.ýÀ;?Úù„<Æ?W¤8óß!?¿‡¨È„?6 Gέô?Òý–$oÅ?‘6yÔî?Y¹8$›œ?H’Ã?´1íBº¢?G.öÄ3X?à÷ˆj?’g]?_(c5é?E0¾?BÇb?Y¿uŒB?‘A Æ~?ëLÐ2Œj?bzásšî?ì1ޏ¦?|œFº7X? y ƿ?Šý?õý;À­0?DüÐ>M?pü" Dq?yœ–É]?f"¤æû¿?EhïÌ?*2kyÎ?+Ll'‚µ?] mXYˆ?ÍÅ®_Lã?~L' {Ò?]©žø?I­BLÂ?f’•¬®?»A‡Sv¾?\ÚÇk?<³Úé2?)‚½¬zÒ?äÙÆvÂ?oõÉÕyL?ÑôMlÝ?")ŽO!?‹±(AOé?Eän)º?yÌ£Î?SÀ;«S&?ªb7Þ?N¶ÔÏzÈ?÷/Bâl? 1pF.¹? ·Žö¿6.?!yq½ìé?!OtLþ`K?!$ÅE¢?!ëŽtQp?"n²2l?#~;Ç?#ºïkžò?$EjAœn?$ŒŒôøÍî?$~3cs?$#GK‰™¦?#œ2Ç™Ý?#£u?"Ÿ3¿î)û?"Q¹âþ ô?"­ÐE?!ør'“Ɖ?!Í¿8Á$ ?!™|©íÃ7?!]{k â?! ÕÒ11¯? ì°Å´[À? Éòºœä? ¹o.kKü? ¹§¡ œ? ½t€G°? ³Ó娗¸? Ž-á¿~? G|ƒP?Ðnü‹á*?ˆ_»µÃ?d ,ýi'?Í&Áú?§€YH?„Ãk1?.®WÛÃ?ö"ÜÞu!? _Ýßh–s? ÁTMÊ ×?!"à˜xOr?!ˆÍ­D’?!ï«™6 s?"G¾‚ìõF?"vÙ`–bZ?"aÑÇ»u¢?!ø‰ÿ‚?!Ao¼Èz? \~öÑW?ö–}=$?žæœE?î2mJÜp?ä¿8€?Jh7º|?×¼°ñê?Tg?¨?«³j‰*\?åÌXq? ð]Ä? …‚øA?Ö§ê#ðp?K.Ú ¼?h®“æD ?FBÛYq?0N®;¡?ÌZBYË ?ž'Aä‹´?xk'ž˜Ü?Tlr™†I?9„C+uµ?B,ò‹?“ c€«ˆ?HžŽ<¢?jyߦZ?ê9º±p.?ªûå?Š<|T?ckv‰÷ó?ó:™ý?ƒJ÷øH?¢ìT“¥?xMVGèÈ?ð×óð?¸Ì÷âÔ?j©ùHÐŽ?Uø9ª?•‹^úÞ?6Å»3§?0×9 ž?]ÏÉ'Ï,?~}YÂÀF?KÒš=Sb?IÕ [?7!BÙY?\Î_šù?5Ý«"Ô?ŒÀ±?8½•¾H?] ®Ï·,?.ë@šü?2¢Ũ†?¡°ÙÍ?L0!aé?-й€6?Ö9†Ñ›?Z7Q.;4?mLµK!n?î N·Ñ ?âŶ;q?‚˜=„tØ?&’Ý›w|?%E œqî?¬g˜‘?®òا¢ƒ?ñc<õ4Í?1Ŷ Ñ??M}Ñ›÷Ø?R ¨ö*?qñZHP²?ܵ Y0h?£ÛÛ–?¬ 2-´?¾©}CÔÖ?¨Ã&Zº?UÒ»lNÚ?Ñí”S¨¶?7o³º!?•-®sZƒ?âTh>J?í•¡ú¶?ãr´º ?rÿi8x€?º¹xqX?Ï¡@×"u?ÏC™+-F?Þ‡];&²?(éíªx?܃VÖð?Ba!`?è)™pÇë?ÞjbÇ?j"½@a°?k8€9cD?ÓšFM?2?‰bq%é\?®™²ÍÙ™?ŽøMbg ?~"1> c?¹ÒàŽ°k?YŽ#KV?P@ÑjÑÚ?vS43?—¨óß¿„?+fž ¾?™|õj?Óú£}Ú?À£ðÔ®˜?DÚ?Ú"oT?WQu ­&?á˜qÝd?š6‘4c?hŒ3T?;ˆvNü­?çþ"?Á„©*t?eIšV®?óŸyjRâ?vaœ0,T?ùÌÐØÊ?2 K‚Mæ?¸{Ã;<,?«ËPu‰”?#õ*²Th?G1 ?àaÇÅ[z?àƒ õ™t?ûÛJšû#?€Æá«u?þÙ¿Þ)‘?³û¹ËH?-Ímÿcj?t5#’$?Ž©Åb_?x >$Ó?&À¯ë@h?˜É¯Ì×?àµxä¬?'>eß„a?žŒ™jI6?¡¿šÍ/ç?p€¼¢Â?SPÖ%S?aʶsü0?²+‡´ ?PGÊüc–?5äÎÒ2?C4«JÚ?MùÈÔE?)gk­õÌ?»Øh¼£?F^€ÒF?Gë‰#Î?"á\?óíÌÏOR?Ç>‚‘¢[?„qj¶õó?2o•Õ:ø?î‰ú‘Z?èïÕÕ~?RŽ‘7Õ?D»üÊ÷?±òÓôl?d<éíÚ¶? ŠfWÔ<÷?!@ôb!…è?!Ãâ~!ÿ?"â4ÕvÁ?"FzØÏ´°?"t3uy’´?"·ÍñÄë?#'-!Ï©?#¥im£;Ä?$2AÔ?$ŸÒdßï½?$ʪ2@ìR?$¡7ƒâÓ·?$.²Jëy>?#—f°µŸ>?#á?¢‡?" t¥9 ?"ipfÖ^¦?"TêÜkcå?"K^ß/?"8Âåj0œ?"­éàb?!Ü€ˆhw?!™gÉê¯ý?!RhV F?!Ù'­ Ï? ÓD¢%? Ÿˆœ3? kÃÉ¿lX? .ÿ$¶“?Á~8È?|´Ý”a?3‚wô°?€x7pÝæ?A¹? ñð€"?q>”Á?,ÖªC6?9›g¶“³?"vIú³óÞ?"l*j0‚?" ؾ=?!adV? ˆéz'÷þ?o:‘ÜÇn??Ê…ëJ?¼Þâù?ÜïƒWv?fm.åÜ®? ²–¬aF?˜¾ßqó?÷×w[8Š? 8ö'tŒ? /ø•k? …‚'Ü5?›»Rçy?¹È{¯³?wß‹Êà÷?þ‘¸n?#]\„b? •Kz¬í?ð *TB?ã!hŽ?é4²»°?þq{Ýž?4ý‹6?©¿KZ:?xÀ÷W7@?¬©;¤{Î?;æßøÀ? [•=@?‡š2‘?õ¹Àfòª?ÀÈoø8¬?>÷õ4ôô?]šï¯=«?#nhS\?¯É*4çê?/òæâs?г$Zd?º ¥²óù?førõL?¿yiAå—?×çñÞ+?!“ñ‰?Zià?3cð»”ò?qB°_a?ýµY+j?ðq ½Ê?ƒËsVf?ýð¡³ö?žmÜðƼ?/cÙȸ?ã!î-×?›¬?ÿÕ÷Äï?ñ^Ï\ía?ç6ÓuÛ?6úK?u? “Ã0Öb†ƒ?;‰2ƒŠ?Ñà’³¨7?!—”R¶k?lÓóIZ?ñã}z? ïËN‘? ðÈUK–c? ÕT_üòÝ? YöÞ ?Bl|² c?qúñ¸c€?r‹‰ç­;?KDèÏJ?1û~©*?¥ôF„d?£'iˆr?ú*yÛjž?ð@>K‘?n+Áš?])¯¥Â?rÎÚWD°?Vi²´_? Œ³M[p? ŽS/ÿV?z¬òÉb?òGÌ(ôB?ÕX@P&?¯Öý¼ž?Ë£'ª.? q”‡ÖÞ?L§H —ê?N5¥Úwß?ŠMü!™?¾ug¹Í?ÿ ´vBÒ?§™¦MGP?'ª¬¥U÷?×ìñË?ãÈêë?Li.Óê?ú¾s°¼>?ÑÄ"2?¸û-Ì,!?É ÔêT?q…y‹f?)[3òí ?ÀÁs¯<Ï?<¾œ]¼?¨ô<§`??[W?Ch5Bžò?¦"ÎÕ?xºÚ«Â?ΊOV‘©?­a±ÄË?…–ß[þ?c¿ÕøÊ?"úËöm?"§¡Èf°?"Š1>—ìP?"‘ ÓàŒ?"Ÿ8 Dë„?"ÉÁ¤8û?"‚ˆÐßNh?"NYB›È?"¥æl½?!±†ÿU0ü?!VGÇ Õ? øš±~>°? ™»îÙHý? 7 Âí'…?–ó&ƒk?¨×' çF?­~ËR$x?Â$ƒÚjô?†+Ô'?Á: ݶ­?ì6ÌWH?îd\U?†4sP‹?¢M%Teg?° í¾ñØ? H§gBÛÄ? £8égª? óÔ„yšF?!Hb8cûÔ?!¥){_¥¬?!þ˜íÌ?":ì{ücº?"<ʂɎ?!ñ‡»¸›E?!^\ÓÊÊ`? £œ‚Y_®?åÞ9åã ?ö‰ó‚L?©HC•ì?ï¾ºË ?Ї`àJ? ¿×zâr? Y¹±v±? €ñÌÒ«æ? VöW g? †ˆóËY0? Y4œ®?ó^f/Þ.?Ã@֯ؤ?5ƒ¯™Z$?|z¦z?Ô”‹û?©?joƒ³¢)?KW®ûX?ggÇ.?¤S®YXÐ?óZšÁ=¸?\Z%¶j*?øÏ¦??â>]ö¸?$–WZJ?¸ ¦*‰?‹0£‰ìß?å2›*š?yDòF††?H£;yì¦?ʰ^°º?è9:ÛDè?©;Ôôý¼?-î„Ú´ã?¦p—`D>?D8bM?/}»‘`?ñ©è¤?BçšÇp?^MóIÔ?¨KoÙwS?ÙáB¿}?¤Ú¡Mè?Ë|•¤h9?6,*¶ æ?ûì@{ŒL?Wå¸×l6?“áY·âQ?ñó™t–¶?Ÿ51 T?°—°ž¬ù?(“³Mùœ?ÿ- àU×?'›½RGö?9f¹ã?|€ò¦F?¥ô[Þh³?÷㦠Â?ê[ªçñ?uGÀrÈ?¾-ªÏÚ$?•tUF?²?ƒj,z?Ñ B˜?YùdÁª?/rùR?¬~Àæ¸Ù? Ýâ Ë?<N[˜Ì?rð£¶?éº@Ô‡?¹1VèJ?Ê-’¤?å ;‚?Òˆñ/¸¼?x¤°e¶?ßÄÙÕI?"fé?To)HT?uæáÿL‰?v)ÜÿÅ?@¨WQ$?ÉA[R?„–#Ÿ?%QøY{?!87‘.?&þæ¯è‡?_Ôxf?ó¤¦Tr|?þŽBWL¥?„z†¤‹Z?i¹g´ý_?vÊÓ¸Ë?iZ`4Õâ? Ù{ è?CœG¡ƒà? ücÞ"?ÂHeŽb?Yël¬•? ¬0†J?%™Ûàœl?%v²lRò?%‹( a%3?%nìxÓð?%@­Ø!?%=¥f‚›?%ù-¹J?% yýÕ¦?% „á¹é?$ßßy0§q?$‡A’«?#ô­vå…8?#`™ÚAâ?"êêcÿe?"¬Ñ÷)±ž?"¥{+MÙ?"½Ú,`Î&?"×ĺ«™??"ÜìˆUŸÓ?"ÅÊDëY?"’CÀy“?"J®F7—°?!ó`„ÊH8?!½“‚)?!!ÌÁÆj ? ª ß4Ïh? 'HRÙ´?-þ{îëW?÷SÎ0VÊ?½©OO¶á?¦0¾ þÊ?ß§é©&?ÅEo‘Þ?ϼ!s¸?’Rö:€:?±`#ÄÙ2?ó+úÍs?&3=á? Åü? d£I»cf? ®½›O|¢? ÷v76I?!G8¹ôŠâ?!—´*G§Â?!Ô;5ÌZ?!âÝc^æÅ?!±åÐR ?!D¹‚ÛÎ? ·b®›? 5jA°ð ?Í[9e¢?¹Œ2åµ8? °ZS{ƒþÓH9?s玧8?³Ù•« ?6;¯ÙÓ€?”îk?,JÕT!?Kzó³`J?3oNêâ¨?Å\Çu?ļG¤ú?r©gäœ?ÕÐ'N¨??i5Ì?":ŽÂâ?ìÍé~ìj?œô ßì?J9?EJ­qfù?O½”>Û7?OåD!G?qhK›Î?ßÉàÜU?¹ØÓHQ?zÁ»?´7r ­?—õ¥tš*?€ýef‡?E<²ú?Íÿ-Óú?>m9s4?4_¤@ù§?2JÖÐøV?#¸ ¶AP?íiÂi?üö–ZkÞ?Úî"¼©¾?šoR=˜?#4™zð?_h„Øõ’?=ÚóVö@?½*ûRç?ò5hÛ2í? @Wê=—?Cï\Wb:? ÂY„E? +º{З~? ô`ò¤? ² Ùåf?ná«UR?ÑóÕ$kœ?!xZ­ç?Hœ#çÔQ?%æË1“?¥¶ Û’B?Ä¥ß5?”k.ÃÃî?Bö$N²³?½ÕY?ÍÇŸ©Ì?è ìvú? `¯5‡Ô¨? ëÔ§‚ž6?ÚnÄA?{‡)¡l´?Ç–sÑb?:˜3+ÙP?˜ žr?jYD7hˆ?¹e¸|“?GðÞžì‚?¯9N?hÍMb?»r2Ù?FÓoy\?sOYk'Î?Ž³æ Æ ?Ò‡¼~?Vª„˜ ¦?ùÝœÔ?ý5A…F`?ö›¡?}?ïÉ uVz?ØN2v¡ ?¡T}ð¢?@Öç{cP?· C8u?{›ôuÆ?^ Ñêõ?o×/¤?_ ²Ó? ¨É -÷å? `ÙÖ"`? £‚†?)­*ï‘?³ÛÍ?%¯?xC¾?Éõ ‹?nÖÃû³? Y•u§T?›T"Ó†?6½¯!?•Š2û.?ý–Õ¶8?K™•Ú?qdxÆ?g O "?7âðÄã?ÿOjÿÅ?å'ô¡‹? =œ/“ÿ?µö:Ï?8®±Ó4’?å]•Î5?Œ”È?èx“üÖ`?³(“…&‘?b:d,3 ?ëV€’F(?:=X´i?7Ða ¤2?Ù,WÚr?,Å+{ã?\KLFí|?žg]ôË? À…èá*?õµ¹™#?…bº?Iˆ;­b?z+(¼b?„ Q‹’?_ãÁZÉ‚?)»¶Ip?Ôn‰3:z?¤à¶©?TÃÞH‚?ºz2ϘÖ?挬bÚ¼?©Íôqô?ù*(l·o?½Á-†?Xî Ö=w?Û稅Û?XÊ>ƳB?Ý4 'ý;?sž“žõ ?'x"Ézk?.GîL@? Eæcï­?wºbÃÖ_?“*¼³4?¤dÕd?5ûM³?’ÿî뻣?§kÒíÙ?t厱Ä?™‹Y¿?›]ˆÅX?-x ¦V?Û›ìn‚½?µMi91?ÆšŠÊV?#]Ëz¡?İE8P ?¿½H=|?þoÈý?YLŽðCR?šÇŽ+ê‡?Œý‡þ à?²òâÊ8?*þhÆN?Ëï?Ú •þÚ?Ý´ÂJED?)<ù3@?¹ŠÙZPk?~êÚ1Ž?rX+¥ä?ŸÐY¿8,? (,iC?!ƒËûrk|?"©Î2ÏG^?#òÐÊ?%>Õ–­7;?&iÇãí?'Ká9íÂ?'È'êb'X?'ÕäZòät?'…ÕâàT\?&ý"ÇŽ?&gS‘üý ?%å Oš?%€-lcK©?%+kú‹?$Îuù›Ãæ?$Xh¥Ù½Æ?#Í<—¨èï?#E¸×XѦ?"àÚÍvi?"°ï†º??"±\Ó¤?"ɨN£t?"Þ¿Bl¼ù?"Þ%JcG?"Õ(‚RP?"“¶ÌõñC?"TOš5¦ö?"ánðø?!­ÌW^=ë?!CéG î$? Ç£«ˆ53? 6rg\1?H‘4¡?°÷Ëw”DB?õþ—…"Q? LõØ™?©i¦}d?ãÝÜ“Õ?®ƒ´ î?ÞÝU§‚¥?7 Ï}»§?y„”nþ?|f6X-˜? ‘0¦n? _xT/ìŒ? šü._B•? Ú‘\7…þ?!F»„GY?!XhDÎ+Ù?!tG»’|?!b5ݼ?!"Ïøq‡? Ì=Î¥ ? €þ3†NL? _XµU¥¶? q#WÍ? §ºtª r? åÒ“×-•?!êaÚsi?!©´]C?! ËoôZÙ? áç= F? œœ–þ¤ý? 0ÛiÜá‘?'1O@X?‰é%êÜ?­¨/Ì?ÏÉmHaö?0ö¸Ëš?û~('d?5µ–ß à?ÄQÚÕ]?~4+"§?CöLL?ŽeCíw?îY$*?ù>NžNö?=î1¬Ç°?¹àÇf·Â?^Y `Aÿ?2•BÓå?Ȭ·'s?Zž­µâ?µ5XV)?̆?Š‚ö?¦ã'Åñó?[ãÖG0? ˆH€“?Ú18mò?߉DüÆ?,›¹ãcI?Øì±è?•<·g?}8$”e?F14gm|?³íA]?’?¾eé×?Îù`ˆ\ª?{‚ctš?ÊáËí@­?ÿ„ÔvG‚?W©(?ûïÛ jŽ?†{¸?c»ßHK?ÑNñ?½WK„v?@B›)?•Ô6?ì,ÖÅÖ¤?9JÙ„qM?_ôƒºz5?Zjߤ®€?<šÍ‰²?/‹P²ë?\PZ ý?ÓÊ¿2„Z?lÒ(£/?6S ¹Þ?ÄeæùëT?º™Lôr?Uëm–?© öxà"?GQŸK??VZ׊?qu×Åø&?œ€ªAf¹?~¾µ®žx?ôÏQ0?)p®Î?Ï'‰f‚’?Šç†?XÔ&l³·?CY/› ?:¶R/?uuØÍž?Ì”#ú¨º?1kSÐSÕ?R´â"7?PšÐ;A ?\Ò¥3R?§ˆpÀ?Un'MÛ?rid7 Š?ñ3Rjÿ?²ÿ¾s?”J“¼Î?tåî ê?>ÚH/j—?äÉAÎ?_¥Ðoù¶?«™zf¾G?Ç¡ñC~\?µvÙN>i?xvã˜O?ÈtçSž?ƒ3 I!$?ÃÆ%ôØ?ËĵáÞ:?’A+0T?|")ìÎ?a³ „˜?—8a5ó?Ñfþâð? («š¾? ¨4¤V? —ÓEpŽ? ÷ÜxC+?t±$|oØ?Av$š»f?Ànó¥–|?óÊÀ™à…?°Öæùæê?é"qð±?©C§ï 8?+^&‚r?|t ì>Ö?.¯e¹?6™Ã„Aq?nEðDF ? x[²8à? ²r5ÌÏ?~Ž«ÂÚ?‡0Ž <ê?åìâºÜ? ÍYkØO?XÑÒô“Š? Ndì6??Ö=´hvÌì`?›´þi[¥?æBo›²?ïòð³ã?§Y¥jð? æão'? =¤þÈ,¾? léXêE#? £æ[)½q? ÛÜä¼^€?!~’w°&?!ãQõðF?!q[`yÚ? ã4cϵ? Í©ßm« ? ÖŽ­â+? ÿˉŸ/l?!7|N£í?!br4ß‘º?!lGÄX¥?!PHÂ2 ?!¯/ â? Ãî|ÕÞ%? Yr>VNh?™]­»Èz?*Â’h ?nÙ­á°w?7´µP?•Ç2“v?J.³˜¿,?G+|jJ?¹#¬£ê?‚0|èO?t­i°‘Q?m̃—~?aø§šl?]&Ö9 ?sÕÜêÏè?²©Æ~v,?åA„ó¶?‘ÓûŸp?ÆÿLŠh?‚#Ý}¡P?×Ësmk`? DV0?+I~{?w¨?ªŸ?çWO ?Ïìq‘–F?Φø| ¨?ï¡A/Hð?9†ÙÙP?«Ö±oÁ0?;Å+}?Ñ0VJF“?Gl½µH?smdf’?0˜ÑÞBH?nºÙ0?;KÁ˜ŒO?¾Á—dþ?/»1ùf?Â|Eade?›.ø\ƒ?È>®?E2`0Á?ÆDÄÁ0?ïˆêâfß?ý. á`? ÛosÄì?Pv¦½Ûv?€˜ë`È'?¦q´™‚+?¿ –ö?Ô@cO¦ï?û»¼Ì¢?J»âk«8?ÇñÝ{®?^<—1~ë?ï 0XÉ?]õ‡rr?¦£…|7?êË\†Ò?\/˜îbQ?#‹Úâõ?Eg4ôŒ?˜]»cÔ0?Ô%)Öã·?°ë¸?wÂ?ûèoö?ÙJb”=£?Y®9´çV?ÈØ\&`Ø?_ÿg”´¤?: нÅL?J¶1›?eh¼C¸ ?Sdmæ»?ë‰ÆÒñf?(ßéì9*?*«><¨W?(‰dzI?\sF™ Î?ï&|;öÕ?îrië`J?Pmÿ|K†?üö}Aôõ?Ø6}(ÁÞ?È¢ƒè…œ?¸ŽÔšñ'?’¢çUšf?AcȦ•P?°×ƒµKK?Ó›Ó…g ?§†eK?2£ª´Á?ƒB.°?¦+‚Þ®ü?¢òpI?{±“\aŠ?0›³ŒX?ÁГ5Î?oÎCç¡Ï? à\¢'p?Gü ¾ê?¼×óîÎ?×´ôh?r7…eø:?éXx©Æ?oÅ ªÌ?`i:Ë?Z?NÈy­5?K1?´tA?F7Oáté?/.‹/(?õÕMŸÇ-?ðBÒ ð?4„àD3?VMöF+?U…— ô5?(lRÎÅ? K^ÎU¾¤? Ø'óú R? ÛáóoÈæ? Q@©£?5 º5K?Î-Å•?„~LÒ?v8ˆ¯d˜?ØÐ—õV?7«swå2?Ÿ5;l€)?Š6ºs?¤|<‚²?9Ö[T×á?Ç6>Eú?8MiØ^°?€gK·^?£XübZ?¶ëãîm?ÚüRrÑ·?1$ ¬±?ÆÀßÖ–?“qbdL?z.õ)ZÐ?X”›/Ü?*'û¼?Žk(þˆ?Ëã2¸Å?Ç/Ó–»ù?€ŸÙTÃ?û_y+É¢?B'þpä?j¹‘r?”ó=S‰r?á}¸ð?fš¦ãÿŽ?(1¢Zô?òóùÔ?"Ú.Özn?3 ~tÑ?A"r´ÞZ?O¥CUó?f^XZu?Œ¡É>Ó×?ÄÊRë9Í? «Ø€·‚?]õ‘¾4a?­¹K“UÓ?í $dˆ? Ç¥7r?øÚ6ðS(?²ójØ?BYÈ–?¼Ø7½%¦?=×­t5?Þ Žt»›?®åÝ5x²?¹«êÓŽ0?‰˜¨£°?‚BËÎçf?+‚8‚ ]?Ýhã|é{?lŽ£‡Ã?°vÜ¥ô?•#ug`&?%'¥a{.?†IfÞwT?éÜ…$?{ÊɼÖ?±‹;^d?’Œ­?°Ú?u­BÉÊ?«I #?Ï»h8_;?ð#Àƒ?@·#Ø”?€D®Ë>?|ÙRý?$Ý9*Àl?†Ÿœ£Ö?Æ(ßûWX? ŸùCVŒ? 2ɉæì“? kß´íR? ¤@1ƃ? Îàÿ'‚ ? ç]šñK? öV%ºe`?! h}PO?!5X¼IÀ?!mr¥‡L?!ŸƒÈpÖ?!³Çb Ç?!šï&FÆ?!V£éèá? ó0~4{? {µ¢ýL?ÝGl‡Ý(?ŒÎɉ0?ùáUÄ?1„'ÆÏ?\æ/äÜ2?´•"ÞSå?k¢[qÄ?œ‹¡± ;?A¡,`>*?:Í‹Lž?Y´ÉôûŠ?|ß° ?•Viåÿì?ªÛhzQü?ÍÁª88 ?T›â¸?Rfµy6æ?Ÿgiw•„?ÞGMÕU ?ÆžO1?ߣëŽ?11Â=6?eõñD?§’ù¶Ó?+ªnï ?Sͺ¸?ŒàNÇè?ѹ¹wã»?YàµbŽ?kb|@^G?µüгˆR?òͼu²€?dU Ã?üT»2Ë…?ŸUS•|?ð5ƒül?õÿzû`?˳µû‰?—{€fÍ?€Fs€uì?¡±èÔ“D?š8¤s?¤ÁnX?m¶/°‹'?MäîgÓ„?8ØR=†È?*Émi ?&?b)øÒ?.øƒÊŽ[?EÃ+è0#?iw…¬3?™×X v?Ú¬]ú%×?0ŠººÃ#?šoÈmL? ºø<ù?pR¨sY¿?¿h¿¸¾?uM3§C?W·úé;?îA3Áeº?âº8ÃØ?.ŠàM«=?Ÿãs¯Áz?èÙÚ'Ú?½¾³íËP?óV Š?³A´c“?Ì@Ôaºþ?öÚˆˆ.%?\žsVë?'wê¹ Z?NeA¶¸?šøÑ »T?ÃH0>Š]?ŒÙ·|¯1?çÒR­>?ô1bî?ðd…×ñË?uaˆv?§¢íe†^?·dë¢?ó»ÜÊa0?•ËPœÁÈ?kÚïH?]3¢ËR5?V%- `?;FÒãÔë?ï90ýl?U37¹¿?ZX輤?üp[Õãè?It•|¼?V×—(v?;®ÕñøL?\O”^?Ã?åÜY?ɵ°À.? k-½»Q? 5i„¡}¶? ~8ñ5?9>ੇº??õ†€ð?-Âa‘õ>?¬åkz;ü?Y2Ó€¢?_ø>|/¶?ªXæøJ>?Î6}œ:?}.ÞÖ¯/?ø+²þ?Àˆ—/?j¦íb:?ûum4TŽ?bQ:u¨?žÅ»™¶?éMLyf?ðN=0 v?CxQ$Û?Ílrí*ð?‰DÁºG?^Ë?*’~­>?Ëøhß?)Úªb·è?7IKÅ?òŽ÷Õ?bË›_ì?–êØöo?¤ÃÔÍVò?¦Ú0·db?¹jY@K?ò¤Ö$?]gÝÙÝ?úL’?¿†¾é¶?¢Á¶¶Qƒ?ŸsRF8Ä?·Ç.¶ `?ïòàÂY?G®ó|ÎH?¶× Æè–?0XâÂ1Z?§ÅB“V·?ƒŠ.s’?tÙ‡'Ÿ»?¿Ro* ‚?èó0°¦ ?ã_iÐhM?¦ÐRÄÞ?:àž€ ?¸žµ(Ðu?BŠ¢YSÈ?÷¿S? šw˜À'ï? Œ$¡Ë;?Ä;Ò0´²?U:Öå;?·p#”?ù#TL](?B¦²Ã_?ÆQ0ͳ?­zʽ‘? ÞÄ[;Ù?×íFûÃ[?ñï1çò?1æ§!?sØS%úo?ª¶b÷:š?ÙŠ·-º? ?Ì5‡??r#úr?rÕ,£?“ DüÄ ?“cýS•u?sh\r?@«uWw­?̆/•?ýÚ"e"?bôÖ¹:?WàíÅê?½4ë~?0AÝ©4š?›é&¤?ìl0£º?>ÔfZQ?&8×s:–?Ò“ä9?ßPÛÔßo?’£H‰©)?'pýöJ?™3\n¼?è Z[¼6? Ѳã?Si†>Ï¡/?r1Àhš?‹ô:‡Z?C°®ÿ“Î?ýk6êZ?pøÞUÛ_?Ü™Å@o?~JÅ;? $"Y %Ã? Ýô#Ó¨? õÑÃXs?çÌì®Óž?T¯{ðwã?<Æd1š*?ab¹¾¸?E¸Ú[N?:“Øø`Â?T9ÇÖº?À…éè!„?*„#2@P?:!BE|º?´KA¶ôÒ?Œ!’2¸ ?༎jê?ìD)…Äm?íCþ‘Ö?âñ4çà?x8q‚Pþ?ƒèï¤Ü?õž¦Â ?óyÄ è?gÀr°x?ð(Ö¢™?`§ÀV˜?êkm&9Ù?œ—‡¶ìù?2GŬ?ݳC(?ÄPëÆ›?[¿ >?j4áˆlž?û Ü;ü¨?ûFQE‰?œ±”3cu?:¿Ïó¼?¼Ã¥Â?ÈeF©?\²'µÉÞ?ž1K›?ùnü’?}¸÷¤6?+iJŽ;?ò·NB@g?¹R# '?b»-—ŠL?ÚÆãÚ3†?%œŽO??L—”?Z·¤f^?÷ÐÈÁP?õÀ;CK?‡ËäÞ8‘?6µ˜=‚?â¢:a~??h]XŠ[?§Y¤v?‹«^=Sø?»‘s©å?>PщY¨?/çé(Ü?®+;¹D?Ü›(‘%ä?Ñ\ßé5/?ñR€?¯Â??w²|Öu?·4”‡ŽÕ?S§¼^Ñ? ÁBç†?§ÞÚþb?.Ù?¾ Y?•¯Ü<ªA?1–’¯ø?éÛ=j¶é?¤~]=´?I¡ÌÓM«?ÑOúÝ?;ËÍ ?Ѝ¿QÔµ?·íë·å?·CÖ£N?-ã?®ÕLË?œb+`+þ?5{´1?o…zô¿?!0>OOë?ŠÙ ÍÌ?9«½;îœ?z¯N°ú? ¢ƒ”?lÖΙ/?Ðè‰h$?F #ÖŠ?Öœû&§­?ºÂý\F?*øiTÈV?H³ðQ½À?¾’õÆy?¶•WÀáø?<~ùx…0?€Dð?½Aõû™?ŒújÕ0?f Íëà¡?´ÙG6ø?÷\Z›"?3ûiš"?gˆ›5¯?†r?æÎÒ?Âl ‡®?KVJõÃE?ñ U½²Œ?‰u.Ë¿L?6#)uÅÖ?úì 5P?:¤?`?VL;¾ ?Y°çXít?· ƒn$¤?©ž_ÑÙ?ŽDÙÓé?ÚRTë6?…Á_š&?ÏÁr/‰3?b쾊~'?Þ†a,ä?òwÛ¡L?„°þks»?¸ Úým®?Ó¤¸´ƒ\?ã̽Ÿ?ÁajË¢?ƾp–Qƒ? 0¹Ü?·oø‰4ã?wGÏŠ§È?Kqƒç ?®Ë÷?Êiåœ]Á?4µ‰Ž-q?:Æ’Ï—Â?Ìá¹ò¼œ?ô[FÎ?ÎN "k%?ÿ/˜­t?.Å3’?ã|®ß~„?©z( ?‚({`l?èk3? ƒF1Ú€? f¿€ÉX? Aáȉë? GÀµk\?¡ç1_“?ÛÒxêÁ”? ݘ㗕¯? •Ò/%·ñ? ĺoÌè?þêLé? K˜BÍÊ?ў͂rŠ?GÁóeÓˆ?p`E!k'?^rãR´±?2{³}¦@?p¿OmD? l^™‰—\?t,l¿?¿âñô^?Õ[€ÇÝÓ?º}¬]?È;4U¿Ð?|Ù [+€?Îd“lD?™ãÛJ?Ù5§Ha?lô2S‚?ñû/òî¸? sÖ¬ø?x°#/‹y?+ò/&Ð?H;lŒ8?—³27?Ï\¯ÃnH?¿cÊû¾?þ„¯,ë?J¯Â9?cœœŸlv?hÅ®G@ë?Œ¢+¾ø?¼¬¹°Ã&?å7›Ö#l?óÎà³ÀB?ÞÑ÷Ù²?©çY¡Å?ffè~\@?-ýIʉ?ŒsI?Bâa1ä]?©•ÅÐ-£?BÒºÖaI?ñÅSW¢?”!\ˆÒ?7(«Ë×?e¦ p©u?¤O¾·û÷?ìꇜ×Ú?\¶Ç¥C?5’ûé?ד^Û#?Äî×7<Ï?¨ [Þ’?^¾Ù2ÎÚ?ÒzJÔ?DLhó‘™?úùnŸNÆ?ÚøE$6?êÊ¡å?&¥9Ý¿?‡þGZå­? rs}?¼=Õú?ª‚6€Á¡?é&0?{û$ÑA?RÓ½é?IÜäÆà?9¨í@fL?ô‰ 3?ž#]ª‰=? ñ¢§ùl?YÅÃx°?‚½eU?2? Ís?L!¡ ¥;?ënl~ N?{ôÔ;WV?'ÕgpÅ ?•&Ä?X[w˰"?ó’+¾çK?ÜG¶íd?ÿÞ!¹ü?AØ ð ?s8Üø&I?U«©Ç#Î?®µÐÄ?_uêôLà?~ìœÚÌ ?QGÃ'«’?3±é«Åë?|ánŠä@?dàK#j€?úØr²¸?'U®À0?·¨Úá?n6¼^i5?¸]˜?€ÊqÝP‡? P æC? ²PŽ2þ&? áú{˜ Å? Û°ƒ,b? ¢C=2Њ? BÏË«çä?§ˆüõ*?ÞªOü™?X]”`?2üQ;| ?zùjPH?4åÒ? 3ëve®¾?!ÑÁNº?"Q«ë‘¦?$øeaÔ8?&6)H4ÂÚ?(Ö¼ = ?+þ{ø?.Æ..a?/½¯2ì+?0M›^º¢?/b®L…·´?-’g¤'Ë?+@:pipà?(õÁرú?'eÊÇy?%Æú æ—ú?$ù ¾AÏò?${ÓÍnÄ?$™o^§?#¢kÁøÀo ?,ÀÙN›?î’/×íP?Ôü ûÐ?Ììzi¥?ªùg?¯JqÙ€?™ÍÖ?“;¿¡»-?® ÔZ?ö4úºÅ?swd_?- —QJ?+ô ÏT?mÍÂ÷˜?ÛI˜Ë 3?CA9áR?cü|£h$?-Ê(q?õAL¹ ²?L¤=’?;ð»¡?Ú@„Øà?P/qÉ÷'?ƒ®ª|?bÏ÷Òà?xOÏ?”È!ŠÂÓ?Á)hî«?nˆü²3Ð?À º›ö?ü‹–]j?g)y@îÄ?%hû *?;B%v³…?˜r³Ù?'^D’Œ?Ô&<² e?ŒMwçæ?:PÝmb?Á¬ Î?þO—”û?Ó­`2?2̻ݬ?(ßü?Ü[ 7ƒ»?x«Âú? ,ÆT/Ì?ã,|ý5Z?ÅBtï2?Œ//šÄ? ÍÁ7ï´? Qº•‡? v~V€? l¾mõÖ? Kض;?Ójßÿãø?Êã£[!æ? K,ˆeQe? VÀ¢ÓŸG? ÓŸo †´? ”ÐÎ;N1?køý©ÿ?˜¤jê¡?büš]æ£?²ë¹œ‚?‚Û­fP?Ï”¬ïÒ?óä0»w?‡™ù³y²?/ô?šC1?ϦÕx¶?k­E1¶ð?|ë3äï„?O€X3Ì?"ö˜,}?ºü.Î’ù?0ùEê¤?X–7Ë*?€­¬q:?…MK F?qêµ”?_ò‹n¹¼?lIY—¡L?¬×Éo™ð?&«–þz¶?Êå 1î?wÔ.hè?n_• ?{<½´jj?Ä™ÇD“?dýiý?i’çÞë?=A2<ò?ëûàÛ?1̵çÜ?"ÔÝ6T?"që†þx?×à^Ñ~Ð?+.–òá ?+Q+ºû?Ïv²šB?eÎýÓ©?ÿ¤¼?Ô/ðØI›?Ô¹Àmo4?ã9Íô?G'{¶Ö?|»ðè;?y`=õð?$Ú!æ8?N^‚’n?%<=è1?Áªü#©?Q²YP‚?ýŠŽØ­ñ?ܨÃóÚÎ?òÇûŸÒ>?6#³Öxê?›(»†‹J? J´‰ÛÂ?¥öHB.?–¿®jÔ)?ú1°?ÒNeÅ?Ðz¾ƒ¡?îeA‘šc?þ4m”ˆ?ÜÚ\XЦ?~¥~Zm ?ëQ¨gÐ?0°:Áiê?T­Ç“â?R1üsòg?#ªwv?ÎWƒ º?pU'™¤?1¤ï—!?8hÝ!?šÁ©ëœj?\+yª?sr0ÉJ\?΂CîŸ@?L«’óÓZ?·¹oRƒu?Ç.Ú¶?5ÙÛÛTè?àŠÖ‘›£?Üþ/Çõ ?wÍæ¤?‰î!{?, [˜?îçª÷SÔ?yôü®bë?¶%&ë1?jº/6“™?O­X,œz?!Ý1QB? XbènC? ðç½5?!RêHtô?!|ó2?!k€“|·?!&Û º? ¼ªš³ÎW? CvÙ†e?©}ÏŽMt? "j±¬?ÍÔ3’Rä?öÈŸë„'?ˆ~G{.? BírTÓÛ?!A¥’€…?"ÎRdô?#™Àü°f?%¢ÃJ×2?(!£%˜ B?*ÕgùÊÊ?-M²ëЂX?/Á •l?/„[œ š?.ö9m»L?-KT-'ê©?+iFX0‚?(Ù¹¨ >"?&ýŽ ù*?%«Blä?$×”ÖÛ'’?$S[5Gê¬?#æ|ÿDÎ.?#fƒ'6ý.?"Á  ““?!þWµ…LB?!3#ð? {[\ð†?ÙÓÞ}?%H}`ˆ?ÕóC—B)?Õl!F?AÒFÅ|?AÖ(‘ÃZ?pšv?u§«:^?:¯ÎŽ?°•2Ú i?Üh ¹œ,?Õä\?Ì"?ÇA§KUM?âÂæð/-?VŠPØ??*þXÞ?¡ìÝx‘?e™uN7?V^* rt?4‰É}éq?Ê"øõÊ'?ÿréî  ?䲊av9?ªcûËE€?Œ­IBú?º1îHb?Aò¼Áq?Ž \mq?öÜÀT}"? cúIõZÞ? ±WF']Ê? ÞÿnޝÝ? ñ¬™Þ? ìn¼ß1Q? Ð<ø‡,Ú? – ÚÛ>Ò? 84ðÝ^ç?r`œGÎ?JA„ÜÒ ?×—݇?ñGFdÜÒ?Ù°w Y?ÆNí#2Ã?­ >C¶?ãÐʼ¼?„WóÖï?¢ÚÄu?Ðaå°Ö?®È¹å ?¤‡ZÉíT?ÑèE‚÷? mDÇÔ‘?|@i:?ØÙº³ )?/œüA?yé›i¨?ªÌ\‰Ô?±zŠŠ÷ ?,¾¿n?vgØu°?ÙB(4?p-“Ýý?˜.ƒF܉?pÁ‰-£?›Ý!CÈ?‘j%³?¼H÷Õ–|?jïo5ãT?ð¥9sHB?(Ä`M]¹?I8• ?µœþ™¶?è=óú§¥?C1Ð%™?ʈ~¸Ät?–€[GÓ9?£S\î‚??ÕÐ<Úsa? ~¶º;?'vPWh?&áå9Fõ?±§Tí’?ý:ª…iî?éÉú bc?Ò:Vaf?§,sÏlj?\w³¡ú±?ó€¶j ?|ŸÒ'ï?#m=9À?¶ù†}?urC?ú?:c A´?õ¾•yòÍ?¦bëË?]ÎÕP?8ÄKö?M\µ^€Ý?¨±³yš?HQìœÜ?&µµ›„?<OtK[?€çÀª?Ý ^¬?(ñ¤éÃ?.%ÃPªp?¹TŠÜK–?«ôVÉÞ? ÿM ’?ém¾?îçÉ’¦+?‘+!kÔ?Ó«¬“É~?%> \?³~èÂÎ?G«œy¾ ?„¼°–ŸÃ?O£÷$?Én3Åz·?4pcé?Ì $hïY?¯Å‰Ÿtò?ÝÎwEý?C%ÈÒî?Éò?Á!Þ?`Š‹S?öHzQn?{ëÔ :?ØÏâ$G}?îê•Á°?žj;@\ƒ?ÜXý`½B?¶^ëÀy?RR4ô5 ?áKe³êã?‰:Ü%«?\¹™ ýŠ?^³çNsE?ì^Uk? ¹¶÷ü¦? œØ(Ìì? ¯à˜YX•? á1« n? )‰±ÓÅ? ”1|U y? ;kêÃø;? ;ÛÖ‹ž ? ¨ñe3? ƒÕÇ?X? Ǩ½š+? gíhvg?RøçÈÛ?¶?¥l_Ó?ô> ?µ3•~F?kðZÄ9p?ΙOd•?‹ÌŒšX÷?n×÷¥?ÜhŽR?é'ÿõ‚x?õø±Ü<š?ÁÛÚÿÔù?‹¦å?¶j^MM%?vá A.C?ÑÐI(?‚˜2ÒÃx? IÁ°ë?=±‚&fî?â™}W?õ}¤Ûœ?Ðñߪq?>Þ‰ÐRP?³æˆöÁ˜?z …n?²CZéèÌ?R¼‡MûÕ?@Êúd÷¥?d5C%Î?¯Mq5m?ðÂxœR?–“/’õ?¦~8ê?lÞ.°}¸?£øHõ°ï?»Æì1?ÉuIThÃ?í"š0+?<ß°–è*?¼¨ó¢Âø?Z¤š«?öÙ+ò‹F?sÀÔ‰­e?È~ãX$?5sPâ?YKÕÇø?격‚°?Õu(R T?bŒÎüÙ?†£öcü?ٴ#?ÓÆsÂÄ?·á0ˆ1)?ÎUËÁ?aA¤‘ˆ?›ã‡®]:?¶…‡Š ?äM ¬^?F›¤.h´?ê~l‚æÁ?É©>?ÌKŽo‰:?ÌŽ!Ð’?ž¥çQ¶? %œD*?7~u|Êâ?þ7;NÃ?•à›¸ÞØ?.#°2+A?îÄäü(ï?옗ë0Þ?'30\ 0?ÌùÓ†?œÃ +¢?sÙ¢l:?ÚÒy¤?¿e¬d ?â´µ~dº?°OŸ¿å®?· v¾%??ÛŠÙñùæ?îYíeÕÒ?ÌÅÃ%ƒŒ?kp“ ÷Š?Ó\¶A?¶õ4RÅ?8†‰²ªâ?0—’u?)ź³[Å?,(Þ@J?-èU7u¦?.¡{Õ–Ú?..ϲ+Z?,»Ók÷U?*´Íëm»?(•ù‡1–É?&½=ð[C?%k W27?$‰Ë]M>?#õÿD?Â?#{1’¼ªL?"ïh­r²?"@ăð–z?!uË:žÿ¥? § e%á†?ãºáiüÞ?Ø+½Qr?:‹ÀÂú?ý˜%wçT?Óì>n?)fÆ?JÖ?V|þ&ôÖ?vÚ5ü?vQñuÈã?E^&à‚²?ÖºF+cx?+mÕÔ&?U¼4ÿôù?z²G.Iq?Æ­sµx®?cÏZ.†ô?n—YEÇÜ?êº;d`“?½R¢Ã?¯–ëR}?­ÑÆÁ¹?ùi«ï‘–? aÈ,"?ÓNx/Üç?‡Ù¡Ëö?i¤C;0J?£óœƒgž?=ÃvÌÝÈ?^R+ô? 2Â< ? kõî š? ±YU¾˜Y? Ñvä - ? ÍõéÃ\Ò? «[Pë•r? kŸ ò“? b±A¿Ì?*_ôs5¨?NaÝ_”?æNIJÀ?Ê6¤««Ÿ?Ë@V#Ù?çú½†"?¨2ª—?;þ¦-À?c›¬o¦?“;FI+?Þ…=ç¾Ú?YVVÏßS?Ë!¢­?ü}v°¡ ?“áf¤?Lÿ¥!MC?“,«??áaË”é‡?2ÀÁq-à?}ežšpm?± óå¢Ê?ºèöàh?m꿟?1ˆÖHOø?´u°NsÛ?6›o®Ê°?ØQr”WJ?³s\ELr?ÔWü†Bˆ?5~d•s?¾¯`ì%?HóïÀ]?¨¼«áÛS?»Ô¸¾û?u…³®Ê?ä§rYà)?0}…õ¾8? ZÂâì?(°ò=ïœ?TR¯D?XX½ .?¿:}¢? 䚎ƒ?]ô`7ùà?o»­j€?fN™ ïÏ?YYÚeBb?Vý“¨!ø?\GX´j–?Xämë°?:ô‹-º ?ûoz7¥?ŸôsÕyÄ?8Hhø?Ïg®w?cäl¼2?ìêcìî?c¹ü4n6?ÒCgûÎíÓ&? 7ñP°†‚?-D¬`F?FqÙaRª?†)ëé"?˃Ýž2?Ŧvó‡¿?PÆ•?•ø?CQ!{m?’ù`&]?é-är?W4++hd?^éC„?$³+RÖ?è´ã©ì?ÔïA¿˜?²ˆÝ.rè?ú>°¿Õ?™›ÃfŒí?&´<ÝË?53“!‚w?zÕÆÞ5X?çe!?U†?¨ì%u³?[SÒb?¡,«3Y?‡,ÍÝ3†?æ̬mp?¬©¿ú>0?¸Hx„´?ï?à9t4?I‡HÇô?Ä`6}m…?Y.Ôõý1?ñá­Ѱ?tâRb?ÎXJ'mî?lº)?'wõÑò‚?XÙC˜Ó´?­:°`†ê?'éÒ ?³'xŸ¦:?2ùñÙ‰*?$¥J­1?ÉäIÛ„l?°gù‰?t¼>ƘË?K+¬ù?ž¹Z—]£?ZÑ'¥¼l?E.þ'ðå? Ç1UŒN? +RŸiØÐ? u 1OI? Wê¾ñ?ÂñŸðî?dÆë®¼?äHMÒê?…%.båç?p!œý•ß?±¸1•+?>úc¤?û4V$ ó?¾2[Ü?\3Î3¸?´1ðÀ(?»m?IÞú?‚Ê—?/È/#V?>I?å3ÕŽ¾?!”¦s›?žÝNW&W?J±S*>?ø0 Øë?Ñjm?Ù?´V»Hƨ?õ0é®d?_¢MQ¡{?8Yê2À?üÙVcª2?¸øOì?ùŽˆé­?áèµú ?WsÖ¥ƒ@?½uC5Þí?pOeÞà?4¤ÈlOê?K^ð#Ì5?B—º(L?æ *}c?í£o½m%?ÔããÊø¸?ó÷F'«·?cIi™e$?/šZŠÆ?Wâà «X?ÑH€öÌ?y°£uB?$—õÎË?N…ÉO²Ž?Ùè1·J?‹Ëö1ÎO?v8˜†õ×?æG0+-N?JÍ\T9?jÓµkÇ?‰yBZŸ?ÒãÞW˜?ຟ‘ÔŒ?~†×Gæê?cùgí+Ì?I°? zÑΉˆ?!#pŸO! ?!•Â"ª?!ʦ —è>?!Ã¥ÐFŸ?!…ÔTŸ”?! P!½õP? ª•—‘ˆV? ?xgŽèá?ëPBá'f?³XY[ÿq?×ziØëF? $%šp? |h\Ô§¨? ù´dÓÿˆ?!²±5€?"LJàp±g?$WI‡&æ?&bÓɺ3ˆ?(½:Ýøän?+ À{ã?,ÑYZŒ¸?-¬ÍR§3?-míì®ç?,1 ŽÖ^)?*SÐ)yå¡?(Ia¦ nH?&ug[Þà ?% ŸÜi‡?$g½ó+ ?#k¡²2ˆê?"àü¾ãÒ?"M¢Pc,Û?!Ÿ¤"øÍ? ÛZ1Ž? pÃf?ê*¹Úx?L¨Õî?‡ûÓ!9Þ?``[º?iÅÄIK ?…úÓÀ @?¡¾DC ?°öDÙ %?¬kØ –?†Ô±aíó?4…gu ?°ÅÝšDì?ì=UÞ?XH ©y?Å»âƒZ?v× /ûà?‹^ à? ¢M |»?Ù‚¨­ûÞ?Åü\MN?Šã ókÈ?øP8c?[Zªƒš?Æ§Ž¾†?‚éqˆá?u–šT?®Uüc}?iDqà‰„?GÔâÇž? Æ#¨f ? v‚L;? ´w¿AÖ? ʹÀØ(ð? ¹L <©æ? ‚RÖÛ ? (Ni±ØU?^Çwìuô??ÄaMh»? ÷êžb?çÚ¹‹G?äŪF?‹? ‰©µfI?ZÛYŠ.?»³ËCÝ?ä-£ÃÞ?Ï!³è?଱޺?N½PSª??ÛÄĸ…?—ÿ=ô–?kÚWÑÄ?dOmä¥?pÆþüKÇ?ÒV•©e?¼ê´Ó‘-?ýh;À…Z?EkÌgå?€vlv“Ú?™ã‹Jx–?„ìŒÆ|Ô?D*wóW?èfµh?ІãC·;?BYU«¦†?"Zþ&ÚQ?3Nðø¸ñ?q‡æ„d•?Ë _6 ? Į́™?Nk›Â[à?6Þ_«½ä?ÐÃ)8f7?-¨yB?tcéÌkœ?Úlô O?‹€Ð¢ít?š0K²W?øm­wë?{0ñE¸Ž?ñŠEE?:P©Ë-?R]RKàl?P¡åóŸ?Tèø_¦?sÄêàõ(?¬¡CK?ìq³w?tŽJŽ? •(ÿ?ô¶¬µª?£Iñ«–^?.øWÄ ?™¼Ž•¬?ãÇÉ«*?Í}Z\å?=1Œ¼Þ?Œu@WŸp?*%á?» ?1ÿZ?¥ìB)åÊ?p2Jy2?rp‚ôËš?“Žt>S8?Ä d\|?öùÄ"Â?ÙÒ\t?I{Ø2?›î8´?¸†óKÒ ?PWÍXq°?wÀPˆÒB?fhÑÃ8?jP½8H?ʠ嬒ñ?¦< .×?ãžXý¢?B )ä? 9Š8(?…øtÔŒô?e&"wN#?Lˆ@ÊæZ?dV¼¸×|?ºðº?@ž¬ ?ÛÎ&x ?nÙŽ3"½?å)XØ?5~€v?_UÑ‹Óî?`€€B(®?-¤"–lÚ?²V&ÁèŠ?ÝKéPé¾?°I\¯d?F/a?ÌWHpÐÎ?qUÙ³!d?UmÐH–?„Õ`Ýy?ðüúÀ—€?8¹ÍÂr?« >Sf?ÆY“y? [ÜF=u0? u˜m{›î? yÀóõHÂ? à†®&ô? Û)Û¥È? †…%ó%? ­ Mbõ? c¹²Ú]R? µ­[äÐt? žÕI[À?ýÕ¼Y»?Z)ñŤh?©RH—Ç?¸¢ABÏï?Q}æ.-X?¼ÎJ ¢O?÷–1?ktÂ<.€?´/5Ùì£?µ ‰ø „?t‰ÝŒ»}?-¤OAôƒ?3±Y ?Ä×âëÈ?æ*’>?\Ìnòë?ÄÿiÉYä?·ÉÑ•?îØ>T\„?\–Ò6á«?0Œç|J? MOI`?v̓{J?S8 ­Ýa?ŽYÚ<ã?«Sx¥|?ƒÈã„ú.?èÓªÕ¢‹?3Ý-&F?•©\ @?äMPÕ—Æ?»U*#íË?»5Iò?ÿOúCn?‘"gz%æ?fü„¬ =?j90G?Ì4Ô͉?¬ÇôÊ?½¾Ó|4¶?ð\w’??H[£ù=´?Ð3÷Xnè?‚l[&¾?HáNWÚÖ? Ç—jÊB?°^qþ)ó?65c˸ë?¡9ç¹ÞY?úéì+G?F†ŸíÅt?}Î’• ]?—֛Ŷã?“2Æž¡?}s,^Ýâ?p­ 9¢?ŠÛµ]Å?å…³Ó?‘,|a{?•sŸý¯?èõ— b?m­t Gç?ê¦ ç\?Æm˜?—É/6?VÙÈe†?[%¢ÀV?ë´o»?lœcaÀ?B~?6U?·¿oÒ?êù|"ùê?Ó3z`"?A˜e³?õ±o¨?¬¶®Ç%­?  ò|½¦? »?æŒú?!,þ’÷ ?!kGkVüN?!rݼ· p?!EþȺÆ? ðƒXàâ? ˆH liF? (t?˜/?Ñ®Í=?¬QËhµÕ?ÝœG†¼? '™ž{"¼? v‘;z¢? ß4Añ¿?!wuŒc¶÷?"d¤iάX?#ÈÅ¡ã^?%¬]]Á?'ë=–mÜ?*/ ÞjŠ?,ÆîaÈÎ?-!ãHŸ?,ðÏUZ8?+Ù5ÝŽ?*‘ ¥u?(ó`⼆?&a’Åz?$œ¡8íÄ?#‡ÍüÃ/±?"Ç'ýÜ»(?"/¬c¹ 9?!›˜ÇÊÇ? õîäÔú½? CÍêÖ`­?1¦;Ÿçs?–˜…-Í?ayÀYGt?'TLX?òc&Ðh?,°Q`&?ÖùÈ‚?$Sp¥@ç?+’×}óü?(ßk\òÛ?ßWÂ5[?àdÁ Ѱ?†2ï`ï~?yyéL?y’9ñ? ÍÚÙcìn? ¹¬häs€? {$WÐ? Ž1 ? h;’EP?Ëk&$?…k%N?_?Üi: ?nˆ‹1»l?µé6=š|?(q ‹Õ?±ËÖ{¯ ??Òǘ¶?Èp ±B?JèRÌ›º?ÑÄAVD:?h~iz? ¤ëk‘?ÔÙ¬?ìÄÐ ®?p è¨m?Rm-0¨?Rƒ¨wk?w{9_ÊG?¸¹Õz6?ÿªöÆ„?2iýp’?AfÀ?*Öü©õ?üí{2ª?Æ;Ñ&I?˜éÕæü»?±wÂx?€ÝšÏê?›Èbgš§?Åãæd—‡?éO‘Já?éÌy°}è?¯Ø:aà?4ƒ3ÿˆÜ?ˆ½›9‘…?ÒßµôÙµ?C56)?ŽNâB‡?xç˜ô?¹¢ßè2?âÄÌÇV?xǬù¦?¼ÕnK?Ô“—~ I?ݹoö’I?þLDày®?N²SJ•?Î/Z"Ç ?dL[…æ?íñc?G§&9JQ?_U;Ï)B?-?}î#º?³2¿Òu?÷MDÀ?™Ö©x?ðÄ”U?àÕkéRÂ?®™ô?ˆnq›{?„ákéî?ô¨W—@?¹îš< ?¯ø2ñ>V?»²êC?ÑN¤/fØ?ì0­q?8šh?öƒ8ËH?§£Åz?ìZˆ;“œ?®ØŸÒ Q?ó⥞?åbV2Nß?Éð©D’?ë® Röâ?wf5f<?gý"ÿB?lóúÙ?¼Û5IP?щnEx;?Ý)¨¤?j!Å´?\Ý«Í?óQ&æåæ?´hÁ^ea?}RÁ?+8aN^p?£tä†ÇL?Ý5Bi„?ßµ)u?´!D®‰¥?_]ÕÉ‚Œ?ÔÙEÚ?I¤,lŽ?ßñ„¹^_?}Û-d¶?*a¸,Q?¡/+¼Ëž?lëÈÝ~?¸=Lä™??€ Σ?÷{9×Z?´ó(hi?)gˆÃ°?,“fI¸? {æÈ0/? è‡zÈS? οު? øuføï? ´¤kÒÎ? ¨—RÈ“˜? Xr? Ÿ“Å5:? qc< 2ê?±”!€Ö ?Sl”õx?N±²´©?J‚)ø?Ù\^JÒ?,PÌë>ù?lt§žŒÁ?Ǭû”*?ÉÞ(­”?íãJ:?ÁøC˜°p?r Žši?aHˆC*?ÊÕáµ.‚?·<r?órÂWѱ?&3½¶©‰?ñãÂ|æ?sÿÀ÷?#¹ÿz?‚;AEÖŒ?M 1]ïÛ?Hº\¡¥?¯‚¡z¾?ˆÇôDøâ?³·E|˜t?ñ¦T»?cnà ?Ìn_ Î?Iõøµí?ÜÕ7“ܺ?v ƒÙµ¤?þx“µ3?e(¥ è?ª.ŠZã?ݱ×ê>?ÓÀ™ê¢?a8¾Ò}?¼é°8ü?Êùò#ö?XHP=×”?zW5 Ë?–Hk–r9?çÃs%×?·l®h¿8?BLëÚõ?”h¦mx/?|“ÛëÇ?!HœøÛûô?"£ÖÔ¬¥’?#‹ÑCðJž?#БAÚõ¼?#e>HåB”?"dþµU?! äi#^œ?0“ô¹I?’ß# 2?ynø%w?ðg¶¥¬€?ÛT¨0 ~? 8Öad$?Kxpã,J?yQkŽh¤?ƒ†?Й>?qÆ= —d?^uGÌé?l*Þ‡>’?¹-Q$§Š?W’;‘Üç?HÜÀ)ÅŠ?~º^=?ß)•xø?K¡ò¬."?¬¼‚üÙ?÷Ò›æåz?3N0ÆU?n¹Ùqdº?¹v Ö é?sÅWW?Ž´È¢? >€¨?†ó’d?+ÚÀðò?wÍ à?ïÖü[?a gËn?ÁÃæ³m? lÇw?"GõÏ r?$lKÄɰ?ÍÿõÚ?, PÊÃ?f`û‘J ?â¦\Wy?¬0†ôz4?¾ðƒOMu?!lÚMà?@±}½X?;ܹn?±BYƒr.?€µ@xœ?µP^f¯å?ˆ\aÍÑX?N Þgß?[˜2”Õ?ïÏûb§?$Ï“„©?ð@0ˆê?'šÇ®/—?‘¾œ®²ž?ù/2Œh|?9ã‚*XP? !(`^þµ? …^x ‡r? Äô1!’O? ÙÛ2ÃÁ†? ÀäGB\­? € ‰ô? )Œ_^Ùu?®Âà{?C´’Ïân?-øT.J¼?ilrža?Ü çJ;Ø? 8W,Ÿ? ”£nÑæ?!,Þ÷U?!òªjŸ¥«?#@ý“Ía…?%½±SO)?'L, Þu?)™/C=v?+‡@|Ê5Ÿ?,¤÷ý p?,®*Wç¼`?+¨óœ”p?)Þió ‡?'Ã…ÝóÒ?%ÂP•'àÂ?$ ÿk KŒ?"ñÚ®jaü?"€«³ˆ?!5ÿ˜˜? òL ÖJ? \êáK(?ƒÒg+’?bhkŽ?}PýÐ?ìMÒÖ®ê?¬CX@áô?£ç³Í‘?³j˜M²?ÄDr$†?Ï> ûûÜ?×r~"Xð?ßÑ´°Ã5?âþöÉ×?ÔE¤ˆ¤?¥O‹TDƒ?Pd–W›?Ü| m Ñ?_óú©éß?ü›ZË?Ö–v¾?QTà.ü?|LÔüÄæ? “(µ×¯?»¬<{à?#IVL¯?LÎÇQMÉ?QîÈE?`ʇ®I?¢¥Ë=®œ?'£Ïõ¸C?âBm±ëÊ?²†Í00¡? ;›Y´`š? Œ`&ïð? ļ_™ë? Þ¶Ö·B{? ÒVôPÝŠ? —ð§·? )°¼´Òí?"ôä\$?ÃLÒ/N?fŸH %?8Ζ-?MYÐÓ?¤œXxJ?,ÎÐÎF?Ì®D“›?sO=Lf?Ð…?¬â½£à?BåûÁÒä?Ý#­Y´?|\14‘ì?ymQÈ?¬úñ÷Î?; é7 î?×ãÔHE?ž©½¢IG? OÇÈ›Y?×eJÃÿ?*ÁyKÌT?{6·f˜?³"×td¢?Ì]‰‰rV?Ìè‰Ó§{?¿ Ë"w?¬’,>b?šëÿ×ï?‘ö³4 ?”¨˜´½C?ŸƒçD^÷?¤]Ø=L?B¤¡Ž?F0é»IÃ?ÈaœCì?"ׄ~E¶?vâ’çãè?ï’~”Q?¯Í' Mƒ?ÃFadŒ,?õÓïÐ?…¡—Ð 8?á““•L¡?œNje?'x¡Ú`*?=¬Ïz\?*â‚?œ& $?Ñ÷üèT?Á#/%vž?¦ÅÿÁ?Uú´ØÒ?«Ûâ—IB?™ž þ¡ø?á(_ñr?DU.?#%€ûÿ=?ÞÒHª?§4€zž?°r™sÏB?$›?o4?Æõjí´?s¸å>? fnD?íê½`j´?ÌIž…9¹?µ«.ð(?¯P‚ ]–?¶¬j–?µØSm?…_wè ³?÷Ò"W•‰?ê^¾ä®x?TÑ?LCÁ;í?3F¿qD‚?æÁ„R¤[?v÷‹ˆÉø?á`º?v¿?ÿe€~G|?¦€tËž?)Úª""Í?¼Ö£1åñ?’)¤¨0?Ç1(F?W1pÝ—¥? 䬼r?çõ‚Tâ?Qãcx4l?^¢}Li? !xß`Š:? Ïム‚? ¦c÷d®? Ötâ>îš? ²ww{? ¹S Cý? vÆpê? Î#ê‚€É? …åÿg®Ø?†ÖÒÓF&?Ó6’D6?Õ†¸d—˜?¤äß0ŒÌ?³@,Î?‡Ä0ÿêŸ?Ãÿ!ñã8?mKþ—?\†™ Ç ?`C*8g?$6J…¬?Ñüv—Ó?¬ž´Žê?ëç6¾¹À?œAk?”aïCh?‡|v8´Ø?#’eµbÊ?2]Ü “V?®0U´í ?Ī1¾&“?ůÇ÷r?ÿ·mº™Ì?¤ìí?Äü?´Í¶ôÞ¯? Šª˜?{¶ ´?ìeŠòfÖ?ZìJQÂ?ÐÕ1Bè?O:S[sœ?ÎÕlUë??IƒANÿ?–*¿ÏQ¬?ÖÑW9? ”ïA¤`?I'u£a?“ÑWL"?ã¾2û@|?)f8¯Í[?S^L\&@?cF¿âZ?{Ãàk0“?à-!ßÔ?á‰4²!@?½ï‡Ox?€>d? v³bÝÙÚ?"EúM¥<¤?#Ý_ ’6Ã?$íÓ™?%<)ä«Tz?$º›Ø}?#…›HY”V?!âm&8zÑ? !Ë*ŒÖS?@¨d?|l\–z?“"Û¹?34ù0P@?#Öº ­†?.ž²†v?0„&_Ü?!Ã{ðÒ?Ì|_ á?!˜ø-:?lí›È½f? õ •í?Ù™”° ?KÞbßÑ™?ضŒØöf?Š™“áÊ´??I õG?×kz÷‡”??èÀƒZ?vØ'£@‚?‰¯Ü?¢?£Ÿ?Öö?—4à·Ð?´ uÎ'r?í3Ôìá¬?B´w¯?´Œ }?==ëí®à?Öçì²b?p¹œ—HÈ?úÓ÷O?c€ÈÝ?¡“‘˜’?¸Yˆù¾•?·!';Z?µV“ u?ÍNK§7?ø0ó?Ÿ­¤Öî?g­¦G3?Y¸Ê aº?MecÿÌ&?ÈÔ6V6?n,Œ1?Q–ô¢Œ?ÂÓ|3·?ív®‹K†?nÊQª]?t?[ç?Bôöj~?‘%fß~n?O†Èj?RòÄÞg?iç‚·Æ?keBa|?CékØ×è?õ_MІ$?…ë@ ”ô?ñøœ=ðö? ˆÜÞw]? €Rž¶Ž?¿œ,L—°?5‹ Âê?©€BÂÎî?Li2‰ ƒ?;ÃĊ?vo½?ã;üòI?mÚûѧ? Ýb‰ ? ŒpQìÒ¦?!]µtxÒ?"¦5ð”?$wNe¯…?&µ{ ùÓ?)éFR?+=Ñ&¯&?,H¤K<1v?,d½…N#Ú?+fŸ K~?)—×|é—?'lóÈj.?%WˆA]?#¢4$B2?"cÕ\€r?!‰‡y·ÒÞ? ìQ(.`O? fã—°?ÆÝ­{\?¿B9!$?ÎKÛ2‹?Í…e±?ž0”eÙ ?kÀ$¾Š¡?e*qå…÷?p6’&9'?| %!?†w‡±ÿœ?–[q(E?°áXvPò?ÒïRW50?ízÊ©®r?ì±#£“l?À®Z‰ÒwnxˆÖ?½éÙd?ÓàSgÉ? H-«q›? ™l¬úâ? ØÚßí›?!'Îþt?!kÍüJM? ж©á²Ý? cNæX~Ó?ƒš$Áê?UîOùN?>Ÿ_q?N.ØÏx9?[G±.™\?±œ6Mƒ?;ãÿéÀÀ?áž P‡»?7¢G?;rah’?àe$hÿ?2Ëáü?'z‹è"?«{éwU?'C`p?…Á»äz?Ѧãø?(ô ÄÎ?µt}™?‘Îl778?¼czt^?²ÜÎ?ˆ7òoæm?èâ}JzÁ?/_½×W…?ZG!YÈ?n®›¶ø&?p1‚á?fýÐô?[W±.z?¦SÍ¿l?_ͿϨš?NBsn¤?]õ~F4Š?ÆóxX?÷£GÅȘ?¡ 1¿Ò?Š/ þ˜°?›=­}xx?¬Ÿ‚ –g?‘A oo:?$[9?UrP£Ø?0F íçT?Т|á?P¶ˆº.?¶hžˆfž?ññºÚ9?éL7ªÛ?˜¾[Û ?Ë“?žsÉÅå)?e7ɉ?’bLɃœ?%C²7D?îu—Ñ?žÃ[ÁÇœ?¨(? ý)AL? ®ÖŽ? Z©(̪Œ? Fö•‚? ¡àT#ßH? ƒzN¬$? ñ˜üUåF? ã%‹tð? >ç9}‚? Þ¿ämv?šEbz?¥õð~ 8?gÖ¯NMD?ýO¦ºó?P2omKW?Æd83?8?}uÎ?f¿U~{‹?·ì—ÔeŽ?ÐÈQÑà#?§è6IK`?\§³“µ?)pþ6 ?A´ñÜJ?·)£ ç_?jòóY“ù?N.½Ì¹?„ö{š[&?w"yØ?ðDºì«Z?øÔ[Ô?AÁ^ά ?¨SMDHy?wŸO#r{?¬$¯ÿö?!yއû?«À-÷¿%?.…®°a¥?¢ä7ª &? ÁFyÆÞ?s ÄøÈ¬?Ïð$7Iã?mÌ7Á?`÷Á‚—Ó?›ºá"O}?Ú~›8²?$•ŸÆ?wÒlÓñ!?ǘhÙÑZ?F­]Ø?zç E0?"2°I¡C?:S¤€–?­Á0N2?Ïø¥tyÈ?àJé¬LÑ?é&²h\˜? Öd/,@Ø?"Ôx¶';3?$—Êå7°?%ȱ²O >?&&ä&5¸²?%¼·›äd?$LGjM?"z•°€²? ‚sÖ±ÒÖ?b™üü< ?j'ŸæÊ?/¦G<„?û{¡7%?N[ÿ‰hf?2*uûÌü?çÖ’ƒú?á? ÖÐÅØÑ?H9Þ·'?ª$çRb’?{ø(]Sü?ÁÅÖ8ß?”ˆëêÐ?abNzù?JŠ bð?+·È«”5?àýÉt'?Q4t]D?t¯ì_îc?X®Õæf?s—,ðT?Yá{‡-?=C%?‘9dÐf?Uä¶ìN5?çQþ©#Ð?l"2²/?`ðh?øzÂa§Î?"›Ü2„?|Q`ÏÑs?ö ±\?˜Vïé,Ò?’àhB¢? ™WâúuN?!á³a‡Uª?#² CÔ?%ï ?(M=ázÐ?*WÐôÓ†G?+˜¸Ìj@r?+ÂqpjBØ?*Ñ1·û²?) çnCO?&è¬ä–¡5?$×ÞÆ5¨­?#%Í­Z?!ê\ðÐ?!öS]ÿ? }€=`¿? rKê? çÖžrß?@Ò\º° ?v)^TÞ?اkŸð¸?sO@`?@¯ ¾?/ ìP?,ÝùóÃ3?-¿P¥h?4ÎWså?Lø.ž}?{4ݪœÐ?¾#{?ÚÂhé?/’f?*7üÛ¤?è¡a8Ü?qæ¾xÁ?àé0+r]?\A+?é Åvð?ô%|ç?L2:Ç?laR±6ó?Å ƒ­—?}-¦»]?zVdóÔ?ðÊñûAB?6ÝqÆ?M›Ç0R?ÉhðÇÂ?튼­ðÊ? VBÌñ‰? ¬hø(º? ÷«4ˆI?!/c´£nì?!A°&hun?!ôˆ=ª? ­¶@ó¨? æþ›h?m¶Y½£?Øn vðG?~ëþ–™,?y@ßÝ‚?À k3 ?<?1Šß?ÔòªsVI?zWc+g?"Ï4Ô6?ÊQ¶º”?nî YŒ? w*Ÿ c?VÊ9 $?ò¾1[?&|ÓºšJ?<­”×0¤?]Bdk€º?º—§25?wÌ4©?—ñ1 ?Jèç?ˆâ΂o—? @¹“ª?}ĘpçH?ÌJ?Æ?ù xnã§?tVîÃ\?XÇŠê?ö‡t¦Bñ?öùLúS? çü–1?'4ý‹‰?9Ôö£?*%ç1º?êS6Ë?~›Þ1?üãœR¸h?„ÿ13xì?3\o¡\?ù©ïü;?!ˆ§¸Fº??ýƒM*?UŒLè?W@”³;?T†Mp'~?rˆÚéD?Úeþˆa?£×¾¥Š?Ä@b-å?€3ý6¼?`4>¯5?fê•HM ?ýÅçÊ•›?qJ¤K ?™îñ­©ª?µÌ½…_Š?ˆNŸuåp?CÆww?á¾Û²&?;ârqôÅ?½2+ÔA?št›˜0~?·è‚y¡5?ñ'^—?-KvÅ{€?l>+”Ë@?ÄŠqƒA?Q…þ‘^Ž?µ 7•@?ð3¯Yp? j ¬›°?ÌX?+#?!ê•s?Û?óOqÞ?E³Ð]9?>´b—;V?ð•'(N? º8~?l‡§¯·?¨“d?ßí½õç?抶ñ³É?³ªËà?ˆ¿4)·Z?6.Q)ö$?!{jü?-©¢¡— ?=Ë鬟²?$n Øç°?ºÿ«hj?íÆÀ#9*?Äq(ÊýE?\ ‰M;Y?Ô4È›Ïø?9ëÊ6Â?{Êó?,ä?€NÿŇ~?7Þ3êD¡?µö(Í?0wµ^jç?éÛ¹0—$?Tí:äŒ?LÜNµ®?àˆä6|?Îà‰7Ò±?E_»ÆÑ? LÅïsîË? 9Z0m ? ÞÚ•3¸? , Öbw? zF>{? ÄX:ùX¶? o˜¶•o? ŒdØ0bR? ÷½HœWÀ?'¢¹–?ø¯˜°v?žOÔ½JÌ?”hÉ ?vƒ¶ ?£àÂH¹?åŽÓd¯Ê?0¸=joò?§"k=‹?q ö1v?PÙ©«  ?E·¦rW?Ø+ö¡?θç¹í?É ÖÖa0?ÖYªéß~?N½p?.óÞO#K?sk%?ùÁÅÖ ;?–V?ù²Ë?(GwÅf? ÿr@¨.?ÿ-Û¾¿@?FÅ w ‘?|°­e¢K?¨x܃¼?Õ4Ë„fz?‘§aß?_rÉ3Ñ¡?ÂÃ:CQæ?,1ôeÐ?‡˜û7ÀŽ?¯î<œ?×<ÿ7*?Õ« éÜJ?ì#±[<Ê?c=½”dÛ?ŒÓ掳á?§ ZSàý?½L­LÐò? Ê©¾?"Õ?Ä''*?$¨”!ú©?%ê¨D¸%?&V"oš?%Ôevl?$oƒ.O3?"¤f?-iôo[H?×›´Â~?µG„¬_?Q/v?P›š¥ù^?©Ã±ELÜ?Ësö¿À?$p»ó!?êx±÷®,?"³ŒŒiä?/»Éøj·?cg¬&?ì˜@uBg?Í8¶f¹:?Ú§J0 ÿ?,…]ì u?Ã]øü~?‚¤'¨>ä?:\·äc–?½i—€ˆV?øDñßZ?ùfä¾!ü?禶¿Ã?æü2=?{ T’?&ÉÕ: ¾?0Ý þõ÷?DçsT?§Õ,®Ï?2â+ ÷ê?Ћ–'”? )^f)½?©Äu)p?ã¡=|Ä?B]V\Ø¡?ÔkI5=4?ÆÏ‰µDB?_NŒá£Æ? ðXœMO„?"².0”Õ˜?$Ûôø§?'"–öKä?)ÚšhX?*ZB Ÿ~?*‘ E®* ?)¼Öö°`k?( ô×›–?&(•f?$@!Šöá?"¯GÚu›x?!‹˜ D4Ÿ? ÄÚ·ÉàB? 9¯mën?•eËIÚ?Ê?ð(Ÿ?j¶)#?ZQ` ° ?Îîç"C?m/—x,?09HåL? f©|_?ïÃÖ2\?ÜÔ¶7l?ÙI;I`¼?òhõt/†?0Æ~1>$?ŽÇݹÆW?öHLU2?Fë3’¥&?aÚé"õ?6Eñà ?ÈŸÈ?Ñ?/ã(s‰?“3*‚&°?ÍN¹Â?×yÏÀ2â?Ø R•+? ÌàupÍ?fšº§Jš?ÕäHªË?Yÿ ìÀ?÷>M¦Ò?¯R 1-Ê?zͯv˜¬?Kq×zp? ]`aš? i§¶Üþ? Å! Ç3À?!<º¸â‚?!`n9½YÐ?!~UîÀ?!\aã"@P? íα°ž·?®jÄ^Iô?Ý„{tE‚?ß­Ž?ï“/L?875Î?ɶðó¿'?û2±?©X˜éO?æ´‚F?Wýÿwå?þ>%Ž}˜?Ò™ ^°Ÿ?èֆR?µìÀ·#F?…£ë´Î?iÊOÍ-?9!‡»¶?)(ÅÉð?•ü5¬ù{?Ÿ?iQy?eC%e ?¬/¥?ºö­lÇ?|Ïi®®?ÿOQÖˆ?wWs¹|?,[†µ©?¥ãÆvª¦? ç2KG6;? ɪíÖ3î? È\› -B? wt.™•? ¶Vý]\? ²T„6? ¾aºæÕ? "Ir=T0? m_*N9? ed© ? >ˆ}§éP? v³IƘê? ääg°ÿð?Pº÷ö?R{¨Îö?5ÿu È?ÔØeŽ™?F:u{?­–ºÞ?-nìä%â?ãAŽ`M?Ú›P_§?©…wàm?|¢âB/Ö5?Egòƒ¼?•µžÕÄ’?Yq‡?ÔW©¸¥Ì?«KoŸ?~_ˆ°z?4j3‡xÆ?ʲ1˜k?\]á³Ëè?éÙÊ«ƒ?(1á"?žeón|Z?hk;Ëef?Yd–(¦?:ˆ§^Ý?؈àý0?=Àºž?ÚÅYi;(?@óXþðî?m“±4ü?–ìÉ)¹"?ì­1Oø?‡m¾p?j¸´m€°?Ž2°—Â^?æKZ¡Œ?idÛo ? ùC\$þ?Éñ;3o?‘Ïø":Ê?UÒŠœ?ýsÀ÷?gºy½Å¸?{Ù¦s?5Ö¹ÍM?¬’‘š Ü? óögï?S…ÙsD?”ÁÖ7¼á?ªt˜÷s?zâ "¯? áz"¬–?‘ |˜RI?Ÿ]=”Î? ¤ ¹}9? tA,]èó? › uÿ¹v? ñðØoKr? Sü°?  O€V b? ñÆÏ$¬€? Fjh^Î? ä«ß’g¤? ï›ÿåg? lQà?’? NlSoËþ? }`=e‰&?ÎP¥ŸÖh?Üånú?p;0º@T?¡ÙIŸ¶j?œâ3ј?|A9¬,?`É¡›i«?UÌPr„–?=Aû¿Ä?*ôë1h?è†Ý?øüXÃÊz?1ÇÊ”»Î?hs!Z®?hNu¢ãè? m4 2’?Wu÷‚Ýc?k÷••¹×?‡TR»ß?åwåMDÝ?«ø¸å ?Ú„af_n?W1Ûj~}?ó¿bÍö˜?ƒÍX)T?èìf²©¥?£æŽx?$K9?ýqå),?êAø§k?ü+”fŽV?H2öåkø?Îi¹½¹?y[pTqg?%FìwÖä?®Dø/ž?þr©Ýhå?í°¨?.À†N??Ð2[?n>C1ÒJ?YØí+„—? ôôBV?”Éï¸ï?Æ žuÖ?!{êi’?"±²g?+i?#Ó“Á.¨?$Gž!ë=Ü?#ôÎm•6?"ì-µxr|?!b¸e¾»?>˜;µÆ?Ê%HÈ©:?Åä¤×ú?V.D?~?uÄÁn6?qœfïÖ?Úi#b"ø?íîÄ^??ƒˆ@¶?ÄsB‘’ä?Ä|¼Í à?={tÜy-?á;joh?±é¿´C}?”Ù î?p„ú ð?2élÈÃ?ƾX?«?!bf ¦?w.t?¼ ËÇ”#?ì³_ú?` öñðØ?¯ê•E?8Õpcw?2Ðuè?T\Ö ¡`?à/Âñ?¡ô âN ?}1é6??XfˆmÛ?y•}²?ľF® Ñ?@-‰$u°?8 ÒI”?»JszhB?ÐŽ@•?å ž¿.? XIªê?J°ù~?˜ÆÊŠ?æØ œ ·?&•Y Â?TÑ ˆ@?w>â+ÙÖ?•…ƒ}@?´,c²bÍ?×Z›4&ö?¶àôÐ?X]åU§?Ó*¯¬?sËkÛ'ò?|^&í?˜Jsõ?ÆN¼«ÿ ?Ÿl`ìˆ?C ö5aM?äl@¬ªs?­ &uâÀ?©æ`6?ÁÀKT“)?Íö ?«Áéºü?Oô:¹û?Éç\æ?8ÌWöî?»Cè#­?eMN°åÝ?=Ž=ÑT?JFXÚ†?œ¯ÅT¢?VîFl[™?¥ËfD±V?¯lv'5È? =±l°Cç?!î‚ÐØ¦5?#µ{­Žn?%G’ßz?&USú‰g?&¬7NÙa¤?&F‰«©t{?%P¤ì ?$®ƒÐpÂ?"Ü&Ýá‘?!×½²|?!ßslNR? ˆ*ÝD–?  ²’?Šþ‰ß?ð¤5hM9?YäSëPy?Îׄ[¬?S_ ÀRˆ?ç#U¡úæ?…ÆŸÅ3œ?*±ì»?ÓX¦7A ?Š~²fâ?`¬™^Â?ezF‘>?¡û•K?Êã=j?}ü  ã?Ü}ÜrÈ?C“]95?î¾ƾö?œê ÁÁÂ?'µÎ"Œ?«.•ô’?G·6 »?ÿ‰v·n?%ËŒÍ?z˜ßQ‡,? >ÉGæ™?É\ó}2?›¦”Ý„ ?lU2B€ ?)óã5¶?Ê)’t? (9ÄòöŽ? dËÛJÁ*? ¤õ’+W? ì>;êâ?!9%¶Ê0O?!ypÔÿJ?!-|%²Â?!e‡Éø? î@æe«? 9ŸTãí¼?ÎÀF‚${?5¬Û:V?Õ÷·²˜?·ÒS¾[?ÄZ¹šhÕ?äCIY%? »Û€ˆ´?=H~UB?ˆÁF³8?ô˜¼à&w?{Ð4à?½È?:l?ƒ4lµ$?ÓÈ~0‡?öXU]i^?}ur®ª?#”sÚÔ?”CŠZ?lq¸“d?½Z¡¢u?lÕ³…Á?S¸>sÌ ?G2ŒHd}? v†K÷ë?Àƒ`sµ?¬ «“¸?¯«îj?éÔ#:?±^Ÿò'?Ÿ€@êœÚ?ϯÁxa??eÅ(W?Ðq#Õ¡?Wý\×ø ?°ªÏQLX?ÆÌØ/-¸?›ÚüxT^?C'FaL?ØòðòìÚ?x•Þ…Î?0>’îôI?±4Êe×?áAÛ>ý?ûÉ[Õ’?©q×2¼n?¢R3OŒ.?ÆI™‚6?%º5€Ÿ±l,3?Êù€Ê…?³/ij?Z¥Ó·¶?ÖœÉ7ª?@‡ÄÊk?²¦Â%?B¼=yb?øô!b¨§?ÌÜì.¥­?¤ÉÖ“(?b=A (?ò&~L6ê?[ Ê™?ÀÃì)Ü?TXØNZ?CvM*t¬?WE¢9?O^ÏÖ" ?.úå'Óž? ”´P ?±ã«V½?úc5Ç?ôF.וQ?‚Ó§.ô?ÎÂÕþºÅ? Ý¿½Š~?oñ38nÂ?Ï&†¬È?ÒSuѧ?kŽ`S²?ôŠ‚U8?ŸHâ{¬­?T£~ª<µ?mBüYè?«Àý÷d?Cøœv’?Àltùeà?ЂL¯B?÷‘_ò;š?Œ¢ãÒò?Ù{ÒJÞ?H¸Ñ?2_ÿ„в?aB•Æß ?yVGËZ>?]¦¥3? Ídr£?['G28? šG¨? ©·&™Ä1? YÌÏÓÈ]? Úº £ß'? £xµíX? 1÷©#nÕ? HÈû%pà? ý—ÿ»(Ê? –Y¢«²°? Vû;ÔÀè? e}¿¨D? Ê=Û$ïæ? ~ªÛ³Y?m‰µ1?kÒ¥+ðZ?q‹.(ü?QðPÀE?>Æ|ïä?èÉ€ª¸÷?1˜€ï'm?¶®éž°?Á€R-z©?5¡öM(Ž?ô/H™?»¦yÉÝ'?N¨76&?—’ͱ?Ñ?ˆ]E?UTοÝ6?9ÅÜhããïô?¤? ^õ?¬<]F\?´‹ Ï>›?ùÁ©°œ´?¢µP ½B?´öI†¥?ÃIm¯y?—9µ±x¥? ÷Ä F?L„™×¯ ?Sj€ÖXú?*,¸2?î?4§"?ÆW#ìkN?Õø+iò‰?1&vÒº¨?ÒÞ1ÑÊê?‚ÁƒQi?e3øé`ÿ?î'ë‚s?ZÚ«PL?sq}}¥?g¬½éø3?dU w¯? µ5ƒÉÑ?V¦:‡6Þ?±Ÿéký‰?¾Ž&‡²?\šˆB?Æ?:JÍ¢a? ñ †ˆ¼\?!ëLoLÓ?"Z&3’ö?"',§Hà«?!]mÜp? "Í(47?]7~;|?k–ä]´¶?À$@òž?„Í9S\?½ÿæ{ù?[q™B'ð?L4] ÷?†¢KJ J? (çz5?ç(–$ÖÒ?6P‰¨OV?ÍžvÑ5\?žy)x?…“ÀÉô3?añòQt?UcÆC1?¢”œ¨ì?í®ŒKMJ?ôBا›?±…ÑÍú?'7TÙ?i!”<+,?™¤õF[Ô?å|ö©Ø?uØè’íN?cM²PQ˜?®ø9hËf?FÕžiè?óK²Â?êí9HÖ¬?Ä3"Mû?ФNŸ°?4)’ëìX?»oxÅû?‰“[¬?dü|Üp?œ„YÓד?×Þ ¬g²?%‹]˜ðÑ?†3@‚‹?ì¿adÎG?D˜7Emž?W9tÓ?¤¨”,Sñ?º^gJ?ÏNñ~gF?èmÝ é¯?` ÆI?1QûSW?ro‰d_?Õý`VÇ?Wó¶ñ´?Üݰ¿·z?< ×—šì?W5ìÿƒ:?.œ„¦ìâ?ãVÒÂ?.?¤=@¢vâ?’¤I-ÃI?°¢¹–g%?âž‹€?ý“íßìa?àÝ©=ï?€n2å?çô²KH?5Àò.†Î?‰šQXl?ü!(!Y‘?œX˜Èó?uŸ,MM®?˜±eà¡÷?¸_X†:?)«EÜíþ?ÎÑõ;.? 幺öÖ? ``ihs?!Íb¬ÜaÞ?#„BÜõë?$3ó¯j?$l8‹C%ú?$KXÁÆ?#¼åIXª?"ô5!™?"%åvr?!u2èÛh? í'L? ‡#8jï? 6G½O¿?ÞP ÐÒN?W]ä[½8?ÓòØ´?TЦ¬Ø?Ú<¦U?cöÛßÝ’?ï|!P£Q?{°Ë-EÈ? Çx(;f?¯œ™ãÍ?t7à8ý?l?óòa)?™÷óò??íñÖ#ò+?IûÖ¹æ?l18©?¢‚jt ?…|jšœ?BQ¶¬æ—?í£Iƒk?žr#O7í?jã×§S?g®uŽ„s?¥¸ü`*Ñ?-$H=?%?øE¿ò B?ñ l¯g?ôdö€(X?ÛÛVÕ£D? Ejî8…Z? |9YQð? ™J×®U²? «°—–? ÃÒ!t ? êáV´ž=?!n¶º–?!Cì‡J¥?!FÓõ˜?!3©—¶? ”»9 ‡â?ÔÖS{6?Z¥ÒÄÜ?õ\›£ø?Ã’Ýas…?ÀÌ……?Ïž*öÓ?Ù"O>«•?ÖØÈEF?×öЪ?óHydžÓ?6øh%ìÁ?ŸOä÷;q?bÅ Îê´²?«|B??J®qš”? úW"à?è%0»Z?lÊêÏÖÚ?üœãG?•HÏ1½à? Ôïþ4?BT'ÙaM?1™uªŽ?娵 ô,?{$ÅaÔÄ?ê‹ðKè?ºcÅv‹?4«¥Ž?\ÃƒÛÆ÷?@ÕáC¤?$FPJü?qÅlb?t}òÙ?6Ãæ5Šf?€öuãÚ¾?ß2›0ô¶?6o­‡Ä?lÂU2;?s;7r?Iâ’†Nò?ûá{šÃš?™/J/TÀ?3âspm?ÙFm<)®?—6UqÊ?o„’ñðÖ?UR¤ ?0q4ÊÚ?èaˆ 2_?p”{k@?Ô÷HÞ”?:ƒßÃÎæ?Ñ¥¨è)µ?Àb¼Cš?BÚ™9”?¯ÿÉ-/š?u»¨nâ?7µáÏ‚?Ðâ†ÂÇÈ?#µY¢‹3?‚²déü?¹if¥?0»ÏN?E€vVª®?7sáÔ·®?2^×[c?Dà)‚q©?\-Uâc©?XþnqÚ?/ÿ°ÀP>? û‡…ÿ|? þ"¸kV´? ã…ò |? à@½‚#? ¿äÇ™sX? þgšÎx?h÷x3?¤q0¸R¬?ºL«ès°?ˆýVdõ-?OëŽWË’?8¥#–©?T3û #,?¡àåà?ï?z¤Z?€-aVŒ?³ò}Ÿ‚ö?vF´§?²PŸØ0? ]Æb+1? f©žØâ~? ­— ìö0?¥hMÔÓ?,êTK?Þz9ƒ&?©½SnÍW?@t;D“â?„®AX²?€Í (?_`7†–?Q1ªþÔ?rØ'Ú½¼?¼{c…?³èœòÍ?® DHr?ÄtÓËK? ª‘æÍë?ƒnÙj?kàÀ‰\?@ɪ;K5?Ì0¢Q02?¹’St’?ïóÂ?B67õ ?‚ø.¤ ?’ýFsÛU?jÿ2½ ö?Ïzþ?Ç«&ªÚ^?—‹®Œû¿?­Ï·›M?KCäi?Ñ÷3C*?±Hˆy?‡jm0þ??*9_šmq?„)v{ä}?š[ƒŠ?ˆ>¶¥Â?w}Ú«N7?—˜Ž¡?†eÁÖZ?EÒ ß?¥‡Ê9¹§?ªî²j+?çÃâJ&R?õË-™^?¡Ht²ä)? 7¼E2¬¦? $ô;ò@?: ѧ‚&?q·— €J?9ãcÊlÐ?ß)&›i—?¡4Áè.,?ª¥:þ? ¤[3?ÊÐx.>Ü?àá>Ø?Iì¡r5? #ª‘?+IîKÛY?¥5išøÝ?iN˜?W±à®?HA¾Ý´F?Ïü­ØH?§‘¹î?ñÞ9rþ?ó~"éFÛ?²2R´-U?1ÿ!k¿%?{Æÿ>´?¢ê½î"ü?ȉ¼xÙù?KÆ µ?±v4Gû?­ÅGGrË?L¿˜pß?¨Sî …?rÞl|“:?L‚’¤ü?!ὋjR?ç[Ö&?•§Ùܨ?*B)¿ú?¥3Í9ì? O®d ?lM-?Õ»T?Pðã3?Û}$0dr?a©æJ'‘?ÌhC«vž?<–¯Ùp?*´ÞMÒ??1P½&lÎ?1çÞö‹÷?4ah3?:†l­h?Gð_Tæ³?f†Ì_<3? §‹ÎJ€?ôÁäï ?N=ŒVÞ8?Žšáüƒœ?¡ØÌú×.?Ž`@-Ë?sÝ>׸4?x U~rÃ?®£ÉØâ)? è?­wø?nØ9s$?¨¢Óºdã?™/| T¾?5ØŽ<Þ?‹rKÆ(?¸-np?Þ-8jXå?A™½»å?ƒø„›ô?&ÎøøŠ,?¡ÐºÀ0?Yè.‡‰D?ψǡ¶?@Q<1r?æ†ÝO ?æaóU!? Ê#ᘟ?!é;™1Ù?ŸÞSÚŸ?š•ÞÓ¤?ÈH8\Ù_?9ˆ­ú‹?ûIH?ªQ? ‹ÿºŽ2?GÐ9wf? BswF ? Ã-‚M?!”è^Â5?!+þu= ä?!B]:? û\®~–Æ? áJ> »ð? Úá> A? ã©þýºÍ? çû‡cf©? ΢1;0®? …ê(™à ? TS9¼\?ì*ˆÝæ?³q{%à?™,’û# ?©Øºý¯«?Ò7€´ƒ?ñm¨dP?ð…åš?ÎòÔÀA¾?¥åÀN?“öå4^?¬ÿiR^ë?ïý]ù&?JÉ«A‰^?¦÷ÕÇÙê?ø±Ul?Ha®•d?±!µ#)]?W´¤@Ò?WŸ€Áàr?½ã.`9?ýùCåÙ?„‡ê_??«Ãñ?-?Ôþ›Õ¬?ÞéI6hK?§È)Þ?› ßö? Tï ?ªÆ…ciÅ?™ù®,›?žÊzhò?eá„ M?‡æ/²$ó?öf¯:?ˆ@‘Y²? †Óá¢?\(h?dƒ8]ž?+A´k'?ÇÓ…mŒó?YŠè¬?úûd˜N¿?·üFe½P?Œ§Õ™a~?kó¨ {Ò?JR˜ý:Ó?%égÿÀ ?¹©ÖJ?÷£¤c¼Ò?ý„¦¾W–?3ËRä?&âs#í?+ŒæNŽZ?yˆ&g[?çìš®J?§8ïoˆ?_„Œ ™Ë?ñjNÐ?ß— ÅsX?¶LÌpbë?1 ž…?‰îé­=?j]êMö^?,ÂW<Ò¼?ÊàÇ¿ºi?R<¥¨!P?ã\ L*?¤óñ›S¢?±j:‰K¤? F‘°@?˜ÒkÁå?;p{GŠ?ÒCÁ‡e ?DscB?{_n>Ò?eVb% ¦?ûVÚþ¼?M+ï/ÿT?‡æ@´zª?çoÐ á?£M Ý[å?Ú¨=)‡?Š;ØÇQ,?ŽÙšqý?²Â g'š?Âé•~iœ?¢S›LÏ?Nðj’=?Ðæ©êò?'+Þ¡WÌ?8èDüK2?ä¡@i¤?)Ë4ç?öÑGY?«gRÛÞ?r=´Ãn´?fÑízÉR?~2Öñ{h?˜ŸZþ?>jQ¢gd? D¬¥×ìo? ¥òAèCZ? ×xFê«? P18k? AÌÈÔ? ÝÜp¾=V?\޶°â–?-i «c?`€Á·;?Y¶¬Þž5?4Õ~Zç;?ÓÿªÎ'?½g÷¼p?yŒ #ˆl?; Ù[ê?æaÓ 7o?OÓ´? N»·£b? ÝU)ß? -pd ö’?¥›Âò¤¸?º½w)g¾?‘@úê­©?(«SÌ5?¿%hàÞä?€ÝQæñø?º\?Oož…n?O,fÕIq?8£¬‘m?:áŸÊÜ?p<æèè?ÏmþåpÚ?.r¢m ?U¾Æ¦L‰?àÇ?1£?uó¤Ïâ·?…õ­~+?ƒ©ê?§(k‡ýç?F ³ø?Üð+¤‹Ò?ÝÀ.—Ä?òZg3#?ó6¹ÖÚ0?ÈÅ‹4̯?rßO‹à™?1« O£?Ru'Út&?þ5 îM?Jvc [^?$Mmš›Þ?ëf!wÔ?Ò òÚ*Õ?¨6LY"?DÉ’ó‡?•–½VØs?¢`VZï?†„+€}6?g›jAÌ¡?m 84Ýv?ºØ›F©Ì?könûL?Š&PS/?œ¯/Sy?²àñƒp?PCÌRñx?™¢Tç¢Þ?VÜ9§ñv?j>¶ H?Ób»p›c?ª¥§]~E?ÇÃKÕ©?N¢&Ÿ•†?}Qi±¥?ÏÍI¬& ?e8›eä?Nðíb?”I[Í¿t?5®(ñûä?1ÛãoE¯?…W“Õ?&¤+¹z~?ö;r‰?únô¬V?ãàþRE?šMùÆÝ?Ñï˜hh?rËšT?ÞÝcŠÜ?cÛhˆ]B?³ÿ³ªµl?Ü[oòjå?ð·QêŠÅ?K±¨?a²Iõî¼?yöʨ¹?At?pƒY•Ú?è[Âß?¡ã2QT,?ýgéšÕ?4#÷‡Ë[?2 Y(Ñ?þ@Z¯?·)÷Ù^?€î‹ D©?r¼9…•?Ž\…Ÿ³?ÄÆ±Q1Ã? À¥¿B?U D è2?¾²XÓ*0?ap'vuÂ?Y+ÆK“?²È_”9¨?gAã,/Û?`XkLî?€¤.¯Õí?®æ(Ò—d?Ôåá=eî?ÛÖt23?¦ðÕÎŇ?'}õ7Ø?b°i¬?£%è\Îó?ë¶¹¿ˆ~?+Ù±íbg?£1¿—V¤?yÝÀáý?¯?£w?%YJYŸb?©žô¶ÅÎ? |ÿÙ|Ž?00bF—œ?ë4ÝÉA?¼³‘ð?S±‡rx?ð΄X?£`{œ@?kW¦Å0˜?=±û#Û? ŒlÆé?Ô‹’¶Õ?•ŠO,MÎ?Y»-9<ñ?*C*´½O? {@Š=?ö”¡:}?ä š·eœ?ˉÃá}D?¨¤ PŒÈ?|pƒS?JÆj÷î?òá;Ç?쀷Q‚[?É÷¿?±îÛzUh?Ÿ+<"7ì?‡‹á:ú?a½ü1Ïí?,WÆZ?ó–¹(ô?Î.>È?Ô¬}[-?-+¼?y6”?õí"f”À?kþ)…Q?ȲžÈŠ?]JT›l? |%m?Öª­ì[?Y›*݈S?UtÊ5Þ?ȤK%?¯x„‚ë?ÈÚ å/~?·°° ô?Éô?Êöæ?öÄäM‰?MUUx?’­Ö[?¡,!×U‘?sñýа?²2è4Ì?r»ÃBRx?Å^Ì|ü?óˆtn?) Û[rn?Õ-¾VøR?Y¡óÁ?÷¬ÚÕ‹?×oÂÊ=,?ôÒÎý" ?/hxC…t?Òc½a? EÈßÓ¥Ê?  ØìÓŠ? pºÈŠ(Y? Ö3‡ssÕ? !äLJ?é®ý2ÚT?Rþ¶4 >?óçV­?AñF¾ö?BõîI? AÒÖ?·H¥¶`?O‚IŒrb?¸êŸ—Ÿh?ºº«X5I? “ƒ[h‚? 'ÍPè0 ? c= Ð{l?P•x‰ä ?+ßÿÐ ?ZÄ[ïî?Mó‚Þ´á?šÜ‘sÛÆ?„dÙÖwB?U©=ƒM ?ìI1Òty?0rN½š\?߃·^F?¸¦ÀBHä?\ˆÿ¢?K¶ “9+?aÅBƒ*µ?mÍÔ%¾×?Œøº€/1?Æ*i¦D?SJW:~?8àN%Ï?’R×¥„?¡ª“ —€?ažU Ê?&ª¦£2?åé gç?š–QÕ?EÉÈæ,!?ë{{—Z?Œ¢Åj©2?.5Aðnr?ׄ 6R£?‘®cLh?I¾$?êe¢ÈZÞ?­ÑÆkxÙ?lŽ\ÕÞ?,nU¨À?ö·€Wv?Òz™S( ?ÄU8:b?ÇlIÁ£?ÓÀ$Nq¢?ì{©=s?!Dfï ´?‰Ÿé(—Š?4+äFO¤?UnW¼?ñD¨Aô?çÓ?y„f?q‹õÒ‰œ?c®šõ·â? K¸¶È?gë! ½0? ~;3?:³òÞ&?Å`/ÙF? ÅîM9?!ž€™z?"=µÕ£ü?"…G !?"pˆIµ?"ŒyÇCL?!˜” MD?!0¬ƒ}„? ºÝp«f? ißNŒ[,? ’ÑŒ£?ŽQ1P¹>?ĽW%Ö?íhÓÕþ?(ýÝ{g?ŽòçÀZ? ›°?Âzq@×Ä?Mp¥Ðš‘?œ9‘?Ÿ)'Mç ?c‘¿_VÑ? a°]EÓ?¼:qc?ݧ'›S?ƒõW¼^?•õËÂl¦?¾³„é?˜‹]?Î40J?kžà£y?³;ƾ'î?_ jc?UÂRŒö?qµ:ͼ~?•ݨ¡»?®áÈ S„?´JYœ³ô?–œÑ Ô?WÊ/HË?Ä ÛëRQ?ÄàspÐ?M½þçh?yÿúv?‚{Ó ¼§?­µtYþ ó¶Qo?ªo¡/tÎ?—§—?­~­hÆ?M#!oîm?ºžÄÝÅ?ã&7iÿ?Ø[Îú ^?Ãòù/´¨?ÑX¾ö?Ú£$‚Ù?Œ#ÿ¥½n? sžÎ?\¼‹-¨?Vÿ¬W?æ?ê)ã&æÂ?*q9±?Dî>9“¶?ið‡*ª?µZèR÷Ô?.ì²=Ò?Å*Àë$?_\lÝ‚÷?Ö”üÒ?É>ëÅŽ? ²ÕJ˜v? ÁëTÆ#ú? 1´e+ïý? 1§úó`? ØßÍjª?EˆqC ?ÀÛeÑ ?»K?»b?rò¹Œm?çw[å²;?I_?ùõš9—j?¿íÀt)°?€´‰ù–ï?XL'ÀaW?]Ù—ðìB?¡ áµr?(¤0­?é’íoXB?Ìp~(È?±²mÑé ?{y¼TH‰?Ôjšã?kÞ7:r•?w†Wý7h?+¸m¡N?ƒu¦%Á?‰P w ?[ºGL ?+èí ¹“?-­¸ÔÇÄ?‰Pl&(ð?PBVˆ  ?{™Û¥÷Ò?ôä¨5? ÷sÌ­R?iRèªØ?;åÁµ ?Ø÷ ˜?¯tò?LØ ??"úÆÜñ? ?£Èç?oY´Ã?Þ]äÈÛ?¼I—®?Ž$|ˆ¦?+N›c®\?Q;n#°ò?[ÖÂVÂÉ?º~yØS-?Ó»«=ö?ôêéi™?^‹^ã¥V?1–––?Ànè‘°Å?j R/? ]¢|ÁV?¦½hS>?E>½æ¦?é³LçÔM?—¶Ö†Â?T]¢Sÿ"?%àh¤ú? Â+Q2Œ?¨¶˜g>º?!eGÏ´|„?!y+ñŒ¤?!xǺ¹¬?!_c'Áº?!*çF¹? Ùõ~ë«? u »“—[? á›õ?3ŒŒ;<ƒ?|“ Ÿ?û;ªó¦?½}Bh[?Á¿…yƒ?õØ`1Ë”?6ïø›?\Ç`l 3?J$jrÙ½?úÎÉ4?ƒÏxY c?É¢ëÙ?›®Í”¬?RIo¨g¯?-òІ?88Ö«êÔ?‰‘ð€Û¦?D$¥NK?€¤Rée*? IKË?!ME?"Ô[«=l?"®.÷¼x?"öš1"ÿX?"ØÛ §¼?"k³·oå–?!Ùaæ–M?!E9j›î? ÂðU×? OÛ­7‹¥?ÈSÆ7Ú?í¨ÒÎ"²?q§‹™?P‹Éh±É?¾Ê½§‚˜?h!·g¤Ö?<Æ\Ç?‚V {à?Àp…¾@ä? C>Àåª?)TŸÇ'?ìì.vg?çgÀÚƒ?/뇽§-?é…Á}_?¾û¹Ò«?°–Š,¯?Ä:üX{?Á$ÖÂ?´jàxì¾?Ë©S}ë?Zå(î?G`Å÷kv?gði^Ø?òEíx?™Ú™¸—ö?¹{–B?KpWs?ýì_vŒò?’/º–Pp?íÏ[ù=Ô?íJŸ$õþ?yb£QnM?›eYûeB?‚è½ ¼6?vñ~J£”?¹÷‹ƒ‡?oÖ‹#½?’¯¦ÖJÞ?ú¸D²ï??q9H®çR?ƇŸÖ?»QѶv¾?Ñ2\ =? ý*KzÏ? ŠÎ¥Áv? Â4âàľ?´ú$%÷?œ³3ià?ÝÝ¡±?|žRFs4?Ì:<ÄŽ?¿¨ví¡?Zú(µDy?°Pœ“U?¤ðÕH? £Ú_â? qAa„ã~? ˜göH?†>ü Ê?ÒJÏ6é¿?löfA»>ý±NnÕÈ>ùî5b?8>öé{ íRÏ?Ø&¦œs(?6ÖPá¡—?Ív,_O?`}ܵÝ#?¿Ëß =X?Øü|Åô“?½ò-ü²l?˜QÐSÔ?”P®¼Ó?Ê{x=¸?7.^¡–¬?¸f¸J?| =@’?2bi’s)?ç¯Ö²ÿÙ?GdÙxO¢?vÕqïN}? Üã¡“?âxm^„X?Bºn{»i?¶à Á†?.”}|§??Ó›Oq\?Æú$w? /x¬7J? 3+‹°? Ë~7׊? ôƱƒÕ´? ¼ |ÓÜ;? ÑÑWêH?­w·Â±Ù?¥*Éh[V?Gëå ú?£UŽø-?²¿†±K7?†R:%á?9ÀóÖ?èo.³?¬;ñåñ?™En9~Ú?½ 3š?‰9®­°?¨ 5/?PúÐÛj¢?ý¼ÿÂ?›×a*ÇL? m Íâ?‚~1ÇH?³¼ö=þi?ŸR„r€w?3vO•¯?pœÔþÇ?s5™_C(?pŒ¹×9?¥L¢|ÉŒ?@Kð«v?RŠYçi+?ÌC¦è*?ˆÂUòá?_#ØÈ&?1£·ûóÞ?ðGÑ`/ ?’2ŒJ)? ÀXÅ®ä?P’޳b?Oˆ™žh?¼‰ß­?|ç§WF?ÆàÜÌéô?ô½~ËÖþ? ®OÖ?3O3Á?gÔݧ¬?›³b©?ú¾!þØE?ƒÝ#n—?¢ÖÊWƒ?TY†¿êÇ?îSÉ,#?ˆô“Ë™~?Q5¿HqG4°?€Ém”?¦sAy"?9!_?µ>?Êîá¨ÈH?d_* ? DS‘+?¼Òqþú?–hç9?úM’‰?ÂyÒ?9Ò¶PŒ?áf!ˆ?ÛQ ??Iû7îQ§?0Î Rh?‚¤9ÚÌÎ?$± ýT‡?Q•Ü?زRNÍ?\*÷ÊFž?mc¡eÒ ?]‹Q5|9?I$ý^?C^n µ"?X7 e?IîI¦?óDmþç.?†{QóõX?L‚yô»Æ?GÏ8î…?€›È@ð^?e¡A?ï %E¾??Ò Nû?æfƒ|^?¸Øý~F?}PrºÖ? ‚QÞZµ„?!×ê—\?!fŸj•?!ßY¯kˆ'?"±£æ¿?"6G¡ ?"6« †UY?"íµéñ¬?!ÏZëáè?!iǤóñ„? í¿Xcˆª? i¨ÊÎb?Üš››Ì?‰-f€?œš2ÍÃ?w,.^óE? Z¹h ®?ü_¹m?^‚g›æ?•ÕJ‰5?™‡@í~?[òwÃ8?„|`vï­?ØÁB™’?:~4“\?»·»u!ü?gKU!í?Mȵ'h|?&‰Ã[ª?I±ÈÑ?–fÉ*? 2I¬ZË?!9+)lš£?"-§/—S?"ܨؔÀ,?#%ÛÀšl?#"ç¯iÓ?"šÖÑŽÀ?"5 «?!j*æãuÊ? Ú<$õ4S? Vi’)ƒÌ?±!ÞŒž?¼ü™?‡?Þœú]?.dtax?ÂA+¼/?˜6dÖ?“Ɇ}^?†güCU?AiOâm?¦²[.l?²< ïà?wÏ6Ã{I?7ýå³?²\f@“’?Y8H}O?!sº0¿?í­‘avê?õ9J˜X?KƒI?B_ìô?_ KÖ/?&g\—ûÒ?>¦–‹‘Î?oH¬È °?„°8Æ?aí²jOÎ?A—o ”?„Y°Ãh¼?ð” Ùq?O€\˜WÂ?ˆAÖm?†‘n°®?Éæf4?E¨ó§÷@?)Ÿ(¤ÕÕ?7ŠGIt?#½ðò²ˆ?¬þÄ[á?©!f}ýâ?ùL%²ú?iÇòìæQ?È)×ùé?ôz²æ»w?ç3k&1?¬ú¹Êö$?Zn2O .?ÿó×Îë?¤5ŸÜwØ?Dœ¶V’Ž?Ú (“`?_Nü5ñï?Õ°£±?FO¢°?Ç»&ßÖ®?pÜs:-?Qj–mT?fY+\À ?Iý´?Ú™.´?öCµb]?O,@²?Î]‡ ¬?ò¸¼FÀ?á`Í·°u?â÷ú·ž?M¼Í’•?FE,.‹X?²)F$ëE?DÚÙô7?÷ªÌÓ}?½£—_˜?¯ßËåí?'e'>¤»?ŸTC’P?¨˜'ÿ°¨?né55?øFXÍ}?gÝè,ç?Õé›??J0ãgȯ?¶Ühîø? æã,¢Ô?Fl qòÎ?…~Û‹H1?ôWrKƒ?¯†‡toò?;"Km,?)¸ËFÕ?[Òc78Ê?Áþ¿dbá?#Ép-4”?`Ýtl‰q?_-zjF—?eY»Ãš?+¨¡Èu0?Å¡ÙK”Í?Ö)`v?…g÷2QH?^…qi¤?Énoœ#5?ÌÙ}ØÙF1À?)—´Yˆ?eÀ|ˆ`?æÕƒ•N?KX60Ô?Äò•Åã? “õQñh? mðŠ€?ZçñÒÚH?§¢˜»ÞV?ëoÔ·Ÿî>üzß[éŒ@>÷£Ä9¦¹>óæÜO°¢ù>ñÙnÒ.,L?Åt'Zå?f =±\a?ûµd5¤?‹8Û$?ã. )[?î„€•r?½™ aat?zWø©M?T<€òÓY?kPÿª??ÃL>-î?A+ðú"?´8âäØ$?ê9h‹?ÄÕ8Í›?DLVïÜ?‡ént?·ïš/Bú?óV?Ù ü?FÇ›÷N?®c²\Ê? ±p7#??-Æáà?%Bè£? ;à¬k‘‚? ‘yÒF'? J…[B‚œ? †´™ úÚ? RÔµ©¯ ?›Ì–lú.?x\¢•&?Ó9N·Ìc?`Ë0äü?£<1J ½?˜ÓS“Ó?T¨—“oM?ó6êfáW?䬀7}?Dã {Y? ûJP¨?0¦¬Ix®?u2ÍÒ÷?ãÌf–¬h?h¿Šœ?ð‡ÂÛë?oCëö?â WˆŽ?Cf1NÙý?„^WlÙ?Š{û?<·ÄÈ^?–ÍÞjÌm?µ¨ ˆwÚ?Óÿ¾ÿÓ?5u!hª£? °'0ˇ?gßÒ#Ö?-hþÔl?*Á¯UñE?*Z†cÎ’?¿àA¿J?´Ð…yh?1âÝiü?€ß¡óOn?`' ÊjX?¡n~e?.ËUP¢Û?è{<Þ?‡Ÿ]?KsSx?iW$&?K@ØÒΑ?ÑÌ>ƒô?ì*Ì? kPðÜ?Ln rc?&íš[b–?0`f´Çõ?3w§ñ›k??zÙõJä?^‘žQyõ?™<ž²M?÷t Ç¥?~(hnå`?3CK?Ðe"4?HmE‘=6?Ì?E+Ÿ?¿È2$?-”Kd¿„?(œ¨[?VÌ™>0? y¶ºà? ÿ§Úv§?!¾‚ÞÓŸ,?"O¼Qb?"¸×¶N[$?"þ/ÆÅl?#Äùçº?#?KiYê?"á²íiîà?"‚ð§G?"u@Y?!l§‹Ùª? ÔlA%X? LïŽÇï?ÉZÛ@6?UW«ž?D•‹%þ³?Œ™W“Œ? IuäÛ0? DÆB9+¡? i*ˆsë•? _¯D>¾+? %zÈ ?rË¿d?®oä’k¬?Óe1  ¸?wƒv€?äØN²?UXáDcÓ?‡ØóE/?FÉØ»?…†ey? 8MîÓ?!<' LÆ?"(œÇ@cÂ?"ÎùôÓõD?#ß—}Á?"ù¾í>ú?"–s&ê°?"Î๰?!~±œw3µ? ô8Âø–’? pƒ¸•al?àÀh‹¤Œ?ëcÓ5¶?ðãä?r߯tKd?ŠE¼‚à?›NIƒ?úV‘ÿú?÷µ—ò“?«r*Ù? Ô¶Ä:?±¼Â6 ?Ùm Œ?|Á8õ ?£‚MÑó?­j³‡-ã?U¬u=k@?’]Wù?"¯W’U±?‹:ˆq°?w¡¿Þ‰ã?ð¦à™ô:?Ý›CÄ?žGxk?1P•q )?#¼’+ ±?ÈQ… $h?&©‡ÿÅØ?Z‡é;)†?‘•Þ”?§”Å?Á½èEæ?°Éª“?P%ÓŽ$i?”hä‡f©?‘¹#®¾?|qQ™=?“úZ:U? ÅŒ*\?æ„p3?Åòs¼?ueÞr^?È‘u'uv?óXý{Z?êšw)Ò?·Ž<­6?lB“~|Ú?¿´{þ?À,>óá?bâƒÄ4?øÍ~I?|>Ц¦?íá&GEý?Y…h)­ƒ?¬ØdVA ?”69K?Ö™9ø?+3ðÍ] ?щ ÓPx?BâÙÐLØ?‡"i™?¨ÍÙÔ96?®·¬]?«?:xä?´6H¬ï?Û6‘Y·ö?,þç¬ê?¯ZŠM&ˆ?aèÞàRY?==ÿÇX?2D‰Ê?EÓ?o$ ÊòÈ?§5QÊ?â®Ð ?KûFëŸ?—ßÖ:èý?И€íx?Ôë®lû¯?ƒXøŽº|?½–à8Ü?pŒÁw¼¤?¦]ê_ö7?„DÇœè?De8*¸? ¢·üVó?=þÅòy? ›Äòt¤?0>T‰ùý=VŸ±~`>øk*Щ‘†>ô#–û{X>ðÙhHÎõ>îWÞü?%Î?oÅk?ˆ“…ù?ö?% 1Ê‚?¼'„V@?š`qxÇ?©Ïéd?Ï$µøC´?f´pW¡Æ?¯f€Ó?7*ÕÂô?;Hf*4?±ÝÜ»¼¼?4|_19g?Ša|Ø:-?‰œÅèÚ¢?(ƒõx—?~P"<œè?³„ðM1ý?íN9¹Ãé?A ƒÌlb?²•J;Y|?;eQhÌS?¦O¼á£¼?éX,v¨?BÂ[žl? Ä4ç½F? ‹ñT­? ¼Í#{Žò?lèaµ,g?’Ñjcaá?}±ÿç>X?)LEß ÷?¡~Ñëè?ËâL?o/?¨T·ô?LßÛfÝ»?Øn¡Ï&û?gñY"?T >ð÷?ÈUÓðr?Ó“Õ¼?l?!®f0ó?ãG@ÆF?ðÚ#«fÈ?cÉ=C?Μ‰Máh?3ÐPåÌ/?Bì4[—?ÔT0tŒ?â¡MÍZµ?žÓ¦"gT?‡ÕS?0Mu°6?dÛŽ??Фûì&(?â:H?ˆ’©kÙ~?ŒÙ(Ý?Àg«J£¼?ä1Ü4R?ÎÄÅs:?s=ð ?Ø–ù8? +± K˜? ïÀ!²8?Úò~Ðp?v ¤°,?çl˳>Œ?>áÌY²¦?–ü?s?ÝýÝ–€È?4–ÔcŠ0?—^m·:ß?‹EëÎ?·pW?Ž?’Ì^$צ?©µ-Š.?Ý+G?R_ë€w?¼{‚Éû?JÊHñˆ¸? º¾Ÿet?Ë‚\¼ø"?•š]Ï-J?wåˆ)W?ˆÕ,õd?Ø­+¤t0?CÞ(èA?GÆ*}P?+¯žÝ8?Ò36/?j?&Kp“5a?!­ñ(,,?Ë@ÛzV?3}ñpß÷?p A@@?–þÄBà?¸Ç‰ÜË~?â»JqÖ?V…¯Ü?ptö(r?ã+mÕ(]?{ò#*Ç?A+“"¦?<–¡õo†?~÷-°³R?ó”‘J?6Wœà–"?Ë}<?ÌíÌÔcÄ?iriÜ? ©[Ãtˆ?!¯íVèçˆ?"Š ˜Y?#4Áþ.A(?#°› !2?#ýÀôÑ} ?$Ÿùd Û?$r¨Vîá?#´à9Ó¼È?#8fä?"šqì'ç¿?!í!&®ƒ?!Dg2´1d? ³>ÓÊ¥? I•“÷Q? 0QZ«$? "wÐø? <µŽ˜:? ƒµk/”? ÈØ€?ë‹? ðK k? äßíö§T? ¢(DŠ? 2ÝŸtPä?X!áë–?G­ŽÚ?ZØGµ?¯J;[yI?e€°Z-?šª‹ýë`?cµw à?½Ï°ŒÓr? @ïW-~M?!2sóË·O?"9˜"?"”≕.³?"Ì&°¸Ò?"±4` þ?"[›ËüI?!èŽËßò?!n¯¯GHß? øòðjç? „ˆ=—Iÿ? cjœ®f?BPú¿ ?zϹ ¬¹?äÿ„‰œû?Ž/¬ñN$?lˆw\~?^‘#ÀE$?8 9±$?Óµ‰œ|? &U ºî?"y^1Š?í¯s׫?—•Ý ×?0J/‹ÆÉ?Ã0+?^ÁÒÎ|?þû#{°?'¸+`ú?¥GÇíL?±h忤Ò?I%œ»úÛ?GØåçJ?oBÅGȺ? ¿ìN®?G“í1 )?¸EP¯?Þñ6ùyâ?Ûzfáä?ÍàY¾?ÇKÙ¦:?Â=fŠÓÄ?¦LÀ×®‰?U6Ö)üX?½¶›—ÃÀ?énN¤:?ý·\r;?-g¿yÞ?¢“¥iuÏ?m^}&?Þ¯¹7?¶¤ÕºEÁ?é·÷,?üžoN?æ&ÀW?®î§×(?gH —?%½è?Ñ7£Ô '?èá~Ë?%1(:»?³ð—>¢C?.43°?@?­þ?Fù¦Z? ­v7-? ¡H[MB?"nTPƒ?ýwÒŒU?æ>m%5~?NóQ†?‚ȱôx?šÛs ¥&?­¢þÿb?Õ¢¶½¬?'ô¯¤²†?±F™ò,?t¥%¸™?kéPªë?ˆÀ`‰à?²4TÆHû?Í¡i°k?¹LÛ†Ø ?SG{ï¥?rËw?1 pV"?v®M¢‹?tÖºÙìH?b)Å*6?pÿ§ù/?¹üÐæx?8/g‚¿X?Ítfi:?Zm¨¸R?Õæ P?Rd× l?û‰Žño"?÷ßå«^ö?Yª 7w‰?‹Û÷Tx?¢Ó‡?;‡·7ó`?\˜!ôoÃ?Za‡³4?¡öö ?c+píP ?=úÜ[Ò?¦ÕÏÕ·?¾ &¬é?²¥Êða ?³Öéâ–E?àJCkOÙ?<…ú^Íë?¶² R£?5ؘóÔ|?«Ä4ÔÉ?‚»f:?VW;ÊPW?ÛæH×mü?öÛG$?Ÿ–[/vz?N2hÙc?ÈŽ±N? Üž]­_?è™ö²kë?H§½£KÕ?Zê s3? ku­—óÓ?$Uw?æh›ó?ò×7‹1 >þ¸‰öAøØ>ú)½ Œ…¦>öƒeQÖ´>ò¯Ò…dÐ>ï·¾ì½{1s%ô?)Øá§Q#?”Ú‰A£??yb7ˆ ?åÅpá?H¢Š "?G9h,?éÐ7<?[´Øå1°?Ùâõ6Ú?—®si¡3?²Ÿ¥ÌHº?|ýË?®vâÞý?!*tÏÂ?AÒdè6?ûÌè¿[?`«?Tй?šå©Áè†?×É/XH?6çbüMê?Ã^ÐÔ'ˆ?weºäf?DP`Ðø?æÜêÈÜ?Ücñ&KX?„¿ácÞ.?Gþ!És¦?QиaM?ÈG¹Þ e?XÂÍv¼l?ñæN¿Fe?†Ø‡-ü?èI¹TÄ?ü‡I›Ÿî?ÂõL[²b?T Öº®?ÑlÈöæG?Xêc°’`?þR+oU´?¡åœÒùý?©•€QÂn?HŒÃ?^Öš­ŠÎ?ň†À@.?,€Cu³o?Öb¶÷Š?ëÁÔP˜?D‡zb¸?‡ÖZpdá?„bóºì?8µ \I?ú<›{?¶³šSŽ?Vû¢^¢?ÊìÍì,? }où×? vbmJ?‘+»Y? #G+à? 2ehÏ ?ÿ ñeI|?îbí´S÷?Û4ÏŽŠn?×Dÿ®z?úŒà áÆ?V€ÔvÙ?즮f¢ƒ?­e>*N½?}ä4Zh3?@%Æ3Ò?Ùi$ù-Í?7>”œ…?Q–MN?'`Ëž?ÂQ€MO?.Ê™,Æ£?|²ëš ?¼qeË?üj?G•s×™?¦iÅ ±?í–õfÈ?º Vi m?zÐÏ4ÎŒ?i§wµ|»?’@ò `N?ßù ?Ù®‹¯«£?R™xÀå?ÚÑà¸xQ?ù¬/ÝŠ? (ý.m§?!VgýãŽ?"k€ææûP?#WwHŒP“?$Q™õ?$œ‘Ï?$ï副O?%”ë1Óh?$ß=ÆHcg?$y[ÈÙÕl?#á{»®?#*–`˯?"jòªòÆ‹?!·ò U3?!#I®î ? ¹ÿK¬›ß©? ëIˆ¦9Â? pŒ.¸Z„?·1† ¨ÿ?Šec¶Ì‹?‰0çŠ4?Úq;é&+?1Øu?ç^q«&W?ÀaŽyÛã?üþß°¤? [«þŽÅ?!-?̲²?!ØÎ F0?"AÇSM0Í?"^Ág OÀ?":6’F?!ë Éhø?!ŠGå³4·?!)"‚Š[6? Ͷ!4I? uç<Æ? $¾?àüNó ?¬ö<&?t=/LgÙ?½<}ßÍ?ç4;ˆ'¤? h§¿–(?NÖjE¦?ÁcV‘:?t¼¤>¡…?i6!æÞž?“è@õø"?ߟ¤p Ï?/LòkÕ‚?a§ 2?RúYØê?à­ûàß?ïÆ¬Ã^.?v¾L :W?…º¾#/À?H|ÆQ¼?ü#Ah'ø?Ûì¦êãµ? Kçùt·?‰¤ç)šY?7[©h!?êÓŠ$ó?‹0±c?ÒZdV?ƼjIP?¨»΄ ?Ü/ù \?a[N ¼y?(¨ÿk­?©¥rY˜?!ŠS…?÷õq?Õxì}`?GìÂÑ!?S!V÷?ö2-9¦?EˆÑj¯¢?fA,(!?~€%gÝ?©AD§Y°?íMÖÇøŠ?@ѪQù ?•m»¢€ì?æO7à ??ʼn¾˜R?xèų?ó%eãså?©!(. ?Ì·yhÎÚ?v/ øT? R 6œ?eÖ’VT ?V XüáÏ-PP6>øÐÊ \)(>õ‚È7Y¯=>òÈwU¶á>ð·É©,ü>ï&#¤äað?ËÚÌMÌ?ŽdôÍ5?I—cÆ?Jn`?rxâ>·8?r\šŠ?ö'GŽ?Y+d¹7?®Eu‡Ju?DÌéÂ5?BFV7“Ì?¢£y‹`p?8MvG'G?¾¹Â#øà?÷Ér»¿?Æ:Vª±?7 ô…,?vú¼^¦È?ºÝD0Û‚?+ô£.' ?ÛÅì!`?Ãä—sˆ?Í‹ÂÀŒ?Ûö¨c_X?Øî7‹7?½é£Çr?—g‰Ôì?€~‹' å?•7Ùßö?áÌg1i?W¼_´(¦?Ï™¶µo?”^ÎÅÌ?¢ô?Õ:‰¨±„?[×ã?Ž?Ôw¨õÜ\?]6=B ?è½Çì^?ÂDÆÅÊ?Ñ^ ÌV¹?œqà·?mQ'T…h?Ì¥ 4¼?, ¶BÀ?‡Ø<ÄL?âþ9·?;’j?€Ýñ ž?*ÂU‘??M•üXŒ5?´Yž4¬?犷à?+[8ˆi‡?˜éo’.?ûS 0yW?ÄôÇo´?ú ë«øP?Z–H-?¡øÏöj¶?¦>%Ù€§?Zg2ŠÄH?ÇüÂ)g?þ‰úC¬ˆ?ܨ$x?á&׬?ŽñóìÉ?:¯!?–¯ê"m?âç/½P?Ÿ@ØpQ?/¢œËF?¼Û&,œ?CAüåÂú?Í0”´/\?o§gÜu3?>½cˆ8?AäÒ; :?oœÿ»„t?³Ñ<=Ÿ?û][M»?;ÕÔÕ®a?vþ4&"Z?²0ñëÛý?ñòêµÞ?7sÇ•Ó]?ƒ‡Ð?".ÉÒÒÀ­?!œ^z”Ör?!5xãñ ? ýræŽ? òr«‡c?! B@8(B?!5€{QÀR?!\üŠ7wè?!hî0 U3?!G²üf? óãÌ&LcëH?c?áô7?IŒwl¿?èâ¸(¬O?ޤąû?­ÿŠ$n?81½ö?x°~bK? ?Õu?k`o¿m¦?M¥¡.¢?3v©Aî?«ó;Œà?ûf_¤f.?È#Y•G9?vó´³k?«ÔóçP?†Üê-Þ™? Ôü+Yä?¤ìÎ ?]œ¨ÃA?/¢°Ó³o? ‚æM^?يƵ"?˜?» ?K¡|Öq?³ÿý¹„?ëœ ]ˆ?—zþ?tNÕ‘jW?KñÙO^´?s¡oH?uH¶±T‘?œCwD¾? ·®×)x¨? ×{Ó± ? È^ªxMï? /Cü}e ?2d½á?’d~]¼Œ?{C ¯iÆ? ô¸îâÔ?g^ÿÈlö?ŸA¾v?Î (o^?Þý$[ó?3@iSw?M…h. õ?RN˜üf@?‘Ö£L?µ?ôUÀì6?YLwj6™?œ ¡§D?•÷a2Mò?"#¸gØM?$7`:û,?’|»R¶|?~kÎú?ÇìÚjë?¥ «?UYPÉH?hÐÆî?Ûߨ=W/?’$픚Ú?\Þ³bl?%?ìÊ?ÆUÿ°#Ç?yjef?T‹Ýïã?nì@¹ÿp?Íç÷&?iÆ´ú4?5™Ìh˜? ®•Þdæ?ÏŒ)¥z?êøºJ¡?„äq`¤ë?Ãg9©wB?›yÇÛ®?´+H €?T&QSßýÖ¬ˆê2>ùGÐÅ7È‚>öŸSέ>ô  Æ¢Ž7>ó(óR8>òXÄûi\R?ç㌀?~}¿ƒñ?F êû?'‘±¹?‰Â*‘Ș?!Æby ?Ø«‚6?\T“†,Á?šX-Á?¶¼ž2?NwEØ÷?Vç5sÓÖ?êyZ U°?wKÛc^?»žDv±$?•è@ÕÖ?¸¶'Ê?TvaY”i? õO’c?$Ä-DõÄ?öÍàpU„?FÉ3Í ?SX[5ô?—è~†™y?¼D¿dn˜?²=Bäâ?ƒÜìà 8?PWZ²2—?;B“±‡?YâÀ²€Á?¥©°K?ü<ú¨`Œ?1ĺž9¯?'ÍM–î?Ü?¨­^?fÅ V•-?èÎ[ܱ{?~Ÿ)Üv?8dý`0œ?' éø?)ØD¿õ?[§w­-?¦v&Ï?ú»áñÞm?Pn&¶?¤øm×0î?ýê[Ý Æ?Xxé,k?¡›g\~i?·= ­<©?yÞÊÁ/ò?ä¡^O?D³ÃXû?^0£·á[?óðBÿ\ñ?w¨éñ?ÕŒ¨g…?÷îMù°?I\ãõ[l?Œio ‹?˜#Ræ?^æ»® ð?æNª¢Y`?9iNwB`?]Ù¡õ?SÌ*Sª?®ą?¿)0G|,?Sµ]™\#?êAôÏúô?‰ëØ—/?+0Ê^®š?À—–)LM?CØ£IcT?¿lZ:áç?L©Ì{©?•Ó õ”?ò"ð³0·?vœ3´C?J ÑüAô?ŒÙŽÝ?Í9by“Š? Ê7‡BÓ?KbGÕ4¡?‹g 4)†?Æ™›<ô´?÷WÄ„T`?¢$­0?;–›æ¿ç?] [ í ?‰ ’Èp?Ââ¡2|z?’Ör:Õ?U¶4§ð3?¨ÇX”K ?£iû|*?soŸÛ( ?ó’ €æ?{ƒ¢Èyü?÷.Þ2@?UÊ–Içö?—$à÷¡?ÎG&Tˆ?ò[ß·8?yÕ©2?öÛ ù!Ø?u#ë¸Të?Ùú«ß†T?gvAP‚?Zdž{`?ú`Z/ð ?¶Î%ýÈY?XΞ?ãü‰€œ?YÊ28\¯?¿2W ·õ?¹ˆL‡F?‡ úñf?žqM†?¨“3~œˆ?sçvŠeœ?mZ†ø,?™+6<Î?àLí.?¬ë}Èl ?¦lOÎ?ò„®a?ÉÙ¸%e?t~’Cb˜? G@¡¸žñ?!aú½Ñœ?"{Šûx&?#…‡Ñv²p?$sÖ‰MFU?%

    vÊ¥Z? ϧ`Nõ?!DÞ³¶ÓØ?!†«oëu*?!ŠÐU! ?!W¾><? ýßK? —GŸ‡mµ? 9!™j?á½Wj ¦?€¢WÆc?9 Ïñb?ïvqôµ?‰Dƒm-?C[ÒŠú?j‰Zy´ð?Øn|=7?WtyTk ?ß%Z‚ÛQ?Z éZX¬?·µÃKÌ?ò É;r?·å#üË?·ð…~? H W?òuë¤?®YÛ¿ž?^wÖ¦?,Å\Hõ?LÔ‡<Â?å© ©»ú?øã;´l?ޝû€?YÕ«îâ?1¦ä •?éáלae?jù[Ä»ä?³±õ˜ú’?ÒÈî¸!j?Û}ÃÞ¬?Ú§tÆú?Ô&ÕhQ/?ÅRZª…?©IÝÌN?|5!Y¿ð?:ÜÙê:?ç|ÛÁÿ?ˆHh!?* Uö ?Õø›Ì8Ÿ?Ž7ñO«?KT¼ÈV??ÃdF±?­‘É‚¶Q?O‰¾oóy?ö¥>?±CÒÏZ0?‰ÁoBk?wîw š?lYåÖYD?Qé?¼€?ô-¦?„séþÜ?«"­O ? Ø`M> Ò? P6EÀ‡”? V„r°?ÄUú–%?lí8œD6?‘åç½`?gYœ£F‹?ß…ËÊð?}¶!sWå?¸>€º¥!?ܶóþ?Žü=…?l@¥×æ? µd1”?ùó0€?*)†Ç?ˆòâ‡è~?ô°¨'C@?Eï¶7Å?Qù 8â?ï)¦ØL?ü¿ÒÏ$å?m¶ˆ/?RHšC?ØèsjW0?F·+2|?*Áwß:?=/Ǻä?ÿcsL?àÇ[ê r?õ‚ÚÀó-?D4;)ûh?ʲtx ?„A–š?hITšƒ>?cØ»ëC?V`œ?ËUW=?‚Áû'tØ?ƒ¿œ.?ƒ ÿ˜d?c»…¼6«?}y˜N´?†Í’ɨ?óSÇX¬?›Àû¬—ç?ª;îqÝ?ijWð£´?hÓñ?ƒ-íp“*?bœ<ü}*?« x|”1?Nè!"e?)M7+?Ñ´œ?ž!¢$?¶}±âX?\¢!Ô?»ÃM2¶?qôsŠL? ÀiÛ:+í?'ô¸YT?O ‡™zí>ÿ cÉ%>ûtÈEˆÅÁ>ù?·=|Q>÷Í÷ :hé>öÎí²mÑ@>öAÄè³p?ç¿8U@?fÉüÂ7?3Âl¹©±?/Ù‰i†?€,{!J?‡'œ)Æ¢?%ÅÝ¥b?\ÜlYš>?x˜0Á,?Pl Ã?µ¿œÄ?PBü r?ÛærúÜ?`ÚÂÓï?¢ZźPí?}˜U¡I?úI††Z?DYQ“÷?#Áœì*Äk?#$"­Ëâ?"¦ s©‡?"HêÖ`?"G»ž?!̳suª?! *‰½ª´?!uNÉKµ?!EBõ³©?! £(>? ½æq1¾ï? bì¡O¤&?ÿúƒPÓV?FZ Œ˜¦?ºR\]²?vÖ–2Ýn?‰ó¢<4?ðàLL³‚?œü00Â? ;6ÅYî? ®9óÃÇ?!÷*A%Ð?!S˜&øT€?!_Õ_«5?!2Þ¢VÍŒ? Õ9>w=l? Z'rUòÏ?³%§m?Óö­O‘?4j‰1ØÑ?Ùj¨¤"?ª‡$Þ‰½?€k2ëOœ?5¦&Wúè?»ZƒTs;?Èæ³7?{lo€O°?æ€Úãò?a(bJŒÉ?ÜÛS…N?I½ ÿÜ ?¢ t}ò?ì7B¿n9?)ÐÚ3?QXŽŽ“ó?V¸LGÒ/?49´fbÊ?üÿI»¦?Ü>Ì\3(?zqW?žM´SóJ?¯~í|Â?$”úWBÒ?Õ¿O²ã?–²õŽ© ?C§†d÷í?ÉÿY0UL?(è‡Ën?jû+æ}þ?›íã¡ç?¿£ô66ò?ÒŠ1¥å?ÎÀ¸À|Æ?±ö| áº?~\®Ñ[è?8íÝ ¢E?è%={ø?“‡Žú³j?B¥Ôî s?ùq¶ ˜a?µZXlª¥?n—lw,?c!ÌI?¼ÂzT\?]ƒgÕuß?ÏTtUÊ?çuÓ×?ä*©£t`?÷?"EEï?ýÍæF?ó¬®Ç:?´#‘²V?Žkd+?ùÚ5?†ÛWÖî?hc©& ?®P”i?DÎA¹cø?º>´ÔÝ?Ìe²n€Î?‘sÃ*?^‰¾g¯?JQ70´?dÞ)]§?´žvD×?:zàÍ} ?ö;ƒ²·@?ãQð‡ã¤?ðÎN‹i/?ýv‘y¯?Ý„mâ¢?fÖ¢p.?è±õ?&ã”c6Ê?tD€ò?Œ×Ýh?“9ªŒ,è?šÅ©e?¦Å³ª?¶ŸÛì?Ô…b¼÷y?ä ÐÕÂ?­M1|Ú’?¨GÎã~À?#i†*?ÕS=¤_;?Åø‰ñ?§7ý¹F?;ÁWà/‚?Eû]ë?—{œ)c? ø|Ùz½?'fùÒ@? #tÎê’?8Ì}eb+?,±t¶i?JTÍ Æ>ÿ0‘b>ý Glñs°>ûãó·Ì­ˆ>û%ÿòWä>ú¼»KâŒç?ÇËe•ï?AE,|„ ?ç´¹?ÉcÇ–i‰?DOºÏã˜?NüøPñÖ?îÁ5WJ×?O£z€›6?±=“ì:¡?Mí/³¤î?F\XJÆé?–Ã’øÆ?Ô€ì?‹ ­UXå?¾rèÐB?’095Ý)? *YÎ\?XTX‰æ?®äl6Þ?E:·dîL?=‹Ja?“.Èù×Ú?%¦Ô|`?ÀSÊÜ4?0æ“ý@ù?X§’GÔ?5ÿ-Ä-ß?âé Ào,?‡©]»H?D· Ì?)N/OßW?)Ú(rÔ?+䬭B?)]%ìé?ílCü`Ñ?±Ê#¢ë ?w ö->ü?KÕEoß_?7zmC?9åÓ詜?Q›?".ª?x¬ÍÄÝ ?§dVŠV?×+„îéÆ?rä×r²??&Îügº?‡^¿¼c?ÞgxJ =?/$oÍ ?T>ö+ÈÙ?*¬5™oI?©Ø÷Yî?ë ÞfÇ“?,~@r_,?¬y˜2A?™×†›ãn?™Ñ'8?ÏsæJmq?Ú²~Ïm?÷!ƒ<‚Ÿ?~r(ü0?郗h×?£Ê}136?-Šþ)o¦?ƒZE5mf?£Z¯Tö ?’&hÐ6,?\Hí¶Œ? Ð_B?Éï*¹¬?pàjþ?i~a²?–»"Cu6?½jÊÙ?oö×Mß?óL¢‰œ?«V ‘=Þ? ´Ô3Ï?Æ©Tg¬?¦â\Ȧ?PJ¶.—? ¸ñ9 ?ý|ë²®Ã?gÐyî¶Ð?Ô®×+ÕŒ?.ºvÕÍ?` !;?]=Á`Ïi?*©™<¹?Ùð°¢?‚ŠHn—Ù?9ÉIhóù?„™ Bv? ‡¿‡"˜?1¨Ff?Š&Î0¤œ?ñ =ó?Êúò6??’ÄÏx?Nš`??èdW™y–?]Q·Ï“?¿Œ%'Ä?'I^?Ö?Ÿ(ŸN´?³b¸LÙ?} ²l9G?ª#HË?–»Ù¶7©?M(¼«±ø?å=Ë ?xuÝy¬ö?\ëÔãâ?°Êð Xê?IS¶REÄ?ÕIgS?XÄ”[êg?ã÷.W,§?‰äÔQQ?ZÕ¥vÏ?bTÓT?¨]kúQ4?6:%(¸?Œ­”Ñ?>,)os?¯èú‡?R6ºåº?g¢²? l·"¿¢å?!Q`ªÇ†?"5ÑŽülž?#oï J?#ûD_\iø?$Ñ}Nwë?%Ž>Xå1 ?&!ûÇ!º¢?&|$M¶n`?&‘ŠŸž?&`|Ååð2?%ó'ìnD?%^œºJ³?$º„z݃`?$%*ÓÅo?#™æ¢?#-Ô,+)ë?"ÔÆŠà© ?"„kÔXÞL?"2é¥}¼d?!Ú·ÄLü?!{,1ßÉ?!DæïÞg? ³6>Ú@ð? ScîD›?úâ¢ãŒ?mÕ'ð Ð? °8?ûê<ƒ¢Ñ?+aåÄ À?šU)¾? Cw‚¿´? qÒ˜øPI? È«Ël{†?!ØŽ¢s“?!Fã e}?!TJ“1zÐ?!1Ð|k $? Ý$øèò? ^ oä?ŠýºÓ¨6?SÆU>Šô?DÙ‰ýÎù?€Â2Š ?B› à’?ßÞFýÝo?¿Ík Ö?€¬ËÏ•? •xCp?p#k?Ç4ÿ„î/?/µ8¼X?²&—¾ ?CÓb‹ü"?Ô¸.™$Þ?\ (Ä@?ÙW>eD?IIN.–? &Dõ)^?ÍÁq²ÅA?Í6Ýæ#?²g>&?§¶ Qç?ߤh»r?|ÄZ%#ö?†á:åk”?ì= Á?‹S ¹ ¼??ž5$Y?ë 9E$¤?ÿCô?ù0åÎt?^!…?³n4á³Ø?õ¤‹øÄ©?5÷ ü ?CÊÂÁ?ôsUóÊâ?­›ÇЭ2?RMëH”?ïYø“Ú?ME¸!?=ÕéÛ'?úʳ‚ZW?Â÷ti?‹i¤ø-?L¹óÆþ?H(EX?ÈxX€žl?¤ÌŠÜ)?« xàÒ‡?Ú "EvË?šx†,|??õÕ)*?4É™¸³?ìw[q`?w,4~ê?÷e©éoŽ?˜¦umEÃ?ƒfÄØö ?ÒŤŢ'?‰ôt¦0?Ž1âÆþY?¬p~†ò?ªMôôÛ?Z£BØkd?«Hšì?¤ˆ‹äŒ?c¦tÂ? šsN ?Îö~Zø?Ï+'ìÜ?+¢ê[œÄ?ï5S% µ?ô1Yñ?kí:ލ$?ÙÄ4;Ép?$mpüü8?Ò7ÆÑ?‚7õ†??MÁ¨A¨?{ãDÔ?2`áÂE?±âN-’?@•¹UÌ?€_ëûÃ??ÍÑÈ ?¹?/Ù`?`‘þD½??÷”„3?Ù:´*ð¢?©‡£½ž?›ˆiîK¹?½wJD…?ÌÚz­Ø?¦­Å$à±?pYÆ ‡?m|šlÙj?‹®±5’«?èÆ»*Ì’?¼Ž«\ÎÄ?àj O.?K×ÿìY?£˜°ÚÁ?H–ä4ÊY? s¹˜„ç²?lŒ| ?‹$ØâÐ?Ä-!©4?ÄwÐ+ ?/Z%>²>ÿKŒ7R>ÿ2eî¶=?• –ôs?…ݵ)œ?°ÓPŽfò?]‰°nï?Ê>ÒHkê?ÚHPϘ½?—™îàÝ.?+Œ-•ÿ?Êðú»w-? £4Z>?¿6É%Ù?¡6Èê?’1âŽñÖ?ó)ÁTD?²©ý¸{?Ú ï €Æ?P$5ç\?™îD€¨?î+È)éú?ƒ'1Êm?{Zðr/~?ÙDjÀ/?~c-Ï6?6ЕáÆI?Í"žÑPè?D™œNa?çcD?Ä<™Ì›Ò?RóÏ™–?âlDÙ`…?‹Îâ9?RI`n?/ñ€ÂeR?\»ê¾3?¯Ò\?ô±ëãK?ëTŽny4?ëV¯‰\Î?õ•œ? [n†Læ?'ð–Ì e?K†ÐŽ?nU/Æ­Ì?­42o?«t¯B?Ñ]IÐŒ? ¢Å¢·“?VêÆy«?¡Û0ñLü?Æ‘¨í.?¡ÞàWó?(³2œua?sMq”(?µÄ1“ì?+;,Ö?þÞÐBš?@íÛï%?äã˜Ãz?̳ž\_?ÑÌg/˜„?Ö(í‘>?ÁO¡¹ ß?ƒYÙ®¼Ö?1x³(ö?dj€:ñ?}Ëœ9?d7Kmè„?)³=Ñô›ì_?KœÜî(?¯¤âré?UwW3~ ?Õáã>?ô¨ïI’?@JÆ-ÆR?¥s$:P?:dYôÀ?éEg6à˜?•÷ +Ûˆ?+ê—\j ?©^Xiò? ܺ6?¢×$6?80]gé?Ïž‹NËX?EƒÊŸ2h?xÚ@aèz?]8{°E?ÿê|¾OR?‚§íúP?)Æzˆì?œ“·Bá?Fµÿ™qÎ?õHoI®Ë?›¨ÿI4?9Ó«¿·Q?ÝP1”¦*?™UÃ|?€Jï ‘R?Ÿ™MúÆ®?@ã+$?¶PìBk?¿@TÝ?™Y>"?°¤°6"?h@?¯Õ•? 0|ïâR? æ¼Hü?!³k «¹f?"}'Ã!å?#ITÖÆ/?$Ýíh³A?$àEæAü?%’‹[¿âb?&¹çJ®?&k†“——?&y¦QþN?&H UÙ?%åÐÿçH…?%f‘³C¸?$áTQ­h ?$g‹ãlž!?$Õ®³É©?#ª8! ²h?#XžÐ;?"þ§I?ê?"’­}/>?"†D·ò–?!€3‹¾–ü? í¦7¥OÓ? g6½Õ9}?óï½¶š?\TšŒá«?ÝÚD€?$»–Ç„*?‚ßÐpfx? šÖ‹ÅÛ? jk­Ž? Ä@§}ï?!¬ìp?!C`FàÐz?!_sį™?!`ØPá~?!?õ³$„? ùtÑYí? ŠFTn‡ ?íS!Üÿ›?•ì¥"r?4£#"?÷y|Ãl? ¦w¾o?qc؆È?(&¿fÔB?ý/&”èã?¾¿Ù)á?N”;Xn„?µ¶á¸u?³¡‚L?‰™Õ`Ú?$dÇ+ä?Û15 Ä?›Xm^¹¸?V‚Ê„¥#?ˆ·î? Ê,[Ïm?°­.gú?d­vè•?}žÉU¶ž?|NB|È?‹µ÷mÓ^?ÚýJ?†ÓŸòÈ?”Ð!.ú?ö1K÷?²mó!À?=Y*[‚–?ìÚ2ì?Ž=€«eÞ?{³‡Â:?›¶ ,?¹Ó «* ?F•r_ÿ?ÒÞ÷Ýå—?àºñö?¡ýÓd4j?E¼(a?ûáõþÕ­?ás‡…þ?2ÉTü?WcÄ[å?•]5.;°?¡\Ëû “? {6jóJ?·Ð¦öhw?ü”÷ÕÍ“?8¤¸–j?!ðò£V7?j=Ó™d?é¸;hÀ?¡½–Ùân?PªC¡?¨Žvž´%?4Dܼ?½‘ÄK¾?ãó•.ë?/X@œ?©ÝßÑò?îx:m?ßàsEä?þ˜[åÜ?O8Åžû?¿=§nZË?/ÛXVø ?}ËÁ“~ƒ?Ѝr‘7ã?Fø¤ÍÆM?ºÏ©Ê?(õš'Í?W! (tí?çÏ€–²?Ø@ÉŽù(?2‡ð½o¡?ÞR'-+?«ì”›bA?e£èVÖè?ݹRõŸ"?û­Yâ\?Á%J±Y?E§¢Ãî?¬Á$Í>?~Y¬¨Ð?œòÞ 6Y?Kr•L[Z?#žWÚMº? wÙçn?6ÏÞÖ¢n?\qê)R?‡ßÂr°?±Bµ—2?Ú!µVÄ?H4{¬?+Dsz[?Nílðe¬?jw4æo‡}çû?!÷ñˀ͋?"®f- <~?#jblJ â?$,§jâ.?$èð·Óá”?%ëð°<“?&•p×R?&D2 ¹¨Õ?&C aQ»3?& Û¦º?%°ö¢k:ê?%HzKd$?$å´4k»¾?$“¤Gýà?$P*ä®Õ?$d†€ º?#ÍŒO 0?#m¸"ž9‰?"ìB-f?"I”Î=Ë®?!’͉árº? Ü•‘Wu@? =Ë*?“æ\4t?¯î c?•‹Ü¨?ŠØ^ç}Ý? &ÅN”? œ1, µ?! ‡~`!?!bÔxtÒ?!“Ú‹?!ר'‚g?!‰œWµÿ?!\Ô>ä*?!5T)k? »Úä‰+Ž? @Æ—ù?N^:—B?êíÞÙ_ˆ?t±TÜåL?öñ…ø?üäá¯5o?>ö» U?Ó~N(´º?’4:B0Ò?IQ;wç?Ú}2öã?H°{bPê?´nz>N„??ÍZ½tp?ùã,Óód?ÙáóH?É3΄Ì?³Èo[®$?Šg$ï‘«?AtS6?ËòC(á ? -OÆ?E–¤{'?Vþ<ðÄ ?€ƒŽÈØ ?ìC¥­ýÊ?²gˆ=>?Òæ{Ý#?;ßß»¥¤?Óx On’?€ë 1x?1ó$qÎ?ØŠ(˦Ã?r!póÎO?úø¶sæ&?m]wÿÜL?½SÑ|R?Ü–{`Ž?Á<³_?l,Qfì?éÈàpRx?NvœÔ4?²Vp˜„À?,t«ç&?ζ-]?¡¼5éÐ?¢ÌÉirÈ?Åë¯,¿?üÁün~½Ò‚D@?ŽFtq†?õjzÄá¶?zÿ¸õu5?sÕH=‡?§´óßÚp? SJ$R*?*D |[‘?¢j«ÜL?¼!ólÎ?€÷ít?€#WÐ`æ?Ö'e'RC?‡®ýrÐN?™VïÛ?·nºtW?ºÑÓð?Â¥(is?,øóS*\?ÃÉR‰a?îh“Zp\?ÒÈm??Àxþ?ƒëµ¤|Ê?»B0c?o)Ï_í?´Ô`:¢(?„ݸ«m¢?½²ñ¨2?.µSŸÔÞ?¡ºä‚j?àÕÜ4ɨ?»PÏâÖ? ù"ÑY¤?ƈœ?úxŠÂºm?ÖŸ •‹å?–‘Â+Xâ?oÛexÕ6?¡BÉZ?Ï#:Þ ?H‡M$Œ„?Ú ÓÕz ?}6 ú­å?6´Dzø?–ó3?.·†ÎNÚ?‡ªÐ 1Ä?#C¢è×›?ùºˆ`û4?ú°í`Ñ? ü,ñ{a?`,yŒª?èó fÙ?vG ­?­âw J?”‰Z(?C¡M1ô¾?ãB"ûy•?’œÝÝï>?Yc±‰(=?&& £Ç‚?âs®T‘É?‹ø ­ju?=Çh>iw?"¥¤×?W7â^¹?Ó“+ø?ioÔ°?×+Õ%´T?æ•øn&—?wÚrY¾˜?„ް?t? úq?C} çÉ‹?,úÞ!øé?á’µTâ?E“€¸M? ÆKˆ=â?S´€“J`?ŸÉJHâ,?lp×^ŸÔ?‚È„-É?ÒÇ/2ÿœ?ní¢Êˆè?ÞRaì¸?EH¸iy?¥ß{n¾?O¾Ä?E² ݉4?fãeí„×?{?k5š?ž4d¹B?ãiï!æ?Mqº² U?Ï)PóþÔ?R‡ î2r?¿|žò¦‰?ÿÄgáúˆ?EëÞ?}€ñ¯?£6`‚m?íÊ!@?ÏÞ"Ιþ?Ue^;I?›™Ý®#‘?ËÀD¾Z?¸Í¤.?„’þ²B´?=°Ð’´?8²C¡?ez® žÖ?¬Ã2_&l?ùãÚù»¨?Ax \³?‚äYY?¿dÚ,í?ú$y*Õ¦?/FD*ÐÂ?XÆÿ ?u~™úÃ&?ŒDâe§?¨& •?̰h¾{Ž?ír®8}a?ïª<¦H?¸èq?@îÈÝ=?šžuñix?íRðZUÙ?eË ˜£â?&pU?@ÛL>}?°4÷Ü@x?fcÙª$?G+ ±¾r?4/öõ,? ­† ÙÆ?²Ù?¦Þ??¡uüd? Mƒ6?é1Ž}žß?ƒ¥óHh©? Rëñ/ÿ?™78m½Ð?0›³ã²]?È]Êg%?Oªsó?»Åø¼ú?|±œ"?‡ëVd<È?,ï'ÄÉ?°Å]Lñ?[M™æ2å?Ãwd ©?5[eÚL?¡j¿ 3Ä? L´¢ì?Œ§Ò˜L?-Ôê[ò?ìþÓ=Kt?´!O‡6?d¨·\'­?ãÍw€j?",K¿8?¸7t&?ÚȵH2?j=®Ì1Ó?Ý·yU¥@?JöQÔ|ˆ?È’>ÍÈe?j4 d ?<Êër@?@¥õ°?o a­in?¾•r!zP?(—SÒt2?°õÁ—Ñ0?bö>Vñê?F ûâÂé?Oæ¥[-Ä?\Ú‘€“q?8;vNcp?° ÐaÅ%?¬ Úz@†?<;=Ö¨?ŒŸÒól3?ÖœþÒör?CV¡éÇê?Þ“™f÷s?›Ö’dF?g˜¸Ê6v?70±¡›?B×å ?ÿ]y¨¦C?…âwµ?^:éªU?ê¶‚£õQ?ÆüeÙ8 ?øƒÚ}?sH“O¸?yØL²N?Êj8b·d? °@ôLi›?!i?È+õÆ?" ÞpÓƒ?"ÂPßZèß?#v½®Â‘É?$1ae¹ñ„?$äMœP1?%y¾lQ®Ë?%ÜÞ Å}½?&ññzf‘?%ë[¯3[\?%©B2Ñ–?%S±³áV?%`]~ò?$Ä¡GÐ3˜?$bdAáV?$ƒ’_ý~÷?$f/Ž‚–B?$1dýÓP5?#ÔË{ð¦?#Ht^Ë/9?"‘m€ØÝO?!Á¸#3'È? ô•`·3º? GYÈ\æ?¥5ê‹™–?J•üÞƒØ?ƒžÏ¼úõ? g=J?  ŒjMt+?!+¶íà* ?!žíÌ|ë?!㎱¹Ï?!ò^üE ?!ÒôcøÏ?!”©œ}2s?!E?u? ìdæ? †n+ŽN? ¬ã)&ø<8?*;¡;Œ8?´#XQ?[©¼,?&@û ˆ?@ÿFÄæ‰?FƒÈS? o¨%?ô¦]Š!¹?/Ó1øÑÛ?§ÈãôÉŽ?B{‰{@?ë/Ôxã?”‰]h¨†?7<íX§´?În5)þÔ?Së!P?½‘i4µH?üé ù£„?A™¯î?ÌikíQ?Yl”žä?ºw%žw)?¦É®,Æ?YKÏù ›?ÍÏ-¨?wáŒ&?bÔï€R?ŽäÃdj†?îéÐâjÖ?qvÄúÂ-?˜/ ™?ªþwLX#?]*þYçæ?»(ö¤?éo0p ?£[! Ê?2O½u?ˆ²˜ÄGp?²ƒåoü6?Ò̵Î:^?ÇÁ¤µ;?Žåa?M,WZWÎ?<˜ÒwÛ>?9Ô"ÇÏ>?h-?˜|$ ]¶?œbÇÉvj?çùR—?üN’7‡?†ÑØT¦?Û|ŽG»Ø?,ä.z2?­Nª4)¡?”9¯°~G? ˆ]MD?%y±†þ8?ÕXHiÁê?ôÍÉp ?QŸú —?¹Üæ# ?üD\\ñ.?ð¶ñ™vÁ?s{b$Q2?qVî´?ïšqóô\?2¢¨²ø?þ÷`+<?ó¾ÎŠË§?l"8‘5?Xc›Ô@”?Ç€×ô6?KhT Z?Û¨Pxf?~{Õ3?E׫¼Ìr?FEi€ªd?ŒÌ£,ÎB?Ÿ1Q’z?ß ‚>9P?Æ'¢‡ ?´Ö¸Šˆ?¤T?E0²ð«9?ÆÕòý?¶ò²‹ ?#?3Eªí?Eðö•â?%»š'-?!Dçã?Fëq±"Š?jÓ†ÃÞó?q¶Ú°Eê?VUÝÐb?1åGOwH?,°Ðú?_¤Öi?½âþÚ®?ïý²?*-ÖdÌ"?ÌPe•C?í8|yõÀ?šd kØ?ïäí*S³?*Ú·€o?oÒ¿Z?5.rÄ{‹?Üð½Mv? [_~å6F? I`»]\f?¸k:)[B?vz™ q?cW¶rö?‰N$Øx¦? >RY°,?Û" w§?û„?,Û 2y?\ ]åÀ†?j¬Ö©?§m¶Î?ârC¦a?Dà×½Ó?Ð@P&ã?uríBp?Þø¿«”?«-`<ÊÎ?+[ëL¢?Qcëºñ?TNnÑ?Bj•ñ¿?¢IÔ ÉS?eT6úœ?mlêíÀŒ?ù¢íõ?æÈj‘ãd?/cÚ‚?ÒO”$ ®?°ÄQ?œ—h¼†?c«ÔÉ4?Ø|kÿ·/?Þ»1R?oá QÎ?£úà™>E?¦B%°ó?«ÕC;X-?å"׌¾p?p~˜è@?SSzÌ?|§ô"¦¾?Ï„~÷æv?0²VÈ*?eÚ“6r?ëµD&æ?FÞþ?¢q§9™(?ùgŽ"[?A†.µ"?qÌ·X¼F?yK#Û?›koÑWí?£tÆM|¦? eQ+kì?Ê œ`?6_Ëîù¾?º:?ý(?—©Ì±?þâŽö? ›) Žž?ÐÛ»è­?泬h„?K¯)ô9²?󳓟?ǽ¾p4±?§ô¹¤ä?oú!‚?üÂõ­ÿã?5ЏZ¾?í)íâ?¦??.Î? ïîa£?l7s^?ÞEàR§§?i l,?þ3ü ç ?†ãÞ)æ?õòï_†ê?U ÁþMg?Å–4‹?n_©¹QA?jŽÃûƒ ?µ–§f-I?1ºì¿Ï?·y—+Ò?2¢3Jü~?¤ÛWÈ»ª?!Ì0i•î?¼œ î?yÏ+¦¡^?L\Õ ¾?¾é³„?͆¬“£r?KÇšžD?‡ãá[ø?{Œ'wŒÔ?)êx†yN? sEH9 ?õ–TBž?D2nMÉ?¥ž‡šù.?,c ×â?☕K~?ÌIÎDHÝ?ë;"H#t?CAÿ_¼æ?Û=ÿ¨©®8¡¼?Fm)Ö>?qN*Ìr?ÊŸ“TéÌ?^La¡Ç?8édçê?^óɇd%?ÇËòª?VM"‚ŽÕ?é˜ÁÕl? ²§6?>?!a#çÀ€x?"\¿×Ïb?"°«; ]?#crî›øm?$)Í‘À??$Ãd®› f?%G‹>ˆåÜ?%’­ü‚60?%X¯Æ?%oŸÔë?%!ä7°ã^?$Ñ­ˆ+_?$˜VœeI?$²Å º^?$‰5G*k?$>R8‰?$¥à$"á6?$‹v ?$<Ÿœ®Ùž?#²Šß«ë§?"ôÝ›¯vr?"_Õ½ù?!?äÚqq1? Šd"ð[? ÿ<~=E?ßÜHN¢$? ßÏÒé¥? ‰84jÕ{?!­²¯í©?!§Wò?"ßܾ÷u?":±Ã¡µ?"(‹jM§˜?!æç8ßQv?!‹Î³¯6H?!*=PQ(†? Ë2]Rþ? k…à>H ? ×næ?nÜ$òÔ?Í‚<æ?l»Ñ ¡º?ËBè?ÀiIêØ?ÄÇóÜoE?ĘùÁ?žáå’Óg?08÷Ÿx?­­Õ­¸?ž4‹ž[?Šu«& Ä?)ð–±hü? ó†<:? Ì?R¼V*¯4?~)ÚÞ_(?ƒÉ›Ð(â?MM³T*ê?ÏU&f‹?†Â ?$êÝjê??¨cö§?Žj`­èr?6=÷¼;?>dŸ¹ä?–ªäãB?!fœ &?¼Ó?¨Çª?]1^âéÆ?øîËÜs&?Ž1Ÿ­?´°d?’‹I½Q˜?ê^Âë1?›Ha~©?öðëýÓ?‚)óÁB? qŠ¢S(?V¯G¿-p?•xÀ¨›O?å.øÏÑò?aæ¹c?õI;?+«sÜJ?„VÔŒ\p?B 3_ƒ?åg{Òù?Æ“†jñê?³ÍQœç?§2'丂?ž;'Æ?’o³oŽb?w½÷¹F?C‘úLù?ùDÞ4Í?®ût²r?„”¼ AŸ?-ÃŽ?ÍêHq·? ü”³`ô? ¦ž×‹ªG?!¬ÖV(²?!K§%¥ËÆ?!2̉Ó? ÆyòÉ? C£K!?*±O\?öKFÜg”?¯Ã´¥[Ô?‰î“ÍD¾?¶8…—h*?dšÊÀ?¶–†€éB?·qíÝ^t?PÑhÂJÍ?UÃ>/+ ?’µa 0˜?ÚPì¾Q?*ÿŸG0?ý à(÷Ê?œÔYz"?Ò¨Ö“\/?™“âÛ÷«?Œ¿\Sà?1Ûaüì?R ¼ó?…_S~?ØC/N?FÄácª?ÀðR¢I—?>˜ëž…?Æe¿g?mz^X²?MMš+Ü?v?Í1l?ç!~Á¦-?Œ†MÛÐ?J˜ýæ?/ËbËB?¬ÿבŽà?;†¾1'?°=#qG? ƸÛôè?VÐ÷J\/?œ;®Õ?ï  ßT?ZºùK†?Óª­E®??N¶G:.?€gK³¯À?÷˜$ÓÁ?‡ÇÃ;d*?ˆ|4 F#?¦ùSO?ÔHTÎõH?â™)Â;â?‘pÙO×?ätþò&í?µèϘ?+¾ft¬?g·CyJP?Ê6Sh?Ãõv´ ?!Ö}qå¢?€M‚? P1oÚ.? Ÿ‡-XŒu? A.-ñT? hCÛ ?ê2×ð'?ýž¦ÆÙ…?tš.âî?î΃ù?òOAíò?ô;ž±?ñç#‘í¾?õw øÑÚ?(Á˜Œ³?cè>a¢Æ?ì¿l®”L?¡ÜÒ#ò]?fé0‰+?ÍŸÀY?³¶fT§[? ¤Á•Z?cå‹þ?v !C[”?TËx^uª?ýÙCÊ?~eºÔ¼;?ùÌ l?˜å]Ã8?€GI‚[?ÃfœQŒ?_°§P¸?=Ãm£Ÿ?6¶ÏR³z?ØFƒ˜?µ)“„&Ã?àÎáiN©?‹ãÛe*?ÀP\w2 ?©¢òÖRÖ?KÓóÛ?¹ð”@?Ôe_ ?‡È<2ì¢?Ÿ ¿a?Ô*ö-¹?6›têÞ?¥ç øÌþ?f >õ?›[LÂßú?!1Áô!j?£l%ÓS;?ï³ÔI‘?ZKÊ Û8?z…MB?vÎvÛ@À?[GuP °?-!Ãô?èŤMÀ ?‡õõM¯²? ,k2ù–?ÛqoåŠ?üö5d?d?›ë-Xœ?qmpÜžâ?ŠxPdV?ê#â«÷y?ˆŸ­/Û_?QÀ²Ž?%ACKû*?Û’ZæU„?MÉõå ø?aD؉ Ê?C7ýD?qç[÷Æ?ª=äç}?å,ãæi°?@‘ØM,v?ÂaÜ?XæÁË%Z?è8b²(o?^HÜž¼}?Á—Щ§æ?2nKG8þ?ÛK(?ÙÇ- c??-ÈÞØ’â?º/*o?V0ÚF…?äb†Î?_ ûz?ÕKlÞC?\A“PN ?ËeÊÖ ?Á¥O2ß.?‘¡Ð…œ?Z0Ìi%^?dÀÑÑŠ?{"K#?§ñ¢ƒiZ?‚nNò‚5?Œ¹ç);?bì;×O£?™92Ô;?Ïl1Ñþ?®¼´1U?™m¯“Œ?OzµëŠ?M8sÌÞÅ? ¦~ ?R0JÞÜ?b¿,¹ßB?ÇVßæ ?`­ÃÄÚ?ù7r\?L Ù)l°?û£V"?8U ûÜ?¶§‡Ê¡~?ȪòUlŠ?º=™6<#?ÍÛÅnÀ?%šB]Çq?Áa¿Úú?Žò:6FR?{§¢Ñ?€<ùg3?žf2êsu?Û½‹ÈB4?>›Œdü?ÏU(ô?˜‰·?žÌÛØ8Â?ÞNð^‘4?B4Óû$?®®‘‚? †m®}´?!+ç¢yÀ]?!Ï »üÁþ?"xw‹²º?#*è*¡™™?#Ý+Ÿë¶O?${líbé?$íÎFð?%"e«³§º?%”~F`Ù?$ÕÉÃmº?$€‡H?$8>t§T[?$Âóœx?$(DÞ êÿ?$_D“³)î?$¤(~¤?$Ù!G£O?$âï­?$®h[”å?$4Så(ó?#}JUÇ?" 6á±JŒ?!ÀÞàèÝ`?!kÞH$? ‰«Ý¼¹? a»m Íì? Œ@Õ§#“? öøЫµ?!€o*…?"séÁE&?"Sžü’˜?"fà*½V?"? ɹºÇ? |–üº? *±‹…I?‡NUtè?zy±wD˜?4h|ÀW?ÔŸÕ‹Aã?‰ŠºßX¤?zŒ€‚?³ÒÖ:?e®v…?•Oøç0k?ùþÇ=ž ?KÔ‚‘¼?§¿[?4Ö°ÿl—? B¤«ÕØ?'I )kM?k…#p?®½ÕBÔº?È ¼¾áÊ?šL±v\?§à«#?E¤ìèÆ†?Jn›0Åí?Z°;N?­èàL?d…8wo?NÝ#Oâ»?Ô$½8sr?PÒ4Å1?¹³šÞ™>?ûÔGdG?0%à7Ö?È×ö3ˆ?MF¢Ÿ%? ÅCÌ:?Û_1¦2l?¬ü‡|n?pú@½•8?W7‘=2?ÙuÜø?%Lìy?‡åH·Bz?O‘~Z¨ä?J9/^œM?b$í1°?…ÔnIí ?ª¯ù§0Š?ÌZ ×ó ?éR¼À!?iÝRô÷?$Ïæ]¾?eŒy¤?æcýCà? _;ÿo£õ?!rb1çî?"ìG=…^?#‘wÑÕ_²?$HQÌýBÂ?$–›è÷¹?$o3 “$“?#Ô­ß|ŽÇ?"Õêæ6»N?!‹8±¦ê? Ç}wd? iÛ.¦$?;^E%Ã3?©J$?”JÒµ½?"ßìöQ?hÕ‰£†©?e·¦×ã?÷ˆLMyN?éÀ¤éiÜ?¶sä?'ŒV.?1·jùÜ?ù_õbh?½ òÊ?볡O?"59]¾"?Ôäºø\7?H wÝÚ‡?œ}ŸÃü?𠳯Î?Tø«?ÅØ×ß_þ?86 QÙ7?¢÷³1 n?°ÅÒ>?’2!¦‘à?MÔßR®ã?T0 J£?¢kÏ7?ýÃíÊL?¬€¶Øè?/(®½>è? ;‹y±4?ü‰/@?o8½p[ú?à­¼›(ø?_NÆ”—@?ï‰1Þæg?–d+ÐÎ?OéÄ%­L? Ÿáuy?¦ÉcQöZ? 1@N?-Þ¬è?&ñø²ÂL?„€Ë=0?ÐÅÛŒ?ôG¢´Í–?´´–N3?%Ÿvgè?5E­ØDÖ?êëÿÖáM?_é*AÔï?²‹q„c?ÿ]E?Æ?_ëü¬?íî¾]Jt?x óYÈv? þsb½j? 4²Hä{? :m²E? óBÜ?è X?¶‹•¢?ƒšÎ«9š?V)ýçQ¶??›dr?;Ogú?àQÃøÁ?»c\é"ê?Ã7Eù-8? þvP?é†ÀL?Z˜Þl6D?$4Œ8Æ?Ü/Â}Æ?t0ìöã?ë ™Ó£?DUýÁX?xéMî ?}hyé¹Ý?J³€-Á?êƒsd—f?{•  Í?&)ðé& ?ö¯²?T—õ!l?ïÞ|¾?Îù D Í?Ò·)·å|?Íi³ÏÔ?Œ s‡ ?âmݦ¢Ä?²é`>4"?ÿž$7"?éâK=Þ?©E’V¡?z¯ ý.?ŽÀ •»Œ?þ|žˆ’·?Ê¥aëc”?âÖCÒÒ?1QŦÒ?£p香?0RýÁ,?ÒãõÜ-ø?ƒ‚l?/lmÙp?¾óÜÿŒ?‡ù¨?5ø?||?:20J?ÐÁœÈœ?t@CϾƒ? õ¹ B?³tÚ9?*°¨¤?»m̹ý?Z»íü? 70÷*?²*Ï~O? YáN©ª?|ós›?´˜IØ?ÏåÅ¿?” nã%%?5™ÉL£?‹ÝU8'†?|`+pØÖ?'dyÚ?>õõP?U¼ß[?x1|Mä?Åõx ¦^?D¸&¥ü]?àµï‘.?z°Ù~ÀÝ?ü–ï¨oP?iJ´nÒ?Þ áBÄ?†©‚z/¸?„î‰êë?Ýd.WD?wÛü'Å?)/|¾?ÍUðW ?REÍmÃ?¾Ñ°³Î?&\ã¬?œyS> Õ?,²šÈ›É?×””vJö?“lÅÖÑX?L—™¯(¹?ç‡8œpÚ?Fo­7|?RصrWÁ?¨ lé²?opQz?¦´†älG?ÍwÀOÂ?Ï™²‰?[úz?õ–Óm£?èÍr?EQœÌ?½{Ä0?U‡¡Pw…?î¾@ þ?ºZtf+g?}«ø¦û?ñ ?tlr?ÑPWotó?÷}¢B „?kÃ60=A?eXl£ÃD?5›h£„~?'JÙ(\.?dîÀš?ô ïK©?ÃG¯\Œ?¼ê¶’HJ?Ôï݆þX? ¿-S¤?S.1w”ê?º4…“± ??éÀÌ?ì#±?ÆÅ,¶6?ЊV{û?þ3hA(µ?<¿~7(ª? =å·WÆ? Û¾„A‰(?!|' 5_v?"$\Ë{âF?"ÓZQÁE"?#}ˆ7È’W?$¸0?$p¤×\?×%\w?ž:š’}?‚`BæéÚ?šà­ú??Ñã«?l¿î2t?ðì¡å[?aîQä®Î?Ó}e³G?E•ßí“ä?­MHôZ¯?µ„¾l?RŸZbYÓ?¶XÀ t?Q4ÿQ?7‚^þwñ?d c ®b?».º«CR?ĉHnQ?d&8šs?¡;¹]WJ?âž·É?<Нê8~?¾!jgt†?iY1Ä×™?:'¡^¨3?'ÛÛçðn?!B…Å}Ü? èvlD?À%öÝ?*‘6A˜?G³à3?)s Ïê·?쨘4? T° Ž?>l‹»Î?µEh}Ú?óÿçÓfž?÷6ðµt?ÈQG^Ýj?u¯&5ìü? (ÉjÛ^?“Uø²4?+KM¸?ÞŒ·A?9¢Ç À? n|buFî?  ‰ß‡+? "ê)á_? !Ó¾W? @ðpvNÔ€?}¤1út?%nô°Ð?ß39™¸5?«<Ñç ?Œït¾þJ?uÌ&èžõ?©‡t^ý?Æc‹™î?Ô ^…HR?ðÐoýaÖ?9Ãq½è?ÂÙÚ†?Œº.}V¦?zhÜ*?µÔÿš-?à{ÖøCH?èG“lC?§=ç¶j˜?¼¦æE?íz†¤ø?¿I>#ñœ?FŠÕB‚Í?¯cF²l,?«¡êÀ?9|ÏÛmä?`L|””?}4GneW?–(îæQ?¦žk S=?ŸaÔˆ8?rd:£?" ã´a?ÇÓªE?A²? íÂ;z? ›`t¯ö? ‘«WN? ÄQØG6u? Ímšö?€œ½?*¶«ÞÑ?Ô³hn­$?•3Œ1N?" ãrÖû?–#k÷ŽL?¼ä>æ?ÎeAm?Ò†GL÷?#Çm‰Uà?¬DXÛ ?Ov~=œ?ùÁ{ò ?¦)Õ ?U(­5î?rÏÆK?‘Hù¬q?éÈ1R?õÔdq?º_ü«é*?[#nƒn? ²· B‚?_å/Y•?\Lo%‹©? ôk? gLt P?W«ôµÒ?’þ¡KaZ?§ ¬ ?eCsúkU?§€&f?\À‰i?Œ /8ö?Xqçf?ð‹ eO?…ˆé_Q@?FšZ~îø?W¡âtY?ÎS÷çS*?¯gö–(e?ðö÷ëÿ‡?ï´ÒÆt?DÝížáu?#o­>[u?÷ÞµÌÿ?™ØRÅâ?åhñ¯(î?ÌØô²¢?]òµ?¶?¾—èÓÐ*?ÅàŽF?˜2˜`Ô®?BÛÁY6?,íõT=? yÀq? Lùº?h˜Ã?&:£,5½?O·š å{?œ p£ä?issk?™±Ùn?vÌ6§?vâðä?€¶ãª×Æ?)·Šëw?x™nÔù?‹ÁûŠw>?¤„Œ©µ?¯bWèM‚?å ª?–”ÞJp?Lk9ýJô? ªÆEˆ?¸ÀsK?R~Íþ»?ì_iH1]?«%ÑJVÝ?²0áÁq?Í5˾:?¸ü„üÒ?‚ ‚K$?=SEMP?Å“²,‹? ÷ÿ$]ù?nú—Á(?²*çcÁ?ùïºî’4? ¦7èé?V‘«uÖ?Õh¾’?u R”w? “ˆy.a?sîÿÙc£?ŠÚ£?I³dg‚z?ÂÜŸN¦š?L¬ï|?]“~ ­'šp?V`ek?À茥ö?ëµgÌ?Ðl…´$À?ÝV€†ì?Eë/¶x?A‡ö¿ x?lÛòž?$eß{Ø»?|uF›?+6÷†\¥?üAKÆB?=ïÕY¬v?|ud|‡Ê?Òm,”È?9U (ë?ªßèodœ?!"7ºO?Y½Þ‰o?(}T}!À?ÎR¾ùBï?–<ŒS»v?ì«5ÿÊ?„øŸd`‚? O +í¥œ? â÷b½6–?!zê÷I.?"ö¨èâ?"›[;d”°?# ïÕ1 ¢?#T¿„Ý`?#lÔZ…?#R’»mn?#æD¥ã?"Õæ<ïDÁ?"²³AôÚX?"ÊJrÆ|?#(Ix:óœ?#ðŸª?$€Dh–"X?%=ŽRÂ?%Ô¦¤t&?&&Zàã“?&Öî®Ë2?%±¬. ?ª?$ûɼpS"?$!± .&Ø?#Qªß‹³?"±ÌŒ)Ô?"UÀ ;®Z?"=VS?r×?"XYÁS5A?"Œ´'§cw?"½çl>\?"Ôá"B¸â?"ÆÒš™~?"—Ó¬EÄ•?"Wܶo?x?"’$tªn?!ó4+#˜º?!ã?{%mv?!á9—‚oX?!ÖÄsÕ8?!ªìõ{?!IŠ)?/á? ´‡©R?÷TØ8ê¾?{½DÜ?)}M}_?P‘ªÊÐ?8ö µ< ?\®ðåFV?^Gq‡{…?9nÕ†?mP:çTCïY—?ñdjˆÀ?ˆ¬»™÷? ;Ùð?jÒQE¾?•šÂRþ?|º˜Ýq?!Ì<_Í?™s©$•P?÷"G?Ø?C×SƆ?},±ÿÒÑ?¢B¤qZ¤?Á= k ¼?ù¡£×e?nÃhe·ú?2ic¹¥Ü?7¯fý¼?X^ÿ_&À?le÷æ3¸?aðÅã=?FËlˆ1|?>Ï|Tù?oôf¤-B?ò]­FpÅ?Ë=…œC7?í;2X‘?:˜ O"o?‡Kg—#Å?¡XÕtJ?^fvê‘?©¬Ž€Æ(?ˆÍfÆ?ßvtJ?[ÏLñ9?qBD?ŽrFanå?•vÒx?ÄQ¬çè?ãª.j?ŽÃ¡ !y?—–ÞŒ²?‚}¨ö/9?¦†²G ¦?wd‹‹‚?&D)µž?O£c3—2? êÝ8 zS? ,\‚³¿Y? œC?¦? O(îKÑD?Ƚbžºg?bûT*½Ò?(Aò!Õ?ŽÖ§…bú?B_llñ ?·y\ÅÇ¢? ‡]k )?gº-5 é?õÁ]ßàX?Ðhæ€?ùŸ}ù] ?b cáµá?ó{Š1ýú?ŸrÓøÊ?a„Øét?5y½µí? ]ÖC†N?Ã…8Aò³?8-)ÔçÕ?Q¹þv<Ù?†¸c€?´H_f!ô?g.i9Ñ?jøуü?àUxí7?ÆÛÒÄ?3ù|½º?jñÅœÓ?ØaAت? jÛc‰?-ðœ!Í?™êŠÏ €?Ž e`Ý‘?ñÞ—Xl÷?×­úCyx?aÊ©ÀÎâ?¾Oœ»¨?"—9»î*?Å;[Lº?Ñ0Û…’?\ð’'G?eXÓ4™í?Ô&¡?ˆS7{I?[]´ël?!”’‰c?«`¶0?×MM±Á±?˜ÊvßÅ?±(ªgd?MÊ/ÈA¶?§>Â{Á?9Ñ…„A†?ìÖ«D?&²ŸN~ ?[J£¾z?•%ýØôé?ÅAÁ{cN?ë]~!T‚?ê»h$j?MgW¬_t?3!¸¬Â?ø†ã¿\Ì?Eê¶ ?cö%âb ?9GùøGt?»S¨Á©ì?õu…*? ÙýÞ?ègìr/?Fm*{à?¯×å®?QéLž:?ÝFl¸?ðºá:l7?¼âå[¿ê?yd‡Vü2?5ýÃP? è[,ãr?#ã$šN?…¯ê%°Î?)[|Fâ›?êaãÇZ?˜¿õ²? cô·n?.¨æ×Ù?[ý×Щ?³Kp dÚ?VÌ6“?Äeûæ›?§r@B¢?gbœ`M@?ð8ÕNH?Ž€ÞíÔÆ?»Ç³Ï†?Rëðð?B˜Î–:´?êAïV??d•É’WÓ?Óò*¸à?]oU5ì?&Ð)ô!œ?PþW¸¤“?ïÃÁÿØF?П[b?oæ›MÔÛ?ocu©Š?¹CR¦ãF?1#€ 18?GçoG¶?Õº|j_?Ê$Žçw¤?7®CUBf?R¸§RY?`ó< td?ž‹räö_?*Z ê’ ? MÜä?óA=LÑ?L9ŒFC?žÑQ."?á9[i?…¬oÀ¨;? /x/+f?Žr&x¤L? 3¾mg?‡¹ ðÁ?+XñUt?¸ö°)É?ƒö>7òÚ?q1øÎ{L? ;¶2)ð? ÄÅ Nò¾?!MÍíU0?!έ› ?"@«_08J?"M¶ŽÜ?"ÛÚº‡'?"ô!í%žÐ?"åñie§ù?"º¡:ø¸A?"‰ œ‰ ?"pfû椾?"yš÷Ú?"ïz8 —?#’yÅ‚ Æ?$aœ'[·?%õyc?>]/á€?Bø ð ?/)'ð›*?›tDTsƒ?H"cÓÚ?.s3ö`¸?@ M± [?m‡òÂAÉ?«ÔÜ21Ž?ø™æÌ?]5kǪr?ô\ÈG?ðÆ ®:? PÚˆX5æ?"/Ô+@·¨?$±Ruê?'¤…æÑ?+©Š9ï?.ä.s£à?0xú|Û?0v—]tÒX?0«:—?.?s#O~k?+l–†eWì?(-ë.„ …?$ÞÅE¢îð?!À%‹I{ê?û:5·–?h(™ß†ö?êÏ÷„!f?“¡±t?_N9£%?3^€éí?Ûƒ€ø?PÏáë¯?‚ÒX?ì|•#©?$'¾‡?ìÃË?ÞoFŠ‘p?~„o?Tv?†N_`?iYê_ú?“H÷pœW?qpDþô?G¨öª?\¯rxE:?•ôgMñ?»I—)Pí?Óm~’ ?ßb–Lj?îú°àÈ?Š=ì?î “yQ?P¨M 8‚?M¥æ…$ ?^‚ eÖ?YùDbæy?/¡¬ r?ðº*6Æ?Åx‘úI?Ù1òÚ4?He¤TZÇ?Ô¼™Z3?E±Ž¶%?¢—c!É?ýD‡µ~É?Y·¤¸\?Ï&3ðlÖ?¬ÞåF¦?ÇN•·„?+;Ù¨º+?Kì§J&G?A¿¡ ´n?(ìÛÌe?&ÙoŒY?`i£&.§?ñB1ëI2?ÑS²>y?Ò„Ìå\?­gÀäŒ? ½ð ?_ÿçÉ?ž™ÔÀ&Î? "6ƒ? M'èç? B/.UIÔ? ôóRj? V=FÛåÉ?ùÝ"阊?ÀÿŠP*?¢ ïG6? æmâ-\?µõ-…—j?à«ú¡?Yñ€?š³Êd;? @òž„?Lj-'?Ö~‡Ôf?-5LÖTò?ºÿ¹¶5È?sy‡÷Ð?OvÅ×j£?CÕ{ÙWö?8 ‰êH?¬ûƒsõ?„Y+Ä»?œÏ•PÈ?\€uôˆ?õÄû„=›?°Àú»kÍ?ϰ>ÑF?r­@δ?•O²Bßì?@Vz)2?¹‘²‡`í?]Õö¤P?×hNvS´?…Ú…4Â?ºIÛ…–?çþ«\%?~¡ÅA0Í?‚Qáp³r?q«—Ä•?4õ"Óo?Dfe€ Ð?{'ñ«?z…Âf?BùÐR:PT?³)6^? Ã;‚vŠ?Šä±ó? q'U‰É?°7Àzf?Š´Bhî?%¡V”?ù/reü¸? ^ÚeD£?;Wò¿F²?íER»0?Ù#Ç6 "?2qqœ?ÆG)&±Ú?Ò¹wRÆ?'â'‘/A?’mÞY?CR³Î?6Bï|Á[?×@·Ÿz?b òxVÜ?A^Ÿ_$?¼ÕÜ–B?~{Ý‹?T~}ÛÒ?Ö™|ÓHÒ?ó`3Ôò?£UÉœ?Ó>–³? ÔB™Â?‰DѸŠS?5d«‹?¬A?V7EÑl:?ú[´[„?›6ñ?îhÓm?“ptºÔ?'ò ÅYª?Þu(€Xâ?¸ÕÉoZ? UûÖ›—å? Ò"9á?!GÜô"?!®\mÕî?"#>‘×?"JhIæ«Ý?"{âfeÏ?"• ·Ó°?"’…%úÅ”?"x2QÕØ?"Vt¢Í?"FLLîŠ?"dÆÈïÅØ?"Ãîœ6bÀ?#e«¨X¾¨?$:ö²ÃÅ”?%&Й̎?&.º6o]?&§ f‘:?&ðGkŠçâ?&ÐwÄ!vh?&UX>Ýl?%¦°áë…?$ôHG£ß?$iU“„ß,?$™ð^]O?#ÿÈ„(?$ ÜEý›?$$Ô@åcr?$8kú)o?$7Þ­¦ÎØ?$ÿÕh?#îD)æBC?#³ M•7â?#z¦]á?#N½$lØ?#3çà$Qœ?#ý´ç»m?"þÞ{Äçô?"¹p§]j?"@Lè†Â?!”Îô z? ÆÉa‡V?ë1Sæû?u¹„Çvë?Dþâ“ük?H%FZN?S­ÄŽÜ??OFÇÖª?Y9ã2?Âz°t|ã?¹¯(ðð?" *?’v?¶¦1®?„B¿¬z?6q1Í„€?âÊ‘|ª?B’g[/¬?'5fò ¦?‰?µÑL?Šœ^BCð?j;kÓ’?l©Ö×–Ä?âð‰Ÿ?€YC‘*?”E#šv?Þ±€-š?> Úu{”?›h†oú?ì½úxÃ1?.ûüø?WìzVÿ?[GÐrëL?'ì°ðU¢?¸‹×1×Á?³ÓŒà?pÊh~]ž?Úv‘l(š?o‚ˆh ´?4ðûEq?$B›µ?7™µN˜?qåÂ5$?ÜÆ¬³)C?¹jIÎÏ?XZÞ½–`?[F˜.9?y°Y"Q„?ª¶‡?êüõè´á?GØë]üÐ?Ýa—…?ß–ü84÷? Nû+M?ä?"7°í9­C?$ÃÁCDæ½?'Þ ½_P?+/¡£ †>?.*½Iž—?0/‹—Ÿê?0m´…Ë©*?0J Ãxg?.þ/VW@?+#v:uEä?'âÙv5à`?$—ÔÁWÐ?!}k<–?(.jçT?÷8Ù–„ˆ?‹îCd"?Qm n¡è?C¶|Ï-¿?Cy.Yƒ?³'}c?täã´Ø?ê‚ ?“JßÚf?éç«%i?cßÏ ?àÖÚ²?˜UæU“?. :ñzŽ?•Šwó.¶?´Ô›ŠÛ?z„m†{¯?éi@>(ì?¢òºQ?$)XR?#IE§¢?ýßîuØ? ›63?(¢œ"?µ?[¯¨ÕBÝ?Ï_²¦ŽÇ?Œp2·»?œqÔ|f?>ÁeZ?d^AU®F?[*­ãw?Ã"½®º?yÐN?#?m«÷ÌG?¾‹ó¯#?x²’JzL?JÚµ+?ÝË*ͧ(?+¦äO¨?;côRe?Þô[9¤?ovhŽæ?¸à€¦5Š?¦½©g²?$¹-Àó0? üÊ÷Ìt?î_u§“$?ôü¬³¤7?S¬Hæãw?(v-*ü?eì/Ž#%?ЦÅ:˜? gØ•»å?ÈÏ’ÁŒÎ?ÝàKóeJ?i+_A—?»ëÌ8&˜?iõÓ—? -A0>k? á‘uà7î? Q8™ÜP? '™ßÖ¶ú? "†õ¢Æ? "³J¨?8Ù,*6?ÞZy™ŒL?9'z{g©?im.NH?›„òxT?ü èW s?¬%ê$]Þ?´j{Sß)? õ?VØi?©Ñ\—àH?yÂA’?pÞ×iÂ?|’ƒã‹¡?~—Þ?L÷uÁI?Âë×òÙr?Ïx¥¥?†”u¹g„?"‡Ûþ&¬?ñЃÖ2Ö?9 ³ƒ˜g?)ù{Õ?€ÓàõZö?CK|’?& |§É7?ø ì Ê?•LÜó”l? pŽW¦Ž}? àf¡š4?! ùâ¯Úx? ïç /ÕÌ? ·Jƒ°?Œð”ÍDj?š6a‰?e E‘®B??'„Ka9?uýÐð] ?>–Ñu{Ø?¥\%·ˆç?’}iÕâ?ÙôRÅ*?IKÜqö?¯CÁ ˜?áâ³a^?ÅÆ/:J¶?^¤]›U?ÊÚt€"?=3SÇO?ç|g¥w¿?çÁyŒ“?>þºFêŠ?Ô$ìJ£?€LÀþŽÇ?Œ¹ ?“…Bð+V?Ü’a9ú?ǯé]”?f‡$`Ü?‹9¹¼U?û']/Ì\?Æ™CA!?d£[?Ìð~X“-?j¿L£ë?!¼.ä-ë?7ûes[–?c0‚öE?·ËóR??ßÐû.W?ùw~¡ž?Øäå6?ÍJß’5?Çêí|²´?ÂÃä Ô?Ä7a~?Üh0½D×?´ÉLÕ?ˆš;&<“?äÉb›?¢o®û/Ò? ½•¿•Ú?2¹I ~‚? £µ$˜?𡹏Ú?÷¶ |ÜÊ?DÔ;‘?¨nÎÏ~?G½,;õ:?:ÙsY·š?‚7à»?É©Ÿ?‰w€N”Ý?ò‹’%5?#Uf|?Ÿ§†(?í_ºíä?µŒ{¹†‡?‘p_ù*?¨½ßZÌ?ñ?™-½?—Èô,d?‹ªƒ¢ž)?µ5…ÀÅ‚?ð2hÉq?žsĤd?þ¬í!â?“QÞº6ë?Å«š&¯G?›”óý}Ö?/¸kCm×?«Ò°ÄUÚ?;¤­=ÍÄ?üxº?õU Áf?“{j÷?a%åA÷?Á€”$?Aœ^?E¼?éi´ß0?µ$zt?’à÷vÑ?i¨=Š–?#Õô¡¡?¿ úf@?H¢*Åë†?ØÁäÙWq?„’àO>ú? (ßG§sÖ? ™¨2žb’?!úÀ»ñj?!g«¿¤ÉÄ?!²­2À¢?!ê‡#R¥é?"ÑŽ„óË?"5X/Ç )?"J†RmÉ`?"O”ÌúÎ?"C{©”é?"/ÉÞ?")˜'?"J–äÃ~?"¦²NPH?#C°ë¨Ë?$ã/äîT?%¦ž\®?%î–±- Û?&¥´ƒhù.?'‘Ud¤ ?'š¹æ\˜?&«‡ JäØ?&`ðhÞó?%ŽØ 6¢?%&Ø{ocj?$ùÜ]»Ý?%RÞIøQ?%#mV–¿/?%Hž!õŒ?%[ÁZ/?%OêÁÿº?%&DÞØ?$ãÉ3¡Ã?$“êŠ=@>?$B««~5Å?#ùnàœ_ò?#ºb&}|¸?#}ÍìØˆŒ?#4å¶µR?"˵Hbá?":#ÀÈNL?!YT«ØÊ? ±…úïp?Â[€ eŒ?OÒY(c ?@T¥(?=/Ÿœ?-0ÐZ¤î?$Á©_ä?ýèÝâ4Ø?ÖÂA#Žn?æ/yÇZ?`¢ñÛ£X?_îaêYŽ?Ôùl^m?A_ÿ¹?C# 8{°?³äu?ôÙû=F?'_=Ê?>ÊM' ?/zlÇ3E?AäÄnÂ?i×”‚o?§|Zlè’? m ÝD?œ ÜË`L?bmb4ß?T1„S`}?cÀÒ ?†>Òåí\—?Ñ*5fõ?¶DÎÂ&?s™m~–?!ˆ˜hD³?®ìÝŸB?Mм‰y€?&VÅÞ9?UïÐ?å–]™D?Íõž_V[?íq•³×á?»örrÊ?ûÞâ«¢?†¡‡Ó§û?¢µÊg¿×?YÑhùÍ?¿=qBN¨?ç‰u+È–?资>ù*?åÛ¾ vN?“>‹vô?¥wßÊ 0?½ö |L?Li—è§? %ÊiQR?—kh~8?™0ÕÎ?Ì:*B\?f²óF?¶ÃTHCw?&¢~In.?˜¸ŸW? ͲÝ1³Ö? k'9ÕY7? €VTîµÜ? ¶e/D"i? Úû¶Ì¨?"rtm J?õ=‹ßŒ?<lr'??;AÚ4T?jŒmök?Èÿ6‚¥?|Šb?‘ª†Ð¢_?²iE!ï?»Ê¼‹ï ?¬zò"¾?¿E„ÏwX?ڶص:?ܧB¦Ü.?ž’{0f?²› Åñ?û1ÁjJ?ªˆ;‰_j?OT2¶“”?;tÉ|?±F­ÄR?Ëæ>¸»?s+¢.?lçkäè?xí¶‡8?bB¨r? †œÈ6>?!3rÕ½ ?!­ìøie?!ìdœ´'h?!âp¶«?!…½†ø=6? Ò/‰½ÊÏ?£¾WOýŽ?BZ§>&k?Ö‘å2Oº?ºf"W·?,bÅM%?>Ü”-ÅK?ÛQžÿÖƒ?Õ Lçº?ú¢€›»]?¢jNz\?"£e?t?óÒUaü?š’~5P?2Ue»zÇ?äò_…Àÿ?ÕBºGa@?¤ló–?¸À E?Wõ<ê¸?? Ѩ¥Eº?Ö‹5g¥Í?aïÃ'?»3(î‘?ç\–ýâû?ïòÅh„?Ú{zp~?¤ŽØ:?F$î›9?¸Tn£å?û_=ÃJ?¯êú¬?%øþœ§`?6ÚÅäJ¾?a-Ïä¯ü?´$|HÈÉ?6þ'¹Å?èW dé?Ào’?²?±«~îü~?²$*V?¼}€‘ûÄ?Ô¿2§O?\sŽ?W+DÑÍ‹?ÈB0·q?GÑͧïº?ºmáÅ)?†¶Sá? »Ùn)??Õˆ¶WèÂ?dlßXX?ʇ4£P?¸}™ê`?~ÎÏ‚? S«ÇƒX?Ýô‹S÷?ý97{º°?VžùÞ j?Æ''d?&R{<³?aNEiøF?u'Ì[/–?oiÌM{+?dP#°j?hm*ˆ?މ—²Þ?æìù«J?w¡ Íx?>Çt¾?,áC?ÃÒ?&D[Ct? B…º½?¿91X»?-ÒTþB?P`ðt—®?0z²ý±=?çn B?•Ræu?Z,»ŽŒE?F­•>Z?[äÂŒ?õƒ¤W?Ýüžñš?JÞŸãô^?ä…Î ?´É¶b?µjh»#K?ΟªHæ•?Þ4ü§Á?È2êö?ƒh´Œº?Oþ*ž?±²QYÿ? -E­xãæ? òH7¸Ð? ùd>ÙhL?!ZŒÕAØÿ?!¥`å”à?!ÔqK)÷?!ìöè?!ú)¼d3~?"UT£Åv?"SG¼žU?"›±Öê$?"hC¦ ?"šãb4?"~2‰2?"?@.`ê?"žY„ÒWr?#8ßíFZ³?$ž1u ?$íU£^üÇ?%ÎØ?¶Çn?&„Ñ{R7h?&îÓDpÖ„?&ý’3˜?&¼C„Ɔ?&O¤oÆèŽ?%è™qýæ?%¯´§T[×?%´•ºáÐ?%ë\`°„F?&5ïEmƒ°?&s Pc\²?&ŠÄkÍÚ•?&sô· –?&2š¸r^?%Ò|Þdu?%ay7v?$ì,Žƒi ?$y€õK0?$ Xòz)?#˜ÇGPGR?#ððVÓ?"‡¤©œ‹?!Úü H!Ä?!óùE" ? MJÙ¯c˜?”¨ÿÐH?±µ7c$Ú?‹_õøÄ½?“ Nó?¬èŒ{?¼¯Ñäs~?»¯Q€õx?Á»+‡ºd?û¿ÀÄìò?–k¹Ñ?§ÇÔ² ˜?"Š"µ?ÙIñ,T³?˜¹“ºà?ü²Šüð?t]Ô+Â?ÍeÙ'P¾?4¯„Ö¿W?{E@Çw?ÉŒbâ³?8ö—bÓ’?Ð\V®˜d?‰ ‡3Œ?X8ñ°Ûì?5챿î?ÙI?<ëzî=?Èìö3Š?íôþL½p?¶¼0ðIÉ?RòZ\u?Æ>=I6¶?(Ƹ«¾Z?žq ~x>?E™þ"ç?(IPmÏ?9ÓPñ?bŸoYå?‘¿am^?ÈnÁ¸Ít?C¡b?‘©V52[?@œù÷¸?ØÁWù§?µîk—?3R÷0Éx?X‘žéŸ?–F÷ù?l¹¥Å?»ÁSBD?ü] M? þQà¸i~?"ï ª»_?%B%½Q .?'¶X;tP?)äòðŸ *?+_ÍÏÝ?+ÜH^0˜š?+Mf‚Q÷?)ÞÜ!D$?'Ø,˜wº?%~È?{ ¡?#=]ÙtL? ¹ýì–ì?È]¬Zö?ÿ<+Dfá?ƒÇî]?H’UuBö?ƒ×R)’o?®EˆÊÖ?Š)yи?ÌÕÖÆ®?1J"êN?‹÷Ñ×·d?ËàKÐR ?ó±QMžø?¸a¾‘²?B®°¹Ó?Î "nŸ?CH Ö·?F^j}J?Ï|ã6-—?óI%ƒ³Î?ÚƒFY##?²"Á??œ?›S Hn?¤DlóeV?Ì.æ„$ä?›‘Ž'?l•2„êì?쀪ö8?å ½šg?JÐ@¾Î³?Ê»«Í?§G·n^?-¿Ó1h}?ªq`º@?;Î\¿L?×uâÿ?sLŒê¶?m¤G&?ºmÁgç?çMY‘É?ÁæWµ¦Ð?t¦*h?ÝÑIŒÕÃ?ò ¥ºŠ¼?¹žÀÅl?A…@‰4¸?˜ô›7?ª?ÑB+Àÿ^? $ªmƒ©?y?G¹ –?QB ¶¹?±ñ£?†8y+/.?ˆüy%€Î?PIUî ?{È…Î?ÞO½ÉÙ?“ж$¸‰?õ{H:À½?q(>|Øù?ZÌ=¦?ŸÚ–h|y?r(A´%2?ÆTÉi?ÆrEׄŸ¹?ݪè#?{E/"h?Ép'T?í{<@*?¤ÀšŸ?€?Õ„ ?F‚?©?w,4ó†¢? ÃS–… ?î×)H?@ºDÖ?5í&,ÖÈ?_*óp´?^/û;&?ÐäaæÏ?^‘º=ðl?H׺ ?ñ]‘K?Ÿ=ÚóþÊ?£n¶wï?=-hŽ?È?1¦?H®¹?Y(‚L}?l‘%k§“? )—ô¤ ? ûƒmQÿ?!¦xµRfœ?"'LUB­¹?"t3TVì?"~{Ðß#?"5Ý#‘ ?!˜>? ’]å³l?¯µû{ïr?OÇìÄP?Ä”Fyj?óÍ‚?¼.x,ò"? üC˜ ?¸bÄ8Ò"?”ã½Rg²?}±3vÏr?\Kl D^?*3Û‘´­?ñšªMe?ƹ½!Ö?Óԧ á?ø<îQùã?h .2®? uõ-ß?ÉÄAµšH?éŽà?FÉËÓça?Øà¢`Q?>À–ý³?y9DÁ=?Žeu„ÿ?v¡•­„?H¿¡ÿ¾#?âwšÜßW?G0c.?y:¾-î8?†Gà—AL?‚o'”Þ?„dn-™Y?ž°B–ý:?Þœiäu†?K=‘¾?äËtò?§^¹Ÿaê?Švfò$Þ?…e3{ùÿ?“’®ìÎã?¶·}‹m?ôÊuLš?OÆk¡ïå?ÀóÈi?5n›§)?•B×e?ÌeâÙGå?Ò+§ Ú?¨tÌc?Vœè]G?ä¶ZmÍ?]4½½?ÑÅ´°/õ?[ËÜ¿ _?Œ‚9K?³a/Ô?0•z¾ÚÀ?t±öO ?ºß½éÚ?òé¥ö­×?Â4ý?9§Üê[?Y2kÀ½ô?))…Î`?¸1¹lŒ÷??(Eë^?o[›)Qd?úw&üb¢=? GÙrÕ‚ì? œÅò¿I˜? ýSšùº?!arWEÌ?!·Un N¼?!ð¯n‡9B?" Ë Õe?"ä’´ØY?!ö9‹Ï8Ð?!é±Îïæ?!å­[÷Ê?!æ_…¯Ñ?!é÷厖?!òƒÀ(¹Ž?" (r±?"H ¢Vß?"³ÄS» ¸?#Qœ–¦E&?$ˆÊÃß?$ì‚.ŽÂ?%¶ñ¿KŸ?&Wˆå˜B?&´Ûy,Ìn?&ÄûîCä?&‘‡J¤#X?&@}AÓ%®?%ÿç[9S¢?%öcvJâ ?&0|J‘Ê?&œƒµßg?'(# Û?'m°l¦;Š?'ŒÇc?'i)áln?' ‰ƒÖ?&‰ñ %Â?%ôgv-5}?%Y IÓ ?$¼Ç"10?$½¸¨äÈ?#vܴ̤ ?"Ä%}Ïj?"‚¹t‰×?!? µý? wJ–°Bô?kk¶Í?§HA?Ä_5åœH?³Pº!œñ?É´¶rú?ö¨9„€?%rë(Õˆ?Rø£1º?ªFÚŸ6?ýMT5øë?¾Ñiø?åŸFµ³…?e‚Ÿ¨5n?RzÜü×?Á×UoÙ?7ßó`U?^Ö¦J?9}zêÐ?ßæ´†Ú?n‚£×¿N?üpVM?øí?y™'åJ‰?9D'½¿`?HV±°ÑU?‡;͵?Ôhf¼? W3ÄVØ?¿ž¬é½?¼ 1–¨?þùì`X{?ÞM‹<éŠ?‚sE’>?0ˆÐÿŽ?9àV¼ ?ØŸZð»t?_>¶ã?×Óìܸ?Ò¯h’d•?ÉØ Ek`? J"w;4r?!xé Aì?!ºSûŸT?"Bz¹+@?" 5–eüóe·?Ðùr?Ñ,Õn?‰“/ ? Vû«Ê“l? §ÿªD|? ûÓy¦(ž?!Z7Ój³?!¹a•F?"à˜ssî?"5²ê?"=O•‡~]?"&W)ÊËc?"?(¡Â?!ÝØT¯6ø?!ÇaLw²?!¿<’eÇ?!Æ8[Ý]Â?!ÞÅÖa1Z?"ËØ¯?"iCäe9??"늛çÇ?#“UmŠ«?$Q6e^?%X¹Bª?%¶oÔ­G?&29/é?&rЛFú?&tsÕ ?&D]€¶ƒ)?&[OË›?%âÛ’V6-?&PmÜWÙ?&fºD“?&ÿ%âÄKý?'œ È} ?( ÇzÂÆ?(0ˆ/j%3?'ÿßÁÜ4?'‰ÚÃ)JÕ?&è’Ù‹.?&4aÜùÀ?%{Y·ø/Â?$¿”¨ŠU?#û†¸=‡#?#)Æc/?"KÉb8ò?!g“Zls-? ‹Síªâ(?¨2zªf?t„[dV?ÎÊà t?²²ÖšŠ?»Ä†> ?æhóHq?)à*7˜ý?{§r!úO?Øhýëw?K;\ùU?ëÏlÀ?Ô M%?'ÔLlÚ?—D%‚åm?B‰a•hH?ãë‡b?Týjú6?†÷ð_ÑÌ?„!:m$Ô?cˆøç‘£?8ç,)?×ãniß?Äzü Ë#?hÙGMÀ.?ð+±P÷?cçè\O[?Ökz?Z+,UæJ?øÓêñ?ªLÀ;„?]di1†P?úp|Ñ?s1ÿæX?вÜl?.À˜¤R ?±|×ö_?oÔUf`"?jroPDç?ˆ¼ÚŠ·‚?ª#Û®j¬?¹ÿOÕG¿?¼pìç“?ʘ”7íg?ÿíxË?xC]!Ým?()Ü?ì?˜Êš”"?õRvâƒ?÷bS§®? 'c?4&k“ ?}8|·ÄÅ?ïnÈzx2?šÏDÃÎ?‚f:‡? åw ]'F?"IC!ò?#(kQ£‹?#û;åR?$lÍÚˆ³Â?$sÅýï¨Ú?$ˆƒ7Áô?#lnÝk?"v5ÞEv?!Bo¼Î`?Èk ð?ö.¤œ½¬?`úš Žþ?VôŠõ^? ýûé¡0?†Ì“Q?©ä ÊŽ?7]Öý¶Õ?í© à|?Ÿâ©Eç?Féðµ?õ°C_Á)?ÊFMÄ/õ?ÉvÚæË?ÓXáLQð?¯¶{úÊ?#xA–b? L™=É€?q=IóÐÍ?{ú×·?hFdK> ?oežØ®?µQz°c€?B±PŒ˜~?Sê_?ÓÀÙü[¢?‘ãñzf?*;Iÿ?˜°¤êÒ?äRÕq?Æx± ?AˆÛŽd?uÓÊ2Qí?Ë[$µ?Q·Še=? µbn?òþ³<(.?÷`<ÖÎ?£¶úûò?/ãˆG)±?Qj&t?hÑØÀ³N?n‹T?b9ËûU ?GêxŽŠ?#eås?øz,¿†?μšÝÏÉ?¾g®FCº?ìÖ‰‹e#?€0£—a¢"BÑ?ù_.YÆ?sTš\r?€‘¾ej?\“ôÏAde?ŠjÉ—­³?àóiÙyÆ?+dfºn?k$«`I?¢ÈI`?λ¢^¯?âïñ‘ ?Ñ¿Àûí§?–“‡`8A?;IMµÍ?Ô êÈSû?uWÆtÚÙ?,TëT`?þù g?ðˆQˆŽî?3Ù%ì?:pFd¶?‹(r¹Ëð?çT²>ã?9gû&Ÿ„?p;¼Û™?†þf• ?‰ªÏo?ŽÎð©å?²™Õm‘?$_†Æ?…Û-<.?#­äL›Þ?Ä/#p?NÐfc©?³Ü•§žâ?ñú½¤Ëõ?-T‹Æ?¿FJ~¢?(ILƒ8À?9ÖBh;t?`o<Ðú’?­0á“òÖ?4¸%î ?Ìäùx?*?ë¨Ç!?Šs×?Éᱸ?iOñµvU?—O"–š? @fÇ9? ™ïëÏW? çþìþ*?!9…‹Žæ5?!“i~¯aŽ?!íx£bå“?"7ú«ñ?"_ûœ3Ý‚?"a­¥~?"@íÍÇ÷~?" K*?!׿ǚ͟?!¯Á–¿D?!žIË‚-¢?!¨ºIÚR?!Óψݲ?"%1%$”±?" 'iásõ?#@„tw;?#÷Ý4^è˜?$°½îFðZ?%UkjÙùd?%Õ! ªøË?&%]/'?&ALâÚ¶û?&,L\_Ó“?%öØKG·à?%ÀZušÉ?%° ˆvj?%äÚ3€|?&d0Z¸7G?'Ö$p?'Âl ÉÞÅ?(<ÍzsÌ?(]Çûxµ?(!!¾Xÿl?'˜ÏDðè?&ã¾»«ýå?&¾¶ÙD.?%U¯ã¿F?$ˆ´¿ÏŒz?#¯”Q 9?"Âúý´_i?!Æ«çkä? É84€þ?¹ŸxÐrÒ?øAŠB?¾ ·¨áÌ?—}ê\…?™ÃÃâ3Ì?½«qÐ&?ÿÔûX?]4qL½?ÐY³Õa?WBTa¼Ç?ø‘ÍXÆ?ÄÊã01©?Ï–Õ/Ѝ?"È“Î?²àrƒ÷?^Xp‡Lx?úµt«èˆ?h¶£Léî?¢‡µ <„?¹„©¾û?ņ]‚+ù?Ñî(SC?Ö$olÉ?½»ìEr?w•XÈ"Ÿ?@ 2?lEŸÐ‘?În³ûCk??'@á?È„$¿¼?dõzaåÆ?ëPQ1Ô?†TºäÊ?é™ú?5Ð4N‹Ü?‡­©) ?I„ëX?·@†&¤?¥}Õ²í9?±«ÓÉ?ºåÕóG?­…³HØ:?{Yä?|)<ù¤Ù?”š`þéù?ìºJQÌ?‚ÌØuøÃ?ES]†ú×? õ÷‚? ßßrt?¡!ø$?_ÇK¡ò?'=-:²ã?DÇmjú?f§æy6 ?–té… à?߃çFßD??ÿy`? NXÇ*? éö%KÉ”?!beÑke1?!®J þ£?!Ç¢'"‹ï?!¦Îlý†?!?¸9ÿË? 7³K?Ÿ•'®Z? •:Ú¶¶?]Ü—M£|?£G`B;?ý¤ƒeN?‘ºhk9õ?f8»õW#?W¼U?%³w«®í?¿ú¦ûÖ?wËËÊ?äZVèl?—½´ç?C ¶à­?V¹6¹Ÿ?çšé\(J?Íûqx¤N?í.b²Ø?!¦G†Ú? z‹êç¼?·Ì))(L? O~-/Ê?›®LM›?þðÛU‚?Ú2–d” ?Ñúö!(‰?7¹Žª?~Àî,Þ#?9˜”ĸ@?mEoÅ? zi,(?ó{Ç‹_?Ë»Äö‚?–ãý'Ôr?ZA9±î ?+ÿ– ò?ëŽDä?±Ñáw#[?ÿ¬ùi>Æ?qŸ¨Ò‚?öÁ]Ô×?} ¨ñ?û×þ“Ìt?oîE†i-?Ûµr  t??GL?H·ú?—nþ?½ ¢nh¦?³#TËÌ?‰7øŠ«È?`r®ž[?\ïø1Þ?šdõoµ.?ñ¤A?Ös’ì„?£HáRä ?aˆY=Ÿ?õ”(ýÔú?VONÒ§k?‰ÕÐ÷¸?ŸyÒ ~?­¾XU‚?ÈŸOá.q? "æ}„?bn¸Tà?ý7æ´’?ÙòËÎý®?÷o;{?DÞˆ]4&?¢…ú¼±ä?êIS(?ÿq4”? jžåf? ¼ÅN*?!çdpŒn?!M€¼Qÿ¹?!ž£·õ#ˆ?!ñ?"<§?"6R]Í?"_D¦†tÏ?"bæJˆ½™?"Bo¾AÄ!?" ŠÂö?!Ȩ r?!”AÄH©?!|Iι?!Œ¨›"ð?!ÌÊU!?"?¤ò½Ä1?"á÷±U?#¢÷ÝIGh?$m|t Õ?%%bç75z?%´åx]¾?&–¼—R?&91Oh(”?&2sÁìy·?&fÇ?%É"ëÓX~?%”}zoÈÀ?%Š#9Žn?%Ã.,8Ðc?&AçmTuj?&ëÊÙPZ?'‘NËQ:÷?(C S¡æ?(ZsÜ4š?'ÐøÌ* ?'@¬Ï©ÛF?&†£ÿ/˜?%½(3[0ü?$ò·¶úˆç?$#n4ÝâC?#C‘ñ÷Øú?"K-öø?!@ø‘Ò$Ú? 5¾Ô˜ªh?«µrâs?Ü ª{„?…ø8˜×?pÎÙ¤z?‰…â·?Å®æd^Ï?!dÑêZë?š÷÷1T?,3ÝKgÄ?Õ[v šÐ?š c‘©˜?‡r¾ƒŒ ?®|/ j?³.=Û—?·m¬ÇA?luQ¢? ¯€¯ë?c¡t ±?ÁqGòÁ?êŒm™P?7¡J?FBª¥Z?qLÞ´¸—?zäàý“—?OI³Ñá ?íf©àÅ?eLLìn?ÎôïNúâ??lS¹æ?¾”^@š?G™=–²?É ‘Œ9Ù?1¼Ó"’?yÑPŽK?ï—|f»°?àÊG ?ÔÏóCè?¹J¹ò¸í?I¹— @?+‹àÃ,Þ?Ó„2r=?ŽÍñ×?i\¹ ?_åœK€?d5àÒ–v?_Úê”YO? Å]áúù? V6”ðª? R$Êóh? Þ|c*?Ôj­\ê/?TD¿»y?Ï­ Ïk™?‘ÓÍüUŽ?ÉZüÍé=?|½.>Ê?Œ2 ~Dò?Âh49¦?ìÜ)»b?ô:÷¬o¬?ëO9线?üÉ«a#?QèYÙÂ?ó|ëYDÐ?¿“=G†?wŠ¡<‡è?Þ}ôÕ÷¢?ÔôîŠÞ¬?cÞ—ë Ã?¶k_ ?ž:§Rí?H©]€‚?q#Ù¹?¯ÆÃ5p ?)Y.k? â®åD?ÔUóXãÀ?•sËzä?ÕïŠÑêU?ªW«÷7¬?<Æoþ“?Âz-¿0>?pÕç/’'?p²Îúo?Ò»Q!v?‰‹…¨µ ?pÊè³å?]{54š?.Ó{Ñ6V?×UÁ=Àz?\‡r Ýí?Ð6Xºì?I¢:æ ?Ýæ¾hï?›Au§ã?ˆ´˜ V`?¨Ê³‘ˆ¸?D¯ÝK?Ÿ¦co¤?˜3U9^a?ú+œ†Ý ?¿y³«?»†(éUT? ;Øôü? ™™5æ?¶ÈŨËZ?öòOL?’ÓmWè?:ê4^ðè?ÖdþÛé?ªžËÀ?Ñ8[u-Ñ?C*.?è${©T?®'è@‡‘?ZèÉ~ˆ?qï¥?ÇCº÷?S ­â3?ÝÌñ1Ž?—ÚŠwëv?¦}3?ˆ²_´?ðoUºûÜ?‘Ç©˜?t£lB§›?ð…ß›?mÙ\k^?Ò<:ºÎ2?þ …>ŒŽ?ÓÐv(?4ÁN…©D?ï · Q?¡„~IJé?þaúŠ>?yòI[ ?I«÷D?† ÂËf¥?$ˆ¡X€z? §Àw¡è?+Øñ„y?w–¸> t?í=FJ…? ?l@EP‘?!ö@ÃXÕ?!´pЭ‰Û?"(z̺ô?"CÅ×Ö¶î?!ñ ›7øz?!.­.*6V? ,ÄÂÏ?B ?õ|cÞ?¢E`g?¿ÆÅê|?Ucb–?UUÚÉ?ª¨=»·:?A3 }u4? F†*.`?þ—vNx?fârÆ‹?b³žß¨?È…¢?B›qˆ‰á?Âù‰¦í?±ü©Œ¥¥?X¾1X‚?v¤<Ósn?Âg 9à ?ò?±?Lš”Áü?§¯3éh?ÖêõE ?жázƒ?ÞM®.‚¡?ïïéc& ?¬òŸÔ-[?D†`QJ?Nv/¹–?d¢.ÿŒ?qC:v?$ƒç;?ŸS–I?Ú0ùë ?AËÊA°¦?à ¦¦‘À?²]:á?«†h4Ò?¹¸«$¹?к †ø?ìæÞGî?†ô0Ì?DõãG–¬?>›?ig?ýÏ?jï^ȇ ?ý*JÀ„Ñ?—€Cö&Þ?"ØšK@|?…×Ë&&?­Ž•×?“½ÜR^‰??pzÐ?¿Õ\Ê?,s›ØÿŒ?Ÿï"™^?6hLB?rDÏö?ôín?PC‡0?{9. ?×~6øeX?ä•Δêò?À$ätÃò?}Y2—«ê?Adƒßƒ?5ž„&T¸?w˜bkõ? ÉsP?äúö§m?×4@ÞTÖ?¹‚þœ\?j/À•ÇJ?ÛMIsÜ?íÓgâ?-«òesL?Gk@j‡?yÞ9@8?ÔúœJ#2?]¨!<‰? {Cd?öH¼Øn?þ{©™?Ü•õ²Ñ?ENªþ}œ?UÀEéh? TmÈÀ? yè/¸ ? ¿¦Øó/I? üGdR‡8?!9×o$sƒ?!}šm*…?!ÄOBÄ?"}øåj?"- eŽƒ²?"7½ê_j?"(Ö8/ª?!瀽ci?!¤T:© c?!k@êü°?!RãÔ¯…?!lãÅ‚mL?!à Sr\¨?"V èÌÎì?#Ž0ŒÖ±?#ýIANJ?$Ûé>œt ?%— $(­8?&¥zý/Ô?&^£ÁPra?&jqo$5y?&KWX§Ë©?&Ù;5{?%ÍJ–%H?%—´ƒßç ?%‰4¤¶^ñ?%´ K‹þ?&FžPÄ?&žØ÷Ž2Õ?'œðX?'p.ÑäÏÅ?'tK€ ?''4Úå4?&™ÝÂ)Çæ?%ç¶l:eÃ?%(ްXùp?$fx–B°Z?#œ©R'"H?"¿5©Äz?!Ç:Ãÿæ@? »eãà4?[~³‘ÍN?k„ŸýPI?Ådñ>r?p×ÎA?ck—c?‹Û$g9f?ßAG~Q?V)ñÜ­¬?ëX®¦:@?™v0ç,?[ª¼4µ?7“çñ@?:t›+Êò?v3”+=ï?ôî– T?¨;©ŒÅ¶?p6rö? ûÔSÏ?Ÿo <ü?íb )Œ5?$\·ü¦ó?_ÔU?¦@³§)=?çý¯ß\£? ÀÁÞd?ø%h§8à?±Õ9‡!ê?Dn¼¾Š?Á„a)ñ??91ýL?O?°íÙ/uð?$Ã'¬?†§šWöÌ?Í¿vï?ø+{mHŠ?rºî›_?CÅLuí?›-»¶,?)ª½nJ?è`̃Ƭ?À¥ÈöW?˜®©i;`?a·w¢Ãe? ’hJ¸?êU’X“ã?ØÒ*8Lí?üqüý?S) Ú3?шíUsD?jÆÙ•Ù?€~m Ð?â‰&`e®?¯G?Ó?§o¥œ±þ?r³ÀY#-? Î>×C?v7ôuWæ?ɨMªƒ/?.™”e?Ããzˆ?™ûÈîtq?ª99/ø?Ú‰í|6¼?þ:SFn ?ÜŠ2¼??¤3ko‹? ‰ä;=+?RhÙ'd*?@ÍÃ3W+?l¯è%È?æTMˆ+?¾þ£nZÜ?g¹ûG?Ew‹É ?|hLÇø?1—±÷æ?Ú†¹„ôD?šqâ²?—üü?Ô;å3¼?² ,|?›hZyp¢?Ü Ú„F?øþÉ]?al¯âh=? Èiv×/?\¤‚OSè?z,·K?õBãÛw?ì~Ào/?¼à®NsT?LæK“ÐB?Ÿæ¢ÿ6?Ëê®Ç« ?÷YVÏ?CÑŸªÒà?”šr R?2+'R´?m‘$î¶D?)ìêÖíµ?ü‹hê ¾?;>µÂE?ëmŽiOB?ý@øš­??>ùqÁ±ø?^W­ìÝ?üuœtÄ^?Îê¼Õ&?½š¸úâ™?ê50CCP?žþ8*~?-H¦ Õª?Ð(+ *? zIL©?GY3Õ˜?ĆۂîÇ?¤t ?Ä.³ê8?—à &š?jKõ°2!?&týwtÕ?ñà06^?ò˜üXUÖ?Aàb L?æðoì?Øëá ?è–wÇD?dBéicœ?×JÀeOz?La^φ?«RÀ¾”?×:k©8’?¯«Æà?™ QÁ=?þ%c OF?w=Í“f»?³'s*”f?ó'4c†?p£ÇêÂË?F|•¨?wÉöD?ý/´dñ:?Óèv <ÿ?ýã ”bŒ?v8 ]e?%€‚ªv? o~òcÎ?!0h·¸i?!´'èm0H?!Û,lê³î?!’Q 9.ô? Ù{õ‘å ?N/¶Q`?VÕä¿?gã3Fw? ¦Ìzç?P^Zd?¢Ð†—|I?L°!G4?õóJ3?‘_¼Ãûñ?]ÔfÑà?K=I«¿?X%ûC- ?…KI'Ð?Ñ–(¤ép?9­É´ ?¶àåŽ?>¦&=CÏ?ÊFǼ?Lo±ªøÜ?·Ö=9vþ?” |wû?<é$Zw®?r{ðM9ð?½V«á…ÿ?' n(BY?¢*.ã? ®7n" ?EBuØÛe?2ŠpĬ?ÖeLãÃG?CzËB#\?ÔåèNö?ÎZ ÿrú?4˜pKà?:š…ÐM¨?€ÜaU‰&?ë·Ñrž®?‹O†ú=F?aFŒït?_V]5¸Œ?oCìB?~ç‡aKR?‡ïUÞï,?8XFW?¤Ùæ’/?Ó]Î.$?%ii®^y?žwû˜Ì?9òfûä´?éøOëp?—ˆÍý?'ª²Fx?î,ð*?–Ï8o ?bëW¦Zq?ï®P£cê?RjN].?ªwZSþ?9šÀq?À1•êBí?¤ýq¨s?¹»q­£J?âŽP€“\?üy µn?ðþóÎY~?¿ m*dÌ?|&6•®??M9ÇþÁ?X²Ç’ýˆ?·¡@A?kÛí——?^—ÉK?ejxA?S13£?`f1Í“?o/´;d?ž P¢z?´!>B8?Øö£yá??*&WÓEœ?²\A*?hÑÑÓ;?>Œ"lg?"r—‘¾’? :VžM?ñŽÌbÝi?ÎY³…+®?˜ç<…);? $S?;FÍ? lжáÍ? ¦¶2æ˜? ØQÇŽª½?!x„‘?!\Ø?!#¾qØþ?!Jm ˆ ?!´oí¢G?"`ù Áóš^L?ýßëÐ?jˆ…ÆÄ¯?ÅMŒ&%b? R?2r)?F“1fØt?V!dÝ ì?y 9Çß?ÄαPc?B•¡ìǯ?ìG†Cã?°p©Õ?{À™5ð?B_d«EY?‚ô‹ük?ÑFÉ%tB?µÛÛOÖ?¾Sæó^ø?ìd׎fë?;˜«&$Ì?©„ž¿?9[mP?ò›Á+àÚ?ЬüÏz?»Yé±å ?ŒfÂs;µ?$@Âð?}À\u/?´Â-­Up?ÀÞ·?*Z9OP?žlÕ¥O?3Ï|°N?ˆQç§Z? £ÍÈ1à?!&Ø«IQ®?!K×}›Ó?!Iƒq™¥? OU N²?Š®#âA¤?Œƒ-„X?‰-œdÔ?7€ay>?L]ù\™v?Ü0oÓ"Î?áNßýˆT?E΀œ!ã?ì9å'êƒ?¹ÙùK†¾?–Oˆ?“ iî?Ÿ|™¬ º?˸…­›?üX/?”EݾÔ?.¹ño%?Ûôf €n?†ÀwVM?ýü¦?wj`gðn?²BSÞhO?Ý6~K§D?Ûñ?m˜’p†ë?Þ'ßOM?KÛ¿”2Ý?”ÓÉç^?¢{M23?sH0U³Ÿ?D¥ [ð?žm“®?dfŒ?~«€$¤?Ý]sz£ô??Døëgë?»ºÈY”@?hkŽÞ ?K÷-ni?Y$Iµ°m?uîMéøŒ?‰¼z ?‰ru—þ?y”õe‰?j°ÂhÍÞ?rA#Z?Ÿaz_`?ûoõz ˜?…™éþðÓ?3| ­ÿk?ð”–np`?¡}´söÄ?(«”˜º?mHµ1à,?aoaÿ‚6?]–Ü?m¥„0Ê?·61ïÇ—? ›¤tàŠ?…­cOF?:Æ–]Ï®?!Nñám? 5ŸÞ?Ýããù?ÿçͰ<ô?Ñü'~W$?§UàçiË? û!)®?Ý4Éפ,?j­Çù‡?AÝš—–¸?EÔ:Î?LMÖ'?*žï~?•ÀÊÈN?¢„Q¼?#¨ b$/?+óoú¸?Tk¤ÅÐ?½­æáì­?l3dr@t?K¥ùì æ?;«‹ðsD?m7 ?ç¢Ë—)?‘ Þô=?$ ÆÎw%?¨<ÙLý)? ç:ÞËø? Hš¼õQ? x3ØË? ¡£rgŒ? ÇUÙø? ìŲr†?!åÔòÜ?!A:2tÀè?!gR/™5Ü?!|¤7;uH?!w=ì­œ´?!Va“7?!&‰W±? ÿ"ù~ e? ú» ~Hâ?!.Ð=#?b?!¦¬/È?"aC¿lXõ?#PD¼S±?$WWùžÖ¹?%RRWe?&Z}¡ú?&¤,bÛ¸–?&àµ?%ÝËm|Ü\?%ÌA Å>#?%:F?%L~µ•¬?$Þ|ÛŸ¸?$Zp{Œç&?#Æg°Â&Ì?##V6¤8?"mLlá’ˆ?!Ÿ{¨1Z? º _ Àr?ŠRX58¾?žþ¹e!“?ÑóNY†¸?;nH]‰?è¸â7³?Þ=Ùî?²åËä#?”°‰v$p?Aw–ŽÜÆ? i«°ÎC?æ‡Þ=|?ô}fk?«ÚYmb?µ «øò?û ßÍŠî?Œù s@?a&Á•Ý?PÍ]ü¯?+EU|¥Ã?Ðxh+??LàG;?€í¶Ä?Û˜¬ç¹¥?,Ü ØMâ?wÓ!ò: ?¨½Û¨µv?±±^¼¿?­(+?G¢Oi2œ?ÞŸ–7c?XWWµwO?·%kͽ?üÜlM( ?+Œ¹µ?E <&Â?S6–Üñ}?dµ—4>?‹þ¥×‚/?Ø!í¿ £?N¾NÒ0~?ë”GÂû_?£ÏÐÿ.£?k¾a»;¼?:´k ñ¿? AqrSý?äE @Óc?ÃÎ G^L?°Ô{øf…?°½…šBd?ÊÃw:? ,ziäš?~8v[?0¦bÅ9?O Ä$:?e÷\Ö?TgíuË?À(@?)›„ÁTè?c0êèÈ?›|Æ?þÂJ™TQ?§Þ°”Ð2?”‘C"¾q?©à¢F?»’j/Õ3?—õ-h?1¹žr?,I<”C?à4‰ÅS ?V$B‚X?¸²í‹¼:?-ûñ_ù^?ÌM+L??•Ìok“Î?yÿçò,j?^J¿?üx?+å„bc?Þ*ÿT˜?‡m.ˆF2?HÞõúô@?Aø|N²Þ?€KêÇ\ÿ?ûY-ó#Ž?›%øÞó¼?E[_Ä)?ç†eãô?{ „°? ‘ô €§?¤„Ñp]L?h½æ‰ô?oŸ¸ÃI? ]¥ç¢Q?!Å¡X ?!¯C ³Í¤?"^Ó”Ý?!åÖW­Ÿá?!M‹„¶û? K_ÌS¤ö?Üþó?[?kB,p? 67»?1ê©Euó?^Ê{ÝÞ?~?òÄ“J?b¡¶açk?hØñ-Ç>?F7U†ÏH?Èâ.Ñ ?á—=.®?ªÏSè³X?Sôvu¯?gU'w?'ÂÅÑ? ïÂŽ›”? ¢ÿ„¹'R? XfÅt´±?Í?èá$?òDˆVŽ?Ö:\¡L?!+ÔWZ?¢ÖÝS`?þ8y‚Ô?¸mÙ}Ÿ?iD…Ḩ?é˜õE?ŸL£WKð?¯Ä Ž?F•¸Ç;?†¨áK?Š ímÖ ?snÍT!?ve`yЕ?Þm"•?ùÙ“€IK?ŸðŸÍd?'‰ í*Ò?J_a\?“Psb¥? ‘¿6×?´+‹êšô?†B«†»?{LÓ졚?4ñà܆?Â#wTíª?áW'†Ô?O59Êß’?}*Ç߉?}gïÞ‰«?-©_õ{¯?x{ÄuC)?Rh&À ?Ç21„ž"?ü¹LÅÛ?'LøÃ?uyÖËé?•,¬k†?ÑŸ]ëò?íÑÚñ?bÇÈ%Ýâ?B`Jýª?‹…s,t?‚:V?À>ÕH‹Ü? %‘ñrV? ‚Â,ª"F? ˜ïÎ3ì`? I¬dÄÙq?2àkׯ.?8Ѱ~?å^­õ}?‚ýV}ìh?U)ï~)?ŠÅ`±ío?8~q¦s??Y‡I \F?Ö.´öºh?`nƒ$x?`O(bô?; :)¥v?ë[g4 ?¢‹åe[?ÐÐHAŒ?8̬˜ Ø? Â#žè??ïœ)OÏ?Þê`1l?Öù¸"'š?Œ¢ ®ú?(RIûy?]pcçŒ?¯F1gî?¿‘> Ã)Ê?&³Ö…£Ã?&ƒI¢Û?&TT|é`?&#SW}MM?%î >†ª?%³B+ôjü?%t!l ±?%2a$Ús?$î`¹g2?$¦¾ õ>?$X©å”¹Ž?$€ÒÞ38?#šcë·?# Ë€_€I?"³É€¸Ì?!çFáP®R?!%-jÜŒÃ? OŠ’ƒ?ÞÃf¬Ì?=Ãâ½b?u47Ž ”?ñ}?¤5òRk?˜½{:¦?×„Æ Ÿ?^‚¸úš?°îÜ? VJ‰ xˆ?!º¬Âx?"ÝSóH ?"ä½»šn9?#œšY+7ê?#ò19&X??#¼ÉµÒä?"óQ]i‚?!°a„Õ®–? (2%59?/ ôG2?h–g…ö·?Fî«ú?ç¢Âoòx?9Ø pÃ?|Å.x=?ûÜrЬ ?ÎÙ¦×V?Gtë?RœK«õ?K]~?W¡cg?! EF«N? äÕá>˜p? OBG,ò? ´0' ? ,eE:? »…ˆ¹Yˆ?*Ý|‰ ˜?ñÇóö=Ò?Ÿ*<ËÖ?ˆLŠ<šO?öw`+ËT?h¡;:?¿€³QÞØ?ªÇz˜q­?ÒWñûO©?<»È6æ?ú-•¤›? ŒZs/?Îø^%CO?>Þ¾øS§?Äg®Ä˜°?Çò ×ºÐ?WíØÌ'Ð?rŽik?6¹Ô“e€?Zª~ô¼?ñpAÔóh?‰ÌÅX`‚??|Bï)ä? Ön0i?ço“ »ö?ÝÚÐß?ñGq'ÂÎ?¦éWôH?Eš¼ñ;;?röBö ™?!מN*?ÃA ‹Æ? ÿí¸?}9¸ëîn?/ўꤙ?<ܽøÜú?ŠÝÉPð@?â4Û ¼?ýšªðÁ?ŸF&í¿?ŸÚª1?ñ.Kå|š? sáÀáº?Ñ {¬J?¸ÕCI9‰?—{›(?§AT^6?ÿÇ&Ž?ôp ó]F?@Î]Ûëà?á((Ì»£?±Õ¶â?¶RãFy?gª“F?/Aûd¡?ô_ôY"?ËFTh ?Î,åWþ?Ì´lß?°¯_›?däärœ”?FK´@?=$CX?ºÉj ¹É?&Á…;?kyA—ö…?§Û¬G-È?ñ{ˆHIá?J¹¡ÛG´?¢‡¢"¢?àVwÄdq?ô7ê6]—?à„»^t?´_Ë¿q?ƒEnø<›?SÝÂôÀ? Naóss?àŸ8‰?˜œe#´â?\›cÃ?DàPœÆ?aÓ~‹ Ô?©ñ¶íœ?þÔŠ0d?;™2?G3±½»?ë`A…??Ò¸LŒ„?ƒæWt?P¯e±°R?P–ļ8?8*°ç_? çÝKý?´C 3Z?oì ,‡Î?‡ŽÐœ?~¿øÐ¾?·K"ì?„b(ìÿ ?€Z`–?Dfd—,?vƒ'j??¼jtâ?1S›»û9?ÝÄo ¢?´¹qæuÚ?¤ýbH¢?¡1x£?­B0†—?ÜÑCÚe2?G-œ`?ø.6Üíñ?å® à`á?ðõ‹Âà?ðíŽý¼4?¿9“ l?Byy†?sŠk¡Ç°?_©™Û2?'I„ï€? çøTƒ%? ð†t5Â? ê$GÜñA? ß“&`ë9? à1'ÂË? ü½ñf$/?!B¨|;»k?!º¥™Î#?"gpð–&?#BÓAÙ­?$9öyïý?%.²˜+÷?%ÿ œœ©Ø?&‘Z•¡ìn?&ÝÅ'ó?&ïª"·?&Û>ä{“?&·ñòÞ±F?&æm{¨I?&eLn¯5?&,.;åé?%Ý8{ì#h?%wX£¤ò?%Z1ºA±?$‹…±õ^?$zÀ™X`?#Å5c“˜?#z畎I?#7‹¸±°?"íÄuÊ?"Ž$®"Š?"Â{g?!wëªÚL¨? ÅFp´ö>? Å'þ¾N?yá·ç’?ï­ºg<(?r@Š3|³? `m%ß?È^Œw?½jaG?ú¾™VË#?„|—¬’?Mä’mŠ?8F5/\C?'®OÐn?רðh?àmZ·¢Ó?É6 Ö“v?æöÛqÒ?Q/ç?¶å»Ô*?ØåMV…?¦["lL?KBA®^Î?ÃKúË?þ[² ¸?s ü$SX?À±TÊiN?ýBrßST?³ ;? h•Ɇ”?Ï¥>y>?pµL b1?ò:ganÎ?Y@ñ Î?«O¹[Lz?ï8~ƒV?,ŠO±?h”´Ö¶?«ôvàÚ?ú*4VZ™?[¯ï 0?Ð4êŠb¡?YŠðA‰?÷‡pô1?­C{†IR?>.!bå?lóØ?kÃzQ‚†?gB!5¶·?J¬xͤ? Qž@Ön?»` ¥Å?tÀIŽ ?cI¥`KË?¬{/ù!ô?a½xÍd—?v"EàNÃ?½7/çóé?øp²E=?ðM}¦Ú´?‹üsÒöN?Ù÷´`ØÖ?6¶¸€9?8Ì$0šÿ?“e½;D·?Ì€ /?§îmjà`?.×tª?Ó *ß@?¿-•@ëâ?¿+‰¡?U®žÖ¸E?L§5øDå?vèÙXåJ?Óh”ìÌ?`ktâ^ž? }|vRX?!Š\žsÛ÷?"¡¾\ŒV??#Ê)`Åè`?$âp–±Ýh?%³÷'ê-¶?&^ß=Ï?%¤Vγ_è?$—[˜ÜÊ?#½åAµÄ?!)¢hZz?©™Ãç$p?~Єæl?&¤<®6?Š1«(Œ?µ2ò¯…Ç?[õd(ú?0J0ÅÏò?è*ig,?ObÞmD?S—{E<Í?þjKº?ˆ6F‘9Ã?h~>?  lÙSF? ÛÍ0U‚0? ŒÏT0Ë? SŸ*¥? ¦Mõ¿Gî?í>}ç{$?¶2nK9?í/­¢?/i6?ccûñµ4?—HÿÍ >?y›vþ-m?Ô=„©’|?|Á{œâ?U³ÊÔÐ?PÏuRÝý?v>1Lü?ïs*`? w鉻×?k?±òù¬Øú?p.» 4J?_§Â«?s¾¾ •?¤*ˆ˜¯\?õ¢½p´Y?y}+¨g™?:‚áU?)öåÏŠ‹?fž[?ÛYTH’?3Í4ç‰? ­>-x?W 7¬‚%?(1{&6?™‡‰?Ò»ÓS¹B?çê^³ô?gÉ1ÒÀ?ÞuðË?:û¼AP?»ªÿ?ˆF“¦³Å?z4yN?kvÙ‚œ?@†àh*?òÝ2æ‹J?ŽI †ÿ-?.²íQ?ô 9çN†?þôßõ5(?^%ÃGÑ? ÀÔÑö?â;®ë?¼FÂ*à‘?s°@‚êð?ú•Æ#œ?[¨Ì D?®0ry{?©”/a?`|m@œô?±?7¡$Z?àú‰BƒÙ?ã‡óa ?¿‹>œ?‹ .·‹R?]S‘b£?@À5tW?.ÿ¹Ïa°?¨Ôâ\\?ÝZ^Ÿ?õ’ïÏ?S ?K^¿UŒ ?·AïFF?,€?\@|4(?¢ˆ³Ôá?þIñ$|? 1–Vj¦? c;Þ5­? ‘ÃVº? º5Îᥢ? Ú'®?–? íðâ`08? õÁ³Þ«? öêôºâ/? ûb6rñÃ?!*@ϬF?!8г4?!ÆèØq?!ëœÔhÔO?"€xk§?#BÄë¿Æ?$!kÎ!Y?%UíÙ0ú?%Ï•7G†?&`Û;¤=?&®Mú  Œ?&¿èš»¨"?&«M ½]†?&‡B#[1?&_êЖc7?&2vP’t?%òe@‹¦?%“šéçLŽ?%P~ä6¡?$wìzU#?#èËÇé-Ö?#dtføÂz?"ÿÜ„X?"¸ûtq7F?"…ØW¿ó?"Q°òop²?"ïŽÆ6+?!  «r?!°“î? w{¦>WI?œ<“èî?IC̱yž?ýJI6ÝÑ?·mT½»Š?x½à®žn?L`Q84þ?GºØzRÊ?;ú¶?¹inž?ÆãŒÏ©Ž¿?ºÃýÂÚm?«gjÔ`„?j¬[ÿâv?T¯ZY_?£ZFŠ!?xA­¶Øø?²$=÷$?dS_jLe?p]æKº?ÒãŽjvÚ?8  œ? lOúæ?ñí?Ú·gì?+¾ïiŠ?CÛ»ºº?sžŸ÷%”?ºÒ“?ê/M+Ø?A™­?{D?]Ûö5þ?]Œ=¼,?Ké ‹Ð?1´¢0J?Щ)´„?ëË~ÍÐ?»3Ús³a?†|Q›Ü@?W¨ßÄÞs?6+F»ð?!èÅÖœ? —£Iuo÷?èÔ×ÍÚõ?²Æ'ô?ƒªèÿBt?ê —Î¯?´Å“Ëáh?^‡M`ˆ?s£‹?³ØÌ6®?sÛ.6K ?RÄoÃEÒ?HÔµH?>L?>?)Ȥ£Ÿ?µÙ›€óæ?”‹Å¢?0°i@µ*?¯"2ÜD?Ò)€EÏÜ?‹qä~$|?aT–?gù”Ñ ?›DEÕ?ìOÏx?=…ÇѶ?‹ÎˆÃw?ãÓ"Ç)Ð?UoJ â?ÝÞ¸½‚s?ešªë¡?Æ7B`*Ô?ÝåR•­Á?šO-ß]—?ù5ÍA\?äÅ»ü»?ÈD× ?cpü‡þ.?øs¶Æœ?°«qTþ?°Æ†"Çi?Â΃ ?Ç ói4?­¶ yð?ØiCg@ô?Ý b6B?±$þõ5?JQûm‘º?¶éÝA…ð?{Âò[?™o6§z?`À[þ°?„ç»è}?ç=0Ê?¾OËp?ŒÉ•­A?HY2“?Þ“UÓ)·?T []#?¹ðZ[k)?'4yÒ÷?~Ä‚SÀ?ÊUOÔ±è?ë)Kx· ?×›sf¼?šüetÑ?Q°Þ:\ù?«'Í›?vwã˜?€&ŒÜJ?ÖUaK’?0‡ñåVL?RpkŒ_¾?‘²;`µ?û 6*?†š‚ÖNp?½¥LÎ]?€:ðl?¨¢¡“x?‰È ™¤Ñ?8 Ë+G®?Öø`¿>R?ŠzÍzòm?k^ C¶ò?‚g2ìëá?É-uüEŸ?.#H7pt?™0Q¨¿L?ðr*ä?À£>ö?ÀĪgˆ?Âj¨xø?8 ó7D ?‚^B^@?¼£ÜA2? íÍ;á‹?•7"ض?fèD¦NE?zÒÈà2Ò?¸}ÉŽ?ù†5ž?cEé‡$?ÙuÍW*?€; 7 o?_¡?‘u%?d‚êgÜ?e‘4›ˆb?5h²±¢H?µx?£/z?Þ³‘?M?¾vèP~?kåñ}Ÿ?ýPJŸN?®¤³¼%?Šl©Ì”÷?·Õˆ5ò(?Crô€#™?m€ýÅ? Òdè·?/ ’2?МíT?9fL÷ç?Wʶ&%r?K•Ï QÒ?=ÝIsò­?PȘ?‘‚ªœC´?þ憖? D²rsº? Ž­À¡? ÓZXi?! ·c¨ç?!+¯„b7²?!9 ½îw?!9 ˆî:?!89'œX¢?!C4!ED?!aFØÊ¥•?!“h§P38?!ØÈÿñHå?"4óíø3×?"°’/¼}p,?IVÙUs*?GÄ¿/Ð?´ýç‹?¦2E?`ÁNÉO?†Vãz0f?îs¡ÿÂÔ?\ÿ®²7X?ÔÌÆ<ý?VÇ¡9Åv?ä{yš£? 6ó‡?(ÖÕCyZ?ÝÜ?•~èŒ?Laæ·?Ê‹žV­?ÆJ-4ò•?© Aéb?µc.¯°$?á¢NÇ×?†ø§”?,aÑú¦?äÚÔè¿ê?‚$Sñ»?-ö$?âŽö¡y?|’œ´2?´`âÆJÆ?Á䪧è?››Î|?=£OrY?2¼óR\•?ÇÑ.6&ì?-· T?¯Y¨Cá?^Ï¢?P±Ó?3^‰V—?@‚)p[l?6ùóC@ì?0Øæ?ì{Ã\­p?˼ð?»L÷}(?´ËX5”É?©A©Øš?Žîc‡ÕÊ?iCå&D?EÉ‹C¹D?2‰}?3Ç/bü®?J \2ˆÂ?uQñðÇk?»‰¬ýà?#W ¦o?±u/¾Ó¥?`_íE„˜?)õò¬’? q5‰?_{Êiu?hܽ÷«Ò?Í7…°? •ùÎ?!Ý5)J¦?#\i›“p?%4™™?&®ô&Â>?(%;>?)û>|ö?)JYc@ý‰?(Ž$0* þ?&õvXF>?$Âo<9‰?"RøÙ¥æŠ? ¶ÖÎ)?:š?éÒl?m“uå‚?˜ÌÕŒ_?aÿÏL?ÖgØ+¨?SPˆm˜…?ÁÂ'i]í?1äŒÖ?™O¼ßµ?ó}„F¢?À´0†?&ÑÇs‚? e":àÍ? š´P¬BZ? äÁÚ…"ÿ? BKÊñÒ? ÷M‡ÀÊ? u•7ýÁ‚?X}Õ³ÇÆ?É{•-:?YGé;?·zN†ì?—…úq! ?¡œ®lÅ€?•nQG#…?ÛB5v¸?È Ô†?`P‹¡Ÿ?ÓwŒ@P?[Çëp¶?oʱP?„ëØbU?Ù9í;? x‹˜Ur?¨ßH§Í?Ùô—íâ?6ÂsÙ?¹M…aõ?Rˆà!(?óIÝV…h?”{;Z ?;š[‡ˆð?õR¡B­ƒ?ÈÏ‚N„Ö?­ž®~lB?'­ÞÆ ?LÔwº?ÙÝ¥­à?-¦©ŸžŸ?Lìè?Az|Šò?"v2ÆU? ŠØgñœ?ÈQ¬ô°?]d4ˆíf?Î:pæ¬F?O~[?¾‹ê½¾? A|,¨¼?=þ†B=?eÓ’§o ?Y÷ü^/?µ¨…R.¦?ÇŠ¦žxÚ?³E2¬ãx?n¹&ùÃ?÷  mF?L+fÙ?qKZÞ^Z?q–Þ“ö—?e J»0?o;ñÓ?³¶sŠÆÕ?Ku‡Zçz?7héw ¢?^¶³È*?”¢ÚâØ?¨öµ'¯>?vÕ›zD?ò±_7 v?.[D雷?R´æ¦ä­?’RÒj†^?³rÊÝ?vÙ‡ãý?UF)%©?ìÔèÓ ’?¤ PùÚd?T# Ý?çvÒâΈ?^.Tè?ÄÀØ×De?&ʉ´î?€”ÕÁS?¿Èqh „?Έ+|#?¤b«Å?O²Ô»Ãž?ñsT¸æs?¬Õ´¼cÄ?–*Íêî?«¤¦ÙP?ÝÊ8.hü?NÇH?p F&ØÞ?ÚÑbÎC?gÈÊ/4? 3ö”P?§õO_gD?Ÿ¸Ë¬w?J yD»?8¤²ŸõQ?ýI×+úê?¼^¬2?•òŒän›?˜Ñ­avÀ?Âq´ A‘?W ¸Mh?BhDÙA?mêÊpðs?v mx|?Sq ÏdhD¹ß?$çp¨ÎzÁ?"W !É?Ý:ê^G?å\õk?ÿKÊA¡FmÉ?V>¢Ú>4¦¾? C³ä ? «Œª? ¶.¯†? p+¸Ÿþ? …hŸ-áÑ?Ĩu?çxìnÞ?èXêÎPõ? ­Ü ¿?ºüY?p¢ŽçþV?pÇØšø?)!K4?#âûò‰?¶¡q˜¸?Âç¯?%.?Ì“S6?ìT`àö?gq4¬"F?õ)¥Ð!H? æ6ÒÃZú]6?œ-|_£`?«è3?Î?ž„¯u±?­@à z? 0¡ËI‚?Í¢œÂðš?ùÊ–Ý~*?sNŒ2¨F?+öÅ0“?«ƒÝIÔT?)ì„/‹J?‰K6-¾ò?Õê=9®?Uùw6Þ?Tï>iñ?wçuIsC?m×1GFx?.ì—Æ6Ä?Éø7ƒ”?`œÛÂ^?Y`]?®ÈÉr`?)K d‚X?v핼k?Þcdk¬p?YùÙÕöž?ì­6»˜þ?–Ÿh4¼·?Iã·]Æš?ê0.bï?Y?Zà Üv?“eaÅø?·áò².¦?­õ:L²?l9ã®ð?üá<ŽÀ-?v稀²?ñ £ÇÌ}?yäê‚k? ¬6 q?´q1 ^Õ?_RÖ­|Ù?¥‰…‡î?×9F±û8?­v OÖñ?‘TU²M?u´jwÌü?Má@A8?,Ù‹X?çí?(ˆe?ÕEÎwg?õþ£Ê¨,?HM8Ú ?¯d o_?«íU?0C^¨ ?ü5ZÉ$?Á~ÁïøN?›øko B?·uºe}?&9¤$ÄÈ?Üô¦²?´Žc½3j?{~quâ§? bAïÍÝ?NHƼ9ß?V= ?=lTlS?؉^æ^?ú\N&²?ÉàÞ ‚?|§$“¤o?‚¼ì?¤•¾DN“?PÙÊäÄ?/j6I¯?>>ÈG¬¤?c_;?~J"§m©?|¥A>ß÷?dHb˜âq?L’ .ìú?O9€ê§Q?|:mƒˆî?Ùœsô Š?i³e`k?-ÃCKâ?!Ý.*Þ?4 ̈ßñ?HëÏã?A¥nª?­98±ö?à[O÷Q?Ì?´*?®¯¦? w©W‰¿?!µ`-¦€Æ?#@k¦p0â?$þw ó†M?&¿Nt[s?(>9ÅÅF?)-!H8ë?)IÚ‰QxÒ?(v0É;,?&Æ(c\®W?$|ù]õ§?!ùÅ N°?0‘´‘øK??Ó„z?ZS$í< ?rºì›Ý?Eho=3?~|âA7«?Ø+j­«‹?+{z€ Á?nUÙð†€?¨üNÚ¨”?æÈ}3Ó?/_<ò?ÐBúg? ï¢@* Ô? w$ð_? ³ÕÂÂ5®? ƪ¸>Ó‹? >z¨é^i? ç§§9î?‘ø¬²?1§¥RÎm?üð·&w?©fk (?Å»@Ç®§?\6«àÆ.?ŠÔýÿÝ?ä0'L`?Š.Û\SÝ?CÃ_µ“?òþC? ¤i½?”“@D?ø‘-s7·?Åž– ºò?d’4ªì?âƒ_<¶û?bF}eø? jÁÑ?ÿ?`Â÷?9ÙFà7?žkŠ ?ù¾Í!?Xp²?Ã…²ÏJ?é}Ú¤@?ö†F~j'?Ë¥êm¸{?Â×X¸? n¾Y¥?¿8Aõ÷¨?ÚãóZë?Aë^“ŸŠ?ÊDy«Ff?JK=ôþ?¦¾4¸v?Ú9b'®?ðØ4k"’?ûO„árK?ÿ²Ä)b?õ±ªcù?Ë•Á››?|"(‘ê?+P_dØ?®w/@?m’”÷|h?f¬ó·…®?›‹nJc?Ǽ˃?‡b3¬??'+å?ÜÜ#3?ž† TÉ?[£<Š?÷æ}~ É?\ Þqæ\?…Wüd@?м*¥¸ä?“®m|:Ñ?ľÎÜL?,Õ Bƒp?½ÈÖ|d?R?.æf´?¼ÇD(C¦?Øë¾ ?–üÙ-Eî?ÿR&ñi¸?,ÐA0–†?@k¦YÝ{?TΉîþ?t쵊aé?¨T%É«?ø(M<Ê8?z]°EI?H÷ðÊë#?s3‡­?ëØcź?»Â¥0?/®¾óŠü?¼»JT ?=/·œ?Èáqˆ©?pfØù4?*Ôo'ß?Ù‘¨ø?XŽ_6?—ɧ]q±?ƒd9ú?€DR£Ì«?V²N×?.X£Pܨ?!ßÂg—?h¥±i?($×-›?’Ö®êœC?U&êšõ?d³úQ×Ï?šð¯?¾wR|:S? PÂ;ÿ=°? –•U5F? ¶ŽjR†º? ÄR,2$Š? ÙQ)no?! ›-%˜!?!fÃÞÚÎ*?!ç²]9GÚ?"{ù{ßÂr?#ù¨Â¹ˆ?#f]jäÞ?#ˆû3kf ?#oH@8xe?#1=ŽrÉ"?"ò h§…?"Ϋ;ôdq?"Ñ'Ö-£¸?"ð³ýÄËQ?#‰e•?#Q×Ì#?#’ÜÝå£?#îÌQ†¸?$k÷Ÿa«5?$ÿV³öÌÔ?%ŒqJ:?%ðßÍÇ÷?&·À ?%ð%=‹?%”ƒ^BÕ?%†ªý¾ø?$”zW†þÌ?$-»¥–û?#hÔ5òX?# „„ß ?"ŽˆB×,?!ùð^À\4?!ysu÷ü?! gÑwË? ±‹“¦.;? sª\…f? H­X’òÞ? "Zk?â%õ1ÆÔ?_A—iœŽ?ÈÄ«9ê?;^ÿá½ý?×?†Ã`?§ä¢^01?Ÿ†ù ß?œ)•Eì(?v˜ã3ä ?Z¦‡‚·?j"»ƒO?‘½í*>?­·-9oæ?å¶Ò'â?UÒFA¡?g™‚éÿ?ìý¹5õÃ?ô02BG¾?sò‘Rú? ±Ë54?õŠåC­?½‹æºîÆ?bÊ„þ÷•?ðq•ŸÔ?~ü+Ú?+™‘môÅ? û#h‚$?£Cþø.??½‡W›+?\ÓjR.?S½Èo+9?Ã?½² :?ú¶’³M­?H¨y–£?xQåö?öeñÅ&,?m[„>E?¸ƒÊ´Þ?Ì:ˆ9?»s·í?¬š½ *¦?ÄÕ¦‰ò?´D?—19·j?)Î0—w?¥#7ï+¬?îtã’¢ ?þ¹ËyÓ?ãã-»Ë?¶G0o?ˆŽ’”ž?V*E:#?ZŽª«?¦úÏË0?% Ȩ?¨IÙE'?V«³ÒÊ«?Eðjc_&?mP|J‚É?ªIŠ´6 ?ÖˆwÙ?Ü€#þ-?Å¿¸dz?®(7öU?µ'}Fѵ?ïÛY¯ó?gô4™†? ÄŠµ¿?Á`ìü?E¶W”CÀ?‹7§¦•?¿ “ä?»Ý€»Î¸?súü8àl? îÕ¹‰?›6º Ç?ˆô2FÎ/? ÈûBÊ?!Ñ`ÇÂ?"iÝî Ô?#ôT„/§?%ƒo>ýaí?&Ør'|ý«?'®öŒ0?'ÍQOÆŒb?'ÙŒ©?%›}ÿ‰?#ŒKü?!D*ùK66?<8ɶÎ?`Ùð›‡4?›9±¨²À?Çí3y?¬ž‡—d?øIymç¼?d¯Îxw=?Ë3Hx‹ø?$åÎâSà?~·Xt°4?ç ò±¾?dÕ•Ý?æ£í¹Op?"~ã$ý ?ë—3ÿ?‹B"æ? öóc>—Ö?㣤]D?U;ÅD?†ÊÜ™;,?œÜH¶9?Áª1/?U9Z@”Ì?`û K6?œwS‰ÄB?=ŒÉeõª?éƒÑ™?&|w/‹¯?Žp?u‘·?ü/AÍ®‰?M<(?Ú…‰€÷?*«ýT[Ú?Îp$¿?{°4Yé?·M10d?£À´ ¤?&®Í?‹Ó§+ ?´fkV¶?Êo×?œ¬¼-RW?RôÂëR?"‡Yò.?þGR¨Žb?Ó»XÅÓ ?’$.—­ ?-F+è£?¡F¡Ù"Ú?òÐ *¿?,Wš¨?Y³¼¤“?‰Gqå»?É­ø(r¿?(¾~ý ?¬\(ÒKò?J^–æ?åëÃDñ?Ž€Š?jŸ™ Þ?sd ›G8?OMòÖ?£`æ?-’¬¶q&?ØïJ0ÿ²?¶Vσfþ?Ägob½’?íìðÞ?P*ùÑú²?b§Ø:¸?°¦;ˆ9?Qê ê{}?äQ‹[ø?Õî“ÜÀ?á#¥àâ?&Q´œ…Â?œœ:D‰?9Z¶WÜL?óX•¹Šq? ù¥?—'OJ?Z÷@ä°?ñöÐ.b?J©ét?lGÛ¼@®?x°Vn?Ÿ6(NM?Zt̬?³ütÌ¢?Hƒ­£C?eÛ¤`=,?ú N? „ˆÊPD?È•ü:`?‡ rŒ?î(gë(?¾è!¬"?—\/kÕ?ЬGAÐ?ŸÌô¨&?Û8Œß/u?Pm44=?ý(Ä?8òÑ‚ëZ?¬À :Þ—?ME0‹€e?ñh8ޏø?‚n¾èÊ?Rqs².?Ž­¯)S”?,µwÔ™Ü?֦߃ê?o§S‘´?Ù•ñör?¤q,_ÿ?¬)ܲj?äŒþˆ–Û?Ê1 Mp?¾o{õ¬¿?ÄÓ©¸6?â•Ð"U?'Ô 1?¬GG,?ä?³Z<?,: 'Õ?æ]Ä^´Ä?CÈ“¸‡ñ?Xåðçlû?OÄÜVrÆ?YÖ¥à>?ŸÆ@-eµ?6à‹Û:?[ò’Lø?C ¾©7ç?…ùQ$µº?ê!r•?Û¿d¿Z?¸¯‹uúš?V^ iT|?ÅIfY¨%?'8w”î?¢ƒˆ¨“d?Q”;4‹p?7F2€i„?>óÕ2Nû?Hý×ÿ/u?;T©V€¥? º^iÒ?ŠLJ²?t‹1ä¼ ?(þ”s‚6?å-?¥•¾¸†-?`2Y¼“?‰LPÿœ?Ǻað†§?‡ô‡—<ð?YÚ˜Ä?7LÄ$a?"%‚µa?Ú@Þß¼o?“¦ØKp?P`®„ó?.áiÕÁÕ?IG&½wì?¦©´ÂÃ?1ŸXj2À?ŰbÆ7ò?;EïœX8?~pd^å?–sqBá¶?‡´ön8?b–äÖ‘ö?H†%dè?~Ôàra®?ÿ•O[y?¦©…_j1?‰¦‡,ùÈ?¦çK]™@?ä!¼gŠF?°’ƒ”&?!ãúví9?õíˆþÖ?ª.˜…?iÂØ|z¼?]ïßÒde?™9¶0? ¡'? H\"Z?èÆ]ø%?êßam¨q?}*^Hã‰?§@Ȳ*Æ?o)Ö?mÝpaÊ?z6ù Ô?Û¥hÒª? Xƒ|9(?½$~G˜ú?×ÿï ?wè™ÖBB?ÀƒòÖðH?Í£ÈÂm?–Z«§˜™?)äÕ+È?¤¾SA¼#?#‡éƒÜ?³´ÿãÑê?TÜoˆ¨?¯{#?ä?ºØ*á?‰¤ˆ;õØ?{¥ 5îí?›VhöS°?ëáÇJÁ ?j*ñÃÌÞ?1â$¿°?Ö¬ŠR-)?²ûuq ?’˜£i_¸?ZQ(ék?îK,Œ3É?@l,ܳð?]溙Œ?of'ô`f?©ZeÈÐ ?3g“ˆÝ×?5£ d?'J&Û\?2` å” ?ñ/{ªä?0°øv?ÜêoÐr&?ERÑ3÷?Ð+Mo¶?t'ÅY¡æ?ü¢¸?áy~?Í*òE%§?çÍê’¸œ?@ا“š?í׸R{h?û?ä®Çí?^2YCp?ôbº½>–?–Îw3-?-FK?¹«¥’ç?Jâ~Ê8?êפß9‘?ŽZ'/r¬?…ä(§ø?lÑô½¶8?§¶D^b?gFv"… ?=â?Ö¿?#÷ Z‹‘?)³J/>?QÔÇ$ê?›ñv[rŸ?}­|¡ï?¼BÉž÷?®éAÖùK?ãCùS‘?>tÀb? JЖqã? á_4yÀn?!X[ÈérC?!±¡Ã ÀÂ?!ù:oI7v?"@œ¨ú¨?"–në]¨!?#ˆo·¹?#Ó§„+;?$)¿~ö?$¶ø‰Oñ^?%?¦¦£?%Dã0¡ž[?%)iâh?$Û·´³?${ŽœŠ]Þ?$*º#›¨?#úãÐ µ?#ìcj’ÍÔ?#õ5ĶT?$ ¿îGÖ8?$3 ñÔ>?$n¶s¾¨È?$Ão-•òO?%*Rì­1¶?%;«N?%Ü—·*?%ûT랊q?%ä> ÷gý?%›1x— H?%+5Žo. ?$Ÿ¬Ù±ü ?$<×ÖH.?#V¬é½HÎ?"§gršô?!ü’!?!]Lz÷Øè? Ñܤ ¤V? ^hlËþR? ÒZö ´?†6$­¿Ø?$d·b¢Ê?Î XËf?pKž¾=Î?% ²¡?§Œ s‘?lÒNŸÉ?pt¤Š´ì?µmž(? †¦Ž•?‚ÿ:¹š?§÷Õñ&?hîÓÕ?¼©0Á¼?º"å)ò?¤ý tœ?tx$‡‡[?™A¸`Ê—?Psë&l? ˜ ‡°?Oì.z?Íü.yIÍ?TGÆDôÔ?²(ã?ÕРI?|P/(ô?ë“ø§L?6›k®Î?‰.G…×5?ÿ…BžF?±?p‡&?„âo')1?h/ûÞ?HMͬª?&ø=ݾ?ïç[*%þ?ÆwE%?"?¦}Ö°;O?‹  R1?i5[  V?7°>ôȈ?õì:^Ï?¬øi/?ht½¦çÞ?-1•tYÝ?ôÑ! ¤”?².a?´?\ŒÑÒ?ù›Ö¢†ò?Ÿ(Õ1ó=?kàˆÉ?y|Jf”Ä?ÏæŠ:6S?_B®¬%?º#@¯?•Ã#yx?ú|¨$÷?/ Aº£Æ?E·¶Ç[Ç?W̵Q¿?v½‘ Ê?žÇCF $?À¢ÿjã?ÆKØ…ý?¤VR9Ãà?`ÔÏe.?VÝèžÎ?Ã)zJlÐ?€J.?=W@ËWè?ᡬ_›?e¸¿UÖ€?Ú²æÔ¸?g9*¦Ub?3ŠlÃÊ0?QH7\ü?¯êe±:?“;.” ™?Ëœàå•?nbÓž1v?‰ÿÃσE? Ɯ̲&? 心?!Ç]^âÝô?"Œñ¡l¶;?#¡…;Rï?#6iÈ8¸?"Þý<ÂC?"ç˜è2 ? ¸÷¬wRÖ?H‘iëh?WðKKÞ?ê\ìG.?ÔŒNË…d?dżSÀ´?§/r»?X§ ÷Ö~?/Ö·´›?úxà5/Ð?¨Y’ßÝ?EŒFon?æôÓo•½?˜Àm¶'?V ±^??9Öàn?³ZÒ[Ë?Gȉä³,?º²x8Š?ùv¦{$?¯³7½V?yr Ü&±?IÚ;Qk ?0‹ªõ? û¬Cä¼Þ?_¶m›2?’v'"R?Ó̹¢®ö?#\¿vËE?_é|mq?)ƱŒ¯?CIðç¤?­\è6m?£Néɘë?}8y9ðµ?ŒêQ5nT?{ã{Hþ?Ø70?´ýY‡\s?7ïa ?|]pû}ý?ÿaóŠóö?ȵ/ Î?á“M°–Ä?E žÜn?à1`ÜF?›ËæëÑ?_¹$óu\?Ä44¾?¬’ªÀz?\;‘Õ?h9Ø9Ý?žÏ$Ì?Ñ»¥à›’?YÊtÅ?cl_SrB?Ì…1?“?FÇg]l?ÂÁneh@?/[IRl?veÓq¦%?†ÐmA5?Y‘Ñâÿ?õÚt1™K?qÛcúêF?ïd‚‚"D?’F&º,…?q–Šù V?‹4\¨ÿj?Âc/ˆ?í,w8ß>?ëÃwhÞ?»m-è?xÔºŒv?QÉ·b?i¶írz\?ÉTØü?VÆü%|,?ᾊz±£?6 ñ?,ÏÕU ?¸Lõhqä?çzÄ)ÞÂ?âñd'?ÜW] ?Øú·?~æaV?OæÑn)ý?kƒçd>?³øyI ?4é#P?.õîú2?’ý•~ï?»;4:U2?"%±¬Ø ?o—8ç7’?ÆÏMƒQw?? 7Ù[?Þs–°ŠÒ?Ÿj¥dŸŒ?{ èî›?níÏ·?~4B,¶?®%(Í?°á·²ð?}ÜøøÊ?åÑø?ᘖDº?»™dW?™|ªH«?_W·ÿªò?ñ±!3óÄ?CŒl ).?c:ä/?zt8Á/^?¾±@•?XŽQ™ 5?N/&$?}V¼«‚’?§P­¨d?…þ‰„}?âš?íd?¤É¦˜PÚ?Ö±Ü/þ;?žÜ'ð‡Z?0…Êê‘>?ºE¡¶7?Z‘íuJ? Üw nÎ?zÒù?Rô½!2}?å²Ë¾j?ÝÐâì?/…[J?¼4@Ê¡?^–.žþ?ý¡ ‡Én?—!tíOá?5ßP·{?Þ껵†Î?ƒº»µ•?£”ô˜X?Hbkòò?CKQòèÚ? Ù( ¤ø?ÈRˆ5?Ÿº…TÏq?¨~rUû?æÎ§;9”?WèqH?ú0Ÿ[aª?ÒümR-è?çgä&ô?0=á™v?—0 Ú? }¸ƒ¯’?!ŽêDz?!©§Š¾Øí?"aA­2þ?"‚’ ‚ß"?"ãž:t ?#Iúi®¾?#¼g*?$<¨›[Ë¡?$Ä30‹f?%CÈn²È?%¥¶eA+8?%ÕÈ -ƒð?%˦YÍ3?%޶Ð,û?%5ÐÚ;G?$Ý­Eÿ0?$™ÉxÁ¹û?$q +Bç?$`zã!Ñ?$bÿ¿ñ™?$wž¨ 2Ë?$¡_ׇ¶T?$á>M6 ?%1Ïï¾?%‚3ÅÿV?%ÂX¢'§Î?%â.[)?%Ùòl»™É?%¨îé¿DK?%RDy1 ê?$ÙIV  `?$Av ã8?#¦åd@š?"Ñ%•kÅØ?"£Ÿ)ž®?!\“±±Ä? ¿,æòÔk? >Òà?µ¹v¬?"©¸¨º?µÓ/ù[&?YuÅùÅ?üñ-ùñó?žÿ†#Á?Qu•wh½?0S5 !¸?P Vz?®ÎGR¿š?.ÿéX ?šüÆÆ"?¿Äo5¿Â?w ‹ñ¯?ºd•ï?£å·m¡?d%ƶk&?4x‡bñ?I=ßõEE?ȇ(:W¾?û¨‡ÂG?2©ÐÊš?ò}ŒÒÌ?ËqN{³Ô?½ðDÎw?ÝÉßC›¦?ÎìØ†9(?[á½ ¤“?¦®€»³?ÚáµÌ–?>wê?€Ž^F~?g™Ÿjœ?ªì"q?eb(:4?6þŸòI ?#7hàC?)ö¯Âð:?C5Õ™ý,?^=5°1Ä?hh'Æoø?U>„@8Å?#öiŒ>?Þ ߺâ?ŽÏvç°Ç?:éϩɸ?݃_V{™?n/µ^{?ëp1«è½?aÌÖ?ê™ZÇ?£Î×óí?¤aâ® ?ò›Æò^?^¶]–Á?)16™¹Ì?ÇJã8bô?:™ÞÁð?vòB°¥?‰ÕIÀõ=?‰ÒwM.?Š“ü˜ L?‘Þ¨o?‘ |K"P?{ðŠl§þ?H€è4JX?ü¾¶Š¼?©Á¡‰Ž?_Q·»P_?öÉ––æ?Ý„1¬œ?…o°“Ýœ?6×Þ?èX× ?*µ”˜…Ö?G^ß3^?7#ºŒ¥?«{õ?<}†p:º?¾éµ¾?É`=@p?I›(ÅFL?k¶q D?š»ß±2?ñŽ˜yÜú?@(pl\?IèáPt½?MYØ<(?uS´i/—?𦙥uO?ŠLTŽà?ºèÆ’È?A·ô FÂ?B1°\?ì(?f/Š?é¯Å}˜?<ØÖ :‚?ê>D¨ÄV?Ú³#ÔN?ìL£Þ7”?ýAD8Ú(? vÍh³;? Ìc’z? è÷ˆ=$? ´Ü²Çó? ‘…?Sšƒˆ?×Ô¥1?#©ŽÕ– ?¥þ"-Œæ?¹Ú¡a;Ö?‹£VQB!? ¿ÇR‘f?lpnúº?'ÜS¶±ä?9Ã’iÈ? ÀþŠ?ãt{ü^Ò?˜(æ´_@?P%,$–[? jÆàh,?µÛÍã?AÐüGBv?¯öÊ„@¼?QØpu]?Ciµq¡q?¾õå3b?›ªDœÐm?£ˆÓà˜Ò?¤¯;#®H? He7™?Ö`á\ðî?¡™À,þž?›$T`„?·Ó*¯?ã“ÂÝ:‡?Åëa½"2?Ã%õŒ?¹ãî†Õ?ØßïŸØ#?Àcø…ú?Érü?:ïMÄ–x?Îè;bú.?ZtXÅ`?“)¡î?•?®­’-ü?ãTx® #?Y'Î ¢?#VóF?A_X?,@?§8'oA??wóHè?ÞÔl×?Ié@=O€?qÚ'Ž?‘µÓÞ|?Úö:ü?tã¯Ç5‚?gcD- s?”D/xð?Á³Gþ¢5?«ãÄ/§‰?_«ÃîŠ?÷¯n2Ö ?BZs§å?¢ œl?µq+$?9:¢r9¸?Ê?S˜ ?|ÈÓõÌi?a]Ý4œ?‹QÔ$‚x?ÿævi?ý¯-kAý?GÊ=¬($?Ñdõ“>?v=!#Þ?âÕUl?ÄGI¥ü?qHHF?&ÞŠD ?Ó˜î|:?Uþd²e?;81uš?vØtà& ?#ª69xH?Â,«ë^?€Ü꣩Œ?~c$’¾’?ÄƸ„?N@ê¿è?ãÞ<Ê?’i¦\?=Cyînæ?• @þì? Þd®h? µ MFš?!\ªðBhú?!óqßXÎÍ?"zÝæ8f?"÷?¿>Z#?#l•Ê` A?#Ý–#ÿ\Ì?$LMßÕ b?$º¢mÈ‘{?%(žQ쟼?%‘ˆµ5¢o?%êEˆ¬@\?&#ûî|®?&2¯<~ÂÜ?&.ï*—??%Ò¼¬ý ?%€þ@çD ?%2›H!w?$ò]¨(Ú ?$Ç:×ÿ ¸?$±anô¨B?$±Eóã?$Ç÷Ò!v?$óæ †=d?%.}¤ã1?%kÜÌá÷?%ž¤ýDÎ?%¼0?âÝ¡?%¾œ³¬XË?%¢ýn®?%fÊ89#?%V Ølî?$7tÙÌ?#Ô${×Mð?#v“¬Â¶?"A€QŒ³š?!{ŠAµf? ËOÓj;ã? 8»ž¿i×?‹á>ãB?ß΃̵¿?^uƒ²Ø?óÕ7Œ?w³kÚõ?3(~Õî?ëé[+?è?Ó¢v¥«ä?û©-]`?]G„>­j?Ú6½'Â?>ò¸R>_?Ws‰¯?®Í”z?:2? ÍÆ?!#fšr?Û>37«?­D¯f•„?ÈšŽÚƒÀ?WüóK?q¸¦€£ª?¥B®?[ÊæU?MlÃd?`UþŒÏÐ?È/†ú?U•µ}Ÿ’?i§?q8‰¤Ò ?Žª÷È“M?“4öË!m?œ^YN}?¿#Ü"¸? ·³£(Ÿ?)ÔSX?W&¿[}¡?b®ù¼ƒB?§ ©?¹†? VYŸQ?nnI9Èo?±â÷]Qä?Ã%zºî?Ÿà‡üê?RQ‚ä]?ç£ÂÍÏ„?g0Eæm?Ѱ\UË?$tZtìò?hõ E“µ?²· pY?U§T¡G?ÇÅ9 ™ç?Àß΀k¬? 5t 9¶?•йöGò?>'K(¸?ÛDÖ†G|?I{3P?x÷Zí¢¾?rôÈ{?MG3ê9j?%Šÿ(»? !°™'?õº9Dx?Þön Y?¹ÜÆ b?…Ñ•ëk ?Kâ:{1þ?ì2Ôß?äÕ` Å?­@ª¸?`¬_ñ?øÊFŽ-„?ˆ¨ïé?2t7«cÄ?åØ#4Ä?TŠ/ñK?Õ‰ßÄ ?|„Õ@:Ž?!Ý%ót¡?ª]ë—ú?¢‘Óz?b$A=£H?´A‘6r?;wIúÚ?¡]Sdž?NÓÇu°4?!"76º?li«[¡?åDü”-\?޳£ŽÀ?㲄ÂC©?ß4¢‹É‚?ž6ð¡Ú?Tk)8”æ?3¤¥…p?U• ‰Ø?² S:Ü?11’V0ê?´×ypÒJ?,þ…7Ó5?“¤/¨ò'?ß§Íßá.?÷Áê84ß?±Y?C— ?à[i¿û?p;CsüÈ?wΨðdq?<ÚÅŸêg? ÒÜ]Ò8?ØrŠ?ŽÆzŒš?Nµ$'¬¾?Šÿ8°¿•?ù‡œ)Î?V¤}MÀx?|ê2íUa?k"†J;?6Z²)éç?óUÚÄD?¦Á\.Ž?@Ø’œ¬?²Ý#Kÿ?ÝÅ\Öx?J Ò~b?|ä‘d b?ø«vc}è?ƒÈâ?`9¥Ý0?¸1²Ámâ?émýôôp? t½`â?NðòKÝž?âƺCÇ?ɰ|̵?ÕåGldO?¶\¨ÆÂ®?ª³éž?Õ¼à?üf…;c³?Õ¾–AÙÆ?ÄQ½õ&?!h=æŠ8?(-ä‰Å¤?­ªTÙ?Ö‚¹üÆ?ÔÍæ¾ù ?Ý,÷ômE?ü½Äô?ž^3AÛ?ys³EŒ?¦ÒsóÏú?Í´n?®?ãDz?JBÇõ4>?É¿;å™?¹EÈd?5‹$î?<'ì0*Y?M9S®  ?‚툳‰v?åáð¤U?k-ÿ”¼?úÂí ·Ø?yG˜î"?Ïë¿Ú2º?ðÝ„&?Ö’çNt?‚Þ2?ûJÂkúÙ?Të`=~?­O,ÈŠ?'C9޾?ÙàÕIF?ÂVYAH?Äj*(?ºgºa¤{?‘rüÒCš?U3Hë½?*Á§ê$'?< Xð5L?z5?@tvb¾}?üq=,K#?œ3âA?ó‘'VP_?ëLßB…€?„¿5¢?Ö>ø'0Š?È™`bK?5G{"û?Œ% ŽÈ3?ŽšO2T?å]HŠR?Üeÿè?ê7œ;Œ÷?õü·Â?ä)(‘?¥À· Qú?5†òö?žäÔÎÒ?ÿw«îÔ¢?x6|‘S?"J :?£? Ík?W 8y¬?A žX\?v(Üútè?¬™ K(‡?æ¡BÀÄ?,Æk+A¯?‡°Ø):?ü$Õ™?‰«4@ä?*’VúÐ?Ó8“R$?qQò€Ê6?ñÆ]¨ui?Hbšér?{kun²?§VVÿi?ô£rc8?…§[ïP?bó%ê;R?uÜý«3Œ?‹iwèp?g½³s‡ª?Ø3ÆÁYæ?ÁRãF?#ñe(‡T?o –ÛÆ?Ín!H…7?f¢í…z?î8à†·?ÅJGÆ;Ì?´~ÇõÄ?é¿ÄN6?x 2iîE?j¶H^ÉÕ?¶-g€+??KØ 9?å.‚Ärø?‘æ]ô÷?BWñÃ?üúP-’?Âä¡0Ù²?éž; ù?õu4?M"µÿÑæ?.æ{¾ù?Êç†8´5?Q%Ú7¸À?ö¼Pí ?áœõð÷? ¸žë~°?¯±@‹ ?‚ŒLØYû?÷ø%¯?Ç›yLfR?"H 4ž®? E˜T6×? ÷#‹wÃÙ?!ž±m ‹%?":x¬XWB?"ÌfÎ|K?#Vhoáç ?#×–éz?$LVª^µ4?$²33dÚ?% bÈüs?%Z#P¦Á?%¦ü†¨µJ?%ñ>ï¶µ—?&11ÔöO°?&YŸr7ž?&^®ò3^™?&=B”Щ?%ýD‰4>z?%®Ø0«ã?%_ñƽ,?%%PÁ?$ó!ÃU«?$ßm!Rr+?$娩P®?%ßG¢Gˆ?%*Õ/Ü?%W½ŸœË@?%|Á¶pi¤?%’´“³ªž?%–eË‘n?%……ãzã,?%[O4y?%ÙyáŒä?$ž20p 6?$-Ub?#D—SbÉ?"sûÈ+¦á?!¤=<‹Á·? äÝÉ F? @G6quÃ?u‹|ÛØ?¥î“_Áz?tKpN$?í ã–5? Ëb?¢íqÁÆ?RÜ¡¦ l?2„…3Ù?N°]î~û?¢ï¯>µz?Õ‰´‡Ê?eÐóC`?qßM¢?"&ó¥z?StÙÕw?Bµê³ëÂ? *˜C?þwñIò-?7~?`{¤?ì t|š?7ò6ÐíL?ò ú1—Þnb?Æ·^•?ZD,Òçà?Ýɨˆè?Ø"ôjV?]gs*Ý?‘$/£B?o)›Š?ç?=°?cR\ç¢E?›Åá¿Ë?¶½8Ê4ø?½•±K?ª?Á¨«`Ž?ÝÆ\5Âø?0+Foh?ÑÁBw?Ë"¾3D?;SI"·?¥©áz”@?L›ŒaL?âqGáü?@9Þ½=C?R4ÄN?¿ª˜„E?ÄÈæp?h÷nx³?'ƒ09‘X? ,‚îü ? ÅjȾ?-ñœb?øZ–;º? ì=Z*?üß„žJ?ã“{ÊDY?»A)Œ?{rú³§?# ÝŽ€¤?ÂàÇ©pZ?y*†Óé&?g¯ä›n?¢w›#Á?%û¹“C®?ÙDÎñòi?š³NŒa?O>ýöÖ?êñ¹?Îó?pS0ð‡–?é pr,?_zºçkN?Ûyô¼&?b/CCÊ`?ôÊjƒŸA?‹ð³ÁÊp?§¾¶Ù?sÖ«®c¼?“Ó§â€X?rÚçOé ?)¹K=Õ?ÞÛ ÷¨[?·ÎÝè$?Àí”} ?ê>-¦ø?Ôû«—‡?/€ý/'Î?0#­)ÈV?%rîàÁ[?OùZ`æ?¨Gäw:?¿É(U¦²?Eªü?öK“N>?Wq`Îà[?tœ{6’?¤é ?v?>°\í*?Wñʲ?nG& k?á×>ÜÏ?’_è ü?5ÉP쬊?ª3íB?¿u¹*¸ ?«—·ÐªD?w:/5õx?)m~­?·ËÞ?âŠùEÜ?O¬Ôb?‡á¬‡6Ð?é=½ö;¦?vøanN„?¸ã÷Z¿?1&"Û`®?†6ôl³#?» ÌÚŒG?ÕŽ„*Í?ü¥{2&m?]$êD?ØÁ)?Ø?âÔÝT7V?¤µ7Š:$?ûUP~Šˆ?°Ëó+º¬?É”nE?ˆÍ?Ä·$0`?Ãr‰À¤?õ·1Ç?‹°¼ç9ð?)vG{?xDÓ„ô?¥Z€ï{L?í ??·\žÎ†?{Ĭ*Hz?­YÜ5Šy? Q¼‚Ä?¿,f|B?jí$5?ü„€Kr©?VZŽí{?hâ#Ó?0Û o_¼?³»ô[–?þ™YY±‹?([?SÓÁæ4Ÿ?¥ôd¬(?5@Ëq^Ø?ÿïˆ"Ã?èÐÿ:º?Î{¼æ#?¡Z 1R?pŠ´)ÇÎ?`žï¨Ä?”ï¢Ê€?t&`ê?Ú•@Hä?ªWÙMB—?W2ÖMT?¸ÀUœ¨?¼^èì53?fBocœ?ÌŒï¬Z?’ú.D ?Q¨Ü©~?®Ç åtò?6‰‡}Ú?é·…Èä?¼÷¡Æ¾ ?žøZ§¸R?~“8)e?N*=4£Œ?çT¡ f?¦9?»ª?9åe,[þ?Õ»¾uþ?‘£É 0?~r€wX;?éÜ~WV?ቑ±Üö?3 ¥ÈïŒ?6ýÿ?¾¤âÔG£?ö2P$r›?1G ?xG‹¶Èè?Ï-—Îæ~?3çºj`!?¢ðûåUK?£’ÿ¨^?ŠxJ„,Û?ðµoܲÀ?A!F´"b?|Â8CC„?´‹òÊ?úó‡«ç?ˆ…‚ !r?G3¤¼<ž?.Ûóp?¹GH”è?̳²ó??%]™d7 ?æ†ay?x@ö¶ÏÀ?Šõ¾žL?eÐE ³?+^º/bd?ûbFii¨?éø*+”eå?ÿ…ˆER?n€Æc~?ì§ô¨¨´?…ŽðÁÞ?M Ü—Uì?Q €(?ŒdúzJÁ?ã7º§ à?)\¢÷?1ZÌÅ ?ÝøXj$?.%˜ñ®?:ÂÞt6¿?0«xs#÷?EÑvÎM?­äwíè?š‡Þ-{?'ŒÏÙÉ?Ve7h?’—–‹„?è‰HãpÎ?·J†gS? Žûò? ZMó? •Æ„-.¤? V‘Bâv?”uP ? á%ŸA[?EîÎZ?…Ôß=ûä?k?Me?-+þXXÙ?ô0„IÚ?f¦t¾?Z¯:=G ?ŠnÒÕ•Š?§ þ¦G°?n³GÏq?»Ou†·˜?‡%Õ´Æo?åÓ“ôC?òh "ô?ÊЯí?„Á£Šò?5”Ž¦Åž?÷¡¾n3?éò³©?³?)‹ö6^?ÈÇÎ+þ÷?ÊNgyð?"AZ‡×à?µ`Ó&=½?]=Ï™Ê?ë®zCN?5×D\³ú?#朧9?¼a0ªW=?#Òˆá Å?ŽÃƒOĤ?+`ljï´?¢CÚå?4©˜êïd?~ôlþ¼?ÎeGç-$? -ËØÛ*?*šà¯•}?+‚炈Ò?ZÕñBX?×q ð/?ˆÙxŠ~­?2çi¯€?ðŽÅ» ?Þßê.; ?!š‘P?‘ü^HÓ­?G>Ñ$Ê?¸éà²[?îþI¬î?¶aÀââ÷?hF[mf?Mû»‹‹?„{Ó…¼?ð“»øƒ5?JÔ›´ ?™*3MÅ?ÞÇ‘ï ð?]ÄÇÜ|?6ײ»O¶?1†C쪒?±5(ò?Æx”©¥/?‹­VnìÓŽw?r˜-&"?}%¿Bß?6îÀµK?ôQ&—ÉÞ?ÓJ¥³˜?{çeeg?Ø,ÉEÞÎ?òì€D?Ü M&Ë?š¡°d|–?(Ä©ª?~Ÿ*F²}?­'–Mhö?Þ?ÆÙÈ?J„èc²?Þa}ØV?LÖn£&?º¼Ö§Ò?)ÀŸŒ.n?o'ä¢Í?†Ùrã?äŸ`E?¸Ñà Ÿ?ë?è?¶XÚãu@?BC-(vÅ?t¬³¯a@?•"Ûgê?9êã!?ÀYiÂÂ?ñÑ¥-&? c´–O"?€tl‰?B§†¥œ?ÑÖ7þ?;ææI(¥?‘ú_£¬?æ[;8?OÅÙ@Mü?êÒІ؄?ÎÓ¥PÜ?ýìÊ®j?d>ñÂÔ?Ôÿ›Ž0?Þ^Ã;?)¶cÅ ?ý1¨êˆæ?ÁkP×w~?©ÒÆy?Ú?Ûñå=+?^Ã2ðåÊ? mù?áü¡K¼?‡è¾)?çsà°?í\„©ÀÅ?–{îé?êUœ~?ü¬¥p¶¼?ìŒ.mvÂ?âßòÌŸö?ë~‹(?wÞÖŒÖ?):h­]J?åû‡þÉ?äqÊÞb?Á—§˜ô(?ª=˜:Wú?¿1µeY?Bòz ´?Å%Z³ Ù? æ#¯åö?‚ƧXAå?:µÖŒù ?¥ ·|ü?²×ä×^?j/ÆÐvú?àŽ%ýÌ.?2½V0?}ÒûÑ´Û?ØÎb&K?PFã)?䯂‰Ð©?W]Τ?>µ=}%á?ð±Ù–[è?¡:>ˆøF?SJT>V¶? oc—+æ?ØýGc9È? »œ¬ô?Ô+=zL¨?V@öz]?{¬ÉQß?öóFyh?nic'û}?ÐDJþ?•E iÁ?P=çT?„r¦CoÐ?¼Úçõè?ø8‡‹ýKJ¦?%"¤–îŠ?%2ˆi˜µ?%R*í`ùê?%ˆIáŸïØ?%Ë\‡*ª§?&ƒ¬s¢?&#.þƒ?&÷K÷[?%ì`sÔ­Ú?%¬‘ï±'É?%kŽüÎÓÕ?%87·%˜à?%ÙoæŸ?%¹ÁwX?%0zRÕ_?%S~’¶?%uxø·™S?%‰° Œºâ?%‰ÉSýEV?%v•`ú ®?%T‡núT?%#« @„ˆ?$á!»:2…?$„T`+ ?$٭شè?#b·Îvwo?"¤Ù.h^Ô?!ØXaÍ/?! %;©Kë? M©€ÝÜÀ?Mߺ¡©?5Kßó?O,Ú²?‹% %®?ÙÛÓÝ4?6™.–?¬ Iœ[–?P{§ˆ]X?1XÀDñî?L¾!m”?ŠKï‚Ë?ÁÞP…—ÿ?ÉÙÜ‹={?†` äH?òõ!„º?&@.‚pe?I?qu!?u/è?1ÑÊ Î?^õÝTf?5¶°ò®Þ?´­ââ[´?´Æ^lª ?ïd%n? u2Û¬Ê? âŽH"Û?!kC¤[ÒJ?!޽éW~?!NlÏŽÆ»? ­ƒ(,Ü?†ÿNÙëð?eyCƾ?LÓ)“Oƒ?›¾£øM¸? ‘ ¾ÂK?…ý>ó Ä?D\= á?¢Uú,w’?Að:¯7C?¼‘‚ø?½”‰‚?M?)¡¢\?½…O«â¾?ÑÒ×}Àè?|¸7¢ˆI?é^˜«Ÿë?=oÜ«[?špt ° ?!´ÙŒ×¶?ó ʼE?&íÝ•ÓÒ?È@GnD?Ò^ºò?y?3¾±D/?Ì¡èv?v\רêÆ?ÿ·:‡Ò?9ÁÅ0?¡Ôöù6?rR7÷ÄÍ?¢+é|l¢?Ûp\¶à?\šö} ?JNãg^?ž£ãØÉ5?3È—¦²t?Õ™Ø~Æ?X.¬7ÉÑ?¤ÀC?#?¹¤¥øï? äö©æ?f­ewp”?cûƒ"?Â)øG@@?3NÏÑ]?ioWœiÀ?•¢&¨¶r? ¬Ó;î?º²@·6`?“K{ ¥?{bÓÎÝ?^¥,ÚŽ?-à‚Øo%?Ûë®?_?_ek~*?´|–|?ßg¥éY"?ëåEfˆš?è|³Þ¢?ßHœë´?Ñ„t®ù?º}]¤öG?—¹Ð?lå¶=€Ö?H‘ó·f?3×­¨¦È?)à'È Ö?®-FKE?ØXV•Ôr?f Bêd^?ËoÑ/Í*?(Bšr?æÖhi?4gR,óŽ?Ñz\/¶?E~ýÑÖâ?fÌÄ´Ë ?*ªÓ³·?°“sqô'?:XÇÀ>?ñŒ¹Áß?ãÌ?*T üÂ?:ìˆ?7ŸÙ€×?Cøñ³ª?&elü²È?ÂÄõüíy?é†d?+y^Œ¾?Õg'r·?›Èeâé?óCÇ(%v? ˜ù½c?M~EëØ?¸£ 2ÂA?‰2¨Ù?¿ùHÛÞø?4c@$#Œ?©a™IeÜ?íNŒ³cÖ?òu(ÍÚ?Ò¾Z‘æå?¼þì`ú~?Ö!PÙw–?Û~—1ù?gå­z€?løç?ñÆúÁø?èmÿÌ/Á?‚?qVá? tøAS? ÝfB¶*™?f•8Ë?Ÿ¸·„Ï?ÁÉ¿³|?ú{¢±ÛÂ?ÃpÂ@?l蘙֡?"èZB?¯¯“›´|?‚NF?¯&Uàf?m¼x?e”d 7µ?›ÆŸ…›;?޹ýT?ITx¡ÈM?ûì˜ðã?ݯ«Þÿ?a¼beÎ?£“Ì®B/?nM]N•l?Dtq i?ô „"%Æ?UltÿCú?QÜŠ%?ã vmµ?Ù|˜o‹?õò*L?µšè´ i?a/m¯?†u’úŒ]?Ý#³wì?bsÿ£ ?PÏk–o?4°¬:e?"ŽV™³?+ ¼E8À?j—ûØ„?ôjü¸˜?Ã}¹Èý®?¹XÕÏÿ1?¨hô‘ö–?ce *º?Ët›Uc÷?ÖÖ[§ƒR?ªÑ¦®À? ‡d œü?g_ Í¡m?·mb+ï? l˜–x~?rª:?åtƒào ?b–Ôüõ¢?äjZ H?k±~„p(?Ánê¶?°d‘R‚?‡<úuB?Ž8_¾ ?Éó¾+?9ôœtšÖ?Ö‹ø ¢?ŽéQîЫ?Je\a¹¬?ð*Ñ ?po`(Z¹?˽ àb?©Àëž?G?/)?y±pN9„?žR›]©?ªŠË„Zž?œÖCü?€5SûR?hm>r¥?dôK?y ®•t?¡¤9%æ?ÙV˜Á„u? lúÈvy?{¹dO]?éi_×µÎ?a4 b?ËK‡|? ÙˆÑÄÚ?d‹œ?¬Oz¤è,?¢v>«œ?Hk×åãÜ?xªBYJ?½~o©wâ?(ˆ>=p†?À"0Þ(?ƒÈëØ[‰?pÉW3Æ?ƒeÂe¿:?¶> },?õº¦’E?dÇ–§çq?ÜòßßÂJ?tno–n8?8¥¦Ë‚š?0›UšI?PiŒžñõ?s8‚¿ô?dlàE_‚?õ×7¤I¼?[BYb?ÖïÇ’dä?jŽÿÕVJ?S·jê1?ÖQZÕ©?é–ÈïÖ?AE̵?Ô\9ºð‚?™X:lÔ? CJ¶;Å? ÇׇpL8?!R –)—Ä?!ÙÔ«N?"Z]aˆ4?"ÓÅ$tÉ?#HŽ0”à?#¸ÖÐè ?$¬=$Æ?$o!‰Ý½è?$Ÿ·o„Ÿv?$®FÝø¯?$¥ftWhÖ?$š€²bîË?$£ÿ¼ŠÉC?$ÍLÏYÆ?%%7=ª¡?%W£¿µ”¨?%Œa\ ?% e†oZ?%”c~¬ˆ?%t¿à?%O –(»Í?%3w¿[ƒÀ?%+)Ì:Ñ}?%:ìÇæJâ?%`aÞîúp?%‘Böxq?%½rxÅŒ?%ÕÂŒ³?%Ï?äÌñ°?%¬X1JW¢?%sC2o>P?%+Ë$?$ÕOÓæ™¥?$n ³åFL?#î½|;%Ï?#SònÚ||?" UoäÐ?!Ü}i€kð?!˜<©üH? U©O¦l?TçøêÿÞ?03Ö¿¾Ç?8eõ¹,?\”K?X\?‹c¤ðf,?Àƒ>èÝ ? Ѭ<?”²­lœ?4mGHÛ?(»5d?GTtŸ%?kó:[?pE{¨M$?9!´ÌO?Àªev³§Î?[ø-KT?ôm@–?›ÔËo6ð? šü¬â?P‚¾TBê? Ѹ¡¨?Wâä?b3è/kR?zÒ…EÔ?î½ã;C?ë¶’h?nZ°*•?FUs!h?.HÀ¾Í?èÄÂcúO?Tâ<˜hì?qVp/f?P¬Ùúbž? Œ°’›¡?¯ ǹK¨?R³`HØ"? Š£ãL?ì)èTvÆ?¢v<¢`?x¸Œ4>?#`éâH?û ¤Ø?ëÑËÈiò?Ý:~Âú ?¹ç÷ðvæ?lȤ‚u?å>/Q/g?®·r?±W¼'Þ?噸mi?¤è·Øa°~?k=n2ã??O×i?qÁý°ÔQ?O[­t«?Ȉ”o?-5xK?õw¡µZ’?#ÑVN…?˪jÆè?úHž«OZ?+Ù…Çõƒ?]Yú±?¹ÕUrz?[pKw ?!” ¨A?#>€÷¦?"ÎüŽÝF?ÿLÓ¿B4?r©1s€“?Ô·H9ì‡? &)Mª^? ›!µƒU? © ›h ?¹ò Ÿ?÷L+¨’–?^´§°{Ê?ÍÚêçù? ½ª,é?5Ú&?ÿ ‚†[?èÔs®îñ?Ó9B°¬Ñ?õ§i‰{¡?I"G±B`?¤}6°?Ö*DóËæ?ÄHÖü²?~‡kÊ’?3cs’qÁ?Ú%Ò?Uãø–K˜?ãÃr"I?¦‰ˆ=î„?qP³Çž?ø!bz?r“:‘WD?kª£‰KÀ?÷J®æ?± 7]Ÿ?n?œ$‡#q„?Z¸-´n?V)»|rÞ?¦M ._?A„-jã? ª§1é?î€HâQx?çµ$¤Q? Þ²‡Fµ?phäkŒq?%‰¡[½?íÎÞæš?&Û\A?*Iôõ?Ë%ý%?¬²ÑÅ?_¹?¼V`±Nn?4z5,àa?“œl?çðuY¿^?:ò&«¼??~¢éì?å c’R ?;ü<éž"?–gpM!ð?üòrå€l?žì€í ?2y_?%ýZ§©ó?eD¿Ë†?ðcZ½D?¾8Õ~kH?¼u[NJÅ?ЮTabÆ?ÛöÄ…¥?ÂâÃJŒÒ?vïÉç~X?úÞÖÏ» ?]bŠ˜¯x?«cL=þ³?ãÇòd»¥?÷® Àz?Ô}Ø‚žY?z¬¡ð\D?þÈãöN?€ÑRjœ?"ºáçÆ?óA ÜCc?ïÆ€pLÞ? ÀÉY‹?;t8æ-?vOø.)p?¸–I2Ñ^?øÂr¹øp?%ܨT ?)¤.{‹?ñ«bÌ:?wž"ŒZD?Ëã¬Yà? ílŽè?^ lØj?Ú–Ÿê?u˜lÏŒ?{‹*È?”cPŒdÂ?ËŽŠÛWN?&ÑÑô¸?[øÎr?£ä4™ìÀ?ï1%7m.?Nqì‘ßl?Ø€ Ô?¡b¶ îe?­°PÁî?éfÙÙKÿ?'›Ù‰Õ?0a–Êñ?Ö+Es +? ÍŠÕ¼ ?æ®Þj?•²åŸùà?J[› ­6?&Õe'ë÷?8Ü}® M?~ÅøÓÈ?ñÿ½h ? Fž ¡à? ¥Zãry?!æ PK?!‚<@o ?!òŒ­…?"[¼MFÊ?"¾…G.­ô?#Ç™tú$?#r¾¡tä?#½‰K€-0?#òP—bÕF?$'WG‘?#ýÖ»äpï?#Þ§Ÿ kŠ?#À;z/?#¹ÒÏÈqÈ?#ت£t9?$³E?$hx…ù3©?$°aê­æ?$⨀ ³A?$üp„"=#?%;àÒ´?% žu é?%±ìÛ¦?%,—±Ö»?%Y½îK{h?%šA5?%ãMÈw]?&#¬T’3)?&G‘¸¶ø?&BãïÙU?&pÃY?%¾s¡Ê¥?%Uƒî?¬T?$ßè¸ ?$`þEãR?#ÔåóÈÐg?#9Ç[ˆ'?"ŽÆ8‹­?!Ø4¬†Æ6?!™1Ç&È? lÝâ¹ P?™\ü4r®?ƒÒ÷‚Ò?V³:K?¨Ö= ŒÇ?º¯íñ](?ÃÜ%™Ø?ØA¤?¿µà´¶?–œŸçŸ?Z«÷Ë^B?Oý.¦?Uº}s2?IXÄ7,œ?°‚S¾?§ËzP²?zó~:?‰Ra•1Ø?*±û5«?3DÀÉô·?ÕV8gèX?*n–ûÁŠ?)ÝU‚A?¤´¯À‰?Mí¬r¾? äîŸÃþ?!àÜJÃøo?"x ·aýÌ?"•Ê4Èâ?"6‘Óóm?!i= ËÜý? NOêRü?(£I¨ ?ãà€u?9ä2›ï?IÍ$4?Ú=¶‰·å?5øÒÄÁ#?@aRþ³?~ ØhIP? µs0r¨f?!NÍ-;kF?!o€‡ ?! ªõÔ? ^dt!>W?ÇJ¢ÚlØ?”«xé«Ü?bmr°n?aãÔüC.?·V$ÛeÒ?x·pûà?­eûg7 ?P¿\Ê„Æ?UÒý …?ª6ŠHÞF?4Žÿhþ?Ю,¨÷?Lá¶|OÝ?w1þqŽœ?,Q#°äÐ?n>çŠ.µ?m~ÉNÝÞ?|‹j¬J?ðçdYš?þÀoM?£˜sb³I?¨~aÌáÃ?¼*]f¦å?•WÁ'²Ž? è0D?#­óeö?ñë¯9˜È?˜DÿCª™?.{·E ¢?Æî‚FqÂ?t³p•Õþ?NO^(¤Q?gD;ü¸?È„Œ;C?lãÞʼn?CüŒ3{Ä?7äÕ &5?/}é?B‹/Û?¾_fç3?$íú7?7ÂýgÒ¼?ªÜ,?šÿadÈ™?'Y\ä9?ÇûâY‹Ý?+üÑE?}> .?‡00[?”MÌ€Á?™‹ãf?:\ ?feÜì³l?­ñ|»©?‹Ÿ?Ëálç‡?ƒ}"m›?å–¢Ü>T?¤Œ$Ž?1âžP$?‹ˆ%á6?F¼‹yD¢?g‰ÄâÂd?ÅŸÌQŒà?ZpÃà?3ê¢tûü?ëáF†?VËý‡MÅ?¬£©*?";pÿ‘š?¥c–s߈?Q \_`?Ô,°¨Æ? ´Ä™Æ»? Àúˆªír? ?l³ý¤?ÞapQa?iä¨hHË?Ⲋ½þB?UJa “L?21XâL?QÑ´_?ÔZÄÑÔj?Z êw³/?Ž€Nü'ä¦?S«ð”Oç?(áäFH?ÙêIŠ?Gè&¿:å?ÆÎþiø¦?œððø?­‚Vè?Çô î÷}?µÙ\?I¥†B?sL+@•ê?>õ ;uý?ÊK§B ?5ÅCl5+?–?㔩t?ñÍGý­|?E|ñå­?ŽÄÅ"Ë?̰p*\«?’ÜøÜG?I¸_? An“ ? W4 2?ßd.ƒ-]?ò+Ùhå?dý–·À?8œÜB Ì?`®†¨¨_?ÄdÝ‚àW?A\-Y?± ² †?õ d5P=?û¡ÓH¡?Æ %jBü?c›l—Ï8?ÜÕ‡Už?)*vËŒ?/ßq e¾?Ùå„àO`?&k)€ë?3¨kÍô?4ºEû)d?[Âñ¤³x?ÆUƒS.?w/…=D—?]ÜoÐ!Ý?dfrk?yäúíoÞ?’~òìF?¤Bv+âv?¡.(Ü?wsÈåø¢?G|â ?‚‚mKÖ™?Èi¯°·? Nx±p¶?n·œ¯Æ?VÓjR?õÒy¼ ?3‹ç®,?yrb…Ç?í.p(bñ?aç>.™?ÄV³›?€?ß–óüü¯?ú/„d?„Kw(Ú?0¢e±4? Ѭ@E·É?!Ä3{oi?"Mö'7ßz?"\=Ù+”T?!ï Åé—Ê?!ùØQõ? Æ-2H ?­œ×Ndy?œbÞÄÑ?2óA9œ ?»s;z ?SÔ¼ï`è?àhIþë? ;Þ ? +M1 áó?!H˸¶?!®[ñA‡?!¿°º?!W c’«Ñ? r´ÙAŠ? €ô¼Ûº?϶xAA­?¢7ßW«Þ?µÔœãZ?(帖ö?5Ñ0®t?M¿ÊÝþî?ò´RË?è¨I y?#ĵ?‘º–)ÕL?#VåX?„‡2ž`?ª“@Å8`?dHغÏ?¯Jבj¦?¹„”Od?ÑþQg?O{žz®Ô?h„¨Â ’?z…Þ"ó?/dnÂ,º?N&èÜÏ6?)‹pïWd?˜£»ú”Ø?ž6¤æÉ‘?Y¤ã¾1?îû[«b?xÄô-å;??k%?­Ðα`b?~-r?Œr¶þ?ãüLa†Æ?‚ þªN?XM ?Oí‹ .?NËÄøä?2¯3™<ô?Ü^;bvä?0Ãeð©G?%Á_QC?ÄXŽòé?.ž±mE~?vE¯Òð?õS|z?Ò'ØÙèV?Ë 3Àa?é)Cr?…?§8b‡¯?"«Da­½?ï3¯WL?Þ_‘ÃX?rOn'#?Ê »£žü?íÇŽÜLz?úðÀ•š?K3½-N?ƒY)Ôc?1©Úç? 6& ˆÀ?àššúÜÞ?sóÿ3D¦?©¨ŠáÞ$?Œ…›Er?Ng)lÐ?o¯<Žb8? ÌŒ "»? ý”;yÏ£?W‹÷@? ^•Î `?NA°Œl?½t§„?¨M9…”‚?yÀqañ?óƆu»À?”Ùw¤~?Ⱥz‹?'2M\R?H‡&T´Ù?apjjü?®ÆPr(?_˱?vëæ¾ŸÜ?Ì) S5ƒ?%q,?¿®öI??™%˜#Íú?Ç$ý—?ÌBM•|?ÂL¹Cš?ÍF™#Q?ü€ÑÝZ?J%/Å"?¦†yƘ¸?] Ú?T ʆ¶â?‹ j³?’š¾¡ê?SM‡÷L?Á1»~çî?èoA ql?îaÑ”?î2A‚?G­ïx¥?Æ_Nžñ$?k]oŒ’?Žž²À?ÚE ¿Ë?´¤v™›s?Ó^Okž;?SR·½›?3õï’|?Mgý¬[Œ?eµÐÒ”?;`‰«Ÿl?¥Žë‡>?›požKa?5ÔW¨²Ù?ŸA–:òn?ýH¶>A?`}ý:w?Ãú2]ñ?©¡, ?Y2ב?‡ „´?±þ\7c3?ìÛû~¶Ž?J*euíš?Ücj!ž??·&­ºŠ£?îq˜#`¿?’Ÿé-1?§‹q+êƒ?$ûmØ«J?ðmÆÏq?à”þØr?ÉýIfP?„Õòh´?ûê„‘Ç? –åk>ö?!îpºo?!oý}¡p”?!§¢@®j?!§u‘ƒä?!_@ÃGÍÄ? о?`Î? ]?æv?‚(ñî¿? ¹Fßb’?îñ!Ñú?4—t¨Ç.?ÍFù]ëF?œÅ˜Ä%¼?ˆÆ›ºÛ†?~r¾èÅ›?oŒêõÍ&?MAò‰?×ѯí’?~ë3.?æQ-5ßß?–NÖ<Ÿ?]8å“ù?ćޯS?péñ×E¬?mp=Èä?´¬ô>ýO?3úñ"œ?ÏÒñƒ?ip oËÊ?ç3×í ??®º¶ùà?õʨ|e?ÈÒö?@x¾™4?$-ÍÞ? ½ø•1.?@Ýfçž?o{–Öðx?f| LL¼? «9k,? %:t½$7¹?!·‡Ækfv?"•+¯ñ^?"eÝüd‚–?"Ð/ûŽ|œ?#5Ezmû?#ÖÅõðJ?#äÃõ‰?$5üB0Bx?$Šðv_¶ö?$êã¨3Hö?%[ôï©h?%ÝÓ|k€?&e­RÕP?&Úÿbmh?'$=#X«e?'+:D9‡2?&èÚ¤/‚?&fÄTKZX?%º‚b â?$üª¨r?$Aø­ç?#’†ó›P?"ó÷سÑH?"cL^7ª?!ݾÑ?!bxÛPd_? ó7òSÞ? u®ñìf? 5ŸAûñ?¬C:È€ó?ÄüÓõë?£µùÌ?Q óÏ??ô?õÔA[?¹ö”«­?ÀSÑO¡Y? ƒ¦á ?ŠÊ½‘;ý?$ýqI?Âóîkø£?U%ˆ ¥?×O“yø?TA]K_g?è¯Ag0?¿·äZ·? $qÔ?êgØl½ý?pHûôDý?†Z=q–?÷ÝôÌ5P?y¼…i¾ö? \4·€?!3i4ŒY?!¥Pˆ¹"»?!£r­¼b?!2 ´j"ö? g$|#]?ÏP2ã'Ô?Ã’„?ÓÁ À?ò¯s ?¾ÔXrâ?€oÍ¢ãR?êìkä,?6Cê<? .XBVo?! ð6†&?!èaz?!|•1‰¦B?!îXHŸE? =+t¹R?fÌØ?mµ¿5wƒ?|w½¿ g?×y./¦Ú?‘ú^?W?ªÉÂúq/?\Ô~¦Ï?À_û ³?¦:æÔ³¨?Â#ú+ù? ±'u·?q<šjÞ{?Êè!!)f?ëxr“)?®ÞFfðŽ?*Êsž?1k™m¨Ä?]ž²‚Ñ?å&ÛÁ e?üêo–ÈŽ?¦ K12™?ª¡WG ?¶šž¿(™?|ËáNš?Õ¨ûð!5?Æ`Ç6?qEÝ£&Ê?ü%,¾Á?€¶>cÐ? ÛM¬h?¬àé’Š¤?rÜ%Ì8Ë?só4NÔ?»÷³ƒæœ?Oˆ‡M2?"—à­Ýá?ÁiÆw?(§$ñB+?— ç?Æ`?qû¿?3W²Ä)?ôèIÇ¥?uø6ì?ú?¼ë¬_õ!?þ%¹Q®?jî¤=F`?!fN1œ?!Ñ`ž9?R{ÝŽä?‹ÞdñtŽ?­Òne?£ ÀZ'Æ?a܃ò@?ân²å#?( ·j}?A&{ìÝ?Q¼pÇñ`?ŠŸ»8º_?(¾Ä•?öá¿è?¿(X?$¹Ô­×ñ?õZæn•?]"&vî?a† Týc?2E!6D?mJÙ\t?¼Üÿ>?iWŸM(e?G%–gi?Œ!Ê0?¶.`¶½?å¾á3•?êÝ\ìK?§†çU¼? 0ëI‡Ö?Ë]x?¶þ ø‹??gÝ/e?FÉ q”?(Љ~?pÄ®ð{?šp§+?;Ÿ œ?“³µ ?Ù'x±ò?¿Y,6»¢?$[“€©?!Ê,IÌÝ? üRˆž:°? ¼ò],!? Éb›] €? Ëk1Öø? ’`õR}´?°xCu¢?3qè‚¶?EMãzAš?kšöwàÒ?H;Nˆÿ?Çr×\Õ?¨œö4Þ?Ë4ð\Þ?1 ‰f?‡hϦ¤?§rú /^?Z«—§Åj?¾¨îöx©? *{˜)ó?n§Š_&D?íÀ¬Ëö?±<ƒöû?QY2£¾@?Æ"Qt;? [ø¡jÓ?9M®Â7?[ßSÕ_?z´¦/?%P?˜í矔®?ŸffYíû?­Ô‰æ6V?Ź&ùD?ÓôŽÂh²?½²0¡ >?l¨d-Ü1?ãkƒ1âó?>¬=Û­?¥j |Ãg4L?•Æÿq¢?ýŠÊÿôð?f‚cAÀ’?ºFn;G?ïO„Ì?øˆèýS?6îé¬×?|H«C¥?ö Þr¥Š?°? ÎéˆÚ+¢? ï—klg?!ÑVZ7³?!D0REtr?!kç=àìù?!ƒ–¦ X?!ûb<%0?!d®©îÔ?!.ÅÄ®?%? îI |¶·? ³ûè+Yã? ’¼„/ÖL? ™N¿ÿBN? ÍÀËNH?!'œÜÕÊl?!š% E_Ã?":-"§*?"Š0K£—‘?"÷m‡Á0½?#]&MžS?#À9 29 ?$(+3€:?$$½:Ö?%&r±OùX?%ÂÕ;BlE?&dšå­fb?&ñè+6ü?'L Dq!L?'Zˆ#ƒÀ?'£±‘`?&„á:a]º?%öÁÂÊ?$†’?$"øïøÕx?#nëh‚ß?"Ù†¡5Ð1?"`”ÃA«¬?!ýúÚ6Zz?!«s¸]úy?!dc—#3£?!#›QœæÆ? ßšæ ? ‰’iVc\? ‚畯ï?èd¸t¿ì?o¨?gî?æ^¤xà:?{ÜI%•Z?LÝ‚x?[Í@Š›¡?™©¨S?ñ®Fä‹?TͰžM'?¼núíP?'ÿ”Ú¬f?¢usƒ=§?Dé›Ë3É?3ö’*f?–; ø?†CGëJ_?6OÅ‚¡?ú“4ã —?-Õ虀?[ ŽB’†?=Octo€? KÕEá8? ¶¬P2¬? Ž|tqÜÃ? $;E»ƒü?èùˆ*[2??Û70p?™Ã“æ÷«?C»›UÆ?%F~8œ?IgzF?QÒuaÿP?Ó8(Zì?·i”ªí€?’Çàoò? {‘Çfß;? ͇.äÙ ? ².±¼ä? 5t aôj?è̳0Œ?%wIÓܪ?dÛ*ÕG¯?Ûúa%µ#?¨”œ¾A¬?γry¬?>èb ?Þ{~T1I?Ÿ ë?©²?|r²^St?|_"¥Æ?¢|ºÉc?äf|Á=P?%îû™¬D??.,? ¥“8?†Š?¸Ë*?ų”<Š?øöbk?ŽŠ"Þ|µ?•î¦ï?-ÑId&?û¹€N?àÿ,ÄØb?…“HŸë"?Ķ5¡õ?¢iâÆ/œ?B¸Û´(â?Éà¾v‚§?OvG{?Û“‡?vß/¨€½?/ߌì ?«,àÌ?MžÅc?ÎQ=7Ö;?˜g)¬?˜”vØ‹ƒ?®}þé)f?¯ªÇÿ?mÜèOÊA?Äýnµ?¢åÖðE?[î¸?Mª\KÃ?|ö“ç*?ÜØþ¶4:?)­€W?•;–#Ù§?ÒÝÁ”„«?s,stª?Nbu|¹’?LîÌgâ? fe‡¿k?Œ‹(ý«?ÐBºNÊö?îWg_J?X³õÏX?jޏXDx?%Œ1–ÞF?Fî1rºO?©Vßð“'?Ø`·j?Fl ÷{?À^¨o~?ìQ¯L¹?ÏÀËuš?±¶®Œ‚–?àF…K5?Œ¬ÎTv?ͤޥ˜?,â‡+ð?uE•ŠÛË?mߢVZ^?9d5?Áks½?èaUè#/? s;od? fñDGX? v–ÆH?{Æû#,æ?÷¿A?r6SØ?M¿äÝq?È^ŒGP–?OÕ>CA?g«ÞvùL?)×¾«Àò?0f°ú¼?KØ£¢ž?¯VÇ«©?‰l%­?E&g“£?ÎlN?¡j bÃ?×2Щ?–J9›‚?Qùêë˜?0ÚV-‰ø?›ä°Š9?ÖcßÍ{.?nG7hV?ÚÔ!‚ZÖ?"€×Û8?*+ÞÒƒ?=BÀ‰º?¹.Ñr¨º?dß•í?&öy’’?j"{q?úè‘ëó?!ÑÛjÖ¾? ô»É‚x?ÌЪ/‘(?}YaÔX†?8Sןµ? ]ôɇ?ê¤rúŸ?¸IV~|J?^^èòn?ås¨^L_?w__†R?JêÄóã.?…æ³1??&Úoü•Å?_aF˜?ÔÇò ý?Z¢ºl œ?p|óõÉ?i ýp?{¦M’g?ÉkùL¸?$ÜX0d9?çJƒm?÷w2wÜ7??i•Òd?cžs”Û?xVH&9P?¡òò±;ƒ?ÂE˜°?©§TEîÄ?fé÷Ù?Þo Ò}²?w úÊ?|ps(“?|8¹ p?š„Ýò–?–ý¼ÌÅ?e9Ô$ü­? ¢Ï`Éó?"·ë;¶í?#B÷ýé?$\ZZÞÕA?%Lä3,©™?&ÅÉÍPÊ?&výiˆÓR?&w>žfüæ?%ó9K„Ä?$î¹á^µw?#Œâó`§3?"ç‘›˜ÇŒ®?ÌåèPÜ‹?ÿúAXÑÐ?XÀÁù@?îÐü0?Ѫ«pº?gƒYG?w¾Zsl?hL¬¿ö?Ög{M…{?„9©N\?*^Ò0?ƒÍF[¾?ê^GúQ?b)+Cï?ÿH3º¯?ý,%ì`?ž·u åp?sÚÂñ¬?'“vm#Û?ªjRe;f?þû…½“?2/[à'ð?[¶t˜ ?‹dD:Ã?È#v¨É? Áã°yI? ,Hæ Ö2? K¼pœ? `ýQT‘š? iøeãŽ? j)­„ô? j¢Î7cÿ? v:ü[y? ‘îÇs]º? ¹¬5Ý_? ß…öFï? ðœl—M? á©23¬2? °Äˆ%c? hƒœi7? µfjUð?¶L‘hrÖ?H˜Çcà?¦ñÔ» ? Q'D~>? „¦d4^ò?!|ÄÂn5?!8ʺÞ{?"QˆpSk?"‚ªÌ“Z?"ë¢yš¬?#OpEní*?#º>Ó1¤_?$6ØÐ‘žÐ?$Ìö« ¡Ý?%z+d±Üá?&-ðâ~š!?&ËlEå»Î?'1µeÌ‚?'GC L1ñ?'HÔíc¾?&p×éÓx.?%ª­>úJ?$Ò5úìÒ¨?$íiØ?#Zhc y?"×ßÁ ç?"{¤lñ‘Ž?"Óï?KðäSþ?§ÂôÎI?'6UÍ"?áHVnu;?ððt=B?pO«ˆ‡?kþÃqJ|?ÙÈÀ Ýý?—}3¦L?o‘Mù1”?)ýý=L?I¢°?z¾òQÅ?Ö°ò=D`? ˜ðs“ ?éʤz™Š?ÕoP"PT?”ý‡À?]KµsÉó?iÏrcãÙ?ì¸L¥Ìn? ‹‡Žò?Îñ@dr? Éy­K?®rÁ??&Èåd|$?+K†Dº?€3 4? zYýé?[â8xí?®de²ç?/m3‘ ¨?ÕIÀdÜ"?ËV ‘n°?!÷Ž|?É"÷×XÒ?£ ˜»ÕÂ?ŒPh¼÷­?q61›ö?S1I»óà?AXì¼Á‚?IË |èV?ly±Åf˜?–šyYB?§‘âq»7?uéÚü?5œSºf?fx€Ó™?³­ 3ùÛ?5>«C ½?úñÁ-?wn6PƬ?!Ûå†?Ú à´@?]–Ó“e ?‡“¯±%{?[:B°~?ö´,sd?|¾IƒÖü?ÞŸ…,&?Œ9¡æ¶?èÂ]?Å©ÒÊ÷ô?•à~9Œ?§›’ÕÀ? +Û#iÒ?Áÿ³ÈC?¼™Þ‹Ô‰?Ú:R˨?ìŸ}²a#?À) Ž)‡?*½ÍWhb?X¨~ÊQ?˜çЄX?Óuó¼Ýa?æ÷Ò†?fOYtn?WWÀp*?&˹ìsÔ?mжš‚?Å^£ž7À?9ÔÁ?ïóØñŒ?íÖ}-?PV8´?Ö¾6‹ÿ? 3?I×°?M%ƒ4ª?Ðòn©hé?Á#%K‰?!ï†\?ʶk¡¸ë?rÊÂG§Í?ÎY¯ó ?«4›ßeC?H•ãÈ¢?ýT)›ó³?Þ’¦½;?ïPø3¤ˆ?h%èä?]7 ?½^ø¢…À?ZåiÁzÛ?ü|wüé?nBw×k~?’þ®’!“?as‹úè%?à ƒ´Z?Ó¡lßÊ?&¤öéY ?÷Šæ-?2yD=·:?2ab’ ¼?ïÑc Á¯?ŽÐÒÈE¡?KíºîB¼?©ÒW. é?´³™óû?È­g‚D¬? –®Öq ²? 2Ýp;ó? DòÎ,`ë?!È5¶d?¯*UþÄF?…=‘Å_ü?3§ßlÐ?€ƒ5„Ù?€ ðå%?ƒ?öFÃ?åêƒQ#? ™þËgÏ?§ÔIUT-?Lž¶¥Õ?Šj$ß ?܇*Ú?c½™‡Š?à’.[j©?€l§Ó–? 8Yñ{-?´óSïª?–-[¿0?©ž!…¨?уî¸?ëíiÑ|é?Þêàùüù?–òÇ+¹?V46=?sØŒÏ?½UÉ?'H~|yæ?|†Ó³ý*?ð„÷ZÖ?¢ïz3P?ö˱îœ?—¾àZ™0?ŸA8\0?–ªQUÛ®?‡O±&žC?ƒŒ& ˜$?‘ó©o?*”"í?‡©xn4?9è*¬‹?¼ÞC(x?9”8û$?æR2Àà?ì·”±`í?O:À‡H˜?ëY¿í?…—]šLç?æ$ª~(Ø?ëÆŠB´?˜sÕúáÝ? zª{l?nkgœ´?וë´J{?CÔ ·4?›ððaŒ?ËÛr—Y?×nsXVÑ?ßTò£ü²?°L‘·Ý?“åÏòæ?sÉèT½?ª<+´³?,9×!á?ü'L”%Ò?/Po ÌD?áO¬Ó,Â? ½Òkš?à &U€–?õ -ÒK˜?!“¶} Ò?#"5EâЄ?$–h¿o«K?%é+ˆ®ƒ‘?'ôn€Ç'?(b†ýÂ?(Ž•În»©?(”Òè0?'ùþÈqÌ?&ÁYêk.?%Yäqá4?#@OU:j?!}Q¹âë? ™»^ö²?ÉôÃ6?Hî!A½j?`¦@s˰?áÞ»Òòô?ŸÎýÜÜ?t]Å7„?@™§pGñ?í$J…Êä?lUÇJ,'?¿“4}$Ä?øa¢ûF?2»ÞùIö?‹…ç¦?ïèzÔ?ä§ ft?ô½T ˜Œ?GØUí…?Òn^¹lc?™ÎEq?4KÿÛÓ§?ÚáþE+?gõ¯ÿŽ?䤢E¨Ð?_@°0Ù?æ h?~ð!©“ ?%ÐóxV?ÎÛ3Öa@?kÔuõD¥?ò¼»Ø?^Á ±K?¶Ñ™‚>?2sºFã?QP¿U?£k ¹Àr?úd.ùz? &Úº„P? FjBÍ? S¸¦ŸÊ? L‹.È}? 6½F½´ˆ? !¬B? çDÄH? 7sõÉ*? dÏöDê‡? ’Kö‚*ô? ¦âЉ›O? ‘¹Üâf? QöFR#€?ìÞ„F?/8~êÇ„?Ÿ ‘:éê?f~Të¤?œ28/›8?>_§ ²‹? êo¦1? ªY»”±å?!<,¢yè?!À¶Ëˆd?"1óçÊut?"’ÑÓL”?"í^¯ö„?#Oò è?#ÈébAê?$`½Ð g?%Œ.·?%ÎgTÖG?&r±)[ £?&ß7‚v‰?&ûkÐÎÝ?&¿¾Xˆã4?&7öá^¹?%~×–j@?$µ¯,sj ?#û@­œÚx?#dÜž÷-Ü?"ûEÀýfw?"»Z ¡È?"˜rsû?"ƒôzï{?"jÿ%rûŽ?"Aí6‚»?!û.·§¿?!ŽXòì³? öz–6è? 9rÿYêk?ÍËá\†?&?ßé‹ö?œŽ•#Î?<Ë®¤vý?íFPN?ÝK ±}C?Í®#H?ÕWž­r?u\õ?][iÒ?õ ´½°?ØÁ"°A?ÆÏb´§?À Iê¡?Ë#00ÆÍ?"л5Ú?ž:ß+ŒÀ? àL«¶?>ok®,q?'eŽ.?…#Çôö–?ŒÒ)á*S?9¦uÆó:?Ÿ,™`?Õ'óÍr?ø {Uhš?(&¤1*×?‰cA°Í?@Ya?†Ã?jnåãWè?ý|¢'º?S]×I9?V1#bø?l¹ê Á?¯³Å³Z?"Ñ3­^?mÒ|ún?ƒ‘Ýû:ú?; b+yý?ý+‘È„?¼úŠ1?x&oÄø¿?V§Y[¢?ƒ„œ¯ñ›?΃€$ò? Où¤¯v?ô9Ë€z?&~?üæYÒ?ñðæi|Ÿ?ü±`Z{N?}ñ-îs?¨Q… ?üd¶úN?žsí? ž0’?\¬J´ßæ?Ïó+3wh?“¯YtÚx?¼œºØýÕ?5A&W;}?Çr.T0?4…ýÝ7ç?V”6Úý“?)%jž7>?Ĥ6qî?Eù98?Âùž'mâ÷ Ã?t噟ßp?õ̸¸?¿ºÑ¹A? •+ß–? æàšug,?sÀ=2–¨?À©nC*?ÜÚ‰{õó?â8§á?¶½£o?^Zcà¬?ý…ù3G?ÀÚW¾?‘úv9?{ù²?q¯t­ †?ärßÌu?8‡}Õ"?GÛ# !—?í¤§â‡R?ŸË¢ºØ?¬IXH–æ?ä‘prfZ?ô–xàAî?ßÐÍË?ˆ¸\@V??Ó”Øfœ?,åð›k?1A(·Mc?:ƒÍe‘Õ?I¤ R# ?h‡`i¥?—Œ›©Æ?ÂÂøfþd?ÊDÐeãö?–ŸW&š?)Ì l¯˜?¦Í·rŒ/?=ë÷& ?Ýâ¢?3å¯#¯v?‹µ‘ø’p?ò ”‘jZ?<5­”îá?MZë†ÂE? Y¿­º?ÄR FVv?Nëá½}?ÊàZÂ?0™ßª5˜?nníäyI?|ð’5$?j“Cü?fl+Ö-¡?¤×d›?L>Z†?dÑ€¸?Ü€ù^ä?œzÌV¤?žM[?öOiÑ’Ô?¿ Oÿ?º&8FI?ë™2Žy? ‹oŽô~¬?"2zLFôj?#ÔÓé`^?%e5ª‡Ž‡?&Þ¢q•Æ?(3±C¶¢D?)JÃÚRŒ?)öqôÕ?* ø¦ò?)\zï—*?(@GÄJ?&(GŶ6~?$ü­@r?"&âÍ=2?%ýG­Ç?&ií~/?&‹5za߯?&^Hÿ™@Ø?%îyOÈ?%RÅŒ½[È?$ª<²às?$s㲺b?#–Ñ9?#Fk‘Ü£?#Õ›§¹C?# Ó±çÆÜ?"üåfù¸˜?"áG­±Fý?"¦¦²˜|Â?"B×52¼{?!³C¶²“´? ý•£å—? .ãQÈGu?±· wj°?‡Õ8‹`? ²Å/?Kû0R? ÎÛ:¡?ÚcÃXXC?¶¼HCt'?±ËÕüÉ/?à;%§~×?TŒ3a¨3?0kÿíÔ?@’ÌcM?ÃÞ:»Ø5?¡]žâÃ?ÄLŠ>HÁ?ÁQ’@?@ñóçù¾??à™ôNo?åÿ è…r?(håhE4?Csìd?·ø¾Âîm?7; _Ì`?¤ýaSE?|ü˜û.?€6÷Æ™? Ò¶vš?¥þ9aü„?ƒ_ªÏ'E?°êå$Ëi?7Ý7qÅÅ?Ï#pFˆ?ó‹H,y?¹,­èIv?ØRÚi\?õ»© 1u?Gic€ ?7s½ç?ÊPMœñ?útÊy!?Oψ€?&.ì€ä?v->"j‰?NÐg§?ÆYÒn'q?RuªP%?œÔ¸@½ ?«¢öƧL?™R¹Þ?…Kgß4î?€~-+o¦?‰—(®ú?ãfÙ?sSÊ›ç?#¶vÿú?,!]fÛ?ö×Y¸Rž?^K ú(?1°tS?­f?X Ž}¢?ÑäùÏ`Y?9NKÑò?aOe91Å?<.€`8"?×ÚÝiåÀ?Nç¡WÁ?·˜?¸´G?™ÓZ¹v?‚RŸŒ]‘?ñ¨`cê ?}C7ã(‘??OÕŒŒ?Oú„ ?»*°>z?z¸¼Ñx?t%ßÏ Ò?|ùÕ"?_)ÆŒ*?ñ'[yÑ‘?w’ï#6?àíIÀUÑ?eV©UlV?ÙFý¼Âé?lžÇàà¶?>Zp°b@?T#¡ y?ªøEhâ?7çí÷ç?bèŠuˆþ?²ÇÑ–ˆ?àU©‰ù?Þot¸+ü?© +$p?P$~SU?ûü0T=6?áõ¬½fr?+—‰‡áê?Þ¾R‹h?ÖÁ íß?ÍTV°–?|'©ò?¯Ô™â& ?ZŒÊy©j?‘]›ˆ.?€Ü©¨è¸?]­z—{?W  •n¤?ðK?üMƒžI?Èñ÷2‹?ލ 9@?1Sõ+B?Ž{Å–tp?žn9> ?sÁª<á@?/FC«­9? ègLKKd? Ìô²Ó·? X-SÍ&? Í¢ŸiMG? EÃËMû”? ˆ°cƒ¬ñ? ñ…Ï,?#+Õ0<—?I!|è? dÿ—Ç? ÒIJ[Ž"? .¼u=‡? '¹=?”¨)ˆÑ£?Äøðš¾? JÞIC“ð? Ú‡BœE6? Gý"Œ«Z? Šc½?úb? «…Ç{¾®? ¸bsG$? Q ÅÞ;? âĉ—*M?û±~L;‘?>ŸO„ÌÈ?äþîÎâ?ê h=­¿? b:$º??$ðЪ?âí+Þ`¨Þ?-¹ã³LP?ã6)“Æ?Äýå3Ú?¼q\ {?ÇgB‘Z?ç²÷^ø?Øk÷.ò?U Cl`?t&¬š?`_Qoë5?hw%U?§‚¼·„?8øß©~-?í4Aåéæ?Öè¶ØÊ­?õ ÍY¸¼?5Œ¥Ç°Ö?~'(ñ…ò?´Îw½Éú?ÇìéX­ò?°e*C˜?m„YNõ?üÛÛü?VÚÃfª^?t× ž7ú?^ ’ wB?2[(Í?%ñ­ä/¸?rW^=rD?;Ý'@x?„îf?2­5á?#P%ød?J¢k-)?·ÚM°”È?‰zßUÖ˜?Ô  5d™?‘˜Š¡ ˜? Î|ËW\?"eRÍ?Æ?#ü7ÒHfy?%Œê "Hÿ?''§dŠ?(€Ê™ÎC?)³Ö®ñ?*tüVÐN?*ÅÎù?)ä»5?S?(~«´!Gº?&’œï2F?$npÓ’‹?"_¶änY? Ÿ}É ?‚ê÷·š?µTjÊj?Ž9ÖÒÜ›?ë Õ®¥s?š¾EAÈÀ?q«6ø ~?L…eäC?yÌí?¶t¯4?:\gþZ?­!H )“?"·[¼ï?« ˆk‹%?LµF¯‰h? >fŠ?ãnÉ‹h?ä_EœÏ?°þëÚ{?zYªE®p?½5'¼€?­O«À“Þ?Q ^Dµ’?áXôšQ`?U”úÉZ?²Nw¾*X?í2x a?l2yÈv?ïìÓf?–JJç ?SÃÄÓÖÞ?Øy!?Ç‚Ðe=ì?b?ÛœÖM?äã™U ? )Њ¼‚­? W‘•ý`? wKi‘¡x? €!2V.$? jY±õóä? 7l^S†?ïvmÎô?¢r^?‡¤€ÿ'?î2¶?Š? S€û›-ß? ´-0`I’? ïZÄ*? é—QGP? ž’Ž¥A? %j ý0Ë?BxiÔ1?llí‘?ÿvÞ;¢«?›­/uÍ?®‚:M½_?¨Èéšc? jËÆ¶åŠ?!)W 7L?!„F_»4-?!ë±Dr9?";@4ó?"€f]WÏ?"ÌíÆÌ>?#0¸*5'?#³QEgà?$OB¢’OÃ?$ò$¯‹B¨?%¿Nn±t?%ä¢`à|?& “ cÂ0?%ðÙ’Îâ?%¡õê Þ?%1)(¼Û?$µ  Œ¬?$ByªtD?#è¾ $)é?#®Çõºûf?#‘A¬AG&?#‚é!¿õ¢?#oÅ/=?$~H?C ížSb?ó ,€?RIu¸JÌ?ŠâÍle?Ä“n°¶ ?ÞÏmt?”®wͰ?/ɳ¥[_?ç¤í×þ?¼x‡'G¢?¸íª#Åñ?ì&{]r¢?]ìs/?Õ‰9e?¸Ã›ç| ?K œJ¶?…þ8Ï…l?HÓäÅÙó?“›Žg&?ŠY·@º?kµkœÚK?€IéV™}?T¨ŸV?¸–À?²ìà0Ó¶?Ÿø¬¿6?›¦"å‰?g-ò<¿?á<¡=? heÆ´?› [?ïØJ®?ã"“J·®?ä(鯸£?åŽ~uÉ?Оɰ?ÛIN7p?ÒU·œ?|øÙíÆ?ä†s5kl?|±K´?fúðœ¢?¥(/Âå ? Á?ƒ¡»¯¯?¼)Û6?¤ûJyg?AE¨ðÄ0?§i~øáÜ?ñµIÔË:?3Ñ{8:?v| úù?Æ/iì¼?1²Ü¿ìÊ?βBÊáa?²©ë,VJ?ê®+ü?r©å† ?8[’#F¸?m—þ O?㹓.;?u¿«öô‘?¶…  3þ?§zå%¶Ê?`‘Øâ³ ?èôßì?ÂNh`î?©1øæ¢?Á†Ä‰Ã×?‘ºšO?`çHO÷Ü?Í@Ÿ!ª?>(½Lc?¦œ®ò&?ó Qˆo6?œ„k“n?Û±ÆÉ„?¶–×ä?.E-*n²?–½£Ïâ`?Q¦ëcIö?A'±bê?+œëN"?Ô°4)ž?áì™A?Õu2ɸ?*õb/Áî?-ºÇN ´=÷é? Ò!î? ÆÎÕÅpÂ? C Ç—¬? k±4Ö¾? â8Lfä? Éë¥n_? °R”â1.? äÜmòÚ? Èrí“ ? ²ìAܶ³? §œ3sjê? ´_00=r? ­á#?y½R“å? ƒÂu ?WÒ´ M2?*Ñ?|ÄBgùv?#˜yb Ó? ®?Fe$?š‚ÐýÀg?-Û¨ä%?·FÞþr?;: ÷:G?цhó3??›ÉrýY4?·8DÕüµ?0´Á!¶?ÿŒÚÐÍ?eÏ Hl? vƪ?Ò’–p?N&Q=¸?©Š‚ûUß?|ûeæ0?¯ïçMG ?wàÕÝp?;—Ÿ®Î¤?‹çÜëý?A£Ae ?°³|TÄ?XrEÎÌ?&²b4?¢?cµ?Ψ_?Ap¦Ò—?uÄÍêÏ?¡qëÊë-?«3mŽ?…ñ ®ÔË?7EÎK?ÓÊÏ¥ûV?xQ\“Î?>aAIÃç?6ï`\ÿ?e¤`£JÚ?¿y„«˜À?+jÛÆì?‰£T©GL?¼Ù°AË?¬Œúùyô?NŽÛ<®?ï&©«R?¡P… -?o…ƒL%?37¾QÀ?&[Ox(Ó?€õ ñZx?d4Fa#þ?ÍÓÛ,õÂ?š¹zØ?­LÐûØÉ~‡w?¾ù“ý? ½AëË?") Å^‚3?#›Q$Ét1?%9ü×+?&Hy·?'ü\¯© Z?)7Ï$Iœ?*CU…Uô?*)z¾*"5?)ˆâÛKÞ3?(/=aDϽ?&RÀÔafS?$@}úÝv?"CZqÒBy? Ã?Þ)j?ƒK3¡cð?¬Ø‘\(ò?€ÐO 2?Õbäi[?ñ§/ƒà?Z û·?BLèï*j?Ü/nÆ”?ä ®ÚnÔ?޵ª´?,\4`]?Ír9†Ìm?|ñ™1?9vð°E:?þÕñõ®Ž?ÌWò²ÅÔ?¬CîyÆ?°7ë=Œ?æv®Ú.?O½”‘ö?ÝKè‡ö½?u‚ø¾T?þòM•?fú–Ð^ˆ?²Ý´ÇA-?÷bÁCþ?S–ÝÅKg?àrí„?¡±Z‘×{?‡ŽýE?tøœ$äZ?NÈYvwÑ? r’ÔÂô? I|¿ù6”? }QPep? }ʺf? ¥â™x¯î? Ãé¹í–? WÖr/0x? âÂÕ?b/+î<ö?öÜîpî?Õ;-ó®?¦*WÔþr? V€˜uo? á·[³0?!Bp~â¤Í?!V[‘Ý$‰?!ï»æVb? ¢%GF? n_Ù^¦?%o\L@?’{¥0ê?ƒ±dPÖ?øí¤·™M?Öl{òC? vüv–3?!ŒI—CD?!†4'p–8?!ì¤d^°:?"<˜Åç0?"ÌýŸ ?"Ë^.ûj®?#&œÁƒü?#—9õÊ:Ò?$†E…?$ž=LÒ `?%ãèêÝ?%c)ê…Ô8?%ˆ»”nï™?%‚Û„¬«T?%Y¹X%¨Ÿ?%o«º@?$Ï{á?$‡älTX?$KpU¥d?$"k›Ä÷?$æ?#ô<@¨?#ÏG‡Uú?#ƒ°8ÿ_1?#ÊC6²?"CÍÝžh?!ZÓøÀø? \¸ ºUì?μý£_?s µ ’?´ëÊ6J?‰ƒAÅv?ï Hk ?~éU¿?z2#V—?b¸üT|?³ ’—cj?4ßH÷Û?",Ælk%?ŠGCj'?fP–ë½²?Ô"Œ?ÏïƒÆé?q6 } ?¡BéQF?fßÖ ®z?  cõ¥B?Fž‰«+&?pxlvX8?J¨AoŠ? Ä÷Êâ?é¿Ð¶Âh?e5®]ë?d‰K=³?_­¦(â?Öù†<?Ìhøí(?司?&'‡ö½.?“Nï®Á?$yÀ9©?¿Â”vr?<‘ø]f¡?o)æ€è¹?8ž†Yà¾?”ìíÚ?¡•þNÄý?˜Iƒ˜7î?À1B‚¥Ú?X'·pMÌ?é¦òt6?5t1‹Š?Bر¢óÊ?cœ¿,"?U2®4u?ðÎ\šð?4ÛÊDÊ#?<ŽÓ­ž?*ú]"ù’?ãHf²§? Ôgì?] £¬? ïd¬Dõ?Ö–~JÚ?u$ÍÒ?òdi’á?k«ºê¶? b˜Cz?ïbÍòª>?&;ê‚?–2ûF?LY¤&?XÌd ?Pg7¿â©?í]o<©?@©TÕùþ?j‡B_‘?†²Š|(?¨\IÕ»?Ý¥°Tô?1•Ê8]>?²s2FÆÇ?o1‰RQ?q°y¾â?º/È|á¡?;êϪî®?ÝR ¹±7?|ÚÌ3tá?ûB@·?CûõiÂû?U¾‚<¡t?>ý‰r%>?ÐJ±º?ûj¡׌?÷ hÛun?Ø.?H @.ˆ?™ü+~b?Ñ©%?’,rò\±?/©ÄIé?Ìš™4–²?RvÇ[p©?·*ü»W?!¾þ]?`´8s6;?áĴˬ ?’ÿƒ=‡"?`†$°?ýï÷A?¤ (E]?Ñ8n–ÉŒ?œ !²æ?,»‰sw?Ïm‹ù?óKšÊ?œÑ—Î9Î?@ÆÒ"?ÕÎ=ç?fÓ }È?Ìt_¾?vG+]0?‰u‚Š?¨àœ~3?ïtc&Ln?0ÎÇ+P?z߿͆È?̰م Ä? Î t?{>Çç ð?óT b’?¥Î0¾ô?°~ëQ©Î?$àJëâó?ý¬ˆJ?)ãe ­?jy‡Hq?zu=!Ï­? ÔŠ4U?ꘫáö?ú‹Ù§>?RÓo,v?+¦8?ÌڒƆÿ?x¼'BÎQ?Zl$ÚÈÝ?í«¯š?éq„¤ â?ƒ99eÊ`?Egˆàhg?,ìMÁ‹?7ÀŠçv?\8§íe6?‡izq¬D?¡‚ ™åt?˜L»9Û?f ý³ÌÔ?v¹Ëý?¸>Ë}éÍ?pRj½†?Y°Ü~ ‡?‰aÌv̇?ÿ‡ °\¨?¢þLÞË:?G£Ó÷ ›?¼¨p… ?ÛùïÔì?’³þh.w?á²Äe‡?Û@ªÆZ?¡v1QM§?dö²#v{?_–&CÚÔ?Æþȼd?¶dåÀ"?,âwy ?Ï‚ïí?"\ãðÈ?`O›Ð?Ç'A¥l?hh,$äI?Q9Ò<9v?y†"? e Ú¤û(?!—}²æôe?"Ó%¦|²?$ Â’kO?%y矓xö?&ÕAìÒº7?(Ç3öAÑ?(Б$^Ò?(üTe‚¦2?(oLn‰G§?'74›†"0?%ˆn©}.?#ªšKžxM?!á$)¾C? YÂ*uÀ³?Qt}ÄD?šLð.?uú‡/½?ÅsEkœ|?jUV©sP?GÃÚOvÇ?@£¡Î7ð?:ò%Zý??#ÝòïU?ö˜Xã§?¼R±ì™?ƒO|¨ú?SÁí©Aë?)ÔÏÜ÷þ?ûnÈ¡ò?ÄGÙ:kÄ?Ž pél?n­óÝ$?|”e¨m?Á!yË"?2Õä±Ê?·üØ#s€?2U¤Õ°@?Ž å<?ÍÒF?¯,eÉ?ÙU~»nx?U!¿?%?A‘ò*.–?€dk!D?íjäš—è?²qÒìÎ#?ðákc“ã?´øî§3ö?ñFMv?ío?.ŒŠµT?¹lëí(”?äqœKÆ.?~˜óÙÑ3?mSÚyµÊ?²áûn•X?mªÍ)gÑ?Ò^õ[°]? Yíyd?“v¬ ´™?Wc@?~ Æ )?µèõ×?Õ±SÇñ?ßf'Óqº?ÃxY)?iµ+ R?àøHü€ð?púÖÝ®—?>F¯²?…— °O?ÈÐë?°îüš9?6 Q?°é·™×á?žG×j?Ò5?§> ?>~ y„?¹ûDåK?+”‰/?[躴?®Ò›_B¹?ô©¾7?Ç2ªd”?Žå9K?ä &4?60Jä¡?~ÿõJ˜?ðH÷(?Ì“·–?eà•?pê?p’úV:?ª]˜W'l?Ð{$›Û?g‚2ò?¾†Ü GÓ?ü<ýbÞ?øð4ûP?(™Ì— D?,±÷?2Ö_yb•?CÜjüÉ?a° ¦ÊU?Žü90¡"?Ó?į&x?;!Óé:Æ?Ñ‚0–Ϙ?•œÞGI?s»\Ý’%?Q„¸/´u?-¸?¾³Î!‚?U Nv?u=¶…ö?\¿7ùr?æ2˜†‡?º0 ?¥Z²Q²?ùagI°?t@Oz¹?DFzïÅ?å¿Ä~ÚÞ?ähG’Î? Ö¿‰…˱?!×ëÍI?"íF¼h?$<ļøÍ?%R½Ï}1?&gG)táú?'!ã$Rà?'PvÅݪ?&ÜS#ï%?%ÔÆH:3 ?$iÕ$»À=?"Ú G¦KÌ?!]e~ú? `‡D¾Æ?)Ÿ± ÉÖ?¥÷¸”ÕŽ?’kÁväQ?ÞO¯­ÓÂ?{Ñä{-µ?Zø„V¬?cÛ@xÃŽ?yúçƒç?ƒ™Ð l?tæ:²áo?SAVñ„?,Õ„w¼? —”¾ W?ìÌ:ÎñQ?ņ>Üò?2µÐ;^?L7åDul?z÷–W•? *‡Ö ¯?6 “á\ª?‘!‚U(õ?¹‰sãó?q‚7ñj?œÌu ?üöž?;ëk…<>?ª¢H„þw?d-Ên‰p?eìu±0$?~2„A ?³£-×@? T/ô•{ë? «ÛÂð}? Û»ýý‰? âϰªåx? Àà~ÆáÏ? v„#Î(? 3g ÐÑ?úì=˜ü?ÝEi‹ ¨?öÜ*÷Æ?“)v÷š?ìº7Iá¾?çd º?ĬÚ? ÑõÖ›×Ì?!˜Ç):¢ú?"ÅB å;?"ŒFØQ±?!½tCËxÇ?!;ÛÅ? ³4èìF[? J+»¸? ÇL¾àk? †œbF? XŽ\b? ¹ØÈNt?!,1°¨ªp?!¡U¼ŠÈ?"©ÁØž?"r‘e÷Î?"Î<Ô1¾=?#&0‘Ö.Í?#{<Ôæ ?#ËÄþ ìë?$¿Ã+#3?$N\¢Œ¥¤?$xŸ3Rÿ?$”îó\6?$¦¾1üŸd?$·æ!‘8Š?$Ë0Ð2bQ?$Þ÷7Êz?$éóÄ`ß?$êTyU?$Þ—Ò¥@æ?$Êþ»Æ8?$¯çÁÚ’?$„ªG\¶p?$6}ÑmŽ"?#¯w‡AÖâ?"âLQµOà?!Ô"¶›ê? žor4iP?Î''l?¤Ö¬æ †?î¸ð(N?³ÎH•ŒÁ?Û6 ˘h?<Ý´§×?°Ourõ?']lËT?ª0±í??ZÕõ!*?eU›‘ð?ìäøÀŠ´?þ‹·†?†ž9Øv?X*Û7ºì?3 î|Œ?Ñ–Wx9ä?ô¼T‘ÁÙ? 7cÒXq? O:h4‰?.óε Z?œñTæ?§³ œ?‘~EÑ Ö?œÀ(?ÓmŽb?Ý=ç›?4Ž1¸ï?÷æŒõÞ? ÷í·üz?XW›É?Ȱ2*?Q8öH°?èÔ€X"?‚I£Ñ? Ë«²”i?i•¯—*?€3¬¿~??cÃÏVl?®9ö}·Ú?ïDÅ:?:$5ÙÞ?Ê>²·^?ÊEd7rk?Dg[ì?9åíª?!OG]²?ækpoð?ÃÂä§6ï?)ÊKFW¦?S b´ç­?[Ý» ©?\WÉ?]¡=^€?^é5L?V ¹K‘#?>Å\“cH?HKy{!?ÜXO¶h=?ž²!eþÔ?o[Ø}w\?eeˆx]W?·‚/™Š?ìý‘ñ«?\-[N0?® È4¡ò?³M¼Û™ê?S0Í?‡?•€ðå U?œZx¸R~?‘û¨Þ~€?—™’®¬ ?¾N¥? ¡°Ñd]?yK\µ:J? °¸Ýö?ÄL¦ $? >®„?œwy:]C?ÛHùæ0? «ë^Œ©5? }6ëGÒt? ÛÒÅìsƒ? Ž@Ì B? ¬!šÁ\z? ‘1V%~B? ³ÞÍaË?tûž¦ž!?ûËk/¼¿?dÒ–…?U‰ôùN:?†“œœP?x@1'Ä+?OÄø÷#?bÄGÁ?~¿ï&Ù¬?§K<’¼¾?¡Zê׌?–új=T?‰ËãŸÔ?zCM¿äó?im(û,?YÏhvó?VüÀèt`?tR K?Ì4l8?|…;¥Ù€?ž+_Œ±¾?;2¼&h?Fêtõ¬Ð?˜3بù>?ë©ìðn?íÕË?QH šÊ?æ=]ƒ¾?£Þ´æè?­j²&ã?C'œÕ"°?­Ø^X†~?+w-9§?â^B¼.d?ãa`É ?+¶e?²Î™{kÁ?lý=Rs"?NX»2}€?Hý%ßk"?MƒP©('?L?Â:äÿ?8ÖR;Ûp? œ”æáô?ÉÙ7}þ?~‰ \›E?Esb¦ÈX?A£…»¥Å?‘1`z:?<À—ø:?,"mÒ¿Ä?+sܘx?ûÔ=û?m>I•sÈ?iH â?ô×dé9¤?(CnõË@?&÷Å;?§³o»?5êÃS®?£ÃÔÔ€?‚ þj \?ØÝÂy?“ëò&‹m?’¡Ì•~ ?¸S¸K°?÷,Øub?MFúçò?·C±Š\š?,Ì2­îO?¤FÊ‹ ? ¤X'úË? Øsz$®?!¸¤”` ?"³¬ " v?#¹«W©Y^?$¥eSô+¾?%FKUö¡Ì?%r¡×®9?%†I_[‹?$J—•R®ƒ?#/ÂT›]Á?!üj28 Â? Û5Þt?ÆéúÅsö?3eÙñ˜j?ñfœœJÇ?ör6ƒ.Ì?Aˆ1Y Ú?×h,óÎ?µ&ÒJY¼?Émý·?òyžØoG?³¼Î? Ì“{è–?çÌfÚ0{?¶Í)Ù¶?‡óŽÃòY?^ŒÀf‘?1ÙJKâÇ?øåF_ ?¶åñíþÚ?~ß_™1î?jV^ÿJ?‰×Ÿ62³?Úp©ÀÌê?Dú7üÔ?ªnÐ×?ö'P64?/»EÛ>?v¤ÓG Í?õªn®Õ?ÆöR«®o?âÇ#g?Šû `†? #Kó·òí? –S» ž? Û#‚û”r? ìÙÈ—? ËÄo¦Òb? {ˆ^š? ÆuÝiŒ?ÎÚßñ%ñ?~÷úi 1?Bx–Þ­Š?Yl0X³ž? e˜jº?‡e~(ÎB?Ý?(åOÚ?؃Î? ‡Í˜G4ž?!‚ŸuÇ›«?"(.ë ?Û?"`“ÕÌ;˜?"5(~;Ì?!È5M‡Ùt?!Dþ~¼_*? ц‰Ï»´? ‡ZzjØ? qžBÇÒê? VGá–4? Öb è†?!7ô´é q?!¦0)>?l?""Š^@?"…ÚK?"ïããy†?#R]6 Rp?#©Qg?è?#ð7s!θ?$#J0{°j?$@ój"?$K£›à.Â?$Kfׯvˆ?$LŽöëœA?$ZƒÆ›(?$wš´BF?$žâw„82?$ÃwSÂS×?$Úœ¹Ì¿?$àYØ $?$×.½š?$½Óæï6R?$‹ïñ>ÿ‘?$.ÌÚô‘?#’U¡ˆ?"«Ãó°EJ?!…Q÷J? <fÑô?ðbHpd¬?½¶û¶:? èJéq?é6+Yôª?7o^•˜?Î÷´Ô½?†TNFhæ?EUâ( †?’žH?ÿ8˜c2?Aºª¸^Ô?ûùüX¿?:|H.K—?éLû]b?Öoâ·8x?¾Å„¾ ? -¾––_0? ¸ŸÉuû`? ëyu“½4? ½nUJýô? 1oZ¤ÏK?ª^Yöó¸?€q)ؼ0?$9uÈ£[?Ü’å°q›?ë‘_H?}"MÍùö?£Ÿ¹5µX?S˜ø”9,?oA­NTn?Òm˜gc?[CâˆU?óo|™þß?޶NÍŠ-?'…â}ŸZ?¶®p.°´?,哱v?rð<•þL?r÷îä?&Z·?ž5)Ló?ª®?öOm/ª?p'ˆ¸MD?¸Cš2U?]—iÉ6a?7¦-OÚd? Là F?¤¹·?5­é ܬ?t€{Z“H?’…ì7P? úÜ ßË?§þD¸*?¥öl^B?›'/Zh?‹¢>ea?x¨¼{Ô©?b8Ñ5?ž?HBˆîº?0-éøZÒ?'ǵVØ??M#¿D?{â,Iš ?̶¡£øÒ? YÑGúY? #ú†å4?¯Ð›þ .?ûèZt›?*Onom?M^lÄ?$3Ìd§?Z]›¨»?´ó9¿ü}?/¬"òÂ.?ÆcÔÓÇp?uú1ˆr?;@ÑE0‚?t¾úÎê?ò3„š4?׺$A^À?ÀÈå¬t?±Ùcåy?±À•1Y?ǽ¾aï(?ôC—k Â?0id¶ì ?q’_v?®Mn _?å1Z)€2?!5ŒZ7?xô‹‡;?°­ÃÎ)?Õ=zè5À?æ€ç’6b? ;õ8/ô?^ôàéÑH?ö² 'X?t—Ê–?.›YÂý(?­óz rÛ?ñ¨¬6Ú&?ùkO=žv?ÈèÒXâ?gYsH#y?Ùj‘Â!¨?‹gê ?óô‘{ ?Ù³šÄ…?UA4 7?­AV•?rëCù?ž UÞ3°?oÔl?{o«±2?N1±Qâ? ¬o¬Q? ñd@ §? *xMLÆ‹?‹=gâ?_€Ÿ‹¢ ?ì™1:?T,i<>?|öÍ$U? >³Ùº? ¢ð à•U? ÄÀí¢’? I >Á¤¤? M …hç? .o»¢Qû? fð&åìu?]²#Ýò?Ræ&A7?sÝu?ò¿”½k?UEâhÖ?[â)ñÂZ?îŠ3Ì Ù?"á«·E?)Ág”°h?˜=û£·?—|_õ¬—?“+üÓÀÅ?‡?.$?pOÙžœ?M´ÒÇÏ¡?#’â<ÿ?üa2ã¢}?ëzNýHö? ëÈíðS?|Ø #§Ë?ZC4?ÐÅŽ#?ÌS/?<ÏDäøG?n[kžŸ?•Ò€¢?·Ö°|«?ëS (1¦? £Y…›£Ý?!há`ßy?"8KžŒM?"ô´¬ýÝ?#v±¹ <Í?#žº!jœ?#`ïWB™x?"ÌÉQÓͬ?"þ½Þ @?!1E3{ªE? në/eJ?’…{…ÿT?yY#]dŒ?‚mÌ¡ƒ6?©¹Pz?úˆÓ¸+ÿ?‹Ä¡ñï?gp–Ì?IØ?® ÷±Ìž?ÉOÖ±;€?µ“6ø¥Ý?ssv}ø?";öŠü?À–¸?ì ?vÓ•8Š\?8t}rÓä?ûô Í¥Ï?¿¨Þä‹Y?§Kj0`?„`kvÚ¤?©Ô©Ý'?þ©•O?j‘)Ê€Ä?ÐýèÎ ?¾§÷­?\Œæ!?­«X/µ?=!ëê?"?h'° ?O;†²>8?”fjJú? YÇ8“ÞP? ½c ȳ? æÎ×ëÞ? ÑD·ñp&? ŠáÓ<¥? ¢ßŽ?¸8òS­X?J½æXÈ??à|Ëü æ?§.{‚œ?Ô7¡©è8? ©c­Û»?:%ó2D5?¬(€Ê:?Ìëç†z¼?  KbÇ…?!B:³žjä?"6xŒ¾Ï?"y3.?"~Û+x?",h4gâ?!³ Âó®â?!9è÷ŒEº? Þ$Ƛ¤? ¯°ÜJŸ(? ²â^õO? â£'V˜?!3ìßúl³?!š¤Å^Ï?" Y£¨a)?"ˆŒðªh*?›0éMT? /&û”?!ãÉ?!=öGÒ?!É(yb¿? ˆC©n?YÊ쳦?!JwL©Ç?¡âþ°i?%iÞÇ‚È?÷Í=Z°V?T&n3å?W(ÛÈáŽ?û§$_A¶?!`Ò‰9'?šJÇô?7”X€Ñ?×å­ë°ê?lB{Ùr@?ö<°1 ¨?|†Üÿxá?ý»ÐÐýZ?iU +k§?¥˜éçt?œ6<Ú t?Nx»Í–*?×i*Êú?f^íV'R?,»`j?J3#î˜?Àƒ?Ã4?s²íz~?8öΧ?å„C­Bú?g¯ÿIô–?¾Îm\×(?õXÖð§?öÔ09§?}ü>‰¯?-Zvz?ÿÌôÔR^?ì ý}õ\?á[ÚÐ$+?ÞYE”1?ÚH6òDŽ?ÎOÙ  ‹?¾”†h?¹€áQ?Ëtßdï ?ð›8Ú]ë?5l.›?5rº{µ?®•@¬? áû?C/Æ{19?géHÆü?œu;ŒŸ¤?îº×E¼?`©$l÷?ïõ¬›í?–óǼ?Ú?SÙ®,©?H ÿF?ëNOÅ?± "·¸?j%1¥œ"?¶ïËà?×äՠĹ?®YÑö,¥?­Sþ‡«q?×!¥Èf?!ËÃ_™?|èC«ol?Ø%eןœ?Á-æó0õ?açgD´ ?f&æÕh,?ÑD<›Ž?_oÈ‘?…28¶˜†?”2:/N?¨ë/El?¶}µáOŒ?´q Ê9ú? T lÂd?\|gS‚?h¶ü¬?iŸêF5(? Eìp-Õ? ß{Óµ¹Ë?!l8—’Åð?!ÐX qN?!ôæ.I?!Ó tðÍk?!wÞE/? þÅ­6$? „h™s6? MÂèÕ?ƒj¥éˆ?àØsŠ'ì?8®Â[…€?ІÎ*ºí?íñ3­Ô?ƒùE‚+É?_ø¯Q ÿ?u³¤sÝ?œ‹ÆqU,?¢¼>"àU?hwI“¬Z?ï¶J³µé?VtùV}Ã?Â=¥-4?Jök ²p?óAFäµ0?±1ëÊ0?}Ò ¤A?_=dL??eF½Ê²?›“)¨Û\?ý½')@?t¯O_QŒ?âïŸ?rô?7´÷¹ïð?~:‚ºˆ ?Û€HD^¶?züáÇE?nÇýhî?¦R&¢¶?êtíé^Æ? {ÅÖf? Ê©‰½È\? ÒÅÕ®ºÖ? ’oÒòܳ? 4«âð?ÍhžT§g?FÉ9L—?Àwˆï—É?b²PÖgø? Úþáf°¾?! ZŽÒ¨Å?!€¹sÚš?!ïbvÐP?"c¹ ¡Å?"Ö ­ÓÏ?#>8ì.¦?#•Uîn!ƒ?#ÕÜþYo„?#ûË¡´•Ì?$ÊÈ&”Í?#òy¡z0?#ÍÌµŽ¹l?#§&G7~´?# ÆVk?#’ê†BΪ?#­y¿±Z?#Ô“¥Ñ?#ùǯ9žœ?$UÉK[£?$$Îma§Æ?$dÄi &?#ð½½£ŠÌ?#‹IŸfÐ?"ÞpˆD_—?!êVz|M? ÁYÃ&*k?C¹ÑÚ?«Da—??¬»Ë+:?1vÔ}?GüÌ~t­?âÒǰ€?àÆ÷€?aA»«?R°šy?-Á=b}?Ï›jL–?<2.šXŽ?ù8vúE˜?悈r?Žx ãüÚ?0P¼C?Æž´§å? 2c‰B? ÿú<Ëæ?!,{ÇhË€?!  ÖX? ­Þ™K?‰´AÝ»ê?cŒ/å# ?ãbúi8F?U L?ÿ?†ª S?SØŠ“Vn?K:ÿi=×2?Ô͸!ê?6(¥¢«Ð?è -ž?ïÐbל?e#$ –?ðûHúì2?•ºŽìº5?UÙg„T¥?.˰SÙ?®[Ió?óÎ/&ûÅ?¸Åú»-{?Zë!‰©?ã¢õbbå?kÆ#¾¾þ?õ57‚Ì?í´ä³]g?gà"?VÝôô©°?ÉуsÀ€?K+•I÷À?ËlÈ,Ìf?FŸš˜¼d?Æ# õ¿?](Ö”&?®A?å6? àȶÔ?0a#Õ^ï?[ŸçÅ™°?qH@4?O•Òà¶?ÞN|…&S?ͶŒú¼?宀(T³?efËe¸W? ›‰2˜?ªÑ.Ey?’ø€Ä8D?]ñzØ?ýðNE?“20ŒB?“?uùî?]‘¨,ü?‰Ó™=V?û‡Ééjû?hö/ÔB? yá]Fí? ü¡ÃB? £T £Z? !Ñ{Ò? Mi'¤Q‚? 5pàô}? [U.Öû?LDž@P]? ƒ–r¡(?^‡"ø3®? >--f? Ê~iÿ™†? 5EøÍ>? («äý? ½CåŠ? K;°™&î? L…';w? 2tàÃèî? 5Ÿa—W?0-nÎý5?Oå•Ëð?åIž0÷?©Ùi$?™eAò8è?ºÈ§^?°‚itï?îíÈE{?ïòZ…Ê?2bäcîw?Z÷»+Ú÷?ruÝ¢’÷?l–¹†?Dz§NaÂ?þP̪) ?«›ãKz?i°yexB?]T v?«ó§òçÖ?réTϲp?Âþ¸¹?•QÖ¦Å?ÀXÚ'¼?ô ù|m=?Ç¡ˆ :Æ?Ø–iƒÊÎ?ï‹$ûô)?¬òÖ?ó ðâª?ÜþHò~ì?×ö7Ç|?»R£*£l?oXì{´.?ô[ ~pP?^k4^ ?È€Z¸­f?Ly–W´?ùž% ™-?ÜBf„(®?ýJŸÜ*?d¤H'è?F‹dã’?þž‹.¾B?Ñ`çÕ?$‚;BÚÖ? UàOˆ\?蜌˜Ê?i‹`ºæÈ?•Šš„Ê?g!ô´?é5À$?7èY}ÇË?‚--ƒ¹?ü̃ï~é?Îeá`³?¯$ÃGI?–zP“?cpg ð ?M£{ì‰c?<éïðR?"ù°§]©?÷åc5?¸Si:Ü?h*;ì?NKUº?ÁºGþ0?„GN:?TÆÉç? ¥ïÄ? Xt$äÞ? }õÓÁ6;? x¾èIÞ? R¢ã6^? @¤Q¥?âÉ™îs?¢]å/XŽ?q¾ôv—|?4ô÷Y–?Öl¨ñ·ì?YM¶Å£?ÚŠvÅð÷?‰‰”|É?dËK"l?wÒ&~Ä£?ŽÔí³«J?t¦xC?èK…œ?QÐ(lŠA?v—$ ®2Ûä?#MTšMh?"¥1î?"H¯¼ó¯í?!`úÞÂãÿ? MX?‡±N?YÞ¡Ÿl?>†>ƒÅ?yËœûë5?.Ždƒ6¿?k£Y´¾?+©‡Ò‰Î?RŠ´Éì?³ŒÙ‚?$ç;‰¹?{v¬ÈË—?Ëw”/¾é?-!œ:­m?ÅäU[ƒw?«”ï†Å?Ö ìoÅú?&0ö…Ì?n« Ú~›? B{¬RYl? £Ëã º*? Îv‚ìÈE? ·1Îí? S¼£T»ò?=§­W¼?>6° :?Ø–®w?ZiØŠš?ÿ‚‡¼?l¹`$?qö­ŸÓ©?/VᢵŽ?‚ö‹9?%¾×ÒŒ?ß­÷4v?{÷úŽÈ4?3Ã}ûz?K!¢>Á?ø(¬Èì?ùÖ˜MÀW?õÈO— 4?ݲ*ƒo>?²ÂÄž½¨?{ÿH?SëÕüm?+¤ŽýÉ?ûOQÙºô?¸v@ºŠ?_ð<÷6?õ¦Ö8Œ?†Ì‡ {?Ÿ…Ÿ?±,pÞ?RæÒäž? ¿1â?ßGb_Â?×fT¯š˜?âÇû• o?äŸÎ]à[?¾ªØÁö?`×€ðH?ÓèO6Íâ?6Í` /Ù?²2ÕìP?hWýfd?jp›Á ©?¶[”h‚?<¥àØ?çdºÅÓ ?¡øë7¢?^Þso:ö?ð_­– ?Ý#À~h?°H„óΈ?šåRFž?–þÅÎù?+¡ .?hyþ`?›fߘ—?@|UÆŸ ?X`_“?jZ‹¶šÈ?õ•è‘?w+,©?Ê¿AT?*÷Âuå0?h£Ù•–?¼¸¥*˜?Z@s…?XUÙË>?¯óœoL?Gw–'ƒ?ÿù$žìX?Á—Änt9?~ÉÛà´P?/x…m”Ý?ÍßS£a?SrlívÄ?ÅAͶf&?-I±·¡?šY\\D?Þ_îeZ?È/Œg-a?Ž‚¾8ã?8ÔsPËò?!Ç6¥5?“éŽ^r?»¸Tæ‘0?™QAØ?ó`pÞ»?‰Iß?‡ùKõ×î?e*¹ñd‚?l$®òØ÷?þi/f?ׯØ7ýç?ž9ÿD¹8?bS’Ð%?D™KIc?θTØeH?{‚Dv"(?7”˜ã¯n?jE)?&nŒ–ˆF?Råñj[?zË®è,?vJ¢H@?-zÁEZ?¤tä×Ý?ú7)!+?]iÔšA@?øk87Hl?å@"Ú?*T™«x\?¿ÍYê\?‘XÇûeñ?‹32¼È?—’G£Z?¦\˜+?­e£Clô?ªeåtÓ\?›@ÔÞK@?y6Ã!?4&Gq*?µË:ÿµÁ?å_®4Éö?°L1žF?Í̺O.?e=õ›'?¨P¼¬?ihCÃÖ?\zd¾›?¨¨‘8©Ù?÷ƒÿ!T?ƒ¤â"?gzo¿˜?À´6|%è? ¢˜¼ÿ¶? 0§? }¾ÞÍ? Æ2û@H? !/Ô”¥Ï? ܲãÃF? “"‰HM? ×±:RP? ct僷? 1:WÞ? „’çMÓâ?ÈÃpöáh?eb™'6?“N@Ÿd4?IäíýW?JQlN’?CE<¡X´?üP¨(®?t³|’¨?éCówÒr?½ æ"u”?O©CõÉ?ÐrjÉ@?! *sÙ? Ø*9‚‚²? _­ºnh?7žKÀºÒ?-*G"?9.i ¦Í?5¢½úÞO?¯Ê2¡ÁI?×oP«œ?à0±?n°çEo?´¤f eí?ÙS€,4`?Ë>ó l¢?†Ó°ÕI? ¼E?¤ŽbGaµ?R…)žÞ?KóaééÃ?²NÌ…4?šÏáA1ª?Ç#Ò?Øó«Û?Ê„v²ü?vªŒÂ×?uÓÅÈݾ?†A¯<Ë­?¤÷ì<òe? ƒòpOR?s? Ü?8Š*I1‰?§Üß9á?•°S1°ñ?½ÀqI‡?*¶¤¨€?:òFKñ?oà€· ?–_ ´j?`=ry®æ?ߣ°\2“?1§ÜzÇ?}µÀ©(?ä¼Ê6?z¼¦Þ ?D£ŽŽ/z?Ef°å@ë?|ö- _Ö?í²†Õóz?›\çgÄ4?‡l?Pd?¬´ y÷?úCóMW?P]•× ?ƒ;cÓ]?cºÁ5N?Ë¡1$è?®dêeÃ? e—éÔ?Sãu€uü?ˆlVn?õµ»Œ¹F?¹t£d²?Ó ö“DÆ?,z5W(é?« œ”ýê?:P`*&?Îgîké?]ƒæb»£?Û¦¨Fƒ?:-Ò?vm™¸§?™ùr ®,?ºËÒFþÆ?ï‰f´?@Ïâ+͇?ª£Åo´J?vð\8g?r-$éø?ù"Ã[‡+?gfáõçÕ?Üg£v$?P!Hrëj?­Å­S-?ÝÕN&-¢?ÖS.-_?¤¼ 7f?j•›Àý?Kg@ÅÖ,?V¬DWc?v‰z¨­®?}lºÎ«í?7Õ O&7?ld0?–HÙ8?sKC|!Ž?qÆ`ç¶?²r]â4ú?;óßý Ø?ýžÃ‘´?ã(“¥S?ä¼ËwÇI?y3‰í?U³ÿk?ÈR&½gC?Lûuäâ‰Û?"±\V)??"Sݳ†÷?!۱?!”ýa"‚”?!Tæˆ{›?!4‡…ßu?!3Ÿ Ýh?!LÞÑn­h?!sÓx)%Ø?!“2ñçô?!!ïæ]?!QUÚ/L? ÒˆgÍ`"? ËMrn¡?žtˆš"?ýÑ‚±?„®V,uÑ?P¦l?túýb¨k?å¨:3¹?>»i*`?Z:„±?å)Ð…¨;?pÍmÇ¥ì?ÛPkud´?!„fx.H?\4"rE?­Ü ˆÀ?,4ðt.µ?ÕÎlô?•kðŠÇ?Oà6Ê®|?î‡Õžëd?a¡Ÿzƒl?™®%Öï?}' D°R?îå¡N¬?Õ³2 ’º?2š™bÏØ?-{Áœ?<écc?+îÍrñ?ÎâPZ²˜?ü?·¡?9S¶T ?¡^Ú{;¸?oŽoëº`??Äü§Çº?Úô<Öï?-ºWÛk˜?M’Á²Ü"?gPA&¦?¡Ö„¿È?–ˆ)C?e‚ö ñ?ž’.R6?„KV­Â?ì¸=?ŠûmØlº?WY7 :?ÝÐJs ?YŠÆ?„CbÿgJ?1ïXiÚ?í0¸ß݈?˜–‰ò“t?MÞ}?k@ºŠoˆ?qŸV¦X?,pp,:?¨×Ýü `?Øæ›ÀÚ?pkÇíc? ±Ï¿˜È?ã‹““U"?ö>›µÚ?'´èø5?XtQ ÿ¾?p)ñÝ´¢?ea’î(?;Cnu6±?ÿ¨ºL_Ù?Áu´¯`?ŒìËaƒh?gÞ3°9r?N*F%Ó’?2–ŸvNƒ?^'¼\?½~޳Û?eÄ ¡ù? ’/å?òÎ+2E_?$²Èɪ?CxÄy®ó?‰bÆŠ/?ª Â,á?†ØöÐâ?k-5Í?‚>8÷í?ë ¼µª?‹Þjˆ?f_Çž•?¨‚‡áb’?HCÛ*u?:´–n)?løKCý?Æo N….?+º ›åÌ?ƒi"µ˜?¸öæ[U?½Žûã?„|ž-W?ÿ×[ÈP ?Z2 òÌ?Ó5ï¶1¤?" cÇ_?Ýш€ÿ>?E7²w4?b¶èe•h?X÷º™?MVáŸ}ª?a‘SýJ?­&ŒM1F?:0]ñ?O)? ó ƒ^? £ÞrÁ°k? ¨P„|? Dž1´f‹? ˆŠ‡6? `l¡¯ü? Š×1KŽ? š­ÚT®Â? ß99|? ²ùdX³Z? ] Š? Zar/f¤?#e®÷?5‰ù9?äµ'vø9m…÷?À§„‚?»…?Úf­³Z˜?~ê"—á? ¼  ˜æ?tõŠ_¶?›²c¬ÙÕ?Û½ÔÀ"?­Ñ{Ͷ%?·¾ÂYP? ‰Öì·Í1? Ì4yƒ½„? d¢,ø=û? ~rõQ©? kÂþÚ ?üìâ-A~?T¼" §?ZÑPÐ!ˆ?¥5ØõÈQ?é]=òó`?䙟)?çr.ö?»Àóê}?K_Ô²Ø?Ñþy\3T?zDå[@?k:V™?ÁLÅ«¨æ?‹Lq?ÅÔyÂ$S?U¿™[šn?þ|WójÃ?i‚½(Z]?<7ïÏ1$?:ÂäùØ?_4‘±%Ý?Ü=|©®–?Vòô\?:ë„+o¶?ÂaÕ“•ö?Ìtê»õ?góÉxò?‚>Þ`[?ê‘‹w_Á?_‹p„€½?¥C˜?}cÖ?êj€þ?åO(æÌ¸?†È×U?¨º5±?oð¸Ï?Â:nÜŽ?zÎíœL?3ßY5dé?ã‡ãˆ×B?yz,Äv?âtj-æ?½—à<¢?"Z²~?ܹnp¶?µzxú¤?°§ö#*R?ÕÝNR? ŸgÁÅ?!q4–?çb„.h?I¥ûZtó?]‹"=%ð?Wb%?pwÆh?ÌÞ‰¨?oš”¦eÂ?Dúó?4bÅŸ+?57Gñ°?KÊâ«pž?Då ð?Öl ‡ ??ib’ œ?­3·H˜3?5oÏÿ?’N~D?.¯ Å?"ÓŽ„?k)°Et?KáƒÅ§‚? 3¦P\é? +P6 ? ›3)H? DÁ”$z4?,üÜoO?d_Vìø?‘ÑØû?n €'1?,#ʰ1D?Þ L—ë?BÀõÅ?"žÑ.V e?"Ú1fÒB ?"ÿr: QÍ?# 2¿ì?ì?#°Ü×é?"ßwIõ®?"ž• ?">çQÏãø?!ÈJ™«‹Ð?!H•‚eçv? ÒÝA ? t¼…^? :x½anG? (ÅÄRv? :‰Õ¬CÌ? eJ–"±? ‘OÄN%? ŸÊìÀ“Ø? xKmŸ?? Q:iV?úý˜ƒ? :š…V”?In‡~K>?ÕsÝÑK?&uþÊ=ÿ?~åaï?1E6Í•?B°w0Ùê?¢œ·M[?*r±^ž?¬ho«//? c`úœ?Doã!>–?t¬®Sƒ"?¼5Äôc?-TÔ„z?ÂÙ:¢÷ƒ?eÂüæÔA?üXžÁHŒ?tz½/:ê?ÄzHÉ$ ?âRxÙW ?»V¸ÛŽ?3,â?2‚‰Y¸?¹Ma&Z?éÕšßÇ?s}1?[cýiÃû?+Ýv)G?œ.0XÁ?¬Ùï×?=7kQ•¸?Qª*O2?ëßÞ¦¾½?Ï=à0?ìá±hÈ?í¹Ržú?(ð¯ºÖµ?U‚¯Ãd?œÏƒÁ~?ß­¼Œâ?îT¢êh…?§RÚvRR?Æ g 6?T¯q‡”?µÆÝÕ?hFZÅÛ?‚*m´|?÷&»þPÛ?¤Ä3f?axŒT“?ŠOصˆ?}je@²?ªß`",?… Ïð? mî—B?WÃe¸<¾?‰#¥)×f?Ï2 Ë?S¡ëá%x?,2|¬ëÕ?V\åÊIa?¸K´P$J?+¹‹8­Á?‹o„ Ux?¿Ð/­ü?¡@—"? z>X6ì?n¾IG‡?B~+}¾?'êÃ2?û;?G-mζ?Ôv?úê?€(Oy4Ô?É‘(a4?­Æ—¦‚Î?r ÊoZ?v#D¦lµ?³‰úÛÙ6? ‹dµsð?K‹¢#ô"?UÐÄÀ¡?ÕàqkØ?µÔp»—&?C·Ö&cž?ò7Ìó%?ã@X…?,´0œ]€?Õáe¨ºÊ?Üœš¸‰Å?4súqªš?Æ0$õe`?p¼ŠX?? ¾Ï)?ymùî/?•M2ÃhÑ? %è¡ùH? F¨?~ž? '7D?†ÇÆó‹V?9N`ñÉÐ?s_æ>h?Påu?ôÙ3¹ò~?sª?DŽïË$g?@îËÕaß?5‚m«v? °è 8? Þy‘B°~? –à5)ä/?¹ë8UR.?Aœ£°Â4?@çL [ ?ÎU±’¨? â§j{ö]? Aövk7i? ˜QÂK9? Ûy®? Àº’öï? RDQÒφ? m%‚ýÄ?€›28Ä ?,26t“?€4„·û³?ŸçJ}?ay=O˜?ofã{™?|Cmûy?lÅÅ?Æ™?aQ0ö`L?™-1oNÝ?DÈ@ß8ê?dÞX‰+?ÆëÐA6—?aׇ"?0«†µ"?›Xßµé?¥I]Ï^Ò?lñ(ùº?8/ ¸f?8×n± h?LÕ_mù ?sˆÀ²n?¦ð“(„?Ø$ígõ?ð§ÿÄ:?Û»¶^`î?‘ˆ œ³? Àt?ø÷ï¼?ÜSh}C?÷œ‹¿?-öÉõdX? %k%Xg? „'~Ÿo? ”d ªT? EA«eAØ?>Ê´½él?‹พ…?Õ‡O›a?ïªðü¸?ÍÊâWZ?ºŸ—Æ)µ?|×±Õ?¯ ,æiˆ?=§Ò_+.?± C©7¥?UF/h?y¯Þåw?ï4õ}?j5䜠û?Ô.ðù„?!vã|?<}è3¯Ù?Qý VxW?{èNB€¼?ÕV˜¸Ý@?h}yñˆ? ³]ÿÄ? …íçy¿? ú¨4GÓ?!lÎcCž?!Ù2Õyã?"?r…㩃?"žy•ý ?"ð%—¼Ê?#,ØÆëð?#Jº+±‹ž?#C÷NR"?#aP|?"Êe .þ?"]õEBš?!ØEÒaÊ…?!A@”mË? ¤Ü“®R4? æ'ÒV?;ÐðÌ?Ÿ¦‘Ý8?_ãrŸO?|ÔÿÖµ‘?Ý TÝóø?N0dŽí?id{|Ä?kΞ³8?Ïä>K^?Öy£jÜ›?±Ù'»@?”l¨¹X?žžËç%þ?à1”bWÆ?c]L"¦T?2Iõ ?P°=H†l?¯[{ñb?+qä¡ìŽ?œœÎÇ?ëÿü|?Ä@Øç?NÑálTJ?¡Gnm.Â?!YÛ:6?ÂW-I„?g»ÕÖµÅ?óàç‚l?V#¶®å?‰Ë7ηT?ŒYÑ$µ¹?SM…k?ÊnéøX?ÞCøâL8?1i­‚?ó1<(<ž?Gs8/Qå?Ìq·O?¼uäF?:Äɳ÷?IÎ¬Ñ ?Òcs”?¢u´Kš±?}*®è”&?.`=¬¹?«Ýb¥½?ÕĺZ f?÷pMÆ? :À^“?ShÒ¡ ?sÿS†½?Väž×ÀX?߹僘?¶¸©[?.ã⼪?ghÚIfº?øÌè²?úôÅm?¶?b3£ø¥ø? Çbt‚ù?Âb<Ú*?_IZ ïj?½T-ßJJ?Å´ï=7½?pñÉŒß?ÇÛŠ5…T?äìñÚ ?ðÀuÚO0?È72?C?¿?h¶ÆKÁ?¨8'?7.ì-ÍH?ë„·GÞ?–¿³$—Ü?8?VýÁƒ}ˆ?b#öÛ“}?KæiÏÜ?,:¥#º?ÒÒù€ ?úB¥Ï“É?ÔÏé„”ñ?ÛnH¾ïŽOç?QCžn{ç?­HÜœÿ?_Jé*Ìx3?,“ 82FÌMÒ? ±0Õ‡?rVF Þ?Qޤ)V‘?°ô$`V?a¥ù%~z?%Øø´Pë?ÜÿDV?±ìÿ‚? œ¯"lZ?åø>Ý-)?zEǬ±@?ìœúæv?K‡ãp~Œ?¨²TPi?ÅŒ_ ?·zA솊?šMÒ²ÒÌ?ØxUøý?ªžã³È?™±¿ŸŸ ?ôSžõf?»pبý˜?\„VÉ?«Ä;Æ?o–Ÿ^nu?ýÛ«¸3?° 8¬T?OÚà¯{?`§‰q ?‰ê&éñ"?ê0FŸWN?ŠXÍÑC?e)އäO?sÄví­.?­o1!–´?KóYa^?Y‚­·ó?Š«v€œ?t ü7÷¦?ÿªÃÏÚ?y ²%ˆ?å¢<1Ì`?ûÁár?ŸSÁ9³?Y¯(?ô¢èë¿R?‡ßdÄ?+}Ãô.?=—¥8^?œ?Æ”?£ðAýj¤?Ð’Š´˜?©÷Æï ?Q˜xج?ö±)Þ†t?ÆÆ»†?Ù¤Ëë—š?-vñE^? “câì?iÿry?!*•„µŒ?ñƒ Ø"´?‚;®­<²?þr¶ÕÃd?”òÏÄÁ®?aƒõñÝ?b8Ï}?=¿˜?6_ 4YÂ?¸ãà÷ï’?Þµ">?ܧß0&õ?æydJt?÷›®¶?…¨R {?*Ìž v?µ ú¡ð?6^Ûüº?‘i©Æù?‰yí¡ ?gWÁq?®Róñ¯?â­¬1-6?$Y&†.m?‘ÓÙ?2rg×!p?ñ#?öP²?¨TúX˜?6IR Òê?Š\“úMD?¥7¢?•MFA?C•FÆJ(?»þQ€ò?çk^e?ÁdÆ×6?\a‚ÿ]a?⓯˜N?Š˜ùîãÓ?ˆAŒ*?ý.$¨¤?öiÅÌò§?cOb›°r?yšØÂ?ﶨ Ã^?¨%] Ä?*–ðq®?ye¶y®?«Ðþß±î?ØŒ>]†?Ö°a³¡? ;Í.(E?Îu¦éCÖ?5|öÞ’?J¸î‰z²ù)‹?RûWÝ¡’?Á± Ã?£½_¿™Ÿ?òiˆ„kä?‰' ?5ˆLè?Ä¢Vµéü? š[í¬£?øEû?€ ªëì‘?³úÃ̵v?²“«‹‚®?¥imôª?»r„Y€? }ÝÙ}Ý?ò­†÷oâ?8í>¯–B?ßb¯<Û?½"¦è ~? ½}‘ï?_Øiè ?á²¶+f]?#¢GçÕ?4‰Í¥Í?'Jb8¨? ŸÆÿàª:#¤(>ÿÂG1>2?U“ÿKà?ýв¬`?µå çbª?ŒÀø$§? ï¶æ¶J?ïJ?6c?=¡Ùë¢Ê?0Yã}(?|7ëÈü$? Žxf?’f´Äˆ?ÙvÿýÉ?ÈjRÇð?*É­¯¯P?J~7†´?C+5 ?<`^qÄ?=ÉÈývn?DuuÑÊ??¶Ôwø|?äG¾^Í?ÇR‹U‘f?TF÷Ù`&?ä…Ú¡".?¥€¼üá?¸]ÕNip?# -±€ü?ÏzÓmG?˜ˆQóÇ?Y™Üâ¢8?ö–~Ûú¤?[ÞŬ18?xÇ¢²Ÿ ??ßúÐEè?«=ÃÍv?Åõ(“?«wÁÒ?÷˜ä÷¯?£¤þ??Q~Œ;Y?ãg*#Æ?‚uÅ®õj?=l°4¨¤? JqÜdz?»Jüü?+Ô?V==À?>Á|È=?ì"v‡ìy?e1;ßÚ?µÛª½¦?óÒ'þoz?=uŽ‚˜Ž?µJñ¾þ%?{#'¡é?§§æ\?õ?Gÿ¬ð?Z‘tóô?Év­¿„ˆ?hÇVÁ Ð?øó2£<4?4Õ~¥?æÁëÚkè?úÊÓNî?…a6?ä?¹læ»üÏ?ÒÁ_h•Ð?\îá,?dd&aä? Ó†“¶?ÝSzT@?ñm,ýœ ?6³õ…ù?˜æ¶1 F?ó°Ä †?,üg…‹?éúö®æê?`w3‡¦`?¡×ïœþ?íÙ¹šU?…,¶Á]õ?‘g)Ω ?ÐÔĉ?ÇÓÂ?4ep$J?pr*ÏP ?[qXöÎ?`YËG¨è?ËTg±ž?Åã ñË?f%‰¬ ”?ÚQ†P€»?[x£õ9W?âMÊV??-Ë~D+G?ADâ†î?ßéÐaÊ?©Ô‘¯Ç?ã¹i$?غޕ8?ÿˆaW>{?Ë0a˜ÍJ?ª‚¼[µh?¶Öp_?îEEñ¯ª?7ÈÖÇR?qkšÓìø?€)BBøŒ?Yu5Q?XùÒºý?–@Âò¸¿?-)òæ?êÉàÉç@?ì©*fA–?D«ê¦¾‚?ô˜jBã€?ïò¬•?‘øè)2?c#…:í?“ò—Ä«? >GÆñÕÿ? r›² A? Sç' ¦?ÈN0½°À?~/¦Ì?'(KœØ#?$ök½-ô?·ŒƒðÓÃ?çáÜÉ_‡?ŒwO½ÝM?b±=n`?.M¿\ ?Ë5LÍú?/ŸM²ÞÅ?\š¹@íÍ?SuDëýÆ?¯È{ ?¨w–úg?'—Y 9‘?º¯?¤[£?aHÞÎH?Çcc?¤?kÅ]”’Z?iitB¸R? L”÷=î? çѪG¨?!sä¢;K¦?!íú03Nµ?"[¹3úû?"É7— ¡¢?#=¬Sõ?#²÷×I\?$H}âæÝ?$E.+À?$/8òG8?#Ìk‹_ï?#(¦b£?"ZG™5«$?!x4oÀLþ? ”岨Ý?}•.Êô4?Ä$¦5?àKu Ï?"Ò ¢’?Ú ¬Ù•Ã?Ì—I½l?|ɘÖýa?"f–ß»?p¸aÆ¥ä?l°›EG?ò/Xê1j?ÃÐ^,?+B%ÒY¸?M<žå2^?¡lõÕN„?-sŸ^ì?îz(…î?äã]ä@l?)Ç}0Î?l¿Ù–Lò?Ü àñN6?CNópG.?”˜sCQè?Ý: Éö??†Ð5i³V?‚f7?Þ¼î¼8µ?¯þA¶»©?ñš~¨Ûà?‡rªÆ?Cò’ä `?÷®Ù5ü¢?ƒµX?âÍÑ3D?%[OŽ˜?[#ãt?…¸ª2(?‹oÜ–?HÎCJB?¦´ÌuãN?±)G`lx?”„ü=Ö?ßø¾Ö–?ÛÒk ?—|¬×?¿¿+Ïï?7™JÎö?Î?þnãô?N~eõ ì?‹L^`…?iç!y×?剽êO?ý dp?Û³#?î—0ü?ø'¯ls ?Kõ•U»? Íæ(Š%?=JÑ;[?ØÈK†“?¹:j`?°Úà³çJ?”òÃ@Ê?GÄG?¼z„R—?÷uz Üm?·ÎÍM(?ë´A7E?±˜¥‰?R_†áø?ʳNÌ`ì? 5:y‰ø?f,!wšý?¹cUŒPZ?8P0uS?øY98?ÿ.°ª÷?@‘I-é?¤˜Gº?|Ov…–?m—Ö:?¹ØXT¦Y?þÖ­?LúM™ N?¸ÉÆ‘Ò'?M³Pý¢&?î³L¢:?}H3?Dq°ë•‘?µæè`z?SbžÖðe?ú.¬•’ô?w€âͦ? JåfËð? òoº¸*? }ƒ‡cËþ? Õ(jlL?{}`h…Â??íñ¸~è?’2Bb^?®Xßg>q?ÖV Fo¿?HsôÍ ?o­åÏúH? D(tûC? ÿ%¹x>? m™™$q? ¾þK²y?  ÷ŽòÛ`? ÿŽƒ}Ûã? ä>=ºÚ? jõL£H¤? æè†j? ¦cëÁ—? ½^Îùº¡? ú˜³8ñy? þ|^èÿ+ SZO¸>ÿZ8?w|} 1é?r'îÆ0?Ž –¤â ?ÕÎFK¨?ZÆ´5­?¸BgÄz?’|—µŠ¬? ŠË_~§?  ÑoØ1?ËRGÜ?PÉö>?¢20¹ÎÒ?88ñvÁ?k˜ðŽOž?!±öuí ? Ó²v? üS¦¼? q³„‡.?6„¾ä?pù¾Oz?òwžF~?ŸQXRøh?$¬ïa%Š?¨,³µ×?\…øÐÁÖ?gz‹×Wª?Í­çQÍÒ?pŽ¡³?q‹-{·?¯xàzÓQ? jŽp‘H?.‡û…¿ò?!‘öüLP?å©¢”?v‹Z`?ÒqrÄó—?0üÆ?-3Ón?p?wåPÙ‚¾?U꽦¥?Tdúçø?‚´$P.“?1јŠ?òåâø ”?™Â<×? “¶VÁÓ?C‡nœÓN?=òBË’ú?ûgrÃÜÍ?|Á]A’4?ËZOiW?þ_ÿ+´?8±A¼v?¢AÙæT?^Æ®–6?‡ dµëp?$0 Ç* ?.^ ³IÐ?Š‘Ø9ó? ¸÷ä§b?uÑœ”¦?Š€÷»¦?°üð´?qYŽË£? ›0Ia:?ÛæM”Ö¢?r€þºA?Aß f9(?¯÷o)]­?XÑD’L|?@ó´Tv9?hV¼t?Å'ÁxW?<å­z^?£Ì¨ÿÞ¿?È÷·k®?‹¨Ëü–d?ï…¹ŠÇ? t6Ø®?cž@8"ì?ûU!ÀB?R¿gÍø?£,äSm³?œ´›¸ÀB?П­û§Î? õNjJ?øŠ¬š(?ØÑ<o×?(?¤Î?â>\Dú?%.#éÓ¿?•‰esRÓ?_y­’Ž’?š1Á¢Ìo?B_¶¼™??þ1Ò>?r2óœa¨?·ýÜ ?íÈžqp?èèRÙPÓ? œ·Äx?!&, !|?!©‚ÞÐ×*?"‘zÒ€?"~w0Æ?"ìÈ­Ôk,?#nBºz?#û°‚G2?$yê «™ø?$ÂÄÈ\Uè?$¶Ÿ&eœ?$Jã˜ówõ?#/¾"•?"œþ¼8?!–yÕ8(K? •Ç9B+©?WGnÛ\è?Ë›Sù¹¥?¡¦¬‘é?ëH˯H?² ÷™&J?èUßáZ¶?gCy©¿&?ð‘p*ï?>¼ôE`Æ?Œ]œ>?‰îÂÑz‡?¥"Õ¶?¯bÃáR?ßu¿áÇ?MÊ;+Ï?÷™ˆ¡‘³?Ñwùƒ²0?×(´F? \C9¬¢?k8«7vk?å¥áã_X?bk+<)ä?Ô9Ož¬?Dݺ>ž?ÎI¤5¾†?„àÚÚº ?bÚ@nË?E~ñ$?ýÎí°„ê?hü”3Ì?έ慔?U@l‹—U?µ™+Jx?¨Ñ^vÏ4?<=½Õ7?°ýÚo?ð!®†‰??ôÌÀ_ãN?̨xÔªQ?š"OT6†?‰Ÿë®CA?ÄPp”î?eÚÄß?tœô1_?Ûî&¸õ?v°\ËàK?¸7œÿ7?žñîú×}?"‡Úå[?RnZ:¤0?—¾Æ?ÑŸ?Ò]Q!ò?èc5&Õ¹?·”ºªÚx?(AÇŸì?@\ÓæÊ?'I¼²çÚ?þËæok?Bè™'?ÐÞ=þŠT?Çe¤ b?IšfÔ?‹ú^k:?þ…™È0?;_ï/ò¨?#ÎÍO?­‰|žïªA.?Ò;»Ê#Y?~Âö? o3Ïtej? :%S§ñ? fNµIe? »•þ n? ¾{áé? ÊàJ˜2? MÞ†0Æ? ÿ÷gòó? ÿ “EßÚ? °êß? ‚rzã;B?¬Ó—»d? änˆ´?›ã¡¥ø0?ÒÄ ×Ë?™E•[ÚÏ?÷¼Fíä?+ñ™”¦Ù?“#ÿË>ÿ:i©¬ >þîJ°g>ÿjùËÒKL?² °AZ?ùéuøð‘?nÍð|«v?½RBË?‘ÚÅ©|? rU¡ë˜? ÞQ£d? Ü着–? ‚ ãô? ˜ª^s? _I"ÿ?gÞ*ÁÇÀ?ÁHÿÇ>L?Ó`i\ÿè?ð%JêFg?ð¡fQ(º?øÁu3´î?c ¸F?/â’?| ?EtÊâ8?2#Žaˆá?àRv^.f?V´9Æ%¨?½§ûÓXp?O¹¨¦j?;män*J?‰.ßûFr?«”J4^?ªÂŠ)ä?t$_›È?@(3÷k“?8sïÁOW?HÐ6kÊt?¦=)G Œ?:Cìò?Ûx¾€ˆv?e¹|’Tø?Ä­ÝâA–?ò`ñXÑi?í M!Øl?²«eQR??µIó:Ë?è=ý3?ßF ï t?'ÏÐU8ú?·,ÖqÖ?céy¦™”?‘5®ø‹?*ñühÞc?$›‡ÞÔ?`ˆW«S?³‡4ÙµH?軩\¦0?Ëø„èÙj?8²Õ…YÚ?&§Ûï¶n?¬ÂZl³ú?öš•ÄH3?2ž8Z1"?„¯•Ù ?ãñT.±?ºé p?²›P×|á?î3Ø{–?`´¬ëvò?êO mW?ZÔvA"è?iLå`2?B| x?§)`”?á@·Óòú?69=´5ç?ä v—H?:ïæ‹?°ñ‘P?¯„¹Ë?Üuñì?· »h&?ÿKfÑUÍ?–ÙëÐ_~?²ÅD°X]?Á¤špB ?è2ez ?¦Ì=?ýïÎ;+ƒ? @‡_í? ¼|Ft5?>|-Èb?ÙÇMÛºh?ù”€ÿî?–&(úG?Ž4ÙÉ??¸¸‹6 ?òÙS–Î? Å4ƒ?¹ªÔá–?Çì®)Ä?öƒÁ|¯?Ö‰ XD?ÚÊIó?òtÆ]t?:^®cÐN?ùÀÞ¦÷m?L¥½ ¦"?ñ¹ƒþ?@Día? 8A¢±? ¿=Ϲr?!"0a§Da?!SþÄAß?!KA DD´?! ÉÇv] ? ¡]dóf¥? +3÷ŸÓ¸?’Ô ²ˆ?.ü×õü?FTÓ¬?AL÷é¼d?î–XV?÷ì†À£”? ™jNQ?FP®Ó?¯+öºÕÒ?>—šéÇ?ߨRÅì?„NH~r&?-LþP Ð?èõ•P£º?À{0nâž?¦¥ßØ?t-‡äJ?þ<†o@? P¯»”Ž?þìì_Èæ?œEˆ»Í?+ùÄW3?ÉR^½x?t´ç\§?4†J h?)dù~j?ÃÔéÒ•?¼i‹ñ}f?’n]*sÞ?qÕ˜¿b?ˆÂ]B?ú˜Y˜Š?ÕDÜ•$? é´'y?á2nš?Ò*‡sè?}hð±„?àw9;GH?9 òG{/?’í¬[z?é•”šéê?!|`›;é?Ä™‹Ìº?¨ÆîxѨ?ߘÆå?×VÅ_?ÃLP\Ôº?Õ¿ûè?5$0mãÜ?óÃ&cˤ? ¨s®×Æ?cXÁˆ~b?ÊÍœ]?x¬vF?/4ä?Ã2 —K{?!DgÙB?CC·Åb~?ElŒ3u?I›2 ¥?sÓ>šUè?ãµ5ZQ?¬Ö-A?Ñ¹Žœ¸?E ñeIÁ?îÌñdë¦?²žyZ÷?tMˆ›Þ£?$ˆUüi?™µYÇE?àÀµaÌ?îrN°?ÀÕ š;S?^Ùñ¸H6?Ö.¼¡Þ‚?<6?«ú/†?7¹‹p?í %Æ È?Ñ—Š™Í•?Ý•JþQÞÀ€ÌÇ>ýýs4|H=>þòŽÄŠŠš?¶›åÜÈÄ?A\Öøwê?PB^­o?ýAlY©?>,Bi¢L? £ÉßK8? ̨޳°,?8Ž?à‚ú?€èg”`T? •,ýÍ™ˆ? ÉñsÁÉÊ? ³ v¢J?ìd],Y?ê‹68B?ÑWNú?çô'v*d?©ù†úB?[¸B™¶í?©Ï; e?ä¿ø+ ²?çÉ]ÌÌ?—UÆi&‰?÷?õåd?3$`¯"?޵ ŽøŒ?Dö>/?cÀ=Ïp?ÌiU¹Y?@gvYÌ”?‰Úu­ü?•LØ…ÓÙ?s~¹`«?CË-O?O5~¥°?ôÇßo?À¼Íù>?qÂÌȤÕ?x­Ç?µ³2¢&?„r®ñW?’ðˆZòè?àÛ ñƒk?VÆôr?ÒëM?73ÀÄ?uf™kž?ŠÇ ¿ÍÚ?xŽÅ­Mè?>“U“ÖŠ?ܳôV¶Þ?Xo±sé?ÁëÁ ,?3/^3\†?Ëÿœý£Ó?©Á| ÷?ß}d›ƒ4?oé¥?3×zƒ–ð?ØðÉÌmÿ?zÄî?ýïø¯”?&„*ˆ•‘?ÚLˆäÆ ?{E£©?€{?Üܯ¹?ëï§èV(?n½P™,¾?€BtËó?&ê2ÌÅ?ÿ¸Â¶„N?P`¶Êd?7?˜>?H~®¸²?71'kç9?æÕÕˆ¬Z?6îMÌÜú?u^&4?‘Éo„ó¡?â3CƒDº?SöŸÛÜJ?-èχƒØ?•‘O}ý?ƒ¢\ O?̬y”Ä? ˜¸ûßnÆ?!;„ìÞöÔè?"Ѝ«ž5N?"ñU|Å?#€Øõ3š?$1"‰dÌ?$Þve½£G?%W2©É—?%ošrXÄg?%Y»Ñš?$UÁÆ8>‹?#TÖŒeiã?"<¦?{¸š?!0@3ôDX? GI€€JW? ší’pÀ?(@xl á?«Û h?¢™×КE?î^Àíì?[9ò`Ù?¦Ö§¨o.?”ˆÀnH?¤QÓæ?J¸!~?×û^¼Þ?Ãïò”–?˜òrM“?™Ò€Ó@6?xh¸ì®j?} ¬®r?›qéý(?ÚŽd$at?IýÊL×4?í-ç³x€?¶ík\~Á?”‚Ž£1&?{U«`Üt?i$.ÐÚ?W·3šQ¡? ýrÅ©? eÀ‰G¬? ƒFz w? k ü3 ? (áWk,¶?«£%÷à?Õ ÅÔ2?°g×`æ?veh?F1ç]z?ñQÞ——ƒÅ ?ŸY:6?µÜŒ„?n·5ÖG?|ô„êe†?lI˜NÇ?k4g ?¢»ô¹Ó?-šƒƒl?ßÜ?¯8ü6>ÿê ´! >ýëg€0¼>ü9¦¨Óþ>ûÈ.àQ³>úÏmåèlÝ>û¦UÓ<°f>ýšù©ødV?;xv†.T?øÙw)ÎÙ?ô€(–?6û¼Áë?Èá15¢? ˆ¥¿F|ó?PЉ,?àæ\œÃ?=¤ß¢Ò?Ç+"´6?ŒÄè—? eù“? 1öÆ÷Äô? )"SR'?à„M}?ìÇvÅ?v㨺C0?øÉ’Á?~¾Ê4_~?å°×¤?2I@ïè?°bÂÖ«È?ôžß®-+?üYΧC?ARªw?‚¹‹äå?bÞÒøÄ?˜¤”Ž#k?åÊ­òð¤?i¨™m5?‡;%•é?×t´T?¦Þ4Áy?‹Å+¡?€iú5Cr?rªßì ?PŽJP|è?X‚ó£4?ç¤5™H?Ñ—¼O·?éé[(g?1gt$C$?“ÓºVÕ?ñµBÊ-x?4¿Ú|ú|?PÞ” CG?GÖt:ÿ‡? Ĉp¦’?â`Ãoz?‘ž•š¢?3Î0<¤?Òqä÷¯?|=y2IX?DÕü)?’¢<ûØŽ?Ï5b)«R?¿©Å_µ`?o–ˆÁ¾?ö•挢?o”yÿ±?ò:ÒíS?‘wôådð?\ñGÁ=?` îKÅÑ?œh…Jë–??Wsüæ?p·´eèx?¾7o¬?Éexý²Ü?ˆãÇåÞ?°v\A?šì,DZ¯?W]ª1ãé?s†Vêä?úEÿœ?Ú¾uòΔ?ï§Ñäñ|? ûL $?÷»Üáî?Ð\@`%ñ?-^Ò¶?ȧñö?•%BÊ8?ÍT\gð?ôöɵÑÒ?>ÙºþÊl?ËbŒÀu³?¥Øð]l?Éž 1 '?(áÀËô?±,<§„c?M]m‡'?éhÕú¬¢?zÑ}Yêÿ?®ÁÁ?ŒóGH?$ˆØ,™~?Ëu»‚?m²E«M°?å¯C?lÜAp‡?¯½­KçX?㕨¿€?ÅÝš¬ñœ?˜²|.Ú)?§ï91ìÆ?.ï£@&.?D¨°œO€?ÖÂDH¡.?·÷zJ?¶5ÊC=d?±Ïð&ƒú?šëåc©?h‰ãv·? l3îe?gÃ'Äê¢?mj,5‚?  f™6Î?© åpòÙ?H[?§?A©’[?¿¼è=‡!?Äcó7? ý$±È@? ØÞ‘”C?!‹I²¬þ?" F£d.—?"Hë+×F?"6ŽœØp?!á‚”‘â?!f§Ißa‚? ìDXce? ”¼Ñ#¦? pªU­Kô? ƒ£†´? ¿Ô%c'œ?!’ýësj?!rPaoWL?!ÆHa†«÷?" D#D’t?"@0›‡Iµ?"~J7‘)?"Ûë<cî?#h©£qµ?$[%í?$Ðb—pƒ?%Töœb(À?%|6ȉŠ?%2A/4?$ïéßð?#G˜õ€!?"…÷¿Ç?!ˆu_ôxû? ²ÆÁÀºa? V¾&ò?[YƒW€?˜OGš?TÈbÃ\?s9ŽkC?×?}ËŠ? ÚWŒu¶?Ìç튿^?±¥iCv?éÌÉ 9ž?ž‘08ÿH?}a¸’!s?¼Ø¿œŒ»?dé(Û f?VàêÐ%ì?kZ:Æõ½?ŽÉ‡S?Ê–œ—ïŠ?6cÝFØ?á‰aÃu?Çg‹«Á?ÒÖ›i½B?íÀ¾ïÿ×? ]îà~g? |Þ)œ C? ØØÖõP?!° ÛËš? îy?óH?  7o¸? -WÍ>Ÿ°?mìÚ6‹&?µÆ´bè¶?OÇr­§Ï?04ãQ¦?)±+½‘ã?ñyÇ?ŠÍ_h¶’?´7ß`'ˆ?‘Ò˜!æ?Ry$Ø®à?/H‘aÒ?W¬¤wåb?åE0’)`?Ó£6šáŠ?#—H‰z?\}š¸z?»€ÆBÉ ? äw/Ùz?˜3¹Á?)KÏqwH?ÆÆ¥t,›?K–ËÙ¨?ŠÏ?¯µ?e”LƒûØ?؈)é–?ú.ùàƒ?ð1Ëûj?ä­MâÒ{?–téP?e‰F°?'«ŠÐŠ?AFÇR{P?—oØ”?úÑë¨ua?>ÑŸÿE‡?Cm'òú?ú¤ºÉÓ?i24‚Э?Í¢×U?¯µÀ¥ð?»/˜‘;Z?Üæe7Ð4?-//±+?»½5íþp?Êz ìÒ?§Ïú'Ú?÷,2ÔÕÎ?oí¦Ä9Ó?þ ,Í,?e>B]‰?ýO3?[®ü)µ?uyÚ„Ö¶?T3—Q Ú? ?IÞlÚ?µ‰UŽòx?{ñáœÜ ?qlŽº/?–0i°æ?×ö¢Q ?±ò˜?T²æé|©?l%v@"Ô?a7µö=b?;äDÚf?Ø“€ ?RZ+Z€?>¾Hfxh?Æf6qÏ?’X¾üçI?}85D\Ô?]š!œ·¾?CÀú£“?ºîYÌ:?I5-ÉÚû?ÑaH †?KšLrúò?Ÿ6íÕV?­!Z9¡?[KÁ²É?™ ^ OÑ?db‚Jó¨?ÈùV š?äË⨟?æLà3!X?°+¨ëú?ôužá–? ß½ÄÚU¢? þ'VãÀŠ? KXXþD? ‚ntñlÚ?1¹”ç?9if›¡?nóVNþ?^?f°ª? ìÛ~ï†? ‚ߦÀ?Ôºt¯›?Þ!‡²(Í?d¨Sfò?t£95±0>ýï»ê:îþ>ûŸC‹Ë­ >ùÎ62Þ-Ð>øxÛˈ†>÷ÀÐêÆ'‹>÷ÜÈ,ï@p>øú<Ñe>û±  ²Ù>þ!™˜Þþ¢?èÝsW‘ ? ã»ßæd?‡Á–bpò?aÉ ¬Q? x¾e¾?h.Ê»v¹?O%¶/‘Ò?ÎÍžò:?œÕn¦¦0?À|§©ŒD? Ì}w¸üI? ¤Šm™O? :k+Ë?3]Ç—ml?…±iî?¡1Áåµ?Öq£˜Ôœ?“)VÃW?"±“0¨a?S¢©—5?ÊÍqã?(à¸ûJP?û¨¼¾òÀ?Ì¡º»«Ÿ?ía Qß;?„ÂVÊ1?~÷_,p±? °RÏR?¯ÞŠm9¢?”餺7ø?`8 ~ž?3å((?#P±Oæ5?,ý¶TÚ??:ùìü´/?:æ*B‹°?+DãOŠ?ëTïN?%‚èMû©?S`Àú?¢ôèâ?î7õú?TÌ›b¦§?„U@™ˆ?†œ.?`ØrHw³?!JÜoŽã?Ø? –±?’¹4Åë?Wú²Õ?+ZÍS.r?õ †LØ? ˆÇöÔX>? %f%Ý?­^?ƶkŽX? ÐÁHˆ?âŒÓ…#?“tÝfÄo?‘Á]Qç*?¯S#ø©ª?ÑÎ̹W>?Ÿ’ûQ?YeKµ´?÷«fš?ßåµÇþ?þ¡²æ–†? €ß‡¨Z? ­Òˆ‡õª?!$¿ ÃUR?!j@¼9Þm?!lï Ðé?!'0zŒÖ‘? ¥ð?8º? ç AÙ?çÕºI„?.¥|?¯ Åä%‚?¤ÖCì³Ð?¾BëK¦l?¸ {mª9?\¥WõXº?— iª>…?y9ø e?3¿Æ˜I}?yâ‘'ç?Ä0Èj?›JÕ±Ñ?{žÅÖ?£ËÍ¢b??ò“üJð?R°È¡f®?Âñ_É#i?N!0ŽÒ?ú Àn¢?³S)e"S?Qjn9˜?¦–ÀQ»?“]’úù†?^UÖ?FîÅZÉ?FE­²5~?;¾«ƒád?MôyÓ*?Ÿš_ M?HÒîd¼?L¦Äp5x?•?ªÉµ?ù×¶Ä?MSµ¬Ð¨?lim¶r?D›À<‰&?Ó…J:/õ?"¹^A³?D–ébü?Q`6»?–?clÑV.?“£‰mK§?õ!z ?“Úì7Ѽ?rñ¯Õ?À<5t?ÚSK`Æ?Mpž5$¼?×ÖmÒ}*?d»¤<€«Á’x?VÙAɺ?&OÐX-?ÖA•6?‰ßPrxÎ?I1áÛ)?0ýãùÍ? ·Çšñ~?¶´ÓÀ›?-‰µäÓ?€œ7b¨?ÀÄË™p?ïù&Ùv?y¦É>Ñ?ÝäÏÅeò?wƒ°f†?Áº·ì]†?ºÌÓ­?gÜ•ëÎ?Ø41\4°?/<ðȲ?™ôÅ ¯?“é¾Ò? Ò%l!Ü? ]RÉh¾? tÚÒ¦,U? –‰ó¨‡l? Ž}ú5ú?RG&c;?Iýz…o?¶ËŽÍ#N? ¤µÌk.¸? ´—*Œ"|?lò)åþ?Lñö0Ñ?£×>ûrf>ÿMÇz>ûÉ2ö¤qÇ>ù9ýc >÷3¹obI>õ¯Ç}A‚>ôÌÛó镈>ô¼î¹föÀ>õ©ìY|U)>÷›êurd >úy|`Ëd>þcÚÆÃÇ?>i AX3?ÙR1‰Ìì?埣¿ß? ?‹{„¯0? ŸàÐÿ? Ô.?¾+Š[¶?¾ª×HÀ9?-B”Ó’?§kx@ÈŠ? 4I¨õœ? #yKB—t?Õ",ñ¶?<«ÿæ)?õ“hçÇ`?Ú”ª2S?½)纞™?i‹âŒå?ªGÁ ¦?V-QœG†?huù,?Ó27/?ŸTUG?v*0¯…?ÅÌYn?‚®U$ s?y=Ç´“?o`Ü‚)?Hèæù?§Ô™ ?êfI.æ?ä__•Q?ýj€ä? ¹X€~”?=£ñR?Q‘Æ»Õ?gv£ztË?’Fü7#Æ?Ü Ey–¡?A“bÏ?®\,A–?p|l‰?6OyÿÀo?,:™Û?ð’v;g?—öÇ’¼?=£Hå8?÷*>b(?Ñ˜Ê ³[?Ì/g¨?Ý#|;4p?ûä5Þ®?$ë⸡ ?Y°¬4©Â?›&Ô®@?æ%4óÔ?4ÿn`4&?„N™mì¸?Ó‘õôNí? Nÿï<ú?a­4¡?‰æ÷Ñ8È?w(®Ð?jºñÎM~?+¶û[pè?â[ÖP?ŸÖÅGô?r+ùs"î?]óø_?Z6œFê?YÈ.»?®?HŽé¤?Å w•?ÇÜ-–„(?hõÚ:X›?Â["ùâ? Êt’~Â?X_›4“?Wûn”?$1ÊÇgž?r[´8²?Ì⟘‘? òÝ,b?hQ´‹'?ÊZÉaF?"òRe'Ç?b­¶“?§èj5õ ?ù§í‹6?/þ½kDŠ?mRð{ÚÌ?Ç-ḥ?GžšÌY?õ“b°å±?×\Ó°Æ?ðÔ|ò½Ü?@JÝá@X?¹¼…‘¾ä?J‰ä]?ßÁ/²ç?l™òUž3?쑹¹^6?_ Vé˜?¾CýHÅ?÷¡®ï+r?ñꨰR?”FÛ®%?áb$´(?øS¹?ËÉ?r´wÄD?EG®khC?”Ÿß_ñ?Dx c϶?"j÷¥µÖ?þ–”vÂ?»[m?SHîÐïù?ÍÔ`S?0A$.ß?v<}‡(?–S£c62?Žl® û?nÙÆgo¶?] @C_Ö?ˆÃæFh@?“]‘T?¢ê¾ª`? 1ìÞ7ª? äf&Òþ?!~¦½zÇ>?!ßý6Ð?!õKJA€?!ÁúØ9?!_\:HÆ? 󻞻L÷? ¦EÐ^™±? ŒÊ—¢? ¦ÇÚpÿí? âÈ÷~0?!+Öˆ?!oÝ£6R?!©yåÃUm?!ÕF²þA?!ô„ÿJª‹?"/§­?"5ÃPHE‚?"}3§=f?"ñ¸ºa5@?#‹šFÖ(–?$,CÖ–ü?$¨Cs†0?$Öþ0ÙP ?$¥–.Ì?$ÅØ^°L?#NP¯@è,?"ldäZåº?!˜ Úp X? 촙ͫ? yh8Øh^? Btž™0õ? C%“‘×'? oø‘*ýú? ¶V€vª? ü’å›ô?!$Œi08s?!îŒêX? ¿FË]Ä™? 2¹®ÚÎ?Ž ë9s?ÿ¬°ˆ]Õ?BüX3»?öÕJtêY?úuj Ôp?D@cë?7Gݽ(’?PÜ‚ºZî?ˆ âcŠh?´h§­ò?Δ¦ì?ßk°Ò§F? ‡óöw¬ø?!i[NéŠ?!€g-*_?!­þ–³—†?!R¹…‰?!#Ç%¶ïN? ~€¥5žo?†ü…+“Ô?9#ë‹ô?SÉyº­?íšÞÃ%L?ìø¨Ú?ƒ' •p? X¿òè?Ô\Ë3¸?ÿu¼»?a(óù¯?Ê·óÓ‚?¡wÇvç?À„Þü‹¾?DDÂÊ?(·*ß4?S­GáL?¥ò›#;Ì? ×"÷?ˆ©E]$?#Ûm©<¥?à>OD?¨±° e?S‡PNŽ?±ô°ë=?©Nd v?7Ð K¶K?tz&‹?Røÿ\h?‚šêK?›Q9L¸²?ê¶ü€?‡œ¬ Xå?wz”D_/?ªQëýË?þI.Û®?KÕ­ö?pe+úî?Y;ZO-?ÿÀç'?i‘Ü£X?¤ Œ{Gl?Â±Í P?Ü…Î$w?ÃNÆ?[.t›"ç?àÝš×”?ž“òßéÙ?’ÔëH,?º6âš+¤?©šÏc?’V~jN4?(ífiœæ?²³½†Á?‹lâŽ4?OëUŸ?àÑþÖ°?—ászé?i-ªÞŸO?xSf´5?È– ýdW?D ^w(°?É5®G<‡?6tÄ/Tù?oöĈG?d‹Ã¢Ä=?²J?Vák"?1l›ä˜)? >g|Ó?Pö²A˜B?ù4üB¬?Õ;ycŒt?§"í>XÆ?BC¤T€?šðñõg?¿XàøS?Ã_”5ö?¯ã«LÞ ?€uÊbhä?+E\z¡?©upïŽ=?ø9‹£ç?O#Ú E?¸‚†?Äøº)±™?phÙ³}?'k o¤ƒ?, õ)ä0? ÃQ´OèÖ? >•yŸ Ø? —9S©ö? •;båé?ÓLä‚?ÐÜ®jTó?¡=Yé?>³/“BÍ? N*òZ? „Àï/#²?\aÃÖ¶?O´AåÊ»?°ÁïŽ>ÿ(†DEî>ûÅki¹.>øí8¡j >öp_ÑbL>ôQÊ“peh>òÃ5úMA¹>ò%Da>òM“I"-<>ó¨ÒhF?‹>ö¤8@‚>ùL•“•'>ýwÌÍÞlž?OŸ,M?e3ëcئ?Ø&ëv|? F1@.€Ô? ǽ†NJ?ãÏÉPáž?*Ü´a/o?¦„+T* ?Y¿ ,3? [§Ö? EãÍ¥˜?Ã[‹ nˆ?/°Ç~Ä?ñ{ÞƒŽ?á Qßk‡?Ðd£u¤?‰¯Àj¥?ÕÌ!%O¢?†6¨;?ŽòR^œ?àÞõ¥c?zkò*¾? 2XÙç?#W7Õ£?ª‰q-V?{¢0&¶6?]òÆ’¤?2(a?ý`tÚXÇ?ÙËðõA9?Ú×!O?ÿKX»Aä?6']¼û ?nbÃÄ6*?¢Ð»rÄŽ?ÛpÎ~Ÿ5?%ÊŠY&'?‹M¾^)?™jàéZ?ŒÐsœ†?ûfÉ1Ò?7[þ¾Ì?/ yþ%l?çY››$?xmã*\?>âè"?²/eOÂ?­•/Q¢?›ÛÚsľ?Åi@î?÷+Š’?#»­Ü,?EŒQ:'?^ÇͤÿP?s Û2ì¿?†Ç¿Úè? ‚KînÆ?Íf°–Ò?ܵ£#l?e ’àñ?±Œá$î?ßw« @ö?â¼4¶?À½&±g ?‹Lî·ç?Vh×ež?+š–ç»?°ÊŸ8?áP|á?¦:ŸÄˆp?M¬qWOÙ?Ù¦ ¯FJ?ZábfÎX?î?j•Òmù?ÔùҔ̖?d…nl¡w?úŽŠ­Þ ?|ênV~Ð?Þœý|? d64?GyÌÄGT?RpCmø?4b®Ÿ?ÝÀ`cè?L ó.¼?–{ÆMê”?ì"Êö£6?„èL¥þ?…hè4tú?ö‡²¢“?»ŒS–?¢×B0u?|Ü!8Î+?/––?²txä¥Ò?uÓÄ?U9Áp?…ëœç? °»¦åº?£ùðÖð?˜ºܾ°?—›µ‚–?Ä>jäË?>]>v®Ö?\G£–æ? ]ö“P? £ïéÉÝÖ?!œÆ{?!^* +h?!\DÁQ:?!I-h? Ĺ@¾Ñ? rÐ}Ü9‹7? _Z(Ý¥ò? Ÿ=ýïó"? ò“ 8'V?!?ûàƒ?!yÁ\¸–?!Ÿ‘ ùù?!µ"ÓÁ?!Â×]”`E?!ÑHTˆ¼?!îA! P,?"*|H!?"ö>$Ãj?#aHJt?#žû‹!=f?$ ÍŒ×Þ?$6!\ÝQS?$ œåŒ«’?#Œ^ñ艸?"Ò˜ªkO?!ÿØ"B"Ç?!7ððAfÈ? —¨géÀ]? 04ˆéUÌ? {¡g?Ä? }Îã–? [ €ÜJp? ºXÛ[cy?!Â)™Á ?!fg„ÿ?!w`KAnf?!A.g7ÏÎ? ËÚÌ BÀ? 6—™®hì?W4úš~?™ïyfrb?K˜—t?NiÂMþ?n±sð),?‚gA+v6?„šþ(ÙQ?”Ó©"I?Ûn¼r?t¼tF@Û? ,†k Ôí? ±£'“ð?!.AÛŠ‡?!…â’X¼?!Ÿçj¬(?!lÐ ¨? ðAL¿Mà? =øbÛé?óÐ^†’X?™tM¤¸ˆ?ª{Ô®·l?; @øÌ8?1?o„+6?Qšš¡ùG?Wj[‡N? ;Ö•”?^U"ÂæY?\¡s££ó?88QQ1?,nZa¨©?jH\H?¦}¢?Ëê O?8 .p9?‘.ü¸?üabJ,?{¾¿Ù'”?ÕÆÍ3m?×ôËr|?¡ŒSPÒ?Nž¯Òkx?³×òô7?µý2¥”?SÐÞð¿?¢–“,±?é‡H"V?ÙšbU š?l̃¢?ZŠ£b¯€?ð°· ü?Ê€hK¢ò?ܦ3K)è? ¯ ~ ?>‚-O¨^?S±ìÓ¿n?< š=Ó¯?ñ Ñu¯?t¶¨´}y?ÏlÑÏ@,?ÙjÖp?Dˆ¯ýÝ?„è>79?àØ]G„?d^Ùán??å—kÍ®?ð±'V?û;šle¾?;«24}?°Aä?HùŠ„‡?ÜÐXJ»W?:rSÄõº?BØ£Aš÷?ý©Â²|È?—+g x¥?H}ï€ës?; Dr‹?z Â$v&?ô·¯uÇà?‹”G?°?ƦÑók?zUW¤ö?,ö5?M†mäç&?Ëåi¾ôö?A´ëzgq?óf¤Òµ?‚Ú~’—?šw\¨¬L?d?ÊþÙN?,& R‹Ä?½„µ.oË?P›õÊ7? BZ l&?ß•œê?«ˆ¯77?¦?ÛØ?\ç¤ûx? ʉ—ðb? ÕSOåÇ ? —¡#¬ež? uÇ? ÝtÇMW?Ùè¶"Lä?–ºM¦í?±ŠAëI¸?à‰,³;B? yNpj? }Y ÃÝ?þ.QYl?º'¾|?Oš*AL»?\IÆøÏ@>ýx Œ>Ф>úyxŒWY>÷‚¾j;ïX>ô£¬âoš>ò'ìu#CÕ>ðm^baX>ïvhtÅ\8>ð,·|qóR>ñ¹h²¶ë >ôM…æ—k>÷ç¾þ:0«>üšgî?2ßΰ?ƒ%ø@/?æAF'b? ÜjP„Ãg? ë5U´^? Ô*z“ n? ²nØvî? ìú#ÇÏ? õ•ä? w íà(X?ënKPŽR?G¶ ¾Ñ4?ï`ªÄ.4?ÅÀ“sŠ?¤¾V’X}?\—!#Ü?³Î¡ó‘Ê?tº7P;?ˆu(ù,ã? Øk‡ô^?V—Kà”Ö?Æ„â?°ä?¥¢uûÄ?Æ}Ç?¸Ï³9ý.?n//E?dè©Ùq?4g³Úµ?J'rU¨?ï3›dü?E}­‹F¾?ŒµÓžÁ¬?ÝgݯÂÍ?-ññj'r?€m¶=6?ßZ†òL?Sýg©ì´?áeÞàT?ybá#?Û9}þ?RÉ hMš?Yqbö ?#EzÑ?“¥=»p? TK=íà? ¸ÏYä?pM…]›m?x´|ÿ½^?£$a«1ù?ј¥­M¿?íôÅ5êä?ð]ô¥BÞ?Üg›äe?»¡/ˆV=?›«´ YV?Žö•æÄ-?¨‹&µâ0?ðÏRåŽ?[ÿã¢ú?Ëå§e5?BFmæš??O\ùãd?2ºå>8? 8qDˆÕ?ä6¦™h‡?¿Ö½„ãÏ?—C°H:?XN£Ð?ô'5¯Nˆ?iÝð£Â?ÉÞloî?2–4·º?È '3?¬hùF|?ù&BL#û?¹o¥UAË?äþ²;?]ãR$ !?÷.MF•°?‚€£Ë/b?݉Ôûg?õà›Ê;?¿Ôß(ä?<`?UF?[µrð¸?ÊjzÐ?¤=…<?ÇÊz€R¤?àEÿ í€?ð4î®Á? Ö¼ß?e?HûHDaØ?¿Ì6Çg?‚î  ?¡£¸§t?†—a}½?˜°FnÛ¸?/}1Tº?¢UzõñÖ?Ý‰Ž²7À?å\–¹›À?ÌÇÿqˆ?¥òmƒj?q'›t´?'ÒûˆÖ±?Á²í£å?Hâ½.Ž´?Ý1)¿™m?©¨å¼qp?ÏÜœƒ[_?WOŠ`T?'ÃG4šµ?«§…÷?÷€Ô¬˜?¬Âµ>Ì?-`¨—?72rs_?¶Í\°.b?Ù9ô˜ù´?ì ?ßEÚ?îòy{V?åÀ€´Á?ߎ?È:ò?öUŽ@Ö?D¢rƵ?ÖB´w´?œ«ÜýÂ? 7šN? ‰òX Ï? ¯]¹˜#ð? žÂSûÃ? d9‰Õý? P¥ ?âõ#x@?ðçõ[m°? 7‹óб? ™FÆë ? þ–:Ñ0?!K˜éºe¿?!u”·¿Ž?!‚‘{ói?!âXA*?!z:á(à+?!{ÚµWF?!dz|†?!ÀB0Wp?" êÛü|?"ƒ¤Ñ‘ˆb?"ùê®i^Æ?#VŽ0¤Ý_?#z¦ݺ?#SûH¹~?"àÿ"¼ø?"4¤‰–~?!lå½Ã? ªÖF¼„„? ò1»—j?T¥‡o|G?~Àý«¼?R†d3Þ±? ¶5«l›? }Õ­ñi?!ªKÕþ?!wŽZwìÍ?!°ð¿±ê?!“…ã~¿?!A@}Y;? ¹jåÊò? 1ØY5 ô?¡köÀ¼Y?K:„ô8?J—v€yÜ?i¼ ðýR?xÐSTˆ?jÈnuCÌ?Yo¾\,Ï?pŠŽjá?Îc4/n? :S0É? ¡7þ?! àìq?!EÀ—¤uÎ?!SVCÞÉ?!)ËË!? ©ÂW-âã? ‡óèI?•\“^e=?E¦¶ê±?P|Âtß?Ë,W¤#?¡h[·Ê ? ¥¸œ¯?Š¿I!T¬?2ôN‹dD?ˆhÑWú.?ž@ÿš?¡5¤°×?ÆŽK¡?6ÓÓþ4o?q¤E?# uM?^ {Þ²²?¼ø’_?"÷ÿpvÃ?˜Ÿì=?( !:S©?ÖùièÕ³?•,ðÈxä?@@n‡i?°Àö……?Çó(¼¸?‚&ó–?ï_m¿?-Gf€p?]|ïrT¡?›e“¤ ò?úëƒà*:?ˆBl¹‹b?Fjpî`ô?.8É•W?.üNg¥Ë?3ÌŽ\¾ ?)¼*Aõø?ÆõB÷?¿¹ƒÉ ?ZVçPî?ׯþœ‘|?>Ìk%$?šˆ•ö-?ùVØ6Å5?idÁÖØ/?ônª•æ?ž¥Ý-î+?k/3õM?ašWX¨ò?ŽÁP\«?ø9Ï’Lî?ŒºOIú?@.Ò?wr@Í?p­²ÿ—Ã?¥íýL?…h–!?H]K3Ó?Ïj)‹eR?7„0-©¦?Êþɲæô?õ€b]?-¯®$?âàüI“‹?¢2|ô!%?1Õ!P¤?r'šã~?eŒCe5V?¨,5K? ´ålâ!?S¨®ö?JâMi¬?‡‘qm?ÅÝ‘¼F? Òr±‘?RíÏB”ÿ?—ÎR¸?½|©É?w’ p? ‘âýI—(? 3þî†1ú? ^ãˆ|N=? ðø_T?°ÐXWÓ^?dë‡ãm?ÌçxóÂ?¥­Oæà?¸,†Aì¤? ó:,ŒH&? ƒ›ÅVa ?ÌÅ;M;ÿ?>íÈf?"ËüNº?{ù¢¾ò?KiÖ“4>ýTž·èK>ú&—ú6>ö°³ðôà>óV«I •í>𓨆`׌>í½CÙù>ìC};‹`>íC_M‘GY>ð:´Õ”‰>òéû½7M\>öºù"Ê$>û«£§Ãi¹?ÂW aŠ?Ý\&ó!?¾Ñhmš?üìÁ ›ô? V^=Ç_Œ? ÍyÄ1`˜? ¤"QÇ? ;’ôÞ? í~K£j?,â¡](?cª×Nyš?Ð V}º¥?j4 ·=J?_Ž/ü?Ê^BÃ÷?0ÑÜYGh?ÄúGœ?Iùæº1Ð?棊n?1ßGMʆ?uBŽð®?T•r ?˜R­âhf?A©™6§«?ÐÈ:õ?õË!°„?ËpQ «¦?«ã€—¾¿?­æy#‚?Ûü¢f?+1ƒ W?Œ3¢0+7?î:tt?Kû¹Ú£8?¬o0cy?4€ªœ?§õbßÝC?F66¼Õn?Þ÷³™?HýB·6ë?eóÔúÕD?*ïeR?¬2;CeH?¯_‚M?˜8ðÁÃ?SG+aàþ?Hßÿ^DT?`öbjp?uÞ˜Öã4?o (}ê?D®òÌ/Æ?ü’`„ÀHE?ÊGEj?:Cwµ)ö?ØáqZ?pn?z‰V?ÐrËÂdÜ?áG÷«î?¬“uäåø?SÓéEˆg?û=í…`?µ€ï®9Ô?•)÷q´?K½Š$\?3„ðN?æEÏ‘vÂ?ß8?V{?AÚ‰?¨‹I!‹=?vËÜ®£?dw * Â?IÅ<±t?@KâêÉ?’Ö}ím]?í©zÅ?%ÔçñÕ$?GX¸Ìpä?Vìâ0€?Sª£™?=Ë&•ŒÈ?ÎÛàbg? ~8¹ ?›õ`TÄ?a^µn¤Q?ÓŸ}ñ‹?U@ƒ™ûp?»g¬ ôA?ásî–ð¶?½ ƒº¿~?gíıµl?=U*a?àz Új?ucw·ÓÚ? Ÿã°x“? šhÊ„D?! ìp +?!QLÜCÃ?!hι!Á?!\V,¿«A?!@‹7t\?!&*r ƒ$?!'í—9?!$(¹2?!J¾9µ?!Äß·fž?!íbâ€: ?"Pä+ùq?"Ÿ®qõ?"¾àYc2†?"œrñ’cl?"4ïŒá$"?!”ânï? Õõ¯f$? á¦&úb?õ†[w1w?,Ì ³óó?ð¬Çñ¬t?E‘¶þ»C?y@Ì? (• ‡=? Ó«¸gU?!jží\Ì.?!Æ}Y Ÿ?!Î<Ëä?e?!ƒN>à?!E°†CG? yߊÎTö? ¿Sï:¨?ÆýT;??Áowš¸¨?âKÊvÒ?ö*ò* ?èÄ–›F?Ê3ÇO†?ÂKH޽s?ïÑÏÍ@? +¸yaµF? qkcý²x? ¶ Õ“Ù? åڌ͠? ðo Fe? ʆɉ? p»h|Eý?ÕÃQÍT?š²çÈØ?e¶Ò³(]?kV·ï*?Ä’&H¤Ò?hn{Â?1XÜi—?ï6§tv ?|Èïö/)?Ï;ua0?ú‰`xM?(_z¡ ê?…¦§«â·?0ûYö?+¶;€„Ž?esM?½~vr6?D¼ç„?u²®™9?Ó÷ib}?FšÖ´ ž?×âk:V?€î©ðÉ¥?(/|•Ž8?©†ÓšxÄ?å(B²&?ÌFè«»Æ?eÝ í?ÊÅDÎp?‚åN"3?dÏ)¯t5?Åä “®p?C-f9æ?ßÁÀ7¹?˜ÞmqÄ?e¿_Á>?:šap? |ˆ £?Ô£&Fê?Ÿ†¥?;YÍ Óµ?Õù–ñÅ¥?_^!ncÂ?ÛËîâ¾ß?T#C¥ï?Ó@ßKkL?a¼.çÅM?ðÁ= ì?ÃhZ¢?¨ç*6„Z?ÆÌ²—ææ?$‚r­?¯â·\»«?9Rµ1@«?…ª‰ÉR¬?nj¯cm_?ø&‘ÌSw?PÔeZ?´Ý ß?Vª@?O([0¥q?Ÿ€øv?3$§P|?êjA(#?“©q)pÜ?ûê7ƒv?ü}H0Aù?››%Gœl?º2ðÔ¥?Žžuáƒb?mÎðZSæ?¼Á’-F?_=ÞBŒ?(r g?ª]ýsƒÄ?í¹W˜ÿ‘?Ø8k 8?s]îòò‹?Ïþï”f×?nal-?bCi?9ŽH2®´?ký׎ªŸ?»1qL2'?"ÈÖ#c­?9“žMƒ?Z€~¤ÔÀ? ÈžÈõçÞ? §p_Ç? þµØ½Þ§?­73>rn?warÍŠ?lܽà?@ü FŠý?>Z›’o™?ñL]¹ g?¾j)À‡þ? Û{ðX£? rA!?â7¥^(r?˜§ŒR?×5œ²„Ó?˜ŠIOŠ_?”é•.1Â?rŸ_kQK>ýñR6ÛT>úQœîGÈÎ>öpgU*‡9>òÞE ÄO>ðØ«Á-†>ì¤rç3Q>ëUÒÔÌ‹>ì.ãOäÒ>ï)ûr'>ò(q5…>õÑúÿ;>úo_G(ç0>ÿ¤QQ÷°â?nà—,w?· ¨Éè ?ke7aB?sÈ"5bŽ?è³ß)É?Tjú?üqy~$?VDz¾Èš?Z§²¡?r³“šS3?·v|?1*ÊhŠÁ?É^ÿ ?E~ˆ3æ?Y[ §Ö?Ì5§zu?œˆ»ò*? ¤?oÇߤ”?/ªxmê?p—™©É?Üe„î? ¼?ðNÚÊP?ÍhÈ•@˜?©a7Ô?žÆÇ»çÞ?¿ë1ã;þ? 6ð@1v?n]æl 9?Òj;¤?)”f¿"?w=yô?Í'JÑç??>‹ä$­T?ÎÕóIí§?ihÈK.f?æY¹Û ?²níö(?üj),,^?N‚eZ2y?~ÇÞŸ›?%xaðW´? (®”? šº$ãQ?! £g†i6?!MÂUÀO×?!Ur5È?!4IŒP÷?!pýnH6? ÖjùÉ8g? ½jÄXw¢? ¾&Ÿº›? ÛÈð[øƒ?!ùó¯ûy?!eæAúR8?!»¼—"Ò?"úáfÔé?"‡R…a?"»Véîæ?!¦#aÏú’?! »H5!? _yHS%•?NÞ!D£?? ƒÁ¶?J/›«iÈ? ¸0ÓÝô?mƒ(òS?]=½›Û?¸Þ Žt? Ÿ£Pª¥î?!M˜ø¾NÂ?!»Ýá?!Ï0À;6?!ˆ™_Bd¼?!Éuí·£? yÅ㓆? «ÑŽ.?°öãŸ&?¨wi Õ†?УèÅÒÕ?õŒq»ZF?üÙè°?îÏÔ«L?ä¥IàÓn?ùtŸÅ·z? fÏà”Ð? B5œU×? lyÂm£? Ž1¡ò? ›àÓÈkK? ¶ QĆ? Z޲sXœ?ÿ´jõáš? rÐ1/m?ý©â@†¾?aªsèæ?8Ô_ó»È?¥i ÃÆ?2îe!Ä?»­‹“ ˜?&Rñµ ?l ú¬[?¡¼Ïb‡?î,ƒÕ}?w¿G¼m?Sb®?{‚àj–?Ô§@}ß?=¹ðW-?›óLµ"Ã?æ¹ôB?('F3Æ?taX úº?Ýö~=ãW?i£ûÏÐ? dæ›ö?ž¾’# ?:š´Ð?%³Ó˜Ö#?öªÓÚ?†Å²¤Æ¬?î¨>z?FX?ô™lé•?FÌÇZ!€?Í.Ô¾ç?£ëØT7?Ò¬Oy6?P>¢-…E?Xæ§(?·ßeOói?<‹lï K?d ›¯ Þ?'Û˜û+0?®±¶'À?<êÜß·ð?n,èª?SNWutà?çÝ+±£p?œ_BKâx?1Ámâõº?x– DrÅ?[ôn¼ó„?ß¾ˆ‹?¹åP?ÏŠAÄ? Øøµ?Š—`#Æ?>Wå×Ä%?5 Øÿ½ì?Dž4¶‡? žo¡&,? OùÍÏñÜ? uD¼=–Œ?WX%_o?4™ñ°c²?6Ì[éY…?¹rÞ)Þ?ßùí`+?Œ¨øß?Â},Ð1¢?ÞdÄ8?ý«uwº?TÝ5HL?6 ¦ T>ÿ-¢I¿®>ûHÖ% E>÷SàÁ›<>óÕØQq`•>ñ"€+‰…Ð>‰'8m>íý,6¿ö>í\]7Q>ï‘—lÜ>ñßõâÙÈ>ôí9ÕÁnE>øÉnuâQ>ý Ò²P»•?½­D²M?¬êÉž¯x?/iwüÃY?4Ø)º`¹?Ê.;×L8Ò4?ºwžoè?ä:Á¡Î?ÈC²[ND?ã4}µñ??hö?Ù6+å»?«Äªôȼ?¬Ë·$¥?Êã^Mó?íô'/ K?þíŒ#©?ñ{tfÇÀ?ÄæîŒ€Ý?y…àtü? lQªæi? [tÑ%? {8noJ?‚ ,OIú?‚rI÷Y??|³Q½?æöH*LØ?¦‡Ê)©‡?¥\²¹Rh?°é}Bå?Í@D¢“5?j¥RØW?–âÊt?FQ s&?×oŸÝ'.?©qùV?ÝF­€?M ù0?—ÞÿI|­?üØQP5%?§Œ˜4µŽ? s€Es”?Д…•Þ?Þ’dl¨?Y‹ݨ?›îÅL8?ï˜xc]ð?if¾ 3?NXTPþ?×<,Ga¶?¤”¢>?](˜¬×»?ôMôN“q?ige›³2?•ÞuÆx?<¢uE?!ÛŸøx?ØØ!a?ÓSAAáà?eîÛíh•?á†Ò´²?e+ùÕ×ì? ñ˜ïþ?ç]Üg*¤?/*6?t/â8²?/™ȺÎ?F¼ M”§?^€UÜ?–SÊ™_G?v·Ž?ã+1×Üî?öþ€hŽ»? ‹5¹ÃÓR? ýð{‡P?!:ïDë?!:_ç‹ãq?!Àá#;_? ÑÞRÐü? ™' á ? v_#º«6? oЩ¾mÈ? ‡a4N1W? ºùCcÀ?!ûEM*?!Q%Àøš?!‘QnÝkã?!®ÊhÌ´?!™–æéBù?!K‰ÅpÔ? ȼ(ð±? $^€?îd ®„?¿’nQOÍ?ñ¶ªéx2?­+[pl?c®ÎýV?ôG„Sñ0?TÑ,8G? q[Üò?! é0Ÿij?!È—jú?!œ×ü9O?!P°«HWN? ÉŠul¡? 7ê­3ÍÆ?¸r2V ?êþz%?ž =t?N2« f?ÁÚ§›?¿Lða¿Z?ÙsV¼³Z?먅ƒÛ.? "]šk? û”u\? )¨2 þ?ÿÒ'Å,?"ú=ªn ?fÌIL?ÁÿÌTá?œq…¸?aë…àôÞ?Ó^«”?¼uB˜Yd? úÚuÙÉ?¨˜›Óû ?°|v ?àèNDŸ>?S¼$žš?Í]‹Vö¢?/²¬ uP?nç¥ȸ?”(>ßô–?¶Í±Y)?ñ™+â ?Va&hÍ?䧦å¨r?…ä¸3w?×z„?l_ϰÕr?v¶¤+y ?3årE0ä?´Ì4ˆª?zFJ’?Zäöµá¯?¦XÚ_¶D?ÿ.ÜAT?mžù?ñkÜI„ˆ?ˆÆnËý?.?ÅãZ´?Ý»B¥˜‰?’Ìó Ó?Fûl·~,?ñá²¹V?Œ1í"Žö?r #?Ô˜ Ä;?ob*&?{¿Þ°ìØ?„òÏv£?¡ëÑÖ?iÀõ»Y ?j)Þßþb?¨£vº¶?ê»òˆQ?~6¯è×?¶èíîë,ç©?„díæf}?2aþZb§?Å¥ÿÞÀè? õ3a?â]­ÃÂe?MŠ«î’?^ú赜2?=â¿u?Î Oª8? ß¼BoB?}¬ë\? cò^j ? ½Jäky? €öKÑÏ? ½è Ìüý? Ë”¹«æ?ð¨©ó\?WBy-?//$?6?Èü93°­?zT$J?׉PeÌ?Ué•4Ö?Œ:ôÚP?-ááÕ°? ˆjN¬&? ÜMO¨~?b”p&hÁ?ƒi•Qo˜?x• v"”?*sE;»l?7¡F>?#zrãŽF?Žê‡÷(`?\¡¥?«ŸÌõ>ý€­÷lFÈ>ùº!Ðêú>öbLña–>ó®ËÿG®>ñ²ÛÂØŒ>ðxÃ.>>ð-,Wá>ðh0ܪ8„>ñ¹,¾Šš¶>ô/=çJ¯>÷C‘iñ“w>û%ºYÉ&>ÿ8Æñ”“I?{ês˜v?ûœ.à»?þžŸ3®J?~¼9ª¤?nøõ†Mb?‡ê[ÇÂ?t8z€ü? öD5¸?$nq::?J*½Ÿ?G\è)?Þû ±É?õ¬” hó?gÕ¶„¹¸?X;ÝSK¬?#/ÿrÒv?-vŠÔ%°?²QÉÐJ—?«Laÿ†?Þíê™ ?< Pó?÷ž#;’¤?¹“xvà?pâ—é¡Ö?H’ýéU?UÜ¥½Ç?‰ëYx-d?Äaåí?ãë±Õ ø?à{åa"n?ÏÜö.Õ?ÖÁ‡"¢?vâ\?xE‰a5,?ò¾‹­?T̘òüZ?sÞiâ?lãÈñ±Ú?1BI÷H?ì6Æ*º¥?³úIk?‡[HËõd?MÄ»^¤p?ç,#R?@UQÈðº?ai5îõ?is9àl“?‡|›„žš?è^™ò0?¬ýkÜ@û?àÒöû£ª?s¾£-{?;LÊݘ’?$vÝ»Ô?“bðŠ]1?ât§|j?ý,cBj?@T„ެ?%ÜKÝÓ7?b3´-Tµ?°P#>c€?÷æÖ}?(ö¯Ñ±º?G&{?ñ?f´Ü/—F?ž%™Ô3?ù9PÀ@L?vñ­êô–?Œ×§æ ?Á³«2/E?ˆ¦ÆŸƒ–?`>9\f½?=IÉh?) 2wT?Ø†Š½~?Ÿà3ï®? ž/ÚNs? X Ôà5 ? r‰xÚ? Wù7=? â^(ä ?èð^,?‰bxÉS=?ÊÓâ°Ê?È×òÓf?ÃmtÛÁ?$«Yå?÷Ú­G/è?7˜z„b?Äú: ð‚?lÙÂÐ0?ñG~ôP?¨of]?Ûˆ2œiH?>jãç™õ?}9[öê?Û B™|ú?‰¹â±½…?—m™Š?î …Ë ?efÿŠ.??ÛdÍjùd?Dtÿ÷‰?«€â9ëO?#Ýè²Çú?·é?àl?`•ÝKž? úׯ?£–¼—Ú?$‰’Y€:?’,ÖÖ2?òh±d'6?AJO‡‚ ?m¶ü9¢v?brÑô™¶?Ú&?~ÂPªUÕeu?åÊ ]-ì?‡Û§ÝK?ãÍOBG?f÷™? ?«à¿íè? Û’+B9À?!6–Ù°¼"?!8õ­Ž? ãòÓ‡7? ZV 3b?’¿ç–hÏ?´ókå.?FÆCæ• ?DŸVƒ "?Š—=ɤt?í©VæßE?N‚籚?ŸùØãÿœ?á\¯:? ŸëõÜü? QE9Õ¼? ,øS0? :‡: bò? L½/üj? fw©†? ‚6+,§H? ‘ø§Có? …ºÓïšu? T¸5N•? ËÃÏ@?;ß­üù’?kõ·AŽ?§ he.@?ëݨۢ?'M®÷¢¨?JbÆ D?VE¤q™–?c޾õþø?›9çà/Ü?$óJŠyâ?@¨½å¢?^Íw•ëÏ?àŠÒ|5?jÐŽ ~?Ömˆ[7?êš,G?ñuUDL?×”þ¯?øÜ§ƒä?G8ùƒ%×?±ÂEúÛ?J¡ºÖìÌ?îxº|Ú4?pOvð%V?¬g..?’À„ f?+8¦Çuö?‰¿}åüR?Çý-¬Ž4?ÿ+ô 8{?CÙà‘^‡?¢ÂBû²à?ç22:N?³ð©ÈYÊ?Zc Åèç? ©?š1?¼æLŽÐ¬?h\¯–f˜?¡)ð?Œ°° ü®? ä ŽF?kâ±ôn?ÔP¸sÿ?D‹n^[“?ÄŒ•÷8Š?][í^q¥?¯üN$j? Seê¼?3ˆ±?ƒÆ”?Ú{ŠýòM? ®~—;°?þÓ9¾%Ä?¨5Õ ?šYO ?|7¢8çø?ç8w?{åñ$%Ÿ?M¾9Vè?iá€}z˜?Ìr†£”V?[Åžzdß?íj&Ôn?VRè˜?3ZyRŽ?sw"’ç?Z+‘Gs?bì#‚õ?¬d§ÕdS?4¦F9?Õ×÷9!Å?[¿œà2È?’;eX ?Y.®Ú~?¬FtÓî¾?¢QûrY&?g:úEŽj?0:ýƒ¥?WUñyá? ævN¨˜? Ð3Žš{? ÆÓâ–²-? öŸHgÊà? °¶eØa¨? ÂÔåV¯?÷ÏŽRt?ß–9G?lx1é?¸\zøkI?âk{7?’¯#©ý5gxãNp>ùäÍ! >öûþOŽVš>ôŽ7©Cj>ò§l=±¬>ñbúñf>ðöuûàn­>ñ«Ø¢úq>ó±r¢Ô4>öóÎ’¯>û Üv ÀK>ÿNØGÞ‚Ø?Š{EÎVr?êÔfÒÑ?¢jÇå1Q?áñ¸y"j?\a¾Râ?šY 3Fž?Üþ¦Õ?ö-t:ÕŒ?{ˆ¨ ?`{r.?`?‡súW?ß4µ?¡Ž!OÝ®?H¬˜U¶?•²?’ö-æ«ó?€×ƒ^§?$— +cž?æÚØb}:?Vð6,Ä?¤¿s¶‚?6(.”?É“Ätü8?ç…ÅJò?Xh»ü5t?õl k³ò?˜W!}ž?-SNŹ?µ÷9?ñ?=§^p?ÉøîŠ)?S“bzáz?ÌOK]‰€?,O ‚`?zH›È?Æ‹¶ $´?—y?qw5”½?«8;ÛC~?¨ØèaIJ?SæBâHû?­[àIw£?̶8:ö?Ø{£cþ&?ú”¶æ®¨?Uµ2àT?üî]7)U?ð=Úƒé[?$°Tgf?sï°5,S?ඃ–_Ê?h2Xà§?§vžš?þÕcª‚? §V(4)? àó‚£? †¶z;‚ ? Ïú‚ õÜ? 径637Ь? ®ã ÇÆØ? Y$-Ù—›?¬[¼Š? ç¤98?Í MÌc?f­y½L?i¡¥Ôá,?¼À ­?:”>“­^?Çmoމ?M™í¸?ÂWgÆ? þ Ïw ? .„ü€Ò? AݾÜ÷l? Oç_ó`e? aØ{ }>? }Á«“c‘?  èòj¾^? ¿„ªb*¬? Ê‘#î_? ¸0V`? ˆ§£Ò ? Dͯñîv?îÆ‡²>_?K»);Ò{?›T¸ –‘?Í´tä¬?Ö˜ï¯É'?º×:L¶?—q7E\?›žYeÂu?÷kºÿ;Ü?ÆÉçLû6?G€|s?ŠWú#ø¶?"++̳Ü?˜|\rU?ÎŒŸì/?À ÉÂÞÁ?…É8¤@?Gø© .?1§Lô¹˜?_Ù`¦ûè?Ón¸Ÿ‡?oB:üÍ$?tv.ÍÖ?a áS¢?jà ë#Ï?ý™±T×?„™56?ÁIë)þ?ò¡$„0?4IŠ»H?–æ<"ά?•JÎL}?Á¹Š?u`yu]“?-†v"ÀE?ÝYx61h?z wä ?ÿS^©Ap?lêMÕ¸?Ì2`–ã?)«‹ßòž?Þœ×m¿?¾Že’ä?”Cò•á?7hx¤(?öºÆ`Ê?Û|­_ð?éëßÞõØ?ïÍú?Y|LEfæ?‡¨KËð?‰)j? .?RfþO³±?åŒ €À?Qó:‘µ?®:Hh•?`n._´?Kx4¼?ð ylE–?1 ½ë?ø Ž â?ƒ‰Á¢?|fÉäO?kNÝwG0?©èjÅwÜ?טòÿº?®x☠?pÁ¸‰4?óѬÅ…?Ð(fÓa?é|@/Ò?ªE–>?²¨QŸl,?òYë±A×?Úm>“þ{?™²jV¯G?Ò¹ `Â? ôxªÒçè? Ë3ø#? SNö®ÿ‡? m7ù9w`? @B{¼? ²ìA ?Ói­5Ô?ƒÙ–{·h?µç.€O?¿7ÑÔø“?cƒ"ï¯ ?ƒS6 …?!çqÒÉ?UáÉùê?8 !ñ`^?ºæåMU? ¾'§À~þ? Ë òpÍÜ?LXiâº?¥ ޵h?¦¨¾Óö?Oj·>qÑ?a7õw?öÛ¡²Dµ?kö/€ý?HÌÀ+¶`?‹×“iÛÛ?T?ÙóÚ*?ËK$5?gHèÏé?Uhº‚:>ý:…Á.M‹>ùò=ÔÒþ>öáÙæ´>ô0t_³ö>ò5ú‰ÿ±>ñnêK$à>òH‹›•>ôßâö@°ê>øÛZbÌ>ý}¿¤€dà?ð­1#‡^?ž<Dn?„b«€gû?zB*éåp?òUóú¦?02¨¥}j?¥4:‹êÔ?ªžUb§?Uþ†ç š?q1²¿?“ñ­¸?Q΄k)Ú?t`Y‰¾7? rc¬€?oà ÈÄÔ?ppóe?ă1Íô?—ÆìÃô¶?Pbåôî†?Þöˆ€{?ÿ ÝËo?§s°Æ-f?}³æÄÆ?kǮʭ¦?¨XDìº?ã …ž@t?ÙRƒHf?¹Îýj?fôâ gÌ?ð9Ra¹X?~ðç+=$?>ˆ’?£Þ?C¾ŸÄë?…œ'º»"?ç¾ÀÀ˜b?LãÍv À?¢ø3Aà?çRi1?  ýçÕ"?O0ø“b?fPƒbpÖ?JX̃Ñ`?Ý©¶~z?ØÁó ?ú¾·’óv?ÁÃÏq†ö?¥Nó’ê?ÞeùBKÐ?”Îxê?º³v«»?@ƒâb7G?íOM®”?Œ^‘û?ú3 4][?1÷äÓ»?Œ=hê”? ço[—?Â,3„q?‹4‡ÔwŒ?O,ª#¡?y4¼—í?«òBî’²?;­°¨5J?¦É»b®d?â=Oý;?ó]Ôšzm?ô1´n”½?¯w”!?>Œìn^?‘pzñ„?Ùc] öN?è5š “u?EÄ·éM?óó9î?þKÁðÕ?äDZA¹f?ÔmSÓ„t?÷`Ÿ‰1?j ¡³¸?7UTnl?S°=Ý2ì?¨0Ѻiï?wÉ_»?²ñMΙ?f²2÷tT?EœS6Ô?J9 k¶?ZøüQ¤? 'öR4È? áÔ¢Ù? ±KPDè? ¸Eº´µ»? ¢á:«õþ? ƒHø? l»^’? m¼èËuò? S¼x a? Ñ3¬¦î?!#BYàr?!rSâjŒÎ?!¬AzP ?!Ä®*-D?!¹Üìðl?!ly†Ã?!OÐ×x$6? ýò=D#? žP¦‡ €? 5õ.Ë?›DcOÜ ?î&ŽóX?ŠŒu`.•?‹éÃ%j?ìÉ,LÜZ?‰d‘.´? ±9E&¿? 6_•C¯? #„fª?­ù`÷ë$?ʽyáó.?ÝGñß?#'yQ‰?Â2$åéÆ?ÂXYÏ^?s~l¾?›$ ,¾ª?>² ¯4ñ?çÔ§UÊ­?„û DX ? Rgz? 5s§W{Î? V¾Ù5^Ï? nCÞ3¨? „ÀErJ•?  è¶÷Sd? ÂÔæº9? ãØ§Ð¹? ú°5J{?!:>’»? ö¤£Íñ? ÞЈN†r? ¼ˆ Í}1? Ô̓? KpÐÒPN?×Ú°÷½?Ô“fgÍ?”P­”â?;ЦÄ?§¢±?÷Úäí?¿på‘mÃ?á³>uÁ?aN‘Àµ(?ÿKX´Nª?zþ•€UŠ?§µvô?ydÖ'EÅ?7®Ö–?xœª^´Z? ˜…¦?á¤IȦx?¥¯?„MËï}?#Of:ÿ?yÆ<'2=?žzÝXY‡?káø˜ÑU?êë¦ÿd?7Á¨`~?vÞ•w#G?Èt¡ÙÞ??àÏØ?ÞÓšUp?›ìXÁDÈ?eå ô +?*CüÓNÿ?Ø™Ÿ«Q?f~´‚Q?у–Úžº?$ö#¬wX?rôIÚ°?Ψ4{6a?E'¢­?ÙV27ʶ?‡Nôà@?I=Ä^è?§á8Û?yÆS]?ü_ui=?½pä®ô?6„yî6M?\ƒ{êê?l29‡÷Ð?PE IC(?úÔ^ôñæ?jêô?ª}ží“2?°hù°?4(FfŽ´? 2ÌOá? áÏÔ7G? HÔÐûç]??Ñ{ÚKê?}xú Z?^1þ„æ~?êaYÔ:M?cXµ3nj?Õ TÜ“A?L\t‹ n?Ŷµ¥5Y?.ë¾NÌ?j‰Ò£¹?ZëŽë´Û?í2â±?!ô$Ù? ‹òm±7?¾äCï&? ™©jÿ®? Úšßjú? A†c½—? 1Äb¤”? °ÝPg`œ?  ]™.X? ö2¥%?ÅãÞRc?ýÎpö“?&ìÛTÿ¢?%"}£Çá?Ã63+?å}gYšK?ž$+§é?Ì}™Ëì¢?´Òtý ?X¶™0? ¦6פ.®? ¡eJ?c Í0?_îkê&?µ02½‹Æ?÷çw ?ʘÉ$Ï÷?¸ÇϪµ??aI;‹ËD?®¼Pæ?:ÕÝf÷?oMUnð?Fa­Þ?ײtï9?8xÑzt?{Î V>ÿRÒO‹ ¦>ûùr­Î°>÷ÝÝaI>ô­?ÓK“>ò¬hOD>ò€=½"ÿ6>ôsœ¨ÆZQ>ø?çB$©B>ýýý>Ü?÷*#Ö¥R?ß‚z0Ú?êJ­zD~?sf¾7Ïê?2¾¨"?rK-Ô¯?$Æ+²y?n -UÏ-?^ ‹ìà?½Tl÷ÖÎ?$¢¬Ñð?+g ÐĪ?–²JZiÝ?tuæïì?ŒïX}˜?ãá8Ž?*ØZžøæ?î5 ÙQù?è<8ö»P?°dŽ$ÛA?òÍÈ“·B?›!´» ±?Ú ¥eÊ?Åþ§`©?gvWÄÌ?‹‚=+í?ëÄb>®t?¹‰ÂÕB?Vª }¸Ÿ?ÈDVP’?4  ¦?ÇÒÁ¬p¶? (U ©_?¾'ˆ…°¼?/$Ôu_?wwvŸ­?æ‰^,|?SÊqÛ-?»S ¿Þ?r{ðo8?`] &ß?oýñbß?)ük¯]O?}÷êóÿ{?x°´ari?EþÕ*v¡?$Éà(Vƒ?Q? °*?ïsõFÞH?µs7?b#·Ø,?㊰]„Î?V9ÿ}? ñÏæÚ?Ä m›f?Ö ˆ,^±?ñE³<¢¶?/QaZ+2?ŸCYØ×?D}œøý?÷ê þ?Ñó¼¥? ÄRݘ?,”B(p?)lp?ü £rXš?‘@5Zf ?äl?E4¸? …ŸOíP? ÁØ? (V¶L? Txq†Cl? •æÄMg–? äo©æ?!3‘E‡æ?!uj`±?!›Äÿ‡Wn?!œXj<Â?!qí®Ì´~?!™ ‘ß>?  Û…PÂ? •“Ã_Å?½¿Néûï?s-ŒÙB?V̉ôw.?…#Loôv?a•¯Ê?Ô¾ÆËnº?Øß€·61?ûöJ¬?$µìqÏß?:@ÿ’,?)C’÷\?íI€'“?—ø7ÿ‰?NÁ?7w± O?nžP²’†?õµØÉËM?¹ß‘p ü?Ÿ¸S}°Ÿ?ŽïŒ*Ùê?u?Á1J?@/iÿ„?×¢7—Æ? ™Ýø¯Ý? ýШh?Ïȶ“£E?tö¥Âê?@7ðË¿¬?Pæ°Û (?œuBkº?ó¦+`? ¿Gí?ê«;C?Qјë3Þ?`´\sMú?:a£‚F-? .ø…ù?JÙ€sü?>!¶QÍó?×µ³7•1?ÊT¿-D?“ˆvvÇ?jÁÕ뿇?öU±t ?¤é‡GEt?|ÙJê?xêñ–¬Å?‰÷÷†ˆ|?䬌)‹? 6ÙÆ;? „z±B¬? ­]ç‹L? · 9¢GB? ®½·k{K? §Ü4}tÝ? µ•|? ãí¾W=?!. b™Ó?!†„Jòáû?!ÕÛõÑ?" ZŠÝ¢?"ú•gøÄ?" ¤?Ç?!í°eeN?!É€Ÿ©9_?! 7Ú~Q”?!i±3êߨ?!Ž—Í“+? ·­@Hwx? Gâù}4â?È ÝOC?G9/‡¶Œ? ‚hÛ‰#?E‡© Ý?ˆ¦p&z?°ï6[Ñì?’O™>/u?³!½©é?j¡HÀÛ?¢rñ'?øPï yD?‘’-hÔ-?}`d¸u¦?¶*S^íš?*¶_3À?Æ/š‰ÅŠ?tÆÛ;”Y?$ànCÌ?ÆÚtáYî? 'Yîq ¦? \ ÆÛ/? ƒÀòb­ê? £´–? ÁO¬? Þ4 b»=? úz›M—ä?!Ÿ2 ÇZ?!,ÀìŒÓ?!Cã ¼‹?!Yt:=æ?!h: l²ü?!e^ì:V?!C2èª? õôŽ6èp? w8Ùí´?šŸÁ’S?m=5€?¦Ô m•8?‹²®ñR?÷‹D—p©?öæ:ã®?eFëÛÄÒ?ý„c‹Óâ?sL›`¦N?`Ì?7K|•B?‚êj?ŸKõ!ï?Êè..ŸÛ?;¿×²?@g}%ž?;æÕéñÄ?Ÿ1|¼*Æ?vñ´F??9³ôÁ¤?$û»„+m?Ç:Ô /ö?6ÒÔ_œÛ?—·¡k£? ù±\? ÂÑ€.ª?`˜‚!k?,V?ÅybÜh—?ÛóL—ïº?Ї2ñté? g,e›&? ½8t—Oê? ♳øtú? ÷™—˜‡? àù”?:T? XMvšò? òô/Ç?[ž‘aE?´Ïa&ê?ÂëÑ T?KÛ ßÄ?±ÜVR(@?ê ÷¿*@?è.OÞÉ?¢ŽY!õÓ?›" ?G”: oÓ?Lgˤ¶š?÷­~z? Ô›³£ ¢? µ°–´¬h? ZbiU[o? °,¢cIý? ‚âeG? ¥p5©? W ý?`Ä õäî?_mŸ³ W?hÜ|r?P/]ÿ?ë¾½\ñø?"ÒïɯÇ?ñx¨Ÿé?\Ô}ºoÃ?jàiº‡?%4L¬ž?IO‚ve? 1R”câÙ? {¦Çx×z?”:-ø}í?­áã¾8?¬•R?<ÿBis?õÕ…ª?†~ü­?¸·¦´Iµ?“hñ!±?2ò­=G?R=«³F@?EÀ?.‹8?ü)ž¤ÛZ?{$MÑU?Á¸@…Ã6>ÿŸóäš“>ûwÈ (U>÷Ž+ç­¶>ô² @ù5>ó·SÔL¯±>õD,Û>ø—=jO>ývžþôiÑ?CzL¯»½?P J d?rÞôÿè+?PóÞ0q6?½#· Q?Ï ¤ŒFÿ?ä‹n‡G?‘Iª€œð?Ù·½ žR?ƒÂxù‡|?+ÙÈé]?n6PiH?ä É>?‰Ž¨A:?äþÈ¥?Î_»„2?.ò=Y´?(+6?8oQ‘žp?/™5ëdÿ?•ÿKœ¦³?HïlšƒÙ?s¬Z¿=¨?s–vÙ ?¡T6På?#IÐs}ž?ãrµ{X?ªýD…úª?Lòk)û?Âo•`ë2?)Mk“ð«?¬Ü²å$?k¡7§Uˆ?mþËåþì?§,½?ä·ût¹?o1ó£µ?â’Š¼\4?YìqÖÞ?ÐÔ¸yÞ¦?8úÚ¹J4?ví*·Ž?f(;-?ñßÀfNÝ?%3X§? L`é÷ä?û cÐËá?%¬ ¾Þ*?±\¦®? {ËšZÙ?ÓÕ Bþ?7Ô|‘ü?^ƒgᮨ?‚í?’®?“¢kE?¡Gš¡~Û?Á €p)8?é~CF&?syxòV?“œx”¥?ù¨³6»p? asB±?6Å’Õ˜T?h]ýί?|š†óŠ? (Ø¥ÂN? hu)ö.V? }%}Yƒ? t트T? g݈Ö? j:dàë? ‹v·ös? Éæ9¢°÷?!“H_I?!fÌ…²pä?!¡À0lÑM?!¾TSäZð?!¸°ˆ8?!’ý“õ?!PŸù£)? òþÊL;? zÆxÜ?Ùæ6q³¹?¬`ð¤Ôp?ÔzÜ ?¦ F‡D?ü<–É’ ?Ž¿–#¾z?Q­>´ ?8ÐO<,?9 Wö9õ?E'~@@?Læ”K]÷?D<›¯ì?,ÂÁÛE?-¦HÆ?& 130m?lq#´,?ö׾ů¬?¿ð?cÛÔÔE¤?bÈpyh?á÷¦Šr;?ïAl=Ò?ºeGà=9?„FŽ÷Û?ŠéÂŽ°?óïrÜ/‘?ÈDa]óµ?í6•$ø?4F×Mê ?l ÐÈÜ?t/0ykÐ?@ð}ý÷}?à×A¥j2?pÊsç?†G5«?Í6¬Ôz°?¯ú‹ƒD?ª´ºNpõ?§"3?Š–-˜#:?>¨;Ô€Ë?¸íJ{µ?›fªg±?3Zëê?rÄâ8Õ?àÌåŽ ö? Õ'˜?€kÐÔ¥ò?¡Ãl^*®?Úöžª?ÿ2ÙÇ?8âÑ£‚?IÖî+‘d?OäÛúRŸ?YJñØà?k_«o¸?yˆO¨h¾?e{È$µÀ? "ær(?M~ៅÀ?/ر’É?¦dÏÜ? çEBë3¥? ­d‰†ê? fîíIÁ? E8RÚ®¤? 4RФ? ê9Ù‘;?ÕšKàF?¹ ª /?å ÈT?é!'ˆÆt?y¸=|?¿ÑΜÄm?º…«ö"?oólj/?íºÚ•¡=?C•¢`é?}›¸ž½?Y¸‘®‰? Ñ1§Iê? ¡µhhÉß? ²,øã? bc´G|? ÀÁJÝP–? ÃÂ+N^?ï“ð’A“?´9â±Â?Ò-ž?£õ00ؼ?„zAA‚W?VñËílÒ?ú¡C-8n?X"Hìä?b5JÛŸ?†6Yv?TýqŠÆ?0ð¾޲?¸&§–ѯ?9Á=‰¢´? Dˆ7 Ëc? ”]Eê[?ÂÁeë)?YœpígÒ?z X‰{^?Ä]‡_j?ðåˆä>?éš™ tò?´Ø:ÃÓÎ?^ÿKÍ?åÖCKVç?Cë¶Âõ?nëòùûÀ?[É)*NT?ûE¢ÉŸ´?Aâ™YÙ>þ|}RàôÝ>úbÂÚx¢›>÷3”£a_>õ†”íÊQC>öQ 6×;$>ùg/g”þ\>þ (˜Ñ“ê?ˆÍ"ìú5?yê¼)?ȧý½]?¸>âúw?­& Ç+ê?ljôt»?I°S¼èÐ?]ã­¤K?û¾Üå?äÜM£*–?½}ØB3??(>Ñ9Ïr?í8ªnOÖ?þèǸ†?áyÅÉ!?ļIz?+hÌ q?ò*§Ðú°?ÚæÓÐ? Çô`ô? Y®!,? ? K Õgn?8P+^ë?ª@EiM·?”­W—Fª?r„"Äøj?hºôOÅp?–¼.`w?0$A3c?Òs­2¾œ?Ý'ï1Mz?'…š—¼?®9µˆ³“?oY7f?f+šÖX?†ê[_Ï¢?½ˆ>*ûP?ïaýéë«? ~þB†¼.? æéZó?!(×>•?!J##VmÎ?!\— ø3?!w8GAb‚?!©ï!LÞP?!ôìŠÂC?"CéCl^V?"€ä+N•ì?"šçóÒ¥-?"•{Ÿž,?"…ÿmHª ?"†ó“Ç d?"¦”ާQà?"Ûmar´R?#PÂN;ì?#Þa¾ž?"»\‘úuR?"5Ô=˜øP?!‘…4ø–ö? ø nÕWÂ? ‹(#ÈEæ? X´óå’§? WâðÔbá? oYÞTÛv? €¿V»ž? qÈ*Ð? 8Hº\¿s?ºADÙô?çC_dê?$ê–]’Ô?“ËRä?A<ìV'?,ß«1}?Q¿ð†%Ò?ªéåÞ?23âs·?ÛŽ5m ?”6ÉÚX? #å—zÁ? rÜètÞ¼? ²Ò‹l+? à(óŸEÆ? þÛ±J³~?!ÞýÙ?!(®K3Î?!H“BY??!{{o_ì?!ÁC’$\\?"¯)ä?"Q-DrÜÅ?"qèõ1Ü?"ZξÔä?"ò¯§Þß?!ohV¯¸? °BWþ•?ϸft?x:z8ˆl?›“k ’(?Q8tEó?~ÊÍÿWN?à ;s(?#¬£èÎÈ?Yµg[¤?^†(œH?=í-,èõ?°ÚØp–?€mú¼}J? ”ð‘mË? Ë+–[G? ø $U‘-? i¯îVø??Ò”e?ATE§ä?!k½ÔB?ž1X’ä?$ÿ5€DŠ?ÅÔLë7?‚þ¯³?Hû)ü¼æ?ÿÍ:„²\?Œ­¡N’?×À$öÖ?Çkm’û?B.IõJ7?;¡´TœX?Åg àBê?—Í^º®? î‘w%Õ,? ]å'“š?¸ «à#?çYó©Rô?’ÓDÅó²?YÊ}|Ž–?#–WÀÀ?-*† ™? ¯XÀ?½j¡?w¸Êqh?5ÁOø ?ÝT¹ðÆ?RMч¦?v!p¾ñ”?.â²§J?}l‘b›°>ý/Ë ¥°I>ùÓ8Üî§g>÷ä·8R>ø_í~>ú“…=ª„>þ³ñlÉ6˜?°B/Dš?­È¶‹ŸÒ?Ð^¼{#–?5ˆºpÌj?XÀ—_ê?ÁYUs¶?š-Ï׆'?ùN64£q?Ê2æ›h?Ñ9Ãt<?¹¾ÂHÉ?0d5ÿ]ì?ÿÊHš?½äèe«?@"¬ü?kïY1F²?«îÉÔ¾?«Jµ'Š?V3%ót¶?¸o Ž·Q?ûGF?P>7ó8?ÚÜd@‚? )°@¹?‹a‘Ùÿn?{S¿á?sÅpÔ^?eÃVC2ä?eÚ'7?~'R>…L?²Àc·‹`?Ö çI?r4Gç>„? ¦èþþ?Ó˜œ|ì?ÎÐ[;:?ì\‡Ì%q? ºþä? …Æã-Æ4? ÝTéÅU? ÿí0¹ÕÇ? î! õ¶…? º„·ÄÇ? ƒê+N¯¸? h¨&Bd? xØ": ? °¤•ïp? ø¶jñ¶|?!7óíÛ[ ?!ZZØ|?![‡(1–?!EhÔìðØ?!'3!‚‘1?! ®ÎpÆ? è¶í˜0«? ¶˜¬ÒÅþ? g?h7Ñò?ôˆóùúò?ùh)ÒÏô?W®?*‡$øq?|¤ë?õØ¢ˆ?”,"ÀR?\k(2?SÛdm(Z?z%V)o?ÂÖM²R®?Eñ¶_a?yr—lo\?ØçkVH?DÍO+Ýó?ÌùZ±he?~ø°ñ%À?_à"b ? 0ÿ”\É? ´s®!î?! t/팎?!W†Q¡ß?!D>Ó]ê¯? æ¹J–˜? Ze[ò?œâì‹»æ?á•Æ±¹?³3¹&I@?*A|¬œ?˜1°üùà? Úâ¼½? >·Â¥þ? @‚Y*†ƒ? ¹ºõ”?‘Cä¾\?¶høx>`?µþô¥T?¯&è8Œ?ÂmR¥±? =X8Ñ?’–k‹?b-°Ùö^?{Ãceë?ÝAò ÝÈ?‡aJœžP?tv ÿÓK?™E;œd?â}è9ùÌ? &:©Á`? µº¿U“?!2/•^E¬?!„•wþ?!¯–nêØ?!ÁúuÞï?!Õ ?’(?!ùÁù]ŸÀ?"1r÷× ?"lbpŽ?"•Mt›¬?"žŽtšÊ?"‘ì“i?"†sšRN/?"›ý³{?"ß(/&3?#AŒÆ}×?#›çà 6Õ?#ÁS2n·Û?#–64wëÉ?#qôF?"劙Ð?!çàò¡±€?!€/—zTô.?ù/EOØ? :g³þ?-T¯x¼?ZzÄ)zð?}ÆHÝrª?|sÖÈK?>Ïg5bd?»*É@Ç”?ý4Z¬›?%.—ï§á?`BàÏ?ÙÌinaÉ?¯–šW¼?éõšŠÿÛ?yƒ.Î{Œ?;nôäë¢?¢ëqR÷?ªehLi&?½qnV?RkObñ?d•ƒÃ&J?_#ÊÉïF??Ôáb¤x?îíøî{†?I^œ¬OI?6‡W:’?¸Ø>ù©ž?öøî¨? ‹I ×T#? ÏŠ’8|L?CÏ0ù°?"z[­âÑ? V™4hd? · å'X?U™êX²Î?›cðˆ?âÈ•»?ÏùÜ F?BeÔÍÞ?+[[±@?š Fe|j?ºÅ§§?ÈY3®™ß?ì{Øáw+?À°Œ[3‘?‹±ø? Ô|Êù? ò Š@?cªXÄ0?LgÛ<ê?ïâ·¤ºü?]¡Ó h?° y= ö?õ¡_×ø?F@<’NÉ?»FpÆÉ?^´Î=?$¿ž§·¾?ór=u¿?ªæÓ߬H?(”ϪÔ?Fêê¸Ë?â`ñ~ÅÂ?éB6îyî?m§ä9±??ªù¶HŒ©? çbCˆ? "„w;éá? I3’ú0}?9ã5ÊL?n›À"?èy JL¤?îŒÐ?,)±Rk?dÈØ}Kj?銢?¾mºD ?Èv»£æ—?áȧ°?ßdª*—›?™+äAAN?ææ|q1?´¡Õ ?%7»LË>ý*ƒê²>ûL޾>úŸ§F-A?>üOwæ›W>ÿªwðtD?ÝRx.U ?¨ÔÐBY`?´3HóÈ?ÌæRT?D¯þ\:÷?Ù§›Šøq?Ûa%F?O -Ëõ?,dÅ&? rÔK?Õ'?8)PŒxs?›ßŸR[?E®"­û?ñ]©26m? 8åy€[ö? XŽcˆ? T÷ÖLù}? .Š0ü?Îh¦î^$? wú·â?'öꀸ?Dg-½®)?{D°~ÈÂ?á²ðHøõ?„ÿ=7ªé?n¶7> ?¥²–”¶?-. V?Þ´­¨?²æâò?kN6.? eãµí{G?! Àq¨?!’¸éÓ¨d?!똛ˆ<>?"4§Û?"!1ˆXQÃ?"$/kŒôu?"1§‰\¯ž?"MlÁ]Ÿ?"k½Mâëü?"{`Ÿº?"tMXÓnä?"b Èe‡V?"_ùÀ»#&?"ŠÅOƒ?"í,ú4~2?#t¯ÙJìº?#õ˜¸Êœÿ?$?ÒŸ¾D?$5NÚÀw?#ÜéßìùH?#\JB‘põ?"ç±-ba÷?"ªÝ—ÖÊ>?"¸Î”Fš?#ä¦2ÁT?#m‡ %E¿?#¿°k[Ä?#ÒN§š¶?#»qV`4?"þÌÈ(’d?";‚£ëp?!i{fü¡? ¥NWÙÚÀ?ýŒ”¯Ad?ø;¦‚_Ü?AçGžß¼?âëŽ*¤?áXàƒ{v?7µ*-±e?Ò(ˆ”N?“ÓK˜ÍE? 0F”ýšh? ûbÀ™? ßÃJc³—?! Y Œ¨?!8Àç*ð?!EH @`¡?!Jô¡+(?!WÉ*À»?!xÍI›Ö?!¯ÍqèÚ´?!òìBü ?".=»ÛÞr?"Isž' ø?"0BJ» ?!Ú¶ohF?!R'u÷§? ¯êVÕF? "³€›L?>£ñÖÀ-?¹Á›È$p?påÈÐk?”Áên™?ˆl§Eù?3™%”$¢?uüœÐO‚?M™!4?Ó,°ÍJä?/óFÅÁ?’BgP[>?"¥êl¨D?ý®âé'?0;c¢²H?·|ŒT®ä?„ûBeÄ?„õïé? cÌÆ)w?ÊC¯ì?ùªÂþ¥V?-POZ?gF«[ž?§÷r¥>…?è%w}m„?ŽO{R?î_ebb?ß´b p?\Ï _Â?ž~¥äÐ?ÅF•ç/ä?þ‘p 4º?xyö4â?Uˆ¼öeå?£ß/µ9?SÖ[>¿?C3ªbñŸ??ñ-?t‡³OO?®|¼Ú?þ™Ñïþ?‹‹½§?ÿy²ò¡v?ÀÛbž?Gµ!Þ˜º?yDhçË­?Dl€âš?² ÃËí?ßrƒ’ø? ú‘þ? çNy¸m?‡N¿¸!?– ™5@? üÇDÔ%? g8·Û@?_ÞÍ‘Ù?26L(x?}ú6ݯ.?^óG¤R?«ø’sÝ?\f?ÛT¤?ˆs¦?NQ?kõ‚¾6µ?R³3š,?úrϱžÒ?˜ï ó? õãŠé|ä?cE¶†®?#Ú‰“s:?y¢Üb?nùª¢ô?Ĭí+k?öÅ£ã`?¹Ã.û? c‡&é=?%iPÒ?wìºqð? ûæQñ ?ÚTéc2®?½ º8?ŽJʱ3ò?"ãrS“•?O‹Au‰?ìÌm×ëe?ì¡ÿ zò?eî·*Ðî?šn"\Hï? €«Ùô? 0ö#Á? =b§ƒ,?.²ªb´?gûa¼?€J‚ź?U×ÛX•?ᧇ›°? R-ï¾W?v°OrÆŠ?\–ÓÖj.?ŸÄúiJF?fë?‹Õ¯š ì?Öçg7Ü:?À¿áËy8?"ÿqî?BVv¬u?§Çîÿx>ÿ\C©¸¡>þ†˜_.>þãŠÇÖ?­Œã‹.Þ?WθÌ3"?å$Ï÷§š?ÒÛy“Ôî?üQø5;h?Bµ«AUN?Ùº©Z p?”Eˆ%Ì?&¸ÙÕ?×ú?¢«?/°1Âí¡?GÇKù$Ð?Õâ½H‘>?‘Óë§ ? «ÑÐ%â? ®-/fX?kþ1г¯?jÒËKûß?\]œU=?†=bÆ,i?ìaÃ;0?ÆfÈÕ0û?¶ÒòsòÞ?Ãe1@È?ë;X‚.±?5¾dÞ¸?žl`‡X? ü¤È?{Éšë?±©·³8Ð?§c–˜-5?a­×Aâß?üêñ…®? ñCyØ?nM}Ñ•?lqi-¼?†úiš–}?™vÏÄ–r?†.Œ]«?F¶þ?îi'Œ9Œ?›ìÆ"~?e2ËÇ•Q?L­Í½Ùã?D7¿”å˜?=tŒÐ_T?6,¶`t?9>!ö?U` .–?O¦&… ?ãaÆÊÄì?HIΈ¥Î?¹‡íWÝ?8”JøÀÍ?Êj¥¦Çš?qÎÁèž:?²ýÎi?¶4βë?1“Oò•“?ì=Þ ¶Ý?ªûŸÿYa? #hÝï¾S? WéC8%? pàú¥}? mN~_)?")†Vq?"0‚UÐHä?"lªóõ½ñ?"äæð†äÁ?#ƒÈ;ƒ…¥?$«Jgêâ?$€J!”"?$”öfš©?$`ïþE2?Ápú¾¦?E[_¡ô?-vÅ\Ér?š”4± z?©brvÅ¡? gö©¦_? öFÇ™’?y#÷¸;¦?¦)¦N¨>?ú ÷FÉš? €âµäy?Áœÿæs?]þ§väl?>û4>?¨c½´?¥)w–ò?ÿ¦`…¦?ÓŽ?®¥>׸?yOwÚ“?õ ò‰Î?æ È¿×?7 ƒv?B\"&Ä?æFâ·(N?'ú8þ¡Š?0LB³?3E®®¹?aÊÚ6äÎ?½z'Jfƒ?•¿3f?Ÿñ=ŧˆ?ÖªÕ}yç?G§=åÞ?õQ×0O?ÜNË…E ?ð¢xyq?Ý£gZ>?;möt?!'ðL¢?²ÊøûL?•9¬÷È?eO•?_wÎdà?ʧ ?ž3‘ñ1Ç?æ4”büö?k`²3 è?Ñ¡á½üý¤?UÜmIæ?µÃKœçœ?ä,ÁKL?–TÀö;×?Q2Xƒ€:?8uŠyû@?/49 ú?´Pe?óQñzÖH?ÃgSÈ?Ÿ¯ÒWTÈ?•¤øP{œ?£æÊo¤æ?½ „AR?ÕT^ò¥º?ëæP(j? ¹&›?=p£êxú?ˆ:9ÚŒ?å¹£%l?Lx厚?µÖóãü?G—»„?Š;>éù¬?ú¹±wÆ?w‚nÔC†?„©j?¥œC©Xo? !—ƒÁv ? b"¹Hx? Šm”›U·? œÜ!ç? ¬‡…›@? ËP¨æXû?!<²:’²?!E‚„«?!zpù<£?!‡S?W?!bêíR$?!®œdõ? Á<„Ku? tBá”}É? ;ËL£“N? Ù_ãáÍ?Âûõb~?:¯)ž(?©&¼Þ?®¶½DÊâ?îHI¾‚?cÞ[qȈ?Mb¯‘F?ýs»gç'?ö],º…f?ø¤^ÿ«Ä?i†Õ¸ ?Vc;Õø.?Ù,=ÆÅ ?ŒòÌ*·¾?N/M¶h²?ô¹õìʦ?j“4´‚ýµ?™?!HOë±×? ÷*SĘe? ðQöÀyõ?!Vüˆý?!1—r£%\?!V´5”&?!\Ì : ?!3›J›O? ÛèÚƒ¦C? fe5ª;?Öë .’?þeÊẜ?\#´ž‡?íE?"­?œºVuï?L‹+!Ó?à˜éêÊ?F ü0¥?uÃÍÀ÷r?rß}&ªª?F–…nk¶?ýÓE/É?¨ÚZ”G?XÜšƒW?(—x‘Òf?1¶:á?‰Õ–¹Ç?<+ ó‡?FvÓ‹V&?”îBÊãÂ? _‹,\I?“©ø Œ†?¡J):Í?”tRòï?út¾=¤0?<}i'™ä?Fªœ9)è?¥‡¹ó+? Üï­ø?¸‚ŒØl?ÕžMô”Ï?ŽeC,´?r1ø—°¥?G·¸yœ?”0×Ü?I÷æ„k™?@_á`â?@ëì?Œú?!?«YÿY¯•?ïs³XD?ï&ñáõˆ?¶âÙˆ9G?J(ð¶¾¢?¢#žâ&j?´pDñ‡t?€`× Ã ?Z8¬%?IlI‘x–? ¹‡–ä&ò? ò%³ý’? GËgÿ¯n? ÛK¿Û8 ? ‘˜¯@ ù?NId?YŠ1¤A?išù¿â ?|­žj?ùÚæk?çã3kÐZ?!™E€ZR?à/ ëÀê?sâ¸)¥?u&ûO¬? ©èÍ+? έ[ö,? ¼VÑQÁ|?^:œáuU?•@_dµ®?QPJ˜?ê?·÷°‘ì¶?·¢XîòT?\Û!?Ð¥‘û!?L<’:p? ÂîÖ[?2º·’°?Â*ÓHˆ?™Îmvót?…ujQ~H?Lÿ>uû?½B-Íêç?®9’¹´ˆ?è X^?ÓYC9ÇÀ?91Žè? )^KŒ? "túôU?"j·Ð@?°ä¶×l? ¢²S'?2°ýÒ°?h±|¤˜?8PÌQF?ëîš”€ù?鯉 ?taÙó©–?˜)¿>Æò?8Ç5í R?2žCö?`ßÇ·‰K?–Ù†ÀÌë?T~†¶?õ \µÔÖ? —“mh?¦ÙÑÀ6?lÏ,Üz?y"ï—p?;Vô”Â?Öã5(? 6Þx³Ž?]<Á_ñ?4§ç,°?N?€D¦?ep¹ËÇn?•…}(N?áhå…¤ç?N¹¶××?âËp4’?šVn?ÿ?`øð…~? î,ªô?iU ú€?N"÷û?»¸.+P?æ ¡Si`?!ì;Y?¹G\¦í´?Á»ßCDÑ?~Â0äH?TÔÇF¼â?Hß;v‰ð?ÖO3CEh?{1ê‹ ?P‹jð ´?¥ñÒmJ?0do xf?î;ï›ý?Øýäóï?ò8XzrN?EVÙÍ%?Ø`×ÖZõ?ÛÉ:Š£?o¬Àû¶?½ ?‘£?l7Cô?Ns€YÇÎ?ÉšUøÐÅ?¤Þô?0^=Äó`?}9Oåï»?rókÕä?¶ØE8ìŒ?ŒË-ìÂþ?oy’N?VJÎ, ?HæÅµMd?R365.á?wl QïT?²É3éc?ö: ?6F2ß{¤?pºG–¶Ý?¬A¸ Rð?ñ‰Ä²u?CÓ /J?œ·È7ä–?ödVêT?I}ï"Ò?‘–Šô*Ë?Î|ùO:Š?ÝœKtä?KE…éºå?±ªªY#ú?I¬SfE?Ê7¾°?åûªÆ? X}OÛ½Á? ±ƒ@Ïí,?!d·¨Œ?!Xf ˜åþ?!²/–½D{?"+f[[†?".ú U?"$|kû?!߃æa@?!tg#×M? þ ^Q7˜? •Pt“k‡? A³Ñá?õQª‹?` 5H?ª¼–¦–*?Õßø3‚?ÿ"‹˜:?R5ÐVs½?ðb+^Ig?ÝßÕ[]~?U`ªà=?6¼Ë3Šé?iÍg?¤_fZÙT? ’ü;|? [$ƒµ? ×9IàO? MÀsjŽ? ˜®hË(? 'F aq¡?  ¤ù#O?ÞÂMMD?96Ī›:?_»mð?‡L~ÿ?ðé½Iî?È¢Ù¯í?s\è·?¿•)›Ž*?ˆ¯ ެ?@ªP¡.?ÎA]ðQî? ¯Ìþþ? 3³itï€? Côña¨à? KjºC\¦? Mg^òé°? LÛóÜ‚×? LƒˆÄ? J̧çsn? G8™Ö\? A)–'? :<€š­? :À„‹6? Kn‡.2š? yF)k? ËòeA?!?ôK´W?!Ì šâÿ?"Y®=uß·?"ÏéÀÓ?#”­$;?#4Qbç²Ú?#)º9Žm?# ‡¥¨˜?Á!k?¬*îʲ?HÍJ×v%?Ý«ï%?`{:;?È Ò*è?5òl’]?8 ­à‹{?7iÄH“?®ßÒµ"?ÖsRx-?›÷îsì¦?†}M?¹‰yðÍ?Nˆ#9­?JåRû¹?œRàÕ ñ?#L:.€?À‹DØ…?^*‚"J·?ïø×jXÙ?kW–ûÍ?ÀTU5dÿ?ÙïÕ5Õ#?¦yRgþ?!C³ct.?X?fŠ?k$™–Ò?‰Ll~…?ãÜ–˜»>?£¸g¾ë¥?ØiAu?q¹3Þ^v?D1Tè?eGç ç?÷ŽpFÓ?+BFëß‚?O'OY|?:½ba].?øþ€ãn?‹Ssµþþ?ë:z2Ú\?˜?H¾Ò?ªy«*q?ϱ.n$?<ŸÛª§? ;Ǭv~°? ö1ßKW/? ¬jxË? s²¬ÍÅ‘?/œÚ+?K‰K_`ˆ?Ÿ’ƒ²?ÓpÍ\œ%?©þ?¸ò?ðÌÛ¢y5?Ž«ª$RO?Ž£<Ù7?$v‚tàH?J4Ç%Ϩ? àH6Qá¸? ¢Ïûì™ì? ÎÚFr§u? 5â¾.™¡?U'*„öô?ÂxŽª"å?”ô¾° ?î’åĺ?À ÚX?"ÙЂH?QW¢G0˜?-5þû$Ä?i çîx?›ôF±M‚?´5½ò?­Ý¬ã}X?Œ3Ü?8¯À)§?jöîdØ?Ec+lö²?xË>DûŸ?-öÄÌ¡? 2M›Ì7i? GPdb?ËG{ê? Ë:“¯{?q> j¶é?V'"çÅ¢?.±`Ùj?  íA§‹?¬LßEk?¡ˆ)=P?âtXÞã6?­Ÿ ¢¡? ¹MK«Ð?ქUPÃ?[Fp?•­<†—©?'<õ@»?|†‹pB? 4azÇâ? TýQõ_?¡'¡d&?ÄÕ¦{f•?¢Zv ïx?>&Á'?ξ{Á?˜å´÷?‘²Útײ? …ۑܘÏ?xFœù?jæšœûÆ?S·å6ø?= 3T_6?=ä$ª?më§LÖ’?Ú=|R3æ?sl¢Ö"0?¹Ï‹ùÒ?W5fP¶‘?(éd= G?uø Æþp?pg@´wÝ?pÛ£`9?Ç–ƒ‹¨ ?‘ êf2¢?©ŒõÀÖ?Ç©Ì&2?¬'KHZ?D4â,WŽ?«Œ¥_ÔQ?+f?š&ÓvH?Nû3X‹Ð?'ÒÖ!Cb?pVö?6TJûœæ?„Bî=øò?}»®³"?Ø…ño0†?ª‹™“B?PÊA#­Ó?˜:Ñ#–?i¯,‹}?Ñ* c?÷ 0#RÜ?ŒrwAê?B^ SÁ?¨E¯dÕ?Abòe+ ?›éÍ=|?á y+z?Ù3´d¼å?î}¬ÉÇ ?%vV0?z¾ô÷z?å„Ϭ ?U̽Äc?½Ã¡ŠÔÓ?º?ˆ?håò·Óa?³ÉÕ©Ó?û¡”ñ¥w?>lï¶ar?wO jl?¡ã^œØî?» °'Õ&?ÄBÞ‚?È×;Œ Þ?âx¿; Ô?4ß "ú?ÚÊÀ˜%j?Ûš*™÷?—#5? :¼Û<Þ? àä|~ƒÖ?!{ð“™³?" r¾ÿ?"†àms›î?"à‘‰s^È?#CSœ?"Ûl4ë ?"uÙέ¨-?!ê-v+î?!Xæ d? Ö$\8ä? h䊓JT? Jsap[??uädÍî?ZêªßY´?i”Æ‚í`?Ž;¯?óòœÉ?´Œ™Nìh?Ѓzx/cî?~¼¬ºËø?éIüú?»bâ0*R?VÿÓû(Ÿ?åÖaØÉ?V€M»è?Ü ª L?|‚¬-ty? “4Å8b?Kõ\Sx?U¼¡+UB?[S—:r`?”3Fm`x?-ÍtaN ?:–›8[?§¶Õ@1?Fm­~ãf?áØÁ7ʈ?Q _J~d?…3UL:B?…èW‘ñÖ?boòx;š?$‘“:¨¹?ÉÏ®_‹Š?HW”Í|ê?—ú2Ì ?¼$šò7‡?ǽ ÉÞP?·Ü`?=T¢#µˆ? iª;«À? jcÅ”L?ILz7Ò?ç/ÇX\?«ç?Ÿ&­À?È}`Ю?d‰¤Ï3?‡ˆ‹†?Þöe=¦?ª¶è€„ø?#¡7+8J? ?ËÓL? öÞ~‡s?? ýêèLJB? ‡ê‘äÙ? ZU¸q ‡?àßÅbc?¯Âyƒ?‘W’ÒYa?Þó;žïT?Œ7¤r?½*Ü‘L ?uÙƒ? ·3¥L"ò? Éwd‚? çdŽÕmº? îÛí3?u,ΓÇ@?|í™ÛȦ?Æá·+ÿ? U±2Þý?½üœr?´™úN\? ‰žÍ? ,ò(˜ºØ?mÁw¤º?f&~k[?UK‹|!Ó?ÿCÏœð?>-"°\?I&r³œd?ïÔ_{…??c€€æs?…—<Å‚Ä?N–Å?1ä N£{?Ò'\Rv?ì=: ËÉ?kõ6žp?8¾EØ}? lßñÚ? ²rvÃak? ‹ùÊíE•? ^|<ØÎ? =Y]j…?¢ó .i)?E²µ’Î?Æùüúj¹é‚…?ÙÁ9ok”?¢^Q5à?•·;ê™? Y_ºç?´ EÜ?Õ|aõ‰À?æÛÌ’+?–¿‰û7Ä?BS‘ÊFó?öNÎ5žÐ?z&.jœ?•_=?MÈ f*n?žê¡3‰?»å´ã?Ôu´¶? n À¯?s® í¦£? J‰¶ýü?Íúȶc¡?¸K×¼dû?Ë™­ƒ‚?)GË×?n¤Þ7°?ôñÛ÷vÝ?Ž=Fÿ6õ?'Ì,T+K?±ªÝ6P?"ˆ%{4Ž?xÞsÈ© ?¸ Å»?ãŠSϯa?üNq¸~?’˜™H`?òæ–h!?Ñ€!§²?¤Ïª?|tÄ—ä©?| Üß2Ú?͉.O+w?•VFíé?Ûø4uÁ?‡0ús ¨? 2Ó –S?!£õ3}?!úÒw˜{¸?"¸•xÅ&â?#MU}à|?#¨ìû#Š?#·Áª½?#wÐÿÈ?"ôûe¨E?"Pìe%v?!«àÀ×R?!øËm±µ¥ À?G>¹.?pUTQÀ?Cë„"?6\ÉÑQ?ZõQ¯f?·•ξ"E? "£ÅžÎ ? xHþ£OV? ÏÐ6–?!„5“6k?!O8i¦ó ?!pàߌ0™?!ˆÉiŸËê?!§šš[b°?!ÝäÈÑ•?"3­éay?"£eT“îR?#쪭Sy?#ƒÇšI!Ð?#ÎÌÕr?#÷%»1Š?$}Þ~ ¾?$3ñ½á ?$^ój?$ rUÅŽ?$òº3?#òç ?#¼ˆõk‘?#‚Ì›¢Üp?#_¾HBžB?#j^F5Ú?#§ŸvÜ*?$ ëH¶?$`³•‚D+?$›4ÞéF?$ª&„8!?$¡…u%©ø?$¯ŠB­á?% ,êüü;?%ä àÆÄ'?'E"ÕC?)¬Ñö?+S2ÝžÙ?,º{Fql—?-гþï?.‡y¸±á?-Wa•TÊ?+ð[™ò˜Š?*%9è^L?(I.æÏÏ?&—B}ãPò?%&ë TS?#õs§+?"öiÔÔŸ?"g¬AY?!nêŠÒ…²? é\1õœ ? “ŒÛOh•? oe-.‹f? w¥ 9ä? žb³°=ý? Î µÌ‰“? ðyØGm? õ¨K? ÚŽ@û,`? ©FàÓÆØ? t^°Hö¨? N[ÙÀåê? @y¦ìÙ? EMf³Õ? Ho[´X? 2+˜Ý?çÃR޾?Ы? ßuZ5–?$ïap‹j?GŽu1äÜ?’é„V2^? Ý£º¶?†ÙÀ(Ô?!$Á±^æ?Ð,¬;:\?“±Mµ°?c£¿N§a?.›x‹¤¶?Ý$ÌsÇ?YÕœ—ý?™O©Ÿ!b?¢ ²^½”?›Š?ŠÃŠˆT ?¶Ù )?V» º´ä?LPϪž?Žäs§eÓ?ýÛ_{Q?~–úüNÁ?îNÚ}?˜Þy«âx?2§¤™¡8?Äõ›ÙOª?11‡³?SŽ>åÛb?xMïZ?iwÙû¾è?pK1ÉÑ–?YŠ2Êœ?cÀ?m?ÇË‘²¢?δًH?ÔþËQ??<ä‘×p?ž’¹­\ä?ÕÝ“Qí?Ü9Ÿeýš?ÁÕòG?š´œ*]?o×ç:Á@?9þ-ô··?é`å¤$?q+Ú9?ÑãÉ"‚j?cí¶æ?nvùÑ׿?Ô'é¤}Ã?Vû¬¿¬H?ƒïµž‰?,l«ÃMí?ÙñÒ^ô?«ˆ±m2?v³ŸU?ä3z?1|"6‚:?Ó*èE´?æêº‡Ï?ˆÖ"œ¶‹? é[–•"? øðûè.?í-w4?F7J&r? +Üj^ê? YÐfí¼í?0ÓÅuèb?sywÕ×8?a¦i»—?§z’}ZT??PTuFN?U×Ðv.Ü?zΜdÐV? ¢¾¼›³J? ªŒ&êá? ¼_‡‡Á©? ¢$œë!:? çÁo)G ? âA²S?«º¥žô?…ä8*‘–?…Òè{¢Ê? »4à¤? c(òƒ) ?â""}|Œ?²û2ñq?9 BõŸÃ?–Î27‹?›V’Ë–?Þ57†Ç¸?÷¶Ÿ¾Èœ?·{et?q?7›nT?ÂŒo,?£;U›¢?+Ã&e´?çâÛy.?HC˜Qüñ?+&ž¦? 6ÆY šò? _•ñ–t? >ë0? äMÆd? qÔÚJÅú? åºÌRV? Ö7Y¨ú)?«<Ç ù?m~L¥o½?)ß‘n¶? â0P9 ? è@vz_p? =D—Yë¥?m øSA?1Œ÷9 ™?Èû5MhÝ?U×éâç.?Ú$;,h?,9ÊV]?ļ ip?´8[ +? N~Ö¤G/? …H·.Ix? SÜÔ]Ç?kªŒ0§?¢^ÝHx©?ÊéŠñë?WŒCÁxÒ?y”Ä2µ?=•Âx?âgÓ:4Ü?§Ãßk‚–?TWÑù/Ÿ?ßèÞÛ?ÕðŽ0%µ?✚Ïõ?ïߨ?akTƒf3?ž¤-¾ ±?Ó#ÕPÚ…?Ò vÕ'?}H ß?åŽ7Ù?ÂÇÆ]?ÛR5H”?Å# Üâ—?Cã?r³~?u_ŸÂ?‰¼Ôå–N?®¬¯ Á?þ¢!.ÿ¢?€Zžþ?/¤þ˜? OÒcÎ?ŒEÀ„1?Iªgûq«?³¨¸¾Ä¡?IÛÊ:¿c?ÿb_œpÉ?Áõ\¤?|±\¬2/?´ kÑ?•k–ªÇ?â¾á¼ÿ|?Ÿ›Xg? DÉ1.Q?ìÂɇÈ?²ûq@›¼?aÍ‘øœð?ÿâ$b‰9?›¼•Š"?Op¾.J?B0Ú5ü?¢µCj€?”u6Ä{Ô?§`®IH?#/S÷Ç£? 3z¯Ÿƒ?!Tˆ(­t?"Z€O©ºt?#2Ô¯’zó?#Ρ}Fe?$\Òã˜?$ï=D8Z?#Ć&/&?#1µäê¥Û?"„=7­óÊ?!Û´ÿd?é=µàÒ? YPûQh? Ã,lþ›þ?!!å8îWµ?!iÒV7?!˜öˆðn?!¸¼½/I&?!ÚÄçabË?"làÎa?"f8Ø·8?"Ô|æK¹g?#K-rK5œ?#µér¤q ?$°X«}Y?$@5úõ¹D?$iEé @?$Ž›Pª‚?$´™_Lð"?$Ô$¼qÔ?$ÝRE÷˜Î?$®@eÞ?$ƒˆ„³t?$2?Ó¢Ø?#í¦cRè…?#ÒIÇ?#éÚ Å.?$&NŸNWð? ¯}Ö%¢Þ? üáÍj ? Ú½ÞË80? 0ѧOí¸?Mi¦½ª?}é¡×~;?c½ |’?GÇß¡«3?«‚%|i?L%–zZR?‰ê*ÐŽ?‹LJ??;ìqX?ÐÙ"§Ð:?‡0%·?ž§ó”ü?5ÅÏ”v?Q—äD??ïõŽª×ç? ²rÁh*? na@¼? È'ã2Œ?„tIrïÜ?ªN›‰u?&òû§˜±? üæåšÈz? I$tЦ?÷+á ?÷wJEVX?˜™tk¢? BÖÍ;6? ]žâuWî? Äp†&?•¾ÌÔÀ©?]+zØxˆ?þe­?¡¾ &ÜÈ?†àŠ ¡.?éËeÑ?Ü 2Rj? “òVöŸ¬?!*÷‰‘T™?!l\YhÒ™?!&§ü©Áv? W<·?YÞ¹op=?éö02°i?é÷•é0?œ¡Ž¿è?ð&ùóè? Iõæ—8?m>A¥d???¿x¯…?%M[Ö7r?:vø~ë?ˆT²äˆ?üc­y÷?tHŒ³´ø?ÕIºeë?'…7‚?d§¡ÂÙ?Àsðeï?/* èC?ŠòGM Š?ž¯÷÷‚?ER4ÿu`?„¼Øû%Æ?ˆ×Å>R?ŒIx¸£”?»ñ45±?!`!÷Rü?VXa`¤?ˆ‹2Þ?Èò±/y?Òe"UÎ?q²”Å|Ö?­ü>Oi“?¹Ô¼wD˜?’©Õê6?JMÎÀÀr?ûC%“†?·ØoŽaX?‚T}×?Q6ºÆ©?QdÌ?Ûtªð%I?Ÿ>_í p?zÔªÏ?†·m~qý?Òà=ºxÀ?ZJ‰/v?þ¾àŤ^?‘ñåíO?æ#­}SÔ?ë¶‘è=?¯l8G?UeRÓl¡?“qµÍ?á|z®ÏÀ?öË[–X?Jø§nb?؃Ù3ª? Gdá/°ä? ©}²¬Iä?!üŒÔõ?!Gê×4t?!uÓçnjÐ?!–(7f`?!ºÛ5–^_?!ö*0þ)—?"P¨ODä?"ÄrÐuõ?#@UJ:]¼?#±%ì?$4Ø|O­?$XU)´¬?$š1›Xhb?$Ý\(6k?%")6µ/ç?%\gî@Èä?%wžMÂÛ¶?%aæ ºãÿ?%ÕãjºŽ?$° ùm)…?$JÎÀeº‰?$ Ú÷uÄ?$ ¬¢?$'Ý`L?$Y´H±ô?$wÙºy§?$qKÙ=¿š?$Qy†ZìH?$>ÓçЛµ?$n¨no³H?%›ðœC?&?&Ù¸¦?'åðœw‰U?)Çi–Ò?+„±JzX?,¸]ýz®?-ð?,—¶¡ªK?+Y®›úì:?)°ˆÛm ‰?'óð`ùíš?&dÌðõL˜?%Évð?$æ^¦è?#JqòÁ¾?"’Yô9™?!ìå7I ?!Z†õº·? å Íû}1? ”¢ƒ×ϳ? k\ê“‘7? bFöV‚´? iè›áÒ? pÞ:$=? j“yÇŠ‘? T>ÄÀ²Í? 4ìÇ? òIí,*? zì“Z? ž'° ?  ³žÖ¤? í&]YÏ?Á­qQæ$?ý×p®]|?ßùGâ/?”h'Eƒ+?WÌĺ ?RÙˆ?Žc'§?¼‹êû?B×ñG?Zè–9Ú?;õRT™—??4N\?W*éÁ'„?iõpΤæ?Y?½ù,¤?Æjlò$?„çÁFî‡?Ë@þ6FV?d0ÿrs?UÒ!-éŒ?ãPSÖÞ?¶¢÷æþ…?¿„Úã?Ý ±Þ?òç*CßR?ü†>jD?%¬$Š?Tè½+?à:±€5?¬Êæ¹?‘u=Bâ?MôwËë? ‘ç|?[㼦œ>?¶vÉ8?; åa=?àn­ [?ÄÇâÚ>¬?t^œ?Þ‹,{?ã#-ÜðV?ïœ*Gc?ádˆýª?¸ È•…?Žr·c?ó˜?•Š–¦2n?ÀÜgì?åóûŒ&?éú°ù†?ÄìÑ9›?»ç2f?:EãòÖ? WyPYð?¼¯Pr?(PsåWc?jñª‹/ß?µ,âÔ°??ëÉÈÒD’?ñ¦éªú?«˜~ßEz?.Rõ „?þ©_Æ`?Mv1'sf? JÀßÁ7? aÒöçõ?¡cÓ?ÌHÞ»„?êpb'*?w®€žÇ? 'SØ? Y¹¤”¶?#Ñù´A«?Ÿß)Lk?f,9ìÂ? +zH–?%ÕĤþ?[þqs­? Ü¥ú³šZ? -ëùƒ£? D³A¾k(? ¾£å‘? cc Î ? ÷f`­ðè? ;ÈE3'\? –œ¢O±? s%›^?¾!fg¨?ÈÞZ>o—?ÚW"¸ô(?bðþ#ðr?ajÿCN?®ÒÑ! e?%0z2?(ŒFbü¡?ô§·§â?˜Ü:?g? ®·8R¨?ÙH=ëF?­©o2ï?Ìd©ûu9?6VZoY?Èáu…À? I ÄÙ†? ™’åš?ÐÙdA?Í~ä¹N?ãÕ´Ž¢?$‚ ¿á+? kŒŒ½Mh? ÿ)Ù™bª?Ù½Y?uôD¿”±?ï÷xÌ?û<¿!ï?Ü[ÀÉ~5? %•nç|?­ó?¤:8?ˆã¡ˆÝº?P‹r/§Ä?-aMŠd?[ëλy†? Ê„Ÿr? ®nÚN²Ä?!yáe…à6?"'Íj²eÎ?"i£¨Yê?" sqì=x?!1Rõ¢¨?,M½Â­š?"¢“?‘óÃÅX?Ò'Ìãù ?ãLp㹆?‡b˜ ?zE¹{?”Ú‚+Ô?Ð=îbh1?3enZ2?¼èÔ®J?V)SL?ä*ûË~?QVTUˆÎ?   –ÓÚ?éƒdBCÈ?A¸ÚŽÒ?¢ObH£?ß…±!Ú?À­àºP?%"„<7?jA$˜¡?é0ä­@?Íœœj`?ý³,4h?…å5¸°?VÃ^É<?]}% ƒp?Û¤XŸ\?èÙ†mè?tiWcgØ?0'¨éD?N(±?làÝú?ñÑ3åœ\?Â.—¢‘6?b[ƒÓ—D?ÆÜ›ºÉ?í?·µ]j?Ú^/]?•#[Áëo?"MV"b?„çEh]­?Ä@9ÍšM?òIo÷?/;°Ùs?§™§jNÐ?ŽÅ¸«nk?øbhÝ2?FºMæZb?&ó( ‚?„±§Z0? ‹A Q·?!Fëg§º,?"RŸFý/?#<$ÿü?#EÊ÷?#°ƒ( ˜£?#‰8añ‰4?#'ò‹.l&?"¥²NAü0?" UP¼?!£ª¹)¬q?!=œÐ‹ò ? ãnön]? ˆ¥ÄC~? &Æ…X‘?„ð¾CI?л×Lh(?JÍ#UgH?œa6&?íSó‰ÕÆ?þè‰0­x?.%Üî?2Ðb¡?20•ßgÞ? ÈÑ6Ý—?ðørŸN??)°?3¾K–8?n R™¨?©JÞ_Î?Í5™~)?ÎL†•1?²9?òò?ˆÜ™D¯›?`¹ó$tÅ?>îâ²ü¼? ´É©fì?J ˜?â܃gX?ÊŽÕº?ĶjÛà?ãA c?0££ü?ªW_e¦a?9j8°q¦?¸¨M? V §? «‰¢/æ?ó»€îË?¿^ "÷?•¯TðàÖ?ˆ4s?U]‹Êï?×þ<ó? /Ž×P? V¶PŸ*]? ˜pªy(å? ÓŽ4É? þ«ye@Ã?!‚‹Q?!-~ %6?!MçÕ‡$É?!‹Dš˜Hä?!ëªÿ~ÅÂ?"f­88|V?"éü¤9óå?#càE]ˆ¤?#Ì•Kœ˜B?$(c³ê¦n?$Èßš2­?$à…’yOý?%A¡!¡x?%”ð8Í»ì?%Áöî[?%³g4w ?%e*le²?$ëЬÂî‚?$nº’ ?$ÞOdè:?#øj¨þ«–?$Nã79R?$?ù!ɹ~?$c«Æz‹¶?$d’² ?$Fd"£‰[?$(:(>¼?$:´#ÓBœ?$­Ì… ´D?%œYz1—?&ûźuÎ?(•Vû7, ?*¬·n§¶?+º‚ó°?+d_%ˆm5?*â7ËDY-?)¸צš?(0Uyæ0Œ?&œÈž%D‹?%;M‘ X?$%¬léz©?#Vé‘P¬K?"·=@Do”?".¥PU÷â?!¯=Ï­?!7þ4ŽÏ? ЋÇÂ×? ‚T÷®Â? QlQÅÅÌ? 9·¾,? /fZ¿\N? %hsç_+? eœ„5”?ódÜô?¿1ÍГO?Ÿšl‚ ?¡uÃ@?¿*+ÖvÓ?ÛÕÓÍzM?Èe&_‘?V ¥ä®æ?q a#{Æ?*샪8 ?»W¼r6?bLdÆ&‚?N>}9(?‹a¢}? Úžz™'?¿î)æ½ò?š2Kþ8‹?˜Îª¼á@?¶þÀ†p?äØå‘?™HYˆ?]ñÃS½š?;Ekôê?T ÍF»í?\ýËGs?ý뺂ƒß?ù‚³µ»?<àDí~?ð³T§Éð?n͵´?éH?-~ó z{?·Œ…’®?ŽÃû\È?|R¢/’]?\v2""?.^׳-x? hDŒ!p?P³6v…?CVV¹áâ?—nÆUu)?ë‡GEé?!’»•Y?-¹ïâ?¶ƒÀ °?úZOæ‚?îu6Ï?+³úP?-ð›@Xz?aPú\?€îïª?rõDgh?æ±þǶ?u´At½9?vonm”H?-¢TT? qÏkºyj? ƒz>JO?ïMÚ@ø ?»_ cµ?M”˜µE?ÏÝÈò)?ž px#? l̬Àòë? §HV'ú?I¶Ñ×ý?A«V²|®?ŽôôÅí]?8³º¼È?zÞ³Ér?Qûχµî?$Ô°ŽÂ? ²qÂýxÎ? Ñ´—Ç–?ÐK“V? Ò`æki2? ãÉkª†? MïïhË? e,Iw?›iÏ }Ê?I±™?_ˆ8ý·?œ ÎØ:ç?#Àh>AÎ?ôÃ27?½¾IЂn?3 ?-mº÷áp?»Gí7rç?.Kx‘…?œbls<$?zÙX¿¦?Ͷ”ç¥?”$ Œ?Î~û±Ö>? ‰ƒu§¤ ? ÄjôóV?H9¼}Ü?È|ò„º?rJ+²ïŽ?Rt;¶º½?LÊAªØ? ášÐlð? %mFVè?ƒ£ò{@Ð?Hkù#p?· ïzí?ƒKmIƒ0?Þ®¹ÇN?Û-cÒ?é‰^>?ãó—‘·?åîÛ¿xó? [yp&Æ? G3ކB_? Ç¡&nßâ?!‡›DV—á?"až®YRÙ?#oi}x?#Ae ’??"Á£ m£?!ôªlÐ?˙DŽ„š?A$˪‚¥?5km¶e?s¸×R?÷Aø@„Õ?§_ƒ„¢?ß«{^^?d¹AErÖ?Mµã$ú?Ì! Ë“?…¶mäŸ?*˜Zv ˜?ªbâq¢ò?Vý 5à?>_º/~?|¹ètI¢?ÐG lð/c?§¹Ò,°‹?}©šüØÄ?o|âLá,?hGvH¦?O¿ÚÓŠ?³ŽÀ|?œú“ê?ïg¢ð3?ýZD?ð"¹I?¨VO.˜÷?1óAÈ?‡À†Íè¿?±þ—öÖ?Á |úò·?Þ¯t%€;?@HI?d$HÙ?¥ÿKÒ«6?è°y¨Ö-?Ó…©‰¡¤?0z¸W¥B?°¶í&¢?!…\ `?!ï3LÀ­?"Ô`‰€­?"á væYø?"ç¤EU°?"³ñÚ€`?"Z¯~ò{?!òÈm%²æ?!Ž`©?!@+^¯G?!Í©‡d? ̸/g†m? ” s4˜? R€-ÃÀá? ºŠèD?–&²&¬Ö?2ÛÌwÃ??õÊQ¤:I?ÖÑ«aî ?Ä\Ò‘ÜÆ?©ï ¤H?w†%T?%»ÂÏñ?¿ÄdŸr?Z4É“@?[‹Q _?8ÅbA‹?%ŠCE¿¾?k#¢Ùäk?¶Ê_m>?ñ4_ë?³ˆE^ž?…YðÂ?£ X¢l?e†„§p?òN®»âç?âC`4ü?׳-U( ?ØxŸïâ?ëHø¼I?›Ä €?bû­&²‹?Ë ýTŒ?Agñð‘X?®iÜ.í?ýÍw©Ûú? lŒ8r? !h«Àã? *îáÀ×\? 8—ë‡øu? HïÈ!^? Xqwç*²? f .]œ? t"o˜8? „£¯°*h? •_sÞè?  ;a; à?  FUØU? —ùx‰¦h? “±ø³9? ¥–pv¿ð? ÜèLðyÜ?!='è†?!ºöm‡?"C2aÿ1?"ĉ½\?#8ÏïL‰?#¥®7‹ñf?$¯çZº?$ < ?% V„½”}?%z8—ØÂ?%½$RÎüØ?%¼ý톶„?%só壸?$ö›œj6˜?$ne1JJ?$0É“ö:?#ߢßÇ•œ?#órñÎ{'?$(m‰YY?$Y£Gãë?$k=¡¡z?$XF}öð4?$7#‰Í*3?$0ãF);^?$qâúNX.?%"6úµw?&ÐIf9?'NIÙ1€?(m‘7J‰–?)'f ÄrÑ?)C%-¿v?(³’M¼ ?'š^c¿7¼?&9Tai?$Ùˆ‡Ë•¯?#±0A -Û?"ר%`#?"Eßî €)?!áøŽ­H‡?!¥úïq?!@Óz †? ìv'Ž’? œµÃ? XeJÊC[? &}6 î¶? 6}ðÃæ?Ò9¬ÆðÐ?™¿ÃÖ¨?X­+ Ø?l™éQŽ?è6z̉?ÛÓþÊÛù?ö_Õòü?'ˆËÖϼ?Jˆû*”?+²ã[Id? «†yÄ€?™¾ûæð.?1­qc§?¦ nu$ù?=î|}H?'Nh º?qºÃ*Ï?ÃÆøMÐ(?ßPÔíz??EÜÅæå?G òþî?Ib…³ÑÖ?\z1l—?‰¹IûŽö?ÆN¯Tî‹?øf<ƒÍ?#0¸(p?ÅmãÆ¦?21÷»y0?D›(Wã6?,1ö)&?2òd†? <Å-;f–? …3À?Z8å9r?ÿºZYò?­GÜ9?‚ωU¾á?x"®…? F_À¯V%?gš—Â+ü?™XÓ»?‡tC~×_?Õµ,??º-¶i?¼o?DÔf¸?©.žK"?jÞÞ5q?$¡„k?„·ä· ?Æ>sÂD? 0À*ä? ²2éGù?f‘æ?õ%Ô±?¶ô={ä?Ž£ƒ:?ZÒÅ€a?Á“‡ÒÖŠ?Gžyé6? ua#`¤ˆ? ûº¬âܲ? ÐÍø? ,jU?qá€uK?û§|bŠ?÷' „Ùj?aë^–v? $Wb|a? <{4œ¿? ÀÓëHú? »n¹h%?ú^¹Â‡ï?úÓ×y[&?y3$ì5°?*E ¤±?ì/Ø[Xá? ®ÿŸ3H?¾\ï…öÈ?Èû…?•íÏ4>ÿ{ôC»­§>ÿ|ÎÉX?d¥`U<?õKë’? 'l@? *¾SÎ$|? N[Ù~Šã? ŒØòª? óÅŒËß?! J*™Ü?"TÎLrF?#"ð{kö ?#¸2Äø}n?#Êuª€@Ñ?#([¾ãº?!Ó3´ÄÝ? Sü‰(?*ñ³n–{?ÐgÙ×q·?ugþÛ?A±p>È?´D ?¦ÐÆP?¥áZS­n?ÊU=ga)?Ûd7ò¾?µÛ>¼qÆ?JDê¨>?›N¢³*?¼‚6H™?Ëï“@€?í²þF‘?1¿ß¦ç‘?€Ë Þ=;?š«uæš?6tP®ßE?0¿!å§?©Lµ¦Ñ?øFŽ\oV?ƒF}dµ”?QO?,4º˜7É??¾\Ëèi? M#1?. {Ù-?ÛkÛñ¡?§3†åh?Ž‚©¯F}?„Ò2¹­¶?tÈR‰?G'XAú¢?ëuah¦?\$ýé8¶?5±h­6?¶’:ÝK?­‰†¼[6?€€9¨?$&ß²ž$?ŽÜöºÑ?¿EC¯Ç?ÉÑWä?×å #“?)zKU¢?ýYW;7A?6§/™Î?Á÷öŒ~iª(? §ÝaÇeP?!nñ!Yû?!å‰Hq??" ou¼Ìð?!ô…>ÀÈ„?!³áh­d?!bGÿÝÕÙ?!f{ž8? Øn bMB? ³ç¬³Ö•? ¢ñÀÕ“é? šEAëp? cÆx^¼? uVÞEH? RP>™3? +åËÎ56>K?Ñ×C¢ ?Þ\éÃY½?0Sèè§?¦_Ê?òï?g ö?x«€i1î?±)BYÒ?È2fxï2?ƺ·ûäL?¸B2õu9?©„¨É—?¦ª/’°?µÇ44‚Æ?ÛšePÖ?ÓÍå?`”Ä0)?¹Ö•±AÉ?M$ªd?u÷WÌV?ËÙ5%…ð? 7,'ƒ? ?_%·å©? uÁÇ«aK? ­Óž×1-? Ûu}á-ð? ó„,ˆ01? òÅÍ{Ø‚? Þ7“¼? ¾î>èWb? ˜Ë”[fÞ? lŠD«ÅŒ? :BêÐ? ¯ÿ7[?Å0lEøÈ?¹²ˆØVs? % ÿ#? YõúE.? Ñã;γ6?!X,ú@¨€?!Ü~Ùè?"Z Whøò?"×t§¥±|?#_BPI ?#õ¶z³ðŽ?$“hp’¼ü?%")Ñ,5„?%ƒ¡PQ0¯?%Á #×?%fMìÌ?$ósITž?$m!fv¹?$ ûb?#ÓCVz.?#âû„gʉôi?$,–_;üÄ?#‰œ ?"!M¯]c?!ŠQ}_Œ?!8¤átÍä?!8DT? òæðj.ž? Ìg°Õ¾Í? —–[à2~? Z¥ÅÒö? s¢·µí?×b­¢@œ?}06z{?%)q{Ôh?ÇÈŽ¹‡ã?iz¦Ý'?L:_ý›?ì¢ýí”?îøÑqM?hợ?Te¹Ï4?qhy^H?=;¹H*š?’â8ÑÛ?k ×—?艬Bœ ?Mþ°>{?äô«Þæ?Ûò «„j?Bå~N?Q·À.»?CAÞX±?+´ž÷œå?f²÷¢ìÈ?©¶‘Ïô’?æWèÌ'Ò? nbÿl²?¹*?ìÕœ¡”?±­€‡œž?vdf›?UãÛPä?_voŸ?‹ëÞV"?»ï†U¾Ã?œsIWæ?{ãÒˆeÛ?âÃxŸ¼Ú?UßPR?j.-³>:?¯åÕm!?`ñº-® ?Cà¯6¯Ò?–ŒjÇG?Ì2ØÌ„?(·ý\ ?†s#ë¶?•tØ8’?æ{‡)•?Dk·N4?œgÕôôÂ?AzæeÉN?T^ãD¢Õ?ÄÓ FÚ?l;)w5?+† Û½?ýÛ8îYf?òHmF?pT½Ýë?w¸ÝBxç?ôç|µ_?nXµ›õ ?Å$»3z ?ï»›+êK?ý=a³ ? ›…àÀ?02j•`Z?sÃ¥Ž…y?ÅÀ÷@†?$©Æ*B? ƒûzF‰?ÃÊ€ ?ÿ?ÛÜ%°q? UB Æ?»#¶ð¸?Ji·? ¿æ hÇ? ZÇ#“mZ?Ÿõ:B\c?ºñ Z«?ÈîÇæ?Ôll–Ðè? ÍB ää? sAîI&h?QöÐ@”œ?ëæ£Åû?ÀËu„ƒK?MbA±?Éb3W‚T?@ò^†G¼?µÉ:ñ‡`?aǰYAA?RçDÄìš?arRY¢ð?Bí—G¿Z?c&Íä ? )J7ÎHs? $Ùô„i1?ˆø( ?‹g‘0l?M½ü»‚+?x¬êœúb?Ñq÷žž…?ÎÊâd?ÈÀ&ƒ š? -ì=ÿ ? ³,5`Üy? jLšÐÎ? °nWËÂ?þÉ$÷Õà?®ÉËå;?Ø3øç? ZoÝB½B? ¦þ|ÜÚÔ>úÊzkè>ù; ™–IF>ù±˜Ñò^>ù?CÖJü1? %™ÌàÇ"? Kµ«Á? “l"R? ü(et?!†1ÏÉ“?"12,Ò×?"ðÃãε¡?#¢I¦lcv?$ üŠƒÅh?#öUêR–¨?#2ÜÏ?g´?!ÇJNÜ…?ÑÐB3!?Þí†SVŽ?m"*ç‚ô?«­‹£g?Øh—Š]â?ÜÁQ$?Çš Úè?5üð8!&?¾Ç*ÿz? eºÃ?ízwz&?Y„ ?—?g3±V_€?@vÁ-Õo?”ûƒýü? МA?3aò`*?m•¿f Ÿ?sÙ{òÝ"?ö¢BvG7?ÎÃŽîƒÂ?+Á³¶ê?¼? ñ] ¡? ™P)ý=? :šnKW?³§ü¤‘¨?þµµR8?p•a(ÿ[?,¼-£†H?KH|±?Íûà~Ú?š“ÓI5? G—1hh? ÇLñ [?!I·‹îM?!Öžz“ì?"wõn/("?#0Œ¬‚Öú?#õwÒ9V?$­e®'ip?%6úÑ7+?%tȵt?%\1ôÑÄ?$ýçswÙþ?${ ìs?$ņ[?#Ýj´øñ?#àé½ËÍR?$jùyc?$Pb–. ?$Iöpñ?$Œ^–P#•?$x¯Pýñ?$WnC¡¼?$EžÔl?$Yq;!“?$™ìcêð??$ò›Û^»„?%;[ù º/?%G„¦?$÷Z,ê?$Iî&ø"]?#ZA÷÷¸?"W¶¾29?!t… ›DÙ? Ô‡ŠQÉð? ‚‡(%Á€? o7H²¤? {Ø‘? …à½þø(? zº©ë¨Ã? U­þ]»r? ãZ!t?ÃÈN\Ò?JøåFS ?Ô/ÍåB?Y™Ù?Ùž±êÐ?bv:mö@? Y/2mt?áÕãÕ¦?ð¹QÄz?%§´›Q¤?\–ž‘t?eëâ64Ó?XÈ{f?Dn|ñF?ÿ:2gK?loMZø?Ñ¢ëÔ¢R?vœ Ñßf?Ц©ƒ??±tŸ4?5Ãë<¢?8BAP{ò?†@õ?Ù‚üÙƒŸ?$/ò4…l?];_¸?€¼,Åw?Œ¹S„º ?‡²&¯t?~ùÅ’ýO?…j l¹?ªáÔ)BO?ðÅë ˆ?BêZ×(?zLá$¨?jî*Ú?øHÒØÙ?*ó e?/Èèpj3?Sù^¹nç?ã¼ô¼üh?ã¢~?éÏúèQ?=V¹h?¸²¹¯gš?ðׂY4?„¿>½Ò¦??bóžä?-L?•å†ñ\?Ý׿bÖ?YýOŒ=Ú?4À„€?l†Rª)?è™)»×ˆ?’п6?eÒ úÇì?j ª?§"nFFù?Ø¡(t?—\%Üåí?†û–æ„?KiÞ¿Ä$?\k˜ ?R†Vj†?Q‹õb2D?uA­Þmã?ÂÁ§yª?&Ò¦\Ÿ?zBÇÐ|Ó?—Sæð??]@ÑšiÆ?½‘¿ßD?¿†êê+¿?Ö)®t?S4=ã z? Ö]ÿBôA? Ö„·³K‡?‡rfDûñ?H./0?Sx:çãX? sTnŠ‚g? JB«%Ý? žšåá?0bf ñ?%ì%_H?»Ù³ï°?è»Î Êj?©䬲?-W'ìÏ?´0ÌøA?omBp1c?fwp$„?ptd¡x?CH¹?# ?3]$ç~Ö? ·¹ÖIü? gz±xœâ?ÿ½µNj?ZBï³?ù :?iØ à(?•bmt?:çZÒµ?U|ÞO.? ¸E®Lt? %É©¾À? Êøp#š? †®ì?“ÿl„ª¿?„ÃHÂý¼?èÛ¤¼? h¸`jZ? ŒÛ ê? Ÿ‘³ºM¢? HÛÒ%›C? @‹äyÒ? v"—ýæ?ˆqƒÕ8x?ãQ3‚Ã? GX<Î? å\®‚£ã?²¾TÒi²?‘Û@2?l­jI¸r>üÐÇ*2>ø^‹©>õ…Õp,>óúÙô]ç¶>óW7Wa}/?ü0-ªØÌ? 7~©*c„? ¢gL?!3'ù΄I?!Ý]¬ÀÍì?"”äl,Р?#Gç^Ò?#ÔZí8§P?$ ø6?#˛ŷë?"êÝEä*?!vM%=??1”åß?kù+ëÅõ?s‚+¢À?ÐEÝæls?Êo‹ª@ë?Æx³Of?/®2?×ë?ä ù€í?¡Ìê?þW Y¨?ÅÆcÉ?D?øYU"“ ?¿LØ­¥i?U\¯%ƒ¤?òÅ •v?¿Õ¹@T€?Æ—áƒç?å÷£YNÓ?Õ:¾ ?CÞ=8?¦ó’ò?>Û–?Aö¬'µe?†4e ?bŸên?øu=©æ®?1Õ5äC?Û†i2YÐ?ÁnÖ”È^?À•)†m ?È¡H6 v?Ï¡¶ë¯™?Æ|4®Úî?˜+“î:6?2ʦëa˜?”-±-äÖ?ÍÔO¼|?û³÷€Ä?43ߘô?zÎ •”?¼Øð+c­?Ù0P|Ì?¯&:B®?/ŠÖ9+?h×d¤?‰¯œ] 7?؇ã'ô?žu¾? ÞÐøqð?*=bx{–?Óyzo¸?À =(?›  G’? ©à5å-? €V8 YH? ¢yCÞx$? {R¾¬£ß? #&d/EÎ?sÃÂqŠ?¼×¬ hI?N¦!° Ð?>o<0Uî?ŠGë’`?6¹Ñ)?Ô|<ÔëF? Dû4‘? ŠªÈ±¡Û? ´òÝp? ¾ûë? ±Mß¹? ”v´Û²Æ? oâ´œ? EmBëü? üý‚qD?‚:ŸÛ??¥†¢§¶?ŒGŸÌM?Z›˜âáå?K¬à ?š½Wsë?j^!Ê–?¶Dl‹/?X;‡0s?6M«ø?Å5'"=,?:0fË?k[v:Tù?`{Õßœ?/a)æë?ö·!lÍ?ÕD«8 †?ßgU¦|V?‰kt“/?o˜e?ÏŠÂ7Åç?&ÅÃ~ ?pûÖ¡E$?»G½/t5?¡-:7?¸ºâ~¢î? HšW:Ž? Ë2—,`Å?!Ldô2÷?!­*ƒ»/ú?!×=·ÿ/ý?!ÞêåÃ?!{äÈŸ¯"?!—¡W¼Ð? •JñIå5? <¬Ýã? Cu’7±?/¥œeáÜ?l.ë[Šñ?ó8 ««2?Ú^+!?"A“F?·¨À¶×?|ðõ^Ø`?^f˜’¹? .ö¯pÏ? Çyb˜ò¥?!‚24f*?"_.rwšà?#Oa1Pãú?$57Ю#Ì?$ëÌýS?%RÙîuÁ?%\ç{½Ž?%`ïSl?$¦©þü?$8/CÃÙŽ?#ðGnóhÇ?#ÞpÔƒ“Ð?#û{Lê2Ï?$0À•zf?$bŸw!s?${_[¹vÇ?$r¡|ײ?$MÚÊ?$þê‹<:?#ýP¸±?#î„ YŽ?#ëÜùT:?#Ýò2¦Q?#¥ÏéŠ?#0Îg­/¶?"‚FÜ£¤?!±±¬aþ? æ#ò%B? G‘p•DQ?ßÖÍŸö?Ã7¿‡Ž? Ò›!™? ;ÎÿòL? ^Ý3<¥A? \¦Ÿ)÷w? 4ÚŒõV˜?瘃õÌ2?Ph¿y?µ‘ß®¤è?ˆ§´ãò?|•“ºç?áG*}lV?Z›?fp?£n‹‚‹?ãOâ —?þfÏýƒ´?6áv5ùê?a†W(‹à?N°¨ö«?ÖlÿùmŒ?æ¡©ÁD?Œªò2‰­?÷~äŠ.?l;“ƒ®?-Ï)«cý?g(\xž?QÄÞ-·?::>ãrJ?‘ÒØoé ?üÝh(á?^;ж8?¨‡qðþ}?Û {÷È,?ýâÔn?ÖÚ~Nò?9»lúäL?jûç?µÚµ7D?pZD=‘?‘‘QÒú?ùM¢£â?)«Éee?ú'3;J?\ÙZïV ?d‹”Ú¢„?Gœ^Qd;?Q%‰xž?Éëž4†Y?âý‡Dó?¡‘ã*Jî?ãÃjdz?Xá^åå|? èÎXØ?N¤¥ãŸ˜?2OS³È?H¢Sl?Ì  Gb?éb Uj?x‡Oߢ?%T 8ä2?)õS+œ?zøß¬½?è§ ?ɪ¹ú~>?÷ÜæÅ_À?Qa)˜Ú?ÐÎ:Û?US8´?´û?Šˆ?ÔÎU˜ô?¸&N¹ò?”w†I´?XѯÃ??cÆ}st?©àe÷QG? \˜w ?}ƒ»|Gƒ?·!hC®?Ÿ$šÅl?%å$¾ûp?S%Ås?D¸lv„?EèT†?¤? 7—s Ä? ¢·å”ùÊ? ²g6@pè? v¾ÕÃ_? 있6ó£? h´{Š? ›eÆ¡çÒ?~ôJ“`?/òu'‹?ñ*mœáç?[ú¦´9?`0M˜? BÐ6?ކˆ¢¿?‘1Q%·?®épA_?™š ÷UÞ?¨0A*@?Nýœí?Ê&¾G¸? šc@OÈv?\æÕù ˆ?“Ù?pàTò:-??÷˜&?¹?ŸMŒN;„?9ÒÓÆq$?_z.Ëhn?MP*j×Ð?uÍ«’ÛÊ?³ ÷ó}?Hæe.g?¶ÙTîÔ?t-Ҹ?³‹Ëº_Â?SéÄ2µ–? ÛË!¦±? xpf=¤¶? ¯ßK\÷Ü? ÜàžÞÛ? :Óè%Nþ? ÓÍŒ²_Ê? f¸ ìeù? †ZGf§d? ÖÓ•çô? ½¦>ýYdç`>øhÙDM»]>ôªõ¼/M>ò–¹ÓÍ>ð·g4‡Ç ?Zy«àÆ?ì,UâuÎ? |RêÁ]?!,Z·Ü?!ïЮ'?"¯çð5p?#S¨Æ³2à?#½* ,Næ?#Ê%3e£Œ?#[~°I‹+?"cxx·ÌW? ñÃ{a(f?kd.?è')6É?ìZÞ«?éºïG?¿Wm£ü?0hãU?Ë›%¤`Î?Ž.êÚ´d?BV´7–x?}Ieÿ{É?dRÅuÜ?)9Í<?’Â]ç’?ý:º®µÄ?|»˜ð?0íªÔ!œ? ÎIf…?'ЏïÔ?GÔÞ²?cw"Íß7? ‡ÕQÄ?Olt5ÒŒ?Eé×G?qðåØÔÚ?4Á”ä?·úã 5X?ñdòüAÌ?¯2ÿgö?·k§:U*?ÝèÜxî?p´ÑD?#C]ƒ‹+?!*¿ì|˜?ê Ž³Ý ?p¥ýTšŸ?¸dòÐVc?Þ˜KþèÛ? °K&?Z$‘1#Î?Ïçƒ×?Q»]ÉX?³? qA?Ê ¤ÈÞê?€K<Ò"?â BãÈL?‰Š_9ö?w‡¸Xò€?<ñ™D·?Ÿ0Ss`?¤|é ƒ?&[ŸS?ÝÜ©Ç&?w£ôNþ4?¯ÁÂooB? +>ùu1ò? -£;8Ÿj?Ïy0³ ?ä3‰W[_?Þ–âŵ¤?ÍÏÇ~?L>¶l?˜^ ‘¾Z?ÝG4v?ü1¤F0¶?_=ô#¾? ×jƒ¤? ‘û/4? Ç`‡°æ‚? ä ¶Œ¿†? ÝG]†ëæ? ÁfâÒŠ? Ú†ã²? xÄ£€ëÓ? Lšê²Xf? ²¢štŒ?IÊöF l?2&72æk?ïqÖ8íº?À$¬¹Tä?çÐ&ï?’øÞÜi;?ÅòŠ`x?^¡m7A¾?$ªö¹(?ÚõÖ{ð?Vñž·ƒ?‚îÐÖŒŒ?bu25&Y?Dß÷ÿå?­SxØŽÿ?i7?Ž?^«ŠO?“¼á7:²?õô´"Sc?eøXå?Éc~™Ç?‰_q '?f¨TU;?Ô³T;£l?…­N}þ? Aš~Er±? ىʭ†?!ma†ï­]?!ÚÀdHzO?"‘ÿšÛ~?!ð?Am?“?!œóÛ8…×?!"¿Šd¨o? •"¤xˆn? ݬKš?ãf·?ØùÌ›ì?ø‡Ì×ô@?Y XF.? H6ër?ïO™´?]ÁUgÆ?ÜU‡únã?†xV¢×?ix²Ì„?Ÿ @f«8? œ× «ÃÒ?!™`yòŒ?"°óŸî?#Àâb5|g?$ k*¸G?%,Ÿ`Q¾Š?%U’.Â×?%%·è‚ÕÊ?$¾9MBÚ?$J¦9·ªß?#ð°öG'Û?#ÅF0Üî?#ÉŒþB.®?#îÝâqÍ‹?$¦ª€f$?$=ìÙkd?$>œ †Ïf?$cúA_ž?#ÜéÇ <Ô?#’¬É 3€?#It¸.ï?#¶>\Á¨?"³÷ݵõ[?"MEÆ6Á7?!ÄæÁt™o?!Å6³èJ? soŸX׺?Àcu=Ù¹? [õV_?å©ö[pJ?E,WŽ?îŒü+¥`? HˈÀ³? u j%,„? kåêçrÔ? 2i8Ò?´â­X˜?í¸gGÅ=?%ÁÌ’yÎ?c)s‹>)?¥­Ýbex?õÒq×ö?h`NêR?øµ]¾?nÜïÀ¸?+‰%dE?d¸…õ?ã`†[“?P7Ôm;?·Åˆ{?¯ø‹â¡s?x6= ¼,?M)²x?Mû®µ¥ê?ºŽMì’Ó?¼I¤3ÒP?\¹T}Ô?|^çÜ–?Úº"Ü?ÕÄQÆ;?ßcîÝöË?èÒ¹vLÏ?,€;Ž!?Ö õ?1ïƒÔf?Œ¬©`ëÆ?Ûyqúº?øtç÷2?(§;ò¸?Y¬àø? ¿ÿÆ?`$‰(/V?ÿœ€±¦?¯ @ﱿ?5#1«òx?‚@˜~ÁÁ?| Oø?-ãÙÝêU?¾¾H Ú?eAl=Dæ?J£¹tŒ?zœçå§?á+XâÌ?UVÈpûr?¨ýÄÛ”:?¶îÜ')?mЬ@ÈJ?ÒŒ//G9?-–¸‘?9) ¡h? 6R+2|? i±Ÿ‡ñî? Äd]ap? ¹!p—Òx? ? •ái? <ù”è´? Œi&…Å?ùhÅwðº?!„Œ9F?’pl3p?³hŠe5.?~§o#„É?/ÔD#F?äÕöž? áõÚƒn? LPQ„u? -‹`p? ? G¿P? !q›a®? öi's? æ0ÂËB?Öøp?&[Î[‹ö?ëïþÉçùmä>úF-Rµ†u>öéãÂ>±>ò¾ûÂþÃ>ðé_1«´÷?¾mm§ûÔ?_Ew@? C{;?!}.@•«?!Òñ u\”?"“l¼g¯?#&>érii?#mãÿäZa?#Pp!Í8j?"½K„©æ?!µÒX9¸? RŒ»Ùyë?‚¦`!`G?y2N¦x?ül¾{?d#ºq{q?Ý"çš|œ?\ü“O{?¡cq}ç?Ã?EM`Æ(?¾Ù#‘/ð?ô?Ê)U´? ºÚQbú?6œ”Ô”À?˜õýNiâ?6I„ú?î¶¶*ã?ÇnC¨Æ?àø6ï9¼?Ícï}).?[ر’«?¸ ‡Br?)K\÷‚´?öpáÞð,?P¡ÚÜYz?=Lð!!?•r2ô ã?j"9y?s¶â0pÀ?r‹9AŠ?çÿ·n5?ÂZ´ö |? `ÎysR?öE4§~?Ä—13œ?ÈžU狨?DY~¢?X—l¬÷?Lœjã$?!©Ï3 ¤?{o5Oƪ?ÐÒþõX? sJGçéh? ÍÑ×"mJ? ô{"æ‘>? ñZ$? Ù °©q™? »¶d;Ô? ¢§ÒÇš? ˆS»U‚? [˜_×\? n½9‹??Iâ2?êÇeãß?¸ˆ/xˆ?ËQZ}È?UÉ4%=?f-³+…?ä ¸ÿ ?›ihq:™?NPÄèŠì?ÇÁ].,´?èWdí%G?­ºrT?1Å•ß?¢å~‰Âˆ?4”ä@ÜR? HTm‰L?3…z`¥?–O2°ô?žá“Ðd?~ÄŠ·?Ù:{ã¸?2ã×ÄT?±õÝKfX?y^Ä€±Ê? H˾Ţ? êÄNw_?!„ÂÛk)?!òýF¤t?"éïgr€?"tºÄ±?!« ÆÆHŒ?!0QPƒ8? ¥|Çà=Ë? !ÉrL?jUï?!s’ź?Ca"¬˜î?“çådj?kzËÞ?ä”aÌ?Ü ÷½Ê?ÿg‘Ç?W,–¦f?þxÚŠ%ò? Âq' ?ººý2Wâ? ë1´DÔ?" ¤õ–N?#HNÎ@@Ø?$CIøæ7?$è™?ªy?%%>Ó ½¨?%®V.¨¤?$¢M甥?$+6ãÈ›?#Ä2[€Qd?#† ‚ËZ?#w—[@XH´º[?!Å´RT?!BŸ3_,Jé?Ó9·¹/?ź]Yi?r­Y’´Ï? î»X?ÄÒ;Ím?Ò¶D£u?NþŸ7G ?7T[}¨}?qTv$ó ?Õ²‘“B8?>5ö&}?‘ £¿·8?ÈV_e¯?âh?ÙYñî?]/–ÊÚt?ÄZ³$;?Oè„(Ÿ`?öÉÏ–×j?¥í$L Ë??OæäßÈ?¿4”?Ÿ)n.úT?1¡•|T?^›ñ'd?Hfæ¤ÉF?'9暘?4Œ¥ƒz€?£bã«Û¾?”ï†Lë#?&.l(Ï? ¢™¤?DÊw®$?s?BŒ’?>aÙ#N,?dóÑ<.?Ó3`á†?§J—&ON? Ò½8“?…_Ì2? ¿Ùí¦­?Ó–&ŒÖ?Þç%2üÞ_a]‘>ø£Ã>*šL>õ F»¦¨>òûq®Vt?ƒá~8¥D? ²¢DY? !"~¤OJ? Ý¡2¢?!§[œ›A?"[Û+Ê?"ØMÌs É?"ÿ8þ”Ñ?"½šˆ?"Ι;s?!Xpžû?~t^÷"Q?Óoc,€æ?fÿÚÒ}ì?‰ÑÉPl”?rØ„Õ?7ž>;?Äýy«TH?àäÈïÚÿ?0Ђf?O){ÊÂ?÷ °§¥Ö?§ô +¦?ÉyPfæ`?H¸†Uÿj?ŨT0d?`„PYƒ?%ü÷Õãƒ?hÓ`/.?p\†©?ÑÇ3T„?+`ĶÅ_?ê»õÛö?ª–F¸Ê?äÂq]«\?êד¼Ã? TB?b[½åsì?7þ×3a?vÈé– ?Ô§Ÿü>m?+ª÷½ñK?‘ 11?ãÍZìOƒ?]ѯý?ÑÖü™J?E\„6|á?l^·d!Ê?thè‘Ùt?—‡²»f?þì›* ?²òùB?Ž¡Ìpöè?[™ƒ¯¶?áÆ ?»‡ÎwS?Äg?ë¡Ä?O=Ûì™Þ?ä6<p?Æ"ªx?!mfU¿’?ù0 ¥ ?)¶Í£[Å?t°+‹f?›òÕræ?lC&«¡ ?ÁBqV?†ÉR¨(ª?À`o‘þÓ?“ïd†·Î?HÎÖõ?3ƒ˜_âÁ?¡ŽboŒ?»;t"?}ªEè'µ?ÀûÒfÑ~?CSeJP?º÷h£DL? ts·H!? Ô ¶Õ¦m? üç}‘ÔÆ? ûSƒ˜þk? æ¼lsò? ÐéíëëŠ? ÅNWrº? ½d0~? §zÁu«J? pk±ý_Û? €¯½€?VÅ?trÙÓö?Rí$²{?â¿¥8?{{ÎkN?Ô—áV«ë?rý=™ß?ž`ò?d¤¢ÕP?§åêøÆÞ?W/ O8ç?·vÞÇéá?ýEƒÀW?dYtïe?§Oï©£?&Ò¾c—?zü2,0Ú?î•8VÈ?_42Æ+®?Â…§V W?,*<ëôÚ?ÁÍéx¹?¢X<ëC? fÅ*ßìõ?! ¬â‹U4?!¤TeqŽ?" •"&’-?"*‚´Ò¾;?":É?!´˜“šÞ?!Dúxß”¦? ΊÁ@)¢? [„+Ÿº‰?ÞF2JWm?0Û»¬?Wí°¢c_?²ˆ”) ?' I®ì?µÙŽL¿4?X/l¸Ã?ÃÑèà¾?þWijû6?H:˜'5°? ,Þƒ4?ôÖÙÞR? X&÷¦*Ê?!,œ>6?"ÁbÔ/?#ÃÚÆ&ð?$oµã8G•?$³yßï&?$˜ǾÎ=?$<Úí‘“? K„k_°?zÑQ™¤?MÕâ4<#?.ÿ‹¨®?(òK›“è?<äø$Vx?s;îkŸ‚?ߤu UY?–Þ1ê¿Þ?›Ñüc°i?ÔÚ#Ôo@?Î&}ë(?»ìHÞ?Öí<‰?.¤Ä‘?0—NÅ$¦?ýæQz[Û?ÁüWu?§Ô—¹Ýº?ÖÙÊHò­?`0Äúü?@Ÿ"ìj?`½Å¤™?£Ðü¡’?ìlK§ L?'âaæOô?SO–q?y¢µõ"?¬÷*º—?ý$ÓŠ[?rHƒ?É('ê?´šS †?^Ì´Ó$Æ?è1UÕ)?-çŽ.0?µÝ?–2|$tx?ÃXmĤ¸?Ã1PŽ›?Å„ òMV?÷*õS«$?{•íùz?jå¤þn•?ÏZK¾Â?í,ýkà?¯_a6†0?À†:†Ù?‚óæ¾Ùê?·Cû•\O?D¦*çÿé??iõûîG?ÜLzЍG?XáxÂ?é AÇ ?²ž£·pé?•Ìdg\?‚Z&“ b?7¸Cðì?©dIJä ?§e¬tK?mþ! ?�âÉÐ?)ÈË}ŠY?–+ôǧ?Œ1  Ur?ØŸ*hv—?¼ˆÆÚ?” Ä c?$¾¹÷8?´£è~æ?ˆÈ^Zu³?&JslÜ?]D&Ý[?TéÛÛAÂ?L¿•5?5a —ò?($,ï?ê? -m·­í†? s’)5? zâqC? 7»ŸÐ›? ¾¯Þ§£L? ”¥°M?‡¹®×ÁÐ?]Æ ûZ?ÖòÇ!p?º©ai°é?ìkÊñ†î? x¾­©æ>? ›p Ãq0? ²ÁÇ¿?!CD’?-H"”ýæ?ä$F_¦y? ûƒ¦Ü(?5ÏÙP,?ïüsE~?@mè¨ð?ž3 ÏM|?<¦LÉÇ•?s8â7Î’?[„?¬è‰ æ ?.jnUw ?~çEc×?7A!{??ØeS¢¸$?ò·?<’AV3?¼R$–…o?Ê•P‘?"ÔìÀ%-?a{hzsh?\ò0Õ•?»Õ-‰Ž?…„˜Ú’¢?Ó­œ«M|?îÓîÙÎ ?oÜm½?2Ä2yâ?v,ß»ïà?Ù×iÜWõ?hˆëtÊä?@uj]?Ð1¾P•}?>vŽâ§ ?,~? CY>ÿ%Huòc>ûbPnz$>øœíŸ[Å>õþ“š‹õc?·ž¸wø?@&s×ae? ¯ŒÎçÀ? ÈëÄe?!}È2]ª?"9iݰ?"~ÝP5ë?"‰Aq<¬?"0,°V¿Ë?!zBý d? ‚2gŸ!0?ܨ û¾Œ?ÍýTÝ­?³RJ¤?ò=Ñ`Ü?dï]U8(?pJB¢V¶?ü$¢cTò?Ùû¹ú?ËØ|r‚?ýî³1¨?ýѤ|¾ ? 9WF/¯?Ô€/Ék?{+«›Ru?Û·ÿ¤?Ó ªÍ= ?¢»HJ9?‹’·>a1?zñéyÒ?@…/IÖ?.6K?^-ìeÄP?{"œeê¾?%Ù<° ?¾UÞ¼?µùß…?ÐTÉãVä? ø˜@ à'?ÇRhÒÏ?b~¯æDÄ?½¤kû+¶?9ÆÛ2Í?¨.™ÅÎú?ÞSìxÊ?¹Æ‚êj?+L¢L?Bþ¢îØs?4S¾â??¥?'|?–š—C9H?DÍ·vÍ^?+ë÷ì??ÝC¨%?¾€XHÜ^?Êaäø?µ),=?ÝûÙl2x?¬Y»)µ@?· Æí%Š?"Óz ?ïöÎÕ{N?ük,6D?fódÔu?Í'½ÐÈ?­ðø¨~§?ì•eÆÿ?¬Ï½g¾î?é`Êð·n?¾ÊB:?o !$uê?R«UÇ5?º=gaç?Ó<&6é(?›íó-Õ,?é”V“ ?sø}âJ’?î_- ýÎ? ‹¿}fKP? æ×rpkâ?! îFªæz?!ã0ºÔ? òmS(¢K? ãQÚ”w? áMŽ? åë2È·(? â5/Z ˜? ÄéB«?Z? „ÔY ÊZ? %ªoi¸ ?m×mÅs?žyíƒ{¨? W¡¢´Š?Ög5Õ’Ô?  Æ?ŒoåC?+WäUf’?£zCW$?»ëu•¬?aaŽrP,?ª4’4?Ï!÷y·ˆ?¾]YÃ+?¡è¼Vôæ?Ò0MP­?º:ioÒ?_¤L7J?|#È)yÚ?Û‰ÊÁ–?OÏ¥6Fø?ûÀÔ‰¯i?öH!µSì? šu0­‹?!BÇúwé?!ÐOÓá?"&ŠçOü?"8E+ýÊ"?" ÜDf‚4?!¾-\[Åé?!b±ãjEü?! c3¤õ? Äá3!$? …4ÑãÑ? Io-T>? {ìzê?•géÓ>? £ì.?q )Å^m?Ħn,Û?åiŽ O?€‰[ÌÇv?OÌæša´?¾…öÍò?쟗 L?ǽWà‘P?!üV€Ëg?"+q-s@,?#!åcëøÚ?#À@ª¶^?$µzÜ_?#åèâ2h ?#‘,ç…7?#*Йa¥?"ÕñvdoB?"¨H×,ÑE?"§º¾øz?"̉YŽ?#wIÈ?#32Tt?#F2àp2G?#+Ò°ïl?"ß}âG$ä?"h^Ò$Ê?!Ôâ$¶-g?!3Þ¯b¡)? ÷w´Ñ?èûˆÙ?Êiùô+ ?á,á ,¨?NsœäÀ ?6N’×0?­U"=x(?¤ÿóá´?ä¿`ùH? ŠÅµê€? ïÕb î?!´}å…¶? È~¡ÏÎ#? JOjë–µ?PçwN3À?ýbðj,K?½zœ|“?žV@Â|?¡‘¸iIè?ÍïÃOæ?5"Úl¡â?꺡 eZ?ñ3´4ë?-›r€t?o£®êe?ƒÑ÷o6#?H–hº?§?¶o/K$Ä?Üúÿè^n?ÙÊæ5‹?ÏÓ+a78?à·«4¡?%¿ "ýÞ?ªÉ{ï¹?me,ü[=?`P®šÆu?q›[“þ5?È4•ôþ?³€y #?Ó‚¦½·õ?…KC#˜?ûajîG?FkÈ”ôî?C´Ù‰s¥? Ä{Êú?_‚ßMPJ?˵ØhØ? ®†ù¬ËÒ? [ «z? Âàå]„? à<#û? f­ bL?=·‰)3?3 Ô/Pö? p}+S?/Ruu“¤?”âè™?Ú—-a`Ø? ì^´³Bv? ‡‹_ßa9?ôÕBàx?#’Q´x¥?èÞ$'`­?~Ê^ F?©^•?ý”žt¦Ø?L5qz?©›ÃJš?÷„`BÏ?fr;“î£?m&4Ž^?D–»×v ?Àûæšþò?_Bz€ ?€eGg?¶*Ø£39?ú0Ò9[F?µÃi)¡?ŽÛÅÀ!o?f‡Bõ?‰.Ž˜?³o]wÃ÷?–´Щ? 8:çL0e? ·Óeò? ‡º¥NP?Ó-˜k)à?ÒO’?=Ì?¯qBSñv?‚• £(8?_@| Œ?cðq½Â?³Ìsô?XëŠXÈ–?3ì´CÀ?úŠXÞ4f?`m—ìL?GL`÷‚¢>ý²®ö½§>úû.ø,¨Ì>ùR(0?ù Ò?fÄÈ÷á? ÞXiÇ·? ªyÚÎ$?!Eø÷>?!ÎIÅkbI?"§ú&?"Ÿ ˆÙÁ?!Ç'Sæ×\?!(;TF£ö? bmRÊŸ?7¼™³j8?éÕHHêR?+²qãö?‹ äH²?ƒ¢[‚¿?Lj¡Ë*N?@LÒÌ|~?ÑíDBÊ ?bCÂMDT?Ø*~/iG?"Ðú¦ß??o÷˜?3Ž5íT ?¾gàŸ?Äymó´?v9Œ%-¦?.¶sÒÉõ?üDÁh w?×üŠ#?™Mï÷o¹?þ£ú:a?ÉSæ{L?ßvYQîL?bãìdKz?­Íßù"*?9òg·ý?s¡,ŸÊ³?4P?Q?z?\¡y¡ñ?€ø3FÕÃ?Ð0I;èÃ?Y¡wk?àaèºj|?/I¼ðº"?xé¿?‰l]¥?ŽÚÕþ¤¬?^Ñë¥ ?@°"rv?l)4=£?÷- ²Ð?ÉŽšÏjU?±æ?yô>3؆?9³__¹?M¤Yº”?ns*J?-~ í?!6ñ*þ9T?!/ß.6ëÜ?!àÐí)? úRLGì? ¿Ý—ä¼? hæ&žm?åu`Y¿?Ì2t…âl?º‰Á¹Ò?ÿ``+J?ëq¯éry?©P\,04?)8?Úß? ‘†6@iG?!—ö^?"qBír?"ûCð-K ?#)ó$ƒ\?# ëðl­©?"Â<‹,þÈ?"s‰:î¼¢?">ø}CI?"4ˆ¨p?"T \ë6Ã?"^\Õr?"Ô¦æ^·‚?# ÑZü•M?#„ôƲ¨?"üØÁP$?"ªë–€îµ?",‚¿Âž?!E? â˜_¥? 4<5Š?$&ÙÖýª?ÑÖÚ˜?G*ŦÉ?ç‹-@?“/ñj¶?ñ·ãÆ?Äe`„àX? {«d½ï? |ë2ºÁ? h 3Lº±? QYÇðò?¹ö-¶˜?Zb(t(?Ì™¸´2?Fþ×ñµ)?‹¼nj? lËRÒ? N_" Ö”? êg X¡? Ù̆RÄÅ? CkŒHN? VR£”f£?-Y3šž?Ò´ü[ð*?V*£çN?áÝx@?®¨èì`g?ëL¦ÖÌ?’º`mì?lH: ¦?)ÒÁ¥k…?— ¬rw(>ÿ{[^oûG>ý»³ ÷úØ>üŸUæó„?¶ ‚Ê? •ÓrÉ?¶Õ¦ía? VG¡Ôð? ã¶xøæ?!ekE€r?!ºê3à"?!Ì-ehR?!œžârL…?!=ÕÖ9L^? ÏÃe®? pïs'ï&? 6‡÷ Û? 'þ»<û ? ?¿•­ÊÑ? n^Üv°ì? ¡ˆ±WÎg? ÌíÕo? 鎨L? ÿ@^2&Ê?!­ç?!+ ¬¡‡P?!A#¾T;9?!Këà:?!?§NzÁ?!šüÝ!Q? ×bcC†? “~’W}? ]•¬#\? ;*‹5öï? zÚ[!(?µÀ´>Ž?£a2þ–\?ÏujçøÎ?G|­­c ?[jëÝX?‰KÕ„?Oƒx?ËÅ?Û‹hJ¼?·¦V… Ù?Jä0IL?{}½8 ?Ò¤IÈ?–Yæ—?÷›³B]A?î øÐG??[b¸È?J¶¬’?ñƒÒyÇž?š÷”8 ?ˆŒ?uÑ?Ø…aP?~È—ìü?T#Þ> ?,Û¿.ëŸ?ë©UzèÍ?‰]ÛèU“?o¶~»V?›€ˆí˜?>\nóŸT?÷æ 4:?ÛñþD*\?¬q0L? +GPU'? f M-Æ? †ãÇ- ? ‰A%„²? d?@¬ýB? Ëo›ºô? a¶5a?úæ£s¡i?û…w2ù?kä<Ìfû?wÔ>k¤? ÷±Y?8$HFÁ?‰_ÝêÖ¾? dÝ_S ? Þ,̃Y?!"ðñÐÌ?!3ì)¨‹?!$H‹a?! á-:>ù? öz\ÓÅ.? ñD¿È>L? øŒœË?!Qõl?!\(,DU?!Úˆ¡~,?!MfÀ? ãALG? ¨M~-9? fR{~Ä? 7d\# $? 4š'lT$? f ¦ºÆ“? ¹Wïíû?!‡i}ˆ?!*Qæz?! ]ûÁ/|? °XPü? 9øØûyè?”çÜô8?óÄâ~~6?›aÌêÈý?xº.-˜?oˆPÔBU?qŒ‚+¸ ?ŠÑ‡Dé?܃R¯¤ó?ˆj´#c? J€ã#=E? ðÚ‘T—Ã?!”«‹ üY?"iTè¶,?"G^£caŠ?";õ6ùÑ?"2º’?!½[ßWÎÙ?!r#Ò°?!‹¡š:~þ?!¬LBÒ?!á^-ë»4?"rÒ£w?"6·/þ ?"9;c˜ è?"}em?!¼º|ûÐì?!0ÆÁHZ¤? y¤ %‰'?l 0 mB?*ÚvãÉ?(rÂv?ÐJ„wU?〣GÿÉ? ?}˜LO³?!ðŽh9b?!Ï cïMk?";ƒï¯«z?"WŠtN ?"6 È¤ø?!ûaú×ü?!Ê]Ê?!½™²ÇûI?!Þo™¼n?"$k5˜i?"|1®Mh¢?"ΓËEƒ?#ñqDÎ?#(kr?"åÖ<Æ‚?"ˆÎÏá!ø?"í£9Ø?!Zª†’Nþ? ¥R÷J¥à?â¢ÿ¹­? FŒF?˜Ì§Áµï?ò8©³ø©?Á¸q7Fô?Á «Ì$?éSN+h?/Ä“¡4? 4–†ë†? ÃÀ—pº)?!ìA]d?!1ו°? È¿ç´o&? 5©”b?ð©VedU?]™Hc?Ý”Ÿ|²b?ˆûâqžH?gœFCÜw?~(âÔ?×vNÎkù?+Øj©M?|¡" €ú?³§©A??ü$ñQn6?)àÆ¶M*? Òa¿ç{?Û>øeç€?c虺Ê0?ËÌ ™I?ùÎA‚þ?oA€í€T?Ãǩ㿂?&{ÿC(7?žW·n?29ZÃaÛ?ç-2 _¸?ÁJ E¼¬?¿Œt ˆH?ÚƒSˆfY?qð6?3vÿÇÄ?[&Þuê•?|ñ»M<š?œîÚü¾î?¾±Þ_L,?Þyäí"ñ?ïP©ƒ€?ßm?©7u˜Þ?R³Ç×m?ô˜eÀîÄ?«/›`Æ?ŠÐ Ç?™Ã*6’F?Ô ±ÍÿÐ?4x÷ ?¶ºg€øj?U’…nŠÁ?þ²)cš¢?GA¼¼?álc ?Ò?&‘¼Qtñ?l‰@æ*?¶„íÁV?ûÂÅzR?3”¦u+×?VÊýÛ«Ä?_Š–g‹>?JÄ$`"º?F¹t?Ñì*Yë(?õas‰Ä?0àVß|s?æDƒn–?­Èw©‚t?ÖþUa³4?:>Ú38ü?½ÓL£{w?\<+é…¦?è¹Ml?);EE3?í°‰æ ö?wwr§^?‡[]uZ? 2 ¨iH?ÚÛÌQ`?)]Ì’3?Wàþ>?¡¼.é(x?°ÉY@P^?Ôýòr2?T"F³?\ ƦdR?U#ÙÛnM? 3½@¼?Ž`««)º?)1uûÐÝ?  ªQ$? ÕlÇst–? ¼W}‚Ô? Q2-? =‡v;ò?‚Ùy•±…?AÎJS?©.¿·¥?Z‹;?aMyÁ{? þzL0­™? P˜ïáWÝ? @Lu´? !ù˜ÚÎ? Å (*}? 2äjRÞ? %ùOF,?Ø ãž?,è‡v€\?LñôÞ?„þSr·?(ûiXð†?]÷ØÈÒ? æôº„?ð´{£U?ÈUyXþ?x&õ¿Ö´?³ÊšÏù>ÿ¢Íá>ì§?É€þX?ÙõˆM?v¸Ùoä?fˆö~0? FîŒÀ‘? Û·Xa‡¡?!T#XRzR?!Ÿ‹šÚÕÜ?!Á):~zr?!ÊÐF­U?!Ów“£‚«?!ì&@Ø?ûžlÏ1? ˆ¡ÿdž? ó½U¦ñ?!.èLĆ”?!:]ó΂?!%|zÌB?!à )ê? çè,a½l? Ú@rx»? ÝØ!Ÿ\? ïB푈?! JÓ~æ?!,;¿›?!@h‰žy§?!91 ËB?!šñòÒ? Ó¨ a?  ËY×7? ˜ÅÅú¾? Ê1|kL?!$ï¦f?!€t¦Ýè¾?!°b} Ø*?!œ¬¶ƒ%P?!K©„§–^? ÛÑ–Jö? pjÝq? øñ8"ü?Ú·!Õé?—lš‡¯ë?\2t€Öí? ÙáÕjŒ?ü?xâh?·×r}?ŸÅq,ÐL? J`¿AX? è¼|CÖ?!…¿€n?!ø•XÊô’?"(D©xE?"7o§"?!Ùÿ…3?!Xæ¶ ?!…A—N$ý?!¤ä 9{?!õ¢­SçÊ?"dcðF:?"ÓWXn¦Z?#+ÁÕú?#Y@Z¨¹Y?#Oã¶*U™?#ãa¹?"l‚+/Úª?!—yK³úœ? ¥àÊ@‰?™øü# ?†LÙ\&?Sðîqÿ?ûR”Æå"? ÂgN¿? ÉÔ«mP?!WD~(¡C?!¤k"É€ê?!®è&—6f?! -&N?!b³Ð¢ù?!OCê{¹P?!i<¨Bˆ?!²Dó‡(ê?"åJí§5?"Œó›ËN?"ê ÃáO ?#i{ð«„?#›ï§Š?"á<• F?"uÜÌd?!ãU­=Æë?!6cß&rb? }ŽM ò?’¶<Ö[â?VE­×AÊ?gÙ;á–?ã‚-9v(?Û¶Ëwq?TmF3w_?>°íž7?qVamÌ? Xè_B? Ý1œH^§?!'{'ü?!$:…A©[? Ñ"£L? 8ý$øßŠ?äiQU„?0Ц2÷?‰ÇÏÔ²?¼€Cc‹?ÔkÓË ?ÚµwáâP?*e×ÂWr?ËoO¸­y?¼'¨·?è0‡qdž?*ñZ"G)?^/‹/û°?i-p¢ý?D÷·¿µM?öߥúˆ?‡Iಗ?ý¬<sð?a[ ›8Æ?»}Á¦òa?Ó#àÀ?~ž‹ß¬?þ …?ŸZôµ=?i}²ª?[È7IÍ?kºöèV´?‡ß«R?šò-ÙÐ%?œå¶Íq?Š¿ ²¯.?pE— N‚?WK¦á—‚?D)X?0ÞNÁ·à?ä!ªè?èp•ßPì?¶nÄ‚Pµ?‘VÛˆyd?Ì—Îè?¼¹Ș?ƒj-¼0?žà]‚o?:Ç´í¼?åcSB({?‘Ÿˆ2=1?-1ªT#Ý?š¦•ƒ?ÇXüàÞh?™Q¼5]«?" -üÚ?U úÊÂÃ?yl¨x¢?¢“ŒÙnÐ?åaÞ¼»?DpÄØT*?·õ£Yx?6y·ù,?wÙLÜ»&?˜#È B? ßuw|u? bÜI? 4¯xñ¥¬? a“¢Ÿw3? í¢Ë¹°?Ñ»Båí?÷'Ú°b?œ›ý e?5ÁÛrM?´ ·.•ô? BÙ:ÉÔ?A²b$m^?WÉ*K­?U£˜99î?>¡úe×P?>Äà=³?ÚeQÔŠÄ?˜PmêmŽ?X}qï%?&IÃé¾?EåÿÊ>?0ØHæG?‹è\T>ý?!‹–ìGô?ÖGïjz?vä¶HÄm?Ã{^—Ð?‚ ™IV?˜ÌÐD"š?-(Éé?‚ó–7ä? Ö¸Òê?Ö-Í ¯’?êÞ@gl’?ù®$— ?> ë:n?JÌCû>©?d”ô”]??KÝr?Õ›¢ç??ËÂÆ§?Ä7¯Óã?˜Òc™ÎÜ? o‚4\[3?  jW¨? ÚâEsEe? —þap›? _SÔ:?»pôö’?e“]æÏó?ó©À35Œ?•†0VÂí? ‡ÿ™j? ¯5'¶ò? >I–g? âgÂl;E? .Õ†:%? #·_®Ä³? ☜® d? YÑ—‡êø? Y,ô`Îä? ÀHRû" ?© ·`‰Ð?kבKG?wüï=?¹q s?g‘ä”lü?,®Å—?'S˜rHÖ?#µÜJ=?›e‚.?ºÖÿ?°s,·?üg¸KÈ?£%ºç?­ü÷Ð[‡? jíé? EiwÅû¶? þ<{?!¢d0G8?"4©ñ…ðB?"¿/ŠÃ%?#JNTFG?#Ö«Šá‹ð?$aqGÝf,?$çaDô,Ü?%bù±ñ—Ö?%ÆDàì>L? f6m¢Ý? @ªG‡ÀÑ? òS¾ð ?µ’FìTü?PN~’?,¨<è?zÚ<? !w÷ñ]? °LÌÿ=?!CHßr>"?!±!ߪ?!ßM¶JÕ ?!ͤ¦œbÐ?!–b¿² ?!cÍ*S?![mb˜·?!• &D™X?" è#ÔV?"«Šõ`Ïþ?#Pk§í?#Ü´¤M¡Å?$8 õõŸõ?$O_t€¿˜?$5öGŠx?#|å$ÄRõ?"˜ @I÷Õ?!‰9í¦B? ‰i%IWK?¦O¶Çƒs?¹ðL3_?c¹êÃ?q? ## ÒW™? ©SçãÒ?!BÎx«ü?!F5~ñ#?!C¯N ”Ö?!#ØŽÆJ?!h“•°Ø?!“zÿa?!G×¢!ðk?!°%÷¸£õ?"4ý¯þìø?"¸ä$mª?#ZJUà ?#L5&ówâ?#<ˆo²U?"ò“ü…?"x~ð`ij?!ݲ~òöv?!.ö´ë£:? y]I’]?—Nû¤¤i?lÂn4^1?•AΕ~?+cÊC‚\?>ϰç?ɱ\”ñ?¸ ¬O²?ßñJ¡§"? „êÚMTó? ýGà#ê?!?B =!Y?!9éÛÚ? çbÓ€Õ? MûËGÚ>?ÿ®1ö¨Ê?.¡ú~Ù?` CA?¾qÐ^sD?`…®"ç?OŠÚ$ý&?t²Ò³?"Y×Eý?_$Á“Å?ÚÊ`Î?PeKAÄ?‰ø%T:?“ò+#õ?„³¶4þs?QcÎË:¥?ü+U°4?ˆ¹–£H?ýÔ¬kü ?fd€x°?Ïm±±²?C”„ ݰ?Í.ôFoD?s6®m†`?9¿êßó?n@?ýN?^Ö"?ñ?43Î/3?û‰&߯?Î;³¹HÔ?‰è:?CcÂ?ÿ—| z?ȈpB¦N?Ÿ§<\ߣ?´”¯—?fõÃvd?Z!º.ÿ?h½ ¨0?Ÿok°Û? I¦‰ ?¤ ü½ ?dJ‘9º?9l¿NUÏ?“·iü?×s|þx?w#¼Yr?ÚerÄöz?ðôŽ\#¾?¶´~Jg?7{>m@³?/¥~èþ?×WœŽŸ?/½BYŸd?¡ô¤jù>?(¢ ›{l?³šÿGÆV?2 ,dï?›×öÛ?ë›ÎåÍÞ? åE…à? ‡#ïy8? ÒæèÄæÖ? ±Wo)æ¦? ;æ1 Üà?lxnåÖ’? [¢ ¾é?øØvD?Ö“ë0È?„‘¶l?øiq m?8Tæ²Î?TM–ÂH~?Yñý¤ù?OŠ ÿQ?5…ˆò0? ûBÐ?Ú¡&—=}?§CñðÕÖ?•*vÎn?uR}ý4?œ»ý§¨?'~ÓùÛP€? Q%nÞ•?!¶D›oØ?!¬s®Úª•?"繓+W?"JF "|?!èé^å—D?!Ü(ÖÌ?!N¥Ñl÷J?! Usäl³? Ñ4ú``? ’ƒÈúŸÍ? F&_{jŽ?áÃê&ãK?Eì?èe°?Û+Dö?·))eOÐ?àÈN?QŽgÜÎú?ûuÕÒ-Í? _0Õ,|¸? ·)™Þ˜? ðMÚ¸˜?!< Uâ? ëF‰¼Î? Á〺Ü? ˜xûÔ? €/&iœ? ƒ]3âƒ? ¤rDn™¼? Üò³ù„?!yST¢%?!KžRQÙ?!UY9ÒIþ?!4{ÉvÁ? ùë" =‡? Ê£áïƒ? É ýú¸?!ÃKãß5?!`þ‰”‹Ô?!¼JʶÚ?!é3‰TpÈ?!Ô‰Ó-M ?!ŠJx9Å?!,!Ë^œ? ÜeF=Ð? ©Ø+íe? ¾ßÞ‡è? qm¨ÒA? @´c–ãÈ?ñƒ»n:?YMÑÑd?ø­ü_?ö? í4Öï?ŸÇ¸®Ù£? LàE:d? Ô‘½FÐ?!@Qkáà?!sLÎY¼¶?!j¢ãÇKW?!=·ï`°?!ÚUä‘?!üÛQä‘?!c]M~ÜÐ?!ôa^Ÿã?"¶s:©5ô?#†RÇ:5ù?$@ mä1|?$ÄÍ’g¶á?$üª•-™?$ÓÊTé‡?$Ei¢¤ž?#^ ä1?"Cб‹Àv?!16T¿Óû? aØ×ˆ n?÷Ž&ûc? W£Ï­? N(pâ2H? ²sv€5b? ÿõ˜Ò?!â‘7Ÿð?! -㋜? ú:»1ã? ê퀈t?!Œ F?!NÊ߆?!Éwà¡Pÿ?"`/Àê·j?"òlµý‡;?#^Íî}ü?#f«}P?#vQ¬®¶?#!Séç þ?"ŸPFí\Ø?"d^µqV?!Xç¢s:¥? ­ó!qú—? ÂÄÀLm?¥€ÂXs??ùù²?àµKw„?ö†‡?{Þ·|«?YcÎQš? 3B3|ˆD? ¸¥Aúh?!#7u‚?!\uÿ­ ?!TEŸ¯Pd?!·Íñ­? j-nﳜ?1¯ëc ?M°bƒœÕ?`…" •?™ôT5 ?+W0þ?éï¾e˜?…z"l?Œ¾•›ù³?T:§¬äÂ?TPÐpü?rKå’Ÿ?”¹_]#^?¨!’Õ·C? óC×8?y•Êñ’Ú?0«‰ê?ʵ■¾?R¨~+´?×Ä'»Ì?g-$Ùœ?Öè!?»ËŸÈ©?}"M ¸?Hÿu‡Ëx?˜)æí?ê¼Ë?°y™ôÝß?dýc;É™? 9y ø? ¿e¢ŠÙ?:·‚‘í ?ÂxûÑiÜ?7gáº?בƒ”íê?¡Ú­ë‡™?•·žhÉl?ºO–áJ?RWÚ8;?Õû×¢~“?xrÔ:F?7ÃØ»…â?"w(@?Db<§*@?»‘]8£?A zõ­å?Ùc5Ü0?yæòá7n?¡Tr´P?„? Z ?цðu“Ï?ü¢ëÎ?[|ìn?‘Ÿ]ã˜? ZW‚ù¿µ? Ò7cÐ? %À­X]œ?VnóÐ?"'Àm—í0?!>r‘_¾´? Ф¬³ë? 0H¶—ª? =Vj«·? Ÿïøò×Ö?!(ö~[µ=?!™PùÙS?!´¸xd¾ú?!YŒK‹ÈÃ? Œ$¿±8?ïÒÜeßs?·1_/øX?àŸêE#t?«q¾ü9u?ù¶óÞ?"º]5Iì?Š ãË‹?&«·E!:?ÃNDÓ˜?*ˆ:?6}Hä&Ø?â@¦€äì?MÞ'Ͳj?° !ר?=润Ö?•O ì?X¼¬²?ú= é°?%E—â‡?i©CÀ†?#¹b4Û-? Ó³PÌ? ôùä]ž?!¼|¢Z»›?"A;fj7B?"pÇÕ"+…?"MVÁĪÖ?!î4¸Ū?!xBrQ?!ô^Ót? Æ4¹Ð? –У=”n? oÛHi•«? B¨ [?  ªk?£IG‹oo?DÒÚs? úìÓw?þÚ=øhœ?0w8Ù’ö? êö†j¨? 9šæ•? sq)G? ²à~Dð3? Ìé†8Ó‘? ¿éF_d? š€±Q±? rCÁÓ‰î? ]Î^Tª? iMê®? ”õF,? Ô¬¼è¯Ä?!ñd”›?!7¦ÚÀU?!2¯gÅ?!!»§µ? ÉbT_F¦? Ÿ±±—g‹? ¥7Ï&<&? Þ[ò¡¸?!1 ®øˆ?!uãÜ4l?!†Q ëÔ=?!Z€Jûê?!€Gº? ¨ÀyuC? g»BžŸ½? L³ø/? IKvéÄl? @¿b’? .7V? »«ëÁ?ïšž¿ìŽ?gê›Þ>œ?KÎUKM$?¶3ÜR‡?Œ÷TÎx? F*å  q? ²„a‚O#? î¸{+¢? ô¤Ò4J? ×.0Æ? »º±)ü? Èç1ã]?!ª»éZ\?!»ŽÊ?"’äáÓ[ò?#æqn:?$Z¾Ô°K?$ÿ24u¾?%Oùké6?%: ¦dà?$·Ù ðÀ?#Ø›°[ôÈ?"ÃiVIå9?!±’I9ÈR? Ü™îj2¤? iö_L5? X«£þè? &yÑ#? Ø)„^V?!ˆràÃ-?!%¼ß,[N?!õDŸ‡n?!Z›©? öüZy¾ã?!SŠWí?!euTJ„?!è9GæUî?"‰È™½Z?#)Ça„á?#£×Vé­È?#Ühs‰Äö?#ÉÚ#ÝÝN?#uŒ×éS?"ô•Ö çR?"]xè„Æ?!ÀekWªQ?!&sdþ? –’ïݘ? õ‰¤àŒ?t |vL? Î Ì? Iá"?M?pïÿ%O? 7ѺSè? „?Ĥ‡'? ôÀÚAè?!MOé5u2?!y'Åz¨?!hêcLÞ?!G«hm? |Ûªg?W3Øy`?oÉW)ì?u2…å T?–¥,´ð4?ö4„º"?¦ðú‰?¯¦†Q)¬? º *“S?¶œyÔ?–·„Hä”?™ã©Æ'—?©õ/€‰`?´Ó²-÷E?«íôxø•?…”°wmN??², hÏ?ãh‰`­+?ƒ:dÕÜF?4 j'×I?bfË¿?ëºg‘?àÏ÷ 3z?Î3K?¤5‡]#?\{°®õ¹?÷szõ,>?{ùŠ?ñ;¡ºüÌ?fE¹J>?Ë{H™ŽH?ïTG{ŠË?>ùDt…œ? »Á~Dæä? fMvî­z? @©ï§¡@? N™¯Š? “õZ~j?Þ2 Ò?ç™û:h? Æù‡óH?Ù·P²?Ýʇ\x¼? kÖj_$?A¹üÊ?^H BÒ„?=캯—?Ëe'y®?û´>„?õ Å6ç?·ê®LVN?dª|â’? Í’ËÔI?¾—|ù ?s¿(ƒ/€?))¶"?­RAL¸? ï*ê ?;ƒ²E¥Ï??\"m?.ëÌ7£?(,@çý?§ ©‘yb? ®3qŽÐ?  [ê*-µ?‹ò¾3V?!qÉø?2 µ<Ò?AÓ7åï?'wVçsb?Ó¿z.f?N0éøâ¸?§Bt+?éQ䬂?Z"}?!t ÝÈ?8®Ý1?ã9 ­Ø?«$Ò"í?z;– š?hÌÎuEf? Êä?ëûýÞ?À¹ÖŸ??¤Ée§q?pþÏÝâ?ÖÔiêí¦?“ ÿs5Ñ?‰ZÒ£Š?ÔT˜l?i?Å\É‹¡?ÈBƒ›V?uøïç«-? “J÷)€? ÁJN8Ä? w[±^D? œGÙÿZ? (øSp?´‚˜Fm,?Ú¹!«µ?ΓMKK?B:õ÷HP?Ÿ¸ìÙF?I~%šV?)W—%[?·T$Ê›*?ºßx+”|?@ÒíéXt?–+ßêÔe?(š¾X#Á?T8Á',?9þÑUÜ?°'¬¶o? _Hº-´m? öš• ¹&? V¹µj±\?–;Wà“ä?à-áŒÀ? è2?¿²?FC•"Ý?²C!Öx??·NYX?@DQ\z?Wî¤ô¬?E<ÇË(? —XuM‘¨?ïЭ^ ‚?€ùn’ÔÈ?i%½®I?¾í ­;ó?”oÍ»Hî?ú"×O?ªf‘‡º?U“öð ³?­ ?]Ò_f-O?>î÷¿T?©ƒ´ç6•? ÀÖ€™®?"T†¿Ø|Ã?#üëhDʈ?%œƒÛò„`?'é×É~?(7 Ø’®?)—J Î?)µéídEê?*@àÛÕä?*¶DNþÖ4?*ôvk–×2?*Çl€Ñ Ê?* ¤Ò`b?(ÒÓûU3?'J!'§?%°K)Ÿ?$/$q¥?"Ò,PþŸÞ?!•iC³ÎH? zkg„ Ø?'¨Ùãü´?þÌz¾kQ?ª¥ù9ü?1þŠ Ä?`IÛ®ó?½ÛD_ù?Él˜ôeo?£Ñµë­–?M[e w?ßNæŸÃ+?€wêˆó?SL¶Èn?m˜ÿ#îx?ØÈørŸƒ?¼&âA^?£K†?!8ù¼C?!+,û=?!u‰Åõ‰?!ö%-cšÖ?"žH tã?#NC¨âlÎ?#Þ[HÓqî?$-c®&Ö­?$-!˳ú?#åêR+åû?#o ·>Ój?"åWLÎ?"Z1'Ú\?!ÖZVÕw ?![‡<§Žk? ëï ‹? 7ãe? Pý‹(tX? ;ÂÃìõY? RýtRÞ? °ïëà? 匣a?!;÷\a?!|· ˆýØ?!“BYN`?!qm'1×?!iëŽö? tiA¹°?L|¸UG5?oIJF ?ze??–lžK?ä8g“ì£?{R‘œì?f$²ä.?¤ï#¢WD?,¬š¯Ââ?ìï,ù‘¦?Ó•¥œ¾?ΔDÎq?Ì“? e?¼”$pÊ2?’T­¬ "?M 9¥,G?ü:¾Î.x?ºØ0&l=?¢ûwAx½?¾{ñÓ\3?þØæÞPå?ByŠp?cQÜí™?E,ñQxÎ?àœ:¨O§?@U¼?|ÆÀ H?³èÑ„8?Õ´š?ç’¯Y¢’?z`òGL? –5±'£½? 9ÿ4ƒê? þö àßÌ? æÄ„Žn$? ù4níú¶? ;òùà«È2?|õ7N?^s DÔÓ?Ýü^Ý•?ÍA·ê?ƒ`’Âíª?\R\µ?s@ìô.U?Ý( _?™$®xÁ)?‡Âô¯D?g®jóªf?êãïàÓ?É!nê®Â?àÒâ%i?J7Ù¡‚?Uô—IEh?qá¹°ò ?øË@¿Æw?=¸Rh³? }D‹"? %†ã†Ü? W Eÿ? V5É€? „s{Ù0º?…ó¨O‹?æüVT±? 7:?wœIû;?ƒO² ÿŽÝ—Tçþ?wרá_Ã?´qÎ?Jñ,xË&?cNþþS?}~FC8?f$‚tv7? ŸX긹z?">hÕ[Ó?#õ´o ?%œq’ž N?' Ò9ˬk?()VE Ö?(úsê½&È?)ŸeëhÉx?*8{É6t?*ÅLùt²?+§0þ?*ô$Ä@?*'œ,(ä*?(¹Ç4¬xÖ?&à™ú¡N¬?$å?E¼n?#Jð¬Ô£?!Y¬wþè?à'Söú?œó;9Š?40gWÑ?:h ¢ò?S<ßwŒ½?;M´ó–?±Ð9:Lh?TW}j‘? [ðêžD? ¾Ê{oÓŒ? ¾ðC.9Œ? bÒ’t?—90IÁ?HÛ=ð®? bÊ݈ ?<;î]÷ƒ?—îlFÔò?ÿ,ê?ÃPÒî-?w ®¹?1úðÇî?èXGÐè4?™PoßÄB?LÔo©•?ГÜl? T͉Þ]?=åÄî¢?¬’*›ÛŸ?X›÷úÐ?Eâ"±H?|ô”n/? Sî²?Çfy¶ Õ? ÐÐàs|?!¥/•?"8¼åu û?"m(Z<?":wFÜh?!µrÈ4 ?! âð¼>ê? jç)/ü ?þO¿x“?¦GõÁ?±P%þ»?æQ[K¯ð? ‘ÚÂ?  !Ña?ç|Ÿ¼Ó?šYç}"Ð?=-mHçk?ë ö”´?Å׿Ct?éNL?XZSrÜ?ôyTÆX ? D×Z«„ ? s”Ï“? }ÈÏ &ð? o¢™ g? `à}? hit°¤€? ‘_–í¡? ГhSú?! ;"½;?!(†jÉ?!–_ª‘? Ó¾4b¨? }Pf¯áQ? 3}ˆ¿»? ú僀? ľ­? Ghó‚Ä? hª Ýé? ^fØ“›>? T{ÙJË?C蓲‹¶?:ê­^²~?g ¤?ADV°À? ËåǨ?V¬’~92?™ôä/Å?–šf .?;!ù¸¹G?ªÄÏ0¶º?*y (À²?ýÄ™­ ª?FxÑF !?÷î#ÿMf?ßÝZ=ÊÖ?¾î¨ªÀ?b_E íé?·ùÉ_ô?ÔfÚÑZ¹?ìz‘5Ú? !A–@yá? †ai÷Ê?!/„›½Z!?"§- L?# ñ’ˆ?#öš€4K?$¬* ä_?% Kîɪ•?% ¥gK?$¡P<á‹D?#ç–y&A?#¹™Ž:?" kgHrÐ?!qDK>K¹?!pCÜ6? úÓ~zÿ?!0>È/ž?!MPóV›‰?!ruUL ?!{“#é?!gåQˆ ?!FüÈòî?!-‡Í'ßK?!3`ýSá?!mG‡£Þ²?!ä² í$}?"8ø~Ð ?#QrAôÎ?#ýß _Ù?$k#f ?$†Êy·I?$U<¬”*?#ïî×`åá?#v—£ï4?#y…ì†P?"–lÏ•o?"4qô y9?!ÖÐ9†Ì ?!~”1ȸ?!5@’® Ä?!^{?!+¨È·x?!] ä§ô?!S•sñÇŽ?!\%T®µ?!±ÅzM Â?!«SÄþ*°?!mŸâ•”û? öøÍÞè? NXAùd>?ÿÆi!?2CH|J?Q6l…š?xõ–ú¬Ó?Åôl1?PÓÅá# ?(Ù†Ú§ü?P jˆ?¼ÜeÑà?`nAI‡`?+ù¯0Ö–?¤!Ò?ÿçÞÉG©?ç!’?¹PaÐ?x¾ceUÏE­‰?w>Úîlz?ÌÛcöÝ?‡@¢ñV?•”dÝÕI?òA%ÿ¸ö“l Å>ü¨=*À?&8˜`)?C²Â}º!?ž$ÇLô‡?dó¯Èsz?¿o!øN?¿;ºp5ž? ,ü=Ê:u?!´–æÿ#?#U‡ Ï—?$åM'…Œ?&=KD§ ¨?'KÛÖ«Ã?(ÁìZ¡0?(Ø—_Žâì?)“äèòË™?*El,†In?*¶  ¤­Ü?*œx§‡³d?)Ç?e•¡?(:×ô÷a~?&0UR"F€?#ù•8«,?!ߨ-9Ó%? Dç 8¾?7VT´0›? Xt?Ñ\_ýÅ>?kd-”êÌ?Þé¡uŠ?M·â^?Š$b!?-¸Cµ?QîSÈ2?øÏÏÞÒ?öN‡Z¢?f¥†:ú?„QdÕ°?’{šÇ ˆ?¼Þ/¤@†?ðÓ÷?x±)…$`?êCíÐoõ?YærŒV?Èžnb"”?=Ù羚?Â6©ØI?cò®Ö ?3èÓá§[?B'ù¤pó?–% ¬°A?*G鎊ž?ñQlû‚.?ÞìÚeª„?ñ8Q\Ñ?/.U“?žW¿ž? ˆÅj‹? æyšjw?!’Þ4[!¬?!û«°²?"ˉpCÒ?!²§[f°?!Ï2¡O`? gËæ¾m?¤`ngMô?öœÝƒZ?Ò=•ˆ?®ó|B>?sa[¤Æ°?™Ë?ÞèOÈ?ÄVÁWS”?§ƒ‘7K?%¿‡µ{-?ÓÉ×þ#‚?«D9Ð\?Æí=¦þš?*16êó„?¹Êdòb? #ÐPF? R)›y? bÈTWB ? a {Ž#? dX®—Ÿ6? €ø}F%Z? º©Ã —&?! ."î²?!2”9}†?!6'ÀÒâ? ÿôo ïÿ? ™µ¦Ò? /ÚµÙ#¬?¸ ªøÝ?s¢þtýX?Œú·¢¿ç?ËÝ BL?ßÈ8Õ7æ?ˆ2¦Ýçh?´P²fÍè?ŠÁ2¥¶¬?XVèÏ\=?n§òV˜?þ®`sm? #Fð*ò?™Xü(?«ã.t®Ë?¾w˜¨°?€ÚHËžÿ?²€Öý?®@7ŸÍ?’xÞ.ò?Ý^fËÂ?…ÂâTBG?b÷Ž4‘|?A6$ñ&?öE°î¯h?qùáCñ?Ãq¦ÃõÄ?UÔ¶·È?š;ÞÊ¿_? @êŒ\ ? í¸r]F?!ÈÄmd?"¶…Oríï?#’¿þK¤«?$:@ÉèÞ?$’âˆuÞ?$1†!—?$5ˆÁéåJ?#–ÛŸlÙ©?"ÖQs¯,?"á*Q\l?!“Kgœ-?!Ju¡m´?!Aüo‹¡Â?!c³Ð&+?!‘&÷ô©?!¯¡>+–”?!°ÈQ#õJ?!“âzv¯?!dqPèçË?!6Õn二?!%7H?!Hÿç§Ø­?!²KпeØ?"\™l˹?#+' }‹?#ï—•Pp²?${æ¶Ñ²e?$´bîkç?$š@±žõÒ?$G”?~ÍÞ?#àSNœ?#€^¼´îé?#1ižl£”?"ìéwä7?"¦4(B†?"X‡_ÏN,?" 97 ø?!ǦdKÖ?!£žvâ,Ú?!£+¼°Ô·?!½–¿=•?!ܺŒßz?!äÀ´G'š?!¾lm™üG?!_Kí? ËVá<E? ÜR}å?x P?=s?·+jêN?í©„…Ÿ ?, O~Šè?‡¦†ma?æ¥`?íž[VFÖ? á'ìØ|?i5Hi¾?÷¯xÞ˜Ò?«~ÊúÐð?zr‰6¬Ä?X²IÊ?6ý2ƒØÍ? ñÞð\?ÕUú¢˜?¯éØ•}E?¾·±Tq?¸oNÃ¥?ÉîØ8^î?¥iºPŠ(?oý77ÀÂ?çB½ÕŸ:?Ý¥ý.í?J$bãdG?I’Ç—r?ìž;ú¡?ê|­RÌ?þçs0L?÷ ,Dž?˜Xœç¿–?«#bkP?â[×´Df?w‰I?mÆuFI?êÓ(š…è?ÍYØB{F?Ç. ~?þ"‰RÉ?ªKp¯çö?…ݱf?£þ[ôø?#u°{•?Óþü¦ÃZ?oÎ0þ?¸®L¸M™?Ô¼†ÃØ?£°«?8ÉÖ?\æÂ÷?‡höz5Ú?ººôªƒ}?ßjŒ¹}2?ÕŽÔÌ®?apYî?Öbx~7ß?Ûø2b?¨à«¡-±?Xž}¢?9@\Þ.?³ý«gà?‚^–a?r°/ø?÷^Ý€Õ|?Ñ‘9µ÷Š?Sä6zŽ?U⾓Ê?V‰:Æ?øºñÐãÅ?»Ê¼Pw?JƒÍø–^?¢É`ÈâÒ?ðUdØi?«XÓ•Zw?Zè4΂?۱ݤyá?>÷R}ô?›:™¹‡?“2 n?¡jëÈr?àS 6¹$)?áÞ›K¢(?ã„ÿf? $ rÖŸ'? ߀6-H\?Ÿ:0`?ð‹‚BÌ?‹ˆ! I? p3æ(?_ •¯:?µ=¶–ãÔ?ÆÕ B?—)ÖE]?ðc°}ý?>ïGö?,„_F?Ak]æpš?_ ò‹T?öË8ò?h!d•„Ê?:?œ3Ì? ]ºÐÕ6? ÒÚnM?ÎR„ 3ò?jC=>´?RÊ΃ý?< { @?Ë[§(Ü?Gk‰ NÒ?lÉ|L'|? )ó¤×]?øÈ( ‰È?4ùÔù%m? Õ€"ÖM?Ú0ÜEè¿?B/wVB>ý‰è>H’>ùÊKLøÒ*?fåK9W?bRr0?&Ë|Ác:µ?'³ö»Ðü¥?(¤]*eÛì?)‚Œ{康?*Kxa ?*\¶]¿$?)+B|GùØ%? EZéº8? X,é{? †N¬N ? ̕ʘVY?!ø^•¨?!;?’ë?!'ñG`? Õ:ŠÉ? X=­…c?±£¨~ý?ûáÜ hW?¸ 6<ÕT?Óáî}ÆW? ø>? ‚fº?‘Þ•ÄzÝ?@!›²*?X,#/Ûž? §á¨ö?ÔΣ¨?‹Ì²¥õO?|Q^mžJ?µ?“MK ?ôUÀ&µ?kÄÒ ?Ò5nzÓx?zÌoÌîª?0¯Û˜yò?%z¬ì[?r4­n;¼?3SŸä?ßÙÃÖØ]?¹s&¤hä?|jŽšó*?}~ÍÄ?£8šO?0Gò¨ÇÃ?êÕâSd?òhëˆEð? ¨ZUQ"?!wR%ŸUó?"Otë2Y?#X þJ?#£§¿ÖŒj?#ï |?#îbnxKÅ?#¥åOç7Æ?#).,Ý`?"•YˆX€²?" Ø&…r?!¬NÇY”è?!ÍhÞØã?!ˆ¡/Û??!¬áÔÊ?æ?!Ôΰ-Ô?!鑦‘v?!Þ(šð~?!²°¾ìnÏ?!q@²ÐÞ‹?!.VÚzE?!ËгÙè?!'Ç[kµ?!iâ³D3)?" J?o.?"ÛžÙÄ»?#¬›PÆ?$Kö#Ò?$—ôgÀO?$™¯=QÄ?$NÀ¨?#ù'Éݾ?#¯XêÂ?#|Y&u2?#V˜¶¬@^?#+ ñVÃ?"ìÆ‡6ò;?"ûª­ä?"O©Ïä†?"ֆ̶?!ÿðI ½1?"…”™°s?"«t¡™?"m:H?!Áuó{¬Á?!D¬“KŸ¸? ”ð­N(t?ŠÔø0¸??ѵ–k.î? ÚðÒ?^e±¡Ó?µrî?(5'k·•?Ì(¨K­?°?­ ð?Õ³£;© ?1 lAC„?³Ç@”Ð?T\õÒÚn? ›Ì—e?ÙΉFä?¯Jm¿u˜?†šR©!?dåf€|h?`óÌ÷m?šËP¸?)Ï8žLð? uÕ"?´êªP?ÿè5ņ?ýöŸ( ?‹Å–M%à?ïêKŠ?Ú_w”õr?‰õº ¸?I…9ÒvH?YÑ”¦U?»ûçEõ? p*Š? swË©N?Zîµ!J?“¡Üjj£?¡¹×„¢¢?ˆlR¸¨?X|µÿ›-?(ñE9×a?'åßlr?G¢†³Š?ß¡ #ø?óWÙ=mâ?soF€à?(EKÅè?ÃŒÉph£?ª' g?ÅíΠ?"û!Ÿ?Jarâˆ?mýŽN/?©Ø{âù ?øq EO.?:œ»ºÊe?G¯¢ 5ò?þ;• Õ*?Pê…?çÛ?JÑ2Ò^?ŒàÔmî?ª—›§üó?I)´Š?óˆ.×Lµ?¼€™O?¨º‚Oä?-©'òÝÙ?}$^;v?Œ¦äp?\˜àÿ”®?S–«²îH?7úê;µK?â6·ÑŰ?@Œ°ÔSI?Qn*íO?Kœ>$È?£v3Ot?øÞ%,µ–?+ûIfø?QÁ/˜‰?ýâÏ‚?•±1åóe?Ž“†E2?ƒogZ?[«ôAÌ÷?u$ô Â?¥´çþ ª?Å8hÁã5?ÔkÛ¿~à?ˆœÌº?¯`óØD?H–ëV?ŠWj©Ó?Æ_ìðà?>#ÏY¤ÿ?M·”¢ì?ã¿û9:E?¢érýž?‘âǦ ?¥ûbÔp? §×[°7Ž? q+S?𥦠%H?TèÇÞÂÿ?nŸ$wb ?Õ<±žx?"‹ˆ£’ô?ÓÑžd?µqÊgf¾?Ã}ân?ïä´î?0‘·ådî?s>ÿ’·ì?"Â%æ$ã?t Ò!§á?~Sæ³??-iî æ? E ¾úX¦? v/qc Ü? xHÔÌË?% 4³#Ž?BYÐ7?ßZטªê?}1 ¹?0. )-?{匳?kGô(ç×?¢¢Â "’? VIÃë? Žeà?î4?f;gà?‚£šTSä>ûy +sä>÷bGØô?Õ®uçUÃ?µ!¡Ë?“è¦V¨¶?©yã­ŸÐ?2ÍÃV?Y’e‚-?(φÀÛ?{´L*^? Š"µÈ?!ÖŮл§?# BEÝ?$3Ô_Œ‰®?%UÅ›2SR?&ƒ¢Äîª?'µ:ì5?(Á ™ Î?)e%¾§–?)`‡½³ž¨?(@¡…L?'ÕàÌfV?$ìI‚ô”Â?"¦fÏÃ*? ‚ 68?vˆ‰¥T?àHb_÷s?L|ÒI?¥ñ>M—d?É z߈C?¡a˜‘?æI½ð^?­Ø«úð°?›«`”G‰?,wÝó–|?N/€¸?ËÌ:–c?xËÓ8ÓÐ?ÃÆ|ÈJ?wu€Ò‚?R‡»fW†?¨¦sÕÈ?¦ gÂÞ?ad²ÓC¾?ʬ6`T?GKk p\?áœ?û»Ô?¦$v`θ?¥ÅQ?Í?ñÓÉ茆?“N0º‰?‚ì)Æ?¨ìÂ&ÇÚ?å¼5üÖP?Âq(Ô?>á/Žî?Gé 8Ê?;äœ æ? ü- =ç? nj®»Œ? ±‡).Z? Æ#¾P}? ¢\ ¹É’? IPdì>?¤ds<«o?¾5)G?…þæú?é®é·Í?j‚†N?r^Âàþ?Ò¿q"ûú?ì&dA?RXÂ?MÿÃ?áé£ßÝ‹?ÃÛÛtâ?»(ËÕh?ѲÈõÎ?ÊáQ•”?VR™t@&?¨Ñσ·‚?èïÑ-ïÔ? 7}$? âÆL?Ý? kï‚ð`? /_Na‘? f´[!Ê? ° "z,Q? ó/¬þ¡?! ¯oõ‹È? èç˜=t™? „ml{èò?ô§äÑv?éPjù“?5ÏXl·Ÿ?þa‡Òô?)i ‡`?n"ѵJ?w£ˆÒì˜? hš1Þ$?"8B(K]?åÏäܪN?œè‚aõ?Ó Hɤ?äÉzɧ?¤œ¡š0@?©‚ÉO?»\¼‘^?®›i*-?ujUç¦?%FLPQü?çX¼‡:J?â.“L"&?(к÷ˆª?¶§wõh?téxÚ@í?G CÅæ?ÍA½ ¦?Ó®¢‘I?‰§¨õ?¾?J¤>E{?/÷0¶>$?L–SË,? Q-Ìg¡Ý?!¡k8?!Ë¢fš°V?"qˆn&Ã]?"ìÞ¢‰¦?#.X»Q½ú?#4í>~’?#­µÀ?"³„½êeá?"Sƒ¼f?!þn³à ?!É›«D›÷?!¼ Ó¡Î?!Ï4ÕÏ‹0?!ñQhóg8?" ˆå¹Pt?"‰"”?!÷`'Ìw?!¼eFi?!kñíw?!qî,ñ¢? ßu:cõ ? Ú&°—×Í?!»´ ý[?!«œ{3?"lY Â?#4?‰?¢ü?#Ò±¹¿+’?$&8HÖÁ§?$*AÑœ®€?#öóx Êk?#²í8V æ?#~ŸS¤G?#eG_¤?#[KžÊ?#HT0>·›?#L…’ü?"ÏóòBÿë?"{rðb?"4õ0Òõ‘?"Žô¯ƒ ?"—]ÌC8?" "Ô×´¶?!ðû[[‡?!¡æË%ü ?!™”èß? V3»!~ß?ô(íHBØ?-Dtœ€?o^§}û?Ã(êš?,ÊCO…?¸0 $?všøzÖ×?sº›"?¬t5Û¢ˆ?.é›}«?‘½U§?#‘~ºŠ€?ÈqŒBª?³TŽáŽ?Mîë°{±?+ÀbU®?!Ϥ± c?BÕz“+P?¦ÚP—·I?\—FÓ„\?YÊX/Îë?uT"‚Yh?oo·’_B?—Esj? —1CZ?q½@l“í?\ˆŒçÿu?~`üÅÃ?ÃM¿PS?ÔG7³;å?ftTc*?{ƒ¬i$?éüî8^Ñ?thþ=â‚?ß9ö1nù¿¯„@>õ©ì¯ŒÑž?‡ù¦È3?PÆÀÀ¸þ?‹¤€Ü?ÒÙBÀ?ø6EÓÙ?ÎUÙŠ˜T?;ß§þ ?4ÇÚžR?„Õ®·0*?ûzrI†\?!B Œ›þ?"–éÈ.I?$Ù_ k?%„ûX?’?&û‹‹:"?(0"'6c?(å›⥥?(é7)TêÞ?(&ø×ƒ”?&¬qžËÎ?$°é­Kˆ¶?"èͰTä? jÁ B*?dšEÁÀ?ôuxž?2÷óK ?Fâ€c?Mi”¶X?ówŠÜ‚?ɼDÕ¶?˜ž¥4D?:Ó¾©É?˜Ð1S–)?©Ù/=Ô?n‹¦Óò?îÿ™*Œ…?8¥Ûl H?[Ý॰?f3 8f?k‚km?£‡—î?¹>,÷cñ?+äÚîž?ßì~PÓà?Ó¢w(B?Ÿ(Poì?hÝ^ å¢? nF6÷?ñÓn×b?”àá¸?Oº1á’?™HºÁ¥?Ï.sž–?ÜÉ”ˆ²”?·Mm°3 ?]®ýú¦&?Ô‹c°v“? žùê®^? BÚ“®? ‚·X¨?ÃÕrª?6ù•Ëa6?—§.Í0Û?²2tL?À_0pÍæ?¹ö³¢z¬?í:>¹Žb?8.”™Ç$?wj˜tÓI?–‘.ƒ?—"AgÚ?Š•·íÓÚ?…PE?” d˜?¹ÇŒ+ãs?ñ3ö`Ð?1ûÚ?Ç?l¶)L>?–Ýcâ+?§õ“?£’‹JÏÿ?›!œôßÒ?¨‚àà ?â¬õÈ? %¦ž0ú? f;Ô 9? šZì˜? ¤Öëÿeò? t!8í[? lÖz-?´•o“d? Å.Øb^?r@)öl?Y[Fa®W?¦:¶°x?j‘_=¹?CÝGt¥?åCÚš?Jµ}cÈ?0CšA?óÜ­´ì?Ô-ÿ"?þ„ 4?~ðö¢ì†??M[:@Â?¶áü†?á{n/×?”böÏ?>Z°ß+?þüç#G?òÂàÃ?'§¸ì»‚?ZfÇ»?EåÅß²´?^kÃzJ?ãêÙ;¬E?ºË\xëž?‘Øó§Qø?rO¿þ@?j<Ð{Rè?ƒöpvÃ?¾FÞ«’ê? „–~ò¬?!$¬±â²l?!°8ÜBa?"à÷–³?"ZÆ Põ?"r8¯Ûž?"fbY½­÷?"Cg¢&¶V?"O£u?!øK›õ¾o?!ëx#ñ‘?!ôŸr„ð?" ã­<Áç?"#V}d†á?",‹r–?",E£8?!ñ+”º7’?!«gyëÚ?!U›{­’?!<Äà)? Á$Ö±®? ¯š;•âî? Ýì>éÒ?!KêÔ& ?!ê9ª+Y ?"“ÆíÒ¦?#p=åõ?#k®Ÿ)P?#uÒK}µù?#Q;éâeî?# >ˆá(?#$L7-?"ú„–vB?#jØ@ó¶?"þcÐj(v?"ÙŠÓa[Õ?"‘)ùýò°?"7[ª Œ?!èeÞZó:?!¹øUñ/a?!­HsÌè?!¬3f ØÀ?!•¨¹ b?!LzSD”? Å’¥ǰ? ƒ«ïbí?añœfxp?+S»­:?á—Yäž?:Ü~?°]}Aª?Oˆ%¼?&Ë>oæm??eÇnŸ?®œô!æ?Î7ñ}¦?Šs-l?:× 7?§â‡ŠGL?Núïçæ?ÂÎFÙa?öMóÍd?ÍHñÅQ?J ß(÷?Ó‡Ÿ 3?¤üƒ[??®›÷Î?É?¹ÒÀ?¼Ø•?O½Oã•l?Y>Ä|?Ïú)$Ä?Ìo.Ì?ˆty7'n?N43B›?gÂ=x?V4{%?:?!úX?Ù üJªÖ?Ÿ“Í‚Ä?DRÍžxA?•G ó¾×?…²¸›d$?*Xˆ¾Ø ?­*oõ\u?BhN “?íL=?qý]Ë?J)G~ôÂ?­ä^1Ü?ÿߌŠÖ?EkX/»?+\Ö¥?{ûýŠÞ?{‚YŒ^_?^@šèýÀ?[]l÷¿ž?Œ]‰e§F?æ¾K~?EkJ¥X?yŽ ÿ™\?ZÛÐù²è?ÔM Èn?ê:ûc?´÷ß?VåX|&¶?ï+Î ùâ?˜ÌÁH€?q•˜ã¿?Ÿ\f¥\Œ?IœšiM?†'|Ѷ1?F¹Ä`+‰?UÕ©”x,?f¦wvÙ›?/WC$Äs?~í­h?Ek¯}.?Žß÷I§Ã?w†`i¹#?!ãÃ?b´þñ &? Ž?Ý@>? ülí3mŒ?Ñæ7–?!Æl²äK?÷×ïñ¿à?câ õú?–à™+?`0B½^H?.ÝÐÛC? <‰®”%? ¬¹»UÍ? åÞÉgH?”ܺˆ`?U`5V¾?°“ô*Fg?kxu£?m—4 8q?Ó“í·?‰Ã?Ä+®ù}œ?rÅÐt?¿g“8Ѷ? PÛ½>ô? ]nØ™·? I6s8-Q? ):V? q·§lØ*? ÿ·9ñ`? r/‘–©F? §€>p54? “"}èõ? ,Àû°îÛ? m–‡â=¤? `äÒš=?,Ä®’Ç?€·ò•À?ã5]ª?R^®?CF‚­R?`ö ˆ? {”C™5¬? 5÷dbk,? j§k€? ERU¢? 1ùc+Üa? ˜­ìÛ„? ˜ =Ó›? ÜÍNN)œ? ¸Ã‘R•·? p3œ H„? ” µ‘?:Õ„K|6?÷óäl˜>ÿV$üzv~>øp]'¡>ôŸ9Î2w? !È‚€?¶Ëx0Ð)?AëÈ…90?Üpÿ;Ѥ?ÊÊ¢:4Ú?Dè’Éä„?`ã-çŠ^?Ðï·B?*¨“ïŠ ?™Ô ™¼4?\EŸsã?!@UÇPÎ?#jÖ¼?$Ö¹1ã ?&ŒKÏ¢†ß?'ãg²¦¯K?(¦yñ€©?(´À?Ü?(¼œüî?&¯¿\®•Z?\°_?ÂuX”[O?©sþ6´Ÿ?ú4aø?ªœ&\?Š$ÔmÎ?Ò#Ä—.?­°y ^?ã‡Ò4".?%/”&„?bàý†?„þHó?wÏ®pNï?(#)€T?5Ôñ}?ª(nXŽ?a²æ?H?a®Sf?ë?*kÄ?úQþ¤?4TöW?¿Z»T?‚©˜ˆÀ?l¬~9ð?{½T°? d>9‰³?ÈßÔ§Ä?夿Ä?ñtòm‰?÷ç¦?ŽT-?(Dšyæ?`>±¥‰²?¥<ŸÑñG?êaÈ)W?#ñïh Z?HÕ[Æ®6?U ²6`?LXãñM?9œ–AV¨?.ËŽÄÆ„?<£ê%?l];N?¸”y7Ç”? X_Šœ? ­R÷Š? 7/_O?³ê·¾EÁ?èÉ»åŠ?÷¯Ób?).xý¼5?¿ÙÙ™›é?×øLIY?UÆ™Í1?õ.éÇf?d8p%”?f^Ï1x?æÿ6çˆ?ùf ?Ì EÚÖ?™­;<ü?“iá×?ÑÅ.Ä‘M?N€¯‡K=?îMþ†›j?”£## ø?4êˆÒ|ö?×Vôk?Ìé Ê?q# ÚÏ?Šy² žV?àkßõd?n\ `@³?*«á¹lö?eÔÜÔ?éQ6B?Ï/ö3Ä«?´†£b%¦? .®E+?šMÃ`O&?¤ë„Ї?·ædç^? ao©4:? ÙeŽ.?!;éN_jÑ?!„Í#(f÷?!´mJDÖ†?!Ï;l†,?!ÜÅX»G¶?!åë‰ÓU?!ò({GV?"³µwû?"®Ìã(?",p ži?"0þ¸›â?"!Ó :Mì?!üÊ| ì?!Äwxßh?!|Îaÿ*8?!.ã/xŽ,? å·rö? ¬î Ôr? •võLåz? «7aÁU? ñü\î?!_sí8Ô?!ÛÍçZ?"E¥ƒMùr?"†ƒÍ!Xø?"—gÄ»?"…FUOJ?"jmÏ 0l?"\jÀlæÛ?"aKb{\?"laz¥|¥?"fÏÍÇd?"<×;Bß_?!íŸÔ—®?!‹PÑ„nw?!34ÿ‰•þ? ý3SB? íc¤¸Šû? ñ'‚±aŠ? è0Ë@»? ´‰ò®ýp? G°ëZ\?L¯‚|¿ú?Ãy&„ š?£üŽ€?n›û7as?Ðò³Y’ ?Oݘ?üÛáœvy?èÁ¡?uÍêG?‚ØÞä? 8)õ¤?™SV Ã?!~ i„?©p„Ëñ‘?Añ9„Ø?üµC8fl?çxÛ®;? Þ]M4¾?ps)H?/…Ù§z?ùUÈjÅ?LPfƒ?›+¹Aè?ð1oØÆ?x¯HmÇL?†ÎoóiÒ?DU ?+ÏŒuÒ¼?áGôÊ?â¤8v52? |Vv?¸™ÓS¸}?,Êdà?ĆY92Ê?À' p;D?Ÿ ÕïÁø? `† ¦x?+—ÁõùU?ÑèßHŠ?B3¯"Kk?¹»´ª~W?vA&*?¦„ƒÃ?Y WÐì?q0+ìL%?¨`4”?ªÏ-ѳê?<³3ßz?TLz|@’?XÞ€¯–?ËõçÊ? A/Ÿ4z?±;¤Ù÷I?õj“ò ?L‡Ý?‰ØBè¬Ð?…8¨>ܬ?"‚táªj?[ì|ú?A–¹g²P?ò1ûA„?‘26F?B¬fy]>?-i°8|?{^ŸQöÔ?Q>ù–=°?¼ _C?¥JáZ?Ë·£¥ÜÅ?Ý)-Oøþ?Œ‘æ”2q?©ó,ó¹?*6¶N?!#3ìz?³åTȧJ? ”Ädâ? ±¨—l? x†DŸ?©ïA¨O?kvQ· R?É@…—gR?ÃZ‹iI?XüVƒŸ˜?”œ žN?p]ù;‚?´’?79š$H?¸jåâ? Ð9½=U? ¶Êc¿¾ý?<“µ  V?Ž©3Ð?q_Ðç_K?#A“@!Ò?½Ï çÔ ?ê#Î?ÔS)>?V‡Ä®Á?ÌñÀ|Î? Í&QK;? çŽlá…? /e_0? WÄ~PÆ? Uî{-ö? ØìªJ}/? göeÞ+ ? ò€N'°ú? eŒyOË? ›ä#Ž[? i+ aSÎ? ¶—~¢Èˆ? —ùèÉv? Oœ5s]·? 5ç;¦½•?’h®ˆTÎ?wPÏ*V$?²~r?åe×Eúš?µ}Ÿü¥?.+¨1? ÍTVà_?Hƒ ¡(ð?,ÂNÿ4W?åÕw ?)’ýwc[SZj>÷j½ #‰>ô5Ñ ‘Ø?0¤¼6û?¦GÍtÉ? Ì•*Â?qÀQæ?"‘EcU?XR7I·?.ƒ´î2.?ÅOG@[?’['ôS?©´y{´•v ?%dä£o]?#qnŽ*¯?!xšmÆ÷h?„1€&/?§P»}m?†¯à<•?ê¤ß©%>?߽ŕ{|?cÜïjÈ?lö5ü"?ÇÉ‹ú]?\Œ»Èò?ÉK½ãª?2~ŠÚó?² ‘£ö?VØ;¬W?!©u¤»Þ? ús¨?š1H8?!Aè?S¦ô§?1g²ñÇ?@ƒ ²²?˜7"K?4‚ Á° ?n„  ?¼¶¨ƒª?Äl¨Ú?_½-×$ô?›*Ûåàn?Á˜Ëƒ°G?Õ¹Òk6?ݨ¥Aiô?á¶wçü¡?ê”Y¯?ü‰ØÃ”î?Ûê}ܪ?<ìò¤?[†¼Å:?gÁmd¬Ú?OþrUœ­?aܲ‚x?v*ªF,/?·+Ò¬$°?íË1Ûê?UqœÆ6™?%C¼t§S?s¯ÄñaS?&äD?LÍþü¡µ?•ÚÈáI)?Æ`á­?¥Òü m?A‘~Õg?ä’té?•5]FÇ?bLvŽúj?Yÿyi2?‰ëô•5·?ùÖ ò+?¦sʶ•²?~ ~”¹?fñý· ?H¦µ1¸?ž­"…?ÞÁÇÀên?£EÅC«Ø?r†)ãV?NÖ9DâŽ?1ˆàþ? hµïål? jÆUÄ[—? ÁÍ4?6?! xò?!H´{•Í÷?!~†§¦á?!¯²¯^šv?!Üš5›Y:?"N§«.œ?"´—K#r?"_Ýŧæ?" àLëXÒ?!äáÈÏ?!­ ´­%Ë?!o5çEz?!0p$äG©? õåI &? Â~„? ™^6~? Ì2Å&@? }3ÚG.? —¯ £Ál? ÎÁ.8Q?!Yu­&?!aR‡—¬?!˜íZøÚu?!¶~ 6¿f?!¾†gIøG?!½»V°¥ú?!¿2 Z–?!Ä>CLfÑ?!Âf’^?!§¿(#ÿ?!h–¢˜Ùø?!}þÿJð? ”~1îˆL? /UºzÈJ?ÞÑX“ÕØ?¶ÒȘx?É£iôh?Úì_E??°1A7AŒ?$?¶Ä\?3~¯7ð7?ó2pê ì?åóG&?úáW×ÚÎ?t8ÌO?íŸÔ¾\?Àmª Á?½öèœÂµ?†BØ:?‚A  ?¥ã•(Š?ºËj>°›?G©ïÈA¦?ËU!Âð»?[‘¹Y¹´?ü263?ÕáüFF?8¦Âw1¢?´ž‹¦?mEBÎEx?TÁ1n¦ ?SÜ]Ø?I(Ã.®î?ùŠ%’?D\XCP?žCí´ùã?>̘`B?zÞ¿8$¢?z›b±!¶?v²UñÚÖ?³QÙ&B?lÙ…}•?Á ´ ¹?;êÄ?¿ƒÄEÔ?Ð%îF½?ƒGPúð±?´›ÛÆÀ??n«l#¾g?àîÖ»-®?NÄ—â?ùMÂ/m`?ê6ð?§±u;µV?”Åà®+×?’!‰íŒ?O16ÆÕ?—rè¤Ì?h\úǰç?ìâ6Ý?bønÑH’?þâ°¾L?ÚXï,œZ?ó-à ×?26Ò©¬?qÕ¥";ó?ˆaåDR?Q±GÙBº?ºK$wl?Æê«Øù??‘^Rëpâ?@†i à¾?ê"œ­Š?ÝÕX>ä?l;aA’á?bÎÌç$Ì?éÑ0ü?à ÍŠ$]?mä—¿?šºÖþ¶?Ž_­r?ù³ Rà?Õ«öG4?¡‚ìb÷-? SϬ©?‹»ù=Á? î÷6g|f?•Î6åô…?ÁˆñÈT&?™w$Vkm?)FÎ8%?iºTXB?N¥ÑþhF?ѹ> ë?ëÀ."ÿ?ŒÈSª­¬?‹‡µ(È?§ÁØy½Ñ? ¡­ËõÃ? Rƒ½Àæ? Â:Ï” ¢?j•No?’þ‘(?‹ßhl—?3>€þg?ˆ iâœN?` %?½¦5Yê3?ŸÚ÷y ? ÁW’fhz? W°[IÁ]? €HEù? R:-¨f‡? m´‘Tj? Ë "›¡®? qT…þ? g2)15?‘J™¥Ã™?¦¬[t®?$l=µno?6îûLÜ?cÛ? ?0s SØ? {dc­? ¬úø…˜? ¡}kÀü? a_¼fÐ8? *€6F?Œ8óA ?fxŠ®?dlí 5?Ï 2S¼?mžÂÝ/µ?Ξ½ý??ë ã'ò?'ñpÃú‹?Èâ¸h˜?Eдv¢Ù?~”™Ëb?Ækå÷®>>û…d NC>öháÙE>ó|^»ä?RbQ’Ëz?؈Åv? KÃð?5µ#y‰?£v5b\`?”š ¿sî?'·ý´œ?[M ¸Fÿ?(»Ð¡ÓÏ?–³Ó*rÐ?¼ô.­çª?¤l%kp?"o}ùK?$Vÿ´Šçi?&\¯õgP?'ÜáQ”FÝ?(·Á37®]?(í÷Æø?(KžÒ’?'¡¢wåI?&7.’ÌŸ?$q7 rœ?"ŒEqÁŒ? Ñ‘TÛ@?õGë:ç?=jQ'Ó?[këƒ? ƒ.sýç?•Ý97?Ó|dzaü? ´˜‘e?mèØS®?¥ŒvL¡?Ì(¤M´?©áð€yg?ˆy"߸?Zÿ¢Q7x?$ëFQ†È?öœõöªÂ?å”»®ü,?ë²3€ê?MÈ¡îD?»Ë–=ò ?2”¦±ô*?—¬:Î`á?ÛhÓví?þÊ(M¡ð???%¶I ‰?KƒùdÇ´?‡êno…Í?ÕV€‹°?%ZÑ6¹?cœ  .?~n÷[K†?jÐ7Î ?(ïm?»h3g?)ŠÍ&ß¼?z1ÛÂ\?»Ç¸Ë­ì?w%•÷? kŸ2rÉ?@®½«?ûí¡è?ñ•FÔ¼?òj/ÊG¶?Ëö@+I?=~FdɃ?# µ*]?zè8 ¹Ê?c»Ï´?ýe9#ò?ÅŸŸx‚?«üãXž?Ûµ?Kœl.^À?æ_­¥¨¥?“±¹–A»?Ev6|½u?øØ]òÿé?µR± 6?ŒŽøi¸?–+¨høœ?å¦))?,õ£‘?ûÁíNyd?¨¢üî?8œ ØÕÀ?À·Áv6?W´X"D?l¸Üª¾?Óy#F•?¬|alÜÏ?„_Â}*Â? 'À¦ƒd? „“׈ZK? ÙDÍ“7?!'IoGV?!n‰à‘ ?!«U+³þÙ?!ÖèBtõ?!écF3˜?!Ý߀~Æ?!µº¹æb?!y¸=h?!6hÞ«*? ù4†øîh? ÉnõñÆ? §y0ž[? ÙÙyz? u@ª+œß? Yö=–‡? ?‹o±? /Á;Š? 4Îÿ&~¾? Rž·>Y? ƒ¡Âîï? ¼Q… ? ð(N¢ 3?!ngx]Ú?!5å\á¶G?!Dy ð Ü?!AŒðÊßñ?!%ª•Í>u? è….È<;? †±™÷,‚? ˆJ냄?ý½[Pò?uÅ‚±F?rܧô?8©”¡w?K$];ZX?w>¸Q¯?ƒo”BÑ?EÝKö?¯‚¸º9f?Èi[8ÉŒ?¤Û°û“+?[tÎ ?3i>éœ?´Òúd›?‹Àë•x?Ÿ]LN?ù²£juÍ?ßäxš?>Œ&K†?ë‹6ˆ¶ž?‚Ài@* ? Ÿ_7=?˜þ‰zŽ?OüFS6¦?G6‰%®†?‰R ™j?3w:-›?Ðrdvš?±ø!yÂ?Â^¯b¹?y·x&X?*!^$À?”giÄ?¥Ÿ('º ?W`Œ'¸ ?´ž¼V½\?Û:UZVL?úâO¯øÒ?PUÐÁŸ‡?…[îý¦?pÛl/h\?VaHtÕ?Ž=Þî ?Â${`+Ð?¡‘XŠð?þµ§j ?ÛêòÌ,¹?e\vÍ"?ÞÜfÄvæ?½æ ¾?¢yÀý?$:k”n?íÌ|e#ô?¶2\Õ©?1i^vüÔ?3ó`Y?¾:ª^+»?þa‡<½?.C vE?€l8ôµû?=.Z½•?|‚? PlPæˆ?IJè++?~œ5dn?z–ó–-q?×Å”¸™?\h<Ωö?M Å©0?m=a¡¦?íïJì¨ú?Ž(ó7?u‘&š?‚Š¥ý8s? ãÍ3?â·•vt½?ÞùšÓ¤ý?®¨†,?\•í?ë67N½?4Êâ:P?'sß;Ê?„ú<šºò? ©o\NÈö? <;è\p? ¯þ¨3?uèjåR?8‘àm?sLÒ2?ÐÓ£â.?dN²5sº?Hû ŒÝµ?«©¨FaW?fÚLm ?Dq”Š2? ëuî’b? sæƒ+Õ? †X³èÌ‚? [çšZ±? 2%,îRJ?9vžaL†?l’»™&\?Bž?F˜?Ž­ ú?uu… ?ñ‚´X¬?ƒ ä.(? ´àŸ`? ò&ìžt(? 4¼Œ¯ê«? —+mRL? Žï)M„? ´5â9Ÿ? lÞ:èÖ#? ×0 ‚D?̇ûšÉ3?n¹Ÿ&óÖ?<Ûhì ?–«±o€?e€˜™î?¼yä+ÆÂ?™P“=o)? ›ð<üÁu? ÌÞQû–§? 5¼ÀjžÊ?§R9Z?áñèÿ“´?ÐG˜šsf?¤õ”`Ë™?ÎŽh_+>ÿ‚–Ýõ>ÿl7G ¾?‚¯úi¬? ¾ßú×t?gùåÖzT?OË)苳?$¦ä…|¢>þ3d¼ßÆ>ùeCËdB&>õ.%Sš†Ö>òºdtV±}?W3ÏÊf?·i5?¨ÐÈ$6X?€ÓTz¢?™éêJŸŠ?:*ñÖü°?ƒ5›ÖÓ?xž±­ý?P‚S-ú?gÿ9½ø?†¸|®K…?w/eɱÂ?!ÿ¢5ÊÂ?$Mù="D?&UsÃõ?'׿¦±‡ª?(¿?1\œ?)ì:<-’?(ìÙχš?(H$5ß.?'&” W,?%™ [c? ¬Ò.É90?[®*8%?'”EÁ æ?%<|?-ìæ<£Ü?Ò† Üð?E^‘Žêø?ÔWûš?Ä«ÚujZ?ëQöd‘½? wž=®È? °ýá²:? tΉ¥Žâ?aEüî¾?î8@zÒv?ù&”ÓoŽ?‹˜n²?¿_UZ&>?h´E?2hM½‹?ÅÌo< ?—y‹ùæ?‘Û6ó»ø?šk ÷Ä?o¸eÓ ?öžRPœ?3€O¬ºv?:ûg[æÛ? ÞÔËé? gàRƒ”? Ÿ.ÜÇÍ? ¦B-Ðõè? xä/I–? d$ILR?U°.êÈp?rÄ¢kÌà?·‚(‡[?0ðæÍ{?Ï:N’õ.?xbh‹Äâew?Šš ç?ö&2¸h¸?)×ÔV‰?6Í!Í:ô?AsžÒé?mÍ~ <Û?ÏDêÕPD?b;¨–? ‘œ˜;?ª“Y¯Ç? —Ù™D? TfnM ?ñÿ„_3?j›âùo†?°Jëè‰?Úñkf8C?ýxÔ=M?)¯Ð©#|?zÏ7`®?C‘|ú?±J¨ò?¡ê31îO?Š£àPæ?½rI?‹à¸."? ©=ÂÞ?%)Vú?–7þc+?Ž*Ì®?A@†ïs±?ïhdzþö?ϹRé?ÿša}»i?}ðCX\ ?48$õ˜?ج+A?Ó¶s!ï(?•èdLeý?L‰ Âwm? !$”`?õfìË&?&F3k?§58 ›À?cj¸™·Y?/ÈR êÆ?ᎉ̮?d!  ¤?Àš*¿õ†?ÐpS¯?ø,›U~?ì߿ڣ?ßåoz¢&?Ás£Ï¼?ª |:@?‡ØbÁ+K? ) hÒœú? „@¸s0? Öë »?! š`1á`?!\üøæõ?!‚®ãž ?!Š€‹~á?!p$%ãÜ?!7òAE½i? îÍRX? ¦kßQ§”? nyÑ`•ú? Na ß¡? B„´¢? >#pÔß? 1t•†ß¢? $  ô´?Ãõ¨ ?^ˆ"“€Ö?YÅâþË?‰}bH\?jØÚã?óß·qnL? L_ýíûñ? šÑ¹DÎ? ÕWéÊY? ï„8¸“[? ázê=? §¯,Á,? C?²Œ~X?u0ž„Ò?6¿‰J?ò ã¯[e?ÚL܈hú?®®ÆÒò?¾ÃÄHm?½h¤.æï?êG[–ßl?åEöÞœ? À‰ÛG?À"ÍÆ?0•C²æ}?fcm8˜ ?pF]+Ò?_‚ ígJ?Kƒh@Ç?OÉwÃå?†Ýuî?ûÅÝxÔ?¥Ìÿ”ô-?j‚#Àn?(¿§Ü¨v?Ì󆲯?\ QÇ?ðQ‘µ‘1?«×Rb.?©ÚÃZß?ðïoæ?{I!¤Þ?4¨òÆ1ð?^MMð”?ÚH™Ú-ç?›[vŸ‡?3@€ì|½?Ù“vFE?›æÎÒs?YDÔÜœf?ϧ›ïz?4Eš+?Z»Ñ{Ko?ˉlMD? ]bîÚ‹?ýçMìÏ?âì8 š? ÓìÕn ?i#®9Ð?k|[ãÈ?ô„É”?ÿ°Ö¡l?±&¬‹t?KÈ•°K?Xs (??1f–Ó¢?­«/V?Zèõó_?ô ý7º?3?y¿Æ(?f? Áfjn? û«ÿT°Ë?òM®DŒØ?ÏB ¤‹p?ujã“È?3,G>ÿ«Yb V>ü©¥¥Q >û‡×+F¦ý>ü$nnç;V>ý¸Jè˜A‚>ÿ!ÌŒZÄ>ÿ^”&Ô>ýéiã­‹¹>úìò"•_>÷-u¢[Δ>óįRklˆ>ñ¾½ý·ù?øBOí²?&¡?Ži ?Á‚q½ÿ¡?/&=K÷h?ÛÔï4¡t?Ä~ÇÐ1? YaR?ÄÇã‘ôµ?.S"î†?Q” }?>²¬ØCÌ?ô IpCÑ?"åòÄ?$Eù@Þl&?&/¦ÞpÈà?'£Ý«<8”?(•ìŽ{%?)Þù•J?)(õd!&}?(ÓbÍž?(¼H?&²T†óÞ~?%  0?#^Æ^fÒþ?!ãoû5ú? Å­Žù¾? ꮑUé?'ø÷î,¾?£b?Mj?kÅ!b?ˆ«¬È?û„X»µ?Þ¾•BåÂ? rqÇF>? âv ›Ø?! ýbôö$? Ædù…-?ü“K&à¾?‰„9ê/Z?“næK? Ç3²ä?8±+ò?¾5na“?b^‡Á0ú?@V-*?µ­ÍD’?Ö„[ÚÂ?ø6¡—?;ŠKý˜@?ü6ßäDº?YȦí›N? 3±WµíZ? œö¸gŠ? êTrS%?! {tíö?!Uë8Ýg? Üt'è‘„? ¢À9ù? ˆ?¼:?>jÆ ‹¡?u½#NRà?Ë: ýX?.œ Ñû-?†_gß?Âry¥/t?êçýÈJ¶? T™k?‘ùaà`ó?hÔ¡6€?³%éì.ñ?Yb\BC?&SÕôIì?Ûã¬ßÕF?Nç¹,â?z˜ࣀ?€È¤¿á.?—ªd7mÌ?îk=ßá¤?—ËãÕKÃÞ¶f?¼ üùÆ?‘KQ¡¼?©Z2bÂ?-R’Oú?³NäÊP?b2&aÆÙ?ðòå¨eé?KùÐ~:¨?€ýÔT?´‹U!Uz? ·ÄÏ`o?Ÿ s†?i. v?U¿Á¶—‚?Gü#À„?(? ?êR›8p? G ¡îŠE? Ž]j]òL? Ê×<@ps? ù¢Âpb»?!&„;x6?!íŠÆ¾? éJ–½.z? §ûkDi? X!0Ñ”? ØÖ5íë?¹K=¯?Ë•miÒ?”‡ÎÝ¢­?£—l2Ò?’–NÂk%?EÞÁ±X"?Áu„ï,„?+iÑ?º†[D¾? Ž"³©?òÛ°?¡&Ù T?„óÓ•¸? 3•À“Y? ‰ êG--? ­Ò'¬÷? —¢[d{? Dê7Ýâ?€Ñ¿˜k*?0ƒn·ä?½„ÔÙ®?On8Z®1?h¿`g¸?)7²‰Úü?£É!wE?wξØd ?„T<ˆþé? øè1Ê?¨—Ô®€?‹G Ï?BÑ}÷^k?Ñl½c?:%‘qd?…òtm©?ÃV71Êp? Š•`p*?qMQ©µ? :zÄæ?ÌR_s·Y?¢ÀŒÉë?nÒ»?QB’Ð?µÞµÚd?PåT)vB?›Ï¤§ú?ì¢\ûB?Xà 3÷°?ÛyÎ=7?„éùš˜&??§‚RÐ?ù2š¯áV? ¦¤ý‘ˆ?$uhçl?pñ‹l?yÖmíð0?;ò•†?Á¨·y¾Y?"ÇÇÉ3?‚f·:¦G? =¾´+­?ñàU¢`®?RŽ®g‹^?2Âòƒ©?mßOMÌ?¿U=E¤?Ûrå†Ú?r§ut?È|/áúZ?­yO-*°?w(9¹F?cˆFÄœþ?™1XÿÉ8?%ãïAD?®—üOWÐ?Á×L£?)jÃj?¯LÇÁÐ{?ºóœæ?q*Ã}œÍ?øÑ¦½?­h/¤%®?˜}g‰œ?ܳå?ÂË+Â:?6½+ü8?†ó8Göè?þ»_:ð¥ ÊÊ?,‚r>?îq qVä?øÝTE´ö?4e?Úf?~>ðµž?³íðÖÀ?¹k‹Z¾$?†ZähÖ?ÄG!õ»?~ÂéÂÜ>?g³äá¥? ƒÃѱ2? tP]—? xQ'Íi¡?ÞqõF€?æ †¢ñ^?± ¥vO.?? Y“ô6é(?13vj?í{oÝ·?‰ŽŸ?Ñm»qU?»VDe?? %)Ý? \¥gU<#?€i”Z?²²G.`1?¹aûVÂÍ?õÓ=–}?tl‚0j?m•õà?*–²U:? ÐøÓ›­? ˆ-)^Û´? o/K‡•â?Pq!¾Áü9”ì€ì>ùÝgŸ…Fƒ>ù3õ” œ>ùǸ’_¾>úµ¤¼ r>ûÔE§Ã_>ú6¸Üóx>øä¼bõ>õ>¤\Oò>>ò†÷Qj²>ðà¹Lœ ?†qCÙœh?zÏJå ä?®ÖÖ"~b?áÀq9?ÊŸT­?™mT@R?<Ž©œ-Ö?¸ðÏÜJ?ûô·BÚ¥?ö1 )¤?¢0 Ö+¢? xêP CZ?"W—ÝXÃ?$:•g]¢?%èj—K{°?';Ôj¤”‡?(0+pˆë?(Óî±¼›æ?),¤ü"û?)%±Üú…/?(žkG>Š–?'ŠiÙa¯ß?& ‰Ð ™$?$` ÉÿC@?"ØÄ²FL?!¤„€Â? ÏgùÎ? J"¥Å?üWÎ#k?¸ÞE›ð?¿„òu¯>? ·jü‘? F.» ? àºEF‡? ¾m&Ç\"? ´ííYf? TEr‰§?Þ[«@?è+qỏ?Kìµ)ž#?´c}j–?Ž?§ö>d©?‡o“á‘›?«(‘>[??.…V{Ö?\iqMP?öý®‘$?ÛÞ<??ÆAJs"?pYc2Ì?©øè 1ð?b מº?§å·®²’?¥-Ù¸B?’RÜx¯O?¥èß4C? F€?¹¤¬ÙÚ¡?³ÊÊ ?Ѿӡʞ?í­†q?èQ•fDÔ?»xL\¢V?z ùù•¾?K3›ö¬Ò?T|`{ e?¤JœÎ?&Ì÷¿?±P§ø(¢?( FH ?Uœ#¨ù?rg}í9¯?˜/°{®Ñ?ì¿Yo×ú?ƒIg"'è?UWx¶C(?H%oÑ>?9~]myt? wFî?· K´¤r? ZÈ«I~? NvÇ? Œ—n¹M? ^Œõ´Û? >„?Š_ßÀ´´?ø¬ÕÀ?šî>Î2?|Æ'¸Qw-¦Ýåß ï?¥•ŒŽ"%?DØ~.¿^?ãðXç}š?u¢$K¿?é¢Í=??-,zhxJ?1äç¬Q’?õk­“?‚Ô.£?ñØùer,?e­æùo?ý*A?÷”?´?[¯ˆ58:?7wKé ?mEKêÝ€?ÃK‘¶¢?ófËAÇÛ?È£á1ÿ$?32f= v?LÅ`PYè?Iã>úÚ?a<Ëê/à?±óÍL¼«?4¨;òûŽ?½g×t? ’˜¬h˜?íÙ-g?EŸ»è¸K?¤×‘¯B?™èóqò?ç6i8õÐ?>ûÚï’Î?Þ@„?bap?¸ XÑa?6}-:¶­?Ü9Éèñd?Ÿ€úhh×?rß]Áì?KE${Á?#±“Ê?øb;rìÙ?§ÀBû¡?E¨uúÅ ?²ÎÝiå? Ó(f4¦‹? ¯š¶$ˆ? {Û$^A? ‰q§=? ":!›æ\? mÜÎŒ—Ò? j¼Ø? ùÅUÎ Å?~¯,7ñO?¸Àò†p?K,WŒ?¢/Õê¹?1¨  ?7n![I«?^,ƒ é? ¸vLÂzÊ? µôã·½? óâ¯%0?2m¨B«ž?-i"-´o?ÌðTðx?;©¢N»1>ý¯L¤Q@Î>ú áê†Ü>÷ÿ~‹¹W¤>÷oM»:Pÿ>÷¼Ë„X¢>øÚÐ0° >÷­Lozàk>öJFßw>ô*:È¢æ«>ò¹sF ‚>ð§Ú±rKZ?!ö×BË?!SÛphûõ? 9Ç!;9á?á¸í›:R?˜»Ëy?ò`„t4€?Qø\”Œ?³½h˜@?ö1sß‹?ë¯OÛ³&?kÿBG€f?!)yÆMíÐ?"·T‚ 6¤?$<Í º/ç?%—Ò‡?¬?&¸dÈÖ·b?'¤‘ãðŒ?(hL4ÁuŠ?(ûðÿäÞˆ?)8ãå9‡?(íÛÅ\ª?( ßÏ.?&’" :½?$årmŸ?#Nà×–‚õ?" F Ñd ?!(£ÑûýÜ? ¡%ßÓ0? Yéð ? ; ¹í&? 3)Qé? 4Ù]Lmv? 4]÷Ö©? $«J¸u?ó(³ë²?Ly•«Ãº?A‘8ú&R?̨î9€Ò?ÿ¿~L?_¶ G ?%ˆt=W5?™p „ͽ?m=¬ “?\\{’?ðc6$†R?Zº¶a?tUÉ¡©?òkZzu?s‡ÈzË­?¢y¾,ÚÒ? §ë^”k™?!:Ut8ñ:?!å5´W‡?!µôe²™ ?!²TùD?!ŽJÏ ®b?!UË:+£[?!ó`} ? ÐNHø¬U? ‰cÎ~D? 5æJ_?‡sxØ ?pš›†c? UƒÏ¥*?z"`!?éÜòÉŸ?˜ _xW?ÆYç©?›ÊWŒ*o?ÐÓŸÇž?«Ü;p?Í€Ýuî? ¹”`ʲ?§ òT¾?öÜö_Ùú?*³Á²™u?‚5“ /I?)óßör?'O³Mci?YP×z? DšŠ^Ÿ ?  *Ý?!°z–¸?!7¡K•i6?!-Çc ¥ ? ü >ñ4? ¥]ܵ<$? *;ßB?L­H?©“ÐøO?0OCÚVŒ?çÛ©Jà? åÍüÖy?¿šLµ²K?ú? §.?µ•½Ø&?‡[Þ—Ãd?7AbÜÙµ?‘ãºûô‚?ÿ Îø?sä÷1ª?FOU&h?jO”À‰Ð?¤„ü?’ËG?Û‹8ë€?â=ôR ?¨&Mã?D—»ûè–?[uvË7 ?IýÝù]?ñKšUV?üȼí.?߆Ý??Ño§ÿŽ?¡×%ä[?wùHa†?KDQHGª?kå2XfO?{ÀªÒ?Ÿbåÿð?÷öd^˜ú?”"ª³*4?iÿ²!Ùæ?\Œ9Êô?Eˆ]Š›/?{)Ó!>?—4vgr¤?õƲÎ.M? (¿Ï ? ,õZ€²ó?sŸ†}Ï|? ….sF?É  Š?¨2÷ÚÃ? ÌÿãÃú?Öä§KÜv?àcoür?ôa»Sla?‘e„÷L?9‰(¤;?¦{/˜Rx?WÓ¬ÿ…Q?=$a¥$?^šÐ¾¸?¸“4m0z?>Ü',Øy?åsôŠö?§I¢_Ú?…å–[X?Ú S¬F?“ôsI¹?¬@ÒÞ…?¹ãÕ{·I?³ËÏÏš?šyÐ Ô]?{Ê¡³KÛ?a± Yu?LÏçm?1œæƒ®[? ]Ÿ å?¯oßíÄ?HX+žåË?ã`“ןÁ?žƒ•D?a#$?µŠ¼á2? 0þ?}Pjõ§È?þ.\ýî?ƒÔ±©‹?Ï<ïV?nD©,Ó?®¾fü?´]ñ³~“?z²Å'? d‰Ì›ž?†$UDe=??‘Ðl??²Mãj—Ê?­¨¬<¸?•êºíõ?ë~¨Å4Ù?ÎÜRI?ziî˜|Y?¼€@[?°©efï1?D1ŠÏ i?Œd‡i?¸ÓRW¦?öáÏ -?`äDž¤ð?ꥋc¿:?i=ãs¦?£üÁÙ7,?kb.t”„?¨ž>"÷?`twUÃf?®¨|HhH?Àº×Ã,?Ô°ý½Ÿ?4 ¥S}?$kÆç@?Íò—8œQ?*6ä>?þÿ™–S?õD‘O¹”?º,ØòŽ?쿱¹? ‹YŽÈ?›™s‰š?òo˜k$?+AËÍ?YÒó|Ò?ˆÓÛV£?¾ÂÙº,?ŸÚùÄæ?»R4Ø? ¸Ðr? TÆâ? êzÅ r? #$pÈ? –Ce ? ûo¼a±à?üRêK|? κ7”Œa? Xˆ³¹4z? WØ:¡Õ? -D½{ôJ? õ®Üfª?ZÌA¾ ~?™¡ýÍŠ? †·5Aˆ?šCÜ<#??TŽ‘M2 ?˜R<:,>?:wÑŽË?2qøêL?¦zç§æ? Ëáº/? šûQ?ðÒ?WH•¾?JYéQì½?^­ä›?,-´rr? #Rí4? µlþñžR? ~Æóeä?`ñÆZB?~4<ÿ ?/Gd‘Ó÷?ð<~uÿ¨?TºÂt1Q>ÿà$Þ«õ?+Op…Èn?ð¸ê¥æ?/U¤––í? ©c% ÄP?>—Õ %?pw+¢1?Â’?Žãª?Q3]¸(ö?fµÂýy|?±ììÓ³? ѯ:¾'? _ƒŒ>û? ;f’<Þ? ÷Ξ?„Xà,×(?e žW?Ë\K ?æå×Õæ>ûh 9+>ø×_yø>öØÍP܆>ööˆoÂ>öŽïç >õÇÕ{•ò>ô>^HdvS>òƒÕ×­JS>ñ_nG_ü?#Žà²îô#?"Ôærň·?!‘5=H? h<¸?r’>Ž ?Œ¹ÇV"?ͬ2Ëdå?AضÆ4ó?¸5g:Þ?ß.[õ¼? ±L’·?!þ­¿Î¼¢?#?B>YøY?$`á“À« ?%\«ïÿ×â?&<|Ut?'kéad?'èÌ"\‡?(¨J Ý?)õÏ9ý?(ï\lD.Ð?(µRq1™?&›¶·øÈ=?$Ù:G©`?#(ýÐEÝ€?!ÏäGX%®? çõfI&? e¡rùI¨? */9 )'? Þ¹U¬Z?  do"?½&[?6Õ*ûc?g‘±pØ?XûTéPÎ?B¤¯H½?Ϭé:y?{ÜâO 6?3¿þ¾×? Ò’30?ÆxeVã?Z¿Í¼R{?úð»|k? âÚN?«EÒ ÛK?õ¯ø¥yA?åEæ§i¤?FÌÓo®?ÃÆÖÝc? =R¥Ž)? ÞIáÖý?!oþ'ÔGÅ?!¹­TP?!ÈBQšF? #,Ö&?ÏHqN,?Ò^£?@'Isv?u›bÉŒÂ?yb'?8G"¹à?%çU°s??ÄÓ©4ÊU?Ú…=Ä€Š?Pk0²Ö?"Gb?à Tªâò?Täœþ!?®`͈Ô?"AŠR+Ç?Ñb¨*a ?¹7´eN>?¹¤~÷Y? T§•ã'? µgޤ? û!¯ˆ  ?!)€éÄ?!D Ý °?!GPL?!&[œ°0? Ò>€¡ë¢? AÔ¹ª ù?ö€t¢ P?.yâÝoÎ?wâÕ²lø •?#¨£¥¨g?Ybí1Ä?€ïC»&”?‹Ÿ»÷Â? âк?y"€™5z?‹IPu¸Š?¿!ȵP?Í\š{Ò?Ev½ª6?j^Îí‚?u=Fo«ç?{ã,Ž´Ð?žˆ;$´4?øqJèu¬?”€Bõ~N?h#ëÕß?Vbm¶l?:‹Ùåx/?õ,‚›?vÜ¢»Äˆ?Âþ¸¶- ?è{‘Ž]ñ?ö13û¸©?ïÕßï?Ì Z7ùÍ?|NÆ­T¤?ùR“éá?M >'$n?–.bÉd¬?ûä&/Wº?œQÊ”?|çz\?„öŒ²?‡é%.<?Y”¿”—Ö?å´ÍÚ8?=p™›U ?”|£OÞ?)Œk?0N›¶íð?¸¿(bÈŠ?¬(ýÛû?ÕÿPÌÒ?ó4ÉÏÛÐ?ûjÞð?Ín>¸?å’zº°È?5ÆJG\f?.(N,è?ö”Y—?¯Çà «?n 8¦?>ÄV\?)É‚E—á?3:Þä¢B?[YìÙ¦?ŸžšÙe?ëoÿá?‘—ø“ˆ‹?TöÖ-IÚ?SŒ®=#‹?…XM¡$?Õ-ÅÉu®?)«&Îþ»?n YWºk?™bmÀ?­ â%SÄ?®t"™ˆ?Ÿ¡Ô£ß€?|¯&W ?ÁÆ?Î.üà¦ï??ÔéÀô?¥½`ä`?éÂÔO]S?ø''úi§?É}P—¡¾?giŸ^:ë?ê§÷² Ÿ?sñûOúV?&”ô€š?$g'r‘?ˆw윺?\àÓ:Ê?|¡_,?òÈxÒb?E°Ãiåm?S_¤׬?ë8e>?rþñÇÊZ?ŸüŒH?õ àL?«¢éA?."§í·˜?©–ê<¶C?Ýé°­žÝ? ~²J×?ÙK ¯…ç?…ë&¯c?º(‘³«°?¡.LÍ÷Î?<{‚ì¯?ªayL?sqüØÅï «>üVHš8>þïµøb ?‘IîÛ=?ÌUsÝâ? ;6f  ?Ú2æp?v=OÌ×p?žëp 5M?Ý."GE?Y¨‰L†? ‰HR% ? /u¸Æé´? f¼Ê:[? õî¿.4Ø? pT)(Èv?hKåð 0?žøkÜó?Ùî¿ä®?@p— Û>ý{³‡7>øó°ð ×S>ö£‰Z3Ô˜>ö·×‹ˆ>ögÜ®½>öÖ Ê6þÖ>ö•£Í‚>õ~éSa±'>ô x²ˆñ>ó _á úî?$<_Ã4]?#x>öQ|Ú?""e¥‚ ? v¤ºÝì?=0Ö?C>º1$?–:›RÊ?Ia0BÀž?ÎI§Ò? Qrtóœ«?!©f0–„K?"ã—êˆÔþ?#ãè¥C?$§¥ÿ‡ßn?%Bãªzãœ?%ÙH3v.?&OÊã§¼?'eïb&?(=À×A?(ÆZî˜ó.?(¬¡??'Ç’õ†ƒy?&4¢Ýc?$KŒî¸?"u™âl,®?!+*¯ÐY? ë²lb9?C˜ô:«?³kP²£3?’VÒƒ«?d% =?ëT$a¬?£' F?¹ñæ,¯D?(Œºð?ˆÐÔµV.?zP]:’?ê¶ô̼‡?(L‚ÝT?Ê@é0‚?ÀlÆ[?ñ§SÃ=?Iïk´X¨?Êß`>?‡~í.”?¼Kg<Ž?l«ä î?‰-+yæ?Ðy—ëvµ?í†]¡ÄŽ? ÌC/½hË?!Uٲɚ?!’ÖäWŠÀ?!V¿?!d² jX?!+%«Š‰z? üh4•Á? äà^éh? ÝŸ ?? ÍQ²›? ”öD•¦? 9hdô ?¾èƯä?Þ†¾±Ç?Ø­£D?ûjíŽw?–œ‚Þö?å:uÛ¥?þfÉCœè?Êl’j¾?ly³€?`âû?Žöâ‘ù|?nýl5<î? —F0¹^?ƒ4¥'ï? ÉOµF?™к-®??Óoì„ò?ÞG÷,àÙ? 07(z? c2SÞô|? ’a=vÏ? Ê4"£Þ1?! öy‘"ý?!P&|Ê.?!tQqs?!YŽ®Ì¸·? ê`tñc÷? (.Œ à?\ñ‹ôz?UÏ¡0”?œ¿T5Ž?y¢³¥1Ž?±ÔÖú$?)®çOµ&?® XüB?S9# %?â]·f©w?7}7ôg’?BiŒ¤L??jmÑ"?×7%?ý,su?väR.ý?Ô0Ô,j?ë/rMÿK?ïÞ¤|Ö€?”ø‰Üg?=eo1y?a­Ñnjæ?,L”QÂ?ŸÛxÆ ?Í8·1Ö?8E„âù?=JçÌ]É?aLÜP?9{ÄÏÔ?W´Ýé?’?\ŒN5@?]9 Ù˜?`¡èñ?f #°P?l,‘/l ?t#åbJ+?‚CÕöôl?ž­ó«ç2?×|ˆ¾?@Dg³ê?ëQkŠe?áU—åo?kh@ÚÆ?„†„è?þÙ9ç3ö?p~öuù­?ÆB£Ë2?÷¤Ro|à?9«^7Ÿ?îÀÏ'÷ë?¹£Ÿx?cÁähâ?ñ»ÃÞÅ?lçŒ o$?çQ%ÅT?v8ÓñÌc?*dmͤû? û¡û?ŸÖBÒÃ?9dyAIÒ?{ ]"‘†?ÒExü„?7ö #–?›FJ&Û?æå”Á a?ÄØßW:?ê3#ID‘?œé0Û,Ì?1ôV{mW?Çw+ú?eÜú!ª?{òØV¦Ž?Úr "΂?© tï-ó?ÚÄŽ}sf?BÈ¥/?¡Ö?¶= ?ÁvÆb?‰ðR㑎?\’;Ê?vk¦¼5\?èý'Ÿ½6?tŠLí,|? ë[cKš?ˆólLÿ?ÜHÑ‘?”?ÞK~™?–h÷‚Åv?Åm‰þ{ñ?“L½Z?IÄEõ?I™æ4×r?ï*æGÐ?sïxšŸÛ?ÔhMåGf?Ö´20%¤?!£p?BÏØ‰`r?Ôª9iÅ)?ivÕV¤?2)ÄMbP?4äðm¢?I_«ÖÂN?>ö%Â?ç$ûª?Š©¬nX?¬“Ñ“™w?‘vIž ?ÐÝš‹Ø”?>ŸøkÜ? °õd|?Ë_üYš2?H†¼Ç:?Šn3fÓ?}d0aü?•poY’x?í+À¹÷œ? Š"óôè? ¯@*tGj? %À?ÊR?H)¯+`?Ûéo´>ÿßLê>û¯R?lª>û(Ljz*n>þ[kÐVj?fþJ¸ƒ?”^á(r? ¹)P÷ý¼? Õ²Á[~?EGµÒѾ?ùq™az&? u.dˆAº? …_BeD®? æ5Ù_,ò?þ:Cg®Ò?É3u9ø?ï†Ëü¯Ó?ñ¨Õ—õÞ?Zñ=,"?èÅsåó ?¢N–.Ä?ÛyoÁ1>þ4_&TpT>ùÖW¥ Ï‚>÷V<±L;‹>öÀ˶'Ó”>÷o”÷Åß>øUÉd{so>øŒQ½›¢>÷ÈÊ åôˆ>öŽ×›7œ>õ‡Mû?$ üÁn}Ø?#LÑ&$Š?" Cä´? ~Ú qmú?=:¬2\ž?m,±6[Â?üb %#N?ÏΑèý?BG^$qw?!¶SEÓž?"†ät?#¶Äý¤?$‚@Åõߌ?$ô3—+ö$?%6´;ˆé÷?%„·3>ê?& §åš?&ØëÅ?'µf²ƒæ?(Dó”(Ax?('Ì&jb?'.f ÏHŠ?%x~ùÐT2?#dªÒkRh?!d÷ÿdæ?žhü7´¬?‹³iȉn?w·¶'ë„?ÒŶFù?òÿ³E-L?‰"àýT?:@ú^T?7Ú m?¿Dc—|?ÌÊBž??~™C½’?Ȥv?†]P×\ ?…Šh¼°w?È…V¶?‹.˜g{¹?‚Îj<(È?žé {¿¸?5#•Öå?¾{í,ë?£2üz?r¤6Ûe‚? uAc0ç? ïe½çœº?!"5 ãáÒ?!TämL? è*'T(? °GªzI? ‹Tü¬´i? „£éÖ°¸? ×4ˆz÷? æã%ãÊ? ` gr?ÎzÃ,Éý?HÿÝîãÔ?]oíoy¨?W´þK~?Žœ]l?PNs .?Ò6TLÿ?!ØÄó?Ð ªñ?}N0Rëg?ðÀèŽÐ?6kcGò?1B­?ç¨Ö~ÌÂ?ršèU?æURR­ÿ?IŸ ŸE?‘Á¥­#ó?³';P?²–r ?¬¶7qÔ?Ò_Ú? $ùÝtóò? ?/ ‰?! +Ñ”(;?!wºA³?! ±Û?!cµð"i÷? ½•ìôåb?‘Hÿm_y?lxǨ¤ö?yäïœ0„? €—r~ð?LdâÓR?*H"f(?xö—FB?þÎ ËI?‡GIº¯.?ëªhF? w3È?ö ,X_?˜æD¶§?Uÿ)öÄ?u"oÉ ?ìB]¢Ö¥?‹>#v?\/e†IX?[ßðž8?´š¾…c?¼_Ó.Ú? r“)6?aú:¨ÙA?½³†ƒ4‹? 0³ù?HL³p‹¸?] ·ceD?O‚tÌáM?.w·®“u?PúZäý?jI2ìÂ?Rä«kä5?Ö£ Óä? È»éÒå?œÖ(  ì?¦›DXºÃ?–sÖ,?N33†©?ÄøÐ~…? 0»-§? ½UÁ[`?êÓ^®O?–J=+¸6?Û, ùà?@ˆ²É*ª?UŸ+.mÕ?m¢Â.âó?²É³#4¯??áni?Ÿ@­Ê®?'s‘?ôF¨ú‰L?» Döý8?Rú_þ‚?Õ¸nBl?oñý*Aû?RÕ׊ç?š§,,IÈ?E2•ùoß?18µ'È?(úp´Óž?ò?èÔÛ¾?_¹Ï« ?]ä‘òë[?÷§£œ(?N¹MÏ?‹MM°P?a¬±ÈØ?£ÕëU@?ÒVÆLù?í 2º?þÍ(EÞ?Š“½;€?D&,—_?¢‡Á’áH?AØLüqº?*ÃKD?XÒîÜÚA?ºïjP?7çOíÁ\?³5Lw3@?%=ñ º?JwNyä?P£«þK?)¦FvIW?Ü­,›?nmEI™€?æ‘:&CP?MchÊG˜?±)"ûÙè?#®YÞü?´þ‚/u?múeJBD?ORExHv?URÆc–®?{Ïÿ›?¿&%}¢?/Ð}æ?xnc'¾?ÊkbÚ¬s?ø¦Ù™z?ö:­?Äm²z§?rË*ªoÔ?ž4k?Ûž òM?׳E`?.ôK,¬?óæõ~J—?uõ;§­?”£G?ᕞ]O~?p;K@j?Ù»ÝwÀ®?lædùäÝ?æó…—å?j?ãäÍø&?cér­C?!¤Ïd…C?jV¡.­®?T+‘ \?¿×1ZÎ?”šT¾ŽB?ÐÖdû?—$rÞÝ´?4Ÿìž¢]?³ôÆoÉ?—$«¿‚Y?—¤g•\?QA~'ý?S9ܾ°?±s|%B*?{­l¥‚?E,êÙ?è`p‘ ?oéó „?Mí_yaÜ?§mÕm7?~ Ø?ä"ûO?ÿ¨^¹D?g0ǺÎ? ©Je7O?Àô¸„?Ú®œ#ø?ð‚!‡îH?(b½b? @žË 1? ÷ý°Hè? …ŸÆzÓŒ?ŠDáÓj?:¹µ~ƒ`?ÿ¿ýÅ”?›‘­ÈÔ?riÁï™?“|›M˜?¤Ð+Ke¾?zÕA3Â?æ²^•—‡?ÇÄb.·? K°wJt?©TDôœ’?¹"D9? àÅÈÀÑä?OU{¹§Ì?=Ò™8ò?Y´œ ‘?§zlî?¥Œ+a„Ö?uqÏsn? |yJÖc(? yØû9¼? År0? vpb& ?lÖíB‚?Ô'—Kx.?²Š3êZZ>ý¹× sH—>ýš¾PP?•oê¹Q‰?Ö>^ÏŽ?ÈóOg.^? f.Ó’xŽ? ¹ Ÿœ}8?=Êr|?  2Íâ? ï‚{i”t?µPP¬?!¹õHW?vyŽ5N?¬/)ÀÆH?.\%l?}™¬Ö‘V?,Õ'´Oþ?©xöJ? 0M $Ì?“å©—˜>þ.D¼·kô>úL‡ t >øNs#Ô>øUJŽOw™>ù¸ «}÷>ûLe-CV>üÔ¤sñ2>ût‡É<Ò>ú?ü|ÄZ>ù>S†|?#P…û»½?"«ˆ¼éÔ?!‹]"ö? 9©1ns ?qˆ·ø?¢ø†*Ù?€ÀVuÀ ?Ћ™Ù(^? 'ØF…fš?!³ÈÞMþe?#.óDA6"?$L6ÔÓ?$èú¿‘Ñ?%òtç¼?% ¹Ö*ye?%½@ù?%v=ÿ„‰?&'žÊ£hr?&÷‹•^Fð?'~Ùx0z?'V‰¤¥ Ç?&L\7Ùã‚?$\Rv?"O%\»}@? 1‘Þw…¸?þ‘ëCfÏ?ºíEvB8?­µ{V?ãÛ±u?Û`Iö \?°4ÇF&n?<_TÇ4?Yõ`žð?ßrc¡~?ooÃÊš?Ïâd<…?yi1¸ª?²Ñÿ>¨ ?¦Iý£K-?WÈtOR?­‹ ?5üÃý?ÒU±3_n?A)«æþ?wäãáù?EáÕ¼9?³—F&Ê"?ú¬›â¶?^ëhç@?¼­c§¬?⡘Ëq6? U.tÏn1? €šŠA‹Â? x™•¨£‰? OÙ²†ï_? !žttþ? x´? ŒÑßðV? )O¯î›? (¡í“?ÿçò*¾e?MÊ7?ªË[¹Kt?Ø;É.“?óô¤ŠUƒ?UùÁ 4ð?K4bžR?‘¬?…Î{XX?¦ÓmÞ?xA—kØ? áûš?ðáFŒe?ø2FVÙŠ?¹u?Ù?AÔ¢?–E¦¾?³Ó’óéé?’ Hw Á?2þ`ïp?±Œ$y3º?CÌþ‚Å?åžA4­?<¿NÅÉ©?wOõa?£’“O0?Ô‰v_„?í®6še?ŒÃ $Ìr?/T]ËwØ? 7[hìj?>Žì?\¡±´Y¬?º¡hœÃ ?é×f1°?lQÁoèÎ?‘ §Nª?‚ÞBÑ?D\€Rr?Þ¢Ó*‘?[?®ô?ÀÖ ‚’«?\TÃ`‚?j ²ýÞy?È<;3ÏN?AV_?ê?ߨ¦oÚ5?§ ®æ?•oT:?§xŽqè_?Ù_mûÉ?$N ›=:?{‘µsP?Ì|ȧÚ?¶~méÊ?¯?û§Bâ™þ?ÄÄÙß2Å?ƒj‘ ©:?R«=Á@?RƒòM—?£ÀÍAÓ?ZSkÉ*?pç¼x?Áw[àFô?YŽZø?-yÁqú?½ñ#ØÌ?žPc5?)/#H~?¾æ@5´?b”Õ%Eø?€ÆíN?“êÛ§Í=?ì¨ [?óMûfj?„výH~1?~îýÒ)Ò?Õ\LæÁ?£Û¹7ÑQ?7âè= ‡?ÿê¾°¢?gö¤áéñ?hUrÑ?ؼµÊŒò?àõ,m‹Â?CÕi"O?Ä?,(š‡0?ÅólŠŸÞ?ÕÈU·é%?JY-=ú? ãG ?k ¨Pš?[:_2)?oÀ™hÇÊ? £$ß|?à˜P¶UV?‚ÊþTìv?–þ¦÷(?Ô£¼°‚ý? ´¹SëÚš? Âa`? CÕ_¾?U:ñt6?Ó¼¬ê?ª"¶Ï?|bÄT?eÁ<nŒ?rn¸(³„?hpOŠ I? €üé…?3ý)ÅÒê?Êœ¨Y?ÊÒûÀF??oËþ?…³ÍbnR? @Q±³W?ÍæX4§Š?uèwJ?¼¶it´?a¤TC?-§†“ j?–µòËEâ? ),“'4ú? ·¹Çàþç? h %T? º ¡? 0_Kƒ?Ò$¼ü™?e¸À–?„ê†0*…?Ã:n°²?¯á>Kè\?Ò2}dBÊ? R•°ÇBø? (¡û‰>?s¬™›´? Ù#Œ¦!ò? ­8´øf?Ì4ª£½?2­î«F?Ÿ"„ˆ ?t‘ó9o?`çç^?`?ûØznÌû?U×fh¸N?Ì÷âPÒ?H*=íH?mlhWrF?iÎJwŒ¨>üþɬn¦>úh“#Ó>ùÚþ†7õ>ûiÅ¥@T¨>þHìáiÑ?ŠYÌúXR?EÑ.’¤®?"l:X’ë?v«Øl>ÿ‰dË:®?"‹¦Ð¾‘?"Þ×q;?!&IÜÛ¨? ãHhA?p<=vZU?h0>%‚?‡ß,óJ?íé™T? ±¤ˆ¼Œ?",žØÍ­Z?#Œ(VH{Ö?$‚oǃ¼¡?$í:Æ ­I?$á'TÒ!?$žýbUìX?$wšï%ô0?$§7qdÕ'?%5²Ü!˜o?%ê8¸u"?&]»¢`Ø^?&*A5Ý!Ç?%¥Z7*Í?#Sé‰Í¥Þ?!(w £æ?jê-Xú?¡ ô ({??ïÔŠ?ߨ?Θ´?=£ì¦X[?q1‹6k?ÞÝ1ý3¡?”õQ“÷?üPD¶hi?̺ç¡?ɸÄÓq?s°ÐRè»?N*Vf ?N{‰Ñn?prW-îœ?”³N¡´'?Èß(9ê?çØ¡ƒ?´‡b²Ò?æ+ÓktŠ?_pÇ?…ðÝÔ?w ˜.u?TL§í…G?/58m?þ˜&”`?Æ(dc•f?U­=?Ÿù9ïŒ$?¡6IžE?mC’SùZ?+òÉ?v ?¥¢èå?òé•oƒ?F ÷ø0Â?c`ÃÇ?,­Ó·êä?sp9 K?3uUK¿?•gêlTS?âÛRÏ?s c8.—?“¦lïûè?sñÞêל?¢UÑg ?K"§’?ÉÏcŠÂ?Gtå—È?‘ˆÎ+™ž?“{%úÊ¡?Lr¶"N^?¾{ùV?å”r2èã?¸%ö§eB?2W[Êú?cXÊüIr?v”º†È?±|ZŸ±÷?aó˜ÏÐ?ÂOÏâ?Ûl ê?x ›Ò? ˜’0Áy~?!CÈÝyе?!‹¨Íãßó?![É;°ÁH? Âóò´éJ?ÖE µ\ä?w\\¾b?‹Ï-Ú,B?yULIŒs?ÞØ˜ÆË¹?¢ì[Õè;?ŸE»ºÚs?®ÇoÞ>?´‚G3£?›`3^*€?TT×}&?×ìM£-?'ðÑJ#ç?R‹­†ûø?oƒ/ñ@?t&­ö¨?üçÛ Õ?ªÞnr&â?»sÅ´ÉÞ?2¡ Û¢ì?8ÚT‘4?ÿ>Ùœè?þ™š4º?Άë8Gp?O©éŸM?vhî¦_5?Q%ã”?ú`*7?“Ä(šŸ!?D Oêj?5=.!™?‰>Ì€$ö?SDÜ?‡üLuì‡?ýáoŘ?x"’uôo?½²ÚÜ ? T7«Ð¡º? ˜kØïÆ? ­–Zñä²? ™EO`eò? \Ål”žþ?ò8bÒ°?çI74ûã?¶Ë3c4Ó?ŒßMÍ÷~?•£kò?éÔ “ƒu?…W:Ý|y?Kï|@ô?êèOž?áFv'Ñ? õvÝ?ptdVæº?r4”ÞÔ²?½–[ŽÃN?Y‘YÁ¬I?5êÞýh?'OpÌ?÷ÏH»È?o†d¼Ü?n=(˜á?ùJ‚™ú?9òj¾?jJO•]?0²Ç‡—?ÅÖbQµÄ?wôɃÔ?D [e*?/o4Η?:æÊu„¾?a»G‚Þê?“æ æúÀ?¹â ¼àê?½–+sv?“!p[+?=>2}.?ÄÃh Ô?1þp°ö ?ŽˆtõÔ6?à[ОÈ?1+k¯æJ?Ž¥#•r?KŸ…´•?!%åj?[–(@ =?>Rò¢Û«?BTG^?cS¬$R°?œ=s§vË?â‹bJ?&ó­Å.$?Y;õJ?m½}º?aíU¿lÿ;_ˆ=Ã?SJ²6N÷?÷O)¿*š?Äe•/ ? ©;Ÿr'^? Ü <[\?ƒÍÚOòŽ? “a†&Â? DÙ.)D#?“£Ã¤’?w!ÅDÀX?—°¶k–?5æ?*=OûJ;? ò̃ÇìÜ? ¹#pø?…ýùõ(°?šTHTÒ`? Ê´ö¡ü6? œmýÆ0¥?1Y] p?!œëûåê?o¥$âSà?ûpëCù—?Qm8Gë?Ó‰’ð¿?mý}ë?˜ @ã\D?™{’Þcz?3Øez>ýt2òÜ4y>ûJv}Åã>úîI±’ÜÍ>ýÆÔyƒ?ÊeÁh??¤“c1í@?)^9Ä5í?ŠOûù=?)›½îz?¼¸3Ï£ ?úÃ8ÿ@?""dm§Ò?!Äj4ÔÎÏ?!"¬'ÏØâ? hUhP¥?«.Sù?ä°#fÎÃüîW?0Hÿò?L Ïô®?Á*„nü?+Ý?|+6œ?¨ADFÆ?= þÂO?¶ØÊ’¸? H g?;4\Ù‘_?Fp….Æ?>¤S¿$?@2±9ÃÂ?qùž²â?ÿ¸n„? 8å?¨«ª?ÄÜm·Sz?/ª ú?¡#uýH?Õ­ƒ(¥>?Mê/½@?çÞd­á?Ã+彨R?ƒüð­‡@?çÃ6<Íc?ç÷‹J}0?£ø òÛ°? öyeò? T`¬’Ý?“gg|?4œìœe?óÖ ô´©? T›32Æ? ª¦z_.? ®§yŠÂ? fúrü?³r£Ì ?öëPÁOY?E^u?×Pëº,?„‚â“1†?ï9ÛôU8?ðg,ϲ?wDÍŸ ?Šà3ÊÀ?{€õðKL? NSó¾sŽ?ÈJÕ °?>{!/ ?(î!½«>þ6¥yP>ý.† 8@„>ÿÀ9çIúA?ÌõhËù?¼é¦Í? ²°©,¿€? ® º…}\?ix“3¸?·?“Nä&? T‘e¾R? ¼_†ýIë? ±â¼Wv? ¢ ïrXÊ? •ï°® ? iß„Ü?ˆÎC¼ X? ¾/¹?ã ¦EÊ?E6‰²YF? ”iö1!¤? â꯬?Œ`žï!?ò3¹Ç/?á|Õ"x?ˆÔ!h ?Þ[í€NK?6¥'‘Ö?Ñ+éY?c²j¶>þ|¤ ÊxÝ>ûû6ê+>ú- 5«ç>ú+.4Ü?y>ý[K“ôB?º´TDÇ?i£þùrY? ¢Gж®?·ÜZØ7?<ŽÞF?[éí’»s?Í«¸ÚŠ?C|‹E 0?"C%Tåó?"Âuä??!”´¥ÌC$?!BšÎXÄ? ¨LSè? k`N•¯w? {»;S¬Ô? ç¯!?!¢7Y ð?"6¶q3À?#?PÏÐc?#ª] ²?#©ÂÓýÎ?#Mÿ©¶ŸÒ?"α*­œn?"jö ëÐ?"QÅäê?"…ü9ÒH?"ÞÀÂÅw£?#9aâS?"ÌkE8ºA?!ñàcq«œ? ‘¬Ñ€Íƒ?Ôi ?DRsâ?È®m°×.?¶\Q΀&?Sª³-?~«+þä?zç]ÙŽ?ãX.9?Ù'ZÚ?ÊJ,6¢?/“ìL?¯»ºöG?>Iï×?cj%Zª4?”`ÆëU?Uþ¹?‘uµb?"í¡%P?Ec9 ‰?¤IðM~Ì?é)'V–?ϘØÃ)[?. ø¡&@?ûÀÙ{©ï?IÈ&ð^ü?Ec©»ö ?%§o¼]A?L=x¥?.Ũú”|?[ºý8‚?€éw~óÄ?†ªB†úâ?m¶Ë|r?OñV™bW?P5#6®5?€‹Š?În{A?µ1K¼ˆ?ìvád’U?R## Â?<Ñãl?ìÀwÁc?!°Œb?]‹ärô?›2,â?Ø>³ÔBi?y~T?3ßï诅?A¹²Mk?34Nm†?Ò+Å´ ?ôäAt?8Ç«?{ÏŒß?‰š‡R÷?Ku1Ž?µMvdÐ?Œ™ƒ¿J"?y"ìEœÐ?e=jöý?=‹S~O„?¸éÜK¸E?ž¾oÿ?¦1dÑÐ?SݱNz?—e%ï’@?"f?K?-‰E*@?ÛgŸÈ?(³þp­»?ç;?¬$¬?ÊŠ 9? @æ†Íò? éwÍ}D?!S~sC ?!‚Œ¥8×?!|z]Ã?!GÛBŽ? â`qUüd? Pæ¡óÿÊ?<áIjZ?ÁŽ©ÆÝ?bÎ6 ?FÞÉMjŽ?{` Šå:?öÉ÷ *?§9…z5Z?R/lìø?…Äǯ{—?»ô|‹{?)žSØPl?ÍEü"*?žN]çÜo?‰ñáZ5?oª·_^?(}ôú¾?jÞ§«âÒ?8Ï)—Ó>?— ´¢A^?¸@¼øÅ?ÛCU%l½?-`LÆwo?·¤ÑqšG?dÏI?“#XD@?¯NÎ9ƒh?=ß ÓJ?ꈑø?&/ú>?WÅÞLÅ?I”gfF‰?<ù(kË#?\"2\u?Í8š!ð¶?g¶OYC?ýsQYAŸ?¢keŒb?Z¾ÌØ?g²ÑÙJ?ÏDmÕ?mk®qK?ôgf‘|R?lWæ4?Æ?ßõ ®i»?XÄ Ä±†?Þ8=%°Â?uÄ÷jÚ\?!4-)?Þ 'd¤Ÿ?§@—%8C?x¢Ï'ƒÚ?Rhft"v?8Ñ´µ‡?1 °Êk\?;úmsó?R¨–$?fÂ\`$?hÛyú£Æ?P†•‹?!Ó\®Å¿?ì/#º@?ÃoµãË)?¸>a ®•?ÕS¿ Åh?! \Uàb?ž8X]3¾?H¦˜Wí?Xð ëu?Ý/ïT¡ÿ?›zÝÀyä?H†… Uo?óÕÏÈ?°Ž5ª"-?„KñW”?`Å+«MH?.´í˜—a?Ù#Ü’^i?Q°žp=?‡™Ê27Ä?]ÑHb—¹?¯j¨@NV?eE¬3eS?Fu…›?náeXý6?hN…SÚ¦?à{˜W¿ˆ? eDt?#h| O¬?ÙºïÕÀ?ýr`8"ü?IŠýöã¬?„ Ž¥Ì?‚­e®&ƒ?&å¿ tß?W8y…?þašdå?l•~?¡a{Ó›¼?×Ãoï'?öþÝ?¶? ´ÅýºC!? e4®å@^? Aî]ˆR5? 6gÒP‚? ìÀHÝž¸? ôS‘SæD? ízî/? °b¦¦o? Ss¢²c ?2nEl]? ¬M°à?"qí?¸ßáúÙ?²GÊÞ?"Ò¢÷Wf?»ƒÂ€s×?Ôuª™·>? …À ³ÝÃ? ¼ƒ'vØ?¨ãóU)g?“IÊ}?ˆf #•õ>þL¸¿ä>û–eLn>û°ç³˜â>þî—û#jI?w÷&}m·?IŽÍjRú? Ýpë? ~V .c?Ê= ž9?GÑãÇõ?hI¶€?ä¾)H¡@?'G²žŽÄ?ýjQ×<8?  Èjù?QúsÇäa?â>‡Ë´?ˆðB?–¥ÚFR»?Që†òË? ¶ÃOžìK?*»EÓ†+?{jPn?)˜ßí>ÿµJ zÕ>ÿ‘7ÄÈËð?;ƒV3·?zÕÂ6(`?Q”^;E>þrëNr6>û5&þÅwâ>øÈΉ&õy>øT ûÄÒ>ú¦REz?ä^Â÷ ã?µ„ŽRL? àFóÜ?á^sû†?oø–µUó?l­u?³ÑÔé6Æ?ëÊêƒ&?"í¨‚h?"Ýx›ö3v?"­"¯ÒŽ?"Yó‹ú§Í?!øaƒ_œ?!H“Ñ{?!\X—tØS?!J-!&ê?!sHÚ©œl?!Ñb×Á?"F‡©*D¼?"¥8ÌO?"Ä‚*™?"•O¦ÓCì?"'‘b,Ð?!¢ tï ?!4$4ŒW–? ýî€ÊR>?!¯?Øz:?!#ù2Ën?!,lo=@!? èlÛ¦„? <ôs„?n‘±¬6:?ZpØÁ?™t}kÉ?@Â?ÔI·@Åw?–˜'/ß>?¶êÓ6?'¡åb‘º?Þ“[ÀÄ6?ÊÔ›ù ?Ɉ̒<?«­åü€?EÒŽØîç?“P4p?¿A§—³?«ìC7|?£–—É?Ì®ä`$?T½É²½$?tßTMÓ?Øk=VB°?+ܦøþî?%Æ“8SJ?’—© ƒ?Z%ª"ö?†ƒkù|?E/™Ïà?ÜÓ4Ÿ÷ù?Žþ- ]–?}£+3rˆ? égÒÅ?Ï„v8Õå?ãc•–y™?ÍAl' Þ?¢ø.“Ê?’SiJ±`?Áv“w”?1/»9L¶?±O4Úý?òvM^SÄ?±²Äüý?Ý iÿ}?¤à14?jR½TJ?”¡7XÓ?b³*:¹©?Öm8ÎP?»Ýœ»H?ÊÇ­(*?ȱ®f'€?˜9þz^?0ÏÚa“O?Œ«šE¨?™™"ÞØ?D;îÙ‹Z?~š‰ÈÄz?Q\ðb<¤?àY”â?gxð1jø?1§\'V?ŠܤՅ?ª*8j,}?¥‰š*\D?_”àÔÉ?‰†èp¤?¼&¥Uçh? I~a*? ä¾ÂÀê?!'éK}å?!6÷ìüC? Ý<‘Û ? yq#Œ? þ|’î?÷ D!ÀV?Û_KY¹ö?¸‹úýn°?˜Ú#ž ?„s÷vðè?}oËnñP?¯œUŽ?€ŸòÁú?wb8JÈ?\S§ýŸ°?0»“k¬?§hg>?Ÿ8žåB?q¨Ì ‚¼?È‹íŽ?`È[©Õ ?Áöªˆ??«ŒC|IP?1®Bd¤¥?^UK3â?žH3J?äTÓ‡k? QìÍê?!ªB}Ф?!}!K©?!¼õê›`Ÿ?!Ê[ÞÖ·”?!§;U>Ý?!OîC›ÄÞ? ÂK¸¾¾¡? ¯‹a,|?eÕ3ˆ·?É ×Ü=?k%…ü)?hdßñö§?ÃC_M„?p"OtcÂ?c.Wv_n?•¼xê?UN{y½?Ÿq1Å?^“Ž+Õ?1#ð|y?“þwø?Ë'³Àϵ?ZC¦¤è~?¼ž £N?VÊýCd?¼L·Î8W?í<ÃAø? hrX=?{tܨ¤ð?L“4Z?£fùßFM?B9ŒÛÓ¼?ÕéÞQ?f7>w6?"EâŒó?â‚ A?çÁ†”F?‹{Þ¡­?ù„ t~? Ê̯í?¾C=Âmò???Ç;µ§?¬™ÒtW?"_uÀ¯?ªÝ 1‰ë??Ú÷ÁWA?Ò=žUÂ?XK¿1Aø?Ói¥ùP?NL(Cä?ÕÕe£6>?v×3¦Øt?7ÂÝ0Z?–·àµâ? ¿¿.ë“?@&##\?î,þ.ÊV?ÅÓV™õ(?Ô¬ö§À?^Ö»ž›¤??g;=•ä?8Btš.˜?@fÃc¿Ü?C&€*?*|[°IV?íY€Çc?•‡žSÓ?<©§,ZÂ?ÿ-R³Ÿ?ïfI±¡?¡ì·„—?Z›WÐ.?È™ÏÖ?Sc O‰Œ?ñ§51‰?–â7÷"?4ݦá$?Í\"dàŽ?kåtfâß? PPß…?íüÍóK“?ÈîØÙg#?™;é6ç?Gÿ¬©ub?üSž?úÚàN^?Óù[ý/?1x\â\?2 Ç>?[iW/+à?w,Ý©]}?°û(éõÞ?b_¶?ÃLËó?Û߸!P6?†‹ÖÜÓ|?ƒ—w ¨"?‘3ìnÓV?|¤×i3h?'ˆ§Á¬H?‚AZ¶mt?Êš>Ž€?E6e1?CXÆh¤*?õýj9±?€àØ—ø?áŽq¶à? +4óÞ? H©-Øþ6µ‰&*o>ú¶¸!n–>ù=‹„K >úE&b§À>ýè‰íïƒu?Þ³þÊ?hS» N¶?•`? ݾú ùT? ï„úæsÖ?K†Kж?26¡3s?Ô7ߟß?œÕdŒù?q–­?!dZi?i´îT?rÊ»]¢?ÙÝpÐ?žý¿6›?ƒúRü6? ç9-ŽÓ?.ËËqÔÂ?J\WÐð>ÿÑD ;à->þR$p©Û>ÿ&¹é·:†?S™”#Ál?£ý"‰«h?@}`݆>ý^Lj¼ >ùñÀ^…œ>÷p…±Õ¦Ç>÷ÉCu=H¹>ý % :<¬?ž7!ž? "RïÁ?'õó«Ò?Œ´Òçl/? bÄoæýÖ?!Ù0dYj3?"Ö±ni#?!ŠàÞop®? þäšÈa?#´Úx9¬?#„àà Y?#1M?Ë@?"É÷2}Š”?"_¶â1,?"Ñ…î^#?!À/ÁY^¢?!¦§»|Ë%?!²ª•aöµ?!Ï¥­x6Y?!Ý‹ü!ìº?!Á…r’Ö?!s3ÇdÆ? ÿæë=? €ÌI©c? ˜e©Ã?ŽôägšC?C5óÝb;?!Åä*?ðÕ~iz?vÓ¿¶?•K9?Uüàž?Þ·(=óe?`‡2)ˆC?ú~§K»h?¸žRˆx2?œÂ[¶å¶?«ûÍ,‚H?ò j#Ý?yßXõè?> ¶…A²? K¾1~Ö?ì;¤G :Ÿ„?{¦›\¼?ªÞTÁVr?¦a¾ójF?[°ÂpÕ¨?Õ“+ì4?2+$z ?Ô:-€â?ýäêºÀ¶?u:\¦­?ë$dnò?Z)Ø.“8?É$î"&*?H²òè(C?ìzìÈÂ?Á­”ëwh?Ì•”ô ^?‡6g?Bþ¾¸8?oïP«P?o†fr€ˆ?=2žŠÿœ?멯ÝMz?›cŒ vb?iݲ ?^;iõ?jܹeøß?nRÐjú?G©MJ!¾?ê+ä$ÚÐ?fgòÐ8õ?âÁ®C Š?‡ ã??i'É[¢ˆ?†àiGa?Ïì-X ?4ƒ ºû?¬»2 ?3rÂÅÐø?ÀžnfÁd?IËÕ£A©?Ê¢æž?1T%ò2?FãhÝz?6ØŒK]O?ø¢|LŒ–?m"#âò ? K)ÀvbH? ÜŸÏèEê? ;hyAV? DÉð–ÔS? ®u¼_u? -C£% ? ™U…1Oà? ÿÒ‡O¸ª? ’©¤ª?zGí6Ø?§+!I# ?by½ì„?¬Ô¢È&?‚hRX¤è?¨Ä,¾"£? o$=x§?? § úmÚF?žÎœÍû?‡_ú$v?¨9]õWŒ>þ& ÷çÔJ>ú& É6ô>÷‘ÜÖ¤>÷¬º>øÉ6Μ>üŸ³¤ ?ÎÃ|?J/°ŒKm?…<*>? eEXýjðÎð>ý @2s¾³>ÿ"i*u]?É”ÌóŸ?Z2¤]Â?É1†¡>þdßó(‹ž>úpŽƒhz>÷Â2TUó>øëPØÅD±?Pñ¾%8¿?“¾£â8?¾kw›[?ëª ;?!±jsáÅ?%#1::Vd?'Êl?„V?'bó÷ÄM?&´ ?Œ?%ÿ»h‡FÆ?$~äŵ„?$B/æ?#×ojÃsß?#P/ÅSÎy?"¾³[7ÝA?"4µ e³?!Ã(-dµá?!uʉd?!JN ?!/%~„~?ª;n‚V“?,¬Q‹<?÷Lüd°4?¬¡e-?éÛ0|›Ò?Óuõzl?–§Ð?†cSóÑ?¶t™ã3Û?`ZÙ™N‚?lý5Ú?ëL6Т?hmjy%?Ø;^pí]?4 B9V’? žVÞ©?±Ÿ,¸ŽÊ?°ðb®p?Z>÷½¡?—"ã%X?nª§+fg?ui^?£íçF?„æèV‰›?ì¢^€?äYÁý§?ݦtl‘Q?]}êNãç?LTT€;ê?]…;£¬¢?FÌuÊ?ÑhXuò? s,I]ì^? Àg<ó? ѬÚEµ¯? §û50]? F1ïÎóÎ?jÒ€Ô2©? ¬A×s0?Ÿþ¦r=é?E3§é.í? ï¶*¶?ò”‹ÅN¦?èk¤•±E?ä2hù ž?áæ¨•õî?à–rž¡?ÞØ¤ÕÈ?âÏýÍ?ÃÜ?g y”?‘g“ðXõ?tÃʘ?¾EÅzY?O?Ć’?dðø•º?b.B–›ž?Ê/ÁG_µ? /<Ý5ÅÃ? 3#–IH? ä« >¹? 8”Šˆ? ƒéøà»À? äŽÒáwˆ? !Û]ëÀ? V‹6¸Œ? ¾¿÷ó™?‚¿jɦä?ˆ4C¡¥1?6Z̼’¼?W GJ>@?ôŒì»*ü?/#W ÖW? ›ƒ9¢?•'ƒ7-%?lTk%T:?XÖòÐD>ÿBÑç¬>ú5BpkÒ >ö°ôvÞ>ôäl¸§â>õŽÑºù’>÷EçÞ®:8>û:&ÛuÕ6?>°š=¶?:²Ôä]?>Ÿà®u? ¾™ãS? ¸¢7Vu ?^È&Mæ?¤=*á??ðÄšbd?Õ™çâyœ?8ßÉÊE?™ŽÉJdã?@‘oðF ?ðWÄ ?ý¸ÉÁ?V^Þçrx? j P0?íZ²µ-?®‚Iw&>ûÖ±F·9ª>ùí³’˜:Ö>ûO1ïµß>þ¯•kä"B?_Ÿ}Zw?œ0Êä?ƒûp;>ÿ÷›¥$ü>û®`ï;í/>øÏtŒª±¬>úo÷&Ó3?é`ãÙ? Ð8§1ùm?˜Æ…¶¾?L§ï°…B?$¨nÑÜ$‡?(ºSúƒ®î?+(¾wu?+e”`h=?*™jJ³G–?)ÆŸ|«óÒ?$÷¤j9?$ª—oÃã?$…nÉ?#mqÃþ¾?"­V­ÒÉ?!÷ýzs¿?!`“€ò?÷!«£Ôý?L«ƒ–lg?»<ø–]r? 84e?R—óO ?â6Øh%?"gÜÊ­?Yy¤¶?A³©fP?–Deû?Éæs_ƒ)?늞úÇ?äÈñÂ?å±7{?„ǾÀ?|;³ðžÚ?ö8ßBŸó? þ­R/¾?ï¦þBF?Íî…2Z?Ô#ÈØË?×.}Ü?…£mÒÑØ?ù‹éAfv?>?¨·Óô?3Ó#á9?æsd„—?ÎÜ%ì?}²¦?Øe†w?‡°<ÓŠ?8Y£ƒìæ?‰ÛC¨ç¼?JD/²Ò?’7'?±hàéP@?ýá.xl?¥ÂÖ ¿?£Œ¿×´?Ñ„0¬¡G? }W$7ç?>Æc•$R?rÔˆc¡e?­²yÞb?âFí¬ƒ*o?ß(lbô ?÷L5I?@øVt?Oý#ýÇL?‘œPÉ$?êVr:]?t§«?“Yo¾?ZÏÈï(?ñÒ£(Ê?8ý_jì?Öö‚䆓?Uø2– ?EæS?eI„c®?²~è¥ø°?]ÌR^y?¯D{õã™?îϨ”?Lú>±Å‚?ãÓ¢ñ$?¾[ŸE?â>sà?P»ÀŽÈ?S8¶& ?âËÀ½H?ÙÆfÆ…? fA¨$à? Ó 3_ ?!(#i‹Ë°?!Uµ8H?!GÈ鮤´? îºêÇv ? JÌ®F8-?â9Éj¬? A±ku}?cÅíÔ[?ÀÉŒZ?R)ì5´Ø?X‘ˆF?%'¾UA?¤8Å‹.u?bÚÌõê?72³ÂÚ?óiÒÌþ?w!¾<Ô?ºvf7bš?ʰúé—?»¬1mÒ?™ÓŽB„©?h&ĈuÌ?'bÂvòj?Û ‰^Í?ˆá`ó?3(Á^'?صq²â¯?xŠziH?¬9]ä4?½<Í‚È?y>T?Vš#“‹ú?\ ÐÐì?‡ìarn?Ç#ûìî?üœ|X ‰? ;pÊ?¦?Ü»i¬?|ÃqÝ!³?ÿ™.?w3ÒE¢?雋öÅ ?M¯Í9΀?›Òøúâ+?Ü .)?*?ç\»?­¹ØìËÚ?‰4²3hø?ËBtO¨?c’¤Hyï?#G…Üð ?ÈîÄ©êO?Ñé!Tƒ?öÄö.Ò?tÛ:Xx6?Ío¦°ú¬?Hy¾ªQn?B4Ç–)?Fö¡Š?¤çÃ?‚?íä*s*?ãØ"|[Ì?põ«š J?³†LCÖ–?ë™<‡ì?W>=ü¥õ?‰àÐ*~? Îðö!?`àn¾“Ê?Á½ Ê,?<Û¤èID?ÍÐÙü?d^UÇâ?â ë½"#?* I̼?8ŸºJ:?%«²Ç]?4 êÍ»?@÷hp?šzGµÝÚ?ÓjÜðl?Ž ##&?Ö“ç¢Ê?Ð3nhú\?kñ'æe?±SðWæ?Á=[Lüo?ÑÂO|Ü?èbS6´?Ù$[š¾?ä2b?ö9-ø?.Åÿ¡³Ÿ?¦Ã@4Þ?Ä!OÉ«m?v¶Kü:ž?Ñ’û¯Y ?üöœ?½?ù4¯Òþ?Mø67?ƒoL¨³?³ð2rJ?½ä@zô?1ö]*9e? ÁMnø? {5nß? Š`Òr‡2? æaÙ?«? ‘?‹>‚2? í »3, ? þ» ø7À? éTó.‰b? ñ *< ?FAOˆcb?Öýt@˜?I³p?Ÿð?'¢¾ø?á…}‰Þ? ,+æukþ? ‰¥£EOÓ?6gz¾?|l¯Û.3?…®Ø(:£>û¢F0 V>÷"Í¥® >ô(§\Ù>ò´n€¬È>ó\ôÇ=jù>õæ& F@´>ùùü—«£µ>ÿ!jM3R6?k&RE¡=?ND¬Áóc?•EÊú? ¿›?æú? €ÞÅoÀ?E%üš²?ë.Ç<÷?uÕDÓ6?©}¸Ê0?“J”y:?~ž”åü%?ü¯Û4$?¾•€”Nõ? %Ø÷gQ?¡ôUœ?¡­F³ø>ût:³Ùÿ>÷% Î>.->öa/sàÇ>øÏÅJ€C>ýHóÖ?¹pÿ+r&?uê‘y:?ÜèÓ?Uº2«A¶>üXro÷Éo>ùXo¦Óoe>û™åaÂ?s9™Ák? ëêˆëIª?™Î}rØé? o FÊy?%»dì©B?*¨ž;ÜO?,s>Ìv9F?,Û¸gªoœ?,ÀF¿q ?+'æÛ˜¹?$ø|éÔ?$QUÌÔ–?#ø˜òTV?#$庽€?"AXô=ê?!mвlÒ? Ä.Z·Ì? RôrS›µ? ×Ї¬?ØJr.§¤?ˆ|ã„?ä=àª:?ŠÔ °?ò¢Øa¡?XQËF~?¶ë¾Ñó? ´`¶Ìœ?cxj†»¾?çRyHÙB?‡³<_2? õL úà?º¦š)‘?ŽÃÚ:ô?3¡Ôi!·?SÔ9ì¶?¼Çî< ?u+Wtç?¼É~:U?ñÕŒÙ+?gñýÍÿ…?E­I7x?wPÌy°?¾&ÜbgÆ?ÖvºšfŒ? 8רæ?ÝŠUÖº?ðéc|f­?­3¶Ë—?ÞÖ讘 ?Ðâº_DZ? a 2a ?cÌ‹­©µ?4Dµ,¡?QWQëúÌ?µ3ã÷‚?‹Æ;÷?úT¼Ûì?–¶šë^ô?$)ST?Æ+ ¹ê?y58cCâ?@{©ˆÔ?.£Ý{?W¾ ÓwO?È!º?wœ #?MÍo '? çDágV? yý=Ü #? »³ÎüX? Æoså…m? Š_úG½? Ûz¼’ ?›Ð|=9®?ÿuÖGB?|lj•À?EÆ>Œµæ?u¶*ù^{?“sCA? ìö…Ö?ÜØWz?(„ëtõ?âæÎL©?}A)ôÒS?ÒÆ?P?Ú”dNÃú?­U¹ˆ°?n $§?;Ò¥ÛÒ? _x,ù?_†ÅW?&:Z“?ÿÝ.ÕÖ?Ùñó(iC?œEPÝ—û?NÂx Ëô?Y1x?¿²®0?•M)Ñná?†Uå°ÍÅ?“]Úé?¸{ 4%?ì4–êò?±8¸Eé?,è—葨?0~‰?Ö%x÷S?~&Çl?æ?ÂÅíœÎ?Ÿ…îŒ?ܳeZÔ?I£XÇŸ?sÙ²DŒ?®£ƒÀ•4?.!¦¿Œ?8mð?„™Œ44?Go¶Òp?$%Ê›Æ?É‹5 ¤b?÷çºì –?œ‰#Wàû?ܱ}ÅTX?.!Pc?vÉò~?`=×ÌM?ÂîŸ÷“Ì?c¾šr[Ó?è’I&þx?WÓÀW?¡*•A\?ßö‹jc? ŸÂ6˜?gÎ?‚xaŸ8?ÇW¬?Mv>ŒÊË?­òB2#“?4Æ¢z¿;?Û¿Ï¡õ?ˆ=“Ðù? ~Ðxº,?5'ðø+é?ú¸2\¤3?| ÙDª?ù1¬?°7zš?ÁŽrÜ@a? ?Ϫu”? ãéPÁ¾? ÄSþ¨d?:¡c»X[?ͦÔ6#?™žÞüîq?ô¸ªT?Vv'ë”?øRš¯ ?ûÔŒ¡zƒ?_n±[õ?ù²ºèœ§?ˆÊ)dÐ?ÊСÐ?•1xXf?æèì*ý4?á»é»Ç?»êÞ®"?¦·[Š R?¹ç{¿Fç?ð!!??6]ÛÁ?~òhO? Ð䙜FÅ? Q¾Ú•Ø? Ü躮bo? SÐzAz|?*=0bø?ú¶uƒa?hI|GH?P¬þ‚iê?Õ ²4¨Ô?D§øö\D? à†"bÿF? °­…Çcí? wNÏq’f? Öh ì? ŠF¦(? YÀ_˜ì? ;Ë6?SW¿ïò¥?‰Ä~{I¬>ýªöq±´F>ø¶Ì´Aô>ô¢@øG…>ñîûZa×~>ñ:¡LÇ•>ò q¡Œòö>ôÛ›rωâ>ù ¨+AGu>þ(¡cüï?Öƒó3X¢?”sá5ÜL?*);0? ˜µÞ“Ü? ûÎFv%?¤10£‚þ?¹ZŠV?Á¼½Ò? ÏDÌä?Yc÷¥’?Á/ul‚è?AÞðÃxª?âsÁu:?Ñøq?x†a$ë>ý~¡= 6À>öƒî?"lÎ>òÓIi1¦>ò¨9Êf>õ‚£"½>ú%ýyLZÅ>þÓŸ™W*9?ëºÃ7®î?êLJ\>ÿize ýÜ>û[7C‰ó>ø]ßz|ÊH>ù¶È8Õ&?l>¹? AÕ›&?Næ¢ñáø?O÷¾Ø=?$ƒù³gÆÙ?(•Ýâë,?*ß!f¾{ß?+BX›°G@?*xvýt ¥?)¦ÿk6Y\?$mñÙ?$s?'ó?#jé>Q?"Ь~ê?!¥ð¶#j? Ì÷4`? #ìIÂì?u«¿êc?ß÷H?÷:+Õ¬ ?ß«Mÿ?«;bK¬?XÄÁöþ?òªê¨?{þŒÑ²D?í²ã'¤?Gßw^X?¥HÛ6»f?;Ñ ÷?FwOÄ?ãÊ8j_è?û÷Ô¾?8u›m;?#Õ(Zö+?LbµJ‡g?wùƒ„ý?¾s(ªBš?‚ƒÄceš?F°Êg›?t¢s.4?2ø.ÇÊ?\¡ ?šc/=?›ù¶£Š?A[ïTÏV?gß¡ÐÀE? «¬Ví? (lš#T? r g¡}²? ’ÄÚÞs?†ã«Þ>Ò?‹û1‚Ž?pé FI6?ìTòûÅB?ãâSµmW?kTHuzÂ?´»‚!ÏÃ?ù@G:°?c›®1Î?{”i5D?áKQš?ÞŒ&J—?áòqí?ÄQI{ E?Wºùøž?vëD“¾?@®cë´?z»íež?Û[iåGL?†ñ³Ðbã?‘î>Cˆá?Õ WÕí9? Ñ­pÊn?g\ä>ô?·#%×}z?Iƒí)ß?ácIqÄì?”FŽ|IH?]𔧺j?3.wq‰³?A!ž®?µ˜ÇQ[?7Çѳ' ?ÄÐÚÏÆ?öÿïe‰3?A Zv[”?7N/õnÒ?¾&ëO‚5?ã{`cø?Ûz)Õ™£?ë/tdz?Mbëýê? ÍèIi]?f˜iZÔ? ?ÔÎêƒ?ç&ÇŠÒ?Ú zxn?Àï—eÚ’?†°’1v”?%Š:£Ö?Ÿb ¸.?ñömKsè? ²Ò%?Û™#¾Çò?O‰†b{ø?y‰mFͨ?†D wá‚?ª!ÎùÚ(?… é?…–¤•Ãd?¹®e.q?~£žbr?Ö:™†€?5€„8 ?À“€ß6?‚|VôË¿?h€ÞUQ*?Wáí…ÒŠ?Kúå?dº¸&23?ØL3Á÷ñ?Ó²ÉœË ?Z˜LÆ?<‰^snò?#ž7êe?¶‹Ü6ú?º›|º›”?(Vx3¾“?%‡ð<Âô?ì ¥§ÔT?© Zè1?k?S«í>?%ì9ÀÍz?ƦZ…?NÌ;‡ú?Ûæ†Br×?š—c݆?®)Øyá?|ê°©?×;WBƒ?²zÚèŸ ?ƒ¹IlX‰? ÿØ›÷Î? ,kB`ÞF? ˜pÅ?]Qývš??ñ‘xjj?ñQãþ?¥¿T¡»?„ë|ér&?¬%_îÔ?*úåSZ2? jÐJ Ø?BíÊàˆÓ?¾ºœ¦l?N¹ bYþ?»¨à#¯6?ÜØlîá?¬qöÃæ?HÁ:oÏf?ä>¥+/Å?ªðaúÚr?¯;Å̰?æ:i±?0v²ÊmÌ?j‡@½ßÿ?|‚]ñ;²?cm«VîÌ?/ÉV£H†?úuëj‘°?ÖóèK¡?ËØéén¬?Õ‡Þ›^ß?ïKÚ7j?J¶éª?FPþ¼:“?tr­Ád?€Qrèu?ŽÜÄmCb?oœíàJI?:àå+?ôz)¡0?‘G½p?tq©ª?:)öº]?R‘Æj?{¨ µ¥Ð?ôÚ8?ê\+º>?dñ<3@?7/½7ÓD?†Ž­?eD z?Ã`VÈw?Ø¢í^‰?ÔÂZž^?Ö:=í"?>ÀVKY@?F~ å…£?â4xÍ´v?ÇÁÎä?‹ySºt†?ØÙÁŸa?“ =eë?à¢ddÃ?æ#ŒL ?h†¿G? Úàúr?ý'E?‚Ì?%¸<å1?o±g@¦? Œ·¿¦?Ç6UO¦Ê?ˆ•²&!? ìÝX?bçpà? k9^é?¹ð廟?¿³•T÷®? au¤?Ôžþî?vf…At?´¸æ ´C?]äßXÑ`?Ùï„§ò~?ônçr?Ý^8ë2¨?ƒ ra¤|?*ÿÃN°? ÕSÊê?;ÒŒƒ?¶Jc®E?HÍG×?°«q.h?±*G`è?+}èÈCC?)” M*6?Ùâjï(?|8'á?FÖbŽc`?Q†IŒ@Ú?’p¦†iB?Þð!9úx?³kp±…? º¥ÍÆ? 7U)3? dÈÙx?C SëÞ?‡xX J?XѱÐ5·?¤–4Âmx?‰ÖüÔ!ä?%g˜Œ?ãk?¡? šÅ#Iæ? zôÚøú”? lŸ|Ýîˆ? 19îv?–N&ƒ]g?’ónx"?EûÛp6ê?ÙˆŽ‚<>þØH® Œ>ú'13¯\e>õßͶ0a#>òk6‘Jv;>ðIÁWEYä>ï¾gò€¾ƒ>ñFjTÜrŒ>ôJ”Ú‚õ6>øÚI'Qä>ýh 5?ò?C@×å?µåßိ?æÌ™AV?ÑÖôø”? ˜©¤ìø!? nœš×ÚŽ? l(¯ÆL?hª¦Š\ö?{ 7Žê’?ÃØDÔÇ?UÝJæþ ?;–Ôòð? jz'n,?¹éÕù†x­>ò•iµçç{>îe4Ú9G>îX”h>ñ§ÉWÍ>õòügæ‰I>úb ÃhÉ>ýiÀ5Ë(y>ýíCÏ}PÔ>ûÜ ÃX?Ð>øW£Ý:Ÿq>õŽyF…æ>ö`‘Õ››¨>ýÑ"YGXˆ? q&Jí?¹4†?;À_ƒbÕ?!Zr»•D—?$Ì Þã?&»jÖnXé?'ƒ•·„f?&dÍßòç?%³¡Ä@l\?#[#Aø>3?#ü-Wó?"‡ >ÿ ?!Ͼ߃¤f?!60ñß? BûãEÝ?U@ìý¶?û¦»¬Æ?^€€ÔJ?mn›©s?•Yó-‹?¬” T‚„?£abvS?up¨€®©?Wwv×?‘ºãº×÷?ßÜïÃa„?1kt£®?̧æ¥Az?÷¾dÞf6?Ò‚îÝoî?8oË{Ô?¾+L Î? g›°t?S? rㆨvt?ÄÉïœ?•­ÑZŸn?ܰ^Ÿþ?<ù¦È°°?3¥,Ý»)?æê Jn? 8xfÉ?t)¿ì²-?€IÞæ”?!4JÀG? MKdžÛ? 1dè¶Z? —†aç&«? ÉýJý? ×ÒÅ®?þŸL:Ÿ|›²?´Hd¼³?JÒá#a?Íxb©!ž?ž?,?(:ß°?ÌF [4?ü¨Ñö+?únýÑÎ ?(TQ„r?;uâIg?nY_Á]î?§ÔC/|?ç/lSAÄ?%ã<¦ ?VmÝÝ?m7˜ ¶?g¿¬ãJ’?KqÔ×Â?föîÊ?Âbý›Ç?6 çsš?l†"k¼?zÏlÓä?˜kPy%? pH‰`¿?þgùNG?vá0©(9?;¶¹¨hò?î®~ Å€?VÅtÉÖ?~>µv³?3èAÎ?`àççXÁ?4S_Î-?žyðFI=?(J%Ãå)?ð8LÏ? ˜´>Ú8NZW÷?«Ç« •?—. èˆ?ñeJ¶vb?÷Ÿš…? Ѻð5¡é? ¿<š´ú? Ï—b¬8€?å“ ^ç"?à-$¶¯?·ã]ΦF?}¦ ú¼x>þ•Ò°°©>ú_ÞúYºò>öqÿ¸Û>òÿSt.åò>ðcƒ¿{¼>î1Lma>î>¬x$k>ñ’W¸PØ>ô:mé ƒ>ø72ÒÓ§õ>ü’bh$?m¤S ?X㘲6v?ëMH60ê?!ƒD®iÁ? ¢éÌÈ?(}Ë?8é¡’¬? Š>QW? ÇÿƒnÃ? ZAôŽŽ? ;¢•õ ? ­ì*]ë?Ó+U÷U8?þ†,8L>ýŒû·õ¸¸œÄ­>ïp‰eÒæý>è©¢êÕEª>çŠGïŒr>ëQ6ˆÔ†K>ñ«•[ü˜>ôÇKNÑÓØ>÷l”p3N>>ø!æéÓD>ö‹7Ô>ó»d“ðô>ñWÓ¯Þþt>ñ¤ÊßæÏ†>öþÜc©ã„?ž·@§z2? \B÷0â?ß¶J3@??Hϧ¸;“?™Ä#?!6é èë?!v™ì[Â? õYªGK? o27®B’?!ÍXÙCÒÀ?!©&Sl”?!`œ%Wp? õ•Å–=? oø”ý?ÄDÞÐ?ÎöZ½?/œ:yp?ýé¦rØ?&Y%e؃?‚uùð?ãD(!Ç•?& `Œ?.GñæÓ®?åÞ¥ô*p?F”Õ¼iÃ?hñ«Iv?Œ¸;Æ{’? Ôó~4Z?8v?ùŒ?3å”b˜?Ï¥˜I À? FbéCó? ßá1áù? è—ꯄ? ?ë¨â&4?e;•žŒ?ôšwQ?¿Y7W?éÚm´h?¡î¥ÿ½h?ùµ´Á'?u†XC*€?¤FµCÕ ?Z•ã̯?އÉç¾? ­úgOæ? ù’—¼›? ù©ºnÇÔ? ¥}ÍZ^n?w~ñ­¿?Xuó¡“?ÏÝ6Ͳá?ëèú?¢¼urÓ?{а?˜¦–?UKMk>!?rî¡ÂðG?èãÙŸŸ?Ž&ë{¯ë?,ðU È?‘ÔÁÒxö?‘FÅië0?…Ù•9¥?Õ6ãÔ| ?*whþ?Ç^Y/?tƒ§WÑü?iMðdÑÞ?Ü: su?ÉQ¬° 3?ÿ”ϱ]?BéþÑeÖ?j²1Ä|S?i]À”5F?AxZìxÙ?ùªœ}C?›¤š–ˆ&?;T†f1ä?ú²Á¤ ,?ÿ]'È·?\ƒ÷U„l?ßN±UÐ?Æ([ú?\i6Ìþ?ÇF]•?O•L E?¹âÔÈþj? ¾ô¯~0?+B+§{?_´dukG?…ŸÖ—ú^?àÙAÇ·?Hš¶m)?˜Îº9Ni?À ?»P·Å’?–Òèõ|?gC•eM÷??)¯âw‰?"Ô¡^k?}‚J?ÃY˜“?R¡´‘– ?º.±+§b?Ù,ˆ¦?§r“ÐM‚?h¾ÝTk?MÊ‘NŠÎ?-q¢j?é"U)Á?‹i ¢7n??­¦‰)K?3­òÇŸ>?t\ì^ê\?ä£Çâ?SÈ €&? «–d ?ЂœH}?sȱãšÈ?ˆˆÝ,?Ó7fƒPI?l–>nf?[ëç#¹?‰ßNCh?ÊæÎÙ?ä‚È)‰.?°rÜ&?*bÄð¼Ý?|)ìfÑ4?é}ü··$?±û •G?ò_ü ˆƒ?˜ -ͼ?j¬½î~>?(×äç ?¦Ã—M»?ßxžnÇ?ífí¼ñ¢?ø"ì–;2?k±)Â?V—Éüi¦?¥Åj¶³ ?þ9¢P$¬?]Ú×À‹ž?Ä#¥°8?)iuj ?}8‹Ô?¯é;pUÆ?¼¢¤T­®?¨Áи`?x ó"F?"Éâ{ü?—· P?Ïs‰³jŒ?ßFýðí?ýÏ1š?kÏ’P?£Ç×rgJ?Ÿ+þö?óf<¤??Ëa‹ÔÝB?ÌHNêCæ? î²Á\._? -äû¾PŒ?ŠÒš=r?ú/áÈp?{Úøê¨ƒ>þ@]PNR)>ùóÝJZ‘q>ö&:sG±>òä9¿;|8>ðQkÓ‡•k>í_px²±>ì”%ÕX>îŠo{1*í>ñ~µº†è>ô“óU+9µ>ø¾7TbY>ûfÀIT6>þ_q‰¼ØÂ?\Büšó9?)—3¬æ?œÿЦæ?Øhßµ^›?»R:œÊ?“Žé4Ð?j~´j?~6sñ¶?w áô:d?ÛÓÞÞ?>È2å®?kÜ(:±?…·­S?>ú –ÜF 4>ó'C[¸·'>ëWÅ{>ä(Ú"¢…ò>áðF\ ,&>ãâ÷Çý\>èŽÒB99>íðб›>ðüÚ>ñr• nd>ðˆ×‡‚ü>ìõÓ˜ê»>é;ÊŠ:û+>é¨ô‡ï‡>ïäªÛ«Â€>øÖÞ¿›Ú?–¤v`§ò? õ–7ym?Ñ8Û}0]?YFìB‹?Uë~N?«Ýk—¤?ü¡üß%?FÌ3Ó?¹]î£ Ã?ÚÒ|Åý? è‰k×?  sÊÞÛ?Àãƒõ ?8?µ SN?‘ÌYw~÷? ûÂ?ÒÙMÈ'®?ýì„ø™?vó•ß>?}¦J{?” èŽ?Åk‹ÔdD?{+SuN?­3Ëß?ƒwN™­è?UyÓüÈ?“ˆ‰º*¶?žQZqä?›Ê–Ž›?XÐw? $Q¥O[Ä? רŠèý0? ò³QI†—? P—l }?$£èÂ?ù‚_ÈÃ?)‰?m„?Ù³_Ö‡?¡—†?ŸÈ<—?Á½L{kŽ?opwY?øŸ˜`?{ß®X?#7×÷úÐ? Xðùª{? R¼ Œ? l4ÖÂh?džO™R?@ЊKù?6iNÄÇ?z:€réO?,é!°?Á³Iä š?u¿Ó3 ä?S—Ì&?ó+ÖS?¹ìi· ?š7ÕÒæ.?OOHoüZ?œ`v>¥~?VvîA†õ?cNÃ}·?¼žÆÐE?z˜Ã´ŸŸ?ÜêN.¢?BUŠœp? ÿªÖ´?lÎDÅ?i¹`Ê?Ï7¯ãNy?XŸ½u7X?ÌÚ¯Fr? ú¦¼|ô?¬Ô—²?ÆŒ^Îú?Y¥?Þyû?äM€ny×?˜3Ȫ_H?¤’ >?ÅJSœÜ?è*_jÎÞ?Ëì%æ¸?|^!i?Ãf·fl?˜¿qôJx?#Àp ?¤¬!‡P?WßU.ò‡?Y|ø?™KL7­‚?ïy:]̯?/] ŠÁó?<œö#(?åÒ4?·”𼇶?Göºs88?Ü^ª+.?ˆÂ˜9?Mb*¸CJ?Iéç¸ ?Òx¹"‡?c]‡eô?Ô’Ï\7 ?Ga3ˆ(ä?âPNXò?µÇgÚÁÏ?¯òä—Ð?«Ï_Ö?UGµ3+?b‚kö¦?KjëLÆú?qüÑó?Üyž®ž?qYÿ4Z?ÿ.'ä/†?dmø[óH?ŸS õ|?Ë,½âk? ÝZ@?s/æ?ÿ!ÖkÔc?—i³ka?Ì^FX?v3l‘s?œh<´í4?MaG¢†?”óHèï.?šâ9ÿ÷?±nÔ?À5dž?§¤A d8?Zš¹D$œ?ï´î„Æ‘?™ôWxTp?Œ¯át«?Û­ñ¿…F?wM5Æ{?2dÒ¶=×?Ýóñ@?WB ‹j?ßÿož?}¢\~lÅ?)È:ój?•qWë?ÌT€€uå?ÝŽx”ý?ásϘ^Á?÷¼v×òº?A×?7ÈáÖ’’?äÝô÷º??Ž––º^?ÒXrŽ„?ƒ·xÒ„?´ÅXÝò?žÐF£QÁ?{a¦7"ú?d†¶*¬P?L÷«Üü_?ÞÓ(Ãù?ƒŽÇ=¨ ?—ŽWK;?SÕüœï‡?ݬÝÌ?j ¼–«?2R5~·?Xß½µ3?ÙÐÏÏ?ƒ°ÏtÕ?ME=Êì?æ@_Íá¡?!y¦E2?·€V‘T?"‚'iD?L¼ÒS?l¾ ÷•?šÈûàv?m‚4D½æ?˜Kj^˜?€ÿå;?×uì¶ò·?J“À'‹§? .€«sA? ÀŒñ5|?f…꥾Ê?0ôc<Œ¤?2Zq°ê>û VíÁÙÂ>öƒIÏTª>òÜ«ž²WL>ðк¤>ì¬M&% Ÿ>ëS —v °>ìfõ ¦Ã°>ïÄ\k°Ð>òaH÷á2M>õ-Éå|°µ>÷ÄØÎ¼Te>ùÎ8è*D>>û'}ŒnÑÎ>ûÏcý hî>ûØ0Šñ>ûf[¨0´>ú½ã¬¾Ë>úI‚øÑh>ú}[Ù°y‚>û¥ƒ[Üž>ý°5ˆïè? /´;NÍ?ô´UK?¡Ó“ ?%†ˆÆä>ü1ßcY>öžvÍôÈ>ð¸[KM¬>çMbXa¦©>ài” ©ÿ>Ú¦ü«K>ÛGŸ2 î_>à?ðÊUá>ã¦^â|YÛ>æW»…è>ç/vfåêA>åå²¼Ìt¯>ã)ý|TŸ·>àŠ¯z­Mð>à‘’l&Þ>ãÜíám0š>í|å¢xó>ö‰/œ”©?] C“ ?ž ô[7ø? å·AûZ? MìT¨ ? ¶„9óÔS? áí÷c? _ öUÎ?UÑHP&V?êÆÂ²°|?Ü2°ÔÕ ?ÐER{ãå?r>ÝGµT?˜ºCûÐo?W•Òn?ñ` H ?³ Ttú?Ñ#_…«?QÐ ? !æC‘?µ°E»,?ú›÷xå?œF2‚Ãô?ŽþĤ•µ?YÏz¥­?qÐÿïðÏ?S„éïŒÆ?¸ÎÔu?ü˜ùSZG?ÂÜ#È8Y?à2¸_Üå? GjÞ9—? XTCÆ? EÒX’?í='0âµ?ñ Á©5?5üs¬—Ä?$˜7¦?µ:A+D?›g{2^?iÌ,¤x…?òG56u?øœÜ0ín?œ6Ù^ÂÀ?AsõÅŸ¨?¯~àSÂ;?G(¤Ûl?HX–úï¯? &Ê¡?ÈÛªÑ?Üá‘êÌ?½/VÐ%?s*^ž)¤?)%.ü¯{?ap´ÛB?dæö>±@?E0ß^? DÈ¿öð?òzŒª?ÂkŒr?sp M{?ª:nw°à?:vw¯B?ÜO×üœ¬?燕E?%$úÒ ô?]Ûµ¥ù?¾PZ?š |…k?Ê]§S |?zlÚâùT?^1Ö0þ?/¥’|Cu?½†?|âa?ïŸkÝ0è?Å‚r0¹†?Wµ€Ï¢?×ÉU\¾?ƒZÖsœX?“|¥5?•oìN?ô}ÏŒ"&?à•¸"‰u?¡É(öÔ?ÑvM”`†?¨‹Ž4k?C´­•Ä ?å!ßÕb?¿ÐsmÛ°?àës^ë”?-[I ¿?uù3í,ò?¯ÎÄÂ?j£Žû? MŸà?ƒ w E§?ô•¬ªâ?wNkP­†?à‡ª±?Øâ¤%¬Ð?ŸGLñ?P %’÷Ú?ÚºwNo$?G¯9æÕé?·?f9b?Nªa¥r?ÿ ‰Qž?§^Ö[?0Ð'Ssœ?=b­6ë'?H‡ÙGÁ?k¸¶žÐ~?Àb!î"?Iê¶ü#?ëa[u•?€[: ˜?ê“B>T)?'–âÉÓ°?Hñ°L¹n?fÁ´²¨?{šÃ ]?À—£»(º?÷H:Ðò?$å¶É¾w?<âë$jþ?9ç©dÖ?#o’ž—? ùÿ²g?=”@v?-ƒ¸Ëob?Xuƒ…Èè?r¢2õ`F?iÈze9²?H‘›áÿ?4YÂuv?V¢ ?¿v¼55?`„FþѸ?åútó÷?¥ wâ#?+ù=B,?_¼?ë~¾¤ÆB?-5±r?ÚÅ+‚øÇ?"ûÙÔš?“»‡u:?U\gÁ?C8î•zŽ?žÝFå­ž?DîËZu?4âVÁ ê?VµT]M¨?"?rúþ?} G†žñ?-\2›À ?ÌËšA„?ÌG2Öh?( ¡l¨:?çëmyãZ?/£09 ?𗜎|?ðõ÷9èŒ?éÍf5ƒ¢?©¢‡>¢?'Õ©Oœ?zÈrtŒP?Ȱåñ{?*Me‚(ý?§Öûš"??tüvïÆ?ð•²,X¾?¼ßÕ÷òˆ?Ú¯™‰?|!)|î?2\/ýß4?žî6 §?¶aFF\Œ?†Ê-…E¬?)gõœ?¯Û¹ÐÀ|?P4E?mÍJ‡?®|ß@3? ?–é"é ?ƒ’è®&Ô?·ôàç?ó†½cŸM?Þ¤øÜø?1¡Í ðz?Ø4£Íð?ý–ÚEDh?2x _Ë?Q-Å‘Q ?R7J\Á?6dô_f?òMb«i??3F¶?ïùñ×Èì?¬wásª¼?FŸ°LN?ÅñXö?:$—»$?Æøm¸d?˜byD?ÂJ„Kåæ?&ü[M¨²?xtÐá>ê?]ǃŠ?£¬§"zÅ?_𯲤ü?írŒl?̤Ýò\?n5Z¤Év? œêˆß?‚—ÊÁú6?xÿóG?g,|<`?Ú%§wuï?šô†H•?ºkKçÒ?vŸôüá?©®ƒT®? Ì«€È?%0(ö¦?€!ˆL/±?š~úÈm?qœBÓVÊ?€\¤!?¼»Rº®…?‡ûÕ#§á?¥tKø?&tè™D ?ùrdÕF˜?î§§JòE?ÏH7w´³?}Øœ+Yj? ºƒxY?taµ|)? «_Ìôt?xí¤¨0†?žÑ´2 ?ìKˆ‡Õá?õ³¢|ë?^ÒhSè?Ç `|„?ùGÀû ‰?nY¯ÏJó?2–÷©SÊ? D‡u7Kñ?HÅ.É^Â?mîÙY’ó>ÿÆ‘ÛK—t>ùªþìÚ¸>ôÁ¥ië¤ >ñ4s^p~>íoÛã£ô>ëâ÷ºŒ>ëNè ú>íÖò'u„>ñŸ´Ç >ó•¨Û éÜ>õÕ%*žµX>÷SBøWq?>÷Ý0šß(:>÷‹Di6@ù>ö›øÙŠ>õO†ãõ{œ>óâ¨ns!>ò’’uO[>ñ­u¢•Î.>ñu¤ Ö>ò{û€A8>ôpf'€ÈÀ>÷ Ü°ñ>ù]l|¶(h>úê¶Ó@e>ù݉µkwM>÷çf(ž>òÙ’}t³ >ìLw¸¼>ãYžtH‰>Ú Ã±Í×>Ó8Ætú/ƒ>Ñ®ÚGz>ÓÌíÐ}Q>×rëæžÂ>Ú¨“À%>ÛšAµ°>ÚÀÀ£Ì>ÖÐ)§Uû\>Ó€Xim"}>Ò‚3r L>Ö4·²ÉX>à-ë׺»>è¢]OB>ñÇä­Ùs\>÷xíDmÀz>ü?ÈSB>þ¹”2|6ð>ÿ*üæ«§>þD-Á‚­Â>ýTħ¥¦9?ÊurkJ?ÅSžD>¿?mKî} Ä?BbÖ4¥²?Ĉ¢Ç@@?¤j Oøø?ÞÉËAr°?³vÃÒé?ÿ $w9?“ÒêÉ? Ï–&<¶?ËõQ¶?|†+m'D?½V­??ø^vk˜?õ%é‰4?ÚÜ#þ?ÚHhº?™+9v^? 'f›Ëä?©]xVÂ?VŸ5ãžø?‹&eOß?ƒS¤ø?‚]¹QÇ?Ù'Ç€?oÐ?ß?sjÌŒ?V>­kV?º—N»/¸?¿?á¿í?rS´ÒÆ÷?aæ5ÕZß?,íÔ_ˆ?Kalû?yGb½?Ýn÷^Ö?ÿ‘Ü\[—?Æa@†6?3*ì¢ë’?= ]Š6?ôê’þ™? MëPê?×{à/&?ŽìT‚¡½?_kf]W?yåCíy?öO01Z?ÇVù¹'ç?±Wê?`†B‘;?‚9.Ë?àç¬)?g"b"æ„?&ÁøÒ ?J½Þ¨Õ„?ýx3>?âÄÀµ? 2äjj2?ßÒøñ¾7?‡gßÏØx?ö»Z xK?÷oKõb?:F¸ã”I?règç¾1?b”tmò?ãØ±ç¶ ?ï Aˆ'?ž©á¡Ô?,L¹Hy_?àìj[+Š?ö¹úÊ?|PN4n?J»x×?‚,ó¬|?™ƒÒÅ`û?¬¡iÌ5:?aVºf¯«?îÆÜñÄ"?•’<,s?~å ™?«ÞÃi?öE(Uˆ?/P”ºŒr?2zé£X3?öKŠœ8ò?‰3Ïú?¥ Äž8?Šj¸vD?'À×èê?û/è\׆?_byÒ²?—ë°“˜?ÒãÙsƒ?I6YÖ{?­É ?Aܬ2h?tc»\?a#dÓÊ?ÑÞM8ç¨?ÏÃ@žÕ\?§Ú¥]ÿR?ÎI:à?°+ëÜ|Ò?†/Lárç?7‹i¿é3?^€1 c?ltâä1?ä ^GŸ?‰_üš ?n]¨.òš?ÙYç¶Àm?0rwu?;„Þ¨Ýò?X†MÁ‡ú?WÈ‚uå?-M ¬?å +D™?šÕìÌN ?uS€R?šK¿üÐ?"–ÊaÊ? ‚dä?:!.2" ?n½*5ù?py§®?"Yƒ 8Ý?šðèXœü? Oh{a? ñ‹1?‰ï ÝýÝ?Dê‰.ð?öﺚp?(Û%:j¡?Ñ%4€)~?»¢ä|%N?轨ÐéB?{0F\8 ? Ž£±íŸ? ÎÄ?–žI?='B&jÜ?I+„ü&Ã>ùî'Ò-â#>ôÌœv—>ñ3ÕZ>î†FRp>ìŠW'ÿ+>í—Q™Ð=>ðj[š¥ÿÈ>òªU 5ÚÞ>ôÝMÜóI¶>öRíø™D|>ö¢Õê>õ·LàNÞ>óòµõ¢>ñÁ‚(>ï\\‡\¿>ëñˆO(>çþ¢¤£ï">æ Å”¶Fò>å¯Ûú«Ž">çFCíÇ>êÈr^öç>ï¡8vŒå>ò!ª}ôx>ó ô•‡eh>óš^W{ì.>ñÙžMwàµ>íyBðþ)>愎t>ÞÓªY_߀‘>Ê©i0nÚ—>žaÇ„Pü>ÆKdäÒV{>Éq¤çÅŠœ>Ì…“Fp~¥>͘“­PY >Ëÿ¬dáE>ÈhõDõ,1>ĪÃåq?ò>Ã(fÆ'l>ÆJLU{TÈ>ÏÓ)ÉOþ>Ø÷aóžÌ>áJÏh6Ñë>æÎÒz];¹>ëO•›EM9>íØh™ž8>îFg'•>íf$º>K>ì}—ü†“×?@å]yÆ?ÅÜ4²Êc?õH·V3?{’Ý·®:?½ñ%–î?P‹ë¬]?øQ"8?Gb.XÓã?=oéô †?VÅ &øâ?ÂJK7 &?lÖ–À›–? dp™-N?2R¥¡ª"?—MÍt~?$Å$¦? ÊÔÆE…'?p«â(žÆ?­¤ó}?Äòîj…í?qÊ=©n?¬y`G]? D]<¹?Î4oi?—ÞrRÈ?°¸æ¼ÜÚ?V§Æ×K×?ÖSoâz?„GšØ¬?²¼¿·?¡rß _?lÕp‰ˆ/?Rù ?Be¢jq?Ò­©[wi?l—Á2$-?ÈÇýþÏ/?´åõÊG?q·vw§?3&î?å ëÈi?ÅýR£Œ?ñNO‘7?pP‚Þ©?Áw(g?•û˘Ä?·Op?gàsÿ¢€?Éü vØp?ßùW¦?¢mÿu­e?wðZò{?•p™u?Òî„{†U?R¿A?“¸=¬j?ÙŰ¯wá?œÚ8{?AÑ|Á:?!€Qv?áe¿Ù&×?ÖAWRv?ÐÍ|‰©{?¶3]û:j?m¿r»W¼?îϦ‰?GÎg ƒ‚?™‡°ÅuV?›¦T‚?­õå/«­?T~À~?©‰ÈÜî?ïÿü„®?Yoá Ûd?ã¤ÄëŠ?…°©ˆü?-MN @?ÅçvÕWÖ?9 L;éx?{eH·Ö'?޹ÿíð?y“÷oaÔ?GJ‡Bh?þÞKª(?©§—éIF?SÛ›ž?²ü*Š#?Ì0[ê"?›·ÏnÒö?u™˜i€¾?bC¾ÙŽ?rgwûó?³;º-{à?!ÑÞ!šM?©Æó{±?2† ÉS?¯‘Qw?&ì*zÅ?¨$/:ÇÄ?;ô5¤?׆/F?cáé@\?Ä¿Ž*„?èL—!æ|?È |>?ieÐ|߇?Ò²þF×?,!½á„?6DKßA€?WҢοÂ?Œ“ŠíN8?ç¹p3:‹?u]zXÿŒ?7å:±÷?&Óаè?.##3½?/žC7Íú? ­ÛÞ0Y?§ |¦I?4"Æ?DóÅUâ? SU#‹6?U#ðL?ˆòÜ©?3/pHÝŒ?(0܉¸?(ô…*äZ?ÇÔ²?¯7Àm¾?/«¢z?Ÿè!Pv|?â"n“H?¡]ÙLé­?OÆx}6?.®®¦ßq?D zzn:?‚I:‡Þ?»Ø…fÖ ? Yâ*? š”í#½÷? ˜i`•/ü? `†ûì¸ø? [±(Yã?g³Ûu:?Èæäç?E|&‡Ç?áòôn–~?¨ü}ÒŠ?¡öÆt?Êx¦w?þýo_æ?gÙŸ?–_ó„Á|?‡Ðƒ~;ü?Ö0á-h?°xž@þ?k¡¿Úgˆ?kü9v±? 'üÝ7’?‰!y ‘9?è!¨íWk?ýVöØ?u´P³„‰?öX/ð²ä?:3Q;œ€?’!F ? i3t?¾ è?xu]xj?Ò\°©?ãEÞ‘d?ÞßeN¥4?,çR•R?i!°B?v€é­¼4?‹/˜J-²?ƒH“—¸?&“ã?&?s"M‚kÛ?¥2±—Ôí?!hwoúk?Kq¥š¶ç?X£ãÁTÈ?/K^«24?gY”¨g?m¿\hŽî?ÁDî†ê?%‰˜¼Š?²›Rj?¶Pìíw†?úœ§ñ¼?ERÄÈóC? 5];÷?ÈpÜŸÛ?}Ôa]w¼?9Ne>LW?]¡ó?=P{Q|?ÃïsÉ®m?¶Õ¸ñU?P­Hú ?„ìÃdÃJ?ñE†L.Ø? æªnâ?¾£õ4Ú?~F?sÒ?v(•{Œx?&ö&¿p?s“˜ï¾‚?`ŠfžÂf?­štÿ#ú?ñ@Õ"„?Å:2A,?éýò ?L£ƒqòZ?9’ÜÛÍ?5à œÿÕ?ß3»FW? |ÑG>?õçy‘ Œ?ë2±/o>û=t«òšê>öN‡¦(ŸÑ>òñÒX>ðûd”.Äò>ðQL Lž>ðÜ÷D Œ>ò^ç©pM¬>ôJŽþàõð>õÝž¶9õâ>öeX¶kI§>õ‹ÓÑ >óu¥R_>ð¢@ÇW“¢>ëMõ®×t+>åïFhiòj>á¡7JHý´>ݬ<¦˜¢>Ù åß÷>ÙY­Q—º>۠ҺΠá>à¦0Ï31}>ä…—ð\>èsN-x¬N>ë,ø³ÛQ>ë§›hjãÝ>é„j÷Ñ's>åA(¥Û­>ßóɵ“V+>ÕÏKm…¬>˳T'˜y>Á‹Ñ]™+>¹g\.æE>·Mà$÷ÛX>¹!ù\Oò>»¢¿<1I>¼‰G¸-œ™>ºöi‘ãA>·pjÜ>æ>³© ½ˆè>±Ï<ˆE°a>´²áë”>¼ ñiÍN}>Äù„ ¦/þ>Îü¬­^>ÓÕ±sëú>׽ű ê>Ùñ=4¦>ÚP¯x[*>Ù²qº:ˆ>ØÃÅ+Ž ? ×’ñœwO?Xp/8”‹?Ø 7¦?ÓöüæoŽ?¨Ž»=4?ØÇE4NÐ?2Ú®¬ [?Ô””¥ç?vRÖU¨?A¸£­? H@ ?&Þb_Õ”?™”§tŽ?žÚ¤Íƒz?ï“Ãc¸Ø?t@É?Va7\?ö ^?Ö©]nFx?y(n¶ó¾?80»,?&'?LlìF9?l±›#£?£R\Žç?äâL¨?H®#8ÿ?'8ðÑ??õ]²Q…%?€ ¦’ Ú?Ø4º“E6?@‚„¦~?u¿9,¡Ü?ú5ê[1¢?»WèK?½Ù ›³Š?ªÞÿæ?{«o¯@þ? iŒ ½°?Ùfvû]b?ŒŒ~NðØ?yè =>?~“ű‰?¡%–E®?еúd?EqûLŠ&?Þèõ˜Œ§?cØ1Ü?ã.cs”Œ?mçä ?Ø*!Hø?Ì•£óWH?¢mÖ‰h?‹»c›%Ü?Œû´!Èi?´l³='?*ŸØiÄ?Ÿ“rYè~?UÜé)‘?fá÷ÞÂ?ÕÑ„³>Õ?ƒÆUïå|?%¬‚H(?¾%sA?G¼ÉZ\?´®ºáÂ?öt:O¶?ÿ!·ÐJ?×oðÃ?zÅ8C¸,?ôRpÌ?Pÿ€9>?™fQ¾L?íàÃ)qÆ?O•kh?ÌxÊNî?fyÞ,Q0?æ ¢&¾?è:’3Cè?»œCÃÂ?„Q®Ýº¼?,õFù§?¥ÊSX ?ñÅ¥ÛÊ©?-NôNø?‹Œõ”?C׺Ù?wØ?þƒS?"Œ‡FñÏ?yùîì? 1ôÔ=?båûÄ~?¹Žã8íc?;õÁ]E?¢rƒ¨Õ@?ŠËÁ¹?tùÇÁ5.? Òô:3?ß°Ú€KÚ?öSs•®î?=ç¯Þþ¶?ƒ6² ? @UO›ö¸? ~›e1Ì? t_¨B? 0ìWwkˆ?¢Ú H?à­ó%Mj??Inô?Ë|ePÉ?‰Ðú‘ôw?~WÊÒvé?¨Å¾þ­à?øLÙ&?CË~Œõ?Oä”N ?àHâ-Î?ÏBALìž?õ<ü?û¬iA?²ÕΘyÇ?£÷޽m?'ˆÿ §0?z$é¾PK?«( =WX?—jYýçS?õÁäD¯?r"{B?ȳzSÄ?Òž–ç?°\SR™?ÇñUk?¢Zè›\? …a#Ô?ë¿Eô?ú$PXš?÷Gûoâ¯?H†:?þ§/eÓ?øzÙMåh?øn‰÷á??ȳš£­Ð?^<îLy°?äÀßu'?¯6áøÆ?Ã.ñ¯?FTEÙ-?%ÑH8þ¢?L“ÕñÛ„?(ÐÉ ¢?;ºBÄK¶?Læ²-ò?zE|ìâÏ?3HˆÍ?…­Ü¦t¹?ùQkTõÅ?‡³·ÒJf?.C*2²?ê×åqúî?É9lfEG?áXDCN?NTÇå˜?%“Ôø>‘?iL2G`?¢²Ýg?º<ùÞ[?M5ʾ‘)?{‰½´Î?'S–ærÈ?lp¥ÝB?˜g‰ÚJs?ÕÊCüÉ? †ùêö?ÒWº²%î?û-ÕK€?4>‚UG°?ûj Š?Wxa †å?ÝÈŸçG?±tïL?÷4~¸^6? ½d i¡#? BËÜÑü?÷àabf¬?C4;6þ>ü¹ æ›È>ø‡ú¯™s>õ­]t¦|>óä|Ú%7>ó%иVå>ó?\“žTâ>ô2œE„f>õj€ÔÛŒ>ö'ºN«„Ô>õÂ9ÙÜ>óü¿RÀ>ñ¥—9Ž>ë`,ÙÉ@¢>äÅ&{c˜>Þ{Fý/&>ÖCUìÖ…¡>ÐÛ§@.– >ËÿÖKKù{>ËÁW>Îà ×ïm>ÓÐê2úÌ>Ù~ViÊ>Þ¬¤ÖÏ=">áa!¿að>áë"Á••2>à®Mäë>ÛôD¶ûd>ÕkDð>̱ۻ.O>Áî“^<Ÿá>µ›碵>¬$ ´ÊDÄ>¦ÁâõLµ_>¦­àIœ%>¨-[äV–¦>¨»\Ksø>§LóÒôU>¤/<¥ðÁÀ> ÇÄ]£>»3bb Ö> <;~~>¦&xóЦº>°eIÝŒtK>·rÂ?ƒ>¾Ým&6ý>ÂwÚ“+þ´>Ä-°ŽO޽>ÄwÉvÛÃ>ÃàìÌU>ÃBÛ™Jé(?Úáw5@ä? Ì û{Ì?…i-Á÷?¿iò³>ñ?ôà{¬ÔÁ?¡±Gd`@?qs C?™ÑuÒ?(4qc%£?|"WK?Ά±‘¸ ?(‡¾¶Œe?d NéF´?Aö“ÞYv?ŠáæK?% ;?zš?)=ôXì.?ÙÌ>®G/?œæ³þs˜?èñE¡Ú? 6PMvã?tÆé`²¬?Áö‘žþ^?“¨tÓu?K±c ?_/}8<$?•[“õ«?Êñrð?; ”\^?†‹ä–™¡?>n¢ÁG¢?l©ºÁ‹?à ½Äì?L·}Ÿ?u~R+uR?S^êÞ8,? â:ìÉ?ö <|W?0ùMZ?Â#+ Ë,?|IµÛê?%Sú.ñ? ­+4K#?IÙñ»(?zÌ2ÃÃ?H£\W²¨?}&-ÛýÀ?ò«ÁŸÙ ? (§p—¤? ˜QL¾? Ÿµª7jó? /ö,«’ž?ªE¸¬m€?[;†¼Ë¯?»( :º? …`Û©N?†Ù¨&ë£?X~ɱ¸§?ªÝüŠê?9ö›œÚ?‹†£Ëº?SŒv«YŠ?»ŠÍ”E˜?Y‘0ÿ£?PÅxþÇ|?_{ Á\Ç?F!î‚ ?Ù¡ì‡#q?ãâì3¾?×l÷K]?Ú…ZõäN?™µçéyË?+¦jö?Wâ¼ß%?íJøVû+?Ýç©‚v?LÞ4é<i[L?deÍ b?V(¹×«p?óLÁ_?x³”.?»þ«xÚZ?ëP~˜À?$nS{äD?‡ø.ež?/|Àâݾ?)bÒ])?`l±¹<µ?=Æ2íˆ?–`Ñ"z? {kÆ+s?üÑíµ!?xÍ “Q?½š#Ù¿6?ã>&t¯?c•#+]?ôÛÎx÷È?¼3éÌ>S?¿º)%—?þqíø@?d¬¾7?ǵH³ H?ì®w¦"?˜êlÅ”?©REˆF’?m Öp?a¦¶ßy?ïÅMecŽ?êo¿N=,?e5‚Zc?žÖóåÓ?¨ŸçŒÈ?h[Àsêò?œB.øÁÐ?ø2ËÑt?=ôÐ`’?H¬Æ]¡×?E“Ë*$?o7PëS?r¸P‡…? ˆv‡«Z?=Ð,ÞÊü?7žÁL!?4„Òl$?n¸¿ŽÛ?mD)o?àS—xÇÌ?ÛPW- n?Ä·Ò­b?Œ1ÐAv?NW Ã85?MyrS£¿?Ò쬛ÓL?§aoGó?Ìèf—Ž?¨ü­0?]c²µÔi?&70R?êl~?Ì›”Ü9x?&r¿”S?Ytø~ÈÐ?¨¤&vŽ(?.Kê4Ts?èήfó?Ð/aœ˜h?仲À{?3®Ÿn2ü?¤¬Ï¼Ã?¦ciîq¤?90ð+üô?í‘tó¦D?¼aö¡ÑÉ?^ÝÑÐî?“GÚ:¬1?9`ÛxǺ?gÎn)ô3?jA»ÃOÇ?L@ Í;”?Þ²'±¿R?ÃIäÍ¥î?Ó¹›·ø?êÈš—"?½cÏŽ º?ÿX‰dBà?–y·^€?o‹ÃäÛP?”’ã‡Îz? ©B¹6{?œ~ÆáïÔ?éë“Õõ?ëkuŠ9Ò>ýzVBá‡>ú{¾=ÚëV>ø\Ñ>«e>öÁÎÉËþ>õ ×ĦÑ>õ±Ën/>õ22j…{>õ}Ÿ#,FB>õWéÀ<êÐ>ô- >Ø>ñÑ ÜUÞF>í'V\d >æKkŸ]>ßUy•̬>ÕM¢ÿÞ>ËåIC j>à ò]¬³ >½3å$9S >»—Uêa|•>À-RÀç¿0>ÅLŠ™Ý4>Ì:g¾|Î$>Ñ®†”R@ˆ>ÔOH?à²>ÕÉ}P~·>ÓÇÕÎM>Т⻫¼>É ?Ï*‘Ž>Á]çqgI>µÞq¶uö>¨Û‚aŠ>\]&ß¼>”ß‚%¿‹%>’Ë|ÌÞÔ>“!±R@R>“DøÓaˆ—>’L-!]Ñ>)* Ó>‰°M™¨t>†GµIåÈ>‡.yÆK˜>[vOÄ—c>–ó?¹xÛâ> Yè bÜ>¥~$v|(;>©¶ ô“>¬ëÍJg >¬}ØâmV>«ª”Rj«>ªÏ¼2ï`?˜÷‹/Æ? zgZ§îÆ?2×nçMÒ?EŠŒ+p*?~\?Â:C 9?tNjc?ÐÄ_K£?PzQí,Ã?oѭ̨®?å"æî8?¹*êõpB?7i,],?‡¦ ¥À?¦º]‚?úì;h7?¢:·¥á?bg€™>?¡P4ƒH?i$<û ?­N/úÖÃ?ùógµT?pnÞ¨ÒX? 3S§£Â?£ iÀÿç? béíýð??æG(Æ1?_á ·í?°Ãl“?kâ…o€ž?˜†ö-Fú?ý1Óýy? ˜Gúߘ8? â63;eL? ¸e—R“~? M"+÷\?(ƒ¾º?±Äª1¶?-ÿ'¸?• µÞî0?Jóc ?MbCh?‡?­EK‡ºG?þdœOŸ? ´Šûò=@? ¨H-Å‘3?ñ)‰RXx?ÁôvÆÒ?•Ëã…õµ?Ââd‘jC?ynke?Dû5}B?H˾« Û?‚CÒ?ôÅåB»?×Ë@™ÁÔ? H•—!TO? H ãå#?µhŠåº¶? ¹¸\â?ÑÅž&?iµÊÉl?0OÜ?jÈèæÁ?9K Ï`?›a%ïË?zfjÑi?·M&õ*?3<-ºr÷?ا•w?˜º„Þ¡Ò?lÃñIš„?QI)V??³vÉi?)"5æ¥}?ñ0Mû[”?v">·Ý?žDgºQ?c¼$Žì¢?Ö’µšhƒ?h LtH?>J}D‚Ò?rÝCt1?Íüä8 ?i³{=¼ ?Xÿ›zS°?¡ó 7 ô?8õ ©?üÃ^Ne?ÆBþ¤ß°?h2ÍI!G?¾ îÒå?¶°Þžß ?UÄ%eé?¶œçœ?þ_39¤?Rùßë†û?Í/4ͬ?u•É=Î?Gš˜“Èw?6þP ?8bÉ6l?G­F²Ö£?kÏÊyø?³¨”2ê?.hH±ß—?áÓ´‘6?Å}V…¸—?ÃÕÒÿ?À¢»/¢‡?¡}–#xm?S#Xo?Ì7œY¢«? Îhµ¡Á? ªkŽëò?2yGiB?õÁô”ÛV?×§^wS@?ÂÙ˜Ô›?ºiÊ*Gˆ?» ¤™§?¼À#—n?±NT± Z?;šdw?E º<ÉÞ?ÓµeLqf?:ñYEº?F $Uª?®¡ ªC?É~Š,ÌŠ?Öž…@?ÙuÑ@ü?àùˆí~?…oíM ?uº¹á£I?UvŸS–´?½#‚½+¸? ]ºO?ÍzWyn?³à`£?ÿé.­ü?¦-SéÃ?òO Ábê?öæø??Ô*oÛŸ ?²¶G5?½©\UüÛ?l¹8ì¯?ÙØfÍö¥?èå2?ª¼ê,n?]œ¯G?ŒDgW‰A?–‹á=?;®á<{?¬¹µâNù?`2]^¨?‡b€XΔ?vðF”?È„\¦u^?±‰[¸ý?Ùù—àd^?7!¯´®ì?£ÞÍÃ×?ç ]£ž?Æ&/BÛD?e³©[¸?Ô Á‚_î?Ü;àþÆ?€~F˜?7Ú)OPL?½Ã·^Œ;?ì‚þa(­?Ù÷/ Ì?m€áiµ?l½“GÉþ?“¯‡T¥?¬bÏ—ÿ?™g]Ø"?P/±“†?Ënþö¹?ÿÔ‡rª?ßkÊ?fÓÓó?©¯9Ü?ÒP[µÊ6?3.\?‘㫯?K¶ú ó?+NÁÃÊ? øo›ƒœ?âñ+Ðö?»¾Æä‚8?Ê?!Û$ç?J§÷Ü,?^Ò+GEê?íLz‚ÕÝ?œ2™¼—d?íl"`Ô\?uHp­¿ú?»^6Â?ÇÃÜkq? Ýôµ?ÿzÑâ:ì–>üÕ(×ÏY>û3휪²v>ùãôŒƒ>>øvÍ2–o>öô©0ŽU>õ¬CaôÏ`„Xÿï>ô,tAO >óC#K£Š>ñ˜ •ÿ‚>îï-Ê\>çÃVÁ a8>áG¬:&ÿ>×6ãBŽdø>Í'ˆf½ \>ÁŒ1½b ˜>µn¥˜sC>­Jo$>ª¦Ä³¶Ï>¯¯¿^õ>µ‡a.©4>½9š ÂQ>–}„â~>Å‹½[Ç€>ƉºZÅ>Å.Ñ×­±^>ÁÛ¿½4Û>»W u¸>²U†æˆ>¦‚ Y#0É>™ˆ­\i;>Œ…ªäKsf>ê$Í+Ä>|†ó•LH#>{2:L‰ò>zÆ ¥ò¾l>xð€/cÄ >um¿B€q>q]©·$>mátÖ#¯ú>n§äò_Vœ>sâí63fä>|Âîó=(>„f§4ê—>ŠÉXz'/r> ¦™ƒ>‘~Âî‹;>‘¾¶£x>‘;{º¸F>²ÇLB7O?Ks—ÎÒ:? ¨RÎñà? €÷.3P?ÀX*–¾5?1ifŠ¡e?W›·á?ÕÑ©šÌk?Šùnp0È?‰9šI7=?—²«D?&FäÅz?îeçi’?ÚÚ >h?fú£ÝÌ?­cd½FÚ?›áÀÕµ²?&¨45̨?R·K~‰¸?EZ¾¼?IiÍužX?ªû‡î4?Ý?Ež?/O{a›œ?Þ<„+?5æ ²}¨?*SòÏG?›ò±’û\?§hÙÑ»?0É ?¨Çü†s@?ŽF&¸Ä?éüNly?²~EÕ ?¹r÷ÁP¸?ÆzÈ'À?³°Ô3”?{jš".?.CÝÍ<|?ÚVo<€?t†×`ø?Ýé“F?ý°æ]h?߆؀ 2?»pƒ]ùÜ?ߟÚË7?…•jô½.?¬Bº;A"? 6þ?¢Ñ? )wЉ÷? à,/üÁÝ? ¯™û? 81zö?¡òÏ?ÏA¹)X?wþ¬–¸,?Hd0 Ïm?P !•×?Š"àq–?ñïÃ$¦H?‘Šn@A?Xáª.? àÂ×Ç•¾? ödÌ®}+?wþ\DBù?4õ—‰]?L4'ì•æ?ÒžídÛ©?Ÿ7ÈU÷?NðŒÀ?äî[z›€? eån|U? î÷·gÑ·?!dÔк‘Î?!Y]qð>? ¶ Æ `?hƲ”?¯é‡*Uã?ÅÁnì¡@? \m­‘ë?ÌŒœûúÚ?0aÑk§–?D£“üÃ&?þ6ߎ¹U?@2“1S?㨈)?ÂøøfCt?ÁO^õ¿?Ñù>©C?ð¢¥Ô? Ô5%?Kôræã?^^³æù?+Ú‘}á?’o° ì`?…84k´È?®÷2t”?Mi/@?]ì·QÂ?bÙYQ«?|ÉΚå?Î~{ɯK?vuãÛ£·?†“ï}• ?ú°»ŸŸŒ?¶Usgf†?‰Ô×}e£?=»_?¡¶Ú±?›7-|‚?1*·‚%¸?†¨Ö1Ê?ÐkÅR?<Ç夭|?ä‹ÙyÄ?Å!ÐŽjM?ÉxÛ=?ÙHS4¥Â?æŸ\ûž?ób=˜=u?;³õÌ`?O.†A?ÄR±¨A=?sÍG¸ÞV?TnÛ‰-R?PíTY(?H4ò:?ŒXR?,?·éÿhþ? GëagÖ?Skýîþ?úòD(£?Ç+æ–N?oÜ£èÂ?•£``Þ?¼3@Øð[caÝ?Wr_@ä?îû÷CP?9SVq‡/?ƒáË6Ýæ?"] Ò{&?SÊÖñ¥?,Œ¤1#þ?˜wóÚà?a€Çû>?Kƒ^j?'ùÂÝô³?äõs* ?‚ærÂó*?"Kï«?p´m{°Ý?«æåpG`?¥ÖÓ0–?X ß»ªô?Ò$Ãavp?5$kÀ¬Z?£B¶Ió&?/q‹Å`?×ÞmxL?Z” @?E‚ð6®? ½P©8?ö)ЙÉ?a†ˆ‡ ?>'qé?…\Dï®?èÉR?µ?ù דqB?V›bÔij?ÚN'{Ç ?¤U Ùõ$?ø1”]?`k- ?÷J8’'?èþë(x?+×~îÏ? *S˜?&¦ÿ?cÑ=? T¦P®Ð`? A|ÝÔX?ÞFŠÍ—¼?zé TÈ?q bðü>þ\o ó¤>û±P'~4_>úˆÖ5t†l>úD·6>ùví¢±¶>ø6«‘Î.t>öj%š>ô‚†OÔË>òß´þ°å¤>ñƒFI >ð=Î!>ìÆ¯š&0>ç¶ §d®>â:½âra>Ù´iÝG>КÛNݯ>ÃÇœÞè >¶p¼÷•>¨SG¶9.>´bZÇçG>˜ò˜„UÕ>œÆ sú>£ë—|o>«}LX‹ù°>±­F?Óâæ>´ž†94^Í>µ¦ËPÚ¼>´fLC>±9¨ÈÈ…Ã>ªÌ%Î-Æ>¡°SHø¤¶>• #wþi>ˆ)Xõ=Ë\>yÉcÕ¿“>mIâÒF1>dz®5HæG>aáCÿXw>`ö«W7jœ>_2 \»Ö>Z—ß(X>Uža¢Ú©>R v̦5À>QíÙ“­N‚>VŸÄŸ±ªƒ>`#ïå>2>fÉ«Åi">mà,ºÿo>qÚÙC¼÷>s€d¥B·}>sÇ|Âf0¶>s4°IgV>rœÄ£ªŠ}? ×Á«ÿ^? \3k'pÃ? ~+†?ž¾âͲ?qö”š>?“këYJ?“Žíúˆ?ÓR*.?Å…²,Ò&? ÓfôÔŽ? ²ýû-?¯Oô/ì?3_­Y\?™ fSª?ÜœEîé.?îÒ†T¡¯?º†ïxzH?2ðô?cyGfØ?†ç•½F”?ôƒuÛ?¼?P! ƒÇ/?¯B‘IŠ…?]§ÊÛÈ×?ÔLØþ?N&ÙQb?uœô¶ËF?Î]1m?#o’€‚?WáØ†cD?a”M+T‡?:ÜüÏY?ÒS°u?~Hþij?ë8™œöd?„?œ»˜¸?!Ä&Kç?þIðm?§ÿ—)¨¹?Éè‡J]Z?:Yž¼˜‚? D¬k"jE4?Âm¶ÕÖü?@¿c™¥ ?üéñÿ¢?×€Vn¯? ÙçiYL?~ßÚÉ?T¼Qd”?æüKJ?ù?üy¬?@ã€)J?p²¹®?!sr °4t? I¼ v’?Ÿ)&9’?sô­•2~?pòð1¥§?ày”Ó“Ï?÷ þó´?Ц¢ö?mö ¡ôá?²Åjñ?jïøýfÃ?cM›ß®?tG؇þ?°{©°?¿|‚(Â? ™•Ÿˆ?i²Q»{?¼ÉgÆ/ø?Ñ®,G|-?zÑæë\æ?¡6×ëF?H˜'„?ˆâÁ¼…?q Æjú?TêKµôÇ?)Xž_?*­;,†?qzÏü?Mð¦[W?•Móà‚J?>²$Zo|?c;ˆO ?Ûȇ PÚ?T·ó^¶?a‚ÓôÔX? ›â?xšÚÖ?é’yiî_?ÒžîÙ?}“#E–?¡Ç빓?Ö¿,ßd?ùþeù;ä?þtÙ¯Êc?ð 8µ9œ?í¬ÿå¬?+†šõ™?wkbu?ÄH†zx?ì3I«ú?Ô1xé$Ê?±?mc¾ ?c%{b?Ñaç-´{?ò–R™¬?Ыo¾õŒ?‡P 1 C?<47°?‚c® ¨?0¢B=D:?™˜"­M’?FqccøF?*÷TË&?áéNŽ?tg½P°T?«@Å?vÇŠ•o?ÙÖ¾–LB?æÄ:Ÿâ?µQ”ðÇX?]6æ Jˆ?óøûàž?Œ²]€?:¯÷©f?›ƒC?4]ïºe?ÅÉÓw|?êžxw‹`?°j‹×?þnãû˜š?‘ßEC?V ?-eÁ£”¤?¯÷Gÿ:?‹<è/cê?Ùë3÷÷?Í4Í’Ï?¬6§G?¿Bdn2‰?ICQbèâ?ÉÃpË ?Uœúöd?ózÐÁ-ñ?’^aY^ø?ø©A?F’¶xd?(êŠÜu?¿XÓØTÃ?%2uÄ£?y@¯?ÐRÍÇ@?3pAò.ü?¦bå;?6CÄð‰?Rí'q?+¥ïZ?Í¿ŸÅDŽ?Õ_ÂQ?ý3å7n?⊑Ôú?/àÚ¨ñÃ?Àú©7v¼?±ˆî}Pá?KíÅ|a?èlšˆd?ÉÛžro? ¾,órÊ?¡fÃ.E?\`ö~é?¨XUqp?ž}h Ÿ?~DÃé?–Í;?Rמæ¾?d±ùùˆ¤?¾Íµ×P]?('-ÈW–?P9¿f&?ôzOxƒ?Óf5‰Ê? N¼ 9gN? ŒàÉ)F?”.w}:(?í!h7&-?’ñ³Ëó¤? ô‚+ÿY? 1µú·ø? y¿ô{_P? \P²Ë€n?êêâlá?¤™`ßf?=tŸ’û¼>ü½¡Ç q`>øç¶‡¤áÒ>÷Lå‹>öÕ}ƒž»ø>÷9[üf…>öêì úBÆ>õÖÚ’Ù¦>óòŠ¡<^/>ñ½)<´˜É>ïbcŽþ“ò>ëêuÞžè>è·á@Ð >å>|Žt ø>á@ß5ym`>Ù÷D{k t>Ñæ0·û§>Æ|²Ž>¹ØZ±ö“«>«WºÍ· Ê>›±ñ‹fF >É‹ÙûC>… Ú°¸I>ˆ‹òkôž>­­Œ¥i>—A¨ñžª>ž.D{1.>¡²þ¼Gä>¢¤ª}«?>¡šr˜j¨>Åc/ºü>–‹..†Žž>Ž˜³lL >‚§p €ß>t¢¤]ïÅC>eVóßÀ>VaT¯›;>KŠÙ§-Ä>EŽZ·.`£>C^²Ï£¡ç>A^ÒLë’R><¼NÏj%…>5Ä%ŒJÝá>-µqÛ²…>!åŽS’>mAƒÈàµ>Þ½{C©=ðfÜ®ˆße=Ùƒ¬ßDáF=Á‘4ân=¦™u=ˆ§ªîöL?fÀ¡·?ˆÚôNô?¬¦ß×1?‰‚:Nä¥?µØ¼? ?³{€Ur?¡SU|? Mo5¹åQ? ¡å:9â? œë  â? ^¨^ôz¶?  äÓ¬?FWU{8?„<øf ’?Áϯ|üà?í¡žÄô.?íBÜÓOý?«û ‹Œ?* ÿž* ?”•>èÃÔ?6`»Ên—?_*ZûNÅ?97¿É9?­ ¶¼ÔJ?c˜n„–?íXÝÓ?ôÆs u\?cB¿±íü?eη¾\"?U= Ç?‘Q¤6'ï?`xsz‚?Û-?¤Ÿ©?ê‚W!?W²Ù‹%j?å €¡šØ?a€¶žÃx?­ '`?¯a™åʦ?N²§.h¼?v,Àýs?(¨wàrJ?‘?•¦ž?ÿÙða¶?Ï©º}¶ð?@%ìÑûr?Wœ(=L?Ü’òk¦Â?j~….Ú? Kƒ0|ÑŒ? ‹<öoú#? iv#E,?í/PÞd¹?§"7S?FUaؼ3?ïÿ¸,S¥?¡Oï.M!?8¥ÈZž`?–/€¢¬?·Õë+D%?Â{&RÖ”?øôL=©í?©€>Re~?Oÿ†oD?Œbœ? ¯ÊŽØ?…þú•iC?¸x(åŨ?Bslu›Â?¹sÊZ–? Ûí»°Ë?!ñg¥5Žñ?"z]å?"dš"‹Z?!¶¿ ¹? j7)mì?=õ¾ÁÔh?"0H6ƒ-? Šçéž?}ÿœ™{œ?xÌ‹§É ?:Ñ[Ë%Î?Îäc6ïü?o‹ØH ?Ól¡§ñø?æT¿m?»Ûošè—?¶ÊlÚ6†?ËH ”?Buÿ÷V?…mi ^ª?ޝ–µö?UMÙ¯„š?;†‡Æ¹P?–b¹±tâ?arޏ¶?­£^jÐÈ?–Øõ’ÿ??éÿ>v”?Ó9”K+ú?„¸—7ìŒ?Š\”-–¨?$ôNŠ?"IL•f?¯DŸÖî?€­²2|¤?Pþ6¸Ó?áÉ8Ð=?ª->?ã[ácß]?Џ :A?Bm?ÎhŠ?7·m³°=?sI–å?Õóݰà?,ç'çÞ®?OéhG?6·„1 ð?ûwº¼é’?Ë'¤lúB?Ï×b‚?o!e-?®—Ïðý[?mh0ÙR2?70‚5(?èÄYPÉ?e*Jë²^?š¡äº–?‡Õ‚PÙ?>‘L¬gÝ?àJ¹Ñ#°?–€,y¢?ˆÏk¶?Ócúº*?}¡àÔ ?t§ØÚ$?ŒÞDÔ~?Œ¡\åÁ–? èJ¹w? ;  ¢? 9`(ãÂ?yXn?k3€E N?$UŠO?½Å°Á‡B?L%\¤?á ¬±®Æ?Žf$œŒJ?k L"(?–UDDˆs?8PМäÏ?u•FY…?[C‹j}?Í"_¤úz?ƒK„­µ?5 ÿž??+Ç$?¬ ÒsÉ?R2¬X?H³Ä(¿°?ÈK%tQÆ? å²W?žtëYô?’åÖÎ?&Ë¢•ó?Z¾øk i?ïd¿=\?õ F« @?ñ?xk—?ä$ª¡ ?ÇZìh?³Õ¥è?"9Ý|ˆ?P妞 ?$°³p$?@뱚DH?M_¨Ç?yrl Õ$? öý”K?.;á?ŽÓfI7?G÷b?gÿ´éÁö?9‹s0Ü?wž€D»X?D¦ø:5£?ê-ƒñ¨;?¾¯gbšŠ?W¥ƒ?Ìí¢"²?Aƒ–„%?}¿"{ªü?…EE?vÝÈà¨?Ù°dÅÍ‘?F %…Üà?Þ[;4î×?³Ÿä§ƒ±?µªŒHâ?´’Ð)µÁ?t©Åg?Ç$/MÔ8?›+jP?ÿ c´g?4ÝÃF? Gß-?ý³øìÓ? ë;†ÈÈ?MLœŸqÈ?Þ°sZHí?ß Wí¾?]Õ5 ºc?Eø·bY?SÝöš?+ä´­v?~¶»ÛÍ?)Þx —S?E‚ò©?¥E!,F?𹥉&?+YŸÆ?xócÙw?u»Mìv?hƒôn?;3¸/®r?Éí…j?DúâH?R‹ö-›?¹ùí…¹õ?}3+—ª?Ÿ?M)a„?ìÆ>—éo?È ¥Õë?³Aê$€)?qyñÛä2? ‹„¡¯îø? {˜A"µž?.H¾Ï•?IzA41r?Ý^uø?Z±û•¼ˆ? Êà VZ? :=v¼É? ·Ëj‰?yÇ^†ç:?厡ÃÌ(>þc„–|`>ø@zúYÊ>ôEÉr¯ëà>ò‡ >¡ ]>ò^ž)xç>òÄÔ"Û1º>òÃñÀšº->ñÙñ#”6˜>ðìçxú'>ëè·þÄ9J>çÍü£ >äS-˜8>áUûcÂ\>Üî'Iç‹h>Öú.mªKo>Ðû9Ïó/»>Ç’ìì"&>¼fHúúÂe>¯Õ›9¢> =YŸÑ"> L·cÙ>}ä?ðNXf>rwÅÔÅN>r˜¾CMœ>yXzêó7`>¸ÍÞG¨Ó>‡'1êA4g>‹@z3¨¸5>ŒÆ~’‹z>‹5PüEvì>‡÷BZˆ9>póa¨f>w¤™¦]£y>l®u:ñ»>_!ÉYRÓ\>N=f ÷š5>:HÌDrÚ$>$q™mG7—> u&rfâ=ñ¹=Ÿ.³=ÓÁOê¬çž?2ñ–¥C?4 KËì?"Cå¾+š?ÇRz?¿‹¼ªà€?ˆéç®Ò? ÒçaÚÈ?!d±!@?!uòN“e?!##óoø? —óõ„é?ûgUµ½”?ß$x².?îâUCc¾?"hrAñn?_‡XŨ°?‡‡i˜q¨?„pq9‹ƒ?Xtžca?%ê§¢ÕJ?.•‰ß+¶?¶oÔÅa?ßfŠ<Èé?8™·„Ô?jû,€ç4?ü4çWxn?åE»YŽ?ò˜NìÍ?–ädesÒ?óoê—I?‘+àûIo?Êj+%Ì2?É„*ÑÚ²?„*fD1¬?Èà;ÆÐ?V­ªnæ%?ñF_R6?h´Àe“¤?•9QIJ?Ráø˜ž‚?‰š T¯D?=‘Op´??›¶dôû?óÌÙèƒ?¢œÚíòh?íö¢µ½ë?ëk¸o’é?v¶U¤Ãº?>Ÿ-:Âü?àbî–-E? ƒµ°“4? ÃŽ<`~€? ²¹£Ê? g¤ï£T ?ý^@I¨½?¯Iè?Y·5?µõ­à?ý˜Ö F?ÜZòøw;?}ýìí (?0³±°?Q:ü¦âª?:é´ZË?5˜í±?f®Ø±¾¤?¼ ¸øð?ç —‡‹w?pÅý¢oE?Ù$j±\°? Ø\°x-?!Ñž¢Û ]?">ï¾/^Å?"íj¤Yó?!q¹ÏQK? ftÅï²ô?> yÑ#q?~ Æ€Ú ?ʯ¬ã?^\=a?yÇâ²ÓN?Q‡/i^Ò?÷`ØÑm?I´•i 6?í¥”?Ïè£G?Ž’è`¯ ?Ec{§™Ú?HÔËÆ¼?|bdôY?3+¿ÛÂ?švpd–Î?ˆ>£øQ+?Ëu,ûÅ?}÷ÁuàÁ?ìïŸ fV?¨”µ—‡ ?çG£æÄá?ÁS¾ø0P?'ehÝ:?åÜÀÏ?·pŽ»FÜ?\è²2ˆè?´TŽ0®?Ä=Ж?µ*z¯s?½Q›Îß?·L»ñ8?}áÊy/Å? ú¥×0¶?qwO>¢Ð?…xý­êÕ?F®°ãZ?ÜW#óJ5?\‘’1?g«Š½R”?£ôìÏ`?) :ï°H?Ó½•\?x3mVAT?ôPH_"?1ÆÂt®?+05ùé?ëë+ììò?ŽhvB3F?6•CgÀü? u:?ÙQ?*¥Ê9§ä?«xq•?Š»¼7?®õޱ]?â;‚fã"?虳}$º? DßÞiœS? S£õvëÔ? Þˆ1?rŽŠ?[3Ìø5–?úŽÚÄ?ÎZù›:?}$¥ŽR(?4Ž ¦g?TØørø?ôÿá+?.‘æôD‡?Ù‰eiñ?<Ñ%Ap?Ym! ?sœyöQ¸?'½äßz&?½[ñÓÕß?Õqv~²?-D{ʼ?«­â"Më?d·Ãe×è?‘$)~?ƒ¢»ëÜ?˜‰LýÍV? è iB¸?O0·oæ?+ÒÁcÄ?š"‚yt?l‘Nž1^?{·Ùh×e?±Wy}â“?þï-Gžž?HCk¢ÅL?VìÿÊ A?æìÞùŠ?É×} ?áoé¼?âÿŽ„?Æõ åÏ.?âN‘›8?úvk}Ž?i¸¡¡7?¦ÏÕH?¥ÆDЮ?ºkäB8’?4X¿aâ?,¤æéM˜?îc4+! ?ÔR{Nt?!Â`h “?ì²DëŒÜ?•I¸ª?ƒàU |P?ðçò?JT—Ž&Þ?›…Äê™?'q/ûi?¼Š]Ü?ÎaïoÎþ?.‚„ÏÆ?£&m•ïý?ÞwáÕ¬B?™Ôá¯Q¾?¬['h”?gzÕt?練 î?xÒØ9¥j?íDÀ¦sÎ?…šáÌMÌ?pþéLm?ÐÀåZ™ˆ?Àø¢:g?D=¨04?8×'‡Ñ?VËjp?@a Ätî?§8G¹pE?jŒ< !”?£š…æ1R?—2q;Ä?˜ ·16?æR䆭@?™­³[?š<+šù¦?­^NßF?,+‡õ?Æâdb:?CsP©æ%?G=Á©,?lô+H4T?óÝÏ…?è .Ëw?¡·\fÇ?0IÇ_/Ÿ?ÉRÑTd£?yV[ºtÊ? _)Æê}?  A?h??¦Ð<üï1?ÄÆÓó?‰6ôg?X@HJt? Æk{7T? ÄÓaÍT?  ñcëñ=?·ŠÝ?§?«pŸs0k>üÜ>1`T>õ¹hçÛ>ðìU ;Mô>íuÓÌ>ëÑ€Òaà>ì Ä @:e>ëæá.þ®Q>êb-3Mþ>ç}ŸTCÜ>ãçv,½øÆ>àkbîšåÆ>Úôú®R¼ò>Ö#Ð&Oç>Ñëqý©:Á>ËÖ`äŠy>Ä» **²ß]>°t8¸ß$>¢ #‹dÀ†>’”³=åX>€t¡….N>lø™%9U>^O6`Zí>Z‡ÜÎu–P>ayµ-}ø>hh¾ªæˆ>p èÕõ ö>rïd %»Ã>t¡k({>r<ÌP>ptxÿ›>hFîãǘ)>`tв¶ >Sö!ó7>EªôÄÎ94>5 0ÿ'>"K:þUŒ> u&rfâ=óÎsW3=Ø«Ñõ=»ÂW2;>?OÁ±™[?2øéü=h?òª(Q?eo¯¥Ò›? ¥5‰4Ù?!aô9?"FGÏì1¥?"˜Žèé?"RŒ“|±?!šÂòAÙq? ¬3ÞA(ù?3ž^V+?ò ß˦ª?Å+oÍÁú?äÛ×j…?*h4›¾8?qþ.± ?¨#¿ Wb?Ò/è‰,Þ?Vzjû?œòÞÐ ?­}k_XR?]¸USü?‰e<—(¶?Ï!Oo?©iNÓN>?©Å„ÓD?§gߎäY?Ò±»d?C¤[ñ?ŽÌ·“ Ú?°°Z¡Ì?tð¡–?ª–—¶?¸%‰ˆÃ?êU“Õƒü?x»…-aÉ?Gõï!›ÖJJ?º-n¥g?ûMX¦´?öÎ/dÞ?·)¦¼ˆ?V›#9_?÷’€9??¼y]û?ÁBOyµS?b]Ò.?È Fy˜Î?Åa«Éð?ïè×Ñ?¤Åsö?ö,ñ`¢? 4+Þó6N? +iöð™1?ÍZñ5ª?ít`“?ÞfpÛð–?¿sö;Î?¢RºÓ?Žìv,T?‚œ!²Z?ƒóƒ1d?œºWDv?ëj¨ûm†?—¦VH÷?ǺrU?Œ(C²/?Îvß O?O¨"f‡ä?·LÙ7 W?¬=Ùé>æ?ë:ý¬31?UÒ%Š?÷r ‚?·ï\p"?Ç=Ÿ€"P? ÷¹àé8?â ·þ?À´UÂ?.zµ= ½?„…X'j\? ;_ø?ëé—T\?CHoÀÞ?úV%Òl?б5¶‘é?na®Dè4?~µ¾3)ô?ÆÙÝ“x?2¯‰ô?â×›ï?ó#N±Ó?P®–Ü{D?àî7Ú?2ÒÕWµ?'£’'q¦?uàÐQp?t)E WT?„y{œ2?d ÌP¡ì?dYGEíß?Çì¸~ ‘? µê­T†?¼ŠÁt ?¸jñ4-?3‘Ueˆ?“s†? ¸¿úo]? W£w/H?ü{2p¶1?a ä?5?Œª¶ºµÄ? Çù¡ö¤? à^ž-? £;¬ýk¼? Y ØJš6? ÀQ>Ai?kImÜo>ýdT]ü«>ô±ujÕñ>펥 û×Þ>æå=&èð>>ä"t˜ñ¯¿>ã]UÓÝZ*>âÛþ¤Òô¡>á^seT >Þò½Û&ù>Ù¯Ûr0_—>Ô÷ˆè†³>Ð@H$X¡>ɲPc%]>Ä$η³d¨>¾‘Ã* ì>>µÜ¢ïxÈ0>¬ß¡`2 >g*>’íÀ{lå¬>‚…ò@LÂ>pŽÁ˜½g÷>[¸*V§{Ï>Il °Z†c>BsSFù\T>F>¡±•çß>NY¯ÈF,à>Sú†t>W”ÕÚ¿pF>Xí´ÆÙqM>W”ÕÚ¿pF>Sö!ó4>N=f ÷š5>D2žšë>8Ý+Œm@>*ý\.‚å>7\ÌpÐ>É~ Œ=ñ¹=Ÿ.³=Ø«Ñõ=¾»©1'=¡ hJi\#?7·QcË?Õ⓪Q?š ·¬2? rÀ2â?â?!Ä‚ºu¼/?"õx°fšË?#²'Õ—#?#Âë|¹©t?##8=Ä?"ÃWé Ä? ¦Ö¤¨¥í?»>´»n?¥Þ˜š†E?%N·Z?£µ{ºr?[ÔÄ-Ã?·=uZ~? sÏ5Š?­8I?M ‰ïwâ?_YY>”9?¤3üÍ?J¾ô‰?Ž{8ú?ñm3Ôøª?N‡ù,O?¥uh´ý?º…êî`Ô?¸j_Ñ}]?ã*IP¹?y<¡§ùi?[i/Jt·?F§Èðë?§òR@½²? UiE ?ɦp …?\lï|=?ÝjïU¬?RÁ+—–?‡/-€¥2?NÝ–Ë1?’`òõå¶?c|×ôC$?õ»Ç„a?•݃@Ü??wÃ:’?\‘{T?B òlê¨?ë 6>Î?ÖZ‡F? [A-_(e?!"ån•H?!­ßC–ß?!øêe5õ¶?"  5tY-?!ê}Єû­?!Žz€TßS? ç[å‘„ ?ÕOUçÓ-?C.%§?•?X€Uر?v\ªb‹µ? ¼€{æN?J¬Øº?/^æÏ?:áˆÊPØ?{Ø©›?{’Õè+\?–aC»ä?3ÂØnò¶? yÒú¦? غ1ÓÀˆ? Ãbç©:û? S”-Þd ?V6öàh?Óg¢ y?IAlòà¦?DZ¸Š?Tè${ã(?uºÓ9~? oûÄh?•Þ7µ'?¶‹0$õ×?C‹ÓÅ0ì?ê•â–Ú’?`Üë)Üî?Ž@\Z ä?˜Ã²I(D?ÅïY´Q®?LD6p}æ?45õÁÛN?WÌŽLÆ?}r–?qò6Íc?u<Ô4?QÝñ?‚¸+\Ô?[#îæ×”?h/W{¸?‚ò›5ö®?«Ę\³?+¡¨…?° ÛQß?weº >?…dtRk? µl‚¼?Ê!FŠ*¯?Ž«>Õ?/¡ƒx¸?¥2)7¯R?¿Ì«”ç?lðE^ h?øm˜]P?¢n Ž­0?FÁ E½?²tçë7?Â!S l?{¦‡':? i¿?´D²C˜?§IAì?ïjªš°9?ng¤çÆ?îæÐmŸ?=ŠPĘ??cŒçj?ö«úß;µ?~Ñ¥KÛ?Æ-ÄD²?¥o®|¨?ŠèÈÞbŠ?¿]ƒÂ—?CŠ“+×? áØ'Š? ?íÄn)?<]wï? ³:D?³¤h^µ(?ëñyOá?¬û„Ý£ò? ¬¶°4®?&ïy Ü?,Bë½ "?6÷Pß­?Tã÷¬œ?…µÓTj?Á8)£@Š?R]§ìb?KW3zv?´¾`e{?`q–ñY?pV±IϬ?ô·Ljqd?Þ%u>õ?üÐm®A°? ö ¡>?¿àôQÁ¨?ÞßpÖͬ?F–ÔJÇ.?÷àØ[?9Ø*?éÿ lø?¿°žâ¹è?äà'G¾ ?ŽzÁ@Ç? ù.ä[?Q£©*=?âžXØ?æä¸¡¦"?:Xdâ?ï"Râá?ÒÁó?É’]CÁ?Âò¬‹Ô?$œ¤#QN?­’¼tç?¡»é8>?vVõG†ž?£PÛSÔº?sr’'q?è›`Ãßœ?Á8Q`Ô?ê*»q?ðQÍm¹G?¨¤3¯wÐ?Ëk˜‡!ä?§–? ¯ƒUÙX?ÿ~}ö`.?×b¤PÖH? LÓ4—à?e3ígñD?À&d¯Èì?­Ö¨¥Ô?{-Èl†??'™š"ö®?F+Àá2­?åÿ±ŒŠB?逭ü?ßHh´÷?ê¸B? úЈ? PÅÄÃB!? g€•K?‹ðDº?XTÛ?â¿×#?©*‰ÐA†?rä!ø?fb6ñW?§ÀÒ?±é¾ÿ,ò?7hç¨V?Í  ÏZ°? ພ„?¢ {¿ù?‚ëÿ¢D•?Ó3½öõ ?Þè ùÔ?ö¾‰‚Ñ?R¤|Ÿ8†? ¬G¦z?æV”58?Ë™"kþ?uááoÒ?Àã#â?³> ¯;@?"½ä9­?xFo” g?×üP‘³ß?©þ2ž x?´? ?Ž·*X?Út†ö"à?}‹¼@Ã? m–¢ª9? ÄÃNM˜?Öñª!ƒ?áÏä¶? Ž4]ö•P? &¢XqÝ?]Š>òb?ú[n L? Pë´¡c€? }¹êùLœ?Kï:|è»>ý°x™tIi>ô?\w?>êÀO·¨z>âfÁ|å6e>Ü€Ós—¨>Ù²ë¾þ>×N%PçV>ÕF“’Ól>Òdʹ:‘>Íò‡Øw>ÇNSH й>Áʬ¢÷JD>»;9ë”>´†¤V,ò¿>®aZ]逾>¥]’Š4P>›å¨qîL>§;zàÒ©>‚OòêV>qzÃÓ¼Ð>^ïÄtxŠ>I2Z¶…¤>4üt,ÚÞ^>(ÖœÙ]•À>)þ޾éè>0ëýd‚6A>6D¶¢ùÛZ>:HÌDrÚ#>;É2ïªÂ>:HÌDrÚ#>6?Íñ³£>0Ú_Ž4ø>&Ø¥¤‘úá>¶ÄzÁ[¾>U™Í5Þ=ý8¤Bî=éf%›}Op=ÓÁOê¬çž=»ÂW2;>=¡ hJi\#=ƒö‰k$œ?†~O‰OX? ¤¼Uƒ? Ö=ç—¯‘?!è^’0l?#'?If?$Aúx.d?$ݘBæ?$¹ÏWhˆ?#Ñ‘IJÂ#?"WN¢?§P? Ÿ¡îUË?ûÿí C%?R l”y˜?b?<Î&‰S?,J¹š†?‰¨èŽ!(?«¿rŽ?ÜOB92/?îé¤=p›?tœì+âe?• ¯Xf?fÉ4"¶?ÆváC$?G%¢ÝÛÊ? #Ž¡“oô? ”‚«3…? L«†õ‘?´ÿQ7bq?öî£ñ–?'®?o{•¶(?•ò¤#Øè?—£ƒhIU?gÑAEÚ?ào n<Ò?Ù®¸_V?)QÜØùB?¡s„Oj? ηg´Æ?4A6d¨?îy„/d ?0”ÀKˆ?N3Cï?ÒuKFX??³…Ù6UÛ?òòrš0v?±Í'+Äþ?îÿ?¸cp?ˆÙKÈg`? #þ~ì~P? öÉ™~¾Ù?!£ œ'Ý×?"`P÷$€?"S®Ûæ×Æ?"L^^W?!ù½•Á?!Ld]“5? CK™|;æ?Ûa`@?â"  ƒ?ÃuDÂ?ª€©ZÀ?Gyô¯’ç?)è#«)?jú Þ‚»?Ï"’–ò?ÈI¾l?Ÿ…uz`?¹"|¸WŒ? a×>Qq°? ``pŽŸ?í¼uX³’?¢hêƒ?5鿹UÌ?éCZ¨®ô?Ùu\GºN?ÿÖy¿Bb?IyR'E?µNb??`¯åt§,?pÁÿª`??퇭ÏÛ¦?¨¶ø4Cà?QÖ ‰B?¦n‚)o ?š SZ’T?[¸ú_3å?3% ãE/?TÈn¡b?Å‚bÔO?i :̈H?¿ÙHÞŽ?°™0Šö‚?%ïÞ6Ö?e°N*”r?Uí%E½þ?ØJ$¨Ãî?Ý̹7š{?wïõø?دòÀQ?Lm=²g’?ŬðC?sïN`H‚?cÌ~5?ÑYYÜ ?Šne?U²Ö$­?"cÍ­?Oÿw¥´?õo™a¦?YmdX?Ö®;“„H?uOÊQÒ?ø¦èü?¢Ê ‹C‚?ã7& ž?Ü"[kâ?²í6Oß?œ‚ðP+¡?Åf’ÆÀ?0Ò¨8 Z?¹Ò¹K½‹?&‰Êfå?E¶NY$ ?ØâNC2?nr÷d'J?´Yò¬@G? Cµ•œÖ?¡üœ}bì?’Oì?Þï„~?téà8zø??‘ÑnI?$Oi4 ?,ñI’?¼34éä?)ŒcÃB2?4­_`h¤?ÛPˆ°ƒ€?1hSiZ?Y×€aß?yŠþw¬?¬JG…·?þ¢Ïuè:?mw)ê¢?눧|îË?lƒà’ì?ìdê‰û?yÀ™¼r?*|ïÛ?ªcþc ?Oú(8?Çñ*#à³?cÔý7Å;?÷ðÇ¿Ñ?SXݲÏÙ?HVm!Ø?¶º•­'?”¢öÙ?õßÏR8?P©i"B?qc*|h?7Sp ?Œ%tüuw? œèJÔûB? µS £Ó]? Þ³£Ê¢?#YÔcJ?Bbo…;?íä¨:¦/?ݾíÔ®¿?¸9æœd­?Û?\Äç?³· ã„Ž?`•€B´?½·(L?Ô`4`í•?4·ûú©5?%K Å@?«s0JV½?Š~€˜Í?]2Çb]Ü?¿}¹šS?{È7%¶9?¤òm×\?ˆ"3À¢ì?Œ%z‰á?ö˜¦|`Ÿ?Õ¢¸”°&?ìÏí¦?SÂÆk¦O?ý"4‘ü?é=·]I?\}\Ŭ?-b»H?‚Ê:­_?`[hS´Ð?›Êݪ ?è¿•“?퟈SI? ªPEóZ? ë–’Ð*? ¢ÅHo‹=?¥DêSðG?9´¥·[?ƒp¡“–T?(©¦?Š“üñÒ?.\ïÚê?«ÃϳÇ?l9º^?ôÎ|ôŒ?Àtó,Ø6?¸ aÔ°?»ob[xÖ?ªeuwŸ†?T÷¯Ç?7ù)0w˜?a0ÑÑ?·ÙDö?=]#B®?Ûa?‰ô?gê¶T¡?»ëvIÒ?Å<2( E?• q,=†?`4³ËåB?lÛøÀ?èïc…æ?Ï5qA?Ö$u\ß?:îL?¨C¦šÒt?0ãn°?jVáy@ž? *o3¥Ú? ‚,Ö¢W? êÿ‹K Ž? Ê“×Ð?Â;åŒ?`RAÑ&?n«~sJ½?•ŠÇcôn? ,ä2¥Áì?ƒÆ¬0:Ö>ýpõ…¶f¸>óyêÕ¬Öc>èKF‘whF>ÞVS’uy>Ô.k¶§DQ>Ï(ÜI–,>Ê¢%æè2>ÇWoÙŸ³b>þ0«›Ä>¿„»•q@>·åõ§iº>±©Ný >©ã”6¢Iå>¢ñ뾆+>›H¸å?j¾>’Õ'Ý2³‡>ˆLÕu`ê%>|ÈR@ÜD>nó³Œ-ù>]Ì}ú-¿>JCÉ2è>4…%^›•%>í3BC0>L7®I=¶=äɧééJ=“¢Å2Ü´=uâô“4Nq?! ÕÜÙ?!SâŒÙy±?!ôõçÝt?"ë:àÄ?$åÀ–˜Ø?%aÀ솿?%—Á û?%Yò ¶#Ü?$Nú8•ö{?"¦á¦´“? µ´5j?¢2éÈ?jè—h‚g?õ4êõñà?5ƨþO?ôí2å8?Cg÷ˆ?ÜìosI?ÑÀê'ö=?,¨Od7¼?“³òŽ?}æø;$Y?­÷¶Ûê°?}ßNm.µ?‰¿»^? ” ?!V§ ¦óÂ?!VίÒ? ™1N¢Fl?¬TÌŒ ?¾ûj+›?WÞÖ†¥?Õ}²1Tg?c:GNÆ¢?¨Hõœqú?ØþJ4¢?U‡ÝÄ?÷ê2@’L?F›Õ¶à?ƃÍè:ž?:ðmÙµ¯?fù?zpÆ?"¢ý÷x?j‰«uön?aDðIxÀ??N¹=¥¤??2…‹Ù~?ŒîÜÆì?>ÕYcÔ?R»<ŽW9?¯¿róÄ@? ”+„ñô?!C °Ô:b?!ËN)&6?"l.Ð(ž?"ÿ2û?!ÌBÃu¢?!ÿÛ¨? Ù½ÌØ?}mˆE?¦ç)ùæ?ó¢ó½?ûzà×?øE®áì?=‹ùx°è?ÓòmJ*‚?jÉþö®?`K»Š c?ó%D ? E@f}Ì? tA¯Üµ*? 38$?¼orÖä?T÷»ž?vŽ˜à„?Md¸ê6?Ÿ¹(Ü;\?VÉd^ç(?L0è*T6?j«·Ñ¢ü?¼aŒGÒ‰?Uï)͉(?3² ç­?#bÿž„?ÙS8²&?áuæY?îË.,aÐ?}‡é¸>? ÃÀw?÷?Àm¡ïo6?£±J8ª?Ÿ•’Ïl€?¦ ûVÌÀ?´{àB p?Î1î¦Æú?éÖlJÊ?ç9ß$9p?›=-Û+?æâ¾Klþ?ÌE>o +?qî|Q?­õç?ýf³µ?XÑÎX¹?>4wšÆG?ŸÁÊK ?SÊín?بÙÜ?Ñ[ÉÐS?PÕ ]˜7?£¬\S‘?ëÞ%6JÑ?P·ýÜî?è1“ž?§¨[¡t?fý îæü?ÿHÌÆ%Ü?`Æ’è’I?¡¹‘¶?ëplö?`™—†ƒ?ÿšžw«@?Û£ús?ý¥Ú½˜0?í²éÿ‚?`àÇ?qð„øC+?^¥æþf?jÇlvíŸ?ÌìBÈZ?žîÚŒ 9?Ú±í39?e5iCsê?»8w’?âŠØcÄ?š½åT°Ð?*è¶Ô?wVd´?q£lÅ-­?gM†r²?xïꬭ?´Á’ÃÄ(?íHå¸??¨ëµ”°?¹žÙHq?Xækþ,?œÆMfÀ?Éï7êýË?ʤ›Í†?8«;Æ:?ù•â‚D?Ï cL?½ô(9¸¯?³9Yú?ÓWŠÇM®?ßò¬|Ó¡?ÓÉl]#Z?”é»u1? eÅt' ?4qA_ ?Ö#ã?C8v¦º?¼ÉÉß½?ã<|c?Ú ¥Yº? ”…D$A? $4ÊfÅ? ³Z’µ¬+? iôëiù? W>"úÙ–?.ÍÚ?'{±)=?Ý8ŒE˜¦?T l»?'k±g)Œ?LI\Ì^?ôé¾UËþ?yùzÀR?Åöã?Ý,??ɽ÷ß?d;Ð.Î?›¯†É·¤?¬ÍL¦Ò?Œc ¼›]?D8qš?òÌ Çl*?Ì“­çˆ? ¶M±2i?Å4žQø·?ß…Wæ ?ýÎŒRÌ?©i{Ñ?˜7áŸ;­?Ù(fÃ!?½?ºg¦? –Cíº±? FpÑð5? þV<€?^LÞv*?qî·ãä—?#yýNª?È€HMY¨?¯±Ñ=û? ‰œú˜—(?ŸŠvˆ<>ûŸ>ÚFž™>ñ×5ñS>åaî ÌÎ>ØŒ*¢ƒ=>ÌÝñ1>/_>Âøh2®Ÿ>¼·¯ßh&j>·wLF>³0Û_å©>­ò8ξøU>¦«ÀVJ>Ÿ¹Ž±0a:>–eô5¥©È>cT‡+2>†ùÚ ÷>}²¢Dº§L>rÛ—Òx ô>fj5’¦h>W‡ÁðŸäJ>FgSÖìSÐ>3y HÝÌw>JÆ»E>NÁ#,û=êBô»Ú•c=ÍEcM^›?!õÆ*TÓ‘?"*úÚî?R?"¦R‡E¶.?#pDæÁ—/?$l²®ãÎo?%Tüú©yº?%Ïϼç)'?%˜¤$[(p?$œ£êÝGZ?"ÿCy‘?!_Ìcv?”xºË?\ä†÷È?WùY¤þÞ?µxò?dKS{?YßæÛõÔ?ÛÏ8ð߈?àn`X›p?bëþÏz?hJø[æ? ­yŸš?g½h‚úo?qQ2Š?ÒJkðǬ? u,—Ì?!‚¦vÁŽª?!ÔŒ:B߬?!egX¢qb? dšå*7l?:k´%Uê?¬Z˜Šì?{8&õì|?ÍWw š?¥¸H«^?þëO2Ø?Ú¡*²ˆ_?A·Lt÷G?3; [™–?“–î'`?'¶(ú€»?¤r/æÙˆ?È–°Ÿý?ta:_ÑŒ?±UlÌNL?¥–”é?û¨ÒQÐ?t]¾ä}?¢öòµº?'vqh£?=aZO„? °ʪT? ±ãBËÛ?!5No@+Ý?!ƒf,HK}?!…¦¬A òÚñ?Út6?¸¤ì-1?Þ zð?]^ÃL2Å?ã´3ÊÍ?¥@ ±3ù?–)Št"~?T¨Pä>?2ô^uãn? 9WŽ—*#? ÃØS1f ? ¥A!¶r-?÷:È 6?M¬¦LÀ?ýEµHE?WÓý?KÍ–Ý?êÑ®±d+?ýs¢?’ö³ÖJ?Eœ¯óæ?&LÒ<?:¢Ÿ5?A?sxM:˜?š‘Ш:?i~~Ò¬?°ñ1:ås?vù˜oÚ½?édkOù?;åµrk:?Š™Ô?ïI?Öªñø?l*tòX?`Ó*Üu?Â.³}öÒ?Yb RÉŠ?%ä&ÕäÂ?lL|YV?Íuwx?P·B¼?†–(¢(?„¤Zo[t?w¶¹àå•?•8¹h]? K£Ý7?øh¯%?U*à?ÿü¯€‚?Á2MKñÂ?d5d¥ ô?Í9ph?lop+c?3òpüé®?Žö­½Åe?7޹áw†?*%Œ²p??p÷|W4?D·žSV?¨Y«8?ËàÂþ™¬?wéX®?=ÝvUjÀ? tb³·¬? lA¼!}? œzóר¨? €à¨f? ³ŸQXG?Ñ aˆŒ?I\Ó Åh?äªÔÝLÓ?å”Íð+Ó?lñ N?tŠZ™óÇ?ÞË +ì?ƒX†¯j×?=îaœ?ðÒ‚?8§¨Ì?ÓÖåKOT?Ü›q—e?”Ķ×.4?¬o¼Ù€?UQµ•¶?ŸSI8¤?tÙ3 ?Ÿ¤Ú¬>Í?f]¿µe~?K9"Y ¿?:¥gQx?$žÛ¨Q?ê{§M?ÙÒCô5e? ½Ï- ?V?én,?øé*)?_ÔG¤?fOm!?¨QÈÏ ?/$’6Š? DÆaÝ?åæVE×H?ð¼¾L@?½¸¯8hä?[ÒvÊ"?å¢ú’ʶ?ööè—hS? |,‡A9? œ6Ø`ÊÏ? › RÙœ? ·œ¥ã®ª? > ¨ê¤? šOÏú×?u/…_ØÎ?5= Í?ºj耦?Ë$}u•î?[ô´a?T«À…/?¦ ˜I?Øì«©°¼?IDúñ—?ñY.Gžö?¥ ¨ðPE?$BCqï?/¿Êx—Þ?¯YLÀÏ?Â3veéz?µ¥-ž_`?ÝéöwZ?iÁkÍ?O!lË`?[µQ‡ê6?]‘¿þí?F§üìx?7u‚xÕ ?n¼{Ú‚Ñ?)¢Á+Y©?„à2ëêS?mý² A?©—ä;Ê?èAB„è?Û"öpÞ? fëÑÂ? dóôËv? )Ã{÷©Ä?Õ·ôFoL?šÎÌÿ@Ê?8Ï{y$g?b¦;^‡?¡ŸŒN1? /HL×á?¢™!:dŽ?ªá•]R?­æÿ6|5?C–Šþ†×? OÏÝr.? U*[[æz? XÆÐ]? ?þXó ì? $,MÑV?²BìÓÔ?QÚ7ñ¶?nÑvi¸?ÆUa1Ûö?IùJ¿J¥?®õPci?ù #ªr?´„´>H?³$ª FÇ?=PòÞ}º?Væ0È&?Ç­­A?¸„ H†?à„,*TA?Â##”?åk<”O?ÓŽÌ ?vÅÉj¶ÿ? =Œ?™D? ËST‰?8ZJú?(2ÑÙ‘??ÄÌi*?bO´Ø¥Ÿ? ã_S¦Ï?„Ÿ¾Ý(?ž³ø.?>ø=ǘ†‡$>î™…ž(Ûg>áÊŠßõ#*>Ó_ ÷¢S,>Ä 5Lqˆ>·AH£9>®_uß·>¥óW ã³ >¡&UÄG>™¾Ã8G¦>’{¯1²Äç>‰Ó¯¡T•¿>Ÿm¾Àq>wðö|§ >p.m¡p›~>eV`{ÒBg>Z¶úH.â >O£1®Fa>@u,w¹>//ÊŽÈ‹>FÀU`>NÁ#,û=íYœ| =ÒG*àsÂ=´_”ï™P?" Ä®>é¯?"·ºο?"ýh-ÕZ&?#ˆrÛšò?$MÓý—U{?%£A;Óz?%—g–›L?%ˆ÷Š;ßÚ?$ÍšþÏt?#s(Aì ?!¨}rÔ3€?T‹qÜö?cËû0¼®?×Ki)±°?çqMÅaÂ?°ÎyIµZ?= g ‚?†·YÄÈ(?|0döë?gÃ.?4çT\?Ä=µ8Î?ÿÀòª?* p!E^? &`¿{ï?ððÁô&?!8W"ìB?!ÐÓÔw3¼?!µ§Meä¨?! Q °? òzÙµ?*?$¹?-”zö?ƒÿà„w\?fW?øþ>~ê?24›yÂÖ?òx\ocw?X]ÕŠ(b?`}IA‘?Ùw”ˆl,?qðF–±?×O ;²?ÓBª0è?XÅà+lÚ?zÀ^Žè?§#E¾d?Ûÿ·ø`?ܽ¿²8?Ï1YèìÄ? j_½? õ=ߢãL?!l®~÷z?!¥8 ´>?!~[[©ÿ½? ïÙåù? @“š¸¯?°Öû1â?#ô@wÌ?¦—² S^?Çuêa%?ŠÙp†óû?Õœ˜ ˜?|ÚÊhˆ?T;TˆÑ?2å|{T”?ôg~¤™þ?xÂþ}›?§æA?º?xºc§D?÷ç«ÚûÔ?H^`ÄN–?˜p?KÈ%Vl?Æ)ÅNz^?µ­Æ‹eÍ?È´hTÅŸ?å Ÿí¸?÷XTeÅ?ô||Ø?Ô­ÄÙC?Ž ÂgÔª?!äÛ)N_y?ù#æи?ò¢Á%`ƒ?0ï¿lÕ&?Îiæ4î?°p¢Ö“Â?IŒ^þ ?f;n„ ?ZO÷´5?©¶ip0?•àûw@\? …üÜ?Ó šY?¼+aƒ«?­ÅWðþ?©RòÖ €?k&Þò’?µR_æ4ô?L ?@>?&­"d?Ø]~ä¶?·› —ô?b­Í§~Ž?U}sÿ{e?e®ˆE¼?š§ ÜŸÕ?’<ü·†”?³ù@&¬?t-÷n,? EB5‹5ü? €JkðA¤? ŒC !? p×tÅ? “gæó°? ”Ì1àLù? t飗¦? –ÕaŠ ?é¡yqía?(ûUå±–?$ÉFwx?nzÂ~(?R/˜fF=?ôvÿôÒ°?0*¾Œb?,­m³I?®ôEb µ?–;°µ¿Ò?Q<ÿ¥³¸?S™Êha¤?P4çÖp!?nzobëK?Dj$º|¼?îºc1?—h)vÛ[?ý9ýÇ]qž>óæLoй*>èuu{Q4>Û¨Š3æU>ÌøÃUˆò>¼Ç@lVê>¬ªÐw<\>Ÿ“‹KÚ0Ã)>‹Êz “>„ü m¨>{Ó¤bV!É>rÿÔs8‹†>i_»é >`rƒÄ>U}ÇUëN«>Kòa±E>@ÿçùebö>3Œüîsâ>$ 0üvÌ>l5už>áÓ{) =êBô»Ú•c=ÒG*àsÂ=¶Ämw·ŠT=™`€rîÜ??#®„A°,?#2\lÒš?#rG´ÄŠ?#W´/Ã¥~?#ß5½Kî¶?$ŒÉFìÁ?% )%Ã8&?%U˜ëZ?$ÿ/çö¤?$©ý–¬?"–·¨ÏŽ? ¼öÔ:‡?j÷†Šr?n2Šö»²?åƒ[88¶?}=YW0?3¶-ïj?8‡íˆ?o÷§kŽ?˜ª‡•¼N?«ë€†É·?Ihì²{?ƒøÐI„?aQhç¸Ñ?¬ åsê?é„óAnn? Á°úÞ ?!¦f ¦}?!¨åXáäs?!T¹†Ù;Ü? ¹òÍc? ]A\g?›%šöº†?,¹¸X=d?±»¸hȇ?1–”?×Oɱé?é8A°0?§ä»’?+pñm:?R 9ë¼?ÎëL®z?F½Gúj?ug…à°ˆ?=Xº/Ù?6»1º?¥VG‹?n‚oWœ ? *+Í®?ìÖ`]¢?‘}òËÜ?q ¢xä?MuvÌ?¦ ßnv?âílš?œN­Ò®â?ËQ&#ÖÔ?ŠÙ’7Aþ? QEï—þ?Ó‡À§Ž?OGuFÜ?”i I¤?|‡W7³þ?@1]’?ÜçÚhÓ? &¨¼Â@?›_E#oà? ÛP!˜?!q[Íž’?!h¸&öñ ? ÉB¬él?‡ s›öâ?8] áÃ?*rÈ4I?¾PüAô? ÞœŽðü?IÚgÂp? r¾`v™?*n…œB?…´e겤?g°à?Ðh:2ñ? ÍÀ„ŸŠ?!˜Ëƒ¼¢Ã?"$$h3ª?"[¾ FcÌ?"D¯®ŽÒ?!òŠ´ý´?!t}”Öüy? Ìßgç\‡?ðmj}Ê??ø à©ð¬?ߦ›j?è©—òð?N ”a¯?(tQkáÅ?gQ6ÿ™:?éK¦R•N?ŒûUN<ª?;ˆO“ýo?éXˆß‹?’îë"ƒÿ?B¡_¨(?\æð†?¼ÄÌ̧?R* ñ>?Æ(ÙL¿?EÃéžÂ?«ti½`?é¦zåÔ? è({?^_/ø¬?þÁÁ‰Ä?c÷¢w?’ãlo–¶?CŽr#w?à³g4ÿ?9ò"¼ Í?TÔù? /,@"4? Â’†?¨’?!dìX¦„»÷ä?oÈ(W?:qù”úd?ZžM£2¿?–F ?µ§’Æ ?‡¢c2'”?质͢t?ÌŒ!²?F“ТÕ?ˆ¸J6ÏÄ?Ò`]¥`å?Xâˆøê?3$fW®¸?Tíéí4™?›X <¦D?ಥ&? ÖIEH? Ò·º Ò?âXÎÆèz?JU/F(?ä­ <®?/›7hV? ¶Cvá‡?ùÑ,Mò@?ò\JÏHä? xŒº+?K²JBé?¨ùcPPF? Ù›÷?`œR$&ì?XÜâ‡Þ?¹Uú+Î?Õ§ :9¢? •>gˆ­à? Ìb»«@? ²ñù-`¯? ˆ¬&#Ç? §Ò'x€? ¡4²Qžk? Êqœ ÞÊ? ÂÒcP~6? ]—䔵n?mɾ”?æHf]ˆ‰?n£ÌIî?,D¤áÂ?;…"I(¿?ŠÎÙƒ›?‹lß„ v?è8’ãv?ü:0Ì?où߀•ÿ?±ØÈG/^?#¸Pv+¤?hgj7ê? fÌ£ç?e3U¬“‹?{_>G~?hŸuŠo'?,*Ç×¥¸?HÜf JÚ?Àzéä? nL>¦þ? )2ù§¥R?í«oÒÛá?D£E#k>ø VEº,>îìîÖ^:>â[´C÷‡Œ>Ô¬ »s>ÄS¤tœn¾>³0Xô+Ñ>¡wʹ >ZòÉå˜c>€üNšn>uTÖRÞ¢>lÁ늃?>bØo_ƬÕ>Y:Á;8„t>P2‰1-¨>DxŒ”L >9Ð[™ £è>0AðH}>#s¦›àl>諼ßþ>* l“©”=õ¦#èæZÙ=âÑ5^ªŠ=ÍEcM^š=´_”ï™P=™`€rîÜ>=|I'‚º?#pø¥Lø?#@ÄIÄ8?# Ê'à?#äR¼˜?#YèÝÖüˆ?#ön>p?$ªŒ . Z?%1[)×ý€?%LчŘ?$ÑáÝ”/ ?#·K&Î`?"ÞÚ7„? 昶÷Ø?ÅNvÑîñ?ƦN …?ƒÀtßÍw?E€o Ò ?ÿv%Î?ïâ‚N8é?-WŠÌð?œ,´!UÎ?*DþQœf?4AQi¥?¿~Á-¹?¤ÞÔ²‰î?‚5·Áñ?? n9B‚e ?!+ïh—–ú?!qa||'?!Y(©¸†?! Ä”ÒØ? «¤È©áw? <•üv?eÉ=êÜl?ÿ8ƒžŒ?I^+(h‘?{- â:?òM´ý!±? ‡šû@Ê?ù+vX’½?­„¼‘³?åH¾Áþ?I\†€?ããÛãy?’Ì]W5À?>eü?Ž¿Ô}ò?‹¦3¤?K±;lGF?ýï1K˯?ÖÁ½À?ïœC6–s?4;èêgZ?kÈÈN§Ñ?Yªd ÑÑ?ÛÿæIˆ?ûðt}S?ãiŒˆÒ:?Î G*?õMå„[F?…SÝ 3q?œcH-·ý?Jä{¿É,?“u¹£î?_Žï@ü?ÎÁ2q?JNv?](?°ÜÝ52?ü-Kß?ðwÚ±/?ˆ3ö;?;ƒWâ?Î-¾ÏØ?ù+3Cé¤?‹%kdŽe?v+eâ²a?Ù¶Àpæ[?ý}¹øŽ¸?7æjÚð?Ì“óü5a?Ò%³Ô[?/:€$–?­mïŽ`?við‹?GrRWþn?4X~ùò?ßGÕ`àœ?M«²úžÓ?…UÊûTÎ?Ž!*o.Z?u$ ù~N?LœÎ …N?)øE+uú? óE™†?>²`4F.?…MG:³¤?êñÇIÔ?\…Æq?Áx¤BsÃ?V§Á¥?!ˆÛÆ?ýe‡T)2¹? ½= íw? {8aÚ¨æ?MùcRv?ô¹ÂÒv?Æ~À?)CÜïý ?DûÔœKº?(#µE†?¢ˆB>£Ù?‹”9@£Ö?Ñ*[éD?{eÕâ?§=Å^j?}£$nÙ?/ªU÷»Þ?ô Ÿ_D?ü¿`²cæ?bÆÕìw1?xïÃBÆ?à&·)i~?†W×ÑÂ?åúÈ -? U¯6cf?+ð’­?„ܹ¡¸?Gâ“Ñð?…¸lºTÏ?.§ò ­?!|5ȶ7?9NÛhí\?VqÅ}Ä@?UÅîS¿?'Ï”ß?_ðxC€?T?:‚ÍX?2†ƒœ<à?qŽ‚ €ï?~åÇçÓf?¹Ü?W?)«ëwJ?ÚÅöVœ? îàæî'?!^Y§8P“?!@Ç%? Ôñ’ûvå? vªÑ÷£¥? dsqu? Ÿ~fD38? ìw¾ÍH? ÷Ø*­Aâ? …ŸÝZ')?‘ãÓ–’?wy‚:ƒ?§IàbÄ[?*ØdÀ…?TØ+Çb¼?O·'?+ФÉ?îBÜfŽæ?|/Y~œ>?}´{rBø?X,ýn?Y{©h? ëñŽf?0I‚ö?Ge/ÆI?.RT»$¶?¿ˆÃ33?üÛ¼çU`?m?Õ ‰?r‰>—ÄÞ?TÜà.)þ? 9öÝÄË(?Nïøý׿>ý #þÀ©y>ó.6K;·s>çr¨5‡Žþ>ÚŠßkv ~>ËÔü®Ï >»½¬ŠÎÕ>¨\e’j>”»¿Ê1oC>¢e]~D>mO•GkX&>_ŽJ5&>R_áPLi >DèX•zÏ>9\¹T6F>+‡Ñ²JbW>½Ú’KwÅ>>d?;†=ò)jØ$é=Ù*b)½Î =¿X·EqI=¡xDÃÑ?#‘XBŸ³?#I@ôYpr?"êËH!¸!?"ò‡ËÑR?#‘æÍ”¦?$p[Nê’œ?%EOŽ#ËF?%Âçt8QR?%ª¯¬d¨ì?$ÝéïEà?#`¶B·?!b$ÖÇy?Uê¬Þí?çY®þ?Ÿ_A£Ê ?HdБf?.ö¾WBö?,~†–Ë?ñ ìþ |?,’5%?²BëñIÊ?~ƒe!?—K²€‚ ?ãÑMm–?öZ? rf»€y? ÿä¥ ‡?!6dc"°2?!1ixjîÒ?!›î³? ð ªM±j? ¾§êƒ Ý? d”Uù€’?‘AÚ¿›?Ïæð[ è?¿ÔÓP?Ë”ÔàB?b•ÍæªX?Ë˜é ¡? p˜6A–?ò&Ÿã¦R?0´,`Ý?‚³ÊdÎÝ?¹Ôj=?·ÐI-xµ?d±Á!Úd?¯:ÑÄEƒ?œ_…ŠX?N0ê(ÛF?ø92Pu?½ ò…?šü‘ý?i‘F$q`?ý¯gõ*?EÃ^áÚh?[ú$°?v©íNgã?Ù"MzÅ@?³A4ã3{?xrþÊä?õz ç4?Wœ)5â¨?ùBL›?ºZg¶;? ®¶B´êà?!HìÚ¹Â?!ƒ5j./ä?!DïÉm ? “:­Î ½?%UUj(Ÿ?÷,ÑeÍZ?áÀ¨h?ÆÕbÀµ/?Ga4™O?‹ÜÊS ?h.õÇxÃ?¢EÕ@8ä?Ѧê¾?ª9^F'´? BcƒÒ^?!Qßr0a?"mt¥Ãê?#d£f¿Ê?$3˜5Q?$Í?"G0õÙg?°Ôj kÀ?¹øn—E©?OR„Vëº?o`¬›µœ? d4ì2ý? ô‹\J?E ïé?‡< ì+?«Ø¢Eõ2?§S¹í‘Y?ˆ:šKç®?fñ ‰iF?R¯ïtÝt?M^¬”º!?WB˜±›?{0™‘?ÒN2Ǹt?zïV§¹š?‰kÖiC?ùðó:ê?£ð³Å„£?H½…|”?¤ùðKb?šcý^T%?I@±sJ?Ÿ ÍÝß?½¡ Ô? CìæNN?!yô¢x?!Šx«4@z?!ŽKÿa? ÷ßu`Z?¸Ã6Ï©?ëñ'Vt»?¶ý¶å–?¯ye¡å?\ã¡BL?w—²R?Ü骠€²?#š¤~FA? º–ÙÙ?*!¾#E3?&õý‡À? ª'‹ê{?WÝYP?=ÈFsºÊ?»RÐM·?|é03,?£g¸Ðž?DiÆ ’?t“át? ’ª<&?¼u$‹n??(è|‹?f"Wè• ?&¼WïZ?ˆíU}8?¹›—? o?¾)µÆ ?¯ïC ‡¿?™WÔ¿t?~Š©}|,?ca}`¢Ý?P­­üþ(?TÒVúcé?~¡ÈfÉð?Õž%¸¤Q?S”V,?ä€+•Ôè?kyÌ¡ÁÝ?Êe‘#!S?íSeíë?¬:öxÉé? GúKåC¾? H›gíô? »$cº½œ? ‡h|¯’Ž?ÔMÿrß?M1@Æ:?±˜o+„?(…™÷Eh?§ÄÐ,–n?c„ÙôGƒ?|=?îJN?óÚÚõÐ ?¨}—ø{?`¾ªy?磮%‡?&)âóñ¤?2c.ž—ì?<©Þã'à?y°2š? TrŽæ?î÷pæá?.p¥T?œºÞs?3F¤ÖÙ?ëZ•á ë?·ðövd?}Eä«Ô ?(^Vâˆ?ÁwýPÉZ?½}Ž·¨?ÁÝ;e¢|?ÇeTru„?ïÝ™\?» c–Ö? ÌâL½?!ºˆEñå?!öóg1ý?!–Wv2*K? ïò¼×ò? r&xð3Ê? e&܈m? Á­[,Y=?!5׊ªP$?!UÇš¥­G? ØÅç*x.?wòê¦ Ë?{ –Jó?k‘n‘?ßtÛ<Ôj?&wÁ K?VФe ?s6œ6—¿?|Œ×ÝÜY?b"*?˜?ÖŒ™+À|?<Îq#Í?Ð…w (I?Ÿ«ìýº?ʰaÑ?¸ cJ7?“֪洞?é·waUx?·øh˜+ü?…N'ˆr^?ÁWÇIv ?(¼ZÑH? Ó«j¦´#?þ«¬x>>ùªÚïß>ïãSv Pò>âHj0`Æš>ÓhCksÆŸ>Ã"“Ô`Ìò>±‰*}D>8>íN–˜]»>‡îñèV>qv£­·–>YaÂK.³>F÷ògL>7™Bp1NÒ>'MÙŸ’t->Dñ%ÌÛV>¯ª.-=ýÎŒ|õøÿ=éèrÖï=Ô&¨JÕª =¼ ÔÏÚÂì=¡xDÃÑ=ƒxåQ,?#oÈS;pÇ?#!ÆÕìe?"ºþOjÜe?"ˆï'‡Æ?"Ç5eYÖæ?#Ѓb&?$¥ü¡é?% 3e¾R8?&\õ×Q”h?&|YÖ¶??%Ø)U½9?$u‚7èà?"ƒ|î•¢C? P$x­-?kbn¡R? Ü7K?ðìw«?2–ZÁx?Ë(Ÿm?Å…†•…¢?:©u¾¶Ý?¹r·?3À MÀ0?¶´æ34%?à´pËÈ? ‘1~´G? Äb–ÑÜ?Ös!?³§X%ŽŒ?‡B°4?KµËxöb?S¾;`?Œ¹í.s?U9è$%?ÕfË;0¼?t(ðV¥?8énçç°?  ¹ד´?!É'2¬â?"ú7Ųÿ?#üyŒ+pÏ?$™'¶©Ú?$¶¬îlI?$cu»5å?#ÄÐŒÔÅ?"úHnü¢?" Œ ÇqB? ÷êW$jå?ißo¤hä?£"R;?Õr4 _?D÷üŠ5Ù?)oâ£í?£mþÂ?ÀFS[q"?zžh@?³[‘e?5`Ã}?»Pñ-ˆ? •޼™?cûƒò?¹[º¿ÖH?Fs–È4?Ï3Ýâ?m’ßM?7’jåö?C7•®H?¦½?Öº?p[mpÊ?ýç:?÷ïD?ªä§¡£a?ÙÑÈœÈ?'Ãð^ ¨?Çf)¨&î?'™Qiäˆ?§¹êj"?Ÿf/×?•M8÷Æ?Ì}ã(x´? ŠMXm«Æ? ´ñb? CÑ*!p?ŽÐ†|„?Œã6ò?÷ç"Ôç¿?mì|?ÕTOg¥?ïBxÓÊ?VÔ’?•O­r4N?>‰þâ7? ) $qð?Üù³ýrÀ?û”FxŒ?Ô§ìóÉ?èšáq*f?‘5gdt?àiGKõ\?ž½³Œ5Œ?oÔ£ f?úÑ+ “@? µñ]þ?”˲ž?²È¿ßíã?“³_ ãÅ?eÅà%Š?IdæáH?GZâê?T”Í{¨L?^2¹Ÿý¿?\‡—訕?ZIlÖö¶?p  ÒÕ?¹#TFÇ?>^°ÇðW?óÊ(?ín?·^ƒþ†%?[Q Ó¡‚?·Z#eº?»™3Ò$X?û¥p^¸è? r¥{ì? zŽß d? ­Ëå{¸…? uý¤¯Ëy? úi$šÁé?‰À‘¨?;öà€xw?;5 ›Å?'ÂBÚ ?“Ø¥©æ?#BÖ|Õ7?¤ûw=U)?õ M(R?ÐëÁÌ º?ƒR.?@¢Ÿ¡Û?£xIôD?fòžÁ¨ð?—zð([4?!Vƒ64I?Õ“æÈŸ ?{p$¼Š?é ©3<’?°(6‚¤?#‘³cj´?:г}ŽÈ?Yß[à?B3¯? ©£•HÓ? ~"Q¯Vþ? …¿è;'–? Ëg–hï\?tâÏBŠ?˜çm3»t?!‹ÞÇ™i? V%O o,?näдJ ?6ÆâÔÙ ?«Zbh Ï?9YX?jÚm€Or?¥ÍRÞ?Æ'rÿŸ&?Ìô$Uj«?~“{*±?@ô% Cª? !Rǧ¶ï? o¸¥×çH? «zD÷?4É@½¸?:e\‘ƒ?”æXÝL?0{#±&R?†¡ú4? ˜’h|? ÌJÈâ¶? 3…¹£©?/)Š >ø«y×1;š>ìïpìCù»>ßÄLÿ4>ΧU…w>»úqªU>§±Áj¤>’«¨•˜Ú>{a;á§CR>`²õ+k>Bfo½{>&€ñÎí)>å®Lz?#gHèÉ?"ÃÇ"þIî?"wLs´Õõ?"j`¯çµ?"ÕÏyWA¼?#À؈¢ª?$úÌ‘/y?&-£ü›=?&ýXá.?'"°àJw?&€—³?%#\âÕ^Æ?#ACh?ÇM?!)zMXSð?mhåHnº?x•A¦)à?ä_1?Å‹¨€?Ñ€Ú?êv?zxèz^?/‘—ÅTl?–ÉéÕ? P¦X³? ³nýµl?!"æV©?!/ΆWÍ?!2݃™ w?!|Cd»ø? ­ãLt? V@‰#™-? {)íÔr? ¢æì Š? ¶×OB?ÖñyWæ?!„÷É?ÉÞÍs?øK\bôÐ? eÈwº5? +Œm@†O? ¦¸6³ò? _=óÝs?¼iÆoå†?¢‚£'Ȉ?ÝNK&µ9?íÏ÷—Ö?Qõ0mHº?§èû…i?ÆdÖ&x=?ÊAK¸¶? 0>wðÞ?óJ{Ü6µ?ñM'm¨?L"{bMî?$Gj‚•8?rì‡/¶?³NEd?È}¸\?b]ui:¸?¹Ɉ²±?ñ(ÈóN?žeˆ³-?—iP"m? yþäÑÌ:? ÅÔhÐJt? K QÒc? МFIì&? E½ÇƒÖÈ? ÓI(qSù? ÌÕAKéV? |L1ë8? Ú@ÿÝT?m 'Yì?Z3‘d§?zT&ø/?"QÓÎà^?FüfJ$?±d9ؘ4?ö2ö(÷§?!Dv);?!ô\$hPø?!ñ={Pãd?!d±ØÐ´@? ¸&ƒs? gºþL? ¼ÑÜ‘îâ?!&hw?"‘z _ê?#Kšä ë?"žˆ?iè?!bYðw¤Ü?fêæ5Då?~RÁ£Y?dw!ö?v_¬Ï¤?ŠD!¨Æž?¿ î Ý_?ÅÃd;:%?³‘ðw9J?_„¶fF? "G]?!.¢Akž\?!•èð?!EÚ±û6ñ? ‚Âau?Z”X E8?ö·¡% ?¢óö ?¿Ó‰Vy?À`§X?™¯Á.5¾? £-²åŽ?]_i§ÿ¡>ùX×>}ŒÀ>ìŒ''å„>Ý'AŽœ=ž>Ëg摜>¶þ;à}77>¡ò¤2¼Cˆ>‰èÄUä\ >qc?‡€Ç>M÷-Í…é>/\+M¸ Û>„Þ£·„(=õ£ûËŸß?"W†=ôS?"2ä v×´?"®qÖ?"N6cÈF?"ý•®&gI?$!ùð7:?%~¾Z”"?&·,Dü?'qöù³Ì?'v×3œ?&¸TnѼ?%W¡ì=À?#>ƒ¥?!§¢Pæß?óN‹`]\?¡’¹‹Í?ÁÔŽ‡é?^5J=?51¬à? šÜdzu?!‰•¹®ùê?" ¹ pW•?"Zz½š?"P\¸§=Þ?"Câ¿ð?!ÎTüðoQ?!\_ô+|? ƆðKÛq? Q™‚ª?ün'iò?D3,?¬™cÆØd?‘(Ø&"?wM>6ØÉ? é ¦?!‘¸?ÍÜ%ÉÅ-?Z"óOÉ?¿731Þ?a>Ï6Æ?@MÀ:9“?¸¶?'Yž?±ëB“ר? ¸T'G?!çiÚ ?9攲66?¨ˆÈPy?±Qwï? Íáƒj¡? ³[ƒHÓ?­Q\IŸ ?ä|Àˆ$Ã?áûðd˜—?¯6:Â0?[* Uš?ÀTÝ¿f?kEÍ1)?Àâünh?YÝ6Ê ?éÑÚ;?3w&y®œ?Ã-)“¾Ä?!⿃Ž?!×.VT×?"+BäWpR?!ùáYè?!IJò˜8Þ? -Œf!?“±{æ=?›'¦Ò?ße‚ú‘a?Á¤Ø°??„‹p‡«d?ACó¢ï?èOëT8?Gæœs?p¬ï° ?.tE¨p?dvSË(a?ÇxÊ2ž? ³¹-„¨Ÿ?"-‚Ôÿ9?#doˆ}'?$ZŠOUd?$Â[›Ï¬V?$ˆ‡ØÜ5 ?#ÇÜÕ›F?"·P´™^ ?!Šü£çúá? ^’jV1»?hlÊùV?E2îËw?—îíC¬?4VÊ€? aƒ-?T\/è+?=k,.þ'?äga£ŒÒ?J'Up Æ?FÖöQä?ˆ#ßÙ?£p#ÊûZ?8Ü5"?‰’1£?L™7D-ë?—˜÷£B?´ýR?|ñ–gQ±?¥ÞmñùÂ?Tù5ªO2?™þCÈF?jÀðws?¥Ï ê%G?[ª].?†H¬¤°‰?²¸ä Ž?s+Ë_:?ÇÓòâ?í7!fÌ?J®ÔîÕ_?>ÿAuë¸?áä]¸Z?ç²Å;?¾÷Ÿó¾?Ö/1òÎ0?ÞŠ!~?á°âûŒ"?1ùgC?6ö’sæB?YE8hŸ¤?ë¤æRï?/!¤hþ(?K6É¥?DÜ+~;h?ô%R#™?.P ¬T?\öN®•?u ß™o8? Ì—Xî?´ÈhRÚ?±?ýõr?zì] œ™?‘|¥¢àÿ?DÂÚ:?”¡÷&š ?BQ’«M›?î9€¹H?C lÛ÷†? têUì?BÇá¹þl?pœr^º?™Á½3}Ó?Aèñ¨]œ?3l¸)§ò?w±¶¿û?íÎ]=(?bR?ÿÍk?°¼²µÒË?Øg"B’ª?ü "ãÉL?LÈ™ŠòR?îÉ#¸Ž?äæG>Úý? 'dÁðn?!k+ÃF(?ãã6ߨ?(ÒÙpÓ?ö¦«ÐKo?õÈ»|? ‚/b|£š? æ TÙ? iõbØ{›? åµÃ ¯8?7¾ÀA?<Ÿ^ß„?Œ¯:ݾ:?”yÎî}W?Ç·¨%OŒ?Çñê¹?y)úÀ¥Ê?8t ¹V?ôöâÒQ?£½ê´¾ö?‰©¥Å{?ëæŠSA?àŠk?P €Š©?Öƒ1­?É vã†?dÕìÈÎ?ÈŸÙÍ?:?ö² ö?Õ)œÈØ? \*fðx? ˜ØWÎ? &Ý ºu? ÀAɯ§? œG^]*? 06M×…l? 33Šc7?›‘ž:?Ý̵äz? FÊyôº? ñ&ÿ—Ç?kdK¦eŠ?ï©õËÖ?êj0¹0-?-£yšxÑ?p»”KlÇ?T]ˆ9Á6? ¸ZŸWÙ?!8~³ƒøÑ?!!§Ÿ^ˆp? £ìð«? &oçx!k? ŠÇ«‹Ô? Ìþ&[„?" ÀÁs^Œ?#Y¢y“ö?$T³”?#ÐÂvü]?"¤^  ù^? ú¦‡®?º®¡ïÊ?U=Ë€ND?ð!fà?\¥é…Æ?o÷ýk:?:¬½pa?âkëÒݾ?KŽ;üŠ? òÑÅ ¤Æ?!ìáŠO×?"A€F-IÞ?!í‹—/â?!;kX¤í6? Š1¾˜ ? {ÇŽÚo?ì¿ù•}? ˆ"ÝOK?Å‚S÷ ¦?(¬ ÁëX?³·Ëµø?€öd²t>úP1Ys>ìý.*§#>ÜÆR$[Mt>ÉÀhšõ >´Ü‰Ï³ß >ž¬cà]¾K>„‘Ú kØ>iS-Œ0J>9Ž™µë‚>Y·O[Ä=þQP¾þ=àÔòž5ì?!‡°×ë© ?!ƒÅŒÝEV?!£îùËt?"itÖ~?#£2ˆZ+?$cÜ0<?%ÏîH‚¦?&õÆ Ò ?'ƒ°YÛ|?'T"î´?&s•åN?%×–U?#nl³|»z?!ÍÕ®ñÀ·? uùLügç?Q(U3?#lú? 01 ʰ˜?!IÚƒ(ì?"|hAåÇ-Q?Ë_4Ï=¾?#A?Àqz?ºäS)¯?Ê…žÏc¤?¾@Ü(@ã?ýùÞñ?¿¿•»Ø?ýIƒø´?z¯w]¢s?ëº&WÇ\?£E?¼Üc†E?ìꑳm?»Æ‡‡&¶?`²íü¸•? 9•S!,?-H 6°d?‘ÁʬÞ?(¯~IŠ?½¼ÐÈâ~?(ØÐÒ¤?ha»ÑV? ƒìA]†?·?ž|?ÀY)ÄâÞ?Ö{FS?$g Pb?f€¹e«C?RÙFÕ—?¹€ôiSt?"ÚW?9ˆ@3ð? ç\MÑð ? uŠØšœÁ? Óœ×è_?]mMÀ½ï?ûóbÚÃ?RÁ¥+m?;ù»âÅ?†ôü˜?÷ÊŠ˜z?—X& Ú¿?éŸéb¬2?1oýË¿?áf~ ?w®Š”óó?^ !Haü?Ó£[rÆC?æj[¬Ÿ?w„ÁžßÂ?KžKU¿?"ÐsM7t?Ðø3•·?L $‡ õ?U+ZQ`?#œjy D? @¬£ë? ¸ÎQQTö? cMÔÝ2ò? ò¬ÇwÄ? Ðoá<’? Û¬ÕÈN?n‘Ák¹õ?^no·f“?:ĺ•Â?nF9¸ø? &«L5 s?W†FÎÕÛ?_ꤑªV?vyÛŽ’i?¡ a“´?ŠTB+Ò¥?â*¹óY¾?iXŒ…ļ?üdß§?®G2Úæé?é¾gqÄÔ?mïN•“? ~ ›»ò? ‘,É›-5?",ÎàÆèø?#Ëp¥N{?$Ç ¢?".šöšñ? ²d²À{!?<&,-F?ü’úz}?g? Ñ“ ?Pø"¥„?ÎñH`7?Ù¾? †¿·ýÜ?!’’¼Unî?"EÆüa5?"W¤ï›¹`?!ÒÙ#¥d[?! OÝí~? c0jV‚@?êö1n”ú? ;@Aô?KÄ!)¼´? tü3»L?^Í`Ð#?éš!]Þ?‡UnIì‚>ú$ìÿZ—>ì‚ëý…•>Ûíˆ6>ÈŽ[PD=>³mS6ÕÐÔ>›«Uk×0á>Èm$xn>d´tÄÿº>#òí¬U>à$UMÂþ=å9x7<=Çn èj½a? ÄðΆrŠ? ÚK6¿„ó?!%?ðjæ?!ÎÓ>ä?"æ~¨!Eq?$KGãEX?%­§‡ ('?&¯{KF¾"?' ÒÖ¥‚¸?&­)1u%ž?%·39»¬„?$e·0[}?"ø5-Û²?!§'!¾¦ž? §%¶6>? *¡(!ƒ-? T9*ŸÖã?!¹($ts?"Iåb?%?#s•DRÍ€?$6f±Aä¼?$Yêåâ:?#ãÿ †4b?# M©C¶?"cBiŽß? øÄYà“ò?ç÷ž?ØÜ³½È?ȵ>ÔÃ?Ý©X_°?UÔ|ÇkV?a™‹ãñ]?ì¬ß¥?÷Ü÷¡ö?@ºm0 ?g§9ÁF?uF—¢?}`}ȶ?™g£ãB?Ù¸/¾Ó|?BûÙt>É?Õ¯q¡V?“§€±?|e|½ð ?…Ö”b †?™{Ü·wD?šé’:B:?r=YhŠ?^´_õl?y4ü*ÛÞ?œ§ç÷ñ(?nµÔ?ÜÛÿpúp?ë ”›«J?¼ÓLnŽ'?›Keyù?äÞ«|Ì?ò_ dÝŒ?ø>Žô0ó?í#B¢¢? @WE« '?!•Qäo”?"¨>dZƒÁ?#9ž¢/;?#''o1¼û?"oóh³?!*N(Oå?;3ß 1?a¬¥©Ñ?Ö„¬N6?ʇ×{/?†B£?Ÿ±?0:Ó,l?Î-¬Å]?O$Ý¡»(?’À3Dñ?p­Fšå›?ÄŠÄq?t0%ªSs?l–æ6?ä9ô¿Ü?!J”½@ø¸?"ŒEÀ[8?#Q+ÆG}Ò?#p ¼?"ä>O*«Ä?!Ð¥¼ìId? p;ëŽþ€?úù ßä?@,·‰œÚ?ϪupB!?©"ïz!?Æ 8mšö?,FWúîi?ï4+)Š?3NKPt¤?vjB` ?Óœ´Ên?N½V² 8?^±V%e?•}“0Ø8?dÒ‘y“"?O]7lJ¸?ÀŸÔŽz?æBxïŠ? íû²<ú?鮤– ?-ÿ{€yÎ?Öwe§ÏÌ?&@ý›°{?+“[vÊ?ÕÒK?ÿàÇÓ?rø®á$=?ô´fG”?N?ºŽVØ?XäšÁf?PØIš?˜ÛyêZÌ?K£§\ÐA?€D!}?`T¯ûËD?Ã~€÷™Ö?!3âSNÚ?"¯®²Èþ?"Œ¶’_Eç?"zTÝK£?!ëšžð´Î?! %Ê Åh? Uc¬×D?2ÊÏÁ’‚?±tÔá½0?ÀIÉ®…÷?rô×m?¸j¯pœÒ?a骑?"\cPP?¦Û[?b:?µñKtNë?Gp)ÍN?Škï Û†?ËÛ–¤Ëb?OI)›½?0Ú¯!'c?]‰V§N¨?§Ç±ä|?ßm?Ñm?Üiõ&ïü?†ªÄZ?Ôvšv ?ÓA1Ñ« ?«+ûž?”—S¾?¼jf˜l?+žÛñO÷?ÃÅèÇM?U1N±r?¾áöPç?óŸÓ?I¼Þ†g?Ã{JLí?—ÞR:öR?̤º^Í?;Áƒó¦?¢g:„$Í?´ pÀg“?>g}èG?BºD à2?ü•©]5?¢1犸?\Ãnÿíä?ØE?†^?³ ­ÿ$?îÞcøN~?Ìœ¹N?\?ÈOJÔÚ‘?Kê‚TÂ?ÓŠÑ'f,?PFqp?0›O!Û?W%­ú×j?™¬‘¬Ä?ªÏ÷@—Š?¬Wṉ̃À?@)F)Ü?p´† ô.?·à½? MKÛã¦?Ž¥‡Æå?σ_Vð*?rÁëô|l?üüê”Ä&?¬:kW?tR-Œ¨? ù؃âÍp? ƒ=Eø>? Í‚B ë"? žÅÎn4? ô©¦³°?YÁ°ò+?šž˜õU? C¹ÖI?òø"8qî? ’«¥¼æ? ¬€õj)R?Œ$ýv?‘GÅ…Í#?€Z„UV?ú BÝ?¼Š‹ÔÅš?®*ë ÇP?Ú6Ñ?øà?v¿ANY?õ{z7¥?þ^\PµJ?9j»ª@ð?êR"!v¦?!Ðé¹,5?#¥.ª[4?$Ó š"_õ?$ý+[Yq?$9µáwýX?"üÂàùCÑ?!̾|þzK? ÷¢-o?p? }Ä•¢h? 9ðµÿ)ü? *Ž£~Ì? .s­Lö? –§Q]TN?!E )S ?!ðÜÙœ?"4ÄóO?!ØÖÕ—ï? ø,dp?å›Íê,F?Rí{å›Î?h-¨¬˜ý?œV6!7¹? oímÓU?'Eƒ<¡?ý·‰Q? {†.Ú?Ù3çåsS>øUˆö>êÑIU>ÙkqP.¤>Æ/{mLŠ>±_àçoa>˜ha*ÿæ>~ÇÒ×Ó•p>asÈAÙ> ³Öô6^=å9x7<=Ê.ì1+Yc=­/;þ̦k? …Ýø­„?)T‹à5l?⬮õ?Y©vè?ö?×Áx’?F~véê?Lˆä!L—?õÞgàÁš?*MsÙrj?ÐëRðï?ÈHpoÄ?àWG>·‹? d5æ¡'u?!‹SVÉT?"1½¬$¼?"7¬íúUÖ?!ž¢,BtB? ˆ¡–ú^ ?V‚oxÀ?wäÊÎ:í?Ä“Í[Õ\?fFYN??jDÁäÉ?ÑÎQŽ5?Ÿ{(Í+?Ü­·ï?¢} áÚ?c_eÿr?H»¿´?H\‚0jì?ÜOBÈÔ›?Œ*¼¼Út?ºû™óÌ?àC²ð$?ÁéWžU?†}ì0Sb?šá½QÕô?} »þö?•›;åŽ?)ça|Þ`?`ôP´E8?HÖƒ?Õóy-ºS?æ ¹Áj?H?‰þ?ÉO î>s?:uÓâÎc?x¶æE=?wYQ?N$6ˉH?<Ì7{*?“DJ+F? B‹Åh‘‡?!€Jn0í’?"ÑýrçíÕ?#î·Î— >?$’º¢ 6’?$š ¥*æØ?$ ˤëÒ°?#ÈåN>?!âà­b+b? ¶dŠ´œ?c ¬‰Ät?ÖC-8§?Õ2ÏY‹¤?Tõ7¥.?3=â/3?=$aúÒÏ??mm;š#?íUÎ ÈÜ?|jÜ/X?Æ s$L\?ÞmþÈP ?ïMm0?=@4·?y˜–‹z?éê{Ó ?N¯âÎH¸?”©í1Ø?Æéþie? è6Q?’)ê^|0?yúÔѳ|?Ä=ƒUû`?KªâÞÔ?Í" {¬i?þ¨º ?®Ÿ÷Ýãò?ÞCwÃ2£?Ç ÙŹ?Ésl¡¯´?K’£^˜È?šXuÜz,?Ô$‰¶M?ß@IÞ/Ú?jþY á?þHß$ŽÞ?ÃýÍÖ?>Nß<Æ?K{Ú?K꿜í?Š-'Ç€É?j9¢ÛŠ6?NëULº?‡°@r+N?D*©¢?) Û´?NŠJyШ?O ¬5“ê?ZTï:L?Lý6ž?­Œð6€?ÝÞø?˜a7Þœ?Uà…¬º? Ήv²(?V}¡aŽ ?-(™Ÿ? }g"3ÓÓ? Uä/BXe?uÜ¥¹?fh¬fÄ?GïíÀÕ?Íåø…Š?®IñÅèµ? ‡P–õ¡ú?QÛ—þÕé?#Í^Öø?Ã\bíâ?βâ? D1ãM~?… ƒt b?f9ª· ?Ð.»g£?ʉÍgÑ`?KY!hq?þ¦‰Lf?ٹĚ/? óßöE0?"ÒLê :??$è ì€?$x <‰àÌ?$(èÇoò?#T]túa?"ª Á2?"E(XÎ¥-?"Ӳ϶p?!áµøYÄ?!¬Ó‘A?!ޏÞ(/?!¨CË7U?!P8?"-S¿?”?!ËÕèä?Â? ál7óÛÏ? !A{x?E:GÒ£µ?.Ú¶Ï€?ôOÞÆè?£Ý‘U?¬ô•Êzã?,‰0nØ8?ŒÐm)?­#;ïY,?™ovBŠ>ôxÄðÎ >åÁ› ÈÔ9>Õ%º^)½õ>Âg‡(EÉj>¬µ{׳‰Q>” ¢U”­•>y5w*G~>\(·Ñzñ@=òþ¿tqh‚=Çn èj½b=­/;þ̦j=CÎi1ò\? o®S"? ÚçÀÔÜ? fۘĿ? ÷l.[mÌ?!ÔϱU7?"â7çÐM?#à›eé5Æ?$†´€œÿ?$£‡‘ïl2?$5ˆy¤5?#dôõzôŒ?"n&Ô?!DA_? ¼•B¢Î(? 5Ÿn‡½`? N¯8´? 3¹èö˜? Á˜ñœ‘n?!{µæ˜ìv?"í2×?">ˆù™ Æ?!Ö‰m->? í3ºÈ¯?x<‰‚ 2?ÇùÐ+#?ÙÇVÉäù?ù§,xõ¡?FS÷pkæ? …÷4„ ?ðn–?ÈÆ3˜g6?ÏL1a?ãkO*?\ÎP2²?Jsè ²?‚b˜ èv?椑©ñÏ?^G /D8?ÆðWž‹?ô;§}}p?ÁX.k2(?%%>¬Ž?5, y p?±ýK™¹?ålu«Aà?·;‚‘¹ï?œ6üãû2?­mçA?2ÂlV?­tÙE?…i$ØÞ¼?Rõ¤ÉÑ?Ù‹“8I? 3¾rôV? œ÷‰’Û?Vùç1f?‘½g%Ž?‹Îu¬? ‰ÛsÛ£x?!ƒ£¾v»?"‘QÝVªX?#ƒô…[â3?$&¯„8ÓX?$JÉscÍ?#Óñ;Ûº4?"ÀÔ¼~?!,eËž¯Ø?Gqª?¢¹ ÞØ?¥Ý»`M?Ö±Üë…?ææÊ=yn? œ¦‰é?ó`úbµ&?þ6Q ?ÐJ»ß¸ì?([œv—?ǶC„?jåH«?JÒ:(Ü?å7ê?zmåç$@? <Ý”l? Æb¾¬®d? Â"5Ƥ? 4…Çȶ?uÃè_0Ž?­qoV?d F)G`Aq?Ú+˜.ÿÌ?r0½…æ?(÷ ú½?(±j/x?´Ÿ3æyL?¦¬Kªý?%º¿?=¥ ·é´?_ywÖF7?…Tᓲc?Ÿnº•Ÿq?©Õxpa‚?·Öj/¥Å?ïg™q)?vq!QÓ?dÈë$ð\?µ6§^£?B|«äqŒ?Î]מkÄ?:î>u?é 6?K1—WÆ:?o™›Aü?¬ja¡|ð?YQÝ?I¾?³I–nù?ÌTÅÎ?‡¹<ÕÚü?ž‘Y¿ïÀ?­µ.]?I|ð¸ã? d«œ•?#wahI?.&y¹!Â?¸ó‘ÒCg?þØ¡Â×”?Hð‡Je ?Ñé£í@Ò?¿­Ï%=?<¢ZMž?áXçpÒ°?àíÙ*w?ô!†Ôˆ?þ‚‘³-ü?÷ÊÉ3߈?äGÎ;ÊÐ?Æ3ãÀ}?•ܸt¢ž?B¯lCR\?¹`Jy ?Ö†6`—°? ¦º0Ål? ÿ ¿ï ’?1Ï=Ä?½°$»“?4L›u"?>Ø[R¦?®»ÕÃCF?õ½’z? _Ø¥0?BGª+?‰û] p9?2ÃÙœÎ?Þ3f?8t£èn?÷˜M®l?¬øÞT'!?ÄÙ<­‚ ?¨ÙT;Ú^?¦³G˜˜?»Â¥¼>³?qZ3ËÐ?!zž×KÀ`?"¼Ö§œDV?#V\ž| ?#oɾRa?#fW”»»?#€Ì@ÒK}?#ÃÙ‘+£Y?#ùÿ›;Þl?#î´E!¸?#ŸófCŠ?#:â4œG•?"êÛšl·ð?"¦%õµõ“?"+fÎ|ö?!0WS¨‹?F>»ŠZ?åÍ&?æºyl?1Ķ=ê‚?ˆ"°­¿8?rÿBVÞ?4ÆÛÜÓ>?{[Þ§+ò?õs¶35X?˜‡(FÛf>ù» ×Ê>î7x4oµ>à\X(Ö‡>ÏÆjO¦À>»ØGÈ>¥~ûűPõ>òŠÓªN¨>r«;ÌÛ9¥>TÔš_[kµ=ÍsÐeÔÀb?÷Â"ë€Ç? :5 /? 1Ôš†Ò? ‰d“Oý?!-Yòô?!ÕÅú¹Íy?"ýê€<Þ?#"ñ,c¤?#1&`q?"äÌ´ád@?"I¼Ž[8µ?! Θ ó? ÔÞ@æ? 4£°ñù?xu¤2áX?ò¿zÀê?ïÉkì1?bdcœ? èië5 ? -#~0Š?ÿ­~o¨ª?Å鬑óx?Ö*lðð?–]¨óþl?r%¹s‰?§%gÂÖb?5¿´b]â?öfÕà=?ÃÚIsZQ? Œ+¡`:?¹‘ž!T?LTøä 9?—¨Š1Õ?ZdÖ—s?¸À·Š’?tZWÐ?fÖ„±“?e‡²iì?7O ¡W?šÓãLºj?_XŽ?O!:N›Ä?׿¯ÞÍ?CÉ­5?š4î½Î?¤8àT’?&í”Lô?:=¥€UŒ?\’‚ÀD?pm-û0„?•t º?ì¤ìLŠ ?wLƒn? Df?eEÕçÒ?N¶OÖÒ?»‰»„P?Ê`F^ÏÝ?©ãBÍ–?z?Šqì²?GwŒ·?Ñø’Ÿ6?àè©+S1?Ë©£rà?òÍפ~.?r§aCèï?W„½·þC?—[ô³Ãˆ?âºh~?Œ€ƒÙ4?ÔŠOŒñ?Âk"DŸœ?Uœ–á’?¹uÜbš?4[óðQ:? üWx¤?h,¢S&k?Rb.äJ"?­0tÖAW?@•KP(^?ÜÞel–?ì%ĸQ•?þn¢D?riÂX½À?ÑÂOaµ«?ÍýèÀÕ?šx9x?bîÙÎù+–±8y‡>ðè*ó?‚>ämH§$öÏ>ÖK•ÒB>ÅwÁoÞÄ>²§}SqJ_>;»æcŠ>„6ÐÊÏ>i/ºÒIÛ>L@ltïÀ=²WØEXÕà?Ò|¿¬À?У‡Ó'Ô?ßÈ“Bbä? 'QNë? XóÂÝ? Ì?ŠøK?!T2Rä­?!È>/î.?"~ÎsÔî?!ê#"‚ƒR?!Ž!lx ð?!® F4A? n-$*Ǥ?­÷Òâ¿?œÜ[&tQ?Ã]3 Öˆ?4ó_ Ùˆ?èynáp¦?«6ì¾=?0ô…ˆ‹[?9]¼0Öe?¶ç|ö3?ÓÞ­cÀÖ?ä5 ¼“’?3ãøeÇÄ?çj?ðóXÞº?' LJ e?fazQïh?b)Ì«9P?e†´IîÖ?S$6TbU?†ñ× ?y‹„Gü?Ýl}h?Þ?¶IZ?„ÏìÇ:)?抨^Õ?ñÏŸ"h?ZG‚<à?ï]èÕTú?´Q¯² T?Û[[ØùÉ?¨2c0\t?QªÍGÅk?úç4ªÜ?ÅûNµ?䬡ê?¦ƒå3¾?ëü«“U?é'FÓìD?Pñù—ò?çbIm\?’¬iG9?^ùûw‡? 2¤ìñ ¤?!RðN/ T?"|ƒÙçgm?#Ž’kÀ>?$hõ^E¼¨?$öÅJ0¨?%.(·ëàý?% f[ƺ?$‚&5üy?#’ª“0õò?"?Õ¡¢Ù?  œM1Å?¾µz‡P[?`‚‡5ä?uV^ÑÚ?SÇzè¹v?ØUo~/Ý?ïëÝ RÖ?våΕ‹?Y¶wñ98?–eˆ¾`?1…¸ùìÎ?)<½ËÇÆ?pIÄ= Æ?ð½*Ç‹%?ŠÊ$ð‚?4x4 ?Lã ›Ê? i$ß(¨?(Ž…a3?¨{ñty^?ž+È:?(PÖø©R?l½Ç-?˜˜e.Å?ä´.“ˆ?Œ?çÕ?º{%{%F?y% ܯ?¶&ôƒç?\0 ?n•Uê]? ¬è²?Yò9?2?Dzš$ (?qà 2'ú? 'ù wº?!*Ù€0X°?!¡ÝV“?!›”)bÌ-?!CDÇ™AÎ? ÄKë7®? :²}N’é?k¼G‚è?ˆ79i0Ò?ìµÁ“æ0?³sI…"?â¶°fþf?nôæ (å?I‘ì„? 4xÏ0? ߥ+@Î!?!›ºSY†ô?"ZB»{?#|G·;³?#Óðg«?$°ºÜy4?%½z+ ³ã?&é×Ñw?'üXžIX?(¡m8?û€?(“Y öíÀ?'»ƒw¡v?&=î¤Òˆ?$f¸eþ?"‡œ2?÷? ÚJ€Îb?ø3‹!WÂ?à¸õñF?Z Í戴?Q]Éi6 ?±¯3íÈ?j¨‹âp#?lºXún?£6Ø£=t•? ;† æ–?¦{%`X`?ü|yæ:?‹¹˜î?©]".¬ö?Yp’ ?=¹ M®? ¢°‹ëÃ? ³’pmžJ?ÆÿÝ«Úh?S¯lžlh?R€»\DÔ?5'…7jÍ?[„û}Ï?²óÄd=?O +?ÁR]?Š0?zxËÔ^?U˯f7k?ð0BÕLÍ?%Ë›D’? Ÿið–ÁŒ?!æ 2±‘¦?#›‰åò?%¦åàG¹?'™aS‰J?(çÝ*éÑ?)>ÞáÒ³?(­J G?'…ˆ¢!3?&Å †÷0?$d™„ë/?"^{ÕUµv?̧R¤ ?/™Át½Z?Œ.íšh?Q&¹žÕÍ?¿ÞÀâd?u¯‹œ¦?µ$˜¨‹˜>ý‚k•Î$R>ùu >ô›-CÎwï>îMä­Ua>ä~] p>ØÀwTt ™>ÊÇÅ<Ë ®>ºh±oÂ@>¦—Ád!B>‘“DÒ¦.V>xxÕƒ‹d>^|*«`>@þQ[]=”r5e«]?ëØ†@!?ßõ-ü?Φ–T#?Ô6¥˜!þ?.mg?µ¢>×YÈ? S;~ŽuÉ? Ø“0;1?!B—ÄNÝ`?ÕñmÖ?ÙAƒSºm?¯·£êŠb?<4¥Ÿž?‰+M#6?Ĉ^ƒ±?*Êg‡[ ?éââá¯? —ƒ°7t?ö'W³Â(?ÝøQ4? J‰ù? ‘iÅ­¹“? E½‹Juf? ãÅPkOW?ÍZëó ?'@ÆDÿ?S!38Nº?þîßx‚?ÎsH¯iœ?p4g»×ß?‹:áTfd?Ò¯bR?#µ®j?“æ??iCvÚuD?íµ-*Û?S3ǺB?±3ÄZd?#`µ¥G~?ÝP¯WûB?'Š;3}?7Î/*G2?6?¿l.?¡ã“éP?Ÿôº×ë,?ò Œaá·?ó!ˆXíÒ?æbÏ*¼D?J|,¹2?ö‹OÙ|?ݰ\ÈÉ2? ¬¨‹ô¸?ï­=Ψ?Y·g~?&Þsæ?äVþõö²?! ÂÓû?!Áöf·3î?"(z £M?"Á#éUG?!ù¦ˆûÂ?!®ªíœºd?!Eæ¿5D? ÊêŸjìf? XZ™Ÿfð? î·Ñ?ÅTå܆×?áœ[¨9? .;Ô¹1S? ˜î“RH?!-ÞÂsÃÔ?!âVy—sÜ?®aÝ™ÔÑ?Ý“ ¿?²’n]^ò?o¦–5ã?UÕŸÄ?a‰GhXt?‹¨AAGu?Å„4`Øê?÷â—•.ð?«[dè?Ì…¢j š?4G×ÈÁ?*ò¼Ë®Ò?lƒêV½? ï^qp×?YäÿxSB?DbRoÏ?=âç r?  š/?tjËÕò‚?i‡ÙŠÆ?äcœ? ,ò× _Æ? µžm¥§í? Vó,,."? aú4s‚ª? wݹæû¾? FPà™Û ?M/òâ¦Ò?UŒM³Ã?‘)Ätª?na#>^?wïêoƒ²?—›\qKb?’àíü?õËí–ëN?!6&¹Ê}‘?#¡(§!?&{îÇ Îp?)(„ÍèD?*öš$VÖ?+Üb?*Ó] 4M½?)PGÞ µ?'PµÀ‡ ?$ø¾›7SË?"A¥JhËŽ?Z»õOÐ?Ø2»æc¹?«äóöl¹? «;-žQ?– ËŒ]>ùµˆ0YÞ>ô9P½Ôêï>ðß‚ FN>ìAÒÉþ`>æWœD|Þ>ࢮSÖ>Ö=üµ>7>ÊÙSuÿ)¡>½L¶í>¬00iþ >˜}¾…]9~>ƒ *“êt>j„$ÌüŠ>Pƒ²ª5€æ>2hJ~ÿO?ÊhÏfž¿?Ì0Š#?ÑÊ ²·?ê±Du?@î¶›^È?þI†=%?,8 OB? O)Íפ‹? ÿ(Î?!wä|e$¥?!šç´`©²?!`êè‘:–? Öü³bøð? µž pÒ?{„‰d°Þ?ÊÒ{6µ?5Æ·BȤ?· ™) ?3Aë,?Ž®Ïòzh?ÅИNs?óÝÆ1%?F´OõÆŸ?Ó¶ˆªÂø? æ<¶Ðn? ´¢±Ž‘? ™qu? ŠtIúˆ? EÑæ¼? Ñ¢¥ *? ø• ¼? 'ã±Æ?uœpþì^?+ÌVœÔ?Ân½oÔ?Àíu/ÍÆ?Ñà)Nx[?°¼#¤?œu<®Ï?±Žì©?Ão.@íS?“ä?ÃgW>T?I•0ùï?µ(í2F?Ž<-Âþ?F ]èsº?¬ee×_†?‘ßš¤j?Ik(rä?÷Ÿn‚¹M?‰¾wƒO!?ÏÇÓÔÌ?œ…Wwfâ?ʹG]¬Q?!P&P‚?"ÀÆR“-?$1”Ké=ý?%9ç?%ºÜµ8‘(?%±á l?%1B÷PT?$Z–¸ú3S?#IUryT?"úmeŒ? Á¤–EÇ|?ß#IB?jõÑFþæ?\°Õ&ä?ÔIÃÜú´?у†¬Æb?7w³§Ò8?áÌ•Gè?·¡Ÿ¿P?±pl¹?Ð)‚&z?{4BŠy?arÕé?µæk*¢:? ü^´]?n‘¨¨Ùf?çëÆ¿ô8?ršB7…ò?÷p¿ë#?W@Eü-é?v”cU¥N??­IÁ?¢­¤Õ$›?¢®ÝN (?_Ë¥°J¾?/Œt?*ö:N[v?Áå:×ÐØ?ì…~ä{8?ôôvµÝ?û-ƒz´?ñÞ`S:?d]t5ªY?‰ð„\Ú?É·z·?M=æ m?¬÷-ë?.»MJ?vUÔˆ¯Š?åÉo+ið?mlTV.?üÜþå–?ˆ*p”Û? ˜òyâ?ˆþC,Í?vÈ ?‘Çe<?,­“Ó|?Õ0õx @?¹†- ³ùÑ‚lïY>ðÖÿÑë–>çFb8M­>áúúŠÕ‹½>ÜœsII=ä>ÖL±"fRâ>ÐEŸ¹¥5½>Å¡T–}î3>º¢¾Ú'©>¬28QÛt>›`»ed¢ö>‡Êc¤å>r€Î™ Õ>YÁóÂom>@ Œ(!M>!á@èÎÑä?a3SHs?Šùd$r?Ú62Z#?XHü†$?%TFwg?hN­Î$5?*¦ïfÎ?  ïÊI?!Ù’0qz?!ßÏì¡@?"6‘Aô„?"Òï(ä?!„‹ë óÀ? ª?Àt86·?ö›Í›4?ySú?4 ú´¬?;#Y›)9?—w1Q¢å?§ë.þ8? ïqØ~? à^Âaß9? = Š8\B? Ëz¬ "? n›£Çß^? ?vðaU? Ž)}öFü? ÎÙ•‹o?iVè¹Å?EhåÔ!ƒ?´ÞÙ›t?(øÊÌF?PvŸ·9? óÆÿê?ôÕÌ_XB?Þ*â’ˆD?Ô–ë( ?òeØG?‘û*‘ê?ïóIàúl?¦a©ž†š?סcèØ?CAWõÿÌ?\AHÛ?ÕE*Š«?"[a3¤?†×-‚¼y?é~sa8?bîOîÇ?i^MÁ(ù?Ñœ¼‰Ý?!(õ¹X%a?"ÈÁ®¡Q?$‹–öÑ®?$ìc—s>Ð?%2ÜÑL´?$ñgQ7“¬?$CÝ>™¿„?#N‚!Ä?"0a„œH@?!Týõ}‹?®]KÚn?„át0’?¯øÈ‹ ?LõÓ/†?`AêÏéž?Öáû³ì~?¼q³&?tfIÉÆ?xžùOÌ?Ÿ:Òm]t?æûîžžî??HhÕ¨?‹1q7…?³ÃFæ¶?» @á?¼|ç?Ù^ו‚=?!WÑ3?ˆËôÑU;?6“EÁh?“W×W?Ù=a]?Ÿ‡C¢R÷?ŽÄ?>YûPÈÅ?ïÍë©s±?Ë«*»«?µ¾ã‰K?'Ø}Ì"P? ïä;ÝÓÜ?Oo ?š¶ÿpïN?æ3Ó>÷–?áTPví?ª€c^ù¢?f¹f„?ëElUˆ?'|U_{D?_}lßó»? +ÏU ? Ãô°±à? ´x WÊV?ØïÔ8´?Ãò L™?º(êt?¯‰¶eB?ÒOÜäZ?û÷ʺÙp?nÛ‹B€?¶%ÌU?"(Nsà϶?%’ílÍM?(Ý8ç>À?+;YŸVj§?,(¾DHð?+—œÊПg?)Ò¨v•Çr?'9íq (`?$ÜUPÊ? ”êU/?Ûà`vå?Ú_5ÄP’? ˆ ðBó%Ä; Hè>æbŒ^–>ÛIú=1kX>ÒZØàä`>ÊÒ¶ @Nr>Ä©`*>¼¨§'·>²ÕA Jci>¦²AH¼ð>˜Ëçã$>‡Ë–ÑpÚ>t­xÕÄ1Ç>`7/fO>Fc%õ*Ÿ:>+âÊÍFÚ1>•’Q?$·xUVÒ?Š«ÒqpX?N£gb¬o?qAœïBV?Âóu/"?v›È´?«½0°K? ›Š||?!Oy¿w]? >üåÙmc?i­JøD?ƒNÌ“>?½R±õÅ?ô@tÄ?Þ³ Ĩ?|§PàA?:{vkOÁ?š0Lªt­?VŒ¿\Üß?á"03þ? ¥37‡G? ÁWc(k@? µõª8Â? p &Œf? Ès?WD? =Ç`0Y0? ^ŒhˆjU?ÛÖPV? ÷ÙT¤Ù? *¯aª3?ˆqA…?pd…¬j?Õ¿”BO?®Î÷‡’?öŸå–AU?«âéÝCT?ÅÌÍŽž? ú>T&“? Ü£€˜’?!·È“òa?"«£ ß™;?#» ®PÐÅ?$ÑlÏ)Ø?%ºqE`?&0Çš¿â ?%ÿ«™¹½d?%®ëÊ¢?#¯+àØ$ù?!ú?Ô‚-ª? Hª€¥—k?³»gk°?°QÇÙǘ?¯*rNjU?ÚÄÛR?33†W?ü—Á†Ò?ƒ9з’?q»ÏRñ?®Z§®Ž?]{ë…?Õi‹Ãà ?Šn]Cã?îÙ‡Ñõ ?Hµà"½?Š8pû“„?D7?bó?Ì¢RkH?†%oz…?.|N?íŠ ü«û?:|œqõB?—»ÇÊ?\˜© ’û?ª}·•&Ï?p¾Oz?„aý¨bI?±¨‡†´¾?ÆAWðšË?–Õ…W~?I}žº? –é1¬?¨½ÀÛŠ?g9È’¥?Xæ«°‹? o:§ÿU¨? …¹(å;ì? ƒŠ™µÐÂ? ošH3? 45ÂEî? ¥6h ¶3? …Øà5qô?’ÑÔÖt?ÉEB{é?°eF'˜?}œ9ï[M?>:Ü–ò÷?ÿñŠŸ?ÛÈ?lù§?©t,PÆ?:f} r?V?– 2ð?݆í"ú?áqÑ ZÎ?˜#ã[?]åNsê÷?]WCBôê?µÞÈ›6£?d^P“å?Y¡¼R?‡–‹zsQ?ëÆÀÄ¿í?‚ðýèÅ?>-R0†?úL¾—¨?/¸ cm?•š­oCŽ? 56S&?:Í{?½®1èiz?škƒ? ÕXpìÇ? EzÿíR?Î2¨]é?- Ð÷—?ÝS´c?©F½Š?1³ÈnÔ?Kö°Iö£? D‰CQþ? L§:? ¯oñ 5"?ýÖoÆ?—f8¿k?Ä«ø¸_@?–)”>Á÷?ÁÕu[ç?[¡—Ô?ëõŸªŠâ?Rh é ×?bÛ]»‹? ³ÉÍ /?#ç¨25ó•?'#© ´Ia?)¡÷qU?*ÎNÓ‰Z?*{ò­>¦1?(Ô-‚‹7 ?&*«ãÂä?"×MOSþùr·Ü£ÿÛ>ì„ U3þ#>ÞmÕ銗>Ð7ñÛœjŠ>ªalóêþ>·îÿVpQ¤>°†лóœ>¦×ß¼ƒ2>]=­ìX’>‘«Úø4Ã>ƒ¦ÑäýÈ>r¿º‚ä_>`7/fO>Iªß÷†$>1i¢ã2DŸ>°}>ih?=ø,ï3÷ÈR?âÛÍìÏ?”šrŽ)¯?ì¶½¼}?àçvÖ³?l&çI¥Æ?ƒvŒcS?úö€Y´? ¼Gßu›?"@¥¢©S?#L…~ïæw?#ºÛ nÓ?#‡‚NàQw?"Ñe¿—“?!Îs~ÚÈ? ¸XyU`?q÷n#9?¼ÀæJk¸?8Ô»Ö?³¸Ø2.h? ѹ¯Ò¼?H&vå"?†.ÍdÆ?ó€{nãŽ?«£ßS.j?¯\'ý2¾?ê@yqv?Deñ¬y2?\Y‰dÃ?NSÌv£ì? ƒé[”œ? Gÿ·ž?u0+:? \‹Rž?Ü ½ÀÇÊ?Y—”‡ù?;Cd;ú3?;´i$?}1|8?+b„ØeT?8…'Œ?yÒfÁù? \D­“?Á W/§?ËÊ‹óG¯?k#øÿÚ?B´½.¤?6®²’?œ ]Vk.?/âVQ®?h6ª#"O?öèAgªÔ?×`2§?¬?ÇuUÞ»?Z@•¦Óp? h~F½&?·‘KÜØ? èá·š?!›ÃÌT6?!íEcˆ?!ä ÜÞJý?!•$+)Æœ?!åñ½¨u? }Ù¢#É›?£.§ Y­?7 ÐÃJ?јsŽÖ¦?––×þÍÏ?¦G`°—? [üG2G?¼SƒH?Ÿ†q¢äô?¦´˜>æ¡?Öfƒ/Â??îÂÅg?ëèÀûØT?ÊÎ =<­?¯LÁ<å?_5»—[?°Êû‡³?¢±öQt?\Õ =)¹?þ|Ê,?œHÀ­?Ô·ÞIJ?L‡€”ýÇ?aÄvÈ?2¢=h®?²1:˜<»?úÖ®˜X?L4Sÿ?ò´ž]›ì?!­…Ð?p?Ò纴 Ë?Á¡Z·9W?ˆÑ+–+i?Ñ£úÛv§?}Í Ð¶?²‚!Š˜?ÈWñ7 [?%jØ$Ð?¨ÜˆþŒ?²<„G:Ä?ëùŠ/?“£×›ê? 6¢Î^À¥?!A-ÝÙ?!ÖOî'?" yú\>?!Ú¬¿nJ?!1G2Ã5? :Å0ò÷º?fãK<Ë?ŸŽ"~œ?T0:Þ¿?ŠâXSÈ’?29² ¹Ù?B( Ï¿­?½¬%ˆY ?¥8·]§Ê?ç1G:¨?kA·ñ? ”DT±–?! B“N7,?"*f‰€LÐ?#]ëÞ¶?$uµY rv?%1Ë8V7?%U¥>¨ÊÄ?$Î¥o é=?#´êü>Ȭ?"A„H•ã? ¸à„–Ž©?µü²#B|?²×[U˜·?žPÎöo?q—g`ü¹?æR 1À?…) l©¦?ÑrÒcH?wŒ’Àaš?i2zF?Ú¸®ÚÀ?.|hëø?Õ%xñA?1̹¯xT?và;±aÐ?оÍÞy?£ö°UD?A¾:uªÐ?ÄòÇá©ó?Wêß^,˜?+!šðœj?±³#£)?e½H¡?—ËË–Çr?_q¥³M8?¤Ñ£a?3p,°è?ÌnÝ_–?2IWB³?0~3-ã?¢_n Ì?{ÝÂ]ì?Ðý]sdZ?ÕWÖô+?¤'i•Þ? "D£3ƒ?? –püX†?=[Ö£››?Õ`Ë2? úXÝá…? ÕòªP×o? „ø›‚[?qð֤?Õ]Ÿ°À?ÎM[´’?«jHÝl?†V:iÖÍ?zW‡‘)(?Šg_q+??“ÛEåz?EAfs:?`8m—P¬?¿MmÂ*:?|àŸTü?äê?S»º?T ê Ô$?Íö®ý?9Y’–hï?‘2ÏT?TFé-fz?(Ù óïsšûöæ>å8jS,¢þ>Õ۷Иš>Äùô„=¿>³¶-À€>¥4ü)ÿ(Œ>™´,"Äæf>«Øðb¤>„ð°8Þ>x¡è()µ >j†{X͈B>YªÃe‹>Fc%õ*Ÿ:>1i¢ã2DŸ>=9—f=þ1 0†Oœ=àÓ|ˆ§úu? çֹ̭7? ¹\Vb?†žíüDØ?l¬ü_k? ÚiÄú8?4Ö ± \?ˆ·þ̲?!Æk 5‰?#[–ÏO ¶?$Lô‘–û\?$ƒŠÎp?$_éÙä?#%oÓA‡?"{VÜBö? ïAáLã? bŠrq³?¾]å¡n*?±/´ïK?« O1"?yÛH€·?Tó%!?”¹1?(÷dGºº?í½€®ŠÏ?æi° V?Ä ²?(ձ݄‚?R†S5B”?ƒY ^‰'?Ò küîV?f±T»Þ?sS•4#?)¸åê? ™ayÞ?ÁW´Ò†?Fn¾Z2Ë?ÎXòŽ 2?þÉ+JÔÂ?¥°+žæª?Ê<jrd?¡©Ä{H¬? 4€‡„TC? ˜Ú©{iI? áRÿžjF? Õ£2RpÐ? Be]Pf%??1'Áî?CWFÁð/?Q„bú»ú?/ +‡DÙ?TôóC§ù?ÌÔ3ð°?E„œ /?DŸ™­Õ?T±aZ:>?±ò• P?k<_u¼?*ìGÒ,?j‹Ô/A?N‹l¼Ù@?ñé¦ì‚?«~a)¢?DTHŸ˜T?¾Y !¬? Vô;=Þ?.þP5bº?OظZ”?“gYQ-g?ÝÕì·}?˲”ø[?·õ–œu(?Òü“+¡“?(@¢Uei?È,É‚ØC?´Ïæ L?Ô°ý‘Åk?òòý®Q?Ítä3¦?:jpþ°‰?5)ÕêE?äŠïIî«?„»ÀÓΩ?FA¶?4ÈÌÇd¦?5»;á?E‰-¤Ð?¸þí›+Î?”JµÎÞ?lŽožÆ? ûˆGÕ?(®òj³«?÷Ž\A‘º??Ó"–þh?˜Q[Pï? EÄþ¹=9? dDôŒu? ëÔ¢h?%í@‹Ö?ئôËÍÀ?ÀFX) d?- (‹ ?E¥Õoz?è‘~X|??úÔZ…r?$–1â²?©¿t!V?z-yj;˜?¨!:ÍÈ?iî)¬(?¡ Ø(? ÷fÈ? ß½šðkb? 4Ü¿rÁP? `±ëŒ? Ÿ6eõ2? Ô.4¬?”óYú˜Ø?„Mª^ ?•œí%D?p„diJF?-‘‡$ï?ø=Õ® ~?÷eÔq|?+Ûc¿Ø”?`{ä•?95 `Å?]Ð>`c;?¦©­j¥?0HÐÃÎ*?R }Áš?s_ÅHƒ6?ä¬ÁnàŽ?–ìÃ>Û?MŽˆJr? Ç,×6¬? ä‚ßc\?Ÿ<Äë«?ýìfÐ?ølºÕð2?èˆ6ÞV?6qf'?—Ø?Lî¼K“?åP9*ß?f‹>£¯?}š¨ø ´?Nt±7À?ˆ" ∖?T×zÀ`™? ë@[ÆÀX? ç¯ï>ÙK? Gó.éç? ù93ѪÌ? ø(ËKB? vÃÝí_À? ØÓÓ`?=p‹[³?0t†ù?¢f‡”?¯ËPâ¨?;!Œº@?×to‹ä?Ÿ 9-¦?£A½ã?&¥ZÙZˆ?’Ù¿Ý?Úx˜†“? êóHÌà?#×ÅŠÊ=%?&ŒkNöC²?(WNÝ·‘Ø?(³ %qÐ`?'n¤hû´?$¶0ªdÃ4?!1e·š ?òW½—nÄ?LêíÊU?ÓÇKž˜V>ü # €á>ïvIî‚O6>ßÔí|$³Õ>ͺküÅ—>¹ï–èjØ>¦1UËô>“™Ÿ7V3>ƒx×Pò΂>v·¶TYr>iœÛ¹­ýÃ>^¸ûŸ¸ùW>Pƒ²ª5€æ>@ Œ(!L>+âÊÍFÚ1>°}>ih>=þ1 0†O›=âͲÁb=ÄõuïMNØ?ÒÎùGp? ½‰WG,?WýÕãå?›ÂÙT?`/r8º¾?çŽþƒ?!O\õÀå?#uª­çXã?$ðª¾oß?%“àhå5ü?%_Q g ?$€4‚‘0?#@×ËfÍÎ?!òi˜p5? ÖÒ("Ø? ‹¼Æí§?BôÿŒ^j?Ξ,wè®?nVÑíÖ?ÛÇ4ÿñ?üÚõ)»ü?æ5ûÝ\æ?Á–²´ˆÌ?¯`¯ah,?¶Cì˜`?Å·Â*´î?Êî"Á;(?¼à¾zG?¤á…‰0?Ø„ruj?ÑÄC#bû?uŠù¢?¹‹©Â7?´!N‘Ê”?Sö{È–þ?]{»[J?€ÔÍÆcF?yÿŸ1Þ9?)„ õòª?›G„×(í?ôv¬Šž? §ÊxèËß?!Jr·¥?!¶±S?!­Nƒxo?!·âC?uÐPG%?+ë¦I-Ò?õƒÀØÖÓ?—WµÈ?~]ÞÕ•T?¢q€ =?¡ñî$$?ú­…D¸1?>ÛNlÀ?-Æø)?´®}<0Ú?ã˜ÇY³á?â(KÁF?ã&ïx2?DûCF7?tuþ eþ?ñ25Ô5Þ?MéØ5B¶?Xg­1*ê?Ë  d?myI¨>I?ÊF $?Hr_€?üm~ž«?üBž+w?<ù;,Ql?ÉG„OûT?¤[·UA??Â@óžö?·@¼?*’¬ ? ;.´? 6·¯kêX? .?É!Ââ?÷r|ê#2?xIåÔN¢?1ç®b? Ó8ô%Ñ? SùÇ7?´*é–sq?Ò‹J w?”™üî?;?ðê^ˆü˜?º &…?°ûÔ ó²? E„ñ·Û©? ,g@(? d­Ç]úf?ÉË´² ?TªÆâ?ø\vW÷?䥊b2ì?6èâ{Ê?æŸKïŒ?€ž`½Z®?KÄ–Ä?b±Þ° ?À€ÎvL?h%´Í?SÑ.6¹Y?{áï'§\?çç Á+>?¶ Ù°¦ ?=¢xº™? ߨl\Y?"J|\O¶U?#{è&w"Á?$1ÿDª Ø?$IwƒM¢À?#È9±%dy?"Ó…¤_?!Ÿ—qøLI? d" 0S®?¨7haf?*Ýæj?hïdKHÒ?B ÓÏœr?_–«?Á?ü6¼õÈ£?)‚q^? Ûà‹},?Û#E¿†Ü?ØÙúȘ?4ª³¤? Í£Â=?[ÍTª?ø±&‰~°?•öVQå?åãg`97?ÂU°0Æ?=´ ƒe?™DUY ? –NÑc ? SJ75˜?pûPè??uS Æì?KÞ%ªìô?Y¾Õg\Æ?'{äi8?xÔ¸½Kó?² fAl?¡þL~?5”~¹Â[?àmó!?Z%;$¡Ì?*KuŽ7?}~(‡/? }$¿2'a? (vbÙ0)? D´ú@ñ?W¯[ס?ã$«8}?ÿbý\4P?Ò›žŽ^?YˆCDÚY?¾F)W@Y?CfÞÛªU?*¡J`9?Ta[e©º?£f:¬»?ŸÀ] ›?â …+Â]?7ÂÚÒ(?¹W‰šÀ?º‡»©œô?¤Ûv†lD?Ï $c°?Ò6]6? û½([»? šBD×? ãÂPM~K? ŒÝ´–’? ¥MåÒ?&ÿ¼JáÍ?Ц³<º?òfˆL ?°pê?»0%±£~?ϺÛÒ¨?g—ùlÀÝ?­EÔËh8?˰´&þú?ã¹q–©? wØ$BR?Zåuúâ?µ¢¼{»?„„.T¾?»¡ò)?¥î\Õ’? ©Xib"?3#ƒò?ŽØÊ}ÐŒ?œë ¢N ?I&ó€Ø?døŒ?L[~CT?¤%vP?RB•Lx`?‘ŽG?,r‹Åù?õ‹nóû?|$­3Ê? eò$Š–¶?#& 20™ ?%çæ8€~[?'í¯å›m?(ŒÒYÉŸˆ?'k60hKá?$¤!‰éNH? ¾tÐß v?ñp»WYœ?èCASÉ?QEqÔT“>ømΛ9MÔ>é ïOF5½>ØœæÒÔ‹Å>Ų´Âyã>±õý‹IÊ>›ÎþTc>ƒÕÒm‹<>mõ¸êð#ä>]ø<Ðû?¯>L²°­>A)¹X/k>2hJ~ÿO>!á@èÎÑä>•’R=ø,ï3÷ÈQ=àÓ|ˆ§úu=ÄõuïMNØ=§\wÎݱ?°.û²'? ƒS™R6y?eC»ñ*?htå ?JÌeš†ª? ´qAPW¶?'ááŽÀd?&KÅ;ˆ“?$ß¿|ùè©?#3´9yþp?!¦¬‹ïÈ? |½Î›E?¦sþ`ja?>%ìJ·õ?l1*¯›?ž>ÇÂó?åœC¬6?©^‰Ïü?ºnü¨ ?W5yY4î?‰p^ŸÑ?·5¶Á\–?ÒK6$j‹?È;ÿ(çH?‘¶€²9ñ?:_CG”‚?ß2w^ˆ´?«ÅõVÖ?Òâ¼6?†ÁBQÞ?â/^‡z˜?ÜUc"ÛÈ?L:=½Ì?úlsmAâ?ºðb±í?{õÎ]??UñØ? Û°<—£? êæ/¦Hû?!¬ö+ ?"]nì7?!î݇qi€?!&’3<?`n!?ò‘šŽDÉ?º¡V§®K?jï!H„?T°¯©Œ’?U0j ‡û?ù†ëø™C?½Zã7»E?BÏŒ-Û%?gàÃ\™[?>­H2?÷•n @©?ÎA@1wv?û:Hì–? æ”78­?·ôLgNX?XÌ1ù?2#œÍõ ?é6?¼G~? .fGÎ?­SàP¡ö?Aüêƒþ?˜ ¶J?^]Pq?…ûç=5? æ²Jx?ê Ç\at?«@E"Ž?CZ<Ø÷?yØ«õpØ? >ÿŽ0_7? ”E•Fy? °™å¨äÿ? ”Í)s¥+? PÁtf?üÖúô³¤?k”o:÷?‡…$?¤kàØh?/º‘@Oœ?Œ9ÙñúÎ?Ýüà:y€?„Ht{að?ðò?ZÛ„d$? O¼°ÞÕ?!˜eó:¼?"­eÂðÝ?#Fˆ-?#H%ùùó½?"ÇäãåXÏ?!÷v½Ÿ?!ÂJß)&? OQÐ;ê?£».ÎBð?L©tE;¯?ÎSk~?üÎÞH«Ä? : ¤šèR? Nw&¿Ìõ? ݳŽÃ!?ElïÓèj?ª ¤C¾Š?S“`›8?o^F=üú?5_oŒ¯?z{ÎN?TáÀDVã?([ Yý?.¹#ª?~²?Tµ?õl>Șù?Dú›!?IÏ~øõ?+Àbú?Pøàñ?ï¨ù[mÍ?2ïqÂh? ˜ÉÚ$Y?!&¤ nY?"êñ«M,æ?#ÑÕÅè+?$÷Ê¢?#Ê_c̦’?"üx:Zk?!à#8Ä>·? §úN«2°? 3Ù”«?Bž +é?&œ32Õ?¯ÓF…þò?¦7ˆd>M?¼^5̬0?³ÙU$Y¦?qʲüL?ú8JP?_ñèÒË¢ž?RMšB‘?.rºe¦ð? e>‡“óÔ?"àk5ä?%ƒæìêØ‚?'Ö±CE?(Hc ƒ9M?'6žÿÏø˜?$hU&k“ü? hÕ/‰¤N?êÚj?-ª¹¨@?€{ôXWÓ>õ‹ë ÃpŒ>媕W3M>ÓÔb`ÔÇc>À‹‚¶L›v>©X:i5{>‘k>Yv!ì>tr5!ˆj±>PôíÆƒÑ >31²Ÿõ‘N=Ýa³©º-=À_jŒ?ªØ08? axž?!_H«ä?#Ñ u¡4? Á—¶¢?"í/©º¸?%âAH^O?'ò'íÄèc?(ÓCÉðþ‚?(xf£‰Ò`?'ÕåAfJ?%*'GÙ5?#¤‹œ?!42Q%H¥?ñìœTD?ÊÚ B‡÷?ÍbD¬þ?’ž!t®? LSÞ&? ¹VË ? ñiE•§Ø? òÓÄÐ’­? Í5r”¢? S(*3é? A:¹…n¨?´µa(Þ?¨3A©¥?X6 ‹˜?Ñ Lpè?-Ô"‰$?•Y²züð?8a3Ú€¿?FÔšP?ãaŸ¢¢•?ƒæE‹ ?Ñá["ƒU?ûøëy’?ød“”Ò?P5@,6‹?]yX.?†^”ÊH? żéÛ?!†¥ú'{l?!ÏþÜß?!w×Iߟ? w7Ù‡ø!?ïSÜgÚ?—7è-£Æ?¨X®4NŠ?´kÄ“Wä?æß‘wƒ£?þF ÈT?w`£÷’?Ï5í8¦?ºé¹@Šv?8ZÓ1žã?}ÓÐ"?Ö\t¬Ä?Žô·N„?à–ÎüA†?ä~²c7‚?ƒÙX(º©?p—]‚ &?9ë27?s’Â6Š?ídïËÎ?¾†…gýÖ?; †Iš?È„$Åòì?¶#~)!?(»Ú2?&¾]ß?Zô×’x?¾¬ñ[Œ? ÚPlÛ? Üêc”? íÖ“Ø&?!Kôžä?!ËœöÆ? ÛOÑu,? ƒÉ¹!? RÑœl?…–¶fºE?îzÜW˜ ?hOr"?Ò+˜9 ¢?"еœ ?QEâ?†Lí ™?|¥XyÛ"?˜X}Øë?!M´µs?O?"Þ€ª‹&©?$•”ÛH?$ªÙèf ž?$Š52w?#ÚJj¥"?"Þ_”ƒùÞ?!Ýú¨À¡°?!rôÝÙ?  †-®¾F? ˆóÊ^s? °ï[x °? æ±Jê? ôY¹+? ²™rˆfS? È »C„?®š}?t³— ’?hŸÌb_?"´ÃY;ñ?Ë~?ò?ÿ™å¤š?1B…H?â£S+MB?©åJÞC`?&ØÈÔ?"@n°?ª wfµø?äH½eh?ŸÄ>­o‚?Èâe +?–¯±ñP?Î2án?þéyü?°À”.ê?–3›Èm?¡"ÕÚÝ?üºbë•D?õbT¹ .?ÜÂó? ðd¤é7? ñçM5Þ?üm6D¼?:óåŽ#?ÐË5O{G? Ô6‡üü?0ï’z –?CÕ:ÔÍ?‘ì—ó±Ì?“+ âx?ç`Dê¥ ?b—ôŸÐ¨?¡ÁÝûä?Gž£â¦0?@ðÊÑ·è?D¬CŒ?xg`ÎÒJ?æàÛƒb¥?3Þ|X ?)1ì,î?Ä?…•9?W7]°¤”?Ö¥cc?jÉ]$I1? þý¼?Ï!=`l–?¨ÉËÖƒ?’ÎÚS~ë?ã`àuÜ?'™y7;?R7ly«·?½¬‡\Šÿ?Äý›¹Ø?°PL?=Cè—˜? ‚è¼|pV?"O@;Ãr?$Ó‰×óà?&žáñƒ£ž?'6 §Áå»?&©uÝÈ?#_ë‚i~?öƒS‡8?{O(âO ? —þºVî¤?¢çñÞ0Ö>ó';¡Ô§>â–Hû à>ÐodÇ;´>º]¹hà¤>£-¾…vî>‰cé ÞU>k”×õÝ$Ø>@I— ™­>"¤˜Ò-!=À_jŒ=¢@Õ &:?H'¼d¾ ? °d¹&š?åâÏVÃ?£Ùåc#?!×ÿ£[?$¹6—“†?'¶{®ìa?)™ÜDI€?*!Mw Ñ:?)O”G_6¦?'q“E—?%¶á?"›ˆç8? ¢zQÖ¡?¾[Vœ”Ž?Ã_±’‚ž?ŽzŠ?_„ì? }Ì÷vz"?!<þ‘",Ô?!Çw¦Ê?""Ö~Yf?"'{°´€?"ƒ#ñnï?!Û½8#ï?!~–Ì£h? ÷ {~£? G7×íh?èò%¼J+?Æ÷èÏ®?$®/ZÙ‚?Hš®Ç{?«:˜ý5=?yiaWîZ?Óµ¼ËÆ?ÍV¦4Ñ ?mÓs à?´YØ¢;v?5¶€Ò?ÖQ‰Åb?9?38¸? 'ÏÇà±&? ÒŠ»1¨Ù? ìÕœÆÿü? `XCÁÑ/?|°àK?‚ãôƒ$?~¾èèòš?Wôó2?¿ˆ¶|?pð†_V?Ϥ[äl'?KZ6Ã?e <æD?ägà±pä?ãÌÍmÉ?¶øPß³'?ˆØKÙ?\&BcG?»³(L®?ðå&Bø?Ùì/²?à“Âð‚?9•Ç.?¾0ÂÈò?nIu..?_ùƒ¤RM?ñÂE=¹X? ½œ¾Ä§?¡ßZh?SðÛu4K?²¦ÊdÅå?iP°0”C? û© C? tè0‰Ì›?!릠\?#Ÿ©Rü?$Ñ,]nÿF?% ¼Èé]´?#Ýcì;?!C¼,€Þª?g•‚t„?Á­ÕB+Ý? É<22$\>þh0åÁæš>ð. …_sõ>ß®eC®ç>Êæé´Ò.n>µzC ?h>®_ñ†ú>‚õ—«)CI>cd|Õa¸>*Ø5øRSF> ëíKßµx? m¹‹Ôt?ºZµhád?® Äš?³ßìïºô?!¶‰Ë©ÙÊ?%\ë)¹7?(A8oª¨?)󔢪?*9ÝÖqW?)#…yÆl8?' ïÑã¢?$sìMå?Ë?!ô€¶nâŠ?÷à_Âè@?QXœ–Ï?ÈØD§ƒ?giñ­?üU[˜÷ ? žv?ó`c²*g?$zHQ0?Ñ™T‘ ?·UÆ(â? Óëv¶??fgĈì?ïÑû VL?>A¦ÆŠ?|µILÄÇ?L%ü?E–F4?|·ìlOw?Jµå/h? yz¼aí³?!û%ËÔ::?"þK:Û²û?#^³«Úð§?#"zN À€?"g±ƒ$·?!Qׯ& ˜ˆ„? >ï"¿ $?úF<Û‡y?Jfý~%…?Ä,þ'g@?”«Çi?µnwù€†?‚ëF¡?V@ Òõ#?ª™//Ö‚? T”iï? Q*½]ü? ¶ã(aÃD?!5 ;Ÿ£v?!¼íùÊŸK?"<”£Û-?"¡¹¢@^/?"à#BWïc?"éÙÚ?"®ÝÂó \?"©'ûQ?!0–I’Øú?â„X´”? x*ç£Á?Té£þ?$úì]?Á/œ­$?$R dû}? m¶…?B†(³?äýÓ÷?C\ -È?7xÈ5¤÷?jÛ˜\ø?þ†ô%Kf?Чn³p?ÏAHŽþZ?³5-ç¥,?ãï B56?õõÄÍy›?Š­HMÎü?i3<?‡UÜ‘4°?4mñ0?Ü6²LŽ?5Zšv¯? ŸÙ8Ð?ÜmöRý?Ù."´r?ƒ>À<+? @d#'æ? á®P÷î?²`™ƒ?*–¸s¤?Gyî–et?o²‚·ç÷?Q‰qý?û,®K5?Ïpé"àí?MëXTž€?à÷Ö„C?µúç‘n¥?Ũ¤þr¾?Þ ’>B­?ËÍ•„†ÿ?{ç•fÉ?"ì?>?ôÞ]5‘?\x]2/¾?› ‹ ±Î?Ù„G á?øPapˆ?¦xlŠ]2?ÊFF š?ï̉­•k?é+Ì&Ê?ì¨! k?x#­õ¥Å?º0Eû?Y ‰#? .‹ž2œÁ?!+°BÀ?!âjQX¦?"d£ºGÃ%?"+õ¼úx? º#¤B* ?£¦ZtG›?{Jÿß:?òKF_?Ò¸½³¬•>øa´ˆ¶/¯>éÀ¡ÌÑ >ØG>åŒÞ>ÄúdW®JZ>°%Cö>–qk÷r×>|…¨7>[æj½Ýü>á%àPs=÷EÒ¾(øâ?à&>Xµ? h³pøº?Õè˜Xç‹?”â¥zu? ù,#…?$k'„5D?'ß*,?(¥Üî×ÁÔ?(Øs*žG?'È)i¿p?%ÌD¥Ué?#g……³³?! K!öަ?ºÿËëW‚?ªO)#¿?d{mù?â³›ùðœ?™6fI e? h9I'EP?!ŒÉe½ê?"Œ©h´Áa?#J¸ÌV.Í?#¹BÓ”2?#ÖV¤¼¡?#¨E¤»,?#;W»yŠ?"žÄí窀?!ßh”ðç¼?!pRS? $yò ð?Ä•âý?7ß≶?ˆ¾ö\pî?úFÛhæƒ?ã°ªÈ ?íÄÄ|?k~,'?`q0YWÌ?TeÀ$ƒ„?Ü`ÎOf?ae#¯ò¾?F—ò]!ž?g£H ?£‰àÒ r?îº\=ç?Ù<ÈÄ¡a?ˆzæ¼³?¹È·˜Ÿ?Ò«Œ?£?ìG)¤žx?à €8g˜?Ѻx¬ f?ƒd_7|É?n‹+yö?~×à=?÷i–|aÚ?M÷ïgb?ú‚6X?R⚤2Æ?aíM?|šA±¥¶?Wàzë?^Õ~‡?îqÞZ¯ÿ?O MS?ÿÙ8ä?¼xMJ–?Ö¹u"Á?ÊÓ‹£?Ul>(x?¥ü¤Á…? Ë¬€ëo?è ÿ? 4Ð<¯ž?!D¶V'$?!§mÝuSb?!² #L™{?!hŽÙÔu?!3x£ÜÊ? ÙlüÉt? vç"uêX? y?²3? £"‘œC?%Wõà? ÖÅØ©?¯=wŸ|?<'[Uº?ˆƒÕ‡y?JÎ;‚]?Žm­Å8U?!"üÑpmd?#J …ž®®?%7Øj˜tP?&q>à±Ì?&µ3dùÇ?& ™ \?$Ô¹ø,§î?#j'E/?"9»P+Ìj?!?6—?!‰&Àót?"±üý:ô?"ÑŒÛ9‡?#c•s¹?#^HÇï=â?"‹(h¼ I? ø¤††¿®?߇;,Ö`?©¦„Õs?1¤&·‹?c~{UJÏ?äDP`ž?e6Ô0w?¢28r©ý?Q“ü7 ï?4èñrÄ?LgN)¿?äKô]Â?nz˜•?º‹•§2–?õkÕP­?}f9á?ÀQík÷å?ú0ŠS?½¾H=A? $û¦²C?!ñ2_A?"t.}‡`Ç?"¼5v°ã"?"su€m|?!¸“óèµ|? ¬1zÔ2?ÖŒ"§—Æ?0}òBd?Â!Å(?ñxëm¦?ww„c6?FeÕò?è?{¦Rß¾Ã?m~>ü ,?¹_Êüjâ?ò}|Ì^? [öãˆR¡? åH;¨¶¯?!d|/)Œ? ò‹H×9? ¯ô±®Ò+? k)dZ? 7Qì? ûä±Q­? ­ÚÒ„? 꿇ŽÛ? !E•²çè? _7²©ä? Éi’ð!?!X ­ñ‚Ò?!ôÚÝO/8?"„ 濺?"ðC,¤ k?#0µ,eô?#F"K w?#1˜Œà?"ìÖðP?"f=þ™ò?!tE~öí? m8iðé?-œ|J´î?|u_÷H?.Y²zd ?‡…‚7?‘Wa%œ$?À`Ý?ßHt½ú®?ˆsšúo?å¹ÑDæ?ï©G?ÎKTß1?Í÷šƒ?<îk#Ùp?Pý³–4?$4CPP?{G…4ª?.CkÃe?æfÛßÜ?ý1ÇÒX?YýOÃ+? Ýåc—?Eß÷N?¢6Œ¦`X? }çZ?MÌ~ãx?æ˜L?È ÜTÝ? ÈË…ú+? `ZŸ°?¡**Ðlé?˜7i4‚Î?9 L·?Ò€M”C?ýþ?–1`žA?:P܈úÔ?Ëÿÿ5†~?=•)À?%Q²‹â?'ܯtc? 0ª IÄÝ? þù•ë E? ˆˆ”Žr«?÷Tü',â??^æ]K?´Hè?BÿÑk?ª400ŒÅ?ó£ÌÞ¤?Pìµß ?2Š$’$? £kò_O?-¢øC¨?P}¤? ƒ·? -þÁ—Ë?Ä–Æß=g?ò‚…E?´ÄÔiD&?=‘ì›Ô?Ž·°b?ææ>>þèÜK©^>ñôÆ´çÚ>â× atÉÿ>ÑÑúõD½>¾Q$Oº’>§È{>ÞD.š#>sÀ{z±«>SjÛjž¾à=ýk¸ik=à2¢.Ú»?ÃÇ K<°? ¤ŸpÉ?X¶— d?]èRßäb?ýÇà4?Zï]N¬8?bXu:?¿öÿOµª?ûTmYŽ‘? Ò¸•³e?!Aàÿ6 ?!PG´.š?!nf<ØÔ? Éíè¢i/? omo̸? kÁvf>?Q­n‚¢^?\Y-ü•??4·«0z? ¨™-÷z?ã—ÕÖw?»Kÿó6?ãŸi¸?HA?§Õ?ìLÞ± ? ßëÔ±8?#'"_3?$Þ4êɺ?%ÿph&y|?&/›¸Rºl?%‚ºEùÒÞ?$H‹¹³¤?"ëß«ÒY€?!ÓV·xI?!Gí6Ëý?!dÿ¢[OD?" ššQŽ·?"æÅÄ€$Ì?#ƒh¤…|U?#yákцŸ?"–ßóŒüÏ? ï+Ä\¸?¥áH5Ä?WÊ -6ˆ?¬¦X§¶F?úÃÐMý?•‡÷Xäó?*Ùà?5£þnh?Ãã½#é?„—:„Õ?UÎ-Aº¨?ö‚ävn?¤» ^:¬?þò6/²?K@Z*QN?ãúET,?.ÿͺÏ5?_LWßí?C /²l¸?M’ãºÖ? è¯U?!§}(‡?!Ó®Àw÷P?!€N@z¦? Í’+ÔŒ8?¬T˜$H›?`‹™i?ñaƼ“U?¶ÊßôÙz?Zn®:?p}Pê2?á`7O\?QÿíùXƒ?uC±§?á#(éè.?,.‚æš? ‚+M䎣?!Õ^7?!l™DåÉN?!z ¡X0?![e]ê¡N?! ¶Ùl›? ÓªŸxûg? |PͲ9>? (¼õo‡k?àDj±?Û‹ŠL,¨? 5C¹­þM? Ä„¤÷¬Ô?!É"bŸ?"9ª,Îð?"ÆÁÀÔ?# M~ÇÊr?#_ŜҾ?"à ”º~ë?"–z?"7:m>ˆ?!¸›ì2‡L?!-¿Ýá? LÉ7>œ?õŒœa]Ü?› ¬º?v*t±Yî?ƾ¶&"Û?¤>ÜH?ü‹Ýå›?¡°«”~µ?[AÚ)]D?ö„Äô?U´Ô­2±?‚zgºè4?¬®GÛùR?žð¢Û?ù2ûZÏ?ƒ.±©ð?b'END?Q—B³3?ö¬¬>v? +Q'²È?t‰8!Œ*?;WFÒ ?Vlâó?\'у0ê? ×h=›,÷? *nMn8+?ëÔà&„?¥b®ƒ‘[? ½öÎuíÕ?¦¯yw·É?ph1l¹î?³Ã¿º7ß?¯2O…æÊ?¢åäɹ ? ‹c0Á£? J^îg?ÅãÁ?ï„ÊZ*B?úR²~Ñ*?>ÔŠ)?LTxä´?PùR¹÷x? 釆Î?z¦°Á ? ü„)žŒh? 3ÛT â?g¡IK^?? ZãC³B? œ³1H?î½ Û¢L?€™¤æ“?ËÅ|9 Ž?I¨ñ­q?Ò«ø´Õ?™e£I q?ÿfüGÙ×?UÛšJ™?²Zh"\?棢=)?žù¼ý?ˆÕ¶ÉÆQ?|)h±o$?{†›hÚš?µtÌô…A?}aU~?|Bû«¤Ò?Í•}@ä>õ$çëuø>è=ð“>Ù31?Q;C>Ǭ ¡Énl>´^ku>ž5ç²›¨¾>„ÆŠ!è»Ø>i£ˆûo>IAÕÛÞŽ=âñ)g==Ä-¦g ¾?U•`¶°Ï?>•˜¢Û? †÷4zi=?—"ƒeû?ñ§‘Ì£?ºw…¬%? ·§/áSè?"3\½‚?"à& {•®?"ÃM·ñâS?" ˜KùU(? ÿiCÔ?ß17 °?.›,AÍ?. ¿*š?ïìÞ^Ù?m¥ž¨³Ø?–qÿ ü–? &´¶-›"?!0'€›?"?ìoÿï?#%ÄwÅÔ?#´h™4ªx?#ÑEU.ü?#~:µ­ºt?"×Q÷Æ$?"§€Òù‡?!$ÚWÁZ3? @¡rˆðù?•@örü?X üã?±Æ{/²œ?ºJ14úM?ÂMa]Ç?Aº w>?lÌVºgâ?ñ njdÐ?—`ü²ä—?ÇÕ&Ìô?s†m>ù?äàý¬O?LJuMÆ?úŒŽ¸›ô?^oQµfP? ý ‡I†?Š‚»:”?fdOì#k?ÿ×g î?tZõ[œ?–ŠÞÍ?û>Ù …í? éª$"?˜šF"š?0Ka?8~?|ž<ª?mï䨳?Ü `8É?©šòqß?§°±?ÝšƒÍä´?&p:b˜?µ4b¼Â¥?b‡n_ð?·AÑ€?‚û‚ˆ~?€«Iµ?˸’Ü?Æ¿S`´=?ò÷µN~'?—^?2ñ›?ä·F Tò?ØŒFߟ?3~ïiåx?‡²+ŽN ? /Ú obô? ¶Ï á=? Óããä§ê? ¡sHb;? Fx1F c?Âsç?öB¨„•€?¢Èz·?YOÛ?ë…oÿw?žÿâFŸ?hþE±-{?Ÿµ¬­ëv?°ºÛ€Ô?üÌu¥¬?¢]+|ø? )í¤"yL?",5ÒUç,?#âRóGÌ?$é‘/ûÛL?%|\°ö?$|%`æs!?#g˜‘ -A?"9x®’ÑÖ?!O~yÞ¬? êP[Å4?!ºW€w@?!Ìï—Î?"±‰P;ë?#%ÁFæ?#³`Ó’*?"t˰b? qñœÅô?Ï5ª'ü?µÄ­‚‰ü?>ÛØb¦?ÆzøZÙ?Všš"Ò|?¿fðýP¹?¾(ñl…?®®ôª?¬†oôî¼?]Àúe0?-, ¹V?¨+¾7NÛ?oòqÙ?za Ê1[?"ϧÇX¢?iySŽG?wɷĨa?ZyrI?Ëh·ÁÄ?ð8|qz? òÂP? §Fb ? R-ÑŒU?`£·X’?g¹.RõÛ?x]jŠØ? I?rN™?!Û§~?!"âDT? ЦSY?*MâÀ?Š)#V?×é7¦ h?¥0àõýl??I*ý‡8?‹m¨òÌÝ?£'ßA,? »Šx„Yá?i|ÞŠa¬?AT‘„¨>?ÝåÐÓ õ? =ífjqU?·UÎ(ª'?‘6Ô5;Á? ˆ«8Œ?.îDÂ?ãéJÊ“€?-qEŽS?@ŠhŸ0[?Akwš? /‚ÚÎ?>Á¬¤ ?mz,½?`šuÅ?2Ä>ÞÁÎ?CÔzºâ?ÕÁmq?÷¹{p?åâPH«ö>ö2ðád‚©>ëh˜@ø¥>Þ<ÃçWÆ>Îè>;óT>¼´Iž2¬Ó>¨Od›ú#>‘à(ÿþ‡>x‘-áT/?>^EÀ3ü™¨>> úλ-¼=Ä-¦g ¾=¦}$9…à>÷0G8l¨>ü䟽îP?ÎÀ%t›ð? 8>á…È?¦—V»p?ÛùÐæš ?ºÚWßâª?ìBÈj´»?6Ž3[ï? D ùÂt? ~,ì€Í±? iö 8z¤? -£]ü4¥?϶p;?U´&?A´¢Jã?÷ô˜âHf?X©.ZÚ? #¬rm>Á? àГv&?!žétOJ?"œOÔ¦/{?#'Ðã4^?#>cL¯EÄ?"ÚuÐT?"wv.P?!.*Ň? <@V«ž?£´Q+?¿¦…Û?š¶Ìâ×?¦Æ p,?Há8´Ä ?‚?#›“?<)Ó.ÉY? è@ׯ|? û\Å:0?]÷6ï?¼jg›é?{gÁÀÊà?æÂû®‹}?rj>D]…?å\çÝÒ?e.Êà ?\ë¥X€?Unb÷7?Æ’±ØFd?ó­ê´<?ØM;4?*åÅ€¶”?yà£?Q6$÷Õ?d¼¢:i=?ª™ðrI]?[Å,«¬«?Û:I0š2?‰ŒÁƒ~½?¢3p$14?,¦ >&?‚Û™SÜ?]ÊéºÕ?å}P÷>?úÉî¶kd?߯¹ÂM’?¿À®È’p?¢¬¸fs ?Žèàã|?“„$Ð?ͺØù0?nWìAZð?¢àºÞÓ ?z1ôÏÊ$?ÍAuRB3$aå?­ÕÙ#^?¨è D5É?¥åx~DO?¡u˜tò?„ ‡E"o?@Ž‹n80?è4¡?²x†OâŒ?ô”ŽçÀÇ?.(J?XKÒø6ÿ?ÓcEHT?1•„çû? çFt0F?"p ÇJ°?#bH­“Ã>?#šCÑiŸ¾?#+—k±¿?"U@°GÐ?!i÷M¨¦ë? ¹«ÓTÍæ? zù¥ap? »]¾ö¨?!Uº¤Z ?!ýQ»A²8?"SsfšÀ?" h¼¸@°?!¨x;¬?•njÔ?Daçzðg?—··lÙ?¨½ ”?H'–ìÒ?î5׫Eã?IÕk]Zr?%XcP?TuÊŒþ?¾×çå̸?Sƒ>›o ?ú^z¤Ã ?“ê0·Ì¿?>PY«?}]U*b„?!ææªâQ?H.ï¶ÆV?>œ@® ?UÝf´M ?œÚ>Æú?e…0µˆò?\\—€?wIì?áÝÙAŒ?Íw]-Ú ?a"áH?»BRc?€i=¬Ò?¬áfŠ?ó\A¤ª?# 7ùÉz?@ ÖÕ,? å«C® ?TÖ@½ú? ø}»Û?“9ƒG0Ê?¦ëE[Dœ? 6uEjÂÄ? Џc"(? Ø»8“[Ä?!ò«Ÿ—?!XBÒƒ? ÁãVQÚ½? *¬Æú?ë$](.?Èk‹ý?eÅr«ÿ?þîZžè?h©÷Â? “xG±( ?!IKñu’¥?!’ßk?!Xä¼øª? ¶ˆíºT?Íë¾ãõÖ?NYM¥5?8Qˆ ¢?‘KÈ4P ?)”zh7.?¿3=ÂD?>æDŒ ?:x¦5?"{ª†k?`ÍCAK?$ÇÏT?–/— ¢5?™?Ç'E?}i8{ã?ÀâjÒRw?JÿXÃg­?l¶GLyú?Ìá$f?˜dÑkzÚ?)è¹iºà?å4n’â?(%ªÂ=(?T€Xq—©?GqµÏ?Й•/Ì?ä»dÏ¡]?š,zÁ?"Ì)?…ô¯ìF?ô¬"|ö?˱kH_? ôõâÿÏØ? „POà=Æ?Ã! ?~Sf丣?ä×?ëgo?Ôçò€[?£Ã/ €? MÃõ@QÔ?!:ŠpèJ?!*Ú`K”? •”R*í?5lr™?é 8BL?‹Û|Zçê?#`-íœ?‘!Ý&b?Á…j??œ Œ%N? Tþ4ð?”FÒàÓV?i&rŽ?ô­É3j?K'¾ñÛç? ‘D#gßÇ?唯'" ?+–@’V?¡%wêÇß?ÁÿQX²?¬P§>‡?€WÙ„’?+Ó|Xe5?X 6ËK?„G ‘?Eˆ«çZ;?„؆²ð?•­aî9À?rµ„—z? Wö!»•à?©º yw>÷+ån<—„>ì•KöƒR>àªÓ§>Ѹëŧ(î>Áo44š>¯ì 앳Î>šc€Ò>‚ùµLÏ·>jn>>X>P ÃhÃ3>0bûábä>í±#¬·T>ò§QOô» >ùîžÅyÜÌ?_6¤ ??"×2'›¸?è’:üz?þX£r4[?‚±ô/?Ó4œš„?ÄŽ /bÄ?6…2T? Œ#Ÿ¿×Î?!0Ë’.ä?!„ÙìÊ„§?!†:8¨„?!?öMØ? Ïû½o å? mw¼3oJ? MG¾7”í? Œ³;jã?!a“ý͆?!È5U¥ª?"Cåçw|Ô?"VÿÛR?!îè¿Ý‹:?!&Ÿè©jç?ŽVv™q?,­âŒn+Ô]?êH¸‹à? 1¿VXC"? §Ä‰I•L?!÷Ù6Úˆ?!'ë–@L? ² Ë/#?UK¤-wF?j Jˆ…?!YýDØ?ýLaK:?^IZõ-?rÐ4€\ò?:žÆI:÷?-ï}«h ?¼,5j”?õD›bÉT?Ÿøh|ô ?S^-šH?íócK£S?ñ883“?óôvÂX¸?U5S¼îê?ÖëfPj?¹çWIë’?öV:¶?êd÷«“h?À2»@|?:.Z‹E ?Ñ3ˆ ò?9Ïúz?ιÁ½hH?÷*î º,?Õ èø?÷rD‰‰?[õšª¹ª?Y"$#?tÏF-)à?3à 9H'?²wçdË?š¢¦ðd?xè‰E ð?é¹yVQÊ?Ãs]µ?%V12n?d¸œê?Ж9?ì?R‡®:Ý? ]æ^qe? Lˆ-±hs? …7GÌ?,'Ä̱4?¸ŸéÙ6?{[6½—?þ8Áùèù?~L=%¨"?Ê4-[®†?UÚ[jœ? 7:s9¾? H’™{§ ?šåú0?Ó­?˹¢?ÌÈQ¯zœ? pÐr?˜@šî¦?ÅuÙ0?vÜøf?s¬9Åëä?¾ÔûÏÍ›?¬i"@Û)?0óš`œÜ?rÃÊñF†?ÀØ…Ë%0?vô(˜3‡?ÕR^‹é?Ø/,p?/ƒÐÐ?]ý‡„?ùF²ôl?æé¥,?Wµ¶Xyo?©•ÿlZ?r†õ…q?´¢”Ÿn?j¨9çƒ?åo°Çl?OBcM?"×])i?É…>=©?€ì¡rÏ£?GG<€D?2ëhÞ?`¡öo¯õ?øÇ’0É?/s;e\?7A¥HEý?*ò¤÷Ì?òxèí(®?7¸Óô”R?nŽ¡ˆÚ_?ùuï_Ð? ­Ør­ù? ±>"ß@? ÄÙ%q$?3vPè=?ÒðÄÖ`B?aËÄëû?òà(—®ƒ?v$ìüÓ/?ØyÜdò?Mƒ=Ch? +–&*âé?㵋L;#?•¨…ˆ?ÙƒJ6¡?(üº‘¿?û-ë'YE? îÆ“l? ÛJ³ºL?wk3HPÓ?.Õæ›?¶¢}5?Ej=ZR?oº'`K?¸ÝÚ?0Ò? ´­Õ?ÞJ?Œ[.äÛª?,j>òÖø? òÓÁkù?G¼­Ã'>útHâÞÀ>ð"ÈѸê>â{˶¢{;>Óè݈Zæ<>ÄÖåž½>²ö/A>Ã>  ,]Çtú>ŠÈ§$)T½>r0Dèeœ>Yqçïfr>>Ñ…S¯/>#˜³ Ûç>á0æï° ">åãê¡Ãžž>ï%;k™µ1>öYÁŸœêX>ÿ7Øþ?î ¿;ù? ´yí0,š?¬^Ö¦ƒæ?çl _:n?T¢ûù!R?©ŽœÌ¨@?!H Ãý£?"Õv§#¸?#ÎéòH ?$¸b=’?#¥ÇS°©Æ?"´º'‡_?!—³ŒÙ˜? ¯€ÏvpÀ? @1CüŒå? Q^ŽõE‚? ±a÷\L?!ï9Ló?!!Wä6B'? Ç3R@£? xÓX<‘?D÷[ p?\Æ{Ý5h?FSƒ’?ÉŒÓÑú?ëíUJ$È?ß÷fý§ê?½Zmãž?͇•Lwh?ðù /5?D @Èê·?¦q®,? ”6l?ÌJe"U‚?¸”4o?£?."£—!>?ÀŠî·ûš?VÅÈÀ„?,zípÇô?³ÕÏ+[?jÊRâ?ª|ºÓ¶‚?ˆ~ЙÜ?Ë,ëQY?9C}¨?µÂ^(Ö†?™U×5ÑÆ?ªË-¾$"?0ª2…Ⱥ?š  °F?VkÂí¬?¦fžT?ŽL,„Qß?Ô÷øf˜¾?僻B ? Ń€Z–?j“/_¼“?C»†?Pz?ÓÓT¾ä?o²ý>ë¦?]ÜðÝTŒ?¿8c¸ü?‘ú\Žš?ËÒÁ ÷k?rX3ÄV=?¡]Îøv?tÌæRz?à® Žßó?›Œ>·•5?Ký ¨ò? hùܬÃÞ? ¬ßV´"? ZºdEˆe?=L³?j©Òò%Ž?œ{deà?÷‡[³qZ?t-¢+"?RÖG?£Ò©Û¸?~÷²Qj’?ÌìJ㇘?Ìð·r?ª¶ˆkÝ"?hÄdq?ÓAQû@ÿ?„"Bjnf?ü\ËŠ?̲>%þH? Z¨íÉ"ì? ]æ´b!”? z‹q²º?Z†.?ÆZ0@?©÷‡Xˆ?²3 »?–³Ðá ?ç¬;vÃ}?Š,”Ü’?BŠ¥uæÚ? ×8¦N?sçö::?¢Òô;®÷?wÓy\É?à WÚ"?D|x”{X?l~L#o? IÄdñ&? .? .­ûªi? á„ãAcŸ?ä%8ZÇÉ?šú½Øy?‚Õ͆TZ?Ü’oî3²?Xúm:ç?Uÿ½¦¬X?׌ÿ>úë?¿Ú¯Ä?ìÅ̦O?lú¬¹8¶?ªh z?}ûõvÁ?Î 0ˆ¯?? _´ÆÏù? 6Ïœî?4ÜÜ&‘?MoD&Â?œ–™ÇÑ?mÀ)&/÷?ú©Z·è?H‘£y}¹?¹8Q»?ÛÍa®?¤Ú‰Ê,Ì?ˆMVŠ?«+T«6Þ?SÓøV¤ï?þEa˜=¥?g#¶"?É#ͧ|?Ã´Š üZ?¾¦gü?ŠÊóÅ8\?ÀàÐrÌ?vH4(™s?Bࣦâ?´€Éš:?§ôç( ? «Ìú\?6‘„'†ãÛ³ä?gÄ'ñ=?|û4â¢$?¹»‘>a?ç^˜þÖH?Í †áGÅ?ƒK]¾?꾨٠?©øJ?¡Ž Êeã?%N?šM p2?Œ‡ÚÃ?/á éi¹?­Ë˜­„?•;Šùx?IÊW’–¯?DÉéäcg?XOÔÇ4?·ÚÅóçáskö¾>æÆûà˜—¨>ØI6û±>È?¥$^gd>¶¿´ v>£ñ³lŒÝ>ކšIaP>yŒÝ;QÅ>_<ïZ²É>E[L\x>*†Døî×> âZ:>ÒNeP`ß>׎ eŸÎÌ>ámo …N>êY/¾Æw>ó§ç~¸D>ü¹QŽvÃ?«ëJ˜M? y§qPœš?½8Ä-î?¸±woyÙ?¯v”­ú0?"=§þ é?$·#ZšÔÂ?&f¼?‰?'’€=5ñ?&tX¬^É?$úxªe®¸?#Nú¶?_?!B:–%¯t? ªo–!?ßwšO‘?Óé0½Ö’?7þr¾Ð?a vЖ?éDP˜F:?È—ð°ª?9™’ yø?ˆcÑKâ»?àâ ß?AÇC_¢?“ty“?Ë©Ú->?ñgdxÃ?ˆ6@’óJ?`;,j?¤âexXS?裓¨&?_ËƱž?HÚ-?>R€\`æ?³)?ÔL¢?Gñ³ƒKî?ì$§³®œ?ÝÑõ Ú?ôiÊXz?vß6h¢?ë¦ó…Ö?ôåV³t¸? $aá剡? ´xÓu×Ó? íf]Ƥ? ¯»…ýR? u¦‡ä²?KiÞé¹=?–¬?œI˜?aÔóF?çu% Ú?•‹jEå?ºkÔà„ ?L®© &Q?cœûÊ[?¹¸Ó[?P±ÖÝB ?pÄ |–1?‡AÐ7. ?ø#$½;?üÉvèéÜ?ŸÝ …=?ÓÔÎýø?ŽP,m¶?áÀ¤IN?ÕË”(;?`Ÿ¢Š–?8t5Õ?ÕXóÇЈ? ÌsÇ9?! Þ pL? ž¯y:8â?o~´¨S@?5Ç¿þ`?· šë?‡zvwS+?Ê{l¨ª¦?X²®®'˜?K£-6'V?2èM›òÈ?—ÝGæð?µåì6r‡?^;ÆžŽ’?v|š¶?N™a`?¯Ÿ=8¸â?8î• Ã?BdÛ Är?]+ÈSþë?Ý.Ó0ú?Äg%Í{?xQ(À ¢?ó&»:?¿ÿ)Õ´?XR¬Í?P”3Ëa?(uþI ?{+ƒ“L?ŠËÃ=Ê?~ªzj‡R?[àe‹5«?$¦T¤„C?dQD¢$? 3Úmj7÷? ÊØœõ|? ÛÐݯòù? yY؈2?ÑqüøŒ?… K¢º??9.Âç?mJŒ¨Å?δ¢Î¬(?»ÜÐÜP?æ®ñkÌ­?aº½ ?#HȲ?°Ä0 €?éþLÍ?Å \„ª?%Ô’ÉÁË?J?P( ´?¢iM?Gp‘ðB?EdÒΡ±?ª¨ÈÖ:?ôø20^?!D»â-~?²zsˆ)å?]à&陲?ÏWו?Îhl²?­Îohñú?P¿û ž?+wVÊò?@kû œ?v#?¼‰? aÖ]ðÝQ? Ì,쉠?<4±0ž2?ïš$›…­?LÛ@ñBü>ý—‰²„±>ý¼«âQ¬a?ØôŒ8eù ÀJAÂd>í|¨ºåë%>àÚΠä >Ðİ*Þ4>½ñ9pÍL>ªCB–YŠ>”ë*Û†‹Ð>€6Ç>gˆßÙñ; >HWLÿex>0éÎ9ÔS>r\=lóE=õ 9K{¶…>Áz~^)ÌI>ÇŸ!‘˜>Ò£?›«£«>Þwßâr1>èÕ§’hk>óé0bœe>ÿºNï÷B?e ¨¼…?ߪ©·‡=?:,“™õ?o‘D_†ÿ?"É"W?&G€¯?(?(²Ø´r‘?)¶€ÀäT"?)#Žì‘–¸?'6ü§•Ÿv?$Šÿ÷Óû?!Ü·¥ è?….3¢Ë?ƒ‡ÃÀ4?Agyáì?ë~‰ ‚?HêÈêa ?'º£?"-?AìEü?f¨Y2h?¶Ò–)í?±eªõ«Á?HQ彆w?ÎV“]:?BØÁß?žÔè ¯?œK60ú?uHy×Þ?“«"1ÞÒ?ÚwC£?…DóÝÝ?rù|X?WBôvì.?µA•(?:™¡¼qÄ?Þ\äç3?ÞaÈËLf?¨ç“ü½?µÓ ú ?UÌK1!? E%BŸž ? ÿÖîgÞÒ?!•ÛYqž'?!ÆÊw:M?!u@}Ü4Ë? ³¸pÑ@Ñ?uÅhäæê?¡Õûfén?`s5´š$?ìKup Ì?:Ž·kÉ?ÿ'Ê_Üü?ÁT¶1þ?=ÀM®ž?jØï]?ï,¾Kt2?Ô}9t™É?’ˆSâÙó?¢t¬¥ót?Vù’A¡?Îñ_]|t?ãDUf?ä’\+Œ¦?gjð3§?†¿åŠEÖ?)B›Ð H? àÅ'? IçÍ ê?!Nòïsë?!JêÎõy? ÄßpŸÚ?wˆ=µÀ?ø»®pJK?“Ä v¾—?‘+®6á?ö•CÒf!?¤{ <ê‘?y%¼>Lº?gË~á?{E!áÐð?ÚÕœi?²ÝEéÔ¬,\;?z¶£Z?’+âyo?@&MÐÅæ?2ÇqB?Ÿ?-¢"N?¼R<6@Î?©ÛõjBî?aì ’—­?›¡÷›>?_A,öÀG?¯ß;ݰj?b ÄßöŽ?3&BI&?Xé0¶ù•?Y®êpó?´ÏI·õ?Ÿß,Ó ;?ñgqèF??/öò›¢?ÞU‹Ò?J’ ô£ä?áýõ§x?9kbv??ÍȽ6¡?S°õ?Tzâ+\s?àý%ú”?„†¨¨ßX?³É#Tl?d'&?¥Z 2j?ÌYe˜4?@'å,h?ðòw-¬?fÍRèÔÜ?:*÷‰? K º6?UGo¸‰‹? °ÒpüŠ?!G™÷Iª?!SÛ† ðA? íu¶ª? CȺ4L?;×û5 ?z&L-¿Ë?ÌhL?»î/eŠ‚?ÐQb»>?bf!=žÐ?u›íuÑ0?èÏhöªô?ˆÉ&»?'7ön ?§Óvó¾ò?¦Xp?1|MiFá?A—}´|á?Còc¾T?WZ]É ×?™ò Ž ‡?õ3Ç›®?‹ 4ȃ?¹• ˜»?B9@¥¯Ä?û+U>©ñ?{ 0V?°Ê& ?eoË?_ÿª÷è’?ªxÂöÖl?*ð¤ÈCŠ? rÂÚpJ€? j[°´?aO|O?¥9ÔšâÜ?hÔìŸ.˜>ü1$ÞÒ>úKt‡Çm>üè"¢t>?S}ËA?ÂaJ Ÿ?ʬB5ü?”|h?ÑoÎ0ÜÙ?þ\š\dz?ø¦«¢€?Á%•$ÿ:?æ RÌ?AZzmQ?S¯+c=>þá·q!%>òÚ (.î>å6ýÃÙ>Õù*> ¨S>Ä÷á3ñ÷U>²w*ÏâÇ>žX»BŸ>…þL¼ïF>oÈk˜6a†>U{¶àïì>0éÎ9ÔS>ÙY¥\Ò=ü;Àœ¿Ë=ÝMÇc”ÔÆ>¯’¤A‡)+>¶§PNqê>íµƒHu>ÑÉ;ž >àÖ1`ëÅ>ì"–CðŸ>÷ÅMº!~?)âŒP'v? YÑ ±¸%?MÁŒËÚÿ?@!¡Ã{?"í¡(D:¹?&üǬí…?*j¶?+†DCU?+ ~@X¼§?(׺Î_ßÐ?%œûÝ©30?"9{?½Ža?Ô18ã ¦?#qˆ_,?aÄ Öÿ,?-X0Sø?Kw|*Bê?“Hm´—‡?~Y_ 5Õ?ú÷TžG?$Œ¢€,_?k–3Q©?ùÌ“¥_½?³Ö¨à¼?QO^Ñ ž?ø®kÿ~0?ñé¡®?’ûynI?#ÝËéo?µ ` á?Ì&.?ÛÝeJô?Šm‚q+?² (@§?+Hk¤?©ÝÑz?·!O‹N?£˜L9í?⺰18?ÁÝg–ˆÔ%¨?»›].x?Þ3eŸ¼t?øk1Vá¼?œ—(pß?ðßíçj?+ïщJf?àzåj÷þ?¼4rÖï?Zl‘„&?ݲDÄ?5X(‚8?£Q°Óg‡?ûA&µÊ?I_ Eí²?kh(沸?$Eµ!DZ?@Þ2òáñ?¸y¿Ä?³$Ek?{ãÛ 6[?Yú¬0Æ ?ð27œ¼ú? ÂÅ; –? *G0rÎ3?8'ÛæC?(Yr]í?÷+¢Rúk?Ô ƒ.;b?v&¢5@V? zXí¡û? o^u À? íH >‚¢?¤œjeÞ?o0‹ð”r? \ÉÞ~(°? ºvÅN (? ùÚW?Íó“ËÎ?ˆ€4¬†? kÓñ_^? URŸÝoØ? Í?nÛ?aóo?îÝ]T«"?Q?=XÜ?]"oï4?gÍs­Àé?Õ%—êÛ?æDØýoi?—]Œè,¶?Ÿ:’¢I™?Š·òþ¥?æ›á^=V?dJ5Á0?ñÙçts?ÅþÏ‹Á?^©Úíd??VÓÑz&?)ÿ1ße?õ éNúS0A3¾>÷~††—¾•>ù7$zºNX?D¸Y?¿ü÷¬?PÊÐ`?0 ²¸„ñ?ãù®:ê ?ÃÙS8œ?E›Ì'?’ÏåÓdT?gsYÉ>e? xœeÈV:?Óhç#ï>÷¾Á¡Wì>ë›ÕxB¡>ݙ̈x<ò>ÍAÖÀ-á>º¢>¥b’:>¦Tþ0ðº¢>‘B„óNøÓ>vÅÙ‘ Ôø>_(Tñ#Œ>C¥Ú |ê>r\=lóF=ü;Àœ¿Ì=átéwp=Â@'ÿÀ>›gáB>zô>¥ol‹à»¸>µ/È‹>Å>ø=”É">Ôþ©(Ä >ãë?¬ª >ñ÷ 7E6>þ­=ç"{¡?¿™9â\?Õ,íAÇ?÷&¡SÆ!?" ð<û?&”~Ü.uÖ?*%"w þ4?+û:!óZÝ?+®7ºv ð?)lÉBÈÄÒ?%í;ì4‘Ð?"!yˆÚZ—?»!ßøº?6ì¼Èc?ß‹›U”?E·ÛaÂ,?±MŸ6fñ?lžŒiƒ?öõîëÐj?ï‘‘$æ?Îð"G)?5$tåy¿?XÓ<Äô?=T?æ^ûäó? sóã¥é˜?!ñ—Ðö? ñnðâÀH? DsgÎX?PÒk?ÒÆð¾çÚ?¨pó–?(‚4žº?SM)­É?áQÆv?k)ûO ß?š1¯kf ?IŽ"?Úÿ?˜J !òS?ß,‰:…?%’8V8B?'Ãü$o? 7}ŸÈg?Âö”ep?iÒà9K˜?´²€Aê?wD¶YøN?Ý¡÷ø?x²U‹Y?Fð›ŒE×?ì·þm¢?4á}O?ßâòÙV@?ÊÞÜ­5ÿ?Ï&Ñlº?Øê±·hL?“8¸*_ ?ö+~?ã? ^ò7z?z?aW‰ÙæM?ô1øÆŒá?1 ëéq‹?VˆQ`Q ? ¹û¯?’)áN?~!ïó­? PWÍ«š? ÷ˆֲ…?èåÑM¿`?¾’}L~?P |n+? ¹‡ÖߤÄ? \«Xå=z?Ïòä–¶ý?À›˜4«?ÊÏ”AvY?LÏXC?@5fhÝ? .º¿åid?SnY[fœÄJ? ¡®¦5yž? ²f#¨e? Á„1å?ö»ò hæ?yÒ¬µ)¼?ñÞ‹“¢N?Žæ½Ö?•UÚô?Gò‘M¹ª?Áïö×?àÍ>Ò¤?^!Ö*o?ï`·ŽÃÂ?fç…j? WSW>öÆ? Øe˧?!"Óµ„z?!˜x϶? ÃßÌ? -ϲ/?!üéÕç?;¬_Ú;z?ÆÞ?; ?‡«A&F? Xc¤?2?ýÌx>?I·ºªx?(Õa¤Ø?ìm}úà‚?Ðìîÿf?ìvø•–?6 R<Ó? .›‚Ï? çÁ¦?h ÔÀù?¬`½gn>ý÷âã£Ö>÷ÛŒ¯=Š>ô–˜c¡ñ%>õ¹­Í > >üVBÔHß?;ÙÊDvU? M/ ?aÁøTÌ5?¾Èö=?G-Úó l?…‹LD?¶%àteÎ?HP‰OY|?‘Â'%ÿä>ýµÞâ`>&>ñç$²¢Z>ãЉSó(P>Ô/⻥àd>ÂôØxÁDq>°i:‡ºuz>š.Å6û£Æ>ƒ;Œ9È>f]WÁr°t>M@à¡v½Ã>1ƒT•Þše=õ 9K{¶…=ÝMÇc”ÔÆ=Â@'ÿÀ=¤W±ÔMâs>‡¾æëIù>”¥½àý‡'>§cyš®&Â>¹êj\òÿ>˨#§çš#>ÛòÑúk÷C>ê¦y޾hn>÷õÇp¥¼L?H߈ҾË?!ðÑèïK?"3? ›á’D–?%A¶P_ºt?)eäE6?+*¼-ê¢?+ʧ½¿?(óå¸ÇL?%vGȘ†„?!ÿzs:#?AfVHFù?Z¡E¡" ?¸Ýïœ7? r« ·F?©½é:¼?×~Õ¥Ú?ú³³ñŸA?»²Åû´?þ&Þ ØŒ?ÏoDüM?8ˆm¥×(?;Ø”Jd”?â¨ؾv?YOÚ'Á?ø[P™´?,1/ךW?EÍ`ÿ/”?RêI±•K?ãÏé¼ò?"PZV,ÿ? Їé¤þ?ÁQšU?q•ülÉ?ò§WJ!¹?F§EÕqž?ÈRèþL’?Õ.‰×ê?¨åãEîC? ™.»Žéc?"ƒþ5’Þ?#=Øò;k]?#ó,·:U'?#óÆÁ&ñ?#GÊq˜ ?"'nÔçÓ1? ᤦ*_?{6 ïò?Ý*(ûù? õBD?îx.lJ!?+Äš¡î?OuŸ?ïÀÍbÁx?ÕkÀ×B?Hõù?ð–æö—4l?éÕàu4?¯.Z‡‚?ŸôûÍ?z^òé„§?ζ`&R?ɋΔ"D?EÕP«æ?úð°ø? OaQÊb? ¬qN£|? A0¼À:?¯àõÎÓf?íª*Ø|†?~8k›~C?õÓ[±?\˜„ð?®ÀåQMU?Àôáä?G€ð“ ?ÿj=©˜?ÐfÊ®[(?ãñ ­ã?¶æªÎy?6 Ýã7? .Â\ù8?šÛMå ?¤(ÈqYÞ?Câ Ëb?œü \×?ýy!¶Qw?°F„„?ÅÆ_V24?óí]§\? ¢¨0aV?޹Zp:?FìZD.P?Ê-jõ„?|ˆ R?å+q÷U–? Ø·Æ#–?ˆ?7p?¿çÖˆÞ»?;99{)?wÿÂ'?ƒ¶2m? îE6r<&? ÛD„1ë—?«2ûV?ÝÈ⺎Ð?ÀT@gª?߬ԓJ!?]”ãè­C?@âÂ_#j?…°µ![Ó?äÅ륩,?üu¹/?ýº¢~?TaŸ:©)?šéY†s?¢>dGü?Ö«õ¬%Ó?¡Eº‡ƒù?:E°„Þ?† ¥5Uü?ÖT'±?G4Wâ?¯¶OÏÅ?:c—´?<^¾ø^J?<²ÔV.–?œx¶N¼?eFí&ÿ²?QS¥˶? j ~tØ?h†Ív÷ã?Œÿ¹N?É¡®¢3?|9T†}Î?åPåˆ?eh¶?Ñ;MkP?µ›] ?ƒ3å#z?  e*q”? åòŽ…E?!2‰ËË%? åSŸˆ? (—áê&?›´ó_?Ze({Uþ?#µP&?˜ø{W‰?ª¼=l?”ötî?ÿÀp† ?³nò7"?ÞÛeˆ?·3Þ~Ó€?fX…Ö r? âÑ+X?Úß™*ܪ?‡Äú~ ?Ä8?à—K+›D?A͘‚×¢?í„©‹AT?ŸèêøŒ½? m~, …? ß%Õÿî²?!‡U"†X?!ù6ýñÚž?" Gï‹!??!±.j@]ø? þ zýŒZ? 3Qñ„«?&KѨ Å?x Å#¶p?*ŠôEÚ-?Çè)ôµ?æ|Bk¨?aã¼8?^¼Ë­?;V®¶?ÒÇôþ88?•G ƒb˜?mõ`”V? »?Ú-¿?À¾øØš?Ö™¹æ?÷)Î8Õc>ú§/¤2"v>ô½¨£v¶ã>ñzÎÆï‚>ò7s¢no>÷áß§´n?>Ñ5ë|?QVðŸ?±>¦gC?¸ÆÌÁ¦?ï6‚…h?ûá!Ô?}ˆîV³Œ? ­SAIø?ç˜1>÷ ©îŸï©>ê¾ð÷',z>ÜPí«‚÷å>Ër»ç€.H>¸m·ï(JŠ>£þœ|/Ž>ŽŒK.>tÒµÞ£P>Sß/(*>8À©rÎàW>–ýÙÝ¡>uºk ÷áÚ>…)»W¡>›w7\J›>°r]¼¦L>°Z3qÁQ>ÓîEc(Ç>ãüi¸¹J>òÙ¨r\{?®vÄ@ð? —E>g"?4=’ýV?U ’d?#§ív«eu?'„™G˜Ð?)ÂŽ¼ØãÓ?)Þdöψ?'îÿØ p?$šs$ÎeŸ? ÌùÑ8:1?ÃŽt9?Í×H’? €,ˆ“?x37Qà?J`—p?×s#ÝÚ?v*ŒÞÝÜ?·é‘t3y?n!±€¹N?—Ÿ¬,ý?7xš7­ò?L»>±“W?ߎqÓþ?ý§Ù§¾?p87µëß?I@Bè­ë?’XœíP?µxÓijü?^¬“ ?Àòíà ?F0U 7)?l4D=$?,*å6?¬™2GÑ?2,hĹ?ázKmÆ?–Ξ¡†D?ô‹3r? ‡ÅNX?":v5‚ .?#·Äz?BA?$£Ã)àõ1?$ÇIü#ü?$%&…²x?"ô\‹ý>´?!†œ,j? +0Ÿ*‡«?7¹%—¶?ç! ËbÑ?X`?úf?CT)¡~?>@ü¸€-?ড¨¨ž?êͤ0EÎ?\Z!šx!?s³ž0ˆ?™Æ®³þ?B˰¡c?Ë<*oà?ZúÎ& í?ÙÌ@¯ÄØ?û,q|;?]qÀÄñ?© $Uáh?˜~Øu¡!?ðW£Ü=? :PÇU ?û5á †?tGYÂ1?€Âž…¨?hkÀ&z?Ýia€_Ê?>«kµ?~ÈzbŽ«?-7ª† ?žQ ·É?4=cZƒ?ŸÑ ;,P?œ‡èŒ?Û4Ë»gã? ȉæy†R? ~M~òiH?ˆ+³C?Ù©*ÑšÐ? ÚÉÙYk‚? Ê:¼UåÔ?;rÈ_¦?Ñ^òûa?£s%‡p™?iå…â0?ß[ Qœù?¦Ð ?uÂ,Ѥï?=qf¼F?60Á’oì?Æœbeç?­1§s? T£l ¦?¯ >ß.?®×»÷íô?MŸ5±>ÿo`J…6l>þŒ[n9mÿ?NŠÈ¤"?çií=Za?Àù(mùŒ? .ØË³Û²?Oœÿi"\?$HvP?¿;A {»?_‘?tØ„?"|Œhb? ¨c^OH:?»õw*w£?eåáëÐ?x«qÄD?†)»ï83?®Ágž´? ƒ‡ÅìW_?u9z–¤?,4³Q7?·e—îgÊ?–q²îø?Ñ®T$L?m%luœ ?å²l(?ÿë™­Ï?óúþàÌ™?% JÝä?ÂÐ#e‘«?a@*ð?¨\£á.?ì±ïæ¦?Œ½Ï5"?Õ„/xB?Ý{Îwc¸?jÂWÛ*?þ;ˆ,Ò°?Uõ–C°?&–›2ª?kRW}Bï?@ô÷—ù?4õ÷à? ‹îzÌ—?{À/a±«?p˜)Ìcì?$3>X'@?yO޹Ü(?¤]}j¶a? ˜Ky?6üÈl?æóg  n?•“/-Âc?ü;fs¤?ÚpðTÁ?Ï3[aF?!.Ø ÔTÊ?"\r+?"<&>›?!Ó¯^~…S? öÌÄ ÛZ?ê¬È?4ö?NZ+ä‚è?´î0Ë?¬XñNKÏ?HEaÜ‹f?×<ý(ât?ôÍ?ÍØè?Œpì€rV?À*O°˜?¼¬3à ?™X)™àþ\œ¿5× >÷L\r@*Ë>ñÂu9g÷]>íbà»ë>îQ0u1ç}>óæm¯I<ý>üåQ¬á‡3?s– lB÷? ¯ì8ŽÝ?}Å)\û$?´¾ä¶õ?Ôº_ Vÿ? ;uWM2Õ?ñ9r «>üýÀ0$ŽÞ>òn5:‘Ò>äk4ˆ|ê>Ôã’½Ôi>ÃnÞî;Í>°€¸Õ¿’l>™«6íë¿¶>‚T»:ÌçI>hËI áü>Aè¶{h‰¦>&NÇ|Â>Ý]¸KRF>f÷çH´)&>y*Ó(@F>’Æí,éÔÞ>§çKÿ“r>¼~“óÀ¯ê>Ϥ9¶€Qš>àwGž >ð;§fcf>ýQXøJ(F?ÞÛCU?+üü¶¹?!èDÞ?"”g^¥›D?&kûtÆe?(¶è·V?(îÆ²Mrç?'#Ñ™v)?#ó{ÚUÇ¿? BZ»Ú°z?Ïá4i¤ä?çòeB5¨?<| I…?¦»çÀjE?šŸLsw?^º6‡4U?CNð þs?ÎVÁ0`?Æ8ýî©…?"Š…€?à,0´j?ý%*N?ãÑÖa?š÷(q À?¶‹*)ª•?S—Èo46?ÒÔë®ü?F¹×'?mÄÌoJ?ÙP´æÐÂ?$5YGÚ±?–8O¹‰?¿ób6 S?BÀ+gÕ?éÔçA&?Ô3WBò?×JŒkž?Œ°åXø? €œºb??"_bZˆã–?$Î5Uï?%ë²ßΦ?%HCsÜ@?$ªÄMÅ:?#nƒÀvov?!çåÛ|Z*? j&2þÙ¿?gÓ¤Ó}Y?ÉìH?÷lµ”ùë?°;Y­²©?·½xAz?22 ´Š{?Q0iéV?ãâÞ Øã?£W.\?`®åZ* ?ùÃ#š>?µ­¤1üÛ?SæŽ1^q?àý!"? c¨È?iØØàD?Ÿ s†?i¾H $?–•¿’U?÷ðø-Æ?kþUé>©?ÿ0³&K? Ðüz? ΑW ?®ø$“Œ?NŠ-+ ?Ú§™.Ð?×Y‡ŒV>?‡ÕQž¢Á?óÞ®±?ÄUˆì­¯?DöñQ[Ø? Åu–Õ3? —…e­?ã76Y{?•!,À?+¤lšôN? ïu³¦? ZºŸÊ1?˜þ>Ê,¼?©zö=Ì?´.¥"ž?ei ?UMçý6?5nÃÆš?úäbú?æd^V ?fòøÖÌ? ÒQ«We? eú® £?±ž¡Tp?§Qqíäw?Bõ•æÜc>ýk&¯× >ü¼rAéï>ÿ/@v"§?|Gý”Qâ?¹ˆ:É?œ? —l~?ëF?OÀâ„Ê?±×4v?[a깘?ñ‹~/ÇÈ?–Zî—˜? <ܤôl?÷ùÅq*?Sagvôƒ?-Ψ-?#ß­ñ¼!?^y=’Çr? q9ê›™7?icȇÿ?Œíi³ò?K€g¾L?KÞeÕ;?Ä,Tíý?ðŽA¸ ?•… ¦ñK?GRÜßn?ødZ¯ƒ¤?_m+G­D?O¾ˆCÖ?ÑÙ¨=›‘?”Oy ï?‹uÛq@×?oã3[-d?òÜ] „?S¶fíA?f½ú?ž8­ ?ˆ´}CJ?zŽ!’…–?’…à&c/?KOT‰oÔ?7wFC?«ls7Û?”‚„RJ"?’na]Þ%?FwûšŽC?˜2ïçD?ÇÖ’[‹†?E°€a”`?tûýB?†dSµš0?sÁoÏм?-ƒˆÊr?óóNm"? ‡Á·À?!ØÍAîà?"¨8TŸ Î?"Õ~ˆæ?"^”00™½?!p &s¿? Y0£¬I?á5Ö"žÒ?â9C…l?½R«÷?µcOð?kÖFüù7?bøJ P?ë—ìmíÅ?&€;ê›?8.:ÝL?17p?#|绞Ó?@l1¾?ÒËÕ¨Ÿw?†(ì?«¦þ’’?’'i [g?5ç= ?Ðñóƒ? 5’]«½?! ÇèWú?!åÉÉ‘Tf?"•ˆgÝè?"ß¿Ì(F1?"Ÿ&5•?!çj§È"8?!y¥ß9²? B¢ã’4ô?²²"„'F?j¸j\¿Z?4—ë#N?—EÞš?V·õÍ0?}ˆ&aè?1íߥ`F?•GnÌB?ÁŠ÷O‚?×µÅC? ‹;üú?ÉÑmæA?!Zf T>üþ„§¼>õ3gä@ ù>ïÜçÏ~Ø>ê ó— L>ê²Cˆs>ñ„U?Ëi>ù|;¹q½?Úc;?”‹wÖ¸? ͉=7ð? qjÍ:Ïf? öœ\ ž¦?ЮAá?2¶1;]>øù hÚî$>îÎúø¤²!>á¨cʯÐ>Ñ&ÏW-¯>¿8ƒPå>©–tK/Ñ)>“*lä$®¤>z;MÌÊýf>`t æí¾>2Ê´x>qeðhŒ§=ùôŠ$6Ö././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/figures/region_drawing.py0000664000175000017500000000140400000000000020261 0ustar00jjleejjleeimport matplotlib.pyplot as plt import matplotlib.cm as cm from astropy.io import fits import pyregion # read in the image xray_name = "pspc_skyview.fits" f_xray = fits.open(xray_name) try: from astropy.wcs import WCS from astropy.visualization.wcsaxes import WCSAxes wcs = WCS(f_xray[0].header) fig = plt.figure() ax = WCSAxes(fig, [0.1, 0.1, 0.8, 0.8], wcs=wcs) fig.add_axes(ax) except ImportError: ax = plt.subplot(111) ax.imshow(f_xray[0].data, cmap=cm.gray, vmin=0., vmax=0.00038, origin="lower") reg_name = "test.reg" r = pyregion.open(reg_name).as_imagecoord(f_xray[0].header) patch_list, text_list = r.get_mpl_patches_texts() for p in patch_list: ax.add_patch(p) for t in text_list: ax.add_artist(t) plt.show() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/figures/region_drawing2.py0000664000175000017500000000253500000000000020351 0ustar00jjleejjleeimport matplotlib.pyplot as plt import matplotlib.cm as cm from astropy.io import fits import pyregion # read in the image xray_name = "pspc_skyview.fits" f_xray = fits.open(xray_name) try: from astropy.wcs import WCS from astropy.visualization.wcsaxes import WCSAxes wcs = WCS(f_xray[0].header) fig = plt.figure() ax = WCSAxes(fig, [0.1, 0.1, 0.8, 0.8], wcs=wcs) fig.add_axes(ax) except ImportError: ax = plt.subplot(111) ax.imshow(f_xray[0].data, cmap=cm.gray, vmin=0., vmax=0.00038, origin="lower") reg_name = "test.reg" r = pyregion.open(reg_name).as_imagecoord(header=f_xray[0].header) from pyregion.mpl_helper import properties_func_default # Use custom function for patch attribute def fixed_color(shape, saved_attrs): attr_list, attr_dict = saved_attrs attr_dict["color"] = "red" kwargs = properties_func_default(shape, (attr_list, attr_dict)) return kwargs # select region shape with tag=="Group 1" r1 = pyregion.ShapeList([rr for rr in r if rr.attr[1].get("tag") == "Group 1"]) patch_list1, artist_list1 = r1.get_mpl_patches_texts(fixed_color) r2 = pyregion.ShapeList([rr for rr in r if rr.attr[1].get("tag") != "Group 1"]) patch_list2, artist_list2 = r2.get_mpl_patches_texts() for p in patch_list1 + patch_list2: ax.add_patch(p) for t in artist_list1 + artist_list2: ax.add_artist(t) plt.show() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/figures/test.reg0000664000175000017500000000423000000000000016367 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: pspc_skyview.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 circle(305.66137,46.273027,286.45302") ellipse(305.2084,46.309061,240",600",15.433424) # color=black width=4 box(304.61491,46.299899,1032",552",28.9055) # color=white tag={Group 1} polygon(304.30761,46.142612,303.94162,46.140616,304.12265,46.314927,303.72947,46.178781,303.9453,45.887034,304.10869,45.854872,304.30963,45.889013) # color=red line(305.70423,45.962694,305.10953,45.946101) # line=0 0 dash=1 # vector(305.47681,45.437697,1448.972",63.434949) vector=1 # text(304.75479,45.939998) text={Text} annulus(304.01194,45.570957,216",506.2428",674.9904") # color=yellow ellipse(304.7357,45.626666,349.44527",196.03028",797.79697",447.54464",339.24891) # width=2 tag={Group 1} panda(305.48266,45.157674,0,151.26,2,398.8488",797.6976",1) # color=blue width=2 epanda(304.78308,45.140013,0,88.057145,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=(0 88.057145 228.1969 327.92448)(193.49419" 257.83216" 504.22594" 671.88407" 672.30125" 895.84543")(8.11303) color=cyan epanda(304.78308,45.140013,0,88.057145,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,88.057145,228.1969,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,88.057145,228.1969,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,228.1969,327.92448,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,228.1969,327.92448,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore point(304.26232,45.252305) # point=circle point(304.0256,45.251053) # point=box color=magenta point(303.79815,45.262722) # point=diamond point(304.25414,45.105615) # point=cross point(304.04637,45.104528) # point=x point(304.25577,44.918982) # point=arrow point(304.02028,44.931056) # point=boxcircle bpanda(305.53095,44.934745,0,290,1,605.36378",294.48644",1371.1215",666.9984",1,342.545) # color=blue width=2 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/figures/test02.reg0000664000175000017500000000062400000000000016534 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: pspc_skyview.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 physical ellipse(82,167,36,75,346.95915) epanda(140,166,87.19363,195.80251,1,32.5,39.5,65,79,1,307.90041) -polygon(78.265142,201.73486,132,209,125,178,163.73486,116.26514,78.265142,116.26514) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/getting_started.rst0000664000175000017500000001611700000000000017175 0ustar00jjleejjlee.. _gs: *************** Getting started *************** pyregion is a python module to parse ds9 region files. It also supports ciao region files. Please note that the main emphasis of the package is to read in the regions files generated by ds9 itself. It reads most of the region files created by ds9. However, it may fail to read some of the user-created (or created by other programs) region files, even if they can be successfully read by ds9. Ruler, Compass and Projection types are ignored. +----------------------------------------+----------------------------------------+ | ds9 | pyregion + matplotlib | +========================================+========================================+ | .. image:: _static/region_ds9.jpg | .. image:: _static/region_mpl.png | | :width: 300px | :width: 300px | | :target: static/region_ds9.jpg | :target: static/region_mpl.png | +----------------------------------------+----------------------------------------+ .. contents:: :depth: 1 :local: Read Region Files ================= `pyregion.open` takes the region name as an argument and returns a `~pyregion.ShapeList` object, which is basically a list of `~pyregion.Shape` objects (`~pyregion.ShapeList` is a sub-class of the Python built-in `list` class). :: import pyregion region_name = "ds9.reg" r = pyregion.open(region_name) You may use `pyregion.parse` if you have a string that defines a region :: region = 'fk5;circle(290.96388,14.019167,843.31194")' r = pyregion.parse(region) The shape object is a python representation of each region definition. For example,:: import pyregion region_string = """ # Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 circle(11:24:24.230,-59:15:02.20,18.5108") # color=cyan background box(11:24:39.213,-59:16:53.91,42.804",23.616",19.0384) # width=4 """ r = pyregion.parse(region_string) And you have:: >>> print r[0] Shape : circle ( HMS(11:24:24.230),DMS(-59:15:02.20),Ang(18.5108") ) >>> print r[1] Shape : box ( HMS(11:24:39.213),DMS(-59:16:53.91),Ang(42.804"),Ang(23.616"),Number(19.0384) ) The shape object has the following attributes, * ``name`` : name of the shape. e.g., circle, box, etc.. :: >>> print r[0].name circle * ``coord_format`` : coordinate format. e.g., "fk5", "image", "physical", etc... :: >>> print r[0].coord_format fk5 * ``coord_list`` : list of coordinates in *coord_format*. The coordinate value for sky coordinates is degree. :: >>> print r[0].coord_list [171.10095833333332, -59.250611111111112, 0.0051418888888888886] * ``comment`` : comment string associated with the shape (can be None) :: >>> print r[0].comment color=cyan background * ``attr`` : attributes of the shape. This includes global attributes defined by the global command and local attributes defined in the comment. The first item is a list of key-only attributes without associated values (e.g., background..) and the second item is a dictionary of attributes of key-value pairs. :: >>> print r[0].attr[0] ['background'] >>> print r[0].attr[1] {'color': 'cyan', 'dash': '0 ', 'dashlist': '8 3 ', 'delete': '1 ', 'edit': '1 ', 'fixed': '0 ', 'font': '"helvetica 10 normal"', 'highlite': '1 ', 'include': '1 ', 'move': '1 ', 'select': '1 ', 'source': '1', 'width': '1 '} Some attributes like "tag" allow multiple items, but this is not currently supported (the last definition overrides any previous ones). The `pyregion.ShapeList` class have a few methods that could be useful. `ShapeList.as_imagecoord ` returns a new `~pyregion.ShapeList` instance with the coordinates converted to the image coordinate system. It requires an `astropy.io.fits.Header` instance. :: from astropy.io import fits f = fits.open("t1.fits") r2 = pyregion.parse(region_string).as_imagecoord(f[0].header) The return value is a new `~pyregion.ShapeList` instance, but the coordinate is converted to image coordinates. :: >>> print r2[0].coord_format image >>> print r2[0].coord_list [482.27721401429852, 472.76641383805912, 18.811792596807045] `ShapeList.as_imagecoord ` will use the subset of the header defining a celestial coordinate system, ignoring any velocity or channel components. Draw Regions with Matplotlib ============================ pyregion can help you draw ds9 regions with matplotlib. `ShapeList.get_mpl_patches_texts ` returns a list of ``matplotlib.artist.Artist`` objects :: r2 = pyregion.parse(region_string).as_imagecoord(f[0].header) patch_list, artist_list = r2.get_mpl_patches_texts() The first item is a list of `matplotlib.patches.Patch`, and the second one is other kinds of artists (usually Text). It is your responsibility to add these to the axes. :: # ax is a mpl Axes object for p in patch_list: ax.add_patch(p) for t in artist_list: ax.add_artist(t) .. plot:: figures/region_drawing.py The (optional) argument of the ``get_mpl_patches_texts`` method is a callable object that takes the shape object as an argument and returns a dictionary object that will be used as a keyword arguments (e.g., colors and line width) for creating the mpl artists. By default, it uses ``pyregion.mpl_helper.properties_func_default``, which tries to respect the ds9 attributes. However, the colors (and other attributes) of some complex shapes are not correctly handled as shown in above example, and you need to manually adjust the associated attributes of patches. .. plot:: figures/region_drawing2.py :include-source: Use Regions for Spatial Filtering ================================= ``pyregion`` includes some basic spatial filter support. The `ShapeList.get_filter ` method returns the filter from the parsed region. The filter is meant to be used in the image coordinate, thus you need to convert the region to the image coordinate before calling ``get_filter``. :: r2 = pyregion.parse(region_string).as_imagecoord(f[0].header) myfilter = r2.get_filter() myfilter.inside1(50, 30) The returned filter has a ``mask`` method that creates a 2d mask. You can create the mask directly from the ShapeList object. :: r2 = pyregion.parse(region_string) mymask = r2.get_mask(hdu=f[0]) It will creates an mask in the shape of the given hdu image (the mask will be created after transforming the region to the image coordinate if necessary). .. plot:: figures/demo_filter_mask.py :include-source: Note that this will fail if your template image is not a simple 2D image. To work around this you may use the ``shape`` optional argument of `ShapeList.get_mask `: :: mymask = r2.get_mask(hdu=f[0],shape=(1024,1024)) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/index.rst0000664000175000017500000000201500000000000015105 0ustar00jjleejjlee======== pyregion ======== :Release: |version| :Date: |today| pyregion is a python module to parse ds9 region files. It also supports ciao region files. .. note:: See also the in-development ``regions`` package at https://github.com/astropy/regions a new astronomy package for regions based on Astropy. +----------------------------------------+----------------------------------------+ | ds9 | pyregion + matplotlib | +========================================+========================================+ | .. image:: _static/region_ds9.jpg | .. image:: _static/region_mpl.png | | :width: 300px | :width: 300px | | :target: static/region_ds9.jpg | :target: static/region_mpl.png | +----------------------------------------+----------------------------------------+ Documentation ============= .. toctree:: :maxdepth: 1 installation getting_started examples api changelog ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7771084 pyregion-2.1.1/docs/installation.rst0000664000175000017500000000420200000000000016477 0ustar00jjleejjlee.. _install: ************ Installation ************ Stable version ============== Installing the latest stable version is possible either using pip or conda. Using pip --------- To install pyregion with `pip `_ from `PyPI `_ simply run:: pip install --no-deps pyregion .. note:: The ``--no-deps`` flag is optional, but highly recommended if you already have Numpy installed, since otherwise pip will sometimes try to "help" you by upgrading your Numpy installation, which may not always be desired. Using conda ----------- To install regions with `Anaconda `_ from the `conda-forge channel on anaconda.org `__ simply run:: conda install -c conda-forge pyregion Testing installation -------------------- To check if your install is OK, run the tests: .. code-block:: bash python -c 'import pyregion; pyregion.test()' Development version =================== Install the latest development version from https://github.com/astropy/pyregion : .. code-block:: bash git clone https://github.com/astropy/pyregion cd pyregion python setup.py install python setup.py test python setup.py build_docs Dependencies ============ Python 2.7 and 3.4+ are supported. ``pyregion`` has the following required dependencies: * `Astropy `__ version 1.0 or later (which requires Numpy) * ``pyparsing`` version 2.0 or later for parsing the DS9 region files * `Homepage `__ * `PyPI page `__ ``pyregion`` has the following optional dependencies for plotting: * `matplotlib `__ If you are using Astropy version 1.3 or later, then you have ``astropy.visualization.wcsaxes``. For older versions of Astropy, you have to install the separate package: `wcsaxes `__ To work with the development version, you'll need Cython and a C compiler, because the code to generate masks from regions is written in Cython. ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624623945.3227026 pyregion-2.1.1/docs/rtd-pip-requirements0000664000175000017500000000006000000000000017265 0ustar00jjleejjleenumpy matplotlib Cython astropy-helpers astropy ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3519938 pyregion-2.1.1/pyregion/0000775000175000017500000000000000000000000014152 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/__init__.py0000664000175000017500000000120600000000000016262 0ustar00jjleejjlee""" pyregion: a Python parser for ds9 region files * Code : https://github.com/astropy/pyregion * Docs : http://pyregion.readthedocs.io/ See also the in-development ``regions`` package at https://github.com/astropy/regions a new astronomy package for regions based on Astropy. """ # Affiliated packages may add whatever they like to this file, but # should keep this content at the top. # ---------------------------------------------------------------------------- from ._astropy_init import * # For egg_info test builds to pass, put package imports here. if not _ASTROPY_SETUP_: from .core import * from .parser_helper import Shape ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/_astropy_init.py0000664000175000017500000000374700000000000017422 0ustar00jjleejjlee# Licensed under a 3-clause BSD style license - see LICENSE.rst __all__ = ['__version__', '__githash__'] # this indicates whether or not we are in the package's setup.py try: _ASTROPY_SETUP_ except NameError: from sys import version_info if version_info[0] >= 3: import builtins else: import __builtin__ as builtins builtins._ASTROPY_SETUP_ = False try: from .version import version as __version__ except ImportError: __version__ = '' try: from .version import githash as __githash__ except ImportError: __githash__ = '' if not _ASTROPY_SETUP_: # noqa import os from warnings import warn from astropy.config.configuration import ( update_default_config, ConfigurationDefaultMissingError, ConfigurationDefaultMissingWarning) # Create the test function for self test from astropy.tests.runner import TestRunner test = TestRunner.make_test_runner_in(os.path.dirname(__file__)) test.__test__ = False __all__ += ['test'] # add these here so we only need to cleanup the namespace at the end config_dir = None if not os.environ.get('ASTROPY_SKIP_CONFIG_UPDATE', False): config_dir = os.path.dirname(__file__) config_template = os.path.join(config_dir, __package__ + ".cfg") if os.path.isfile(config_template): try: update_default_config( __package__, config_dir, version=__version__) except TypeError as orig_error: try: update_default_config(__package__, config_dir) except ConfigurationDefaultMissingError as e: wmsg = (e.args[0] + " Cannot install default profile. If you are " "importing from source, this is expected.") warn(ConfigurationDefaultMissingWarning(wmsg)) del e except Exception: raise orig_error ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.0400116 pyregion-2.1.1/pyregion/_compiler.c0000664000175000017500000000573100000000000016275 0ustar00jjleejjlee#include /*************************************************************************** * Macros for determining the compiler version. * * These are borrowed from boost, and majorly abridged to include only * the compilers we care about. ***************************************************************************/ #ifndef PY3K #if PY_MAJOR_VERSION >= 3 #define PY3K 1 #else #define PY3K 0 #endif #endif #define STRINGIZE(X) DO_STRINGIZE(X) #define DO_STRINGIZE(X) #X #if defined __clang__ /* Clang C++ emulates GCC, so it has to appear early. */ # define COMPILER "Clang version " __clang_version__ #elif defined(__INTEL_COMPILER) || defined(__ICL) || defined(__ICC) || defined(__ECC) /* Intel */ # if defined(__INTEL_COMPILER) # define INTEL_VERSION __INTEL_COMPILER # elif defined(__ICL) # define INTEL_VERSION __ICL # elif defined(__ICC) # define INTEL_VERSION __ICC # elif defined(__ECC) # define INTEL_VERSION __ECC # endif # define COMPILER "Intel C compiler version " STRINGIZE(INTEL_VERSION) #elif defined(__GNUC__) /* gcc */ # define COMPILER "GCC version " __VERSION__ #elif defined(__SUNPRO_CC) /* Sun Workshop Compiler */ # define COMPILER "Sun compiler version " STRINGIZE(__SUNPRO_CC) #elif defined(_MSC_VER) /* Microsoft Visual C/C++ Must be last since other compilers define _MSC_VER for compatibility as well */ # if _MSC_VER < 1200 # define COMPILER_VERSION 5.0 # elif _MSC_VER < 1300 # define COMPILER_VERSION 6.0 # elif _MSC_VER == 1300 # define COMPILER_VERSION 7.0 # elif _MSC_VER == 1310 # define COMPILER_VERSION 7.1 # elif _MSC_VER == 1400 # define COMPILER_VERSION 8.0 # elif _MSC_VER == 1500 # define COMPILER_VERSION 9.0 # elif _MSC_VER == 1600 # define COMPILER_VERSION 10.0 # else # define COMPILER_VERSION _MSC_VER # endif # define COMPILER "Microsoft Visual C++ version " STRINGIZE(COMPILER_VERSION) #else /* Fallback */ # define COMPILER "Unknown compiler" #endif /*************************************************************************** * Module-level ***************************************************************************/ struct module_state { /* The Sun compiler can't handle empty structs */ #if defined(__SUNPRO_C) || defined(_MSC_VER) int _dummy; #endif }; #if PY3K static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, "_compiler", NULL, sizeof(struct module_state), NULL, NULL, NULL, NULL, NULL }; #define INITERROR return NULL PyMODINIT_FUNC PyInit__compiler(void) #else #define INITERROR return PyMODINIT_FUNC init_compiler(void) #endif { PyObject* m; #if PY3K m = PyModule_Create(&moduledef); #else m = Py_InitModule3("_compiler", NULL, NULL); #endif if (m == NULL) INITERROR; PyModule_AddStringConstant(m, "compiler", COMPILER); #if PY3K return m; #endif } ././@PaxHeader0000000000000000000000000000003300000000000010211 xustar0027 mtime=1623588721.129031 pyregion-2.1.1/pyregion/_region_filter.c0000664000175000017500000235233200000000000017317 0ustar00jjleejjlee/* Generated by Cython 0.29.22 */ #define PY_SSIZE_T_CLEAN #include "Python.h" #ifndef Py_PYTHON_H #error Python headers needed to compile C extensions, please install development version of Python. #elif PY_VERSION_HEX < 0x02060000 || (0x03000000 <= PY_VERSION_HEX && PY_VERSION_HEX < 0x03030000) #error Cython requires Python 2.6+ or Python 3.3+. #else #define CYTHON_ABI "0_29_22" #define CYTHON_HEX_VERSION 0x001D16F0 #define CYTHON_FUTURE_DIVISION 0 #include #ifndef offsetof #define offsetof(type, member) ( (size_t) & ((type*)0) -> member ) #endif #if !defined(WIN32) && !defined(MS_WINDOWS) #ifndef __stdcall #define __stdcall #endif #ifndef __cdecl #define __cdecl #endif #ifndef __fastcall #define __fastcall #endif #endif #ifndef DL_IMPORT #define DL_IMPORT(t) t #endif #ifndef DL_EXPORT #define DL_EXPORT(t) t #endif #define __PYX_COMMA , #ifndef HAVE_LONG_LONG #if PY_VERSION_HEX >= 0x02070000 #define HAVE_LONG_LONG #endif #endif #ifndef PY_LONG_LONG #define PY_LONG_LONG LONG_LONG #endif #ifndef Py_HUGE_VAL #define Py_HUGE_VAL HUGE_VAL #endif #ifdef PYPY_VERSION #define CYTHON_COMPILING_IN_PYPY 1 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 0 #undef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 0 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #if PY_VERSION_HEX < 0x03050000 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #undef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #undef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 1 #undef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 0 #undef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 0 #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #elif defined(PYSTON_VERSION) #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 1 #define CYTHON_COMPILING_IN_CPYTHON 0 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #undef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 0 #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #undef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 0 #undef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 0 #undef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT 0 #undef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE 0 #undef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS 0 #undef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK 0 #else #define CYTHON_COMPILING_IN_PYPY 0 #define CYTHON_COMPILING_IN_PYSTON 0 #define CYTHON_COMPILING_IN_CPYTHON 1 #ifndef CYTHON_USE_TYPE_SLOTS #define CYTHON_USE_TYPE_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYTYPE_LOOKUP #define CYTHON_USE_PYTYPE_LOOKUP 0 #elif !defined(CYTHON_USE_PYTYPE_LOOKUP) #define CYTHON_USE_PYTYPE_LOOKUP 1 #endif #if PY_MAJOR_VERSION < 3 #undef CYTHON_USE_ASYNC_SLOTS #define CYTHON_USE_ASYNC_SLOTS 0 #elif !defined(CYTHON_USE_ASYNC_SLOTS) #define CYTHON_USE_ASYNC_SLOTS 1 #endif #if PY_VERSION_HEX < 0x02070000 #undef CYTHON_USE_PYLONG_INTERNALS #define CYTHON_USE_PYLONG_INTERNALS 0 #elif !defined(CYTHON_USE_PYLONG_INTERNALS) #define CYTHON_USE_PYLONG_INTERNALS 1 #endif #ifndef CYTHON_USE_PYLIST_INTERNALS #define CYTHON_USE_PYLIST_INTERNALS 1 #endif #ifndef CYTHON_USE_UNICODE_INTERNALS #define CYTHON_USE_UNICODE_INTERNALS 1 #endif #if PY_VERSION_HEX < 0x030300F0 #undef CYTHON_USE_UNICODE_WRITER #define CYTHON_USE_UNICODE_WRITER 0 #elif !defined(CYTHON_USE_UNICODE_WRITER) #define CYTHON_USE_UNICODE_WRITER 1 #endif #ifndef CYTHON_AVOID_BORROWED_REFS #define CYTHON_AVOID_BORROWED_REFS 0 #endif #ifndef CYTHON_ASSUME_SAFE_MACROS #define CYTHON_ASSUME_SAFE_MACROS 1 #endif #ifndef CYTHON_UNPACK_METHODS #define CYTHON_UNPACK_METHODS 1 #endif #ifndef CYTHON_FAST_THREAD_STATE #define CYTHON_FAST_THREAD_STATE 1 #endif #ifndef CYTHON_FAST_PYCALL #define CYTHON_FAST_PYCALL 1 #endif #ifndef CYTHON_PEP489_MULTI_PHASE_INIT #define CYTHON_PEP489_MULTI_PHASE_INIT (PY_VERSION_HEX >= 0x03050000) #endif #ifndef CYTHON_USE_TP_FINALIZE #define CYTHON_USE_TP_FINALIZE (PY_VERSION_HEX >= 0x030400a1) #endif #ifndef CYTHON_USE_DICT_VERSIONS #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1) #endif #ifndef CYTHON_USE_EXC_INFO_STACK #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3) #endif #endif #if !defined(CYTHON_FAST_PYCCALL) #define CYTHON_FAST_PYCCALL (CYTHON_FAST_PYCALL && PY_VERSION_HEX >= 0x030600B1) #endif #if CYTHON_USE_PYLONG_INTERNALS #include "longintrepr.h" #undef SHIFT #undef BASE #undef MASK #ifdef SIZEOF_VOID_P enum { __pyx_check_sizeof_voidp = 1 / (int)(SIZEOF_VOID_P == sizeof(void*)) }; #endif #endif #ifndef __has_attribute #define __has_attribute(x) 0 #endif #ifndef __has_cpp_attribute #define __has_cpp_attribute(x) 0 #endif #ifndef CYTHON_RESTRICT #if defined(__GNUC__) #define CYTHON_RESTRICT __restrict__ #elif defined(_MSC_VER) && _MSC_VER >= 1400 #define CYTHON_RESTRICT __restrict #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_RESTRICT restrict #else #define CYTHON_RESTRICT #endif #endif #ifndef CYTHON_UNUSED # if defined(__GNUC__) # if !(defined(__cplusplus)) || (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif # elif defined(__ICC) || (defined(__INTEL_COMPILER) && !defined(_MSC_VER)) # define CYTHON_UNUSED __attribute__ ((__unused__)) # else # define CYTHON_UNUSED # endif #endif #ifndef CYTHON_MAYBE_UNUSED_VAR # if defined(__cplusplus) template void CYTHON_MAYBE_UNUSED_VAR( const T& ) { } # else # define CYTHON_MAYBE_UNUSED_VAR(x) (void)(x) # endif #endif #ifndef CYTHON_NCP_UNUSED # if CYTHON_COMPILING_IN_CPYTHON # define CYTHON_NCP_UNUSED # else # define CYTHON_NCP_UNUSED CYTHON_UNUSED # endif #endif #define __Pyx_void_to_None(void_result) ((void)(void_result), Py_INCREF(Py_None), Py_None) #ifdef _MSC_VER #ifndef _MSC_STDINT_H_ #if _MSC_VER < 1300 typedef unsigned char uint8_t; typedef unsigned int uint32_t; #else typedef unsigned __int8 uint8_t; typedef unsigned __int32 uint32_t; #endif #endif #else #include #endif #ifndef CYTHON_FALLTHROUGH #if defined(__cplusplus) && __cplusplus >= 201103L #if __has_cpp_attribute(fallthrough) #define CYTHON_FALLTHROUGH [[fallthrough]] #elif __has_cpp_attribute(clang::fallthrough) #define CYTHON_FALLTHROUGH [[clang::fallthrough]] #elif __has_cpp_attribute(gnu::fallthrough) #define CYTHON_FALLTHROUGH [[gnu::fallthrough]] #endif #endif #ifndef CYTHON_FALLTHROUGH #if __has_attribute(fallthrough) #define CYTHON_FALLTHROUGH __attribute__((fallthrough)) #else #define CYTHON_FALLTHROUGH #endif #endif #if defined(__clang__ ) && defined(__apple_build_version__) #if __apple_build_version__ < 7000000 #undef CYTHON_FALLTHROUGH #define CYTHON_FALLTHROUGH #endif #endif #endif #ifndef CYTHON_INLINE #if defined(__clang__) #define CYTHON_INLINE __inline__ __attribute__ ((__unused__)) #elif defined(__GNUC__) #define CYTHON_INLINE __inline__ #elif defined(_MSC_VER) #define CYTHON_INLINE __inline #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define CYTHON_INLINE inline #else #define CYTHON_INLINE #endif #endif #if CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x02070600 && !defined(Py_OptimizeFlag) #define Py_OptimizeFlag 0 #endif #define __PYX_BUILD_PY_SSIZE_T "n" #define CYTHON_FORMAT_SSIZE_T "z" #if PY_MAJOR_VERSION < 3 #define __Pyx_BUILTIN_MODULE_NAME "__builtin__" #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a+k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #define __Pyx_DefaultClassType PyClass_Type #else #define __Pyx_BUILTIN_MODULE_NAME "builtins" #if PY_VERSION_HEX >= 0x030800A4 && PY_VERSION_HEX < 0x030800B2 #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, 0, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #else #define __Pyx_PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos)\ PyCode_New(a, k, l, s, f, code, c, n, v, fv, cell, fn, name, fline, lnos) #endif #define __Pyx_DefaultClassType PyType_Type #endif #ifndef Py_TPFLAGS_CHECKTYPES #define Py_TPFLAGS_CHECKTYPES 0 #endif #ifndef Py_TPFLAGS_HAVE_INDEX #define Py_TPFLAGS_HAVE_INDEX 0 #endif #ifndef Py_TPFLAGS_HAVE_NEWBUFFER #define Py_TPFLAGS_HAVE_NEWBUFFER 0 #endif #ifndef Py_TPFLAGS_HAVE_FINALIZE #define Py_TPFLAGS_HAVE_FINALIZE 0 #endif #ifndef METH_STACKLESS #define METH_STACKLESS 0 #endif #if PY_VERSION_HEX <= 0x030700A3 || !defined(METH_FASTCALL) #ifndef METH_FASTCALL #define METH_FASTCALL 0x80 #endif typedef PyObject *(*__Pyx_PyCFunctionFast) (PyObject *self, PyObject *const *args, Py_ssize_t nargs); typedef PyObject *(*__Pyx_PyCFunctionFastWithKeywords) (PyObject *self, PyObject *const *args, Py_ssize_t nargs, PyObject *kwnames); #else #define __Pyx_PyCFunctionFast _PyCFunctionFast #define __Pyx_PyCFunctionFastWithKeywords _PyCFunctionFastWithKeywords #endif #if CYTHON_FAST_PYCCALL #define __Pyx_PyFastCFunction_Check(func)\ ((PyCFunction_Check(func) && (METH_FASTCALL == (PyCFunction_GET_FLAGS(func) & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))))) #else #define __Pyx_PyFastCFunction_Check(func) 0 #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Malloc) #define PyObject_Malloc(s) PyMem_Malloc(s) #define PyObject_Free(p) PyMem_Free(p) #define PyObject_Realloc(p) PyMem_Realloc(p) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX < 0x030400A1 #define PyMem_RawMalloc(n) PyMem_Malloc(n) #define PyMem_RawRealloc(p, n) PyMem_Realloc(p, n) #define PyMem_RawFree(p) PyMem_Free(p) #endif #if CYTHON_COMPILING_IN_PYSTON #define __Pyx_PyCode_HasFreeVars(co) PyCode_HasFreeVars(co) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) PyFrame_SetLineNumber(frame, lineno) #else #define __Pyx_PyCode_HasFreeVars(co) (PyCode_GetNumFree(co) > 0) #define __Pyx_PyFrame_SetLineNumber(frame, lineno) (frame)->f_lineno = (lineno) #endif #if !CYTHON_FAST_THREAD_STATE || PY_VERSION_HEX < 0x02070000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #elif PY_VERSION_HEX >= 0x03060000 #define __Pyx_PyThreadState_Current _PyThreadState_UncheckedGet() #elif PY_VERSION_HEX >= 0x03000000 #define __Pyx_PyThreadState_Current PyThreadState_GET() #else #define __Pyx_PyThreadState_Current _PyThreadState_Current #endif #if PY_VERSION_HEX < 0x030700A2 && !defined(PyThread_tss_create) && !defined(Py_tss_NEEDS_INIT) #include "pythread.h" #define Py_tss_NEEDS_INIT 0 typedef int Py_tss_t; static CYTHON_INLINE int PyThread_tss_create(Py_tss_t *key) { *key = PyThread_create_key(); return 0; } static CYTHON_INLINE Py_tss_t * PyThread_tss_alloc(void) { Py_tss_t *key = (Py_tss_t *)PyObject_Malloc(sizeof(Py_tss_t)); *key = Py_tss_NEEDS_INIT; return key; } static CYTHON_INLINE void PyThread_tss_free(Py_tss_t *key) { PyObject_Free(key); } static CYTHON_INLINE int PyThread_tss_is_created(Py_tss_t *key) { return *key != Py_tss_NEEDS_INIT; } static CYTHON_INLINE void PyThread_tss_delete(Py_tss_t *key) { PyThread_delete_key(*key); *key = Py_tss_NEEDS_INIT; } static CYTHON_INLINE int PyThread_tss_set(Py_tss_t *key, void *value) { return PyThread_set_key_value(*key, value); } static CYTHON_INLINE void * PyThread_tss_get(Py_tss_t *key) { return PyThread_get_key_value(*key); } #endif #if CYTHON_COMPILING_IN_CPYTHON || defined(_PyDict_NewPresized) #define __Pyx_PyDict_NewPresized(n) ((n <= 8) ? PyDict_New() : _PyDict_NewPresized(n)) #else #define __Pyx_PyDict_NewPresized(n) PyDict_New() #endif #if PY_MAJOR_VERSION >= 3 || CYTHON_FUTURE_DIVISION #define __Pyx_PyNumber_Divide(x,y) PyNumber_TrueDivide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceTrueDivide(x,y) #else #define __Pyx_PyNumber_Divide(x,y) PyNumber_Divide(x,y) #define __Pyx_PyNumber_InPlaceDivide(x,y) PyNumber_InPlaceDivide(x,y) #endif #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 && CYTHON_USE_UNICODE_INTERNALS #define __Pyx_PyDict_GetItemStr(dict, name) _PyDict_GetItem_KnownHash(dict, name, ((PyASCIIObject *) name)->hash) #else #define __Pyx_PyDict_GetItemStr(dict, name) PyDict_GetItem(dict, name) #endif #if PY_VERSION_HEX > 0x03030000 && defined(PyUnicode_KIND) #define CYTHON_PEP393_ENABLED 1 #define __Pyx_PyUnicode_READY(op) (likely(PyUnicode_IS_READY(op)) ?\ 0 : _PyUnicode_Ready((PyObject *)(op))) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_LENGTH(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) PyUnicode_READ_CHAR(u, i) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) PyUnicode_MAX_CHAR_VALUE(u) #define __Pyx_PyUnicode_KIND(u) PyUnicode_KIND(u) #define __Pyx_PyUnicode_DATA(u) PyUnicode_DATA(u) #define __Pyx_PyUnicode_READ(k, d, i) PyUnicode_READ(k, d, i) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) PyUnicode_WRITE(k, d, i, ch) #if defined(PyUnicode_IS_READY) && defined(PyUnicode_GET_SIZE) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != (likely(PyUnicode_IS_READY(u)) ? PyUnicode_GET_LENGTH(u) : PyUnicode_GET_SIZE(u))) #else #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_LENGTH(u)) #endif #else #define CYTHON_PEP393_ENABLED 0 #define PyUnicode_1BYTE_KIND 1 #define PyUnicode_2BYTE_KIND 2 #define PyUnicode_4BYTE_KIND 4 #define __Pyx_PyUnicode_READY(op) (0) #define __Pyx_PyUnicode_GET_LENGTH(u) PyUnicode_GET_SIZE(u) #define __Pyx_PyUnicode_READ_CHAR(u, i) ((Py_UCS4)(PyUnicode_AS_UNICODE(u)[i])) #define __Pyx_PyUnicode_MAX_CHAR_VALUE(u) ((sizeof(Py_UNICODE) == 2) ? 65535 : 1114111) #define __Pyx_PyUnicode_KIND(u) (sizeof(Py_UNICODE)) #define __Pyx_PyUnicode_DATA(u) ((void*)PyUnicode_AS_UNICODE(u)) #define __Pyx_PyUnicode_READ(k, d, i) ((void)(k), (Py_UCS4)(((Py_UNICODE*)d)[i])) #define __Pyx_PyUnicode_WRITE(k, d, i, ch) (((void)(k)), ((Py_UNICODE*)d)[i] = ch) #define __Pyx_PyUnicode_IS_TRUE(u) (0 != PyUnicode_GET_SIZE(u)) #endif #if CYTHON_COMPILING_IN_PYPY #define __Pyx_PyUnicode_Concat(a, b) PyNumber_Add(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) PyNumber_Add(a, b) #else #define __Pyx_PyUnicode_Concat(a, b) PyUnicode_Concat(a, b) #define __Pyx_PyUnicode_ConcatSafe(a, b) ((unlikely((a) == Py_None) || unlikely((b) == Py_None)) ?\ PyNumber_Add(a, b) : __Pyx_PyUnicode_Concat(a, b)) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyUnicode_Contains) #define PyUnicode_Contains(u, s) PySequence_Contains(u, s) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyByteArray_Check) #define PyByteArray_Check(obj) PyObject_TypeCheck(obj, &PyByteArray_Type) #endif #if CYTHON_COMPILING_IN_PYPY && !defined(PyObject_Format) #define PyObject_Format(obj, fmt) PyObject_CallMethod(obj, "__format__", "O", fmt) #endif #define __Pyx_PyString_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyString_Check(b) && !PyString_CheckExact(b)))) ? PyNumber_Remainder(a, b) : __Pyx_PyString_Format(a, b)) #define __Pyx_PyUnicode_FormatSafe(a, b) ((unlikely((a) == Py_None || (PyUnicode_Check(b) && !PyUnicode_CheckExact(b)))) ? PyNumber_Remainder(a, b) : PyUnicode_Format(a, b)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyString_Format(a, b) PyUnicode_Format(a, b) #else #define __Pyx_PyString_Format(a, b) PyString_Format(a, b) #endif #if PY_MAJOR_VERSION < 3 && !defined(PyObject_ASCII) #define PyObject_ASCII(o) PyObject_Repr(o) #endif #if PY_MAJOR_VERSION >= 3 #define PyBaseString_Type PyUnicode_Type #define PyStringObject PyUnicodeObject #define PyString_Type PyUnicode_Type #define PyString_Check PyUnicode_Check #define PyString_CheckExact PyUnicode_CheckExact #ifndef PyObject_Unicode #define PyObject_Unicode PyObject_Str #endif #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyBaseString_Check(obj) PyUnicode_Check(obj) #define __Pyx_PyBaseString_CheckExact(obj) PyUnicode_CheckExact(obj) #else #define __Pyx_PyBaseString_Check(obj) (PyString_Check(obj) || PyUnicode_Check(obj)) #define __Pyx_PyBaseString_CheckExact(obj) (PyString_CheckExact(obj) || PyUnicode_CheckExact(obj)) #endif #ifndef PySet_CheckExact #define PySet_CheckExact(obj) (Py_TYPE(obj) == &PySet_Type) #endif #if PY_VERSION_HEX >= 0x030900A4 #define __Pyx_SET_REFCNT(obj, refcnt) Py_SET_REFCNT(obj, refcnt) #define __Pyx_SET_SIZE(obj, size) Py_SET_SIZE(obj, size) #else #define __Pyx_SET_REFCNT(obj, refcnt) Py_REFCNT(obj) = (refcnt) #define __Pyx_SET_SIZE(obj, size) Py_SIZE(obj) = (size) #endif #if CYTHON_ASSUME_SAFE_MACROS #define __Pyx_PySequence_SIZE(seq) Py_SIZE(seq) #else #define __Pyx_PySequence_SIZE(seq) PySequence_Size(seq) #endif #if PY_MAJOR_VERSION >= 3 #define PyIntObject PyLongObject #define PyInt_Type PyLong_Type #define PyInt_Check(op) PyLong_Check(op) #define PyInt_CheckExact(op) PyLong_CheckExact(op) #define PyInt_FromString PyLong_FromString #define PyInt_FromUnicode PyLong_FromUnicode #define PyInt_FromLong PyLong_FromLong #define PyInt_FromSize_t PyLong_FromSize_t #define PyInt_FromSsize_t PyLong_FromSsize_t #define PyInt_AsLong PyLong_AsLong #define PyInt_AS_LONG PyLong_AS_LONG #define PyInt_AsSsize_t PyLong_AsSsize_t #define PyInt_AsUnsignedLongMask PyLong_AsUnsignedLongMask #define PyInt_AsUnsignedLongLongMask PyLong_AsUnsignedLongLongMask #define PyNumber_Int PyNumber_Long #endif #if PY_MAJOR_VERSION >= 3 #define PyBoolObject PyLongObject #endif #if PY_MAJOR_VERSION >= 3 && CYTHON_COMPILING_IN_PYPY #ifndef PyUnicode_InternFromString #define PyUnicode_InternFromString(s) PyUnicode_FromString(s) #endif #endif #if PY_VERSION_HEX < 0x030200A4 typedef long Py_hash_t; #define __Pyx_PyInt_FromHash_t PyInt_FromLong #define __Pyx_PyInt_AsHash_t PyInt_AsLong #else #define __Pyx_PyInt_FromHash_t PyInt_FromSsize_t #define __Pyx_PyInt_AsHash_t PyInt_AsSsize_t #endif #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyMethod_New(func, self, klass) ((self) ? ((void)(klass), PyMethod_New(func, self)) : __Pyx_NewRef(func)) #else #define __Pyx_PyMethod_New(func, self, klass) PyMethod_New(func, self, klass) #endif #if CYTHON_USE_ASYNC_SLOTS #if PY_VERSION_HEX >= 0x030500B1 #define __Pyx_PyAsyncMethodsStruct PyAsyncMethods #define __Pyx_PyType_AsAsync(obj) (Py_TYPE(obj)->tp_as_async) #else #define __Pyx_PyType_AsAsync(obj) ((__Pyx_PyAsyncMethodsStruct*) (Py_TYPE(obj)->tp_reserved)) #endif #else #define __Pyx_PyType_AsAsync(obj) NULL #endif #ifndef __Pyx_PyAsyncMethodsStruct typedef struct { unaryfunc am_await; unaryfunc am_aiter; unaryfunc am_anext; } __Pyx_PyAsyncMethodsStruct; #endif #if defined(WIN32) || defined(MS_WINDOWS) #define _USE_MATH_DEFINES #endif #include #ifdef NAN #define __PYX_NAN() ((float) NAN) #else static CYTHON_INLINE float __PYX_NAN() { float value; memset(&value, 0xFF, sizeof(value)); return value; } #endif #if defined(__CYGWIN__) && defined(_LDBL_EQ_DBL) #define __Pyx_truncl trunc #else #define __Pyx_truncl truncl #endif #define __PYX_MARK_ERR_POS(f_index, lineno) \ { __pyx_filename = __pyx_f[f_index]; (void)__pyx_filename; __pyx_lineno = lineno; (void)__pyx_lineno; __pyx_clineno = __LINE__; (void)__pyx_clineno; } #define __PYX_ERR(f_index, lineno, Ln_error) \ { __PYX_MARK_ERR_POS(f_index, lineno) goto Ln_error; } #ifndef __PYX_EXTERN_C #ifdef __cplusplus #define __PYX_EXTERN_C extern "C" #else #define __PYX_EXTERN_C extern #endif #endif #define __PYX_HAVE__pyregion___region_filter #define __PYX_HAVE_API__pyregion___region_filter /* Early includes */ #include "stdio.h" #include "stdlib.h" #include "numpy/arrayobject.h" #include "math.h" #ifdef _OPENMP #include #endif /* _OPENMP */ #if defined(PYREX_WITHOUT_ASSERTIONS) && !defined(CYTHON_WITHOUT_ASSERTIONS) #define CYTHON_WITHOUT_ASSERTIONS #endif typedef struct {PyObject **p; const char *s; const Py_ssize_t n; const char* encoding; const char is_unicode; const char is_str; const char intern; } __Pyx_StringTabEntry; #define __PYX_DEFAULT_STRING_ENCODING_IS_ASCII 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_UTF8 0 #define __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT (PY_MAJOR_VERSION >= 3 && __PYX_DEFAULT_STRING_ENCODING_IS_UTF8) #define __PYX_DEFAULT_STRING_ENCODING "" #define __Pyx_PyObject_FromString __Pyx_PyBytes_FromString #define __Pyx_PyObject_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #define __Pyx_uchar_cast(c) ((unsigned char)c) #define __Pyx_long_cast(x) ((long)x) #define __Pyx_fits_Py_ssize_t(v, type, is_signed) (\ (sizeof(type) < sizeof(Py_ssize_t)) ||\ (sizeof(type) > sizeof(Py_ssize_t) &&\ likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX) &&\ (!is_signed || likely(v > (type)PY_SSIZE_T_MIN ||\ v == (type)PY_SSIZE_T_MIN))) ||\ (sizeof(type) == sizeof(Py_ssize_t) &&\ (is_signed || likely(v < (type)PY_SSIZE_T_MAX ||\ v == (type)PY_SSIZE_T_MAX))) ) static CYTHON_INLINE int __Pyx_is_valid_index(Py_ssize_t i, Py_ssize_t limit) { return (size_t) i < (size_t) limit; } #if defined (__cplusplus) && __cplusplus >= 201103L #include #define __Pyx_sst_abs(value) std::abs(value) #elif SIZEOF_INT >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) abs(value) #elif SIZEOF_LONG >= SIZEOF_SIZE_T #define __Pyx_sst_abs(value) labs(value) #elif defined (_MSC_VER) #define __Pyx_sst_abs(value) ((Py_ssize_t)_abs64(value)) #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #define __Pyx_sst_abs(value) llabs(value) #elif defined (__GNUC__) #define __Pyx_sst_abs(value) __builtin_llabs(value) #else #define __Pyx_sst_abs(value) ((value<0) ? -value : value) #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject*); static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject*, Py_ssize_t* length); #define __Pyx_PyByteArray_FromString(s) PyByteArray_FromStringAndSize((const char*)s, strlen((const char*)s)) #define __Pyx_PyByteArray_FromStringAndSize(s, l) PyByteArray_FromStringAndSize((const char*)s, l) #define __Pyx_PyBytes_FromString PyBytes_FromString #define __Pyx_PyBytes_FromStringAndSize PyBytes_FromStringAndSize static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char*); #if PY_MAJOR_VERSION < 3 #define __Pyx_PyStr_FromString __Pyx_PyBytes_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyBytes_FromStringAndSize #else #define __Pyx_PyStr_FromString __Pyx_PyUnicode_FromString #define __Pyx_PyStr_FromStringAndSize __Pyx_PyUnicode_FromStringAndSize #endif #define __Pyx_PyBytes_AsWritableString(s) ((char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableSString(s) ((signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsWritableUString(s) ((unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsString(s) ((const char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsSString(s) ((const signed char*) PyBytes_AS_STRING(s)) #define __Pyx_PyBytes_AsUString(s) ((const unsigned char*) PyBytes_AS_STRING(s)) #define __Pyx_PyObject_AsWritableString(s) ((char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableSString(s) ((signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsWritableUString(s) ((unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsSString(s) ((const signed char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_AsUString(s) ((const unsigned char*) __Pyx_PyObject_AsString(s)) #define __Pyx_PyObject_FromCString(s) __Pyx_PyObject_FromString((const char*)s) #define __Pyx_PyBytes_FromCString(s) __Pyx_PyBytes_FromString((const char*)s) #define __Pyx_PyByteArray_FromCString(s) __Pyx_PyByteArray_FromString((const char*)s) #define __Pyx_PyStr_FromCString(s) __Pyx_PyStr_FromString((const char*)s) #define __Pyx_PyUnicode_FromCString(s) __Pyx_PyUnicode_FromString((const char*)s) static CYTHON_INLINE size_t __Pyx_Py_UNICODE_strlen(const Py_UNICODE *u) { const Py_UNICODE *u_end = u; while (*u_end++) ; return (size_t)(u_end - u - 1); } #define __Pyx_PyUnicode_FromUnicode(u) PyUnicode_FromUnicode(u, __Pyx_Py_UNICODE_strlen(u)) #define __Pyx_PyUnicode_FromUnicodeAndLength PyUnicode_FromUnicode #define __Pyx_PyUnicode_AsUnicode PyUnicode_AsUnicode #define __Pyx_NewRef(obj) (Py_INCREF(obj), obj) #define __Pyx_Owned_Py_None(b) __Pyx_NewRef(Py_None) static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b); static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject*); static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject*); static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x); #define __Pyx_PySequence_Tuple(obj)\ (likely(PyTuple_CheckExact(obj)) ? __Pyx_NewRef(obj) : PySequence_Tuple(obj)) static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject*); static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t); #if CYTHON_ASSUME_SAFE_MACROS #define __pyx_PyFloat_AsDouble(x) (PyFloat_CheckExact(x) ? PyFloat_AS_DOUBLE(x) : PyFloat_AsDouble(x)) #else #define __pyx_PyFloat_AsDouble(x) PyFloat_AsDouble(x) #endif #define __pyx_PyFloat_AsFloat(x) ((float) __pyx_PyFloat_AsDouble(x)) #if PY_MAJOR_VERSION >= 3 #define __Pyx_PyNumber_Int(x) (PyLong_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Long(x)) #else #define __Pyx_PyNumber_Int(x) (PyInt_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Int(x)) #endif #define __Pyx_PyNumber_Float(x) (PyFloat_CheckExact(x) ? __Pyx_NewRef(x) : PyNumber_Float(x)) #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII static int __Pyx_sys_getdefaultencoding_not_ascii; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; PyObject* ascii_chars_u = NULL; PyObject* ascii_chars_b = NULL; const char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; if (strcmp(default_encoding_c, "ascii") == 0) { __Pyx_sys_getdefaultencoding_not_ascii = 0; } else { char ascii_chars[128]; int c; for (c = 0; c < 128; c++) { ascii_chars[c] = c; } __Pyx_sys_getdefaultencoding_not_ascii = 1; ascii_chars_u = PyUnicode_DecodeASCII(ascii_chars, 128, NULL); if (!ascii_chars_u) goto bad; ascii_chars_b = PyUnicode_AsEncodedString(ascii_chars_u, default_encoding_c, NULL); if (!ascii_chars_b || !PyBytes_Check(ascii_chars_b) || memcmp(ascii_chars, PyBytes_AS_STRING(ascii_chars_b), 128) != 0) { PyErr_Format( PyExc_ValueError, "This module compiled with c_string_encoding=ascii, but default encoding '%.200s' is not a superset of ascii.", default_encoding_c); goto bad; } Py_DECREF(ascii_chars_u); Py_DECREF(ascii_chars_b); } Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); Py_XDECREF(ascii_chars_u); Py_XDECREF(ascii_chars_b); return -1; } #endif #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT && PY_MAJOR_VERSION >= 3 #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_DecodeUTF8(c_str, size, NULL) #else #define __Pyx_PyUnicode_FromStringAndSize(c_str, size) PyUnicode_Decode(c_str, size, __PYX_DEFAULT_STRING_ENCODING, NULL) #if __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT static char* __PYX_DEFAULT_STRING_ENCODING; static int __Pyx_init_sys_getdefaultencoding_params(void) { PyObject* sys; PyObject* default_encoding = NULL; char* default_encoding_c; sys = PyImport_ImportModule("sys"); if (!sys) goto bad; default_encoding = PyObject_CallMethod(sys, (char*) (const char*) "getdefaultencoding", NULL); Py_DECREF(sys); if (!default_encoding) goto bad; default_encoding_c = PyBytes_AsString(default_encoding); if (!default_encoding_c) goto bad; __PYX_DEFAULT_STRING_ENCODING = (char*) malloc(strlen(default_encoding_c) + 1); if (!__PYX_DEFAULT_STRING_ENCODING) goto bad; strcpy(__PYX_DEFAULT_STRING_ENCODING, default_encoding_c); Py_DECREF(default_encoding); return 0; bad: Py_XDECREF(default_encoding); return -1; } #endif #endif /* Test for GCC > 2.95 */ #if defined(__GNUC__) && (__GNUC__ > 2 || (__GNUC__ == 2 && (__GNUC_MINOR__ > 95))) #define likely(x) __builtin_expect(!!(x), 1) #define unlikely(x) __builtin_expect(!!(x), 0) #else /* !__GNUC__ or GCC < 2.95 */ #define likely(x) (x) #define unlikely(x) (x) #endif /* __GNUC__ */ static CYTHON_INLINE void __Pyx_pretend_to_initialize(void* ptr) { (void)ptr; } static PyObject *__pyx_m = NULL; static PyObject *__pyx_d; static PyObject *__pyx_b; static PyObject *__pyx_cython_runtime = NULL; static PyObject *__pyx_empty_tuple; static PyObject *__pyx_empty_bytes; static PyObject *__pyx_empty_unicode; static int __pyx_lineno; static int __pyx_clineno = 0; static const char * __pyx_cfilenm= __FILE__; static const char *__pyx_filename; static const char *__pyx_f[] = { "stringsource", "pyregion/_region_filter.pyx", "pyregion/c_numpy.pxd", }; /* "pyregion/_region_filter.pyx":15 * c_numpy.import_array() * * ctypedef int Py_ssize_t # <<<<<<<<<<<<<< * * */ typedef int __pyx_t_8pyregion_14_region_filter_Py_ssize_t; /*--- Type declarations ---*/ struct __pyx_obj_8pyregion_14_region_filter_RegionContext; struct __pyx_obj_8pyregion_14_region_filter_RegionBase; struct __pyx_obj_8pyregion_14_region_filter_RegionNot; struct __pyx_obj_8pyregion_14_region_filter_RegionList; struct __pyx_obj_8pyregion_14_region_filter_RegionOrList; struct __pyx_obj_8pyregion_14_region_filter_RegionAndList; struct __pyx_obj_8pyregion_14_region_filter_Transform; struct __pyx_obj_8pyregion_14_region_filter_Rotated; struct __pyx_obj_8pyregion_14_region_filter_Translated; struct __pyx_obj_8pyregion_14_region_filter_Circle; struct __pyx_obj_8pyregion_14_region_filter_Ellipse; struct __pyx_obj_8pyregion_14_region_filter_Box; struct __pyx_obj_8pyregion_14_region_filter_Polygon; struct __pyx_obj_8pyregion_14_region_filter_AngleRange; struct __pyx_t_8pyregion_14_region_filter_Metric; struct __pyx_t_8pyregion_14_region_filter__RegionContext; /* "pyregion/_region_filter.pyx":26 * * * cdef struct Metric: # <<<<<<<<<<<<<< * double x0 * double y0 */ struct __pyx_t_8pyregion_14_region_filter_Metric { double x0; double y0; double g_x; double g_y; }; /* "pyregion/_region_filter.pyx":36 * m.y0 = y0 * * cdef struct _RegionContext: # <<<<<<<<<<<<<< * int (*update_metric)(Metric *m) * */ struct __pyx_t_8pyregion_14_region_filter__RegionContext { int (*update_metric)(struct __pyx_t_8pyregion_14_region_filter_Metric *); }; /* "pyregion/_region_filter.pyx":39 * int (*update_metric)(Metric *m) * * cdef class RegionContext: # <<<<<<<<<<<<<< * cdef _RegionContext c * */ struct __pyx_obj_8pyregion_14_region_filter_RegionContext { PyObject_HEAD struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionContext *__pyx_vtab; struct __pyx_t_8pyregion_14_region_filter__RegionContext c; }; /* "pyregion/_region_filter.pyx":68 * * * cdef class RegionBase: # <<<<<<<<<<<<<< * cdef Metric m * cdef RegionContext c */ struct __pyx_obj_8pyregion_14_region_filter_RegionBase { PyObject_HEAD struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *__pyx_vtab; struct __pyx_t_8pyregion_14_region_filter_Metric m; struct __pyx_obj_8pyregion_14_region_filter_RegionContext *c; }; /* "pyregion/_region_filter.pyx":237 * return ra * * cdef class RegionNot(RegionBase): # <<<<<<<<<<<<<< * """ * >>> r = RegionNot(r2) */ struct __pyx_obj_8pyregion_14_region_filter_RegionNot { struct __pyx_obj_8pyregion_14_region_filter_RegionBase __pyx_base; struct __pyx_obj_8pyregion_14_region_filter_RegionBase *child_region; }; /* "pyregion/_region_filter.pyx":249 * return not (self.child_region._inside(x, y)) * * cdef class RegionList(RegionBase): # <<<<<<<<<<<<<< * cdef object child_regions * */ struct __pyx_obj_8pyregion_14_region_filter_RegionList { struct __pyx_obj_8pyregion_14_region_filter_RegionBase __pyx_base; PyObject *child_regions; }; /* "pyregion/_region_filter.pyx":282 * return self.child_regions * * cdef class RegionOrList(RegionList): # <<<<<<<<<<<<<< * """ * >>> r = RegionOrList(r1, r2, r3, r4, ...) */ struct __pyx_obj_8pyregion_14_region_filter_RegionOrList { struct __pyx_obj_8pyregion_14_region_filter_RegionList __pyx_base; }; /* "pyregion/_region_filter.pyx":300 * return "Or" + repr(self.child_regions) * * cdef class RegionAndList(RegionList): # <<<<<<<<<<<<<< * """ * >>> r = RegionAndList(r1, r2, r3, r4, ...) */ struct __pyx_obj_8pyregion_14_region_filter_RegionAndList { struct __pyx_obj_8pyregion_14_region_filter_RegionList __pyx_base; }; /* "pyregion/_region_filter.pyx":351 * return RegionOrList(*(region1_list + region2_list)) * * cdef class Transform(RegionBase): # <<<<<<<<<<<<<< * cdef RegionBase child_region * */ struct __pyx_obj_8pyregion_14_region_filter_Transform { struct __pyx_obj_8pyregion_14_region_filter_RegionBase __pyx_base; struct __pyx_obj_8pyregion_14_region_filter_RegionBase *child_region; }; /* "pyregion/_region_filter.pyx":383 * * * cdef class Rotated(Transform): # <<<<<<<<<<<<<< * """ * Rotate the region by degree in anti-colockwise direction. */ struct __pyx_obj_8pyregion_14_region_filter_Rotated { struct __pyx_obj_8pyregion_14_region_filter_Transform __pyx_base; double sin_theta; double cos_theta; double origin_x; double origin_y; }; /* "pyregion/_region_filter.pyx":426 * yp[0] = y2 + oy * * cdef class Translated(Transform): # <<<<<<<<<<<<<< * """ * Translated region. */ struct __pyx_obj_8pyregion_14_region_filter_Translated { struct __pyx_obj_8pyregion_14_region_filter_Transform __pyx_base; double dx; double dy; }; /* "pyregion/_region_filter.pyx":449 * # Basic Shapes * * cdef class Circle(RegionBase): # <<<<<<<<<<<<<< * """ * Circle. */ struct __pyx_obj_8pyregion_14_region_filter_Circle { struct __pyx_obj_8pyregion_14_region_filter_RegionBase __pyx_base; double xc; double yc; double radius; double radius2; }; /* "pyregion/_region_filter.pyx":484 * return "Circle(%f, %f, %f)" % (self.xc, self.yc, self.radius) * * cdef class Ellipse(RegionBase): # <<<<<<<<<<<<<< * """ * Ellipse. */ struct __pyx_obj_8pyregion_14_region_filter_Ellipse { struct __pyx_obj_8pyregion_14_region_filter_RegionBase __pyx_base; double xc; double yc; double radius_major; double radius_major_2; double radius_minor; double radius_minor_2; double radius_major_2_radius_minor_2; }; /* "pyregion/_region_filter.pyx":525 * return "Ellipse(%f, %f, %f, %f)" % (self.xc, self.yc, self.radius_major, self.radius_minor) * * cdef class Box(RegionBase): # <<<<<<<<<<<<<< * """ * Box. */ struct __pyx_obj_8pyregion_14_region_filter_Box { struct __pyx_obj_8pyregion_14_region_filter_RegionBase __pyx_base; double x1; double x2; double y1; double y2; }; /* "pyregion/_region_filter.pyx":555 * return (self.x1 <= x) & (x <= self.x2) & (self.y1 <= y) & (y <= self.y2) * * cdef class Polygon(RegionBase): # <<<<<<<<<<<<<< * """ * Polygon. */ struct __pyx_obj_8pyregion_14_region_filter_Polygon { struct __pyx_obj_8pyregion_14_region_filter_RegionBase __pyx_base; PyArrayObject *xa; PyArrayObject *ya; double *x; double *y; int n; }; /* "pyregion/_region_filter.pyx":616 * return r * * cdef class AngleRange(RegionBase): # <<<<<<<<<<<<<< * """ * AngleRange. */ struct __pyx_obj_8pyregion_14_region_filter_AngleRange { struct __pyx_obj_8pyregion_14_region_filter_RegionBase __pyx_base; double xc; double yc; double degree1; double degree2; double radian1; double radian2; }; /* "pyregion/_region_filter.pyx":39 * int (*update_metric)(Metric *m) * * cdef class RegionContext: # <<<<<<<<<<<<<< * cdef _RegionContext c * */ struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionContext { PyObject *(*set_update_func)(struct __pyx_obj_8pyregion_14_region_filter_RegionContext *, int (*)(struct __pyx_t_8pyregion_14_region_filter_Metric *)); }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionContext *__pyx_vtabptr_8pyregion_14_region_filter_RegionContext; /* "pyregion/_region_filter.pyx":68 * * * cdef class RegionBase: # <<<<<<<<<<<<<< * cdef Metric m * cdef RegionContext c */ struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase { PyObject *(*update_metric)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *); PyObject *(*metric_set_origin)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *); npy_bool (*_inside)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double); PyArrayObject *(*_mask)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, npy_intp, npy_intp); }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; /* "pyregion/_region_filter.pyx":237 * return ra * * cdef class RegionNot(RegionBase): # <<<<<<<<<<<<<< * """ * >>> r = RegionNot(r2) */ struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionNot { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionNot *__pyx_vtabptr_8pyregion_14_region_filter_RegionNot; /* "pyregion/_region_filter.pyx":249 * return not (self.child_region._inside(x, y)) * * cdef class RegionList(RegionBase): # <<<<<<<<<<<<<< * cdef object child_regions * */ struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionList { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionList *__pyx_vtabptr_8pyregion_14_region_filter_RegionList; /* "pyregion/_region_filter.pyx":282 * return self.child_regions * * cdef class RegionOrList(RegionList): # <<<<<<<<<<<<<< * """ * >>> r = RegionOrList(r1, r2, r3, r4, ...) */ struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionOrList { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionList __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionOrList *__pyx_vtabptr_8pyregion_14_region_filter_RegionOrList; /* "pyregion/_region_filter.pyx":300 * return "Or" + repr(self.child_regions) * * cdef class RegionAndList(RegionList): # <<<<<<<<<<<<<< * """ * >>> r = RegionAndList(r1, r2, r3, r4, ...) */ struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionAndList { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionList __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionAndList *__pyx_vtabptr_8pyregion_14_region_filter_RegionAndList; /* "pyregion/_region_filter.pyx":351 * return RegionOrList(*(region1_list + region2_list)) * * cdef class Transform(RegionBase): # <<<<<<<<<<<<<< * cdef RegionBase child_region * */ struct __pyx_vtabstruct_8pyregion_14_region_filter_Transform { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_base; int (*_transform)(struct __pyx_obj_8pyregion_14_region_filter_Transform *, double, double, double *, double *); }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Transform *__pyx_vtabptr_8pyregion_14_region_filter_Transform; /* "pyregion/_region_filter.pyx":383 * * * cdef class Rotated(Transform): # <<<<<<<<<<<<<< * """ * Rotate the region by degree in anti-colockwise direction. */ struct __pyx_vtabstruct_8pyregion_14_region_filter_Rotated { struct __pyx_vtabstruct_8pyregion_14_region_filter_Transform __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Rotated *__pyx_vtabptr_8pyregion_14_region_filter_Rotated; /* "pyregion/_region_filter.pyx":426 * yp[0] = y2 + oy * * cdef class Translated(Transform): # <<<<<<<<<<<<<< * """ * Translated region. */ struct __pyx_vtabstruct_8pyregion_14_region_filter_Translated { struct __pyx_vtabstruct_8pyregion_14_region_filter_Transform __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Translated *__pyx_vtabptr_8pyregion_14_region_filter_Translated; /* "pyregion/_region_filter.pyx":449 * # Basic Shapes * * cdef class Circle(RegionBase): # <<<<<<<<<<<<<< * """ * Circle. */ struct __pyx_vtabstruct_8pyregion_14_region_filter_Circle { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_base; PyObject *(*_set_v)(struct __pyx_obj_8pyregion_14_region_filter_Circle *, double, double, double); PyObject *(*_get_v)(struct __pyx_obj_8pyregion_14_region_filter_Circle *); }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Circle *__pyx_vtabptr_8pyregion_14_region_filter_Circle; /* "pyregion/_region_filter.pyx":484 * return "Circle(%f, %f, %f)" % (self.xc, self.yc, self.radius) * * cdef class Ellipse(RegionBase): # <<<<<<<<<<<<<< * """ * Ellipse. */ struct __pyx_vtabstruct_8pyregion_14_region_filter_Ellipse { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Ellipse *__pyx_vtabptr_8pyregion_14_region_filter_Ellipse; /* "pyregion/_region_filter.pyx":525 * return "Ellipse(%f, %f, %f, %f)" % (self.xc, self.yc, self.radius_major, self.radius_minor) * * cdef class Box(RegionBase): # <<<<<<<<<<<<<< * """ * Box. */ struct __pyx_vtabstruct_8pyregion_14_region_filter_Box { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Box *__pyx_vtabptr_8pyregion_14_region_filter_Box; /* "pyregion/_region_filter.pyx":555 * return (self.x1 <= x) & (x <= self.x2) & (self.y1 <= y) & (y <= self.y2) * * cdef class Polygon(RegionBase): # <<<<<<<<<<<<<< * """ * Polygon. */ struct __pyx_vtabstruct_8pyregion_14_region_filter_Polygon { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_base; }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Polygon *__pyx_vtabptr_8pyregion_14_region_filter_Polygon; /* "pyregion/_region_filter.pyx":616 * return r * * cdef class AngleRange(RegionBase): # <<<<<<<<<<<<<< * """ * AngleRange. */ struct __pyx_vtabstruct_8pyregion_14_region_filter_AngleRange { struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_base; double (*_fix_angle)(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *, double); }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_AngleRange *__pyx_vtabptr_8pyregion_14_region_filter_AngleRange; /* --- Runtime support code (head) --- */ /* Refnanny.proto */ #ifndef CYTHON_REFNANNY #define CYTHON_REFNANNY 0 #endif #if CYTHON_REFNANNY typedef struct { void (*INCREF)(void*, PyObject*, int); void (*DECREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int); void* (*SetupContext)(const char*, int, const char*); void (*FinishContext)(void**); } __Pyx_RefNannyAPIStruct; static __Pyx_RefNannyAPIStruct *__Pyx_RefNanny = NULL; static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname); #define __Pyx_RefNannyDeclarations void *__pyx_refnanny = NULL; #ifdef WITH_THREAD #define __Pyx_RefNannySetupContext(name, acquire_gil)\ if (acquire_gil) {\ PyGILState_STATE __pyx_gilstate_save = PyGILState_Ensure();\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ PyGILState_Release(__pyx_gilstate_save);\ } else {\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__);\ } #else #define __Pyx_RefNannySetupContext(name, acquire_gil)\ __pyx_refnanny = __Pyx_RefNanny->SetupContext((name), __LINE__, __FILE__) #endif #define __Pyx_RefNannyFinishContext()\ __Pyx_RefNanny->FinishContext(&__pyx_refnanny) #define __Pyx_INCREF(r) __Pyx_RefNanny->INCREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_DECREF(r) __Pyx_RefNanny->DECREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GOTREF(r) __Pyx_RefNanny->GOTREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_GIVEREF(r) __Pyx_RefNanny->GIVEREF(__pyx_refnanny, (PyObject *)(r), __LINE__) #define __Pyx_XINCREF(r) do { if((r) != NULL) {__Pyx_INCREF(r); }} while(0) #define __Pyx_XDECREF(r) do { if((r) != NULL) {__Pyx_DECREF(r); }} while(0) #define __Pyx_XGOTREF(r) do { if((r) != NULL) {__Pyx_GOTREF(r); }} while(0) #define __Pyx_XGIVEREF(r) do { if((r) != NULL) {__Pyx_GIVEREF(r);}} while(0) #else #define __Pyx_RefNannyDeclarations #define __Pyx_RefNannySetupContext(name, acquire_gil) #define __Pyx_RefNannyFinishContext() #define __Pyx_INCREF(r) Py_INCREF(r) #define __Pyx_DECREF(r) Py_DECREF(r) #define __Pyx_GOTREF(r) #define __Pyx_GIVEREF(r) #define __Pyx_XINCREF(r) Py_XINCREF(r) #define __Pyx_XDECREF(r) Py_XDECREF(r) #define __Pyx_XGOTREF(r) #define __Pyx_XGIVEREF(r) #endif #define __Pyx_XDECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_XDECREF(tmp);\ } while (0) #define __Pyx_DECREF_SET(r, v) do {\ PyObject *tmp = (PyObject *) r;\ r = v; __Pyx_DECREF(tmp);\ } while (0) #define __Pyx_CLEAR(r) do { PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);} while(0) #define __Pyx_XCLEAR(r) do { if((r) != NULL) {PyObject* tmp = ((PyObject*)(r)); r = NULL; __Pyx_DECREF(tmp);}} while(0) /* PyObjectGetAttrStr.proto */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GetAttrStr(o,n) PyObject_GetAttr(o,n) #endif /* GetBuiltinName.proto */ static PyObject *__Pyx_GetBuiltinName(PyObject *name); /* RaiseArgTupleInvalid.proto */ static void __Pyx_RaiseArgtupleInvalid(const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found); /* KeywordStringCheck.proto */ static int __Pyx_CheckKeywordStrings(PyObject *kwdict, const char* function_name, int kw_allowed); /* PyObjectCall.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw); #else #define __Pyx_PyObject_Call(func, arg, kw) PyObject_Call(func, arg, kw) #endif /* PyThreadStateGet.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyThreadState_declare PyThreadState *__pyx_tstate; #define __Pyx_PyThreadState_assign __pyx_tstate = __Pyx_PyThreadState_Current; #define __Pyx_PyErr_Occurred() __pyx_tstate->curexc_type #else #define __Pyx_PyThreadState_declare #define __Pyx_PyThreadState_assign #define __Pyx_PyErr_Occurred() PyErr_Occurred() #endif /* PyErrFetchRestore.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_Clear() __Pyx_ErrRestore(NULL, NULL, NULL) #define __Pyx_ErrRestoreWithState(type, value, tb) __Pyx_ErrRestoreInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) __Pyx_ErrFetchInState(PyThreadState_GET(), type, value, tb) #define __Pyx_ErrRestore(type, value, tb) __Pyx_ErrRestoreInState(__pyx_tstate, type, value, tb) #define __Pyx_ErrFetch(type, value, tb) __Pyx_ErrFetchInState(__pyx_tstate, type, value, tb) static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb); static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb); #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_PyErr_SetNone(exc) (Py_INCREF(exc), __Pyx_ErrRestore((exc), NULL, NULL)) #else #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #endif #else #define __Pyx_PyErr_Clear() PyErr_Clear() #define __Pyx_PyErr_SetNone(exc) PyErr_SetNone(exc) #define __Pyx_ErrRestoreWithState(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchWithState(type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestoreInState(tstate, type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetchInState(tstate, type, value, tb) PyErr_Fetch(type, value, tb) #define __Pyx_ErrRestore(type, value, tb) PyErr_Restore(type, value, tb) #define __Pyx_ErrFetch(type, value, tb) PyErr_Fetch(type, value, tb) #endif /* RaiseException.proto */ static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause); /* PyDictVersioning.proto */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS #define __PYX_DICT_VERSION_INIT ((PY_UINT64_T) -1) #define __PYX_GET_DICT_VERSION(dict) (((PyDictObject*)(dict))->ma_version_tag) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var)\ (version_var) = __PYX_GET_DICT_VERSION(dict);\ (cache_var) = (value); #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ if (likely(__PYX_GET_DICT_VERSION(DICT) == __pyx_dict_version)) {\ (VAR) = __pyx_dict_cached_value;\ } else {\ (VAR) = __pyx_dict_cached_value = (LOOKUP);\ __pyx_dict_version = __PYX_GET_DICT_VERSION(DICT);\ }\ } static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj); static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj); static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version); #else #define __PYX_GET_DICT_VERSION(dict) (0) #define __PYX_UPDATE_DICT_CACHE(dict, value, cache_var, version_var) #define __PYX_PY_DICT_LOOKUP_IF_MODIFIED(VAR, DICT, LOOKUP) (VAR) = (LOOKUP); #endif /* GetModuleGlobalName.proto */ #if CYTHON_USE_DICT_VERSIONS #define __Pyx_GetModuleGlobalName(var, name) {\ static PY_UINT64_T __pyx_dict_version = 0;\ static PyObject *__pyx_dict_cached_value = NULL;\ (var) = (likely(__pyx_dict_version == __PYX_GET_DICT_VERSION(__pyx_d))) ?\ (likely(__pyx_dict_cached_value) ? __Pyx_NewRef(__pyx_dict_cached_value) : __Pyx_GetBuiltinName(name)) :\ __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } #define __Pyx_GetModuleGlobalNameUncached(var, name) {\ PY_UINT64_T __pyx_dict_version;\ PyObject *__pyx_dict_cached_value;\ (var) = __Pyx__GetModuleGlobalName(name, &__pyx_dict_version, &__pyx_dict_cached_value);\ } static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value); #else #define __Pyx_GetModuleGlobalName(var, name) (var) = __Pyx__GetModuleGlobalName(name) #define __Pyx_GetModuleGlobalNameUncached(var, name) (var) = __Pyx__GetModuleGlobalName(name) static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name); #endif /* PyFunctionFastCall.proto */ #if CYTHON_FAST_PYCALL #define __Pyx_PyFunction_FastCall(func, args, nargs)\ __Pyx_PyFunction_FastCallDict((func), (args), (nargs), NULL) #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs); #else #define __Pyx_PyFunction_FastCallDict(func, args, nargs, kwargs) _PyFunction_FastCallDict(func, args, nargs, kwargs) #endif #define __Pyx_BUILD_ASSERT_EXPR(cond)\ (sizeof(char [1 - 2*!(cond)]) - 1) #ifndef Py_MEMBER_SIZE #define Py_MEMBER_SIZE(type, member) sizeof(((type *)0)->member) #endif static size_t __pyx_pyframe_localsplus_offset = 0; #include "frameobject.h" #define __Pxy_PyFrame_Initialize_Offsets()\ ((void)__Pyx_BUILD_ASSERT_EXPR(sizeof(PyFrameObject) == offsetof(PyFrameObject, f_localsplus) + Py_MEMBER_SIZE(PyFrameObject, f_localsplus)),\ (void)(__pyx_pyframe_localsplus_offset = ((size_t)PyFrame_Type.tp_basicsize) - Py_MEMBER_SIZE(PyFrameObject, f_localsplus))) #define __Pyx_PyFrame_GetLocalsplus(frame)\ (assert(__pyx_pyframe_localsplus_offset), (PyObject **)(((char *)(frame)) + __pyx_pyframe_localsplus_offset)) #endif /* PyObjectCallMethO.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg); #endif /* PyObjectCallNoArg.proto */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func); #else #define __Pyx_PyObject_CallNoArg(func) __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL) #endif /* PyCFunctionFastCall.proto */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject *__Pyx_PyCFunction_FastCall(PyObject *func, PyObject **args, Py_ssize_t nargs); #else #define __Pyx_PyCFunction_FastCall(func, args, nargs) (assert(0), NULL) #endif /* PyObjectCallOneArg.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg); /* ArgTypeTest.proto */ #define __Pyx_ArgTypeTest(obj, type, none_allowed, name, exact)\ ((likely((Py_TYPE(obj) == type) | (none_allowed && (obj == Py_None)))) ? 1 :\ __Pyx__ArgTypeTest(obj, type, name, exact)) static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact); /* PyObjectCall2Args.proto */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2); /* GetAttr.proto */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *, PyObject *); /* HasAttr.proto */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *, PyObject *); /* ExtTypeTest.proto */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /* RaiseDoubleKeywords.proto */ static void __Pyx_RaiseDoubleKeywordsError(const char* func_name, PyObject* kw_name); /* ParseKeywords.proto */ static int __Pyx_ParseOptionalKeywords(PyObject *kwds, PyObject **argnames[],\ PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args,\ const char* function_name); /* PyIntCompare.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, long intval, long inplace); /* GetItemInt.proto */ #define __Pyx_GetItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL) :\ __Pyx_GetItemInt_Generic(o, to_py_func(i)))) #define __Pyx_GetItemInt_List(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_List_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "list index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); #define __Pyx_GetItemInt_Tuple(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_GetItemInt_Tuple_Fast(o, (Py_ssize_t)i, wraparound, boundscheck) :\ (PyErr_SetString(PyExc_IndexError, "tuple index out of range"), (PyObject*)NULL)) static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, int wraparound, int boundscheck); static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j); static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound, int boundscheck); /* SetItemInt.proto */ #define __Pyx_SetItemInt(o, i, v, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_SetItemInt_Fast(o, (Py_ssize_t)i, v, is_list, wraparound, boundscheck) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ __Pyx_SetItemInt_Generic(o, to_py_func(i), v))) static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v); static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, int wraparound, int boundscheck); /* DelItemInt.proto */ #define __Pyx_DelItemInt(o, i, type, is_signed, to_py_func, is_list, wraparound, boundscheck)\ (__Pyx_fits_Py_ssize_t(i, type, is_signed) ?\ __Pyx_DelItemInt_Fast(o, (Py_ssize_t)i, is_list, wraparound) :\ (is_list ? (PyErr_SetString(PyExc_IndexError, "list assignment index out of range"), -1) :\ __Pyx_DelItem_Generic(o, to_py_func(i)))) static int __Pyx_DelItem_Generic(PyObject *o, PyObject *j); static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, int wraparound); /* PySequenceContains.proto */ static CYTHON_INLINE int __Pyx_PySequence_ContainsTF(PyObject* item, PyObject* seq, int eq) { int result = PySequence_Contains(seq, item); return unlikely(result < 0) ? result : (result == (eq == Py_EQ)); } /* WriteUnraisableException.proto */ static void __Pyx_WriteUnraisable(const char *name, int clineno, int lineno, const char *filename, int full_traceback, int nogil); /* PyObject_GenericGetAttrNoDict.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttrNoDict PyObject_GenericGetAttr #endif /* PyObject_GenericGetAttr.proto */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name); #else #define __Pyx_PyObject_GenericGetAttr PyObject_GenericGetAttr #endif /* SetVTable.proto */ static int __Pyx_SetVtable(PyObject *dict, void *vtable); /* PyErrExceptionMatches.proto */ #if CYTHON_FAST_THREAD_STATE #define __Pyx_PyErr_ExceptionMatches(err) __Pyx_PyErr_ExceptionMatchesInState(__pyx_tstate, err) static CYTHON_INLINE int __Pyx_PyErr_ExceptionMatchesInState(PyThreadState* tstate, PyObject* err); #else #define __Pyx_PyErr_ExceptionMatches(err) PyErr_ExceptionMatches(err) #endif /* PyObjectGetAttrStrNoError.proto */ static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name); /* SetupReduce.proto */ static int __Pyx_setup_reduce(PyObject* type_obj); /* TypeImport.proto */ #ifndef __PYX_HAVE_RT_ImportType_proto #define __PYX_HAVE_RT_ImportType_proto enum __Pyx_ImportType_CheckSize { __Pyx_ImportType_CheckSize_Error = 0, __Pyx_ImportType_CheckSize_Warn = 1, __Pyx_ImportType_CheckSize_Ignore = 2 }; static PyTypeObject *__Pyx_ImportType(PyObject* module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size); #endif /* CalculateMetaclass.proto */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases); /* Py3ClassCreate.proto */ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc); static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass); /* CLineInTraceback.proto */ #ifdef CYTHON_CLINE_IN_TRACEBACK #define __Pyx_CLineForTraceback(tstate, c_line) (((CYTHON_CLINE_IN_TRACEBACK)) ? c_line : 0) #else static int __Pyx_CLineForTraceback(PyThreadState *tstate, int c_line); #endif /* CodeObjectCache.proto */ typedef struct { PyCodeObject* code_object; int code_line; } __Pyx_CodeObjectCacheEntry; struct __Pyx_CodeObjectCache { int count; int max_count; __Pyx_CodeObjectCacheEntry* entries; }; static struct __Pyx_CodeObjectCache __pyx_code_cache = {0,0,NULL}; static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line); static PyCodeObject *__pyx_find_code_object(int code_line); static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object); /* AddTraceback.proto */ static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename); /* GCCDiagnostics.proto */ #if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)) #define __Pyx_HAS_GCC_DIAGNOSTIC #endif /* CIntFromPy.proto */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_bool(npy_bool value); /* CIntToPy.proto */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value); /* CIntFromPy.proto */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *); /* FastTypeChecks.proto */ #if CYTHON_COMPILING_IN_CPYTHON #define __Pyx_TypeCheck(obj, type) __Pyx_IsSubtype(Py_TYPE(obj), (PyTypeObject *)type) static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches(PyObject *err, PyObject *type); static CYTHON_INLINE int __Pyx_PyErr_GivenExceptionMatches2(PyObject *err, PyObject *type1, PyObject *type2); #else #define __Pyx_TypeCheck(obj, type) PyObject_TypeCheck(obj, (PyTypeObject *)type) #define __Pyx_PyErr_GivenExceptionMatches(err, type) PyErr_GivenExceptionMatches(err, type) #define __Pyx_PyErr_GivenExceptionMatches2(err, type1, type2) (PyErr_GivenExceptionMatches(err, type1) || PyErr_GivenExceptionMatches(err, type2)) #endif #define __Pyx_PyException_Check(obj) __Pyx_TypeCheck(obj, PyExc_Exception) /* CheckBinaryVersion.proto */ static int __Pyx_check_binary_version(void); /* InitStrings.proto */ static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); static PyObject *__pyx_f_8pyregion_14_region_filter_13RegionContext_set_update_func(struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_self, int (*__pyx_v_update_metric)(struct __pyx_t_8pyregion_14_region_filter_Metric *)); /* proto*/ static PyObject *__pyx_f_8pyregion_14_region_filter_10RegionBase_update_metric(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self); /* proto*/ static PyObject *__pyx_f_8pyregion_14_region_filter_10RegionBase_metric_set_origin(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_cnt); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_10RegionBase__inside(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, CYTHON_UNUSED double __pyx_v_x, CYTHON_UNUSED double __pyx_v_y); /* proto*/ static PyArrayObject *__pyx_f_8pyregion_14_region_filter_10RegionBase__mask(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, npy_intp __pyx_v_nx, npy_intp __pyx_v_ny); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_9RegionNot__inside(struct __pyx_obj_8pyregion_14_region_filter_RegionNot *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_12RegionOrList__inside(struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_13RegionAndList__inside(struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ static int __pyx_f_8pyregion_14_region_filter_9Transform__transform(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self, double __pyx_v_x, double __pyx_v_y, double *__pyx_v_xp, double *__pyx_v_yp); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_9Transform__inside(struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ static int __pyx_f_8pyregion_14_region_filter_7Rotated__transform(struct __pyx_obj_8pyregion_14_region_filter_Rotated *__pyx_v_self, double __pyx_v_x, double __pyx_v_y, double *__pyx_v_xp, double *__pyx_v_yp); /* proto*/ static int __pyx_f_8pyregion_14_region_filter_10Translated__transform(struct __pyx_obj_8pyregion_14_region_filter_Translated *__pyx_v_self, double __pyx_v_x, double __pyx_v_y, double *__pyx_v_xp, double *__pyx_v_yp); /* proto*/ static PyObject *__pyx_f_8pyregion_14_region_filter_6Circle__set_v(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_radius); /* proto*/ static PyObject *__pyx_f_8pyregion_14_region_filter_6Circle__get_v(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_6Circle__inside(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_7Ellipse__inside(struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_3Box__inside(struct __pyx_obj_8pyregion_14_region_filter_Box *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_7Polygon__inside(struct __pyx_obj_8pyregion_14_region_filter_Polygon *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ static double __pyx_f_8pyregion_14_region_filter_10AngleRange__fix_angle(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self, double __pyx_v_a); /* proto*/ static npy_bool __pyx_f_8pyregion_14_region_filter_10AngleRange__inside(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto*/ /* Module declarations from 'numpy' */ /* Module declarations from 'pyregion.c_numpy' */ static PyTypeObject *__pyx_ptype_8pyregion_7c_numpy_dtype = 0; static PyTypeObject *__pyx_ptype_8pyregion_7c_numpy_ndarray = 0; static PyTypeObject *__pyx_ptype_8pyregion_7c_numpy_flatiter = 0; static PyTypeObject *__pyx_ptype_8pyregion_7c_numpy_broadcast = 0; /* Module declarations from 'pyregion.c_python' */ /* Module declarations from 'pyregion._region_filter' */ static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_RegionContext = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_RegionBase = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_RegionNot = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_RegionList = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_RegionOrList = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_RegionAndList = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_Transform = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_Rotated = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_Translated = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_Circle = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_Ellipse = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_Box = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_Polygon = 0; static PyTypeObject *__pyx_ptype_8pyregion_14_region_filter_AngleRange = 0; static struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_8pyregion_14_region_filter_metric_wcs = 0; static int __pyx_f_8pyregion_14_region_filter_MetricSetOrigin(struct __pyx_t_8pyregion_14_region_filter_Metric *, double, double); /*proto*/ static int __pyx_f_8pyregion_14_region_filter__update_metric_default(struct __pyx_t_8pyregion_14_region_filter_Metric *); /*proto*/ static int __pyx_f_8pyregion_14_region_filter__update_metric_wcs(struct __pyx_t_8pyregion_14_region_filter_Metric *); /*proto*/ #define __Pyx_MODULE_NAME "pyregion._region_filter" extern int __pyx_module_is_main_pyregion___region_filter; int __pyx_module_is_main_pyregion___region_filter = 0; /* Implementation of 'pyregion._region_filter' */ static PyObject *__pyx_builtin_TypeError; static PyObject *__pyx_builtin_ValueError; static const char __pyx_k_c[] = "c"; static const char __pyx_k_x[] = "x"; static const char __pyx_k_y[] = "y"; static const char __pyx_k_Or[] = "Or"; static const char __pyx_k_dx[] = "dx"; static const char __pyx_k_dy[] = "dy"; static const char __pyx_k_xc[] = "xc"; static const char __pyx_k_yc[] = "yc"; static const char __pyx_k_And[] = "And"; static const char __pyx_k_Box[] = "Box"; static const char __pyx_k_doc[] = "__doc__"; static const char __pyx_k_init[] = "__init__"; static const char __pyx_k_main[] = "__main__"; static const char __pyx_k_name[] = "__name__"; static const char __pyx_k_test[] = "__test__"; static const char __pyx_k_shape[] = "shape"; static const char __pyx_k_width[] = "width"; static const char __pyx_k_Circle[] = "Circle"; static const char __pyx_k_asList[] = "asList"; static const char __pyx_k_degree[] = "degree"; static const char __pyx_k_height[] = "height"; static const char __pyx_k_module[] = "__module__"; static const char __pyx_k_radius[] = "radius"; static const char __pyx_k_reduce[] = "__reduce__"; static const char __pyx_k_Ellipse[] = "Ellipse"; static const char __pyx_k_Polygon[] = "Polygon"; static const char __pyx_k_Rotated[] = "Rotated"; static const char __pyx_k_degree1[] = "degree1"; static const char __pyx_k_degree2[] = "degree2"; static const char __pyx_k_prepare[] = "__prepare__"; static const char __pyx_k_region1[] = "region1"; static const char __pyx_k_region2[] = "region2"; static const char __pyx_k_RegionOr[] = "RegionOr"; static const char __pyx_k_getstate[] = "__getstate__"; static const char __pyx_k_origin_x[] = "origin_x"; static const char __pyx_k_origin_y[] = "origin_y"; static const char __pyx_k_qualname[] = "__qualname__"; static const char __pyx_k_setstate[] = "__setstate__"; static const char __pyx_k_RegionAnd[] = "RegionAnd"; static const char __pyx_k_RegionNot[] = "RegionNot"; static const char __pyx_k_Transform[] = "Transform"; static const char __pyx_k_TypeError[] = "TypeError"; static const char __pyx_k_inside_xy[] = "inside_xy"; static const char __pyx_k_metaclass[] = "__metaclass__"; static const char __pyx_k_reduce_ex[] = "__reduce_ex__"; static const char __pyx_k_AngleRange[] = "AngleRange"; static const char __pyx_k_RegionBase[] = "RegionBase"; static const char __pyx_k_RegionList[] = "RegionList"; static const char __pyx_k_Translated[] = "Translated"; static const char __pyx_k_ValueError[] = "ValueError"; static const char __pyx_k_inside_x_y[] = "inside_x_y"; static const char __pyx_k_pyx_vtable[] = "__pyx_vtable__"; static const char __pyx_k_set_context[] = "set_context"; static const char __pyx_k_Circle_f_f_f[] = "Circle(%f, %f, %f)"; static const char __pyx_k_RegionOrList[] = "RegionOrList"; static const char __pyx_k_child_region[] = "child_region"; static const char __pyx_k_radius_major[] = "radius_major"; static const char __pyx_k_radius_minor[] = "radius_minor"; static const char __pyx_k_region1_list[] = "region1_list"; static const char __pyx_k_region2_list[] = "region2_list"; static const char __pyx_k_RegionAndList[] = "RegionAndList"; static const char __pyx_k_RegionContext[] = "RegionContext"; static const char __pyx_k_reduce_cython[] = "__reduce_cython__"; static const char __pyx_k_Ellipse_f_f_f_f[] = "Ellipse(%f, %f, %f, %f)"; static const char __pyx_k_setstate_cython[] = "__setstate_cython__"; static const char __pyx_k_NotYetImplemented[] = "NotYetImplemented"; static const char __pyx_k_RegionOr_line_335[] = "RegionOr (line 335)"; static const char __pyx_k_AngleRange_f_f_f_f[] = "AngleRange(%f, %f, %f, %f)"; static const char __pyx_k_RegionAnd_line_319[] = "RegionAnd (line 319)"; static const char __pyx_k_check_type_of_list[] = "_check_type_of_list"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; static const char __pyx_k_r_RegionOr_reg1_reg2[] = "\n >>> r = RegionOr(reg1, reg2)\n "; static const char __pyx_k_RegionFilterException[] = "RegionFilterException"; static const char __pyx_k_r_RegionAnd_reg1_reg2[] = "\n >>> r = RegionAnd(reg1, reg2)\n "; static const char __pyx_k_BaseClassInitException[] = "BaseClassInitException"; static const char __pyx_k_pyregion__region_filter[] = "pyregion._region_filter"; static const char __pyx_k_pyregion__region_filter_pyx[] = "pyregion/_region_filter.pyx"; static const char __pyx_k_input_array_has_a_wrong_shape[] = "input array has a wrong shape"; static const char __pyx_k_All_elements_should_be_subclass[] = "All elements should be subclass of RegionBase type: %s"; static const char __pyx_k_Pickling_of_struct_members_such[] = "Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)"; static const char __pyx_k_self_c_cannot_be_converted_to_a[] = "self.c cannot be converted to a Python object for pickling"; static const char __pyx_k_self_x_self_y_cannot_be_converte[] = "self.x,self.y cannot be converted to a Python object for pickling"; static const char __pyx_k_shape_of_the_input_image_must_be[] = "shape of the input image must be 2d: %s is given"; static const char __pyx_k_the_inut_needs_to_be_a_numpy_2_d[] = "the inut needs to be a numpy 2-d array or a tuple of two integers"; static PyObject *__pyx_kp_s_All_elements_should_be_subclass; static PyObject *__pyx_n_s_And; static PyObject *__pyx_n_s_AngleRange; static PyObject *__pyx_kp_s_AngleRange_f_f_f_f; static PyObject *__pyx_n_s_BaseClassInitException; static PyObject *__pyx_n_s_Box; static PyObject *__pyx_n_s_Circle; static PyObject *__pyx_kp_s_Circle_f_f_f; static PyObject *__pyx_n_s_Ellipse; static PyObject *__pyx_kp_s_Ellipse_f_f_f_f; static PyObject *__pyx_n_s_NotYetImplemented; static PyObject *__pyx_n_s_Or; static PyObject *__pyx_kp_s_Pickling_of_struct_members_such; static PyObject *__pyx_n_s_Polygon; static PyObject *__pyx_n_s_RegionAnd; static PyObject *__pyx_n_s_RegionAndList; static PyObject *__pyx_kp_u_RegionAnd_line_319; static PyObject *__pyx_n_s_RegionBase; static PyObject *__pyx_n_s_RegionContext; static PyObject *__pyx_n_s_RegionFilterException; static PyObject *__pyx_n_s_RegionList; static PyObject *__pyx_n_s_RegionNot; static PyObject *__pyx_n_s_RegionOr; static PyObject *__pyx_n_s_RegionOrList; static PyObject *__pyx_kp_u_RegionOr_line_335; static PyObject *__pyx_n_s_Rotated; static PyObject *__pyx_n_s_Transform; static PyObject *__pyx_n_s_Translated; static PyObject *__pyx_n_s_TypeError; static PyObject *__pyx_n_s_ValueError; static PyObject *__pyx_n_s_asList; static PyObject *__pyx_n_s_c; static PyObject *__pyx_n_s_check_type_of_list; static PyObject *__pyx_n_s_child_region; static PyObject *__pyx_n_s_cline_in_traceback; static PyObject *__pyx_n_s_degree; static PyObject *__pyx_n_s_degree1; static PyObject *__pyx_n_s_degree2; static PyObject *__pyx_n_s_doc; static PyObject *__pyx_n_s_dx; static PyObject *__pyx_n_s_dy; static PyObject *__pyx_n_s_getstate; static PyObject *__pyx_n_s_height; static PyObject *__pyx_n_s_init; static PyObject *__pyx_kp_s_input_array_has_a_wrong_shape; static PyObject *__pyx_n_s_inside_x_y; static PyObject *__pyx_n_s_inside_xy; static PyObject *__pyx_n_s_main; static PyObject *__pyx_n_s_metaclass; static PyObject *__pyx_n_s_module; static PyObject *__pyx_n_s_name; static PyObject *__pyx_n_s_origin_x; static PyObject *__pyx_n_s_origin_y; static PyObject *__pyx_n_s_prepare; static PyObject *__pyx_n_s_pyregion__region_filter; static PyObject *__pyx_kp_s_pyregion__region_filter_pyx; static PyObject *__pyx_n_s_pyx_vtable; static PyObject *__pyx_n_s_qualname; static PyObject *__pyx_kp_u_r_RegionAnd_reg1_reg2; static PyObject *__pyx_kp_u_r_RegionOr_reg1_reg2; static PyObject *__pyx_n_s_radius; static PyObject *__pyx_n_s_radius_major; static PyObject *__pyx_n_s_radius_minor; static PyObject *__pyx_n_s_reduce; static PyObject *__pyx_n_s_reduce_cython; static PyObject *__pyx_n_s_reduce_ex; static PyObject *__pyx_n_s_region1; static PyObject *__pyx_n_s_region1_list; static PyObject *__pyx_n_s_region2; static PyObject *__pyx_n_s_region2_list; static PyObject *__pyx_kp_s_self_c_cannot_be_converted_to_a; static PyObject *__pyx_kp_s_self_x_self_y_cannot_be_converte; static PyObject *__pyx_n_s_set_context; static PyObject *__pyx_n_s_setstate; static PyObject *__pyx_n_s_setstate_cython; static PyObject *__pyx_n_s_shape; static PyObject *__pyx_kp_s_shape_of_the_input_image_must_be; static PyObject *__pyx_n_s_test; static PyObject *__pyx_kp_s_the_inut_needs_to_be_a_numpy_2_d; static PyObject *__pyx_n_s_width; static PyObject *__pyx_n_s_x; static PyObject *__pyx_n_s_xc; static PyObject *__pyx_n_s_y; static PyObject *__pyx_n_s_yc; static int __pyx_pf_8pyregion_14_region_filter_13RegionContext___init__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionContext_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionContext_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_10RegionBase___init__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_2set_context(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_cnt); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_4__invert__(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_6__and__(PyObject *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_o); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_8__or__(PyObject *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_o); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_10mask(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, PyObject *__pyx_v_img_or_shape); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_12inside1(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, double __pyx_v_x, double __pyx_v_y); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_14inside(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_16inside_xy(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, PyObject *__pyx_v_xy); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_18inside_x_y(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_9RegionNot___init__(struct __pyx_obj_8pyregion_14_region_filter_RegionNot *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_9RegionNot_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionNot *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_9RegionNot_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionNot *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList__check_type_of_list(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, PyObject *__pyx_v_kl); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_10RegionList_2__init__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, PyObject *__pyx_v_kl); /* proto */ static Py_ssize_t __pyx_pf_8pyregion_14_region_filter_10RegionList_4__len__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_6__getitem__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, Py_ssize_t __pyx_v_x); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_10RegionList_8__setitem__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, Py_ssize_t __pyx_v_x, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_y); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_10RegionList_10__delitem__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, Py_ssize_t __pyx_v_x); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_10RegionList_12__contains__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_x); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_14__repr__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_16asList(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_18__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_20__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_12RegionOrList___repr__(struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_12RegionOrList_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_12RegionOrList_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionAndList___repr__(struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionAndList_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionAndList_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_RegionAnd(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region1, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region2); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_2RegionOr(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region1, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region2); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_9Transform___init__(struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_9Transform_5child___get__(struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_9Transform_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_9Transform_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_7Rotated___init__(struct __pyx_obj_8pyregion_14_region_filter_Rotated *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region, double __pyx_v_degree, double __pyx_v_origin_x, double __pyx_v_origin_y); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_7Rotated_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Rotated *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_7Rotated_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Rotated *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_10Translated___init__(struct __pyx_obj_8pyregion_14_region_filter_Translated *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region, double __pyx_v_dx, double __pyx_v_dy); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10Translated_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Translated *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10Translated_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Translated *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_6Circle___init__(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_radius, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_6Circle_2__repr__(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_6Circle_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_6Circle_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_7Ellipse___init__(struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_radius_major, double __pyx_v_radius_minor, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_7Ellipse_2__repr__(struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_7Ellipse_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_7Ellipse_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_3Box___init__(struct __pyx_obj_8pyregion_14_region_filter_Box *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_width, double __pyx_v_height, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_3Box_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Box *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_3Box_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Box *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_7Polygon___init__(struct __pyx_obj_8pyregion_14_region_filter_Polygon *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_7Polygon_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Polygon *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_7Polygon_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Polygon *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static int __pyx_pf_8pyregion_14_region_filter_10AngleRange___init__(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_degree1, double __pyx_v_degree2, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10AngleRange_2__repr__(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10AngleRange_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self); /* proto */ static PyObject *__pyx_pf_8pyregion_14_region_filter_10AngleRange_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state); /* proto */ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionContext(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionBase(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionNot(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionList(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionOrList(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionAndList(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Transform(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Rotated(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Translated(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Circle(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Ellipse(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Box(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Polygon(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_tp_new_8pyregion_14_region_filter_AngleRange(PyTypeObject *t, PyObject *a, PyObject *k); /*proto*/ static PyObject *__pyx_int_2; static PyObject *__pyx_tuple_; static PyObject *__pyx_tuple__2; static PyObject *__pyx_tuple__3; static PyObject *__pyx_tuple__4; static PyObject *__pyx_tuple__5; static PyObject *__pyx_tuple__6; static PyObject *__pyx_tuple__7; static PyObject *__pyx_tuple__8; static PyObject *__pyx_tuple__9; static PyObject *__pyx_tuple__10; static PyObject *__pyx_tuple__11; static PyObject *__pyx_tuple__12; static PyObject *__pyx_tuple__13; static PyObject *__pyx_tuple__14; static PyObject *__pyx_tuple__15; static PyObject *__pyx_tuple__16; static PyObject *__pyx_tuple__17; static PyObject *__pyx_tuple__18; static PyObject *__pyx_tuple__19; static PyObject *__pyx_tuple__20; static PyObject *__pyx_tuple__21; static PyObject *__pyx_tuple__22; static PyObject *__pyx_tuple__23; static PyObject *__pyx_tuple__24; static PyObject *__pyx_tuple__25; static PyObject *__pyx_tuple__26; static PyObject *__pyx_tuple__27; static PyObject *__pyx_tuple__28; static PyObject *__pyx_tuple__29; static PyObject *__pyx_tuple__30; static PyObject *__pyx_tuple__32; static PyObject *__pyx_codeobj__31; static PyObject *__pyx_codeobj__33; /* Late includes */ /* "pyregion/_region_filter.pyx":32 * double g_y * * cdef int MetricSetOrigin(Metric *m, double x0, double y0): # <<<<<<<<<<<<<< * m.x0 = x0 * m.y0 = y0 */ static int __pyx_f_8pyregion_14_region_filter_MetricSetOrigin(struct __pyx_t_8pyregion_14_region_filter_Metric *__pyx_v_m, double __pyx_v_x0, double __pyx_v_y0) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("MetricSetOrigin", 0); /* "pyregion/_region_filter.pyx":33 * * cdef int MetricSetOrigin(Metric *m, double x0, double y0): * m.x0 = x0 # <<<<<<<<<<<<<< * m.y0 = y0 * */ __pyx_v_m->x0 = __pyx_v_x0; /* "pyregion/_region_filter.pyx":34 * cdef int MetricSetOrigin(Metric *m, double x0, double y0): * m.x0 = x0 * m.y0 = y0 # <<<<<<<<<<<<<< * * cdef struct _RegionContext: */ __pyx_v_m->y0 = __pyx_v_y0; /* "pyregion/_region_filter.pyx":32 * double g_y * * cdef int MetricSetOrigin(Metric *m, double x0, double y0): # <<<<<<<<<<<<<< * m.x0 = x0 * m.y0 = y0 */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":42 * cdef _RegionContext c * * def __init__(self): # <<<<<<<<<<<<<< * pass * */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_13RegionContext_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_13RegionContext_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; __pyx_r = __pyx_pf_8pyregion_14_region_filter_13RegionContext___init__(((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_13RegionContext___init__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":45 * pass * * cdef set_update_func(self, int (*update_metric)(Metric *m)): # <<<<<<<<<<<<<< * self.c.update_metric = update_metric * */ static PyObject *__pyx_f_8pyregion_14_region_filter_13RegionContext_set_update_func(struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_self, int (*__pyx_v_update_metric)(struct __pyx_t_8pyregion_14_region_filter_Metric *)) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("set_update_func", 0); /* "pyregion/_region_filter.pyx":46 * * cdef set_update_func(self, int (*update_metric)(Metric *m)): * self.c.update_metric = update_metric # <<<<<<<<<<<<<< * * cdef int _update_metric_default(Metric *m): */ __pyx_v_self->c.update_metric = __pyx_v_update_metric; /* "pyregion/_region_filter.pyx":45 * pass * * cdef set_update_func(self, int (*update_metric)(Metric *m)): # <<<<<<<<<<<<<< * self.c.update_metric = update_metric * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("self.c cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionContext_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionContext_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_13RegionContext_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionContext_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("self.c cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("self.c cannot be converted to a Python object for pickling") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("self.c cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionContext.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("self.c cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("self.c cannot be converted to a Python object for pickling") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionContext_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionContext_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_13RegionContext_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionContext_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("self.c cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): * raise TypeError("self.c cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("self.c cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("self.c cannot be converted to a Python object for pickling") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionContext.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":48 * self.c.update_metric = update_metric * * cdef int _update_metric_default(Metric *m): # <<<<<<<<<<<<<< * m.g_x = 1. * m.g_y = 1. */ static int __pyx_f_8pyregion_14_region_filter__update_metric_default(struct __pyx_t_8pyregion_14_region_filter_Metric *__pyx_v_m) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_update_metric_default", 0); /* "pyregion/_region_filter.pyx":49 * * cdef int _update_metric_default(Metric *m): * m.g_x = 1. # <<<<<<<<<<<<<< * m.g_y = 1. * */ __pyx_v_m->g_x = 1.; /* "pyregion/_region_filter.pyx":50 * cdef int _update_metric_default(Metric *m): * m.g_x = 1. * m.g_y = 1. # <<<<<<<<<<<<<< * * cdef int _update_metric_wcs(Metric *m): */ __pyx_v_m->g_y = 1.; /* "pyregion/_region_filter.pyx":48 * self.c.update_metric = update_metric * * cdef int _update_metric_default(Metric *m): # <<<<<<<<<<<<<< * m.g_x = 1. * m.g_y = 1. */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":52 * m.g_y = 1. * * cdef int _update_metric_wcs(Metric *m): # <<<<<<<<<<<<<< * cdef double theta * theta = m.y0 / 180. * 3.1415926; */ static int __pyx_f_8pyregion_14_region_filter__update_metric_wcs(struct __pyx_t_8pyregion_14_region_filter_Metric *__pyx_v_m) { double __pyx_v_theta; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_update_metric_wcs", 0); /* "pyregion/_region_filter.pyx":54 * cdef int _update_metric_wcs(Metric *m): * cdef double theta * theta = m.y0 / 180. * 3.1415926; # <<<<<<<<<<<<<< * * m.g_x = cos(theta) */ __pyx_v_theta = ((__pyx_v_m->y0 / 180.) * 3.1415926); /* "pyregion/_region_filter.pyx":56 * theta = m.y0 / 180. * 3.1415926; * * m.g_x = cos(theta) # <<<<<<<<<<<<<< * m.g_y = 1. * */ __pyx_v_m->g_x = cos(__pyx_v_theta); /* "pyregion/_region_filter.pyx":57 * * m.g_x = cos(theta) * m.g_y = 1. # <<<<<<<<<<<<<< * * cdef RegionContext metric_wcs */ __pyx_v_m->g_y = 1.; /* "pyregion/_region_filter.pyx":52 * m.g_y = 1. * * cdef int _update_metric_wcs(Metric *m): # <<<<<<<<<<<<<< * cdef double theta * theta = m.y0 / 180. * 3.1415926; */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":72 * cdef RegionContext c * * def __init__(self): # <<<<<<<<<<<<<< * raise BaseClassInitException() * */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_10RegionBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_10RegionBase_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); if (unlikely(PyTuple_GET_SIZE(__pyx_args) > 0)) { __Pyx_RaiseArgtupleInvalid("__init__", 1, 0, 0, PyTuple_GET_SIZE(__pyx_args)); return -1;} if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase___init__(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_10RegionBase___init__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":73 * * def __init__(self): * raise BaseClassInitException() # <<<<<<<<<<<<<< * * cdef update_metric(self): */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_BaseClassInitException); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(1, 73, __pyx_L1_error) /* "pyregion/_region_filter.pyx":72 * cdef RegionContext c * * def __init__(self): # <<<<<<<<<<<<<< * raise BaseClassInitException() * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":75 * raise BaseClassInitException() * * cdef update_metric(self): # <<<<<<<<<<<<<< * if self.c: * self.c.c.update_metric(&(self.m)) */ static PyObject *__pyx_f_8pyregion_14_region_filter_10RegionBase_update_metric(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("update_metric", 0); /* "pyregion/_region_filter.pyx":76 * * cdef update_metric(self): * if self.c: # <<<<<<<<<<<<<< * self.c.c.update_metric(&(self.m)) * else: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_self->c)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 76, __pyx_L1_error) if (__pyx_t_1) { /* "pyregion/_region_filter.pyx":77 * cdef update_metric(self): * if self.c: * self.c.c.update_metric(&(self.m)) # <<<<<<<<<<<<<< * else: * _update_metric_default(&(self.m)) */ (void)(__pyx_v_self->c->c.update_metric((&__pyx_v_self->m))); /* "pyregion/_region_filter.pyx":76 * * cdef update_metric(self): * if self.c: # <<<<<<<<<<<<<< * self.c.c.update_metric(&(self.m)) * else: */ goto __pyx_L3; } /* "pyregion/_region_filter.pyx":79 * self.c.c.update_metric(&(self.m)) * else: * _update_metric_default(&(self.m)) # <<<<<<<<<<<<<< * * def set_context(self, RegionContext cnt): */ /*else*/ { (void)(__pyx_f_8pyregion_14_region_filter__update_metric_default((&__pyx_v_self->m))); } __pyx_L3:; /* "pyregion/_region_filter.pyx":75 * raise BaseClassInitException() * * cdef update_metric(self): # <<<<<<<<<<<<<< * if self.c: * self.c.c.update_metric(&(self.m)) */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionBase.update_metric", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":81 * _update_metric_default(&(self.m)) * * def set_context(self, RegionContext cnt): # <<<<<<<<<<<<<< * self.c = cnt * self.update_metric() */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_3set_context(PyObject *__pyx_v_self, PyObject *__pyx_v_cnt); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_3set_context(PyObject *__pyx_v_self, PyObject *__pyx_v_cnt) { int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("set_context (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_cnt), __pyx_ptype_8pyregion_14_region_filter_RegionContext, 1, "cnt", 0))) __PYX_ERR(1, 81, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_2set_context(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)__pyx_v_cnt)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_2set_context(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_cnt) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_context", 0); /* "pyregion/_region_filter.pyx":82 * * def set_context(self, RegionContext cnt): * self.c = cnt # <<<<<<<<<<<<<< * self.update_metric() * */ __Pyx_INCREF(((PyObject *)__pyx_v_cnt)); __Pyx_GIVEREF(((PyObject *)__pyx_v_cnt)); __Pyx_GOTREF(__pyx_v_self->c); __Pyx_DECREF(((PyObject *)__pyx_v_self->c)); __pyx_v_self->c = __pyx_v_cnt; /* "pyregion/_region_filter.pyx":83 * def set_context(self, RegionContext cnt): * self.c = cnt * self.update_metric() # <<<<<<<<<<<<<< * * cdef metric_set_origin(self, double xc, double yc, */ __pyx_t_1 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->__pyx_vtab)->update_metric(__pyx_v_self); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 83, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":81 * _update_metric_default(&(self.m)) * * def set_context(self, RegionContext cnt): # <<<<<<<<<<<<<< * self.c = cnt * self.update_metric() */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.set_context", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":85 * self.update_metric() * * cdef metric_set_origin(self, double xc, double yc, # <<<<<<<<<<<<<< * RegionContext cnt): * */ static PyObject *__pyx_f_8pyregion_14_region_filter_10RegionBase_metric_set_origin(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_cnt) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("metric_set_origin", 0); /* "pyregion/_region_filter.pyx":88 * RegionContext cnt): * * MetricSetOrigin(&(self.m), xc, yc) # <<<<<<<<<<<<<< * if cnt: * self.set_context(cnt) */ (void)(__pyx_f_8pyregion_14_region_filter_MetricSetOrigin((&__pyx_v_self->m), __pyx_v_xc, __pyx_v_yc)); /* "pyregion/_region_filter.pyx":89 * * MetricSetOrigin(&(self.m), xc, yc) * if cnt: # <<<<<<<<<<<<<< * self.set_context(cnt) * else: */ __pyx_t_1 = __Pyx_PyObject_IsTrue(((PyObject *)__pyx_v_cnt)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 89, __pyx_L1_error) if (__pyx_t_1) { /* "pyregion/_region_filter.pyx":90 * MetricSetOrigin(&(self.m), xc, yc) * if cnt: * self.set_context(cnt) # <<<<<<<<<<<<<< * else: * self.update_metric() */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_set_context); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) { __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3); if (likely(__pyx_t_4)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3); __Pyx_INCREF(__pyx_t_4); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_3, function); } } __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, ((PyObject *)__pyx_v_cnt)) : __Pyx_PyObject_CallOneArg(__pyx_t_3, ((PyObject *)__pyx_v_cnt)); __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 90, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; /* "pyregion/_region_filter.pyx":89 * * MetricSetOrigin(&(self.m), xc, yc) * if cnt: # <<<<<<<<<<<<<< * self.set_context(cnt) * else: */ goto __pyx_L3; } /* "pyregion/_region_filter.pyx":92 * self.set_context(cnt) * else: * self.update_metric() # <<<<<<<<<<<<<< * * def __invert__(self): */ /*else*/ { __pyx_t_2 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->__pyx_vtab)->update_metric(__pyx_v_self); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; } __pyx_L3:; /* "pyregion/_region_filter.pyx":85 * self.update_metric() * * cdef metric_set_origin(self, double xc, double yc, # <<<<<<<<<<<<<< * RegionContext cnt): * */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.metric_set_origin", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":94 * self.update_metric() * * def __invert__(self): # <<<<<<<<<<<<<< * return RegionNot(self) * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_5__invert__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_5__invert__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__invert__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_4__invert__(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_4__invert__(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__invert__", 0); /* "pyregion/_region_filter.pyx":95 * * def __invert__(self): * return RegionNot(self) # <<<<<<<<<<<<<< * * def __and__(self, RegionBase o): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_8pyregion_14_region_filter_RegionNot), ((PyObject *)__pyx_v_self)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 95, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":94 * self.update_metric() * * def __invert__(self): # <<<<<<<<<<<<<< * return RegionNot(self) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.__invert__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":97 * return RegionNot(self) * * def __and__(self, RegionBase o): # <<<<<<<<<<<<<< * return RegionAnd(self, o) * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_7__and__(PyObject *__pyx_v_self, PyObject *__pyx_v_o); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_7__and__(PyObject *__pyx_v_self, PyObject *__pyx_v_o) { int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__and__ (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_o), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "o", 0))) __PYX_ERR(1, 97, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_6__and__(((PyObject *)__pyx_v_self), ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_o)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_6__and__(PyObject *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_o) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__and__", 0); /* "pyregion/_region_filter.pyx":98 * * def __and__(self, RegionBase o): * return RegionAnd(self, o) # <<<<<<<<<<<<<< * * def __or__(self, RegionBase o): */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RegionAnd); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, ((PyObject *)__pyx_v_o)}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, ((PyObject *)__pyx_v_o)}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_self); __Pyx_INCREF(((PyObject *)__pyx_v_o)); __Pyx_GIVEREF(((PyObject *)__pyx_v_o)); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, ((PyObject *)__pyx_v_o)); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":97 * return RegionNot(self) * * def __and__(self, RegionBase o): # <<<<<<<<<<<<<< * return RegionAnd(self, o) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.__and__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":100 * return RegionAnd(self, o) * * def __or__(self, RegionBase o): # <<<<<<<<<<<<<< * return RegionOr(self, o) * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_9__or__(PyObject *__pyx_v_self, PyObject *__pyx_v_o); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_9__or__(PyObject *__pyx_v_self, PyObject *__pyx_v_o) { int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__or__ (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_o), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "o", 0))) __PYX_ERR(1, 100, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_8__or__(((PyObject *)__pyx_v_self), ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_o)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_8__or__(PyObject *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_o) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__or__", 0); /* "pyregion/_region_filter.pyx":101 * * def __or__(self, RegionBase o): * return RegionOr(self, o) # <<<<<<<<<<<<<< * * cdef npy_bool _inside(self, double x, double y): */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_RegionOr); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, ((PyObject *)__pyx_v_o)}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 101, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_self, ((PyObject *)__pyx_v_o)}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 101, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(__pyx_v_self); __Pyx_GIVEREF(__pyx_v_self); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_self); __Pyx_INCREF(((PyObject *)__pyx_v_o)); __Pyx_GIVEREF(((PyObject *)__pyx_v_o)); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, ((PyObject *)__pyx_v_o)); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":100 * return RegionAnd(self, o) * * def __or__(self, RegionBase o): # <<<<<<<<<<<<<< * return RegionOr(self, o) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.__or__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":103 * return RegionOr(self, o) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * return (0) * */ static npy_bool __pyx_f_8pyregion_14_region_filter_10RegionBase__inside(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, CYTHON_UNUSED double __pyx_v_x, CYTHON_UNUSED double __pyx_v_y) { npy_bool __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":104 * * cdef npy_bool _inside(self, double x, double y): * return (0) # <<<<<<<<<<<<<< * * def mask(self, img_or_shape): */ __pyx_r = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":103 * return RegionOr(self, o) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * return (0) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":106 * return (0) * * def mask(self, img_or_shape): # <<<<<<<<<<<<<< * """ * Create a mask ( a 2-d image whose pixel value is 1 if the */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_11mask(PyObject *__pyx_v_self, PyObject *__pyx_v_img_or_shape); /*proto*/ static char __pyx_doc_8pyregion_14_region_filter_10RegionBase_10mask[] = "\n Create a mask ( a 2-d image whose pixel value is 1 if the\n pixel is inside the filter, otherwise 0). It takes a single\n argument which is numpy 2d array (or any python object with\n *shape* attribute) or a tuple of two integer representing the\n image shape.\n "; static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_11mask(PyObject *__pyx_v_self, PyObject *__pyx_v_img_or_shape) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("mask (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_10mask(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), ((PyObject *)__pyx_v_img_or_shape)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_10mask(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, PyObject *__pyx_v_img_or_shape) { int __pyx_v_nx; int __pyx_v_ny; PyObject *__pyx_v_shape = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("mask", 0); /* "pyregion/_region_filter.pyx":117 * cdef int l, nx, ny * * if hasattr(img_or_shape, "shape"): # <<<<<<<<<<<<<< * shape = img_or_shape.shape * elif c_python.PySequence_Check(img_or_shape): */ __pyx_t_1 = __Pyx_HasAttr(__pyx_v_img_or_shape, __pyx_n_s_shape); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(1, 117, __pyx_L1_error) __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pyregion/_region_filter.pyx":118 * * if hasattr(img_or_shape, "shape"): * shape = img_or_shape.shape # <<<<<<<<<<<<<< * elif c_python.PySequence_Check(img_or_shape): * shape = img_or_shape */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_img_or_shape, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 118, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_v_shape = __pyx_t_3; __pyx_t_3 = 0; /* "pyregion/_region_filter.pyx":117 * cdef int l, nx, ny * * if hasattr(img_or_shape, "shape"): # <<<<<<<<<<<<<< * shape = img_or_shape.shape * elif c_python.PySequence_Check(img_or_shape): */ goto __pyx_L3; } /* "pyregion/_region_filter.pyx":119 * if hasattr(img_or_shape, "shape"): * shape = img_or_shape.shape * elif c_python.PySequence_Check(img_or_shape): # <<<<<<<<<<<<<< * shape = img_or_shape * else: */ __pyx_t_2 = (PySequence_Check(__pyx_v_img_or_shape) != 0); if (likely(__pyx_t_2)) { /* "pyregion/_region_filter.pyx":120 * shape = img_or_shape.shape * elif c_python.PySequence_Check(img_or_shape): * shape = img_or_shape # <<<<<<<<<<<<<< * else: * raise RegionFilterException("the inut needs to be a numpy 2-d array" */ __Pyx_INCREF(__pyx_v_img_or_shape); __pyx_v_shape = __pyx_v_img_or_shape; /* "pyregion/_region_filter.pyx":119 * if hasattr(img_or_shape, "shape"): * shape = img_or_shape.shape * elif c_python.PySequence_Check(img_or_shape): # <<<<<<<<<<<<<< * shape = img_or_shape * else: */ goto __pyx_L3; } /* "pyregion/_region_filter.pyx":122 * shape = img_or_shape * else: * raise RegionFilterException("the inut needs to be a numpy 2-d array" # <<<<<<<<<<<<<< * " or a tuple of two integers") * */ /*else*/ { __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RegionFilterException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_kp_s_the_inut_needs_to_be_a_numpy_2_d) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_kp_s_the_inut_needs_to_be_a_numpy_2_d); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 122, __pyx_L1_error) } __pyx_L3:; /* "pyregion/_region_filter.pyx":125 * " or a tuple of two integers") * * if c_python.PySequence_Length(shape) != 2: # <<<<<<<<<<<<<< * raise RegionFilterException("shape of the input image must be 2d: " * "%s is given" % (str(shape))) */ __pyx_t_2 = ((PySequence_Length(__pyx_v_shape) != 2) != 0); if (unlikely(__pyx_t_2)) { /* "pyregion/_region_filter.pyx":126 * * if c_python.PySequence_Length(shape) != 2: * raise RegionFilterException("shape of the input image must be 2d: " # <<<<<<<<<<<<<< * "%s is given" % (str(shape))) * */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RegionFilterException); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); /* "pyregion/_region_filter.pyx":127 * if c_python.PySequence_Length(shape) != 2: * raise RegionFilterException("shape of the input image must be 2d: " * "%s is given" % (str(shape))) # <<<<<<<<<<<<<< * * ny = c_python.PySequence_GetItem(shape, 0) */ __pyx_t_5 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyString_Type)), __pyx_v_shape); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = __Pyx_PyString_FormatSafe(__pyx_kp_s_shape_of_the_input_image_must_be, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 126, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 126, __pyx_L1_error) /* "pyregion/_region_filter.pyx":125 * " or a tuple of two integers") * * if c_python.PySequence_Length(shape) != 2: # <<<<<<<<<<<<<< * raise RegionFilterException("shape of the input image must be 2d: " * "%s is given" % (str(shape))) */ } /* "pyregion/_region_filter.pyx":129 * "%s is given" % (str(shape))) * * ny = c_python.PySequence_GetItem(shape, 0) # <<<<<<<<<<<<<< * nx = c_python.PySequence_GetItem(shape, 1) * */ __pyx_t_3 = PySequence_GetItem(__pyx_v_shape, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_ny = __pyx_t_7; /* "pyregion/_region_filter.pyx":130 * * ny = c_python.PySequence_GetItem(shape, 0) * nx = c_python.PySequence_GetItem(shape, 1) # <<<<<<<<<<<<<< * * return self._mask(nx, ny) */ __pyx_t_3 = PySequence_GetItem(__pyx_v_shape, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_7 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_nx = __pyx_t_7; /* "pyregion/_region_filter.pyx":132 * nx = c_python.PySequence_GetItem(shape, 1) * * return self._mask(nx, ny) # <<<<<<<<<<<<<< * * cdef c_numpy.ndarray _mask(self, c_numpy.npy_intp nx, c_numpy.npy_intp ny): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = ((PyObject *)((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->__pyx_vtab)->_mask(__pyx_v_self, __pyx_v_nx, __pyx_v_ny)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":106 * return (0) * * def mask(self, img_or_shape): # <<<<<<<<<<<<<< * """ * Create a mask ( a 2-d image whose pixel value is 1 if the */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.mask", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_shape); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":134 * return self._mask(nx, ny) * * cdef c_numpy.ndarray _mask(self, c_numpy.npy_intp nx, c_numpy.npy_intp ny): # <<<<<<<<<<<<<< * * cdef c_numpy.npy_intp ny_nx[2] */ static PyArrayObject *__pyx_f_8pyregion_14_region_filter_10RegionBase__mask(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, npy_intp __pyx_v_nx, npy_intp __pyx_v_ny) { npy_intp __pyx_v_ny_nx[2]; PyArrayObject *__pyx_v_ra = 0; npy_bool *__pyx_v_rd; int __pyx_v_iy; int __pyx_v_ix; PyArrayObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; npy_intp __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_mask", 0); /* "pyregion/_region_filter.pyx":141 * cdef int iy, ix * * ny_nx[0] = ny # <<<<<<<<<<<<<< * ny_nx[1] = nx * */ (__pyx_v_ny_nx[0]) = __pyx_v_ny; /* "pyregion/_region_filter.pyx":142 * * ny_nx[0] = ny * ny_nx[1] = nx # <<<<<<<<<<<<<< * * ra = c_numpy.PyArray_EMPTY(2, ny_nx, */ (__pyx_v_ny_nx[1]) = __pyx_v_nx; /* "pyregion/_region_filter.pyx":144 * ny_nx[1] = nx * * ra = c_numpy.PyArray_EMPTY(2, ny_nx, # <<<<<<<<<<<<<< * c_numpy.NPY_BOOL, 0) * */ __pyx_t_1 = PyArray_EMPTY(2, __pyx_v_ny_nx, NPY_BOOL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pyregion_7c_numpy_ndarray))))) __PYX_ERR(1, 144, __pyx_L1_error) __pyx_v_ra = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":147 * c_numpy.NPY_BOOL, 0) * * rd = c_numpy.PyArray_DATA(ra) # <<<<<<<<<<<<<< * * for iy from 0 <= iy < ny: */ __pyx_v_rd = ((npy_bool *)PyArray_DATA(__pyx_v_ra)); /* "pyregion/_region_filter.pyx":149 * rd = c_numpy.PyArray_DATA(ra) * * for iy from 0 <= iy < ny: # <<<<<<<<<<<<<< * for ix from 0 <= ix < nx: * #rd[iy*nx + ix] = self._inside(i, j) */ __pyx_t_2 = __pyx_v_ny; for (__pyx_v_iy = 0; __pyx_v_iy < __pyx_t_2; __pyx_v_iy++) { /* "pyregion/_region_filter.pyx":150 * * for iy from 0 <= iy < ny: * for ix from 0 <= ix < nx: # <<<<<<<<<<<<<< * #rd[iy*nx + ix] = self._inside(i, j) * # altenatively more optimized */ __pyx_t_3 = __pyx_v_nx; for (__pyx_v_ix = 0; __pyx_v_ix < __pyx_t_3; __pyx_v_ix++) { /* "pyregion/_region_filter.pyx":154 * # altenatively more optimized * #rd[0] = self._inside(ix+1, iy+1) # +1 for (1,1) based.. * rd[0] = self._inside(ix, iy) # <<<<<<<<<<<<<< * rd = rd + 1 * */ (__pyx_v_rd[0]) = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->__pyx_vtab)->_inside(__pyx_v_self, __pyx_v_ix, __pyx_v_iy); /* "pyregion/_region_filter.pyx":155 * #rd[0] = self._inside(ix+1, iy+1) # +1 for (1,1) based.. * rd[0] = self._inside(ix, iy) * rd = rd + 1 # <<<<<<<<<<<<<< * * return ra */ __pyx_v_rd = (__pyx_v_rd + 1); } } /* "pyregion/_region_filter.pyx":157 * rd = rd + 1 * * return ra # <<<<<<<<<<<<<< * * def inside1(self, double x, double y): */ __Pyx_XDECREF(((PyObject *)__pyx_r)); __Pyx_INCREF(((PyObject *)__pyx_v_ra)); __pyx_r = __pyx_v_ra; goto __pyx_L0; /* "pyregion/_region_filter.pyx":134 * return self._mask(nx, ny) * * cdef c_numpy.ndarray _mask(self, c_numpy.npy_intp nx, c_numpy.npy_intp ny): # <<<<<<<<<<<<<< * * cdef c_numpy.npy_intp ny_nx[2] */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionBase._mask", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_ra); __Pyx_XGIVEREF((PyObject *)__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":159 * return ra * * def inside1(self, double x, double y): # <<<<<<<<<<<<<< * """ * inside1(float, float) : returns True if the point (x,y) is inside the filter. */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_13inside1(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_8pyregion_14_region_filter_10RegionBase_12inside1[] = "\n inside1(float, float) : returns True if the point (x,y) is inside the filter.\n "; static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_13inside1(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_x; double __pyx_v_y; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inside1 (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("inside1", 1, 2, 2, 1); __PYX_ERR(1, 159, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inside1") < 0)) __PYX_ERR(1, 159, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_x = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 159, __pyx_L3_error) __pyx_v_y = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 159, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("inside1", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 159, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionBase.inside1", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_12inside1(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), __pyx_v_x, __pyx_v_y); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_12inside1(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("inside1", 0); /* "pyregion/_region_filter.pyx":163 * inside1(float, float) : returns True if the point (x,y) is inside the filter. * """ * return self._inside(x, y) # <<<<<<<<<<<<<< * * def inside(self, x, y=None): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_npy_bool(((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->__pyx_vtab)->_inside(__pyx_v_self, __pyx_v_x, __pyx_v_y)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":159 * return ra * * def inside1(self, double x, double y): # <<<<<<<<<<<<<< * """ * inside1(float, float) : returns True if the point (x,y) is inside the filter. */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.inside1", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":165 * return self._inside(x, y) * * def inside(self, x, y=None): # <<<<<<<<<<<<<< * if y is None: * if len(x.shape) == 2 and x.shape[-1] == 2: */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_15inside(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_15inside(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_x = 0; PyObject *__pyx_v_y = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inside (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; PyObject* values[2] = {0,0}; values[1] = ((PyObject *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y); if (value) { values[1] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inside") < 0)) __PYX_ERR(1, 165, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_x = values[0]; __pyx_v_y = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("inside", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 165, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionBase.inside", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_14inside(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), __pyx_v_x, __pyx_v_y); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_14inside(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; Py_ssize_t __pyx_t_4; PyObject *__pyx_t_5 = NULL; PyObject *__pyx_t_6 = NULL; int __pyx_t_7; PyObject *__pyx_t_8 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("inside", 0); /* "pyregion/_region_filter.pyx":166 * * def inside(self, x, y=None): * if y is None: # <<<<<<<<<<<<<< * if len(x.shape) == 2 and x.shape[-1] == 2: * return self.inside_xy(x) */ __pyx_t_1 = (__pyx_v_y == Py_None); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pyregion/_region_filter.pyx":167 * def inside(self, x, y=None): * if y is None: * if len(x.shape) == 2 and x.shape[-1] == 2: # <<<<<<<<<<<<<< * return self.inside_xy(x) * else: */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_4 == ((Py_ssize_t)-1))) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_1 = ((__pyx_t_4 == 2) != 0); if (__pyx_t_1) { } else { __pyx_t_2 = __pyx_t_1; goto __pyx_L5_bool_binop_done; } __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_shape); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_3, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_2 = __pyx_t_1; __pyx_L5_bool_binop_done:; if (likely(__pyx_t_2)) { /* "pyregion/_region_filter.pyx":168 * if y is None: * if len(x.shape) == 2 and x.shape[-1] == 2: * return self.inside_xy(x) # <<<<<<<<<<<<<< * else: * raise ValueError("input array has a wrong shape") */ __Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_inside_xy); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); } } __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_x) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_x); __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":167 * def inside(self, x, y=None): * if y is None: * if len(x.shape) == 2 and x.shape[-1] == 2: # <<<<<<<<<<<<<< * return self.inside_xy(x) * else: */ } /* "pyregion/_region_filter.pyx":170 * return self.inside_xy(x) * else: * raise ValueError("input array has a wrong shape") # <<<<<<<<<<<<<< * else: * return self.inside_x_y(x, y) */ /*else*/ { __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_ValueError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_Raise(__pyx_t_3, 0, 0, 0); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __PYX_ERR(1, 170, __pyx_L1_error) } /* "pyregion/_region_filter.pyx":166 * * def inside(self, x, y=None): * if y is None: # <<<<<<<<<<<<<< * if len(x.shape) == 2 and x.shape[-1] == 2: * return self.inside_xy(x) */ } /* "pyregion/_region_filter.pyx":172 * raise ValueError("input array has a wrong shape") * else: * return self.inside_x_y(x, y) # <<<<<<<<<<<<<< * * def inside_xy(self, xy): */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_inside_x_y); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_6 = NULL; __pyx_t_7 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) { __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5); if (likely(__pyx_t_6)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5); __Pyx_INCREF(__pyx_t_6); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_5, function); __pyx_t_7 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_x, __pyx_v_y}; __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) { PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_x, __pyx_v_y}; __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; __Pyx_GOTREF(__pyx_t_3); } else #endif { __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (__pyx_t_6) { __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL; } __Pyx_INCREF(__pyx_v_x); __Pyx_GIVEREF(__pyx_v_x); PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_v_x); __Pyx_INCREF(__pyx_v_y); __Pyx_GIVEREF(__pyx_v_y); PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_v_y); __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; } /* "pyregion/_region_filter.pyx":165 * return self._inside(x, y) * * def inside(self, x, y=None): # <<<<<<<<<<<<<< * if y is None: * if len(x.shape) == 2 and x.shape[-1] == 2: */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_XDECREF(__pyx_t_6); __Pyx_XDECREF(__pyx_t_8); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.inside", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":174 * return self.inside_x_y(x, y) * * def inside_xy(self, xy): # <<<<<<<<<<<<<< * """ * inside(x, y) : given the numpy array of x and y, returns an */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_17inside_xy(PyObject *__pyx_v_self, PyObject *__pyx_v_xy); /*proto*/ static char __pyx_doc_8pyregion_14_region_filter_10RegionBase_16inside_xy[] = "\n inside(x, y) : given the numpy array of x and y, returns an\n array b of same shape, where b[i] = inside1(x[i], y[i])\n "; static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_17inside_xy(PyObject *__pyx_v_self, PyObject *__pyx_v_xy) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inside_xy (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_16inside_xy(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), ((PyObject *)__pyx_v_xy)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_16inside_xy(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, PyObject *__pyx_v_xy) { PyArrayObject *__pyx_v_xya = 0; PyArrayObject *__pyx_v_ra = 0; double *__pyx_v_xyd; npy_bool *__pyx_v_rd; int __pyx_v_i; int __pyx_v_n; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("inside_xy", 0); /* "pyregion/_region_filter.pyx":186 * cdef int n * * xya = c_numpy.PyArray_ContiguousFromAny(xy, c_numpy.NPY_DOUBLE, 1, 0) # <<<<<<<<<<<<<< * * ra = c_numpy.PyArray_EMPTY(1, xya.dimensions, */ __pyx_t_1 = PyArray_ContiguousFromAny(__pyx_v_xy, NPY_DOUBLE, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pyregion_7c_numpy_ndarray))))) __PYX_ERR(1, 186, __pyx_L1_error) __pyx_v_xya = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":188 * xya = c_numpy.PyArray_ContiguousFromAny(xy, c_numpy.NPY_DOUBLE, 1, 0) * * ra = c_numpy.PyArray_EMPTY(1, xya.dimensions, # <<<<<<<<<<<<<< * c_numpy.NPY_BOOL, 0) * */ __pyx_t_1 = PyArray_EMPTY(1, __pyx_v_xya->dimensions, NPY_BOOL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pyregion_7c_numpy_ndarray))))) __PYX_ERR(1, 188, __pyx_L1_error) __pyx_v_ra = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":191 * c_numpy.NPY_BOOL, 0) * * xyd = c_numpy.PyArray_DATA(xya) # <<<<<<<<<<<<<< * rd = c_numpy.PyArray_DATA(ra) * */ __pyx_v_xyd = ((double *)PyArray_DATA(__pyx_v_xya)); /* "pyregion/_region_filter.pyx":192 * * xyd = c_numpy.PyArray_DATA(xya) * rd = c_numpy.PyArray_DATA(ra) # <<<<<<<<<<<<<< * * n = xya.dimensions[0] # c_numpy.PyArray_SIZE(xya) / 2 */ __pyx_v_rd = ((npy_bool *)PyArray_DATA(__pyx_v_ra)); /* "pyregion/_region_filter.pyx":194 * rd = c_numpy.PyArray_DATA(ra) * * n = xya.dimensions[0] # c_numpy.PyArray_SIZE(xya) / 2 # <<<<<<<<<<<<<< * #_inside_ptr = self._inside * for i from 0 <= i < n: */ __pyx_v_n = (__pyx_v_xya->dimensions[0]); /* "pyregion/_region_filter.pyx":196 * n = xya.dimensions[0] # c_numpy.PyArray_SIZE(xya) / 2 * #_inside_ptr = self._inside * for i from 0 <= i < n: # <<<<<<<<<<<<<< * rd[i] = self._inside(xyd[2 * i], xyd[2 * i + 1]) * return ra */ __pyx_t_2 = __pyx_v_n; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { /* "pyregion/_region_filter.pyx":197 * #_inside_ptr = self._inside * for i from 0 <= i < n: * rd[i] = self._inside(xyd[2 * i], xyd[2 * i + 1]) # <<<<<<<<<<<<<< * return ra * */ (__pyx_v_rd[__pyx_v_i]) = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->__pyx_vtab)->_inside(__pyx_v_self, (__pyx_v_xyd[(2 * __pyx_v_i)]), (__pyx_v_xyd[((2 * __pyx_v_i) + 1)])); } /* "pyregion/_region_filter.pyx":198 * for i from 0 <= i < n: * rd[i] = self._inside(xyd[2 * i], xyd[2 * i + 1]) * return ra # <<<<<<<<<<<<<< * * def inside_x_y(self, x, y): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_ra)); __pyx_r = ((PyObject *)__pyx_v_ra); goto __pyx_L0; /* "pyregion/_region_filter.pyx":174 * return self.inside_x_y(x, y) * * def inside_xy(self, xy): # <<<<<<<<<<<<<< * """ * inside(x, y) : given the numpy array of x and y, returns an */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.inside_xy", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_xya); __Pyx_XDECREF((PyObject *)__pyx_v_ra); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":200 * return ra * * def inside_x_y(self, x, y): # <<<<<<<<<<<<<< * """ * inside(x, y) : given the numpy array of x and y, returns an */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_19inside_x_y(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_8pyregion_14_region_filter_10RegionBase_18inside_x_y[] = "\n inside(x, y) : given the numpy array of x and y, returns an\n array b of same shape, where b[i] = inside1(x[i], y[i])\n "; static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_19inside_x_y(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_x = 0; PyObject *__pyx_v_y = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("inside_x_y (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("inside_x_y", 1, 2, 2, 1); __PYX_ERR(1, 200, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inside_x_y") < 0)) __PYX_ERR(1, 200, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_x = values[0]; __pyx_v_y = values[1]; } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("inside_x_y", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 200, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionBase.inside_x_y", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_18inside_x_y(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), __pyx_v_x, __pyx_v_y); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_18inside_x_y(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y) { PyArrayObject *__pyx_v_xa = 0; PyArrayObject *__pyx_v_ya = 0; PyArrayObject *__pyx_v_ra = 0; double *__pyx_v_xd; double *__pyx_v_yd; npy_bool *__pyx_v_rd; int __pyx_v_i; int __pyx_v_n; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("inside_x_y", 0); /* "pyregion/_region_filter.pyx":217 * # FIX : check if two input has identical shape * * xa = c_numpy.PyArray_ContiguousFromAny(x, c_numpy.NPY_DOUBLE, 1, 0) # <<<<<<<<<<<<<< * ya = c_numpy.PyArray_ContiguousFromAny(y, c_numpy.NPY_DOUBLE, 1, 0) * */ __pyx_t_1 = PyArray_ContiguousFromAny(__pyx_v_x, NPY_DOUBLE, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pyregion_7c_numpy_ndarray))))) __PYX_ERR(1, 217, __pyx_L1_error) __pyx_v_xa = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":218 * * xa = c_numpy.PyArray_ContiguousFromAny(x, c_numpy.NPY_DOUBLE, 1, 0) * ya = c_numpy.PyArray_ContiguousFromAny(y, c_numpy.NPY_DOUBLE, 1, 0) # <<<<<<<<<<<<<< * * ra = c_numpy.PyArray_EMPTY(xa.nd, xa.dimensions, */ __pyx_t_1 = PyArray_ContiguousFromAny(__pyx_v_y, NPY_DOUBLE, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 218, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pyregion_7c_numpy_ndarray))))) __PYX_ERR(1, 218, __pyx_L1_error) __pyx_v_ya = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":220 * ya = c_numpy.PyArray_ContiguousFromAny(y, c_numpy.NPY_DOUBLE, 1, 0) * * ra = c_numpy.PyArray_EMPTY(xa.nd, xa.dimensions, # <<<<<<<<<<<<<< * c_numpy.NPY_BOOL, 0) * */ __pyx_t_1 = PyArray_EMPTY(__pyx_v_xa->nd, __pyx_v_xa->dimensions, NPY_BOOL, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pyregion_7c_numpy_ndarray))))) __PYX_ERR(1, 220, __pyx_L1_error) __pyx_v_ra = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":223 * c_numpy.NPY_BOOL, 0) * * xd = c_numpy.PyArray_DATA(xa) # <<<<<<<<<<<<<< * yd = c_numpy.PyArray_DATA(ya) * rd = c_numpy.PyArray_DATA(ra) */ __pyx_v_xd = ((double *)PyArray_DATA(__pyx_v_xa)); /* "pyregion/_region_filter.pyx":224 * * xd = c_numpy.PyArray_DATA(xa) * yd = c_numpy.PyArray_DATA(ya) # <<<<<<<<<<<<<< * rd = c_numpy.PyArray_DATA(ra) * */ __pyx_v_yd = ((double *)PyArray_DATA(__pyx_v_ya)); /* "pyregion/_region_filter.pyx":225 * xd = c_numpy.PyArray_DATA(xa) * yd = c_numpy.PyArray_DATA(ya) * rd = c_numpy.PyArray_DATA(ra) # <<<<<<<<<<<<<< * * n = c_numpy.PyArray_SIZE(xa) */ __pyx_v_rd = ((npy_bool *)PyArray_DATA(__pyx_v_ra)); /* "pyregion/_region_filter.pyx":227 * rd = c_numpy.PyArray_DATA(ra) * * n = c_numpy.PyArray_SIZE(xa) # <<<<<<<<<<<<<< * #_inside_ptr = self._inside * for i from 0 <= i < n: */ __pyx_v_n = PyArray_SIZE(__pyx_v_xa); /* "pyregion/_region_filter.pyx":229 * n = c_numpy.PyArray_SIZE(xa) * #_inside_ptr = self._inside * for i from 0 <= i < n: # <<<<<<<<<<<<<< * #self._inside(xd[0], yd[0]) * #rd[i] = _inside_ptr(self, xd[i], yd[i]) */ __pyx_t_2 = __pyx_v_n; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { /* "pyregion/_region_filter.pyx":232 * #self._inside(xd[0], yd[0]) * #rd[i] = _inside_ptr(self, xd[i], yd[i]) * rd[i] = self._inside(xd[i], yd[i]) # <<<<<<<<<<<<<< * #rd[i] = _inside_ptr(self, xd[i], yd[i]) * #print xd[i], yd[i], rd[i] */ (__pyx_v_rd[__pyx_v_i]) = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->__pyx_vtab)->_inside(__pyx_v_self, (__pyx_v_xd[__pyx_v_i]), (__pyx_v_yd[__pyx_v_i])); } /* "pyregion/_region_filter.pyx":235 * #rd[i] = _inside_ptr(self, xd[i], yd[i]) * #print xd[i], yd[i], rd[i] * return ra # <<<<<<<<<<<<<< * * cdef class RegionNot(RegionBase): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_ra)); __pyx_r = ((PyObject *)__pyx_v_ra); goto __pyx_L0; /* "pyregion/_region_filter.pyx":200 * return ra * * def inside_x_y(self, x, y): # <<<<<<<<<<<<<< * """ * inside(x, y) : given the numpy array of x and y, returns an */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.inside_x_y", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF((PyObject *)__pyx_v_xa); __Pyx_XDECREF((PyObject *)__pyx_v_ya); __Pyx_XDECREF((PyObject *)__pyx_v_ra); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_21__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_20__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_20__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_23__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionBase_23__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionBase_22__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionBase_22__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionBase.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":243 * cdef RegionBase child_region * * def __init__(self, RegionBase child_region): # <<<<<<<<<<<<<< * self.child_region = child_region * */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_9RegionNot_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_9RegionNot_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_child_region,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_child_region)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 243, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_child_region = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 243, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionNot.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_child_region), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "child_region", 0))) __PYX_ERR(1, 243, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_9RegionNot___init__(((struct __pyx_obj_8pyregion_14_region_filter_RegionNot *)__pyx_v_self), __pyx_v_child_region); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_9RegionNot___init__(struct __pyx_obj_8pyregion_14_region_filter_RegionNot *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":244 * * def __init__(self, RegionBase child_region): * self.child_region = child_region # <<<<<<<<<<<<<< * * cdef npy_bool _inside(self, double x, double y): */ __Pyx_INCREF(((PyObject *)__pyx_v_child_region)); __Pyx_GIVEREF(((PyObject *)__pyx_v_child_region)); __Pyx_GOTREF(__pyx_v_self->child_region); __Pyx_DECREF(((PyObject *)__pyx_v_self->child_region)); __pyx_v_self->child_region = __pyx_v_child_region; /* "pyregion/_region_filter.pyx":243 * cdef RegionBase child_region * * def __init__(self, RegionBase child_region): # <<<<<<<<<<<<<< * self.child_region = child_region * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":246 * self.child_region = child_region * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * return not (self.child_region._inside(x, y)) * */ static npy_bool __pyx_f_8pyregion_14_region_filter_9RegionNot__inside(struct __pyx_obj_8pyregion_14_region_filter_RegionNot *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { npy_bool __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":247 * * cdef npy_bool _inside(self, double x, double y): * return not (self.child_region._inside(x, y)) # <<<<<<<<<<<<<< * * cdef class RegionList(RegionBase): */ __pyx_r = (!(((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->child_region->__pyx_vtab)->_inside(__pyx_v_self->child_region, __pyx_v_x, __pyx_v_y) != 0)); goto __pyx_L0; /* "pyregion/_region_filter.pyx":246 * self.child_region = child_region * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * return not (self.child_region._inside(x, y)) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_9RegionNot_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_9RegionNot_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_9RegionNot_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionNot *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_9RegionNot_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionNot *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionNot.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_9RegionNot_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_9RegionNot_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_9RegionNot_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionNot *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_9RegionNot_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionNot *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionNot.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":252 * cdef object child_regions * * def _check_type_of_list(self, kl): # <<<<<<<<<<<<<< * for k in kl: * if not isinstance(k, RegionBase): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_1_check_type_of_list(PyObject *__pyx_v_self, PyObject *__pyx_v_kl); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_1_check_type_of_list(PyObject *__pyx_v_self, PyObject *__pyx_v_kl) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_check_type_of_list (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList__check_type_of_list(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self), ((PyObject *)__pyx_v_kl)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList__check_type_of_list(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, PyObject *__pyx_v_kl) { PyObject *__pyx_v_k = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; PyObject *(*__pyx_t_3)(PyObject *); PyObject *__pyx_t_4 = NULL; int __pyx_t_5; int __pyx_t_6; PyObject *__pyx_t_7 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_check_type_of_list", 0); /* "pyregion/_region_filter.pyx":253 * * def _check_type_of_list(self, kl): * for k in kl: # <<<<<<<<<<<<<< * if not isinstance(k, RegionBase): * raise TypeError("All elements should be subclass of RegionBase type: %s" % k) */ if (likely(PyList_CheckExact(__pyx_v_kl)) || PyTuple_CheckExact(__pyx_v_kl)) { __pyx_t_1 = __pyx_v_kl; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0; __pyx_t_3 = NULL; } else { __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_kl); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 253, __pyx_L1_error) } for (;;) { if (likely(!__pyx_t_3)) { if (likely(PyList_CheckExact(__pyx_t_1))) { if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 253, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } else { if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break; #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(1, 253, __pyx_L1_error) #else __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 253, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); #endif } } else { __pyx_t_4 = __pyx_t_3(__pyx_t_1); if (unlikely(!__pyx_t_4)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); else __PYX_ERR(1, 253, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_4); } __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_4); __pyx_t_4 = 0; /* "pyregion/_region_filter.pyx":254 * def _check_type_of_list(self, kl): * for k in kl: * if not isinstance(k, RegionBase): # <<<<<<<<<<<<<< * raise TypeError("All elements should be subclass of RegionBase type: %s" % k) * */ __pyx_t_5 = __Pyx_TypeCheck(__pyx_v_k, __pyx_ptype_8pyregion_14_region_filter_RegionBase); __pyx_t_6 = ((!(__pyx_t_5 != 0)) != 0); if (unlikely(__pyx_t_6)) { /* "pyregion/_region_filter.pyx":255 * for k in kl: * if not isinstance(k, RegionBase): * raise TypeError("All elements should be subclass of RegionBase type: %s" % k) # <<<<<<<<<<<<<< * * def __init__(self, *kl): */ __pyx_t_4 = __Pyx_PyString_FormatSafe(__pyx_kp_s_All_elements_should_be_subclass, __pyx_v_k); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_Raise(__pyx_t_7, 0, 0, 0); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __PYX_ERR(1, 255, __pyx_L1_error) /* "pyregion/_region_filter.pyx":254 * def _check_type_of_list(self, kl): * for k in kl: * if not isinstance(k, RegionBase): # <<<<<<<<<<<<<< * raise TypeError("All elements should be subclass of RegionBase type: %s" % k) * */ } /* "pyregion/_region_filter.pyx":253 * * def _check_type_of_list(self, kl): * for k in kl: # <<<<<<<<<<<<<< * if not isinstance(k, RegionBase): * raise TypeError("All elements should be subclass of RegionBase type: %s" % k) */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":252 * cdef object child_regions * * def _check_type_of_list(self, kl): # <<<<<<<<<<<<<< * for k in kl: * if not isinstance(k, RegionBase): */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_7); __Pyx_AddTraceback("pyregion._region_filter.RegionList._check_type_of_list", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_k); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":257 * raise TypeError("All elements should be subclass of RegionBase type: %s" % k) * * def __init__(self, *kl): # <<<<<<<<<<<<<< * self._check_type_of_list(kl) * self.child_regions = list(kl) */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_10RegionList_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_10RegionList_3__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_kl = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); if (unlikely(__pyx_kwds) && unlikely(PyDict_Size(__pyx_kwds) > 0) && unlikely(!__Pyx_CheckKeywordStrings(__pyx_kwds, "__init__", 0))) return -1; __Pyx_INCREF(__pyx_args); __pyx_v_kl = __pyx_args; __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_2__init__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self), __pyx_v_kl); /* function exit code */ __Pyx_XDECREF(__pyx_v_kl); __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_10RegionList_2__init__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, PyObject *__pyx_v_kl) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":258 * * def __init__(self, *kl): * self._check_type_of_list(kl) # <<<<<<<<<<<<<< * self.child_regions = list(kl) * */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_self), __pyx_n_s_check_type_of_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); } } __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_kl) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_kl); __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":259 * def __init__(self, *kl): * self._check_type_of_list(kl) * self.child_regions = list(kl) # <<<<<<<<<<<<<< * * def __len__(self): */ __pyx_t_1 = PySequence_List(__pyx_v_kl); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 259, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->child_regions); __Pyx_DECREF(__pyx_v_self->child_regions); __pyx_v_self->child_regions = __pyx_t_1; __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":257 * raise TypeError("All elements should be subclass of RegionBase type: %s" % k) * * def __init__(self, *kl): # <<<<<<<<<<<<<< * self._check_type_of_list(kl) * self.child_regions = list(kl) */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_AddTraceback("pyregion._region_filter.RegionList.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":261 * self.child_regions = list(kl) * * def __len__(self): # <<<<<<<<<<<<<< * return len(self.child_regions) * */ /* Python wrapper */ static Py_ssize_t __pyx_pw_8pyregion_14_region_filter_10RegionList_5__len__(PyObject *__pyx_v_self); /*proto*/ static Py_ssize_t __pyx_pw_8pyregion_14_region_filter_10RegionList_5__len__(PyObject *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__len__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_4__len__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static Py_ssize_t __pyx_pf_8pyregion_14_region_filter_10RegionList_4__len__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self) { Py_ssize_t __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; Py_ssize_t __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__len__", 0); /* "pyregion/_region_filter.pyx":262 * * def __len__(self): * return len(self.child_regions) # <<<<<<<<<<<<<< * * def __getitem__(self, Py_ssize_t x): */ __pyx_t_1 = __pyx_v_self->child_regions; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 262, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; goto __pyx_L0; /* "pyregion/_region_filter.pyx":261 * self.child_regions = list(kl) * * def __len__(self): # <<<<<<<<<<<<<< * return len(self.child_regions) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionList.__len__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":264 * return len(self.child_regions) * * def __getitem__(self, Py_ssize_t x): # <<<<<<<<<<<<<< * return self.child_regions[x] * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_7__getitem__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) { Py_ssize_t __pyx_v_x; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__getitem__ (wrapper)", 0); assert(__pyx_arg_x); { __pyx_v_x = __Pyx_PyIndex_AsSsize_t(__pyx_arg_x); if (unlikely((__pyx_v_x == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 264, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionList.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_6__getitem__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self), ((Py_ssize_t)__pyx_v_x)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_6__getitem__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, Py_ssize_t __pyx_v_x) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 0); /* "pyregion/_region_filter.pyx":265 * * def __getitem__(self, Py_ssize_t x): * return self.child_regions[x] # <<<<<<<<<<<<<< * * def __setitem__(self, Py_ssize_t x, RegionBase y): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_self->child_regions, __pyx_v_x, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":264 * return len(self.child_regions) * * def __getitem__(self, Py_ssize_t x): # <<<<<<<<<<<<<< * return self.child_regions[x] * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionList.__getitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":267 * return self.child_regions[x] * * def __setitem__(self, Py_ssize_t x, RegionBase y): # <<<<<<<<<<<<<< * self.child_regions[x] = y * */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_10RegionList_9__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x, PyObject *__pyx_v_y); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_10RegionList_9__setitem__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x, PyObject *__pyx_v_y) { Py_ssize_t __pyx_v_x; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setitem__ (wrapper)", 0); assert(__pyx_arg_x); { __pyx_v_x = __Pyx_PyIndex_AsSsize_t(__pyx_arg_x); if (unlikely((__pyx_v_x == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 267, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionList.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_y), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "y", 0))) __PYX_ERR(1, 267, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_8__setitem__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self), ((Py_ssize_t)__pyx_v_x), ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_y)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_10RegionList_8__setitem__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, Py_ssize_t __pyx_v_x, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_y) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setitem__", 0); /* "pyregion/_region_filter.pyx":268 * * def __setitem__(self, Py_ssize_t x, RegionBase y): * self.child_regions[x] = y # <<<<<<<<<<<<<< * * def __delitem__(self, Py_ssize_t x): */ if (unlikely(__Pyx_SetItemInt(__pyx_v_self->child_regions, __pyx_v_x, ((PyObject *)__pyx_v_y), Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(1, 268, __pyx_L1_error) /* "pyregion/_region_filter.pyx":267 * return self.child_regions[x] * * def __setitem__(self, Py_ssize_t x, RegionBase y): # <<<<<<<<<<<<<< * self.child_regions[x] = y * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionList.__setitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":270 * self.child_regions[x] = y * * def __delitem__(self, Py_ssize_t x): # <<<<<<<<<<<<<< * del self.child_regions[x] * */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_10RegionList_11__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_10RegionList_11__delitem__(PyObject *__pyx_v_self, PyObject *__pyx_arg_x) { Py_ssize_t __pyx_v_x; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__delitem__ (wrapper)", 0); assert(__pyx_arg_x); { __pyx_v_x = __Pyx_PyIndex_AsSsize_t(__pyx_arg_x); if (unlikely((__pyx_v_x == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(1, 270, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionList.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_10__delitem__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self), ((Py_ssize_t)__pyx_v_x)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_10RegionList_10__delitem__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, Py_ssize_t __pyx_v_x) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__delitem__", 0); /* "pyregion/_region_filter.pyx":271 * * def __delitem__(self, Py_ssize_t x): * del self.child_regions[x] # <<<<<<<<<<<<<< * * def __contains__(self, RegionBase x): */ if (unlikely(__Pyx_DelItemInt(__pyx_v_self->child_regions, __pyx_v_x, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(1, 271, __pyx_L1_error) /* "pyregion/_region_filter.pyx":270 * self.child_regions[x] = y * * def __delitem__(self, Py_ssize_t x): # <<<<<<<<<<<<<< * del self.child_regions[x] * */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionList.__delitem__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":273 * del self.child_regions[x] * * def __contains__(self, RegionBase x): # <<<<<<<<<<<<<< * return x in self.child_regions * */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_10RegionList_13__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_x); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_10RegionList_13__contains__(PyObject *__pyx_v_self, PyObject *__pyx_v_x) { int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__contains__ (wrapper)", 0); if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_x), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "x", 0))) __PYX_ERR(1, 273, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_12__contains__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self), ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_x)); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_10RegionList_12__contains__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_x) { int __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__contains__", 0); /* "pyregion/_region_filter.pyx":274 * * def __contains__(self, RegionBase x): * return x in self.child_regions # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_t_1 = (__Pyx_PySequence_ContainsTF(((PyObject *)__pyx_v_x), __pyx_v_self->child_regions, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(1, 274, __pyx_L1_error) __pyx_r = __pyx_t_1; goto __pyx_L0; /* "pyregion/_region_filter.pyx":273 * del self.child_regions[x] * * def __contains__(self, RegionBase x): # <<<<<<<<<<<<<< * return x in self.child_regions * */ /* function exit code */ __pyx_L1_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionList.__contains__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":276 * return x in self.child_regions * * def __repr__(self): # <<<<<<<<<<<<<< * return repr(self.child_regions) * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_15__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_15__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_14__repr__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_14__repr__(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); /* "pyregion/_region_filter.pyx":277 * * def __repr__(self): * return repr(self.child_regions) # <<<<<<<<<<<<<< * * def asList(self): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->child_regions; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 277, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":276 * return x in self.child_regions * * def __repr__(self): # <<<<<<<<<<<<<< * return repr(self.child_regions) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyregion._region_filter.RegionList.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":279 * return repr(self.child_regions) * * def asList(self): # <<<<<<<<<<<<<< * return self.child_regions * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_17asList(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_17asList(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("asList (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_16asList(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_16asList(struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("asList", 0); /* "pyregion/_region_filter.pyx":280 * * def asList(self): * return self.child_regions # <<<<<<<<<<<<<< * * cdef class RegionOrList(RegionList): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_self->child_regions); __pyx_r = __pyx_v_self->child_regions; goto __pyx_L0; /* "pyregion/_region_filter.pyx":279 * return repr(self.child_regions) * * def asList(self): # <<<<<<<<<<<<<< * return self.child_regions * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_19__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_19__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_18__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_18__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionList.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_21__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10RegionList_21__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10RegionList_20__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10RegionList_20__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionList *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionList.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":286 * >>> r = RegionOrList(r1, r2, r3, r4, ...) * """ * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef c_python.PyListObject *child_regions * cdef int i, n */ static npy_bool __pyx_f_8pyregion_14_region_filter_12RegionOrList__inside(struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { PyListObject *__pyx_v_child_regions; int __pyx_v_i; int __pyx_v_n; npy_bool __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; void *__pyx_t_2; int __pyx_t_3; __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":290 * cdef int i, n * * child_regions = self.child_regions # <<<<<<<<<<<<<< * n = c_python.PyList_GET_SIZE(child_regions) * for i from 0 <= i < n: */ __pyx_v_child_regions = ((PyListObject *)__pyx_v_self->__pyx_base.child_regions); /* "pyregion/_region_filter.pyx":291 * * child_regions = self.child_regions * n = c_python.PyList_GET_SIZE(child_regions) # <<<<<<<<<<<<<< * for i from 0 <= i < n: * if ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): */ __pyx_v_n = PyList_GET_SIZE(__pyx_v_child_regions); /* "pyregion/_region_filter.pyx":292 * child_regions = self.child_regions * n = c_python.PyList_GET_SIZE(child_regions) * for i from 0 <= i < n: # <<<<<<<<<<<<<< * if ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): * return 1 */ __pyx_t_1 = __pyx_v_n; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { /* "pyregion/_region_filter.pyx":293 * n = c_python.PyList_GET_SIZE(child_regions) * for i from 0 <= i < n: * if ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): # <<<<<<<<<<<<<< * return 1 * return 0 */ __pyx_t_2 = PyList_GET_ITEM(__pyx_v_child_regions, __pyx_v_i); __pyx_t_3 = (((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_t_2)->__pyx_vtab)->_inside(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_t_2), __pyx_v_x, __pyx_v_y) != 0); if (__pyx_t_3) { /* "pyregion/_region_filter.pyx":294 * for i from 0 <= i < n: * if ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): * return 1 # <<<<<<<<<<<<<< * return 0 * */ __pyx_r = 1; goto __pyx_L0; /* "pyregion/_region_filter.pyx":293 * n = c_python.PyList_GET_SIZE(child_regions) * for i from 0 <= i < n: * if ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): # <<<<<<<<<<<<<< * return 1 * return 0 */ } } /* "pyregion/_region_filter.pyx":295 * if ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): * return 1 * return 0 # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":286 * >>> r = RegionOrList(r1, r2, r3, r4, ...) * """ * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef c_python.PyListObject *child_regions * cdef int i, n */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":297 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "Or" + repr(self.child_regions) * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_12RegionOrList_1__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_12RegionOrList_1__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_12RegionOrList___repr__(((struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_12RegionOrList___repr__(struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); /* "pyregion/_region_filter.pyx":298 * * def __repr__(self): * return "Or" + repr(self.child_regions) # <<<<<<<<<<<<<< * * cdef class RegionAndList(RegionList): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx_base.child_regions; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Add(__pyx_n_s_Or, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":297 * return 0 * * def __repr__(self): # <<<<<<<<<<<<<< * return "Or" + repr(self.child_regions) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyregion._region_filter.RegionOrList.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_12RegionOrList_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_12RegionOrList_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_12RegionOrList_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_12RegionOrList_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionOrList.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_12RegionOrList_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_12RegionOrList_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_12RegionOrList_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_12RegionOrList_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionOrList.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":305 * """ * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef c_python.PyListObject *child_regions * cdef int i, n */ static npy_bool __pyx_f_8pyregion_14_region_filter_13RegionAndList__inside(struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { PyListObject *__pyx_v_child_regions; int __pyx_v_i; int __pyx_v_n; npy_bool __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; void *__pyx_t_2; int __pyx_t_3; __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":309 * cdef int i, n * * child_regions = self.child_regions # <<<<<<<<<<<<<< * n = c_python.PyList_GET_SIZE(child_regions) * for i from 0 <= i < n: */ __pyx_v_child_regions = ((PyListObject *)__pyx_v_self->__pyx_base.child_regions); /* "pyregion/_region_filter.pyx":310 * * child_regions = self.child_regions * n = c_python.PyList_GET_SIZE(child_regions) # <<<<<<<<<<<<<< * for i from 0 <= i < n: * if not ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): */ __pyx_v_n = PyList_GET_SIZE(__pyx_v_child_regions); /* "pyregion/_region_filter.pyx":311 * child_regions = self.child_regions * n = c_python.PyList_GET_SIZE(child_regions) * for i from 0 <= i < n: # <<<<<<<<<<<<<< * if not ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): * return 0 */ __pyx_t_1 = __pyx_v_n; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { /* "pyregion/_region_filter.pyx":312 * n = c_python.PyList_GET_SIZE(child_regions) * for i from 0 <= i < n: * if not ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): # <<<<<<<<<<<<<< * return 0 * return 1 */ __pyx_t_2 = PyList_GET_ITEM(__pyx_v_child_regions, __pyx_v_i); __pyx_t_3 = ((!(((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_t_2)->__pyx_vtab)->_inside(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_t_2), __pyx_v_x, __pyx_v_y) != 0)) != 0); if (__pyx_t_3) { /* "pyregion/_region_filter.pyx":313 * for i from 0 <= i < n: * if not ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): * return 0 # <<<<<<<<<<<<<< * return 1 * */ __pyx_r = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":312 * n = c_python.PyList_GET_SIZE(child_regions) * for i from 0 <= i < n: * if not ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): # <<<<<<<<<<<<<< * return 0 * return 1 */ } } /* "pyregion/_region_filter.pyx":314 * if not ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): * return 0 * return 1 # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = 1; goto __pyx_L0; /* "pyregion/_region_filter.pyx":305 * """ * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef c_python.PyListObject *child_regions * cdef int i, n */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":316 * return 1 * * def __repr__(self): # <<<<<<<<<<<<<< * return "And" + repr(self.child_regions) * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionAndList_1__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionAndList_1__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_13RegionAndList___repr__(((struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionAndList___repr__(struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); /* "pyregion/_region_filter.pyx":317 * * def __repr__(self): * return "And" + repr(self.child_regions) # <<<<<<<<<<<<<< * * def RegionAnd(RegionBase region1, RegionBase region2): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __pyx_v_self->__pyx_base.child_regions; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = PyObject_Repr(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = PyNumber_Add(__pyx_n_s_And, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 317, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":316 * return 1 * * def __repr__(self): # <<<<<<<<<<<<<< * return "And" + repr(self.child_regions) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("pyregion._region_filter.RegionAndList.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionAndList_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionAndList_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_13RegionAndList_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionAndList_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionAndList.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionAndList_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_13RegionAndList_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_13RegionAndList_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_13RegionAndList_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.RegionAndList.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":319 * return "And" + repr(self.child_regions) * * def RegionAnd(RegionBase region1, RegionBase region2): # <<<<<<<<<<<<<< * """ * >>> r = RegionAnd(reg1, reg2) */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_1RegionAnd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_8pyregion_14_region_filter_RegionAnd[] = "\n >>> r = RegionAnd(reg1, reg2)\n "; static PyMethodDef __pyx_mdef_8pyregion_14_region_filter_1RegionAnd = {"RegionAnd", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8pyregion_14_region_filter_1RegionAnd, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8pyregion_14_region_filter_RegionAnd}; static PyObject *__pyx_pw_8pyregion_14_region_filter_1RegionAnd(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region1 = 0; struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region2 = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("RegionAnd (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_region1,&__pyx_n_s_region2,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_region1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_region2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("RegionAnd", 1, 2, 2, 1); __PYX_ERR(1, 319, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "RegionAnd") < 0)) __PYX_ERR(1, 319, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_region1 = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)values[0]); __pyx_v_region2 = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)values[1]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("RegionAnd", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 319, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionAnd", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_region1), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "region1", 0))) __PYX_ERR(1, 319, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_region2), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "region2", 0))) __PYX_ERR(1, 319, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_RegionAnd(__pyx_self, __pyx_v_region1, __pyx_v_region2); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_RegionAnd(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region1, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region2) { PyObject *__pyx_v_region1_list = NULL; PyObject *__pyx_v_region2_list = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("RegionAnd", 0); /* "pyregion/_region_filter.pyx":323 * >>> r = RegionAnd(reg1, reg2) * """ * if isinstance(region1, RegionAndList): # <<<<<<<<<<<<<< * region1_list = region1.asList() * else: */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_region1), __pyx_ptype_8pyregion_14_region_filter_RegionAndList); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pyregion/_region_filter.pyx":324 * """ * if isinstance(region1, RegionAndList): * region1_list = region1.asList() # <<<<<<<<<<<<<< * else: * region1_list = [region1] */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_region1), __pyx_n_s_asList); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_region1_list = __pyx_t_3; __pyx_t_3 = 0; /* "pyregion/_region_filter.pyx":323 * >>> r = RegionAnd(reg1, reg2) * """ * if isinstance(region1, RegionAndList): # <<<<<<<<<<<<<< * region1_list = region1.asList() * else: */ goto __pyx_L3; } /* "pyregion/_region_filter.pyx":326 * region1_list = region1.asList() * else: * region1_list = [region1] # <<<<<<<<<<<<<< * * if isinstance(region2, RegionAndList): */ /*else*/ { __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_region1)); __Pyx_GIVEREF(((PyObject *)__pyx_v_region1)); PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_region1)); __pyx_v_region1_list = __pyx_t_3; __pyx_t_3 = 0; } __pyx_L3:; /* "pyregion/_region_filter.pyx":328 * region1_list = [region1] * * if isinstance(region2, RegionAndList): # <<<<<<<<<<<<<< * region2_list = region2.asList() * else: */ __pyx_t_2 = __Pyx_TypeCheck(((PyObject *)__pyx_v_region2), __pyx_ptype_8pyregion_14_region_filter_RegionAndList); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "pyregion/_region_filter.pyx":329 * * if isinstance(region2, RegionAndList): * region2_list = region2.asList() # <<<<<<<<<<<<<< * else: * region2_list = [region2] */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_region2), __pyx_n_s_asList); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_region2_list = __pyx_t_3; __pyx_t_3 = 0; /* "pyregion/_region_filter.pyx":328 * region1_list = [region1] * * if isinstance(region2, RegionAndList): # <<<<<<<<<<<<<< * region2_list = region2.asList() * else: */ goto __pyx_L4; } /* "pyregion/_region_filter.pyx":331 * region2_list = region2.asList() * else: * region2_list = [region2] # <<<<<<<<<<<<<< * * return RegionAndList(*(region1_list + region2_list)) */ /*else*/ { __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_region2)); __Pyx_GIVEREF(((PyObject *)__pyx_v_region2)); PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_region2)); __pyx_v_region2_list = __pyx_t_3; __pyx_t_3 = 0; } __pyx_L4:; /* "pyregion/_region_filter.pyx":333 * region2_list = [region2] * * return RegionAndList(*(region1_list + region2_list)) # <<<<<<<<<<<<<< * * def RegionOr(RegionBase region1, RegionBase region2): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyNumber_Add(__pyx_v_region1_list, __pyx_v_region2_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pyregion_14_region_filter_RegionAndList), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":319 * return "And" + repr(self.child_regions) * * def RegionAnd(RegionBase region1, RegionBase region2): # <<<<<<<<<<<<<< * """ * >>> r = RegionAnd(reg1, reg2) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyregion._region_filter.RegionAnd", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_region1_list); __Pyx_XDECREF(__pyx_v_region2_list); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":335 * return RegionAndList(*(region1_list + region2_list)) * * def RegionOr(RegionBase region1, RegionBase region2): # <<<<<<<<<<<<<< * """ * >>> r = RegionOr(reg1, reg2) */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_3RegionOr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static char __pyx_doc_8pyregion_14_region_filter_2RegionOr[] = "\n >>> r = RegionOr(reg1, reg2)\n "; static PyMethodDef __pyx_mdef_8pyregion_14_region_filter_3RegionOr = {"RegionOr", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8pyregion_14_region_filter_3RegionOr, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8pyregion_14_region_filter_2RegionOr}; static PyObject *__pyx_pw_8pyregion_14_region_filter_3RegionOr(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region1 = 0; struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region2 = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("RegionOr (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_region1,&__pyx_n_s_region2,0}; PyObject* values[2] = {0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_region1)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_region2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("RegionOr", 1, 2, 2, 1); __PYX_ERR(1, 335, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "RegionOr") < 0)) __PYX_ERR(1, 335, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 2) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); } __pyx_v_region1 = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)values[0]); __pyx_v_region2 = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)values[1]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("RegionOr", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 335, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.RegionOr", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return NULL; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_region1), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "region1", 0))) __PYX_ERR(1, 335, __pyx_L1_error) if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_region2), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "region2", 0))) __PYX_ERR(1, 335, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_2RegionOr(__pyx_self, __pyx_v_region1, __pyx_v_region2); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = NULL; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_2RegionOr(CYTHON_UNUSED PyObject *__pyx_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region1, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_region2) { PyObject *__pyx_v_region1_list = NULL; PyObject *__pyx_v_region2_list = NULL; PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; int __pyx_t_2; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("RegionOr", 0); /* "pyregion/_region_filter.pyx":339 * >>> r = RegionOr(reg1, reg2) * """ * if isinstance(region1, RegionOrList): # <<<<<<<<<<<<<< * region1_list = region1.asList() * else: */ __pyx_t_1 = __Pyx_TypeCheck(((PyObject *)__pyx_v_region1), __pyx_ptype_8pyregion_14_region_filter_RegionOrList); __pyx_t_2 = (__pyx_t_1 != 0); if (__pyx_t_2) { /* "pyregion/_region_filter.pyx":340 * """ * if isinstance(region1, RegionOrList): * region1_list = region1.asList() # <<<<<<<<<<<<<< * else: * region1_list = [region1] */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_region1), __pyx_n_s_asList); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 340, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_region1_list = __pyx_t_3; __pyx_t_3 = 0; /* "pyregion/_region_filter.pyx":339 * >>> r = RegionOr(reg1, reg2) * """ * if isinstance(region1, RegionOrList): # <<<<<<<<<<<<<< * region1_list = region1.asList() * else: */ goto __pyx_L3; } /* "pyregion/_region_filter.pyx":342 * region1_list = region1.asList() * else: * region1_list = [region1] # <<<<<<<<<<<<<< * * if isinstance(region2, RegionOrList): */ /*else*/ { __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_region1)); __Pyx_GIVEREF(((PyObject *)__pyx_v_region1)); PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_region1)); __pyx_v_region1_list = __pyx_t_3; __pyx_t_3 = 0; } __pyx_L3:; /* "pyregion/_region_filter.pyx":344 * region1_list = [region1] * * if isinstance(region2, RegionOrList): # <<<<<<<<<<<<<< * region2_list = region2.asList() * else: */ __pyx_t_2 = __Pyx_TypeCheck(((PyObject *)__pyx_v_region2), __pyx_ptype_8pyregion_14_region_filter_RegionOrList); __pyx_t_1 = (__pyx_t_2 != 0); if (__pyx_t_1) { /* "pyregion/_region_filter.pyx":345 * * if isinstance(region2, RegionOrList): * region2_list = region2.asList() # <<<<<<<<<<<<<< * else: * region2_list = [region2] */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_region2), __pyx_n_s_asList); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) { __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4); if (likely(__pyx_t_5)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4); __Pyx_INCREF(__pyx_t_5); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_4, function); } } __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0; if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 345, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_region2_list = __pyx_t_3; __pyx_t_3 = 0; /* "pyregion/_region_filter.pyx":344 * region1_list = [region1] * * if isinstance(region2, RegionOrList): # <<<<<<<<<<<<<< * region2_list = region2.asList() * else: */ goto __pyx_L4; } /* "pyregion/_region_filter.pyx":347 * region2_list = region2.asList() * else: * region2_list = [region2] # <<<<<<<<<<<<<< * * return RegionOrList(*(region1_list + region2_list)) */ /*else*/ { __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_INCREF(((PyObject *)__pyx_v_region2)); __Pyx_GIVEREF(((PyObject *)__pyx_v_region2)); PyList_SET_ITEM(__pyx_t_3, 0, ((PyObject *)__pyx_v_region2)); __pyx_v_region2_list = __pyx_t_3; __pyx_t_3 = 0; } __pyx_L4:; /* "pyregion/_region_filter.pyx":349 * region2_list = [region2] * * return RegionOrList(*(region1_list + region2_list)) # <<<<<<<<<<<<<< * * cdef class Transform(RegionBase): */ __Pyx_XDECREF(__pyx_r); __pyx_t_3 = PyNumber_Add(__pyx_v_region1_list, __pyx_v_region2_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PySequence_Tuple(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_8pyregion_14_region_filter_RegionOrList), __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":335 * return RegionAndList(*(region1_list + region2_list)) * * def RegionOr(RegionBase region1, RegionBase region2): # <<<<<<<<<<<<<< * """ * >>> r = RegionOr(reg1, reg2) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyregion._region_filter.RegionOr", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XDECREF(__pyx_v_region1_list); __Pyx_XDECREF(__pyx_v_region2_list); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":354 * cdef RegionBase child_region * * def __init__(self, RegionBase child_region): # <<<<<<<<<<<<<< * self.child_region = child_region * */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_9Transform_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_9Transform_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_child_region,0}; PyObject* values[1] = {0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_child_region)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 354, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 1) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); } __pyx_v_child_region = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)values[0]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 1, 1, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 354, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.Transform.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_child_region), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "child_region", 0))) __PYX_ERR(1, 354, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_9Transform___init__(((struct __pyx_obj_8pyregion_14_region_filter_Transform *)__pyx_v_self), __pyx_v_child_region); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_9Transform___init__(struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":355 * * def __init__(self, RegionBase child_region): * self.child_region = child_region # <<<<<<<<<<<<<< * * property child: */ __Pyx_INCREF(((PyObject *)__pyx_v_child_region)); __Pyx_GIVEREF(((PyObject *)__pyx_v_child_region)); __Pyx_GOTREF(__pyx_v_self->child_region); __Pyx_DECREF(((PyObject *)__pyx_v_self->child_region)); __pyx_v_self->child_region = __pyx_v_child_region; /* "pyregion/_region_filter.pyx":354 * cdef RegionBase child_region * * def __init__(self, RegionBase child_region): # <<<<<<<<<<<<<< * self.child_region = child_region * */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":358 * * property child: * def __get__(self): # <<<<<<<<<<<<<< * return self.child_region * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_9Transform_5child_1__get__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_9Transform_5child_1__get__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_9Transform_5child___get__(((struct __pyx_obj_8pyregion_14_region_filter_Transform *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_9Transform_5child___get__(struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__get__", 0); /* "pyregion/_region_filter.pyx":359 * property child: * def __get__(self): * return self.child_region # <<<<<<<<<<<<<< * * cdef int _transform(self, double x, double y, double *xp, double *yp): */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_self->child_region)); __pyx_r = ((PyObject *)__pyx_v_self->child_region); goto __pyx_L0; /* "pyregion/_region_filter.pyx":358 * * property child: * def __get__(self): # <<<<<<<<<<<<<< * return self.child_region * */ /* function exit code */ __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":361 * return self.child_region * * cdef int _transform(self, double x, double y, double *xp, double *yp): # <<<<<<<<<<<<<< * xp[0] = x * yp[0] = y */ static int __pyx_f_8pyregion_14_region_filter_9Transform__transform(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self, double __pyx_v_x, double __pyx_v_y, double *__pyx_v_xp, double *__pyx_v_yp) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_transform", 0); /* "pyregion/_region_filter.pyx":362 * * cdef int _transform(self, double x, double y, double *xp, double *yp): * xp[0] = x # <<<<<<<<<<<<<< * yp[0] = y * */ (__pyx_v_xp[0]) = __pyx_v_x; /* "pyregion/_region_filter.pyx":363 * cdef int _transform(self, double x, double y, double *xp, double *yp): * xp[0] = x * yp[0] = y # <<<<<<<<<<<<<< * * cdef npy_bool _inside(self, double x, double y): */ (__pyx_v_yp[0]) = __pyx_v_y; /* "pyregion/_region_filter.pyx":361 * return self.child_region * * cdef int _transform(self, double x, double y, double *xp, double *yp): # <<<<<<<<<<<<<< * xp[0] = x * yp[0] = y */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":365 * yp[0] = y * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef double xp, yp * cdef npy_bool r */ static npy_bool __pyx_f_8pyregion_14_region_filter_9Transform__inside(struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { double __pyx_v_xp; double __pyx_v_yp; npy_bool __pyx_v_r; npy_bool __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":369 * cdef npy_bool r * * self._transform(x, y, &xp, &yp) # <<<<<<<<<<<<<< * r = self.child_region._inside(xp, yp) * */ (void)(((struct __pyx_vtabstruct_8pyregion_14_region_filter_Transform *)__pyx_v_self->__pyx_base.__pyx_vtab)->_transform(__pyx_v_self, __pyx_v_x, __pyx_v_y, (&__pyx_v_xp), (&__pyx_v_yp))); /* "pyregion/_region_filter.pyx":370 * * self._transform(x, y, &xp, &yp) * r = self.child_region._inside(xp, yp) # <<<<<<<<<<<<<< * * return r */ __pyx_v_r = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase *)__pyx_v_self->child_region->__pyx_vtab)->_inside(__pyx_v_self->child_region, __pyx_v_xp, __pyx_v_yp); /* "pyregion/_region_filter.pyx":372 * r = self.child_region._inside(xp, yp) * * return r # <<<<<<<<<<<<<< * * */ __pyx_r = __pyx_v_r; goto __pyx_L0; /* "pyregion/_region_filter.pyx":365 * yp[0] = y * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef double xp, yp * cdef npy_bool r */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_9Transform_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_9Transform_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_9Transform_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Transform *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_9Transform_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Transform.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_9Transform_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_9Transform_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_9Transform_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Transform *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_9Transform_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Transform *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Transform.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":395 * cdef double origin_x, origin_y * * def __init__(self, RegionBase child_region, # <<<<<<<<<<<<<< * double degree, double origin_x, double origin_y): * cdef double theta */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_7Rotated_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_7Rotated_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region = 0; double __pyx_v_degree; double __pyx_v_origin_x; double __pyx_v_origin_y; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_child_region,&__pyx_n_s_degree,&__pyx_n_s_origin_x,&__pyx_n_s_origin_y,0}; PyObject* values[4] = {0,0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_child_region)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_degree)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 1); __PYX_ERR(1, 395, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_origin_x)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 2); __PYX_ERR(1, 395, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_origin_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, 3); __PYX_ERR(1, 395, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 395, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 4) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[3] = PyTuple_GET_ITEM(__pyx_args, 3); } __pyx_v_child_region = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)values[0]); __pyx_v_degree = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_degree == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 396, __pyx_L3_error) __pyx_v_origin_x = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_origin_x == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 396, __pyx_L3_error) __pyx_v_origin_y = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_origin_y == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 396, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 395, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.Rotated.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_child_region), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "child_region", 0))) __PYX_ERR(1, 395, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Rotated___init__(((struct __pyx_obj_8pyregion_14_region_filter_Rotated *)__pyx_v_self), __pyx_v_child_region, __pyx_v_degree, __pyx_v_origin_x, __pyx_v_origin_y); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_7Rotated___init__(struct __pyx_obj_8pyregion_14_region_filter_Rotated *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region, double __pyx_v_degree, double __pyx_v_origin_x, double __pyx_v_origin_y) { double __pyx_v_theta; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":399 * cdef double theta * * Transform.__init__(self, child_region) # <<<<<<<<<<<<<< * * theta = degree / 180. * M_PI #3.1415926 */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pyregion_14_region_filter_Transform), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_child_region)}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 399, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_child_region)}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 399, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(((PyObject *)__pyx_v_child_region)); __Pyx_GIVEREF(((PyObject *)__pyx_v_child_region)); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, ((PyObject *)__pyx_v_child_region)); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 399, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":401 * Transform.__init__(self, child_region) * * theta = degree / 180. * M_PI #3.1415926 # <<<<<<<<<<<<<< * self.sin_theta = sin(theta) * self.cos_theta = cos(theta) */ __pyx_v_theta = ((__pyx_v_degree / 180.) * M_PI); /* "pyregion/_region_filter.pyx":402 * * theta = degree / 180. * M_PI #3.1415926 * self.sin_theta = sin(theta) # <<<<<<<<<<<<<< * self.cos_theta = cos(theta) * */ __pyx_v_self->sin_theta = sin(__pyx_v_theta); /* "pyregion/_region_filter.pyx":403 * theta = degree / 180. * M_PI #3.1415926 * self.sin_theta = sin(theta) * self.cos_theta = cos(theta) # <<<<<<<<<<<<<< * * self.origin_x = origin_x */ __pyx_v_self->cos_theta = cos(__pyx_v_theta); /* "pyregion/_region_filter.pyx":405 * self.cos_theta = cos(theta) * * self.origin_x = origin_x # <<<<<<<<<<<<<< * self.origin_y = origin_y * */ __pyx_v_self->origin_x = __pyx_v_origin_x; /* "pyregion/_region_filter.pyx":406 * * self.origin_x = origin_x * self.origin_y = origin_y # <<<<<<<<<<<<<< * * cdef int _transform(self, double x, double y, double *xp, double *yp): */ __pyx_v_self->origin_y = __pyx_v_origin_y; /* "pyregion/_region_filter.pyx":395 * cdef double origin_x, origin_y * * def __init__(self, RegionBase child_region, # <<<<<<<<<<<<<< * double degree, double origin_x, double origin_y): * cdef double theta */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyregion._region_filter.Rotated.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":408 * self.origin_y = origin_y * * cdef int _transform(self, double x, double y, double *xp, double *yp): # <<<<<<<<<<<<<< * cdef double x1, x2, y1, y2 * cdef double st, ct, ox, oy */ static int __pyx_f_8pyregion_14_region_filter_7Rotated__transform(struct __pyx_obj_8pyregion_14_region_filter_Rotated *__pyx_v_self, double __pyx_v_x, double __pyx_v_y, double *__pyx_v_xp, double *__pyx_v_yp) { double __pyx_v_x1; double __pyx_v_x2; double __pyx_v_y1; double __pyx_v_y2; double __pyx_v_st; double __pyx_v_ct; double __pyx_v_ox; double __pyx_v_oy; int __pyx_r; __Pyx_RefNannyDeclarations double __pyx_t_1; __Pyx_RefNannySetupContext("_transform", 0); /* "pyregion/_region_filter.pyx":412 * cdef double st, ct, ox, oy * * st = self.sin_theta # <<<<<<<<<<<<<< * ct = self.cos_theta * ox = self.origin_x */ __pyx_t_1 = __pyx_v_self->sin_theta; __pyx_v_st = __pyx_t_1; /* "pyregion/_region_filter.pyx":413 * * st = self.sin_theta * ct = self.cos_theta # <<<<<<<<<<<<<< * ox = self.origin_x * oy = self.origin_y */ __pyx_t_1 = __pyx_v_self->cos_theta; __pyx_v_ct = __pyx_t_1; /* "pyregion/_region_filter.pyx":414 * st = self.sin_theta * ct = self.cos_theta * ox = self.origin_x # <<<<<<<<<<<<<< * oy = self.origin_y * */ __pyx_t_1 = __pyx_v_self->origin_x; __pyx_v_ox = __pyx_t_1; /* "pyregion/_region_filter.pyx":415 * ct = self.cos_theta * ox = self.origin_x * oy = self.origin_y # <<<<<<<<<<<<<< * * x1 = x - ox */ __pyx_t_1 = __pyx_v_self->origin_y; __pyx_v_oy = __pyx_t_1; /* "pyregion/_region_filter.pyx":417 * oy = self.origin_y * * x1 = x - ox # <<<<<<<<<<<<<< * y1 = y - oy * */ __pyx_v_x1 = (__pyx_v_x - __pyx_v_ox); /* "pyregion/_region_filter.pyx":418 * * x1 = x - ox * y1 = y - oy # <<<<<<<<<<<<<< * * x2 = ct * x1 + st * y1 */ __pyx_v_y1 = (__pyx_v_y - __pyx_v_oy); /* "pyregion/_region_filter.pyx":420 * y1 = y - oy * * x2 = ct * x1 + st * y1 # <<<<<<<<<<<<<< * y2 = -st * x1 + ct * y1 * */ __pyx_v_x2 = ((__pyx_v_ct * __pyx_v_x1) + (__pyx_v_st * __pyx_v_y1)); /* "pyregion/_region_filter.pyx":421 * * x2 = ct * x1 + st * y1 * y2 = -st * x1 + ct * y1 # <<<<<<<<<<<<<< * * xp[0] = x2 + ox */ __pyx_v_y2 = (((-__pyx_v_st) * __pyx_v_x1) + (__pyx_v_ct * __pyx_v_y1)); /* "pyregion/_region_filter.pyx":423 * y2 = -st * x1 + ct * y1 * * xp[0] = x2 + ox # <<<<<<<<<<<<<< * yp[0] = y2 + oy * */ (__pyx_v_xp[0]) = (__pyx_v_x2 + __pyx_v_ox); /* "pyregion/_region_filter.pyx":424 * * xp[0] = x2 + ox * yp[0] = y2 + oy # <<<<<<<<<<<<<< * * cdef class Translated(Transform): */ (__pyx_v_yp[0]) = (__pyx_v_y2 + __pyx_v_oy); /* "pyregion/_region_filter.pyx":408 * self.origin_y = origin_y * * cdef int _transform(self, double x, double y, double *xp, double *yp): # <<<<<<<<<<<<<< * cdef double x1, x2, y1, y2 * cdef double st, ct, ox, oy */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Rotated_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Rotated_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Rotated_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Rotated *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_7Rotated_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Rotated *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Rotated.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Rotated_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Rotated_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Rotated_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Rotated *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_7Rotated_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Rotated *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Rotated.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":436 * cdef double dy * * def __init__(self, RegionBase child_region, # <<<<<<<<<<<<<< * double dx, double dy): * Transform.__init__(self, child_region) */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_10Translated_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_10Translated_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region = 0; double __pyx_v_dx; double __pyx_v_dy; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_child_region,&__pyx_n_s_dx,&__pyx_n_s_dy,0}; PyObject* values[3] = {0,0,0}; if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_child_region)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dx)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 1); __PYX_ERR(1, 436, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dy)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, 2); __PYX_ERR(1, 436, __pyx_L3_error) } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 436, __pyx_L3_error) } } else if (PyTuple_GET_SIZE(__pyx_args) != 3) { goto __pyx_L5_argtuple_error; } else { values[0] = PyTuple_GET_ITEM(__pyx_args, 0); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); } __pyx_v_child_region = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)values[0]); __pyx_v_dx = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_dx == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 437, __pyx_L3_error) __pyx_v_dy = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_dy == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 437, __pyx_L3_error) } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 436, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.Translated.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_child_region), __pyx_ptype_8pyregion_14_region_filter_RegionBase, 1, "child_region", 0))) __PYX_ERR(1, 436, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_10Translated___init__(((struct __pyx_obj_8pyregion_14_region_filter_Translated *)__pyx_v_self), __pyx_v_child_region, __pyx_v_dx, __pyx_v_dy); /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_10Translated___init__(struct __pyx_obj_8pyregion_14_region_filter_Translated *__pyx_v_self, struct __pyx_obj_8pyregion_14_region_filter_RegionBase *__pyx_v_child_region, double __pyx_v_dx, double __pyx_v_dy) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; int __pyx_t_4; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":438 * def __init__(self, RegionBase child_region, * double dx, double dy): * Transform.__init__(self, child_region) # <<<<<<<<<<<<<< * * self.dx = dx */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_ptype_8pyregion_14_region_filter_Transform), __pyx_n_s_init); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; __pyx_t_4 = 0; if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) { __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2); if (likely(__pyx_t_3)) { PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2); __Pyx_INCREF(__pyx_t_3); __Pyx_INCREF(function); __Pyx_DECREF_SET(__pyx_t_2, function); __pyx_t_4 = 1; } } #if CYTHON_FAST_PYCALL if (PyFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_child_region)}; __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) { PyObject *__pyx_temp[3] = {__pyx_t_3, ((PyObject *)__pyx_v_self), ((PyObject *)__pyx_v_child_region)}; __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_GOTREF(__pyx_t_1); } else #endif { __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (__pyx_t_3) { __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL; } __Pyx_INCREF(((PyObject *)__pyx_v_self)); __Pyx_GIVEREF(((PyObject *)__pyx_v_self)); PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, ((PyObject *)__pyx_v_self)); __Pyx_INCREF(((PyObject *)__pyx_v_child_region)); __Pyx_GIVEREF(((PyObject *)__pyx_v_child_region)); PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, ((PyObject *)__pyx_v_child_region)); __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 438, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":440 * Transform.__init__(self, child_region) * * self.dx = dx # <<<<<<<<<<<<<< * self.dy = dy * */ __pyx_v_self->dx = __pyx_v_dx; /* "pyregion/_region_filter.pyx":441 * * self.dx = dx * self.dy = dy # <<<<<<<<<<<<<< * * cdef int _transform(self, double x, double y, double *xp, double *yp): */ __pyx_v_self->dy = __pyx_v_dy; /* "pyregion/_region_filter.pyx":436 * cdef double dy * * def __init__(self, RegionBase child_region, # <<<<<<<<<<<<<< * double dx, double dy): * Transform.__init__(self, child_region) */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyregion._region_filter.Translated.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":443 * self.dy = dy * * cdef int _transform(self, double x, double y, double *xp, double *yp): # <<<<<<<<<<<<<< * xp[0] = x - self.dx * yp[0] = y - self.dy */ static int __pyx_f_8pyregion_14_region_filter_10Translated__transform(struct __pyx_obj_8pyregion_14_region_filter_Translated *__pyx_v_self, double __pyx_v_x, double __pyx_v_y, double *__pyx_v_xp, double *__pyx_v_yp) { int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_transform", 0); /* "pyregion/_region_filter.pyx":444 * * cdef int _transform(self, double x, double y, double *xp, double *yp): * xp[0] = x - self.dx # <<<<<<<<<<<<<< * yp[0] = y - self.dy * */ (__pyx_v_xp[0]) = (__pyx_v_x - __pyx_v_self->dx); /* "pyregion/_region_filter.pyx":445 * cdef int _transform(self, double x, double y, double *xp, double *yp): * xp[0] = x - self.dx * yp[0] = y - self.dy # <<<<<<<<<<<<<< * * # Basic Shapes */ (__pyx_v_yp[0]) = (__pyx_v_y - __pyx_v_self->dy); /* "pyregion/_region_filter.pyx":443 * self.dy = dy * * cdef int _transform(self, double x, double y, double *xp, double *yp): # <<<<<<<<<<<<<< * xp[0] = x - self.dx * yp[0] = y - self.dy */ /* function exit code */ __pyx_r = 0; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10Translated_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10Translated_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10Translated_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Translated *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10Translated_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Translated *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Translated.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10Translated_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10Translated_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10Translated_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Translated *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10Translated_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Translated *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Translated.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":461 * cdef double radius2 * * cdef _set_v(self, double xc, double yc, double radius): # <<<<<<<<<<<<<< * self.xc = xc * self.yc = yc */ static PyObject *__pyx_f_8pyregion_14_region_filter_6Circle__set_v(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_radius) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_set_v", 0); /* "pyregion/_region_filter.pyx":462 * * cdef _set_v(self, double xc, double yc, double radius): * self.xc = xc # <<<<<<<<<<<<<< * self.yc = yc * self.radius = radius */ __pyx_v_self->xc = __pyx_v_xc; /* "pyregion/_region_filter.pyx":463 * cdef _set_v(self, double xc, double yc, double radius): * self.xc = xc * self.yc = yc # <<<<<<<<<<<<<< * self.radius = radius * self.radius2 = radius * radius */ __pyx_v_self->yc = __pyx_v_yc; /* "pyregion/_region_filter.pyx":464 * self.xc = xc * self.yc = yc * self.radius = radius # <<<<<<<<<<<<<< * self.radius2 = radius * radius * */ __pyx_v_self->radius = __pyx_v_radius; /* "pyregion/_region_filter.pyx":465 * self.yc = yc * self.radius = radius * self.radius2 = radius * radius # <<<<<<<<<<<<<< * * cdef _get_v(self): */ __pyx_v_self->radius2 = (__pyx_v_radius * __pyx_v_radius); /* "pyregion/_region_filter.pyx":461 * cdef double radius2 * * cdef _set_v(self, double xc, double yc, double radius): # <<<<<<<<<<<<<< * self.xc = xc * self.yc = yc */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":467 * self.radius2 = radius * radius * * cdef _get_v(self): # <<<<<<<<<<<<<< * return (self.xc, self.yc, self.radius) * */ static PyObject *__pyx_f_8pyregion_14_region_filter_6Circle__get_v(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_get_v", 0); /* "pyregion/_region_filter.pyx":468 * * cdef _get_v(self): * return (self.xc, self.yc, self.radius) # <<<<<<<<<<<<<< * * def __init__(self, double xc, double yc, double radius, */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->xc); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->yc); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->radius); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 468, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":467 * self.radius2 = radius * radius * * cdef _get_v(self): # <<<<<<<<<<<<<< * return (self.xc, self.yc, self.radius) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyregion._region_filter.Circle._get_v", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = 0; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":470 * return (self.xc, self.yc, self.radius) * * def __init__(self, double xc, double yc, double radius, # <<<<<<<<<<<<<< * RegionContext c=None): * self.metric_set_origin(xc, yc, c) */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_6Circle_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_6Circle_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_xc; double __pyx_v_yc; double __pyx_v_radius; struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xc,&__pyx_n_s_yc,&__pyx_n_s_radius,&__pyx_n_s_c,0}; PyObject* values[4] = {0,0,0,0}; /* "pyregion/_region_filter.pyx":471 * * def __init__(self, double xc, double yc, double radius, * RegionContext c=None): # <<<<<<<<<<<<<< * self.metric_set_origin(xc, yc, c) * self._set_v(xc, yc, radius) */ values[3] = (PyObject *)((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xc)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_yc)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 1); __PYX_ERR(1, 470, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_radius)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, 2); __PYX_ERR(1, 470, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c); if (value) { values[3] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 470, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_xc = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xc == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 470, __pyx_L3_error) __pyx_v_yc = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_yc == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 470, __pyx_L3_error) __pyx_v_radius = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_radius == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 470, __pyx_L3_error) __pyx_v_c = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)values[3]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 470, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.Circle.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8pyregion_14_region_filter_RegionContext, 1, "c", 0))) __PYX_ERR(1, 471, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_6Circle___init__(((struct __pyx_obj_8pyregion_14_region_filter_Circle *)__pyx_v_self), __pyx_v_xc, __pyx_v_yc, __pyx_v_radius, __pyx_v_c); /* "pyregion/_region_filter.pyx":470 * return (self.xc, self.yc, self.radius) * * def __init__(self, double xc, double yc, double radius, # <<<<<<<<<<<<<< * RegionContext c=None): * self.metric_set_origin(xc, yc, c) */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_6Circle___init__(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_radius, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":472 * def __init__(self, double xc, double yc, double radius, * RegionContext c=None): * self.metric_set_origin(xc, yc, c) # <<<<<<<<<<<<<< * self._set_v(xc, yc, radius) * */ __pyx_t_1 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_Circle *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.metric_set_origin(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), __pyx_v_xc, __pyx_v_yc, __pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":473 * RegionContext c=None): * self.metric_set_origin(xc, yc, c) * self._set_v(xc, yc, radius) # <<<<<<<<<<<<<< * * cdef npy_bool _inside(self, double x, double y): */ __pyx_t_1 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_Circle *)__pyx_v_self->__pyx_base.__pyx_vtab)->_set_v(__pyx_v_self, __pyx_v_xc, __pyx_v_yc, __pyx_v_radius); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 473, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":470 * return (self.xc, self.yc, self.radius) * * def __init__(self, double xc, double yc, double radius, # <<<<<<<<<<<<<< * RegionContext c=None): * self.metric_set_origin(xc, yc, c) */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Circle.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":475 * self._set_v(xc, yc, radius) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef double dist2 * */ static npy_bool __pyx_f_8pyregion_14_region_filter_6Circle__inside(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { double __pyx_v_dist2; npy_bool __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":478 * cdef double dist2 * * dist2 = ((x - self.xc) * self.m.g_x) ** 2 + ((y - self.yc) * self.m.g_y) ** 2 # <<<<<<<<<<<<<< * return (dist2 <= self.radius2) * */ __pyx_v_dist2 = (pow(((__pyx_v_x - __pyx_v_self->xc) * __pyx_v_self->__pyx_base.m.g_x), 2.0) + pow(((__pyx_v_y - __pyx_v_self->yc) * __pyx_v_self->__pyx_base.m.g_y), 2.0)); /* "pyregion/_region_filter.pyx":479 * * dist2 = ((x - self.xc) * self.m.g_x) ** 2 + ((y - self.yc) * self.m.g_y) ** 2 * return (dist2 <= self.radius2) # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = (__pyx_v_dist2 <= __pyx_v_self->radius2); goto __pyx_L0; /* "pyregion/_region_filter.pyx":475 * self._set_v(xc, yc, radius) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef double dist2 * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":481 * return (dist2 <= self.radius2) * * def __repr__(self): # <<<<<<<<<<<<<< * return "Circle(%f, %f, %f)" % (self.xc, self.yc, self.radius) * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_6Circle_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_6Circle_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_6Circle_2__repr__(((struct __pyx_obj_8pyregion_14_region_filter_Circle *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_6Circle_2__repr__(struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); /* "pyregion/_region_filter.pyx":482 * * def __repr__(self): * return "Circle(%f, %f, %f)" % (self.xc, self.yc, self.radius) # <<<<<<<<<<<<<< * * cdef class Ellipse(RegionBase): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->xc); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->yc); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->radius); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_3 = __Pyx_PyString_Format(__pyx_kp_s_Circle_f_f_f, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 482, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_r = __pyx_t_3; __pyx_t_3 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":481 * return (dist2 <= self.radius2) * * def __repr__(self): # <<<<<<<<<<<<<< * return "Circle(%f, %f, %f)" % (self.xc, self.yc, self.radius) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_AddTraceback("pyregion._region_filter.Circle.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_6Circle_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_6Circle_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_6Circle_4__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Circle *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_6Circle_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Circle.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_6Circle_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_6Circle_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_6Circle_6__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Circle *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_6Circle_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Circle *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Circle.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":499 * cdef double radius_major_2_radius_minor_2 * * def __init__(self, double xc, double yc, # <<<<<<<<<<<<<< * double radius_major, double radius_minor, * RegionContext c=None): */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_7Ellipse_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_7Ellipse_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_xc; double __pyx_v_yc; double __pyx_v_radius_major; double __pyx_v_radius_minor; struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xc,&__pyx_n_s_yc,&__pyx_n_s_radius_major,&__pyx_n_s_radius_minor,&__pyx_n_s_c,0}; PyObject* values[5] = {0,0,0,0,0}; /* "pyregion/_region_filter.pyx":501 * def __init__(self, double xc, double yc, * double radius_major, double radius_minor, * RegionContext c=None): # <<<<<<<<<<<<<< * # check inside * # (x-xc)**2/radius_major**2 + (y-yc)**2/radius_minor**2 < 1 */ values[4] = (PyObject *)((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xc)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_yc)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 1); __PYX_ERR(1, 499, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_radius_major)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 2); __PYX_ERR(1, 499, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_radius_minor)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 3); __PYX_ERR(1, 499, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 499, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_xc = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xc == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 499, __pyx_L3_error) __pyx_v_yc = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_yc == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 499, __pyx_L3_error) __pyx_v_radius_major = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_radius_major == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 500, __pyx_L3_error) __pyx_v_radius_minor = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_radius_minor == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 500, __pyx_L3_error) __pyx_v_c = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)values[4]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 499, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.Ellipse.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8pyregion_14_region_filter_RegionContext, 1, "c", 0))) __PYX_ERR(1, 501, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Ellipse___init__(((struct __pyx_obj_8pyregion_14_region_filter_Ellipse *)__pyx_v_self), __pyx_v_xc, __pyx_v_yc, __pyx_v_radius_major, __pyx_v_radius_minor, __pyx_v_c); /* "pyregion/_region_filter.pyx":499 * cdef double radius_major_2_radius_minor_2 * * def __init__(self, double xc, double yc, # <<<<<<<<<<<<<< * double radius_major, double radius_minor, * RegionContext c=None): */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_7Ellipse___init__(struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_radius_major, double __pyx_v_radius_minor, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":506 * # radius_minor**2*(x-xc)**2 + radius_major**2*(y-yc)**2 < (radius_major*radius_minor)**2 * * self.xc = xc # <<<<<<<<<<<<<< * self.yc = yc * self.radius_major = radius_major */ __pyx_v_self->xc = __pyx_v_xc; /* "pyregion/_region_filter.pyx":507 * * self.xc = xc * self.yc = yc # <<<<<<<<<<<<<< * self.radius_major = radius_major * self.radius_minor = radius_minor */ __pyx_v_self->yc = __pyx_v_yc; /* "pyregion/_region_filter.pyx":508 * self.xc = xc * self.yc = yc * self.radius_major = radius_major # <<<<<<<<<<<<<< * self.radius_minor = radius_minor * self.radius_major_2 = radius_major ** 2 */ __pyx_v_self->radius_major = __pyx_v_radius_major; /* "pyregion/_region_filter.pyx":509 * self.yc = yc * self.radius_major = radius_major * self.radius_minor = radius_minor # <<<<<<<<<<<<<< * self.radius_major_2 = radius_major ** 2 * self.radius_minor_2 = radius_minor ** 2 */ __pyx_v_self->radius_minor = __pyx_v_radius_minor; /* "pyregion/_region_filter.pyx":510 * self.radius_major = radius_major * self.radius_minor = radius_minor * self.radius_major_2 = radius_major ** 2 # <<<<<<<<<<<<<< * self.radius_minor_2 = radius_minor ** 2 * self.radius_major_2_radius_minor_2 = self.radius_major_2 * self.radius_minor_2 */ __pyx_v_self->radius_major_2 = pow(__pyx_v_radius_major, 2.0); /* "pyregion/_region_filter.pyx":511 * self.radius_minor = radius_minor * self.radius_major_2 = radius_major ** 2 * self.radius_minor_2 = radius_minor ** 2 # <<<<<<<<<<<<<< * self.radius_major_2_radius_minor_2 = self.radius_major_2 * self.radius_minor_2 * */ __pyx_v_self->radius_minor_2 = pow(__pyx_v_radius_minor, 2.0); /* "pyregion/_region_filter.pyx":512 * self.radius_major_2 = radius_major ** 2 * self.radius_minor_2 = radius_minor ** 2 * self.radius_major_2_radius_minor_2 = self.radius_major_2 * self.radius_minor_2 # <<<<<<<<<<<<<< * * self.metric_set_origin(xc, yc, c) */ __pyx_v_self->radius_major_2_radius_minor_2 = (__pyx_v_self->radius_major_2 * __pyx_v_self->radius_minor_2); /* "pyregion/_region_filter.pyx":514 * self.radius_major_2_radius_minor_2 = self.radius_major_2 * self.radius_minor_2 * * self.metric_set_origin(xc, yc, c) # <<<<<<<<<<<<<< * * cdef npy_bool _inside(self, double x, double y): */ __pyx_t_1 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_Ellipse *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.metric_set_origin(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), __pyx_v_xc, __pyx_v_yc, __pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":499 * cdef double radius_major_2_radius_minor_2 * * def __init__(self, double xc, double yc, # <<<<<<<<<<<<<< * double radius_major, double radius_minor, * RegionContext c=None): */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Ellipse.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":516 * self.metric_set_origin(xc, yc, c) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef double dist2 * */ static npy_bool __pyx_f_8pyregion_14_region_filter_7Ellipse__inside(struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { double __pyx_v_dist2; npy_bool __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":519 * cdef double dist2 * * dist2 = self.radius_minor_2 * (x - self.xc) ** 2 + self.radius_major_2 * (y - self.yc) ** 2 # <<<<<<<<<<<<<< * return (dist2 <= self.radius_major_2_radius_minor_2) * */ __pyx_v_dist2 = ((__pyx_v_self->radius_minor_2 * pow((__pyx_v_x - __pyx_v_self->xc), 2.0)) + (__pyx_v_self->radius_major_2 * pow((__pyx_v_y - __pyx_v_self->yc), 2.0))); /* "pyregion/_region_filter.pyx":520 * * dist2 = self.radius_minor_2 * (x - self.xc) ** 2 + self.radius_major_2 * (y - self.yc) ** 2 * return (dist2 <= self.radius_major_2_radius_minor_2) # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = (__pyx_v_dist2 <= __pyx_v_self->radius_major_2_radius_minor_2); goto __pyx_L0; /* "pyregion/_region_filter.pyx":516 * self.metric_set_origin(xc, yc, c) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef double dist2 * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":522 * return (dist2 <= self.radius_major_2_radius_minor_2) * * def __repr__(self): # <<<<<<<<<<<<<< * return "Ellipse(%f, %f, %f, %f)" % (self.xc, self.yc, self.radius_major, self.radius_minor) * */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Ellipse_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Ellipse_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Ellipse_2__repr__(((struct __pyx_obj_8pyregion_14_region_filter_Ellipse *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_7Ellipse_2__repr__(struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); /* "pyregion/_region_filter.pyx":523 * * def __repr__(self): * return "Ellipse(%f, %f, %f, %f)" % (self.xc, self.yc, self.radius_major, self.radius_minor) # <<<<<<<<<<<<<< * * cdef class Box(RegionBase): */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->xc); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->yc); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->radius_major); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->radius_minor); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_Ellipse_f_f_f_f, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":522 * return (dist2 <= self.radius_major_2_radius_minor_2) * * def __repr__(self): # <<<<<<<<<<<<<< * return "Ellipse(%f, %f, %f, %f)" % (self.xc, self.yc, self.radius_major, self.radius_minor) * */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyregion._region_filter.Ellipse.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Ellipse_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Ellipse_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Ellipse_4__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Ellipse *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_7Ellipse_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Ellipse.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Ellipse_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Ellipse_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Ellipse_6__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Ellipse *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_7Ellipse_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Ellipse *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Ellipse.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":537 * cdef double y2 * * def __init__(self, double xc, double yc, double width, double height, # <<<<<<<<<<<<<< * RegionContext c=None): * cdef double halfwidth */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_3Box_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_3Box_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_xc; double __pyx_v_yc; double __pyx_v_width; double __pyx_v_height; struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xc,&__pyx_n_s_yc,&__pyx_n_s_width,&__pyx_n_s_height,&__pyx_n_s_c,0}; PyObject* values[5] = {0,0,0,0,0}; /* "pyregion/_region_filter.pyx":538 * * def __init__(self, double xc, double yc, double width, double height, * RegionContext c=None): # <<<<<<<<<<<<<< * cdef double halfwidth * cdef double halfheight */ values[4] = (PyObject *)((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xc)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_yc)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 1); __PYX_ERR(1, 537, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_width)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 2); __PYX_ERR(1, 537, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_height)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 3); __PYX_ERR(1, 537, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 537, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_xc = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xc == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 537, __pyx_L3_error) __pyx_v_yc = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_yc == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 537, __pyx_L3_error) __pyx_v_width = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_width == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 537, __pyx_L3_error) __pyx_v_height = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_height == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 537, __pyx_L3_error) __pyx_v_c = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)values[4]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 537, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.Box.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8pyregion_14_region_filter_RegionContext, 1, "c", 0))) __PYX_ERR(1, 538, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_3Box___init__(((struct __pyx_obj_8pyregion_14_region_filter_Box *)__pyx_v_self), __pyx_v_xc, __pyx_v_yc, __pyx_v_width, __pyx_v_height, __pyx_v_c); /* "pyregion/_region_filter.pyx":537 * cdef double y2 * * def __init__(self, double xc, double yc, double width, double height, # <<<<<<<<<<<<<< * RegionContext c=None): * cdef double halfwidth */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_3Box___init__(struct __pyx_obj_8pyregion_14_region_filter_Box *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_width, double __pyx_v_height, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c) { double __pyx_v_halfwidth; double __pyx_v_halfheight; int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":542 * cdef double halfheight * * halfwidth = width * .5 # <<<<<<<<<<<<<< * halfheight = height * .5 * */ __pyx_v_halfwidth = (__pyx_v_width * .5); /* "pyregion/_region_filter.pyx":543 * * halfwidth = width * .5 * halfheight = height * .5 # <<<<<<<<<<<<<< * * self.x1 = xc - halfwidth */ __pyx_v_halfheight = (__pyx_v_height * .5); /* "pyregion/_region_filter.pyx":545 * halfheight = height * .5 * * self.x1 = xc - halfwidth # <<<<<<<<<<<<<< * self.x2 = xc + halfwidth * self.y1 = yc - halfheight */ __pyx_v_self->x1 = (__pyx_v_xc - __pyx_v_halfwidth); /* "pyregion/_region_filter.pyx":546 * * self.x1 = xc - halfwidth * self.x2 = xc + halfwidth # <<<<<<<<<<<<<< * self.y1 = yc - halfheight * self.y2 = yc + halfheight */ __pyx_v_self->x2 = (__pyx_v_xc + __pyx_v_halfwidth); /* "pyregion/_region_filter.pyx":547 * self.x1 = xc - halfwidth * self.x2 = xc + halfwidth * self.y1 = yc - halfheight # <<<<<<<<<<<<<< * self.y2 = yc + halfheight * */ __pyx_v_self->y1 = (__pyx_v_yc - __pyx_v_halfheight); /* "pyregion/_region_filter.pyx":548 * self.x2 = xc + halfwidth * self.y1 = yc - halfheight * self.y2 = yc + halfheight # <<<<<<<<<<<<<< * * self.metric_set_origin(xc, yc, c) */ __pyx_v_self->y2 = (__pyx_v_yc + __pyx_v_halfheight); /* "pyregion/_region_filter.pyx":550 * self.y2 = yc + halfheight * * self.metric_set_origin(xc, yc, c) # <<<<<<<<<<<<<< * * cdef npy_bool _inside(self, double x, double y): */ __pyx_t_1 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_Box *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.metric_set_origin(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), __pyx_v_xc, __pyx_v_yc, __pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 550, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":537 * cdef double y2 * * def __init__(self, double xc, double yc, double width, double height, # <<<<<<<<<<<<<< * RegionContext c=None): * cdef double halfwidth */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Box.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":552 * self.metric_set_origin(xc, yc, c) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * return (self.x1 <= x) & (x <= self.x2) & (self.y1 <= y) & (y <= self.y2) * */ static npy_bool __pyx_f_8pyregion_14_region_filter_3Box__inside(struct __pyx_obj_8pyregion_14_region_filter_Box *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { npy_bool __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":553 * * cdef npy_bool _inside(self, double x, double y): * return (self.x1 <= x) & (x <= self.x2) & (self.y1 <= y) & (y <= self.y2) # <<<<<<<<<<<<<< * * cdef class Polygon(RegionBase): */ __pyx_r = ((((__pyx_v_self->x1 <= __pyx_v_x) & (__pyx_v_x <= __pyx_v_self->x2)) & (__pyx_v_self->y1 <= __pyx_v_y)) & (__pyx_v_y <= __pyx_v_self->y2)); goto __pyx_L0; /* "pyregion/_region_filter.pyx":552 * self.metric_set_origin(xc, yc, c) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * return (self.x1 <= x) & (x <= self.x2) & (self.y1 <= y) & (y <= self.y2) * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_3Box_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_3Box_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_3Box_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Box *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_3Box_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Box *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Box.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_3Box_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_3Box_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_3Box_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Box *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_3Box_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Box *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Box.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":571 * cdef int n * * def __init__(self, x, y, # <<<<<<<<<<<<<< * RegionContext c=None): * self.xa = c_numpy.PyArray_CopyFromObject(x, c_numpy.NPY_DOUBLE, 1, 1) */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_7Polygon_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_7Polygon_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { PyObject *__pyx_v_x = 0; PyObject *__pyx_v_y = 0; struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_x,&__pyx_n_s_y,&__pyx_n_s_c,0}; PyObject* values[3] = {0,0,0}; /* "pyregion/_region_filter.pyx":572 * * def __init__(self, x, y, * RegionContext c=None): # <<<<<<<<<<<<<< * self.xa = c_numpy.PyArray_CopyFromObject(x, c_numpy.NPY_DOUBLE, 1, 1) * self.ya = c_numpy.PyArray_CopyFromObject(y, c_numpy.NPY_DOUBLE, 1, 1) */ values[2] = (PyObject *)((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_x)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, 1); __PYX_ERR(1, 571, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c); if (value) { values[2] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 571, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_x = values[0]; __pyx_v_y = values[1]; __pyx_v_c = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)values[2]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 571, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.Polygon.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8pyregion_14_region_filter_RegionContext, 1, "c", 0))) __PYX_ERR(1, 572, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Polygon___init__(((struct __pyx_obj_8pyregion_14_region_filter_Polygon *)__pyx_v_self), __pyx_v_x, __pyx_v_y, __pyx_v_c); /* "pyregion/_region_filter.pyx":571 * cdef int n * * def __init__(self, x, y, # <<<<<<<<<<<<<< * RegionContext c=None): * self.xa = c_numpy.PyArray_CopyFromObject(x, c_numpy.NPY_DOUBLE, 1, 1) */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_7Polygon___init__(struct __pyx_obj_8pyregion_14_region_filter_Polygon *__pyx_v_self, PyObject *__pyx_v_x, PyObject *__pyx_v_y, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":573 * def __init__(self, x, y, * RegionContext c=None): * self.xa = c_numpy.PyArray_CopyFromObject(x, c_numpy.NPY_DOUBLE, 1, 1) # <<<<<<<<<<<<<< * self.ya = c_numpy.PyArray_CopyFromObject(y, c_numpy.NPY_DOUBLE, 1, 1) * */ __pyx_t_1 = PyArray_CopyFromObject(__pyx_v_x, NPY_DOUBLE, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pyregion_7c_numpy_ndarray))))) __PYX_ERR(1, 573, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->xa); __Pyx_DECREF(((PyObject *)__pyx_v_self->xa)); __pyx_v_self->xa = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":574 * RegionContext c=None): * self.xa = c_numpy.PyArray_CopyFromObject(x, c_numpy.NPY_DOUBLE, 1, 1) * self.ya = c_numpy.PyArray_CopyFromObject(y, c_numpy.NPY_DOUBLE, 1, 1) # <<<<<<<<<<<<<< * * self.n = c_numpy.PyArray_SIZE(self.xa) */ __pyx_t_1 = PyArray_CopyFromObject(__pyx_v_y, NPY_DOUBLE, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (!(likely(((__pyx_t_1) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_1, __pyx_ptype_8pyregion_7c_numpy_ndarray))))) __PYX_ERR(1, 574, __pyx_L1_error) __Pyx_GIVEREF(__pyx_t_1); __Pyx_GOTREF(__pyx_v_self->ya); __Pyx_DECREF(((PyObject *)__pyx_v_self->ya)); __pyx_v_self->ya = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":576 * self.ya = c_numpy.PyArray_CopyFromObject(y, c_numpy.NPY_DOUBLE, 1, 1) * * self.n = c_numpy.PyArray_SIZE(self.xa) # <<<<<<<<<<<<<< * * self.x = c_numpy.PyArray_DATA(self.xa) */ __pyx_t_1 = ((PyObject *)__pyx_v_self->xa); __Pyx_INCREF(__pyx_t_1); __pyx_v_self->n = PyArray_SIZE(((PyArrayObject *)__pyx_t_1)); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":578 * self.n = c_numpy.PyArray_SIZE(self.xa) * * self.x = c_numpy.PyArray_DATA(self.xa) # <<<<<<<<<<<<<< * self.y = c_numpy.PyArray_DATA(self.ya) * */ __pyx_t_1 = ((PyObject *)__pyx_v_self->xa); __Pyx_INCREF(__pyx_t_1); __pyx_v_self->x = ((double *)PyArray_DATA(((PyArrayObject *)__pyx_t_1))); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":579 * * self.x = c_numpy.PyArray_DATA(self.xa) * self.y = c_numpy.PyArray_DATA(self.ya) # <<<<<<<<<<<<<< * * self.metric_set_origin(self.x[0], self.y[0], c) */ __pyx_t_1 = ((PyObject *)__pyx_v_self->ya); __Pyx_INCREF(__pyx_t_1); __pyx_v_self->y = ((double *)PyArray_DATA(((PyArrayObject *)__pyx_t_1))); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":581 * self.y = c_numpy.PyArray_DATA(self.ya) * * self.metric_set_origin(self.x[0], self.y[0], c) # <<<<<<<<<<<<<< * * cdef npy_bool _inside(self, double x, double y): */ __pyx_t_1 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_Polygon *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.metric_set_origin(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), (__pyx_v_self->x[0]), (__pyx_v_self->y[0]), __pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 581, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":571 * cdef int n * * def __init__(self, x, y, # <<<<<<<<<<<<<< * RegionContext c=None): * self.xa = c_numpy.PyArray_CopyFromObject(x, c_numpy.NPY_DOUBLE, 1, 1) */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Polygon.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":583 * self.metric_set_origin(self.x[0], self.y[0], c) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef int i, j * cdef npy_bool r */ static npy_bool __pyx_f_8pyregion_14_region_filter_7Polygon__inside(struct __pyx_obj_8pyregion_14_region_filter_Polygon *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { int __pyx_v_i; int __pyx_v_j; npy_bool __pyx_v_r; double *__pyx_v_xp; double *__pyx_v_yp; double __pyx_v__t; double __pyx_v_y_yp_i; double __pyx_v_y_yp_j; npy_bool __pyx_r; __Pyx_RefNannyDeclarations double *__pyx_t_1; int __pyx_t_2; int __pyx_t_3; double __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":591 * cdef double y_yp_i, y_yp_j * * j = self.n - 1 # <<<<<<<<<<<<<< * r = 0 * xp = self.x */ __pyx_v_j = (__pyx_v_self->n - 1); /* "pyregion/_region_filter.pyx":592 * * j = self.n - 1 * r = 0 # <<<<<<<<<<<<<< * xp = self.x * yp = self.y */ __pyx_v_r = 0; /* "pyregion/_region_filter.pyx":593 * j = self.n - 1 * r = 0 * xp = self.x # <<<<<<<<<<<<<< * yp = self.y * */ __pyx_t_1 = __pyx_v_self->x; __pyx_v_xp = __pyx_t_1; /* "pyregion/_region_filter.pyx":594 * r = 0 * xp = self.x * yp = self.y # <<<<<<<<<<<<<< * * #stable version, but would require more time */ __pyx_t_1 = __pyx_v_self->y; __pyx_v_yp = __pyx_t_1; /* "pyregion/_region_filter.pyx":597 * * #stable version, but would require more time * for i from 0 <= i < self.n: # <<<<<<<<<<<<<< * y_yp_i = y - yp[i] * y_yp_j = y - yp[j] */ __pyx_t_2 = __pyx_v_self->n; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { /* "pyregion/_region_filter.pyx":598 * #stable version, but would require more time * for i from 0 <= i < self.n: * y_yp_i = y - yp[i] # <<<<<<<<<<<<<< * y_yp_j = y - yp[j] * */ __pyx_v_y_yp_i = (__pyx_v_y - (__pyx_v_yp[__pyx_v_i])); /* "pyregion/_region_filter.pyx":599 * for i from 0 <= i < self.n: * y_yp_i = y - yp[i] * y_yp_j = y - yp[j] # <<<<<<<<<<<<<< * * if (y_yp_i == 0.) & (y_yp_j == 0.): # special case for horizontal line */ __pyx_v_y_yp_j = (__pyx_v_y - (__pyx_v_yp[__pyx_v_j])); /* "pyregion/_region_filter.pyx":601 * y_yp_j = y - yp[j] * * if (y_yp_i == 0.) & (y_yp_j == 0.): # special case for horizontal line # <<<<<<<<<<<<<< * if (xp[i] - x) * (xp[j] - x) <= 0.: * return 1 */ __pyx_t_3 = (((__pyx_v_y_yp_i == 0.) & (__pyx_v_y_yp_j == 0.)) != 0); if (__pyx_t_3) { /* "pyregion/_region_filter.pyx":602 * * if (y_yp_i == 0.) & (y_yp_j == 0.): # special case for horizontal line * if (xp[i] - x) * (xp[j] - x) <= 0.: # <<<<<<<<<<<<<< * return 1 * */ __pyx_t_3 = (((((__pyx_v_xp[__pyx_v_i]) - __pyx_v_x) * ((__pyx_v_xp[__pyx_v_j]) - __pyx_v_x)) <= 0.) != 0); if (__pyx_t_3) { /* "pyregion/_region_filter.pyx":603 * if (y_yp_i == 0.) & (y_yp_j == 0.): # special case for horizontal line * if (xp[i] - x) * (xp[j] - x) <= 0.: * return 1 # <<<<<<<<<<<<<< * * if ((0 <= y_yp_i) & (0 > y_yp_j) | (0 <= y_yp_j) & (0 > y_yp_i)): */ __pyx_r = 1; goto __pyx_L0; /* "pyregion/_region_filter.pyx":602 * * if (y_yp_i == 0.) & (y_yp_j == 0.): # special case for horizontal line * if (xp[i] - x) * (xp[j] - x) <= 0.: # <<<<<<<<<<<<<< * return 1 * */ } /* "pyregion/_region_filter.pyx":601 * y_yp_j = y - yp[j] * * if (y_yp_i == 0.) & (y_yp_j == 0.): # special case for horizontal line # <<<<<<<<<<<<<< * if (xp[i] - x) * (xp[j] - x) <= 0.: * return 1 */ } /* "pyregion/_region_filter.pyx":605 * return 1 * * if ((0 <= y_yp_i) & (0 > y_yp_j) | (0 <= y_yp_j) & (0 > y_yp_i)): # <<<<<<<<<<<<<< * _t = xp[i] + y_yp_i / (yp[j] - yp[i]) * (xp[j] - xp[i]) * if _t == x: # return true immediately if point over the poly-edge */ __pyx_t_3 = ((((0.0 <= __pyx_v_y_yp_i) & (0.0 > __pyx_v_y_yp_j)) | ((0.0 <= __pyx_v_y_yp_j) & (0.0 > __pyx_v_y_yp_i))) != 0); if (__pyx_t_3) { /* "pyregion/_region_filter.pyx":606 * * if ((0 <= y_yp_i) & (0 > y_yp_j) | (0 <= y_yp_j) & (0 > y_yp_i)): * _t = xp[i] + y_yp_i / (yp[j] - yp[i]) * (xp[j] - xp[i]) # <<<<<<<<<<<<<< * if _t == x: # return true immediately if point over the poly-edge * return 1 */ __pyx_t_4 = ((__pyx_v_yp[__pyx_v_j]) - (__pyx_v_yp[__pyx_v_i])); if (unlikely(__pyx_t_4 == 0)) { PyErr_SetString(PyExc_ZeroDivisionError, "float division"); __PYX_ERR(1, 606, __pyx_L1_error) } __pyx_v__t = ((__pyx_v_xp[__pyx_v_i]) + ((__pyx_v_y_yp_i / __pyx_t_4) * ((__pyx_v_xp[__pyx_v_j]) - (__pyx_v_xp[__pyx_v_i])))); /* "pyregion/_region_filter.pyx":607 * if ((0 <= y_yp_i) & (0 > y_yp_j) | (0 <= y_yp_j) & (0 > y_yp_i)): * _t = xp[i] + y_yp_i / (yp[j] - yp[i]) * (xp[j] - xp[i]) * if _t == x: # return true immediately if point over the poly-edge # <<<<<<<<<<<<<< * return 1 * # but above does not catch horizontal line */ __pyx_t_3 = ((__pyx_v__t == __pyx_v_x) != 0); if (__pyx_t_3) { /* "pyregion/_region_filter.pyx":608 * _t = xp[i] + y_yp_i / (yp[j] - yp[i]) * (xp[j] - xp[i]) * if _t == x: # return true immediately if point over the poly-edge * return 1 # <<<<<<<<<<<<<< * # but above does not catch horizontal line * if (_t < x): */ __pyx_r = 1; goto __pyx_L0; /* "pyregion/_region_filter.pyx":607 * if ((0 <= y_yp_i) & (0 > y_yp_j) | (0 <= y_yp_j) & (0 > y_yp_i)): * _t = xp[i] + y_yp_i / (yp[j] - yp[i]) * (xp[j] - xp[i]) * if _t == x: # return true immediately if point over the poly-edge # <<<<<<<<<<<<<< * return 1 * # but above does not catch horizontal line */ } /* "pyregion/_region_filter.pyx":610 * return 1 * # but above does not catch horizontal line * if (_t < x): # <<<<<<<<<<<<<< * r = not r * j = i */ __pyx_t_3 = ((__pyx_v__t < __pyx_v_x) != 0); if (__pyx_t_3) { /* "pyregion/_region_filter.pyx":611 * # but above does not catch horizontal line * if (_t < x): * r = not r # <<<<<<<<<<<<<< * j = i * */ __pyx_v_r = (!(__pyx_v_r != 0)); /* "pyregion/_region_filter.pyx":610 * return 1 * # but above does not catch horizontal line * if (_t < x): # <<<<<<<<<<<<<< * r = not r * j = i */ } /* "pyregion/_region_filter.pyx":605 * return 1 * * if ((0 <= y_yp_i) & (0 > y_yp_j) | (0 <= y_yp_j) & (0 > y_yp_i)): # <<<<<<<<<<<<<< * _t = xp[i] + y_yp_i / (yp[j] - yp[i]) * (xp[j] - xp[i]) * if _t == x: # return true immediately if point over the poly-edge */ } /* "pyregion/_region_filter.pyx":612 * if (_t < x): * r = not r * j = i # <<<<<<<<<<<<<< * * return r */ __pyx_v_j = __pyx_v_i; } /* "pyregion/_region_filter.pyx":614 * j = i * * return r # <<<<<<<<<<<<<< * * cdef class AngleRange(RegionBase): */ __pyx_r = __pyx_v_r; goto __pyx_L0; /* "pyregion/_region_filter.pyx":583 * self.metric_set_origin(self.x[0], self.y[0], c) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef int i, j * cdef npy_bool r */ /* function exit code */ __pyx_L1_error:; __Pyx_WriteUnraisable("pyregion._region_filter.Polygon._inside", __pyx_clineno, __pyx_lineno, __pyx_filename, 1, 0); __pyx_r = 0; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Polygon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Polygon_3__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Polygon_2__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Polygon *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_7Polygon_2__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Polygon *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Polygon.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Polygon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_7Polygon_5__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_7Polygon_4__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_Polygon *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_7Polygon_4__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_Polygon *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.Polygon.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":630 * cdef double radian2 * * def __init__(self, double xc, double yc, # <<<<<<<<<<<<<< * double degree1, double degree2, * RegionContext c=None): */ /* Python wrapper */ static int __pyx_pw_8pyregion_14_region_filter_10AngleRange_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ static int __pyx_pw_8pyregion_14_region_filter_10AngleRange_1__init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) { double __pyx_v_xc; double __pyx_v_yc; double __pyx_v_degree1; double __pyx_v_degree2; struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c = 0; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; int __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__init__ (wrapper)", 0); { static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_xc,&__pyx_n_s_yc,&__pyx_n_s_degree1,&__pyx_n_s_degree2,&__pyx_n_s_c,0}; PyObject* values[5] = {0,0,0,0,0}; /* "pyregion/_region_filter.pyx":632 * def __init__(self, double xc, double yc, * double degree1, double degree2, * RegionContext c=None): # <<<<<<<<<<<<<< * * self.xc = xc */ values[4] = (PyObject *)((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)Py_None); if (unlikely(__pyx_kwds)) { Py_ssize_t kw_args; const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args); switch (pos_args) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); CYTHON_FALLTHROUGH; case 3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2); CYTHON_FALLTHROUGH; case 2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1); CYTHON_FALLTHROUGH; case 1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0); CYTHON_FALLTHROUGH; case 0: break; default: goto __pyx_L5_argtuple_error; } kw_args = PyDict_Size(__pyx_kwds); switch (pos_args) { case 0: if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_xc)) != 0)) kw_args--; else goto __pyx_L5_argtuple_error; CYTHON_FALLTHROUGH; case 1: if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_yc)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 1); __PYX_ERR(1, 630, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 2: if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_degree1)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 2); __PYX_ERR(1, 630, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 3: if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_degree2)) != 0)) kw_args--; else { __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, 3); __PYX_ERR(1, 630, __pyx_L3_error) } CYTHON_FALLTHROUGH; case 4: if (kw_args > 0) { PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_c); if (value) { values[4] = value; kw_args--; } } } if (unlikely(kw_args > 0)) { if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(1, 630, __pyx_L3_error) } } else { switch (PyTuple_GET_SIZE(__pyx_args)) { case 5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4); CYTHON_FALLTHROUGH; case 4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3); values[2] = PyTuple_GET_ITEM(__pyx_args, 2); values[1] = PyTuple_GET_ITEM(__pyx_args, 1); values[0] = PyTuple_GET_ITEM(__pyx_args, 0); break; default: goto __pyx_L5_argtuple_error; } } __pyx_v_xc = __pyx_PyFloat_AsDouble(values[0]); if (unlikely((__pyx_v_xc == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 630, __pyx_L3_error) __pyx_v_yc = __pyx_PyFloat_AsDouble(values[1]); if (unlikely((__pyx_v_yc == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 630, __pyx_L3_error) __pyx_v_degree1 = __pyx_PyFloat_AsDouble(values[2]); if (unlikely((__pyx_v_degree1 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 631, __pyx_L3_error) __pyx_v_degree2 = __pyx_PyFloat_AsDouble(values[3]); if (unlikely((__pyx_v_degree2 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 631, __pyx_L3_error) __pyx_v_c = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)values[4]); } goto __pyx_L4_argument_unpacking_done; __pyx_L5_argtuple_error:; __Pyx_RaiseArgtupleInvalid("__init__", 0, 4, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(1, 630, __pyx_L3_error) __pyx_L3_error:; __Pyx_AddTraceback("pyregion._region_filter.AngleRange.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); return -1; __pyx_L4_argument_unpacking_done:; if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_c), __pyx_ptype_8pyregion_14_region_filter_RegionContext, 1, "c", 0))) __PYX_ERR(1, 632, __pyx_L1_error) __pyx_r = __pyx_pf_8pyregion_14_region_filter_10AngleRange___init__(((struct __pyx_obj_8pyregion_14_region_filter_AngleRange *)__pyx_v_self), __pyx_v_xc, __pyx_v_yc, __pyx_v_degree1, __pyx_v_degree2, __pyx_v_c); /* "pyregion/_region_filter.pyx":630 * cdef double radian2 * * def __init__(self, double xc, double yc, # <<<<<<<<<<<<<< * double degree1, double degree2, * RegionContext c=None): */ /* function exit code */ goto __pyx_L0; __pyx_L1_error:; __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } static int __pyx_pf_8pyregion_14_region_filter_10AngleRange___init__(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self, double __pyx_v_xc, double __pyx_v_yc, double __pyx_v_degree1, double __pyx_v_degree2, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *__pyx_v_c) { int __pyx_r; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 0); /* "pyregion/_region_filter.pyx":634 * RegionContext c=None): * * self.xc = xc # <<<<<<<<<<<<<< * self.yc = yc * self.degree1 = degree1 */ __pyx_v_self->xc = __pyx_v_xc; /* "pyregion/_region_filter.pyx":635 * * self.xc = xc * self.yc = yc # <<<<<<<<<<<<<< * self.degree1 = degree1 * self.degree2 = degree2 */ __pyx_v_self->yc = __pyx_v_yc; /* "pyregion/_region_filter.pyx":636 * self.xc = xc * self.yc = yc * self.degree1 = degree1 # <<<<<<<<<<<<<< * self.degree2 = degree2 * */ __pyx_v_self->degree1 = __pyx_v_degree1; /* "pyregion/_region_filter.pyx":637 * self.yc = yc * self.degree1 = degree1 * self.degree2 = degree2 # <<<<<<<<<<<<<< * * # theta in radian */ __pyx_v_self->degree2 = __pyx_v_degree2; /* "pyregion/_region_filter.pyx":640 * * # theta in radian * self.radian1 = degree1 / 180. * M_PI #3.1415926 # <<<<<<<<<<<<<< * self.radian2 = self._fix_angle(degree2 / 180. * M_PI) * */ __pyx_v_self->radian1 = ((__pyx_v_degree1 / 180.) * M_PI); /* "pyregion/_region_filter.pyx":641 * # theta in radian * self.radian1 = degree1 / 180. * M_PI #3.1415926 * self.radian2 = self._fix_angle(degree2 / 180. * M_PI) # <<<<<<<<<<<<<< * * self.metric_set_origin(xc, yc, c) */ __pyx_v_self->radian2 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_AngleRange *)__pyx_v_self->__pyx_base.__pyx_vtab)->_fix_angle(__pyx_v_self, ((__pyx_v_degree2 / 180.) * M_PI)); /* "pyregion/_region_filter.pyx":643 * self.radian2 = self._fix_angle(degree2 / 180. * M_PI) * * self.metric_set_origin(xc, yc, c) # <<<<<<<<<<<<<< * * cdef double _fix_angle(self, double a): */ __pyx_t_1 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_AngleRange *)__pyx_v_self->__pyx_base.__pyx_vtab)->__pyx_base.metric_set_origin(((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)__pyx_v_self), __pyx_v_xc, __pyx_v_yc, __pyx_v_c); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 643, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":630 * cdef double radian2 * * def __init__(self, double xc, double yc, # <<<<<<<<<<<<<< * double degree1, double degree2, * RegionContext c=None): */ /* function exit code */ __pyx_r = 0; goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.AngleRange.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = -1; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":645 * self.metric_set_origin(xc, yc, c) * * cdef double _fix_angle(self, double a): # <<<<<<<<<<<<<< * if a > self.radian1: * return self.radian1 + fmod((a - self.radian1), 2 * M_PI) */ static double __pyx_f_8pyregion_14_region_filter_10AngleRange__fix_angle(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self, double __pyx_v_a) { double __pyx_r; __Pyx_RefNannyDeclarations int __pyx_t_1; __Pyx_RefNannySetupContext("_fix_angle", 0); /* "pyregion/_region_filter.pyx":646 * * cdef double _fix_angle(self, double a): * if a > self.radian1: # <<<<<<<<<<<<<< * return self.radian1 + fmod((a - self.radian1), 2 * M_PI) * else: */ __pyx_t_1 = ((__pyx_v_a > __pyx_v_self->radian1) != 0); if (__pyx_t_1) { /* "pyregion/_region_filter.pyx":647 * cdef double _fix_angle(self, double a): * if a > self.radian1: * return self.radian1 + fmod((a - self.radian1), 2 * M_PI) # <<<<<<<<<<<<<< * else: * return self.radian1 + 2. * M_PI - fmod((self.radian1 - a), 2 * M_PI) */ __pyx_r = (__pyx_v_self->radian1 + fmod((__pyx_v_a - __pyx_v_self->radian1), (2.0 * M_PI))); goto __pyx_L0; /* "pyregion/_region_filter.pyx":646 * * cdef double _fix_angle(self, double a): * if a > self.radian1: # <<<<<<<<<<<<<< * return self.radian1 + fmod((a - self.radian1), 2 * M_PI) * else: */ } /* "pyregion/_region_filter.pyx":649 * return self.radian1 + fmod((a - self.radian1), 2 * M_PI) * else: * return self.radian1 + 2. * M_PI - fmod((self.radian1 - a), 2 * M_PI) # <<<<<<<<<<<<<< * * cdef npy_bool _inside(self, double x, double y): */ /*else*/ { __pyx_r = ((__pyx_v_self->radian1 + (2. * M_PI)) - fmod((__pyx_v_self->radian1 - __pyx_v_a), (2.0 * M_PI))); goto __pyx_L0; } /* "pyregion/_region_filter.pyx":645 * self.metric_set_origin(xc, yc, c) * * cdef double _fix_angle(self, double a): # <<<<<<<<<<<<<< * if a > self.radian1: * return self.radian1 + fmod((a - self.radian1), 2 * M_PI) */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":651 * return self.radian1 + 2. * M_PI - fmod((self.radian1 - a), 2 * M_PI) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef double dx, dy, theta * */ static npy_bool __pyx_f_8pyregion_14_region_filter_10AngleRange__inside(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self, double __pyx_v_x, double __pyx_v_y) { double __pyx_v_dx; double __pyx_v_dy; double __pyx_v_theta; npy_bool __pyx_r; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("_inside", 0); /* "pyregion/_region_filter.pyx":654 * cdef double dx, dy, theta * * dx = x - self.xc # <<<<<<<<<<<<<< * dy = y - self.yc * */ __pyx_v_dx = (__pyx_v_x - __pyx_v_self->xc); /* "pyregion/_region_filter.pyx":655 * * dx = x - self.xc * dy = y - self.yc # <<<<<<<<<<<<<< * * theta = atan2(dy, dx) */ __pyx_v_dy = (__pyx_v_y - __pyx_v_self->yc); /* "pyregion/_region_filter.pyx":657 * dy = y - self.yc * * theta = atan2(dy, dx) # <<<<<<<<<<<<<< * * theta = self._fix_angle(theta) */ __pyx_v_theta = atan2(__pyx_v_dy, __pyx_v_dx); /* "pyregion/_region_filter.pyx":659 * theta = atan2(dy, dx) * * theta = self._fix_angle(theta) # <<<<<<<<<<<<<< * return (theta < self.radian2) * */ __pyx_v_theta = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_AngleRange *)__pyx_v_self->__pyx_base.__pyx_vtab)->_fix_angle(__pyx_v_self, __pyx_v_theta); /* "pyregion/_region_filter.pyx":660 * * theta = self._fix_angle(theta) * return (theta < self.radian2) # <<<<<<<<<<<<<< * * def __repr__(self): */ __pyx_r = (__pyx_v_theta < __pyx_v_self->radian2); goto __pyx_L0; /* "pyregion/_region_filter.pyx":651 * return self.radian1 + 2. * M_PI - fmod((self.radian1 - a), 2 * M_PI) * * cdef npy_bool _inside(self, double x, double y): # <<<<<<<<<<<<<< * cdef double dx, dy, theta * */ /* function exit code */ __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "pyregion/_region_filter.pyx":662 * return (theta < self.radian2) * * def __repr__(self): # <<<<<<<<<<<<<< * return "AngleRange(%f, %f, %f, %f)" % (self.xc, self.yc, self.degree1, self.degree2) */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10AngleRange_3__repr__(PyObject *__pyx_v_self); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10AngleRange_3__repr__(PyObject *__pyx_v_self) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__repr__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10AngleRange_2__repr__(((struct __pyx_obj_8pyregion_14_region_filter_AngleRange *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10AngleRange_2__repr__(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; PyObject *__pyx_t_5 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 0); /* "pyregion/_region_filter.pyx":663 * * def __repr__(self): * return "AngleRange(%f, %f, %f, %f)" % (self.xc, self.yc, self.degree1, self.degree2) # <<<<<<<<<<<<<< */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyFloat_FromDouble(__pyx_v_self->xc); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyFloat_FromDouble(__pyx_v_self->yc); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = PyFloat_FromDouble(__pyx_v_self->degree1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = PyFloat_FromDouble(__pyx_v_self->degree2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3); __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4); __pyx_t_1 = 0; __pyx_t_2 = 0; __pyx_t_3 = 0; __pyx_t_4 = 0; __pyx_t_4 = __Pyx_PyString_Format(__pyx_kp_s_AngleRange_f_f_f_f, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __pyx_r = __pyx_t_4; __pyx_t_4 = 0; goto __pyx_L0; /* "pyregion/_region_filter.pyx":662 * return (theta < self.radian2) * * def __repr__(self): # <<<<<<<<<<<<<< * return "AngleRange(%f, %f, %f, %f)" % (self.xc, self.yc, self.degree1, self.degree2) */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); __Pyx_XDECREF(__pyx_t_5); __Pyx_AddTraceback("pyregion._region_filter.AngleRange.__repr__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10AngleRange_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10AngleRange_5__reduce_cython__(PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__reduce_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10AngleRange_4__reduce_cython__(((struct __pyx_obj_8pyregion_14_region_filter_AngleRange *)__pyx_v_self)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10AngleRange_4__reduce_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__reduce_cython__", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__28, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 2, __pyx_L1_error) /* "(tree fragment)":1 * def __reduce_cython__(self): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.AngleRange.__reduce_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* Python wrapper */ static PyObject *__pyx_pw_8pyregion_14_region_filter_10AngleRange_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state); /*proto*/ static PyObject *__pyx_pw_8pyregion_14_region_filter_10AngleRange_7__setstate_cython__(PyObject *__pyx_v_self, PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__setstate_cython__ (wrapper)", 0); __pyx_r = __pyx_pf_8pyregion_14_region_filter_10AngleRange_6__setstate_cython__(((struct __pyx_obj_8pyregion_14_region_filter_AngleRange *)__pyx_v_self), ((PyObject *)__pyx_v___pyx_state)); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_8pyregion_14_region_filter_10AngleRange_6__setstate_cython__(CYTHON_UNUSED struct __pyx_obj_8pyregion_14_region_filter_AngleRange *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v___pyx_state) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__setstate_cython__", 0); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__29, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_Raise(__pyx_t_1, 0, 0, 0); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __PYX_ERR(0, 4, __pyx_L1_error) /* "(tree fragment)":3 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): # <<<<<<<<<<<<<< * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ /* function exit code */ __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_AddTraceback("pyregion._region_filter.AngleRange.__setstate_cython__", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionContext __pyx_vtable_8pyregion_14_region_filter_RegionContext; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionContext(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_RegionContext *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)o); p->__pyx_vtab = __pyx_vtabptr_8pyregion_14_region_filter_RegionContext; return o; } static void __pyx_tp_dealloc_8pyregion_14_region_filter_RegionContext(PyObject *o) { #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && (!PyType_IS_GC(Py_TYPE(o)) || !_PyGC_FINALIZED(o))) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif (*Py_TYPE(o)->tp_free)(o); } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_RegionContext[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_13RegionContext_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_13RegionContext_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_RegionContext = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.RegionContext", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_RegionContext), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionContext, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE, /*tp_flags*/ 0, /*tp_doc*/ 0, /*tp_traverse*/ 0, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_RegionContext, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_13RegionContext_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_RegionContext, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase __pyx_vtable_8pyregion_14_region_filter_RegionBase; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionBase(PyTypeObject *t, CYTHON_UNUSED PyObject *a, CYTHON_UNUSED PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_RegionBase *p; PyObject *o; if (likely((t->tp_flags & Py_TPFLAGS_IS_ABSTRACT) == 0)) { o = (*t->tp_alloc)(t, 0); } else { o = (PyObject *) PyBaseObject_Type.tp_new(t, __pyx_empty_tuple, 0); } if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)o); p->__pyx_vtab = __pyx_vtabptr_8pyregion_14_region_filter_RegionBase; p->c = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase(PyObject *o) { struct __pyx_obj_8pyregion_14_region_filter_RegionBase *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->c); (*Py_TYPE(o)->tp_free)(o); } static int __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_8pyregion_14_region_filter_RegionBase *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)o; if (p->c) { e = (*v)(((PyObject *)p->c), a); if (e) return e; } return 0; } static int __pyx_tp_clear_8pyregion_14_region_filter_RegionBase(PyObject *o) { PyObject* tmp; struct __pyx_obj_8pyregion_14_region_filter_RegionBase *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)o; tmp = ((PyObject*)p->c); p->c = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_RegionBase[] = { {"set_context", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionBase_3set_context, METH_O, 0}, {"mask", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionBase_11mask, METH_O, __pyx_doc_8pyregion_14_region_filter_10RegionBase_10mask}, {"inside1", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8pyregion_14_region_filter_10RegionBase_13inside1, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8pyregion_14_region_filter_10RegionBase_12inside1}, {"inside", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8pyregion_14_region_filter_10RegionBase_15inside, METH_VARARGS|METH_KEYWORDS, 0}, {"inside_xy", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionBase_17inside_xy, METH_O, __pyx_doc_8pyregion_14_region_filter_10RegionBase_16inside_xy}, {"inside_x_y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_8pyregion_14_region_filter_10RegionBase_19inside_x_y, METH_VARARGS|METH_KEYWORDS, __pyx_doc_8pyregion_14_region_filter_10RegionBase_18inside_x_y}, {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionBase_21__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionBase_23__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyNumberMethods __pyx_tp_as_number_RegionBase = { 0, /*nb_add*/ 0, /*nb_subtract*/ 0, /*nb_multiply*/ #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) 0, /*nb_divide*/ #endif 0, /*nb_remainder*/ 0, /*nb_divmod*/ 0, /*nb_power*/ 0, /*nb_negative*/ 0, /*nb_positive*/ 0, /*nb_absolute*/ 0, /*nb_nonzero*/ __pyx_pw_8pyregion_14_region_filter_10RegionBase_5__invert__, /*nb_invert*/ 0, /*nb_lshift*/ 0, /*nb_rshift*/ __pyx_pw_8pyregion_14_region_filter_10RegionBase_7__and__, /*nb_and*/ 0, /*nb_xor*/ __pyx_pw_8pyregion_14_region_filter_10RegionBase_9__or__, /*nb_or*/ #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) 0, /*nb_coerce*/ #endif 0, /*nb_int*/ #if PY_MAJOR_VERSION < 3 0, /*nb_long*/ #else 0, /*reserved*/ #endif 0, /*nb_float*/ #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) 0, /*nb_oct*/ #endif #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) 0, /*nb_hex*/ #endif 0, /*nb_inplace_add*/ 0, /*nb_inplace_subtract*/ 0, /*nb_inplace_multiply*/ #if PY_MAJOR_VERSION < 3 || (CYTHON_COMPILING_IN_PYPY && PY_VERSION_HEX < 0x03050000) 0, /*nb_inplace_divide*/ #endif 0, /*nb_inplace_remainder*/ 0, /*nb_inplace_power*/ 0, /*nb_inplace_lshift*/ 0, /*nb_inplace_rshift*/ 0, /*nb_inplace_and*/ 0, /*nb_inplace_xor*/ 0, /*nb_inplace_or*/ 0, /*nb_floor_divide*/ 0, /*nb_true_divide*/ 0, /*nb_inplace_floor_divide*/ 0, /*nb_inplace_true_divide*/ 0, /*nb_index*/ #if PY_VERSION_HEX >= 0x03050000 0, /*nb_matrix_multiply*/ #endif #if PY_VERSION_HEX >= 0x03050000 0, /*nb_inplace_matrix_multiply*/ #endif }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_RegionBase = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.RegionBase", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_RegionBase), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ &__pyx_tp_as_number_RegionBase, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionBase, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_RegionBase, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_10RegionBase_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_RegionBase, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionNot __pyx_vtable_8pyregion_14_region_filter_RegionNot; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionNot(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_RegionNot *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionBase(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_RegionNot *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_RegionNot; p->child_region = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_8pyregion_14_region_filter_RegionNot(PyObject *o) { struct __pyx_obj_8pyregion_14_region_filter_RegionNot *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionNot *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->child_region); PyObject_GC_Track(o); __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase(o); } static int __pyx_tp_traverse_8pyregion_14_region_filter_RegionNot(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_8pyregion_14_region_filter_RegionNot *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionNot *)o; e = __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase(o, v, a); if (e) return e; if (p->child_region) { e = (*v)(((PyObject *)p->child_region), a); if (e) return e; } return 0; } static int __pyx_tp_clear_8pyregion_14_region_filter_RegionNot(PyObject *o) { PyObject* tmp; struct __pyx_obj_8pyregion_14_region_filter_RegionNot *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionNot *)o; __pyx_tp_clear_8pyregion_14_region_filter_RegionBase(o); tmp = ((PyObject*)p->child_region); p->child_region = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_RegionNot[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_9RegionNot_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_9RegionNot_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_RegionNot = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.RegionNot", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_RegionNot), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionNot, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n >>> r = RegionNot(r2)\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionNot, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionNot, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_RegionNot, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_9RegionNot_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_RegionNot, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionList __pyx_vtable_8pyregion_14_region_filter_RegionList; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionList(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_RegionList *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionBase(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_RegionList *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_RegionList; p->child_regions = Py_None; Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_8pyregion_14_region_filter_RegionList(PyObject *o) { struct __pyx_obj_8pyregion_14_region_filter_RegionList *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionList *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->child_regions); PyObject_GC_Track(o); __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase(o); } static int __pyx_tp_traverse_8pyregion_14_region_filter_RegionList(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_8pyregion_14_region_filter_RegionList *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionList *)o; e = __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase(o, v, a); if (e) return e; if (p->child_regions) { e = (*v)(p->child_regions, a); if (e) return e; } return 0; } static int __pyx_tp_clear_8pyregion_14_region_filter_RegionList(PyObject *o) { PyObject* tmp; struct __pyx_obj_8pyregion_14_region_filter_RegionList *p = (struct __pyx_obj_8pyregion_14_region_filter_RegionList *)o; __pyx_tp_clear_8pyregion_14_region_filter_RegionBase(o); tmp = ((PyObject*)p->child_regions); p->child_regions = Py_None; Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_sq_item_8pyregion_14_region_filter_RegionList(PyObject *o, Py_ssize_t i) { PyObject *r; PyObject *x = PyInt_FromSsize_t(i); if(!x) return 0; r = Py_TYPE(o)->tp_as_mapping->mp_subscript(o, x); Py_DECREF(x); return r; } static int __pyx_mp_ass_subscript_8pyregion_14_region_filter_RegionList(PyObject *o, PyObject *i, PyObject *v) { if (v) { return __pyx_pw_8pyregion_14_region_filter_10RegionList_9__setitem__(o, i, v); } else { return __pyx_pw_8pyregion_14_region_filter_10RegionList_11__delitem__(o, i); } } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_RegionList[] = { {"_check_type_of_list", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionList_1_check_type_of_list, METH_O, 0}, {"asList", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionList_17asList, METH_NOARGS, 0}, {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionList_19__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10RegionList_21__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PySequenceMethods __pyx_tp_as_sequence_RegionList = { __pyx_pw_8pyregion_14_region_filter_10RegionList_5__len__, /*sq_length*/ 0, /*sq_concat*/ 0, /*sq_repeat*/ __pyx_sq_item_8pyregion_14_region_filter_RegionList, /*sq_item*/ 0, /*sq_slice*/ 0, /*sq_ass_item*/ 0, /*sq_ass_slice*/ __pyx_pw_8pyregion_14_region_filter_10RegionList_13__contains__, /*sq_contains*/ 0, /*sq_inplace_concat*/ 0, /*sq_inplace_repeat*/ }; static PyMappingMethods __pyx_tp_as_mapping_RegionList = { __pyx_pw_8pyregion_14_region_filter_10RegionList_5__len__, /*mp_length*/ __pyx_pw_8pyregion_14_region_filter_10RegionList_7__getitem__, /*mp_subscript*/ __pyx_mp_ass_subscript_8pyregion_14_region_filter_RegionList, /*mp_ass_subscript*/ }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_RegionList = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.RegionList", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_RegionList), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionList, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_pw_8pyregion_14_region_filter_10RegionList_15__repr__, /*tp_repr*/ 0, /*tp_as_number*/ &__pyx_tp_as_sequence_RegionList, /*tp_as_sequence*/ &__pyx_tp_as_mapping_RegionList, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionList, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionList, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_RegionList, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_10RegionList_3__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_RegionList, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionOrList __pyx_vtable_8pyregion_14_region_filter_RegionOrList; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionOrList(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionList(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_RegionOrList *)o); p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_RegionOrList; return o; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_RegionOrList[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_12RegionOrList_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_12RegionOrList_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_RegionOrList = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.RegionOrList", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_RegionOrList), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionList, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_pw_8pyregion_14_region_filter_12RegionOrList_1__repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n >>> r = RegionOrList(r1, r2, r3, r4, ...)\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionList, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionList, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_RegionOrList, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ #if CYTHON_COMPILING_IN_PYPY __pyx_pw_8pyregion_14_region_filter_10RegionList_3__init__, /*tp_init*/ #else 0, /*tp_init*/ #endif 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_RegionOrList, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionAndList __pyx_vtable_8pyregion_14_region_filter_RegionAndList; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_RegionAndList(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionList(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_RegionAndList *)o); p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_RegionAndList; return o; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_RegionAndList[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_13RegionAndList_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_13RegionAndList_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_RegionAndList = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.RegionAndList", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_RegionAndList), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionList, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_pw_8pyregion_14_region_filter_13RegionAndList_1__repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n >>> r = RegionAndList(r1, r2, r3, r4, ...)\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionList, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionList, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_RegionAndList, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ #if CYTHON_COMPILING_IN_PYPY __pyx_pw_8pyregion_14_region_filter_10RegionList_3__init__, /*tp_init*/ #else 0, /*tp_init*/ #endif 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_RegionAndList, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Transform __pyx_vtable_8pyregion_14_region_filter_Transform; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Transform(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_Transform *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionBase(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_Transform *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_Transform; p->child_region = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_8pyregion_14_region_filter_Transform(PyObject *o) { struct __pyx_obj_8pyregion_14_region_filter_Transform *p = (struct __pyx_obj_8pyregion_14_region_filter_Transform *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->child_region); PyObject_GC_Track(o); __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase(o); } static int __pyx_tp_traverse_8pyregion_14_region_filter_Transform(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_8pyregion_14_region_filter_Transform *p = (struct __pyx_obj_8pyregion_14_region_filter_Transform *)o; e = __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase(o, v, a); if (e) return e; if (p->child_region) { e = (*v)(((PyObject *)p->child_region), a); if (e) return e; } return 0; } static int __pyx_tp_clear_8pyregion_14_region_filter_Transform(PyObject *o) { PyObject* tmp; struct __pyx_obj_8pyregion_14_region_filter_Transform *p = (struct __pyx_obj_8pyregion_14_region_filter_Transform *)o; __pyx_tp_clear_8pyregion_14_region_filter_RegionBase(o); tmp = ((PyObject*)p->child_region); p->child_region = ((struct __pyx_obj_8pyregion_14_region_filter_RegionBase *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyObject *__pyx_getprop_8pyregion_14_region_filter_9Transform_child(PyObject *o, CYTHON_UNUSED void *x) { return __pyx_pw_8pyregion_14_region_filter_9Transform_5child_1__get__(o); } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_Transform[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_9Transform_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_9Transform_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static struct PyGetSetDef __pyx_getsets_8pyregion_14_region_filter_Transform[] = { {(char *)"child", __pyx_getprop_8pyregion_14_region_filter_9Transform_child, 0, (char *)0, 0}, {0, 0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_Transform = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.Transform", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_Transform), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_Transform, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ 0, /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_Transform, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_Transform, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_Transform, /*tp_methods*/ 0, /*tp_members*/ __pyx_getsets_8pyregion_14_region_filter_Transform, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_9Transform_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_Transform, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Rotated __pyx_vtable_8pyregion_14_region_filter_Rotated; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Rotated(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_Rotated *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_Transform(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_Rotated *)o); p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_Rotated; return o; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_Rotated[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_7Rotated_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_7Rotated_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_Rotated = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.Rotated", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_Rotated), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_Transform, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n Rotate the region by degree in anti-colockwise direction.\n\n >>> reg = Rotated(child_region, degree, origin_x, origin_y)\n\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_Transform, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_Transform, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_Rotated, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_7Rotated_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_Rotated, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Translated __pyx_vtable_8pyregion_14_region_filter_Translated; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Translated(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_Translated *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_Transform(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_Translated *)o); p->__pyx_base.__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_Translated; return o; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_Translated[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10Translated_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10Translated_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_Translated = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.Translated", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_Translated), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_Transform, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n Translated region.\n\n >>> Translate(child_region, dx, dy)\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_Transform, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_Transform, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_Translated, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_10Translated_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_Translated, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Circle __pyx_vtable_8pyregion_14_region_filter_Circle; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Circle(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_Circle *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionBase(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_Circle *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_Circle; return o; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_Circle[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_6Circle_5__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_6Circle_7__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_Circle = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.Circle", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_Circle), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_pw_8pyregion_14_region_filter_6Circle_3__repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n Circle.\n\n >>> cir = Circle(xc, yc, radius, RegionContext c=None)\n\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionBase, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_Circle, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_6Circle_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_Circle, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Ellipse __pyx_vtable_8pyregion_14_region_filter_Ellipse; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Ellipse(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_Ellipse *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionBase(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_Ellipse *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_Ellipse; return o; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_Ellipse[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_7Ellipse_5__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_7Ellipse_7__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_Ellipse = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.Ellipse", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_Ellipse), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_pw_8pyregion_14_region_filter_7Ellipse_3__repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n Ellipse.\n\n >>> shape = Ellipse(xc, yc, radius_major, radius_minor)\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionBase, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_Ellipse, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_7Ellipse_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_Ellipse, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Box __pyx_vtable_8pyregion_14_region_filter_Box; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Box(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_Box *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionBase(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_Box *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_Box; return o; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_Box[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_3Box_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_3Box_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_Box = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.Box", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_Box), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n Box.\n\n >>> shape = Box(xc, yc, width, height)\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionBase, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_Box, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_3Box_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_Box, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_Polygon __pyx_vtable_8pyregion_14_region_filter_Polygon; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_Polygon(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_Polygon *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionBase(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_Polygon *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_Polygon; p->xa = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); p->ya = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); return o; } static void __pyx_tp_dealloc_8pyregion_14_region_filter_Polygon(PyObject *o) { struct __pyx_obj_8pyregion_14_region_filter_Polygon *p = (struct __pyx_obj_8pyregion_14_region_filter_Polygon *)o; #if CYTHON_USE_TP_FINALIZE if (unlikely(PyType_HasFeature(Py_TYPE(o), Py_TPFLAGS_HAVE_FINALIZE) && Py_TYPE(o)->tp_finalize) && !_PyGC_FINALIZED(o)) { if (PyObject_CallFinalizerFromDealloc(o)) return; } #endif PyObject_GC_UnTrack(o); Py_CLEAR(p->xa); Py_CLEAR(p->ya); PyObject_GC_Track(o); __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase(o); } static int __pyx_tp_traverse_8pyregion_14_region_filter_Polygon(PyObject *o, visitproc v, void *a) { int e; struct __pyx_obj_8pyregion_14_region_filter_Polygon *p = (struct __pyx_obj_8pyregion_14_region_filter_Polygon *)o; e = __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase(o, v, a); if (e) return e; if (p->xa) { e = (*v)(((PyObject *)p->xa), a); if (e) return e; } if (p->ya) { e = (*v)(((PyObject *)p->ya), a); if (e) return e; } return 0; } static int __pyx_tp_clear_8pyregion_14_region_filter_Polygon(PyObject *o) { PyObject* tmp; struct __pyx_obj_8pyregion_14_region_filter_Polygon *p = (struct __pyx_obj_8pyregion_14_region_filter_Polygon *)o; __pyx_tp_clear_8pyregion_14_region_filter_RegionBase(o); tmp = ((PyObject*)p->xa); p->xa = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); tmp = ((PyObject*)p->ya); p->ya = ((PyArrayObject *)Py_None); Py_INCREF(Py_None); Py_XDECREF(tmp); return 0; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_Polygon[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_7Polygon_3__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_7Polygon_5__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_Polygon = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.Polygon", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_Polygon), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_Polygon, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif 0, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n Polygon.\n\n >>> shape = Polygon(x, y)\n\n Parameters:\n x, y : list of floats\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_Polygon, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_Polygon, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_Polygon, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_7Polygon_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_Polygon, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static struct __pyx_vtabstruct_8pyregion_14_region_filter_AngleRange __pyx_vtable_8pyregion_14_region_filter_AngleRange; static PyObject *__pyx_tp_new_8pyregion_14_region_filter_AngleRange(PyTypeObject *t, PyObject *a, PyObject *k) { struct __pyx_obj_8pyregion_14_region_filter_AngleRange *p; PyObject *o = __pyx_tp_new_8pyregion_14_region_filter_RegionBase(t, a, k); if (unlikely(!o)) return 0; p = ((struct __pyx_obj_8pyregion_14_region_filter_AngleRange *)o); p->__pyx_base.__pyx_vtab = (struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionBase*)__pyx_vtabptr_8pyregion_14_region_filter_AngleRange; return o; } static PyMethodDef __pyx_methods_8pyregion_14_region_filter_AngleRange[] = { {"__reduce_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10AngleRange_5__reduce_cython__, METH_NOARGS, 0}, {"__setstate_cython__", (PyCFunction)__pyx_pw_8pyregion_14_region_filter_10AngleRange_7__setstate_cython__, METH_O, 0}, {0, 0, 0, 0} }; static PyTypeObject __pyx_type_8pyregion_14_region_filter_AngleRange = { PyVarObject_HEAD_INIT(0, 0) "pyregion._region_filter.AngleRange", /*tp_name*/ sizeof(struct __pyx_obj_8pyregion_14_region_filter_AngleRange), /*tp_basicsize*/ 0, /*tp_itemsize*/ __pyx_tp_dealloc_8pyregion_14_region_filter_RegionBase, /*tp_dealloc*/ #if PY_VERSION_HEX < 0x030800b4 0, /*tp_print*/ #endif #if PY_VERSION_HEX >= 0x030800b4 0, /*tp_vectorcall_offset*/ #endif 0, /*tp_getattr*/ 0, /*tp_setattr*/ #if PY_MAJOR_VERSION < 3 0, /*tp_compare*/ #endif #if PY_MAJOR_VERSION >= 3 0, /*tp_as_async*/ #endif __pyx_pw_8pyregion_14_region_filter_10AngleRange_3__repr__, /*tp_repr*/ 0, /*tp_as_number*/ 0, /*tp_as_sequence*/ 0, /*tp_as_mapping*/ 0, /*tp_hash*/ 0, /*tp_call*/ 0, /*tp_str*/ 0, /*tp_getattro*/ 0, /*tp_setattro*/ 0, /*tp_as_buffer*/ Py_TPFLAGS_DEFAULT|Py_TPFLAGS_HAVE_VERSION_TAG|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_HAVE_NEWBUFFER|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/ "\n AngleRange.\n\n >>> shape = Ellipse(xc, yc, degree1, degree2)\n ", /*tp_doc*/ __pyx_tp_traverse_8pyregion_14_region_filter_RegionBase, /*tp_traverse*/ __pyx_tp_clear_8pyregion_14_region_filter_RegionBase, /*tp_clear*/ 0, /*tp_richcompare*/ 0, /*tp_weaklistoffset*/ 0, /*tp_iter*/ 0, /*tp_iternext*/ __pyx_methods_8pyregion_14_region_filter_AngleRange, /*tp_methods*/ 0, /*tp_members*/ 0, /*tp_getset*/ 0, /*tp_base*/ 0, /*tp_dict*/ 0, /*tp_descr_get*/ 0, /*tp_descr_set*/ 0, /*tp_dictoffset*/ __pyx_pw_8pyregion_14_region_filter_10AngleRange_1__init__, /*tp_init*/ 0, /*tp_alloc*/ __pyx_tp_new_8pyregion_14_region_filter_AngleRange, /*tp_new*/ 0, /*tp_free*/ 0, /*tp_is_gc*/ 0, /*tp_bases*/ 0, /*tp_mro*/ 0, /*tp_cache*/ 0, /*tp_subclasses*/ 0, /*tp_weaklist*/ 0, /*tp_del*/ 0, /*tp_version_tag*/ #if PY_VERSION_HEX >= 0x030400a1 0, /*tp_finalize*/ #endif #if PY_VERSION_HEX >= 0x030800b1 0, /*tp_vectorcall*/ #endif #if PY_VERSION_HEX >= 0x030800b4 && PY_VERSION_HEX < 0x03090000 0, /*tp_print*/ #endif }; static PyMethodDef __pyx_methods[] = { {0, 0, 0, 0} }; #if PY_MAJOR_VERSION >= 3 #if CYTHON_PEP489_MULTI_PHASE_INIT static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ static int __pyx_pymod_exec__region_filter(PyObject* module); /*proto*/ static PyModuleDef_Slot __pyx_moduledef_slots[] = { {Py_mod_create, (void*)__pyx_pymod_create}, {Py_mod_exec, (void*)__pyx_pymod_exec__region_filter}, {0, NULL} }; #endif static struct PyModuleDef __pyx_moduledef = { PyModuleDef_HEAD_INIT, "_region_filter", 0, /* m_doc */ #if CYTHON_PEP489_MULTI_PHASE_INIT 0, /* m_size */ #else -1, /* m_size */ #endif __pyx_methods /* m_methods */, #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_moduledef_slots, /* m_slots */ #else NULL, /* m_reload */ #endif NULL, /* m_traverse */ NULL, /* m_clear */ NULL /* m_free */ }; #endif #ifndef CYTHON_SMALL_CODE #if defined(__clang__) #define CYTHON_SMALL_CODE #elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) #define CYTHON_SMALL_CODE __attribute__((cold)) #else #define CYTHON_SMALL_CODE #endif #endif static __Pyx_StringTabEntry __pyx_string_tab[] = { {&__pyx_kp_s_All_elements_should_be_subclass, __pyx_k_All_elements_should_be_subclass, sizeof(__pyx_k_All_elements_should_be_subclass), 0, 0, 1, 0}, {&__pyx_n_s_And, __pyx_k_And, sizeof(__pyx_k_And), 0, 0, 1, 1}, {&__pyx_n_s_AngleRange, __pyx_k_AngleRange, sizeof(__pyx_k_AngleRange), 0, 0, 1, 1}, {&__pyx_kp_s_AngleRange_f_f_f_f, __pyx_k_AngleRange_f_f_f_f, sizeof(__pyx_k_AngleRange_f_f_f_f), 0, 0, 1, 0}, {&__pyx_n_s_BaseClassInitException, __pyx_k_BaseClassInitException, sizeof(__pyx_k_BaseClassInitException), 0, 0, 1, 1}, {&__pyx_n_s_Box, __pyx_k_Box, sizeof(__pyx_k_Box), 0, 0, 1, 1}, {&__pyx_n_s_Circle, __pyx_k_Circle, sizeof(__pyx_k_Circle), 0, 0, 1, 1}, {&__pyx_kp_s_Circle_f_f_f, __pyx_k_Circle_f_f_f, sizeof(__pyx_k_Circle_f_f_f), 0, 0, 1, 0}, {&__pyx_n_s_Ellipse, __pyx_k_Ellipse, sizeof(__pyx_k_Ellipse), 0, 0, 1, 1}, {&__pyx_kp_s_Ellipse_f_f_f_f, __pyx_k_Ellipse_f_f_f_f, sizeof(__pyx_k_Ellipse_f_f_f_f), 0, 0, 1, 0}, {&__pyx_n_s_NotYetImplemented, __pyx_k_NotYetImplemented, sizeof(__pyx_k_NotYetImplemented), 0, 0, 1, 1}, {&__pyx_n_s_Or, __pyx_k_Or, sizeof(__pyx_k_Or), 0, 0, 1, 1}, {&__pyx_kp_s_Pickling_of_struct_members_such, __pyx_k_Pickling_of_struct_members_such, sizeof(__pyx_k_Pickling_of_struct_members_such), 0, 0, 1, 0}, {&__pyx_n_s_Polygon, __pyx_k_Polygon, sizeof(__pyx_k_Polygon), 0, 0, 1, 1}, {&__pyx_n_s_RegionAnd, __pyx_k_RegionAnd, sizeof(__pyx_k_RegionAnd), 0, 0, 1, 1}, {&__pyx_n_s_RegionAndList, __pyx_k_RegionAndList, sizeof(__pyx_k_RegionAndList), 0, 0, 1, 1}, {&__pyx_kp_u_RegionAnd_line_319, __pyx_k_RegionAnd_line_319, sizeof(__pyx_k_RegionAnd_line_319), 0, 1, 0, 0}, {&__pyx_n_s_RegionBase, __pyx_k_RegionBase, sizeof(__pyx_k_RegionBase), 0, 0, 1, 1}, {&__pyx_n_s_RegionContext, __pyx_k_RegionContext, sizeof(__pyx_k_RegionContext), 0, 0, 1, 1}, {&__pyx_n_s_RegionFilterException, __pyx_k_RegionFilterException, sizeof(__pyx_k_RegionFilterException), 0, 0, 1, 1}, {&__pyx_n_s_RegionList, __pyx_k_RegionList, sizeof(__pyx_k_RegionList), 0, 0, 1, 1}, {&__pyx_n_s_RegionNot, __pyx_k_RegionNot, sizeof(__pyx_k_RegionNot), 0, 0, 1, 1}, {&__pyx_n_s_RegionOr, __pyx_k_RegionOr, sizeof(__pyx_k_RegionOr), 0, 0, 1, 1}, {&__pyx_n_s_RegionOrList, __pyx_k_RegionOrList, sizeof(__pyx_k_RegionOrList), 0, 0, 1, 1}, {&__pyx_kp_u_RegionOr_line_335, __pyx_k_RegionOr_line_335, sizeof(__pyx_k_RegionOr_line_335), 0, 1, 0, 0}, {&__pyx_n_s_Rotated, __pyx_k_Rotated, sizeof(__pyx_k_Rotated), 0, 0, 1, 1}, {&__pyx_n_s_Transform, __pyx_k_Transform, sizeof(__pyx_k_Transform), 0, 0, 1, 1}, {&__pyx_n_s_Translated, __pyx_k_Translated, sizeof(__pyx_k_Translated), 0, 0, 1, 1}, {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, {&__pyx_n_s_ValueError, __pyx_k_ValueError, sizeof(__pyx_k_ValueError), 0, 0, 1, 1}, {&__pyx_n_s_asList, __pyx_k_asList, sizeof(__pyx_k_asList), 0, 0, 1, 1}, {&__pyx_n_s_c, __pyx_k_c, sizeof(__pyx_k_c), 0, 0, 1, 1}, {&__pyx_n_s_check_type_of_list, __pyx_k_check_type_of_list, sizeof(__pyx_k_check_type_of_list), 0, 0, 1, 1}, {&__pyx_n_s_child_region, __pyx_k_child_region, sizeof(__pyx_k_child_region), 0, 0, 1, 1}, {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, {&__pyx_n_s_degree, __pyx_k_degree, sizeof(__pyx_k_degree), 0, 0, 1, 1}, {&__pyx_n_s_degree1, __pyx_k_degree1, sizeof(__pyx_k_degree1), 0, 0, 1, 1}, {&__pyx_n_s_degree2, __pyx_k_degree2, sizeof(__pyx_k_degree2), 0, 0, 1, 1}, {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, {&__pyx_n_s_dx, __pyx_k_dx, sizeof(__pyx_k_dx), 0, 0, 1, 1}, {&__pyx_n_s_dy, __pyx_k_dy, sizeof(__pyx_k_dy), 0, 0, 1, 1}, {&__pyx_n_s_getstate, __pyx_k_getstate, sizeof(__pyx_k_getstate), 0, 0, 1, 1}, {&__pyx_n_s_height, __pyx_k_height, sizeof(__pyx_k_height), 0, 0, 1, 1}, {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, {&__pyx_kp_s_input_array_has_a_wrong_shape, __pyx_k_input_array_has_a_wrong_shape, sizeof(__pyx_k_input_array_has_a_wrong_shape), 0, 0, 1, 0}, {&__pyx_n_s_inside_x_y, __pyx_k_inside_x_y, sizeof(__pyx_k_inside_x_y), 0, 0, 1, 1}, {&__pyx_n_s_inside_xy, __pyx_k_inside_xy, sizeof(__pyx_k_inside_xy), 0, 0, 1, 1}, {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, {&__pyx_n_s_origin_x, __pyx_k_origin_x, sizeof(__pyx_k_origin_x), 0, 0, 1, 1}, {&__pyx_n_s_origin_y, __pyx_k_origin_y, sizeof(__pyx_k_origin_y), 0, 0, 1, 1}, {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, {&__pyx_n_s_pyregion__region_filter, __pyx_k_pyregion__region_filter, sizeof(__pyx_k_pyregion__region_filter), 0, 0, 1, 1}, {&__pyx_kp_s_pyregion__region_filter_pyx, __pyx_k_pyregion__region_filter_pyx, sizeof(__pyx_k_pyregion__region_filter_pyx), 0, 0, 1, 0}, {&__pyx_n_s_pyx_vtable, __pyx_k_pyx_vtable, sizeof(__pyx_k_pyx_vtable), 0, 0, 1, 1}, {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, {&__pyx_kp_u_r_RegionAnd_reg1_reg2, __pyx_k_r_RegionAnd_reg1_reg2, sizeof(__pyx_k_r_RegionAnd_reg1_reg2), 0, 1, 0, 0}, {&__pyx_kp_u_r_RegionOr_reg1_reg2, __pyx_k_r_RegionOr_reg1_reg2, sizeof(__pyx_k_r_RegionOr_reg1_reg2), 0, 1, 0, 0}, {&__pyx_n_s_radius, __pyx_k_radius, sizeof(__pyx_k_radius), 0, 0, 1, 1}, {&__pyx_n_s_radius_major, __pyx_k_radius_major, sizeof(__pyx_k_radius_major), 0, 0, 1, 1}, {&__pyx_n_s_radius_minor, __pyx_k_radius_minor, sizeof(__pyx_k_radius_minor), 0, 0, 1, 1}, {&__pyx_n_s_reduce, __pyx_k_reduce, sizeof(__pyx_k_reduce), 0, 0, 1, 1}, {&__pyx_n_s_reduce_cython, __pyx_k_reduce_cython, sizeof(__pyx_k_reduce_cython), 0, 0, 1, 1}, {&__pyx_n_s_reduce_ex, __pyx_k_reduce_ex, sizeof(__pyx_k_reduce_ex), 0, 0, 1, 1}, {&__pyx_n_s_region1, __pyx_k_region1, sizeof(__pyx_k_region1), 0, 0, 1, 1}, {&__pyx_n_s_region1_list, __pyx_k_region1_list, sizeof(__pyx_k_region1_list), 0, 0, 1, 1}, {&__pyx_n_s_region2, __pyx_k_region2, sizeof(__pyx_k_region2), 0, 0, 1, 1}, {&__pyx_n_s_region2_list, __pyx_k_region2_list, sizeof(__pyx_k_region2_list), 0, 0, 1, 1}, {&__pyx_kp_s_self_c_cannot_be_converted_to_a, __pyx_k_self_c_cannot_be_converted_to_a, sizeof(__pyx_k_self_c_cannot_be_converted_to_a), 0, 0, 1, 0}, {&__pyx_kp_s_self_x_self_y_cannot_be_converte, __pyx_k_self_x_self_y_cannot_be_converte, sizeof(__pyx_k_self_x_self_y_cannot_be_converte), 0, 0, 1, 0}, {&__pyx_n_s_set_context, __pyx_k_set_context, sizeof(__pyx_k_set_context), 0, 0, 1, 1}, {&__pyx_n_s_setstate, __pyx_k_setstate, sizeof(__pyx_k_setstate), 0, 0, 1, 1}, {&__pyx_n_s_setstate_cython, __pyx_k_setstate_cython, sizeof(__pyx_k_setstate_cython), 0, 0, 1, 1}, {&__pyx_n_s_shape, __pyx_k_shape, sizeof(__pyx_k_shape), 0, 0, 1, 1}, {&__pyx_kp_s_shape_of_the_input_image_must_be, __pyx_k_shape_of_the_input_image_must_be, sizeof(__pyx_k_shape_of_the_input_image_must_be), 0, 0, 1, 0}, {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, {&__pyx_kp_s_the_inut_needs_to_be_a_numpy_2_d, __pyx_k_the_inut_needs_to_be_a_numpy_2_d, sizeof(__pyx_k_the_inut_needs_to_be_a_numpy_2_d), 0, 0, 1, 0}, {&__pyx_n_s_width, __pyx_k_width, sizeof(__pyx_k_width), 0, 0, 1, 1}, {&__pyx_n_s_x, __pyx_k_x, sizeof(__pyx_k_x), 0, 0, 1, 1}, {&__pyx_n_s_xc, __pyx_k_xc, sizeof(__pyx_k_xc), 0, 0, 1, 1}, {&__pyx_n_s_y, __pyx_k_y, sizeof(__pyx_k_y), 0, 0, 1, 1}, {&__pyx_n_s_yc, __pyx_k_yc, sizeof(__pyx_k_yc), 0, 0, 1, 1}, {0, 0, 0, 0, 0, 0, 0} }; static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(0, 2, __pyx_L1_error) __pyx_builtin_ValueError = __Pyx_GetBuiltinName(__pyx_n_s_ValueError); if (!__pyx_builtin_ValueError) __PYX_ERR(1, 170, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("self.c cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("self.c cannot be converted to a Python object for pickling") */ __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_self_c_cannot_be_converted_to_a); if (unlikely(!__pyx_tuple_)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple_); __Pyx_GIVEREF(__pyx_tuple_); /* "(tree fragment)":4 * raise TypeError("self.c cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): * raise TypeError("self.c cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< */ __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_self_c_cannot_be_converted_to_a); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__2); __Pyx_GIVEREF(__pyx_tuple__2); /* "pyregion/_region_filter.pyx":170 * return self.inside_xy(x) * else: * raise ValueError("input array has a wrong shape") # <<<<<<<<<<<<<< * else: * return self.inside_x_y(x, y) */ __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_input_array_has_a_wrong_shape); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(1, 170, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__3); __Pyx_GIVEREF(__pyx_tuple__3); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__4); __Pyx_GIVEREF(__pyx_tuple__4); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__5); __Pyx_GIVEREF(__pyx_tuple__5); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__6 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__6)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__6); __Pyx_GIVEREF(__pyx_tuple__6); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__7 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__7)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__7); __Pyx_GIVEREF(__pyx_tuple__7); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__8 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__8); __Pyx_GIVEREF(__pyx_tuple__8); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__9 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__9)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__9); __Pyx_GIVEREF(__pyx_tuple__9); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__10 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__10)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__10); __Pyx_GIVEREF(__pyx_tuple__10); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__11 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__11)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__11); __Pyx_GIVEREF(__pyx_tuple__11); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__12 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__12)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__12); __Pyx_GIVEREF(__pyx_tuple__12); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__13 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__13); __Pyx_GIVEREF(__pyx_tuple__13); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__14 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__14); __Pyx_GIVEREF(__pyx_tuple__14); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__15 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__15); __Pyx_GIVEREF(__pyx_tuple__15); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__16 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__16); __Pyx_GIVEREF(__pyx_tuple__16); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__17 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__17); __Pyx_GIVEREF(__pyx_tuple__17); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__18 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__18); __Pyx_GIVEREF(__pyx_tuple__18); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__19 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__19); __Pyx_GIVEREF(__pyx_tuple__19); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__20 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__20); __Pyx_GIVEREF(__pyx_tuple__20); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__21 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__21); __Pyx_GIVEREF(__pyx_tuple__21); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__22 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__22); __Pyx_GIVEREF(__pyx_tuple__22); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__23 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__23); __Pyx_GIVEREF(__pyx_tuple__23); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__24 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__24); __Pyx_GIVEREF(__pyx_tuple__24); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__25 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__25); __Pyx_GIVEREF(__pyx_tuple__25); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") */ __pyx_tuple__26 = PyTuple_Pack(1, __pyx_kp_s_self_x_self_y_cannot_be_converte); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__26); __Pyx_GIVEREF(__pyx_tuple__26); /* "(tree fragment)":4 * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") * def __setstate_cython__(self, __pyx_state): * raise TypeError("self.x,self.y cannot be converted to a Python object for pickling") # <<<<<<<<<<<<<< */ __pyx_tuple__27 = PyTuple_Pack(1, __pyx_kp_s_self_x_self_y_cannot_be_converte); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__27); __Pyx_GIVEREF(__pyx_tuple__27); /* "(tree fragment)":2 * def __reduce_cython__(self): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") */ __pyx_tuple__28 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__28)) __PYX_ERR(0, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__28); __Pyx_GIVEREF(__pyx_tuple__28); /* "(tree fragment)":4 * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") * def __setstate_cython__(self, __pyx_state): * raise TypeError("Pickling of struct members such as self.m must be explicitly requested with @auto_pickle(True)") # <<<<<<<<<<<<<< */ __pyx_tuple__29 = PyTuple_Pack(1, __pyx_kp_s_Pickling_of_struct_members_such); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__29); __Pyx_GIVEREF(__pyx_tuple__29); /* "pyregion/_region_filter.pyx":319 * return "And" + repr(self.child_regions) * * def RegionAnd(RegionBase region1, RegionBase region2): # <<<<<<<<<<<<<< * """ * >>> r = RegionAnd(reg1, reg2) */ __pyx_tuple__30 = PyTuple_Pack(4, __pyx_n_s_region1, __pyx_n_s_region2, __pyx_n_s_region1_list, __pyx_n_s_region2_list); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(1, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__30); __Pyx_GIVEREF(__pyx_tuple__30); __pyx_codeobj__31 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__30, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyregion__region_filter_pyx, __pyx_n_s_RegionAnd, 319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__31)) __PYX_ERR(1, 319, __pyx_L1_error) /* "pyregion/_region_filter.pyx":335 * return RegionAndList(*(region1_list + region2_list)) * * def RegionOr(RegionBase region1, RegionBase region2): # <<<<<<<<<<<<<< * """ * >>> r = RegionOr(reg1, reg2) */ __pyx_tuple__32 = PyTuple_Pack(4, __pyx_n_s_region1, __pyx_n_s_region2, __pyx_n_s_region1_list, __pyx_n_s_region2_list); if (unlikely(!__pyx_tuple__32)) __PYX_ERR(1, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_tuple__32); __Pyx_GIVEREF(__pyx_tuple__32); __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__32, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pyregion__region_filter_pyx, __pyx_n_s_RegionOr, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(1, 335, __pyx_L1_error) __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { if (__Pyx_InitStrings(__pyx_string_tab) < 0) __PYX_ERR(1, 1, __pyx_L1_error); __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(1, 1, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ static int __Pyx_modinit_global_init_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); /*--- Global init code ---*/ __pyx_v_8pyregion_14_region_filter_metric_wcs = ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)Py_None); Py_INCREF(Py_None); __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_variable_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); /*--- Variable export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_export_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); /*--- Function export code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_type_init_code(void) { __Pyx_RefNannyDeclarations int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); /*--- Type init code ---*/ __pyx_vtabptr_8pyregion_14_region_filter_RegionContext = &__pyx_vtable_8pyregion_14_region_filter_RegionContext; __pyx_vtable_8pyregion_14_region_filter_RegionContext.set_update_func = (PyObject *(*)(struct __pyx_obj_8pyregion_14_region_filter_RegionContext *, int (*)(struct __pyx_t_8pyregion_14_region_filter_Metric *)))__pyx_f_8pyregion_14_region_filter_13RegionContext_set_update_func; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_RegionContext) < 0) __PYX_ERR(1, 39, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_RegionContext.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_RegionContext.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_RegionContext.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_RegionContext.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_RegionContext.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_RegionContext) < 0) __PYX_ERR(1, 39, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RegionContext, (PyObject *)&__pyx_type_8pyregion_14_region_filter_RegionContext) < 0) __PYX_ERR(1, 39, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_RegionContext) < 0) __PYX_ERR(1, 39, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_RegionContext = &__pyx_type_8pyregion_14_region_filter_RegionContext; __pyx_vtabptr_8pyregion_14_region_filter_RegionBase = &__pyx_vtable_8pyregion_14_region_filter_RegionBase; __pyx_vtable_8pyregion_14_region_filter_RegionBase.update_metric = (PyObject *(*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *))__pyx_f_8pyregion_14_region_filter_10RegionBase_update_metric; __pyx_vtable_8pyregion_14_region_filter_RegionBase.metric_set_origin = (PyObject *(*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double, struct __pyx_obj_8pyregion_14_region_filter_RegionContext *))__pyx_f_8pyregion_14_region_filter_10RegionBase_metric_set_origin; __pyx_vtable_8pyregion_14_region_filter_RegionBase._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_10RegionBase__inside; __pyx_vtable_8pyregion_14_region_filter_RegionBase._mask = (PyArrayObject *(*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, npy_intp, npy_intp))__pyx_f_8pyregion_14_region_filter_10RegionBase__mask; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_RegionBase) < 0) __PYX_ERR(1, 68, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_RegionBase.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_RegionBase.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_RegionBase.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_RegionBase.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_RegionBase.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_RegionBase) < 0) __PYX_ERR(1, 68, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RegionBase, (PyObject *)&__pyx_type_8pyregion_14_region_filter_RegionBase) < 0) __PYX_ERR(1, 68, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_RegionBase) < 0) __PYX_ERR(1, 68, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_RegionBase = &__pyx_type_8pyregion_14_region_filter_RegionBase; __pyx_vtabptr_8pyregion_14_region_filter_RegionNot = &__pyx_vtable_8pyregion_14_region_filter_RegionNot; __pyx_vtable_8pyregion_14_region_filter_RegionNot.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; __pyx_vtable_8pyregion_14_region_filter_RegionNot.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_9RegionNot__inside; __pyx_type_8pyregion_14_region_filter_RegionNot.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionBase; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_RegionNot) < 0) __PYX_ERR(1, 237, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_RegionNot.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_RegionNot.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_RegionNot.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_RegionNot.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_RegionNot.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_RegionNot) < 0) __PYX_ERR(1, 237, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RegionNot, (PyObject *)&__pyx_type_8pyregion_14_region_filter_RegionNot) < 0) __PYX_ERR(1, 237, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_RegionNot) < 0) __PYX_ERR(1, 237, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_RegionNot = &__pyx_type_8pyregion_14_region_filter_RegionNot; __pyx_vtabptr_8pyregion_14_region_filter_RegionList = &__pyx_vtable_8pyregion_14_region_filter_RegionList; __pyx_vtable_8pyregion_14_region_filter_RegionList.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; __pyx_type_8pyregion_14_region_filter_RegionList.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionBase; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_RegionList) < 0) __PYX_ERR(1, 249, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_RegionList.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_RegionList.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_RegionList.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_RegionList.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_RegionList.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_RegionList) < 0) __PYX_ERR(1, 249, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RegionList, (PyObject *)&__pyx_type_8pyregion_14_region_filter_RegionList) < 0) __PYX_ERR(1, 249, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_RegionList) < 0) __PYX_ERR(1, 249, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_RegionList = &__pyx_type_8pyregion_14_region_filter_RegionList; __pyx_vtabptr_8pyregion_14_region_filter_RegionOrList = &__pyx_vtable_8pyregion_14_region_filter_RegionOrList; __pyx_vtable_8pyregion_14_region_filter_RegionOrList.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionList; __pyx_vtable_8pyregion_14_region_filter_RegionOrList.__pyx_base.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_12RegionOrList__inside; __pyx_type_8pyregion_14_region_filter_RegionOrList.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionList; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_RegionOrList) < 0) __PYX_ERR(1, 282, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_RegionOrList.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_RegionOrList.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_RegionOrList.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_RegionOrList.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_RegionOrList.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_RegionOrList) < 0) __PYX_ERR(1, 282, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RegionOrList, (PyObject *)&__pyx_type_8pyregion_14_region_filter_RegionOrList) < 0) __PYX_ERR(1, 282, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_RegionOrList) < 0) __PYX_ERR(1, 282, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_RegionOrList = &__pyx_type_8pyregion_14_region_filter_RegionOrList; __pyx_vtabptr_8pyregion_14_region_filter_RegionAndList = &__pyx_vtable_8pyregion_14_region_filter_RegionAndList; __pyx_vtable_8pyregion_14_region_filter_RegionAndList.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionList; __pyx_vtable_8pyregion_14_region_filter_RegionAndList.__pyx_base.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_13RegionAndList__inside; __pyx_type_8pyregion_14_region_filter_RegionAndList.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionList; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_RegionAndList) < 0) __PYX_ERR(1, 300, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_RegionAndList.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_RegionAndList.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_RegionAndList.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_RegionAndList.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_RegionAndList.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_RegionAndList) < 0) __PYX_ERR(1, 300, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_RegionAndList, (PyObject *)&__pyx_type_8pyregion_14_region_filter_RegionAndList) < 0) __PYX_ERR(1, 300, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_RegionAndList) < 0) __PYX_ERR(1, 300, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_RegionAndList = &__pyx_type_8pyregion_14_region_filter_RegionAndList; __pyx_vtabptr_8pyregion_14_region_filter_Transform = &__pyx_vtable_8pyregion_14_region_filter_Transform; __pyx_vtable_8pyregion_14_region_filter_Transform.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; __pyx_vtable_8pyregion_14_region_filter_Transform.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_9Transform__inside; __pyx_vtable_8pyregion_14_region_filter_Transform._transform = (int (*)(struct __pyx_obj_8pyregion_14_region_filter_Transform *, double, double, double *, double *))__pyx_f_8pyregion_14_region_filter_9Transform__transform; __pyx_type_8pyregion_14_region_filter_Transform.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionBase; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_Transform) < 0) __PYX_ERR(1, 351, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_Transform.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_Transform.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_Transform.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_Transform.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_Transform.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_Transform) < 0) __PYX_ERR(1, 351, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Transform, (PyObject *)&__pyx_type_8pyregion_14_region_filter_Transform) < 0) __PYX_ERR(1, 351, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_Transform) < 0) __PYX_ERR(1, 351, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_Transform = &__pyx_type_8pyregion_14_region_filter_Transform; __pyx_vtabptr_8pyregion_14_region_filter_Rotated = &__pyx_vtable_8pyregion_14_region_filter_Rotated; __pyx_vtable_8pyregion_14_region_filter_Rotated.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_Transform; __pyx_vtable_8pyregion_14_region_filter_Rotated.__pyx_base._transform = (int (*)(struct __pyx_obj_8pyregion_14_region_filter_Transform *, double, double, double *, double *))__pyx_f_8pyregion_14_region_filter_7Rotated__transform; __pyx_type_8pyregion_14_region_filter_Rotated.tp_base = __pyx_ptype_8pyregion_14_region_filter_Transform; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_Rotated) < 0) __PYX_ERR(1, 383, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_Rotated.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_Rotated.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_Rotated.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_Rotated.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_Rotated.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_Rotated) < 0) __PYX_ERR(1, 383, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Rotated, (PyObject *)&__pyx_type_8pyregion_14_region_filter_Rotated) < 0) __PYX_ERR(1, 383, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_Rotated) < 0) __PYX_ERR(1, 383, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_Rotated = &__pyx_type_8pyregion_14_region_filter_Rotated; __pyx_vtabptr_8pyregion_14_region_filter_Translated = &__pyx_vtable_8pyregion_14_region_filter_Translated; __pyx_vtable_8pyregion_14_region_filter_Translated.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_Transform; __pyx_vtable_8pyregion_14_region_filter_Translated.__pyx_base._transform = (int (*)(struct __pyx_obj_8pyregion_14_region_filter_Transform *, double, double, double *, double *))__pyx_f_8pyregion_14_region_filter_10Translated__transform; __pyx_type_8pyregion_14_region_filter_Translated.tp_base = __pyx_ptype_8pyregion_14_region_filter_Transform; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_Translated) < 0) __PYX_ERR(1, 426, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_Translated.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_Translated.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_Translated.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_Translated.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_Translated.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_Translated) < 0) __PYX_ERR(1, 426, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Translated, (PyObject *)&__pyx_type_8pyregion_14_region_filter_Translated) < 0) __PYX_ERR(1, 426, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_Translated) < 0) __PYX_ERR(1, 426, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_Translated = &__pyx_type_8pyregion_14_region_filter_Translated; __pyx_vtabptr_8pyregion_14_region_filter_Circle = &__pyx_vtable_8pyregion_14_region_filter_Circle; __pyx_vtable_8pyregion_14_region_filter_Circle.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; __pyx_vtable_8pyregion_14_region_filter_Circle.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_6Circle__inside; __pyx_vtable_8pyregion_14_region_filter_Circle._set_v = (PyObject *(*)(struct __pyx_obj_8pyregion_14_region_filter_Circle *, double, double, double))__pyx_f_8pyregion_14_region_filter_6Circle__set_v; __pyx_vtable_8pyregion_14_region_filter_Circle._get_v = (PyObject *(*)(struct __pyx_obj_8pyregion_14_region_filter_Circle *))__pyx_f_8pyregion_14_region_filter_6Circle__get_v; __pyx_type_8pyregion_14_region_filter_Circle.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionBase; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_Circle) < 0) __PYX_ERR(1, 449, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_Circle.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_Circle.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_Circle.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_Circle.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_Circle.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_Circle) < 0) __PYX_ERR(1, 449, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Circle, (PyObject *)&__pyx_type_8pyregion_14_region_filter_Circle) < 0) __PYX_ERR(1, 449, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_Circle) < 0) __PYX_ERR(1, 449, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_Circle = &__pyx_type_8pyregion_14_region_filter_Circle; __pyx_vtabptr_8pyregion_14_region_filter_Ellipse = &__pyx_vtable_8pyregion_14_region_filter_Ellipse; __pyx_vtable_8pyregion_14_region_filter_Ellipse.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; __pyx_vtable_8pyregion_14_region_filter_Ellipse.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_7Ellipse__inside; __pyx_type_8pyregion_14_region_filter_Ellipse.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionBase; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_Ellipse) < 0) __PYX_ERR(1, 484, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_Ellipse.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_Ellipse.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_Ellipse.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_Ellipse.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_Ellipse.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_Ellipse) < 0) __PYX_ERR(1, 484, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Ellipse, (PyObject *)&__pyx_type_8pyregion_14_region_filter_Ellipse) < 0) __PYX_ERR(1, 484, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_Ellipse) < 0) __PYX_ERR(1, 484, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_Ellipse = &__pyx_type_8pyregion_14_region_filter_Ellipse; __pyx_vtabptr_8pyregion_14_region_filter_Box = &__pyx_vtable_8pyregion_14_region_filter_Box; __pyx_vtable_8pyregion_14_region_filter_Box.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; __pyx_vtable_8pyregion_14_region_filter_Box.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_3Box__inside; __pyx_type_8pyregion_14_region_filter_Box.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionBase; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_Box) < 0) __PYX_ERR(1, 525, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_Box.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_Box.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_Box.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_Box.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_Box.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_Box) < 0) __PYX_ERR(1, 525, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Box, (PyObject *)&__pyx_type_8pyregion_14_region_filter_Box) < 0) __PYX_ERR(1, 525, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_Box) < 0) __PYX_ERR(1, 525, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_Box = &__pyx_type_8pyregion_14_region_filter_Box; __pyx_vtabptr_8pyregion_14_region_filter_Polygon = &__pyx_vtable_8pyregion_14_region_filter_Polygon; __pyx_vtable_8pyregion_14_region_filter_Polygon.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; __pyx_vtable_8pyregion_14_region_filter_Polygon.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_7Polygon__inside; __pyx_type_8pyregion_14_region_filter_Polygon.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionBase; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_Polygon) < 0) __PYX_ERR(1, 555, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_Polygon.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_Polygon.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_Polygon.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_Polygon.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_Polygon.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_Polygon) < 0) __PYX_ERR(1, 555, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_Polygon, (PyObject *)&__pyx_type_8pyregion_14_region_filter_Polygon) < 0) __PYX_ERR(1, 555, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_Polygon) < 0) __PYX_ERR(1, 555, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_Polygon = &__pyx_type_8pyregion_14_region_filter_Polygon; __pyx_vtabptr_8pyregion_14_region_filter_AngleRange = &__pyx_vtable_8pyregion_14_region_filter_AngleRange; __pyx_vtable_8pyregion_14_region_filter_AngleRange.__pyx_base = *__pyx_vtabptr_8pyregion_14_region_filter_RegionBase; __pyx_vtable_8pyregion_14_region_filter_AngleRange.__pyx_base._inside = (npy_bool (*)(struct __pyx_obj_8pyregion_14_region_filter_RegionBase *, double, double))__pyx_f_8pyregion_14_region_filter_10AngleRange__inside; __pyx_vtable_8pyregion_14_region_filter_AngleRange._fix_angle = (double (*)(struct __pyx_obj_8pyregion_14_region_filter_AngleRange *, double))__pyx_f_8pyregion_14_region_filter_10AngleRange__fix_angle; __pyx_type_8pyregion_14_region_filter_AngleRange.tp_base = __pyx_ptype_8pyregion_14_region_filter_RegionBase; if (PyType_Ready(&__pyx_type_8pyregion_14_region_filter_AngleRange) < 0) __PYX_ERR(1, 616, __pyx_L1_error) #if PY_VERSION_HEX < 0x030800B1 __pyx_type_8pyregion_14_region_filter_AngleRange.tp_print = 0; #endif if ((CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP) && likely(!__pyx_type_8pyregion_14_region_filter_AngleRange.tp_dictoffset && __pyx_type_8pyregion_14_region_filter_AngleRange.tp_getattro == PyObject_GenericGetAttr)) { __pyx_type_8pyregion_14_region_filter_AngleRange.tp_getattro = __Pyx_PyObject_GenericGetAttr; } if (__Pyx_SetVtable(__pyx_type_8pyregion_14_region_filter_AngleRange.tp_dict, __pyx_vtabptr_8pyregion_14_region_filter_AngleRange) < 0) __PYX_ERR(1, 616, __pyx_L1_error) if (PyObject_SetAttr(__pyx_m, __pyx_n_s_AngleRange, (PyObject *)&__pyx_type_8pyregion_14_region_filter_AngleRange) < 0) __PYX_ERR(1, 616, __pyx_L1_error) if (__Pyx_setup_reduce((PyObject*)&__pyx_type_8pyregion_14_region_filter_AngleRange) < 0) __PYX_ERR(1, 616, __pyx_L1_error) __pyx_ptype_8pyregion_14_region_filter_AngleRange = &__pyx_type_8pyregion_14_region_filter_AngleRange; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_type_import_code(void) { __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); /*--- Type import code ---*/ __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_ptype_8pyregion_7c_numpy_dtype = __Pyx_ImportType(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_8pyregion_7c_numpy_dtype) __PYX_ERR(2, 77, __pyx_L1_error) __pyx_ptype_8pyregion_7c_numpy_ndarray = __Pyx_ImportType(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_8pyregion_7c_numpy_ndarray) __PYX_ERR(2, 82, __pyx_L1_error) __pyx_ptype_8pyregion_7c_numpy_flatiter = __Pyx_ImportType(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_8pyregion_7c_numpy_flatiter) __PYX_ERR(2, 91, __pyx_L1_error) __pyx_ptype_8pyregion_7c_numpy_broadcast = __Pyx_ImportType(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __Pyx_ImportType_CheckSize_Warn); if (!__pyx_ptype_8pyregion_7c_numpy_broadcast) __PYX_ERR(2, 97, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_RefNannyFinishContext(); return 0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_RefNannyFinishContext(); return -1; } static int __Pyx_modinit_variable_import_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); /*--- Variable import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } static int __Pyx_modinit_function_import_code(void) { __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); /*--- Function import code ---*/ __Pyx_RefNannyFinishContext(); return 0; } #ifndef CYTHON_NO_PYINIT_EXPORT #define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC #elif PY_MAJOR_VERSION < 3 #ifdef __cplusplus #define __Pyx_PyMODINIT_FUNC extern "C" void #else #define __Pyx_PyMODINIT_FUNC void #endif #else #ifdef __cplusplus #define __Pyx_PyMODINIT_FUNC extern "C" PyObject * #else #define __Pyx_PyMODINIT_FUNC PyObject * #endif #endif #if PY_MAJOR_VERSION < 3 __Pyx_PyMODINIT_FUNC init_region_filter(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC init_region_filter(void) #else __Pyx_PyMODINIT_FUNC PyInit__region_filter(void) CYTHON_SMALL_CODE; /*proto*/ __Pyx_PyMODINIT_FUNC PyInit__region_filter(void) #if CYTHON_PEP489_MULTI_PHASE_INIT { return PyModuleDef_Init(&__pyx_moduledef); } static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { #if PY_VERSION_HEX >= 0x030700A1 static PY_INT64_T main_interpreter_id = -1; PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); if (main_interpreter_id == -1) { main_interpreter_id = current_id; return (unlikely(current_id == -1)) ? -1 : 0; } else if (unlikely(main_interpreter_id != current_id)) #else static PyInterpreterState *main_interpreter = NULL; PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; if (!main_interpreter) { main_interpreter = current_interpreter; } else if (unlikely(main_interpreter != current_interpreter)) #endif { PyErr_SetString( PyExc_ImportError, "Interpreter change detected - this module can only be loaded into one interpreter per process."); return -1; } return 0; } static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) { PyObject *value = PyObject_GetAttrString(spec, from_name); int result = 0; if (likely(value)) { if (allow_none || value != Py_None) { result = PyDict_SetItemString(moddict, to_name, value); } Py_DECREF(value); } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { PyErr_Clear(); } else { result = -1; } return result; } static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, CYTHON_UNUSED PyModuleDef *def) { PyObject *module = NULL, *moddict, *modname; if (__Pyx_check_single_interpreter()) return NULL; if (__pyx_m) return __Pyx_NewRef(__pyx_m); modname = PyObject_GetAttrString(spec, "name"); if (unlikely(!modname)) goto bad; module = PyModule_NewObject(modname); Py_DECREF(modname); if (unlikely(!module)) goto bad; moddict = PyModule_GetDict(module); if (unlikely(!moddict)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; return module; bad: Py_XDECREF(module); return NULL; } static CYTHON_SMALL_CODE int __pyx_pymod_exec__region_filter(PyObject *__pyx_pyinit_module) #endif #endif { PyObject *__pyx_t_1 = NULL; PyObject *__pyx_t_2 = NULL; PyObject *__pyx_t_3 = NULL; PyObject *__pyx_t_4 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannyDeclarations #if CYTHON_PEP489_MULTI_PHASE_INIT if (__pyx_m) { if (__pyx_m == __pyx_pyinit_module) return 0; PyErr_SetString(PyExc_RuntimeError, "Module '_region_filter' has already been imported. Re-initialisation is not supported."); return -1; } #elif PY_MAJOR_VERSION >= 3 if (__pyx_m) return __Pyx_NewRef(__pyx_m); #endif #if CYTHON_REFNANNY __Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); if (!__Pyx_RefNanny) { PyErr_Clear(); __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); if (!__Pyx_RefNanny) Py_FatalError("failed to import 'refnanny' module"); } #endif __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__region_filter(void)", 0); if (__Pyx_check_binary_version() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #ifdef __Pxy_PyFrame_Initialize_Offsets __Pxy_PyFrame_Initialize_Offsets(); #endif __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(1, 1, __pyx_L1_error) __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(1, 1, __pyx_L1_error) #ifdef __Pyx_CyFunction_USED if (__pyx_CyFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #endif #ifdef __Pyx_FusedFunction_USED if (__pyx_FusedFunction_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #endif #ifdef __Pyx_Coroutine_USED if (__pyx_Coroutine_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #endif #ifdef __Pyx_Generator_USED if (__pyx_Generator_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #endif #ifdef __Pyx_AsyncGen_USED if (__pyx_AsyncGen_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #endif #ifdef __Pyx_StopAsyncIteration_USED if (__pyx_StopAsyncIteration_init() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #endif /*--- Library function declarations ---*/ /*--- Threads initialization code ---*/ #if defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS #ifdef WITH_THREAD /* Python build with threading support? */ PyEval_InitThreads(); #endif #endif /*--- Module creation code ---*/ #if CYTHON_PEP489_MULTI_PHASE_INIT __pyx_m = __pyx_pyinit_module; Py_INCREF(__pyx_m); #else #if PY_MAJOR_VERSION < 3 __pyx_m = Py_InitModule4("_region_filter", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); #else __pyx_m = PyModule_Create(&__pyx_moduledef); #endif if (unlikely(!__pyx_m)) __PYX_ERR(1, 1, __pyx_L1_error) #endif __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(1, 1, __pyx_L1_error) Py_INCREF(__pyx_d); __pyx_b = PyImport_AddModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(1, 1, __pyx_L1_error) Py_INCREF(__pyx_b); __pyx_cython_runtime = PyImport_AddModule((char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(1, 1, __pyx_L1_error) Py_INCREF(__pyx_cython_runtime); if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(1, 1, __pyx_L1_error); /*--- Initialize various global constants etc. ---*/ if (__Pyx_InitGlobals() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #endif if (__pyx_module_is_main_pyregion___region_filter) { if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name, __pyx_n_s_main) < 0) __PYX_ERR(1, 1, __pyx_L1_error) } #if PY_MAJOR_VERSION >= 3 { PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(1, 1, __pyx_L1_error) if (!PyDict_GetItemString(modules, "pyregion._region_filter")) { if (unlikely(PyDict_SetItemString(modules, "pyregion._region_filter", __pyx_m) < 0)) __PYX_ERR(1, 1, __pyx_L1_error) } } #endif /*--- Builtin init code ---*/ if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(1, 1, __pyx_L1_error) /*--- Constants init code ---*/ if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(1, 1, __pyx_L1_error) /*--- Global type/function init code ---*/ (void)__Pyx_modinit_global_init_code(); (void)__Pyx_modinit_variable_export_code(); (void)__Pyx_modinit_function_export_code(); if (unlikely(__Pyx_modinit_type_init_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) if (unlikely(__Pyx_modinit_type_import_code() < 0)) __PYX_ERR(1, 1, __pyx_L1_error) (void)__Pyx_modinit_variable_import_code(); (void)__Pyx_modinit_function_import_code(); /*--- Execution code ---*/ #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) if (__Pyx_patch_abc() < 0) __PYX_ERR(1, 1, __pyx_L1_error) #endif /* "pyregion/_region_filter.pyx":13 * cimport c_python * * c_numpy.import_array() # <<<<<<<<<<<<<< * * ctypedef int Py_ssize_t */ import_array(); /* "pyregion/_region_filter.pyx":18 * * * class NotYetImplemented(Exception): # <<<<<<<<<<<<<< * pass * */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); __Pyx_GIVEREF(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_NotYetImplemented, __pyx_n_s_NotYetImplemented, (PyObject *) NULL, __pyx_n_s_pyregion__region_filter, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_NotYetImplemented, __pyx_t_1, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 18, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_NotYetImplemented, __pyx_t_4) < 0) __PYX_ERR(1, 18, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":22 * * * class RegionFilterException(Exception): # <<<<<<<<<<<<<< * pass * */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); __Pyx_GIVEREF(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_RegionFilterException, __pyx_n_s_RegionFilterException, (PyObject *) NULL, __pyx_n_s_pyregion__region_filter, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_RegionFilterException, __pyx_t_1, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 22, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_RegionFilterException, __pyx_t_4) < 0) __PYX_ERR(1, 22, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":60 * * cdef RegionContext metric_wcs * metric_wcs = RegionContext() # <<<<<<<<<<<<<< * metric_wcs.set_update_func(_update_metric_wcs) * */ __pyx_t_1 = __Pyx_PyObject_CallNoArg(((PyObject *)__pyx_ptype_8pyregion_14_region_filter_RegionContext)); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XGOTREF(((PyObject *)__pyx_v_8pyregion_14_region_filter_metric_wcs)); __Pyx_DECREF_SET(__pyx_v_8pyregion_14_region_filter_metric_wcs, ((struct __pyx_obj_8pyregion_14_region_filter_RegionContext *)__pyx_t_1)); __Pyx_GIVEREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":61 * cdef RegionContext metric_wcs * metric_wcs = RegionContext() * metric_wcs.set_update_func(_update_metric_wcs) # <<<<<<<<<<<<<< * * */ __pyx_t_1 = ((struct __pyx_vtabstruct_8pyregion_14_region_filter_RegionContext *)__pyx_v_8pyregion_14_region_filter_metric_wcs->__pyx_vtab)->set_update_func(__pyx_v_8pyregion_14_region_filter_metric_wcs, __pyx_f_8pyregion_14_region_filter__update_metric_wcs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 61, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":64 * * * class BaseClassInitException(Exception): # <<<<<<<<<<<<<< * pass * */ __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); __Pyx_GIVEREF(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); __pyx_t_2 = __Pyx_CalculateMetaclass(NULL, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_Py3MetaclassPrepare(__pyx_t_2, __pyx_t_1, __pyx_n_s_BaseClassInitException, __pyx_n_s_BaseClassInitException, (PyObject *) NULL, __pyx_n_s_pyregion__region_filter, (PyObject *) NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_Py3ClassCreate(__pyx_t_2, __pyx_n_s_BaseClassInitException, __pyx_t_1, __pyx_t_3, NULL, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_d, __pyx_n_s_BaseClassInitException, __pyx_t_4) < 0) __PYX_ERR(1, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":319 * return "And" + repr(self.child_regions) * * def RegionAnd(RegionBase region1, RegionBase region2): # <<<<<<<<<<<<<< * """ * >>> r = RegionAnd(reg1, reg2) */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_8pyregion_14_region_filter_1RegionAnd, NULL, __pyx_n_s_pyregion__region_filter); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 319, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_RegionAnd, __pyx_t_1) < 0) __PYX_ERR(1, 319, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":335 * return RegionAndList(*(region1_list + region2_list)) * * def RegionOr(RegionBase region1, RegionBase region2): # <<<<<<<<<<<<<< * """ * >>> r = RegionOr(reg1, reg2) */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_8pyregion_14_region_filter_3RegionOr, NULL, __pyx_n_s_pyregion__region_filter); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 335, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_RegionOr, __pyx_t_1) < 0) __PYX_ERR(1, 335, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* "pyregion/_region_filter.pyx":1 * cdef extern from "stdio.h": # <<<<<<<<<<<<<< * pass * */ __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_RegionAnd_line_319, __pyx_kp_u_r_RegionAnd_reg1_reg2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) if (PyDict_SetItem(__pyx_t_1, __pyx_kp_u_RegionOr_line_335, __pyx_kp_u_r_RegionOr_reg1_reg2) < 0) __PYX_ERR(1, 1, __pyx_L1_error) if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(1, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /*--- Wrapped vars code ---*/ goto __pyx_L0; __pyx_L1_error:; __Pyx_XDECREF(__pyx_t_1); __Pyx_XDECREF(__pyx_t_2); __Pyx_XDECREF(__pyx_t_3); __Pyx_XDECREF(__pyx_t_4); if (__pyx_m) { if (__pyx_d) { __Pyx_AddTraceback("init pyregion._region_filter", __pyx_clineno, __pyx_lineno, __pyx_filename); } Py_CLEAR(__pyx_m); } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_ImportError, "init pyregion._region_filter"); } __pyx_L0:; __Pyx_RefNannyFinishContext(); #if CYTHON_PEP489_MULTI_PHASE_INIT return (__pyx_m != NULL) ? 0 : -1; #elif PY_MAJOR_VERSION >= 3 return __pyx_m; #else return; #endif } /* --- Runtime support code --- */ /* Refnanny */ #if CYTHON_REFNANNY static __Pyx_RefNannyAPIStruct *__Pyx_RefNannyImportAPI(const char *modname) { PyObject *m = NULL, *p = NULL; void *r = NULL; m = PyImport_ImportModule(modname); if (!m) goto end; p = PyObject_GetAttrString(m, "RefNannyAPI"); if (!p) goto end; r = PyLong_AsVoidPtr(p); end: Py_XDECREF(p); Py_XDECREF(m); return (__Pyx_RefNannyAPIStruct *)r; } #endif /* PyObjectGetAttrStr */ #if CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStr(PyObject* obj, PyObject* attr_name) { PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro)) return tp->tp_getattro(obj, attr_name); #if PY_MAJOR_VERSION < 3 if (likely(tp->tp_getattr)) return tp->tp_getattr(obj, PyString_AS_STRING(attr_name)); #endif return PyObject_GetAttr(obj, attr_name); } #endif /* GetBuiltinName */ static PyObject *__Pyx_GetBuiltinName(PyObject *name) { PyObject* result = __Pyx_PyObject_GetAttrStr(__pyx_b, name); if (unlikely(!result)) { PyErr_Format(PyExc_NameError, #if PY_MAJOR_VERSION >= 3 "name '%U' is not defined", name); #else "name '%.200s' is not defined", PyString_AS_STRING(name)); #endif } return result; } /* RaiseArgTupleInvalid */ static void __Pyx_RaiseArgtupleInvalid( const char* func_name, int exact, Py_ssize_t num_min, Py_ssize_t num_max, Py_ssize_t num_found) { Py_ssize_t num_expected; const char *more_or_less; if (num_found < num_min) { num_expected = num_min; more_or_less = "at least"; } else { num_expected = num_max; more_or_less = "at most"; } if (exact) { more_or_less = "exactly"; } PyErr_Format(PyExc_TypeError, "%.200s() takes %.8s %" CYTHON_FORMAT_SSIZE_T "d positional argument%.1s (%" CYTHON_FORMAT_SSIZE_T "d given)", func_name, more_or_less, num_expected, (num_expected == 1) ? "" : "s", num_found); } /* KeywordStringCheck */ static int __Pyx_CheckKeywordStrings( PyObject *kwdict, const char* function_name, int kw_allowed) { PyObject* key = 0; Py_ssize_t pos = 0; #if CYTHON_COMPILING_IN_PYPY if (!kw_allowed && PyDict_Next(kwdict, &pos, &key, 0)) goto invalid_keyword; return 1; #else while (PyDict_Next(kwdict, &pos, &key, 0)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyString_Check(key))) #endif if (unlikely(!PyUnicode_Check(key))) goto invalid_keyword_type; } if ((!kw_allowed) && unlikely(key)) goto invalid_keyword; return 1; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); return 0; #endif invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif return 0; } /* PyObjectCall */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw) { PyObject *result; ternaryfunc call = func->ob_type->tp_call; if (unlikely(!call)) return PyObject_Call(func, arg, kw); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = (*call)(func, arg, kw); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyErrFetchRestore */ #if CYTHON_FAST_THREAD_STATE static CYTHON_INLINE void __Pyx_ErrRestoreInState(PyThreadState *tstate, PyObject *type, PyObject *value, PyObject *tb) { PyObject *tmp_type, *tmp_value, *tmp_tb; tmp_type = tstate->curexc_type; tmp_value = tstate->curexc_value; tmp_tb = tstate->curexc_traceback; tstate->curexc_type = type; tstate->curexc_value = value; tstate->curexc_traceback = tb; Py_XDECREF(tmp_type); Py_XDECREF(tmp_value); Py_XDECREF(tmp_tb); } static CYTHON_INLINE void __Pyx_ErrFetchInState(PyThreadState *tstate, PyObject **type, PyObject **value, PyObject **tb) { *type = tstate->curexc_type; *value = tstate->curexc_value; *tb = tstate->curexc_traceback; tstate->curexc_type = 0; tstate->curexc_value = 0; tstate->curexc_traceback = 0; } #endif /* RaiseException */ #if PY_MAJOR_VERSION < 3 static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, CYTHON_UNUSED PyObject *cause) { __Pyx_PyThreadState_declare Py_XINCREF(type); if (!value || value == Py_None) value = NULL; else Py_INCREF(value); if (!tb || tb == Py_None) tb = NULL; else { Py_INCREF(tb); if (!PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto raise_error; } } if (PyType_Check(type)) { #if CYTHON_COMPILING_IN_PYPY if (!value) { Py_INCREF(Py_None); value = Py_None; } #endif PyErr_NormalizeException(&type, &value, &tb); } else { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto raise_error; } value = type; type = (PyObject*) Py_TYPE(type); Py_INCREF(type); if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto raise_error; } } __Pyx_PyThreadState_assign __Pyx_ErrRestore(type, value, tb); return; raise_error: Py_XDECREF(value); Py_XDECREF(type); Py_XDECREF(tb); return; } #else static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb, PyObject *cause) { PyObject* owned_instance = NULL; if (tb == Py_None) { tb = 0; } else if (tb && !PyTraceBack_Check(tb)) { PyErr_SetString(PyExc_TypeError, "raise: arg 3 must be a traceback or None"); goto bad; } if (value == Py_None) value = 0; if (PyExceptionInstance_Check(type)) { if (value) { PyErr_SetString(PyExc_TypeError, "instance exception may not have a separate value"); goto bad; } value = type; type = (PyObject*) Py_TYPE(value); } else if (PyExceptionClass_Check(type)) { PyObject *instance_class = NULL; if (value && PyExceptionInstance_Check(value)) { instance_class = (PyObject*) Py_TYPE(value); if (instance_class != type) { int is_subclass = PyObject_IsSubclass(instance_class, type); if (!is_subclass) { instance_class = NULL; } else if (unlikely(is_subclass == -1)) { goto bad; } else { type = instance_class; } } } if (!instance_class) { PyObject *args; if (!value) args = PyTuple_New(0); else if (PyTuple_Check(value)) { Py_INCREF(value); args = value; } else args = PyTuple_Pack(1, value); if (!args) goto bad; owned_instance = PyObject_Call(type, args, NULL); Py_DECREF(args); if (!owned_instance) goto bad; value = owned_instance; if (!PyExceptionInstance_Check(value)) { PyErr_Format(PyExc_TypeError, "calling %R should have returned an instance of " "BaseException, not %R", type, Py_TYPE(value)); goto bad; } } } else { PyErr_SetString(PyExc_TypeError, "raise: exception class must be a subclass of BaseException"); goto bad; } if (cause) { PyObject *fixed_cause; if (cause == Py_None) { fixed_cause = NULL; } else if (PyExceptionClass_Check(cause)) { fixed_cause = PyObject_CallObject(cause, NULL); if (fixed_cause == NULL) goto bad; } else if (PyExceptionInstance_Check(cause)) { fixed_cause = cause; Py_INCREF(fixed_cause); } else { PyErr_SetString(PyExc_TypeError, "exception causes must derive from " "BaseException"); goto bad; } PyException_SetCause(value, fixed_cause); } PyErr_SetObject(type, value); if (tb) { #if CYTHON_COMPILING_IN_PYPY PyObject *tmp_type, *tmp_value, *tmp_tb; PyErr_Fetch(&tmp_type, &tmp_value, &tmp_tb); Py_INCREF(tb); PyErr_Restore(tmp_type, tmp_value, tb); Py_XDECREF(tmp_tb); #else PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject* tmp_tb = tstate->curexc_traceback; if (tb != tmp_tb) { Py_INCREF(tb); tstate->curexc_traceback = tb; Py_XDECREF(tmp_tb); } #endif } bad: Py_XDECREF(owned_instance); return; } #endif /* PyDictVersioning */ #if CYTHON_USE_DICT_VERSIONS && CYTHON_USE_TYPE_SLOTS static CYTHON_INLINE PY_UINT64_T __Pyx_get_tp_dict_version(PyObject *obj) { PyObject *dict = Py_TYPE(obj)->tp_dict; return likely(dict) ? __PYX_GET_DICT_VERSION(dict) : 0; } static CYTHON_INLINE PY_UINT64_T __Pyx_get_object_dict_version(PyObject *obj) { PyObject **dictptr = NULL; Py_ssize_t offset = Py_TYPE(obj)->tp_dictoffset; if (offset) { #if CYTHON_COMPILING_IN_CPYTHON dictptr = (likely(offset > 0)) ? (PyObject **) ((char *)obj + offset) : _PyObject_GetDictPtr(obj); #else dictptr = _PyObject_GetDictPtr(obj); #endif } return (dictptr && *dictptr) ? __PYX_GET_DICT_VERSION(*dictptr) : 0; } static CYTHON_INLINE int __Pyx_object_dict_version_matches(PyObject* obj, PY_UINT64_T tp_dict_version, PY_UINT64_T obj_dict_version) { PyObject *dict = Py_TYPE(obj)->tp_dict; if (unlikely(!dict) || unlikely(tp_dict_version != __PYX_GET_DICT_VERSION(dict))) return 0; return obj_dict_version == __Pyx_get_object_dict_version(obj); } #endif /* GetModuleGlobalName */ #if CYTHON_USE_DICT_VERSIONS static PyObject *__Pyx__GetModuleGlobalName(PyObject *name, PY_UINT64_T *dict_version, PyObject **dict_cached_value) #else static CYTHON_INLINE PyObject *__Pyx__GetModuleGlobalName(PyObject *name) #endif { PyObject *result; #if !CYTHON_AVOID_BORROWED_REFS #if CYTHON_COMPILING_IN_CPYTHON && PY_VERSION_HEX >= 0x030500A1 result = _PyDict_GetItem_KnownHash(__pyx_d, name, ((PyASCIIObject *) name)->hash); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } else if (unlikely(PyErr_Occurred())) { return NULL; } #else result = PyDict_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } #endif #else result = PyObject_GetItem(__pyx_d, name); __PYX_UPDATE_DICT_CACHE(__pyx_d, result, *dict_cached_value, *dict_version) if (likely(result)) { return __Pyx_NewRef(result); } PyErr_Clear(); #endif return __Pyx_GetBuiltinName(name); } /* PyFunctionFastCall */ #if CYTHON_FAST_PYCALL static PyObject* __Pyx_PyFunction_FastCallNoKw(PyCodeObject *co, PyObject **args, Py_ssize_t na, PyObject *globals) { PyFrameObject *f; PyThreadState *tstate = __Pyx_PyThreadState_Current; PyObject **fastlocals; Py_ssize_t i; PyObject *result; assert(globals != NULL); /* XXX Perhaps we should create a specialized PyFrame_New() that doesn't take locals, but does take builtins without sanity checking them. */ assert(tstate != NULL); f = PyFrame_New(tstate, co, globals, NULL); if (f == NULL) { return NULL; } fastlocals = __Pyx_PyFrame_GetLocalsplus(f); for (i = 0; i < na; i++) { Py_INCREF(*args); fastlocals[i] = *args++; } result = PyEval_EvalFrameEx(f,0); ++tstate->recursion_depth; Py_DECREF(f); --tstate->recursion_depth; return result; } #if 1 || PY_VERSION_HEX < 0x030600B1 static PyObject *__Pyx_PyFunction_FastCallDict(PyObject *func, PyObject **args, Py_ssize_t nargs, PyObject *kwargs) { PyCodeObject *co = (PyCodeObject *)PyFunction_GET_CODE(func); PyObject *globals = PyFunction_GET_GLOBALS(func); PyObject *argdefs = PyFunction_GET_DEFAULTS(func); PyObject *closure; #if PY_MAJOR_VERSION >= 3 PyObject *kwdefs; #endif PyObject *kwtuple, **k; PyObject **d; Py_ssize_t nd; Py_ssize_t nk; PyObject *result; assert(kwargs == NULL || PyDict_Check(kwargs)); nk = kwargs ? PyDict_Size(kwargs) : 0; if (Py_EnterRecursiveCall((char*)" while calling a Python object")) { return NULL; } if ( #if PY_MAJOR_VERSION >= 3 co->co_kwonlyargcount == 0 && #endif likely(kwargs == NULL || nk == 0) && co->co_flags == (CO_OPTIMIZED | CO_NEWLOCALS | CO_NOFREE)) { if (argdefs == NULL && co->co_argcount == nargs) { result = __Pyx_PyFunction_FastCallNoKw(co, args, nargs, globals); goto done; } else if (nargs == 0 && argdefs != NULL && co->co_argcount == Py_SIZE(argdefs)) { /* function called with no arguments, but all parameters have a default value: use default values as arguments .*/ args = &PyTuple_GET_ITEM(argdefs, 0); result =__Pyx_PyFunction_FastCallNoKw(co, args, Py_SIZE(argdefs), globals); goto done; } } if (kwargs != NULL) { Py_ssize_t pos, i; kwtuple = PyTuple_New(2 * nk); if (kwtuple == NULL) { result = NULL; goto done; } k = &PyTuple_GET_ITEM(kwtuple, 0); pos = i = 0; while (PyDict_Next(kwargs, &pos, &k[i], &k[i+1])) { Py_INCREF(k[i]); Py_INCREF(k[i+1]); i += 2; } nk = i / 2; } else { kwtuple = NULL; k = NULL; } closure = PyFunction_GET_CLOSURE(func); #if PY_MAJOR_VERSION >= 3 kwdefs = PyFunction_GET_KW_DEFAULTS(func); #endif if (argdefs != NULL) { d = &PyTuple_GET_ITEM(argdefs, 0); nd = Py_SIZE(argdefs); } else { d = NULL; nd = 0; } #if PY_MAJOR_VERSION >= 3 result = PyEval_EvalCodeEx((PyObject*)co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, kwdefs, closure); #else result = PyEval_EvalCodeEx(co, globals, (PyObject *)NULL, args, (int)nargs, k, (int)nk, d, (int)nd, closure); #endif Py_XDECREF(kwtuple); done: Py_LeaveRecursiveCall(); return result; } #endif #endif /* PyObjectCallMethO */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallMethO(PyObject *func, PyObject *arg) { PyObject *self, *result; PyCFunction cfunc; cfunc = PyCFunction_GET_FUNCTION(func); self = PyCFunction_GET_SELF(func); if (unlikely(Py_EnterRecursiveCall((char*)" while calling a Python object"))) return NULL; result = cfunc(self, arg); Py_LeaveRecursiveCall(); if (unlikely(!result) && unlikely(!PyErr_Occurred())) { PyErr_SetString( PyExc_SystemError, "NULL result without error in PyObject_Call"); } return result; } #endif /* PyObjectCallNoArg */ #if CYTHON_COMPILING_IN_CPYTHON static CYTHON_INLINE PyObject* __Pyx_PyObject_CallNoArg(PyObject *func) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, NULL, 0); } #endif #ifdef __Pyx_CyFunction_USED if (likely(PyCFunction_Check(func) || __Pyx_CyFunction_Check(func))) #else if (likely(PyCFunction_Check(func))) #endif { if (likely(PyCFunction_GET_FLAGS(func) & METH_NOARGS)) { return __Pyx_PyObject_CallMethO(func, NULL); } } return __Pyx_PyObject_Call(func, __pyx_empty_tuple, NULL); } #endif /* PyCFunctionFastCall */ #if CYTHON_FAST_PYCCALL static CYTHON_INLINE PyObject * __Pyx_PyCFunction_FastCall(PyObject *func_obj, PyObject **args, Py_ssize_t nargs) { PyCFunctionObject *func = (PyCFunctionObject*)func_obj; PyCFunction meth = PyCFunction_GET_FUNCTION(func); PyObject *self = PyCFunction_GET_SELF(func); int flags = PyCFunction_GET_FLAGS(func); assert(PyCFunction_Check(func)); assert(METH_FASTCALL == (flags & ~(METH_CLASS | METH_STATIC | METH_COEXIST | METH_KEYWORDS | METH_STACKLESS))); assert(nargs >= 0); assert(nargs == 0 || args != NULL); /* _PyCFunction_FastCallDict() must not be called with an exception set, because it may clear it (directly or indirectly) and so the caller loses its exception */ assert(!PyErr_Occurred()); if ((PY_VERSION_HEX < 0x030700A0) || unlikely(flags & METH_KEYWORDS)) { return (*((__Pyx_PyCFunctionFastWithKeywords)(void*)meth)) (self, args, nargs, NULL); } else { return (*((__Pyx_PyCFunctionFast)(void*)meth)) (self, args, nargs); } } #endif /* PyObjectCallOneArg */ #if CYTHON_COMPILING_IN_CPYTHON static PyObject* __Pyx__PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_New(1); if (unlikely(!args)) return NULL; Py_INCREF(arg); PyTuple_SET_ITEM(args, 0, arg); result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { #if CYTHON_FAST_PYCALL if (PyFunction_Check(func)) { return __Pyx_PyFunction_FastCall(func, &arg, 1); } #endif if (likely(PyCFunction_Check(func))) { if (likely(PyCFunction_GET_FLAGS(func) & METH_O)) { return __Pyx_PyObject_CallMethO(func, arg); #if CYTHON_FAST_PYCCALL } else if (__Pyx_PyFastCFunction_Check(func)) { return __Pyx_PyCFunction_FastCall(func, &arg, 1); #endif } } return __Pyx__PyObject_CallOneArg(func, arg); } #else static CYTHON_INLINE PyObject* __Pyx_PyObject_CallOneArg(PyObject *func, PyObject *arg) { PyObject *result; PyObject *args = PyTuple_Pack(1, arg); if (unlikely(!args)) return NULL; result = __Pyx_PyObject_Call(func, args, NULL); Py_DECREF(args); return result; } #endif /* ArgTypeTest */ static int __Pyx__ArgTypeTest(PyObject *obj, PyTypeObject *type, const char *name, int exact) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } else if (exact) { #if PY_MAJOR_VERSION == 2 if ((type == &PyBaseString_Type) && likely(__Pyx_PyBaseString_CheckExact(obj))) return 1; #endif } else { if (likely(__Pyx_TypeCheck(obj, type))) return 1; } PyErr_Format(PyExc_TypeError, "Argument '%.200s' has incorrect type (expected %.200s, got %.200s)", name, type->tp_name, Py_TYPE(obj)->tp_name); return 0; } /* PyObjectCall2Args */ static CYTHON_UNUSED PyObject* __Pyx_PyObject_Call2Args(PyObject* function, PyObject* arg1, PyObject* arg2) { PyObject *args, *result = NULL; #if CYTHON_FAST_PYCALL if (PyFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyFunction_FastCall(function, args, 2); } #endif #if CYTHON_FAST_PYCCALL if (__Pyx_PyFastCFunction_Check(function)) { PyObject *args[2] = {arg1, arg2}; return __Pyx_PyCFunction_FastCall(function, args, 2); } #endif args = PyTuple_New(2); if (unlikely(!args)) goto done; Py_INCREF(arg1); PyTuple_SET_ITEM(args, 0, arg1); Py_INCREF(arg2); PyTuple_SET_ITEM(args, 1, arg2); Py_INCREF(function); result = __Pyx_PyObject_Call(function, args, NULL); Py_DECREF(args); Py_DECREF(function); done: return result; } /* GetAttr */ static CYTHON_INLINE PyObject *__Pyx_GetAttr(PyObject *o, PyObject *n) { #if CYTHON_USE_TYPE_SLOTS #if PY_MAJOR_VERSION >= 3 if (likely(PyUnicode_Check(n))) #else if (likely(PyString_Check(n))) #endif return __Pyx_PyObject_GetAttrStr(o, n); #endif return PyObject_GetAttr(o, n); } /* HasAttr */ static CYTHON_INLINE int __Pyx_HasAttr(PyObject *o, PyObject *n) { PyObject *r; if (unlikely(!__Pyx_PyBaseString_Check(n))) { PyErr_SetString(PyExc_TypeError, "hasattr(): attribute name must be string"); return -1; } r = __Pyx_GetAttr(o, n); if (unlikely(!r)) { PyErr_Clear(); return 0; } else { Py_DECREF(r); return 1; } } /* ExtTypeTest */ static CYTHON_INLINE int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) { if (unlikely(!type)) { PyErr_SetString(PyExc_SystemError, "Missing type object"); return 0; } if (likely(__Pyx_TypeCheck(obj, type))) return 1; PyErr_Format(PyExc_TypeError, "Cannot convert %.200s to %.200s", Py_TYPE(obj)->tp_name, type->tp_name); return 0; } /* RaiseDoubleKeywords */ static void __Pyx_RaiseDoubleKeywordsError( const char* func_name, PyObject* kw_name) { PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION >= 3 "%s() got multiple values for keyword argument '%U'", func_name, kw_name); #else "%s() got multiple values for keyword argument '%s'", func_name, PyString_AsString(kw_name)); #endif } /* ParseKeywords */ static int __Pyx_ParseOptionalKeywords( PyObject *kwds, PyObject **argnames[], PyObject *kwds2, PyObject *values[], Py_ssize_t num_pos_args, const char* function_name) { PyObject *key = 0, *value = 0; Py_ssize_t pos = 0; PyObject*** name; PyObject*** first_kw_arg = argnames + num_pos_args; while (PyDict_Next(kwds, &pos, &key, &value)) { name = first_kw_arg; while (*name && (**name != key)) name++; if (*name) { values[name-argnames] = value; continue; } name = first_kw_arg; #if PY_MAJOR_VERSION < 3 if (likely(PyString_Check(key))) { while (*name) { if ((CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**name) == PyString_GET_SIZE(key)) && _PyString_Eq(**name, key)) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { if ((**argname == key) || ( (CYTHON_COMPILING_IN_PYPY || PyString_GET_SIZE(**argname) == PyString_GET_SIZE(key)) && _PyString_Eq(**argname, key))) { goto arg_passed_twice; } argname++; } } } else #endif if (likely(PyUnicode_Check(key))) { while (*name) { int cmp = (**name == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (__Pyx_PyUnicode_GET_LENGTH(**name) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : #endif PyUnicode_Compare(**name, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) { values[name-argnames] = value; break; } name++; } if (*name) continue; else { PyObject*** argname = argnames; while (argname != first_kw_arg) { int cmp = (**argname == key) ? 0 : #if !CYTHON_COMPILING_IN_PYPY && PY_MAJOR_VERSION >= 3 (__Pyx_PyUnicode_GET_LENGTH(**argname) != __Pyx_PyUnicode_GET_LENGTH(key)) ? 1 : #endif PyUnicode_Compare(**argname, key); if (cmp < 0 && unlikely(PyErr_Occurred())) goto bad; if (cmp == 0) goto arg_passed_twice; argname++; } } } else goto invalid_keyword_type; if (kwds2) { if (unlikely(PyDict_SetItem(kwds2, key, value))) goto bad; } else { goto invalid_keyword; } } return 0; arg_passed_twice: __Pyx_RaiseDoubleKeywordsError(function_name, key); goto bad; invalid_keyword_type: PyErr_Format(PyExc_TypeError, "%.200s() keywords must be strings", function_name); goto bad; invalid_keyword: PyErr_Format(PyExc_TypeError, #if PY_MAJOR_VERSION < 3 "%.200s() got an unexpected keyword argument '%.200s'", function_name, PyString_AsString(key)); #else "%s() got an unexpected keyword argument '%U'", function_name, key); #endif bad: return -1; } /* PyIntCompare */ static CYTHON_INLINE PyObject* __Pyx_PyInt_EqObjC(PyObject *op1, PyObject *op2, CYTHON_UNUSED long intval, CYTHON_UNUSED long inplace) { if (op1 == op2) { Py_RETURN_TRUE; } #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(op1))) { const long b = intval; long a = PyInt_AS_LONG(op1); if (a == b) Py_RETURN_TRUE; else Py_RETURN_FALSE; } #endif #if CYTHON_USE_PYLONG_INTERNALS if (likely(PyLong_CheckExact(op1))) { int unequal; unsigned long uintval; Py_ssize_t size = Py_SIZE(op1); const digit* digits = ((PyLongObject*)op1)->ob_digit; if (intval == 0) { if (size == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; } else if (intval < 0) { if (size >= 0) Py_RETURN_FALSE; intval = -intval; size = -size; } else { if (size <= 0) Py_RETURN_FALSE; } uintval = (unsigned long) intval; #if PyLong_SHIFT * 4 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 4)) { unequal = (size != 5) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[4] != ((uintval >> (4 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 3 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 3)) { unequal = (size != 4) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[3] != ((uintval >> (3 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 2 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 2)) { unequal = (size != 3) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)) | (digits[2] != ((uintval >> (2 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif #if PyLong_SHIFT * 1 < SIZEOF_LONG*8 if (uintval >> (PyLong_SHIFT * 1)) { unequal = (size != 2) || (digits[0] != (uintval & (unsigned long) PyLong_MASK)) | (digits[1] != ((uintval >> (1 * PyLong_SHIFT)) & (unsigned long) PyLong_MASK)); } else #endif unequal = (size != 1) || (((unsigned long) digits[0]) != (uintval & (unsigned long) PyLong_MASK)); if (unequal == 0) Py_RETURN_TRUE; else Py_RETURN_FALSE; } #endif if (PyFloat_CheckExact(op1)) { const long b = intval; double a = PyFloat_AS_DOUBLE(op1); if ((double)a == (double)b) Py_RETURN_TRUE; else Py_RETURN_FALSE; } return ( PyObject_RichCompare(op1, op2, Py_EQ)); } /* GetItemInt */ static PyObject *__Pyx_GetItemInt_Generic(PyObject *o, PyObject* j) { PyObject *r; if (!j) return NULL; r = PyObject_GetItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_List_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyList_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyList_GET_SIZE(o)))) { PyObject *r = PyList_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Tuple_Fast(PyObject *o, Py_ssize_t i, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS Py_ssize_t wrapped_i = i; if (wraparound & unlikely(i < 0)) { wrapped_i += PyTuple_GET_SIZE(o); } if ((!boundscheck) || likely(__Pyx_is_valid_index(wrapped_i, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, wrapped_i); Py_INCREF(r); return r; } return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); #else return PySequence_GetItem(o, i); #endif } static CYTHON_INLINE PyObject *__Pyx_GetItemInt_Fast(PyObject *o, Py_ssize_t i, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyList_GET_SIZE(o); if ((!boundscheck) || (likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o))))) { PyObject *r = PyList_GET_ITEM(o, n); Py_INCREF(r); return r; } } else if (PyTuple_CheckExact(o)) { Py_ssize_t n = ((!wraparound) | likely(i >= 0)) ? i : i + PyTuple_GET_SIZE(o); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyTuple_GET_SIZE(o)))) { PyObject *r = PyTuple_GET_ITEM(o, n); Py_INCREF(r); return r; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return NULL; PyErr_Clear(); } } return m->sq_item(o, i); } } #else if (is_list || PySequence_Check(o)) { return PySequence_GetItem(o, i); } #endif return __Pyx_GetItemInt_Generic(o, PyInt_FromSsize_t(i)); } /* SetItemInt */ static int __Pyx_SetItemInt_Generic(PyObject *o, PyObject *j, PyObject *v) { int r; if (!j) return -1; r = PyObject_SetItem(o, j, v); Py_DECREF(j); return r; } static CYTHON_INLINE int __Pyx_SetItemInt_Fast(PyObject *o, Py_ssize_t i, PyObject *v, int is_list, CYTHON_NCP_UNUSED int wraparound, CYTHON_NCP_UNUSED int boundscheck) { #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS && CYTHON_USE_TYPE_SLOTS if (is_list || PyList_CheckExact(o)) { Py_ssize_t n = (!wraparound) ? i : ((likely(i >= 0)) ? i : i + PyList_GET_SIZE(o)); if ((!boundscheck) || likely(__Pyx_is_valid_index(n, PyList_GET_SIZE(o)))) { PyObject* old = PyList_GET_ITEM(o, n); Py_INCREF(v); PyList_SET_ITEM(o, n, v); Py_DECREF(old); return 1; } } else { PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_ass_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return -1; PyErr_Clear(); } } return m->sq_ass_item(o, i, v); } } #else #if CYTHON_COMPILING_IN_PYPY if (is_list || (PySequence_Check(o) && !PyDict_Check(o))) #else if (is_list || PySequence_Check(o)) #endif { return PySequence_SetItem(o, i, v); } #endif return __Pyx_SetItemInt_Generic(o, PyInt_FromSsize_t(i), v); } /* DelItemInt */ static int __Pyx_DelItem_Generic(PyObject *o, PyObject *j) { int r; if (!j) return -1; r = PyObject_DelItem(o, j); Py_DECREF(j); return r; } static CYTHON_INLINE int __Pyx_DelItemInt_Fast(PyObject *o, Py_ssize_t i, CYTHON_UNUSED int is_list, CYTHON_NCP_UNUSED int wraparound) { #if !CYTHON_USE_TYPE_SLOTS if (is_list || PySequence_Check(o)) { return PySequence_DelItem(o, i); } #else PySequenceMethods *m = Py_TYPE(o)->tp_as_sequence; if (likely(m && m->sq_ass_item)) { if (wraparound && unlikely(i < 0) && likely(m->sq_length)) { Py_ssize_t l = m->sq_length(o); if (likely(l >= 0)) { i += l; } else { if (!PyErr_ExceptionMatches(PyExc_OverflowError)) return -1; PyErr_Clear(); } } return m->sq_ass_item(o, i, (PyObject *)NULL); } #endif return __Pyx_DelItem_Generic(o, PyInt_FromSsize_t(i)); } /* WriteUnraisableException */ static void __Pyx_WriteUnraisable(const char *name, CYTHON_UNUSED int clineno, CYTHON_UNUSED int lineno, CYTHON_UNUSED const char *filename, int full_traceback, CYTHON_UNUSED int nogil) { PyObject *old_exc, *old_val, *old_tb; PyObject *ctx; __Pyx_PyThreadState_declare #ifdef WITH_THREAD PyGILState_STATE state; if (nogil) state = PyGILState_Ensure(); #ifdef _MSC_VER else state = (PyGILState_STATE)-1; #endif #endif __Pyx_PyThreadState_assign __Pyx_ErrFetch(&old_exc, &old_val, &old_tb); if (full_traceback) { Py_XINCREF(old_exc); Py_XINCREF(old_val); Py_XINCREF(old_tb); __Pyx_ErrRestore(old_exc, old_val, old_tb); PyErr_PrintEx(1); } #if PY_MAJOR_VERSION < 3 ctx = PyString_FromString(name); #else ctx = PyUnicode_FromString(name); #endif __Pyx_ErrRestore(old_exc, old_val, old_tb); if (!ctx) { PyErr_WriteUnraisable(Py_None); } else { PyErr_WriteUnraisable(ctx); Py_DECREF(ctx); } #ifdef WITH_THREAD if (nogil) PyGILState_Release(state); #endif } /* PyObject_GenericGetAttrNoDict */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject *__Pyx_RaiseGenericGetAttributeError(PyTypeObject *tp, PyObject *attr_name) { PyErr_Format(PyExc_AttributeError, #if PY_MAJOR_VERSION >= 3 "'%.50s' object has no attribute '%U'", tp->tp_name, attr_name); #else "'%.50s' object has no attribute '%.400s'", tp->tp_name, PyString_AS_STRING(attr_name)); #endif return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyObject_GenericGetAttrNoDict(PyObject* obj, PyObject* attr_name) { PyObject *descr; PyTypeObject *tp = Py_TYPE(obj); if (unlikely(!PyString_Check(attr_name))) { return PyObject_GenericGetAttr(obj, attr_name); } assert(!tp->tp_dictoffset); descr = _PyType_Lookup(tp, attr_name); if (unlikely(!descr)) { return __Pyx_RaiseGenericGetAttributeError(tp, attr_name); } Py_INCREF(descr); #if PY_MAJOR_VERSION < 3 if (likely(PyType_HasFeature(Py_TYPE(descr), Py_TPFLAGS_HAVE_CLASS))) #endif { descrgetfunc f = Py_TYPE(descr)->tp_descr_get; if (unlikely(f)) { PyObject *res = f(descr, obj, (PyObject *)tp); Py_DECREF(descr); return res; } } return descr; } #endif /* PyObject_GenericGetAttr */ #if CYTHON_USE_TYPE_SLOTS && CYTHON_USE_PYTYPE_LOOKUP && PY_VERSION_HEX < 0x03070000 static PyObject* __Pyx_PyObject_GenericGetAttr(PyObject* obj, PyObject* attr_name) { if (unlikely(Py_TYPE(obj)->tp_dictoffset)) { return PyObject_GenericGetAttr(obj, attr_name); } return __Pyx_PyObject_GenericGetAttrNoDict(obj, attr_name); } #endif /* SetVTable */ static int __Pyx_SetVtable(PyObject *dict, void *vtable) { #if PY_VERSION_HEX >= 0x02070000 PyObject *ob = PyCapsule_New(vtable, 0, 0); #else PyObject *ob = PyCObject_FromVoidPtr(vtable, 0); #endif if (!ob) goto bad; if (PyDict_SetItem(dict, __pyx_n_s_pyx_vtable, ob) < 0) goto bad; Py_DECREF(ob); return 0; bad: Py_XDECREF(ob); return -1; } /* PyErrExceptionMatches */ #if CYTHON_FAST_THREAD_STATE static int __Pyx_PyErr_ExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; icurexc_type; if (exc_type == err) return 1; if (unlikely(!exc_type)) return 0; if (unlikely(PyTuple_Check(err))) return __Pyx_PyErr_ExceptionMatchesTuple(exc_type, err); return __Pyx_PyErr_GivenExceptionMatches(exc_type, err); } #endif /* PyObjectGetAttrStrNoError */ static void __Pyx_PyObject_GetAttrStr_ClearAttributeError(void) { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign if (likely(__Pyx_PyErr_ExceptionMatches(PyExc_AttributeError))) __Pyx_PyErr_Clear(); } static CYTHON_INLINE PyObject* __Pyx_PyObject_GetAttrStrNoError(PyObject* obj, PyObject* attr_name) { PyObject *result; #if CYTHON_COMPILING_IN_CPYTHON && CYTHON_USE_TYPE_SLOTS && PY_VERSION_HEX >= 0x030700B1 PyTypeObject* tp = Py_TYPE(obj); if (likely(tp->tp_getattro == PyObject_GenericGetAttr)) { return _PyObject_GenericGetAttrWithDict(obj, attr_name, NULL, 1); } #endif result = __Pyx_PyObject_GetAttrStr(obj, attr_name); if (unlikely(!result)) { __Pyx_PyObject_GetAttrStr_ClearAttributeError(); } return result; } /* SetupReduce */ static int __Pyx_setup_reduce_is_named(PyObject* meth, PyObject* name) { int ret; PyObject *name_attr; name_attr = __Pyx_PyObject_GetAttrStr(meth, __pyx_n_s_name); if (likely(name_attr)) { ret = PyObject_RichCompareBool(name_attr, name, Py_EQ); } else { ret = -1; } if (unlikely(ret < 0)) { PyErr_Clear(); ret = 0; } Py_XDECREF(name_attr); return ret; } static int __Pyx_setup_reduce(PyObject* type_obj) { int ret = 0; PyObject *object_reduce = NULL; PyObject *object_reduce_ex = NULL; PyObject *reduce = NULL; PyObject *reduce_ex = NULL; PyObject *reduce_cython = NULL; PyObject *setstate = NULL; PyObject *setstate_cython = NULL; #if CYTHON_USE_PYTYPE_LOOKUP if (_PyType_Lookup((PyTypeObject*)type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; #else if (PyObject_HasAttr(type_obj, __pyx_n_s_getstate)) goto __PYX_GOOD; #endif #if CYTHON_USE_PYTYPE_LOOKUP object_reduce_ex = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #else object_reduce_ex = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce_ex); if (!object_reduce_ex) goto __PYX_BAD; #endif reduce_ex = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce_ex); if (unlikely(!reduce_ex)) goto __PYX_BAD; if (reduce_ex == object_reduce_ex) { #if CYTHON_USE_PYTYPE_LOOKUP object_reduce = _PyType_Lookup(&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; #else object_reduce = __Pyx_PyObject_GetAttrStr((PyObject*)&PyBaseObject_Type, __pyx_n_s_reduce); if (!object_reduce) goto __PYX_BAD; #endif reduce = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_reduce); if (unlikely(!reduce)) goto __PYX_BAD; if (reduce == object_reduce || __Pyx_setup_reduce_is_named(reduce, __pyx_n_s_reduce_cython)) { reduce_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_reduce_cython); if (likely(reduce_cython)) { ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce, reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_reduce_cython); if (unlikely(ret < 0)) goto __PYX_BAD; } else if (reduce == object_reduce || PyErr_Occurred()) { goto __PYX_BAD; } setstate = __Pyx_PyObject_GetAttrStr(type_obj, __pyx_n_s_setstate); if (!setstate) PyErr_Clear(); if (!setstate || __Pyx_setup_reduce_is_named(setstate, __pyx_n_s_setstate_cython)) { setstate_cython = __Pyx_PyObject_GetAttrStrNoError(type_obj, __pyx_n_s_setstate_cython); if (likely(setstate_cython)) { ret = PyDict_SetItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate, setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; ret = PyDict_DelItem(((PyTypeObject*)type_obj)->tp_dict, __pyx_n_s_setstate_cython); if (unlikely(ret < 0)) goto __PYX_BAD; } else if (!setstate || PyErr_Occurred()) { goto __PYX_BAD; } } PyType_Modified((PyTypeObject*)type_obj); } } goto __PYX_GOOD; __PYX_BAD: if (!PyErr_Occurred()) PyErr_Format(PyExc_RuntimeError, "Unable to initialize pickling for %s", ((PyTypeObject*)type_obj)->tp_name); ret = -1; __PYX_GOOD: #if !CYTHON_USE_PYTYPE_LOOKUP Py_XDECREF(object_reduce); Py_XDECREF(object_reduce_ex); #endif Py_XDECREF(reduce); Py_XDECREF(reduce_ex); Py_XDECREF(reduce_cython); Py_XDECREF(setstate); Py_XDECREF(setstate_cython); return ret; } /* TypeImport */ #ifndef __PYX_HAVE_RT_ImportType #define __PYX_HAVE_RT_ImportType static PyTypeObject *__Pyx_ImportType(PyObject *module, const char *module_name, const char *class_name, size_t size, enum __Pyx_ImportType_CheckSize check_size) { PyObject *result = 0; char warning[200]; Py_ssize_t basicsize; #ifdef Py_LIMITED_API PyObject *py_basicsize; #endif result = PyObject_GetAttrString(module, class_name); if (!result) goto bad; if (!PyType_Check(result)) { PyErr_Format(PyExc_TypeError, "%.200s.%.200s is not a type object", module_name, class_name); goto bad; } #ifndef Py_LIMITED_API basicsize = ((PyTypeObject *)result)->tp_basicsize; #else py_basicsize = PyObject_GetAttrString(result, "__basicsize__"); if (!py_basicsize) goto bad; basicsize = PyLong_AsSsize_t(py_basicsize); Py_DECREF(py_basicsize); py_basicsize = 0; if (basicsize == (Py_ssize_t)-1 && PyErr_Occurred()) goto bad; #endif if ((size_t)basicsize < size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } if (check_size == __Pyx_ImportType_CheckSize_Error && (size_t)basicsize != size) { PyErr_Format(PyExc_ValueError, "%.200s.%.200s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); goto bad; } else if (check_size == __Pyx_ImportType_CheckSize_Warn && (size_t)basicsize > size) { PyOS_snprintf(warning, sizeof(warning), "%s.%s size changed, may indicate binary incompatibility. " "Expected %zd from C header, got %zd from PyObject", module_name, class_name, size, basicsize); if (PyErr_WarnEx(NULL, warning, 0) < 0) goto bad; } return (PyTypeObject *)result; bad: Py_XDECREF(result); return NULL; } #endif /* CalculateMetaclass */ static PyObject *__Pyx_CalculateMetaclass(PyTypeObject *metaclass, PyObject *bases) { Py_ssize_t i, nbases = PyTuple_GET_SIZE(bases); for (i=0; i < nbases; i++) { PyTypeObject *tmptype; PyObject *tmp = PyTuple_GET_ITEM(bases, i); tmptype = Py_TYPE(tmp); #if PY_MAJOR_VERSION < 3 if (tmptype == &PyClass_Type) continue; #endif if (!metaclass) { metaclass = tmptype; continue; } if (PyType_IsSubtype(metaclass, tmptype)) continue; if (PyType_IsSubtype(tmptype, metaclass)) { metaclass = tmptype; continue; } PyErr_SetString(PyExc_TypeError, "metaclass conflict: " "the metaclass of a derived class " "must be a (non-strict) subclass " "of the metaclasses of all its bases"); return NULL; } if (!metaclass) { #if PY_MAJOR_VERSION < 3 metaclass = &PyClass_Type; #else metaclass = &PyType_Type; #endif } Py_INCREF((PyObject*) metaclass); return (PyObject*) metaclass; } /* Py3ClassCreate */ static PyObject *__Pyx_Py3MetaclassPrepare(PyObject *metaclass, PyObject *bases, PyObject *name, PyObject *qualname, PyObject *mkw, PyObject *modname, PyObject *doc) { PyObject *ns; if (metaclass) { PyObject *prep = __Pyx_PyObject_GetAttrStr(metaclass, __pyx_n_s_prepare); if (prep) { PyObject *pargs = PyTuple_Pack(2, name, bases); if (unlikely(!pargs)) { Py_DECREF(prep); return NULL; } ns = PyObject_Call(prep, pargs, mkw); Py_DECREF(prep); Py_DECREF(pargs); } else { if (unlikely(!PyErr_ExceptionMatches(PyExc_AttributeError))) return NULL; PyErr_Clear(); ns = PyDict_New(); } } else { ns = PyDict_New(); } if (unlikely(!ns)) return NULL; if (unlikely(PyObject_SetItem(ns, __pyx_n_s_module, modname) < 0)) goto bad; if (unlikely(PyObject_SetItem(ns, __pyx_n_s_qualname, qualname) < 0)) goto bad; if (unlikely(doc && PyObject_SetItem(ns, __pyx_n_s_doc, doc) < 0)) goto bad; return ns; bad: Py_DECREF(ns); return NULL; } static PyObject *__Pyx_Py3ClassCreate(PyObject *metaclass, PyObject *name, PyObject *bases, PyObject *dict, PyObject *mkw, int calculate_metaclass, int allow_py2_metaclass) { PyObject *result, *margs; PyObject *owned_metaclass = NULL; if (allow_py2_metaclass) { owned_metaclass = PyObject_GetItem(dict, __pyx_n_s_metaclass); if (owned_metaclass) { metaclass = owned_metaclass; } else if (likely(PyErr_ExceptionMatches(PyExc_KeyError))) { PyErr_Clear(); } else { return NULL; } } if (calculate_metaclass && (!metaclass || PyType_Check(metaclass))) { metaclass = __Pyx_CalculateMetaclass((PyTypeObject*) metaclass, bases); Py_XDECREF(owned_metaclass); if (unlikely(!metaclass)) return NULL; owned_metaclass = metaclass; } margs = PyTuple_Pack(3, name, bases, dict); if (unlikely(!margs)) { result = NULL; } else { result = PyObject_Call(metaclass, margs, mkw); Py_DECREF(margs); } Py_XDECREF(owned_metaclass); return result; } /* CLineInTraceback */ #ifndef CYTHON_CLINE_IN_TRACEBACK static int __Pyx_CLineForTraceback(CYTHON_NCP_UNUSED PyThreadState *tstate, int c_line) { PyObject *use_cline; PyObject *ptype, *pvalue, *ptraceback; #if CYTHON_COMPILING_IN_CPYTHON PyObject **cython_runtime_dict; #endif if (unlikely(!__pyx_cython_runtime)) { return c_line; } __Pyx_ErrFetchInState(tstate, &ptype, &pvalue, &ptraceback); #if CYTHON_COMPILING_IN_CPYTHON cython_runtime_dict = _PyObject_GetDictPtr(__pyx_cython_runtime); if (likely(cython_runtime_dict)) { __PYX_PY_DICT_LOOKUP_IF_MODIFIED( use_cline, *cython_runtime_dict, __Pyx_PyDict_GetItemStr(*cython_runtime_dict, __pyx_n_s_cline_in_traceback)) } else #endif { PyObject *use_cline_obj = __Pyx_PyObject_GetAttrStr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback); if (use_cline_obj) { use_cline = PyObject_Not(use_cline_obj) ? Py_False : Py_True; Py_DECREF(use_cline_obj); } else { PyErr_Clear(); use_cline = NULL; } } if (!use_cline) { c_line = 0; PyObject_SetAttr(__pyx_cython_runtime, __pyx_n_s_cline_in_traceback, Py_False); } else if (use_cline == Py_False || (use_cline != Py_True && PyObject_Not(use_cline) != 0)) { c_line = 0; } __Pyx_ErrRestoreInState(tstate, ptype, pvalue, ptraceback); return c_line; } #endif /* CodeObjectCache */ static int __pyx_bisect_code_objects(__Pyx_CodeObjectCacheEntry* entries, int count, int code_line) { int start = 0, mid = 0, end = count - 1; if (end >= 0 && code_line > entries[end].code_line) { return count; } while (start < end) { mid = start + (end - start) / 2; if (code_line < entries[mid].code_line) { end = mid; } else if (code_line > entries[mid].code_line) { start = mid + 1; } else { return mid; } } if (code_line <= entries[mid].code_line) { return mid; } else { return mid + 1; } } static PyCodeObject *__pyx_find_code_object(int code_line) { PyCodeObject* code_object; int pos; if (unlikely(!code_line) || unlikely(!__pyx_code_cache.entries)) { return NULL; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if (unlikely(pos >= __pyx_code_cache.count) || unlikely(__pyx_code_cache.entries[pos].code_line != code_line)) { return NULL; } code_object = __pyx_code_cache.entries[pos].code_object; Py_INCREF(code_object); return code_object; } static void __pyx_insert_code_object(int code_line, PyCodeObject* code_object) { int pos, i; __Pyx_CodeObjectCacheEntry* entries = __pyx_code_cache.entries; if (unlikely(!code_line)) { return; } if (unlikely(!entries)) { entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Malloc(64*sizeof(__Pyx_CodeObjectCacheEntry)); if (likely(entries)) { __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = 64; __pyx_code_cache.count = 1; entries[0].code_line = code_line; entries[0].code_object = code_object; Py_INCREF(code_object); } return; } pos = __pyx_bisect_code_objects(__pyx_code_cache.entries, __pyx_code_cache.count, code_line); if ((pos < __pyx_code_cache.count) && unlikely(__pyx_code_cache.entries[pos].code_line == code_line)) { PyCodeObject* tmp = entries[pos].code_object; entries[pos].code_object = code_object; Py_DECREF(tmp); return; } if (__pyx_code_cache.count == __pyx_code_cache.max_count) { int new_max = __pyx_code_cache.max_count + 64; entries = (__Pyx_CodeObjectCacheEntry*)PyMem_Realloc( __pyx_code_cache.entries, ((size_t)new_max) * sizeof(__Pyx_CodeObjectCacheEntry)); if (unlikely(!entries)) { return; } __pyx_code_cache.entries = entries; __pyx_code_cache.max_count = new_max; } for (i=__pyx_code_cache.count; i>pos; i--) { entries[i] = entries[i-1]; } entries[pos].code_line = code_line; entries[pos].code_object = code_object; __pyx_code_cache.count++; Py_INCREF(code_object); } /* AddTraceback */ #include "compile.h" #include "frameobject.h" #include "traceback.h" static PyCodeObject* __Pyx_CreateCodeObjectForTraceback( const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyObject *py_srcfile = 0; PyObject *py_funcname = 0; #if PY_MAJOR_VERSION < 3 py_srcfile = PyString_FromString(filename); #else py_srcfile = PyUnicode_FromString(filename); #endif if (!py_srcfile) goto bad; if (c_line) { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #else py_funcname = PyUnicode_FromFormat( "%s (%s:%d)", funcname, __pyx_cfilenm, c_line); #endif } else { #if PY_MAJOR_VERSION < 3 py_funcname = PyString_FromString(funcname); #else py_funcname = PyUnicode_FromString(funcname); #endif } if (!py_funcname) goto bad; py_code = __Pyx_PyCode_New( 0, 0, 0, 0, 0, __pyx_empty_bytes, /*PyObject *code,*/ __pyx_empty_tuple, /*PyObject *consts,*/ __pyx_empty_tuple, /*PyObject *names,*/ __pyx_empty_tuple, /*PyObject *varnames,*/ __pyx_empty_tuple, /*PyObject *freevars,*/ __pyx_empty_tuple, /*PyObject *cellvars,*/ py_srcfile, /*PyObject *filename,*/ py_funcname, /*PyObject *name,*/ py_line, __pyx_empty_bytes /*PyObject *lnotab*/ ); Py_DECREF(py_srcfile); Py_DECREF(py_funcname); return py_code; bad: Py_XDECREF(py_srcfile); Py_XDECREF(py_funcname); return NULL; } static void __Pyx_AddTraceback(const char *funcname, int c_line, int py_line, const char *filename) { PyCodeObject *py_code = 0; PyFrameObject *py_frame = 0; PyThreadState *tstate = __Pyx_PyThreadState_Current; if (c_line) { c_line = __Pyx_CLineForTraceback(tstate, c_line); } py_code = __pyx_find_code_object(c_line ? -c_line : py_line); if (!py_code) { py_code = __Pyx_CreateCodeObjectForTraceback( funcname, c_line, py_line, filename); if (!py_code) goto bad; __pyx_insert_code_object(c_line ? -c_line : py_line, py_code); } py_frame = PyFrame_New( tstate, /*PyThreadState *tstate,*/ py_code, /*PyCodeObject *code,*/ __pyx_d, /*PyObject *globals,*/ 0 /*PyObject *locals*/ ); if (!py_frame) goto bad; __Pyx_PyFrame_SetLineNumber(py_frame, py_line); PyTraceBack_Here(py_frame); bad: Py_XDECREF(py_code); Py_XDECREF(py_frame); } /* CIntFromPyVerify */ #define __PYX_VERIFY_RETURN_INT(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 0) #define __PYX_VERIFY_RETURN_INT_EXC(target_type, func_type, func_value)\ __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, 1) #define __PYX__VERIFY_RETURN_INT(target_type, func_type, func_value, exc)\ {\ func_type value = func_value;\ if (sizeof(target_type) < sizeof(func_type)) {\ if (unlikely(value != (func_type) (target_type) value)) {\ func_type zero = 0;\ if (exc && unlikely(value == (func_type)-1 && PyErr_Occurred()))\ return (target_type) -1;\ if (is_unsigned && unlikely(value < zero))\ goto raise_neg_overflow;\ else\ goto raise_overflow;\ }\ }\ return (target_type) value;\ } /* CIntFromPy */ static CYTHON_INLINE int __Pyx_PyInt_As_int(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const int neg_one = (int) -1, const_zero = (int) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(int) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(int, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (int) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case 1: __PYX_VERIFY_RETURN_INT(int, digit, digits[0]) case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 2 * PyLong_SHIFT) { return (int) (((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 3 * PyLong_SHIFT) { return (int) (((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) >= 4 * PyLong_SHIFT) { return (int) (((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (int) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(int) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (int) 0; case -1: __PYX_VERIFY_RETURN_INT(int, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(int, digit, +digits[0]) case -2: if (8 * sizeof(int) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) (((int)-1)*(((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 2: if (8 * sizeof(int) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { return (int) ((((((int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -3: if (8 * sizeof(int) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 3: if (8 * sizeof(int) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { return (int) ((((((((int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case -4: if (8 * sizeof(int) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) (((int)-1)*(((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; case 4: if (8 * sizeof(int) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(int, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(int) - 1 > 4 * PyLong_SHIFT) { return (int) ((((((((((int)digits[3]) << PyLong_SHIFT) | (int)digits[2]) << PyLong_SHIFT) | (int)digits[1]) << PyLong_SHIFT) | (int)digits[0]))); } } break; } #endif if (sizeof(int) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(int, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(int) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(int, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else int val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (int) -1; } } else { int val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (int) -1; val = __Pyx_PyInt_As_int(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to int"); return (int) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to int"); return (int) -1; } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_npy_bool(npy_bool value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const npy_bool neg_one = (npy_bool) -1, const_zero = (npy_bool) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(npy_bool) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(npy_bool) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(npy_bool) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(npy_bool) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(npy_bool) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(npy_bool), little, !is_unsigned); } } /* CIntToPy */ static CYTHON_INLINE PyObject* __Pyx_PyInt_From_long(long value) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const long neg_one = (long) -1, const_zero = (long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; if (is_unsigned) { if (sizeof(long) < sizeof(long)) { return PyInt_FromLong((long) value); } else if (sizeof(long) <= sizeof(unsigned long)) { return PyLong_FromUnsignedLong((unsigned long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { return PyLong_FromUnsignedLongLong((unsigned PY_LONG_LONG) value); #endif } } else { if (sizeof(long) <= sizeof(long)) { return PyInt_FromLong((long) value); #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { return PyLong_FromLongLong((PY_LONG_LONG) value); #endif } } { int one = 1; int little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&value; return _PyLong_FromByteArray(bytes, sizeof(long), little, !is_unsigned); } } /* CIntFromPy */ static CYTHON_INLINE long __Pyx_PyInt_As_long(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wconversion" #endif const long neg_one = (long) -1, const_zero = (long) 0; #ifdef __Pyx_HAS_GCC_DIAGNOSTIC #pragma GCC diagnostic pop #endif const int is_unsigned = neg_one > const_zero; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x))) { if (sizeof(long) < sizeof(long)) { __PYX_VERIFY_RETURN_INT(long, long, PyInt_AS_LONG(x)) } else { long val = PyInt_AS_LONG(x); if (is_unsigned && unlikely(val < 0)) { goto raise_neg_overflow; } return (long) val; } } else #endif if (likely(PyLong_Check(x))) { if (is_unsigned) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case 1: __PYX_VERIFY_RETURN_INT(long, digit, digits[0]) case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 2 * PyLong_SHIFT) { return (long) (((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 3 * PyLong_SHIFT) { return (long) (((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) >= 4 * PyLong_SHIFT) { return (long) (((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0])); } } break; } #endif #if CYTHON_COMPILING_IN_CPYTHON if (unlikely(Py_SIZE(x) < 0)) { goto raise_neg_overflow; } #else { int result = PyObject_RichCompareBool(x, Py_False, Py_LT); if (unlikely(result < 0)) return (long) -1; if (unlikely(result == 1)) goto raise_neg_overflow; } #endif if (sizeof(long) <= sizeof(unsigned long)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned long, PyLong_AsUnsignedLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(unsigned PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, unsigned PY_LONG_LONG, PyLong_AsUnsignedLongLong(x)) #endif } } else { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)x)->ob_digit; switch (Py_SIZE(x)) { case 0: return (long) 0; case -1: __PYX_VERIFY_RETURN_INT(long, sdigit, (sdigit) (-(sdigit)digits[0])) case 1: __PYX_VERIFY_RETURN_INT(long, digit, +digits[0]) case -2: if (8 * sizeof(long) - 1 > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) (((long)-1)*(((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 2: if (8 * sizeof(long) > 1 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 2 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { return (long) ((((((long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -3: if (8 * sizeof(long) - 1 > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 3: if (8 * sizeof(long) > 2 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 3 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { return (long) ((((((((long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case -4: if (8 * sizeof(long) - 1 > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, long, -(long) (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) (((long)-1)*(((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; case 4: if (8 * sizeof(long) > 3 * PyLong_SHIFT) { if (8 * sizeof(unsigned long) > 4 * PyLong_SHIFT) { __PYX_VERIFY_RETURN_INT(long, unsigned long, (((((((((unsigned long)digits[3]) << PyLong_SHIFT) | (unsigned long)digits[2]) << PyLong_SHIFT) | (unsigned long)digits[1]) << PyLong_SHIFT) | (unsigned long)digits[0]))) } else if (8 * sizeof(long) - 1 > 4 * PyLong_SHIFT) { return (long) ((((((((((long)digits[3]) << PyLong_SHIFT) | (long)digits[2]) << PyLong_SHIFT) | (long)digits[1]) << PyLong_SHIFT) | (long)digits[0]))); } } break; } #endif if (sizeof(long) <= sizeof(long)) { __PYX_VERIFY_RETURN_INT_EXC(long, long, PyLong_AsLong(x)) #ifdef HAVE_LONG_LONG } else if (sizeof(long) <= sizeof(PY_LONG_LONG)) { __PYX_VERIFY_RETURN_INT_EXC(long, PY_LONG_LONG, PyLong_AsLongLong(x)) #endif } } { #if CYTHON_COMPILING_IN_PYPY && !defined(_PyLong_AsByteArray) PyErr_SetString(PyExc_RuntimeError, "_PyLong_AsByteArray() not available in PyPy, cannot convert large numbers"); #else long val; PyObject *v = __Pyx_PyNumber_IntOrLong(x); #if PY_MAJOR_VERSION < 3 if (likely(v) && !PyLong_Check(v)) { PyObject *tmp = v; v = PyNumber_Long(tmp); Py_DECREF(tmp); } #endif if (likely(v)) { int one = 1; int is_little = (int)*(unsigned char *)&one; unsigned char *bytes = (unsigned char *)&val; int ret = _PyLong_AsByteArray((PyLongObject *)v, bytes, sizeof(val), is_little, !is_unsigned); Py_DECREF(v); if (likely(!ret)) return val; } #endif return (long) -1; } } else { long val; PyObject *tmp = __Pyx_PyNumber_IntOrLong(x); if (!tmp) return (long) -1; val = __Pyx_PyInt_As_long(tmp); Py_DECREF(tmp); return val; } raise_overflow: PyErr_SetString(PyExc_OverflowError, "value too large to convert to long"); return (long) -1; raise_neg_overflow: PyErr_SetString(PyExc_OverflowError, "can't convert negative value to long"); return (long) -1; } /* FastTypeChecks */ #if CYTHON_COMPILING_IN_CPYTHON static int __Pyx_InBases(PyTypeObject *a, PyTypeObject *b) { while (a) { a = a->tp_base; if (a == b) return 1; } return b == &PyBaseObject_Type; } static CYTHON_INLINE int __Pyx_IsSubtype(PyTypeObject *a, PyTypeObject *b) { PyObject *mro; if (a == b) return 1; mro = a->tp_mro; if (likely(mro)) { Py_ssize_t i, n; n = PyTuple_GET_SIZE(mro); for (i = 0; i < n; i++) { if (PyTuple_GET_ITEM(mro, i) == (PyObject *)b) return 1; } return 0; } return __Pyx_InBases(a, b); } #if PY_MAJOR_VERSION == 2 static int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject* exc_type2) { PyObject *exception, *value, *tb; int res; __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign __Pyx_ErrFetch(&exception, &value, &tb); res = exc_type1 ? PyObject_IsSubclass(err, exc_type1) : 0; if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } if (!res) { res = PyObject_IsSubclass(err, exc_type2); if (unlikely(res == -1)) { PyErr_WriteUnraisable(err); res = 0; } } __Pyx_ErrRestore(exception, value, tb); return res; } #else static CYTHON_INLINE int __Pyx_inner_PyErr_GivenExceptionMatches2(PyObject *err, PyObject* exc_type1, PyObject *exc_type2) { int res = exc_type1 ? __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type1) : 0; if (!res) { res = __Pyx_IsSubtype((PyTypeObject*)err, (PyTypeObject*)exc_type2); } return res; } #endif static int __Pyx_PyErr_GivenExceptionMatchesTuple(PyObject *exc_type, PyObject *tuple) { Py_ssize_t i, n; assert(PyExceptionClass_Check(exc_type)); n = PyTuple_GET_SIZE(tuple); #if PY_MAJOR_VERSION >= 3 for (i=0; ip) { #if PY_MAJOR_VERSION < 3 if (t->is_unicode) { *t->p = PyUnicode_DecodeUTF8(t->s, t->n - 1, NULL); } else if (t->intern) { *t->p = PyString_InternFromString(t->s); } else { *t->p = PyString_FromStringAndSize(t->s, t->n - 1); } #else if (t->is_unicode | t->is_str) { if (t->intern) { *t->p = PyUnicode_InternFromString(t->s); } else if (t->encoding) { *t->p = PyUnicode_Decode(t->s, t->n - 1, t->encoding, NULL); } else { *t->p = PyUnicode_FromStringAndSize(t->s, t->n - 1); } } else { *t->p = PyBytes_FromStringAndSize(t->s, t->n - 1); } #endif if (!*t->p) return -1; if (PyObject_Hash(*t->p) == -1) return -1; ++t; } return 0; } static CYTHON_INLINE PyObject* __Pyx_PyUnicode_FromString(const char* c_str) { return __Pyx_PyUnicode_FromStringAndSize(c_str, (Py_ssize_t)strlen(c_str)); } static CYTHON_INLINE const char* __Pyx_PyObject_AsString(PyObject* o) { Py_ssize_t ignore; return __Pyx_PyObject_AsStringAndSize(o, &ignore); } #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT #if !CYTHON_PEP393_ENABLED static const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { char* defenc_c; PyObject* defenc = _PyUnicode_AsDefaultEncodedString(o, NULL); if (!defenc) return NULL; defenc_c = PyBytes_AS_STRING(defenc); #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII { char* end = defenc_c + PyBytes_GET_SIZE(defenc); char* c; for (c = defenc_c; c < end; c++) { if ((unsigned char) (*c) >= 128) { PyUnicode_AsASCIIString(o); return NULL; } } } #endif *length = PyBytes_GET_SIZE(defenc); return defenc_c; } #else static CYTHON_INLINE const char* __Pyx_PyUnicode_AsStringAndSize(PyObject* o, Py_ssize_t *length) { if (unlikely(__Pyx_PyUnicode_READY(o) == -1)) return NULL; #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII if (likely(PyUnicode_IS_ASCII(o))) { *length = PyUnicode_GET_LENGTH(o); return PyUnicode_AsUTF8(o); } else { PyUnicode_AsASCIIString(o); return NULL; } #else return PyUnicode_AsUTF8AndSize(o, length); #endif } #endif #endif static CYTHON_INLINE const char* __Pyx_PyObject_AsStringAndSize(PyObject* o, Py_ssize_t *length) { #if __PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT if ( #if PY_MAJOR_VERSION < 3 && __PYX_DEFAULT_STRING_ENCODING_IS_ASCII __Pyx_sys_getdefaultencoding_not_ascii && #endif PyUnicode_Check(o)) { return __Pyx_PyUnicode_AsStringAndSize(o, length); } else #endif #if (!CYTHON_COMPILING_IN_PYPY) || (defined(PyByteArray_AS_STRING) && defined(PyByteArray_GET_SIZE)) if (PyByteArray_Check(o)) { *length = PyByteArray_GET_SIZE(o); return PyByteArray_AS_STRING(o); } else #endif { char* result; int r = PyBytes_AsStringAndSize(o, &result, length); if (unlikely(r < 0)) { return NULL; } else { return result; } } } static CYTHON_INLINE int __Pyx_PyObject_IsTrue(PyObject* x) { int is_true = x == Py_True; if (is_true | (x == Py_False) | (x == Py_None)) return is_true; else return PyObject_IsTrue(x); } static CYTHON_INLINE int __Pyx_PyObject_IsTrueAndDecref(PyObject* x) { int retval; if (unlikely(!x)) return -1; retval = __Pyx_PyObject_IsTrue(x); Py_DECREF(x); return retval; } static PyObject* __Pyx_PyNumber_IntOrLongWrongResultType(PyObject* result, const char* type_name) { #if PY_MAJOR_VERSION >= 3 if (PyLong_Check(result)) { if (PyErr_WarnFormat(PyExc_DeprecationWarning, 1, "__int__ returned non-int (type %.200s). " "The ability to return an instance of a strict subclass of int " "is deprecated, and may be removed in a future version of Python.", Py_TYPE(result)->tp_name)) { Py_DECREF(result); return NULL; } return result; } #endif PyErr_Format(PyExc_TypeError, "__%.4s__ returned non-%.4s (type %.200s)", type_name, type_name, Py_TYPE(result)->tp_name); Py_DECREF(result); return NULL; } static CYTHON_INLINE PyObject* __Pyx_PyNumber_IntOrLong(PyObject* x) { #if CYTHON_USE_TYPE_SLOTS PyNumberMethods *m; #endif const char *name = NULL; PyObject *res = NULL; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_Check(x) || PyLong_Check(x))) #else if (likely(PyLong_Check(x))) #endif return __Pyx_NewRef(x); #if CYTHON_USE_TYPE_SLOTS m = Py_TYPE(x)->tp_as_number; #if PY_MAJOR_VERSION < 3 if (m && m->nb_int) { name = "int"; res = m->nb_int(x); } else if (m && m->nb_long) { name = "long"; res = m->nb_long(x); } #else if (likely(m && m->nb_int)) { name = "int"; res = m->nb_int(x); } #endif #else if (!PyBytes_CheckExact(x) && !PyUnicode_CheckExact(x)) { res = PyNumber_Int(x); } #endif if (likely(res)) { #if PY_MAJOR_VERSION < 3 if (unlikely(!PyInt_Check(res) && !PyLong_Check(res))) { #else if (unlikely(!PyLong_CheckExact(res))) { #endif return __Pyx_PyNumber_IntOrLongWrongResultType(res, name); } } else if (!PyErr_Occurred()) { PyErr_SetString(PyExc_TypeError, "an integer is required"); } return res; } static CYTHON_INLINE Py_ssize_t __Pyx_PyIndex_AsSsize_t(PyObject* b) { Py_ssize_t ival; PyObject *x; #if PY_MAJOR_VERSION < 3 if (likely(PyInt_CheckExact(b))) { if (sizeof(Py_ssize_t) >= sizeof(long)) return PyInt_AS_LONG(b); else return PyInt_AsSsize_t(b); } #endif if (likely(PyLong_CheckExact(b))) { #if CYTHON_USE_PYLONG_INTERNALS const digit* digits = ((PyLongObject*)b)->ob_digit; const Py_ssize_t size = Py_SIZE(b); if (likely(__Pyx_sst_abs(size) <= 1)) { ival = likely(size) ? digits[0] : 0; if (size == -1) ival = -ival; return ival; } else { switch (size) { case 2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return (Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -2: if (8 * sizeof(Py_ssize_t) > 2 * PyLong_SHIFT) { return -(Py_ssize_t) (((((size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return (Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -3: if (8 * sizeof(Py_ssize_t) > 3 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case 4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return (Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; case -4: if (8 * sizeof(Py_ssize_t) > 4 * PyLong_SHIFT) { return -(Py_ssize_t) (((((((((size_t)digits[3]) << PyLong_SHIFT) | (size_t)digits[2]) << PyLong_SHIFT) | (size_t)digits[1]) << PyLong_SHIFT) | (size_t)digits[0])); } break; } } #endif return PyLong_AsSsize_t(b); } x = PyNumber_Index(b); if (!x) return -1; ival = PyInt_AsSsize_t(x); Py_DECREF(x); return ival; } static CYTHON_INLINE PyObject * __Pyx_PyBool_FromLong(long b) { return b ? __Pyx_NewRef(Py_True) : __Pyx_NewRef(Py_False); } static CYTHON_INLINE PyObject * __Pyx_PyInt_FromSize_t(size_t ival) { return PyInt_FromSize_t(ival); } #endif /* Py_PYTHON_H */ ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/_region_filter.pyx0000664000175000017500000004276300000000000017717 0ustar00jjleejjleecdef extern from "stdio.h": pass cdef extern from "stdlib.h": pass cimport c_numpy from c_numpy cimport npy_bool cimport c_python c_numpy.import_array() ctypedef int Py_ssize_t class NotYetImplemented(Exception): pass class RegionFilterException(Exception): pass cdef struct Metric: double x0 double y0 double g_x double g_y cdef int MetricSetOrigin(Metric *m, double x0, double y0): m.x0 = x0 m.y0 = y0 cdef struct _RegionContext: int (*update_metric)(Metric *m) cdef class RegionContext: cdef _RegionContext c def __init__(self): pass cdef set_update_func(self, int (*update_metric)(Metric *m)): self.c.update_metric = update_metric cdef int _update_metric_default(Metric *m): m.g_x = 1. m.g_y = 1. cdef int _update_metric_wcs(Metric *m): cdef double theta theta = m.y0 / 180. * 3.1415926; m.g_x = cos(theta) m.g_y = 1. cdef RegionContext metric_wcs metric_wcs = RegionContext() metric_wcs.set_update_func(_update_metric_wcs) class BaseClassInitException(Exception): pass cdef class RegionBase: cdef Metric m cdef RegionContext c def __init__(self): raise BaseClassInitException() cdef update_metric(self): if self.c: self.c.c.update_metric(&(self.m)) else: _update_metric_default(&(self.m)) def set_context(self, RegionContext cnt): self.c = cnt self.update_metric() cdef metric_set_origin(self, double xc, double yc, RegionContext cnt): MetricSetOrigin(&(self.m), xc, yc) if cnt: self.set_context(cnt) else: self.update_metric() def __invert__(self): return RegionNot(self) def __and__(self, RegionBase o): return RegionAnd(self, o) def __or__(self, RegionBase o): return RegionOr(self, o) cdef npy_bool _inside(self, double x, double y): return (0) def mask(self, img_or_shape): """ Create a mask ( a 2-d image whose pixel value is 1 if the pixel is inside the filter, otherwise 0). It takes a single argument which is numpy 2d array (or any python object with *shape* attribute) or a tuple of two integer representing the image shape. """ cdef int l, nx, ny if hasattr(img_or_shape, "shape"): shape = img_or_shape.shape elif c_python.PySequence_Check(img_or_shape): shape = img_or_shape else: raise RegionFilterException("the inut needs to be a numpy 2-d array" " or a tuple of two integers") if c_python.PySequence_Length(shape) != 2: raise RegionFilterException("shape of the input image must be 2d: " "%s is given" % (str(shape))) ny = c_python.PySequence_GetItem(shape, 0) nx = c_python.PySequence_GetItem(shape, 1) return self._mask(nx, ny) cdef c_numpy.ndarray _mask(self, c_numpy.npy_intp nx, c_numpy.npy_intp ny): cdef c_numpy.npy_intp ny_nx[2] cdef c_numpy.ndarray ra cdef npy_bool *rd cdef int iy, ix ny_nx[0] = ny ny_nx[1] = nx ra = c_numpy.PyArray_EMPTY(2, ny_nx, c_numpy.NPY_BOOL, 0) rd = c_numpy.PyArray_DATA(ra) for iy from 0 <= iy < ny: for ix from 0 <= ix < nx: #rd[iy*nx + ix] = self._inside(i, j) # altenatively more optimized #rd[0] = self._inside(ix+1, iy+1) # +1 for (1,1) based.. rd[0] = self._inside(ix, iy) rd = rd + 1 return ra def inside1(self, double x, double y): """ inside1(float, float) : returns True if the point (x,y) is inside the filter. """ return self._inside(x, y) def inside(self, x, y=None): if y is None: if len(x.shape) == 2 and x.shape[-1] == 2: return self.inside_xy(x) else: raise ValueError("input array has a wrong shape") else: return self.inside_x_y(x, y) def inside_xy(self, xy): """ inside(x, y) : given the numpy array of x and y, returns an array b of same shape, where b[i] = inside1(x[i], y[i]) """ cdef c_numpy.ndarray xya cdef c_numpy.ndarray ra cdef double *xyd cdef npy_bool *rd cdef int i cdef int n xya = c_numpy.PyArray_ContiguousFromAny(xy, c_numpy.NPY_DOUBLE, 1, 0) ra = c_numpy.PyArray_EMPTY(1, xya.dimensions, c_numpy.NPY_BOOL, 0) xyd = c_numpy.PyArray_DATA(xya) rd = c_numpy.PyArray_DATA(ra) n = xya.dimensions[0] # c_numpy.PyArray_SIZE(xya) / 2 #_inside_ptr = self._inside for i from 0 <= i < n: rd[i] = self._inside(xyd[2 * i], xyd[2 * i + 1]) return ra def inside_x_y(self, x, y): """ inside(x, y) : given the numpy array of x and y, returns an array b of same shape, where b[i] = inside1(x[i], y[i]) """ cdef c_numpy.ndarray xa cdef c_numpy.ndarray ya cdef c_numpy.ndarray ra cdef double *xd cdef double *yd cdef npy_bool *rd cdef int i cdef int n #cdef c_numpy.npy_bool ((*_inside_ptr)(RegionBase, double ,double )) # FIX : check if two input has identical shape xa = c_numpy.PyArray_ContiguousFromAny(x, c_numpy.NPY_DOUBLE, 1, 0) ya = c_numpy.PyArray_ContiguousFromAny(y, c_numpy.NPY_DOUBLE, 1, 0) ra = c_numpy.PyArray_EMPTY(xa.nd, xa.dimensions, c_numpy.NPY_BOOL, 0) xd = c_numpy.PyArray_DATA(xa) yd = c_numpy.PyArray_DATA(ya) rd = c_numpy.PyArray_DATA(ra) n = c_numpy.PyArray_SIZE(xa) #_inside_ptr = self._inside for i from 0 <= i < n: #self._inside(xd[0], yd[0]) #rd[i] = _inside_ptr(self, xd[i], yd[i]) rd[i] = self._inside(xd[i], yd[i]) #rd[i] = _inside_ptr(self, xd[i], yd[i]) #print xd[i], yd[i], rd[i] return ra cdef class RegionNot(RegionBase): """ >>> r = RegionNot(r2) """ cdef RegionBase child_region def __init__(self, RegionBase child_region): self.child_region = child_region cdef npy_bool _inside(self, double x, double y): return not (self.child_region._inside(x, y)) cdef class RegionList(RegionBase): cdef object child_regions def _check_type_of_list(self, kl): for k in kl: if not isinstance(k, RegionBase): raise TypeError("All elements should be subclass of RegionBase type: %s" % k) def __init__(self, *kl): self._check_type_of_list(kl) self.child_regions = list(kl) def __len__(self): return len(self.child_regions) def __getitem__(self, Py_ssize_t x): return self.child_regions[x] def __setitem__(self, Py_ssize_t x, RegionBase y): self.child_regions[x] = y def __delitem__(self, Py_ssize_t x): del self.child_regions[x] def __contains__(self, RegionBase x): return x in self.child_regions def __repr__(self): return repr(self.child_regions) def asList(self): return self.child_regions cdef class RegionOrList(RegionList): """ >>> r = RegionOrList(r1, r2, r3, r4, ...) """ cdef npy_bool _inside(self, double x, double y): cdef c_python.PyListObject *child_regions cdef int i, n child_regions = self.child_regions n = c_python.PyList_GET_SIZE(child_regions) for i from 0 <= i < n: if ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): return 1 return 0 def __repr__(self): return "Or" + repr(self.child_regions) cdef class RegionAndList(RegionList): """ >>> r = RegionAndList(r1, r2, r3, r4, ...) """ cdef npy_bool _inside(self, double x, double y): cdef c_python.PyListObject *child_regions cdef int i, n child_regions = self.child_regions n = c_python.PyList_GET_SIZE(child_regions) for i from 0 <= i < n: if not ( c_python.PyList_GET_ITEM(child_regions, i))._inside(x, y): return 0 return 1 def __repr__(self): return "And" + repr(self.child_regions) def RegionAnd(RegionBase region1, RegionBase region2): """ >>> r = RegionAnd(reg1, reg2) """ if isinstance(region1, RegionAndList): region1_list = region1.asList() else: region1_list = [region1] if isinstance(region2, RegionAndList): region2_list = region2.asList() else: region2_list = [region2] return RegionAndList(*(region1_list + region2_list)) def RegionOr(RegionBase region1, RegionBase region2): """ >>> r = RegionOr(reg1, reg2) """ if isinstance(region1, RegionOrList): region1_list = region1.asList() else: region1_list = [region1] if isinstance(region2, RegionOrList): region2_list = region2.asList() else: region2_list = [region2] return RegionOrList(*(region1_list + region2_list)) cdef class Transform(RegionBase): cdef RegionBase child_region def __init__(self, RegionBase child_region): self.child_region = child_region property child: def __get__(self): return self.child_region cdef int _transform(self, double x, double y, double *xp, double *yp): xp[0] = x yp[0] = y cdef npy_bool _inside(self, double x, double y): cdef double xp, yp cdef npy_bool r self._transform(x, y, &xp, &yp) r = self.child_region._inside(xp, yp) return r cdef extern from "math.h": double sin(double) double cos(double) double atan2(double, double) double fmod(double, double) double M_PI cdef class Rotated(Transform): """ Rotate the region by degree in anti-colockwise direction. >>> reg = Rotated(child_region, degree, origin_x, origin_y) """ cdef double sin_theta cdef double cos_theta cdef double origin_x, origin_y def __init__(self, RegionBase child_region, double degree, double origin_x, double origin_y): cdef double theta Transform.__init__(self, child_region) theta = degree / 180. * M_PI #3.1415926 self.sin_theta = sin(theta) self.cos_theta = cos(theta) self.origin_x = origin_x self.origin_y = origin_y cdef int _transform(self, double x, double y, double *xp, double *yp): cdef double x1, x2, y1, y2 cdef double st, ct, ox, oy st = self.sin_theta ct = self.cos_theta ox = self.origin_x oy = self.origin_y x1 = x - ox y1 = y - oy x2 = ct * x1 + st * y1 y2 = -st * x1 + ct * y1 xp[0] = x2 + ox yp[0] = y2 + oy cdef class Translated(Transform): """ Translated region. >>> Translate(child_region, dx, dy) """ cdef double dx cdef double dy def __init__(self, RegionBase child_region, double dx, double dy): Transform.__init__(self, child_region) self.dx = dx self.dy = dy cdef int _transform(self, double x, double y, double *xp, double *yp): xp[0] = x - self.dx yp[0] = y - self.dy # Basic Shapes cdef class Circle(RegionBase): """ Circle. >>> cir = Circle(xc, yc, radius, RegionContext c=None) """ cdef double xc cdef double yc cdef double radius cdef double radius2 cdef _set_v(self, double xc, double yc, double radius): self.xc = xc self.yc = yc self.radius = radius self.radius2 = radius * radius cdef _get_v(self): return (self.xc, self.yc, self.radius) def __init__(self, double xc, double yc, double radius, RegionContext c=None): self.metric_set_origin(xc, yc, c) self._set_v(xc, yc, radius) cdef npy_bool _inside(self, double x, double y): cdef double dist2 dist2 = ((x - self.xc) * self.m.g_x) ** 2 + ((y - self.yc) * self.m.g_y) ** 2 return (dist2 <= self.radius2) def __repr__(self): return "Circle(%f, %f, %f)" % (self.xc, self.yc, self.radius) cdef class Ellipse(RegionBase): """ Ellipse. >>> shape = Ellipse(xc, yc, radius_major, radius_minor) """ cdef double xc cdef double yc cdef double radius_major cdef double radius_major_2 cdef double radius_minor cdef double radius_minor_2 cdef double radius_major_2_radius_minor_2 def __init__(self, double xc, double yc, double radius_major, double radius_minor, RegionContext c=None): # check inside # (x-xc)**2/radius_major**2 + (y-yc)**2/radius_minor**2 < 1 # radius_minor**2*(x-xc)**2 + radius_major**2*(y-yc)**2 < (radius_major*radius_minor)**2 self.xc = xc self.yc = yc self.radius_major = radius_major self.radius_minor = radius_minor self.radius_major_2 = radius_major ** 2 self.radius_minor_2 = radius_minor ** 2 self.radius_major_2_radius_minor_2 = self.radius_major_2 * self.radius_minor_2 self.metric_set_origin(xc, yc, c) cdef npy_bool _inside(self, double x, double y): cdef double dist2 dist2 = self.radius_minor_2 * (x - self.xc) ** 2 + self.radius_major_2 * (y - self.yc) ** 2 return (dist2 <= self.radius_major_2_radius_minor_2) def __repr__(self): return "Ellipse(%f, %f, %f, %f)" % (self.xc, self.yc, self.radius_major, self.radius_minor) cdef class Box(RegionBase): """ Box. >>> shape = Box(xc, yc, width, height) """ cdef double x1 cdef double x2 cdef double y1 cdef double y2 def __init__(self, double xc, double yc, double width, double height, RegionContext c=None): cdef double halfwidth cdef double halfheight halfwidth = width * .5 halfheight = height * .5 self.x1 = xc - halfwidth self.x2 = xc + halfwidth self.y1 = yc - halfheight self.y2 = yc + halfheight self.metric_set_origin(xc, yc, c) cdef npy_bool _inside(self, double x, double y): return (self.x1 <= x) & (x <= self.x2) & (self.y1 <= y) & (y <= self.y2) cdef class Polygon(RegionBase): """ Polygon. >>> shape = Polygon(x, y) Parameters: x, y : list of floats """ cdef c_numpy.ndarray xa cdef c_numpy.ndarray ya cdef double *x cdef double *y cdef int n def __init__(self, x, y, RegionContext c=None): self.xa = c_numpy.PyArray_CopyFromObject(x, c_numpy.NPY_DOUBLE, 1, 1) self.ya = c_numpy.PyArray_CopyFromObject(y, c_numpy.NPY_DOUBLE, 1, 1) self.n = c_numpy.PyArray_SIZE(self.xa) self.x = c_numpy.PyArray_DATA(self.xa) self.y = c_numpy.PyArray_DATA(self.ya) self.metric_set_origin(self.x[0], self.y[0], c) cdef npy_bool _inside(self, double x, double y): cdef int i, j cdef npy_bool r cdef double *xp cdef double *yp cdef double _t cdef double y_yp_i, y_yp_j j = self.n - 1 r = 0 xp = self.x yp = self.y #stable version, but would require more time for i from 0 <= i < self.n: y_yp_i = y - yp[i] y_yp_j = y - yp[j] if (y_yp_i == 0.) & (y_yp_j == 0.): # special case for horizontal line if (xp[i] - x) * (xp[j] - x) <= 0.: return 1 if ((0 <= y_yp_i) & (0 > y_yp_j) | (0 <= y_yp_j) & (0 > y_yp_i)): _t = xp[i] + y_yp_i / (yp[j] - yp[i]) * (xp[j] - xp[i]) if _t == x: # return true immediately if point over the poly-edge return 1 # but above does not catch horizontal line if (_t < x): r = not r j = i return r cdef class AngleRange(RegionBase): """ AngleRange. >>> shape = Ellipse(xc, yc, degree1, degree2) """ cdef double xc cdef double yc cdef double degree1 cdef double degree2 cdef double radian1 cdef double radian2 def __init__(self, double xc, double yc, double degree1, double degree2, RegionContext c=None): self.xc = xc self.yc = yc self.degree1 = degree1 self.degree2 = degree2 # theta in radian self.radian1 = degree1 / 180. * M_PI #3.1415926 self.radian2 = self._fix_angle(degree2 / 180. * M_PI) self.metric_set_origin(xc, yc, c) cdef double _fix_angle(self, double a): if a > self.radian1: return self.radian1 + fmod((a - self.radian1), 2 * M_PI) else: return self.radian1 + 2. * M_PI - fmod((self.radian1 - a), 2 * M_PI) cdef npy_bool _inside(self, double x, double y): cdef double dx, dy, theta dx = x - self.xc dy = y - self.yc theta = atan2(dy, dx) theta = self._fix_angle(theta) return (theta < self.radian2) def __repr__(self): return "AngleRange(%f, %f, %f, %f)" % (self.xc, self.yc, self.degree1, self.degree2) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/c_numpy.pxd0000664000175000017500000000736700000000000016356 0ustar00jjleejjlee# :Author: Travis Oliphant cdef extern from "numpy/arrayobject.h": cdef enum NPY_TYPES: NPY_BOOL NPY_BYTE NPY_UBYTE NPY_SHORT NPY_USHORT NPY_INT NPY_UINT NPY_LONG NPY_ULONG NPY_LONGLONG NPY_ULONGLONG NPY_FLOAT NPY_DOUBLE NPY_LONGDOUBLE NPY_CFLOAT NPY_CDOUBLE NPY_CLONGDOUBLE NPY_OBJECT NPY_STRING NPY_UNICODE NPY_VOID NPY_NTYPES NPY_NOTYPE cdef enum requirements: NPY_CONTIGUOUS NPY_FORTRAN NPY_OWNDATA NPY_FORCECAST NPY_ENSURECOPY NPY_ENSUREARRAY NPY_ELEMENTSTRIDES NPY_ALIGNED NPY_NOTSWAPPED NPY_WRITEABLE NPY_UPDATEIFCOPY NPY_ARR_HAS_DESCR NPY_BEHAVED NPY_BEHAVED_NS NPY_CARRAY NPY_CARRAY_RO NPY_FARRAY NPY_FARRAY_RO NPY_DEFAULT NPY_IN_ARRAY NPY_OUT_ARRAY NPY_INOUT_ARRAY NPY_IN_FARRAY NPY_OUT_FARRAY NPY_INOUT_FARRAY NPY_UPDATE_ALL cdef enum defines: # Note: as of Pyrex 0.9.5, enums are type-checked more strictly, so this # can't be used as an integer. NPY_MAXDIMS ctypedef struct npy_cdouble: double real double imag ctypedef struct npy_cfloat: double real double imag ctypedef int npy_intp ctypedef short npy_bool ctypedef extern class numpy.dtype[object PyArray_Descr]: cdef int type_num, elsize, alignment cdef char type, kind, byteorder, hasobject cdef object fields, typeobj ctypedef extern class numpy.ndarray[object PyArrayObject]: cdef char *data cdef int nd cdef npy_intp *dimensions cdef npy_intp *strides cdef object base cdef dtype descr cdef int flags ctypedef extern class numpy.flatiter[object PyArrayIterObject]: cdef int nd_m1 cdef npy_intp index, size cdef ndarray ao cdef char *dataptr ctypedef extern class numpy.broadcast[object PyArrayMultiIterObject]: cdef int numiter cdef npy_intp size, index cdef int nd # These next two should be arrays of [NPY_MAXITER], but that is # difficult to cleanly specify in Pyrex. Fortunately, it doesn't matter. cdef npy_intp *dimensions cdef void ** iters object PyArray_ZEROS(int ndims, npy_intp*dims, NPY_TYPES type_num, int fortran) object PyArray_EMPTY(int ndims, npy_intp*dims, NPY_TYPES type_num, int fortran) dtype PyArray_DescrFromTypeNum(NPY_TYPES type_num) object PyArray_SimpleNew(int ndims, npy_intp*dims, NPY_TYPES type_num) int PyArray_Check(object obj) object PyArray_ContiguousFromAny(object obj, NPY_TYPES type, int mindim, int maxdim) object PyArray_CopyFromObject(object obj, NPY_TYPES type, int mindim, int maxdim) npy_intp PyArray_SIZE(ndarray arr) npy_intp PyArray_NBYTES(ndarray arr) void *PyArray_DATA(ndarray arr) object PyArray_FromAny(object obj, dtype newtype, int mindim, int maxdim, int requirements, object context) object PyArray_FROMANY(object obj, NPY_TYPES type_num, int min, int max, int requirements) object PyArray_FROM_OTF(object obj, NPY_TYPES type_num, int requirements) object PyArray_NewFromDescr(object subtype, dtype newtype, int nd, npy_intp*dims, npy_intp*strides, void*data, int flags, object parent) object PyArray_IterNew(object obj) void PyArray_ITER_NEXT(flatiter it) void import_array() void import_ufunc() ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/c_python.pxd0000664000175000017500000000177700000000000016526 0ustar00jjleejjlee# -*- Mode: Python -*- Not really, but close enough # Expose as much of the Python C API as we need here cdef extern from "stdlib.h": ctypedef int size_t cdef extern from "Python.h": ctypedef int Py_intptr_t void* PyMem_Malloc(size_t) void* PyMem_Realloc(void *p, size_t n) void PyMem_Free(void *p) char* PyString_AsString(object string) object PyString_FromString(char *v) object PyString_InternFromString(char *v) int PyErr_CheckSignals() object PyFloat_FromDouble(double v) void Py_XINCREF(object o) void Py_XDECREF(object o) void Py_CLEAR(object o) # use instead of decref void* PyCObject_AsVoidPtr(object o) object PyObject_GetAttrString(object o, char *v) ctypedef struct PyListObject: void *ob_item void * PyList_GET_ITEM(PyListObject *o, int i) int PyList_GET_SIZE(PyListObject *o) int PySequence_Check(object o) object PySequence_GetItem(object o, int i) int PySequence_Length(object o) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/conftest.py0000664000175000017500000000274200000000000016356 0ustar00jjleejjlee# this contains imports plugins that configure py.test for astropy tests. # by importing them here in conftest.py they are discoverable by py.test # no matter how it is invoked within the source tree. from astropy.version import version as astropy_version if astropy_version < '3.0': # With older versions of Astropy, we actually need to import the pytest # plugins themselves in order to make them discoverable by pytest. from astropy.tests.pytest_plugins import * else: # As of Astropy 3.0, the pytest plugins provided by Astropy are # automatically made available when Astropy is installed. This means it's # not necessary to import them here, but we still need to import global # variables that are used for configuration. from astropy.tests.plugins.display import PYTEST_HEADER_MODULES, TESTED_VERSIONS from astropy.tests.helper import enable_deprecations_as_exceptions # Uncomment the following line to treat all DeprecationWarnings as exceptions enable_deprecations_as_exceptions() PYTEST_HEADER_MODULES.clear() PYTEST_HEADER_MODULES.update([ ('numpy', 'numpy'), ('cython', 'cython'), ('Astropy', 'astropy'), ('pyparsing', 'pyparsing'), ('matplotlib', 'matplotlib'), ]) # This is to figure out the affiliated package version, rather than # using Astropy's try: from .version import version except ImportError: version = 'dev' import os packagename = os.path.basename(os.path.dirname(__file__)) TESTED_VERSIONS[packagename] = version ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/core.py0000664000175000017500000002256400000000000015465 0ustar00jjleejjleefrom itertools import cycle from .ds9_region_parser import RegionParser from .wcs_converter import check_wcs as _check_wcs _builtin_open = open class ShapeList(list): """A list of `~pyregion.Shape` objects. Parameters ---------- shape_list : list List of `pyregion.Shape` objects comment_list : list, None List of comment strings for each argument """ def __init__(self, shape_list, comment_list=None): if comment_list is not None: if len(comment_list) != len(shape_list): err = "Ambiguous number of comments {} for number of shapes {}" raise ValueError(err.format(len(comment_list), len(shape_list))) self._comment_list = comment_list list.__init__(self, shape_list) def __getitem__(self, key): if isinstance(key, slice): return ShapeList(list.__getitem__(self, key)) else: return list.__getitem__(self, key) def __getslice__(self, i, j): return self[max(0, i):max(0, j):] def check_imagecoord(self): """Are all shapes in image coordinates? Returns ``True`` if yes, and ``False`` if not. """ if [s for s in self if s.coord_format != "image"]: return False else: return True def as_imagecoord(self, header): """New shape list in image coordinates. Parameters ---------- header : `~astropy.io.fits.Header` FITS header Returns ------- shape_list : `ShapeList` New shape list, with coordinates of the each shape converted to the image coordinate using the given header information. """ comment_list = self._comment_list if comment_list is None: comment_list = cycle([None]) r = RegionParser.sky_to_image(zip(self, comment_list), header) shape_list, comment_list = zip(*list(r)) return ShapeList(shape_list, comment_list=comment_list) def get_mpl_patches_texts(self, properties_func=None, text_offset=5.0, origin=1): """ Often, the regions files implicitly assume the lower-left corner of the image as a coordinate (1,1). However, the python convetion is that the array index starts from 0. By default (``origin=1``), coordinates of the returned mpl artists have coordinate shifted by (1, 1). If you do not want this shift, use ``origin=0``. """ from .mpl_helper import as_mpl_artists patches, txts = as_mpl_artists(self, properties_func, text_offset, origin=origin) return patches, txts def get_filter(self, header=None, origin=1): """Get filter. Often, the regions files implicitly assume the lower-left corner of the image as a coordinate (1,1). However, the python convetion is that the array index starts from 0. By default (``origin=1``), coordinates of the returned mpl artists have coordinate shifted by (1, 1). If you do not want this shift, use ``origin=0``. Parameters ---------- header : `astropy.io.fits.Header` FITS header origin : {0, 1} Pixel coordinate origin Returns ------- filter : TODO Filter object """ from .region_to_filter import as_region_filter if header is None: if not self.check_imagecoord(): raise RuntimeError("the region has non-image coordinate. header is required.") reg_in_imagecoord = self else: reg_in_imagecoord = self.as_imagecoord(header) region_filter = as_region_filter(reg_in_imagecoord, origin=origin) return region_filter def get_mask(self, hdu=None, header=None, shape=None): """Create a 2-d mask. Parameters ---------- hdu : `astropy.io.fits.ImageHDU` FITS image HDU header : `~astropy.io.fits.Header` FITS header shape : tuple Image shape Returns ------- mask : `numpy.array` Boolean mask Examples -------- get_mask(hdu=f[0]) get_mask(shape=(10,10)) get_mask(header=f[0].header, shape=(10,10)) """ if hdu and header is None: header = hdu.header if hdu and shape is None: shape = hdu.data.shape region_filter = self.get_filter(header=header) mask = region_filter.mask(shape) return mask def write(self, outfile): """Write this shape list to a region file. Parameters ---------- outfile : str File name """ if len(self) < 1: print("WARNING: The region list is empty. The region file " "'{:s}' will be empty.".format(outfile)) try: outf = _builtin_open(outfile, 'w') outf.close() return except IOError as e: cmsg = "Unable to create region file '{:s}'.".format(outfile) if e.args: e.args = (e.args[0] + '\n' + cmsg,) + e.args[1:] else: e.args = (cmsg,) raise e prev_cs = self[0].coord_format outf = None try: outf = _builtin_open(outfile, 'w') attr0 = self[0].attr[1] defaultline = " ".join(["{:s}={:s}".format(a, attr0[a]) for a in attr0 if a != 'text']) # first line is globals outf.write("global {0}\n".format(defaultline)) # second line must be a coordinate format outf.write("{0}\n".format(prev_cs)) for shape in self: shape_attr = '' if prev_cs == shape.coord_format \ else shape.coord_format + "; " shape_excl = '-' if shape.exclude else '' text_coordlist = ["{:f}".format(f) for f in shape.coord_list] shape_coords = "(" + ",".join(text_coordlist) + ")" shape_comment = " # " + shape.comment if shape.comment else '' shape_str = (shape_attr + shape_excl + shape.name + shape_coords + shape_comment) outf.write("{0}\n".format(shape_str)) except IOError as e: cmsg = "Unable to create region file \'{:s}\'.".format(outfile) if e.args: e.args = (e.args[0] + '\n' + cmsg,) + e.args[1:] else: e.args = (cmsg,) raise e finally: if outf: outf.close() def parse(region_string): """Parse DS9 region string into a ShapeList. Parameters ---------- region_string : str Region string Returns ------- shapes : `ShapeList` List of `~pyregion.Shape` """ rp = RegionParser() ss = rp.parse(region_string) sss1 = rp.convert_attr(ss) sss2 = _check_wcs(sss1) shape_list, comment_list = rp.filter_shape2(sss2) return ShapeList(shape_list, comment_list=comment_list) def open(fname): """Open, read and parse DS9 region file. Parameters ---------- fname : str Filename Returns ------- shapes : `ShapeList` List of `~pyregion.Shape` """ with _builtin_open(fname) as fh: region_string = fh.read() return parse(region_string) def read_region(s): """Read region. Parameters ---------- s : str Region string Returns ------- shapes : `ShapeList` List of `~pyregion.Shape` """ rp = RegionParser() ss = rp.parse(s) sss1 = rp.convert_attr(ss) sss2 = _check_wcs(sss1) shape_list = rp.filter_shape(sss2) return ShapeList(shape_list) def read_region_as_imagecoord(s, header): """Read region as image coordinates. Parameters ---------- s : str Region string header : `~astropy.io.fits.Header` FITS header Returns ------- shapes : `~pyregion.ShapeList` List of `~pyregion.Shape` """ rp = RegionParser() ss = rp.parse(s) sss1 = rp.convert_attr(ss) sss2 = _check_wcs(sss1) sss3 = rp.sky_to_image(sss2, header) shape_list = rp.filter_shape(sss3) return ShapeList(shape_list) def get_mask(region, hdu, origin=1): """Get mask. Parameters ---------- region : `~pyregion.ShapeList` List of `~pyregion.Shape` hdu : `~astropy.io.fits.ImageHDU` FITS image HDU origin : float TODO: document me Returns ------- mask : `~numpy.array` Boolean mask Examples -------- >>> from astropy.io import fits >>> from pyregion import read_region_as_imagecoord, get_mask >>> hdu = fits.open("test.fits")[0] >>> region = "test01.reg" >>> reg = read_region_as_imagecoord(open(region), f[0].header) >>> mask = get_mask(reg, hdu) """ from pyregion.region_to_filter import as_region_filter data = hdu.data region_filter = as_region_filter(region, origin=origin) mask = region_filter.mask(data) return mask ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1623588723.2899528 pyregion-2.1.1/pyregion/cython_version.py0000664000175000017500000000007300000000000017575 0ustar00jjleejjlee# Generated file; do not modify cython_version = '0.29.22' ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/ds9_attr_parser.py0000664000175000017500000000635400000000000017641 0ustar00jjleejjleeimport copy from pyparsing import (Literal, CaselessKeyword, Word, Optional, Combine, ZeroOrMore, nums, alphas, And, Or, quotedString, QuotedString, White) from .region_numbers import CoordOdd, CoordEven, Distance, Angle from .parser_helper import wcs_shape, define_shape_helper, Shape def get_ds9_attr_parser(): lhs = Word(alphas) paren = QuotedString("(", endQuoteChar=")") rhs = Or([Word(alphas + nums), Combine(Literal("#") + Word(alphas + nums)), # color with '#' Combine(Word(alphas) + White() + Word(nums)), # for point quotedString, QuotedString("{", endQuoteChar="}"), paren + ZeroOrMore(paren), Word(nums + " "), Word(nums + ".") ]) expr = lhs + Optional(Literal("=").suppress() + rhs) expr.setParseAction(lambda s, l, tok: tuple(tok)) return ZeroOrMore(expr) ds9_shape_in_comment_defs = dict( text=wcs_shape(CoordOdd, CoordEven), vector=wcs_shape(CoordOdd, CoordEven, Distance, Angle), composite=wcs_shape(CoordOdd, CoordEven, Angle), ruler=wcs_shape(CoordOdd, CoordEven, CoordOdd, CoordEven), compass=wcs_shape(CoordOdd, CoordEven, Distance), projection=wcs_shape(CoordOdd, CoordEven, CoordOdd, CoordEven, Distance), segment=wcs_shape(CoordOdd, CoordEven, repeat=(0, 2)) ) class Ds9AttrParser(object): def set_continued(self, s, l, tok): self.continued = True def __init__(self): self.continued = False ds9_attr_parser = get_ds9_attr_parser() regionShape = define_shape_helper(ds9_shape_in_comment_defs) regionShape = regionShape.setParseAction(lambda s, l, tok: Shape(tok[0], tok[1:])) self.parser_default = ds9_attr_parser cont = CaselessKeyword("||").setParseAction(self.set_continued).suppress() line = Optional(And([regionShape, Optional(cont)])) + ds9_attr_parser self.parser_with_shape = line def parse_default(self, s): return self.parser_default.parseString(s) def parse_check_shape(self, s): l = self.parser_with_shape.parseString(s) if l and isinstance(l[0], Shape): if self.continued: l[0].continued = True return l[0], l[1:] else: return None, l def get_attr(attr_list, global_attrs): """ Parameters ---------- attr_list : list A list of (keyword, value) tuple pairs global_attrs : tuple(list, dict) Global attributes which update the local attributes """ local_attr = [], {} for kv in attr_list: keyword = kv[0] if len(kv) == 1: local_attr[0].append(keyword) continue elif len(kv) == 2: value = kv[1] elif len(kv) > 2: value = kv[1:] if keyword == 'tag': local_attr[1].setdefault(keyword, set()).add(value) else: local_attr[1][keyword] = value attr0 = copy.copy(global_attrs[0]) attr1 = copy.copy(global_attrs[1]) if local_attr[0]: attr0.extend(local_attr[0]) if local_attr[1]: attr1.update(local_attr[1]) return attr0, attr1 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/ds9_region_parser.py0000664000175000017500000001714200000000000020147 0ustar00jjleejjleeimport copy import warnings from pyparsing import (Literal, CaselessKeyword, CaselessLiteral, Optional, And, Or, Word, StringEnd, ParseException, Combine, alphas) from .region_numbers import CoordOdd, CoordEven, Distance, Angle, Integer from .parser_helper import (wcs_shape, define_shape_helper, Shape, Global, RegionPusher, define_expr, define_line, CoordCommand, comment_shell_like, define_simple_literals) from .ds9_attr_parser import Ds9AttrParser, get_attr from .wcs_converter import (convert_to_imagecoord, convert_physical_to_imagecoord) ds9_shape_defs = dict( circle=wcs_shape(CoordOdd, CoordEven, Distance), rotbox=wcs_shape(CoordOdd, CoordEven, Distance, Distance, Angle, repeat=(2, 4)), box=wcs_shape(CoordOdd, CoordEven, Distance, Distance, Angle, repeat=(2, 4)), polygon=wcs_shape(CoordOdd, CoordEven, repeat=(0, 2)), ellipse=wcs_shape(CoordOdd, CoordEven, Distance, Distance, Angle, repeat=(2, 4)), annulus=wcs_shape(CoordOdd, CoordEven, Distance, repeat=(2, 3)), panda=wcs_shape(CoordOdd, CoordEven, Angle, Angle, Integer, Distance, Distance, Integer), pie=wcs_shape(CoordOdd, CoordEven, Distance, Distance, Angle, Angle), epanda=wcs_shape(CoordOdd, CoordEven, Angle, Angle, Integer, Distance, Distance, Distance, Distance, Integer, Angle), bpanda=wcs_shape(CoordOdd, CoordEven, Angle, Angle, Integer, Distance, Distance, Distance, Distance, Integer, Angle), point=wcs_shape(CoordOdd, CoordEven), line=wcs_shape(CoordOdd, CoordEven, CoordOdd, CoordEven), vector=wcs_shape(CoordOdd, CoordEven, Distance, Angle), text=wcs_shape(CoordOdd, CoordEven), ) image_like_coordformats = ["image", "physical", "detector", "logical"] class RegionParser(RegionPusher): def __init__(self): RegionPusher.__init__(self) self.shape_definition = ds9_shape_defs regionShape = define_shape_helper(self.shape_definition) regionShape = regionShape.setParseAction(lambda s, l, tok: Shape(tok[0], tok[1:])) regionExpr = define_expr(regionShape, negate_func=lambda s, l, tok: tok[-1].set_exclude(), ) coord_command_keys = ['PHYSICAL', 'IMAGE', 'FK4', 'B1950', 'FK5', 'J2000', 'GALACTIC', 'ECLIPTIC', 'ICRS', 'LINEAR', 'AMPLIFIER', 'DETECTOR'] coordCommandLiterals = define_simple_literals(coord_command_keys) coordCommandWCS = Combine(CaselessLiteral("WCS") + Optional(Word(alphas))) coordCommand = (coordCommandLiterals | coordCommandWCS) coordCommand.setParseAction(lambda s, l, tok: CoordCommand(tok[-1])) regionGlobal = comment_shell_like(CaselessKeyword("global"), lambda s, l, tok: Global(tok[-1])) regionAtom = (regionExpr | coordCommand | regionGlobal) regionAtom = regionAtom.setParseAction(self.pushAtom) regionComment = comment_shell_like(Literal("#"), parseAction=self.pushComment) line_simple = define_line(atom=regionAtom, separator=Literal(";"), comment=regionComment ) line_w_composite = And([regionAtom, CaselessKeyword("||").setParseAction(self.set_continued) ]) \ + Optional(regionComment) line = Or([line_simple, line_w_composite]) self.parser = Optional(line) + StringEnd() def parseLine(self, l): self.parser.parseString(l) s, c, continued = self.stack, self.comment, self.continued self.flush() return s, c, continued def parse(self, s): for l in s.split("\n"): try: s, c, continued = self.parseLine(l) except ParseException: warnings.warn("Failed to parse : " + l) self.flush() continue if len(s) > 1: for s1 in s[:-1]: yield s1, None s[-1].comment = c s[-1].continued = continued yield s[-1], c elif len(s) == 1: s[-1].comment = c s[-1].continued = continued yield s[-1], c elif c: yield None, c self.flush() def convert_attr(self, l): global_attr = [], {} parser = Ds9AttrParser() for l1, c1 in l: if isinstance(l1, Global): for kv in parser.parse_default(l1.text): if len(kv) == 1: global_attr[0].append(kv[0]) elif len(kv) == 2: if kv[0] == 'tag': global_attr[1].setdefault(kv[0], set()).add(kv[1]) else: global_attr[1][kv[0]] = kv[1] elif isinstance(l1, Shape): if c1: attr_list = parser.parse_default(c1) attr0, attr1 = get_attr(attr_list, global_attr) else: attr0, attr1 = global_attr l1n = copy.copy(l1) l1n.attr = attr0, attr1 yield l1n, c1 elif not l1 and c1: shape, attr_list = parser.parse_check_shape(c1) if shape: shape.attr = get_attr(attr_list, global_attr) yield shape, c1 else: yield l1, c1 @staticmethod def sky_to_image(shape_list, header): """Converts a `ShapeList` into shapes with coordinates in image coordinates Parameters ---------- shape_list : `pyregion.ShapeList` The ShapeList to convert header : `~astropy.io.fits.Header` Specifies what WCS transformations to use. Yields ------- shape, comment : Shape, str Shape with image coordinates and the associated comment Note ---- The comments in the original `ShapeList` are unaltered """ for shape, comment in shape_list: if isinstance(shape, Shape) and \ (shape.coord_format not in image_like_coordformats): new_coords = convert_to_imagecoord(shape, header) l1n = copy.copy(shape) l1n.coord_list = new_coords l1n.coord_format = "image" yield l1n, comment elif isinstance(shape, Shape) and shape.coord_format == "physical": if header is None: raise RuntimeError("Physical coordinate is not known.") new_coordlist = convert_physical_to_imagecoord(shape, header) l1n = copy.copy(shape) l1n.coord_list = new_coordlist l1n.coord_format = "image" yield l1n, comment else: yield shape, comment def filter_shape(self, sss): return [s1[0] for s1 in sss if isinstance(s1[0], Shape)] @staticmethod def filter_shape2(sss): r = [s1 for s1 in sss if isinstance(s1[0], Shape)] return zip(*r) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624623945.3227026 pyregion-2.1.1/pyregion/mpl_helper.py0000664000175000017500000003361100000000000016657 0ustar00jjleejjleeimport copy import numpy as np from math import cos, sin, pi, atan2 import warnings import matplotlib.patches as mpatches from matplotlib.path import Path from matplotlib.lines import Line2D from matplotlib.transforms import Affine2D, Bbox, IdentityTransform from matplotlib.text import Annotation def rotated_polygon(xy, ox, oy, angle): # angle in degree theta = angle / 180. * pi st = sin(theta) ct = cos(theta) xy = np.asarray(xy, dtype="d") x, y = xy[:, 0], xy[:, 1] x1 = x - ox y1 = y - oy x2 = ct * x1 + -st * y1 y2 = st * x1 + ct * y1 xp = x2 + ox yp = y2 + oy return np.hstack((xp.reshape((-1, 1)), yp.reshape((-1, 1)))) # sss3 = [s1[0] for s1 in sss2 if isinstance(s1[0], parser_ds9.Shape)] _point_type_dict = dict(circle="o", box="s", diamond="D", x="x", cross="+", arrow="^", boxcircle="*") _ds9_to_mpl_colormap = dict(green="lime", ) def properties_func_default(shape, saved_attrs): attr_list = copy.copy(shape.attr[0]) attr_dict = copy.copy(shape.attr[1]) attr_list.extend(saved_attrs[0]) attr_dict.update(saved_attrs[1]) color = attr_dict.get("color", None) color = _ds9_to_mpl_colormap.get(color, color) if shape.name == "text": kwargs = dict(color=color, rotation=attr_dict.get("textangle", 0), ) font = attr_dict.get("font") if font: a = font.split() if len(a) >= 3: fontsize = float(a[1]) kwargs["fontsize"] = fontsize elif shape.name == "point": point_attrs = attr_dict.get("point", "boxcircle").split() if len(point_attrs) == 1: point_type = point_attrs[0] point_size = 11 elif len(point_attrs) > 1: point_type = point_attrs[0] point_size = int(point_attrs[1]) marker = _point_type_dict.get(point_type, "o") kwargs = dict(markeredgecolor=color, markerfacecolor="none", marker=marker, markeredgewidth=int(attr_dict.get("width", 1)), markersize=point_size ) elif shape.name in ["line", "vector"]: fontsize = 10 # default font size font = attr_dict.get("font") if font: a = font.split() if len(a) >= 3: fontsize = float(a[1]) kwargs = dict(color=color, linewidth=int(attr_dict.get("width", 1)), mutation_scale=fontsize, ) if int(attr_dict.get("dash", "0")): kwargs["linestyle"] = "dashed" else: # The default behavior of matplotlib edgecolor has changed, and it does # not draw edges by default. To remdy this, simply use black edgecolor # if None. # https://matplotlib.org/stable/users/dflt_style_changes.html#patch-edges-and-color if color is None: color = "k" kwargs = dict(edgecolor=color, linewidth=int(attr_dict.get("width", 1)), facecolor="none" ) if "background" in attr_list: kwargs["linestyle"] = "dashed" if int(attr_dict.get("dash", "0")): kwargs["linestyle"] = "dashed" if shape.exclude: kwargs["hatch"] = "/" return kwargs def _get_text(txt, x, y, dx, dy, ha="center", va="center", **kwargs): if "color" in kwargs: textcolor = kwargs["color"] del kwargs["color"] elif "markeredgecolor" in kwargs: textcolor = kwargs["markeredgecolor"] else: import matplotlib as mpl textcolor = mpl.rcParams['text.color'] ann = Annotation(txt, (x, y), xytext=(dx, dy), xycoords='data', textcoords="offset points", color=textcolor, ha=ha, va=va, **kwargs) ann.set_transform(IdentityTransform()) return ann def as_mpl_artists(shape_list, properties_func=None, text_offset=5.0, origin=1): """ Converts a region list to a list of patches and a list of artists. Optional Keywords: [ text_offset ] - If there is text associated with the regions, add some vertical offset (in pixels) to the text so that it doesn't overlap with the regions. Often, the regions files implicitly assume the lower-left corner of the image as a coordinate (1,1). However, the python convetion is that the array index starts from 0. By default (origin = 1), coordinates of the returned mpl artists have coordinate shifted by (1, 1). If you do not want this shift, set origin=0. """ patch_list = [] artist_list = [] if properties_func is None: properties_func = properties_func_default # properties for continued(? multiline?) regions saved_attrs = None for shape in shape_list: patches = [] if saved_attrs is None: _attrs = [], {} else: _attrs = copy.copy(saved_attrs[0]), copy.copy(saved_attrs[1]) kwargs = properties_func(shape, _attrs) if shape.name == "composite": saved_attrs = shape.attr continue if saved_attrs is None and shape.continued: saved_attrs = shape.attr # elif (shape.name in shape.attr[1]): # if (shape.attr[1][shape.name] != "ignore"): # saved_attrs = shape.attr if not shape.continued: saved_attrs = None # text associated with the shape txt = shape.attr[1].get("text") if shape.name == "polygon": xy = np.array(shape.coord_list) xy.shape = -1, 2 # -1 for change origin to 0,0 patches = [mpatches.Polygon(xy - origin, closed=True, **kwargs)] elif shape.name == "rotbox" or shape.name == "box": xc, yc, w, h, rot = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin _box = np.array([[-w / 2., -h / 2.], [-w / 2., h / 2.], [w / 2., h / 2.], [w / 2., -h / 2.]]) box = _box + [xc, yc] rotbox = rotated_polygon(box, xc, yc, rot) patches = [mpatches.Polygon(rotbox, closed=True, **kwargs)] elif shape.name == "ellipse": xc, yc = shape.coord_list[:2] # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin angle = shape.coord_list[-1] maj_list, min_list = shape.coord_list[2:-1:2], shape.coord_list[3:-1:2] patches = [mpatches.Ellipse((xc, yc), 2 * maj, 2 * min, angle=angle, **kwargs) for maj, min in zip(maj_list, min_list)] elif shape.name == "annulus": xc, yc = shape.coord_list[:2] # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin r_list = shape.coord_list[2:] patches = [mpatches.Ellipse((xc, yc), 2 * r, 2 * r, **kwargs) for r in r_list] elif shape.name == "circle": xc, yc, major = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin patches = [mpatches.Ellipse((xc, yc), 2 * major, 2 * major, angle=0, **kwargs)] elif shape.name == "panda": xc, yc, a1, a2, an, r1, r2, rn = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin patches = [mpatches.Arc((xc, yc), rr * 2, rr * 2, angle=0, theta1=a1, theta2=a2, **kwargs) for rr in np.linspace(r1, r2, rn + 1)] for aa in np.linspace(a1, a2, an + 1): xx = np.array([r1, r2]) * np.cos(aa / 180. * np.pi) + xc yy = np.array([r1, r2]) * np.sin(aa / 180. * np.pi) + yc p = Path(np.transpose([xx, yy])) patches.append(mpatches.PathPatch(p, **kwargs)) elif shape.name == "pie": xc, yc, r1, r2, a1, a2 = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin patches = [mpatches.Arc((xc, yc), rr * 2, rr * 2, angle=0, theta1=a1, theta2=a2, **kwargs) for rr in [r1, r2]] for aa in [a1, a2]: xx = np.array([r1, r2]) * np.cos(aa / 180. * np.pi) + xc yy = np.array([r1, r2]) * np.sin(aa / 180. * np.pi) + yc p = Path(np.transpose([xx, yy])) patches.append(mpatches.PathPatch(p, **kwargs)) elif shape.name == "epanda": xc, yc, a1, a2, an, r11, r12, r21, r22, rn, angle = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin # mpl takes angle a1, a2 as angle as in circle before # transformation to ellipse. x1, y1 = cos(a1 / 180. * pi), sin(a1 / 180. * pi) * r11 / r12 x2, y2 = cos(a2 / 180. * pi), sin(a2 / 180. * pi) * r11 / r12 a1, a2 = atan2(y1, x1) / pi * 180., atan2(y2, x2) / pi * 180. patches = [mpatches.Arc((xc, yc), rr1 * 2, rr2 * 2, angle=angle, theta1=a1, theta2=a2, **kwargs) for rr1, rr2 in zip(np.linspace(r11, r21, rn + 1), np.linspace(r12, r22, rn + 1))] for aa in np.linspace(a1, a2, an + 1): xx = np.array([r11, r21]) * np.cos(aa / 180. * np.pi) yy = np.array([r11, r21]) * np.sin(aa / 180. * np.pi) p = Path(np.transpose([xx, yy])) tr = Affine2D().scale(1, r12 / r11).rotate_deg(angle).translate(xc, yc) p2 = tr.transform_path(p) patches.append(mpatches.PathPatch(p2, **kwargs)) elif shape.name == "text": xc, yc = shape.coord_list[:2] # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin if txt: _t = _get_text(txt, xc, yc, 0, 0, **kwargs) artist_list.append(_t) elif shape.name == "point": xc, yc = shape.coord_list[:2] # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin artist_list.append(Line2D([xc], [yc], **kwargs)) if txt: textshape = copy.copy(shape) textshape.name = "text" textkwargs = properties_func(textshape, _attrs) _t = _get_text(txt, xc, yc, 0, text_offset, va="bottom", **textkwargs) artist_list.append(_t) elif shape.name in ["line", "vector"]: if shape.name == "line": x1, y1, x2, y2 = shape.coord_list[:4] # -1 for change origin to 0,0 x1, y1, x2, y2 = x1 - origin, y1 - origin, x2 - origin, y2 - origin a1, a2 = shape.attr[1].get("line", "0 0").strip().split()[:2] arrowstyle = "-" if int(a1): arrowstyle = "<" + arrowstyle if int(a2): arrowstyle = arrowstyle + ">" else: # shape.name == "vector" x1, y1, l, a = shape.coord_list[:4] # -1 for change origin to 0,0 x1, y1 = x1 - origin, y1 - origin x2, y2 = x1 + l * np.cos(a / 180. * np.pi), y1 + l * np.sin(a / 180. * np.pi) v1 = int(shape.attr[1].get("vector", "0").strip()) if v1: arrowstyle = "->" else: arrowstyle = "-" patches = [mpatches.FancyArrowPatch(posA=(x1, y1), posB=(x2, y2), arrowstyle=arrowstyle, connectionstyle="arc3", patchA=None, patchB=None, shrinkA=0, shrinkB=0, **kwargs)] else: warnings.warn("'as_mpl_artists' does not know how to convert {0} " "to mpl artist".format(shape.name)) patch_list.extend(patches) if txt and patches: # the text associated with a shape uses different # matplotlib keywords than the shape itself for, e.g., # color textshape = copy.copy(shape) textshape.name = "text" textkwargs = properties_func(textshape, _attrs) # calculate the text position _bb = [p.get_window_extent() for p in patches] # this is to work around backward-incompatible change made # in matplotlib 1.2. This change is later reverted so only # some versions are affected. With affected version of # matplotlib, get_window_extent method calls get_transform # method which sets the _transformSet to True, which is # not desired. for p in patches: p._transformSet = False _bbox = Bbox.union(_bb) x0, y0, x1, y1 = _bbox.extents xc = .5 * (x0 + x1) _t = _get_text(txt, xc, y1, 0, text_offset, va="bottom", **textkwargs) artist_list.append(_t) return patch_list, artist_list ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/parser_helper.py0000664000175000017500000001157500000000000017370 0ustar00jjleejjleefrom pyparsing import (Literal, CaselessKeyword, Optional, OneOrMore, ZeroOrMore, restOfLine, MatchFirst, And, Or) def as_comma_separated_list(al): l = [al[0]] comma = Literal(",").suppress() for a1 in al[1:]: l.append(comma) l.append(a1) return And(l) class wcs_shape(object): def __init__(self, *kl, **kw): self.args_list = kl self.args_repeat = kw.get("repeat", None) def get_pyparsing(self): return [a.parser for a in self.args_list] def define_shape(name, shape_args, args_repeat=None): lparen = Literal("(").suppress() rparen = Literal(")").suppress() comma = Literal(",").suppress() shape_name = CaselessKeyword(name) if args_repeat is None: shape_with_parens = And([shape_name, lparen, as_comma_separated_list(shape_args), rparen]) shape_with_spaces = shape_name + And(shape_args) else: n1, n2 = args_repeat sl = [] ss = shape_args[:n1] if ss: sl.append(as_comma_separated_list(ss)) ss = shape_args[n1:n2] if ss: ar = as_comma_separated_list(ss) if sl: sl.extend([comma + ar, ZeroOrMore(comma + ar)]) else: sl.extend([ar, ZeroOrMore(comma + ar)]) ss = shape_args[n2:] if ss: if sl: sl.extend([comma, as_comma_separated_list(ss)]) else: sl.extend([as_comma_separated_list(ss)]) sl = [shape_name, lparen] + sl + [rparen] shape_with_parens = And(sl) shape_with_spaces = shape_name + OneOrMore(And(shape_args)) return (shape_with_parens | shape_with_spaces) def define_shape_helper(shape_defs): l = [] for n, args in shape_defs.items(): s = define_shape(n, args.get_pyparsing(), args_repeat=args.args_repeat) l.append(s) return Or(l) def define_expr(regionShape, negate_func): minus = Literal("-").suppress() regionExclude = (minus + regionShape).setParseAction(negate_func) regionExpr = (regionShape | regionExclude) return regionExpr def define_line(atom, separator, comment): atomSeparator = separator.suppress() atomList = atom + ZeroOrMore(atomSeparator + atom) + \ Optional(atomSeparator) line = (atomList + Optional(comment)) | comment return line def comment_shell_like(comment_begin, parseAction=None): c = comment_begin + restOfLine if parseAction: c = c.setParseAction(parseAction) return c def define_simple_literals(literal_list, parseAction=None): l = MatchFirst([CaselessKeyword(k) for k in literal_list]) if parseAction: l = l.setParseAction(parseAction) return l class Shape(object): """Shape. Parameters ---------- shape_name : str Shape name shape_params : list List of parameters Examples -------- >>> import pyregion >>> region_string = 'fk5;circle(290.96388,14.019167,843.31194")' >>> shape_list = pyregion.parse(region_string) >>> shape = shape_list[0] >>> print(shape.__dict__) {'attr': ([], {}), 'comment': None, 'continued': None, 'coord_format': 'fk5', 'coord_list': [290.96388, 14.019167, 0.23425331666666666], 'exclude': False, 'name': 'circle', 'params': [Number(290.96388), Number(14.019167), Ang(843.31194")]} """ def __init__(self, shape_name, shape_params): self.name = shape_name self.params = shape_params self.comment = None self.exclude = False self.continued = False def __repr__(self): params_string = ",".join(map(repr, self.params)) if self.exclude: return "Shape : -%s ( %s )" % (self.name, params_string) else: return "Shape : %s ( %s )" % (self.name, params_string) def set_exclude(self): self.exclude = True class Property(object): def __init__(self, text): self.text = text def __repr__(self): return "Property : " + repr(self.text) class CoordCommand(Property): def __repr__(self): return "CoordCommand : " + repr(self.text) class Global(Property): def __repr__(self): return "Global : " + repr(self.text) class Comment(Property): def __repr__(self): return "Comment : " + repr(self.text) class RegionPusher(object): def __init__(self): self.flush() def flush(self): self.stack = [] self.comment = None self.continued = None def pushAtom(self, s, l, tok): self.stack.append(tok[-1]) def pushComment(self, s, l, tok): self.comment = tok[-1].strip() def set_continued(self, s, l, tok): self.continued = True ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/physical_coordinate.py0000664000175000017500000000420600000000000020551 0ustar00jjleejjleeclass PhysicalCoordinate(object): def __init__(self, header): phys_coord = "" # check if physical coordinate is defined. FIXME! for C in ["P", "L"]: try: if (header["WCSTY1" + C].strip() == "PHYSICAL") \ and (header["WCSTY2" + C].strip() == "PHYSICAL"): phys_coord = C except KeyError: pass try: if (header["CTYPE1" + C].strip() == "X") \ and (header["CTYPE2" + C].strip() == "Y"): phys_coord = C except KeyError: pass if phys_coord: C = phys_coord cv1, cr1, cd1 = header["CRVAL1" + C], header["CRPIX1" + C], header[" CDELT1" + C] cv2, cr2, cd2 = header["CRVAL2" + C], header["CRPIX2" + C], header[" CDELT2" + C] self._physical_coord_not_defined = False self.cv1_cr1_cd1 = cv1, cr1, cd1 self.cv2_cr2_cd2 = cv2, cr2, cd2 self.cdelt = (cd1 * cd2) ** .5 else: self._physical_coord_not_defined = True self.cv1_cr1_cd1 = 0, 0, 1 self.cv2_cr2_cd2 = 0, 0, 1 self.cdelt = 1 def to_physical(self, imx, imy): if self._physical_coord_not_defined: return imx, imy cv1, cr1, cd1 = self.cv1_cr1_cd1 cv2, cr2, cd2 = self.cv2_cr2_cd2 phyx = cv1 + (imx - cr1) * cd1 phyy = cv2 + (imy - cr2) * cd2 return phyx, phyy def to_image(self, phyx, phyy): if self._physical_coord_not_defined: return phyx, phyy cv1, cr1, cd1 = self.cv1_cr1_cd1 cv2, cr2, cd2 = self.cv2_cr2_cd2 imx = cr1 + (phyx - cv1) / cd1 imy = cr2 + (phyy - cv2) / cd2 return imx, imy def to_physical_distance(self, im_distance): if self._physical_coord_not_defined: return im_distance return im_distance * self.cdelt def to_image_distance(self, im_physical): if self._physical_coord_not_defined: return im_physical return im_physical / self.cdelt ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/region_numbers.py0000664000175000017500000001231300000000000017542 0ustar00jjleejjleefrom math import pi from pyparsing import Literal, Optional, Combine, Or, Word, nums def _unsigned_simple_number(): # fnumber : 102.43, 12304.3e10, # .32??? point = Literal(".") e = Literal("e") | Literal("E") # CaselessLiteral( "E" ) fnumber = Combine(Word(nums) + Optional(point + Optional(Word(nums))) + Optional(e + Word("+-" + nums, nums))) return fnumber # .setParseAction(lambda s,l,t: (float(t[0]), t[0])) usn = _unsigned_simple_number() def get_default(v): def _f(s, l, tok): if tok: return tok return v return _f optional_sign = Optional(Literal("+") | Literal("-")).setParseAction(get_default("")) class SimpleNumber(object): def __repr__(self): return "Number(%s)" % (self.text,) def __str__(self): return self.__repr__() def __init__(self, text): self.text = text self.v = float(text) def _simple_number(): s = Combine(optional_sign + usn) s.setParseAction(lambda s, l, tok: SimpleNumber(tok[0])) return s simple_number = _simple_number() class SimpleInteger(object): def __repr__(self): return "Number(%s)" % (self.text,) def __str__(self): return self.__repr__() def __init__(self, text): self.text = text self.v = int(text) def _unsigned_integer(): s = Combine(Optional("+") + Word(nums)) s.setParseAction(lambda s, l, tok: SimpleInteger(tok[0])) return s simple_integer = _unsigned_integer() class Sixty(object): def __init__(self, sn, d, m, s): self.v = sn * (d + (m + s / 60.) / 60.) self.degree = self.v class HMS(object): def __repr__(self): return "HMS(%s)" % (self.text,) def __init__(self, kl): self.text = "".join(kl) if kl[0] == "-": sn = -1 else: sn = +1 kkl = kl[1::2] if len(kkl) == 3: d, m, s = float(kl[1]), float(kl[3]), float(kl[5]) elif len(kkl) == 2: d, m, s = float(kl[1]), float(kl[3]), 0. else: d, m, s = float(kl[1]), 0., 0. self.v = sn * (d + (m + s / 60.) / 60.) self.degree = self.v * 15 class DMS(object): def __repr__(self): return "DMS(%s)" % (self.text,) def __init__(self, kl): self.text = "".join(kl) if kl[0] == "-": sn = -1 else: sn = +1 kkl = kl[1::2] if len(kkl) == 3: d, m, s = float(kl[1]), float(kl[3]), float(kl[5]) elif len(kkl) == 2: d, m, s = float(kl[1]), float(kl[3]), 0. else: d, m, s = float(kl[1]), 0., 0. self.v = sn * (d + (m + s / 60.) / 60.) self.degree = self.v class AngularDistance(object): def __repr__(self): return "Ang(%s)" % (self.text,) def __init__(self, kl): self.text = "".join(kl) d, m, s = 0, 0, 0 if kl[1] == "d": # format of "3.5d" d = float(kl[0]) elif kl[1] == "r": # format of "3.5r" d = float(kl[0]) / pi * 180. else: # 3'5" or 3' if kl[1] == "'": m = float(kl[0]) if len(kl) == 4: s = float(kl[2]) else: # should be a format of 5" s = float(kl[0]) self.v = d + (m + s / 60.) / 60. self.degree = self.v def _sexadecimal(): colon = Literal(":") s = optional_sign + usn + colon + usn + \ Optional(colon + usn) return s sexadecimal60 = _sexadecimal().setParseAction(lambda s, l, tok: DMS(tok)) sexadecimal24 = _sexadecimal().setParseAction(lambda s, l, tok: HMS(tok)) def _hms_number(): _h = (usn + Literal("h")).leaveWhitespace() _m = (usn + Literal("m")).leaveWhitespace() _s = (usn + Literal("s")).leaveWhitespace() hms = optional_sign + _h + Optional(_m + Optional(_s)) hms = hms.setParseAction(lambda s, l, tok: HMS(tok)) return hms def _dms_number(): _d = (usn + Literal("d")).leaveWhitespace() _m = (usn + Literal("m")).leaveWhitespace() _s = (usn + Literal("s")).leaveWhitespace() dms = optional_sign + _d + Optional(_m + Optional(_s)) dms = dms.setParseAction(lambda s, l, tok: DMS(tok)) return dms hms_number = _hms_number() dms_number = _dms_number() def _angular_distance(): _m = (usn + Literal("\'").leaveWhitespace()) _s = (usn + Literal("\"").leaveWhitespace()) _dr = (usn + Or([Literal("d"), Literal("r")]).leaveWhitespace()) ms = Or([_m + Optional(_s), _s, _dr]) ms = ms.setParseAction(lambda s, l, tok: AngularDistance(tok)) return ms angular_distance = _angular_distance() class Arg(object): def __init__(self, type, parser): self.type = type self.parser = parser class CoordOdd: parser = (hms_number | sexadecimal24 | simple_number) type = HMS class CoordEven: parser = (dms_number | sexadecimal60 | simple_number) type = DMS class Distance: parser = (angular_distance | simple_number) type = AngularDistance class Angle: parser = (simple_number) type = simple_number class Integer: parser = simple_integer type = simple_number ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/region_to_filter.py0000664000175000017500000001060100000000000020054 0ustar00jjleejjleeimport numpy as np import pyregion._region_filter as region_filter import warnings def as_region_filter(shape_list, origin=1): """ Often, the regions files implicitly assume the lower-left corner of the image as a coordinate (1,1). However, the python convetion is that the array index starts from 0. By default (origin = 1), coordinates of the returned mpl artists have coordinate shifted by (1, 1). If you do not want this shift, use origin=0. """ filter_list = [] for shape in shape_list: if shape.name == "composite": continue if shape.name == "polygon": xy = np.array(shape.coord_list) - origin f = region_filter.Polygon(xy[::2], xy[1::2]) elif shape.name == "rotbox" or shape.name == "box": xc, yc, w, h, rot = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin f = region_filter.Rotated(region_filter.Box(xc, yc, w, h), rot, xc, yc) elif shape.name == "ellipse": xc, yc = shape.coord_list[:2] # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin angle = shape.coord_list[-1] maj_list, min_list = shape.coord_list[2:-1:2], shape.coord_list[3:-1:2] if len(maj_list) > 1: w1, h1 = max(maj_list), max(min_list) w2, h2 = min(maj_list), min(min_list) f1 = region_filter.Ellipse(xc, yc, w1, h1) \ & ~region_filter.Ellipse(xc, yc, w2, h2) f = region_filter.Rotated(f1, angle, xc, yc) else: w, h = maj_list[0], min_list[0] f = region_filter.Rotated(region_filter.Ellipse(xc, yc, w, h), angle, xc, yc) elif shape.name == "annulus": xc, yc = shape.coord_list[:2] # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin r_list = shape.coord_list[2:] r1 = max(r_list) r2 = min(r_list) f = region_filter.Circle(xc, yc, r1) & ~region_filter.Circle(xc, yc, r2) elif shape.name == "circle": xc, yc, r = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin f = region_filter.Circle(xc, yc, r) elif shape.name == "panda": xc, yc, a1, a2, an, r1, r2, rn = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin f1 = region_filter.Circle(xc, yc, r2) & ~region_filter.Circle(xc, yc, r1) f = f1 & region_filter.AngleRange(xc, yc, a1, a2) elif shape.name == "pie": xc, yc, r1, r2, a1, a2 = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin f1 = region_filter.Circle(xc, yc, r2) & ~region_filter.Circle(xc, yc, r1) f = f1 & region_filter.AngleRange(xc, yc, a1, a2) elif shape.name == "epanda": xc, yc, a1, a2, an, r11, r12, r21, r22, rn, angle = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin f1 = region_filter.Ellipse(xc, yc, r21, r22) & ~region_filter.Ellipse(xc, yc, r11, r12) f2 = f1 & region_filter.AngleRange(xc, yc, a1, a2) f = region_filter.Rotated(f2, angle, xc, yc) # f = f2 & region_filter.AngleRange(xc, yc, a1, a2) elif shape.name == "bpanda": xc, yc, a1, a2, an, r11, r12, r21, r22, rn, angle = shape.coord_list # -1 for change origin to 0,0 xc, yc = xc - origin, yc - origin f1 = region_filter.Box(xc, yc, r21, r22) & ~region_filter.Box(xc, yc, r11, r12) f2 = f1 & region_filter.AngleRange(xc, yc, a1, a2) f = region_filter.Rotated(f2, angle, xc, yc) # f = f2 & region_filter.AngleRange(xc, yc, a1, a2) else: warnings.warn("'as_region_filter' does not know how to convert {0}" " to a region filter.".format(shape.name)) continue if shape.exclude: filter_list = [region_filter.RegionOrList(*filter_list) & ~f] else: filter_list.append(f) return region_filter.RegionOrList(*filter_list) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3519938 pyregion-2.1.1/pyregion/tests/0000775000175000017500000000000000000000000015314 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/__init__.py0000664000175000017500000000000000000000000017413 0ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/coveragerc0000664000175000017500000000143200000000000017357 0ustar00jjleejjlee[run] source = {packagename} omit = {packagename}/_astropy_init* {packagename}/conftest* {packagename}/cython_version* {packagename}/setup_package* {packagename}/*/setup_package* {packagename}/*/*/setup_package* {packagename}/tests/* {packagename}/*/tests/* {packagename}/*/*/tests/* {packagename}/version* {packagename}/extern/* [report] exclude_lines = # Have to re-enable the standard pragma pragma: no cover # Don't complain about packages we have installed except ImportError # Don't complain if tests don't hit assertions raise AssertionError raise NotImplementedError # Don't complain about script hooks def main\(.*\): # Ignore branches that don't pertain to this version of Python pragma: py{ignore_python_version}././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633127.3559937 pyregion-2.1.1/pyregion/tests/data/0000775000175000017500000000000000000000000016225 5ustar00jjleejjlee././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/sample_fits01.header0000664000175000017500000000214000000000000022043 0ustar00jjleejjleeSIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 1629 / length of data axis NAXIS2 = 1653 / length of data axis EXTEND = T / FITS dataset may contain extensions EQUINOX = 2.0000000000000E+03 / default CTYPE1 = 'RA---TAN' CRVAL1 = 1.7114680010248E+02 CRPIX1 = 7.9250000000000E+02 CDELT1 = -1.3666666666667E-04 CUNIT1 = 'deg ' CTYPE2 = 'DEC--TAN' CRVAL2 = -5.9266678641361E+01 CRPIX2 = 8.2750000000000E+02 CDELT2 = 1.3666666666667E-04 CUNIT2 = 'deg ' CTYPE1P = 'X ' / sky coordinates CRVAL1P = 3.3045000000000E+03 CRPIX1P = 5.0000000000000E-01 CDELT1P = 1.0000000000000E+00 WCSTY1P = 'PHYSICAL' LTV1 = -3.3040000000000E+03 LTM1_1 = 1.0000000000000E+00 CTYPE2P = 'Y ' / sky coordinates CRVAL2P = 3.2695000000000E+03 CRPIX2P = 5.0000000000000E-01 CDELT2P = 1.0000000000000E+00 WCSTY2P = 'PHYSICAL' LTV2 = -3.2690000000000E+03 LTM2_2 = 1.0000000000000E+00 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/sample_fits02.header0000664000175000017500000000333200000000000022050 0ustar00jjleejjleeSIMPLE = T / Written by SkyView Thu Mar 19 00:15:05 GMT 2009 BITPIX = -64 / 4 byte floating point NAXIS = 2 / Two dimensional image NAXIS1 = 300 / Width of image NAXIS2 = 300 / Height of image CRVAL1 = 304.75 / Reference longitude CRVAL2 = 45.7 / Reference latitude RADESYS = 'FK5 ' / Coordinate system EQUINOX = 2000.0 / Epoch of the equinox CTYPE1 = 'RA---TAN' / Coordinates -- projection CTYPE2 = 'DEC--TAN' / Coordinates -- projection CRPIX1 = 150.5 / X reference pixel CRPIX2 = 150.5 / Y reference pixel CDELT1 = -0.006666666666667 / X scale CDELT2 = 0.006666666666666666 / Y scale COMMENT COMMENT SkyView Survey metadata COMMENT COMMENT Provenance: Observational data from NASA Goddard Space Flight C COMMENT enter, mosaicking of images done by SkyView. COMMENT Copyright: Public domain COMMENT Regime: X-ray COMMENT NSurvey: 1 COMMENT Frequency: 0.3 EHz (.1-2.4 keV) COMMENT Coverage: Isolated pointings in the sky. Total coverage < 14 COMMENT % COMMENT PixelScale: 15" COMMENT PixelUnits: cts/s/pixel COMMENT Resolution: 30" but variable across the field of view COMMENT Coordinates: Equatorial COMMENT Equinox: 2000 COMMENT Projection: Gnomonic COMMENT Epoch: 1991-1994 COMMENT Reference: ROSAT Mission Description and Data Products Guide, availa COMMENT ble thr ough the ROSAT Guest Observer Facility, NASA GSFC. COMMENT SkyView Rosat Survey Generation description. COMMENT COMMENT Survey specific cards COMMENT SURVEY = 'PSPC 2.0 Deg-Inten' ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/sample_fits03.header0000664000175000017500000000300200000000000022043 0ustar00jjleejjleeSIMPLE = T / conforms to FITS standard BITPIX = 64 / array data type NAXIS = 2 / number of array dimensions NAXIS1 = 4096 NAXIS2 = 2048 WCSAXES = 2 / Number of coordinate axes CRPIX1 = -234.75 / Pixel coordinate of reference point CRPIX2 = 8.3393 / Pixel coordinate of reference point CDELT1 = -0.066667 / [deg] Coordinate increment at reference point CDELT2 = 0.026667 / [deg] Coordinate increment at reference point CUNIT1 = 'deg' / Units of coordinate increment and value CUNIT2 = 'deg' / Units of coordinate increment and value CTYPE1 = 'RA---TAN' / Right ascension, gnomonic projection CTYPE2 = 'DEC--TAN' / Declination, gnomonic projection CRVAL1 = 1.0 / [deg] Coordinate value at reference point CRVAL2 = 2.0 / [deg] Coordinate value at reference point LONPOLE = 180.0 / [deg] Native longitude of celestial pole LATPOLE = 2.0 / [deg] Native latitude of celestial pole RADESYS = 'ICRS' / Equatorial coordinate system ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/sample_fits04.header0000664000175000017500000000134500000000000022054 0ustar00jjleejjleeSIMPLE = T / BITPIX = -32 / NAXIS = 3 / NAXIS1 = 256 / NAXIS2 = 256 / NAXIS3 = 63 / EQUINOX = 2.000000000E+03 /Epoch of RA DEC CTYPE1 = 'RA---SIN' / CRVAL1 = 1.81046666667E+02 / CDELT1 = -1.388888923E-03 / CRPIX1 = 1.280000000E+02 / CROTA1 = 0.000000000E+00 / CTYPE2 = 'DEC--SIN' / CRVAL2 = 1.84433333333E+01 / CDELT2 = 1.388888923E-03 / CRPIX2 = 1.290000000E+02 / CROTA2 = 0.000000000E+00 / CTYPE3 = 'FREQ ' / CRVAL3 = 1.41604138193E+09 / CDELT3 = 4.882812500E+04 / CRPIX3 = 3.200000000E+01 / CROTA3 = 0.000000000E+00 / ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test.header0000664000175000017500000000116400000000000020360 0ustar00jjleejjleeSIMPLE = T / file does conform to FITS standard BITPIX = 16 / number of bits per data pixel NAXIS = 2 / number of data axes NAXIS1 = 1629 / length of data axis NAXIS2 = 1653 / length of data axis EXTEND = T / FITS dataset may contain extensions CTYPE1 = 'RA---TAN' CRVAL1 = 1.7114680010248E+02 CRPIX1 = 7.9250000000000E+02 CDELT1 = -1.3666666666667E-04 CUNIT1 = 'deg ' CTYPE2 = 'DEC--TAN' CRVAL2 = -5.9266678641361E+01 CRPIX2 = 8.2750000000000E+02 CDELT2 = 1.3666666666667E-04 CUNIT2 = 'deg '././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01.reg0000664000175000017500000000076000000000000020047 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 ## -ellipse(171.15816,-59.263193,22.632",10.332",317.01716) # width=3 background ascircle(171.10096,-59.250612,18.510811") # color=cyan box(171.16339,-59.281643,42.804",23.616",19.038396) # width=4 polygon(171.1239,-59.26881,171.09051,-59.262088,171.0985,-59.285735,171.1239,-59.27698) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_ciao.reg0000664000175000017500000000047200000000000021042 0ustar00jjleejjlee# Region file format: CIAO version 1.0 -ellipse(11:24:37.960,-59:15:47.50,0.3772',0.1722',317.017) circle(11:24:24.230,-59:15:02.20,0.308514') rotbox(11:24:39.213,-59:16:53.91,0.7134',0.3936',19.0384) polygon(11:24:29.737,-59:16:07.72,11:24:21.723,-59:15:43.52,11:24:23.641,-59:17:08.64,11:24:29.736,-59:16:37.13) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_ciao_physical.reg0000664000175000017500000000037200000000000022735 0ustar00jjleejjlee# Region file format: CIAO version 1.0 -ellipse(4053.9922,4121.9905,46,21,317.017) circle(4267.9987,4214.0083,37.623659) rotbox(4034.5013,3987.0067,87,48,19.0384) polygon(4182.1103,4080.8819,4307.0067,4129.9947,4276.9938,3957.01,4182.1053,4021.1054) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_ds9_physical.reg0000664000175000017500000000064300000000000022522 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: t1.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 physical -ellipse(4053.9922,4121.9905,46,21,317.017) circle(4267.9987,4214.0083,37.623659) box(4034.5013,3987.0067,87,48,19.0384) polygon(4182.1103,4080.8819,4307.0067,4129.9947,4276.9938,3957.01,4182.1053,4021.1054) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_fk4.reg0000664000175000017500000000111300000000000020604 0ustar00jjleejjlee# Region file format: DS9 version 4.1 global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk4 -ellipse(170.59136,-58.988299,22.632",10.332",316.93614) # width=3 font="helvetica 10 normal" background circle(170.53458,-58.975762,18.510811") # color=cyan font="helvetica 10 normal" box(170.5966,-59.006744,42.804",23.616",18.957374) # width=4 font="helvetica 10 normal" polygon(170.55739,-58.993942,170.52425,-58.987246,170.53224,-59.010886,170.55741,-59.002112) # font="helvetica 10 normal" ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_fk5.reg0000664000175000017500000000075300000000000020616 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 -ellipse(171.15816,-59.263193,22.632",10.332",317.01716) # width=3 background circle(171.10096,-59.250612,18.510811") # color=cyan box(171.16339,-59.281643,42.804",23.616",19.038396) # width=4 polygon(171.1239,-59.26881,171.09051,-59.262088,171.0985,-59.285735,171.1239,-59.27698) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_fk5_degree.reg0000664000175000017500000000075300000000000022131 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 -ellipse(171.15816,-59.263193,22.632",10.332",317.01716) # width=3 background circle(171.10096,-59.250612,18.510811") # color=cyan box(171.16339,-59.281643,42.804",23.616",19.038396) # width=4 polygon(171.1239,-59.26881,171.09051,-59.262088,171.0985,-59.285735,171.1239,-59.27698) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_fk5_sexagecimal.reg0000664000175000017500000000101500000000000023150 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 -ellipse(11:24:37.960,-59:15:47.50,22.632",10.332",317.017) # width=3 background circle(11:24:24.230,-59:15:02.20,18.5108") # color=cyan box(11:24:39.213,-59:16:53.91,42.804",23.616",19.0384) # width=4 polygon(11:24:29.737,-59:16:07.72,11:24:21.723,-59:15:43.52,11:24:23.641,-59:17:08.64,11:24:29.736,-59:16:37.13) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_gal.reg0000664000175000017500000000104700000000000020671 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 galactic -ellipse(+292:01:59.027,+01:45:33.389,22.632",10.332",297.784) # width=3 background circle(+292:00:04.651,+01:45:41.444,18.5108") # color=cyan box(+292:02:29.979,+01:44:33.837,42.804",23.616",359.806) # width=4 polygon(+292:01:06.152,+01:44:53.528,+292:00:00.146,+01:44:56.102,+292:00:42.141,+01:43:40.599,+292:01:15.844,+01:44:25.760) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_icrs.reg0000664000175000017500000000115200000000000021063 0ustar00jjleejjlee# Region file format: DS9 version 4.1 global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 icrs -ellipse(11:24:37.956,-59:15:47.48,22.632",10.332",317.022) # width=3 font="helvetica 10 normal" background circle(11:24:24.226,-59:15:02.19,18.5108") # color=cyan font="helvetica 10 normal" box(11:24:39.210,-59:16:53.90,42.804",23.616",19.0435) # width=4 font="helvetica 10 normal" polygon(11:24:29.733,-59:16:07.71,11:24:21.720,-59:15:43.51,11:24:23.637,-59:17:08.63,11:24:29.732,-59:16:37.11) # font="helvetica 10 normal" ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_img.reg0000664000175000017500000000063300000000000020702 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image -ellipse(750,853,46,21,317.01716) # width=3 background circle(964,945,37.6236) # color=cyan box(730.5,718,87,48,19.038396) # width=4 polygon(878.11234,811.88766,1003,861,973,688,878.11234,752.11234) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_mixed.reg0000664000175000017500000000103100000000000021225 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 -ellipse(171.15816,-59.263193,22.632",10.332",317.01716) # width=3 background galactic circle(+292:00:04.651,+01:45:41.444,18.5108") # color=cyan image box(730.5,718,87,48,19.038396) # width=4 galactic polygon(+292:01:06.152,+01:44:53.528,+292:00:00.146,+01:44:56.102,+292:00:42.141,+01:43:40.599,+292:01:15.844,+01:44:25.760) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test01_print.reg0000664000175000017500000000052600000000000021263 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 circle(11:24:24.230,-59:15:02.20,18.5108") # color=cyan background box(11:24:39.213,-59:16:53.91,42.804",23.616",19.0384) # width=4 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test02.reg0000664000175000017500000000062400000000000020047 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: pspc_skyview.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 physical ellipse(82,167,36,75,346.95915) epanda(140,166,87.19363,195.80251,1,32.5,39.5,65,79,1,307.90041) -polygon(78.265142,201.73486,132,209,125,178,163.73486,116.26514,78.265142,116.26514) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test02_1_fk5.reg0000664000175000017500000000423000000000000021031 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: pspc_skyview.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 circle(305.66137,46.273027,286.45302") ellipse(305.2084,46.309061,240",600",15.433424) # color=black width=4 box(304.61491,46.299899,1032",552",28.9055) # color=white tag={Group 1} polygon(304.30761,46.142612,303.94162,46.140616,304.12265,46.314927,303.72947,46.178781,303.9453,45.887034,304.10869,45.854872,304.30963,45.889013) # color=red line(305.70423,45.962694,305.10953,45.946101) # line=0 0 dash=1 # vector(305.47681,45.437697,1448.972",63.434949) vector=1 # text(304.75479,45.939998) text={Text} annulus(304.01194,45.570957,216",506.2428",674.9904") # color=yellow ellipse(304.7357,45.626666,349.44527",196.03028",797.79697",447.54464",339.24891) # width=2 tag={Group 1} panda(305.48266,45.157674,0,151.26,2,398.8488",797.6976",1) # color=blue width=2 epanda(304.78308,45.140013,0,88.057145,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=(0 88.057145 228.1969 327.92448)(193.49419" 257.83216" 504.22594" 671.88407" 672.30125" 895.84543")(8.11303) color=cyan epanda(304.78308,45.140013,0,88.057145,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,88.057145,228.1969,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,88.057145,228.1969,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,228.1969,327.92448,1,193.49419",257.83216",504.22594",671.88407",1,8.11303) # epanda=ignore epanda(304.78308,45.140013,228.1969,327.92448,1,504.22594",671.88407",672.30125",895.84543",1,8.11303) # epanda=ignore point(304.26232,45.252305) # point=circle point(304.0256,45.251053) # point=box color=magenta point(303.79815,45.262722) # point=diamond point(304.25414,45.105615) # point=cross point(304.04637,45.104528) # point=x point(304.25577,44.918982) # point=arrow point(304.02028,44.931056) # point=boxcircle bpanda(305.53095,44.934745,0,290,1,605.36378",294.48644",1371.1215",666.9984",1,342.545) # color=blue width=2 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test02_1_img.reg0000664000175000017500000000520200000000000021120 0ustar00jjleejjlee# Region file format: DS9 version 4.1 global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image circle(55.999545,237.00008,11.935542) # font="helvetica 10 normal" ellipse(102.99988,241.99999,10,25,15.430008) # color=black width=4 font="helvetica 10 normal" box(164.50049,240.50007,43,23,28.902084) # color=white font="helvetica 10 normal" tag={Group 1} polygon(196.47911,217.02112,234.52161,217.0211,215.50036,242.99994,256.50007,222.99997,234.52148,178.97883,217.49965,173.99993,196.47842,178.97892) # color=red font="helvetica 10 normal" line(51.000257,190.50004,113.00049,187.49993) # line=0 0 font="helvetica 10 normal" dash=1 # vector(73.999544,111.49999,60.373833,63.431533) vector=1 font="helvetica 10 normal" # text(150.00034,186.49993) font="helvetica 10 normal" text={Text} annulus(228.00031,131.49998,9,21.09345,28.1246) # color=yellow font="helvetica 10 normal" ellipse(152.00007,139.50003,14.56022,8.1679283,33.24154,18.647693,339.24549) # width=2 font="helvetica 10 normal" tag={Group 1} panda(72.999339,69.500035,359.99658,511.25658,2,16.6187,33.2374,1) # color=blue width=2 font="helvetica 10 normal" epanda(146.99975,66.499992,359.99658,448.05373,1,8.0622579,10.743007,21.009414,27.99517,1,8.1096144) # epanda=(359.99658 88.053729 228.19348 327.92106)(8.0622579 10.743007 21.009414 27.99517 28.012552 37.326893)(8.1096144) color=cyan font="helvetica 10 normal" epanda(146.99975,66.499992,359.99658,448.05373,1,21.009414,27.99517,28.012552,37.326893,1,8.1096144) # epanda=ignore epanda(146.99975,66.499992,88.053729,228.19348,1,8.0622579,10.743007,21.009414,27.99517,1,8.1096144) # epanda=ignore epanda(146.99975,66.499992,88.053729,228.19348,1,21.009414,27.99517,28.012552,37.326893,1,8.1096144) # epanda=ignore epanda(146.99975,66.499992,228.19348,327.92106,1,8.0622579,10.743007,21.009414,27.99517,1,8.1096144) # epanda=ignore epanda(146.99975,66.499992,228.19348,327.92106,1,21.009414,27.99517,28.012552,37.326893,1,8.1096144) # epanda=ignore point(201.99986,83.500049) # point=circle font="helvetica 10 normal" point(227.00014,83.50004) # point=box color=magenta font="helvetica 10 normal" point(251.00007,85.50005) # point=diamond font="helvetica 10 normal" point(203,61.499996) # point=cross font="helvetica 10 normal" point(224.99987,61.500064) # point=x font="helvetica 10 normal" point(203.00027,33.499944) # point=arrow font="helvetica 10 normal" point(227.99956,35.50006) # point=boxcircle font="helvetica 10 normal" bpanda(67.56482,36.104174,359.99658,649.99658,1,25.223491,12.270268,57.130062,27.7916,1,342.54158) # color=blue width=2 font="helvetica 10 normal" ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test03_ciao_physical.reg0000664000175000017500000000057100000000000022740 0ustar00jjleejjlee# Region file format: CIAO version 1.0 ellipse(785.88577,1797.7287,549.82619,89.161004,0) rotbox(1959.8391,683.21624,638.98721,267.48301,42.160426) polygon(2736.2827,1458.4216,2779.6249,1829.9257,2983.9522,1458.4216,3400.5806,1340.7403,2983.9522,1210.7521,2815.3277,1176.5112,2869.0754,1352.6843,2736.2827,1210.7521,2528.6732,1364.6282,2728.7342,1358.6562,2597.3509,1612.4649) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test03_fk5.reg0000664000175000017500000000115000000000000020610 0ustar00jjleejjlee# Region file format: DS9 version 4.1 global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 ellipse(20:41:00.281,+29:29:15.89,131959",8559.56",357.84) box(19:28:38.535,+7:15:35.29,153358",25678.7",40) # color=white polygon(19:07:03.207,+11:10:17.68,19:05:49.490,+13:37:37.96,19:02:25.027,+10:23:12.68,18:56:03.686,+8:34:30.53,19:02:38.855,+8:43:34.52,19:05:46.348,+8:55:32.97,19:04:35.006,+10:00:26.45,19:07:18.023,+9:23:23.72,19:11:37.745,+11:12:20.02,19:07:18.345,+10:28:49.11,19:09:49.324,+12:48:22.55) # width=3 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test03_gal.reg0000664000175000017500000000120500000000000020667 0ustar00jjleejjlee# Region file format: DS9 version 4.1 global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 galactic ellipse(+71:42:00.444,-7:34:59.297,131959",8559.56",47.7848) box(+43:39:56.983,-4:52:47.527,153358",25678.7",89.9452) # color=white polygon(+44:38:34.311,+1:39:22.099,+46:41:23.616,+3:02:52.493,+43:25:23.329,+2:18:32.674,+41:05:39.208,+2:52:46.601,+41:58:16.635,+1:29:58.465,+42:30:09.271,+0:54:17.680,+43:19:45.731,+1:39:41.400,+43:05:17.265,+0:46:59.718,+45:11:25.241,+0:40:33.344,+44:03:25.785,+1:17:00.534,+46:24:23.695,+1:48:24.681) # width=3 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test03_icrs.reg0000664000175000017500000000115100000000000021064 0ustar00jjleejjlee# Region file format: DS9 version 4.1 global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 icrs ellipse(20:41:00.279,+29:29:15.87,131959",8559.56",357.84) box(19:28:38.533,+7:15:35.27,153358",25678.7",40) # color=white polygon(19:07:03.205,+11:10:17.66,19:05:49.489,+13:37:37.94,19:02:25.026,+10:23:12.66,18:56:03.685,+8:34:30.51,19:02:38.854,+8:43:34.50,19:05:46.346,+8:55:32.95,19:04:35.004,+10:00:26.43,19:07:18.022,+9:23:23.70,19:11:37.743,+11:12:20.00,19:07:18.343,+10:28:49.09,19:09:49.323,+12:48:22.53) # width=3 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test03_img.reg0000664000175000017500000000105100000000000020677 0ustar00jjleejjlee# Region file format: DS9 version 4.1 global color=green dashlist=8 3 width=1 font="helvetica 10 normal roman" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image ellipse(785.88577,1797.7287,549.82619,89.161004,0) box(1959.8391,683.21624,638.98721,267.48301,42.160426) # color=white polygon(2736.2827,1458.4216,2779.6249,1829.9257,2983.9522,1458.4216,3400.5806,1340.7403,2983.9522,1210.7521,2815.3277,1176.5112,2869.0754,1352.6843,2736.2827,1210.7521,2528.6732,1364.6282,2728.7342,1358.6562,2597.3509,1612.4649) # width=3 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test04_img.reg0000664000175000017500000000103700000000000020704 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: E3000-7000.b1.img.fl.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image -ellipse(750,853,46,21,317.017) # width=3 text={Ellipse} background circle(964,945,37.6236) # color=cyan text={Circle} box(730.5,718,87,48,19.0384) # width=4 text={Rectangle} polygon(878.11237,811.88766,1003,861,973.00003,688,878.11237,752.11234) # text={Polygon} point(800, 960) # point=box color=black text={Point} ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test_annuli.reg0000664000175000017500000000176300000000000021260 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image ellipse(936.01565,922.00132,30.407693,20.504055,58.654304,39.550882,107.20306,72.287547,30) annulus(712.00157,914.99658,57.134451,76.17922,95.223988,114.26876) panda(711,716,338.334,648.034,4,38.9388,77.8776,2) epanda(893,720,53.141616,122.03456,1,33.936596,47.21819,67.873192,94.43638,1,28.831146) || # epanda=(53.141616 122.03456 217.20636 259.80344 311.69855)(33.936596 47.21819 67.873192 94.43638)(28.831146) epanda(893,720,122.03456,217.20636,1,33.936596,47.21819,67.873192,94.43638,1,28.831146) || # epanda=ignore epanda(893,720,217.20636,259.80344,1,33.936596,47.21819,67.873192,94.43638,1,28.831146) || # epanda=ignore epanda(893,720,259.80344,311.69855,1,33.936596,47.21819,67.873192,94.43638,1,28.831146) # epanda=ignore bpanda(982.0005,775.9995,0,360,4,28.9995,30.9995,57.999,61.999,1,0) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test_annuli_ciao.reg0000664000175000017500000000134000000000000022242 0ustar00jjleejjlee# Region file format: CIAO version 1.0 annulus(11:24:40.397,-59:15:16.99,0.468502',0.62467') annulus(11:24:40.397,-59:15:16.99,0.62467',0.780837') annulus(11:24:40.397,-59:15:16.99,0.780837',0.937004') pie(11:24:40.465,-59:16:54.89,0.319298',0.478947',338.334,415.759) pie(11:24:40.465,-59:16:54.89,0.319298',0.478947',55.759,133.184) pie(11:24:40.465,-59:16:54.89,0.319298',0.478947',133.184,210.609) pie(11:24:40.465,-59:16:54.89,0.319298',0.478947',210.609,288.034) pie(11:24:40.465,-59:16:54.89,0.478947',0.638596',338.334,415.759) pie(11:24:40.465,-59:16:54.89,0.478947',0.638596',55.759,133.184) pie(11:24:40.465,-59:16:54.89,0.478947',0.638596',133.184,210.609) pie(11:24:40.465,-59:16:54.89,0.478947',0.638596',210.609,288.034) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test_annuli_wcs.reg0000664000175000017500000000215400000000000022127 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 ellipse(171.10843,-59.253758,14.960585",10.087995",28.857918",19.459034",52.743907",35.565473",30) annulus(171.16832,-59.254719,28.11015",37.480176",46.850202",56.22023") panda(171.16861,-59.281915,338.334,648.034,4,19.15789",38.315779",2) epanda(171.11991,-59.281368,53.141616,122.03456,1,16.696805",23.231349",33.39361",46.462699",1,28.831146) || # epanda=(53.141616 122.03456 217.20636 259.80344 311.69855)(16.696805" 23.231349" 33.39361" 46.462699")(28.831146) epanda(171.11991,-59.281368,122.03456,217.20636,1,16.696805",23.231349",33.39361",46.462699",1,28.831146) || # epanda=ignore epanda(171.11991,-59.281368,217.20636,259.80344,1,16.696805",23.231349",33.39361",46.462699",1,28.831146) || # epanda=ignore epanda(171.11991,-59.281368,259.80344,311.69855,1,16.696805",23.231349",33.39361",46.462699",1,28.831146) # epanda=ignore bpanda(171.09611,-59.273707,0,360,4,14.267754",15.251754",28.535508",30.503508",1,0) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test_context.reg0000664000175000017500000000462700000000000021460 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 image # composite(818,804,22.791484) || composite=1 color=red point(818,804) || # point=boxcircle # text(917.93183,1012.7012) || textangle=22.791484 font="times 12 normal" text={I} # text(1038.5994,726.09152) || textangle=22.791484 font="times 12 normal" text={II} # text(719.41413,591.67326) || textangle=22.791484 font="times 12 normal" text={III} # text(601.61767,880.81539) || textangle=22.791484 font="times 12 normal" text={IV} box(605.81608,905.40937,312.19512,39.02439,22.791484) || box(620.9621,869.4441,312.19512,39.02439,22.791484) || box(919.09424,1016.1681,39.02439,312.19512,22.791484) || box(1014.738,738.86864,312.19512,39.02439,22.791484) || box(1029.8552,702.89125,312.19512,39.02439,22.791484) || box(716.57467,592.13153,39.02439,312.19512,22.791484) || box(666.40018,761.54827,312.19512,39.02439,22.791484) || box(651.25415,797.51354,312.19512,39.02439,22.791484) || box(636.10813,833.47882,312.19512,39.02439,22.791484) || box(590.67005,941.37466,312.19512,39.02439,22.791484) || box(575.524,977.33995,312.19512,39.02439,22.791484) || box(560.37801,1013.3052,312.19512,39.02439,22.791484) || box(1075.2743,594.98745,312.19512,39.02439,22.791484) || box(1060.1571,630.96483,312.19512,39.02439,22.791484) || box(1044.9724,666.91387,312.19512,39.02439,22.791484) || box(999.55334,774.81768,312.19512,39.02439,22.791484) || box(984.43613,810.79506,312.19512,39.02439,22.791484) || box(969.25147,846.74409,312.19512,39.02439,22.791484) || box(1026.9902,1061.6062,39.02439,312.19512,22.791484) || box(991.04728,1046.4696,39.02439,312.19512,22.791484) || box(955.03709,1031.3047,39.02439,312.19512,22.791484) || box(883.15144,1001.0315,39.02439,312.19512,22.791484) || box(847.14118,985.86658,39.02439,312.19512,22.791484) || box(811.19838,970.72999,39.02439,312.19512,22.791484) || box(775.25558,955.59341,39.02439,312.19512,22.791484) || box(860.43576,652.71563,39.02439,312.19512,22.791484) || box(824.47049,637.56961,39.02439,312.19512,22.791484) || box(788.50521,622.42358,39.02439,312.19512,22.791484) || box(752.53995,607.27755,39.02439,312.19512,22.791484) || box(680.60939,576.9855,39.02439,312.19512,22.791484) || box(644.64412,561.83947,39.02439,312.19512,22.791484) || box(608.67884,546.69344,39.02439,312.19512,22.791484) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/data/test_text.reg0000664000175000017500000000124500000000000020751 0ustar00jjleejjlee# Region file format: DS9 version 4.1 # Filename: test01.fits global color=green dashlist=8 3 width=1 font="helvetica 10 normal" select=1 highlite=1 dash=0 fixed=0 edit=1 move=1 delete=1 include=1 source=1 fk5 line(171.2398,-59.290221,171.17045,-59.241461) # line=1 1 width=2 # vector(171.15897,-59.260323,121.9732",291.286) vector=1 # text(171.08249,-59.263998) font="helvetica 14 normal" text={Region} line(171.12155,-59.236131,171.06222,-59.243213) # line=0 0 font="helvetica 14 normal" dash=1 # compass(171.09742,-59.292704,31.583948") compass=physical {N} {E} 1 1 font="helvetica 14 normal" dash=1 # ruler(171.25782,-59.237453,171.2087,-59.261266) ruler=physical physical ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/setup_package.py0000664000175000017500000000020400000000000020475 0ustar00jjleejjleedef get_package_data(): return { _ASTROPY_PACKAGE_NAME_ + '.tests': ['coveragerc', 'data/*.reg', 'data/*.header'] } ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/test_cube.py0000664000175000017500000000102200000000000017636 0ustar00jjleejjleeimport os from os.path import join from astropy.io.fits import Header from .. import parse from numpy.testing import assert_allclose rootdir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data') def demo_header(): return Header.fromtextfile(join(rootdir, "sample_fits04.header")) def test_cube(): header = demo_header() region_string = 'circle(12:04:15.065,+18:26:51.00,173.029")' r = parse(region_string).as_imagecoord(header) assert_allclose(r[0].coord_list, [117, 132, 34.6], atol=0.01) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7811084 pyregion-2.1.1/pyregion/tests/test_ds9_attr_parser.py0000664000175000017500000000205700000000000022036 0ustar00jjleejjleefrom ..ds9_attr_parser import get_ds9_attr_parser, get_attr, Ds9AttrParser def test_attr(): p = get_ds9_attr_parser() assert p.parseString("color=green")[0] == ("color", "green") assert p.parseString("font=\"123 123\"")[0] == ("font", '"123 123"') assert p.parseString("color")[0] == ("color",) assert p.parseString("tag={group 1}")[0] == ("tag", "group 1") assert p.parseString('color=#6a8')[0] == ("color", "#6a8") def test_get_attr(): attr_list = [('tag', 'group1'), ('tag', 'group2'), ('tag', 'group3'), ('color', 'green')] global_attrs = [], {} attr = get_attr(attr_list, global_attrs) assert attr[0] == [] assert attr[1] == {'color': 'green', 'tag': set(['group1', 'group3', 'group2'])} def test_shape_in_comment(): parser = Ds9AttrParser() r = parser.parse_check_shape("segment(0, 2)") assert r[0].name == "segment" assert r[1] == [] r = parser.parse_check_shape("projection(0, 2, 3, 2, 4)") assert r[0].name == "projection" assert r[1] == [] ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7851083 pyregion-2.1.1/pyregion/tests/test_ds9_region_parser.py0000664000175000017500000000333700000000000022351 0ustar00jjleejjleefrom ..ds9_region_parser import RegionParser, Global from ..parser_helper import CoordCommand, Shape from ..region_numbers import SimpleNumber, AngularDistance def test_regionLine(): test_string_1 = [ "circle(109,253,28.950304) # comment 1", "polygon(257,290,300.78944,271.78944,300.78944,178.21056,258,216,207.21056,178.21056)", "polygon(273.98971,175.01029,274.01029,175.01029,274.01029,174.98971,273.98971,174.98971)", "-rotbox(162,96.5,134,41,43.801537)", "ellipse(172,328,23,41,27.300813)", ] test_names = [ "circle", "polygon", "polygon", "rotbox", "ellipse", ] rp = RegionParser() for s, n in zip(test_string_1, test_names): s = rp.parseLine(s)[0] assert len(s) == 1 assert s[0].name == n def test_comment(): s = "circle(3323, 423, 423) # comment" rp = RegionParser() c = rp.parseLine(s)[1] assert c == "comment" s = " # comment2" c = rp.parseLine(s)[1] assert c == "comment2" def test_global(): s = 'global color=green font="helvetica 10 normal" select=1 highlite=1 edit=1 move=1 delete=1 include=1 fixed=0 source' rp = RegionParser() ss = rp.parseLine(s)[0] assert isinstance(ss[0], Global) def test_space_delimited_region(): """ Regression test for https://github.com/astropy/pyregion/issues/73 """ s = 'J2000; circle 188.5557102 12.0314056 1" # color=red' rp = RegionParser() ss = rp.parseLine(s)[0] assert isinstance(ss[0], CoordCommand) assert ss[0].text == "J2000" assert isinstance(ss[1], Shape) param_types = list(map(type, ss[1].params)) assert param_types == [SimpleNumber, SimpleNumber, AngularDistance] ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7851083 pyregion-2.1.1/pyregion/tests/test_get_mask.py0000664000175000017500000000115400000000000020520 0ustar00jjleejjleeimport os import numpy as np from os.path import join from astropy.io.fits import Header from .. import open as pyregion_open rootdir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data') def demo_header(): return Header.fromtextfile(join(rootdir, "sample_fits01.header")) def test_region(): ref_name = "test01_img.reg" header = demo_header() ref_region = pyregion_open(join(rootdir, ref_name)).as_imagecoord(header) mask = ref_region.get_mask(shape=(100, 100)) assert isinstance(mask, np.ndarray) and mask.shape == (100, 100) # TODO: assert the content of the mask, too ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7851083 pyregion-2.1.1/pyregion/tests/test_parser_helper.py0000664000175000017500000000251600000000000021564 0ustar00jjleejjleefrom ..parser_helper import define_shape def test_define_shape(): from ..region_numbers import CoordOdd, CoordEven, Distance args = [s.parser for s in [CoordOdd, CoordEven, Distance]] circle_parser = define_shape("circle", args, args_repeat=None) p = circle_parser.parseString("circle(1:2:3, 2:4:5, 3.)") assert p[0] == "circle" assert isinstance(p[1], CoordOdd.type) assert isinstance(p[2], CoordEven.type) args = [s.parser for s in [CoordEven]] circle_parser = define_shape("circle", args, args_repeat=None) p = circle_parser.parseString("circle(1:2:3)") p = circle_parser.parseString("circle(1d2m3s)") assert p[0] == "circle" assert isinstance(p[1], CoordEven.type) args = [s.parser for s in [CoordOdd, CoordEven, Distance, Distance]] ell_parser = define_shape("ell", args, args_repeat=(2, 4)) p = ell_parser.parseString("ell(1:2:2, 2:2:2, 3, 4, 5, 6)") assert p[0] == "ell" assert isinstance(p[1], CoordOdd.type) assert isinstance(p[2], CoordEven.type) args = [s.parser for s in [CoordOdd, CoordEven]] polygon_parser = define_shape("polygon", args, args_repeat=(0, 2)) p = polygon_parser.parseString("polygon(3:2:4.22, 3:3:4., 3:2:3, 3.2)") assert p[0] == "polygon" assert isinstance(p[-2], CoordOdd.type) assert isinstance(p[2], CoordEven.type) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7851083 pyregion-2.1.1/pyregion/tests/test_region.py0000664000175000017500000000524200000000000020213 0ustar00jjleejjleeimport os import pytest import numpy as np from os.path import join from astropy.io.fits import Header from .. import open as pyregion_open from numpy.testing import assert_allclose rootdir = join(os.path.dirname(os.path.abspath(__file__)), 'data') @pytest.fixture(scope="module") def header(): return Header.fromtextfile(join(rootdir, "sample_fits01.header")) @pytest.mark.parametrize(("ref_name", "reg_name", "header_name"), [ ("test01_img.reg", "test01_fk5_sexagecimal.reg", "sample_fits01.header"), ("test01_img.reg", "test01_gal.reg", "sample_fits01.header"), ("test01_img.reg", "test01_ds9_physical.reg", "sample_fits01.header"), ("test01_img.reg", "test01_fk5_degree.reg", "sample_fits01.header"), ("test01_img.reg", "test01_mixed.reg", "sample_fits01.header"), ("test01_img.reg", "test01_ciao.reg", "sample_fits01.header"), ("test01_img.reg", "test01_ciao_physical.reg", "sample_fits01.header"), ("test01_img.reg", "test01_fk5.reg", "sample_fits01.header"), ("test01_img.reg", "test01_fk4.reg", "sample_fits01.header"), ("test01_img.reg", "test01_icrs.reg", "sample_fits01.header"), ("test02_1_img.reg", "test02_1_fk5.reg", "sample_fits02.header"), ("test_annuli.reg", "test_annuli_wcs.reg", "sample_fits01.header"), ("test03_img.reg", "test03_fk5.reg", "sample_fits03.header"), ("test03_img.reg", "test03_icrs.reg", "sample_fits03.header"), ("test03_img.reg", "test03_ciao_physical.reg", "sample_fits03.header"), ("test03_img.reg", "test03_gal.reg", "sample_fits03.header"), ]) def test_region(ref_name, reg_name, header_name): header = Header.fromtextfile(join(rootdir, header_name)) ref_region = pyregion_open(join(rootdir, ref_name)).as_imagecoord(header) r = pyregion_open(join(rootdir, reg_name)).as_imagecoord(header) assert len(r) == len(ref_region) for ref_reg, reg in zip(ref_region, r): if reg.name == "rotbox": reg.name = "box" assert ref_reg.name == reg.name # Normalize everything like angles ref_list = np.asarray(ref_reg.coord_list) reg_list = np.asarray(reg.coord_list) assert_allclose((ref_list + 180) % 360 - 180, (reg_list + 180) % 360 - 180, atol=0.03) assert ref_reg.exclude == reg.exclude @pytest.mark.parametrize("reg_name", [ "test_annuli_ciao.reg", # subset of test03_img.reg "test_context.reg", "test02.reg", "test04_img.reg", "test_text.reg", "test01.reg", ]) def test_open_regions(reg_name, header): # TODO: Better test. Like figure out how these files relate to each other pyregion_open(join(rootdir, reg_name)).as_imagecoord(header) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7851083 pyregion-2.1.1/pyregion/tests/test_region_numbers.py0000664000175000017500000000321500000000000021744 0ustar00jjleejjleefrom math import pi from ..region_numbers import (usn, simple_integer, sexadecimal60, Sixty, hms_number, dms_number, angular_distance, CoordOdd, HMS) def test_usn(): for f in ["32.4", "0.23", "0.3e-7", "1.234e+7"]: assert usn.parseString(f)[0] == f def test_integer(): for f in ["32", "+3"]: assert simple_integer.parseString(f)[0].text == f def test_sexadecimal(): s = sexadecimal60.parseString assert s("32:24:32.2")[0].v == Sixty(1, 32, 24, 32.2).v assert s("-32:24:32.2")[0].v == Sixty(-1, 32, 24, 32.2).v assert s("+32:24:32.2")[0].v == Sixty(1, 32, 24, 32.2).v def test_hms(): s = hms_number.parseString assert s("32h24m32.2s")[0].v == Sixty(1, 32, 24, 32.2).v assert s("0h24m32.2s")[0].v == Sixty(1, 0, 24, 32.2).v assert s("32h")[0].v == Sixty(1, 32, 0, 0).v def test_dms(): s = dms_number.parseString assert s("32d24m32.2s")[0].v == Sixty(1, 32, 24, 32.2).v assert s("-32d24m32.2s")[0].v == Sixty(-1, 32, 24, 32.2).v assert s("32d")[0].v == Sixty(1, 32, 0, 0).v def test_ang_distance(): s = angular_distance.parseString assert s("32.3'")[0].v == Sixty(1, 0, 32.3, 0.).v assert s("32\'24\"")[0].v == Sixty(1, 0, 32, 24).v assert s("0.3d")[0].v == Sixty(1, 0.3, 0, 0).v assert s("1r")[0].v == Sixty(1, 1./pi*180., 0, 0).v def test_coord_odd(): s = CoordOdd.parser.parseString assert s("32h24m32.2s")[0].v == Sixty(1, 32, 24, 32.2).v assert s("32:24:32.2s")[0].v == Sixty(1, 32, 24, 32.2).v assert s("32.24")[0].v == 32.24 s1 = s("32:24:32.2s")[0] assert isinstance(s1, HMS) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7851083 pyregion-2.1.1/pyregion/tests/test_wcs.py0000664000175000017500000000300700000000000017521 0ustar00jjleejjleeimport pytest import os.path from numpy.testing import assert_allclose from astropy.io.fits import Header from ..ds9_region_parser import ds9_shape_defs from ..region_numbers import CoordOdd, CoordEven from .. import wcs_converter from ..wcs_helper import _calculate_rotation_angle rootdir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'data') def test__generate_arg_types_min_list(): for name, shape in ds9_shape_defs.items(): args_list = shape.args_list min_list = wcs_converter._generate_arg_types(len(args_list), name) for expected_arg, tested_arg in zip(args_list, min_list): assert expected_arg == tested_arg @pytest.mark.parametrize(("name", "length", "result"), [ ("polygon", 6, 3 * [CoordOdd, CoordEven]), ]) def test__generate_arg_types_with_repeats(name, length, result): test_list = wcs_converter._generate_arg_types(length, name) for expected_arg, tested_arg in zip(result, test_list): assert expected_arg == tested_arg @pytest.mark.parametrize(("region_frame", "header_name", "rot_angle"), [ ('fk5', 'sample_fits01.header', 0.00505712), ('galactic', 'sample_fits01.header', -19.2328), ('fk4', 'sample_fits01.header', -0.0810223), ('fk5', 'sample_fits03.header', -2.16043), ]) def test_calculate_rotation_angle(region_frame, header_name, rot_angle): header = Header.fromtextfile(os.path.join(rootdir, header_name)) assert_allclose( _calculate_rotation_angle(region_frame, header), rot_angle, atol=0.001 ) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633126.5160418 pyregion-2.1.1/pyregion/version.py0000664000175000017500000001626300000000000016221 0ustar00jjleejjlee# Autogenerated by Astropy-affiliated package pyregion's setup.py on 2021-06-25 14:58:46 UTC from __future__ import unicode_literals import datetime import locale import os import subprocess import warnings def _decode_stdio(stream): try: stdio_encoding = locale.getdefaultlocale()[1] or 'utf-8' except ValueError: stdio_encoding = 'utf-8' try: text = stream.decode(stdio_encoding) except UnicodeDecodeError: # Final fallback text = stream.decode('latin1') return text def update_git_devstr(version, path=None): """ Updates the git revision string if and only if the path is being imported directly from a git working copy. This ensures that the revision number in the version string is accurate. """ try: # Quick way to determine if we're in git or not - returns '' if not devstr = get_git_devstr(sha=True, show_warning=False, path=path) except OSError: return version if not devstr: # Probably not in git so just pass silently return version if 'dev' in version: # update to the current git revision version_base = version.split('.dev', 1)[0] devstr = get_git_devstr(sha=False, show_warning=False, path=path) return version_base + '.dev' + devstr else: # otherwise it's already the true/release version return version def get_git_devstr(sha=False, show_warning=True, path=None): """ Determines the number of revisions in this repository. Parameters ---------- sha : bool If True, the full SHA1 hash will be returned. Otherwise, the total count of commits in the repository will be used as a "revision number". show_warning : bool If True, issue a warning if git returns an error code, otherwise errors pass silently. path : str or None If a string, specifies the directory to look in to find the git repository. If `None`, the current working directory is used, and must be the root of the git repository. If given a filename it uses the directory containing that file. Returns ------- devversion : str Either a string with the revision number (if `sha` is False), the SHA1 hash of the current commit (if `sha` is True), or an empty string if git version info could not be identified. """ if path is None: path = os.getcwd() if not os.path.isdir(path): path = os.path.abspath(os.path.dirname(path)) if sha: # Faster for getting just the hash of HEAD cmd = ['rev-parse', 'HEAD'] else: cmd = ['rev-list', '--count', 'HEAD'] def run_git(cmd): try: p = subprocess.Popen(['git'] + cmd, cwd=path, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) stdout, stderr = p.communicate() except OSError as e: if show_warning: warnings.warn('Error running git: ' + str(e)) return (None, b'', b'') if p.returncode == 128: if show_warning: warnings.warn('No git repository present at {0!r}! Using ' 'default dev version.'.format(path)) return (p.returncode, b'', b'') if p.returncode == 129: if show_warning: warnings.warn('Your git looks old (does it support {0}?); ' 'consider upgrading to v1.7.2 or ' 'later.'.format(cmd[0])) return (p.returncode, stdout, stderr) elif p.returncode != 0: if show_warning: warnings.warn('Git failed while determining revision ' 'count: {0}'.format(_decode_stdio(stderr))) return (p.returncode, stdout, stderr) return p.returncode, stdout, stderr returncode, stdout, stderr = run_git(cmd) if not sha and returncode == 128: # git returns 128 if the command is not run from within a git # repository tree. In this case, a warning is produced above but we # return the default dev version of '0'. return '0' elif not sha and returncode == 129: # git returns 129 if a command option failed to parse; in # particular this could happen in git versions older than 1.7.2 # where the --count option is not supported # Also use --abbrev-commit and --abbrev=0 to display the minimum # number of characters needed per-commit (rather than the full hash) cmd = ['rev-list', '--abbrev-commit', '--abbrev=0', 'HEAD'] returncode, stdout, stderr = run_git(cmd) # Fall back on the old method of getting all revisions and counting # the lines if returncode == 0: return str(stdout.count(b'\n')) else: return '' elif sha: return _decode_stdio(stdout)[:40] else: return _decode_stdio(stdout).strip() # This function is tested but it is only ever executed within a subprocess when # creating a fake package, so it doesn't get picked up by coverage metrics. def _get_repo_path(pathname, levels=None): # pragma: no cover """ Given a file or directory name, determine the root of the git repository this path is under. If given, this won't look any higher than ``levels`` (that is, if ``levels=0`` then the given path must be the root of the git repository and is returned if so. Returns `None` if the given path could not be determined to belong to a git repo. """ if os.path.isfile(pathname): current_dir = os.path.abspath(os.path.dirname(pathname)) elif os.path.isdir(pathname): current_dir = os.path.abspath(pathname) else: return None current_level = 0 while levels is None or current_level <= levels: if os.path.exists(os.path.join(current_dir, '.git')): return current_dir current_level += 1 if current_dir == os.path.dirname(current_dir): break current_dir = os.path.dirname(current_dir) return None _packagename = "pyregion" _last_generated_version = "2.1.1" _last_githash = "dfb3652d8abc0953984b1f24e94377139d3e9c96" # Determine where the source code for this module # lives. If __file__ is not a filesystem path then # it is assumed not to live in a git repo at all. if _get_repo_path(__file__, levels=len(_packagename.split('.'))): version = update_git_devstr(_last_generated_version, path=__file__) githash = get_git_devstr(sha=True, show_warning=False, path=__file__) or _last_githash else: # The file does not appear to live in a git repo so don't bother # invoking git version = _last_generated_version githash = _last_githash major = 2 minor = 1 bugfix = 1 release = True timestamp = datetime.datetime(2021, 6, 25, 14, 58, 46) debug = False astropy_helpers_version = "2.0.10" try: from ._compiler import compiler except ImportError: compiler = "unknown" try: from .cython_version import cython_version except ImportError: cython_version = "unknown" ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7851083 pyregion-2.1.1/pyregion/wcs_converter.py0000664000175000017500000001273600000000000017420 0ustar00jjleejjleeimport copy from astropy.coordinates import SkyCoord from astropy.wcs import WCS from astropy.wcs.utils import proj_plane_pixel_area, proj_plane_pixel_scales import numpy as np from .wcs_helper import _estimate_angle from .region_numbers import CoordOdd, Distance, Angle from .parser_helper import Shape, CoordCommand from .region_numbers import SimpleNumber, SimpleInteger def _generate_arg_types(coordlist_length, shape_name): """Find coordinate types based on shape name and coordlist length This function returns a list of coordinate types based on which coordinates can be repeated for a given type of shap Parameters ---------- coordlist_length : int The number of coordinates or arguments used to define the shape. shape_name : str One of the names in `pyregion.ds9_shape_defs`. Returns ------- arg_types : list A list of objects from `pyregion.region_numbers` with a length equal to coordlist_length. """ from .ds9_region_parser import ds9_shape_defs from .ds9_attr_parser import ds9_shape_in_comment_defs if shape_name in ds9_shape_defs: shape_def = ds9_shape_defs[shape_name] else: shape_def = ds9_shape_in_comment_defs[shape_name] initial_arg_types = shape_def.args_list arg_repeats = shape_def.args_repeat if arg_repeats is None: return initial_arg_types # repeat args between n1 and n2 n1, n2 = arg_repeats arg_types = list(initial_arg_types[:n1]) num_of_repeats = coordlist_length - (len(initial_arg_types) - n2) arg_types.extend((num_of_repeats - n1) // (n2 - n1) * initial_arg_types[n1:n2]) arg_types.extend(initial_arg_types[n2:]) return arg_types def convert_to_imagecoord(shape, header): """Convert the coordlist of `shape` to image coordinates Parameters ---------- shape : `pyregion.parser_helper.Shape` The `Shape` to convert coordinates header : `~astropy.io.fits.Header` Specifies what WCS transformations to use. Returns ------- new_coordlist : list A list of image coordinates defining the shape. """ arg_types = _generate_arg_types(len(shape.coord_list), shape.name) new_coordlist = [] is_even_distance = True coord_list_iter = iter(zip(shape.coord_list, arg_types)) new_wcs = WCS(header) pixel_scales = proj_plane_pixel_scales(new_wcs) for coordinate, coordinate_type in coord_list_iter: if coordinate_type == CoordOdd: even_coordinate = next(coord_list_iter)[0] old_coordinate = SkyCoord(coordinate, even_coordinate, frame=shape.coord_format, unit='degree', obstime='J2000') new_coordlist.extend( np.asscalar(x) for x in old_coordinate.to_pixel(new_wcs, origin=1) ) elif coordinate_type == Distance: if arg_types[-1] == Angle: degree_per_pixel = pixel_scales[0 if is_even_distance else 1] is_even_distance = not is_even_distance else: degree_per_pixel = np.sqrt(proj_plane_pixel_area(new_wcs)) new_coordlist.append(coordinate / degree_per_pixel) elif coordinate_type == Angle: new_angle = _estimate_angle(coordinate, shape.coord_format, header) new_coordlist.append(new_angle) else: new_coordlist.append(coordinate) return new_coordlist def convert_physical_to_imagecoord(shape, header): arg_types = _generate_arg_types(len(shape.coord_list), shape.name) new_coordlist = [] coord_list_iter = iter(zip(shape.coord_list, arg_types)) from .physical_coordinate import PhysicalCoordinate pc = PhysicalCoordinate(header) for coordinate, coordinate_type in coord_list_iter: if coordinate_type == CoordOdd: even_coordinate = next(coord_list_iter)[0] xy0 = pc.to_image(coordinate, even_coordinate) new_coordlist.extend(xy0) elif coordinate_type == Distance: new_coordlist.append(pc.to_image_distance(coordinate)) else: new_coordlist.append(coordinate) return new_coordlist def check_wcs_and_convert(args, all_dms=False): is_wcs = False value_list = [] for a in args: if isinstance(a, SimpleNumber) or isinstance(a, SimpleInteger) \ or all_dms: value_list.append(a.v) else: value_list.append(a.degree) is_wcs = True return is_wcs, value_list def check_wcs(l): default_coord = "physical" for l1, c1 in l: if isinstance(l1, CoordCommand): default_coord = l1.text.lower() continue if isinstance(l1, Shape): if default_coord == "galactic": is_wcs, coord_list = check_wcs_and_convert(l1.params, all_dms=True) else: is_wcs, coord_list = check_wcs_and_convert(l1.params) if is_wcs and (default_coord == "physical"): # ciao format coord_format = "fk5" else: coord_format = default_coord l1n = copy.copy(l1) l1n.coord_list = coord_list l1n.coord_format = coord_format yield l1n, c1 else: yield l1, c1 ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1621600901.7851083 pyregion-2.1.1/pyregion/wcs_helper.py0000664000175000017500000000517300000000000016665 0ustar00jjleejjleeimport numpy as np from astropy.coordinates import SkyCoord from astropy.wcs import WCS from astropy.wcs.utils import proj_plane_pixel_scales def _estimate_angle(angle, reg_coordinate_frame, header): """Transform an angle into a different frame Parameters ---------- angle : float, int The number of degrees, measured from the Y axis in origin's frame reg_coordinate_frame : str Coordinate frame in which ``angle`` is defined header : `~astropy.io.fits.Header` instance Header describing the image Returns ------- angle : float The angle, measured from the Y axis in the WCS defined by ``header'` """ y_axis_rot = _calculate_rotation_angle(reg_coordinate_frame, header) return angle - y_axis_rot def _calculate_rotation_angle(reg_coordinate_frame, header): """Calculates the rotation angle from the region to the header's frame This attempts to be compatible with the implementation used by SAOImage DS9. In particular, this measures the rotation of the north axis as measured at the center of the image, and therefore requires a `~astropy.io.fits.Header` object with defined 'NAXIS1' and 'NAXIS2' keywords. Parameters ---------- reg_coordinate_frame : str Coordinate frame used by the region file header : `~astropy.io.fits.Header` instance Header describing the image Returns ------- y_axis_rot : float Degrees by which the north axis in the region's frame is rotated when transformed to pixel coordinates """ new_wcs = WCS(header) region_frame = SkyCoord( '0d 0d', frame=reg_coordinate_frame, obstime='J2000') region_frame = SkyCoord( '0d 0d', frame=reg_coordinate_frame, obstime='J2000', equinox=region_frame.equinox) origin = SkyCoord.from_pixel( header['NAXIS1'] / 2, header['NAXIS2'] / 2, wcs=new_wcs, origin=1).transform_to(region_frame) offset = proj_plane_pixel_scales(new_wcs)[1] origin_x, origin_y = origin.to_pixel(new_wcs, origin=1) origin_lon = origin.data.lon.degree origin_lat = origin.data.lat.degree offset_point = SkyCoord( origin_lon, origin_lat + offset, unit='degree', frame=origin.frame.name, obstime='J2000') offset_x, offset_y = offset_point.to_pixel(new_wcs, origin=1) north_rot = np.arctan2( offset_y - origin_y, offset_x - origin_x) / np.pi * 180. cdelt = new_wcs.wcs.get_cdelt() if (cdelt > 0).all() or (cdelt < 0).all(): return north_rot - 90 else: return -(north_rot - 90) ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624633094.1180484 pyregion-2.1.1/setup.cfg0000664000175000017500000000100400000000000014132 0ustar00jjleejjlee[build_docs] source-dir = docs build-dir = docs/_build all_files = 1 [upload_docs] upload-dir = docs/_build/html show-response = 1 [tool:pytest] minversion = 2.2 norecursedirs = build docs/_build [ah_bootstrap] auto_use = True [metadata] name = pyregion version = 2.1.1 description = python parser for ds9 region files # long_description = author = Jae-Joon Lee author_email = lee.j.joon@gmail.com license = MIT url = https://github.com/astropy/pyregion edit_on_github = False github_project = astropy/pyregion ././@PaxHeader0000000000000000000000000000003400000000000010212 xustar0028 mtime=1624632650.3644848 pyregion-2.1.1/setup.py0000775000175000017500000001127500000000000014041 0ustar00jjleejjlee#!/usr/bin/env python # Licensed under a 3-clause BSD style license - see LICENSE.rst import glob import os import sys # ah_bootstrap fails with "python -m build". Disabling it for now. import ah_bootstrap from setuptools import setup # A dirty hack to get around some early import/configurations ambiguities if sys.version_info[0] >= 3: import builtins else: import __builtin__ as builtins builtins._ASTROPY_SETUP_ = True from astropy_helpers.setup_helpers import (register_commands, get_debug_option, get_package_info) from astropy_helpers.git_helpers import get_git_devstr from astropy_helpers.version_helpers import generate_version_py # Get some values from the setup.cfg try: from ConfigParser import ConfigParser except ImportError: from configparser import ConfigParser conf = ConfigParser() conf.read(['setup.cfg']) metadata = dict(conf.items('metadata')) PACKAGENAME = metadata.get('name', 'packagename') DESCRIPTION = metadata.get('description', 'Astropy affiliated package') AUTHOR = metadata.get('author', '') AUTHOR_EMAIL = metadata.get('author_email', '') LICENSE = metadata.get('license', 'unknown') URL = metadata.get('url', 'http://astropy.org') # It tries to import itself, which does not seem to work with 'python -m build'. # Instead, put the description here. FIXME: This is a temporary workaround. # Get the long description from the package's docstring # __import__(PACKAGENAME) # package = sys.modules[PACKAGENAME] # LONG_DESCRIPTION = package.__doc__ LONG_DESCRIPTION = """ pyregion - a Python parser for ds9 region files * Code : https://github.com/astropy/pyregion * Docs : http://pyregion.readthedocs.io/ See also the in-development ``regions`` package at https://github.com/astropy/regions a new astronomy package for regions based on Astropy. """ # Store the package name in a built-in variable so it's easy # to get from other parts of the setup infrastructure builtins._ASTROPY_PACKAGE_NAME_ = PACKAGENAME # VERSION should be PEP386 compatible (http://www.python.org/dev/peps/pep-0386) # VERSION = '1.9.0' VERSION = metadata.get("version") # Indicates if this version is a release version RELEASE = 'dev' not in VERSION if not RELEASE: VERSION += get_git_devstr(False) # Populate the dict of setup command overrides; this should be done before # invoking any other functionality from distutils since it can potentially # modify distutils' behavior. cmdclassd = register_commands(PACKAGENAME, VERSION, RELEASE) # Freeze build information in version.py generate_version_py(PACKAGENAME, VERSION, RELEASE, get_debug_option(PACKAGENAME)) # Treat everything in scripts except README.rst as a script to be installed scripts = [fname for fname in glob.glob(os.path.join('scripts', '*')) if os.path.basename(fname) != 'README.rst'] # Get configuration information from all of the various subpackages. # See the docstring for setup_helpers.update_package_files for more # details. package_info = get_package_info() # Add the project-global data package_info['package_data'].setdefault(PACKAGENAME, []) package_info['package_data'][PACKAGENAME].append('data/*') # Include all .c files, recursively, including those generated by # Cython, since we can not do this in MANIFEST.in with a "dynamic" # directory name. c_files = [] for root, dirs, files in os.walk(PACKAGENAME): for filename in files: if filename.endswith('.c'): c_files.append( os.path.join( os.path.relpath(root, PACKAGENAME), filename)) package_info['package_data'][PACKAGENAME].extend(c_files) install_requires = [ 'pyparsing>=2.0', 'numpy', 'Cython', 'astropy>=1.0', ] classifiers = [ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Science/Research', 'License :: OSI Approved :: MIT License', 'Operating System :: MacOS :: MacOS X', 'Operating System :: POSIX :: Linux', 'Programming Language :: Cython', 'Programming Language :: Python', 'Programming Language :: Python :: 2', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Topic :: Scientific/Engineering :: Astronomy', ] setup( name=PACKAGENAME, version=VERSION, description=DESCRIPTION, scripts=scripts, install_requires=install_requires, provides=[PACKAGENAME], author=AUTHOR, author_email=AUTHOR_EMAIL, license=LICENSE, url=URL, long_description=LONG_DESCRIPTION, cmdclass=cmdclassd, zip_safe=False, use_2to3=False, classifiers=classifiers, **package_info )