From d3ed2f3995d942398fa7991c1573b44bc198e9f8 Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:02:29 +0200 Subject: [PATCH 01/23] CHORE: Update v0.11.dev0 (#5063) --- doc/source/release_1_0.rst | 2 +- src/ansys/aedt/core/__init__.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/source/release_1_0.rst b/doc/source/release_1_0.rst index c46b1819b8d..0563eabe3c7 100644 --- a/doc/source/release_1_0.rst +++ b/doc/source/release_1_0.rst @@ -65,7 +65,7 @@ accordingly. An example of migration is shown below: .. code-block:: python - from ansys.aedt import Circuit + from ansys.aedt.core import Circuit Python files renaming --------------------- diff --git a/src/ansys/aedt/core/__init__.py b/src/ansys/aedt/core/__init__.py index f73b7bb71f6..b6a1a526b37 100644 --- a/src/ansys/aedt/core/__init__.py +++ b/src/ansys/aedt/core/__init__.py @@ -64,7 +64,7 @@ def custom_show_warning(message, category, filename, lineno, file=None, line=Non # pyaedt_path = os.path.dirname(__file__) -__version__ = "0.10.dev0" +__version__ = "0.11.dev0" version = __version__ # From efec464c49b0cec294835813cf78a282bb17304b Mon Sep 17 00:00:00 2001 From: gmalinve <103059376+gmalinve@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:15:59 +0200 Subject: [PATCH 02/23] FEAT: add mesh skin depth for maxwell 2d (#5041) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sébastien Morais <146729917+SMoraisAnsys@users.noreply.github.com> --- _unittest/test_27_Maxwell2D.py | 18 ++++++++- _unittest/test_28_Maxwell3D.py | 12 +++++- src/ansys/aedt/core/modules/mesh.py | 59 +++++++++++++++-------------- 3 files changed, 59 insertions(+), 30 deletions(-) diff --git a/_unittest/test_27_Maxwell2D.py b/_unittest/test_27_Maxwell2D.py index c154266883b..74b1741de59 100644 --- a/_unittest/test_27_Maxwell2D.py +++ b/_unittest/test_27_Maxwell2D.py @@ -450,7 +450,7 @@ def test_28_set_variable(self): assert "var_test" in self.aedtapp.variable_manager.design_variable_names assert self.aedtapp.variable_manager.design_variables["var_test"].expression == "234" - def test_31_cylindrical_gap(self): + def test_31a_cylindrical_gap(self): assert not self.aedtapp.mesh.assign_cylindrical_gap("Band") [ x.delete() @@ -467,6 +467,22 @@ def test_31_cylindrical_gap(self): ] assert self.aedtapp.mesh.assign_cylindrical_gap("Band", name="cyl_gap_test", band_mapping_angle=2) + def test_31b_skin_depth(self): + edge = self.aedtapp.modeler["Rotor"].edges[0] + mesh = self.aedtapp.mesh.assign_skin_depth(assignment=edge, skin_depth="0.3mm", layers_number=3) + assert mesh + assert mesh.type == "SkinDepthBased" + assert mesh.props["Edges"][0] == edge.id + assert mesh.props["SkinDepth"] == "0.3mm" + assert mesh.props["NumLayers"] == 3 + edge1 = self.aedtapp.modeler["Rotor"].edges[1] + mesh = self.aedtapp.mesh.assign_skin_depth(assignment=edge1.id, skin_depth="0.3mm", layers_number=3) + assert mesh + assert mesh.type == "SkinDepthBased" + assert mesh.props["Edges"][0] == edge1.id + assert mesh.props["SkinDepth"] == "0.3mm" + assert mesh.props["NumLayers"] == 3 + def test_32_control_program(self): user_ctl_path = "user.ctl" ctrl_prg_path = os.path.join(local_path, "example_models", test_subfolder, ctrl_prg_file) diff --git a/_unittest/test_28_Maxwell3D.py b/_unittest/test_28_Maxwell3D.py index 449cb5a5543..e1667a35407 100644 --- a/_unittest/test_28_Maxwell3D.py +++ b/_unittest/test_28_Maxwell3D.py @@ -282,7 +282,17 @@ def test_22_create_length_mesh(self): assert self.aedtapp.mesh.assign_length_mesh(["Plate"]) def test_23_create_skin_depth(self): - assert self.aedtapp.mesh.assign_skin_depth(["Plate"], "1mm") + mesh = self.aedtapp.mesh.assign_skin_depth(["Plate"], "1mm") + assert mesh + mesh.delete() + mesh = self.aedtapp.mesh.assign_skin_depth(["Plate"], "1mm", 1000) + assert mesh + mesh.delete() + mesh = self.aedtapp.mesh.assign_skin_depth(self.aedtapp.modeler["Plate"].faces[0].id, "1mm") + assert mesh + mesh.delete() + mesh = self.aedtapp.mesh.assign_skin_depth(self.aedtapp.modeler["Plate"], "1mm") + assert mesh def test_24_create_curvilinear(self): assert self.aedtapp.mesh.assign_curvilinear_elements(["Coil"], "1mm") diff --git a/src/ansys/aedt/core/modules/mesh.py b/src/ansys/aedt/core/modules/mesh.py index fc94dd7d94f..cf1522607ae 100644 --- a/src/ansys/aedt/core/modules/mesh.py +++ b/src/ansys/aedt/core/modules/mesh.py @@ -1066,7 +1066,7 @@ def assign_skin_depth( Parameters ---------- assignment : list - List of the object names or face IDs. + List of the object names, face IDs or edges IDs for Maxwell 2D design. skin_depth : str, float, optional Skin depth value. It can be either provided as a float or as a string. @@ -1092,7 +1092,7 @@ def assign_skin_depth( """ assignment = self.modeler.convert_to_selections(assignment, True) - if self._app.design_type != "HFSS" and self._app.design_type != "Maxwell 3D": + if self._app.design_type not in ["HFSS", "Maxwell 3D", "Maxwell 2D"]: raise MethodNotSupportedError if name: for m in self.meshoperations: @@ -1101,35 +1101,38 @@ def assign_skin_depth( else: name = generate_unique_name("SkinDepth") - if maximum_elements is None: - restrictlength = False - maximum_elements = "1000" + if self._app.design_type == "Maxwell 2D": + props = OrderedDict( + { + "Edges": assignment, + "SkinDepth": skin_depth, + "NumLayers": layers_number, + } + ) else: - restrictlength = True - assignment = self._app.modeler.convert_to_selections(assignment, True) + if maximum_elements is None: + restrictlength = False + maximum_elements = "1000" + else: + restrictlength = True - if isinstance(assignment[0], int): - seltype = "Faces" - elif isinstance(assignment[0], str): - seltype = "Objects" - else: - seltype = None - if seltype is None: - self.logger.error("Error in Assignment") - return + if isinstance(assignment[0], int): + seltype = "Faces" + elif isinstance(assignment[0], str): + seltype = "Objects" - props = OrderedDict( - { - "Type": "SkinDepthBased", - "Enabled": True, - seltype: assignment, - "RestrictElem": restrictlength, - "NumMaxElem": str(maximum_elements), - "SkinDepth": skin_depth, - "SurfTriMaxLength": triangulation_max_length, - "NumLayers": layers_number, - } - ) + props = OrderedDict( + { + "Type": "SkinDepthBased", + "Enabled": True, + seltype: assignment, + "RestrictElem": restrictlength, + "NumMaxElem": str(maximum_elements), + "SkinDepth": skin_depth, + "SurfTriMaxLength": triangulation_max_length, + "NumLayers": layers_number, + } + ) mop = MeshOperation(self, name, props, "SkinDepthBased") mop.create() From 466a1dd2b87dd36dffc36827e018a4465fba4349 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= <146729917+SMoraisAnsys@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:31:12 +0200 Subject: [PATCH 03/23] TEST: Improve test delegation warning (#5077) --- _unittest/test_warnings.py | 11 +++-------- src/pyaedt/__init__.py | 4 ++++ 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/_unittest/test_warnings.py b/_unittest/test_warnings.py index da8285a2f88..6fe7d14590d 100644 --- a/_unittest/test_warnings.py +++ b/_unittest/test_warnings.py @@ -30,6 +30,7 @@ from ansys.aedt.core import PYTHON_VERSION_WARNING from ansys.aedt.core import deprecation_warning from pyaedt import ALIAS_WARNING +import pytest VALID_PYTHON_VERSION = (LATEST_DEPRECATED_PYTHON_VERSION[0], LATEST_DEPRECATED_PYTHON_VERSION[1] + 1) @@ -60,11 +61,5 @@ def test_alias_deprecation_warning(): import pyaedt - # Ensure that the warning will be triggered again - del pyaedt.__warningregistry__ - - importlib.reload(pyaedt) - - # Hardcoded test where 28 is the line number associated to the warning call - # TODO: See if pytest.warns can be 'fixed' to work with module reload - assert (ALIAS_WARNING, FutureWarning, 28) in pyaedt.__warningregistry__ + with pytest.warns(FutureWarning, match=ALIAS_WARNING): + importlib.reload(pyaedt) diff --git a/src/pyaedt/__init__.py b/src/pyaedt/__init__.py index 13da1ede8a2..f43843f5806 100644 --- a/src/pyaedt/__init__.py +++ b/src/pyaedt/__init__.py @@ -4,6 +4,7 @@ __version__ = __version__ import warnings +import os ALIAS_WARNING = ( "Module 'pyaedt' has become an alias to the new package structure. " \ @@ -22,6 +23,9 @@ def alias_deprecation_warning(): # pragma: no cover def custom_show_warning(message, category, filename, lineno, file=None, line=None): """Custom warning used to remove :loc: pattern.""" print("{}: {}".format(category.__name__, message)) + # NOTE: This line is added to ensure that pytest handle the warning correctly. + if "PYTEST_CURRENT_TEST" in os.environ: + existing_showwarning(message, category, filename, lineno, file=file, line=line) warnings.showwarning = custom_show_warning From 885e505101f024575136bd46640dee440f668e17 Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Wed, 21 Aug 2024 09:47:56 +0200 Subject: [PATCH 04/23] DOCS: Update python version (#5076) --- README.md | 2 +- README_CN.md | 2 +- doc/source/Getting_started/Installation.rst | 28 ++++--------------- .../Getting_started/Troubleshooting.rst | 4 +-- 4 files changed, 9 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 435b79794af..fbefa97cc5a 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ [![PyAnsys](https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC)](https://docs.pyansys.com/) [![pypi](https://img.shields.io/pypi/v/pyaedt.svg?logo=python&logoColor=white)](https://pypi.org/project/pyaedt/) [![PyPIact](https://static.pepy.tech/badge/pyaedt/month)](https://www.pepy.tech/projects/pyaedt) -[![PythonVersion](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/) +[![PythonVersion](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/) [![GH-CI](https://github.com/ansys/pyaedt/actions/workflows/unit_tests.yml/badge.svg)](https://github.com/ansys/pyaedt/actions/workflows/unit_tests.yml) [![codecov](https://codecov.io/gh/ansys/pyaedt/branch/main/graph/badge.svg)](https://codecov.io/gh/ansys/pyaedt) [![MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/blog/license/mit)[![black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)[![Anaconda](https://anaconda.org/conda-forge/pyaedt/badges/version.svg)](https://anaconda.org/conda-forge/pyaedt) diff --git a/README_CN.md b/README_CN.md index c2934de6367..000205ec7f9 100644 --- a/README_CN.md +++ b/README_CN.md @@ -10,7 +10,7 @@
English | 中文

-[![PyAnsys](https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC)](https://docs.pyansys.com/)[![pypi](https://img.shields.io/pypi/v/pyaedt.svg?logo=python&logoColor=white)](https://pypi.org/project/pyaedt/)[![PyPIact](https://pepy.tech/badge/pyaedt/month)](https://pypi.org/project/pyaedt/)[![PythonVersion](https://img.shields.io/badge/python-3.7+-blue.svg)](https://www.python.org/downloads/)[![GH-CI](https://github.com/ansys/pyaedt/actions/workflows/unit_tests.yml/badge.svg)](https://github.com/ansys/pyaedt/actions/workflows/unit_tests.yml)[![codecov](https://codecov.io/gh/ansys/pyaedt/branch/main/graph/badge.svg)](https://codecov.io/gh/ansys/pyaedt)[![MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/blog/license/mit)[![black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)[![Anaconda](https://anaconda.org/conda-forge/pyaedt/badges/version.svg)](https://anaconda.org/conda-forge/pyaedt)[![pre-commit](https://results.pre-commit.ci/badge/github/ansys/pyaedt/main.svg)](https://results.pre-commit.ci/latest/github/ansys/pyaedt/main) +[![PyAnsys](https://img.shields.io/badge/Py-Ansys-ffc107.svg?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAABDklEQVQ4jWNgoDfg5mD8vE7q/3bpVyskbW0sMRUwofHD7Dh5OBkZGBgW7/3W2tZpa2tLQEOyOzeEsfumlK2tbVpaGj4N6jIs1lpsDAwMJ278sveMY2BgCA0NFRISwqkhyQ1q/Nyd3zg4OBgYGNjZ2ePi4rB5loGBhZnhxTLJ/9ulv26Q4uVk1NXV/f///////69du4Zdg78lx//t0v+3S88rFISInD59GqIH2esIJ8G9O2/XVwhjzpw5EAam1xkkBJn/bJX+v1365hxxuCAfH9+3b9/+////48cPuNehNsS7cDEzMTAwMMzb+Q2u4dOnT2vWrMHu9ZtzxP9vl/69RVpCkBlZ3N7enoDXBwEAAA+YYitOilMVAAAAAElFTkSuQmCC)](https://docs.pyansys.com/)[![pypi](https://img.shields.io/pypi/v/pyaedt.svg?logo=python&logoColor=white)](https://pypi.org/project/pyaedt/)[![PyPIact](https://pepy.tech/badge/pyaedt/month)](https://pypi.org/project/pyaedt/)[![PythonVersion](https://img.shields.io/badge/python-3.8+-blue.svg)](https://www.python.org/downloads/)[![GH-CI](https://github.com/ansys/pyaedt/actions/workflows/unit_tests.yml/badge.svg)](https://github.com/ansys/pyaedt/actions/workflows/unit_tests.yml)[![codecov](https://codecov.io/gh/ansys/pyaedt/branch/main/graph/badge.svg)](https://codecov.io/gh/ansys/pyaedt)[![MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/blog/license/mit)[![black](https://img.shields.io/badge/code%20style-black-000000.svg?style=flat)](https://github.com/psf/black)[![Anaconda](https://anaconda.org/conda-forge/pyaedt/badges/version.svg)](https://anaconda.org/conda-forge/pyaedt)[![pre-commit](https://results.pre-commit.ci/badge/github/ansys/pyaedt/main.svg)](https://results.pre-commit.ci/latest/github/ansys/pyaedt/main) ## PyAEDT 简介 diff --git a/doc/source/Getting_started/Installation.rst b/doc/source/Getting_started/Installation.rst index 16e491ee992..f1480f7873e 100644 --- a/doc/source/Getting_started/Installation.rst +++ b/doc/source/Getting_started/Installation.rst @@ -71,7 +71,7 @@ see `Extensions `_ +Wheelhouses for CPython 3.8, 3.9, 3.10, 3.11, and 3.12 are available in the releases for both Windows and Linux. From the `Releases `_ page in the PyAEDT repository, you can find the wheelhouses for a particular release in its assets and download the wheelhouse specific to your setup. You can then install PyAEDT and all of its dependencies from one single entry point that can be shared internally, which eases the security review of the PyAEDT package content. -For example, on Windows with Python 3.7, install PyAEDT and all its dependencies from a wheelhouse with code like this: +For example, on Windows with Python 3.10, install PyAEDT and all its dependencies from a wheelhouse with code like this: .. code:: - pip install --no-cache-dir --no-index --find-links=file:////PyAEDT-v-wheelhouse-Windows-3.7 pyaedt - - -Use IronPython in AEDT -~~~~~~~~~~~~~~~~~~~~~~ -PyAEDT is designed to work in CPython 3.7+ and supports many advanced processing packages like -``matplotlib``, ``numpy``, and ``pyvista``. A user can still use PyAEDT in the IronPython -environment available in AEDT with many limitations. - -To use IronPython in AEDT: - -1. Download the PyAEDT package from ``https://pypi.org/project/pyaedt/#files``. -2. Extract the files. -3. Install PyAEDT into AEDT, specifying the full paths to ``ipy64`` and ``setup-distutils.py`` as needed: - -.. code:: - - ipy64 setup-distutils.py install --user + pip install --no-cache-dir --no-index --find-links=file:////PyAEDT-v-wheelhouse-Windows-3.10 pyaedt Install PyAEDT in Conda virtual environment diff --git a/doc/source/Getting_started/Troubleshooting.rst b/doc/source/Getting_started/Troubleshooting.rst index 33e105cb44b..1d62085640f 100644 --- a/doc/source/Getting_started/Troubleshooting.rst +++ b/doc/source/Getting_started/Troubleshooting.rst @@ -14,11 +14,11 @@ In this case, you can use the Python interpreter available in the AEDT installat Python 3.7 is available in AEDT 2023 R1 and earlier. Python 3.10 is available in AEDT 2023 R2. -Here is the path to the Python 3.7 interpreter for the 2023 R1 installation: +Here is the path to the Python 3.10 interpreter for the 2024 R2 installation: .. code:: python - path\to\AnsysEM\v231\commonfiles\CPython\3_7\winx64\Release\python" + path\to\AnsysEM\v242\commonfiles\CPython\3_10\winx64\Release\python" Error installing PyAEDT using pip From e40bc359e7bcd37dff8eeb3b9737aa33e090d1f1 Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Wed, 21 Aug 2024 11:22:29 +0200 Subject: [PATCH 05/23] FEAT: Unite option in export Q3D and HFSS (#5054) --- _unittest/test_41_3dlayout_modeler.py | 10 +++++ src/ansys/aedt/core/modules/solve_setup.py | 47 +++++++++++++++------- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/_unittest/test_41_3dlayout_modeler.py b/_unittest/test_41_3dlayout_modeler.py index 07da92d854a..df072e9f2be 100644 --- a/_unittest/test_41_3dlayout_modeler.py +++ b/_unittest/test_41_3dlayout_modeler.py @@ -526,20 +526,30 @@ def test_19d_export_to_hfss(self): self.aedtapp.save_project() filename = "export_to_hfss_test" filename2 = "export_to_hfss_test2" + filename3 = "export_to_hfss_test_non_unite" file_fullname = os.path.join(self.local_scratch.path, filename) file_fullname2 = os.path.join(self.local_scratch.path, filename2) + file_fullname3 = os.path.join(self.local_scratch.path, filename3) setup = self.aedtapp.get_setup(self.aedtapp.existing_analysis_setups[0]) assert setup.export_to_hfss(output_file=file_fullname) if not is_linux: # TODO: EDB failing in Linux assert setup.export_to_hfss(output_file=file_fullname2, keep_net_name=True) + assert setup.export_to_hfss(output_file=file_fullname3, keep_net_name=True, unite=False) + def test_19e_export_to_q3d(self): filename = "export_to_q3d_test" file_fullname = os.path.join(self.local_scratch.path, filename) setup = self.aedtapp.get_setup(self.aedtapp.existing_analysis_setups[0]) assert setup.export_to_q3d(file_fullname) + def test_19f_export_to_q3d(self): + filename = "export_to_q3d_non_unite_test" + file_fullname = os.path.join(self.local_scratch.path, filename) + setup = self.aedtapp.get_setup(self.aedtapp.existing_analysis_setups[0]) + assert setup.export_to_q3d(file_fullname, keep_net_name=True, unite=False) + def test_21_variables(self): assert isinstance(self.aedtapp.available_variations.nominal_w_values_dict, dict) assert isinstance(self.aedtapp.available_variations.nominal_w_values, list) diff --git a/src/ansys/aedt/core/modules/solve_setup.py b/src/ansys/aedt/core/modules/solve_setup.py index bc853bea27a..c70979c3cfa 100644 --- a/src/ansys/aedt/core/modules/solve_setup.py +++ b/src/ansys/aedt/core/modules/solve_setup.py @@ -1902,7 +1902,7 @@ def disable(self): return True @pyaedt_function_handler(file_fullname="output_file") - def export_to_hfss(self, output_file, keep_net_name=False): + def export_to_hfss(self, output_file, keep_net_name=False, unite=True): """Export the HFSS 3D Layout design to an HFSS 3D design. This method is not supported with IronPython. @@ -1911,9 +1911,12 @@ def export_to_hfss(self, output_file, keep_net_name=False): ---------- output_file : str Full path and file name for exporting the project. - - keep_net_name : bool - Keep net name in 3D export when ``True`` or by default when ``False``. Default value is ``False``. + keep_net_name : bool, optional + Keep net name in 3D export. + The default is ``False``. + unite : bool, optional + Unite bodies which belong to the same net. + The default is ``True``. Returns ------- @@ -1938,13 +1941,14 @@ def export_to_hfss(self, output_file, keep_net_name=False): if not is_ironpython: from ansys.aedt.core import Hfss - self._get_net_names(Hfss, output_file) + self._get_net_names(Hfss, output_file, unite) else: self.p_app.logger.error("Exporting layout while keeping net name is not supported with IronPython") return succeeded @pyaedt_function_handler() - def _get_net_names(self, app, file_fullname): + def _get_net_names(self, app, file_fullname, unite): + """Identify nets and unite bodies that belong to the same net.""" primitives_3d_pts_per_nets = self._get_primitives_points_per_net() self.p_app.logger.info("Processing vias...") via_per_nets = self._get_via_position_per_net() @@ -1956,6 +1960,7 @@ def _get_net_names(self, app, file_fullname): aedtapp = app(project=file_fullname) units = aedtapp.modeler.model_units aedt_units = AEDT_UNITS["Length"][units] + object_list = aedtapp.modeler.object_names self._convert_edb_to_aedt_units(input_dict=primitives_3d_pts_per_nets, output_unit=aedt_units) self._convert_edb_to_aedt_units(input_dict=via_per_nets, output_unit=aedt_units) self._convert_edb_layer_elevation_to_aedt_units(input_dict=layers_elevation, output_units=aedt_units) @@ -1997,16 +2002,27 @@ def _get_net_names(self, app, file_fullname): self.p_app.logger.info("Renaming primitives for net {}...".format(net_name)) object_names = list(set(object_names)) if len(object_names) == 1: - object_p = aedtapp.modeler[object_names[0]] object_p.name = net_name object_p.color = [randrange(255), randrange(255), randrange(255)] # nosec elif len(object_names) > 1: - united_object = aedtapp.modeler.unite(object_names, purge=True) - obj_ind = aedtapp.modeler.objects[united_object].id - if obj_ind: - aedtapp.modeler.objects[obj_ind].name = net_name - aedtapp.modeler.objects[obj_ind].color = [randrange(255), randrange(255), randrange(255)] # nosec + if unite: + united_object = aedtapp.modeler.unite(object_names, purge=True) + obj_ind = aedtapp.modeler.objects[united_object].id + if obj_ind: + aedtapp.modeler.objects[obj_ind].name = net_name + aedtapp.modeler.objects[obj_ind].color = [ + randrange(255), + randrange(255), + randrange(255), + ] # nosec + else: + name_cont = 0 + for body in object_names: + body_name = net_name + f"_{name_cont}" + if body in object_list: + aedtapp.modeler.objects[body].name = body_name + name_cont += 1 if aedtapp.design_type == "Q3D Extractor": aedtapp.auto_identify_nets() @@ -2159,7 +2175,7 @@ def _check_export_log(self, info_messages, error_messages, file_fullname): return succeeded @pyaedt_function_handler(file_fullname="output_file") - def export_to_q3d(self, output_file, keep_net_name=False): + def export_to_q3d(self, output_file, keep_net_name=False, unite=True): """Export the HFSS 3D Layout design to a Q3D design. Parameters @@ -2168,6 +2184,9 @@ def export_to_q3d(self, output_file, keep_net_name=False): Full path and file name for exporting the project. keep_net_name : bool Whether to keep the net name in the 3D export, The default is ``False``. + unite : bool, optional + Unite bodies which belong to the same net. + The default is ``True``. Returns ------- @@ -2195,7 +2214,7 @@ def export_to_q3d(self, output_file, keep_net_name=False): if not is_ironpython: from ansys.aedt.core import Q3d - self._get_net_names(Q3d, output_file) + self._get_net_names(Q3d, output_file, unite) else: self.p_app.logger.error("Exporting layout while keeping net name is not supported with IronPython.") return succeeded From da9399ebbacaa40f190306df7e7c604fd8a19247 Mon Sep 17 00:00:00 2001 From: Lorenzo Vecchietti <58366962+lorenzovecchietti@users.noreply.github.com> Date: Wed, 21 Aug 2024 14:36:45 +0200 Subject: [PATCH 06/23] FIX: Reduce run-time of Sherlock example (#5043) --- examples/04-Icepak/Sherlock_Example.py | 106 +++++++++---------------- 1 file changed, 36 insertions(+), 70 deletions(-) diff --git a/examples/04-Icepak/Sherlock_Example.py b/examples/04-Icepak/Sherlock_Example.py index 70406929952..a55c2eead1e 100644 --- a/examples/04-Icepak/Sherlock_Example.py +++ b/examples/04-Icepak/Sherlock_Example.py @@ -44,13 +44,11 @@ component_step = "TutorialBoard.stp" aedt_odb_project = "SherlockTutorial.aedt" aedt_odb_design_name = "PCB" -stackup_thickness = 2.11836 -outline_polygon_name = "poly_14188" ############################################################################### # Launch AEDT # ~~~~~~~~~~~ -# Launch AEDT 2023 R2 in graphical mode. +# Launch AEDT 2024 R2 in graphical mode. d = ansys.aedt.core.launch_desktop(version=aedt_version, non_graphical=non_graphical, new_desktop=True) @@ -60,22 +58,21 @@ validation = os.path.join(project_folder, "validation.log") file_path = os.path.join(input_dir, component_step) project_name = os.path.join(project_folder, component_step[:-3] + "aedt") +component_name = "from_ODB" ############################################################################### # Create Icepak project # ~~~~~~~~~~~~~~~~~~~~~ # Create an Icepak project. -ipk = ansys.aedt.core.Icepak(project_name) +ipk = ansys.aedt.core.Icepak(project=project_name) ############################################################################### -# Delete region to speed up import +# Disable autosave to speed up import # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -# Delete the region and disable autosave to speed up the import. +# Disable autosave to speed up the import. d.disable_autosave() -ipk.modeler.delete("Region") -component_name = "from_ODB" ############################################################################### # Import PCB from AEDB file @@ -92,49 +89,35 @@ # Create an offset coordinate system to match ODB++ with the # Sherlock STEP file. -ipk.modeler.create_coordinate_system(origin=[0, 0, stackup_thickness / 2], mode="view", view="XY") +bb = ipk.modeler.user_defined_components[component_name+"1"].bounding_box +stackup_thickness = bb[-1] - bb[2] +ipk.modeler.create_coordinate_system( + origin=[0, 0, stackup_thickness / 2], mode="view", view="XY" +) ############################################################################### # Import CAD file # ~~~~~~~~~~~~~~~ -# Import a CAD file. +# Import a CAD file and delete the CAD "pcb" object as the ECAD is already in the design. ipk.modeler.import_3d_cad(file_path, refresh_all_ids=False) - -############################################################################### -# Save CAD file -# ~~~~~~~~~~~~~ -# Save the CAD file and refresh the properties from the parsing of the AEDT file. - -ipk.save_project(refresh_ids=True) - -############################################################################### -# Plot model -# ~~~~~~~~~~ -# Plot the model. - -ipk.plot(show=False, output_file=os.path.join(project_folder, "Sherlock_Example.jpg"), plot_air_objects=False) - -############################################################################### -# Delete PCB objects -# ~~~~~~~~~~~~~~~~~~ -# Delete the PCB objects. - ipk.modeler.delete_objects_containing("pcb", False) ############################################################################### -# Create region +# Modify air region # ~~~~~~~~~~~~~ -# Create an air region. +# Modify air region dimensions. -ipk.modeler.create_air_region(*[20, 20, 300, 20, 20, 300]) +ipk.mesh.global_mesh_region.global_region.padding_values = [20, 20, 20, 20, 300, 300] ############################################################################### # Assign materials # ~~~~~~~~~~~~~~~~ # Assign materials from Sherlock file. -ipk.assignmaterial_from_sherlock_files(component_list, material_list) +ipk.assignmaterial_from_sherlock_files( + component_file=component_list, material_file=material_list +) ############################################################################### # Delete objects with no material assignments @@ -159,42 +142,42 @@ total_power = ipk.assign_block_from_sherlock_file(csv_name=component_list) +############################################################################### +# Assign openings +# ~~~~~~~~~~~~~~~~~~~ +# Assign opening boundary condition to all the faces of the region. +ipk.assign_openings(ipk.modeler.get_object_faces("Region")) + ############################################################################### # Plot model # ~~~~~~~~~~ # Plot the model again now that materials are assigned. -ipk.plot(show=False, output_file=os.path.join(project_folder, "Sherlock_Example.jpg"), plot_air_objects=False) +ipk.plot( + show=False, + output_file=os.path.join(project_folder, "Sherlock_Example.jpg"), + plot_air_objects=False, + plot_as_separate_objects=False +) ############################################################################### -# Set up boundaries +# Set up mesh settings # ~~~~~~~~~~~~~~~~~ -# Set up boundaries. - # Mesh settings that is tailored for PCB -# Max iterations is set to 20 for quick demonstration, please increase to at least 100 for better accuracy. ipk.globalMeshSettings(3, gap_min_elements='1', noOgrids=True, MLM_en=True, MLM_Type='2D', edge_min_elements='2', object='Region') +############################################################################### +# Numerical settings +# ~~~~~~~~~~~~~~~~~ + setup1 = ipk.create_setup() setup1.props["Solution Initialization - Y Velocity"] = "1m_per_sec" setup1.props["Radiation Model"] = "Discrete Ordinates Model" setup1.props["Include Gravity"] = True setup1.props["Secondary Gradient"] = True -setup1.props["Convergence Criteria - Max Iterations"] = 10 -ipk.assign_openings(ipk.modeler.get_object_faces("Region")) - -############################################################################### -# Create point monitor -# ~~~~~~~~~~~~~~~~~~~~ - -point1 = ipk.assign_point_monitor(ipk.modeler["COMP_U10"].top_face_z.center, monitor_name="Point1") -ipk.modeler.set_working_coordinate_system("Global") -line = ipk.modeler.create_polyline( - [ipk.modeler["COMP_U10"].top_face_z.vertices[0].position, ipk.modeler["COMP_U10"].top_face_z.vertices[2].position], - non_model=True) -ipk.post.create_report(expressions="Point1.Temperature", primary_sweep_variable="X") +setup1.props["Convergence Criteria - Max Iterations"] = 100 ############################################################################### # Check for intersections @@ -208,24 +191,9 @@ # Compute power budget # ~~~~~~~~~~~~~~~~~~~~ -power_budget, total = ipk.post.power_budget("W" ) +power_budget, total = ipk.post.power_budget("W") print(total) -############################################################################### -# Analyze the model -# ~~~~~~~~~~~~~~~~~ - -# ipk.analyze(cores=4, tasks=4) -ipk.save_project() - -############################################################################### -# Get solution data and plots -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -plot1 = ipk.post.create_fieldplot_surface(ipk.modeler["COMP_U10"].faces, "SurfTemperature") -# ipk.post.plot_field("SurfPressure", ipk.modeler["COMP_U10"].faces, show=False, export_path=ipk.working_directory) - - ############################################################################### # Save project and release AEDT # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -237,5 +205,3 @@ print("Elapsed time: {}".format(datetime.timedelta(seconds=end))) print("Project Saved in {} ".format(ipk.project_file)) ipk.release_desktop() - - From 263416e3749723e3ecd5db4d053e9dc51a83efc6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= <146729917+SMoraisAnsys@users.noreply.github.com> Date: Wed, 21 Aug 2024 15:21:33 +0200 Subject: [PATCH 07/23] CI: Fix deploy stable docs index (#5081) --- .github/workflows/ci_cd.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci_cd.yml b/.github/workflows/ci_cd.yml index b20d2f17963..49048e51208 100644 --- a/.github/workflows/ci_cd.yml +++ b/.github/workflows/ci_cd.yml @@ -523,7 +523,9 @@ jobs: uses: actions/checkout@v4 - name: Install the package requirements - run: pip install -e . + run: | + python -m pip install --upgrade pip + pip install -e . - name: Get the version to PyMeilisearch run: | From 0a2c4bace5d72b7938d6abccf2f779073ca6a5a1 Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Thu, 22 Aug 2024 12:30:53 +0200 Subject: [PATCH 08/23] CHORE: Import tomllib from python 3.12 (#5084) --- pyproject.toml | 2 +- src/ansys/aedt/core/generic/general_methods.py | 14 +++++++++++--- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8862669cecb..d584dc2b76a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ dependencies = [ "psutil", "pyedb>=0.4.0; python_version == '3.7'", "pyedb>=0.24.0; python_version > '3.7'", - "pytomlpp", + "pytomlpp; python_version < '3.12'", "rpyc>=6.0.0,<6.1", ] diff --git a/src/ansys/aedt/core/generic/general_methods.py b/src/ansys/aedt/core/generic/general_methods.py index 0d9d96bc973..2f96eb64080 100644 --- a/src/ansys/aedt/core/generic/general_methods.py +++ b/src/ansys/aedt/core/generic/general_methods.py @@ -510,7 +510,7 @@ def read_json(fn): @pyaedt_function_handler() -def read_toml(file_path): +def read_toml(file_path): # pragma: no cover """Read a TOML file and return as a dictionary. Parameters @@ -523,7 +523,11 @@ def read_toml(file_path): dict Parsed TOML file as a dictionary. """ - import pytomlpp as tomllib + current_version = sys.version_info[:2] + if current_version < (3, 12): + import pytomlpp as tomllib + else: + import tomllib with open_file(file_path, "rb") as fb: return tomllib.load(fb) @@ -1319,7 +1323,11 @@ def is_digit(c): @pyaedt_function_handler() def _create_toml_file(input_dict, full_toml_path): - import pytomlpp as tomllib + current_version = sys.version_info[:2] + if current_version < (3, 12): + import pytomlpp as tomllib + else: + import tomllib if not os.path.exists(os.path.dirname(full_toml_path)): os.makedirs(os.path.dirname(full_toml_path)) From 558e2e360299db229eb7f17a7fa709764935e33a Mon Sep 17 00:00:00 2001 From: Hui Zhou Date: Fri, 23 Aug 2024 08:41:51 +0200 Subject: [PATCH 09/23] FIX: h3d plot dc field (#5086) Co-authored-by: ring630 <@gmail.com> --- src/ansys/aedt/core/modules/post_processor.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ansys/aedt/core/modules/post_processor.py b/src/ansys/aedt/core/modules/post_processor.py index d96a9251565..aee16da526a 100644 --- a/src/ansys/aedt/core/modules/post_processor.py +++ b/src/ansys/aedt/core/modules/post_processor.py @@ -3788,6 +3788,7 @@ def create_fieldplot_layers_nets( lst = [] for layer in layers_nets: for el in layer[1:]: + el = "" if el == "no-net" else el get_ids = self._odesign.GetGeometryIdsForNetLayerCombination(el, layer[0], setup) if isinstance(get_ids, (tuple, list)) and len(get_ids) > 2: lst.extend([int(i) for i in get_ids[2:]]) From d54c1d27f2c1ea447d541c70a56ec8e996f8c8f5 Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Fri, 23 Aug 2024 12:50:53 +0200 Subject: [PATCH 10/23] FIX: Solve setup in optimetrics (#5090) --- _unittest_solvers/test_00_analyze.py | 4 ++++ src/ansys/aedt/core/application/analysis.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/_unittest_solvers/test_00_analyze.py b/_unittest_solvers/test_00_analyze.py index a3f0d2991f2..032ebd83917 100644 --- a/_unittest_solvers/test_00_analyze.py +++ b/_unittest_solvers/test_00_analyze.py @@ -217,6 +217,9 @@ def test_02_hfss_export_results(self, hfss_app): intrinsics=[]) assert not os.path.exists(fld_file2) + hfss_app.variable_manager.set_variable(name="dummy", expression=1, is_post_processing=True) + sweep = hfss_app.parametrics.add(variable="dummy", start_point=0, end_point=1, step=2) + assert hfss_app.analyze_setup(name=sweep.name, cores=4) def test_03a_icepak_analyze_and_export_summary(self): self.icepak_app.solution_type = self.icepak_app.SOLUTIONS.Icepak.SteadyFlowOnly @@ -548,6 +551,7 @@ def test_09c_compute_com(self, local_scratch): com_param.export_spisim_cfg(str(Path(local_scratch.path) / "test.cfg")) com_0, com_1 = spisim.compute_com(0, Path(local_scratch.path) / "test.cfg") assert com_0 and com_1 + def test_10_export_to_maxwell(self, add_app): app = add_app("assm_test", application=Rmxprt, subfolder="T00") app.analyze(cores=1) diff --git a/src/ansys/aedt/core/application/analysis.py b/src/ansys/aedt/core/application/analysis.py index 2a8bb4f07a5..d31c8bfa54d 100644 --- a/src/ansys/aedt/core/application/analysis.py +++ b/src/ansys/aedt/core/application/analysis.py @@ -1919,7 +1919,7 @@ def analyze_setup( else: try: self.logger.info("Solving Optimetrics") - self.ooptimetrics.solve_setup(name) + self.ooptimetrics.SolveSetup(name) except Exception: # pragma: no cover if set_custom_dso and active_config: self.set_registry_key(r"Desktop/ActiveDSOConfigurations/" + self.design_type, active_config) From 175650d7a424c6bb595bb9b33081b2705a7dd352 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= <146729917+SMoraisAnsys@users.noreply.github.com> Date: Fri, 23 Aug 2024 14:22:22 +0200 Subject: [PATCH 11/23] DOCS: Use new ansys-sphinx-theme (#5089) --- doc/source/conf.py | 4 ++-- pyproject.toml | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/source/conf.py b/doc/source/conf.py index 6fc8c127c04..91697a923be 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -10,7 +10,7 @@ import numpy as np from sphinx_gallery.sorting import FileNameSortKey from ansys_sphinx_theme import (ansys_favicon, - get_version_match, pyansys_logo_black, + get_version_match, watermark, ansys_logo_white, ansys_logo_white_cropped, latex) @@ -313,7 +313,6 @@ def setup(app): # -- Options for HTML output ------------------------------------------------- html_short_title = html_title = "PyAEDT" html_theme = "ansys_sphinx_theme" -html_logo = pyansys_logo_black html_context = { "github_user": "ansys", "github_repo": "pyaedt", @@ -323,6 +322,7 @@ def setup(app): # specify the location of your github repo html_theme_options = { + "logo": "pyansys", "github_url": "https://github.com/ansys/pyaedt", "navigation_with_keys": False, "show_prev_next": False, diff --git a/pyproject.toml b/pyproject.toml index d584dc2b76a..0328d3eb1c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -70,7 +70,7 @@ dotnet = [ "pywin32>=303; platform_system=='Windows'", ] doc = [ - "ansys-sphinx-theme>=0.10.0,<0.17", + "ansys-sphinx-theme>=0.10.0,<1.1", "ipython>=8.13.0,<8.27", "joblib>=1.3.0,<1.5", "jupyterlab>=4.0.0,<4.3", @@ -84,7 +84,7 @@ doc = [ "pyvista[io]>=0.38.0,<0.45", "recommonmark", "scikit-rf>=0.30.0,<1.3", - "Sphinx>=7.1.0,<7.4", + "Sphinx>=7.1.0,<8.1", "sphinx-autobuild==2021.3.14; python_version == '3.8'", "sphinx-autobuild==2024.4.16; python_version > '3.8'", #"sphinx-autodoc-typehints", @@ -97,10 +97,10 @@ doc = [ "utm", ] doc-no-examples = [ - "ansys-sphinx-theme>=0.10.0,<0.17", + "ansys-sphinx-theme>=0.10.0,<1.1", "numpydoc>=1.5.0,<1.9", "recommonmark", - "Sphinx>=7.1.0,<7.4", + "Sphinx>=7.1.0,<8.1", "sphinx-autobuild==2021.3.14; python_version == '3.8'", "sphinx-autobuild==2024.4.16; python_version > '3.8'", #"sphinx-autodoc-typehints", From b726b28cb7e51428a5aa12a502ff90b788900820 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 09:28:50 +0200 Subject: [PATCH 12/23] CHORE: pre-commit autoupdate (#5093) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 83d0e5ee859..8409e50c7a5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -48,7 +48,7 @@ repos: # validate GitHub workflow files - repo: https://github.com/python-jsonschema/check-jsonschema - rev: 0.29.1 + rev: 0.29.2 hooks: - id: check-github-workflows From 61dfaf92c8211bf5b56fa902648b37766c55d2ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= <146729917+SMoraisAnsys@users.noreply.github.com> Date: Tue, 27 Aug 2024 13:40:59 +0200 Subject: [PATCH 13/23] REFACTOR: Settings from YAML configuration file (#5092) Co-authored-by: Maxime Rey <87315832+MaxJPRey@users.noreply.github.com> --- _unittest/test_utils.py | 46 + doc/source/Resources/pyaedt_settings.yaml | 122 +++ doc/source/User_guide/settings.rst | 141 +++ .../config/vocabularies/ANSYS/accept.txt | 1 + pyproject.toml | 1 + src/ansys/aedt/core/__init__.py | 9 +- src/ansys/aedt/core/application/design.py | 33 +- src/ansys/aedt/core/desktop.py | 4 + .../aedt/core/generic/general_methods.py | 1 + src/ansys/aedt/core/generic/settings.py | 867 +++++++++++------- 10 files changed, 879 insertions(+), 346 deletions(-) create mode 100644 doc/source/Resources/pyaedt_settings.yaml create mode 100644 doc/source/User_guide/settings.rst diff --git a/_unittest/test_utils.py b/_unittest/test_utils.py index 06d4252eae6..269eb6bbf3c 100644 --- a/_unittest/test_utils.py +++ b/_unittest/test_utils.py @@ -30,6 +30,7 @@ from unittest.mock import patch from ansys.aedt.core.generic.general_methods import pyaedt_function_handler +from ansys.aedt.core.generic.settings import Settings from ansys.aedt.core.generic.settings import settings import pytest @@ -93,3 +94,48 @@ def test_handler_deprecation_log_warning(caplog): foo(trigger_exception=False) assert len(caplog.records) == 1 + + +def test_settings_load_yaml(tmp_path): + """Test loading a configure file with correct input.""" + default_settings = Settings() + + # Create temporary YAML configuration file + yaml_path = tmp_path / "pyaedt_settings.yaml" + yaml_path.write_text( + """ + log: + global_log_file_name: 'dummy' + lsf: + lsf_num_cores: 12 + general: + desktop_launch_timeout: 12 + """ + ) + + default_settings.load_yaml_configuration(str(yaml_path)) + + assert default_settings.global_log_file_name == "dummy" + assert default_settings.lsf_num_cores == 12 + assert default_settings.desktop_launch_timeout == 12 + + +def test_settings_load_yaml_with_non_allowed_key(tmp_path): + """Test loading a configuration file with invalid key.""" + default_settings = Settings() + + # Create temporary YAML configuration file + yaml_path = tmp_path / "pyaedt_settings.yaml" + yaml_path.write_text( + """ + general: + dummy: 12.0 + """ + ) + + default_settings.load_yaml_configuration(str(yaml_path), raise_on_wrong_key=False) + assert not hasattr(default_settings, "dummy") + + with pytest.raises(KeyError) as excinfo: + default_settings.load_yaml_configuration(str(yaml_path), raise_on_wrong_key=True) + assert str(excinfo) in "Key 'dummy' is not part of the allowed keys" diff --git a/doc/source/Resources/pyaedt_settings.yaml b/doc/source/Resources/pyaedt_settings.yaml new file mode 100644 index 00000000000..13b4b214f72 --- /dev/null +++ b/doc/source/Resources/pyaedt_settings.yaml @@ -0,0 +1,122 @@ +# This file contains the settings used by default to set the PyAEDT and AEDT including logging, +# LSF, environment variables and general settings. If you want to have a different behavior +# you can modify this file and save it. To be used in PyAEDT, the path to the configuration file +# should be specified with the environment variable ``PYAEDT_LOCAL_SETTINGS_PATH``. If no +# environment variable is set, PyAEDT looks for the configuration file ``pyaedt_settings.yaml`` +# in the user's ``APPDATA`` folder for Windows and ``HOME`` folder for Linux. + +# Settings related to logging +log: + # Enable or disable the logging of EDB API methods + enable_debug_edb_logger: false + # Enable or disable the logging of the geometry operators + enable_debug_geometry_operator_logger: false + # Enable or disable the logging of the gRPC API calls + enable_debug_grpc_api_logger: false + # Enable or disable the logging of internal methods + enable_debug_internal_methods_logger: false + # Enable or disable the logging at debug level + enable_debug_logger: false + # Enable or disable the logging of methods' arguments at debug level + enable_debug_methods_argument_logger: false + # Enable or disable the logging to the AEDT message window + enable_desktop_logs: true + # Enable or disable the logging to a file + enable_file_logs: true + # Enable or disable the global PyAEDT log file located in the global temp folder + enable_global_log_file: true + # Enable or disable the local PyAEDT log file located in the ``projectname.pyaedt`` project folder + enable_local_log_file: false + # Enable or disable the logging overall + enable_logger: true + # Enable or disable the logging to STDOUT + enable_screen_logs: true + # Global PyAEDT log file path + global_log_file_name: null + # Global PyAEDT log file size in MB + global_log_file_size: 10 + # Date format of the log entries + logger_datefmt: '%Y/%m/%d %H.%M.%S' + # PyAEDT log file path + logger_file_path: null + # Message format of the log entries + logger_formatter: '%(asctime)s:%(destination)s:%(extra)s%(levelname)-8s:%(message)s' + # Path to the AEDT log file + aedt_log_file: null + +# Settings related to Linux systems running LSF scheduler +lsf: + # Command to launch in the LSF Scheduler + custom_lsf_command: null + # Command to launch the task in the LSF Scheduler + lsf_aedt_command: 'ansysedt' + # Number of LSF cores + lsf_num_cores: 2 + # Operating system string + lsf_osrel: null + # LSF queue name + lsf_queue: null + # RAM allocated for the LSF job + lsf_ram: 1000 + # Timeout in seconds for trying to start the interactive session + lsf_timeout: 3600 + # Value passed in the LSF 'select' string to the ui resource + lsf_ui: null + # Enable or disable use LSF Scheduler + use_lsf_scheduler: false + +# Settings related to environment variables thare are set before launching a new AEDT session +# This includes those that enable the beta features ! +aedt_env_var: + ANSYSEM_FEATURE_F335896_MECHANICAL_STRUCTURAL_SOLN_TYPE_ENABLE: '1' + ANSYSEM_FEATURE_F395486_RIGID_FLEX_BENDING_ENABLE: '1' + ANSYSEM_FEATURE_F538630_MECH_TRANSIENT_THERMAL_ENABLE: '1' + ANSYSEM_FEATURE_F545177_ECAD_INTEGRATION_WITH_APHI_ENABLE: '1' + ANSYSEM_FEATURE_F650636_MECH_LAYOUT_COMPONENT_ENABLE: '1' + ANSYSEM_FEATURE_S432616_LAYOUT_COMPONENT_IN_3D_ENABLE: '1' + ANSYSEM_FEATURE_SF159726_SCRIPTOBJECT_ENABLE: '1' + ANSYSEM_FEATURE_SF222134_CABLE_MODELING_ENHANCEMENTS_ENABLE: '1' + ANSYSEM_FEATURE_SF6694_NON_GRAPHICAL_COMMAND_EXECUTION_ENABLE: '1' + ANS_MESHER_PROC_DUMP_PREPOST_BEND_SM3: '1' + +general: + # Enable or disable the lazy load + lazy_load: true + # Enable or disable the lazy load dedicated to objects associated to the modeler + objects_lazy_load: true + # AEDT installation path + aedt_install_dir: null + # AEDT version in the form ``"2023.x"`` + aedt_version: null + # Timeout in seconds for trying to launch AEDT + desktop_launch_timeout: 120 + # Enable or disable bounding box evaluation by exporting a SAT file + disable_bounding_box_sat: false + # Optional path for the EDB DLL file + edb_dll_path: null + # Enable or disable the internal PyAEDT error handling + enable_error_handler: true + # Enable or disable the use of Pandas to export dictionaries and lists + enable_pandas_output: false + # Enable or disable the check of the project path + force_error_on_missing_project: false + # Number of gRPC API retries + number_of_grpc_api_retries: 6 + # Enable or disable the release of AEDT on exception + release_on_exception: true + # Time interval between the retries by the ``_retry_n_times`` inner method + retry_n_times_time_interval: 0.1 + # Enable or disable the use of the gRPC API or legacy COM object + use_grpc_api: null + # Enable or disable the use of multiple desktop sessions in the same Python script + use_multi_desktop: false + # Enable or disable the use of the flag `-waitforlicense` when launching AEDT + wait_for_license: false + # State whether the remote API is used or not + remote_api: false + # Specify the port the RPyC server is to listen to + remote_rpc_service_manager_port: 17878 + # Specify the path to AEDT in the server + pyaedt_server_path: '' + # Remote temp folder + remote_rpc_session_temp_folder: '' diff --git a/doc/source/User_guide/settings.rst b/doc/source/User_guide/settings.rst new file mode 100644 index 00000000000..7bf7bf4d82f --- /dev/null +++ b/doc/source/User_guide/settings.rst @@ -0,0 +1,141 @@ +Settings +======== + +The Settings class is designed to handle the configurations of PyAEDT and AEDT. +This includes behavior for logging, LSF scheduler, environment variable and general +settings. Most of the default values used can be modified using a YAML configuration file. +The path to this YAML file should be defined through the environment variable +``PYAEDT_LOCAL_SETTINGS_PATH``. If the environment variable is set and a file exists, +the default configuration settings are updated according to the content of the file. +If the environment variable is not defined, a check is performed to see if a file named +``"pyaedt_settings.yaml"`` exist in the user's ``APPDATA`` folder for Windows and +``HOME`` folder for Linux. If such file exists, it is then used to update the default +configuration. + +Below is the content that can be updated through the YAML file. + +:download:`YAML configuration file <../Resources/pyaedt_settings.yaml>` + +.. note:: + Not all settings from class ``Settings`` can be modified through this file + as some of them expect Python objects or values obtained from code execution. + For example, that is the case for ``formatter`` which expects an object of type + ``Formatter`` and ``time_tick`` which expects a time value, in seconds, since the + `epoch `_ as a floating-point number. + + +.. code-block:: yaml + + # Settings related to logging + log: + # Enable or disable the logging of EDB API methods + enable_debug_edb_logger: false + # Enable or disable the logging of the geometry operators + enable_debug_geometry_operator_logger: false + # Enable or disable the logging of the gRPC API calls + enable_debug_grpc_api_logger: false + # Enable or disable the logging of internal methods + enable_debug_internal_methods_logger: false + # Enable or disable the logging at debug level + enable_debug_logger: false + # Enable or disable the logging of methods' arguments at debug level + enable_debug_methods_argument_logger: false + # Enable or disable the logging to the AEDT message window + enable_desktop_logs: true + # Enable or disable the logging to a file + enable_file_logs: true + # Enable or disable the global PyAEDT log file located in the global temp folder + enable_global_log_file: true + # Enable or disable the local PyAEDT log file located in the ``projectname.pyaedt`` project folder + enable_local_log_file: false + # Enable or disable the logging overall + enable_logger: true + # Enable or disable the logging to STDOUT + enable_screen_logs: true + # Global PyAEDT log file path + global_log_file_name: null + # Global PyAEDT log file size in MB + global_log_file_size: 10 + # Date format of the log entries + logger_datefmt: '%Y/%m/%d %H.%M.%S' + # PyAEDT log file path + logger_file_path: null + # Message format of the log entries + logger_formatter: '%(asctime)s:%(destination)s:%(extra)s%(levelname)-8s:%(message)s' + + # Settings related to Linux systems running LSF scheduler + lsf: + # Command to launch in the LSF Scheduler + custom_lsf_command: null + # Command to launch the task in the LSF Scheduler + lsf_aedt_command: 'ansysedt' + # Number of LSF cores + lsf_num_cores: 2 + # Operating system string + lsf_osrel: null + # LSF queue name + lsf_queue: null + # RAM allocated for the LSF job + lsf_ram: 1000 + # Timeout in seconds for trying to start the interactive session + lsf_timeout: 3600 + # Value passed in the LSF 'select' string to the ui resource + lsf_ui: null + # Enable or disable use LSF Scheduler + use_lsf_scheduler: false + + # Settings related to environment variables thare are set before launching a new AEDT session + # This includes those that enable the beta features ! + aedt_env_var: + ANSYSEM_FEATURE_F335896_MECHANICAL_STRUCTURAL_SOLN_TYPE_ENABLE: '1' + ANSYSEM_FEATURE_F395486_RIGID_FLEX_BENDING_ENABLE: '1' + ANSYSEM_FEATURE_F538630_MECH_TRANSIENT_THERMAL_ENABLE: '1' + ANSYSEM_FEATURE_F545177_ECAD_INTEGRATION_WITH_APHI_ENABLE: '1' + ANSYSEM_FEATURE_F650636_MECH_LAYOUT_COMPONENT_ENABLE: '1' + ANSYSEM_FEATURE_S432616_LAYOUT_COMPONENT_IN_3D_ENABLE: '1' + ANSYSEM_FEATURE_SF159726_SCRIPTOBJECT_ENABLE: '1' + ANSYSEM_FEATURE_SF222134_CABLE_MODELING_ENHANCEMENTS_ENABLE: '1' + ANSYSEM_FEATURE_SF6694_NON_GRAPHICAL_COMMAND_EXECUTION_ENABLE: '1' + ANS_MESHER_PROC_DUMP_PREPOST_BEND_SM3: '1' + + general: + # Enable or disable the lazy load + lazy_load: true + # Enable or disable the lazy load dedicated to objects associated to the modeler + objects_lazy_load: true + # AEDT installation path + aedt_install_dir: null + # AEDT version in the form ``"2023.x"`` + aedt_version: null + # Timeout in seconds for trying to launch AEDT + desktop_launch_timeout: 120 + # Enable or disable bounding box evaluation by exporting a SAT file + disable_bounding_box_sat: false + # Optional path for the EDB DLL file + edb_dll_path: null + # Enable or disable the internal PyAEDT error handling + enable_error_handler: true + # Enable or disable the use of Pandas to export dictionaries and lists + enable_pandas_output: false + # Enable or disable the check of the project path + force_error_on_missing_project: false + # Number of gRPC API retries + number_of_grpc_api_retries: 6 + # Enable or disable the release of AEDT on exception + release_on_exception: true + # Time interval between the retries by the ``_retry_n_times`` inner method + retry_n_times_time_interval: 0.1 + # Enable or disable the use of the gRPC API or legacy COM object + use_grpc_api: null + # Enable or disable the use of multiple desktop sessions in the same Python script + use_multi_desktop: false + # Enable or disable the use of the flag `-waitforlicense` when launching Electronic Desktop + wait_for_license: false + # State whether the remote API is used or not + remote_api: false + # Specify the port the RPyC server is to listen to + remote_rpc_service_manager_port: 17878 + # Specify the path to AEDT in the server + pyaedt_server_path: '' + # Remote temp folder + remote_rpc_session_temp_folder: '' diff --git a/doc/styles/config/vocabularies/ANSYS/accept.txt b/doc/styles/config/vocabularies/ANSYS/accept.txt index 4125d4a4f2c..f9d92aaea61 100644 --- a/doc/styles/config/vocabularies/ANSYS/accept.txt +++ b/doc/styles/config/vocabularies/ANSYS/accept.txt @@ -39,6 +39,7 @@ Icepak IronPython [Ll]ayout limitilines +LSF matplotlib Maxwell 2D Maxwell 3D diff --git a/pyproject.toml b/pyproject.toml index 0328d3eb1c6..08beeffd978 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,6 +40,7 @@ dependencies = [ "pyedb>=0.24.0; python_version > '3.7'", "pytomlpp; python_version < '3.12'", "rpyc>=6.0.0,<6.1", + "pyyaml", ] [project.optional-dependencies] diff --git a/src/ansys/aedt/core/__init__.py b/src/ansys/aedt/core/__init__.py index b6a1a526b37..6417813f3f8 100644 --- a/src/ansys/aedt/core/__init__.py +++ b/src/ansys/aedt/core/__init__.py @@ -67,7 +67,13 @@ def custom_show_warning(message, category, filename, lineno, file=None, line=Non __version__ = "0.11.dev0" version = __version__ -# +# isort: off +# Settings have to be imported before importing other PyAEDT modules +from ansys.aedt.core.generic.general_methods import settings +from ansys.aedt.core.generic.general_methods import inner_project_settings + +# isort: on + if not ("IronPython" in sys.version or ".NETFramework" in sys.version): # pragma: no cover import ansys.aedt.core.downloads as downloads from ansys.aedt.core.edb import Edb # nosec @@ -103,7 +109,6 @@ def custom_show_warning(message, category, filename, lineno, file=None, line=Non from ansys.aedt.core.generic.general_methods import is_windows from ansys.aedt.core.generic.general_methods import online_help from ansys.aedt.core.generic.general_methods import pyaedt_function_handler -from ansys.aedt.core.generic.general_methods import settings from ansys.aedt.core.misc import current_student_version from ansys.aedt.core.misc import current_version from ansys.aedt.core.misc import installed_versions diff --git a/src/ansys/aedt/core/application/design.py b/src/ansys/aedt/core/application/design.py index 4d579fcbe6f..1eca96b0298 100644 --- a/src/ansys/aedt/core/application/design.py +++ b/src/ansys/aedt/core/application/design.py @@ -66,6 +66,7 @@ from ansys.aedt.core.generic.general_methods import GrpcApiError from ansys.aedt.core.generic.general_methods import check_and_download_file from ansys.aedt.core.generic.general_methods import generate_unique_name +from ansys.aedt.core.generic.general_methods import inner_project_settings from ansys.aedt.core.generic.general_methods import is_ironpython from ansys.aedt.core.generic.general_methods import is_project_locked from ansys.aedt.core.generic.general_methods import is_windows @@ -88,8 +89,8 @@ def load_aedt_thread(project_path): pp = load_entire_aedt_file(project_path) - settings._project_properties[os.path.normpath(project_path)] = pp - settings._project_time_stamp = os.path.getmtime(project_path) + inner_project_settings.properties[os.path.normpath(project_path)] = pp + inner_project_settings.time_stamp = os.path.getmtime(project_path) class Design(AedtObjects): @@ -550,24 +551,28 @@ def project_properties(self): start = time.time() if self.project_timestamp_changed or ( os.path.exists(self.project_file) - and os.path.normpath(self.project_file) not in settings._project_properties + and os.path.normpath(self.project_file) not in inner_project_settings.properties ): - settings._project_properties[os.path.normpath(self.project_file)] = load_entire_aedt_file(self.project_file) + inner_project_settings.properties[os.path.normpath(self.project_file)] = load_entire_aedt_file( + self.project_file + ) self._logger.info("aedt file load time {}".format(time.time() - start)) elif ( - os.path.normpath(self.project_file) not in settings._project_properties + os.path.normpath(self.project_file) not in inner_project_settings.properties and settings.remote_rpc_session and settings.remote_rpc_session.filemanager.pathexists(self.project_file) ): file_path = check_and_download_file(self.project_file) try: - settings._project_properties[os.path.normpath(self.project_file)] = load_entire_aedt_file(file_path) + inner_project_settings.properties[os.path.normpath(self.project_file)] = load_entire_aedt_file( + file_path + ) except Exception: self._logger.info("Failed to load AEDT file.") else: self._logger.info("Time to load AEDT file: {}.".format(time.time() - start)) - if os.path.normpath(self.project_file) in settings._project_properties: - return settings._project_properties[os.path.normpath(self.project_file)] + if os.path.normpath(self.project_file) in inner_project_settings.properties: + return inner_project_settings.properties[os.path.normpath(self.project_file)] return {} @property @@ -769,15 +774,15 @@ def project_path(self): def project_time_stamp(self): """Return Project time stamp.""" if os.path.exists(self.project_file): - settings._project_time_stamp = os.path.getmtime(self.project_file) + inner_project_settings.time_stamp = os.path.getmtime(self.project_file) else: - settings._project_time_stamp = 0 - return settings._project_time_stamp + inner_project_settings.time_stamp = 0 + return inner_project_settings.time_stamp @property def project_timestamp_changed(self): """Return a bool if time stamp changed or not.""" - old_time = settings._project_time_stamp + old_time = inner_project_settings.time_stamp return old_time != self.project_time_stamp @property @@ -3297,8 +3302,8 @@ def close_project(self, name=None, save=True): i += 0.2 time.sleep(0.2) - if os.path.normpath(proj_file) in settings._project_properties: - del settings._project_properties[os.path.normpath(proj_file)] + if os.path.normpath(proj_file) in inner_project_settings.properties: + del inner_project_settings.properties[os.path.normpath(proj_file)] return True @pyaedt_function_handler() diff --git a/src/ansys/aedt/core/desktop.py b/src/ansys/aedt/core/desktop.py index 9a0e9419947..6170baea1b5 100644 --- a/src/ansys/aedt/core/desktop.py +++ b/src/ansys/aedt/core/desktop.py @@ -94,6 +94,8 @@ def launch_desktop_on_port(): command.append("-ng") if settings.wait_for_license: command.append("-waitforlicense") + if settings.aedt_log_file: + command.extend(["-Logfile", settings.aedt_log_file]) my_env = os.environ.copy() for env, val in settings.aedt_environment_variables.items(): my_env[env] = val @@ -174,6 +176,8 @@ def launch_aedt_in_lsf(non_graphical, port): # pragma: no cover command.append("-ng") if settings.wait_for_license: command.append("-waitforlicense") + if settings.aedt_log_file: + command.extend(["-Logfile", settings.aedt_log_file]) else: # pragma: no cover command = settings.custom_lsf_command.split(" ") command.append("-grpcsrv") diff --git a/src/ansys/aedt/core/generic/general_methods.py b/src/ansys/aedt/core/generic/general_methods.py index 2f96eb64080..eabcc54dcd8 100644 --- a/src/ansys/aedt/core/generic/general_methods.py +++ b/src/ansys/aedt/core/generic/general_methods.py @@ -47,6 +47,7 @@ from ansys.aedt.core.aedt_logger import pyaedt_logger from ansys.aedt.core.generic.constants import CSS4_COLORS +from ansys.aedt.core.generic.settings import inner_project_settings # noqa: F401 from ansys.aedt.core.generic.settings import settings from ansys.aedt.core.misc.misc import installed_versions diff --git a/src/ansys/aedt/core/generic/settings.py b/src/ansys/aedt/core/generic/settings.py index fbedec918fd..2dddf658537 100644 --- a/src/ansys/aedt/core/generic/settings.py +++ b/src/ansys/aedt/core/generic/settings.py @@ -22,12 +22,98 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. +"""This module contains the ``Settings`` and ``_InnerProjectSettings`` classes. + +The first class encapsulates the settings associated with PyAEDT and AEDT including logging, +LSF, environment variables and general settings. Most of the default values used can be modified +using a YAML configuration file. An example of such file can be found in the documentation, see +`Settings YAML file `_. +The path to the configuration file should be specified with the environment variable +``PYAEDT_LOCAL_SETTINGS_PATH``. If no environment variable is set, the class will look for the +configuration file ``pyaedt_settings.yaml`` in the user's ``APPDATA`` folder for Windows and +``HOME`` folder for Linux. + +The second class is intended for internal use only and shouldn't be modified by users. +""" + +import logging import os import time +from typing import Any +from typing import List +from typing import Optional +from typing import Union import uuid is_linux = os.name == "posix" +# Settings allowed to be updated using a YAML configuration file. +ALLOWED_LOG_SETTINGS = [ + "enable_debug_edb_logger", + "enable_debug_geometry_operator_logger", + "enable_debug_grpc_api_logger", + "enable_debug_internal_methods_logger", + "enable_debug_logger", + "enable_debug_methods_argument_logger", + "enable_desktop_logs", + "enable_file_logs", + "enable_global_log_file", + "enable_local_log_file", + "enable_logger", + "enable_screen_logs", + "global_log_file_name", + "global_log_file_size", + "logger_datefmt", + "logger_file_path", + "logger_formatter", + "aedt_log_file", +] +ALLOWED_LSF_SETTINGS = [ + "custom_lsf_command", + "lsf_aedt_command", + "lsf_num_cores", + "lsf_osrel", + "lsf_queue", + "lsf_ram", + "lsf_timeout", + "lsf_ui", + "use_lsf_scheduler", +] +ALLOWED_GENERAL_SETTINGS = [ + "lazy_load", + "objects_lazy_load", + "aedt_install_dir", + "aedt_version", + "desktop_launch_timeout", + "disable_bounding_box_sat", + "edb_dll_path", + "enable_error_handler", + "enable_pandas_output", + "force_error_on_missing_project", + "number_of_grpc_api_retries", + "release_on_exception", + "retry_n_times_time_interval", + "use_grpc_api", + "use_multi_desktop", + "wait_for_license", + "remote_api", + "remote_rpc_service_manager_port", + "pyaedt_server_path", + "remote_rpc_session_temp_folder", +] +ALLOWED_AEDT_ENV_VAR_SETTINGS = [ + "ANSYSEM_FEATURE_F335896_MECHANICAL_STRUCTURAL_SOLN_TYPE_ENABLE", + "ANSYSEM_FEATURE_F395486_RIGID_FLEX_BENDING_ENABLE", + "ANSYSEM_FEATURE_F538630_MECH_TRANSIENT_THERMAL_ENABLE", + "ANSYSEM_FEATURE_F545177_ECAD_INTEGRATION_WITH_APHI_ENABLE", + "ANSYSEM_FEATURE_F650636_MECH_LAYOUT_COMPONENT_ENABLE", + "ANSYSEM_FEATURE_S432616_LAYOUT_COMPONENT_IN_3D_ENABLE", + "ANSYSEM_FEATURE_SF159726_SCRIPTOBJECT_ENABLE", + "ANSYSEM_FEATURE_SF222134_CABLE_MODELING_ENHANCEMENTS_ENABLE", + "ANSYSEM_FEATURE_SF6694_NON_GRAPHICAL_COMMAND_EXECUTION_ENABLE", + "ANS_MESHER_PROC_DUMP_PREPOST_BEND_SM3", +] + def generate_log_filename(): """Generate a log filename.""" @@ -37,58 +123,54 @@ def generate_log_filename(): return "{}_{}_{}.log".format(base, username, unique_id) +class _InnerProjectSettings: # pragma: no cover + """Global inner project settings. + + This class is intended for internal use only. + """ + + properties: dict = {} + time_stamp: Union[int, float] = 0 + + class Settings(object): # pragma: no cover """Manages all PyAEDT environment variables and global settings.""" def __init__(self): - self._logger = None - self._enable_logger = True - self._enable_desktop_logs = True - self._enable_screen_logs = True - self._enable_file_logs = True - self.pyaedt_server_path = "" - self._logger_file_path = None - self._logger_formatter = "%(asctime)s:%(destination)s:%(extra)s%(levelname)-8s:%(message)s" - self._logger_datefmt = "%Y/%m/%d %H.%M.%S" - self._enable_debug_edb_logger = False - self._enable_debug_grpc_api_logger = False - self._enable_debug_methods_argument_logger = False - self._enable_debug_geometry_operator_logger = False - self._enable_debug_internal_methods_logger = False - self._enable_debug_logger = False - self._enable_error_handler = True - self._release_on_exception = True - self._aedt_version = None - self._aedt_install_dir = None - self._use_multi_desktop = False - self.remote_api = False - self._use_grpc_api = None - self.formatter = None - self.remote_rpc_session = None - self.remote_rpc_session_temp_folder = "" - self.remote_rpc_service_manager_port = 17878 - self._project_properties = {} - self._project_time_stamp = 0 - self._disable_bounding_box_sat = False - self._force_error_on_missing_project = False - self._enable_pandas_output = False - self.time_tick = time.time() - self._global_log_file_name = generate_log_filename() - self._enable_global_log_file = True - self._enable_local_log_file = False - self._global_log_file_size = 10 - self._edb_dll_path = None - self._lsf_num_cores = 2 - self._lsf_ram = 1000 - self._use_lsf_scheduler = False - self._lsf_osrel = None - self._lsf_ui = None - self._lsf_aedt_command = "ansysedt" - self._lsf_timeout = 3600 - self._lsf_queue = None - self._custom_lsf_command = None - self._aedt_environment_variables = { - "ANS_MESHER_PROC_DUMP_PREPOST_BEND_SM3": "1", + # Setup default values then load values from PersoalLib' settings_config.yaml if it exists. + # Settings related to logging + self.__logger: Optional[logging.Logger] = None + self.__enable_logger: bool = True + self.__enable_desktop_logs: bool = True + self.__enable_screen_logs: bool = True + self.__enable_file_logs: bool = True + self.__logger_file_path: Optional[str] = None + self.__logger_formatter: str = "%(asctime)s:%(destination)s:%(extra)s%(levelname)-8s:%(message)s" + self.__logger_datefmt: str = "%Y/%m/%d %H.%M.%S" + self.__enable_debug_edb_logger: bool = False + self.__enable_debug_grpc_api_logger: bool = False + self.__enable_debug_methods_argument_logger: bool = False + self.__enable_debug_geometry_operator_logger: bool = False + self.__enable_debug_internal_methods_logger: bool = False + self.__enable_debug_logger: bool = False + self.__global_log_file_name: str = generate_log_filename() + self.__enable_global_log_file: bool = True + self.__enable_local_log_file: bool = False + self.__global_log_file_size: int = 10 + self.__aedt_log_file: Optional[str] = None + # Settings related to Linux systems running LSF scheduler + self.__lsf_num_cores: int = 2 + self.__lsf_ram: int = 1000 + self.__use_lsf_scheduler: bool = False + self.__lsf_osrel: Optional[str] = None + self.__lsf_ui: Optional[int] = None + self.__lsf_aedt_command: str = "ansysedt" + self.__lsf_timeout: int = 3600 + self.__lsf_queue: Optional[str] = None + self.__custom_lsf_command: Optional[str] = None + # Settings related to environment variables that are set before launching a new AEDT session + # This includes those that enable the beta features ! + self.__aedt_environment_variables: dict[str, str] = { "ANSYSEM_FEATURE_SF6694_NON_GRAPHICAL_COMMAND_EXECUTION_ENABLE": "1", "ANSYSEM_FEATURE_SF159726_SCRIPTOBJECT_ENABLE": "1", "ANSYSEM_FEATURE_SF222134_CABLE_MODELING_ENHANCEMENTS_ENABLE": "1", @@ -98,220 +180,470 @@ def __init__(self): "ANSYSEM_FEATURE_F650636_MECH_LAYOUT_COMPONENT_ENABLE": "1", "ANSYSEM_FEATURE_F538630_MECH_TRANSIENT_THERMAL_ENABLE": "1", "ANSYSEM_FEATURE_F335896_MECHANICAL_STRUCTURAL_SOLN_TYPE_ENABLE": "1", + "ANS_MESHER_PROC_DUMP_PREPOST_BEND_SM3": "1", } if is_linux: - self._aedt_environment_variables["ANS_NODEPCHECK"] = "1" - self._desktop_launch_timeout = 120 - self._number_of_grpc_api_retries = 6 - self._retry_n_times_time_interval = 0.1 - self._wait_for_license = False - self.__lazy_load = True - self.__objects_lazy_load = True + self.__aedt_environment_variables["ANS_NODEPCHECK"] = "1" + # General settings + self.__enable_error_handler: bool = True + self.__release_on_exception: bool = True + self.__aedt_version: Optional[str] = None + self.__aedt_install_dir: Optional[str] = None + self.__use_multi_desktop: bool = False + self.__use_grpc_api: Optional[bool] = None + self.__disable_bounding_box_sat = False + self.__force_error_on_missing_project = False + self.__enable_pandas_output = False + self.__edb_dll_path: Optional[str] = None + self.__desktop_launch_timeout: int = 120 + self.__number_of_grpc_api_retries: int = 6 + self.__retry_n_times_time_interval: float = 0.1 + self.__wait_for_license: bool = False + self.__lazy_load: bool = True + self.__objects_lazy_load: bool = True + # Previously 'public' attributes + self.__formatter: Optional[logging.Formatter] = None + self.__remote_rpc_session: Any = None + self.__remote_rpc_session_temp_folder: str = "" + self.__remote_rpc_service_manager_port: int = 17878 + self.__remote_api: bool = False + self.__time_tick = time.time() + self.__pyaedt_server_path = "" + + # Load local settings if YAML configuration file exists. + pyaedt_settings_path = os.environ.get("PYAEDT_LOCAL_SETTINGS_PATH", "") + if not pyaedt_settings_path: + if os.name == "posix": + pyaedt_settings_path = os.path.join(os.environ["HOME"], "pyaedt_settings.yaml") + else: + pyaedt_settings_path = os.path.join(os.environ["APPDATA"], "pyaedt_settings.yaml") + self.load_yaml_configuration(pyaedt_settings_path) + + # ########################## Logging properties ########################## @property - def release_on_exception(self): - """ + def logger(self): + """Active logger.""" + return self.__logger - Returns - ------- + @logger.setter + def logger(self, val): + self.__logger = val - """ - return self._release_on_exception + @property + def enable_desktop_logs(self): + """Enable or disable the logging to the AEDT message window.""" + return self.__enable_desktop_logs - @release_on_exception.setter - def release_on_exception(self, value): - self._release_on_exception = value + @enable_desktop_logs.setter + def enable_desktop_logs(self, val): + self.__enable_desktop_logs = val @property - def objects_lazy_load(self): - """Flag for enabling and disabling the lazy load. - The default is ``True``. + def global_log_file_size(self): + """Global PyAEDT log file size in MB. The default value is ``10``.""" + return self.__global_log_file_size - Returns - ------- - bool - """ - return self.__objects_lazy_load + @global_log_file_size.setter + def global_log_file_size(self, value): + self.__global_log_file_size = value - @objects_lazy_load.setter - def objects_lazy_load(self, value): - self.__objects_lazy_load = value + @property + def enable_global_log_file(self): + """Enable or disable the global PyAEDT log file located in the global temp folder. + The default is ``True``.""" + return self.__enable_global_log_file + + @enable_global_log_file.setter + def enable_global_log_file(self, value): + self.__enable_global_log_file = value @property - def lazy_load(self): - """Flag for enabling and disabling the lazy load. - The default is ``True``. + def enable_local_log_file(self): + """Enable or disable the local PyAEDT log file located in the ``projectname.pyaedt`` project folder. + The default is ``True``.""" + return self.__enable_local_log_file - Returns - ------- - bool - """ - return self.__lazy_load + @enable_local_log_file.setter + def enable_local_log_file(self, value): + self.__enable_local_log_file = value - @lazy_load.setter - def lazy_load(self, value): - self.__lazy_load = value + @property + def global_log_file_name(self): + """Global PyAEDT log file path. The default is ``pyaedt_username.log``.""" + return self.__global_log_file_name + + @global_log_file_name.setter + def global_log_file_name(self, value): + self.__global_log_file_name = value @property - def wait_for_license(self): - """Whether if Electronics Desktop has to be launched with ``-waitforlicense`` flag enabled or not. - Default is ``False``. + def enable_debug_methods_argument_logger(self): + """Flag for whether to write out the method's arguments in the debug logger. + The default is ``False``.""" + return self.__enable_debug_methods_argument_logger - Returns - ------- - bool - """ - return self._wait_for_license + @enable_debug_methods_argument_logger.setter + def enable_debug_methods_argument_logger(self, val): + self.__enable_debug_methods_argument_logger = val - @wait_for_license.setter - def wait_for_license(self, value): - self._wait_for_license = value + @property + def enable_screen_logs(self): + """Enable or disable the logging to STDOUT.""" + return self.__enable_screen_logs + + @enable_screen_logs.setter + def enable_screen_logs(self, val): + self.__enable_screen_logs = val @property - def retry_n_times_time_interval(self): - """Time interval between the retries by the ``_retry_n_times`` method.""" - return self._retry_n_times_time_interval + def enable_file_logs(self): + """Enable or disable the logging to a file.""" + return self.__enable_file_logs - @retry_n_times_time_interval.setter - def retry_n_times_time_interval(self, value): - self._retry_n_times_time_interval = float(value) + @enable_file_logs.setter + def enable_file_logs(self, val): + self.__enable_file_logs = val @property - def number_of_grpc_api_retries(self): - """Number of gRPC API retries. The default is ``3``.""" - return self._number_of_grpc_api_retries + def enable_logger(self): + """Enable or disable the logging overall.""" + return self.__enable_logger - @number_of_grpc_api_retries.setter - def number_of_grpc_api_retries(self, value): - self._number_of_grpc_api_retries = int(value) + @enable_logger.setter + def enable_logger(self, val): + self.__enable_logger = val @property - def desktop_launch_timeout(self): - """Timeout in seconds for trying to launch AEDT. The default is ``90`` seconds.""" - return self._desktop_launch_timeout + def logger_file_path(self): + """PyAEDT log file path.""" + return self.__logger_file_path - @desktop_launch_timeout.setter - def desktop_launch_timeout(self, value): - self._desktop_launch_timeout = int(value) + @logger_file_path.setter + def logger_file_path(self, val): + self.__logger_file_path = val @property - def aedt_environment_variables(self): - """Environment variables that are set before launching a new AEDT session, - including those that enable the beta features.""" - return self._aedt_environment_variables + def logger_formatter(self): + """Message format of the log entries. + The default is ``'%(asctime)s:%(destination)s:%(extra)s%(levelname)-8s:%(message)s'``""" + return self.__logger_formatter - @aedt_environment_variables.setter - def aedt_environment_variables(self, value): - self._aedt_environment_variables = value + @logger_formatter.setter + def logger_formatter(self, val): + self.__logger_formatter = val + + @property + def logger_datefmt(self): + """Date format of the log entries. + The default is ``'%Y/%m/%d %H.%M.%S'``""" + return self.__logger_datefmt + + @logger_datefmt.setter + def logger_datefmt(self, val): + self.__logger_datefmt = val + + @property + def enable_debug_edb_logger(self): + """Enable or disable the logger for any EDB API methods.""" + return self.__enable_debug_edb_logger + + @enable_debug_edb_logger.setter + def enable_debug_edb_logger(self, val): + self.__enable_debug_edb_logger = val + + @property + def enable_debug_grpc_api_logger(self): + """Enable or disable the logging for the gRPC API calls.""" + return self.__enable_debug_grpc_api_logger + + @enable_debug_grpc_api_logger.setter + def enable_debug_grpc_api_logger(self, val): + self.__enable_debug_grpc_api_logger = val + + @property + def enable_debug_geometry_operator_logger(self): + """Enable or disable the logging for the geometry operators. + This setting is useful for debug purposes.""" + return self.__enable_debug_geometry_operator_logger + + @enable_debug_geometry_operator_logger.setter + def enable_debug_geometry_operator_logger(self, val): + self.__enable_debug_geometry_operator_logger = val + + @property + def enable_debug_internal_methods_logger(self): + """Enable or disable the logging for internal methods. + This setting is useful for debug purposes.""" + return self.__enable_debug_internal_methods_logger + + @enable_debug_internal_methods_logger.setter + def enable_debug_internal_methods_logger(self, val): + self.__enable_debug_internal_methods_logger = val + + @property + def enable_debug_logger(self): + """Enable or disable the debug level logger.""" + return self.__enable_debug_logger + + @enable_debug_logger.setter + def enable_debug_logger(self, val): + self.__enable_debug_logger = val + + @property + def aedt_log_file(self): + """Path to the AEDT log file. + + Used to specify that Electronics Desktop has to be launched with ``-Logfile`` option. + """ + return self.__aedt_log_file + + @aedt_log_file.setter + def aedt_log_file(self, value: str): + self.__aedt_log_file = value + + # ############################# LSF properties ############################ @property def lsf_queue(self): """LSF queue name. This attribute is valid only on Linux systems running LSF Scheduler.""" - return self._lsf_queue + return self.__lsf_queue @lsf_queue.setter def lsf_queue(self, value): - self._lsf_queue = value + self.__lsf_queue = value @property def use_lsf_scheduler(self): """Whether to use LSF Scheduler. This attribute is valid only on Linux systems running LSF Scheduler.""" - return self._use_lsf_scheduler + return self.__use_lsf_scheduler @use_lsf_scheduler.setter def use_lsf_scheduler(self, value): - self._use_lsf_scheduler = value + self.__use_lsf_scheduler = value @property def lsf_aedt_command(self): """Command to launch the task in the LSF Scheduler. The default is ``"ansysedt"``. This attribute is valid only on Linux systems running LSF Scheduler.""" - return self._lsf_aedt_command + return self.__lsf_aedt_command @lsf_aedt_command.setter def lsf_aedt_command(self, value): - self._lsf_aedt_command = value + self.__lsf_aedt_command = value @property def lsf_num_cores(self): """Number of LSF cores. This attribute is valid only on Linux systems running LSF Scheduler.""" - return self._lsf_num_cores + return self.__lsf_num_cores @lsf_num_cores.setter def lsf_num_cores(self, value): - self._lsf_num_cores = int(value) + self.__lsf_num_cores = int(value) @property def lsf_ram(self): """RAM allocated for the LSF job. This attribute is valid only on Linux systems running LSF Scheduler.""" - return self._lsf_ram + return self.__lsf_ram @lsf_ram.setter def lsf_ram(self, value): - self._lsf_ram = int(value) + self.__lsf_ram = int(value) @property def lsf_ui(self): """Value passed in the LSF 'select' string to the ui resource.""" - return self._lsf_ui + return self.__lsf_ui @lsf_ui.setter def lsf_ui(self, value): - self._lsf_ui = int(value) + self.__lsf_ui = int(value) @property def lsf_timeout(self): """Timeout in seconds for trying to start the interactive session. The default is ``3600`` seconds.""" - return self._lsf_timeout + return self.__lsf_timeout @lsf_timeout.setter def lsf_timeout(self, value): - self._lsf_timeout = int(value) + self.__lsf_timeout = int(value) @property def lsf_osrel(self): """Operating system string. This attribute is valid only on Linux systems running LSF Scheduler.""" - return self._lsf_osrel + return self.__lsf_osrel @lsf_osrel.setter def lsf_osrel(self, value): - self._lsf_osrel = value + self.__lsf_osrel = value @property def custom_lsf_command(self): """Command to launch in the LSF Scheduler. The default is ``None``. This attribute is valid only on Linux systems running LSF Scheduler.""" - return self._custom_lsf_command + return self.__custom_lsf_command @custom_lsf_command.setter def custom_lsf_command(self, value): - self._custom_lsf_command = value + self.__custom_lsf_command = value + + # ############################## Environment variable properties ############################## + + @property + def aedt_environment_variables(self): + """Environment variables that are set before launching a new AEDT session, + including those that enable the beta features.""" + return self.__aedt_environment_variables + + @aedt_environment_variables.setter + def aedt_environment_variables(self, value): + self._aedt_environment_variables = value + + # ##################################### General properties #################################### + + @property + def remote_api(self): + """State whether remote API is used or not.""" + return self.__remote_api + + @remote_api.setter + def remote_api(self, value: bool): + self.__remote_api = value + + @property + def formatter(self): + """Get the formatter.""" + return self.__formatter + + @formatter.setter + def formatter(self, value: logging.Formatter): + self.__formatter = value + + @property + def remote_rpc_session(self): + """Get the RPyC connection.""" + return self.__remote_rpc_session + + @remote_rpc_session.setter + def remote_rpc_session(self, value: Any): + self.__remote_rpc_session = value + + @property + def remote_rpc_session_temp_folder(self): + """Get the remote RPyC session temp folder.""" + return self.__remote_rpc_session_temp_folder + + @remote_rpc_session_temp_folder.setter + def remote_rpc_session_temp_folder(self, value: str): + self.__remote_rpc_session_temp_folder = value + + @property + def remote_rpc_service_manager_port(self): + """Get the remote RPyC service manager port.""" + return self.__remote_rpc_service_manager_port + + @remote_rpc_service_manager_port.setter + def remote_rpc_service_manager_port(self, value: int): + self.__remote_rpc_service_manager_port = value + + @property + def time_tick(self): + """Time in seconds since the 'epoch' as a floating-point number.""" + return self.__time_tick + + @time_tick.setter + def time_tick(self, value: float): + self.__time_tick = value + + @property + def release_on_exception(self): + """Enable or disable the release of AEDT on exception.""" + return self.__release_on_exception + + @release_on_exception.setter + def release_on_exception(self, value): + self.__release_on_exception = value + + @property + def objects_lazy_load(self): + """Flag for enabling and disabling the lazy load. The default value is ``True``.""" + return self.__objects_lazy_load + + @objects_lazy_load.setter + def objects_lazy_load(self, value): + self.__objects_lazy_load = value + + @property + def lazy_load(self): + """Flag for enabling and disabling the lazy load. The default value is ``True``.""" + return self.__lazy_load + + @lazy_load.setter + def lazy_load(self, value): + self.__lazy_load = value + + @property + def wait_for_license(self): + """Enable or disable the use of the flag `-waitforlicense` when launching Electronic Desktop. + The default value is ``False``.""" + return self.__wait_for_license + + @wait_for_license.setter + def wait_for_license(self, value): + self.__wait_for_license = value + + @property + def retry_n_times_time_interval(self): + """Time interval between the retries by the ``_retry_n_times`` method.""" + return self.__retry_n_times_time_interval + + @retry_n_times_time_interval.setter + def retry_n_times_time_interval(self, value): + self.__retry_n_times_time_interval = float(value) + + @property + def number_of_grpc_api_retries(self): + """Number of gRPC API retries. The default is ``3``.""" + return self.__number_of_grpc_api_retries + + @number_of_grpc_api_retries.setter + def number_of_grpc_api_retries(self, value): + self.__number_of_grpc_api_retries = int(value) + + @property + def desktop_launch_timeout(self): + """Timeout in seconds for trying to launch AEDT. The default is ``120`` seconds.""" + return self.__desktop_launch_timeout + + @desktop_launch_timeout.setter + def desktop_launch_timeout(self, value): + self.__desktop_launch_timeout = int(value) @property def aedt_version(self): """AEDT version in the form ``"2023.x"``. In AEDT 2022 R2 and later, evaluating a bounding box by exporting a SAT file is disabled.""" - return self._aedt_version + return self.__aedt_version @aedt_version.setter def aedt_version(self, value): - self._aedt_version = value - if self._aedt_version >= "2023.1": + self.__aedt_version = value + if self.__aedt_version >= "2023.1": self.disable_bounding_box_sat = True @property def aedt_install_dir(self): """AEDT installation path.""" - return self._aedt_install_dir + return self.__aedt_install_dir @aedt_install_dir.setter def aedt_install_dir(self, value): - self._aedt_install_dir = value + self.__aedt_install_dir = value @property def use_multi_desktop(self): @@ -323,248 +655,123 @@ def use_multi_desktop(self): Enabling multiple desktop sessions is a beta feature.""" - return self._use_multi_desktop + return self.__use_multi_desktop @use_multi_desktop.setter def use_multi_desktop(self, value): - self._use_multi_desktop = value + self.__use_multi_desktop = value @property def edb_dll_path(self): """Optional path for the EDB DLL file.""" - return self._edb_dll_path + return self.__edb_dll_path @edb_dll_path.setter def edb_dll_path(self, value): if os.path.exists(value): - self._edb_dll_path = value - - @property - def global_log_file_size(self): - """Global PyAEDT log file size in MB. The default value is ``10``.""" - return self._global_log_file_size - - @global_log_file_size.setter - def global_log_file_size(self, value): - self._global_log_file_size = value - - @property - def enable_global_log_file(self): - """Flag for enabling and disabling the global PyAEDT log file located in the global temp folder. - The default is ``True``.""" - return self._enable_global_log_file - - @enable_global_log_file.setter - def enable_global_log_file(self, value): - self._enable_global_log_file = value - - @property - def enable_local_log_file(self): - """Flag for enabling and disabling the local PyAEDT log file located - in the ``projectname.pyaedt`` project folder. The default is ``True``.""" - return self._enable_local_log_file - - @enable_local_log_file.setter - def enable_local_log_file(self, value): - self._enable_local_log_file = value - - @property - def global_log_file_name(self): - """Global PyAEDT log file path. The default is ``pyaedt_username.log``.""" - return self._global_log_file_name - - @global_log_file_name.setter - def global_log_file_name(self, value): - self._global_log_file_name = value + self.__edb_dll_path = value @property def enable_pandas_output(self): """Flag for whether Pandas is being used to export dictionaries and lists. This attribute applies to Solution data output. The default is ``False``. If ``True``, the property or method returns a Pandas object. This property is valid only in the CPython environment.""" - return self._enable_pandas_output + return self.__enable_pandas_output @enable_pandas_output.setter def enable_pandas_output(self, val): - self._enable_pandas_output = val - - @property - def enable_debug_methods_argument_logger(self): - """Flag for whether to write out the method's arguments in the debug logger. - The default is ``False``.""" - return self._enable_debug_methods_argument_logger - - @enable_debug_methods_argument_logger.setter - def enable_debug_methods_argument_logger(self, val): - self._enable_debug_methods_argument_logger = val + self.__enable_pandas_output = val @property def force_error_on_missing_project(self): """Flag for whether to check the project path. The default is ``False``. If ``True``, when passing a project path, the project has to exist. Otherwise, an error is raised.""" - return self._force_error_on_missing_project + return self.__force_error_on_missing_project @force_error_on_missing_project.setter def force_error_on_missing_project(self, val): - self._force_error_on_missing_project = val + self.__force_error_on_missing_project = val @property def disable_bounding_box_sat(self): """Flag for enabling and disabling bounding box evaluation by exporting a SAT file.""" - return self._disable_bounding_box_sat + return self.__disable_bounding_box_sat @disable_bounding_box_sat.setter def disable_bounding_box_sat(self, val): - self._disable_bounding_box_sat = val + self.__disable_bounding_box_sat = val @property def use_grpc_api(self): """Flag for whether to use the gRPC API or legacy COM object.""" - return self._use_grpc_api + return self.__use_grpc_api @use_grpc_api.setter def use_grpc_api(self, val): - self._use_grpc_api = val - - @property - def logger(self): - """Active logger.""" - return self._logger - - @logger.setter - def logger(self, val): - self._logger = val + self.__use_grpc_api = val @property def enable_error_handler(self): """Flag for enabling and disabling the internal PyAEDT error handling.""" - return self._enable_error_handler + return self.__enable_error_handler @enable_error_handler.setter def enable_error_handler(self, val): - self._enable_error_handler = val - - @property - def enable_desktop_logs(self): - """Flag for enabling and disabling the logging to the AEDT message window.""" - return self._enable_desktop_logs - - @enable_desktop_logs.setter - def enable_desktop_logs(self, val): - self._enable_desktop_logs = val - - @property - def enable_screen_logs(self): - """Flag for enabling and disabling the logging to STDOUT.""" - return self._enable_screen_logs - - @enable_screen_logs.setter - def enable_screen_logs(self, val): - self._enable_screen_logs = val + self.__enable_error_handler = val @property def pyaedt_server_path(self): - """``PYAEDT_SERVER_AEDT_PATH`` environment variable.""" - return os.getenv("PYAEDT_SERVER_AEDT_PATH", "") + """Get ``PYAEDT_SERVER_AEDT_PATH`` environment variable.""" + self.__pyaedt_server_path = os.getenv("PYAEDT_SERVER_AEDT_PATH", "") + return self.__pyaedt_server_path + # NOTE: Convenient way to set the environment variable for RPyC @pyaedt_server_path.setter def pyaedt_server_path(self, val): os.environ["PYAEDT_SERVER_AEDT_PATH"] = str(val) - - @property - def enable_file_logs(self): - """Flag for enabling and disabling the logging to a file.""" - return self._enable_file_logs - - @enable_file_logs.setter - def enable_file_logs(self, val): - self._enable_file_logs = val - - @property - def enable_logger(self): - """Flag for enabling and disabling the logging overall.""" - return self._enable_logger - - @enable_logger.setter - def enable_logger(self, val): - self._enable_logger = val - - @property - def logger_file_path(self): - """PyAEDT log file path.""" - return self._logger_file_path - - @logger_file_path.setter - def logger_file_path(self, val): - self._logger_file_path = val - - @property - def logger_formatter(self): - """Message format of the log entries. - The default is ``'%(asctime)s:%(destination)s:%(extra)s%(levelname)-8s:%(message)s'``""" - return self._logger_formatter - - @logger_formatter.setter - def logger_formatter(self, val): - self._logger_formatter = val - - @property - def logger_datefmt(self): - """Date format of the log entries. - The default is ``'%Y/%m/%d %H.%M.%S'``""" - return self._logger_datefmt - - @logger_datefmt.setter - def logger_datefmt(self, val): - self._logger_datefmt = val - - @property - def enable_debug_edb_logger(self): - """Flag for enabling and disabling the logger for any EDB API methods.""" - return self._enable_debug_edb_logger - - @enable_debug_edb_logger.setter - def enable_debug_edb_logger(self, val): - self._enable_debug_edb_logger = val - - @property - def enable_debug_grpc_api_logger(self): - """Flag for enabling and disabling the logging for the gRPC API calls.""" - return self._enable_debug_grpc_api_logger - - @enable_debug_grpc_api_logger.setter - def enable_debug_grpc_api_logger(self, val): - self._enable_debug_grpc_api_logger = val - - @property - def enable_debug_geometry_operator_logger(self): - """Flag for enabling and disabling the logging for the geometry operators. - This setting is useful for debug purposes.""" - return self._enable_debug_geometry_operator_logger - - @enable_debug_geometry_operator_logger.setter - def enable_debug_geometry_operator_logger(self, val): - self._enable_debug_geometry_operator_logger = val - - @property - def enable_debug_internal_methods_logger(self): - """Flag for enabling and disabling the logging for internal methods. - This setting is useful for debug purposes.""" - return self._enable_debug_internal_methods_logger - - @enable_debug_internal_methods_logger.setter - def enable_debug_internal_methods_logger(self, val): - self._enable_debug_internal_methods_logger = val - - @property - def enable_debug_logger(self): - """Flag for enabling and disabling the debug level logger.""" - return self._enable_debug_logger - - @enable_debug_logger.setter - def enable_debug_logger(self, val): - self._enable_debug_logger = val + self.__pyaedt_server_path = os.environ["PYAEDT_SERVER_AEDT_PATH"] + + def load_yaml_configuration(self, path: str, raise_on_wrong_key: bool = False): + """Update default settings from a YAML configuration file.""" + import yaml + + def filter_settings(settings: dict, allowed_keys: List[str]): + """Filter the items of settings based on a list of allowed keys.""" + return filter(lambda item: item[0] in allowed_keys, settings.items()) + + def filter_settings_with_raise(settings: dict, allowed_keys: List[str]): + """Filter the items of settings based on a list of allowed keys.""" + for key, value in settings.items(): + if key not in allowed_keys: + raise KeyError(f"Key '{key}' is not part of the allowed keys {allowed_keys}") + yield key, value + + if os.path.exists(path): + with open(path, "r") as yaml_file: + local_settings = yaml.safe_load(yaml_file) + pairs = [ + ("log", ALLOWED_LOG_SETTINGS), + ("lsf", ALLOWED_LSF_SETTINGS), + ("aedt_env_var", ALLOWED_AEDT_ENV_VAR_SETTINGS), + ("general", ALLOWED_GENERAL_SETTINGS), + ] + for setting_type, allowed_settings_key in pairs: + settings = local_settings.get(setting_type, {}) + if raise_on_wrong_key: + for key, value in filter_settings_with_raise(settings, allowed_settings_key): + setattr(self, key, value) + else: + for key, value in filter_settings(settings, allowed_settings_key): + setattr(self, key, value) + + def writte_yaml_configuration(self, path: str): + """Write the current settings into a YAML configuration file.""" + import yaml + + if os.path.exists(path): + yaml.safe_dump(settings, path) settings = Settings() +inner_project_settings = _InnerProjectSettings() From 8309cb44331d7e591c969bb3434d1c0e27cf0d16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= <146729917+SMoraisAnsys@users.noreply.github.com> Date: Wed, 28 Aug 2024 11:33:12 +0200 Subject: [PATCH 14/23] CHORE: Add git blame ignore revs file (#5095) --- .git-blame-ignore-revs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .git-blame-ignore-revs diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 00000000000..ec0ee3183ad --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,36 @@ +# One commit hash per line, and all commits in the file will be ignored by git blame. + +# Apply flake8 policy for unused imports (#449) +f2ebb7a80978e1ea82328e9b6afd3f9484362552 +# Organize module imports (#448) +98bb0a1bfd27f8174ef86a131b3f6eed09f562ad +# Format line length (#445) +b82041bb75d71b8e11b54f9dcfdfc696a1bcf68c +# Format modeler files (#441) +0174ae92359f49fb8215f16d715f3afe8598745f +# Format example files (#444) +41eb277bc05b6736c674af33d5b601c3bc9a33d3 +# Format ipy unittests (#443) +522b13c6ed123be60eb6220bfe6fed35ba059ab8 +# Format unittests (#442) +11d60aa7e31f3494d8a73c0223c924ff17eec985 +# Format modules files (#436) +0798f3f4c2252c1c3c486b8400540939c5b42dc6 +# Format application files (#434) +19b758272a6d9551a8837b5f2d3a6283974d3367 +# Format pyaedt files with black (#433) +3c3f0c6e01336eae66199bb9e461319d18a435d7 +# Formatting - fix line length part 2 (#415) +58bbdc280545f7345b7999db0f17c3ff666e0be2 +# Formatting - fix line length part 1 (#414) +af6af2e6b5db5e1485bfddd2b9d0e363614ecfce +# Formatting - blank lines (#412) +babf97db629f2901f40ae080ac3a7e24084a1e87 +# Formatting - whitespace on blank lines (#409) +08e4ae515f7d5fd4a37e7baab7b321c907e66324 +# Formatting - indentations (#407) +9ddfe050d95feaa022cc30cc64acabee16029c07 +# Remove trailing whitespace (#404) +a4b5fe60c7d0a7db624d7ab160a0ce5e1f378759 +# Run autopep8 W291, remove trailing whitespace (#401) +159bb43d42ad502c2440531d71cf7df6c780a8c9 From 0b7a8b9356aa3d1e887e3e10c55bf6ecf5bdc827 Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Wed, 28 Aug 2024 15:12:27 +0200 Subject: [PATCH 15/23] FIX: Cast GetChildNames("Groups") to list (#5098) --- _unittest/example_models/T12/template.rpt | 379 ++++++++++++++++++ _unittest/test_12_PostProcessing.py | 9 + .../aedt/core/modeler/cad/components_3d.py | 2 +- src/ansys/aedt/core/modeler/cad/primitives.py | 2 +- src/ansys/aedt/core/modeler/modeler_3d.py | 6 +- src/ansys/aedt/core/modules/post_processor.py | 2 +- .../aedt/core/modules/report_templates.py | 45 +++ 7 files changed, 439 insertions(+), 6 deletions(-) create mode 100644 _unittest/example_models/T12/template.rpt diff --git a/_unittest/example_models/T12/template.rpt b/_unittest/example_models/T12/template.rpt new file mode 100644 index 00000000000..bd301c52488 --- /dev/null +++ b/_unittest/example_models/T12/template.rpt @@ -0,0 +1,379 @@ +$begin 'ReportDefinitions' + $begin 'ReportSetup' + $begin 'Reports' + $begin 'Plot_6LKGC0' + ReportID=117 + $begin 'Report2D' + name='Plot_6LKGC0' + ReportID=117 + ReportType=9 + DisplayType=4 + Title='' + Domain='' + $begin 'Migration' + MigVersion(0, 0, 'mig(0.0)') + $end 'Migration' + $begin 'Graph2DsV2' + $begin 'Graph2D' + TraceDefID=116 + Type='Continuous' + Axis='Y1' + $end 'Graph2D' + $end 'Graph2DsV2' + $begin 'PlotDisplayDataManager' + NextUniqueID=9 + MoveBackwards=false + $begin 'PlotHeaderDataSource' + CompanyName='' + ShowDesignName=true + ProjectFileName='' + $end 'PlotHeaderDataSource' + StockNameIDMap(DataTable=3, Header=0, PrimarySweep=1) + $begin 'SourceList' + $end 'SourceList' + Version='17.0:20150830' + $begin 'DocAttributes' + $begin 'PlotAttributeStoreMap' + $end 'PlotAttributeStoreMap' + $end 'DocAttributes' + $begin 'DisplayTypeAttributes' + $begin 'PlotAttributeStoreMap' + $begin 'MainMapItem' + $begin 'SubMapItem' + DataSourceID=7 + $begin 'CurveCartesianAttribute' + YAxis='Y1' + $end 'CurveCartesianAttribute' + $end 'SubMapItem' + $end 'MainMapItem' + $begin 'MainMapItem' + $begin 'SubMapItem' + DataSourceID=7 + $begin 'CurveRenderAttribute' + $begin 'LineRenderAttribute' + LineStyle='Solid' + LineWidth=3 + ColorVersion=1 + LineColor(R=237, G=28, B=36) + $end 'LineRenderAttribute' + TraceType='Continuous' + SymbolType='HollowHorizontalLeftTriangle' + SymbolColor(R=155, G=93, B=112) + ShowSymbols=false + SymbolFrequency=15 + ShowArrows=false + $end 'CurveRenderAttribute' + $end 'SubMapItem' + $end 'MainMapItem' + $begin 'MainMapItem' + $begin 'SubMapItem' + DataSourceID=0 + $begin 'HeaderRenderAttribute' + $begin 'TitleFont' + $begin 'FontAttribute' + $begin 'Font' + HeightInPts=14 + Width=0 + Escapement=0 + Orientation=0 + Weight=400 + Italic=0 + Underline=0 + StrikeOut=0 + CharSet=0 + OutPrecision=7 + ClipPrecision=48 + Quality=6 + PitchAndFamily=0 + FaceName='Arial' + $end 'Font' + ColorVersion=1 + $end 'FontAttribute' + $end 'TitleFont' + $begin 'SubtitleFont' + $begin 'FontAttribute' + $begin 'Font' + HeightInPts=10 + Width=0 + Escapement=0 + Orientation=0 + Weight=400 + Italic=0 + Underline=0 + StrikeOut=0 + CharSet=0 + OutPrecision=7 + ClipPrecision=48 + Quality=6 + PitchAndFamily=0 + FaceName='Arial' + $end 'Font' + ColorVersion=1 + $end 'FontAttribute' + $end 'SubtitleFont' + $end 'HeaderRenderAttribute' + $end 'SubMapItem' + $end 'MainMapItem' + $end 'PlotAttributeStoreMap' + $end 'DisplayTypeAttributes' + $begin 'DocDefaultAttributes' + $begin 'PlotAttributeStoreMap' + $end 'PlotAttributeStoreMap' + $end 'DocDefaultAttributes' + $begin 'PerViewPlotAttributeStoreMap' + $begin 'MapItem' + ItemID=6 + $begin 'PlotAttributeStoreMap' + $begin 'MainMapItem' + $begin 'SubMapItem' + DataSourceID=5 + $begin 'BasicLayoutAttribute' + $begin 'LayoutRect' + Top=75 + Left=75 + Bottom=9925 + Right=814 + $end 'LayoutRect' + $end 'BasicLayoutAttribute' + $end 'SubMapItem' + $end 'MainMapItem' + $begin 'MainMapItem' + $begin 'SubMapItem' + DataSourceID=4 + $begin 'OverlayLayoutAttribute' + $begin 'BoundingRect' + Top=225 + Left=989 + Bottom=9775 + Right=9775 + $end 'BoundingRect' + ModifySize=false + ModifyPosition=false + $end 'OverlayLayoutAttribute' + $end 'SubMapItem' + $end 'MainMapItem' + $end 'PlotAttributeStoreMap' + PlotType=25 + $end 'MapItem' + $end 'PerViewPlotAttributeStoreMap' + IsViewAttribServer=false + ViewID=-1 + $begin 'SourceIDMap' + IDMapItem(116, 0, -1, 7) + $end 'SourceIDMap' + $begin 'TraceCharacteristicsMgr' + $end 'TraceCharacteristicsMgr' + $begin 'CartesianXMarkerManager' + RefMarkerID=-1 + CurrentMarkerID=-1 + $begin 'ReferenceCurves' + $end 'ReferenceCurves' + $end 'CartesianXMarkerManager' + $begin 'CartesianYMarkerManager' + $end 'CartesianYMarkerManager' + XAxisStackID=-1 + $begin 'AllTransSrcDwg' + $begin 'PT' + ID=25 + TransSrcDwg(-1, 0, 5) + $end 'PT' + $end 'AllTransSrcDwg' + $begin 'AllPtSVID' + $end 'AllPtSVID' + $end 'PlotDisplayDataManager' + $end 'Report2D' + $end 'Plot_6LKGC0' + $end 'Reports' + $end 'ReportSetup' + $begin 'Reports' + $begin 'Plot_6LKGC0' + ReportID=117 + ReportName='Plot_6LKGC0' + $begin 'TraceDef' + TraceDefinitionType='TraceDefinition' + $begin 'DesignSolnDefn' + $begin 'DESIGN_SOLUTION_SIM_VALUE_CONTEXT' + DesignID=4 + SolutionID=5484 + $begin 'REPORT_TYPE_SIM_VALUE_CONTEXT' + ReportType=9 + SimValueContext(0, 0, 2, 0, false, false, 49, 1, 0, 1, 1, '', 0, 0, 'SourceContext', false, '0') + $end 'REPORT_TYPE_SIM_VALUE_CONTEXT' + $end 'DESIGN_SOLUTION_SIM_VALUE_CONTEXT' + $end 'DesignSolnDefn' + ID=116 + VersionID=2217 + Name='db(PeakRealizedGain)' + TieNameToExpr=true + $begin 'Components' + $begin 'TraceComponentDefinition' + Expr='Freq' + $end 'TraceComponentDefinition' + $begin 'TraceComponentDefinition' + Expr='db(PeakRealizedGain)' + $end 'TraceComponentDefinition' + $end 'Components' + $begin 'ExtendedTraceInfo' + NumPoints=0 + TraceType=0 + Offset=0 + XLabel='' + SamplingPeriod='0' + SamplingPeriodOffset='0' + AutoDelay=true + DelayValue='0ps' + AutoCompCrossAmplitude=true + CrossingAmplitude='0mV' + YAxis=1 + AutoCompEyeMeasurementPoint=true + EyeMeasurementPoint='0ps' + EyePamLow() + EyePamVRef() + EyePamHigh() + EyePamNames() + EyePamStrictVRef=false + $end 'ExtendedTraceInfo' + $begin 'TraceFamiliesDisplayDefinition' + DisplayFamiliesType='DisplayAll' + $end 'TraceFamiliesDisplayDefinition' + $begin 'PointsetDefinition' + $begin 'SubsweepDefParamsContainer' + $begin '0' + SubsweepType='Regular' + SubsweepChoiceType='All' + SweepVariableName='Freq' + AllowSelecteValues=true + SweepHasConsistentValues=true + $end '0' + $begin '1' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='fc' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(30000000000) + ParameterType='DoubleParam' + Units='GHz' + $end '1' + $begin '2' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='w' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(0.02) + ParameterType='DoubleParam' + Units='' + $end '2' + $begin '3' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='rA' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(0.51) + ParameterType='DoubleParam' + Units='' + $end '3' + $begin '4' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='hA' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(0.5) + ParameterType='DoubleParam' + Units='' + $end '4' + $begin '5' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='rB' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(0.687) + ParameterType='DoubleParam' + Units='' + $end '5' + $begin '6' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='hB' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(0.585) + ParameterType='DoubleParam' + Units='' + $end '6' + $begin '7' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='rC' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(0.805) + ParameterType='DoubleParam' + Units='' + $end '7' + $begin '8' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='hC' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(0.661) + ParameterType='DoubleParam' + Units='' + $end '8' + $begin '9' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='rD' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(0.822) + ParameterType='DoubleParam' + Units='' + $end '9' + $begin '10' + SubsweepType='Regular' + SubsweepChoiceType='Selected' + SweepVariableName='hD' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(2.3) + ParameterType='DoubleParam' + Units='' + $end '10' + $begin '11' + SubsweepType='Specifiable' + SubsweepChoiceType='Selected' + SweepVariableName='PC' + AllowSelecteValues=true + SweepHasConsistentValues=true + ColumnValues(-0.073) + ParameterType='DoubleParam' + Units='' + $end '11' + $end 'SubsweepDefParamsContainer' + FamilyBlock() + $end 'PointsetDefinition' + DesignInstanceID=5 + $end 'TraceDef' + $end 'Plot_6LKGC0' + $end 'Reports' + $begin 'AllTracesInterpreter' + $begin 'PerTraceInterpreter' + $begin 'TraceInterpreter' + ID=116 + $begin 'ReportMgrTraceInterpreter' + SolutionName='Setup1 : LastAdaptive' + SolutionID=5484 + $end 'ReportMgrTraceInterpreter' + $begin 'ProductTraceInterpreterBlock' + EMContext='3D' + $end 'ProductTraceInterpreterBlock' + $end 'TraceInterpreter' + $end 'PerTraceInterpreter' + $end 'AllTracesInterpreter' +$end 'ReportDefinitions' diff --git a/_unittest/test_12_PostProcessing.py b/_unittest/test_12_PostProcessing.py index ecd36d9445d..181ef201e81 100644 --- a/_unittest/test_12_PostProcessing.py +++ b/_unittest/test_12_PostProcessing.py @@ -194,6 +194,15 @@ def test_09_manipulate_report_B(self, field_test): ) new_report4.report_type = "Data Table" assert new_report4.create() + if not config["NonGraphical"]: + local_path = os.path.dirname(os.path.realpath(__file__)) + template = os.path.join(local_path, "example_models", test_subfolder, "template.rpt") + assert new_report4.apply_report_template(template) + template = os.path.join(local_path, "example_models", test_subfolder, "template_invented.rpt") + assert not new_report4.apply_report_template(template) + template = os.path.join(local_path, "example_models", test_subfolder, "template.csv") + assert not new_report4.apply_report_template(template) + assert not new_report4.apply_report_template(template, property_type="Dummy") def test_09_manipulate_report_C(self, field_test): variations = field_test.available_variations.nominal_w_values_dict diff --git a/src/ansys/aedt/core/modeler/cad/components_3d.py b/src/ansys/aedt/core/modeler/cad/components_3d.py index bf1ea28b32e..3b802188ea2 100644 --- a/src/ansys/aedt/core/modeler/cad/components_3d.py +++ b/src/ansys/aedt/core/modeler/cad/components_3d.py @@ -280,7 +280,7 @@ def group_name(self, name): """ if "Group" in self._primitives.oeditor.GetChildObject(self.name).GetPropNames() and name not in list( - self._primitives.oeditor.GetChildNames("Groups") + list(self._primitives.oeditor.GetChildNames("Groups")) ): arg = [ "NAME:GroupParameter", diff --git a/src/ansys/aedt/core/modeler/cad/primitives.py b/src/ansys/aedt/core/modeler/cad/primitives.py index 98a0637a25e..ad48d2dad2e 100644 --- a/src/ansys/aedt/core/modeler/cad/primitives.py +++ b/src/ansys/aedt/core/modeler/cad/primitives.py @@ -5622,7 +5622,7 @@ def create_group(self, objects=None, components=None, groups=None, group_name=No if components is None and groups is None and objects is None: raise AttributeError("At least one between ``objects``, ``components``, ``groups`` has to be defined.") - all_objects = self.object_names[:] + self.oeditor.GetChildNames("Groups")[::] + all_objects = self.object_names[:] + list(self.oeditor.GetChildNames("Groups")) if objects: object_selection = self.convert_to_selections(objects, return_list=False) else: diff --git a/src/ansys/aedt/core/modeler/modeler_3d.py b/src/ansys/aedt/core/modeler/modeler_3d.py index d7b912647cd..77d55e504b6 100644 --- a/src/ansys/aedt/core/modeler/modeler_3d.py +++ b/src/ansys/aedt/core/modeler/modeler_3d.py @@ -1108,7 +1108,7 @@ def import_nastran( aedt_objs = self.object_names[::] for assembly, _ in nas_to_dict["Assemblies"].items(): assembly_group_name = assembly - if assembly in self.oeditor.GetChildNames("Groups"): + if assembly in list(self.oeditor.GetChildNames("Groups")): assembly_group_name = generate_unique_name(assembly, n=2) new_group = [] for el in nas_to_dict["Assemblies"][assembly]["Solids"].keys(): @@ -1121,7 +1121,7 @@ def import_nastran( ] if obj_names: new_group.append(self.create_group(obj_names, group_name=str(el))) - if assembly_group_name in self.oeditor.GetChildNames("Groups"): + if assembly_group_name in list(self.oeditor.GetChildNames("Groups")): self.oeditor.MoveEntityToGroup( [ "Groups:=", @@ -1180,7 +1180,7 @@ def import_nastran( id += 1 if group_parts: pids = [i.name for i in polys] - if assembly_name in self.oeditor.GetChildNames("Groups"): + if assembly_name in list(self.oeditor.GetChildNames("Groups")): self.oeditor.MoveEntityToGroup( [ "Objects:=", diff --git a/src/ansys/aedt/core/modules/post_processor.py b/src/ansys/aedt/core/modules/post_processor.py index aee16da526a..1cb0b19c183 100644 --- a/src/ansys/aedt/core/modules/post_processor.py +++ b/src/ansys/aedt/core/modules/post_processor.py @@ -4478,7 +4478,7 @@ def power_budget(self, units="W", temperature=22, output_type="component"): power_dict_obj = {} group_hierarchy = {} - groups = self._app.oeditor.GetChildNames("Groups") + groups = list(self._app.oeditor.GetChildNames("Groups")) self._app.modeler.add_new_user_defined_component() for g in groups: g1 = self._app.oeditor.GetChildObject(g) diff --git a/src/ansys/aedt/core/modules/report_templates.py b/src/ansys/aedt/core/modules/report_templates.py index 5eae5560eca..60bbaa415e0 100644 --- a/src/ansys/aedt/core/modules/report_templates.py +++ b/src/ansys/aedt/core/modules/report_templates.py @@ -2062,6 +2062,51 @@ def update_trace_in_report(self, traces, setup_name=None, variations=None, conte finally: self.expressions = expr + @pyaedt_function_handler() + def apply_report_template(self, input_file, property_type="Graphical"): # pragma: no cover + """Apply report template. + + .. note:: + This method works in only in graphical mode. + + Parameters + ---------- + input_file : str + Path for the file to import. The extension supported is ``".rpt"``. + property_type : str, optional + Property types to apply. Options are ``"Graphical"``, ``"Data"``, and ``"All"``. + + Returns + ------- + bool + ``True`` when successful, ``False`` when failed. + + References + ---------- + + >>> oModule.ApplyReportTemplate + """ + if not os.path.exists(input_file): # pragma: no cover + msg = "File does not exist." + self._post.logger.error(msg) + return False + + split_path = os.path.splitext(input_file) + extension = split_path[1] + + supported_ext = [".rpt"] + if extension not in supported_ext: # pragma: no cover + msg = "Extension {} is not supported.".format(extension) + self._post.logger.error(msg) + return False + + if property_type not in ["Graphical", "Data", "All"]: # pragma: no cover + msg = "Invalid value for `property_type`. The value must be 'Graphical', 'Data', or 'All'." + self._post.logger.error(msg) + return False + self._post.oreportsetup.ApplyReportTemplate(self.plot_name, input_file, property_type) + return True + class Standard(CommonReport): """Provides a reporting class that fits most of the app's standard reports.""" From aba3dba60be0657dcb849c34dea95d76f338690c Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Thu, 29 Aug 2024 00:14:34 +0200 Subject: [PATCH 16/23] FEAT: Circuit Netlist class (#5094) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Sébastien Morais <146729917+SMoraisAnsys@users.noreply.github.com> --- _unittest/conftest.py | 18 +- _unittest/example_models/T47/netlist.aedtz | Bin 0 -> 53553 bytes _unittest/test_21_Circuit.py | 8 +- _unittest/test_47_CircuitNetlist.py | 60 ++++++ _unittest/test_launch_desktop.py | 6 + _unittest_solvers/conftest.py | 1 + src/ansys/aedt/core/__init__.py | 1 + .../aedt/core/application/aedt_objects.py | 24 ++- src/ansys/aedt/core/application/analysis.py | 11 +- .../application/analysis_circuit_netlist.py | 126 +++++++++++ .../application/analysis_maxwell_circuit.py | 14 +- src/ansys/aedt/core/application/design.py | 47 +++-- .../aedt/core/application/design_solutions.py | 3 + src/ansys/aedt/core/application/variables.py | 9 +- src/ansys/aedt/core/circuit.py | 10 +- src/ansys/aedt/core/circuit_netlist.py | 197 ++++++++++++++++++ src/ansys/aedt/core/desktop.py | 25 ++- src/ansys/aedt/core/generic/design_types.py | 6 +- src/ansys/aedt/core/maxwell.py | 4 +- .../modeler/circuits/primitives_nexxim.py | 8 +- src/ansys/aedt/core/modeler/modeler_3d.py | 2 +- src/ansys/aedt/core/modeler/schematic.py | 4 +- src/ansys/aedt/core/modules/post_processor.py | 32 +-- .../aedt/core/modules/report_templates.py | 5 +- 24 files changed, 540 insertions(+), 81 deletions(-) create mode 100644 _unittest/example_models/T47/netlist.aedtz create mode 100644 _unittest/test_47_CircuitNetlist.py create mode 100644 src/ansys/aedt/core/application/analysis_circuit_netlist.py create mode 100644 src/ansys/aedt/core/circuit_netlist.py diff --git a/_unittest/conftest.py b/_unittest/conftest.py index eef19475e3b..183590b6378 100644 --- a/_unittest/conftest.py +++ b/_unittest/conftest.py @@ -62,6 +62,7 @@ settings.enable_desktop_logs = False settings.desktop_launch_timeout = 180 settings.release_on_exception = False +settings.wait_for_license = True from ansys.aedt.core import Edb from ansys.aedt.core import Hfss @@ -197,13 +198,16 @@ def _method( test_project = None if not application: application = Hfss - return application( - project=test_project, - design=design_name, - solution_type=solution_type, - version=desktop_version, - non_graphical=NONGRAPHICAL, - ) + + args = { + "project": test_project, + "design": design_name, + "version": desktop_version, + "non_graphical": NONGRAPHICAL, + } + if solution_type: + args["solution_type"] = solution_type + return application(**args) return _method diff --git a/_unittest/example_models/T47/netlist.aedtz b/_unittest/example_models/T47/netlist.aedtz new file mode 100644 index 0000000000000000000000000000000000000000..2023910630de1c82c4c8b0d717481bd99071f7b2 GIT binary patch literal 53553 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�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 oDesign.GetModule("Optimetrics") """ - if not self._ooptimetrics and self.design_type not in ["Maxwell Circuit", "EMIT"]: + if not self._ooptimetrics and self.design_type not in ["Circuit Netlist", "Maxwell Circuit", "EMIT"]: self._ooptimetrics = self.get_module("Optimetrics") return self._ooptimetrics @@ -182,7 +182,7 @@ def ooutput_variable(self): >>> oDesign.GetModule("OutputVariable") """ - if not self._ooutput_variable and self.design_type not in ["EMIT", "Maxwell Circuit"]: + if not self._ooutput_variable and self.design_type not in ["EMIT", "Maxwell Circuit", "Circuit Netlist"]: self._ooutput_variable = self.get_module("OutputVariable") return self._ooutput_variable @@ -201,7 +201,7 @@ def oanalysis(self): return self._oanalysis if "HFSS 3D Layout Design" in self.design_type: self._oanalysis = self.get_module("SolveSetups") - elif "EMIT" in self.design_type or "Maxwell Circuit" in self.design_type: + elif self.design_type in ["EMIT", "Circuit Netlist", "Maxwell Circuit"]: self._oanalysis = None elif "Circuit Design" in self.design_type or "Twin Builder" in self.design_type: self._oanalysis = self.get_module("SimSetup") @@ -289,7 +289,14 @@ def osolution(self): >>> oModule = oDesign.GetModule("Solutions") """ if not self._osolution: - if self.design_type in ["RMxprt", "RMxprtSolution", "Twin Builder", "Circuit Design", "Maxwell Circuit"]: + if self.design_type in [ + "RMxprt", + "RMxprtSolution", + "Twin Builder", + "Circuit Design", + "Maxwell Circuit", + "Circuit Netlist", + ]: return if self.design_type in ["HFSS 3D Layout Design", "HFSS3DLayout"]: self._osolution = self.get_module("SolveSetups") @@ -337,6 +344,7 @@ def ofieldsreporter(self): """ if self.design_type in [ "Circuit Design", + "Circuit Netlist", "Twin Builder", "Maxwell Circuit", "EMIT", @@ -400,13 +408,15 @@ def oeditor(self): if not self._oeditor and self._odesign: if self.design_type in ["Circuit Design", "Twin Builder", "Maxwell Circuit", "EMIT"]: self._oeditor = self._odesign.SetActiveEditor("SchematicEditor") - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) - self._odesktop.CloseAllWindows() + self.desktop_class.close_windows() elif self.design_type in ["HFSS 3D Layout Design", "HFSS3DLayout"]: self._oeditor = self._odesign.SetActiveEditor("Layout") elif self.design_type in ["RMxprt", "RMxprtSolution"]: self._oeditor = self._odesign.SetActiveEditor("Machine") + elif self.design_type in ["Circuit Netlist"]: + self._oeditor = None else: self._oeditor = self._odesign.SetActiveEditor("3D Modeler") return self._oeditor diff --git a/src/ansys/aedt/core/application/analysis.py b/src/ansys/aedt/core/application/analysis.py index d31c8bfa54d..ddafff07312 100644 --- a/src/ansys/aedt/core/application/analysis.py +++ b/src/ansys/aedt/core/application/analysis.py @@ -239,7 +239,7 @@ def setups(self): """ if not self._setups: - if self.design_type != "Maxwell Circuit": + if self.design_type not in ["Maxwell Circuit", "Circuit Netlist"]: self._setups = [self.get_setup(setup_name) for setup_name in self.setup_names] return self._setups @@ -427,7 +427,9 @@ def existing_analysis_setups(self): >>> oModule.GetSetups """ - setups = self.oanalysis.GetSetups() + setups = [] + if self.oanalysis and "GetSetups" in self.oanalysis.__dir__(): + setups = self.oanalysis.GetSetups() if setups: return list(setups) return [] @@ -446,7 +448,10 @@ def setup_names(self): >>> oModule.GetSetups """ - return self.oanalysis.GetSetups() + setup_names = [] + if self.oanalysis and "GetSetups" in self.oanalysis.__dir__(): + setup_names = self.oanalysis.GetSetups() + return setup_names @property def SimulationSetupTypes(self): diff --git a/src/ansys/aedt/core/application/analysis_circuit_netlist.py b/src/ansys/aedt/core/application/analysis_circuit_netlist.py new file mode 100644 index 00000000000..2003d59f0ef --- /dev/null +++ b/src/ansys/aedt/core/application/analysis_circuit_netlist.py @@ -0,0 +1,126 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2021 - 2024 ANSYS, Inc. and/or its affiliates. +# SPDX-License-Identifier: MIT +# +# +# 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. + +from ansys.aedt.core.application.analysis import Analysis +from ansys.aedt.core.generic.settings import settings + + +class AnalysisCircuitNetlist(Analysis, object): + """Provides the Circuit Netlist (CircuitNetlist) interface. + Circuit Netlist Editor has no setup, solution, analysis or postprocessor + It is automatically initialized by Application call. + Refer to Application function for inputs definition + + Parameters + ---------- + project : str, optional + Name of the project to select or the full path to the project + or AEDTZ archive to open. The default is ``None``, in which + case an attempt is made to get an active project. If no + projects are present, an empty project is created. + design : str, optional + Name of the design to select. The default is ``None``, in + which case an attempt is made to get an active design. If no + designs are present, an empty design is created. + version : str, int, float, optional + Version of AEDT to use. The default is ``None``. If ``None``, + the active setup is used or the latest installed version is + used. + non_graphical : bool, optional + Whether to launch AEDT in the non-graphical mode. The default + is ``False``, in which case AEDT is launched in the graphical mode. + new_desktop : bool, optional + Whether to launch an instance of AEDT in a new thread, even if + another instance of the ``specified_version`` is active on the + machine. The default is ``False``. + close_on_exit : bool, optional + Whether to release AEDT on exit. The default is ``False``. + student_version : bool, optional + Whether to open the AEDT student version. The default is ``False``. + aedt_process_id : int, optional + Only used when ``new_desktop = False``, specifies by process ID which instance + of Electronics Desktop to point PyAEDT at. + remove_lock : bool, optional + Whether to remove lock to project before opening it or not. + The default is ``False``, which means to not unlock + the existing project if needed and raise an exception. + """ + + def __init__( + self, + project, + design, + version, + non_graphical, + new_desktop, + close_on_exit, + student_version, + machine, + port, + aedt_process_id, + remove_lock, + ): + Analysis.__init__( + self, + "Circuit Netlist", + project, + design, + None, + None, + version, + non_graphical, + new_desktop, + close_on_exit, + student_version, + machine, + port, + aedt_process_id, + remove_lock=remove_lock, + ) + self._modeler = None + self._post = None + if not settings.lazy_load: + self._post = self.post + + @property + def post(self): + """PostProcessor. + + Returns + ------- + :class:`ansys.aedt.core.modules.advanced_post_processing.CircuitPostProcessor` + PostProcessor object. + """ + if self._post is None and self._odesign: + self.logger.reset_timer() + from ansys.aedt.core.modules.advanced_post_processing import PostProcessor + + self._post = PostProcessor(self) + self.logger.info_timer("Post class has been initialized!") + return self._post + + @property + def modeler(self): + """Modeler object.""" + return self._modeler diff --git a/src/ansys/aedt/core/application/analysis_maxwell_circuit.py b/src/ansys/aedt/core/application/analysis_maxwell_circuit.py index d3cfa7687a8..4a58ff6879b 100644 --- a/src/ansys/aedt/core/application/analysis_maxwell_circuit.py +++ b/src/ansys/aedt/core/application/analysis_maxwell_circuit.py @@ -34,12 +34,12 @@ class AnalysisMaxwellCircuit(Analysis): Parameters ---------- - projectname : str, optional + project : str, optional Name of the project to select or the full path to the project or AEDTZ archive to open. The default is ``None``, in which case an attempt is made to get an active project. If no projects are present, an empty project is created. - designname : str, optional + design : str, optional Name of the design to select. The default is ``None``, in which case an attempt is made to get an active design. If no designs are present, an empty design is created. @@ -47,7 +47,7 @@ class AnalysisMaxwellCircuit(Analysis): Version of AEDT to use. The default is ``None``. If ``None``, the active setup is used or the latest installed version is used. - NG : bool, optional + non_graphical : bool, optional Whether to launch AEDT in the non-graphical mode. The default is ``False``, in which case AEDT is launched in the graphical mode. new_desktop : bool, optional @@ -70,8 +70,8 @@ class AnalysisMaxwellCircuit(Analysis): def __init__( self, application, - projectname, - designname, + project, + design, version=None, non_graphical=False, new_desktop=False, @@ -85,8 +85,8 @@ def __init__( Analysis.__init__( self, application, - projectname, - designname, + project, + design, None, None, version, diff --git a/src/ansys/aedt/core/application/design.py b/src/ansys/aedt/core/application/design.py index 1eca96b0298..d3897399eeb 100644 --- a/src/ansys/aedt/core/application/design.py +++ b/src/ansys/aedt/core/application/design.py @@ -307,7 +307,7 @@ def __init__( self._variable_manager = VariableManager(self) self._project_datasets = [] self._design_datasets = [] - if not self._design_type == "Maxwell Circuit": + if self._design_type not in ["Maxwell Circuit", "Circuit Netlist"]: self.design_settings = DesignSettings(self) @property @@ -353,28 +353,36 @@ def boundaries(self): List of :class:`ansys.aedt.core.modules.boundary.BoundaryObject` """ bb = [] - if "GetBoundaries" in self.oboundary.__dir__(): + if self.oboundary and "GetBoundaries" in self.oboundary.__dir__(): bb = list(self.oboundary.GetBoundaries()) - elif "GetAllBoundariesList" in self.oboundary.__dir__() and self.design_type == "HFSS 3D Layout Design": + elif ( + self.oboundary + and "GetAllBoundariesList" in self.oboundary.__dir__() + and self.design_type == "HFSS 3D Layout Design" + ): bb = list(self.oboundary.GetAllBoundariesList()) bb = [elem for sublist in zip(bb, ["Port"] * len(bb)) for elem in sublist] elif "Boundaries" in self.get_oo_name(self.odesign): bb = self.get_oo_name(self.odesign, "Boundaries") bb = list(bb) - if "GetHybridRegions" in self.oboundary.__dir__(): + if self.oboundary and "GetHybridRegions" in self.oboundary.__dir__(): hybrid_regions = self.oboundary.GetHybridRegions() for region in hybrid_regions: bb.append(region) bb.append("FE-BI") current_excitations = [] current_excitation_types = [] - if "GetExcitations" in self.oboundary.__dir__(): + if self.oboundary and "GetExcitations" in self.oboundary.__dir__(): ee = list(self.oboundary.GetExcitations()) current_excitations = [i.split(":")[0] for i in ee[::2]] current_excitation_types = ee[1::2] ff = [i.split(":")[0] for i in ee] bb.extend(ff) - elif "Excitations" in self.get_oo_name(self.odesign) and self.design_type == "HFSS 3D Layout Design": + elif ( + self.oboundary + and "Excitations" in self.get_oo_name(self.odesign) + and self.design_type == "HFSS 3D Layout Design" + ): ee = self.get_oo_name(self.odesign, "Excitations") ee = [elem for sublist in zip(ee, ["Port"] * len(ee)) for elem in sublist] current_excitations = ee[::2] @@ -416,12 +424,13 @@ def boundaries(self): current_boundaries = bb[::2] current_types = bb[1::2] - check_boundaries = list(current_boundaries[:]) + list(self.ports[:]) + self.excitations[:] - if "nets" in dir(self): - check_boundaries += self.nets - for k in list(self._boundaries.keys())[:]: - if k not in check_boundaries: - del self._boundaries[k] + if hasattr(self, "excitations"): + check_boundaries = list(current_boundaries[:]) + list(self.ports[:]) + self.excitations[:] + if "nets" in dir(self): + check_boundaries += self.nets + for k in list(self._boundaries.keys())[:]: + if k not in check_boundaries: + del self._boundaries[k] for boundary, boundarytype in zip(current_boundaries, current_types): if boundary in self._boundaries: continue @@ -474,7 +483,7 @@ def ports(self): """ design_excitations = [] - if "GetExcitations" in self.oboundary.__dir__(): + if self.oboundary and "GetExcitations" in self.oboundary.__dir__(): ee = list(self.oboundary.GetExcitations()) current_types = ee[1::2] for i in set(current_types): @@ -486,7 +495,11 @@ def ports(self): current_types = current_types + [i] * len(new_port) return design_excitations - elif "GetAllPortsList" in self.oboundary.__dir__() and self.design_type in ["HFSS 3D Layout Design"]: + elif ( + self.oboundary + and "GetAllPortsList" in self.oboundary.__dir__() + and self.design_type in ["HFSS 3D Layout Design"] + ): return self.oboundary.GetAllPortsList() return [] @@ -699,7 +712,7 @@ def design_list(self): def design_type(self): """Design type. - Options are ``"Circuit Design"``, ``"Emit"``, ``"HFSS"``, + Options are ``"Circuit Design"``, ``"Circuit Netlist"``, ``"Emit"``, ``"HFSS"``, ``"HFSS 3D Layout Design"``, ``"Icepak"``, ``"Maxwell 2D"``, ``"Maxwell 3D"``, ``"Maxwell Circuit"``, ``"Mechanical"``, ``"ModelCreation"``, ``"Q2D Extractor"``, ``"Q3D Extractor"``, ``"RMxprtSolution"``, @@ -1238,7 +1251,7 @@ def oproject(self, proj_name=None): self._oproject = self.odesktop.OpenProject(proj_name) if not is_windows and settings.aedt_version: time.sleep(1) - self.odesktop.CloseAllWindows() + self.desktop_class.close_windows() self._add_handler() self.logger.info("Project %s has been opened.", self._oproject.GetName()) time.sleep(0.5) @@ -3469,7 +3482,7 @@ def _insert_design(self, design_type, design_name=None): ) if not is_windows and settings.aedt_version and self.design_type == "Circuit Design": time.sleep(1) - self.odesktop.CloseAllWindows() + self.desktop_class.close_windows() if new_design is None: # pragma: no cover new_design = self.desktop_class.active_design(self.oproject, unique_design_name, self.design_type) if new_design is None: diff --git a/src/ansys/aedt/core/application/design_solutions.py b/src/ansys/aedt/core/application/design_solutions.py index 328256aa913..8531a688e7b 100644 --- a/src/ansys/aedt/core/application/design_solutions.py +++ b/src/ansys/aedt/core/application/design_solutions.py @@ -32,6 +32,7 @@ "Maxwell 3D": "Magnetostatic", "Twin Builder": "TR", "Circuit Design": "NexximLNA", + "Circuit Netlist": "", "Maxwell Circuit": "", "2D Extractor": "Open", "Q3D Extractor": "Q3D Extractor", @@ -548,6 +549,7 @@ }, # Maxwell Circuit has no solution type "Maxwell Circuit": {}, + "Circuit Netlist": {}, } model_names = { @@ -555,6 +557,7 @@ "Maxwell 3D": "Maxwell3DModel", "Twin Builder": "SimplorerCircuit", "Circuit Design": "NexximCircuit", + "Circuit Netlist": "NexximNetlist", "Maxwell Circuit": "MaxCirCircuit", "2D Extractor": "2DExtractorModel", "Q3D Extractor": "Q3DModel", diff --git a/src/ansys/aedt/core/application/variables.py b/src/ansys/aedt/core/application/variables.py index c8004fa08fc..7091243ab02 100644 --- a/src/ansys/aedt/core/application/variables.py +++ b/src/ansys/aedt/core/application/variables.py @@ -1372,7 +1372,10 @@ def delete_unused_variables(self): @pyaedt_function_handler() def _get_var_list_from_aedt(self, desktop_object): var_list = [] - if self._app._is_object_oriented_enabled() and self._app.design_type != "Maxwell Circuit": + if self._app._is_object_oriented_enabled() and self._app.design_type not in [ + "Maxwell Circuit", + "Circuit Netlist", + ]: # To retrieve local variables try: v = list(self._app.get_oo_object(self._app.odesign, "LocalVariables").GetPropNames()) @@ -1390,7 +1393,9 @@ def _get_var_list_from_aedt(self, desktop_object): except AttributeError: v = [] var_list += v - var_list += [i for i in list(desktop_object.GetVariables()) if i not in var_list] + + if "GetVariables" in desktop_object.__dir__(): + var_list += [i for i in list(desktop_object.GetVariables()) if i not in var_list] var_list += [i for i in list(self._app.oproject.GetArrayVariables()) if i not in var_list] return var_list diff --git a/src/ansys/aedt/core/circuit.py b/src/ansys/aedt/core/circuit.py index 1482ece983f..00e22e98db5 100644 --- a/src/ansys/aedt/core/circuit.py +++ b/src/ansys/aedt/core/circuit.py @@ -115,8 +115,8 @@ class Circuit(FieldAnalysisCircuit, ScatteringMethods): Examples -------- - Create an instance of Circuit and connect to an existing HFSS - design or create a new HFSS design if one does not exist. + Create an instance of Circuit and connect to an existing Circuit + design or create a new Circuit design if one does not exist. >>> from ansys.aedt.core import Circuit >>> aedtapp = Circuit() @@ -235,7 +235,7 @@ def create_schematic_from_netlist(self, input_file): delta = 0.0508 use_instance = True model = [] - self._desktop.CloseAllWindows() + self.desktop_class.close_windows() autosave = False if self._desktop.GetAutoSaveEnabled() == 1: self._desktop.EnableAutoSave(False) @@ -688,9 +688,9 @@ def get_source_pin_names( self._desktop.OpenProject(source_project_path) oSrcProject = self._desktop.SetActiveProject(source_project_name) oDesign = oSrcProject.SetActiveDesign(source_design_name) - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) - self._desktop.CloseAllWindows() + self.desktop_class.close_windows() tmp_oModule = oDesign.GetModule("BoundarySetup") port = None if port_selector == 1: diff --git a/src/ansys/aedt/core/circuit_netlist.py b/src/ansys/aedt/core/circuit_netlist.py new file mode 100644 index 00000000000..b5b4579ba1b --- /dev/null +++ b/src/ansys/aedt/core/circuit_netlist.py @@ -0,0 +1,197 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2021 - 2024 ANSYS, Inc. and/or its affiliates. +# SPDX-License-Identifier: MIT +# +# +# 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. + +"""This module contains the ``CircuitNetlist`` class.""" + +from __future__ import absolute_import # noreorder + +import os +import shutil + +from ansys.aedt.core.application.analysis_circuit_netlist import AnalysisCircuitNetlist +from ansys.aedt.core.generic.filesystem import search_files +from ansys.aedt.core.generic.general_methods import pyaedt_function_handler + + +class CircuitNetlist(AnalysisCircuitNetlist, object): + """Provides the Circuit Netlist application interface. + + Parameters + ---------- + project : str, optional + Name of the project to select or the full path to the project + or AEDTZ archive to open. The default is ``None``, in which + case an attempt is made to get an active project. If no + projects are present, an empty project is created. + design : str, optional + Name of the design to select. The default is ``None``, in + which case an attempt is made to get an active design. If no + designs are present, an empty design is created. + version : str, int, float, optional + Version of AEDT to use. The default is ``None``, in which case + the active version or latest installed version is used. + This parameter is ignored when Script is launched within AEDT. + Examples of input values are ``232``, ``23.2``,``2023.2``,``"2023.2"``. + non_graphical : bool, optional + Whether to run AEDT in non-graphical mode. The default + is ``False``, in which case AEDT is launched in graphical mode. + This parameter is ignored when a script is launched within AEDT. + new_desktop : bool, optional + Whether to launch an instance of AEDT in a new thread, even if + another instance of the ``specified_version`` is active on the + machine. The default is ``False``. This parameter is ignored when + a script is launched within AEDT. + close_on_exit : bool, optional + Whether to release AEDT on exit. The default is ``False``. + student_version : bool, optional + Whether to open the AEDT student version. The default is ``False``. + This parameter is ignored when Script is launched within AEDT. + machine : str, optional + Machine name to which connect the oDesktop Session. Works only in 2022 R2 + or later. The remote server must be up and running with the command + `"ansysedt.exe -grpcsrv portnum"`. If a machine is `"localhost"`, the + server also starts if not present. + port : int, optional + Port number on which to start the oDesktop communication on an already existing server. + This parameter is ignored when creating a new server. It works only in 2022 R2 or + later. The remote server must be up and running with the command + `"ansysedt.exe -grpcsrv portnum"`. + aedt_process_id : int, optional + Process ID for the instance of AEDT to point PyAEDT at. The default is + ``None``. This parameter is only used when ``new_desktop = False``. + remove_lock : bool, optional + Whether to remove lock to project before opening it or not. + The default is ``False``, which means to not unlock + the existing project if needed and raise an exception. + + Examples + -------- + Create an instance of CircuitNetlist and connect to an existing CircuitNetlist + design or create a new HFSS design if one does not exist. + + >>> from ansys.aedt.core import CircuitNetlist + >>> aedtapp = CircuitNetlist() + + Create an instance of Circuit and link to a project named + ``"projectname"``. If this project does not exist, create one with + this name. + + >>> aedtapp = CircuitNetlist(projectname) + + Create an instance of Circuit and link to a design named + ``"designname"`` in a project named ``"projectname"``. + + >>> aedtapp = CircuitNetlist(projectname,designame) + + Create an instance of Circuit and open the specified project, + which is ``"myfie.aedt"``. + + >>> aedtapp = CircuitNetlist("myfile.aedt") + + Create an instance of Circuit using the 2023 R2 version and + open the specified project, which is ``"myfile.aedt"``. + + >>> aedtapp = CircuitNetlist(version=2023.2, project="myfile.aedt") + + Create an instance of Circuit using the 2023 R2 student version and open + the specified project, which is named ``"myfile.aedt"``. + + >>> hfss = CircuitNetlist(version="2023.2", project="myfile.aedt", student_version=True) + + """ + + @pyaedt_function_handler() + def __init__( + self, + project=None, + design=None, + version=None, + non_graphical=False, + new_desktop=False, + close_on_exit=False, + student_version=False, + machine="", + port=0, + aedt_process_id=None, + remove_lock=False, + ): + AnalysisCircuitNetlist.__init__( + self, + project, + design, + version, + non_graphical, + new_desktop, + close_on_exit, + student_version, + machine, + port, + aedt_process_id, + remove_lock, + ) + + def _init_from_design(self, *args, **kwargs): # pragma: no cover + self.__init__(*args, **kwargs) + + @pyaedt_function_handler(filepath="input_file") + def browse_log_file(self, input_file=None): # pragma: no cover + """Save the most recent log file in a new directory. + + Parameters + ---------- + input_file : str, optional + File path to save the new log file to. The default is the ``pyaedt`` folder. + + Returns + ------- + str + File Path. + """ + if input_file and not os.path.exists(os.path.normpath(input_file)): + self.logger.error("Path does not exist.") + return None + elif not input_file: + input_file = os.path.join(os.path.normpath(self.working_directory), "logfile") + if not os.path.exists(input_file): + os.mkdir(input_file) + + results_path = os.path.join(os.path.normpath(self.results_directory), self.design_name) + results_temp_path = os.path.join(results_path, "temp") + + # Check if .log exist in temp folder + if os.path.exists(results_temp_path) and search_files(results_temp_path, "*.log"): + # Check the most recent + files = search_files(results_temp_path, "*.log") + latest_file = max(files, key=os.path.getctime) + elif os.path.exists(results_path) and search_files(results_path, "*.log"): + # Check the most recent + files = search_files(results_path, "*.log") + latest_file = max(files, key=os.path.getctime) + else: + self.logger.error("Design not solved") + return None + + shutil.copy(latest_file, input_file) + filename = os.path.basename(latest_file) + return os.path.join(input_file, filename) diff --git a/src/ansys/aedt/core/desktop.py b/src/ansys/aedt/core/desktop.py index 6170baea1b5..b2be9ff0a46 100644 --- a/src/ansys/aedt/core/desktop.py +++ b/src/ansys/aedt/core/desktop.py @@ -798,9 +798,9 @@ def active_design(self, project_object=None, name=None, design_type=None): active_design = project_object.GetActiveDesign() else: active_design = project_object.SetActiveDesign(name) - if is_linux and settings.aedt_version == "2024.1" and design_type == "Circuit Design": + if is_linux and settings.aedt_version == "2024.1" and design_type == "Circuit Design": # pragma: no cover time.sleep(1) - self.odesktop.CloseAllWindows() + self.close_windows() return active_design @pyaedt_function_handler() @@ -823,9 +823,9 @@ def active_project(self, name=None): active_project = self.odesktop.GetActiveProject() else: active_project = self.odesktop.SetActiveProject(name) - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) - self.odesktop.CloseAllWindows() + self.close_windows() return active_project @property @@ -837,6 +837,23 @@ def install_path(self): except Exception: # pragma: no cover return installed_versions()[version_key + "CL"] + @pyaedt_function_handler() + def close_windows(self): + """Close all windows. + + Returns + ------- + bool + ``True`` when successful, ``False`` when failed. + + References + ---------- + + >>> oDesktop.CloseAllWindows + """ + self.odesktop.CloseAllWindows() + return True + @property def current_version(self): """Current AEDT version.""" diff --git a/src/ansys/aedt/core/generic/design_types.py b/src/ansys/aedt/core/generic/design_types.py index f68bed8e0ca..cc3b4453225 100644 --- a/src/ansys/aedt/core/generic/design_types.py +++ b/src/ansys/aedt/core/generic/design_types.py @@ -27,6 +27,7 @@ import time from ansys.aedt.core.circuit import Circuit +from ansys.aedt.core.circuit_netlist import CircuitNetlist from ansys.aedt.core.desktop import Desktop Emit = None @@ -173,6 +174,7 @@ def launch_desktop( "Maxwell Circuit": MaxwellCircuit, "Twin Builder": TwinBuilder, "Circuit Design": Circuit, + "Circuit Netlist": CircuitNetlist, "2D Extractor": Q2d, "Q3D Extractor": Q3d, "HFSS": Hfss, @@ -227,7 +229,7 @@ def get_pyaedt_app(project_name=None, design_name=None, desktop=None): oProject = odesktop.GetActiveProject() else: oProject = odesktop.SetActiveProject(project_name) - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) odesktop.CloseAllWindows() if not oProject: @@ -243,7 +245,7 @@ def get_pyaedt_app(project_name=None, design_name=None, desktop=None): oDesign = oProject.GetActiveDesign() else: oDesign = oProject.SetActiveDesign(design_name) - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) odesktop.CloseAllWindows() if not oDesign: diff --git a/src/ansys/aedt/core/maxwell.py b/src/ansys/aedt/core/maxwell.py index f194feec815..cbf9efba2a8 100644 --- a/src/ansys/aedt/core/maxwell.py +++ b/src/ansys/aedt/core/maxwell.py @@ -2111,9 +2111,9 @@ def edit_external_circuit(self, netlist_file_path, schematic_design_name, parame return False odesign = self.desktop_class.active_design(self.oproject, schematic_design_name) oeditor = odesign.SetActiveEditor("SchematicEditor") - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) - self.odesktop.CloseAllWindows() + self.desktop_class.close_windows() comps = oeditor.GetAllComponents() sources_array = [] sources_type_array = [] diff --git a/src/ansys/aedt/core/modeler/circuits/primitives_nexxim.py b/src/ansys/aedt/core/modeler/circuits/primitives_nexxim.py index 65bdb7282d1..4415d800c9c 100644 --- a/src/ansys/aedt/core/modeler/circuits/primitives_nexxim.py +++ b/src/ansys/aedt/core/modeler/circuits/primitives_nexxim.py @@ -206,16 +206,16 @@ def create_subcircuit(self, location=None, angle=None, name=None, nested_subcirc parent_name = "{}:{}".format(self._app.design_name.split("/")[0], ":U" + str(random.randint(1, 10000))) self._app.odesign.InsertDesign("Circuit Design", name, "", parent_name) - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) - self._app.odesktop.CloseAllWindows() + self._app.desktop_class.close_windows() if nested_subcircuit_id: pname = "{}:{}".format(self._app.design_name.split("/")[0], nested_subcircuit_id) odes = self._app.desktop_class.active_design(self._app.oproject, pname) oed = odes.SetActiveEditor("SchematicEditor") - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) - self._app.odesktop.CloseAllWindows() + self._app.desktop_class.close_windows() objs = oed.GetAllElements() match = [i for i in objs if name in i] o = CircuitComponent(self, tabname=self.tab_name, custom_editor=oed) diff --git a/src/ansys/aedt/core/modeler/modeler_3d.py b/src/ansys/aedt/core/modeler/modeler_3d.py index 77d55e504b6..6ce22683626 100644 --- a/src/ansys/aedt/core/modeler/modeler_3d.py +++ b/src/ansys/aedt/core/modeler/modeler_3d.py @@ -1091,7 +1091,7 @@ def import_nastran( if save_only_stl: return output_stls - self._app.odesktop.CloseAllWindows() + self._app.desktop_class.close_windows() self.logger.info("Importing STL in 3D Modeler") if output_stls: for output_stl in output_stls: diff --git a/src/ansys/aedt/core/modeler/schematic.py b/src/ansys/aedt/core/modeler/schematic.py index 2fc01dacce0..960ac95f4bd 100644 --- a/src/ansys/aedt/core/modeler/schematic.py +++ b/src/ansys/aedt/core/modeler/schematic.py @@ -553,9 +553,9 @@ def model_units(self): >>> oEditor.SetActiveUnits """ active_units = self.layouteditor.GetActiveUnits() - if is_linux and settings.aedt_version == "2024.1": + if is_linux and settings.aedt_version == "2024.1": # pragma: no cover time.sleep(1) - self._app.odesktop.CloseAllWindows() + self._app.desktop_class.close_windows() return active_units @property diff --git a/src/ansys/aedt/core/modules/post_processor.py b/src/ansys/aedt/core/modules/post_processor.py index 1cb0b19c183..da322c73718 100644 --- a/src/ansys/aedt/core/modules/post_processor.py +++ b/src/ansys/aedt/core/modules/post_processor.py @@ -875,7 +875,9 @@ class PostProcessorCommon(object): def __init__(self, app): self._app = app - self.oeditor = self.modeler.oeditor + self.oeditor = None + if self.modeler: + self.oeditor = self.modeler.oeditor self._scratch = self._app.working_directory self.plots = self._get_plot_inputs() self.reports_by_category = Reports(self, self._app.design_type) @@ -979,7 +981,7 @@ def available_quantities_categories( report_category = self.available_report_types[0] if not display_type: display_type = self.available_display_types(report_category)[0] - if not solution: + if not solution and hasattr(self._app, "nominal_adaptive"): solution = self._app.nominal_adaptive if is_siwave_dc: # pragma: no cover id_ = "0" @@ -1080,7 +1082,7 @@ def available_report_quantities( report_category = self.available_report_types[0] if not display_type: display_type = self.available_display_types(report_category)[0] - if not solution: + if not solution and hasattr(self._app, "nominal_adaptive"): solution = self._app.nominal_adaptive if is_siwave_dc: id = "0" @@ -1194,7 +1196,10 @@ def available_report_solutions(self, report_category=None): def _get_plot_inputs(self): names = self._app.get_oo_name(self.oreportsetup) plots = [] - if names: + skip_plot = False + if self._app.design_type == "Circuit Netlist" and self._app.desktop_class.non_graphical: + skip_plot = True + if names and not skip_plot: for name in names: obj = self._app.get_oo_object(self.oreportsetup, name) report_type = obj.GetPropValue("Report Type") @@ -1585,8 +1590,8 @@ def export_report_to_csv( ) @pyaedt_function_handler(project_dir="project_path") - def export_report_to_jpg(self, project_path, plot_name, width=0, height=0): - """Export the SParameter plot to a JPG file. + def export_report_to_jpg(self, project_path, plot_name, width=0, height=0, image_format="jpg"): + """Export plot to an image file. Parameters ---------- @@ -1598,6 +1603,8 @@ def export_report_to_jpg(self, project_path, plot_name, width=0, height=0): Image width. Default is ``0`` which takes Desktop size or 1980 pixel in case of non-graphical mode. height : int, optional Image height. Default is ``0`` which takes Desktop size or 1020 pixel in case of non-graphical mode. + image_format : str, optional + Format of the image file. The default is ``"jpg"``. Returns ------- @@ -1609,9 +1616,7 @@ def export_report_to_jpg(self, project_path, plot_name, width=0, height=0): >>> oModule.ExportImageToFile """ - # path - npath = project_path - file_name = os.path.join(npath, plot_name + ".jpg") # name of the image file + file_name = os.path.join(project_path, plot_name + "." + image_format) # name of the image file if self._app.desktop_class.non_graphical: # pragma: no cover if width == 0: width = 1980 @@ -2378,7 +2383,10 @@ def model_units(self): str Model units, such as ``"mm"``. """ - return self.oeditor.GetModelUnits() + model_units = None + if self.oeditor and "GetModelUnits" in self.oeditor.__dir__(): + model_units = self.oeditor.GetModelUnits() + return model_units @property def post_osolution(self): @@ -3288,7 +3296,7 @@ def _create_fieldplot( if not setup: setup = self._app.existing_analysis_sweeps[0] - self._desktop.CloseAllWindows() + self._app.desktop_class.close_windows() try: self._app.modeler.fit_all() except Exception: @@ -3348,7 +3356,7 @@ def _create_fieldplot_line_traces( for i in self._app.setups: if i.name == setup.split(" : ")[0]: intrinsics = i.default_intrinsics - self._desktop.CloseAllWindows() + self._app.desktop_class.close_windows() try: self._app._modeler.fit_all() except Exception: diff --git a/src/ansys/aedt/core/modules/report_templates.py b/src/ansys/aedt/core/modules/report_templates.py index 60bbaa415e0..985abbdc448 100644 --- a/src/ansys/aedt/core/modules/report_templates.py +++ b/src/ansys/aedt/core/modules/report_templates.py @@ -366,8 +366,9 @@ def __init__(self, app, report_category, setup_name, expressions=None): self.props["context"]["primary_sweep_range"] = ["All"] self.props["context"]["secondary_sweep_range"] = ["All"] self.props["context"]["variations"] = {"Freq": ["All"]} - for el, k in self._post._app.available_variations.nominal_w_values_dict.items(): - self.props["context"]["variations"][el] = k + if hasattr(self._post._app, "available_variations") and self._post._app.available_variations: + for el, k in self._post._app.available_variations.nominal_w_values_dict.items(): + self.props["context"]["variations"][el] = k self.props["expressions"] = None self.props["plot_name"] = None if expressions: From c53c711ba61996ad5b35dc6f3b801b4fe4a39a18 Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Thu, 29 Aug 2024 12:48:46 +0200 Subject: [PATCH 17/23] FEAT: Q3D mutual coupling (#5045) --- .../example_models/T31/coupling.aedtz | Bin 0 -> 551810 bytes _unittest_solvers/test_31_Q3D.py | 23 +++ src/ansys/aedt/core/q3d.py | 140 ++++++++++++++++++ 3 files changed, 163 insertions(+) create mode 100644 _unittest_solvers/example_models/T31/coupling.aedtz diff --git a/_unittest_solvers/example_models/T31/coupling.aedtz b/_unittest_solvers/example_models/T31/coupling.aedtz new file mode 100644 index 0000000000000000000000000000000000000000..3ed36917d7fc8f9854c8c36332d536a75291343f GIT binary patch literal 551810 zcmY(pb95%%6EzxJ6Wg{Ywr$(C^~APqPHfvwCdtH@*tVWK@9+EWy6g5or>eSY*Is9> zv%629R+0sWKnDQ6fr61Kw|SUN79QI1^#{=SfVK)qK1Ap`1!y8J)D2yT+hw30N|BN_vqJX7GNn( zW)X1J-E`((`Ek8@y^ii;O`E0o_nkih#1s|kmc*Y8dV2H}T^E~|5`MO?0^jUkz1^I7 z2^CkF=BG!`jZvtY?Z3k|&6@QqqMlD8E><|-`ep(5DJj*jPbM7teKW}q>voN3kr{9E z-kb>;Ic6_O-J`qf^+#M&cOJm4-jBB@Zti9eV3+hNP`-R~JH{~I^3LO?_GR~;GmFYP z`wOA-I>GSKv?+U~_wCsLGC%#$0nq*7^7h6^<&06kA7Pe0o)w!syKiicxIgQoEvgLc z<|?jpk6gOOoU3>n!A$^4{ZX9c^d}fw8aLznZprTju1o<{LvB*)aRWDhkuaIi!O$NR z(M6!X=i|1WC>42Y`h52*_r%?#xTW}8Hu(FDk=Cyafg#5Y`zHlSEj@{Thkdr127=pg z9V(yVMSQ+s5#BOQyw2nFr^zLtav_}atX#AnZ<_D2Y zy~bOJ`pI%H73Dkbu|LHD--#7EOq6&@eF5!9B}5jn(r{p5gnhqwyR_q8B_ilT#^<7h z$a~c?D?%8{N;`!#+&)@&skkYL20iMtp44w=xPNqbGL^T3tA4fGpx=Do)vKYhmqeM9 zapb{9m~d_XGgnXlb*kxd(*F>NbKU>JByBJfhP;F1CAa=On|ihyI%JY;VbPU`@2qyr^5N&T4YR)tXM$k8w&gQBnJgqWNJh3$ z7^R{*h?8QDRBpsaPrEr zClvt@BI@S7=;XI&nV;_0Li;cI>xF}^x~l@g>M3b<^x?CzAZmT)q$bLHRg!YdW7}ah z>olml(Vw>fB0s@l>;PE1)PG<5lBGcdAr52b_~-6k+ult8;1P&2!2wc_HJydi6)DIo z1Y@?@$iEV?ejHb;_xvbC(%`v}z7(Mw9IHQ2Ku8SXAvTy)aKjk$V;-LcDbFWIBhYefe*Ki3=*v#h)Z3=8hDRP{2CF z4xWtX*~lthQ@}%o{=hvRgl{x{_CQclWz=v^F0GogPA(ue8744`&N?T)I0P-4pZb0d z8Kzd0b4>(IT#sfy#hGsQQ!2(eCz>X!^lF8>Zb$kmfr%39CauKy+ON6-q{(dJLwY=K zw+-a9^v#{?sRBt7<0ca9N^WrcY+Y_31`j=XBPl%%p*C;OE=ehr_$&;JmGlKHiU{#b|@%QY61OznYxIw-`4%jzaVp?tX{$&VeWJ!V{N zti>(C#BE+P^jWu9CNGpm-3HIbX=o*w?8d&rrRn447 z1D-C28}bl`I?Ch(OahDi(+Il|@CNi^p^lT?F$<1__@8S=1}UvK7JkFDAPLhM*Ye$a0CS89kM) z#7}qcerBVtomd$r-Y2L>6V0zY$l@nX8X?{%tXCU77qpnR>DV&i8A&H@&I8q8f(>I9 zq7t%FH}`yP)8NGmcd{K7c&s-CWzYSlm4h?+!=ZuwS&M)5bZOIL<{Bplx-d?lapf?l z+{S`DqIKx^8Z^3pKj4g*yBH%~Lg4eqyF`Jd-fZllk%ks7cdG6$z&bJB)J2)|It)X} z{9u)YgbM^6JwrwPIampo*S``xlq`WGYBDlz`+pA7eo`Y<4X?*KAb!DDNzp*A>%6kD z!|i-BM%I#m12aQ`-`kqT+-8O`@10}>29ljc=)!9*;Ztgn>G*lVrV%^*Nbmt=e+TNW(uwD50NO0&W)gjCtAb6Y5xskU>?D z&L4+b{}n{aTK+3={Iog$*H-qQ1#0{MT2TMjDjn|caQhv^>l34;YWN(btIX@s{Lj+k z(GBMH+5MkI;w1M!nq_Db10gSQO{mRylo@H7raHSu>c4U`EOcyrJ~4Z6*r+MJ!hDQ8 zMDogL1N3uAIBZ< zj@UX-Irox=Gf`|pD*gc-ZvxKjA&P_WqT%aJ*o+8O{MV-B%pt`0|Mv<}3fcMVhD6vW zVBxB<5pJU5=~Am)9QIP{P>MVol&!#VuC|N4KY)t(DOyfzT76R!z+r>t2ZO@`!}^?vP->Q>f?iSf}?SU-%0l zAz|FGn)bK{g??(TLPK2zWU%-$)JDCG>{qxtvsu~XKOysouOm%y6re*8I8#wVAJv!= z`$rCvieJz7TFi}`I+`>m2!nQW#`}t-P85r@i(TzBy6nfywB?kjvgS;Tk--mD!ssro z98$$BKE=9clwvtCX)N0_YaHEWeGp7$isH(cR>FH9Rxt=UQFm!9UeAWOT7Mc4Rk5&o*Khm+bs|{1 zLn$w+p=%Rhu1};v{ujIg^}gCXQ#vjxrEB9usRy6OAL2`O9}R>aYITei%?eMh!@dmc zNgZX)V7wsB2_agiOjwFYU?VCBgyTPKGO$|T4iG8AS>|VX^+mnaz!ob{-sM*i)rHrn zrp91)FRZi~u)!z;X+=U;ztXHN)_cOBI!nYV4F09^1@mt*{YpVFAY+=)lEIeK8>HZs zNR-_`e>GkReY8x#{c|o;S08x3N16#4o50kh)Zmna^->`#5xZ0Z;T}logzOj6z|=Ca zv_Wk`7~4QrSl%C*;=z`o^e>Bsidb6dbOUYvi38~=oD!Z}qo}*pWw|ye z_Wz2St{0WZ{`e4pmHb~Y7%csNV0Gw)!5#ky;JKB7V2p@s1a1`4K~{n=4*dsCBNXPH zgi*+ODg#P85mWcCf#yG|2BH6#*Wcp*1GNlikm{bm;iK}h=9kHV=oNBKC|mESAc)`d z{M-oySNi|$N9faxunwaCZA5lKL2&*JZkN5* zDaBK$%%9%Jnr?h|Vvo6dxyETnTb?^G7%y=ijyGFeK`PXoU|^)r^#D{9$We!GU!Qc} z3e)tq^qPN{-mj+LKwfdz*^bUxy!fiFWP8TNnclD0A}g|W@u`f>A1V&_Id8Lwo}w@S zw9bCm_i$2bs0|@ob2iuht#r3jvz%~FSFuCBj&jIWb9u?U+Mv`S2eS=iRkImPLp5#B zg>ht{r{HlD9d)En>HE4 z3_1~s!_}-V(e}m)k_NX0mQIj8(VqB=d5dr(0{Np8OMWDh2jO?{4hi(&=!!44qY>Ne4X9u98vPz+8@)4^@*%&#Oe2)q&16 zzHsQ!$JP~&!X};aqL!p;+jw98h8ZN5ncp(qaLfM?L}Z`arB>@pUc<(y8Y(jecnFN=v>8g#QY^N1E@l_}?zgI|$^IMYwT;c# z)SsxNktFw_1R{c5YIJUDuxfU)WRFPlSU;??9oPgL$YaE1b^EaEXd_jjD+Y_e%gDAUtroyv#+xuw zidnIzS=%SR$Je(b;>>!VnV{nq?f3_dkN=1h7Mr{?bj=T@ois7ZEGul&n9W zM)+rZ&xsf+3_zH-!_xU1(vzyQwMc0ZAe_u}_1<}hZz{EMc*E6&A!@WeIPTv7$ z--6;}2rA*JDx)OcZ$X{D(S0T9ypc@gbG9X}#{vQ@{Y|XASJQ<3=?0fy7Em81bup8# z2GXRK0S$IbB5mCtl0idE?e|5>S}5)3!Mc)*Bj2i{5))E>jHh_1uh=%&vTcLDoBkvM z@UbYLw|s-J5R%t-8@lFMTHXA);y4n~j6A zIB*%WFfF*LU29pDR~f-F4!nH3$Ubyd`axr!Y`sB0E=ufj4Md|mzpj(n*u;ag9ue^x zwSuT;E0zTN!MDLSkPwHdVT*zPfG-qq#ea{P@Yg(6aB`V}ZR*pu9z*`&A^6jG$@;nc zR8I%)xDUrSr2ssjm~}m;FSwT``y+SS#3}kHOb!am#f&qgdFbI&-e7ch*)se4`ZLeu zc$mZ};|*H7y#Hf%pNf9243aAgbr1hzmYwS%D=Hd;p)CWrD8Hws$$3oDj#2=7PJ>A$ zpbC~Ux?hUodJY?tViw;)JThtNo!g}me$vMqQ_=C(z$rNqF20}h^RW)&>2_z{&=N(JZ{4=VV@X-GV7 zPl|lz`(qU;KGyB(hd-z_##23Hd`eA3ZLZ=-!OugYs+GF6rq)1;t$H`C0qELzfY6{a z_wiu{{vZ_~>iaVZN|;g@1wot&ps;7IS&+&~MJ5iPk}af`+6eO@&R3^3)Lw)03+Gwj z>;*OyF^zbX;WX#~Ria>iYy+#{JI?QEeklzjW5m|m&JB(?-}>^32qn%L8Oac%)L<}( zszzh^a-Fg#{uT8sj!~szFAC5}AcnY+lLnzOy#An`%z>Pn#$^eUn(mQ^>3<0QGyYG- zCS#M`Aq2DoC@|cng>J{7aEqv-H$+$BqjZUYVF$l1`giduL|h=(LK9_x@zQB9p&rTF zJxfxIA6cA_6-{{WtrkKzwT__>o-Bd6Gla-TYFTZW$ z)Fsdzl{%Kf(ajSu?B+YPSs<~#A6NI*SI zVWfj_ymXW7R zgvTKgD+nO|z+fbDCdk;97R?=At;_uahwTKsX+C~$xzQ+9{d``pfcLwP8l|O{0qV)! z78&<(@GpPnM6~=;WF(VVgW5eo)$dYq*S7}=a57&Yos-6%>hTaK!#dDqdX$JAJeHmA zkpyYQd9p})Jr}YK05;S|4#nm)5Xr`AGy{o*yT=1zi7Fg|0&0b_F4Yc%LILaw)dRPL z`USsxoDHI#kFe z;HPiEM&h67odqq31h4^i6Y0mD(X-%dc#yuoVqOsl4PH~ww1SPZ8e+?aN<>H`7s+Ms zfKh8qsFN&t`MD1BiM2+$0Y#z+!MEfnFrx;c3xoUHyFOU*zWqgTUEIEFOHdxv{%cVz zy`=EP4A84Z%DF$*_TL=(R;~YxY&K7kQPcizY_ zH6R`l04PhK4~Nd$YD|XfH|y9l!oae6Zm_&FAl^2u)z86W9tVZ7yzL(Bmyof`MoD&UKtIHA7vbV z{9QYO^)nQty5G-5%6yoYW6bDg?!*>}e}i)E*&^=kVm>E}XijkCNfbD%s8v z_;yk$(XWZK4-4cLR(k%uJr{#q!M@}~X1VtF;~*^N33?ZAX4tL5ZLyEw^e1m=6G*o_l^qiFMq1O|NR#YZ)8xlLO0$utZ(U95&XxWJ+25w(qJ z4Qqt{Ub?s-8_g8cYGxo+>Ojd=fiiKMzNMxZYMks4E!S3|@~oZu^`(Zf-tj0;bp_oC z>UUbi!-;Ai7kA{$e(uf~oB}3(X{x;M?)9`iH~UMzT`KqNvi30=OkP!eO_%9Pgy_0J z^3by9`;KqS8Ck$2fgphfr`b-VV~PsDa5jHs^Kk4fm3i0*r&JHI^J=jJn7P6qI#UQ$ zwk`BW(-aG>tY06@0)PMPod}fJxfrw=h9gwY$Gu`YRS=A!{`1L>_`rR@ck8AuGHkBu*xcEH&i&BqICozvQf++?P*6cu~?TXj8{pE_v7UY|g6Sow!_} z+H|lG5J%jKE0B`iv$In!$tD!^i0<>=&PJ}>(lf)qlQ4T+h!sF{%H4O`tVqp~YE^@& zE2+aq$=y}>5b*yRDSg{9G+C%Ir|D<6Esm|@#cWx7GusfWpDjfj=^a8pn~P9F!?Z3w z=fWv_kD(Vw&qzZkft64>2KH_y*ABB--=YO}Y2p0!XymaD4r8aC7~r#%QxWehJ8}pBXHse#aE%Jfhk_eI-Mt?vR43w^f;l( zMfS#X|17Q{o)&AzAcw@m}}`SbJXZTht#Z zfqSoDFCdFIr0?ca^O_B@*DJk3DxJiOl4ZxcCC`7 zOLj)5#G!eazMSLsBKm^}Bip#|g>hQQK`J>q^)AZI_TVVScbNj=6OmYbMge;ku z(M9EY0P@o^y+k{?ggfX2CphRUuMzHM!a%cWI>+o3(2i0vpP4`&!1Z#J|5t#N^b1e> zDy-=&FKtIx{hDdWafZ7;NicUeKgHw6)2{GFuiUQwe1l`lrhzTzHz{8x?}_kv#KRs2 z>y2(ykLL^C&T;eSOq>3vf#7hAd`Cx7cm8a#@Jh9w-o2PAbf5^iz#U*GahYfxK~JR# z_7O~_KM=4#{V>A<9vYN03_cpl>oT>(606GEn;3X9hcl^1N-W)%A6&mleIvT0hq}?N z^t7c;;;Pt4@dnlAr=iCO&;(~5AIHP8&dhKZ|6DScn+rZgb z@%r@WbU14A_@T;zS$ZQej9?qpFDCkTh21Z2^%3m7KapiOgK6D08&2`I?AE{K5YpX52uXj^O<}vOCdw@C&BTutJK7(qK=$%W9)-uVh~}DAiWF_|r1YWN*y~zv!3;Beexk{9_-0F~qKf`AA9G2w*b^l{ z``(@i0XSq;E=KL^VYMY4A~yP@+%u?~pMqk*no+n#VkKzxvj4gTC89C@2PC+L*K)A) zE6(06)&u2EgIS(nQi4a1*Gq{E4_Ub7uXT-1q7Ca?sV_1!xDu z0ej4fa7O#hm~>M4`^5xr=}|D~b(@h&F$UQ)Wl(ndB@${%-x=2H&vOp6>*sPtk|VMf zxvQYSa%|^}?lP}w$aG;aoOL7qyC&y0X1wl) z^zKaN>ci1b^J!b@*YJaGPp5!{DCp@icL4xN6iYJhbe@(x{t|Z0F{96(DwGMjoTb+d{p$S;2N6`M;$IweLbr#7ptCm$$b0+ z9-;9vK7VZBv*g2L}CkN0504cza~cH7ArvUPxE=8Dmt1Br18Mu!) z!@KJu!Ty0=nVCM3Kjvf~7i>{;n#tobL}l2Iw7ICkLyGKMuwF4qt|x=QA9AtpaLO-y~SC@NREc zc#q?bM{R3!49$>pBgUEp1>9)#4lHpB0um62>eI$Gb#oj!H4SGM`e7vVBSe}Vk-Xk9 zRo--jKgZ}LnT{*kX`dX8Hw^4$`Zrd69daYhMzVS(1MIGiQU+>V^BkHtt`TtHkVjas~LQ`ib3RpuI$6gw?CZp0xJjBmGh&DX*~{+M_P1|^l>c*>Q!+Kf=b(D&#F^=N?hDfRS(_F0DTSG%QfzFd#(19vv0>M$&r35{yv7JG5O5qm{|J~TP6 zOuVgE^KnFe&k0LCE%K2!1!Z5i$~^Emnn zvb=E3Zyg@_U&!931IRxx-~0B-U%%$X8S`TRbnp4T$)Dzm$^J1;UT?ie-P~tX%l<$2 z^L>*(&6$#+_VWz_`~)XIQ2PL3xf3A3FZ8|6=1D^j&NCv45<^CSK?_nwP(SkGe4f&G z6B;hc*JJn{FWfcOWsas)mh0(m!qYsz%6F5b43K#9#vki1>E%m6+$Tda?EU)W-W)@G z&18?Nh%gB+a5F1A;AbjppAbFU-_1_lI|u5#9Ay!U_;v){&uu53b^!<;w2G6tkR8Nf z*HL=rENlT^se1?N{Av~ww*Hgm3fPZZ*qSbK13H(QvA-QHI^+Z>->g~n^3CY|7)L4c5aOd@ z-0j1s4PUOV*4u3bv-a;>oIl^w`R$2%b<6%qX}yN(?(Oa6#pW~(<9c)blR#+)pKQPz z@90sxqVpSC&nBqrUbLjyp{0OZVSd7l3{rr-5vlZe#KS5S<+bl;De`^Kaqwvzq|R)z3Wrho^N8c#Hc9Rz75Zbqo2xhy9R& zMl&8A>H!B=Drv%-1oet4YO3*HLiMF|G${;RVB_1kCO`+v0<&d~XN`7(?A82qDyvXcpcLi&7_F_bd{T25k5JXy~cKd)B!%e3_Oy#b`>dLCkU-p8Ru z6X*TF?Pm~nxs2B?UN7y}h3c=qcNy2_9RIDh0{K+mbYwP1Qo)|wGXvV1oy?+dA4)*0 z$hY|G^=B5$*Fit|oA(=5GEjeH7k*_=cgfKJd9Stnh-oPDq&`TYpZ3ENBXC#lySE>3 zr}1)p()JagCq(MX0uu%G&RRc9Q)S1Z_hH0QUrg@#^S!^o; z@bBLfJvRB18YpWd1k6#Le&rz4Y;;ZcDUYyP|BC=nfc>FIt4~-%;$D6O;3Atpcd19x_ z@qnMPbGl6+PlQ^9 zf6HFV!v{h3TdxQklLaPE{aS=Yz9wIRW+WF~0;RLTxBdehKQNigXlXA_f!H+uO63MT z;4MSkF@W6c{jl-!KF27$kEC-8@e^=Yv{3YF=|k!E#h6X3 zzKE(Auzcsc!+ia%YQ*|M(%=L|8$g^}G+pltnmZHrq8kUez#6EM3#q~yc%%?lC@(fu zGythkNCSjvVgl)y0@)1S2*v6c@t_CWv0|!Mnp=M2cFyBriU_Bioj1L)r$vEC%3@lR?^xm4dy4+n3AE3uzW5c96{t=vvC z5>IYFDpEkvR-6;K3yFzZ-5&1{mfWg4Zl=^w;RHV2{;;i3UVG)cA1S#&?X}pe`Lscu zjq;j*E{zJ_{_+@;RBU3243zpN3OjG~r_!5Nj1UH+@z}}&?BK`4&UNSNge~w;in2FW zH2BaQFUPP@xo(+n8M18094HNS&%PgBj3)PA2RGIieycw8@}WGS)nZG3(#t-(Y+1ik z34d{HjrG92tSX&YYW*t7d>^w-(=f4=q1D%CzmlRNL}J62%)yg_WylCIiIFAy{FeXn zNAr`%eJV&bh{dBIO(zOwB9~WXuf#CdjE}-rW(LF0%^Pn)RNRPYsw?x)s~A2gh>Zd8 z5Pu)WneI0-B>Akqip_ket~O^dSr)`AdbRDA)%SGx6?`m<-yS(&6>l>|bQ;Dx3jV>z zF$UPUjET%MV*zE^G!xY>M?W##eLVb2Eao4Co3@*08Qb2uJIMk@0SvxMf_MO>54XxY z&0m)PK7fU~nm8$v(+F6NQBV`JgfvI$pIH5E@?C9f|j$wf$O3Uq&;m{b-?iTGk{K z#8G<@yS^((nVra>ogtdCh*DY&DKvEnvV5{D{QHm`NAet)f7p`2?(+-rK`e)8nD%Tx z^(XcYHI~O6A0eqhc&W&zkxS zIDckVEbd6jH~e;}tQ|_2g9^-S%WFHk73KCFi~u5uL9>(iNaNu4huz?!x{gEB&8GqM zkuS6p%@MVBbdyZBF~%U_&URwA_JBo4lD$)nPUu*wi$Ke*iAgOFt=F$sDLZIM)L$ri zA)^@;i+=G36wHP3*dxCW5vi3l_k_xvGbve!=UJG4J`0N&Vhco53FhWMCH2Df5i`vp zTXEIdb%?5Z9*IhE$kF8Ad@G!wGw=jqK4G?;{wxwNC`{YKPM*_ZI{1rQdb*X9$YV^# z-5J`cNhaQhO-B-x>em$L;sUzX+kHOm%of7y% zW22;(xk3MmqyYUifWj;GDnXPCeuem0n%mE;fSaZC=8l|^$E=h{(Ha%o+06w-NHJLM z3&GWr*v*_~7N8EYBUyCPS8FOK5mFO-xMuS z<4+QiTWA$j!#y|?yv8KVewh$x9cqxFF9o2BdUA!Q7enDpV4r5i6Cyu63737AT^}MB zGxXQGj@w!OpOzxCK6V}aA1%P4WtdIy_y`oFC8&e*35LSrZ~1Tk2dvJ71*aEXdhL#c zb*ZPV2qSW6UL`~ngi<3D+`ktyo`YoaByB@(ZRGI>cEugHuh_9eqHa^;Zq)0dELDPwdR4CRiU~^odz>Sg zYh{S;9SQ?&ppQ4Jw?qf??O+j}DX8?Ex1@QT3q)tiFZMIpSM}JC+aq9VL za4|3tq;E!sGgG>5XBrZgQtGGo2cfU!aN1ryhsh+Dw7k_3%x62Gv$nHH=t&`DwI)TM z4AT_E7_fFjAi8VbBuzYu^e9L+h=a%)<)jcs&pKjq&9x(p=HT{%AK@uV!o3B1RdO(m z?vC8TcUrRl;VRd-8LJ_%LH%YT5Viyw7TGxbLSl^I`x7A#v71tp7vBjO4DMl~5LneZ8ZY zpZY!CXi@3>>W-o+qdAO#!dBZGfiR?tf}croKXS>x7@*UY{YdgZz=NMTtqY>N;m8(P)WPirLmCj9%SOOzHI@@cU3(+k;f%=yn1?J zdW+(i9lnjw`M+qV-tE9G+B-cVzz?nqde6%EC3e4M#$I6B2N5R`*Swn}HV+7--Lz97 zuU>10+{8<#3UyxmI)IOgv2OBFY!Raz!UauLArZI)V36bT&4*_jG&7Gq!RP6Afy2hD zBN@Lk21t4~C;pbiDvhH$TZ4E29cZ|39v0)N*g(&$%Pb%=>`K;pqGFJ>#Y~ufR=eY3 zrXj{mg}ZOOpZ@HgU_LykZbmD#e4<(?I0I-9C{+?=k|}tdqxA90s4!0!N4#Cfy+7Vh z{gZplVG{7MAjUQZs_U&_(ZGRp7($S?*#=eylfiPZ@OCr~&>V#Q6o`E-PCf>B0c4}< z&Z?iG!e_TN=o{-}uTJbg{QCq0Zd6~rT|W7?+7T>JgEwOBXJ0hyvy|9Uy z(jNLf$O@XLMw@o{iF8!5Shc80ZRa6FEt>AsYXAXAcNG6cBoI+{?)b>ykNbhU-O%~A zlpTQTPFBt-c4VwJm`4f$LY7Xp>7BoavyFDKZKOWC%Pe-#QcXeb1OTQ#sm5}WZ8j5J zVa75DODh@`Nhldng?Yf4*kw{;ArD;uo}BKMJ?$E>ktCh>#K+<;d4^J3&Fx6#V$`U8V83T+ojD%PQxqZ2i0bSwys6J+wURn9aH;9L^l!4L@iKA z%~-sj?BV;XM`n*l7YibYI%-J>I<+;Ba=&L|*r#vF$6?VYmDz<^*=1D=w$m^~(`M|Q zRxk~me?ZG;E_+rGUhH&96=>U3hnB;ovwzQNLsQVk!#b9nAF>>sF@JE#kh{daLpU?u zc^^$iK^y(RZlTz1Jz5`(=le4rt|re1MPW`qck~p6A|s#?KamEC?F5@ws@OiN7*u^{ zc{@)uSe+^8NbTe)k_p%unH?&P=%j8EK(Hf0l79yNFkU@1e0BBBK^mSHNRh`Pk`Y8O z*M(1E+JZ_3Y8fD06U3#W!aOUvo#xTY;u{zU{(1E)R2vIk8h)yX0JXo-X@kv=aCIIr zeWr5;q&V5Nu8tY+n(-vVM45J{TUb@AMfav(Mo^3^{B5+(6c2sPeN}lYjx)mwGi1Qk z^Hsv)kD(fE#wdGMYL73MVH9WKH5b4k9mjQ)3$Ac=-Q2^*zmQN{g$KiY&Kdjt_g zw!Vd2DpU#nJ#LM1-U1ZBHQUO(jA4ZYyfg1>GYnI;%GDSLlid|)P4{S=Qr&^oku)xu}lcF!@xbp)OVa5mLL7!jWr{ck+ zI14k7bQmB2{L|FmdO1&~53pVT50W9L${cxiKEdo|y!0o>T{#AHA!0v_n+`Y8JhfoU z(n<38m~dkDU6sEJ#M{a2E&S-{4evfB4UnaK(%^3eEn1_(2ilUct)QP;8cU8B(j=?_ zTm8o0>2byxcw9a<2CG5CY<0xToJ(o(0<_ccd8c8vE9QQEw_t*(^G6-3`1}JLsG>y^ z?DTScomnyoY3Nc^u}>J5P4sAqE`)28X>f!y;+M(6$_uDzs1;8AL%*o-4@)SwB;bww zLIBVgEUl*z@a{qg<*AWWXy^7*38Ndw6a4Yp!N?Kvw~1}R1T*(n_K&kI6eqVhEQnx; z7f$~rI8pSFY(^D~L%%MHKs*O%Gi*f{gcCh&8s;ioM4RVNCPKzMpSnv2p*nG(q`C0H zgr9-^R$L8`ZBw#Bas?w%UST#+d^@K->O@5&apCcnwGw$63q1g=4`JcTy#yH2FGh=c z+;TDbbk1Vy0FRRcW3~t}*@7$q>Xmm6`Y2#m8mC8anYmelp|#dgXFak_kQf50YV#qd zCyfGnga%|2iw7yWU+b^5B_0kj|48+DbP9IFfAS&!ZX|D2f_63~N2q5R|Av@8e7+St!KU1b=ccw?Z(tg{!>3W=&ZqPW zCkM+oXA@q^9k_!?GKC2;necZEK5{{rKha9YloG%V-=_iN%|i?(L*$XU+9e)a?*1GPu;2oj zOQFvp3$BNnQ!bdqmjv&E_#B45ot&qiAEqK5ZzT2%G!2{Qj^BsLFNMfQz8?E7E{a8U z=>)+r*vs0ZTdSPM&j3eV;Koje{1wyIgP1?~ne+W|+(x_^^c(gYd1x2)Oce-TFf@up zq~q6hRlFzsEl<2UG#XDj*@Z{&DD(Q3IeASfV}7y~`jx;R-J2tjX(rQze@qmDWC+P) zycAtaBRabXc3}@>i6ow;n~po6lpPp}YPuH}SLSlZnhjjT_^Pzb+f9FuLo zp_WoBkC`ta;ra)aDP5-!QBERnA4V+X#=}d2ox%nWMXMkHcs_9<@wp2Irs3!p7Qt|Q zo7xvS?S72eeR_i@S}gc5IHG*=Fk65OMyCXXxFWDKmdE@y#JoL`SLZ}05I1BN8tOBF zOn)VNmBtM{!Q-QyPlh|wYAvNmt&`rdEKny@+(1jRTURvL&)u6B^oH$%4A;X)^0KJL zFF?@?Z$-x73Q84Y<8Qq5HkZFBH5c35yHiQT;Hfs$h%pO+xMHH&t8lj+qD7lsw`f&V zO0r6ldUI*1O)g{#;=<-R>9TUHpp-Rf?jj>3a=n^nMNBMFPSN=LquklrY%q5X?CdR! zOd_%+e%^}ofU6n~4!M3YMEor^T4jEK^4Dahm`S43nB+a>Y;cGV|BfSjqsxt#NA`9f03ye?qfEXuv~jh(_;}10XV>!aY&3!Um0B-52^?P6X#>33vp)^k;Mo4 z(*puu)&1p337Z$GE8z7H6b1Hg*uIQ|1={m>x10k3Bsg+B??QOc#=Y5{nH}xxJ3ONI zm{}Ve5NWOBX$D4mXUc;93x2utZSTIs{^?<=S3#!zBu2MX%$_nXy(TgO_MevIK{ z?oUEsuk5FQqr}2e@BGJ1e}G&-*Rvzq?(xI6NgwmP=DkUu=JW{`$T}0oZ9UOjx1T%S zj0;Laj^H;4(q^}du|PG(%?u@y{Wc@|ysSxpF5OXkh>KWp6UYPT`Ifu!)b>U(2erD4 znYZ%V%2(4GHQz*;PMp>2=5>Q)(Obrr+o6pC_Na#Nei3TdQmk{;ay< zt(YZUJ>-kQoTrYFhm4BSf||EYVr-zDU5v}|q=E5Z6lG~m%#-qLubd^82UMw@rhN_- z8(?qI#Avsdwa%#2>e;x>TDRUlnKrKa;CsFO?OnXY#Ck!#Qjk9BCaKjB;;wGQSGpSa zu6tNubcar{sW1HrW#-AXoc6J}prb%Lyb`LT)wD>NdUtpsiL37J;ouwZ^0@24XtJr%q2^EgHpy0%oMSef$AuIHfV1{mMh7OiRRz@3Xxa}?5e9mo(9!_ONu5 zUBW%eOC9Eet5VY}hKc(1H#_b`mtt-y{Nm0-N=-7DdX^s$dqs(T_jKTLs1r7_)e77{Mv(}cYj*u&~G@IWYP;;mjihcdx7L?^S=&}{r67ja{X zQ676YdAZNb9(mG^~u*D3w)nkQVaKSw9StAhtmQDW|H<6T0y}JYPeHaZT%jhFQ@YHT0G6 z%f?U4!wRVL8h0hBnUvc~S1Pnh4yirs)XLKdn@N2sI!9eA4Ln>71r@T>v}j}e8@yt?KtCZPTT9P`9PrRmewCu*RTZ^^ynyYvmckwWmcB^gU?3Fto?c-GvG`&F#N%?MuPl_ zQ2m#}jwZpK3joF;F8k*P<6<7pEkzuvyAw z{?5ZnHeaWWC5895K0j5dxmqS^MxGOsDQthnTad;WwBEvE+TOiA9yB$fP4X3v6-Q)m zL=o5{K@Z7kPic}|Pv{ZSxZNi3ky0X!KKIyD?g@2hcWAQO6NZF0n4;bzDZOU6SD1z3pT?`RlP#>%*luqwU8$6WQU*%Ju7 zKeflr$F5g2vfT1(MjPmqYFQ!HVqA8t4>|0To-F5Ap5p5qq?!u-mvhbxtw` zzQ{TTUbUDtR;kP>Z)@>0cD%uQDz?R|^p>jVGHFT%_1GVgkAmhgk~;(ei^gSrhE3&h zi*FgZJC!fb)k<{>bgA5Vl-#b7_LjCQE~=@^3B&P-l}vTJ;6XWn$X-{uo;t^{2f_+= z6Z-lQ)rA>Wrnz2KGyL*&L@i{6>0lIP0Hq%)b6MUvEKF9T@05=2-NOLhz-)RnR^C)* zIp&ekcGJapffw=dEcf{JBUc*m?FFlFb+WN^(ZDsgbNg}KM-R2GUT14Nn_Q!+Nj8Mh zxY@VruD8P<(T;z__>JcA`KB|+rvyG-!_wdr^6N*es&ZXvVF;SR=r9a(kC&%g%NjYT zfiKHU9;=VFK2t<_ugnk|jxg@p1%50)GBSQY=bLJg8>o48Ar2Ll9|0fku#)L%3PN=e zQDbdgzzZwW6BXH0Wm3RZX8}|trKQfx-qL3p_@s(Y2-x!606lva)N356Q=6=jLbKdeOv9fTf8hUO-GcjD&TH|!v85dKVbzz)U4PWtcG^3<)shzUTyKo(%klcYSsvo| zeXF}@?<`X9ud&=c++hh%>!c%%(cMT!|`ZMl3k4S z{36*Gobgy0U;(ohjDf`G=cX-V)g?pmGCScrc+p#`TOT7lOI?;h1uVywv=}p%2;?bo zLw7`~+qQ`bO<0u%<9}a8X!uKJ95eeD2m2kcT>6 zUv3)Xr2*C^Q&=r~-ckYkh?1l^$FTUlK!8ms@(p)@%R{oujkhkd1??)e z@3E$#aoZ{bd`NJNv)tp9M+MaIbYPGrmozn9P)rBOi)h+Dwiro_w5PECeuY#N|&9R2GkcNS| z37Yw?DQ$Di%GkJ_g(Hd8`Kp%#LlZa0bM@n(N4n%^2J77pI2X32K?cAJuN7CbaJg;u&xa{*?)bPr%D4s=Wqm?-p z{Cljb6i9nyYc#s{FJVEtjo8Adyqf4CNh1# zi;3#jk5zR`@CXy9v@e=ORTH;4iCJJ(!@uKOa@$_5WND2a`cm6knL8G340b8Zy&BiZ z8M@OXo3lK&V6mA>ZE)%VwqDWTY7*BT`x-9a@sp7!SaP3lO2x8omzU<)ko5`9*N0$a zHh5qXZw_W0E+btouVL>_<(eA2TtI9RU3yi0+qEx&mMZxZaXzMdR-)oC2-SLVY^AS~4>g&g$TUhZuu+uvW ztk&*$__97hZK<>bRo+Dml5<$TZLMb-#Vbp3$~t+qNpD+xJ|LjCXfhSPg4LDLMk-0m zjt_h|#YhRvW^)5>jaK!?3K#?058f4uqMi1PSh1uAh7#&CB5Nps#BxV> z?Cu@x<#AwW?gsP!6@j;|b?sfl<&@?9Rh0DLK6 zgox3P{Akjy^4+oSBCLTIFhizQRF#UnOWLY0V9kytgWKn60>ctjuApq&Or9L~J+Wes z6azO$%MsYvmI?;@tch)%=B`LPN|#{!m@S#?oi!6@AXT*m!!elA?=#gMI~q-z4U@?A zz)}&BM51M5QSkN0{+251LwyMT^2#LEoUz+2Dpp5l&~)s#$A!tHyrJsGBiU5>ytFpf z9Ol>~o@DD7j_0Mqw#uts!2qQ(Sz#rQs{jc%Zk2D0Ve9#zl<%Zc#RH#bYg_7^67M{b z<|K71FNe5@7JXKny26GR<)Os)z^AF!nc1}8EYj|DBQisovv#yI^d@x0`1+Cd*a5y3 z3yrCuVvYLny=1Pe_UmnAU9X2u2#p(IR-mLX!AvS?B^GJfn6y@#}hZM{AlCL2KfL= z!*2WQ&I7Bg%QhoBO?$_c?zVJw+3)*p<<4tQ{V^y}Yc*_wfm`v!uOG+Tm5*AZ(qpwk zBzG_m3^pU+7rXZ<%+q90^uVX@gd|o{$@?_4R{#KOA#(p<2YyOr4DfErXc= zPfY{+a77O9oB4axS}SdG((N0PZj6k+bvNGZ9&(RHv30*5<{HG3TbuUw5tJbV)-k^H z`2xOJ@L*d=TWrjXWu5Qg;sEyYvPkeSAII@3ELB~A23WHjys%j}nFpucbRIS&+277V zEU#;0hm&)T$4#*#D7UhN6aY1m3L$1dJ7;ag$1ads-sQ-NIi0{pQSb3J_=2r+U#;psqkugI zj<_gxryJV!Dk?YZIA1@qBDPbR?kLCCP#v#4$Q11Z@402HL2WEcU931)b=*fr#qwo~ z2W`N&>2+C{$m2qrsr9)@yJcIG@pxMg#0vl{Gc~@6DtJL%ARl)gL6zMRVi%mM1>INO zb`F7tGT5?NF-Ft_+r7u9?e3;-Ya9=*eUD!96dH}>{!ZYXB}nYi{k(#AyWP72-qP{y zY=XOYtZI7mDbvH9gUSG7B~zpW1HRbqo-AR=dUWwjAF%gs&kuCZM9rhR;_EBLlMAjexAV0v?j z$zgSGp~$khX79kg?MR}u5PhMEkp+y9rqpJI+RB8Nu(nqyYa@P)8d4!odgCUzz)sau z?r^57GIdJdY#dP0osP4GF~lku=SyI03p{9?LzscP3$=_3rU?5>-3CV@-oi!{&Vdt! zi`tgN@4y(_?ucgZ@g5g>tSObpOL5R_NMHfk4DPrC5_HN)XlQ(^yQO(a!$;FvrNWcN z{-}W2xZlJ|3P!T=*Jw~zO-Td;*CqhNJ)4jw~bw@jwMi=DhZ9i{n~r zhSgBB(W-%fbtI{hGlpw|t~MF4DI2r;9cb-^RNSozrf-dmiUQ(jHX$3v@@|V7hUV=2 z0ks~E>?$=ZY#wv>pim}ba^@ii3{JH_tdDwN2jFvhh)-TR>!%aq)C0ZUZQ=I z>=0Ph+Zwt~7+u>Qx7%2?y7kEZD9~6HaIqD}T#$$Xt*1!D<5<-OQ{YmrSLeok1C5!c zJYCN`!5j&`^+0<33{1X(M`>za@*R9S)QPcQUssp%n5lz89SC(Sk82GYjHMQ9H>+z! zsNbW;MCsze!5J>%cX)-=C-TsgmXA%EUQk8Ej2Or5ZM;R>(kaRuBjb^By#hWgudx-X zdejV`g9FZNt6T5~(6VWbw_Co5b?~wZ-d;^DdRy)uE43y5PJX-}bvCF;!iF!m^L!1f z=1ieON+Z1Vpl|1G!*U;+O;v`S!ZYr4#XL;vk}rapN8^sAmUcU=PWyda9^o>`COU92 zu(nWk9{46M(j#vRE&C87b$nN0wu?FY1~%XCe~sme5rXcmo|fuDszt) zC7)z=e2X2ATOW73 zLs#AQwZ}5wzUQRbL<1F2;tR``yBoP+xA%OizR;XIYtvAMyY<#0$lb=w&DJ{CQ#_;( zruxpuKv9VEm1M0R@QNsyQ(^rmSPcr%o=^e|OW;;{T*=sS#@Lq_qD@+~2GeNYt7TQN zHu#D!vI|Sst%^RvEL0O<%{$BPm{lo59WT{FXCxO{S7~i(We*&1YG>z6{GP!IWgmM4 z+2MFp~7V-N#tT^VTW$>>>!PD05KEaLE zh2Cb2@m6Pa!rta!FW0?_;@`7*k*uV}3nm^<}a;bu4QU^aZUsrMxMM@m(W!w=Tm3!Q^1)|Z&OF34Nai$I} zn=@&S*d=%kU_g|x3W&AE4yHg>1hP6%HJjOC6`t<^fAlEwandwZt_!Z&wuQ_0r({inbLxSqO@7@fbTMi2eosKyUi z4(!7&KI!p@u6XpISyt{ysjpTl54cO?#kQjI%^tfD*3<5U1M>?Ll|g5@^2Z~k>wNV{@3|@6b^ZU{o_dC3Ti<02kOa&D=wJUVGD^m1n zW(Nr2PDR#Dpj*`|vZFzZGGz_?yJq{2ptoN?;&QV!<@~ZTa;@fiu<9}ce7X#-6{Im& z-R8g&s9X{+L;MgfcQbv{SL(eBLZX-44D&~wf!1bU@1wN0L!Jt^v^Cn}W0$#xV8tf)PSm5p> z$ip!sfOu&#TfWW)HwxqR(6Bozm2#OGe@6}d3A+>wa@lvK4I_0H>TbI77sis>`89T4 zS9K|K1pH`wQ;Kq?)5qy9=Q4GWhdI88gJ(9x%T;q<8xz-`Bg-* z-B58$iyU8Xk`w&_JVVuCM;i-weAKonve;{2nrtxwKB37bI3~!(%2pke)Z8!#jrDSF zbJO(t(~4j?IrxRE$TXkF8oUjb<&}h$OfW~Qc)q=Eazk8J zL3x01KoXwM(`}}OH9$>?Q;Cys1T%s?PKnUU=;9QO%Z6aEunD#WemnG~EzXNF&Lf;+ zaBAu;CKF1faApL4N}l7!7-{pW+LC%GGp=0dey3|*@c2v8x+~} zyH!RZM>+7U3Vflt79NI7TWT-YhDEsnhWSFdBHm5coky&IbG>1XDf0E*h#hxKS+c=4 z=O`|qP5>;>;_`L;My_`cex5q2s>Ux?A)2vh%&5>I6mH`rt(W+*EkU&_G6Spo{UnRb* z?XU*z?|7A6f*+@JwG$k3FtNHkoA~H6?29 zY2I4P@9t!gner7>QOimYQRa5d-PezIt|iUn36qaShIFP&5Wp_xmrcXZW8k+J_=dbt1G9UwcF8JV4PHmw^CfCXb_8$M zlV^@G-+}(GBUWyxZH_^nRjAhPDXqF#t-yROAdk^l3w!LE1~+zH*p8(f0MrZ#d(2se zRtBHhUtsmN$IEJg7Bo~)l#N#ggIVafctNpLRBEb#*yLU+AXF_IWU=2DiUdWH%MnF% zIp4bf`mwyRfZ)rK=It7|99%&b?IBPkIEVm)2}})Y;!&zH1?7yjXs#=5XGD|1kf;_( zA2d%v+E$5TlbN8#eG?0;llJ%lU-o^WFdOl-*5l@cF|3yf|9W~9WCLWyG#6psX z6%9HFDp5Hwj1*kf`62F<)QYriGCY>2mj(z2a7_I+=v03|f=iljyAq?4{gFMso2Xiu zZ%Nw5+md8)i!}`J)xh9x)_QcuV9~>!rfsH{HE>JrR0H3aDw;NkF9*yjvx?8HM^oB* zgdxlq_@c`dKwvJ++zTvS&$uG{XCG^0@jve^E5RyM&!wd@=> z>{j!Ol_t)s92yLBV6%BzDTpAfcypLC1OBtbBUQ|K6={KO$<1`z=KFYYV}a+ciA--} zuO++(hN?z`C0A4eB-;$@GJ^nwcQJ1o7$3nU3SkmGNQ~FG#ik zuE^ZfF$(;C*hhUZuE6^>@W5mQKa59PRg{>fY|Zc@$E+~X)9MU^m9U4ABs|DSU&=i& z1q;ZO>&zHuy4+S^qz$K=hS!t^VE6BY0`*9>zJ9cK>i=Wx&6*Wug0<26{wsA+3?&qo zDgq)R3IZB^0|EldJj$;>N$=t8eIm{mU&o4mJJ!3x1ytrURAnYCvlhMm?zm%;4jy*A zS|}@*+E!{ssTA)bn9ZcO!2-~20IOmlz06J<99$UC*YV{Ut*26~SH8!;e`dHK2CRnE zp1m3!jl@p0@6v))-FB9}3;CjVguGQYgk=Ij6UF<(0AEb?q!aOWNBabU8lARYvTeYJ z|NT?WNssd+;?>5!;@vNV96FORYhPdB_WnZc*;1(GGuL1|JLC!eWM>=aP4^i42WDRJ z!{T>1oWWDAMIk^^$7FiZ8wLw%S-C-Gur&?|sDboRUMp2Xq!}^^e45O6_+Az|&kvP3 zGYvsjZ@o(BqxjU?xc7_x4y@PPopeh3&mb4j~Ju~K3qnjB^`BwTg$%#Vo&VJnaV0I11lDc zofZiGlUJmqS00`ud`CUpYA4)#@DyX!QvFH64~t%K4~hEs&tbN>ua&ozl^Rl>6C*x^ z3lWp93vdEAa!K~q9M#%{nb`7@)Fn0A!V<+`NQz%?K5Xy#jQp`}xUMbl;MUkm=wtOXXlZ2FEj;6pO$5Gm&}kwc<` zU7b@>;NXWt2yArJ#0$=IaI%LH9Ue&eS1OuDR1IrWf$JPg_eiXCR+{3I$bras+Pv?+ zxIr~P3^&JX^;zM#oK? zvd#h#KQeP>A+|@)E$8qeCyEjO58*C9Pw-nwI%o90S(>YFq(L^<0QD{ zN5Xa9(Dvd$5r5$CBVWD(othZ!uK@bKDErd^$uV5=?}wiVT~Zus=s1c_#K2lx(Gv$- zWN5Qb@31IaEA7c{Tx-0Nd1p}IViE{7`Mi7SIGVTO`_)qJ$6%*2o^3%{`!MarK?Ym9 zhzK~MpkA`~rP`7DkT5`_y%y`qt`wDZ>qrzf1TJHt!1W#i0U+e`YQ2pLW!~^!Vp&R< zKtk#nwLrI{m8sGu6tqw@bsGDo82qg5%PeTW0%q$!4xvyuYtLE7sv!8d`^rEeY=$H2fEuQVS%^uYjVd1|i4Hl)UTAIR= ze%8X!d&oirJr!6q@mx+i-Nh&Cy_P1pSluKUU=58{B+g_1G6pg|0aCofiO@2Q2^&Hj z?kav(sLr3t`AO!_7+sj$6_cf?{O7qY}v}R2;%7oO71wOJmB4t7cWJ+?u(e4BuJX^EA+BSgEk>~5}4N;kvE4j z710l9g3@~_wHC%)(f0?f==Fq)K~GZvhlCjF$J7p= zeNeV|{UN;1-PW3KQkRd5`Q&iQQAYUt=fVWPB4Zmegqheym#xJ*@KkAUU~+mT9m%FQ zJhF*JOis-NB5E(;-kIEH6wlf`f#j8{Q4}0ekt!NMV0Tiy$7=b;-q>GC{4{z?JOaUd zrNYJ@!^)!8d=#;kTEPrfZGFYkn7&#dEw!#-Hp{nEFC8Yo-%rT?jb{{H#jnh1fU zUi0N$ZeS^=UE7i-*)C*6XK)dKxRCOpRC*$7xj6mS<@-6lHw}Js6Lo|-@<4F1CK*_N zis)l4W$Zc=B7HXN_?vM>k)ES2GT+5JwKw@edY1DGGG@m6mIy%_2t0MbC(&0F(OWQ5 z1N0#zFIFvIve*`2PB9h`W#lgSgtcS$*Ymf>&axv!7rnLTmCvuZEK()OF<<9S5mxaLNY zpgGcMgx_DptZgbgZTcat%q^k-gfc9?f`UCE&7Vf3XsPk9?$bs_>)S^OkXF%VxeMh< zky?6@?M?q|O zQ0w%CyM@!{lo2Pr_C7qyr&uw)H!{n#y^Wy#Ypk$&9LQGe(|)W0zA`Tt;_!mHonq=o z_SbW%2OrOqa(%9j_H% zf=b-W!WS+5%3+=%PLbJ6=xog|CV|wm-Y(r6)+CY-3kHxh0|<6{1vj4EITMpJy$8|L z9@nZ-6>i%i17w;0to6VjMxiH{4$EHVpU^RSGVlyfK4tK`r)Tp7$S{4^sH~ZXkQh(2 z9rtRA)J=#TQ|U*Ug+-}3B|j8B(x0Z`}C3OZd z{o^>EKjDvr!9_nGv*s-0v}noWmJHGbB!XC}<&5=*pb!wur?p<-7%TmuW01!&`NR`v zjiPnCuQ$)s5O(1;J%*OkUwXrvyEaxYTyMlGTxIU_Kgg=d!s&gSt=^JOj3_nmH2I{ds_<}|I_=^tVz_Q#1KaADuDS6_VGkDvW6{YX$0?|Hn$bb~<5cS7? z0}80UT89KwZIl4x?abw|c&+0Vy`Ymq9fhz7g2bx(X1|uXUm47V_Id`()16P%;Rl8e zu&;hn)lv>xf$6btizZPlGT}b)lzHLZ zVm_$r+~>a7Q%Q6FKkr0zU0l7AESs1`$^mA~4GE zD|mE>hqb=NoddrFZOC(Pfp67}553J`8mx0SRC_NLfGiaJ^0dK|?@{9#m~~MKC7L(% zdSDaBJTVQ+#u|A*49VbnleDFmV|4R=Sw1|*6oVI*y)sB2SZ*gzCp8xT{xKMJ8I6Hu zyxEqWM_agIq$T2=aqxQte(}th$ykV9i1@w>tQUW2gJ;d48fzAjaaY8rB#kQf+k9F1 z3AO@_$V_Byy0UnZ$i#+rs5xP=8E;yp)<%*AOZu^Y>~qU~e10>Q3FBMZay;2B!4o(4 zj%>1rrclfD^;B0m=Np&v*z|D^F(3r)sZ~q&^*vb~3JzozPjU40-KZkJ)3>hm%LOC- zBv3YrpEv@{!(oLVU+M?AN>Yf!sYaXufJaJtN4oT27P!uUn(L|f8>f2ffog~nwvpbT zNPC&FfYqpP^J*K+k&wS2ibIbbHQlt#mktzg$bXjx7NbQD-d?mZcSwshgMdc`MYA7j zye*|lBMw&DX?bb(D373Ju3$!_V$ZFuG*Off?G+u3*@D!wUg#3?ULphghuX34Yl$cK zPV_zLOt05q41|s=lP8hxQ)D2;1wd{Q&ki$wWK@ggM6u%#PdUgV38Y9)KCuk;V?I$M zte%GBS!bljl{Zc?ER!P*j3C7e7-lQ@HkMR-3fl~&&`Y1L{=QjI&O3Tb;p=?!rvk#J za;D)lb(_1;pKA3ED^u^C{Bj_+{oTKGeg3NUz4|$h9axTY|J1htzB3g4oso)?vjo05 z;cv<#YrTA4+^kz?SOtV5u%2jzL%SK@EO_V-4qS$!FT#TT^?)I*Ts;+qxQ= z?}o}&|KyA~M?qT~Rm&A?gIs$YT9gS2p6(BH(%zQn?|Cudrowf3X<(xz

5-moz!ZVD6k%W4mZ6t225B_0#JBo!yk!$>dO< zq4s1R2e)`&YT71^-qy(`JT2g9Tnl~olD9TiU z@8>x^C#seKz$`G z0Yu<+g!Q+G8*kU;;`neR#Iz z-8$UYM2^1xPeyaCkRLclnfEbQjM*jxwo<6Y4T*vPq{6lH6K=4J+llisbZm>jB6lz> z`=aJAm5(aVpC%>*ibmQUINxY4O^}polA`)I86-%k|q5F8&^-F1)sl_pxo ze7dzznDe6ZU>=8XmhP-CRmnU*7r|{4X$Y)cEq&W^V$eaFYpyqSt?r6X@HJW>`nfHf89Dv3Cwi&<;ly7i`jJNw2hsEfK5HSHgWp(QvM&zBW()E&@FVk@cu+ zKs;-8^ix@>IcUICT#Esfplwk-dpN7dZIXh%FyWwG#RuyXR#Jx-reA!Xc5cv`4@~)1{UtW#fE8 z25@>$FAxik(>mRr2?;kzn$8>S{(O?fn3f>a2!ub1OavZ>L z|B_C^-2uyck(FKGe|k&$-A_l%Ox_+h&IttfJ(+EKj+GBpf|UXmizEyRShV21c(t~H zP|6o$s@pc`!T=A(u60&5QjJ`$;wLz!Bk*ne3|t(PnJiWM#^M5V8*I8;^7l_*)vsi} zQ3IVy8VGZ%eFf>^cf{h=DSJljREjb<85E1+DW#}_r;q|(t4?D+UAkM*gx z=i%}A`zK6ALl62>dTocdz1Xm6R`+%e_azfmxllQ#}wG_#;ut1J(28n=h<1yzxH+_p2iGI5N)Q= zf>xx41tRrA<3xQ65n_@U?7@X?{ZaO_@Y)~I(MpToT9TN=+g<}r{b%1 z^unvPu#0#J*FN66KG*Qn;BCF`s78BVRC)2TUIAMp)}S)x!li)^4CFeQP3rwP@b332 zx;nOGcQ}=Z&1f#xz`0rJZ}Xv+P%8=n>u8V%E66w8E4lf^TpN2fUuV5zoJ#ZoN$g8b z;so^e@`=B30BU5MvSnev71JH&<)8`dhD!~dv*smMrfqnn*I;9*VS(~`LZ;VMM>N+a{!{wcjTE4+y1Dim= zkJFdDs2t0^g7_eBfC9kyDC6GCx%eGxy@7kfGX^q9SAck@mTF}qv6l7vAqVc8>Dsdx zg}0lJyxwcwS@BxGWuI;%1^0R>FKgra<+U+~du@l|_vD1H+U()au#u_{{Au;@xE`l3 zYOD)AT7XINmTQ7@GC@h+Toq7IgcU(1SpfkDkN70DUYHs>)P=G#jdwS{mKZItlGTilPy%e73a z>CrEF0x02wxE6R&(6c>D1iD40wdKW=|HkBvwVd#L`5wt#kch@;*C%ZdKC20VSJAA`Ha(s17vqeZHC`>Uxga)yS>M>SM$VLeiX5m zBPn1DB5RC1SewX$TMk1fIx(f)n>`4Cd*razJ^Z=HPiuSicOLIcB8>M;%H zxl-ZzrIuweFzYAil-*v@r9x`c6-r-u?wVt2m!n5kN`xK!JM^`-W;W9{bUxit}j% zC{|7fSfc`Sqs6@-_1;PojkO{ItiABTn}$T?KEl|p#RT9Wt+XWj&b+Q?-WCH&- zL=3Clt*w?Cvs|+o+eytW7TN&tP?8?Ej@`&8UHQS!F~l)XU>U!jHnsEwWFx)+O1m*W zfPj(~C9H`%np%%@lMG`efh(b0CP-DZyue9)QJB~!#CY0QYV8e`bF~Av9p9E`sFouJ zZrE(baRe*KTlm?qvJ>g(0vB&($t18KX*+L5dkf5KL%)CjP|s6vj5Kr0n&Uy6bJm`i zM(D`Dc|mm&pAC>ILKp`1PH&W11KB;Wqr)c7EWc)+M-AS>YVGycSUom>|17hgd7Tcr zJD%$I~}+hpDh>)|Wc*2(k)n-5}p0Scg&sWNVVW(`}~^{u&{ z4ttTs5)-^+c#^mnFMld`r)BkM;exPh!=O!pkquzuz&s;qHVkc&_Ol zbY8Ms$S2VZ^7S{JwOgC@bfG0JaLVV(1LX~M(1iPK4(82DNr0O^4}3o3UCCdY!**9k z((XhZCrBf1$YM3w7vJhrG(t^Amb)3=%m_c%GRI1cnI4=BNa7j!K!=Ges1F*w?D*t` zxAgXN-r9~mnQH5%Vl#7Q{d4VhU$MU%YKW>rJ~g22jjE4@jTX(ftd!;ZOWA`IX&#LW zR@zXSUw}tD=yCeQ_jS)u-IU^)s|0s#cnR0D+;Rr>jo?F#53}ZYxdxw5(mUr$F;aV( z{rhKi*tSI`p?nBWE0}~^>!%)~zBf*Y;du76xAE|ZT%>SA5Dkp@12+YV47ZyPe$4nO z^$F)<_EL*9KBsWI+qO;2p-yA$5F=G}fBWncs2WprkkH zN$)})wuT(EvfKpMtLNqb%ixzk8gpyoUNA|(gf2cLndM4nY9VcuQQ@OrkXo+irMmX= zK(Dy3_vvv{w8GfHgVJ{OP{Z_#@5}y#{N|K=TS{urwD> zUJTVelA9^q=`I!TXH7ARuWC}uN$<_cc=>L5FQdWv;P^K}rq~lYOod!eFQB%Dx$`I2 z_5|A=xXtC~w&IZyPPk|ph@hh(#pgD>)vY*d=;u`K#*pfDfR|W0R-QL%2F8a&Z%3#T za6h~Q-w#W26TXJgNHuw_Ba23{a&#r}+4AL6^IJ#bORw1)-$J5OC!u;v&fw3_E2C*^ z>fv;)K(_g5uBmxQ(7nYdI?L1QBtC?@ ze4yn8R`c}t&*j*a%Z6pY-Wm1w#2e!6^|du)@%#32xJxB9V!ldRplEVNx|LcQh-p}` z{CCRBd(*viOJLvh+Tbp}K^&?T@egi2*{&_)lt5H1x6tul(Sp1=;6Mb& zMTB*~I_VlLbKu(KSwuiBo+VqNRZ6w+_m5SZBbeP=ya#$G-ylc`hn0&);{Na)l`&1O zNy_h<2ix3?+&T8A-c0=a2GkH1`MUn>#-8TTT&SV`%wN82QRMz8TZjD25Qq+-SUy65SD&J^_l zq(w%D_d4RVb?=P0wBCuVN10mKzC`hD+m`6#>CV&ehBZU#ed&`(Uu=tYZ?8Op%Xvg> zM4#ftHFQgsSn7;2@EbVXwE)Bt90K}~xosl5ho?#&At^jQvmmIxyk1ACzMfrKDSsC? zrkAmr^EgVE|6N>Cq zy_h;xqZ{)(@>E%xyW67={F1E-+=mZsD!&tXPC6>iA0>O9{FC7AtD2>edk6P+D$~Dz zPHy0uW{mIm-?Fl+@0S|OElC3F5ucwxiJ{-Wn03&l(~z~xPyuyW zp&IEQTPpwS+&C-mVf1{2?&A^N*V2ytZ#_9aF>jo=czfA{f7>rwkn{)KPhiateCADT zKaAxSi(&f3A>C#m^a^4qU{kMec)juk^FDA<##x6Id`zUukW zuY<3O$(FeDHd9XV)Tdr!CYoyo#WBnZiB~SP5zExDApEx5xrslSgv_D!HPBHfcic5_d*0|-lYmsU6O<&DO+c_|jsoZ97lq)! zy`4UNi2nZhvBh3sHpLgomr8gZLc|Y|o%Q2S!{qo$x``{rn=iinbY*~|TjPA|i>CLP zv1Z*jm3gFBtBNFgGuJU0ixXXtJf`CvD_$=2&s(fTj+QlnMDN~9nOF{K4{)Z)MKHiIw4>#E1 zOhK&K-sn@vK(XG)n_9kCuBVk@qmD?$sSHe4gWTzjzkha(_u-3z*D_=FAHp1Rm$Gl% zFLfVB4sl-ettDPZ6}=fa^F-lL_!~{-T>6T2=H9eGTa?}k#`R~TalF5OI-NMW@OmAE z&w(%kdnwh!5Wj+DbMn__80AvaSOsAz4PIHb5qqjou<%YKDG&S#*0lpxTeKPXW17M$ zFS0_l{yYN8jw&zS;x?a_ps!<~%c_%dda-t>3Ka52r%S~vVvR}*p8nVWmaiDhr6ks8 zY4Zftnan1@*LOP_mt_=P%#s#aK7KbMO~jCFa39BduQIB{p1`WmU2lFMw!X6ylPKG@yH$t_4>z7$@4DAxn>C; zs?`ktLCq03g{S*OB184KXAW#yv@z1CrQPX`CQa;MXQENPWqa8i_u}!_nr2zca>S~K z>3Y+?sta7VUpt+zWB;eFI|VLj zR%AUKbYu8m0O;}8H@A22%d003Wd{a2yyD8>jWOH}HsF;BzJK`+FF*uuu0iA;7VC~u zFGVJq%&ZC*O_i-YPi`>zU3T?1UzFTD{cg7A2_=Cnb}b0Y%}0fR^7c*;x#Q71Q#h?8 zqYiqv4)IkPz|7tuNGw=lhxNBTM6gh{1>cgG7L-BwiSBguMBw~`kzk|I8$=LG-@mc# z2Jzcp%G_@5JSEXVESiV6L%GKTP~O9@1jXh%9RM17o;pa^f}527SPuC1AUKHwuiNlp zzscQg7`nH(rspIeB!C)H$AOXm;I^@KDPNgm!<%kFY%K!44FRJVNc|AHsCScto@Hxu z066Et5^MP{ooH;+D;IE*^?^G^+cCLECf^Fj|sh6scBiiw6b)*=k1~o@O z|HP2o_Q34kSIF@I0eQ=Grc0 zVrl4elTMwxHpEx{$jv_B%1{Sga;i|t{k_{>e>ekIJw@t~9Apd}`J<%95Jha@Iv4gO z|K5`=b<8bv_OnotOfQ^LDru=+--)Yy zh2l}=$p!9x(Swx2mFm>1!saDD-2BWDnYiH)dFYe`4!7N7+8qW{I}I68K~z8d)$X7f zZR2Ad79MsrLqJbwhy5Ce-HE&8pmv1Q;r_J2@Gz(jws$Ngm1g9`@qHMNOfAz-UU*a4 zeW*dI<(*6OAx%d;DkvFiiF@z|u-H)ih7Ardg3!W%&ghdgyAhb=%!p z(OQ{H`}N75gRIEJLwv6?6bwA6YCThsqrZIpf7o+|yEs+JVC?4^pGhDCj&i5&azi|5 zS}l1hJzG+-U~6Fggzu>Dn5MZDC59N5U~(*e=ryf@;(8P0!2NQXrNlq^D!cxq>8i;l z+(z;?SP=)~N(5yGLO=7_j}r_M+$@_M4ni(8Wv_-zk>EtPN>sxi4J)bYG-sFfVOCj1 zm=->B4CqqNCVVb2af%y8RoQ+R) zfmzlQKRBR1^wq+?4RO4lH0(_dncGQyrAcmArj*BkZ!|XmB}2U^OmOCs2DUw6zViy@6YoTVra4Aul18tB2Q98$0;fXlzz}plGWqaD#QXV%Ce^r2cAy zRu+~Ks-oy3Xy2NqiROPN^k$(mDxl%l0Ktx`K0V^S{us8Nd&j^|hQ<-1EVb7K;PJ1x zu8*AP(ybAgT3Ph;-D+5Jq#TFg9eDGF@YD&uN$8ZRi~dN{cl3=zd8)np8vCd?a$^ng z_w67vsE1nXa_6pw(>pm=+Z|#9bDcye_6J#x9gQy|#F``Y&yHZp7h2&ujk6Z^p$&nC zE9RL<+%uz|w;;2k&_X^?bqv$ik5G>Pl;UOrx93JrF`5%Jx>jky~|aR{b9*%9k0(Y!)E(2`68ZWkA?i zD>P>1ClUk{t`iB=uaj?XwpL{0NH%s{R#dI_bmE`5Su;Mj+t*{Fx}H(5wxAxO`aUdP zv#jA$c>HU_DDlgXc_C8EOk;%v!tt)f_(Y({&(vg2W1L%Aa z)e13ZIQ5<|GMg88Up4iZysu+*Y}fN2!zWM5o8^NE9{7<1mT)iFz#8Mc1K+5rp542Q zd{_ofiy6aVDX8rGJuLpMV2r?49`bvH$|21@=t>NT>GVLM%w6p3l(@)wE z`2yc_fD{6}rp;sBwg4XWe7>YV0sLO8Z*7CJLtG1KS^kX46QkjYfiL%^T8sX^psn`E zoeNItx|>?~C{0|z;+1hk+x+hOE+objo3DR@oJp6)zU*BtVjxEfB7Mr&BnF~M8VljJ z6C>wvP48&3VJZ)2=niF$qsev5dS+?}gYt=~6%b}I;rUZnu=gc!{~BMq?pb1Li`ga% zXK}GJ-Vhh(EFtYBwjWT}?8%)U;#U`?Cy(fT2ICBIYFp{M2ZJI_a>kJ9~$BLnM* z2W@712pMi^PiQYWNoEuT8-k|}olaxpCy@_)G+xP0RYZ7l0f{F0%_<-VU!6jZz2T-} z$v8|7DKm-I45jF>)^5nX!Y~gQJ`$|r>m4ZKV(>qomLH~-N_)MEADD%Y-ck%{*95Rf znu&+xl$;~a_4vkSi0q`1Arw647S3T*RUl^nUiua|gdDi(aWh;tS35K>2s6z_-WC4& zojZ%-EY7!w-O(ua%Q3!!=Ktkc4znh?Htu{G1DP1kv_9qDx6lH$tVJD5#eZ&8pkO!8 z_vrk`Suv2`cijj2IKIOh`Uiel>p>>SPHKZ#WrL(mxPyTIV?3Ql_{B5$Vs%uKwc4ig zosa~km4R|qcCyyo*qFMB8g}!jE*tRkB__YV0J{;iP0`2eYSvf}gXC3(z~%$`pTA`W z+wPU}O$K%?bvQ2Y!5y!RkPPYO(P<|=_cK#fHiRd2sB;?FL0z7;y_}}Lw>BwU{@Snc z)c(93nh&s;arIG-mya7GzP&~9bxQ9ACazXu;6W;DKp`C4i0ASn;O&s`a^9Xo0~Vvh zq{Y90U0Au60_EP@8=5ng(^ewY1a@qe$xv5wue~^7)yu$HvrijDo*jmW`nz5N+s9?k z%OpNM$+HWwB)f#hZ=7T6Ll1CX5O=T>1*tcKP#3+1rfPM|S>Nb4SlorNS?js5rcLM1 zC>)9a;$XHQS`d#H`X_{myQ*00;gW_{dd+_*mbr3Ia285wGyN!ac`D|&6} zLXrN(PI~5XkFd2@7&ujF_#m^?;V|L_rf{C)87}U4T*i{!b^n}p^Kl@QGD$UL=FM%q zr!AV9IhWIqp6QaGn|f|H@AcL2>)+ym@cToZ(-S-Cb z$!;*NxxToVTn1g?wtnL#^Lcz(dWwip!G(`0wbmi5-37;3?F2BpUaS^P~PTtzh*0LxFkZmd8qdUUY#! z2Hv>jzKxb)VWEb1rmib_4PT`g9jOMtGF2B-A69&U*jegl!c<^>24N7 z^@Ic97*L~Q|GZ)vfEFU=Md^;)n8-bY*|vE)+|<_z1ejku&_K zBG-N?h1`efZ6C2Z#vSK1mCfqIahwJyN8dPJ0Z!X1{1W$1Quh=1Gn#5B_kAh z1ZYlIJ-!q#HjJOe`zr%{i3a-_<9vFP2!5s+ima=ovhV**T8=|Q6PZ~%>I2L{kI>DQ zsDnMZV}Sfc?Wy_1Na_u-sHq5Y0jN#T@|o7XYx1o*+N94YaAmb_n{iYWcK*ZP=DZW; zqPw`y@2eXR+QEcye>^{2A~Y6MYfxc|>ihSU+Zw(pgwp*wPZ9*z*nl5!Iqj@yyc{cg02xy?s898Q1{Z}bAX*318O7wHfy}R=R za;Kzrv1oC4{e5{M1x@vpoEv=(0nDw;Q^T@-BtcBuRJR=13HnD37&wEiv#^V#roebfM2N@18Gd6BF9jz84%&mnpGmq){otog}&Aq8ykp4U&D zx)DOC-u}D_jWkhyKK>GxQvVSdD?MS)x98c~WLkQ9xuR)Ugpxq_#6$8}1fE;6KO*;6 zAcEiU!LXOQYDmx~p)UQE^zCpMp+!!z}tvU*N@{lh}!#7g(^^#FDji+9Dhl0 zFRL`n$Dl&(JSh<_&ktqp z0**lH706Kycgd~YQy%A6Q2dwNsz-&M1(rrU1DasqG|yFoQa-oQ5R}l$zCjl>2IDYU zY+6*apcG~PIbVJ@L|CD8@Y(2vi!>yjiaQ*Am1r-gff2RV1jiVXMxf4Vjwq7vHTJtB zh;jvhCpx)hPR3$5buTUKipdZ&orZ*k=#DLC&v7_HZmYMNEoE}#W18W8YhxD;?k7k0 zCfXV?c`@F*b_drntkuLxToyU@J*$+>?o*hy;_lI48;bL<*=gB(^yyE*CB7z2xW-{O zqM2Z%ElU$aFyA3GgvK@{WZrV<_Ut?rdUjcGymr)?^=cMjs4F)fmZ|n}OHpI?o0GCX z0;eImfEfIVZ7Mr07g{kdh)OKz3TUf?hgRK-`_2Ly`rXS$xEMko^Na^riWikv z3&e6pY*TRz&D2cw1A!nIlGMrN@(WEqQya#{b91nAaI}Rqh$6l*KObVapFIEAJ&)EL zx%7Sk{nXHsft1VpD^XF6V_aSzSY;7OydDdEUoPL56N>|h@{=9e@KNSy+eLZi6x0xu z#-!Hy9lx(a!b2J0cQ>(1pZCuI(tp=mrv#y%rn%_Iiv$3GNC5!A^uOx0GSQ`@6*ac8 zGIq3g6Vx{}Go}@=G5W7Py8pkh(75UvG-p;V8%DK9ZMJ@H|2Tc5NAlDJMn+0_Bz3JTA5)3*z9lM-WV8H6 zKO-?PkjkWIGJA>e@2Lwj&S*Eja=pYiUC^}Bagwsyj4ytgn`W-z=}S*X2Hx-Yv;08% z=q2UcY#mi2imIc9H55L~DdTwERNE)AUoJ(6gx(SU&-C=lRyO&27!1LV{^@ z^1GB)H8I0O&xqBkswAUucy0&V((T$Jzl zlek*&VI3tyBcQ-l0^f7pS%$upY3X@lbYgEQF(I+JG#wP(e+kYJV}p(I*IKpABYHq* zzx3SWHRettHAz%xVZoyO5@qRVI^7Xg&|Pr$0>T4p;bLP!6EI3AX9i1(7f;_D_I05t zXGE|nWaB!M%khPB|H2zHbyB7SEpesQG^s88WLVYRf6r0Zfeib`#p7#FuYpylP>gv! z{VQsF=^9nGf^&8e`97H1t`k9Z&&?H_!0N8Gi~4DMc-Z7;UM!$$2uq_FWh*MX_5?pL zpwaKf&`@lsHwQhO;6mXZNzyJ+%rGJ%A}hc%+qSi>&ja1SJKC@x&j5uTtOeBbs@tUJ z#jKL)PI({O_t&=B$_{m11<&k()nK~4V~#itbRfk*Xe;!}E3kK)8T1*McX%MGrMjYZ zW_1;eiOS-cndIK8p0;)z3$lYbh-KE|5p`H0fDn@p$f=RT$98Iy!{I$?Eyu>(C37gA zzwovQ^nfKB(JZtVkvuHEpug(Ti?E*u+(mF~nbrwX5@o1V2?m`cXW-65i+1s$lt?5s z%?J1r+XjGCjvR*EdHCVbA!I|dD}Uoy>K2R;Lxh+IR~L7GkOUZkUAo^=czpES%P$y( z_r8_7G3<;DrKAM8j~y{YWS=yQLqWKdOor1w)0H=!BbZ-^Fw`-(#R7duGhv!Nm;BWH z4tKB2xaAlx=B$4&AA9eFZR(^Z`oO4Jw4E3FVCY5d zp*&ImIpi6=ESvXXaF8meK5T$EW|J*7BhbAb+>xL^(# zWJI4FCr|y{pNGPY^cF9%VseNvr8E!IHb}uqfO^^%5oEE72ogxb*&1db$X4dQATnH1 zvevv+`+TZ&gvw#bVj1}BqkNWEj9Ir)2w zD)xDRTe&fT%qZ$p`$sG>GRK_jv*58Ur;_BD>Ipd4_NOsrndFxFLf$!|N=tx@c+94Y z2*b|=&TPFE$BDicLnh#ShMV}+gzlJ75P)e&n6qRb(``w)BS|=~rb)9lO5Nnu6XArvTAqTzx2?dBiB1*zbN`g(Z;m4_>ZojwG+x+|z+*Zw3nb}GI0k#G} z%y}-#6g^(RBz99HJav_5w&z3s(!=x9Vd;<(K1T{_U%}9CUp2A?5x);E^RxYsFinbe zcDPn^2(EHJ6{Zol)bL4pL0t2*@w(x`f?zh@B}0;>zJ!N%TUVn+Jq2rC+jj*ekDaQ&&AsB zSDjt5!f$n%A^;}^sI_nZuZ914;DGF(Mxo=&Xk4$m1@hjeeJ3>;%HLB6xk3GP@&0CE zwvUg7e_?=Vg!F5h_$kwg#7-bZv9f5XwLj)DVpuRCHYqe+#+rm} zJvlFxvr1yN437;MNSRD*Py86TD86rX{}ji zZiHexVrb_*7(wn=&~5N>FcUMT^iiB%&D|v%C5{7BAb!5 zCszl^U}4rEE{n5legX$!t=54Dy)geG_d3K6uDW%Z`Unn%d}cHxuSb;As2&ztd3l^ zkpw!iB+%E@p6}rG)ksUr;#jaA3))1H*9vabBIHu&Lfft@`clGgl`S_3x>l1m|RMn+_blMY37sNXgYc6!@X4L{4HIbh$Ez!|jaJB0=qvKu?d;;L!YPk@m{mHaNHx zyM=1CuLh(aaK2;b(m`K`VzX7XUt_$_QVx%lBIqn?lRy&R@s3G@rDT=cx{$ic=hAm+ zH9Ux;L_%`ye|f!aBE*U`{4tsZQ~uNc!aY3L)d*&CLq~F5+-6_^XY}&KV$+e%wqC`$ z8NvN%y07RL8iwi)U~%Y{lbBP@RR{KNjKAP&9>J8NJ zf`J5=?`nt?!}n}PTXaUB>MBI>)HOV4_{bJN6Y%>`l&-H1BE?=AB6(47ZH?qQP-Vwb ze2W|Q^UL;)7QA|CNnHxQjgdI>H~*XfF13Vdi{%Q*Vj(%q)(F6(?T1KTmH^VOLKv&L3Kq5|Bz(&!-k&<8yft<;k(VIC(+?^ znkIqedsa}&bx#cR0y_tI?iZrPLaLdqp!@Krze7X`3p*k3xH^#%Vv%tdNt2F&DHm_` z*h*y+v%z!z{aGyvm<;(Nr`)rcx44VSY7!9&iShRg9 z-TQ!5sDi;-nAAUdfmoo&T<` zBz^0xe>4wN)+b8zr|_!?VqYy`*8k|M`m05aJU`;wV?zdYYtre*-UG#pF#d8@D~Aes z1olY4;{!GhnAeF5A_Kz`znMNzwERTq4L2nN9)J4?izc`d)(YSx%}`!&rJ|f5(8>4} ziaXF;4w@dB-G{O)y1HlEh&v#X6p=Lo+zfEb0f5`LFk)FDFvwny!4YZe-~@aJy{~T1)-oq3+8-3*`~ntHf?+9zCF%z>6a zWk_~@0p^S7Aeld zL)_-3-*V_9^+h{J}S2hS$ZnD5kz+ce2EhWaJHkB}wJo z7bW2^X}M3XdUh^PkFVA7X9Yf|?VbZr4!ioNPsq;C zWf1SXLftaNHrpb0AO$6AGAQ^*&mR3ui;tXOZqpK0CGuv^Der3VBo@+8FIZ?6nki>R z#ZPi|yV2LH%?Y__P}k;OJm!ARvY$a4=_L${hv$3l{NI8%)(WfSio)u}6Lk(wbTbQT z*jGS){@cF6n*uoYtiQ2v!l3AXak~U?;stpUD&a+()uLawf=a3~mw8a{NPU+G*tt>0 zoL}tWmehME1CO-{MVg6{Xorqe*vX~&m-j|20Axj2_MshdENoEjy2NrO>W(_oACq4& z5p04~uxvBcYYHcgh(VGs zSDLz_5%GL@SZS;8qzK|X7(F|D-+6abiuNDBf@p>V<<9*qM`BPsLQOm9N{9Uyb4DH{ z_y8$(01N{ITkue!K>BPFdRr(Jvg=JfW_hkq(Uo|m9%1v62W?5q{Ocu22C}y)Sr%N! zUZc9DFbLaY_+rACe%SpN+fqNPzUniLUWH2e+A@gZ8o?#!vkTZWi}LZ|6S~Kx;&}pD zW@Ju2Zfq~^>HJe)z!zp=>4ffUKA@bO7eyNVsk7x0YkIoBRy5!x;7u_6Qu1HPm08Hz z119}u<;Pm-p+#Y3aD6|n;pIeSD;KLXpKnZEsPPCS)_19Qcm$6~vtON`tV5Sz2<3VzHcboH2@D)<0$g_0|WAR`6197HRDK>OLGe)x)7_E`xQ*o|L1o3;a|& zH+?W!m~auUjqYF-K0%8iHMWG@Wcw~=jpc>H^|#$4r!S$Bi&>=vl>Dh!;_C${1#teA zsOMmW`@)$@*BW%4%E|$?{SJHNEM7bfE#zfZ!UOn?lk4s6a$$#o!s; zIn-Ns3YeFprbpsd?XFQ0expy(fWr#4rxdGwVp{>W06i5yTPEZ#Amjb9iDjHsK;;bm zSycf3@MdCgN228!D#c#gBTUmEH#12E`Un`hjjqUKa?TSPgacX*v>L1qtui?iWzMt` zAS!UFXQQIA>?drA*D!<2W~psWe06jNstSP;zJI|z6NS2aJNvgD8bnQXIzzUQ?z8p? zmF6Svk5j%qe1gvX6I>?5c(pTJNlM4g zuB03}U_+7>a(cayD-0(ye}T!mvVCngJ6W*HlN;Vco|OW##IB@F|F{dg#5(T9K9(Y> z$puPfudjT^VI{l7){A(Ia3X7p%xewj!stt|9WSTE!Ub{B`r!GC%n+kR)HcH$i)X}Q z^DO=!)h0`#X=DTJ)XfO0;2dxi7Onbx|5h|&jGYR7BaCrfK6F$@E(_KsHyH(nX_8h; z0h1^=6OAB4aZrbP`HE*3Zx5cMH0Gj1IEjS|Nrm+A6`L{I=3oB^d1p_P zGmv2!$wI5*#v$_W3Y+HRQH7KY8siGA$u9sWj5}TmD*WvbRlT1}f#iLcJvw8J*qyQG ziT0l=%U)^+7m2hu+B5MvYsfuD(T;k}@>I_(d}{y|`D$yZJfYp@qNc%6;GL^R`PR^0E?lE5w@OP6@t<5duHqM z_U%V{-7AKdwt5rImmZWh0>;<=yHK2@ov#kmsEV$~S)(|Csk#>6!X zl#X$&Cgp3b<_Dku3COih=JUm%0sutP|6c$(7KZ->^g{3grYaNX7zzNz&*T{ebm{>QM*%!^7K?mr#a+yYlMx&)X^5FEp0BE3Vg* zlwJC!eq3feZcG@&LwCG)ex_J!G9Ng59Io45w(hqjr6#pgQ*3C}8e46}Q@faY>hT8+4BOM13e=NEQruGzjab8^q(iRmcY zmR~u3@JQFz38|@SS~_@|i5R7(rJZi>(01~!DJd$OPKmv_w|ex@I1yGtRROV8R$ZqA zOr4;Ru&=1M$k52#j&?(cD2Lixxp8WKP0!%dFw#xSVr4B_Ke>Nb@U)h#u&|Kef!@M3 z?V>H(yjTP9iLRfFH!7*vzHxe6-}Kg%a0nn`Hjev!`*h*BO}C4vjtj_kxh0o3Pd*+x zi&Af*p>F)>;vAlUCU2EyITjMz*s**^N2Zl7H7a2*C@d&jLxw-#Bn2@)Un)Um<;h$Y zy+zjpju?1YcX#Fgoc{!A4)#M6rf0}0$7yP)E2t&q&d17~II(|KzXz^I2b#!sOq;!sMIV?#wu+=us1Wa;?$cZ{9D+1Rye zd~TDZ#Ds=jSV>bqRXd9|G%W3zo87j32D52JP}*|$ha|Fa;#41NsCs!RPPj|zTR6XA zN(+j1E!=ow^b-^Z&&88~r^A$X&V zE4d0(jBM>$|IQpDQBX7;p#|rGYU^y^16fr(H8w34OmX;|1)B#QN6h8p?{9i5#BMNx zwb4_T!hv14XYYGEBw(qmtR7a!D3!=t&!DEv+|ZFrfq9wKkR&z}YU?wtPO7}XZTLr^ zO>QN<&k5r^zlkwr@j-)x2x9OHk}K#9kcH<1%}*V>5zq4go3eys#J&UnHHO?%L!#4q zCc4F21A9_9heR+L;)V1UvFJso$jx&L+AF_f|HP@Hsk5StG`mydjuhK0_f|#`Wx)?S zT_BzkDQ>J>zAD>r6vp445Pl29GArMY_Wh(XJyj!ZZS9P{@xdsNRE*1Fr;p zY=SAVEto?IW_Hb*s+Lt+7-wG38F!chr*D2$&Q2~9ToE(BQn?E`=rq0=O2PHyNKT%` zZ(Qrv)YQ?L0uSR>+MysNh-lVfUixTJ!p;sP5oA*7udDZ|FT;u&79xAc&xIa#{hTll zbyF2?*S^TI4oQUh5{N91N{6S%5QRwOodzdoikxHsvnI$(S}YQ}8)jaY$8cJ+P3B8_ z8zNVxq;$Y}dscwvqn!AgS?36uC80PB)*zA45RRuItXKKREjoI&lKQ<9906rU%4r5_6lB>c!17fHK-lIv+3?EleRbuoY1rt(_K+N zeWubV34%$|av-!gLCjc@FqaROQAMjn8~~)TgZvpR&z3bqd=+nAu7`LhTT%_aP7+R> zPO@J}vli{F)2V6|{Fe{3U5N;;Xw_X3!GWgor zj2Dd<94F7CT&+}aw^2$Nz8%6P&HCZyR}v`t<7kKflY#7pdT6Y)liO^VMcY}(lC?g~X2y%G zg=<~wX`j}LCcVkR7-YArHY&1{CX0gU61E0SrA74^)~l?5qP)PM1~RO~-_|b=^LDR; zts+%7D+^)`QdNj~tNggDCIb~%0D6zCeZ+6)TM%3f&=Rh)fO$)O(-$Ye-d_iLKdOVR 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

>TC|y!tb4X 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

bRn}qY( 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

keZNNBUGWzBt}?N9vh%sJJwmwM<1ep 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¥&LLkYxV;*D^Bd=uZl;&NzO%Lgv;?cINY0wm~6i!!@6=;Jr5O5X88 zYNJNS`Rwibdw8uIC(b{ci(z)O0IdF$XamEtx5#v`7Q^;LrfpyyrPVEOZ~H6S7LHZ|sA`}8 zlYrXgB)HaC=Y~`LctChua3}6q+Vi_5O^WwgEV2NRgi8Otj)}ERa~3$zR_j8@V|c;E zuV}KW>N0F@9DO*vnVsZI@9eEaA=={{17ABvC0Keok7fUK;`HV8;^@)Bq^nh^99&%7 zzw+|O+Hs zVSkCdlfLnYTTdUxM!nk%{gG2K?N9{=)>(CWu#6xiNl$=qC=EWOcxDE9fhb$8rM z`AXSN8Eomc`gmq@7yEvo{ihcAx#{OV{AUc3lv7x)#*a*Gi``&DGDDv*sG?~urM229 zVUZ#UcCf$e47sAK-PF$U5VI6Y2`tynMm5-mj%vZa$L1u9ARP{6)Y z=yA`y@ur!1J&o{L>*xw)t!Bc+c-&iVMye?@_0ao zi0JnTW*iXHd1;&Dmp$jlqjFDCLP2>5r~D;C5GQ>KLg8TZa%Q|ka37-()WwVg2bHiy zy<%#Kq4KgBW>}>yw!zOo&KWryJ<9?EmQWs(h7Gx!dcK$#)QOi_TOd(TEfOZo3ewQg zw}Qn(VV1OW+DLN?*?p1g_`D4{3MJ5_c~N9LAY9;!HJJO;?XyS~e-)Agi_P;?ll{b= z`o{F0@}jsY{vk$X@C`*nBXE&he4`s@08fXAPU|rt--Qbl@{(27M33ps@IxZB)Ce;_ z3)$$I&_ob#cKVJ&ra%p=N@9m41tV?-sf@;9|BkY%P&i$yr2gmuEc@x6JU`|%L-(Z!Gl{XSu9F!wn=>xllx7^CfAvQ1VLDYeC!mlg(1!@n5D z6njR@q~zot(GS1p$Q=7JC-l}Ri=F;)&FBYhyBr@A?{l;U;3U5=R;#{ta4bd4llc+? za|sqGuB{c(hEw*_NXI(66}@fpA9VHR$-a?{-z%N<=ACG$@K&OVk&$6>=#ny~>iCRO z@<~~xY3QV2GINF8*+bCE&qZk({Kb0({c%8^0B}M_y1(=qaq~_nfJ|nrg=K_rYckq(Te_}5wr%{> zl){E;*w0QTRXPo_V(lt!waeSKm>M6QA3DS^ANJJb>Inh^g~H7W z@;N|go!h5#5y#~NN3wXPzzrO>jSa^U94wKQpFtLe{%ZDNTLpnMgC^Y|RV99`u(HVm zwxTi;5mrLUH_IVAV)jr;c!T%^v%^E)QLzebP8pAy)Lljo){7TCJ$S0lL?4#t!T06z zB4Q%+D}hv;A#Oe4>axHBq+#D(2|-Og|wb~YjcnyLtLuRX_ENp7H1 zloZ32PI7B->;lf8GVmAbyK$qm=i)~hn0)Y}hn4=7qah0L-06Sn5;-N9AAz))B31^r zVOB7?>(MDado^gYBQczPKEAC$mh=6)2}j_lR{IVFZbRlyj?Q`k8PPXg}c}K*v z=UdhT?yqTl1t+MATkSpOQNKtK^CwmSOnk*lz)BCi_BrtSt%qd!PpW+2`aq^xAZ>IU z3_rs`WS2Y6c;gm>`Eqp^+9oAGTseYn$Uz)flP_bVLpxYTcyp`Or%ex;+~w_t@(jp7P#YzrX?s)#LDv$khO(AABcpHnTq0g^*6wcaCZO50_+AtV;6TnZupkqYiBtA) z0HO{PL4?yKl7RNXC@0}&-LnucZY*xj%yA@**cFlvSHi8KH)mL159)ZWwk+w|z%g5m=bVn6U)`Y+ zjjHl>l+k1pI{7o=%0tPt-WicHB5mV_SWNLoh=v>X{UsW> zhH;A{aOgz_rD=rozElSwkeGcV1bD!**NBHUJN9{&cvvUnR=%jbtE~ zB>s#Tp$Q5GLYm@;{(eO*Y|25*Lp*UoC8sB;o1iOuQ&iZPfP8JOEQu-MUD4=>ULKKU z|ERlN9x&YS6|3*)Gj5&N_~74x$vHsTSl3+M-K`v6pV!sR)!e&EDfLi1zC66X6}r#f z?`WgZlN$I^_*(e+l3BCaDmit;^@rF3-@VdkFHuiSyA)MVR_}us9k&o8xx;|*-7gJO z-=7BUt|Snby9Mo@$5c9C-Gax@uYc>-y?onW?!K+vpZ1*HK0a-418lgqJrS#?GX4WF z18cpzTi+*>4~v_J+fhmQpO3q?@Gq?|weY^*?_M4pJidI})}3JIPN?4RE@Qme*F9M} zuj9U5`>?PDUI(S4ovt^ZE*;+8zXk%YHz%!&d^a~f-W|SPJadsRJA=L4JG|as&vqU> z;Uc#1@MHzO-8_ctT4k@$N1nsEJvlnxuRb0=PrA9+vhc4Lb4y5HKTK)$Q0y-+x$S?v zKX3mJ#>GGxQhg||C#4DackbvHrb+%kF)s29EDX9riZZkU!t!*kwhos6LC)wK+3~3S zt4{BaRWsG!@68niqB9{jwd2zZNGFJ^T3prn5IiWL6}$;)!> zN^)pDgo#MhW#9QX@ze4Z7s*3oste^TiqEjRzRwY}mM7Z->a(+WC&Y1k@b=CB4tlS1 zrX)*>pgPG-iDpD7vUUc8z)Loz`Eoqm26*X42Kz`aq@X?gF!0qC`ch7NC1}i`{e-m< zFF8_Y2Vc&;bq6f6!C6{8pR{w_s$_es_@9`RQwzlF`manqOo-$@ifcuMoBFSo-A=+g zHxF{rlf)R2!>^qmS#+s{T&$-nl{wfX4}2xfP%c~G2(Wdb59jCu z(hbGSbU2vS)0E3d2}%Qc_Xl|Ntdpp1()o6nMDj(5nu`ncJ@5_r07f6b;QetQ)|Ekn zat&@9sMl1{E0Rp8Koav7srrilkW6a&uIIY0U4`xg0-qSMK(F3XMrbNc`^XubFZ0<( zc?Q6(drutrtQ#G z|663fiiLqzipw0z_X;wTE!KiowCT723VE>(pPhJ$Q)j(2*2XkEeTrmQ+f8)9h8_#Q&6F3q(|Qey3< z+KG@q1Wy-j!og%Zv#q57bgoSn-Ae3%XIwF&oE4<{icf1&E25i4b}QT-uB3(PpUtY3 zV2TY3?F7@r!^pAvX2#c&;*^P?e&a(c&lgBy8#QU|ltGu&Ya~0V>BPu6t~T77r*=%u zZYe;o1+-1T{9aV=8X&p%G{AI|67iR5aO?~6_t!c{@(lfo9PUa>n*QXskoV2ed z7lG2KxnAMCcTlnrpY)c^9x53eFOc=Eb5ZcFIXS+{W>!kYK=E>P+0U*!F#{FmUvBum zU%yUHa&v$GJ@Eg{hyF)yusmUc$^Xp@^1qbq|8s6&`M>1`ZFThs>v7mm+f$w`l(ZxV zooI$OYnT$g%N@QLdEp(4sX&jUq;dx4qjJ9QhuU9r!CBv*=Uus)*QZopuY;P|ZM<*p z+~?G_!Y7fDx5uaPFO1BidRr`KpWNB$*|c2hcPo4G+1I0>rdgPUkEwYHIzVp)^zlNu zO4y3vG_GN@%B6!Xtz2H-?!+CHOcLM6*`STrDQl0!9cZciWQ7fFZxj?lR2Ylg`iPwm zgs(U_$B9ap&G_VQ>ChGRlNT+a72$H}N!^!!wC^R}hp(TUji%}n3}J)x7qG_s&jlfVgYu`+7Lg8>t*}Xs5Zu4wE-o zZJ@YPzfbh3#d)ozxSI(>L9j~x^pt0ei1G?_b5R0Dn2?Y3j?mEHJ(X7FD`?Y z2+?>wCk|*52a|J%!1r^jfU-nw#(4Z?z&+89zwmtJ4)B`O=jG)6pn0WB%jHWqnk_qo z0AP%&nxge!w`-hgZ;E^b6fpiWe(im|G-T(#`=gtF)=jf4;*2 zn9UTEG~0isUoQ^MtKx0T^as^jBPNeNDrD;4EwM8HSpv3F=ehA8;;`a{ge#~yEOLPn zRH46*G`F`$%&3t)Nh$n3{z;D5ZNhkQ0tf&wCLcRtN?5$gE}Gs%*FER(*$()^5r@y} z{_-QLj(c+eq9lI#7%)yLuWQxi)heg@%C!K)9yrBus1Mn?haH7&y0Gg^H_3zQZ8Dge zkMk3_B`qE@%<~_pGqwWVeBFnf{8oczf>xs%ST|@!_GRKXorhsKBb(NC z*`+YnlABil5~{FjpE~dJ!pBWYesLb(z3QN2e)iW)7n!?&;gHX+efe%hI1RWgPwLS| z;%Yv>U>cZq!H6Y#f#k@i%h8EikCVAkPD$am8j`E*Pk-jazl6=Oj^dgMXrh*De-)K< zi%Yi%mGRyCiKxfWP_{L-jG3ioh-b5hqr#xDU)ks*_EkUGg^oR7E>=Gylb4AP0vaOs z0!Q-OSO*w6=`-)*x+z38vKVh98O$cSll}GJ)$D&9JPaF zP}=X2dU?s#YJMmt8Wf!gbvjuFAp-SGqf-o5r^qI~wS?qLpcP^~n1;olH-#}v25;wQ z)_4qBh`fJgEG;;@U9i}>hr(2~;4X(zDOL-D@E~)qIWA1PFswMY(Z$+sC_kPt^Rxb; z$5<`!95aAG__dTLheqf8?Onypeb72Gy!rr<3B_U;8Wl*88zlyrmg!PGG2~!z=R4)W zx{`|J1Uf8{kd+s7J3Ou3&K6QeBAEKH4x{XxEW_+v+el8ZB3-(`8hGTAv(YCZ4s+ni zsxbZLe`V_IgR1=bbkmZ&uGM>h&k|U;vzlEGG3uyfPZ*)EP@bbm3=at|$$c8zN2`x1 zSgQcBdTl^DNg|wenKCjbC=^%UJlJdO0|jce1qa+sObs zJXD+f--uaMS#tR-GQcp|4l{f-`UGC6p8x!O5ea;C+}aSm_t4bUUbxC8^jIXJ4k`xM zl>=yay%hM90ZXrEP#d)M=uzTseO#rT_H52*dzA3V!|)t5tnRdPm~9@C2kjwOM4jw3 zE0g7VtH0+`mnBzCZil_SLs|Ot5+QjASfHJ-Qbo3(T-ZBKqtmWk7>_<4;t!DWc}%V4 zp#KH%|L{0N<>T6a)pyRi7p>Y)usF|t(4L3OrQUcru{*XoIHHx1m8nnB z&45upDGmKX-;6X$!KUxUo(01PH0w{cVVTqyI27LR`&-DIN)5e4vN00P#!~l_`n{BNIIt94uP_GFpXG>ya^B%-Xf~VLR^3X5mE{vK7+`sImDqe(sM6*gr^HU+-iyjVx|==pUqIMW zfz7!;g{ukmpYlN4YI*~mtKx%DpQW=(71Y`C$>8W3P3J4ll)U&0m$1g*`L7+$k(pb#?vG z1vzv!Emx1xG}YxJktYA5Klq+!|-=`wvbxB-;*ej{d2=>8cK&#ahSR z;9QA4n@oM}4@-THtucP&o$0wQk6&XlT`4JUvJy^+mL!hp|^8ZFHR(@ZRB>qW_}Es*r`G0O)qh@op9$0beBu2(+5UX2yZ#*VeSVbY+?8AUT2$t4@*d}& zpB3T>M9-xO18;c4?<`CGG!<~&04Qy2D9UdslkIZ>Q+_-vLPp=4KOOLR=&d`i6n3g? z<#*b#)hV0+wZPMDzrxqda>ay~5d*xy>@eEY693{%%3Kt;UJw%;Lj6@a%TV}5%aO26 zw=KllYx^9zY%KBKLO8QK5$hgHWzy;4B_Pb|^OI(QEP z_Rpj_7t*bfwZ*BP)MaoZ+p^qoE~{CDw&8A{t(X^~MX}qwOh>H&-HBCZrcQ!faPRG0 zZwRYWNSfd~-gx%byA-@2)6UF2MI-V4)y>o0vOW98-dOjMtVaTf=Q7@SP~A@hhQrp) zt^&?<M0p;n=R1Tis3_56N!QJV zhfZ4;nI`ex0}BI1d54uyn4_~)xg4)!RC&9EDXI(dopcX`j<)vda?lj6F15j|V=lGzEL)F$r@BV`e zH}0q1q-T5SCR(_;#cWr+)SmXU)QH4DXgCnc1yb|p9jmn&CEX9n11Ya=sJRdW)y)1f zjCg-8IQ?{6WE~3Q6op_2n1`cWfIA4r>Qsrm#jPg@-Q&vTx-zgU$})?t1*9er-?ai8 z^UWqlEwpEW*ZafUy1dHj@CXEix_GqIpW-#P6*Bd##n0(=0Mbpxckf2?v*zIWY^n^+ zZZTsxTk=W#r<#U_fgzB{WH*3M|1-_Hu(G-Mrtx-KEGv7NFp4)M$V&Vxx0X8ilibI|LRHi0i67-?g>`!jE zC05Z6MT)P$$?})2@3OWrYT2;25e!eFdMM;G*0rldq1*wHE`(eQ(Mk7KyN0+UJ@ZCK(jw3L_HNVG=_ITsMXSa|KABp`c|VRU*>YMiD&qVB~1NH!D( zmm(C>!m=04BD?PsmkMHBLF!EAQxj`fV+3l!qk`ZKM|Y4M%>}%E40iV4SSl`+}L5ZrWG%P`gdb>;7NZknMQg{H}Ds~9{LlBU$bcz zb*s~+97m|%Cba;o`8>XXUn%&R>f*DKdqH)X*IJ=i?G+zDhKnknmUW;~#0n=%;7-h> z$g4EB{}7XH`ax{2{7u+~PKSwS5n^7a!bXqpg#7H?LeM^QyQ&n;l30735znN9cWZLBAQXJVWMVE~C-TD+lH@)W2lm}{xArz>;+%l%@1LT?p-l=Y3gcb|19hw< zwla-Q2;ck1Q63!zEXet^p(Wo<%dKGUnt7b@atNG6N?FS2eQCRh>J};yO;-w#D#%@0 z-g(53;IgbS(v!Af+{ z<#jBsIEW*)roWb@oS%4F<%P>kSRb?-BVJO5T{|dWMW=(Z zXW3}+!lCYDka8+I6;`foo8y|E3f3N#aUs(K{-@QEjiMenfXy43gt6ksERpT{~7 zgfz@xq22<5ZbCXbwjKS0Pf{hwUKNfz|4>y%yC#0aR>_+U~Roc zbW)0fRm)u8A2CQmp8XwEd;iBSboS|AbfPI&f)5+Dm&s`kH7UO^V{ zQlkJLY(dB}3CWO6rLWAYe@LOsdVNG8i&k+)lI@x5#q3nx=@fM(+&tF|fteLoeJcz5 zDLm&h6F2%))T#5-$SxU4HG@o&(#ZC_EX1g->9_DiU{$*vBq$L()Q~M}nqf4y^@~s%>r;5`)WEYOuAJ>^@8hYow zl=je5-gR-Y$V3Sx+iGKXmTWk5*V&b}yhA8DV2+n^|q3WgCiIb8xLXLGhC zq)|@bP)4E6u~PaPL`Xt=bBsF3arN*q9ji*GtBOhI^dAZ|U_>8Z5q{>KZT+Q`9qbLsm>=N1sjol#aZl>r7;R%@hcIwHLk8rC zWl}z9-{US$Ud9X_#Sgt-$*xTi3zZhRFmP?m>g*Nw!f>{+JE~mFQaIU6bWZA7$pZns zn}894uguU{p-*7V%{R z+wiXhYhi2Tl4ixd4nE$lT#QZ{*BSJXQ&v8i3Q|#a5wVg%e;sBsBng|5s%rvM)__*| z-8t~+q6m2L;y^>}Uu0`~Y%x_XxYOE&c%FL~KG&NIHE>1C<3q)yQkK0pmVvMveF*1Y zh8Ro>;3a>IlgYTD0}?E4sYv6sVt6O-IZNl*3qVBPb<>-`&p%DsBlQs>v^!lA`?mf% zYx3GhJ@o39@Y6#Gm7t!gg3E^T(ord;Vx)6d@FE|RL2DVTE!-2F+St0tjRZ2Vp`v*& z?+uz~bEZa1d?@yMgg^(;hR)G0fNhOk%oT6pXNHxyIm`VB8f{34;2CLi1vj^ey`ZGo z|mp){0Mgyf#`W@1D49|z=zb!|TK(mhh> ztHEN!rrQZhD#|~*G2j(?K;MkeWfqP7oc7yzky*^7O|=nL0-?&2>s=p1KcBrUkcH>+ zdY&9~ri=cmaE%)|(Eq2WJqWNz?a(%-#&zu6%Q#7BL~bt1%;TO(CG^`==+dAxPoBuU z*6w(LMQ-$0Q-vAeUU<<};153#oJ8PSaPo+?N(5W}k%=g#zzcuTvwD(01xWt z_OM~YGsTMlqN@T57n$CykZJ6U!{SpC=NP%7EA{zq=42DSPm`e~3-@o|Zd^`zH|L3t z>eCkp!?r8qO_hoZm*jAg1+SA?Iu2V$XTZo?yj$90Ti1bC*R|E)>4v`vK^*f*rJ)lK zRG%l3!`V`%EuQ*{&xx~L$aTyzdsBsnK4SzU;ds`CkfKr-E-hBFRuop2IM2>Tq{Qfn zq4a)A2jzhAeo3%a_ZA3yO&%))>EZBGJb!*x`z|TUEh3VEgYaM4l~nhYx*s^ zjVl2pspHE9%#+s|R8E(5lZ_Ad7EOfNdd8d%=V);X598_#2WKz(gCsBRu){~5FL_wo zwk8FhUvo8G4%4!(aIU%9PdOZdudJl8b%KBysMFOe_MOoxqEm(&F*_g&nQxzFyOWHx zDL3wnvQ|Qk>8&rTfw0mMVLQ+rk<>L0&gv`4s_Jff2yu?dg?!ez+Z`U*8W>el7XF)(JCv!q)k5Y zoK?MjiH}{XauWg^G@hE3Agr)_AUf7_oo1794hFji&PosNY)@)t)>NVHRp?tRRK7<+ ztv_9grYND``LrqoHIOp5@Wf^n2y*KN(f{+coP#{}EM{#JIE@_*oMmHUw`wuSi&CyO2SIst8jvEv9y%*7iU&H{}f-^|e zOqxJhdrlRze$b^;m5lnNs5)*O>vglzC@*?CxuYoLtLg;GDa= zSN6p)@`j=_O<+0pjFa>%I+vq>to0f(Arwnja~tSpwuFoHKcX)7X4-FE6+LhN_M$8M zIie-Z3eW^EFr?9=DZYeD&jwjzY9|k5;XF*?_Bs_iqg^^MI5hOg#JEpn_JrI~ zCM#)q}S@>&^tYv}0e z+;Mv)L|l1glmr!e9U3>#F~UL;9sP^G$aH0iwdSVWA2Y&ukj{C4yGlMvVxo7~gej_v z9T_`p&AwPLq@t|H-Wp-Xl5b(=nd}`w?gdAx7IA&Wr6{FO*B)r!HRX@zg$(Q+U~uua z&KW}OsL$c9_R74EWp&u&Su{?T6--rL3w1bEti*ExD(LGL{)+cku*oN(Ks!-2%|QAKJ*3(UJ`P z3w-eJD+(*SOvO|ClfY6JKP&>Pt6Sky>460iwY|>&aBe+%WSY2LO^PDB1?~d=cTH2Z zi#dYg<4xwzhJ}l|?#^b=vAhE(9IkDxqLYW#Ik4gLVOww0FYjT6ik^ zdvrfE8Me*9tRakeu`BYQgD5Jj*6GMKU~0pk#;$%Hy$Zlcmtk&Xv?N8HHj>!hk-@IP zpL`iFkA=Cb3Dn|HO~t`%8am0)uW*+{2yn(MrteRjW{w;*Fo$Q*d!CuvQ_dPE?k7*y zS@zf`Ctqi0$sn9y?f`)gUU`Ag`?H!=8feow;6!m*`twv@qCoFr=ZbgMf;4ekPOaKw zBpg@-c<7Ofb?wL@otp#V<_qr|?QbVw|2zxJY7b((fcRChgb5#^ANR~Uc}?cyd+6de zT0lpyS%y6iEJ6P_?TYUe*I>GDErcz!KOP`?Vj-jCs_7Ujm5Xp8Lk;qBkGmi(?ojOU zumq)DyTe(1kA3w#v0Hr19&qepC9P!RWwQEcgrS&XZ~U$;TL^C$Qy@npDu&CB@0MF+ z%-0RP)wQzG=QIE8zS(_V^CkB5Gz~jku(Z!HUz(O{C~cicJgAF33>>m?^s%%9AI8=6jI?Y?s@{0&(UeB!OIekaTcz8u2g5(EeUK)wUi~y4^kVR}ErX;y3j-=XFrz{7m70$aBgnjy zK{eOZLmscMN!(Qtijd4XTGzAe32>&!7i!uy(@G-VT{9a{=44cd)bsJVLLHg(j1o4x zfcaWCjp)&B5t>p2DVD-eWogydw(ctiqj&D6#WN08Txh?LayIHXWw!0#XSFNz!P`c0 z{J(^J9h0@k)X8Hny8Wz96Gh?v@?my6gkV~oMb>Gpz)oHHw05l#Oc{D&V2VQ9(^eD_ ztUd~52@-p@wv&y>_*Lg9;r2aYWqRFFv+ZU`RnI$69Di>)d{*N((H~{^mzn%HM0N~( zDGOEDu0!9U<0n_h`nEe{VR%)R{Cl_Vlb++y+Epr5sa4eJu2$%V9q+4ybKP*2Uv7Ad zu|2PWp#x0ZX^OGy(Vx}zyk^1Zk@al0czA)svGyAgrpIb|bKVzptAsPj1zuq1V@M??HL>WW|y$NlPk+hmE0(tlkg6@45Ormt(_Ldh5U|J?DyM0*m!;01XXxs@3|zwXn>Q}9cW=Mr zf&LnIuYw@me8-}}bJ3fG8k@vTEV!B4u4JHTlTL$GX^WRm8Pbv`U=kw%(7k2`%{7#? z#EkYl`gZB2O|OVBM6UvDRWIpzH-seU%U!=WMD$T#&6-&u0*?T;r+{)uhvdkH;H3|A z+0clsMxG5YJ?B%xtEI5V&MW%hky{bhy)4(4GHZ8LI-5NB2a*JO!`Q1BVstqUw@l!C zCAC|J5DMznE68mFO9vOJ#!Pbjy-{+PnUh-!7eMDw-ZmnWm|TG&hCIop-jhpK`Mu(u zzYW%G)doD*tITKk90Jz-=hP;V>k`$H-yW7B_ZI9&N)U};dVUSZVM7%NU8 z_o2Bj=nB?0JP(&xI~}oaNUK8|~$VrP^|(drv=+p+i8ayCbZ6N_6?rm<))% znL=#-j|J^EX{Zl}6%uJ}`<_%cmBOel45g=9BU$Xw-MNZtg4XBy={(p+YeemX+cuV* zKy%N1#}+`<{ra&qtyJfHpxo6s$)rSXNOU^$WH~#}8;ho^sS9ZdanIU_Br9VDUkZd& z<6Ev4aP`i*)${zVhwGPr9Gbu8(^>x`8WedTM~|8=9&h#_?8>JW=eywjlA4@*<3?!t zSewqlsqV%yownP?=DL*N(gFcsR?ajXbT_D5W%tfE?)uz96c8dM9y|6@Q!p5`bxr~3 z(X{Pw`T(9G0%O-@O#o<2eK$B9w7Ul!ivtoh{yLMSbdrOTQzCoTJYfnxiDquLtFd6^ z5+r0bS<*5IkxU|qjJN!11EQm>_iPUDysn1xnv)z+lYECS36SK-QM(u3DSS}G`}~J< zu0@JPYO{3ZuHM?VWUeC9MZX@2*?UO|?8w`(=ZgYE3mGRFDVfB}Bb!?duI&9-Ul--V z8T5jjv3;mfodXdYS6XwY>sl6XvZ|VLs&@qs77a;tQKu!mKmIeJ!OKy?)|+TYuwn4z zDSTy)JT6k3Z&(sBm!pM@^u4vsMWFj9eWl&2NR|6qn9|sj+DNiX)qU#2A_TaN7IDKZ zCP{w|{?W-S^nr(_(;MXtxFJho?o#nOi#sMPH*=PiIT`H@=Y*YUR4nhu|03-i)--{( zBwAHz+qR8AZQHhO+h(P0+qP}nw%s-BJGi6nS2&~d?TA>*qfv&|cxRKLRA*G9bT}!S z=Z~_(%@mM5ZRZa@4#f(-J>6^bF=j&#=EG2!%4V*0jm1}=5SLUKiq}{D>>Dv5B314^ z{*65YA;+}oLiaKQJ2M;nv0y@m`$bzynOhnzbi8U71!&hx< z4o*798OQAir|EN`gf>Dgzs~e9Yb5fxd9HyN8_)qqf5o8}?t6>HG%oB1| zfKjZI0~pcOLa>EUs#e-)vW;_5dwex3yKu_HP|sJr>V%B*aDhV-gLO6022x8NmhxxwgM&EKj| zj)@Sp&a4)FTk6!83dZp#u*l2%K~I;z*Eg&%^Sb(E) z<+WuYXb$m$dw@PWBG$PbvJbMsC@=3aN?V&!My!^LG%EzT+qfeqm;p(f`=u*$toR2C z)$0VgNJzAcAjI6JGpWjF#vi0Ho$qVS^QC6Umc@aGr6KHu{-*l5uYRYssYBfm5Zdv= z(k}ARp@xP}5+|PdEe4LSvO|_CbITk30z(j#8;OE28e1e7TIM>)$%VI-SW+x&O(d?K zshtvAs}eJxOy>6%hh z&z*1z?;}~7Iks$4&jb6XGTGi~%>qhX5?P{12X{~wtu?EZIrUAn85Y2EcgH%nyTJ?+pq=D%(EcH{ukc5=k1JCPTPXTfI{Rh0w?RyyE#rCmO)k)o_>SF`KOYFHD zO>jY>?aoWuyJwA8R;*)oq24{DIAb2jz49}WKNX_d-McI3V2YlZ_Uuhu+n%t^5>rH? zqgVN7!}sTc_eb|T^@R6(;0Ne`+log2LTa}+c)1jWU%$R+|L-9+E7N}ssWsFinmS;- z;Edo*LHZtQ)8R+?@DB;bzQZlzWC5EYAFfSg>Xb=`H@-h_C%WHXvA$ndJvnn1ct5u< zvK6L27Un04nqQCVJV&xko6WSdO>Y(57bU|#DZC&KGk3iQ{{D*!5I5Ztzc&pRt#VXE zVzgS|=-5L*m8N^bn%z0UreAH%^s@Yp*$+I%j+PA6ubL*gH2@wg);Y?)f83VW*=~+9 z)uyr1tqrbo@?1&1aS@6_zkZI7Rc;0Vl=lJKgn+ECcQ+^!7H19|6BYzE}49Z)c=$x0ie*9%U zc|dU(YS&yCT{bY9#FX)y>rF-*6nL=XrTiHkd-G8VMhQwR8ZyvreeO1>01)iVsyWoM-9m-0S~qv!a6IN)pLK;0lRV06HBGhYIX5&w)S+)sS|BAy=<5$8wmPW=fS4^LvMweM^cKN zc0ZfQhCc~GUhP+M@Eh7Wy1WA30@{4t=#kWH^lhJ~mVaCJpCa%t8(DM|k?U1$W?2~Y z3MS_#Ys^-2NRl^K<(e;PD3Ye;_vWFd+TA$PxK?{JrXnazqar&^9nY0Vl%v9o)Oxsc z2<*1mhO!$X;gK2pE7R~bTd}vcpb|TNJKxH49EP5bS8p;@-)s zkS2So8dpuXJ!hlS3y6CDU9h&3>ZGPf=0qJ**P3qHQnHit+Pe(5AKMqC3(1-GkHcZr{~(Y z*hjpg^uz-}dzNQ6qkh}g8POzua>@3l!UHD%3yCCj-A$a_gs2b(JR@6($Cj6AE9#<* zj@k3{O)@lkZ7||Eo!iY@R@Vxr^8tojs3<;LQZ($gK%VnyX2{wjfIxdf!@^8&) z+v3&jN+3e-;#`UMtg6}-P04@!7J(E zFMkVGaQG2IJh=!65?IB#iRxBV4G5wX#aMR^Ae-n480}Jhw4= zbXu7wQW6H_Y^N$k+lW$yBs+gKIM<)LO?YLBF)(6X_S|c97tQk2+2C}C(6{~LV~kEn ze#oFzyj5`X6^i=Fx#GV#wPT-bh5ERtq8(X(Pf4{&WYOi-}%G;eej`)qn@b&SeHtNvkV|kzelGRWMDah%?aBy4-OxP8h9&vf9`% z8c^2Gy4Q^vSdAH!io@&P(wC*ug-ixn{JJEoLr+!G%>*+?el+!g>dOtwgr4u7en>=U z6H+%Boj_1CCSG>-yY1R7alwQmkRr5l^*}&&nBvAQdbvU9gktVjoPTE{r8?v0`sX_1S;qRdu2`YtsP^DmPSn3EA1?By2 z!*ok4Xg(e>0MVXt*FKy4wv( z{QEf2)q&Z8J}iqBaGB7>uI*(FzSoIT@z@15BQ`w3vJNiwB5Xgk!U@=lFz(1M4KHJZ zr)UE6cUrp?<>2qfS?`h7X;Y=XG6^Om0ZhJR%=cT74?iT&{KY);RYW&{?Xy=Fk^~6* z0~YygUfmBGf1aed?f4C@Bv_s9PGjdy8w)P@wd7|fjD|1Il1%)=dlbtr1#Mc4+-%kg zj{}`gxn=+ar9FSPRevw%xuJLMAPQtScvqRo_$!NAmLCw@b>N8wYaH3>4(Q2Hl?>OsxD)E zcJgkAhh;6m>_2?ADLd`t`@%sO-{@^GqRZ0w0esYxsVIepD>x4C%f(6!4g%p`qt=fD zhyFa8b=PV4fqlcXwpNM(eg(%5q1i*47n(_8qA#Qs@obThY(`9GW8B$`=PGOj3T08K zr8d-t3Jgd~rg9jgF3;E{hK~VeemvI5WW!qACjFhogZi%w$8%2xoq(x^VN;@=*vnbHwR>fk9Hy6utlS7!SQI0PXvtLNaUFUgDA1*D! zmQS=V(~_=u{jC;i#31$jhjmX_`5cr_P2?r|s`#dJ1$N^M4$A~!U>~B#dK5m0Ol8)k z=8a4JQZ3E8yYjg2@`%9sTfiiO%>`%<4rI@B!Xx-_$4;o6R(chKb}0m<+S6F7y!P^Y zkJI{nuQ5sE=>9aG)lJQ((B{9<{Q0bCr4g;99gr~GjDA&H*L5wH4Hy^kVg%-och0HA zID%CQhzW8NkdP2tJ5YADJdnB=Sl|rh$U3(TPc3b3i#n2IfUK27`c}kjr5NJ}5~gG% z3uGyT(R`*2D76G-Og+-Sr%!xzBctMc;mVC&>Y{0%pHU+_z<ENnT zN2ai`k`wQ9kO=BVG}9a!7|+lXc0IM#6C;Y|MSOOM>zbJ)e0$hGHupfKV_Xio528`jK1AKSWgN^jdFK@&bLj zSCLNyB|sBN!~a-0pVVj5a&_MfO`O=SoKyE}dp$>xP{0>PKqk#T(pRTkYE`N|8@YP* z8}zFD70+@pridjUYb4!$9lY#XjEKX&&D zd6Fj5elI83gE70deRK_m6$_#Heptucip7Nrz~naVv?GRk*;k_A803^_cI?QoM~F_L zo3iHwmoQX50V?o?g`?;dY3p+mTMoNPJSCV;6ni!i$1`>}>dQ#Qlmy={!s*thB`J2o zTpY0LL9%V&>Sbew`eS5d0Xe5Xvr)qtUnF#h3?sywySG>_A0-YbSm+a(9kI@>_0OrF z1;vb5!8W#Xa(6hvd39RKx1?cRi<`1M4k#a<1m>OVx#eR(T96?hrUbGqL@z@m%BwYF zQ6_IgJK^N2%WVw5qw7&xaJPW#|NYJqRCG7^!A(eugB@!aY^(CR3y~3ODKi2`Qp^in4p-| zhMBtP)-W#a4t7G=!_vDL4O0h?)%zG&tYpRwcN(9zL{@9VPztef(};LD8e#S5!U7w-*>fXQXJNDvLi#c-O@J(j9T2qnpes2iNnfvAsQV;`t z5StOG%_6RaA-;JcX|NKKA``YX0(FoPi|TZl%|!S|Lf*%P5^%8$FRu43#hBqTAGI(+ zYq8LiloX^3pE*sF=ECAt1OaCb3>b@yh@c+ibfAPR-OAfL)~ZVTO(Ket3a2dokTX=L z*`PSj&GRQ|5G?ZFfyx?6Y3TFc`6=RagP3oF*gIRrSv3;SlW-;Z=J2+EZS)ijsqqW~ zJ4pz98fzvsLud5Y@S>tDc)EAS&q)ijtX@~QpmQAY$h{lkaA$kPu7-5{BDm%7DgD2! zLs}}^`GLjiZ)e}=S7uaqs-tXe8R(O&PFD%yW?k&>VJFE3Gf*rF$F8?!tq8N~y_;4s zn2OE#@)qbGj3d%}H`z~5CGXP=k5rl~7+b3z`DTzVD-WKS5d~-51`3Np5kXZxtBbb@ zD}xhDwzocm{jK{3sihGyB61D}RaetL!j;)ZMeJ+Pd=395))HADu|Dru_^fD5vPR<# z7j`X*M3SFD$G)ubbB;rz3@z|)i@X*7KH&Uo=r{BE6_!B0HdA*6~>c;(q6&@??b zgE)G2`Yqq8ytEO|n}21V-W`iyuG*4GaJ^bVPV_!@`we4u8sD_Y3VM;^rBso^r!%xM z5oOLoRpg#iNm>$0iv?mY#|R$ar;# zkR8l8Z;$-yLzXBS9dD`Ywwj?dslWQ`%X{|J-E~L?24m28VqlZIH%Zb_H@xip;z9qJ zC!HNhlYo7x_IS1zYkyzcrvhHTz99z7>7N%IU^Z$?`^U)=*`A(VSJp$Wk_)M=t;e=6uf2 z>6%Zs1*_nA37d3c(Zj$+?d)?qt1C%7d6KBGg{*sthM`#75Ry&|;TA>DT~H7BMK^$C zJUrmkq;oqSIkbO$?VSsG`VS1v4S;kI*R0V^zFyIe!YS@L_9*!77igtER|`@=4VtQ% z0Gr!<^6n?M)w6oE{rSGg`AO03{JDes`H!)x@xSwrT~Mcz1NyIDz(W6z^AF&^oqvqI zG^>F*Z4P^W-|SWP#))yO8bZ_K8v6P3THWB800)+rXM@_j426$NkqCnZA~*be@c!KV zyvO?f{2Q(6`aV?pewX|_tgPVrc4guI7=!&Rf3Np6y02`9K+~CmBKV3$u@`T<5<^0NO(5?FX^Q5sY(`vhtkfBFwOTsnj zpl>?Z-~OV7t^&T=4A=Gi-N1Se%R@8Qs&z`^1k8bWRWe(B)m!hXv+-Ou<>jj5?%7{( zG}NKKtFETlK-VQtxBZ;txXccE6z;{s;aTF$lB1s|O(O(VDUNHA_I%aF^_>y(AWy`HXE4Vty z$ytecM?5gV>^DN`t0%OREn8Z&mWJW`!R7hf3Afwau7kz7zB9F;=qUuqvDUa9Lu+s< zcA1HjUU}o(v&0W23~?!e+NuDjfQSdc-JGv895^Dhx%Emrbk*14S zj@VW|?^KPs%XC}WfNqlC6W&6|6DhNtzR>4KE8b8AkvQWN%^R1qUQ&H@&_ z)oKM2m2)^)dn|!9zf5o0Um#}Bt8UM;h}?SZ4M=15x!=3z6XtQt5rY$%$9X!{k?NU; z@9qVPAm35#6j=#qd}U3&fn+m%=E6Y8#;AO24+<3P2l|OSZmw75BZN0et(fSkMz$ha z$p35GSMsOavd_?m#!@+Etf$#4padDR^>RsA8Xnp7JW2K9j7V+>lnjc3skmC1VBbvz z^j&&b)(J&iD(#Pl5IcY|9vNE@Bwg=q2YGG;^K}ygQh(4wzig{9RB`P+6V82*bSWJ( z$HFZKKd2V`l#OUE(t1U{TE)4L6ON=>3`9RbXT5wj5ue}$fKIat6>e0iUW?8o0L(ro zn$FoLg$KKhr!L@!wL;$dY8mGEcAceSqw z)j3o1!F#?$LK$h;Zwn6RrXIlgTQ?^*%c1~RrjL5FM4w^h4&j|cg4Etx(G#56G8*8; zob9F}Y`#1s*XV}ul~x#;f^^=k1d40qjA8-*4G(=rl3pR)rRSuW6N*n9%69$BQR5yv znh~$uI;<-EmW4dZAi7ynqN!Zwc&EKW4nh(ctds7g47yAR(+H(lBRPnr$h8Y)4g_IJ zJmo{kX97I}ONYRy{u`T{zp(6W`+WiPxe_KpKf|g$mushU)v+yw^N1MR=3#^dT zjz+!ppmVO)V#-cc7VOkOD9VybsNJ8`tZug%+uC{~1pn5-Aev1kzs8({N}B7N z4Tm)bL1(zc`({x_O%>7>Tg@OWf(uvZ(?%#Y+CTlJB2bs0Km?h07ZH&~BEL_e0>f#y zvLT|McC>Fh8l6aS96Xk{cYK$aTTqH+yQRDcJ)S8)EwzkOQcV*scoEPQ$fH9olrDGL zKmn2u)o*DWO-i+Kl=T)#@7QJIGR;LrChIPFC*o#lONK+XN#RBCZ5}K$*0+gwsYu5W zc{@hFNf&@0uS%y>=3d2Yuchl*>q^>Zb$)w4tO<^jA0kb3+pV(Q+S0rtUVRIR<*eJZ z9*~zaqKpeES5`ciWz}EQN#AAGDSRoX)EIyHLdSYm2$}UAm0Mn3lYL~29P4`|StAt2 z+>jpRbpwY&gJ-ea`q8QjP`SCTrvo!JPS~$1KhJko?(I(zrJ^$CU|8g+t3;55B<=WD z6YB+SJow#xPaBYN>PTXlk9PMC5AuTJj!u_2-jZCky&=LBT4v^@t6>ca`9{6Q#QoV% zy|8*L0Cxa%QcofH$=8<)Pg84brLm;R;|rhIdAs$P-abAb6+bC%Zbs`Jm0Gz5r|p*N za9^4-X3|lYD0)TD#U!1tULM*L@*GtK_fgaGAdM3w6Tj`-<^wqMwc^mUv7`9`abHDB z=gI=zCR!ard5~;deHG@nC~L5{vbWe+qQjs$NMiteR;h25I4eE~++<6XUFblR$D?S> z2cuCA$M9+llHyLBKuu}mnJrMS8GPv(_At|1Xs#$9;;?!flwnQvy^MNcC=pOl&;21c z&|F%N0gmwzYp%BKnxu^8agap-vNcpK2P^rgha@f9_Q$_ z%5;mH3Qq2jPjvCXBv&<4MgbTTbl?mfNaocAgqTz^CuR40m;E5Nq*MDx=@3!3fDTEB z_QCJI`ExkKSDGcR^{1<$eg_wv7Ghr#fUc}W>ch%FV0T%4 z>&qwq1IW1)4}$o7Q4qT3D+-3T6s}v6=Wu`spvr?#{o2RphE01n5^lHJrL>#PJs6B(U_HYqF*w(Wa981s2Bu$%*cQl z$j{|2`xFK$3NL>vurPTtA;<$*C@No4tt7r5wAfHLm=GWoD-0fv0(l0;EXCdLBfLix z7*}HDJB~e$)r8Makn$CS2Z~G;^n$q8;adB};%wNG>JhUP$F8(o5Z%5NUM3%wLB6qk zOO13L(nXZ| zmJ9Vo_J$Pl5oogf^TXU%Brbw(jcG+Z2YE`pc=rD(>>3+@gq@6T4<>Q3BKs{tu8%1F@$oMnECGfurVi+hL&rFj=RLWA2BsvRoxse5uCQ9?#B2dTQ zu+BuEdk;dR{SFq|+wFgv9oN3($*0FiY85%tz%IsaNI$Z#dnV6(jPHE^fK@o>vCL0LniS8urCq__EI1wpro zlLym{`nb*Gy8<7Z zG7BntRVE7JoB7%~&Tiau`}W2p^pIPsm93P?`bnf_ZP#{V3&30IFIv7lp=d>OXAi48 z(wcO4p*m(pBibvfbVc+EV~0vl;(KLEqwuy93+^yO>HLiz5uh5#yv%0Eyu2#WD{zE$ zmM;%`q%2M=7z=t?SaFng&Yc!$gqfaGW`7ZpC*Qzgve-Px^P=T=H~W=&hme}hP0wYL z*Mnj)*VR1k?#MWOlzWLCZ*~#Q6dlc9fBgPH-B%M5mbIsQ}G?9pPBhd81gU z7x)(r#4`q-+S1WqCET3n!j(pJEWnbKx6iUg7aNMv&%2K@Of}HzGy_&+zJYEGth`_v z)ob7DFt^80JSirrlBp1b22nAPU;iknoOb+|%2O$|xs5z=N{G(e_0+VcnDvR@2dW4ybO{8P0JmrSTjLS|#NBvN_!h{Z2p&rI2ZG*t%8o zQy@kui}GgUe$k@+m{QXFc84h|wVTfWXQ!-?2Z+(0f0O0si8Lo75ehDf-k znK{)h@^oi>*iI3J6USc)iW1c*NJcAGF!6>d0x)J6fV7d6Qu6G$4{rIoBg|5jZUdc4 zNlGX;QtF>YMUtAb8?(LKT^RUvZ`eG<6M9)_>z$GpostaXLHa@@up>^b}@H<8GzjjAC9rhX^;SzAu6LnIp{0^(ROYcTRbV8ebx{~^5ae5f{ zI^h=Qh(+P@G}*=!pHoyKIQHPkoH1FdXv~Uy00YIGaERMYERiSdc!OmjUqJa2NupI3 zio3qFQ9U%Q(<2Wo&M@8$P!Ld=x}&p!Skzwf$>5je6PON^;}d-%;&&cB7CH2XDia_{ zzdd2rj-WG`kfy%noWVYo>~kDxcg%pno|#Y+MN>Y|K&o_4f7M#~;%guAZRSTsJJgHi zlHtVUvdP@Pt0pa0s0jf@REIAN5TZ>*x@Q|01Q`4^_SuUWcfrSrW3n9hh_7VL*5?=6 zdVW=sfN*5F@H zUQ582@1MHErSMTZUvfh2{tgVl$Tg%Uv`}VQP<~^K_nR%RMxr$DPk?{68o981QU+t@ z*1Xiyp!<>|$GVjol8aiBqDmBf0*|hR?m!Y)n#`Kk7#b_FRV*rdxliHhP(9l;Z901n zow48||4#9D%tL`A(NKmB&W#E}DTNL$?cZPg6)HK~xcLl(#W9l@To?^k&VUI!k|!QO zsxzmoN>zO)1Xf|N)#)Q|$>Qhw#ng*ox4faBi=s7JJmZlX^P8Qqxt?F60m579pu(~8 z+VrwUF3=v`s`VRb2oqz|j^C!!7gT}gRJ&-?K(j*byd22|wofKIA|-+xzQkYwUx%>~ zSVcys5PQ(Um$6w@qX^WH{gr!WR(pu&bT7)NN!G5kuUCcaKK*96{0_@GCKI`*Q!um| zazLLFeCu{pQ$b~SJ%^`H&_jX(hpgbZ?BtAk-=Wvc92aUJh$v!JAmDeJeT7Hc z1&FPqh`R&MuX5ntFb_%bKXA({C$>7Fr~oC#rM|)C=$nQ}x}Pf+ndD)rsD#!~m(o_N~uAlBi(!{RJe109Ksu-43K35gfsb)=oAq!Zu#Q)QKpDqlZvV2puSkMxNLGy&ckxF#0=fz~|*;vCMqm64%3}H7LR80sC~Bz@s;lHmK`c?mO0yzBxD3;an{Zba5Dn%EH4d%C850Jb}~ zAxc}<3(L>%D|g14XP>fYl_gF@4B0ORRXGP~Gx$|;mUvM*XX~1RM|rOL?$*NYETJc$ zCaJZ~8@LD{E~n-mGH-@Isp0qaHGyii90E2siGvIRL#&ioBm&Bcn-iboGj6()VmrHP zGX(EF@g;X~%7*r519*lV)y(!4HG48JOtm?OJ!Y)~LD@GUjLVbVKMTdWAM68@O8?YY zuCm+gwrM942%4(F=@cYIEcfQ@z6X_;?9~BDX5gCHz!l@M(NF4w)%~8Az#KQhN&LqL z$xMe%v5uKZtC!2V#C<;Clr^|0`wI=88Y8<`kLh9SR32aT{e&Kkv4;io=K_y%uWlX? z6|a(sM&PrO+LPjNdHXzhZT%TA?E`x3Bsb~1oCu=>j?hY&|Gr418|%^l;Ojy6{Lbgn z=G(ZO8HO{MMMyw$ex|6Ig_t)mt^Ql0bn>15nH%dO1Y>lw9<`Fi4h7JC;Z|;-iCeV# zyHM~B$FV2Mc`-zZ0;D(;-#^DjZ_=VtsIGjPAr_i_*mS;bWuD8GNsf1|YkuZqxf((+ zRIh3Xx>L)4aEnDJ)v>O5bD>^~%+FMV>F!UWnoqZyrLMo^BJr-3iX8wREaSb7VjLmF z+^B*qg9d4`tbKu{JzsC?{eI+25pBX1evkK$NhXb_!JG`d-be-@)E0wah3V?spoH1i zV!fIO7!>hQJBHI<$C8!jg%$4R<3YO;noPTwY`RZ;*GemK62k)YP`-tO86=vv0jyqW5aM zs0odGIeX>_iANJK(i5}bTXp;7^kg-l%5$0Bu;}$5-nqVjW83;!9hcd~bE^<@8^FTP zcyyaGc)=|in=^1TJ|q|fJ45*zB&FRxaaZPgV>o=jJ{H~Ny`}AjR_J>Bk>l~?b{h1x z`Rx~yDebnC=gs@Ma@LR0?s0?ox93%LdzDzOgV%eeVyWi9@;U3yyUH^$uS4+SR&)*$ zJjHM2F;dH^>HX+JtZ@op6l&&uabCXux-Bwp^G=FDr~0y^(NKfS@yn}tfAgI1?uZ|H z(3MgpLE$FdL-nN82I&hGO(w_XMI8i?Cd9dsgW>wJ6wPUjlw#TL5xnZ&kypL5v7_!m z<;D`8eID>a`wp|`4t%qJv41@@9F34aP+>Sm>fE`3qEo$HgkYH(@KSd#(T)8c$xQ10VeNeJ2d)<7E${L=!~6AkUZSC7Xt^qKb6-svpajU&!T2gHFl~$rDt8HTdSJJMQrwTr2+;&wrQIF36?U1Ubktgn} z;?P@ZxxANRiTlRb4i>ijTio9-%&6d5_gTU-0^fK zH$J$?t|x?<^E#iFC(WIVB6)5fLT z2$Wev=(Iz`z6Pb4MGyQzBTh?eBwlx1v4X6f6q(5H>ogmQODStae``=%`MI;VLyR;{ zG@go0@vVMj%L!EZbL1NzFvvN@!g^RUp%w#Qp?bS)SRHbOocC@ON6mOPY%-$2r2PtcF#u@2xhyaYch_!*95MLOHDCg&{gK>RnT zF79Bc2Ds6$oLq^PAroD}y6jw0QcC8eU0HFcm8tu@)Ty_TBdAh4j0!#UY``AZQ5sqg zJyxn|53ySn^zDGLz+)&k1=wmbU%mGq9QVV zk!hHnj}Fj3$dORwv~Z^W-b6Z*o<^pL3&t0;s8AVMz8U>1aqG-`AeKRY*sJCEt;+); zt*P2h;9gJjMB0*T;$LIB%r~-xa%#j3`sf@mi>ah#;i|0p`HRPFY`6(rh7AgOHu#4d z;VT~hc(iO0zwzMT9?;F!2sNO9!8V|LOr^f+!YwWtP>)AJhH?h!5lJ|qE73geUyzA{ z5WR>l#0i#P08_D&k?9UroXbUgTUm{cTT1|HHQg>myf=bQpel+HL~2*SEp{5ZvR042f4O% z$VQ|-{<^PGr@NNKlwMKOE*BA60m$>v)?uWm4;8FXgr4S~?obDfUD#Pzpg``hI-3lz zBu-8#@F@=wy52~ECcczDiKACQkWx%J=Lg}IniDIPq0r75QC%ErUe`)s8jGAU*zoc) zBuH3;$o{4c=WV`s5kJFX!7wUBaJT_1P#Xq;Gkb65}U%w%dZ01P6P9*%EG z>hsPUme{CsmVxqmGok zd4h9OJUTj4RQ=^Lc<>TtK|M9%KK7wCs(kS=m-243VcE^CWS|WC+$s5=1ftRJs|(aC zckb1HV=*xtO#6dHD|!v~RA9^AIx^0iTka)nD?s}L&^flBWLJ;iRnFC_e#O{;T^wc@ zEM_zhc4HWIx6)T6lMl%msgV;d*ssCtJ?fHIG^HH;E{`E~3Zqfk$~;#7@vYb5ahs8z zT_{Z3pU9zQwIAggro7OSZf4(A9SJ+W2(?|Dg=to~){>m8lVsXd>b9=|mvkK!;E()< zAxkekLHdf|RXSk9sD)Io`aYruKLjMmJvx;pfbopA$0HfnzLb-4?tV4P3FC_vnZtxE ztCul}q!wa}D-Gg_KZvCo0yAhMVn5>A$YY~KA?nUfzjy0pQwHx+Y1!e(Bq+4a8z(u4 z3w1I1gce@AMR;J8xF%xV$6?}lPN0Q=X+B~w?}1mHayHPJ_99iH(oZ41p}%TQw#WE6 zJs9~3o;aX`>6_;4J3CyFH6E}~C{+AcLJ=N3DL}Se8F?4(ux<0Vv&JP>v#%x{ong;d zMx>9d#u*;xUZgnvxHl8&8Ry0tFe>L*esDy>#h z%((oGqf#m{bB8+%SF=WNQ=b%AP!KVlm~Ssyqd{KK+|@SKp$u#Fle*NN?+v7pPaMcT%? zl&W@z+z!@!2Wq$(g}kC>c39nGiclxH6GL`gL@$RYa6DpCj&hPiUm4>KB5vh1SMu$8 zFQKC!Cuu)Nd!|L#I6UbCx7FXSJIvn-#_{=S8-i#B<}c6=%SyF+OhY?|KZwfDQZ>es z`oLCCP@3}&-0Jc=3%qv5Qj9(Cg6&OzkTVQL7(*c`zeq1d)Hi})1P3(z!T+{7uszu3y-7!} z27g41J-6eMRPE$)^tJ)!h5=rdG^U~+Vhqa6$HC>b#^*3(5z$AmJ@QVQ{PJixdty~; z5`*GpSP!{LL-BrBHX9gCUsmBA-PKu>m+BN|b)_Us0r~X;JZ6@7iw^0}4{t!!HpJz8 z7IgbQY0P(nSY^m2b4FX^Zh`c)lSw87Rr-Igiq2*o;Y4Q#8*+!A3*P)O=XKb0MNZRJ z*gp=0oArL7E*P8?+xkJ6W32F@8Ai8Wg^iEA{w^5DuJ6zcvH!r2N3&o`f5fSX9Skm% z+u2HQ@YJ%xJBm;_HTcKu43SRk(;!`-_Mj&~O%HOXfvBQMSxOoL?!eB~<1iGUOpW2n z2xNv37|U5gN(5uCkzF&vP*R2*rqg6;4O^}9^vU2BJc~O8yvf#_I&Mu!-Sx>Ll*p;6 zp^AACE2e#8yFpskGc}*=LLLe|fDT;)Gpu z|Dl1-;Kb+_OQj%9)@ar05ae3UU>I5bg^UTwJkS`M5;BJZS2NpBfd|Lev5+)SRP)Wx z@vpgPs@4cbT8XCb{iky^u5mk+E4}ikCQrhL{Nb*%v_1y*t}n1Cmb1Liw$Ok&g@rBw zTsekA%~Sv%6i-aaCNSomG8}q?7nhZjlgyL;pnu1~lI3o&VlMaBn;AtsO>^{Zcb5ai zHAd-pT}3IAY}TaoE&9@$!ulmGvTmSW^@hPAT<|%R0ji6g%Hs75oX4^DmcLrrFjUQbH*HByORH>InSw0&j1ItpujWY|l;6u?8KB_>d z`fo+ra5~GSo3gP%(y$fBnpzP$UL##8XmSWS-r&+KEro*H2)7+&Lx?G9_?0eh}mOxeNe3}UU>zSNi!H=HEJh0ufZyAaC$>pTqU zmK1w}{)5bS#fP_|st%Wmo=j$U0iHYf(4MooKuDBEsHcpigF=)9~i2 zpcSrefkSqO6RVZ z`#<$Aa7IQAF@%nZl;UmsTV0cmqGZC}bZ9%$#(}b9f1^R~d9EIk9Lz5IIz*Bs;p>#+ zv&ZW?39U=aJUgt!FeuVa8GFE*-Uc(B3e_;4DwA3A9#?r5-DDqTX}c*r2Ge3@nNGhj zg=-PdN@k3U7QoHsQA2brMu3u> zcN*U4#&sO-nkWq(vSR`CDLw%wYGI=f{}01{=-HyEaXq0nH^XyX1ei-S2TF9@`92>1 za`5w6omz(LJRN7k!(en45c#H|H|$H~YXHuxQ!Qwp- z;C5V6qI8TUFPSi(^aXnuEQ=M!*b%}y`F9!YBHd=-8{+` zU0HIGiWbVq`h=53eccY|L&*%<<%(bH7mUCt#aE<1c`pWg564L)rlP1w>|}RVC!>e= zG}6@N3evPCR5NX>wsVF)1OUH?^%P?3iohYU(^kqZsl-SWk5=t5q^p3s zKF|p~#U_n9y(+?};iKiCzRI_A zP7#H9bxwgvuo9!9Swt_hmFKB}KJ@BfZD7$V_RM-L?9H5&#&^~I3-%s!?6oiETI-p}mU~iY{V*;Yj4*_t=U~cr?$8xt z<~S2TV+p5=GE3W(!!qeJ3ltjhs*x(fRz0K_@>$y{b|ge63@pW8;=Qj z%fuLjQkPvfm!qalqeCat#128v1%h#p3&erHS%KGg0yNF9WLj|~mNBM=l2d+3nz;LQ zebp2h;3HBO0@rN<+h zABWKQbu7UVsE+wXO#t0({WOaDcGa6QM+y+psbC%!k%e_#=Ba0#8d~3ovuQAp+vfuS zIbm&LXH-w_+0zb>)q}$BoYf1=nNe`TfIL36Fd|WUbPuU?#?rw}d2NKObCNO0-4{8^ ztln+;SVM+oeg834&V5y8VuYrspN#7QJ{Mo>SKi7*?P+;+^u4~U_D6lWaY;^7WEC|X zD>mGEfeBatW{PT*88f(@Unn$tBd86n$1NByR4ImK`bxIz5uPoS5);CEXE`mlZ;FH; zg$Q#xk}r|SmBGNkJiD}7m;Ra{lMLH7-PK``zwYFP zl9+_=!DLeSy~76AC#h_+OAaCrQ!w25NWeAjw$Q@hX$et?xs{nDujoKba<)(hp$utL zFfrW;CVt53wXTnoWUyDrgc|OX;`7xyr1kczWUuZiFZk)d7-*bU4OqyY&UW#d2Q}H; z*PhPK5N!mxi@<*v&hc}I(hR0&Wd6#gJbJmBT;4&G>Cg+8N)j z$zcS7JeATyVz_97%npqjh9trm>ag!B7z%+13{4X8P=$p-VMMI5tJF%^RMiSKhK&I52Ircwl{srS>$%VQ3}c3;_9_qn2*xXL@s8^Mij3K#qD*jm#bJysq@HCNq5-er0r(OYB~L?ncrh=GqOc;a;jO#8 z7A-SZB(_3uvXTW_AWrW$Q@!7~*6*eWrf{B%MI!@aG>*p)FHmXYH-2mF=}tv&%V@8hx!g~X@8(d6S?aKTRn6viDp^>72_`Jd-g?i^d)hTzVQ%${q$e0ji8>GU$^WR~>4Q zrYQk5hew8mmzm9K=$4?QxR&bh7=@~;PI~uLn+VmlTW+h)An6G)(;qrz|Hgth>B(Dz5=H2!QJ$x-k`eD%jHjO-`ldi2-JxCdIxL z=yp1Nlu&OrH)GtLa2;;MS|A}`sqDkeu?Rxsqok~1n%Z->f1>VLzC3}t#)}E;@lU*I z`|qk`_4DTHARUcys|#p+Cv?jNaLfU6YzyZ4@eIn|nd4D(SW0IQ7t0^&9+Fmem_`tD z9={S2r+qMsg|oEq$mfm{u5Rh3?t~VDCKQIeUyIEYdQ-=z0;j%E^$;P|NQ1k7^$39`P_wH%6rF4tx=G4T3-i#GQvw~FBE;(zj?j#WoE=G6%cMrA8{Ll`@ zB-m`!4+o_zfE64Il7;?^1XWUyW}f-f{DRyN3eRWOVxLosLC)wDZefVjjJI5N151&p zaLK&r`=!OC3P3&Mb}&u!Gm()&?Fd|qDz_O+u~2#Evvxy&E_m#G5SPtvz1i?#_7;qm zD^uz4lIVwP3zMNIGCut^kH_6o=`luop3yzf0k!fGS2>W0_yMcDOHJWLF7D8g8|vZI z3=A@SK;HLsmW9)>2+i6QQSKmKosXa%0``PbzFPGzEL1VXlVi|vF|=CnNqS@~4eO7h z-9t^4?_A$kD9#0tTA6bU@Z7;?jC$x@c=;%yT^q@L2pp$AMq8#D6iS=0AQ-%BBeTh2 zaT)=+K_8cQz@8%7ZwoS6)oe^PnO}x!iV4D4SRj?yC0`zbZt8sMlnJ|56^QGfz1lG| z*pmr2{qntKPeZ4WG!#csZW@t@C3pP$l$YXCiG55U79B1HEX-Liy~#n6ILtx=)J%lT znQ~FY0lRKIaYZEUgfftmM8!nq&%9)O`)pA(;O24SVa9qvLY*gR^dL1FAEg= zCH%a8M)g3eKcND@XjL}S``ujECmbHrW!@gTm%{Q*FkY-`Vz`Lwv`+5=6%i|GEA9eu zVNCgJ9<-^Yasj{_W2EF{k>df-e+8zet{J0oIGf)MQ+A`CWUeP5o{Mt0Y3{|1V{U|N z4{-hTEDy3EMA)3ek=J%+S7|S~@r__NFnOeynHYoG#V4~N*Sn12yrNF7Z?fqPmR)Dk zj@YA#Tjl*oh%;#KA_B`1sofArJ;#1JOa6lBHx9?*d+>WfHzeP?8hCRp!*K@OrKDV>IAt?cKPHh%1aL$4A5h}0B34(#{Wi*5 zt%{pkD^d<*99~n>EQk7zuu?(C8zbmEV+Qw3UP*)aTc>>HxT93zvI>KL{jWnBD!6`pCFwn$GEiYSv5m-5cv-L|P?AxV_J^lBa?v7x&aYtS z&(A3JMZPLSSz4OA)nZ6WwJVLu*1Z%@aKn8Y17vJhb-wDM=kKy}8yoa0p4pADdVL1j zK`i0x#_3pVQyo!X9<-CLJwwiEY0CU;vs=4hxV!RF*!iLb@nmmr{-B2f2ehyzb+Lm~ zRFZjeUGL+Rr41Z|EOA1#rz~K|^DY=UVph0UvgBIoI6mKP6!F&N%%XF>1FbIs)e+R2 zX$*vuxA>E-lW881acbknpL93LBZons#0D85k^P~J#}S4yG}#L-IowgI;pUQ~^Z zykqI$WZ~rrdq*BbVQAptblm0fSM=rs)?tU%wjUdl&9lo5?yTHk2k7270xm~@T=}5g>L74{A|@^MVo^q-*krV56&(aL zD|7}?>nA=sc~$-$-9X7`(;|ox+ctJZ%83V-bpbn2Mg2@xOd$S`V&7_-O!Y5;cAWtS z7;6&nEuAM=P2h)udgYlUKpKE0F0Klpl5=UV*x-nUuOED};kOtETI-N>yw@Z~wtnJm zcVJ6Bz=h~aUZZ@0rVRDowTdAvz5*to==X;uARHdwFla#)s1Yjg+c8Rs9?YU>i+&$! zK4#x}=D=jgD)zS{drSO>}hE#ZQTf;T~XHYXS%3MDoR5tszS`023@VPDaO4-iUhUz(YxrDAOLZ+to~N`$Z4O+14`7(4^_S0^|;D|rq~FCP)d3N`RZ zcR{S~_CHTdTCqqgEh-$Yx(7-+{LFL|Sk-qzN6Q1;;7t>#kh=l{E(ZA|Hr_*rCU0gN zrQZ6rM0(zWrb?_$;-$B*@G#HH#AA3!i|$k({Nt0fdV6h8K|1xPlGJsbl|C=84D=AJ zB~eUKO8jMQRv?0c>n(^qeoB5S$xFygA!<~<8YK^+4d3~YQ-aVd`6vYWT-I!S@(_EV z<}-4z#VJ{X7?C_zS{syC;Fe-=CSjVYV(IPBO{<&-jiR0ih!EQMQA!h~3;Q7l8v$~7 z8e>pYYQ;h(=zJ`H4p^8$=Pf385p%mvE-kZQ5z+z>JA#BT)!VA$+|ay{GRCle!-s8? z0{{6kta5d;J5)^u{MOivPcoI5w_s{RhGas3G!~!|REUi8q4R6ypjT9P5sV!d<}U&g z9&Q&v3-ZhN_Y0KK*}!D*(*_E{2BV`S4%wbT{?cnx@rvztd>R#dSu?{T|oV@r2kb!f!ArVp@*xVS@=%khfq+E zxh5eA){O4~*1+R4;`ZB z+NxPxif(DOjUS=kcQrqsasDGM`#+8=(ie+lPyicg4Jgz2#hMlGM^Re^u=J4;D zKkp+ypVr(T20uqXUtZV`D>B@#(r-&z<29eT^TXBycLH|{)*igCQ^K7s&B3^Azum$S zojTF@dp;Du$Y13LF7!yZXYz5CexAnmo-UUjU-KzV$S6g86uSKO$C_RpKc=KN%?TGe zUeEgRaQpzsgzo2W6;P0-is!K{S|JC86^;U69uATd4dro>M_Pj$SbDjbGmtqC4uw{p z6x)#wmA^&~YDO?&tG|_>kIxBVI=9od`y@37R+@jT0^RAZtG-peS&rv?o|_Ez5(y!o z%cgdKJ2$W6S}?JL@gb5L7%lXDx1Obqc3MG$S7L{BGO*0UUy!cro>}!T@6jC`4lJLy zPISLmGYNJg&3kGKQ#Uw1Q^PmB-YzE=+f#zj?Kd->6$RgUc2`sOqP+1H*D^&P1{O_j zCiEn|J4*EVsdOy31QdPzeA-PNU}l!8zSZ%pe_HSfRd;T1O(Y8mIuC!3c*mU}5|%#! zy!<=fyER1Z-%0t7QUFg6T9^@|_ba*HO>LQRJIs)|U))=J?aYpoe4aRd=Zgyt_F3Da zJ|koNtel|*J;9j1Tf_aj^NQBH?8_rwaFmYcN zh|n|6348fI!?<~84pUk6zHtL?(ATn%sn&Kju6D%htQ5|JlnxDw8iYzY^ZnWaWw;RK~|CHl7n~aPwy2GO<$v3U3zh0 z#C0+Atiy8`77J~MWifYOb88g#oYVAbASrInB=R0LcTZbKLobw=HTYw`+yYG!9r@W? z&tLED$2*IFFXP|j9KWCAWi`jVys6)LT2R%pCdkoV+w)afT2%^~;HmIcs`)+L(tP z^nTp-{(WNFx~je?2v$?$~yz%qJ?V`f;hGf6|){5G~%vYGb4}$00yW3p!Vy;QCgmY*1r<#24IaoWpip`;Yz({|6tER@& zL~)BYti|1(;x^p8zhn2$g$9d8T|^rpBwUUA4n1r=yK8Q;zOBN02Zz9Rn|s(QSd=ydo2IeF1Ukevf%ywA3vP#WcePv;>8Rf}K8u zU54TV(%KvnN;v-&=vOlk1?@$Cx|^x`-FCZawp(8o&S9Td9@X>G3*a03ejqg0d|X zvn!h#38D=d&ntiIc7%y4)&)nB6|ICfi z;;Z$%TlrI6Fs;;XAmp}mA+|(QOGB{3o-=lnpZt!2m8-?W$pi7=1#}@#;zCxKa{#Qg zmrX18_5Aspdd7rA(HhM+#s1OYhfZ*u$9GBhP8rRe!t`zi;_JWI=WF-RGk)7s#f9R*u9b<8KP)TG`0)=SrjR1TT((Y>wlBKIYUp)$L>@w;+dO#)>9-pf*_*M`lf zlnG9bss^Zz>2M`(eI9f=se zq|Gimxhfg-b!{0j8lybA(a)a`$-ZXAnq{dwXEpSEDS^KXv1`_i(GSK z6~^MUijzg9p;fWKI~fC-DGL}mY*vieGgVl)Lps&a4T*}Bid%uQG&YW@E4I>M z##VH5(Rii(J8QVVdCZ}LR)i6&!z&Ej=!o2v z$4Iba=ZBA(gj^JFr!7lNrH{ziV3_<$jzlJ`zhzt#_cO6{E(5?MqsUHm_w~=5aV4eR zrQiaY*_vQ;Bki^?sjv5Nj}0pk_G;Ia zIo9D7$t2>>n;#_XfYHk9bs<;xHkYWhYkYJY0jf>S32m7j;c}hY$B6Du zE0DckRO)^=DL1R4kt8LqxAM26h}{)Sc=Szb84Kp)UbSFYcK%$Q$MDbv#j35<2xpta zTnN4*?^xt_ujl3J0V;>@JPb3X%4faQz>1A4se-Qw6gI|yty1vh$Ueu zTf&;L_|qQmQFZuRk~23mn*+_^#|g(GGNO(=Hl#|n&i9#fQdPw+bvG7TpdodOFgh;P zn&CZ^kp9RRd;~{(SXvPI7)>{RnOv;dOm4W$!jB9?W@1(0H#nD@)d(W#I)mT<QV*azsoy)2T+T?*nxF^SP?ef2*aED{L#G}Hg1))-*F)T0pmq? z3MxJ$P7RbVukmLhv$(>WlvXDY!@<@W;WZvt zpi61vT6rw!`l(DydeHr)7JL~y)(01}%CFBhY8-P;p@nuH*4lT)s_@`)frh79J9Y4F z*<#mqzIMkxt+dfU5}1q6dSSC8NM)S&OBBJDxG^EqdNPgmqSECvYTv5ucbfS2X%sYRaJj%EpQzZ?5<*kR{}O2^7TxVmv|^HtYfQC1f z$iPUuvnVXw9g7u0Q;M8MD_|5xKAZ?!&NnhPv4AI?J{W_2>8a8`Pf5xZDMeAZY!Jbz z)CIA{LI5?>i$&@(yi$$^9zK*$#2!-wxpd?WPX(t|%v^P9KY-{&JGKBFI3GI?e<95t z4uRMD#M8KoA<5sy08MsAi!rz;7yh^Z*e1u}OWLV0N8NEl+t0-BFOu@XGFu`0%Sjcx zQECx=YNz@-NXjTVs1m-lcp3BaVTNGv7XK$kzF*3qB<4}NczZ(yYsYZZm=HyT#Tb>ew6dmUWjn^- z3~x8>xX|*ihSU5dG~}!mm3-)A6+F+Oe&+}f46G!UlAW|4s%4dOqyB#AwvB<1+wHf) z;tv)L2KU3?`Gwqlh`0TZz|x922ZUOQOgRPcGP?wMhOu^z)}_T<3m{z=PPx<^rXpOF zf)4~D68@EH=qS>0!yuOepd7!la13AwBAp%kHL!N6{*H^>0h|eT%r&4Xk2SUz;CYZX z^@MMCzGYZj1TEsPVVkVNREX#)f%L&Ar$5D(kX~#As+DQghi_LVy^DeiY|!J^Z3(;u zY%}yy%{Qblh;xLlz+=jh?wYsxGqB2CX)Hf=#MNjkK5I#8l5Q?eh9C}C(jiBsIa5=` zGhAyD(tPO_nY|q#av++&bR5gc)6~J&*_ia2_5h4K;XLYm86}~DP$O?Cm8TKTj@Ain zSt$l>r>V!FyA`6uV`a((V4XI$COwkLnnSIJ4+LF{&SoTOkian9ql#k()EW*d<~Jj~ zX3or>dyg2Er1IMQ`w^2;I+xJZgPyCTvDniP1h}4waQb4f_=mz0Je~ha#^%EzEIL0k!{A)@zaz!c$PE4l0LeZY+#?`PZhRm$=~k6Ij{yID*8aATIZ-9X6p6mOt5fQgNXj~m33Ts zWXxq`TF00rL}yih(Omd`<&n1Nl20C&e!#?vYa~3|q9KTd2vO2oI3;VUynxqTtwlJZDp_9p92Njjn1*p$S2W@rGqdV`I;{WPpoi6VD+_&E(dlm^Av3Xap^5Zi8Ox-vFoGE+k0ye`@!lk>INT) za)vDyqR^WNiS&&cZm;9wXY^ad2^BqRQmh`DmA~_0*o%fox?|b2oxJR z9UC@Aj)5-+h^LYX?=9{{_B$h97}-fA-ReH|5QmSwCWmX4F$ddP+Z>+WOu=b)TLW>L zG#JAZh8ZMzY8mUv91dCRUUk;8)-v`TssfsklnJL*Ch~~V_6Y0Tv_&Dpp6cD0b{3G_q=4KjmtrC|-`zV-RZrOX-s75(u_+$?z8=c%-whL!H(9gy)Clx!v2yr*h(rAx zz6vU-^L2WGCZ$?s>G6kXl(NMxUi;2&*oRrlJbre~RrA`gTH7avq*@=?HG+v*4ZS@t zF!AU-NOp>eBOVJ4Ll0^BkB0rHZX9nsvAO1&$w<$#RHCz!mC~@KM5d5x9d#Cu?yzP{ z(?3fgrKuHEcK>!hCK`)1Dn9zW2GC1q28x+r$bU6nJz!qzE(CkJm_-xsAO_#k$QW7X z{l)c6vv4d-i2&VvT2`T_feE%038Co=7{l|(gX{x61lnbc3-{s}a-s{c?D>(lQFsk1Cb%eX791CuAF|WHwBmPa|w4CFd-)sd}CThL@;D5CbD=?g8yc zceKtC`Mq-uDKP{C2N8encVV&oTY$3wc(>5j0-#6jnE?1@--7&XXDKfL?!>iJC(UeRXDICTw+h)anxM91(U$?$6pxM?2+QUd)U zmag3-lVpwcpG7Pp`(~I9i@G$GhZM4=R384f*K6V>lpC_HAlIS=1V?V%o7gDnr;P@G zP2PZ&lmGkzKBIr8GAu^Exz(kH9kfP^#JL_5K`WsFYse*&P=CENW;Vp*YS6g;-c9av zD!Sa2uR7@{uY5y{v>`TFGAWEzDTmNa31srXy?KiMbevNBaM{E1pKZ=Z(V`4Yw$C>x z_=le>uXD7k9x;R!XG+lM=1&n=2SXCLYga1C{4Jo_r#>8@HMWw&s>*M#*|%~rxnKPz zjyb_{CTW-|@zHyXt=yT%d+Psk-v=q#x7qJ4Y4{0RI8VR7IFrb)98D5%FhXn+&u)W? zQAqY$n=xdnE*=-9zCh*I?iFf|&p#Mbi>E1p~KrTt+g- z1*Gtea_<7O>_N;gu%J_6d6Htu4yqGK0sE?n0r={xodv02U6J6$sB@@cSuXnSA`n|4b7rGZ%3l+Qz_tj0sujK$YHxu{+`)$#k=>VKKR%hRTp0@ z+ZKi@5#}WmN3rf_S3e0@NFCvUsZ9tU0cTIkR+vF#G2a&Q4$Qizi+gYPGAO z$AjOQP+>(JVzece|E0oEc5V{NpWi^&-Mh;d+87u@jzS)PxAz*2M&_&RGpRn1Yrh$7 z%Sk;fPd0Bjd$Y%1$*@)|WF|}@=sUui(a>n)-Pp>K75~PL_@+_;rkVJFypA$k9-6q9 zWC(|}O(i)v`4w4rzC! z85y0EAq}YNbKi-dwNye_eI0iFw#5}Mz~8B`;fBD)x_+Kc)VO}zzg2}0kABLK&c~A| z2Af|@<>Mf{YSZT8vwJQW-0UW76~=a+|7_0LlrNmqkDyE7c1(T($?Y?IYECGlzLchx zRAbXP39JMf8>}!yB~P;-#30JM@T_m#XNs|`CNw6003|Mg+zyNLMY~hV3bNRPLuWf- z5c>^l8Z-v(!SjV2aB8>@rv39QiC~++~KYnrxPzl!FHp^&|OsAN>vtxUt zzse|#dEuTL2`gOgp;|zF7PqXE;gmprkYSas@E{}ZkBdenTah9_RXD>u#i>Hai5st4 zO44=nu^rw+K;=cOibfH6*2#}1a=phTz?JXQkKf6Oq{(0K{)x3FC9wF#|26QkC#2cw z+}%XWp@l`*Y5!uKg1Z=v>K&dIdUZrdCFa{4SuC8h{E1+Hnqw-xC^6YgSzZr!-4H=g zez;6$@XtD^s#`y`>usm;M7{`;%&AvM7HsUe1<`s#cF*k$b(Gj+nH1zi><05|!vkxP5n%Zb)usNC^4U7&+H_mmR z56m}BNMwo+6{HT49&O`xfkO-Ndsqo_eQjTT{h*O6l*iId#dOVC{c4}sC||l`dK667 z5#q~tKylnFQC3S?cI*@%uWnuN*02b_T2MBe6_nuCo+Yq0RO^dyMj)oC0x1gght8nN zn&H@(vK2boJTfMOZ~Up=WSL`04L??aV@Lj$+?*(<>93j*GI7Pco%HcitTz&}l7Z?3 zjA?#Ma(6f{;!PILPG8iN3sa_=7i~cXvrnnp=yvIOz_SzbRABP&hKz;Z9%I}AiOv@W zlhODxrVOQMX}Hdd7|*geN~*MKbzIL4t}_A@1DK=xAh;39Vr|ZOk)~czSm#%Mo?gLw zLJh&u-bu`oec9axhOjMsNhsF5pbsfNlEbNB>d$5X?3L+!p#*3lRxx)(#}f? zgLqc1GRu^gI9n2Qw6@|$d)yZ2#Vjl^<{>$y=`48U6G`4P*i5KPncty*(cJH+N6wuJ)XyQC3*GeFS~z}oyYAW%hOZ*8Q;@o|mG&nC20n)| z0gs=^M#D)Bs|uE)=Ab$g^K%c;>U})4F2XZ={>9(Xmr#tYb@YLM9{-vwp?X9GB5#ON zJGj=8rsS0Eps@TK!`sPxP)_uG@;H8&Xay2KSwg6qDW;BOKnxT)49ck}d6=37*A`3lAU zE4sd+>f%3K(7xPE;9KeFM(X(3yTtlU*2k)*&zG@8o|r9Oi{f(FnN1et$d1OMhQ<&x zt010^|Cn;w|2}fv^~YhAHKEl%()ce4N$Z0|Af?{#hb?_m5XO}#pi>Mz=K5s9Y!7Dgps4QLv)Gh;BECon9sjB-8d6gq9C7ncp27QBxs+K=^OE#@SMNM*G=^ zbG37M87)17&iii!Fu>xfwxEZ2c@xWIoS1<>SXDSBoVMDMi_hFxg}9-X-M=LORvt3+ba+6rsvg!&vy3Ub&odIu~?bFLk znGhT41@4~Hz89hUm>BXRKERYele)G5qdGg&6JL0!ySmSwfaiyKxE@E<$f>snO0%_I zE_X*oPIS7fX3JpMGDEyAnXWvuP1bve?o)L{QgHYg{!6hzzq=+oO2@y+1o7 z`osgDNYy$p`P3lOh*JwwnO%ZI4`@5Ukl%C%X&Rel4HC(WWfIXyzAC1luj`L+is&IkX*fobp+0-<_}Khnx<_}9D03v;F&&4Ogi5$u735A3e%o}=EHJFN=A zQJsbbZ>KJX*z}TMCkyZg#qN;r-4?btSxEQ|oYSMB$i{FN`3>z8l9b%@qBMZ&btrV zh1|tAUtrAu3LLhl<;YjMzcds4xlJhj2svucbfHt04Srq4^L{&L2B>11;j7;CpZR-j zpk%uYSxb$~?#o-Z$i8?02zecx`u+<1BI#ZWy>EkmG|Ek2z^8p;%vN{aJ zcvV!44QnDwNWb8@@ARUqlijwoqPAfA#RDZawQEH%&U`!z8dq#H@sZ|kti)yzsAb3Y z34)T(8pFwvwq8%jQBrBX=Jx?Px@VB~ena?Np#T|d9fzDD!a0nQImPile3K2Jpyl(l6|nG zj4qMd!M3b^*WyE;YP%7j{HhRl5!B_^kP++~H3M=a5K6VGFkteF73qz5kQ#fS#vdYf zh-ZA+M_|Uy#*F4msq^5n`x;SeWbrLW%zZDks!Nl4hJzwCT_O{}q0 zS{z-CpB5_XBE3G>JpidAu1&hsUgb0E3826ZGGECMD(0o(EeR_Xu<>s;z&2<5=$#OU z7SSg{DcmbeNXXIHu3T1a!?k)k*2Co7S^yXV>jcEf9wjy+$+4$mQZ90zKt7K@x-fi* zkS?q3bHq1%86%Ln6NvDl$?VE^`40ISS`j7D=vT^Cey(POV2U{T2Up*heel+*n-3Ho zkk$~>$*?qBI}k&J}eb+Uvz6Zu?n{$)Hd@VH&wfPNS|M~#|g*n^B0~8>M zKbx4!3!{B7+E>!szSxY}oxN!baRa#7sp>b6HVK>?S2L&5fm}|slR6<(xp5jQ+i{+&^9iw4 zyVJAR#e^Iz+JFriM%ktK{Kv#62*_;PEK^&<=gXwgX9taNQXa>@r%y@>Pi^%3#aa7| z*365X)|<*pJ+IHRG=3M*H8cx|aq%%6zs4?+kBkqfKmo84-+C-f&em`R2L3}KJjMpMxC&7O;ukm3+0E2vztR$BCrljCPpDxyw9W+?dh{&UQTwysL54QwYu*=jGt|{mg7$d2n))6=r zcdQih*+(qh-$~oK6{AHt3k}wJ$1yUZwOFr#DpIz635{Y~Sse4)7n2}s0M!A?@AvB@ zIb0(aR(JRi2C}6el^x*+m09d zTf00L%D>uk(T`z{kWU{x>@(+L){|eJ&ZfI9`gt}TWma9M?K^FkY4xY(QW8O%3piWa z9q`!So!sUNVevD$o}?)HN~gsamj*gb=DX24pSi*0sk_drDn5qh)CBrr+4UCwkS_aF zPjFTtxs;x0k+N5yy?2CZZG84#My@<@#t>glYj76U|P z^4~^$>k1GxG9cR42_FN-X`Fg6b#8`Js7yEN92Iv-_(y=wuMM!+kh5Egs2)J`KaqvS zd@NCr+%oFXgfS5oC1op;T?h7-?ZoLnkU-h>B5n;A>;0M9Z|#RJZt{)G%Z+;Mjtm~O zYG}JmRLIDsKI`8Et{O2%{#XP6*Iu5(%5&V`{e~0^ANelGF%|=lZl~O~Jb_Q%W~*Zr zE6d3AH227x0R49G*e6k^2+cQCp|_$t+t^PAx+L}4#-&!UrEQKI>y?Y=nJlmw+~^FX zhHv~8XKDMs`jI1pS)1{9vxslf_<2|>@${QoIqfke^*>{^)7xw zwTNLH)a8uw8A1HSj~&8VdiKauYRZ2+hMBsF`ZA>IHxWdv@v}V%dhT*9guLO}wS#o% z#P=9l`N5HTpyArHUtBjX!vM1qxk)!ZIRSo{#o1g+sO*oWb(T`xB= zokfDXv2)U418Kwi+?}RG{G_tVD}BX{tq?52R+60n_@aLWI@T8flGRsXbgQG>h0JJv z4>^)$lsZzZk}jX#P7-tiC>@HX!MioAr9XDnI1a#*Xa;vbs@v!6k*dm?+=U~cqEJ48 zB#ib}>bfqCNTYn0!%7(UzyN%3_@^-HZ0|{Y%_-IB7DNdq~#Q zN+CJMMDa5ZL4e&;B2-r zmOEz)PFWK({1(gy=Uz{G1?%28TVF%t%ppQP-zkCP5Zr^hA`JnDnfugKhL&@W17b>x zh=cbENm>v~G>dRG1N)w?teVz3XyB@c#D!5-&()A3=m8j_HF116$nY2XIZ)f;^|Suz zM>X?|8DrJ0%@98g;7ma$-st5RX>tarZyfkjmcAOSMO+Yr5~v;eX>EA&t^CpQ?X3m9 zk>4;ta(BN!NA$MT4M#J~wf%$pNmEnv6MY4DO5o6NcqN)U$F-%O&hZt8chsq7`KNNT zO8MANkScP~Q~BA&Nlys1C597%3wZ>m*l)Ml6Ia27&6y{_%NHZam+q$OP1_xu!J+gP z>D3cMR$$O{)UAE%Vx|-9rS+EyKkjA9=lmg)N=I@Y>7sY*lr687TNc&1QP3$KhHle}uS4fc=MSt}2|>$!Y{VEH_Frg3G6UCl+v_d)K@xBt&e&(Fio_Z#8QQ{2znivQcs|I5C% z`iBS%B%@L31p)%n0si05k#n&dh-t_(2#YB(x;r@ASlL@J7@0cq$6de#F~NoWz;=u3 z=gm_5%QGhhXQlTj{2kl%^{>ZROt!<_7UFl2ajmL!0aXo*2nJ=z{`ALPh~^Xw z5n8d#Ge`&{i$3HqsTIXU=T%${UC|rZ`5kN`PR3_$uHsHtY*FL+_DG-Eka~{b`qF73 zp;=C(rl{*Vo}*|2`Rn*s)%?K^=E@T0|J2EZ9<1WvpH8*^2c5W?{-aLudiKFgaKSqX ztwD@P)CwT*rNUB0vSi<2XBu6;SJ2vb{n3KFCW;T-ekbfPH?CW6tJID1ZS~wyV-3{) z76mVL-?n46XZq{MZumWB%r@K3#Ib)$znV%iZ8wU12?RqIRoY6(r&hpRi3vtMol{5> zFP5NlASAcvi3HM+7LfrI1K8p8sJz7CLE3thDdVSyBgV}`9+6-qu57_P>c@Sa1ap15 zI#`_x3a5-S_88D26^qFH??pk*+06&MB|J|`=ISJ+#q z%I7zcVkORE7CH?S(jWQ)V(&lmG|-a2O~L=r<>j_xUBO@`|AN&<_{;zPU!=X`ccsy@ zE!^q2V|%B=j&0kvZQFLo=-BSq=8nBPwryKC_kHgezx&~wFX#RR&sg=;oVBWI)vQG0 zt(_H1gn^Go%cdqr0q2D+DF*_eg*O2**wx_!fC=)4AY6b{=z=}8!U(rEPG}=qQF0GncJ#LDZEc(88A3S8_Iy<-9Jm&h^E$+9U zkplLv-865LbezXpj&;DQ_I>dVd2C7kG9&z6`XyDsPwp7@n*_5)U%t{5xVC{3}~9AuhjbrfC&Og0+%|*tu=fAGvGz zEe!p*S7>km;%hIbq)o&kqkxaA`K&hwVmJl~mfnrkKVl88pJ#@8#t=c;X5SqH??90*JQAvnpCHkSj7|iI9qX9#rY2QAFNn^(X;-677pdt zAKUuz?VJ1;{g5h&Dyzzu$4>w_IZT>W?77o$rx9?9p&lNz`#P1wd8mHe*`ZW=`tdX3%5 zarUUR@WS`X^Es^)_x@r`I5$cy4`j}dJ0Fgz zVW%KQ?REhjlAmio@d+cM0tx2HoDwM%2mfmI?Lx$^ijqSw;PY9CUe3&oIH`59y0OEv zd*t<6Fz7&8mO@CY*v_ed_u&{Z_=E`3&4;klC!g$mUkp+IW{(_PPVK-{`ROr1r70jqJ1uG8$y|q0XLLxT41|e z$yn{WZvno~R>65~5r*U{MTyKFiO^lH8R+|!@3pZ-)bcqn1p>2)wE{$6wd7GNcvK2xE zeBai{^~+%F!f)9S%{2}kguZK$U2MnxZKEp@p)&gAt8_0om|^H0i>sGG&6`o);z?~D z@mvQgclr;O&o|`{sQ-AS?Uz>?G@-U5gMa(RkNp4Ol^p-QSE|cet0=6_*OHs>17`IPo;O%xwWBc zV@-vq!KmrWWzH_R$ix4fe(V#q3OfWs7knZf@zE0t3R_0V9ENO7i&P^I{gnA$k(vz0 zHM-1H(7OxP+KbJYoaQzWPK!(Nx$kMKvJm2MZL6Yng%P-Rlp{y5Q$of> z#)fcCF%*CiecE2wrPUc*EmuL00dpbSw7W6L`|l`cEG?KNF`MB$J8O%FIMu=T&qYjD zHMt2h_N-lum0@b_oxyaI3tm!mh|b^N_|qG(lvV-E30wgNevDq%Tp za4os|JS=>#RGiavc|djK29yV;8Yh)jhekggfSe(okoEc@Eg)6FY5zjRmd$m6iF=+|48timM5yK#s|`UzH$pHtv6#It^{~) zjReLwYlRusO4p+=&zsVbv8j3>cb-~QI(Rtk?%?ZPQDt_9Qa~J%$H5F`hQiACCZ?S< zMo8MABd_H!@Z=J=uWn4SHA>Le8Ln9^^ctM*7PpF!5B{a29(6UXgThyQJ{n!OYuDy# zBDadhwPACdGH$Rk$Z>T*~Q*UG$c(OY8|6Ggv7q$8Jc*_2|Eyk{`?}xZa_foA6Ud^SWT1%x}LRHKynRY1- z+N1}1YNu*1dQyiN)@t>mtrY;v_{TMgIDEVAeeCet0#t*blVyK%whc^JVL-TJ#{gBs z#EsJ6mj`^FBUN*F{@DpfL#U%f3to7PUtw0zDq|AEsy=Lj`*Y)ubG z2oh$1wZ>AvBW-PZH9GB5y^IE8jF~!dR3f>2&55;V7e?`Lzhd)1K^m_(n*N+;X{}aR zVA)Y+3NTI*ocXTC^P?I_`L|Q)McXKkz&2Y8CKBZlY~_@PlBaRnx!hTXY>HFq^^dcz zjnT{>Z}_0h$P?Vn{>BIxiN)_?OLI(XppH@-f5FIJ8v96MK(N>+et3d7yRm9SM z<_YhGE>I=psrT~JQWC3b#Q;C25DQ!$>_3>ZW2wL?wMtc$h0(hTTnu>qMzkb1fJ_t_TR-HiAs;XMqZhgtXB%ih_4TboHrS0idH5#vgFo((8T%lG}Q6_K| zK%9XK_d(B8w3b!yhoWKHQ_x|Jrnd1b%5Sx6&&&X}|HOELIE#Fj2N#&X4r(K@;hLZx;X%Jm#+DC#wc|yGCEN?%^2mvCBJCbN+8VYPbgsCw=b?V!a_13f5|81ZH zp7ucCbH5~~k~P#iw-Y%XQC$wd&`qSJpYFll7U;It^Yzia*;g7%^-I_k)!~tAiU9BR zTawH12r(?}R1f!*-UQ>QUe{Oxe=oe`h3E>embs=D6>QED)ZvIEMx9osm#~bP-G&6D zt*5}nCF-2-%Vf%_Ng5NyLtn>cLOk=Hy^|{8?Ud4==_vGr`n(}KKU}Q){Qe)R`QJGM zdsIfx!q=@c^?#o9GBb1jmpMcH|Ccj}ekLphvm;YZ1*gpaB;_GPr4NNyb?0xkJob6n z(>WY_uXW|OEV#()EOiZ3P$&DyQt z4NfCd@;kouD2~2M2w#9{5`g84ULoY&2hhPdF)^#|DaJ$F=g%ipi79*|R86?TiOz`p zlmO3xR3k7j4qXdShv^(4h*xIE(ZrbfVHg-}4^6wJi-0K)+r;T^l|84h$Cur7x{TH( z@;rR$2Y({Trla*o)SmS8&SA0X`v8(s=3}Nmjq}&G_^BqSpKV_M?B@@N@RCqknd{0*n4JoFBCC@wm_R9kb{4 zvSssZQm&b8m7V|fGP8T*o_1xlymKR_Drr7%b4r%RCC$yY+;;2e`IWOZ+WBfJ@l9|& zt8&HcZgrVOE7CotEGg($=x^E46V~g0RZ%fE7o6G?V!-U2)hKSn`julrS2SSzu#5On zMXh_{E!CfxO0(-K7Cgh==Gtx5sauoN1P30Rr0RN#?L0OuH$vkFfDjNGp%}x^eEGa} z_qp80tT5O<<)UhY)9&Jz_LmSIwqMbj7Q~Sq0x2s}0EpS4JJ~#y85n5-V<3J|?xbA0 z6`UfE;U-7>P(|X#DT*R!zm5wjz686<*#t#PCC9NjHxInWT&{fl-igwDn?ebR=5Z>h zEuCw0R9h_ud~Wkr1h<)wq9`sEndL-pXDQEoOsdifb;_BoRpkZSVk-=`OZ=@x-OCNj zeW@kpJY~7W4q_{9YeiJ3HsH3$w{b-m-ytBR$yAuHF1K)1UD`D{WezbO-5UI{0JCD% zcr4*}#q}t}L*LVe#eRu7(+G;kS6kQFGpPU^3)xTYhi&RWdyR{vq8X^miovcXHLGuU zajbHy(9S_q@%k32aJD2>iSwGH3dPP@N$OrO=hM;B7X0uoH9U;@v(5u&`F+w0`YPbJ zbhXvjTRa=zA%XfcCqvDxk@iUGG32UV%O!eyrsCO2vJ%eHAp6cPw;%mcQgBv|;Fbce zN#Fdu%B)zo-azMMJhk6{8m$! z>t!a1zh=$1aIeVFk@u#cl;V zMHCV+ODn*A$D|$`y)C4cgj4Ji#ahXQC3DDm>Q(ukqn8j>gBps19COJW-i9wqX_wxv zn6-dmP_UnorImY%oaeCcCWob0oj3oWSDh8z=CH+ZbW1k1fxy=uG1asygG_|@kn#)85H)b>cjs>C_L$$|aip-;sifTz!%KAMwB{$YcI zbr$fgEsj5hqR0m${r+kzWLGVqf`>4=yp$m@g*t2EpGYQUNGNn#59uxLmb_t*CFE@# zD1J9Wrhh7&AK<1pJ!p+?;v+C+9AK}bVP+WgMCFgW_cgy)9bjh$)2lA|{_vTj|Jnac z{~z*J{vvPVkWZvBzHi^O8ve&cN@g~O|4LuQ)K|M4vcqYw2k5*+VnJH0$C@$puO$Y! zhO~NHijk0@SvXbRlvXee2)A4sPH}ae^32lN^Ygzc>nHj^xklY=`H=_hKfu2In!27-vU&OO(bVYsVR7{iI$8)t z`mFJB{UEz$eSXuU?)ImjMCw*~La+WTzh2$+pFEs?b@zAuj4&eiIeI_bwfE(#dQL^Y ztb);p-F`oHSu^YW+`Tm~+`CJeA9L}L@8s+bB(!>Y)4KOU3cJ01&hPjC=#iE;v* z&tlCo6VBdbiDK>bT-LBVdmT)U>y47~n(tO8ta zzT?4UTHc$@_nptY;Un88$6Xd7Y=9;t_Dt{xN`PyLD{3C4nEf24$5+Jye+v0EmPz^FD0`8 z0_9eJ|HE=DZvOKQW&r=rEeG>>>E~N#Nzc$t%6Tqm@i3etr*HR~aByfBkyHmjfOt0E z)apIqKXOggX~?m^c;GSos(g1JFA-JIZ(RR&{~Eh4J?*6ziRK+^g3|r=Jb(2%r-jjT zmv)su3*_a#_d6uIe#0zS7Gmi@eq82NuDXur4b}bwT0D6uUSG~hDfoQbXXEvMIeF|m z-aOcC8;F&!(#z(f)@dt0K3C3c5zwz5oD3ys2S=J5rA^|$K|5TU47{l7}JwB99usB(L!wa## zbr@r$e`nm>i$x+p$fQ$vdq!r8wZ3JI?n`XdMfK{)RlUA$HgG!g% zT+Tec5nR^2#Z5K$d@l7>Od(FTv-)~*C=SHYVe#n_hUykPQde_;SmY@diW_hu3C9br z59D2!8;dmKMrLn0t(iCckI(wnT$hz6dR_#~kq|6ngR!=Q?!=`*n?&3oZD|XCk-~F~ zj*6GIYL0Lmy&=YBoT?=?x^xYt)}i$RfsPs{KT>4o3iBDNHrLt`(&YYQi5vWy z&ofmqpyzD4#-d?9V*^P)be8k4<^wvw4ahXx5+x>CRf`dawwr-I(ORv z3HbUnkhT5J%-s+^x$)lrh88t}iWe8Xza=k;UUM`&j?;gJ+bK_x^M@sFt^{dJW9TqnZ1Yni2 z=UxJA*|BtQN@8QD?=mef7x%v>SwGR`vfAoR@e~syT}5uD9#vEgmR^$-drm~A!~xhB z9YBkJTiEX3S=tG0eE?v?`)I5aW7Q-R-3OXOwgl}!q?su{Bg;LkeH?4w}^ zJ(s2SykBLKwh65lo?TZh#Omil#;3WZkL!0==?7l&LW9K{EhzJszB0{i=IOHE=lW#Y z)U3<^rK)zYV~-IvDci@C>k?CFz@~kE#u3waZ9T&np31FV8DTE=CivmPx7hbO?atgH z^}(6*6RFQzPua7KRl{6!(`9uJxuc2j*uMCrR*BLzR47He=EK>)${1 z00eP%hPS;PfiMm_^=)4G0mPBx4dC`#egr=*0^L2w6a*~Kd#)r6b>}_0zeGcm+yxmX z;>;*-EUCy|@Vf_&mB{qg_Ex&D*1pH8A465^Z4UvHXogaeV}&>N+*Vs5H$um!T_EdS zxmFvDT`TO@YOS@m>bV`wnv)~gkMEkqXDS>I-V6|1&O^m{$~-7W`fXYL{6-nlxF@IL z#J#R+rL{PAl^NNGOX0yG@M?>7Uxhz8t0(o1<->+?K}eIb#y;oK5;EJm;Yr&g(7BKB zi%hZMCwubVGL;?J7<3)6THcuY#!3BaeP`u>A6i=LwBz~b1QnaUlWq2GNFme)*H;pg zFfeH)=JW)yOtZxJHKx<(pyO(W>z9yymIKEb%T$Fo;t!gJqac) z&kJs5kn->^&W$3iwl@}h&LpO@l|SlYbui1L&XZ^tPboHjB`HINbai~pEvXw)C~%$# zwy{gyDIoe9!{rj0@UWT{7`7`}AvQuD_{H0g+T3!8#smM92=#OR!HN|ZkWQ;4M-xnG zhEe&zFdAbh{7|d1-uJ~1r&8S#$&>0}Yd`bbQoy#RUJb1yE_`&9$ABdipahy$p4~Sk zS8=$as9z0VoDm6|oEULP8{k_32~#$=7dPVE8G) zkI9)`6~6yZsOciY4<>H2<>|P+r-!~jdm0dC)9#&f{aSLodpGgRh^g+~YyOoHzfHV7 z<@!~1)!jm|l}Cb+({AO%mKokGvHD4A8%0T}Q&H{{-pBf7`?}4pg?tBFE+UK0f!;KwUQ!N%C&GjTPb(m3T^W~5)*8J)f4X-k$?dK4xg& zj}E^Q-ftn_V7LV=ZL^Qj+Zwh?7sd9#grD9@4Y*(kYX8%Y~Id_TBw zk_2m|-=Zn^Jl7Z}2_f;^W4-?hw;CBuvWuPtV%ZyNFI@c|6XycxtY#8PQ<&rW8*-ED zsU4|eC7|*T=f`{GkB>!TLCSvk?a)qc+`PZzqFiFQ>38_?_c7_Hg3u6iEw>G`xKBApkbt?nX5gj+njd`e_6zL#_`54R&xYPIqTol3CjU;iUOq5IBGK#xoBb&Sukm#6m(v|^F(AK8GYTHuYWJ9&|hiN6UoHLZHcTp6CQD?*)7gh&Kg&`E=cJ*JpIsbo?7fBk5=4g3)4vCzTnc%A`E`|biig(s6ia0iJS%i- zVTe*vt2vluJYz*R=eXfp;TIVk7P}0a(3se7|VOzM51c&sJJ5I}eT=_*5{%7Xtqpsg}8`Q9-gOA1zkSFhJC*;KFib zMmBiWuK4k>P5SeYtCe>Vcl#UbZD%hU1OMe&;)glBj2%`3nS(!X`~*DCB`i`gMW)&+ zV$Y~fMTnmzKgXRZt&;qzQ>z9Yye8fLkE3mlZl7yF{ioN!Tu!{LY|`cfn%(gd;ox## ztqEqhbNub*2j}z!c`+j3$34?)AnCz{kdP?!$VHds2hBEEvigfnH&q3On3$!{kpC< zf;ol_?kNJtNv(543r~*IEi1O;RZFJW*{3|?lRbCQu3G}};WU#qK*2Y-rB>DM@^Bhk5M0UK=r6e9+PF+89E;&2Ut za?61+(UjqMJ~lcYQEMKZ=T9;2oCL0%QCuWBg9TB(e{=04NQp$R9Bqp*_531Im6{XK4frFKBCGNf2N%Dc2v-LfDU z1_D$0ejL5I`lujLaym0UxQh~Z%29SPsNyH1ZB_oj0dyU;Tnob{eGnL@>Fd^%6TGpBxJm*Z-ls?zxwpqq9MlaoBa zmK8NDt(T#oxI<6a^SdR!pF97VLMK7<2s|W>FI}qpD=smZ6pR#r#SUnAZ?a{k6ZE=B zS(X7`aco1}I>J3JGzV6OoGY%o;lv|}mGlmjOnP4b9iYH>x!cWy_ocg=&{A%kp5K)5 zk$4n%$(iNvb%LK)*jI8Q!%hqkl$lNQNKlh z;jFG)fNr8ex6r(odLQVVMfunVT~}h4<%+di-@-!`b!GjY!$LT_s}Et|GMm>8Mor`{NDq*iJ&(6)?a(<~Ba_PK`+avWgQGQ$siqI+-sX%F z?yl9eNrZ1Y9Bxt;>LRk?ZYz44cymK})|wAdCFf_dQr5|xIGo5J$}?N?G+w*n+*n1( zBH@YD=8T2b1n$Mm(t~V#w_@!4$smTdHn4m;wIfQxSHF|@HhOdDM`{vH++ewHi?D(_ zzP<5oJEK41Ufk^71 zaJQOhi>k@#i94zUMu+~_#*K2KTv_}rH;>`5{lU8iwLUn=lbeSv2wc-YS5%JB6`a4b zfBKS38M?Q_qG^u>D;fhyOLadCZs&i6clhYUKNnf5wjw+cZHsCnQbUOo62C54Fy7a< zaZk9?bPX5vuhLcj!|vJVWU{Gjw2B%w!X=%5HnG8Pfis@QkU0PI)BMl0wLUBoVeHzR z1rM^vb7Id$&=2w;pi_S(0p4vGG>uqcRX|=)XsPa6Qlqg~uY72CJwpoy5ut~E+bN>T+s#ngp?9YY4)-i=tYY8tX-RVbBM|>2t^9KglMNShK z^;()MZ$U@t7}|sa(L2aF%bdzf+&r98oINmMKiU$O5Qz^P`kkZ2T)#1A*K=e=Br(B+ zvGC@1n&P#Kp|63tz)3>vi;h8!>YETFg7TR+ontnMpIqwbulJF2VldYdJSxbLl;q*n z7&d&Hv4PtaX7f2&wqT%pwOCmk`@_zSG3V1MJL90d7rj1taTr~Xa7sw$ z>9x1fV+ZHz{$SCqIHBG7zJd~LSje0mc=`$a}MIS)VUBd0ZHP5u4X6}RG z-!Fo5XjBCEe^m#NC8XIs(idLV(&JC4PpIAhKE4@8*NhlO=UBnY?+?`g<6-M^XooAImO=qc4P zzl$}UE5>AA0t3>-#)&lz(1Mdz zdz2BjFvoN7UCT6mD=|%k3FHTupG?{RdlJ_i$ni zw@7VFA~%jB&Nn)(`76bVdjH@HZ->`)j3JP3mEJ2q`>w?zCWt^@z+_b}5N9_5cS}{; zGMOBKr0^BoFQ*<_P~9#9rU!G52{xtkB_6xhrv?DIuwpRf?x!KMM!F2b?&}HjP^f(E zvf-a>LOyB}*Y$qxEN0T4DWqBQm^kN}1&wmXk@SSw_fYS+0Izd9>#%rjlyq}asSu7K z^KK7k?j)z6tW~2&597Imx9Ka3T~=)K+)~Kl5-rK4)6e+OaH{QPB);u@QK-P1q2Tzm<3#^TJ$}$sf<9n}hS65#IFKC{d zQhR<5tQDNt6;yT>U4q9yp+FPMJg<33rP;OjK5vr1vcMm<{*oBa@cc|W+r9U=#FrLO zFsmaYb-ErEYk%*iFk|-+`U%622Ts~~MslQ=C33FL>)gOb$IK33V+mPhR5|;j`s@A#P&IqnCP z^}8vkFZfoU5;Wbg!h?hU6t*?s!N0n`C0QJd69`e)emiSIl|?qdwlg#R_r0$xQGt2j zxpAIuNkg3FuVkIF6_w0zTp!EmfYdl6A^+Ev4|8X`Q>Q3vnzMfp+($IhWJwA{#Xj+( zzEs5nZ8}(9E*1@J4znpXT+U5z)ka;CN_&t3Ij?OMkhSY%1oNZUPUupAv$$<#HldG} zYw7Q`^z(ZinfU+_PhmVeFRq;oon#G);=-ldb;^t>63avr|!@jzt{Lgo{Bc)96{vV$)s!(JCG37J_BQYh=%t{D$Fp$Rn zo8!s+(#6Ow1ma9Fu7$?eHd|Z5bQ+V-3l=V}bm{@nadBdH-AElv#&L1BnqhuwI;Eao$Ta&I@d@ja z=Xt;Xx8z!v$r0<2)>pLX-tv?u^^u?-2`+QYvv>7a`l>h{dC@&_+!09s^UaBKb>1bY zaF(0cT`sbwfDInj!hwN?E($O;9rzA~O=%25P-g;U({OAIXl)_j6{Xv51~+ZWvzr)m z5;hW-u3s^>m-t8c&x|mWt!-iD&xD0rPv({;S%#)T+{#ezrsn{HywQ(8lFOA(e^0cYScx8yYu4UwD>mGVR%=jaJ0%QAROd0YT1lZ=|3M+!6gPFJWlNrf* zGoIV!;YTiV5f4tysD6@w(b^P+{!|mJhpa#wCqslT{E3(E@#8SjFMj2W5t5mgXLxS5 z{VI|^ltwUR>upyI=TFJ`;Iz2KpjR0=K4KN4HcY>1QN=&>;=fvQOFNf9%X+pvxMf)D z@3fDF9qRSduWR}hsvtjXvw%Kgux$ipk7m1_(9y(xz2*nR$0K%L77yQ_JIhi;C$)_A zkc6n1-YxiNh`=kGmED)_Qo@}pu_o$Y=;oVhFXlPNnQx*ujX$?$(~-3jz`^D%k`_p0 zfII-2wA19N>kgcvG9nGhFedDQvWtwhDM2!IMdOamV!Ffx?OR#5WeJ=kj@(upW?=}A zwP3+-BC*lTT7`U!hTV@#E}@1jpS^oHo)C_H{Sk2?<=roSm(!r4&E6Gl$ndK-50 zqpbY3fZ=fiwd8zxNQ6uzf99EVSC6C$Xx$IPiG8F7qbNGcXx;e9??|Xc*wb=X)i_%Y zYa{KC?QR;s%E}-cuzyJNAk%7;f$^|gk+RiIFJF7Z8;cO(loWN#jsQFkxTQtDWtYmDeM6es|-?VI>81Ldl#;7Y2yfO})FwDq!p5o@**XIk=baEKRhSQnp z2j0On1*??;2JVKx`W{S!=2xVS?VBTc5<^#6I7Rmk=PT^pI@E#l;lu`aSXA=s2n-(6S8W9cIZzBU4P)Vo7-Sm6hg{N@Tv zfK~&Q$hR4m%~Mb2iDxRE$Y6BJtFbx7zXkAT9NT&;!UP9ZN?zXYS~>K|nx1!I2r zoZ|SS`}c*tJ#74`cs4$_tL zEMyk@$?K*>zcwO(iw&!0;5(yBmH5L1Z)+SdLrFJ>oI;9uo)IY!|}mAA^ztH~7@ zUp_DJ=17;{{DgTp@amvq&cFxj<$`*_4Ns}1f>|^ja7Z<_+$0C3*JHrpcPL==`q<-= z51|&(dMh;8f6Kg65Hw1Q+>^H+N8mzERBrG`gQXaLNdvsUER05qvypI_ngf?ceLw_OnOuMANSnxF%4Z7Rw{S=x`MniT zNVM=dbB|_&oPnckOEOoq1&QK%mP|s@K?tPh0&vt1h3P9KmnA+Fj(s;F8P)xnTH*2v zq@F{Jsx(O9|GFxIi<>w(`sFwR^E^o|1r|KI!r71*4BO+eZ7!46?eb2C)HF1d$6Ld% z1cQIas2r8Y`2vUfh|Gn(G#-bjsb`p;AJ#04<56F6bzl;St2h0Sd+7Y<%F`tjcMXj3 z7dfjJ17n8zl0!({guYqwelHFJ0!c}}Wp=J4RqShKc@RScP2%x%V8K<|zKJBdMZE~u zvqWGbZ=Lft8h!ADdNPun((62ZV}GC9hJtTH)?a#-3I=LR^nJjc@~feiZ_>x==On+` zmry4{0Iu9#z^H=G=od%pSlfQo5*+o0Pj=6D_xxiqSi?3)pb}e z;@de=Gl!VNI|O(y%@lRdO&7T7vHZdI35NVbzU(H3T59$0D+PAI_68#flJe0*xE%OyS9m zGWdS>F7y|tv&M<}zI`}OK*N$Ip!uDw$78)QYqzyQbNO@j06%7hWMqN|PQ0dyqmL^=8#3h2eMg|bFF1osMPL<1(On;-|c z#eOgpPQYEPg`L6CL@vdsXZ)N9;p(Z@XE=iO3vd*(uarGgfc!|2zhq6R5;hni*5TUl z)iPbW?jgx~i6WrK*uF4>4`>3hkJ1Hs6xUi_T*A?=n6I~BIrp6Mesc;1K*52CC^=qE zg_gs=*=42<&FQD9b}_t!VommtK$F@E^D-$|}!_^g2@S>9b&|?;kW?b5v+o^S! z5{nqc+>e^GSh!_aw_u~|yqWn{bF6#n%@rEV?5Bv}p95NO9q|@m?vjKDs=Yg4VR`dD z{*BZdR`Qps`CI|rzTO=mh1Qx^?|E^uv~kYj>Z!`IZilcoz6$tZ#+i@$L^@rsBhPWK zI(Gb%6?dW^^y=U;`PWxd1AF)+fZUf>WXzwyXP4EDFa2?H+K4l{N3iYs zH+*zkQdBUH5=MkocqG~ec)(3K<9KNM`wetms?!FgTN+_G5?doJY`e_SoL0YmZR<}K zVj-4!dezpSDg%ngYn;;g!7l?mrei02)@Mf1O%$g$AP*Mt|F4t zEjCQaT=a9Do$FCg9hs(BQw)81z>(lK`_2T1iJ_^pqUjkCOg_!r*jzJkGHGrg^|!b{ z7=JT`lRLQb2v#+Q2Wlz5L+Y}~h31!bqjA3lHV&;Uvl|v1{J2NV=~~q=PApA2R-A{R z3isi)murtq?kGQ{nexycPQ49*Ss;K2aC8@M0>d$Qca6F??%QE&2VPv5ys~}^CY4l z(w?7ntsg5*dgRO9Lw+u5Bo_B%2wPtI}tJ4k0WgHqAn zmC(vW`&1oZEiC_B4^cWkch7>wZgIx59;2~9*M$Y!1a1}cWcDIJ|8ckdO^&-o^| zS-&5H2SJAU-HWD$lCz+=`T-aoFw%|T*D*SZf02{_(!!W3liici*Z6v*RK>$`){jmq zwM0X}ae&XaSCMks7_o_phNXHDfK1Z62Fj@{d*$R_=;}Z9Vl#VBGri61^!bz8U(LP` zH}=>GS}9i-Tb);&34{me&*thsaqSYwEI2nkP)P)j|A5>BSNrCtzxZ7bV-RN34^C=R zhK$$9(BBQSE(sSC@Yk{{fycN8HFZCZ+YF2^*`V&1iL6cVZAHK)Bfe*xoE_3njB%8c zn2&4(r`yn&BqZ$X(z^)kV|#-XZ5rJ<2b(S9ar99o%FPqAdC zwXh$rNM6iLhF{rtF*&Hg4I>cM^sDjs!p46dhOnI<{u!JlYA3q+S+p6TnVRbQfck;N zIFbI4-~|wP0i6hQ z-%Rz18vXnD7edwTz}(`lsNxk;kx%H(?`tQi$ z@o|3Vd*BBaE&Sms)a{m?n=3Vuf&op56ozJMCwHNdCCIfzSEbK1Pjf(yv4;9r4nt?2 znEMzv|K0@0^5fHT1b3p|V6!MCYSv6gAFFBYVnL@c#S)v%!gSgV9hQbCdF^AXWYxO- z24I3oDss`yJ$?@Pk9+#of`Q)M})G#Rht zbnmv^{FN3Mp&bf%%ht_d4bcyT(F zmva@}PJFABtL4p>K%WABfMYe$qF(Kr>_X0^V`s8b5~+Q-|xOW9G7Z zt5-g5O#h<04_5Wa(1tE#S6Ltl-alf`^9yFk;kZ^OxDtr2gn8^m?p%>7bpAL1F`1Ar ze~`uq-K5KbNhWkO%7e#1E{=VZM$6u#AECJr`?A6GR>Uuk0BZwZUl~i>Y(vqh zb^MnP5jqAS>|1(5bpw540}5S%?$yoWYk&FQ>^S1LS{o~RK^)ngGm8uDA9F$JkottK|za)P{_<) zG-kDdy%*7pw0+&YZ$a$X^8*?oCxkAvBYoq)RqNpotrBVE zV43Nb%5T}Jcr#v#hLlsuN(wzu`g}Sc7qKpa)8j;yc0R!H?CUQ{)A{U-_2VA6_r?tr z5viBE8F<~0g6rU%en7c8^!eaAZ4C`6gFhs_6GOHm}22rgwLJI~u z&WuaJqPjmr$G!!oh)d$rtNVS$5iy_aoK&1raVFK-C)3~)s8axd+)gY=O(y#m4Ae*o$4 z&-vjipHXTiKFeci*L&_|7+gDp&cSkw=!NT7vAFs*557sCvGUla|IUW6cOgar2!5%ih%8#IB2&CLl9pplI_iLIc*9?O+--3l3%1(hjPC4}~G)%SPN^7zc90HiDk0Q7CAb(_H&+uJZ5R1xBS zA4anA;NX1GA0-Sw$Hf1|-dn)d{U%$2F>}n!%*@Qp%*@Qp%*+%s+c7iSF*8%l6f-l8 z)BWCb-psCc`rk7v?W!%=SH7}z<#Vd)SEuUxs#wf>5+dTDZywJ=r4qLX4@u+5yI6wq z5x*=8TpI(h(RVNO*h?0eC3H9>2RZ41%96f~G-htDlj|C#5ZryL!}1YoTH zmZ%Svq-|cKuLhEqm$GM^=rCp32KU$|%18tb0J?PUd=jAnFq?H$NpAkVw>sxwztF0E zge6jakgx+*2M}00AR&Z}N?2NCIV#~P<){j-`;yNb`%}mV4ZI0ow7y!0&dKgrBRM8?Fp7Q(A2Nobhl=i}lK6R@pE4R!E-FLxZCeaiKRd?`GL z-m{RQa3l0g1qltto> zn}C6FOAvNV=(_TMxsg(_p;?zUb*g^Sx?S!Zm{`nd(OkB;$EL#Ed|SHu8EeAGsgYj^D!p2@ zd`^ZmQd~xDV@!JzFSJf}Zn6CwLZM}!3Xu7j7}VAUGDH7bhJviLpg60$yzEysXTI(8 z`GxJRYlXZt%>1?)q<&||^QAYS#fNA!x}kI^+7Pv3$u@9>6^&uPa;UPZW58ejprw~U zaY53{>pocDndanNqH}A*Ogm0r+evm96*rDznL0B6q7`>zSuZKreA3!tzpvyOT;?#L z(;Q`cuzeQgq$)ewsk5#AM@Gt|W|(uFMW zA!uJ()X9v3(Vm=6c?tjfOB_i<$+B2<>?sozczPEG zu}nG2l%GXd7kj82Xv3Xsy5bM!K3Tb7&8+k}>_qNbu<2lRaoWK- z>|D8kV8u=pU1!c-N~)(3$!+&~gWY`Ws6T!mBPcR=gW_S?ZQnXz75;8!z~I<&%o_`+ z|H22E`mR-aRnABnb;&diK*kN&U*5)8t|I}p0hAuH$C-5_RFoFx_Y1T z!X98-0?Bs=woNwf5AZe|C!DMtXvG=TDKv_@J{Zsf4K;m;`Pd^DkU95k*$fm@p_#HV z83o#;ifTs5Cf4B5{T@~O{)ICL)S`P!qUl$}0jKlc`Mlk{O-8(~dbfZ^5iznuwsw%F zB`Q;#McH`7?VEf$drjQc7)4zM_ZaX)Z%8tk?dtv@Fsg%i{h>DiWxfeMfI690fmCk*1GeARCd$(3?22v z^mfMj3wJMNiHNiBPGz9rAp(%<4*k(Gt%|&nYZJJEep-TTXn}_%@PzV z(K^>G80#;_igNYzSyef$YJCi3dO1;h=gE_IkXN#E!68=L2XHs8h)5Q+mqnAV)?$#Gh%OPefXfsG*$2ivjI-EVE7`F3LkJXYNdiYunl5~yX_uaT~pU}L!+#m=5g zwi^YkW5yL8x<>5PTfI^U1|$dE@oUkBnOm)=ByZfF{z!lx|J+z1jp^G zdgWDcYN~bZ0^SJI&EZ+CMDjhxi%<2|_wPlTi!u1_K3UP-IPEpTNtt=SBC;1}r544A zEZ+Q_Z-)0lST_>D2O%n&@-u&EKq}Yb6A5Fish23h#o&-g?aXR;N8=)IZ|P892QKT= z1NjBOz=SSS{M-$cJy$A2b(u3YjC+DOfV`jFoAzKr)|qHVs_>+Oi?%b>OB7y{i>09BcLTAYZAdhzeH)8R(`c5F@JZhbm2@x0)quWTPU zZX1X*7|?wG3Vp~_rwsdehrVy0Btu`ia)=u_?;~p3P!>&cYoWs5oy9)X^88)Y1m zfN}hlFnhm(4#;F7Up022)24yoZr~AiO{t3>4`%S>8+RDOM0OsyeqxiB@={)gI?^^` z)o`cAX*BV7bk+|&WNGZ)70lPjM7>A+^X@K7l<~Bs)UVw?8ee;;ID5L!4OU%5gCEQxM8&TAv%E#+>aA4GPWvrKJXWcN8jJ z*a`ybH3rLekz0c5o%C8%_gSkTR-G7O`N$*{Pezfp?esT83|I0t>x1estbOFry#!VS z%&}n1d^?@`5kBu@&rnhwh}D_2buCtljZ0vNJ~GYsKAV7=Dy5HapDoe^Eu{6}xr8hH zjyz>4peLtVgHEkqx0t!^>$F*{o~#v2Kc1{&QzxDpgP5`S9lD!CqBAzmkmPY}WrxT- zIZ$;98y^EF?TnRwdR{Jc1#V-ju-_e>u0x6Xr4Q_8JJmf9i3QaI&_0{t3|zb0HyYh( zgip3#Tg+MkS8op#FL(y3nTQ0-nke;x54t)6cG=;c8U&SlcN6Z1kOEm!Eg1^doIce! zRRhnaSe5$)CNU!l=oinPBi=kj*50QOH?6Ogq(Yr1vQ`l2uyr;1v18DGGu*m#+q;UU zB&Mk1u<28}Yg@>xNnAwlT#0PeHY0rqR^Fou%y`hFik`9g;aYUFW(>vKe=(fffRhe9 z+X-X(f?c#1urENNgqB>PYp%q=RNh9(qIEbhdU;5VnL(v36j^SDW3kadKlgTOama&Y zVA#KrYD(NOW3x-FYefISvNf+;Fa_rzr0Ly6v;XDuSr2i8M8SaCfoJ+vhIWQLh7c;#o%97oFa*ql(%=P(8u=4comO@;>PySzf7`{^$t+<_2O zv;C@OFcrEKN!Stq>x1W(=|Lah4$)btwYjdd8EI=#{)yLHB~&hZ&C=Rxd1riiAKxrg z*<+CBsS0Tq|E2p%TQ(_T!%QW|M&Y5H8m-DM@9$g3hz8W{u zz=0P0;-3YW`9M~!LpYJuQ4x>`EJ#2wG0j3oSSyqhaJq(sazQz|i5okh!`l}?j#N;@ zsiU2Cs8f<8BQb{oPm0OWh%O(V*#>#zRaP76!hizLu@tC4;+z*eHq_J}$j<)dM-z}M zf$i&owO)m}J@0RO)6zlE$KEw=%V+z_sKuoe>((O5=&#-SE)zw_YEN#Gxud=P|CRCCGmV~r+c9M0Xj~ zL6h82uQHj#@|iJp5M>Nsuo_;DN-3}2h0b;*k7fpo_pL0rpsLe4Lue$_lceg_6e+&G zT?;l5r5R9hOeR|IaMk4;=$!90T0O$Cjgjd|CUmkgvQ|WJkZ5q&uG-{&Sq8~0*NhbP zT5DG=^3aZVkzf|Kbt@lQUDt6A%CBaN7a$^dQf%}DCwSY_-2@}72aQD1oPT**V z*|k)N4%vyM2RTP(%rcB;W-Oj0gKyTPa}cd@9lGt?4j?+l<(V6_uI|p#|`es zTlL5F$CrQHm{NI=ZGBm zG8|J;8rE5*dBE6pz`^>+kl9F3wArYr#I;Xh$`D_NEdp}NbLC+ml(%j^PR!+|H*DYJWQg!C=4%`?X zbz|bDw4)EdV-j5qs45-`|DsS`DV}WRN$EDS)cu@00OP+K&|=3RCSpooOQSwTcCO$3 z(2zteo?=K0jXoh2(koFnDN8K-)ha@OTrQV6o~QwozzLfOAGzKMB?+GeR2B_#I))C= z9RI!ISyGgz^7*m=vhX8Jus0)|7(>rN{_)2gxRE9E7rOl9!DsT}E-*Ma?(8}QD$c6A zV5qECJ&*QwOM5&d&We>hf)RD~us}@{Onsm0Kv!QK=B}>>LAAd~p z{ms^U%QL0;CtG))V>SOtJN*x~gaj4-ple;CpARm$damS`Fg}b~`pV~5=dWO;4#mP} zz*=o0y~K?=3Y4E3lV8T)gOJXK?-yDU|6ZV24C4?gIdm5bY6 zs?QIDhnc$wdA=kwidT#C>hZqp%|~66UwM{sXS1sh%)S?!_4m~%F@&2Gq-{mINMhf= zHau8BR3TU&)O;b7i9#vDu4S7LFVO;nP$CP)fS`xWm7KKoZ$gm^G!z!9Jkk`XD{bkF zQipC(ni)S_uxKu0zQ;ieXAr0}VG1?!ObMdm$j&ec%)z3~jglfDnkl_{EH{ zeb-&-+Za=Ioy+Q?f5kAar0;M=lfQ4OE2V{Vj`J&KmNxc& zk*1Dc;I{hO-}7*oX|%)rts$K#XH@;IQ$dCpeq~*=GO@_Q`$PX~wSfJnCFHh{(OQ;g z2__>6s^|iTw;--=1(Zu!mJFE@e7No@PNL+57jrB|X|R8spvE4bvAVqu3LeE4TLBg3 zOw>U_vSVr5tuP>R4|nv!{DKmnEWj3?iSkG;fbqCx(w{c#v_09 zQ=QwK^d=1F@$9Ls-il`AAjrEW>-XnBCj9=!OlY$2aqSbcz)#Hnl3@$V$_V`ln#7O4 zgLaxXjiSV0zFHiLV>FOS&_)}#{uRNF)G~wSd@U1ALxn4?KkoAFDJ0!1_9BF3An|_k z^R`)aWYifADON;P5j__Uw$G$k=-3x8c685r+nQRb zFVz>TE zb^l>%zlWSnl>OZP9lc@xYV;QRFVTDbck~XfUMjg1P(!sCHo9g-)j=v!wI;8ktyz#m zu~%3R%EiDpl!F zOt@2Gu#q$0gJjn*Y{<0Fyjzv3vn!1cB1#YmfF>}$B2edFg#2EFpwb&mf~K((LPWNc zqU7bc^Gf28BaZhLiphYd03Zv-E2yERM_~dXEe;aY3CcvZ*9cdm!^JuTEMgB+}H@ z7vsdG1i8j%B0u)Jy)1Ip`M!jUbADh3^u@BNSsCzH|0{_VcxFkx8NEJ;Zi8;P+8- zBSAyDHs|Z~qUm>vRaqa{t=Ud@PpZ*k3$T2N*^dzC-A-rc>e$`3?dSgi_CzQTOteqf zt^PXfe?Bw+1NQshu>1c3d%`E|1QEIa3A=rbIXH3@(|TiNm?2h0JuhQ(Gsb8g&y{7B?r$i@7# zc8)tS-+k;KkaGf~!MnNi{|Pzpe?V>(5Bh}%a0|O%I18DAwF(HrMgwKqz{hlLF zn#^l|6~CIW<<_JYNq>t?wa*`M>Gzyh5M-ZDg-^(T4_f}` zEuHOeStaA&^6I~3m4C*iU<`)D?vY^Bf!T^bvP#k8HP^pol|T^qheU^&bOo`O=|lR@ zSqsMRH*pK<9AYT#(rHBxH>4Z9DckK3_N|%zr$cz|v|Sk-v<8P-#+e+OpiSLICvwrf z8!-NEfU;T82{Y=@F9~;2Hy96=)hTt#3HxdgmP}xIEE}9)`V{64am8fQ=D>oB@s4K5 zkzI(5aieIGG8AArpD!D>? zjMdQs=H6)mrQ7Z(W?1cKFC>sokKAyFh-L>60Q zHetxVV;o4Uhp0U~A326@{5h2OUzY%XCyVJHWc^zL{2!A5zg_Fva5P!))3t8?k_7n8 z)~5vc!?&g+fPO2swUS?XHPmM5=|qVmd0=I3zZHNbrctlS$vgS|*@Vk_n{Xu!5pdVa zYZnot`&G3&TFHaD_5p6QdUjF4-c!v@L%`Du7QSigxe%dNYYSO?!yH5KTTj=i3IRuS_$`U#-mr{@wH9dG@hLd4u zA-|}txGKgSreEJ0#p((AcaoOXwjVL`>QZ)W{RY*lv?WP+te%$>fr~#P7yyGxVaQl= zLp_Y5mH9BJ5YRc5L={Fk4EXqW?a2I15t82BizU_RR3rF*C{)CR+(G2Z3xFb9I8>&A zK{^%Z&PKX^-i!WB|M}!B;Q@KNYH`3D;@7X|$)=1^$~(>)m2WBf438e%XOygURpwTv z0*nlrZI&7zNdNJS|JN1Tf6()XH~m|o{cl!i@}EAG*0YiDTcHJf`q5u{JbfxO z*8hxn!EsZ+6 z_m_ap5aKRJ>2c)2k13z%0x~hj~oMja%WkfYOYE)9AAVQf{pv%f`#%povW1`@jX6 zLirge@SktT`?>ZLP!j_6kP7{Fgjd9$U9j{llg*u2pI1MW(vt@wzpoZ+Dk73z_`6$D zW3XO|YImPu{==~UbyfRm*q@lO{R6ZA->cf+b{1if_p+CL1f z*QOs2nr~{4(jzQM=$IriE)L6~RO774eDxWqp_Za>!6``TWD_<7!Fg35i)w3SYU|dI zRJ!6+oxP&lWweY+|78v2#mds`GL$qj2XXdl(J@W6Z)0L;uOTn34Sjy#i1PUs)p?Nq zVv+KzaNn%1N9;-~t#@G#nd?VAN!!A~O&tVIx?06+B{FA=M^?Tu3Tm z43i;)y%k<%$>!p{_c{=DR%WI3YrI^oZp``@*I|LwJa z`;6sz{LirP*J=TOV@vM8rwQH(+LnQINFmjCs<#4i`jqTXY~nN>Xw>a%Xqq2is40Z?_4*P8!^vhi_F`O%>v&Ru&goxcq;jVA@patViG_oAM*u!`;RA23OyLe zW_Sos_yD36EWRU`VD!`DGOIDh2>|W~`r|jo3TZJhY$BeFlHW-9-I_oy+$1q#`x979 zFd3H0Z{qg^@XcXPN>Y4LB?BguvNTGX@&`=9b zzbUZ3L>apNFjnjmyf8RS3stTS$A>by1D%B-c`9#`5Q^*%}mmh zMeEnM3Rd21`*ueNBQ5i5bzj%2s`V|e71g1|Z&Eegs$g?SezJ^m`hv?&-$+(~5xqw8 z_VU^!v6W>#h*yw};K_33B_)&0~|D#>i-$yjq zvAg#4KA#>Yz<)ur|0e0ru4-e_h|S-+s@vpjcp!xVTpQlQdHKgxNR1tQUz+Qbu#SmJ zJG`;8m_FBeJB{GSn7*sOsweg;@M5mTUd;BTH)l48?dmiv+d3o2&Q*PMIX^efyEMvv zVV0%!7}pu?Gh!jDUOH-`<2>81cPhBaYdZ$QxXb6y?i4q0I%l4#{7Kc=?pr?YF3?c~ zuL3j9Xc#HsqNLeaq-p=_DL0A*f~T@c2Qyl*7q=?JD1gpS4}lID8eq<_r(lpXB)kt$ z94|~k0_~v6Gxw}b`Ys-0=K|Q1HQP=YL_dKJAAtU+IJQEtv}a`vul_Z1>8|8647r?? z!YKF-!VC@B0c>Qlue}h>z7tQ=pb(s%FLxT{>Hlo)9RqLFiQPQ1l;mLpHO7bi z!lkJDAI;t0)cFG`*cpFPXZ}guKP`j*M%|yy-A1J~nLa)^ZyMcgAaQ*8`ue4nP#&}> zTLO8X+#U;-cJpXxSVDAD z?+_ATp9jaoIRKF#hY&}0PoG`8R?8ZZrSC*k=Bh^1Z*a_3wV?|9Zbu z|8uEq+|W_N=efQwUvR#B5&V4lUte|nd(H9Zf@5=QV@ESua~pFfbA2ls1|w^u33chj zd^)(!sp{eAH7Oq8T9k(xU!nm$tuo{qaGB(n6V~tmwx;uGeC1t#0_^MSS@$Cwx=|O3 z&C+|*TLJKu6i?!2Y0drYSGg*h%nTv-s!VIr$YZh_*Y!sCnUV69(zi=+&!Xyi040fw zLP2tu^2dT$*}hAFsj2rs)WmbVDTw*40Q z{3RPyX^QaS5ec?`sB06RyU^gjg5;lcD zM!j9l`)+LkB61M{;_Z}!#&Ne9kq6u00|Jzt#|HiEA@BwZ4fEo2h+BJv72zc{{UJ7& z%Zv|VNkboumm_m2*%GFDQN0~9?#~)9bpD7XZsHKfHFdElzaKh7r|f!mbfa-0``|rK zhxjwbJEk$HMgdFZ*~*l}pbD>&7}65!`^8+35EZE20Gn?#@9nLc7!g2?0b41^7vi|d zh>O}dO>l9aM>r06sDzH5ktF^E)Rux_yb)419jv(5%Y0sVNI9+)WV}b<61T5pI$I3` z00X3Ky^dm+NMIo3JpA9`U2klTk;I!CU!Exy8VpD3xFPtVkV@SP1>^H$e)Wx&9BZyq*`&&@ zDK?g6YTq?=yfvs%jl6qsb*KzEYG?PfsaZX|OmsafpUIw7J_Ihe`jnk-RGifYx((ih z4vgio`(D5s>*5p z+@p2`S~f8}LQ9#BzIZm2XERBXkeON1zm_dNePG?W6B~uvxvx|arGL+IagywD zDhTcX^{!rhElT~&3(5r0ZM6wq<>e%{77psE8%bBz`(CN;ce6o-rgaXT;m(N8s8?Sb zUv=}7tJ7!lLp=>n%IMuJObWVc@P(p=?5fC^5h!A-0f~WL#H0>;DkT;)Lr66ZV0)of z6vqGxdXkd`J-u0+!5DN;RWl<#exW7{&z37LhrP*x$(q~>PnR%KllY2$Pto5I$AK}E zbFd)NCPP+FouVpuJe`3e-O+r~CHx>RZv1k;R@5rvJDRS}tjks{T!@I|MEW?RwniHf z3v*+ufcwFd+1)R8Nevx#l**Cphz*Tz+duTA)7l9+G$xBbZzT>5#fn56*z2<{>53kY z1jkrJ(e4*s8FV}*G^xrUJNDhn;KaafGG)g|Z!&44x3?!c5kw|GnYWE-5;`#zAGukT zNzJM6LqJOQsf1yD{T23Oi1vG!a)({8qs+IGo`lhFm^go=oZd!m&)%F3in zeKc0#Rg+aljA&EtoRvYPpW^WKRX?(@sO`*|r|AoU##u#bgpTl34sq9aenp7rOnk$1 z^2bw2Co{3v;5m?5B0?gxUO9Z@vAeu}| z4fG}Jt_(mg)uV72jDA|OCaB$y7DYij(*huA87?%YP!k8P92xlD>p=LtQvw?DP}&!r>)wIs;<{|NiqhX7kXkbNiB*Eh+q3 zixF+KS$v2Pyw(a0_IOj5G+0y?VsOG%MXA(moCs`AoQ zR-r4513{3FXaSp!jhobWQgAge*WXXK(hYIXZnxg^Q1#)3v%``qq9D=O%GN_EN*gQ> zz^Nof=T}*vE;ht(2aP1WUh9oh5QbZ1et|VP^A614BFoAji&r@J2jmxC@&{9}cTUX) zo8zC+Z*Ub%5mdSZ2Cf*NQ7-ZR^MEbpTW2P5^q)AyN4g`={H-@1;# z|Cu3KP7F)Z`vVFnl#MkY<^J=iIy7Z~6566rW##L$oqKB~pk2B)O%$9|Gh7MtBi#u1 zhN%NM)EetnRS>1?c^yMZN@-!tNMKp~@iQ}QO6qse7iL(Sw{p75vI2u|wrgz<9CuCb zz8gMORwwUXOIEt&cV|-v-3OQLt=?)`o4OT^>N__WFSq@3vBxLr7su-!#*ZflN*Co5 zM>W;1n1+n_xIW*sF$0%smfo6Ha9F2a&YGFKbM6XFxbaVVR8h{vebuD)MF)T(@A$u| zDcl=1;PRY^>JZ~x@n7xX?v*^^@!pKuWxu5_1)n^MD+WJyOjrs`%Qie-x{J3Y6bK22 zx!$5C*da&nhG)Rx&UBDzk>?93hsBar>5JLjqPE#(&l5umdI_12#!aV&xtoKVTSSz& zTZ5k~L{zvtw@mVcS2#mAeXcOQYGVD+#-;QUN&9vh_-0i35>)k;e`;dZdog^e$O1sS zaS4LiVDq?+5w!e4G~sh468LQBVRs?fG6rU+4J~=$*?fQH`(Gb#;pVHbKA%Y<0_tB$ z5>@`MlEeYEnV14RB=4N+t%>F`Ey^bKcGwrfAM$O?n$83+3Fk|+a>Cf=i2QXtXf31L zb{>~H7=@@Q$dzyC9r!_$`^htob1Leh-D+cF#UlJFHwQmwI@)GV16{3CTpKJPT^6dh z9xl0+z98?Smdjm3jeT5d1_wOX@0NtU@-b8TF!~6HE_Br$2My~mO{q`*palOi5?T79 zKNGU_uthEA>Os$6PR5f`l;NyG&tJ@6Zf~0H;j~*>)ZBJj3aOe5IqI`9uL~ZkPeynr zs+bf-C`TdQrLgM5PLERP5cRG3P;B5Q8&6a(hb@iTdT%3C`*dbBZfLhsrJjU+0$Gy+dsCt=OJUC78rh{yE8;BXnTHi%^Po5GyYNoIXw{66(p7<>r7P@z=p2u z`Fd=om#oGwJ*A$J%=1$Hqfe4bl8COR&qXdCKw{~hviAP-jTOVhQd=aEGemY!X7 zznz~g*}i|PR-awc_4X|~Iet1mI^J*dX}R3(+M8lu&@pv?cZJYb=_6^tJH>@VVVW(8 z3$*j$Q=1uXDU!z@KPu?L)e>3$uAg-B?sttoKfHuCOGQ?6<}1ODGfMD-AwJY$9u_=j zdkn38I)CI^KJg^)lwq*MH&1G}psYl5Xhl3@NYqhwDyMKnrniKJhhT!EgnRx~zXAk` zaICCwzyD6EP6lRvU5q!u$D-|CeDKR`1~0)G+~Qo}FEBA)tRA^pact^4K?tdZG8zZD z**o|npd@E*ph}9RD~VR6o1AVQCS%A>isO^YsM{yS6M?0MnFO8W0WrpB-_nZjd=y87 zv!*m4k-}B)q?`j{&b2renaZuY#>RzH!=o+76Xr!P#@cIDh1i9#+UZSTI-q>Bd2M+b(Yc-8)u#O^?#GhZw0vc4}CQ+d-r2vxD ziIv6Db)rGUp)jiA{NkFH#LHgl8Fq$D*05nEZcq1$?o{=j&MVCn- zFXWOM$&&*_1sn}qQOsL$Xw6DgLN`@CinopSgg$RO+|G! zvs__O)B)L(v{P0hw-Qz}TVnN+Hm=JeH=d`5u~D?c#Q&f|1DV@*0T8nGEAy0UErz*5 z@r z#|eKyedxt9BpzZ)najx+GY94svttETp*H@42R}d_U|RpiP^R%UBMLxFw)}>n#V29d z7HT5RIO+Q{dq%mobBsu_t_Fu$Mrnf>Q6?>5XWc%Q1R-GuzX^*NipaQhE_$x}WRJly z)KS)%l(i|qD}bjQX`MI_Afmi|d7y^o5}Di~9ZcDJjfp z&T{|JJ>80c(_mH{<-Ni6M20z&I1?Umy00rxw)M0z8a#9s95QE|ak+_pmKpyK+1POU z?^b$i)e8Y@nnOz4>~m}l?g+%z<}Hn>DN^u5)ec%?BXok{{nva)QFqe#I!(A&#yRJS4GM1?6(gJlT`b*R-j& zDu(lsZY#{d{S5jMP@YUToQY|oTbzkXpa{LF?@p5EykgGv##KyJqgd2>{CVi42c1mL zC3bv($P|^TO8qv7+g!~by;Hk`{9cuo^ZtJ1lJ1`w^1wQpx>MmZM>o(bc0{ryJG2yo^( zy&tzW1ICE+*_3;-rQ$mQ<<{GAp1)9N&@zh9G2s^q_+*lgL?!Z6#Doe;q=j0+5hlry zWSRu@8}h#W#E#w|WD_iz4BO})ukh%nDRbgHu6(->v1M&d4md4WzUV`gL4Bt$mLy!W zdq&qtY8Gjj=EBqS7rAb^;MeuM@wtfh=sxBzS#uY)a@PVKup5~X*U6`xbiHb6_K63> z=dkhEAB>z2Ex4BSA2WS-n*kcx@L~djy3BP6JACRn z&(j~1kx}oEIcwr<;o7<{9q4-zTrt<{WD=03q3sJC46jasItGOq*#Ulu&K5W+WL7RUCmCTO2kpvtXaW zj3bTIS(E^nFK=HY8wJ;75G(HVQJg;#h*G1qV=am)J}(f)c7w|tn+VU0`#Obf&l%mQ zl{R~ft2KNdI;^Uh#MZRcb_p*AEHYK^(u+~Lt(0kK5WBf*wpoq%`=!%M_jM^ zNV-C;@=M4XK}P)B`8P&XM2_rcGz^VmgM&i#+v&^MtcqTkj*NKHpWfr&bq1sAE!erT z+)aOZW5;KewIDWTDoP8Ywb2B6tdkK_Po@eO7erD=MxTKj0#*yzf||BKdrX0{5grl#g;>ON^V^Iks4(O{$=X3S&%exUjc`N(#Zm$t6z~B@`%KV7}P3yi`i* z^$Q35%F-T#s8%yu%cQ};yC2k~#kzPP%Cb+8IPBjRf(3C^Uv=5inbdj<`I%;%NKeya zY{$Dgh`zsj-iC#KG>khP|6?^IW(-e8L+FS+QY_d!dC7HA2bpq=t zaMTNp;_~KqL2Cdm#Al4w@k1V|sjv2_|t{&0suO-q(ron|A2Xb;q<}br3im3{=aVm>qn* zF>t94L+5@M5fxitv);=!hHyle93ijQkaqM)*ge>&FuVG)xF=smA=s92t6vMZjvEA$=n1X$T^`P`SxDVh#P2N{tE<#352@2&0ys1tN&31 z^4`sI$62?#3ekx+< z7S5=SBSYj+2oU;b0uKA8vpw<@J=ad~*l32HUg^^`4^NPJn`UTfw%7efny;w`HG3f& zdFk?G<;)EPkrn<%B%#scUdWJ+O~5kq4D%XgWso(cvAqts9m{0~|Zej+4w~q9!M>$aS)K8J#jyT7oTR2L^)Qqdr&L z;_!gP@D7^Lpxc!6J+2z#-8A>q?;Z?&M|5>Y+|=#$xa8#N?GBENtnO6adIxHr7O?H? z@O}Ka+Y()DfmfxKwLM1~Dq>|8jY$RDO!bW*we7}pE+>jHCDDl#2H06}@Z$bK3Q{H- zodu|4GxTDtH|3wBW35jV*TM4z)t>8JGF|IK0E?etUzG}Mt=VVXP6TJSVyXuYDe@0sAh)kAW2ymw1LVGF z2&`Dcx2BajN34(@E-yC>aVI$u8Rcs3t`8c zb^2PqJF8{0x`N+2&?~xBwONs4YEdb$YU~CBE}^i^Q3~e+-GxHLZXxW7pr}m(xKxDy z$_@F#cXeuCEFj%*ge;$r1%#uh}`mcZh?yVvY9U36>G;__SwOg+`*j{WA2swj#IM~<-`;byRU zm1DP7M)AY?>iflgVc*HJ@_g)!in!8I-l z5*IG1Iqwphp17lTx?I8xEy%9Ks5a?3YTm*w5DhiPoe4Rq+*)@Z;RTZ(-1PO7i*=S7 zM=MLOFP@Ip589uv`f|IaCVWY&HB^5}XFOk|v@2l6W7^wqF;@&ALM#NI$5Y+ixJ<$< zZKczjs;4+Xy^7^?#y}NsRUS#R-`E%{qj*2Q)?}7>OUg!_wP5moo-?^{sje16*19^E zr>W6)>{(;g)zG5zG9+(y?TXuljV=fp8Pu`8QF%7G(AUkEQR*Gm$>P?HV3x4Kq8o)V zvK|Uyya~8lH1I>=2u-*6fr(^@!@TOlD{s5du7@ng7}w!?s<6KN^`)t5N9EV|gC>EZ zUxQ~D+dP*7iK>ZG)?izhonBpObY#t@B&)u{{0 zF&$S~*tWy@AgGFC7&bfWFraIqky-Aujw+OWEZ@9u6G2cmd^rb8QlB!0p<0fNk_*Ij znVudsuyhwI?n8rUFeE6wjQ7ku(i(RZ?MnfTX+;xv0zWGO9_qVb=N_qz9Q>iVj~s(b z>|OG#ID@P-K-xZAu3pctFsS{wm%>?Rgn5#Ix>rs_L-)uf?|47NYRAD+lRJ7#g)54f zY&O_{hBcUq%7`!z{pA|zFbRl0C+57b8RIQg4`A6-XJ40OhG~u++|2zfJ_tvSRo~HI za@1+^f%vBFV*wiV;24Am%j=1ub$-vur`=V9oxpC%t|RzUsH&DzLH$A+5JmT9Bzq z0hVolt-(t+pY1;O8S%ITOGQKC^sV6F$5rorYgfz8+L`R-gVUC$ccw~G@SSM+=2JTg zJLnsN*OYFHP`8US+oShe`{ESW2{#+>46n|NQhN0KP$8o3WbBMUH^KP{WhZyo7S>19 zb94oSAN!6C?sH4!O`z{XHG607=G*kecV^e;6s9e#9AHdBo{;HOxXIY|8hu4MF5K7j z8$(D*`%zeAv8Ol2rXNY3!Vn7VkA^S`$YngkG$;Zy2_-Kla!>A~IKqZ>aS+t4HO zxlI-+DdO$sF6u2s{~K{{8B|vgt%(wx1Shz=I~*K>2Zul)xVyVsa67m=3GVK0!5t2M za6h=)aPOQ%dX^{(2zyLazzec#C#L$Z&<#RKA0X5#gRw@Gf9 z&xaIQQ1fMtg|P^t)TJt9vYHj&32!5^uihMmffVc|viqX2N-FFZ4NAr`m2tGE5ZvZg zOg0e5u9pN!i!59^nQ8u#;&Al>w8Dc{Q@)AIj%DG8Sn9YUagvM)WHk>JVVFdNuRiVn zlxyt!8;Qx(7sCE68C{$)2eCP*T{m(foZq>-!Y*R`dxC17+=4BqxIn88rrzP4G)HWZ zXYT~c&X6Kc1UC|EgB|s@Ud!yS+y===uS0p>dY$uuY+Zc~WPkCnmD+K{y!AGfpnNTN zHVFmj==g0)wSmYE6+8F)JKKkr+T}S_)5PX@jH+M-H|{>YA0TvtZ`jKoNCa~UT73RD zUqGxa~@-Qxaxh`o1O~-ro4(rOfDgn*l%*t&K>F-{B zIbWYol>`GVovyq{vrwBE;a=v8ser!?apE@{aOSOQ;%AM5fkr2MYwC^2rIPzT zY*TWK_t}Jsg4~*7pF09;sYP#ditn{lYR@z{KG!==ES;u)DuJxVM5R^^{`z!B7*Z6A zDrM0@x;8D(=>3D}{;x2glW{K06Zrg7TYT$>cPy?KOr=F_s*52vqy^nTt0j4)omcp@ z)tFnNzRbc`5K(Z@D=f6_@P>r73i5MojK^Xy(J8AD(*kSp>+5NH61h#BGQ;fKwJ0A9L(r z`dx6SdM22(S~E9V**AlvdQN*7tN8Sf`%!xO)RWbK_R_Ao>6@Zq=yB!AC&sS;UJ%5m+N7_1e2$!lBNZNt|_r4w%imXCH=r^z>V;0Y_O? zR(PL>2gi%Fe*A|{e`c|W*D)t#()U^AGRU1FYB*(52{{kyn)A+t)s-7W*xD{8BNDEULJ*oUyTNAfN zAA1`|zkobY`CWNG^LoSGyczmY}B@bk#tBoFXTu z^fX`QL=APu`%Ar{86fU+fIz)?+k_z*mmJ(Bp!%}~L&A~Q;V&!5MIuZ!D=dFJbGM(yM z*>(8AbHJJ!m{Q2yfv(ZLM+}ixRbmjVEK?&Ylis3UZ)*oZwcrxo{4HC0?$u8#JZ%9l zX+s0MiO#CW?qaT&^4ivOqy*c*9$&Qon7d{iynPPdPRb>kzXq0-<^(ramlew$dN?jD z-5(4;4E1h$aA{IVe);Rk<=P3&b3)`Ws)X97e&&M6yBAb#w4iKW`rzOv#NRgq+L>7x zW8o_QWS&x$D&a?h@{hv)ZT#(3TbmlF#OfH2IF3>LHYR#SR+;lM4(&$tb?iGd9CREUi&A&IXJ3$W7#V*Mxa9DgQ5qD$evNB^>`Ot z+To#7OWUo(JK(I-;r6_}x=%E`4Zzmh%XCZ1v0tB$y;gfCOX! z`igUWY1=ze>86=7+Vu@%*gO@-(T6h9{;<&a)Su*qML6`RN7pBuYjozFf92fA(rR1x z(p8f5yV99^3B2>=MH_UrRD~lIXX+PeXQuWauq~;Gu6$cXDEeCj0=Sap^i+9Y-5@?k zE!l*OQ_0!?lz#dH!WiD6G;mxdQM`rBahbpEObTs}U*z?T`hOiNQ$DT>)%|fku4~CZ zM;Hc@U0-9Ie{+$*{l{D~eJRz0Wl!8Ixv)(hGWUs=-yx-C)*Q-C{6lZyg+R}driniV zG0(rZK6F4={}^m(#{||%DU9fZ2$WfD#QoOK0bRdoe?N8A(fJz(V$d2neL>f|QzEz0 zicgR>`*p4Z7;SM_Yc@@<&!@07BMud6iu)~hfd@LZ_53rQ@iz z64*xv9y9nlVA`jJ+~#&3;Op{Qmpb=mDWfUFk1F2x8BQZ0v0pWco<|3`h5Q|>vfkD~r3E;aWf%SQxsV!C+<)}UUPsvg*bKySVZ zI7X7>rqh=g6kpWb=2%2xOju#0h4+5 zV4mI%&kE+kpv@j#=+jO)`5DLq2G(B~U4G3%S}H!U{C)J=Kcyq`&xUO_huBg^pWJ4Y zW*)$yDen5z1v;&QM@k9!z*zTAHcoz%$k}WnOnI(Hg6ZCIuGMc$H=;u;B$2E z8SU+Yk0y0%3`cQ}qs5q$#Ug6PDoVzW1r6;xRwG*_wrEv1BkdOV#l%4kTS)Pt=ap8r zRb!@~QW3D=#aDS<)^z3nfOwUvRT^(V*MyQHY5kqiIeDAm!Y~(;|eldoS_PuDlGh2pB?yd!re~dxHp# zIB^MPF;XJJfq%}fAan6PX%7|NQIOe(7Rha0w-9h3j7OgZ=8R>^!MP&R1tX59bXAjZ6SL;si%PZNzbUZvvnM2&?k?Or5Vd3kOr_1!WzNCk$56+8$k@+~sx7g-n{0`K{)pN2Vz)4f&zq>&?PEzoJMusYDE=>0?MUPUXsYXXbfF3ovaLZGH(x@mG1*%z&=!QOe*+>epu@_7qf^tL|we}^jXV@{;?H8{w1R5DquHNKuQ zus360ehl*TRoi3-9;y1BewB$e?uc_nwRdC)vFU&wBJ}__0l>$FBE1FX^{*eTd#k6ebl>mJSdX5rr*hvecZyGzNH;e8p5LyU{d-Bf ze4ghhx%uWoN?sT#j-IDB{qC2#U#_mt^@U#i+XT)*%~XpNEPYyyi_z1 z6f5%nu*Z`?;vY5e{;JTR(7d^kgYo+Icun~I{pOjq03eO^jy4Lq;1TJ3ed^!b z^m}A}zqu}Mp1NXfx|zzGpyX7Ca*h=|&#Uf!`kz3cOgn}oT~ts|KArz1FairtlWgCK zs@s1tyI#l-#FKsjfeGUxwuFbcX@fQ>Xg0Bg7A`RBokz{N(FU@zM}Iv`@LhF(-Y?>Y zrH-1wk9E9IDx_%74rQD(%lNSDHzdx)VBrYjgyc4Xri$5Da z@4pZFgWj~B^v|^4BSo71Vf-cE9^YSf(c%ipqtF4T|KLilG*girK!K~IJ-Gq~X9$FK zfZgbKy0aGR$G@|A#?P}DJkjtlr*m)fw8xicDBOJ;PzHPkj1zEn*$?EWHR~&Qi2i-H z?;Bk!_JnAl8=2PpZAQ<iIC=QpN?n%YkSnxKak@u^Ups03bqQ?Z))Fi7cVSn zjVU)FI|0lZpS*hZ2ea}`e|x8CcmBhw+57s1hNx%Z6h%vfyG?r;ebox5lOS4m$pBk~ zKkm9178*eaE}}e0n~L150t**+#b(u5+D`Vc(f( zvOUP0#(1aEd>+7hH_%jUeJ$xtk`I@P-d{OGFcs?%gd-qW^GsmnZFGi(YQuhdM2_aS(!PF%MmeuH<9Tez-t#~##B|~Qw0oE6;d)b%QkJau~&v+r&wg;9!{f_BeHoy>+x^N@;L?nzP z!*W>vpkZc5Z{~3=@9l)(@vLt5o|93YGO{Sbgw~{-AhfDHdAN{8GX4akJH8V@DxaHm zPzF2`B&8HCeEoAOZBkFobcVIUz(`xIZ@VPa)q^4h<>sP`+_@Zy#yia!-#@$7&D4y> z9UWU>3j{j!guSVyLb6f1E=E%Bn$i7P@j+d)BD4R=eU2W&5_Z|7egpebOXnVd3)384HHJun z9(jEvn1N2_^R0}hXbDCLSd^-CjaY%U3`aWAWmLV+T$@{n0H~BQ7-yl^fuO{$!s{}f zx@Cme_dt?Q*7=zG@TP7%0*wyyP4_g3hZ=v&+gr|G=lJE~MEVi3NPQY-hwys41{?BShpRS(n zJh?DbiOu|Ye)OiZY_Ih@w0uveDlR^v>EE0L`V*Yon_eb{ZN0RuiZvSjK=W8KC@5U& zXiWvMm1_AHs+VFOW4 z6ZT!ii%)#6^JXvne0W_i@ifzGG0;WAMnP?jFbX&(qxW9~&JV`Ci|<4=@y-Nq z7I&}4S?MuncoX}*%aLn(hvrkKgNon#P~k%SueM=d35hNK=@2~85>^wz-vAX@_c530tnOM2 z*zk!$UxQ(w_R7*2bwZHJv)gHdX~qsDVc$Yc3S+$gm3&`lm?;GW!-G7{JF7)N%e;)~ z*(|}qSP?kw^lb+`0*hVDa0-2YgK44^$8QVZ!40zg?J}CoE*Pu`zmCe2cRn4%i;lx6 zNh;AL$oIL%BAj5-Z0?sR(m?5Ci&QEE&H09(CDx4qQ7l3jv5eCKGT2txfkL2X0R)aA zJ&@LUo}B)F+Kq$JDJ-utjXs1n=Q(c^oKdl3b8hEWQmOl52Tcqe}2#yXVjzW&4 z6sZd4*NHGUD?2FQ*VPH8-4AhEkXE;od6N-bYa5Ld_0B;P-0-U@dQPc18{)>SfK|hK z)M=F3Y21Vj<~XqwtC*w)>SAnRJAHiAR*|pG==^&n)Y@|NBcKY*znyZ@xx1ZVgH8;9 ze@Jb=&N@WHK543K!k6tHlCv7?3TFkBCr=tTdxUdTdFGD!?v5N!Ou6H6q1KciGP_1>Cfu|BV$17P{%Bn_4X-E zu!WW1=_4YJu*x+N1ce48v++FP0~G8W37)+J7i!*mGk}Sdc}A4#@53pH3MORfV_RF)$N z^X7k<{P|291J)_7M<72fs>zVbyMb(-i%!Viy8Hm=p?*7q>UaRn=nqr?Y0hvC zcAgUrvq%DVS1YSFQDdtbZKxcpL&%pF%p}XOMEc5HYi{!a8Vy~|5JplVBB1yOsmYPX zrze0~p+}z?d02<+WIN>B_8k8EZ zo5DM7V>>2Mi#l_YF$n61cw}Z&l`|*)voqqY(Y6ULhk017?{p54@(;q8{e7xJFI$0G zn&(*S0qKgZJs>s2x{T z(Sbupp+cjGT<|%9E6=apmJ-5^PXhd=f|h4mzx$m+(+BUAe9-$`fAD;szcRTCFtu*O z5X@M;{H4EN9%z-L(^TkWU~W{PQ}A@Q93I*3;?#((5oZH|rm*9xhfwHn%Bnvy<6}@5I!LcQ`<>W=l!$=7~W2BIGG@ z=4?PN^#MmsEk>gjKAitSgLU78o~8~Dh<3Lo%&$+9S?B%^nlUCA)&Dk_zPa5oI(Dt+ zwfA$bwS=(pxQzL6@dZcw%;v=HT!p9wbQO-MxHLDs-x{Ik9d-^fB`*RLlst-lPZtn8 zBkCRm)|TgmU|YQ&7n2MZrS`%zcw-vIH=L0Z?fsVGL?0OwQn?fQ!IWbICgg}_iKcx> za-ZCfw^VqI{~pjlKA@KNdMX-v0oRp*jsZ4>vM=pWr)Epr!6HDtNK-t_EJBzl4tE<1 z-Jl?UN<`81->>1ZV;4muG%FrWz)ouD6R@+IHNO8VK;m)|o}~??0~uQwCUQ*-Ig96R%7f1!QjvYo9bO|E7Ev!p0S;=H}kwC+8@6^lx$E| zWOEcZ&M2#qX%8z{q|d@Gs~^opy*w!D5;?Bun(_1LcPud?KaW!)O1ar!Q5xvzJ@J1G zi+F;CX=IzSU=v+<5R1>)SP3Wc+FfJkkAr-}J6GuQKw9LBcIEO8mmM-WyI`VR_6GtkgM-SpL!DHaDqAJt7J*2-d!+^so*{i z)&(($dQL!PjU)m_w?ZGbeyP`{A&AgDWaQG;Plh=5c2ChPYT25&Ej2!qKPPAAqP7Lq7%Qj#L3+KWahOgvX@{hiB z=T0yN|`AlGsE%F8gO==R}zwyU^gl+@$2hbIxyL`vI29xpd#?)ov= z-vhpZ#}8=N&K1%(5m$N=`Aqc>GF9_jYzVm!SRUM!I0*p(N~rqGWJQMr5Mx{{=78iw zbc@n>JCMm_cN&uwwQ1Xsrvr`OH@unEV)9I~r+QbqO>lW2E&~uP70ag)l%T(OL4V6` z&`!QqJJwf^AT>_Ek7A?A1X4AN4}#SC6y zu?s>CKWuuYnH#p9duN>+qsRrQ`Z9AKcmGOa{=A+f5&|GC3~#LLz)o;AO?a7GP|d8R zv`#IKy@#SemVWAdE2!hKL~<2r{Bk_(4duuj`gTq7Exo)D=BEf-YqYxR9dWxH3F2|F zlt#Ju0I<{3i<*i_5$z|%V^p=uHH` z)_@4llBVt$EF)B0@tPIQlz|K$B7u6z%v>YpDL>V-WKj|T2&7~+pOI$(T2U~C${gmVdEw(fDy+i@^|R6JVvw^Ez)YaY>p7n;OvpI z=lh!G^>GvgC|41pQEN1*WeYcy`JNec^k=RI4N)%^JPL^aSvsPjocd&&`=tPQ< z;I-+*>D7q+dw)=z_-cUEO>F-k>OE4sZBa1A+|((}#Mo^e2w$^_9-X+|6i~BF^wyG- zK8xROBTVmFLkOCfs?pu9M)0(DCzUj?Wm#8mo+h`wq|bV@{#1a*bK;CtC`@x94s1ri zqR{yKIy<#ZeB8>f&6xBgkplk{O~_~aRe7$z_`$js-Pb7#sZluIn0;sq`&$^5@ZdMk zCEOqg>2F7eGAYKlc@dq3V73#1Mn8?>E9)$tR&NAiQ?oU)nGS@E$h&1lxRt|RaW7VSRbn76@!%O@sPPNK zYAW4p&U|q3g$n9!4oEGuxg|L#IdL|1>+4I}f@=WFI3bikqTK{UDcDzSDU|50%#6qb zcAf&I3uESnyYd7ixN~*lcp1zbN?h7cxTgCoD?z#Jn=*{x^PK5KYAuJoA%AjM^8C47 zV5ED_r5myIZYw$CO9Lhr@!uPXGtNN>gJu$7QTQ+h6oE1uyxYqvFj|?XUve+nZ`X;J zW5M>+Ho})?D*RvwbFet>A}>hbh7<-A1lt!Db{lxI$zBp%KJ82&4&0;B+gK zRn|F>=>l=_htdjM%y5wqp{7!8cqqKNAR+J()?FDbic;4=5dsb+ynY<4lO7;-;I%xO zXrK~$?D?+T)Bp=MQ|@KR4K#x0(RLX`3E{=IHXpBuHtdb=id%yy;ra$OT83t*+j#;) zMoHU?-QYETZx3mC{YXr!5|{OlRPZhfE1}Gv4-El+{@cMw6(!?uG-YxfxV{LW$rB5_ z``gAfxVUbY`K`r}C$>8IZfbj>W3TcunwVJ$RWJp?W<2zl#|M1HBi2NFyriiBv*6(*JHEov`~~?+uG5Kmvl%bi?_(p5)$}JrreK)KdTat47_C zze_8~_D&2cxW`EjEXdtr15LL2613%pK`3S3-9X#SOqCD)Z~i_RHIoS*WeO)UXW^dSOy_6YEAda+deT(i zAq_aed?+b@)YM@ram64x zg65t~b@JiqR1VD>e0qkiC1|&{Br>ZZwaPFi|4i{ws+EcJptN)+?9<05H}dL52@Oe3 zs~T`4JX&)^hT)HUB<*{m8t1=o?l*klV+>_%+PElSJekNHXf*w~@S_r?K%Ad~|eR zn=epb`iAteS%t~KF&+`AFi78`Jv5krp7#bG6}A%3;&&>@^E$9l6gr=FWvqV)GH6OW z7`oz+#^oMl$V`C+S-%W_&hDWUt&KMO>YrnySNn%v?_wG#)p)`2qhOX?q_tDvR_4h@ zV-dW0$*(g6GO~FHTbZ^$wfO*EpZDkmZQ(q;^hN+|v3|grY#(q0{3%c3t3l@3)5D>* z%4PpCJK`WgCtv=pfuTyhKwGB>+}UmEmC@?}Gvwtc^$x+A+T{`>S61v?a5K2Z@7q5u zRn*N@h7T6|b=28mcul6hMd^|4t&bdQ0>~iU51`oiYZNk#lHe={G-#9uICrh z55+y54dK2u^2qNU2SfBL*t7(Dn_}qa_aHsV8t%Pcy1#m9fCVx&jD<&=4e{-I;{%?2 zLHlg)IuuK@5i3#c4=FhEVJp?Vjq7S26b;?$N(G3zpVJSdRN;cn=niyF{iMw6_tb1( zqd`lmydK$>g|HT9*PNkSL>Al0z;|FJJ@&Vb)SN!V7y&@?MLpL+@9VchC`7w`p;s4P zZ|*@37Pai0KgIh04%j|;OzhtEi(d0^En28wW~Fvtsm5^opOxbq``z1Tu95mI#g5D^ ziT4K6&D3pIlyG+;Z#29wDAhhOcxfJ{z=@6@&tw5Lr{F9KU5BHGgSf!>42^cheyis-! z7@h(I45f^H(iwZ9$dY^t2=UByH0;6S z3&^PU7TZ{K|2Y~OExJv}VQ0+xWrAhuXc8_R-?Xu5&#)mQ^NW@c>p=rOw@AFb?5wd3 zLq7NFhUYTd57ien-dz*dBOHykXJQu+(Qmpo;Izjc8I!-}srsm|jl=phHOs#PKHlOQ z?NjkEfm7kHO3%Qxn&fBnhwj`RW`Jv5iQAzo26nEalY}L~3O~u8-kPbuq`Qdz zr3(jMFm-1o`~j>MgWUMyzSsgy2JA_V&O^C)PBv8OYr}Wp*6C)HH17gNfa3+`6rU>28HA zn64{rpVy-k9LR;7JoFzks4u=|VnS~WlIp_-%5*Z-6k^?o%$6%>LX3@RZ(4d3THUs6 z!nZrJpoYuVNZ}l@hK8_sZy4dqHc}9iX*DuToRCC~HPBrmj!2}mh=Rc*MDHA9f7*&2 z#7s#VXhQ78to{2d*H~zw`-UUv9-Mr#ZmH$xY8dbZkWI7m<6nQ0bDT5q>CwfHn**?ZP?^U4^VIBUB`JjF4KrTI|OVNU+Jj|OEF+a>(I^bB~>##^-tKZndaLn?F}LBASSnLpRkatY-POo?W;p4iFRMHb`}AK}UvE|>pY7?s z#=t$oZsgFx$MS2;NSA*oWiS>B-D$BQLvN;f4l+t`p4%p+a!R{;`=&Yp@3t;S$J0&< zg;ASv4~1RUi8#`9Em^qE_C}t67J(LOY=`Cz+zRQ40NvU8g@i7eDS4DVg$uQ(wrXy2!W*Gb`c% z<3r+HBD)&BxGfmRDqy&>RB(Ou1=vlMj-u?(qvqjqzMsY<u1D$9D|wLe?liLo-*{MR`Hc&EgBWD9=ElubNR#=CV1PwaE?xisVbT4?P8dk|# zZFC6OMp#~E%R~gF$xscvHL_p7V0QjkHI8LRHq&6BJ@f2}ru}%9e%1O(+ojW@Gt#DX zP@w}hihp?t@Ihg?Cb@K|5O6EH$O7HgKlG146t5*=ufh#M|wTUbt2fDsu~y} zPb^7>h9RJG3w<@ntr)_G7b;A*MZdduh@ z=65R-`=0eY&1F}ei^0OqrNd^@3|>aZiujY@kONlXf-W7u_(&2d+T}30pM}U3bqS|> z`W9boaxx^n6H~F{Vl}F)z`_IEY1?a}?cFL5Oa9Mexo>Zq{*NE!?)Mk{_p9@dzxw{{V(-;^H{IQDQ>MMKyKmB7?|(er|G2#W@p=E_ z^#13gdHW`9)41_Eektuhgh><&J51esDdUiZNmLCx%-nk!#p{P*pZ!q{vu-~~5_N~~ z;5xog0QCnhqxk()hFOno$v&zFN#gF39bDI!0-*lTZb6Fzd*roYPAJQ8(2v>++?X+e-p*x5)@rF>KbX3{)baai5_eYs_0@-2 z%Xd;2F2_FHw-(uBCxS-J9^-bGCF|Rc?Squ=QNs|N*bQcqZf(Ke%^oCIrPT-IsV{A( zONHGm@2*HSV*$FKPaVPFcrdsY44wglFTr4pEin5QSY-?BxCM^i0@rSVXSTqXTVRZB zF#9%GWgG0c4UXRi*KUJnw!xR%V2m9w`wm!T2kf{5j^6>-?to`@z?VBXZFCCdti)xF#A4OWgqOg502jl z*Y1O7_Q99?V2lGW`vF+x0PJ`Gjz0j`9)M>Kz?TPLj6*Q{Az0-Q?05){KLpnvf@coF zmxo}CBQX0BSmg-pcm$3=0@ogaXO6&^M_`O&F#9oBE{Zn{Q6o^6&o>hY+@cV$;P3MP3%+e+fFu#?sDKQ>BWE2k~W6);mo2 z_or1*afG_;UkR-<>8s>b1h18(XZ+3?E3Q=-yvTx!mzU?I+;=^#4=9;u{OjfI&U5qT z+tYchzu${@M0X=v$m-AYd!KlnJwL|O(r`O#No9^d&%Q4>zonk(z=UoQ6WW}CMn_DL!JB%>XT`e-g?gW@dYEzU-42|979;$ zeC1({W@z`PYmE+BtIVw4D}7mlkQa~JsCBzsOS4od-%;bRDkARuR@tA`j~(?A$als1 zMGJ33c5Na>>0>*gXYp);Pguo-K>nCJpOtgAE*x7>u8HDb`LC6BTT_U+DbCI+4}6ty zD!UGxtPHq?J=RaVYcH_ydl}I$&bu(JRB{8gV3iF$$MJrR?~W#`QAJJuW3~_w zcHH2^3_*;}L?Vf&q>rcE_UsuxRcy}f$zlk(6rJH}%(FImqThhuvztiJ%nC-;;6lwW zn2jB}?00WY&(;rgH1yi=hDN7SbwRt<>~NFLa-&(oK>WJ@opq^AGzgkd-u&XVDz~VD zi?^m%n_ub^S4kGq;xqSbIJSd@cjy;rJ0U3Y%Iy8HZnIIkdg-R1^Yy1E5Dd+)X14Ah zk;xhB%8|`O7(yuMv-F z#2TfbR<_Fw__M5oUjWFt7seRf`I-1#sWRae(gv=iMqvYLZ>Kg!3$g zQ)?^+zBL}ME!iEF%x#s+N`1ZbA;DiUVrK3Frg2m6Y_Lzk}QV4@yvwv z1184@FFd4g2@Oyv9m0;tmQl32KeBLc{R%mgM``>&W2%}{g*H2`j{<(~9U5I5DmgPC zr+IrA*&Wt1Aa)tiT?$IB-QZDY%dAa%tmVNCn{|rLAQB%s&g}}nrljjDLSBlqzY^5I2SqihS5CqeD;4L~eO0>p^%4+` zzrovJd^qVGoUZF%h#5?gnBvONn-z_8^odAWWmqQi`)7hy(;pT!NGw%w6Y~XePLYQA zEbbfsim!MH2(Qe)g&Obsw5b=weR{2xHF5G2t|bUvDM&n;xb$GxI+7`t7YVWen0XrD z2-0d1FuRjqhidk_2#I+Ma1jLbSOHu+|)Ovyo;j1)v8rFc;{@F#bR0&xy*#lZC|>VwP^%&dyja_tQl_*KdV{bqV}5PY;*Lr9CZY; zB~xCRF7@ty!lBZ6f{g*@Cyr#Gr7=pTZd$?i4k=pALN^nIX%8^!{YG@)+xu zh_WsJHdDfziqrA0R)3}5l=*uKq*kRVNwRmh&2obB{LgZ%n}vI-#t4HZxwTBMkNhD* zMvDp<6ge>g22+q6aLcsY^KXwJ7aCDQE@caguz__#K$xq?npag|&Ia3{jdCXs-T) z{i`!m{?OH^NcE}4-sH(ST{NY@M35Kr*gRX{PUr0jB2MNsyDO2{B$rxy^(aS^ ziH=QOABNm=O;_D!mS?Jo4IW&CA`hP_+vxQ+ZQs$c3g1b+8?8XUe$WuD=$VI6;m!z# zgMhoG^qC8q=15-SN-5V^<$6McSZc_ z#m1AK%o%Ga)mpbKF` z6S!OJl^C-)XnIoP-T2iGqOHT7})}&qx2$ zdYYkW*^37U1*Q5yT=u_DIs5-2E&C73SpU#?|Z-(#W$rQ7aBrw)YyDoV+?_Tgc?+W}(CE0R2Z4|Atv9)jcGDYBfk@v!k zJ(Y)@ixi~@U^4~v501t6in%IYncODtj*sMQfwy^Hf>PzZ1PGS&gR_FT(h9>gp`KxKsz5@OvvL^Ufcw*G8!;U?~<|Ko=sMf^i7eP7J-LMztw(W?t z&LVF$(x=ySJSJZNZO#urRuBVdnn{w-QE;ronM{B96Z>8GLlgg=5@9Z4oJq2pN-3xu z_gA->um1KSWv#fGVtnWl&-7?A8KDTMDMvPr&6A1PV=7sgu5^<-4=&hcFszHDo0t!Ha}j^c!@x< z&&&UMQkJF`g&2owP;#(eU3|d5PR-}Ix2EFRP1qRtIXrlExf(=n=LW@BRYi2C8t}G= z2?d#+j{Z$+E-Ec?GQ4z_<^o-5NAb=*G%#bGs@&y~C$Sap7W z-LMCwvwE2dtiRF(7?2uoFU;XA$(!RWM71=v_-sYjs%8iAn#raQguiQ%Ut?I6nHW|} z@5_q!m7o&P)DL(}XZYrH^Ev(KSA@GYs?@YVFGg*w%iSCsCiPkkKf3e;qW4>N?&UK|0FDfmTY z5QZ~ALBOa1#aSmiKo$$9CE-y+F1UphINbzwpW%QU_cPv>H*kDVft^p45l0a5OQTB3 zx6m-t*?jmPYj&t`E8i~3@YIrIMhFn)PDN`03}pUP54N+7@Urq%3`DpwWPwK7djo%+ zP@QfY3&f9BezDV zFDS4xh9^RFjLI}@OFl`{?dM5_Cvp*$_lR|%Xjo3>D=E|3!U9_j|?gK3;^L-;p0dNqe<%6BraUk=5v1; zw?Wp|iVU228H$LwN`Ex@nswuRtm8?#&y7>cg-D!hs48a}iLwclwLPdmdf7^?gIY5d z+9%3?%XE4(0KAhYH>2JouawyJVGpW@urP})y-aKjx%-p*jQiW~{z$LBGlO?L&BmVn)qkB3nux#jF z*MDvzy*4tL%@5t0PbqJ75E{y+kiSt*IZepl#}#U4fi#ELmQO2hd>C597L!ld_Mgr# z|KVhnH@0Xihh77+XyhN;-Ovg!Jlh(+{6_Pj@9bDpM=M3Mjqnw2WNl&U3)AKlJ9Dm# zsC~oyg4S80wp7}?bia90e@-2&xs%-d^g{YSa-lBQHdf$&P<($-q5fCAcO7i38ReLN zub>#jD|22y%UjVtHkSl=FI+k4)-*sP45Q-q)G zt9`9I%*kdN>{mUP=+2YP>{@z-Z(lR;%K4pw9b2s8E5JW}Gq&H2)Ig_{Vs$Gt?py+M zB@_zhm?s9@Ou+MC9Yx#CwBk$ zi^zpOa0>G;A;Ntbb-7^A2l@Q#G)_2pg0J5XZe5{Gk%@7oKc~&9T?Rjgd9+VAt!YD6^TqY}M~bisuReFwECy`;p+JgDN;AhOK#OCUy{Hxp6Vg zisJuppkN!SXL*#H=kijTJ7+O`W)MlY8b{9#KXDHX8mbkyz*66!{Kn^|u$_&E9Cd<5 zrEh1DLvoM7%ELDOjU?iyElr>HgHevHsBgS#ocfwTwSAMz`f@CLtd zoQ6K+X7bVzPMqWZOm}nl2yW1R9w&_a+dfw5b_@a3mgGdg7b!h92o0`%J&GHSq8gwe zS1filSci1yKE0RN@RX_scfe_lhBOCHH_wnoDk(gxb<7{^jP9>uobw+Lp$<0MvWNgb zQkle`y-J!hB?p4le%kjd?-jL)TQKO1=NcwYLPG&DEaSJpDhkg8qX=c6>RW zZt6oPh!*R=WPUoEnZ=~7+pS8Whn%B45Z}Rlc6c9I#i5^$!ud4oEgt{h*n7*MNP}%# zuyA*G8fo0!p>b&3-JQnW-Q69UMjCf__Xe8A8Z8_OcPkjqotSga#EUaA@4ol%-G5d2 zMSPW!x%aNMGxuK0TKXp=QKLDhHs2p_S*jphN5K+E5qI(*1*H z;wWKip6n8p<8vX(HZLAu~Q_q8NBmEu+psfbwUSVs@_MpNpWZQVx zW1^Mq*Ie0I=ISvI2Tkq_uNyQ=!WaAiJwUi?U=zYd4q1a5GXmWB@(r7_4*1gUO_8`7 zVEPjj@O7R1W^gsVlO^xMyvsRy=FWQ^aWGu@u-Zj&cgNA$@D#?mV`M-M-O6z#wlVPd zI;QU*uSGfYZW<=otlJ-=i~Jc*74YX_e;7q|_EU<3(=`2=MUK7mwDj!ANIE|)@ihdz z_0K{e)|j6JbHf=+lPJwKlL#vjdDvwHnQVtc3o2q}_>ZY?fxi32ueMIwIDTUITE9>j zrFDx6v?R2aw0NuBPc%VAPFeAhd-b}r;Wz9oCvK&ZO8QBihnQ=i*ltjqC;~n~m2WNs z>YS;9___+#=pyGR;kTYTn<$p`YFh*?-uEi*Rev}`Z8~vIrSw$NF8ea;fumY(b@xZ< z2E7GmJjC1Y^c-?3qz@V-$zLL=RhKcC7>Q>V?=?s~za!givRRY(Rx~xOSkE-Niiu9S z8YoyU331`svVV!JmE5iP%;6F$XpkOCsKnq(>13^NWa@yiQq7;Zp_tTJASs=BRa^P+ z{7N4Gv$$zP$0PmuMyQrHf@|aCRfW)A(n>Ejq@?m(=iGxJPutLjpqsp+X0nk7Oz}-p zp74Qnt3y)aPZCDoipAdnpNOxR2X^%GD0Mrr3Q>TGDR-Ka$S=9(45fc^{c3EfV8<54 z@-tO1yek`~uLV(c-=JpM=?1maowZIp4L4+>e#)NkFt`1pn&N}~=0M1Y(~_B=zUSUZ zf#y@$ZsER?HmL;*l|iT1_T|WO0JwYI9pVSkE&^9M^}`Ob`w#D*5!@Whxh9lxmqZ0o zY^b5gA)9A)ITwECk7Ai5YSdeoUL-$eQISe_T*%su`2rkStaxVoBeuyv;ePooJ=8jm3PH-TUr9KE%g|WA?X> zE&qU3vRN$tE>Dzq=k;E}KGM;fC>#USNR>I3OspwO%N?3=yCJmM-Lsi>maeOQ zqtw!z+jovzZI~un)>$b+;!ox7@Y31Dpgef6&qHMVMZ;yd6LR0B=N376`(kGox#ry zZ2VPI5`%KVH+`|gX9#!Y1eIvfV6#eX;{V&K6apE-LJA%OT|ufDiU|r$md*Hn*tj6h zIDfXh8p=g=W2D*~f!{ zG#`qzkl%>fh(j_ed(RC&V2L`jiP@Np56eJJC4bK5qmOmd9GhBq8*9jyxJ2@L)}?2R zUBDiD=4?LRd+ud?=FJBsw#KUEf$WIO@7dvXaR24d;2(?5?Km`p|FP)R|HVaT|2K;+ zVmHK!KH?eL7dq;}=a!<_xb%CGB*&aP;%9X9yJ&R|D)=%zpIc}jcIf5md}Bx^>c!7- zt8G^7R6H-Wx=ST&mo7>;uH4H|_T^4=6SM)PW3>_YDaPXDUFPq!49VZ=rda7K!VDEb z>Pvmx2ix8MB`|!CcF2rS+(2MBa0Ar;Bhy8bGog*0`lfbsrqjvKg`@G z)OWCq)>qyvejV-2v-i_jvX6xFy;|-kmAb^AI2Tk$0kLdY-2v6GUj&K}$3|%|(X_|0 zHX#dvHQO9IVrC5CCH0O46E>^W4U3fSbl=vEA+w@`0O0)Mu{nt-SC-G zlQucEgW*diH4=Kv*8md}&Lrk2K&0wtvG{OfTQanyCB)js5cnFdG$eY47THgb)e|r@ z0usrc@M#BB93&`Fdq1)B_|s|A;xm?3zsx}{KcS#l;~X}^BN`%3zEEd~>#_9@{2RCwe*v!Vd#w$A^oQ_jeYEE)l}2G{r}>={xg{U+kNF}6~`Fk z`RBG${c~GIDUdZ+&#yLoA6)Rs3ymJz?=LqyHlJ*efn|5ws5Ef-H|58~vNuiSg}G-T z{XNX%q8#l9ilzp#+_e?1tqTyF>oY@Y(6hm(%xVh*UL*-KnYpFg^F>$XzhrOjBey zebA)z_O2EodMfI4uqY0yvF(tB#%1oxQq?|aj=#aox<`4 zD}FMl^WiCY7;AO?k$ca>6L&TuPW$rz5g`AozWUD~`TyF}|3(G>78U%%nP?#XgrC9z z0O23{Cw%|YLGm9k%*n;k(#GE6OkYoJjTbw>AuycmFT(VkdP<#11l(u+Nk)iPgpE}a z!><(mT?zRuBy!Int;Y0Wtq};KI4u&(7@Vg(nZt#7zOCd(x7Z6N=@WhL^L&flUt?&6 z+Od@ofQg&RV0XT|^{2SjK>V!0u1&O467rz5`T-YhDF05@^2Z_$w=-|!jsyuqGP5nT zE&Ui`*fP94K2L|0XP`aYd4rUVxq@?~AjB@ik$)*675qJp8ClRThw2BOWi;!)p`ofb z$H05(<)J3|%Vpa6$O;dkzZeA3v&@mrSEdpro?_266Mn>q?*_stM_Nb47KKVH*(H7N zF6xv#tY^1B6TZ0~>`wUT2gR9_4Teqj3J7^bAv2;}{<*_#{!!-foioZ#VG`}kneT_| zDH(pVh57S4adz+op(j7M3M6w8+%QJ9u*JXCV8bE;zt4eH2;@+V3irw$?=WsLN=IZtm`UzhMW~?02`J7zR%$9#~Vz)*@B4f^p`c{ zuT~C!r`b=ND5uZ_LEMAvXGaSKB420Ohjcb6v4Y?8&8+NAu0@UCqlA{&Fw@|&DW=g& z-Fi!ht15&MhC=J>u9CpnX9%B`w-GZKO5o+y;TOSP2BF_-*W?{s5;RxWV zVBN#~L7T||S*=_MGlL_Sd;!BAoV^UE8y%bKow;kRx9vU~bqI-82{_v3XDIbbaZW~v zxkO-K#v{Fl99^{F3Z33iLL9FJwz()e0W90loW{`UwQ=Bic+h%Ex=yEXVlVY*!?~#Zf zkq@p8Rw6JxbG)}I0auFzBt2w5>NJl%{W3RzMW_IoEFqv)(rE5M&D=5nYW~ z<~pGpfy`ped?}F>_0ezlAkq9IT?T82&a~Ddq)#QZ#9P#MCsW%nlw6{ba`~4rbk-2v zf0p{?lfCtR#1(16bQ>$FsIu0s_}1Vw0}OTTwo56Ev4`Z7Q55Cc!XHBDIc@I@?O+_? zSe9INI)is%y=Vx($#hg#ivmOaZBF^kYtOH!C^$rG=&oI?k!&8ZcK_)9WD=K(pGeYj zd&sngt z4@|#vCF;k=R06k<`E_mR!2HvO>8XscL0_taaJ*K^1*&^mN)jj?-IXvVxF8kXMKn8d z5}A<$bp3IFYAjlo=5H7^?Z=1{N;jf|2mI{mxhnd}!HmupS~pWPB{Z}S2HBy(tj286 z1g{_lfhEUjvlj{LLz5Ljqv@jf?7<)agQAy+rQ_6O`_~sGJdD2tTPUB9Agr}GvR+jB zkd|{X@m4*{If&GdMz}9tS?2TDnbtEW?jiKl%V3@l*qP?(C!34EGE6p~(Jl0<^eEYU z<-Xa3hj#$f4(fvZ*~^=%v>#hiz1pt%HtJmzAzpjHeQV2Hj3#83t?_Fn#x^S4_U(t~ALn9^Kaneq4n3 z!>Cvpt_7Dilb6=cPtHp>Alnj?im3&+liT#EDHWfn7InLygY0scL;UAu>vq^=m35@d zHG*+X3XLF&vSDw&GXM4Xb^Q#v@7{7!Dzs+E#2hb#{}i*tc)V=))>?Sf4`GCJV#3_H z9@_W6ArLDAF3llMx3H@Xp(xr$o^j$>QMpLz>-x(0eR&t&>bnF5<<+3$i9EA2*xB#G za6v-qs6nfrc+i8+I@XJ-`nLhf%OI#CRODZ)^Ouk&rSRs5kvtTv0tc`Z^;~%5MYVR_ z+ejgY5=IuEqT10V_R+>NL&(|XzOY)&t(nzFsg|j}7OVgCgUvwQKlCu3(I=7*IN$F$ zmAwkVa3r17;l(TC_$)?$(O6c{`@-sWxQXv*I%#x~mqq_8nyVlcYSdCu@t8g&6)P`q zd++biL=OfEWUgdr_Yc}8bpY&QijFlkL{@uQXQ{XOtw=(miIVT#Bku@+i$*wMXWVcR z=UZB(_0&vE!J5{*l#F__d6^0OAXjA8rj-%%7YeGzvyR?Y79e>*l?fn#5;GQ}{ z06~X#-yn6R?F6+(r(!`M;+Iw_bc1>_4=m{~ze~-&)fD zttI_`n3nWETq&5t<^>230H}Xd^+^A3a;1;zo-=(TMM4mMRfiAsj&odUsO-!G*_HPeeQGFdR?oI8ERu=`_?+&d-+!tl3;I>GQ&*iCI z+32SHtDCP2o9Fv3EqOhOiB&TWE%t|9XFe@?(z;lD1^50r`HG}Vu`@f)0d0nU&;}2& z{x9vi)haO8z^<h=c*oDwihta&t@`t29=g$AzFavuvk=AJDZU1;S#Ew8>Dgbt$;llBdm z?H(Nq2$znHERPcvR+rFRiv2hO3jAe42_vA&Y)T?_^J}>Xk2|s~h|3E9EG+a|8dxYn z6N0gTKs)@PU^cx)pcq6Dq7gBFUG{*<)%7bjf9!*H{v>3WVk~%oeaYQ8Q^rSmlTwy^ zQ$~#=tQLkb(z-F>A(RmTn>jQDm~7QvHifpPL6-M0X$zF7*Zqrc!LHrlal}!)xX<&$ z?$S5@6C0Vj`Q4JdiTkcNCPA80sb|{miXTr_cNuFlx09S=l|8&5ge_LrWa5J|2(8(N)8s2}*DX?uRk z?7>r!sUd5jF&Oy2d^|9Q%A_YOR`nS=d?c%Yr#BiZ^n71*9uZ+T($ZVZ(KR#}_{?<# z*UQ5ShbS9c z9@$mvnmq#&A4SMWYHtQcWhAc$z(^tj%uc$&j1gkMA(C7Od(*+kn%HN-53FV5%YpN( z$HVUc1Riou?GXvK`D?w6&Je}l7f5qvh6q^Fk2Wkx1Q zCa*4BpOHa2v(|D63)hYHOKcn&4_9NrgA_J$dDHjwa&ElO!0a#~Lx`P)yEv`)LNw<75jHbEHh~T!BnEPQX`z;fl69pAE#Ty z+dcRW!UUpZdYd2!K%mz`uzQMx%pa#_f(X(%00-<_QVG-=)d%ZV!@Fb{Plor2K^D_14GVgbLYDl z7E2xozbaxxZcq9P5~39CsfjTO%Alq*gpn;F%yH0Sp><}4uCu=Os}52jEQnSP`)84V z_rg!pm9yk6XbiN_tsEZK9Ar**b}e?H{|bL}!)VYSTtbqc((97hBgGib+5Fz#D`!v5 zh;ZNSBAGI*DhHB~x>(%DC!`32s#`Cc1SFwwono#Y1mRBJbT*43L`q0K{E0^1@Ql#- zM%erp0PLCRzlM+X*)pVNuLhlP98`3LJReB7KSYaMkJ4z-u?xm7)wpWVRwe;wt{7 z#%D%3@IWm%cQ<7KivE6jK4ZYUZ22_DMW6z-fe*S#iU522Byxj7 zs7`HXTkz!XWkF_bVije=hD0CSzyyNx2@butI1gKm8jyQltgS+iJTEyYAc@6UPUxo< zej!D-atL4{Wz53$^xRMFkn|QpG;)2<1#b+x&?!v|rWSMK%AZM*GssM`X3dnby1 zz=CR*^*Wzt0DsJZ^pSqOlx>b|v_IhO%U7X&p3L`{9QC9-B2Jgdqh0{%Z+|_`gj^evqU0%+_rme2Yko(zUy< z4;*$uUezYzqPDDT>58l<(jt9e?ikb z(?3cxLm@t-J7cDID&{0_|Dw_Erg*B-k|tr7au27^6iOMvdmLHL8GVGzyH;7bkiVl8 zBO#zj_cQ>hLz3-Ky)B{mZ!s$Z*5b-xxH1|AAp`MnLvKoa?>%lM^QYYdVYZ&+^OE6p zqdGw^gx_t>vSPMThIm#Epl-|<)zIk~Nw+c(qhxMAsBtQ;qcTpVEw=1U6xyts>CU%_ zAzWhmQSN5umaFPo?ekRM7q&$qvC4ujeHsms4O-7Ar5wu)BX4=1TtWEoQeX6Qg;6q9 z1)=76ki&*0mn~FhE|bh%mh)zTS=qs76F-h6N!L3r3Ldkh`=#Sc=XAo5BpvAmdb~t6 zqOi7E^hr*$+brWfMV4C`N0K~Hk8>6GO3}KUOU*A#Yi;J`r8ZdVd&19$aF*YsxmJm`4b{XTZNi9QnSyjCC4dT)*`o@DLTh zth{FyaxP8iTZ6!+?b<*Mee4oqG}z*G_eNMdOU#SaeU?y{Y>o>z0eZD0(Fn*v#&Taa z6t25_bK82?Jm||f#S}&*5&&-y1tVLqI*}%tV&x&7EShrY(M?PKbR`-13A@NkPcvw{ zBY%gk$jh>v36Zv74WZym$e4$6(oV-dBE$$s*N`~GfZj=d$fr%k5@h77k0+aFc_ZXK zYu`SFQV7C)f37sw)Sz9vJUkNl&r7&}_!uXhri=eaIRW21?0+#+`5%4kBU7pF+4yzF z>q71IO+?ZVTbcX7{L3p1(a+4RwbB0ivGO&Tv?}DxvHF)|={R^>d2{8zy1&IfnFPl4 zNT^cnitKoP@U;iNU(NQtzI}X53_9pY}bk9|B(<`d-&&1K$%x z-d^p%AeO$@-NLt9w7}=5LXnRaYZ1n-z}r)ix5qk>_w&BMx7|L+#8XpnqS4zOOW<2# z;A-k2S>MM?-yYsr_QzP>uQT5-wmbvbEx|yt_wJWiy@1#2k9Nb0H>>lD#IjtviHwk-!JXKpV9i;Zf?>$9<(PlRfiglh!qEk{Rz zoyx#ej91WX-`mv1`@Q2*!~25K+w%?DJBaLKmW6>YJa={PphWj@Z@IqrzK??O)qA10 z>oJk{G5*xPr`*8jsX*{Xr|A2oQQ+g^o2C5<%Hd%hQr)J=>jPPULf;wLy!aH_d*bt4 z4chxvpXSQr8bmYL$^U*U(24)(`SksDfIcg*54FAby71jNK(DiWv>NUG6-}^7WTm;} z?)|;({rG*11w^&fad+$P;P481elrTaK6x+yUIQ%#CV)J!GzO(?O5ZF*e{l+iZ{Et@ zs!rfWe?ei|G;G7FZ^nFFj%YQc>PsN1tj%pjsGFN~TSez=`U>~J5M~9>LPulZJG1|n z0Li|SqnjVcL;Cod5K={*T(X80mU=1surCqU+iwQ40 zQ@+1`X6Hx!Cb!Zo0cSUR?rEpT@dqknbOV3yq?vYny0@?48|v!w@d)5d5}4(GYX|er zrRrH!5|Fz5w$E}DKDrrgnnCv4Tp0Qe%pcnCn({=|IuF=T<852-IhX}1c0_n^{sNwE z)VQFI@g({*015}6d_-xqUcm$5U2T(m`rW?A`9m|*bl?aP=_wwILf2*&wMhZVn<)k7 zd*W{{Ne8B@e0e=|Aq77=R$-<3UtgU*IR#U(d?;*V(;6j;&vzgVQu*-@b@}W13!&?f z!8vg}u^R}= zma56E(sAn`-n&C!&6U>`w%q^9mDd;6Q_p7Fp|XbYgV&(WqS*6n+fS$|)~MKd$tp7+ zK_rkGMCxMgnpGJ;PB&GK*ha6Hzgt={2am#{!~!vnqiVSY`P67Juat_>V)nir>#r5Z ztOfr=$S>CMv!0YC&|(H7P{-L71AFi$sMRw9uPg)*fmiN=7?F8fMeOz`1DUm%qnmw1 z&0`fWL5Ppo_nVGzgZLa??GpzJAONv9vjSUC6Ef722-qf)ch`88+9jLp;0 z+Dvh;(jCRo=xOvTbT^-TCuFl#&=5->09&N6R)~`F)>ZT+7fKkh5L!~ zL_FIko))&##dZ^%-Yloj8TT0rBS}}U8H>*pu%SxP{u3=W)yZhrxCQz2gh_TQ+P(gZ zMy5e`aqH~qh7d9Jr3Og&MZ}opn~U(|UHqHu{e)A!32lt^qXoPI=z=cMW6SpSqYX`z zeOyM)F=%b%M-1!<@mg@sb3y}Vpv8I!6Tt+QZXjc4e{8dnKFj-{m*)nFR`54JVM8P> z_C2!1izngu_VF#E?^e6#v6SXxkv=p4Dbd{x0yDTvLI0Fs=usrA5ab}d@DdFg=Tyk%O?uJjt?FITeT}iwaT~t#77L%A2Yuh+Wm@BUk@|VF8zOn9Y2QbJK zy~`q21O~e)!!#cjV#FrPzj3Xv(5pK8lcUcQlXMeUZ?d905N6!uGv8Aqcq$Q~Lpc!{ zm;pKY8r4ritroZUY_p! z!POJ1KB9c@Vs0JhHp~4?QHtnNp69CsDIoE{Q``2+Q56_H1j)6+k)q6ne0?%8-S)~WEkEn7JPRy{> zrDuYUq->{h5>tzXS<|o?`Km=L_;k6{6oBEv5=s?AzzuoX6J~JhD z$(~#9uqUU#?F=7Pi74)M+C{X}%9nc|@Tq5-G^u2qMcY99y0~jA3Gc{F)ia{9DXQP*#@pk@#olOa=@eV!)gy1%5Vv2* z*nAIyfmC#|HInMCg&S4pqGNN9mQtI(S z=!V&afmGQe9Toxl$_1%8j4IzmGE|H{kx_vLQ{uS zqu)Lv*e+&Df7Vzo4_cIBY7-2%>D+yGmD-o8T~pt9wf|Oiomut;3 z`)@&&iT>%Ov0MXQAWc{u%nO`+PyM2qbPQ{!X}&-C$S6wCj2p0Auh+W$*M98H4A7V> zy3P+H0i*Z<+;=_{l7*1hsx@E6ls}m&Iy^ z!mY`ZVHmkyNKVk3^9*zVq(tF=u!Z4gF$)L_06;b@6-h@b*b(ZCrawOr&$8Tpqd`FJ zNqvGsKpk&sGK>{-j%Hx(wLFl?qq)w>4$V7V7*q$4cA*(@xF)6c{1o%Y|M)^9hSm@F z>!UnCS+#P?-hZ?bkl$KV$J55ve;l{g!mq80pKy*Mq;+ z{XPi4CdDnFh?P?+HldIg5+VJ~k{g@j$f^2=aB!PGt3<*VSyOC{X&6Ab6fGr9$3gly ze~_$s_5+kaESndWG;(7fL0Xn`%x+h}f&xGa_fmNy=|jdmEwLF>a);!a9IB38xV_(% zassni!2x~rYo+r$Lqla0{;poHkE2lVm6v5|2pgcFgv6)R5HgG=f3-P84xQ9@aj{#~ zd?-rIzdm!wYg)qL&r4VTt{hDr3Hne-hGlNhB_rs>aq;&4o+=3HL&lg9tKST^_%A=X zpd~pEy|&?YLz9!L!BGHofuqKDUtPaD%=ncKu*NXn@VQv2EDj*&w`50|ws~~bg3+03 zNT&Q^38Zk$H|0^98M$;QCpO%cJtUdog#apiX)+c}nD)8wbuwP^-7?!zl^)r=;lBis zN}u(7&hQmZsjJ}HoEh6n3uHsfPV0tpu$I-=0=WTJ zv4owl)`|F(@t~0N)bIW#e42e82A}~u$kfmv!p4M?mp$CFw3}9zz5B@HGhHriE1~Yg zY3><`SwU^&sN*P}uy&Bh_>y|>z0?CZMSEPgarhcWKkVBK{ll*$=1#0&cN>cKn_Z&O z4MEwLDbHl3R)cy6S+tYmdI$K&CBhYf$lKBM*BN|Lll^0D(`+^=Zr1K7C(r%Kjy*qN z2GPgjm6)7u`$E_;$qOgT*D5+b{@{F5zyd-gemfMdpl7tD&Pgw#ILd`}7VYd@z-yR0)Dw&LW2tuPB!#)y?Lx$PA+auPT~ zXU!JBh$`v`B^>Tz3oq!DM?IG6OC&QAo~&GYpbTRQH)y^RtcKCQq_77vl+gA_|1j z3|vad>PKEaUedfP27WhQxqQiaB>IXZdezmcuGCwfT)fQf-3I+c(rmLDx3?*J{ik7_iZD_`1!TLPB1FU7cO z$f=16#gXR?xn%r=wsRsQ}o)%G7Xc9t?T}HQL};Pr79&qMH_VK zpvBzNzbjMo(;ov~=~4Q032igTPc&mknht3&H6~8ih8J2%@boh+J8sxmX`Zf#*H-B{wTDO}HP5 ziJa)SEY7H`#J!DsT+)FC{vFXJqN8CL2GLeGETt+ooy^Yj0F^<3AI4Q3+TEaNsTAh& z6mUzanOtj}c+6`K?#jjFlM)4R)(0yuAik)Ikd>4pNenamDkZ>m(5pDe8W~GfhvRV1 zcJZWa>;bv1W63vo*<_zT)N3ho^A@2hD||LGLnU0sendgw59LV27a*?@lMK!asmUv; zLUG=Gpa{wKYgkZ_i^MY#EL>i*Vn0M_?Apf!+KbJw$2zCF0{0ONV}+kI5%{(^8VFY1 zzaRBt;WKX7)gW2DLsq$f~1agmozyD{ROx%!Ky5HIQ2R03&G z$Jumkd*G3iZkFLbtQ7l$FtYn###`T1TOK+(Wwf>>3JN0EY_EmR)%dl<@bB5qkjgr!&fr}$r<0C`0Da-d<5D~s z2~PlWc6V=8uH6Q0Jicbfy9dwpiav1gc({7x>fn)>4$@UPKB`jd&pOCI9jBeEWJ19?Lmf0 zB^CeBV<=3AS_f1hlrY*>p#Ooj>8~eeuXFmc@2hOf_q_0TIf(S2^kDq~n2YCS|Kje9 zhjAP2IXCJbyxbk>yu5AMg}Ef)f@gHUh=BY4{M*RW+R!fz@(Rlp8&=}={AB)nDLN0k}g<0gj zOT#A)`A4SMuomQDP$#H7kuF;?H-?&9(^;zsdNf>6w`mt_uO9m)XJya|-o!3e{RT1pJ66(1c|Y^A-_Pf#Dm)I#zil~qT9X95Eg8~#cC0Lj{_g2JW@P2!=G&hgzo!h10FBLTSQ+!L-GcC*-k{SCjqJyij@F^ACV&VqjjfQ=oR*fEin(X{90d43)4Y z01K;W7@`f&_uQ`?i)V=SdGVLMGqf%AS4+@qJ9^hjf|ZN}80~(ndTCQMj3>Qn>;#(w z?kM0*o&+d%Gl4i(5y&*icuO74UxV+$mOsSMULciS+?s5heEVM<7R-62d2G3aFdFy? ze$CHBR^4KdyJEMvpu3q7S<=a$G=F^@ZJp9z4tB7&JK(u5F};N$ze$@Ag7HgR3fl1I zz~8S*7TMsOq`7LXL-aIEdBpU@KyqHyk?MuQM#}Uc`?5AV`b21I)KPluL1o#A#&XF{ zz>v<#zwdc2hpD)@TI<;(7Lums-UkpP0rn_IucIUVy06C*hb;XM_FeV<*p^LvD*VSKnxONOL z+ZUNCBR^RV=Kx7iU_|Zjqd!}(cNA_}zwC`Wjpq-G>eYRT^$2I z?GoYc1vz}NR>KLS2i+Nz@f3QTot_K|C<5W80zW|&w_fcpb)&*DNber(VwJt_98xqg zDQ2`hlo=_HOEeAqo9E(ueNbPY)9FVt9mYyZ8Ed?n*PS# zLM2{o2%tmM5V;LRnHw<{34BLYhTP$*g^11!&z5ZjxodZRueOzw?dl7J8%K=RL<4Y0 z%4d6F2^&&xVMZr|_~p4@elu|J7KIJ#wT%DqSJK6`ig6AgSkHwQpK#Ca5?twzO?-51 z;$209IHb6uluGNS#mw|&@8xyi9`cfbcFxeh4~1FfLBJYFWj^)QX>5MlOw9U)gx9|b zGEzqY?GH7 zWm(O3%a%KRxEu(Zd65kD6+U8WNHV>kA4fx(TERhvt|y}E*KH^DsGROxLrWT)6Kn1; zYG z^yJ^1JqLH`2SJ;D;KKVkY`on!{t`*lrt?kHSiz&Ztm=D`%!*uw=_N>t4$dG2LXA-X z11unF16O&8CL=Vd_ODB9L?Sn8ru@r#{JOCK=FN4EsM zTchV#*$A0aj1;(xSM^Xyk}-q%P*d2k_(2Qtd1UDG!z^l|P()5fMqn)B`p9JpzSAfZ z$`!_}pZU*Qb`HJ=dMEB`caJ2H?ANJnz5x*I*bN0{t%&(PWilzz9rtVfkK;X`g(wlBJKenb()bTl(m4e-vA}|= zuW2fTqTu3gG_N`=NR&~|D5!Tsq&+_IIj^>DX$O3@3JMyip{@o6jcye--twHHk;?L% zJPD6sB|e+Vae61U3tj2d%1 zNQ_^L9^CnO^%=aM>ITDvDp>joY)hkeDNea_K6<;1NN@$+8BF@)KMDexS{cf02fC_~ zjEr9HmG3;jVUExqii2A$(&0yY$9Fr-@W z3!F6Yil>kMEK<|#+Pa`Su*f?gp=w&eUiYC68tcGoJl$CFZ`_f8F7qXCm`ZG!*zKt) zZ-|PWP4J%^y5<>d%t5tW^1R*EXrx5klkE+eEns#>R08%5lPXRCMKP4V8u2L>#AASi zX0qTNLXl?T86s;QL`E+s5HBdNyq1qFiNpTzt~Qy{o{tgaWEP#S7b#$M^4n3!wnhL$ zNh3Muvf|xBjiJ-X(2z|PE5P*dLsZT2A{5S85cLbmiNUH4R2mYmBA1)3?RGJ3J)Tod zM-;Apv#oOIvkwG~gSaH;P0&`0Oit&L4s_=Q2~9LI)e)G{=7f-RSY*7Rb~yG3Y1V5u zdlMMF=2WQjB%8Mw-lry*QOoHJPehh#%_Wi4h(6MUsQOHW>(yHwOne>ICUJo9A~dpV zDw)h`kccL~=+O1BSK zv$M|ZyeA+iOzv*l8yhjKK26Sy!_)``<<`tIsJQk#y#m)X#q*3ht2Nrxl=GrbdB96e zX>NpCfoZfY`?=Od@;%19H67jE8$LdsZb$o}r%hdP=$oD<#&YLqD4q6o?R*>b`HlxI z?q))MVLGY+R7u#Kn;Uu{07C8Sp2UbhM1+CQt$(aV^jB4%2NXZW;&C1DA`9GpZx#z5 zXeoT;JeHr;*eL+->VbrufdUkbVi~Kp0@$dO>zGLelaO~|M8<@<=zUZaKq@Q7^hN|V z{N(>jgDdrs8P~=|jiq~JW^NyX@VY5t|U(el>pynA3rYpE~4ZG znoee!u#4XJOUDa&O_s{R+KN0t7}DHkzllOc$imjT2b7SCJ81uMDom>t=}yApgLn_xyeDgx>E=%WWpoEYqIk)L_3z>S9^ z+zN!iD9kj>QkkE&6Mn*|9-miPWG2NwKH>^^TqFDldxIgZqT;)lI^jvD+V6sRp}u*V z(_c)Q;BozVQIr>o`#Ak+t&%xP`(l!POnlmNe>ksnS+BR>?7JJhv;|Zmk;N7gZ$@Kd zalIP#Zm^MIe~am*SwP(8!3m^d%)|M6^qJa6!qnf;r5vjpS^Jz~`5S%5LFncuDE^jN z%5&$VS;#AIXR$c@c4|oB;%Z+HVg#1R^PswBY|bB~7>{PIW9B_3*b2#hqy1apz8Gf? zG|6hsstYm1$b(~hs0?zLb+JS+Q}rzt&&++l4Gwz*DAjTl`o7Pq~VA$}a%zsmgv^pIZS>Rd!&?t@FAr z!VN$D;;V?0J@30ae)1V7LiOqWAYS&IyG%6Haj+t?bt{CfU>_HxQLpnW#8%UHr^&XO zIa6!YIbsX{&7Y!uA4F)3(tzFV>J+Ba-FS(}2d0>?t1P%7PV%5n5nYqR(x;2~XN+n; zlPko@HaX4pJ4c-BOF-1ZiYFc>?UIJ>F~?bg@zb^>=duCbHcPF5Qu<;4FFyi2>FoyS z11sQ3b2msK5bygz_&iPXzWT@0kYMLYg46IYI0=<^U1e>9DnKo$}kwQz~??9FjO!PNPG@2!}Q=*hIopias_$1+konUM^u+>XVY{X7-5Kre@ z{mE8Dj^tAH2oO=4j=a_7ZAE0BQrz-M&5^bWbKUtIQ4&j{+5LNl$N`UitDQbfrHY(glJ;e6$}>ckzz$zj&dR(F|2ZPdV0th#vK7T8fAGJ3 zv=wC1iH%BO*BLy1nhqlDCE32_U24k(0?KjO*Een)5JY6dvEK(pxJO@FI=06?RqwQi z!#U#o#9)^M`Q{b5m2bD(y>?f?%v(nr3kJx7`o#SR0On=RI59v88P?3@fJ1Wyv;?S* z5Ce2HWi2Qi1mv#ms)qmr4D^-vhN~yVSXV&qPNIo$h*Nz9Oe6PuHf2s+9Ae&az%rdO z1}K^EgR>7eClr zONWA-OGb*zY1v;OpqPy{I|K&E_OM02ArL@jEtBF#&{yHCU)57Fsfl=nSmtsahA7qM z)eKq?(VX2nfQ#H1)_9^eYv@xOi3Zd12{1tBE=Fhi2q1G8|Js2zEu1(UIW%eXrPBLgVLT2D)65ST9@~x8gfhiaH0hdnKn!Q{4Z@dQoQm4u<>gog zn|OktG3GPr9YSOoY~oQv5dEC1KzqkGH%muj@DcLlhHW=TyaHsyvDL%t5I}a|yYJ_G z1;}ROAz2m&WQ9e`XaE^=bK&dWVuVY1_OlFSNFN|_r3tnE4TdO9-wy?|KZX~;M{cC; zyPBd6Sze6z@h5jJgy`m921Jya6Po6Sl*(NZ*?g>iYm6TRwjZmr#?DM&wMFHt;C{?g zNe4w_4x?t>Vu<3&Py2}LrU^k7Un7b2sjr!he;LWFSNp?)vz}LJK@s`PsD}eY6z}9~ zY$i(d@oTJFlIsV)g#${geoun~vYtOIKMW|o{2|s32b6fq*FK7**N4|Wig@y)QAP+E zoDvIU(RCLs4k#xjcBdH!l#^1%lGPxfoRmW=?d^6z0Oh1;mn;S-LHb&T4Fp)-_>*$` zn9WYg*{@T7Y1>FWd%L`~ZKR&Pb#HAOsb_DsGTj)Us4nH}%i)SkNkMz34G~1-v*O%) zh*I5Xc@I$nD&t#Uy1DYT4}$>;U$JWBKLRLxCD@lvODk&M3xxPrk=%P{UmKzvm!KA_ zMF8crUrmQmAr)R}B=lj(PnO7VRtUFMxx#uC9$5}|cmRxc?5_R!82kG@)x6#FVlGXAGK6~GCk%e>!LDS5{7 z$)7*<{sBYuB8%xhIl$Rsz1+`QWppU1wTyIfBN9Vh`*(Dvp&s8IYpG*{E5>F;eS#f|9kdwg~!T^7Hfem zVqor~Rzij@#=s%_s&5kVzS|)EgY{yx$nFktjtDLzpO=`Fo~qb+34C6L>MZz|meQ?C zrDUY7v$0WXxAt+(u;>)c{9?rB9C_ENU8!Z9Z%tn-yjB2r0wW32fvJ*nZr%7As(uae~UP;l!Upk zY-01+#3lso9bb zPlMk*Mb6B7ntu_|>=35(Xg?M{GdHsTFA=%>gvz-fc~pG-t3b80l>KaO9mMV}PJS2H zUE+5w-5wxHL`+(uvJl7$mL|HM8BA+qYPo;46rOl5tgbF|`}Gc1;6yNuBi z(Dm(%G&a&5{lN9@46~RUC2%egCFauax?Q%r5xU8oVQblB*2q0!Se3Dh*VrJ0$f``$ z3Y;9w8yhnJlwbJ^^-@8CGS~kBW`a@|jWVa6p2dvu3WqVc**FnNcmH zAfh{)HS%RFbD2plEi^_}WmMk;h{#=72bu@FhZ}=Uj7QM!Vf9}Pw}8wj&hnX2#anD0 z-EuZ-WcRp}vdG{Vndzw^As`}$Urxg4kQ-O(?-za6&^k(G@!n*H1_L`MiOKr024ryZ z`Ing(g`612%_b+pBlM-qk7+O>hDcuj>8z12?U~EG<^Xq|Z3XmhpY6+2{{xZZ10w0(C1@S41t?7bScpTh6 zxx((}sXFrauS(>81s_CSy1<-8y~2>VMi=;?ytiq@+rKLU{;X2Dlhl39HV>7rc3TyG zHOC9NW69fJZqyCF!sERCq!i5u@5AcsS4e1p&>F@Wp3)8R8@x2bn}$oAg?$xg@3Uxb@ue_kiHcy;3XDf;_$| z;?)SHJ$PJH!26uQ@^M*u6?JZ{yaME?F?;y;L~gPiW$F4}voN4z*7BO{>BX0?*$ptx zBCh=RIExd`a>zjAUn(sozF;ik$TzQrPI+Oo< z_c6SpUr4Ye$4e>x2`>dAK)pY0hXf(oGu;$Ibov)XccO3M$h(>_k4m_BapNz$0xtH$ zoq+&QFK&Fh4RHPUs3?pVH@@HRZvPCC&r96u39bJg6%6r`y6@tytMGY%#RXtkrgsD+ z*ac?8hh*tT{eOL{#b3r+J<3?V0c@;g2WWmaXX50moFg)CQ8VK}L@uJVEW5z-{0x!R zmb4E$d(<@42M(+}ST^i4M5zt4mrL3Sgxs=Ty!mQ7YHS^=JAY!^#U>qF#bjr;Q{#VL z#KxZ^+8@)#p$a@#bqptNnvOuOaD~2LB zeB6pAA9I@@ETgnX+E*tm&-ORVWSWf@s+#2!i)3-n5+2>(VsQZGM8IdpeRJ$~Oi_3_=^3i6j-^XxX~ zsTb!QG1u8?4bsuiA_-!v@cG%_kA|2zu=0ju_DX2XVr$V1S=fgmr+)b@?W-TTCznL# zNMtoh6SD_qKS#uDZJ8VJsTM{Mkt@MYD(XUr(tvND#P+1-p_i)s+3c_HXZxEOjOp(k z{wZ?t6wY-qVTYNYA@ZG7Lin7Sk1G{n2$HsM&F=0APq?5I=J&g+@mXDBU;I?jng)NJ z1M-2W3g=Vim@&Vv-TG+C%w1lbGM|+}!?Iup zDK~TG$UbYbRYQ z`&2lQa_%c@!O6DUhe?@dh~ijM4h*y#B|%^FltA$+!Epdg-2ZzLqZ%A1yG*hRpzqA> zD;Aq~{U+L21{U!RARm|S`^{ehw&2R0UF=k}y9AWr%J;4a&ml0X4GU6tgBRwaB=bV* zZtxQc1YSi+&ws0zL-3O3qRb5(ptO2Xq(Tso3t3KLXpw8%r!x^A2;vJqPd_udw~NT1 zFD1SQDaRl7J{RFEkg+KQGnYOw1|8V=oDa2MpCL*y3)^Wf_}&Su3Ph9y_3$AKnRgf%uo;X0iyURdm2=hkYxS$>Mw?5&JYpvU9xA0$SNid;6I!+^JEpJ zP_hz-jRe$&#HYm{d^no|I7G#Maat1F#?&@97@tn!qEsTgv7+xGv2AP!Ja{lhmdJu) zjR$3k%TZVq5*2ii>cT*HV$TyB z$h=nYCmM0R=-Uxc0i$6KqcsUcC(XVW^IA{8XgCZ;RbN0v4upBHd~B3#{iI3Bkg^di zADJ6%pf3^GCZv_c#8`r59`l-b5-l5)Crk@D)Rqm(ljt7^kx$IT!~r3)P^K0g!7gw~ z*iWvELHDaTagg)AM3f-QuuJ|7&vxV15_zlvfFX)^e^T7uX+DK3L{?VRo~%l4);EYe zJuP6TB5IWnuMpWlHZghwB7JoJ3=z25x@3idh0z%**64EF zLF_Nh17WZWC-X^hajYo-En((!a)=gxw1k<@iOS}nCCqF`9PTLzc)MNFF=naXr*(e9 zE}P6cek|Q0&dXR{BC_*EtK$sr8!k7dn(jbEE@Y`%f*@aI%u+r{k2nPOV&TJbxE>yD zZYjZ^^uDVIATNuSe}$cvBBd?fYGV+~sTCPu0?n~+OOAcL(x?yo3NfCEp2$ut=?oDO z!U}sT-COndW09b-x9abwr8!+*3ad#{iswcnt7ZHI)+ znPsro{7i}5`cBW#gfx~U)%RyD;Sod*gHancK?gcX{r%jV#PBg14&k3PqXw>sWW@HR zjdA_yAz9!n7M%_m_xb6nibOG#Re` zI`JL@_LpQ%o45kDjbvCHd(Zxoj8sd0&Hj=Mhr+xTMwP5|30Hy+5#cFWE}WxA5Gz)m za6M%y!mmX!BHC55%wW{3QK?`4%?LRpx!5tp1UoHO0>|{o2!QQdi5q(>nl@Rf{Hn+M zBKt-RVv6Mp`^s`q4*wqPYbWRA@J*gb$jPxNmX#4=-^8&f_MTYcq`;WjCxU$#OWex> z-)(HijOC#FJ!&qP#FhVEbHOCO{H6G1iv?+h1Mo{TW0|OH$Yx}|q6W@D*5l+@&7TBq zB8Xmkxn?_7^Z*grx-_IVS?;i_rv97*$|gx;Bu*Sn^IvQo&rS<-5Rw~U?Em@=AfFda zp!G;HSMq#Z4wueW;SV`2{xl*PxO6;gE|Y8=O>x!u!yZt4`Msaqf>mylXT3$MD+*OG zNkJlC^e)ASA{3;`ux=AWl(k^b5E0cXNG7FHas+Z%rN9CFs-BPO7(wK)eJ#~zcUa)# zqDJt6h{9a77MUO-ADBY`!>4lfL~A+U;N=JB4f*o<_wy_o`C^EXV_!`FP0BBpp0ZQjE zr-WfSy{r4xca})xvNz~#h;dPCk(?v8NaTHVz=jCKHYf4qPx_?+L53+wB(m>M8^9)fAGjkD>-qLAzj2cK``PXrsQi3Te?KK|OsN&10_V(;VqU513(lFP zvBQzx1klj`^$U41u^CxwAchH`i8GJYct=by$+~sn)B$n&nX`UH^M;22b%r*X+c$vv zP7vb;0>~apt^6DInZ=zy$p3CC=3D`?BsR&m2F_k?na4_y7$ncOB>mUyIpoXNdu2m5 zHge@pn|T9ESlD>1)t|?%uQK^1ybY!1zUxiB2G%i(1nlcU*NBgxh)GNrjv+)TnAG2~ z4-gZb3bmFhrl1xMeVKT+5hc1XXPFdS1`zYYihk(bh7S7i*%lAb>2-#Nu5@(lqqb%?(Id z%Z9TjjpnHX5vA*~(n$kFl#F9dRl`n;k)p4m?1YK-1%Uj?EY&6fR>S|cfpw>WlBzNTDd$E@8P zdMZ8P&r*1QD0Bz&XD7Ln`)y;Nd}YV&!rt39Qh9%pYmBU+q=MQyUkuY|_=>kq@3#;=uN$etOCW}L-tS$`V&0^G7*LiUwfAkguXw0zSuD%6pf zgXDrOZ>i6LkD2#xsn3BG{6neE^U_dPfKpa$-xls8y$?VAVuX#abdoGw;xz{eKemd3 zfz4T>kM$Z!z(y1|zM5x+0kU5*gq=Y0@%cfEDDnFHY7QS(g=lF~azF0RnR$lDoF(kH z&Z7b?S+epMvunTkBupho&Ia>JwD7M`-Hse39ZU&3LlLDHr53J_87d=J5m%crLk8a* z(-|US`i$H%>>wXM5|AU8vB>c)0a+aR-YM(~)A5ruy8XU8&J|!&@s}~y0OF|WRKo{^ zl9rQi-%66rN%R(_%*`s3YS~CvfSeHKTpp701Jd#$C-%35zAcBWR=QiZBPZ5dUh}MF z$;!8J9g5$@h~fMybIq5yZ;W%UT3rEhe~KH*-{lbHn7tLpmb1u63Xg_5&E?GItn?iz9<~-w~1yo|&MpS&Qejx@Z1uTr>gvO3aS%k5tm-eAl z+c&0LMBJlBuKfI)eT_MjD?k6{USrNuZa*&jrfW}FsbuB9r(~4VoJoL{7BL*Zrr#H7 zdt}wv$Kj{n>>EBT{$LuCn?&JO%bZQopel_HZXPDw38?uW8jluGcM z?0E`!v4};C11>7cB;;~0vRng8f;~Y+ocKGq<##_;e(8err5y7XzCp}q>j>D`ij|MRO@i_%SBxNR9nf{&*?juXqlqRHL}Tt;p#uS*yMWBC>;WXfn+o z1~596!1ecr0#0b?UXjFnv#e*@FUeU~;!0zfD{65PSAbUE-4@H~DS=PRtQ6h-%^lb( zc2Fpv#B`Owip!)=I|9h1DhE>ps<{N|52iHu!N$i0keweH750gXj8730kvOE%itCqh zY^@4^5vi@O-c!&gY1#OFco@z|B^!T;^Lc>C2jvh<*{pUTqEvO&Vv#_^I4Wu_b_n}0 zoYkVbpP^!GB}&abJowU5T|X-sgy45!?xG4!ZmeJO4Pu$EBjn;O znd8JX+oJNz>(VDBO8~NNaGJ=+=ZO5%LwUe_wRz4FIb46$PtE2}ybNVKM`WK%(7X>& z0gIA3wIv=Z`^fa5DmNvw=3;F6MALjcP0$#b#T<-Prd>QhRhm-$`IR>*#f-r3(u%se zytzH&qc2?~(RhFFe0bo%NQo}cMW=-GbogLXco3qr}-y2lJvpKU}%TSg8=9s&g( zOuE%bil5ujKiE7gB0FBpva=KW%&Z0hF^XGDBhP;cI9o`l(k^FOF(w*AFBC2TSHd+ zz1{h+%(KtTuFA6Ps>SC=ThXRDJ3vaZu87KUc{pnc;NO=`Xu&Ypti`jx=lt8XgXn@) z0R6$?H9IlyiFUanHs{hlwc^p$*sAX55D$7kT7Gv$WTEVE1h*rDoIxqNAMHMa``M(0 z!^C~k=QBi(9}D|1LI3j!qn4`sW?v-MKDl`u`zvdtkMArA7@%jhU#%{UZ5=O7D)yGe zN4Kr#vFu&vp91vAclLZ-!cO##`6sSYuZV0|eye!N3K;5Y9m2amg*=8|eltRL!)Sel z0FU5`$0~nNGDR^w)?N;kz#jN~S3ou?PeLv<-f{sbY5H0}Drm+*1TptcE5Q}eirn;0 zE5Q{|1TkH?0(P}H_MP6O2>B-B*ng=c&k86-__7}@jF^lQgsJGst%!L;ocmgmHsG#Y z@x=M^QbvwlB8R|exvkh|mQwr4$Dnj1(K9 z7v1cY)}1S!^ak7C*)nCMQPv8`^4Cy1U| z5T$ubU)t_8Q}z^5a`Ts7&IWVyS3v%y)|v)W!Nrq*NRu_&oYlfDSBNZuX~G~9iM0ay zvl|RJEQM?DEw5cTWgdkLPMK}Snr{F*&XSw&yfH)S7RKufH>9vy#c&`6#~LZH9}lge zPNmL^RWz+LlvcD6$$(oC*$tp}GC^`PRzx>t1kmO-i&V0xRX5xV1q4<^uKMy;-q8xk z6_Wg-79E6EG09IA{tP0r%3_w$RfQrJk>B4bf?|!41ecde_^yCvYR`bKF=KcriwowB zrgAHw6U{W)5X&)>3ESL8B9Z&@^^W?;_H(|E8yL_u9tv(QeJB?V~ypbvNvcvQu~ZJ@Ar*Xo|KBMj#s|6U+T27 z0MNo@`z#1MwOp!FO>)5|&4=Z%h|gA0V)nzngy@sgXLI8MN>e`M^w}~M zx3SabxHH(HRP2M2Mk}DWZQoL!jca}nwdDvhLiR(d%Rg0u&JpWb>1qtOLQ|6x^jC;s zs$)QQXyZg_(HzbgyBD|p;HE;gUE`Ru4BrK31X5t%2Bo|Ub}M?3!VVQu_2(TI$&nH7QvLI$kN14GxJdiZf9Gq zIB9+avCG?Y(HB)efv!f+YW_i0+hRWM7wobou$rG0RSo+rLBd=P-lc8l+^?X$B3hOf zwM0GaNCzi~FV!?!5&an=a!H5_|3&*tU}-F*mx?v7h{9pA&#sxeANlZ2-~%)97eiy@ zDtwb>e`=4*3&gmbAtK*e{P;2M{a`=wnvg4^Vn<%KFLS@%;)=*;Mor#E(q&gfKNXcR z5lTw!-zd0oi6}|>d+p%iq{Tt$m5gV#C;#n3`;zT(_6Gl5W6K3 zvzQx2Z!Qs~(5u!O4cpz~)OXSBO5Z%%-Qv|(XN~P{Nz*@c9`k1(<_eF!Hj|h|Kr6~z zT&!rZAed~MIsQcpbp^Lh<^;;9RmcYs6Qv^9F<1<8RT}Z@`w+%5;+SkAetq8;s=;Lw z@#}kC+Ly>^FM2ZExpybdqtG9p~baI!aA<>CJr`NWz_rPYR-GMOM?ar6xQ={e7SmOU68_!) z^m>B_cEG&V7jFfW^y9b8WR`sV{x_pEmWPt2Y+z|@NlNA{WJQRJNDR>p)smn{c`F`% z_fl8b6_6Q>YSDncid5lGOVrw>A&ba1GELos9Cx;5>gzp8kgHo#^%o_554>`sWQrx1 z6~`Tf$l{n;x6a3G`{)vDW%#vq#4fSK>}9`oo*h8(?jOu1&pvhHLwcw{`0T?ZrYU-- z0OZ3+8Gd!v;D=#-e`cLW)=^Akx&;ARN7i7nZuy4RG0$fWt|NzCPQv?a|K~3dvxN0e zq7VT2DNEpGZ$e1Lxa67URQ#9KwcC5=uNj~gY z7io@^6#kDHfeSk?CqXQlIDd)A&dcGB5p&%A_*Gl{86sjbl3M%&&BPP)&6nZ2uOaU$ z=bvYmUIDUIIlX2`D6GXyG9(a|Am08%VzoqFGJ}Z%6#eEw<$Ymyk(Rs2#DV17Rj+xG8nNt%q{G+R2`_$ z9p)BxTB`06=nivIf`5Vt++j}q{0FyFd~o{6%U{L_e3)A~^77}`TKTPjO@mRHKH#Ty zhP`oFGkas3Q4;tE8hkT~lYdZE@XaU{_$P?aW|aCcdWhtGZsiOsFkW*LDUIL0*o~GI z7&TcAX~?!BvPs!nCF2QFEuCe>!YxXADTv4#jD0OI+ga9N>}zQU&T_wSHS!WfjN{$- zQ3UTBsh#B$6G~nd=UEl}WC;Ljo3pI*AG|P+lq_dCsy`~JmLQ@y`Tf4`MSg}TX61b| zgGUK?&WWV-n&r(oJ~FF-viLkyKtjH?lfD&6sfi7)qZGE>=gL3)GOYCHy&mvvKT10P zqH8esQ?i|7CKFS4^Pm=g=Q#K>?*Bcp7ddhCm*7UXCAJwo^O!@?r)GhIqF9_~9eqKk7=-SQGpYP4$o79g!Ci0E~wr~5>Q3GB8U>ht184)O6P z&3k|eje$+d`EZXtLlo|!#T8>>Xke3adMy~p1&-}k#ZXKa4AQDnb7f$Y03O=#Xq~m(U*&s!wK$2J~27(BRifU@`-sbX2NAYF{-a0 z+uwQK3DB$lwky2mhuL=#__-yJX;#AvJ3?l+<$GHvizDW(Tv(U6?D)`o!u^DQy8oXN_(1ZZlPdjw>C({Qdn~gOGlX=&x@DfrWYA|W+zNT(d;+W-MH&!j_bg`l zF0vK03TK$*y9kXIo~_6i-yn*LY}DwB5V~ByZxC4^EBg$*XKcT)(tn6@e|FIp7RY8% zETN01{|1r0{6z~&$FA)DdNDtnnhvxO^$RQhhv>^sbOSU-<}gDa3e+Cz#nnG-a0dpu`$b%rie3uYI{d=1 z{i#10ux{yFM*nN&_WZ&eM*S(2pX`lj{aP6x5RtY1pkHNbeEAh3YyFeValkk4rC5J- zYGF6TW);6$`RE6Ku}`Q$1{ES!`O5kE?8KB{8ft08zHy za4+OZZEEDi$Y6#XH@-1dZ^{LtWvOgZky}l9ze40_W#2PaMnv|vIQu7KG+G_iD?|>R z9tvp7tTmb73XwnRPeA z9BXP{A-c0`Y$Ao8BXT;wChZ`qrFYC+RNp&far2JtW0T~2 zEh7i^2Q5MbvbcFKt;RIT1X3-%pI5$zG)wP!ELxd#5RiF`R;LkiczfUM$)7Og^KzV* zfNUQ->wMNxD>ik7=w#NfeVHI7$@*-5xLk#oZ2ss!&A~PcaQrRy zFZ$+NvrRb^1yKn``38|~%3%k%Au4UdzCn}{u|17B=`(!}C>3ITSBunC&Oh{z`~pxC z`h7nZGgp+Z5P6gM{?cMY0N@bxu^nF*4?RKoMN4n8{bDytN`J8VHAFcv+N`lND1Lsm zMhAA6iJyPbJc8KGBYyrHJ-aUvS?ACD!tfu&`&mUkO5MwS7-If8&A__`Os!S2JJ#@n zjiE_yRlkqgeFVtnIxPqh6DAUCFoz;s8z7Lx=#wZgO5_d*$Oh$P;!sH|j8>R$0Hq#T z$b&={#ws`80CL!+FD87hv7ch09zNAKfb6i;x*TG{Qxe|teXZ~dz|1El_1_cT*x8%` zYPZl8pcuCOPBjSamq6D@s#$Ky$;tQvYg+spmN6P?YrXne0nn@e` zEJduyngJSkJwxXTkU5JQiVh`Xg@p?#YvLO+p!RSEJv)egTPBCktS zlDiuFVMB5;Z+TJ!dG?DwJ?I__;@N*MZ#sx)|Gm8F zU^vopFU~%*Fa{~sKO~I7Wsidt>yJTE)j-5H4|N@pZ*5o}Q$H%iSA!Jmk7j2=e^OpB z7_Qx?=Q;r`4}y{WO1(tm{m8>$ICd;giiQD)TC(_yUNj6aZ3N4XfI*tWw~l4Yq|pWg zA_~oG=9gf_o4w1LeiQ{8tk}igQYwSxt8wG#}oKSBJ*5{OmoIVH<_2_NiSK*f|t|s zT1BqlxkQXPL~;ClkU|s!D=>Rz@F>eE1ZK#unN5N?_FwCo7y=uU-z%9J0&6etmCOtw zoFO9DVqp8&p@z*l-@imm^NSYS-jczu71;xa*cyxP91#z?9EB+LE)G42w|g6iEe(+) zHA0NpZ@$zGaZ>E;9MSR^UG_E<`QL}PD3bgoBBxe{8h^h1?-?TV7WIsYeYd z7#3oj^L%V`M^Rv+qHaL!FS5Enw5q}Hu_#r?^;%rWJ(k!56A#5C9tn(zJuvY-lSE<# zCcUTbCyC_NP6ouX5_e8=J|FKL2j3EjJB_(MhtI)hnq2$#w|%IwMQf zv>&78zCq+nv0X|1Jt9!1KV&{I*=Ac>4Zxksc0VI26nwh|rgj#z}_`=#N;x zxcKdQVjANQkE#lW%o5oWoZUFTdxpq7CcJm3i>NRmd<~4={GD#mPVD zFgT!OGif0^I^($l^k;y8GoqaMEHME}O7v@yS)eRY(itKm?}(3of(Y$yaq^e0Y6vPe z#zlH3+48w}T1p@i?G+_U|FwjlxHN&Rs7Z@j&hr%_Pi`M5aY%!-qgnV0QKB~VGz#k5dScex$o04+Jra2 zeT^tuNqi|~tTuyvX)6xPptwLmM3D@a_YfuIGNz(1Y2-`WQ+aIo>GhWu2fqr4By2>> z`o5O(iaF#Xx%jRA0jyp<^a_!S^@YQ~4H4m~R?1tNT{KmGgy@*V?0d<6GJPk2r|dvH z{NAeDdl<|0mv+LAT1fKvnMBa7=*}^t7#yIMTDu(Qvb7J7& zu^aU~FA>?69O4+fi81KF2j;zgNinc27WztpJn8$vY8-q)53s#O~$eP0b;fP9OwBlPg5Rn;-&HEhwXNcmj^frGYi=H7egRy3RgFpM!%wb*&Z%+${ z!yE$p{DZxdHh!!gnBk{i0E!)F)!j@nwnh*XCnc?&syAqSXAj66rYN-^pgST-5m_xd zQt#z>g(uZvdOVP&rbUj57JcCKn42p^&V4z|_*0zXP6*!be*XENfBF5t{pF8;{*S-@ ze*J&{>F59c*Mp>w?|HY9@?{{KVRQ%>+`BNS<^=HdA|P4R$rp6F3Lf*O2at0ZshH0y2F6Bz!ptqKHD_5`*eq$n^w z#X3P-*@LZ)C|g&!Tjn|`rl@y5k@Xa{COCDOsIsG@4_X&yM^RU=YGSSq*%<{RZ4d2) zqL$&VgK@l6Np{7KqSn=}uX2o*2a4*Rrrz}Qa{)S1nEfxQ>wLd2t^D2b`^Jq~-N8a( z+ekYKzYU>G-V(MUm^FQ7MA_T*wrPSRdy4pE`sT$8pp{z$c{A)*abTw*H(7($m#b#ucq!obsnB z<=LchbJVXz_eZKkdH8C<$loa;nHp{O6jmNmg0V{Bls#4ItqfJxC9Nb8eg@PVZ`eIK}%gopbnA$Lp*3)(fW6KXzI~dDe8*W?@1X|vKNmO z?IC4IsTB2LTI3Gp+w^#W)n5{YJX{6}`nhdeoY6W8BY&r&3v?#BlaRK*?=X%OZa-4G zse1}9f9JPo7_`>3oJ2A1jzn*-%T`Ttr3r95g8GcUYQ3uHQ1lR4{!ZtFXnTqx5(i@_ z6nVR(>n;ikQ>cFm{2yWpcBHWKFfdb4D4aYr^%}8Wc}v})^*?o=SUM|5DXbnaBA|yP z&h->g{$7%h_5|(kl&V5}v?Hj0s*mZj)K5}{tljgvLuuR4&PYxE-U+OA5i2twAWt_l(qTIe z#84G-Pm?C7Jj}+_V@QEy6sr}Li-8m@A#p-CkkofLzoCp`g`rR9P1``jv1Wzs2g%4p zH#~2fkDgMv%s`Um0o@(^qMn2R+y>VwjTJy6iH*4A~D4Dc(m?FlH~!FJ!ImZqz*DH z@|1F+I)RLs6g?F>Ww>?M(>qMPb|Ulk71eo=qb?+Bz1M8X>=+{-MCe16cXjOrMror65Xg78D5gKjYYXQDr?JxM0Nn> z;_$Iu=rPOvFp#XTXg?>afgsC+`YNYgV06^W_IZ?rrPD=rh${K16m>}}dt(so>x8x& ziB5lyYfs&j#5a;EE=Sc|6}G2tMiLtdL8-&7-!9qh11jG*FjwylXyC84$5=%RA<@PpLolCrOP z1cAn>6O?xRQhVWGb6n(Uo)OR{p`TZgG%B;HOG*zYSb*vt4kS(h*!{1fczH@FIthvO zW*dvL4N}}*WCU*@Ny1jh&rhtTXD|$4fBxGu>6j=;vJ%N{pakJ15B<=kqD6o*xQP42gIVTdG%(x&t%EEpCM`oy= zBFh8*)T2&fGFuLAl!a6?I`rx6#BM5|??Aa(&?Hf9j}=B0umuXh79$ zZbt)+U6wsb2;*>VeK|cPf0<5V<*8j}6mCc1qB4+b$*z;264=RT7_$<{&8(`4d|ByT8LhzFAPl<5>@%vNPAk(Z2o7PR=C*QKs3X#{lJy74Y1 z=M_C=x}^AB$eG1#BMaR?QWuwGA=miWKoS}W8w9nn&@dX5qS%wjEEIM&p)9{AI-R5l zKq5z?a_3vS$Wx&kIU)Hc&4)~*ATLpUSQpRI_2rHfPM%tlAyg9bz*N5BXl6fp3zX&e zS1Kc<14Z+PGKNZ$+5_@jxX~?YE!mIi+R=rp$U5Zcq^Cls?EQMn&~FouMfpBFkG#<- z-^bB>ivSSuKvI9ZQE3F83H%~d13}fpDo>`ngPaiNc);l3(C?XYcux36h@u&PK>cKBcl}qmu`TK334Y{(gIEXCz^JN(WWB@T*=VBy~qA z1WBGTm5R}BMW$0pXexdqQC?JaFeV`=?Qo=a&grZMs(ID1bNcor5zR9=+!FVe?Cb7^!0HIS4&i8@>o&-q1ZGTdzBDZN8u925_+ z&>kVe;klCsZ6ge?*gijR1cgWDAS^hAJYl1BK#56(8JEo4(-}eDexBrA14-dftwcv& zqo}%-JS{U4)1F3VxC22wQuW42LNgFJ;pZe%k%jRXJ4OLn4TAZ3_dLjRVxKG$blaos zL;`+CPtYDDG9GDsm{hO&l$?$#MG*=?8fQxZW4!2gMqzdo){e1s<`M&9CA`5a)lH@_y9OVN^ZUZ2FQ?Wx+R1ZCn zVJM>|sh>%Lysdu`Z4crYJW?fK$o*WJfeG^KhODsKVAaP zHfF^Zur&JY9cf#%JJN*xx~gr_C7&i7&yljl6OEJElCniM-!!A}yVvj*>gMaheyp@^ z14)zz1VF?CNoBjdv{|Br`@QP&K8Bd+29mn89Klj`2qjR#5&I_QN9&}>gh8a zP&0-}IdaL9$AwNQ5%(l@Z7EEKG;k#j!I8{QA_38Pg(TB%z^n!zDJy!_7iG zkdW283X7!CD~54L7dtvR%km4PiLq8o}OkU?a9-zF*MMm z55?$b=Nsy;ezQZt*%FN`)ne%!&g7iTcy$zoB;1c%( z8D7z#X#nba(4}Q)##0g_Pj?I7lUR8m15&0-ikRI%Gz#C|vpDsjd-|#UjCeewp1-Qw z=(P8w_H=PGlDc8ZEx0tOfuzU?m`)?%5fF(Lx`Bj#OSeuGx`AZ7*{VjB6=mAn&r>&h zk#8jYO6^6Vjg-fttS;pX($2Q+8XQQ{_B6~;^7f7?NnKsLk!ahJ4lxg?OvXZL8NVaW zNNfY3fh!JEN;2c8OB>Zd;`Kj&zgN)s!)EhS3t&r&e(+cn(Mm@-!() zyS{2>^pxnbB8_{BNaUw+Mv}Lu^fu)jRn;uhhvG3Sn}Krlg4^gclFIpsp;3gX5?t>C zt!@!0w#B+5h1)2+yli-n--c3VBw+(6GM-^5aX%EDq|TJK3+;Vv%G=KMvprX(QF>~( z4ce2$ZRgrXJdo67CI4=ee2jjuq?gevD5pRrky#Lh{u(b&1xX{Rn~jcu|G`FHiW}ck z&@1YLPXJaAlH@7T*`jRQs+I9LNwWIE83cQRA`iDP^u;dU>f5V~O)UgFDmWyU}=U$rs10Ww8_v!DKWzRJhVKntRr z9@56xvnsR$MV6TROgHj)ipc^&xw=++9@r_C1SNTm#K^BX5JID%r(}8j@e5zC9f9M& zlMF|`%$|Ujs))Tdw7jAT=AV^ci_lFGS=tB_eRYb2$S zu%4rkkfcTLU^Id{d496oo z=FD%JRFO#y6t+E`QaHABhjPU1k~wuA0x@1X}x z=2a=e_Io!Y*|v0PXgx)0zmI;h4`?5fPr2x#dEiu2p;9SG4=fEw8%Qwnlz}t~TGzVM z7V4ths)2=4ooR#^+&ns+0>Pg)8iqPiWlMsLxI&D65 zQExR1^ufk$pp!5Zs?j0uX@={8gqD_k?MtKUNk|1N8%Z4ZQ`#PoC4Q7MsS7c&RI);- z7*-x+_Au9hbQEq+p%y5kV?z==(<##-1&>Mc3?<4_q0>+r0EaSI1*A!r^a_4iPg1t` zY~QPhvNc%4d?YRd^#6d8*}!aybrqu(VeWBxDq&J8a@_ zq)^~Y)&jmN6*fkTzL9W=qP`wa7Lr_*AhNCWi%ZvNeJXUyi>N#YS3qjSLs=iQM^VSZ zPu)hRy~xQs__kxGe23!qD26>V9Z6l?9i8@~xF-og8!pY)37t-oH%aS5XKNRYFs7B(l zh#f;GaqSg69&ISTl8_aNJnwX$x+6)D1SldYi$)UV0R_ox*-}(^rcl&s%rlg_^05e= zPO?6wfT>cq4OgrS2a38)=wbc4N??S*`KCGyB$j_pWI9DP4)F34opONc9wH@^(v*u< ziHkxNO_rxcE3{>|2UPHl{jnWM5|XlH8PG76EKj+HhSSDUlyb9m61PX;G52Hfdla3d8N7;Fni<@6B=y>e`aWJhepgZm^`2)z#v6 zMTNr412!;^HZtmfMHG=sZ)qT;-c&M*6BuP=`7lL-n>psoA1N~by$Ip(ygevXphrnD zrz$w~bjw#CD2z}rk`nI_StHxXGzzzS4aaGBW3BpF*`l~<$^%J|2cJ0&BrQ6naEhxo zlq65xoFs23wn6nI?J3b|A~ZQl3X9K6(=fWrAQ~YdC>>>cU^cv-gaEueWyz|0kKa@1 zLkZhZe4ASTp13^?Gm<1v>E==?>VBm=yPkBFol@BtUK(;oHN9&`l9u+A-BB9J2Eb6G z(LQpejs~TZh~=eFWnB80@krq1Aw^896hSC9ujN1y<>y4ElaN$PBt>Gk`;{e&e*GI) zsZ-)>C?B655I|8py3oH)aK{UwDrEG4?Q{x3`(zr`9ud0zmeDp zNN5k)&830RzWDJA4@M(M?ZH+zyr&SKX`yfw#c@iPCOsw1TX7Ci^$nsZWGU4^C{mdi zs3UilQ%I~lEpFn&r8W`tR8SNKSQ@}5H)vn(aO6eCSxEhEc|W z@cmI_m`)igX$KUxKr$OwVej7J-}vC3q&+2}OQop$V`&6Yc}v;`QkZn0$l`P; zzBw3%1*ual^opYUFA~WvB$W9)BdPZQoi2)yP!xHp>OoKWMJh=(yKYr-i&Aukihjt8 z8s0$CCR0d!Q;HxaV&wd^%ute$koQxmV~|MqA`q@DrBD=kC}hfO=;QEI{EURwmR?r( zo1*Mf6%l%xD#O)DXasc^Q8G-@NW45Hx~$YDq||nLN}0VnNtCe^^5&~AO7fJTbdoGj ziOwqdGE~SyQ1XPtFY;9Als)I$>QaJl(e6=FzQX4NXe3TXP`G)(XoE@|Y*mCre^J-~ z+>E3y2?>u3r5q6ohN7n=BPuRs3b7EBI3pndv!N(2qQgui6uP5LI&1*Z%t-3$M%#{o zQiU?{=`oE?C8?)}G>Q#xAgQYx8(mN=@>FAhN%%BsD56d!=_Dll(>5r&L76=C^pxooO)ilR#sJOGI*_z?h>cabpU5pn!s0fdfyA|UkRMKo zM@w7>y_tG-lprL9!X;_W9Y{P-sP9Sgv~05<-jg>HJ3}e*w4~XbiEk&neFSCwbNetn zD2;+%;SM$Rk4hB9AQ4F+UlbKv=}GE+yH(XMX|xhjXb(N0{Yk_F2`z4rw^6~1fh28X z39}awf1$;t7tw|aN0QQ>GTmt6qXbqOK}m5&Qg2z3ZOMA7@n;4o5)!LL!%_%qp<0J@ z3n}SH6x&+rr=*zLsMNZk3`u%QbVcLx#C@oMCK)GHlGFgGcA`3?EKeCq9ZP8dToQRi zA#WI0T&A%oVFu(YlNY%kYQbbmY%IJx^NhqblK-EtGt0Ie#ewKlY5?!Urf2>Wt4o9g zJ`m*3U71h&2#hg}5E3hNRu|U^4N0czK(b3&7p0}xYwSEDRtQ>msZvOr(tN86TDMG9 zLJPKLl#V@*`0R085P}YCYwXYQh}PojanPU+8F1r_2*wCHHT)tlK;uQhWPPH9H{8j81A_PH1r^{5zDpccMZl{EYVc-(@6@`Z0{}= zcHzb-9!@Eso3OeI)LsbO6fshCS9Bn+2|m77JA&gOWWIr^R9rXX9SUC4?@k{~T6&7% z2LlH+yIK=$}g}a7_gH-()ux65diMc5=c7mgWmy?_^FADNq)d!kCYYDO#?y6jHO!gBv=pswqN3%k^uGq!ulz*nu;|q!rQ<2 zlN>x0eI#$3mD-^Ef%2`i;$p9oDh|zDmmC;F%$|ABr)IfgqVb3tXZB5gb#+zJe3jMp)kcjRfXt^_PjnHOC*`cbDgS=qVkk1H}0J&=1chC zB!;P>wvwug+cIixTH3#lTOr|tLA%hwBusRJ*tp?wR91-JLNJq+My6?OvPV(TCCiX@ zFz9($#N+4@%i;~mj#PK_I1pG=j39d;)qGG;jz*f9&S=-tOrH|onma9RbV$NZD)pNl zdrRS;`?ZJ%w>KSs0(5S<4mlga(c=j$EeR?uIYZn?D!ZJqGbK|#Ixuz?0aX_~T&WPBe@YKN6&3dr74GFe&`x6JBwST=~xEX#J;NrP4X{mU% zR}DQF(&M0Ju+m`b3fZ9hs-Y-h~P4&T(^e-e;S(S@z#^PyA#S))w zIoSijr}K~Z7Y%v)FES;3--1Z z@PV*_+s~qKd*uvH@JvuL?_3nZWrI#c8xvf-;{!fbgY2pOH*#zHUxod!{yP(ok>hKS|S?amrU zaXgz~qBASu?vA9TCjOI|0dS}{GY}ZOBcqLZO{-s->XJ`(-<=tqiW-93!hS6>JU23N zzA$uV!By0*J@s)075RyRlMLH9QjIPtnvsc|X3~79sLf0~j4=&Yh8t|WD$86E&e@0y zkd&6O;Q>q z(DWW0(M53+$fBd$oYbh+f+D2%mxUCMsaPHMz23; zv>2x>;Xgxj71xo7*ls`gU2?j~>7$ETS$2xeo+f)Kl24yMu*8Z#nX{5&rO`Y8c})+f zxyTGhS@mYVv?20@^+#IuKpP&5%0&^>KWn9oX12-XjEQhP8j4fZKzVKTC@(n#dG4nL z_z%ic!b)eUs!S_8?f2(|@dwowqpeI5do$sbhs zP&8D(3X2PXADvdVW@a1Tio~*ueA++fa_(kKj-0Svv?%vI2sr-6dwFfO)_+ia=^9n5 z=Te2s=#`k+)a?wPJkhsaW-xu2OwBpvf6t}d%(F!BWTph`lx0oM7s9D7fUcrEF5v z5+Oo|O)@(*lggRaxaqJKpokq*5T?_u8;{B88 zh2j}qcK5Vb#QgoE#=C<;gYb8oKe#KjLqGf=3kus!$X^t5pkp9~~?ja7`K$lwVbCV#7#3tuh*hX@f%`GW%r^Y`x<15y(+ip{tjBgQCj zp@y|->UgV|3T@J*1H(T{QNJU6aJJT1h&M44^3453rl;uB=?VES?GtRG$?>I72jy=Q z)3bdp@C1)Ph5kV6_wN`c7=rMiru;>Bxls81<6?e<2b88LC*w~jd-{47DZb;E$7cxG zfE4pxe8wE;-Zs%D(v!Y0SrvW}9Nn7K)u*Tx|G^G1%7GOKU)}Qv^L-gnq0P$aYGHk9 zs;0uT#JF@}%`Gd>6UospIS0NeDJoAbUOO=^ygYDjOAmi?VAOyw8H0lQyg2X-38xA9 zorbA{@>h-wJoDm66=tD3^v>Vo&R^>4v*5?YNr1W}6>aFF_|;IFqA@_qLG;De=0yao z&~IM_u2w_B?Lb%G7h<+>dgGMR)iA^R%tM6Oru@MH_4)f3X|sYF*0?<3tOKiure2rZ z46phEzk*rPt2Q}U%^_}i;_8kIv9LifZ4Uu1l=t%}fqfRY^vfbosQ6-=Mr^z4zf-6v z_jgDznpIEW;uBGea860jg}vs({DKLEvyq6GX-h7%4q})`^BxpEOK1dJwz~tPugmCr z=n%GL-JrOj;`Xlt8q+D`A91Vn3KNUHf7}s3lQ+?zvb!3%4qdk zAf?wdkw2-vyXg_fPqFI$mH!d=K34=e)Z^Q$ih4Laa$P zOfBv zcL*t5DQdx*9e>2(!Al8#jz|+4DlT_@lB!EpT|d~V_Pa$A5u3Pj$xO4+C$zt0E^JbF zimkFkTtbZU#>bQB9=Lrmwiv;lWmp6YO;{Vm&u9!YYzWZ}`s^XrS+e@}y1$Z_IdH_q zZCfQkj%bffgns3$-NOWA`J+u@{iCg{ zpKKVndSlu~mfajA^iB!qZgCyiS1GVCA>Fvh9`+)2oT;MONL+L0+QNR{rq+|1YFwkF zR$Vxqi96=6U6UigDrpQ4&M(d|^(r}D@_XR~AV(K?JM!&u`j?{%7bOF5HY;6hCt9?} zFL;4z`!*R-sjUxL4^?T6VzxmO5!-#bq9rD;!+--TQ)EFHw6-M*w8O|T%_2)ZpZ>4< zEKX&t3x?~9veSdG+E%>*t9tsVQJsS=WvM%&zA5kP7c)u4>-)5|0+#0QKgRetOUx!F zsS;MdSbtUfH0o7Tb-Ah1RQomAboCzd6h&T*9oRoy8dRKwvt|~b2z0I&~1US`E^wD@wbiJq!q^f!rW3O11 z>b+vKN?-OUk_wswmm=Gzuy!x9JAf23(I(4Z2pQe&V;@i!CO^($kOR$47_m4vJ(k3! z`wvbmnx7QW3zSxYN&8h{gsPUw^|$QM))yykg&LQHU6b7=MJB1nMENuBSC6-|*x9tKL-f z?D7|0q8F;ToWs(EVxuoMikq%J2wM^ujwHg!6X+0ZZk=hu8y25uifp^3)*2X$vG#ls z)Jv{FZQSOCyg{kuczmW3q8C*(bYXChwpKl%>=J&;Q5hKR6>~o1`b{iAF?hJHHZ>j; zMg3Ex_%iqj$M~9MK^i*v;YD8bdegGlz{rzeH|kxK@g^YA;>FqlG1ISE|o$09I4* z3dYhYnzN7ifUJwc7)R?*6kB||1swBIlf(?gxCSx1SBF}GquR7b8>mj)tlLdZHwtDB zJR)Bur}eGnv6)RDIoX|pLl?x+bFyx;CO!#7JGPXq$}2rGehl1##SWs_KRds=&TsLbLpzcTOa4pozw zSxjphEpD}kheH>yh5rawO@u1v%(-cTTQChkV_TrI)XaC^n6mo91ZSYG($K#{s4~Ky z;<^{z*0-;3Y+Ezm8g>O;O-r~c#TJ5%kp6c&R9p^JH#l5_NB6`7(4FhqkkK;#7{t+# zXX}+|iUQaJU<46vCvc~b7tD6*waQpA{J~xyeuYDXK+62V0mV;&)zFhlE;og`TCB@> zx%6Vi$Z_Z@E(c2U=&q@{m`X0SYA*4rNvcl~pHS8vX@U{6acMdj4&^vt2Q- zkwG7=ZpGOH!vQY0Fr)BD3*q*r;qJv93^&puTht#F9B_q_;-a0c@u}mEB?r7UYM?1T^MzWgvNguosR$c z>#)Oux>5a?l6$qpO{=}te#c%1Y-(3m6B1p9IoEzw?pU0n?>&YCgY}YIHCC#NzLpTs zjPoG7@FO3fEYW(5gQ9|W7I{$y)9{0t0rubb{GQTSQb257)B5qI$~@Cv|Mtl4x&n`u z;CkA}<#f?20t-pLy-gy>#vc{!=j`DZh$46$jS*S-$R`A1Vi51(_zAJu%hadbWpTg3 zE6t%=?96#xfyKB+VIJbG4FIlEQI<7}Dyw;C9&abUE_Xi&*##pTz@0q(L*A*egIef~ zN{i}~J*crMWpAauH;4wqBm?>9?&AT`!;FU=+&8Lz%I1N^3SGw7o$6B*)-Mh$Vfw%` z@+M&teI8z8R#v!{n5Gt2D5TKHMV zxq;v|ASwUh#2C6<+}L(W>?RU+KAaD*v#_nx)?U1~iTE^ZRsLY7vWuuiw>@vBhP4$^ zTa&~MeOueEOOYrC5vGT-G-HMRKz%{s+FwQBgO){Tm0E8{F0XSUNH zXiU=lrkOoijaf*rF{bJ`!INRT7gMJ;LTT)_ys&cD)Eq!iO%cQLkLfOf+a~1#o?4h9OzbMO-yaoS4m@ROCCd+EquNXIZxMz)9c|lFBe20YIsrFFiN_>H%DOmsU0+4=F&6$|r zAuf4NohOxD)TX)7Ex~Aoum1SpV_n2gW?hBLAxLqMuwO26U8A@-*Fv2W+zD+2ugHohfcmaR_pG zq=HKmkOZq(QxF@P3)_GH(-+AzEI`jZ5lhMuI`a+`@2kNrUR~km(250Tp>3mzMX(Kz z++-4{;?O*^ap+saE~X3?ya9yus{xNX63IAnC19|A&hpVVKFK2X)V3E`)J<7iz;mbO z`ypzkt*!oH0W4TQX84G>Q%q7DMWb!U+ssXMX(Z3KR|*dmv6kYHhjltH;v^AX?ajOb zK1`_#-#kX>KCm<;;VqYWiy`VH;8I> zjzsDE5UTnNxslojmKe;t$=Mv$Q^Lsr^VA|wP5xlik!0J)`dh0@OEl{=Ec8-d|ENmd z%XZ4XiT-nQYahYKw}3=$WVky!px`3Q{uUL4R_DfT42kN{)CvJae=~Igo!9xRnbtK$ zLr-vBWRDW7i&!JBoev6aS=O1MI)ls%rs6>|Vh@ zULJAyof-L;>q$G!kmZf)a$-l&1*wajfCXkpPwI6MePt}@$4;TKIb0%0rYW8<3n=IEJ5f2keo|9s)a z%Xg3R0fR>ck7T)O3a=VR=ro+BJS%fy#z%n_6OX9XHaO${Yj%*Uuw%Z!kew}p$WSuJ z!5?ZgJl1ZRNnb^q;!qol#_Zh5)PKHE!a69bD?Awk1D7`00`V4A^)b|-y|8qV@#2t- z+m<#Dlg&$tTHg8cvN926j4zof35Hx&i=#`SM)qPgK{0xY1@{VfEKke=DyYM-Q#+a z%VLqB;l&)mWgEmq4=7nyE|3>yiV$yKW%qg+X2E7zR$3YG7-+#U0Ls6Z0YxFAH886y ztQi9u=WMPzI6`fsQo-&ClQx|sq_RS{;o_+2J#=w&M8SxjrhM)TOs|%yiOE>97<)Mr za&phKfQvDJ(-YeiQ~ZT0E~mx|Rac4BRTb4fy5g1UE;m-*;wv0+5qN~Hn^nc$cZv9@ z@+G~jQ=0Eu&O_ymt7BLrtB&zbk-vEL%K2v4aPYU|uogF}IN+>&%(|K(->LRn;-&U| zl~}IS7>i0|v%x=8%#Q^g@Ng|m4xY?MM=<<^*c&joGFgPyl^nzTomJ#F1ZkkeRaHe5 zpMt*BHWSfL)I?0CF030o1|Y??ruo_JSf7By>LFpIba^sdj2)$Qldv)@Y=^Ls z&D@-gov~P$6kLGB8YeRlvtojaom5>0zQeE$U>6|WpOJ~$UNk&}qgWr%hWAWJ#!#bO zo;wLdf)dHw|Db9T7L?V+0)D>OZ8UpQN%d9pbfvhJMkZ3zCFb;!ml_MUrb42W99EI} zt}Hs>Uy$m=c@1YaI;eX-#X_~U&tpogxX6OeH8lkCTSur(Yh$Tvi24Uo-ISka;hHl3 z)2nPI1SiD{5{wYLe;2%Xig06}A`dF8B1@eGA7#b`lyZGazU;K?JPOTIWP$(GAo#5m zvy)0)b)zm1&=z2@e1QJxI`_9(AD^n)DtND1U0R?~&w89NzLXkv>fCto@v;h>Q5ex_ zxP~-B7@YP3^Ay=xkT^^!Twx$QPjf@|300SvwObe1?DiB50i0=$7Dd;uus7oC?CLGj z?gkMT5|8TB+|n|Bh_Pw_#&ffi@g-;~{uXI=ilb&}0;W<@XnPAIjrxg1>wg$EjCHC- z{}Cq$g_)qSy=T2tyK>;Q)?X&T17q`lY!q3o8@Z6KCoy ztgUC*YG1jtMbv|Qhu+@;v$_{hN1ve*mZza%0^#nE1|YR2s@!o6fET^&BHB*nDWV#x zJg_lG+M1Vo#ZfkI@<9Z*&ZL&1Uh!-zHn~0E|_Mqj)sMyaHxc)L1wF4^IEDyn0%>li(ru z{J{aC$}@+-O;wm8pZdh4SJ_G&?BO|F#ffC)mr9Cne8#T)!T4k}-=Gzu*gIC{TI1l& znW0NDymNr)tF^{!+1)|BFB~|h>c+_ughQSM5Fm8O`pyZ-t&JAK;UQ3<|3<$#TRm&8?Ti1WFQ+#`67OeIYwX_daJ*>h} z{qAzIT33C3b=h&n-YKlk^nbon9Etj(R8!RGBCAqR%S(oKGEu)PLo=@1phX=j)>@Y6 z>G%4x0cQQ}QT8HN1K3ll0j2gSV!^sd8*Tb5O`cja4qLWBOrKir7{;D=>3n6QwYci` z-dhc8a0A}=j^zpP-1>r*1#r>)s*#_jA+GcRSjM*lH#<3(krm8<;Qo>G@ zlJ9fw6tB*5Q4_A4n)WV$u)Lzy)*ZKG??F;)Qf6rvEV+o2xtzw^%f=60BzN@N!lCiw z32R}XORTHn|51Imew;&DRx!*PM{@gK-}#drW51%v#$?rb!Ww&R{8ZTunpHbZfJGmL z#t9IX;SQSR-r3k~kNyb) z>Uln_r1DRZL07-HgpWss2UWc<;4C*p^>vIVg5it9fie!Zv~*-x5S5}SVL4h;o`s-d zYNy+9!L+#b^rDAFOh7qqHm*em1lw~^E{lzuTz;|mAT@=N2F52+vb^dL3^(!)ZQ~Bt zY96jspD!fNl6R;)4$x3^p*Yc%MX3TySh}tzn^va0SU5RxWY)ODMVc2H=+)qd*kK=4 z7ply5_>a0*2V9|~n%mlOXc*KDpT^y7EKW(|JVWupF{M4z_3(l9DEWQqciAn_ei)^4z>2VNVq|ZW_0=Lk?XRsQjw3 z+8rgD0ZH0Y-8!OWTg7^xdetBLy24rBV_%M(D9%sKhxIR zlGi)cy(VTBP2yASTrW^fzEqvpT+Icu8@Ugq{Ryi)9Jz_{wsT2mP1Q#i6-EZ;I{WCl z6v$I$JV3trYH&MACouY+X{t`j{54fPDQ<1)D+YkKNw)ckA=XHhd~JE!Q1U`mBCF0_ zY+h9=Y8lT!C9Y>Z%YntM{z)|~az_7SXY3y|!>N8^nDP{Ks(`@JNV_pKQ1ZN%&v%FlQWk^vN-) zb2Ew@S{7tq7(hC&(BcJK_fYSL8$WXfDgKLtDn2N~H_)~rTUX`g3bAkT1}q%)1~nJi z#)26mc4~@XYL+uW$69(wV!bLtxNqywV~3&4Ha)_jDmp}O#{;4qB1|k*4DsEvHL$M? zBV85VC4CGVv^y5N?x{X7uIvWj@f+1J!iNWCSC^%(Hbwk&Snz>$8-lD#no3KQ)-Mi< zmIs=O=^m!KR{Dtg{KY}VNm-N0#z?E3>?zd%$KlA7jSrUoiFKoj%iX0^rG)MrA(ygS zo8hA_abg#3{i7#dwb{#w{?acL8nuQ+2@723VJ(tH^kk;&Q&n^b7HS&X56E@6Itk@z z<>rK?Y~7uEScG=wd(c!}RP|!d65G_m5;fJ`aRL6fGR0x1`xd;J?Kvg&E-mffWq;bo zOJzxrrTsv$DXvs$K6?alk^pC{Kr8s*70fqTHQ39f|4k z!O2}^$Lpp47AgH9I-OKm{b2`^;{*?B%R1$hNiRFis%f#B`ka!K>-lA`A3f<#vFiC91>`+G@^y{yd~7P?tD z=5+352VksRdBIVelL$=(nu_zm3Qxkj@Jj34P+AtG=U)HWSl$-Gk%`_c^d?XDm1A4$ zR9mxZWo-WJMOpyIy~+BjQoicqhL*aXJ4H2o2n-jG*!gzuX{#GHEFt&1Q|@MCC^a6s z(gYqJW@#+X4K(_ja$1;?)pmGnSDU=7 zQqQRw*7y!A^vKgvI-IRvLPUR~XpZW4O^^S;3jjhzd+wLPU|-l3y;T)PVtR<*0~ zC&YFiKA59#Fk|8G;QI%;n4}t^|Df!0OH*9L?Up}mj`p@w6+Yj86q_7-reQ-nC%!*s z_zCg@9H3?>o<4BO4KO_1%?=7l3mN_O-BejXs5TWcW#|4?@H}?vvdilS6{m=5sPe!@ z+pu!5Y@Msiz>p~>FIT8|t`zINsN1`B^iY2(#)3U6g^d*r{-aOP$h^0F=pL307f$T_ zU@MSgZF98Ck9lZ@gsBF3f8~JC>~w`@tM$`L8t9%~rftn`xg1oQYRF!&ywqTS!(Gl! zm025NR{W0D37ASrp-a)KWscG6)8|SABKLScC(rPtCCXMorHxZHFlxJCuwuo@UMK=s zm=7Doc|P#RBxe{`Fo^TKKWc68Y_~10Q2t?MiR#*A9@yBB@U+o9q0}_RJ#GK6vPdj; ziE@psT0bv8kS|*|>Ybt=H;^3*6Dv%)$EDYf#SObujc#J^DpW+o505p$*b>#{nRie_ zLA8MRX(~I)tgZ&pwd@xM)u!lE@Ig_*JB!rH%%1blu1NiTy62Yej~XjzyarNLm|*{? zVO8m@UG(X4?-(Vz924yYVudl0GNhq;MZBx}_Q~2=%#IZYe8VFvU#Ey_>Lbf+u7)?f zqPWTbN6k8u(z>uXsPwZAcZ$tkEP0_aQ3S+Jql9=>ACF)jH>d{rJoV2P-=OfJC!G3QE6XQFPD539#CD)`Jwj8w@;1cFHWqx z>kV!PR+05PJd7WSsE!OfeA-R^pw}VZA-t#xOCGOKbjTEn7!QG4B&VV&JgMw*W3{g0 z6wZ5^u=59mRfVKl1*Imod$N*JRI4j&S~z5p6!&t&`#e9YZq)0PYZTS8rAC|zFVqB3 z?_}5KHYl0o`veCxhDbIl|BChf`%HjA#Kpm6ps&28TPBdi>c#Q~Aw;XaY)SEhnJO*H z@J8{gv5MDg^{uZHzzz(Zxo%W&IoV5*@mJTaNKQA!@A*`5FX4~MF0#U+m=0dcFI!#X zO&RNiIp1Qt{X3>St_3M4YbS6!);%^hF3-~MW!o;iyjE+obaD2?-YK#h`eGku5&8HK zNWLuWP{Bf9qsEzNP`c6-;mz1Db_yqH77wuBm6a*-cz;qGtAp1F+li_@I?Slu@YYbX zr&lC-Hc-pNxV>v$pW{MyJci|u*j^&9&t<;Fa_bRs$(Ils_=sxHaoQ#SFgAU6 z*fOx~RQ@RIQ{{o7>1`W7PAJ4^&s8;`%2e)RH}}qP$J`QD;a3{Wjhx>rLj#E@#ep%v zaTl3MU#hsK7;x;5d@puw`9iI^vzoJ~sF+o0&i-;@w?*-s_?s}%hL@RohRHWi{DkO| zL?CIK@E=uO4qYmDPQaH333b${rbc$;xEwU}49YESp7X3$mfs~GlN+9JpZ4s<<%Ozt z;Dy>W(F>J+3cOV-JK!26RemVi!H&vTlknN9$Vc=Cv7d8$JzR#=XThB;!ipoXnYcR; z5J&(LTcs)sJ43bddixj`q^%7WtYV+f9YPy(Hjeihmit&bfDYK~8+oJhlyHF=C56G! zLb$hy?K5ntzeUiFhv zoE^PTuge)BL4P0I$#Nj)pf5kj_64FR>^-P7E5`G#DjdT9u>2|Woj*A+YM7^IL1Zxq z3{U2zrF)sp6(D#+5-#C?PAL=)*AgECyfERXMppa1-aUS+bc3j6 zE~To-_4G%<>QpCsp^9H}L0}3IEGRJCWu@)-hBQYk)+EDx?Np}<4}zf}ONvfvEdT9j zVS`?mGq^RgQXW(=iR}w4Ud9GRv%4`;#%rdQoua9)c-kfvdps~8K18Nbnco6K7NEs= z=~N^)`lG4?c1WWPYvE&aqnaulaRZ%Q5WfS;cw>CC6w#g3pm=@8_g!re?$k$1xK`_p zKh?TXG}OmmjYsXXi|jr;O%^*f-XIr2V_9Vp&cX(bl?_*ebRbe@+we}$AP;6DK2|ec zV-@uc$gxq}mU2b5w&N%Ey2$qPSrr+=r%o81WjCa|vBk$ocWr4sX1-J791EpzyPm~_ z9=M04C^^3~?DikBh&ecL?`IV%_iC~AmrkuMJ{y*lZHZawy|{WUG_G|Z*N=?*yq6i5 zsN7bL!M^D_>y(r^D|{0deabwrRdvJEii$x4tRLo8fdk_^z^NS%EZ% zk}z*DqcfuAFcs`8j#Uvgjb7i3t3$W$gPH(MJjx}6jzRR~;+rhu?2Pj@PtX{oM}@%; zG;9)kxC5~R+YKvIWZFb4~v6vJ^q7Om1^=P+;aaQEGZW#8CPN9imLFW z4S{~g5VwgQQ2zksij59ny4DX4=wKgK2A0Al+V z?A4>f2pr5*Z+mgYoUAU=v^FF5Q!RSnG3b)qKa$@VG=k+qAgW6PU>YVXYYZ zKM5-q(xBuCdaSGs;(07KTI|P~!UzE7KpDSd07gI>#<#J9+gJm}-_#@)N3xeX*$XwR z<26$)!CfqqC-r;%$I_mQRE85yrweXigjXx8+)Hc@xJF5F6HB08w(7V9S0|(Qm4QdH z23)tFp@*r9{&naRWrHSQM+cfpPSN>X#Ow_)#83$fyinz*R#n7Q{)6gotu9oX`w?>r zQ2UME9pLG^+@Ha9{j2LjtuuUc9S~o3q+<@gwvg^rT&aWS5BA!}C;il3`WGUf1Zefw6dPbzf^aWG?L3+08_?Kv z@$U7uA;7`64Y>onKzz0`PZ`vCbhOh;8e)q7;>1|k@C2AQVUH5Ie?>42#w~h;t&iV0 z!wcFGtgw*q-WRB3_6TwMXwh;fdZXCxLxejFBJcDc1QP|#xYl%CVZ}uZR3ZXIgc#TF z8TwFOorv7I!i3L$MrYQY>P~S-qx_@ec*9h}Ac`02ol_3IsG~48b7u^Iq2e!8TohlR zI2Mg#>i(8kMLM2951CJi7phD(EG(--)<~mnY*QH>y?1JiIP9<(chpYIdel2I>tJ5_pgA+BG-mD&%wdEJ=D!4M^c*=57-P;`i@co?zI<@{)@LfI6ay7Dh| zt9+T|&{{$GD6@X_q63Sc>p)@-Q=U4>i_|wAQOg3x8B~%B|C4?-t86_nYNkx!fYWjA`MC zin6UU@hkxw(>2DH=U5shd|+W>Ogf>w3z&>CTAcg!ivvqj)VTCj;|Vr0jf+LApR8G# z&)J^q(F}5eupEX`O~Qp29`s*Gw}0&p_*+mE7Q~RdE@3~QFBA_UP$RN?y;}G!QJz{b z@_|udHpfw7`ZQ}>MeZ0|f9T;Ih$pMjj`ztB{RFcze{oPB5hn$9|7{`Ars%8ep!yUs zlr8JGmx&qni&@E=HcZC=xYoK*;g{llkE6&qMXZw*ykpZ9fvy2f9SOyrr^t-#BDP21 zwc#YK>px>_*#ZbJTo;2uZ+Y;OWn~6h%l_esuEeG@Wxl?F<#(~F$DUr}6SYy7}7hr4@ z`#Q8}WO?I5;b_=4Cb=91U7$RnGHZ8~R=l!|czvO&MKol@>!2pTgrO92qAFtHAJtvN zfYMFfGGKNMgw1AI7wTQ|vCmh_6F1}~r&3eZ8r>E_cBrJOGt#t_c&Tcng!2hBKWgmmId{{EA&KE8HkaekE>L%f`eIV!>3A)l@-7dU)?*Q9>PjhZzpZ** z8iI$iqbuMFdlND7{-9+u0(zlfR6xsfQTIx!xQO@Ii)?w?@B`WQ?_#my9)bW%yI`w2 zfLZcRjTJp5h`7#m)@E=^)~A+nPNk0zbPxCX_gTrK$moCf8D4l zC#wP_2JUA+x-Qkn-j)IEfnAiPPm%Za8AD;h@v%(w(1rQ+U5mjc!oB@r)kSIj;DDM# zthY)Q`bYI8ves7>vuK@cieYR?!pnpCbr{MYtcvsaM+K(>129M^nuH}$=>fS8W(G*g zr-#9GA$L@&DqdYC8Msh&>KZIN_)%ap3F||B2gIuI_3>{N{h4PfLu9+sAdE2dlBK9w z(m=HcG7T8D`kjiKGS=@XGyU8SBzi#kr^F-`m01;LTWE64$W1K(q>f~J98~*lDa+rm zQ!K2zt_#NQfS~mDX{h#s#TpYJ^E+H999RLudWS~DZN)n_QnrK!W!WfqDmh>ZC4>q` zG!*R#Vhf#maS=D#7Qug~>J-u9Z#TF0M{F+oDm$n?MZBwIDt|Es(;~o>Cz^VHsaIJ| z7|O$_JX_?TrsP|@gF==0Vbg6|-3(-W;bu15G#U|~BzMFYRc(q`Vp3<{`CS_Dw4O2Nm%@Eo zL=oo(QkKYN3$nPwNn6B~4%w3Pl!Zzvni9)sA~zk`>JkT*qvYmi+PQ@fF zUztl@Qsu6zt+MK!;**V|7R;k!&&m|enPyY_5QHxY#}Fj_fd$fnv~A_tXFYavW1-Jv z%m;*n9D0^V=T9oRyEr|;FH~LyM*qP9p&5CXh{skU!08`WUBtsd`^8Qz5sfHGY(+DZ z(LTSbc8JfF`S)G5+e+lN7DqMo{?%02l(BY4nekWIg+jOI3^N`=-4MteA_i3K+K@1$ zXYOi;C|l*EF7)BiGqCwf@;zEpa`ME2P9y;M!%z)-gyD3d0!K1o1muXsoU7R0b8Bqb zppXxx3d4Qoo)#30f->qLzXgU71bd;zuC@>w{z~-z+M(=nqA3dFey+tS16aiao1$QC zq9%pPwyzcs(Ib~_P+!n9pLSOTmqTmWdZ!4CVGf%tby|h2-ltP0C)K zx%y{Eoqk=Lr8du~6<>V^RO}z$Xm3*1YAT?vARn-;TH^vuE~>yO_p;PA0p_**D7!QS z+mk?fZ)NhBwk-BiW}HTA_IFLC-y&}{%XU}LhIIOy>=m0Ll*=jNfN1Sav#2H#7zD;g zU%Ir(o%!OKEDZ@Kve>~e|2ZLCf}{WaLE(^!8#xTsSy}JR+liK6b4-(1{9t*)2gb3K zuM&qtBF|;u%|+%_V@MQ+blcW1yuavJn?)amEHSr9P-Tjky)Gzk zQ08z3Ko_P9)iz~GEqRbQ;+q-83f`#j{1nL_91z+cH<`u&C{H1Z8QozceVjk3=pt%q z>QuM*p;f99)%w|8NxNQA``x zEW6xz5|M8!@UW0ORa}>m5ceA6lV>6=bupPK(wfa;W3%%}3N4T8C@{nnPDvXS9l{Mt z84n#Hs^}DB>LiqZiqqlHnS{&AYa;=>SdZhOA>pk~X23k4Hbp2(#@IrREl9qqc8JN5 z*z)0GBR~cx+gS0eMzuM2vt!|2EmBAjO;x6x898;=<4!Pr1`(0cDllacL|^0AK^1qV zXL`>|#p(pwCv?w&wN-W8;*m=rOqNz8?Qva<4;=a1w6tBQcRn6;$!Lm5PxCF2PqNpm z#@`Yz6s(erAkQTx_fUJ0c_~}JI4HipVnHaoa>8JIL}pB_>q^f)0VCa=b+dA(x&tUH zWK|$GwDkCIQ{Mr-KFTmnYfzyXnGb|%T%A?x0;Ja%CHmK^z9H*=bq$1)V#7Bxx+Hb{ z0xz6ou^W~V=Ah~XUb}9m1^@%n)YDWz2v`Mpp3?ZAYEQx~?L>KH?tng~gy8&1O;M!B zWENKtm|cKrZ{d7c)LZ0k;hAJp$JK?Wv;f|89SOOet!ubcCv8j~z*86`aS=K1!ir~N zIeB?AW;>Z+n0x|s0hX8r!$)E=ek5HO5*f7KJdKQ_$<^DV*6BCc4~*$Z7~C^8q4 zE{;MhMiXm?Iwi65=cP#i&MIB_^6OM}fyO$AV>s@ws}--g2T+a$sA8fsToun1@`fcB z*+Hd>CxRs>bBQ6>w6yGF-O2lkTs3uJpk_YEeBD$Ftp{0b$mE#Pn%_Sf4r5+D{IQ zUkx8M%xtvV8^rFF>wU25b{ivtB5}80vJ^{R2IpjYZ(i+Gw>ohb1`-~+lRu!*oLB~S zHk$CC;UX9!I8Ks3piyZUF5A+yKVM2yggow1G3)1@w_aqO$}e?$zB+5fz?fZKjH$fm z_^guolLPA?tXvDVu2B3fUa0q@W>s)669;vsrrfFcQ>46i%iwt>ZO?E}Qv@x#`5C*- zTC`pw$}`#-^Sz`0Unrk-ne&}1`hBv?-Q^aVU7elr$hlig@KyMMy)H`D5KU2R^fBDR ztxAQUVH7YxG#JZsQbrfEkGtQg?7%kx@KIuM5lf`TgQ{*~fk!S4FMF@SMwar>uTXa= zTAUO$K~+~m^hOQy2uEMs*ipte8eSm>T9q3V0wB?)kEDjuf_SbssAs40FV$7Zc?K8) zz*=7@tWNm3@+?eQ@(?+PzC;X~P4=Mr1gJ)1SmE}uIOE07M{Q&oa)mx-TnKgs8Qihp zYM7PsqAWTjP?+)hIlTq(h$7>5^Cyv z#2w00!&q-&Q8?XuGy>DU-LiyH)+YmC4Qb zN7=2+=zza*Nsaa&a#o27kBa3VRdn<{pfZ1tdM9ND;Vsp+x}kDQ;FZ!yebKE@aWAjC zm8)A^8?hH`_EgbXY0KipM~GM!H6B!0qT$o?s%l~Ad#saTZK*6v<{MBKVDOIRkDjuA zvSVy3^cEf(b}{Pn5*kH4te+fMn*fs-T`<1DI$>QX4WHc2+lMU1lxF>T)sR0qFt%0m z2C-x8xKZ&__jYYv{NqR24a*aAo#G&XmqM6({af@=x9TEK7akPVKFv{&}dZW<%baoos z%B*@JH@V2Q!__SJDjS8EQQUP}2NB0Z^k@Y@T^EXtUv22m%AKWISz{{Uft8$=a&pQ5 zJ>zhXi>nkIl(jNG7!2T}O42t0&XCLs-zWZ*jcG1|p&9tW@aId3E{V24X@Jr@gNlta&&a%bqu!# zNILg+vcojCAD3Li*`ujt6}Ps@r$ZV~_c_sy%$uVZD*K#Dh+a$EAj4@eP0PxKsz0jc zV{BCW)pf(z?qkXrO_s!`I;KAc=u6I?%sWLe^vm?@I5Xot$64yh#3|~QuuBa^Jx!qe z2bJfrm(YXNVB3p58^u(5K&wKi92?`HhRxEn^zomf0gOHhCy9PT_f3FKy8K3n_1LvmfG`PP{T04*4x}QKO8( z+yG!1YHQpq<{H}YD56TaaD@#n(VD^)l2%qfK)7RU_<1@lPn5eI$)fMDqp52wX5yhn z_-J9i+4>e5z^s;7lu_fMD@=f}nLBrFabg{2-;1_10fWW##2vi1R=rZ?(+ut281l)lX@6ASAC6)wJ)km0s2p44pxEr(y$$QWSa5JU zr}4i{{DArt(N&AdzV-*?L}1o~`HO>sock8+abB@bu#bY3FL@QbD~k@Gju$9#;bo7Z z`jvfL*{Y+~Zy2zwD-5s8#4&MW>O4YRw>^)Z&T*)?z6;bR#A`F^Gb%%jxVALm11l4to(on#+VcF#fua912@RJPS$(%maKg=Fy<^-IAHr(}uM57uS{ zkE*qgo_@!;=G<$zKLWP`)ottki=7(pfT02T+8z#S+Y|7R34n!yV;qJZi&I2BU1fKn zi=Sy@H~@Bq9m_7VX~d#Sqx2;FJNXW`EccJ#-LY(v%%bpEs1}YdEm%l`=|XAdJj8 z<5hbnd|=f@u2R+veTM@$zOE!*=N~qXZ+T2+lxnnhsd+42oO(}8?8C{Evnky{c8sq8 zV@7%Wr5;qA)WZv@T|Fl@z7%mcXxBw{EYF_CK6b&1i~LKGRpT3I^GiwcG25al--c9% zXQKs*4mm~DEbv?EjzuwU{89LNZ5>#r$^#2iM3qSlR(}{?L1)QrexwJM7WVmK4lGYS zgfCcGZ;E~eU41Ov{F{W>XYJXUt zBO@lZDsmA1Eta1-Fxt2)hXo$XKx8WASem}CAkX3Lz~Tbf&#NpnO_7bfT^7nIfSqkN z^g)%`QuZR$`{Yizm(MFuZEGtD!gUsZV0{7)Evm9mdMvY0dki&X<?uz-O)+}nEv?k@~Q14I5%|Styy~h*q9u(SOOpK)dI*IB< zV?Z{5`GAv1{|db$?x+G`>QrNmCZ~haKFt;Vb(~mtfJ3gP#wQN>)TO@mx&Xd!-P5=s>vJ-; zpBxz900){dztaOt{<#GvG?ZT+_pvQbieKS@l@HM7S9oCc^P#8tlLKR=iWmJdX!(Kl ziG3bpr?^43Cn$I9U25*5pREqFV?kws{KMkZliQt2UQV#JxEzOCo&eW?7pyqouxzwe z*CXbo`M^GUtcJ2sz5*QjKC{E^)R+%R{q;qz+LSUI2)gUBPJCcXD|Y(rlo%s|YM_%BZG` zbh+^jb25k=)n3&aV~dQg(VR!{Fk0kp(Rink?0AZ`sHm)7LXHk_ zz)HGiX{w>INiJeu+Z_il&3@t{IeLgxRR`?Fu988ni zD81z~@R_YpbxO`BVfK<67FVIR;8mT{hU4_!|M=k)WvvKigrd8ToRHL!En86zW z<76CIS|TnlG?u-%@Yt;p`J80}iK}3ZRR;*ukL946R|j%0c&GX*((0!k08y)GLgu9& zJ;ty_|u;O|QljkFW_AMT{)ax-y;1>CF zj<1gU|FAyyTugu?sduUgevBhts99ndQ#ITvmPXS_^{@HF;=}?Hj3zNk2JVm{G8>jw zmZvDhrTDr#!FuHr#u<8Kem#G2{tWA*}4~T3r5jna7&nS`Dir3xus--D6_Tio9 z9m4>_xbIv`F?!pM1sAb2<;VU`+&P=6R+beVv`2i9H0APD@$PH~THS5ewjwpR_8W4J+}{XoPdje)ak zj=u#TRQ#y<4`m-9rE53i`AXuptNBk(jIV$z#Cpf-M^C#x^G;2xP5ZuosFvqvbbRax3Jwiduv zH+2dgxJRbBpkCL^fi?;rg*JT)DF$wlxj*7yBf=8IVBh#ulSTTj$V56OO3zZfV_}N? z%2-fk#wqISQ4T77x+DfbhWpvEyvE~vAC>JDeLfeB)ekmSl?+R}m)TrW-c`SY!i2)% z2yI(MPOTU?th4b^ryAAhf%7?t%+y(=vMJ(0Too}O|EM@c^?B~f@D0#JMaP$*dM(e8 z>5Xe15USUX4RYkNWPGZ%s$R?OF;AP)y+3k$jDUZfS6=l3xIQ5DUZ0X_mV=`=>UDsH zMdpFsO64cNY?DfrJ2gw=v9}y87*@+fDPEPmY=7Dt zd=tHYxzQX1y0b+cxkm1YOLHx96VBMe6q&U{ImAYsibpHz#w-z3DbK@b9}m~|qgpDP z@*h?m^X%BKqS_Q??t6+@XGiXZ8HB}BGmE`WWbAf?oB7o8pwLJ>Xrc#b6Z3fFF(Bq? z+X2%5cE{qxc%&+F4gOKd)dV}^&{*~%s!y#)fn|!;2z5YMIdM?uc@+Iec5DF#tBq^4 zZE$z^f^ko4+D6|OSrGrI*CmP5A&=5_imf00J1OeuKgRgI5gMesb>wc9&Ia}j63bKM z$567!;@G-Sx%H+Ty3U|G;2_;e3Lnwtj-_aj4Qjg0Nu5@fa0Z`J~f{h`oh9q#%A6}S?+rci+64P zQ`~#Sxbw9@!{fd4$Z@A$mw1tCmg6*oXvEmUCAk(s6li{*ybG(2z$1q+p8oLer^fQc z5^JWc{Lv2JqHD9C99Z>1D!{?`uSwMM0g<4CLzjVyy}8AuQDWnz@Jr_!K~BH+{vwOb zYE{4((Ck5T;5bX;%NxV?V6(cN6vyw8eb>f4b!R7XyGu>Q_!Aluq{*>B{2P)wD`A{e^S|L#qx`%g_q%iqwn8OF4QMFr+Oj%CjeP>aR-WpJDRBx# z=(lurnn>Ii!7hQVm&&R2M~x3+Y-Tezt0HC79~7quTCzxH{zp*(>_PP2Qdc7roum!J z1B+grxZCB0LLP#t>l%qCzPs4U#APQbXR6#UbBLXPFrMW0n+1!aM%!};C}xbsDEn?$cZ?miiU5X@39BiB zGE;nDFGQ~^V}kW+SinDe%~Pfx-9_%4=Z@3&tzL|3!M3Q)IJ3Q?mjbjV)p3095j?$V--x8!O^}#$<19 zYUv^!WVFlg_WWg)zGH0sJi?ZaR*hoEz+00hvL}()XeO&Y_MfyiZ?7A z7S%91KoqU*)I8MQDPmm05`-rWok1b`Dm$p?qJZhz>UWfxCO{W;P327)>vxn{ewAG) zv_7KJe%uW9rCM`01frJ(9q+s0q}y&Ps+(mrKNDcCvJ3W3%X*r0C;}L#8SYS|+x)|-1BA13B*We*(*X2NwFlIf zXq3etY!uAJI1iw+jZ~GNRSM$}i=72_+yR?StecpYe(SE-*xIrRZO()N2bGp846-8g z^&gd8lsWpm;vhNOjM2TY8#Xo2CnkslvyqN*yn^{Ir+{q`%l0)EXWy4!+lKMmfAR;G z7#qJ%j1PWb!2!a$YE1SZ0(P)3#LB9KbAhqxvru#Z*Y=@>1Td+yh%8 zCMl6^!Bjl_P+(5rig)iqF@At{$Cl$5ze}DqZQCESp)Ab0)82(}!b?3^a@?>wG1nD=6 zX-Y2oDm$p`qQHCa(!nQl(~HZmjMJ&9x+!D*jxy16xFY0EfqBMutpAp&lHNy~dPALq zJ5M6^_epnf`%dZ|<2cmT>>~1v{b6yAvW_){rH{5XyBt_vfMqQ!V#>%1u-LpBtH0XJ ze!Gv~x&3OpVSQq*Q$1;Urk>YEFNvZ3nI&x)TSdnAKPWi#a#bjeWtqvUlc};F98mh` z3jeeXFCzx{OD&uZ#Nlk_E*So)Tz{!8JkrH*fzRtD8XAkx=p`9?ls82~UlxalnHyl< zQJo{o@pzcFcr}*al%~QI!5qS092Ba7;hfY(S(>6kV>CCOI|l!%=+sSF`4MI1wwbLm zV>3D?j3#U_I1;485c`3eM!5GKVke`Z##nDAshIB6+~Nfbe9^@zOXfz;jKB4cVbF>5 z%)owfU}<3%bXj6~id>s4bXbP$iyU^Cq82|qSLD28F7)a%<6$N*cBM4o1LGT@MV>xG z!aA3^`z40IOjLGY?-ZHsR~fG|cE63gUnV&d2?!#L9RvcGQx`0K^yFE?1EUD7&wEh9 z5T1ETw5Zz?EH#XHa>3dMtMfUIs`X!OZ|P$F!*pa6@%4)|rGM1>se7MIvz1x63#LN;>P)yi3*hb03)UPkSY9IKO2=;` zlnL(`7f-xC%5yz+j>Y96-Nf+S6_LN`j|wg)`HI0Vt7 zx%)LN;I9}iEN>0xUh6_dVQh)&7_&lcO9vWZ?Qkkx$NyrzudXsRRzFz3SM6K(ddJ3* zt9^3qvP>+ts7p@0(l}M(XUSP6dr;w{h6l7_kx}S?#!nzVcWr+fD)-7r45vo12zRJ9 znJDIw!W9VR!`2$bo~4XY9Foe9D2egBa6BEGCA;Z{!Dom1tP{6YQWa-ES9OD4hgcSU zfcFB&s0+!b)DuEOW-dIiofRAQ!XsXe7Wq!)4;7}~1LL5K9>{h2E9TO|E^N-c-LGox z!xK+=&9g6i$!D3})eyd5418>Q(yZWKH5#{9)oxgDjCHS3J%L@r3BM(u7^_3W1pkTy zQ!`=b{By(bq{>GbEtg`sUU*8%>*McKd}7UCVqh8VqaBCbv*`O zFt$}+#Z`$-AlO`zRR`hTmzR-g=hxWl1qHZFrlfi}H^00W$r#c>4Yig(>7DQeOTT6M zL+@3~Q;$D^#L6%BmMR~iy2xB-nAv`(#(c^h7E%1V*rXl~WM?-xya95$x<{+JQ}A z!sVG9CiEZX?Lt|h4R+V_6T;X+%5#Q z`I7@<|L@)bWLC33EKJN(sfj18OqxWa4QDS1Yv?GtnI9IFa zF?DQ%zZA_S+kjiS4aUVpa}O6gwaQ)aqL>Q&&=s9>HM(NSMXZ_qYZSKAFs6LXzv;Nzy4 zdRVB&%GAcnm!<{|yX?C?$cdrlX?HPLIEGXnShe7=j$2T%E2jC0A7K-=+{#Vy5YZ_| zxuR6~KeN<$FE7qQ8ZAu9L#%Q~JVcFF09~!I73LxavuszR0V6`udXH(kB(b@!`J<-( zySVDoLQPTOWKG%IJ$LVAys5^|7g)&>Tix0Fnp)y;S1z+JK8(`;A`HYVq%gO)$^c+lJR)eMh>w_ucfW>9^+4_PsrkCCqY>j zwB!}KlvuIXW2eQKs1{vZTC`^98|3g=mliDJ`=b_(T*NXr$@3|9$MRB!n|`{;G9~4% zs(O_Jq6X7XYoDU)lJ|Vq)qizeFq{JOF8aHQ-AZilPl?9wP*??8uNJ0&$|WEjdU3c| z)!;O~<<8?Ao_=ZydmEZCxd~Lhbd_HhFFSH`r7`LmuMoqI3ZhV%s*~-G9(KXd;uf%j zJ1|uw+lg0e(=7hP-cO z?B0f9#;M|+H*SFOq?yB77yYr}b_^GnG!AHL0D%YMFTDxGa=pZ}x^De8bA8 z)nI5t-`=d7jS+$tW=(u(Ypd1b{W(`@u2Ny)aV%QUxGrjj$;d*g^gIG1wkISb@r7W(~cs?jq9$1*7Ue`|!jPGC`c{3vMKCUs^a&`35Xx5(fQ!|N` ziJ3}Sv9Fr{z?uWBc`srbXmN?wQykRT1SjfiWh?-YVJhL;UzjOc zT2_qkPK5`>vroRIKAb4U!noPj(Vf*PqTA>Ju=x~gQL$ogX^G%#P*mQ^_DwX@%UxNY zBF|8xwBbwzDy#{oC)HMs!o9$5TOeGDBYHsPS)#D^Ogr^D1zr066qi`@UkZ$? z?(t6Hozx%nXa;O}T}!&_DyHkpp316=()_^*wNF{u(39#ew>Fg&Czqw`Qv3S;D!XA^ zB|aZa7*Jbf0~C+zD~%k@vL01uJ<{*4EdMCGQSA5CWAR!H;JyCUDLS^iO`Y?#+CCU& zdF5Wx>JrgSCa5b5yi|yS0`q5Fu-AcT!-k~zk@Z=3-i|x4I5DnJr0;EGBmq0KEAuA@ zmZylt@h1lc4Gd&zmkFe{Iss+?xfI$y+TtDSOAqE!{Yv`;*v2>PT^QXKQ&=Px0wQ{$Hh;nS+wl=nwx#<$1W3zZfy23 z??_23`uo`Grd{Cy6&D4hs-nUZs}3MK>5Xc?l!ejQYu{&K2FQnGG!KJU{SJ)JhWA33 zJY{cYZWe|b2=qcw0S9`X0QDf+?5Qld7E?ie$}I2(#czQOFSpkn z`&~%rPs^eYiX!?P6pzt!lvftTxDY{N)zwT`V(k6hwHbV1-9rK~v6`kT2Yd7`rgo%5 zz}EU4cA47oKdA7lOkX(d-11IkH!96KnM$?2fYYKqW_s=v8r70ca{sIrX%_qUarlNU z*HXH2QuBfJDRPHewMJ# zS8|a#uD;=TAgTCtJYE+G2@(@ucUqNcP7%JN3E5x* z5>qlgu^OimlCv;2U!c7+o#W3R)m=fLk8BXe(e%(FhwNt@*fhoGhiww!Y0r)29~737 zG@o>TM%ovasvDLZbCu@^m6%W7)ucOy&W{PHF;x*)q1$)Kb?m?_%vn9x_J35HA{yGM z_`tfaz(cTmb?3e}J>2&)-wCs5XzaTM2vg^QO_3KZVzng8EWs@kW9uaKLSveM<>U}i z%hSWnuVF!NC=&9(Q-0BF57%zo zSJ3fOW3L0jQmTs7+v%|{uKE37mB%}IGVSPUto#GRXHp3C5!(Aa7EZ`3o$Y0Ho?4$w zaWO~+Dmx&a_BKEH&T7K^h^%JftU6heTYl{b_EXQZ-eg&n`LSQqLnNdbMwCk~rbXI{ z^zf{=OobwDL}FS)htT@Eyfj5N{OBTa>PMBY1(i7(g4-1?QwmQ$6oq9c(LtHAq+L{ZLp!3unpnEH#90*qA&xm-9a#QGK2{P4rFT zZcSpIN@fNIAmS_~B!jg0Pi5i;`KA57-l=y|u2QXaX$-8NA|(}nij)pYiBaGo zN@3OUpnPTz$Orw_riKDb%CoR0LX9Qv+XxUAvCR@Mg)%GK=LZMXJ}U9b`COHkdP+g@I(w0ERlWsfeh@0>q5Fp7eIMwheB|GjP^ zibrCk0n<~;wF7Zdf`TUyi(>8u(!m;r3h}B7$~2B!{S{rItnmmk5gAS664GJHM{wX6YE}1V1{yy z@m!NrFK2#@y&pZ{+Pd!&dF!h7;8Cv?hc8`pBSs1c_1optJKzr3uy8N4eDt(CR(}h9 zdpwVq69YI?#J!QY*qkhuGndAg6>!(~cmj4XH~{f7F5v^?x~n^U!_WpytvEi1C>*wv zowLKT%6psQx>{lwUgmeC#tW9GSKF9~lCnrT=9$lHQEM|gx~kck~WhFkl|frTkDKY3*(ee<%rnNd<}OD=L7oSLb5Ylg=i z*-e1QTjCKgZxg0zK0dK&)|{}!P#q*&@<9R$Eu!CAFqy|O z8Otoa+zVNXygNqsV=k4MjYTA5OK*KYg~qA*z`{pQxntCjW^p{X3R^egTGpZfJ=b=_ z(ui?;LQi+BeDtJQ&!cYjw{ABKc1Sy#ojT7)=u>1VyhTX=gb)dl+x{`}RN0NVAI8M= zT$%8rs4+hBHrR3+bVU~?QED9h)%H)b&4N(on_jU;q}7cgbENBPF>9h?Cej?$8p*~1 zuG90yEc@D!*iDuFV5c~m;BHO78eMrmnpLYFaqM8Y0c%c0wQd{T2vDvxH{-+5H>ewe%@T#L)+Gmxso)1cA0o$yhmvV zAMgCdL48EI`Y#R&V;eKuaSqeUU=_j3#IB%;OOA;b8@X#36~91vLX9KMD@F+1lWWXR z8|M!Ws7?{I@COIgKw%fcq`m5J38$dM5^q+DtHsIgWbq<1<_{`9FgDd#R>XX#W^Ksc zFtz}87+uE#O1Oi=+a%2G*p-EycXX(V_YcIaz7#Cj2gZp!3qP?sMZk)3L4X%MC3F(K z=wi(=TVVw%QXVAUnE-{Uu`A;nZ#Pg0&EVAjj%7Q&yB#29N zpf$|m)2h##wh{Y&>m6hBw^>{kxf_!?tl9_MW(5u`Pi_9B5}OVC2Mn7q&*rzcX??kW zSlMjf()u0izhzoA_o}4{Oq~*Ye=!+LIMGW3qGVrrR}@6JcR;I;IOm5K72{5TeChUl zP!%x3i+2g>^4~@4La~T(|3U43&PpATf>t|u*4(y4x!iOIl;V$WF|b5 zD!?8vc`6GqiP@6Py-}u&3S>P%iDBaE!tE3|kQB`*tILqzf5s!_O|FImsZS7Py%m@O zth#W-st!b`F&tP3P*-&dOylotw9EMc99>ws(QZ*N|ZM4aqo<>c%YV((BlSK$b+1Sl8n} zb2RoqNlzjzA0H;N(KdRm@th4lVPyiC^{_a(#KLaC4~%RwhzR}#Y&k{BB30IgwE?bQW^9_T{RtuKemS+}`fr)W<79KYAAQy*I zbx@{~Hm#W&n4}a=wx1>=Hq(X$awb7#yuhjX@s%xM>AD}pugu@pa;iL(< znn;!*X6Z`ZTFOPD4KiCr73)0k9gkVz@+7O|nMvuv*IA>LrO@tGh0$IA!PezBvrtk8^-CLP<#@Y=!*a(2rcc{%^a@hlqg(e37*!F*h(| zFR~LuZp;r%i?5OsLvAb#5mv?VlMREr3)AxPxY)>pGkyJ_5-B+r0}47f^amC=*#Hc8 z7dgT0{HP(g0g*l?aK*tTsOCq^6Fw#~-IKflZO{=I$fX03VF?D_7` z>*{B!WJZLiyGGB-cw`7^m{i5q z79&11rzPVQDrwYYD?}p8GRX3BPG8W&a*}5#6ft6?%z@tE;=g%ztx`zDE<|hMZkM?w zKs|$fnr;35eEy@657WV4+y@`WKB}xRotU`{)(-~y{Uc1b;Q&D9cI@0eX82YK z3rqk?hgIZ{JK2nsYZafA&XjR6)(4h~rDlpZ{6+P-U(dZ-l{RZjNxq5<9*<%gCzx%^ z>?0gTiN(*M7?&fBS4>tLRIrGrsIk94<@+hEFO<*Zh6i?s6)|-pz3T>ZFz%yf?uOJ%720sPzm+y z>5cVDyd&rmsATep0ei7D$)a5y7ea$J&K?n}(40w#wVA}Cbld8{C zgv4}W9kg&wa0xF`FA*Ikeptdf3y;okq6MU5@+g!k@-m*L7f9p(_N^Uz6n8ao(oRem z18hQ-_y@AT(28Gx$~%V&-ca_wgl8wias7yJf>@5g-ZH`f zPo0ukdQ`2{y?W;N2&Z#qGn&DSkP{p4<9$sgc-vA^k_vp$ySh%}_hRwae-bHj38%{I zfExv@QFP_m7zj5}HwXxWfXpLE@0;k)eQcaO~Tx1-CiDD%!s799eB~sKAN_aIE zzWJ0!m;tSP4*e_U44Uu85E5Eo^~tpAdm4T6nZQMD8S$j1DhkM}hYr-DKa2|Bc&$T3 z4I8Cw#8*As3@kPIk8w2~hl^M9e0Z;dhrX*1o27r#sD^YSM^sg7J00cHbaeMNStQP{ ziqZlb>-sk-G|PG=bxck?r{n4n*)_~TG_ol$q3HLkr<@CHd6cXu zp)Q=WFJ~7337i%F?h^+D733@iri;9OQ-{eT)>KcI7-Q-C7pmXyibcuS->ykTD4k+g zTUuzf_NKK4Mh87!e+7nYUhs7YK$>Y(lsc7`M;o`o0grZM#zd!>S+eWyB409N3x9G{ zrGJOCAVtX!3TBV$#uni|3`tQG+Vn%oGP{`lIfayXPSe!V`0NpVR-~pwN`jMRF_IM& z{fA1i@Q-9uGO^51ppBiJQP9g>O2dqq-)WJi1P#tj4o_B?H2%(X`EvKV6d8#z>2!ai z+;j2Mf<-C&@@32n`4&q=6<@< zX!l5FUDS!!;wLagY=0lY$$#R4#f!2?DtV+v6}y1Vrw#~`Lvt+ONDH}HTBL-m8@U%U zO|E2kv9L~@tE+Uu(>N!V0q)7%x9AAiChV(du8O35>;Ex=BdX%}4~jc+%;OyVhOvx{ zWlvbQNVbT*`}g-2crXGej#Wuro^`OE;dmI%6of0>EfZ@HH)1y?Ej76lcFLv6niJ@! z4sa35sbu?tdo)eIHvimD`l#c~FtLinq!Xtdr;8vnCE!H)$xnQ4k978w&(nj6yq}zl z)1^k!=eXQl&dwhYx$M=$Rm#KUErs_d=)odW(5PJ#iQkaV32+FH&D5dw%YUQM5x&5J zsrpYkIUVvnq;AMNf-F+zb(E>6cqbi^c=QRKDsx+XC-13F`k&CTvxH1=%fEgAwHmAe ztc!*xH66Kh`_P9eac49Q`@rdVD{tmnC7(ljUtFVYUd6nWFn=-3~% zO>F&OuRm*$&W8~+ONJTL<6F3j98ROwVT5Xw`rU%wd^lZ7g(ps+Uf73C)@g_27gqh5 z^1i_dhO2Ljh39&B{Lj=tRuvYfQjqfMMSOB(VuiXDGCF>kb@pgGds6f!71j3!LphBO zf+^7^{qr=|nO0b{hJ1O)-hH_hK%!r((C;w_Zd3YE6~>rT(MzI5eU6IKY4HVcCvzur zh;B5X92o~-&5&;3kJwjadxnFaduJUwElY=Q9-c_;+L-QgPHli%tS~_y6MGxb9@AU! z%m7IYm2;7yG~i%qp$V!hl5J*nOZQoOcHAY;g`^yjuQb{;|>a?Iig z524ISNw5>-u~mF^vsXjpBcmFnm8%aI2LVEg$^&(7`JD}hD{l?L6b+S2FCfS+b@9Pc zQ#iy&v&_oL6wdXgc4?{W1!T5Ux+tD3z@RLTp$=7h7gK2_fl)o!TQ^g!CXx3?vpY~y zn6Ch}z>o_+FnNXs7-_|4&}!_C`xSO9&i^vDJu?bb3BB(el97ImGSpvacR5>pjq7({ znm{cQ|86-ljkdoN~Bs*IHJ+PUO1JWWmrwFvu1;^k4IPPn4vJ>)%-S9xU zMF-LXj`ou*oM6RBem@TyjPPkJ6aLB*CTBa%v{j}*+nQcr2?OKJQW#`JXTkmX?tP&D z#5NHwPc~l7U*iR)Mj3W{P0vPpd}bReb^eu{;b^BtJf+ofgj-0aWc0+#B|u~p;O21T z>?sd%1AGe85F$9-Q!_#@GlNe_Jl0K&eSR3#PA0veCXV2T7BUq6Lgnl#)25M|`80|r4_Y4D6QDyc`EcoOhg+;G6KK~t{48a>{d z`MUhXn6DF%VxYUdH5!`NRd`jl7<2rHz@v&EoOP_Gvfo4=XAkA16#AkF}+K zcr|y582&xezOEs_l{Z4$f_|FC7i1(_^mXHgqu`JAcGAX-X@l3s;pQ_4Sg__0IIZEi zX;g1*d+I#Jl|E|Ie6=vw=0YBuK`w&lYf&u#l3ci6Ad;A)2rqwS??8<0OdS$M)v2uF!g@_!wv7g+cgs5;;`SR$pimYwW0 zJh)QE)wJJGV*<;^p(mcgrM$CeB&g2=R3chge8<(yZ#$KP2Y~_!Y4A`i5`uy1Yx$$! zG{l-FzvxLD1V2tV$l~$H>0GSh088Z*pmMd_IZYw)d_>In(jK(Z*V{ps;_Vhd1lG>!I`w36ydj4PM>@tpWlhlqTf=zgjiYV)4DrXM*-V@ZNye|&Y9W3m| zk+c$>H7qK?zOqZX(Sp%H1i0o=wT%Wg;!xQ#e2g->&q75N{U}rMPbz$bwMGd~2m#o9#^lvp@bm26m+43x;WCv2gW9?B=!ZzIu!AN~uAzI(m3AZS3I8x^G>631oSseUuR+Ap zXyk#nPXjRs*4@Vv=2@D4^msfEN_w-8@7{@zWT1*}1ll%;`?2bY_I)VwWFk|D6RI)s=jE)mnB=vO19#mXGn9|2unZrLk#@;IL0(EuN?Y$6Kl}8z^kKKP z?a5K_@?%xl;vXY2U~BVq^oXl4xq0opkyOc5O%bw<2*eKNynfL}Fcmn#^PQtHf+-?U zpd|#I6_T}!rR|9VaVI6D%svkOWH1|h6kd${p7e!VY?HrZR@-dznL(aE(u|+7!W6Xn z^A>z?v$W1VN3Wv{P1~_ccsQ#NXA1i#Vnz^z9$Kry(bcc=!v*2GV0BEFlUm3*UkfJ~ ze!fCN(jc1rnN+RYLo3<%qvse_v~x!m0_}^*U)kb+Psg|V(D{9_;p(O?8&Ru2oeabg z1n%E67UJ1vG$FREkF`Qvi2$QRgj11iG(nHl7LzjMC{!c5YCn#k)5@A2QH?0 zjQwJputd60d+)aHBA$Yn<)8F>@Sz5%T)xz%p^PSkQ3o}5fN2IE?_@}r@5_=^V8 zHCFl#uPb7P!b8!5Su%&usd7WQl2aT*(%myFt^Ov{RI4`&Ynq&BVhTI~NG#uc-RdW(#*TG^1%# zz~dA$<$#zbw{9g=+D1#hjv}U?=O40$I#`_sxt3#fw7Wv@qOih1x$LY(TH-2`lMoqD z+IBO-l)kc>{(SFA#jvBvh-4(iOs!R?a_*!>54 z2Q!WfL)p0GxIQ#|Hu^8Im|=Z8TSo zc>FL-_oeqXO!u5eLxt;JF(`lGFGeT^E+x#dKfMTIYkC_iT770GFG* zMUg~Ri||B*4wKVG{Iv&~7!*?}3JdN@eK%;>d23FGyPdcwvr%}#nL^-~TcROH;4$8} zLlsvv0ifj{7MO-4BV{(j=TWFb5qVn);)Z|7QIWIWlqwz0Deo3AxlxJKg%!sq`V44v z$?P#49Z!fhm0qV;+j~!!K_ZHh-LN^NZYOxqkc0N%^8T4XxlBrXZOqMsAez3Fh?g)Q zuNr^;CPnr=&H=t`C<(e2U#(;Vxyt1w5h1Y@ryMVh)WH@QL?e*1@3fvqcCf9L*o6sQ zOq~k9AO%=_l}1#TkWs#w-$pl#*_PgZACw4^H%HagVvTPuN0qT+*lRVM@0oTYw9L-} z_h4f_V+@VDW0{7;fF|mp^=i=woFU_SmxRl!Mt>2|c^AAJ=PirNqN!6u*Kpqbqcl+Q zt-yKNzXH;)UiT49)+w!esoo(`3Y#JvaMn~41dpD4UZ}{$TG<;u&zaS#f#~k|2XMz+ zF#Yxim-HhmQ7gzQUYy8_43p|lUSf}pUmbUR&j@!SnfFvUaCdvfNS!Y9oTH+GA9p@x zBEhyf?OwsPL(I$2gdDW>Z4(LG!;n_jJaQ-6vOG~u3-4w&MoFc9>83CKK9$c2BN3ge za(u%T7*qu7J*{r#+=>m<%N#MMY@DMPL1m$kqiX?5C*7f?({b;89Se(N^{yjio|@4lJ%V zJ0`#;>`YJkT5|n}S_oGW(;6_ClBkE^9om31nRvE5N;}074CNcDY~7lRSj_x9wAuA< zcFV`DP_zwWtGC*i@VEr^CBr`<+%)pB#{f7-bPDN>P>B3GT1SUq_3PN-$Nu-Wzn zfR`j%i(1gj+v3TZ4U_%^O1BjNGE>9M6Vdym84$WPQK?+Y|H|joJ*Y_ZX@Gq2U5wbG z?UMi`4YHkpEV45GN_1Yo*X9k$Z3T3xwLz_PHM3-=YQ-2 zqfF+j%Lc(oHteUAokpnoA>7WyD@_S_c#hTMS5G4m+BBKY^ z8L%4bt`hM6UQhQUK1zS!I;BH`=!ZG?e%6o5D70ld(uo{x)D$xfH13O2{vE*QXd=H*XWa*<- zE5!|_4k>k)3utm3aY}XwG1ZbPJu;ywg-dpEo4STJ_N09IqlGzlc=%nnfbSG4kSs{v`N>Il^Q7%tdD93c+&tkCB+{qvPYZPwz zaC8j6JBf4RY+KcBjgOsv@{-D&2ElaJIcarmHCLVm;}W^*PEjcNVzHzOX# zVi@Wmcg?w+Y)@7SmUu%cmdRi-hFuGuy*@0p zU4K|K^)xkW6c|~A4O+tF#L9&_FEmuvh^4NuvB5C!u4f}!af^?K(S-g~_$~L-_I{_J z1^Eq{J8+t=W3^ZdRyT4W85YS@_~MeHa3niw1%?Kv7}s5qC@n;c*dIyLy=DBe#{>L+ zqY;flvEuwL)hVnf$Kb}n+Ekm|Q2{Gm(m&7$8A2ZTFXq{jB}U&yHEt!9{k(`45d}6F z>M+Ocsp(xHkK+|1tdwGAJ_;MKSjz~~E`}3<5R$j*&%fnD)DS~T{u;PTow?M9j6^Vq z;SiEnR0#}vt+Z?mr)j+dc)V7(S0gadyZ2S`tW?P(bKK5R`eumsV08L!#tIId?Nynr z`u&#ADr52q{oygoAFxZv#YF}oop`in?;!Eqt2#1p4%ogM?2$Nbx#+2gX$n(-!^TeY z)?Bp~?hWoj#(kxX1@39c#eSId8Pp)~=g_;jwUIB{=1!|4eD@ehLWRnxAofk5pQ7#_ z6KfZL{zicWNmIC;Qcs3Ffz$)Snyk_(T3e>wOj-AvYBFv2{=MnuiXpJjB22=mld$Hmv1Ewc5< z9Zi>?P)M18PHe3yhn(Qu=Ta?SL3bBg7Ei(5bc-2uEJ`J8!*1t@Fac$-Ds(-2-1CBFbs^2VMFJ$N`n9t+z25I5H1* zi^YvXW2xW_lXoMub27(AGZeEU!?jClxq|qtP~bXnV{@NtXtL0VxT|K}&g{JN%}K@J zY;YZU#Z8!EZ1-%0rn|9&opwA|w!>w?pt$btqH1Sxu<7|^1B1^W*7Od|iq-(?)#zVU zPJkCeT04<2OeW9Wyu_iQ=1m|~>WUvmQ5u|DWo0wDb{0{t;139$2v_X1CB(#>VvZt%E zkYW;_qPGWaGwhhfpry)_?!ruWb_H;OlIqSgi>@I|t57A?YMuJgLWNJo;>iuY`!bE) ztS%|y^a_;&@oay{XB93P$1tl*?nzn(yITEVC?Etf`GajlFk z!-)8Ta#O;#h@U-Ni-=cTAVY1n`h!q#{-7$zI_Oshb4)|)Su5~ad`tad_&3t@-3U;PaS(j6?^q1bNS^1Ou5g|8~(O0TqrgnB6RQ5*`5v6LByr=&1v`N#{* z-e-9(SWPT^QXGAU2t}b`5WWVSqeVK{b7x7|oS-w}nm!3Xhv5lAD;w88t{lehsRa>l zVrq;{ii?D$6mdv7^5WUZUF!%cI|`C4fWPbtRT>IX84^kQx74QPVN#D=NvLCJe>%2*w+b zBp&n@Xzv@_E_XJD86jNusXgoj388{bxBr5q$|@x1uH~@?AMr{ zXxfJsqo*uobi6)6(GN}wiOiJ%bViLS z9QGj6n@4MNt>D+@SZy&pVF5egg@N_XJ%3`9JD-JkE+@m!zgiTV3oaUb0516BY73bj zG6{msNtG8^?+O?juZV+0NEbT-mA%9PYG+V>5(?5UjuJzoN+aq6N&_1wkhFH_+-|)2 zsvTfT?s*}&WzGyBW{l(oakA*yT$?nvDipB4Bk6|jU}@PBJU*l5hrC;+XVO6>YQ22mkvchE@QucN=(W?56Ru9ra94zVIC5zjfi8k zMNs&(iFylzcs0Sv__lO9JdX!c1Xr|)G^%HUkfj3gkE#Kl#xGCpmwh4wmn*o-v2dog zK`wUsh$z{d-0=n#Ji?B=E#_RIq1~HNU(qMNy3l}S()U&!=KX<17`b{Y55H&Hxa4p1 zyg>wChB07FRjVCytFVdJ;U#w6&QOnZ$7qGQ5Dl)a6oy7lkHy);j49)r`F?>TAowG- z%>B`FB}50E7jj?8E*_C;chV~R?K%*l0+*P~qS?alwo={sFp6PEH4dwzP!X+^K0WlcHD++9RNMZ8v|ak#}rbiujq2!nQeM z12;D}LpKjAEMyq3OYuQk`YOrU096pY#+_708W}MK#~*QRUpB&_{v_fdF#7ZogW~2U zyvjphQ3QeLSgx3v2AjMlYXA|G>T9_k-RBa;UpDxa(T_0Dln$ALBvM7u9y#=!Cv8JJ zB8Xm#jPoRFs~lVkwa-7n9&FTTY{zNc$blks5b}UfK4B&l!$cTWb%4k(@pzc{>_;X8 zu}Jjms5)aE;oRM~HIXKP>8I~5ZO((>G|-k~j-w+lgAYeN?QB`)4|Z5QX4V1}BZY>P zqn25$kCY(p2Of!N2M)fNqQ9QK&7>#`kwc>O{&ao3N&D({bm^Uqq>038{GGxB`yQ6V zzctG%5;)eHM41-6X-9a?th*B^NKwxlhxhZYk{pJSy#6?syrH{)-I0UAp=<~ZWd|~X zW2G#3b-WrovdV4zZa?INg?+J@!a%Att)=QPLf$gvy=(F4W@@0F(Dnb^l63Bw1M#9808Fwp5UWp7|YM;BJM8t?=iLklRsSQmx z#AbZzjfefLtj>#UICRm-rJYHLWiU)++_N-#Gn0|Q3Z|q-M>XfC)seMH-+NsJr#t0eQ{q~63I3vXg)YM{-QU#cgAvy`j1j416Tv^Szxc%?= z)$tmYmwgt(l>3*7ohGuIpiX}4O8PbzajoG}PS^b&hUOK6O;Oes=@XXB@hTzHj?PGV zK~4OQZPZ8-FxpLmjWc9j7)l<_9A^ptU|`sUfTor*6wQSmp?a197+MDdYk*Sy=AgtW zYLEF`GZKxMR&?*EPibiCzYFJ-1Es-khT=fGhBF2&RbwMozOrECEf{(!dg(WzkS?BUfHo?Y6hGU(gDS`(Pavd>hxNL6#8{^NymM)# z)ryDNougB`-^1EXSsGxwg?u8kUu!{@YBa%AJ7bLcZ(;|9Up*Q97u+HQfb_+dG0d^w zzXkzr$MBq|NMj#af1-2+5l1{Jp-HmIPIa-6&7Qj;-=uYl>)Koen`{iREE!sP{>3HADuthxzUW6S4sBE17%K`jIW7N} zKgn+M993l{6HHCWoyg0cpcy}vadO0pphJ3}V00`aE3{BiJr)RA>ncPUxjll9HvB_?^AMri`)hn)d*cw#GCl7;Cf!YYM4aIIi$ZYx z;QG$ya1@yzp$0w6!CCU3zQ?K9Ac<|#cROws2TNrSu}Yp1Jezv05_WKin0$Te#BUdK zgG47UCe)J7vpKS=%u+ejNi)()!3(4;Eki!8)koT)*Z8!eK|mioTExtHQK%p9Y5l)! zcjXO7V~%CX!6&2KiXbkcxcl;0>o(%F=H5eD6f6DBE+E?=-e*B40s8>+EEdE*8;<~I zW0S2NUd5PPIh>m6i2V>y<9<}WtoUVBwRU0LbTD4vS4<)+lnQosZ~bOgC`h!Fze;P2 z>JR}g*TUDc;)i+F6x;Pdasn(1QxzkVx;61{Nh(DtffP*){c@wExkTg@VRkLNb-2Ox zrvZr_OW`x-<#_8xT*Y0|LDmBTD>Kv{7V3d(a78&p0o@}=C~nOKn^Q&()2Wi!FRy-_ z>r7|Kj2S7OjT#j6bEJ0Z+2m6RM%@)x`nBwgC^H#Rl@)fAc;b>SZ9RekY$1MFN7&ya z?9P!qo+;Zf-#G-&cz9B{8!^AYii~4oHTD;#iAV(@i@L7@B}RfS#o#jd9cS`F)KpoY z2pGRJ^CWIgNYU zO}beTXQ*S$i?&zX)I}DSZ(U(TC^)b;Ve&#A8$IbSGL!c7Cd zJIpJmu{gBZNN|POBCfdy-?&hqWOSvVXtKdJ7Ai-``wKK!lLN)3jF*#p81s++)z&0e zGu16vUMDCFq-xsGd#=~S*%L=W$;mWJNj z^9}VCyPJS@^kH6Ht?M%q>Jjg|GB+zt>MRy{;;xkRzVv2nun68tSm;(oA?1!0*=-V! z-7U%~AR`NvtRo4V%0y9kt7|LBR0q#Rl@>h%EnvaWj(!Mm)^`e4*GB zTZ%agoQPWq^}WX4+JUklCV-4<^^(>mc5b_dm-pzr^hP4=mU_Jt8|;y*5lrEW9r`Z; z#3VwiyaY~pLPns3cfn~$OAyOP`oea(gRN{jXZFNZB>*wwMWO0gap0$p8!Kvekz}u` zTpqbOOa~2;CLry2+~mDv^oNiG@Qy0`9j&4gsM0m~Mb*O3TZR`V!}cXy;+r=8rqNwf zSul|3GzfkX-^(-oG0l@T(J9ty_0Qf$P(x;LD_TTGh=U#0et9m##EPX1CkQ@0fa_jl zBoB5b7%NG;e~u{GYhOL_b`s6%S;TqgcF4uh6eX3C5Qzg>qqP}-8q%99xdgWwOk~mQ zs}G?ZeyFgvHXbwh!F3aXAHLD(w3edb-Dqf)YVx{saexdIUk};d5}tBfw()0y+&x{h z{_O>pQVXsnnG_>RB*&Qgym~-}e9&vgtvkVP?H;6rto4-N+aUf7twp-0nywueC0TBz z-JQdv%Zk`6~sxE@IrryMwfXdv-REu32m3?NK)zgLV!i57 zM8&XF=HjJsu1CKUPc`tD-xFD3O2V=z{d zR1Rx3G1VgI!qj#1gQ5-sRq;K&_RsQ3stRXD^l)r@zaI1-k*d>42%(=Tr*r)AO)*)V zUY6;48a=&|>B6V7_XE+bs_dLMgQFjoX;4p>0 z_;ws#QLAogZ)0m;Ylcr%Wpw6!Nh)GgsfB?b{2a>XA8eaeyNajv^U`;_7Qimvo*!@A zpj@ZE9P$jCt6{!rZhHLbBj^&J>@EFbL5f(?UPU*nv~xT9vq$zi+aKZ1lV`=6Y9N6S z{l_nMw@z3*eI%P3Hf8TOlb&g5E&7h`092Ku8SRv*_5|?OZZv3RoU0x)cZ2J7%lnxM zr@;)I8_ZR141tUb1LzPEO z@Y&(RLsYZ;!@kuf%P8eHBO){K-}UpjlkC?paJy7{wjHp{QZ{>b1;41c6l5qXj1i)E zIuQUpR@YJZoV?F3oWstc&KeX{H85xOV)|V(Hsi{)wMl&{_u0dXnz-(4l|b+3MkivX zXyFWR27xb3z`P>H98wt1;EEB`y*Y3z=VHA#0r)pC9U>e725l3bx(D&); zI&{nTcBd4{_xV$=TNS|+rdz5*XQBX*5?__bL`gpbFP5T=MvJE_iZlW=ic7b z=lgZ0z3*r2=lfddze}I@+ut>`ug{8~A3OS=JHAiXq5nP()L-|8^nKoT`UriWpGygS zpZ4B;AOE~P3w~aI2rj|+cfH@e5B>Z67!v%vd)NPa`}w9Nd(e;~c4l_=vXF9W?<#-M z(q1B<_YzIl#(4VYt@7e&YIQ{az@yjRng5y-l;}gsn@foEck=!Dt@X;~+-s%m>g@I6 z))=Dcwi1T$^O<;u7U!iGWoHTS;tT&n-!$r0pNrz{h4$qw?<%?G7)~-+-&b6p!|(}0 z^fT6R=gfHn3lYBSBjT@($y0#4^wZmP_uxEZ{oQlD|7I~G^ZoP8&e?kD)q)v(T6S!C z>%_$8>rj_(oNuJ&XRz!)6i;M>>okv?xjhZK)K-)ag!?^<$wpA{yzpH7Bi zx9-c=6hH6hert5~3%;Ga>I=M~v>HJ3r-yP4(k&qI0Lj<3m>O*~e||jsD#=2ALk9x` z`wrHx^Fu2>ye=vf0t^ft3k*!^>noXxI8aSa6(}aH!f5N_>|$u6Z*1@4U}I@#&fsMF z%f-g|7o(Uu3p0m4kc~rMotsr(OkJMA*w*xy1*5Txlar~PGXsl>t;vAqOiUpWx_55v z_C!m$u1=MfIpKq3SfR6Z^Rd`D*+#9tka+g2G;G3sPq!Lk=v?6AER|qGfzig)F%+?L z1!GjsY77?tyGeH08nn1L=_*iB)~9%&XoZ6n&mAQ6%>4|+2EGwLKf$AVV*|$Hr zu45N(GmMy<%*zB1#-H*Ly+ z)C%5%0T_&XeTwG_N@a$v4ur%}S(j7TcyW!Xo66%WY&3I<`gt_;SmNr?IH008{ra0` ztwhAuR6Ui3@pvbxB+b!a=pLTUsOvQD4mb9Ju`~C2m5MMnMc;y}$}W5FC2bIVH8wv* z+RNM;Oi_!!2Nw~)*YMj90uj`xKhFbXWP<0lghBf-A20Z#H?oKy5GBGtF5iDp2>(F! z4bZVcNmj8+cTcIUGG<{qYJq7(#C)e-k-zayJTEcy8HuqWGM(NKd7Hxzdecqp*YBny z6a1WjC+56`h7O8bScLwF4E*@}agP~P)e`30h7mgMTJGBhMLc$bPyzM5Tp!f)$Zf)% z_VkMMAzRHfUYklhH6CeLb<(l6RJ@7xK@m8q)@{ds=UH|~FnWGKnID6xz73tMrCF?? zH1;dS&~)-c(P+n$PLiyyuGdZ}9BOp_LDA^qUp=0w;IheYR?Oy=4Lro0e$bP*Km~ue zDJ!4jzUeQo-EUBsL%bk}$er-ay`J5t{s|oeM?ObZzGe7-59Cmpd-#Id29934&FxwzYr+4!*{_G}QC0=Pz@WFlz$E{lHoKXjakTf^q*+_^#vkymKA)iK z2Iouzh<%bCutd+kJ%$dzoE_i-lEprELfk3*;N$64(Cc;W z-$#1w{O#L?{fAre+3EA?$>~A6PiIZi<(bFFzvss+tJ(&>&yH{D7%ShZhHnDAKHhg0 zOSdsre#YI4%w6Eh$G;;yzjZL#>~o*Nf%KP-!K`DQd_-epS22{EB#S$n1af^lJA~w? zb+_{1va#++gPpwR63evxP6!Yu>AU>V*y8LggzN2Dis13VcoAMpzTt?2k9L=OQhO9} zI;)}K(6D!Vclu{WfKO6{4&Qp$MXe!Jo|Z&juXg1hazZ?)eaGpLv^fDp>3osT!*lKM zS_|F&K7j5haJ&%LP5bt-5%PF_GSRN+-;*ypRQ9aXugSleH=lyX-b=c4lOGGa5H9Vv z&9>>>2L4j>{_a7Ye_m?u zb~zrOoy|;;1?|{{i_ZQ$YEDp#I*Lre1hcburTq1688)M839ve-IL+YVldL_6WV2@W zUK4j2fc_>kW51^oa_v)s+w7~TmomVirO@GuNI}g`QbBk2>;6D-bm+Q)Wskak!&yG zS73@bl!+{_-cu5l$m|0Q(yRr8vL92Nu-~JT2s|)v4H;W<-$ub$u4tGk{Atv++-ZDp zR>=c!JU!KS-Z{2Au0Sg+(03m@UMNV}*=B4$*)FG0WnPVVFMuCncwQzr?@tX@{3jn4 z!(IoGRiT)#55F>VbHYDtzDsn(8E#ridE3tlmvqgc!_~aZ$Dopy@%38|&D^uNV`=$r zOmjaGkB3LEsty+WFt>-`tyRI+45^iS>+WvqbQ)ZDAFESxtc@b1PX_0z z*QZyg-)nyUS;S#&cY=|v3i}ptTx(`xfg@B!`lHK3OBPR0?iAE>P>GMzN^^DuW86uP z7-PG9BuIcXDBk_f3vIOxL*#mgty&%8J=f3(Z_xeM$}R&LDgf-w<;D3*WpE0~iupVf z8Dy4c?G5tW^8wx@fqTU@KwoK$aXO?(i_FiUN6>%5u+iS305L;C4vr+*&#^299`D|m zUG`^}E{a4C<~#*r4z?sePj9&HEFb*G66^?i-d(~FcuXFtlrq21c_iNxe;=!F^I518 z#xlWZtZsh9!^PYKdn_)XVJ7*9tLch4@{G%-k?A2a$9%rjbQ>}ujgkm|#DX$m1I|8~2w$3RxG%qV|e&1y-p9}^pIfFY!SJjRc z_MMrIo&~kkZj$XRH#yt-U;S=!K06jdLVss~Yo-@SL-bu5bDn`QQF&TR^8dq@LPa(B zka%(d3|h+3p3CKW7BZ1<`^-{CnTGxDZFBFN|)4fNjC zOGWBDUd}aIaF@2wP4@9Entrstpy#=O+PSc^r^YVZnU(R`o3&qrL)0hHy{9P4DGwCtW z0k(f$e{+Bk6*T?)Tl6+H>|?j9vVi||PM>*LzE6E`EJg6m9Yx7?Z+>Jk)+;6YS|UV5qHOT6SFWOeNKx=A9t8_UIVJ z>frtx()wL7_0&EeA+M|9hb!CQFD*z!-_&AkU0t8l1MAK(2OLEqNxv>!jeBr!pIz;@ zn4{C<%W;qE2RMt1x$@Jl5)k~GwvpD2WlaW1(jaN1sw`Fk$EK&UZ+Hi`zBkqIkoQmns$ zf^#0Svr)H3Ndx z6tXWPAu2mmc!hVj3F771JUawcfO{RLO;297N5b$(Qrc>9R{x%i?9gAvzU^T!rj0lv zb=wJ)ySJhicM_L#uj;B~OvOJ^QQj1#~1=mxHvxf(R=e+nj-~&9XFlgb; zU?Dk~$b}@~UF4Ms-V3@wlbf^QL{-A4@fR4A>Gu*|IljK@@)h!C2DGpf3mIHJgI!&^{$7U6;i@IzwSz>6*}_87R(OUqiU7IIhWJSg|4H z>(o$dfi3l-w~sz03@lkh7yhm4DCP+ zV|;!0$#f$)3iJ>peWu{p8zRj18=jVbHQHkI3W?mj)~t7Lh+}3A zY=*zb-$a3>#!PTloGid;o#Ll{A$U3=hF5PF zf~y^{YxS6wJ>IT(GvQG)+>R5k0diUDgyp9qAG3R?Rf9Lv0$C$dwnY%0^e4HyId<_K;e|6LH zqcFh(j?mqf##>1WwTE3ES{(ljZqxV%5O8%8`N*NqE@86`%2qSs%R~f-UOw5{#a~+* z5DAbh-TItRxVQadltPrH&v3SQ3{9ibRV!}eCng=R-?3*>U9r@5qp5^gCu7C+DU7P5 ztK;n8*va9pEc|m64ehq{&rh*34E!oX#Qa}Wk+nCFVO&7Bl-fJS%6chWVc5(t;)Lh8 zN%CT3W|);X3$2LKIkd>W+G5M$Kdm4`SVl)(OgF7e;opbu(FzP4*a3 z;zI{xas{1pzy)Qc!5}5e<3zvrTwLWEWZ>)peP_eWrUs((I+XPrx&hmc%q!y}aWw#i z_>Y#3cCA?45VI=bANkOJ9dnJIJ80)c{VZ*C4K9Q9YZmt18Ji1*kaCmq zGR$qz3`f8^g^osbuk~aY_{#;z=2|SBW90i@oH+8)ybu*XDpAti60TOc5l*U0pl08y zPZs&!h3v&Gj2zT^3lz?TrRXYAMiY-6Xa(snT%qNV3(=;_Bj}*lNvDH~pn;906rYAs zzx|$i3K|&WEPh33*lFo2-tuR&%C?SGzV+kLp0bQCvBIc3{mtaaRrNDoC3N@+yWuSd zF#eTDtCxX#v8eZqcTqz}vFI7tC6~f{{8Rn2=J3`jD;ws~>bb+Z;Xx*5H}){m$Ydy@ zb!B?LG1uVIp7R>(oOy!vn22Fd!?gV_1{>uV8(gfR_L#M7v;I1B+e4Bmc2gAh%J~$K=x*Mc4FzNu2buv&9yp5QOZm(-!f}P1hYR(XQhACTu3}6a_?{zMoj;t} zsdL#r0ph9*edVuC3vQfgsL^(-KKhIe!ZUJ2Sam`wfUrXT03|Ql6|A0*U_nGijwjg$6uGe zY#2(=-KmBCy`2Ky6szU5@85Kn1asMpdt;-PGm1w=m45*Ru`h9Iw5ryNhxJw#;+8O=Cu-gO1mDcLb?%E z&O1>IU#+J>7&4pwW-AWuZ#Tf@n~EL`S|`ZKjk1C-1PT5Dk;s5uvhaKAvcXD6hJ>)o6$kxT#TNo5E!*m>Pz!Tfygy=fCyec9JM9%uDDq1y$SY)pW2YJfyou zPUNV}TMN=bhGb@bID$&-wtYdw(RqlM7YP^}du(h+_TMrFOp5|W!$}kOLeZmj0{*&) zF>}kpPlj*B4l!c_-8)q>0Eam&PayR8)Jq~0@!VLdLng!3E!7}Pw8)&KqEPn4n1iI12Fne&-91jh?igii3{2QY%Lf1&h zFv;?qt~3lTi?r@PR4pZ;jM=FHvSs|MeXpPedraSLHoM29j_%`FNI}OsbA$|cafflo z@ydpCMy-#+TeXrM?|}^>N704oc68D6{grZ`F0@xK4f&peGR~5?=&WEI-GuaD(rG%H z?-Ar@c!H+4sTl6vr^CaIa~9_S}@KfS-;i_WlJE7Z$>>*i_kx*ThulpO6K;6gdT*!K} zclZhQDeA&9->C(CpucM4`qDh#Nsn`#%B<_g#>S{+QWgR8o?y27&*~8$BKTXa?A;Cw zY_1DQvM6c(LsIrXPNEb?lF!rLIXER3Da+b|$Hla@q4HX-j|!e6QZjBy(k9>P+08?3 z9#q1!3G%P0i@JWrTJ84A4K>NTT21hfPI#PUbbMT1r9F~$I!&g>@Jwh0vvPG;3F>^ABfbMS&WHkPco=S3cPVyV3PrP%7@+EW zCpz{f_f)+*=P7!2_5X0~hDr{eImO9!1vU*jp=95N0%c6Sz|P)tjLIs+8L&DTnNF^& z7TInnIgny#-y9}w8#^*@nZ*Jx29j{iU!BqMVJ;qyxZOpkY z;wxR&j5J3!N=2DH`*+jW$fne-=4*KEl`i}&wgH%A>q3=x`SxwR+aK&XDQ|MNhHRCQ zmg|)mi>Jg12a5hyI#XGSao^!{&%LeNw(_%VP#0B?Sl{qSCT&B?!-XHYG!k#`N3r|e zs+iFQh_NK-4`GFBH{gt10{v0NqfH! zpx_(*kpZG|3b8Ysz|q@@%o@Z+^p4LhwvmgwCqWO!U;pvhbx~!lC_f++#S=h@f9Kv( z>oWKJqPD!lE{}&c_feTa_-Sbe75P8`o#qt#a2(Ujd{bYHDJ z+(;tP^Yp;m>*7q_&A(n@Lc$Yh3~woKeZI{F_4wD8QX-iP?9XX__^o;>c3#_Q<4P-x zid8MGdy@f9O=?XvAhPt+mY1Dx9i{h}uFa5NT30nn-p8W5e9`cy^`*X zhPPsVch}uYyFU^KAxs`#-xKS1#Ynz7sp_{eaD4RO^_IP9K-7yqMmj4^&inDbu#_5| ziP6`;^S1+-jDO6uCK>Inpw`t-`41q(cws*;rQDAq%$ekT$m@z6U8k7C^~U*G7YxTP zdq;qy?Jod*U&VIjdY?pz;n&vYWL5F=ROZ`0MsoVYHa!hYh9gCdg}y*)pmQ) ze-ZkC6}os|+0v`?^s$=N_)SuaCaiUQ2)rp9r$?$dcUf5zB~}|`)AIw7N?q3yg=x_Q zUqFn@D((zTscnzsj&bF)`CN#3*;u)wO4L*{HjQDR9$!*rL7xP|t*!~=!p%Iyar_AkhC~7Px zIu62tixa&>8&C2SirKZSY_c-&?zu6`w%8n^ zB6~Y_2lJ>mSoTKn6RnB#kY@NOsYL94<2kbi@4XV23RFY3_7Xq%ZAUD&^*PbZ?SotXn|rb zk(Em6vbEgQ%Xvu}(;u7Bm}hpGNE@=K?Utxv`VgulMO+gBhc_zX=AP4a&~#mu!Vn8n zIzfi)#Hg^Fr^Emq2YTps`ReTyI?a6bxN~=p(Z#|D>CurPK;61MGskSi5FaQZ*LpgQ zV~OCiqD0!COW`xY58qqR`C2KZh2Eo2Op$JC{oWYK&%mos%xj}ZkzPiZ2>~I0je1`& zBC4H*PU6#i`%f!1w71oRYu}F{3loQt(&sV#3*E?MM3-*|ho4Vs{?6#TYQG5A6fXH5 zaGB(PuWV*Rn7}cy%3#f#ia7ak=kR&M{|5Q)`fit5RY611ZSxwx8%sg^s#3Z`*DFiO z{o)1$#4Xa-KGEio#Q4?YV3dI0i^1yrsvLCykn^V{F>|?F1$9c8?IF|*kMdsa=J?{D z^EQ6}Wd1jL{rc%PZK3nmD)2qEM2Y{?&z+8W?)k$2leXCg_jGydfZy($54L6b<-K4W z667>X@9COl=EijT`6)r@^6mgg36q7xDA(X zD=UG+c_Z-bOLvKCkY2|xtW3DSD?+o8cMN5O9~~DH5U&Ni5C7hh=y;Cp@eDU1{j*mR zVxb6C9X_@JqYw`e!51(n2{7R0wLl8*Dt&eZ)Q~A4K%&HL5vhkoSRjpE_~k~1nA)jNW_~qu+;oUCWXL{H{xB z3GYTU)~F) zGM{_gtB>Z&Kr8*}2jPXLy6Xe~4~n zb706yOawjbPohrpEV8uRaz2j-0(w-;j*yD=hP$rhNSNpM8-2I(qp8`wqW)1Kuj4Ecbpy3jPYw^WhRb zrAe73 zI2pZv#@FeKvob*b1V|iZUg1ZTM+@oq6so0@3whN<2lC<<5geqY#<>r4gBr+EsQNAL zKo__pDfRWoqm&bf9626XqYDbG)(%r2O{sLUoIaSqsUrikb|On8$}QyA1tFgD#g9Bg zyl`#;o61->QW=1^lB^_~bPkp*%14K~haj9fR=6#y7=aSnx1P=CWt0bcm;J(Z_UDh? zF)rB6jpZ&>ZO93E_~V7h9iv#lLl&zR^mps1e8j$W#$~+Xsh$Fx<18 ze*xCVH#Kc==@it1$_Rk2885J-%2f1M%>(j;QFf-gq>HSZK+r4&r)SjM`NnTvTc@9U z6dJJC*d>ws&fb3OefFDEbYxu_v&jy9*_~TPIu9k?tx`408}J&+7>7+$zhy`)OWYuHkJe^7jvJKWVf)Gt4?2CGbx@d?-CUV(4pdsOYG6au9M%> z$vTpR=~*!Qt!>VQP&{#N)DD#z^ zpo8_OZwjz}i4QO8O5m;pKbIvGpV6;>+;B6RwC~jdK<`B% zvq9S0K(-iHeh4~HtL_z?`}Y<_H%&(}a)NM;a{#I$I|RveM^loy%B_e1UZ|5aJTe}NqA-ATYVOvqpxB8J&zGv0AWJ+l>1RsLc}Uf>_LqPNg8 z_k#D$>MA&x?R#QGsowBf|2v!^Af&Byq%vg*eUSb7D|X8I7LZ`@{t46$vwHMl2u<(L zZfyc$o_ilp$aVPJ=G8+ec5yc3{>px8Il>`&6?5v0DRj?ZinJQlRHgTxTgSD`X`m=U zL@XsVV!sRuHKXKdEeDY;wu}n0vE8M(wOH`Q0`0RsR2t(YcYJ^zESYgP;&g8Rp}vGW zDq^2<4Rt#oyQapLGvaRDZJ=&m{WwuqYLN!l4~g@riNne#t#1>SPJo9F_H0L=%&j&o04M3KJ2%!x@=8A4l21F$s+Ujm8xCBa_T~g`0#a3=O zJRgw8(hFo|3M;~c4FURF?8$%#k=}G8Ralvowma$S8ulNQBmJM1S71v5pqv|f0!btc zHfb6wDDHRT*XG~91aWnUc!1BrjJe)v`b;+&^HW6Ib67OPnqb^=~2o%JL3z`*Z z>yU^2*j<~_IbCwpfV0?L(XUk&2AP+B;Ck7-M29pJZVI4mP`4tHAk1Q!#0>iZ^I15% zwG>$(tj%=EhDPfblLmyLm7-yAG(o<-(oX(#Go{8tnZommcN%_vAUh<^6eTMkhD68e zicw~uwT*zYU(4=ysK?AOH!wJy8n-tiL(_=}Q_v0wV;Rb4Hxx+cck@GAC`S$;o4N5E zC93`oDB-`dE5pPWAK*Dv$nUV&3pM}#isFj(a}g6|>L2*cHex1ZI~yEItzxVNrYiqA zn2c>Jd{6DuR|>v7&{kC9o;|$u5MjXzLlpjZ`0zgaR1j@Bl^qqR*8YW03x4Hyf-%DA z(4`4oy(5T@I%lQQ8AcODmLPitO%d~DUc;M8hC zkzlo3p?}O!b5+Kql0a{lF2$vxxMfs-ReZfP+RR4(xy@yy^$hi}HlKp8OT*dHA7by0 zUgT4;CB)Ktx%4GEDdvW|e`C<^(y$Q*90j;~R@8Pu2G}EG$Xh$XT@(x<))CTg8vdpk z)dV8I(P6g64Zi{cqih0&F~Q;q(0=HNh$D@iyyl#Na(U0}bbwbCZRe72pPY15<$$!> z<@r;ed=?P+P?WO?_I5+=O1@ZR1QL*=voSswih|phG9eNz{k&toXtV*czn>k~9J5{h z9z`{_HM^Ob+L+72x)YmsU@e~r)PNVzEW$j82UCzHXO1vDks91sr9%}g-PeAxN(iK0 zpa+mir7i?&K#c=p$naO|x+nn#kH~rHUrfxCLUo;tplWq*v><@NT8jz7Y7P&;tnH;< zW)?!*)q5ZKWapyU)m5)aKXkka70J3v2Qom-gf%^4Ko0=b=K$LzQNbQ7zzZl?Cwij| z260IEBP=f`F*$WCY+I6B0a=_tI=Lk978XK9`0KSZMg#{}(HFHVUWpwHRofu(3*1WUu-(4>nafm z*)U-uwcOA%u?1w~r|y-7Mr|!M{zfVS4PE?yahFkbhhAud>?232PU()n3do&$fgs8x zbdn^LrHa+v$5T^xg5Z`wOBKxXAKMh)$U(vgr|SB*5O@NOy0U^Too-^LfoiQpoodn$ zB;QcNfN|V(8qEz+Uw7xAZx-QsmuzmQ_Z4f!_t|Krzg^65aI&8L~2bn*y~#)m%j%`_P(2I#~|0L}5s~ zn3fZR(1eTVX6)&J4D`xpZy%~ectJI&LX{5!HB!9Orr3F~JZ{{If^LG5T}$j#A~oG{ z9R@~NV({`E1O2d9Kt!#G+vKhYg1pC;qp<MG34GdhMJ< zp(*FUXpk>&wJk*KeRf9Ea}co;<#3zf9lgO=q7Refxi=9}&ZdYzMU=5%DS-^xNoy*~ z;%)7f8s)sT;eY3He@x$3j=xrh|9OhP5w*%Y??mLQ)SNrT(t)fLVDnT>yR0kq(UY7V znV^D2Y*!%HV8zfX-NlcIn7cbx8iPaI)~HGXx|Leqv|&QPN=z54x|@sQeT4H@t9$I( zBQBooafCV;D7A}6kS-AA-BRzNq5M)DeC**o?hzfMR0n=Wi>cJP6(bIsY34n{8Ec(cBr2 zDS6ZnO{|K^Op7|!`@*cA)JxLS3yFux8aAjMX6v%QmPFXe+KAZrI{5Z!EG+H7r%4km(zQ8}p@i{j{tgk4eZBJVy%6hL- zeU`$9w2TQ`|8k9{tP{!PC(nh($F-71N>`<(CkAx~-4ea^qh zp8%;A8{7O$fzIEaHx`qc*S5z#5>Lf$-4Mv_WuVz=ovIIbjDP!4>Sz0%;_ z#Ja1$7-^wO>+_3PqH9G27$<4v5U(-~jTjB%Dy1GeQ|z@U3zY0v*W^Ih&@K+V{G@s* z7QB$<^2VAur-sIK+np&)cU$vTF*qrvd$!Jq*c%RVBf7D<^h&z$P&Ri9EaD{b_Nl92 zR8?A?L6M&I5rt$GvvefoHkZiw3U@iDCbBljiJ-&8>PDono!>i3sO~RgN-cb)Gw3Z3 z_5tLY1)@CzsYk4%ri=$Vt5vfhR%m2rBOfqpNmr)%e|+6ogkQN~ZfzR-W< zfK}W>3j`VmyI$N1tTq*9!rTB!91$r5>|u{2O^mp!V88KZ&kJp`COCMpQe?oJv)me; z5q`BPMk+%UXqRs|^nuy>tmUw- zHLVhNfQka{K1KMNM?kvYbB(i@EP|_h)8{S|N1T;AR4~z+_xz#a+itsGcu+6$yd3pA zTUiF8w{T$&|Civ=0oS^BmB|~3Dwi0^Y?csJjjo!_^%3r`i&1P~QQ)T1tQ^or4o|I; zsS_7;GoEz=?W(qQ1gPNOTD7#N%EvND!h4&^g%lYzX(mBpQAzpRG>ZHQQj@p~Tqy_= zF~*Jf-0LK#HFl!L&C=)575Fbns`t&H*e;eO3&}U43>>F#eHOoEp=npd$=J}CwCusO zDWVE~qX<6fl31mHiw0t4xMBcVc!NePeYi#x(7r^@h%>E0;Q_~PHa}XM*A<32iNY1v zRg!@xC3g){MG`M`T{>p4`P8HFM}d zWkE*ZR(hfifqCoqWc&_Ri@*XZ3eY+o@8Qj4sl)?kpR-|6uz`@>PB-*{!+cTfJ_~qd-jfv+Cp>sRX8DRaLa!2rK6q5dkZR%lMsJn#C zXLUKpRpLMeJkf*@(NRtyMK|KNv z(}(?F&YENYmtNnvZMC3HK6L2OL{`8XzBmfJC##|}ZO9X#wd-9o>(wSDVrWy5jRasC z3ahtJ9(9=2dh!hwp2-le(mjc2#Lpnx2ooF}79S7?HZ{4klVXKC?|P;p!ke+6qEV)b zdy6C{Y`2It)IP9)H8;#p3rLtZk;F44Zq9MlR7GnGqeyWU^l}Q(Oe25#(Hn;N0Q{ybMvAEy09KMSE}{ zhsvHsN_OF^M+sBWE=Y_@@NiDKvqqN=M~670b>8|8UPzFoygBVYgpU*x zy?4deyddD=01;SKY7&>8U+Nw5Lc-ymhb|l~gi~-ngGp695%%Tsz3~Pawx^(DKgx{- zUOQ@4fdF_zf-ED&v-PksXtG7LU%#3kam=7AW5pSchv#L-EueE0@B)vUCfoKIiDbgB z0xf`g;ZtRjpQ;RIFKhw?<7}fc5){~KZ`P`d$Ylbp>x4PY!$*=VP>&zNbKeCZ3Revl zXyP7c#tfc!Q_S+jw4^X_zzyg0fZG`^&#PO$z79IGbYANryR1*n&}K~opJvIpM!x0{ zSxnB6)T(t={{zMesmwC#DKvbt$Sy2@F9msqD!6m-t^DHvt~`0jVv^Y%icm2g_j#2bmbbavH4`vjv4aX6qi`7uaDU7 zsSx@1RaiYwd;58&D}@nQ%ov9M+I&kD)(d4ydM95&D+w9$0zKt*s+lV6)z1E(g|#Br zCyR7O)5#zUH46)zp^uV)^-Aq7g<7nPGGUpU%}q1}Nm4S)Izw253JH<%wB|YMP#bzv z++>zOkx8ZjVl8bgr3IcP1t|KieI@8$EWv5uIEZWxfZr1WP$VFBAP~Sk#NvN{5s5Y- zYFaZwg1N>$h^F+@Cu0Q}og}%>KtLUmF~UW87e854naAyx1VJT4y3w44%#rNXjk`vS zU~1jw3mH=(q)8=pe_LhHdMptMJHRTYYw%O#vRUvtkD4l#cp2i0IGF5~TOyOWVL@ef zU(CvIlV6rC{A36)8;C-VMX0b7qm?&cAbF?K?M~Fr z$HCA6j`j#C3Xbdd{BP1A2lVZ~D|*{F$boi?kfB#;lK4rF8AcB**~QH!)P1*?C`_k0&ZwBv%}i-jb{(rf-mrZT4U8Y4yIY?MFan9d?66H5*7 z9?+ddNWnrHIYhR0g-T*mfM8a#7wXEF;t9@mTAAz9UMl8=K_zC2KdZpLaSo|bqo6*T zN=`5hF2+kS0LdQ)qc$KAwC_F_G`OCC@@ptOorMzJjDh71NqPm>N#vZdpaLt=dn+50 zI(ej$?jaCfgd>jZRYdlbap~-9!$d`F0nE64$4XUrCHl)~RV;(uWJP&wsx=#r{Y)_x zltl@w+x8GIqOW3rb1!%1)*dY2OwUVpH&evAZ}p zlde3_#Jn#&MR;=g0=d0QN3H1`_WK|@)e+$- zuS-9AIRqF05;T_cqw+==kKiBz9cZuC6X3es*j>AYMFx9MZtg-y(l|LKu;Plr?Q*r4mXW|SVCfnPP4^efX;e1RA2a6 zrp&oF)Zg>@X95uUC6UnuTw>2?CU#tJRiIgamytt<25~(xMR8!Er1^JkE?(IH4q*_) z?4U=ST=u?S#5wb=h1P61h2;l_2`LiovDFHZ$?yrHo*mm)IDE{tk2BF@NaMcIb2mQ1 zw^{d3&S%mX9NpaZB2mm3fp(ofU@dJ@H#pm7hY7&uWeL1l~`YMV*+`ylW z!Z2VdzQ(YD%iYGRCgVA{)k-*{wj%j|sr}|ytR?}r&V4fM#qpBN!r9c4k z^UJAtJ73QNV_Kb=H8Q&7Ma)34qI@4mM3#Cils^9n(CW(Q69*%}#_lu%VFPLn919pf zM7k<+rHkvg7oQyBfr$vqa%@)V?sN4?yX3b4vnTGCPHPItuob!-5V`~W7~Yq$;Hf>< z_c7x3)e9_4(s679AMFO*p$prv&0(vHZMUCT-8~y=#iWst@@BB7(1#7H*pqorPRsp! z*ay$ex8{vlfW6g(V2 z))<%4c?1@8FL<6jkWvw`l@w^rY{W9$LM}4nK$aNxM^*@6=%VKDQx&KoOc@)6037fqvGb}Y77h-Fr?7;!v4(@rsC<6r5vm#_q$nu3e0wGZahdSn z$OEH9Q-#me{F{aqOZI&~JWDL0eBm8sp3_8=PHv~zNN)PSm?Wx-W^=~jX4E8ElR?(lae@5Jog!r`VKep=^YUyTg<3|d)x!-#72YsLF59^ zEtKkxapZo0H*%k)s(>;5fae7@N-bJ=-+FS8CDrYsi$aEu^7d=vd5XyZNHF zuEY&me7_CIA$+M_IWm#XV*Fj1RTHqDM7-erCv7|viIFoFzsHPF>10bNV>delHxdOx zfNO>=5|GMcfml%Pw$4s)IMCGw(yHZ7geOV9QrtFbL(xAvPX~dRO_<+gDvKn?liDyy zI6$>dQaam1eYm;_Vmrb1?q0WW>LyH2IeLp7LYy>Sa3!F}vL-Bx?mVSSx{@$)uJD~T zbdV~1L^0*8eBqh5blAM7!)+$YO-2D>FiO=BpID%1h;F(UYL;yBaIeN4L}Us-Dx0wJ=KuUMQP(Wiup-{w8RRDVo9+a`+gY% zFq1zRSsOef9uY7~ z*SUxoQbB`&!eTS$Z|9YNdmK$HcK{2)PXhNC?RPZxQ&}ytl#{QV(#Bs1^YwK}w+3nf z4`?`4y^?$yG-^|CL{*1;;S=pnwi7p|#QZfyhk8yO6J22Etc*Ce3(W`NRy9l9kNo$S zD_vN9Hy$D7!0n7vW2~Iz7?oNQorF_YJV!~53={f~5)^ncykseCvYfIgU$ISln%G1Jv1wi51k6x&d0_W3%TA{WxPXI(^zi2l1(ianvI{H3i|s zb!*C7kikzADS^ssltEgHD8!kSEyYm?991ubAdhyS9(m#VM?Gp>AG}#Dah(`%LxMcm zLFx246podM$5wg&e5X>hg9zhLHps5|DQYTZNZ<(s2ke4cSoO{RrU4@|*Ds1HZy1=< zu9DKbpp;O$TiPuHJA_8H>|D~2gz2zn-7|D)%>C0&{7Q>6ljR~AoV86|trhu*-d|zz z&MK6XjN7)pXMsMY-i^-)@i<|@e7=cn=yq_%D02F(bo8ylLuO}TOYoZPnxqgDQ07@Y zG-DYra6u$=qE|;H14vjH>4u%e(9i+nBzZq{G^b86m)aa+g zFLX1#G-fDn@|SC-w6c?1N)C8}{K+k2_Cy9i(PNHTr{AqZz^78d?}Z)J)rpN5T%5Bo z2&+SE;YcyYs*$`RK~`080NpTYpaTvBcO+AnvTCc_1Yh@dq)Y?dtEeLS*cHgaS=3{I z{ei6(xPoEivC=%72{ErTWM=3JOmZ%w3)Du!WV{k=rNJ?O1FJAt7KO3;J%p@pzx3Y{ z@P9;A15|~5G|#=^OfoiViSKZU?D3>|*BaizdaJT`B8Asb@ECBt3KALgsrv)LIwsw_ySLkQ9x zrjsScQjGPy!YtXcnTW*3J#Y&=Yb#J;@#$Hy2a`m3;iM>^G>s#ua=MXIT9A z2?UYvMxM;KPjZ|<3GjzyyU_zJ)19Vb5&4%ZzJH2w)61&M7h9e`-OG7V{(0}`*Q(3s zyT0GcY@T2H*V94U54_`Gw)Y$LYcFl*`*l8Zssx1Q8(nha>-i@*fv<;i{jb|e#BcOF z>=6IgUjNV6GJ%hW=e+NGegDs=Hv8VMdjKN8;*R9omVVAtm;DdR0xiMXf#bqOH+`dZZY1HSqGc#E_DJ})EudSnpzymJpH_{Qk}zE2bQIGX)g9kA2O zhw^!FoYxEdX8-;2d+MLT?RQ{IjQ{hoz5n}d-j3g=_t*VT{7+3EY0hs1mfzxD)nE^N zU;lz106QQ5gAeE!@?U=!0|I*X0RF$>11vmEN_>B^)^58kPKX(v2VOzNPMJj@zd$%< zHat8Yc7wHm%g7ymt>{GQO64YNb%duQz}B&TaXA1*O!@oaXWO28zvC37ZyEgW6$tNN zePa0dPmL!={lD%wzAp&{2(uWtD*a5aIz;M~eN z%@0wa{OV?hZmraC@nE4opq^{}XHrP`t^J^V1CVX|ZD@ZW ze`1wV+r|^KR%Ea-v?BsIwoAj_oP?^*S+Cxnrz2129@uKoEXSC}eUQ7K3*(57GekGg z-Y0l`HX9Jg;DSg($$zT!$R8*L`mjn>xn&f2Kab&%nuE5boIXc#FKppqKe$=qjTq5x zGO$ux@>u3oF+OL8{NR{gtiH$p3&oj#Q0y_>94ejVVS!3T=RF%_%f!`iny+A)!!&m; zy$fd(YN+A|m&T3iR;lf5#}`1r6T%|cwn;u^yS}0D-N~afXDb59np($MV4N55RjPv- zz{jnH^Z~-qv@|X_TcmP+!G?VHeoo(@30(Q$JU6wQT|((IT3b_o-zO@=^%i73YM?`z z2(RmCb4ke2cYe~}d#+kvYC#GSrG7(Xtv&_oWpe`YLg_(KANjkw<0@yB4Re<%kXLs) zQGU5>OJ(kyxeuJ>^GY!Q(iwafEN<~@bGPGcX+&f2kJh!a^F^DvHqKxBrNUrskgSsq z?Q_(~-7dbtadxX?2p3=tTp<)t?Lx%N{niPdMO)*zjBW1B66rq)tk1;un(H+@lvc^? z*|5OLwUg12`8ZkRP8`4O!B*v9g_?d|MS&&5!?&5P=HkCV3O8M0&Q!o`iJ}&qr(-}1 z&El0;oxEGdq<;)D!c&|M_}8F6gb@3N%_n~k4YC=1l+}Dbw)8tZk4!0iLY%@Om99qU;V^OCu8nh zV%Z?xAP({*i1(+I_b$>G81vJ&RhM(YlsQE@7~%watOKq&m7iF)ey+g`jbhbX`*91) z@pwE+*_kbNUSGa67XJ_7W1|LPsxj94yIQ-bcW=_91PX4zuikmtto6%{AZ%xH^LFEIbww)$?hPx=)q<>g;>i)0OL{jr?Tj zIHu+uAHokkX*8x}yT$w$TiaJZ!AaXqMgJ-=!$DIKrVxbbRtM8VXk*|pg#7!`p7Q`? zHYN+m z4nh5S(}mW8ras7lOp~=y1={QDo7NiW`>9Kiv%dZW^n(RHH*1|6-BC#Pf4}v1&&&HQ zzdXcSuWx#^M`M7OcF)%#D41OvoE)1>_!szDJ%qEQJo9<5+34;5O2y3`7-jwTmZ-7( zu3wiU*ejcF%V4H>#J@yXuJLTu+}h)^J_qh%)>rWq#wJCLVe7kK{AP&_=j_-^knq%j5Afa1 zM~!1nyr)+kD1!D`>~`^hbwhXNsZotT(_)?qB@Ox+4~P3ku(Q(>;Sc z2?mrdCw7$}e#dHSXV;f@HobL3)XFpGV+|~U0-YI}rc(5f#&9*+AI(4^n^C|O$ z{n32&@Vl4+(qz1L{n^}3n;Hvuw##7dRlEDwPAu(Z9HWa2kJHTXTqU148z(UWkVrejGglwwZc$(tY$TTbq?Ng+z71)k+)LE z`C=IAqB_)pVKRg5`W=ea1>=9hsB0kLc;)Wp=nnApn|$p#-f|WuB$C z=so1h>OEuXV=8KBFMfpYYo=yzbh$zdH~irVQ14nTIJBofE8Ef}+Xe138>yA6C}Y$= z4R^;qenYhp=LTL@dW_YT+e0jz(eh^-$5>~L1|x}6f?81Z3?Dst@b@A+T~n+7g|Vw} zG3QXV&C&J%0a(N5q@XaEE^II9%q3;%Wt9S`XEjXnN}jnLHaLDa47L~>>#fk0!S^`^ zt0Lb57{>fd*^IN1MvMji!`)lO))fR>qGpI8W@cuLnVC6eW@cuHnc0rv7>+S!J7#8P z=3{1No?P9zBhByAoA+i$T2d`7?VqidTHV!EtBga}i~y!cW%DBuSL}00Gk*sa(Wo)b z2~>A+p*(+p)5+;Tl=(=@z)qtHs`pMt5q=M^09zhLg4L3D8B$zD;CxcnQ;DF(o7X&x z39?Ch&TSlyTAE}fM#@1|1oY$6U$hQUX+xiZ?q|O)6&iG*akoQ3hJeOR>kJ$8bNibe zqzBT}&TVB+w}}bfS7CBh@&NIgB}MzltC=TAR>Pl16Z^MqLDb*}qV0DW{E&{Uk%$P2 zxwG0P8otZGG^Ib2Vtl{sCgLY~CCUnhjp!%X&ua-qaP zf{v7D_iaBSrcM*~O4<^K6!dnKly=>K)@44P^gc@!9X-VSGnEzWnZj@SM4rXk%M8?( zs^>piCv{DJQ4NKE1YtQWdc+m#aqjyl-%`e`I?iG%)%o`$Z(J#zuchvxyf0^WhO$xi z%+1gBhzS^m`oO@Y6@O)B4*RU=_l#OVhI@Qw{-`}GQHgRW^ZRkm^v^Sp65b6aE%)EO zh`t#8x%qJlLO=L!co;fs7Teg<^8pSwg^g8GwQvOgFSrFqG<@uRK>Y&&;uD}3w+qUt z0FByhSoUz9p?{czM#Y&ttLm4wu)$CBcSJ)s&2G;K z$F)XIVD^z8VrF=@tX{9#n$2dogKqs-*F%fKNkJey}ab>>`vG67qS`^9b{%f0%R znq?R8LQkeRl+Q>$+~JGZZY&$GxK&qNcdiY!TAq+xNCdOs#8)saju5B(x6|o5wvM2t zDh6Ys*pS@OZ~aV7_P=r+e&(^t7PI#jT&WNxC@VC z?+NBF=h3-P_#+N5*l`j)kbh9tbT0!f!{IO=c}f zVqT-xxJeWg6-*4qR89o}*w@BhGBh{|p(3I#I9L#{8$N{yO1mpf^kl%KQ124>9D1@M zm6r@y3`sI?i0Nq4#^65EKJFvw)g1Wjv3C7PXX&mhQFJdz3u+;!ANHQ4FrDFPw+T@#XFUYc=4G^9e2Ej{OFvt ze=;6WaTxw18|KIyRKsR9N6bdJfnWa0PED|GhLwrFmWZMZw*Kbq`j=R-XPR-;014&f6d`p zg?@h{$uZ_?FffVX22%j|!L|qv27rI{`s{Z2WRiliXI;C6L{y&_fW?m#dK@_WLSk)Q zA(GymC&>epa{v3GHR%bI!ayuwvFIOWn7$lhb2~vkC}P_aEdGb2K7E=eCj@sPqBoo@fABT*?#+jPH?= z`156I8on@wPaE%tsYt??(s~ zdTQV{Yd|6dPB@bndg69^t#XYaUNP1!I>ngu(w9;srmN z_U<0IgBGHMIu}9)l0Cf^J3$$FTVR7W920nD#j9%GP&XUvTFJ{65$<~^Z5E)eDqnz?&iAt*qC0>x)7_s$Y=VT?cT5GghoC$~ zIedHw&eNBmb5KPvTNP0#xMC-9QeYt1;xVoWU^U1>iXMBu8AK3AcY9m+evdY3+rsu5 zf&vFDZ?XF|ay}}sMCG-;F=r=0LGyfrQ!DhGh?+njeY?S8uFK2&j2A@v=UGW(=!=ed zm~2W;)N9zOwe+~qkg3b>Bqp`l21(5eHDI6Yu5{0>%U}TN6knp8nb2qpKIYDrLYZ5y zyWZ(D*PSp3Q*a*phJMVuf-rH%R6ox~C*9M#!t3!zKhY{x>nng~iIOgIsmYZWzemDa zEij-7YQQ(JNt+IxHm**qG~kaJIpNHEuG}^oQ<({MylY0pZq%73FUcORHtXlNsh)gc zrv)Eeko%YP5E}QU2{qBL?55K!s={A7W6`QLbJFWXqGb3n{mj6M+Hxp! z_$ua363*D&&uJ{pXL-|t3B3%kaGBwGOn()LC$78?D3%$hS$=HNyiwYkVvK^2H}(!? z`QVG=P+&t+E~dpdT7>3wH1Yg$V~gdF-5tProZ&vQ-nVBcB}bC=q|tfXFyT?&+2pr< z*r{frH_(6ZAQoouFErzRGqam3{#(m@zy#y&u1`H8#+Wt@YT1!+jpX+h*J{b{%txq@Vd6J`jgG=&usZm6 zn|vg#Rl5or&|9KHD|DX^dtX8(aZjnAk?qA_d=%wvWfp~$3DEzFlF{e8q&f>Fu~Y=< zVh261sP7x67}#Y-cugB{+q(hml!()jmJsbf#zeGLa~B2=4qn& z39&J7*4zw9`Q5G@eWi|Zo*B({fL|B6z=D(BC+Q;3obC1mO5wo{z``UF=vmC*@%Clk zXr7M}f+HtKb^?le-TQN5Umu*-Cn4ov-I#LtJFE03;HWcv9aZNWHaH+@i(Dn-`oXaL zG#9|lB)Ud>g~uB{zVEB}z=AZWmVP|#cpT6;G5Els9y9Pmy{DXShBYp~n+SiedtF~P z4%6U<@Qz|~LR03!3gGdw6=VG9dCfUw&7BTSU}K4!(cJ&FOp31IR*n=osk*fBW9HJ=!B5_Q0_u4YQ1U#kj(hN9cyW9I ztEFs7n4WI)mU!}~lIebhCoGwUece9*7mLQgT~=)0qsaYEbz^zEZJ2TMMsH7#86A|H zq2>d#&5Z-{_0-psYBSo_$Brcy?F8Rj``!F&9DYrBs3zHDJ2u(eo9AM#mesxr>?lK< zlT$&LHfB5(Uf>trPV!NKTAH{&C|sr* zAc81@L@JZW|Ym!zs!B*+P68Z@Chja;YM&E3Q0^t-r8eTu)% zpOEGOCvivqj(OUHF&}QabcQYfye5l0r@#A5h58{}D_@|Ja~KV*(K^HP(~Y_@Jknv! z1_dS{x2($~f++QIc=_bA7II5%z$`o30J||ZGf6jfMeSk}Y8q82^?NmLnbS!3ucxDY z>x#)x;?O6TI%eaW@4<@dN%b5-Q?TDTBLH5PAHR zUXMLw4UIXtl6bi02bQpJ#7dz8tdSd1-L)!(CIWg|i z{9tlAHJGl#b-*ct?Cgkez8%wPkk4}HVK;ade&*u?9W>2C#D{Pb&QF`he_ z?f+uUe=*Kq)_>v77MRY>(t)%Yri0hyeZ3~DnuahVsHA5MTYF5$z4@!w5Y(KZqc{m3 zPs2fAX@JG+ayy1cBpj2xuvLe&_v#`bZ!REsfx~=2w2a70T~pcHPvS@hxCT5xv+dav zU*S(x9+wmVf2@S&M#iv#?O1L}Kz30@^Mn&VWWV{PQ;)if&^z50Y8o2U^DIY)6*D|L z!_-_ieFn(0GR;^TLzj=zj6g45scb};qjz6<^j3fvbHIyb`VfiW0G!Z*M2bp71cL?v zAZsROoHp!nqX@$>m9h8-oZ~?WDoL`NzVUEXYl-)cOV8_t72C*bx?!w;= z5qL{1e*scrz9kRZ6>fElQFfJ0C6deM$-&744}X(60`&^1F?Zogj-e5fKT=K~r`=+D z`D{;-(8@sxPSHi&;DC~vXx$4Kru{>(ot9$*PE^!ZQp$?7h$JruE51f#29oZNQ{5z- zY>UAiTdVm?!bxJ)ozKc@2fE++e_VDxDjKMw1CL~!VTkbQI>*hPRRzoh+D6!IykJOK z)ccT}I`W`m779MuCnvAO&T=|{7QbOaF_O^*?&grtcBg%^4QFwi@LyfU(0OlvBAC;%thjdKK&siZah{=I|GW!?De~*z&djoxeHW8xnz2>`MbCGu2e! zI<;Pxs+DSYwL3+~1`Ktqbm5s74`eOmIQO2woH0=s-v-JSi4c>t2pj4~>_(}{sI z%Lr>v;xjfSMnlEy+bvoBWurLNjHp{S%$Y{dc`G|m1a3zbkmTmjn}n&5>u_SZB=TSQ<&Aq5BHAM$%aDjvVi zhYObHGJHzKKjg0{3sj_gH^vvq?WdIw8KdR)nS3139yZ2M2YVHO4j*G&|5S>M^Gvc( zIobWwu%-(8j*_VvsZ>wZVdq5B~gxz1PQ7;(E6mR!#0Z+n@kKVHdT3 z<`}4n(Epy(@(dhwi_IgOM_xw73$o$dU*huyOS*QRq+}>Z{PBeM)is)`nhTZ`3)9Y( z1BRLzszq>fER>ov4h#n6FpI?2Si-(E^@dx%wvs(P6%9htq5MW?YZ4cT^kX43g;KyA zYNkBki^guv9M~5V6N?GY4YSVm@%2(>hz|AflHO1nZ^5p~Exh809?-f%?+wN39mi-3 zY7KNSWk*j{b-L1vZdHk*MCLqhW@AG8RiN@hz8p#rKGj1fEPT7FW+*|Cnpv;C9qlQP zXrpc`9&xN3VAsm{5rwx-jqUwM79`%DmP>-1XV~7MN240()y=VhUU_a74KwVi*J4aO zdK44D_k{9Cw)ly0d>e)aaNGue5-^8$Y0@h{3IhXGgn1;F;U^rvt(Z&gKpd*HD~MOq zh?_Mq)FANC@dGg#_pTm8N++tj-#m&m%9%c&^@^F6ZfcNRez`XoEUy`?S<{M_ z2VIn0L;{>>NR; za;h4B@SZlsAAQ;kExWr0h=E78w7Z1BEmuiqaHZSNj8OzXR67lk4{tIQFW2Gb($_K> zKY(=+L{L(AD0Ni2Lkjm1jDajaukUR z>D)HtfYcj%T*eBu%p?bck01y*QWi+D6!~sl@OM<_7VUEZZD^B>1cB2AZrkJKL(rl+ z0>W{={3}^j$*=Vy{l{KJ`#Z01m0iC|q_~6jL8uarh@Z}=kdxKj!?ryv#*LDyG`YA~ z=mi4}Aw%qgQxc7w)?Z5o3<)h%_B!}zX+;gI_87?zvcgI-Gcury2z?+cl(PRlBHYI~ z9op7v{FQE6bZ}lc3Ii_l<^UjAg^|_@v!_V+*?GJ-1nmk$3C;QNGn@qtLfVtk9!LMC zUN*=w2*c*Uw@W>J+B#^);@j%UKXf7(xN5~TI%pThkHIb&jrT!ZzDoA&2+NNQ7Qa6A0fleL9Q^8-Ey z(mV---;x^Z!zb&1&c%LVL7R(Ks7Gs@wSLWQ#eJkM%nSWD9TB|M+EGj3@xU~8>uH?w z9;)-@gp6!di|x=G?^QzlHxuuYB#SL#QZ^YVmwl4G<4<;^8t)|9H`AC*ou{R+8I#KB zdkMX)9`(NafEI80JlWcQ={o(NQ)oEfaA*%Stv?+h%mnWmA^IguLBMRJae-ldnq_jg z?U`bPS~4U*uULw2<7;1ef^hm!ppQ8y`U(xvlE!?VD`@Jd%whl`!3p zV#Y>QA2&~rY=lGmZ)1Y#-iN5{#9O{ z82pb<#0Ih=;9tUV^sWGola8K-9=%(KhpfwpT>sb7j7$dUM1oQY@%@Ug8R2h6>Ia6Q8*Y~0V#)94vQ%*Clo+Y4>HSeM|KMM+kXrmJ%0i6lB);+R=6L((g}= zX46DQ*0ZiKP;L&jbGT1y2Zp*JX0(l3)EMq5G`%bMNN=1j?~3@#Vhaq)*l#CdP%%hG z1YsjKCs(gL4ECA31MQ&;Sq(ASzKMcI#eP3CNX||Z6D2HchucHQ0i=5VG>vQz4WUch zIO@#fMn2xr)xG2N;QA2dgq>fA&jDxnNl(XSBAtIlDE=NyWo9U)`$)QRxOvkW!NK_* z1&s~oF`xSX;)2+Y7MgyAoy}5@C+^zwi@2KqJ&Ux-O8#7zpvGi^7lNw{R{6>pyx&7cyvcvct7vTyPxx^D1JZmjU}U2oit>bxxMUAMfT!@fi@6%37|fLYg~>U>qPB;L3lWH@|%T9B`CxN1%yd zd0C3pzg;DV&oyo4g;qnS0VhJLKX1MafPYBdmB?wL4n`GnN|edn-qK}XpqDu*yksFj zI~Km3tgsoAqnfs2js$u4Oh^UFk|bGD)?`4dbwc^6ylv>PxpSB@dp*SyZxtKD(yA`% zg0VIfh;9={rWH>-dY{a^Qd>V=l|6w1M~1ZE0g*+g|(|8(Z6>DPtC;zbQ*w} z^3jNvL5hI4&fI!#m*3^T~UpJ|+z`IN7<8tPNp}S)J{AdKu`@j65}it?=-SVgV`%ZlAFXJKNf zxd6R@3tfL-9Ck}VNwWJ zragw{xK)!XCOhs-G%}wh!@#3J1|*t9-<3rCOkR_lfa}CP*&(y?Es(J*!~W=`iMNR! z>SEx)wPWUhzaOu@cn!ul#eZXyWMh%6JlQVYLP_FfbyBg|;X`F>+~i?AoE@{2Z^2kQ z>+JErSuu2gg2&kFqqv_4EvIK$_JSXwug;K35GfoCG1QqeCmBG!#&C`K6Tq7zo1y$f z7AjVZPOPu@p+ zDLCp>b$#7#o`*QDXhGs9O?;V*C<3+z>TJ52xyjb9SH*nOzgXL!b!phl{zq7+Bx8D}${%!&=27YE?MqtVfE z3da~wdB13i8fS@FNzNrGNVc+LH$I+u02=3^J->f!tlN;FlzA_&&H#%gTI7p$ZkOnPz{q5>&<7qE_@jNw~r2${(4s~~baW*xzDTXqq+Sw%oQc*mAm`my7X2UIO z=ERuoh+E6JX$^KZn-p(iP@t(aP&$b7Co(3upaVCDyp_2th7wwjC`E=4R~y0-A;QvL8W&Fs9gEx%LZb^Q_{LR~L9?!7Cw zWHN!!FStp#-3}IfcoqbSaCLx&$cRx!qUqM~#g=mOGJgnEW+V9E$7K-_gQM}=an|c@ z!iX9I3otPzsBaFb8vpdE-^POY0*_*Vfu*E;8`E73cUv+QIK5Yz=r}3e*?y30b?P81 z%#Jd9(?GKHBw1UQ$N!}1+3m6mE9jT|`|b4(*|Nj-$r>K16bx$&(+z_PsWkLHO1{Gk z;%)jY&5U1}AJL~wA|KW-_(j+qE`?Xv5!3oeX;xH_4?DcHs4 z77(|yf;%kQV@_A@pfb&5c541~Rqk+t6z04O?i(Fi zCg~tt)##7+ACb%lE@~h;KzJCj-4J{8`PYm*8<70{By!7^> ziJ`exKH=t-*rJs)@dc@zJ|Hp<5BH`oCA0}uF}sqV&mZTvCikELV{g#ia7`lGchuP{ zD0QIm_bUGtyxE-;TsEV!=6*GZAr{X`OFAq1YgIESxtadLvlAV0<}tA-29}mT+o{MK zq=xCh1VnV8`JW&saHT>|FD*JZpzn#l?!!4{pSbX4xN)x1haz{}=3u6+!1@SWoiM5( zBO4o#u&O6J!aTwQO`ce!fXgD%X%3>i>OMxA>)e-FI#df^%oqUq`}+?Un9w8UaNXuU zK5bG#S9`wHUJGJa!K(-V`*zfGGp@$w!h!HXja+#}IWedj(QC-*hlH!*u{H>q4;Fr( z(d!xsQJZ6a+D?WOG)gwak)*U3>i0fPTR44#5-}-wgkPV2kCb_Da>jEoL$rVlAI}&R zN-~Dm&#kFg$M!gyeRDipGjW_hUw-oRB}~USA4QSS3EE{8Yb7=xy+r$mWvO-qj?_i?TboOR8k`d%o|&%{P5|0gSaeZPY#=T(0VNh< z7sSL;0|fbvb}(wAL)@450@GVa-)y7idVO~zN%Ypx_-60C!gB~Qo*;lf?;)Wo=3`cJ zmhWxAf>;h+;aOY0Khyr}4zKn%^_B~B&Y!$4vK8J$Ee=sKVmJL9~_AXa~10d#>LW!>~tF=*vSv)srT8$;~bYB*i z3)-}3iK$;{C~Ic;rE2Ma{(hYqXMWY!}Kr_Kadoz4Rq^M2Ku2o43P z;a9{NKyk9+(o;h0vk6pWhboI4j(wTQ`Q>8W+0XIpjUAk|pB8h)xkNrTXasU1e^noa z)@!k6EnV#rBoM*t6!wEuE0|AYkHh$pqC>++h07P=C31)E2WYXm0v>2~3>102dzm2^ zB`7||tu{xrn4xy}F#+lWTFQKTq&pcY+<)l+elibcuEMZ}QZEC~?`6)tL+=N`wQ*Y| z7zuO)YB0c;*GrbCnN!9&Q>|jwY}}J6(EEi(&CCq@x_D-z$loq&Z?Uv@AvJ6G76YkS$% zhgj^3)=F)m8XiPgBl?zWe$V2FMbw2Yo7fA|M(q$xJ@5Q}p*$^3csFwy_tg~vWU}7x ztj9;o{siK}(W?5K`cN!S$q)t(OtA-O_Xp~1d$`%X3YmkU1{$uhvHQuIn$?Ung`O34 z?`$4yZ1HlhJq*t`R`@{~f6Pv|(7N+9OntGYUIq0cpyoZjPxdn^gdkhY{P*;9L95@W zg!lvZIIGze`kGA=hj}hU(PdDblS0ru4=!kuK~*cD6TB>O7B?Ob9_APWN%$=YoEv7g znMqbp5oUBTV5nmq;U4WgX<=j%P3gI6CXo!vw1(YZ0R~G)3X=T9?A}Fq{0BwJb2hyU zXXHQslG-FiTidcs{P)7e1|)gc);tEcjcoB11KcgmRU`W1ZCqs0moB9HhEzBb<*4b0 zt+SLMM)pfF{(?>hQLKa6VT$HfTl8Df=<%wuK2A&eqP8sz>Hp$?yhedllF)}g;jxR>*(l-WUBJo6mQ(r<mvK) zx-`^oNs>gZpQws*_|C+>YX68<%!1u8Lex%AkUGbl79U~uz_PZT^+1k%pEg^X)OJA_ z;duwWgK7hSyXlzyZ{|}GRmk;=t0amV1YR;f{ZYq7vH#`02(2I14F(736D{H{T3x|32xd98k2Xtw z2CI?1`c;AbY>_zTx%IIm==Ye`(fO?jKq3&P4!H$<@MoZg>WiS_Ji&*zZweo4pIlF? ztD-#|qdYas+^2Tusy>2OH^Z?ULI}+i?BKsmKYJwL%uEpFrOuxL>79a5p<7+qfYsfH z+LVk-X;eZORd1`zd8P|rf-Px$c+7Yw2ZrH2#5YX1bS?!Uw<>533PrG*%HI6E}OO% zfuv<`xEwrS=xI|Lt?WxVxW|Lc&-c%rUex`!V@FLH?` zRp@wcj=~GKR1KjhARm5WL||(ZnF_{dR?>aoUmxcC8iXSD*0{@{Oh{)|+**=%WG#|_ zbX75|?a532A=$u~IAmClm+UZaI@y=eXh!p-)18(=MWhDtcM#RUut8D`)HW8mVmSO4 z2tJPEyGg1?hpi~ebSg2S;45k46bhey`_52pH@{7m-jly`&s0M&TFaWuNmR!B&%&-E z{_oq&LJ99lkH#Dj{CD@~ILS4XD`IeeR zdT-4~l&Ra`=Yy~DZqVW^sA%8KB|fmimM=mht!V{=x1_saY`030sbK`PYSi~8($Bj*fAW13&^>e$&TEBJ->5N!$x(n^AHes zu$I6af#z)XYK@@J`(6>bAfB@mASQ~kNZBzeG~wIAMWz&&m^q>yauk)g^Tg~wB{LR4 zdCQLl!MoYmq9y#=D3a{v-3}?USVNbO2LUm4fWQ1r+JG}S0f&F$O{Q6`AoWAm?%_CJ8`k_>z))M`dZi{keQ8Iygumh{tdos$s(*dEQGiZ;8y4CZoZgQ15CI#bD z*8W$mtEQ2;C^Dlhdbn;?NjuzI74s{H8`g5S%#lQM>R%A?3f0&+4{2KW8YPYb=UOnq zPxQBgkf>?>4U5SKS=EmU4q-N+CN03#K<6%bB@}RJ)mKHR^4D^$aaE%B96%Y9?Gc+g z>}oeD>eY$o?R?8-Avh@5t0Z-nn7GD<=KXZ-ff+jw<=70-0JZPl6t-_Z_(Fl%lWeOm znCFwUU`84-u=RS^HAC;%5FS#^6XDnYzVUA)NiFH_6o_bmop?Sg@nVh;v) z2YX37#>m{VZrkuYg~olZAE@PxgF+q5H2;=UhHNbPEPl)TthRMhe03}jgJ_kL{4tnb zK?_FRVZ3@GPIH;)>$)cJqdoAoru*}4`|H5*^GN7@JMeS4`)xh&eYpFd_Q)Lg)cyG> z^!2j+A1%tG?5AJc>0clHfkMcB=G}n@U4aMPftX!^nB9SCU4d!cf$Cj>VHK4%+q91? z(IT-XsKCqt8cx<|l~@x@VCEo=M_sgjC8r`ryVf9+MqP~hxe4a~pt~6D+=EPt*}~EK zIVRYpD}%Hi&i_T}J#M1)J4~=^su=z=t_=QnDIu-{oH>^^d6(p`t>Fml`EA0gVtdWGHKVz zshq1~v||i1N&HWA)+%@G?1zb`)x_mY*=B)ryBN7=#Ly*j+!i5TH{XvCPb;js@)`@$ zwD&*fn#J98U+VC+V?pZQDxHmhNk+grBjBtN@Wu#;Y7AsG2C5hXosEG>#=tsb;H)w5 z#u$id0%SD-s+a(sO@K)zz&aD)tO@YO1c+)1WHkk?Y7S&I2dbC@oy~zs=D<30;H)|D#vF)h0c5oRs#pM> zEr3ZDz&Z=ytOfAK0*Gn}WVHmUSOT3bfk~FYI!oZJCGf@)h-w97wF0VG0iCUYNmjr* zE8wgZ@Wu*=Y7Jzy2C7&CovndM*1$Sz;H)+9#u|uf17x)Us@MRXZ7TjB<26lvxc*Xm ziJ|BbyStmvJ^D}DUm63BR^ z|J%W4s36Ow?2zD(OoYu+0l=e7TUvqtC;Rus1+h3a*#Dm(6{q%p7#aZ)Ix}Kb#|7#4 z%CK+K6n7zyGiN8R|H-|Etib1JGeos>&$Enoy%ZET_C%$nxIidD#9u zGpsrA`XW}AgM`8W0|SEt8_FvVzPzMojVNnNZ-@%`{}^*Xy|9cmBSF+q?Ce z?)S6luaD2|?N9HvufKsopkHU6&D-yP4Fg~HuC~8A0k@j%-LMK%o;M%W!oJ5J4%Gf% zl5dlrZ~e$jqn{HI3PPiL z9tc2vU#~*?j=**mZ)OWgd!cRoG^usSpfu0++qdTR)H8j3=GT%xNDA^#@t>S#_;bJU z@h;eSC(2$+qLE02?cjDE+k7LI-Ui2i%w62OJPePgBQs#--08zN|a zML79bUrNqZs6V~9#TRT40Lr@)k=G|nRSzEacctVvu2Xr#82vs0K&c4&TWp>RW~>f) zEV9(%53p&^BBOGO%pK-$9JSE*5OMrM#Oz8u=#Qr*5ub9q8*SurCvTAV$s~W`JcLGI zA>x=$=b6rg?(g*Se2w{8JwAflt|{neVta?(Dvm74zjg7{en{j~78~YuD;eN&XbGH9 z65AUu=?r&h8u6|RT@%FUiDYIGp8~skYd+w=(rL;$a(<}-a$)tkRBf3ul8k=1jyGBz zbuVXh1p4}829ylfJH_&Hu?;8gZ&A0WXpebjTU^=s)zHW9s#_2nNwABG&?V?UZMruhIZf-95j(P0`Kd>FFn1l*bnYUPb8rLC#E~2f!Xuy#T|6S@- zK~R@i{{O1`A4jRP94lR7Jf_a4C4q!&FG%idzDKXGAJzmK=!`LPx;}(;VgBc^B!(=O zn07}rKyI`gl3(1k>tqjBl$Yza%^oe5Kbue!O5`xQ2KzZJaaj#kBQ7hCQjqPGCd8qL z5`*#a;)R#^T(AL%+ASfD6H#VR<~d- zHui)wSuYd+9MPl}N6GIzBg-foi?$H)tioYA;3Wv~*RgHm!vsK;*3~K^GSe2_z&Agf z>||4N!&6o*i~F#a+~xW_?mL~^9x#0$^UUWSj6aDwG-h3FAAwJ|&tLPC8(L=9msJ`fhAS=A^#%jzJ{m26>Qd z@z_i$Ssb=D-lx@s4QYs}!J}2_R^x>jfTE1?IlX|Z`5scKmqwJ3$3@uQkpOA%47OSO;QDVdG z@@@KGKVbd`zJIyTYw8MELhKyBzh>%ZjYackM?<;!Yh*e5u8t)S_$sd5+Be^@r?4utP~`zUh^AXYt-Q zzahh!Jv9zterXsgq~o$xppG5*;U)=xZ>M{z){IXOIQ6Y4-}^GV>KsW=&`~b>rALOl ztSFG1eHwWxe$TXObKJN4CAp>V&{fhHz>)SNy@-swkvcv7c-z5WM9;V0?UuOHx`gLHV&xHo_OnYivNF?*jO{ioRkgEpAb7|=k} z4x{0*Hu{wHWw3;#ZYp12OR_1ysL@;ViSDL@oR&k*2jvJuu5r;deiww&E2q=TZta~w zu!l49yc0=q?9s;bT03vzk8~$Ed(32(_inaT_&|noaE>(mlLPsaL}kb+-Vr*g zVep{>Km0}!{5Vx+@B}>e`IW)<_oeN}w~05zadHOJDVs#}=h*}j-^zcRczkj8rnlO2 zVT`YJ+|A5G0udvY>RGZAy%1>wo&fw@X^j3Q65PghadlTf953rPIU+$=LVjw(k-k>n z+J@#&=s0{hNjh(aRdF~VjW*3+oNuRgi6|z;;EOF`JZXc~mQgVOY^k`JN=Q(Dt9F>o zCZh71wbmA?SvwG~U_nyyOW#pNX}H`~SRd)}gv3qlDN=_^`iRCmtvQvI%~s`bZgAOI ztU!FBC&=v!4e)>4m5Z^~r#d=aRV5Vv9wjE0DM38vv50aHSM}Wv-wFPa#;i2E+2K?+ zK44Y~Zq}XPml)KD_9N?<%y`I&SBtXg&Zu@>+rwUQv@pqz6)f7RZD{WKB?`7KjZ`Y~CJLlJ7@rVy~ zXn#$TPyYCZX*hCgErnGRHa$hiy5p8U5Ne?U-zTp`k)P%+cOr5!#paF?K^#d#or+$n z3QAt^NSwKds6(7m9Zu?y6P>*I9o>$${PSZ9m@tMCj}hurv`@#CiVM+}ly`pLuXsA; z;^{Yh-c*e&XHNUwgQkc3O0MgrE%2Qo+~_od_m?weNDS3Q5dl|>i}BRiE;>t}6%{YX znCvBN8y44oyunI0jhUa4(`hlTH1}J_mgP~Hoz}E{mV&T!UzCqk2O)X$O}dcZrDs)s z2cC!wGl3>gNV)4%NB8klq6#T7Isjr&$t&O!F@{;war~uj^r9oIWr|#=n`?BLy@jIrcE@w)U3E?|{U%`Dar^4x z*5^F}`gc46WXqs(x09wmo_?cIHzs8TkQWOO3}; zhU)u=wEIF77XOD_7_nPn z2b%F@`*Bk48g&d3_Z}b&WKSR~k^JzSDPAu`yggD|1jZiy7rHz4hwK*Jh*MU#nu$ft z;j@?BCSc1s#k_XmFEtb}hbQNDWZgT@$|0pqt2DKkF_BOY)TJNnF8ak;*_C%rTL!nU zObb20+l8!S_*)$V3|Vm1VnA$N;p&5&mFup*1S8%V?zI=<8|aLg74mOaZDJ8%23gHz z#F8;WJgwterHjKXFV>H?OeljpNR`J@>_A>N?)QIV?Hhu04WcF6wr$(C|F&)0wr<R^KV|s08 zr@LCeo;X<7pYB#v7l%|7u2MAI;73Huw8v;1sBzkVLf;Oe3~euQ!6B_cn*I zszJ&R&4{+NnAy>99Y+?2f_|nWQqf-#jxO0VQ1|6Rg)omY<3CzNA)70e)Dz;Rp4r;<7~e zBFV0Z&^)*|#^i^Yygz5HHxKfd3u>68uY zC!nQz#?yQCYl8JoSfP2Sh?(ct#$E{Xkjm~a=j;RgTJ?jj#0K}IPUG=W2m=53;N-nG zRKX*C8$D-?=0$7|w$rXQuY9{4+Y7fZ-G#!de}+{A9K>A1q+rY%s&jdV9nit?BrDh| zP`Wr9COq(g_lo9|MG{=-ZL-n5j+4diy&NV4L5G?`;=QacX1iK&5r+9vK&|7%vJw)< z#BYkiK0VdAl%po%N`7=Ux7Bdo_D_-H-0kOQi+3zRf&1S(A%_13Cd zY#PRVXSg)$L8|;{^4Ka*ID%qJeTi0y?8X`P@DWfZ7-eb`PCiJW;HIP60d8V;Y;*f~ zDOv)^M%)5eoYg+ZKh2HCco-4Nzc-m$uSL?KTd(|J*10bGjO3s$AGkSMX^`B(3Ny$} zz2Hu8mr?XB=Qq1U_&Ele3lChK@W9bMaQ>LAl2MuD!G?qXi*hD8)Fc7(7S`M<+S$hh9nd9$g@MZ8AJCQ#+q4&$rC*RD{_{8+fM!w z-Lz8T$*eVV9Q9dM;~M7}s}5HxO>tC{CqFWg8|ewBcKT<(iYncfnz6pyIkuACHdc}{ zhuwh(K^x5r!rTVVFJ5n6*v@7sbXQJ4dlo9F&__y~aS%8))|A}$=KzTY zj))rj91j);`*jXw;x`4?__P;v6bLIiw_jDc_Z(GEJbWD3WNdS2)_Hk2J_)vGjI_=M z)i!rEvEjHB`zK zszTfzhL<#A&Yqkb2E?$BsR+CM%E6v{E(q5bQ5DX7P?jLNx+<*GGi5-@lL>e6N23QI zVCiU38IXr%Z`oN$qHxaOPy?3q{^T_-o#H?5xp0*7qRicYCp7lAfJgDUM#Pmq5QKPY z?j%^+gS(e}yk+W7@r;$NbU)q-n>s=aXCq^nwbokKqf~`Me!R6yr&!DN$K?^?jpMT$kT#>Gv}Qp+ zlPBRu-pEXgy$;)+S=T0=!AytGoHSga88a;rbuk z-QKl2OU7Z711azZ;*;>1Ky&wY$|OYBn@W+0zp)KXxCjX%RgCxVTXNWSpg$nX{toICpGa?MZrtk-q7l>gmH*S!)X`4N35NU%n$gmU?REVr>T9n4dwfSGQsY> zqH_&-!{TMA!M7H4^Khf}xn|?R8Sz%fXl$XE43+zWgk&Oqf#aSrR$+(wbOFXANa9@}nVK9wrBghZ9%k z@g+Y%H?$5%aw9YAVN=%3T$xVfZn)oG-&FqD@&_GM*GeQouw+Kpmw-4>d$;@bd$Bip zmJC|$u7q|9WGT}u+;XHJzWaDJFH{-HfG*Z9HCr{*p6c#=rbb!9VT!s^YVs>DtxmL& zgntK2*DMBE#A@f27dRA)J%gRu8l%HEL2q-H4}Hf3gOf|q1P7pBE+-S-3Ntl3Jq+IH zDm8d6hj+S6q!7KcJ>Cpt-*9&t~NV-!h%^m(E^^!p-Q~Zt1@}ANtac5 zW@&KRhv$8w+7~}(ejCj#sr1hvC8d!$C0@Gom^}Gd>{|FGK4*q_mD!CeuzoDEQ(oM4 z;2UO3+Cvx^f~vH?TPhRvZHo>sGVr)sPe^*U_^Nb@S~LPQ0vI#8LBj+3143Of4+iAIqf*3u-cctvv+@A_&xGQk20%4kyLICtaF9~~^xGfc2%#u0p~(;*a+;qhy$F?9MPZ}{;aEkT3Pw?JJF9l> zFuv9nmPUk#e*b`x10ym45rRz}DEEfxms92zriKLEdbqassBC`Ydn{DdTkgpeG1@(e zR|00v4^5_yF_@cM;XK@o%4#>-IV6_%oS4ZV^xbfo!apE`d;DQ&Ptk;6JXZ>Xmuzl4 z*xiDpDr-TF^q=)0raVhxh$gK~h=a`CL-E^dzX8ht|BG2Ww!ZO0u1T6CqGK5N2F`#r ze>ecr09IYo&w*e05+a*%=J4=&TLF%(4HQYcj6_SkNI38SvL*h-j2BI)x;w!sBC-7Q zQuoYsj^(&$?q^=2e{zbK^%}?YXunIMdMQnBcX6!)xv6uuJ9DofLLlEBCxNzj>d-Xk zEmwx*XGw~aXqX@AJhw5>pH9!3+o<0Y+Y*h^7%&-s;#N2nrM&$k)3DH34C+k@Sdm6m ztJV~0Sc#8ZT~41EE{d{Ex|E1NOflvsYZ&c)0vVh;L`tH^>oi-?)~{)$VE_hkLDY-( z>*z_{_#wznyBtqF@=zX?1dca+Pbc7TAnCYx%h$w#)|OLXOdTdn2dkZn0SYDH{pFf%}%5|<`)8@ zibmV2PLrmFk%xnunF+y+j-E<%(p{cW$kihZ;>D-)c&<-Zo&X+S?rvQi#=pvy0}Bg# zSH9j~2hQKkpCfM<3wPi48g3D7koq8J>xyT!U%m+wH127rA~l@w{$E!UbmL!o_!1$% zp5}+^O=Qe(E6t@2R|1aR@CAO{yuXi*u3q1+j%Gf1onG(G-j43CUhj5t4FWuU`MPo# zP85DWbe8=59~bJ_eg?S!G!PJg?tkt=bul-O&D@A1Yk?2D!Cdty!-P`gk!gXp?Zt$K z<9dm{lfCgySj!l~!?@cB|4~r4XxD%Q)n9Rau!$lePf~t4$=X<$D7`UyDE9xn^>W!r z`%2qN8))vb{dnf|lKg&PIMxjL+z9jjCu@K7vg`JESneZ1BBBW8n!iW_=4wPuBKFIwoQ?1R(%&=;V3@~R?mW7SI z6)7H!uwj_hL!F)f(;K};Bv7BDTmnmx7el!X#tXSngR?i)HiKHBq?{U3Y?Y^x8YubH zJ8Jlp7sE$=j2x3GI2a3y#7kxUjb)YzIu#}{Wyp$l7b#pQKv`K6J8C#B1dY^OBgXbD zYHw&xA4RrBlm;2)0iF!sGkeDFF%E&SaF!QjoHVrS;&I%X5o=ehYOG4@lgFcYhBlej zDvZ!?PX>ZUa|S*J*D~-zN{CGb4D;&}kFLYaSd&NlPZ$q=_A7{ZMEVB4Ad6^-7EYR} zYO%;~;Rra{%UHc<*Y6lKYK(}g6fSrQ2(l)y%2<4^?-<((<LfP%HlAPYM&iLL1%sDtBXxve;mh> z=EQ=NlA78r@e%kOo#RyIiq#Thz1=sa6Z@d&nB#BmcaB*Pni3enVcXjViK~KhGFL)u z1z?Ba-CUNaKjk`&cByq-Hr%56!P07)=pD}dH_=&Z+Kz>ZY$2@}9v+f{Eh%HIPRuN& znvhqWf=&5FX{DSy^Us?1D`kc5Bc!Tb!?rmCU7KHgjR?^Mb-CMYGD?fj!fCFTNtGd-dOSf*rwewO@K`;Q#Vq6>qYKNnt|g2!wKRytV(0}p zF60QeW3TRyl5y77#=FL)@s5xRDWw`$qu}BC!6S3PW0`m;bKsX6L6P$8?sM7`qW$++ zbDS2^ajjY_RJz^xFujld6k9Gz`Dz#EWYS!vQeAeAR5PG2xPl)ut5}9QW6G1dcsmU&q#F%e0zCFay@aPC+ zRoD=*_Rf*$T!OwnNUBF92p{YT2tRzd>&vi#An$}4#C+OLOiq-bCbP|;x$_Ea%RW$3 zHDa)a>+EDgy~8*=-m&6Vue^1Wwc*k2p~ zmfyw@*wB>?0u(B+yBO+67~2=}IW4dT?^ z1%ri@q!LE4Nde6Tr<)ew2j>5a3laK`mP2%7(rm=M_A+*$PO9kX!AD~{_Mkiuu{T!$ z83(CP6|CY6dGm?DfE^wv125Fj88g9Sk0uC00*zgTh_D@~#t^?d4_bqn5n|Vzan~k8 zV7G37Mv&lHfG8juE#?Ar^AUJwK6H_C(0#{K|E^f!cAEE~qX8M%LS2M!^*O;-dL4_p zq!^)ef=`=!2YBw3S*Xy+lMlTumng>A{6hdMqEtzNo;28JyYHz}{FHcZ7}|c4ObyhY zP1*deTfg+|)wtD>++^nY=(Yk)AwX#Zf!LkbET8n~Wg&R+Lhex3|I%%Za>)()j+B2l zpsX7*NXP67K}3U~+HcgmZh<%sC0-apYS~xV))4aVbIA2uH~A9EZ^e+c{w&K7hS&r+ zA?E$)PA~kihD~OxrRq-14H_YYawLPW{RD`{0G0;lHi*o~rWV^z`)*2w%iDFeAJT1Q z=FOGRRvKuFwwO%f&P4`oHC-(hmVk`eWWwU?ot>TyV9P0~-57G<{+wq}5mr`n*FQtS z$oj0rQLdM$!g~87JR}>n&!PeXRZ>;ZNd*-*pq(7XE=M}KRGIssSZ8GtMTA+6pnDFA zNhJpY!G($@qE7t34>a)Nj-u%$uTb@QlWtA?cp`ecF~GA#ucxJX?x<`Ut&T^zkX4(A0{^Oq1A~s<D+Dw%j_ZF1C?^(Q=UVUt5pqDDR(@)kj17<&}jwZ?&dv0r3;$Peu9#R-zx>NQdxB z6HQB!n4@DOrK=1Z?N$7RPuq`sNF*z$J|IuYi`WPbZ!(fB)9Eeog|1?x>YhxuAZy z{?(qH&F_6X319{LRBcIW7SzxsRoKN;j+%Ok#C%r2sS{jjFj!En92g){{f5ILFr!@{Yra<&8b%bB>QdrP*Ymy@1=fAL!@f;&GtE#3Za zE?dPDX^d}EH`|mDDps=^K##OMhHLc*SA`3$c3YWJv#(k?6EC~oBEGlZ>xo~<0yw&Q zi6`Utn%5I{j*-r~+I4ilIdX{$-BMq+wUKFg6yW`vi{bov0uYvXZ@05n&LOW2*m7Fn z*goW=$F8Jq(t_A9!Ad~}JJy@~L<#T-v2oCcJ?^JBW7vYi3695zxg=H6ti^(7>Jl|E zMklW86)*7#)X{{m-GC>iZG6PS(w#}EwBHmtr50c33|}~cv&irCt}oB^{ncN|!0f$| z5x2Ke%-LSgP-|^FbKFBp2PJ&vP>f zYJP9cV;n29j-f(xfak7#i=Ft{BHU&d4x5YsXKj-9`Tq_B^eJuNUKo-g%1Lt%-IQ|- zL+$gT&MC=}?@>5$chPEMs@t!YCJY#a}Y>~jjrLzDw zKz=>0FefJdx@v7~=SYAx)|67@p~A<~V`k*IALd$NEG@pf%9g-t+ma|u$Hh&y{KN(T zO$fgd44jubcd0eTv&X*Yo$#q_<ZOx432Y)Ge8t_k0!xe_I#xx_dmCYdr>a# zJaSgy2Z;N1f8?^8Ax3{aT;Y&oZ1N`)u{)_EK}^6iWjwA${<`^O4J@*Vy)&s1Hfw6+WW?Cg27_9sRe-9mCQ`mE*Ez*!U^M z!{U%ervCZdQF3K&cemqFh3p9FqgUfPC$#UtG%4AyM6OH8Sf=mqa<&>)#+`uAyN{Wf z+}ytg-;n>C3kCky7o>I;4D1jT=J?EiCLVE@1M1vM=|4Y?%LX3L^S8LB4qp(oBn z5~NnWx6#M9vyj;G$Mz?LL41$@$H|@5&cB4g)%BUX()f|w=j7PE zhSbl=lPb!eYvtEdO7xG&w^#3XX{UI5{vq;+MCphD1s!U4AK%_pR=OhrcV0FJD}t4r zL>QedesumEV2?{|vz}@!-lJOHW7MxmDzCwc2mf8<$U9;HGNN5kPG{(gteiO5otmCt%Ulos9h;n{u*g^PJVJBk zdp+ZG+$_8appy-+ebWmV?|C;%>}vKt=%l|q@yfM{CmK@Qv=@T{?kvTJ-I}`BR^W~af?J4;=|fe;ovsF1 z#)h+~5cBzk=QQg}QPXLBzxd(|L4jo9Zerc2IJrU>d|+n&&F1z|LFOAkU}s|qd%+6C z-F2Pcts>k)PG-`$XljVL#-`JEz4`)izCb9gZ7{}!!Fu5)C8V}TlQUZS(d)T|obRVp zpi)_NXM>(AX^A)p;z`@RxD9-%-prM%XdZs60>8jcwK0tU5@0Z^r7~NlYQSw)2;!KN zEm+4D79C3AjR><%PYOq616qKctUrK6S8?}V?=vvRq<2oqef7oo`5ONN7()XINF4Dn zL1i*t0FO6t-{&C$;%+2I9O_sg$I9Tl33p$nId|PV;4ohU#P~>To%OJjA{@N;d{c5p zB#irkWw!|96cE)@V0?rPkZ#)m(PJnt(v0*=S1E~$K=C0(x~zi!GTya89?7EGPwB{OrRkZIxi$)kQ;=^bzsi$7s|XT zzN`re>TDNec%*<>W>0Nv8y}o0m5j74L*m%?Z6-lAqg93FWC78{YF`>&gUy8*Iz&cMWifCQz+;$cvOl6go67!HfwwQ=%XogeimI(P2*_y5kr|w+rcPe)fmEY>mdf zA9*?$s}Db^L%`Vl7B$?M-c1|4s=d`#SWMXRM^}o{-?o4gTThEvEfDZ@f!<8dly)r9 zBD9PnZL*}u#mia_;=3GUB+bL&J~h(Hzwsm!JKVdlms>p9R6ET6qV)}^ z#)_IH?}P68u3f35jTOw5wKBtaBRizSbyG|TS5|k8zo(mn@%b`lSKa2iApzUq0O_@M5D%Zd#Rpv{7@RoHKc4%eG*3Y{LYKF5y}amkZIc z{GJ{9$b5CB(Vqc)cfRXmyDFJzUzAJE)4CY(Ce!a6LR+R?2zyODGS%BDQ`59AFRVGN zMm>FpwnN#nsq(Sqr(aHSngWvQ#?0|(=f+&EJ+_alMd~M`mTSSYTua*dXEBJ_M?SH< z3}}4{+HyhqZ!+S7n;)|>F4<)K8){{&85jiex}Ac}*Xb|ft~J3yL{8qwfVxBU(Mj~< zalOLT8y(pwKUyPTTk z!ElAE}>R;PTFzG{MDW8^@No?z!+%@`N_f zKR~~Zgg(XBh{GWJShMefi9uTjM>rKa>XZLSt*pA>SqPO%3<;p6V+(|c=f zwCy>mlSw!$8mUL$UiaRyT!_FK@u^Wi1t@Z0H0P$*T6x#H=69Ksy)JM157tIr21h-fHWCP~#y0M32A*aM#x5PDix_X--FfyS%GXaIVO~zf%k;Ny# zhdM)Qsi{xJxaupqRPupzPCc`D6LVYl&o8iZu-hxM@cHakV;@zfz}q&~5&D`*G|AQ8 zSZaFFswhBT4s7Ri*B4oPrnnu*Z;1!hd<-Musx3^CsTX7O)W4kEJ--*VYcq0yOEl=b zr&PXp^%d=4uKgzl7z(regT%4~nySiKdkNpov!SjIaC2l`iF1k6h^lWBEjZv>GMUwA zr_(WLSaDBP#}AbgDt9!r4W7^@&X|8S)*Cc8ZmiAqEO~uer^FGpMI$>abns>J72eN? zx7-}Sr|2Ah>WX#0+qRHfk{E&$lR8(SL9yzUN{3Dvgkn{3g!*#$|2%KR8w7m6e4`$H zwER~NALJhp-0f*Z!6yI$T2=o40D|2AHz26zt5v}!=X~TNd_}B5(Ulscxa4kD$aD!-P!hvJi0FKPjO+$OW@Y-C(q| zxG%;1J8Bk4(5(8hoHebFDVR_rQ(7T(D6 zMpDQ0-ffy6hx_9jz~DfT;(wAxwr}v>ItSox(v%PtIZYBhYtVDn@Nn$h?|E4BF3BZ1 zKJIs`X{99JF2be9b0ODNJm>Z;8S&An74VnZvTaE?4xAO$ONDIi;3fADKA73^S~8@M z55a(lfAq4unX(w}Cd3+oseiTc!MpbeZXxHFLv9~JvRImX{nn5ah+dyt-kXB>tPua@t#qHZ^VA{)lwe zmyv9VHCkVNY`-8AV6|T>EK?s@sWF6p#B~QlLnwySPgR6i&zJ0zq^-kacb|=b;aaXt zd*wV$ajj!{JZoqTrAV1(=!3R?uT4@d?y%8xQE%ec4=jGM;aq{H7`sEvIM;5ECk-(b zMNuy2T#w5pQvM?GeX*7lw&+u2?IpsmhiRE$G*o_fIkzFdDK?{5S$qQiY|lc?XQbau zJ>-0ulJrY<-qjT6!$w)W=mdUy=m6gUU!#2faV2y22O<-P2F|!B@0h;5M zWJ5^LL-E}RI9E>u`uz#6-tjB`K>OI|iXp2!xgO}FFp|xz4c^@AATl9@`fJqEP|7IF ziSSo?Z3TT@GeAkqH*p8j44}l1#&(c))lfmLa^I&$GCMR=nLbY!Y_5Vs{l_c%RiMui z%MMFxQ@qG;NVE*6XHS3>(A=Za>z1yOUP)DXu7; zr$aKg(xvyh(a@r_$9$_896~l1z7 zPTDcPK_py8h`CxI?y8g*Qc8S3fUeChx7H?nZgJ}o9-a2S6J8fslh=y#iiB#>03G3cM zBSNzRR+7qa7;#6M;u+<SCOuvwO6=jrRxooqgWtj0YWwK%p{yj? zQdzs2FrV{C=0${q^FoGWeQXJ}1`n8=aRjPQ<#-#HL>1g+5~ioT5rrH1;)$-Hw4TE1 z8Q40pxnT#otk(^3tKreYDGQ0=Ses=DgQ(~SksyLsjFSWxu zPFrr3Q%2^uC~nAGZJ2&uou0-$|I28Wwl$K#mPyV|ML$pSEVJ;C#nNK1oYH0mtmu(~ zXhQ}7$*Ew;PbX7TgH}@H=KEVk1VT27pgxK$>$>l%lpUOJm6D?M31+qmoJ9r#kaIC; zm$6;TTo+0jX|IT(;J!iAK+S{6T!5u7Z2#bpbxBo;>qK>IIdLe@tk z2yeG|Ii8Wz*k+K%_$9l(?z<$kPjF=!?DUre(kXi5!g$B=92}=*A9CpiA1+CryCMbp@ zxg_qDD(>Q`Ur4J;EGv$Mb>&l?pUswt4iM1t1d}VXLh6DYZZ?XAvlv#+pnV_N^LKkf zg``Q(hh_6wJ)h9@@vCb#dAFYMbYo%8NmVjzQy3bw9qqIWM@AywD@cOLIZj6flFA6& z6;9_Stdw_#+QN+Yn}@1QGFRQL;} zYKI3tUC|VyV$)1&<26peZcgZBbx|gxrPp zs5~pxpJ%bD&xOh!E1S_!G5^e3uV#C4$Z41_G#O26Wm5M_Ei#56Wk!D z#uw};li9w+8;bf*n`20swNNa!i9rq5H0)!Y5k6e|#q*vAH3?FiS07axHpHeTRilMP zfh$fIRSy|oFh!b_$Wp^fh+`5nwnBn4VyFHRj4v(j;zBtIy+;+(OBZ8=g{s*OGgg!j zpAQ*)%s=MKB2e_!bx8U6%U3!K_Q}4Waq(Jl9=FWb$}pN)h;3y`oD|cIoUVuX3IS-h zio_#HSG6*|$9q}(42hfs$#gT@#DSIfNPCw!1+>v znlp!7J|;U4t64yq0LpI|5wfkZH=Ua|4zD{2;a><;^Y-! z{(5Sh2*{W^3kayW-Em&lw#mJidV5rq*CDbod5MnqZnR_Bf!$`v<+ zhIOI$Oio$SaB`WKFUyX{>8G6|)_?(Mf(%&1p8u|KVgB{cKts~E&K!1>X+h^1U?jt1 zRB&KZY%lRHfEzeTHnchHIBYqGugA=QZ)FDC$E+%`>{Lzm0az0Un#crii3=_-@vR5; zCSy)u&4HU^(2O#@yxB#;b9z&hq(JR;Y73MgbxC+_h0=`$n_mi^8QCL86fLeJB|`n_ z?us3C8DESzt5MJga|LY#_7Ce%}d}p2`s~8PS0+(wdo0@ec!ffQEMT`O(&8c8VT!^8L`b}5<%~2uI0G%?v%eiEP zHWo56L7wrT`?uT=50aP?=K*|qzsG#QT5*VBE=e!VV@g@0B!kXB3|!z2pNFTkyT{V`Sk-lKZ9xgQD>6}j}>+3FQQEL zqJ6m-1sP@8D@n7ytlmn_sef|6WY6a?JfTK}$}kJQ(OR z8?-^nreKs%li2s3y90@FoIs@od2GYirgbUo;+rYLc&+3fQv6WhIJ+n>q?10qu;xNS zZ}FJkG~c#v6X|hK0Dh@cq7qD9FQh49i8>GIOCOSRhLu>;1g zq?F%_xqP6+2>i|`Ebm$xWr|W`%j?LT5&DKpHrC2o&ad)z=e6g-i5RQ9Qd|$g0QMc* z?I15VAj8OL2zrJkfVCTEm zpv2w+rE+IlTequ6PeBE%tQgtWmIfqTiJdwaQP@8}k=v2S06f;UvI14sf3zir<8()x zmn*r!FK4Aqe4!&&;8rIUYa7$OMgjUWhqcE812|Wl{fUVDEm|8$ZEvjUyht?0KJR4*bo4x+$^iI@a(JP-W!(b zEWUKpd)c)d2d+EsXtuH46kq|zS}D2ns98!*;zf8W5$pb9+bO`a>Yr@ z4B>D@sSY@}78)H12J&GmEWbbYk7)J&-e2~b^`>O=r|)0gl#S60UO3|Q_?)QWyXU;h zKg1xx!yY9vK1A)q#{AQHp*k;^awI3k-kw4`J61TVhxu7|Wr#i4?+UH55%@8(Zsv+# z5OJ~bk4}_;`YDP&+?d3D8|H6~3{4_`g*U%A#W#4xH19R-fu8_h9yLY8ZT)mij4_<^V{+wX67Z_SKz9{%30J5jzhY`gHpp5iYZSg( zQM^*Lo{pwXU8Kq4rQ>Okb^9B_%s;!zbln+d6Va_Ya0?;0DxOtG5?1JCsXrLqWyd81 zQQ(!AFG@!79pt2Z@3GOdYRAT-f~WM7O;1Ie%(IWSov|t?!!-`#-iooteqW}=5&rU2 z0NytNUf3>>e(*(dByx>Br+rK2A9$UU50+Mbqkt#FFm(kBq;wy)>=Hkoe9COo02|hVOO5XLERQUVnL1z3jtPx=9yJxa3S4|$7geP7 z_@ev$+Au3IYFdE42@hP&Z9}Kq!wHVqi>n*17I7rfO!Tt>aX1 zw-+HjRi^j>ZN`3$sPi8FqY&m}!O$yhl1JEpAyNf0LDKGDyh`()r_XFkzUJNSHHL}F z^~{fde%n`q$8(!thiQ@rtQkd_bPRl|bQu0=FEZfr+gsxtur(Y39Cs+=hwZMIY@SLq&h}<99KFwM?uj@o@>%f2UwkYW zlM(y!P%V957`TA18*pDEc(LWfghq3lR^&yS^f4+(2(HSw`z)?SGCW zDH|Cedi-;9%W^N5>BuX2y3(Z2ve#~MCi73VtHuvw8Znc)XL8~crFOvpBEHCM-cRUb z|7_``ccU&gM!B_gqc6_T04}E#ep=#(Tc<=ju6yBxyAQo&U`8k3&i*ydo^?KBgDIPT z4K_v6#_d&)yrb(Pme5SDq2uI7n=JfLBk_gZM}DJ!cjEm+uQjlEbmI*4e2IO-ca!IO zDGWzbRE$o4!oljF2R#tujfgOU)|oM*Nc`l25&3 zx>K9lq(W&r`Jl@epSW~~8rD;O(c2SyF#-|o=J_5@ELJ;$y-w-{dEKt`XtyJl_u>(` zk=NwkrdW0^3GeP7YSe*Mkw@Y4TV-z%KxGx}lJrpjPaOTM`D@@1N{GR$;^}ni&mNJ2cGv4J;GM#h*$*2~@9sOr@6mN9l3TF5r=y+2204_v8*hms zgJ)Tv(4dBw>i_1RI|4+z3nmDXDqxOk;7tb2-BPn`)KY_hJB z&UN|G)}(?Mf%w?WKvKr4|3%t4bPEEsM|iGn+qP}n_FUVxZQHhO+qP{xlU1_#R>>de zO`p@Kdh01^R)}x18;u?^+KGrxIN-dl~?G&zKsf-*OI2lC%Q(OsS#ti#1 zCWBE7$FF>u-3UFtW|KT=x+f@>YuhHPpDE-Mjkdz&sHZ|`1xHZUvFBphOEwwv;-ypX zS^f+@7+S`F+@Z~`4MF{YcrDNmk1qMA{j%!bBDG^E0A}7mNq5NdMc+*RT=Ny}^r6yk z#WgSkMJ4F{X^5SpZ7F940GONd-V!iU;@=+)a5&VW|ZBiJ$}`U|GG_fO1Cs{ zmw*=~_8mCUs2A)aGi^H`1*O;CDe20h4xgVyRE3p>7sW^)_?W>45B1p}Yiod~8#V$) z0>)11V6@Dhj$XPribx*WAyOVJ1Q^U{Adja?ZYg|Y=-q*!F|uhQfB7Z&->rmwb0yvQ zmR9^8viu@bclwr39h9lI})Hs*vRmjW+Fg4$eq$F>%qQ-=>&R9^gav@wNo>bmPzWELrY7FjRXtk{F35>n4OgK4cb z6~*j4L^bWXofaS>I03eJRN220zE=Iy3J^)dj+&-#vu<5=wPu=3buHf)4n>%3s4}i{ zTP6Kww@J!M=zMKYJ{-Q1fmP+`RY$%0{Clv~i0Jh;4SFm-9qEibY{I&Mcmi}yJL=l# zR?$+I&zKoUc58z(nqr>v#U70p5pcrR1h#=Mea|!>D}8_MYeDb|QnOy0`PU&|6CKkD ztg=Q@h%8!ANmFTihj>`HaG#;gsk=59HPfmupBz-d7W22ebBM$I(R z!}nWWEN(I*`Zw=v$@z07R|0D#7BP?WHgv?XO8GLioGkry{tf~91wcFEC})wGwUmRh zL~8B|wp!Q$Y~48F;d2Xm{CULteZl+v)cfW7O*`iMz5icR%KvRbqjqW{J0bk}qe=UJ zH=$XX{-X)4X<6YsY5(cl@5oL>|Lqe+itc3y*w2^1gOM+LWt#Du;Jj`qiD)C`!Wa`L(3>UH%B%^w|}} zng6(W5x7$R>M>qT0!t zl4?~?yt`^j&GBM&-_!m#7l20Ka7M_i6+!F};q-dwj?8uV(&Q?r_V6(11m|9TRSGae zWUi|{@m#5u*#xiAeEix}Q?sho=kK_O-I_s%;>m|jt6H?Hp3w7tH91hO!-H8rJHsz~<jI>P=7@C(1ic~?@)zXYXM-VZ)FX~;sKAe zhuE}wW#wfu_Xf5-Y)9z zEUE3@*I;K6f%!YgAF5ue<*Ig-Kf zoZliKWh;_q_PQ1VyEjC+8is-tgqS|vQ*a(40h0wbZPdzfh)0GC-@z%a97X_AlfDwS z6AiZd@;qk@S6y>Uy!0n}B~1#o!2ru)vG7DP$vDS*L;g0}oia8CtM0R~DrdgszomCQ ztbj=km_eGbMLLU~N6SJqm&fn08uGIdH=(Uy-Agzp4Vp5x0Gl|9OoJSv(LTTnp}_{7 zvGMhYhyZVBW_06Izf-{bw40-Al&}RJ6Upx^RoYTl6H9We%rE+j|GVB~{zWkEr)~f&I z@DcC~KRWMI=|Ztn6^0^&aC%2U1PM{1eI46}p7r}EcR^I_9wE)1>NA=W8u6!DN!$PJ z%eX{lRH=G|hLJ`NGaCQGSdLZ6#^UvQC#n&&qLfe#LYrZM57fM~62NJ;u8YA{|FANA z=;I(_RS(pDYH7?khnsDFv6grf-JfxAKhKL#Qj}GbWgP;?_J&R2Uu zS#Yxg{tLI^IF;gUMK@eAC?~E`xB4KMk^`@5R5OD+|^(-TWwq&!jB#%!^`$)oj~k{q|?~*O5iG22f<{o=yWnp zjd7ZD?^ztDwPTc;j26RVV1SA{5?DvcTTYXM0cPp>+Z@SMH!5qxZ$yiPRX~-sh;L0` zE?5tZVxdn6ngQ5pKw`5Pn|(OyVf3R$KBe~6o+zl>+0@t)ZkI@N-ke|7)c`qU@*G%2 zA0OkPex}M|c0BktTAS4v7HMa*LW5m!V{WCsYFOF{#sQm1h#TqFMic?2GRC!6w^l@H z0&Y(=s)eBg5~77KhaguqyCi*?JpL{OLeVy4(}z^Fk1~U(Cd0%G;W6S<_1BLYMWTpG zXXfwDEn|rXJ-^_-!-9FeK&Hh5hCTDg9Zqd}@L(;;(inPsJmMOtxqOQuS>=b*-uxQG z`L%9&uA!l-IonyRz6nIOjny!%#LQ=q0!_=Gb$ymFEKQz?0DLr~6bM#)>a*$7n!o#? zjtmd#9_V5IDEFKLXhQ+al%I{0j5T+`XsvzQqPAubXNE1PDW&E5 z5vy)Gdxe1P5d@Hcvq@-dt5xtjheaZ>i0$)+JQ5G3Cx`!9f!R=RhL-yjHRW%RuHDxO z%59@TA39~nEZBs&&5U7<5<(A90I%Q>0jv3a%Ep5wBzOV6(xMsb7i{1P4CPETpvJ|7 zmX2BRv~`jsdEiKatPW(IP(HODD20rp&c-l5v%1D1=JR+Sx;Q8da~^b19hVLBvxIaOvYu?1^NiVP$md)U@!@$SSS@@T*eHC5OLP)iiY*{8?C=*VfjnS zw#Al5OBfbxqZcIy9Hwe3jW4I+N=r_RFt2MeYM8B~fR)pRgwaL=uZcIi6_psS#)YpMXoOBUVsCR)Jm-X*5~d6t&IT>@Ui;n-w#bc&d4X ziWb6qr)lnJt;_ePWj?RoW|qXzJX}DtPA)RAESbqrQYEQB>Y7}_@|VFbC6==ztLpe5 zB)+Pc3W#_Zy{e^a-Lr;*)0$v>H^T)axhX)Rc`>J-g;emUbtL|?SiS()kqL!Qd>XJv zmH|?thKb!kg-obEB5;joG~=UwNXZ$l_8M|oNF3r?70%mVCeAJo_%6V*Y+muj32x9` zy^RxSkxT5(lpD*Kl5HH0ad5?0xW!iMU9V9m3UT1%Qaa>Y_)ZOMm~6$r`*t!C7!#Xm z3p~8NR=L&9%_2YnJ&ISQv(Y z2y2xdTf(3Mr&$Wi*G5sD*mEzXN8T=Ykz!%29c zEyN=U1MQTZD^@?Na1|RUNL9Scm5-{-Y;M6L+>9N3lMl%{Y2_8-YQ8mjx{a`>&H5YL zah5*-4Mx0-fDY2p8R}>BH8utEm?UaY*;=D=S4&D%m>bI`kM4`-#3UR9XgH)HXOLV2 zaAo42-9=prHF_sn6x|#ikJTCO>BrdVj<@KjgcMvICXx1I6C;4}$*At>OngP3XoWv6 zIN!&HsHb}jnLJ2(gb=+7GpS8tJk7O?8fW&`DE4z0@JfjItNI`%-N7)5>fRMlGLt3W*tRR>H8^5NW>l7G?30iddmn|d281&W-f|GJFwQrXT2ipn?`(&!e>j@% zAx3aim&XDs*Lvnl90yj^1ZOrU;@TLRIXb@pxd5XTCKI0%(;}9uYulY-x;1!!0s`X) z*IK(>p5GouBAV74S0A(?qoil2%rbFHJeV#gXEboyCtqR0PEcp7$`D7Wr{qmBo}<4L z2ykM&{-Ge%;FLUMP1z4A5xmL`0m7@-aCBZO=1ixN@ce9q&>M0vjc`D>v9t5Kl;5)S z-x454x99hNqqZU~=qrtaBS+K#X`1oZNH5=Cn7LA`W)cua@aAJakCZePzPRjbXr>mi zW>U+q4@(Fc+PxIv@H8IDxy5>9oC-eC7wS(~UR*FC2mdvU6DnUUT9NLe%` zxFPU-G>awQ46FXjS36o{$CcqRv=UCPe?eio2Zpt3n?Qi|-c0_Xlr5`fzqMjOLoLej zoB1m)N7<2LS@B0tv*A0-trQ?V;v1T7ye{?~SJ7Q@gk@IG5pO!(;{Z1mUDm?PT-^Wp=)dS2q291X; z^fw$D^?E~Repl&%ZFi(o{9&otck7n9C%T%)rSV})5eEhftIGI$F_|aIa9ykT<8#o7 zrR~D>>p_=|Mnd&Wbc1iQhO6w%SlxZ@H7c`okv?aC%s2jwt@Zp9EykGr;4fn;cl+ci zcfI$5azdu9=f=WJXi0g<(vU;*@xHqtS1q(=g4(McVp;^*v5cW~#XF-(fAg}S9r6mE zNyc&TCJIvbsh8Bu83fBai!X?oJuK8=5Y)SCCCv7aLNZ$6QcYA!mkB_bpsXh~$^{zr zv|5(*()bF{$rR-R@gGXDh|H@kUJe}oPG>z9n7XpArBNJvnQ{r zQ+;buU%r#jhsM@}YfKr0=?Y~6Kqpu$d|WALEJT3_d12b z2e1xvX2;3BEySgJYrJZT8#-mxYy(2Iqs{%Vb^oDp3;;5M4BLMkpC@(L*A zWH~zJek>Qd`pPV(HLvScx$gf_XUhv@;oXVg)E^Sk=Vt7)e%= zn@T-{wv-(lc~dWO+hVyN!oaLOZ3g1^Wn?Zq5bpowCSOqO#7w11&lnzN-s&hs+SLe* zbVm7XL*Gqu#Q>7#5QQ1k&`Xb(8Q7W~{yvSi^Y9j|w+pQ&rHg)lk2xjjW0ru#P#REM z-w%v$PDPhfXi>^p8rn*-e#Ipc!ip1f`H&7i?6_L>dj}^H$6v}SRqB&Qrtu-;wfGD! zueDe~eCLIuKOhRL>3rhwG3e?c{7sxqob=Zqy^a%O9w&G2x@OlxFpRp1YIH#sH(NaKuJE(8kq;PMq<0jv!HQgmnWRa_vtsbC)o z+OlcoUj^sk#c{8_6#LhHY!Hg}SQ6kA{~y|R6t(@C~-Asc`BONtjW9j zfEt8SKbpn-FPk=K{Na=DJEb8**s)(scztc~!)X^xZ&u|^BvUPH-UzJVSextp!J9qc zRzGHMmN0uPCa`UUU3H}laA5(JcvC#dV;S-V9#te6K2VSm!;bO5#>n~sVQT%@&D8r~ zI5~~c=g6a;1;8UYAA{XcoQ|WrJ%j64=T;&4ytFL?6_0VU24D#c{HM8Pr?ypt{Q}G zdK(w|HKINw+EhfPoX8;8R<3Dq9*uLIm_k8;`m6)dN$sm3IcHNbuO*tX6T~cKP8Jrh zkk703Mi_?SDO5@JOf2ZBD$CV~WUgiG_{d8+WEHEC$xw_CI+p~B9n|bKv)gW0hitff z-;*j%eWPO-!OSPRe#^9kwVNt0b@MbZLsvdfX}_7mye~C70>_k1dH9%i60-%>t9iH@ z(F?CG{Jj-a?jo8O${GD!9Y4qnUJNM`F zC*bX#0SfPUY4VJxp;Cn3E)PSmt_y5>yn_VSxF_>qh_aF}cIN;I{2z~~gc^r=y_$#Y zxYQi{a@s{rr-eZ$71u?7DrGI20EKd*_NI2b;q9Fgoso|kkqu^+5~cR@argHtw)esD zq4)dV_kWV6K>xHIkfpC5O7uT}UIhOi+78=)(sqo!Bx>+h3B#7JKXW-o2EjgcSz_hkHNic26JT$W^UrEA;QvZxrI~^N7-;KroX+eC&1b9w= z4W=Q!Ael+j8~*gnWZTzJZP45RXi^`&>7>;G2mbEay4cz@rMNE~_tAOj^d?Di!GEi2 z*o`yjVf*p>M8I*p*e5{R19`fGC0ZP0!gJyrFA@HP%$Fb~JKisL=zDa**}99PfjB-{ zBuHFXkx>v(x;?(Ryg1K>J6;SBBL8Z^fiiF#Q}J;}(k-PHX-H@W9uZ{oU-G01&f2M6i?tw+YkmW(ZbbCPc>3*(D9=QYM@rp?vsRB&l z@osHIR+1f5%Pem0DLs_|+vHvfmkaf}n6!C_6B^ZfVrW-`ilt#1W)n+yEBKT>$BZ{R zX!v@8w;;JmQB2|gknpmFa1w;7_QtcUbv@LW@4W}+CsJI>N1@$Qi(sQEP}q5`NyID3 z$vig*UZdZOcX;B~lC<0@q^r%(gP%8e&OWOGpTbv;*+zPT{zgdFtmtDDDQYXpriIEd z7ck#TQOn^0a>|0b>ABQCR|nXfN*#43U@#=-B80rr&9CNeDJ~u8fyWNYfNk0BFQe-I zgw|jc=O2x}eaF(d<^2W^ZgQgi5-8ibHn`8%5em9?SgqHy+ePXAWU8z8T+Ei;FgfMp zdbV2(z5T&TDZTJ+5*+?BkdqB&``Z4Yp3Ex!afwh|ip*e4s0`?Ec7s8KI1P^+k+$$V zTVAqt9~2yw$BNu?*{HN{t^*3tg~=f3kfZCNULFb^{TtNUpCk1N?>g}Cw0*E-kIBca zN~g>~{8e2#zf)_PDNPsCbVb4`=M>hI#ii62!{|INw44ywP~B)_l*^JahpG)T1MEf?R!5Ema{#v&TZ)ZwM%wP zPDS4NoS=5pW`u)8Ctihes&C;m0mw*T@fU^+XzHu*J{_$B>b_VW$yO!TyYAU*Ed8*C zdmyP-HkVFln+~a-z@6S4v&(7Nx1*6lbjz6uarE~t)f0$LZ#&T(Kc<-yEhrEMWF%c6 ze!d>i#q4teQZ-{#AGZz>ISE0Rr0S=v09 zaIf5nqKjv~oc_;&?;ti>4 z1Hl}!*hl2F_t_1feO6&ZI9ECMg>B5E_MWLS@eyFDEim1F`Fj%jUhj+jl=bP2%4k4u2@9hH z!GH}&CjW=Qeb%t&rW#Kld?xsK{bRWeVYv;lwOiQ|NXGI6syPjXM1f^SqYg$7BkE!8 ziu1EwuRVqSo?ianBWxC{WD%*ZX+CAbDPag6a&E>#rrfc_@8Vh)C9$s#s%yks6dKn?*n&z~t?s1Z zAU`E+RK}s-O~{DjiOI*)>&0a`kbt4@UG6114Jz=UsK4Dr;rO@Yq9%&a6^#8k_fAA$ z?BZBm)Hv)5wMF12TST1rA-M#{vCz~Cz_43|jU^++h{>P<%l-6x?h53wmpJvb3Aejp zsZmP1*A1s(O?8p|A7bMaO9g4c2NQFGZ>aT=9IhEKUwo8>>$nwt@HTt_^f0HH#QiEaQCUhJV1%>(H}$d53F$}3{9LDB}%X8vMvERyB ztHjf!o#}&UVlx{X;!ivibSBmL63h4!Zggha@yGNJ^zBJvN!^2bNHcivUkkPKbU=b^ z&Xu2PQX4aamUqHuch}*hN1>--mpJZ;2L|9;t-k!f*BX`2Dtc* z6r8#yl^-LI1s7^QGf;O>_mNzi>jWc5Wkn8IlQ+_?gkBW7zP2UXX`rZqNCMqJ1Ms61 z%NjV4kg8}fys{^Tk@u8&fPsP1t5GuWcwthZSA!2GXEM=Zn~LJbZFhqaVRuF9=^wT6 zp3}cl?6b&zP(^FoI(iQ-(t;yubU0Tbmot{og2%?m_LI<70VI-WKr8qWLH%*3yH)mp zlhi~cM6qJH3kN|6ps7K^NEH$G^Fz+qzFs% z-2=G{obajnCh-~FtCla?G-|OvfD^3)#NAyWRdgFR7dLHF0G;<}2yhl^MQ<@bd8+>Q zW<%eF4K~^|M)u24;7l!h=#WwHQre&^kGb})mLQB01uoybX+6&n&RJD#lU&@8gizlF z0J}Tjv8w9rL2(<0{r^K65L zbclMhW#*pDk+E|Q)JJ#t6C5`B#T{;=#|?Rv$h~sAie`-s(y^Ha8b_)7P)6VR!Ltt`1rDK(zj4A8nW9KALg6{W5x?Un8U>r0_WjEfXG5!A`rf6TTp7MoKZ^M5Cx*EDcF8 z&O>RZ|K#^E`9e%V?0GC=f)yRsV{WJ}KMo?-b=r|N83=2Mf`fm6;vL|`?5dKk{K(;Z z3v;c8S55OYKcS}J89Lc#2>~43pxbC&x7;#e*>PmvPB=yG4%oW?FGsGq80=oKMGpi6k_7)TcgFsN36bnHA#mymuJ16 zSq&bVbO}PqnEYnW0!s2>&AbvV8G;oXuz<)J+)(Bj{ZTF=9k5GaJc@ni&E$X(K(c2& zwALsX0fbErw;egn!S-M=)PyBcpGrI&Nx`?{E##EpTn}~ zk~HDMh$}P`Rv7};l;>n3swkwI{KMuWAL^7xhYORWK#mfMT~@?I$!tB1e;|S|Ve%@L zDZgNxC$cXp8I&3IninqBX@Ni=%;Y=Q6PgjT?~ao13L4hEM08!t4*NG>AC0(QAMEpJ zGFVl@zt=c5mq#71mz~OIPPD1Kq94@^_iba^)U8;uHW*h?R-9atSm2`TikdlZ{+lE; z!{n4%3ShwY)1L^_L*ZDWgIal>D~oUn>B(nVt+au$8-x=4*Vh4)5J*Ew=jD|Tv_s4p z>NT|8*NLfu?_&L8Tv|=jwfJNmUBbLWXjnE+k^;S#PgnWev9vIRK0U)$a$>hU8npSO z&~Wgwa)e1nD8MR7P%U(vna`k*^~i63mYlSu@$eS=n0iFWLj;1Mn?~{$JQo4t`UiSlP$7gF?9uQ$+_-1 zg+bkz{;DDYR{Hx!$bx=;sf@ol<^h=fUOy-FPZckvq`4K;#?;JJCX?25Ec_7sc)T0J zI>^JeTK6ly*>XpHGOhn%9;BfbKZ~$IND5h0*nU@+aW&D(yl$39m5>(fh$^7w;ThYq zOp>R1%h8V5B&x)~I*&#b9%0j!TnDldxs8}#B6r0N`%#YQN+q#0K34h3stia=`G`RARi99(6`p<)B z3rb7hWQ4k#5?ZYHiQD6`_6a>YdgZO7HxJVEA=vUgSfjx$>)?xW5RN@ZX}z zOc^+0oLwjY1Q$b;5}wnMAMX_jz`O9X`^djilIu@Q()Cdez}MuRxfe})ndmZKQ)@uW z^yE%LJl{{*t-oQETkl!Vg)h3ANiK5Y(-pUg2{_;iwB>igHydnt# zA9o`F1*)^+J-Ov?`_qe%D0gj$+cS zmH)IENHN)ve149~gZnF#>h&Ly#pB|&a`F*U7sJjQujR%@6u2CWkG#N9Ig=5rr~3fW zALFhc(I{r{dm4_Mnu2Ve$7)-cIiY4SAek0CJ)r}G*-L?n`4Y&2S#{#Nln0FjnNQ{t zQJQF)*&R!x&A%(}ZLf)M~ER9c%*$m2cCN(7P^az#G?2PnzOGBJw zm^`(%1W}JJS;#fJyN=9-_K&-TyY;!qLxb{K^zZd*>Kdj-qqZ-D1F+9iH@A@y=m@P{ z+0qwyL?*T z$=Kw|E*P4Xf(?+jT|Ai^0~Yumm7|du1;2R;i0&z6RVu5Vs#I#xCOBw5Dc2FcXx0Ws zvCX{E{Hv%lCrec%l~*cx5XYh)GwWlQw~#_p*ZwkY2R^pbV;Fh@TxLcRIr777!nNRN z>#uYp6v&622Z^(>+@3f{8e}yvCl6QrjYiUb`Fa=aVa>K2^XME6f8oBnSx#kRAmBW| z(F0yP4iR}qUfIcEo2%dDoxv0ggh)e!CG!zSa>6k~sBB44dG40R{g&Be|5@?$ai zqOkeCg0xpzoo0>G>p;HX4XX8=;=P^NMc92+dUc@+uLuh50kv6f@H)r@M3Qt{P_M!=S4MiHi`%eJH6K}};T)#^`>d5$u2_T-?(Stc z%mc`+p0;qH+O0iOAXs?0V5RB=lshO|@tM8Fe&aY%HKzS~ue6=Z=Hk`;bjU{UyiC^% zxxt>o3$g^7gqKkG)K1KK!W8>82&3b9D!hkUhe#|J0U}vlR2-&*v#qIC$gQZtpTH92 z^?&=d_{eWQ?UdICe*+BzDvmZ;*1LZ0ROQ_C6OeT(d&qNzGkK+5Hsom)qba?+F!dA8 zYw9dmD27RoJ_U$Mr%S?5MMWFvlbM2{d`UA64IXROG#jQ01h6CrSxNY9t8;|zX&T&X z*UaTO>6|RR+${VYx92v`1_-$HuPQLi{6wZZeuE$c;T-#Ry*YsNT1Gs4_?ARh`E%V5 zaX(w|-OV)n^EKJK*2lk2;>;xJrkq#*?&XuVM7^$_24_Z9E7=ok>|BFgr%DlB?Y^{b zS#G45K6-}br+VyiTPzdmo$h?FMPx%E_ZtqLN{MJuK3ow7q$f?LlWJgZ(UXScnJ%-J zNT5<~U17hQmaf9%L=Gg-BVAmT`Vc`s zrS=M?IjQ+`U+|>;iYWhb<<2G}y&kzr4cbmZh5mi=n)O^s3g!8RNMVee(y+d% z2k1MA@x|oc_=QMag{DITizG<@I8g@}&0ld>%KqTdhBE)#3mZN9eZ;hUJ(d4GtbBks zo4q*puNQV*HL!N4>A>uDdW8n-d2LlFmip@pS)@tYv+TOg{jOOLJ+9(roaJQ(B!qKn zt_ZA%LJV}(mw=U89+NQ*V!?)@bha+C5JPf6^M0s8!cOdnOY0cWA|L_TPOs&X3^Bm? zd`pU7k6M`C(w(1tROQP4rVVdMeclVU5AlG2i8_>>y$l0QoI zRwEI+t#4bncEYDivTL#nA;z^0g^an`9f8c_hqvg}6k_8KKcF!b$o2XUsflVcFl!Dv zdVT-=&R_?9kLyyf&v_o|^QJpiM_?yrfN=*=A_- zm8<-U3@l$Q4)+s#Jk9?$mbVM8PD92UG_u(ADTz7imP!7_K2B~Y?b_#to+f3MHstB) zz6$o>V1?_CekrL^v??6Q7^QZpc#u^#%mSNrnu%Sc8o}iuLOtpCms!N)!F9i}Dc4?g zQ8hJKo0G*a^i=%)wms<>B6+$zP!VaU}Zxm2W$|yXRlw|M`QZ^M7|F z*#09ES4Ud{_IfOO3+oPN2O=sfbP*ktJI_A^ZM%nW3LKQ8994z(_bq`j9XsG3{_^Xe zXL7y!`|*#``D>f|c*^(vxVmA{%W3kx?fWYbh!7(2{z*T1`(0eD;-f_G|-7uJU8&j$pv@LfP{*Rk21yFZcb0wb>1~ zHgbEfM2K&r1J?U<$F!F-#pnAFnNszS+ZAh5>$PX1K1i(!h#WzWx8CNNnw0JAOf6pA zp?igVi`LhnHt1cCp}o+9L$an%l}p7!8^gEUxBkTQ=w|jp1TP5(PSj*cG$vSN>`XS; zWrKe{drv)6jaAF(p0s$rv*OcDNa?85>gBzB^;{c|w&yCznhGazNxxjDn_^RDX;2 zb>3+XHJ&2a4=Z85f{V(4U$Jwgr*wM+1soJ=I`No2|k zuY(TD^2A+1b1V+)DWGP|t9&Qx0FrYm-=24@upFO#yX&A1)uitJl$Ayo6yXbBC%E2^;;)o{ZTBEj>m6DXw71W6 z&1`PTtYb96Crgcyqeqoh*PhQ{_TF@7ho-Cf_XQPo%TW7k(^`XOve7DZ;d-)*SR1wk zY6>AAvlm*-ta|2?LWBm0nBTS(Cr2B9xXF&Z!&5|`aSoMfODkW+zdgfASZCUi z?oM5q#;H6UPpeqW?YjW4joa!nnEPyQZx_7O-al{(HDXgEXOW1v-M2S2o*`6&s{b5c zM|fS+F4M_H5IbUM{$Lm|ksMi*?IhMdlJe}_H=$7%;)j(}`>;2QUsW-62_2Ql4pqeP z>}Z%zR2uB1Roq2_kdeJBIl51b6N&VQIMWDVo@P|veV)gF4(|vj_q)VMW zb+wPYx;eMj%LKbbXiM{*f4I4u-Gq&`U9{&2(j{NQ0Ibl|Q#Yccp}ygTHHcCm*-+;l z!rU2?2NAH??hhSD7Hr|Mx?rV=lA`tmrCndttD-9AyLaRJ@bFpN&7W@0qdR3c*gV2; z2q_$&mvcmWYD%`EYA)4dnVb$6M8KJai~l$_bjt)MAsn1_J^cVd@9W38aAZ zN0J%{74d$$R~*>#j3bR*?rHYvRPK?&uR&8My~n8xjJ+_bwrQ4n%eg5R@L(gd^288< z+u(%vFa55xr5r=h&ct06@_ExDXsN|Ve`WW-3*t{;)68=$OQN8V@I7u z>Z0XZB;`wAe=ZFP1c0^PdHBQQ`&6b|@S2Lq>Q3_FxNQw!<4T2N;Ff2weGfd3`V=6h z^@a7Rkuxmo``xxGVuJXWymP?YvpYec?@~JQ*%_z%cjy(W$kEN^6QO5c@e}cuEJg|O zW^=bNXj%xM#7mTmYE31TXYwxf4&%0!ui9-~_`%`uc_N^bs{*2$iuUhlrsa$OJRPF4 z-XV;3>FK@g`6DV(kd#+q*0dM*65m;J{sIi;5)Hx_AT2G|*}zhM(ciRKRrC&dtqx|B z$@=E&pD|gJ5BIfuXg;FR)=L@+3gX504_3gHel6AzkVTtPZR-M@tD^o?)rHGOK-bI) z=B0e4W^RGHQGO*|q|D+bzPAYdqmYTkgeKf`XDSx`V1A^vGI`X;vci#6&noCpccENI z0|Wpbn^@(KHTA{AQjr2XI-ZI_PPtiqZn5fK6`>QA5za3-5xjrlU_}Ve+MPPwgN1-L zrxUtW4v`Ll$s8yBY$w1_l~K8-L3!_t_2={rHw8OZ?Rgkw?6ImBfA~oUGz$)C=fg)J zEX9!K4BQa=rGZAsUmI*DLM^x!MqD_vE1gZv*w9UGtWYhZ8Y+l>(@hyH!=FEJO6vb6 z6q~^}MR3DBcptwFjEE!Hb_jB;*L$?sId-fjMX(gJeTYqjx33NRMix4!IgImz1&b49 zp|az7@(=cm{5w_WONa1Gj_R=ne zm|#)}9hFiiH+uf;J6H+zgKJINLSfVI&Ws)bV86K8IvIfJ*fFB*!ZJ1xDLVr6A0pz} zS$H{f+`eXRn_DgwUvyag7B|CTL{taD{$>A{Si(ZECk;%-=qFrV2beSrESXjyvIt>~ z#iycYcq2YH9`M@2MlJLoo zP@x$!_ir>EM{T$z!(H{KX)83JpzmY#$SS3Dd}%dM87nmnE981*{3mdDWVzys>?+#l z6j(#oR0h+rS`-HgmH;o(qufmV2ykfk@;%6>7@ySag^Hm+yzisp>C)1ohK{d|pS?zm zo<4vFP6THU)r199K=cn%25|?CnCI^ih`RLwDHLHNyZ706oPgDD8OJ~s4KNJTTENDP z%2xI|HG*Y3Ql>CSf-N62ifRa`Oj_#P&|gVI^Uzn(^Y+u;1llrv&5^Cto!5MYCmc02 z^}V^>89^$=4-Jf| zTmI%n+gmgKG(SI}(@^7XIcA7qyKD*AZ^l#dN1`6-^0aKj@%9PU5fkSLy2z6&Xf71u zZnd>PY!c|x$Rn-rEG9FLF0&`vkflJ~|Q8 zfH%8J5ym&=tyIXcSz~^(+=EsXA7Wo8m4}D_|x5fkb+W>*vW(?DZeYce$p#P&XSm8+?2(`KA&sev1*3vS0HZ>e$l0 z4DQ*e7vfnYX|1^+!k!g<`f`SLB0t!fXc*oC~0y$ZH%{D!t1uNp5VlO zsaR*kVK_eCO|yp=c|y<=c{yC-?a}ZWMrx;0T$u5F0b{WamG$q^RV{p|oS#qvnq|aV z2@0|pFQIb*cVurRQRUfCJ1Wu-t@3PgYv4TOAY_|G%zKpFx1*(8(-}Ns8^3+*q+E&zC7iNNa#k%X)OQpwTKqg-4C=J4eF{cMaCuwD zL;-SnL-*5q^^#yWhPh@}2KdZ{Z)WO`No*8{P0`K zTzMKMrF@eS`xEaqrxiM?!Cru?Tt#bdfjX6Tn}`GgRE-NFLj;njE;5E*I)(J8`_fpU&EAueDxsI8xBYnNNs{mNdv5 zltdP0|9lQcii=VXwQ*ke0LMun%I?by8>j?+l?O6bEq*9F_l`N`S}*CGltJRZLi(<5xSAs~v{wwZ)Ls1|l8>Ee%x+-ZB?J4BhhQ#g-JlX;ugH<6LhQY4Ia<;acoRp- zy`T`OK=k~AY~lPHqECYbIglsjlisOFolOnT4q{%V2%ZvIVF9cz`%2ph&c=fgo3o_a z6YJXY=eiC3ughd8iuHKPRb5GHG;qXg-l*RqX+Bptr^p{5;dQ_6_R*bg%|i^}uycho zWXzz>vb9LR49p^A!~RZvHu*cU7I&O(wHDI8XEY6G3;zryuWD{|01_+tKjMEK)WjeI0zkL{!3`Vg5oz`cmVml8>vnzU&myGR;2g0#Sy zPX+i-T1`frm-YWkwwj9&GK0Yfkt=Cd7RkW55V;2kUo|~WT3qVCPSu*sV6U~Y0 z3z6KLnx$3XSfrNMsnE;ujsnlZ>V~)t8|_eKhVMJlFfi?=aly_<0rN{8SV{Ow0?#>2 z23W#aQl+;V7E+!(O#+z9UB1yUZOM!P6Rlvh@@lX~8WK0lOdL*rzvJn@i9moYJKscVQTVY61{k!NH zv`8pmx0c(WsV1kEGl~=GW7;JxPBahq6r&x?kF%v$#EyON(8cm={*nc64f_fZjKDe; z<+V)C+1~lZf3Y7;u8a$eO?_!N)s^?=n2r$@YA{e_Gy{O&?s1y<+(WzkkUVe`EBPnwEsp#HAww?TG$QBaKC$ zu?R{Bd+piQ2&>$%Ks5DDDn9DwC7qQ8w@J~AKryta>9IL5-I(q#Hr#GL1LO(Dwzq~% zXV{*?B6$JwV_nKW{*C#0SK(>jf{PKITvn6|IT^VIUq!AQng)R*K-z7-3)Ish%lg4A z{uoMAzVI2_eZ2hDg9%EpFv}Ef`qMSh>?(sBV9_3V=n+OznHckj$&BLihj-n5d~gCq zEG1t#yRjC=X7~&8d<`Z#GcDAuhvfrZe#Mw)=~WqKRjerC=|!Xu*x~c;_5QP?4#A&ZvR(tTsC24~;NIOJ9AU^y1(TV9hqz znN z>9!$N;Ef2yl>ir)^n{p2ER$1-p)4eEakp2oJ{zi%gc}Dk*v5>CNIZ>fj!28x-wMFC zc$S&`r(H9=CFaE{e<8{;lw`gOh!br?TQ0zqTjHEU(%-FE!b4&CZam!OS znN>L6T~DixNa$n`ZX^o!SZm%LoM4Zm1{YMkY1Mom!!{s>Vmh=ad59se$?8owyW6$; zkUwPMuW2>+=_#PPJX67 zspeh0D5{O5DmWj(5pw)DwpZvrcD2&%Gv<0pKuU1gYnMQW17oo>DI94xl7C#NHsze} zf`YnY{?7Uh;TQX?T+A=NI3o;CO$MvLk|0b072wU8Vo$&)>hEtE0nH27*p`JfWjp{) zGV-|k3^sepS+g_1RoGgs1Y7!ghp(?-bwHYvV#TQ8;)&mPF@l^nEWxKn2WscIY@k8sWQEc8?zHw=>0Q6EKJpPeGp2No^a zjuQ3l6aO#L&LK$CsLR%swr$(CS!vs@wCyi#JG0WZZM)L8ZR2Lg9sE7$QTOnjy|K>O zJ5I!2dp)w;CBlUBDx&7jDU-S{OP5~`Lm^g}m3VyL;?FmP3y)PFv-hUXFioSc<4=2& zHJjxNP8<}X<>gL9lK-k@i7dwojyw3i{)yEIFKWP~eFB#I6tyv-ILEjN8ecbo27}hq z&R~+&&^dS=vl1Le6^lfordZ%dSJxH^uHQpSSpf@V<(xM+Kr~ijw-6zw+Om!XDPwz- zI7)&GNaq+PEaYQP1*jvTbLT_|acu}_cd(BQJZWKEv^w>2jUZ~|W?PX@F$YCe-Y$zN z8P}vVHFlV?7AET|xQF;hmENit4(N19qG4EHbP9zKoP_Ydn{S|xM+53a1E(@_k7S&~ zS^7BMOy=PcT;*h5K3r)?ftxNFhG&1VWhiHmX|TZ3p5mH8a2*E^#g(ZVmWhp(P|KW_txJ({vZqFP+QX;>M+2asw zN%cifqR)H{%h7s*x;s1F0d3CW)DqCTj>dz+URCn0;jM9}`@q%LCeK9Z)VCVP-ohJ; z!pIJ3$t-#1+3(6uM|gyd2mAuROJ-18EqT{Ci2)XDJ?z~TObcMF;>sI8ld-0L0gK-! zbSOA&o%Y-om1{cel%6 zGfH9Z#WV`9fU>Z3^?{|Nw{NggD|1mBJI_<<(2l~8wwm4yzzXPq>wG{28;{)DVV_{O z;iHY_GOAj(&83T4frF{qo8TLrMN9hI5Rd{d3mch{GQMCkWDn7yZ`>Tx!|0+!U|y~k zp4$av7)(Qj%S}FmossFO#P33=iHBkOFh)ao?Ch8>uuuB(Vsv791*T%_d7cxjbn0M? z+^>rmsw0^bbpiIweXMF{2ZVr6K&h+AHlp6>j_J*%CdLu~WS*|_mX0|&y3sHq2K%gp zTihPB$_-7)K9lGmK<9v%;Q()uS+P<0z&>L9hw(H+e~*oidT$CoM-k;Kj0ONyb#Vgj zd37J5oMI@{D_ zR4NqXiy3ssHG~j7v^pqPFH?)4i#V;D5i$9kaVXjmg`LTtJ^#y2j*aJ)%7%WAL3^FW z8c@RE0p3xQZC_s|f|^dwz|XZPDSF8;LX(goJxAFqcAHEK+j1)0G}QW7_5Mv&>lTa% zvVpSbp_-*hPG_5dcvM}#t;$k2zuBW0ciig(QH+w|rr=0XNK=QeKtU>^D7?X*?~kuv z?R@d9c3=m{905k=_0OyDboDMc_Ft>@vi&2 zS1OOsAd?@9yvQDarc9oQ!ZGSdyc#u;8T{O9y_zFgzJbkVsTBtV0#KZ2YIU}~($;b^S^7A3w z6X-Z8{COZ??Ktu=VpM>tdrR1GVN`fK$~I7McS9g|9w7?_PV+V_GYWq?z}x zY6$n9q~bL!F#d^H{c@*StMcj{^Xy#?qVp>kS3Kj1@*99Tt?6+uC}D40<*Z(VHx^>Ms@=xf)mth44ntqbBN1L zySDRc3B6g?vdABFO~9JK85zmRuIpLY84@beP@s&{-5Gi0Sh6wYerl(M6=t$}8%M=? zNwp!`4;%X52#<@fwcldZaYQzyPOB^~}QP26W0FcFUa zF7v>gOj6g0w7(TqcC|5hj@ zTMG#=SX3mpq7q)DwgR+=LIZ7xtKOF&F-jXixNzNM z7|jkM*bV0XjN9O#ytEXJ%QCnA8X$l-I-gr2l$kts4}A1TvUL0E=9$m08f;&Rd+|n! z(-EY+Wfa|B`D(9nATD`$85!$XGz@8{^eSsM2f`d;Q$WVfgUz#i-omG3y?CEY2q#v8pfqs<`)#B`hM=C<@d5WsZTrlsc-vsP<#f(8zQ`vx;>ne4 z>ef-Bzr2+gE>lx;YH=LI18Tg`Tk2g9jtXqd;6Ae0;VvU$EsVq3KV@S23+GaU%wgrmGCZW+&%(&X2a1D8T7y3z@ zsqW=|D25AN(v~n#LxHe@wMKGLD}fec>gz@)>(h~w*iWsNBl2H z=Z3EAdhON(wDg-f8D;e`obxk+QYTM~`Bi^0vxDa=EN@6#yj+$>;u;J!h-)-PH;>_Q zd$@5ClyJg8RwJSBe2}U5%Tq5RiBH}MDCj6fqRFiXLAL79!Jk?{>gV!B!bP2%hj$8xkkSKa{weK`hjjZwbhD$V<&h&Etjd;9cGG<=% zcKZ(RRE#FXu8k9ZbRo`hydIZ$9dx4C7qG$DFVtkwC;lnG)?>^F8F)nM_~a-^;JwUo ztz_4~hk=R`&vu-mNC@m4CvR2=+YhNeAP-Jp zL+vF+jJ7y;yVjLyC&^D#q8rkpkd%;0St_T~X!c{pZHnIhCH~Ez7P-yZ7FQ=}%TV}8 zSK-d8M~t$x*9l4vM)OHmBBsK15=DQD81(kD>Z;0fpEPk8{=)3ZGT0{ zRyWq+o*FMk(}&NZ7`wyZucLDg_e_O~Arxn6I85FzC`@?JDde}Y4VjE!95VH~pF&3nQ*@f6F52?MOLr7Cc(bK*QAR15csmyXqYcC9$ zD37}N_?%rxC;JM4J#xQbuw&RqO)qdihe%;l#*}jsie<@J8cZ3~S1~bAi*F?HML*QL zrk^8ZIn8MQEAF@SdQ5|t88SjH&X3LTk_*JhZ(;6aT@d&_ZdjbC2>VM=7^1t?FIVe= zw&pZ$jEb)n^GYm?KWmdD6BZ+{nRRC@o&dBo_g)!n1IFei952NP3?Ix;jfMikcuz+> zZT~5S;rgo%j#j4-ppJ0rQ$Ri`!WMrm)*__ z+v$J`S#iw^wL>_L*LJfcaDvPR*D6*YH|D@EO!%Epue@TG(19240;cAKpcYuv?rqCp;h^!`ea z(#dc6e%o6CCr5kILU75E9iE1}cP%z^7GU%h0qR+gkaG-^8k*JeQ5fvnhpx}x20gQf zOMWh*DZ$UbWY^YN>znySzj^v+rd{-OYCQWi@jGBw5d)NQiRloDWsi@hp1E7r!%c;$)%@o~|#aw{#of+aI)n4+iPL)8cm zv3}p5HQ(XeBH#CazhM63sp$XlR6La-eag}O`W52$fACbW|4&<ZJa(ivk>y+PJjOZ5ltl;MB>Q33OwaL<4 zysHJ@DH^$&@bNj^yt#z4=c3u-kMz6WGJAGGBxrlvBRE`kX~v)@Z+%O#ujCc%@A_jG z;v%a@$FK{@P}c(D%`+$f+&vS1?6JFHcnd<>?S^9O*%-U8Pt0G;{uA-!#L&B)HxlX+ zx(-|T>IV5-Jhhl_OmqHaCF|75*5!lhclyb=dwlNw`Y_zFm=X}g z^=a*fC41vz@t8e$t={l7x7c_zaevN7-a4}CjHivTN3zv2{Y3vKsa-0b;Y~#v2fjBjCF_?rsdJ?&xu^T}0OmtJ!-kI&31UPf(e? zlY$zb1Oz(|X8O;tIC~XDI#KEevK&EAYmr0xnIJO9EW7(fs^9;RhV>qN{mxOLB&mUx zFWKS__r9s<4Z>#7j(>iZJ7~X!M*@RiX(xO6%lvPEHty%@%&WY%!>4Rqq1le^yY}X` zXA6IVrx_bkYIfYRgcqUjsYEPBJsbl4;V{VdIr}(!*zghYC$y#ch8m41`+^ijvaP^} z16$5kx8wGvx}>*k75rUuVw2n>0un(UlEd{ZxcDJyvi)uKM0()bOKhqP=!I&L~b#2FAG#C#dxAXtwN8+`nQ* z_i_5yP|p$(Wxi+rRd141w2*$!DJ3HA(L!3&ysNTI9@ zw`~Asar$c)j%PpE-=;9i@H#zv&c_RPZ;1aAS^!lH>5-1HCv|7~67C3PACkJ5($eSW zhUa*e7sze`!0_EwMCe)GO&{+Fd*a#`dO(##fIuhCi*O%r*-%gO)2ohPNxr;WIiJep zt!$fUL{K7HurvC8S%R8E+Dbv;A{hDb?foSy51Z-c=@c_eSr^-RXVw9V|?`quLZtJ|f4=tB?onLPbwBn+2s!t-YuIqzhGbmnRDs4jIg!@4(-xK?u3&fR;5FdbOLac^U`*(i?6}ou6W#sU z@`dB|c)CALLCyAVk~Q1tPra}{0!zkL&1}Z6T8%V^8a{WAy;nBjx5Cvr+SZYE?U<1z z7^&-?@!WcOG-d7s*jBP~GHi71iWe$;zJIhrTRt{EK=17@26ySG7K9T?Qq;-NtpFPJ zDdgdDHO(tN@$DzJbf`b5SkvNIbpmZv){;ZFF}4<(LdCq_Or|)s_EN=D&WrjjH@@F56^mA5YM)n5Bj@A1kowd zUf`2Wc{!+Qm}>?M%P$j#$Gxq8@+T!n4sGIM*;@eiW%g8z+J1#cKY+A3G+xR^m+~Ba z=EpNyA{Pf4U8PHC*}6~ediH)bm)2AJ(OY(1j3SNNqJaW3AjcvIl3?Zb10vbs z*;IBB%6J=`*vCSZS}swIhLZNmZn%*FFjB5QP?z>?txfB?*IgKnmX<@%RoJ=2$xY>fvit1|pR_{*n-;=ZB9$Z+ia1MMugHO@RgcLL4K@hx_EE|Y>Y@GOw%6A5# z9c6)^S5e|8MbF|@m_dAdXH+w5Hv@-EJoxnR4rycEJYy<2d9{D2n@2QG{dQPYaQe+Y z23B+w$Qecq06EXAlG`fXC_wNSnsqPeNexAoCqcn%4h~3WBtodSa^WLZn5(j8S1Z?m zDj~NKb#H-AZNYHu_ek{j}LAw3ri z*H>v=1Q!Y8T)N+bNb1YY4}I8e&I*1C;)C>OP~H6%ZAv4i6gWv;ULNY*l9}mKgzIPK z+nAqm*T8O$79_ea&Xf35pMcIVGyREb*?^u;^ zmcUAX2B%c(lH$)O&z3T)&z7bJO0-lgl3-*rVOXkNop40VKBA6AlJ~mX^?Ty)@bKH+ z@mogZitoGkbwfp#TbgRwg^hF_mxgvukZQ0~v)98G#RlQm2)wGV_C~HE_u@%4TY|0m zT*rq*v}fTx`gi&4p%&UnP`e71a8t956#yS!JAAHHHI!#cSY&R~R}2A~!ba&id-s0| zxA3G%n;_9s+X%id^h*7D6#x3SRfn{VpseE%S33=|cXt~6u!}P3RuJ6`6PHoT+aEYL zv6O%$;&fC|=gZ}oRCWF~s*@(JeIi8j^E^u7>p{hnp9e=ofWz5esAmcY3=!8j)zTVd z^KHPNGze)cIqS;LUTXfHo3IfYNiJl3lc5_LP79dus>jj{(&e+K+OVtEWeEvP+vwWA zL>he7P=ec2Vy(=Ne zr=A9^XyoELED*QL#{Erlt1_nqf$NnMn_Ne8!>?8%GHc5l&!x3LtGk!>WtAIeMnXW7r$4)I+ zryrmmm?|Hg!EOICf;($$v!Rax8`?y7ihe!nn7xIju9kp)QW~qZ$l=dg++R#)n`-3Q zj!gWNEY7Ft-v zT9+1nao%&{QM^h|FoT|wB{bl+QsuSoJs-w3Z?3v=u$qZ|mQ>hm)M{04j;8(2{)1C@ zvp9jc;K@*rqrFrJVHJ+Qx~=S z!?NS2tfnJ|6E^oVX7$`i_0>{sAc8e2q|9RF=Rqw!erH<|@|kz|5EXOla!20eF4stY zKc_k9Y+}qMRO8YpBjzSw%eh3M4bVOBvn~eRycPam@3}Tx;v|u|Y=bTAQpjJ&&QzE5 z)dI_;&V>FE08D$0(4kCSKUYXhy*YmoOJ*JhS~OvDgiUd}=i$7?UTDIE)qQ*&6&1jg zD<93)?D{umpBrrkkc(u8|4N#13n^q618v;nm&?1XE z^#a3M?;mwF!S64%gjj_&D?);}%TEd4l|hupWg@R$l&;~5O~O_cAHm7vky2Sz*602l zO}n@pb(0%r%ShD@xGe`30j#8v3{Ey_^cA-; zxK6(}kaXHiyn^R=>9axQdk9y&YW1p{L!008QJw=EEL#mH)?F~sr$W4-w*0!!x#j}j z!Qb^$pbKB6)A__Gu_07{=IAsZ9jOkfz!8`{@Iph_k-I}yMv9#4s{}9Y5M;_YQv<^N zK5dZa(-WpLp3RS9HR0r<>Ya|3$)f7Y|M9kF>gAR*> znVg{X4}8brPTFexH*DOwqzq2|22m$dVgq+vj_4;fV)Uid?Mhe)#fMNek@de@&sPCy z*P@5O%<*IjL-R;^A;4WhJf*V1+<)LqmY#jkK{0O^%3G(ud)I!R-^W;r@|QE8bC3KX*bb%p^2z)y z+{aX9tFMiMx5Xhq9rRxIvU@k@BRmECMgq0X<)IMZ+F=jvs0kV6&(`eQ1J$aURG4QQ zCF|JzBaZ?I`+^2Q~BuY_&%JX$d5_wuF#` zs-aRnJ9$W=o2}6l`(7MkjT!Z9m$5VuZYA?42zWgL+VJ*H#(qM~hzi|+BexOl!b6YmcYBU7r~`ESdmfT;L8) zgK&!(IGL7n_0N2Dvdvhbp1Ck=eN@ljU4OZEp4ZWWH1&&i0f!z&iB|*3l@9uL^&Wv) zK9aN^l@sV8$e2=g&H$(yAs_;d139^#Z*AuWDM)n$KDENnpw8y;>t68oI}?5eH5usQ65TRJeeO|{ zUX5h%0yGm3)Et#A6J}?Y+79(@%}SVC=vz*zQl(EWYhH=8{aQOO*~U=_q1oN#gYZr! z@NN$mM5qcdMM`!X8BmY1G6_}CcOkk1-kpB`8}XNJk)^G>xR0)G8f9X2HMFK4Zqs(^ z)Ahr12r=}AKEzO&>Xgva+JC^B__;xZGJQl=NQ*IUE-NXD8PG0sSW&Bb>leNKve|^o znzl4>wZ|cwJSD6A6!*DevD$KWQmY|{OzQVX1DmiLi|+2c z(r)HsSO?&fkr$7X37)wR?XAYs}<2FiH%I%u|FSx~;pm@EY@ zym!3iwbyE`ZLT++NQEEN4DYtGvtGcu?DjeT96!ZoO+FunK7*4O2d&JYk|PzeaW;kKJzPWDq*fjfvzd zw2h}=ZRMdlInTp==so-p_p3njm0HUZ#-y~i*TEjCVL5lnV-&gAPOr860$30%te|jO zx`^sV4w$sG{QzABD{8J047h$88+xw4CPJpV=^lc#VBdtnorc=HaFRR;m*HVj>RC-p zm%sdOp<|QVg-oMS4#64yPj@c7n>ix^xH#Sn%sNtd@;rLR`7GmF=_xsnfaY-nugv)O z3BF8XQrc4EGbA<`HY`>APz+(>arc_?5F7(8t zXlI(V^Y;svSDY%`Vo)p5;UMA6Jjv*Kvb%s=)tSpVQrS%9OU|Z$gTd#auBn|6Tr?

~M&p{maYl@n%~b?RPVNUid7ilf1eoM&3q3{CteY(Ydd_QPTEApqKkac~Cg zN}6`;Eyjh}POokl&dXSeRUM!VHp<&iT53wW_G562t9Ttt|A6NUQ$Qu5l!F%9zm8OT z4@;~e3=1Xoq1X#1TwHued2C+CEfd+kqZmYHL`i(yumISXC+yqUVb0GkEJm>ljo-p6 zl1D=bkg>~NOW9f4igW!}~amib#-z5o6f)JB_ z1D@bxytwzpf&%-MoNHbkhgAGX*7mD9V%zdF@z<_yPHplKezw`4L);`>TLrE;fi;mF z%R8m%{+sCOUmTvN7N77k@QfDgp8)JNwrXkp{`Lx>A4;UV^}JmL*x5*D{D?^vOp*=w zS>{GGkXSG%O(KcMQp}o}xrX)^p+1rKYqde4tw~0pV+L+SdzyCezl0bI<)whJ06;y! z!S`Q+tKw?evw+}*2n}C4RbKOI+|mx|ut@V6WGoFvv?v zOwr1<8s_ zh)P64y>qsm-Kcmg`eDy5Jw^>GuT`5WAZX_27`9Tv{OCP#P}@=D7vHKlSe|asZ=^AwEkG zL+^w<`{&JV^~0a|0brzo-VN11E&LImWR7k=sxO`qJBgLJw;IP3MYm-527~=*;W{?g zrNjDzXd&tS9_Cs*ssUE;-WAC9{C8?>IK;Y=7XbFH#vy|vch!VMX992;-FeMHTW`p0 zz;P}8dvl?PykQ=1^td6PURLh#N+uJK=W?bfHEO#1^%c8oGTA3gD47V=i0D6(Z_liQ z8xRu>rWxVW2CfR}OE|O?4$Lt&_8z#@amuupUXaddDO{04hbVy@+bhDokW#ZVH&e+1 zk6ql!B+AH8SeGp;s>KrReY;i>SE6@U0pBn8`u5A-wY(!#N*&igiIr+OzNeKnVMWSc zIB>yMGhh;kF{WCnw#(QAqbCTxFaDLS;)@s|SRwfo?yNjSN+h5d8{aM#pq+VYsreeo zNFf{{)oBDEjIFI0Vyb0DmzHB<;`z+jeEns6<*3%eyZlO-Hfk8d4SIT3CwkgwW1W|I z&UtqtSek}Kb7ZZg>@LkNPiEPBXe#OKR^x=k(gAw~1ZN88PH#USs9}!ftl?Xwb;H?h zJ6@D5HM}{&5+lUioZwW}LCo!o-XHy{Ee>-z#;ie*=i(Bp5?Ed#@ms81faWP*y-P)) zIKW~x^DnD1J387-tg;XFH6Dc&ct$b^piN?7`jy=E>rXG{+d^Uo=iJWG6-`(n9;<$6 zs-(PRqBEv%K_XgkW#)uGc8&FGz`7hLBSwC?7f}BCtLab^C{CC;4#tTZB8LWn^(B<> z2ShDN62iMBbE!kq=Hoasam0cLg#Z+*)5f&%gV~-CPT0#m4igkM>32?%M^@kk<`oT* znO_r6GOIY+XcTDmagQnaL%*PcC5)0*_sbrI#gphr_7j#0h8pA8eMr8UXF zsA-s68HyaZchS)!V7iEIu2KqV^CANaQ(PiogHROds-k#tZqwMQDUz;eS<`9o|10&| z>Ek|hffG#|AaM!jhC`AN?8JgqW3gRILL;cGy)KO#Gy&WS!8NtR=+W9y1u9GxaKXi- z|07o|Fy4cHG)xgm0&S@MgadRRVsx`tlCxba8CERbWZ>+|IpUR%d(Zxwqkamg8i-#t z^&BT;*!uSmlU<~k*iuyh0U<7n0y;Y64CnG9DJ1q7eiX-Qc!}Gy{z6t3{$Wj?Qa-6X zu=uYPB3XyZ=vDdsP#zBv1XAJXO)=wOPJDKdW;QP35Qse>L*hIR+M2+faS&o63@n%} z-$<5-O%G>$^0zCS%_nm7C3JZ$-$7vmH6~OGkTyWgf}4)owQ5v0AYagnW=IxEb?aUv zcZu_wP!@WTUa+MdT11@v^Oq{7V6!WFJw~zA8$>lN1Rl#&{Y(RXM@R-M0|6hwhgQ$9 zJ^g3LNHpc{wotwfaqlsmwj3yeMhw1o~I%Jf(QbOS0agORV2)pSuDGn{c{Mv0F zELTB1Bt&c|_#)b>>c2`kXQXbA9f#J+E*hPkNF)Y~3$mP2l=fK$UCR5j2c z?D%1H?-t|L2BijE9(-{)hAk-<9)R$aG=o7b?vW5?iI2!achc{$qsGM2cl8U(Jx~U@ z^|BPJ7_Gc%WFnQWdb1M%{8ANu&7rS1(tNK!V3Gkc%i$$za5etGm^GINLbv0@dq)c8 zS6%*Y760KoYj{pG6{#5dGNi3_Ld6A5z6%csIa*#dY6Of*jsud{oqQxHfG_z%|DVMmL52MmRHjh4TF%Lc> zCj!g}?~Y|@NGT(-nv>zXIF~)ZuO+d z!c}y^k}7me{G4KU?Dl}xB)^cuL5PaisT5kdGFm$UCYZ!!E66}>k77YOggiX^Ktz}X z??gm_Z3O70sK^KLTtB|SeY->-(u7f`R|f@S!BAhbH-)&Jfl7~6MX;U#EN+0aj?a({ zh?qCQYtpdz9N*8Ne}=!N?ZxFYz)t;4Z(6^nVo#&I%yO6(h#5h}4PMIs5F(%Kk-JjE z*%;YR?we8CW}6d^V~`KL>g&sAjs5te&eM6$|10-}wI+j$TACFy7HLvEcAqLgHe3RR zt#Q)IsMnM^tAC|*OmAxY%hL(9C;(@bX#&(eEA<%#Rs$Lw-aOwT$e2D&hLy_mJ}?y$ z;UMe<21Z(7C6^1qMxo1+llG*yMoS2ZY*0%hGO%5!A;87~{LgUOu!&0ZTBeMFc-Ynp z-{;|~7raVo8x~g7?9<5ure&930bWYsKj1y<<}o`JgTRJqK@Ntf&@4Ra29xf#+U>)$P(tu*2tws@ua|u+3GDfy#gK0 zpZ)cLb(;_xE^$vh_0(?llzckd+_(b}qlbyuA>#Kr{Wnu~5}^wdIV3zYAAg8XI1O~m zO|1!uMbDuv>k7kyB!tO!rj!>p&~0SWHvQer9q_&djeQWTg!hxs6r=Rt$x==i(mDeG z|CfO$q3iF-FsZvZCBiDXAu>aH4J|0W&_yocK@ETl!>(c~3vxBdJMZ<~-DbJPKIJAR znf>?U&{WA0`_D?9NaJ|?P9<;q?S3JA!1%L+QWbNt8%v(nf+ryC!GyWH`S_}$5ZZQ` zu4L`lwQH=e=qv|&8O0JzQv(xOgTE#Ng6I|*tMK|39I1-HplB{>c?o}iH5&Z#obDUE@m@G`bcJ*M-17&Inmog^95xd0xFt$Sr#EwSn zGEkeHeKs7MHolgnam}_ zzFkQwB>^FZEsYr`$+K;)I26W695{*q}Z3F;b`02FRa(EZE4rU;7Y<|J`vM(Dn#T+AU~T%#91 z?J96ED9o1f!YP>On+4jlbm!^3!HP$A#6r-x~MnmdpDC3_hbo)f4SwC z*hg0;N~CVIcr2t9fT%+aWHu?WRC%~e%5I=8l87@Fj;qN*Cl+E~gLu-SkFp`rE3-HQog)cI47GJYj#t$rm7=F)B|^ z3S+|N%$!|h8;N5d74uo!oI(0qn##bpPs;IE2MW6)*{!xNDK*0|=)Fe=wtYgq{bWLh`~C(uyMnDtALkr zm&nd1(uZ1#f+`#(3#XBv^k3=8f&Oh#0@EcQ1zkyi*{9R!EQmU_5o-kt>nn(zD3k7lm_RtAeT3oa(xVz?^9&#bjR|AYXq} zc%CiK)1lko?lxJ~J9&Tr8t+7CGcrG5#I|P+aFz;`tt)r{Hh)a_0yGuFR15~UFb~A# z$);up6{CUxzO(bzzr6ZeggO4i-#-}=O*OvaZc~njDj)O3*p+rv8Av@f9@G*)ffdn~ zf7}y8=TXuJv`FUH%fOzSD}x^iv1CE*SDCMHCZOOB0s(4zv?zjIQFrzpX^qNg1S&JY z1%dd5roa<#mED)RDWPAAK2{56RVYAQb-G1IWgdw#AzqzhHY0(=;Wu& z>hgkkXDbk&ofXZw3K2EC0bMr%N9aP4A-Y6Z^Zxa^*C?2Bv3xzBS)ed`<0Ym>{!I5K z`e(XgpxcaDl#$NSb$BVYB3A~2PNCk$Fs|Om&=Vvh&yY>jNfpS|9FXz6zFxtm+lpZG z*Bfkw)mc26YwTa2n#TA2@Z{*qfYkUPyGj9QBbyrl6D4=I)eHnvD=CW;aCT z;(DaY-G;7-v*9^2<%5HgWd3dfC|W^A;>eQ>?olNR0y((&;Q3R^%1`QOl?@R+!kX5WHmU4xw`2JZ;kvkyracqMr6kR`-^u*wm+1lAW ztYOqBpfddPA%~0WhAGatIUmB|r$FX{`;?xLJ%M%qwZo_2KC{qG?JT}WAdd6r8XbTW zTHbxyl2nKxQ#HZ}{4$ju?-U78Q#~>-mf6T`aCTJ#*F~P^HQf;`Zc0vW_cw^k!7t2I z<76Rp3n=!5X%^zzjS2+c6((3cK%)!s??kC;LW53X;e;G7RrPD5=S_Zk$V&S6o#_p0 z>`@#Q;DTC22kTFNp$}of9dOMFGUF=^cAf=HsEeM|_h@pmmv>Y$Sr74P7dlTx7_DjQ5(F72WJ!idGNs2BkPg zc8uF*7O~im--RO^QyWix6rLtXI6P0BIsFkg`y&b9Tx5fff8>JCJ}W{$QRjATz#83z8Mh#&mtK7V|}B`m*;YjoyC7W@PtiY zovSY2|J;|^@^nB6$iHu}6R5A~@qP9`-{lyj^dGW@X{Z~^vsN%9hN?yRzP*m(WbE0M z%El%==sdpch;xD21R!b@Bb8&fYd$a$**;ZlcMt0f+fJ|Dajicaelyivl3b~oga;e3 zHgi}xD#&l-X7H?t59|i(BJFZ)DEL6w3{BVZQpl$Z7WHF`F&+>}jBsNm0+^z(j#PTE zzk|!dzHoj|q8xsnEZRp3T{iIrcc@}vfOpLrkD_NW4Cjm;{`gX9kSV-TGcqc-x)O>h zw!M~2>`CDxU^N>4uym^IRymDQX~gl#7x@^#qCcF3Lm%CBsyz1%6E2|K!^E#6Z;(%v zAhlL8{rvzKFPR)R(l)bdYe6W}X@&O5tH2j=72IYF`=eZi3pE)MwAM#JqnRY-QEi$( z%rYg+{G-lXg#GI_@ZQbu97+6^t-c3s73V)IkkmvS2p&pKL~R>cz>^S?BoTEhw$;Tk z3~_~v6d*$$nZB+=;9g7P`Bo!isCoR(x<`}q0HAD6lFeZj{(Wk=b(D%;f^7vaJ@+Yr zqY=&6wHCT|FYOEIdha46nJ#)X(7t-Rk`L~~=;g_C0y3P2TGy~{eU@(;? zxu^<8 zxS~x7+7$W{)c2aaDI*>1*#L8HV5>(X4P@E2q$bAr>Qm;(jOOO@-um!`3CMi3$L%G^PfUY#b3`+ zk<-K`ec29JH4OKji0}N91Y#Q5W_Qucv{_9WrUS-x!xTTpxc~xnlwi z|5|3)xIJ&f)mFNt;ikIMnlvq)(E*3oavw0hDG}FTh2PAkQ44xH2E6G_R~Gv@-Uv-< z)yRKL8megYHHL&|2a5jWm!@6;k@e3yCT)xY;>c{joKtH#D*5i#>-1Fv13Z!*q-2<<64ZR>+fpvCz2} zxW;sS&Ygf4k#2Lf1^b@oIP6{RG>*6g6jwV&m`#vBk^8ZS7-#FTWTrpYRfjZo-&+)O zj=;t&;HDVv;aTh6&bj#!VjrW5Unwh`LskPJfI?cZJ^H%|QlEe#K*^VS00hyq=zT~K?vIn-k^p!$b@b>T1{-z+0sQ`q$s$6h#r z^m(LFHMjqbvAl@!A9wqI>10d?TCxA5Q|~V{-}pz3UT83B2*5z#MT@k ze;VQfQW^OGRu~-$4^bFEOP3;L{N!N7sCmde0+iU9HHcgFsLuocU!RUPX6L-z2?MC| zfXMT#8kI#-VV)m$;{idj>tH)JCup*~5m-4A=DI6(p6vvrE&8MSjoRWuX@G}!&cQ5&u!luP7Q@@ zn}g}Rw%25OCTG;P^XEVZ^jpWABd55@+=-_3A!RLtAuB-8cyKvc@jOCaf>qwGgz}Zx z3t4E?kcj?t`9xm+bJS20t|nmqw7GxVF)yJpk~Lto;1l@X5{!5D*8ac^em(zbYH|>C zTH2Aa$Lq83!b1eQIex-t2D0geuTSdB4anNTx}i428>!C-uh`%LZ>r^XgdZ)q7oQ>n zd8+u0MO9l@k4(Xn&^|>G%S|aZh91yGU)i~PZ}0L5@t+Gk__LnjlaMDZ_oMpi|3!87 z|4DUOCGD7>LjR~4#PbF!jkA{{)pH$9om{M)oft&bn3>r1m08*K)qcuEftis_Ur71? zw`WsZCsP|EYg7H7{!DLT=$xFwXNMw$7-Drtqa!K>l;z6rYKA^$3LPN{DIBbXSqGK! z|JZxW*gCf?Thz?V%uF%HcI=p$nK5Q&rkE*aW@ct)W@hG?ndv#Fs=IQ#U+Z<9)AvdD zs(#p8+P1W{$AmS;m}{+Xl(bs1tHX$n&u8#ltlvKm`*e&c<9z*qzhnItpEaf6*52&cojd_z`r+t&CgI7lFDBN@>(wEPmD*b=9Y_sTO&rxA z>YJ`2F@HmgJewz~>R|`aS71wo9AIi*w(okmgm8?1dGmg6Wz0wqcqH!`oXn4kf zigfsaTNO@){bWLfKx{u{hygeoChN>*eW~p}eky;GRq0J<4ShzPu{~cU`}lkz7N9YmOXv_Wq$*>9YGg5x zU{UB|v1&q4%Owd~;atNHuyjFOoh=bd%)(p5%n-u0`=SqlS#VYzv1Y)hw+i`?b&j zFMJ;)fEmZp?qHitYz(0fRdi$uv~HbZ6XvvT#N>>UITD9+k8fA{1U7!o~k(bac#nULj007(we<3f~{_DI<;Qh!;82^bIa_bYQVouzdChltPcRbry$2Tf0 z@#X^u@UM@aY_7L-Ti8pjtm>b41{zvQT;45ko15FYSIs{;UGJ<-ut=wm8jg{~X&fxf zj*oYYI;E@~ZNIv=ERCI?v9|QQZJ)TWdwf-WK2I2dG`;NGkj^+68z#^9df!jztx)>R zQn{QDrwmzol{?&fR$gXDBYZzmU>#`fjh(&m+1Wi^z$aM_`EVR^i=nZJ?+34hk79)) zoqcqT0nG)QH*_m;Jkm(`ZDlZ#pXg$DG;FtxJ*s6PLb(iSQa79cgl+2eyj?ckmg|C3 z;)i68ftRLmfeq=$kE2c$x9c1f)n4UkTHvd37wF2pz0Zqk*F}h%^!+ZP(l*($iML)T zHq4eZB?n#U%k8im(YTQ6@ywg!Ez4q}BH<;3vQCJJ1wn(>DmQbb$ojR`EOt*pSbJFq z(!X12(Mqaguqv{cGs5MBKC|C}nD=qAh@ZxtYCwUM+XW^bIJb1_^yX$yg|rQN;*cSA z+NgID_s_tqB@_qL>y#8J&%tg|gcC1ab~0o17LUtOZo)F^X?J#em(sAY0JKk zhmGh@?`9WD!h^ z170mf#uB}AxuXNyNbzr;Vey8pr0rR=?XG`{SV?(4-C1dwXpn~YvS2;OgX8vU=jL2% z?`ZMje0}b@JiU83pp9Bi+N?FEl!6A}TIGZnYupd3kkz+Oy?+eN=Gz zy4CplaA@uB>VCVu=lHU-wEW)Qq@9J<@p#^$eR~@Qlcw!eZ$<8*Tmq*ITMnh7NzCWh z{Ug3aQ1h!N2lxTQM8o)u5=4&RG*Df6QE1!1MhOJ?oW15?Cdtx}5-t2bHh6Vgz{kG&CSnjp>fbK>rc{8#sha`G z7epN8SrUY-A;@%2w?ocASe>+K+7gb!+J@Mp#Sg4i@P9rr*On%=g>X_m&+p<;W6Xq8 z0~h6Y8Z=k>Ax-q=?S~B!m;h2+f+}zB#>Q72op-N?zc!l@QV6Yr8&_Ntd@4hAEd|4o z54H=RUEk9nJDz5-OJe$*R9;wq`Bmb1bxA2$@hx8E)G^M6fU9!zTV-${iK=sxgf}@r z$4lq<%9LP^lr`-*u{0cXS6kMrty`ax#*eG3OpOxGa7Z6;6j@~jHo?Js``CG9L`xz@ zMM7st;)(hz6F6`1Y(+CpMl;W3>Nqi*Uf5HLe$blGz_Ic*5q$z(S;T}qLyx=hYz|<_B27;MG7Rllq2k=9o86a&DuS-9biZco&hAav8X-k)c)<}yFnA8uCki4)g~n)kwP$A z=de?vL*49Dgw?E|=6;`!P#DU9r~(8*l&3c_(9K3w9g{76oi4?OTuPR1Na~Dq@yNR( zBX#N89E>VL-Q&wFMT5O#1IAVqU-BPSbrQ~bWP*yjwnvBM+X$S=oY~Y{!^Yr8$;32i zCQ&S#f^Ml6d*M17z=?Ob?(>UMu{bO}pG`a5nX^l%auo9OZ}p2Ile4pM??2Jd;<((q z%~L5?K*kHg%$$u;e0N*hi(1eVXbq9P3sghgm}O5_mHDxF*`l4p7kUZRtY&I6DG*-N z%doA_3}1fXn$=%?sd^8H`_rz*!SHLP1Gh=`S!Qd2gSU(_DR~WQ44AwYc2|{D2UAkg zT~#@ri%0yFgozX=pF)#19`dQqaY%et3qXhL(5ndl8K5dIV3yzoZ07BEItW`vCdFOZ zNN}sHxu`NB83266s0+*=$sz9|!0Dh$xH@|NtKXF&S_g3>+})aQ}46W@2XguUoe2?=8C*UflMv3h>{1_7;JW@OL8Yc)8sTqxCMH)Rrup0;$l3 zWKG*a%yLf`&emq`m)ob)ft3PjFMP{&_vYuvo!7OQ)0T$&hyiUcXJ-%Rmun@?kH0v( zy1gH5T^zo0H&oAs#36EZ?-%!sWKE>MdpdjFTVHP%^t7}D_C(;H;icngbGmstKkS&F zdTE~tcW$%3zuuL2c@eLu?1X0YH1Kz{RM8F$6}vkzu@aYvc4($JAKA0uQVrxRSRHIK zPITE(Ux7P7S0AO!SS?KAkm@FjvpdTsuEv&XA;YgpxX%X_ve?2x;oYoGt=dE@=77&h zf*eOt^GQ}iwnU{mW#Q=8C0iLhNPyQDNS}YqQq?2;c7{~!;{+kWZ`p^xjT^-Cb&n1^#-_b02^<(Iz8Zhyo!>Fv^CIf>E^FcTPlpsRX!{} z^~rjm(HSrMQ$YuNtP%VB`;`0^d9xDh`Z5Q$)rt}JS*!=PJyzv2?lku7N$Dkk%H4O_ zr*RE<!dPv&XJ<8;bUB>9(9mLG0cosqj@PESkjzZL z7psyQPIglQG>l(f7 zGXundI^dr(bvs%cILdykecV5&1iQB{>82UG&}w#hG%?-)&zg(NG<0M>o4d&w+ZuX} z0x2d5yN(G9#xgJ_Fa;pq1A-P|zG|kpb;P8bZu1`Sap9Ts$gZE>96Vx(Uzi+5-fW+n zn;epZW~#>sJd`ype?PCY3Z|B6p&e1ts*JY$!6Xb@qT*z&#)y7-_J zprR_yY=(utl1I{R_l<_HD-J1qtxEn83`ZiMG$>aQnr^m1o36;+vCN`r{svG`ar6gl zBQle&vR@lkXjKcuE{DABm|)lAjPxW2SQz;EL(^j{Xgj%|!P$J$y8C1SJr@yt^Kf^& zlY3uoG@d+xC2S)ix%^n>AgLcNCB5s!DtRBpb^ffg*AX8013!>iAHYB_(DM&(*y!P| z$53^%FbWB~Nf;PdMDLo@2;iIju=`xV_9IBr`OY6u&p%8L9MZ=uKC)(J&s=yzok_nz zPUc2a1;V)@u1i1mdiM;^zn?xDhL~R5l8+xYW9Sb9tYxGh-v@+J?S;aP#oxR)YA^;rveQ za7-86@aZ5|K$mcl5($nzd6CpIb(O5PE(bn`A(m-bW=W*oaViW8azX;uyD+5d?%N># zvtQ~S=Shi;S!&lyQv`QBMJ|qDyk#(+cvlnZCe;LZ&Kadd<{lI|Q(fk9Smg!4b%MSY z@C&5`eVGndKyEO&a@`z^7w1W9cFF>UZ^HM~0}av~zyq?NimL)%%g?gAP(QcA0o*Ma zwcj?buf5pbLI2Ucdp^3i(O@$t;m6vC|MA21&p9zH^x8^{tgPBX46N+h@*n!o*!JkyhOZnpsT=5ZsdnzfK#$%piqn@Ng&G{5u4$nBSTcbKo28e?;{5Q)e`^U zQ44x6ew&VhFX4JA1Uls2mZ>!S77UiSig%kVM4(;*_#LsVHxaDb3J^pai>zeMJ*Kda5 zuV5WXf87=N2-fw7Y4}g3>EDATz%Tb(wARFWco6(6W(s}^62KZKEv+qOgldWOaR{1f z6V!)-oaFBpEH*fOlaN3t@z#uICwFTXCG))d~tb3Jefi8oY1FkY4EX-Zzc6i5OSK_t;kSux}=W`V%u(x`c?u^+@RsX9Ts z6XkRUUD0XNgev~S-yK{L7R_Kqbn9k>W`cMmAoOi7cQlQEHYAo?B4UPl(KQhLz}jmF zUbDf7wMg=(vNE#hQ4w^ed8Pc6T%0yy8ui9pno@m}b#{B{u;%`j1N|yMDTb5zt8@!b5Ji-d&9vl{Krh!UABzz|@4+XfJB($u z@@d+m$CQ>4an1NQd^mM*Zsg6aRmSF0zmt>u-LO9Pr`6-G6lA}L6t3<>R(Nco zP`_NS8^9R75&k|i&BC0hNPejdpVXOT>Y<}*6xahr)zOnnsHE&-Dzh$(95E48U8u!R z(TYRWZVU6C8XwQ0;F}g2Qd`By(OWM+-{1(#3Fdx>2%~A|V8i4Hvk}wNdV#l(vHR}1 z)zIv+{M+2}mt-3&THTWWfDHD}HgAFdrFpOYYTo`83k4T^D(I$z`d6&zS}1wS7L;Y5 zD(7U-Oy|#jHSc+rY_xh<62DZ@ai?yH^)=zGfkXLqg}!@6t1J81QaBD)>4eaMO0U9I z<>QwpdT_h}3Kwebm3#^hZI_NAC&?=^uOPJ3R5c2vt`nCqhN71Jm0dx2Z zg-WgR(YFeWmNF*0Q0!`YwJA0!x62aM)`d}iB+)`XFhmBIM5?^=P~~|@N?rbB7;4)A zBoy263hs8>FJ!J6q6Dvj*o*{nfYRXH{AwCHREChEV)UJev9OMvdLTN5jS5Q8fMOWU zyx!C(QEzD$gRqIw^J25pDs=4UJ}EKzn8rXnh>Qe2o!Ce=fm3%VZkeAoD~(HrAIXjqCT_!ipT_@+ zmPrJFB+f^)Y(Bd8pXv+({Qu|-VbOnd2LFX|%4&$kfX~LvPbq?Eq*))GVIRnnCL}9L zehF^ulzO15$^-(@nEB_|^}tCQu2bc${Y!DB=WVB$IaSWk`T}3gzLeXnYDuktP$MfZ ztYgOl)Jo5>?1-zDqR?rFy8=#**}f^TXS4bSMW7>HI5KmHl!6*#23=6?TJ2z&wWhmb zqcWsZqf;<*TMxPici)E8afk`=F^fEyI+6W0P=FeQ{^LrlqJl`L}W0^Dol|vvP zWuvmOK@t(1-TPcbK@o&RgJFVEY#G4B=%XQbNgRx$gaEhzH(@*HVtM(;ybmuhh9)tX zh-#BGIbJ5`jmoK(r9I&{r`ufIXomAm!L!At-vbRGL7b{$ReqJLeyj;65q1jycII^nF%E zb%@Fv+PAL^HLueccw=8Y?|(Wq0W9S6ZT*kGi?Lc!=-^;`!)A`0r z!zCVb2!ZS|xnzpYVld<}W@@?n zk|jyuzPC(RLELy_)rF_Iq;Sfo@OV<8yX2?iv3A_kXj$R;8&CP=Upsiji%EY#4)v${ z65Ai7lIagx{RgT1y)XG=F~($w(zQ~=Yt`k|ws$J=s}`!ZaLaA9*ECa`@?wi%u#vO> zB9(p0?x^L_bkDxwS9Nn9!!r~gVOBcERNi<7vG}G_*uZ*SV0D` zop3DZd>74}0@xk)SZ zSLjy}mSZm&4fgS|%A5hwQdbzimk#ICxSbM45P3%o=tg7{2n=D9%aBv^Mv7t+#_r35 zlaKTOC*Y|OT6g`-*2v?{gd$;8=SU0fcQx(Put_5(;~w^92qI4=r%DY=66z2Lc!FNR zbqBwK#gWzmJ{XJ{z(hwSR(Lo(cZ@6c<08UX)zT|RkPVE=pbCSt${}rqc`u|&9 zjYxfPOTmRhWqVo5Fp#;?#hrm{XoX%lKPYYlHE6+XsiB-~uL#NHNGRDL=J-9kQ@7L6 zlfE`I&*b$3Nk#Y7eaUpG=!2bg+L@HOFQeyF_v>Fe*y#|TtfD#NtSsbX-*Q*?pYz!o z3A_fK%F}b2ld~cHvnWzXYM4?o#T~^lh2B~2YJEha$8gXxX~cX(SSa*JbmpUuzXPE9 z2N;Agh_lG2!=(-)<>X<&9mX0 zE(MJQ2@_aVO~Z&rSdIo_9z^S<08P)!yqOT!yz=o!fci0oQbSy#i>r$94TWNes>?9; z`#4h2&Gw3B<75RFEn)1{}O2bvjXkc?1}W0_|h> z&4=gnu{ilhPJ9S7n81ngKct3P<*vRX9Q%*(HMRbE^b0ixn6j8JQmPy6QobW^IQzZ` z?%ZB{V%$Gx76t3)*OMxYP95SaPxA^ss~>XRd_nVqjkTY zO4-Z$B*MSWN%I{YQrv41*l+-izpeqRXa`xhMI)9^5eW1fanwSlF{H|(y};*EY$!ihZdOt8$I0G@tj#k9sh~u6pcM3@ z)L|7hBppeQ8+&zrh$NLS)|C@=%=r<0`31hx0m}_p_#G~d#*_U+*524idT4Qym4Y1r zy!Ki->@FPezxT{gLfMBVo|CtYE0W^CT@e zzuovWuNE5zcE!7%a4*V6{#dIWr=IsI|9b9x-kvNhXRWA8uz8KS>~!Rd2B+KejCun% zDo;M5F#fI6hGHG|sdS!6^O3Rd>l}`G3LsZ0k3XdDG-r4;DD^`&e^<}Z_;Ic)BgGUK z@i7lzn4D=jY5`Uc13rriQzReIp077yU4(!JGvfyG@i67J*!LSlsJZJ{CR}eK(=lef zLfH+%P9L5b>~V1_0A&ggVhJ<-*a>f-SOU&g0TJHFNzCtb04H!dQQbkk{{1ANL_J0z zx?)9`x`Q|o3s9%6HWn->k6*u=-S3}P6+b%~2YnuS$Nt=QKkpF36@i^{{M)epuRAe+ z!~VBQ`Ii&(-*aMM@UneyKT`hBIWd30F85o?Zt z>al5Onqqh-HP^;H-iepR#Rhw);yiG*Yx7CfvuMwcT{RTn-Z?4ODW;R9Tu;S5nl{0` zmauZC*|gX}>T8%>sd_n;m91^MFDVbqr%P0JD1**Cnct=B_BU1Kk=QFhT}ZUO!#X!_WtjC zQ~tUG_BY)BbGrY_0sAi;u)pl9e2kR;HCFvUWvu!~u>Lhx{ogrO{k2JA2pNY-=VR?K z{MZ)#PpkG{G5US1S{EyB*-eiSu&{+f6A2{8i|2;35=ui=d?qG40t(a^m$xlL&bxOf zX+8a&NZ^n-lr8=7VCxeWeEiegqUS^8?zsCZsSDDbPoHPWj&-v6$hlj=2DF9pGlt0Z zjnBc&$HiHuZC8$I=5{qRdG7J%_Ma74JqU8N=nHFDMSqNoNzzk)7C*()rm{n;nVyCy z0oyOCav|j?E?b^1TfBFd0ZU25Q&O)8>qk6?SK|MyD<=mO4TuUuG^v-F)6bEQ9D?J& zjgtd`QNQk8fBbny*$|=wQQh?sgr1Kmie8E|VQrKvW}`On>KU0RfgblgTia$^43Kws zPu!k?A)JSlpGYRyj6DsqoR@)=A_2q?rSlyTo@D*SLjTQxIB$MLTB<3x_?>){}H<1hr4wOf7q6s1=?L%a%zx~ZJuX@;0nEAa=cyy z7O>R9LEUV?tx3txD2SP*G;7{c5o)dOm3LlZ7eCs8Vaq(1JZ(fHUcC(4nwEO=MOBi7rl# z;EC21RTnbZl*}7K5(sar+@?me#KJ7uv!GECtQ(XFs_bK2G~+v8r3mA=5_0KHu8mpu z9^-j{5?P5WNUDbe2*TkghD@8d8!MOHG=0GCQ0-g-10`c!4q;0A$c-uZK1va(26TY% zf+R9mC0kgBG#K1#P1leb%o&X<5 z<{}3UqdzwG0RZ3u0Pugj{P&M?{yN6_ae&jr!obe>lZmB?y@{?l9izU5{+Oy{Og242 z+eF1+*op)fNEO>`@!e zijlQ>mpqu1fX0-VBaH>w5+%Ij>X>m2#c|^mL3u9(AIISQX>^IH0$X(Zj+44ur&Wv4ATP^kFI}PhB;qiSUJAk*yKU*2MTCi-u+Ic=R z4Q1poOuX-wO>R<6)e3W%O7)OjoWn3cKX!ho6oc+sloX!9LWh^<@N1Yr=(q3r$nzUZY<(Cy5U7c!hLq$k@+HUa^A^I(dEzGB`D()%-yvI z17aaYDY=iyZEMC9VCLx-dHhhgM&6?JT{>Emd-T&1DN~~@s%-`GyZr!vz_Gx?H8f^9 z@_WxHKi)nj$RNLxI@3>SzfvQlch^wxy#sB_;LN#Nucki!_!%YzXioh)0>hvQ!V%i7 z3hp-xQ&6Gv5Ks^M42&S=hF8cv-HTT z;U3|2ewA`KN>AoSWZ%jNN=c#2aLUhTIt6IJbo$u5!nkj4R76MsE5ET7f&!36j)$CA zMXE!HdOje0L4=NO?Hr2bjYeWqtM!{?E~y1 zXX~;Pxj+F2rR3r*N04dl#KnVyz$)gHLW8$wDT2>M0B4mti8m&0X z*Y|H1+cs4z?f0~MJKN7&164*y!AXm?U&Rgc(~c_QHzs~Q7JyIm1cT2f9&0Fw*;1%7p z`eY2`xzvuSR#z|55)9^6A;(?R<*7W~^SDHVp>al4C558^0bGwAQaa3dee*>6Y^KXc zAJvpYSZ#02vaZ}TaLJ9Ef*I*n&=;Afr%#r(WxiybDQnLTcQN*HF|ZLf%s8Dn6`K{Z z{xZyH}g*_Q*g2dL6DajU2yxAsTKORu*?*y=19?_+e&T$_Ql@qI#mS z&F|qN?ho5nGKxw0@>$uelC0~ZkEou>We_JG`Afr{bXL){;y^1)CiPLi%FW9GX&r_Gvu#>a6a+oQASXJn?fl7!XJx6Gj-?vN*oKbm8z>E2WM^C6*2}1Yo{9q zJ#69v5> z0Q%A4AV3^QlR1RdrJtEPgmk4<5~y=owN#LvM0rfAa8*}CWD0_4$>gPDl%iG8 z(9xTz@CCkNA4eg5O_Xm=R=sORf^Q}FaZymJLaF%TyvCBp5}vBId`2U`9g2z!?XPmE zlg5sn6`!M%#Mw1gbBui+WeL_j;8(Hxd{tg-(YP6Q zLoN|_qU@?S4=Jv&0K!)J^9&mWRD6qBJ3Q4ETmo^{9hZ#&ePOTKPKS%aAOCbMat~qd zD_|E@jlClJS4AcMMtuW?R2po$X8z(=`p`gq4+mYBIduF~xv0&nE5g+z@p4jd!>(Rv z;6N2tzO0|sV*dE^Fecm@^i^b!4qI2QsxF(1Oo$8Rv zmTLwE{j{<}xG}(X#14lGI4YVgSSJfOjn^fw)?K)9*6#Ah>&LS#`>!s~b@}tJk6CN& zvvaQzcO7>ZC2d|BsTNngwQi?UtmC8n-tHu#hN$rYsfz2MT?q|ZjwR)INXt8)*!`DF8!lNrLd z_Za4r^Mf5Cq5m0n_;LHve`be$ zDpTP(1SlRE6`NxXMH}Hfyg*#M6M)HMtm9FrMqM+;7r~ zIJq+L7E^G==OsHRG4ST|7TXx5x!UiP<~1~*6hbM-K@EGZ&uT*i>QWHj3d_g-AeNyL zZC6+~iSv-tdNc58aYxGCZhO{~vl)_7C15-(R`oQXJ=1&X28nm~>E_D4+5C2tRiTfK zUor=A*usF8Yx^U;;XtHsm5u91*B2{1HDXRM-`WVNz+*)*h_PK8ma<6a@XBX6LOv#; z2}rWDn>)Nii%h&b5%>XNC!Z>5pDd=1$cNp)wOinfmrl(NUujR-6FQykxXtx6o!vMB z8}i0Jv?$6vlq934VNNn2Jx{mjW1VUI=rw|kP<>VyJ8?&SV9K^LwC(h>&Vz$wfioaH zk1M;4(M>xhD;=H-RSS#Fj>+TmV=XK13D?lZ1of;5^MsF=&6?EpOf`UvCqZoY43Bu< zsFwH5j#;RP$2rE{Bp1dXbDD1N?Xw136-+->Ku`AhwfRZKDcTa0`EX%MJK>Iub>dWb zB_~vq}xjfw#yeS!lIHX!V{4&=KNoVL}a@7(faq8m@;+8RBupaJ9 zw~R5vC6V5M_t5{C-ih0>#|Ixrr*h5y3~l>Q>20X17pAEmVcB5e!Mgcg>D4{2>1q)L zp*p>w z?ctSoeDrv9c(m8-*?6(jzB|D_r)A{w<^-v$)J;}PaDtD3#ynjR>1*xDqcSzvm?uj( zdYIFWuOYNpt{Z#&_WcTTc5ne>nua3p)Ju#VZH=EU`aH2K-f-tA|rQ5s;l5L7tz?4g0HhLx+S2{#3Mzydp)-j)l#st zYa-myo~F%rqWu8V$=pPz2=g0q>l0ym@+vGT=b<_zo;IQb4HYbVBj@N7 zaj3#GO;K#pHZaJY7#waq8Z*gzHqcxt%f-!w*G#Gh*8=02&YGc$0T66Y{fLGzd?T=Pl*BEaQ1^jG2{x>((Zk8&Ilv=yxz~cSqRE+p6Z9!mV#5_9R=E*6c+G*$ zpI5vpu36<&KQ1=AEqiJ%6jI}*(qpOl%!PA2bIN}YF`uu_{YtGya%Ey0Vn)GQ!b=l@t%&<iUsd*4yc%iWoG zX0SNd9#jJ>eD?fetr{{gG3nqO5G61U==F9px?ybtIsBE_TgC5SvIqr}%56LN4 z2Z_9{$p+cf+_2M&XnsO*S`eQyT(ZxjIEN6E0mrCs{x=Z#u%o(@4TX7LB3xExJt*3F ziZteljPxAsL35927;;?Z2#pNLuLGWp*mOo>&G1;5tFc4Jqc(|oHJFI!vw5?$n*65K~&;c(x?;<$c>_I zRdXsxj8H-r%CH(BIkS}CVm{QExg6$E>M6&}kPa`HhbuWFa7jZ#@dd5bCTF;UDUGDE z4t{-gF`3p=0SE+Hy{V@{$!5+`j;78w=?j=yx;aIgx{hPdIw#4{=KzQk%kx5eVJEle8g65=Hg2P_0IIS#5A`f_29o20URYHCi9uOE9D!#-n2-(<$ci;!H= zod;p5iP4K3A!{vKL0(2o+oyVi>es3agp4qp>D-SUf9nn8f25 zvc7^=K{V`xo{7Jw$7lEjWBd%4uSOnTCc2MhGxy8r)&@KbV4TsGXmJP9zUAuj@jV<*;PJ`O2A3Qz@U)a@!% zJ7Z^i(hy1W2v>XBkTw#F^GOaNjPNhMb?1g0pvU3 zkXBr+3Kg0D=S1JE9@=$BX+}_uf|c~sME#6&Ik)Ih`ko&B1|$TNjIQ?^%RU3-*)-~1 z=|a(MpJI!xNVlJ8bQsBbnAnJOIXqHvhr(i6N+JR|1(E_y5J=+`C{p!&y0uy9tGHq7 z#BBTp<3Z~kqb06AbVc?YN2RZK0amO{aXu%-is#+PQs{3C`QpSY)=!vfu?<4Clbi%P z-a=Q6=e*i(*PiELt{q3b1uHJX<}Mmwebz%$qFUM1<4%{24W3cpgkLOO_xeL;19Ps# zy+@4RoTq??Hr+7|FKZ3hU=)4Z>{N8LH28zRGPf4IlU!sv1|2+ho@MEdNJ*)-N}bko zG;`o35RFwaQW{^jZdKdJd@Bj4>DI2MLDiAfRW^pCVRoBN?iri1#}rWQHgjUr4)Cw1 zHejDaIFF4{iSB=;W$@!WaqbOIX-LI!Pz~P5ACkQqA2eH<0lpQCPTYEQyWAy;{k9jMs-%+6{N{L7D%izUO5zpfG&!}f-4H|o07A~X#6FS+(DQKgePlH zC=CtYupcM#JXw*w z!_>%9&Dfvq1g}OXOQ#pBO?h!3fLRWgCDgKKIXSK@n)mtzH`#+iEXOkIOlPgSU#ra{ zN#8du4uqTu@IAT>P`Z&FTWOccyzg@p40YjaFM=kn1}vYz68SHDF+=<$v4HRlS+Km`*L}f^AKXB470wE!XP*QDe%^nd)Nn(*rjuwWtxf zE=69FAETMh*L978ly*FU&mbq1HZ<%MLJz1yzzWQ$5yo`_jE(rfz<3K4C&})lk*Ik1 z>y_B3k+of;dE&Sdny?_&__`x|W1zSIY@|%wcwTgl!a4S{b>nlXgiep3&(BoN5y%P^ z)} zn1_S-lTp3P0pTMAQfdM}#YjB;ziGfNMRJ`uETvJT2q{RN#;p-qOhBNYtK}CryzyHA zaw0!rH5JcuCgufz;H^70!DM4~!R7&tI7Xc)?=(iqIj|JFiobNuvup~$28eI)EeuXK z#}Ao2QH-=lEWpqzW-Y^73t3KYZV{_D9(X(e*MI;)g~}=>3Iamj-vs23L}v*YkWc50 z+P-jh0@oNVaoS^5FMhUIss6-obqrgUV3YhQl#@E5ghqG}n4+V{Z57um$^}~^qC8Lu zI~KT{%R2XU_o3Eg=u9MhJD$%b+j5~r?bY3)bUjvC+I+!BQlA_foVH%D>g1rcd5i3dK zm%;h(c1%f81%}w9&6WL8;8}2Eqt`7kfopb&gQ}niT3G02+u_@UIwKGgt$GeUjzUUS zAjVx6D~!R&ju`^(F99u>q42x#KZ2}liXtDqm;~S(N6mlE-Pi>@04T~DsO|{VxCK(X zSTo>CjZy}?g{G%OnDy1qxy_p(#?e|@lh(k(Bp{E{?an1SS%4L6su4-At!G7(vn;ME zO>pWGd1}$XHl}QV5@j4yk)^-YFyZ@tGx-S$%M41}(EM%a70&xG1aQ8qm<8_?cAR@vTJG&%L5?$RuXDu6GB-vi}9_Zi__A7S-*0YjiDT-NYi9$=f z^~nOmM%_`N?CL?JW*KMIii)5r3nRLys+Kj@si9Do#=)G~H1d0nehiWJ?ynbrH#^fk zb=#psWw)qZ9QLtmGd_wnk@_({hC`{9%FSe-65r@=I^Eaj|Mml0!Um5EG@QHNkPg$b zp!;FjfZ)2Jvu0<1pd8uB0eM5a%k_eTtEoUQxUUUJYP;jmO7Ez5yt1Dy%) z3@r;?lE_vr0CXG9H}NEmcRn0m#yw>k@RbJ7QELS>4Qf7iqW5`t_EuDyU2X7m-4eVx zr`PVY%opmD>>`2-{f6s+g%L6%b>swBJaW`t5MXDx#t~&7pgu}33?x>Z!5gE}j6+r^ zSI6gT#>nH0kaaUGI-@k)bf^XE&uAm}9X(9Q{e6sYo;1`PZ8g)3(pue(r5t~RmLTD=EfQ}`>KQjXWcrN!(pea{} z&5Hec;h)bMTy{Ki{J}dUytD9>VHbo_lYaX6eBI3ZqD2R65?5>4yE0(FSPE8Ri4bf% z*P_;Dziq&_9$e$GcmH;K=4j+1$5l$kcZOC56wS&yCzc9TXS(hgyn}6eE4RUBiHtiC zR?D*GoJAZ$ltQY?as4AYUR0J7iMg|)*sjOKP8m&J?$9p6HP{&b;{l{M=K4{Cx~hBm z-9hCPsac-Z1~Nd4Inj*FpXe62V{w^B)E7p)TWKBpSw0CzJV2@X{I!D%18+9P&pmA>6c|hcky?55tQOws`s2eUVygGk8T-$GX zy6n#EkQnnKuTWE7l}vs*k8hE~iNdzA*<>l{Lx!C5KZ~Ndy>=XjUD!-wFj9@Thkg;s z<_L$*-z+_pWWTmFP(<^1c&SV&@(`E)aoUK@y;oy@?pRSFfU0qMCQDbTY1g^Js;#C$ z@2*GL;M5+u10R;-H`K3Xb*=Pdc&@9REv3*ksFnIvJA_5d5{G^mR^MVEfa%)jcK+LU zv@d~4roGrGdU!0$p4_rlb1gckGE9-JPA76}i*V2NW!p+W%lGT~@_zQ8Vr_9<@Wm*{ z%=_1H_CP@|vg7qooE2`!&BfMj#v{wms?Q&950I(Zml{CUAy*{KDTcRRrs7%+W`m;3 zk6>ADufc+?2#2P+Oxr0@cYjXzxQPKpTleDVFGzSy9)xZ@)Q`&%)n1hh~ zqxZ5Kp;~FCqi$g1+q2?c1AbuEKFK9g!Tia@fn2W%v(4dTDdd3N)m>Y4LO9JZM9Ou; z2+uh_1IIz&(|2{APpLjNhu1T&9Q8S+FY9kN2usU>*DGzWd53r%kyFzc>w~lTNrl^= zw!a%~;7gW#aQje@mJ06jj&o~D->anVlDlOnc=sc6%lpKxLP>t+GC6p*y_H&b>1?*U zh$rNu0vshZv6I)F{oc#2yQcQW?UhsMi+lS`H;)vhSpQq$;*G}^Guq*$JA|KgEn#Ae>{biKz?W6w#0vG zEWP&iy02hw%iMUKJTGT)dWvV>#K{1`Cguv5Oh6cqXsOhdm*K>JNxIg961N$KM-_Q| zWvcIubrXb?V}H;8+i+QFtj7%@bSZx}UhxUj7Gpi6yT%BX3V+j; zd-p|h1)t0F$6_3^fvAlY5$86GRGbb!YK`EcF!$W0t)Z%l5Tk?Z=O(blm3SV0v5{0v ze-jM{NG7}yj?{+!d_?^pn^%DQisE(Mxgkh2-Tn+baR~g>=@1RREt(-?L0{}TN-cv& zMWW?1#pf)T_&J(1khFfz2s1|bx^#`f?(|Es2D3nZs$cXziya1QQHg1fuBI~@GresH(Py|1R`&AcCPrsh_?s;;ipt9EtwuG+nK z_uAk3zHPnc*8ZO>vl&!3u6%y?Q@D7zW>PmOYRO=i;^a{BJ&kSfsRMcd2#I z?IiFGO{QspjF!Tt(raa*oceN|(h8c6_iXLf6?2sWn!y9eH2F|pPir}&*2>l7SGU-K{H}2kpDeS01ypW$)C^V- z_BVI9@*>YdZKj8LnJ=br|ErG`zuAB{Z&4FJYY+@HI^kPWZ$K%L-1lLfl4H2f0w@Y{ zX^MSn53HdQz0EGV*HWoD(_sHp=Qy!+ngU%6S&fcNsTlYLeFykc7=tEd(N4NHEzjWn zgXsRBFn0&TT&O4T`KPw{)(`I(JTKS^i<%S{LoP@&hJjXd(nuSx@M()NmqcBug|8rz z;DA?XNbBJZ2}>p9=hz%+gW0;un&&se)ocg> zk>MK-tRpq`UlKP19K)&S!=4|Wdi0qE$cRWUW4py|h}eNs78W0C>|pv`aIk77n6yeW zCra5jouq0`dkDMe^soC-TH4f;RloMquDR)(qG8B!#R)XS7j9k<>qY=iFxGcTl+NYe zpCU9%w~d$Up}z!^rYRGr1%s|Ba3r?e6eK16z-qvauxlLFcm}|EN?;3u&%=Y`MQR_x zLx(?;SorIh6AJ13ta2&j&JZn(BC(i^2W`!HXTs{r4I*r9mpv*}KmI)9QT8b5X<=q- zoY0-SamQ`2GjKWTw4)9SDau+b3EZ47>R)}}t`CqFrZjp|`LVVpZjCYaHjZ%td7$*W z@_y#^hQE0;^zoq2gIH>HD0I{5Gx*H@&WPq%m@eGl8N3_osT#CT!OR<7VED5#Z$&Z^ z;^>!8D!)))GHAafLl3#aG}mDI8$$~JW4@}Sq?o9ah62k~0}*nHl9b%tbeSDF*b(P1 z^=5jts((sXgH_5@wu|y|((U?g#f{6W*Tsf2-)}zu>JOf{EPYuuF9|!R?OO1#w10}p*DZ8<_H}-9iTrZjf4iZw z#tiHtZua(}=?p7-y{3tvJ-$8LRKcf0je@WD+_O2)O61dk`|6>Rs7&_`!3)k`kC) zz}1eS(X~emkycfr7py2%BPx~NqFQfl13@+80dD@4E)BF*tzeJO+JDVm(+}Q01#c(j5Y1l$OG~nYn?BUqs3EG1YD z>$JN)Z?EnX4Q+Gd=IJQ5_Hr_AX5m#cTImnh?a$14ZqepD;l&)$p-$Z-%@@C-_F6O62JpS<8P0G7zL~d4&NeB9+tW$VA7~n!i_;{9uY%O{MdM{8r zycMto|K4mF2R)zO%oarp`ScJVxGxiZdMfG&aGp3*7=ZP9{-s_Sby#)9F}}3z9iep7 zL=olshB;)Og6rr*5n+E=V0`LN^1>_}a@4Ks6UI3@^Ul9=?qg}St$XPzN%~#s%)J=F z`SPL_rb?>Zk&+|jv$Qi~+Yh+r6eL%^twL1&EkXf2$uc_1+%IkrpQGk10K-&L*09n~ zf9_EFcPI^9mq}D_A#*&YZ#$Dh+v69xy`%nL21}KXYeRH@oR8~T^3MT6L9**>4D)X; z5_rQ*#nYEk-PrcTJ(3ICWPj$MY4{zIn`h0T?8H;33SS8I9H|@mlaX@$d+I{^b@h+I zmUfI_o#cY>4v0Xh#YXIJ{cO9ab{lPZ+2y@Ear*)B3!{SnNKQetpKqsb~hhPn=g{i9kJqXO^tAJw!NlqGFu|d&A z^^Fd{Cad?hDmmnZF!AWw8B9BG%C?JPwROHBybZ@s0*i+~@SS@y*B;E%)9zW$R1mb; ztqXJ7AtyfrdBDW}2dm4kSwKU{2bRB&S{qh6BKu_6YIBGqWd!XuqcrmX4oP;`r^?r9 z5j;|gCjiE{cd&Bsn?%fJ5n;)5J`zs%jB~DjV_Nk_=my=Snu3qG3Etu`FR zJ&qD%N)ijN9xE>%KNd8!Z(ogQk=UY9-HfnX+!qrE)o&rkg`8Jd*;bC3LZ={NBZ#l^ zx~%ES{{`_XRjD-GfUW_OBB^~HQ93ccrOe%#o(sJ@Zr%sV)b=`PM`f3GI4m0UQ;mk3 zMSDEWvf+5!u<-t#{vhR?hSNgC)O#=S(azj-vv61d;=R!f!@WVcMy$95lNc!xpnure z6=W{nEA64eI|?%6oZ!2y?Ggg^hw|t%!=5ouIoNmUA*^V_4W#`d!1{J54ay=7N4L8& z9dFE-m7(o_vMxBKpH+imdqjE^GMZRkg)Le$#e`HoiSudDFqhr-r@XD$Z4g9qouz=%BD<69i_ulx??Gks00H@9dExd;%(i%t{@ym#nJ8oxh1CnG)%1+oA? zZm+!R4^EH0M&@0R;~)PDw5lM%O8hVetD6&P{tL19#L##P6T@*%Wt4?p4y%E6Z$0&F ztOv&0$CVh_1bb~AP$ycpsWA?>|! zKaUFLLVg+hM>!i9aC4~!xLyD05ae^pmT@Ef~M9F`d>KC{Vxh|^aq2ADe z`Uf#;vhmSFa60=^)z6iW3TfJaTG>d$(gmF;HR_`aUhXIo`Hg2Qz~MnvJg7KQds6GU z#^`!kvKClxI>aB#akE7B5sf9XHI>=BAjFt$_x673B|?j~&ih8R%1@X>)Fz|Y75{C7 zs)AaMs3l*gsod&7pSH-Bxaetl^#2Z3*2|PY<7;q`8rN) z@~2mI`6z=fX?-xT4-l(Y5f<%yx>K4ppw{iW+o+v?`>dXZGd z-{h6dz4}4(%zP<_*iG+^?S}LTx#+;WAx8@QP@f~`FKZh6!Z_hasLLk!(qsX7IN|rh z*`$3-pVYs8wC<^zy3&2WJ7YO|x}M5;yWA-{St8xo@Oyr{Zu0LT?euw`qu}D3`&0bF zKz{T*wdr@i)b(<8eXcM3$}nn<`F7Fe|NOG!F7kHwNb3Kxced1||Mqql{`q!)n#Z5w zZeq2ltNr!Ur2o6_TW;io!^_rK(M5_#hwuGrjEFz<*89uV^Q!*`Q-6%e`@Os@yMmFZ_+v7Fh`}@r^OFp+W_B;A0=z>S2HX%qsA=ko zrSWDecY=aL9m+XI@I1Gw>*;?&e=_bEl5|o+LHTt2m%s=tJWaBECn|4;qj$Yf9*8IX z0s`a5MQj0wc&P(6sOUB^01Fq`^^T*aoG1fX*`t3RCIqg!KkpauLQ_Uf5JtWqpTEDR zygyv~`)!l^zw~X2Y+XMF-%@N*j7bZBwBH|A4-%G?EZzxM+{K>_pZDJf{6TM8Px@!t z?-3$R{;>X%Z;$UUyXdh6WRV!$r^E2YSDGov4xqqQ((W7qgEK@xE%$EJJMCGs_2a+U zT;u0iOr9tN*weYUd79(PGgPkL4JZRX1BMBByQ~MY)9UpVd?f!~+xLym6?*_W=tia` zZ=1n$F+GjVPdnqRrC_GTx=~t6r^DA~%-q|FgC`L|M>r{x+!g$FuWoSa(`oAtbLdDv z(~J6wNF|?bcZHe5E9VIU_*ONzxJ)NN>5Z#d3F~=?le{WqjYNebZ|B%Z>Vzf>Wy6LV z0?~L$61gklnXkUdnlacx1Ms_e2b{p)Tb+jqZyOCke*xI62M)LqiG1sd3x#J~vOgbQ zbBt{92mt2fOZ;i-@@bFaW@(F@8U{K3GXLb$r(mmK{igOUXYs<4#+YIgvJ=3h0qxbj zKaiPc`rA8IyJHx;dhg3;YNGCiQ&cSxu2$`3j8!Y#4#FtiB?BB0{@CjxI2c4B`0%nI zZAvn;a%?=j6`NIKX*VO}G1^;34L;vH_-`)P)-fG?6f}4D(^#gNB(MotekA zytfmg$FsWKdvCEfDC?9r~u0 z0?9({yckKoYr^nnApmvGiqJT)T{PBeblZa(SVnFW`tE-d5Y@Fj*XdQEpKql+ zg-ftPz`_)zYov1YWq8twPNS-Irkb1rMD7YHgK=g$9SCa7DuOQKsayIV`))|m$vPiX zFaFeRd!W%_p6Q+@@nFMmd3($G>ukRq+z3AavlR3=8>|PHgH3@T+1C1vOI{eB!|BwW z|L|=u4Frx<0?me?zxaipNlQm~RxO_efg~-r5Zh%;`D2d-O;)ysz503~a$rWxs|j2w zpM-Tf8@_l-`a(P`E=Ei}y-Z>%K)+g*ClaCb1fV&F1Jl1g+6@_nkd2qT;{ zoBJh-++Q-;ER_O5cfR3gj&UPI5(^hbD&??%4766XqY~;_0D)u352Ur8XD7guzw=Yo z5b{oCPw(n6nrYMJ6c^`X=ymSGdS2^`rB6NL7RkCAf}?{8qmUyhMaum7bt0_Iigt2@ zb#=mN_e0!frk67s6_?o>NNphPW{c_o`tX+B9m-G+z7$Q><9B zRdixKRS}M`ojw6ti^!KI4F0`hDs4Hs5l}hSzYaO+oZXJl0VjIyVdU0dXYHb)(3&cn z2&KD+WGu$I!kGbONt4D+UgC-&8@O(rkaLQiXj4{?Vk!5-1uK-Z1X0yK;5v!E6q)Di zI51hpma-D>u=VC@;L}Y9x#VGE!apVe-FaX`Ym&OW&juAt&OU3mBrc9|xk zpwK`>7QQD!fP$SP;j?$(LiJluIxvAE*N8&BOpHmIOtu>P^D*VvKP;{$0G#|Hwg)H7 ztlwX=SJ7|3<6jh1_X=uzzKNrRu9SyA{BCI|!Ojle>DOT&==(gZZJdKH~GQ z80y7E23qecML?t7m&4M(Fw&{m!I2tu+Pq*Dvq1t%-8gO^amO@Y4%VyPOcL*lSn*HXA6rq zQA3LwO^6(e!=KO1Sc#UQ33L@X)?DWO)Ec^)e;7!Gh=AfBY$it<&`;cI1s=U-WTEZ8 z{fo)#(AX$?Ip&6VHdjCILepg}sycrD`IYwUvN1q#HMvf_DE=gR8k7>Jo6I|HV>>2MgEn)M zJ^<>2cx0qkmN6v^+ZpjzYuf~u!9J|kbvXZ#@(;qC{e7xJCtHqHlIvLG0qKmXIn42S zDzt=DcthzkOp!=xYi!`SOusJs7)7-`!x2O7OzKTd>CX?jCogQZ2WK|BLrP&*uT2X> z#Z6a}&29R2@8;c4;ZVOXq5~AerR^m}L#8opr?k3ehmEx(*cy2^lP#wGV&n4aV`KWY zW*isBodS-vWAOSQCCh=jsf~cQHg*QBB}RU7J=8K~Oda?xwDzmYsKCLa5TQ{dPK0d1 zmFL$kO9|nICjov_LCZ6(-+fLYX#;mkJ{Y~OKX^XPUzywmm|C}D3Z}1K{?gws3$)7C zX)JIuFgMEA$$z?XOwX2j>XV$jMggQRS`FtgC^XSYV!7G_=X>7Lb^id=0g#`hyb{Ymf#JGuTZ zy>>%$v%b-)p&}&|bDOeOJDGii4lKPmhXX`w*5tG z{c5SNr=lSj@SW)xm|#;V`;vBbD%R8;Y(lh)RK>%LLd1!pFt@Rg4RW%l1XNxB{c0XN zHc@ndS@%=vm5|@*(Ol>GFM?xmSca5FD4)XQyoFUKssSz*Q84H{a#S-YHgP;dS9n6c{G7}bo_IVBu!QK<( zb|#x?>|*ug5wmw$nd2`)uD%z&>WPrU38v^TlEooC5Ab|UykxN@Y8RD4RJw>y~WozQrl(-E3?ChD7qJH8wCQLP6kZ8+!jqGK2 z$?nlGd-)eZ>2guO;VSmfH4}mPt9nwx2Ln%S+SchOS{A%d3xZTP+O)N%0+<^X2fyYk z%wH0|G3IQT@mJIN?agu{pN0_6m`9$?hw-Zr<@nZafQV56>&maYf(Fum^jGNTQ-%m` z1s6XHEu&f@A#teT9PNE7${iy5vDjnBx!vVO7{D5ZdTp?`} zX{9@X&s6^)Lp9gM2Ed8P{NS#{0pJc$LeppZT6jnZF~-AY3P?J{uqcVM1DQ;Ar7~Jk znYIpkI#Bz4!=G6#BFp&tROd>&2`&r7qX(j=VEZ(H;`J9V=x*5z+Q`;w#(L`zrKaEz zmQr2Uz6b|~zB&jHpk3%ZYk7X7DKz}!l!IHjs$vE_FKg$6Uqx!GTjMzyBf%V#xFaaO zpQ)`#CT>5IQ+D*}R<>_bh$*uE^P3d&6J@>JBi$vCSkTvu;B+Y|QS(?~0{uiky78PH zc6f#Y==1j4!=72<2V*Kyp3a@&e)@eulG4uQxc2g;gTal>KSLYgLSh6yU}p&@q)4v) zd_rt>Y!bD`Rn{QeBU)pLR?p7q$%!bF_tM>hD3ysX{3i_p0 zty>vi@a-1e9!U@cDSi8_JO>`xKamMC@AJK{Du5~SlIDUCAmeqe{E7ZoL= zBKlAA$H*#`Ygm1_wrgV$^3vy(JEh2q)6k5W^f&=-E)m?CAy{E1Spy<`OX}KVu#8Yq z`D$|WkOb-_BV&!2r|eYEl37WBTTu5X>!!WbC2$e)#qNe(Y{y94yZFeK$>t1z zrA{iflP|Fv#)|*^N_Mp;Q|McU&J9a&i43^T%RVa`>bNVL%JW0u1N=idY!oX``z?U> zuSvU4q7`S+Pi)_B!^TZo05g_Bmw8d<@Z%1 zpPJT}G#OO6Et}#T-%v!N+?7a-3_x^x5 z@l`*mo7ny^+C6fcZDBC^+|()c#Mo^uh(NQE4uiPOl)HMF=&dhR#RlIdMiV5T?Em2R0#MlWTl>ot@eyK5pUH zW=MRJNJjXHF66WQsyx?M^k7|s;p>!%+#noh%r>}%^DUH8c;K7o65f-B(pQ@~9>qg> zdWI})Ab$2&;}1A!?uf$i2iQTGR_)oOk$IIS(R9cTQ3tN>W*^PJ&CYAuJeA%AjM{QRj+V5Do#r3(V*c(;c|V6-AvzxZCX&#nVM+k*9}b%Za~RQSOV z_F!?`MP8854LKCH!fwOUvrdNgk!|4u888If&&11rTsJE7V#JX6l8d2W+QU35b2zNN zCOouvXAXX}w*GNxymHIoL2gmZ4d076WeCAdcuDkoIGxZf@A_R6ZA&54l9XgVuG-X= z61-V(4_9#pORw|J{0HN#;TP>QqRmKfaJk3=VgrbG07xAa&*4@otE_V%(+T3_51|pb znBgQLLQA3C@KAVjK}O^Q)Lt1aic(cW0k{t(ynY<4lO7Bi2NFy@y ziBv*6!vAg}4bU~*bHnV(Edjx7yy5s=M{@7Y7J|AiYN>zzMWgn}-=zg)dnX1J-0dU> z7UXKSf%&@n613%p36L`Hs;6mUqRfLCp1)7R3*qOjhc2F_MuGCgMe8yl7DL8her55! zCIyFuYO=!ZX2E@@g`S<)WydG6WOdonZ_2E^4f0D->k`A2{I*UtX5nGd{bxo*2ZFz0 zX%Pnz;Oq#iez4>kF(nmTL+ zu6fdXb$cXAR4i$-@gPzaA2a2FaPuUWix{SIej^Tfi0^S*FBQI2(A<-$P96fS%At9^ zPxs)p1kKi#L`D^)Mj6&**pvXZN|`tpN=tXbK5cw*BezZzU`TRWS&tX)(UL7PgmBy~ zY2O{$F#nljzy32HLkL3yR~P`ErAkS*(z}ghc|I@;1&^mB2Z?-4Vv(%n1Osz?|CI?A83a8?FxL}(VrBi1*v?8#Hbt<2_RB{f8e~ga~ zs`h{vSA>12d+$wR(^4wtFiGEd~|eRnK%eRwaY0+rmWbp;AU`5(7S(HqNtmrj1VmL>!_pM z@cOIz7KJ~WIP(^Qj?MMFFu1{Z=c^VjGvr0G9I|uod994tFBffoDl4ypF+LU9rD3B= z0&3iBJ0&O)1_}Khof7WRP4PWj5fmQkKvg{bP5wJ`Khe|8U%@Vc%O1p?WYlNZ2~}3= zrhi+oUMM(Rp!5syLB~)Y?(9YKB#^CyXcc(u_}Q&*vVVYMA#{1ZX*u&Xh|1#J9+dmp zesM)waNqiXPEnRCHu|XeZ`nCE~NfA*)QD;`}ctocxbj#ha=jMB^fbPfZ_Ic|fSvsU28!zk?{UH@!+@S>C zzcd~Ts?*_!780{{^h0NBsCMq&F2hVMMVBPP5nO>bhG{jW>-dHAL-0;#|8U(JdF1ts zgCY9mtXhISjnQ=TdywuV4fmeUU0=L3zycW>#=@gbh6Hv!aRE=hpncYN9rC5w@Ri86 zhh$v&(3L9QhIKU$^7^iIrF|A$X0@#BzeW1P z2dp0iCU)=og|E4I7R^*Ivr@aSlw){(&&qKPeeP{D*T}t=Vn^nd#Crp2X6m*pN_e}F zH)`G&)GD87{8SH9;6(e6=dS_Pr{GL-U5BHGgV?~f&=x`$@ah?YMLW3sYx(e!C&%XL zmR753#$8adDQQf#p~eb|k7voU`l!DFTM->(;&1ONp+yi&j%K#A?&hyC{RxVKx6mvK zpI%@zPFO2XV#W;>OK$P1fPp_bJku|ZfjQ}v`;TXiqhU8bUqE`5x7fy_`_Ivk zDA8>IyPYx1=LzPiqe=KQ0@H@ZJ;VC+jL%v^EC=;;Tq1Gyva`lE^m$yX8=lLoKU81T zcy~=)k8m|wpNU;SM89cUfzuv)Um5*1Pt`|#Z5-C8shEck_;`z|wNJ%E1x|&(C_Mw$ zs*|2E9=dXNn7CbQo5j@K(0+ccu4m&sI*DHrEccWA>8+XaOS+S2I88Y4g0U+z{xA1x z5y*`%_OmU}q~D&@=sbjz=VU{b*0!hGG_HB+_49Fkk@!_O z9F;#}XyU7jldYSUkFeQ8lx>|ahRlw`=j!^+JTS4lja!#>Fzv071><#v?elt6yaSn# zlZXCeI@QIO3@n(90aAUqK$#B4>H_Q=k=Zik42ZEY%}sN+LW|p$P1tsOCe%>r8Y#RZ z_TV5k?+pWd=|(bA5{*W>i4(G@u?B`q_z{Ve7Ev&Ggy@}p>~Cw4gP18vJ@p@ZF>C)m zQ?U7Y?sEt;wQ-F(-!}#-#y@kPNZ8`+4_g^b#_14UL?ypW8Qih&Nt;#eV`A5y$|i`F zus*tHcaU5mbN&%Bb09$&f+0jJI$}YTDnq@?YZ@Y3DR?JDMz0g}jXfY(Ne6C`QK4fC zE3@`wqA+%+hyyrp$vkjn5!y7&23cEQh+-*tN?cbU@$->e45+xc3!4pMiLE4`=DcgI zKyfl$dK9g!rmv38Q`%-$=f}0b`; z<0rU=mUEml@afhih@BzVGPkFl)sIONlJVST+>k#x4F`x*`Z2)B_g}821iah2934+RDG)|$!aEdpStnvo z)wN{iJlh+2{#giGsJ0!PH*hPUCF1VN(l7XOmpWkF(>$M)fxyf%#nPHnLw8yOZ)cB1 zT0_C3>?vHJJ+)PRlO5Ioh1R#M`pZLd+rT-w>&6&V-o$_%3_ z>wR|&iNj-YaNTX#xT@_dn7^Z3z40vP?Om|-RJD5lx6PZTl3#!xyKXmUuNc^ow5;?* zpb9yKz?w8YtstS+Y2dDGh^AzB73$rvowoi`|Kt5zA3L5j8?C@jJtyu@tV={^gBOg{g zs$(%&*tulLOq$-y=va|p68z_YML54x$1g5|M2coPRPJX1N_lPksh+;YXPfMFN$-Rd zoY)wRN-MB%KUeDZnrK^>%EOZX^H|Q?+ou2H2YlfY{rzU?{hsChuE_swb@T1U|Ls-( z{if^vMgRTk{Nt~_KbzQl)!t24*V~k7Pt5L{wAcGzkN3YW?|*&X|2n<@{b=64N!v7R zypCT=I}l+J#lQ_w^<2t0WMUCj!3{C>Tt@QxVcKVXR6{J=50XS(VLNz^FXTY|{>w;y zKb0YtW81GE)q^B)SMd&>>q|aRfBsU=8$L)b@_P{fH;LANQ=02EhAFQ$ucH9TY?SpIf!87~d%Y88B z0hsLota1Q$JOIZXfNKuGGY8?E#~p!dj=(cV;L9U0<}sM<7_4#(cC@#X&DZ-6WjT|Z&*qPt{|90Ey zE;BJcCz(!(+u1HNF}E$4HnpEFrmVx%{jc`$zc=3hFITI_sFn?tEbPo5J6hfHHh5)f z2`N^P6#XB$TT4+j8n=$QeYQdl$TV8Ftax-TL&`QB_5lBf9sifi?ti_L<3q>)C>~QK z?~j{rPB`-K{{LMRpf^B8}> z7w_<{2J}CxKhN)d;&k@>7*dWGI{lxomq@!dr`nJkV=Q@QxUu)x$ktfAY*JgMR=vUx zuRYp|ABR}xj7XQ(U33cz$Xhi@0dEhr@;hixrj>f@+26+(j5L46NoBGRVt4VCg*KR> z-=D5EIApFev3RfaW(q=HJZ>Y`?Q$&5QlxxGjYBJmxbj+Le^x!V*GZt<73mi)ybap5 ziWH`e?S!1gu?jw67Xg6$(RV&8=d7K$wxApn#eec&D(tqVkaCipomC$AD&SRi9XMF% z@d~=FpLW+?;1KrGqh6eMWp=;S13Fc50=3|j4L!&4e~s^sCaFqW!NNP_GmM=O6j?>qerT83C~ci|W6=5f(-R1m`d1Tc*N=##^mXNk zra??0R17l7(^m_$vO1g)ecy`6Uw9HK6ISh6|TjKM4+h~udYm8{3{)FWQDCN z6Hb~l^=8kl8DZns{jUIlj{}oGZM4VLY05-q0F^>IALUvU?M|{lVSQX-J?ih8U(~8L zKSdK8EHRZ#M=f^_7*2tPT`3ct$hOFc#98Fw$uxTC16v>MOS#X>iUj%LH@5G0^WLyJ5s%6wy{3&maloAIcW7Mn7U{N8-YWRyM-O znIA(M6(0vRj*i?kO50^qOSWGCe->hluITDqv8= z!~_^jPIAB{(`L`VQRXntO#l-1VL=m}hxd}B&{l;J#c~p@YF^=38yWpAx8Mp724xmy z+U7VumTn`Z-r5#@lcKLYp#2xV6vv9vEOp>?gb7HwCahZ5AZj7U0+iJ(-k+rxfwxT> z6&SM@7vji{W{)FS76WTg+kjFq3Mk_wc^q*&utSN_)fozF^GNBU)X6ZMeFytjXQuoi ztC11vQw_f>{E61Bw);A%OMnR=FQ&11*1(;P+Y=<*jA=GkBC$zMwYI8J_C^yOo7!GX zx#jB4+RaSQ6cZbK_;5uYK2z4w>us9eqhl4mlR7sVfj<49K^oCB52J#e5ljaGcT4Fr z7j(^$+=i7B&Zn#Zt-1IKm{!7RSYK_NM%(JGh~|Ykl`io_PH$MXx0WSO|DQtgzCSb6 z8$_(mUSBRk_qY}pS?Cy>#f^4?e)%8%Q^Ur|&UT@e>tSK>u0TY!W+ofAP9!iFYt)u9!Z z+_Nn$uyUXqAPdean|2g3yDq7i#ROJmg%c zC`AaDA*g?FEWTI7S^moCHhFh^Bxei63kykP`R%Kjxp{niNe;5>JdQWPY)?8LN)HS6 zGE|?Z)L{`Q(HMf%alPaLi^>_(NhZ{4Y^7LF!Zau@E?sD=@+51f?RH&x!W=2yhqdhj zxKfrF#L@4LZ@B$^raQY5X_6q^k1|5S_(#kf0w`n??^MV$Rw>uCb=&0>o*o`_A~`n* z6(Vy~ngj8Y+uJ~`kbcO<6N7FoPRt<=$5;4^Dop}@5ma_mJ7F%{_6X}tvKAwKI!(u8 zvIWrQ{Lo`LF*kJ+Ng@U+u5}or=?{NmzYBjD;@?vuOoa?HiB?m|`4!{->NfLL-#!$q z6*rTO4_)FIA5A916}fBkNi0P&PS={*Y-Y$Y7?Qt}jHP0Y^zqIR#72Eq)5upmrv;|% zQj(`9$r=D$KZOg;7iZrrG`Iiw>nZNZmBmA!Qx$D5# z*T=@Az5Q8G>XGJD$`jpb-g8*E6Z6t-aj<#ktOTfXl!;>VI8=_ttoy3&l|pL=Lv#W+>E%cD$UFA7j05HY@GltA7WNMVx7I(oa{4oGM9G89;T zr3%m^H{4#B!&{Oy#af7JX=?G=imp}84&XO^ojwr$u0?i@X;o@sSS7tLE8bg-Mo3-P z?=huq@%#IsWR+1pIDas;d!QT@P=@tWkX78hA+g^!HHh~T!IXERzb<;Aw+2=YBcsQ7 zfv|d?UA6yPVw2&k=~FXRiY>1w?M<)xIMfxW(T)Ii5V5T&95zGnv&sN0M}UHWQ9Y`& zPF8>{Hg0qLqlR2?GbwPo5$ZnO0VVcloGowQ_<#Z%pDF{cAkyasmEvz9p{BEW2tU^B z(BN0TU4F$^OOzQQM3Ordt>LEs>QDJ#JKKODD_==Zgctoa&`5i)|DO|T6qA8Nh7c-e z&7S?$7&DII4w7iPfgiUrj4u*F*s3$_SD2H6K(VI$;cuB*J46^LE#c}53TzBv2@oBl zQVrW;XldI0T&b`GPNK4Iv367q%gH3A$~#uW$oPGh=V4Hiy`mb47T~8`fv^j$*Z? zlAfje&6B!ws$k8Xq^74A(*N-cvs}|qPVm9&{Xv8JU-8a$u(4*4WBS3myEhs+HKH`B zs1VLVOQ+5X{$S$&9|ty_ka_*~Ax54~_+K-yol8ZULgea)gv@#13*x3+R3{aw_T8*_ zUbRrYH=W$hZ#qY@bjGu;Dr0RRg}2nWat^Nb?O~R^=e>)~%Gf!1*xA0?m)gVZEXIL8 z)pLoiT-l7yrB{TuH3P5g-^n;JMJm1m{L?pM`(4QOv`WcVw?gC2#jr<${@RTNm6^!Q zv`0}$KRXg|rq-rePG&=Mv*PsJboR(&Fk`Gxs_*X{HGwpA8K-0TjFOb4Kl2&Iz0`oT zj`{RLKmU$e>e!59x&n(!)B%F*DA8^%co;vVOmu+X8wo4$6pJ}<`o3R8EcAktnSKcY z_GQ%Nf;}JP^R81l;1LMFd_TB#g)v1T#*_Y(I;WO<;L3uJ?=kTi!L0C;W}X=u4nD2p zA7$-;z_d6RS7v;CM4nh~mp=${)*;=eykut4lZx0@vBr6DJSkYlBxj6nIuFTU19_h!p0lhpdf}0*Y!Ehf1Z$yoQIu`2Il+0 zbob}U4{s{7vT`WlOKFrB2M7vGU~lgcQY!|9{TgL;{N-MdA@Y{p6L~M5`N|GGsAL)~ zYvRGC*Ir&~Gkw{j-<}x9`G=c+zAnp;1UC&-&Mq-z%~L(GgDA^|hh?N$51`f zqs%;qm%`jRll~LENSf6+MpoE~dtlIDjkpE2`Ub@}J~xH!EPRy66Ld;_JA-VJdrTG{ z*6D8~;Xf@;)6os_wA9V|V2C%c@}8+tZp5)un-FZN19fq=y2vrOd3VKX{e*(y2l+LL ziU$*L0giu2x_oAgw~c#drJxucp1$Wr3;i;J(qp~Qz}lCi*r7QSrr_zOnXeH_3eRfo^9MVl`>UAe{0Bs60}Zy!BEXL{Ch=#l;-(DA z{$RDA_I=8Gg{>laKRPfY%Q3}J(;jYDVWe zr?Z(^bn3d@suaebbJPdoJNQoy?<1?YbkmWz(6ip+aTe0WjDT7bPWw$~v*eQREE>@9 z<-^yGZU^S>!-95=JF9(dJd1bt?lFUe37ImBl=kBpN8>EbK_ZhOU%XV*Grw9f4Nm4Gwa4nlC0LNHo#iFJ)Dz$UxayKso0=&d1KCn-95q|sq}G@9|KlqdbUOIegwlP!Kc?QCMI9?JDJ{q}&0pVX-xwQH zlM8>Ai4*)QUPM)nZoiWX+4^M8sJzZ)r*E%5V*B0mu&ji|S6@xfGdrE?S+r9%y6{0< z!i1;B35U;~8qqu=?pE3_DaEBrP7t%ro=wj@)8_7;zq5NS+L~%TC#U@HGtIoOcUch| zf2H>`<@)G^E5ojzJ-fPp&-SH8jVEpWUxC&6Sqhtd&ulY?^eF8&Sk$ibf)@)rxgCx@ zU~ZO?y5(|A%FMqvzn>gG?z34=t^KYw>pLvqhwuFqet-Bm?nr*@`{alCwcjjyxHsT> zYMI3Lanet&9$zjyQe=7ON!rmTONW@YZnIQysXaU+MR0~b8JuK*S2{( zC!6{?e%Rq~d$!4halKsZJXWvlm=*nhlTJO_?ckIAX4t;Kn+dJVUT*3w9pTlnd~Ap1 z&WpNx|7p>$Z~Lpcug7+nx~XZ@UGbz2Gq+`C-kNmvmqe!_mlMakhyO9qzSU%j^P=6Z zh1))ts^$+Ezj}UKk3Nar;wQO33W>G2wX=VE{^(^#zIPp#QL=k``P=uMzuCGuGv9y8 z>bGSBclTUqpa1y1SKDaUh`_XYKW_im|KBNXz8g0ovdz)X+jd?0MOM)@#&u-da?!oR zu8N#x7AI~g|2j2e;V8?0qI!>Pw&y{b``6UP%gH?+FLK@x*5{|34YPJlwr+Gj*J)#h zm&Nq$`>vD@Fb}9~cwN%#^tjatevhY4$RGaoR=3A8n}gS^FUuRn#I}`xb|7Qp>W9g{ zbp3S3_Cw0#TdOYlHEOt~SKvYCN8zUm3QLd9n`Lxpu*vqzTcR2q&2h{*+j4#Qjm%~j zRO#+RS~SdFlpXojXN0PM0tjW6bvJ*hI^JZK%@Et7Zd9iyRC(n6zEdnxJqKm?AMdhE zcBbvbT;~bjZ#vxPtCd~P4=UeeKCRfH(j|SLQX2UASAqGvth}Pf$t}abH8;LLHzRDt zIFnz#>lxiWZQQvAFMm&)_SomEl0!46iGUlA;xd!iVypx#sFYWgImULy`?`+@ZnuJZA zEx%$@QfZ&Hzig!J#7ou1XYZc;6L$5_jQsM7Ye#3dJ6~29TxKo%c0+{1eY5F>gPpHc zBxhC>6~9!;{|&HS@uK+NpV@P=26sB1GU%JQ!s6L^>qcAIS1#)~p~th}yn)}ul|GDX zb@zt#gT)@_^K&=a7QQ~3A~$_bA{@c}0~o-6zMv+?GO zyl&WLSX~Yef6(JXRQ9LW3-25(FG-qm-8QS_WYEf=*1!B9eL2p!q~h(m)TEU1syxaJ zvL=cOnb^#~>OUWUSirxGw+)2{iK^bGUH$9vtY3$_UCmz~ri_bGCaI>o1cy#i(mu>) z_0s)e=eRHpGwgF{&1FUv92OoOrUgzCM-4|4r-bS_XZS)f^JB?L$-&V

fIaPy>&! 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 from pyaedt import Q3d + >>> aedtapp = Q3d() + >>> data = aedtapp.modeler.get_mutual_coupling("a1", "a2", "b1", "b2", calculation="DCL") + """ + if setup_sweep_name is None: + setup_sweep_name = self.nominal_sweep + + if calculation not in ["ACL", "ACR", "DCL", "DCR"]: + self.logger.error("Calculation type not valid.") + return False + + if not variations: + variations = self.available_variations.all + + assignment = {} + + for net in self.nets: + source_name = "source_1" + sources = self.net_sources(net) + sinks = self.net_sinks(net) + assignment[net] = {} + + if source1 in sources or source1 in sinks: + assignment[net][source_name] = source1 + source_name = "source_2" + if sink1 in sources or sink1 in sinks: + assignment[net]["sink"] = sink1 + if source2 in sources or source2 in sinks: + assignment[net][source_name] = source2 + if sink2 in sources or sink2 in sinks: + assignment[net]["sink"] = sink2 + + move_sink = [] + is_new_matrix = True + matrix_name = "Original" + + sources = [] + sinks = [] + + expression = calculation + "(" + + for net_name, net_props in assignment.items(): + + expression += net_name + + if "source_1" not in net_props or "sink" not in net_props: + self.logger.error("Sources and sinks passed not valid.") + return False + + sources.append(self.net_sources(net_name)) + sinks.append(self.net_sinks(net_name)) + + source = net_props["source_1"] + sink = net_props["sink"] + + expression += ":" + expression += source + expression += "," + + if "Sink" not in [self.excitation_objects[source].type, self.excitation_objects[sink].type]: + move_sink.append(sink) + elif self.excitation_objects[sink].type == "Source": + move_sink.append(sink) + + if "source_2" in net_props: + # Both sources in the same net + source = net_props["source_2"] + expression += net_name + expression += ":" + expression += source + expression += "," + break + expression = expression[:-1] + expression += ")" + + if move_sink: + sources = [item for sublist in sources for item in sublist] + sinks = [item for sublist in sinks for item in sublist] + all_terminals = sources + sinks + for q3d_matrix in self.matrices: + matrix_available_sources = self.omatrix.ListReduceMatrixReducedSources(q3d_matrix.name, False) + matrix_source_list = [element.split(":")[1] for element in matrix_available_sources] + matrix_sink_list = list(set(all_terminals).symmetric_difference(set(matrix_source_list))) + for initial_sink in sinks: + if initial_sink in matrix_sink_list: + matrix_sink_list.remove(initial_sink) + if sorted(matrix_sink_list) == sorted(move_sink): + is_new_matrix = False + matrix_name = q3d_matrix.name + break + else: + is_new_matrix = False + + if is_new_matrix: + matrix = self.insert_reduced_matrix("MoveSink", move_sink) + matrix_name = matrix.name + + data = self.post.get_solution_data( + expressions=expression, context=matrix_name, variations=variations, setup_sweep_name=setup_sweep_name + ) + return data + class Q2d(QExtractor, object): """Provides the Q2D app interface. From babac267bf81f629cd6e1b6ed6b36172ddbf951e Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Thu, 29 Aug 2024 13:18:15 +0200 Subject: [PATCH 18/23] FEAT: CreateReportFromTemplate inside create_report_from_configuration (#5102) --- _unittest/test_12_PostProcessing.py | 17 ++++---- src/ansys/aedt/core/modules/post_processor.py | 39 ++++++++++++++++--- 2 files changed, 44 insertions(+), 12 deletions(-) diff --git a/_unittest/test_12_PostProcessing.py b/_unittest/test_12_PostProcessing.py index 181ef201e81..7e6a6a88754 100644 --- a/_unittest/test_12_PostProcessing.py +++ b/_unittest/test_12_PostProcessing.py @@ -194,15 +194,18 @@ def test_09_manipulate_report_B(self, field_test): ) new_report4.report_type = "Data Table" assert new_report4.create() + + local_path = os.path.dirname(os.path.realpath(__file__)) + template = os.path.join(local_path, "example_models", test_subfolder, "template.rpt") if not config["NonGraphical"]: - local_path = os.path.dirname(os.path.realpath(__file__)) - template = os.path.join(local_path, "example_models", test_subfolder, "template.rpt") assert new_report4.apply_report_template(template) - template = os.path.join(local_path, "example_models", test_subfolder, "template_invented.rpt") - assert not new_report4.apply_report_template(template) - template = os.path.join(local_path, "example_models", test_subfolder, "template.csv") - assert not new_report4.apply_report_template(template) - assert not new_report4.apply_report_template(template, property_type="Dummy") + template2 = os.path.join(local_path, "example_models", test_subfolder, "template_invented.rpt") + assert not new_report4.apply_report_template(template2) + template3 = os.path.join(local_path, "example_models", test_subfolder, "template.csv") + assert not new_report4.apply_report_template(template3) + assert not new_report4.apply_report_template(template3, property_type="Dummy") + + assert field_test.post.create_report_from_configuration(template) def test_09_manipulate_report_C(self, field_test): variations = field_test.available_variations.nominal_w_values_dict diff --git a/src/ansys/aedt/core/modules/post_processor.py b/src/ansys/aedt/core/modules/post_processor.py index da322c73718..b9c3c418a94 100644 --- a/src/ansys/aedt/core/modules/post_processor.py +++ b/src/ansys/aedt/core/modules/post_processor.py @@ -2258,12 +2258,12 @@ def get_solution_data( @pyaedt_function_handler(input_dict="report_settings") def create_report_from_configuration(self, input_file=None, report_settings=None, solution_name=None): - """Create a report based on a JSON file, TOML file, or dictionary of properties. + """Create a report based on a JSON file, TOML file, RPT file, or dictionary of properties. Parameters ---------- input_file : str, optional - Path to the JSON or TOML file containing report settings. + Path to the JSON, TOML, or RPT file containing report settings. report_settings : dict, optional Dictionary containing report settings. solution_name : str, optional @@ -2277,18 +2277,47 @@ def create_report_from_configuration(self, input_file=None, report_settings=None Examples -------- + Create report from JSON file. >>> from ansys.aedt.core import Hfss >>> hfss = Hfss() >>> hfss.post.create_report_from_configuration(r'C:\\temp\\my_report.json', - >>> solution_name="Setup1 : LastAdpative") + ... solution_name="Setup1 : LastAdpative") + + Create report from RPT file. + >>> from ansys.aedt.core import Hfss + >>> hfss = Hfss() + >>> hfss.post.create_report_from_configuration(r'C:\\temp\\my_report.rpt') + + Create report from dictionary. + >>> from ansys.aedt.core import Hfss + >>> from ansys.aedt.core.generic.general_methods import read_json + >>> hfss = Hfss() + >>> dict_vals = read_json("Report_Simple.json") + >>> hfss.post.create_report_from_configuration(report_settings=dict_vals) """ if not report_settings and not input_file: # pragma: no cover - self.logger.error("Either a JSON file or a dictionary must be passed as input.") + self.logger.error("Either a file or a dictionary must be passed as input.") return False if input_file: - props = read_configuration_file(input_file) + _, file_extension = os.path.splitext(input_file) + if file_extension == ".rpt": + old_expressions = self.all_report_names + self.oreportsetup.CreateReportFromTemplate(input_file) + new_expressions = [item for item in self.all_report_names if item not in old_expressions] + if new_expressions: + report_name = new_expressions[0] + self.plots = self._get_plot_inputs() + report = None + for plot in self.plots: + if plot.plot_name == report_name: + report = plot + break + return report + else: + props = read_configuration_file(input_file) else: props = report_settings + if ( isinstance(props.get("expressions", {}), list) and props["expressions"] From 534113b0406dafb35fedd870ffb4ebf165eaf935 Mon Sep 17 00:00:00 2001 From: Samuel Lopez <85613111+Samuelopez-ansys@users.noreply.github.com> Date: Thu, 29 Aug 2024 14:02:18 +0200 Subject: [PATCH 19/23] FEAT: Add paste option (#5103) --- src/ansys/aedt/core/modules/post_processor.py | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/ansys/aedt/core/modules/post_processor.py b/src/ansys/aedt/core/modules/post_processor.py index b9c3c418a94..9de451e4188 100644 --- a/src/ansys/aedt/core/modules/post_processor.py +++ b/src/ansys/aedt/core/modules/post_processor.py @@ -1281,13 +1281,15 @@ def all_report_names(self): return list(self.oreportsetup.GetAllReportNames()) @pyaedt_function_handler(PlotName="plot_name") - def copy_report_data(self, plot_name): + def copy_report_data(self, plot_name, paste=True): """Copy report data as static data. Parameters ---------- plot_name : str Name of the report. + paste : bool, optional + Whether to paste the report. The default is ``True``. Returns ------- @@ -1301,6 +1303,23 @@ def copy_report_data(self, plot_name): >>> oModule.PasteReports """ self.oreportsetup.CopyReportsData([plot_name]) + if paste: + self.paste_report_data() + return True + + @pyaedt_function_handler() + def paste_report_data(self): + """Paste report data as static data. + + Returns + ------- + bool + ``True`` when successful, ``False`` when failed. + + References + ---------- + >>> oModule.PasteReports + """ self.oreportsetup.PasteReports() return True From e0dd4e1d1158a4200ed92af7a752a8688e62eafb Mon Sep 17 00:00:00 2001 From: Massimo Capodiferro <77293250+maxcapodi78@users.noreply.github.com> Date: Fri, 30 Aug 2024 10:00:05 +0200 Subject: [PATCH 20/23] FEAT: Added support to asc files (#5104) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: maxcapodi78 Co-authored-by: Samuelopez-ansys Co-authored-by: Sébastien Morais <146729917+SMoraisAnsys@users.noreply.github.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- _unittest/example_models/T21/butter.asc | 360 ++++++++++++++++++ _unittest/example_models/T21/colpits.asc | 64 ++++ _unittest/test_21_Circuit.py | 5 + _unittest_solvers/test_45_workflows.py | 8 + src/ansys/aedt/core/circuit.py | 253 ++++++++++++ .../aedt/core/misc/asc_circuit_mapping.json | 102 +++++ .../circuit/images/large/schematic.png | Bin 0 -> 994 bytes .../workflows/circuit/import_schematic.py | 134 +++++++ .../workflows/circuit/toolkits_catalog.toml | 6 + 9 files changed, 932 insertions(+) create mode 100644 _unittest/example_models/T21/butter.asc create mode 100644 _unittest/example_models/T21/colpits.asc create mode 100644 src/ansys/aedt/core/misc/asc_circuit_mapping.json create mode 100644 src/ansys/aedt/core/workflows/circuit/images/large/schematic.png create mode 100644 src/ansys/aedt/core/workflows/circuit/import_schematic.py create mode 100644 src/ansys/aedt/core/workflows/circuit/toolkits_catalog.toml diff --git a/_unittest/example_models/T21/butter.asc b/_unittest/example_models/T21/butter.asc new file mode 100644 index 00000000000..429740dad7a --- /dev/null +++ b/_unittest/example_models/T21/butter.asc @@ -0,0 +1,360 @@ +Version 4 +SHEET 1 2536 1712 +WIRE 1040 512 896 512 +WIRE 1168 512 1040 512 +WIRE 1296 512 1168 512 +WIRE 1376 512 1296 512 +WIRE 1456 512 1440 512 +WIRE 1600 512 1536 512 +WIRE 1712 512 1600 512 +WIRE 1792 512 1712 512 +WIRE 1872 512 1856 512 +WIRE 1984 512 1952 512 +WIRE 2096 512 1984 512 +WIRE 2240 512 2096 512 +WIRE 896 528 896 512 +WIRE 1040 528 1040 512 +WIRE 1168 528 1168 512 +WIRE 1296 528 1296 512 +WIRE 1600 528 1600 512 +WIRE 1712 528 1712 512 +WIRE 1984 528 1984 512 +WIRE 2096 528 2096 512 +WIRE 2240 528 2240 512 +WIRE 896 624 896 608 +WIRE 1040 624 1040 608 +WIRE 1168 624 1168 592 +WIRE 1296 624 1296 608 +WIRE 1600 624 1600 592 +WIRE 1712 624 1712 608 +WIRE 1984 624 1984 592 +WIRE 2096 624 2096 608 +WIRE 2240 624 2240 608 +WIRE 1040 720 896 720 +WIRE 1168 720 1040 720 +WIRE 1296 720 1168 720 +WIRE 1376 720 1296 720 +WIRE 1456 720 1440 720 +WIRE 1600 720 1536 720 +WIRE 1712 720 1600 720 +WIRE 1792 720 1712 720 +WIRE 1872 720 1856 720 +WIRE 1984 720 1952 720 +WIRE 2096 720 1984 720 +WIRE 2240 720 2096 720 +WIRE 896 736 896 720 +WIRE 1040 736 1040 720 +WIRE 1168 736 1168 720 +WIRE 1296 736 1296 720 +WIRE 1600 736 1600 720 +WIRE 1712 736 1712 720 +WIRE 1984 736 1984 720 +WIRE 2096 736 2096 720 +WIRE 2240 736 2240 720 +WIRE 896 832 896 816 +WIRE 1040 832 1040 816 +WIRE 1168 832 1168 800 +WIRE 1296 832 1296 816 +WIRE 1600 832 1600 800 +WIRE 1712 832 1712 816 +WIRE 1984 832 1984 800 +WIRE 2096 832 2096 816 +WIRE 2240 832 2240 816 +WIRE 1040 928 896 928 +WIRE 1168 928 1040 928 +WIRE 1296 928 1168 928 +WIRE 1376 928 1296 928 +WIRE 1456 928 1440 928 +WIRE 1600 928 1536 928 +WIRE 1712 928 1600 928 +WIRE 1792 928 1712 928 +WIRE 1872 928 1856 928 +WIRE 1984 928 1952 928 +WIRE 2096 928 1984 928 +WIRE 2240 928 2096 928 +WIRE 896 944 896 928 +WIRE 1040 944 1040 928 +WIRE 1168 944 1168 928 +WIRE 1296 944 1296 928 +WIRE 1600 944 1600 928 +WIRE 1712 944 1712 928 +WIRE 1984 944 1984 928 +WIRE 2096 944 2096 928 +WIRE 2240 944 2240 928 +WIRE 896 1040 896 1024 +WIRE 1040 1040 1040 1024 +WIRE 1168 1040 1168 1008 +WIRE 1296 1040 1296 1024 +WIRE 1600 1040 1600 1008 +WIRE 1712 1040 1712 1024 +WIRE 1984 1040 1984 1008 +WIRE 2096 1040 2096 1024 +WIRE 2240 1040 2240 1024 +WIRE 1040 1120 896 1120 +WIRE 1168 1120 1040 1120 +WIRE 1296 1120 1168 1120 +WIRE 1376 1120 1296 1120 +WIRE 1456 1120 1440 1120 +WIRE 1600 1120 1536 1120 +WIRE 1712 1120 1600 1120 +WIRE 1792 1120 1712 1120 +WIRE 1872 1120 1856 1120 +WIRE 1984 1120 1952 1120 +WIRE 2096 1120 1984 1120 +WIRE 2240 1120 2096 1120 +WIRE 896 1136 896 1120 +WIRE 1040 1136 1040 1120 +WIRE 1168 1136 1168 1120 +WIRE 1296 1136 1296 1120 +WIRE 1600 1136 1600 1120 +WIRE 1712 1136 1712 1120 +WIRE 1984 1136 1984 1120 +WIRE 2096 1136 2096 1120 +WIRE 2240 1136 2240 1120 +WIRE 896 1232 896 1216 +WIRE 1040 1232 1040 1216 +WIRE 1168 1232 1168 1200 +WIRE 1296 1232 1296 1216 +WIRE 1600 1232 1600 1200 +WIRE 1712 1232 1712 1216 +WIRE 1984 1232 1984 1200 +WIRE 2096 1232 2096 1216 +WIRE 2240 1232 2240 1216 +FLAG 2240 1120 OUT4 +FLAG 2240 928 OUT3 +FLAG 2240 720 OUT2 +FLAG 2240 512 OUT1 +FLAG 896 624 0 +FLAG 1040 624 0 +FLAG 1168 624 0 +FLAG 1296 624 0 +FLAG 1600 624 0 +FLAG 1712 624 0 +FLAG 1984 624 0 +FLAG 2096 624 0 +FLAG 2240 624 0 +FLAG 896 832 0 +FLAG 1040 832 0 +FLAG 1168 832 0 +FLAG 1296 832 0 +FLAG 1600 832 0 +FLAG 1712 832 0 +FLAG 1984 832 0 +FLAG 2096 832 0 +FLAG 2240 832 0 +FLAG 896 1040 0 +FLAG 1040 1040 0 +FLAG 1168 1040 0 +FLAG 1296 1040 0 +FLAG 1600 1040 0 +FLAG 1712 1040 0 +FLAG 1984 1040 0 +FLAG 2096 1040 0 +FLAG 2240 1040 0 +FLAG 896 1232 0 +FLAG 1040 1232 0 +FLAG 1168 1232 0 +FLAG 1296 1232 0 +FLAG 1600 1232 0 +FLAG 1712 1232 0 +FLAG 1984 1232 0 +FLAG 2096 1232 0 +FLAG 2240 1232 0 +SYMBOL CURRENT 896 608 M180 +WINDOW 0 33 77 Left 2 +WINDOW 3 24 0 Left 2 +SYMATTR InstName I1 +SYMATTR Value AC 1. +SYMBOL CURRENT 896 816 M180 +WINDOW 0 31 75 Left 2 +WINDOW 3 24 0 Left 2 +SYMATTR InstName I2 +SYMATTR Value AC 1. +SYMBOL CURRENT 896 1024 M180 +WINDOW 0 24 78 Left 2 +WINDOW 3 24 0 Left 2 +SYMATTR InstName I3 +SYMATTR Value AC 1. +SYMBOL CURRENT 896 1216 M180 +WINDOW 0 24 77 Left 2 +WINDOW 3 24 0 Left 2 +SYMATTR InstName I4 +SYMATTR Value AC 1. +SYMBOL RES 1024 512 R0 +SYMATTR InstName R1 +SYMATTR Value 1 +SYMBOL CAP 1856 496 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C4 +SYMATTR Value 1.125 +SYMBOL CAP 1968 528 R0 +SYMATTR InstName C5 +SYMATTR Value .3396 +SYMBOL CAP 1440 496 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C2 +SYMATTR Value 1.125 +SYMBOL CAP 1584 528 R0 +SYMATTR InstName C3 +SYMATTR Value 1.099 +SYMBOL CAP 1152 528 R0 +SYMATTR InstName C1 +SYMATTR Value .3396 +SYMBOL CAP 1856 704 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C9 +SYMATTR Value .9785 +SYMBOL CAP 1968 736 R0 +SYMATTR InstName C10 +SYMATTR Value .3903 +SYMBOL CAP 1440 704 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C7 +SYMATTR Value .9785 +SYMBOL CAP 1584 736 R0 +SYMATTR InstName C8 +SYMATTR Value 1.263 +SYMBOL CAP 1152 736 R0 +SYMATTR InstName C6 +SYMATTR Value .3903 +SYMBOL CAP 1856 912 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C14 +SYMATTR Value .8103 +SYMBOL CAP 1968 944 R0 +SYMATTR InstName C15 +SYMATTR Value .4714 +SYMBOL CAP 1440 912 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C12 +SYMATTR Value .8103 +SYMBOL CAP 1584 944 R0 +SYMATTR InstName C13 +SYMATTR Value 1.526 +SYMBOL CAP 1152 944 R0 +SYMATTR InstName C11 +SYMATTR Value .4714 +SYMBOL CAP 1856 1104 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C19 +SYMATTR Value .6177 +SYMBOL CAP 1968 1136 R0 +SYMATTR InstName C20 +SYMATTR Value .6177 +SYMBOL CAP 1440 1104 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C17 +SYMATTR Value .6177 +SYMBOL CAP 1584 1136 R0 +SYMATTR InstName C18 +SYMATTR Value 2 +SYMBOL CAP 1152 1136 R0 +SYMATTR InstName C16 +SYMATTR Value .6177 +SYMBOL IND2 1856 528 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 4 56 VBottom 2 +SYMATTR InstName L4 +SYMATTR Value .8890 +SYMBOL IND2 2080 512 R0 +SYMATTR InstName L5 +SYMATTR Value 2.945 +SYMBOL IND2 1440 528 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 4 56 VBottom 2 +SYMATTR InstName L2 +SYMATTR Value .8890 +SYMBOL IND2 1696 512 R0 +SYMATTR InstName L3 +SYMATTR Value .9099 +SYMBOL IND2 1280 512 R0 +SYMATTR InstName L1 +SYMATTR Value 2.945 +SYMBOL IND2 1856 736 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 4 56 VBottom 2 +SYMATTR InstName L9 +SYMATTR Value 1.022 +SYMBOL IND2 2080 720 R0 +SYMATTR InstName L10 +SYMATTR Value 2.562 +SYMBOL IND2 1440 736 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 4 56 VBottom 2 +SYMATTR InstName L7 +SYMATTR Value 1.022 +SYMBOL IND2 1696 720 R0 +SYMATTR InstName L8 +SYMATTR Value .7918 +SYMBOL IND2 1280 720 R0 +SYMATTR InstName L6 +SYMATTR Value 2.562 +SYMBOL IND2 1856 944 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 4 56 VBottom 2 +SYMATTR InstName L14 +SYMATTR Value 1.234 +SYMBOL IND2 2080 928 R0 +SYMATTR InstName L15 +SYMATTR Value 2.1213 +SYMBOL IND2 1440 944 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 4 56 VBottom 2 +SYMATTR InstName L12 +SYMATTR Value 1.234 +SYMBOL IND2 1696 928 R0 +SYMATTR InstName L13 +SYMATTR Value .6553 +SYMBOL IND2 1280 928 R0 +SYMATTR InstName L11 +SYMATTR Value 2.1213 +SYMBOL IND2 1856 1136 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 4 56 VBottom 2 +SYMATTR InstName L19 +SYMATTR Value 1.617 +SYMBOL IND2 2080 1120 R0 +SYMATTR InstName L20 +SYMATTR Value 1.617 +SYMBOL IND2 1440 1136 R270 +WINDOW 0 32 56 VTop 2 +WINDOW 3 4 56 VBottom 2 +SYMATTR InstName L17 +SYMATTR Value 1.617 +SYMBOL IND2 1696 1120 R0 +SYMATTR InstName L18 +SYMATTR Value .5 +SYMBOL IND2 1280 1120 R0 +SYMATTR InstName L16 +SYMATTR Value 1.617 +SYMBOL RES 2224 512 R0 +SYMATTR InstName R2 +SYMATTR Value 1 +SYMBOL RES 1024 720 R0 +SYMATTR InstName R3 +SYMATTR Value 1 +SYMBOL RES 2224 720 R0 +SYMATTR InstName R4 +SYMATTR Value 1 +SYMBOL RES 1024 928 R0 +SYMATTR InstName R5 +SYMATTR Value 1 +SYMBOL RES 2224 928 R0 +SYMATTR InstName R6 +SYMATTR Value 1 +SYMBOL RES 1024 1120 R0 +SYMATTR InstName R7 +SYMATTR Value 1 +SYMBOL RES 2224 1120 R0 +SYMATTR InstName R8 +SYMATTR Value 1 +TEXT 1024 1296 Left 2 !.ac oct 50 .01 3 +TEXT 1568 1320 Top 1 ;This example schematic is supplied for informational/educational purposes only. diff --git a/_unittest/example_models/T21/colpits.asc b/_unittest/example_models/T21/colpits.asc new file mode 100644 index 00000000000..461d91e9581 --- /dev/null +++ b/_unittest/example_models/T21/colpits.asc @@ -0,0 +1,64 @@ +Version 4 +SHEET 1 2740 2480 +WIRE 2208 1872 2064 1872 +WIRE 2064 1888 2064 1872 +WIRE 2208 1888 2208 1872 +WIRE 2064 1984 2064 1968 +WIRE 2208 1984 2208 1968 +WIRE 1920 2048 1776 2048 +WIRE 2032 2048 1920 2048 +WIRE 2160 2048 2032 2048 +WIRE 2032 2064 2032 2048 +WIRE 1776 2080 1776 2048 +WIRE 1920 2080 1920 2048 +WIRE 2032 2144 2032 2128 +WIRE 2112 2144 2032 2144 +WIRE 2208 2144 2208 2080 +WIRE 2208 2144 2176 2144 +WIRE 2032 2160 2032 2144 +WIRE 2208 2160 2208 2144 +WIRE 1776 2192 1776 2144 +WIRE 1920 2192 1920 2160 +WIRE 2032 2256 2032 2224 +WIRE 2208 2256 2208 2240 +FLAG 1920 2192 0 +FLAG 2032 2256 0 +FLAG 2208 2256 0 +FLAG 2064 1984 0 +FLAG 1776 2192 0 +SYMBOL NJF 2160 1984 R0 +SYMATTR InstName Q1 +SYMATTR Value 2N5484 +SYMBOL RES 2192 1872 R0 +SYMATTR InstName R1 +SYMATTR Value 500 +SYMBOL res 2192 2144 R0 +SYMATTR InstName R2 +SYMATTR Value 1K +SYMBOL ind 1936 2176 R180 +WINDOW 0 3 79 Right 2 +WINDOW 3 1 40 Right 2 +SYMATTR InstName L1 +SYMATTR Value 100µ +SYMBOL cap 2016 2064 R0 +SYMATTR InstName C1 +SYMATTR Value 500p +SYMBOL cap 2016 2160 R0 +SYMATTR InstName C2 +SYMATTR Value 500p +SYMBOL cap 2176 2128 R90 +WINDOW 0 0 32 VBottom 2 +WINDOW 3 32 32 VTop 2 +SYMATTR InstName C3 +SYMATTR Value 200p +SYMBOL VOLTAGE 2064 1872 R0 +SYMATTR InstName V1 +SYMATTR Value 7. +SYMBOL diode 1760 2144 M180 +WINDOW 0 24 72 Left 2 +WINDOW 3 24 0 Left 2 +SYMATTR InstName D1 +SYMATTR Value 1N4148 +TEXT 1832 2288 Left 2 !.tran 500µ startup +TEXT 1832 2320 Left 2 !.options method=trap +TEXT 2048 2344 Top 1 ;This example schematic is supplied for informational/educational purposes only. diff --git a/_unittest/test_21_Circuit.py b/_unittest/test_21_Circuit.py index 47103b96255..ad17cce8253 100644 --- a/_unittest/test_21_Circuit.py +++ b/_unittest/test_21_Circuit.py @@ -975,3 +975,8 @@ def test_51_change_symbol_pin_location(self): assert ts_component.change_symbol_pin_locations(pin_locations) pin_locations = {"left": [pins[0].name, pins[1].name, pins[2].name], "right": [pins[5].name]} assert not ts_component.change_symbol_pin_locations(pin_locations) + + def test_51_import_asc(self): + self.aedtapp.insert_design("ASC") + asc_file = os.path.join(local_path, "example_models", test_subfolder, "butter.asc") + assert self.aedtapp.create_schematic_from_asc_file(asc_file) diff --git a/_unittest_solvers/test_45_workflows.py b/_unittest_solvers/test_45_workflows.py index cab0231a861..e6c5bf61f10 100644 --- a/_unittest_solvers/test_45_workflows.py +++ b/_unittest_solvers/test_45_workflows.py @@ -376,3 +376,11 @@ def test_14_power_map_creation_ipk(self, local_scratch, add_app): assert main({"is_test": True, "file_path": file_path}) assert len(aedtapp.modeler.object_list) == 3 aedtapp.close_project() + + def test_15_import_asc(self, local_scratch, add_app): + aedtapp = add_app("Circuit", application=ansys.aedt.core.Circuit) + file_path = os.path.join(local_path, "example_models", "T21", "butter.asc") + from ansys.aedt.core.workflows.circuit.import_schematic import main + assert main({"is_test": True, "asc_file": file_path}) + aedtapp.close_project() + diff --git a/src/ansys/aedt/core/circuit.py b/src/ansys/aedt/core/circuit.py index 00e22e98db5..7e79a9b5793 100644 --- a/src/ansys/aedt/core/circuit.py +++ b/src/ansys/aedt/core/circuit.py @@ -43,6 +43,7 @@ from ansys.aedt.core.generic.general_methods import is_linux from ansys.aedt.core.generic.general_methods import open_file from ansys.aedt.core.generic.general_methods import pyaedt_function_handler +from ansys.aedt.core.generic.general_methods import read_configuration_file from ansys.aedt.core.generic.settings import settings from ansys.aedt.core.hfss3dlayout import Hfss3dLayout from ansys.aedt.core.modules.boundary import CurrentSinSource @@ -2361,3 +2362,255 @@ def create_ibis_schematic_from_pins( if analyze: setup_ibis.analyze() return True, tx_eye_names, rx_eye_names + + @pyaedt_function_handler() + def _parse_asc_file(self, input_file, l_scale=2.54e-3 / 16, c_scale=2.54e-3 / 16, offset_angle=-90): + with open(input_file, "r") as fid: + asc_data = fid.read() + + wire_xy = [i.split()[1:] for i in asc_data.split("\n") if "WIRE" in i] + wire_xy = [ + [float(i[0]) * l_scale, -float(i[1]) * l_scale, float(i[2]) * l_scale, -float(i[3]) * l_scale] + for i in wire_xy + ] + + flag = [i.split()[1:] for i in asc_data.split("\n") if "FLAG" in i] + flag = [[float(i[0]) * l_scale, -float(i[1]) * l_scale, i[2]] for i in flag] + + for j, i in enumerate(flag): + for k in wire_xy: + if i[:2] in [[k[0], k[1]], [k[2], k[3]]]: + if k[0] - k[2]: + flag[j] += ["x"] + elif k[1] - k[3]: + flag[j] += ["y"] + + symbol = [i.split("\n")[0].split() for i in asc_data.split("SYMBOL")[1:]] + for j, i in enumerate(asc_data.split("SYMBOL")[1:]): + tmp = i.split("\n")[0].split() + tmp[0] = tmp[0].lower() + val = [k for k in i.split("\n") if "SYMATTR Value" in k] + if val: + if "(" in val[0].split("Value ")[-1]: + value = val[0].split("Value ")[-1] + else: + value = re.findall(r"[a-zA-Z]+|\d+", val[0].split("Value ")[-1]) + else: + value = [0] + unit_dict = {"f": 1e-15, "p": 1e-12, "n": 1e-9, "u": 1e-6, "m": 1e-3, "k": 1e3, "meg": 1e6} + if len(value) > 1: + try: + val = float(".".join(value[:-1])) * unit_dict[value[-1].lower()] + except Exception: + try: + val = float(".".join(value)) + except Exception: + if tmp[0] not in ["voltage", "current"]: + val = 0 + elif "PULSE" in value: + tmp[0] = "{}_pulse".format(tmp[0]) + val = value + else: + val = value + + else: + try: + val = float(".".join(value)) + except: + if tmp[0] not in ["voltage", "current"]: + val = 0 + elif "PULSE" in value: + tmp[0] = "{}_pulse".format(tmp[0]) + val = value + else: + val = value + if isinstance(val, list): + val = " ".join(val) + tmp[1] = (float(tmp[1])) * c_scale + tmp[2] = (-float(tmp[2])) * c_scale + tmp.append([]) + tmp.append([]) + tmp.append([]) + if "R" in tmp[3]: + tmp[3] = int(tmp[3].replace("R", "")) - 90 + tmp[5] = "R" + elif "M" in tmp[3]: + tmp[3] = int(tmp[3].replace("M", "")) - 90 + tmp[5] = "M" + else: + tmp[3] = offset_angle + + cname = [k for k in i.split("\n") if "SYMATTR InstName" in k][0].split(" ")[-1] + tmp[4] = cname + if val: + tmp[6] = val + else: + tmp[6] = None + symbol[j] = tmp + self.logger.info("LTSpice file parsed correctly") + return flag, wire_xy, symbol + + @pyaedt_function_handler() + def create_schematic_from_asc_file(self, input_file, config_file=None): + """Import an asc schematic and convert to Circuit Schematic. Only passives and sources will be imported. + + Parameters + ---------- + input_file : str + Path to asc file. + config_file : str, optional + Path to configuration file to map components. Default is None which uses internal mapping. + + Returns + ------- + bool + ``True`` if successful. + """ + factor = 2 + + scale = 2.54e-3 / (16 / factor) + + flag, wire_xy, symbol = self._parse_asc_file(input_file=input_file, l_scale=scale, c_scale=scale) + for i in flag: + if i[2] == "0": + angle = 0 + if len(i) > 3: + if i[3] == "x": + i[0] -= 0.002540 * 0 + i[1] -= 0.002540 * 1 + angle = 0 + self.modeler.schematic.create_gnd([i[0], i[1]], angle) + + else: + self.modeler.schematic.create_interface_port(name=i[2], location=[i[0], i[1]]) + + if not config_file: + configuration = read_configuration_file( + os.path.join(os.path.dirname(__file__), "misc", "asc_circuit_mapping.json") + ) + else: + configuration = read_configuration_file(config_file) + + mils_to_meter = 0.00254 / 100 + + for j in symbol: + component = j[0].lower() + if component in configuration: + rotation = j[3] + rotation_type = j[5] + + offsetx = configuration[component]["xoffset"] * mils_to_meter + offsety = configuration[component]["yoffset"] * mils_to_meter + half_comp_size = configuration[component]["component_size"] * mils_to_meter / 2 + size_change = configuration[component].get("size_change", 0) * mils_to_meter + orientation = 1 if configuration[component]["orientation"] == "+x" else -1 + pts = [] + if rotation_type == "R": + if rotation == -90: + offsetx = configuration[component]["xoffset"] * mils_to_meter + offsety = configuration[component]["yoffset"] * mils_to_meter + pts = [ + [j[1] + offsetx, j[2] + offsety - half_comp_size * orientation], + [j[1] + offsetx, j[2] + offsety - ((half_comp_size + size_change) * orientation)], + ] + elif rotation == 0: + offsetx = configuration[component]["yoffset"] * mils_to_meter + offsety = -configuration[component]["xoffset"] * mils_to_meter + pts = [ + [j[1] + offsetx - half_comp_size * orientation, j[2] + offsety], + [j[1] + offsetx - ((half_comp_size + size_change) * orientation), j[2] + offsety], + ] + + elif rotation == 90: + offsetx = -configuration[component]["xoffset"] * mils_to_meter + offsety = -configuration[component]["yoffset"] * mils_to_meter + pts = [ + [j[1] + offsetx, j[2] + offsety + half_comp_size * orientation], + [j[1] + offsetx, j[2] + offsety + ((half_comp_size + size_change) * orientation)], + ] + + else: + offsetx = -configuration[component]["yoffset"] * mils_to_meter + offsety = configuration[component]["xoffset"] * mils_to_meter + pts = [ + [j[1] + offsetx + half_comp_size * orientation, j[2] + offsety], + [j[1] + offsetx + ((half_comp_size + size_change) * orientation), j[2] + offsety], + ] + + elif rotation_type == "M": + if rotation == -90: + offsetx = -configuration[component]["xoffset"] * mils_to_meter + offsety = configuration[component]["yoffset"] * mils_to_meter + pts = [ + [j[1] + offsetx, j[2] + offsety - half_comp_size * orientation], + [j[1] + offsetx, j[2] + offsety - ((half_comp_size + size_change) * orientation)], + ] + + elif rotation == 0: + offsetx = -configuration[component]["yoffset"] * mils_to_meter + offsety = -configuration[component]["xoffset"] * mils_to_meter + pts = [ + [j[1] + offsetx - half_comp_size * orientation, j[2] + offsety], + [j[1] + offsetx - ((half_comp_size + size_change) * orientation), j[2] + offsety], + ] + + elif rotation == 90: + offsetx = configuration[component]["xoffset"] * mils_to_meter + offsety = -configuration[component]["yoffset"] * mils_to_meter + pts = [ + [j[1] + offsetx, j[2] + offsety + half_comp_size * orientation], + [j[1] + offsetx, j[2] + offsety + ((half_comp_size + size_change) * orientation)], + ] + + else: + offsetx = configuration[component]["yoffset"] * mils_to_meter + offsety = configuration[component]["xoffset"] * mils_to_meter + pts = [ + [j[1] + offsetx + half_comp_size * orientation, j[2] + offsety], + [j[1] + offsetx + ((half_comp_size + size_change) * orientation), j[2] + offsety], + ] + + location = [j[1] + offsetx, j[2] + offsety] + name = j[4] + value = j[6] + angle_to_apply = (360 - (rotation + configuration[component]["rotation_offset"])) % 360 + if component == "res": + self.modeler.schematic.create_resistor( + value=value if value else 0, location=location, angle=angle_to_apply, name=name + ) + elif component == "cap": + self.modeler.schematic.create_capacitor( + value=value if value else 0, location=location, angle=angle_to_apply, name=name + ) + elif component in ["ind", "ind2"]: + self.modeler.schematic.create_inductor( + value=value if value else 0, location=location, angle=angle_to_apply, name=name + ) + else: + comp = self.modeler.schematic.create_component( + component_library=configuration[component]["Component Library"], + component_name=configuration[component]["Component Name"], + location=location, + angle=angle_to_apply, + name=name, + ) + if component in ["voltage_pulse", "current_pulse"]: + value = value.replace("PULSE(", "").replace(")", "").split(" ") + els = ["V1", "V2", "TD", "TR", "TF", "PW", "PER"] + for el, val in enumerate(value): + comp.set_property(els[el], val) + elif component in ["voltage", "current"]: + try: + if value and value.startswith("AC"): + comp.set_property("ACMAG", value.split(" ")[-1]) + elif value: + comp.set_property("DC", value) + except Exception: + self.logger.info("Failed to set DC Value or unnkown source type {}".format(component)) + + if size_change != 0: + self.modeler.schematic.create_wire(points=pts) + + for i, j in enumerate(wire_xy): + self.modeler.schematic.create_wire([[j[0], j[1]], [j[2], j[3]]]) + return True diff --git a/src/ansys/aedt/core/misc/asc_circuit_mapping.json b/src/ansys/aedt/core/misc/asc_circuit_mapping.json new file mode 100644 index 00000000000..e939af9d1db --- /dev/null +++ b/src/ansys/aedt/core/misc/asc_circuit_mapping.json @@ -0,0 +1,102 @@ +{"res":{ + "Component Library": "Resistors", + "Component Name": "RES_", + "xoffset": 200, + "yoffset": -400, + "rotation_offset": 0, + "component_size": 400, + "orientation": "+x", + "size_change": 600 +}, + "cap":{ + "Component Library": "Capacitors", + "Component Name": "CAP_", + "xoffset": 200, + "yoffset": -200, + "rotation_offset": 0, + "component_size": 400, + "orientation": "+x", + "size_change": 600 + }, + "ind":{ + "Component Library": "Inductors", + "Component Name": "IND_", + "xoffset": 200, + "yoffset": -400, + "rotation_offset": 0, + "component_size": 400, + "orientation": "+x", + "size_change": 600 + }, + "ind2":{ + "Component Library": "Inductors", + "Component Name": "IND_", + "xoffset": 200, + "yoffset": -400, + "rotation_offset": 0, + "component_size": 400, + "orientation": "+x", + "size_change": 600 + }, + "diode":{ + "Component Library": "Diodes", + "Component Name": "DIODE_Level1", + "xoffset": 200, + "yoffset": -600, + "rotation_offset": 0, + "component_size": 400, + "orientation": "-x", + "size_change": 400 + }, + "zener":{ + "Component Library": "Diodes", + "Component Name": "DIODE_Level1", + "xoffset": 200, + "yoffset": -600, + "rotation_offset": 0, + "component_size": 400, + "orientation": "-x", + "size_change": 400 + }, + "voltage_pulse": { + "Component Library": "Independent Sources", + "Component Name": "V_PULSE", + "xoffset": 0, + "yoffset": -1000, + "rotation_offset": 90, + "component_size": 400, + "orientation": "-x", + "size_change": 600 + }, + "voltage": { + "Component Library": "Independent Sources", + "Component Name": "V_DC", + "xoffset": 0, + "yoffset": -1000, + "rotation_offset": 90, + "component_size": 400, + "orientation": "-x", + "size_change": 600 + }, + "current_pulse": { + "Component Library": "Independent Sources", + "Component Name": "I_PULSE", + "xoffset": 0, + "yoffset": -800, + "rotation_offset": 90, + "component_size": 400, + "orientation": "x", + "size_change": 600 + }, + "current": { + "Component Library": "Independent Sources", + "Component Name": "I_DC", + "xoffset": 0, + "yoffset": -800, + "rotation_offset": 90, + "component_size": 400, + "orientation": "x", + "size_change": 600 + } +} + diff --git a/src/ansys/aedt/core/workflows/circuit/images/large/schematic.png b/src/ansys/aedt/core/workflows/circuit/images/large/schematic.png new file mode 100644 index 0000000000000000000000000000000000000000..6db0740db7be84a8570d4198d74637912288d6fa GIT binary patch literal 994 zcmV<810DQ{P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L19wS8K~z{r#g~h6 z>mUq7{r?|(n;H!G$=!oP1H`e@PG`!@7JCs27GhDmb&YXZVw~sS$F!_*UbZ;Rdw*op zO;e0^h|&88f?(|yd!y%2^L-zqb2T?;erxOf7C&5w)-UmMpr4~J=HUZh-Dhv3VFha2 zwu9!iJUc5iYMI~k=fj6MuUlmsCfSBDJwI#(MK{@$9PetA!hX|=JFgYmVN3&T2jE#g zqYwKJmArLJ3TJJ*Md#Pb_6lq}zS0(e_J`P?Q6JUvqr#luGl#R*_6li^e05H%APTfR zNDE1SbZYczw@>wZcydb>uBe93VHEw=ZQlX>Gu*{*R25}|Ra#yH}==5)Ooq+&K@ za1IM0bBN1<5dCw$79zoqlYUH}Q`zogxo@`tnZ9XG7ZfVz=0ujs!Pg+IEsw-UCH0{H54RNJDCfTTH~k6M;^<4 zImR;!!dKD(?*7&w$*Mxy@`RZ$C^_EoQ`%mFC}DpEcz3V{G zaYhTuF?8T_*8z7}kc6xQ1rNS-;QpR$DPF>UbC$Mem~{~us$z~IWf^3d9F$^*I-qd# zr6srMi(1=D$j4hc(DG+GP}*K0ZQajwAf$7jd3ye_;XWyC&ww2|U`&Yr0mx+08j6vN Q&Hw-a07*qoM6N<$f`O;Y@c;k- literal 0 HcmV?d00001 diff --git a/src/ansys/aedt/core/workflows/circuit/import_schematic.py b/src/ansys/aedt/core/workflows/circuit/import_schematic.py new file mode 100644 index 00000000000..a084d4de468 --- /dev/null +++ b/src/ansys/aedt/core/workflows/circuit/import_schematic.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2021 - 2024 ANSYS, Inc. and/or its affiliates. +# SPDX-License-Identifier: MIT +# +# 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. +import os.path + +import ansys.aedt.core +from ansys.aedt.core import Circuit +import ansys.aedt.core.workflows +from ansys.aedt.core.workflows.misc import get_aedt_version +from ansys.aedt.core.workflows.misc import get_arguments +from ansys.aedt.core.workflows.misc import get_port +from ansys.aedt.core.workflows.misc import get_process_id +from ansys.aedt.core.workflows.misc import is_student + +port = get_port() +version = get_aedt_version() +aedt_process_id = get_process_id() +is_student = is_student() + +# Extension batch arguments +extension_arguments = {"asc_file": ""} +extension_description = "Import schematic to Circuit." + + +def frontend(): # pragma: no cover + + import tkinter + from tkinter import filedialog + from tkinter import ttk + + import PIL.Image + import PIL.ImageTk + + master = tkinter.Tk() + + master.geometry("750x250") + + master.title(extension_description) + + # Load the logo for the main window + icon_path = os.path.join(ansys.aedt.core.workflows.__path__[0], "images", "large", "logo.png") + im = PIL.Image.open(icon_path) + photo = PIL.ImageTk.PhotoImage(im) + + # Set the icon for the main window + master.iconphoto(True, photo) + + # Configure style for ttk buttons + style = ttk.Style() + style.configure("Toolbutton.TButton", padding=6, font=("Helvetica", 8)) + + var2 = tkinter.StringVar() + label2 = tkinter.Label(master, textvariable=var2) + var2.set("Browse file:") + label2.grid(row=0, column=0, pady=10) + text = tkinter.Text(master, width=40, height=1) + text.grid(row=0, column=1, pady=10, padx=5) + + def browse_asc_folder(): + inital_dir = text.get("1.0", tkinter.END).strip() + filename = filedialog.askopenfilename( + initialdir=os.path.dirname(inital_dir) if inital_dir else "/", + title="Select configuration file", + filetypes=(("LTSPice file", "*.asc"), ("Spice file", "*.cir *.sp"), ("Qcv file", "*.qcv")), + ) + text.insert(tkinter.END, filename) + + b1 = tkinter.Button(master, text="...", width=10, command=browse_asc_folder) + b1.grid(row=0, column=2, pady=10) + + def callback(): + master.asc_path_ui = text.get("1.0", tkinter.END).strip() + master.destroy() + + b3 = tkinter.Button(master, text="Ok", width=40, command=callback) + b3.grid(row=1, column=1, pady=10, padx=10) + + tkinter.mainloop() + + asc_file_ui = getattr(master, "asc_path_ui", extension_arguments["asc_file"]) + + output_dict = { + "asc_file": asc_file_ui, + } + return output_dict + + +def main(extension_args): + asc_file = extension_args["asc_file"] + if not os.path.exists(asc_file): + raise Exception("Error. File doesn't exists.") + cir = Circuit(design=os.path.split(asc_file)[-1][:-4]) + if asc_file.endswith(".asc"): + cir.create_schematic_from_asc_file(asc_file) + elif asc_file.endswith(".sp") or asc_file.endswith(".cir"): + cir.create_schematic_from_netlist(asc_file) + elif asc_file.endswith(".qcv"): + cir.create_schematic_from_mentor_netlist(asc_file) + if not extension_args["is_test"]: # pragma: no cover + cir.release_desktop(False, False) + return True + + +if __name__ == "__main__": # pragma: no cover + args = get_arguments(extension_arguments, extension_description) + + # Open UI + if not args["is_batch"]: # pragma: no cover + output = frontend() + if output: + for output_name, output_value in output.items(): + if output_name in extension_arguments: + args[output_name] = output_value + + main(args) diff --git a/src/ansys/aedt/core/workflows/circuit/toolkits_catalog.toml b/src/ansys/aedt/core/workflows/circuit/toolkits_catalog.toml new file mode 100644 index 00000000000..df49448e0ab --- /dev/null +++ b/src/ansys/aedt/core/workflows/circuit/toolkits_catalog.toml @@ -0,0 +1,6 @@ +[SchematicImporter] +name = "Schematic Importer" +script = "import_schematic.py" +icon = "images/large/schematic.png" +template = "run_pyedb_toolkit_script" +pip = "" From 715155930363ebda9e6e6e8aaafc4212c35be2ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Morais?= <146729917+SMoraisAnsys@users.noreply.github.com> Date: Fri, 30 Aug 2024 11:23:17 +0200 Subject: [PATCH 21/23] DOCS: Add missing settings section (#5105) --- doc/source/User_guide/index.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/doc/source/User_guide/index.rst b/doc/source/User_guide/index.rst index f687c34ea27..1c1ae73d09a 100644 --- a/doc/source/User_guide/index.rst +++ b/doc/source/User_guide/index.rst @@ -39,6 +39,13 @@ For end-to-end examples, see `Examples Date: Fri, 30 Aug 2024 09:30:38 +0000 Subject: [PATCH 22/23] BUILD: Update sphinx-gallery requirement from <0.17,>=0.14.0 to >=0.14.0,<0.18 (#4941) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Sébastien Morais <146729917+SMoraisAnsys@users.noreply.github.com> --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 08beeffd978..300d7f76f59 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -90,7 +90,7 @@ doc = [ "sphinx-autobuild==2024.4.16; python_version > '3.8'", #"sphinx-autodoc-typehints", "sphinx-copybutton>=0.5.0,<0.6", - "sphinx-gallery>=0.14.0,<0.17", + "sphinx-gallery>=0.14.0,<0.18", #"sphinx-notfound-page", "sphinx_design>=0.4.0,<0.7", #"sphinxcontrib-websupport", @@ -106,7 +106,7 @@ doc-no-examples = [ "sphinx-autobuild==2024.4.16; python_version > '3.8'", #"sphinx-autodoc-typehints", "sphinx-copybutton>=0.5.0,<0.6", - "sphinx-gallery>=0.14.0,<0.17", + "sphinx-gallery>=0.14.0,<0.18", #"sphinx-notfound-page", #"sphinxcontrib-websupport", "sphinx_design>=0.4.0,<0.7", From 54fcc25ed5284191e62e728f3046ffe5a02c5180 Mon Sep 17 00:00:00 2001 From: Massimo Capodiferro <77293250+maxcapodi78@users.noreply.github.com> Date: Fri, 30 Aug 2024 13:33:13 +0200 Subject: [PATCH 23/23] FIX: Ltspice (#5107) Co-authored-by: maxcapodi78 --- src/ansys/aedt/core/circuit.py | 9 +++++---- src/ansys/aedt/core/misc/asc_circuit_mapping.json | 4 ++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/ansys/aedt/core/circuit.py b/src/ansys/aedt/core/circuit.py index 7e79a9b5793..89ef67149f6 100644 --- a/src/ansys/aedt/core/circuit.py +++ b/src/ansys/aedt/core/circuit.py @@ -2416,7 +2416,7 @@ def _parse_asc_file(self, input_file, l_scale=2.54e-3 / 16, c_scale=2.54e-3 / 16 else: try: val = float(".".join(value)) - except: + except Exception: if tmp[0] not in ["voltage", "current"]: val = 0 elif "PULSE" in value: @@ -2601,12 +2601,13 @@ def create_schematic_from_asc_file(self, input_file, config_file=None): comp.set_property(els[el], val) elif component in ["voltage", "current"]: try: - if value and value.startswith("AC"): + if isinstance(value, str) and value.startswith("AC"): comp.set_property("ACMAG", value.split(" ")[-1]) - elif value: + elif isinstance(value, (int, float)): comp.set_property("DC", value) - except Exception: + except: self.logger.info("Failed to set DC Value or unnkown source type {}".format(component)) + pass if size_change != 0: self.modeler.schematic.create_wire(points=pts) diff --git a/src/ansys/aedt/core/misc/asc_circuit_mapping.json b/src/ansys/aedt/core/misc/asc_circuit_mapping.json index e939af9d1db..f3d1bb25964 100644 --- a/src/ansys/aedt/core/misc/asc_circuit_mapping.json +++ b/src/ansys/aedt/core/misc/asc_circuit_mapping.json @@ -43,7 +43,7 @@ "Component Name": "DIODE_Level1", "xoffset": 200, "yoffset": -600, - "rotation_offset": 0, + "rotation_offset": 180, "component_size": 400, "orientation": "-x", "size_change": 400 @@ -53,7 +53,7 @@ "Component Name": "DIODE_Level1", "xoffset": 200, "yoffset": -600, - "rotation_offset": 0, + "rotation_offset": 180, "component_size": 400, "orientation": "-x", "size_change": 400