python-ilorest-7.0.0.0/0000775000175000017500000000000015116322125013356 5ustar zigozigopython-ilorest-7.0.0.0/requirements.txt0000664000175000017500000000006315116322125016641 0ustar zigozigojsonpatch jsonpath_rw jsonpointer urllib3 six python-ilorest-7.0.0.0/AUTHORS.md0000664000175000017500000000100015116322125015014 0ustar zigozigo# Original Contribution: * [Jack Garcia](//github.com/lumbajack) - HPE - Hewlett Packard Enterprise Restful API Group * [Matthew Kocurek](//github.com/Yergidy) - HPE - Hewlett Packard Enterprise Restful API Group * [Prithvi Subrahmanya](//github.com/PrithviBS) - HPE - Hewlett Packard Enterprise Restful API Group # Other Key Contributions: *For a list of people who have contributed to the codebase, see [GitHub's list of contributors](https://github.com/DMTF/python-redfish-library/contributors).* python-ilorest-7.0.0.0/README.rst0000664000175000017500000001270015116322125015045 0ustar zigozigopython-ilorest-library ====================== .. image:: https://travis-ci.org/HewlettPackard/python-ilorest-library.svg?branch=master :target: https://travis-ci.org/HewlettPackard/python-ilorest-library .. image:: https://img.shields.io/pypi/v/python-ilorest-library.svg?maxAge=2592000 :target: https://pypi.python.org/pypi/python-ilorest-library .. image:: https://img.shields.io/github/release/HewlettPackard/python-ilorest-library.svg?maxAge=2592000 :target: .. image:: https://img.shields.io/badge/license-Apache%202-blue.svg :target: https://raw.githubusercontent.com/HewlettPackard/python-ilorest-library/master/LICENSE .. image:: https://img.shields.io/pypi/pyversions/python-ilorest-library.svg?maxAge=2592000 :target: https://pypi.python.org/pypi/python-ilorest-library .. image:: https://api.codacy.com/project/badge/Grade/1283adc3972d42b4a3ddb9b96660bc07 :target: https://www.codacy.com/app/rexysmydog/python-ilorest-library?utm_source=github.com&utm_medium=referral&utm_content=HewlettPackard/python-ilorest-library&utm_campaign=Badge_Grade .. contents:: :depth: 1 Description ---------- The python-ilorest-library is a python library built for interacting with the Redfish API remotely to any BMC that implements a Redfish API or any HPE system locally. The library also supports HPE's legacy REST API. Go to the library `documentation `_ for more details. HPE RESTful API for iLO is a RESTful application programming interface for the management of iLO and iLO Chassis Manager based HPE servers. REST (Representational State Transfer) is a web based software architectural style consisting of a set of constraints that focuses on a system's resources. iLO REST library performs the basic HTTP operations GET, POST, PUT, PATCH and DELETE on resources using the HATEOAS (Hypermedia as the Engine of Application State) REST architecture. The API allows the clients to manage and interact with iLO through a fixed URL and several URIs. Go to the API `documentation `_ for more details. Installing ---------- .. code-block:: console pip install python-ilorest-library Building from zip file source ~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: console python setup.py sdist --formats=zip (this will produce a .zip file) cd dist pip install python-ilorest-library-x.x.x.zip Including socks support (Version 2.5 or greater) ~~~~~~~~~~~~~~~~~~~~~~~~~ .. code-block:: console pip install python-ilorest-library[socks] .. code-block:: console python setup.py sdist --formats=zip (this will produce a .zip file) cd dist pip install python-ilorest-library-x.x.x.zip[socks] Requirements ------------ Remote communication ~~~~~~~~~~~~~~~~~~~~ No special requirements. Inband communication ~~~~~~~~~~~~~~~~~~~~~~~~~ To enable support for inband communications, you must download the DLL/SO for your system. By downloading, you agree to the terms and conditions of the `Hewlett Packard Enterprise Software License Agreement`_. It must be placed in your working environment path. Windows Download: ilorest_chif.dll_ Linux Download: ilorest_chif.so_ .. _`Hewlett Packard Enterprise Software License Agreement` : https://www.hpe.com/us/en/software/licensing.html .. _ilorest_chif.dll: https://downloads.hpe.com/pub/softlib2/software1/pubsw-windows/p1463761240/v167985/ilorest_chif.dll .. _ilorest_chif.so: https://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1093353304/v168967/ilorest_chif.so Usage ---------- For 3.x and greater versions of the library see the documentation for usage: https://pages.github.hpe.com/intelligent-provisioning/python-redfish-library/ For 2.x versions of the library documentation is located at the `Wiki `_. Contributing ---------- 1. Fork it! 2. Create your feature branch: `git checkout -b my-new-feature` 3. Commit your changes: `git commit -am 'Add some feature'` 4. Push to the branch: `git push origin my-new-feature` 5. Submit a pull request :D History ------- * 04/01/2016: Initial Commit * 06/23/2016: Release of v1.1.0 * 07/25/2016: Release of v1.2.0 * 08/02/2016: Release of v1.3.0 * 09/06/2016: Release of v1.4.0 * 11/04/2016: Release of v1.5.0 * 12/06/2016: Release of v1.6.0 * 01/17/2017: Release of v1.7.0 * 02/01/2017: Release of v1.8.0 * 03/22/2017: Release of v1.9.0 * 04/12/2017: Release of v1.9.1 * 07/17/2017: Release of v2.0.0 * 10/30/2017: Release of v2.1.0 * 02/20/2018: Release of v2.2.0 * 06/11/2018: Release of v2.3.0 * 07/02/2018: Release of v2.3.1 * 03/25/2019: Release of v2.4.1 * 05/09/2019: Release of v2.4.2 * 07/05/2019: Release of v2.5.0 * 07/11/2019: Release of v2.5.1 * 08/13/2019: Release of v2.5.2 * 11/13/2019: Release of v3.0.0 Copyright and License --------------------- :: Copyright 2016 Hewlett Packard Enterprise Development LP Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. python-ilorest-7.0.0.0/flake8.txt0000664000175000017500000000010415116322125015264 0ustar zigozigo.\src\redfish\ris\resp_handler.py:227:74: F821 undefined name 'key' python-ilorest-7.0.0.0/.flake80000664000175000017500000000024015116322125014525 0ustar zigozigo[flake8] max-line-length = 120 extend-ignore = E203, E722, C901, E731 exclude = .git, packaging, __pycache__, build, dist, docs max-complexity = 10 python-ilorest-7.0.0.0/LICENSE.md0000664000175000017500000000635715116322125014775 0ustar zigozigoThe Distributed Management Task Force (DMTF) grants rights under copyright in this software on the terms of the BSD 3-Clause License as set forth below; no other rights are granted by DMTF. This software might be subject to other rights (such as patent rights) of other parties. ### Copyrights. Copyright (c) 2016, Contributing Member(s) of Distributed Management Task Force, Inc.. All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the name of the Distributed Management Task Force (DMTF) nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ### Patents. This software may be subject to third party patent rights, including provisional patent rights ("patent rights"). DMTF makes no representations to users of the standard as to the existence of such rights, and is not responsible to recognize, disclose, or identify any or all such third party patent right, owners or claimants, nor for any incomplete or inaccurate identification or disclosure of such rights, owners or claimants. DMTF shall have no liability to any party, in any manner or circumstance, under any legal theory whatsoever, for failure to recognize, disclose, or identify any such third party patent rights, or for such party's reliance on the software or incorporation thereof in its product, protocols or testing procedures. DMTF shall have no liability to any party using such software, whether such use is foreseeable or not, nor to any patent owner or claimant, and shall have no liability or responsibility for costs or losses incurred if software is withdrawn or modified after publication, and shall be indemnified and held harmless by any party using the software from any and all claims of infringement by a patent owner for such use. DMTF Members that contributed to this software source code might have made patent licensing commitments in connection with their participation in the DMTF. For details, see http://dmtf.org/sites/default/files/patent-10-18-01.pdf and http://www.dmtf.org/about/policies/disclosures.python-ilorest-7.0.0.0/docs/0000775000175000017500000000000015116322125014306 5ustar zigozigopython-ilorest-7.0.0.0/docs/Examples.rest0000664000175000017500000070076215116322125016777 0ustar zigozigo.. image:: /images/hpe_logo2.png :width: 150pt | .. toctree:: :maxdepth: 1 ======== Examples ======== .. note:: Successful creation, modification or deletion of a resource will usually result in a response code of 200 or 201. An unsuccessful attempt will likely result in a 400 error code with a more detailed error message within the body of the response, '@Message.ExtendedInfo'. .. note:: Examples showcasing Redfish standard properties and Actions will work for any BMC implementing Redfish. Any HPE OEM extensions are labeled in the examples as such. The `Redfish `_ and `Legacy_Rest `_ folders contain many examples for performing different iLO tasks using the Redfish API and Legacy RESTful API respectively. .. _Redfish_add_user_account: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/add_user_account.py .. _Redfish_bios_revert_default: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/bios_revert_default.py .. _Redfish_change_bios_setting: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/change_bios_setting.py .. _Redfish_change_boot_order: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/change_boot_order.py .. _Redfish_change_temporary_boot_order: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/change_temporary_boot_order.py .. _Redfish_clear_ahs_data: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/clear_ahs_data.py .. _Redfish_clear_ilo_IEL_IML_log: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/clear_ilo_IEL_IML_log.py .. _Redfish_computer_details: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/computer_details.py .. _Redfish_configure_snmp: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/configure_snmp.py .. _Redfish_enable_ntp_servers: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/enable_ntp_servers.py .. _Redfish_enable_secure_boot: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/enable_secure_boot.py .. _Redfish_expand_data: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/expand_data.py .. _Redfish_find_ilo_mac_address: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/find_ilo_mac_address.py .. _Redfish_generate_csr: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/generate_csr.py .. _Redfish_get_ESKM: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_ESKM.py .. _Redfish_get_LogicalDrives: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_LogicalDrives.py .. _Redfish_get_SmartArray_EncryptionSettings: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_SmartArray_EncryptionSettings.py .. _Redfish_get_ahs_data: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_ahs_data.py .. _Redfish_get_base_registry: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_base_registry.py .. _Redfish_get_ilo_ip: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_ilo_ip.py .. _Redfish_get_ilo_nic: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_ilo_nic.py .. _Redfish_get_license_key: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_license_key.py .. _Redfish_get_powermetrics_average: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_powermetrics_average.py .. _Redfish_get_resource_directory: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_resource_directory.py .. _Redfish_ilorest_util: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/ilorest_util.py .. _Redfish_get_schema: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/get_schema.py .. _Redfish_import_ssl: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/import_ssl.py .. _Redfish_modify_user_account: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/modify_user_account.py .. _Redfish_mount_virtual_media_iso: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/mount_virtual_media_iso.py .. _Redfish_quickstart_redfish: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/quickstart_redfish.py .. _Redfish_reboot_server: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/reboot_server.py .. _Redfish_remove_account: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/remove_account.py .. _Redfish_reset_ESKM_eventlog: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/reset_ESKM_eventlog.py .. _Redfish_reset_ilo: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/reset_ilo.py .. _Redfish_reset_server: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/reset_server.py .. _Redfish_sessions: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/sessions.py .. _Redfish_set_ESKM_PrimaryKeyServer: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_ESKM_PrimaryKeyServer.py .. _Redfish_set_ESKM_username_password: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_ESKM_username_password.py .. _Redfish_set_active_ilo_nic: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_active_ilo_nic.py .. _Redfish_set_bios_iscsi: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_bios_iscsi.py .. _Redfish_set_bios_password: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_bios_password.py .. _Redfish_set_ethernet_management_iface_static_ip: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_ethernet_management_iface_static_ip.py .. _Redfish_set_ilo_ntp_servers: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_ilo_ntp_servers.py .. _Redfish_set_ilo_timezone: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_ilo_timezone.py .. _Redfish_set_license_key: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_license_key.py .. _Redfish_set_server_asset_tag: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_server_asset_tag.py .. _Redfish_set_snmp_alert: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_snmp_alert.py .. _Redfish_set_uid_light: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/set_uid_light.py .. _Redfish_software_firmware_inventory: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/software_firmware_inventory.py .. _Redfish_test_ESKM_connection: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/test_ESKM_connection.py .. _Redfish_update_ilo_firmware: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/update_ilo_firmware.py .. _Redfish_upload_firmware_ilo_repository: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/upload_firmware_ilo_repository.py .. _Redfish_upload_firmware_ilo_repository_with_compsig: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Redfish/upload_firmware_ilo_repository_with_compsig.py .. _Legacy_Rest_add_ilo_user_account: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/add_ilo_user_account.py .. _Legacy_Rest_bios_revert_default: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/bios_revert_default.py .. _Legacy_Rest_change_bios_setting: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/change_bios_setting.py .. _Legacy_Rest_change_boot_order: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/change_boot_order.py .. _Legacy_Rest_change_temporary_boot_order: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/change_temporary_boot_order.py .. _Legacy_Rest_clear_ahs_data: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/clear_ahs_data.py .. _Legacy_Rest_clear_ilo_event_log: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/clear_ilo_event_log.py .. _Legacy_Rest_clear_iml: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/clear_iml.py .. _Legacy_Rest_computer_details: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/computer_details.py .. _Legacy_Rest_configure_snmp: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/configure_snmp.py .. _Legacy_Rest_dump_eskm_event_log: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/dump_eskm_event_log.py .. _Legacy_Rest_dump_ilo_event_log: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/dump_ilo_event_log.py .. _Legacy_Rest_dump_ilo_nic: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/dump_ilo_nic.py .. _Legacy_Rest_dump_iml: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/dump_iml.py .. _Legacy_Rest_enable_secure_boot: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/enable_secure_boot.py .. _Legacy_Rest_find_ilo_mac_address: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/find_ilo_mac_address.py .. _Legacy_Rest_generate_csr: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/generate_csr.py .. _Legacy_Rest_get_ESKM: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_ESKM.py .. _Legacy_Rest_get_EncryptionSettings: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_EncryptionSettings.py .. _Legacy_Rest_get_LogicalDrives: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_LogicalDrives.py .. _Legacy_Rest_get_ahs_data: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_ahs_data.py .. _Legacy_Rest_get_base_registry: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_base_registry.py .. _Legacy_Rest_get_csr: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_csr.py .. _Legacy_Rest_get_ilo_ip: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_ilo_ip. .. _Legacy_Rest_get_ilo_nic: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_ilo_nic.py .. _Legacy_Rest_get_license_key: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_license_key.py .. _Legacy_Rest_get_powermetrics_average: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_powermetrics_average.py .. _Legacy_Rest_get_resource_directory: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_resource_directory.py .. _Legacy_Rest_get_schema: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/get_schema.py .. _Legacy_Rest_import_ssl: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/import_ssl.py .. _Legacy_Rest_modify_ilo_user_account: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/modify_ilo_user_account.py .. _Legacy_Rest_mount_virtual_media_iso: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/mount_virtual_media_iso.py .. _Legacy_Rest_remove_ilo_account: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/remove_ilo_account.py .. _Legacy_Rest_reset_ESKM_eventlog: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/reset_ESKM_eventlog.py .. _Legacy_Rest_reset_ilo: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/reset_ilo.py .. _Legacy_Rest_reset_server: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/reset_server.py .. _Legacy_Rest_sessions: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/sessions.py .. _Legacy_Rest_set_active_ilo_nic: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_active_ilo_nic.py .. _Legacy_Rest_set_bios_dhcp: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_bios_dhcp.py .. _Legacy_Rest_set_ESKM_PrimaryKeyServer: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_ESKM_PrimaryKeyServer.py .. _Legacy_Rest_set_ESKM_username_password: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_ESKM_username_password.py .. _Legacy_Rest_set_ilo_ntp_servers: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_Ilo_ntp_servers.py .. _Legacy_Rest_set_bios_iscsi: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_bios_iscsi.py .. _Legacy_Rest_set_bios_password: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_bios_password.py .. _Legacy_Rest_set_bios_service: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_bios_service.py .. _Legacy_Rest_set_bios_uefi_shell_startup: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_bios_uefi_shell_startup.py .. _Legacy_Rest_set_bios_url_boot_file: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_bios_url_boot_file.py .. _Legacy_Rest_set_ilo_timezone: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_ilo_timezone.py .. _Legacy_Rest_set_license_key: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_license_key.py .. _Legacy_Rest_set_server_asset_tag: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_server_asset_tag.py .. _Legacy_Rest_set_uid_light: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/set_uid_light.py .. _Legacy_Rest_test_ESKM_connection: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/test_ESKM_connection.py .. _Legacy_Rest_update_ilo_firmware: https://github.com/HewlettPackard/python-ilorest-library/blob/master/examples/Legacy_Rest/update_ilo_firmware.py ------------------------------- Redfish Example Reference Table ------------------------------- .. |br| raw:: html
.. tabularcolumns:: :widths: 20 40 +----------------------------------------------------+-----------------------------------------------------------+ | Example | Link | +----------------------------------------------------+-----------------------------------------------------------+ | Add an iLO Manager Account | `Redfish_add_user_account`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Revert the BIOs to default values | `Redfish_bios_revert_default`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Change the BIOs settings. | `Redfish_change_bios_setting`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Change the boot order for HPE iLO systems. | `Redfish_change_boot_order`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Change the temporary boot order. | `Redfish_change_temporary_boot_order`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Clear AHS data for HPE iLO systems. | `Redfish_clear_ahs_data`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Clear IEL or IML Logs for HPE iLO systems. | `Redfish_clear_ilo_IEL_IML_log`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Gather the computer system details. | `Redfish_computer_details`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Configure SNMP for HPE iLO systems. | `Redfish_configure_snmp`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Enable NTP servers for HPE iLO systems. | `Redfish_enable_ntp_servers`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Enable secure boot. | `Redfish_enable_secure_boot`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Expand data responses. | `Redfish_expand_data`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Clear IEL or IML Logs for HPE iLO systems. | `Redfish_find_ilo_mac_address`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Generate a certificate signing request for |br| | `Redfish_generate_csr`_ | | HPE iLO systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Gather ESKM data for HPE iLO systems. | `Redfish_get_ESKM`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Gather the Logical Drives on an HPE iLO system. | `Redfish_get_LogicalDrives`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Gather the Smart Array encryption settings on |br| | `Redfish_get_SmartArray_EncryptionSettings`_ | | HPE iLO based systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Gather AHS data for HPE iLO systems. | `Redfish_get_ahs_data`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the base message registry. | `Redfish_get_base_registry`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the Manager IP. | `Redfish_get_ilo_ip`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the Manager NIC data. | `Redfish_get_ilo_nic`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain an iLO license key for HPE iLO systems. | `Redfish_get_license_key`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the power metrics average on HPE iLO |br| | `Redfish_get_powermetrics_average`_ | | systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain iLO information. | `Redfish_get_resource_directory`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain iLO utility information, such as iLO |br| | `Redfish_ilorest_util`_ | | generation, version and resource directory for |br|| | | HPE iLO systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain schema data on any BMC with schemas |br| | `Redfish_get_schema`_ | | available. | | +----------------------------------------------------+-----------------------------------------------------------+ | Import an SSL certificate for HPE iLO systems. | `Redfish_import_ssl`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Modify a user account. | `Redfish_modify_user_account`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Mount virtual media for HPE iLO systems. | `Redfish_mount_virtual_media_iso`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Create Redfish client. | `Redfish_quickstart_redfish`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Reboot a server. | `Redfish_reboot_server`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Remove a user account. | `Redfish_remove_account`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Reset the ESKM event log for HPE iLO systems. | `Redfish_reset_ESKM_eventlog`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Reset a Manager. | `Redfish_reset_ilo`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Reset a sever. | `Redfish_reset_server`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Manually manage sessions with Redfish | `Redfish_sessions`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the primary ESKM key server properties |br| | `Redfish_set_ESKM_PrimaryKeyServer`_ | | for HPE iLO systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Set the ESKM username and password for HPE |br| | `Redfish_set_ESKM_username_password`_ | | iLO systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Set active Manager NIC. | `Redfish_set_active_ilo_nic`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set an ISCSI boot instance for HPE iLO |br| | `Redfish_set_bios_iscsi`_ | | systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Set the BIOS password for HPE iLO systems. | `Redfish_set_bios_password`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the Manager ethernet interface static IP. | `Redfish_set_ethernet_management_iface_static_ip`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the NTP servers for HPE iLO systems. | `Redfish_set_ilo_ntp_servers`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the time zone for HPE iLO systems. | `Redfish_set_ilo_timezone`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Add a license key for HPE iLO systems. | `Redfish_set_license_key`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the server asset tag. | `Redfish_set_server_asset_tag`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Configure SNMP alert for HPE iLO systems. | `Redfish_set_snmp_alert`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the UID light. | `Redfish_set_uid_light`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Provide the firmware inventory on HPE iLO |br| | `Redfish_software_firmware_inventory`_ | | systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Test a connection to the ESKM system for HPE |br| | `Redfish_test_ESKM_connection`_ | | iLO systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Update the firmware by using an HTTP URL. | `Redfish_update_ilo_firmware`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Upload the firmware to the iLO Repository for |br| | `Redfish_upload_firmware_ilo_repository`_ | | flashing. | | +----------------------------------------------------+-----------------------------------------------------------+ | Upload a firmware component with a size less |br| | `Redfish_upload_firmware_ilo_repository_with_compsig`_ | | than 32 GB and associated compsig signature |br| | | | file to the iLO repository. | | +----------------------------------------------------+-----------------------------------------------------------+ ----------------------------------- Legacy Rest Example Reference Table ----------------------------------- .. tabularcolumns:: :widths: 10 40 +----------------------------------------------------+-----------------------------------------------------------+ | Example | Link | +----------------------------------------------------+-----------------------------------------------------------+ | Add an iLO user account. | `Legacy_Rest_add_ilo_user_account`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Revert the BIOs to default values. | `Legacy_Rest_bios_revert_default`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Change the BIOs settings. | `Legacy_Rest_change_bios_setting`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Change the boot order for HPE iLO systems. | `Legacy_Rest_change_boot_order`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Change the temporary boot order. | `Legacy_Rest_change_temporary_boot_order`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Clear the AHS data. | `Legacy_Rest_clear_ahs_data`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Clear IEL or IML Logs for HPE iLO systems. | `Legacy_Rest_clear_ilo_event_log`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Clear the IML. | `Legacy_Rest_clear_iml`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Gather the computer system details. | `Legacy_Rest_computer_details`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Configure SNMP for HPE iLO systems. | `Legacy_Rest_configure_snmp`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Dump the ESKM event log. | `Legacy_Rest_dump_eskm_event_log`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Dump the iLO event log. | `Legacy_Rest_dump_ilo_event_log`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Dump the Manager NIC data. | `Legacy_Rest_dump_ilo_nic`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Dump the IML. | `Legacy_Rest_dump_iml`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Enables secure boot. | `Legacy_Rest_enable_secure_boot`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Clear IEL or IML Logs for HPE iLO systems. | `Legacy_Rest_find_ilo_mac_address`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Generate a certificate signing request for |br| | `Legacy_Rest_generate_csr`_ | | HPE iLO systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Gather ESKM data for HPE iLO systems. | `Legacy_Rest_get_ESKM`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Gather the encryption settings on HPE iLO systems. | `Legacy_Rest_get_EncryptionSettings`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the logical drives. | `Legacy_Rest_get_LogicalDrives`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Gather AHS data for HPE iLO systems. | `Legacy_Rest_get_ahs_data`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the base message registry. | `Legacy_Rest_get_base_registry`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the CSR. | `Legacy_Rest_get_csr`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the Manager IP. | `Legacy_Rest_get_ilo_ip`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the Manager NIC data. | `Legacy_Rest_get_ilo_nic`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain an iLO license key for HPE iLO systems. | `Legacy_Rest_get_license_key`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the power metrics average on HPE iLO |br| | `Legacy_Rest_get_powermetrics_average`_ | | systems | | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the iLO information, such as iLO |br| | `Legacy_Rest_get_resource_directory`_ | | generation, version, and resource directory |br| | | | for HPE iLO systems. | `Legacy_Rest_get_resource_directory`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Obtain the schema data on any system with |br| | `Legacy_Rest_get_schema`_ | | schemas on system. | | +----------------------------------------------------+-----------------------------------------------------------+ | Import an SSL certificate for HPE iLO systems. | `Legacy_Rest_import_ssl`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Modify a user account. | `Legacy_Rest_modify_ilo_user_account`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Mount virtual media for HPE iLO systems. | `Legacy_Rest_mount_virtual_media_iso`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Remove an iLO user account. | `Legacy_Rest_remove_ilo_account`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Reset the ESKM event log for HPE iLO systems. | `Legacy_Rest_reset_ESKM_eventlog`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Reset iLO. | `Legacy_Rest_reset_ilo`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Reset a sever. | `Legacy_Rest_reset_server`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Create a session. | `Legacy_Rest_sessions`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set active Manager NIC. | `Legacy_Rest_set_active_ilo_nic`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the DHCP boot instance for HPE iLO systems. | `Legacy_Rest_set_bios_dhcp`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the primary ESKM key server for HPE iLO |br| | `Legacy_Rest_set_ESKM_PrimaryKeyServer`_ | | systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Set the ESKM username and password for HPE iLO |br|| `Legacy_Rest_set_ESKM_username_password`_ | | systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Set the NTP servers for HPE iLO systems. | `Legacy_Rest_set_Ilo_ntp_servers`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set an ISCSI boot instance for HPE iLO systems. | `Legacy_Rest_set_bios_iscsi`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the BIOS password for HPE iLO systems. | `Legacy_Rest_set_bios_password`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the BIOS service. | `Legacy_Rest_set_bios_service`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the UEFI shell startup. | `Legacy_Rest_set_bios_uefi_shell_startup`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the URL boot file. | `Legacy_Rest_set_bios_url_boot_file`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the time zone for HPE iLO systems. | `Legacy_Rest_set_ilo_timezone`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Add a license key for HPE iLO systems. | `Legacy_Rest_set_license_key`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the server asset tag. | `Legacy_Rest_set_server_asset_tag`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Set the UID light. | `Legacy_Rest_set_uid_light`_ | +----------------------------------------------------+-----------------------------------------------------------+ | Test a connection to the ESKM system for HPE |br| | `Legacy_Rest_test_ESKM_connection`_ | | iLO systems. | | +----------------------------------------------------+-----------------------------------------------------------+ | Update the firmware by using an HTTP URL. | `Legacy_Rest_update_ilo_firmware`_ | +----------------------------------------------------+-----------------------------------------------------------+ ----------------------- Add iLO Manager Account ----------------------- Add an iLO Manager Account based on permissions (iLO 4 and iLO 5) or role ID (iLO 5). .. code-block:: python :linenos: def add_ilo_user_account(_redfishobj, new_loginname, new_username, new_password, role_id, \ privilege_dict): resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #resource directory is not available so we will navigate through paths manually to obtain #account info account_service_uri = _redfishobj.root.obj['AccountService']['@odata.id'] account_service_response = _redfishobj.get(account_service_uri) account_collection_uri = account_service_response.obj['Accounts']['@odata.id'] #Add via role id body = {"RoleId": role_id} else: #obtain all account instances from resource directory for instance in resource_instances: if '#ManagerAccountCollection.' in instance['@odata.type']: account_collection_uri = instance['@odata.id'] body = {"Oem": {"Hpe": {"Privileges": {}}}} #HPE server, so add via privileges for priv in privilege_dict: body["Oem"]["Hpe"]["Privileges"][priv] = privilege_dict[priv] #Add login name body["Oem"]["Hpe"]["LoginName"] = new_loginname #Fill in the rest of the payload body["UserName"] = new_username body["Password"] = new_password #We pass the URI and the dictionary as a POST command (part of the redfish object) resp = _redfishobj.post(account_collection_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception: sys.stderr.write("A response error occurred, unable to access iLO Extended Message "\ "Info...") elif not resp.status in [200, 201]: sys.stderr.write("An http response of '%s' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ------------------- BIOS Revert Default ------------------- Set all BIOS attributes to their respective factory default states. .. code-block:: python :linenos: def bios_revert_default(_redfishobj): bios_reset_action_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) bios_uri = systems_members_response.obj['Bios']['@odata.id'] bios_response = _redfishobj.get(bios_uri) bios_reset_action_uri = bios_response.obj['Actions']['#Bios.ResetBios']['target'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#Bios.' in instance['@odata.type']: bios_uri = instance['@odata.id'] bios_data = _redfishobj.get(bios_uri) bios_reset_action_uri = bios_data.obj['Actions']['#Bios.ResetBios']['target'] break body = {'Action': 'Bios.ResetBios', 'ResetType':'default'} resp = _redfishobj.post(bios_reset_action_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception: sys.stderr.write("A response error occurred, unable to access iLO Extended Message "\ "Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ------------------- Change BIOS Setting ------------------- Alter one ore more BIOS attributes. .. code-block:: python :linenos: def change_bios_setting(_redfishobj, bios_property, property_value, bios_password): bios_uri = None bios_data = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) bios_uri = systems_members_response.obj['Bios']['@odata.id'] bios_data = _redfishobj.get(bios_uri) else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#Bios.' in instance['@odata.type']: bios_uri = instance['@odata.id'] bios_data = _redfishobj.get(bios_uri) break if bios_data: print("\n\nShowing bios attributes before changes:\n\n") print(json.dumps(bios_data.dict, indent=4, sort_keys=True)) if bios_uri: #Bios settings URI is needed bios_settings_uri = bios_data.obj['@Redfish.Settings']['SettingsObject']['@odata.id'] body = {'Attributes': {bios_property: property_value}} #update bios password if bios_password: _redfishobj.bios_password = bios_password resp = _redfishobj.patch(bios_settings_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("\nSuccess!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) #uncomment if you would like to see the full list of attributes #print("\n\nShowing bios attributes after changes:\n\n") #bios_data = _redfishobj.get(bios_uri) #print(json.dumps(bios_data.dict, indent=4, sort_keys=True)) --------------------------- Change Temporary Boot Order --------------------------- Alter the temporary boot order. .. code-block:: python :linenos: def change_temporary_boot_order(_redfishobj, boottarget): systems_members_uri = None systems_members_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) else: for instance in resource_instances: if '#ComputerSystem.' in instance['@odata.type']: systems_members_uri = instance['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) if systems_members_response: print("\n\nShowing bios attributes before changes:\n\n") print(json.dumps(systems_members_response.dict.get('Boot'), indent=4, sort_keys=True)) body = {'Boot': {'BootSourceOverrideTarget': boottarget}} resp = _redfishobj.patch(systems_members_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended Message "\ "Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("\nSuccess!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) if systems_members_response: print("\n\nShowing boot override target:\n\n") print(json.dumps(systems_members_response.dict.get('Boot'), indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^^^^^^^^^^^ Example of the Boot Object ^^^^^^^^^^^^^^^^^^^^^^^^^^ The folowing JSON output can be obtained first by noting the *systems_members_response* on line 42 above. .. code-block:: python else: for instance in resource_instances: if '#ComputerSystem.' in instance['@odata.type']: systems_members_uri = instance['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) if systems_members_response: print("\n\nShowing bios attributes before changes:\n\n") print(json.dumps(systems_members_response.dict.get('Boot'), indent=4, sort_keys=True)) The user can preview the data prior: .. code-block:: JSON :linenos: { "BootOptions": { "@odata.id": "/redfish/v1/Systems/1/BootOptions/" }, "BootOrder": [ "Boot0011", "Boot0019", "Boot0009", "Boot0012", "Boot0010", "Boot0014", "Boot000C", "Boot000E", "Boot000F", "Boot0017", "Boot000D", "Boot0013" ], "BootSourceOverrideEnabled": "Disabled", "BootSourceOverrideMode": "UEFI", "BootSourceOverrideTarget": "None", "BootSourceOverrideTarget@Redfish.AllowableValues": [ "None", "Cd", "Hdd", "Usb", "SDCard", "Utilities", "Diags", "BiosSetup", "Pxe", "UefiShell", "UefiHttp", "UefiTarget" ], "UefiTargetBootSourceOverride": "None", "UefiTargetBootSourceOverride@Redfish.AllowableValues": [ "HD(1,GPT,0940C33C-EAF1-43CD-8C8F-4426672227FE,0x800,0x4E000)/\\EFI\\sles\\shim.efi", "HD(1,GPT,22F62F69-47E7-4334-BCE6-A0B321810BA1,0x800,0x64000)/\\EFI\\redhat\\shimx64.efi", "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv4(0.0.0.0)/Uri()", "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv4(0.0.0.0)", "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000)/Uri()", "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000)", "PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x0)", "PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x1)", "PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x2)", "PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x3)", "PciRoot(0x0)/Pci(0x14,0x0)/USB(0xD,0x0)/USB(0x1,0x0)", "PciRoot(0x0)/Pci(0x14,0x0)/USB(0xD,0x0)/USB(0x1,0x1)" ] } ----------------- Change Boot Order ----------------- Alter the default boot order. .. code-block:: python :linenos: def change_boot_order(_redfishobj, bios_password): bios_boot_uri = None bios_boot_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) bios_uri = systems_members_response.obj['Bios']['@odata.id'] bios_response = _redfishobj.get(bios_uri) bios_boot_uri = bios_response.obj.Oem.Hpe.Links.Boot['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeServerBootSettings.' in instance['@odata.type']: bios_boot_uri = instance['@odata.id'] break if bios_boot_uri: bios_boot_response = _redfishobj.get(bios_boot_uri) #Bios boot settings URI is needed bios_boot_settings_uri = bios_boot_response.obj['@Redfish.Settings']['SettingsObject']\ ['@odata.id'] #update bios password if bios_password: _redfishobj.bios_password = bios_password sys.stdout.write("Rotating the first boot device to the end of the boot order.\n") sys.stdout.write('Current Order:\n') boot_order = bios_boot_response.obj['DefaultBootOrder'] for indx, boot_device in enumerate(boot_order): sys.stdout.write('Pos ' + str(indx) + ' : ' + boot_device + '\n') device = boot_order.pop(0) sys.stdout.write("Rotating device: \'%s\' to the end of the boot order.\n" % device) boot_order.append(device) body = {'DefaultBootOrder': boot_order} resp = _redfishobj.patch(bios_boot_settings_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended Message"\ " Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success! Your system may need to be restarted.\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) else: sys.stderr.write("Unable to find Boot Order URI.\n") -------------- Clear AHS Data -------------- Clear Active Health System log data. .. code-block:: python :linenos: def clear_ahs_data(_redfishobj): active_health_system_clear_log_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) active_health_system_uri = managers_members_response.obj.Oem.Hpe.Links\ ['ActiveHealthSystem']['@odata.id'] active_health_system_response = _redfishobj.get(active_health_system_uri) active_health_system_clear_log_uri = active_health_system_response.obj['Actions']\ ['#HpeiLOActiveHealthSystem.ClearLog']['target'] else: for instance in resource_instances: if '#HpeiLOActiveHealthSystem.' in instance['@odata.type']: active_health_system_uri = instance['@odata.id'] active_health_system_response = _redfishobj.get(active_health_system_uri) active_health_system_clear_log_uri = active_health_system_response['Actions']\ ['#HpeiLOActiveHealthSystem.ClearLog']['target'] break if active_health_system_clear_log_uri: body = {"Action": "HpeiLOActiveHealthSystem.ClearLog"} resp = _redfishobj.redfish_client.post(active_health_system_clear_log_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4,\ sort_keys=True)) except Exception: sys.stderr.write("A response error occurred, unable to access iLO Extended " \ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ------------------ Clear IEL/IML Data ------------------ Clear iLO event log and management log data. .. code-block:: python :linenos: def clear_ilo_event_log(_redfishobj, clear_IML_IEL): clear_log_services_uri = [] resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) log_services_uri = systems_members_response.obj['LogServices']['@odata.id'] log_services_response = _redfishobj.get(log_services_uri) log_services_uris = log_services_response.obj['Members'] for log_services_uri in log_services_uris: log_services_response = _redfishobj.get(log_services_uri['@odata.id']) clear_log_services_uri.append(log_services_response.obj['Actions']\ ['#LogService.ClearLog']['target']) else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#LogService.' in instance['@odata.type']: log_service_uri = instance['@odata.id'] clear_log_services_uri.append(_redfishobj.get(log_service_uri).dict['Actions']\ ['#LogService.ClearLog']['target']) if clear_log_services_uri: body = {"Action": "LogService.ClearLog"} for path in clear_log_services_uri: if ("IEL" in clear_IML_IEL and "IEL" in path) or ("IML" in clear_IML_IEL and \ "IML" in path): if "IEL" in path: sys.stdout.write("Clearing IEL log.\n") else: sys.stdout.write("Clearing IML log.\n") resp = _redfishobj.post(path, body) else: continue #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended #info error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO "\ "Extended Message Info...\n") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ------------------ Clear IEL/IML Data ------------------ Print computer system JSON data. .. code-block:: python :linenos: def computer_details(_redfishobj): systems_members_uri = None systems_members_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#ComputerSystem.' in instance['@odata.type']: systems_members_uri = instance['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) print("\n\nPrinting computer system details:\n\n") print(json.dumps(systems_members_response.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^^^^^ Computer System Data ^^^^^^^^^^^^^^^^^^^^ The folowing JSON output is obtained when accessing type *ComputerSystem*. Values may vary from system to system, and key entries may differ based on the schema version for #ComputerSystem. The user can preview the data prior: .. code-block:: JSON :linenos: { "@odata.context": "/redfish/v1/$metadata#ComputerSystem.ComputerSystem", "@odata.etag": "W/\"7010F715\"", "@odata.id": "/redfish/v1/Systems/1/", "@odata.type": "#ComputerSystem.v1_10_0.ComputerSystem", "Actions": { "#ComputerSystem.Reset": { "ResetType@Redfish.AllowableValues": [ "On", "ForceOff", "GracefulShutdown", "ForceRestart", "Nmi", "PushPowerButton" ], "target": "/redfish/v1/Systems/1/Actions/ComputerSystem.Reset/" } }, "AssetTag": "", "Bios": { "@odata.id": "/redfish/v1/systems/1/bios/" }, "BiosVersion": "U32 v2.22 (11/13/2019)", "Boot": { "BootOptions": { "@odata.id": "/redfish/v1/Systems/1/BootOptions/" }, "BootOrder": [ "Boot0011", "Boot0019", "Boot0009", "Boot0012", "Boot0010", "Boot0014", "Boot000C", "Boot000E", "Boot000F", "Boot0017", "Boot000D", "Boot0013" ], "BootSourceOverrideEnabled": "Once", "BootSourceOverrideMode": "UEFI", "BootSourceOverrideTarget": "Hdd", "BootSourceOverrideTarget@Redfish.AllowableValues": [ "None", "Cd", "Hdd", "Usb", "SDCard", "Utilities", "Diags", "BiosSetup", "Pxe", "UefiShell", "UefiHttp", "UefiTarget" ], "UefiTargetBootSourceOverride": "None", "UefiTargetBootSourceOverride@Redfish.AllowableValues": [ "HD(1,GPT,0940C33C-EAF1-43CD-8C8F-4426672227FE,0x800,0x4E000)/\\EFI\\sles\\shim.efi", "HD(1,GPT,22F62F69-47E7-4334-BCE6-A0B321810BA1,0x800,0x64000)/\\EFI\\redhat\\shimx64.efi", "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv4(0.0.0.0)/Uri()", "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv4(0.0.0.0)", "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000)/Uri()", "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000)", "PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x0)", "PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x1)", "PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x2)", "PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x3)", "PciRoot(0x0)/Pci(0x14,0x0)/USB(0xD,0x0)/USB(0x1,0x0)", "PciRoot(0x0)/Pci(0x14,0x0)/USB(0xD,0x0)/USB(0x1,0x1)" ] }, "EthernetInterfaces": { "@odata.id": "/redfish/v1/Systems/1/EthernetInterfaces/" }, "HostName": "localhost.americas.hpqcorp.net", "Id": "1", "IndicatorLED": "Off", "Links": { "Chassis": [ { "@odata.id": "/redfish/v1/Chassis/1/" } ], "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/1/" } ] }, "LogServices": { "@odata.id": "/redfish/v1/Systems/1/LogServices/" }, "Manufacturer": "HPE", "Memory": { "@odata.id": "/redfish/v1/Systems/1/Memory/" }, "MemoryDomains": { "@odata.id": "/redfish/v1/Systems/1/MemoryDomains/" }, "MemorySummary": { "Status": { "HealthRollup": "OK" }, "TotalSystemMemoryGiB": 32, "TotalSystemPersistentMemoryGiB": 0 }, "Model": "ProLiant DL360 Gen10", "Name": "Computer System", "NetworkInterfaces": { "@odata.id": "/redfish/v1/Systems/1/NetworkInterfaces/" }, "Oem": { "Hpe": { "@odata.context": "/redfish/v1/$metadata#HpeComputerSystemExt.HpeComputerSystemExt", "@odata.type": "#HpeComputerSystemExt.v2_9_0.HpeComputerSystemExt", "Actions": { "#HpeComputerSystemExt.PowerButton": { "PushType@Redfish.AllowableValues": [ "Press", "PressAndHold" ], "target": "/redfish/v1/Systems/1/Actions/Oem/Hpe/HpeComputerSystemExt.PowerButton/" }, "#HpeComputerSystemExt.SecureSystemErase": { "target": "/redfish/v1/Systems/1/Actions/Oem/Hpe/HpeComputerSystemExt.SecureSystemErase/" }, "#HpeComputerSystemExt.SystemReset": { "ResetType@Redfish.AllowableValues": [ "ColdBoot", "AuxCycle" ], "target": "/redfish/v1/Systems/1/Actions/Oem/Hpe/HpeComputerSystemExt.SystemReset/" } }, "AggregateHealthStatus": { "AgentlessManagementService": "Unavailable", "BiosOrHardwareHealth": { "Status": { "Health": "OK" } }, "FanRedundancy": "Redundant", "Fans": { "Status": { "Health": "OK" } }, "Memory": { "Status": { "Health": "OK" } }, "Network": { "Status": { "Health": "OK" } }, "PowerSupplies": { "PowerSuppliesMismatch": false, "Status": { "Health": "OK" } }, "Processors": { "Status": { "Health": "OK" } }, "Storage": { "Status": { "Health": "Warning" } }, "Temperatures": { "Status": { "Health": "OK" } } }, "Bios": { "Backup": { "Date": "11/13/2019", "Family": "U32", "VersionString": "U32 v2.22 (11/13/2019)" }, "Current": { "Date": "11/13/2019", "Family": "U32", "VersionString": "U32 v2.22 (11/13/2019)" }, "UefiClass": 2 }, "CriticalTempRemainOff": false, "CurrentPowerOnTimeSeconds": null, "DeviceDiscoveryComplete": { "AMSDeviceDiscovery": "NoAMS", "DeviceDiscovery": "vMainDeviceDiscoveryComplete", "SmartArrayDiscovery": "Complete" }, "ElapsedEraseTimeInMinutes": 0, "EndOfPostDelaySeconds": null, "EstimatedEraseTimeInMinutes": 0, "IntelligentProvisioningAlwaysOn": true, "IntelligentProvisioningIndex": 8, "IntelligentProvisioningLocation": "System Board", "IntelligentProvisioningVersion": "3.60.12", "IsColdBooting": false, "Links": { "EthernetInterfaces": { "@odata.id": "/redfish/v1/Systems/1/EthernetInterfaces/" }, "HpeIpProvider": { "@odata.id": "/redfish/v1/systems/1/hpeip/" }, "NetworkAdapters": { "@odata.id": "/redfish/v1/Systems/1/BaseNetworkAdapters/" }, "PCIDevices": { "@odata.id": "/redfish/v1/Systems/1/PCIDevices/" }, "PCISlots": { "@odata.id": "/redfish/v1/Systems/1/PCISlots/" }, "SUT": { "@odata.id": "/redfish/v1/systems/1/hpsut/" }, "SecureEraseReportService": { "@odata.id": "/redfish/v1/Systems/1/SecureEraseReportService/" }, "SmartStorage": { "@odata.id": "/redfish/v1/Systems/1/SmartStorage/" }, "USBDevices": { "@odata.id": "/redfish/v1/Systems/1/USBDevices/" }, "USBPorts": { "@odata.id": "/redfish/v1/Systems/1/USBPorts/" }, "WorkloadPerformanceAdvisor": { "@odata.id": "/redfish/v1/Systems/1/WorkloadPerformanceAdvisor/" } }, "PCAPartNumber": "847479-001", "PCASerialNumber": "PVZEK0ARHA014I", "PostDiscoveryCompleteTimeStamp": null, "PostDiscoveryMode": null, "PostMode": null, "PostState": "FinishedPost", "PowerAllocationLimit": 500, "PowerAutoOn": "Restore", "PowerOnDelay": "Minimum", "PowerOnMinutes": 80051, "PowerRegulatorMode": "OSControl", "PowerRegulatorModesSupported": [ "OSControl", "Dynamic", "Max", "Min" ], "ProcessorJitterControl": { "ConfiguredFrequencyLimitMHz": 0, "Mode": "Disabled" }, "SMBIOS": { "extref": "/smbios" }, "ServerFQDN": "", "SmartStorageConfig": [ { "@odata.id": "/redfish/v1/systems/1/smartstorageconfig/" } ], "SystemROMAndiLOEraseComponentStatus": { "BIOSSettingsEraseStatus": "Idle", "iLOSettingsEraseStatus": "Idle" }, "SystemROMAndiLOEraseStatus": "Idle", "UserDataEraseComponentStatus": {}, "UserDataEraseStatus": "Idle", "VirtualProfile": "Inactive" } }, "PowerState": "On", "ProcessorSummary": { "Count": 1, "Model": "Intel(R) Xeon(R) Bronze 3106 CPU @ 1.70GHz", "Status": { "HealthRollup": "OK" } }, "Processors": { "@odata.id": "/redfish/v1/Systems/1/Processors/" }, "SKU": "DL3000GEN10", "SecureBoot": { "@odata.id": "/redfish/v1/Systems/1/SecureBoot/" }, "SerialNumber": "TX86NP0121", "Status": { "Health": "Warning", "HealthRollup": "Warning", "State": "Enabled" }, "Storage": { "@odata.id": "/redfish/v1/Systems/1/Storage/" }, "SystemType": "Physical", "TrustedModules": [ { "Oem": { "Hpe": { "@odata.context": "/redfish/v1/$metadata#HpeTrustedModuleExt.HpeTrustedModuleExt", "@odata.type": "#HpeTrustedModuleExt.v2_0_0.HpeTrustedModuleExt" } }, "Status": { "State": "Absent" } } ], "UUID": "30334C44-3030-5854-3836-4E5030313231" } -------------- Configure SNMP -------------- Configure iLO Simple Network Management Protocol. .. code-block:: python :linenos: def configure_snmp(_redfishobj, read_communities, snmp_alerts): snmp_service_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) snmp_service_uri = managers_members_response.obj.Oem.Hpe.Links['Snmp']['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeiLOSnmpService.' in instance['@odata.type']: snmp_service_uri = instance['@odata.id'] if snmp_service_uri: body = {"AlertsEnabled": snmp_alerts, "ReadCommunities": read_communities} resp = _redfishobj.patch(snmp_service_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ---------- Enable NTP ---------- In order to configure iLO Network Time Protocol, certain settings must be in-place on the iLO Management NIC(s) including settings the value of the OEM/HPE object key-value pair *UseNTPServers* to *True*. .. note:: An iLO Reset will be required in order for the change to be applied. .. code-block:: python :linenos: def enable_ntp(_redfishobj, ntp_servers): ethernet_data = {} resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) manager_ethernet_interfaces = managers_members_response.obj['EthernetInterfaces']\ ['@odata.id'] manager_ethernet_interfaces_response = _redfishobj.get(manager_ethernet_interfaces) manager_ethernet_interfaces_members = manager_ethernet_interfaces_response.\ obj['Members'] for _member in manager_ethernet_interfaces_members: _tmp = _redfishobj.get(_member['@odata.id']).obj ethernet_data[_member['@odata.id']] = _tmp else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#EthernetInterfaceCollection.' in instance['@odata.type'] and 'Managers' in \ instance['@odata.id']: ethernet_uri = instance['@odata.id'] ethernet_interfaces = _redfishobj.get(ethernet_uri).obj['Members'] for _ethernet_interface in ethernet_interfaces: ethernet_data[_ethernet_interface['@odata.id']] = _redfishobj.\ get(_ethernet_interface['@odata.id']).dict break if ethernet_data: print("\n\nShowing all available ethernet management interfaces before changes:\n\n") print(json.dumps(ethernet_data, indent=4, sort_keys=True)) body = {"Oem": {"Hpe": {"DHCPv4": {"UseNTPServers": ntp_servers}, \ "DHCPv6": {"UseNTPServers": ntp_servers}}}} for ethernet in ethernet_data: resp = _redfishobj.patch(ethernet, body) if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) _data = _redfishobj.get(ethernet).dict sys.stdout.write("\nShowing \'%s\' interface after changes:\n" % ethernet) print(json.dumps(_data, indent=4, sort_keys=True)) ------------------ Enable Secure Boot ------------------ Enable/Disable Secure Boot. .. code-block:: python :linenos: def enable_secure_boot(_redfishobj, secure_boot_enable): secure_boot_uri = None secure_boot_data = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) secure_boot_uri = systems_members_response.obj['SecureBoot']['@odata.id'] secure_boot_data = _redfishobj.get(secure_boot_uri) else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#SecureBoot.' in instance['@odata.type']: secure_boot_uri = instance['@odata.id'] secure_boot_data = _redfishobj.get(secure_boot_uri) if secure_boot_data: print("\n\nShowing Secure Boot properties before changes:\n\n") print(json.dumps(secure_boot_data.dict, indent=4, sort_keys=True)) if secure_boot_uri: body = {'SecureBootEnable': secure_boot_enable} resp = _redfishobj.patch(secure_boot_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception: sys.stderr.write("A response error occurred, unable to access iLO Extended " \ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("\nSuccess!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) print("\n\nShowing Secure Boot properties after changes:\n\n") secure_boot_data = _redfishobj.get(secure_boot_uri) print(json.dumps(secure_boot_data.dict, indent=4, sort_keys=True)) ----------- Expand Data ----------- JSON data is typically provided in a collapsed/compactted state. Use *$expand* as a query string on the desired URI. .. code-block:: python :linenos: def expand_data(_redfishobj, expand_url="/redfish/v1/"): response = _redfishobj.get(expand_url) exp_response = _redfishobj.get(expand_url+'?$expand=.') sys.stdout.write('Standard response:\n') sys.stdout.write('\t'+str(response.dict)+'\n') sys.stdout.write('Expanded response:\n') sys.stdout.write('\t'+str(exp_response.dict)+'\n') ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Standard response: .. code-block:: TEXT {'@odata.context': '/redfish/v1/$metadata#ComputerSystemCollection.ComputerSystemCollection', '@odata.etag': 'W/"AA6D42B0"', '@odata.id': '/redfish/v1/Systems/', '@odata.type': '#ComputerSystemCollection.ComputerSystemCollection', 'Description': 'Computer Systems view', 'Name': 'Computer Systems', 'Members': [{'@odata.id': '/redfish/v1/Systems/1/'}], 'Members@odata.count': 1} Expanded response: .. code-block:: TEXT {'@odata.context': '/redfish/v1/$metadata#ComputerSystemCollection.ComputerSystemCollection', '@odata.etag': 'W/"5737F79D"', '@odata.id': '/redfish/v1/Systems/', '@odata.type': '#ComputerSystemCollection.ComputerSystemCollection', 'Description': 'Computer Systems view', 'Name': 'Computer Systems', 'Members': [{'@odata.context': '/redfish/v1/$metadata#ComputerSystem.ComputerSystem', '@odata.id': '/redfish/v1/Systems/1/', '@odata.type': '#ComputerSystem.v1_10_0.ComputerSystem', 'Id': '1', 'Actions': {'#ComputerSystem.Reset': {'ResetType@Redfish.AllowableValues': ['On', 'ForceOff', 'GracefulShutdown', 'ForceRestart', 'Nmi', 'PushPowerButton'], 'target': '/redfish/v1/Systems/1/Actions/ComputerSystem.Reset/'}}, 'AssetTag': '', 'Bios': {'@odata.id': '/redfish/v1/systems/1/bios/'}, 'BiosVersion': 'U32 v2.22 (11/13/2019)', 'Boot': {'BootOptions': {'@odata.id': '/redfish/v1/Systems/1/BootOptions/'}, 'BootOrder': ['Boot0011', 'Boot0019', 'Boot0009', 'Boot0012', 'Boot0010', 'Boot0014', 'Boot000C', 'Boot000E', 'Boot000F', 'Boot0017', 'Boot000D', 'Boot0013'], 'BootSourceOverrideEnabled': 'Once', 'BootSourceOverrideMode': 'UEFI', 'BootSourceOverrideTarget': 'Hdd', 'BootSourceOverrideTarget@Redfish.AllowableValues': ['None', 'Cd', 'Hdd', 'Usb', 'SDCard', 'Utilities', 'Diags', 'BiosSetup', 'Pxe', 'UefiShell', 'UefiHttp', 'UefiTarget'], 'UefiTargetBootSourceOverride': 'None', 'UefiTargetBootSourceOverride@Redfish.AllowableValues': ['HD(1,GPT,0940C33C-EAF1-43CD-8C8F-4426672227FE,0x800,0x4E000)/\\EFI\\sles\\shim.efi', 'HD(1,GPT,22F62F69-47E7-4334-BCE6-A0B321810BA1,0x800,0x64000)/\\EFI\\redhat\\shimx64.efi', 'PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv4(0.0.0.0)/Uri()', 'PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv4(0.0.0.0)', 'PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000)/Uri()', 'PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)/MAC(98F2B32CB4A8,0x0)/IPv6(0000:0000:0000:0000:0000:0000:0000:0000)', 'PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x0)', 'PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x1)', 'PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x2)', 'PciRoot(0x3)/Pci(0x0,0x0)/Pci(0x0,0x0)/Scsi(0x0,0x3)', 'PciRoot(0x0)/Pci(0x14,0x0)/USB(0xD,0x0)/USB(0x1,0x0)', 'PciRoot(0x0)/Pci(0x14,0x0)/USB(0xD,0x0)/USB(0x1,0x1)']}, 'EthernetInterfaces': {'@odata.id': '/redfish/v1/Systems/1/EthernetInterfaces/'}, 'HostName': 'localhost.americas.hpqcorp.net', 'IndicatorLED': 'Off', 'Links': {'ManagedBy': [{'@odata.id': '/redfish/v1/Managers/1/'}], 'Chassis': [{'@odata.id': '/redfish/v1/Chassis/1/'}]}, 'LogServices': {'@odata.id': '/redfish/v1/Systems/1/LogServices/'}, 'Manufacturer': 'HPE', 'Memory': {'@odata.id': '/redfish/v1/Systems/1/Memory/'}, 'MemoryDomains': {'@odata.id': '/redfish/v1/Systems/1/MemoryDomains/'}, 'MemorySummary': {'Status': {'HealthRollup': 'OK'}, 'TotalSystemMemoryGiB': 32, 'TotalSystemPersistentMemoryGiB': 0}, 'Model': 'ProLiant DL360 Gen10', 'Name': 'Computer System', 'NetworkInterfaces': {'@odata.id': '/redfish/v1/Systems/1/NetworkInterfaces/'}, 'Oem': {'Hpe': {'@odata.context': '/redfish/v1/$metadata#HpeComputerSystemExt.HpeComputerSystemExt', '@odata.type': '#HpeComputerSystemExt.v2_9_0.HpeComputerSystemExt', 'Actions': {'#HpeComputerSystemExt.PowerButton': {'PushType@Redfish.AllowableValues': ['Press', 'PressAndHold'], 'target': '/redfish/v1/Systems/1/Actions/Oem/Hpe/HpeComputerSystemExt.PowerButton/'}, '#HpeComputerSystemExt.SecureSystemErase': {'target': '/redfish/v1/Systems/1/Actions/Oem/Hpe/HpeComputerSystemExt.SecureSystemErase/'}, '#HpeComputerSystemExt.SystemReset': {'ResetType@Redfish.AllowableValues': ['ColdBoot', 'AuxCycle'], 'target': '/redfish/v1/Systems/1/Actions/Oem/Hpe/HpeComputerSystemExt.SystemReset/'}}, 'AggregateHealthStatus': {'AgentlessManagementService': 'Unavailable', 'BiosOrHardwareHealth': {'Status': {'Health': 'OK'}}, 'FanRedundancy': 'Redundant', 'Fans': {'Status': {'Health': 'OK'}}, 'Memory': {'Status': {'Health': 'OK'}}, 'Network': {'Status': {'Health': 'OK'}}, 'PowerSupplies': {'PowerSuppliesMismatch': False, 'Status': {'Health': 'OK'}}, 'Processors': {'Status': {'Health': 'OK'}}, 'Storage': {'Status': {'Health': 'Warning'}}, 'Temperatures': {'Status': {'Health': 'OK'}}}, 'Bios': {'Backup': {'Date': '11/13/2019', 'Family': 'U32', 'VersionString': 'U32 v2.22 (11/13/2019)'}, 'Current': {'Date': '11/13/2019', 'Family': 'U32', 'VersionString': 'U32 v2.22 (11/13/2019)'}, 'UefiClass': 2}, 'CriticalTempRemainOff': False, 'CurrentPowerOnTimeSeconds': None, 'DeviceDiscoveryComplete': {'AMSDeviceDiscovery': 'NoAMS', 'DeviceDiscovery': 'vMainDeviceDiscoveryComplete', 'SmartArrayDiscovery': 'Complete'}, 'ElapsedEraseTimeInMinutes': 0, 'EndOfPostDelaySeconds': None, 'EstimatedEraseTimeInMinutes': 0, 'IntelligentProvisioningAlwaysOn': True, 'IntelligentProvisioningIndex': 8, 'IntelligentProvisioningLocation': 'System Board', 'IntelligentProvisioningVersion': '3.60.12', 'IsColdBooting': False, 'Links': {'HpeIpProvider': {'@odata.id': '/redfish/v1/systems/1/hpeip/'}, 'SUT': {'@odata.id': '/redfish/v1/systems/1/hpsut/'}, 'PCIDevices': {'@odata.id': '/redfish/v1/Systems/1/PCIDevices/'}, 'PCISlots': {'@odata.id': '/redfish/v1/Systems/1/PCISlots/'}, 'NetworkAdapters': {'@odata.id': '/redfish/v1/Systems/1/BaseNetworkAdapters/'}, 'SmartStorage': {'@odata.id': '/redfish/v1/Systems/1/SmartStorage/'}, 'USBPorts': {'@odata.id': '/redfish/v1/Systems/1/USBPorts/'}, 'USBDevices': {'@odata.id': '/redfish/v1/Systems/1/USBDevices/'}, 'EthernetInterfaces': {'@odata.id': '/redfish/v1/Systems/1/EthernetInterfaces/'}, 'WorkloadPerformanceAdvisor': {'@odata.id': '/redfish/v1/Systems/1/WorkloadPerformanceAdvisor/'}, 'SecureEraseReportService': {'@odata.id': '/redfish/v1/Systems/1/SecureEraseReportService/'}}, 'PCAPartNumber': '847479-001', 'PCASerialNumber': 'PVZEK0ARHA014I', 'PostDiscoveryCompleteTimeStamp': None, 'PostDiscoveryMode': None, 'PostMode': None, 'PostState': 'FinishedPost', 'PowerAllocationLimit': 500, 'PowerAutoOn': 'Restore', 'PowerOnDelay': 'Minimum', 'PowerOnMinutes': 80090, 'PowerRegulatorMode': 'OSControl', 'PowerRegulatorModesSupported': ['OSControl', 'Dynamic', 'Max', 'Min'], 'ProcessorJitterControl': {'ConfiguredFrequencyLimitMHz': 0, 'Mode': 'Disabled'}, 'SMBIOS': {'extref': '/smbios'}, 'ServerFQDN': '', 'SmartStorageConfig': [{'@odata.id': '/redfish/v1/systems/1/smartstorageconfig/'}], 'SystemROMAndiLOEraseComponentStatus': {'BIOSSettingsEraseStatus': 'Idle', 'iLOSettingsEraseStatus': 'Idle'}, 'SystemROMAndiLOEraseStatus': 'Idle', 'UserDataEraseComponentStatus': {}, 'UserDataEraseStatus': 'Idle', 'VirtualProfile': 'Inactive'}}, 'PowerState': 'On', 'ProcessorSummary': {'Count': 1, 'Model': 'Intel(R) Xeon(R) Bronze 3106 CPU @ 1.70GHz', 'Status': {'HealthRollup': 'OK'}}, 'Processors': {'@odata.id': '/redfish/v1/Systems/1/Processors/'}, 'SKU': 'DL3000GEN10', 'SecureBoot': {'@odata.id': '/redfish/v1/Systems/1/SecureBoot/'}, 'SerialNumber': 'TX86NP0121', 'Status': {'Health': 'Warning', 'HealthRollup': 'Warning', 'State': 'Enabled'}, 'Storage': {'@odata.id': '/redfish/v1/Systems/1/Storage/'}, 'SystemType': 'Physical', 'TrustedModules': [{'Oem': {'Hpe': {'@odata.context': '/redfish/v1/$metadata#HpeTrustedModuleExt.HpeTrustedModuleExt', '@odata.type': '#HpeTrustedModuleExt.v2_0_0.HpeTrustedModuleExt'}}, 'Status': {'State': 'Absent'}}], 'UUID': '30334C44-3030-5854-3836-4E5030313231'}], 'Members@odata.count': 1} -------------------- Find iLO MAC Address -------------------- Retrieve MAC Addresses for iLO Management Network Interfaces. .. code-block:: python :linenos: def find_ilo_mac_address(_redfishobj): ethernet_data = {} resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) manager_ethernet_interfaces = managers_members_response.obj['EthernetInterfaces']\ ['@odata.id'] manager_ethernet_interfaces_response = _redfishobj.get(manager_ethernet_interfaces) manager_ethernet_interfaces_members = manager_ethernet_interfaces_response.\ obj['Members'] for _member in manager_ethernet_interfaces_members: _tmp = _redfishobj.get(_member['@odata.id']).obj ethernet_data[_member['@odata.id']] = _tmp else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#EthernetInterfaceCollection.' in instance['@odata.type'] and 'Managers' in \ instance['@odata.id']: ethernet_uri = instance['@odata.id'] ethernet_interfaces = _redfishobj.get(ethernet_uri).obj['Members'] for _ethernet_interface in ethernet_interfaces: ethernet_data[_ethernet_interface['@odata.id']] = _redfishobj.\ get(_ethernet_interface['@odata.id']).dict for iface in ethernet_data: sys.stdout.write("iLO Network Manager Interface: \'%s\'\n" % ethernet_data[iface]['Id']) sys.stdout.write("\tiLO Mac Address: \'%s\'\n" % ethernet_data[iface].get('MACAddress')) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Standard response: .. code-block:: TEXT iLO Network Manager Interface: '1' iLO Mac Address: '98:F2:B3:21:7B:48' iLO Network Manager Interface: '2' iLO Mac Address: '98:F2:B3:21:7B:49' iLO Network Manager Interface: '3' iLO Mac Address: '0A:CA:FE:F0:0D:04' ------------------------------- Get Certificate Signing Request ------------------------------- Obtain an iLO Certificate Signing Request for use with Secure Socket Layer (SSL)/Transport Layer Security (TLS) Certificate. .. note:: This process may take some time to complete on iLO (~5 minutes). .. code-block:: python :linenos: def generate_csr(_redfishobj, csr_file, csr_properties): csr_uri = None generate_csr_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links\ ['SecurityService']['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) csr_uri = security_service_response.obj.Links['HttpsCert']['@odata.id'] https_cert_response = _redfishobj.get(csr_uri) generate_csr_uri = https_cert_response.obj['Actions']['#HpeHttpsCert.GenerateCSR']\ ['target'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeHttpsCert.' in instance['@odata.type']: csr_uri = instance['@odata.id'] generate_csr_uri = _redfishobj.get(csr_uri).obj['Actions']\ ['#HpeHttpsCert.GenerateCSR']['target'] break if generate_csr_uri: body = dict() body["Action"] = "HpeHttpsCert.GenerateCSR" body["City"] = csr_properties["City"] body["CommonName"] = csr_properties["CommonName"] body["Country"] = csr_properties["Country"] body["OrgName"] = csr_properties["OrgName"] body["OrgUnit"] = csr_properties["OrgUnit"] body["State"] = csr_properties["State"] resp = _redfishobj.post(generate_csr_uri, body) if resp.status in [200, 201]: sys.stdout.write("Generating CSR, this may take a few minutes\n") sys.stdout.write("Sleeping for 5 minutes...\n") time.sleep(600) csr_resp = _redfishobj.get(csr_uri).dict['CertificateSigningRequest'] with open(csr_file, 'wb') as csroutput: csroutput.write(csr_resp) sys.stdout.write("CSR Data saved to file: '%s'\n" % csr_file) else: #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended #info error message to see what went wrong if resp.status not in [200, 201]: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO "\ "Extended Message Info...\n") ------------ Get AHS Data ------------ Obtain Active Health System Data. .. note:: AHS data is saved to a file, the contents of which are encoded. The use of an AHS Viewer to decode and parse is required. Please review Active Health System Viewer Documentation for further details: https://support.hpe.com/hpesc/public/docDisplay?docId=c05384164 .. code-block:: python :linenos: def get_ahs_data(_redfishobj, logfile): active_health_system_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) active_health_system_uri = managers_members_response.obj.Oem.Hpe.Links\ ['ActiveHealthSystem']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeiLOActiveHealthSystem.' in instance['@odata.type']: active_health_system_uri = instance['@odata.id'] if active_health_system_uri: active_health_system_response = _redfishobj.get(active_health_system_uri) active_health_system_log_uri = active_health_system_response.obj.Links['AHSLocation']\ ['extref'] active_health_system_log_resp = _redfishobj.get(active_health_system_log_uri) if active_health_system_log_resp.status == 400: try: print(json.dumps(active_health_system_log_resp.obj['error']\ ['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif active_health_system_log_resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") with open(logfile, 'wb') as ahsoutput: ahsoutput.write(active_health_system_log_resp.ori) ahsoutput.close() sys.stdout.write("AHS Data saved successfully as: \'%s\'" % logfile) ------------------- Get Base Registries ------------------- Obtain Registry Providers. Registry providers allow for the transaction of data between properties and firmware. .. code-block:: python :linenos: def get_base_registry(_redfishobj): registries_uri = _redfishobj.root.obj['Registries']['@odata.id'] if registries_uri: registries_members = _redfishobj.get(registries_uri).obj['Members'] for registry in registries_members: sys.stdout.write("Registry URI at '%s'\n" % registry['@odata.id']) -------- Get ESKM -------- Obtain HPE Enterprise Secure Key Manager Encryption Data. .. code-block:: python :linenos: def get_ESKM(_redfishobj): security_service_eskm_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links\ ['SecurityService']['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) security_service_eskm_uri = security_service_response.obj.Links['ESKM']['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeESKM.' in instance['@odata.type']: security_service_eskm_uri = instance['@odata.id'] break if security_service_eskm_uri: security_service_eskm_resp = _redfishobj.get(security_service_eskm_uri) print(json.dumps(security_service_eskm_resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ .. code-block:: JSON :linenos: { "@odata.context": "/redfish/v1/$metadata#HpeESKM.HpeESKM", "@odata.etag": "W/\"87058EB1\"", "@odata.id": "/redfish/v1/Managers/1/SecurityService/ESKM/", "@odata.type": "#HpeESKM.v2_0_0.HpeESKM", "Actions": { "#HpeESKM.ClearESKMLog": { "target": "/redfish/v1/Managers/1/SecurityService/ESKM/Actions/HpeESKM.ClearESKMLog/" }, "#HpeESKM.TestESKMConnections": { "target": "/redfish/v1/Managers/1/SecurityService/ESKM/Actions/HpeESKM.TestESKMConnections/" } }, "Id": "ESKM", "KeyManagerConfig": { "AccountGroup": "", "AccountName": "ilo-98f2b3217b48", "ESKMLocalCACertificateName": "", "ImportedCertificateIssuer": "", "ImportedCertificateSubject": "" }, "KeyServerRedundancyReq": false, "PrimaryKeyServerAddress": null, "PrimaryKeyServerPort": null, "SecondaryKeyServerAddress": null, "SecondaryKeyServerPort": null } ---------- Get iLO IP ---------- Obtain iLO Network Management Interface(s) IP Address(s). .. code-block:: python :linenos: def get_ilo_ip(_redfishobj): ethernet_data = {} resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) manager_ethernet_interfaces = managers_members_response.obj['EthernetInterfaces']\ ['@odata.id'] manager_ethernet_interfaces_response = _redfishobj.get(manager_ethernet_interfaces) manager_ethernet_interfaces_members = manager_ethernet_interfaces_response.\ obj['Members'] for _member in manager_ethernet_interfaces_members: _tmp = _redfishobj.get(_member['@odata.id']).obj ethernet_data[_member['@odata.id']] = _tmp else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#EthernetInterfaceCollection.' in instance['@odata.type'] and 'Managers' in \ instance['@odata.id']: ethernet_uri = instance['@odata.id'] ethernet_interfaces = _redfishobj.get(ethernet_uri).obj['Members'] for _ethernet_interface in ethernet_interfaces: ethernet_data[_ethernet_interface['@odata.id']] = _redfishobj.\ get(_ethernet_interface['@odata.id']).dict break if ethernet_data: for ethernet_interface in ethernet_data: sys.stdout.write("\n\nShowing iLO IPv4 Address Info on: %s\n\n" % ethernet_interface) print(json.dumps(ethernet_data[ethernet_interface]['IPv4Addresses'],\ indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Response data for each available network management interface is parsed for the Redfish IPv4 Data including: IP Address, Address Origin (Static/DHCP), Network Gateway, and Network Subnet Mask .. code-block: TEXT Showing iLO IPv4 Address Info on: /redfish/v1/Managers/1/EthernetInterfaces/1/ [ { "Address": "10.0.0.100", "AddressOrigin": "DHCP", "Gateway": "10.0.0.1", "SubnetMask": "255.255.255.0" } ] Showing iLO IPv4 Address Info on: /redfish/v1/Managers/1/EthernetInterfaces/3/ [] Showing iLO IPv4 Address Info on: /redfish/v1/Managers/1/EthernetInterfaces/2/ [ { "Address": "0.0.0.0", "AddressOrigin": "DHCP", "Gateway": "0.0.0.0", "SubnetMask": "255.255.255.255" } ] ----------- Get iLO NIC ----------- Obtain iLO Network Management Interface(s) Interface Enabled states. Modify lines 34-37 to display relevant desired data or all key-value pairs. .. code-block:: python :linenos: def get_ilo_nic(_redfishobj, get_enabled): ethernet_data = {} resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) manager_ethernet_interfaces = managers_members_response.obj['EthernetInterfaces']\ ['@odata.id'] manager_ethernet_interfaces_response = _redfishobj.get(manager_ethernet_interfaces) manager_ethernet_interfaces_members = manager_ethernet_interfaces_response.\ obj['Members'] for _member in manager_ethernet_interfaces_members: _tmp = _redfishobj.get(_member['@odata.id']).obj ethernet_data[_member['@odata.id']] = _tmp else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#EthernetInterfaceCollection.' in instance['@odata.type'] and 'Managers' in \ instance['@odata.id']: ethernet_uri = instance['@odata.id'] ethernet_interfaces = _redfishobj.get(ethernet_uri).obj['Members'] for _ethernet_interface in ethernet_interfaces: ethernet_data[_ethernet_interface['@odata.id']] = _redfishobj.\ get(_ethernet_interface['@odata.id']).dict break if ethernet_data: for ethernet_interface in ethernet_data: sys.stdout.write("\n\nShowing iLO IPv4 Address Info on: %s\n\n" % ethernet_interface) sys.stdout.write("\n\'Interface_Enabled\': \'%s\'\n" % json.dumps(ethernet_data\ [ethernet_interface][get_enabled], indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Response data for each available network management interface is parsed for the Redfish IPv4 Data including: IP Address, Address Origin (Static/DHCP), Network Gateway, and Network Subnet Mask .. code-block: TEXT Showing iLO IPv4 Address Info on: /redfish/v1/Managers/1/EthernetInterfaces/1/ 'Interface_Enabled': 'true' Showing iLO IPv4 Address Info on: /redfish/v1/Managers/1/EthernetInterfaces/2/ 'Interface_Enabled': 'false' Showing iLO IPv4 Address Info on: /redfish/v1/Managers/1/EthernetInterfaces/3/ 'Interface_Enabled': 'false' --------------- Get License Key --------------- Obtain iLO Licensing Key Information. .. code-block:: python :linenos: def get_license_key(_redfishobj): license_uri = None license_data = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) hp_hpe = next(iter(managers_members_response.obj.Oem)) license_collection_uri = managers_members_response.obj.Oem[hp_hpe].Links['LicenseService']\ ['@odata.id'] license_collection_response = _redfishobj.get(license_collection_uri) license_collection_members_uri = next(iter(license_collection_response.obj\ ['Members']))['@odata.id'] license_data = _redfishobj.get(license_collection_members_uri).dict license_uri = _redfishobj.get(license_collection_members_uri).dict['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeiLOLicense.' in instance['@odata.type']: license_uri = instance['@odata.id'] license_data = _redfishobj.get(license_uri).dict break if license_data: try: sys.stdout.write("\n\'License Info\': \'%s\'\n" % \ json.dumps(license_data['ConfirmationRequest']['EON'], indent=4, sort_keys=True)) except KeyError: sys.stdout.write("\n\'License Info\': \'%s\'\n" % \ json.dumps(license_data['LicenseKey'], indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Response Data will include the License Type, License Key (iLO 5) and State. .. code-block: JSON "License Info": { "License": "iLO Advanced limited-distribution test", "LicenseKey": "333K2-CBV3G-P59QR-YXDTG-JKPM2", "Quantity": 1, "State": "nfr" } ------------------ Get Logical Drives ------------------ List all logical drives associated with a smart array controller. .. code-block:: python :linenos: def get_SmartArray_LogicalDrives(_redfishobj): smartstorage_response = [] smartarraycontrollers = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) smart_storage_uri = systems_members_response.obj.Oem.Hpe.Links\ ['SmartStorage']['@odata.id'] smart_storage_arraycontrollers_uri = _redfishobj.get(smart_storage_uri).obj.Links\ ['ArrayControllers']['@odata.id'] smartstorage_response = _redfishobj.get(smart_storage_arraycontrollers_uri).obj['Members'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeSmartStorageArrayController.' in instance['@odata.type']: smartstorage_uri = instance['@odata.id'] smartstorage_resp = _redfishobj.get(smartstorage_uri).obj sys.stdout.write("Logical Drive URIs for Smart Storage Array Controller " \ "'%s\' : \n" % smartstorage_resp.get('Id')) logicaldrives_uri = smartstorage_resp.Links['LogicalDrives']['@odata.id'] logicaldrives_resp = _redfishobj.get(logicaldrives_uri) if not logicaldrives_resp.dict['Members']: sys.stderr.write("\tLogical drives are not available for this controller.\n") for drives in logicaldrives_resp.dict['Members']: sys.stdout.write("\t An associated logical drive: %s\n" % drives) drive_data = _redfishobj.get(drives['@odata.id']).dict print(json.dumps(drive_data, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Logical drives listed .. code-block: TEXT :linenos: Logical Drive URIs for Smart Storage Array Controller '0' : An associated logical drive: {'@odata.id': '/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/1/'} { "@odata.context": "/redfish/v1/$metadata#HpeSmartStorageLogicalDrive.HpeSmartStorageLogicalDrive", "@odata.etag": "W/\"1E5315F5\"", "@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/1/", "@odata.type": "#HpeSmartStorageLogicalDrive.v2_3_0.HpeSmartStorageLogicalDrive", "AccelerationMethod": "ControllerCache", "CapacityMiB": 286070, "Description": "HPE Smart Storage Logical Drive View", "Id": "1", "InterfaceType": "SAS", "LegacyBootPriority": "None", "Links": { "DataDrives": { "@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/1/DataDrives/" } }, "LogicalDriveEncryption": false, "LogicalDriveName": "Ubuntu", "LogicalDriveNumber": 1, "LogicalDriveStatusReasons": [ "Ok" ], "LogicalDriveType": "Data", "MediaType": "HDD", "Name": "HpeSmartStorageLogicalDrive", "Raid": "0", "Status": { "Health": "OK", "State": "Enabled" }, "StripeSizeBytes": 262144, "VolumeUniqueIdentifier": "600508B1001C62CD82E5F0A829D6F166" } An associated logical drive: {'@odata.id': '/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/2/'} { "@odata.context": "/redfish/v1/$metadata#HpeSmartStorageLogicalDrive.HpeSmartStorageLogicalDrive", "@odata.etag": "W/\"5765A79C\"", "@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/2/", "@odata.type": "#HpeSmartStorageLogicalDrive.v2_3_0.HpeSmartStorageLogicalDrive", "AccelerationMethod": "None", "CapacityMiB": 286070, "Description": "HPE Smart Storage Logical Drive View", "Id": "2", "InterfaceType": "SAS", "LegacyBootPriority": "None", "Links": { "DataDrives": { "@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/2/DataDrives/" } }, "LogicalDriveEncryption": false, "LogicalDriveName": "RedHat", "LogicalDriveNumber": 2, "LogicalDriveStatusReasons": [ "Ok" ], "LogicalDriveType": "Data", "MediaType": "HDD", "Name": "HpeSmartStorageLogicalDrive", "Raid": "0", "Status": { "Health": "Warning", "State": "Enabled" }, "StripeSizeBytes": 262144, "VolumeUniqueIdentifier": "600508B1001C1479064E27DBA1A62E9F" } An associated logical drive: {'@odata.id': '/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/3/'} { "@odata.context": "/redfish/v1/$metadata#HpeSmartStorageLogicalDrive.HpeSmartStorageLogicalDrive", "@odata.etag": "W/\"8A549D6D\"", "@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/3/", "@odata.type": "#HpeSmartStorageLogicalDrive.v2_3_0.HpeSmartStorageLogicalDrive", "AccelerationMethod": "None", "CapacityMiB": 286070, "Description": "HPE Smart Storage Logical Drive View", "Id": "3", "InterfaceType": "SAS", "LegacyBootPriority": "None", "Links": { "DataDrives": { "@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/3/DataDrives/" } }, "LogicalDriveEncryption": false, "LogicalDriveName": "Suse", "LogicalDriveNumber": 3, "LogicalDriveStatusReasons": [ "Ok" ], "LogicalDriveType": "Data", "MediaType": "HDD", "Name": "HpeSmartStorageLogicalDrive", "Raid": "0", "Status": { "Health": "Warning", "State": "Enabled" }, "StripeSizeBytes": 262144, "VolumeUniqueIdentifier": "600508B1001C9375ABBBD2D850E73768" } An associated logical drive: {'@odata.id': '/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/4/'} { "@odata.context": "/redfish/v1/$metadata#HpeSmartStorageLogicalDrive.HpeSmartStorageLogicalDrive", "@odata.etag": "W/\"7E05B474\"", "@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/4/", "@odata.type": "#HpeSmartStorageLogicalDrive.v2_3_0.HpeSmartStorageLogicalDrive", "AccelerationMethod": "None", "CapacityMiB": 286070, "Description": "HPE Smart Storage Logical Drive View", "Id": "4", "InterfaceType": "SAS", "LegacyBootPriority": "None", "Links": { "DataDrives": { "@odata.id": "/redfish/v1/Systems/1/SmartStorage/ArrayControllers/0/LogicalDrives/4/DataDrives/" } }, "LogicalDriveEncryption": false, "LogicalDriveName": "VMWare", "LogicalDriveNumber": 4, "LogicalDriveStatusReasons": [ "Ok" ], "LogicalDriveType": "Data", "MediaType": "HDD", "Name": "HpeSmartStorageLogicalDrive", "Raid": "0", "Status": { "Health": "Warning", "State": "Enabled" }, "StripeSizeBytes": 262144, "VolumeUniqueIdentifier": "600508B1001C027715587DEA05B333DE" } ----------------- Get Power Metrics ----------------- Obtain Redfish power metrics. .. code-block:: python :linenos: def get_powermetrics_average(_redfishobj): power_metrics_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI chassis_uri = _redfishobj.root.obj['Chassis']['@odata.id'] chassis_response = _redfishobj.get(chassis_uri) chassis_members_uri = next(iter(chassis_response.obj['Members']))['@odata.id'] chassis_members_response = _redfishobj.get(chassis_members_uri) power_metrics_uri = chassis_members_response.obj.Oem.Hpe['Power']['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#Power.' in instance['@odata.type']: power_metrics_uri = instance['@odata.id'] break if power_metrics_uri: power_metrics_data = _redfishobj.get(power_metrics_uri).obj.Oem.Hpe print("\n\nPower Data:\n\n") print(json.dumps(power_metrics_data, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Power Metric Data .. code-block: JSON :linenos: { "@odata.context": "/redfish/v1/$metadata#HpePowerMetricsExt.HpePowerMetricsExt", "@odata.type": "#HpePowerMetricsExt.v2_2_0.HpePowerMetricsExt", "BrownoutRecoveryEnabled": true, "HasCpuPowerMetering": true, "HasDimmPowerMetering": true, "HasGpuPowerMetering": false, "HasPowerMetering": true, "HighEfficiencyMode": "Balanced", "Links": { "FastPowerMeter": { "@odata.id": "/redfish/v1/Chassis/1/Power/FastPowerMeter/" }, "FederatedGroupCapping": { "@odata.id": "/redfish/v1/Chassis/1/Power/FederatedGroupCapping/" }, "PowerMeter": { "@odata.id": "/redfish/v1/Chassis/1/Power/PowerMeter/" } }, "MinimumSafelyAchievableCap": null, "MinimumSafelyAchievableCapValid": false, "SNMPPowerThresholdAlert": { "DurationInMin": 0, "ThresholdWatts": 0, "Trigger": "Disabled" } } ---------------------- Get Resource Directory ---------------------- Obtain iLO Resource Directory, quick access to all '@odata.type' references and respective '@odata.id'. .. note:: This resource is only available on iLO systems. .. code-block:: python :linenos: def get_resource_directory(redfishobj): try: resource_uri = redfishobj.root.obj.Oem.Hpe.Links.ResourceDirectory['@odata.id'] except KeyError: sys.stderr.write("Resource directory is only available on HPE servers.\n") return None response = redfishobj.get(resource_uri) resources = [] if response.status == 200: sys.stdout.write("\tFound resource directory at /redfish/v1/resourcedirectory" + "\n\n") resources = response.dict["Instances"] else: sys.stderr.write("\tResource directory missing at /redfish/v1/resourcedirectory" + "\n") return resources ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Snippet of Resource directory .. code-block: TEXT :linenos: #ServiceRoot.v1_5_1.ServiceRoot /redfish/v1/ #Manager.v1_5_1.Manager /redfish/v1/Managers/1/ #ManagerCollection.ManagerCollection /redfish/v1/Managers/ #ComputerSystem.v1_10_0.ComputerSystem /redfish/v1/Systems/1/ #ComputerSystemCollection.ComputerSystemCollection /redfish/v1/Systems/ #Chassis.v1_6_0.Chassis /redfish/v1/Chassis/1/ #ChassisCollection.ChassisCollection /redfish/v1/Chassis/ .... ----------- Get Schemas ----------- Obtain schema data. .. code-block:: python :linenos: def get_schema(_redfishobj): schema_members_uris = [] schema_members_expanded = {} schema_uri = _redfishobj.root.obj['JsonSchemas']['@odata.id'] schema_response = _redfishobj.get(schema_uri) schema_members_uris = schema_response.obj['Members'] for member in schema_members_uris: data = _redfishobj.get(member['@odata.id']).dict instance_id = data['Location'].index(next(iter(data['Location']))) schema_uri = data['Location'][instance_id]['Uri'] schema = _redfishobj.get(schema_uri).dict #I am just replacing the URI link for the sub-schema with the actual schema. You will #see EVERYTHING _tmp = {schema_uri + ' ->': schema} data['Location'][instance_id]['Uri'] = _tmp schema_members_expanded[member['@odata.id']] = data print(json.dumps(schema_members_expanded, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Snippet of schema data for *HpeiLOManagerNetworkService* .. code-block: TEXT :linenos: "/redfish/v1/JsonSchemas/HpeiLOManagerNetworkService/": { "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile", "@odata.etag": "W/\"02E6EE72\"", "@odata.id": "/redfish/v1/JsonSchemas/HpeiLOManagerNetworkService/", "@odata.type": "#JsonSchemaFile.v1_0_4.JsonSchemaFile", "Description": "Schema Definition File for HpeiLOManagerNetworkService", "Id": "HpeiLOManagerNetworkService", "Languages": [ "en" ], "Location": [ { "Language": "en", "Uri": { "/redfish/v1/SchemaStore/en/HpeiLOManagerNetworkService.json/ ->": { "$schema": "http://json-schema.org/draft-04/schema#", "@odata.id": "HpeiLOManagerNetworkService", "actions": { "actions": { "HpeiLOManagerNetworkService.SendTestAlertMail": { "additionalProperties": false, "properties": { "Action": { "description": "Sends test alert mail to configured AlertMail email address.", "enum": [ "HpeiLOManagerNetworkService.SendTestAlertMail" ], "readonly": true, "type": "string" } }, "required": [ "Action" ], "type": "object" }, "HpeiLOManagerNetworkService.SendTestSyslog": { "additionalProperties": false, "properties": { "Action": { "enum": [ "HpeiLOManagerNetworkService.SendTestSyslog" ], "type": "string" } }, "required": [ "Action" ], "type": "object" } }, "description": "These describe the POST custom actions defined for this type (although the implemented actions may be a subset of these)." }, "additionalProperties": false, "copyright": "Copyright 2014-2019 Hewlett Packard Enterprise Development, LP. Portions Copyright 2014-2019 Distributed Management Task Force. All rights reserved.", "description": "The HpeiLOManagerNetworkService object extends the Redfish ManagerNetworkProtocol resource with additional HPE functionality.", "properties": { "@odata.context": { "$ref": "Resource.json#/definitions/odatacontext" }, "@odata.etag": { "$ref": "Resource.json#/definitions/odataetag" }, "@odata.id": { "$ref": "Resource.json#/definitions/odataid" }, "@odata.type": { "$ref": "Resource.json#/definitions/odatatype" }, "Actions": { "additionalProperties": false, "properties": { "#HpeiLOManagerNetworkService.SendTestAlertMail": { "additionalProperties": false, "properties": { "target": { "description": "Link to invoke action", "type": "string" }, "title": { "description": "Friendly action name", "type": "string" } }, "type": "object" }, "#HpeiLOManagerNetworkService.SendTestSyslog": { "additionalProperties": false, "properties": { "target": { "description": "Link to invoke action", "type": "string" }, "title": { "description": "Friendly action name", "type": "string" } }, "type": "object" } }, "type": "object" }, "AlertMailEmail": { "description": "The destination email address for email alerts.", "etag": true, "readonly": false, "type": "string" }, "AlertMailEnabled": { "description": "Indicates whether AlertMail is enabled. This can be enabled only when the properties AlertMailEmail, AlertMailSenderDomain and AlertMailSMTPServer are set or not empty.", "etag": true, "readonly": false, "type": "boolean" }, "AlertMailSMTPAuthEnabled": { "description": "Indicates whether AlertMail SMTP Authentication is enabled. This can be enabled only when the properties AlertMailSMTPSecureEnabled, AlertMailSMTPAuthUser and AlertMailSMTPAuthPw are set or not empty.", "etag": true, "readonly": false, "type": "boolean" }, "AlertMailSMTPAuthPw": { "description": "The password credential for SMTP server Authentication.", "etag": true, "maxLength": 63, "readonly": false, "type": [ "string", "null" ] }, "AlertMailSMTPAuthUser": { "description": "The username credential for SMTP server Authentication.", "etag": true, "maxLength": 63, "readonly": false, "type": "string" }, "AlertMailSMTPPort": { "default": 25, "description": "The SMTP server port number.", "etag": true, "maximum": 65535, "minimum": 1, "readonly": false, "type": "integer" }, "AlertMailSMTPSecureEnabled": { "description": "Indicates whether AlertMail SMTP Secure Connection (SSL/TLS) is enabled.", "etag": true, "readonly": false, "type": "boolean" }, "AlertMailSMTPServer": { "description": "The IP address or DNS name of the SMTP server or the Mail Submission Agent (MSA).", "etag": true, "readonly": false, "type": "string" }, "AlertMailSenderDomain": { "description": "The domain name for the sender email address.", "etag": true, "maxLength": 63, "readonly": false, "type": "string" }, "ConfigurationSettings": { "description": "State of the currently displayed configuration settings.", "enum": [ "Current", "SomePendingReset" ], "etag": true, "readonly": true, "type": "string" }, "FederationEnabled": { "description": "Indicates whether management processor federation management is enabled or disabled.", "etag": true, "readonly": false, "type": "boolean" }, "FederationSupported": { "description": "Indicates whether management processor federation is supported.", "etag": true, "readonly": true, "type": "boolean" }, "Id": { "$ref": "Resource.json#/definitions/Id" }, "Links": { "additionalProperties": false, "description": "The resource URIs related to the network services managed by this manager.", "properties": { "EthernetInterfaces": { "description": "The URIs of the Ethernet NICs.", "properties": { "@odata.id": { "$ref": "Resource.json#/definitions/odataid" } }, "readonly": true, "type": "object" }, "SNMPService": { "description": "The SNMP Service resource URI.", "properties": { "@odata.id": { "$ref": "Resource.json#/definitions/odataid" } }, "readonly": true, "type": "object" } }, "type": "object" }, "RemoteSyslogEnabled": { "description": "Indicates whether Remote Syslog is enabled. When enabled, management processor sends notification messages to the specified Syslog server. This can be enabled only when the property RemoteSyslogServer is set or not empty.", "etag": true, "readonly": false, "type": "boolean" }, "RemoteSyslogPort": { "default": 514, "description": "The port number through which the Syslog servers are listening.", "etag": true, "maximum": 65535, "minimum": 1, "readonly": false, "type": "integer" }, "RemoteSyslogServer": { "description": "The IP address, FQDN, IPv6 name, or short name of the servers running the Syslog service.", "etag": true, "readonly": false, "type": "string" }, "SNMPTrapPort": { "description": "The SNMP trap port number.", "etag": true, "maximum": 65535, "minimum": 1, "readonly": false, "type": "integer" }, "SerialOverLanLogging": { "description": "Indicates whether Serial Over LAN (SOL) or Virtual Serial Port (VSP) logging is enabled.", "etag": true, "readonly": false, "type": "boolean" }, "VirtualMediaEncryptionEnabled": { "description": "Enables or disables encryption on virtual media connections.", "etag": true, "readonly": false, "type": "boolean" }, "XMLResponseEnabled": { "description": "Determines whether management processor responds to anonymous XML discovery requests.", "etag": true, "readonly": false, "type": "boolean" } }, "readonly": false, "title": "#HpeiLOManagerNetworkService.v2_2_0.HpeiLOManagerNetworkService", "type": "object" } } } ], "Name": "HpeiLOManagerNetworkService Schema Definition File", "Schema": "#HpeiLOManagerNetworkService.v2_2_0.HpeiLOManagerNetworkService" } -------------------------- Get Smart Array Encryption -------------------------- Obtain Smart Array controller encryption property data. .. code-block:: python :linenos: def get_SmartArray_EncryptionSettings(_redfishobj, desired_properties): smartstorage_response = [] smartarraycontrollers = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) smart_storage_uri = systems_members_response.obj.Oem.Hpe.Links\ ['SmartStorage']['@odata.id'] smart_storage_arraycontrollers_uri = _redfishobj.get(smart_storage_uri).obj.Links\ ['ArrayControllers']['@odata.id'] smartstorage_response = _redfishobj.get(smart_storage_arraycontrollers_uri).obj['Members'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeSmartStorageArrayControllerCollection.' in instance['@odata.type']: smartstorage_uri = instance['@odata.id'] smartstorage_response = _redfishobj.get(smartstorage_uri).obj['Members'] break for controller in smartstorage_response: smartarraycontrollers[controller['@odata.id']] = _redfishobj.get(controller['@odata.id']).\ obj sys.stdout.write("Encryption Properties for Smart Storage Array Controller \'%s\' : \n" \ % smartarraycontrollers[controller['@odata.id']].get('Id')) for data in smartarraycontrollers[controller['@odata.id']]: if data in desired_properties: sys.stdout.write("\t %s : %s\n" % (data, smartarraycontrollers[controller\ ['@odata.id']].get(data))) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ .. code-block:: JSON :linenos: { "@odata.context": "/redfish/v1/$metadata#HpeESKM.HpeESKM", "@odata.etag": "W/\"87058EB1\"", "@odata.id": "/redfish/v1/Managers/1/SecurityService/ESKM/", "@odata.type": "#HpeESKM.v2_0_0.HpeESKM", "Actions": { "#HpeESKM.ClearESKMLog": { "target": "/redfish/v1/Managers/1/SecurityService/ESKM/Actions/HpeESKM.ClearESKMLog/" }, "#HpeESKM.TestESKMConnections": { "target": "/redfish/v1/Managers/1/SecurityService/ESKM/Actions/HpeESKM.TestESKMConnections/" } }, "Id": "ESKM", "KeyManagerConfig": { "AccountGroup": "", "AccountName": "ilo-98f2b3217b48", "ESKMLocalCACertificateName": "", "ImportedCertificateIssuer": "", "ImportedCertificateSubject": "" }, "KeyServerRedundancyReq": false, "PrimaryKeyServerAddress": null, "PrimaryKeyServerPort": null, "SecondaryKeyServerAddress": null, "SecondaryKeyServerPort": null } ---------------------- Import SSL Certificate ---------------------- Import Secure Socket Layer Certificate. .. code-block:: python :linenos: def import_ssl(_redfishobj, ssl_file_path): https_cert_uri = None body = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links['SecurityService']\ ['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) https_cert_uri = security_service_response.obj.Links['HttpsCert']['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeHttpsCert.' in instance['@odata.type']: https_cert_uri = instance['@odata.id'] break if https_cert_uri: https_cert_import_uri = _redfishobj.get(https_cert_uri).obj['Actions']\ ['#HpeHttpsCert.ImportCertificate']['target'] body = dict() body["Action"] = "HpeHttpsCert.ImportCertificate" body["Certificate"] = ssl_cert resp = _redfishobj.post(https_cert_import_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) print("\nImporting SSL Certificate may take a few minutes...\n "\ "iLO will reset with new changes.\n") ---------------------------------- Modify iLO Management User Account ---------------------------------- Modify a management interface user account. .. code-block:: python :linenos: def modify_ilo_user_account(_redfishobj, username_to_modify, new_loginname, new_username, \ new_password, role_id, privilege_dict): account_collection_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #resource directory is not available so we will navigate through paths manually to obtain #account info account_service_uri = _redfishobj.root.obj['AccountService']['@odata.id'] account_service_response = _redfishobj.get(account_service_uri) account_collection_uri = account_service_response.obj['Accounts']['@odata.id'] #modify role id if role_id: body = {"RoleId": role_id} else: #obtain all account instances from resource directory for instance in resource_instances: if '#ManagerAccountCollection.' in instance['@odata.type']: account_collection_uri = instance['@odata.id'] if privilege_dict: #HPE server, so modify privileges body = {"Oem": {"Hpe": {"Privileges": {}}}} for priv in privilege_dict: body["Oem"]["Hpe"]["Privileges"][priv] = privilege_dict[priv] if new_loginname: #modify login name body["Oem"]["Hpe"]["LoginName"] = new_loginname if new_username: body["UserName"] = new_username if new_password: body["Password"] = new_password #find the account to modify account_uri_to_modify = None account_uris = REDFISHOBJ.get(account_collection_uri) for account_uri in account_uris.dict['Members']: account = REDFISHOBJ.get(account_uri['@odata.id']) if account.dict['UserName'] == username_to_modify: account_uri_to_modify = account_uri['@odata.id'] break if not account_uri_to_modify: sys.stderr.write("Cannot find account to modify") return #modify the account resp = REDFISHOBJ.patch(account_uri_to_modify, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended Message "\ "Info...") elif resp.status != 200: sys.stderr.write("An http response of '%s' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ An example Redfish response error message. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.AccountModified" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } -------------------- Modify Virtual Media -------------------- Modify a virtual media entry. .. code-block:: python :linenos: def mount_virtual_media_iso(_redfishobj, iso_url, media_type, boot_on_next_server_reset): virtual_media_uri = None virtual_media_response = [] resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) virtual_media_uri = managers_members_response.obj['VirtualMedia']['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#VirtualMediaCollection.' in instance['@odata.type']: virtual_media_uri = instance['@odata.id'] if virtual_media_uri: virtual_media_response = _redfishobj.get(virtual_media_uri) for virtual_media_slot in virtual_media_response.obj['Members']: data = _redfishobj.get(virtual_media_slot['@odata.id']) if media_type in data.dict['MediaTypes']: virtual_media_mount_uri = data.obj['Actions']['#VirtualMedia.InsertMedia']['target'] post_body = {"Image": iso_url} if iso_url: resp = _redfishobj.post(virtual_media_mount_uri, post_body) if boot_on_next_server_reset is not None: patch_body = {} patch_body["Oem"] = {"Hpe": {"BootOnNextServerReset": \ boot_on_next_server_reset}} boot_resp = _redfishobj.patch(data.obj['@odata.id'], patch_body) if not boot_resp.status == 200: sys.stderr.write("Failure setting BootOnNextServerReset") if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO" "Extended Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) break ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ An example Redfish response error message following a successful modification of a user account. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ------------- Reboot Server ------------- Reboot a server. .. code-block:: python :linenos: def reboot_server(_redfishobj): systems_members_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#ComputerSystem.' in instance['@odata.type']: systems_members_uri = instance['@odata.id'] systems_members_response = _redfishobj.get(systems_uri) if systems_members_response: system_reboot_uri = systems_members_response.obj['Actions']['#ComputerSystem.Reset']\ ['target'] body = dict() body['Action'] = 'ComputerSystem.Reset' body['ResetType'] = "ForceRestart" resp = _redfishobj.post(system_reboot_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended " "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ An example Redfish response error message following a successful application of virtual media. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ------------------------------------- Remove an iLO User Management Account ------------------------------------- Delete an iLO User Management Account .. code-block:: python :linenos: def reboot_server(_redfishobj): systems_members_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#ComputerSystem.' in instance['@odata.type']: systems_members_uri = instance['@odata.id'] systems_members_response = _redfishobj.get(systems_uri) if systems_members_response: system_reboot_uri = systems_members_response.obj['Actions']['#ComputerSystem.Reset']\ ['target'] body = dict() body['Action'] = 'ComputerSystem.Reset' body['ResetType'] = "ForceRestart" resp = _redfishobj.post(system_reboot_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended " "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ An example Redfish response error message following a successful application of virtual media. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } -------------------- Reset ESKM Event log -------------------- Reset Enterprise Secure Key Manager event log. .. code-block:: python :linenos: def reset_ESKM_eventlog(_redfishobj): body = dict() security_service_eskm_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links\ ['SecurityService']['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) security_service_eskm_uri = security_service_response.obj.Links['ESKM']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeESKM.' in instance['@odata.type']: security_service_eskm_uri = instance['@odata.id'] break if security_service_eskm_uri: security_service_eskm_uri = _redfishobj.get(security_service_uri).obj.Links\ ['ESKM']['@odata.id'] security_service_eskm_resp = _redfishobj.get(security_service_eskm_uri) security_service_eskm_clearlog_uri = security_service_eskm_resp.obj['Actions']\ ['#HpeESKM.ClearESKMLog']['target'] body["Action"] = "HpeESKM.ClearESKMLog" #We pass the URI and the dictionary as a POST command (part of the redfish object) resp = _redfishobj.post(security_service_eskm_clearlog_uri, body) #If iLO responds with something outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ An example Redfish response error message following a successful reset of ESKM log. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } --------- Reset iLO --------- Reset iLO BMC. .. code-block:: python :linenos: def reset_ilo(_redfishobj): managers_members_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#Manager.' in instance['@odata.type']: managers_members_uri = instance['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) if managers_members_response: reset_ilo_uri = managers_members_response.obj['Actions']['#Manager.Reset']['target'] body = {'Action': 'Manager.Reset'} resp = _redfishobj.post(reset_ilo_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended Message "\ "Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ An example Redfish response error message following a successful reset of iLO. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "iLO.2.14.ResetInProgress" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } -------- Sessions -------- Example of session management. .. code-block:: python :linenos: def sessions(_redfishobj, login_account, login_password): new_session = {"UserName": login_account, "Password": login_password} response = _redfishobj.post('/redfish/v1/Sessions', new_session) if response.status == 201: print("Success!\n") session_uri = response.getheader("location") session_uri = urllib.parse.urlparse(session_uri) sys.stdout.write("\tSession " + session_uri.path + " created.\n") x_auth_token = response.getheader("x-auth-token") sys.stdout.write("\tThis is the session X-Auth Token key " + x_auth_token + ".\n") print(json.dumps(response.dict, indent=4, sort_keys=True)) # Delete the created session sys.stdout.write("\tTerminating this session.\n") sessresp = _redfishobj.delete(session_uri.path) print(json.dumps(sessresp.dict, indent=4, sort_keys=True)) else: sys.stderr.write("ERROR: failed to create a session.\n") try: print(json.dumps(sessresp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended" " Message Info...") ^^^^^^^^^^^^^^^^ Session Creation ^^^^^^^^^^^^^^^^ Session token and URI. Session tokens can be cached and used for authentication for all subsequent calls as long as the session has not been terminated by the client or timed out by the server. .. note:: This is only true in production mode. Some higher security modes may require additional authentication techniques to be performed. .. code-block:: TEXT Session X-Auth Token: 61ac3d750eeda276749cdd2138117a8f Session URI: /redfish/v1/SessionService/Sessions/admin000000005f3d4cbfdbde43a8 An example Redfish response error message following a successful creation. .. code-block:: JSON :linenos: { "@odata.context": "/redfish/v1/$metadata#Session.Session", "@odata.etag": "W/\"F1F51DF3\"", "@odata.id": "/redfish/v1/SessionService/Sessions/admin000000005f3d4cbfdbde43a8", "@odata.type": "#Session.v1_0_0.Session", "Description": "Manager User Session", "Id": "admin000000005f3d4cbfdbde43a8", "Name": "User Session", "Oem": { "Hpe": { "@odata.context": "/redfish/v1/$metadata#HpeiLOSession.HpeiLOSession", "@odata.type": "#HpeiLOSession.v2_1_0.HpeiLOSession", "AccessTime": "2020-08-19T16:01:03Z", "LoginTime": "2020-08-19T16:01:03Z", "MySession": false, "UserExpires": "2020-08-19T16:31:03Z", "UserIP": "16.214.34.25", "UserTag": "REST", "UserType": "Local" } }, "UserName": "admin" } ^^^^^^^^^^^^^^^^ Session Creation ^^^^^^^^^^^^^^^^ Terminating a session from the client side simply requires deletion of the session URI. Attempting to re-access the session results in the following response message. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.NoValidSession" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ----------------------- iLO Management NIC Data ----------------------- Example of ethernet management NIC enablement/disablement. On iLO systems: * *Ethernet Management Interface 1* is typically the physical NIC port * *Ethernet Management Interface 2* is typically the shared NIC interface. ** Shared physical System/iLO NIC. ** iLO USB port (requires the use of a USB to NIC adapter) * *Ethernet Management Interface 3* is typically the virtual NIC interface. This is generally PnP with a supported Kernel/kernel virtual usb drivers. .. code-block:: python :linenos: def set_active_ilo_nic(_redfishobj): ethernet_data = {} resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) manager_ethernet_interfaces = managers_members_response.obj['EthernetInterfaces']\ ['@odata.id'] manager_ethernet_interfaces_response = _redfishobj.get(manager_ethernet_interfaces) manager_ethernet_interfaces_members = manager_ethernet_interfaces_response.\ obj['Members'] for _member in manager_ethernet_interfaces_members: _tmp = _redfishobj.get(_member['@odata.id']).obj ethernet_data[_member['@odata.id']] = _tmp else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#EthernetInterfaceCollection.' in instance['@odata.type'] and 'Managers' in \ instance['@odata.id']: ethernet_uri = instance['@odata.id'] ethernet_interfaces = _redfishobj.get(ethernet_uri).obj['Members'] for _ethernet_interface in ethernet_interfaces: ethernet_data[_ethernet_interface['@odata.id']] = _redfishobj.\ get(_ethernet_interface['@odata.id']).dict break if ethernet_data: print("\n\nShowing all available ethernet management interfaces before changes:\n\n") for interface in ethernet_data: sys.stdout.write("Ethernet Management Inteface \'%s\'\n" % ethernet_data\ [interface].get('Id')) sys.stdout.write("\t\'Interface Enabled\': %s\n" % ethernet_data[interface].\ get('InterfaceEnabled')) for ethernet in ethernet_data: sys.stdout.write("Ethernet Interface: %s\n" % ethernet) ans = input("Would you like to enable/disable this interface? (enable/disable)\n") if "en" in ans: body = {"InterfaceEnabled": True} else: body = {"InterfaceEnabled": False} resp = _redfishobj.patch(ethernet, body) if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success! You will need to reset iLO for this change to take effect.\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ---------- BIOS iSCSI ---------- Configure iSCSI (Internet Small Computer Systems Interface) for ip based network attached storage. .. code-block:: python :linenos: def set_bios_iscsi(_redfishobj, iscsi_properties): iscsi_uri = None iscsi_data = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) bios_uri = systems_members_response.obj['Bios']['@odata.id'] bios_response = _redfishobj.get(bios_uri) iscsi_uri = bios_response.obj.Oem.Hpe.Links['iScsi']['@odata.id'] iscsi_data = _redfishobj.get(iscsi_uri) else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeiSCSISoftwareInitiator.' in instance['@odata.type']: iscsi_uri = instance['@odata.id'] iscsi_data = _redfishobj.get(iscsi_uri) if iscsi_data: for indx, inst in enumerate(iscsi_data.obj['iSCSISources']): if iscsi_properties['iSCSIBootInstance'] == indx: iscsi_data.dict['iSCSISources'][indx].update(iscsi_properties) resp = _redfishobj.patch(iscsi_uri, {'iSCSISources' : iscsi_data.dict['iSCSISources']}) #If iLO responds with soemthing outside of 200 or 201 then lets check the #iLO extended info error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], \ indent=4, sort_keys=True)) except Exception as excp: print(json.dumps(resp.ori, indent=4, sort_keys=True)) sys.stderr.write("A response error occurred, unable to access iLO " \ "Extended Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success! A system reboot will be required to complete the change.\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) break ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Successful modification of iSCSI data. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "iLO.2.14.SystemResetRequired" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ----------------- Set BIOS Password ----------------- Set BIOS Password. .. code-block:: python :linenos: def set_bios_password(_redfishobj, new_password, bios_password): bios_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) bios_uri = systems_members_response.obj['Bios']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#Bios.' in instance['@odata.type']: bios_uri = instance['@odata.id'] break if bios_uri: bios_data = _redfishobj.get(bios_uri) bios_change_pass_uri = bios_data.obj['Actions']['#Bios.ChangePassword']['target'] body = dict() body["PasswordName"] = "Administrator" body["OldPassword"] = bios_password body["NewPassword"] = new_password resp = _redfishobj.post(bios_change_pass_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Successful modification of BIOS password. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } -------------------- Set ESKM Primary Key -------------------- Set HPE Enterprise Secure Key Manager Key Manager Config. .. note:: A valid ESKM key manager config is required and is tested upon patch submission. An error initializing ESKM may occur if the ESKM key manager or associated required properties are invalid. See '@Message.ExtendedInfo' in the http response message. .. code-block:: JSON { "error": { "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information.", "@Message.ExtendedInfo": [{ "MessageId": "iLO.2.14.ErrorIntializingESKM" }] } } .. code-block:: python :linenos: def set_ESKM_PrimaryKeyServer(_redfishobj, primary_key_server_address, primary_key_server_port): eskm_uri = None body = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links['SecurityService']\ ['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) eskm_uri = security_service_response.obj.Links['ESKM']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeESKM.' in instance['@odata.type']: eskm_uri = instance['@odata.id'] break if eskm_uri: body["PrimaryKeyServerAddress"] = primary_key_server_address body["PrimaryKeyServerPort"] = int(primary_key_server_port) resp = _redfishobj.post(eskm_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ------------------------------------ Configure Ethernet Management NIC(s) ------------------------------------ Configure Ethernet Management NIC(s) for DHCP/Static Network Addressing. .. code-block:: python :linenos: def set_ilo_static_ipv4(_redfishobj, ipv4_dict, dns_dict): ethernet_data = {} body = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) manager_ethernet_interfaces = managers_members_response.obj['EthernetInterfaces']\ ['@odata.id'] manager_ethernet_interfaces_response = _redfishobj.get(manager_ethernet_interfaces) manager_ethernet_interfaces_members = manager_ethernet_interfaces_response.\ obj['Members'] for _member in manager_ethernet_interfaces_members: _tmp = _redfishobj.get(_member['@odata.id']).obj ethernet_data[_member['@odata.id']] = _tmp else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#EthernetInterfaceCollection.' in instance['@odata.type'] and 'Managers' in \ instance['@odata.id']: ethernet_uri = instance['@odata.id'] ethernet_interfaces = _redfishobj.get(ethernet_uri).obj['Members'] for _ethernet_interface in ethernet_interfaces: ethernet_data[_ethernet_interface['@odata.id']] = _redfishobj.\ get(_ethernet_interface['@odata.id']).dict break if ethernet_data: print("\n\nShowing all available ethernet management interfaces before changes:\n\n") for interface in ethernet_data: sys.stdout.write("Ethernet Management Inteface \'%s\'\n" % ethernet_data\ [interface].get('Id')) sys.stdout.write("\'DHCPv4\':\n") if ethernet_data[interface].get('DHCPv4'): print(json.dumps(ethernet_data[interface].get('DHCPv4'), indent=4, sort_keys=True)) else: print(json.dumps(ethernet_data[interface]['Oem']['Hpe'].get('DHCPv4'), indent=4, \ sort_keys=True)) sys.stdout.write("\'IPv4\':\n") if ethernet_data[interface].get('IPv4StaticAddresses'): print(json.dumps(ethernet_data[interface].get('IPv4Addresses'), indent=4, \ sort_keys=True)) sys.stdout.write("\'StaticNameServers\':\n") if ethernet_data[interface].get('StaticNameServers'): print(json.dumps(ethernet_data[interface].get('StaticNameServers'), indent=4, \ sort_keys=True)) for ethernet in ethernet_data: sys.stdout.write("Ethernet Interface: %s\n" % ethernet) ans = input("Would you like to modify this interface? (y/n)\n") if "n" in ans: continue if 'DHCPv4' in ethernet_data[ethernet]: if ethernet_data[ethernet]['DHCPv4'].get('UseDNSServers'): resp = _redfishobj.patch(ethernet, {"DHCPv4": {"UseDNSServers": False}}) ilo_response(_redfishobj, resp) if ethernet_data[ethernet]['DHCPv4'].get('UseGateway'): resp = _redfishobj.pathc(ethernet, {"DHCPv4": {"UseGateway": False}}) ilo_response(_redfishobj, resp) if 'IPv4StaticAddresses' in ethernet_data[ethernet]: body.update({"IPv4Addresses": [ipv4_dict]}) if 'StaticNameServers' in ethernet_data[ethernet]: body.update({"StaticNameServers" : [dns_dict.get('PrimaryDNS'), \ dns_dict.get('SecondaryDNS')]}) else: body.update({"Oem": {"Hpe": {"IPv4": {"DNSServers": [dns_dict.get('PrimaryDNS'), \ dns_dict.get('SecondaryDNS')]}}}}) resp = _redfishobj.patch(ethernet, body) ilo_response(_redfishobj, resp) break --------------------------- Set iLO NTP Server Settings --------------------------- Configure NTP Server Settings. .. note:: The physical or shared ethernet networking adapter must be configured with *'StaticNTPServers':'True'*, if static network time protocol servers are to be used. DHCP must also be disabled. The following is an error message which will occur in the event DHCP is enabled while attempting to configure static NTP server entries. .. code-block:: JSON { "MessageArgs": [ "StaticNTPServers" ], "MessageId": "iLO.2.14.SNTPConfigurationManagedByDHCPAndIsReadOnly" } .. code-block:: python :linenos: def set_ilo_ntp_servers(_redfishobj, ntp_server_list): date_time_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) date_time_uri = managers_members_response.obj.Oem.Hpe.Links['DateTimeService']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeiLODateTime.' in instance['@odata.type']: date_time_uri = instance['@odata.id'] if date_time_uri: data = _redfishobj.get(date_time_uri) if data.dict.get('StaticNTPServers'): resp = _redfishobj.patch(date_time_uri, {'StaticNTPServers': ntp_server_list}) else: raise Exception("\'StaticNTPServers\' property is not available/modifyable.\n") #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended " \ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ntp_data = _redfishobj.get(date_time_uri).dict.get('StaticNTPServers') print("Printing updated NTP Servers:\n") print(json.dumps(ntp_data, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Successful modification of StaticNTPServers. (Only displaying response from *iLODateTime*) .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "iLO.2.14.SystemResetRequired" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ------------ Set Timezone ------------ Configure Network Time Protocol Time zone. .. note:: DHCP must be disabled. The following is an error message which will occur in the event DHCP is enabled while attempting to modify the NTP timezone. .. code-block:: JSON { "MessageArgs": [ "StaticNTPServers" ], "MessageId": "iLO.2.14.SNTPConfigurationManagedByDHCPAndIsReadOnly" } .. code-block:: python :linenos: def set_timezone(_redfishobj, timezone): date_time_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) date_time_uri = managers_members_response.obj.Oem.Hpe.Links['DateTimeService']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeiLODateTime.' in instance['@odata.type']: date_time_uri = instance['@odata.id'] if date_time_uri: data = _redfishobj.get(date_time_uri) if data.dict.get('TimeZone'): _data = {'TimeZone': {"Name": timezone}} resp = _redfishobj.patch(date_time_uri, _data) else: raise Exception("\'TimeZone\' property is not available/modifyable.\n") #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) print(json.dumps(data.obj.get('TimeZoneList'), indent=4, sort_keys=True)) sys.stderr.write("Check the TimeZone value...\n") except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended " \ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ntp_data = _redfishobj.get(date_time_uri).dict.get('TimeZone') print("Printing updated NTP Servers:\n") print(json.dumps(ntp_data, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Successful modification of iLO timezone. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ------------------------- Configure iLO License Key ------------------------- Configure iLO License Key. .. code-block:: python :linenos: def set_license_key(_redfishobj, ilo_key): ilo_lic_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) ilo_lic_uri = managers_members_response.obj.Oem.Hpe.Links['LicenseService']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeiLOLicense.' in instance['@odata.type']: ilo_lic_uri = instance['@odata.id'] if ilo_lic_uri: ilo_license_collection = _redfishobj.get(ilo_lic_uri) ilo_license_member_uri = next(iter(ilo_license_collection.obj['Members']))['@odata.id'] try: ilo_license_data = _redfishobj.get(ilo_license_member_uri).obj['ConfirmationRequest']\ ['EON'] except KeyError: sys.stdout.write("This machine will not show the full License Key.\n") ilo_license_data = _redfishobj.get(ilo_license_member_uri).obj['LicenseKey'] sys.stdout.write("Current iLO License Data:\n") print(json.dumps(ilo_license_data, indent=4, sort_keys=True)) resp = _redfishobj.post(ilo_lic_uri, {'LicenseKey' : ilo_key}) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) sys.stderr.write("Check the validity of your license key...\n") except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO " \ "Extended Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^^^^^^^ Response Example Valid ^^^^^^^^^^^^^^^^^^^^^^ Successful addition/modification of iLO license key. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ^^^^^^^^^^^^^^^^^^^^^^^^ Response Example Invalid ^^^^^^^^^^^^^^^^^^^^^^^^ An invalid iLO license key. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "iLO.2.14.InvalidLicenseKey" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ---------------- Server Asset Tag ---------------- Configure Redfish asset tag. .. code-block:: python :linenos: def set_server_asset_tag(_redfishobj, tag): systems_members_uri = None systems_members_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#ComputerSystem.' in instance['@odata.type']: systems_members_uri = instance['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) if systems_members_response and systems_members_uri and tag: print("Current Asset Tag: \'%s\'\n" % systems_members_response.dict.get("AssetTag")) resp = _redfishobj.patch(systems_members_uri, {"AssetTag" : tag}) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) time.sleep(10) #going to wait 10 seconds before obtaining the LED indicator state sys.stdout.write("\nUpdated Asset Tag: \'%s\'\n" % _redfishobj.\ get(systems_members_uri).dict.get("AssetTag")) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Successful addition/modification of Redfish asset tag. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ---------------- Server UID Light ---------------- Configure System Unit Identification Light as either 'Lit' or 'Off'. .. code-block:: python :linenos: def set_uid_light(_redfishobj): body = dict() systems_members_uri = None systems_members_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#ComputerSystem.' in instance['@odata.type']: systems_members_uri = instance['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) if systems_members_response and systems_members_uri: print("Current Indicator LED Status: \'%s\'\n" % systems_members_response.dict.\ get("IndicatorLED")) if "Off" in systems_members_response.dict.get("IndicatorLED"): print("Will illuminate indicator LED.\n") body["IndicatorLED"] = "Lit" else: print("Will extinguish indicator LED.\n") body["IndicatorLED"] = "Off" resp = _redfishobj.patch(systems_members_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) time.sleep(10) #going to wait 10 seconds before obtaining the LED indicator state sys.stdout.write("\nUpdated Indicator LED Status: \'%s\'\n" % _redfishobj.\ get(systems_members_uri).dict['IndicatorLED']) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Successful addition/modification of UID light. .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "Base.1.4.Success" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ------------------------- Server Firmware Inventory ------------------------- List all iLO onboard device firmware. .. code-block:: python :linenos: def get_inventory_uri(_redfishobj, select): update_service_uri = None inventory_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI update_service_uri = _redfishobj.root.obj['UpdateService']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#UpdateService.' in instance['@odata.type']: update_service_uri = instance['@odata.id'] if update_service_uri: update_service_resp = _redfishobj.get(update_service_uri) if "software" in select.lower(): inventory_uri = update_service_resp.obj['SoftwareInventory']['@odata.id'] elif "firmware" in select.lower(): inventory_uri = update_service_resp.obj['FirmwareInventory']['@odata.id'] else: raise Exception("Invalid selection provided: Please select 'software' or 'firmware' " \ "to obtain the relevant invetory data.") sys.stdout.write("Printing data in invetory: %s\n" % inventory_uri) get_inventory(_redfishobj, inventory_uri) ^^^^^^^^^^^^^^^^ Response Example ^^^^^^^^^^^^^^^^ Snippet of Firmware Inventory Response. .. code-block:: JSON :linenos: [ { "@odata.context": "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory", "@odata.etag": "W/\"0539D502\"", "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/15/", "@odata.type": "#SoftwareInventory.v1_0_0.SoftwareInventory", "Description": "102b0538159000e4", "Id": "15", "Name": "Embedded Video Controller", "Oem": { "Hpe": { "@odata.context": "/redfish/v1/$metadata#HpeiLOSoftwareInventory.HpeiLOSoftwareInventory", "@odata.type": "#HpeiLOSoftwareInventory.v2_0_0.HpeiLOSoftwareInventory", "DeviceClass": null, "DeviceContext": "Embedded Device", "DeviceInstance": "PciRoot(0x0)/Pci(0x1C,0x4)/Pci(0x0,0x1)", "Targets": [ "a6b1a447-382a-5a4f-102b-0538159000e4" ] } }, "Version": "2.5" }, { "@odata.context": "/redfish/v1/$metadata#SoftwareInventory.SoftwareInventory", "@odata.etag": "W/\"0539D502\"", "@odata.id": "/redfish/v1/UpdateService/FirmwareInventory/13/", "@odata.type": "#SoftwareInventory.v1_0_0.SoftwareInventory", "Description": "14e41657103c22be", "Id": "13", "Name": "HPE Ethernet 1Gb 4-port 331i Adapter - NIC", "Oem": { "Hpe": { "@odata.context": "/redfish/v1/$metadata#HpeiLOSoftwareInventory.HpeiLOSoftwareInventory", "@odata.type": "#HpeiLOSoftwareInventory.v2_0_0.HpeiLOSoftwareInventory", "DeviceClass": null, "DeviceContext": "Embedded LOM", "DeviceInstance": "PciRoot(0x0)/Pci(0x1C,0x0)/Pci(0x0,0x0)", "Targets": [ "a6b1a447-382a-5a4f-14e4-1657103c22be" ] } }, "Version": "20.6.61" } ] ---------------------- Test ESKM Connectivity ---------------------- Test HPE Enterprise Secure Key Manager connectivity. .. code-block:: python :linenos: def test_ESKM_connection(_redfishobj): eskm_uri = None body = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links['SecurityService']\ ['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) eskm_uri = security_service_response.obj.Links['ESKM']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeESKM.' in instance['@odata.type']: eskm_uri = instance['@odata.id'] break if eskm_uri: eskm_test_conn_uri = _redfishobj.get(eskm_uri).obj['Actions']\ ['#HpeESKM.TestESKMConnections']['target'] body["Action"] = "HpeESKM.TestESKMConnections" resp = _redfishobj.post(eskm_test_conn_uri, body) #If iLO responds with something outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Response Example Not Configured ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Response of a failed test ESKM connection action. (ESKM not properly configured) .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "iLO.2.14.ESKMServersNotConfigured" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ---------------------- Test ESKM Connectivity ---------------------- Test HPE Enterprise Secure Key Manager connectivity. .. code-block:: python :linenos: def test_ESKM_connection(_redfishobj): eskm_uri = None body = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links['SecurityService']\ ['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) eskm_uri = security_service_response.obj.Links['ESKM']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeESKM.' in instance['@odata.type']: eskm_uri = instance['@odata.id'] break if eskm_uri: eskm_test_conn_uri = _redfishobj.get(eskm_uri).obj['Actions']\ ['#HpeESKM.TestESKMConnections']['target'] body["Action"] = "HpeESKM.TestESKMConnections" resp = _redfishobj.post(eskm_test_conn_uri, body) #If iLO responds with something outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Response Example Not Configured ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Response of a failed test ESKM connection action. (ESKM not properly configured) .. code-block:: JSON :linenos: { "error": { "@Message.ExtendedInfo": [ { "MessageId": "iLO.2.14.ESKMServersNotConfigured" } ], "code": "iLO.0.10.ExtendedInfo", "message": "See @Message.ExtendedInfo for more information." } } ------------------- Update iLO Firmware ------------------- Process for a client to invoke a simple update of iLO firmware. Firmware is intended to be hosted and gathered by iLO by pointing to a URL for iLO to consume. A valid URL will result in an http 202 response code; however, this only indicates iLO will separately handle both downloading and processing the firmware update. The client will need to separately poll for status information regarding the update progress. .. code-block:: python :linenos: def update_ilo_firmware(_redfishobj, fw_url, tpm_flag): body = dict() update_service_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI update_service_uri = _redfishobj.root.obj['UpdateService']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#UpdateService.' in instance['@odata.type']: update_service_uri = instance['@odata.id'] break if update_service_uri and fw_url: update_uri = _redfishobj.get(update_service_uri).obj['Actions']\ ['#UpdateService.SimpleUpdate']['target'] body["ImageURI"] = fw_url if tpm_flag: body["TPMOverrideFlag"] = tpm_flag resp = _redfishobj.post(update_uri, body) if resp.status == 400: try: print(json.dumps(resp.obj['error']\ ['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, sort_keys=True)) --------------------------------- Upload firmware to iLO Repository --------------------------------- Upload firmware to iLO's Absaroka flash based repository. Firmware can be stored and catalogued, to be used at a later date or in the need to recover the platform from a failure condition. An http response code of 200 will be supplied upon completion of a successful upload; no other extended message information is provided. .. code-block:: python :linenos: def upload_firmware(_redfishobj, firmware_loc, update_repo=True, update_target=False): resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #resource directory is not available so we will navigate through paths manually update_service_uri = _redfishobj.root.obj['UpdateService']['@odata.id'] else: #obtain all account instances from resource directory for instance in resource_instances: if '#UpdateService.' in instance['@odata.type']: update_service_uri = instance['@odata.id'] update_service_response = _redfishobj.get(update_service_uri) path = update_service_response.obj.HttpPushUri body = [] json_data = {'UpdateRepository': update_repo, 'UpdateTarget': update_target, 'ETag': 'atag', 'Section': 0} session_key = _redfishobj.session_key filename = os.path.basename(firmware_loc) with open(firmware_loc, 'rb') as fle: output = fle.read() session_tuple = ('sessionKey', session_key) parameters_tuple = ('parameters', json.dumps(json_data)) file_tuple = ('file', (filename, output, 'application/octet-stream')) #Build the payload from each multipart-form data tuple body.append(session_tuple) body.append(parameters_tuple) body.append(file_tuple) #Create our header dictionary header = {'Cookie': 'sessionKey=' + session_key} #We pass the whole list payload to post resp = _redfishobj.post(path, body, headers=header) if resp.status == 400: sys.stderr.write("Failed to upload firmware...") elif not resp.status in [200, 201]: sys.stderr.write("An http response of '%s' was returned.\n" % resp.status) else: print("Upload complete!\n") python-ilorest-7.0.0.0/docs/System-Compatibility.rest0000664000175000017500000000706315116322125021306 0ustar zigozigo.. image:: /images/hpe_logo2.png :width: 150pt | .. toctree:: :maxdepth: 1 ==================== System Compatibility ==================== Compatibility can be hard to maintain if you have many different systems with different firmware versions and system generations on each of them. `Gen_compat `_ tries to help alleviate the headaches associated with this. It can automatically detect what type of system you are using and provide useful string values of key property keys, paths, types, and booleans to check what the system type is. A compatibility class is automatically created as part of an RmcApp class. .. note:: While currently gen_compat only specifically supports HPE iLO systems, the `Definevalstenplus `_ class defines are mostly Redfish standard values. Gen_compat can also easily be extended to provide strings for any system type. Creating a Compatibility Class ============================== To create a compatibility class we first need to import the relevant module and create an empty class. >>> from redfish.ris.gen_compat import Typesandpathdefines >>> COMPAT_OBJ = Typesandpathdefines() Using a Compatibility Class =========================== Now if you try to read any defines you will find the values are all empty. We need to point the compatibility class to a system in order to detect its API type, iLO version, and generation if necessary. This is done with the `getgen` function. If any other connection requirements are needed they can also be added now. >>> COMPAT_OBJ.getgen(url=iLO_host, username=login_account, password=login_password) After running the `getgen` function, if no connection errors occurred, you should be able to see information on the system as well as a list of string defines you can use in place of direct strings. That way you guarantee no matter the system you will have the correct key, type, or path value. .. note:: The following example defines are from an iLO 5 system. >>> COMPAT_OBJ.ilogen 5 >>> COMPAT_OBJ.defs.hrefstring '@odata.id' >>> COMPAT_OBJ.defs.collectionstring 'Members' >>> COMPAT_OBJ.defs.biostype 'Bios.' Here is the compatibility class in action on a RedfishClient. The following code would work the same for LegacyRest due to the use of the compatibility class instead of hard coding paths and keys. >>> REST_OBJ = RestClient(base_url=iLO_host, username=login_account, password=login_password) >>> resp = REST_OBJ.get(COMPAT_OBJ.defs.startpath) >>> resp.path '/redfish/v1/' >>> resp.obj.Chassis[COMPAT_OBJ.defs.hrefstring] u'/redfish/v1/Chassis/' Updating a Compatibility Class ============================== On some iLO 4 systems both Redfish and LegacyRest are available for use for backwards compatibility. The compatibility class will automatically assume LegacyRest in this instance. In order to use Redfish on these systems you will need to update the defines. First create a new object with the redfish flag added. >>> COMPAT_OBJ = Typesandpathdefines() >>> COMPAT_OBJ.getgen(url=iLO_host, username=login_account, password=login_password, isredfish=True) The initial isredfish flag will ensure we load redfish paths when performing the initial detection. We still need to call `updatedefinesflag` to update our defines to Redfish. >>> COMPAT_OBJ.defs.startpath '/rest/v1' >>> COMPAT_OBJ.updatedefinesflag(redfishflag=True) True >>> COMPAT_OBJ.defs.startpath '/redfish/v1/' .. note:: This will not do anything on Redfish only systems, so it is safe to use in all cases to ensure Redfish is used if that is desired.python-ilorest-7.0.0.0/docs/redfish_quick.json0000664000175000017500000000124115116322125020017 0ustar zigozigo{ "@odata.context": "/redfish/v1/$metadata#ComputerSystem.ComputerSystem", "@odata.etag": "W/\"E4BDA463\"", "@odata.id": "/redfish/v1/Systems/1", "@odata.type": "#ComputerSystem.v1_4_0.ComputerSystem", "Id": "1", "Actions": { "#ComputerSystem.Reset": { "ResetType@Redfish.AllowableValues": [ "On", "ForceOff", "ForceRestart", "Nmi", "PushPowerButton" ], "target": "/redfish/v1/Systems/1/Actions/ComputerSystem.Reset" } }, "AssetTag": "", "Bios": { "@odata.id": "/redfish/v1/systems/1/bios" } }python-ilorest-7.0.0.0/docs/images/0000775000175000017500000000000015116322125015553 5ustar zigozigopython-ilorest-7.0.0.0/docs/images/iLO_sys1.jpg0000664000175000017500000457325715116322125017746 0ustar zigozigoJFIF,,CCYJ! }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?XוEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZPE7749|]aX;/jwn]kpu;}PtNT,nt[y86+6Z˽&Rմ>^O쯯m.,u)timF:[k4h.n%#:5ִVқ]_Fk-ذmat;J[[&d[%kPEPYƵ{Mu[L{I/]bLlTX-m8# TP+KNӚ5 B+9/.mCQ)g [\MI(&c)@o=7Lch_[nvw}$i=;&\mz ( >ZXi7VePCy(~x,-f6!˱>jTtSL-EM=ݰӮMͅIa3_[\]̶eIQ.d5 E,4ǰKMKOA4Z)GRPEPEPEPX>#O<g#|-;L}?CN:x-mM[iuϽ9g8z((((((((((((((((((((( Zo?DGWh Zfmwo xBOPO|| uW⏇u9~ڗc? ~ȟhto|l?_4[<-2_:la/kH[+ʱğlu{W#_ů^ேu=D]j Me.`3%Z:ZyAAsz<sf!dK{+~oy&'ZxffĚƟAee|o|QaKNd6.wa&Z;Yuylss񝕮~5_'b|>ԿJj~ x{$xcE_ x]>iJ/>.%SO Ez獼[?xGO |:Ц4I,]kus~kR]gÚƺjKgXtW8J(K FF|O[?=} A$\i9xDq{LSE$E[K1N) lj=!Z=I=KSX闒k?a|(xe狼I/Co 7A-?CӴgj/x-GYյ&FtOkAiYo4vy>$V5>G>iz%zn/xZ KMҾ]{H0S e/?[~8o|{@мG;M ohxkKכ¾&оQxkN+=}GfKL֭qks>$xW?~%dҼk.~x'Z|c¿mWM- oMabKƙ/> g;ť]_^Z-R(5 j5eXsMmoz›_𷆾'>n[xK;G]/㹺/mDŽ..mL -6kExᄟj=/{׈ _m|qiIMZ&;(o&]cPK7W(?U(m|\u- f:5 j? C K;z^mmֳk|FFJxCτ 16C#z^ xu_x@ѥЬ;x<__ dx6t`xx<>lgfw4Gf8.o_6帳qW xx߃<t} *մ^G(pfv?HPEe74>#őY| ЬfO~1hNa"wZƵuǬMh#CQ,`~4j-S׎g~:FNVu 'Z |Ek "𷃭L~񎵤xz~EuoחZ|lKG|iwëO~~_1o [ OqOj"OZU5Coczn6]ҵ po#ⅿ?փc"_g[~ߤ_ nIxsZ ~9|6:nsy,hp~? /#_ m}{M5]Q"TХZPYMIjW]{ѿ<q'Y=Ow~q~z 5wEVTYoæȖ^t ϫMW6i߈51ߵ ׈oƧxd2h4Pk{3qľλ_maik~X;AƓe-UtORӽ^-R\Rjk GgG2ð)1rIrSSba zST>|'Z~!xOþ7o_ GGwPZ}J๲5t/\Aɉ#V y}+?ާdíCᗀmF'҇jp[9.h3imͿ~zsſt|3x6Ŧi~!χ)|.Sڲ|Exs.|M?xFo|^m_hz|6v'..=-NЧ.=W+iZtoq.5 i^Cow%iE[p[O REz_Nmr,mTjzy;_ h}O)LJ3hsc?UU9TZVrRpS|?Q;ǿP|+1PIB0S kB^5Pv\IB^@!hx[]jSR/]? f_>&Ծ3s῍'k>>|1v^xRvxKQ𭯉9^Zj^??ɿn ?UFj ~.M4XekjGxYصO־$z,QL4WwNH^WYc>uRJ.MzTMj>B1`1Ա8O7:Fc*8&;*iUxo̧*b#JufjT)B7P6?o<;w++ g GUԼ |yq{}EaYR!Av϶ҼF?%=ڻg>8;{e_>SWOU))RQ.H~r{Ki{*jq7GNexwC>*X6Qx<j_;Pn켽ZYlТ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_](RLմv+gW'ZepGRʮE (Mz(+"@ѯ'Z}օmjL.mMR)6ͮ ?G |+W!^<տMo3&u=S'^lۣYj:h_.6Z<\g^Q5-Ob?ٹ;+arp4pSաLVl=9Մ",V30k̰8vR U*?(QtiFNnJPm?c(/7fQ wp_Σ8߿#CDj1 w?࠿t61GKu!5~;o}-+Am\οox=-uK;mM.Lz_X_;譮^=弍ƽCVv{;i4ILpQ_ ¦,F 0ZJ5T)PZy֫NQ)EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@yT@Q@Q@Q@U|_PW#o@@((D#p{76QYH __4*?x|;Qxmh{H,K!X$Vy$vTDR@??ˣ#y?esFyiijuoeaaeO ^^]JZZZI=$64ƌ> ;]񯌾i:4}xOV񎄐^Ƈ=n_ \q5vS5ldXH.OP.?ԿzT_+<`TQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו^;E#c7<qAa{4MXm.elS +ះ*]i^i|Q=|3]w- xcFM O ^^jZ%QmV8"S!8O-Rri\)7%f{n9L9ʳ|U[V/˰}<] ž4ibpV/2,d+"Œe*t=3R+GUÁ& sA4^^kVo?յ ke RA+( Z_:;k=/Z 0 xXu;=@h Ԣ"}:ULNru.W6QOO}>x↍eo񭖳m4]KCZ]>ޛb eWietk+TOu6REk 4k d;Zb6H1yiFex5k5䤷 gyI=,{8G 8R(d ~?OS~QcJ8,$azpJ[VxRgğĞOŭ'*|!7>%W>wC;kirWRmA nj4|@ק~">$x@Cͨx?hiυ|=γ',vs%zh.]p?@&mZoꗷ^+kxψ~ͩ~81fӮ7Cxx3zSB>|i/=# >&W$z-'zzpӭłxy5?LSzwkVژ~'~Cs=_B7u*ɂ캖j7?g{Y"ɹh%۲h珁h|P:O;ψ{}LY2M4\]j1!Hc~֞.|5uV]ν[\wšϏckB=B-?G_?|%*&i:mON.|vqm,LmS7½7~utK^>(cvOi0&j M]]co<9hӢ5?V>'`wks rv $<_ i _5dyqo:$Z]ŁOOW[g!վUվ |AKx5~eY5յ׷[ė>{_V⿈_/x@nc|($P G|&lI =rړ +1{ee է˝LC[WN|;@__4*?x|;Jmt>Vү,u+MF.4>^{9HFXUhفGRytuد'Լ{~(;wǯ\/vÝO7 UOeyk6nluHuGa#G)aCo}O?$uvo ^Kk?ZA_ |?˛'EֵM:m\D!>|DSkRRDO/'tcLWYQRzEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@yTs,2覍rWtr)G]C #*A \ƛ N>O+-ԅ}{u/ }ϏԱMҲzs)lW]_/kMz< J<5LUXN0w9}= sR>xWҼ9^h--SXkzh& MwI,֑>v2+w][nm?2 w0DI$tNTm|ds^֥uo{W{djSȗgU#YQ9_x#0xg쯴}Ceݬw]{5;̒٥'/?fש$m$oj?!]7ӼW˧뚆=8Vǯ1ƞym6iKM~uپL+jRč5,_}>;Wy |:<'@߇Ƨk7hufKF5+۶3J\M98- :]kG|Ej-٤keyMeE]A,^u9mCᏁO2|%<xf?xxr+4XoHccR{ |o;h<9hFx ѮD\vvmGon˙bIa%Mox[4ƾ ߄1=֢^|.,R+)G W7ZC~?/,t]CNF[N4:ύY[x{_5Vw&$ОESNH-Kgc]_~Ÿ{35 @x*NH[X)eB8o7ǢcZtV=YX"_Ou}u!%[˛]渚Y]ݻ?|_PW#o@@_үt{H-/gD5 ju}Z5 +[e܀yvk9Bљ.MῈ-\rkO^m^O]CVPy/[fU)TM&z_ү| |9 ?c&ռoS-{]'Py.KVxbzN(mῳ\_,e#YO|Ti^k >h<.6%BYK~->"; =B%'_wV0"yy?og ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +f'+.k2y/mRXƬwa w?l(8cc뉻g =v}762OG!XP?3 s*?@c@#,u`{|C???g:0T= \ G!XP?3 s*?@c@#,u`{|C???g:0T= \ kTnc[}=u^Jz\vv:qi}wmjwDֺ֗]k-\Ky47$V bUu ?3 s*?@c@#,u`{|C???g:0T= \ x7st ?Mӵ+ YOQ.o"y4] ;8a W(z<=Eеd~ CN,"Kk7Q,n& he6ߋG S+TpOvY07,7I#,n2IY3Wmss+7kE[vxO[/ f-gBz-MV8TUAVqfЄνw IU(TW~/[Q ]+9|4Wo.x 8'-16M&ϱ.?ɥym%" JK y}-YB'dYnKeeI${.m5\Y]'WZ#^BZZ%(Ѓ%40E#((((((((((((((((((((((((( Zo?DGWh hk6i(s]HUs䌳(A/z_ -?ۚ/4Z?4_ i0nhaiǨ1PcKJ(((((((((((((((((((((((((((((((( Zo?DGWh_-j_PEx'Ǎ{_XVhZ%<mk=jpk^3]EYWˊNc[{^{s:ej> ӯom4"]& [[x42}T(uJX]kZ4fSO]߳mCh^!&-' {浯h_,4}'I5ca. VJ^[ WKem_Yq@{ gcoxGF _um|<=׈|}Iil%/l}OEak'Ңk|EX:]M7UR;9a)F!)J1e(M;&ٝX*p5zz4BZ2*F#$ BmBjIYM&g.x\QUۍOG-"|S9XkpKw/6_ߋԚ 3x{'Cifagn'g⯁|!oh[~;ῂl|<|8fO^0_ƯZ%|L._w,vpp8zw*Z-:j_YK:ʭhӧ*s8k(uxe,=|0}2IY5*86Wk MJk]Yċ/OV|᷏' !Jǽ➕Tf_bS|q'~ϺoК濩i[xBW+Ǧ\*ƍjN"|- 'Tzi\[G +IANQ2Jxzm?0bڅJٞIV< ̱5h噇zs<],F3( 5:3g$|8//_ xVfqW3k]k_kWozFo ~?7a?>oŸ 4:nQ㿅ůMWF_ ƏdžoxYJ '|SAҮ%l~|@ |j|5ux7, u xSt=_^gZbB4[m uQe՚j8Brj<3 7U+BOkTOҝ_iKd%N.",-W C(QF8-ccì7~ -bp_Ə h S'>$|?o'xWĨ<3I'ѠxFĿ|Ui?_NޙiU4 @{OfoZį/N f/o'iWWԾ-džtsU]29|ZtxlPG NQWaWtCFdVt í)KTx%FQq`0t)渜ѯF *8nw/7x}C^);O?"8/h/gqDBxbCS7]Ylkwqq2ku=b)-yfnK5Axm_x9#\x7> ?5/uWVþoxkJ"H FY;~֧uz=C]S⯏O%ji<w7 |=1'φW~?5VwElmØY7%W#܆yf],K*ͱNa<99' 1]K(~gce뿲ox%㻟o5O ~Ӗ:׈S]JmXOmr-OCA ߋ{;ڥே9_yEc\|<?0|AK8O&HSuޮk.$g9n/0o+.RVh΅>6 ~?~|񗁵/h3MY~2]'^;4)Z9K񑰆M/C֧ԮihkĿ|}>#Qƚ5z_WSGu'ّ_^C%΃HF F7 ow?YF*wL^KKkux;Bx;b' U,fgүs4c5˟'𷃼 ~M\Exžoovm-֥c|I[[~5 >uHt&{l;M_ߊ9?j[G?] C džu 55_ xW|[bYF!Y1sFM®sK.,>Q㯏pԾ//o~ >x?>~#Ҽ7x|B]GuX|?VDRz;% o|QecͶ5o<#j7^7~fOLӵ &Qw⏈3ԢY Ҽ6i},+#\.ipX| Wtx3 gx:9? ew֧d\[*(qaVXjbgM{y›GW(aW|Moqx_@m55^cPĞ=OF+~~v,'Sþ2_ڿ=LW~>ӮuK{.(Zyũ6r >x^>ְ=5V+faGƶ~ |UÚ\\|iM>$r|&ƞ ?GO[a'`Ѽ[Ý R:힡|5o _,>macҖIYPȰYN2˲ş kaWͪ .]19,e1Xs*Y}ia='iXg/׎'sݵk~x@[C_~_ֺus<$bvԒL-|]kyYFÏx߲'7\xLh?v6gχ:必&7 k.ks7qn~ l ΰx}#2%O#qJp~_1k?j?5|S 9|V_Z|`<kz3㟊|Fּ?xn&Ӟd>~-H 5<eaN|`ִ NC:K_?W?v79 ͬi[5=;T9p{YSAxW2> q.~C2Î3n#rڏS0xӁ f'2;G9/I{Cߎ$bK;X[xco5c> DV[vV?"o9Njb?k{ ğᏋu Sc~ֿQxU|]?D1xkwh0X|CɼI5߅s/%@?Ǿ 5|~?ڋ!/:]xKଟ׾ t!O|E02L?W0ļa׏R0xYq7?\'/ p2^%a~&24w03T$~ODTtѼ;a%Cok_ڱ,T:$Ě!I/&Cω&_o|8x_|3go }ptl;j/~vdQz?;8k} -%udx ]ymx)Sü=-,f6?NCTg0J7t6þ*w/~%IDR~$+QhSXwMv06n m |Yp<ڞn|iyk|G𯉼Gc7Ii%6g/U~t;/xAiUln-/i?<;Nj~˳. =S|d3O)rm,9d8l,n ɱEbszY#90yNhgW՚ֽ0ϋOw] x;<!CM?>Jm_ιyYIՇwo4co~|sѨ|x';>ugzg|:λ?-+ޯ h+g>wiHxc% .3c2ʲG-VTs׈F PYN[a1<ףĸq.:Xܪ!:xxoCƽB{[m;l-UmV^][:wPUQ1kUc_5 ߄Wk~5k߉?-&[x9>Ko&ۘYyyiyo&}a]pWaq+dXxT'36mre2|-ͱR X83%$~~%|VV~UOx>~sh.H>i\GѼ9gJĊEӢV7]UxO\x?p3'^ MxG 0o4'U'EX0>:/Cs6Nm;1^%xW**pXVK浪}[8U5|f#G%OmoZ?oo?XGe'L<1x-vOyGK=x㯍Fx#m_>o؃ն4x wb_xz?كWУ4%u hey5g[Q<,x,,*˩ 9a3=. EL.y 8hC% 8 渚9Oh{%l.@m 5͵[}'៎<o? mo5ߏxGLj?Eg>K;EM;|rmFo~ s=cŚ< W7 q]i?uo]x˪Z|!<Y[bzƗ% 1*|=CsCgn͸߅pǚcri\y^ 2 brOK.幞9-sYGχ 7oeJIiڇ~x*۲L0h펃\~7o5xN#ԼI;]Ji/?o/ k1_=Wz?h^_M+şWQw?#ZXmX5 O>|?cjϩM}ٞ'zY?/5[ %?l%Url#yUhVg/;Ǯ%tiЖG3-흨ӟ%A|>xO_co7E&XTxG Q%K*xyca_:xx w7eiQb|I'^-=xC eOA]!y!4'ViK[?FkO唲e?ٔఘG0cKK(yq5g)ʤ"ޠQ_.EPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(#Nо&xZǖOic5-J-gcǟk6m7qMEv7az߈ךօ?w84>7|Cu^|C[FQ)%RRIO yJQe*\j~m5:sleLuUrLW=Zb*Qr>U)"J3j?O_᷌~>;߈/6{sVռQ{x+Uo{jZ>3kؽo{.>‹;Ƿ>0x-~gۏPd?f"Dr"/G u=ލ!.\u%JR_2tZt(GPw]2NrIu' 9u2:t9ƦQ T2'fsJaԧ Ǥo =ƾDҾ !DsJxSl4-[]uoxVռ/txZFU6mJ{{oƟ| <}a}xDѦĞ5ω /}+/h76j?-PvaC{ZuTFe)ii4\з%I{#)6,ֶa aV3 "]R-8Q(! F1u܏zتUJS~q_r7F ᷎gѼua㻿&x_; Au^#&[[i;:'4Դ;X-5K(#?f#:^{j>#|co41=ֹe&[ƞ$M4"ҬҦ;Q)8UQqPJy"\ҾȆ;N*ԋtQg*nq-:j5%NM֍G5C35УOpjҭQªUg^K / Npًa'QO BTh߳7:EBjexB40BU)ί__ iZ(|\0\:7߈[8 ;ONjm☴=" %DZ Ťq*VBXVRQ7+`X cZԝZw%:tJ4FJ0bH1_t^#%*Vap8uӌh4p<5(B(R(#oKu[3GXm.a?|B$5NڧYbZ5 Xl;K{x"k3'x6|QkoU|W>k|mFD% ~5աu  :Tiwpmxbli?©<){ޔM?n"t[co|Si:lM>ylַZd*s9~o2iNDsz7+g9E\&s4r\m(LJJrڎ/ af+`kaibP8߲__ ߂w1 z])jHMI;{_ h6V =·6gsPgে#?`Z (I;ş#ԴY.t.|Tnj|eiz%Ӵ]{N :#>cy:x ?FC>yU)b:Y'exb/et?`08 aS ?_<) DŋMgƾᯊa7!G?u w?<_x;ƃkOX_i^\˩UIc~?eies6+tm~xO߅wmxR[{.~:pY_. l!̱wXufȰv:F__ٴdҩW˪*` cρ4x_P[;6+c|KiZ}亥槨joϏºֹjAkZjIo[ெ6>"_[χxw|]+zk7o.&xEJ9}c3}|O \Adc<ÿj2)`gPdTq5̻`:Yv ,.;.+=bQNqv{/~LsL|jZVzޕjn+Z&okqrlx7ÿ[T|%ig6x4X{9o]-JZIYxdh#q8ynSFXJqY֩RJK8hs5 0 >6Lz>[ry -FU睄kŢ^ֺ PCACmo^kQu7^5Vjh_7'cƶ~ ŎxnWvK :m#ſLJ.4/Z|> gxcA5 hnSy^9j9MO*dٴ+~a*`{Lkٕ\=3x=33|7x/^95_SGwѤ][P%[{ K^_I 2 |!>)NiW:o_wğx ML_Εj6&s~tzbN?>ώ|G?16췩~[6{97Ğ&fUs. Ø[$8k8F/;>bAOFυlG6~1mFO~]O*?Wn8 \,1|+j\1ت5Fa8,ncK2$qNqG5)f:okK*x;QcH|U/~|/R]^|ן/G)?fO}';KQҬu?[_ jz7ڶ?+εꚝxPԵ Y^9aa,D3ܾY+xkV''2 /iV71eQi?\\|Qox,'յO_Z9L>'tXZy 6&m+=|kWZǀOh\ڞ!wqfQK}o,veUYvas:x⡄yn 2=:،o xHFQ{dkWJm,<[{GKhG~Ǥ 5|,6#/j׾}OsfڽP_S)r|%W,D^5`22f1jsL2L^yq'Q'd߁l<;xmy5wĚ=.|aK o_ğ~jW73[jI[eѲ icxSkxH'S W3wu ƇݯfP񅷀5֣4ƫ%;m{qryV̲&>>ԭ]09ve_Tbaa[_fLfkd,k<5_j^ >!j_x+V_2k G𶔾 ]/־E,k{KHܳ>XI|a7Gi.j 4}E1ۇԵ %V[4דiy3;aX^:G +_ *+$ОWxO/ 4xFvy%ե׼C-KQY #Ol/ xVݲit7_ضW5QDfak>k8|Yφ:/<ľ)|  -cRӣ𾇤mi}~֖wy`Dobj^q à Y+SelQf8ج5xyQ,12>.)~̟'(t/A9ik9nOn> HOFDMG4^u_>^|9'r_^OxO_ZkhTKo+]}g='.wV#1r,$j|ȸ)V_^+lfʽ:SY׳|QO5ciУ;_'~$__X \ɣ|C 9rn5qnM߆nH7|/kȨ,%o!IVp&g?kګBVnCk6NMg}fo w^#coCjw,zyWm SqV,gPy߇^$cN!sq 撖t4he8~*,6 42\.L: <['NzhM x_˓w᫏=ϋtn3rD]vEFf(|Z=:Γoÿ&꺧ƏUǾ(o x>uk(¾+VOxC*&00WxYe&}-t[ PY ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@_1YgwͩjNjz?P߉"🉯!_P-)mmm44T߆<>&M@s*:\mǑm-RTHDYEbWQoi?Gލ{ Fs5&y #iU6HoitRR4kg۳:Xq<աZ1/3%$emVkWo/o n__IxK+Yc*E_ῈڅK?8s|KT:}{[%#߅~yJL a%C Exb0A[Sҭ:=տ:K=WS[9Nx_~ (>%-xj.a?R/x_A~?&jY*ɘ1xL ü>`>SqxS_Φ˚S aҧZTr>\.RO2x؋w~(|"׮$\ ׿SF𖰶֟uN gÒKh;+ ߶E1|G›MIax݄lz__|wv˥jj Ԧ:}|}{<>aQB*b.'T'%/f)*M{rOniƭҞ)Lha0X6U)}qO.PhXhT_/ၜ_*o.j8)o ƚW{~>Vק|sD| .KķW G# }sZv/f m-|=u-q /nj28'Z5~|NJĞ%:g_>/ucZP O(s3*/fNGEީ*)ԯ4R1sO&9F*PNI7fU1J+pl.Y5<]Lya1yFXx>2ᇅ|Y֥ͥOS{,o3cLSV$}W!i}!vׅOiƺƃvP\5oVQ4? *Χ.I5@m>I]IUթQsRkW{/CLv)q[#֩[MrÛiG1sŏ^9kweZzuhoͥ[/݉l"Udx/f}[+]񷍾,kŨm{MN.navŢ:T0ɨ[+o4[e}NqSpf*N+{*MFX'S)?n%%|}~~.?>6xšWxc< >g|%vrYUռUy;k^.U|Oƹ~ sviៃß|H~&'i>|>txW~>*k[=Q\#Px_ w_ |_:Wfm ΟέG~j:hNeNJd&cծEm\'G8o# 1f9F+|O(<YF3gE2˱VP`*:to?/O< gǚ8;ߊGïOOkzTYVV?W%k$ն ^׎tjqx+O7xB =O<;z?ïx?u\YZRFu]\_6Mk'qa8;lLj8n4e5sYYYk#FLw 6*`Td},W`197-g2*| 1M5>1|1Iw=}STxg}k\Ϣ>كOo@]cDУsᏊ:]u>͕}vg>5|TQ7~3hwßß |3fx. D < AxKMФt}Cz}m{|3.|Tk^?3q `3ZY٬_ :ͩq 9Wϧ`jus 6zidRi/> ycgyo| Cj-3 Yo'Ļnl2zZ|I/k7?x;BQ~&xA1Z^iςxK+kOՃ}ŧc7sf0xy8nUże,:>xl^iUfЕ*kˈZ*^.Ğ|{>R]_h6mw^|K=O$.k֡6{[Zۇiy"dfsǹ.QO)TpX a\UK GbgS˥F*8L= 4)Y|&1|-OK'Mx\.ŏKѤs:E.x>Լ9\h>2^v/ҼwuzGŏKC{G?hf׼a\4?~V>'Y㟍&^ ;zFY|(>,Yci{f/O.i%Ɵ`G`cx~,ʴA^us|#YpURzug\>&5j)UʮYS7-G3/,ZO#~Vg¾%<,|N6=x'm :敩MjW7 #!qOxsW.L \OYSZ~#gJ+>Gxk|FaG_ 1xyVѼ/6X>:oh #Ꮔd3›ė7Ľ3Pt˛}2/oh~ВxN?ڧZ*|Lw fR7oc>=~xQӼg%ޙ)1aKxGKm5-sY\!#Sa ŅrZ?~-xG// \Cxٍn*ȱԧV0T=U]/_sĞ>gsҵ|_ݠvKbNtό:UgXoo`7gø;q{smQj_F[{o%)xNK{~!w{vWhZ'eQC6ʏGS+yuy x Iio:>}jӯ.uXSU SSյ]c^..n m:9#Ӵ];LmloB^ğ1#8!ẕ<,7G B1J1bM9ɮZkYxotD__jcj$k$0GMoE\exÈql7'<ƅ:MeG(ʥ(`Q_,EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(8x;v ~"_]ƇBG=S^="jVna5֡sS\Mlrj1NRm$mI-[}.:g T:*IB:q91"&QIH~xE'Kÿ>Box<uiOOexö&m 7:>gŸ 7G> 0 WkL𖋧xz#|1Ծ$_o2-7xMY:>ma1֡XXUjUNUo WpH1tHS9]S)O;˳\0ʆ>9Z4i8lʔ'C26VJ'' έSOZeMc[T? u?ec*e;"_ ag2$ֶi {yQd4uyW>ğ|  e _xgZG<ƾ|W(9xŖ>~? ᵇAҵԼZ\rB.Tya9cNZ֮MIFq9FJ19ЌRMTIM58gEK C1b\2oOGJO1iW%[N')c*~ ~x'>&ԞMT^ ?@-M5MSĈ/UXUD[--UgX~/M7c.F~ xH/o#hUǜXdm5%^2U1JJ2D8IgEMFs Y amR<6>5dcVO8ZU!s&߄~M/gßh4Gt /łúlj+Lׄt ו3Onemk˜RkwVC"~>o[W}%-6_Zæꉥ[xjt4t[eN-ՅH1N']UZP8IKUJ4*;Xf4[xg\S.;;Tg+oN,kcÇҴ  AtO [x_GoiqҼ7kyymiaӡyULn2jƮ/V5+Fzj*M?~w᯻^+8OGgXY!XbµyT޵uR>^Su+;]CN-n,o/⻲ຳ$ $h)wDdfSYY[ıOy_Ask,q~Y٦_aOyV? D%*_Xb)(Ƶ5(JT8J.QnpNΕZsRq:' -8I)FKi4ab7o9;@x?~G )O170ꖚ)wim{N)ay_f |0k:֕ /CweitxS:eΝ%:՞`o;qW^ ø$l?r,&qV3eDrEzRi1ҧ, hD~{>| RTx[g{j]{:nckPT}BH ^ No>>;(B[&z׈lx@}QyZGYO]\]jqiK=}]9b)|WeXL&N6|;~~XlTs{ 4ͱ1*bc5Uʃ|1(~^ u K/ǟ 1sރ3[q^׉'NdY/d{{8V*^m2~ͿS?Wm? 6O/h.OI h^촚kTնm, Dkϰ9!X)0|E<&3 |AQ rb1e{f '᷅o| _#Rՠ/ǃ-[vT֯|=E֭o0jSys-Hx_ǩcmo&4.?GX]xѬ=r` WS/y.Ǘ.5ψcYyĹ/7ygbsʦ'-QbjsJVWOԭ O tûb4ah4,҅DMKxY4kAj" 1vL笾xMα;|GqN:-ucy}xmcA=/S7}9/mg}rPkO izTs c&,V'ϙļ68N }XO7Z0x(~˿3 ~|"<=wgw.dﭥ wK4>Q6HKY-GOZφ~ |R%^$~x?ٛIt<5+? ݞVٮ^tatEwg,xuT4~cŞ#fOs 6%GK+f85y_ ER O M_@F?|+EB=tc%qkAlhnEϨ^fuKG')'&g#ןߊ-x^Z_/3M5KMɤii5ߦjڥjzƷj7ă'f+u^żgdU3&T09,& qo ~*[3p| Kᆉuy/İx<-o]O7O\yj?äS_|5Լ_9SM 7+xX3~ K.lon͓235n=bYq~3'#Rɫѩ3[7yV' akhʌiT? ~|^_Oᗂ9g NREY Q.Ւ.nA*x > jRO 5掷sM݋1;OX:?L5$Zm qg8Ncqf7?ͱ_>8V.zf K|6NC;,<aO_> [ρ.G-#+4߁>xG~w wXvoū+Oc%ƛ\J$O_|xf)|'hz`^manB½xIy{=Կ׏_%<<823!rE L,u,_)/_e{Y ~7x6-z?Z<6A;ǣx~;_X][ڜ&gYyYLl hbj]ʳ X| CSC 8' U% NCFSVh?O|G~x_w|]!WJfAtY>\xKHyﴸ"FVe׫\L'n:sܫ1>gK并aCS}ь_թ @(cIuM;WQﭵ xu=KմgX;K;Qv71q ZTjb#FjRZiѥVjʅ:RpJѡ^T))T shYzO>kuoz]!nUION7LKH{<gM%kҢč$QI^}Kհ~'1UrS+f9&g T˳,/*)sfxbJj-+?OX +Sӵ37F4kӧj֋]Y>ɨڬеŕǗs %)>D(֩NhQ:T9z9SK4iIk^nBV^5V-s.i"Y7ip=֍?}Wf3/ң Abpaae_ բc^uh:+RU`MգV=9EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(>;|3 H|#|2kY5/koGiMa{uXx Ė:ȢMWKЦ48u?-Vu~MxOҴPwIY,mb]H5+×M={J-.$+ءK; s= v-tx;6kfe| ܋K{#8X[[KdMӜgsBJJӺ٧4oTb(irJ#Vq惼ouI?fO >{[V:7{/$h'VlYSǹ<+O%Ǟ(xo u㏃kF+m2|m4 Wl3*4#ZZk}Jh*S ')NPVxzP)Э)9Unr'FO19]<5y'Xjp,D%^t>*PCSNH~EJ)ҩ4գ.$dhJ&\:GhfpLM cSa#SK)b UX=v1`7X㿈r|; j*#Lnk|Qo}7/o~]Hln%?g/~S_ "k~8}#ks^%/K-iZxjT)GO95`UNB/r*є ʅx451tqL޽l6MpT)c<7_N*XfY?U[S1W,jf3F R_#G߈kwRo|Jo^,m0վ6T|-}_IqsiVsXE]ѴmVωxl5!IFRQu!E{WǛ%W KHҋ:jΔa5:8:X6 4hPl ,"˨b)b)*Mxc\U* \%>Yʕ 5%w|5n(~?}{Ÿ~"ii#@\Uğ<{H}k^fLl|C]A|rx@#_g |[/tx[/^$VCJ8ήT0x>Jmج/ ߂/u~,xc<Z/\|5]SO7Atڮ/5ω67>0Үe%]iUa 8: Uc䵢kC/cugeg Yj* KQNkM[Ǟ'|eN {5Ӗ[GM$s\O_k <o/ FLXjJ |?_W{+ExGúN|Eh YnRs+sNNN׵ۻvvXM|UUSVuf995)JJ)$&|KG<'M 5慫6%Wap-仵Y2T.#!l~OtNj>)tRπv~%MÉwI?{ƚTVicG,abk~!n ļyJX~y"94W5:09yCw,5C^ zGc?xO%?;m;ߎ 1_m]cy>"xOŸ<)_|'Dii'g|9uKt?Wh?~_/xw3?{-Z߈r% :6 ? +{GKCIJi>+!,x!_x#!' :pY58b w(pGf/g,x,5uz9\2oe ߴ?_:?O ~'jW:ߊg/_xǾ!etI}}}k[޷^CsU񏆿gߌzO>|^6&j3I|\?-Fm6 isQӛL? xWwt4+XYP.*QYqxOOfx_⦟:N3I~k<{υu{xsS,厥jwK)lu dfY6+iTǃ9 2#pS!bxk(aB[K/|[A׆?coŏ|^>B$n&O\~xD!ռ^$ݍ[]+FxOك&NzWi-ox8]~?~|?΍^x#ZO ]hm4jré&wWM̸?WyAz~g-ߴ'u_HOoαˤ*K|o_6<:u<i/#jWRj_AzwǏ~*?~ٿM=?[xO^+З{ZcE-I|;T8x&~7ӡ2 1qs`2xN9?cnx|08=a_h]7W=O7OG%߉Һo>)K&[(cZmŜw/#co̿f+b?OW|k6CD||n٦,|C;|NlTIO]hg%)n,eq<=[?e5/sb4x+V?.;s&'•3:j|! (Vr2'w߲?d߉~$~txgT㿊:?Zx{#~5+kkcM_Hď:xCgF>[?P/Dž>+^|JF>{ze~z-c)5=:i!6 t-W_<3<ļn : p3<%;l/ `N?#c3+x1xY,g^1|-Y'zXsj卣;4h(iV7?j|D &]|(Ӽa b]oS 4~4=SWig>>hZOO/eFk!44Dԑu 3Zg3=i"6Oϲ^!ʸs*W[#7߂?-> uae8tkEn xCԖv>&gfxCׇ5C>3Þ%V0\js_ O-/$m?XV6cxĒN⼳8w7J\S<򬪥|]ᾭj^< &  .ttŗ?NuxtEkJN_~P_|;վ w@oZ s'дe=Ծ:gy[kNFr<6et)e;1k5α8~ ϣQN\_Ͳ X~ p*հJ|4|pu? > +վC8Ex__ OR>E/>^RZjڟc-g➚MW Cǿo|\kj#'<_ML4rxvSƋ1=+V|m5:w|{i~Bg9B12\v[*8c_|]?? ]Ɖ|ez~п!<1Ozo ?dko}7L[mOw7V7~Ǿ$ O7l> ڗs/K.7 uZHu-3Tγ{4X~&xV>%Zσ4c?>؏D<@+e7f\Ey/\8| 3^(ȸc8q<.5r0gF3'Z(a!xǟ|xQg~ŤNu_˩Kz_i$&__ ү?ż#qeN ^=p~#Ĝ.ΡW0唡W:ُpT1x'xov.8ա`e%1ZZd?Ox?,G]{R'Í-,4K'&<-&~VW÷hʞ!e|4"("o-h]_ UxZ7tm;Q|wwCO/K#H$h3=_׾ѮR։c o׫| >?ğ=´ |r%Qz߃J!5]1[xG5ƓIzZ? 垗+_6گ4_IE?_8tҾ*~I[;f^ڞGN-BX̣a3\NUO9=\ W %gO,¼E gMӒfm\^Moisχ5'\Ɓм3=div3ޝ+@ҖH[Sֵ#^חAn$C aƩɨ=#t94G.gQU jz^<%Y R\VaETgRWr:1ѝIɸ8(%K<-bx_:Nto?_cxH3=' R,\q拼efUj~ƵZ>ҝ_eRtsѩ'iJv\nhJ˚-;++|3>+~tCn/Qԙ/|G`[=&C{ux8 . X2Iœ9FWJJ*Wm%դV\Uzj篈NsFkN4Úr#9%9F*M>yamǎ> if|?}]ixĚ惫x~ڥݠd՗3R8k#¿ Y>vo&s|/kaIūrMkꚡ-F'LkT8tR#ORaNvR㏳$ZT?bce ԰tY~m,f"j0C 1r¼6 *?TBI18XὓW:jzNi׺i^m-桨_]L 3\J0;*#|~yCwTgKo/X:0~$ =u6Vς7|L&/~z9v_ N2e:T08?㱸ϫa}k+(((n Ky,`r *4lT`%IV +QC; 3w_x{ hךwZ֛Yci>q3^JZiP!m^K;[oȾ-bOFƓ tMMWVZW4mb@STђ[MotKEynYׁ֣otkIᶞ0<> мCj1|gռA EG#旡C{|jx4/O~|htC1iTׯ ?Դ}7Đh<_>"x|K|⿁^|OgiZaexÏk][:>)𷈼5x[ãHVI,]ž"Tt*Z:JSKKj5p;h5EYC<)᰹eyY. NY:8nGuR9;MN]vK^UV.zNY1RNS,Tb&ݢV%࿷ neOmŷ+U{oݞ|A߆u@~8M70=Múutktisx'hp\[hWhr n-OP ."04<ɓ# ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=Q@>"hǴAMg x^-KZ䶱suaieƧk:+u$QII;C) 21HaXLQR`vH WQ@p~ i_4UkS^go[Z]Ǫg4ˈ/J!'Y.g4Ԝ)SSnm&]]фO(Bxn4)EJrg%{ɨɥgkO|h>> |/Ԯwk5mSI4u5 KWm&GCSӊ,Dߘ?f? Qwh[ _t#&HּQJ5+xuZ {%\}gQ4 i.+ڝtrt*?C,43XHTd[1msrݨ_MCN2Yy5 ޶K_]ȨbU*tTiѤF()9*nTxGƟL<ɤ_WS+ >iFm8qω>>ZY<{y ž e鷖P/-+gTMW+wĻ~ G2]h2֣nַ7='x'\> xQu-3\_,/S)K{-:kTH԰ǞX,\aVQg?*9m 4Х}FU3 t {I5WZ P(plًÿ|QnjoݧoBFT~%,*4׺ׅ//O+YH!F~k׍^K|M3<_JT]񞍮^sHMMCRk;k'4n|hGxFuO}M˓JyԒZkNYe|?/*%YΖU^QU2ƞWN!NSek*|Kվ<|Ծx.ͣ [xMy+ҵƙ=[Htu? "U FOe#<2~)ף_W^Qq&{UNs7_fJ^Zmzs+-zA}akkss{i.422ֳcD ᖛxƾU<)x<=7ψ~j׈c3;ѯb,t0Z_/~sQBԝF..j;œ7ȫbl^qKO ?r&j`(a0SN JU1#F"?~V㏅IW'< >1sBjϦ۫OY­-ƀ>|u#wZ|cU?V|B|5c \^k-/NyFeDROs`NЫcR:s$')Ye_*0_PYi7 ]nV0Z8JTj:rqQZ#5f]ҒOMӵ֯e*ԥVpBS'N& 2)ɸ´c?q%5%(&W?h? |8𾧮'Ee⮭oj~54׈~4ڦh?>X,bk3( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@ >%8hx Qi %Gz&.n񏀎0ͼߑqs]xcV]x?i~1o,u[{MsI%Դf 8u{:vӵYԓY7M?g쿡x@;(?A{ڍĚz%ֵvP<)M)Z5x[!*izvjmggo{yVsyWV79TV 6iӺi٧5eBs(Μ ŧN2[84]i&?eC ~#ߍ xGW / xR66{M th6w 嶭ḵ}>_ٳq~'{㷌<_|E)x{7^'x~" W,FռehWaeNjO9Vκ""I>КӝCI$&Uę=<cp*XFkvk  6qURc<%N 8J*Y}C/˯k+Q]>w'tI׾h12P|_e $hR'On,vx~վnlmVxX> bg8_|K3:o55[x R^S_3>=J쭉BBIPPp9B.X)UM{eb(9Fs/ Ş ?w$_ǯ|].ݮ|{,un[Uu/ҧo~6LJ#W *}jXmRťZa)JU# S%Vv>{ e:O`59*yx:ش԰Xl[!rcʻS++-~w_K*Ɯ/O|-sk_Eb_hQitZ=; ;mE^DmKz>\k/ ռ1x{Y~ċmi4~&ͽşݎ_xAskᮏп^:7MO?oܿ½3ǞмSZ |="= vw⯈$$Ւk:kϷV*ԣ챸uT JկEӄBphR%h` eX,~)Oqtsvea(N[G0Z9t,CiPp\6w?h_G1i~/I,u<GSaC&2y]lThfL*P1 se߇Gŭ{S:ֿw_?j=g&Őxwe .ty(隅ϊo],tw퍼&|/_Ɨ{?.}yWO^7ϢsOi_ϒmRH ! 1x(h­#N8Նj;멈Qm,DIojqx+]Qe0L&pWKjbWISEFi^8)ʎ[ Gh So[DZ74?WAk'< _ZF-_@ImS17?k?[ŷi.w,zu=)+E gZiod?G |.7؛,n9cq .b?gG⛈t?:1mo/#C7/V\>,~ "q&Iž%\_u={.^UtÞ^h\'oz6.z%)(bpRG 1q*ugBT5cN 3()MCث qu+fmõ(q:Rtr.6WWʎ:KVɩaaW?_O#\V~-GMa'A~'X1h]C.ʫqLnkB8%B5T1xZwS/@д6}D4w'Kln!iizfm5H4:&K[Kx~l|7g6|SK_]5>Ğ*OsI~ 7HDڮk&۲WmdJI%$ԩRԝYԜ'B0y۴!*#$xD ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=Q@[/9^ ^ռ5藚ƻx'<ygy:3k4Rgq-Ԇ;&sK~+x;MP]eGqԃ_\6gC,iZKXE@>|G,Oj5icխt.yf}Y_VAot^?^-Ѽ5jKȼ;&QlSYuZxhck {\x:]ӯt}Eni,S:QJPu%JEvINr:p)i5PxI<>/4YԲ``(0Upb0\T3JOW*,F >}if5Mk\<#Oxh>%c╽ޚ}g+՟+YPSO iA58cTaF:<5J^.zΰգ9cRJ~ ട]#׎t|}~Э xYմ;[;'?ZoV:>m ߖAy.5oxz Z3s3|!j^,@t2/_XwNkmΝ~.YZcx/ZoR:غhx**U{C-JX\T(`lD??_hߋk~/W5?nkķ_-O&^xCRu+Na{ ?wovehN<Z]>:Znt- ֿc(ooG iZ˧,T`,U;ҫV4(8SNXZj`NU[/ xzOďֳ`V|#m 7em!uhKc9R=*xR&XJhҊB:U8΄^&jRj*IK*91V:,oKx|/afxx*0e\6>3 8U3rx ++WFO7 |qz_x7ž ,?fj"]Shbqqx:nVGCXT`㟆?>x\A-|9_ 5 kKƃO<1:t^'\,< ӒVtVTlR"F_XFPyZY͍ 3G<5e,43 Xzn+wB8m0xVґڎeiqY]js0HmlW8 E$1 *'_|+|Ewt@Mh?>[Q?>"]iz~$;i? ~ ߈!z{:ҥ'UT*[ NJ4֔RSt% ]e93+W<5ca+Bbj.c^ N2gBsXiԧDOPr⇈gC7#~"Hx'^0{q~&mPiLXF*G!de! % \u(&@_$g) ThiAܼ%)̰AYGQnS\99jeiaխ_[+XXᒌaMҫDT^NxgFPWiӡW7ItMS]~xlMďxSĚׂr|C^;_ⶇ4a_xN_xh5+[]CRs>v+PMt^rZu'JQTsFn.)&Рq .jC WKUO ^_mO:R8NUaR jn# ʱ8lp^6ZΆ *7U<'*O~8N߆>_ki>ռ7m=N+] 7Z~o4}jL#ٯfR:U[ x_ <s^,Wඹi+A^{ k|U?>uHm4f#:x *UZ4qV8)UTFU#R*ju#KũT"l7 qx}U)g幵,W FaWOC/(1T?XF.2gG{~1{_i,lf]6kM-om|QZzu_ZJOUNjկOʔ'%A){Q7iJ~mSGⰹ~;2i[(>,eLLe:3hS^z:|o?ڳ_^_*-Kix߇'eo^+ [ǃ,dԴᖳ GSM$:_ iGMuy؍VW?+}3? xG_kVuhums S/QUHSrWUQ.Z8TGTQU9L|T0If=E(Hҧtӕa2bqpK T_^G)~ @U㟉>ͲI ;z7koi  . sE=BH΃kVx3U4moLݭE<=[ۥ˧\x;-GYk Ⲏ !ӯ_Zn}6/XŦjQTH/~ž#ivP_>ş^8_-GS+as{}uG=\ZF-.#Ĺ:\Е<&PJS ЩNuJ^E!윫xqSVڭ2,S*u)1,.a(ePKU~Ruq1\?'OaRoO I%O>7žJW>K=^*/'ӯ3j^,MqcRKv@igRgSƯwxOSgtOj ixO/<8ׄU`坳מl}iҔ#BpJB. ZJފ´hVpslb>Zy^; PSc],vgʦK/X \uj1aN5 P ǟgŏP|<_SO>|QC_k}s?|"%Ԧ <'oX!<16G*|(5x2xŷ!wV~/ O< Rx]Ѿs_χ<hV\71i*Ljj%W'[~2|){'źWg/Ao.Zυ|Sv*x[4+ xzQValCRF# xjL61QNԥ*q ظ5VEIZ|֦W`l;c<$G7˰5_\V'&՞Wi)X>F8֒wc#J}It xG/~4k_u[7>8ϋZFu6gெzxAKfhwpXGOjo5~ͭ < x/J=t ?Z>ŵcOg:f ~&65Lv TsJ!Ntp*t-p4hNJ0r\ P%yؼTa<-yfYl*牖Kfv[b(RȪRXWUbʶkj1;O:i^qWq /hozZ_z&Nj<~˾'ۍBPĘ̍RK~|)gl]No'HG/x񏉾jZ7Ưk~xƚէo-ii^M?|?h4u[o͏ O2\i'#Etu#qwXNh)(bqxz4Tg'BI8*FQu%9S).qQrWq??p:8UeeDkԯK-ß #υwᾅ6PcC@<_{{}h/ß_|bra_߄:|+[=4o_>x"A(ִz]Đ͠xZR GtqzjUAUg8fB#Qi%9ᗶU!]29V[ĹVWf$2c/G9Sa<=ulV.:WqD#5p굗┽? ~OMm~/MN_H!~W,#UԜKMh4nDV1G( w៉U@G,t>(WB}GQMGTMwi.D>5$c}c Ns7^~KSN QVqSIZ< (n\ O4E2b0xL;RSS%O0F9i4p!WnZ>*9CVEC >m㟈^Lj|5m;G|I/? k:M?׉':&&O>?ÝG⎩gigawDŽiz6֚=Uw-?XڞsH b NjIRZtQnZQx% ];r.]ɨLNTcp<."",U 8\pүFy0⫥NxW*N:ߴ姉º:~߳;xuu_ xG?l&|muzէ4^iZG5ӨU㞷H"~|)>+2|k,a_]cixGOnjww>-֖щ`!*h`J3SUxnXQQV2G N*u9&11xj0u(Gɰy6' s ְ,R%ѫ?[[<](a7 ?|+qk/V_{0 w[ww`\躆toAo^6dMFYR7%-2Ѝ,u*2zFU08)՗ThKRUkWj8⬺ y}\TacF2̡B8s\]\ve:MBC<ޓTq.y'!OŭVdžw'GX>-M?_#|WjmRImm/!4|4|zSoH?>?~c^׿-8Qx\Q+CX.&:o2 2?V|*Yp%#K VIBmZL*U wVmRT#r%Z9)c^w񇉼Mx_UZ9>~~O,:kkCP־/?vt/WįZ/^ %摧O/w5/_Wıkz%h?:~/*^,+gi~2lZ[C~ig.Yt|,_iMCö {{+D&>T?|'3Xb[ o|Kkc5{G馼NaʤJѦ IJ(a]8agBudሡq>k*P(C9̧3xWZ+.axGl *3*aIF:Z[GΒP!uacD׊+öz^4Oj-*M.mNz <5cBZ{>LeLּ^+4&Z4*atic+¶"3FtpR5kti*u#()&=xoM#> ~ >^J?ωZu 't$_tx^ƣbfPφi\_oxWxu𥝗5ۯ^o_Jjs}/Úv">xmOĚo|)8\vWu7[5&4R/aOxD>%~mB/|@&Rk]b[sZvOE$Zv%4km:>$lƝL&p2dK3$oe,+8asipyuZTkR2&:=.(((((((((((((((((((((((((((( Zo?DGWh_-j_PEx>>*|e/-|-6~ >;t]jk-:/NNռH >cԴgm? Z eޣkGWIg HCr X-bo A@m}A@V%j+BnSC* _mI IЁXDth%Zۢ (ľ9#VO x?|As]/'ßxy<]h',5]h#6H"̵6oZߣגEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(>qi~*mψ <O2iR1߈oyWܮǨ-xN6koj?WqEp^m_fLqQCYE,,a (a:N'}|߳jMN?OGjke&E??n]wI-mnƾO'*Tx7|Z':`:drceΡ2x|j|؈Lb|9bͅUc͆kz/(㯍_ fM_)1l|= +AQ>4߆?x>M`~xķWN\(&џ~$|No`~~,Ē׺vYu>_z-?<]_,7V#xȿz|7pDyW. 'MSGcpQ3H ~$e39C1x0<eUУL5 W2/75#~,סҵSv1A]lKIWt]z~ϩ / i_ E>^ӵɾ'ZBkeѮ!֩>^pm\/.a Ml+C063*aK8xS,]xx~y?Q_+0XlZx|/|J>|3C|=?i}2{{94k}E׀1ɪZx խ.S/uV_ ~ݳѾ;oZ?gߋ xV-w5|5}hxSIд_|4S@(Ç&eUxۊ9jagÜ9dY^22"2l^30eK%S/gxN&Ozn3so6A|G4 x~.^ n|]&VU߆t ߂I׬AӴkԵ5?S߱玾*|O'7OtO|_?5ϊuoX^YxcUuOZGm_|XM/ O>]Lv8ȳ-? 9FC "Ἇ87f~*dn:^]ʸ#/ʲKf4Zڗwu߉~4>?x /47 w5--heqsqg7PTp ?a-]/ht~ ?cEJ_]qZp"(*"N<嵭;|M`]WmvJ]u]'KY4>IҴK{ 7MmbXm!K{[[xP!"5QT _PPE uF2btWI+b=澲}%qpVm0`ڌ3`PEp~tH.KKm ƾݣ3ZAx?ރ /xo> )g~"ѯ]"_ |:o)m6Ն{b|^|./ ʸqF]aTvOO_|g:NQec譧BZt? F5e=7Ėz׾-Y^YC.ᱼm:Yq1Ξ2zYxV?d:P|C_O?H,4=7N1tlt G^ikj?&8}~P6+!Gr+̠E*d*>\gٶwȲckcaUs>X˞x|ghևi滧x֝6<1XCQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhv`t>:3?rC@|7~_ڧY|Gy-cYj׺WB-gZ[x\_]jo 5p.Ug^'qNk: gÙ6U q8KQ!_xYf WH> ~їCY'?r=cĞ gUDBfO¯kZ~|''C. >Zo |FMutMjvzt|5+>#zZ Ǐ087XUs܏J|/,xKW CN\pFatqPɰ4QcTE5 &|@ |=~ϿA.nG/~-{WO$xIZMޱh?9xg_^*K]h|+9/xkV C "6Ԯu^jS@k3{9/fӾ=C%05H)dY{|/eWo3|2<9_ϋ}mo ~xSSЬt/Fg~weU_w~)?ecKߏl|Lb:K!j mԯ]'ßu;:Vx@ֵ#N"𿂱8 )-̋>l?,Ӆ#Qq+&jks8W"WȪK,?'?௎? ogk~_jZu`#|t>&:R}ž:#CZ>m:+ ~ x~7Ql¾7GCά4@u_H|[j%&?ǞO>pf_/q|N>*,p.iøb5\+E[ͧƙe;,p#|~<|aG/􏋟|E&x_O > Ogheϋ|5uZ̖ZOM]yď߷d/w2|9x_ k5m2ǿYkxW=2}emq;I /%.⇊˳\QaD_x_>wo"zޛ|%Q߀^ռ)5u'>:ZaΚEմWc ~?i˿r*~'5 %kBдGz[>*c #UTb&E~rEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ |{,<\" ]7|]Cskykq}E-啭ޜm:!sbmgv| /k=fW :ym&D/tczglM: Z_MOw(z3Nt #IӴ.NH-,"X-m*E G(U@z+݇$p̳;0X䶊ux4]M\<v6ė`tPEs+oqci(,oź|?l?|!Yxú]ZK/~}y$~}msk$>go kxIV..uoZum./4w~)ƥx¾".K#^4sJE iF#r.'/ƍ^̧<\"Vx9թV'Z6gƶOJS*5 xd?S3ݗο ߆W– KV.ǎQĿexc[O17Oq^h_KWO ڿWtg(gxqpT0iad8YdYaL-:fWVy4 KX __?Z $յHuo6ZwKi o?ċ7D!fmnxW4x)𵮧=ix]t[XnⲊ+ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@|LRW+W__FkK U'mXZ$2v=uqZ}[|)m_Aޫ#^5w%ie߈լ-u;WOQ->-zAPY0ɝwQ'Ey~m澾oٿ&|'g5C֢ *x&Wٶ~ow'yRQtrߛva ;/|yqj>&x_V2Az7ߊerSa׊$:+u<1O|A,?gxWū{ +ž'>~޽%0x6Z/.=XQOYüag2_n}u7YL. [/3~T1Upx"x0[ 9)O %xGoo_O;e1gGR~7-ΆChTϳ>'[eχ 4=FFu> \] ?kL?kilcw>[??]~fγ6/c,ź.^ڣy)NDy9~XWEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ ψ>Q ]6⯇~kvVwXA<7Z:ZCg;yU[khYg`W> gKҼ?w:lt}9|k xʊeyq6x}E7O햗h6V:-mŦXvptEFWH : (~O|}_WiAO:֢ ֵÚtu/A`mSZ-4:FMh-QyC^[O#ЭbkRzSb+N4СFeRj%tSRr!&2{|UQďxZW->QMm/MeSj׷Z0I湴k> __?ĭk__7ckП݇CjW>gfԭ CyZ3&cm/WW3^tfNxsXo4{L7.dcrM`x/kំ1 p˻/xz/ÿu&}i vŞ,澻K5.KVLua!1|>8s0Vlwa!LvaeQ#1|9O_eYQ k`_eq$sc <>#|5u>_|C׼+izeoR(%KhԸf;KKky8يᗅg?xOǿ|!};¾7|OrI[8ņY6FSgAcm};q/i s?31Z8GM^s^1񧃾_[xk Փ~#u/4ؙRMC['JZ@X׀cLv,0x2qx|_0~;Z|&¥|V/^:|= s^J%9F,9>|n_~.gsꚶyong]jrCkggko5̱HJXv=y/s8yf;Lx,TT_ʱt(VQ5O5-;NӮ}BIR/.ӬXy{H"Y$X԰ Iẵ+kyRk{ydx&9a6Y"6d]xXFʂQutUGGV'*|' i6kVWZjWPXncWԑ[YYE-ıorM43JZiСNjժB4*jթ% tӂsRڌ!)5@g)ω_RÞ#е4kK=a4M_O_J4?^Ԗvm+YE-Γ*wIZbx ya\FQ,>*\=xQԕ*хE zћ-Z5iՃ'0(p ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=Wax{> }7o|'u[ /xJķjٵݞSX{ !" >{ᦃhu7>"z^wo?g^P\o G ]q_Y/ms?h-ӢfMhvޡ%GӴW1wey|3˳\*e&aU7_(N=(To8I?σu_|Ox_៌-/| _< gx<{x{H]K_V/vg|ZB~[|&ÿ_~IΉS|"֣!uc/6~?I&]bijxoEŦvgy3838̯³|^af_W)2\\a`R0Co^_ݼ3P<%Ѿmx¾-񆗢Z~؟ 5e+?i/ĚBZ_j_ip)XxZOV#zoiZ?gKN,fe\;?1xzMfx2xqv<%Sl^kW\䙆gq3%ņ;Ɵ<+ýOÏF>Wď NJ&6'C|Iw{>Դut:O-o3'oxwmoAMcmg)|z_m<M浨Ko95I_ Cl>e,χjhKqo[#^ʼ}YxCO=7ǿ>|5𦧩G|K'4V't˯".~&~w<QbFQ/qغ|I9V_gXN&Nnxg5j,G YSYa8j7rܾ.&,B߈^?_G |A~|B[.3XxWqwO~>7ևqk-x6:ϣxCW헠|[𷈼=8_ƞ6' ~/Cվ!x/xK@X5] <|#΁g[w޿yY2<ԩw#? ?jE~)h_ |P}|/~1:u/~{mVËZڿg"F p^W:n\fy $Q 0x(ฦ%#d;~cƭS.sjj>!5Vվ5x j+k2~i-մ}E7ŏ|Us1<]^|::W|=^j[ң82~p8k>[x{\'4,6ZlqUmOl^o|Ex_ h/w㯃xWi/gWZxC{-|_eI㿋^'o߁> O>4hz _ׂc}M^k^\M<_Aޙi5Ŕq~?Y9^ -Ӈ7ùEEG.ro ХpTua _ 97>k7j{% 1Y);^:Noimuج<D 4˰lJgai:ͧQ0"Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh|FG[^#'e6i}[PO⹾x7[[S 7]|Y Wt>n?x_^h2k6hRIZutR\gMykMJKK 䳾;i% -xcY}A@V%I5f!,t?`Ӗt bIsj)fX Nxn$.nnu6>4|og_ Zx/wJaѡ/>||Okr_dki}qf{,F A4M6i3iKe""/u+E?hÿiMYh3ϟ%f {W=׃/s[[{/Or=q6kK hḸ73Q@d&uF/7;4O'fԛ󼝞.#>M ZD?ٗ>(T}'ÿjsSMB<.OGOeX[MԭOXA9/][:]GbӅURLTtӣZt!% Sj3IFb(T*phG= - |2\Xم|;4VXuV4qUZXJ4,EzlM5EN]џ݇ |Yj_5-;Fw˿_XIҼ59滩ju]]^4K,NJ;\njm|fQx3Υh]|DkE&_&Ҽ1i wcu5PNOI1J*RU7E *rPt߾ZHq )ʬ4[:ѧ ᅞ_) 1RXVxל(j?xýo><w  |Q>@m="uZ߆eIv/8 MͱdBxୟ _hxo:ѶOl8{;.Y,t97V9~&+ *qg>=:]M' 5 ~#;㷀|97ڿ3mkZί=֝q[Cis&2z?ÿzGĽ'[t]?Yӭt?w [Ou|?V blu F94SHJim'1Iwcc;=qW^9δӬ(UׅEͩӜZ6w&7< aeyV[fx|T(ҭ(סNTRXZE%+I&~$K_/|CumKHnxP{[jNKӭ'/m/+*keճ|-p(f]B&Sln"JNHQUe U')8ӜH K-Jӵ9|}{wVVU}, ;Ji>bi[Q#yxo=xkᏂF/"L \Я-t?^",t鮣&L/hd-hvB Op7Y/l,-hcs~sg8.KfNgJ44peCYSjE|Yok Yi[_2F-kiV? ŦKb ۨy7CWÿ {I:?_)i#I.VЬB3bu(& &,dfe_ù 9~exGp]Wa1>C4o']iCMᶲtB/I%o xAS/ x^I|GsW[UË[-U.Oƺ$tؙd?fG_l3\nA|)p? c0qoefkJMQ8l*LNEZ: &Bʘփ־|r>2"$Hy4|[ڗ<-}oH|mkWF]?_дdu?~T?C}>Ş[g:&sSTK?Mx/"!\_'=jqhv- Gۭ3H}㹮bм.5B>%1 "LB[¢ nuOa3\ r,)?l1gѭ2QU|:Z)έ ֟2to uQ Foxfzŝ֣nu[/ YLַh𼺬b/c' X[o$|iGZ/ _K|@߃|U烼IxcPPƤXc溳-v 9]cHuqank1|eZ&OͲqub3|e03|M}[ WRs㇁y2 yx,~|;rN7F_/&{i,>51ZI"MvqKį%|64/>;]|?4J;/_ >2|NtY-V]GA6kyCys ?3zL,/8b[42܇T̲}\5刣Y:|% x~SnXuzIt="k}[YuI5F8mB;{u4ګb㯈+_q ƺχ<c/x3h9뗶 &W/X̋89`c260|E2 5LN Z+y fQFSU3,…l 4J!:؟'[í|E^S? xGGY?Xx->|KxRe{}MDILv?g-ռj)SxOV,o#[ޣ%ä cer2ı`|Plx;9c2Я¼ASS>G ÕqYm MRõ1p:"F&j_ 4&x}Yox#7WU[w/X[YH[N]E$K/~-j&cW3ZUi2|BO j !: u-/Tx^MPZy׵\[[Y> [8VAxΩ+~&| kÞ,4h[ti.izCkt[Nԯx:|=+C/9;J60Ǹ2X\(*ؚΊQR` 8X~ \;|{'K?Q[W~ }n-mIkm^Dӗ[k紾Ƣ<;m!߈ymL{/Ư\Ig|{GX,,t,s:csZjĺ#m]7#{Xc_ȳ l0yMgx5+֎1Pϳn%̳_e:,n+?57,&yW Xyd=K =Ul]f2c1':ԃwU$Q_xA:>VҠu}z[Q4'Mu= _]Zo?j{>2?5/,ִ cB{VDYɧwTm7i J&\f?f>a88w/dRϱY*:N ]u<' fEK OXq)/ᇇ0|-~%x5y@)|Q+-^}V!_\C3ꚍ~ZR{=2߀._EaN[Y[K-'xS'gW->Dl)eMi)*e8N Ӟ"53L:B8*9NaRs8<^L] 0DxC >G$<%k3?뚏/mݗlt^ݣ-կ--MCWCk5GVo^|6|{[_V^eŖ>Ze\^m.OrUVf<-q0kOV'J:>̡VqT3|bڔC >ҟ|c M9i]{^">;W]Dž?[\|7&y#աXvWQ[i>7־$ko oMS RFHuZLpRK݃)F}n(s^ ͳ<<;|2ɸzf|w q *֧\M0հ?uE:Rzb]eÝ=5xW?/o5x~މߋ>xkCt~Va ƣNmj3A$WKO xc~#|ߴ)%%y^ tƻ-#O|;hپ˫Eo:77Kn)k,1>"\U ]: &EQùzgȳS8~?+1ٮ{^ezxͭȝneҒC;poc0?=Gp9%\5{,pElng{8 5%Ga%xJ>xzUIV3,ՆGի,gʚ0Y 0#?g u|5F_xG+:ROV7>6qem|%o'çCngQh/W SH[] σwoO}[FQ YJ̓R< qG={].[uOž&,Yqq/[Ys._fyc 8,/g;)RR uV0/]O½;fm>%:|G}cK^?].6T y5_'slRWӾ#N1D=[$4+n`yRXXCxs~5B7X ӭ[ŸXxR*ϩ)TiЭ:ƔCĴ53x~Z߈oc_Aa' O txO>$.:^EǨڴn>Ǐto[xzmVRW<9Jѭ5gw{8͎G_3N拫B)͠O[|(3~YF[x%s3 Zٖ_//֜3,^ &F3*>p~#o A?.^k#Y[hi~.n,xAusݘ4h γӤ`դ+_rs1Ns ᄫZJ41X,:1*aYSS8ҕhԫNP'P +(((((((((((((( Zo?DGWh_-j_P^@[xV}Ʒ~$;h44_ x xi%NM:=AZ0a iC|XΩ7Z´>|=i>:uՎ6N&wva46Zͬ\/=еO x+:jh6h ~&Hu3;çǍ"Im奻( ɆœresɱXlYgS6qQbم,v+ЩYe4X\GӅZo-b*Tl76i?~?­gG*h5o~ǐxz?O saO]{~6ON Roo^0}wwς>-s\oe <]^,!i⏈YOtXƋo jk{cN;UT֧t0hoT7)9NK| b0X>*ux 6eGEe,>Qr՝z9IX~>$>"|(l&{~Zʼnm|>|9_,>0Vj>$AxZ[b6 >-M4~6wo*i[]/mO[֑;;[h^?%ou;CMUpQt*?5(8Jέʥ<hefPXۨ~˯d^{l|7) +8eh951x^OJYY$F0}%[?߄Kg?5{o^,;(Y~b`/iƅ4 iך]^!<+i%/5/-v[+4:요͵\W5UJFu^gu8*RI$BcNi=T]JpNP|r#/q̰4C2R0%c YƕLV %V 7J t#Fqm+@e _DӼ-? >}+oa v i#e_5 /Gԯ,V߭3[gNB5;;{>Oowew0njh֫KRz!Zj3*jҒ:AtSc8NRZi3>%|:O Ϩ\_iѬ`x.0|g/_wY׿g[?ߊ4w!狿hRe?9. @xks۩='s~Ͼ'?OاNw-w&X'wFItSEwx''`3̷1^,҇x)aY’xC6*g-.gU8֯)d3ⱹ(zms%|Uѓ_χ6,^:|wkLJ5?~U5o:@<7-Q Fo /Z?ѠكWu|'sĿ^:Z75~~+ioejp\iZ< =P<<f[ܓG.q،6sSG <<6'0qĸ9Ve,l^Yl/ OWT3|H_#O|O\#oş8񥎋|e7z.am5ek:Gjzsph/?>5'<}kl3"oz֧h4K6]Wvo~_ -<gf|mMb>' M{pq6.'x| 8?42rmg-\ׅr\ Up\EnUhgy6I9MPIO]OA]7Ὧ}CHs\jß|VծkmIt={FM=-NM,3sĿ N%]֮D%e"^Y]dHW\O;sIm%įq._u)b>aU8 b3l%uZ1:43I5^.Nd!5xC?⏋og Zta[xG6~g;A^|HŬW4g]-~o4:[ŮZqh62k, % xwr\?&yY?c},2Np\ӭ1Tx?TNQc^o>|HE<3lϧx6@$];/ |5lMsoWeᯇښ=սiwsI\H|w?3f5<|;Ĵoj/j mWMï)o\3?˧wn'ȰY_ץ8(b0p 2c*eNͰ&#.qy%L?jf# 3zӪA>o??6?|G~?aY$8?bq~?U<dA <)}oyW<4Z;C*p+|['OྕkUM_^7$>º_~Yx?_%C/4<%>o,ߠ[ΈxK 5'm ? x+Gu[i&w>NӾkY x{¸+=~9qf[Ęܣ>CĘܧp)\1,χ(ag%CpխLֵX> -ߊ{~Σ,4մg{?/ec$_ ꖒJShiIنY0sZh.7t6z֯kA\;W^#~'?fo?-_<3?*5Qt_ >h~(ӵy|kvT喒{^XMG#Z#/ KN/3dYEqY g [W3VG['Xp_ >.|־'|c|MwZ?z=?wZVDZO_Axavȟ cNM??|B?g~.׾|7OXm?Cߌo~[NiGvsI7SQcir7o R!l93 v'd;lxgs u3R3aiVe ,Os0@ w⟃g; L-Gec ylFkdU{.qy:90:牾xc :=6p'+ n[:][u6.ok?W^u 7~!Ǎf?uӼ9=gf Tkl|*\5  tmo c ri]=xƺ4U,>^F m:WG,xw>-ſ| OĺxcJ=ތ4HSs{ixmw' Cׅ%|?^VC]OGuw>356u.j YoF}+E_ɩkoj-neZN9}Pg~q~g.;jRK$ KpTq8*C*|5/5֧<X.|8kJ+G_|Aᾛiv_ x^Y ahέ߈tϷj7om>4=WEMNOc}⎝,4^1NsF{xzyPjZ?1AiGIP47QkҾ2k=]Cq{{^^G;A}zM&'m> L֭/c^x&S}߆;j-kw|Y$qfm{\Ɔyz1Ȫj]ZkUB55s1:u#VA/04x}m>k|O|+>*OA>'x.Kƞ|~ǎn ˥^jPܿkNj>&u~ԚO~zOcŤþ/<]෈l_Ph?a;+/JҴ>Я;O'W'6\WpF]eX|*ʕ~Ά<_:Աa970؞=R8:Ѣ~W7? |Q[O>;=[߳fYCm~%toj~^oGOkiĺ~zQ_/??hsK| Z߂#xu3e|aauh}?Xj l7=YSd|1yF+%yo 1Ec)XJ~AW;3LgJ^=o|gᑇǺh^sq :@G%gsj6xm!MF~NOFMILo hfXAoZMZݜys7hu[Y!$r|?f~0xܪ 3d^b2~#1q9yy%|ekS̲=¾ԆwW:]nt}>}H^hb[v:DZ8ͰS[ۑ&~U_FqXN&8jPzkF p:thJ:p)Ö!(((((((((((((( Zo?DGWh_-j_P^?_D>։_Ѣ VǪG ;c&"Z.{^Zj;+f6+}MOPkKyo-uM> "G+J{ .kH,\gg0 (o.oYI&$|` x7IԵ ɼ?_|my#м/i..񦄞lv |Vi~kycEOq"YXxD-,,l 6K70${\tQ@r7&[W?ďxS];xݲKo^u(xa58 NpNrR8Nq'QjQdM4il>#Pa+i0؜=YaњJ ҩΝJr8FJI1>_J?OxK炴( ލ/ I+$:W -?Ii$㴴Wyf'sIʥIu''9rr&ܥ)IJRm&mc1xXMZ8MYb+՛ZUUVrT)NsnRm((((jZnFae:Νzvז7WQmygwo$6IJtV ЩRj5!VjS:Ӓ:A¤&8()E~W i w 6z|'- LmtCҴc4`#,HW{=Eof3\n/3,^#9&3bOqbx*Vb+ԩZiΥIrW Q@Q@Q@Q@_K<5im$Hд=#KQO/u 뷎%k˛4'b1f"+Wbjԯ+ԕZEzZիUURRR9ɶ8 5so%o</Ba|}gº[k0t K[èkSReֻ,4qofX,#XF;v]#Rge\.EpxjZB8D +((((((((((((((((:Duv g"֥n_k@E5bzuxZ/ߝsBM|kG]=-cڱY qxKMLx_Ú>,~KdAe/&w>lR̓nQ@xoC|<w㏍~$ѯZDΡC~~ϧ^h5-9I]e$LsWdx4p%o/|o! O4mt[ {K =[֯vu='C&ʚ\IY^K游ŧC{jm5xZ׭u)u:O4 xmxLKE:{ܴWwg:\Zqmy̗vd5Zu6BD.% }E1_s>m0qx;x*K <#&y5k[_ c_Bceu<Ӵa9xsZծR O˨xIC+8ߗ5+J]O)EF˙6M'mI/>%A[Y/.տV^W?j}[z\_ wEuO[|M5&kZlv~K(ק%RݬeO92>zx? zƣxT$mC4G]\E{-%.i45[" _xWB𝅖uiXEcՌ4 oc's[^WW:u*{gNs$e+_va6?xǟ-ψ/f->>|RM ^? < ki/u Eq[ NUsrx . ?b$yq%$]_XJ+I|+!6?Zo'u?H>T?wnSqp:$Wϊ*ej ;7GV@t}o A8O?o?D?O+Tm>? "Zo6?[NS[OSq?wn?'A|GȇV@tej ;7G #|VSC+Tm?OxO }_>+!6?Zo'u?H>T?wnSqp:$Wϊ*ej ;7GV@t}o A8O?o?D?O+Tm>? "Zo6?[NS[OSq?wn?'A|GȇV@tej ;7G #|VSC+Tm?OxO }_>+!6?Zo'u?H>T?wnSqp:$Wϊ*ej ;7GV@t}o A8O?o?D?O+Tm>? "Zo6?[NS[OSq?wn?'A|GȇV@tej ;7G #|VSC+Tm?OxO }_>+!6?Zo'u?H>T?wnSqp:$Wϊ*ej ;7GV@t}o A8O?o?D?O+Tm>? "Zo6?[NS[OSq?wn?'A|GȇV@tej ;7G #|VSC+Tm?OxO }_>+!6?Zo'u?H>T?wnSqp:$Wϊ*ej ;7GV@t}o A8O?o?D?O+Tm>? "Zo6?[NS[OSq?wn?'A|GȇV@tej ;7G #|VSC+Tm?OxO }_>+!6?Zo'u?H>T?wnSqp:$Wϊ*ej ;7GV@t}o A8O?o?D?O+Tm>? "Zo6?[NS[OSq?wn?'A|GȇV@tej ;7G #|VSC+Tm?OxO }_>+!6?Zo'u?H>T?wnSqp:$Wϊ*ej ;7GV@t}o A8O?o?D?O+Tm>? "Zo6?[NS[OSq?wn?'A|GȇV@tej ;7G #|VSC+Tm?OxO }_>+!6?Zo'u?H>T?wnSqp:$Wϊ*ej ;7GV@t}o A8O?o?D?O+Tm>? "z sꂹȵ۟@x'Ǎ{_XVhZ%<mk=jpk^3]EYWˊNc[]u÷+>$x—6pizG|#a/U[سߌu5[4l=h'N𝖻xg@F|AK]#O^ͭ5tjgZXE=ךCmkQQD`?n4 ,o2x1i|AEw([@K Y5$uҗ'Wuo+ZvױՂxeeG:xc΍xhOh #6C孟#,l<'_Geuj6^].Lׯ'7m]A ^~"[_W0Wo"Qօs8kojk־m-ּ;m%_Y*|c*qTO#/dJH)8Ҍ T% ԏVgW 0ŵ+UqU0N' 8oSTSWRe_ګ^f |u!5]3JOZj7 ڭޟŧ

U"*2*LNxZ3R5ZtJUJrB4Jui{x(TӘd|=sl:qedM_$WRacbI xZ̶ ]VjS V'>x?o>?iO|i/_ln?j|R'-/,u/Z][4KӧLž'i ׮~&޽ؼk^Hvח> _o:=__ ZA>kxӺ5/Sҧ(SU:!*U%BHsҍJa;ɩEUӺSlϟͰ W~`5\&K0Xcjdҧ9 EZ*3}߅C[º=[K/⛏ ]wP$zׂG\jlַxk^!$7m;X1|Xǀu>3ME_y:%R7"+4"F2 l ٷIeβg0lD}Zt:FQXa+ދU9O4>6>4DX[+yaq{σ<^|_> Mƍa4ɨx't{ƿU2hmk7#\q%ImG?^æ| foq߂4xWZgI&We3#S9FcYfOǏ=Eӿg~7 slᙛj V=Nz n, xP]Ÿ=['/4m#G-qCW[i^^0 ־SWK?ش-;E,/Q:{_oO?߈ м7ekiz; /KF^;똙.>8ZyQN0*Xˎr>7?7~~#P_~2|+G{-.mwZKm/`/ρ<%eK)...2ҷr\*e\o^%1Y~aՌ%qhfp!~˶_o |BD?x2|;:9{׉/_?:-^˭6ӞQ}wH4x?>%|8a m!E{/||i:V xnwšе9u ;y\ISy\p *엋3 )9p q_&AW`NSΰ,.9M,(_5Z?>5ďw׫|V}ͦxL?ZWG=ɢkt]מ$[e[h?]ZԤMo6[voZ SIc0\d"[Ðå 97_2ZW\gϘRӭeAĹU(%̨jslL8(a_8`(((((((((((((((((((((((:Duv g"֥n_k@E~Ҭim:>lڝ敩XjD+55-6!Vݖӹ-7us^< w6i&tKtf-~G4 u : tmt:K<ٛn (5~??h/xs⯅< yo_njj~!mI Dխ5}gÚsYM}sS{;n?oᗃ|a_~8=o}Ji~u7Zŏ |5OË i߆|MhxVv:۽}<N<,RYVxiںB;V*/3'flV35u|Y=lJO2 jƝxtzW>\%V?|zyia>(ZTO[9Oxv@<0 πZ9&59Kni%j-õuo6*<[Z25KᙹbSRkNIe<=sIrkE.P4"ƕy>)]ͷċxwYEhI{ׇ5xFմCy):u-Z+;?~ KO?5k%D|m߉ski%ދ£![H4yZ{FMMjS?.^_ayV' Xx]KR&'qs2# 6IS̠ƾQFt8VYn&8L,kUI QnkJx\y앦GWK> ? >>)ŧZ+ÞHu{+9uӴ{ Q{xG[]`lu]ּ7m|IC]'5%: :nZ\\u 6Y"oo@| 13ռj?K'h~%k ]~xwQwy}?vKJoq)ap:p<17 vKi`2ő湇dmxeJJS9f ~ɾβ ~*|]qWo|g}3U? 86!OTz~a}i-; |j_5/|sq?Ν{.h=# >:[|BŚtkVexVj:e>i5?ȼkľ,ȱ9C¹7 ;Y8 s`pOcʝL8S[Y|F].:v=SEu?xRz_i]\ڴ!Mqu|3 n+Tx_ Y.QP|>Iexw(=]𦙠O_ `.= յhAkV yz4?S~(ѼA#W;k-/)wwYִr ? KTx_8y6/1V׭y? #ጥUCթyLKqr3U_/ZIjLj5ejaeMUbR,G|6m5xR 9𭎯&E"1xYF;c0Ke3'`p?{SѩKxq0q,g# A |#3bďxמ&]3gKhuaW>2]|)8⿿K7~?e #HҾ1|K'-7^=G<~%h|:oMC>#þk{-mt ?>EOO 8aaصf\=s0Xυ2<c4ߢYIvWej Օ sY^:K![:QgJ.cH<*xOo5_^3K7џ>PkMsL/.8ڭO_(((((((((((((((((((((((:Duv g"֥n_k@EtAֱ}3FwSPѴbگ<3y=:z}\l6O4o%]:uk_D-{tg5C jޣwƓ>4{ ^' iahVwڢ }OPO Z\]t8OƏu_> A.#Gw\ŽunOxgOҼ>CMJR6^ ~(!⏅|SzIwይ;7ßZ_[05|\QK5>"Ѭnk.&^MaKҔ 2ZRRIݦMifάj8|^zJURB#Rr65$&Z3w5Ȟ' ᧊+x@7|vg{N*5LB<' R};Ylt$[Z_ gOFw>). ~#i/t4/g[/|Bjk6^wޟi`X:UH^*.ZoEJۏ/2D8qf4.2u 4t0xYnRiP̰TL:thb':~US|GI|]߆x⯉<)'GTo GM. $NgkoxFO_ixk & /Rn?w)w4}[Dž|q4< ߈_>5KZ3_do_4|,|iikq/7>"sy=6] q8V~0BR3 ւRU=Xzr֧.LUHVKZ^U);(dYfYb0ٌ_x2CƲC6H]c5ď٣^-|,-Z5 v[ӢmV'>JT52?eZTrc*q\Ӧ n~YNKpp9ƔK!NM>!1 *&pjjG]||g<3^~(ߏ?Zݧ֭Z~uO-}ڔ&wݵ Ί4ߐ|AnxG><|@'¿oZ/_|i?|G|R>'Y|= x7]zޡpOS<лsua?~lePXW:zt](`.'')T"F0te6< 6ie81a O:%f8\L s|KU֭Ytpuq5'<3gOk> |[? _G4>o֢nY7wB/bI6wYxM|[K]B,=?e?g& IC/ZVP|5cs`< uM6o+$֭*HeSSU}SxsO"ѼKsNF|w~ο|=Hb+m5IO5-qJn;N5/x[G| OxoZqx&s2K- 7n<.S3㌧:,Lqt)L<1qxwχ?f;{N'|=3dz7ŏxG<-A{yeמ ^|Z]N|._ῃM~*ċ[b|YS:׼?Oqi?ŝumGYLXLOK)TJia.Q2V05#|;~SxI#^20N'UqX&(UVTr=\^.V2թsN|G ;ό(7xooh4xg_~ԼKۨ5? ~.x<-,W5WH ռ4i#OCL(5׉'±_kƭy<5}N'T  StӣծynR&q5Q)֋fR! §4RS^sie4rib,&"W9]K ӕ:UGQb(bV8R1<u w^?м5h~f 󋉖k^ {Ih5߃t7YR /.<յMpuR4]oE%[V&N4SN&yZng$7v0YZͭQ*+AQ?g[` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W߆~ieaŕwpZ8[[-u9lo,nEiQ o3;ns^$DM^ĒxK4j4ɣFKռY xb_յ8nA=I1.{FҼ;amEiqml"XmxT4U%坙b_PPEr<-xž5մ/>&oJ-m,u˛}9.KP=N}F}FOյH8g-B_]?縺kk+໋F_h:=j}Z}'ʝ@O^GN1=ؾU Yzo9̰nb'FS/gO,ފJt䛆cSw֔JTO |m ]Z|%/AiV|/?xRι#|M-m^1g z6ǹG}Cֳ_jڶyw3 T#)Rc[ Uk^2suԂ3TI9մ=56Ҿ:|wΗ* j 7|Cw'T&꺏a͟(=o[Fּgxڕvx/YKp!xdkmS^?|MrQ,Ok[6pr||I3sއqk~>cZ0ivڧ|+hz}ƥ=:|7wy-v#kq(X_#ٚO/} :'n~~> ;Nu<{*GF3ki-/๸KF׿NPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ 𥶯}Wzxܖ-/~#xNWVHe/,^{}>FLLq oyW G/t~26"?GOWnm|)[{@SFhZ,cui 嗎 -F=+Dzx!Eߊ4GP躕լx (k:C.t]WQ{Y5:f+|мCyNwL}☬t=c[/EKvھZ5O$:~Ew-[K|S ?^Ӿ(^ x<'ȳj'J:2,ֆPDד/^@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh$F|? g|Ṵfp1HҖDHLK9>GHl.O4O4]#JKu1kf- yD1H|DEzR4jQmGϡx.N 1__5Nj>#/? \,m73y!խ5MQ:NdnuN)!NMF)RiF)6n$mZ]:u+T*TVIƝ:t)ԩ9r&cm$fW'['iI.NJI.u}{8ѫ%MƜjtiIŨN}8pUi9+)žo%W-Xk txS[:5oP:V4bOլݜL-u;wwʬR9Ӛ9ӴdN5t}EpհxFg׫O3uT*愥 r24%(׌io^3$t&5FIyⵁ -3odO4PdF(.?hW6gAewi֏w5mƟi2]Mkw 3'䗳|OܼiNڋA :/eu}(]zkz/G_i>kZivdu+`'(b@ZGU֘|=|]z\- ؜N&<> :N4СFeRj%tӌ91\F')|XY_ x>( 'W6>7/m~gjOY}WZh|(|4k?|%o> ^X|:no _ Gz/T8o ȱ\C[$̩xlcC&fGG589uLDqupr*eAhzkZޥaMΣjڭ徟i}Oqw}_ 7W2#+)`jiwީXi.as:yogivvww^GikakiW7ȱ0駃T%K V&X<,Ы5QrqU1X; |RF9 (9= _FDUCI ]Iln'kVҵH.R:¯gym4X<^.#(ԖBi(Jh¢|=ZUǖW8Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh|cڞ]'4];xYt-K|]_]5 j3ٓ6k$ Ox⽽Ӏ>wEƅx~>j?xwtF]Xx"i ΍xZhZT1cXm& &g/S~ 9h/.<9EgyR^yl w)ǟ4RDc@_PPE xu|otX#o^k}.;Z3/GW j{-6^ kc4Y=H<_CcwiyYحiwZsBnR?%^-I^{q0\ Zz|58ߖQ٧aMÏÏ|gc_}Kφ^[m;I߅_J,L oxB6xQo-uKz'߈Oٻ?ifM4-Gه\Z]Fǟg~+Ŀ< jm \V1rW)sXX9)xiPt%]|ϚzAWsl_O!icZb+dy֍| zv'8xj=Uk '{>~?cOW=z_<g>![hn?{hĩa?>Ş'X{ SJ}\ky?$ <[gwVW!~O㯋3x ;A6뚖iAe/| 5k?3'|g/xuc ⧇~*"֧dG-G'?+I}{R :iSԌqN F9U8])R'BU|S 8XdXXUK4BG:41T(Tq|3J)5ӆ+G½?Pg=kWŸ~XAߊ2t__~#_xqOT5U %5 VJt,~灼9,ӴvB5-{?_7:hzCx_ՒKZ%w.u:OM`k̷>3)9RPUF8ҊW FU9)NMS8傌R?+U\eUiTad a0 Vr . J t!N!N7ZFڮ7F[E~-,>-|iDHefش0%^Ѿ%#&B՛O+߰Fb],* Ѷie|2\*&aUT7_(NJqP 8Fqvsڣ yeV|M? gcFhZOo_"/B/fȚ!xX[XKsX#]| _~(&Bh? <1D|]-x/^[Z#^7lVyX|o f' `M|,?_mk/ ohS~-5A{e|WDnoMҵ3ݢ~˟|FO5i~߈OO'56÷|=x_,GmsHuizީ_ ^_|S+x.akCs~-x=9p *=!ͼ4zo./$okl`,ḾQym$[{%@EZ+ (-I7 c}L+[KWK2:uq&qsssGh\oᏇEHZ]|)KkԵ.o^ŀҬﮗOZޙ[+/Q%Rq9FWJJ*Wm%՛aqUCWUF9zdNQy朣{ɥvpz {Eg/SQY|?[/ߪxOUÚGo,Ӯ- D4MKS%¾㻴{7=kz`g2WZO|O? _KҵxNimoHl.m5 ?QU%BZU:5] ޵i.J^Ԅ$է ҄i)x{6fUpi0ؗ,v^ JtVT0_Z/BZ4& W[ 1\yώ>+x+η@mֽeGKO+"&4So|K:[OWún{t˽Eջ˟]]7_eq<_"Ts6.$ݚTҜTk)858KHTΣ'*mJ/ݨ'(WG^*a*>ZXZޝ**g*jʋ%FOfg<{ߊ 7ؼxs W\O_[n2XZJv/uSRΤB|9˚d YsBVeexeS|>'؊*l.#ԕ?oh\=^_iF,}9FVW>y<)U?5Qg;C,uKaZjwiguy>.iY#j(k uέ}N.ɧ\\}/ʶwH3񏀟NXkw,Xt3~ʿok1M5υ|)v -mr->9m[P{U3<_:#w[iz\ƽP5C]>yYunR5]OV ۻJGF$Xb8:( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W|il(I]v+26]io_|&5|MB{y>:O׊ c~յK=b;OJ~/|Cqoguy~u|goH,h6ox :Ҵ񧄵M:=؎{!0> мCj1|gռA EG#旡C{|R:nCh\ό_fwzwDGtO3#G5/?<+⿇4=b[O|=-nZ]s!5b]b^*Q[G UxUӥ{TaNR(崞hw8wTfRc93ܻ"3"qx*u1%<;2zJqhah>ux[@>i|%:  3|)-J߳;y~$|C| xA~8?M?QO_iWg7~Ҽ1_ ?eM3J$|S ~ K~ ~xGO៊H/ﵑ} Kl/5+^Y˖L5Ll\apؘVX{3 +VԩVv3USsEC'J|iqQ7ex 1h']x,}KG~<_ivax:Vu R1=?]|Jw?o_|k_ (|[cSVMnAwCzVV>EpO6V? g]Н B"99bSPRVSJ_eT _M8j;\x*o߀mII(|,tO~_Mӣxo|{Cht[o CH֛i{'VUF.*l9jg|-j5eNOVRXN*(Ԩ[fr}'jqԬ"dx<0˱0QyiarZ V)=-u__?x޹~451So:t9Um/?x.E;]3P񕔺N㛫umO6s4y^߄ďiͧQx F[rOA-e ?[[6aV β:"2r(Rut&%pPuj{EuxT*:b159 ?W[.58CYJ9Oݯ'.s"/_,F>u ,'F]/&cJ~\g]&Iu&z&_D}wtQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhox\X ƾ9 ~KIgxLZ_wf9E6 Qx[Þ0s#ĺR\hem|~.OcCr2kVyc c]φCx4YdHa+jV]`_*UDtn#4_PPE H5FBftTH[b%ҽcwr,`:t0XjP\|g> wKcg]w CuZG5ZE%ê o#kO7A?ȼ+A|;\Yu=C cjA%ْ7o "x&,Q[AN*G6J-۷KZypΫX.G^QW̢.iB/ߔmh7r ( (_BDžKXjxgiiмA\:4MBz}ſln _;-j.kOߵWCJ[4SCamhh?eC;EsCP+UlCPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ .#Ӽ'/x]޿mt2?5ZnX_@mRiQvy{KN+,Ƿ^?o xK E;z^*oYOkhet5N+M='Z,;!N[N;/tD| m[0Լ6|=>5kHt|1n/ j62Pwi#-R:-?e*j7Wj^OZmBDq4]j7~(z?ھ׮kQ@|w{ZoZ0߀I=kF)𞉨^![aH|Ga?iv'\,m+ +|#߅<1 hVSxlSOm!Kyc[y9bEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz( zt%g|=ok_j^7]I*Ei=|\`%nS:dV|'k_4=PC'5 YVx_@_>8MB[l6gn/mi>oxM'ik,PNh,kx=2+E+nb^ʶ ڿ>'<@kcj}3WOQ>'a?Y}@V%pjҪ._Cs2Hƥ, -сGGwX-YEۢ ֯m4gIxn|A k59Et2;v)v[SE8_~|uo 7ேu~z~h׊555/jW}R/ QXb#@-[/]x#BE7_^8ZS 4kS1}O3f$7)CեM˕T9[J<ֺ{]_kάc1<${X|4r{Odօ'SCK<L ;㖵,B)mߋ/~|@7 OYWд~}w f8j.i>E6Ƒ|Ha|G[͏sGBvĩ]{^ Wft>xb/!.UisI)+.IG5~ol SSNwteԥUjڤ%)JxjtiWo[K?h"7R6Cּ)~0R'uiZi|n֑kCLn2\i^$#B.o|*uˤ63ҵCi'5?W/C~iO\ȑXHPtەZPTڌ"J;ԹN4n$/G*+ 9y3-tP !ʄ㌩䒮,-,**!RNx/1?]x{ڼ7(  ex j>8o x9!~ =;㇁i ĻO_^'n~=677A^}z֑ VHնS]b?o4;_k_ *i?g[zcC_vmKj~R;=^J\Y][S&%XzɹJ KE9{Z\TN.UN~>*x:CqdUq)b2td0|AW'K.\F?}xW~ O cHӭSQ3LvCkio^ZնiuΧW6ves}wom'Κ(ִLs/7<#|Axvƺï^ft^5- D OZҵˈ4>[R)*^)qmI5g:R#(RuiMKʸo0`48`(eJ*400jSቫN/ Nj4Jׯ>|U %ϋ.n~|E[h$^ DT>Am ߴ' ~: Ə-׍55G}'xSAW Mįrh5]}_u궗M2iZT02'8.xX֔eFU,LiN8WZB*c- .)UCUUZ9Z5 ,5xWp3 F*1B^񓥂֭K|Qi|T䚶Q<Rg%ү h%\(h>&t=cNh^,ӯҵ;QwG_Wn n]=rHӊyjܣR&7?h۞&IE)JQip⥐XrOIW.+EJ1yf PX2ӄhԍj)sbP<T|dž}?υg O '|7>5/^ob<3[i:M{:4[-fDwi/xOx#L0w_]~#%3[]?HԵ[/i_x7]5\CcM/Dty~[i,?hF4R9GwWTT+I`R1|-|F+G/9/s7㏌+j-7[in&|mΩZE>'Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh;~(xšg_;K׼sj!D6+noԵh4 j "xCž7߄OX?7/uą,<.mq,mga kU| ;u:^u]ySOK\L e\\NhyC_~:E^xcᏃt~o4Gagqxu;<>FZ[-A hwM#Kz (dλf6__7ړy>wyښ~ɡkQ@d&uF/7;4O'fԛ󼝞.#>M ZUW?ߍ]X<-}㸬?xM/ Ů G(⬷/ɰElIpټXK`jҧ,W%`U'h~J!r߈oo]6Gi %x4{I-uYSG Q`xIμ,4~8i>4w!ks7k/o&k.e$ګ|:mgeO5.K?߅>9+M/H|j^3ⶋx?wVOi>'7&Ƴ|Couo/V5_Iң)NX8S*)Μ1AU7:E8LJ('bp2^#ԫ_,gFxʔTp#el,Xa[|"E–nKϏ?h2hOQ>=Ə]NgW-(\o 薺-ǷkoiC8?ğ/={/ :~ x+Fi%ߎI࿆ o:ƥYiqMysiqjS07:uUץ(l5N+9ϖyBLOJR2U!^8+ȪN7 :טRü(`dž1-*aV+ 88aq4ᾮ2[38i__4O?,d^|8_|Y@~,x+xuCy[~kMB+\Җ}G+X|>5OlObqM W BsvŪeSi'SWq-gJQ*rUS2L~S˗=?.X^brTggWdW(9eYN7N^#'>zgO ƒM3Ş>zO ?w>kӼ7GOQ7ۭF *|Ogڟ%4+7: ?oW>|ANkM _@v8]u-αլ9?;Xjx"T8x΂xl;H|O-OLo%Wc]xHh~A6毣E6id4۹,5\.q^*?hߎ)0{#?o:^g^4%w/|oź΃qyxW? e≥xwFm`j:xW ԇVne^a+95)ڗ[9OREL.qV2OBYCNY*.e,:Saկ˃xlv3ž C~HX|<?ko4-Qskx_M]Jׂ> % NĞ)3X7mGǷHu<)/?wB֡ϭg_?> /iK Mo1 'Eޏu5ί{b+Tu]Zkƌ]UO 5 ):n5c^Oqq.WPMSTQִq5[\%:㟟 o<]bƿs R̟?g> џ>.|Ce=ď1Ǿ3}qi=D+[\խΑqca$:*$JEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(8y/E|#jE5m[\ׇZ46q 1.f@R;ԍ,^VrYʀy_:4i>↵O'o^iVŭA$o5mAwPWܬIqfp+)52+#"į+}A@VL1]eIc󼍾gy|'mjg_k5a/Nm<}ey>v#kP?ej^E_5xo:ޱFco6^ڦg;j> Ҵ4k=Jk{ 6Pb,]:Ou3W:޵r 8Wx̯)α.%c1ymSjp rfQ˲ ^=g9yL; l%:98l¶w~)߀x>OƓ[-_|2p!<=M N6W>Sa^{M Em#?t %iGSnv>p5k&}z-t3jmmPA' 幭A3iy~#%O8ȱ 336ʲ!XL40Yf.cF3/8E~rEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(<'<-oHj~W>$ช}.U}''Ix]W7o5{׶K0 >/~l|Z xn?OLHQm5K\ִ}6dEqRY <|'7JҴXtm.Fy†M:VmB]丞Y%Y]`+H5h7)~IQ /L$MF@_:\4znIum@b[&&4?2 A%٤iHд]GKMZI. (<[K~-s_/>-黷k>Pψ<9ڞhރ{.z蟲aďZ?~,x5g>O]|Kw 5|ix[may ׾!xUY׵RKyoոo|ATrlv{J s8l- NG<&\Cᱸ mVԫ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W|]ұ& lwyښ~ɡkQ@yň~ \x[mlD}Zt:FQXa+ދU9@+ƯQ/>-ƙi.i |Iῄ/ _x=3*_ڬ 7? q{JT{Vg_z>C>?ix⥇χV?IYN ѧmdP~inxPOj5k=7qi uqYW-|O7x9;*|7'l|CS昼3oV"0x(<,ijߴ'ƕk |;;*? :x?[xMwtH_کX<+]HF`t_ɇη~-~ > l>"]s. xo~'&x7__P|;KJo^ʣGbϪxSǼ'lσ0>müCO7X< 繖c(2<㱙L>:V3Ku7_xcW'#cO#wBo OJRj>%/t4d\oiu |]n˿|ڳ/iZ%<=/ 5xH[ ,w4,5 _jKþM "xoqK,;\~WR R2 \gGxxo X68iz8|v[~џ`u#< Ꮚ4][FE ߈Z>OZᄷ/ϩ> ]Xqh3\7e|Kk~~*j~1xzoĿ~1i_-mSzV4O%=i\C[uamim?mQ/f<7crׇ)O Se9WpdX NjYV3uq9,x&p9f3~7<fA$x_|_j$[x ?f  Q}~֌"RQXƟD,2:X~#`j#eX9N 8ˏ(ѭVUx+ZxW^_`(@(((((((((((((((((((((((((( Zo?DGWh_-j_P^QmoZ FKSΙxMn-f6?a%` ߇Zλiz{|\M2m+WûKpGu4n-AtIy n(Iд=/:&lt}Nt4y$[k xmaLK!LAy}A@VL/!u]WI]$xʖӽR]Ʊױ[鶗P-_j0cokQ@dwQ؅tGXym;Ie%k-{iu 2= 6XQ@_/ú֩ie~5]"{K{~xB΋o+_}֭+}R$.gӥ⻆o/ů CWVoJO|cM7ž f+ͤxZi {i[\i{Z/5 .7}eUbishakUcO+:t|ʩaP,5iJTCƥ|+>?tũl~{Piv^:zi=SO3 ,l-u-[FL=Ƽن?_Ĺ8.#^ʮAkq>g33:C5Kxg930ex7↑7ǟįz>>*z,7>h~iPAmֵุM_RKvꪞ E࿀sQ~^'|-Ꮙ^#fH#|;𭎉x~?j6^7^mBYug٧V'Ō.2.+{n)!UljTge|1ywF^Sj9WbS[Oj>+|nӴXt7:Ž?Ŏh6i~_Mi"zFYnMֿ=٭¾z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZ+ξ,xc2x¾ _u-UmuM") Kee`dg_S$0Qᡍ`LԣK ^ [ F*5UT*5 I5|E[-K[_x+xu_F>oo|H›w>֠eC:&Kem7Gu5g5|G_? <}{Fz?_FOU/f泧ߴ}eNM3|I I\r,f<d\Ax-ܟ)N<2 ^y$x)s,w|7a0JENJ>u okg? y&o'¡oW|>[W=i~)7^ a|qß/l . vּ1j^:׼Gx>o+GWo{mf/ &iyC tax-3,õkg&e.x9F? L_ayg4^U㿳|8*Vv?>1~ѿ?_Fω9վfEY|M7Þ5'xO _jgR_ïj,l+? I;%~ߴRDs3]KxM~%xּ1!x5 3xo4U=5}Cźo|/E¾!i_φeyë? |=6&|~&{t?ߵ ]O2j:s(.t;O|+j2ZwqG\a3rpjf|5ļ.? |`rE&U?(i +_cO[S7߆5htX|)g9%MLZ]|L;ihZX?X42;__x[vzu< ԭ ީ<}*?iե OHtu?rCM`+D4*n*/)dWA_x=a0X<'4Wg5s\8MxC^6?~/+|U/?|w^.M{O5=VTE[43Msq$M|| 7O7$^x!N9&:c+_Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh? kH)Zlt#Q/^Rx? GCx`ne%Xhk?| hp%úuƑv> +}*{3U?O(׵NdYIFtmJzkhMnekggl8`$U,Ř@4 (-I/a}>ӸkKhWA=uqomsmIvEnMY|C fY_,r[EnPU ﮦӮk{kmbK (9x3^;t_ںe[[jZ'=z捨p2ywg9M\_NͪgyCx|-e꼽JU*?1Fp*r_~RZ|Hgo"i>=?_{6yߏZoO^$KҴQ\|u? EHh馯_O>&o|w@4Z}Ť6?H)ҭ<9hv šƚz^N>귊"b\8(qYŵ3\ ̲), VgiQڋiq>,q)c5g7+ 38:Y,2܃ bᬅe9QKb%7C+O5 Z;ڦok:{ ^==}BW_XxRGe;3"σ'xMOIWm^9񞻤[WZ}:ngssoE< xg~-mixV|x^$6e6:/|yxºo/dka૰>ѧ9oRk]c33?G œ#xvxypL22)UȸnUpfU؜.UQF/D_s|O߇6%d5Y mue89Zg{xzHַMGi7ٷOj oj6a'>(|gHICOhrqKx\iQ-"<:T) M+g/{fNc>wy3oOa729.}<]`(e<=yS,Tj0ԭ[KURh9д'Xs$B!mV | ?K>)^hUxZ(e@zo-ҔS IxO:W<3xKC[h4Mc)i[Gk r +a|egs+ (a:N'}|߳jMN?OGjke&E utYFWWtN{V/s +almYmb>-H4 W!x|]kuL@|7$w#~x;ĺ+=_—F.weׄ*ppmy1UWf9%lf6Qv]a8+ft5\.l|%iTjI~^)^1׎h/[~5;[|wsjM?~Zkn(7k^g#1-{FXtObkFºy5 _Gpn??p |' {qX l3<)R`qY3@':3Wa韆 >oo?]lf#٤zsyxneaif/@nr.yiSRĺ_u=$hХ}%>kBukip + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@xM3}y4SvmeN 22c2w[[91Ď`HqxRY>FӠM=֧wo 6Ň' H3Z [%x1O 0MŽQH<2)2$R#+"3#RA%( ɇۺ| 5'?&Dà j(~O|}_WiAO:֢ ֵzeַ-cK4k^֡iik<[BWAkn&xyb3$l>PhV5al=)b1thPN2VZ:TS9FIW}%/%{:Wtx5z:7K_^vᦿ,n4 SO5~/io >(i5+O'wtSY"5?: v/|05mF[4;Ll[SV5Yq gQ0Y,ν(f{*yt1Jcȧ]b*R15+? .N]:5e쭮FdՄ?32Lqmq6qpn=~SfNZYeqUpy7,8jجz,.[BqJ~}xo|)l'u >tqm%湮x{mO:D-<ě?dZ'xke%|յx> w$Ԯ}LYj?6Im;Fm4Vi=o%ÕxŸg,>m )ˇ(0O&ymbOdWIeVQwZExG~nxxw@,"kWZ[M7JlG [xTE,:0<^a0\F;PXJq8^/V4p\.g[V)PJVNe)$ÍUm>.0{K4˯|*>!ڔJ]>XiF%+p05:U^inis70XwwrOss<1G9!TX̧B? np<}y\kk/X'S}U]5tՀ6Aj+j ɻ2djQ4k h/,o%xn-!t whdK 9U Х :8ӆ!EДTcYE9:MlG4[-ıM3QCJ^IeʤqƊb&e)(9JMF1nRvI%mս|k~-ϊvk~N[&|9ws KŶdua,)tՎcULe*1jLU(֥ eRxSVZU9A*B/ L +(((((((((((((((((((((((:Duv g"֥n_k@E?,6^>7񦗪Z΋hz^sZkW6̘kY%|GyZ}~>ž)x/FS~>+xt:Ţ0MܖVf Kv_k;?> t7mt9$N->YleTL-){6ʹ@_PPE xu|otX#o^k}.;Z3/GW j(cƻc~y|*_o+?pO>z?ھ׮kQ@q>>šBk3 Ktr['a9-i$E#ݖf/pcURt|"&:spu)ǝB$uH>=/(txPxFѼy⻟h:>&>xǾ.ht ƭͼ j^x+=s+קx~5xb7xV]f< !:4 8~ͫc^ڻ A MxP\[=7tM;t]3׀jm__gUD_Ӯ|Y]@g ?Tԓ%;ϳAqe7d f| gÜw;a93" u93gʸ*iXUv?O|.-Zߌ>!XxSǟh4L񼖾))5|[|Zx7U|'ݳ=/=sd<ς7sc᧊1x.7ExLm¾ Ӽ9_?|>G|g'\k^?o _GO[ .' ۆ+a2eaK>o[xL)33exc|hR+/^0wBYk~'|m^Ѿ-x6?-Euj-񅗆',!tωN{{\y%n|-sßt:7ufϏ,u-ST״L&<<:p0 VY 9_|KYEӭ8ޚ|(|QaèSٓwo>+ɨ0ƩoįW~7>3)]ëXKc⯄nM3)!xd>"xA}h7Y:V;G~,cocvibwgҭ1uF?־ ̻-%҇p'2Y6(7 ee,Jx^2eSKJ|488oZV>-BGោΝSß?t:xsVڔacosO|;_i>k|0$?h _Ş ogOcx|Ex[P ia?8tiwv Iu Ǜo /bcq=^p ?YV ld2r:JXelˇ2p, <%|#/𬚣r.(LqKO} wm29u f =f=&msEbTtM`p8l&jsJ7RIsqP"Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhCǀbmxXmtoo~OZlޡ ck~~D֯(EKG_ xח 3i Vơmk,5ȕY}k:Wt;]MW4FU5 I#eaєX+}A@V%I5f!,t?`Ӗt bIsj)fX Nxn$.nnu6-I7 c}L+[KWK2:uq&qsssGh^WAq]#⦷e/7~/UJ|=chnbѾ_WV_xڦk/o߅Fϋ>G jF^o(I]v+26]iozFx4? xmum_Aqi>;[J]ߙu.[/ j?i[{ld y~ .U4X!ծf)k%ci W 8QPI( ɆL뺌^nvi:,Oo5~7y;<]?G}VL2g]bsId|_yoI;bh*VEwڷiύl<_Vֵogntt~tڏ4V់4'/}[&OE5?x-5=#:Iu=DŽkMTltn,{V[ZT*SZkʇ(Ƽ28{XEQTMի J1s*􋃳*j0U>gW-Y_O2*l/װc,.' SңdTS_?VӾ= <=i?>ja_O|F}jTQOi^9֭t jZl3C5sY,R\EH~ҿ|?. RѼo¾84;Q '!^}#ڕڥ压y{ukiz%̱ckx5N_tʛ4U:iԷ*l qsK ۥYV9xC ?{`!yDGQtG7ff/ړd|M^SE߇|/n/ҭ~!>STaV[o`Hha`qR^Ya9CQ )ֵghl5]E >+xj_0S/mOx"Ox~|:nk}* /].MXEgi3[ tYBKT}sxz1JpՍh:IוZ,ڷg]Y|3(R|=*eTOx8Js7N rTJ|%/x?N_>%Tּ/L^A%:>y#N8onnÍ/?t_^>x'|[j+? xoåߟjCf8|$o|_]unj/o|@WºVoh^O4?Wm +&6Mg`U%<&&*:T*RnPZJrZy!Wg4)1+exPץNt#6"E 4pQUJ'!>;o3#֓}SzG,1-&Yմ(o|= x;D2[FU~|W>'FG={C|AgZ-ޡ`m3[6K)"֭u;h"^k:tgAԣZ3Z2R9A8E\Ooa<~yv#,2}N1UURt煭B34fYӗ$jJPS G,'xQm?Z l)/%ѴF+H .&&4HK01.j0QSJcJn1c)(ݨO d>/|H xtJM:Ï|NL-6mR vyhpkuoӢT⦯ xx{ߋ^\寇Og+:FZǧxU.4ct;͵32p.[!7ѫO9ͰX/qYS7G$ř2㳜kR6ur4` ^;O> |] 'xCPIeOƶmLdžmN-P"Ԟ%PC~s']CgK? ɦ xú&A6_TH(P{y&?̩qN <%W+Rs\3[/_,\E [k& > 7w0f'fiS\=ÜIpqecx`vaZCG2eQ{* y5Cg|/i7?h¾7OŏZ~o[~$~?.|=~kZխ5ac n,$o|gGÛ#|B_˦]kf~.속e{鷺5 iu~d-*O7Y5ÙSLڜVYxu3S|  \V/( Fl66Yw4 ~,3 -/Z'wo O2;Śn0dXD2~_⮭5IƋ/S5RHgjڍuU᳹$kq9tsfŘ(xX0쿈8e8۪]XHҟ>_OUMSJ%SRv&{;kɭdhi 7dFb+ (a/Nm<}ey>v#kP?ej^E xu|otX#o^k}.;Z3/GW jZ^hl56V767S7zekc>6ݣVRjIm4ӺiSOT֩ ΜRN9Fp$8N-J3ԣ('&i4Gߴo|Bk|#~0|yW9kaFMcG#c~uͪk7~5 {?kKmF{Xl,TS^qg8]RӞ 5YN#5^c,Dr/|+'x_?e|<||a^*7mG;^<5hSįU֐)W}C7Yx‰BoƑ|:~Κ֔>-~ٿٶW7@֧wW)xQ"D>)*iz.5[I-݅Mץ:K b0!RTN#n4ڣ4.ag.)G5dka((S2V)թaG C-hR\ +TGĿ?9|?kO7>%D|k |OҾj6]R9A#ƱIh~7 혞nO:'/ş?tm+v'kTƭ]rKOtM;KMW⟊iGKxt÷)bpn*E%_ Gu)~фrεs`9|$49IƄG;''YA2Y3 oS/U ,yl2uW_:SNu{ w$|@/N;h?~?kZ;Ʈ<oCw/oİ_ws˭_dcft~_$'~Ǧ9|w⯆^&N=!c|7OT54/ xBּ-s'/3z.yj֥g^姈*XxtJcN8v}b4RP ba3LfKđ`&ja&tka*bSQ%W,2a \bja[gϊ>3=Xz NK>YxVo_c7S٧z73h<=?G9oiIK߁>5 Kg|]}G>"2_6u_|(~$5[h| u ewO9iI WFR|S*PcS**~\ <φ3 Jeb=:<x ю*JaNx|<=+8KU{//R$Zu^(~7.<-ᯇ?kݧ6sg ZOm?9jP:N[~7~_럳߆|+o>9S}_UMCM߅|WZMCŞ gIJxG׭ctG8JsjS(UT5ECF(9`UJ)~xʎa+`cs _GW(U,sI] >aO:8B_ZsU[־*M^|Dg5?}:|g!¿om˻(x:]._ nOQ}z&>Rjjnibu ׷:^sre=;NG֖GfSSʊJ5N(~81N7kf⚌"{Y,fqϫ/Tp8ZT7y`xtM<-/2Ntc8ѡJ4h~hk=;_B1(/ \xV׾~+Rg}=nj^,xNxM[N>w?aO XxCKd^KO Y^׼9m] !NeH?GMII|+-|/׌ |7e7ǽG_$>!6me_cǺ&&K5kVXoI*k\9.3wR3 c\ˏs;`j0x G †7埍-Uu1$WE<3'G$Z-.W&_ekϋZ' ,??Qj4i6*Fm[ݗY=m|%}_|IӾx |H83edʧոw-Ś`3\ȱ$b3JٶYBxz95arpr߳ƇWƯ?M?>#v_Ľw< ,&|Z$[K{uOI]6](koll}%_ wrw*~&Mbix'\'Ju}Xž8v-/j:\1ZZ]FC)a)HC7\2U,q91x<>"keK,j*kߍik_t_ >xRo .|IǢkӾ6|>xTjkkޏ≵]Q<绣<%O*uP? > >1O>Iex*[oo[5 /}&Σ+*U_j:gNk<pps `r00^0=*yySq*W/ hPMu% &-ĺ./NKoCIn>T{-P@Guk}{_[}_Xg~mY]^,+sq5z(ĐYCm;Vҵ>Z,X,5 -KD֬⾂xumQJ`Tahg$WJ2Reu(٦]tԣRhԝ*N)ʝHIm(N-J2]ZkE";?|3+Ǿ[ K_ K\iރZ57Q(' )Bqn2ӌ$ӌii4kBl5j85j|F:|E ZjSU)VVJUiN1:g J-4{CдO hW<5i^i:&Nviv}qYA 1PƑդۓrrrmۻm[oVޭRJ'VVYʥJ%)ԩRrr97)rnRmR ((( ׶VzޝZ~kqea{o՝Oեݬ$60H[̏;"21¯ |*xctz]x?/SEEz:x?Mӭ<^WK-/A4L.y`SpYi˪fx y~0S2x9fm<-*С,.c7SbN8a[[ii6mkkmAomo,P1* 0ƫQF" ͜9Js9sr&ܥ)6ܥ&mmp *@((((((((((((((((((((((:Duv g"֥n_k@E_<#M-~'"O!jVj[YjFe? B Eb2|mF;)_O࿆ D moĞ7f᙮%Nf)-<X}"{Y^m69!iu|?@rjiRvv~%mzƱZݕh,K+CFȎ}MU5$ (a:N'}|߳jMN?OGjke&E>7sůZ_XW6 |>zoStյYĺkFu0Y[/@?<'k׭u:ihZċB4Ŧ0X]Y>>-|Vuk%PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ &/wӴxbS_6.*?G;:obW-uE7<)erxQc{F_JƷk^߈ ^OivaoiZ,-R5͋+GG 𧈵}-MS]:; iW6D̑,"J*( Ɇ)Sbz;O|P_5_<f|>ցN=b0gF|y⹴Fh ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@yk𭏄]O ivWv:^!}.ho>X2>!kF@ ϟ?i\\$~ >Q񖟥,v,mNW7v_~:&xOoM:4geZ!y|U;[|Coxvã6j#uw ?_N¾-Own🊴M][hg't~S?Eq^AḴ{YVDҡX' Ex_÷x|Y މG℆|BYBZ[}:(,-Ƨgx<*((+ (O.į-n$4|4O^x{i?>|VzVrž,xXhdw? ㋽GH|Wt\t"x\SƻIui{`G񵱘I \MQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+5O/h~28hnJ7W~$w5[ @Awj5K+&XQXhsÚI|e4RWe4ngqkwU? ޾4D \xMЬ-(^Z5 nu eĤ]PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ ׈5 C{3^MkCໟwNg|L4_jm .}4˧AizJg}>K>|W__j6]!tV^IujxkN[R[Ԯl$/^'5O4-7hs POsM=rK-BKY-n!@޾cooҼ3s>hw?hh׫ew5_~?~^ьH5GziQUfYj~"Csi߈2%tyxƞ+,-'N\Fkkڎwr^g ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W [;{{Cix^.X|'=Om֭HBf^ׁ4d7f,̺uSضm䵚b#g,LFʬ6,l+M>?&I[ZĐA+,\QFvbI_PP^1\W?U6k7ߏ>8?x|]ڞo~#QKUЯ<'5ޠ|DC߀y't? X*xG?|A⏍jRAna4Srm$mݒIjz$lBug t**J0Ns6B1NRcI6ΟNtcOմ=SJ,3SӮ>ymI Xucrm4MMhOT(JPe N3(E(M&i ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W;/> f |Gi6|A:^ B~$~&}B8"ԥӌjBP<;OOx~ᖗx/bNZ= h[1" ;[;*{+%Ϋ; -2zu. QIAq7PKnI|75tw.m8oovB ;3w?:_bA/oGoľ//jk׺95x^qc}q.!D杧 yjvŸkME|5|Q{Vm㭦_zW5/1W^ ǧk6:Va}zzd^{V_AJ*SƬ\U]XҞ*]hգUbڥ/gTi*)~C:# UWOi畸o,u,qY:1nkG9N<o, 1J V dOW'guơ?MƖ|[{᎙Y݇=ix/]FW_;~/I_5]৆~,Im5OX"žo֏}-K_/=φ+~$g5:8nX~u]yr+* 8Ӫ8/o9SQYOR~LҞ?+X<ήmVuiC4Iks l>$Yx F>d?.4ڎiV/~qw[u խ=+? O|7MxXӵKA]6-oƾ,'VQgueaxݕ;{gXu )Qx58S-#RTpqie>I'Z^Fʢ>:<5, yS35upQ,\?vwjv_3/(RmW55Ob R'RBDnŌė YFB%kE-J;k-𞧣i}[K+_b赴qC90N?඙MO?wqO _t v֩ ;v˓/MQC[PJXx}BIBI/iJ=<40,8ΰ9^cCԌi{CZ+N*412yI:w¿M'^-oUO*g}ÙbRӚ-nQdKA= L>5~͖m'û/Zؼ?ᨵ@{E mͦ/It[R)tJӭ̎l!{ĝOLu7Pѵ>V5k3Uҵ;H/OMK[?P[[YeH. HfvS9ΤR:99NsnRܥ)6ۓmnb1ubUbq8+1^zu*֭ZRZR)rrmT<=E𧄴ޗcw^tMAth#E-t/K!O(ෆ8TsTmᖷswgCW<^i)/t;&d]A|[y^r'ɉ4 >MeH|dKAix 5z%tźo>7gR N]+Z]Qb{CΗwxYҼ?X='KY/淴\ FiIfK> nx5ץ(-III4OɓRJ3*J$:u#(N[pRTh H xW-'㔾1Ưfw<%/_%njc𖳫2wlˬ6'cVhGSmq7 lp86愔kuOh Q*F9xߕ뤓>|-/ǻ|\S^ѴI|+O xvn#?ĺƻqGxR[K?jB#N Q<'M's?xވ5^/|1X_?/:'-3DWu}"ڣO ʭ*[YF7:.Is'Z>ЍIJgJ08L;eَW<-!F0oN2UX1|y]6SKnW:o>%~!NxoIBԾ xT ֚ ~hw~'xօ*{.Mogh^ iGn־|=>>[ͫk u|mb vৰӼ῍.cF5v-L_4-&-4v>.Ep+fJj,*cJ3XiB' bThFNhGVU%|E ÌaiTTY:&QR>#W8TrT *έ(N8GsٷT3~ |MV5QW4=KM _-|iDHefش0'Rr9ԕ''kvg昬ML^&*:PRPR%ݒrKvվ#h>+ 3xV ־ɣz谝6K)b׵ =5'D{Ou^)m, O~ &6;~>y6}3{/W:tzE֥hzޗzuޡՒ"k%A{Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+ϼu? ~+_Cb7zƥ|</Ou}O״8çZ͚tV9@)|iݷn56_)M*342Sxgzh^He5+%ŜHdz4h:?n]{Nմ.tVu;k=B΅E -6 (wկlKcӴ˥Dz=ί !]BK a&ٵ JCuohW)/cmR:Vy xRlu-D˯ĺW<1`-;ijxV?lnm, TayNQUҼҊi+Iuf|=\Uz8jiѣhÞY(B<Ӕai4(^i]f7 PI3\׆ gмIa|6YZTWkogyZũKggTvZ/<5{ѵ1}xKYkqiO{b5?Q[{?-sܑA1zIՓpjGf'(paFz5Ts)e$:Ra,?,A<Җ{}-ޥ{H$}d7W>_inLӼqR/!׼?Ck Z]W7f5Y3]l=\ZUmXލ^xzUxUai{kǺgƞ1xǞ0NO:I;De6^ *S6vL-t;yvJ(BU'A^Sat)4Jv]Y(Uףz؊Q4cV:q曌#9%)F*J/S2x/ jo?|K/%|4 n|>Iе(4IfqiiWr\$lwS;ljl/.|Ew',-?MF>7*N_r|(L8F|b8ny^y8ө𜳬K;cs =,,,:/~|i_= kiziZԾxO Sizz-I|;6{^ i{-|pky/!Ω`U%N}ףQa1Yvw,58.?+1|HϢk$%s+_ >'oJM_PU躿|i_xVgN֓)=s*aqX<]O0ͤ\e<yvCs1V2lC,+:H0~п >4kw5/ihAqxz]%|3|Swo|aB!Ӽo85eNAÉxk7gt,hTe95hn&^xH׼-axޙ`g|2=u~9>!cRik6? 9h~/>|YoVi^ZOtM\kZUͦ]F3[yl\{ž6GbU&.yƜqE<67/iM\#q8%̰9f؜?gVNqWSUVgV:B[^#>sCm%0_]){so= >+gzm⇋ux_P񍟊|?c66㯅~ oB/'#oo _Xx%3qyl <)̳.YVWα0x<ʶYbrr̗PsF[C&cv]BoʢWuLx#: k?%x?6Ҵm`Ե84|\oWQxMkRݤ>|lQgZ|5·]K_𗏇&˫EgxuKm.5Qg[i~sO2mG2ܫ6) fr+YF?h<ڬ^QO<,0Y]`̛6;g??߆Ce}/G>_]W_>.|@Y4[|wF;[3'yo^xF< }x/xBotK>1tzܚms-`{:qm_gsN\657;eaO |ii|1)5=yax<7_5s{ 62+]pڎ|_;dYc8¬&-u=aq>5Zs<σ^25ǀ<[.ze=c㯊~яß xޅ]SXye&h|{x,E.\=JxZ:&xNHQKV9Ӧӓ%?f/e,L%|PParTpS_T]|6/ RwUb#a0aakӥ*R{ѼiRx:90a~i -Q)4aú~-if{7QdNڸJq:}+Jl ^TXԧ*2jeS08nyN7#qcW/x#qp\=ia+ek*xgPmG- ƚ_!;ŏKx]GwxbOm'TIܷ?`ٿo]~?? ~?Q?c{?x>񏆴R𮕮O]|Kׇ%.:-n6C4| Z13(8uj aJ**;)dxG`meYc8zxT)c[0C>yx{Z<}mh:4׋|Aڷ||/ÿ׆|a+s, jZ?OƁ{5M*_xPc+MZXRjpJԪО250g[&|=h_XYR:%GgsǗ>ֵ:w!?^n#!X!CsYdcOz?aG u;B ,?;ߌ,˥Ec~w> ^&+tģ}I6V:鴝TaUAC FcN#O EUq OեN.-NtœjTJx8(v_,e\ ƴN4C$*m|Fk &7f\gb >3?qx_>~ɖ?ώ~!'_x;?~KC'Aj|i )%|g|zޡxlI/k_ JEyw!/O!Ѿ |Yo~U;ka~P|~/#>π5 _7Ԗ_|2t9oմ.m+U(f)8G1Tt)u kւCh:Չ^:Ŕ~hnl添6wC[&UW_?jA2~//Ȟ7{k{m+3}K4[ŞijYЭ4=Q_PӤ1G? gpX~|YbzrCꔳܗ<8eXZ5*8u9RxU|7!|D<)Env^/Mc7iow;z{kzo RI<=}6Qruv-~:h'<}^Í2|e_|0W<]W2uƟ>W>yø\"<7C&ܧ4|Jgg< i 1? [FE"<˛SG3n"uOVւOY ï6|s}kDBZūMfo>i#pNj-/Ӭa4;wT>)pUp>%g|+v3oü`e\\63\lļUNy)jɳjtfksU~&薾 񟎭RBa/W^7)}kj^K?9/ _kMԴm|9VW]7=kN|e~7x,~R^mmώxw'~:<3qŧ\k1]xs@5_'ÌE8p|H7KG>%>|3|4^)u ikZ5~?:'O>Űx&Cw+~ʟ],u=f=c'#xUѵ/.gxr]rJ@cǏ5w0e<7g uƷ q:Y6KθO:ϲ~Y%+[5 l)j#T?h.yptGeky]™tڭnt6ټs]xPX[K}XxAX_ -?'{O#Ǐ5>6G SjZ/rͯj _߂j]xZ^fxjRkĺߩȫ+ x}xJ[qpsɳˇws9W*o a O1 E:gm⿉_<3Iփ?9_ 1k%ѿ >Y7߇Eg~M gKh$>x.4j7;vhIS~4cĩN&oxh(Dd G,j Oh|N/浸GU<8X Vfo>◂¿p#_,Uͱ;M\;#g6߅𞲾 ~)[j$[xx74eĺ[3 ;';E W5%-N.F[%B*j֞m+EE (4((((((((((((((((((( Zo?DGWh_-j_P^]?s/nvrzo~Vhk_xZK*EY:ח Jo&P >!^{xCEZi`ƽ& ARӤtoRԮ/ⰴHQ>&h~*$]#:]=żOm2LeQ.Xz+8|R׾ Yq=^K$ZvR[4A'K+hɾ |3k{Z$;knnohHK.ak^~6-OZ>񖏣 :wÿxCӵd9|G{iV}s~02#}w@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhcH\+Fhx\ƿ1t'Ǎֵ Zy<Gn͸)ev?Ɩzމ~|qsQi:&ލ٭zFmxRS[s)4.x/4~ 4{K?ixwM YΒmyg,-iyſ-D')c_PP^)|'φ ,ke2६~/<7ּTm ZW=BIٵhqC@wϊ >|Omo,t 4DB5 +hZ奝٥햰_$&i`3Fdk__~|}t v7Wt ~zk~#/4ŕ4i:Wt}fMu,QY\$p@=Ba+{xb8`(a$ QF#4UHETDPTQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+ƾ0xG[ƛmZ9O&EC?Xԭ@մ*~,ż'̋Wd6ڌ"w []kᧁ4;ּ?h>8͠t,|2|)>kIxK|;?g.xNT𾯨z5+H'o&M({f($TQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+>:Y>xKWzEx|CM2zvYyx[I sAwjht4]Yq8:M"Bbs_΃o zֻZj) Sf8!JfW5o)It*;)7SIlK0hukbq,hCP{_PP^kG_LJ xE5]K7ÝWMuK}?47ƺًHmm& ާoseI(U!qSi5iDu`bԱU,4B5FPIs3.)>6N|QU௎e㯀_W$|R_/7-Ν [u _> 0j?۶CI[%蟵ſƞ8ţxj⇉~%w?fMĞzF/wh Ϋ+] /h'3JB8$3jC5TF#ZZ3hTXx7 O*|)K.f>/,*gXUX9,&?W PqD?m' 3kE x?Dn+d*6ZV 9̺>xWmsz/t-n-G u?'4φ8|am'M5y2V֯iki5{\ӼQ'šVүln4߽7VҍZ*RiNw|eBNr9GJo¸w-Z8̳ )\®# L,z_YVba<$+SYQT*|A:?( 5χ>_<72W[|<Te)5_On'in>5漿ѭ'Ui'_¿/ T񎓤Oӛ^o:[xGVԼ) ֵkdS  V?lkKJ5U^SUV?a\8fhS>xS¬5*+y3ѝnj:xe*%)ΒiVfcz7?>k??e.嗌?*~2-OM> :ťv^ѵj .+Wg>!x? 2x[XO!ke/&]x^h'\+Gƭooh>%㸃Zw%Qes1XIZ4O4)aqO FQѨdӢ.Cxp>& !'RӧNyǴBlҔgÛ/K8[YhT*eAվ0঻#ueuM yo:}+q[]_߁zޛte4:ՅTi oUKW8⿈> eoæ3cǞ6lll<x;57b:/o񾽢x7X}?Q/5 ~Kg^0[B:xL񿆴oh־#4]İ@詬/ǺcPӼCizjUTtfR4Jm6❓lXz8M-GW NHQ 8ɨϞ9%u(%9ߋ1> wZG+ wzv01ӬtUࠚOxFoO~ b񅶕Bm?W>( 7x;|Gȼcm_ŖfktN[ӷMxgu 70eƹfIr.gb?B|,qY~aV.no ڸ|^zyF!oҞϊxo׉_ < xN65DuwƺNF|kOEMc~ю5I-_G~|h_ÿ¯ x4hv>5f뿈u?VǷZ?'QL5^$VVaf~0Êx WY2]Yo^GŚFm Y٦!&a\6$~o":OM3^"4[ %ΡBU,~'xLenI_ĝ|C#Ė<)]ij PcJݕ`[m:]:RH,.?1Ng-xo ȸX8o O&|F%SWbùUZ,D\倢r|I_o4;5Zn xOAM/QO5ޣjϧʺSş_~xTo{!m ?O7xJ.<7_.i+wv:ԴWH_O2\'q=,چj/ɸg2f 4C!Y'"<6+s1y/ xlv0Xl50ǼFTCV:V4ӣ͍$㹛JMHl[;iKq|KLOŏ|5]g|1wxGU=vþox?ƍOK<1qyoĚ˯x_~i~S=qI˱QpgrZM\vc 83eT0˥`s8JV߳w߈5'}k?o!x~|;O/%C=k>-nwūkSoiz^m/cúM״5gMYGдgV-7LS+{X%CpYcp3sE239YS:˰xm2 rƶ'*գeipXySA_ |ožվ(kЬOxn/K;YMks+ox^&)/B~xzrh-j 5[=#S` wW?m}qĺfe [3 ~'Xg YSJt3<XJa)c3:T'YE%CWlupzR5?OWό¯|5i3M5wexǽ6:> KǪixCBCe.X|J ⶇ  =]-[xğM>O"UԴ[^\2EnbSӡsigYLYGacxϳ &sÔc<#0<5\=UXa $1_|c:o+ž /sṼHjuoi^#5-5Ym&a9g~zo#?xJ𶘚/_~ ]|H^1z1h+_A>ZY,Mam^<7yC[Cļ3|&eYqD"2Y~7aOx2\Ln69īB9gdtJ_ 9bC|;g>#xSF 躞*^B~j|Ew̳i~ou6[[C0[EslE=KO|\٪|*/Xn>5_h7A ϊm|Ux Mj |MmxKOC7b7}r\e,0]+bٕ b9_&oVf#281~~n4{:OM7o;Jw ;Sg&x-+ַ+,Yh H|G]vmncTl>/?ϊKJGaGpxw}'֧д xVK}^ AjF3,8)džx_xk\F_,pq_Y]V n(eHP1ׯ~ǿ2|]'9&}?Kc~ߴG |q=+㟃[iSxᇀtO j:^ZkVZ>"|@sk.<[s[x#4O xN(ok_xZﴧ[K״cM_Dsx })'[\%&]9^ 96kΦ.Wec_5Yi^yX _u->&x/Nƒ 75׊4YO5Eosꗶ':ﴥJ[ږmeU8 cY=xlelV: uj'ѡ9mS%FM0 +((((((((((((((((((((( Zo?DGWh_-j_P^AWϋZ6m/x2ڟ^3ּ]軶O=A?RqI tC; ǃZ߇t\Ki>K;}ők35ޤ-sU[Ӽ?Jt6^25싺K#_]I=Ɏ4;E\( (h??:]g^eKO-'VYmg?|%Gk_~:_ٵf#>.׼Gix[Z-?~P<77f '<O4oM/~[࿊Z/Gw"Uk x~GAL[SڬwuO}q*{o**p,Dk{(( wtR̜\AMc)d_O8_OC$,^ޖ{ Ɲ7>YJyfύ-KԼKx@׼x+kEx?7(h~ >8ԣ:zɭ'?bo|L 3x+7tOZ{]*^!??'Z|IkZ Lԭ/5xJ4;Y5UXB\qXin>0USF1pEl1z!8)iT *k3RמsJ:^,d0pV߈%.|Q??eY:ؾ g߅_ xSǞ)[yH/l='Wo9C=Ω˨񮻭xjK6/eo?9x V+WVW◂~~ ѴVz,=u_$Mֽx_:N*xu|'X9fi:%JL\+9P%NTjLEXNUTXx٩]N,*ff{̪bqEJ[C [Wz+cbg[]bq+tzOy_R3|_ L;XΏsg=KPOM7D|6G|s c^OE +n}ۿ?ieWؼ'rFjB]:rQNPa}8*P359MB (FcqtX|6x\-L*!WUa(ɥUG + >MN"(i׭^uЌpǦ%hX81IiRF“[ѣ$AE2C-|]eǺZ%Ԧ{KQ=11Ĝ=ĸ_m2 |LXe8>>Sa+{L<}&':PI#oك!3|Qu_>x_E^gĺ74è|?-ZhV6(Cihr^髩 NS|S>'x(Y^"-[ #jWo#[sgƞ'n2xT>i6t7M+1 ˸ MGW.mYⱘ0ӈifxl~Qb<x"l8:9Pu>M?%+gMZ[]7Oƥ.f4旾 𮝾^KRqk_1Ej~<MBZC{w=ڣFm~A$ ϲ&N'ga[C<-CpmXfr40XZ0؜.Ǭ BAz1j S'g7wTҼEeᏉ? + [PxkWᆭ:_%,RkG]/5|x^ńiZo> Njj>?owQ~З7%޻k]ƾӧKˆx8_*~Q>(ƙ'pq.8ɿ8,2^-W863blY# Cş|g|3/?>+᷅/]KF|?G=J-NU/ZO 3GIlMPx^7-x%JKH .Y4oտa׆$n4 w Ւ/Q qMlǀf|sfFmٗf|/p>SC!dE (a3LO<,3ph3f5 OGÞ5gӵ ෎|cXkk^6Ttk5 N⫿Z8|qv/4Bߴ 3ÚtX4mN /.e%ռYZǀ }}֏a?5z ?KF[]ޭ-/͎>/ 6yœ?cxJ^ψ9]bc28ؕ{:XaܘʑX>|='[vmcO^ix~(}oK◌׼Au 2TЬ| ~;hWO;<8B?KzCxբmi4^|;kcၡT;X>Lx_y?<+2̇x qb+?q&USKeEŽ#'X:~až1ax--ŗ_C>$B;7~ӥ[?ꘊ ~#%`-|FqV:AB_>8Qgďx$G mXG+<;^_o_xG6mh$S.+9g~,|r-' xǀ|]\@i!5i{i'lfw3q]RGm<ԥTn%4PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ ;oB-?ß'xOVâZmɊK"ZiiMӦO|GΡߏ~xrP~, YxQ.xoú u ip/Uu&k+ai Ou{۝7I-#Q冝{{i0jͭiCRƖVRZ֑s4O}?hoB4υi>O߅5{DQa:OID t?\:U:hVW[- _0E7Kϰj'C|aMlM߄m/&;EdԒJ\^2vw|(宇mwغż_j//gC 4|Nczgx~☵OR wG; iϭsD)? -? z}S WƝ*T& &)Ѕ QtNU?dOTGYKV2K9VYgr=Lέj5x҃pf N -35gվ"/XW3Z $WuS5Û?hj,j0xL[\7_FN_5.KC;7on-ϋe𭬣=7w:Ǐ|5 I:߁Fy᫿xj|EZ:,,d炩URY9brԩVP{:su#Z&]904,,5l~jUWV-`py\ɍB#,u!L-ibԾ/.imsᆃ>5'ď?_R_Ë~$'7syw9OGylԴxnQb=)~'i_ M{B6jZ4Qb_RIa\V*rsUZOE9E]1d01\sWdʅENX nakN:q)ɸCV\ߠsT X9?Q4Bž#ZC֮|%xdwxwĺ%26+|k:msj'mV[mwVүwmAS:-~|'K i7pt<_D((((((((((((((((((((((((((((( Zo?DGWh_-j_P\|7c/ xZpi'5M{ !=Zkl丂Rݠy"Y!ABx,>7ύ|)GF}OIqۭ2DS> 9Wӯ[])tndi=/K+V\ R=.GR5/b4HcȺvah KҾ/_Gƭ6~"!"|WӾ iogMt99Y'9r9I?b!WS4TjiP؜LҊP8F&\֭)ԕOiw&j:^cxpxz_%ݥp\kշ xZ SSkAcEt>Ek? >2Js+i'4;ؼ1O!g}/_:voA]i_Zb" "wǞ/oOAO'!Nž> X\gUk{ e<4@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+?ڷW|9M{_xroxZ_ zٰдgڮkڵZ_BKO qI? xY_l-Z់SmlmbҠ"5;YfWVD[r$5~{?i 𥏋WRM{ojyAaztHO6es"GIQCM}A@WQ|_oO.1u|Fs]bW[ x_F*)fZ5ލsu[kɬ5)cVRaRTRJJI;Ӳi,ݙՂGWIWJ*U(BjB2NP&&dkF|-I? =~~>;|Y6B|o|0Mtω'|Yi6273ũQm71k^>-`о&,|w7Cx㏈?gO .~.i[_:ǭe<+EiwZ?N ? zg|wYGi<1e&o&INxfa_|Yszč>~J\rɩ MO/ƏxCF麭=]ޥ>ou{io|Y~%?χ> G_? eOt־x[nn_|O?>%x6nĞ}{HSim5gCQ[(R"uS51 NY>II+NJQ)*!U]ʏ6YUp<&WҶe)Y=egJWapbX:>=z?> |I| -/|I֣c#z-_US)_f.AQq<Ϡ[ 헮[]7eo٫7'[мCF7]JӾ6x{Pc7>_:~hmɤs{9SQ:p?\}ib\9eRMSCvX<X߉*g~H+k?f:Ż ⷅ:?Ot]+:jxǃ|_5 Ia76<:ׁ}C@!ԣJbjTӧNU5^iUN :QPHNU`'p8G\+L&F8Xf\¦7/ዖ#EQ*cpyv|3q;KxOuKh|9fokuH[#Z_kw|N:!lltΝms^%k|Xb/^0gi /OCnx|]qjWzE֓/ Q*U*jjaqUR8* MhT.4kN^tG{3 BX8dy?Vg*x:|*<#Nx_%ߵ9.kU{tV~2k>/Z\K|#ᡆu97 xJ֖Oѧ 7,EW L)TT-Vg):~e>ɰ4\}J'C1r¢y6Ks؉V1obdc0مJ'G?W_K/>1|(,? |s? cRtG]s߃i Ǿ&Z|qx[QV5>^0 ?L.6JI/ߎ?l]^]4¾s?W@Vp?߈t馹|=?> W^5K}/0MO(VIWceV4b IЄ]j/<)5#(ʕiB,3oPĬM\< NYdP<<8CЃ⣙(}w0ZTTӫTCNpdi^&$Mx寉|coze_X֗;xf=OǞibG˕=ŧ'{i|F ?i?6uOKoocFGkGۏ .mi<_Yg_ͧj!XiaEUl$hVф'1R8L եVpcUsAӜ>M !f+x_o sxUOׅ51S|/ً_7}8|&&xkL~|Q~f/k\Ն_]BKi<7yoeicὧ!J |F#Z,2Fx9Ч<[Zq*Qjw . gyX 6cxlۇ3FOO2qk^(lcy$u[Pe2zֱpK%_4vTFNh9VRN2ZGrj⛒e9^&+,˱K+ePYzU^eiQKQB"ЄC J Ս*5kjT/Aۭ|A^?? o>'xkģ5b [RI>qQzi/N^ w-5ۍKֈz~ÿnWLw¾,զkZ'ڶ;x "+{  oyw`/w;MxW~vO C:3j C>"ԭK^$maܯNiN8IBQqыi^Iwg百+ +bpxha0!P 4ahҪ*-ӏ iH߻Y.b巚8dMU ,ʂ@ك|M_޹k>>޵oEizfk"׵ =IRi;Ϋ7'?@MO=;~};H>O._I5+ cZ$tC]JKo7L񷆯?k+_G?9xw{?5ς_ 5._E _Ǧ?S@=&]4K+˻;*Ͳ.'+eȸxGw!xWl<,Zt5J,W6|,a3,$rL~9O+ ??^]~'K&W?~_+<ҖLg Q?>ö2uiɬZ^U~;]xDO)\~Z햙uuQYg_> ^&(NoKDing_76YW Sď x(,߇+p*k [e|}q:GO:x{x5="|=KVԗuψZ$.hu}2$i#gk3<*/Qe>YW fX̂sO"Eapg3&ٿƂx7:(.b_pMu-S._ߍ^"xB i.|?տho_!e_ "?>[|dl?H>!^kυC%qxWse_ط3χm4cI1<?x7yvCO־;6x'6r\üGָ/> |.o/xO]*ž'֭-W5jrGkk^ԵJo6hQ@_ 㟆 AŇN6A3/Yh'<{ Kk6[m3_~ u ퟋ5kZ;5a{猵xCJҭx7tO?AUCgW֟Smk IP1ܹgG߬O iRRJ1F-B1{a߈ΫIVi擧_!1TV*\jQCVGJy~ R(ӧRAQ4eR/ًIw>WÚcxND?u K{ s+߲M?] 5=?[5_|Z=ηMkqr/>8߈~-~zƟ{]K“Z/."F\2,B\-5_PJ9ra:R䍹*4c[5rrL,(k >]J J|)C·[z%ljגCc?g Mko 61ok4U|kn5]?O7|W{5x:J𮭣w6rS2ǩN`jK4sNucISSJZUik!5Kxo➊>9tuw|H iYB𯋴X|?ss5ކ}әO ~?|+En4701H54Kk? 9kZ~O<3@e&}.'mft3e՟}5EYZ*񸚎Yҩ.J)rJqU:PXx/S(4F'sT_ c8U_e^4*t+.B9E =6 ,TJ(hs>/GgxHރ{?YTcR A;`gǃeG%9HZ26_W2Ӿ!x7K7<;xBx?Zׄ{-DcYŇocvKN$:*@:ίekEΗ.!rԌpXGQ)%5ASS ugR'aVeNu*kgO$ьӆ զ:,W+{Lf ^ux_:W"anOv_x~7 O[n/mtiisðȡtzM/^iNx7ß<x_ x@ռ/M6+KJC,gu;8=O$/Y֗PN*1ج5n]cu:U,V1zxUUSNtSJirԄXy¯ٿ??w4]Z_/Gl i)o>8oiRiMӴ:W_ ?c߂mԼyk="Soņɩj>e׆z4>$])#T4{>?B5.wo{x|5ezRxdQl>0~aJE 8~xOTY]\:) 0ÆoAuo/T$A{3+7< u~:}/K3[/x~o,KӬ7_ >xVguS_u@o-u[OU¾ 5 Ku-OQԵ=/4mCQy%n 2*|-cGœ%Sj9~Qp+*2'lK3a_500~~̟>k7炴_qwcq'W<']w>s߈5?~jxltO hM ?ˍTrgx3׆|gcZּ n>4nt&\躟<c-|%QB_+4/<'&hV>euK̲USy>opWSgSrl3yqQ|Ym_7cx글 o CxzS—7-[oG/xĖZMoBNc)5O[SBZm#_ xM>&iAcFy& _M~MS| 47-qF j-\Zn!7V>#լx5 |мCyNwL}☬t=c[/EKvھZ5O$:~E~|O7^B'yɾxH񅮚Uo,!7(8]0>TD8+.)xl\c,5hVoI.nY[U+>~A߳7/? hW9|)ſWco{q6f>2kZv>hdeRGQ|^q~8u'UοԶ].M;n7 >+Yݧi|'.jgyeȺm|sٓ㇄__'K|:T<~/¶ 7j/!WËO:+?/ 6O/m3OПľTԫᤰ4l>&*bbׅ5 n4[Xrj'M8r|gV +Jx:bR,5 J8| ) PyWå0AφM3njiY5x[&&3Z=m6?~,kui6 _t+ 'oȼgKm]kȼM_&%_῁bjߵ?>_ o>' ~ wZgn<_ci:>xb x u-^$Qa/g,=o,d:zQZ&5S%9άVnX8VVSVUK1O S2E,5,,(3j9,RЭWrRJuO$ǍoV?l 7GcKG-7|UM wl5>=+k? 4?z3Zխ^-KZ[~Y_j_M fy?'uZN:拫Mi't:to/kOQ?Sn¼5IeᧉS/hfF<>uRGjj x'Cx$/ĽZ/ÑJXL/f.peFUs:" 9{˰,Fa:ezg8i-t'1~xfG_O#:sZƳNǞ&KiگuLCmkxd_kk~(;$h7^/t,3׾83𗃡DN.{4 S]wHTmoxƌaSNP_V*T/G |.tXZ4u׵TkOߒ9Oٝ,VUB qtq`e,σiTy &ur&gs:KOZqWQF/|a|VI{`}©9ை?O }xľ!|3ď? ^}5ږiG1cHx35~е?#ÿ6+ P5}+=^h:j ԴXWsptpXa別NXz1ҝMʂyεlb)bTp򤬪$'Wa7jXZXs <,U_f3U0t.;{~Ծ(x?7 xwmx/A'N݋r⏌'x7gEqZ ż''B.O֡Vc l*050҆+Kh^.⏆ߴ* _?i5g>$X։Gi 5kȼ-Z:G|Eu>-8O虶vO7ß |'5DC:5O<}/=oKo|9⏇vG^Ѵ|AW{xCo NN|ө}N' V?cVqjhµXӬNGFx)丼n_ˉ).;{1>#'J3 u,.>2qaƟ?6K?^Icėլs~] Ķ%g񭶙3ƞ fyr_"~<3C_gm6V{^l~%L5sǿ#1|E>0Ov_~k>+;kok>uM.L]sxt\4zʌ, 8:ULSQJu)RŬCuIJu)<=JI5?+ɡTa8Z3Ҏc2gp˩uYS32׫ְO+`c G?<7V|L>2'_[#hZ֏O/|!o JG hu_j(o Ϯw KGM> _ '%;C_1o8AxXk0Hx]~-% SAQҵ{ψ=JڮqQVQQf8zύ\kr2?Q/`o7_؏⟈OZ}RxI]_J}$YK|_n+k[Q|E-s?7i%ğ}2_ X8:FR-㿇IDjuaԎ"ƍцF8aV+UxUc0C)ʡ$تYWUxʎ[Rf2,,0QjSĸJ:TqQ|YWNFd_[Ⴗ;il?sF,ڶ.y~lN'kD=3Y41?{IKӫh:&o-64Z,g晭VMxxZuy\W$# ^Yg<1f5))N_aOB|ʒ-uO_Mkco;o/|l!}o^9[guHڧ|5 }9&> =U)t-jmS~9I.m>' M_ |7}hn< 4orNut{d4n4bmrڥYm/^/U^qq*ZxUUZTS̩Tjר<553)ѭUhgTSJyH'NU\%>O(*; g'aཏf[|1qu<  <+4s4i,NZA߁os|-Ҿ\iw? ߇gq_Heӧ%.$ҚB^X݉5_ZwUw-.OzG5l9,jitYԫ,-|ZX>~?uUkc~~>?\ൃCmΝk࿱ZdojwpBMuq-gُƞ|5xz GτzxTS@ei.:UݻK۹um6 6g903ͩ,k28rSĺSw{?etS<έydiCx R\/j5RoQ[3uhyYFU1WxVӞ}Ÿ>x֣>x3.u3|.xw֨uX:tWVS7:do 0'+¿ uxվxsǃ?ZZ3FzUr\钭,n2\ؼTxjsb*iÈW-Y^Fu8k|0E[|'q?{_<[i}57iD2HLRGfpؓQ+~͟ W+kZuo <)h붫g~ ^ۛ.`&1MvSj*|Me bVSՒN.NW7Jn%'~of8c3L?C1ڑqgʪl-LyVOVT soGo_ CVYÿG槠kJtsVKq1'ٿw|U~ cw!W^ys:f1Ui\f?)OTu)aq5a)JdgOZ?'q|#ax]5nN[z^]ߋ['6 kXsᗀ5o5Ox¾|sJf2j1д j2Է.geiW\V&* *XKU)USp[YZq|Eَ#gpͫ)zouOZ|Qk:fMwz4/nx]|9IzSNj}SÿOh0|LD7W厃p&1 & iˉ=mq◊;FH|'t+KtF.,[9R9q$gImb( Ɇ"xGב7Kt"Mz]s_Zic(x6]∬Fid1^!_7 Vzx̳ yQb2Sn9<{ Y|'>5ktᇄ |\~&Ï8o}}^㷂I^2ƫÚͩCV^+vh|[~*|gïxYi|I}[]^2=?j|3G<23!^𮍮\EoiQE {,>Qr lKg9r_ Fޭk+V5K52湹WH-m- Hy6K[~O q 𭝟~ר\Zqsf_[U Kq5#F?kZt8ǞHS86?|"oSV~Mjpj"~;^)=etOiZ&hZ.xa]RI!㖋A~_ I]in c|o>Z 3[̒{Ř<9LVC*3ʼ;J{iG XSk68N gYN_rV?.cs  :eC|'|}sO~|@_|C֡xP厙ãxºfi.Ə}S𶯦kƛ]i&K>>5 -i"O.ZRӼ~")[TtGt{ RX^iWvRq'&o\IcCpULf6,<̯ aapѯcpغx#*{kӈuU^;[9tki^c6k{9\n. ,E*#ʁg4x7JD4m#DZڦķRi5 FP.y~ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@|M.<=tK+APSE摨ۍgIy|G Nᵽ!olnn#RV'~|GB|!| aΑ{Xiͤk"/,{YQvր|@xow'u)\o>$oX/|?qswS '$/Eyj0SNբtWm#o?_7Aӡ*k6zՏoxgHOYV^"Fox^(A~QCl3s,&θ!ȳ?Ys158c3LJr \3~\G?m!S}o_Juς( ELVZLx:බҼQ|+&mmf_ᯆutž2uj36ek}ymi6w3\\~d>CŞ!gno8n*.\5g9;qM<߉.5+q6:y6xUy~|tq*5$~x| ?>Ԧ<M7;+XЮot}Z;)OiN42(/Ol'Z[]E,)WPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(wĿ |$voOtfyvZm5{.Ib4k,?m&7670RMÚgA>6|)i_Ygm-ci\G6jڶiKIdI"'i"FHHLfXY1C dbXG\1+&k-訑F$K}{h;(Y![m+/,t`5/ᾅc~j.7 Э. nOtK^[Ҡ+I -fvSB|ѭUVTN:JjUe U%& 49hkr|#ƿ Uѣ6z;o]7_.UBNo4}cK߇/vоx><_5-^kڰ!|c_k-z7oCPk|>)Xn+0>8<_XWcqyS 5**e15d| ?= >xV~/XVoi>=~"x;R|E\]i=Ɲ- C-.,c e/ i^>$i^!/Ėw/zmO>xW?dDLouk|%|Y[iiڿ|=y x \f_E7qx*, g8g7'ʲʟU7(/U_aFUu[MWe2~ h'E׎|+c?Gqq'$-_B). +-O |PbS|;OvomWQsᏌcmXk6 OKtAxrDQ$:tvud/(ܣ,dkY3V; p XgR S,5l$>$_j5xwffHuv]*mOPapNvKk-fwsSsxR}ᨼ").|Y#?Ў=Ʊjqkb{>鍼zpܒ7MW\΁ ޱ~x|_LwM>lw-H`oچ( }A@V%pjҪ._Cs2Hƥ, -сGGwX-YEۯ7ۿ>-[O o<*}Xݵh6ѱ:HXg݋\=L.oYULO9<_xC^e '[nUi<_5λoF[ .O~&!$g#$ _c_C!6_ۘN~~wn.3|MmT7>Gþ uj oIkZݔsX _.k9RU)cqac3(5qLp:R MHQM Z߀~"_7N |y/Ҽ+ [+ZW= R<1g-cZx'Μw Wsi#W=SūC)^S>_xǰ1<7 z'1> kEsHcMt;b'^.ʲ kxsW?׌UOP45XH>xro)'t\F-_]k~|i:%Ck16W"_kö /N̲> @ygcr6\+ü3o?8dEYm3l'|;aq9o(a(`@o7?[N]SPmSQ5ml\Z'usĖtoxUBtUl'~x>7iOx <_ hz~jkw u;.;.6A^h^om*α8((((((((((((((((((((((((((((:Duv g"֥n_k@E~, %="A^k2_WͫxR|)}2|O'/6IuuOQRG/\M\| tո}jM;Vͦ7VZmղh_gcw|`~ƿ~1k7|[i߳ơ|Og ׍t%V~#|eX{:m'ľ2hMTW' -n!ȸW' Ni2ɳHx.&4s\<':jq8<_1Xlۆr.cco>-O>^ y㿊$io/Z޺f~2|GOZoK{ee5},3[_{ox-mk_ 5-NF5Xv'|c|n1\xw57ni6'pGqNf\GÙ-\̏[eF/V7/;8ʱywוZyv/)gY0kSL+ذx1|K~ǭ,nj,4+PՐx{~ڧ6Ӡ72^}_4-RX۸Mc[⏎|Sg)+< |IY,toxoW<7 V־8>ݭxúm֯Cn+qW>aW"­gF׎~x|Cڤk^#Ե=f+(t'Ŀ z Om1fXl,fw\/S%|ayX$q8l4qW3N\ K.((\rse 5x/?4k])<(VOCծPSx/,ͩBK/y/f6W^x'J4+ԭF7Bk:3FVd$ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W|U!֍[x 6GúW~!|:.㲻PO컻ԬoxC(>Ϣ7cCRxo4Kᵯ|)yk76wL'Fծou -Mf0vcIk׼+_x3> m|3X_yb,XHaA1[@[-QH(( ķMZ%hMh~eTA8K-I bi"#k莗 ]k@tP|mSO?ď>+EBoDcx*>A_~%[7oݮ A=ל2k:_uo|[|EW %8M^5;n8Ӯ<"So٣xLBcWZtm#:D~' SGRt]W=M@em&Qp_G?6M6?Ǚf/"pAM)a HzMi~xJTǩ/gMm|eK?Tv?=ui"`jkЏͰÞ(쫡~?G>|h_^~o/iC{H"t>%|oͤOwWYk?PmÞ",|L* pdC),%-,|:g5K2ͫ3̫eܷ˞/E.w{كyt.oe(Cy|S7σ^NfG‰}57w ,jr]]FXI^*mqF_T1x?3*`Ĵ [ xΖ3"3~ ʨp09 VKܙnDpщ#cheM-CiV֥74 hnln7Ӵ+YΥz4ՃLoAK}i]|kii+uEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(i -Oo9*z׉tj-:.ܘ,^/HEAwP:hn(kI O|aa c>3+亟'Ea! F,#I&LWo/ y}෌5_+?uU8o/ 6g ˉf/y&k8(P[C,\Y0PY0ɝwQ'Ey~m澾oٿ&|'g5C֯7;iq|26sw|;'H^ G& `)բ2&5t#G9ʥ0rb!0 .V1砧l;U{|I?hi)9|?>3x>'zׇc㯇_Ŗ OC-kxJl/olmDؿ?_=hχzT^ 4wxž2g?ƞ|/~#'qxc|k5ំ2xs^oyixGNZ +9e~cY8LƧly&VdsN 쟇ZYvU[-z1ٮ'G0gC^? S) Y'?υýzmsd:DQᆸNnXx0sS"Vt>P|KΈ }O`px,N.p)JNտ9wt ?|cG>&Gk3^tu bKԯխ!W{៉~6~«?jZ&Sׇ~>5zDީៈ:| k[= I&I9/xG axgM<182l_G(\%8x2>Q幍X`c38k˾P=d_b6RC. z f x[mAii ˣ?{Zo3T[=.!Y,3y,92gE)ƑۏxIoiaT'Fkk>Aux_jY%$ks}aeinioaİYZB CEj*r+&뺌e.+讒/37P|U\wo"yaאַ`Ik tBU>s|]pћo/xķM:>|Co4֛q#o ;g8kgf\7qXqm,Ë2|6g_9Aʸ,b񘪏pbjץkR׬gei xnCgne_Aj^\ax`I~$~.x❏/ |/OIҴ_Xcx^],ŭxßu\7u DOeW3w1q8Eq_s,̲Qg'/,ƿ<9ٶ-WQԾwG ]>..f/t߃?mco ~%>:|SIa^.$Z]6;? x3obY=wW7<'{"efOdx>+1>A yOs{DŽ*fY&6*qE.8 xjyoBU,zv Ƒ\5>}t[[ҥ\^i: G"uV>ĭg7D῅~-?t iV^8񭽆_njixZ* [OukO hΚMz=Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh}?xSZ^/-Uso i<}kP]gG^%jZcYj& ;ZǒLD/oDž~c+xš;Yv#kP?ej^^oO(4'^#m㿆ejz-dž/z"iQKs,~"晩Wt.K ĩdx&_X~0x:ib)+¥l<5ZeNT4FN3j-> g:-k"F |, ⷋ<+ΉZD,Kϊ]MYjej>??|x &x>4^#Kۍ3ú? "xF|To!_Nƍ:@VgmO[xlͨI}g1>αe*q%n2\Sdxx*٦Ggx,/ WR̸yn vpï^ W? /Wş|-炢լcg۽BFxĺ.x_Seks%޲iM?/ [~:|߁!>l3=^(cR:Gu|'>/j.4D@:V&'832szQ<wg40YK4872bp}G19>oқr`W*`G:Z|1|C4_ Kuſ؃7k MWAw-{Ώk7Fh[]xÚF|Sqyg+7<3PDߵ߂(t]Ӽ|i:_m%񦕦ZP𿿖n4Sü[d* T8b8ʇ 0N}9rpf9Ok_Wqyv&;Î7ڳV>x῏<Cg?o]#H=`N6NSG~wU՛?woep'׾ ?) goxxPo2nbke\>*_h~0uȵSK^%o} x*yX8C\_|19' K2o<< U~0\o aqn/<l#.Qs\.qNL_;|j<4]cae;ƖnŷlK:O GOu;]?S5;sjuvVzOt| WI{o?=4=;|7tKRůx{MxK}z͵h -y3/ Nq"qn#8bl0Ͳχd8e2VUv'2L>L V|FI|4|+^# h-u|-=ZnuX:d:}49[KILHޗ_x?4bX`u]%C N4iƝ TpTa)>F9NMMQ^PQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+O x[i|H"[bmox¶77LseiaT,յ^&WĿ |}"Ttt])1&B8"@kk χenHȉɚ5#4;EӬ4&NK{ ;O `00BhUP (Kvjh~c2ϧ4c+u"O}u6p\G\k]m@U࿀:xb_bpti)uL74-=]hӥ}gp_!y!nYf_T=DR-s^ռ(k\YMk<#EխSTw}Vk3%x&|Sd|AKpx|ǂ/9ѭKK3xWXӄe|T7bjU / ~|! 4zhoKGcFDK4.<ǿIpZOxu<9s]kau4Ic1~ ,O[WZ*|O|QZoOeǍe˨x<ĶV6VVvc|b}|f";!,njT< fxBHCC WaY>bqAGGt Bt$ό_f񝝔Zeq~4]*toK`I4n߳M7α<1jg-wS(xMh|a|`'uow5FAǍFFFdu:/qZrOqDja8O0X5\=|6_ a0 GajQGÿO :/¸ g~ͧS7> V?"Lv7&?׮b|Mwyon,'0DSV--wW xSֵmCğ~33ZEͅ惭Y|d' WxjKe𦩤x­af<;q-AqoOjb. <#L*XJyVC&K[QCٍ %96*MR~ QW]+RҼk|E?x●/,?jҴ]7ÿmowcH|c=2O1{dVv&3#v~+D[/_~| ƚ?< xKKҿgy0>:p ɪU 6/ocgO80./_G<1+Dv'k瀾XznAֹn#zbЧ0][>&R 'S?V>>|!ďO-?|f]վ0 %|Hѿd$Ak:ݦZn'uV߆8 8g3^pψJEr2c,'Ef>axc:Χ9+wʰ6 `?{oԼ7k Pj~<㩮ŏO$_:l!:oڼhbL- isImԥgf8|Ok^.JSMCPWEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(!meе?KhO G"90tߋK = 2 o:[5=oj_d=u4)t\ w%ME7O햗h6V:-mŦXvptEFWH : (~O|}_WiAO:֬g^;i gJЬ&4&+gQ%uJGtof5^JΡ^ZG5Q>|>#^ B+N :֫% ThѧTVN#)MF)Mx Ć]Gƞ׬5ϛYxR36Zk]}(5M9G$O Pl%tv~1J餅,:&kYHgGkp0#o^phbiO0-O0c\yMK5#-50l[e:l2Gn  xBmv<[߆7k_Yzfu=2Pl%eSxp?CYă983Gax]_*ᗙr0+.'t-b0}S V mK|➥ yq!x^~}kXnaeq1>5њgi3~'GC/_]eXVi6sj:^ig5;頲 dx0]Tfp~.UUFUbiqSy`%rѤqXd<4(Sa7IHZޑ TsVzҵ8GԾ4a-bOYc-\x6# Zx|^OΆ"J5ԃ*Nqo FJi(@((((((((((((((((((((((((((( Zo?DGWh_-j_P_7|yFxg\49⹼2]Mb:PoxCd}6(vVHYƿ4}>yy_ [hBxRҼ3pjuxS'or W-m=_ |;?f-nĞ5&c}iZjve esA -ex2Jvھ+&2XߤF3ʼO\>wo?g^x'=CX,Waol>?h2#ZFovKzwjeKkK]fas,ixcZ::sq炿%HJ v> w]O |#u.?0aּk?/x=)5_?K4[suG/>{/_ΫweOkZÏ O?C\xI᛿ sX~4/+q-^%˱~!VeEq3|O,.OyVU52TK4]zT >!G5&u㯀4!i~ XZּHxv 7WbGK~^|x roŨxv?Ou2ŦV|04ccK\}e$nep|>C0.nNd,05|7y3^I,u CϏ>-5?[F-1J/|}|[CU~^_tH}Bx4x'$O㣤Y6si߃tW᷈[؛u?xǿ txs]o5>.~z.mk0OiO >MH__CE3Xãiޞxʸd5(gyψ^8VCOe6qxx,4rÉ19w;lu<]lEOhx3e? SKsh~%i]O~6hrYkqFmDK'&ݥ }6VCT|խ|/hoÿh oxRSI׭Wnfk[E t4Q888g.dy~&8L.2 *Fy *52v.OƔTD;xD~'D{, i}heߠYϋ Ng/ZWD_X-Cij7΅I--/\Yxt&3['?i:ΚK6vg}w6KeAk}i#"3^[As " ( e_h?_XxZ6pkZ7foh)/#msĖ6vgO?>_k:<[o{qx2M/MN]G-8𦳥m^)i׶^A*F(((((((((((((((((((((((((((((( Zo?DGWh_-j_P_=rm]~0m7LfOu2Smc&䳰eR}-#Cj |om|nGu]|8wN-|&>aXC領IQOVDxx;>5t/--~~+oZ..k~?Ήھ V~Y4Ӄ8SM'9('hݮM3 3C NPaJ3iSJ*QKd$6^"|'44}ĺ|24[D5o ]݆b,5i\ =nPJU+T1NtVUw&2RCSʮck<9&|ڵo/Ά3iSsѩ ЦZl/&&"b< xeSI9ՍDk)s/Eߎ6_]FG/5FGANck{Vm'V6>ѵaѭ˂K/V T)>qYJ+AVNsnx983œIb,.GTC eF"V˪:xy85(MU6O}\|ckW7?A|acV׋|F_ m_:g5̼$7|=}z}ywǽ/R{ψ OsI.yao+Peᘴ[;;3PO+77UAx=B CKRbe-K W['GI4FiJ1W2a}m2Ye>JEBU'^NnuU:n6xsg2X]V9^:X*Xa{un/XKbi>k|WeSx[ᆡKD| [Ս/ ?~k_| >o|Lx \j_^3i=۵(> -ǖG%)<&%F)ѓt*R*R|JjT)SL%ÜCU<9<>3 ש,QƮ Vn ]|C TN*)IVI8ŧRuTZIlޏ o[[ |RgO3Xl ޗit:m䖺WgӮO'O -wY|+o~ "gNT>"a6?aw\xzšݗ>ִ綆 6E.-+J*X T*yK=:rZr:^TPHKye'հqupa$&z Oe-լWk}@m&Fc C״|bYSº>//_s#:zEn4}^US#,A{pdy`Ue<&&7NBUӌU%NjUi'٧Rj7Xxc2 C|߇r\,XW/J$gUc?jFyKWRn-$MqNU!,5e*u169{c%*\W5 q<158w=br&\0[ YVJXuR|˙}BHƦ15xԺ1>~ؿO- | k>e c_XktO\_ieO z}w5ЗxwAv~xJt*⏄񎋧ƺnMo Gmkyqz}kuVcTJ *ѩJ -JQrNRW gY<W燆3XB6# NVbiβaB>u8{UCq:[[s b;H`) (' s\kQדI^vF|_×aDž#xgqn4Mv9};H4^}z~ WJiK> ?RL4>>f=Wէďڷ xl7^/'a,I{-.9[x5{ugqof.OO^| |fX.t#04jbÓJ0JTPz~o<)h?o doԼ)]<3_YiQ^_#]4h4xSź^H𭏇k ]ZjsG—Sjƛy>׀| #5/|K>5'|OZ^ xl~"x^㿌"7Vg|bխ-ǹX(Q:SUhԪ*hBq*!<Lsxw 9}:n>Zr3/ MކW*CVe0GE*''[:AFKu!eo|1~Lľ/{|X>)3Q_A=SPDq[??Uè| |;oxPjZ~Mxz555^|/Ţ[j5ZG,N:S?(*uFxV=sB0c(Fq|K䱞XLVSUC *Yfk+qDl-***)PZpUj')▩KEƯXDaf⾩M2K'5 |`)'FZF໹>5 ?J:.'!>_|fJ?uUOᘣ<% NiCF!,} SjS7\9FCex,u8fu(2qxUl\ZK8UO6b DJsFF/ڿ|Kkί⿅CѾ[9Qkk_~ XM~յk[x'x^soM'zw{+}?hkq{˧/)S+Ϥx7&m '_~._hW#;M'SmWCNOxO[)\$X5?CWtk};ԛg/?k|.x GxO:x #x YaMCH4<7iu]Y^:=ᓝhTF:TzxJ*u05#V~Ҫ }fIʌ+NӋLLFak0<*q p8x8̾{,V9`)1xj8yIX 8ο>,~8ּQj_h>|g<?i fَ)WXl}*9mZ5, 0*1y>7>RT(1*w(G]<9? |W2O>.-,u/ ˢ~w4 "gu_xƾ堿;Ef=XkB}{g?>|ib|^%_4a? -?H>!/x{{h!LR^T RYn2xҊ#%ss8⟳F|' \ob'q (''iǖn^VC*Ζy%{,#זx3 ƞ5Io ixŶ G|{>/*VI{ci/ uw pXxNFm-A>"Yj}0Z6hJ8–; &棇cJt'}s)V> .| J o6en"hx,Z<`Ukf?\~|U1|e~NJIJAN?nz? xNu]'GǚtpMSVg*HR[G B)ҭ:Fu qjY wtZ^Vg~3Ra7zc6/*˰8>WS>:'.uPiG[+ʦE;g 5jӫK6𫚎SWNTiJJ3,*ȱ41Y.g x|Ʀi\vNy$|)W>'t'Z φ?GNOï |=^/^(ĝSúM#^)_zk|8x{&. -nib{]OIѭ6yi:]Bb#_#(,EuC՛V%,R0tQ 9~}աO3̡ eyb]l= >1O>Iex*[oo[5 /}&Σ+*U_j:gfO uo@Ф4=6i=6$)4??d}Ba !7eAUj5eX,, N6_y͊Aahc3j0Pȩ(aspo_Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh+I>Ѣ VǪG ;c&"Z.{^Zj;+f6+@)O:m݇KMOv_xn{Zhɧ(Zƹ>6a҃: "G+J{ .kH,\gg0 O>.>|0mc_.^_-c𥕕y~60CoxoZҼ%NͨxCv |Vi~kycEOq"YXxD-,,l 6K70${\tQ@Q@Q@Q@Q@USK57Pѵ:Wk+7TҵKK}CMԴ^Pk[+y$) )ctfRiM4N5iSOTBs8ԧ)Bpg N3ԣ(-8-'&i44; |Q/o<=uΪj7:O4&{Ueݮ$UPWVZ'ZJ|ӫVrRrimOͶΌn;bf+0b:f7WUi'R"VQIM$QYEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(4oQF>kN_׈%m$SHFxA$s_-pa#\?xc᷃xImcR腤`t-/,e$}TљQ-:_<.< x<_I sG?e{,a%DN͗Rm@: /6x>,1I^ƉC⇌;;/N!jZsxĺZI}i7hÿf_a Z?C_ƥ,o#+|O:kx5ɟB|H?^Ow>յ{^u]swWυ}GMԼ=qZG>y4lE4F"訠(((((((((((((((((((((((((((((( Zo?DGWh_-j_P^|weoQ.ŋ&oM7PkDϬjGb0=cCk$e_fX5Al}v f_xc)Yn<@lcpvVwQ]ZGskؐWi4I"YMᄰ14` Uux{Gǀt[MsUԾ#|95xotWTH|kIfѼ1qڍ̒i}v6QMR%R`9&QoVM.NV / KQN#^eJ<:PQ|U5QƯ@5Ŀ%x4K᮫ij~:4]éxvZi5 U*ʵjqԡJ9U%%N%k.ɱuC,bhckfY6||vYG}r\<-n&ЭYa04*߶Q|FuN/I&/JNĘ]?f=Vw#iGoTh1.|a OVvWn<}K{r[?|pڵx^ (J|C0^fΡuox^ZuiWR)/AL\|4rnK֮tdѤǥ/◌qo|GMg|)#Ǐ'j~Ick/\KwHh/K}F|  u_Zz|Bh6Z&u x^<>j?Xmtkl#x_Vw>3[|'A)xOx_~"oc/E>GkYb0ykŸLѥ[UaV#",9mH*RͦFiN!6OtW/_,׀|_}kW߇j>Em>?Y|PJxÑiz&Zؼs:1s̲/eEz|5xa|:ssᏇ2jMO# weៈE5*Nzm_/lC?\~ؚvj,~&{#o⎝{u?EuejZg>!=o˧hWaz2ꊅ_<8{V Z#y><Tx4NW.yg_C|9$ '+xB&uN'wo[_l'Þ|kaOg^~(SROoV?|YIi:)O7!>_6|lT/t=H5LJGSaCGlOřFW7hq6G ρX_IJ͸.䩕fs /.fAw?M/5<;C΅xoV;1C✟rN+*Yl,8`8hegC.pxT ^Ewqizgcƭ-"-SE>RۥKCQ6w=;KMNy-t?O^(Y_GOx?Z9ɫ|Rү!m?R^К{y-:|u}vįw5 .U+dyt0x:ls*ƖE*K!,3Gʱ`Ɩ/.1>վ'@|b |9+Zw?ڷQi}5zZg^?4u/|E+7'>|Lm-  G.+Y}~'LBn e|E2t'yt8\F 2i˃p3Cpz9S?eT5z_P6Ɵկ>"imhSCE߃$],|OiuM>:m/ŷ_k':f_ x[U.jVZj:L֝ڭsgs4E%+p^r|(ͫ8F{¸|o'frel-L&1tqXu>\^UNpN\|lƾ?Nς%KUhsɪiUߋeO^I6[o ;~o#g#>Gx?|>-1%/?ee'&k=R'|Vu؎?EmOM jYÐc1Y:.yIGVf-peٌq[❧ßO-~ d,/4N/)fbE=o^ ޭQ.4#bu!u/,#Ԗ><|& 3\ >?ڙ#&5PfҶa嘪Rb0tcs!`Ve48/=vKO Ӽ1o n-|5S gt뺥)aҳ佸:vA|eU8 cY=xlelV: uj'ѡ9mS%FM0 +(((((((((((((((((((((:Duv g"֥n_k@E7о!k~\ |'c=Ֆρ.[}!­w3m[dXk-#$Xʨbp=}s=C᷊tj^wmYs>|Kuğ$xᯍSnFU_m>4 xkMZ [-NlIȥ`;|H{xK;-:__|v<[7~/(g}w·_| 5O> O4z/;k sji_k2wJxb)9B")ќu*{% y XepU'C``qrb1e.]|Qf*5pQ,D1}߆?dk~ηM6xX/{Lq֤aK}SB?gOAq[K3]Yͬ׶I\Wxc1>&k?x[)x?X Wš|7!]\h.|;}'ⵞa_\kZW4 )摗sZN(J}uӜm}ZKiT|,aiq5|z`a`ƫeU+qq* ({~?g(>x7S7Ogi좁|5ix"R]o?$j\v/_xg?'Jv|w/¦Rf(~ /3m ̟g-_'Og5H+ b0*k i[IaTU ƻ(?*\ma\a6mp3Q8%[(C J_S*9^SU刜r(ҩK9/ٛp7a'O|1?gK|@37_~1ռI &tow o߈t-f<)]O||-{VW' ևOxVn{mcz*T.WVtzFJu'Vjex*<߼=odQN*N{ǺX9a2ŚeٲStcp3>l=5 Ut U-?}B,sy9x~hZ0VzM?mu5݄ OU%m3+V >x㗀o?j~)x'^Eox}|7߇^'2O.kWE񿀎뒧WzՍ<1x*Q)IiY$:xB^ѭ|{xsľ1:<+#Z̗Z7A4+6B4ڌ' 'G^UFޱKY35ޅh+؎K^|Si1vmMLԒRӯKy.fj}(PVs\5Ob,6'N_=ԅGJsei )~|zDŽ|Q|m|`Wfc R/K&oP֩-|1'Ikoxךtه:l~"[S_|+#mÿ+oxwN;>O}}RּI@Uʭak7+. *)pQ 4<32 K#eX/?>,|Z >\|&=uG#\Ț|2TP}FaCW8jǙ28zu|7Ϋa95kI/WMş_ >* 7G<;/⏃RZhUڴ>'/_ bdYƧ]RntYŀG%mOڌ0^Z_G dvuAXG6Mwd/m~'|87/OƟ8oT=;]ex>Ěǂ.~$|o[xĶ_\ֻB07}=L=kzD۷} WԾxgSĭ*-SѾ y^wZf_).{%ҭ-`-Pi>[ͼSyv:x(e(|.;O!Y\:x̷br6asl^r)c^c gTqXobwE=ŭ OKz‹L4?^=׵/NtjxF|̳+ ~wB#O I𵗈g؟ޱ&x@JQ̻:8&⊼1a2 2|kr p8.n˅98o/Y}oC Z&}SJ酶#5_5|z> S/?<9nkOյOx_ϦxOC xbI/>y=~!8 ~)p323>ϥ/?f~Ͽn<) ; BGxQc ^U-FeKm;g؂?_|3&⦥fᖫx+ *|AMjP_K{tmc]4o N@++}WѠ_⯤m48a8>ergFsǼOaWc0>-\fY,v' ˲߫h<~:xyW|;w⯋|I|/eZѴ5Osj7~,Dύ5 [.mjC{*#%z@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhy3O4^7>#[Om<7ki? MϏ{ I~kk:XZ][eeǟ>UVo&cGkSvQ_F/TaeN^\L#O2C( O t'QFr?DTf9,M[ hx,fq2׊|7o3GX|N/ <%|GK_˧3G'᾽iÚj1:}"Ow7|-#¿oYW}vF|0BO2#Wg'Tеmb~_]nk]q2BUeB:8{N勥N/-'*RPt>rhbrٖg1\GG+#/)h<|tߊ%Ώ8OPxCdoTGȞ:]J5H7:5>(TW//:fs9'cS,G_,e F_ M់<} ֞/ok᝴bş=>9Dk&ݠf3'm_c|q??ѳ%I΁ Vx] ko:}:Osm#Zҵ=;Z|iڞ2^ZjWZoa 콦$9Og8\[S:ݵ8g!adV2,^,s[_bż.dC^gN\6 8~&I%#>>İnxkit4kC[XFN"vuOxoK5xE,~ ׃|Iw@j^g饏<+Ɇ䢡~MVwOz-] AEů;?m:4Zϑg>y,z~[ƇZ vN=MK_\5 -#Hԯmm;Ÿtz?>|e'ğO:sO> kڦo{>|/[O/4Nk%⧋>)xasgQ3(((((((((((((((((((((((((( Zo?DGWh_-j_P\<x[_;],#ln0}h$aIBH+_ |>KM,GmE. Dno uu-k%@WQ@o⟅}.yA$}-ln,үeg𦨺7w16,/֊,/u6^-<%I&G3FbhV1_~*&^S/?>w ѵ xwP4> f Ρkyֱ?B8jt_^gxOᖅ=41|4>j:Տ<-[]MJ"^|L4"Ao 7_Ze ՝υU]xOix]EY`έ;»t6oiiT".W;N8d<>,Xt3)8Oa[k AۭS5ѥ𵞝[|=[l#eu+RPϚڏv_ wZͭ.Ueɧ^t_W&O>{Y&8)J)biɼrcp?W(Ҋ|Y5|Crˌc|9V;aJ|K4hap2W hx)eXطu 5Kj([Ɵ ?){Z7MxAwGM񏇵G4OGAkyfkKIywi;š_|C㎹/UwZyFᏆ^2Dn<.n^ ((((((((((((((((((((((((((:Duv g"֥n_k@E? ^šׅV|1m⫟xKNZK:$hxZ/S 44~ԭ-`xnCa η(⏅|SzIwይ;7ßZ_[05|\QK5>"Ѭnk.&^MaKҔ 2ZRRIݦMifάj8|^zJURB#Rr65$&Z3Ꮚ&=Iq>?x=3>a [MiO ko,QYl?]XYD~:?<7G\G/wZ I;'O/蟲&jw~|l<1jCյ] ϠCwxMSXt}M5{=ᰕaΌTW,8TTT£O~u`%I3Y>C`o,N]J\1U0l^> XT|SɱOǡQf8fʜ^Y[Mznwĭ/G|E-'_|g/^7aޡ oZM;5/FE|VԼKvQG}~*wmo~?t^ǎW'lco |r/)O&~񷉼Uysu- +{AM;^ttצH}o ^0u)K Rr>*1t$Ԩ:TJ299 xL3O225|>Or/W&bj֗!UN\8LEjiZpTˈ̩SNVQtBTJ *=|.`,0a y6yUn3*b81G,ʾR(*07~ңW/6_şw> hKV)mƶ?Cws}i?J|Gik?_WƯ:|- xw+HiWo}#:g/0/|+?Qk}4{2JO S:XeS30<,^&uxzNTjUj\9y^# aV<=n!Ryjee8S Xl5IӯaeKʎ7^TpOfxſ~о=#}$_N~0GYKk?o[=~MG-?FwxLԼUKP>5Ρ>x=uzߏ'O?k|*E=#ľ+'Ү> =W |eVx^u'A(x;];|_|^|?w?<G~_ ux7ÚOt+?Qmsa[Rl: ƊZMTk uܨP F-L3j<>e3,!eіePˡ09YN.eZe:fYR* jq׾~?|qj>9‰?꿲-'x_Z1^iimR|0Tu+?Eh~$a^Ŀ>*koo:m4ρfk[)z+ ,۫i0`$ivmwO:Wv7jx?ib7񮏮jGmlᦐI}%/eGO ?=Gľ]5h w:hǨh>G>ޭu}u{t&'xp?57:139<*aN\c7 N9ܻK)OWN#g5a1F12Xl.>ү:8C8a^oK hmkC5OxoO\LǥZgOXKEY7jO yqƭh?hzz//ڶi7:vw5?Ru 9!,.hmnbx$IQXy>#ு4_¾*GǞv?_AK|4wO70|S{/tz :pvktQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh/4eĉ)&FǍ+c}ct6ZƝ_hBk[_ۼehN|KI*]HΗ {Nϻes^ S/x^~߯6mwWou]súK[j?jyiU0os"xMj|o?YGƏ/IxlkmZZ i?~,hmngwJ[^4_dzFէ>Ul_-'ne<-q?BG^*Gi߉y[O4/_x{+ Xfx4?%gR abyF**D|kjgm|}i|K' k ҵ |\}zD޿}^GӬo*?SGF.hJiF:)BҥstΧ4KZ\UˡQ5<]V:tpXl4ʸI0P`cP.X,lR_ B=~~"㛯J4~ UW? 2_8B|)Uw1&p4:A1Eiq?ߧ7`qSƏuO$G}6,mkwJJ|Y}S̱¤9TIsPKgyҔj||26^2a0:k8e/XZK,4UOklK&gZ?kᏈ~+Z_|7tox˧jt~6&ox?'<7þ:|Gi}e{?uOڔ6'7Əzޚ#M:@>)|@)4 CWUWz^ su#)Pҵ*q`V5(rV5aBN͸7)7x4 U?gZV0y1xw0X`? Ra0L=8(b)%)O )ի)Ch/ë};n|ExO|EԮ.}~+ ]Yxw|ٓ ⯇VG= 0^xW^?^Gi}|\׎cSd.{ 8oApOaXL,`>?l5{/[xk][^k"ğ_qKcZk?~.x:,gGӯEqM4:esJՐՔw`A*?++V\NIU6N($c T Tœ#()$'0sLe|v1xD\.N0iBᰴ(҄)ҧEEs ~nK{hK ׌9KC/oz|1[N+]JV ]$6xwI tzc-Ķ>Cx!FKc<73^Iuaig;^3^`cvMǘh (a:N'}|߳jMN?OGjke&^oOͧi~ϷӼw' $u <ƷvF1\xz+u,ik[ňdyL*)2B:' p*is:sJp>U0G<Z-Ǟ4/?/5|ţ֡ៈh.;>_,eҗ~t#ώq||Cxㆩ!o/:~| oI'?G?fx0xIm|)鵫 oEH,o8k7Cx7l<^mgve yz lqSG asQ>kÇ8\|s8||Ww=C*ߊ n|/9|r~|C5BdTg_3ƏkޯW]iB~> jg]cNj|Ox6 W|U ]x/ize}e-KHS^xN4xOL%}$|/m+߃:5|Lּ ?h~7OkxOsG=K7:-57oqƏ">8Č<G!1ͳ12繦}TS:xkq#ʩ8^Ν p76^'gg➿yaH~(j WU|;6}xE/㻛n/|1w=cE-bjPC%8Nr8G8`3[%3<$e8lx<#N9y&T?bxv+ D=*_?Ÿ 3_j2_ m>|/<+kh,5M7Ph^*Чwo,PW7ƿ^ 4|A%|K#ZX=gEzW{ Y"xSx5/xJx9bqx/u1~F4)qc(Q_j6|> > >|*G٫΍MkjMέ/>5ش{'^4ޗmh֧W)w -Y}WŚMqooi-ypxqo,qr ǵ2\.{73<<+-†{&''4v\5Vo 2ߋi~зoQ|C} ԓX'½T޽=MJh--u07xG_V-<w ~ŏo;OxC5ߍ|Wsox;K׿n5Oˤzm|;\{S7/Qù&orܫ0\/y5xwHmoV>$\ JԴ^> S?π~׼cj_?fu_xQ|B?7hui~𼗚>a׼_,+Sx4Ô1O 37e #.~RE86ϳ&a`egYץ! !IVTydW,SIK :H9xdu%YHe$hJ (~O|}_WiAO:֬g^;i gJЬ&4&+gQ%uJGtof5^JΡ^ZG5Q>|>#^ B+N :֫% ThѧTVN#)MF)a#ş_'~A,{FP{rxO.}3.:iCu M^gѴ]4k=:+-lǘҺx~'`2lo?˰Yf'<1?Uq8,6q֨c+}[Z?㉭hIU><~z' ZgoHtkN𷇼UaՇ 3Z \"uehXG}V[u:{?ohO_x<qsK^mO |K׉oSIr .vm]py^__gvUvcI\;8L-(6˳\3`Zyf8or^/2$Sφg? xfOo4_nP}{G׭m xgMjUe1.'/r~1dqW &7b`xqUY >a⣄V,f;3lUE0~k?GĿsxcdg?Ϸ:|g⿄zϪxVm' k Y.-Lw6?ׇRQoxgP]͢_Lo.ykOxx1㼣08p8/㸫 է^Iԣ_%Ն771u*9Z/ý~>H<5Xx8iZN<1ke4k!ckGO~|"a: xShu#xgBl4[ӨBl\LyHqf/8~#ΰۙճ~!Ug{,~sT昸UPNxʵG 4+ SGo5;57< ^W]>'s[g5mx8|<|#׺BKލ8i:mGKEu]5퐲5ѹ3!M2,qiq?fma31̳̳&81M\F34Rb3 MJ5"/~<^ԬkjXtD,>;eY~#dya¸( *F'>l+00y;5Zك0ٖ/J,ej޴OgįGZ5ť&ꯥ]NXZKcq;X^zAt"IF{;i O ^Fo|At]=%/O~/%ž#@o6ܼvVc5JV,6; c 5%Px48zZ0_Vz3qF:r&EsQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh1Y|]5ƿχ k-zCi,6*mKY.{85mB}Di|Sn> ~> å\Em뺅/YkћNÏŤnRH<T~z^s_]xrTeˢ_-am)"ḧƀ=+&2XߤF3ʼO\>wo?g^x'=CX,Waol>?h2#ZFovKzwjeKkK]fas,ixcZ::sq炿%HJ +߆>:~(x_ǿ9gx2xN!K[}Þ2\F]?Vi?~x3ֿg:Ë~2R/~"V%9g^na/g[&>%6F]λ 8R\A.Upx7eu̖_3%LLÌl./*9m/-,by$:_'|18|S7|!¿ڏ Y|Z xBNRtYxJ_&ñγ.qC />k6_$-1h~-H|Sx6YT]?W;9CM+txcjf|g^#ן\^Qg53':f"AOjZm4z޳?~Za{cgx{Jb }e]!~(x[ƾ&Y5O6wZͽՊCᓬ[]ZX_ú-[Z{T֑RMz㟇>(4|S>!~ǟ|!>xO`|Mӿi]D?kOA(5?7:S}a}x#A&/49_Vs/Qyfqx[ڗέ|^mdXWBT,slN]SR|o]k_j:/|W ~ު6_Íh"GW<13)Դ"8$ʿdx|#_eu_{4ZqemտgZ~wN<%xJ~) ;/ҵ~jj).((w#L5M6 o_K?h|w4ֽО<3Ww0^|Ce͢kkK|47q\> G*W)湯><)Mf$!*yi24'l^:m:zCxrSO~6dW ~1m<;ώZ5t+'{~|.\x>.6wWM78̷&SxWù^9/,żMBm|2+G-?v7Gį~-]]|6[> t?|_mU:xZ|9&/쟳giſ<į|KKs_ᏈiC^7/|FɨKti&Oj>%j}9-˫aheXN >S͸SQY~ySdXpY^ eaxsnjn||uC~\wtn/z%z [^qyjwz}6vBȹmqOK){<˨;TV|Άuc!Q^`Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+|+-: Szzen[_jZ0i.[_k:֣*ȖUن9f|u߉^$ / FKV59aT[~ci(/s@}A@V%I5f!,t?`Ӗt bIsj)fX Nxn$.nnu6|3-&\ft2:] j[vK gMK¶vi^qkc ]~cynT0xJ>ҕ/kԍ4iӣOz!N7;ֿhZ->&]V𾧯>}xľ5W"xXֿ"uu7ͤS5u>)υG\_hw:| WҜ&2Ҵ?_ٓK@N6 $Mwc o85b8oyjgjS>`)q <|?_2(f3 U0|\o1G4x6mkĞ闺uC:vZZ ,}/Sol'9}g'n? MGz𗋼y\]k/|x>$u=_QӴ#ú]]ErKxp|T<-W,1~_ .{,z x|Xq8f: :؜M*V!P5O|`>Oɤ/Y?~ћ~'FYI_? :5f۫7ǟ%x|q; v>|X/+z~ux+/|mZsԺ \Erl8_o5ˉ|8N/1YnC9'q&iu:E[gU8SqfUcx[9F8\h]oį| 6Ǘ<3ڤUmmQt=>|Gje?t-WU K)pFUsl$aFc8,/=Lna¾?0`νjqb<4bkѣ ԈT]O?0<]=364Z|Q=sg|jG]U_O\yR Ÿ ⿉>9|^"4R/kzV}zih>v772GzUW7Ka,O9QyWpsbs,F*VSx[7g5M^T >.S7M '~ZjRR|W#?a;URtX=}"ykx//O,%pqdylqbkYE9=JQ_<3fmjKx,4cY2H +<x᎓u|7֣3Uo=e9<=h! J}WSf OKu+=N{D|K-Y+_E|EgϩjweV{;kyvK+$mc8{6;36Gfv:jeku6uMbS5Kg]-[[umBPمikoZ˚ex<2tpRUWJ;CUE\&&WQΛU먯<((((((((((((((((((((((((:Duv g"֥n_k@EOm/P|\𿋟VwK}:ĽR ڝs>oeZx~;zDO$wׂ5CΡ?$? |ORG߅A.<<:zjDڌVzYftJXӬKHᶿM+TC*ݞIgIFP (dλf6__7ړy>wyښ~ɡkV/xM luxk^wW2Mk/ ~)s&}sMn<5={4q|G>|I+axЯa<'[÷Vbo=/w5/|M|]RqN h<4WHЯ4 +Q~-_Lg= o_xGCu֚}ΙsW]tmCMu+U>"ڵX=L\9ٶs\.v 0O?Y&y ξ6wWjWbf^Ыq\eZK'޹#zOYX\wňgeh6Ӽ7U KjG(_j=_ -<'ZZfx:dzZ]9x=xQu :Dcؙ,4`mfg˩Viu8w9Rdrʡ~:aG!´s Yv;(>KeG`n6e+ ?\Y/0~1JOI6 n:컫h'o׼Mo<3M5/M 5 6—[:q3'/S~ N` 'RZu95\tY9sZ`| wt/7o|/oY\x>Ǿ =b5-5$~9/߈a_Q7['{S_-3_~3|f/99qwbxξ;úT/0y^.ٮMr ~; slLE`:_Ok_3~ŚDŽ|@~M+Y |'}oC+lj~=xI|mjEh>}~ضx oG>_ ig_Bo7S'Nj8 KL+>f:9~'qUGᦕ2Ǐ4|F3:=[oo:+O>iI61y3M7?}>&Ӽ CW>homulc xwSPkf爴=)fZUY.#<5G8~ʸ"Ωc3&E ."7X**YA=,ʴk8污_+$:ߎ>''g/Դώ$%վZGys⋝k/ ӴY&ռYk:ȸOg߃?4K44|,~!h:Ctm-[Wyi-՚FqYHi1"pGŋ31Ypڙ<+3SY0aꚮεh>gsꚮyong]_] 77#+)a cW?.0ý(Kx^>𧊼&t-ZC:LjjB3`u($x><+~AcLcc9^7ͣ^YVW(ОcG _ZdpEJ(7_4G]%w-G:V+?ZV(bnxKW,oG&hF&<)ǣYiwzyk__EigeimMsuwu;(<ΑE3ʪH3.|5Yuq &;gx,]Hӝ<./*Pb*B)j8ԧ(ũŰB({KM[_~ j l|a~>y>%ZZƝ3m Uѵ(<{[h_,[ #wvS~?O?<{¿ l1h#M+A,}5/5[STK> {UԵ;˽FD%y.'F;YL_ O \ʞes*1QQΝ]:uӦJ5 + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@|{5Oz?-94^Zo?Q5K5[|c#h+kosow\ivwWF!ㅗ< + wZ? ~GZ˜MHoxk.YZj1#MRM+ G;w{m2=ޅmm [银z1{XcHj6\ɠ (cƻc~y|*_o+?pO>z?ھ׮kU GJ5xbմ ROQKIRҵTLmmU i#](֫N (W8ԥZN*jPNg IJ3RI9+g\q&o|O4|o}g4O-~jf-oXZ蚽Ɠ{[º΢V??anM׀M{?x_!>@񞫧6 ~0_4N]״_jڼd"C߈?gh|+s#_W~{(Gϲ Sf<%"~&|/ɳ9QO&xO,N?[8:#x UE,i0|MC>᝷uMZ?eֻᛍ+ঃ-F4 J}^VxwXY/k΁Y_^xg32Ec^ }8_=z4K\qqjTK|ej>sme}s_C H/.4g59qjf+*m.cpqtg΄s:-і+ G(a?-~)h,?g/#e[6|-5 ;? AoG~:4Ж:MO Y ~?7>о9I!}Gq /hz&u:iW^)5-3Vyt<>*ׇ3~i "CV|A#A6H:_@Džme6MɟK RY?[=3\hx[]dԃN>G= ٿf_dž"s+sC⫡3 hgOW OKo10?fi|qxVW|]o +BË^(|[]xZƵi~5:Λurjo|Y}CWL-cΕisf^ ?ecJ6~k=77b;ߠr&||Ga`ڴqw#i2֗f_[j~ HK]<_kKP_}mQmr[}^#xh_ tK?iQIijz.Ėдx?nxK2gy FMeE82pFqϸ^#gfx_֯Ҡ wsuX|;ċv~]Xo_ IZF|3]i~x]w|ʲ)50|+X,ۡf8zyfSK _1>_oO#/_|KO75gUվGOŏxCO^:8įx;Fi&|a{<_xYмkx3ޣm]G×7zfx—6W5ևa8J((((((((((((((((((((((((((((((:Duv g"֥n_k@EOς>4ƛk|1~}υ~*\:Nڲ~%n-8SI.gEh{MugYQcφ^Wz DK[_⦱. :mu.ks=x@c6+şwǟue|;o)ԗBҵ-X_j Yzl i@c_~/Ecq'?}KV +5 K=WSѼSnRi)K+/4-^[k;|k'?I \ĺ4-g a#jze᫝R F}ioKi RuPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ ƛ_k^m> -ޫ7~'khփaq\BucSYh4.ۭJOo>PuO=WErIZ.5n{K%K4kZՖ]4{k&?j+\jz>\$ M{e̫ ȱ+5y$pw9b_PPEux{Gǀt[MsUԾ#|95xotWTH|kIfѼ1qڍ̒i}v6QMR%R`9&QoVM.NV / KQN#^eJ<:PQؗ?[>>2xǾOᎃK}'_U[ O^,Ӭ=sT~_ƣ+Inl߂nx⏈h?9Zg7k ś7߉Zݎ_]GCxѴw dtJ5J6&1iקFQn8XʼMJ@F *92BbWCO,Vpa0iTt2<<:l"Jz)a}؞ >K㋿ĝ7˫_g[ZP"mk=sND[J|_~0`|y>%/>1>+|-|3~04<5u{AVk|/ƗxPͮx^=sX2֡ 58V* VK0>h n8t#M'BX6 aSQ欫`Ig8g1QҧjWSPU?__x7? "1׾$[5Oax?Wŏ~5]/MھI;c\ t+OToc ׋㾵^f4_ 7|7/?mOoR/O,_D4KALYu(эU878DUFk8R:u*IEg*3q^Ꭷa1yKBiFdRe 8ҫΖ__ օ)eq%S]MS7?𿋿M|r~%x4+W9>)8to jQ~N[|_~޿ |g=c 5X\~]|? ?muI^<Ҭu}me|AoqĽC߆`е= (9NP=e)BUIV/zR4Μg R|0B.~E#Rxz}1AC/֕,U,&iW +o^:cU¯x3/xošZ.xúqmFO|k_;ĉ;mg>״ȡ;ȯtWM-_k4oSt?J⾼7gգgWuK,5 }4Է<ҝFxQ/T:PN#RrJ0MFt5$xQ˰x,}^cK0*2־ WxLCf &piPPF8^ ~*mM3:]ak $.`\wtqȫ{Cu6pku1s^>x[xHޥ{=N{]S]:uΙ\귶[VOaI3 W,fx >cZT'ҥ :eG*#V'JH I暏>5-K?i |oxzmAHVľӵ+kٮX\ VNq^ {vտe8 ͇.xľ ]Qk[iOol46Nb {EUuoGD'_ {MҴ/F;]KѬp/SNUPinvy.'IeWy( ( |'oe˜wSI?'u6a[_c~/}?l<].kڇּ?jmms٦IޥC{5*NpXjTsST$$)RqԒo2": bp6*1kSf[Uk5jlM\ʖ"4jb / &ٯo-o50Q ,]Nt,:h1XP,TgjnQTb1>.Šq3ܻ3ӥG/, QRRQU%ҕIT;K?7PnVҼ=y-ΜZ)+QatiZ|kh> }eu xsPmn8uCC~Yh1=݄뚔ԛy!LC  S$!|hd@w-'}wRi_toxF Eu$6|e+VK\k]gi亍mb{}V ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W?+jw>Ƴᙵ= 'W^r-:Bރx/k, y6 5hxRҾᆱWysk5τ֟u?^ &o çQfķ>Lmx{>(i+> E7tu_$:JX j2;|cMB 6AogѬ#K`1?hoB4υi>O߅5{DQa:OID t?\:U:hVW[- (5[q4 ̞!t;|>D`kJ=V=mBgVMI-t!ǝju`bl".j*I7x^n>|χ~?_~Z7獼k΅?>m}OFa/⻛Ú: Iuįx?nox/_c= [ýw7Zw~ϺDĺNi>5i_N,5g 4O8ї6`ק)R.5-?Ҏ%hS|D2lTpsjO/q]L3F|V%xl}R*QePB\IU.w4|EĿX~$ƽ3CM/ ?K?}t]>Y4xIsqiz4=WW}mxzG|Bg+ j_Mw㇀/SUkpx32[^:Ҽ-àKio z~3&XZ9`Z }^kSM˞r,wV?ҫ輮xg_1b3<0kQӕZYOĹ^m!e~/hZG/_\?:$xzZB,Xr=|OIV?u}"4VvW:ߏ>'xK ڕΡZ%ƫ'DoúV۾G OŖk2xof~# |@NH}nL<SEl e4FeZ. R\ҏ,DM9(ajs{*ۧgἿ.W0ja>x^ |-υOgzށYi}']Οp ]sEմRN2@>nLWvz@ S%m#Bog}:c.-Y.K]R63Z( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@y]FxĶDּ?~Ѫh\tJ^N$V-ՅkMsrlRT` ˟xA𧅼ywCL߅:͝Ù.f5OڼzüIhچ3̗I3$ZgD|;ZzNf$maao"IId1)YY/#1?J (ti 70N.8;[M2{xfy푭乎(Z`!X{i_>'V\׾i/oBt/Q._t+]24z>{sgBn!3/4|^ zG|/6zt Ѽ'~ 1 /YIf?+%Eմkh;i<:.TO7V%a9]?>Ϝ|,ԕWIRH7ʬyj}^N]r42Fr<JЭkV^4wB^x:ŋ™G4/+[sei |m|Ck)ƭe~oDžE]=LJMo|22h06QӵG񍗉tGP3^ux.5k:u-gὗ];Pͧ[G<9A3-iw> b[{u,W(GZr&rxy8xqSˈ8ʚ܁RYp ޺gVxyzeV(sSF>4sZQlO ~W8Ɵ3x/,mߎᖕOS^:6ៅءм3h1&լmd{}=icඟoNH>4įċ|E Wt-w-?pZc:d.n.. RznSPԯ8TeV51ڔԖ7fuXIcoYpvXZXU2:X۟9B&di"4Kw7DK:YY$dA43DY@)(p1SKK[x6^%ͨ6<䁂:x{z`]߈kϋD9|Q|x_Z5??O»tH׈<] QOG60id~&ѼeMmXӠmA.#d#gKYgIERC`+&2XߤF3ʼO\>wo?g^-xsK|%; 6;mjVZ\xo>W-2/iqJa2麔]\JGeUa +F"+ B*V^Q^TJNd6mQO>UMMicOEwVx-gq :LqX2g*gl4x^#X~{]j$uwHMGZ-A}RkKW "ݛs#&9vE㱼qXev1t$qzB p#PS7(TrJ((((((((((((((((((((((((((((( Zo?DGWh_-j_P\>x7WV,EkM[(Wu_4o{\jִJHHeW2 |shrhWZD^д9|#?xBahmx3Zuso W:t [gѴm+Vz}6XiuKTDP;bIү( ķa &\!3,sNL9-]^(b*Si5z]Ͷ%V7k5ZivڌsjXOc=7xY*Γh!ux0nެ7s? }ᧁ<xğuSC(sK}㿆7i>o>'ïxwpi51JX6Af'KZ,FoS#'g9VqN<?i<%xW=EiSKӚWa߳|%}xKg|S~(˪ {n\{X.M5:I7 e>8O[ZUX~;>/ }0k[TwmH s;g6o:n8qo*:VGĺOaCҨ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W B_˨|Vx{B{ O捣O)H~ַ>$K>YrR=%'Ew:|- =;Xú=Ɨvp قkDxw_| qǂ|'u?zx7PZK d,8}K^ [PD/i8xXS=w]YleTL-){6ʹ@_PPE xu|otX#o^k}.;Z3/GW j|MO6w ҖK)|U Mwq^t }S;~>*&OOյg> Ե]HAi֖:s5kew3w58s  "f|QGxԎkZ4LMHG ɉ,'Nusb$R>'ߍ<=x!Y?ivZ3A[t k?z5b;k">}Wѭxtw mya7H@!?/ R/G-KqxJMOrkm-6^aow+jzޔ4m_s= |R/]EZ6i"V[Qᑖ6upcA| (dλf6__7ړy>wyښ~ɡkV/xM luxk^,E͵Զr$Xjw-]Z%<1/EԮGqjΥ'/.jz 'u1##=,o9c]l.;9N o^9ң szӔ0˞bt4WEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(:׏u?P7M.Vj_ 4" 1 6uy7٢u JlEEF_ h~-ؿмEZjUVC5+4El4RmDhz΁k'5H|~sL>{0MOX{_N¿ xPr^?ºdž|IxK_|Bg>kj^t;;;W%>@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhuٓ]o[:ڭb_G 7Kntm`Cܰ4֢`#iּG־7<;SDUԼ;:džϋ5[\yt2OM"K >dTҴlIkԯ5;,k{Y(H" (>Gۼ9e '* ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@yoĿxzu4 xV֋^kψ uRyO>+ͬHJķRX(#⿍:<-gQ]Ox) i8I4ˬNPHӴ5=JXn${}?N}F((Kg52|AΈ_|ER? YY]j?Wj^*S6G+Z$ڇ8 ago'趷:?__]!K-roX/ o4s G'p?i^|<++-?~x⷇o-ޚxC״;Y]:O]Ne{wj'\w{ ß_H< ƕ$zg1-;DtYMGGX;EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(:u/-!"ck4n֢v-eӮ|2|)>kIxK|;?g.xNT𾯨z5+H'o&M({f($TQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+.k><𮅩Þ-NhZ<7w>ƚyw|P,0ͪ\MeXii׳M΄^m` {PcH^a]KߏnRaҠ΃si̷>}kR1 >2tz [n3_6=nckXrm%ҭLt+7|O'J㦣V6k^}tѾxci0McϡKqxVτ|/[i7cQ^S98֎J6&1i5:2uNWiJWkR+G %Oz`x+L\eAgnoSZxIer$ |@XjcKqxXnCC'$_RӮx?\y'-OjW YM>7:]/4 C,. uj1oR榬K V.ی)UJpJ0EÁslˈ2l;:y\jIg5W i`Ld'ĹҡVxWB'/1`@Qេ~<gxE/xs߁"_:~%xᏇ<O_V);ⷁ1oi(5[V>!zׅ><:_ǭsBfm<'o 'M|k? emG7<szon|]2m-Y\Q NP%[E וXa*S: q)ΰ&HC1Y]:|Z΍Lml xYd3':8pXcտm >k3\~ zGKω>|7/A |3_A-?v;6$ЭQ|K3oËo|9_|a_ᾩ 1|{6XxJѼAwpZ<9~:f5 O슼c>WOٺb,+QvOzcNFN8燩sJ*f*K0y|3nYˤ_WOO::UBnG>x[yUtKľO˫/¯Ք\|] ߈|; 7na1ouk"U,k4߀ucmm JӵMZv|AiXh6zm3\xZbC*6&β&k^x\e|N+RWlD*P:8yT:4TBPROO4Ƥ+c guV|.Gٵ//4_ך a7Z5퍶 ѢE_ݸm>I]I4k ( L)| wP/_?#^򿴿m?v}eﴯ[$▛R]w?$4)τw1})g.gT uO67è1_Skú]xMvkxx/lͮucB B1_h[_ŠxKÉ>)|)"o>?qk/FqWdl|-זƨq%T'ݗXxS>#|V> Q uk|=xUtL75xrm/KMb{\Q'7|g<9}'__/Og 6>xēi~7独|e kh:yx\ӵ?o*)֌*Su.N4kνIBWZjU$5hu3<>1WZxVhRfxM<Xc15+T1*xTV?fg6}@Ok_٫'LӴMoڛM2qx^1&v6jMY}#|Y^GZj/kpWrV׭dְcKO%xcwYUU)V+b+]S^qRsO #<*Y;4W0y~=;_<_oC]s<[[]GP+x:$Z=|Owa$mu&sPT&u64be3&YAnckP70||/M3Z7[+|[F s^5`c_ElƗinZgAmzPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ g\;}#G<)qcgxg6 ?[հ?Q[SUOدmlw>0O3 1P񭵎k</Z1i0%ΧxsC^^mhn!Euw>PoK fƴtPX[Ow>g6yTQ PWWQ-Ə^}VO:>C "o0{bn%h3+&RεWxN:O xg6VF5$n̷Z1Vѿha!~&~<|G5~$CAֵq]:Ou~"⿂Ö뢭Ծ6o#O%|Q1m|KڿƽH3 iN<uxx?h7|+F6w:?P V)d}$*Pѥ7bcl3 7MTaRn1ŹM)Y T2JYkR\IIؼޖE1*x F{G(J 4iaq5J:lC>ooX^|f\omu?.Ҿh|!yXx? o5'OdQohH^-N_:}+X}:u(W[kFM_RŸZ߈tKxZmJ<^!5ncl+xǒUk;JZ}r|oq a_Ze~+>2]Z:$g|= OUo *NtuAf*9eβgPlD}Zt^>VQª5WO<?{M{:gū|H'4]cDپ ͤR +F5 RŚ7?7!<__`>+f/XemThg,28,~[2c^ Ybjc1/|Vo5̩exF;,|SUkOX|17FĒx\{Ič;qX썬z]~o+uK$c˅O+?r?p + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W-xGMM_Sǃ;oMҮuyMGR-_J][ܗ3Eq46l/j-0%_x&m-/dqܕnIjƁ@4kWuLKGJ𮅤xkBi֚VkK1yy'M #4Gf 5P3|w ?> iz徫SOarZ?P_ R|eG{L7Ҵ/Awonֺhy?eۿ~ ~J~ZO|8,Ow'.ksg_&֡i5Eynkۻ[-&N4,ՕIVXԏ%J# \({*w'N::¬gQ5,.`#Ù&_W1O7CBx\^[C>MjO3 tҩ޻o~xN+xƷu7[VӼOiun{xCpR7N6hڕΟO xZ7ö 6Yе#N=CS/,Qtw÷WvAo)[’qcxms[nU&Tch4%cNX|kC N:-҅z؊}jNj)RP +;Jt[P׮l,Z=*WY]J LtH #}+KK[ 6Embyšx[Cl;Y:9&H[RK9|B=P^-/^{J𥥦⥯»oi>t=7IoN}&-n"XzpoÕs5kqJ*X BRqO˜Uu-F,-#ծ=Zmaڥ|6voeMc-CLg _DI(,~z_|G[5Ʃ U!~ԷA/}~/š_'?4mwBf(nIa9%{Q  o_PP^kG¾)~?~$֝ωu-_Sn/-i>.th7z5ΗtMm&ԥyXiJQHJqRgJ-))$NɦvgV >/ ^%^*ЩV 9BPPVqIƯ|WEqOX v/lZ<.m'f+O xmKc>>'}/ŏ ?xZO*׊OkƟ ]'Y>x5(࿏?x+S|E;^k(,7JWֺ _6ni1Ni`XҶ {\4gOc98JѶJxIP2Uc,UЫ좖/ G4`(p2\Ӟ+0W^*+d5NJͧIg?WƟ-eOὥmGysOZiz?n4m ó|E5}NU K˫<^dKL|Ro/w =Cz}Zxb-σ_2[Ů^j]+s [ityҝ9:%Ud:Z(O5r> 4ΫWJ9UjeqXNyeJX,uiakuRfԥ_Tï c?<=~,Ś=ůj+׎>22ZVf=x} w-Tτs|߅>2L/eژ*K J3Y8<҆gS.'`jT:׈dz2(>i#_*Q=fUO=Ɵ᛻&/E~:^+_?Nm|⏄6"eOB'?tS^] KkZ"?똮&n'u>>ͨ=JtUZRt hҩHJ)ԕ.eNRxZRe<7`r<Ɩ BQBu1t0YhC UahۯŇ;ψ>"gx?+­◅-fM7_{j2缴~"ym,_{/s~~"4h_m?6ͨ6}xwGO㿋<`['|/{FRQIKu#XJI'S:غpiN5`ʄPU& !Բ FF)Y a3N-`4, cp%4e[,gx|>:0J~|HS:<eW/|)}RWռ}J/i^".xz|mԿ[6<#kI|E?ojhֶ6jgtk2k%3HrQJPTa U C)0aj0J N B,Rϱyzz1幤az4('ɱ؊8eah,[ʎ84TixB׾Ѯ{s^1:55@ taş ? !xOw|-^&5@M*M-")M.}:hH{xTP^K`sGx V7 :4a0U8iЯ(ѯa:RZQQI¤$៊-7ڃ7xV|O|>tj* {2ݍjA"r:U߅*>χ?>#3I|UaOީ#XTO Uo~ |>]?ᶝo㞓#kv7?-[&@i =k F o?g!s;7j|%_^ >L"=ϡŜc&b>˱Y7˪T+p¥Z) Rf52\ه fO6_ p#8ƞ /]zҭ*ՒR@Q^ Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh 躶뚍ڵ/ M\hS=asٶytI:YOt/5WVg Yn.| K6s\niFg[}NmEPym<3ǻ|RarNl-m!$UI.lnwf$ UPlGę#/Zk/,~|jN}bM/j}X/to<3 KN\ϦIumm49>Ѽ xZi?Ə<;⿏iK&/ kaZZZ޽֙Z_G }q׎ac%)?a=Ew{82qqumd卽.\6!K;ysΧJ ӤO0SPeK&-;_>;?l8|_'^񿀵XCu]M.ȿc~ 4i+?<#YWΏ{Xx[r6X&p̱tjTeV֛B8Q~MmԼӆ BSPƞ7#ȳ熩BGeUө5)ܪbܨ?㾱6HEu 9|ti6ZhoHE!7Sm">! /Fd[̱nN\Sxa0qm7QXy4<"K R^Z\cNres%8r T.mJѧB2󊩉N9&&/"ׇ?e7_o+WuxĞ:mcZ/Qmgwڧ=j^/u_j3T5_υ=SKF˽Rj>0|[_+m{FKY4xWxiCþ'힭KM>- L#_&*PZ-#5 ~ڜmO(BURQQg)Nիas&e1iУM X˄*,>.S'm,~̿~] oć|GqOX[cw |U]3_>ǧ⟈>$5 J[7Nӡ5O?-_#[j+H4zݿ]GK}bci:m+{;Xmڥ"&)gIBNurw^9u8PAR_رBYjF8six 2j_Ix_'GQxd!ō߃5~1&ӭ''mTŹ77&k|/Ե߆|ex O_i?'(JwngN?ēKu.~4\cwkm rvp:j0_T:xhrS.i\%'9,BeT1zL5:8d$l5>Rq48pUUj>%Io$Nu]kz橮ž&&|}:+khnAwXn`{OB%)as"ѼN-dRbx$C$rxC'ZjScw0!!1J1I|71U񸺊'RUj4Q4:4!N PPB:t(Ҍ)Q p<+x#Z7kzXXx>.YFwW|isľ1.C>!uMBE ]2"*ur^:'~&xOZ7;OW6iix#+i๴ {3Smu-/P4kh'ȴWօ Oh#/x( KKH=_IOO1` zL:pn'2?8r,,wr;Ùge8tTβ½\T.>OS>)e9sO ɟ ߍXk?/?i:\u࿉(ìMyi>x7~]5eK?odןm5ğ~8]iiZEcoZ׆;eagomdY㻺oKip[tɸo个V_[cC |6վxOZ$_g'5kwxZ<9^6Hu8|?MkŚŖwVVPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(h/ =mKC$n5Cssy.\Ex_LM_0FnX,k|TOᯇ1Ztσ :~-.?xKT{Aw}$.,Em%|yrG+%Ϋ; -2zu. QIAq7PKnI|75tw.m8oovB ;3w?:_bA/oGoľ//jk׺9"cKỿf_i*0>ܧ=D[_6luO_<=Qs_7# |_f/|vj0[M|ImxSZN5VVaWxj.u}6:uޤepx `989C5aQc\e8xcWab΍\ߊ_> wG>uG~ K'Ϩ~Ϛ>eGFs>jzIltH k^'-coO~_xG~9xw7KVԯtX|>WyX麾|uʆ:qu*:1WVikpΜVmV68r*m_XL~sqsq\[G;0X|pxK!+j%,q<ާ'WaqM yߊ^!uWžÿ:~|㯃d)VZ,5;<~4x0\]!4ߌ~+y>;j |~? (7z_]wCN%ω<1 ck 죎NSX=isJ5og8E%Z䴣(TJKC"XJ|IGK3)͞Xk,*%ҧ+JaPZ~OFgbزþ,^|^>:־&>7_[S𯃿Qk:iNu&F/h[KT+/ ޯƯ|n> jZ76@|wuø|Tt? |7 0>-|m57 mS? Y݅G:ѥS|miOR2N))TsN*ԝ)Z_F]W)1]*3\®#1x <,4Q|6"_g[0YQc@o;j2_o O'Z|u|#H<{;R!TexUXW[?.j"?˦5P_|G!g5jS=h1i\%jidn-8 {~.֍ksÞ%h!|!]O5dѼ'YTFWvd3ji>iUx^7 r㧌t+]-uO-ư)u ԞKdBٜմPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ u! x῅|Coiws|GYƐvhr孄33BOiY~>xwMP|k_ k:-ԑ_txm/#i2XY_':a[z'<3=զ`}^MqVI"60f 2OQ&uaZ1uqeh&%QRvg;SfC 8Lޖo_3(gظՍҮ"e9&4Ɩ6s2iP% /gr~Ow4s\?|ko^4?,]>O>O_mia-卷m"YYɢE:Tb4^#e_kWѴ/kSZYZ˩i2Ooko /_|-վh~xOڧ/9L".kў9X\ڒ>/9T Dd牂y9MV5eyh^#LeJxʆk^U\uYbszTٝyUK4ahQr҇ g ?|#eOxG}? |CE? 1Fbk-[vd\ _z"S'6? ~k |c Ͳl+5t]J ;TKasl%}ԖcQ(T.XiV-UjSJMӍY^so2wUTlϱs ,V70=i*kVqJMҥViׇh$_úiŝ]ϥkme-GKM6Wpg{SG$b<Ѽ/ si4=3^д; Bѭl.P$2qqvqiM=SgԧRJ9ҩ 8ΝH$%4")>1,=᷎>:&|3Ho K­Kᯈ|'VM-]|p5is燴/s|^Cu.'e 2Yu:S5i`^ÞJjX^jrк^ڟ4LMޡue&[MiqQ.r͒jA[[;y#Y IbvFV7ҫVzU(ףRtQ SJ98TVgN9pRi +03ίYt\}9tэ՟I;955Ӽ߶6Z=%̱҉]PMkt=rĶ>ax{_QC!M'WOto,.<= =]z ]ѣ׎W&pѭ9FZJU$ڏ|9ܛ=[_4O5\6Mo]0\GuMLش[70ѲԬ5:P [{ +lIn.y DxHݑ3SRzWwQ(*U_5%-iT[V 4$$I=P C =e(i׊XCo,mHyHKP ַ#C3ʱ>&2lE\UŸWx<+BX/eܕj>)ү x&jxfh >1:3h c6@]vEߊ*WGM2 >?G\|Uеk.++ K_x6ɼUxr[^P/4]Ᶎ$ռ_O ]_ھZ_1ISWA{ʅoa(K@m_PPEz MZ>2wlˬ6'cVhGSmq7 lp86愔kuOh Q*F9xߕ뤓?<k_ %[x^񖳦پxžВLվ.:J? |3q?~#|S)tfoAj /#O ~ſ Z?aRTpJxZpe2=yC0XQ%~0c9 :)Ftөk 3K`l. [3kf7 y\75R2:XjexYVѣG)`VBX=C`_oMnG\=- ~k4υ?~2xf^y ◇th1Ϧx[g|X<"kZ߄Z;2[C> uj(u oE~$|CýSX?|Ai"#HS5K8( ,Rs^8fy*ٍjUFx-֮Wӣ Xp/'s^?/ bGşxbſc"<[8u/?|H֋q-v^-N?&Yh67_V&hfsynMԫUil='$UZR䂩J|,̰cYVSR9~|;t8s3.>,*rŪ2:qГaE9~3/'|iMw~?_ƿh/g<;-_t{]7rQSJoKo|=kIQv?F<|L|8ƶQNgo^!|=|KsC|S j pDXz5Ⱄ`(Qug<,!Rzx+ApjTQP 2僇c!qL042#_b9ridSR0k/plE-rtX[إ\ >=Bk#z]\i_|hW47g/, VP S :Z/;>t+DJ'*I[rrvݮ۷k~Gk⪨5%)ɨJRQM')4l}_ ^X]: kQݴڲR_h:{\=qN\ (x{ ѩ ùEfUvaK3doe.Yc {]W?4F xwTDZ|>t u?^#FᎵ.~^Դ?&_rvx~|Vk~7ڌWXXm.>x;V{]&@Ѵ|oN/E{;[=Z_8d$s~!?/gоxzOj?gxN]3ݟ|5hDnךL^<7dYu2(2,\ˆX7a%/rʙ*2G<ƺ[ߌ_,cm||n|C/|iO[K Mj)4]o/\Zvc=Ս+oǯE>#7O7OK9fOk5 ?n?xB_ O\ZxSi&y R\쥃φx=3X,.w^ՖIS)p`eeY.W>~%AKCimUџ_S O_⿎(]iIb? k\ԭm5}#G?>*j y k'n>@h_y+lzᖑ.^{? +|IÛ?ǁ5o[ף'<_ׯ-/<1ڎeZo|B⯈^ ċKx⇃lw-uu;/罸~#w3\jug~i;$O,|`/ldYD%Ü9A 9p\&+l~o1pV|=PN>!k6V3?W@DM>JR(k^Ge%|/`Eڻ/K.mcF?u$9wE|W>sTo`Ɵ_-̗0MZ-cR^7em6`r싃0|Wr~7$/d<9f? C."^!S擡/I\?36uR|3;Kr`a> EFG&g |hǃ4x:~Mo_k -&k'cw?|gIok xYmf4E_>鷺ƀOV~~?:xſS*H}?~{ K{߆)[k xOឳfEcdd'MqMJSÆ13.#.i6yML?!5q.GO-8<[3?zZ|1O_)W)bWii HC@W[m mes>4'NF_?ğ0υɭx~Ծ ҿo'珴y2H#7-ּ͝ ׃|#k4>Z|)Ll;IgٽL70<%8F ,㾡P>f&P +kGCzޛ}jPAwya4wE}kg$Huesow0xTuօzjq4d[VzR!R1Jq JHΝD*BPgEM'Jt-/M4{+m7H,+NaӴx,la@+{[hbHUT׶jwvBFb{YZ W6Cso!$E<-!$UaRמ&XʕLLLQ*QՕJj9nSS6ڒi<=xG'|5hޓzfnZc۫3kkPwyP3f;4b5F3VuX8ZzZI9ԩ9NM%vހ!T@aF222PGǀgW?>3|_=+MY|.Ӿ>*'V_ 1MT hоᵲ5 7}Eī! G"16,yqXLdt&q2N5bDQ_0EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(%kxMѾhS:Wu;{h> ϨƆ^UΓ%ijkZ2s?KV|?ú}+jul..06ɦ[(_|{eH대c~No-'c/ xKĞ+g [bUG/G!#S|i>𷉴/cþ2jfڢCsl[U[mynv7P\.่I RoQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh^=]Cƾ/m4[S<9|2t,]G _[@rKicwf칺Xc~7ct|D MV>:/-kyh˩Z2]ԵKVW\i~0I>| S_~LuX,|9ݏĻ]wk7V2l.5kIMZ\\^$0#3c=bT\ WR< jU{9ȗ( ռC}K_hAP :f)WáY)bでMNLK3})ՅiVJGIpWfSR.YVrxޥ'VX<2Xo]Rh>3:Le |4: Ʋjx7G 91_X"8{ibƗ'xU(HJ*vxz/_:Džj+ĺ_OjWG.m3:ͦ6-CK;F_l`%(XN~͟όПPzŧto| WXzg?//4MR[ۋkx`yKno…~ڤyѷ'jC߅?qԘN~?]弑ʱ2pUo븬7F oo^iS?xfH|/+hƵm??+oD״ E|#{mkgx(d$:ޡ]gEsx&<_&zr3^ uk+c}xlYBKZi-5٭Z,FkS*b8OTFp-)&()FeںxdY _S>W7OZXzb js\M.^G>ψ9>xƟu-WR< }oz[]W:q]Zi6}ƣq gB𝿄ŏ/uWDLj=q W΁cm{au.c7b7`kph+%o2L)⽎e1 8\С^<-Xpmcv>/_ !D$*^Ľm|9Ok:kih]֚?Ѵ۽7Sg,u_㷉oď/Z9t?:xJt[oQ©;-K 6/f(ּ14@ I-Lp9XM_*|Ad7ai#WY^>08[Abp0T~&\xGs 5? ֑]vE'5C-oc0~sn¾5𿆼EEiY qo~xE›7Q?x^M>"[#h-֣>$JpN'8VãeUʳ9STiPnT?Dʳ# 9a lpUgfo[XW1UNYp<¶[)c^STXEd|#+>ڞcW<k7u+ēæѼ#q~5xUft?FJU/Auý^8F׈ ?G:n ~k:gOɦR^Gq\_!zux][U4]6û|O-K Au xZu#XA(t΢T%,n5|eO :5(ᒫW Ҕ+ƍwNg&.1Z]Z-># N)֖_rxCx|aR`**YveS9_+?)D? '_|4|Wƹ(xw/ǯk:KC5φ< 㯂Pw"մf+ʫz^>XNk=vvesCsg}euv;E=I $H9ѭWVzjPB+QFrVZrSVH8ΝJs' )BIJ-4'~->uKk}W_xo4~tO Dֳx~$GzCǪxr]{qs-z\^^;5q9ۥa™8/Q4.Q7G?x7sr<.AVk̼Ysl攸\H}eh6FiRjq_i/Ci0 mMywidW7&I+4qmiqoO?gtӼX<3- V+_N<ox[Xuͩx{X|G7,~ck |E|MG[^":nzQ8Q:)QN8c(@(((((((((((((((((((((((((:Duv g"֥n_k@E] |5=[Z.yk>"xזaIM?H_㨯6#E+wHmclG4Ms4G֭ ~!;Atm[zֽC}resjY; |KψXSυ߈XXrJMvYդ].Etr}k+>#`s/oڟl{S_o>}}q^kG V^?Xj.H|w #Zٹk DN4]Jm`TB".ҔJʧ8Mάbxl,{׭ R=s?*ח7mzh 36x۽ S=Ş%UgÞU&7:6.;mtkXBt^Z4 _Pqt0|}?ZG]]8mx_-žE>^:.xK<@_^CkY^zVV#*i^1U0JU&N#^YISJIFS_m[#`1thF]H֭ fxmjibcNHƕZgj3WַmHѬwŻ.h&/x2S/+Ѵ_Z,tT~{-T4Yx2K=;oū#t[oV>smi>!|KԾ__<4 43^LJV=GтtdOdoગO )KrEyRUƓO,'Uiisf /*3dWN{ u*m_|/˪xŖd{[3/ Yx_l|=?'4_%&4m]o emeux^Ck⏆PĚ65o]'Om? xT- o]ZR[%7N*Nq8iKsW4b%RM)o [YQ8:o֬Uu5,|5)%Riў1X)ЫR$i@SC׆,6'ï5O6 V:ĭovZ| \|:Om%ZM:eW{~=aM'~1/As[h {GWѭt-Nx k}ԯRXg 7/k*| П:^f[;[&(ӭ_xhཛྷeChb+x~۔f'75kkt hI<@sZ<14̂IcB\r!ߍ8CS¿_ ou]O:o^%4 GKԼixw<)/6U🇡X9<-Kw(((((((((((((((((((((((((((( Zo?DGWh_-j_P^u^5ZCOcݭE<=[ۥ˧\x;-GYk Ⲏ <?˯6xSfz.kPcYχaյ~muve n⍬߻74߂?7/Eg$Mi\#EԾe4H_DM2-uB5i>^^wy|?NRZ&-hFeP L'7Px_SWɾ,Cx)/Ot_u2iwNk%]jX}1/]*񧎏A_>~MǏٲ kú|~NlRo~:.,[Acԧ]#fú \ΌGʮ&IX|Ct+Z7>uyb8\]Z3N399* T?1G^b<;X?Z<;km<7 xQx-;Z|`u<$uOOm:LKf: 5 <[ x>*_ٖKN1n.u]g^&ㆶ^쬺%)5!R >TWsЦBWrSJVXbVa:86/.yFqcs:# ef-:8JxCï |xѼ9߀Əkx{5EqNJ#_w4F9]5]B(|? u|ste >~^/>*xS7z~AVNzG}8Vq q0}Z WJxx M ~? 3kV -z&[]*]΁@ˢeiw0py&I|ůa"Ҽ=_/xt=3R| ;BԵ xE[FExGXb4~(((((((((((((((((((((((((((( Zo?DGWh_-j_P_8|s|6<7cox#&_|AмA= }oF}?zᆱY/omoouiXIeKV~ [ 4/x'j:N,5K_kwZLW+V-K\ 77niچʰ[iWw0 9;=GZkĚ4OjN\ғU7Ln;{(M)Fn0sINZ&WsO[aZR2% NKQE(EQqOt/:xxS4?ƍw8O i^;a=? x_FדGLڽ!丌M*\E 6#jpê]0xyf400y* +ឡ뿉l[^.ggUj/|W7O?4Fu>h<)xŖŴ4gkox_x!4?Eᛛi㕗1VRjAbduC*Zu9S&ӦrRLMzTpMSB+ ,apFG8 KWl-.S7X/x¿goVc⮝sY:.{y/ÚƗjxW:QM%wv5o5o ^6yx➛iW4ՠWy/A>wusxĿ_XZznej|<ǀf~v8Ι9qS{Gw|6Q͟ I^#-i>aaOO]BڧB 5*J2ts^ҔhSSJ:ؘnqTcN(Rpnj|`ʎ8| _S)x< O֯guO U2[~ /PwXͫEόꖩH/>7ŭ]ϭcҭtoOM?tKÿOt]xu<g?|?oxg^qUNJk6~a<;|?-NK}[?u;!BpuӒpЫܣ\՛6P(PisyW K cLX' Cc>:h*)fiƾ"Z9u*8gJ]ck*\7|!A/4J}W‰\֜G\jՕ䇴>Hrγl(WuDXI( 7a7YGcqVo:؏aK{8Z|kh> }eu xsPmn8uCC~Yh1=݄뚔Ԟ9S|&gkWZ~Rŏ闚_xoZ牼;tGEsi{]D%ʭ8ikPg/xHl|6Zi>q_x_H<.nuW| / K"!QIx< ux] XtJn>x{E9:}xm{ju`^cplQxޢêucz_W2?}^?~?SPI}?$?>  8D|L>7x^.{hoz޻\Y?I(<1{N0uJ4B/2CQ,2JJG8^ bXofJ &c\[SoMd#b0ߊ/|Z޹(oொw`hڕƋ[&Uht7Ogk4b6z-mO?Oo{>8xίSŰfWWG~?_<[eO^'&;43<*9Uif|-Hb0U0ԥNaR0V8z8'SzjXgwLeY.+3'(biPcfYq (׌O3.2OG_~xoAc⿉g&𵞛w"xTO4]oFѤƢs[p0Z}\F"HKJ;UG*ZsnnJ|/Z^96bGOpia8a*sCG C]L=|c.Gd*uo>Sw~~& ?~Z5C1 R=^_IawoW7|M-~??\ϊZ&#Ĩ ۣxx;^aH+x>/3L#zTm{7 bx_G*`cN4㆝zh5aQRpxiЩPYΥꘜ,)|1O;aa)ճ,uZ?T/׃R&|x~v=~4=oV?|Io~em)J~V~ד :H5tC4Xx~>*x^4<x2?M3лë>sx-'ҵuqi/z6z'S*N6sU)J0U)B8V+KRNqi>VWxѧaE,N"l(wp|ƤpS[Cԫb+Y*p'g_xkSͺ'O>֥y N-;ev:ulH/77VӪJSo4|R4Z_m7ڭ!|AoZkq]Rok񶴻öll^"Ӯ&pMKG}F9>!2|=a "ׅi>"ķx Dν<%T%*|Vp)U!zQV%*ђU*+ݩ5< |N ^;7G0հ8qx|*XnxF>ZkJjN5G}Sk%{K%߃|auho$׀ <3lP TAS\#uxˆk`O \ +1Sղ QbrLC1X rBXho =((((((((((((((((((((((((:Duv g"֥n_k@E2a1í#5W,O|4ЯWHկg=C~^K[VE=wK+V\ R=.GR5/b4HcȺvah K (q^0};Lgs;]V8Υ,k2-GwGY5-YcEТ< ?o)ƫy[ExjON'5_CsE=>L=F+Y&/xoj"Go|gqo&5=eos w|ygiM3^3D|kCKf2yaA*Mb/MB: t$E:UfU9Sci42<4s ,STPؼ>m:sӝ pჭ-O~ |'8K$QxKEsZjkG7I4jOe֗u65غG~㏋-k^Sƾ?}o G[ճMΓׁ<xnfqxO^u;Z%q>)֝jm*THΕ'*ҽ9(S֯Q*TThףG)iFy#04N / DX|1.k߳Ex]$M2w6xVԤ FZjXl5:?]^N17FBL=?Nt)󪸅+GTSrn,ir|&3R<ޥL/a1YV2RymIJxc3d8|ŸqqCu»xW_Axw9|*tO DköO/5{hZ$αumcl5mKU%ԵK۝K+(v@А@u nVg^{:tQiRtF=Tq#RJӜܟxfxڸdž`8ѥGXa)l;1xSB:j+UquqRZ|7z׌K S;x^$KIK_xOX",]º<~8w |\'+4ZVq:mݾkzhukech u;[ b>:|wWſF+{{VNq_ xSE5'H5[Fy- >qq gV>#5ly& )1mgLf|ʦmJ3$n x\ yv{y0•,4r|)g0̃<7㟉մ[vSRF,,{s6}OZikhvie姪Wgy3?a )gZjx.]p5>ҭXj(VtUz"z@p ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=WnMu? |Wn 񆱨x᧎O"M>CjZjzUߟ.u:,f~Xu?YxwM𧏵CKk;{l-4km _ ڧ-oxYN .)j ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@yx/Ǘ:uQwmx^ѽsx;\u "Hb}&NT-@̞h_x[|@<>(l moӬ13ht.D,9utt]_XAuuzRu+QZL_PPEg#g(2|Xox@[X_'ƽO:ƗL9|o:G$|#f7g;2j^)'#Ѧ4V?XSioSoƞ׬AxKFNn>ĺ|- ~/M_:6k_9gumPԮg{ˉI ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W60]Σ:ֹqఒLVp~Sze-Xbѧ3x’Ii}th?g7? i|`:V?[/[B=|vDwb6%ŵ}YSu|9ɠЮt]eT}'KM6:y# JI4r:H@;z (5~?dk϶MG-tҫydm֑ 7C)7J*%w i^qwϷgu`ObyaBc~^gNJIsrڭ_wOV)?ߋτ>*xNWЬ|ixkƲO⨼#Ohm'5?˭B=Jm&Q1qx;wgOf'¿?_<e#JL =GV1ow_SiW<8mrUеCt=XN"*՞xuj{ 1PpZ*.9+rN*~l5*xf;12W*8!5LiT1tJ M?<-__Pφl5OZO>!C_>-}iZ /|Q?/G}[]wRG6o 3WÿxOq@_x]Gx&N|>+_pu>wQR0)0_]VujO0|K V ~⚪MҤ\SJrxX\,E V;b8_VdxVWO TK,C"xLsLJЫNźŚ/U7~luOZOZ%?)g7ڧ~1[ zUjv}axs>xww(U⧄=#t=[ +kd/zf"L|+-T$=NO:[uZMI9R8Ӆ UQT0?>?ٿo|ME|A&߄Z߇^ ([2|*-|UekxozdžγwO&K薯k?~ j7O945Zu&4x^i/شI*R:Yʦ)ʼJU}"5% ajL-ZѩRRs:ڻ`pxgy[Kb 2cBWÞ;~3 KxO~!ea_[ۋ77Z=|to\:O3|]>!/T-,xH 1A9|93~֚ԶAy~+XΏSEN ,URg(ƄFRԍHEsjccrSXl򬒮Aø|-~*b'Z4^RCfTrefU|4J YGx[wq[Oo_|YOW/]7(gğ.3K>ǩ~_n㿂 wwU|Nߊ4x+Ÿw_ 6CO'+~=b7Z--PWo _?kt>$Wo:_3⏏OAΙ.ÿ{ׅ<[ajG/ b%N 0xxzlcO%T*JaeIRqˉpaBmS nLeEzMYfO4%0kᅩy/1,Nǂh?@?>9K⛏;dx>eif)π>%i VwȾѴEۿhpx~ڃV0{?hO 0]⸼u>.kNo:x+Jԭ$o:^iN%LD0:RၦTc 5p4BN8 9ח4jʗa'_`jak *4qq[ԥN[|jO6̪*pX x**~{|B& ?43NeJ'mOUp0B|^|GԆ> $xƝ߅giykH%gh/97}-/]|ɩC4u'n7iziְ#ZjZe#G ^'<-(//[2⡊ʞ6_-dka%8R̼j}j[m߿uR jrk-E~xuQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh|'ƵW.'%ؗQ1t`P,Ϟc [.x2^8ÍcFotwz5 3ú*OVx?G]_|3zVP_Zǫxw6Zm{mmy^Y̰[qYbךO?Zc7> .BO_tDŽƜ= [5ӽi4+œ+,L)­H#F5IJ:0j<.max\ *qO4BXңӥS:#8Ɲᆏ~<*M '-;|I"t^])}(idDW`ygX~/M7c.F~ xH/o#hUǜ&گU7q-_Ŷ[WfϳRgY93Npq.rJQ:RQǶPu&U9Z7|'  8߆to?X;xF[X0i# O"MbchM > ?/_6[#׃1Ln"M iM%aIP9-O똻}k̪ӬuZy)VO8% u>8Erťg΢Վ3 ƣ̱s c2`Pz)R8A(lgۢi YgGvm_XO|%lK7}]5qiqiK/<⯅'B|'x3Rx;^׷n< 'lCY4}& aӬ-㳴2TW,DZQ4TxέiʼRr)T|Cx:hLV{K>3Z'_^8 L!^ ƽlʮ7ZB4eBL_}߄ ~x|1}>-=o7&h<'i:RYVW$p`q9 W_|%W/k+ß<|;SW!eԼh־]M:iY^- խEVTn"N>o~VW\ԓnϳ9g9(19bL<bd7_0:էGUJU"M)o߇<= ~x>?!𯅼? cÞwiDҬtX%km{{۸<*e{%WlK3}n}4'TU4MSM[UԼ>f_z-/ndK9b+u$RrQsrrr)9I۽&w׭V:Ue[^?R&T:ZիRU*JRJ&۔Ʃk k[o juJ;fY>$]ۺ-kizڬ`]SQXA{r%<+Oiqs_<#kxF~G¾x?SԬbKKSi O:ơ6:I{Wol]I/ 4Z-k; )^ CQ?O^ ߇}|'ux5s>$ |Qȷf.+ӯ׫ѿi]:.Z!qC ~3xJ >nHsJ5k^-ѼkkngyPts!ե/xڵ)Ujb*15խ^"U=sQsU)JqɾGc<8^i3|sLfk_,Zү:RNu![:Ԝ)^:0SRsxgX|;o xG}͗į xgß#:M3ŶQ]EsoOJH]g? ~| גj3xkw|/˨L}.=/IӤUVK383M\v6jB3V cWVjԄT!Rg68A(BRNQQM$3x1u} fkQbcbל18=B գ:h40!>>kC@|5MV^fiedڦjε ީ7Oys4xcyjVX}77WQ<Vw %խ[4NȌA~ 13߃KoRuﴟi=ީt]Ĵ$u,2ts u[ eԱu1~x8TX|El/jt=Oe((.qMFn)*VQI_cԨ(((((((((((((((((((((((( Zo?DGWh_-j_P_ڥw[M+G㏈ZujT6v7/^x-nmvѼ7K<<{_ٷ@H>sj^/ojl|0[izY޻`%+g"jW.${A 06Z\I-WBwuxI'}7_T} Pe,M֛s$)Cg$Xub>xׅ|-Ѯ4Ok$) ؏|G"? W犼5|[xXnkM73Su7OtmBV5k+]OJt˸/OM;CO[[+ibH. 9ubz((((((((((((((((((((((((((((((:Duv g"֥n_k@Ex<=/%)v":6]4< yA4Qt:|ag;u-cXV7:n: x{7AoI%սKM`u_CR-8/; *"e/4RRUX -- Lnn|;>z {qӵx_W~'3|.I|qE37|P/EѼMkvv^!΍hy:=oT!* )F*]dJiaUWzF(sFӛQy(7nהWVie'37ƍ+VSL^|]ៃڶx.~ wmnmo Zf׃|;a{Ltol,cJ{m҄T();Jû5& +x\?`OԥuΒPq9L:u%f/>FxiĚ4vzriY}mR7ڴ](. >T5i+]]=kTٮOQ0B9*×<Нބx6M(+xyc#yWX(Լ#h؅U #F|.lu_L5MA_x>\=͎ſ| |]y5YKnknVY1=ʊ((((((((((((((((((((((((((:Duv g"֥n_k@Egǽ7Qdž/|QƗoix5xm_TO<iz6DմCVPc۫IxVOxiZ+Ov9W Cj?wQs]RMtw<=a-X%5 <.yuw7}'_>9Ě\h}%6 z=GOӯ׶m<`y>|xL/bϫxxG /Bx_Ú>ꗺN\iVv70׍}/+[鶾  :tmqwl- j΅{vjvKo;Ki;D#xKF8IJ.ҋM;'fNFkTVjRJJp]Ӵ>e FGž-O]|hU|sޥxB¾&Ҽs3_Et,O?|k/^S|o6O-㟅V7|;j/~χĨmnϊ mRm?Xw FX(Tץ1=XO8>J:R ҏ%8{< ̤fx !aZ18l^(apN,GԤs-3\|Uoῃ[Kψ[/g&U[b<7|_0/qƵ=4GJzxc@Yh|8?8IYz앦/&Oѵj>8Kk_tM3A5XjnX.zQ•Vt,ebB)ΪVX p^8ьZ4k}cC9cU/ u WhQpu:<6 젱t4ԋ-x_ uWֿ|/e~4WaҼMo s?8ƺw/íC͍>QӴu"o mgMºOI>3~x?:vh ~!>7o h&5y/k>;ռRoSVs%ixlm'Þw΋4On-{xAюR߆^ >/x{za8kQxnC.>Y#L ~3ll[}"A{us~+|8<0x> $g$i &U5;7!`oyk[KI-R%K Jpt'\s'VOg1jf\KL.Iў7a,?X8|E:uqtsԞ!NTJti(h7>?f5+Ož,g_=Kv;Ӿ-EZ>¶OOJ-7vm? ;>WF%#7OxWO_K5#)_ggO)<㿇>3dx{obyx7E5L> |@ 726:Y}[lo~ 7tx77~Zτu*-:E^F-$Khҷ^gGVZRЯ .tR)}VTNtTZY}G*:\ӍS>'3̳ `ffk*WkԭWpf0.uXJa? NQ|}5{Ś賹ծnu~Fu v[B-qzm$F #?<g,E w_ؼve /w,<+ϓ^,)N{%~$j1gZTwݤ*1Z$I=ĝG?z9_ jB|[k,~]ɨڼ60톏Osej^񕆟s}ZqkٿׁWImSWK/au;3F}W-;{NE K4QEk&G@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh-|"Z|4C]sxF}2KOxz5ux;" Yj̮F5崙׫(ҥ:Uq512SU爪)Bxq P5/}VJ2ȜNgG౹+6,$3LNmBz\-*dr5W9!JxZ2jڋgW'Ko'U(offM-FXI ?79[Wt Ƴ!蟳'_ $Ӽ#~qsVO7~RI{o~hַ:V"i Ŭ<\Ab9PJ)s=ZڦSq28[9Obq4yq[,`x E %8|~YW08YQO>|yu/:;-gY7¿@~)x]ohr_ 5={Ot5M{[VwŠi׾G ~A࿇|C|;^颷_类}[Cx`4rLhSIF|JcQԝGMEPRe*iZpK4pc2%Ogt1^ʭ,VY7TJl|*cIO #V2nh~8xź'Q=V:xcڎ~4[J?5)5+t#Ƣ@7L>C>%:޳Νk^Mn{SOkKcj1ɤ]EܺTKoy=KkR:c:ԣQNR)9)SW-fRRM8rL~ c)N2bpW8|epXVUKq(ՍHT[D?|M_ݛx?׊5{x|s;<5 Ѡ/xVzvx^)hf.#{ &X\Zҡt7>o< .=~OҴ[BQԯ$Q5;OT5ۙ${ Oke)9'*>Qo MSb9uwsSXOkpx֞#تLRuiӧ̨W*QN"tVg #IQHFHC A xgc xx_3|McH-4_^xkao࿅W# $ :( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=W<x KNl >.$}dž/4eҬu۫9o7YƽY|+ox1~jo =j~nGkK++4LZEwCp<)j}+ j XM/:A񽮫oii:ZwgouNv:zZk9k5'//|%W/u{QTu2}D֮jv|'4ۉ6VBQSFo4Q@P4/W-WM⳿l,c44J.c`ӯ" 1=ʊM6wM;4LNtӔ88IQkg&kM3g7? <'_ Wx -y/xO '_x7' þ9>jfN?=F^ϹКͮiikφ+#ž-e=῎~+Z}Wv|E}pjoN[}O^֡lLe()tNї#URxzR*ӫ:TYYG-'fVUVc+yv#ЩͨVPWaN'ʾ7Q]aN/>&bVJ8~Wgh믈?ě=C߆|'g൧Qto |8B?&$? xWR +N:׺ahCR>.TEbp^"?aeRКyB ʜ$.]kqi+jqtce8摋aW9(mC 6gW'U;h=CῈh/ɪmSzgŝ/}K a˛ q|_/omVm:&k;eI/g_>д3a-:K7t7D%%e&_PRXԯbVTU x[QQr5E^r*2>C;acԲia//HӅ94k0xNhfQX%BQ t#Fqm+@e _DӼ-? >}+oa v i#e_5 /Gԯ,VĿm ,~8Xwڿ/4~*ݮm >6Ѽ;_-~tK k׾ +{K JI5W0x@M3dڅ<;ynM]6NP5K;h z'_E|-w֊X-i'[j;O/ʹWa ,=SU<3k:<7jF^S:5wi-8f%6GJA_PPE utYD9ks+'4>;G(Oa|H,=!sI5C}OKx/@{ԓz4Z][Ğ{M"Þχ|OxS^;wtsO~4N`%IN AIsE9J|R+,'d} ^a0xו*ҧUGj:rWBnNZҨ!,A M^"~&o8^ZX&|u' 3\Tӵ'ѯ>C}iAExj-0|Ӿ7" O4_O㟂~&ծFyv<-߆ZxBZ 2[kY-fP{E֡*uBu,R4a]N &1g+IPLzӣu1U4aeCO/搯˫Bq5/Zj8l}Z0CJxgZqO[|Rv.GiC^?6cci/%yǏm? xK_ ~+i5|`xV_|"!е $?M[SzGkh5O j!b@>[R*J*8pkg]5W#I(Jn(ZrSeӔv/4噊`aC4qV G21pjU00ٷXļ$i`8c$F{%t[&?d_~6<nӨ9/~'x i^#Ijsg}Z_[W~+<7|2> G/txY}sږ]kI~7_^348|/}[vfI9ƺ"*rt#*Rs" Cʊh\G^&_s8`WN FW_ Vym 87Z:_4ԡa]W.Lžm:qo<#/ٟI>|"𝆃-C?~ ocrixU~ G7eմȾ |9ռOl|? ޳hm7> =_ƿ<7-Ʒ מ]{[X'ͶaJ˭"]l}Jm6UЭnլX.Z)V冩u8֥R!MWr,NQ% ӍKÅp,S g|bpat,V1X\yTkQUJl>>,Z _[>??2ϑ Ķ~}쏶?˵-zy/D~4W?#U},_aּqiPxW:-޼1f+)R1N3NU)ƌTZ.)7iZYë/\1-gïx#Oݵ ɡ|Z'Se>{mAmSZ\hZ\ƾMߏO Eza. LWJQy /®o/TugR}%N$2jU'Nq+FPsQVo| J/ _<6 C,F F 5UN)œ\*IUNg^exk"}^txoX K4[3P{Yd#h:?,|>׎cN'<GY;_k mx,MY_;m}S._`& b:Ϟj?'<9|=7|6hgmu C~-?t[7Gw?h#[;i~՞>u7x;ÿ +Ƕ~Gŋ^񇁼s+Z7uumoBլN+}>itnRY9v?Q..O2d\U0K'xF5䯎r`s._Vf \. _^g|7!|xo5kԵM3_5 ;/boMt|Jo |>YJxoI/"~̞/>|e:x?ƿ /|ET|9Mt-k:_- {X\t)axZPKʺVUP^֛St&~++eyM\ni<A:L 'YL2e0S'#W}{ (bj'ENn%hK/|I=Ǿ<6Yi#Zw|yh|C|QAxFIn`Wφm7O|5g۵?\?2ojoRL^%š[vf~;a׼O߈?7:ww/ʥupT?mס<ӯ\;¦Mb1uq?~#x _Um>ަľ%Ý/Ğ _iSQokZ߇4gX vwV:)m ⷇~V~x3~|eO0־6'ڏ|M{\I,|wX6pӭ )b%*8Ӡ8ӧzR>~eIV.ca0խx:P`1l6ƵUE`i5rG)F0?di|U4o>-r> >񥔚x#5ËoxŚKGԮ!ťiSǩiSئ{ m鿲7~x6_G½ <emx{Z5go>/oVW߉1gy|+ehMCxec 5Gt#*U8ᰓJ?Qm&'2p6.yuphʛ }(ȱ84*bUny(Ԕc*]4OaԿoړUßT5mk%GxxK5|!KDjiKmOM(꺧2~I~|?¶>#xF4t;Mxᧈ5Kw1j2K[y e%h? to?|5O?kn<:MwGxg~+| ^(wY9Qk , KlMYZxypM|,6X ٖgx_1` *O`1ts*ky#)7{ ;TOP͒z,zVVGMN'IeaxGMm^w7:4}2 LkxJ?;sbTyh:3 XTT +((((((((((((((((((((((((( Zo?DGWh_-j_P_8|s|6<7cox#&_|AмA= }oF}?zᆱY/omoouiXIe<}~>_j?% xGt?i} MejQ\_]Z]Z&aꚡ0<1k@u_B-WFYZe/,ḹ:G!K# YQf.e (Oݷ<-?q&{ />.$,,n𾛦Gm[:ޯrZxmGByפx@ o_4Yj'|-6uKm#Q4kKSDKH躔ZT$0NIŽ$)Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+]_xu}KxCF4 w:lS#|e⿂_O¶:w+~.ĺh}–!O oZK|5g4W俚h5cww77a'}ҸYEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(>>>3Ğ0}jד|3|wgtdk'>\1j:ݎVڬu .dּm2Ksyžu6zO>*C|@[}K4z_RP쬵)?g {oj?WqEp^m_fLqQCYE,,a (?n4 ,o2x1i|AEw([@K Y5$uҗ'Wuo+ZvױՂxeeGiSl+~&xDjG?.O|_{_/Ii2xvS|%6ZhOM_N/ux+ru$+~Z_.v?<-{uŚG|y;඗Z?QgԴ _* FV?RFTaMM[csB 54]8ӕ(ԔŷokVPpXG,n(q9+NiRTr'ƖOFXZ8J**(r1~?_ >/?h2xc_uO h>/¶3x=-&~sOO7ŏ~oů ? K7AM.hme{Ŀ 6 gY \oZlWwK< SƝ|e\Eldr\iƄN8xίSŰfWWG~?_<[eO^'&;43 [_3^2Ҭ6Nh/|3n3ÚFhYSסZUVN՜cM}eIJjSJs##|w/~~_/|P_ ^)M[O'1k~ Λ|2aZx+i_4Z$7|Fu/x{ƽ^.ύ<3GּG7:Q#E.`UZ g[ʔNTT7V&5NUfn ʞb3aS0ea*SYypRf"a^5F4^COEYo|?1Ɩ#K?%3kVyx3V8Y5 ѡ_s QmKP}BYW~)~Ծ2~MG>(ދ? izW+u{Ná8,l7l4(Τ%YR\%>|L88 O BYa(,bqԳl gC=/މ/7eY?AyLnui%鬴ms58ֲ\fC[*̥*S9cy2OOTVPlUQ۷èh_~xN?g+ >%k myO)πWĽVi_ x^ѴQ4xd[XV mBZGuW~ w⎉_£|o.,Xj~b2үmttkqj yq|8V089jg8lWvH<{͞+N+!yS`"S`-,^oOk&߀v5|2~xH+▻NB67<7c[[/k6/ ķzn/xխh; _~П |3I3@x⹼Fv|hyg,4][5k]W3hӚY)c*­8G GOQFXڥ:$JirB^6;2lL*6<>3 RCIή^x\N\X&/5R)X|>"'Tpչ=7|\Wu h |tO7Ů|akZ|3дO3'}}gi|gkl:?-36E5-[Do xWԼ-?haΧnkB6eD,E"Qq.ZIST`$Sy^ǚP(~_GG9ccGK -W^0)Kb(Q_}GVNYp&ּO߂-d_òOS'~YCk43KnG~S:LE?cJW  WNSQPƵ[ԕzQY~w2l+7gP+0fa-lF(⡖f%sY:yeGO^~ V.ڞ|>]SZLJ_wa4VNIgmkpiZ>" q/k,<-gs{/{>.3y{^{xQNA <^ĭ<|tcptkƴUa֎.xRhFhEFnUT')^$ڌ[WvWKK|; ^ <ѼO_G=ki,_~(ß^/'icgh^=}FCeό?UJ(L.^ ecGSN;ePl %n+)[q*QK4:1)乪F01+K;]@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh_ ^a;>3',[Kx6â}G@].^N+ȅեg3Hmh{@?k.4;X4+v&!E&cqg|LjOjxoW>i:MZ[imckmgei [€$PA iQ `P (<|]^0l<_hw^1f_oAQk2yuO jiQnfK _ >]|\'>?:N[L/ Yg>Y|"&[W|'<1iSh:o][N q:u )ᦣ^4N5'^+//Ϟ]aeQ%b^g*=L8 9f&{YPP9ft6?[o_ oHxL⟌گÚ"}D];[(t-Il?hiӮ"f3⏆?Ѭ.ݯ,X xOL~5ψ|*╯|x-cT״ ӯ4?>?4_&K.M$RK׼؟^?ˋ|Awk4!6[+x§VR3;jX<@l]X[iJʬ9:8zPTe)F0r)r9VNsܤaa2({<&5ҥWV!Wjƥzkʭj?<} SV~xJadXվ!G[ۆnz^;냬wCԒO'l<sXxGƏ"_U~ l9_G?NQO 'B5y =fT<E GVcJ)FjNSrʜ*T6"HᥗeUxuե7 F ㍎SaםL5LD*¢Vc(b9D>u7H.ZDŽ'|ajvf֞.ʫ%^uJ"*VU*ܴUV_:T)`b5p~3R*m*xjrU}O+?>55g?g"!MfMN 8 ~k>$x[mOV_m x:|Y_]|<<>zZxGleKЬtO_Is0QrMcq^U t.ҚY~tڧOnc\nt#>$*lDV!b)-c+_p ޶j>/]wk|!~Af} >oko^njmn/|+jޙw6Mazb٭m'uh]]jXle_ ^&1BjrҜSqqѦ<%(~Y|Wou_GO~9f⿌/>]X.K៰˩%:u%|AUtAUݜbtU:T0nXF 1fFSRXn"U'RF1N<ܧ797\ok+F1I%dWhPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(~5i-zug]-cADWfO5|5mV;ksV6s^xoP[?;/ 뷞;.cK7to _5^׵k:I7隆He6&jU':犾x]-:戱ZE䮭=Μ5u|5h#pOY /4O,xBM]wú~#IS'Rosp7d ^Bu ‘Ku -uixgY|/o j Ѽm;g:2;h((((((((((((((((((((((((((((((( Zo?DGWh_-j_P\w|?453OPM"}OVo!*ЮY_[i~#eN5==&UmD=Qx$-ƙiuZ^xľ'v4Ѯ5k:wxDҧxcylXv:fhu[i^ioaiq$VV,ֶ"Q# _PP^O-+7{O?x]}R'ŏ|& OO%~ |kSism-4Yk1rH7L֓?t~<%>yc^ ~*$W|*xnm,񷆵Fl./S|_ x_Z⛯x{EЮ|O;{OikTzƭ%_w;WϽ\ Q@Q@Q@!!Af!UA,Ā$xI<Fxo:-|# >#]3_ahP-XjeՍq\5o<,LDaqXV'b0x"QaqXzbp 1*tQԥR2EEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ OE:O¿xA់AԧZx÷6ωo)Gl4k-]1մqkwoZoN<96{o-a?HQmC=.=v YZ{*^C~|O7^B'yɾxH񅮚Uo,!7(8]0>TD8+.)xl\c,5hVoI.nY[U+?6h/?a ᯉ_=e᫟|>~iZڷVhsk־"ѯ9j~+m_NJ~1~^)> ~0iKR q_Uz5ѩJz'Nz:K=WS[9Nx_~ (>%-xj.a?R/x3Kofx![,')!u952^xgA 2|Tw V^n/u8ټ N1E{f7\xiyHk gi-Z٬R ѝF:(^itimk|Mֻa #?f.TtCLvc\YW4'm ?Ledjb8.R8?V%eτ^⯇>?;SR74o w._G?<Τ-ZVljⵆ MOp8L#r##go&`3Œ/>KRм_}r_ß-wf?a7|Ga6:֍C_685< Ưa8̞.wf_ ˇhP*ex5hbRas 5δ)|T|%=i?Fw'.Un/eg]7j֋w j ։_hV@ZĨ>k3-4? iMY/otC:._O֤|f\8=_SyZ̳\E!I#G7 3 GW'Z\ T8lRJRᳯc1yD3:tፖY`=WM重d] O ƍ_8u8LJc|!++mkGԼ1iZiWQ y[[n~N|,~>?Wx&e} YZ5+? >ia &u_s 5{+mGUmW N'ܻ<,˃psy6],&?q<11X}l1g՞ mxRE>~пuOgŸ?DiO~cgc ~!/ x#>U> |%)}n5-^NO h/|o&GoWsEwW-|7EEվ.@`/Jt;jA~&!O$eaS/+ Q;?l4̪ n.̪ge,?xC/+_15Nt=_Rg[x=f_j^,tψ)ӵK_*ÞlRI6_PI"sc٣A? >!xc{_ZN'G~0>kzV^Z??> &}-m5/.ͳ ฾ f+::2ʲe-9&syeeQgX+o?~='&fjP OzVkĚrw xJ-چjї>'Mo>4~͞ IGI[MwF𮧦-x":~,Ş"W 2}}p"#'.K|Wk? +> W? Oź]xF7ϋ<_A{Ƈ/֗,L4pkF_>+d1hU%. P,'_kG1lf|SX0gUl>OŹ|5<6}c8+fQKBK_+.#UTWb*bZ1` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@y׏#{R:Rk _ViGxzRm$4ltH _햃{|ӥi.'=wNtWkV:{4k>E7O햗h6V:-mŦXvptEFWH : 5 öמ ִ SKKcQ-r +D-RM"f/`kNMF)MM%oEӧRJ'VI(SN29;F0Sފ)6މ>Q:-~P֭jpiڕ.eIu{_C=:RSQmktj|R~ /^O⯄ CM3C/oA4KV<-fԡ!UbJ2gF2N9RqjjܵjLW;jRNk / SlƤʔ3juge¤.&2j]Oo=k_5 uopXZP%xJ:]=|+ȓZ٦-E<*/colM;w>03An: cJ[m/Dխ.th,lWn2)8Lb#0:YsJLsBi'J,quc\:\5WS)F[߆<*|{?/R|*:P>{ O'BKЎ0Z]_,~i> t_V~~h)y?-?h:ޑhH=94mRKlbtBhahN*9JLEJ3NSIS&Qw8xfw׫f'3/S_[jғ:J.Nu9bI˚N Ni֛hΟciޙZn%XG-]\$I$3F)Z]>q X4hox?zjgsAҭ"vجi.Gmn%N{ >PhV5al=)b1thPN2VZ:TS9FID : xzmv_(hw|K 2o6W0>{ewk~p _=xKB-ˬxŞ լMCچi%ocM%" )P2`3.'paynq42֎\}Cf9&T*O auF'NV |m\^W ³:s}^iH%ٴHĜ? Ͽ< P7?|VU_ }Oh< h~*SN/ʩHnSQ a88p0ь0IhaϨB(1"*) ~)B :>Klr >hqߥƉ%0ެ (B\pgioc; #VZJy^|AЭ;_\#Mx+4M{x^;S,>DŽ>xJ;׊|BtkG[T,JI=,.y8+Y_JX܃ f50y'&|9KR*9|\hVy*J t~߶_ÿhzgڳ5h^24}k?wWEm> XZXf+^4u~>^~ ( Zmލ"w O{}? ]ic>%'pgqO8x/Cx\>^ Ø7> O >k, ֎xFi{#7=ᏈZfOٛo|}SJesY| ? |<^JuxT̑:w6F;>w̸q~i8;=qFuu9,F*γL#ba*p!)O1R7l㰇WGr;X["ԢX#4 NWKU4}BMew p?ge #Y7gkKῃ|/n]wѴ'wVi3u#41b]ƞs5^kę[+|;OeX7%wF >c ,0ThⰎ.??~.~|?~xB?gFQ.4]ď^麎ys"!;584=MfðY6.-8uuuegss${Ki&I8s(,3JoY?:L.8f&"`08,YU'S =(@)xGYxS~ׂ|/ FZ_ (|MGş hnbA񗃼sfol]g!>ȺG:ln!xUմfK9q4${];sFlEL&"&/R5awh;.]$HZm]"/x'/O|,S=ďh"`ҭkկ.lIm ZƋrzWΗggOE2>1  mFVOh~>U}],:’c5YBĸTOQ֩94O72B9k}jY>?>oX<>qR/.tpyV.n?֫ԔxƟ?g%.G55i ~2<]?s A|E W5~? xc?e#(kS π ~,\Woh>ׅUڨ׮4pꬨK IEWRS)|Q)5c5 Z79{8ʹU\N<1ak|ˊ12T5q4)ciק<6 iO*S0qkԭSúOOo xg  ?<O[:߁ymh ~x{6ѦC<5&m>OSƙ{ xsGq-JÑ^xgW^vYu}!-oR)HhY-=[%Nĺܕ(C R5y9&V,>W Qҟ7c~)ƺX&a0gt19m G"\`rT[zj8HJuj^|A4m N׿@}hm񯏼 G ]q_Y/ms?h-ӢfMhvޡ%GӴW1NWWs<5¨jV>?|_/þ_|CXxW?~) o4"pBcOG|lhyg_ ONN6~8,tkߋ< PV~ ѼO C FHaǾдZ[2\Sq>p#quyI[nnj8kd_yLq,ShQG- ⡉˸{V\xB|L?c312n x񅕯 -EMvW9_eYn5/W#|aRWj\3ʱ\<\s/W! 0Y5,)ჽ_ ^~1E߇1x0?hozW|9Ú?-hoOPd>m't-f{[xZy5x_8NhtK|CY(4X7Z:U_ ~>=cV ͤ]xzS5?s2 ]OAᬳ᜸o.gg\?_bLĘ:^e>f'18f{bCԼX|eyU^~_~|-j~2?ƍ3K^^x^ÝOU4{ oᗃ;JbџTկ&>]7[V_Au=<-m&/B֩o<3'<Ǧ_j:*WKRu U_ŸCp<WpMCqy6#X\(ev;'`~[،lEfc1&:|0 <{⧍| xdþ_xK_+#>.ӵ=KOſ> iZo_j@ _ w?G F2ŏ4O_Rj^8~.s]~3<)l[o>ywiwmlτpY4 WrLj)wC!<ͱ8w q *[[ CSʲb8x_~߲m^%]*? ~g'oxE|w<'Ğx5}>$| ]+[д }{R$ϊ[5yZů:/</?=ZN|_M?hmK/ȼM{C M5}Cnyo7cayg<7C~.pFgn"g p9~>.kWo p9'1Ol>34O-/oX(xgHվ~ߟm{~$ws⭼?5_ ?|1h4X]J}<5|BԼP -bǿq m4/U¯<>8AeaMxML_ujVPz|oO$:଻ >uq/<8LgogըR^͸ q[,YgXƖ3q؜xcጾ(mKo;%Ox_[X-h'dcr A#./~x¾:!ͮx;:Gxu zIu==_݅8ҵ[;>{yOl8مL,M\>?b(8e 6]AڭJ %)TnmJE((((((((((((((((((((((((:Duv g"֥n_k@E1ZxUmFSL|Y-R-&;bLv_=$R(yeG hZo/|EWEZ}=8VCXg5;Hm?6O䬲) Z旦:k.XjV2\Z]O%I- mym,Ls4+ +1=?MԛVn5IOL2_c_1B-u{; ݶz揨-׋n.f^T:sV%(I];J-+ӳM]6Fb0pZ䯆Rh)B|hTC r-sBR&̏k'4k%lt?sIu{Z#tISek`CכO?v6~j{I \ߊ5ŕkIa5Ү >uH!k6;K).slNE`3$(Tؚx1:M1U(ԔU i =(aj>'Ʒ#$YxV^[3fEM{K|nt_j6:kZYd2ct :+Uؚ08| wtWE/{MԵ:\j:γ:y}]Jem5-`먠(((((((((((((((((((((((( Zo?DGWh_-j_P_xc<]ǿk;|eek_Muޛ{}X?_/ mg_to>"^Ÿ.m%ot-sſ tFI5jփrSøGG )֌BB.tq(=ۧ5xg1C/7ҩZlThnIR'f90_C&JU8YM76?eG_?ž[ڿžmzmu_/zE~\k_<-SItdž<t ? zo/ k? 5 xZ_ 6K<;m|H,dl_sټKGM~_7)Jr)OEyIޖZފիTV.zԭVvyUǚRnъJt_𶣥XxĚ++GmS tMF73Xx?>-|;-GMQmd&鏢OC;n+"ɺXi#yeTPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ |N</xI|Kw6/@SSW|-0N/6*B3|E~o i}ZXUxqXhӽϭQ]YO$ `lgQu}3NmT, tQfHom㹉fXXUITH$ @/Q@p~ i_4UkS^go[Z]Ǫg4ˈ/J!'Y.g4Ԝ)SSnm&]]фO(Bxn4)EJrg%{ɨɥgh_K?_"񗆼&w"/UbԔ%R7›oh~oO^Ϗ4MWQߎt_u톹kWVO\wiAkyyYM4R4=?Y[:De🊵46l,;.AvfK K%)jҥ:t RԡZc))ӔW*dԔtld/Tf9~&f8|m*SVhT9ҩhV+6sD [o[SHm&Դw'kk\]Ƽ#~~ Ũ>0Le'˥|}M|_yu ~tx~'|KLÖi`I~S$Ѧ5yS,MZS*QiRIrW)WQG5ċd5qvO)eW3de:c\F}ʱn4sQNoY[,W-Wnj}3ON)gH[Dҵohsb}mufw0 Ū[G@ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=WxG[x^LțQ->ly׈?i{;-. ⭏..?.uѦs>kOCj7Cko_b{{cgMOPkKyo-uM> "G+J{ .kH,\gg0 (dλf6__7ړy>wyښ~ɡkW|l״ >EZw_?uVzϏk|5Z6{jѼe^k{DMFRk֊rN*n/OWWeTܗm J ; Y:^_nNcRļ,fR)ϝO΢i^u'UIyk)W%i4{4c6?m jZlG"WRӮtY텣|V/Ꮟ|5τ5- h>.ֿg|sѵ}GK߃n-1g9>u/vnO?Oj'^Fj7 1F|OFZH_ ;t_z-_Վ 7V2>4[G#|EJɯ3]D`мYF24Vwo[(U<#`TRT~[n*j5eWTb8;5`(ckb2Jnuȥ1Xya΋=Nu噺1(GSL^«_kZJW-|!+е.EQUOZqr̆Yo{He_=h~˿ /(x>uV7>K}5{ ɪ?xz\Q<o[toVFWTmn1S t՝hrj*[/7HД-fTVR~~ b Õ*` kOjVi<'kǂYo޷iV,"𑾹6k,+ j/ga  K 濢j}ޱ^׆5ÖzXGkwuΉg]\ñjTFIʚt8j8ʔaZiQRy*IM*FS;S NX<'`)VO qrS|JƽLE8uv~KxwFwqZxNܫoZ|H_~#j:Yx 'o,|",5j>/|[kcO_|!Mo toM;@~,x#Þ:pIu[:-WMRK.ĩ?hƜ+RR+[6S:u(դjm0/SQP̰Yv+G1/ O ,x|WNx*? $O+^Ypiq>t5t ^*&b[[v!xoK_@}k|ele x>?XiZ׈)xNNhgiW]ƃi7ZVwB^<g kOhu i7Z<:fӯ&-և:~}*0),߅(, QITʨax,Ϫp.6қ |')Sm._{}g^/oΛY#់&լ|Y߃|CO Eo>4O>|i /x$mKD|%k%Kڷğ ]1ݬU-y649\j8lw \eq^k,>Ab8$Ge'q&WW)TcYeWQlž*wO?eOB_m|m#³7;i>u1⋙tC᭮q}^=;ⶉgis$NyW>)~,>Iףp9LU8*^eP1x5`*ೌ0oW29mj|u,vuxKo>0~ |oҧ|iÛMGynǿ <] yVZ 0iG4E]&~ j eA>=:|Q{c۹-Rմ ,)u]/I2w^NxPxsz/VYU:a] m\?߶7 [ESᶛx?> OC5]^??>|57F_kGi]}Tӥ|T|cK |D%yF;1qm\P(qz?xC][*/SE. SV6>E(>ĿT9[u? y}Y|ui| #AxiU1d, NOŲ̏L[gY7<]'OG/p9W٥,9f/L>]Gku鐈o_vCV;ft+iIGQ]I%WQ_xO9#-[HgU_UNJ9i*? vڗ>%3Ftݰ5ape)^1FR󬶶)kf N-l7K̿Wßk&<)s'5C~ Hg/ÿx3qru)KA-:ƺ/LƧ|j4 <Pǁ=g[|7vmq׶1^ڤWy_qg`|CWs :g/U4%r|\1q-q/ ߳׏🂼S-So~ɤ? .x.]Oš!-ޅyZ.kcGԯռaY,5:k-G{L|R|:MZx@~~0Iaƅ5?+NMr5-NMz;}myx;(Ϫx9Ĕeܣrlj۪\p^"enX|~/F+Yu, `zD|!Myoke#]{ZwqڅkV>t/iZ jV^M3iƞ^=f `~ߴÿ6YSw&/*Ү&{:[MkqwcO. (y>w 瘊xq *2Lۉ9}_B[ey;F!ƕj~&h.߅<[>Kkhzl/49x>t2,Ṭ.eN &jWVLb-)Os Sx 6>_ŝ[7[ټc>go|1q(1ïKEͣjk_ 5oNiz;Y#?i_ŏÍJXK|V6[,{J>D7 Ť 5/jچny^r~ xøV_6&xςqΞp+SJgi՞22/B8#fAno_(xF?+D|3PP4j/KF=֩%_Go,t/hmSL_ Oڗ[Sw?]|Lt| isS,5&˟OhY]Ew!ƹkʩV Y|8VS,VAGc':Xfga'r*eHb$goi0|mW߁?tcןٞ5m_Ygci<_мfQgA ΁͵ŌX^0D~1[GωHKBz?w(5M kti{Kc;{`s,|9Çh.3a~$̩dtsaFdϮׯ0󜊶sHfVm7|0񍿉(Ch"~!G2,BkqݧmprnVe/u1ԭMFFIs\wPψ~1hCcK}w:v9Ӏ /_RA4sٔ!ἪRhqmXV42YWq˜yno>4xJ-.d<WuM0]\KmxĞ0߉^wV/}CUhOx\OɭxZ}RCᶕ W?^m?_5UM14xZg5uy廁$53Z9FgqxuJ]˰8`+Vɸ2ZLOÁoo_C׵ jO꺾5Oڶow|8~<;?o x?Ş t/×LҼZu%uP8n+2kfM<dx8C\4̨c<n3,/ 0甡yLv`)n0eMuOmgsx9𝎗ڞV7z ᤱӵۍ^_ x]3<9q3;' Mxg#OGV3Osk^Kk2^ vjM"?x9?Ǻ1S8fR\I\uj?*2n([lVY~#0j_@gǽO\[x j>"oROrjw#JlGNhc]m]mѣ/: ."Y"O1Ο>[o{9ja^J.? |7¶> IĚΗ,G:GIe(.6k%41]x\x'^xS揠h6Y}K䉼/c$ۼuuPY0ɝwQ'Ey~m澾oٿ&|'g5C֢?6?V2Kp3^ՆC[4j&t(xǾ5'Ʒ/_ ? M<73?^5WSǟ&Ok?ǿCߌ5߃*Mgsh|9N]2]_׆E>iSʩt:jR^,6j.xT TZ7ZN5&EԣUax 'J~cಌNf%,e^a(sasΖ+ L^_@peݷ/_ n_mqn+ &^ ,^_?ƿ O ?GIomq[>0|?$~(I/ٞ[aVQkUS*R|d)J)>m#5(7pPe85|/UX'6C W$ե*VOٻGgPnZ㇛,Z>"i'ĿYҢ9wxር<[ x~|?jzN[ெ_~/xsúρtε๿i ?>*x7RVˆ񷁾zχ-E࿔\|ԮMW|n\*ՅWjƍʋTъ^JR19 c3 2K3C %xLn,>Uxyzx tɩRYЯVР~ xno|H!/>1fd]wl.<=?|=wS5 }.ŚsD6hQP|dE}@xS?O6WVkzmޟ.?x iXͫ oUKlٯ5lM ~Q^NOaFp`ZfQjqN?d^%LqY[?<\,G ̻,P 8 LX GK0L/JqX8ӎx/oS!Hռ=k Z ƚ?> Kt}V7#^ӭ=fsG⾵ j|U&G?ohtV$/ |+Σggo+IQl>O@'-SZ|C_G4#r?m{xzÞ0χcԬlѧxVSңPOx#m^[ @7#7K<QssN *ҧ ,yb>l*hU):Jr~eYu^2>0tpu1\7Ëa5r7<ɦd<,EU?yخ\+Ug آVpRp9Q<u w^?м5h~f 󋉖k^ {Ih5߃t7YR /.\v#-h7~9΅_lI&>(q+@eZuu :M/'C8 8y}f0/ͨW|djUƝXp 1WU9ќ.Zό? tOƚo gh_>7|u1)oGZ5rMj~zXIj^k :dwҿ_Ot) a ^¿ < ߅0x>V K ta :iX-oJhb]R8r?X#ne٥j8 .p{/^RS WVUkbkPu'Ǎ7Ƶo e:/? K_'׋> i^:Y|]NjxE<i^\^֟[< X|gKO>GټA xHn?^&uxBPЬmhϏ5O]_"ߞ>7ƓN{dy.AtOpx.e\7<*ObY6+ t#L9Mo/{[k/>e3H<~5//',qK/WI~6I=vyvLn5K}55{"ڂg xts,qN7-vO<+ʲv7W%e<6f؉`0iG*qqQυ|AiOPf }|/񷋾+,=>_ \:<1t A_Z]٭k9z~¤φ> xXju6eZ3vPxFƉi?ooiƾʳ A53,g)q69a40,S6ڶe[Y%<> mO>5/IO_㯅4P:oExkK xG^9cd1?gOٟwg?5hsG_x/6^,m{NJYuZwc/:`ெkGH.ĺztv"AǼ-cs6U673Rh1%>%s gpEsmKjp i'߳&V?>|L?kV{_w4#Uw},z]jv:wml x#M|Vo,/0|N>#KK@|Ohzv_ U5jV^g6q>#Å3Yqa ೎ʲ|&{α3^#p~!><s jdqJAź9Pa~6]7~? hzO:|MνqJ3_-Qne=/|4ޡhO-ٹk=+?fς>W|Gx'H3']ԒC}z~+a+N4_ 7MKVB嗧8rŜ18LFaȰywcW!˸ Ӗk9*p1gNcÙ.|oGTWa~?^4iO Wu>,O来k!^ sQj6ZO~'E=DA}i{kxӥ/kO |Oӵ=:$Gsݟ冭'tmr_&x7wqͪ,kp l-_[#8k*g )jxev{U$#q.j3 8ֆP0<7 &w'ī|i־#Gno~&ixmƪ/Qk5%_>[G_)eAn'[co#_>)IKǖ'%GwoQ5+^3uUS<SŜCN y p^M8_'csxON>#pL=| TɸSG)ӧZ{G7o?]wmm,[Gm#$weujz-K=J=CEɟQOq-O7~w_[']Pax>5gb8-e|nS<e>%c2yl&sj$]|=vqCQ|OkZo.wM:/uf{Vt6ss&i¯ Ժw/о@Ҽ/h?hO4mmOOPOGqXPiaH[|;\&Wǘ|<τr C/0cGy#Y]\''a3 Ę^s*V2r^#Y|=aYxRr[Wz߄K Mc`5 ,4w卯 qh4UCq ʸg[f!fw1̲,q:y5 ~QS-g9~%hfu h*a)ooY[.? k'AjשAboiw,ɅWwU>R]h-g Wߜ_h?7'`k(eg 8sA/ksi<x^. kuuf[ T<;ȸ )|Ɣ7ɱu &}̯8ңd$ %a, W0`2UX o?&|8-o7 2?x0DRC_ Ꮖv֚5MKQ MVӣbSPڋϚύ~ i_kޫY ?{Zڢn>3Q]i0^}Fi}Lj|E?^3Pγ| a a|W*]\. K# uƦeW#'O՜? ?~Wu~'Ëim&-JU{FGIkм9|>>uD?xTwu|#4jӾ%xz|{gAR᥾{]'~1+.0f3*e8|=̧oj?9fm][ Xl2ҩ縬!;E|Om#cKϊ^DҒ ^|?3ľc[xᾉ^͢Y?n+Z4?>uWYh4Z!?V8^.~ٽ,opOUͼ4nj=c2Y~1TἳTixSqOZK.pJp/J?f_mN~=w .)Լ9뿲KXtE,D K#g*x@f7Oڃ>(D^+w#;xo×ܶ~o(ҵ KfUׂnN-nrƾ9\VSľ&LO&7 _320&gX _2ܧֱY>Ticx /@aѼ=O$?_G|c .I`" W&]/tb-fU#M k_>xbƾ_>&x?m,44;}w=<?߉z|7I/ sihߏ|s<\^dlㆫEG9q_ 0yiyfWF#L#gRn/[:&Zg[.8Y[;$s(Y?j/|'V;_7f LO x]<%YNql s,6x]ؼ`2帬GaOfi#<jv/h? K"zsi#Yug " rͤFVSxסŋJ,v֞*];5٥ gwjt*5/~ '}7oGxV|4{gSY mڭơ}a2=ηgrs>ks'UΣgkb kz޻=1iZFm꺜Agw<1?hߴ~IDmρ=)5[cx4C~Z.K=kP'գYZF (cƻc~y|*_o+?pO>z?ھ׮kW|Ws iwtKM{^-Mu[{_ ?k-m]Y&sXciQ_iPIt%Rj7rMA)4i]KV7 KRT1aFU"3NӂjM\|oٗUgƝ[z~GV".%> zStAA5(A)91k/-}K6'*-WX )59F8wV5)J- K.O*B>*uH- %:xWFͩӫF9~*Z^̞$N+>oƵ ~$[jZFaŇ^/u P?"xZΓ]jB:ԠW w"+aF0ZF4eWF^gN\5 F|x^Tkc qA¶?R[7Tet0԰p8JL&c b"es7kcaFP7il,uE{Xgum!3ѼYZKlw~/B_NWQћa#NNP&n);ߺџ9upTpSӟ2WRQi"]x>/γqek?:牵F .+=MԧkJl%َ&G)Ŀe_g]/7~j:]7>|$;ztMam_)#,cu 3ÿ li03b((((((((((((((((((((((((((( Zo?DGWh_-j_P\/71xV_485OϤJ'{Fe.Z6-;GV_v6@|36%kI?m?xSQխIol%eմ #x6<96Úd:t7wZIfh$IKXkmA j: 7Jky,}3Om&5mZk]2]W_ouwS XMC[5-GY] Υ_7yw<}_@V%j+BnSC* _mI IЁXDth%Zۢ>sgI'x[ů |A^Zk~,xOJx;3+O_>!x=gBSSjeU F-ft,8Z0MO]Q𷎼;ujCv|!S~mSKĶ[ `d-mԝ/xnXEωWqˍ ?Y> |F&,5o_ImY>3U^4 hp22ԠSˇNeoexK)UEӟ7:kq*&++XLd+⥔uh{,ӭIjsaj*91t08nXjbaVUsd&(*Do,)5>IiY$:xB^ѭ|{xsľ1:<+#Z̗Z7A4+6B4ڌ' O~5$ßxvzs.ezm5ڬ[~-xsĺUݖfW/ d?W>xno?'x^_~.|kedž5O'菮[1G \j^ >OxTԤ|8m㯇7nMO*Yjq;/i7JÞ}l?~6ߴ6i >1|2|? ,= ^kZ{}GtV?k~ lt8uЬ/}ĶZ/ PY0ɝwQ'Ey~m澾oٿ&|'g5C֢ _pD=? >I5-瓡}CÇr|F !JwUB/jKC/{Z|˝{ ,n W6 b\eZ^Ush_WO/xW_|}g>yo@%D?OX1Ğlj/~Kk,V6桡G^j^|B>Y/> \6l|ԡS W<;࿀v^<~Ҥ"~&Ydؾ C?GVM*m,J0.s|ΌwQbWSMbTiGVω<};_⿉>  ߄+xw'|GWBT/:C\RV?xZR<u3Mv>,4Oۏמς7W7>5:KJ|/k Q[o~"Ӵoxii {mRUO)exzr_#FuZR#Ab,u,EZuIVT5VҥVSukG/N a1 \= Vp? .?<L.~Z, ^s{Whů~~. 5R~|/Դ:]7|ogG;mmcWZ-ּSiZ}io=N}6^\/hIe;4>9U|_C~ u4k3xN!xV>W\632^ҥR*xjJVJZSuxz剏,T.G1US,f<&OGa1ys$|.ÿ?gZG~8k/kD|Dgcź׊tiσ|)`!]7ǷKk-Ƴpn RSUcN+EQJ|ui)(GF'MƜ*x)Rxxq&.&8acMd)HWeG ^ʵ*굥,-,fH>]cMKo~W6~|Io\ӵO  _E-W7a>t~i߇uAd, cJ@jgs>t;~ڗt CƟ(߇V_a|C}wz?9i6uKtHX ,iS7J.^i9:t"J*\P|px<9yoa0(OZeTcIEùB1~?nil;_ l5]|Kj|y_S:?,<;G_V% žoBhR>*$π7___ 5/]_^OMAZZ x/᎓M#ǾsxYjwzJiS-ajԎ+*6|JO?j> ῂ~uU(6< C,k5\Z»m+?D~v @NIg_\Kj.ZÏQNGoM]ZZ[A %}.XӻX?i_f|{|Z|/-[LǽWz$ il>0#| |7;{U#}{Z.uzՆWG Bl4QaԩF]YNO;PQi=UO%K*7#u,Å`Uz8e2x˱t狯(pvjtcOSh=Ĩ/Ͽ~#Zh?oo? / h|Sw xD㹾Gu`ŔCzfOXG[UᯁUx3ƍN_BaЯINWkqф0jS*8}bl,N1u_4(N>Cl.*Y;4j9&sõ\n+ `3i3IVx,N"JXфS_ƞ/o7LElO>ӥ#/-xoi_Oj_4 H44:ۦQgnc="]+—G,~%WEYaROFdX:M2*clj0#Ʒgb0\f&ϥG <$Wk.#_ C7(]`5GŞ?g^ŧxo9W|s[Zך~,< g1.?(mUkk+u šߵow\Khn ͜?. agQ,ʭ\7cJ.%B _4#%YqJmBRpdUlv;(ס<O,Μ4b( 3eSFh*ץb'=ZKdZ;|D6ROe^f:U* ~>]ė&c֌-mΉoumytij?ˬZ|po 5h 63s C>|#{{_|?yx:1$Z/K⺖Ӻ]Nx BYuzRRF4剄KE•JuN9Jr9SMVg\FiSRN3ѥcTp4|>"kT2bpن cZ\"Tc9o/vxRhes9?g]/×>0ҎXZA:|?NuM3C|u4֮-"!voi~~3eR-'홠|tci*<5%]S[і=#'úҮNqɫ,-\MUhJJ:ITj]U:2tgSvT>WPaqhS¾/Y L1U!Ye u .]RX(Qs\MI`Te-8|IѦ|K= 7|9i>:?o""е9x7G3^ |Ako.7>xm9~DjwVgX~Z_ߵ #Hx?TFUAO/0|km6 OU駗a1S%9Yǁ1᧍~#|棭&ӼM7>2`E#SK+㿆`M?X|CswoT`Ž+P:t= .j1PQnI:pAJsՌg426cl\?">ҩJbF_',]j&T()eVa%xvF_^WIZWOtk?φ&F4ok`񶟨hrx__Ju;K/|$⦬n$<7-~HUC{7 S'a]W:7(3`[ ϵ4Ka0 9B.WNt_4e^kSUZrNt&NR(٦WdXfөBd ٦_8jXU7F<-\MX 0JJ>kxKG5cBH&w_[^ivڅƯH<9Vz~w<%^9|ɪY\ͦizE %3Ҵ/d_ ?^'ԵOxo6[l4+z4:֫-PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/ y[\:/#[ZӼ1[h%u}Q,&mܷQUy-/$`azgۆ~oZT.quf-ZYAtX᧖aknրt( Ʌ:K :+бy_YRwK8Z+}6e{Fm j(ti 70N.8;[M2{xfy푭乎(Z`?> Yh:~>g5+{x'[kW\Jֱ*]Ļ?!-_{ k(WŌ{kzC7ʷ+;xqPqRRn)T'*;ic{0/XJPʒTrs`qy}I71qt:MEN5<3>gigW ?~~/->!_^~Z]i>!񞑩x~ w;/tx+K)zgF: :sUӣeFJUJr 9iII8+*a, R:t11/ 8,+b*e1x ԭ SxxI+/MxoǟO?׾+獼/Kڽ K^j? <Iqui|9em;Fwe5 |=/|@_zď _x?I: >|{|?'KՠW u|˒)p#S+FQ8T b*7MWVΤ'>0b<.ԩ,aiexY\\儩ZUq/ xcP7ƿئK_ּ|(~ƾY~߇9axn? -ñx_懢i_ -5{\w%5cW{i/cpZsq̩S Ӥ~ʭL2KG^Ngza,UxOߋz<γ-/ƾ <#Zk hetCͅkO_]-CgRX\$jPK!J%5:+F%WIOrt).^ "JT(fYa}8CC-}waa' _r|5ڟ.jkohMHυ o/HNr}{Qzĺa~ɖw8?g|xHѮwx> h´֫  |6+jx_W𦕪[I_xT6!4酊 C**ThEK(JQ|ҫ 9N\H]*Pk ;Q|@XRG,JW W/)yi׭RyΞ ZůړO|3ixR;^;м+kho|9'ইi!b3>ZWZu15)5SržcZ9'L0h32tk|>)̫ԥI8VVU*NKٔn@;|gv}7¯_<3i?m\k:E56|0t-^k]:ǟ?bQNGOԼ(u6j:P|iTGo>mKOԴ=)Mxq̪SaԠ{hфk{8d':JrukKqXje96 z)`0Գ5BU*ѕ8uuS)T&Mtwc^qHTiM<+x f[jŝȲ J(E88UeNRYrբ GĒO02$f2:~[,޶(<TW8ͳ\sJʶ2aӂXjG7V{)6~>"j / 1k^vAeo~'_mY{ĺ߆~x3N"-tAN<5 F^÷kM]_w}S+BԧU*jgMMFU߶WJ> Aa'2k+b%c! $1FNiSWYfۯUWͪx Ph mo5t'K;K2 м>ӼSksO~^2Եxoº |1m'h^$K/|azAZg}[_W2|-W/g\~So\KS;eyfyNK_֡* B aѥN6u^cOK>̗⯇,ZZY|Te7^ o~=/-뺷/SR㵷m8嶛?q|:F?4|~O 8~/$G{NsA >>1Qℵ6մ7]̛*p(5Q:[դ(Ut=*=qr~I%Uu*u?E|DyZ7=>Ys?mUYO16, OFs([V;f,+ ՍuaF6_e^,ӿf|XwYxMxTe;$xǖ+bn>4+{]VDw~4Ҿ%IXXizƗ+ |>]F}3JtWwⲶ|QjjM3nX|,eUGތk^FkVz{LTg5YMNRJ:>Ώu87r\t)N,0LƤV/9_O1"8!YG,e |%˯w:7[ῄLtԴ=cFsuA^jx/K Py,e[xm}֕g%ʤ*kIթYK-]1مltZ4B"FqMWbj6cfqjSR@tkzO[jGOK4 O"K%ν=V=R3SӴT-:z>"MG_k|!/gO l_ ]~<sOJۢxQin?c]Fw [jZ۴Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<+柍Zgd=]o὇5?Y0cX|Qٹĺ~ [CFU뺕͵מ)`K#(qF񎫩''7 |^l𗏵HݮnU΂FRԦt xuV4WM-Ն_xgJ?SHOƣ]SB[zxWRԴ~#ϟ~4|OмC|b )^u?k-kwPx3:~-R jV<_d^!g[G PY0ǍwQ'E6UW;}?}\֢ ɆGߴ i~|FM3^-~:ONxT{5ݖe>ew>35ͦ“?g_ tڳF|m)3~ď?|7}e*]%xwBҵa:oN4+a<0[YQPXJxZ~TK 4d`]/Ұr!,F(YchX^%tFFuOhUȥ~:yh{mx >8x^]"?Z|Mk6xS'N?OK6k}_I9g E|}_bú߆IK>J&J~2p&()՜Via(ӡR81Rr b/(Ⰻ ܛ>ga*ԜlV]OWЫK b:5X~о"~КWſ?G| }G_eXԼῈ>+_[?6&>;}r. [Onx<N/Bi 7ORoÏ|\_~;^+> xRZtmN? jrxWEt\8ʗ 1W`9jjMqXµB TN*1Eѭ+~_O'3T1$F I.ol#pxE)C%x?]LgďUxs/ٷ5ƉB?j?uo 3#4?m|Uwki,W?SmWNб|ZЯh?;=gއߎWuKO>k>ҥдO 7["9~)Sx*TNUFT҇+6V檷G, x._(V\El-PIp1'ygW?xÿ$xca+񽧈-rMkծK ?=s~8ּ1_~4mri6kڟ߀?'^xύ<5_u{Oh_~ i>1ѵ-S4x/ĉ/s?ٚſTr5:qq+cpJHԥSBqye 0T* VSa1BtK pptp~EGżžʮgtG0˦zTp_ >_/[ǰ{|G6|>GWǯ|@;'g&w>ǿ^8uKg x/?~.jׅ"~"V7=?o_6$V|u~]oS4.)mxNoRе+}Vi4&_c)bpc,=lG(^-NFTiQB>IяqpWhU1yusJYFK8+T9]_/`2 F_Eb,CVPx{wx㗀lu]ON-ſ1=S7.~x;◄/x:|Ex?ɵKBŵŧ4G60>ݾ&x ~xw.xzܮi>n{,gP9U^ej4劅,,juBRhBӥ~MEql]ap%iWjvѵ#RCt,YO >س_mٻ“~'OjÛﵨ|yk:oOs,iu(1=zYV¬ izlo}6-_ͅQ4z¢UץAҕ8StN.ISTT\ (q>)cib1cet21Xp0uY0xGzXa+ROJj>I|h~Ԭ<=|cDt~ M%llk8luۋ]wNw>f#f9jxž.n?ρ>'|9^?@dW27I{+{~#]xW?^x3^Z]x/h"^(5ko2桨WOI&2:'u)և:њhSK(%Ȥ({Gc춦ԣ̳lX)fKpX\AixI<5lNb)ѧKנ5>lOC|~ n/vkO? Bv+KCw4DMe>8k_5:s3Wǝ6=VG+7zÔ🊚Q|x#隔mkiJWQt0xz 4c{,V>l]*xFX 8֥EN.ss~ʲႆO-J0x*Uu+Ύa8\57rBS"OL'|"_<{]Kᮣ߲;!,Z"xKhzƏc=?W+X%rjZ=z(u}7:x_.]Zyu >)nk{KRt(u9yeEw!p԰T7: 8c R%Uv.g Vo|U1:xj ם\q VU%9F ^|-α*PTw{.h3S0⣓RR2XK*"*{{/|wo5KIֵm (Cd@Y? x%\Euj? 4 \_j:XI⧃|buFU79t[G_I:vmxҮ5gaq4H-6UR JZ(b\-Hʬ*Ӆ5MTR.քn''gla*W㰘*V;3VWC.U.'SIwI=Wl  h.ukZT]ڝxj}xǖڎqwwr]=yşok:?h{ǟo>%]|{<2lo@nZ]My#Y FҼ;amEiqml"XmxT4U%坙b_PPEnMY|C fY_,r[EnPU ﮦӮk{kmbK (Kvjh~c2ϧ4c+u"O}u6p\G\k]m@־'=xH횅?+hn~t{<[vx'o`n闚YtSJ%j:6khׇ[[@oA6z kzN^iڅi S)BI:=;Q+.3M7ԢҳM݆̱J zJ`Ы XR^iӭN:sO"h1p7 2 ;Z7ԭgMJ M׭!|(&)ԡǁ8s=ufHo?|O_<{xfK7Dhl4b5TqT*MFRp爊eN:-%^:oj*ta–][b1xNW(+C S O UNgbx*xq]Ch_[+|Sz~!|Mllt>?xSQ<)?>Q|C$|6cϦ9.π[šowmCǞ=/~--#R?,G_UXX /Q𱰰oejt5#I:KP燕|Tf1iYVNҖCG/jX,\k B 9i/ m&QR))Q_FXxӍ.JFӧxzLߴ1{ZEt;7{? +a?Ayj[qu#8O게R?tT ,2:PT8tItۋ{^'٨7ZF~GK}+%O=Զ3y|OWY\xǞ.ewxĺgzqo95V𽮃~ie^\dh:R:nQtTd䒿j5QI-xLm)ѩ \=L Z *eZTeV;uiFj*P,T+JOgQu[ċ)k 6zawEL,|3ƺOch7fK/ RÝ?Ě+"kMokxZR nmx/CEnMSod9EjlrJT%GR J(F\rV9':僜0'ԫV⧇+[r ZEBPN3~x;|'^ox-W~3׏&hhVsiML[iXx ,e{M7Ccs^+IƉ[zO +ŏ~๷^8f?[ gMuiv6E.*8iO<1Ue5=s*,V1lV.T̪P*a],?WJ_XcXh_7DUY.CB58M޷uk|WF5qkqkj˫ x%D5{_8'4{;~x9I|SR{:?(I}OT𶣨\\j 5]SG𞡢Z ]_^Ӽcy:t,&g[~xcJƏx'-!𮍫Xxz+I, _~|*O/G׭!x¶˩O}uS^8O3^]jzDž| oR]\>fGlcq]g9SPF>ޟ:P4]Nj\%gOf2 F||& nqSONzU9+¦W٣f^/簗HW? hSk4w8^k˰i+X</?41~4W$5K_x_=^O-!?htxt-At5]N쩎ՕYNSqңF-R*pd(F2ܧ7)NnKę62lU8O K. R8*> F5kPN':3Vy~ɟ>Iǂ4ׄW8|@koZe6>"zM֏e?<1sk6Y> -K}ï x_,#k6|)kuk}jjzZ>\^XMu+J]\~&iJl54):0TJINt&i1֫`k9>OW8LR^#< 'xoxKIkO#gϋ<9;Tksi | ~(o;P[;H/l>>(S랾"&jg%rRF*14ۜRRnS5:ѣNVQ:nRp~ U*TJʊխԫV:Vx^<3,5=^ o4.gsivE^߈Wþ䴴k#_tST{oS֯o5 zf~ ]χ>3]9IǏZů ~_56>(x_W.&xs]ͣxtMfkO3YlNb5p4~(((((((((((((((((((:Duv g"֥n_k@E G/t~26"?GOWnm|)[{@SFhZ,cui < ⾑6z7Yl/}{|ڎ7o{il|4^i~#ylmO-/ ߀%9ń2\Mk氱K 6KK9n<@_PPE utYwyښ~ɡkQ@yŏ| 6]Dk}'V5[a}&E )C'fss9OO)2yK~Ӓ%gSܒ+?k?fSAh2|=Jh^FI~+h,|+!~i6]c-a+/|H>u}O%.leSߍ?kͧq~ 1l&qqxx'<=.PX^|Y.s[ktVucz BM'fZfԋ_0K쑘>{O :،F"N iU*֫RQJ8u'(ri0|IW|#~x#p{~>Wl< S1Zux-@Wk?lE }Rq#g& ~ kڥj6^Z4j6s'^i 4S1I_i˜,2p]\R~ Yҡe˸ 5 iah1 P͡Bœo+G>:5? _~ y |>]<h_U^.L_ |O?]Ǫ|6ï^Ԓ|{_%]Ɲ ⹱^"xVqgC+ELR<擫!Nyᳬ[Pj7 wgτ3 uPeᯇ~о_GB;iz=.j']np<o> ~xO渽¿#^C֟0M9@CJFw09qVo<K. l!Nyqb3RW  ӯZVjAO7MW[~$𶱥@!i$m2{.8n4%A(8߂< ᧇ -f&эψ5KĚiҴ/ j֚'-Ú5æhZ6Z3-b c2| 6zo^v׳z6K%ojd[˄^;l/asĿmjs8ڇ~e?ĝ ź޳KNWӦƗ%aT^OK:)/`2[#J6tS&xcFit-{Hhn>Zv_۴-Fͳi;1|98 uK˱Cap8ܣZuB441yv&n4q\N,^u` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=_K/"$]+zw||+?Cga5oW)Դ=7T!KM:0޹ef/-4^_E;܇YTѼA7<-:G}KSҮt 5OZgF:]χ#T[=bHJ[{=Ý/VÐ$Vz5+-5]nG{ iyIE.dF4PY0ǍwQ'E6UW;}?}\֢ Ɇ>={d}gO-ݭ幂{6n̶O4R:ʝfa_)̲ Yf; aU'Mb)h7Ry*BN7Q]{]'LG5ګgmǞ+f7Y|Cú y!Ԭ KN#'5~ֿi ]6.>|OxCokar+ς:/WƷ~7گ5 4hMxG3,]/el ?,NxzL3ʶ7+QlG Sc+g5+B9m@5-?NM<+\%#xo[xJѿh]^Džl?_*o$|;oHm'lZ5'[ϰyI<)_3{8GG*xc4Wb? x4|5>3"0Tү|joR>f<~S_iG_o>-|Xe?n|!{X!ҥ!oo?~7(cᶙq0x__'Bo w5xú7.OÔ}[[^Ӭa]?(֦QV.# POi(|i_izLx;}+_DJ+s_j?__Zycৌoן0xR!oߴV~ 4u iR3SG*#3\S9pFQK=/ C*7 ^Y_p]Ξ#/pl+XZKiM᫝zOeƭoNxM.5 O2uwyc xA>xc~:exJjҾ+_ZKex::M2_=-o4ۋD=l+x>Q<>FK/ d;qNISf.Yb00|Ͱ| |(x?f|z_vg?g/UC]|SBÿ|i"]OG&Эu}7ZVzuƕ^_ E>*|Q/P?xvPK,;v𿁼/J[; &4O '! ;o8\s|y{ÜS:(r' ἓ $K/el } aԫSE~EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/8EGG~+֬=ί\iomcagѭͺ]G-ʹNkoqSol)~CUIVzE\@zeEI#5ߋ_ 5x[[ּai7l|!2K%#4,b_=6mckkp/P_PPEnMYKaX4\pڼY/aӭ4b;@ (KujBX~S ,d+R̰A}knI\mוa/oxH諩YiFߴ?~&xn:Fo||įw^(f/:źfmjþ"ѼEυ<ڶi׺}O W0hV((((((((((((((((((((((((((((:Duv g"֥n_k@E|Eɤ^O \4. Z>xƺ9 "נ<%nM2+kI5SMl׷p^⭶sKx>ᕎxSIֵ=q<F<"mV׵]7M*ICna-@0 ~ϟ ;#: |=O?h?=k@U-#M#W{4ƿnizYjmojV1*U=?Wn8Q@ PY0ɝwQ'Ey~m澾oٿ&|'g5C֢ ɆL뺌^nvi:,Oo5~7y;<]?G}싨 1ji{%M~:znkZ_~ \̖>iׯLfcy_c(_o?_OO5)A|MNJ4+V{Z~hM .tkK[ ĖVQK vTPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(˼{?u/ hNJ}'KKR cZ!5ch0jp ]2P n|Tfoxc^3פQ{M<6hӦ[{{W_<+Y{kKxK:}<@-Y/ č +xotI[hn~|,xo|m⧋S={\3.O][YAZΟm焿hr ?ssh o |Mw7 Ǥ%h/f\w}j6dۈbY FY8֎J3 ֝)׌NTe*%89qQO|OG O0fX̾q_!cYvab:5)Q XUF\Uj :PR:M=Iiᶉko%lt|U◁mڝvh9]_ jA==25C/z熾:#:?/ jz_H.m/=5.H5z k/JRxLJjU(֌ Qpt߾8ū'>*tUTQkUW:Y*p'* 0סU^*2TeO? >%|6ß x+ͦZ犴jB[OtՖ˅6(VI]?%Y|EgxgC6)ρX>(OM g`$Vi:]#ޣOD|Nxf5 ,YjןfWqktB˝\"j:Bt:U(VWҧ+JnŮk;&;qsrN,+-(by -\"9槌8qS*\qs|2>"VZxߊ=?B֯t:Rmo/4KFg 8%x[Wͳ<*ԣJg*e8a)ԯ:p8QFUe u')8m( /O)~?gS#??gA5[R5_Z>!kE'c>,Wcڮ%wauYw<>%4߅ 9OT+^-A>|e߉>i63^mfEZC6gv?(52 Kjp_P ,Uʸ=ƧBUĹ}څ< ĵ,LTia2L~s2Y{_7[v^=Iோ~{~6:.|-]2_h[ Iu>Nu 6-?Ꮅso=E;)<-ۿ 4e:UyuZy:xLj,=zcpiO_캕⧎l~գxrIH&{O 뺕gl4i!N#'_c|+ G q-a w/?ڕ~dmɭ)}wCOxOqwqGKx/qجUϸ{,|5}[xRbUtr܇O4eٮYb0iNT3'SL>_Сt mkI[մCWҴy54u='IOU=wv6E^C-̱4ڋf4߈ΉD 465]/5 7ᅦ>sZ*NH{K.#\4a )3^E!|?~W)Otlo'mP=XVKHL>~xw8|t djx__u-rMuJ֮2[C'HQ$}Lx#x 6~EC`!UO!ia0OпXxW~t G_Ij6~˻ Fu o k@"H]P?R{kտv!O]OdUm?ƾ?]}8|SxWu$ڵbyX<ٖ}WIc3*6، ƺ4+T+`iT*D6o~"~DZ|xnĖ_MucNмNP<mϬZmw垕54=Jm8/.3^Ig!ɸwĸUkՎ*XLÉ B3jVuJtEUHG 0~;h:xf˫^/Ŧ6 *(RllcH9usᯂ___xᏋ? |M㫍+^"_ x_Ś75 -mf[; U'6C}A/VC)߉1GR~^M:M7Œ}e Ys_~ľ7g~3(>5ď h_|!q} O.5O A #ֶƪIfw9u/bx_%ۋ(x?2g K>˲jңeeX\>opY>luRx,f^G3a?y-/><5 xE>(" wK4=rRk,W6#G9$Վ!7_~+V6 t?^վ!r%5{h mA$dW.7or٦15b2LMP{pLLpt4_Nx x X be:PaxE{5_\i[xWLMCY,Vc[hCk Ѭʸ_x;^3/Fx{Ưi^ oŝGuK/‡F޵G7Z_uK@"|=69<'sa܏Ì<<"RdU0f05(?D!xr,ތs!kv.I}]HuO[co!]Oo~.E Wý6GXuR-]vM> "~Ԯqr2Op.or} t)fOaiխU[;N R)*a[s?n9Ռ*N_mUP O K?%J|'? V&_mŦ{BSZҴ;kCMy U{FO^w?\xoAҭ'uoƧ\ =Jtyߨ3GwwYEo5m?%hdGù 80(ḣ)̲*reSC0QUSQaZ4jBX# Մjk/| KOt/ |5;R/Ŀ K6}GP>"k^𤶚k:σ3|L?L _d1L5iLzaEKjc!ݤ3o s*u\_ø%⬧pm}GS6L ~C1U8 Vi*'b3Y 2AL~pj/#4+xW+Y?t׍!lno4} mKSx-+5x3Y5/ho: j:nauPS6~?͎GI4Wᶛw>5M'UuZ/BN8?¿c/(~ |~7|Kc|;oƅzxOԴi~c8^3O|9l8?*gh./-n!vtϸPȧͲ'L\~WT^cg =\ x-ìGy';ʱU%_*X W_~?ǾUߌ /CЭDŽtOhRx?S|CB#IJu4C"`0KJ~ u}  xS[vk?~*xBtH7k.ޛψ@{aY#-|p>x<9gbJ<-boU'rTxkNY vgS 5^&2μKO⧉>x W~3۟ s\| Eo]Hejs^mLs}KSI-S"xO_6iKcٵkk&o|?.kyis֦{_:)w^1㎼?˄0YxqG8,*091y6+3`fp -<]l8z*n)k3G_[?<]O*]MmG_ |;%צtcރ_6vu=Q>|)񨲰J~"C G_wY1`o>O+x!ZwVW,Pw;v|oY'0*gyLBryni6^jMjShhƕ-;Rk Vq x#?mY.~+5|.hI{KU Zm'Z9b{u&d62Oqf}YpgYiʬ%̳liC.g,& Z e7O9vmaj*k$Ϗ?7<i#aW<+]xIֵ+F癩H5K{[JDiPſ3_[#՗<<3Oj7[|A%71g\Og?jrY؂uyaku;g9?]W1x2n/˸g2l2~qq a+9[fXO]0POO#%eO/ǚoh1|>wtxkXl>h>Q04,2_co⎝7᷋\xݣOtqǥAxK|Qk&ks`kz6j6Me|9|]VȸoÎ7γZ80 )>!q>Weweʘi' :18"* `kV >(??.|tKy7|__X |j>Ca$!4o^ o#|eS~!Zo|Dbpeg5b^jO<>|T/4}[qM?R\l&o<HnuءM.+0 x^) P.wfIt>KQmQ-rח $a\;S1)n" (rܻ;b v3 KQ+F<aT: !RKҴT4xF^$M~Nҭ-.۝R;nu[;tot][[ܬrDE8PXı9B<$@\#+81rl=qX-Լ=i|mq Ew&xNӬ#/񏌼+,zzbiBQ'xo;Ok8<{|Q O|0|k&xM= ZO{-ե.<;O_ FGCau]o|>>jW&Լ3h$cZ|s/ٓN¶~6? ukܦma(Mx dRH%iT*c)*P3Ud=*JR/ss:j`jaF.+.RpXw?c^9j٘lUJ\<IGI |s?|B>Z_qk>h:-|Su?|-MMbLx~A{ ?Ok!N!kk##DQǞGƟ _/t  V{\GPDž|INmׇťݟ:nu:8=8F2ҧ9Baykyj3ŷeUI_Y̲'N/!NUSWecʫav܅\XhG ӯ[5 |X<=j[h>~gL^%|E[o3 O·gw-]-dУ{8o.o4G_k~'~^C-j]HMޱ >cIWKYioOiLiV%ORXj)?mɏJ>-凋K -[֨,Uc/aՉrl[(bp,7}G1+T2JYgyl3N(Ƶoϸ>xş)[W%`ѿ *(܍Rᗋ$x6?0='Y3ͬxoï6>gLz^Eڍcgf9QHn JR^錷RVJFu^eJj)TvWaV4Փ8M噂##)' n>zp8\LcO^p N=!'_ /k(M,>f|; dO=dK׈5+Vs,wwoyzf_hΝc::[څm ͝r]D$2̒#) piWV *Bg*uhէ%:uiTԧ8p$IqGIaƋiڇ;owZx s_QOEѭa&-dXZyq.'LsGpN01+,lx,/1TB > |Cl?c- -k]k'A{}gEjctoepx&N.Ce\kG,q&7N#|^ ןpϲ%µOĮK8WYX@#Yڿ>2|bd^I?xGf~xmׂ/4x H׼Kk>_W :vy w}Iou-S-a_럳ƹ|8/SN>ǚ[wcj~9Ęx鿳_t=K\̆3u|blGXY&t_UP}7U'x2<e|¹Y*r_10 QTb;Rk&R'=?4F=x|ׇ׌ER&x6¾=WVv M!? _f8vjrLxsL&I˲\ˇg-LχK.LF")i=FN▁ukdTu\ZT2\ޟh:.? .m]cP5}S_|!w|;\x~I-4߆~iVVIn_wZՔ[BhUb|%ρ.|2e>ïş=+~,+ >]_\;~$~"p`s3pC3 +p_q as-™n#s0`2ۇ+ؼ4sLf7. >,>!xcLUǂৃbs⯃9tmCVG|U[74_-/.Pn"χ"W?|gqἿG/xBҴ/x!ѼE|/h"tok\7?9O0acv8XN41^0P>p.3'lxx\B]b-\O6Gq;jcU,&iBNp|WR >p^A ?*|g#4R#4RG%< _Yx^q>7{ C_þ;HG? tg|)_ku_>3qfÞ/"{~,~'A^-i=jEM,Z|~f[Ueyyʱ|/*,O3~&\%ke<^ q/G7o[,RαO4[f?d~O ] $ω6?YԼWo~5sXh;t_:S:Oa[/W~_oYjk[x堞W>#:ŮQ~'|Ky*:'FO x3V|a(G>#[i|_t/Z6hVo g0p'> f85l&}Ur'<}JV> beN_~oOO޿Fj;O)/&𾏠V˪x@ ⏇:.{4>-Mr|E,|e\Zj?Ofp,|9S}˰9G ĸn$`*fZ9 Y>iَM<.18^O9N}O_/'^O8Z1W\>k:/ğ||jnj9>< WM5xƚ?K?7iGDdz6Rk7 ~1K=?⟆rx&mi-.K \K)At˻iSgG48_qx4r/' ˖h1K#x,Nu3Tp5q| ̸*d_'U4(->ݟ72[-|~ZWM~?ǫy7j<=FrX;xw^e| kº&?:WNqjVͦxþ- _&eR{Ւ|\uBKG)/v]ᾍᏇih - 'Ğ+|%hY|=WnKn*"mE61/253> ,5U|7)'!;1YKeHT?s\!!*|xmPI4g'^ ?`-/i>5{Oj~;-B:4;+/JҴЯ9&м[&.w M3̖[ž5nkV㾛AEz_ämΫxV K;;3񏆞crqx<mÙcFY6L|[-6Ox:׋ig~1ͶuE}sD,|? CSVMZA^!?1]{ⷅ~-^Ïiu?g~"x>+xjOe_|J^1-x#6<|?Yyyɸx\I,^EqY_-¯ c8vaj)ac3>6*x7|eE|0;'V4K? wM'X[Vگ&4k:[+\x'Uiw,x\|5/,o<ڋ|W3x-ƥkئ塸lmMet1cz*pl08C8\+[bi>8_GqNqdu:s9gJ1YVFc~uf"g#C5N=𿇵? #?gȼi{xJ}f}[/C᯲1_kjGC~Mt2J9/$4fu&¶2|$h#ZHč1uxq 8O7 ˅aõxkd9ÕqS\=LjXL&]eF_x?hg ߆)2o|9?sx ğ5Ož,~Mo{C7MIjZ~2> l˫}S:Uׅ"-!6+eCFc8W"eX\YE\.7ĵ'Ohמf9MIft+x;Vk{Vofb߈~7hk~qO_VO BAw<\l?K~?şӾ<3Zx~OQi k|OZmӡS̫pď7tx7,1vm]0>&ጢx kYJ%a诋6_lh~_~6<{~'h>.JPiE"~ ".sPxV~wwjJť_VLFHtg 5_IKM?㷄GF78tWMgk_&AEw{5 BY 1 (Uޮ3 p?q>U9ˈdپMxeq9/.q,’)xSeĹ\]>"<4OL7tu7ϊ>x#-7ⅾxECq+_~k=WѬdN>5_X2_|_~x>_:o/#E-f[5Z_o@.<'WOv%׆t_E4oV<9efEk2%Lenj)3VfpX̋ _*_d0a`20~.cß~ k|Z:"~*KQkz-׎|Aⷉ|]vjgEᾣؑ?xzo0\;piN##ʕZUƳqO'q>+ʩ\+ccɲ1fxebO>1m/P׈tK't4gmn TK ]ϩZZi d4Z^&b[FiJ|Wh` ( ( ( ( ( ( ( ( ( +Z}x=?*]|;𭝧u0)tU_"% y|?54幸E#iW sq-Ӏ'>|8e^j|Hnotpo{lM[1}k Ņnc5F@W1/375|BUm; ߆ īx?><m-gtzNlDҳK(I#3X{s:JJ$:96)MRm6mV'+1^*JV&JEzsZzZjNNu*T97)IQP`PEPEPEPUl+;;Q4B+;; KYH.mn`ḷ)wDdb өRHU9ҫJqN9J)Ԅ8N-Je$Mx^c}+ |? Т ? K4åx@:).%y#id03 vmk3qUنa՞#c15*qxUz+b15TZR990( ( ( ( ( (D[hz>ewjݞYiVZֽ\jqocMk:ާ_ȍwWshigi1] N,4XZ5|Qia1m_]Ca)j/߃sLe,~VY1Z9ZLe*! vf 9a1Q ~ Fp֊ ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=9 Ś.xIm?I\߆ >(|Imec? Ѫ6{9gNv^}ƾ!>'iOM~Nx6~ {uwBrx^TՅxoC[=b)tVM[o -▟ishj=OMODI|Ev~ssS‘~DH?w?x_ƿ{h:^u]S+i/$q034eMqq8Bk+u5PY0ɝwQ'Ey~m澾oٿ&|'g5C֢  ~~ _/t|VdžxR=[TwKW:[jڬizb]5:,b߲}tr|+M]7AOx;.>m>(?\u5S~Uᧁ,޼!-丑9~ڕ-/^7uk*Jo#ͽF[Y"/s4SCu2Yizt-VCxcUX/$H-5+]FuAt |=Z ֯ #Ӵm"Su66Eo;=GZkĚ4OjN\ғU7L[؛}~$J(|RQqR|N*mݦXӡ[aj5c8BTN#ZE*pp%9-^I4xO?h?? g|]'E~.k_7|k*ZW"7ߦuo [PL?WZ|\\7W>x_0ihß'o^ 𞧦T:&53S#7ZgDet1:X~޶NL^"pIӕ<uo->odž|]oD'5^/g RY}gk}xPyҕ?mR4/jB<)RSNF;II»b<>`aalKC2~,l'.ai[B4Tyf!^xlz__~O_i__Uo<5JxNJfڇQ2➙럇z-.Nt-c_Tz+펭p4MԆKVU+ӥWRBY{>hBtj5|\1Sc0V]: }\NiPx˲ZHܕ ?rBXWuueO7 g;:}^lue9,TT3IԞ) E,.6/ ?i? 365mF{V%5T<-mu{GDnӼsn ,?h?n;Α|㋏,G-<g37MOkv^ҬP]PqZXhh5fg^hҎإ9F,-HMNXHЊ~ԯFvmO,^1C(#Gɱ|D+ȩ唡k9)ESf_xV]'k8~Ӿ#|%u_ԧmFoxogSk_Ƈwckw1Bе]&O0GMߋ|E߃xs >&xA>$x6 +ji4|7w$jZtkcG?VahPG隻2ܱISZ'*xw l4 :u׶9UztFn T[r:<.cVQbpa, 0&2V&Zx*8oO/~Y4jv5g𥞵bE׵xuOM?|'1xY,-o_ w~(47MA.u ^+fMZ]jgW)֒J{WEPKJVPF/ؘTrד5+5x.t2su{Y7o _-> xQᴂ7Wƛ˛S]=G4/[LgݼrUJZSN"Wα5(T%T u0QcsSx 8ֆ`8{ JMWkq4~(|=xw>!ῌ|1O=ᖻ~^|<׼/?;~*K>ms@6WZ6lS?(5W'|<5[/=> _? <ڬ?.z|3~+VGm3_|^q,%ct〯GPce_)+'_Pʬ?)`Ʀa^hTgOTDŽ~+/ړS<Xj?hgo#"1[H\麂GyIsiߵ|y_9t| mZ$3uDŽp f_[bX偍ٌ7U j1:X|b^Dҫg@|Fx[?gO5Q2CƷ'giU/G|{n;ksO;῏|Y ~ 6:ޗ^ A Ǜ^C -әvZ\\4p5|5*8aVk*oMVPQrJMp/JN(~&gr"py>:xaFuap20jRsң*jK:wN;)D|GԼ o*|xkٗ_|`g;mSWooW'4Heg|/9M7'OӢZ_/hښ4m}o>%޳kf> ݸ?Ŀ7|>wN?S׼s KO]x|kǀ>0|D>֭=ŝq\]MS; R,E8lDŶ_BΕ[)'IҧaaeOLVgܫ qҨ$<;ҩJeFK3ef/CSZ>Y[9[cBwEkmox@olok>VPՋۗCo'_Gc="=G^= _({摫xm#R{w7PAb1 ڛGOǫïqxV^~x2:'+=GsI^K>wAjRi~Ͽ-w zZw=>xsÑh^&Aßྻ}Qn--fm73~ҕIׅ4nXhFrEZJtS˩)WK=ȟ[:9 Mzpl <8VɨQ} =)øs <]CSKּ}0|Y7__u;,&a Q- ntmI5'KAw|$xxw+jVpڶ>Uֵ[ 4m+ĺkZYӥ.li0\=Le%!ВT(hP)5 )EAdY.U < 2c(QcVjYU*0( ;:S:4OiZ_x3P5yxZ-ΣjSĞ#4O(oj"ҴQ.tMNZ><_>5|W,YgM>xtZ|3cƾ*op>@|Wk>$M{n<e;N ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@Io0iO] o]F Wth^Ǿ `Shu-gkq狾 O~#i^+Ƒ#BDžﵭGW+k>Mc5wM;Vo!Ԣ` ]p5=b7~|{o#N%ŵj+ۛk{UW|byKV_a_tOx_E🇴+JkmcѴM 4[{y iwydYew6t+Kѭ?IPյit+k iu]U׵NX-b)5 o\ԵgWt7:{=I}PX@|ID ML'Iei$lR4-$WBmbtKhn*%ga D3Gm<-.FPhٯE? x#σ o xs7<.x{||'&>8[_hZ7&j\ַ6G> gxΙgO~6^]x/Ix/7!G%-P[]_cZ iJgX.zê*{o5GVpu#;Pu84Ͱ9 xo9\8f/?O O bJ/Xʧ~~'=_-r_|G?f/\_ {ᵗ'E𖡮?b }ڽ~%4ztMZ!n/K>'wn*OK_~5_iWMsľ;6:u柯s;V[/ ۮft><>Q]J0]:o EaoIT:wUiRƛR(GOwO||5)y%XPaJ+q#O~(^5_MW]~|D+x=KV.|C-\h//e.mO/Ɵ_|wyP~"x[5߅>2o0᎙"(x|ڦ=kOJ~IKeE҅g,[J9|}Zx{B$##jJӇ_r`*O3UR{,>WµQe8FSa ׎ UnJsD#jG)|_x/gZ698.|5_JOYxVM(O^뚆O>5/_i>,G6 NÝ.OZw:#Y㏈"Z74sű!ĺ~xEfy;(ƥ:piO[ [ /*^ƞNyF9Nu>MөKعT|Rܺ/ ln Wd쒧W.WĪeJN*>xl^XTp bwIq$JMn|Co>|%l#yu^ fC|wNүIЬ?4_<9i|AB9xSmC}]x:'еkcΡT!,U)PSj`Q<\'^4gNIHP*TRxc㖁ᯗxc~ :,-.4it.3Ķ)<_㉼HM4'y-xG|>,x/džBCHҴ^[z :7o爬4-h.T(J wV*bӝF2zI*UV+QʥtW=L¶i 2:iy.3K!Zg*fm, }"]_UnΧ.Vԭ^_ ֱh?}u)5]&kfVӡ.oymSCKSҤLlڂjlYe9ug Moߪجl8EaP$u?ghFcw6|K?oZŨmyjz/8"[j:*yK"M!|:S9z8\=ZtkJb! t)Гx(^#T*)a2¶f6P`,-Wd5)8~|6hs"߳/4;/x~#x <GѾ~СK9X|u4;]= h 7:|n線Ϻ|I#\-<1~ռx'JՍ~PxjKsXl$<1 eUa牕xaӪTFmуj({:~佴7ˌ2\UNx.28,Nc m J5|Ž&O/qu1T> W/!oK}⏎_>"'g[~| ~^O|M_<[)u [~a gk~?+FΉ~ nmY~W7O_‘kz׃t|9đ^<[.ψ)_ j^IM,MSp uqPNܭ6ѝXJRN*tFi)s#+ eӇ`27*U#Ol-aPx3S_~.>_|-Ծ ''kJ5/j~8ޗźFizK-1***5԰N/էS c,EEBħ(F8wMFi51q~+[βrFa{Bl <2Z: xoeN"W|:mx[?N/឵NWx|m-bKY[Sx:ߏu屶k= ]q໩'&>﷟ڼm/O_o?:t?l|쯰SXa}kgRIGU ^)ч^t7(xϳ1aQ1axϸj8& :'BhЄ(TBWk8??@mf/,:kÚ'<]jG(/|\R"].ѮݎGj #ÿOPW|EF%Wxƚ6i=>Ҿ7Ry5ܴ:\zdkT0XF3Tq(ѨXGSIRI.s43zbiEeR">0ppX\5ZuB bJq8 M_e5τE!+~-CM/>&O"ӴYx}uG6߲_/ZW?dt_ xGºسO5ӣ Ğ'wXȍ[/q5i׭*J?8ʧY^UfO~Ο+tU*J7:a3,}\nSWSYʮ2*,6STpsa58𫋯h4Z\#1vP^W@ּ;GCx^l|g^kIyXjzGmisiFwi.{O70ms WIż c4r*3$:1V+eoJ+/xOF>"xOJ%s¾ 熾0Ajf(gxHд]QռE}ɭ,zޓcc4s׾;χ?BE_S =z=WJΛab KzKi\}3x+w>uψM(5mw~/ͼ7Oty__h`PY0ɝwQ'Ey~m澾oٿ&|'g5C֯5K4^By:?N<8|g jLy juQd+J^=̹׻|7}25s`+qE͆U~^:/-Xg5COՇ&?CC/F𥷁 2)ׇƞ%;t5&|k+5zwtu>$<3gN|goOڥGтuZJqoX?l:^Ԅ*TF5ۧҰ\3gy<[a<NjyUgAˣ3g,n/ yUf/2 ,άP'7|#?]{l?>M{1yx?yeúo~#kw`k\I-RPۻlh/~ΖZ֛ڧ?j w&w;_xglMCW}6waxcz֏j,qoO RJ5! ևʥ\Sx>IYRuۂ"1eYתq%QహL,s?pUcaJUCů/9Z;*.{zڂ;(<go|>ែ RK[fo ci퍍pUoᬺGKo'ź%>)|s:k8 l?hO{^𾿮ݼs¿Zt {gxN8&/KWK4x$Tc T㎎# QB)R)sJP!(ƫ!8R0y<`ЖAd5rl.;-X,G סĴ| ZkNmң5| ?~K] ߋ4O*13&\>#xX1s=sVӼAxKUuk?B5gğ m~(Kg'IK_ݾ"/u-gZiv_m<h߅,aQ[mn/]u/Tu0x|V2~CBXaJkW)S'_:ҍIbUi)T)%/?<cKW> I\д/[|3վ {mjM 4? N~I|lO[wog[ּ+C>'xV_ X趾&¿7D鷞Ӭ__;?g*|<|B? ~.uZotVJ,f_״渖wYt?^j!~|!w tK^V5;G>cK[ ^sjKw/+PJ1PrbR* QS*VVpTF+ӡ'QԣJfYoʹ U:ytrfL=\W v][?ekʦ*OtXlڇ|s㯉 ᳬAu? YC{}x~ m{_ ďxS^s:;ڧr] o=CcWc|;n~7K 5+x3Wc|'׼}eo+|t(5!.ڷ¿Icox]ӧ?kDt`Eso6iwQ' ~1%{~|R⾇Y>mj_ >xsZ>{Y&bmƚf۬FKZӭ +Ul,֯IGAjS:_X*j\K7k9N *# Na2~=P3ӣÓsL/|noWÿd.:~!ώu6:^mkZƵOe|U}|eYY0Х<.&H)ΕL385 EV3MJ+X-\_&3 N59LqW uhNi(V)tGRp+Q7#z#~? MxV|so5/hw"QfsTTz:Ԛ6 O\i[_E5Gڍ9Ԭ"V<eZiz]j:J-t" (,T!)VNSXP')Q֊\SZ/>jML_<.,Lx a+(a4Zt*u0gR.1?ˬZ|po 5h 63s C>|#{{_|?yx:1$Z/K⺖lj.ퟀj:nm57ե.= ]#ׇ%Mwƞfk )Yԭq/k* RRJtjҊU$Uوʔs 2i֎:[ &X8ՊY)B'F!5YQ 5//7'σ>ᤞ0Ҿ&~7?jn#K|u7ú}>_O>NE,/,~6x>WK/:W>9m o&Dм(J^9ƚvh /]}Pm`=pJn1%T^9aaU/J8UJg(~֤5?g%:>eyvWG4%a\|OL&&9"J6Cp/~˾v|P$Y&-oú׈46ė>\Vein. H炿j]_m5_6/~4j>=5}gOxPh?Oi2#_֑SG5ƟVŨIT!N`SU9rSSSnN:icsl6K ,M3|~3PْJuV"8NTN?ٯ q&:j6 _ lM"OsK^hBhC*WXA{_|xߊ|)xG/C5E}ǹMDxJu?>7~#PU{KSx,r[\\tyd'B*хLMթFs SU)ISr J8k᎖F]`ؾOn#f1dpeiO_2_O  ,hbe  _xoeMǂWU΍/ M>'4wFZkwҡ2A8|PmSOִ[<]LJԴ. Kké,I_~#е_h^4|7s)u& SPf[u>д+&:\А oAx[: E"5 xOڼ75u::馜^ /hZIj:>Y:]<-v&y% HIdyd W]+ (ayRBN#t,^GT爐5MlQ{},Z+&뺌e.+讒h?t:%.;QlKv!ѵyndo Zľ>&|XXҌ\-,Dt)dԯK^ۼ&Ea|},Kt)foJXz;B}k05?!qZ8PG0_7B/_\7B|1xv&6~עm:V:/𝡶w^'E'5?]m5-aI X߉ʥj.V75)?d  OĿ_|u|~%8դg( :k|>/5 x]F>YD _fo?h?xKV>3^+Э?x;>o~ׂ|mM#zWQ_~*֬tyҭ O^:q)(JT5(:T7/kYqaB|(ЎcB>##SUQfUZ0XK3aRxg xX=4x7>;eXx7L׼/ºU/ |D~մO~̞;G/bohRkř_kGUɨ]^x㕧񎅥jfe/D iǭ_/:̶r;Ңn+㈗(GO ꒋdv𔠥Z1Ҩ9;t:kai2_)gt΃ȫSg8ap>:؈:K^$Z|kO:eo&#gu7uU+x&'_> ѵ6"~ JMSzee O>:pi=k?Z]֬jNoᾍ '|GzŞyy _Zf)FԚ)FrNKrT:^|USFGcUEᏈ?ho[kF5ֳ/Z_+Mc[ֵ_Z.Mb0Qxԫ!Kgu ˪I};g}JKG8a&|cgW*TiBQq:~Ɯ0QVF5;:x#ch0)ԣKXPPʰ;JeeNXN&뺕*sAS|g[O "ƞ3Ǐ Dk};Pw?Fix*m&9pڎ ǩx[u󏇟kF!sB!=g^khF4_ hvPk!oAqU<F\5Xj:ʍG8B1u Tt#RԼcL/ ;(U1u1FG.B/-+,.UŹR GCV%|H͌zO,$k<-.i7 _hMkGo'ּS9|_GZ ǃ4 |Cbi:E<'xGӴ릵ּUx! k=Dyƅ rVx*߸JN\yKRVPW+Ng^[ajf8gM㏶YVkeʾ>OVXcKF7cN<7>>4|k_uõ~5p.zL7S>.?:5jKn`ַ>?o6ULw6Z-4:U-o[d 5KDt/гlDJ98ҧ \:jM)Jrܜք1408.W RpةP Q˃xn+խFU{jW ,<-x^u/|#o&oK~6ytiz[oVs="T$}jLլu _ 5Z?Ro>, E:#߄Ğ.O_7y]HK etLMDTuZn+2INruLU,•<#m*(U8L,5L H`>b+TZZ8ژUm~3ys㿈?>V^?CZ:_wo~+k_aG!&yl52N՛R5jҝ{7UUU`B7\WZͽM)f^2T<O˕\ʤ#̒GI )K\iޓ7?h-oV|Yk:Y|+7Kм3yx/iuyj^ SM?Oӹ?e?OƩwYS9oxnw4O fx}džu+OkO4^<qQH\Ta)}8^9^&kCBuIaǕT3 4#IS**OTabp_i3K#ž5MSP|g7<1Z5M{S|7 \y$CǞ$ah-7S-~^/|q+D>'<mS]߁-|}7MIjzσ#/ X~-ZO]L_uZ#J2abNRRhUU)Sӂ#OSWM94QJ <30?1c}bX-:\5:T)R_ 5kVž4|to_߅!K;--=֓Pas1\oQx[>'~3]'ƅ:ΓORCCj _mBKP/zpd+.Rs:XL$%ZkRrRj]STUURTJ֦cZC`Գ8TԭOKs"9<^*x4Z1X/i*o_oExWuM:>0Oo4_ x+M`TKHcU,M eǍ"? n|;x \_C[}~&~tsUú;_oxSA?廛G4.l[PKE-RxYQu( Ɇ3CPk>$ZҴoj#aOxo#[ jK5͎$τe |Y$S¾ ѿ>/^{z>{k{:i>4zxj~!{_\~Նa{$yyqfQ܇m˲`12ϫ౵gC+c<Y^9ng>"gOOgS_OGI-~'|[MDž7C_x.{MFLo>%DhzN}Z}a?>F}x2­goO׾ xM嶽8NjSt4V./5HU^Rϋ4ܗGیXE,Ÿ^[|^?>ey\sfḴlj<W |UO |n! kM?jϊ:?5-}3^5~/I %:ֿ;'o44?/4 8,>Wl*3 ;Øܶ''󅲼^_g_d,nS 8$g|K5|nKb▛"iռ/,i >x SJZ`o~!>LJ#yUr4e# .?=Y 8p=j9y^\xP|>W吡C(.t~zᎿ/մ8?ouo 5ޢ_:厯1Ԣ>hj%AM # Uk/~!j#Z4 K  ƺTq^.ӖTId{o pgY"M7gvX('fm*oY]43/:P=B(((((((((((((((((((((((((:Duv g"֥n_k@Ey>KL:uij[w1^[^;׃ouk}gyuIŨ]VeΠSiQy{J;U?xF֭5AeѬuKOxIEA旫H%ӸkKhWA=uqomsmIvEP -c|;zPũڒHana !Դk]GJt]OIԭmu6 Bx/ž񿈴o>W6L׆o G/4Qȿqx1!s&-yiƾE3 `1 T*`3L+fvrWᲬ9\sc xWxG~)[xjS;o1~!x7m!a] ]'ž+6x_Qt@Ӯbe3ET_30qgGdX̓r.28o/09 Cr]Lx0O~˿|9o|<ψIi/o!BK$L1W+,ysᗂ <%s/Lo ɥK.=<x{U4e㫿^8/x}>m#7:xĺeq>i׈ol4:ilt{KY#cTƆo`γ{[ü3&7- Tr|N()WÓʸv8zUrˇg |=76-j[{{>+f7'LGW4on<+v EҬ >_-\ANu`fU!W)Ȱtҧ,[ezThӧK pjqPnQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhh Z|Mw;'j-_56!}_QIFswq<__=|c^Ė3|+S9<๎AZ{"Ck4K[]j1=N0 t]>|(3~(xE:ē\j}ȴ|)nj2Cs5=;~ҼZGޑl#KM:;XKi]c+/+;XA_PPE utYwyښ~ɡkWaG|>s_/e0=6ګxkƺFJΛWVlD_o>0ïx_>%QhW +¾𾅧|w~hV> Yī((((((((((((((((((((((((((((( Zo?DGWh_-j_P|@_G\|Tívot hS4"_Nj[ 4WDQ;.sJaIoU-V(iqmbI;'nm(x$IaPId)у) @Q@dGwzdG?ڿēWO aVL?hwǧNS>>ٯwI?}A4'kW||╧[-Ok,r|]}z`ҧ~=~:֥}i.;n/ 7RQrcܥ&KV%z"өZ)Rի8ӧNe:*NJ0!9MF1rI6"?nj<%Cgߊ7~-ƫ?' ό>)|I0G4M;F6sM#]k(ᧅ |4'[ZxCυ4?jX渇Fur0[&bMpD ⌣8kލ^yu躸zUVV*Myj-N*i*Jo߇2\ѿEIVv:ڦhUi^cl[aZI.%Kꠚi95I$m$նIjPNU*TaN"9mF0b)Im$dzֽoF|G-gI<=YMjZ6[FeuK頱 ex0]U4 5\6skH!vQ-捩}yêEum-Νu],(FYMB\ϕtk]sGK]ѢbbU r*Stc8;UTy׵x&;~7جgZ9jzum3At[ SY]/Ht^Q+`IYDVat(WWѫjӡЧ:׭5N4U*իRQ:p9F1ri"TM]ѵ5&ѵ5;-I]lҵEca.cv"wWF!%}_I5"SӮ],մ{i .=J9eӟQVMB('ɮbnWȱ]SQKW ZlDBpRBxHҫQFIbMH4(09 |K_/Þ7˥C %u_*mv͵ VXVң-lPVB _|eA?WVm^yGxD7|1_ԢVH񆛠juI z~ ۈe+ >|!Ŕ2 0]*y&e>Mq$pS5,23,Y.;*8l85kUP.;&/k_ѴNմ<-G~+͆s7W4COl˧_}Zm唰{ƞ?}&^o CO Y^4&m&~%`9[j:퍜߈5{m/DҢ]F '8:/4jyue^iF%7*ӆ ueeKVp>5M8hɤs-:_.-GzЋgXS,nƧFeUѣVJU:t5JeʵW(pJRSi\4kC75j~#~|s=kYtO? YVaVCGGjThR+r?cqa;乖'(&X,fTp| 0Sbc*yTE|Nujv_M^ùδkk+/ 9 ֵjհ5p=ZkЭNtQJnZ5TQ:B93$h u& RCTӡ+;GN彶Tl`/nٵM2! 9u7T|Oz^Ӵ?z֡]Q4OXi:{jK =U4zi}QBRK B;{{d~幌1qce6&8ZKSx?g ,JJac7]0-jMiZmkKw:ZbC&&e$s{ͼmh52ٺG<% c|So_U펛-HKX𖣩jm+tCI,muX-'Ӯ Kic<3ca0(XU<&"x|>]<ƞO }zRO6K+*BYZxQgL::'[E4^ GKK-{/VӥYbK.F\X[\Z\2FѡZTjb#FjRZiѥVjʅ:RpJѡ^T))T srğx9ukB_ b6ц۝?i:.`XY\lүo KH̲~Oh}[[/ʳJt +Y]~j*}k,1>RUocJ*RWuZUi~g{{mku_cwOc[,r։4]ݺ {iNBo? Ze/^K|5мy]_#VZ$jjzun΁XP} qi1nA8+yp9V;2Hc818z(fu)13>p:(aWu]i}ֹ~Vm}{miqjkc{<ɨ_jY,-g1߂.]?Ķ2LJ5mV J6ZxrFXU my\eog[<LJ& `aVRq8xnU|zƓ6wCi}G}m&ej[iޜkFKn-ӯI-.=ڴ+aWVJxF9Ӕ)Bc5*UԧZD*Ҝ*Aah \so`;w|FtkzfOM2߻^`H*@  9pEz q.MyoU= ^'|)r!`1 dy+K Pbb*) Q(T|-gk#V ç64ok%nV͵1yl:r25/B"սV:}9tiVȟ%(&JЊk4(>xi_<{7^_\E>u;W]lVwyZA# A5f|3ę.]gNS\F;L)2!a127Ͱ\d'b0qhc*'q@Q^L6C6WK}miSX[wz{.M2 !x,l#7Y-]][Y[\^AigiWwwRomkmoK=E ď$q;7x\L^K^/S*ʵL2"j TRI>xJ(9]['T2Zp^xJ L)JRZ.U EpQ@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhjY~i'u ^+ӼsYM; 4N麦 rZiц+1yio-96>/⦍ ao I>+Zsi_j~*<%4_ƾ1|9]>]N;]i44ox;ß`ռam> xLgm:-WAеk!<}?WMxamYMF{Þ+G-t; G(4=NI&ӡO8⸖k[dwU+cc#$^ͳmQ@d5F_+?;yWy_iˇ|G֡?pZ+&2XߤF3ʼO\>wo?g^@+xKMxMƱ]n_N^V 2"vi= 6Y,;y+n:sSg׌ӵֶi|."up)]QQd~YEz L^o,Ex[⥷ƭJ):"~!|Hզ+/^"<=k)4/WWDV;hZ_Z"_n>*kGm_wZRx/8۽>#S{Ʃnx>AyJ𘊐WMΥ'ZYrRI?F{YMXEeC8XZ2xo~ />+~6? xƖ? Qۛ޻}2;ѼocC|]|I^\~auc;FNM3n=Q#=φG'~?&|Ӿ0V-K**+:z>*exW ¾^G<#0mGO쩇$R\ӯS.B"J' J^T :i3*Z1^7 bCb(y/_ PY4a',dR~ȿ|S[᷅6|t_+Ja |-Ծ0~SkFBѼxt"95g˥͢Mi9waif'FՖׇ5MQA}mn/Q<[Wɚ cIJ=Z++hcX!;eKb:|M(Qե=3RCW _ > j*QA}W➍ Vikq_humj=WIod=5xfԩ|R?|WZ>!~.x⟍xj8:3us ?ூ?/|a5־1pr``ᆯ<VK8HE׼'6W(|Cht/D/ ǢC/XntQmRP cS.G,<-gyq.o东VGqGNq*aic*bL/c%*40y|Wó|7㟄^*<O/4m+E7<xJjT䷾-iv," <{|mo-<| <7ڛyO"=֝h_ ~(ko(/RF?5w@Qtq:KyY`利噟 eIx S <x XPVϰХO5>5urwzOKGO)jcz--C\M+YՖks{'>#ZXe8eYoG_5|A$Mn@uJ/xI'E__Y)^3]6O#YMj=LW UlYNS9Âp<#U쪕q>Ys< _‹i᲌ Cژ l&+%ͥ`>|2 Ɵ> xOGߴ7>hG~|R |"Ե/62GxKi5mRUy\?W[???u'?t¾#Լ ?jU?,5y|i .?5 7L>U yfni,qrcq? f^'apX6{|@O6MO/}wM=6:&ֿc'^iۻhz^a]x? /AAG-34duo,|slIxj?$Ky8վំ~Ԥ.-m/e5i-_͹0,_d|k|k1_C{T?xowC|4vnsY~$/W+~."Iɲ|WfS찼1 #(%Lω<1NE260%m/Þajh9 8?> //k_OO//^WzKg쵬 |/]ԮZđaqg|@_\0p<+xbC|6+ḛ%gÙ^ 𙏈^Q38TSĮ$2|.| 𯈼O~0&G->!l -|5ZEMmK·>#x;F:LЖo#*9RnJ?ڙU{_x:5~O/K#H$h3=_׾ѮRWX2TMí/x[a7IxN{-Qbri֖ZEԩbS/)l3vc6 d\O2'Ox㸃pK?ʲ þ (|A|^x_/io=?i?6q|I1XeL 7?j0SJ!GћvP^B>O0Ǖ[Kߍ>CLHgK|3|wع>CŌ繎gpSنxSe+m,˃xϥe8 )8>̲̲Ze:A/][ǿ>?h~Ծ7[< k>׾!x{Aû}ƾ4OI#SԼ6NY|E⍃Gi|5~gfc~2rW ime+OYz5ܚ=߷'ͱ,~JsL/'s̨Gp8.ɩO .+#`g3Xc7b/ONew FhvL sY|1 V -n!φ+C \6ἳ: ^:9EZLrϳZX*sYfK|_? &GzF/_Wc%׌tO8KgɩVx|UZo&RkC|'Ŧzi۞<¿|u׍ Wdּdž~ |j h,]WK? 7~hVvd_|V\{BYeׅ/qXѼ9qĞ+ԾhV~ˣ7~->|ugs_xDZi:zYz/|} |fG7x~ j7^%ԗ|#h/ OQ}Of+뱪[SM2Yɧ|%NMX"f7S38USpna%O0S~*L.qG6 xa9̰L >|D| ZiFo D<_?ګg<_B [<w){5x?j׋tcPּO-^)M֑}"[4|Ek/=_)#N;I7C<9iVL:mn-Yx;ĚQY~KYSĬWx9VM+ͣ1x1$,'a8/(qjUpu\ZJ|;>#h-5[%ᘵ?[TC[StMp/|RoxG.l[ßEΝ_m@IR<0X|x/m|}ᵊx+샨j/|?\1+hc [Ϗ5okis|-WX_x"i6۸If? (<7Ŀ~4/|g]J{>'l/-|N֚g,mյO¹ p.i<&i_f4q|_a_Sa8qTq'5$좷 1xڥp@x~iC|N}u{/xkZv'm ?5O>(3Q7{?~.g_c._xŝ;^(GBOǃ4|Hmo>߳wxU1^K?|WiXi~O8u[AqZeWf\QX^TkqYWpόgrK3)eI85exo5<&;r%em/m~x h|'.U/M(O|HaּQ t*=Ε|-$=/ÒjwBo?~,|N_~ x]}|>d:' b'>` /3/s<%LNe&ULҎq> |6g[ T(`+|d>2Jd]YO:&M+SWϑ/ ||A-S[棯wJҾǨYx >xVTZC]^կ-KXo:fq|:Wι;'eeG|Dkm&jZ^yj ]WV-#°{$1$cD!#P*a_YKXbyIEVxkxԭRڬMҥEI>`$ ( ( ( ( ( ( ( ( ( +Z}x=x/<7]=?E^e fPu}B K{k 8/&n.m@,t9omus__|+>Wڟo{{gO5v$jO4]wR,Z-`-(ITf~x~E֯u8Ci1O>+LJ!v  5 D+krS\Uw6xIӵT{;}CLlYolY xd6VNU iWQ@b[Vo2CV 9g@&+$1\6,2e XtwM.Xn+.Tg ?mJ4U}CSGǟZR{[B>|;&}*}OVEQyw>77Lu6Yd% n(ӟ7$Zn'$e8.m燣Ԫ WƜ9PzzƲN_a^^IKէ;Mq_ iM#cr~; 7|]zWtl<OxE4 L,t/ZnJpT)Ӈ<7B1\9&qqªUYazapXĺ8l=*T)b'ju֭)ՑEdq~ƃ{iOisMu ഞlLeZl5{ iz*7</Vx\V/B,iqT1uTUFR˰Pqpe*`Q\PEcAҼU~mDhzŤww/u궒-qijgXguos\^l: -?Na-mm@(-"4R4UP7P˝W:xQ_YJ ՔUIeB!PJgP-Vf!mVYoM5( k J[;Ȣ絿KyDKo$_71v-BtN|=iИw5Ϫף53co? T~Uh3 r >,~aK,f7u+*+#{iwWT'*4o0<5/b8]YW15x\bqeZY\U$y;$<=oh; /N[Žrdy^Kۋ۩fie~n31y6bk1uVνz#Eԫ9ͨF1M1JEsQ@W^Nȴ(jάspj!/sPTu+FyfWgtUՍsf/0uM|^*c*EIVQ#Rr,#Fb@Q\s|McLK5{_&Z>}RSu+yy#(:qY3uxElV&ԕJSڅ8B)E|/a|&uxrXwܺŕzď>7-mObM.U.dk4⼽In|5?xBS sZYfoys1FO2ia爍\Ejpζ")TՔh8^u]JiNQ^yzy>wݿoljζ,t}>Jv& "(tKV^$\4#ƑzxLl(ʆq &|>Ϫ#<%ŗ׈.eƥgx?gK$Ye~3얎/['dca1L4rL>g1tExPEP^A?,O:s}x(ũx9oCVڵL [-7Zǃ-٭uX&5 Zȳd8f._203o+ay`qRԥX :Z!FT(+c鱷Qu&X<>鶖NvQ.W[Cs=\ǥkՆbpk]/jSVpu)J.TU 9Rs):U*BAQ\PEPEPEPEPEPEPEPEPERa^V":@r3kR?/>mmt\'GxOx-CŸ _]J~k]ַ&ezuͩ&k۸J/VZm<~ |mAX~*[xEm|*= KN:w|U} x>Ѽ7u4ķhXLԮdK|]φ> nvڮw4O\-IXd1^ b>ZzM}A@VL2g]bsId|_yoI;bh0|/ĭ3w:ŸIty"_>4Eѵ/u^ gxC>Fg;C<7H,GN$[~m\LYn ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@^д ľ6^"BԼ [^Cy x^[B=14okj>_ |#=VKY5M+L?چĖMJS8&(ݑH( Ɇxn|+< ^/h Yk/hz3n5_h~M;K>~ x;u~мSixO]'ĺEZi 4f+Ԭ㺹9tU:( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=?*]|;𭝧u+Uh<cZ4GL,5i>յ˸>իt N "Xj0~>uM{^4B4_Zֵ{m7I46[GT5a>ongXq+>#`s/oڟl{S_o>}}qEoĚ?̮sw&ke1K"²Kt`v=KVh@6moƯo%kx߄#iZ Ş? KZuua'[i]OL7y҂R7.U9V*\u{^tu`pcpIU1(ЕnOiV`{5(9'k[^ (xsc>7C/4yE|.w-GoÏ Xk͡[ZhnsoQNi:~ў_@x2O 5 m4Zj?sLŅxC&5-i4K Y[}SN.;%9Ӛ㌫yT\7QTM&;}i?z W*T8BT%[Y*3gЧR0'*qP:`moE!Ki|13:n?,/xt]Go|#ki66L*qëZ kPӴρ|O'V>⯁mu4}dƾ)o~ZjV}OTݬC^J~0j4_6+ NquR5+FTiJ_0:e͇δpd1~l#VS2*c33`Ajc硈RJ8p~о=eO@q'^}  o]wž|U|?KšeiAxH5ok~*ҴX>į!t|9gNE-mD$X"D*ᢥJRNxe 5OJ]::T\4kRZ<j3\|y~Ux8c,,΢TSG' |9}šd:½k>L_|Hiyr¶B?~%AycƖ%4kK(k6q^]iV_K'Ũe,=LYmRdQƾ_FreΖ/RYe%V3? )x:տ3G3ww#KyuvoykƭZiz.Y_k֫ygV7ݽG~Ig}U=+[{?;.%.ⷅ< MWHo9u_ ZYiR^J%,%z#O‹~Қ<NjTԄ%NN3eR ^ 'i|U+ XTJ. U㎯BLV#CS ֥W\7[_4D){SY_2x7u_V4s{-ëxG.5H'h H~'ww$x;> _#57_X7YmcgZǿ>$ZֱxWŸ-D3ռ3h֞ݟ/%xVמ67Z>%Οk&2Ԅ&Ubaa1x,E7*MW)?f֧|=Z{H*1P1XgvIϸw5ζ/ J73խXH3 7ʽ< [=+79[QŞօ3I㏃k>-!x㟆XNos h'M/ڟ%5AF%:|Eu37|)ji-C|ɣbu= J<5|Pmc_>|[ F]@Ե+H8qt-IkKIpd|o5/&<,|x]kGYY_w{F'x4q9t #ަ[:]S(1 \^j}^&Ч;ZWnto4bI-;+ ho`;>$Ogھ{}g'}gyyM|Ŀڇ⧇"?¾G?Nh gUv^ZxO6YxJM2}+躿WS 4tkS((((((((((((((((((((((((( Zo?DGWh_-j_Pj/h.]'&sk~0E%?d/F4繞m;3|WyxP4m úqx[[^<W~?h? 5~m6O}-ho |Z?xF5W:߈Xt*>#FZ[-A hwM#Kz (dλf6__7ړy>wyښ~ɡkQ@-ӟgAC:-{|#gW_~?Xe7O_~]YEۛOkW(Υ_GMOGƾ97>Gĭ[0͟1fHnjt_O|w|Y/|3ceu cww}j8ZXEΕjx'Sʵ-%/'*,~8Ԍ]f%NYR˥Jp*YӖ-_xf>#l/$<;Wg|I|O:~{ᮁo=摤x[>/ ?HФa.䴇WC}'[:xƚ=w|mPxtxB-}&NiWG_Z^_ u5[xJh֤UW(`jGCF(U! 9Uu(O?^]11J\O,?)V0IgZ28bhe?ZЫ*:x/| bm+= DŽ(ß 4\3⧎>! /<usxN~6ƗOiWVnɱ.C F_ֳ^)>9|OYjmcZOo/şkKC'O ,|IgR{}?TO|/,BTXCۂaR*x:ӜU:xztaESfBz8*'jj (dY&(`3ⲚL6W|p)b!(,Oi??A0x^oxí'ZY5bS_~7|^v%'_5U&ްO}iq,| .+;ĺ&Jҧ]RB'KJ7ž+ˑKJ:&r.xGĚƙm4Ϸo9(<]s-8--.b\W7^O B**JUc$՗krAJ)C.;bqzeb+C\cIu?(>!⍯?E4ix4w x+%A|Qu[Oφ(.#m'~26Ƿ'|;?:/#yu9x75ӭ|Uim7A I.4k:OR\MJoȓt)ai3'RRjU:sbdC|^+.REP<:Xj4⧕e8 x𫉖 B 1Px@dž|Jך\iv +u;[|Ex'=档bHnMC\Z?dGr)W/~< >|.ߌ?>&>6qxLW w{vAdZfoyR? ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@'Ǿ;D x_G5GIGI:~-Ѽ3Ӧ^Ic[%Ttovz/ZeLj|3c_kEiiߊOKѬ%MSU.VyK OK.y/E|#jE5m[\ׇZ46q 1.f@R;ԍ,^VrY.<W3x6Zރi׈)[c"X,4}/J s4v~V&Ú>nm,u_֚ơkh`,yt{mCHV-gIk(a/Nm<}ey>v#kP?ej^E'C[OS[Y_ïfijZw}j)J+]*᧻-'xp ߀R5Q?K~Я'Ϋx_Szp0 WvzF?h'PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(>-4#I׋5[[wB <_qy}{JxZ}Ljq5-n4cxѼ7ehWp:+ֵoj~4z]6/z4EݝK,n:P >q+(`xD;xUaw{NM6N,B:]$䵰'jQkvn]Ή]]Yi7Lj.ve֥$u&xviz5z>6j5emam.귺QE&뚖Rկugi>+H5h7)~IQ /L$MF@_:\4znIum@|[|1⇄4_KUd+Ox_ޅk _LK߇0|>&0x"㻝o-j8|C :PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<v+ëKƁm|k]7ixY>7|?&Ew4}:]?RYcj*Ai[i_R |K֕ 4 DGMsw N k~tk;=J]CY7qZ6LuK` ?fxV /DãAoxZ5^3]6m!:3iv=?|wWp[O"ϡq9>#Wd?%FKS!ZR~֗W!>eν{vV7Xw.l2nK~oz>!|bQ6A׼Q/MsP_0{7ֺV./Ԧľn5[)m[?NwT--4~8gU`O/4&JM*?V7I<3^fh׾p+є8*0\N\^JMrϳeY][U⊔)⯈>NuRFkTRs19j9xv~ⷆ|Y.55 ڭχž<߲׵=YuMVO ^W? | O^RIYkߵ-/iEk%UMZ 웥xú2S|Ig-=ZTLSFO +SU%:r֔#p] sFU `a 5U9!lZ0R 2^,jt|@񇋼+{-|]xƓ|^ΪT>YI_j~ >'kkrW? o>Wx{Qǿ< >=׾.Oj1>xW^OVPhrzo:Q0T:2^jצEFvЧ Pgf5YZp\g, B142tj8Xڟ]ul6?@Bo %~h[xVBBVo|8]k%iZޝx ӵ=eKgIn_mzi>$xoD!-o7֨t5) }jVL:Ȱ\xZ0:sZН*NT*ҡV=(ԫJJSSRҽ$4d~W:|N _[^[+` ؊uG^#F<&ޗk^ /OPY. Cx& .xBig$_k {Vi[X0,پBe%KG+0sWKh2U6+\2g#i ׏>\T:<_aS=x׌~(MCx;t|->%յ>ռSA׼B_x_:čZL.'lfm> ~ӗ/>4-{'KX~L#UX#jZOO'NAsoO ~#xo'cm x~5t\G2-/5 oP}-oÜS~QQ,?q߇u81r1 1qx?5>cTGGG!yNk`fgá j>?69FxcoxN~i7lj[_]X7D>[=&mOk:>;|cE?:$|;|#;*k$c]hqs1S VMḛ1;B?;j8/O þ"g~^?;KŨz˯36R{oxklKqck]| hK?ى~: ~hN[4W|Mg+GKxKğ |?K1WP.Ӵ.CP1 ; Ř>=Nnq9fc͡:XĘ'y~.9WUQ2{՟>ktgh#=ƭoO|Q\o3V>/wZ]w¿phw>5 G?z4 #SycIΫK䃇4Â;|V3y~;e򬦎C+渊'[+ ~u& >[>eoZ\DŽaxDBYkk5U~g3ẜG˰9K+ Y[QJ@WQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh2վ%izt9,ONZ j~_Ie:Vq6X\NbJ~ ]SLiK$\YMd{^^$NMկ4H[_xej<]6]V_]xWB<5ZGдM+M%ge A<Ӽ&YB# (^C1H] 5-{,cbm.[aK֢ Ʌ:K :+бy_YRwK8Z+}6e{Fm j(6_ h?^m++H|K&I xHl? ~'xt;7 AZ>Mb oYV:|YkbZ,[k~ BpШ2Sxiʣ΢詪r%BSxv_.Jy5*O*bRK&Z,tYeR J*\-g{mCW|L:xKms=x(WKv >->þf PW#?N=;ឿQQЗ.S'HGxz; t:}_R^^-wy?&]b9]X7O VĨӊPSK*ѥN5g: BU*ʦ/T>%yƆ8%G FUO978x<7phwԾ2~ |-LMd^O z=iqOQNƱۗ+cH3xO_>1'x3d'9'j:S[͢K>5w̦VPai:\/gҩ:4\EGjգJV2TӄB}:ʸ|$,?VmSxN H$>!i ѵKI4y4"{'c b.;R,!t$CeyR TwQucx?B<3/Cּg_Z&\M:OZ~2g6vS9H}|Q߃#|>/Twͣk .4+X/mSGMVђK-bXͲԬ7Q.\+@qF|98.R'bHL*NT+`Aя3iՅHB|g/6M7ş i>>/xVwJ߇3^^ n<% B]ҵ{Mj jZvmosB~ m+ǣE?ׇ~xwP-A]?NZóieu-t^-ωt b;x'[qTu8L,2^2l~? ξ)Yf#+XLuم\>]jq7_6z!h_<_x;ƞ?h_x1@>[q-!>V _|&F@-]^Kn^_7xK^%ѵ_rh-/~s^ yDi2XO\R-,̷ÒXSBbU7e<}XaV#G|O㧈~$x0~ |HmxKBϨZ 2OATՆio}5ORK>l<_4cּ{Ꮟd}Ѭ]WƁuu=aMx:MEV\5/: o3,n'n l=<TRzy?'p|ˋ3 LpfxoL7'i,ӈ0yu>Fϋ~+Siv^CT]՗!-m<_Ioi(ľ8?ԭාW񆠰9>RK9/5^ ?tHbdoM#`_{[C=Dh> XRöQACÜ?Bm7K|MF;m O߆b? BSм8ue5/u.S]hg=b((((((((((((((((((((((( Zo?DGWh_-j_P]om{EֱLÛMC 1XI>f[׼/AM. 4SPq&{yg忴L.AuZDžMCF!sj<Εjqwsi>4P)t3xS^Ǟ^ ~޿mAaevl4-'>Z{v閾ВSB_iC?<9eqJ)t/ W_?6FL-1]G׎$k?xo kח/ ƕxjSr(R(ƴ# Tqu!5QsI7E*uQBں|E,_ɰKjW)SRe+ӣSI7(f5+X|U,6xlk'7 ' 鿵g??i2|ox_AU|)K?iׇt]e.k/< ᯎ~CØ<1Cx7oR><3C.4}WJG5}K]E^\hV/+3 rnTeF5t㈎1q_\Sxh:RCpANS#1i8P,_K3p O6Ktb֞QEs8Q_,|kwajZG?߇&x{<7K ie+^%x?];'? (]e癴<S^Kľ2< xĞ|-~#?#kϏxgC~;^h弚K}AE[Fg x\UIEү|^|5 biaCW^j0P(էV19U,&|.6l8U,ep⫗b3So_F8~jn3 KŅWY~ _gK7⯊ҼOj6y7t˟z5Ŭ,N<1iqEo>𾙨7~ծxCC}_Wec NҼrhˋpne8icF7,yN6TyWUrl5|,8Z6GFV%e5hj~wƚ_tk4~$φLyek׫i2k2./<u2Y\ti#ǟh'_o_ ;a./eO+}_\ÿڦ_Gx[RYtk:ij,=Xcqu8?*ԧb(ƣx5bqpJ Ow+<1>5$ksXHf},\ñ3|MJ\l>`[ZLK/C/k+7+/ Fq#.|CkZ| _|gcq'~'?\|; mZoF:DA|$/y_Ŗ$W/ }s]:/tY(5{&̶:Uo⇋(ZJI|p̮yUG.FU%J'uP]G;˨pu(ĺX:1Q^>Ҳ}Px@dž|Jך\iv +u;[|Ex'=档bHnMC\Z7Oڮ{wjzgngSVx-..#{k$h&%Xy Ͼ E>2hx_?.9~֟G)j:ht{}˩<:uHŕ]/L((((((((((((((((((((((((( Zo?DGWh_-j_PᏄ$ç[|K5sx:VwP;Ě Zޟ{eky\ u6u#O$gMþ$>/tkm~%|H..%Ztoi/-/-5]nIfp:vDjzyk%7 ԮӸkKhWA=uqomsmIvEpx߄5_|F݇'I/tqK6 KJ4)u=\uKKMWC״{ gDլ5M&?co|K4߉zi2|IG_J=ie_>7x⎫z~ui/XFZyx룎*ScY)СUJ9SORMRBjK˸9kaXYirl<=GV x52X\1_x_LOς>"\j>9Ajc|'mgÞ4ڿ/{B?|1xkT/G$^% //='LuOsZ׈|ex-|_M.;;}/Ɨ_qZeci,oi=ZfJKR_U%6(6^TNK$:N^~9*`paW ]<֦iL 8Ri`NPWL^UZxa18*};mo?%мir|i}rƞK1>[ԼS-{C׵XQj5; dKᏇ+qLs5ϋ[o._Yime}2|Fc7ayeD4YKGX'JR O |Ӧ(aIJzgVy> aքիԅ\~2dY Ujx:tVe_jXF'Nm'|S<3xWmGK~&|obV4k_wWN"oel|+yI\&z'/t?z.⥿8naԟK.Y%wmgMݍkYOoac51^%ƛ(P8vNQe^I$x)F'9sJjpx<#8`etp<F<iR:R'oO_ׂ<]:oux=N[ύmpmZX|p k:׈l-uxooN$w7[ z' Aj`Ӵ'?u/h{ ^3֖6QMSqU'VrxvէZVn'iGB3qN#O"5Z/*;ZY\c28{a*bS:r*S̰l=&o*t8Eǿ;w I|>\Ŀ2Cj7jj $׮ %|G$[_xOlG~ oGպZxQc?vp$HCKM \6ko`$iX%ܕ3,]GVRօy<&UaSTARStʬ)(S8BuRqRO2xիX†iE`"=U0x`iמ [qj}Mz4GW7[xR!]sĿ~)|R]JI7ͣW:?:3z/\MHRdtWi}V*99k:t(F1*0Jc$G[t"':a0 4#J(ҥ`(aXZ4S:T0z4i1)+ǃ#xBú-߉t/5K񇍼g ]i}NVIQ%h>WCEm7okt-?žg$+/PҬ潖;H.{ !WhpGt3ߴ?՗| xK[JIu˭J.|GLb\ w3Xԗ_^.lZ֔Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhh Z|Mw;'j-_56!}_QIFswq<_V~>/U;Ceo j 坫oè\ii=?Am  Ӽ/!SZ{}bxk?_ |+?m#aSOž* + ư5t(((((((((((((((((((((((((((( Zo?DGWh_-j_P|@_G\|Tívot hS4"_Nj[ 4WDQS/>Yx %{O{’h4[iFflt/+;M?NHZ壶)x]. Yi[EyJ Vk$k:]Ưf: !X{H0pZdXbHH$P#K 5Ź@ wmsP7' om[Tp$xo]ƾ-t+z?=oyiz=ֹycswvܬVv-F`!e!*# 8 AP5p)JPܮPU ۊII_XlD(RNhkխB&TBx48u*N8IΔq%QEUTw~">w7x;ĺ_<-/|Oxb?\iSD%Kдsj ik1O/῅D YG~1񦿤[G C]:UX77p@$4/#F-*NOOGc i%kyvaYU2<6ZkV USPUjB/W $w53>lZҴ>gdA:!NS1G)rB)77){QMh4Vb+b1  TjTjaB.uVtƔdU:qNZV7ZZvko}acqݕIqkygunAsksoq :I2RMi٧Mnф(JP\e(82M4M& i[c#ygX#H*(,M-i$m$mKV߇/𿊄vL|9:瓤xɵ? jf]yzwt}CC|[jJv@AUN'P8]&M]4֚њՕ M zPs^Պ#RTF39pm.hJ2WM"GGXY"" ,*,@JK?|gO^0}64_ Y}~#мmoT-ROy;[X}u&'tPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/>KeYZĞ5+xNπg7l&#xJ:Ꚅ6iF[,妑 xڗ?| ?> jiqK_k߅Ɨx&o5ծ,i3şil$]=&ĖA.vսshK=? WQMSUg2ϥAdگu I`Xѭ|Wj-{_{R\hב)@8__| x>>u/^b]Z#>м?]>B-5j> uWMZÞ75_C@VL1]eIc󼍾gy|'mjg_k5a/Nm<}ey>v#kP?ej^E xu|otX#o^k}.;Z3/GW j> D-K~"kѵ[{bq'.kݭ. KixY|i7/:xߌ|7S·u?4]R}+@]F 'RfgxtneKȤ[㏆|y1?Ŀ_,OştoS=A3~>.k7S6^eֹ& pj:n,ajaZJ"5 iԨkYAUW,[T$,IeT1mzpƶ_QP:xL^.Lh`3%UEabO9\fa:\|m/ |@__~3|{C뷾)ּqO>.7G_z?OC3DVis.lXԟ~,W >M)|B9>)xYOKN^4/x⾉qjϊO%^5ԧKUp%Cc՜+9#ԥ_JWP#zcH}NLv' ʸ;*kk&˩QUgUf\G8jzNxըQ{*'Ὴv+jO xkǟٻ]|OǟU~('A=oNo}FNJKš-֓zh^tw>~ڞ~(>xT?M>-x-|}|dljmxHK(~\\ho5W].-tie-"Bxe R*04`O9Μ%|~ᇧ*W`pQx/# F*p+bplMNʱT/|>U|y>7I+~3Z O-<;= φ>#_x{~ιs5e/jv;'Z4g???ڃoO7?m_P8| zωKe5i=Bhឝ hr\ z0j\)G TBql}?hNtleZ𯃔iКľoibK0t2<=fyfcO68 q kN^4rYrWJ_ЫhkYϊ.q|3|5kzC뙾)'gͧ|_O=?iWP]hokLfMϏ'e|. _Co|=]bznc2ۄlUXRͫa5#Δag7~7ܾH kjck/C,_W4վ 曦'džSOKƞů> o_| f|V~jZڶiP>Hui#iQ]E*ch0pTujʰWfJt֯ߞRTZç +&9|~30\#,L~X:<1̟T){|$rc\De:s|*)]5=ԣSOE4<;Lӂ;b9ub-cXuē{/.kOL>j~qo/xo:M+ gPՏ<kƴ|jӯRUgni(k݄`޻Z.3U٩(څ xx49y;$yVe_3e߲/AtJ> ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=x/<7]=?E^e fPu}B K{k 8/&n.m@,t9omurx7>2?-A3M}څ6~g&Sn4$o[^7fh~8Gj~ 4 ַVK˃HnÞ |Y&n%u:VҮӤ[K o:I+X& kگ( ķQ &d%0r΁oLVI.bm^Xe,ְ Ě]αV%I5f!,t?`Ӗt bIsj)fX Nxn$.nnu6-I7 c}L+[KWK2:uq&qsssGhE>{?|/]&\׵1ej&KiEk}]Vaocgss)bG!O^,Ks ^)ج]hPN?iV!*ԅ8_sS='žm[]eÏ?l`@5ƥxk^w˴sk$0}˪AXiتcM[k-L\kGmLmaC H*GjUM_PPE utYwyښ~ɡkQ@d&uF/7;4O'fԛ󼝞.#>M Z+>мicž&_NkUf,gH@:8ɮ/qJjn# V5ӟ%HF\!(J֔e?j_z ྗ|KoᏍ-..|9?Zu4\ռ[xOL&>~& I?a]OY u _6/5C?jo|Wdžߋko6t?o#w~"oCqϏ{MJMR}_Lt{tx;2 Q7<t|aS2˸c,5cjCʡf3xoW X/ʲ\\"l>Xm?\|KٗXog|vu =R[Oڿ|--sN _iv ]%Ni76փǖ^<;?b+Gn/3Լ8|i3&$i|H4ohrXSSn<0aaGŎ[Cbd'luywDžÜ 3쾭 ͰvvhO=UΘ4+_?_[[%,vW#wEK+m7maZ<<5׬Ş  +/<3N4$ntZ<|Fƾ 4<3PiwnodK-=w7(bqңǙJW3n#mb0IBPJuWa ikV[םn~ߪX{C[˛thxmY .'kC<9q_w=iw4 8 :[:v?b^/YJN`pxhr҄!5 T.NiML= ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=?:4]iuczn˩MgXhѴ5MJK^yo^ ~ϠYkˬ_~$;O .]Ru_O?uGj:ylM7ׄRl4}Cž+𝝼ͩak&?k?Eq6~&h~+O]O?چ9a5_|D_VѮ&խfOcbq6cg, 8%ĹO2\yVeYd$rLFcs8Wσ>,OIo |KFEu~iV|lvrgҕ4-zZ C>;9mil|Bw xW"44]^AȍZMOZ_`Eg>[w-&[,c?c*UBloecL-g OC G/5/1+}/> 7|O&=*sɩxDm[8Aƀ[}ů OO?<g%W^/uo x0Ma{5=SLI"&ͅ0"(8ylׂ+ycùՖ#tЯ,6[^4jʝ*sq-]]|Os8xGSeχfY~ ;~O7";x LRV}>=CP|}¯ψ<+c\GOXqW_|'fWY?GK >Xx9x,V N&-^x|awk=d|H>tS 0Oh:ӼCwX|_>WΟxB=mⷘ6O~(euunAxO7ى4K%D6~A@/S[C<6 .w3&D9g7 3Ӆ3|8(8,u:]ejXzXbGEbf0ļf B4>loi| S߅'Ѿ#IV>4o> *\_nh|Ex@-SH|C6A~w>2%мY-xoI4֟-kNֵfנGmkyqv%^+yRʱO¹i s4x_[ YcJKQBXeXP{-Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<PRxO%&> ܚ]:N?n>2V7Q鉧} ]GPO㙩noxoᏋ[Uּiv{+ xwwƳ/M[[KOGoZIw?kUYxnk>0g x[ź起/|khhNtZ֑qrLKt/6|GxOOҬu쨭(^Xp*,$Ykkon€}A@VL1]eIc󼍾gy|'mjg_k5a/Nm<}ey>v#kP?ej^E xu|otX#o^k}.;Z3/GW j(kz}ޓBfgoѼmMiF\=ZX=Z+Щ kQUVեR3Rp$I=]O^Z/Mx:iwc[%/ƚNCĺF_x?J4Z[_h2K|YW|ci ]gSmg\{ö˨~/xbS4;oiN S:n{>x3Sn{8Iy..9/ Va,mT̸~9c,/MO ,.YV߳~&w4ρf7Gյ\OxDؼcG|յY|W%`"^O-? _V_ŸYye7>x2l|9Ӯtcx;9-=ƺ/HτM:q%*✺[{4Krd1bWV 6f;>:6Z.LR R?oWv?~%ςO߳hU4i7j|Svs\Mu`[9B?kο| K< -w?xoqᯈ1>,<뻋hd_kuf K_vxqM fyFOo+a.bO1\:ar ~xB|eWp~#/N ?M73|"^ Y{b>4o ~׼'xG:'> k(Ю ֓siڄ/{wǏ+7ƻ3GOylWt-HaڍHׂ.m<)^M65({q~*%\(d!yⲜml:+q>sUˡL9xk21Y1,a2[]٧?|X>C*u_xT~dnxmWY2G xhza?wP5ߊ|"⇉4 _;㝖o |Yi7ñyk~7eyx@!ͮz֩h}J+a˸x"N{,ܺ(x"fSAG6VK˨xk_~,x'=wඳ/7./\hz΁]^O|?g{,> Ю˲v;0Zjgh.. mnX}aM( `Ҵx461YڬVk!b\~,7b2gT8,/\%14J|_NXlFxa3b ڢ6 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@C?û x'_:>5Zݢ9xKwwwU|=[E=io? @'ulkZ&hi冯 'w=ڵxi׺Y$K>Fď>0'%xG—^4_xŢ:mݿ<[u]/n}a6Z}d>OxLgtнŜ,זrn֗\[I-Bxv5PX&|0_3Z5O/Լ./oOⱋQA|6͌Xon>(((((((((((((((((((((((((((:Duv g"֥n_k@ExƯ|Bf|~-OojW>,4_[YXBjM{ӿ7q)]#Fм;j.nw~#{cXfn4i&>O~׾%SAӮrl_>9gKOzt6PgP> (.oXWoZ'"Hyʛ%G1Fn..g#-6 (a:N'}|߳jMN?OGjke&E utYwyښ~ɡkW|^_}l=]aCa)#CizCjRag%H@O_>-LO_|Pj/ڃZ}/> ^ _i SY/YӦ [MI "Bʆ#_x7gU~VƧkhf-Jɖ^+ړ$:u[xg;El%]KQקMU#E`2K&s"JΗ>5g隶_߈- eGo )sF/+K,@z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZ >5:-jG gG~( x:֩4z} c }_Hl4YMW>O9Z4Zjr*u1hM9ʜjQR3\x!u)/oW:z*+T &IӪ[ GX }{}#@]'<, V xlT8,ow>sBrYbO6˖.l5(2\Ň?@'Gㆻ?>3;EU?A/5x,O|:&ҊR2 xJ񕞥}Zx +_5t+G< y.47NƁCY'?<+>OEO>Ui:[iڇ>|D ) z4>(ϋl|=oyۭ_'ry N'=OC ';W cL<_s,\+1w_txš׆exc१imwm j{RXMlW:7LTzƿt^,{͟4 / /??b2 & :gV/QNAg_xK?>|\Ꭳ߃__|Eii*_xI֙-cBvcÿ6H&>|DUwW^!wU?Ks|+Q.oڷ߄oo5_ɼ'i*\`4l7b%Xxqqn,Z S=8ü_XN ?yv3ㄡc*d،/A*|Kþ,dž|kE[K? E3H=cz@Rּ/ xho់>mG{|5$V:Z\/ߍ~-d;J6߈^(e>0|oMMλ^۟Җ+;nKۋjZ]d1JyeecUֱ[K;2_#f*Xl. ,V/N]bC + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@Io0iO] o]F Wth^Ǿ `Shu-gkq~|Gq6~ 7~$^ּ5zΟc[ú\Bnl<1j-ƫ65QGk&[xSLfCY]K<ɫxך^w_:cuo{<;^n.,|?Ca#^^Ȼh8ԓ\HӾU€+H5h7)~IQ /L$MF@_:\4znIum@b[&&4?2 A%٤iHд]GKMZI. (cƻc~y|*_o+?pO>z?ھ׮kQ@-A|h_ "o \F;vhLJ|]xcYqmz_,9? Oh\X1FϋK?\/8ZVip[q;_F$ >xO_iGOS{mFZL)QMז/UhSFhDV*V**oi5/q\6-qRkdx\x KKUPNX|-ZT3 lG%%x7v|¯ @^g7}g_|.uK/1~O$~,5ݾ76MYO?gύi/Lju_h~6-/> <Ɵ j^?įxB%~+:25 vvGnXqT*S,}*\\%aURK JWQBUTnGpԡbjKs=i`rzٮW1UaWƾ[Jt3EKC B2TB-KÖ6tV4~?<-=I#╾?|&KgGd M׌5[R O^&_=ޓYZjizc,*687QaSQƼĸ᩺xF09NVQQym|a2L2/*y]%yJYFXl_G VWƮK هY>8Pg m?-7 ~k;x*^~.5/AsPj^s4@ {E |)mK|@>8hxWPO'BRygq?Mqoio?rMsm{Wk~ ߀>)@AuH;xS 5۽/W5]wSu n7?a~$*'t&EK{}bmo5xZm='h'Oh:՟=DuR|omɫZXih92u)sU]Tb^0éTRYM(7&QѫxVypS2>W ؼ8 lN&U4&JPhԏQ&^/aY[W=3GeΓqWvgi1k %了񍟆h:EԳ^v;,f&"RA)b3b#q7QijpUK֭וuBgU6:)Ї3|E ,sJRO*05~c–4ԓ m]FZDюisdoȏ70oW|5)| o| [ZφW J𾗧k KsyԆf̥Md;K248yWG6snQ#gO VqjL#qK  ff WQ/^?|{)2Z/M{[iV0.2p[pqFQGCpxl+1ka8{>y/iq-ѣQutc0Gr|1g1|8(lih߲ggKu9㟈(|PwO>"hg~,iV_hI.Oмt'>ZKoXzO8%ÙOs:3|#pGcen#1yQv#86JY~=[VL~"gNp4C_ ?CL ű?|5|#>  i?|=/:~ i{xj-OO>Ʋ_KG5YeR*^W|Qķ~3.?kNzqV堲[oşs8|U^Y~yy#A֯V, ,/OSY}_ _((((((((((((((((((((((:Duv g"֥n_k@Ex7wWW5CoV|o~MN!ht~w=PZTNӘ:/V>wᭇBA|\jǤK7Ud" /H5k{[[1eo G-y HL:u$𾋩FY4]Qj/jKۘ--VJ+ (a:N'}|߳jMN?OGjke&E utYqjz6Z-._&SjZlCa%a῁$wx7QKUu }OY(Si!kGđ_Z^'Eڮ< o~|/|Ncq^UH_FaW]:ou> )ɒKfivw~ecw6>GèRƠ5Z&L~yN-!p}A@VL/!u]WI]$xʖӽR]Ʊױ[鶗P-_j0cokQ@dwQ؅tGXym;Ie%k-{iu 2= 6XW|[׊* 1#mw|7S| wͥxO}۫]xk@tl=(((((((((((((((((((((((((((( Zo?DGWh_-j_P]om{EֱLÛMC 1XI>f[׼/AM. 4SPq&{yggukǖ7P-֝>5O5Tc)7z~e%֑o ^v{p[ƚCX(JGd;o6?Bᶱ_Z-Lj5I+iϣGZy[xIo[L'm;\WUFZ=O]]vLӵ ]wŏ5-D$Dgω?>'^!־1|w/t @5sM5m<?J5+}KX/[Coy3 (cƻc~y|*_o+?pO>z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZ+~(}Vx[U|iCjVOAcsx3Vsxo^ӼGu]xƞ:| :9ukZ~#i~ο^McKx[GB:>iMSn իY/W:tOsx_MkPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<ǟ |%&:ŋYm-/m$b.+[2PK˨=y5׆co/ i3|T}Є^-֭Mukmn/=^S.ظZ'?O᫽MtڇtAլ~-|X5k ZeNi5%V EYm:渏K$ۢ ķa &\!3,sNL9-]^(b*Si5z]Ͷ%W|S/~Iy|s~SŝѰ:'<6O?kcdVkk{KK`K0n{o'?<_ gxc÷_>-x⮋ .eu?׵[o{U1BU((((((((((((((((((((((((((((:Duv g"֥n_k@E|FRTkW_߉? WNЭYl8-o&鶉 ROeb5;>+絰|q|iv:O| IoxZ<ڕPEuFq?Nj : ov׶wq> x[×~e?ú>xCXk0OK xU🌧u`$C9/c-m_uUzo >rjeϬk5STl5 Zt .gi5wp߳ߴv/g/t tg^X߉|_/^# "Mѯtrx! xC (dλf6__7ړy>wyښ~ɡkQ@d&uF/7;4O'fԛ󼝞.#>M Z+&31y٤y>~/ͼ7Oty__h`~Z}|?ͲצКHjm_Ǧ5nkqrnUe1dҕGJ:]ө ^pgk{;v:8<>*0/;ՅUnYr8Z>O.dύ7ux?> 'Ğ&0'Sm!4Ox:~,][n{/ ZnEI]>?.׿a?_noGf]kWWs9/៉kz$_~x?{_}bK|0u)hNT>t%Hc$ʢQһw>// :sZQ>׊I칰Vtxcc sF ٪T R:gJj$e1ax+Éi|?"uS#%c(b\VZ֧qw}/?u?5Ÿ kt}_ei7}];~Iik?Z=iA+[ԏ~xǿ~~?hs3ݰߵ6#-w?j3h~(di?ZxZJ1_%t{XuF5/c )FjXVL$q>Ɣ*yJ-ok*~MF7U,ƭ_>aøb#[kX|yĴ92|1ெ9#-f ڭޝu7\%OosqcgAK^z8jUJV5a*תN/SRiIrFXmJQ. 11x 3~b反\ZTՖ>–gMWc े|R }'ƲM4j< /Xt|?gkm:m*&⋛s{xAWЗJ0/O&i3FFAus#KL4oنH$t-7쿢kLԼ>ZVOM>%$v"lКbhS 9EP ԍ(BzM_VsSZS1z?ގ * }.X8q.mSVrj~ǪGkCYw+d1IK_ػ3jOj"c7e_k)iK;=I~JwTTʹowngVe__M/sfC6 u_ .$Jw T֑w>8񗆼?xŗ,Iw&p]Lp<((((((((((((((((((((((( Zo?DGWh_-j_P|@_G\|Tívot hS4"_Nj[ 4WDQ|B٤q~+ >t /-+VVv6t_A6֖Pl PT@ςRhN?|, B3&<)Fv77GNдHilV4 =2Ki泒 m%)-exKgZ -"bx"LmR'( ɇۺ| 5'?&Dà j(~O|}_WiAO:֢ ɇۺ| 5'?&Dà j(/QMb}"WR@Ƶ\j:}&WjD0&j6͡W_"x |>?O xOπ>xSNx#¿7vj$l<9ھ<^\y4y\U|sjW }2x[Z ^WWc0jGle t))}UsĺٮeUqLcTxΗtKV:.>"گ-E'|o/x_tVook-^ {Ad< mu{FJ51[>ۈeW?zZfΛE- c;=2DVl.K]HOG,eAm`%9oAr\,Wf^qCf~eB'౰cסMWN:a"N6yWWW9jb⧍爭[ .iVu*b`qNN`\eGOg '>!V?||C𧊼%)%|Mo -xo^!mk@]&V:v7 amn&4'_|7GGt<𶑪x-+w^ѡ ShEq+颳KHXjyoRXL3LέJ*O /Rj~rIUb0*qsj|56V%x!kqqT؜>+3(1(G C^jWG b*FUЌhqU|8O5_z5>𷃼+YxP7yZյC2+ o}vCOCᧅSIV9/mAAcVam:Ԏc*ٛֆqʮa,E h9hGS:N\L19i)bJu̱T N>5*8ERnlBR%'y<+߂Wßh_ /| v>-'t \In|uj.lE"1BxSD!kWIy.n"}gCW x~@>u[-GP,3hi~V]REl^l72ʱq05+0իq&-bp*,EbpЭ)z(թhՅXJPdsqo|ṵ_8^JMV5/x3>G_?zO 3𿆼AFkޅV:^wskq62^R̲Ȳ;`l|1Wegv~$EimjqA]'ITq#$8wn*MEt!NY*e)5UӲn|ܖl ϱ!|TsifX̧I`*$XQI*NG1Ox/zc~~,|)i^|S[5?R-,AM.7I.K%c7mgwiUŷoٹwmݻn݌nF#L_x/m?ා_ zev#kP?ej^E xu|otX#o^k}.;Z3/GW j(;o~G-xd6uMam6Imȷ#ݮne*O?|姎w]˪x6 Ox->)'Y״Zմ4m $SG67I_ ξ#>TqG#akƤQYeXqpj4h3Ip*ZZ(Ṣ )j^(~<%|']ί37k 6'πMm/|!ZDo|qxCMU-<Oףſ? hڗz~_cgA8'zڳ?1İiK_zu]v+9WfuL_c6{+|')e'yĸN&Lm,5>-{ ĸ,G :: P&oxhgĿ^NZiw^{2kE5K h:h%斞!U}kWz |dAΟo.Y#|9𥏅<3w|9>&]rjF5eyw8,lr\*o|8xg -l(PX<_8^|}\2\uo,},Nxg)eAx-i|l Gf/~5woٻey<9{g-I:jvtuäSm?~+ԼYxOw?~ e ׉}ROx*?  jw6WU4poqx,t=Y<œ_ /x:Zc[8\.dd<2SQßnU@ (-I7 c}L+[KWK2:uq&qsssGhEnMYKaX4\pڼY/aӭ4b;@ (KujBX~S ,d+R̰A}knI\mט|^O ~3~'Z%acƏ msH[ß OZizTef,tv?ï#Ga?$k%ͯ|Q3='^֮?=? 27?|5iͳºcFY{}z9xO7Ѥt{#Pfk WttVjzu %Mg[]YM=uO (P傍|N,^ 'DB|!k14Oz~-.^{HmbԀ9_? Wm=oxFឥ__cat:]isKKd9Q 3+?̯ފ'u664q16`Z7qldms: (dλf6__7ړy>wyښ~ɡkQ@d&uF/7;4O'fԛ󼝞.#>M Z+&31y٤y>~/ͼ7Oty__h`P x;ὺXi`,oxZWI[:kN(F`j<'gu{v tź>oqe4^Zmeq:^;9R'i"FHHLfXY1C dbXG\1+&k-訑F$K}{h;(Y![m+/,t`5aI^NtlRDWcERN PZ+&k-訑F$K}{h;(Y![m+/,t`5oڣA|l"𞝩xr>e#]厑>=%3#Uj:<^5[`w8mթNZNu%m$޶MdΌ&xV NPLV"iuFeRQFRNn1QM_Ὲ~˟7>8~MO|F0_;|ޯ;Fx,ğmfy e1U+h/&f piԭ__<=:7_>"ީ 3lNto^,~fuwweo I7NKu<H>>|>vǏt~<?]-tkhzLjn! }O)b՞6QԱb›gJZT߹RN"NqN:wWίOT_x0O#O+TN(ʒs5|ğ ;w_KR2_/¾"3Vt=^Ht o-Lk[~Կ% Om"Ƌ~4c߇0u3y4Ox)a~u kguEpo. F>>jxyeBQkUtS,YKx֫\=!k|1HоǫxM犼_&2xl^=^}GRM>m^%.{zo>cWPtC_*?$R8bOZyyokEO\GkpuF5$8AZNsHET=}N_敲y(7B\E SRRsusx[;WQM)?O_|VoO-]c"O~&+^ 6gK񎕭vQ]E.Eմ/6xO翶q' +Ou;HwӼG4oе,1Cmq.\,zV=%AVrbuܰRR\TyrϖWU%y|EBs0.g:^:2J8<>>SZCQJ8ޤS+ _ *|>O'~?<;j5߇56][kw RsdȺ 0?$Tz&!s+MM|Kc4>0_PYi7 ]nV0Z8'J5h:ôQӭN6t[R|}u3̥qTOq8LƜS MAkP%3q?g$pSEiiwW$!ZVE]F6DRua*rR(Rp+NJ)vɻl7韵xW^7ïE?h~,_G1k hrx-quhKCqC1x\5syyg@'{ MwᮯgwƍY]5喝]ZuOeUc|F\-<'qn!ir\wWg dXEY00X]]XPg_C| ෍|} |S7;ɁX H!̼>| V*cO>C(g`)'<>7^c 0 ߈E#kICgxšTF[^&!aY/"2K^gY~1_}ú4w~wt&O4[ /2T-Cc{o]qsqb-ydIg&qkanYYf_((b1S`k8wZ5,̀(((((((((((((((((((((( Zo?DGWh_-j_Pzź-#~/?1Wе/u|eCt1ePLM>Z=|OO⮳/V4 {.6I|s{Z[oYJ_iQkzROky]+V4[uy4{4|kZ?oJ'tj)xG]arn/QN|۵[ۘ຿[[e[ł!8@;j (cƻc~y|*_o+?pO>z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZ+&2XߤF3ʼO\>wo?g^CSҴjM;Yl5m>i-S[;om%9`y-o-흣-YbGVM4iviSMjz*9ƥ9J8Nq'FQiQi84It|P|!<{/[w%k_-Ox#Jt+Wkύϋ>׵[\O6}O U>[~ /uIo JνYuYQb)aUq|]UJTJٺtJ>n&c.Y8O첼v (S/qJ}o_'W#SNx:c128tj*5O(|iY4O|#⯃_/XgBWo >XkxBmsT,Z&c忴m>3x.4t/$>~;}ρ>4xZWW< IR~$|Tk1<]Y?gΟe]/a]3~i&i_ig/"<]IrG[MZŦ}i>|_)~)oc^%RNoh~=t/B"uj'E&S簁/9+֧'Uc)Vj4B~FTJU%CX*r$j^rfXYXq2dGΎ6(Wythe*c?ږZu(,=,[z~B>/ >&x>+~_mMwwe,VhuxsXĿEZLk<vV~)At? ^W ~xcI/|9.->|MVl-muS1>&x?`iE8Ƣ,7*w*.TFq9f7JX:0N* C/?m/ƽ:u6yIS&CREN/FN/+?~~Кq7=ghCkնkfevA}G>wc%-v>+h/_|P/g:]^5t[n.|GxI#pM3c^MyS[ofVvvz5 ;mb |p|q.'8Cθ#qe1&o<s.aDžt 9_5#ę?o|O᚜s|֮/ >8⼧1V 0'Z]Gh5٢/؃?<9⯅zń%'}E/b3OĿoGÞ(ՖTG?c')__jG]s6=W É,\mM> x/&x%OY|qC +CSL7. >yfo_[%-f눟n \? O3W[܃\ˆǜ߲|[O4O>9+OJ]Cjڡ>*<|d]Ÿn;SOmORžށIh{mND{4mu IRi~~`]?n5ާt d<|NqxV5jDSڒXǧ wmyVm%co /4ޯ=SU<3k:<7jF^S:5wi-8f%6GJA_PPEoĚ?̮sw&ke1K"²Kt`v=KVh@6-xVVr㙕`lF5)dXVIn=;ǩj(W|YGQ־|YO%ƥEu>>VTOxNol|/yk\xwZuk$VKִ(5KhmԠ+ԷY1PX|?9hz?u2WӚFmu".-ޕXjmɋαlo^+xeGJ2'EFQmJ2NQj4itEҫRJuԝԧҜԥRRJsR$ũFI4IR +Ğ猴 gž/4_x[zm xJ4 wH!{k+Yѵ8.SMK{inawh6e.2%N2ReEJ-YM4M]RVZuTFF)ʝZUiNJu RJPZdI_Gtox/Ú<'>H/it*1hM*mecmDr)Nr)9JRnR)JNɶmۻ+VVz+ׯRuV9TZI9ԫVܧRIs&&l(3 ( ( &+kxh'd1 H9b6d7VGF*"2%R%(-Q](Y&M4WZ >|#gi.EaE~ \դ24mM#IS]'c$%>^}߈pgYel}JtЧSTХJ'^TӋPb ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@/ßY7tߋ[Ěϋ+ړ$:u[xg;El%]KQקMU#E`2K&s"JΗ>5g隶_߈- eGo )sF/+K,@<;[ᆩ}q௅Px~%ռAC'4K?[izvk=\:ťǧIc蚞g_|<1k@u_B-WFYZe/,ḹ:G!K# YQf.e (a/Nm<}ey>v#kP?ej^E xu|otX#o^k}.;Z3/GW j:Go e¿~>Ҳ|K~9x@i6-|t5ԮصQml<|RS+/ u5߈ឿ0Ox+ğx&\⿈ RE/~"xu,-E(PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(>-4#I׋5[[wB <_qy}{JxZ}Ljq5-n4cÏ7?x&OaĞ>k׆];y T~+xwP4M͇5 _]壸ff{`Ŀ |sjlԼ?|ZE}Zݢk %=~<3+۽F:5 .Α!TZŲD: (Ky >$բVܦ&UD$24 6)+6~pKI%ִE xu|otX#o^k}.;Z3/GW j?%7 5u+-(|گ"U}6mWGHs?ηg*>?𕏍>ў7?>5 xGjzï~w0um"Q?t}G%k"((((((((((((((((((((((((((((( Zo?DGWh_-j_P|n~%xu|xCX4? | [=o1x4FKWsk,u UH-4m9Cc[|M~xN/.Ʃz zM~%YK-`k=SVSH(Wū{'5?ᵮs_>$_-Bm-E$z>ėvb?|~Qj ݬq,%Vo$g1 he[ "=>+&31y٤y>~/ͼ7Oty__h`P^]>.ໟ xwįXFS|Wm?ٟ>dVa̞ ȁ5"yRg\Uǝ-S ^ @5?Zl>KxsJ9|(13I nNt -+LtK{ >%H(PU@ PY0]c)v!]'Et/#k*[NYIw ^o]C y}=E<} ?JAï:w1^;.äXY@2h#E+>WzῊT4>:[Vw|E\þ'u]a]]^j)& o/m6MMeMB{uhe`O!G<%|FCރ:_cW^5:o|H{a./HSSVdm'X/tA'xğ,^|~%Et|!ZӴZh_Yawx'Z}o'|377ZǍ<{{'C4:֩\Z݀v <I[WZk!.|t[啤Z^"e4/im,xwMY]PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<ǟ |%&:ŋYm-/m$b.+[2PK˨=y |!{+NeZFt`/KIdҼ]e/*}f4Y>?"E-X2MH>|qknx~hmm yL4l;3LӴ]:Hl/KӴ8 K++H k[xc C(ƊUP^( ķa &\!3,sNL9-]^(b*Si5z]Ͷ%WgD^6\x#*ZŦsxöt/dE [kFi[ |y_[鿴'~'hzl,xχ.Լ)= u7wj\qk5֛qsZ]z,y6Ws .tbx* `ZbUbƥzхZ5i8ΝHFqjI4EsQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhh Z|Mw;'j-_56!}_QIFswq<_Sgex3om;ԵO'Kӵ=(ZđxOqGVqMH]{kk*pxŸh?I=yoE>XǨv2j[[Z4גLךDI3Y=鶾+ (a:N'}|߳jMN?OGjke&E utY+ iu*x_o<7gwMG u|7j71xh0-KhE\O-^8<[Nj5 &_+gN.|Kᗁ~#Fm3隕ލ<{(}kN4JRH% 1ԩRThST5Q{rcK+e4Sbup1`&^8)Q|6~_<5~ܟ|UGľ%S߲ ADž?j64Ztz}j567_ c0b~!xڿPğ>4í3~oC-_KSO-t-Ow-ji:~{U+o=QK|u#ſgl|Lie!kBv Ux(΅*1N(Bu% n RteRgqάҔo3ʅ:U_K/c>GCC ,*1u>S u?c,N7YSpJ'R}g|ae.Mbus<Bsq3C&]k=( a\E5OSşAW/wWV?os C|l`uu%k";[C.݂"ws)dSŸU3(QT8X9%wN'nWg̟xg5h[Zh]`ku}O[Vt WT< HgUw>ޕi|ۥxC> Ժ_oOix߳ǃC/<;6Z%]musĺ /6Q]Y]xw'e|3.gy  ωrbkx[l6g b*fP˨s .X'r\Z9x>pU%?j/E_ WΡ࿆,:?}: ?_xSÖ7IO$h |=x\j^ }<3f;nƷڋǗF׿iφz|3|R/㧆|A"VOxsh~2|-D:m~+|$6w׌'i poc37 x3/ù\fY`?qF_σ0&I82+U'S1na Wbxj25?j+|`赽Z$a[t+[ƑFiz_`<}{w.?s4ge4|2ß|g-O_ d: x_얾&xFK xv>&A{i~=J'ӭ_4c}`|5&Ax ׃W 5jg<O13  1gbjg3YQVCYnaS/`xz|39~$&_|;xS>~FOj>H9|.U֧r۾5|=OOΚrWQ~v?OO~>-ih_4KjJ, o/~`viOZ5)E̖O5nE'̫~@*jٷkp%oYMlOWg,ֶx|^+*f&OWU0YwYe/*~(qGGp<:93~iWC8<.c_k5qk_>*5?IԴk; N/߁~x᥄wq:oo j ݵ_g xÞuڇ |Za]/šG=xANƳa=oM': f4jυ'O4Ô_EQxVߵׄ|?ïO׼?Ӽ B}QSG_=mt[Ե_wJ m?sO0?d|Ytt x)h^5E3g]y T--ZM^w_Q K:dTkONxZrzfsJj~ӌ-<.> rիgAN#Vf|<~3woئUcž0}c힍o±׋!]SR^ V>(kx=aS7ki1K.i8?i?+ o|i9Yi:׀俗WI'čCP#洞&Wc.Rc0&U ? xz;SqDX8f馰>/:55M|k3?o =h7\umD}C C 7/Lh#1xZklm^;hzLq[cIgWHΩf_wG=sҴ)hBT g%]E7O햗h6V:-mŦXvptEFWH : (~O|}_WiAO:֢ ɇۺ| 5'?&Dà jZlLj'DY[Ozq_[it_sj垝exgRQrcܥ&KV%z"өZ)Rի8ӧNe:*NJ0!9MF1rI6Z^]xP>/541cƬ|KT0yUj^:u<6[+\#ƖCRtT8:] |a૏ ~|5yu  x*uxUn<+iz~2q3E ,^̗"U$W/4.o<| ன{| /b]mR}NFPUƓ$mE>SE)μ13*IO)sUI«nn2M\IQ[:'F!f^oI3JUiW1έYaӔ4%RU>~߳gGM3 |U |,W>7&4<4<)oah;ViNFi"-|)Sÿ=7?u궞$Ӽ /xWÞ 53U a}I-5{ r[ԭ#լu&KxfJ:UWsZzoN5&եwQNTmx3n O72xn?1O4rzen7,4qnUkᔝR vy'go{tK,ZkƝk^4hz~c7 f\{yRDI $rDr]I X֥^ӍIyGa!:Q :Q4dc(mF3՚pJ+:yQx4(bpTI΅i`)ӝ:5g4jajU(xtC>gG=Ox{LZxx[/V~,u fkۙt ).55[i_mYYQd,C#.ueee! 55)T9¤\e -U)$dڿ+j;٦qxغ[ `&8G"M΍Iғ7iBI-_|K^5*ŸGSZ\!5XԼ5&ݮ"մVQ͵{Y K1{_>|/O῀.]^tڔ^NhB^,E\KvO\?>o᳌}{Bx|&m_+__4SJ8\t'Nrфq8,U?eWRz%J9tR4'(J׌i#VW>??g | oG?W9~kVMWW񿆿<%[-Q5 zh5"2- f/g91:Fmjz>n"^'im֮+zUݻ>ug#'gYNf mq>mG?⌫1 fj^;zs^x?K>Vy.<㌶Y3⼾Ysqi,fYf\C*>}:o8ձfi2\N*%7O>о%W Dx#Þ`!V&𦏡: X5X] d+59~'fճ|Nk?fX >q+gyCSȳޮ'1<7iҧO)̱ˡN֣E m+?^V]%4_.3EWGO?FxOҧԯ&LԮ!nbKcy4gثA?x\^<^<3*f]vQ{k*dg<[qix:--5 ƝE53/O>$Oq G$g%Zy9p&1Ly[`xO2q^ZOƺu~o xz]{I Zܺ.&xoVOU59*mCI; t>Ky|9!_Z?/Y/|MßxSxTMkgIWÙg|YTr~CKESZyc 11Y[KGxyva0Q&3a:EO׾'ԾUQ_2\9ldr:sKkxG} /!N}Xk4#_-ݮ?Fl5Yn.Cwx.fyzXBͱ;,m|y%L/3Ml oTIJN!i1~$֒hcWd-Ҭ"amncf. x2s:G|G}wXmo8-FHgwյ Z6bIxf cg[0 9~k>_-s,U?̱u\ J<:\E Ufg_ޣk|?sڵYjc 6~"mx_tK}kֈ a/tXu)cPs>x#.8> MϏAegVoYu{əIr@ǩWq}n%~!%g76%X ,،CpT(a0tOeѥR o_e{Y ~7x6-z?Z<6A;ǣx~;_X][ڜ&אEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(ږ_E֍\:s+u]7Gk_xt[* PY0ǍwQ'E6UW;}?}\֢ Ɇ#!ÿ,\V[T0`0up_ߌ_~8/*|3͢|}|> o-D]xboj7!,;5&][_z <$ 7XMi_xWk+ֆ[|k\Z4d6LJҫ5%HԣׇxUhTyh45]B^ƃV%K؊tUf_9ӧCe02j9as*xz/*`CR5l<''?<㎵\~9ؼ iψ5ZW~&7]|K/'oJVi~mb1e#x ][²Z__u 5Ɨ^mA^!K%rGo|>O[K3^ k%p[Z9bp;A!%8aO E8z8ƥ8G3SWVN+cr9*цb'## R ,=|5ʱT'KҥXhukk=G_?}i2k(/?ڟ V~ÞS}ǃM-Z%ԼER$#_Ok5|IPn ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=x/<7]=?E^e fPu}B K{k 8/&n.m@,t9omusO_'wd6+cw\jZψ>1W}{Oѣ<l١I'Ehc?ğ=L.|b4WC[Jc7VVz(uɼ= Q|7UKoe@ =I,/Mtך]?VԬdK;#[-B [I X9hWQ@b[Vo2CV 9g@&+$1\6,2e XtwM.Xn+G$y:°i:1Y$ya,_Zç[7iw77:vtPYھI5sPt]N}WPLio5 BfHm!VX7UI/{ſ?miگ-k^1ӵO|_xֵx÷¿\|BoxXe-վYmIJ)4iʤw{Y{5k%z[.\&(RUV$JXATSnN.19a>g+R ( ( |_K f<[o:|\WYKsowovr=“*4 hfƟqxhAoÞ>9h?k=;VA3|5)+ƧVRɧ]Kj?OPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/>mmt\'GxOx-CŸ _]J~k]ַ&ezuͩ&k۸J*rм[K&59,NWudciY4:Fŵ= :f}[ [}?^iz7WTt"(cJo5{t5 E utYwyښ~ɡkQ@|pxP<hd [{[)g gTqgOT|- _4Ѽ;kx7^F@< &7|6Ŷ/|=&mw K}"Ѵ.e +C sHȬ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@]sxcE֗X,sov->?Au}3NmT, tQfHom㹉fXXUITH$ @/Q@d’ wQم7ؤyme܋$+{-wu41X%厝 7VL) u ݘ[IQ#ynHJ=vQȲBWwSC^XcqkQ@`[ko:͢jZ[_i~}mnU%㷸K/&mK6$syK &<7~8nVM7ψ/OIpIxz[+Z~3iq˧x~YW4 k6iZR,! HթNZNu%m$޶MdΌ&xV NPLV"iuFeRQFRNn1QM4 㯈Ǫ߉k:Ze sw7Cgcgin5<Ȩ7NjNZN*n8wkh(Rn2RW# S:cqx XJQFso %^&/<9kj_\}ơ̶ "|?D:όs^v?Mi+Kj`8%I]P԰ؘUt'N.TU%.GMMIOjRZrl6Ym|2Ƭ/SƵ::2ΒºtgMd鴦O7uoMYߍ״ώ ucwO|f7,% F+߈ZscT|OŸWVZl?[ς<|&Gx7ᶕ-OYx_ ڛhf}V -֗xF#Mmm?Gv)(tJ?ZwR"+_P7%>h<҇<\O[PΡ 18j*o9ygSͨLJ%Z%:O RjNNq(ʉ6>"<5gnLn;IuKme`ONӵ9Vkxr9_0\+χW<'~8|A⏃0_mڷUEnEh^$O_W(mOJVt˟!8RWwNrN(MѧRiFHOJVvN~"3X\%ym|PK.1eGKFtT^IB\jxV>vls7/xQҴC£WHĺ֡ڶ>&kI4|1jEwt?߂+'/_h7>)-$?ekuyMZGZOqfE * N2IN~RQVu'gR +cNxUpjuq焋aT*ܜ\*cPTc>_O_-|GϊV>%|[yokmRIxgW5cY%4Fx£KߋOu?>|^S]>@ytU1jP隙[yU,m&.(V+ry~TsV*od7[fntV_캘:Y9n6rsR~O >Tʿ:xkB_I*i)k?>:.ޮV5~ AQWګ:eBJQۃn/j-I'W˙erm\ jkTL<:2UJtaV1R--. A5Ċ) m# ʥ ?'IO^R ;|+x0_φ!Hhi4* e-}o{>xں'ִPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<'>-Լ=i|mq Ew&xNӬ#/񏌼+,zzbiBQ'xjxo}/!v6> W eG'{Wwo?g^PY0ǍwQ'E6UW;}?}\֪VRiΛaiIm,{i,Qkyoowlh.`x:iM4ӳMjkT5P5)P%p8(2N2IIM;ڿ'#| > >)xN<]=O3oo|C+_WJtkze'4؆|դ~?.ۣᇍ5|xv__ MS^}d}yiy(ts&|E.׿`”]K+{ե?b"5(5~ZfO0ur7pO2wq #qytJ9q|"x h]Y5[Y_׉WUώ,:FL뗚_7?7|+~ ߧ'f(qh NhbRsF X[mgF-:\|+\xu Xc,?CVX<RBKύ|EE??Rc9u(q*0zOgTRB5!F}e{U%B4S˩0M<.#,Lyv )1eN/#aB1QP˱uq8ЬX%F2|/MZ_Ļ0|>|/6bN iֱj:f>7l<1 Z4K~Hף+:ey/=QOƿ?ß xg~0SG>?MLJ/4[_fqjɥW EoN:bm ҇$Tp!/jOtbT9~?f*gx{&. -nib{]OIѭ6yi:]Bb#^/V? RV~?}e6.5 rU0'Xn$ ޟ2}i,)IJNRvMɶI]KI-ZkԭRjQRVr6'9&MI m[K-| ɗ~?o_)U@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<.V:! Ě_uKG c2P).LS~/x?K¾*fǎ5 ksxgJ~x-kPէʋ7Dv<ۂQs_5_ᮟh4}kǶZķso xRl[Gn_\i`#t﵋9'EA{ƛ5Ɵc> ֖[|RDIG7rxC4t~Z8],4RUu=9y=/̂. En>C?|lU>{;y5#Nƞnfhpm_.)W/k F>ۿZg⯇ x;=r|N[\MfxwE}O=sYmQ~%#ӧ:|W_p8fCru5)~ J|"n-S~4ğiZޡj:U/xkU⛍P h>-FKk4GS6Z1&YT>S|6+2ySpxK <1S;4ryG\! v"^hm⎡&jM$%zO<.< x<_I sG?e{,a%DN͗Rm@: (dλf6__7ړy>wyښ~ɡkQ@d&uF/7;4O'fԛ󼝞.#>M Z+&31y٤y>~/ͼ7Oty__h`PEyŝ~wO׉̏r٦":Ύ?˨pJxXqa:[lNWxW)D>Pc¿ڟS %?~xÿ `|1GU֭u/x6t:ӦZ"G/2_J3|rx?ķ^Ҿxs |e: +ړ$:u[xg;El%]KQקMU#E`2K&s"ՏBD?YxCÏ o_1}ǯUfm7zl1GqsjXAqzo +|+Ѽg 5_2>h},-o5MK^YԮnnYyK+;oxlHk+$nrpX N NQ (cƻc~y|*_o+?pO>z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZ+&2XߤF3ʼO\>wo?g^׃g  ~!6a%>/|"_å#Nx3wjK J?ֶli: iFxk¶:|x:;W#f"FkYZi=x{vXiO||M񽟅#xJ__? i~|J5[5ڧ^uA>ĺ翰 ^;;.o/xkFseu/tپZu+Ѧcx z]MX<{];M^L_4-[R ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@ ]~ c@65.yn4ռG>DӢi>.]}5V ӭ/ 3Tw<+InaѠGxŸ~ZO]a~,M&|T|O?_iKYXY]h!}{S4]g^)appj<5҆aש:F8h¥zXjtkWO'MKF&аY&Mȱu\X:UbT\?FQC YF:L038k[5,"CC z^\|O_ jzg1w;| &C^>ߌ<['g+H$i~a ZNk>#mt)2|eaYox|ş|>{7 xMw.i߂ޙK/bNk9qIVNXdU& TcJʝ:T(yElRZhѕa*15ysiT[p{:q5Teؙ|am|-nw?)k6tt?$a_g|?5c~[ Hf|%za5w>=xM#[_uO톿>k`Z> xG%u -RmWZ"T*`[G/n oϱ,+[u%Mp)ex pQ֣²B w72`_x_ԥ6RpXskUj_Wo|%-kL? Czއ?|Yojo|UO}Sn/)Ƈ.'@MBKx~'W-i+O ia61 5kI~_xC:޵a ;:嶼t4.6*`p*pW"xAMa)8Nw:^sʭ^Xu,GE 3(pt81f WNr,rН 5+į__T,LR:;EE+'ED?fW=%StC7; 5j)Xi~'4kkk_ jWO>'j~< >xO߉:}3?5#wkj~Ѯ隦l5I{g-ƠG/'UJ&EN1S犜ZВn*RM6+SKpU1*4iΥhR̨p#H)W …E9ҍz-6%NQ7xo¿>(xO :ӚWƯ$2xžOig?Syiu˧jQZ5; #ojl6Ue9 f4mB9&S UJUp4!5gNkǠn8?j(7|=;k? ?bgR a>k}ci࿇^3|CBu x“x}-5.O6e53io/UH<! oW:g Ν,|g9^7")R-F8ܢxM<#qp*،D-RYJ=#š+=JWG =ֺwyyU,_.[t]ODﴯc4q^ԄtZu? g^fK?G/ɺ(?mK ?|7} xKq|VXImŸ *^ |R|F糟o]#_#Yxƶm#y ilӻ5C%ʳn'ovAęn3p|;qK0*w L zmpeɁ>JS<:#xO~xwt^8kϭX?<;txoP/L!ĖEc|Fmn*uoܷ+"~袶îj0x#1,xBU_|^ U> whm~+f4d{<ZOΩsL1IOs<-\6k7YYel6ix;УOX UjJaQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր</ []KxBLe>qjz6Z-._&SjZlCa%a῁$> .>+GVLm3Vcwmy"F_j>?uBH~֑[?>6}k|2a7RM-dѴW0__ii5`^M}vwIm%P_PPE uF2btWI+b=澲}%qpVm0`ڌ3`PY0]c)v!]'Et/#k*[NYIw ^o]C y}=EsZVYdp; ru)cY9mL==ɩjv(|Ju|SOZ$W4}"%펡u_[QϛO+[;/~.|87û/:S UiW2qkŖMm6?~ZJޡmgu4=o*ztƅg]Sj9{.hTtS%J)9ӚNVvqy]L&C-g xʣ{L6*x<^#LFΫ"p?)e[P|Ɵmt}CÚ>"xoOo<.yi-/ +-OM^Ω3oRg~5~) OƟ~6}/6Ծ⯄5k"G' hV|;m wAдχ6^槢\֯S89aԩKK>EQV7>㟉*ǯ53<KӥqI7o E?~xQ< u@}ag^j'ux\ |k=Cuk+ϋZ&neG<3h~[ ӵ=@|^mEޱ.c_dg`rJ85*t(Z)T5!B*Ns&ѓ"VSq_=V ~ʧa!|-Zy1_v &#y)T څlf:&o]>j׍*RmWwKϊ+ѼG o [J?|kM*6ھj>*7wOs -sEO\he@C=SIl/aӼ]>}Ժ{/k=_\KYH:b* Rq,k'̗,fҎsV9T˧_0qWn91Sêx?ٻK} |īZUω'k-_x\_3. |/< ՟^y kRr4CT/Ty ӴY5hNi~D!|;G_.'u-JPm4ɡ\پ7XӾ3ڮh>߅kiTCKuHbi[J=UxᢗVM*p&w&h§c.2pCk1S+b09]*.XF /':^"JRFK𦁪vRo}zͮOhv}%݇?|ˠxjL.u{W3#/5#./OY$s#K[%"&u*DO"C,Ie7_ 3|)O<3S֧i%{Hմf"`~W ּCh G~. ]<~#,D/׿ ~ u9/;|q[iE>%kA^0w  x-Mg,~!VkKď2*߇ Ü&Ur=d?U<Àax1|{1㌳5|կ~+\RW  ,5mA5; n)O7n9c$gt}:im_:8\Yd.I_N*88L^=S0ͫ13Ϭh6.մX4]7Qi5 աO[i<}$Uo ?|9wY~={^v#kP?ej^E xu|otX#o^k}.;Z3/GW j(4{/=OQI_q]%娲;<ahFi~%L-wkwlGm]|+}w,_xǏ?~<4z$w-|9 r ּ?ysȶnnL-97WuhWt7B-HӴ:1 K 1 Ɗ$1,@4 (-I/a}>ӸkKhWA=uqomsmIvEnMY|C fY_,r[EnPU ﮦӮk{kmbK (4|b{{' >"|EK>=;?*ׂUσ xm.,:~ukK+SEF"?f~xQuoxwFQhŠx\5x oPm-gVKP+ck㺒T@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhh Z|Mw;'j-_56!}_QIFswq<_Sgex3om;ԵO'Kӵ=(ZđxOqGVqMH]{kk*y? ř'SMaMnú7-4k6^ť0hGk\% sEqOkuxxbKu.&`XXxy%Ն%xxe7a[( ɆL뺌^nvi:,Oo5~7y;<]?G}VL2g]bsId|_yoI;bh*xkֻ 7i: 4o jqũsCn/X{ͅCG+(>^ B.I7|,O{(vtiNf{;X#6;%*4 uOuW~ k}{K{}Iѡ,qE|֬Lpmo,Xx #Ia'Y")<|ae[ߟyaoq]rQM:Ox:O#ԵncӬKMR[V,J5=7ZӬ5PմVR]2 ;RӯaK+ Y%;[ydXxX#v _?iYJ%sſ 4?:~jWYZ\~yq|c?~"wx_ox_u_~~%\m>.kϭgo|DE[ߗƟBPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/>KeYZĞ5+xNπg7l&#xJ:Ꚅ6iF[,妑 x i:'~7?մ{W]&H-)|OhC=KԵ?~"|1|O+N)^M2ZOam4$EiEFok}oz/_:^ݧ HO8jVZk<-qݞ8&\Ȍh+ (a/Nm<}ey>v#kP?ej^EbxhxTY")*)*E|3z쭡6oxoϊ4߄^1m| ~ϏtF"v:e5W厝mR/<)o|Ox{DwC~&x:hwznkZ]֛z\j7vG4I ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@W"#sxz#[V^݌i gW.`h.OY'W:0|[0-t VyjkEmeE ssq4ZZA=đA,$l__aKľ(oiZo[/uKt. yu9wZ2Z¯"WQ@b[Vo2CV 9g@&+$1\6,2e XtwM.Xn+ho2Zh? -^uا >2 DӢ}F_f>7n~z|V-2ү*|,+:ņ[E]|^/xX]Jgfq5549߀|-?Iм-]"B4{C3zm[Z[,s;$Qsuzf[jzݲk4}*iT37$zWkY 7{kVKiZ oxZPmym&Gug=~ϟ~h^!5?3 #KС揧꺥d1EU5yGcG _ (dλf6__7ړy>wyښ~ɡkQ@|y[/s[QlMG?V:&q֙,<}w}g>񖏣 bx62xw@KXttӡOX֑L,v42j ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@]sxcE֗Xk+iՅriskߓl,fup>x~ς\IÓr|J֐dIޱ-k¾ #~4豫.Y %I|0׌u?Y,-5o h֗z~.^0o{}40zV\ wNJtu''+9(&i&n&ta0bJr*bpНVNR4*g(2sqmFOGÏ1!Ě_>^|W _IMz]VZ<1{sYjPlnn$~;|=m֥ :&q.GπZ_U<9xKS4&qcjzuo8D,hS\,"99qrJ弓ɤ吝[sT+WTsia]j9ԩU.EvUnNM_9G˯?|*_𝧋)Ꮃk+'..+k9$կ4hq[i kiv~ֿ=F|? ɤߍ_ e;okc5KKKKmKUtS L"M^UF,21%9"J^~r)_NqTn,=UnTg=5U)іrU 6 IץZisϡ_?<+:o~^>'7:?oK"똼o[| /CƺG?j^WJ]J<-Yhv7 LY8o1Le9U4qS,?Nq+tJ2[^}^e_.s 4}vS'Nԝ)O VB*:uF)|!?Ɵx\ֵ/+TðO_h m Em.X).^8j<I/Iu9|xP:ݵռ6,ơ}-CP󴖚-n[Q#yUL%zP*teJTV3ZmJ]-$Zh1UeTrm,F1*kP4p|e Jy>#xLe|E֬]KH7z~omw_X:uƥui^i67pKp0#l/fyvUF|UpӭSS^tVp ԌN0RqQ~1z#|i{x,Η˭ZxB- Ikfύ?Xw Z:~jڣ;džF=Ww_+xs[4'}ZL~Þ*]_⧀u5;=<\:垑wV}O Բ\vi.!f4s<Up%|TrX#!f[e<PPx_K,5?h:u7u[+cO<2#-.#BI!m^"[Kx% :(h|m@D>KI |YubZtV~_uxZ :6ZT֮t77xsÎ=ڸHpq>oKpAOqC7C'S/<p˛:UV"PPu?i֥߂|V{SyW.ZiA-ieԮ!u[{R.x_'{Qbk~#ҵ۽J4Vٷj;'uCљWfMNg20x؜6vkeԫ t19tO~=σ>(?ES[/x *]惬i)txkW5-/AեG1j sMh;n xĿ<6~ _Uw%`|YoO>+|74{ k jzTd˭ihb|%✷=.2N^<4k5|ʾҖ?9fY,^SfX,6aygz6?_TǾƍjuK7Qxnm$q2[k~0,g{4]7/[xwQ&1ieZo:qWiW~'/wo9ؼnU?`bbs9PfUqFMW~7/x[A#:/ů< {lv>~RhZbk̑;Y_?l٣Ԟ" w ^)G ~3lGg5ޙc%צ#_X,Hu;PyrCc|q'fq]pvod|Wf%x)[KMۦ뚻 oM:(lo%Wk8q|)2v'`LF]VlELF V\TSpQ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=?n H3r5xK|³.|?MQrz}χ[mk V;5]:6-dp %x |D֟}<mT?a6!|)"iCywͦ.Α4Kk_v_DxZ8އooۿivm!+khRL W[ыE;W-vNMoQ@d5F_+?;yWy_iˇ|G֡?pZ+&2XߤF3ʼO\>wo?g^CSҴjkmbnlo gohn}OM6Q +;MB}mݻG<H7ԓM4itZS*9¥9ʝJr8IpZg EFQN2M4ij߃$|;_Ǟ)&Vx[?C|:>k6o=m ]|]Mo[յ0p.e?gڇφ|c|=|3Q?NVk{_\xÍ 9^%o[S~6z$Oxzٵ xLfXѬG}a}:rZt N:1!VXISuZ#$Q˱i̥8ӭ1.I%!W6c4OsUО4O>5Ǧ_9tWKK_^o]Z}g>%x#L-9emRǾ+ҠSEM:/Q^s4]c|ƿc_z^X...4uX̶z:ryB4aE8RTJUa*Tdӆ!*XiN4j|\ULu)+\ BK+pk*J9OZU1p?$|W|,g?3ğuMCgox_Ś͇u~+xBYu͟?=<+$&,ƹehs&⏁8ecς:~j'> [е^>|o|/P|+m#HNj}Smwem7j5js9SťVLV0)5QJ#R4{EGӫ)h.]bpG#[ 8Lqxl^u1Ͱe)ӥVb TNMR >'_ /k(M,>f|; dO=dK׈5+Vs,wwoyzf_hΝc::[څm ͝r]D$2̒#) F\=ZUUB FʝZ5iNZU :u)*p$ %(gxo OƚG#}lju]ş M$>?ů<}-ß/_ýb[-lx_P[Uuk/dKЭ?hn)r1Mq& $,.1ٵ.|dYjn yF>ȸZgexl#K։ߌ xIsM!|]gNP.+뚾i-D<3IZ6vmxV @?O/ ^?φBI;]|^?Bԓ:{QoExh.]^S?%ͧ}TySR>&Z/'b?a 31x^M8j<)/,b2[=1%>x +]x?▉|=4<=nO+]_?h;]F77#z} Ht]!AWYWľ/x? ߊ&!/ſxVj֗#ƾ3еBúr,>cp2>:'qsJ|A$2x gY>6/&3̿/ftr,fq8ܛ(/īό75 G O?犿b *49_.}o,z쬵fxhH.hh ?i/wůφ ĝ&W+xD>äf|Wê\-7~? gi[l<3ÜxG C.q<qkgxYV./TO&G. so?x.i9>?~z|Z6c'I‹xgOO&I[^]iίL@O+/𿀧n/$~"ҬtIu>&v7GO {xWT|Sj~":>es^4mSH b1 #Z"EJ)RSZS%N8R8BbX((((((((((((((((((((((( Zo?DGWh_-j_POu¶v N tGVhxf$5*]?m`kizQOqtefkL?i~$E>=6dQeҬ&iZ^ֱ<iqw=7?>1?wirdk=<;kڍ>~x=Pg4R\h,VIswmG^Ixi>L^dچjt/ AeC\wq?Z,Q]=޳sU6w_~Ta?n_ Sٟڿjzwvy?k ϲϳ:(-xVVr㙕`lF5)dXVIn=;ǩj(V%pjҪ._Cs2Hƥ, -сGGwX-YEۯ5^}(^F4oq "hΦbkfIln:RJ*Rr7/ZU]Zø+By.iW40up0u >2 3*|>֭IP\0Xc1O]O4ObV&8IԔf*pζi&41n*2\/g3o@.!ே?W ?Z^o/#m5& wZ:>cHu}*K6{%Q8{ak)V)Qg W.|RQs=E =ne +ҋQuUI.wi㰸~2NtahQZ!*Sb%hR h|٫Eo 4C}k~hvxW日C࿊о+i*W]s~#ڴ+GK>Kg/? >)O>e>桤zJ{|& x^ Ѽt<#&ajF[J4 3eLF[x<^N; հգUWX$(WƬJ.\x]|y~u09~wW&kc[чgR/Pc0q&`|oKe'")?h!]jKa/?fsiaj:Əh^J-총_HރaKB} 'MCe{K xGd~%ѤicOm׎$UE'Fafxڸƾ&+ЯkRW=oVTNlD֝jӜ)KOa)Xhr:?O 񷍾w|Iϵ}GV~wOj%7>x?{_CSÑxG_ xi;/-Yt]_+\J\:}֩MPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(5xs4]F.o xRg5 |Q ~2Uls6+< Su kZ7SuF}ĝ3V 64 %[uO4H"0 ^&Ql<NiJW?mjm+lmWћWmYmؕ iN]XZ[oi?' fWׯ|?zEֵu N}>+i/$q03 <k)|;aƽ+ֽ8~jlMO5[i4.(a:N'}|߳jMN?OGjke&E utY]Ÿoo+*}k_uGsKN]vѩrC/m?m]7Ɣh>JJ5(SpN\)E{#y XlګkhgU .(ej;y}9uJqxC l}3Kq~=K'/Y~ ~?:guG:"^Tk}C4]At?\oxbz_О g|`ٮxCO:<;Oş*4־8]Zίg ;xtm ᡽5|^ k'Y|;_|,qxj5j, CUZX9ti}MyÏ>|G0h?O6qkڄ-_ P4>6Am0||c, G[cͺwsymOPk9>+ W۟WVu*⽛δ',5*~SEJ5VP:~^qv# >7=׌>c>cacxk/y|bWOkYB~7%K~Zmb**β\g#ʵ-:_Xui,dgESj!Zqs7ճ:tAjL.%˩מ6VXx:XiG/P+QOʔ'1~Пd|Ӣ){M;?>5k{Pt?o~N%WXNq_ZAOQsOxoO-uO7ckx[];#|e+{G_t;m^yKN44hU{:S Ol.& 7b~"ıobrİ,2*8]Lz/i|{w2}7úAS_i7k_O㗃| ]:P_V6tؼ4I&eJUq5*Q"MХsqΣНJ4]ITtQgq3xKBO"M5j g5Bsqin?jkh^:z5y+O,~ ~&kν:/K]_$zvYjzΣ9h~h+]~ xUfBIuxzRj6i:/McP0]jz<:=OGePY0ǍwQ'E6UW;}?}\֢ Ɇ&Qipxn-%V~iZj7ng~< }~t+KѬaF4k(kӬUm.k۝KYeFt/FG4&mCVզ,-uV^u9`(5sRu^Z{,s'Q@b[&&4?2 A%٤iHд]GKMZI. (Ky >$բVܦ&UD$24 6)+6~pKI%ִEIM/⇀Gc5?9RY#O/@" Dk}Xguc{c;(Oٯ㆛ݦ~2S]385|]v&ucX|\'ƇԐE㏇M⟇wPh~'>0:((((((((((((((((((((((((((((:Duv g"֥n_k@Ex7wWW5CoV|o~MN!ht~w=PZTNӘ8{ S<[|J]>Zgi&+-/W?k7dxc] m7N|wO |,Ïx_]Ɓ|B> –-&AiE=?w:w0l̉7}x\]|?x`+}c ) Xk5 /FY-<|mhm >$>|beY>/x{~ֵKE>/&,%AsVpyY\_l_(a:N'}|߳jMN?OGjke&E utYwyښ~ɡkW|]r7 "W[$Wѧ0hTCx j>/f=Z|˝{ïmN ,n c̓X;6UҵUz\xc|Q#G/ďM?.~&?YѾxV|=\kv ҭسkO$z}X](?cou+_k[|IJ\xSZ|<}?kvo-'nj >}E4UGꐝ*ui)Bv,^HYEI!*J:<#*ubmtU*5o^3Sƾ?C>0Giծ߇Y˝;n>Gm&M}SѵU{GN^7@gi>wO&6Ik e|^\CsNj% V*'.<ܶRK1)%`(cp-Bq*ש?,*]gE4WBZ4#Gtگ,O/мW_ŋ߈|d_iƁ-k]s[yo੼o]'.tB-JQ4ӿlOOFSyhį|B]9ngYh+oKZ]xw:ljo4+tcx~. =RwJj_~8t_*4W$#ZPSN 9{60X~;#a:UN8,U˰o+gV2̱jO KV11ʰtq~`mfWW<m㿃'/kOg)?È.a]E^.$?ٖs\WQZο>x/4?z zƍ{B>)|Ηqcx)KugƋ&jj3mچ1FTkО#灼1qX,%x}mAѣ^3NU}G YsLq?9V}幞U19Q*7'K=U2<ʄsaeo:uLF7~%|ٶk$|= :ާjWmqkm滫&Z~ n5MBkm>f_(k^#L4eπ<_Oj)c/Դk^GkXiWcs=Ͷ8<ף!VhѼj񖻣j6zya`nog9*JT{>h*0N.Mڜt\y^Uէ0L=)T b풫Jc[듩?Q_ |kԾ)xv/߄~(I&iickSGuc?whO @m7^j+{;?0h:Σ\sv|'G|4ޞR/ 6i u]YW!xȺ : P[XJ ^N4-u^Jܣg| xq9egO plO*nux W3S,^1ԃJQ{?vc<M?d]m j<# {-VG='KGE$$,,٘j˥}A@VL/!u]WI]$xʖӽR]Ʊױ[鶗P-_j0cokQ@dwQ؅tGXym;Ie%k-{iu 2= 6XVL/!u]WI]$xʖӽR]Ʊױ[鶗P-_j0cokQ@Aoïg>,h. tOk,4m_:o_Y U*厶%,uƾ8K/%IX:*~[?MO'ğ?4xq7t^i Mu_ 6KF>6$=e5|%C鎣vS{}^~={Hk?7L%i:elY]cRV1|<9q+I%Y-rލ5:>Jjj8ڪόxT͇ʲ7Ρ`NH\/,Na]V 5}wㄦG5?~5|K'ŕ\-gDkK7qOޣ.5oqssjs}޾[徙L5OxZ?$iדF<=<_ :fFmsúUΡxFo5櫤]zs XztXUƫ=n#)VWqSNTRSνxqkJ8| 1tqA<&ZC KpZU+c+c] ^d*b1neIo^վ;|yZoxX>(~!|0_ N;xCMկ}Ww)`]4z#q?>3?~%|! ExRNt3qi t}2ZS \_CSp#Rr9Ft#) JT$IJPnxFiP|/\Ukj`{|& ʨXAa%˱5֡[ҩ xXZA4Oo|OkEKHl|SGZo<9m>7]^v}čXëkε,4qxig>8YxoV·&"[hwQ xxVaUg,3'Ƈ1^ßَ]wğ>/|a~,x#MkVOYͽ4 IowZo-Mi^?\槬*%JVU})Pr9a!Rq5FSRM<5u|uLw֕[xG:w/]l]~#5%E* mW5÷*Sj=y{BFYIEISXTq"̖&00_O>6\,<*GQ|j՗4O_ V1꺅욯W23@*x(׌0J>F)UԨArƓ"|ʳu#:J0O42,fPJTH-I(`eq֞:Ta,KeVLOZ<)jԭsk޳kvw6Iwa=5<u4K^UL0'K H˨|ᳪC%ƙ»*Dw9U]e(I&'shƝ͋j q%=_{ow1x(xDé~._Ew4 ]\~ӂeyMdx, $ql7G_2A>  f،WbU1Xj+_iL|3njkk8 r>7.jVG'xq' o<0OG?Sh*`2첦*X v9O|'xi~'wo.?eiֿ_:Y|I7{:V3]+?6u|\kԽ1/.-WBګ޹'+ƾ('Ŀx'>2y%𿇾4|E^Y.GAӿc\'`l' p[gO-19øl 7[s x,$G|G0 =X>9|_ #|C|9^_ w566x~#o\Sž#Ru+ZDO %+We|8>^H|co92x;EӼ(v럅_5ω_iI 7׺YAsMojpOL1yVepq^ a-~#2|Zc¾)l.O/juq#G7$^x!N9&:c+_Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh? |INbk}.+K} ~:umo.w4 >Lm2/?O{i^Gm h.C{xvC×uf0ךūOjrjrppLx/^,k<6d=i^ҴCtIMӬX-lG D*"ݘ嘳H}A@V%I5e 4?gӚw `mCVh'Ny#m.6-I/a}>ӸkKhWA=uqomsmIvEnMY|C fY_,r[EnPU ﮦӮk{kmbK (9'_)~UXKkmRNԬ*)~Z մCS^:,xƞ*͇﮵ _Yѭ<1KC_G}EpK2rVm疩dx~41y~:+(1n+82 gk)ʩ4q(Gil|C?>1uϣ?)x>?lm4*S5;c+),g/ 'RUߊ>(Noxm׆/ZxVMf\}CՈ?8N>x+YGxN\ 2" >U %̣ >);_ e8|NUZOmt?PGLJ'gShmc~']gTN3xz4/k$z=`,a<+0|_Ko '> XŦ"|ctX&Mϋ'ByG[dw>gWfy.,]|x >+&vi[eY ddž^UL',UJeς>|mmcGk(^|O#K 蚟-xƾ7AkCOǤb[˩?gK<?g ~5U|kn-վ%|@~#! Ok4liCiq,nef| E˳},c(U <!ɰOrC)ɣ_#ᇓő_\bI}L'I5[z-cS⿉?%ͧiZc]6 |K<#ݍ^F𖊷.+}c86\%l0)bgʲ #eV*s9SVIEx`PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(7–]IZvogǾky5GMH_W`{+1\O=W/.~ ^3K_|#ĿhC^{f>V>)G5O}T`bP>txg@7i.RNWX4WQ@d&uF/7;4O'fԛ󼝞.#>M Z+&31y٤y>~/ͼ7Oty__h`PY0ɝwQ'Ey~m澾oٿ&|'g5C֯0G{EۭBV'SWn5M*FLԧkDPewK䍘7>)gjoI< Ɨů̚o/-7DtieK=6dGv'(((((((((((((((((((((((((((( Zo?DGWh_-j_P|@_G\|Tívot hS4"_Nj[ 4WDQ_x;BޙYxkG&Mcz h\Y\$:= hf8#  Ox_ ޿|?1Ke kZ4H"MiGS4Q-0KHã‘㻂xnah-"x'DM I"^924-}A@VL?hwǧNS>>ٯwI?}A4'kQ@dGwzdG?ڿēWO aVL?hwǧNS>>ٯwI?}A4'kW|ygRQ__Y_isK? Agƛ[^j^OPv$֚^,nA.41)5)JM$KVEӧRHR իVqN8u*TaB)sc)4m!EE?|^G/>/ea;ׇuxV t|aa|ԬYG_mZdYΕ_t_J?5 +þ) O.yj6!u=JD|/h 'C}"O U3MRn^oe*<Խj\tڞ gS+a,a<&8*9.T xE :9u><ࢀ3m[JtG[5=?Et+KVkm;K4(^QK++KxXyeYtH]Uу#He`AV ӳ+m'gfMm)EM_tS#QJ(F)2+#RSTJJzֽjSZ֓iNΣj6zUBH,~}4l5[-3N6/?fߋ7S >90tY5 B/xS%nyvm:"'*9p>y<%|2^/ۆi`1O]a0Xa+קG5gFa9J@XWBׂ'4KTYt X Z`}kRӥE-#_qgn?31x6MsG[ \Z$SiIY| t7mt9$N->YleTL-){6ʹ@_PPE xu|otX#o^k}.;Z3/GW j(cƻc~y|*_o+?pO>z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZψ>>%KR_tmVGX\I9k{2/#O6IFGIstBmNqoԕӵֶk t}E>kJ5#R.2q抽k٧Mga0Nocm뺗߇>>?j3Iͦj%)h>_O]R>&b4wOC8=\| p~)^/_go~o>hz /ƾ<E .go^ 5(8ƥln/*T N ˫>hԕWZNtN8iaBr9t(b"x SY'֡aZx Q%R*Fs5^|oKaGn~Ѫ|_MskFA|#<m*/x_օ#^HӴMFV>͗?!#NNf?ekaGx[%+L__QkJo~gX/Т{Ҝ8hK0Ӟ e DjSõ*q?oBXW7VZuVap |Qx'ͩcw-NLNO,bTa*¬qxܲ.[~ZW> ?#_O ^ čfo~::.-KĺhnRdžZQo~jmk@47w^ )!^5hu[8moν<%t-:V5|^[ 7A5%9<0peYѧkFs劃a,MIUZoZ<UpIqGAB[,3SQ˱^\[:˄09fx,rz7|JC_OźoٗޕM_&IÒtMf >wtHX4Tc50 BjU9B2^R(c*m5QʤRPiƌZt.K/pGcuCU*p>_R9qU*uh֌8M?⟆?>sLvV|p&uks1W^NK|%G>u݇>.mhzկ;sV]-ko NO/?|cq4~$|BKҾ^ccGv_.47V/p[^3Ӿ':}TFaWI֝l›aQ `yJT(V!R4`^l,qX &Qrbq)dy-ns,J_pXUS-36:s/u_|.>(8O??%۷uk-Ҽa{ {_ޝ ?xúʳ/JXTXJU&UR߅Zƃh$vZxeVGXˋ}W~m]]o?6~x\5=>Mi Bgʱ]H3*H *|U%J:IʜR*Wqri4uv٣>-?{Rm9~I,'XtՉ,40m:nu=̶eoʾ?2cz>|3Ծƾ/R(<l^#I i~RV{qg ^)⿶s 5XL 57Ty5l-lfe `o?,Sjղ}lf_C8ߏM|]IOG_ķ>*{nPx/S.OG<|3 kZ=ڼM XX-/᎐Ft־UӺ/> %>!3\Ngemx@m;π=eέ? I &ɥM2j`pod,O8ӈ8)%a(.eq2^oU'$}x^O<)fa?bCĿ_+W#YtσRگWmWV_{U獾KO Z߂5tӼKj7eȿѵ(Lf#_6x~)A:>~6|Uú~qxz'|7~<}kX: xHܟ3(x|WxcW|_˜LI}hK(6mù'<~s:WS5:kgf+ƿ-om&Ejn/nGWzE#|=Q]\5}> ⏌>6}g'íz_~?o_ĦOOxĿٛgdwMu/xsX.5QhxÅ2Onp9\#<' )fcgoi5k5/ Fã)ʰV * (KujBX~S ,d+R̰A}knI\m@b[Vo2CV 9g@&+$1\6,2e XtwM.Xn+~,|M e|Hմhk/?>*we/"_|CXE>+whWMJgn:x?<Ꮘ-|K>!ֻd[zN kr^Cm{k!Fqg}mm}ep[C,)PE>x%?5&_x'q\YZ"~3 ,=[i568-kR=C2!e_˲ڕjL>Ya, xYbfYTb3%W' gCsm'|8n5>t{^kkVL֓iOOei-R]kcgo$#Ckeb^μ0fyk(b3 nvڮw4O\-IXd1^ b>ZzM}A@VL2g]bsId|_yoI;bh&k-źƔ|yK5MSJүtPus_s_>EſW_W4u_B}:ICÞ*Oh72>ƛu2€Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh.9Լ1K_+/Ot.]Jk85j@\jVV__3-t}B5㟈Dž=gx]lZƛxNO "ӦԮonkFZR ۋ[*qOo ϥ>5K{᫏~п mO1yP}*ƾ(־^?V:Om 춾< o[[RtGiZ,fcNp߲඙/c8|2ޛcsoUÑXɣI[d,/ w F+G%\]}'hO7Bt;Dk]/GѴ+m7JҴNt(;{[KXb44U4PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<'>-Լ=i|mq Ew&xNӬ#/񏌼+,zzbiBQ'xj_hZ=:_|JGTV!Ȼ>vb7znA4 fd׏8x?Pi:ŝ6~O [ޝqxFP&&msÇS-}6gku>\ZV_} ᯌxrHnugooT&oh_5N5;1om z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZ+os?e_>6;ߊGwkCsoz5_6 R xGE=ε|Cax;:shW0iq~YxIaDua]PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<Kw~Nu|;j:Es6> &f9RQnX{L/"{,#7Ց$ h[exc~#Io~@I-V_xu-QQ۳iڠ~"[~i_^"ׯ9iϡ?GZo[ <] GӬE{4_W|?i&i׺jni:mj7g}3]2<|w?O_V|G ^5ߌ?>ghgjag},>+85iUa/~9] L$cREd#,zkm@b[&*"?3+djRȰ{w{R՚9-tP (d6Z4GFY%ˋ~7gmNuDXm+hBb:-ɡy??>i$~IOJng3Ï|7U B {k6mx].`kt.s:%T4_wZOaMUn c:Ps4zRV7.UR kGWk[X:cpxIT1byVW N'499ksF\NMKOtQo|,׾4j[U_&757N6kᩯ!҄mc-X.%ڟ./f Ŀ^$5met  i^"["AY^ەfpw.i8͵R/fX6-NF2*x%Z]HR.g,?μy`EA> =_ƿ<7-Ʒ מ]{[X'ͶaJ˭"]l}Jm6UЭnլ¿#xƺ[{Bhh-,l--[Tԯt#H5]cSt+{i9#AΝ AUkWASI^*SsY*Kxp|.]S :ga0,xiSļCΜ΅P4V)WKOi؞"j4{Z㏆?uh{5L/^xş/VgkD7Nw"4 f4vqoMgC 4DY]UNrQq_VĸKW٧,:l:'"E9NjS+Nt)_rsUeK58:s\-O`eK.J*sƖaU[/V𵯄<]:Oèݘ3q03y/iڟ w~ӼW^_/|Nox(/%\x/ x6uh6Nf'j֓= jyU%^ TsR)FFHU)ISKSU%RnY9i)TဥrVƬ*bTpKSKF' up<^8^/ }x  PԴ|-j|5;xU<1WMNt;-U^8%9/|cEռK߄_|7o߳>o4[{O?D𾍯2h)OZfm,_ot)KnqT{wQuG(aZkF1/8SiΤCkUTkJ88K(ӕ:| ,tl>O[0c 4xPPbqXi֥9zxK·ھk{[T9*pBtԡIڗ?mE$ܹu\9VCԧ^1(b1Xu(0T*x'*پ^ӧJrgKSc'CW7E.?KS߆> Zx,:< }/κmټum[WOisi?Vomwqa1|^૏:K?xjY ^ نO]EJ1*Q' >omVRRR:q<+`,]<:y}L!T*2˾T،!V2~ >,?2w:hI5fx;?%!i/'#mдedӆ &fž7_-G.nj_'xS_ҼEgxWi#֥s]AcR];[Ѯ-GJKKh.hIO(5>^[ӌ^3 *xB0U/a-C^Uu];n^{Go^g[[/v3ȉٿkmݷn9qmoş|,=)~"85Q&n.uO((((((((((((((((((((((:Duv g"֥n_k@ExƯ|Bf|~-OojW>,4_[YXBjM{ӿ7q4{DV6"Wp4ewapG[u _mGW5=͈RXe^!&..e.gaoZVqiַeA-VJ|eP!'h>-uB5i>^^wy|?NRZ&-hFePY0ɝwQ'Ey~m澾oٿ&|'g5C֢ ɆL뺌^nvi:,Oo5~7y;<]?G}VL2g]bsId|_yoI;bh('>,1ƾi>~#3:h2xW?"Ayi;=@\Xk5 a[ I"j7JjZ*Q%8h7RW8|$ j済eF?iaʱSV0a <动玂Ac<ǿ7Wÿ>#W~Ѿ$?bcxcž5siWÏxR7&)kZiqӴ4R}Ix/%<#n |!ƾ;NJm~W/>};DI]Wƾ$ h>;—4G2BʵZ^%R**s"G1e:*VI9<7CS(x<YS8bXk04z`;Ja0GSG_c24So_1R'-7ߴgmw9>%{4 `=N֥/n 1kkMg_Y~)ÿx +>]|E<9a' Vvjs[=2N"Tn59TyUui8Apj. 8 T ZiJHU'.g9u%U d>MO <1k={w|9]GXd;,믋[ux.|Vqڞ}"O\YKko xlnn/|U/ZGBѣb} ཭Ha2\N/e8VrIA_9VU_lml_ pܱ+eu9Z yM)K%b0(aqz_ g?/ k?8i_?^5},|!_]bA]w@ԼKjf}7iX-,|X$ߴE4} ß pF?j/'o|Ii:7w5 ck=sHΝI}Z|<_k,~ƨBpjiУ<3T9!BjtP*U$ޯ/ ĔlM ?'1Ybru VqW= :<5p\ljIehO|r߁?x;2|;_^|—xzLOCƧb47\ gi\F/d_r~6\~p3Jf|$7?XΑ{kj_>j>-|C=GV4>kJkr4xZPx8W F*Zۯo5Ma>H*єj/eU,J92eЧWf3ԋ̱ʝ\4(C0V>xbK_Oy#Ğ;#>]]OtiZŽԴ?,No hZy y exƺ<iZNῄ3^tכ.SaqIa[|&s}:;3{5/֎-sԛ1 JpregNҏLz*2:p#j)cնcZ挾Ӯc—~4ԟ<;EvE<]_I5JWG'ҵWM]~ӵ;&aĺ1٩Ve__M/ڏf6 OC_ ->$5ws|K֑jv8oAwv5:i&pݣB?H(((((((((((((((((((((((:Duv g"֥n_k@ExxI-}D|W'#׵&HtFvJNGyy%ldMREӫ3w?AEޣ<] GO/M&JIo{5ZX?řa$z|Ux|>5amgiE׵okCC}iH}HAsvonejMs\|M xWD5h{XAusdL2$(`: (cƻc~y|*_o+?pO>z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZ+&2XߤF3ʼO\>wo?g^P^us^>x[xHޥ{=N{]S]:uΙ\귶[VOa|390yarVg8UBxl |]*X^3FTpR5kBtԌC_Lj"F[H‰kjQ=\ Z 9q]2ڛ[T)$hǍ|3nToukź[^/ zOQ-|ׇ1 Ԓmv.ȳ"cƬ d|n +9|ʔhV,x2/aptPEP2;F~_?σYh'#_xR^~"O|+|2G%ǎ|7qᨭ>$kFr~յ;]3V_3FtMMM/߅>#i0W|*~$^?WX7Pů|*nt-J=m>& /]Z^dN'Wl_1L*Ȳ u^dOf_a+1<(db(ʳlar<~n1Ng4r`>~5]SI~R$>gIt_X3wsE'<-kW_u_yUqƷ|1|[k7D>ow>#n5L4jZt R{M3Okv̀zfم< .'*bq닳l2̽9E ^+G<}[*Us|<:5aRn~|&m:?f|8j9O_^LkϣhZ6e |3A R[mwv~=o+^.|}m-{A7OAi:a^fZ-2KKmgZƥ4ަsx\>+;1Uhqqfrp~ 9ySp,`pY'fx|TG TJO^#?Xh0'4ckzHִjiooZ%ޚfHO5 ueoDmSPIxy/-/څp _&~G6:uu_YEKX]C^D .~ʗ)̓ZiY{e}jZv躍eY5yxOn6[OjRGWRg  (Ky >$բVܦ&UD$24 6)+6~pKI%ִEo$ĚJЛ?$ʨq&[fA#BEt F/.=7Ii$ր6-VZrUN lH4ؤhZH#G-$ZQ@ue&}>&{O(iPuu mxy~φGcK-m/1kv7G%ŻkWֳ^/&xjQ0W27 β):Xq ,%5ڿU7Ÿ <=-7:7+^K=+TQb^+uKk ~˦M8b{o&i>cFvpxǒ-Kx1 'Oi}m{d[xrYfhc`O|A¯ xfo/Qk{maf`jZ|9m,6};ȵ v/!4P[Vk(\kKoE}pCoE"}A@VL2g]bsId|_yoI;bhsjFCּgkmg#=Ɠǿ_o%ƩhLԴK)o>xCcI_[|J3|ZѼ8|C|w x:]m=]PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<_Ve^5=;Yh<'ji֋u}'ɔZIcmsXu8oe_ui#čm4uy/@-n|Sq{=߀ӵ)_7lf+i_~k;ÿ:,~GkxCʽҠnoSkV躦(I|<;i^д hVb-:Jm|f0B@4$ɱyyf+&뺌e.+讒/x |?<GèXY_Eյ䌗.z~&v3MԥxoqJSg?¿ _/~"|}+|iu_ O>15]FLQh4? $\w6] w~GCH>!|K_xFTR🀴K.k&X =v]f/ t_dZzQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<h:<7?sixA+I>zLz%h)&aj$o,]<~;צDմ_ [xӾ0x֡Ώ-KYd.ƲLvy%/ $~2jޛk?xBohZhOqxy|ei^%~q&ЦGy˩˩]\}~/š_'?4mwBf(nIa9%{Q  o_PPE xu|otX#o^k}.;Z3/GW j(cƻc~y|*_o+?pO>z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZS_<; TB[OYjyZxI 6isuZP4Kॴ:JQZsT Ғc$hI=:5:J =jeTj4u)JF5R&$,M~v^/W%Oƞ;w6Oo'uOcQsOVz}i<-h? ?yi9}Mu n|0|O3_|7Ú_OWω^2þ5^'w.<# ]'LZkZ'ǃ4j`N,? Gρj&’w`RI2VAek)5JTheS*n8| Q[7U& l;~պb?<;bO/:|ּ9xN![Y7ac'?(Ҵτv<[~KnߜF~_ |'/ú?|^Q_Dz|?ңşxWM^Qi|ckFM6"n2Jip(:_m%%’UÜ%GFy̰TiN8+̨ե, 5lN*SPࡃ+|3񅞡iZׇψ>"jφdou f&B^i7,mk+Y~?jυxſ>5|Ei/i>KAUo.4~_-gƺƇkC~ĚkCP֧o ZYZ*05̱4R8ڔMW)_UY^Stp~ :xX2B 19zVV6x9S{EzW/Oo"^3+C[>.5|qׇo E&fCUgd׬|]5m̖5|Լw{o%?΃#%/<T>,oxCIoxAkZe-bln牾.h oo /~*i>Z>{b+Wÿ5&?|)vvw:WU=VUK*NxLE P%JƖ%N5ZRSHEǁxzLNT̰Fqeӆ}ff/*f,%,r*7`*G)_Ͽ:|vwOkcQoOx|O5g]tz|e^-厭I?^i%_~xxƺaFM{2i:g>xzʸ,.%-ӄjjYuk!agSeR5c'%B'j8VTU,q $eJ4k:԰Ud^8ό?n-|cGz-߄|c^猀 07^(ͯ iԧӵK_ ~xSEƏ?h8~M|mho_ 4xS2Z+◌-<|mhW֯tboUԥ<qK| 2"̸cF8'Ŕk5&e}YT,pg*/cat'>6|4Ox[_ZmL~;>0kzNJ'h5Džm#|K]mOh76-{6'hڛIc|ro?1ר0|2ߊ<YA/ ⏎|9n[-|1iBO#Ozğ-~s$M.(sJٟe'<ex4l^sG!‹+C5gC2~GKCW&CZ|mx־ q~>h'>7'|6>xMo!_Q}ooߊ^~ &X?S5oE&!j~3?[A%͂kX4 {MN k}3OO`3n&c6hEřI_'19&wZi:]M]Em+W |M*[>/4C$iͨ#YmeNi5%V EYm:渏K$ۢ ķa &\!3,sNL9-]^(b*Si5z]Ͷ%V|VHDwvj)w$ r!oh ڥ6.5` (񏂼3xwgLJ5gBCxh.쮿_hmg5پ{ ͔ˉWo3Zs<` pë$GOZ2L)?>+_4ІVӬ{gNKխt۫Iu^)R_ӧV 仝:*E8'NgMg$/WVIטa)px;xrG5 GOVXizbj~ |,][Lž,ş,<6ľ#+v^ѼI⦻Zhڏ-㻳׍xT7 X\-;ʝJsRp{:gNApq,fs*8\S`vXζVWRYxl+b*aT~g0h_j~!JͥFqS|NɷW3xO4Di&{7د/\NUr.e*U2,_VXz|-LXl.XSaQ4pX*8 ZXL<)t g ~|7a=wᶱaqců֍Ŗ5/cF iz-biK[%ςY|/sɦYasvkx?O|~i:{;м&lLѫ*q  dSJ4odN¬i~XW t XjXLfw өN]p4p|[ T˰piN~WgMJ'޹_xǾ(DŽuh#G#/ɣxW; G[s^̖ju[/ #ǚ՝j׃cmSCԴ;V𮯭_>.qa]g{y44]l¼R(ueR7J-z38SM5 :q83*f~ V|7,uy|ŷP־"Yf[tk/|aAxwOM?zVeX<򵞛rk+jSVJiE( TaN8Q#g8[t>[apx< ӧp _C ӌ!Xl=*kYrJM=JH=Wx-Gj7nZAq+GxOH𷆬Dzg4m+M+D#hx̊F;C4J1 $67GUaïg|Ft^j~>Ѿ'h=j0AWǗZMvI/&k% pOq{VmeUrLf8El g19kA1YX%CeJN8l5:t<+#T`mx?u?>=C3jZ6׾)~-Q_|K;K;z]Z̟ d|_>ovgS/t5SO$|L嗈ouF ZX>-ZzW2o· cr n?\8Uᚒy.<o´5*`^2l/tURx7&x?<#AJnH|}<=hDŽ_x_Om|wWZV[M/|o5~-]*/TI3I//U4Ӷa_t %ll;e x49ggYVUⱹ ٦:{V3p<,ecr/82٦/G&y9$Ws^+UNN{?/u|Mc? m5Nurφ-i_DZ7Sq>uٗ}bqUa%[ eyM:SUr [sLέ 9ifٶ+qxQ^Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<𥮩'zÿ~[q%ZMcQm,jw7z}WkaœJM[K[o| oCx@Х[OGi<=oznq=^_wmnBŞ/68,;{.xt8a(,cuXG"\"vPY0ɝwQ'Ey~m澾oٿ&|'g5C֢ ɆL뺌^nvi:,Oo5~7y;<]?G}W|[/{~|uS?JO/ [CHK'P׋t_FJ;2K6;Ia@ j?<.7x <9O>>'DU^_P9xOR񯂤HA#J_hU>4}651Oegivo-ͥpZܔ5p -%I +$.x F#!*ARA%}A@VL?hwǧNS>>ٯwI?}A4'kQ@dGwzdG?ڿēWO ay_g7 VZ3x/ |37|k(ԯbo~uKE'a_oh |J߇^!G@w 7GW5[BťŝѲ[A5&i[~0^ xora⿊ }yd$L%v]z( # _TQ=]LjS^JJM[ZKMxbhY_֨ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=_K/"$]+zw||+?Cga5oW)Դ=7T!KM:0޹ef/-4^_E;ᯉ4Syiz[/XxLYҼKx8ZZ^kMbfeCOx&/|H>3SmxwVԼ~,_KkikC4]0/,Z}pjt}BO=ؿ Ix6}oF.cʧ&(b+k wk mwo?g^PY0ǍwQ'E6UW;}?}\֢>E|R~򾺠((((((((((((((((((((((((((((:Duv g"֥n_k@Eq^/oxOnWYx{v35_P+ɣ[t =f[h\/>։c +x[0 d>Y?N5Α ;VP Þ |Y&n%u:VҮӤ[K o:I+X& kگ( ķQ &d%0r΁oLVI.bm^Xe,ְ Ě]αW]ρ^~'xOh&wmş>+Τ_|wLT}p.s}!nono;OxŸ<\/|e$ƿ3j^jE2%ŴѹxCq S$'~&xA5௎?ghVW#|l?KOm^?&/V3y߳+ox/^?}q'|kZmmt\'GxOx-CŸ _]J~k]ַ&ezuͩ&k۸J*a"֩hCo 5M:MƵoe:xNt;ֵ̺Oċk=*3l˪[w)@?Z_}DZn|P`&DѬ/X.&}v[I vCaqk}{egO~?<O)ѵ/D5gM~+M _~ O?[ xĚ-)͎s գ~9x.>8~%i..>hrK'ylj\oh=?.Ea}n@W ܚ]:N?n>2V7Q鉧} ]GPO㙩|Zmqhz}*k-RZ^ [ ?"S|c =ڕ5^2i-,[5KG冝kW~$j>Դo-/,.bկ[]eKOi#Ѽ'ϧtV:TV{ki/ vvVb8l,gh@ھ+&2XߤF3ʼO\>wo?g^P?~4ޥgsi ]xPw{i_5;[mO'O |IhV2ͪuMw^u?v:Nxm4OH]R 7Z\]EtڕwW1^G4QNYEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<Kw~Nu|;j:Es6> &f9RQnX{L/"{,#7Ց$ h[exc~#Io~@I-V_xu-QQ۳iڠo|Ax/^ ƽ|sZ߇m4kx] u]rxwAZja=g%g ~)[xgx~zo,,|9aEs&q\.mauV]9mmd@O|]OSW~|7oOfj=??ڇ~7g>>ϸ ķMZUXE~fWC9;5ԥaY%0;h 4rZu}w=~?j Sf?xf_1!о_j_BMKW'Ŀx-GR׵_Z᫭?Ė^"y4 Ϧ,W Xz§U:u%8*ua PGj3QxW u3>*傖>[G,C QR`8};j_6ֵ+i'/t M;K_oox_RfK%v\i-վi,ZR֥[sETVjbXhԒI8_3[< 僎yS%ʡg4~F8ЄF+5MG5JXJpMO.Ms~Wm>xc_èxtɬ_⇂/xzKıkY𝬺G - Wy]xZ*v~+^^٦)SSHOխ|2Fh]5ڵSQI<<;*2K{~ о|j/ƶFXj:^MKOyW= aanJ[PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(5xs4]F.o xRg5 |Q ~2Uls6+< (*jV4Zx^#n^!4~_iQߪ"gKCᇀ~x[G<:/ؼD-xkiZ(kashVvs-m/Woz"HrdQ j_2s$~t&~:E^xcᏃt~o4Gagqxu;<>FZ[-A hwM#Kz (dλf6__7ړy>wyښ~ɡkQ@ ~?5#QxSdž<{|%{WtmF>>6 6S]Z昗 YoQS 9Ɵ|u:x[B1է4uk>Rh®\)bX~fB26j0&}ˆpxS|h5j_T?qغSC-uqXyBL(J^wOᯀm#ⶶzcÞ?P9VgoB߉fY2G,to;+4{[E-n]>bvSiq^CD4v7nf*tb*Ί)^?蓟J;N~ƜN7bfNVE}O {Dλ˰U+`牨y~L& R'koC񮏠]%-=Cu FtZ| K2Ce_;w"\ϡHֱѾ+|/j0/koXtHx>þ(^<]LԵxNе-B^,Vx7đi! >  ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@'Ǿ;D x_G5GIGI:~-Ѽ3Ӧ^Ic[%Tt׆e|?ψ5-CSSx4ki_ Bt/ /_xW1"DŽ|'A_o&wÍ'GƷckᛩ5?zOkc$-,s/oN+,<1$NT 8Yu',Y]\/eѼu|1YV%  ="߅!X;|{|+/mCE2/C5k&j8Z.GwO [Úf3O,R4'w )ʲP*r)INW匥pV3X/\!N Ua X8JգΌjpgV5%}gӭR~^,E|wY gޕo T'O?{s3\x7e^i6ľ9|u h__R; \UFm!- ZUu /mMʶ u c5Iu(jRUNRRJp5#('a`r.*3(1Q X,;:*k> r%Z^y-U__~,.m, z]i6:ES]wia CMq8|'x=#ǿ&??x >xA>o|s|c ?:iŚG~ 7QEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<߁S״ڽ|43^ZϲM?9Gź~2-^4oi:xKռ?s5ܰ$+,嵸KMVU6ٸhS|?ռ?G7qmc>2Ou};G-_iZM3]XXiz4YQ}Ӽ?Jt6^25싺K#_]I=Ɏ4;E\(t/FG4&mCVզ,-uV^u9`(5sRu^Z{,s'Q@b[&&4?2 A%٤iHд]GKMZI. (KU.&Y/qBHn$ BJ 3C P߁5ƾ/K/O~/|_S>^kxF f ]bQ`pxXW*8hq B+ ZR F05mM kp+i@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<oį/ktq=f/A&CHtJ{em1}Ha|gxsφf+^z+[m zh`կԳ:E惢X\4֗wQVǍ lx6W,d]g\&xsDH J'5Y4>wmBZ+ (a:N'}|߳jMN?OGjke&E utYI5-瓡}CÇr|F !JwUB/jKC/{Z|˝{ ,n W6 b\eZ^Us']x ou?.Qos_uoi5_^$xĿ), '|xZJ{Mysᯎ?xoo-6Mi?O7-.?|! mGVҵ]wŸ |;skKmXפӡ%'S½^&t匣T#hҫhJIqPexLWVYyl37X!xuk7|C%F~!<9%K,K ϯW Kt4V2Uj]cBrYJ#)tV༭Utq|D8ܙ`*p!)`C,}ql}K,W^LuZץz5?k-o_~4|8]_?i_º_|5?u熼x+mb;}ON/wkZnS%}h%ZZ_ͩ7o{h#ilm;ܥI\ a$uK\^ N5V&UooJ:tjSUh9N4j79I4'> 8g8\l]5`qVcOؼ,q]JqV1XIJyT 5xC\K]|?ڦfW }ׄo|Kٝ[Nn:{‡w5<:&Ř{7P,ĩ|(vbѦ.}*|?pam_#S6Zʶ&ݷۙVJL4ǟ.XOl/Ly_{)_ aS/O'OW/ _/Kf2iXjF f9(<s~8|rt?=OD4ڷ|qxO{O| ֟e}T|קVauX,I|0˞q:QqxIʸ$,cxJth X2_-$ˠD;L_Ƿ |EW4?#h#A'=}Ŷzṵ7xjSUx5_".ᧉ\xC~Ծ&MbxGzc_ >"87ygv į?>( <1h |7NŸ3>Ö5XxYV=6Cn~=W{\C qf'[0_s>fCʮYScڙn)9ml0sj_&όZ|ÿsi7oEEeԴM7OdGm?z\>&|bGOEbѬ|p1_>,|W* xSƚ>x#/MPZ̮|?i~|AKOMcgZ1_1ae̳x&(̖E&"3 2R_b2. Cgϊ5_|Ryx]١]|4]3/[}/ O|ghߍO:>06g N][Wu PĿi=OVu)>[ V]■pT{-V0s'N09߈t2̫1ľx>+eb?^ʥal([aƭ2A8|PmSOִ[<]LJԴ. Kké,IO^P5\xL"0k&L魵?Sf_4_ {Ú5ޝuww5fxv#4>Ek֩sjv:ޛw.YMNI,}#SJ!O]4:U.mm}cTKQԥ@kشM7G#.Z$Ck@ (^C1H] 5-{,cbm.[aK֢ Ʌ:K :+бy_YRwK8Z+}6e{Fm j(~9|_Εo'Mw6|o|2׊4m{Iuv?|Q= NUnfI洺).c|9<*E]W.R58cL:fWZ4{;['V)mnwQ΅*tC'N+A8z [xKEցhڇ<++^I֗h-Ptn𮛠^ ? jé?_ x?i4>1Vs|Ko/j~7?|-IY'ӤguVŇ`5DɶOӫvTaNJQN^Te>i3 Ԍ֜S#QJa(U,6 PLqx,֖ W:Y~#bh߅5O:֛T[/~ݩx߃u"Ci /ß|:{(aؼ+姿{="di"4Kw7DK:YY$dA43DY@)(xU9Ɲ:1iRST魔a'RI$TRnOqؘc1u4x\:槂 (|V*PLV+өV9Ԗ4=O^Ѵ-g>#ivik}OFľ#Yٵf^G0GOxOB¢˻uyŏ][e5;#Q{_#\a/ xKkKi5㏇׺- .bÚhx5y]FW[?ya._0|] V|O36\ywg_]m}uy⋟4;$g9VY;1_XeGx{;1Wx+ nNppVC6eWWS@= V__h68OxoZ;3_D߅[ae{SlZΥsLxQ9߂_>[|,xT'">!X~κ~S)XTֵCm?z=ZZ]X09;q7 `NհY7R|x𘜻li[S)+lQD;oSᶫx?~$i7L/!S?m/^꺎;FQwt+O[Oe]u[U{[m|O&q9r ԧ`r,O#'`ppx}ޡ|?.4X^]xq[+{4WĞ75PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(珏.fXޏxͦf$ 3Gd͠w{ V)O8St~*~~$j,^ߌet_CV4h N]N!km_L5ZKll5k6Dԯh%|g-?u^)m-AYo5, RIݬdHY 2*(`( Ɇ4=߇; :/W\= 'DLJ5hMumD_a}$67W3G)FiNq*BSJJQ\e5gV>7_IWC^ FhN)S**6$dm~Z߲ލ?~KCZ~$_?<:G-wOd0oz=E N:| ;aYuihA9FJxӄKR MO깎M,׌qK9f/|NeMxIԝ*p*Ԟ&WƭGhO|4-Z[|Rڗ~#_3⿋V6oٿ9ڌiz\w{w%Rn~khJ~'ƚ ߈3|3KDڿ|e9x_ޯG=A,e3?ۖO 3hrˮiW´SF*XYSt*b?gURiibiЩ9Bi:qُ~p]Xguؼ'as̖yv':a)fla0 N]Z6i<6+;uQ~ 4i~xwφ5o z@<}|BQ$G|3:>׉seK' gN}BĚ7Nhrol#[8կ U3Le9NXXs8(9(prs&? KPbu *8*x14pUUJu'Z}p'W|:URu㭇7滧[Ktx>usES U|Im[]/G|]}Fbmuxu%Ci|3|%o_<[sWգ|-^jmK0izd2ivww7r4i*TeQԔb佥<m$f$mɞ>:XY\pX}O,UZ4%V[Tq1S5 )N}ga{.3,qq2ku=b)-yfnK5Apaf5-Ů+ZΝ sƱ⏅><3Y:NwZxt u>>IOƾ3R _Dx?  /kv1G&obDo< W~0ծ!_cis-"b%|F2]_ N>3o (IV8sb8Ya뙔+%|,~4|-Vῃ?>;~'iZ^jx?㷊iVNgk55+χsM?g>%k SD>iv_]GN]F _ O]C.T#>Y/k\:|4'o,=^(QVO[imη&s/^_˼E`3L֦3-Setc)ƾ*`U 3N2|T=iVjVQ (((((((((((((((((((((((((:Duv g"֥n_k@Ey>KL:uij[w1^[^;׃ouk}gyuIŨ]VeΠSiQy{J;TxhiZ=IiՇw5_%O53_Zڶ }&f(kkRx^Wu͠x_)i>H(L+o\K2Kq:Cr(#K4-&]Fk]>-W5jrGkk^ԵJo6hQ@b[V_.C}9p& [1f{면뇚=.Xn+݇$p̳;0X䶊ux4]M\<v6ė`tP-xgVn3RH/|_AB"veO >fwg4֝g{I=դx+eo,u{^Þ-w|Q:M5 xTg)Qt])EOYFPqv)v}Z[,FQ8?7I6^i4-SK#."SvF*Z(`t4ӕӅS OSByRw8:g3)–`٦/,*B]L,-a+0+yvsJ8VsTBo[US? Rqq{ew뚻GVz_J'.<[676>gԗz.`*,un WFWF]]N [R\\#dQVRIfs<76v+Qzө{ 4)(BQF1M.JQPQKoKu[3GXm.a?|B$5NڧYbZ5 Xl;K{x"k9;~=.<1;WBu+#y`úޝMsuYݧ'Oa?{IgLK_:k[_ZjMNgx{Xk mumX~צj3C ﴝ^3ZAyoW,.dY󬲭*t9!e_ٹY.T՜SwSEFNQЧR*$SZ5gF%aBMJqVQMS\_m7"^j>6׋XVnJu?OH񧊼mX9kKtmPF$znpEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(7–]IZvogǾky5GMH_W`{+1\O=W/'YKQ-3 g¾*|=u-{?^+`oi2jZ}.k(gh x_?ÿW';h~&|Ichb,tv+k]*Y\hdOjz.44º΋LriO;DuIRI#fGIo_PPE utYwyښ~ɡkW[qkc~ʹ׼OsC}<xu8ԏƚg@ 7fJU=ZURR%+^׵gn 7.[L?|qxZMc↓q.ˇ1qR,a[,$ԝG ֥JN%ZƬ_*7)'+O ]*43 EybBa8<_0t8chJX%\l6z)HѼwU^_= ot}᥯ |>i$Ix[᧍5/ͥOaBOǭi?@Z=GLj*+v|;r/g8Q]|B&$R9m9<5**0m`եN&tʇ%J*p\98Պ5uchb32eI0Lq5rGqSRb+֕,m>^#|:0~^a-N}Þ)|8e{kV7gOM/[]?U,G}ȼ8> IxG𶯭? $'ng3uOivOwgom7cźnt9T%&WVzU 4^qIЕZKON*6Weٹ|hU솼?qC,67\. K2JNSkcQ*סRr?k_ <-J/߲V|[_~ _뚵6 oZ>KxsHm>x,E_d)0oӿCW6j߳ 3/Ii #xwg~~"a-bKơ?oi> 1¯gRjTXj~ڭH*rxʰS#G(֕oV& Хc~2m/ ?gφ <+|No¶Ļ_ k>xr]F%zgu+_i_>!wWu;{/o7^m3SMƏ"Hn|}-+]CF4O /{ ȷ5sVݵCrA5R= y猍icOTN_*pcI{ZR*juy,O;U\g9jK20[g3*Kω)gX[|`8`Qf F2U%Vx,םx[OI<{KNO'=O /އu&UWE_>íA^?:+ҡtgoQk "/>"x>#<]a)<=Dk{x<==+6N߆~kW^jZu7Qdu](a# 2pخiӭJ97pi U(R8 cd4dxˆ?v0f8fm<4*z>28jXQCR}-_O=\>6_|Y:/߂>>~'/ᾎ~|W⯆~,,>Wᶏ|:%k}:\xR{iFixGAλ_Mxv~Ξգ xsu~_->+[/? ]iZ:Ե|<)TSS^51OeҔisVq _dٹD3[,ϢǦZYXx7௅~OWPӶ] 5:?oh-dn?QÊ+eIt:ypxa](}:,=Z)e?2¯ ]a9#C g~6h֞3Ե'>xŢfj/b|M=w~/ABnN'?O>?'^Դ1Y{C_ү>2O:֏Wz֦79g (9fa 7߆?iٿo!i?5*Z}oƯ]K·0kσt}# CxLuh'xhI>!i- 3^ >ox:f'e]RNl .Q46wM6@X21a',sLϊxʸG9`o`9l8XL·2Qv/RZ.8USiw5^ x_vouThBUӵς:(,&yx 53T]6(uco?hohW:Ҿ0HUMw#no| Rukľ%_Q5+ۻۛ1$d hG?03Ka*v}I"_2W $I动T\eIbq^_E>|??Ǩ|Te_5x, `ևgCm[+RoWuk{F,k9sԲ2j-2/cWxSنYY+# P<1^5.K u 8v׃O M=+f#6̣3\gyc^'9V{k0 5-QȰӅ7FB~>&iuC/Ʒ6 ľZ-] /Wh_?_Ŧ{GVh;/5x^{gYg+Os㇂mtcQUw[j6ODk>!^{xV?PsF,j3LvK%C#uh!Ye1Q{:s8gf NQ[GUXuF*G1~ CG_]A+ _ˣk|S&u F}j3|C#5>9?Ow6C[7vOOθߊ)4^!#3 *g9gu3ž e7 =^1UjX\.4 |*{gcُᯄ|k|2x 3ⶴU&A vy'|5?Urg<'Ix{Mg&NkV!iGԼaICPO oV{;}^qp2Y3.ZԱU(asga*dJ3 OgxQ O10hɟ_W;VǤgJ= MFYX|"׵9hot|TM7įkϛM M7Tv:Mw;O"<97Bci iF9kO4|>幞}׳˄lyN.ᬶ0?ᰑM p`S>|aZx_~ʾ>ֿi?|j4+47zu{/boⷀKt;Yi @Y!YkB`>=ǯ:=:/ hcOVz/=K:ׅ|G*Ped_KiΕWgXLF34,^QŞfqN*y$#Բ|"eù.ó8[-`08s-q4Yu |M/?^rv]0m^~Z-ۀ҄&n+zUᾪx*Ss<5%F/,)Rw^ә{NHE|Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh:?"HᯇZ0E3@Ѽ5 iD#c"+;6E i/xC~j PfE o Egm֭đ6}[*x%o~kz}|w_Zm=4sźoiQGYjzͬFPE;O1X,jþkky[I`KYm7VKwDFT*A (aG=?t_#B_I??Z+,|c=?zgǏ? |;7>-<k_])XIOxIz-vu)i_Kj<%ZfZuj:ZZ^]jZu)sea}k$זWvqkuo,\C"KRUK+MKMԭ.l5:^$H.mHgGTdfSK_ s|1_5q/9<K>+Hta :+X㷎bEAqR8r5c9G>Zq3^GèGЍ <|4&95)ie$J(s#" |,n.Px8MggO[]|GSa&VOQf3,5%J4Ih8]~ge/m> _C%_^ Yyo-wu-<%q y$Ruw dW|1͟ x;3FNd_;iOe/Kb< 7֭xq JXԬ91|J.(iPaeY찹a0K7 ~iG2Qxg#VW**sUŮ?~ |?eß"aVg/~<77_ӵk]O,i>(Pn/vmIh^(\K]xH?[$M>mJK'&Ya8ՄFX֯bkJ5AµTJpI8EUżU^:~& s(ֵo~(&{tȬt;IJLND!OKEǟ JQPQՊNU"28!yO5>kC@|5MV^fiedڦjε ީ7Oys4|Vf#ҵ :Nz:ZVcp'4觳 IaPt`qZЯ_ ^+ ZNBס^JUէ(ԥVHtBQ'(I&٭-崞ghKyCK G$2F7ԣ(T^ioZ~ ANmFW6 ZnMnNo7&iMw3d2J>=0Y{[/gy.3Ნի_*kV+W[/Zx:JM<#?,)? xk>N߄t-/z'Yh5h&iDv$ŎLn/21kc1v"/*J#b'R'^Vz'VIJs&szW|!ZZ<7YxVuiZZ\וW\u{KXb5meQUuUT^M0Q+E,kg/oA/?j:k9/S& [gɚ8BZ Ǽs#a2^3Ytx'qqC+L266 a4sJѡ3E g ox{3kJw&kWS]j:ܐywq$jfe=<0a*֕gf\:q،K1FLTJry6Y:kUU'Qx?<[x[^&񮠅;>ix6bs_JI*xu5 snUR_; (c%q[RxoÍ2~ϳ|'l&&2-ch|18bSMEƵ^p A_ U:ƞ7<=DwE?|Givzlj&1ˬ^U'.˭g⏃>|;]Zy[O',|K?n\SMZG%vbS7ĚPi )⌋M |YBEYf9~[ùcQ,`9N` &1aAUo_~x^/ks_{ xWĆZށinL9Wx ѾkS|Lj18C4x3ytl%|IǺka^0Եt汵¾u[j>93 Nuq&79(̲J\==x,xb)XN9LJ,\m,&QSajU= ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=_K/"$]+zw||+?Cga5oW)Դ=7T!KM:0޹ef/-4^_E;ƿ|Ns\x_XPg+滪YGe{KUX轥:nq}m1_iWk,iyjzrOeimym hn`dtP uPX?$՛̄>NY-%W `:ḓK#ۢ _RͮYKj5 [|Q=|0'[Z Ls㯅~M_YӴ.yz{BU' pWE]+M(i]V\Uzj篈NsFkN4Úr#9%9F*MM;|3ƷG?Vz|I^xN[L`Ҽ[Q捥xJ_ |o'NnW ¿s _JoGqz=DŽ675Clٴ˻]f+x<VU:5=FQSN JOkV0u) ›MT\V8ʦ<&[x[?/uJ4xRab0IbVCQ\P7s]& i7潪owv~wMkaow}p"Ki$#dQ;?xR:O-]^E"~i}]RB6E t*|S.jի/{}qX\]żߧWޕ8[X{Χ%?/ݟ+<' |DԟR_ xTf[N4eM;Iu=9?쬾ڶ}m?Ztr[S8J&%kMj[5e֝ ^xBvgz]$Rvn4hy i]c(RK$B$qwbTb&G׵2@4 |Q⯂Gp_6:/Q|5w7f\E-ŭ[d*( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=o&kxr<'=sx7jmV/ x^T𗆵4($cӯmN5g[^Qxkw< Oχ|)]R:K?i+5K{Ms^ 5 WDKk 7 _iW/-x&_;r⽯5[3T?MQ5R[{[]h:U,ˋ+xZ YW{Ɠ tMMWVZW4mb@STђ[MotKEynYׁ֣otkIᶞ0<> мCj1|gռA EG#旡C{|%\]چ湧xEe=W\}qk,IQ(.҄읥vif5QSZz2B+R.Z rJ/QNN.i?τ_ xDGHieоwto4g?[DeΑ?'Q/m'ךFt5ek3 pBV B*J*5e"*tg*je^0f^eX'[<5Z*Tbh8,.¶pt?.|M~fA-\?|XĿ>9x5~+?ž_Mo>1ǚ75Cōeᧈb'M υ_ oϿƣ|&cO,tj>f2/z/u?Ccj <~,ƶ誸k x3!6L*pet*5)NX(Ɣ8!)⌞xZMQ8qE a1p.9!<' Ab2]:z44g,E,N""LO0.i?>!|#~>:,|pH !??4QѮ& ]ƳDaK߄I<-M_D5> OOşث (uď*/t+_׍=Yӵ[\h^}1ҧFNh}f8B'AΜhS_BgөI)S^5ĵ D/84c8~3]LF_Efsb2.', %F+9@xclUI=79 ɨj <=i Ie>ml]y%͖}M'ӿw]Q']%(~'CvLXojiNKh1z)ksl^Sa,&Qͱy#!1P<}J5T#m#~𝏈tkZ5gs\u77r [if!n8xH/FZx7XcC w,y^/X?Py~W&IJSvJ6I#jժb*εisԨ9Z1I%TbIh0?h{:/ xsՎI4XgQxm.ak CKK _Z^Լ+ >Oَ+۟? 𮗮^èZwf=[vڝ "h7XLq ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@]sxcE֗Xsj;Ir4R@Fc2̡Rd$dsX:PY0]d/vam'ED6)"^k+@1Gw" o]M V ycCƨEZ&iid#\rtأi8D%I+$wZp~ i_ <#ukOuK M[1ޫ5ߋWx?L0[i :i==oW3Cm5ӃR8I )J)ɤIlɝL46 E4'Uӄԍ(ʤ0c&QjB|&'PƟ| /~ |GjW_>)?Uּq_\Bf&t4%Q& Vo F.?7 ߅ZҵH,;|'ykO:Oχ>uxMg.Oe_{]7YX,tVGaq=A}Z^7Wy/7|PG~xv]* R-wz6{"M65 Jݬ GѻL|hU'%Dbɸrr68&5x?he*uO,ھE*ʳ–mRNXeN2x K hb(%RNைhx@/>,u44s}e_IOu=Iev!xNH|I/Iu9|xP:ݵռ6,ơ}-CP󴖚-n[Q#ys8TX)R:5)TShT"eNQN-:5&dM+2<~ UpX~+_P5VգR9bc¬R2Z3\bW:g/x.eZG/S+{kjAӮ5+M&On!x๿[%Ȼey}l3˲=J4x_B&Sln"J NeVPRq&ҋ~W+Ynw5a ^iv:ͤZw< buK/A5sicO]ٳ諩\h$ce%槬jZ^hYii5-VHӗPͭ8̰kَQgT)ANMC#d9˲t29˲|~ `Xjh#o+ύ_ |[xQn|-Jg>+k:98B vsa]xs6p'9419%q~S0|F# W,+ć7H>$H7xs"_I Ś2x_NJK-i;FtkVoM/K=z vַGayZp%% qf_U6/8#x\m[C&qW ps5cq/ gepsW7 ,5|@{-Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<PRxO%&> ܚ]:N?n>2V7Q鉧} ]GPO㙸??wῈ_}:oo n^X4ψM:?_ţZIsm5--xM]WNS'a>/#Lտ5 iUkm堰Ygttg g/}?ŚW<+QM[z= qzsݭ-r, jWQ@d5F_+?;yWy_iˇ|G֡?pZ+&2XߤF3ʼO\>wo?g^CSҴjkmbnlo gohn}OM6Q +;MB}mݻG<H7ԓM4itZS*9¥9ʝJr8IpZg EFQN2M4ii_ D~w\h 3^¿ xSӵE&+Ƨ?|aixMoڗjk?|w>7|Hq/_I <wqwWw?;[-CZK_^gCws{a}7BR/aZr7z)֌?g%BNq)SS60ժ,)gRK , s^ԲG V^7:xZRB~Kf~x~:?W||`'H׺WïZZk߳厕>$5 x^ށe}\H/_h |x:Y࿋xOzm/7ǿ٢]]V5YxR}}*}fskx{w_WUq㽜֣p!R:3U9~ue)VO4՜(f[E U,N&#`2z3<֞ 'Ofsyn'V\ ~ȿ5>=9.K;Y`wjZݼ .tmKat>5;KT:O]kR˩\FE桫JO. w+X 3YUUro83TӤ("մf+ʫz^>XNk=vvesCsg}euv;E=I $H"?ĚZZxźZ;e+H|*/_׋og ޣ/($/YOx?| Yw^_7ye{mA֗p7\?Xw%:~qqi r߈r.Z Rb.u9^UC ^?߃~$M x_޷ZW?4V; rR\PX П %| =oe>}ae4kMW_|Gq{ okzm>k] |A-Hm>US<=]mjF|mgfCL- R Y#x"+xwK- Ĺ~S1i.hҖi(bh2,kׂ7 >QI?~xⷊ&G<OPѼ ; o_]CZ5Ӄ0"_x e?Qlf|q&SΗ rx6h rX8q,'bhpL A~_ |gox_7o^O M'Sa~O6V/ ֚NjU iz6g,uN*[kt |BOխ#x~,<9\|.KG! =/]OkEGe|w7_chq&>'p1y~?MBO6.-㰙;i˂^-xrelxei]\j&Ӽ⯈f_<)ψ4;:|GO|񏏾n=wF4]i!^(NiWiiq֏{b 6hUiz=b6 +LNa}CoF.αSlWUar\6}Ɨfn[qKy^}uIK,{%vG.xzTF<4dZ{z Jciׂ/2Tbgq9N Sz|,glLOjpuq9rr_;~(j>*]2#Lgu9,xBO|?]`佼o;XEφ{JoCG|iaz|'ױ#Ʒc X]IY^géڝUnI*TKxN*|T]gz:2QQpNɎ#^S[?2zTp~֜0US1U*UFЩB310%GB0^hvg^3={k> ID]Z:t'Ft[i DSmMO{n~ [@O ࿉- u.mGm}j[K!7}8u.Ys$;pRRӚk]rٶ5Ltrf{:8C >zU~/Y׍fp?fC٨қT7,׎9_-tOIn|xQA'дF'Uӿ$[_|k8O-r\9qS}RgNգRKUJNUOdu9y=/̼S|[GA_ZOm/R|JҾgzǏ.-ZuJ-c>4!|%3=>m)&x^|~#_j^#`+ 'o?LtZ&3<_,˰m~Q~eW>5|] 94xs &28LtZg+~x?GHOiO'Et~|*f[}W^tiڟtBt?KmƝ ¯xS2|d?.|N_uodᏈtMnmGva7OvW.{Sp8*ti]prԳ. WW01X~ ؾ >*cYUOUG"ψ0Yg8 QVt⎡&0^)bO2ʰYmrsW}Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhψ^,t]Ooſ-MJŞ00`>FKk+4^Tis%(7/ L[ ŚO/Q?e xNx>x7RwKV6Aq^ԼUhAoLnm>:Ta*W1o_yBnc :^9{Tc5jnj2*JLQbqȰ|+yf" d\F*]mGRO g !E'#!s^0ޗu ^|Jևj8ޟ8aKVχo<]7Cxn% (㥮S<+M}NJiK7 ľ_xk:i~*kkm7Zׇ_M^Uҧ5+^+T vK=7>Ϗ(|J/t*x'h]JO;50~Þ#Uȸk#9Z|x#󌲓*lbp5e+|N7 x\=3 f a`Ég|?,?? |5>4⟁u뚶ᕜĘ5}'HmubN-gno|Ѽ߲짠Ϸ>*#nEu-G^5WKM,̋V_/6ּ5-{|A[kVoN`;/|>뚱=_'u=cK|+Zx{ĺد|Ai5楧_^k׿hk-+M֯P}__5HZ^+Le76bGH" dd *,с̢Uq@=}A@VL1]eIc󼍾gy|'mjg_k5a/Nm<}ey>v#kP?ej^^ko_|w|:m|A׼Y闺nZ7[LJ4O_c ?ucXDw obl'Ҕa*QӕHFrMEIII8Ev[cNln*Ռ S:Ѝju›y'Z^ ßxtg/?>M+P|knjt5 wμ 5NFteٽlj_# [U/ x;'~ |3t/_+_趚=M{L԰ũS֍ỏ Yw;)~Sc7s\XiB!56e$ڴ_x E;:X富|Wyrxn7־ 2;-[PItHx?~,|o<\GYյ;uIk* VoBT^&IaNѽNvv)эNXJOd8}NSG[*FMMK^qĨ1GS`(<5O]~-xVY?gog,|~E;SSic)oм+kwjש&ogdχ?'j~=牵جtv7-/:|+x*/~$oxmr{? W| f}{PU/K|(ӭQR*sVӇ>i8NSEG e.|Ie8|] % -|6>kb- eu1)f)eӧ[+Ok--O>5!!ǎ~#ǟ u ᖹ gS] |W^_yP|p?>kM'W~kl>QGhψW,'NdxiqlX4#gD|3xN;[^".w-m-—~uV 3]Z75M3Gԧ{8l,-^\)ΥL>^4gVwVTgKpO"m&^ r.|1񏏼C?GoRL^]_ *a0%*jRw*r) IԅJ œUeCعer̲*~ rXxS3b #01k@nk><5=hixJ{M{úhӅGRr%7vԟ4SWKݛRVmƎ.TUe[g:u*a(UEΔa'V4T&8M4Ե,<9[:WuKAҍԵ.K͕ 蠶-]\yU+G㏅> џ|Ao h$c=7T~5 :*x]lGch c^-W'H}Q]fP?pO}4sC1g.[ 5J\v}~2PbNζt*tjQףWƏQWÏoo j'⯄q 'ᧉ ω5 뺝߆au{/4cJiyg<ƖV[/o|B}k5˟5׉|msW5ΛemoV_JKMxW\9Sx}_,Aeg,УiHys,=Tx? JL<.C2Wg↳'!/V֛~PtoIJ{kDc֏W6z^)ooZY|ᶵ{|}wmw6~kw"KMP4;JK{yEJ;?x/rn#jy4"OfeQ`r>xS"j*2roO x:nuSĿ 7\O ԯ, ͮݍB=N)|]uu{6-ݗ|C5͓Y-|"$߅_~y fMTfwƟ>&iTU#Þ_|!j o&M/ş(Pm .n2'ɱsg؊pmpX|* lBQIb^[ $1QWy9, OōO_+|4t$nMg'c=w4<#w|?Wv~vTVweDE,*%P $2k_c'.RͰ>wf8,:C[,y>xM|c %,L:Qq@|/?_<3t[j7|gt;u˭gG4ZAuq,zj3/$|-e;|U#U\_||=߅cogGMs.ӡ ]+K ~\xƟf#xM?|uD#f#׾)xCWm&=GNuKM3W7iM\1[FiK?8&{]ʲa3!_&sl3i},&2qXL7a,~..4.xQ/>x?z]((ߍ`pXaxi|0xM5-CXxUk9Ӄrb0x fG.a\V3[#9gX<)`2v_BI,.&k1>b)߇|q_zG$i ;?7_x>^þ.g7;IQgoZ.]6SGo}!Dŝ#H<h_L K :'J:⼻!q:w+kc^!}w//3i^!ѣ{2; Oi-N9feƛ,~sᏋu/h9em#1- [WLj5iRMt񾗫x~=Jk`IWYkpmmO񶛥KzɏtGF-ۻ]&~6Bh }.EX~<3+۽F:5 .Α!TZŲD: (Ky >$բVܦ&UD$24 6)+6~pKI%ִE xu|otX#o^k}.;Z3/GW j(0|6Ӿ0|.Rm.ƾ8Xךqm#6`ݨxVZ< /l`eE_~!}xC^ ;uO>93NC׼5{_p]Q{ZN~<,hd1qNT\!8*r(Ջ(F-ϩxӭ Rq0X{<;֡Q*j#U(ciO+RJt;8'=/|"?e,e'? -]grxWU]߀8x_sM1xG%-ӮtucPuƟ~(|c~ڵvW|q7i#{? 7M&$_?iV:{wZeg:<ԜX1)U"¨z9y/\fi,ya exLV"A}\RscaTodTi?g|C|=@oN/>3iq#s~9Z:utkVҬ7A>oX$ O#/GEþ>Cmw<1 ~Z|/Ծ1'o oDÏ6?ǎ<='D拤hQo:Cu>yWiu%ݺi g'|Ne3[u xO2Bkω t~пYGOԼ',Qî]+;.1*sQsҜ)Œ**VzoKJ"Sk,G_:GC CRGѧzjZchb2R·z|wcxM:_mk_u⟊~v}s-HxV<Au3m`Ci߱|wƽ]Wa__iz|SK[lt|ACaeM_$՛@zB,!֧S/ tF}ngy}R58zQƬ%T^yԢN0bS9x6# CKVy,LA:K1#VMyX>7^]*_uBƖZ;A%ΩL+~7|1G[4?|w]i1붶팶3swagY%2<ȬMz?O!ϲL9VK年(³άmdiUt%7EF5:jjqaE/|/|Q 75O~O=&m&[ OL^\:Y|RxΖ'tioֵn'2x8GsN++yd8a3 3qV7C&bkgYl\dpU޷xgďCⷌ,4_ݿ%oW_x.WWZ5-FXծxrj~"Mt+Gy#X)Q$ThEFUсVFRU k㸧=51 dm 6.獞_eX: *QwR8 & 73R`׎|_dxK▏{_ޗĞ!l:֚ ~Z|/I}R6\ks fO?]Kⵎ$Oon|u~ԿH:}mgx|4<Ďl88v/!dٶKƙv_d2l%,5L<u FE M^it7úe:^:-5Yc}oRYc-/ȿ?f_/%x#S',s:gO~?R^=9t;^#>5h[ZhM.oA'4ŦX`hz.O pQ4#US1܇Y|#y."xป*>8 X\6SeTtbu??f/|,|1xg|0|Doh/ G"wF?/"֝&=WoC/ sr<]Oz#֯|3<&[K֏jKijUh>6aΛ-w߃"k񗎾9kP!/~~;}[ĺg? \x[%xEм9d֑t kW],-*3 ʳe幗?a'eF!fx Gt:N'=2 Ю<;\YOkL5#^վ"|FX.>%xxz"^i Э_i713E>9b$|9 *7"\6u_r>$⌿L*_Za̫K(R ᲼Y5L^XaC>l)/|Kρ|9xt_F-$ҼC+G~ţ,^'ic c4DQ=ãi_*u_zMy%ȃL֋kb'/կ].&8RQ_\dxCf9XeY>bOpoP6d8eկ׋a`|g<;I_~0[8t9I#~ |9ɤ67jv'O?W^;~.|u oþ?:~/:/-[N){;-S-'žÚ/];M{SWX|Gkޣ ¿cr$p>yqV[42L!G?N zEo`3.̔wsN;W|D|s7[ wzW.#ⷋl9kFimfwmOa37ESc> xlt+gx>|H<ڋ_X]®=ͽ֍cȼ7Oi8;>ɪ8+O(g>53ڕ۹=~"\7OBQ[30mwsa~ _Sw?xI|W ᶙx'G5gI7eem<xRFw]l'T^r,*θ e=I'q70pPp38Rg-(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<oį/ktq=f/A&CHtJ{em1}Ha|gxsφf+^z+[m zh`կԳ:E惢X\4֗wQww _o>?~>Y<}ᵯC[Cܢ<モhZ?^]{i.5Ia_cZyxak8n\K4 3YǩE ze@ȱ`O( ɆL뺌^nvi:,Oo5~7y;<]?G}W|`$.+}75Ef$OgO?<6Xu3'F @4kHcs@k$|_Ծ/|44}G?|EE)_C4TK$!uaN97?MEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(̾%5ovZ^/|e -3Sӵp!ơڦhWx~,Ni\A 6;SXkW6mǾnEa?"C3W>#6M>.\Gu{%@}7Nt -+LtK{ >%H(PU@ PY0]c)v!]'Et/#k*[NYIw ^o]C y}=E<} ?JAï:w1^;.äXY@2h#E+>WzῊT4>:[Vw|E\þ'u]a]]^j)3n'Ǟ0oꚆx-JZ𵞍wW&j]Ou|"[ucԵ4]Z{ 8jPjZG29bUPY0ǍwQ'E6UW;}?}\֢ _~O<wzν,}OCIY4g:ow_~k ]έuC}o!FmE&|9 [nhf4XI5(Mxh#>x ?K~%x]-~ |%x+[n|#;}}gYK[^&M?ףB.bBzb'ڭQ/ezjI*t{5#ܳ/ 6 Ѣ8q]X|$q)bFk75'YV~~0Zp*7ڼ_~#xK(5k2?mVG;_G}_K]&X,%/`N`: aRՋ8K'jZ04!Y_<9m|mJW pg(8,YyF:iI)O2aVa^1qZLJ?aOػ^-SzEkZOxOQAGA]k j"OCjWvZ[Ks"C' ?iώ~|p-xG_g;o_x]]|q{r|v/  Fapj^58F:BVPxJ j:<yJhi⧝ѫ[-ڞ'Bo_Ǐ~#;]߃~1s>i&8i ˤxƿĕG5?mm(ze5 u.m~g?jvOixV%?Vmo]jZ~$?[v5Mz֫aHF T9PnLBjt8:傝?n=.;X`k .G5JUapXx Xy]\6YMSGK7E3#'ę|QkOQ/buZ=xk>N41.ϦQϧGw]_F]^x>xk>/)[ZS,1~*ּS"mko ijZ^\yuePRJ0[Vowz|^:F&upBF1pB9Jws%6ֲrs&;5|/hf]:χA=kMx|O\jIXol <ue{isWhiO ◊k>6M~0xÖ^Ҭ|Om'x>~.S| $>֓xWIhE`q<;aapN^ *y*x|T^cG0V:UqT*aGΒ6$;ǚ\ j/Ms$M'$͢t(((((((((((((((((((((((((( Zo?DGWh_-j_PᏄ$ç[|K5sx:VwP;Ě Zޟ{eky\ u6u#g1ܧ]k\/nuMF}gTO2krj:-Gx^<~3eKeqKI,-,m (nb7MާgCѯZ^F$9%wEafFemiz]ĐZYYZD[ZT!D4P(}A@V%I5e 4?gӚw `mCVh'Ny#m.6 < x?uhŜ^/ xC4L_<-#=2VwӼCsH֬L[YyՏ:ᶭ|3_xk^-|Sğ"4^|ke|d4Nkx|QizmYXU,n&8ҧ8jqqj>TQre,;9Nt$7`p41\x)ʜ7u(ҭ[+ye^hk7U>kG+Ss]}S@~|Co51M5?\Ams"ٍ/ٿ݇{߂FeᾛSiHn>a+MZEig=),ZMK%/-g8,J+0-Arͬ="TquOsFrZ, Grjg~kf?ƈcIº8lI?Rl|hVzl^_Q#?Dymx~ll 'o*ͤ:]qqF5+{y%«TSjSM4(UORO |WRJ,^aVɲX(ťqa|k.:z7Ia}J_7x͞GC힥k>/Vib.w~;-htix; +Q"=g iZ[_kz'O>8:}?*Ӵxl4}WwUigkl? >&Yie+ x_ (V O|5'|i;!乷-.[INw/:~\׭ZVwi Y,`{x"u/#-KF9 5w^ʱ^\ORK39## yf'|"q2XHX,Uϲ5cFa FƭeS7JxoLO~xFҥ5VI&Tv̈́:TeGhT@ 7߳4 o> ~Y|A.ޭp$4?>OΩiQ ZX4<)FQrQM۲I-[oDNJ!J9իRqN8u*NmF0"9I6I&zW?߉~xO]g(>%J}3zOoir>k'ckQtkO:iږwmg{d>?>>|:~kZoh^ MoGKº&kh6~${Hc rW9Y(VRtUYҜi:Jr#fL3 VWqu،&; ' MJQ<^47ZyT=FGu _R[i]ޣrRYE\Nc$AI!HW۶4f!NI6ZKFSayNQVI+%vե_| ^ՆxwIg5ciVejN,Z]Qqo ;9Μ,Pn%tvi5`8&&W ^4gP*Ua JehJQ4|į xV~$G,o/m/u)Ŷgsj:V--"$Ox>|ePӦմ;]|UOLI$Kִ GO"M^#:1Qd%Uf('neVK5,2Y},+.8՞ Mae)¬ꫫ rIAAC/~.>k#>恦zM(jnZ}u7W$Q;fQTTtgNrt(7+ӳM]6Fϊb8$7z$^ֵ[y崺uHdKkEf@Z֡[QQBT\V:U"8 )FQ[Zũ+٘eSpܳJ4WakT^+ѕL>&:Ѝj)֥)A*B\ߌOx\<3iVO\-+I{{hIBu'B2(\9ɥ)7)Imz+abqiSj֚JTԪUV tNsSHڱ-6Pӵ [{ 쯬K[;w [$k{dxHݑI14$QD$)gGbwbTHM4ikT[pf(MIũg-]=-ri曧Z.ahj]御zu)qgZI5ݼmum,O ,R:24-ı3P J^IeʤqƊb&n-5$M4[9r(N5#7NT(4\Zz5s<4GPN5'\t6R_˻/NhwϋmZZ[:sq$x.2WIWM5eՕ M zPs^Պ#RTF39pm.hJ2WM+_KeYZĞ5+xNπg7l&#xJ:Ꚅ6iF[,妑 xҾ&k^<]jM@״k/<+=S->巚Lљ%hZt5InW/? Mj\oxW4^Lյf3Glk$.ⰳ"ӽ;&  SIOgǞw:H>u/^b]Z#>м?]>B-5j> uWMZÞ75_C@VL1]eIc󼍾gy|'mjg_k5?6xd#~m9ݥmf΃bѤQIhfK[KU sHPgx%{Y4oTbhbr\5ju_~YFVJ_f_Z?ƿ1ᇆ?ij>*x>{㏃V'ljfuxt乞5W^( |v#/G׬IyƟ-w:W9mUH:/_֕WBVSRTUZuq:ѧNZ*FJUb+F*Se'GB:YlB3ө 8.33x<&asLU-LB:] u<6/¬߃~"s/x⟅%h^9~|g>)0CSdO"𧇼3sKC sT_Zou3x/xŷ?f? m%<1v 7~ |5EGo_MY#JJsV:*`0OW\t^&g:'gTs,$#_&ɾÉ+SGS gYuE| ^IC ]|!/|W~/o$<Xea^xC^-u[_'߈4մ?@o_6ω>2υe {[>=xG Go`Ŀ~ֿsppԨ!:JG9./Ô?_ b+ e̢̢^]^q8`pU(a3/|[ |GG ؿj~ KmnV>>8Q}=9]-ht i3't]?O ?ƹ~u¿jO?k?L𶙥 o8#(~ھ 7$ XĻ QX໻M.ykc V?NNTshl(\iFUW fGhhNh3dX5LT<;0$:I*Uӌ2*cqU7Pe_M/w[56>$X~iKuW;pW~#xCxݴ_ 9=^hROO!~ȿqcែ>xzqƟuߊUo_Ixwf_KBMizT3Gb7O-HӫSICGT(:5<XSúibjK NIyWHXl."%f.T4}PJx:SԪSzu1y M/i)BR)3|j\Cu 8f V0Uu1x:9rʭ9U,\xƞ #Vl4񝗊o[l#w{K|U5hE|ib!-Σ5 x2l!Y|Os^mo>a`{-}FaL% <ʍFkB>5_ 'γG|^k뫩&_%G/W꼰6:*,M r~:.5pӡF"N'%u3Jp)e7֣V / Wt>(o!Lڃ<'i|OKNgot~]F5-'[_Z%QxĞ=ĭ6/|.s_io_|MXKY+|f঩q^jv7B;m:Nq4V{q0nk[A(0PNe:aVNR&96s|=I`81βP#FUapWa<58{p\- {F6(Ki?xv8w,q$r73Zgo"ZǡWu_4v|]jڟ OWՍG|'ÞR4ū@6x_o L9ZԕYۚJ)a'nE7:e(*cF2jJ6B )r(^NI+%Ė~׮-}J h .1jV#мQ{iizOKtBH_?a{(f ^DC~/ϥY|Q~/xSGocַV~ψ<=kZfgJ^ +#((((((((((((((((((((((( Zo?DGWh_-j_Pwz՗7c9}CY --l,⸼5Kh忹I߁",o9ំql"9/i!ݭon:o /?kO AGYAveuxiw<*7u'T47Y^itZRy,Il-o$xdF{kh.abcV@_PPEnMYKaX4\pڼY/aӭ4b;@ (Wƞ5\tKM[GRdkElK Ax7hx-bxIœ9FWJJ*Wm%դmW^9+SFч=ZӍ:p朣NIsNQ$g=,qxw-|Y7YHn~G?x?){\t{MwWm.=OWXɨNyJ UhN'(U Ə%ZnuBZv! UEVІ79rY WCa fXε8eօn+Zׯ|,G|K_YӵK \ԴOxO>67~|ah>2_-m,n|=Fm-.&Hn`y=**ҝR%x8׀Foqp<#/ž8E՗iL7]/NU9gr9~\.xpV|LpJؿoaV[bf*Fמ}&2Uq8XZ^ξ+|VW_? 떞/t-2_FO^!%x3Jw5Yh%u)=8iZ&tk(u?ji,z=X4EՍWN3:ppU!9MTMʝZ*2ʸ.:40ҽw^U<,+έi:Ӆ t+#󯋟 t mzy^sW.,uk 4mƣat-A?J(Eq%cEE'p9=hI҅,*TUcJ2MJylM%<]I`ap^.J^RQ'EJ9JiC;\ִ LjhkZqqM3KOu?k6Mq.͐$y?|R/írk'íw,Şs(:Λ ]Mša}R*:ӷxLӼ?h oڥ彼_h k6|F}:F_-u.EBǺMt*}jVw_kz\QAys[kGٗvQ2z)QR`+\'s}%ѝ\>QXRINQŪT:Ҥ}~u|/SF~<{ cbWhK^%Žgoo6jzQHl+Via^+s\=̝Q|D"áK_E<]Gk:FuC"l<;dyeokya5שWgkY#&ΰa',Fz4}˞XNЫ'kJM ( (((((((((((((((((((((:Duv g"֥n_k@E|Eɤ^O \4. Z>xƺ9 "נ<%nM2+kI5SMl׷p^Lڟ;xvib6h{l5ee{k:~jj3ɥ],@ǻ-ºW➔eh :# ?h|,?|A.gw(ZMF+H'#|?{x}KĖ_X\G 1h%p+&31y٤y>~/ͼ7Oty__h`P\-HmĶS_QWkP4賙lCִ>|9e *2%P]N4ѦJ5aRF\hTjSeR.Y)E)I5t|gZ|<> 4Ti{3*W_d9/⮫/ ɩH4F?-|e3z> 6]3ߎe_!į7>:?qO^!tay73qjP[u/psĸSeN!]Ib/8N^ڭ Y)du+gK)~%B  Y(VYkaU0&8p|jW l6| մ|:6D _'|x׌ qmC~&ĺvsBվF|Y7ƚ+Oid5)8|)aeY|e G>-x7x>kΡ?x \h9'?f}ƿ~,xGFj? o @?|%}zQg2Zcx{⟅~:~>37<]E#@^*G7wa+|55qgK nj^_0\RR%Buq7J*xxJU!kԏY%<E̥CrT2,+啳 ̰8^"fԲ8ؼ?RSY> м?~3~I- ׏|k[YP3Ɯ%) xGWTúPe)F|<)+yQ|?O BqyfM*?Rf8<*ZmT:X:ѣ'<eߋz_'>kxNj/~φ4/i'^~˺9|Au ~x|/$}zΜ]xMGSZ7OOU|;a/^վ%ke_x/ƫ˽#LXY-W=z[^N1c MONQN:>8С]Χy4<#3,ŹJ3:{j!W }pReyu*b[Ǫl> s/;?g|"Gog~#ň>xǾ_ͧCx7nV{˦ŪIi\Nṱ)Ua aAWFN*=:(9FM>叧jqW|AM+VQJ[-1lfkR<&exLVRTagR?*?x Ffψg‡T>-_ßōWOWQNt^>PԮ>yv̕ ЮBHFI8F F>MFy}N&WC0l8f7Z+| J4qXʳ i'ÿo/?f^4Y7ºFO߳aH{Ğ0_[^&j<}&=WK%"|9:xC~ x{M8_ǂ//9<0<=E[𮍧x[úE<ڥسZmK}r\_}Io>,i}eٱ|+X| :N+2uqe^n%k :Mxǹ%~ [9o֎U|,L`SQX,Æ1IFT#,Uҩh~!x4 +tρ~:Ѽe;i'Ao ž&L.4-7^uT ;l /_ |k3h?d š$>&|I[l}x͵DžWCÞ,֖V^+]vmť.t#G2'8̸JyupqL8lgx4C/q,)eGl'"b2zu\Dkk,E|/[hOͯh֣jZ^n<BĚ˧gzPӴTwθs~ V0l'lyÅ\%҆gG6Sdmd'˞)p!>xh~x_],<o<1k ZΟ_^J[X. ]7XΧ ]?W8?|1s kx~%RUThi/gJy(ҧryyy9IQ^hQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<^ÝK._I7AԦX֬4un}X ei%/s"6̂[K5eל7>5K m~.x^tkXՍ0Q}i\MlImZ(nno-.a/PW4VeK}NPId;eeTDH 0}A@VL) u ݘ[IQ#ynHJ=vQȲBWwSC^XcqkQ@p~ i_ <#ukOuK M[1ޫ5ߋWx?L0[i :i==oW3Cm5ӃR8I )J)ɤIlɝL46 E4'Uӄԍ(ʤ0c&QjB|&'PƟ| /~ |GjW_>)?Uּq_\Bf&t4~ҟ mYu?5fmy읒npJEUxj^X{HэXTNuEBJ1%/xxIףp,٧"/NX x\FN0bc"t*j<+=/x#OOڣ~?|wo{ƚVhִVM^>]pЈ:>6%ax?x?Gx4 X5G ت~%//mJ??x/~h''Rg|6-JU]A_x~7 .4B-fX?xg>x_  NWh?ِƥ=[o,s}RȒyhƥ^GV,GսՌ]W't_Q+ƌf6٪.qv 7y72u*2δa0*RxL~1C]^k?g)Gګvnw' ?׋~xe_Mn{!ֵKx_zM1ư~_-9m)~-s+qx;jZ<_?U9JW!pJti9*N}^e%DvÄ3i+UQ(fʫpٜ8E_eO!><=oqzcድ.˥[CIiVrZYK்$"oï }MMB]GO"=&&UŚڦڃD%ɍ5L%xJ*(<3*>ךJuVjڨ՛8qc<63voS&bn=Zxl6&ZNX~*4e8eؙGMʜ//|_xo_p<]|OO<+SilCĞ![Zmy37? .º%s-s}g,^˥^mԖmΧYMԍ:*ҔUөNJy*қv*BZ<7 jҥnhaj­EVi{ vװa½'<O>6Ѵ2x^9Y֋wkwXLzG>H]Nl෿xŚ_èxC{$t/ 6Kx[ ɨr=7Ivj2إݵ^Z%e/nc`O ΧDL2 T^9BjRn*)BSTU1FxUjҍ:ta*f7 4aN(sIRN*q)b߳<_jx;|-5+Kԯ)}ixޓf`^Qekq_!_|)nf5kٛ1MW:4vXkW~g.m4 jZdwZjQO|)S8r)[xKO)'=sZ~5Ogy-&Y@4[OA+[9SNӼQ{ҕ3@$)%~$xWo񽟀~0mO[b_^$|GZu ]oM Sd4}: WNySĸL:s^riR,ege-^w`9 r ;3ZgX vi u>xM_e_4?{Vפ}j-5}_PЮ<#^ɮC*bߌ|Y|^:5G^8}xL ĶZOT,K+MGQWʖ\α s '̸Cxe'x)0ḯG,sg OƦr)SG| ?~H~ iį |:aˣ\\~#дr{i,VZ[u{gG1Ԗ-(a u߉^:~h<' @kxJW_,մHA Wxa=Z2>3dK<| >ʞf|nWux6]˳apvcÕ+cTp92YSg96kZ~пmoRu Nϋ>o#CejgmCiC%ݖqs Vpx3~#xDUo _ g x ^6_j:g@ZzJAd`3\؟ |Qg}r3,^'/_׭cˡK ?b=l&kgIN|]AÝcAU~uKihs崖Ɖ'jN-oIux4RKNP}0^&ae 7_;[]T$4CMCy Wqs^$2l/i1g9[UX12a1nM:?gbiU&5o>VqZoEO?>2&[i%j 5fL:qa}&'Y<݌|M犼fx[T~0Mi|iRm?HMC]D].ͣKxJ,M7rkwkqcke:_+90bp8d\5kUTpغl>NxJ:^ڔc*|'( +((((((((((((((((( Zo?DGWh_-j_Pzź-#~/?1Wе/u|eCt1ePLM>Z=|Oͯ#_txdh7?|K|GR>ݥxsL5Y%ujP^^RB$.M14 Od_ςzm#΁ߊ1 cxrZӮ2|_bJUkcM״;-R\/=еO x+:jh6h ~&Hu3;çǍ"Im奻( ɆV|/A;߉r|94ωzï )=ON|?ĚΒi%x'|9ej^}#V^NJmR]/Nፏğ?'8e:4aLLr\FoY)ⰸ~!y% `4'^#q./+bT1Pu%[~ | !>cW'ƿ c| ~1|.~o5 |8N߅ZH~mk%|{Ŗ)m\x>!k0;mKR}sh{l%eʯ`^WN |oxK|M[ƍ_ů~7ᇈ>Cm> X-%kv-n"mooKGړyg?[;h,5|Y_ n<]zy?HxY~"ktk?Z<=Uysi6q bpRyI<إ,E:16J;IᒕyaX:T2L>.3~L\ O%C&SQb|GZ%IdNHy¿ Gok|)(_𯈼-}ŷ5tx!3]u~%xcOռ/p}=_~-> *nTe._ xPψ>7y=_|}ῇ~'o|Koڷ׶omJ4I*:u+IV3(0Kܵ*ЩV?kF9QTRxBqhzs7s2&31,,iPyW˰|IK1x̿᾽pk6Z޹(0GM.]^m(F˗ EJiq1J8 tjThX9RjVʇ%?cC2r|%oe43|V[S)ikqag< 9 \,:R>/~?i5xF}Hky;ÿXмs lx Gö>%xľ?`OmxK8'~͖?> XY'n$~&amnMGxs:WX4ja&1=SSZq#Wp} Vud<ގ.sL7hb)p3 K+<3hfV73eFSb'Qadg~ʖ_ .~^9{?x_ivϋ|>|b-y"ӵ'fu>lY[O.i~'ne fm+w]x{|ӵ NG.zTZ&XcC}15:Niq\ܙfNӬlŵQt}C|>3 M>)x /ᮏj{SƟcQOxL'ڤW׿ۿk񆛤xmWLrwm+۲I%w$KCiԩV\g:j1r9r*4v#E^ьTUH{+=FO--/+;; KiHn-!wx&Gh  xwѠ>!躆M?N۱|;{ZC\m[kXgUV\;>64׫ aq8l](JG F Ys_џJ0~q7CK_Ww|u^'6K {/3>oh-R[~_^ZZfz]Oo?ÏxNM儛= ğ:N>\1_\j@ԧmkK>J)h[_ o/>0T^}w7 MojO&^&]h'?D|V|AԦx'Gu((1b8+2\YSzy7 y_)gf>: Ve->;l1`P)c%< Zi ~$6K|'fv> +[IKU6^%]̐kFyo ֩ D5/o-Sk ]0>1am#'>k?]|(5?jw| 0xK&:ƭ>OkOpgqfolLj8OB b$g\OԧC3ʎC QR3 ό~h=K× MxBCP)zlRҭng{g.\zGs◀uz➎6!'O sFյ|(|GU=^6mZf/FTu[yxK.=e5K|/*1Ħq-,=s^"m_% c192eK?:Kf_t_|Bٓ[~ |?[ke{k3/îx{R֠0hFV2Ҿ#xw unv|-WĿ t)3hzmη#J[~# SӬKdžj,|9LXWMÈ+VYSC+gp>(T̟Č>e9W 9"aqYml-b'i<2>~˟4ךڂ/ூ+O[/߇./-_³>:u}GB _^KugoG/>&tO潦 xƾ=޹+= e{i:uAemw'pw> Ͳ",#+2x?*t|sfcKy,_8;*O᥋O8 JP|OQBM3 |I6 ecχ>#hWi~4ֵSJ]4hΕM'+Zo~+%+x#>~*xr<7jlpo _Pq[BHgl]7O8*p=ly>Q i9 4xop c\s?崸W4,3x PV|Gw?{|y_uI~o>fxx ]K\>[\=Υ^ZEk|oZ}g>|%e j$]ᆵϊ;>^+ּt%H|) C4kvQ?=,,)gZQeFoW9 OJ81|aG4jpⷐg&Z7>? φ?x _m>T}e_<7N]{&Ӿ4k>)yk~(ּei0_E 28"sÙ~+U3G Gu8,Z\4̻/&g•2\71ӯ -g? ~+j?cO_Pz/_xinW>[0|%x'C+k?V%-&o%woM5:p e7ƞ1YX- Ft?Tgia:&zgIJҢ x[RПQ.?8ʣ>=aBȸ*8"G_ 8rll1]~C ՞ ø$kJѫξ$^>S8Xy=oUjdPψ|e4q.c(|D^|1ѴY3'ޓɧx" t!?_lKWtf z+-h5xx^WYk^?l5>):oS'4?xğ ׾x!⟉!{qrŖ4_2Uo_M&5_ >;Om GC_|Qҵ_k-sV|Ě'u=}k|Svkվ+ӂ:#)%xx8ʎk# ̫p|>ZU;WW־3q?}3M ó|YXOͷu7tU=v}&?ʟt?6~Ԛ/Fk9L|O;˽*߶'HеSVVOhXۇxǀ~\cyq+xK!p3lź_}e≯batBxZL 1xjucW ^Sۃz Ȼ5ãbV[߷}SҴ-B-4 k;tn|N5+ᮛ:#^Gy} 5ˉb85V8P^ΌgRJNJ)M\PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(~'Tww[;O'_xúF[Z_<3ci~Qn.5{B(m23}W>%> ӯAkz]Xu/|D,“<6~Q_FmbFW,%d؎i@<ƿ5i 9 N?v71XhkɬK{uѴ$sB4ٯ.4l洷MTຒ$yԧ濴Boy.a%A&{;fs ]( ķMZUXE~fWC9;5ԥaY%0;h 4rZtP^ko_ w/Qw PhixÞ Qk LD4ѯL9>,͘ tkV7.UR nn^y(Zu}:8ecaҭ=ZOg~E.nNx[7O՗1sCMXO7F#:ռk_wJK}SoS5ۻ?u>L t_A,%e< Y[*|[Rh~ޞX$ga rQznW7?_he+2e3S=iեaⰿXi!~%ź%xOw⻈=+Im Qk[K["YV&:Ĭ7XFSBj18IVM4 sG]~0l#[),^o !d}:pasZَ"HfJ1VLoY?}WBoWǝߍ-[x@m?OJtxV:l6.%m;j׍semcēc7SxcƆxKcx}Q4ReJ?mm}jv6-)UNJT/ gP:PVeJZmNvohr\sK`*b3|,}s Vaq*,>*X5Hbq 85OU>*8 u\?A Z5x摡x[C=P5 xټ3⏇~߅Dfi3u{3S..`~_|EFm/>ցV? >(xžϊ5 AxQP%FsWrJjaX`ji5l\+4iWI(b^FѤX|eH`1Xs' OXA>"|Wе?T^I>:Kៃo|A M 4{#C_IM8>|O~:KW>>%|+xWH%6Yߊ>|4>(xmWÞ!u;Ro$oMa\0*xgSrb=yhT8Q }QFJ9c) N:? mo,E)RqTxlYY'G ]ϰ'`J*xV#3:V{*Mf?>x6ƞ?.O\vwr4zx! ^]c:Í Z.C o>\#|V2i~GG躭ݖf{ SOJUƜiԦם:˖N.xQVH*C = F7WbpuX Fe&FOe1|3-'Ğ.tKy(mt x+S,oWץ]o'ֻ{$MlMgo ֿax@kaa WE滷ѵ භN-[OSC<I֎.to08PtSJz_~VV{ZND(F9W8ԃ~nsVxt0ОK2xuˌГAbb^,̪)bhNxfOi:޿xY}w{j? .hZ߃bM7N^k㫏 ᾤA!W'twXW7>oe{s]Ե=>k +[+k "upMA$کJ\nI.h{jqoiTu-:J3?a L&*?ij<w17mmvsj-o57 _> ?Em xLJාBь-ྍxScI82eY3 Tø +x_i %xk1l"TS>3 7mG:!74˿?~aZ5yψ|;S57LPJ?gOAg|/>Ҡ¿ 5֥m] D_ k~0ƥ4V~ dpSZdˏxYS7c9~;ɰl0?昌4,'f9{r⾩^i.†u%NGe<[iMzLť4<9/׵?x]u.[oiW 麅WA@G^ķ>񇂇<Kς~#hX*{oῈ>Wm|0[u5[W[{+ "f9sX|'0ey-acRl-+=pK*X[gRϱYhu~*|S#&4]x֞'mif\kC xL*Q3\ׇb"'/b{Nufy S쮎/5ͱt2|#2s_?WT} u;-޴WQ@q>iፖ|5~\] vZωӬU,45{W^G67n%f/8lZ*٦[CUrW]WR8|eLX`RXYb+ʃrڊ4<5iҖQ]3Cl=o}BVկV{awjp"^wW/-IJ>a"pPWƭHb0S׫AIR[ OB)ц+rkR z+ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@/ßY7tߋ[ĚϋdHްJV?2MW_PPE utYr̗ǟYKDžu|S#Zt2=R/uw/jg>yz|ؼ5i,%Z刧]*.G smάG%ż1!fx?id"r-?졦Emw:ޏHxI[X5hF)PW ZXJtObTq15l$bs3*rjXܮYq x9.1jx 5>bxԝ 5٢o gEii5>!Y|BqK j>6Scq=&QW|8k5 Rbχ|\k7<ƺ'o5ë=O at_5 >2\[ǁ-tK-2j2jXoWSNxiOUp V""*RѕZ2۔-qW '̳LfpUJ;(akifmK 2̾Y*TZТO5ZćW|w'}*[AU Ξ<}g=OLݯxE]ឣ ÷|5#$YY_h-W>7|ׄ| |)>&/ڦk?/>Wmk(յ_| hz WޠQX?>%IbeT)J0A61s%qX{FRҵfQYR4C5qpUia 58~ǹ8v?~|oe6.}7|S_4Q x7GAψ@MQ95DMN+ŸǍS }/x__k>4_Oo_^𞋠ܿb7N&T牭 cibhBIV?h5煪'AƔ SWMҌps,=~!^02`G֡ft1sfz\F6xYh߬_3ō'gG'_wxs⟇4Ҽwj5xCE}I\AmJym`?>#P>.w>|)񧊾$hx.zj~=wï淯O)bѬ amx4)8,F:O*aV*jjo *Wʜ֧NsJ7K!px9E|# 5|n"dձx}:1*j8L&y11ƭ\fX?g<_ٛ??ѵo?5Odt߆1h:Ghέ];Ci[ºƅ>,w'~o7v/X~xB'0M\šx.^]3e,:8:hC٥b*5YGBta`,=H9rիJ0柫[F;ʣh mM˔a%crF ЩQ1}3En|U?~< ;/O߅Z_\j @ߊ|Gg =(ъê_jOco'|ETƻ__js?'x3Z>)+h^Z6'/ݝ6A{NgK>)8 Ἣ/K1Wϊ#C$/įe-,?lokk{x.? Mho,O3FZ%'㟌70D|&? tχ'oxNk_/OU-.kqPZ_K?+JfcjJ9] 3eyfaϲ2x5yߥƿWmbo I~ xG^0(xN-uoh^}?]MĘM{o!gO*~0;Dg4$M 3uo + -36-SGnA_7O6Tμ3=?x 8#q.{W:r>'M Y p~Q_PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/+ړ$:u[xg;El%]KQקMU#E`2K&s"s Z9:&s{xψ iFxk¶:|x:;W#f"FkYZi>G/Mrš;L'M+\G ޹Ϥi:N#3kr}m5 tƟ 5_6>g? xV:?ύM> [Wvm{5 iא Դonv~mxszm嗇4tn+qq[I446Ekg 4uPX@|ID ML'Iei$lR4-$WBmbtKhnwo D/,x.oDҴ0{TԚh_ J^k*xCHH?56)wOᯍ~~Ǻ;M7~ze-cg'oxYɼ#nb|F𵱰Э|UOSxi|B9rji+_5j-5nn \Np(((((((((((((((((((((((((((((:Duv g"֥n_k@Ex7wWW5CoV|o~MN!ht~w=PZTNӘ-k:gwOޭYo:ꚭ펚~{kg n4W?>o뺏xFޓg-2CRC[xᗉ^ZmOlJ5W7t >(M Z?<5">>dד\m,_5/Ĉ^!G&I+`)3 t,k bEU)\}ՁxUxÿf?jZ?>,F6tWu-/H|mx'ڵ? ~f;]KMi5׈!UKgk:l|iw-gV⏄ U{} /igYxQ[i~'-yZǎ]3IfSBft2bykgro4Vy[)b1Uy/?SmK.࿃|)G !Z>|e|8#fuG]#ǚFxᏀo<.zk6{iw}kWٻS~_:L)X r+#Tω~Yڽ1k\ۭ_kڭ.JG_W_(B+,=hI(cjTxNŒTf ϣRȱQ23ϱi2'(ʱjЧ!eh]~!|&? σ:UgL|&<>h5'<~tb?6ּO k^ tM3ڻ6?h:+?x[Śo/4ۭ7SNӼEmo1A״]A"*`hMcJ z)J89ӆ"BcZJp5(I9c# _a\&quZ!հ8fl)p' rՏu2e9X+­ ӝ)J*~)]|D'%U xCh5,&IHo'χ~|^մ[^ok7ءK>|d<;#Ѽe'|5|}>?x7N 4-;-_/t}KR|y=qB:u~YJe* ^ʋVJ+*VYUb(Փn0ƏM^ U£Q*,N0b֋x~|#0G Veߵ s|_/ ୧ÏA| b?LZ}'¾:^#:|?7xgQ'-N''${ɬ<;95xe|-4N&IZ^95)[ :'Ÿ|z)W^*þ"^;־+Te:'VBӠkj"QW#cgFiTiQJ58,K.+ӝ:hFh8A|1fgۉq9~"0c/,hfx\F-[N)bK1:ic}G7x?~x<Gо$6`߫~5u5|co[MվOxKT΋ij 84OCUԴU=&ңO)1,c8Se T,YBa&婗Z؈cG[SRsL.&uq49U_%J8ab? ko~>=|okᏃw< x'K#uOxLu=GöW5FM~ݴZVZgx~(߳⯄~|D3'4+ -{C̺ƅCl瀼9m"ĺu|blAu6iF^ N3BXgb}i 8<Iթ[{PNpm[1 Qz<&;MpOo_-|ptO3x{5(o_o}ψ;'!B֞>XmڮVT0u]GKNJq)XN2h7%$EF F/Ce+W.q<+3啞_R"mqea:8Mj1QpKRX/h_~(4_?(N|9b,<6j׿Oxc>~뿉kksz6Whx᷄+u|&au+,t{+ !IҫB/ / B֎12ha%$ܨAԜq/G$:1|e$uS%2T*ьcb<(d5+Fr2ףbѣBJ|iqD4_Ğ⫦1=b?`0ɮMm5Vѭm c¢c-< n\?ę(Rz4U%SO+K߃.ikgq4wn|;{561N{ ZY>y}]E%ŵ]Oe,Kwl6I"][ݛOn%n.DQ=SIҒM7{I'qϖIf>%'//ڳ"xK]cr7 _ UA_c4oi>%hN:M:|_mG K;FGx<1fDb2=\Ml;1R*ӫWF<-zUpp9:~Jd4VQ%'e((fi5&Q_"nPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<_Ve^5=;Yh<'ji֋u}'ɔZIcmsXu8oe5< ix\urI5[N.Ziz>e.c ŌzU[^pq0-{:o j<kzn.sͧϦj:m%ƑowzP.n乚+{n (^C1H] 5-{,cbm.[aK֢;k~'.,5km>ú<;?oV]]/Yɩ6o$s2͇Txo/>5񅗊#Xou/-|o cOKu G^aዯjz&6m?@}Zѵ WFou~ x঱[ǿ>"?hN#_Z_k{mdW<']/[G]~g=Ɩ)%qpb&"jVP^*UE:nN.^U9:NS>C:,=<}N0yu[00 *g2S1歉uO0o'Mo{P[iz-Űm%Vi3AiSa0NN~Wu_ ݶ/G_5MGO ~ GX/5KOXx;W@>xQT{P/,. u!g;Wt=oĿ@_ oh/ k ]þ2֯NJ,Q#hqg=& H>]^ >Gß/jl. Vïm[Zs{>|Ui*4p:%FaJJuVf%A⽚tRNocO.,E&7-fpٴ#]˰\1X8ʹe g,<' Wt%?\iG\?񾚚Zàr:um}+Sj2\_NO, ~bM[u>.7[Qoo=:xFWt=&?"MK R75YmoWYG81thJP J59j64e/rԥINGq4R,Y^pxԱOYCp)p)u֪X(WƷ|T./^!>ƿ $0NӮԼ!M m}oT_a/ŝ Io Ưÿ>?~%W5+QG쳩"O /3D|F%^'OW޿_k~ |tnzRÚBȒ|I~"^#iV~.< Wo ixkojWz.9teR&VtJ>ҴkSԕ'JUcIU&"T)Ud\hJ'8zk^xv' d8 b9(acՎ]YOWK<~s3j~9c+c*TK-ЯWuzWHO|0[<8<#w7t/Zo%_^%ĺ_94vPr]xGcTO SG?kP|Ct _oM>|/=W# L{k(=K[.tUTp7܊&RU=ˑ8`XLL;r|V%aLD"x|QV|4 +⯎%[C[x sO x%[m?xS@ޏai|>.pYafJ1~|JF)1:^Xae*=L0<ƖcO# F-ḇ Wa1X rJԩ҆kxM:gPy×lW7)oWOŰZi'Zl/[ֹ sV;߇eڪ?<,ER;f JҮbpQQTmG||ة]Շ-*|[ūNTg\7FcFJTigzyծs]ch:X,To/<>aqt>~ mwZυmuh׋ot Ki^>5ΧKKYotWƉ~*Uy4h\uj8JIYϕrI^ܪ1TSQMkf+7żv5xӥNhEU*TU3TcNtN2(7Qs<9j%ωgmEZGi[o 7#kMk=όnYǺovI714jC,Ium}٤FEE<t$"-dR&9'fJI4ggNgfiy¿ox!ƏVz> xA?~(qk&Ld>/t9=> MCַogMcIۿ9m43Eb"_pԨϯ<e: x0W_R3*ժ?hgN6sF9I+H:$VKCh((((((((((((((((((((((:Duv g"֥n_k@E| ״_k9x;N_jz|ZU]lz>hڊi_KE<=v,C>6zψG.<+wOha[-Y.VQ4w6+*-̉=+&2XߤF3ʼO\>wo?g^)xkKeNWK WK o4?xkJt 6UM?Vԥ59eK(¥9*Q)Eԣ&ѦM=ά j8|n"kУVB#V:ʜڄ8 &i3/?u;[Ş Nj<]a_"]Nkxַ>3i_-ִOZA]nel]f2y|QJ_>8_Os'Xt C^Xֿik[F5z_J*JTᅩ.j8\1p:qNB\QNpMJ?ysL+qX, xp>aq=*YԲ:r]եNXZrPK3ÿV> x/_Cß%?|uOx%?i=3Ŀ5xW"\cLM&_~_~:~?;{ gχGOw|9i麮}==A|g?7~1x3FռEiղ BL*VJJ\vXiP=G<qu9"zt!5:ӥMŸSS+g,ę% z^KC,NASPc+4e1a.>5P2x]|Ig>~П|EŸڧ$vu=ڤ:Ro!kMgz|Aa4v62nΕ*%*jHG0U' ?cWF2'RtJ\`pynsNף@־VмUDAe&3n-Inuǚ=iSƿ; \xT:hST|mYt%Kkh(ִiS (|z8"2ʅ| rt <435:9ifUQ<:UZj_>z✿)|Egg >g/Fk;W_GM|_su{ml!ɨqGyP Oii|Ik/|-WoxokZݵ=[u6 8 mu-r{ pSn:U1h҄ hҥK~*XB;Uʇa;8eΦ7 yM,pz<†E:uU`lMu1_ڸ ӡT֣Wo|q^ 'cZ =#M57ψ 4ME<Gռ5$=Gk1E./gtG~:x=ox[mkis_Ɵ>+| B=BӼ=}SچyjjcZ iЏ%}2uo~%ow| nU4_j#_$|-niRG47ͮ>0X^h'W|/ |ٶo~ӼQh^[T)Ok^!?F߅PxQ¶Z]k>CZOibe_ IS 'RtXTQ'GVXYTJTk/-X::=պN,yp8,- >ƽОYM_ ,pk?hZ1|(?e"D>6t߇: _sd?ckw4as{Aߌ(|/[G_A-s^XWm *_=?|-C=xw>|- _x#ľ{ GGO x?R4uiuC]^oxeb15]\cF2J)ƕ:=FugOxThӅJzєjKY6I癜)Sm bJ e_X qN6p0\>'ԲԱټ _bo |B? |3;oǖ^O 7<}g-+f5b2n!_*9e>&K|ooV>^ /xi_cKړ;MJ<xvtHtM|p'&_ޗHosޓH etpR L^T5*q5ƳTCEyiu2/Z9G2QOO 3oJ9O.eK:)0iS(El{S?_O _+ɴoľU?^ [|Gam:\ 4MCImr; }2MRί=żݭ>;/_=*[4]xRXy_|Enwĝ2vޖ kL&xF5XQM8QTU9ՕJnUR3pԦ87/h,|y4KCbrzJ<|F:3 S :bh $"(Mgz׃OWV17h᭗uOAx_ M=SP?^7+'_]j%SI>`Ԟ]+߁o?_~_x~5wS?7E-Y?|AcCk6ę>GD헌AUΙ:~ Af՚['0h+? %h他8%r+ e<AK%a9>[g+%(fO5j(q>d?<[^5xQoKumCڎ*E|g>(j i7Hh5Wڅowk%m\x_? Att ?|S4{)|}ڻ⦍o;tm zV6,mmOU w"\-.ڶ:|&pv/.p<]B{_>yMcq\#G0lq8z3f|#Qρ|A}|:ߍt"ixf_ҟt}7VmKRϊ􉎣|5j=G'#"ž"o^g!x-5/I׵o? Ik熯cke4Jk-[ 8r\Qf9728f3, xe|djg೜ ~.9_.X/dY^2|5ck=TC†]~3,,fF+.ɱ9U,4Ù}MZĿkσ< xFu x^/o^6ޕ__» _x+H5~Lx+@Jϡ6>te[+k;Wg W(q)Y^O./^}֧fYx(xNS\7S Yx/lǃ~ :b<)g|3ំ7O~9\֓'~7㟋~$<7?to\_XuJL⧋m7)׉][o jПђ~5o5_deL*ʸ9pUl#!qxwļMgN'`$hK+`rU< pjxL`xSw#/!:WWۨo- 8վë./Hm$N\\C2~ YQ2ڙ>YK,N XLs,UH'8֪x% תVꕽ*ME|Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh? |INbk}.+K} ~:umo.w4 >Lm2/?O{i^Gmq)s=ׂcO jֹYye\^ꚍΩ&euD[Ǝ$y1e~<|EcONmu_Ş տﴛS惨_rC77:tjmJZVvY!a5R8Tdcvf%}A@V%I5e 4?gӚw `mCVh'Ny#m.6&S<)W xyd__E&Ӯ4__/xYЮ/n#^h7bN{kib< 3%{ xDxo0VhG 3,bY1U0e /nA0?Y_R<]#g%\ڃjcs&M$L5{Ŷ A$jXDܩ- gJ>ʚQhZ߹ *GUnRէrW҄)SxOa<$iң}[ˇ'Vn~;+6Z=i_|5y;Z|LE̗Zw^K.Z7鿳cP{9{^&~/mc#|YIGΥߊ~5|COpvگ5 [P6]G,m,MjSe7F)B3tK %Hu/87 {Eec.ؼ.>5%ZbgBG,&CKjXV+XW$jIj hfÖZǻod; ]źuS?gt.V#+ksI4KZ40.tnxʴ3Jѩ,6G*MFF~”煡SœӒߌ1f1e LfB|&bL ѯNx4q?LE|.ż(⣀Տs|&u\Dּ+a7ş i~myi)΍gXi=ws6V~$|nj`//|🂵:7kLJ5YugĿx?X [m>)񭾇SKDկ! ciEayymqn&FjJQ0>IpVOFk{:nZ(oBTl\XiUʩХt+N \*ҡR,{e&Xz./dž-x/Z}xFy,k;Wxx|xn[ Ϗ|'-6Ws|B-wsk+436bBO)N TFэ<9*|M?)ڇVLY/O/o'M#^+a}}CQAΗk-BQGӬi]TtTV*8<. rӧB*T^N5NZwq3_ZuI84apflVfX|,-<W3B!Wj%׵ Mn-$? uk^3oƩkexcSuV%i#?h/Z֮Dgx7i ]k4~#RӠOF Nxw:aTQ΄QkٻFX*TRSR|>"pn+X'_*|]\&ⰵu29m|~^r0aZ5F^[kĚ/*$cyxW\ӕ,&u{'Lڬ6KO؊[lw|;x"iOn[_u52p|ZMWxC:뺎 .H\6>T0gR3d)Sq AW('dU[,s*>()xU,\+ʭ\E\? | ^o8T Kַ|U<|9ԗoF~:q>qcsnF[Vܺf5t,$᳷{x!Y?G k:Bz|J+$7_㉼+yi4oDX$(sb{DF ha0xR|TcJ8~gO`o}qb?,Z|aR[d9M*Rϥe:yS?{,9f /JHw}/^)ִo_T>A⮍x#[;}W~ >'wï_ASct6NQ`b-~˿~x+O«O5▩x^ ^}oM|b ]<+w ixfIuMCOSqu#Z2.Z* h>J1<1OcXBNzx>(֯Ya]:Y.I,#X|K՞7C|n"__|/O3|B։KikOx@ ɦ'ƗkKIJI[{ #<%__o<-CǶ64O~|?V=? V[:.hQ}4+(H5oS1#SةaNXEUFNoa)%RJTZO|\C fqK  Uo!24𼵨K ^TyUj1NYS1n8m\N)~3_H=bO{ #iSťV־ev]nCu?<૟-^O_ kQrOKeQL~VQ?6q5ʮ7ZrJrqjӍMҕN!(J\1NSɺ;ƽLF+NU*¥9*8,l%LeO PuVJ(J"leG,eZ/i>V:|oOYMҍt֙]m¾ %4q꺥!EE<A5I5RA<2(xT1r$Fdu# Je'g'tI~~'Cx4+7V/O<[Aew|/ďx_ tۻh,.>~,KQ'#>>7@]~D[^㏈~4< msiW3<+7GOhYv׈nYxg.8cxx%l).2%aY:42|XN#(ȪAg:9wfo |]?)k{aG⿋_>!xw~a >'w:,!h>x$mxwqEO:}C`)NU}/dX|O֫[[ęFxy[׫g3&| ίOL<9Tx6>'u~5T7?KLn"POuHumyuVEqT|5>%/ |cۻCīڧ fQ~,q%݆eeh7#‹7t+=7ïǞg*>u^> wWw|CUՠmW4_Wici]_Bshb8Kr 3ڹVSB ˓e\!(Q1X̗17qX Ey5mZڟŷCk )xi;v:%u?Kco֟MRNc_ ~J@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhh Z|Mw;'j-_56!}_QIFswq<_[  O]w6%!^i7V."M ZkO5}mᗎ_ߴIo5;E`n7MizI*%wNp[]JIlgu`qRpǞX\EDa*5#Q.g%w_V>h+||q?t_ h~!FwgE7axI״^ZY6r/,ڭ[v:~qzǟi8>|#Om_G)\iy_kKF:^/oVOšGV?c^u`֞ +FNnJ0bFO3r]8#0p3ن#'f4S]HQb(R*iq +BF'RO8d־~/Xx_pѼgo/m;MφAjZ:炼 7ú*x |Igς|w<+]߱Oi0nu 6߳wa94?l"K^\Y] ھ8j A`piJRt<6 7 Ewƍ㇫TZMcK%# vWkNV 8s1NT3LO,uqԲiG)g O j*g gRW~Ҿ=CFc-?I~ʾ/7ljzO㺛Q~to aXcVOm%,t^~!xn=W:&^#oy)ql;Sq,5OC1/Pu!KĪ\jVPQܛ|xOp2|Rx 7U],~VWG *G <}ckJy֜iď   g_~_FmX4|GIK+m?⯀(x o]3R\^gsp-E~d{ xA{|J~^|AW4mV1[;{C> }cQ ;K1#Lw4#7h$Юy0J1:JVQru*5(*kMƕHRh(>IO1|IU9,FeJ3r#x,$`40S1Q.)ҥG?\}wھksci-׾!!8*(aʶ# ㄌOk ua?CR\ؼL*èh|>I³Cr5|3ɪSȩUUx^x>]kQ<]3qPaEúsK.KPWW|;ĝ SyѼ}y_xG2\>:-n,ui5KuAqjRRƎ rЮ0>U0Ҟ[RQxJu,JU(u5- N8n_ÙVVVUC9⊸xNU^Pb:sc Jib~֥_o~? cW  R|m3Y wS|/E֏}IeNEGwӼQ|m,ug~С⿋(;;]֍CHz6Y_2Fya^N5*SUF%ZuNun59wf8"ˣ,fi-b'Gh5kc1]<ҫ18Œ0-uW;x7>bѮg^_-GxVTb] :81ԪO~Ɲ'߁~/w{msDŽ>$xO3O"?}-rV'ojAuo|K-gNmnBE5_|I4 .x3To+o>5VC5Ti~7a}*×qTfK<<_f?j|p_ֵ߲cAŞxVᗋ| gr۲MXƢxzKoOqi{qqtMGO^Pt^xɺXU`hF=hdUG;kFeK_Y )f>δlDCB epmS(7>$x7q Gk?w쭪h7to ^:MJ#{E+wfg&5mtfo~9񧈼 V-?|cn?'t_?1֝M;[,>3ij~1JkOUah*΄aiQO:tO(XX<:Iש Z%|kh3o_¿ "^]8u}I >&}v{+~bO{{ ~2Ms3U}k="ǚ?Z7-j^7⏀>/gC߅ҋ{[CKtVXC JJ2Q*Oҍ Uj)ʗ#G$\F2sJ<9RI!Y}uNN'B4rµE| < /T> j u]i6w ޣ$kGkVˌ0+U𐚭8'WT*P:}pVFUV3119 v*5a cɩ`0tkK6.1|cgbဣSxXe?H/Z78j4|msq/ :DžE[ |!]'š5[{#W#jlagٷK J#[|"cE:cy?uψϘƦ=p[MKΞ-6.*J<=F.'&UrUMN)|>Zq~Kʲe< rq(ͳό&ja#_*1V,- >( κWf}r.ÿdF=ƿqk pھ_|@6bt:\->| Ma~|8?/<3eFxWtMRo:]xZ 63[:⻟tRAPkYnI/pd ;)jeANA!N:W^ctqiSb?iIGU""8 eu`U~E?Ϯx+`_G|w^/"Wk{^xsP{bs ]? -㲜1ql>:CGG%Ⲯ XlF0֧`C;eR*>>>'?gO6|4][?h=f6s|%xj#$:C9M41\E-Q3C2,MRH$ȌUԕ`A"Xخ1kWb b2~mU./⼖+ Z(PMS|%QF4i[`?/_fmiZ?|+=^,>&\:|9j=2¶\^Oo >{ o$|7O߳_X%P?h_ïzw__B.]S>(G׿x#V[MIW=^*`upUx<\ )u^fhCYr/i̽$X((((((((((((((((((:Duv g"֥n_k@Ey %zEO |:a-'AN8=nh`M%q1Yٰ(cHtE j fÿYiMx:^ׅte#2XevaHAb0 N:č[ō^;Z-aTx3ҢG=#ƕ0hY\A>Os$sC4i,3D$R"HBQt!ԕe!A + (aG=?t_#B_I??ZuBݜz'At"kQյNEoubIҬΣZXY51;Iɨ9JM(&m$KV˧NjJթ8ӧNe:'6BNSҌbmliߵuρW V fM|(|kewhoHkYg@)zqjzVdt?z_Ï6=Z/ 8q}hm!LJZ|~R+dĺi}AR/B{:X5MO/XAA E^qQmQXyF'vgOƸ.#p+ Ҷiͨps0u1cFR[Ҕ&ZrR߰O\{ n!C%}bՓ+;M`6iC(W!59;O-WO c9{H {W| ]'.mmO=BK<1:uRa uhJQI>ZRK yX|:af9c3ڐ0jkEŦ{-g0)[ct&1܉O?_ k_3YY_A~_ uOVu[MSSI-BactMե:գ,\e:ׯ:RI7 Nx7۬mh~-\G˫gkblĕa9at'TR:>p79_gυk*_ۯ(ƿ.~x*kk]"jPŨ"^ [._ >|0?gRz~ w5MF6[ω_ O~[mJBĺ=cR&@cʜXڔjbB*|G<$jN1*u*Fj2R/E!&+;,癅 fYQ\M7՝*ngS SBU~οw~ Ǟ ^"mq<3$kxOH]|X;<&t]%tkŞ-5MGUwu? g_ _ <7}o[IgAԴB_m֛g^mWN顂N,mu(ṵdu؜Ejή*0ZVsJ*d|RI^RRcnT.$3l~/x118`^6#eƚ\ُ(֫ZXx1xź tMJ@n>k\yz&#Im=BO;w_'y/>ڎ5;ׄ<1;Ciï^xsDt{j-SOԣ'{俲YŴ2'?RӌJs*E9QJPNTJM^~I_sl׳<-:05~ rv*֡ʦ큩8aw]~E㟇%о;_nj> /oO xt9W.[ -[8?j|{B,^g?; | էc_ï=̺&mt]|xnHmZO2>s6Z̫J406[f41  ` e^q^ PR*؜v]Bg_N"f.O3JDg1t5O, +G ,e5J%uQP_ |9x_>x[ScεQ_5j6oM+-j'vwL|Bêya<|a/?7?!X5#oW4 ?MI֡"ԬocI%Gw؞oS87[.8{7ɲ!ܯ8k28\#m 0¤SX7o[[W5̪q9|eLv*xٖUeC0WZ:V\*VH|9?f/woGo9Awl-;kXgel㾽 m^+bKˤn%sx%CKo^/|wx_<9+t wTGtxo G#=QRo,5-̰OM0?<}xs"4*-X֯C𗅵?M֟=KVԵ4h^]_j閲_42g#?}O<kx' 7h:6wvQ c,M<8*.˳lV"4Y7&X41WⲪxSVl 1GQR&mOQ EntPv-w9`_?|tO/࿃.lyꚎt ilu9|shTlհ{Ynݴ|GpaCC et1غ8\4UᄍHP<05|B9f8'u=tgZOí[VҖ.LwG(Vimi0HâoO_Ʋ|=/|J s ;ط..'M'7%L~:ʶ7VU8וLEiʴh*JۨI)SSmAf&jkEfPSkc3|WO8R"sCRwR8i3(<+{k z7htW~ЯMKBf4Ӵ]+MYqcj"ޮiJR4+&3nɷ&۲rݳƩZgVJ Q9M2:ҌyRVY%dT97{ _ xCuxQ19l4c?^i!׎izQ5y/5&vGTl+;;Q4B+;; KYH.mn`ḷ)wDdbϿ c'Wot9)o+#/׼##U}.{=ͥv ,UK<5ücYu 8n+2^!򬗉x׆9VCP N&ifT14G^0UZA:_%&4O wGּkyiWM3O<[Xih&--aׯ,[m.U{m: ]-%|b\1=ϋ/[RUO^$&^GA/}*MfIQkGw2f'_Ŵ)E p.2gyr ÐO8 :T1N01E ~x3¯<{x/ЖK.exYI$8$OxKš&?h/ͦx_4]6ZMƏbf?[Khɴ5Oe{[KVDc,NJx8cqy繦+2r19ac?+**egNU*\f_jTAwIMGҴ]:[KPI4)/WX{[8a5]NQԮZ35q˰E`h,<-o>Cca CoKs?c^㎟m*w| ݋}M פzFQMVGԼQQHt&LѭS(((((((((((((((((((:Duv g"֥n_k@E|RH'"G>_ CYYkĸ|Qh8s _3^+iE<;k ,^[/0xoH|i|9x߈2'|oxcQ1uϥA>~:/]xT/[O _qˠ&jVrǦ O <13-iƋ+kL7Y㇃n<7x>վ$7kbimk xzXQxE t(JtiN:WQiUy{^kK区rq,5px\ eLFp/ʱeL]f1ah8GBYeQʰu+Q+}S2?/Aq~^-ogƞ4Kx5wZw{>Ea/a^|tU"Ok'OaZD4k ԼI :}mK7!jw:ehVYJ3WaOOR10hBXYSJP#?zt<ԫ`xg;3LpKJxTx3"1[%<7,pIaS p_lR?E|'=凌G~-O:.5 m_ZCa)b-o'Ubk"tMsᧃu [_i?k-ZIBOO+ehwIA+7ԛ9NV{^$oeSWTӒW,TRJRQKY3ct>z|9x_X{tr}:Iwk{jO),$PR;?#oQ&i.vW7&{;S@BdFOi7x ԣ['\?BIa#[<)aSX5 N964bU)Js*ByO_ LgMzg؇I?vq6 +/L)N̷W_ 3ߍ?NWϊc>!K}ΛPy'|ocxI}FxD./*ЯWٶY.'? 3Zd~7jg \{S,ke qgYU)p# dYZN\ds h}xw_{K|:Wyxwe >(|X ?i|=xL ߂_(xQ/OƯ~ZSV kV_z_~ںw?=#޽k&#x`ğ|@Nk{x~΁mC]/MTwlۍ pF3 y P~}xw&a/.ϋpʢ<e?r0Ͱy}srixgߋZ?{~ |iuHEݧW|Y-Ag|Qż9|UJS 9 É%X!6]6' Xs ni |sׁ1xS'+w> X[>>hZjwZL>?|ID']6my|$'.m3i2N;s~S_~# |ioiOGm?R࿋|}). yh.lGn4mX.XL+>βo%|5O9n4>UCU𜚴/ Rm:PP|6PXip[m;ɵ' Ku&;[BDžsǮKx[xczI'A?x@ |+>wvOYHumztZ]</<̕qBƬi[i8իջ9U98ŨD:+ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@W"#sxz#[V^݌i gW.`h.OY'W5|i?ėvz^Wm;LKUH~vE m(ITW־/|4M{WkI|,r[{tӗI9 ݻOOO?Py( ķQ &d%0r΁oLVI.bm^Xe,ְ Ě]αr2>u#iw!-VRLKxCJ_?kzflF jIWE]+M(i]VmWi_V09Ւ#9FKrU&~) C֕SQ<]G^|ďk05hW&QYQD:on~å\tt.Nwşf%"=JE`tOxS^״D;xJ|_iXNz>d6$3OFU*q*j2m>j1F2qgFsN0)&b(P>[[0˫bbJT(cXN,xeׯ УZj+E zi>ޑkt\[i>g6_yjy6vO'#! \b(*Q۲_6˥NjҋZ:pVNJ0&J ˜o]kQGSoh#_uk] F ThC1y-*s2[2NXO TP1njQШS <_x ž$u$-T'i M7EѬ5;綰mlimqs(M$jA^ScJ]iw5F&=:էFIέYSrj)rJi+ݴ79"^)bI` "B, x'᧎įi^2߀6Ŀo _DKxkv)Y9_ jfe֣E#j:\yR\orZn ϛK _~:Y&~օ7Rrjs/e*&_uWǿ ?ҵKO^Zu_H}ƣq{h_׼5yjqYkn4))Bt੹ZN{8GbiW8oͥPBhVéa0Ϊ+<_VJU)WçixG~ ??>344!`-NG_PFhcx◁~&lx'[Y>oH4f,At8\Gn- ދ C캕՜ PR/Iڣ|х3MYn5U`gSuhJ~ڕUQNkҍFk$e(Q+-M5}JoiUޥq7ecWSyPG,PE#p$lqSN0(*^RiE]Jc7/McÞm|]_F·mƳ4 kQOnk.yRZZ{ho-}ߵ7/2|9?hpxJ>"T?>|SxKfxHj۴uF!hVZ!^4>|AkNjL.9A9b1K/YĨν xWV*YTb"6״RyUHENr9e?ޙTx4{}FJŸ?u]OA[[xSLxx5)˰nG𗀼)g<ƞ*ԼkۍGTsڬ6ΖvM&hZ^z~ٮUqr!rձ, (էGb1X,DfV0Jn5iԄtR*q(XFK՚ѦvWXQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhh4]+× ?&PoR߇>!xcZz5ɦYEmi&}sjuI:j[w = ( |gϩky> ?ھT [Ni.2ult߁ R᭪^ qx{J!\ѼSsGctOV-}yk%+}cN-#;"4SCcU {vz~q%ckw e&@ (a:N'}|߳jMN?OGjke&\|+Lv-oz_oYvG{[n I`N((;5ҍjzї%Z3Jse8IJ2viM!~? me?Ÿz/Olu]C5x> =\Zͯ3k֘MGy_g[ ׎ֿhm+ǿ6s{o7d|5CEvx7mwR{z7jwfTpj9b^J}kJ8NΫ(%),=FSN=RgU,=  0˹k O51f8ζ=ЧNXxӫ WU C-4 x>׼+t}#Q|k⧈> ~a|aI(ϊku}Ͽ> |3_<{.˾|+\dG>'x*o^mcO~S׋3_>?#> A<]xE>em6u2?du&Z:GG>[W^yim::į|y'w 5 j wCC|g-mU}3P&Ŵ >4'7e=S__4~,>TE<-iZoZ'J5wͨQw'F ?ٳt߲VGoi3u_ kN@o u/ 'h ᷛ)|cu#_ ’=OA'|/=W?>x V,u4i~%VZ|HᏂ?,|?F?·x>)=ox@t.}=;^k D7ɠд]FINkJ=rGAᆁ௉?u/|  xgu[~$>Ͼ1_U~|/s&CwM+u[S> il[HJtܿ(C2Ԃ.jiSXIU*V)IMSe~eakaqG,&U|-džqxcUX <ͧ7 c8RjNbC?g|Qu_Neׇ) c2<5I\|)&m3!4~ǿ0] _smxlO>inN4ˍZA6yTXT1qWFӭC^Rƥ St%iF|sceZhx./.xL&?-^gG20 4qYf L& AF,=~94υZeq{/ K㘗eƞ)ZͫKO^|RӚm]ǏMv%~w쯠wgm#ßT}z߆u=^ L?û)o#o p 7 gCx¾|C#!hZotV<E?U߼:a1y4O<=Z|;V_ٶ[SpeYzƕZXL g!UPFPGm: S,f7%p^-h>"Ixoh|oO,ox_O);_'[ tk k'Dz^7ns~⇂%Mkoßeec>[YiՐf]jZ}Ɨ:-& HԬ]VԴ[6I0.q<T+hp+a10,FѫQUR9;095%7;N2h7 ZQNJN1iZ-+ZE|yPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(˼{?u/ hNJ}'KKR cZ!5ch0jp ]2P n K8j!'>n [K{^>#!K[X,^yBiӪ(kߊП xs>7}xD{O ZO-ڔ>0Gn^;i2:J3Wy-Y&0t kK|Bm"HoWLAi{ηqmZ_\NHSM'Rqrvrri6oVӣ:0i1Xl%9SLMzT!:Ɣ%VjIF3a+ɨɨ[o6?|;[K>x;DŽvsĚF="+<Fx| V׺Ǐt~öNt< J5W|CMkޡᯋOƛ 6O4 +Vk[xZ$VB]OLլo4z/djRQWR;TTcV1tU9өYPP*<Ԣ caj8; ΦZ|s ٤qԱi\F5N.`ΟRZIM?BZּ!O I:25|)h퟈ңVRHlQK]WG#߃O{/~ ,K;C-#JKtwֱh%VԚmAh$ Wxsⷁ|C\gh:μ<9:2izvs}usA(ho7ß<!^֩5_xkS!M"BkMJ9xb3:C,."WB! ꛥ98%eFM&vEkdys쪸V]SRiUF UԜa()Uψ:x0jxC?xG2@mVTa&u[%j~.4mJK)ol?lًo|Q#o3\X{χjLe/- N-ag]XjT*՛FTU9Uty(C5uծ:hu`f;~_ k0蚷> xźNoO&iKiZe[஫@Ə_~?NS|;^rx({X$i%ZN^6&ݵz|C=ޑ-KPk--Ikeݭl~ BJ)Iҋn׽-RwJI=7NZ/ <"Xz94IPju!+5gxJO3ᗀƍ֖^_&x &?F[%i?u ۍV 佖x{.#`x\~Sp?McccR+Ȱ1Ub8T -Zqt*ӣK'oKs_"|Í3Dg/R|8ǭIx_~(44-G~6K֙6yiMx O>lw_k׆-7No[[N5E:j> |qI7H/Vq7ĿǫiϪ[?v"6ڥ"7$k,ߎg|)̼9㌿$~!Mp(p} =WrmifeX<¾VcO':G37>.h?oG潷#ⷀ/e[}Fx^~wHobյ+G97`oƯu=kE}kᗎ Z.-'<=D%<;kV&}uiZ7.}763O^F?or+35˰5'A|X4>,>;χK&ѵޱCk H?)m.C)0w>2%мY-xoI4֟-kNֵfנGmkyqv%}N*gv#yZ8yO4o[ K04~c%+t0Z++D燼54-ږkP_䚆^ajڽ_j%y,7sM3 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@^д ľ6^"BԼ [^Cy x^[B=14okj3,4'>ӥzn gG 6,^mz?߇OA𥦝/5/m 6sxoV^+loKa%#ӭâ#ˣMwulGў(<7v6e/H{ 'mUbƑgN ]l@PY0ǍwQ'E6UW;}?}\֪CmAoYA_[zN W1w^kkihqe}mowm$SiM4N5iSOfT':sJs' )Bp(QZqzi+G?|;Ww2[㾇MO? ,kС$5ExPukB']vQӒ3:O^MWOKf/Bǽj:.u+|0n Km}ׁ oEk d#OF^U*0[𞍦Z뚇uXqSj <[7u|H/oÐXWt7l ii7'xooz_|E|?Cf՟|_z;5.u;ˍJ~&f+e|(;{.xߏ~i#m >T>o-O:G<5z&%Eu9g?~+0>7U{_z_xwƇj__ ᎋu>vwz?|# #$~>mE]-yt,=\.. d,JUiիz-S@|i.-Ē:hKGYbTm($Z;XTK=:sj%N9T}?iN1ԔHөsj'6i`ၯ`_S &> M|,x&pWO,_=F?NּuX+Cw0Coq}P[[[Mwx,ASMDxN|7ᯄ4K;KGG27o%7?|WI.^ ԭ[e̱߽ݼ^CmVVZE|:s9Nm$99I)6QJ+]Ihjz^>XNk=vvesCsg}euv;E=I $H?=ӟ 9po_ ׾%x_Zk/P'Sub[;53]5ik[ZIpV<[UeQf5#S<i8o&"1*x3FXZ=*rW$ĿǎO~M+ |W<s+KAԴO^.-MZ#/4/z"B_DS/X%~~!j?~kmx?^'<%s Gž/M3񾫯$Em^GsXq~ej:3Ǹ\#W ᔳ|7 /snVd bio0r v#|1x_|< uIc׵fZ|:LơDFfΰA@{şك߁z¿xW^Ռ=}_u_藚\|8i{?F?^'7#Xkk\v+6 X6kCx-f]ar'. x*Y-qxLV3VMOªK |s?>"xx>_ C_ׇSvzI i&jgg{Ffu4m_]?x?g?/=7t3/BYO뺟ʿeچ ŭ3gKm//p Pfgjp]|FxWg9O~U0sy|x?N%yvW˰5jeq~)]֧xD|9yq#Cm/j6Q{6Xz~NEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<Kw~Nu|;j:Es6> &f9RQnX{L/"{,#7Ko}S:} þmc@/ό|7׼S ŝc:V?45(/Oj5Ycխt.6jͯڷAoBo_"ֽ~;]|,~$NÚvLƛq;9ApjiTĪʔ)ҕYaUb%]k?o$58N!kbzyl2UPe̖QK֮g(ӯ,t&' C MbeUB:=?i!#x\4x><7tWBOkq>%ܑkɠxG{ZK㏏ ~K X6^,|9j gJ>úx(t RG5](>o>8W{5J'VT#8StNUZQU'ILk:=e jaԣ:U3tS W(ƞ*凩BQ¬RXؿ>A/K'߇ZqjwCW/H''|1ݖjVEֹf=<3=7Xω?E)_Ǎ4|6Woڦ+Be᫨<;E>!'Χɼi 9o_Gc|:Q:xVW/"/ov>-R'g?-+=oOkya /ԆSSGQMLU W5#oQF)9գWPFN㈡*RqF9eLe4Q>y,-h"wo2G:L4VzEW^o"h h|c⇀<[Yд4{w5+vHn|a4sKצBԟj~Қ/ʢܚ*r759F/yax0u Y] o1-F]S zT(PxobjREZtGㆃß.S|^oG-^):|'G4 Cw fV% 6SP͉҅g&|I[=G[Lׅۍqi(ޗWI7ڞƄ|Vjd򄹔~kYgy4e1{*pp{8ϞZYez]hjֆe=ҕG7,׎&io.n [H5MSin3J%Im]gSl &xrZ4v oxKu ([xWö?h2~<_ >VcM{UѼ7;?W^Ӽe/"]TO /i+sogwxw<{i/ ]3ģ OuM?fA&,柘+➧x{|ExM𿉼P'Vx`FKk+4^Tiswyښ~ɡkQ@6~bVtm ?x_7o1}Fό4Ƿ>jƇɩc3i^&]IY^jmkq.}f>}a;i~Q|=C'o'I/Exַ}Z#V爬um+TtZK\4qi]aRQAj5j(S:5**JS]We9E^het1tO \&_S㹫B*%d⇅|G˯.o|'b|Q<_4/ x^g?[j>>7д+OtۍVO'msxV#/o~ 1T5?gſO "/Ei~'uz0 qVJJtR=G,5e9Ы*7Zu(9*^Qaq8<5C> g4??ωc{+Ə7[>E!oV̾l?Ŷt%(uR8`pZ50U)Pcƕ(aat`?;ĹjTO:C`1<9e|FQ`1\>Q,Rxom_nkOıB?m/[ x &Meƺ|ķ"ZwKI/=mm4{_>|iĿ -Yoꟴߌ><{χ.|5w/_[߅_/?\hiUմv˧I ~?gmKү߆o5 Yo~#C-KÚO4kV,xSOn2\[ǁ-tK-2l=*50h֫^xr7Z5ҢZ5b)Iu?heRprI(Ο&WX<Գ nkϰyKrf5uؼRo 20UWZka_xᆻϏ-x\k^5-[¾##Ni[P4_R_k:,PEkdTGw.*bQYv8I )8 `.i{:s4RpF.I9%'+)$j&ϳ:8?kL#? Vxl0hBXFUB┟9^oK hmkC5OxoO\LǥZgOXKEY7jO yq!E0.:4{JoI>q{mbt_n%;uvJ}J[Xnm^k0.k/O>\,47z|95^6> |7.U 4 Y]BmNO _ɱ?Kȸ*sJv No. ˱WK0\;tb18c(ba||A6|u%w<\7S{]_2󯁞3C埇?jkljׁC¿ Sǯh?.eُѮ]i>luQ[S}by4 6W6žAh2AiRΤUW3µxˈ2q+oIمzxglЧVq'.O(a5P w/o3ĺF/k_ |i/78RQ־ xR?ZDZOV_O{߈V Ե {o~R1>cڣ[USkO"FH/%MVI 3>O Yq?/2\)N/?Li&Ωӆ!ٞ&qe]|li}^M^5[9̾?xm$5JxO×=~ Z qa=熼I ^h~*?( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x={I'{Q_tx^ԙ!Ӭ|G?.a*Z:jy:.Y5KNsŽsᶩ}s5'wSz4V 5 5{{k{{LnK-/GuXO?z?ھ׮kW|Ws iwtKM{^-Mu[{_ ?k-m]Y&sXciQ_iPIt%Rj7rMA)4i]KV7 KRT1aFU"3NӂjM\?hȾ|":|6s}O۾ 1nj<% %GEծ~XUc}WUԼ% ^X-˦jr=o {?hߎ6Ú/-[~<Ti>0yx#SNưf)*2"XK oocP^UcRgJ3P ռ 2f5 W%y?QC >/EΥ;ץ4iWXS úG U*R<랇2tW.iWT,kBY,&C7NSJ#)xxts n)|AC.6vsx3P]˸_V`637?lh?? -M7HWO\^ Oj-t\t>|==FO_|Q T[-Lg T͉Il*ag^,4ү[1a8e0ѫ^ZkW_?> ɦ4Ooa \eޙn>7|\L5{XAx^ٍޥ yT~ _« [_ψ[PmZ.^Zй~3q 4kHKj$.yC8օ%U,b)QLDa<k{J5FBa9Gp:Rdt3( jp41Y 8,d*fueVs˲}>&>(B|F>7~ 1^u g&xj ~=x|?ox |+}{\u 7ZWtߊGKE\k ./Wk~ |)?Ei>#M Ŀy7U{[U//u-,;e(TxsӟRLgRlR5HԣORH_IWêt2|V*YaTxv9w#C<o~6OkEd?ߊ~ d0=dž4FLjm5oH&G?iF?|.o¾%𯂧WׅI ^<<%ag4^"KhxwYoo_,\*J>?g:XխNUL*QG5儫7J%:m9}#Jq_,e(X9/oO3ciq]:xa#5ot> |QWׂ6? ,{OlJ ִ>%_])ђJX?Gh(MSZ/G>k@nk><5=hixJ{M{úƯqwiwv}NpK%L,K̩,n j1RIrSZq I)KI+>8^7|!? _| Cx?V7OVӯSaWs43Zѵ{-m,]ZOZ/i8|FL#⯎x]>. |&OƇoj>mkTo?(c,ʥ>YQ[(a^L߈0|EpժygS O5<q1xz_ړ t}k\ ||%{/ֺ`u3/Ս֯/OYѼ'Tc֡Ҵ}Z}x0|:x Lo}>(hK&=?QĨxB4kn/ s8#\I¸ "kuEzx:W*P\f몙9-b/큣mWOO 5τz7QxŖ |Sx?zw jzj]xL e ךr#xq||D0YNWeot4~-o7ōvo[ZÚ-?/ǧT|/W%cas`-QAj|L4Kcj>O~"HClqjko+G牯Y!]S/oq7e9O OG#,ËR㚫.3 ).3|Ra2AXU\"1|~ |)c ᯊ[6X_/ށ'߂oxO].΁}[zZVG13ukSKᏂi1;6=*~ִ7YƛISAjOP6Z'4-^SaԞJ'UuTVQ ugE^BRJۤ}&q|>QU2OqXJ+RcckSR_Q~Vq<)Ƒ^7(A_~2ͬ{g_a!xKW_ Qx-g/xkK=7J~9;Ɵ <¿xş 5M?῎O??yk.}IJqpq-fk8Օ,eLTq|F=b8҇τUjV7х.1qn8cjsVsO*y6xL>_#70iKߵ<)QC~%~^ M[`Ҿ<|>/'|>0d񍏈<Z-/xV5n Ƨj&- NmR"9φ~$[V~[/Pho13K4n~$k8еmR LKf:xFTѝJo0 W(эyף(**Z*p%(TtC+rf`urƺ԰T3Jٖ_W8v*LL3]eQU|>/\N<Ik7񖱡D/_1BSj[x/a?#ƾ!X:vhz>ե~5]+s߄~W,|q[svtfil)6\k~ +]>#xO ¾7 BuiSùʜ*U#Zt=7*ty1OSJS+lj2rW1L$0fX-J\gAf,Nj،.ўdz_gOߊ :ڥi$.t kO{? r\vv߳G.SS>,cǧE #sx#H/|auL3e|y]oS LÏ1a#SBP_\pz9+NXhuaKURս?g8"NAS(ԣҖ&U:^'1O5h^&1 eqZ'ĿY|Z6H ēZU|\O__~4'Oïsß~>/|kgݽĚ~;'fՇf6 n9{3J4tc*u) '›*GSJ^WINTӕ)Qq]ja1JW.KZ?[G)ü~2X[oS|upU@?d~RT{P}d> Ii~/kY̷:jT}[JK߳3S)b&ȹxc1 B#hR>c3Cjճjs_?ͥOG Mq'8K*0^&efg(bj`h|;~>ֵ>Cs Y_yд gN}m/:ŬoW񟋬_CgzzA?RxZ5uZ][~|?fֺ5t񦓭1K2Mp [5o/p^;̱l.gZ(x,&1f8L&a'f5 ÇRcU*`|Jxz˗:[0KM?knj?m_'|c>o-{Tӵ-SGϊuj:tkKռ5e{S_I5A?V|Qj^N~3x"vsYxRqOuΙ? $ò[<]+s׈~u`Lc2_ bpYn/^e֭fe}^O a>'7en8@o]xw:7|?&Ew4}:]?RYcj*Ai[i_R¾!𾛦xo3 Zo~lΌ|aԴ {D;'˚-G[УUN|A\̀+;| F6W KtJktmH-'ǫڎn,N-GQ.k`@h"sSxJ wG[uO0/-akˆ4'kt}9d/LQᖓ_xYd ZZ״K/>ĚKXCΫcYï-eq~%Hh ɆL뺌^nvi:,Oo5~7y;<]?G}yx~#\xkK}+%HK 5O<~+g? ƣKYj㏃Attj G;. iP|+|EWE_|_֞.Ǟ)7uM?ú+?ӵ/|9os ]ϲ+a}p b+O.KBYhSHB8r~Fc_?>#o?|P!OxJL1{@/⋏;VG7Q5 x _5{ K\mnx?Q "Wÿ>?i/|l4het1T̪epbS˩WOSŸP+_ |%ƷW_ߴW=/෎xO?V|\/ƿ?i )¶Z/k?|M4OT?Dז=cŦhfMcУJING,R|CM_w[u q7| ᯃ|DӾ!ޥ)CKw~(>slj ~$|Nо-[G>3WkhWZ'];>? iԵ? -'o<o>ߋ4<vS?s>:<)/Z-S^]2NQSGQjpէ:vTc77Qj3+RbLeak.x#K=JbS^taQq1pW.<96wAW7z >aHI[? xKG@:[Z( }j?įw=xg-X/"~'4?`Ѿjc5֍I _|+}׊lu jƛedx Y,N[Vdk}OFtpPnt*(1iʂ?_%/? 4_x w_O;KX|+ӵe| 9fѼGoBOi(M%:ƸO~kÿX5=k}+፭EnVi荶mVA𗅛H6jmMCq hn23W/:C ϊQ9sP$aYF*6Xe\D*bNL#C'lkO BgFVm'#Ÿx~ߊOK)xǀ^+{rF| ࿇?x/oG+_|OI.h MnQmK.V:+Tl4'k9Ս_௎-g5UOgI߳gkK{?ǂNwK|wq?xWĚ׃+mjj/)oڃ_ |5> #㎕|R{]z_:eKZ# omanx5=_L *j%*)bF.Y}5VjTNqEJ jn5fs|U 2xV2T ac ~}[SYG*X[6~3|4~~ ҵm#h:[_|:ss=^?V'O4#zįڄM[%ƭoӿ{/[_c>7:G [>_^.<JGd-}w.?nd da{eIμ4gTQSTMbf(VQJ:mY*QeuP_8N'1ZOG%\pp|<_Żď:V\Ïi:.hwzO?xQw,5)Mz N&0xjKЫc+pҖYi`"+ i# eJJ+P<[!,#C}{|#?]]"\4now.%ݦf/)/|QY?g~o4.iυW}^ѧ׵MYg/-ϊn?xtDg 5iF}cYѶڱQ|1_Zͮ|FL)q_*g#d[5{u[ 8T9C ' e9㈩*^iUqNCܼ9ω`šxE+Y?|_dXxVًƩdޓG#şSխLjuOQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh2վ%izt9,ONZ j~_Ie:Vq6X\NbJ M}k xsŚG&狼?/!ռE:݆W%+ %ݍ̳fg þ}g-/ʫ#z<%]ZF@$ݪ>J5RTq4֝Z|\aVRXҝc8O|%ЧƞW]|EijL~_|%:k,s^d, ]VPï |?{ś xmѵ+ x+["Nl<7zQn5\jI.HF,%)SļM:#g)Q:~o*n\8Fr\6s< ¼WtQ̅*| 6uYΗԩVku_YOx>"|A>.Yx[Yѭ&m_A-5f8,v+?6f3?Mb^~!^$ x_|5~:=K_ f!5oh<2v/բֵ<{ƥ,"qAf:pҧR3T7*5}_R -ORl+B,~[/|n3<>,CO pՅ/3J1ጯex8j3ohz|տh? )3֦9k_|Sxk,[]Ǵs=pU{g?h?us}7ǚx'᷃! M~My]uCkW̔'ZPFcMaZ)}f$91+g_.cC C.TcqG,0(kf/@uٽD8.+ 2|KF9eweŃ}g4R5r2OKEWRN?ï<ſ j7sL<C- jH5W׈Eqei@՟g+\Zx3>GǛ4CWLJ[P]6~/BֵQf^KK⥘[, BUUSKFTe<Լ/σ? -GT&t uzvӼ#X,#x]tAľ-KK H5O_s[w1vvZ50JtРYU:j JQMǟ *NzJiyrxbⰙ~YxX\,qjna81XqXC^/?<1w߈oo0⯎_h>mv^l_ |5%o>Zm[Zq[CFGSώ~-k_>{>/o.gF>0 aՇ|gV9|7xZUgUF?[Yk,k(pR%I(V=:<^jnMާ-ZʯdxMbG$hƭZQG ٭W:eO3y.u0O챹,gx;~ C7↭;%|koO XDd<ci7$xBĚgVE?nt.|c⟋~߉^4^]um{O Mᧂ-džusRլu-[γs: KYH8IT,&~4J>"|N9TxmVN 7.Z\TquYC'Af>/ͫLUl*Yq,>/,F!ձȞ&~,bT|1|wᮋ}qYh>;Wgյb=uwkB-=kU{o/3wό7`1ı|L~[xP|T~O%|4𧄵ƍc?/[چ}7^oK3JR)ѕZ-(J9B"oFUתNj5*§el![%Ȱul~](ƍ,.[.jd渜DRY^Z:Y:l1 +Ş9Tkcٟǟ|T~.D^Ï|"oZj~$J:*_տa?iE~O k#W1UOQ}xOzZk^m? 5-Ƨkcuu|s\h.MK??eQ{8(4-?R-W']oU rG/KfO<ҵLifyie]qT ε _f5wQԯ3|1w)RgXvUN8ZXL8cNՃ?[s:*r]֭W恪>%Sa+kK-mkgo<4;e5>1gQK&gc1/6[Oυ6~W3^E>>կx|/e))4}Wh V~~|뛛Өi3x%Gm"?4<}/sh^wW}k^+׼/,+=^[m"wZi6>nSF4~[}cNŵPDPaP/g[kI%QJY]:z (cƻc~y|*_o+?pO>z?ھ׮kQ@y > Es]r]]vz]Ah5;Hu&)}[Úv dx&_e nenXbl]؜,hW"'JTkJ4Tjl(i_)ៃ?Eű?ګZ]xfJԼ;Lfg4ZfSIϏׂ&\_|z,x>-uƟ1F9l=cY׉5O'B񇇴'Z?8^#+xGf[W n]tp2Y5Á3_ʭ|fu!Gm|3?/o(xOƯ^%I}.xoo>k:΃{sjTmW^4 j~_!t}[:UN侳&N;ͱQGÙ^")%9dxIf3l eynK֗<#`p|z%l >)/~.7 x>8>O%:Χ1XxGѬ >3|F>O~ |Dy7~$ x>3|M9t?#^(ͤ62hZ AcĞ;r#J>f F{i{&Aqw;qh8 *K"k0<+Uk SRŠCC>0𦣣uO-9,Xj~7|+\x_&6xoڦ:\YΓqMZ DۣʊĴxg*>38LކMq ,׆|3(yrI?*<,V;2ln>G~מ$_Bo,]WuZY]Ch1jz}항s%e^~Ҽ|A(Dŧ6VJH,4:%pH"(َY1$iWQ@b[V_.C}9p& [1f{면뇚=.Xn(__ς 语h7vյ:N^EQKF?G_ / V]Ɨ~o(^`wr ~&z_YSu{{eOƛE$z\~/#M&8Ɲv9aÙN$3 S:19fSaNa,>'X^7!}[S1lez101YQѧV!z]g^Kqˏx;Zy&k07_xmF}Um+O6Z/+C' ƞ |ki~&ό~$@ ⎅Ut,KS|c^xRM>oͦMo|A1t!,CxF`jprIG"R܉%\Yo &K.Q‡COٻ|3aMÚ݅?&][><"^!_M]I^&׼7MgYtXm>1~(/ ig[uy6]3ÖkoMzini+5ׇXζi,4Tq1y~UepcW2. *`KeXl&,|.a,,t{WQ|v> 񟆿j_VtckhM#5o ]iֶlZuy<=y@Ow oCx cMIb|A+|@|0Ҵ iQSS<6^{1Wd|9q>.{ <>8'✩atx,e03-e-3=h4|'8omqel>saU,7p] .3P[ d`y_ djeKw91RK)NsQѰ~ 9վ4^>5ߌ<]xY/Xu-j;|_O}'BPB0^ȦZ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=_K]SOO]w~$-];Be_K𵼚ƣ$/0YI=n'+ x't:Zǃ*֞K2Z]¥OtiaF/ I%~/OC|5ƾ0|_xĖ%u>"YxkOYMvv3HW3q? ^ ΁-moH]6m%4񗕝,h( ɆL뺌^nvi:,Oo5~7y;<]?G}WWwmS7~ ͵|sC{9>\m o>(<xZ&.S+hZ&G̓VV3mB/M5O~_Z~o 'Ֆ~\~=|&m躧 Ic |=V0#k^&e\=pL.} [FzY>:|oOIc⏆o<oJ-;Sk SxSQn}aCS|G%xuuF fK{q!6Ix~$0M}Q1U^ Fxᯀ>(Lg+ڣ7K O_~":e->}S&hӡmcNo~sExXx>|>>)i>0~~⿄6V+o#y^Sb3O7x> è_x Z炵?h|}#ßx~ռiku>kK>7xdbH, x>4| E⏎rxC-W5ah'Ӯd, x?u'V]?CRMc[xdpL<G=g8~/g_39'`G;oi^8oS }o=G07VbaY>o+,4ub:.Ok4)aiOХy#\((((((((((((((((((((((((((( Zo?DGWh_-j_P|@_G\|Tívot hS4"_Nj[ 4WDQJ^Ӿ*i r%l> Y.Bӥ89k8$8-h5TX@8xSN7M/_cI/xž!Is;)V5ojBI״i}`ol}Oº44?5kixc?<"=sڟcMpUդ~yLόQI||76!f\8209OgԨdIdXڸlz4qs G_09wOxR薶n ^4+t_ ۻ$Э,`imj?Z$D|!!MqluNJ-J^[;M6݂kp.2͸Yvq~$8jei9eRϩazXciM)RMI|;5aIb|j!59<=ƶ$𿆖2ksW[ /_|a=K^-+>t_xoWgx;[5DŽt KúuhiwVrO4d+U~:, |/..o<[ xOI5i.qwZi3vWRϧg+=1ƽO? hxS -5Ƨ7x+^%Ԯn4 iV%T]h$l 9>!0a9 :xg>!K+ZjG%mo\F//ӝns㧉SxH_ j_įætv]'g4a-͝ιvZ[[ey5k_.u,tMs⭜n4KV$vڬZM%-"ӯ̈́kk/k+O'ਁ~7K]v7A SIb8%YD"lDPY0ǍwQ'E6UW;}?}\֢ |}m?fZt_̿a{h{ Fn5ݭ&mKC I,8%++9]T+,a3 2,E'yaoksS<%jů|wgcx|#/ ]|IgךR嶉LJ<i;xCs,ἇw%K0xn/Tb|m[|!N[Ř|pg9asqUu _LC#>356ΕG߄*՗>4ꯀZe^/ƭoSW'ǿ ɨJ,xDԴrI$+pt^x29^c̾#v?U,?`'FoO9w fqP3U8_*#/rq\]93 1gZA|!Ꮕ>6-lj|y[bx-K]'OKK^\roxOžt/x񧃼Qg7~Bh7^[OgiW0 Ό1f|1fxN8~*.i)ƔjW(ӍIԚ[NJ)'&(((((((((((((((((((((((((((( Zo?DGWh_-j_Pwz՗7c9}CY --l,⸼5Kh忹_|Og'%c>0NGRf<뺝`go5{H4y&9nGU Ə%}6{=GO c~7N On_hiĒja{]4mgJkvʳZ]F[A"$l:2`@ү( ķQ &d%0r΁oLVI.bm^Xe,ְ Ě]αW//oOuhV.qz, @u;Ú<Kk:d;gq)/L~ ,JT+Z|=/kZtBҭJt~j7?iZE _ǖZM-|#yizk|W5?hIt#:AZzF}.-E|b{?5WZc.[GCScL>Mgh:Εp," -kxp~7&˰tqLNx -,'xO:ؚٳvV(׆.4X>Gl<3x{I"^?Oo[(o?<[xM˫i4i n3^}O.NZ~Z m6mi}Ne-̦]%w_Y&*Ys[e<˱tٖ)^[j`'tiNHVPxW6MNPluV\n j-Zr麵ƕ IaF,~Eɵg4x7JD4m#DZڦķRi5 FP.y~,~cqY~:֞ITUSMքR+VRq}$@ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=o&kxr<'=sx7jmV/ x^T𗆵4($cӯmN5g[^QyKu~"'OᏀY-q'~'{Wt=U¶7ݤ o %}GÚ։᧊,to</ =BK=6t6仓_ CLkF].O?]φ> nvڮw4O\-IXd1^ b>ZzM}A@VL2g]bsId|_yoI;bh7/H'!q^ՎdԵ^K6776<5?xo!ጋܓ=,/٫LOl&?kfY&K*yL^+1nG:0o|?пg=WѨ3>&~#s>M{ i o[x#SѮ|xv7O<3j5mKGl$7?"o?  h ;e V_<ayxoOm/].o.sŚA|eNw׆$[[_8[YAmi0G71xv2bb*Bҵiԟ%(œ9#bEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<#RƋ.xWt?Mtu)5 s[|:6YZI}w 0- 0<3x;^<Gl7^ئ}q[Naw{ŵa{}_Kmsm6Tsw<0l<=ysx^6ծg}xZaiyxe? o,ow'N^F_ h~-ؿмEZjUVC5+4El4RmDi,>wwCo ҭ;Ym۵=\[3'[ t ÿ{ڗ~"3~ &?|syԭ߅kMUUj*(((((((((((((((((((((((((((((( Zo?DGWh_-j_Pzź-#~/?1Wе/u|eCt1ePLM>Z=|O͟gw0Ҽ?h C|5Y-d40jZ5+N 'hgF6vDf*="+&2XߤF3ʼO\>wo?g^P?~4ޥgsi ]xPw{i_5;[mO'O |IhV2ͪuMw^u?v:Nxm4OH]R 7Z\]EtڕwW1^G4QNYEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<Kw~Nu|;j:Es6> &f9RQnX{L/"{,#7|H ox+Z'D|)uK7lZ,iqæcŷZ5riyj:ŧ@?Va?ix օmtگt IՕ}OҴh`A%}JYu(~}'NkڦhZ&{Z֯{m:FK{ꚦ{,6z~5[ZC,Q7_~Ta?n_ Sٟڿjzwvy?k ϲϳ:(-xVVr㙕`lF5)dXVIn=;ǩj(|_|;ᧇ_ڃ²|TY3'^9ƙzLm4x[L:4_4:d7\i1j:zw҂R7.U9V*\u{^tu`pcpIU1(ЕnOiV`{5(9'k[^ic^^%~4xR⭍x>(~ϟ ;kxbռ9x\VLYYX'yu]vO{՞/CGgN!a75 U=_Oo i'o_|⿇zG&Դ.=<6LߌDz_yqb85r6U_)`2EH㥆 6"+V< EJӴ:g{~|fokW\[i^cqyz֟ _'a꺍ݥL|Ҽ-j>!׭t^>w-du+Xn 1xږ h%:Džg-#])Kb0V5N 5T\ɵQ'rW35ᧆ:e#O7'D0yq)”ԤVs*kQם<5jug?m qh?Ο4[Yt*Cԍ4~k~5hgL|&_|aԦiڬz/^7n7H>JwO^&ԵJKŏ|\TM3ñ,PS7:}beRthPQ{:<=jSḏ18b,)ԥqUuvüK=Y韵SᶽY|Yi~i?~(s74jGL7/ /|i37$&Ye4F=Jɧ gco~5~žt5/x*_>|l%{w ڇ~?|Mu/ ǧéוXԝ:.(?ky1RX4aڔoQ9,xXN.OF_[qqxSqt)bqs,T\pu n_ ߉qY|_^4˽kVuo  !5S%vwִAz^U| ~xjxV|7kM'wHq ] D>@~)k'mOLOhx5u_>,f,UT(1<=Zt5^:3t)MUiT 5+(:Q*jrN2գJ<[1JXfYZ8*G(ez'S+[zx3q |`kι|C⻿6cW7w'|]P.ПPִs؞K7->S|)o}|yٚ)|b9Ga,w}[ᯈbN $𞳫yZ "ҤMRIu)!IԄaө}YTpUHVSAGPF'q8\ކx2Tʡ̰*1<*xl68o_:gZw_R j? $x+Ÿ_ OGeqoWx~JX(1 \^j}^&Ч;ZWnto4bI-;+ h#⿎X|-+/sFKk+4^TisejWƝkvTn7Ȋ}MUvC߇_+ |1n\M,5^|ǞU+eh:~Niv_oPE utY^Keh)|FԼ-{ZZG%ĺt3Cs+O? ?ii_,3ޛ'~4 -Qf? u?:πz?<eS.׃/~9G<9c5xRVVk:NɴNtK%FGc?|33_+O>;^? -D_>1h7>"Q+WI/%ΗmqO[_rή])N4)AC0QLT(##`q2>?jbqfup0ܖoR;A>||o~OT5!y81ݎ2o51i:ׇ~Xi$> GnQߴ,E6_4"{FoQx\U|Szj_ٹn.3RgSѼm.x^'ſw~xr{}F–vi& s:E<5&g4:Z%dz1~_|o[q|-WſQ^|gxN@7 Cǁ|_\x> S-[('ؼ-ɴ[)ܱO:Ч$MTIUўJ\jrIp⌡R[S eZ[y,[ƪ䵣*6"/<>~՞7#f>xwľ>?fм;/7=|]x?g5?^ԼX7ZZd/U7k}W}&Ɓb`1Gh-ƞ7R|3axsVĿ |O2H,wg-vXִYxv-X/K9xuGP4UQm{H?utOWJSa%˖'-˰4ʖqIpaB1qtLCt&_ |]f{߇<Rk &iś χ+4(ŏcoo<>^~tm{ɨEq뗚RϨ7w|Iߎ*ѥğ|1~ ot?Ŀh-:%Vv%-󧎡G S JeF:QDL<*SԃFQЫ:5'%*NJ6̿',^c ?b psZ{eXWsZ37qxie4Sʲul^7Som+ƋJK}6 ti;P-ƏW]by.?iEc7\upbRR~N<ѥrqc*FSAԚGJ n\I33^ 1YtdeKY~)ySJlT#^1Ra]gBIӄdB<3VH_hQXCŢ-k?u 5 ,oK:Fswj孔:N~麆_+i:>:j>׬7MPe8 uSxs瀬m_n.CeI` QQdEduVRi@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh"O ?/蚏#zc?t[ WRuU{/$t-ɪ\Ⱥus- O 6i>#t/xB[ѢOeau}fK[ZcpYiz>:9|r񟅴OڼO Ak?E6Zv}--=s“YjڔWVz$GɧXhLj k4oWдKUіVt8n.lĎDTY˙D:z (cƻc~y|*_o+?pO>z?ھ׮kQ@y}{ƾMޫET=6N5[Sk^5+鬴kKM#Ú b/61?(fY_̱4ѡS K^ 3J^NQSAI0Ix᎗>)$x|Q~ _Z嗈Ϩj;'#6\qϺlVڷŝ'm~:[4/oI ⧏x^F}~;ƿ&{& ͥRmW_I b| n+kKXN]yebCdVab8j-4#I׋5[[wB <_qy}{JxZ}Ljq5-n4c+ gkz_Le5?믬;75;-f{+FF95Kwf-ωI<VT[hFxx:~} f Oi}-嶗iO6H{wKmޏumin+_x3> m|3X_yb,XHaA1[@[-QH(( ķMZ%hMh~eTA8K-I bi"#k莗 ]k@tPEy߅?|OOğ~'_y|u?ohdmWG3}4~.Em/ '麗 z׍,]^{MWӚχ^ y->&ڕCSe]h}'3i =R많<_Ȭ-mMwEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(7k:Լ!hƾ|O-ƞڷC}htWq #Gӥ+ﵖ:Ҥu!}ߊ|+ g0կ&gϬɧɦK@״O|bu 8Yt]W \xeΗUG|9? lKƟ>Z|TT8it!h kwiYjSMw ~+/0|1-W_Ἴ0۵7.%䙬Ԣ=Am ar YdXðQ@d&uF/7;4O'fԛ󼝞.#>M Z+~+>2]Z:$g|= OUo *NtuAf+:%Cd2fjxsaZG Ǜ !^_Qo?j^'/o~?t^i~|@59|8 kFį+۬3OԵ/!|;ޏZhZkmO+n".UpɩqV "3s_ C5 m|V 'LdCw|aa.x'3 L"cffy'NSg*x3_|,,Z~&j_%Aoc>-$9tg/wMc\t%fo%&R览vPwŷ֚OګzEy@PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(̾%5ovZ^/|e -3Sӵp!ơڦhWx~,Ni\A 6;SX>nh?fɼ)yuoh3Auqa/Us}Bwcs,ٳY~{@?k.4;X4+v&!E&cqg|LjOjxoW>i:MZ[imckmgei [€$PA iQ `P (^C1H] 5-{,cbm.[aK֢ (śZ5 ׍mV𞁣xb; MlVZމi¾ y{s?c~7eT1yEnU_'(ೌaҶ 2dYKS3X E|3T<˜q ?e; .־3b|#|UMg$_&ᾚ[+;>]:%24Evnd.y_Vѕc:iasmw5X>{q[|2y㻿4xwFߋ!5m"{BmҷQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh? |INbk}.+K} ~:umo.w4 >Lm2/?O{i^GgxᗃC$L4k_4/ Z] ~|Qh? m<[ouXVtiOIm -GßƧ=<O|l3/os;X/=;}j? 'mgwWVyMỦG^_34/]7m_\e?+絰{"IW/h>/3{]|?:kOxvž5-4h톍e=ZyM ZkO5}mᗎ_ߴIo5;E`n7MizI*%wNp[]JIlgu`qRpǞX\EDa*5#Q.g%w_V>O eg~x#M;|'chz_i1hƑ}Ed,4|D,S˧_M#W P >3k(WޙM ZO-?>^j^ OZčxžv|?4[Ӽ{j^+0%h: EbZKF5cyIƥHŪa(rTʖqc,#BwK4QPzzXM5 s*X:XzajxGc_׿//Ɵ~78о'5쉧N# 5v>"_x3z^,|{oO6{m;MEV^-ޡ72>vTOY`t,´,QTe %H7RjHէ|,񑇳O;,ļ#p W3 3~3J9mL>CBcp#2*CJi2e^8*Ưڂ:<Cmÿ?c{_<C-KWf?~ּ5+W5g|I9m׭j^4'[_I|'ό4~w~8.?u=R?m?<M-.mF˪K\)V8=o1{<[HѼFھ< ځ+$81]O} xw럄4uؒl77l;6?/"n@~:acyxoHŠKqnƜ**e9iIWnYwl0rr|6C }La|sS7aU ʳU#ex>vZ6>1o#BmN]^6Ayca_?.!;kZOoal<\|bw:8ZgZ9wx"Ʒ_~>_q = m.S?<= YodVk`eke@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh:?"HᯇZ0E3@Ѽ5 iD#c"+;6E ie)/>ON.cieAWX6i6T1!<${EYxE) =ko5=KQA=WmA)KψѴIt7:fYa[Z6 :#b+Gm#+倸 : (~O|}_WiAO:֯ et d?omNg|}x?~f_k!t}?C:^NEoYmNMF)RiF)6n$mZ]:u+T*TVIƝ:t)ԩ9r&cm$g||nxw:?g_kpֿi>,|o-!mZž n i(mY/̒0oF8T0tq>5TԱϴH҆&6\ɪܗQR+9x9 & /`p._: t9~̭z8~:'o7=SS=|.>Q:j&>|y{"O]*OL86` bxHм? o쎛:hkZGt:~V6zE6|6s{ybRMb]utw58K^[~%r79+\Tmrnk/[p2!a:i:>ᔞ|ksC_ 5zIzgbæ==ZPq=&G~~ O & $_ mK+:9/m;7]ޜŪZY-F13b*b#ZOiUx^Q9ZXFv\G:8dX|VmK0/*8V7]pQUե9c)' RMi]]-#ޥmqg%x7Oeix%ݭ4X|+umtqTN*PF-/ُ_>ZxZ g;>U-5xB+]bI" -YiH-ҡ.aYjLehs V#0Ɯ0'[Цjg-q~xWۅJ.jyoFթf,21O{ /F+\5/ќ!Bp<J>|o 'tt 35M\7_Э4X֧~R/~ƒ]'=GI)xMѴ]3OcxwE\x{I|Kux;U1XOkI_ݸl3L;<&YĹ |GY/$19oaC;)RW+9|qT֧ʤʺMĘxX 4ifr{*بTJ8?gR$m7^a__ 58>xO灮|%vzi{'Ļ9#>~O|4׾_<k?)ھk=Q|%4ԟ,b^b/?mV8UZmµK߫ۍI^qm%ve<=if:i̱gBS YcFu*J.>"9B\O ~ xlx; "Wᧂ7O j+L;"ΛbF;{*T/m47Mull,l{ۻ9'HY]QYib+Wb+Ub:jԛQ\ӜJf8cqUe[WbkMuk+ukUU*NRնs<- ᷆<%;F>7"׵MVOm46j7uggo|zơix%^ummF 6{[Hum/[hV7 оR)Bq' 8N2ڔeM4isM'^m4/ OV%ioK[K8DV}Kkd$!m^_?bf#'8|/yY~Gw(;JgXxGYH\uo;y¡1IpY&swgژ \A,2*gg9 =LWS2FT0(KZ.TqI1,$QD$ʑ)gGbfbTHrj1MɴIvI%mհ*iƍFgmzwoZ})qg}a}k$wVG=ͼA<.쌬oUեWV QFVVVZrpJ9ΝJs4'$@gj+R׵SN4=U5^MҴ2 .-KQ; +X+{h#iHјx/ڛcucG F۫xz K_|^}'QͭcW:e6]^N 1Ygqud%ٷ G,s\ g W.6T0&P'`=ݙQYݕT3,(IPҵm/^4kCԴgFլ /Vү-3RgImu7d`O*FxFӫJLB7FjЫRKƭXaΕ9IN(ՔT~!-4z߆5wm}ZS&Ceq'޽{it=kP𮨚',4ZQ޵%Fkgq4>^a%X_Y29K Rb(a`iSJJtj)a)VTe =*E 5:eOZR# x)6^|Gx4ȵixH6 >QKƓOɩ:Jn.1vag8̻KcհxjJs:Zǚ UEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/>KeYZĞ5+xNπg7l&#xJ:Ꚅ6iF[,妑 xI>0w'-Ci ŷM3SՅoxZ汨6.tWFӥV61]w:_†~!x᷁t+˯%2W&E,|Y3o hR[x~{>gyz \Z}Ě _k+{WkK1iv#kP?ej^\W|FѴ x,txƐ 'IV_hqn/#k7t"KC2ZZ\bMӜ*G℣8kũ+uѣ|."CKSO22W4>sᯂeψw-|% xuM#/ i)wd+[xUGk1屵TTFwgִw?xKgW~_XԬ>1[ῆt E+DykMD[N=+ZV(֡ӧ^&Ԩ7N%()E׌rjH84a2.,Q0bp0UTFb%RJRxiTg] 9Q]/w_3_%^{OXZfԭ([֬ˏ4/D/,>|J(kf=|64ό?jv­CVDoO]ti~/ 𼺷tƾѴ=JXtF|8QXW]`hάzx*?X.lD^ gjJTa\ lZ>˱Gxܳ O*ugYUkV1Y*ܹUG73?!x<~s:O5+,|5%}4Ї-81yN">F25\?*yVHk G-Դgǁ]o.Qy[_Y:}ń2ZKᦉᯇB˩~|3?<Mh`K~>>šBk3 Ktr['a9-i$E#YWs,5¨>k^ aß|IoZ?~"R4△V}goO5ykcY×hb\ '㼿_~о*CxoG_52-|<}.xo^5#~=|nluo Λ75/k_[e,˃. #yBX d;ofYkbkSf~6 ;Kà|4~ ǟy[v|I;xJqz'~ ^>/_ #'--F| f^ wc?(|~;K|y}F;Mc ׷}qOW Oŕ fc1^9vWqUo$d.n&˼)_&˨ey? :<,+˨Pr< 1Ϻ~xQ_ه_:{G#J[Lx:,.5o@okw3h~ k,wxU=g:Ϗ xV_=c_M[2jD !ViW>Uƕ|wnnAPRs U 뿎֚MCǾ$+ tOz j*/ x~7,RxnM'~\;"Yb_oĮ'pYLoρpXOpخ"8 ;˼R>!52b>k>-~>1/c_#'/3HWƋ_ǂ>$>_~%ԼeO4jpCB;Lm:wZ៏_@o~^iFW7B|%_x~ F>9MPѼYj~kQXk[8 Gc oar*5jaq|++S&wØ<3ᧈo7>s\}wŸ/^-'jtW&M '[-CVs$z~jz%tkkbOe+]f |loB|" '!SU_\~Dta7~x_WG֖[jWUxw3߇94lî✳aeÓf{[[1YDi-"Im6?O2֧T15N a^ I1EC3i/|B[xs};4 ek~5iq+=DxŎP˿g>)6%4 |.Ե#Auſ <64]wĞ5`кDZ>>5]:ۙ~KrpN7x82^߇Y6UoOb e^>.Oю4a> 0 x՟o>2ZUicgHO ߳\W?ǝkSk-7֡>'2 ºn?~xc *B,V?i_'<9Y־|T |:C];B6ViYUͰ' / pnp<;+ȱ9NgBy χ*qnM(g9u?Le^, 1-3 Λ(=z~k-υKmvnjZ |C<-BѮlH ?>?`Eڻ/K.mc|F?u$9wE|W>sTo`Ɵ-̗0MZ-cR^78* ÜUS,N2Xl3%⌦I\E<Y%|uϦxs\5[.JPЭ7>t+/:ׅu9-;?xQm.d_5u; IlTP#f>%~c_pYN/k*qxzkڮܷWSO^x1\#!0x⺼=p [L3$pgX9G/y/*Ua*1xoiMNCS}[3k2?|?259٢9Giou#iw!-VRLKxCJ_?kzflF jIWE]+M(i]VmWi_V09Ւ#9FKrU&h>kx / 45xk} ĖiucwDhUV2F6NYe(CyƣRu?gR3npV1v2Lf_O 5aq:|>mZ*Cy [ꘚ8g^HS.? >I;Zxkw? gş x3vx{FxMc4↙C\C=̣BjjzWXv~n|WRKgX~*+w>03i.:Dž5b,5EO24jJJˑS(FNU)NS*NSU*f?gJ|ib`qYЭ* ҫsTVOiSJ!aiĺ4 K~F3Oៃ4x5K/aψ>4~AW|7&Hu :յĚ\Wvw/i JhsZZj~.|s"ɨ iu0j1=.-6Y; \a+ⲜNVѯ<,^QVU' *u%W ,t1q凕zcGgOUJ*$Js^4?xßO>˧j6K}^ .ZN7vھmwRQuwt\vua^RQb烩FxJu%Ju}%i(njx}cytڅG±|K-Y+_E|EgϩjweV{;kyvK+$m _`^"O#J9JRq4F<;|7 xzmG|2M^ i3)WLJ_s1a9ؕ,Dp8 S qX^* O ' 5QQJ ,/.ZA5ĬPAK4(f!#FbY 𷉴?xk0NxAԖ U4}bCM[k--7v\Fd dbƓx*8*qX8)r9{FK 4`gi289x~ |uAZb3utuo{6TGZ\/0]N0UX̿O PB!] ?xᙴ? !xcZz5ɦYEmi&}sjuI:-t#13YxYGtk?P빎^7kCEķ2#ί;.sg/{/B6?> GexUXky&&=դ :avmaC H*GjUM_PPE utYhx3oenj5JRxcaS :qrxu:P[JpnQJ[.`JX>%o3d'RgK,>YBoRUSEԕZQ|C}I',''?;_? |y)x/QqOth_1O YxJ+ʿGf~:,~Z߂|g\ŞOᧂy :g9|o*0zN&ZڴS |Ӿ |%??iQ?c*ݥ uߋǥxLΝ)4j- M.&uNm@ eZŸiW Lo|F-/Lj{>%]VzO;z1 ʽO{FUa^4TYekάQISMխ# W1'W93Z8\f*[8t |K| ٧7G9g?ZVOiZC,:Ͼ ~~(u?uo W_ kO  >%GWlMO_KiWt^.iTC2U+/הkTsuUUW5uiS'řT>UlN ɕcs:3<I"Y:\ڵ~;:<57ק7<#9:+O4~-ۯx{Sg{ǟu-?Jm[VƯk2^xVvZ7j?tۏٷG>4,/ǁ,ϋ1񇆼Ei6$o^ݧv tCJ8 XzFT;+/a|DpGM4rW+UcwVL Ĺm|^_CG&~> Ef>1={w쉤~^I+_`> ߋ-;*o:t^n7~&xL<)4;x2?>Y\7Zo/7A|Ok}CiTGI:ھO|# ӗOoxZ[˟׶v}g@-qV+?gL^!)KN?6.>sQIХJ&INuiFSjS?<ڶ/߳ƍy5i>  CĚ6|u{;Zķ9eO}{wN=~>|3?>3mG[_m+?>(įொwf GVQ_~tWӼG~qf>'9/9xS<2#c<5V11YqX 9Y__.s|1>a0|<{|Zئ_ZRk֙/VxS+ 'Z/cPA"G-9Oi^ f?5oc3O~%s¿è#>\ז_tٿi_Ms߇G:j7Vƞ4bsμvY&yGxςSNx,* y/cz.xf؞Ml֦Y\P'ƟVP)c_rLvx/ᗁ $ф/&Rv]:I+.auqθ2ڄsQ>:q#0\ q0W\c7 gS`q|3-数#BQYn Xpx⇂%Mkoßeec>[YiՐf]jZ}Ɨ:-& HԬ]VԴ[((((((((((((((((((((((( Zo?DGWh_-j_Px~^u/N.5ƵaCksF`5++I/{ex?txǞ"}_ ÆK#{ύ> ]Zt vڕtm5;[SOPLI[Pie K4?hM..XӞ[[i\B'VX&Tp(,b_PPE H5FBftTH[b%ҽcwr,`:t0XjE|4lF3?_VR𾡬|OGvZ/6H$%H7RWMPik^׾#L񷁼] Y|CuCȶz}gZkM&[W4YJtj**acNjԨӜ {5*~iJWQj2OZ|=X ٮ/&(cqxwJaaS<|6? ? q *#ޛXoX4(Ks~~#ӯy:\ck^SvHiQB:5XSj'VTgqfԔz C_/g4eƮ:氕ckeج=,<ӕ,M.*U~+-дx\ on߈^%|c;@&a F;vv͌Y4h07_?{w?< è+{<1 vmG[? kNcQ  &&|5aNUԍժ qpZ8(d9uF0 .V FK/pzc*TR8һ,3Ч84a/IOt]:kvVjUxCX[CQM"T.ҧ[{R]m{XԃRtpqmŴNީ4xZaΔITܠ'(M]ixHjVZ6NҬn+H cJ}v—9￲jQt+Y4m//qlE9ԀxV & 'x'N_[xX MӼ=\2^3_Mӯ|3[\iٚu:=sc$ubү`iK[u?g쿡x@;(?A{ڍĚz%ֵvP<)M)Z5x[!+&2XߤF3ʼO\>wo?g^CRҴbm}6UӵH-+;{ }OIa9cKԭmu :n,xcZm4ii٦M5iʄNqNr%(Nq%x2N2OTM=S>t~kZS)EO'ZW<9/|/// |L= ]<;=?^ wWtr$kn./G v?x$o&Wfy &U5{jEsm^km d}Z4#S{X%N(_9RU9sގ4s証;Rg8\/`nXYoc(پ" /J\-eXMWRï"~˿_/<?/C](5 3Fm-tYWGAנH5?XX#H&K_Zox]o?jg#hw-A4;&֧ҖK]TUZ4!UJUKӡY)ѥ%'Nv*ie9~sQi᳌kASqѯĹFe/Weم8a' t0.'|[/GaU>k^^^X3ۓrmvmm[}3U*NU*NNS9NRޭzp_K߀_|/5k2@ll徺ƺ(ú|/[m#Ro|'XO|Ix iZV"qhto}K|Yh:e%,tX%M2W>cj@$$J( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=?*]|;𭝧uLțQ->lq?X>x/L5^0x.NuY+6P7#kkl4X-ⷽῴ%g ~)[xgx~zo,,|9aEs&q\.mauV]9mmd@O|]OSW~|7oOfj=??ڇ~7g>>ϸ ķMZUXE~fWC9;5ԥaY%0;h 4rZtP^ko_ w/Qw PhixÞ Qk LD4ѯL9>,͘ tkV7.UR nn^y(Zu}:8ecaҭ=ZOg~E.nNx[7_8<>_Ÿ k5?h g(j~ ƣy_5 }6-i?nlh=F_h~6k;Sτa;P|!~~)=dkHNx^8x~%{ MvG5=jiGsT:t.E $*/aӦӔԺJ4Si|/C Z7<̩K bpt8lZճ%ĩC' % (׮:ocxWy;_ k|ICE_G- _3\9ğ{GZW5/|JkM3Dt'[G-5~w_~L_x*7HAE<5s__*ԬSb,>i!-SEo,*Ui䊞0ʼ0 UU>Jxh^1ru&t> +ja>!C NCKU>uǬֻ2zu,Unpg 3>2n/_>hy_|ux–wto >dKxMӼALAٮ{;WӾQ>gu.o{O3M{EydO:L]>qi2 jW~:j1:kέ5_CP3]8UZӓԊqn5g/9ni_}G e%VЎ;O ^2R\5ۥ֝zqwVk,wZťݼ4I._k%?_`=ޫc|%mx667Ww$Y𶓢kqpXץ%⬎k)eOO^4=߅:3!xEto> '5+x[G/-`!z5Qg=iٛ⸎S~*?%x[An<~,@Լy`<| %ݼkj^ <)f%ԡJX S :+i-&mெ vPh^!A♼)hu=]Z$Z[KxkO[Oso[ټ +7ƑeY9Sq2ZDW5Hu/s9?:Wj ? ~|"Я<1? s7Ol#׼Ez׺z#OӭT?Km;&}@VL2g]bsId|_yoI;bh05gc*y|Mjoͤq3\ >ysN_[E C3J𾧤?=xQk[Jm֑|kW^Z~wީz|]|da,S:4ӫB[/Ҍtj4CŠt;7^Æheq ,TpUņx|2dr9`O~~W?~h^'/ l=~5dxMψ|A|ois5ωoi!#y.n/RN3*jN*RXJc^Xb&h1:u 'Ӄ쯟pPUqpt-j} *y0V 1:Ua'a迲wo4|[Mw xĞ.GwMּKmivSxCxoIQ?j6.  ]s>#Z/&|8=/uVU}CI8ik~ 5|a{Ú]s9~oWDŽ>xž4/m?%m>_y_څ֧:.MZiZƗ[Idݱ}PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<▥Auz@ѵgZLJ~an.m-GoIE\S1CNKg|Y6hl~>~'/E1hw0¹wo?g^PY0ǍwQ'E6UW;}?}\֯5>վh bӬ7UխNÚ'/nlM:};6IamuJ0ZQiʤ#9&$UۻM-ڱՁB7GQajpНhFE:TMJsZhC/ᯆ\~4)}sĿO/ ki'~&^xQnG/_,Lwզ[Wτ7w7xPUv_uJXh&[U)P҇5gFJIN/GC %S jeRNt8)Ə,2W`pЭUUg*ʓ瀡SգK+FY/iW֩PXxX|gu|+xo[ះƃI>+[_4xWm[3ZJ~k> umG>&{w퇩_Olu|{jbŶvF1Nķڷ~&m=GO_OᢣxFx,c*)Eד5QKӕzp_tB3r>B#>ѩeiէ<֬y*p\J Z*?_PJߊƧ,Gį~ sUeqz+ ^wWSm/g;ֵKhO JH|6/u_xCEo~D,g|Ht}jKmBVe]B &(,5Sf,,Cyۼ=W5 ޹R^˖wU{Gdsaec ˗^&54b\Y6ELWjeYs|O N?ai7֍vZ^f6/wx5C׌|9x wt-/PJuxc/|=?UvuZk*En4V #k=27hffGd|/8pyarNgUFx| lU*x^3JTJHխ RR2iGៈ|{ |uY JxFþZmZjR]k QVMսy5|Kw~Pς3Yxx-c#k~!|8 E|^&Ѥ{g>>YGf{C+c[Tm5f9Ni08*|E )fp]N.7Bq~xC7/|a}o4}|5>˩\h A񎽭_xf %|CgWڎiۥk /mS |?eMC6^ԯ-L_4ǣii~7{ Ǣ]Z\f->&Ͳ, ˱Jijø|V;+.yW\f3[T?0gwJ>9Yx>Եᧉu_]gVqi+<=E /|%lψgX[y :fy>.xq?|U { n3UOSLS+Ji6!uׇM wq /88Ͳ+<,g`aq\Ü)K4}k9f[g<`s4 /ĝcE>| RV"!|[i]|5ZdX}+]Rk'4|zNv_> ڝ>[Xjwާ? hw%qoCxrD`ڋJu[XR>M3,N]f,j԰ƶ7NSK67S C+18jʕl%NJҜj>㟁5 ;Mu> UᲹ\;|0DΛk%/ x(!([?|=Ww旦|>(~ßxSx?]ׯ<| vlz52 CV(6# fIvC?eO#:+f^e^R y.u:#I?m? O?~=|+x@{x/__Ѽ57< agiluohj>uτ!XJFx/_5g@Ÿ ھC#vz쫏~O8Ե?hz6^hn bS[:tgDz6sS/̳<>0W[!|W Y̳*? Džb3ϞGs 6.8P-|yL[?>*0.,tg+熯~|U ܶωma4;vgDӵk|iiV>/OU@f/jvwuYhXJ&ȷÃ0>y9M~"ʳ7 e[94ؼ*F.!Ȳlfٵ,FKƬ>,|JM; yR i^~l<97.Oּ[[D&Ş{cOݭϳ.gs 2}j`<7gPT)g8<'f/' *QJt߆V~/9Wៈ~%)>"3Yf ^þ[o+K*$Ҧנ@Ţ?_Pll5B ?|Q⛏_ğ!|;Ӿ|A#gG?l~CėC⟂?>/h8еx|p /i[ך%:5.pK>N+`p7NJ3Ot0rSfu  zfi ?\K2A:_ ^|a\x&⧄KM2Uּ*X4?K<%-Ii#σ< PGS?#?e6گOB72h5/iqqG~2<> e6'z8pղ^f># 9^qRɱ/!3b!|k7Λi/[xg:Mt&lE]Xqi~#Ż\]Ɵ-umc_HW]ylc9d#'O[r"1|4)% rE|Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh9;>o i>o!⿇s_[3V#[} ~xXTjp[imdxuxW. i_/ ]x^[yLJ1/,n=^jqiZ߈B-5[ /ᝍbO9G Z}];B7q5xMm՝̷O }:ĞOW-ڤާe.=>/T>ӡ/d]]_ݴIFI.Lqfib*@U_PPEo$ĚJЛ?$ʨq&[fA#BEt F/.=7Ii$ր6a/Nm<}ey>v#kP?ej^Eywįw_(| xؾg쿳|J~'ڼ 6|Agi7k_i6K𧆤Wc?G-熵ؠfbFTT>U8ª9bb_,J~ϑ7NissYە6Qa0+FzXl}< zx\J"O9}[scl>_e,\xEn&|]ĖDҤj军Zq~5~̟*տe~1I3| cDĖ @.KwtZ BOO4:K c8VIr8U,hU^Pź*0M 7nl>zX~&Y 8sO'ʞ6*xlnI i TˡN9O'*xIa~;M?!xN#huGzꐈkQx/v^>ҥ<*nzlSۤOB{}keq}qo>ĺGAs෋oęf]cy>MC./*ΰv3># ]\6؜F[Q?|y(ً?Pv |7}[Lp>IIKxveƽ#t}Ee>v?%h> x,M?'?gvexV%j|C,e៴]q^;Ƽ;..YIǑ<%[ŜuN/%.,ɲ^ܣ0Px?$å[92N3) C٠_nS㎅7E~ϟd閗>'M:l!DFhWѭ#&'CzW>iz8i67V: 5_%׵efK×[xE/?1{h 26"`pyfI㸟G2qse F X`q 5_0мEY2HqM⫭Z)zbZ8IԮ yg=k>šwAOk7/žh#B,<@4 Y<{J$ߋ+}s^Y9u?-J[yn3,Ӊ2^1ak`p\~?1 gҧ<[+TH)a1q |-~|8k:[<& 7ƷPAxihWMxm"d *{>x FŶm{5wMwz|osaE5R|Esi O,V.1?r,)8n"ę eW|x7 fu*k `k\.Wc!fρZ2վ1Кo|kͩjW$GKKO}>}6Uӭtm;1#~_ ]x~.}+N}UjP'Uþ+_ |_|I=|3;AQo_GǺi=񝮔 WCï/ex|ż0ͳ lp~e327!җ U8X Rúx^_WIpx<<7oZ^~|ci>{$д)Y> j:'MxY@E5x5gQk4g~4i>=Ǻ9,!+(𥤲,mnbW5.iW_n,]o=+yg0|c/0;IxandMpXeU*ab0s<`s?f|OγZtYÿ\|uX,Np|!g%|]=WG-} MN? 3Lž,/i7|A=džt.o 3ѡ?_ uh1|O⟉r}jV7_i^^,O9"0Ʈa=8 qำ2 䕰833*; 䐩=z)߳o^|;_ O­/N]ͯuό?OxA@վw5[O~~?>;w>?j1fψKe}s:m7 ~1.49RӥKj7Y.7bP:؞-5F/VF].+8# X 2VbHW}¾ Fe:Yk4u]2^x~?sA^¯*Z kN),?bg~jzƯ~u;~^6S/GY%>&`> /ɼԼkROSKJ_^ڕѿbz}ҝNz+ (a:N'}|߳jMN?OGjke&E<> ǁ7|J|A-o:7vY.OOͥjLѬ #Z./|??5Qu_yl-"u? |W 3>?uHd>`X_:擭~{jzMtQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<o)xÞ$O~;υZ`hɨVפ|q/C cgaKl~oꯈZxB׿8M×~ǚ"xk&OR7@uBi[MY#`QOHᯇG|a_ x\iƒ7tODR<]u$~A{Ydp5SZΗgqV7zskoz\:,j^^Ţi>t.1"X /Q@dwQ؅tGXym;Ie%k-{iu 2= 6XW|`x.#+W6V?4xOafeptWSl ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=tW-sǶ:Hn:<[Í"ڮ.{dVkOQԵKAamuqxS׋|!Z|_Yi w|kQ|AOxW:U#Y,.udD5K.:+MZ?~ϾwM.qiq|>|K>Mak=WHu=]loemỽ}>[>8~ A.#Gw\ŽunOxgOҼ>CMJR6^ ~(!+&2XߤF3ʼO\>wo?g^P^ko¾)=xO]׼z喯wPi:'<9x KGkWޛhB _ !=)J0Js4!RZRRd/vWI=:5:J =jeTj4BuiJFQTe '&l#>m_XԒXR 'Iqω׿~_xF?k!~#x/Cm-#xZg_!Wzx~1tM7Ú*|?&aުɨk6qoQEVBuӭRZ8ңiAR8J4\)H̸ e1yM)exUC<~+0cRF80Xx:b(ԥξ!(FsBs,^OxD>(M]7Wg~4|5WLG{R?&qk\$?i?< O>KvGï>/>u; ~#[/мNu׏':ޟ붹 ՞ЬQ({:eZ4BRJUUᅪ*e8561a:X?[[+o6,t ~J~V:2kÚ/x[|-imxo |PIss z/Yq'Aox~h>%^?]X{Y{ė? .P:t[DC| \m5R*-FU)fqt)ԧK5Bn8B2)Ҩԏ%/kV&Up˪d&ScE,F#]Wxłajfⰸ T,6o5/}|w/1 |.ڧÿ9fo*qAk-fG|9CCu/,2Za<UEu'K[xħBo|[OxM<}Kh<)?O g[tk;.n?3_RUӫR"֢O /#RBq8IR oM4S'1Xw1̷F8/ڋХTe78PgXz."k Jx^W~9xAu jo>Y|_Zw~;ϊX_|Nu_^*]A?k;]Ko~|g}?~$[W5>$k>ԼyA.q t+Ǻ.o[~.7uM .V5i>Zx"RRah֨./oIjtzTˇ8CqK3ԥafx3|>ZyUr0O2|*T_zW?h߃_=㟄[Z)~xaD9.o~&Q=:SZVu[kZK5 qwBmᏊ>|ki^"4 :?Oעաm;A}*];TtƵh t6_K-(-+5Wcͽt JwCe{pҾ,kuSi0x*z3اu#ߌZo -4/^DֺU֬xJա*ҧ(ԅW JS(EJOPiU'YIZ^[S2ɱu(c(jaVuhc>L/S4%8 NW:5qxoxR:ޡ|IxM'LOYW0%޹ľ%p-Rm\k7.> ^? k_ i~}H5[|;6x#j=:,׵:R8*qqTci2iGOzI'NpeK FьjRPZJ&ཥju*'779r$񏊴xS~3.t h[k~ &ҭ%Fgľ!Ԛ\ZijmiP} /W~9/ A|CBFJ^o_ox:|CF%׆mV/F=g"{B(((((((((((((((((((((((( Zo?DGWh_-j_P/s~&Wp6u隗~"DDֺ}q{Ud7r htY^+ktFm|Ep>cǚo&nBKΗ {Nϻe`^ՆxLԲgį G*ƟjYwsĿ*+ȣ?#:m±_",m;SOXVMq~ƧjRVzua:ub"NgNI4Ӓ}lIx-,V *KLnQU085HEte Ԍw~u^s~mƬ\:JhI;OO|?m%,|Qm+˼YF ~? |)xV M_~,J׵xš4xY{Zct>[;-Xќ'dZy:x J^ZpNJ%WJ|I{x2qѭ, c3:03X O ,XK0تlF\04+SW 5_n|+mgᕦ[M7ޑ}/\[;KY$-q:x[WI7DZVk *[/$-{-oF9*ڬע)FPsN*nOT(1q\g5$ωU̹Q:5px y#,\ppZ1B9ЭNU:u>|B_ca?H]f>=@h_x]֭t/JGOZii㣢N_sWq{{?uOڔ6'7Əzޚ#M:@>)|@)4 CWUWz^ ṞrUZa8֍Z1QҌ)KRU'Ju2g"|1:8zz*9]<RZ[Rz*S>i_zooq%ƕǴ>8>k[E=+6k)Lï_\3Ɵ/P%Ƴ z@hV6=v^o]lu:FlXj̱n!̕JGHԥʩ{**iPQ3F1sRgɡ ^cjT3GKKX9D1v 1pu3PV&}N)Z>'2=gZ4th~"Mo͢.-_1u߃}=h^4A'|ǃm6-,] 0Zv,hMǍSFZ4MCz4mZZ[jWZ'7)QjZU89qJ9:Tj1tYRkcdo*'8C z8JeiSfarI^>^ cF(4 ğ^iZBi,CnQ{d_|A޿7Я|}_M. ١t4Dޔt/C4n厢AŸg %;⇌_)ďgχ ( (-'>׵:-kU3IGPƱsk6Ol&u+RӵX,5(o쯣nN8<^". CFuj4*եӯj516kJ'Bd֧ EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(~;~iо"xVմsUgnBs+Do,UM!}WP/|'nwyښ~ɡkW[qkc~ʹ׼OsC}<xu8ԏƚg@ 7fJU=ZURR%+^׵gn i:ju]v$u}[ZV*=5XʥlGFxBXXƕZQ)EZRΠΚT1~ueq:1xז_xz-:X,n <j7J4*WዥwƟC?ƙ~.|B# `C Nf9B=>-FB>7_PDx[uwi>"x?|8!$;oz {\4:/x_j:v^ ųiF^ŽM08Z1FҭI ~7R*xiRTN28qW*9&&|a_:xL^I[,(|+OCԯ5|5} Nn|;?/jEk:'uWv\6*C$N6e[_ŦP\7"1hVl,/i9ѕݵL>_ x>R*KKw`^DwM']DRɳ7?m<3fPΩY`qTQ*(sJ&Nk$ѵoz[ I]iCzj~Һo1|a`뿱-~=kwOO$Wwwfn_𿃘,=j\u ajx<9 ?h`s_>!s ڷq[*p0Y&|9b⏍f~7gw5}2 ~xஷou8/t]&+.<;_hzW~˞_&?h)Ox#Ŷo*?YKG+:]}[pxM6e@xI <4k8\,x6o<'e\񗰧t8\s9c2X>8KOj_?-K2^X[Cr>vZLj&[pjv .;[=GL➭VxKZ ^Чz."G~ ֡jv'Ğt6kiu`mqic7sf0xy8nUże,:>xl^iUfЕ*kˈZ*^.Ğ|{>R]_h6mw^|K=O$.k֡6{[Zۇiy"dfsǹ.QO)TpX a\UK GbgS˥F*8L= 4)Y|&1|-OK'Mx\.ŏKѤs:E.x>Լ9\h>2^v/ҼwuzGŏKC{G?hf׼a\4?~V>'Y㟍&^ ;zFY|(>,Yci{f/O.i%Ɵ`G`cx~,ʴA^us|#YpURzug\>&5j)UʮYS7-G3/,ZO#~Vg¾%<,|N6=x'm :敩MjW7 #!qOxsW.L \OYSZ~#gJ+>Gxk|FaG_ 1xyVѼ/6X>:oh #Ꮔd3›ė7Ľ3Pt˛}2/oh~ВxN?ڧZ*|Lw fR7oc>=~xQӼg%ޙ)1aKxGKm5-sY\!#Sa ŅrZ?~-xG// \Cxٍn*ȱԧV0T=U]/_sĞ>gsҵ|_ݠvKbNtό:UgXoo`7gø;q{smQj_F[{o%)xNK{~!w{vWhZ'eQC6ʏGS+yuy x Iio:>}jӯ.uXSU SSյ]c^..n m:9#Ӵ];Lmln"|\#==k#Np#T(?՗dwUGSC׬-?D."]~ɟ sq!1?fo xþ%|L/52Oc}Jl8n-&\M>90oQx.544A9NcOl@|޺qᏂ?~0~ӚǍEeX2N׀> X|>m/[ +HĚ <W cuwxѼq AJx79v?m߲e^ݕׄ|u{5i z ;h6g ~ 5%BKcYP~;[ᚹ}JS+qNqUWV7+.xuK7@qzo x6:^xU4.mK~R:s\ ǣY:i"La8|t_'+~ڧ_|eoJ]+NX_?g{?o_=1hqSx0s+ iSq >$xC!/wEj>o|'ׄ9|2/?xJ¾|o.mk ծ; xG[iIɟqMqg{-\| ɩ|s%ǏW ٺ_ !>;ӱFxGM>o- _ƺ5z?K5WM .IҬ?i?>;KO׎CO_|6|!?x灾 hz焢D|++}J9tGwԳCwY ~'c^`0e6| U13yc®C,=Lp^2|RQρ>ŝp޻{υD\:5`7|gF4]6-u-K03ډ!m#u4g>?Θtcw~x[-դt/Mn{Ci,^[;C"p|m9j XC!fiO!͈xVX, |L*rjq(@(((((((((((((((((:Duv g"֥n_k@Ex=3yk'Sۧk٢}7B>)xK rn[$g9)-/4G߆4߉?t ŷ|7g4p/-uL-yQQv({MXZxw{ '鈑yiV[6 1\=3۪EQXw[Mmo5Ki,Ik-[>ٯwI?}A4'kQ@y?ŏg^Lo~~ſxǃuE4 R֥N-5KmZ'SDӀ=+LkN4mBV5[+]KKt˸/KN.l/dX-n dIbucz2-D֤Ҧ4}/VB"4Iu->M[ cJ{em;TPP0k{wnfG_D|3KŸ^FÿxDK }/E׵+Z>aZFiiizoq}aakogi_ᯃ4vlKNiqi}KZ}ڸʓ`eV>IJKk>/K;u+Kz>k]Fᴃ,Cu$]\CĹs#k7#H\QĪLB,b*攳ʵo*3ts~<ҋt IVWg]O> /BV>_ GUXS:4'K:^}7 BYF)`(xHE)$RHF(Uԕ`A"VzZJjIʥZJS۔6sq/qx~;VUXn"+7yb+ΥjfJmw~xkF_+x;Öix{~ xkBgx4m F4wwK[X Vwe@Xg)|B6/kXv=*;KCGk%Yn$)kQMjM*+K;}o~(>Gğjūx|cR+ẲQ׈5,m๵K)Vx! F]NYن/&py_l)b/*)TL Z# ɰxFkS(r/{Ï_|2y9拦zڅ1Y_I}c;E$(//o>;A?vmW -M1 xgCltKֿ ͌ Yzy 3qiWqLljmL2Ԇ[33rիguHԩ0ׅ*oW~xЯ5;n izVq}s/s[FVm'߇|WV>+K+h,`E k[h{xcP88@UEU/|3x/N7x_k΋kr_j.X`KM_xKY\/u6wٮU2_GQ\,DR17,f-RNjfூ~Ϛw }w .Xgy`\_xCZz^Zw]K&0{xs@OG?m6O GOeoq6˧iaQh֓F 8ό1s8%ϫfk6q6fyX -XV?[BXVsӝZt8R9i¿_'3WM<-^xg4?I&o]fhTyr~i5mgxψ_|:ovj7:gJc[ou}[P}KWֵJSqE<*ggW8sc$& y<~*gXf`,o//|&Ljm>žug_T`𶓥Ej.dOr2͙k]Kß? |AZx_º7/д o˺Y3)qwn!ey#ŕE+q<2+eIP˫pհ̥X:z0q o Qg8U񭏄x+Ö~0[ص/[h%> ;Y.Vdq' i $ POh|>,/=س%Lӣ!YOMEVf\qƙ3_a;2lv3ρs+^6Y6 ;ӧ|KY|U&s_xO|;_Wt|=[q,j A*g|=WySt >;~uqielRC__0RwOqs(/3Tk$?_OLu#E5+K}o7X1j0uqo4Ϫxxo<=m@㽗WVnn5+5 .+W}25u/[^&c(|I= Y|AO !D x}kok:E~om1U;<dX0T~&β'+֠ У5Xg W8ZU9_/A]~C3x~|kc23Qk:bxDvRV/,!6gS~ zCVOi I [1t51x]1/[ñGΚl/)o 51u|<E9vm92}vN;ͳ Z:'o|cl2;]7[u;yP(ibGS nm{; xfm4*ۭ" i׺S)m o.Nmn%|EltsN358*Yls'?G.K1G^k 6K { tLƜ)cq1Sxo@gt3>(okno:6ɩj:)#_\u g?k4<;[ t/%#?YixUyWxmyX^,3:x.& %<%s .sp:x\3,L#p<>UUp4aƝ E@:2@-|+K^Aҡޯ<:oãS[imu$:Re߄M$|eoc +(4A㓥N4h>ŴpqK |QUq&eَOTg Sb/7 X̻4JXu0DlM*> huOZ'ůE⎑/ |GA&^񵞕u{(v*P dc]Sa1_>'_k7 7/ ׾xkNvRIy9&^)xC `(tp9e#qwSg\)`ͰLJ%j\%B[UC Jr  > mS^$|3iڟ/5]V^xN5X}RƁeglЮ5 zYB-8.cPfGdf5y`rl4}G-J1pxjx*r\>[ETZQ_,EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(?< F6ΉeώCѴ_ j{\%ƛn xS+HmSދx ?kCc|Ҽߋί_X[hFp|Ma}cǞ3M-#imbΕ83_X-*E |h>&7m[ lixpVІyeoC7$ݵ>a6?I?JC%dѵv K(VDԯ?\I4`m*$[X/b/' (a/Nm<}ey>v#kP?ej^EbxhxTY")*)*E|3z쭡6oxoϊ4߄^1m| ~ϏtF"v:e5W厝mR/<)o|Ox{DwC~&x:hwznkZ]֛z\j7vG4I ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@'~$xSv]y#ݡx3^/-"7-_xWt.?ˬi2^iކ!*Iœ9FWJJ*Wm%դmW^9+SFч=ZӍ:p朣NIsNQ$gx7_?v/4?j0~z1ҵ{O$G/ ӴB|OӢ`O kyku?|S^[|5~WQ^|CxbP59ièjw1Oxj+ ȓy0J!JS\RhЖM]UaʽyJܾb8{9Э 6jѝ(FcK*ө(p֥AӋu.Q\NJP/okׄ|G'Hw5#aiеаm/;H-l#l0)~9WM}I%5OkŴSO^$ѣSӓNjپէJAw,NTteݩ8^?7;vG yi'YP_iIZ==4]_;|j9)gXi85/$H"G)wv!UAf k3?g&^T4KUG gc [G ۧk_|!qule*((((((((((((((((((((((((((( Zo?DGWh_-j_Pl档t1?.WLJ>xǺg4'f x&--lΩpaM |־h _ xڗº}gWltfOmi=cMӧJӤѵ 5;`  ~xoe K^ \"6[zeO ˭7t;gU4&c%1C=xUU+X5T/d|A[/Ru5[|5u[xm?gπ?/隟_oxQo_ayP sG]RIt*#ׅ/C@VL2g]bsId|_yoI;bhN2x8|\ÿmWO~Omo[W>#Nadσ ~>,g7SG~F 5/B<>1xdGCÚkOjݕ1їyQcSG+rWNW U!MBj*r'8(U1aa* b.ΝOَ+۟? 𮗮^èZwf=[vڝ "h7Xh ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@syhBwx>/ 0ҬtI>(WWGf[R.DSl_g~~ no6O/$utoiOamk^HPk)8?}>xR~6,fKzF FGvcu>770Gᔂ']~x>~sᯂ~'m'?|9Z~z^-a%͍ zV:k=]k8n 8FYqFM\&qپ3>d )ɰT0rf9#aSQkJ&8m*tPσ>,OIo |KFEu~iV|lvrgҕ4-zZ~4߈ >,4 5(~o$Ѥ6-Q>(B%9} v+W嘼/̱82`w[ xL^}lD0_XW<]?e ύhhZs.\nA!׼{ZZy|!az^ m{ƨiZaWv3A _mgԚ C/!fG4-=᛿wZl)e3ZkxaTP)ane8'\A s9}\$X|El=YvQ,2J),FQ`ɃSF@|iGZ/ _K|@߃|U烼IxcPPƤXc溳-v 9]cHuqan|p7O/!פXjhV-k<چ{ K֯!ԑO<_ j p>#1ⓧsF"0q&+_>0ͺM;ċO_| RKWO"KUQ|q?&-'<N_ ǩOI4=f;ks>55+yZ]C$K<5.sW05a51+acξQtlZXjT*B ? 9|| V~'_<'榯$mk_T:=m5op)ǹ ;ω>׀g7ki~-SjJνwWΏ >Ţ·\x ⌯7 #8s;OeiО;M9UPx-i4vjKCN&+uU9]_xw i£p>(Xw_φ$xL֮y)^x4 G#IQ kWS̳1ٽ, Ӄg [:K)" Rll( <#Ba_q?oj"<7~ >:.4}[.1{{y"u@tIsW<{_~1+K/zo>!xGYmoJ'tj)xG]arn/QN|۵[ۘ຿[[e[ł!8@;j (cƻc~y|*_o+?pO>z?ھ׮kQ@d5F_+?;yWy_iˇ|G֡?pZjzVZ cMլM͍ ޙ}oF9a7:~giXϳʹh)ԢڒiM4kT5eBs8T9SNQ' 8R((2IIM4g^;_6jw)ߋ,ўEZnZŲwko@4}yY׮ 2^?|:,C5YH[>0Ԥ3φ/O>wok1x Q}R@z\M6SqsUZp՜S6*NRpTld$0fNdsl>"幆#Z8,&7RRaZ0|Eji(ί-7|I ?4_xſٻ⾋/Z/]|F~h[#?e[+k~ auhmא&24"jm,]\;' N>Zt2QKÕxх=xW_z& l&¹~վ|^=F& ~%`Eމ?^$Hu "4>oCh]jZ}Z]J2-m/5 ZR~w k_}xuw:^5)N{jtj$쿉J^*0gXlʖc*pOOIbhP0 \cR0+hENyR\-+Dx7HOP 7 d>_fm yي2:kzu:cizY\Y]G-ݭNOo~;~~: ~_~7|'Xx_M״bxOᇅdW[m+ϋKME`uI<-hqIe^Ax.|?r?_q/kg<a3.W)˟ҟ |aCጥ`o34^Ҽ ve~񎅩'u^[NP\2&K)OJO|\߅x?x_l6_T? &ό5Qm/x~KuOO#d7=nY*qL9Uy[y|s"ɳ,+Fo_*̿k``bkR=xton]?>%q??n\ mһy:?tHPW~ |V)/~5ZVx|?k<{G=s^k>-+ k]цmMHM֏w^cVx}S6 B:8L6̰Xb]*n 8S5*u1Uh*G5?fψ=¯!;|]ccl<}|L'kgSOӮKO֢WA".<7O^n8|HѼ__1,d';-E߆tm4i_+8CUAqr 8QxWȲ_9/ V_Ͳ>Od8hO3e<"aaCX*7Ԟ tl~"麝#umvUOgg6']Vd^E5s_ ES^пg i_u|5//C k8 ]Iׂ|Mj'_fs,sa8jȸþ(eYr>3aaŸNuabqqUu|p2Ԕhe9^$>deo~-ĉѼ=~/sv>_뷺KCu;OT6%mkg{ W%ѯX\xㆲ^.~/xE/ ~QxjKy]ǪY,Ė/c%ꗺǾh=G4׋-ioY?o/_zMI]šfJP,vtQܷVp<9!3'Z>!xgwlIeqT*szٝ ֽ\Vq9>/ѡ#dω{ij|*fix÷1k>k$U?f xJ"[/쏡x~5P5 yQueiNA6]n֓C;NJ~#0 \u!s<Ȳ2e_p6#\|G.kp>+xL7a xW-ѽѼ77>atlKrZ)ֵ b Tڥ"5>4buib1N3%iWW%v*9v޲ݷ`W0Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<^$φtԼ!xN]eAt+8>,ubvoHӡp6=A~| l,xO [šƚlz]-޿]NN;<j>0PuV_<}૯I^AZq&/H_n6jڅj %v'lr^5]s:hzƫi|u3][Gq6Ӎܶm!YjT|D tPX0)tU_"% y|?54幸E#iW sq-Ӏ'>|8e^j|Hnotpo{lM[1}k Ņnc5F@Q@Q@Q@Q@KRtgN5{ -WIltOKԭ`ӵ>[k;y$H'GTtvS+ῆ4;=> o hY&6FXZmYf0YZCI$+؞湤2$3,|2lN; b21+x:.1U; cpl\KB3FHUè(((Ad=5xï]> wZΧ=GG/t/zuӬk׺~a]k:FO ~y_9iN2Ҷ qY~c~_R8l]lϩURT^ph ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@ß|[sh|>:>'VskKy:uXMYtɮ--uO k?{MXx"\/? xSӼ yu֧ /Vƅm,YiZk,`%J >IX[:6)f}vOX-I|a,z46:mw4>@}A@VL2g]bsId|_yoI;bh7iOx <_ hz~jkw u;.;.6A^h^om*α((((((((((((((((((((((((((((:Duv g"֥n_k@Ey-Kǚ}kεqk7"\Z[ ԧ}]cJϐwm-1}L3N<_xgw'Kÿ sAKjm盻|hb'aj/C_ :dFҴrŧ\2Go  ;=GZkĚ4OjN\ғU7L[؛}~$J(|RQqR|N*mݦXӡ[aj5c8BTN#ZE*pp%9-^I4|csǀ|yK|A z';º?[KԮu_ZGcHna 3[BourF+JV!_WW~ xf_O|QGui+ixT|^x< ;Z?5SgxEH~'į_~c/hĽCණywzΫj~0T𥖏h֢MQ}fVjݴTa qjVukPTJ:NR—-JrSJuR)FT5V0} >[ E.#qy(hgζ+p ~l bjt8^ L D1԰%hjV%ܮV5^-^{O3AԵ]F/5MgT|xbKj*IRCD{bnh [P{*e?`] x^Eo7Q.LjKE_*jg*!W/m8„NJTIʲ%)q٪ eYuz؜ 13+ C8hb(C p8tLzN~_ץno 07O?Ěio~4<=a/A5τA^׎Դ;O$O[F}YAFOcҼQwka(_NORKewi6it}cGk-^Z4g K:J4MMµIO>VIŦWN44+VyWeG&Tu26"1}jNkNS>~?_|`"_bZ,<6|yڶ|Aceg s\+H>~wpF,-7ÏKI|Z|3 .kkzޑPX/Mr[ȮN4- ~ѦsPq>BHJ)WïU,5XJhb RG9^:!q-RxR᰸Tc+b_W3ʩGc(V3\4>3mCiԬk-?mx?=A>5_1Sh < ;7]?B; #hY-eYJ*RS)"^٨bM)5RʝhӼ*dͰVV l3Ͱ^BpY1if[ W~*|_ OA1xmTXI;'OvwֻoE}WG{x;CxKo'@CSs/| VмCv> ]Oye~.hZ&=i:u?"I*uaMUKR.TcR8K tZJMХYF\_NkZdXLu$1ю X20+d4Sʥ` N Y#FxSc_|ᯂZok9W /g<+{>$ޕĚM헎ڮ&ቆ=?H"M'78ׄ+|S57Vmm&,>6bOմbQԵAakO Bݮ/KQk}\ =~<3+۽F:5 .Α!TZŲD7+Kѭ?IPյit+k iu]U׵NX-b)5 o\ԵgWt7:{=I}PX@|ID ML'Iei$lR4-$WBmbtKhn*%ga D3Gm<-.FP~#|45τzF>|IkãM07GAc _ڭ~-SV?<)kƿtg-7zÏj6Zo>9[욇o5gxW\.|7j~3P#$P*UTe]NXǚ'Rd)*Xgq/ xjUKW F6Q*,Thb1XJRq›<sߏ i Sᾯi3fٷý^֥mgOWk+UwxZƱlBkn4M7Scx~Y'?> .C'4M#úzx_ψ:'< W%~#PuEn]T^X> dT)F*T%**B#퓥U^RTzP,fY:}C |[V fؚ_2b~c<0K,j_xWm:٣`M;P~ i|/Q?t}k\j W^.K?64/?~9u<|8?hx4_?ᮕ(|'=a@h#%OQyǪoh]<ҕJl,QբTS )EKUFJYƜ*NQN:ύ8\qٖI7{_j7Z ߅sBtPOXVNJѧ]F T[J*\c)಼D8ldx|0cfx`cyz8<pZ1>yէJ(RF|/Mk U-f.)/=sU?hvwxWLҵ-Af/k[ _ԥx9J1R(9y}%:j׳=֫!UsEW+1n3)QdjӣOa^AOUX|. D#ᇕ/wSg|&D~-;;</[ᧁ~ÿ~i,u?K i1"!Mο+XP4ً*KM;|5?Q V]|/|^m54񦿮j|w5+haM,m4gJti֖**R篌XƝ:yk'B+UU]VsRuNӇFix,V NW;U*~Z<'έ|< \fNx5(xUtXdf|\3Ggcizl'ZM[{3o7?lj/xiv~ }Ay O?U/K4k|to_ [F[K?wƨQh5k~8Ct.s*pӧ[Ft=ka"J09JN[B0iqfY ĘN3l.=^/G WeK49>h.֫,ρ?>8/m W_o>:?=_PYM/{jwY:۫I䲃H%/̺ ߈zޭ+TqM}ៀgX\hI[osK|B;k?xRxE Y.6Uq% t(R2'TUkԌ%FUJZ*)Gęmj!QS x>147 G%Qq}(aq=ZUj\W/ OYh _:2j~tI[;x ^v]6:at4??|5^.ҮtOxg_Q52vkyipB,so$SEOU׾i{|sҾ1| ߉:o?|%_iZ? 9Z~s|4׎.ලk隦Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<iY(C_|7^u_C|{w/X&uL'/ROmEjKKMo/tֲX/෌5_+?uU8o/ 6g ˉf/y&k8(P[C,\Y0PY0ɝwQ'Ey~m澾oٿ&|'g5C֢ ɆL뺌^nvi:,Oo5~7y;<]?G}yŸ~"\xw`>ϡq9>#Wd?%FKS!ZR~֗W!>eν{vV7Xw.l2nK~ozgbo|C_Gԟ 4OWI__J' _bf9u~ |&STK7%έk7^W=aC{ŚUG~~=(~\}T ~1h _>t06/i|e[Lnm̂^])q|9搽xIͅi6ګ~z?>T0K F7K Pþ!m';ѓYCwR+~)_~gC6 9oxwON_ ~*75;熤?\`Lze\"\n[Sp~EKW+kf)lj9~OĞ.gnaqCnnk_ Uo7'G|8&gL}Lh6+<#/z5/|n,|QA;ɯOq7g?(1;o&z ] H~ ]kZxA_1iB5SAuE 1?Gi!̓3ㅲ)8bX/+p]Lj3/-O&q7̳51ړ_e?xw\~%|:%\ZWmouV-6g\_Q{5ҿh/m/POk^tZFvo_jS麏ǁⱼtWwSE\^+2^u:^Uor ،~7*^1S<l|zx_~ΜC|P$_ v.hO_ |J𮷥uj ~ |? ۟xs^׆5&XڧK_4By<][k=|-9ֵ jI b?tM,m WmU$.e_PC ˸w4x0XZ>E.3,n57/.Y,bԧ\]GWL?k_"7+ÿ>i'Ŀx "-<'O?~v6v7|aB[7O!oO 8/7ϼE48xk fn"Bbo{yVbS20rlF7bg Y|LDt_52]ˠ@մRᇏ>,Dxkg[_h}7Y/v>:F?:9\3!<[ x=WD<[Km<~+ Kr9#pY;8 lj+bFO,JyІoRX*x>A_!~1xMkG)Ӧ4__ME-xsׅ_ u;XQ冽m<kMl/x};w6 |9eI쮢{?C> Kb jkugy{ #xz8ᬛ >TsF#6`𸊙:N832RqxL-qʤ0Q?֣@?]-t)E1VMưcGP]QN$^#n5}jFk9-4.ď^;gu?>[V+7T/g]{* IꚗuMZ] !ҩü#ʖ]p,qvUf5Zhp+g/<'?i?ꟲVE.W|Q⫻,,ѢG.s=]~֟ |]xCZ/,q|H{+wu Vxn4yc :- JTҮRC\ښ-~?|%q|GŒ7<焸{2 8_]ÙO`a08>7x.;3!wN1X `~ҟQ|<5-+㾑{j,>zvw‡ᗇ-υoC|bMu;mgCG֠oi_4B/_ ~2W׏7Ow<5xxΓ|> km!<_Kݟ 3u1L 1ɲxf=ReGVl7ȳU|?ؼJ7QoAB[m:kw@6On xEth/<Oh?|'{i_t$>H_x4VU{p&ix?^iV |Q}nWcKN9 z\5S8C<\VaO,3 fao'My^=CŖ.hi7𞩨:|+WMy9o+SziZŅs̐z-?hU( 2:PSj Y!/Jz FNãF>8Kx\Fq} (f;0slvU{ wK.s?pLΎAĵ0 q+phWPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(ɼ{u/x>!w>si&p][^Mǀe6= k 9.!9{"9i ^/4_]JhxlזĨ9<>#?`5/}M_/|xw^?2ß茇× |2E`.,ck6jz?`.˛/ٓVg-Cjw-ӼUz_HEKt-E12O'7a/o5k+?Hz(N3xXIOPNNS%{)KSV#|>C:o? B5bjd+O /I'?e_ >+M)oqҦF)cIy#tI43U%)2FHtC4E "2RF:*NM?Zj+9w>bqTpX\"2xL,fp1xlChV3ZY=Lhz5hZό|GTƞ/|G:j:ͯ+Ay `𞅧E1#w3~)h~.?k͟ as@tˉu_%f8 a2Jo)qkf)G.UcdٞSn.rlpx,Z!> m|;:/>-֍6?Qx#W4Ծ|$U?:Vg^nc=zX{SླC^ǟۥWxC~ ̶ºM;~ˬ+Kn+x#_*>i_N W:"eqnqZI}W7u뚗%׉ZO7lOXln jmj8<UpUp9mL9f\$f2bxRJ&"xMP#@7BT<=j6aeƓqTiWM4+|7"mu;\f.eozFU΀g oե5Zke.fĹ}j8^s쫈3iU\M|ヅl.+ R_4L]?~|?x;w7ž#ǭ7exY_Š Rƣj붱 X,4t;6_g/r5/Bn/o,Z\ӚPƢVMvYkfT[c#xO5+Oc_q]|!bg ȰTie+*:Vy̩cM/i,TP<"v|Dό%xk×=_e]<+HuM;KmW~/6?o g %_G_~ '| u«k |'_ ._ 7u}_υ7sMOup#\.?ҢxC"uMyN1L øVoܿ:7?p83αl`@ͷ5q>'i_Oe؜VMφq؅^1LV"[,˰Wuľ Yn|s3Fo;/T wKAeqyxNw-vph;.~:/jQj)?vq_ x_6k:2ie`#X-R%򸓍q1<+1=< yS {UfmuڅJt )=7xNj>*xi//(^-G4L}4/z͍Ꮛl^[ͨ\hj%m >xUP|sMF~,szQwT"NM>$[jČ6s!!yW^(p,78 O8xlBYsSNZSS~<3Sooi>uCws}ym#=ݽ̶Eaj8|ECǺƣ:ُ|EgC};!o4iYYp>"ld),UI™>ayO-%,Nc 8˱:Zcb^w*h2YN_dn (KC}hz-~4jZ?xTᏂ624/B-:?|R4*k;N-F|E'Z}P~,|k#|7kGt[Sj~)19|Zv1 >_6Jh1]c7n9_>EeX&? Z 1γ χpn;Tqwc\ޗGkW 2܃(!G_ wC~'xPҼw<Gwm5jv?\_˨x3>׈4E5/ \zw;i~2W+¯~ xO֫o_eY5h-զQ|׺5}izO=*y,1EKrGQA+t3[q~䰹 ڹVIT0L*Z~Xs߱_|9աA'jgugmDŽ-G7lxEZώM⿉$vᯈ:%څ߱?|Ggׯ&S Dt~*m}_|%汩Mׇ4WK>e#yZz/qٞ5O02|NTq)q8\W=F֢m~6<\63*Te^.`8pocHO=}g7"|O2wo_ [M{2ܚ^MZxQ>4|k{K{?~:ǀ_+wz?#⦳ Fu<1,𮆱X&&-ٓğ ~*|? .qǏ4oنsE7Z\;~Dc@t/H?+1wHuJ{Oxle.,X ;dX0lc.0If8Y84xlMyVPC^l(hM7tUw>xׁ|cL[kBִ:/T}gKh:Hts_^>942>3kֱb͍njok>_oExWuM:>0Oo4_ x+M`TKHcU,dz ⯄^|Kvy,zy+Oaus ]b* Z+H&S'1B@=j+&2XߤF3ʼO\>wo?g^P^]7.~/־(HԿj Ɛ^i}=V&G TtBD4߱W}JV}GU='ŬV>+4 g^|mgjg|ֱ? x_þ&BO ]PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(|_~9tkuNtK?~"x"k]>uW^*2cM4rO:[E,F|!_-Þ#>140|M\Ki=՝ֵ>.cǚo&nBK$%¤P $qT@ (-I/a}>ӸkKhWA=uqomsmIvE5O:?o>xw?nÿ>+ׂ%w]KQ x>aɬthmwoqh!d|O N$'Sմvҵx ^NO%'Tyo }ᧁ<xğuSC|-xωK?i z>ois\mγPז{5Ԗ:g–ڿ]5_rXhv^;o]Z!Xyu22ǧh-Cj:: kiױhڎNIm*i׺gxzXӭ/ 3vs[G-ƙ,{~ϓ~ӷo?iؾ > Ӽ/!SZ{}b.ن@mfҕOeVTԅDkIJ׳k۳:8<>*0xzЪ.^g sr׿+ f<2?Ma3ZDéx(~ҳ[BG?h&p4V1xQQC_h3~؟ ,u?pxA|ռc5!վ5hz%<ǀbҼmy˫Ȟ%R/\N3SKbTtUOOr~S7++fJLӈͧ^S^'ÿCSkҽΡ-ɞg ?,~l|W7SKo|H|5/5,lCe=;%39n6BUaΝvgJӜTrrJGWgZK|ϲP4]|&i*~ x,. QxiP:T/p-hܿ |'Fp|#<(φ>XmxbJ𝯇#i|3oFCMG?-_-/?gϊ -SE~4xMoցGS7ź߃n975}N]x|-ZqT:^X:p):ts׫ZU)=QPoKx-voW<5drOӯp2RXlK x֓P4%,5D<]voK}Ք+c6,lK?|@W/3]º|,7xsHfߍox;>YjWjV[xKFHUݽҮcNWaUƥ~z5i֤]+::RZ88| y.|jH4/v=j:.'XxO@U]|UeW8 !~? h ~DŽ1%]?_*ëxJW~ 6U|6Ωi:i?y׷P}r̽m7gO9s/|?h ~Ǟ>%ZEUÿ$a>!?&-Uӧׅ3o8 ~~o3,1m /.aNiJ>:Zj_Y#Ɯdy:埽q1\ &&1?u2fqΕL󥆥V3*MVxї?a_YxoKx]k\OoPLɥWZ-OG;FXne<MtgoSǀ^?$>ou=;}?Jm{S44jw4f掠-&W՞I>^[3GT30UBxǞ5xk> g^Xn,tm>( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@1OLZI6hMеv7Ry,4I5l(dhKix.t <-5+o{2SoiavZʹ[KkK=1b7"ZΚ6/⮏WJӾ Y|3i8b_*+eK1tڑ[ K4?öZ^Y[äX֖E#Skmbd"*m_,m"4 (aG=?t_#B_I??Z*\H6iep3_,;,- Y3 ]Dף\f-7Tu:-WOc{5$e4آuwv7QŬJ'ºŷsSNO[ºsEĢ jIOY#no`Hf89B0srSN`ڳZn][KGM USOS UuaѦ^u#OJZQʒ|tx7ÿO[>5'>EZ4Z*öҗD7_A-3G/ӵKKƿ[C~ʟn|Gg O~ >Z[^? jV6QYeơmCpoNi{LneMTqQSN/4ҕXU̥ /W88$,qXS'8GqRh*67*OlEVTkaڇ"Q|;?t,>&m/W~wA'>}];x3_><{}>W<'"x9@3A#_H9%xL:o^q[ԃRQ*ӋS^IV<"# S4PgOK{a*#jԌU=$ؿ-wտe߅t|mCS_^Ҽ%xW]l%ait=B{m8${[eHHM#Q'|wρ_g;_.Mῇ|3vv i{B~gZGmuxk,/RaK{W\΄+TѦLM N {J^/˚}|=\F726e|Qa%o7ql&Y)}g2՝:O3S}*V2gW߀_~#Xe_|7 <kV<'h:u;jmO߃~#VQھ i 7%ͯ_xA4 .6s fGj*UsXcOCK餶 S FӴi@u~NSү繒-໴&Hgh٣e)cfIъN².UYPg?bF**XpsN2i)&¤ZƓq^pjt֛gaj:iwj/ [;Hg( *MkIS4]oUӟQ[3EPW,aqeͤZ1iq&Gw>feGV˱Ա| ~O12iCVQ8*Ӣҩ8Ň/~|o_? %/oxS[զ% M-dwUU- .>ͱ9pwj~Iai0ԱIrP+Jƾ*T HIe"$i%FT8K<;3@M3Su6Xѵ_Hl/U.KO.,/dH綹H'XVteTj<*ӡ:V )QT#V(՝:nJs*jh/QYVtƓk˪ik%jf=({ȡ{{Y (g9.Y5ByJ4(խ(R^qNu% 4)ʵzPRqF'VF)ӄ7Ŵ4xo7妁\Ʈ-Xjw㳳dl'I>K;;Au:gä^kUq]Ρi>gCe,s.ϨZg̱gfT2BqS ^8e:8P5V4%q੼,RRSa ?ho?!'1p-|Kω /#𖷫peH7C$nw+Vxᦟi:_< uoz|>e ]faG7%I{z\|:c߆~?Xho?k^R95~I׊;mIhY%]I~|~M5|i45_MnKmBγkgpVck k-^2~#%(9Lޮgaa;%U0xx7ZXztW@p5x}ׇu ?UºVt卾X7ijAz9w5fyV?'T>ʳ8Sj`seuT0b}G{E:UR9[Tg)K8Dw<[ i^Ե]/Ob%aiY-㓪n]eӧO00+RuagV[SxS,FR)VZ1 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@9x_E5?xEtMON.|unWj.4vm$ZZCnvO+_>M~ONg^-$E]56E薂mO_e[sz 4#Fӭ_ټAC"~orQxvbԼO_eyCC*iuO(o\mc/4 kv$ΗL5MJWӴ(lྰk+0Ik+V3EvPY0ǍwQ'E6UW;}?}\֢ ɆOƾ1]uJT%ZJѯZx,}JUHU8U aQJg*t?ReXJy>]cqY<֔Iqe~*ྥN862l c1YjlUJ*" :~5=0f?ڎ? ~$BGkS+ |:~)/-WZ|1}_-xwM7-ߞKk_N;P6_ ڱ mcSN߲7 B,ls<5B9VӧS N4VZAU˖:ΤTu%JR8<$'<,e0x<ɰXn&,~VGqxL¦*3#|AŻ8pՎG/kY-,NOz.{{i[k7iŬu:\jڿ OKxR/0[ۢOvإh_|8>tswi awW +&om^g]O>#׀巾[ Zz|?IQ;xYdQxpcO [%r63.[qeM/rep>h|$| ]+[д }{R$0׿e~sOO$iLJuOz?i??EWKЮS?h~Z"xޙuKCm,i=<\X>%esf_*xqY¸'ȸ]d^29nC[:0U2_ {+xl Ozxo#|]/Z<{֭tMoY={%ŽVx~h2K;'-D|7g/}KYM7> oσ<=c:mBkzCcsTeMᶷ^5k`߃8+}G nɸ^(W%O{W Ftҧ_6:T|4(>/t YO>7y~)xۆ&KXsٗ,˄q7po9>"? - gyaLym\OW(qYn>bjӣUe1]x>?|"x⾗sYo#u6guWĚOuޣfךOxF<<-1Kqc.'w߲?d߉~$~txgT㿊:?Zx{#~5+kkcM_H(-Ǽ)|r aGN  *5)%xv_ Z$؜|a*j y k'n>@h_y+lzᖑ7,] $ե`8+W)q3QʳzuodNs̋^ L|N?/{5wšWE+|Dn_ Þ>c4$tj?xľ#*xƓZ>?%zO.<5xZ*9|S{K+~Ҟh/'c~͞ a(h+ͭ|%aP>S7B|Fnr>~,WVW[G7\xXX~ xk64U7 4q$`x[3|6 Wb<7xwe,NJd_OK2( b˳7qk0?X2>_\_s]O~NjHҭY_ i1j`S0Cs?8|V`F S IPXTZI%MSN.jSWEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/8OH4GqoyyBg_[!šo}{Mo4 H%olh,baym,P۵u{5i@㯉oZԮ5- z}ws~𾽧e?6lФ1:ΚK6vg}w6KeAk}i#"3^[As " (KujBX~S ,d+R̰A}knI\m@yߊ GwZhwv ~Y⸋\OkuG>$ϥ@> /.G|)#/7ZO ks;Yj&koS"\[M72IQ@Q@~ƃ{iOisMu ഞlLeZl5{ iz*7</Vx\V/B,iqT1uTUFR˰Pqpe*`Q\xº<7GZrj ^K5jZm ucrsq q*ul\,Kౘ0u] fC :85XWUFg :ua 2jҌi""(TEUU@ mmնml x_Bxj.yc\GZm}c47iݴ[,3eI"bQNQEQ i 0ƑCHQHDDQUeOG.Vx|V'J,cRPUrQSK(STۧ:\¦g6j:}_Xib=*k$=KN]VS GM,LF.쮠 >ONio>!|OO>8>>1nl4ֵgY'F3Ohfeke@OG fy%,/Sͱx؜Z8,Jk,^1{\`yf>bذ ++^AY] {Kyeh.bxf\ ͼ7`$DU<=xG'|5hޓzfnZc۫3kkPwyP3f=K _`cjPJ*514)VF'J# i WRM݅БmXV'aͬcv =O bHdIXgs'|?xWZm :~6jk:UV:};VE w;b,n&8*|jA(ХZ<*XD)'*\bI64W(Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<<4t.'uj8OL֗<_Dš^[Y. 0Yi i <o)>X_+7-sW|3j>4iRMx=*Q)&%7h>1f?m1uIlWC^%ΥwȷZ^-]w ?IQk;v䴌qj<'w|kkoe._ZZyg֞&"b rd 7yT: (dλf6__7ړy>wyښ~ɡkQ@#w߲ޓMb)<.' :_5+ xcw,SMưC5_3JL~kM׎YO⯁|''ǃ|q&֧sk[Gwe=։-?I״{E:^K[+k;*( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@syhBwx>/ 0ҬtI>(WWGf[R.DSl_g<=Oiֵe|@5h_ gڟmrS ,]sFcǒx 01,|C zZsC|7;j/ 𵕴gVojiSxiomnb7߶?L<cSO(N8tT/3H]W?i9v/|C[%gAʞcJcXF0Q48W]~XG'NSw g)QGN0JxTjxN3\EXTҸo~$o٫zׇ|/}5otOßC~rמ~)5×"ҮteO)ǂ4q{_Yn-46 uys ^EW *UbYѦʴє\cR)WUU58TNI'c)g0geIdjjY}ZsK8P ЭCքa?e~? ^zh`:G>|sw~g|5{|Qkچ촻}F-V'`rq('TpQr£EoJhgDXCn?447[ӗ:5Y[jX5;Ii>o=دe7:JRUJYQFgN*CFT״ZI+e~LNCp2Vc*1Y~6# Q[ Z%JQ/ DRq?}U.;D6VLUEom4^|C:3l>5/5Z:y'toY\Vb#fi4em|=i>:uՎ6N&wva46Zͬ\/SkM78O[]x\h&}B _O4eWtmL֥ 9Ѥm*Xu 5vj2j2Mqsp~ϟBwQx~x_׵5MwQ/oKj6qiϢxSMSed.?k&C@VL1]eIc󼍾gy|'mjg_k5jzVZ cMլM͍ ޙ}oF9a7:~giXϳʹh)ԢڒiM4kT5eBs8T9SNQ' 8R((2IIM4=[ğG_~?lk~&Xƾ5_l3j:߃O&}wy95-J?>"O<3W!<-AxR_>)ݩhkZ ?ÍN[/< oF{cX_S)Q5WMUTN~U O8 `2M<<^/1?gf1ӕV*MR,¶&)Я4o~x_~;i̺"_/Fn^nDX!4=7ZMO{(Em]:ü+|`׿b߇ kX'~ S'<3 C*Cxtz͜<{jڗشI_Jta~xcpR#Q(BI`PTTJR"P&)Yu**7FxċOm_ZV&w~.XQ៎, JG-xG▭=? xú}%EbQ?o (½*#I5RT\ѥXnF+p>e˳5 *pؾ ʰB| `qX8 /S_O ъGgO lR_clj?iM!S |c]k:Γ?5_׏|xڭ6x_8F{޼>~(ǟ~J,F>kGxk\ҵ x=í}U쵏'{`# 6yUh9R1<&&$FYFSN~ʛΤYR8NcJREK:̮Uphq7S/+̡Ke3L59?gաWӥZ*z"ϋC`cEڏ V .CYS"dյxSvz>G}Zi6vkꚓč Pԥ%/.u+o-\Xc] R#9(AMю&<_VTOy3FX^"kNTfJp)מq˙KSp?P>88aJ$I/|5&git>FXf'i%vxk}̹;w|}WO{᷈ ji.ݖjvR\-rd5n/CjxK>,z_C2eh^1?gcE<7{mOGy.vDh]Ēh Y.-Gڝ<>@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh;OgO}Km4OU_8koB}=#Ϸ_]F'ht:N|Yմ >Fk;O^O#t'zOu- M_֮xR}z-4-. CQxڔ ~0d~m+5o,z-ö2hi2%6#[;vcm!;W4ٯ.4l洷MTຒ$yԧ濴Boy.a%A&{;fs ]( ķMZUXE~fWC9;5ԥaY%0;h 4rZtPY0ɝwQ'Ey~m澾oٿ&|'g5C֯5^}(^F4oq "hΦbkfIln:RJ*Rr7/8iRkٹהaNJRIʜ}]~ %O [,GFc[)SʲO ƾ ank'xƭ<>Qju0vt|/VC}J[Uu;B+yc_ ~ IBʖuoOt^uy.?m:/O_xsd:^,nGMŽ]mXt>YTd:j~.fhm_TI+9('^X2g]SpROW 9NRbpOOJZ8:igZqF,Fc$WaoB8"fIWbT1җ)ߌe~*#7u Zk㏆/Acwr? "Sy7?i?x!1φ&ݯu-  [x7 k)EYDCsm;LKIR;/<3 C8:¿(/дZ>wsx{ jO,m,4Qi*4 ab29\gS1Zq3S">㯀Wkx/5)b/"T{A|Mv/m 7^gZM8iς1_<}cMoHf>x> ⟄|:S4+4"f.Is|Dbr%xZC8s39e\ &1(O:ɰy'.Ⱌ9fO5_ ߎZw>7?*SJgжK:>A xoQV ~%爵mZCӯa/h? ?#~KKm"MFo%F`Ȟ2[𭶫+ۘZ|%ȸO8~gq$k/|@i'u[K]C:{h>{yix6\爞iI5]WItO wo xS'"g KGÚ׈9{}zAN}O^JD^[59\+סl<zg f|l-,eX:ф1j?U)֣D9_ܾ6j o|@vmo_|IF6Ky{ej:֛\%Cn|Ms?5OEP hC%|)u>>I.R,^+gѯn[12 f=xLN*Q8 N dN\L%ԧR?">14OXB?#C<5;^Kl>:FpZksxfǾnco m'..2[M6~MKBݴ}6]Z`Oa~%Fw[ 8_c2.;='Ͳl-qW<++TxtlZ[De@m?Oxǿ4=;EK?^o9luZIc㟈:>$2]s>>-K|oeW`|5~/?BMyپ/| sº.GBg_ |AthoP<}XGk=?SӦ1 v>cx&sl&nQ/<819' S2qySO)[ыe*`Q'um"ÚG$¯ eo _jV6ݗ/xb.!> ):C/;E֯?6xĚx?VEƖz ^xN;7Qm[zGDе}7QX|Msl,"ik`8s8W˰Ef-౸Yc4_8FxhqÏڿ(#swh=>[-g|W'>0YmhWIK}BH剟Q&u߇:-֥o[:]ˣ]:ͷ5ÿm zw}WKG|oXҴ9ol+u0b}[Utu4ZKLo)$_M=7DmR/|9_\]I-/[۸<%ag)/ukCe5m^߁eIdt3kk,}GK2G*a1yw5BU6~׾>π>>|WO|YW_|Q3OhZ?!9cSo׈mXKnCaٿ⹋OMOew; x7PGO||?-e"cOuҼe^~+LJh_ "gaGO: 13bp\7c15M*̸n\ 3js=Ӟ2'?>5}yx[]M|ES_/ x'7-GI<[mi>u ?Umem,WǠ;kغ_/ t_~3mϊtx$?|'# sV ~oc_I/|?iq~xn%̲x0r̷^E<,ʲz٧q>KJY6yC*C05ºynoKWof RX?WOlj|3x+\:<;GEόt]7S'|CFM77M武\zkK w{'Y Ʊh^ CK5i__t?CƱ|5oXbi&/}v/2KDjobn8pfWfx/3 q8J8fy_,9nQΪdN5ͱ~iD8ٟwN4>?ǯ 0^3 f9xPʟ'|ù5M-m |Vq6wZk_OyH|'O}k >.xkVQju<ߝsBM|kG]=-cڱY qxKMLx_Ú>,~KdAe/&w>lR̓nQ@d&uF/7;4O'fԛ󼝞.#>M Z+&31y٤y>~/ͼ7Oty__h`P_oB isAF#[V74Ch4Iu|GEv6{s3{o½#?IJjV^_|;4/Zukß(߾jZ%֣hִKhW $p8\M nk:TTJ*I%nZJOI:J_]g9ny}XXj0K[+B0mRx|5|~y}[ (F1Xe*Nc'lNa|3]Þ1_hvKO0Z4}k{~/^!6 IZEƱꜦ-eFx7~ yƟE >8xrSV?h/[дO:HдO &{/e< QúJr.DF:Ҝib~u%S0U)?38Z>ᚙ#!bRY|ʶsa:<7M] 2*>-閿<1DzX~N7ş OXZZjG+EWTPdC嶱Tu+}Jc*+@81+A&4d jK2jʒQQJZqRQJkը3`7Nx\F7 KEɸOh᪴TبEOs^.֍uÞh!м!O$ѼY;٪d_'vgFӣ:8^!'x[g<}8\|6E;ǟbސ'ƺ_$3?xŞsOU cW5ζ~5Kg#EpuL&YP ^qʰXl82nR1l fV fXH:c^KPM? |^{Z7 mG'~Z-_s(u]wLՄpx0^^mbm u6M?| _?xnjηV:W%?o߬^🀴;M /W o1.\+1 R2LᏆ>/L˅'x׊xˁ1 NG.\519?/W!>:3vx+A xcE T$|oAkk; _ *7nx+W<W_Q<m+~ =Ծ qgij)D=il<[mEл{O,þ.gx-~̿L0xSqVw9&Kb rL xn# WB8#ƕ|o~5xx찪GAѿȍ5k[' Jok XU>Yğ:hvi:. _Ρ7zϋ|qqcrG|Xt[oZAk>ώr^QǙf2>N,|aҡI\CMQζ2éҡZ]^5X^Z.a>1{7¨HSG⧂}V^xƧV~.>wcwXZvbZy_Eᯆ?#>~fx_oiCe6xQ+KIm/BXb>*8 g9d8W>㼟2,(p|LNoe?^.?T؊G5u<&YJ L>Tlŷ=Cų\>Դ~uj7χ^6pj6P(_.f :Pkͧ'\9bNPϰv3,|/ r:pspEW :4uuS~aSƺw ᡧ|wFxzR.ŷ|3io 1hB4$g}흣<1 +zc˧|F_J}+ Y𿂯$% ^xs|X~#|\Wz?| 8<;}?~̟숾Ӽ.53ZK۟Ѿ x+c៊%|G_Mv=+Z'CKu:lF7xzt{M?[_<:x<7zG=hz0[tOXk^{7xS+08Fg,pr,<Ço d[V8sdXL¾#25qK<8߁4|zmsc/|kx#<_>y_?d_ts ?l$D:JkTee'6~+D_OW}gDƾ,/MN a ׇ|u>iQ?5u$i:Wfg[F]2 3n wK<dr,Fr_0\?Occy]<&Cz9J3⯄t_ j!xu/Zxjд/n/M.oůIi@Ÿ߁'Hitۍ?~#}k/t>:|!xgEMoeOSԼ?xj̖o{]Cū|q*^-_;'9U2|)wqSԧUGdgΩ䴰ȞV@|zckl~\oğxwgew?_?ixwZuu3žso&Fž> [+60+/.s_ g3X7 v#kP?ej^E4:ǂlxwÿn_>x/"wmKNg3|>luy}!\h:ڑj9٣ 'kVFo2д;txH|a@GjViqjslu8 {PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<[ÿxW/)kDe/ҵ~n4[SGInmR-icQQ]wym|JѼ7mhhzIzxwZҵ=].?LXK[Wēg9 YSWj> sš_d-_ƱK|ڧxyujkfne=mY_g?Bl~3Þ nno,9CCwx![f8I+[8LvѤƠ( ķMZ%hMh~eTA8K-I bi"#k莗 ]k@tP^]x.Ǟ.~(HƓj.Z}|BĶDteu->ل_ï|8u۟K||j~(^1/Oij&ǩy? _ZӐhB6+YLJkEO]aޙRš^t>kCyx 6;ky,߉$7Ej6j+p_KD_kׂ|G 6/nMJꚙTaLI:g\;}#G<)qcgxg6 ?[հ?Q[SUOدmlwﴯI9;7Σ/mN=&/izAc6LW^ZQ4 gf߳mCh^!&-' {浯h_,4}'I5ca. VJ^[ WKeE utYOӼMU]B{xƑCS#|#=|[HLJ~-:ψiq$&Y_խ0Ѿ7Izmͣj.x#֌G GeƤ\jrSBpQURJ}N 4Z\[p._ae4qUI,2j+NtK ,d)xnb!IL¦k)N?coHR>_ &U˧||;cо*[|D?h-V2G7j&/~xH5]ھt}Sץ~.|{c? UOǾ_ /O#x+[!kēVM Ug<#45Z\Mk[,*8T50Nt,b:5# JQ 3c+ek3ipv/< BT搭BQcNV)Ѕ d*T1G@'?cfjZ_i? <)Rz~kGS~7ox;OZ΁6i%mtWTN#?o猼sG>GoOZ-[4Om}Ş>K#Qo6:$?l|7"_\tYFOѽk X"xxK^|ac>uͺlA7~/xo4 |~_RtӾ|#>o xPB--޿,4WRHbMb+J0%˾.JQ*tgɈtc n3LCha_ZxCn8qQat9*eRy}u/|ndžxwWA|+_|o=R+_|X/iݿ>߆s{6hrk^w/_h >x/;_z׉>xsZ?&N_Mm'x&oGZ.j#% [xkYb[8G?mQOzbX|7A5x4t:A5ψ-~C#^'xl8j,aV4eV߲Z(~:4)AJKi>:][UEf9e9as,BJK11RjNqvuOxoK5xE,~ ׃|Iw@j^g o3e_zg F,w־>h1Z ::|;SUv^R-Ceo|,>o[~J𿋼z W|·})|9>)ѵo>ܶa&!V5(b!Bnr:؅j*7Ir<6i j9x<,jR"ƿӟh+6oR:NJ=A<%UyS6Z. /F՞0|2Ҽ/}M_/|xw^?2ß茇× |2E`.,ck6jz?`.s̹-Bp ќ>~XҥE%F)G^ۗ-Xc?X p>>+?cC˥[>-T"/RciSU5ٚ_¯|gZ熼Luτ6;^|ICúO#GjnH<4M6j7W7e~~t|N'Ǿ7<_|Qx#Fj uj>ǀ<gķ: m^RMu1e4JWE5ۄ/F3N冤*jsRʗURKX>l9*i擖mWѧqzmJNj8⳧V5siW~Ⱦ>0Ѽe/Vv|pF#⥆uO_~/o G-MdtmEsgJWzG^Nهšo)xc4Xՠ~'A};x :!W~ 𾑢麾]<]CSԵy7ڕ–cQPҽZs(F t.ZAYUzW[^ )،%\5,l\'ʰRc1K)')fR+| S|,uo/ύe fo{ib\GN 2Gs"kworYYYCe:.ut,r<*gR4P**jIZu*[K:m&f8ct8,iE1`Ab8S攫՜)Τ&s z?B^0}5ǒi}R?!K8EkSXt{IMZR>LtB y-/lີW{y&hREdq#~R|\ş>j_<1ῇG⿃(+M]" eGM7Ok/^cZllI-gO ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@!E }R<{co4|#ź8-m-2뗱MnfH5f4=5KTWzWo}WH|9|.񅷆xžѵG5"-T3]uYnbkç&8nMu? |Wn 񆱨x᧎O"M>CjZjzUߟ.u:v#kP?ej^^ko¾)=xO]׼z喯wPi:'<9x KGkWޛhB _ !=)J0Js4!RZRRd/vWI=:5:J =jeTj4BuiJFQTe '&lW8xCχ<ol&wN|S6?<7$_<=6 vc¶: xKVQhj|/콮^^c'|XM>|oĚ|0ڽO5е/iF,L(ҫ{VAxYcIVՔxUT*\#({k9ԯQɖK+ʩK$$p_W˕jU9;^ XlUwH?~^%k6Ÿ|¿~ Xh'MußLbE=ԚoK$jz|h_l,{L LFj躕ï_M~5ioօgo^~@;iIxJW~:ƙ6" <ž%9ΓO^tXiSRXte N5e'8taxge'{Q987_*YlrjEOTrFt'GVw~_r<]SǺ>b' ]hW%Ѵ%~3~ПM&V𿍴 Zx{~_:9m?xFx7S᤿׵N :~}NѭlmϦveKtfX)TN&eOC MrKJXzP|wexf CSq8h_)R`EO eynMxz )}70uj#׋|5]xC熼c=?t/xS񿆴@-tok>}kj/ݙѴ|>7~B5+7ZMkj:%΁U՞[DS\u]-夑,񴨠K`sGx V7 :4a0U8iЯ(ѯa:RZQQI¤$wo )!xí}j~xsZUEz6ϧi;ՙ/.}?|[{χ5uj^)<|)/>nρ|9Nq7ĝ3L ڹ^WS/ȳ(Qեͱ9>cS,0Fgp?O0f,xN_aꇎ^~_ρ x)/]sO /5Cy=K?x#`kO> ;2|;~ ᮃe|4Og7OVִj :o.Xk:o惡K0ÜC- pج>`v[ű^ ԫ_3lp]W$ጿg5x>y\Mâh_ty]o^od Ρ Wσ-+ghxkUt]Cn]xjYKd}@?Q~[t9+xT,E埈4x A6>>%[VqB~SH<k60ACx[@c~|G)GHԤ[#VxƶS"t 3-ʰy{ lifXIG%|?G$᜿70bC >X\OGZzuW/< 6_xX|Q+?wh~t>~xqq*x,˲?c85L='N|2)d-*tx78< QYaqP} oΛzo`o uGC\otM?[/]rҾ6n8hkK 4TQ7_~%xƟu'mt/sPƾھGAi,I|GNmZ h>=]I4hu_d}a.-Ě%b|+42Up\3naXo\=3L"_< Ψx ˆ~C%gٵls/,MKYw_fܾ-=?~@4khе)$u >>x73fMR|\5j4XLZYg^pNp50έGpѢFX((((((((((((((((((:Duv g"֥n_k@Ey/:mu|WiZNxg/OMkη*+^Cw,pIK{h⶷H⏄> 񞅢sg7Fvm'ֵ=':/o,E{^D.䕀!W$^4M;Z 'h~Qoi>'7,/mNOpLKFѴ:n[iz>eoiub[++H{xc^#FIf9gfbXiQ@b[V_.C}9p& [1f{면뇚=.Xn+>+WMZ";;LYHƷmR\}OdW~}DžnEhx'64ğl-?#>*w?|[Giq~j*<36 [|1ׄ54; vF NÚ+PY* S9FȧJX{cY)S k2jqviŴl<̲ZJnA*xY#W bpؘ,eU14\Q'*m4ٛ%i Z-VWƯ^6KKMCJt~ ⧇/=XYxZ@?/-ܚT$[_/m~'2//%h6Б[>65 H4{;Qņ.TJr8G }:¬2աBl(d؉С* I>' G_|AἚ>%|]|kEkeG.36i4K4_!뺦"I.z:8O x7_i_zt}JD%_Mauhl-CD}CME:^5~x7ë߅ZxIUeivN Km;K¿7z-ož 4.x=Kq>3'g q^$[0*yLp8|#p84e,i`1VBu!X8/~˟Q:=N8!}o/k(, =⯋$V#/m,4?x_h|1uxCWw q1ƍo-쿈Ns+`kẔ>䔲 G :9> 6@<-hl`t/i:~ociVXYŠVE1Ey>|0_]wx3>"Wv^tHj4ok}=ɇD} X4 N4[?9>k; fn{ᰘ9gTjpЮӣ<*JLSP{*><_ xg> o%YF>>Au9[?o:{W,LaןR|2_~s|~7`zZْ/ =x&t&ăxĞ"\ʦQ,Oḓp*|'d;n*upYm'XV21S_#6J6]WG>/|h_T6>xNSO>7x4-9l9qqo 'fakM:x~/<+|Bl|Eæ_xƺOu oxO:=q4 vO?4r/f8$|w 8 S!_5f\v]C"r nCdrn3q\1TƇ/ uYP+Xͮ7Vҵό>6ޭ [\\[xO@<5m<,TnC ߳?x~N*ڗ|Uψ|)Z23^Oᯇ>VľxgNtoCWxwؿT<|=S>9& 5pZ*,3 a1U'ÿG i~"ѭtk:-4|o7i4UOBUxL&v8<-'[X\?ʾe+8V*b:~|"Z^&Ң'?5Z.e{M<} xFQ1_[rIm)c  ~X|2}Y_]EӞ=O^T&O>_Mnf]zRubp'd5yA9C2C.742lmzfQp[BE9~r.øx4!ķNXʾ_ xǞ3eaw47hOnwkagkIோehuk+M'H Դ7Kա4_jV4Q'|?_᎑Woi%ޙ+^όup]x^!BK_Qu}aC:u܍̧'G'fW x <)㲬!ܓ!(TIUC8C s :?_j2hſ<+ElQ4~;iZ\zg=7OdX8 |( gk KO|-M ;X9|k|06VpᯇZNbPuf~.qn2u$`0,nWP刕)lt8S71ye|~_>7:ׁ4u֏h:/67kEm6~6Ci6~Ӥ;&6ƿo*wLjχ7_$ğڇߡڌ-G|%߉4\+Yͩ= |15NJ⽃J5oAZxq~ |hL5|5.|CƉI;wƖ˥/wO_YքzZ- Gh5Y[~.$Z xJ NGq2~!cs<2|O?2|<g)d~Q fg1~9oK?*97Gsc|/|e)|u kVZڦcBcXgï[}XQ |1(58KC}3!AZԵ[/X.k\ǮBG{۟|E +JF/.ukrcUξofy}zS>jtgS:үRasV";qV[K /7ϱyqwWE~xEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(~;~iо"xVմsUgnBs+Do,UM!}WP/x_ͧ߇ĺ_&qg~6f?56:.}yah׳]MIa G/t~26"?GOWnm|)[{@SFhZ,cui G5m~|:M Z+˾0|1Bx.ǟ ~5|>n<[I5m-]/V^ks;Ϧjijtg\=|xVf jN4߅Z EoZE__Ϡh6w gRN=}yۯx2ğiPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(>)音]i:?^NXc%w׉&3=Y̍yIh|{fk_-?Z|oe?C}CvѼ k %Z$(Qc#O>tk*MWD|@Z; -CQK}:_ h_g57|BKKmV)t ycgRQrcܥ&KV%z"өZ)Rի8ӧNe:*NJ0!9MF1rI6;.kin6Q 0y/}x~n@5[Mkþ!Hҵͅp\ZI~ڇ~xß/_O=@>_ğ|qᏈ: [xSO_>Ѝۛ/Ad%k +Aoo T]ЬӨγ5JTS5}Ԛ;b3)y2.1e|8AԎt 8A95J,}Ebyvis뺦6k^jzZMs{y,6,1e@kuSC^,<;&|'95{*txwDǝ}z͞ő]^\dnqWs''R~ 1rs nSU߽5Wޖ t0O]aХJI1-ҊЌ#'ZuJF\75 >3(G_"CžҦ!RQ^j }O}Mi p#GV>`He`  #GSF ʝjU(Ԅ ­9Sg9BQN2\k]+\n]e\Xz0،67 _ aQ u)WSu)N1RQJQYaEQ=7Du gY,tH]WSt6KCP+[++X+{kxi4f/w߉4ɢ1zƝ>ww4]Ml.nAn ZFjP+M-(MBNcV(䯴pѩ ӡKJrOާTQpZ}/z88EI> x#gƯiSE/|7nZ-hu-WivxNnDPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/>sSj~ o蚞\Y4=E͢\i1kI-8",=OKk7W_O\~"<^rGizMߋ5o^Ca{,Pfq=׉bMx"@<t|Ua7:6iiP};Ma4%r<5uxš OԣO[6'ҵ)KNxmCjz٤[Y)Ϟm )㬿Mx > l|-PtWnz־鸷ѯU(a/Nm<}ey>v#kP?ej^E@+xKMxMƱ]n_N^V 2"vi= 6Y,;y+n:sSg׌ӵֶi|."up)]QQd~YEz~>Awek 9~$<xgOx_dzWSt#o?&wiY+:PTY3S"-s϶Z|8-<-wֺVoI/R[_O];hOgS1ωYmKMgI2ƿ~!|?)~ RI x"[o[x/Źfu 65 ak%xFJ ^ڛ¿"iZh~$?/3;߆>46D>)<5q{uQxkl+>qJ8 4cZhPOBU2S^Z1MOعGǕ~'S[2c,q\a2L>-a>Wα8l˨iWNuVyticX~V5M3oo |JZg"/2|0ֻtK4'#ğ'݆umFOo xo ?fj?ψ?d~)|-bIj?i%ş?x"Ox> mĞ$~Isy` ~Gg_h ~!|_OIu?w5eg_G|3H>h |[xVkNT1NRUqL=LGm&20u+PUb,8Rs(S ijfw,-ZUO \+rqy9\(Qm)Qag(a0x|V3 /|L?g[H(ۮ i߉.qk_A|e~)xm\Lo>VM7ģ;VW?ka|kO/jV3Q?m?4Vw t{_k$~ ԣZhZvmsK~%K9#G7>YAt/iܵnDKY--|lʫaNt'OBj:xyЭV$5'X?r2X<:pZ:`kO,.U[r ˲YOu?p $jNI,6 cA| gk'/&McE'Sᾱ?֗sž C/iūZaķz5u/S-nִ(sb?g:2S!.YYQfX]+QKuCKV:TZ=Z Nqr^IʍAO f7.cKrXǘC NI,b' T<LlgGQYH𦁮xh>=[)K #GQԯ^Xmli)$*݅jV2;T$kqe}\[b#Jc4CmQXb5~hZXTiWK^4RII4ٿ>7Z¯ {#þׇ|A]q~d׮4 x> ;ok:m6^]?K6@KӮ:]槩Zivk=q M=(Oq41#I#)"v; X~&r֫ZkB4]G)b=ZtW95OOZDI;>#O>Iԯ<7^:7֣RSEƓۤwMqou-SoKj&&s[ksmcYj, ’AnKQx֖Bk)n=_6=θgbh;g9\b8Y"aVQo`= UՊqRCKJ|*ٮ>5;Nֵ;/fеk3_={y^\^꣊W8AGC^ 8,GT/&5Jzj5冮1*.z ,/.ZA5ĬPAK4(f!#FbY 𷉴?xk0NxAԖ U4}bCM[k--7v\Fd dx:謫?8bH(igF1M Z[Alhv9i#g2Omqi:}g=s4Te(J3%('iEi٥MwFkT֥^*Щ ԧh˖9)\RSj)7Ëjڿg-?ݨ SQ=gOA|}t7>5ixb 30𮃦> 񌚮qhzc+5BFCWzUgRS sWrU:spU!)tr?~4ig/)cb0xl%ztz ceNT1y~5#Wa])+~"|BG}u'Xo ^/>!!Bgi.]Mg᯲/+ >xkIkrKk߷]|&&_FqǾ-g6 ⛍z;⡪ /M[OS3a:pjacKF3SihUb9ҫlW̨RSNcC Q2NMG•yc+S˰5CK21[üE8D?f~M1*ҼSv%>=B-_n+0 _G7;G ֵkV5Y-n.5nnBqU:+yʴV* ՍkߍYF?&1̱٦5̿3F#Y;Xd5S6#O0U_qg+ɼ/_´o!Ƈ-Yb% /_;?>Mu^(Ή?k-=]*Dquj/JKKSsc={ydkq0/qJP~jrTϒ#.Z%kJ2i\o$xLms75Ϋ&iAs=RJt 6b[o v>bßh?/ጟ.>"Xk~=;O''#xd,tWqgQɸ:d|C,Ÿxb451Uxp;Gx[|^?/ृ; :-[O?c_e/<[?;vg:mOEԾ("mľ  x\Ӿ#qÚ]=#> ^i?jm'fᯆ3z/g?g'ҼAa o#Wl"^Ӭ[KVy^q=d9RO P1\d8'2L^ aYEx~,N7-kr>+~7?eoĞo>+|1'LciΟfO>bafP-n|2nG> |"g[<-+[v߳ mx ׼;x*M>2ЬKN=F|1lrwgGV[u8߉G5 04eFMȼVdT(|(TBy#rxgмBîx7amG>. .վEi> IŲIği拫x7FEyĞռCs']^|Ct?&>%Ҿ |O|UuḴ#R>< ^io|G2 ̲(\ >[?Ἳ =\7XodN"O~0Me6=?:;[|a$i?_-|5_gB_G}zL>._z&} [mR'_ٙm>2.7Gfr."ʸUr.4̲8f>eD2l5dڸ!D8sïg>]W,lmCğ'e+NOLW_#HmMh߇ wEkq=7ICu?/ʿ~?ixgk !FKmko./Z^~KA2c촽7_ tO ?/DâBF9tuG_n-ZŚ*;/ C⫏j, yw\[}n%(q6֞{?8_ŊIpFOG q'ppMĴR˲~K'aO$Z Κ|C Gc6,_c?>+IBK-7㧋ol>ỉZ;}k:}?&/_hK/ ^@/X 'vHMg8CkGgkC2Ln6e~"OC=K $[ar\%GR[ɱ̳^x7ڃƟ_4J__ +> >|$q1KG6>R6٧_}i1 16W_/ŦsW7e{M&i7Ƣ[-#~˞2Ͽ~,aic?<~U' o?sVaoN1NM:KK'9 eV!} 8jS8kfTe\qtja' 9/wQ3s\:_ľ0wb- ǍWmF짦95? O/Eh/ EDOG^&t^&KqԵSĞU||ফsG#1O_#*> GoÏֵs?|5k(|8~xBuo3?ܓ]l/|3N\eӅ&w[ _TαY|>rxS|1go|L׾ x_Ꮘ4JĿuOx_4]vƜaf+g\KqIv+x3 '8Vc1<Χa͸K2]y6S[\^BهX]Sg~|n/}r_ 5ּoS!~ wu\qcA?-81eM'vkշ|U~( a_Klծ4]?QxONo|?:_j&ѧ8=u0{6:̩cKyQe9~,=RC]|3Ө\[~Ҿ#ŖW~$1:v] *R"Ѣ>|_ixgz7_ xƿ ='V?۳?k/Ե]+[4 x3Z]͟3k4p97\Lxe𬲏8S/U3p b04_qK`1-K[FY?/Y𷎞=@j/z_6;[_%ƣSXĐܨLUXH,Xs-Y& =[m)gmQb|^#a-rZW16GOKxoKF˥kz\-LZK R5 FyDʊ7@Q@Q@5=+K֭ j&vvMtouPgk{mouG<1ȷGZ* U*֧AN:F›|Z|<*1Rc6((EfT5=+Ln4gN˵Eӵ;;{D9mT8A$lDG2QWV#V *Bg*Uhե%:uiTԧ8p$ %(`_izykZmjY}}s[\'2֎iQUj:UNuƌ+Յ6!R0xUbR4(mPQ mizkgXm:~װIm;YjMՎ]coisl8^KO&Mmww*ωRA%xZ[^.u<0%Amq4†M)O 8/x긌,U55K jx]ZrXeT0V/(nmm,-໴[k[x) ^)'hEh䍙J m,4K[ [{+x,쬭 %HmD"D(cUT쾯j{i=5Ox#G-u E_xo>cqK-_Nh$$idFT22xNw?>?/AׅSq+Gм/iz/ß[z-жGP`E3`Ϩizmίä6Z] o7R[k5v[KeÄPX6xSo|i⯋/Q^#% os>yx~9O}HPC=Qy 8LwV?_z-|L/|wiz[D֠Y^;mp4Nѕ5ſ?x>O|2-;Y_W%iVO xJtY5-.vi7VRIm,NIL4Nm>I4+]7KҴH,47N-,,mc(mm xcH#EQz ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@ß|[sh|>:>'VskKy:uXMYtɮ--u??źg-/ÿl |D|Q'CgDd۴zr2EYº'~~/ͼ7Oty__h`?||7:|Zgw’ݦx◍9}W5O4jzd:uN_.uU->yToO>jk'^45-,9:ex_}Džt[ǰ< ]#CtkukS>(((((((((((((((((((((((((((((:Duv g"֥n_k@Ey-Kǚ}kεqk7"\Z[ ԧ}]cJ>?/h~+CtkmM4x:M6+I+N[m%ȱq> | }Λa~5%F]J[*v'Y$tj((((((((((((((((((((((((((((((:Duv g"֥n_k@Ex~8ί_xSIֈ}w?_ki&8[żƢTKm:|JxJ/X#Ğ~k<]+ySl,:KΡktenI59-l>7K⟄{ֻCw9&.ntMkR52M{-9|Y4\ohC0GD'_ {MҴ/F;]KѬp/SNUPinvy.'IeWy( N;7^%;wڬҾ | ēxOG=o_xsG/$]~ GᏆ5ŠRϋ"^k#MNFI|E_čvڶyww5!66qEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<+kwX|M~[:ehZfɇBŞ$B4HST B9|loh+][NBR`Ƌ_^(l-hYimt+}KTĞWxU~k) ;g C? &ֆd_[}J ߵXjWfX++ V]3Xhz^ckkC<:gmyy6f3;(:: ?#|B<ߎxI\E2j7յ4x PoCm#pf⿃^-mo~\|-S(մ}wᖵh/'JKIl~k:sf-4ɴ^G/|MrI=e߆>$1[Iimj,|&-1^-$#<%}7'n$ӠAM6 k[mѴ5]J;|Ad@G訠(((((((((((((((((((((((((((((( Zo?DGWh_-j_P|r__oԵ#/|o n4[ko jLS[ YtM?OMGR-8>Ғᇆe?Yh|;<mot^ԴKwQ-ѠKCRym@< >[|E?o_oG^{hv|&zuNjEȿSx/7)ͣt6-%z" wl)k㿏͆4:o{S3PYi.8}t=bbHѕu;uvRo1ůhrk)צOG|U_x^FhNKAԑhZ,^D[+H}Ó@n|['gfz:ImjZ~]OÞu.}O ƇK+YUgVXJrqJ;U |loddC➛#Y\eWO9xGe?QKÞ2YkOZ~Lh:υ'~(z:.xnk -Fh-VS?E<ø0\oW&qLgn_# Px[~/ڞGln]hi/ugzq\Z[ҭ3JkW& +}*{3U?O(׵NdYIFtmJzkhMnekggl8`$U,Ř@4 ([~ ϋ/#Lн'G)?5 _ [|+hoX&g>{Y)"g^Xjv拪xw^-<1sk\ǎe{}`5 GN鬯jxFpRuN)99Rr4*Fp[OC cpu8akoPץʭJ)VץV.iU|]:+ѩ:΄7ŸW ?o>êxkm#bCwX?KVǞ$Vx'R_^"Ԧ}y)aw $м-_#|w|)-;w5;_]Dž}Z]\iHf{FG?oopwtm:N.pOUq-?o7BXL {YrXg JHO*O:xiaԌ~?|c _7:ĺOExs>/g O67V:lE^־: u-I7Fğ;L̖BhC"xT.SqNl1Qhӡ$#ê}>iu%Vޟs.Z.Im4~]jMG#5_YjVnd2}fNt"~#54hmּWS[O5I"Z\kZɒR.w<#f_ <sW6PtmFUѵ }[D4/h_|7U4?xT5Q5 [c}5Y]eXv1b}ʆ3Z=IPSէ:5pJ*8H8_ ͟< ծl,q|JUG ƺ|/66E񷊼AZƜ4}*;^2mpi' ށNMswN_{v>5v?et+?/M'w$`42԰qmqXVEiѣ2F^{[([pk{yԌ<2|ýWG>w_z쮭kSλw^DO^0]Ֆx16^&׵(u[Ԩ((((((((((((((((((((((((((( Zo?DGWh_-j_Pw=2C||D֭cicmmw}0^9ÚVeռXo>Cgat^|D<? i?{kσ4z RYҬ4Gĭr4;+Ib5Rm@_{km|/ᯄ~~#>$|R?&񗄴?jQ/`˩n5+X[>-)#-sxtxg@7i.RNWX4WWQoi?Gލ{ Fs5&y #iU6HoitRR4kg۳:Xq<աZ1/3%$emV> Ke$) k}?5oោ*mCM. |rDžI^UK8}$]ik o59B?`^|:񷈿g/ Zg&_i_>X> ޡih~?-ug^ m'WލxU*ЫWZ#ө^PTZ0XI:5ctfQ2\=<~γ: fiV̫VK O1BYeY*;<6j_Ŀ_'_3'?SKg_?ޅOÚ7v>"+7º/g:U͜zx?&~"+? Q~w_~jzOyKFCx?/!|P[׃Nimށ[h յq< 'D:T$VX u}u%Gb%MRN(ο*k3 y=iQͫrڑj S:XV˖/7E, ٛ y_q@Mk??[^;JsK7׺叉/i:f7}\/?o> >5uĻ|}Z# |Kӎo;|9>|kz-t[loAcK:wX:hNqNtqjMF׵6U*Vêt򚿴ssBYnOG~o=eC 2tT7cԖ*^|y ~%ҏo~7G_jJڗցZ߇aum7?YCox}}G_W5[]G~ߴO4_~cɾ?eM>?ѴCÏ٫Egޯ i&u%[ìeFJ1U'j+V`8F*tb}9b.uZUUƬeLf]xGbWR8v_SøiSgu)Rc0[6S [Vxgƾ0?ώ_uk_ ?i ; =ݏ?čk~'q[mxj-DZơ|x{DmK6K8_[ǎ>*|^GE3ᾯ}FG5E[Ag-imgg.R]'ºJS4gnԒJUg5B^r(*i'հY5LFIGoiҟ7 iFx啖*2PJ㊫;LGV7%k]'쭪|e-|kY|GcψZ};Rٶմ"φoF3o&ᔟ <+Em./xuKQeg|H `֢R$` :. Ot#iSJ C ʣz)BqJWT]*s]+.c|7^/#f2x{QCnXB/xIx?쏬< ƲW>=W$<uOxcH<x^!.&>MwKsRp>qp0a\I>8fqO ox )g9OgUN`ƄyeŇz>"xoګT4W᷅? ƾsA~2i?xrMS/ִXzwl@:i޻.7 |5~~ |B<}q/<;C˳x-l3jE/%He8Gø^36EĔabM^! 1~ Y'6+cRYsƅztbkT*(@((((((((((((((((((((((((((:Duv g"֥n_k@Ex=3yk'Sۧk٢}7B>)xK rn[$g9)-CǞt;'v'Nm,FiNӐ,xdA"L:V:" VqxRY>FӠM=֧wo 6Ň' H3Z [%x1O 0MŽQH<2)2$R#+"3#RA%(c^м;omy kIЭ/5=/D5=2Y/ҴM"{٠}OX.t.&kB ;H8٤bI$mZ$]:u*BujT:t)scE9JM袓m>0fo/{[~"xz/4<:ĺe3Oԣ>`=_h-;>Om|)C᧌2o8=s"+,2D0GOЍ,O&*)Vt9jӍ Ӿ #V_ x'T&xGBNKޡ<ҾyZ\i,g$%ؚτZ߄|MZWWu=[[uOb>-u뺿7wˣkڞ1ԵkVQ&Y bq*JK]ITJNeYKUOO}NuG6̣Z8ŘFbXY#U^uXJħi:|5[_Wý?f$MK-_?XwJ8`MC@N۟ h )wiӬWw1O(}{}Z>| 9kQD~[1L T\˩\-|$ƣ4ڄiYnX9N&/ |%U g VK|-xcLT 'MRiigYe[8<:Y.i ९[d¿inY~š/K㼒Itw.\Jbԥ5ĩμqRUJX98b%%+rVHI&لx?Zf_2׫[@|ist[43K4 5h.^46Vrw_ ?f_G߇~~:fq ]xS~ ZzWmZܳng'4ԒqVcVR%QRnuiFVs|i;O8,ehf+ЧWqW^4VSkQ"ep+6jΣ/P}wLԯt8f˿W_ 4a3j6G𽦤=׶M !>}ce^ij7]_Y]]YZΒAsksCqo4o;"23) UU'NĪnu}9w?ެ4>c bj9q12Rr/.mʫ~ɷ=Yo ch>4-^𶏧~4N=I4.8 [{KX#H`8ToV'emS4}+:eq:j>] ŕ.\ZA, /OK_5m^^|9-ZS֬KO hUmkVz6)simuRn$ʙ&3MW5grke3̲j9vsSG $\#Kʓa)׭ Ƭԃ? ' g ,Z$3xڧV##o'.DW/^ &;F \jp<#?e⏆\%úΥ?S.iRH _Z(((((((((((((((((((((((((:Duv g"֥n_k@E|⧁|!A=95=;Lֳhz6-__/uDmbA[jpEi Yzo¯'thjxcL?in𕟂?o3ZG|H~['*onGCƯ<iŮ>!/_7GLƭ/mVTu"Nu"<mU\eNRpRXԌcRY{Z`8Q|W`Ȱ8ypaZrtbRs IR_?O:j?gc.Q3kº˟kҴ۟J^r5դ4}_r麶x>otk^ 7/zi?/Q[> {_𖣨xV>(ͣ볯:u{隭xW/ڤ)I^cZ, Q*K UJ%FVPR;Q ,bq7Zy^-`7!ejڏNW~E5*{yBj4t?DG+;'~&%kڷ_/߄EZx'ۿ:O'ӯ<|hm7[kU,vwphV3ß4[_Ϳ|]_Ziௌ#U|NȾ 3).cڿ6ߵ?..dOzQľ0Ik|+/ֿ,t'>.P5+"YU/TVt*ӎ,6&RaIP7Q(A*P.I[,bp&No<V[ah8&OVcr]^8QXZ<= tT8sAE_h;6o~ + / h^%o9|X| s7Z^{c -/&_>(j ~x{F/٫tWwJM.į86>Iд @om=,t^Pҵ^k:V:ҍ<6UN*7R8ӃSj^?< ֯Ն̳IН WM\8zӕ<|/Ql=?/ Ÿ |gρ[(ƿ7xᏁ|YO1> |nHoFn|[[mfLf|_k||o/HTӬhxW> JHDm2{zj.|ew){.k=Oz&hg }|>6D?M_[[&ڽemV6^RO6XEL<`cg RUK칽z\oK~qeU9:p|m%NP Ɔ +IJ1_'QʛRqqV߆ռ5މyit?ƚR_i|'>}hҷkm˹K]K?Ï <5}qO 75Q#-ou]'Z^lћ(ྼOK[?cb?g:2S!!h#uulfߎ6|> |C/|E.е+\~_74FV@PK%Y+X22F+$ $tZ<U'ckQҧW5Exտ ehG<"Kع`p8[8[x{Σ?/ݟ+| @ү5Mz^WvW[^ݥPW5RG1/SV—>(ąLzo _ەQxzntۅ8 (2pe8Oi4%(OKIrN2|ZЩ 5թB*ө<5wYPBR [Tt+Ь&V>YÝWthWz ίz=׈|OO!?|As|׈OQ3Lḻ{m+Ltm,mu*JIԕNSi^ɶMmY\f&7UPLUzƚqV8S)F\a)5jHʬ+H 9<'Vv66veoePEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(~6xP^㘟Iß <3šZ_ tW|Dn<]}Kaz6YmgT0e^8>w< ?EӴPi~)IOĩ? YZA4z^2yZ&iou:A _lx.7TKWD`VHծdTxde_\,2/G1G-@=&+[鶾  :tmqwl- j΅{vjvKo;Ki;D#xKF8IJ.ҋM;'fNFkTVjRJJp]Ӵ>?~H|Y<[O/&~(}MCŞ->~!߇.ouj |si4 3K:e',5Mv=?J< ?xSş~1lq⎙/_Zu|]+?|D׼8o>j֣SLt].Q0өJU?iFqujUJQi'IRԝ;SR +u1ɳVG>ܫ3VZxXbz`2edqZW<?4?o kC:?_S.߈e?/šWVj* -yľllJ G߅;4( _9Og6"n{!Σc]4N9^j~^N?X<ԚQ}nVgRUŸ;g;LQ67̲zFq2<_K~ 𖽣hv~~#+]2_Vּa /? g iWM^o~8׈5/R6" a: Zq߰/5ZO^~xG|9S1?O> ~.Ml_ ֓^,M2ۧbjpncx̻35șg,b1^s[ |Nlܞ#V4ܒBxiz'^ _cM[MBaNھX(((((((((((((((((((((((((((( Zo?DGWh_-j_Px*;oЭ~49#y3u?v6:V65߄5kOR[#Ӵ}?TtDt[J?1Yضx#Zu_ ]CšLּ)%D!nXԯ`,B=:;9OA4_kCo.-2WҮ²aY/aCl'^6A_PPE|A|8MWWӵN-{miww.#M*TX)f`x[RpNrQNNM]IuvgF 㿇7^ ,u[ ?UoCyjIa 3Cm/tlJ_aU*8xYFTkKQ"'OۚI8SSq\; k*QJ\9ym,7qVQNT0 o{᎝B <4׼_ ⯁(o=LT^):玴-U恭jCkU|KO5y=?O +ᇄnciΩaix[F6>fwO {6١S׭'gⰊhc8RNLEL4THTV*ѕ5gV:GKJQIW(E[Goi Y5M;Fm29tXV4[HlmotiekFܲy '{y~^O i~'֗$<fůofXZkWd?%c\W𭧀4>&qI,w+۱V\?~۟ k? <-{}]_>j,RFoMoqTox pb8C5]\ 乴< Ca^a,F0~x7Ÿ?>%?6/>(^͖}koo]]Jԯ ﭤɕ-V?j/ o_ ~Z_|7]hn94j5=SOoC5uIgx L8e⬏3NJo23!Yy,7*Wª,x*'O^zV]xVtK .mkRԵ9ᳳtkFAI=J"8)jW4~,>|]sxOOE|SPxV4:_ЕfC{}R'7ĕ(ORI8lNoWx1[oѥU'#4_CxN:?5ƿ_Y_]>tS^jW~n?>%xc▃>Mկ=MQ_iM^.,QoI,M.N4[KB4J﯉8ϸ{0F7,SWZW{0l(Ja3l*X"rl^3/ >&oK U>ǣڮm4ۮs? xD亦_ xs~%o> żQ?4xUmv R~׼?{&inf S<.&&xua:"f$Qષx U x.z߃7W߆|!]犾xž3ލeյ-3NV9Pk5G7 V#ѿiٯ~vZwnu|Y_ů_DZ}eu{bL(^xfi6?#2ΰ2Lc2~ V6EaVtkC,1pʕXhUtu>(g[Kj:'//|#٫y"|[^|]FtZ&ꚞ}Ku/z雴sĚ9{}CL|'j]/.ps\-x(F13JU<xU]g'tko>X>'gx~*OxLGu 4R4mON-Y|M]o^Ž2i oUoEO5 0|O}ֱ}k^4мG`u2{"nҗK/c-qht4 u[{Kصi/oaum,\I w~x]p64hq &[3+ }8pOC8qXYAT`Zm*Qc#`1Xl5RZm-Vi-4m2UQ$e Id6%XyIa7bS~ 7[=㟊}k~keY?io5Կ5 60C__yV/ a3^>%q p* ._~/qn7OYzy g UpW&'SBh~.Mz?oŸi};S> Ҿ|w-x?e4qLk6,U Tf' ;sr $8rdZʐsĔr"*q|UW) "Jv+ ]`?%σux>\_ >#xOk>Myǥ^BCa_"jpNx# ||o/CӼOmp^\ޝc|/x޿3|}?x_x_ٷ^鷺Vl_?h捫xx@.u +K,{9s!2F\;ØN'ˣ \{Rcd/'&ϰ,e^*p]Qxo0ϰ6*}Guukcks{{s]]Mm5̑A#4Һj쪤~?x>{o ]wpx5[kD>qfj6iuD\(Mc v-1[ b(BU#R ."rTNqⱵS0،DF>|*5Ko_>ּ/h]}?zۯxIVM+D{GsFռI{G@~ |9X|NSs8lT3l,qzq }C =JUf-*h֡1XZԫ3ScCs90|iм]i~ t|KKkk-&R&jiq:kOB|1jfxJEhm?>t |EF->|]lE~=MK=?>[^!>!bg8RyPYuJپ#__*lm |O27(r|V3+g48P녿־1֙⏇:|G8h}'Ez~  ż|JtTKBſ{vv~+u z^ 'lt4 Yi1}in{+Khn}7Pեg-\¬+>%,2qʱyLO g'[3ϮdX*+7ʣ¸RʫfS//TO_#k஋S:62 t M1n_RxzzYݽ4-\[ ڧă@kKOxiBh '|"u׾m];Vepi^K[[(gKQR.*+}53uR2*YYNyj8IeEc#E~nEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(>4^|C:3l>5/5Z:y'toY\Vb#fi4e蹿t6/<' |IaWд kCE(J$<5-fKKWo,5oxZF^ ^ jľ+櫥Kj%{.eIRhwEG|!}GzjV -bƧq3]Mok#EIQ"3_PPECPҴ^;h]6SUPTcu+dUN+Ȃ\Z\G*+M4i429ӔgNRӌ'Edi4ϑ?h/K_‡χ߃7+OTt/_!2;q-֛qqxEi즼+kx߆^#|]~'W?oß| o4]C4'_tah^ |Gwq_Qju?[֣x!#nį#<=IgEw?f/ƞoh:JhD? Z|I`S^ -->:t:oMzNk]MmT֥U:Ќb:~ NhOWھ"ķ(MWI`qx;-_X\SG)a0|vY_:+*e. 湄3yʶ.xsZҴ izM!𞗦־!eWMЮ/|Q_K˫jZsu^(n|86|2/il`> O;_f4KUtϲ/׆`?W+ 6ܤmݶmoVv|\:JJ9NS۔)7)JM)6muږk6riƝco,:yi$QkyoջgJ/>mFQs |5 ^^^~$i-H?V ]jϋֵ Kf+CX$pIͰ9kS:c=ͪ A/m<#9Pa1+R4ῈxY<S5x᧏~9s/=NӼM}xUZ^宭־%|Ӽ1iZl>xEM֣ca7Ѽ-m T}Q, I?H/X%x3~QRpXqE3fk/F  T_2Z[92yQVŇ?i] >%,r"xߍt?k?|]^-C=nUh?0"Qyo9>.k?kLBxÚt!)]7ioILo?nI?z}:=aWVO &kIBb|?9lۀe~'a XG1Ɯ#OkJ\23ˇ+|D!|KMW׍+4r/xYҼ?&}i2煯m:]5.m-,.eӭ~:zOK.ZwmLx@/Ë/TGLJ-~"CWއ-\}kHtV \Qj!4W!cm',ǚo!MoHK| ƾ>O+xWysGQNkxn%{x%w0_~%'gOx4oxm#ѯ-mZ[>kV++Kc*?Kq>$qu9Q:~bidVxo+p<[`r9!2- 䱣цSa?!o_m|5귺mek0/I_X xb;%YFn|G{]3~G<;? }Z4kKºψ>>^ .{J='ZÌ_rzxlԭ\'X g2pmTʰ+`ZsR >2&// v[*?+s'pK .]>Y*X8f|9Ow x0]s\wJU*8[>Bpha:.j%0?fT+xFa⿇~x. H⯌| ҵ7|O~jj]wZ'-5NWoj>*;xO?~[eKg@^ uZMG#˧m,V)Kkn58 *Xhg8\%pU\;ԲSe^EaryYdX<>YapuŏZ=O+8x_>Vo 75ox^"m>DI=ҭ<p TF}PO0ώs2 +Vˋ0|-.WdX.oZ!b?ƜSGYb3\mJ<8}EM>Vw4>_~״<Ȣ/tkh|8c&̚HMۤt@X~r_G@tc_~F?[h@]t2@y?n6wZ /mtXƝsiV) ͰT1"+18w.lW7aptXTxCfkԪ83s3Y~)x'_x^)o_KZ-kGм;i 4߇2}ׅ+GıcDZϨX^J^ռ[Kro*>9~'~1?7cFcƭi}^&g9xcՖ3CuXK~}=Q]O<cǀ!x,|+8gY Bdffk¸ΖMar[R̃UuduWGR++YH!  F+W_MkZo1ŭ鷳xŸ|YOw[\Is@Ӽ5B:[^zޥO`("2㼿^T3 v_T+W/23.pUeN2/È3(+8SuhQ/xhU|r-IyVo+ɯS 2>Lx e\-pAᬃ7`x샅 r|fyf72[,1ƿN>umaxoZv_DNxA-n_ڗ_aq4&k n|%_UHMn'?,Qe,.V{O83ͪf/<ͥ VUh,ֆASbqu=__ᯆ$w7McUׁku`> kᦹcŽ$Ѽ9kwS}wiw 9|)'OҬ^xN_}N;Э4,)/ [odN~̟.o~x xP ㎽M/F/]+ h4FxVVMl > k;HokpW`Eޡ ^OS-zj>oyi[\ۤ<'hpv_^eٳȩs> 㣆i mwIݩ OkW]7t+OF.VXx/乲/xGE|AR[\n|?kMk ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@w Ğ9Ξ<Xiڞ: -7QwYѴ|]se:Ŧi\ t9'_W|?i&i׺jni:mj7g}3]2<|w?O_V|G ^5ߌ?>ghgjag},>+~(ޏJ\x7ß E>ax^[7-aƃkM;ʃHY_XZRRܹTZ^WՂì^/ OcJUy=SN|ZF?j[E} ⿋8|;z^ #:FkఖuKk#R!lߵg/ĞS"{OӵxsP_ ~VSix߂kV _¤ю&b燤B4RK[N:K(Q>Zu!8n ba2Yϳs a` ^6 ӜaUe5hԡ8f/~>W'(?|% O. ]7?w?5L éCM:Rؑp|}Ҵ)/t|xYuO_ G_oi_<+F|[ize4EZJXE'iKT+IrR)yq6b2XB{pl= deVDZ:u^23k/?[Ҽ>.xnWPB?hnjLխ5 ? ~ѵ ]>-'//Ţz޳sma5C7x[0|CZ }'ZW$</ xc+񧏵-yA7 ~v5 [ylN+|5|+Z]t x⟄f\>3%?/5 t4mF=}Ze-"h$ԯRvS QI< ve N\9$9&qYY~'5aPF_QpxLERuUUZU ŝׅUoC񏂼G' xƟ DԠK;X&LմY#,.-.&i#ucƺgox.֏ƚ:o[r $X {leffA$.9~!)W_/ͮ ƯkkjU^4ԼA;uqiO@,~?䥿E>_?~9PV񆯠NU%[>]-Ѡ%1ȱׇ1\>; Lҍ>ekQ8|>*: us<]86F"5!OcV9/Þ~_Ś k3|Ez!OtJ F2R{Ky Y#e866:]Yu6v66YYZ[Ʊ[Zۤp[[,P iQ*' XS˩b"SץG_ +* >\Di)PNsp-Q\P\~#4_x_Gwbgt:Qx[SңMMJlRmDK4ن?Gqx\>i 3֡G1C Jp/ v a* SoY6wz~kmam=]YYD\N ŵ.Mr##s9x?C<1-E[XtoxsJ4=&l'L!vB@),v68*lqqTqp U`pСSPQ7V,EzpaVmQ\PEPEPEP_~h_5_7v٬Wï5GݺUŞ f۠&lϬWqq%l#?ef%Y75ɲ^-puq esP0J_J4` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@ß|[sh|>:>'VskKy:uXMYtɮ--u/x6{ொɦtxY<' kk{ᔏmA=xWڐ\Eo-%K (e<߉,5$ßhWc'öYk"kN=O֪VDtZ%Hޠ(/_~l>i_ åZ-קaХC/ ?>xc >xsĞAj+2{RWzw7xR}NY[iךy|>~+QVռk⹾)/ïO[-B)+Xf͟OGcaUojZ]uGޕ1*8xQKb9¥Ztf)Z*§SBT(άT 2>_aU8<arDkb3hcq9+ ^QI .X1X_Hσ?i߉_ []i/ŏ|L4u߅n<7_ןt/q+KrX|C1bJx=>T?Gx+_ٷz? ?OZo, ? /G7i|/P>}ௌmZTXx&GKUƩBTj*{_YՔ^!nZJjMNU!7Tp$[ .fVfYf9Qo8Q 51XHr3 [Ce V>+kkwj>*<9X,|Cß ͥhq>/ Ml-N rOvcMR-o%oV'k[{,u9mfG:n-LGcvIN"ZrQ9NTiTs{8I)α8Lfk)<%jTWwJ1뼻R .xx`_N*ry~=߆;_qM]#U_׍|m|Kx~xOuTĶz/$c_ ikoKE,./LbhOj?l|ch+_i^Yk4nݴ8lk}GGs!m2Pș9dI@P%Upu5PY0ǍwQ'E6UW;}?}\֯4Þ薚wZ/ h~8ZFM o,N.,am(J8n48)4RiһM] <=ln.ajb(R3%NEUgQJ%95)䚹OlKgٯ~ E?ß-\7G;SoZ4? u߇-aŚv"🅍ԚơkJ}X5no~50x߆93@(߳Ư_|Zu_R׭5wŐjz׉|+O ~= x>/ɴ |5C7t]}[Y*) ch:{u-W<1k[|#/0~;xgᇍ~|E&|_N ֥?6JĒiuipMm+lo*`paOET^zuaNYTxUNdJ`>w n Q#L+NfXLuc !13uJѯ^c{?O|u?#xk,U|x?.񕧈/t~յ]2PK텩S7>3%ŋo|w476]CtWo"ҬmSX-N|g/C![hz{eae;J(GZdžk׿ix>J~?xsXGvP4 ԡtȮ7UMuo-K']H(Uө)TJJ5- yG :U({J t8WԪJ r/d8>3&b,_Oص .7*K#`9g01|ʵeS5hV˰WWW'}sRmt]'I5H/' Ǿ.t bm/-NYtٮ$c{+ȃB/g?|sJ7xJOGӵi<]˪^ M{A YZ^ u}W{] ^r&0fR`JԔ9a)(o+|~CJ&8l^-ԣB*!>_UO ^)Mf5擌*{*:0}cI>iO~za xw?+Z֣T,|H%-#xwu=53>2{cGo{??x]IkzckZt׃l5{uw|ڴ^ Dv|֖V5l5xU9RU)8yӜcV:֔*Ժ!$g42l[FyRV0ux.*n UĶUN%F_ai~8ޗĶZfZZ0{HR]uOBϋ9L;EnCO.?>ֽ-5 >mK+F=_zn}yiridjWkhZ|], Icpet0.c<> PWU)t0q+*TStJsU*T4>h?~+ůx:*Z'i"MWfBBTA*x\ӯ ?hX]cMg|m~:?52cߍZ7 [ >M=Ǘ M<#ϊ~?<9uDӞ1nPS}+@Kǂx|<2\˳ 8o.dF?4Rq\fEnY~7-ϫg R㯊~0CoTo5O=Yw_ {"֡| ci%o|Wiɣx/|_/X%oN/eMGM]u/> .BB׈)VI:Uլ/en!.\U?peurV+ExJpSUΎ_.reqTV)_Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh9;>o i>o!⿇s_[3V#[} ~xXTjp[imlÿu"MCᝮ㏇#b%rzol/jz6!>0t'J%IJiRoiΝHʔzpo(JS>&6#-!W.ƾSJ9Q\'+s(*mV5ej}'O?1xJ7[^|A~g~5ޱcJEs\;+~O:7||>?oV <']:<_ýǷ3/%4Kҏ x[W5vPַ<Ԅ8*OzsR*t?}tRWq5N8S:#)bV%SpcusHX:X|÷J\ {>gKĿ-ߏX"|=M?Şմ! #ZеksVovn!Ə_x|b_<-I_|%u l|+m=4O j>!J[<7FL6ZUqT!xשRMӥVJUZSV>*oFNtjG(Q1̮\3B \\!RXTa*XoF)yaٯOx__|h {}/x?`o$g[ɴf&\Z^t3}SռEk>ojm׌<[. P'kwNz2i>W*4SO^_7iḲ4iQ~ *R `*T:~0IIY7JOً:?Bşh]~:g>6_xj5_|@t3Bd%7jz}n-2M?L;}K ~6=OIOľ;|mũݬ6rio2r]E*{RPN*~ʭԔp}c/j犧~"N2,nRfQ &x,r_Euiey{y҅E˥M`|GSz_~ _ş~>|'tx zg<(.~ þ_5Oͦ!o_<]}muxy-+Y,:0x,*Ҧ)J5'a^# V:' ҄c*%x{?[! aVWPs #XN'ЧBye /N3u}XO~!ׄO>#xooh C:xc)u]{V>!S+Et -69VʮU3uẂ.ಇB :b*µYN9RNjN8Ӈ=ENڊsiSی!E|~m+00X8axZؘ+԰# 6LU150WIaQ9_YxoKx]k\OoPLɥWZ-OG;FXne<Mtgoy_Ưv>kCÓjR躶m*KK+𦻦>%"}6 -y3=I+zwĝ[7/ 1x /~x+ž? rexrem b1 XSuNWπQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh ƝmCĖu߇V0fmsYaдgI%йh-t-;T.P_)[>/kto~D^'/\:{Lgψ[iuW-|9v{b(?.࿀~0k)>Wž Mt_xVm |DŸjzH5k<7k*ȚT+0][};ȵ v/!4P[Vk(\kKoE}pCoE"}A@W{uźMĚ/)kccvm<'=3¯o^YSŏ+-̖V063 ! ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@M߅/xsĉ~s+O 5o<(l8L3XYq ^׼k~ů:(Ӥuk?(YB,?/MeWU|~OlqEK{x(6u-TuK;]5IӻxWB<5ZGдM+M%ge A<Ӽ&YB# ( h< 7Xޛ1|׬Gicw>~7N-no<%|AU~#"yf7źޫúo<}[Y<+ai\γi_T0Gvu v mK6I_ <+YdiRY&\/+u{&<)yMᙴK3.h-lt-fX& +m:Oɳ|yVֱ$GJK'hwݘ@-WWx M/eCԣc_ 9S-nIa?\[Km3ZFxfx{ewMNh^!b;xNKLVqh:E"%;m_@-tA~'_Qׄ?Hh5~?dk϶MG-tҫydm֑ 7C)7J*%w i^qwϷgu`ObyaBc~^gNJIsrڭ_R|𗁾 ~ISj? oTڇ>5x] |,/X$1xƖqDHӥO?dx>+ua/%¯>/o>KΫG__KZ? xRxKK~uhaakc%?K'WQTsS :r:{pSO avO14,wU+DŽ+V# -lns/=< YuLl#,8\<1E7 QE?>E7Ko!?|3xWÿ[_ 4i÷Orjټ ᏆqmR=&o I=~-?Rw 5;'徻,Z,ӥ(R)BYzsRPsWkb0;S(5Vl%^|ʳyv&UVSy#xƝ>=7ῂK?Gƾ9ᖩz.yY񵗆nO]Pi/A>8q魪;>G5xO|Aoƍ?AK_bx K:wvu?@\i:ta=OP5_x'@՝#G*΍SWJJ}ׇx7FRļQ( e5S%î4ft2c[NrS)y/ҩW9:)QJM+'_/|+EVоPa3x[^xK:߅ )xAK |yNYƜT:pXiTRU *fuh'j'*,L#eq|yaqPe_/dquF6Zxj.,q1?㖑4o?2Wl>ox6O|YЛm+kh.ῃ>khŤOYZxBb|}<]x7|_/z%xBݾ_ FA ]; cz` *(b)ϚR) D҃[z:bppp:O+*\Ny^ ^ 渜a( BjWLULJ*+Oh>Ɵ/a>/B^=/I5S)VVZׁ[Kv m^sK?J5e' AuKKĞ=REYYI]I?EOW(ιxOUGk~}Mg0$|' x[ºgm6^GxčPϔ8ou=*r6cpX3$˱v'CQW 8W:Rꄣ):W燁d/{z;tӿe-?IՓQKOBծVD7mՖ{TVK x  wB~ A7]0ᏏG Equ_ .4{-h ǡ3u+JxeOժtvT,q95]t=j3x\VcWcU^ UTbR983PS|ݵ6_ %%gW%ÏAk9RKd܁s$p&d2 <_> Ⱦ'OxxJ?Ny `|@yIN4d{.;׫+_#?nYq',rNY5g[kw-3O~O__ |X.~/Am?#kx"N{G-Ȭ럅_>^|.o__Z= στMi J-2~ 6ޯ}kg6Z彺5h8,F.~Zo߯yb<xUs/{Wg MFqu};PL4Uu+KQU~?ӥ9fJ9Jy+7U҂)7W/φ?<o~ wwv/|?_h1{}@Ҵ]:6!.$<1jҵoB𭞯j^ǂ4-^𶏧~4N=I4.8 [{KX#H`8TZ4_hƃ|d:ޗi-u+I NCC3rpqك_o>Uև?Sx;ƽZG<1[V&TcHY] Ns*NxL ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=ǏPx#S_xD2ZΉ/ص}X֮mMa]IoE6goz_VzoxFš4UNJ/"m'7ö0ZɠiCo=NĆ++]J ]jWVSϧZxU/>h6? Zk?S[[ht>%-^(&Zjz\5 Ix6}oF.cʧ&(b+k wk mο<xƟ߳o~:K~ߴ^BK{/ޏjW{}F}jោCO¾8W3Q=480RFS,}JBJsIW¨Q9ygs'/Y8`*,]8Xc1؜,1xJֆ.g_ aT+iR?eĺ^_|SѼ?)eߎ^2ZIFxi/~&St"k Pu5m/G [<0Ě_RÑj<mg֓ڂk%Ծz׬uwúwN3 &O CCQ(;S}1(ŧIK Qrù\9y\|VO7jRxajR(<*i΃~3u?owG< ?~ПU+?hh xV~!HwO bZ/xů#մ>ޓ ? xS_|bL8еǯj~ WRJt0ȰT *e7 |B ? >*,Dž>3|W>7wöwC}RMޡV-ΙfKqo ~?Y.8Χ 8-_^ 6gsb!W ?V2eѕ:EF9*KAV K8)FܩꕯٟlxOžt/x񧃼Qg7~Bh7^[OgiW0 Ό5@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhƿ<);y|M.[^nм/OCR5tQ4fmCTvh⟌va bķ>tf |@%Ե c&ȷH͙}aGP>.?C5ok-l/4SlUfheԦςtn˦k-aVK8gi>,th7iiWSY_i\ЭťXvz ݬ`Z5mWQ@r/<麧#&R LjgkzwuJOvBcu]ZY5uJ+rQWm+FzqUaCzJч4ci0۵%դy_?i߃iz[~, Oo?G#ye Y_kS<^=?N^e]qπ~3x_zƑ}0j:'<)/c"j~g_h>/4,'Pt=[Y{x'S*8֕ ZTH65uO8Ƴ9TKmU(G G[-ɘeqTT'*u\.>ՄgY}z (/FO(+̾0|M//׍#–i?> cv/zƟv5u[UTZ:4s8SN.sTRQڼ(+YI$`& rq4pxկC JU#JTsy+RJ7V)R\%wc|x'f:vOǏ)iemtYi< w-mGUknuO{ZT)rZ"vOܭBu(Z ^M*keDu+aRx c+2N3ւ4(lG}j.m1{xT/ooAx_x6J[^/=2TKğĶvm-t9׵it{ۛjBUT%OuP9T')Vq%8pi6ָaᆫltp>UJa(XUzᧉI(Ur,s6%˺9:6U8 +|9'5xSjQ:vYMꗢJM ]>}]ҲF8 yIvWm+J*1pa^jt)C1Vj8sNQy$%{%vU|) |iS?ލ@i|D״Mf]+Qе]g6^/ϣ=!&ak6[ghhm.? kzg<';(.et+Zݮ!F[?x+g4s^qf2qq&p\ʱLÇ3ld.+ xfKRa?uiИlZ//xkox[FunO5~Jҭe|?akzZ,dBGœ 7⟀u>|Go&@Zj:wZ͍.cGes/jA&50˫fL"a``v%b#W 9Kah5f/PWgp;|EXLpup|3Uͳ|F?:2XSQorp 2e1<1`|RPqe~Ͽ5/¾$h~x'׵zO~ Ӿ*ze^\j U};i=⧀-[eH἟zFJQ64}tSe|]FHx5L¶YB%x-G TQx*9.oCOS 9!5oAOoMV[QOڔ;Ηǟ|3Txd=ޟ[o˩,gKq.y9o hbz j,U,}l6#˸=3*k1ӣ8*@qO){._5-cs(+)I po*yIa󜮲 Yl<;C>}Kx&R|Mσ#y5O|Io4OoxbT'E?<={-RT#kv^)tit{&)c<>⼲u`gO8~0?2N& xٞWc2Xu#b2Yc3S"eszUpP/_x᷆Ex+_O/xS'tui $k~m7R|j*隓v4^> _m5ϋkwm-r '߈/Ě]ٵQ5oQleӞqJ2.|ac0tb:Emn> 8'`5gdl.Ü]|gqX^vwe1tX ^bqts<jyvN[?Ozo xj*f,+˻[+IXeӴ۩oomn8fK8*_k9V[`TaVSaʚ(u)bBu0iVQuiA/k|@5G߾ޑZ{F9ymid5fჩNcajUTU~g9d^? Uok eY.WsOx:o |)O~/N/ֿ&+M ^ Md|n_7uxwt?m_+O^< 6594O k)% G}uc<.|,FUO(,?p3Y>4a3jF: ?eڥe]W_gmx>t$SI]Sxc_񞇧F &])E熼1joxY-խݕei 229[tfmmogooik vmmo X$P#5TDP&( EmŖm,oxAN\] m{_ݥ6NѵFNRN٭Sѥ(UZ*Ғ%det$i~6o=:?h zFG߉S]}jz3K?|GvK>p4?k~ 'p|Vi? COoٛ?=gC<5s~+YτGž x_6]B|FϷ%<%OW[SFP«(J5#J9Eujb9%NԣJ7g8.L;~W폯U`j׫Nu8^jrR&_||/𿊾|~^:}u9HЮt_x?eO|3_7t ^}׎WI%˚GZ #df~|?&♿ek>3ӼRmʗ8Put9]BKt[3S>\jsQPQUWO7UFY{̡`1qnj n.8?m+R4FS? o~-/_n=/-ğ*T(sx j6A?pZ O.kŖ*o~%c?#_º%&Լ+cBgƿkZuZGx3xo-#ZХ*ga ba:2yRԭQR<{[RnY"Yc+WckN N,ʮ 1ѩQϿhEիYW{ xKC? !iRxF(|Cixvkߎ[\|?oB3$W׍1뚞ľ*.w~n?e<=iGƟ~̿gCzgk㻝GW4;kE^N^`daUiV̕XNy xœT0JkI*Ry9Ì#nYOb(a)a+8Y]u:xe1E%aOJ?dI}Yl>3⾳{T M5w3i t!.t=N|5K-_ƫoA=χ obş_-[~ߌ~>.m=wVsMJ^,ZƷ>ZMO*5z0t珡Qδzʞ%W:UIҫMVr&ykβ|,ep-żNcB ,ఙ<fyf-c8 NxklL3ի/>2Kǟ fhZֳ>WMa~< uIkz+C|Z<Y*~.~ xT7 u⥅ͯ>i񿉾$@ePLj5 v>6~tG&Ŀ~|So1kgeZ<|X}kL:eΙef|!i/%q5 DZiKJe;xQU*:ʬ`SZT\T FJ9c+cJxUeN><+%~"pp1(a8 7[h?jً_7<#k{m;]lx74_ 4YkŖmm6 nH/̈́u 5\h.='FW;xIEgvyxz}i6_|MgHۦocgWt}ǝ*LBL.!SNZU^eJPV~R)Ӽ58麹fGEbOf 1ˋnd ւ 8Z+twA G 7'?mVg/ڟl_C$dwyr');oMQ[vI#+V֗=I('+F7PiZ)-!m4':z_~#5-Z3[ 'XOm ͜vh|YซJj׎SM?- ߈W_Yhz'Ѽ-ƾ6֮a i~{F'8Ɨ `1:|C8̧)#y*c`*s ~cTpY?0_τiĞ-A3N?Y㯌u? u |uh+z=CՓIDzx5Oh>| ~|\;{xSPw4G ˏ ?2xsQO^4=kZN2^"/C.\MƔxKO_ufe| X fe#O|su &PmgO>k~V~U3x &Wd.jY^OѮoge|cxCǼgq]x;s| Sn'Ø|nEsW8/wK೯1X >-꿱}Dž|/? Ӽsᯇiiύt-i ,|Y7m]ԡfuԴğO_FIe&k_#MŤ m46oo43,71Izҡ0 qsyQ,fUeG<.%VrG]eiG W?,SXyG֡R;h]/YROşxorxOOxi_4 85 N^ܗ>H?(ɠ2 ^V=/-{\ϕ3a/좱/ϳ1β|MpcK(d9'x~Lo ek9)x wfmf8v668;23&Kx{^,:}G h~!/g6.4;HUma2~~_ ɦK@^!Լ=^irxUÚ'}C]uZޙ}D4MRevkùw ]Y-F83L.Pa^j!eyl6Et:}xs+MKc|'SDվ5] W|k$ J> ^7:ĝUWD> |)񕏌?Uo<1͟'Pk߳h%ZoxfI{oXT,2hf\=G86x9,-N3y+'e\6Qwż5f]1iI^ҡsJkn=|7 C^.o|lu&_iVn<u>o[_QĢXZ}hcuy- ~y?#^y)~!6w5xoӯXn_h|m~+OaC8Tϸ[ cJp\9*rtl,SC6< | u_֞!t x\|'4:j_/AuHѵA>+R;5h?G$Y~?_+m<~lFCĿEM`bnq{qGAd93r/Tfyg/~6GO31,_t_@4Kewkx iq{e=7@UU!Oexgf|O}x| _xbm>OXtA;ŗZ\pp־Կi_E{[0]xK[q~:R 4jq %2+<<.2<,Xl qm|_ "Y8[Ϯ⸃3@|_Hik|>j^6>~7?j_R75U4n}|5ҭ}sokzLj'~NOx;>'=v^/ }м! (mk|M{ψ.'|=4PX|r%摪\ KKyeпF-q_o . ,0-puR<-|7u_:r^ KO|eu-S׵ok(Դ=#RA|+ZОB ;XRUw?gg.tKw?jZn/-|+߃|A:~:ngyO)g8 ϸ7ͣcxa8ax;8'?x?D@ y>8a/Y🈭>~Ϟ=_-nb~!Et 隌 6F⿊Cs7t |,e=[Mi69O1lW uA|-`bC1y$SN B ;XRUw?gg.tKw?jZn/-|+߃|A:~:ng!+2G#tGeATQr1Qu*#>x^uKdX¾ gx.fY 4,-̖/U2.^׃n<|+K᷊oOD:|Xׯ7:mD!f~?_|(e:F/Iu'XFWIHeUeٯ6#%e63 ar| pFA4<3,v*/ b*b+rܤ?>W?<;vi>>jңᏍ#B?h>G_|hҾtFY7AWI4k6OhxíW~߄$w O&>ό|;vx_Wͤ;Y#r:ZVƥV.?xC2P[;E;%,$_u YJK[ D%ر𮳩ikjdi7[>~S˼:g^ / pYNO<7U|#!̱7[& <~X$2)bf 0>(x/E?kxw)%еM'#OM`%M`u2? >"&a-Ƨ7uukEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/8xV[x6l |^aXx|Q Įma\0ؾy_j𷃴6^ <~ć\ǀ,"M!]jzӥ'ۥP >!^{xCEZi`ƽ& ARӤtoRԮ/ⰴHQ>&h~*$]#:]=żOm2LeQ.Xz+Jq蚮kZZ;;} =WǾ'<)\Gy}ƚU iI~.ns]~?<9۽f׺rLyy{ڽj֥kzjw}y]˧7ե)9&rGžX98ERT&˔,#ŬluZxGAŪKR:nju凣:ҥ N}UPEP^k?~%N7.ep!twV ծ/nuCV>O^x74ĺ3UqTk&%zpQLvg6eaC`ba117_) =x\D=ʣͽ嬡g$^C DGUfwPAu_xkhC][U֯RCX|PYvcbԡC تYai*?],1' H;+ o"}?x9;?x-]7sZuMcvz>-'_Mө[j> u(+x)VLrFOիN*3505:8z8 *f97ayz%: Q_0EPEc|?.o4-O7Z L}~Cm0i7VWZtW+gqwikq,/5NQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhyπYkC -kes[xyijkMľ 🇢-'Q _BӼ'x oojzg (Lke-.\ |3kjfN?=F^ϹКͮiikφ+#ž-e=῎~+Z}Wv|E}pjoN[}O^֡lLe()tNї#URxzR*ӫ:TYYG-'fVUVc+yv#ЩͨVPWaN'ʾ7Q]aN/>&bVJ8~Wgh믈?ě=C߆|'g൧Qto |8B?&$? xWR +N:׺ahCR>.TEbp^"?aeRКyB ʜ$.]kqi+jqtce8摋aW9(mC 6gW'U;h=CῈh/ɪmSzgŝ/}K a˛ q|_/omVm:&k;eI/g_>д3a-:K7t7D%%e&_PRXԯbVTU x[QQr5E^r*2>C;acԲia//HӅ94k0xNhfQX%BQ t#Fqm+@e _DӼ-? >}+oa v i#e_5 /Gԯ,VĿm ,~8Xwڿ/4~*ݮm >6Ѽ;_-~tK k׾ +{K JI5W}u[4D:>bhO ']D-_x[𯊮i. HѾ gV^miPA2ҸKp Yz'tQρGAz6f+OCq-J-Mn-̧D4m㷼l'4!34--,A4/qg:K%圲ۼhK{hF }A@VL2g]bsId|_yoI;bh+@m/^$:x!tAQCk5 @ cO:rصмATN*+_JJ.V{]^ֺ:8h1L$qhJ'QR0u=5̯stfX~d?kbᆝ#T׏SGΗ'sPEA?-RO _~&h -kύuox4x;>>=NDZxoGwkޞi=ӭ;e??i'8.U&)Kr|W5xZe~^TOJV%ôʥ\O k:j*Tc'JPL|'7M{⷇wº/?{kIc4ԟ4r;MSNԟFyEmqq/SN@~"/>$|q?~ VMP~j>3Ҽq j{? x2Po}}dC/k8BZW ԳHхu:$pGЭ&qC1N> Y$VcQ M<B/. xl֌qij8[ߵ)k?pޕ\3?=<g㇅jZ'u'I_h~ߍ~$^xH? o7E“\Eo%͚$ꗰ<<ЌjC DIx8%c**UirWXxoY]8`1]|-Y(Gk`ν|Rayu\53 yٿ0fƿ'vY_|55yW_/g V"V=7zΕj6(X߄'D_^xg[uot;)`_6q*zG. t(mWBV`jPZn$i֌"ZHVx5]<9F0+N5/Þ` ML6#G QQrX|asXb)REQG V*jt5~(|Mo#Too>Gwo,/xwg?>.C?۬k?!>fFg/k3M])E. I7ؼή taQ՜UJrp:Вk(T9pA-EYkõ..:*x%dz\~% 3,.3(֥W : qp%U8v!xoKz~٪/9- V:ØKֵ=Hje=D<ʾear|xuTM. מS9!~y[d5p 6hy}z!߄ZYMnk(}^5߆O wVV:>,_hv,]|Qư_/M`5}? |2WGҖhh!ƣ ϶<ˀf}sc .U,^] Xñcbsڸ,LBRk4UNjAtW`PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(¾0xs⏋nt:O5BGu#pmt)o4^:9#Q.k .5ž|%cFo~\rY4ڎk7zGmo|2-][('Xo R cޫ|47zׇ 4y|;۽3U%0Ф|1x{_iaFV\]I{6|o'W~xkSO? |]dp)^Σ/5Q{-Nk9otCYImfӡK\C҇|XVURڛӥ)3\Y^ +jsI* ff:jgձ(Yj>7ICQ<*/Rsw4/Gx@BYxCO)>=loOiӼ-sC 7WNs|7i~k=>ݩOWƯzǂb/>- G7oK&Aӽ9y ϨT|3Я/%ae_+C.aJXwJ0N%5 oJ.aէUbg|C^և U,V+Al 0xܾ2l%l6n3#_~2ZSi6mh%/~~$oo{Jz~xZn=ak:~o㷻Lo.O;ⶋ{(wo|Gǀk/v~ζ>>|KkBMFe{7OH4ֻCl%8YK)QVTV8s*KPuc/h߶Jas P\ޭlo҆+a5¬x+Ij<\O1?$\\N/᧋| oQ,״=k [x,5 jZ>uE N-+J=KHb5k5e[nwMs~2> ML/x&kѬu+=nO|};x\O?[-kDo^2#=4({a?';ox]/x= ^x\j&W׵JXh~iGU=/~gNx^?+_]Ƿ2EߋWυצzXOfd^g`lψ"/o {rl L\ \fU t|6W_3IN{oڧxBlcxe> j2:mt>K+ s:kjw><)LhVf>^ |EUDq<&c͉zZO*u#ZO939AЩTƂJQ_(EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<▥Auz@ѵgZLJ~an.m-GoIE\S1CNKg$|p׼#Z7b|>6KxjCV׵oO4IKgV{]ɹ{ |hN&a^?1|9w#߈MFM_K$) ](tC; ǃZ߇t\Ki>K;}ők35ޤ-sU[Ӽ?Jt6^25싺K#_]I=Ɏ4;E\( (?ӣ| ׉u?]=$_>0|x$&%xW亁!w?i3I|C2;s߲?‘{zcGh>;Լ+H0Fӯ$xźђ{xW#]^]pan Q}#@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh ƝmCĖu߇V0fmsYaдgI%йh-t-;T.P_)[>8~ڿßgľ[xRVl|75dLuk!u=vO zuξY:d|m:_~=mOO˭CQ6)e}G\Y-5dWYԙo-a\->O.į-n$4|4O^x{i?>|VzVrž,xXhdw? ㋽GH|Wt\t"x\SƻIui{`G񵱘I \MQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh&—׈9D Z9ΕvumzM7?H6z&,丆c5oZm յi[vizѬt5wMoJ b ~ >_š>tgD/I9S}:IEҗKF+]m;?No˛[xX#u)cP-M&?-Y __ŏE4ŷG"Y}E$h|8C㟆_ x'S%K¿4i ,t3]b%o:C <\nuS[{kOzOg7>zg/\-=Ėt="Ѭnk.&^MaKҔ 2ZRRIݦMifάj8|^zJURB#Rr65$&Z3䏋_>/i:~ W7?<-o&AW㇇?q> Y] \i~$7P|sWÏy~ Zυ/w_ *?aա*>(DxcwOhOuγ7D<|GφihQ_Ra`ф^41 R΅9JRIJKܦ: -:yY,d#a|ڞ8P1Ȱi 0uf},E,]{j>)ӭ|LOǾ.Lj{Ė~ ƭ7v|CSԥ7m"MмyoƋqu?ロweWi h><%Zgok)>{OhX4/_^~;]Y&bWnN<< r7e\Q(RkIbFQu*`%NT~:)CKUIb Mr?ğ&u~"Fo^е_o t; KHK_iB+Dm-mn=SIUJfl;[McOu;kJ6u'Al-WZq}nͥiJ֐Ueթ8EB9F)(Rn1Q$ҲZC1FVF0(ѣRJMt8J0Pp\m$'⿅Q"s.u=WR.Ҵo{Z:>;U |lodd[u[ZψGӼo?n|}_Ѽ'soÚ[|F_?><|-CO.<5KM:k>c7r*e9Q7᳌p > x*8J>7/<k3sL=^IM߀_obONJ)Zx⟉-"[HV~,uxVesE_>><>ٚ˽j>,$ЬK{xxǟ? -o8|VEQ6U,6bژ pN7Y1f\>;:_/>|S_AS=.`|uժwxcwZj/('i7v5H Ѽ7y ??>'u8]`:|Yk>6_>&k2{k; _‰}F K g(|+nuS77>xZn×[ ~ u߉e|E&^h4/kxw|m_\ZC kP.N,I9V_Ĺ<W&p+ Y5h98!,nMɿ9>C7 #C(e؞ƀy#o_2hƿ <"~ "|m~)xH?{p~5^AѼiGw}#G])m//d}[Q~h.w;/!ៃ'ǟi~D|]/ xOOxsZZIoEE4kIOCت_|F4)&kX@_xT^hga2j6yi}֑xAK!%{\^Se%YOu 9&'_/pL* >rG|3'/7W ?cn]jWܪNEyPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(|_~9tkuNtK?~"x"k]>uW^*2cM4rO:[E,GGCׂ5o?h>T5OQү-dLjn'DQdԙn$> Wu8~֎}>.G|s۹OQn|Cbv6w>mo4Qj|;+֍gx爼 C=ΣTST7z5G'߆iÞSG|Cx:ْ]gž<^YmS6QO2&~g OKe8ʕ/k)(J-7Mu(swሣWNzu҅'cVI^x9be 'S>/DtYS^]m|A- <|q_Lִnl.F7uFўR;{]}'Lt7GPJmfյmW^e5-s]ufZU5 SP2]\M,MiViiz4|#/o/_Dž>"_ks]-׈0kW*ͩk j_If_^FozT'yl^i8P3< S 縌džjX9ɿOnx/_guI4O1[>XV>$/ @>0x_4۫gZ5Z6ƒh f [%?h#t{N[# S⟌~#xHN4y< dj6]Vo^1q~9qdڞ6UpyeӟgTYUTSpY8V y,3nxww_?>%a|{h~2qmtOǏfs[}2MSDMlV(/{m8^ [2xrQ}S>6k.s*h-G_:42]hj3sXɨ]\>&q^k&G|5[y?ͧ\>gK[C"07G:\/9`\7Oø\J\0uQux;5~=9<[u#>:j_.6. vB_G qòe% 8L$d| \]C\'Y9 V*,Nkdxg 1W1e<^aaU?f_W|x|}f:k?ڧtw>&`+(7k W ozgO -Iڤŗ__75w=%ψ9}{yj^,uMVU-un.*2'1N86ʳKg9Vab{g aB5#˸W幄l fU1A91RK)NsQѰ~ 9վ4^>5ߌ<]xY/Xu-j;|_O}'BPB0^Ȧ=V(((((((((((((((((((((((((( Zo?DGWh_-j_Pw=2C||D֭cicmmw}0^9ÚVeռXo>Cgat^K>B|#<=&\մOkmji/>#Ф*toSլ )֦\cO_\|/ ׬|;& jZxC5rkoiG3@Ե{H?q z]/$ӵ{8gᦧ?<sIA/+\$ʨN&nltG[K.$9htXv~|O7^B'yɾxH񅮚Uo,!7(8]0>TD8+.)xl\c,5hVoI.nY[U+>.>xfO[o\? 2WX9Dj<_<1x#MWnk6^,4oF&b&}CO~|OJ[cfٻ[{?~&8gW7m;:tZ;6ѴgCΛ>mDJXpjkcjJUSu+c2cv75 OΞ#=7NƙIiy&c7^P|e#}Dxz [NEFZCBѴ=.fVj~:n3[Eth]{(Y%Nq-ԫo IAnjzR}~_K iOTs*|{gϧ14RsEbp*Sjb!%VΔ:sS'ߍ&/>xc_|]n:<#[#炼31\|Z ߃¾>M&[?,n4kZPou?<4|I~(=1|1'bu?Z\Z|B~HM3J4xC-aۦ-N{:юOWWJ7xVQIPI Clƕ^9]1eO_V&3ΪtcC>!|yh?W7H迳^IӾ*gOA][k to ]Oî[մZO-;f/ڞŞ9?rxcl <-ƚfҧ!' VB03u*}SP|C׺~k'<%+%ϭ?>(`8zn6;֩Bt)qg8\vW,ne25UH+q&P%Q?g?|\ugW7Id=_ƚ~c/xo}7J[,xúvuwÿ~&X~/~z_{ρS~ j&< > j~&c]Sw,] ïh-jeDŽ`gX^+xxW8,~'Î0p81/a8.Nk9X^slwW2΅ VxʸOK<%~5ZxKՏmKw_ >NED<ciQ$ԼA<]k-UK!קS_AĴ1|qW͝ZYOvptah|]^L\ n8\$eAQ _~/M3? e>0|uQP[}V}{?wm6 .iF6P~|>Gǧ#X>x=[(Ÿx6ٛSԌRx5Q1Zͽ'\qEϸ2%x#?;f9gᜯx8&48a}GRy}8(((((((((((((((((((((((:Duv g"֥n_k@Ex=3yk'Sۧk٢}7B>)xK rn[$g9)-X#DmƟwg]#펅5Սža? FYึ"-!bγE"&- _$Wkf/Wᾱx_M7^87z~ki0gb)wz[[g$KRZl񽴖[Dxmk=Íw蹲Dڎ.'D3yqgY#>'||3/ٛ쳮|; ,g e4 hNrE6;H-,g?tAQڛ#B=+ Z1j1OݵdG\nx XIգxԒ\6 TԒƝ4գnGOxJ+ 1/ A ʹ^ p^AƛM7W1#Ul~m7NJ,5- a }sNMGCO[뺟5+K6Rj櫲ͿĪ8Bk}f#D""RWnO޻"ql|FmG8߲*oS Js6RGQXάߵrjQWtٯ \x-χv u$3 npxq<+qmS𿝺(oτZ/U_Í':| Rm4]Fhv\Z_f4{ &]^;K K[xbH;R5W^\Utۨ&{ <3,Pk~?<& TXo|+[]!%3_{7[ů+n>[jjx_!m=%nbwwUf$㱰nQb']b+ښngwij].&:'Zgtjέ,N|7RgycxW3q'Ÿ|=Io58!~ԵF#t+IK6[AqrѡG(wCR6wFдk[-/KGwtgvT=Adk>|GtM#]ӵ]/]6T\/"t]f+gU5!U./!hej..x/zvuSÚ>-τ/ SW ]v'𾧫jey%^imqys$:p<mIUTЦpFX(*հX:TRpj N \xZg{xvxT\xvϨoMwg4χm5i!ub}SQtV2;53~:A-.UmWQ`!/|"i;]jksC4 |5֯]#XooAgY궚UWŹG \-C4s|w f\hVȳ HpyC/0X8f9~]difXL nX,60{ï >Z ~wM?%x'NCO%5M^ Di Vx?QSON%ikD GMZH%mCi5ot~o x$,33>αy/;ͱ;hSb D>*غKB)ץ ~<3i W~mE=L|3e:,7QyO:fT؋fo#g&@<Y#_]>D.=V]wRʹ˻C[}bidU]BvGs:n&1'ǃMj"ϟkc[m{Z#|7Iooœ T&i=?/|Z~+n+gW⿁{Gi,׆/|'u]z|Cxzލk>n}#81]Tiԝ8VVjTR49W;*eR?VȪfqF5gj [ r ¶e|f\V_S9̰r*RtU*u׫];F] X{o_OOͶ♼Cx}/2^xWDּ;D6x K+rw1`7X㿈r|; j*#Lnk|Qo}7/o~]Hln%l=K^3icڊIKwZk&_qcR~ |3FLеm7Fw5/?d>H(0WJtž Iec'))BfNxg*xz`qPf ЭW`ٖ Ù6k68|5k2FeY^/ Pa|BκMֳx?De/W_ ?hω_%|uk{]QEcXxÖw{4-I~<ៅ_|Yi'&?ZuGs{ľ>/VX͵={Q_u 6kEy%יJu1I(2$G (Ԕ"%'K(|5(A8ѨN2>+q8&/5ȪFiG8aV +ץSO,SZ~*X ]:Z5eJo|:5_/S>  w_CRaq[i?FkI tվHk4]6Ok{x|i~_Nk3Ŗ>({E/ixkM)ok_Zׇ<xZw+8t˟Uoh_|xisNt Y 4[] .O1oH$Q$K ; ((((((((((((((((((((((((((((:Duv g"֥n_k@Ep5Oiuvx:xZ3j@3Zcw5imt5eԵq?>ޝvw5kR7jVqMqB8 bvJ\UzXz^iR4a9ǚr#vyIEuivfY}ĶZ4j! wJnR\]2,ioyb=k34O[Sb-5 /--C>զK{dn#ܭ嵾V rFRh»'{VN]^ى3' UkU ңO(/՗7.aNx{GRt߉@?.?B|Sox?>25Ox{^zn-ZF}\4yc:sRI(AJQrNSa/)%~6 _ఱ,F*(PZ0НZQ%_R |j*UjB<+ݣs1߀SMCѴ䷼TwFȰvu]>22F+$ $/^ ~c7zՖ[^ Kx?:wK]R55֑jSw^4|?e\Y˧i77Ft*T+ jD̠ӌozjԦ^\T pjb0xH㱐RUi 4*t15' >5'_g߆5OR:G4ahڎ:Le_khZLe,I#?㇂o|IJ <_m%ZUޫh0;{u=06K%s۴S5=ҟe+rߛfmL< ̕/%xG[RxTU\!.uO[s]4__uf'ǝ>O[Gl-/K>? g ^6̺׍u@aH=3~2 j~/vthյ5__[ilKBs-mfe2p+L~ ,躔*ج]haZӧFRjS T`!qY#W|=wqkK|9I|M[Kψ5iU#%RjZYm5il~_ŸOxZOu ?K>k?>J} x:CC_OC|)q ri]foh?|ks>SF/1E\s|M\&F_<9'/j&YͲ|cqY[GFᆉ;CIJ%[Kku ??i_OnFRԼ?OM˩cWxW36t ?hKiggնKlX}OIa#1!9v], οr5Х!Nx*:~˞2,FJutWQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhCGK?z?bX]&|4t hNi|-^uM,Z[XeRygƯ#(| |'l|'ğ wi⎣ Ec_|'÷:Ea6p|xLt- |;{qc5͵gѾ_' 6e/U;!ۍQй c&oQ@s"}6Q=i> àx|' x>9#-gٖ?ي_Yӯ*xL-jYn+G޿k?kB}cR'ūm#]/ x۫OC|oxm/ i-5ZG5Cjx~[_+Yo3G~+Vw^Gt.iV ~O,ҼiU׍#1{=oʹGэ&3)au]({*^5N3~iZ9wlgO/ +O'Xb0OC;㋫̨}jc8f8J8 9^ 8m?x'/ᅯ~^ßZς7o!f}hiU M0!ѿ%Mn;>qC'^<-=/Hӵ-3C/%Դ{뛋6ͥjV_#Qؓ*KyS,<>x<^#=/Q,FkQR3>JjBP(-y4qg~<> ^!%_wZwuswkϪj~.7cO}uExoOYʟ|-_ _x{7?a/_Kx⽭RƟ4υu^ušj~_~ ˩eywgٯ hIgXLb=afs<d9<:ʾS./5COL~_/o^<0x*O ڿ 5 ~֡kUxf ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=7 >7+g_ *NH{x].%tvkk %-RE1s_(,ח^Ft,,}o\MJj:}JOn$C vW0ZMÚgA>6|)i_Ygm-ci\G6jڶiKIdI"'i"FHHLfXY1C dbXG\1+Jq蚮kZZ;;} =WǾ'<)\Gy}ƚU iI~.n*aѶ"JF8ROUJr9SH|5Sb.Tj*a0 ھcTï>jԊĪ0EFQ:4-Oִ-;^>DVs?kXPԢm&V֍W(E[Goi Y5M;Fm29tXV4[HlmotiekFܲy '~Ӛk4?|pW{:g|//Ɛ|Jop'? +P2l/xÈWMvWُq.(C8mŘNkS5p˱8`4ʲ, Gb%C bjTs~l?犿dۍS CvռkiVI[/fkԇQE gHԮ@:lP_tz ~+g|-ơioZĿ֒mO֮<;\iIz:o%ȉr(;f^=G`y]\%No^ qcC'㙾qZX8 s<Ʈ 8ad> -i:I𷅼/Z[5@,mKM9_ZƲH̨/ >%|;ǿt.ž)V24*k Q>.o6(^Rkp1Ę2 `s<K0YV?asWy^U(煡k _VlpEJ(xnt7ſ&ٶ=K]gÿ!Ὲ|B'q|;9o":6]h<^&hi7vyg"?zVi36յjzj:O$"?cC qYkC -kes[xyijk ?|qwQ߂?V? |2(GT:Ejz촭GQZhY,ZLBX{5߄>4ӵok_i? gO|G/h~ mR-Yo=|(?I٧R'ΥxiP7Yxºoռ]g 07>m-Qyp]_-F}A@U CJxt N+;V=B;MSKMԭ9V :(o" qissm4itӳOkTʄNQ9JN3eqi4>]|ss~|m-,<]מWY |E[Y'~xO;OO֧n3nCm5N ~摨oƚ|li?¿<)ߌ6_ |AmⵯM=ڍυ|WokZ_GM=l=jAR2WJTν{Xʮ"5U.GE(Β:(MUrܲyoNhgle\l&2gb> ڎ5`U xp1̫q9uSK>. ^s/x/¾ |GH F/+-,uoX梯iOSR-? &jzR#Z0RXSZM*qaXwtTO)FqtiKጯ+Peجnf+G ċeН\%,M*LrP# kV,oԩKh_ x xcYҾ|\d;)uߌ!м+a} fex5Tk/şum/5ODtm3StOG~%w 64mGuo|Q:dξxz5p+B0TYU:XHP榣[u F0TqfVFb|T)t(qm CxLcrmd42[ ~2iq+* Q} A<9iZ&^OKtKk_zIW(oemm5-CR/\\?7HѾxJ>—4 hzOOxJmC~k~%{a*g| k0}+wrnRmmo?>RsRrRr9sr&)I&mλRfM;XӬu]>Y-R[;o-$9`y-o-ືvB\ 4uSw^^/x)7֯6 |D׬tϊz'qyŷ|g Zϫ-Z:Ìg*r-slU|θs/aL79fzl&8d9|nLqUlj?f);A෈5O?hxžž/|mT~ԃ=G?~>/%uu;Y_Ao5O>wa>>?hN&᮵Uͣ-|Rqſ>(]}W\>ixZ[c?^1G~ium;gL}w x,XL/yw i2zeթ *~9\AĘ1c0(Ko;_xjyN eeuY|n|GО7ϋ|q>_?b;6ĚbdWu%]Oƾ/޿4zN{z\^Գ~1ph<خg x; vI2l-^ xƗcFea\4[ ,h,sEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<+>(H<3#Y}$/?t}^!N;BGu5Vl\[ ZX|S}{]ÝWt ikpw1~ZToڕGyOڨ)>e$3xC÷fteMu'ƽ/ !h;}R]^ԭ#PEm6[xxDPtTPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz()j^<xG_4 Xux{\ݴMtdXΥ;D:T|G {? ,|ExV+ωڷ|mo,48m{VTk]Dug켛'^ }9|-3~5x@|9'l:6:9.j^XjԓCjj k4oWдKUіVt8n.lĎDTY˙D:z _:<=n:-_7n[ |ai5ZEդh mFI4>n;{(M)Fn0sINZ&WsO[aZR2% NKQE(EQqOtĿ>9櫧x/៊Yo~<>(q+7ý^1M'Z{hm۾y^#]1xO_57^u[+~'wg??='-xtxKv-O AнםIb1]զ΄jIaHFiUU:|E؎'J]O1bkf.k,vM6YK]e52b^ucpX1p*1T⡡oگ^ ωEyOp9Oj3񿄼igk6j<_tu:Y3.u/=UPaw|/)|iy|C}]$uosºO4=i |x֯Ŀ /~ Ù'xgǾ.#WEw/>j<6a7fNK6!eC-u5/ (IILTSƨ 74%y&^m/i¼QL Cb2jXBp1VD'Ue?zQT񍗈~ ~#O \ſ |Zg]/▕ O7J*߄= k6SnnQSS%Zyjҧ x):ucOؼ'(*S(8pI8cͰφBXXXe2֩< 9P-fta,ʵ:T7??lO1o4ip+'Q>h ,"W'7k =j#Nʕ*OfeR&Tz*/mEq)ZS^d8/S6}3x[03 K g>[-<6 bKZ.-<-,W3WE|ƞ Ğ֋j!x[QSGW:4"xYG2(b+/Umcᯋ|ixWŚm;ǿ+OҼ98< ?G5hYcRt b)t{w_{nt 5---5ҝFxQ/T:PN#RrJ0MFt5$yQ˰x,}^cK0*2־ WxLCf &piPPF8^ ~*mM3:]ak $.`\wtqȫ{Cu6pku1s^>x[xHޥ{=N{]S]:uΙ\귶[VOaI3 W,fx >cZT'ҥ :eG*#V'JH I-|oߊ&c6_t [O '<x^񿃵­ OYD|a -nOk~>_t|yo?g Ǟ*_>|#|Ekⵍޕˉ(%Ax{ĸGi[ .u⌃ ܰ=~J9gdM5+ƾշD}4 |O/x2o-nŗ> k xn/ fmzė/xLgoDZŒ6i5??k&2i:kG-shc1L[uyng ƯXfWc!קO`)z3aM~1_xf:4$f=?kSoi?ow)y վ/h4Y]*A'|-Z|K \xN௅*.OkGgm&v%U7'xfxxgck}7S]B[YK<o|l×$E;ž7𞯡.\G-n_7~&Cx~|k+sZ'#㈴O x÷ŏᎷIj~5/־!晬_꺖3ĞV,5ëiځ%^| 2Q΍c}}勫bHU!9m,lDQ _K? _!e^ƻoqOk?>ׇj$"׏[Ӣ΋%zD)G#k_k-OO_^)=Ķ^qh(<; x+N񇅴]CZ_{oU"jzxLM8=QkbjtpNSӨ' bjWUST9}Cai)}:YͰcy/ʱx,.:x4T8JTԫSS8fUh/I{Z}3ß&^~ʞek t?Zޝ/>*|)~9/]x7ׅo]=VK{M7I D;o~YxAе⇆5Ÿ x1ߎ+|?)ui^ $b_k:mup)Uy؆ʝ:PJ|qM)7Oz*a" \sVZ˫ap9gYRTͩ9 NUeO'샮~ѿ5/*%k/"hfm'WO^Dg|GFXZv?$񅮿rM&;:/ t=_>>-cG;WWM_U¿/@}Sh1[j&OjrX6uE,ӓ ㋍RBX ui ê0WMm>hBє7{ Y{G+'*F&QO bS/)kbRrZ< j5ht|]>2|Cq Ez|7|"|8'ռ#|O3.g_Io::=/s9J|jn1F{~u/Au=3p!۽?ZԬFk'tzXW <㰕:PF4iQQTiy'8CISu c8| zEhb ӡa)qQ0Р/b3jL6a- b߲j>#>|cY~+2;^4v=^?g/ ̿$ӭtv&Y=y?ڣ[g%JUI>lMybW8՟,W4!B)E|{|viVcZx~7gY pMZTb}8*NRVT𵿉<7X|A}. p":][^9=] &c{-5)#k7O_@k V=φx_xg*Wx- JmB-|cOXko³i[5e k7ŸΞ&O-/|P-Z_xqΉmx:K?^Zj:xjE$Hu)#Ѿ /̰8jӈ'~)ay|7`_-Fy %Fb07eWj7,|=SG5~> ֬`6?Γ}jR5獯l5h(ԢO>D?e6?Y3/xůAu wϊVz/ŗ:'44=1=4}kO־q|8O |!+NGg~# 0O xHx{x?(W1xi E pu|JG,-<\0DŽ~%¿5!`Ӵ{?o:Iu?fŽY ,Bi|?Xt_q7*s̟)ck0faSα,=Y9Ɔ+6ԱsSʰ~J y7:+ox ºs:5}/6~#zeζ,|eYHenΏ5Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh ƝmCĖu߇V0fmsYaдgI%йh-t-;T.P_)[>8~ڿßgľ[xRVl|75dLuk!u=vO zuξY:d׾%x4/<}g:Wu?0OçCXFM!4/!_Noj?WqEp^m_fLqQCYE,,a +~(G />s'n|7Z7~UdPRKw])r{H{Ez|Z}m{X'X3GA#zs~^7W[O>1x{oi^o|Mio6F𗇏O kIl2}O"bӵ)?[F%޼&SB*bcGqr?{FNZ6 }\=es˰9԰@y\Ƥhs*T14'G*\br6xԍJ!oE|>!xLٻ÷ũ|s} gW-kWi+(%o (tզִ}/Ki65H<+9Tោ_ >._~h9 ~϶,~WLoh;ޟ{Nw}<_'ޟmFyYL+{tbj{ӡOJ4SV.5ܱ'J:|< 3 ^qj+*dU G3l0]ѧˣ¼}GOeBX5~wc_<_'']^>%M?/j A-)' jƻI<7>|-𞘺'S?Ym7C}&+ Cp>' \=?ͳ<'JI/2'>ft3&'4T-2Ya3 ypqwC$iQ%W ڷO|\|]_EkMKZ_ > h,a);X&| VÞ%ŢN)gFt%x Nmh +m< o%^?]bgy>3,ST)Ǭ fyiY~*#Zg2ɝ8ʱ|J9=Oڏw]/_|;>|Q7Ū7^,FxKO_h ?l~|9eg>Z/k~xO[m|qq a XOg<;7?E}S8'$p'5*ʵSͱiuN˿ Pkd~ q- gel ]o{߳/|e|+M_ xgö:ƚj^<[w|7Xt׮e׈t궗qGs~?|.ٮf~ "}OH[]πZ\kͧ !kjվ ZjVZŝt=WOՂK)͸O;')뚯ß?7z࿈7g4o 7ᮓ5-'xǞ |!uxZjwzDy7_7I?ƿ埁Okߎ| 3_?_YPG OznϨj ]ǣx]GT=Y~m™LeÙ>; |83aqx. \\ˇ1y;s:8<2blN#y'uD]xZ?yx௅ yq4%_"%Xh:֛x[ó_># zݾ m|7u.j~3Lg½bį^.F_>7$OmCWz|+ \\m ԵmR43P]#ex] eBZmW1ď_~6X%k4umK\\I?Z/č6 go!_54מO߇~(|:5O<[OfӼ|5xN}VQ˸..,:vG[_K?1so |h Nxyt*ON_GZtZurRT.ndmXW[7;ψ?ˉ<=>iZ5ƬOk#V֦ujc ‹r|sL O|3*ӊ2W`2(T'B(aN3}V:C JF!cU|9㏎_O|}6aе_s΅kAʸ%SIyg?!2gbi^_96fY# .'ѝ|2OEJWEQ_Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<o)xÞ$O~;υZ`hɨVפ|q/C cgaKl~o< x_V]ޡ[_h徧a6wAQxyThVzM""⏆>)ƑۏxIoiaT'Fkk>Aux_jY%$ks}aeinioaİYZB CEj*r? /.ƿ m|q^xsTo| ?-4]R&֬t#<)4n [Z>qjq!nc+{m#7cEk_<^Sn_ZIJZؼm*L/5ﻰ؅Qqx~Qbe(+A8T)ڧuܮGʾ&ͩΖUQ{qZP> ^L+8\r&&Vu~>f?7/ ~[Ld{0x6|H ^x|$_~ĚpBl|x'A+h փ}ZZ^^vnckhW7vΙ.qék:~I}a#դzx_?(\VX|OxWVB_<[B-WÞ*ίLzƏBDvVn:Vj5u]Who+MKZ^&ֵH.E\=ae<'Tg:ΰy#7˰**?9e2."YnkO*8yc.gRs!7eO w^׼Awh;.# O#ៈ~X-?I/K<6ڴI7|YqS৉#i_Vj#盛n%{{X[mS ӵ-mm 2Yىe|p|09OI,pu_7r<4gyvhS1瘌)*fkX=/?;|Cⷋ_Z"ҡ4/ 4ú'+ n5? R:j5^iH; +@xk\֞8K3 qp|ASX<u^+18Y8hO J*qk5_7ڎk?/5h$;QI+F[ خMVQᗉYq<xX4xҞ)aY,w e؊\kO4A~%i0Ϗ5ktO7<;C+NӴSQ}:vq'u 딆h FmO!8g ! lkdvg=P2G \"Sey_ l O#ßx<*?:~+DZJɭ>)NA$3şYhΗ {صס-x~7}[Pou xCƚ]M33/[v6mO}&y,eL~kd،TT1 ?(*t!s V_Q!M3*2HJOA;~Za2~$<\b|:O %߆.|K^jqo H|OsE,0FѮtnmy5,vsJR*BSc8QiII'vvM5:Uxj*iVJeTHFIڄԒMhϛ"|6?_?[5}O_qz)i~GNgkyXhFmZM}.CtS~V~'A⧅%&c>{d=g+]rixm㿒K4jj5`1N _Y6MFpbֱRQt(eϯ`0У_0xZ5?3F2:zѧ*rn(ӧN|i<__v^8` ,T-ïC~i|#5|7oꚎ///|-s]ͩ^h8~i,>___5_kڥ"xf[+i^xH_]C~g[/|iMN|On_hsY~9&յxcǾbtM{Y~ѯ|Oivi>C:u^mcko?.tyeN4a *^Pl,':0iƬ-;r%#8Fl q~rPQOK0ɨbq} ν,5f&^B\HOEnh)KZ?5^%mi/u?x?Q״K,:<7w[$wW,g%_(n?\W\|xݞhPiZ7|=xGIkV杪A67Ccsq2i~uc ,1 i:ib!atkbpq^0)Q(ҪQIO7%K/xc mw0qǷ>x 3zDž,5⇉ִ+|m zkjW0GpGLJ<Y?e=+'XJN9V/3LViȲwV]<_K3 na xr\Ѿ3{xY?oGk'xB4)5??|b3gB('t_nO&?Wb?<q kA7@ҿ-o?k|4i B~$xo RyxUӵ3?,-~ /p?WdW 5a'K ¸ 71C,&ÉU‘60-O+ =to^?^+|5 韶?7>+Ǐto?#x;<~xxi] c^PmDmD\x|M7yB/._|$/ -G|Q?no'uM[Rm4]]Ӭ"D~oeΡ_'ý;_~#|&uWx|UOďګn3L햙? _7h^:6 _e<1/^/,t /o%sgC~!V1~gx/pdq~kxplU 02l5|gḖ f~ˇ8 W3Ψz.?I~>$m sQׁ=?ߴk?4>Ҽwou]Cߏ{˨X<1d7oܞ!~ |wdZ;BO׿j}xcMmnkmMa k-׏W!׼ ~?d;><{?ŏ1@;?iۏ~:/Ǜ_xcT~ ~џ|oMI/!cUz"𖫨Yk^%>]8H>!h7D?scwWh4|>?A֮!C|+WiȐKZ_{^g.9 3?5⬪lS;/83;x7'o p`J[oKC3 xɗe^)L=LcH|$GBվ.|f[Kfᛤ.'O0Ӵ;74}Z bmRխW⿆i#Ux%px>V~(h >Ǟ' O/}-M44 '™N&˸-q20VQᏈx%Şv'+7*78:n iK>!0ul.] |GH5 ~yM#kߍ&؟/}nǍ|'ZK+^浪IO Z%Ͽ i/xK> ~җ~:񆁫x_A9h ,? oj|2z&uww6}RfFx"?Wlr|ǜcMxKR?ae|18,/,!"t|,_ڇ>&|Eľ?<_&K1x>6|c[KmG턗CLdm}38me𾥧iwdWg/s-OWSLu-v+I_xRXqښ cN-/#𽟌>?hK5 R|UM >.mKkVs{콡xo о?/++㟍)'|I t?ZͶ}T~u&埂b}2hP |+zi~!|5nj\~ٿZ/ _JS⻍uf<:~=GSmqsfW^8(:3.k웆 r> =p`gOsVa*o>(' 9g,=<,w~5Oz mVzQi٪HxnaGΡ½KV"}ۛ˽cm<g#G=E?|aom OZ~7'}FU5ψ? ~_G/u6^Iy{]š5N_|YASl~c%\pδ8kVkXÃ|^Ȱaɲ G'oC22x 9/;~2'C_|m? |W7~_<||\4/:F?m/U =N7i{=B?gK__|oOxxhc7Lio}CZ^^|9t * jN5j2|@t'xg`r>xfLI<;o[ƴS1YV[gCiq(fEfxd,XgC Ծ ƥHh|# 3?+Mw gy_RӴ{M/BR1|4Qfpji?'iOQjZ|B;^'ԼO ]zlV.,<~?r42 <*˲Z78xq9xV<8fu.0 _9 ٳZuυwo|$Rſ_w|Tt>xG|e߇|?;<x_Mдj$~&O'Ľ'Z4_|^,~п,YhD<i>;1K_>=_ .<%jwa׿./6#Ǚn2<-xfS[î_X*0|ax;1S=No3?kم b8|?w׏,妳[:~xqG"M;¾{xKg\tk: >ύ(ŋ_DiĿ >%ok&k}jOw|G.𭦙2|=k:x)#>cW*򜓆1-<%jY>+YWα&*|[XZyু9n3_k_ )' MΧo}{ᶟ[i% o}k'&-8??lmwgoO|D) |Y|4Ox*M Ğ4wSvͮ?~!j|:ï]10✗&sFx~]KT7j`s\| qAYw gSjYC3ekLJ'Ýz[/gę70i! 9Wk XxM6/ޗm>E_MźW? Q𯎣~"j~$Nh.>no|wOx2cjv̞ [xCMfдUF"O|V8_(3,,r l/e,˱|m}R dJYOٽ >"|/_n!x'AEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(|_~9tkuNtK?~"x"k]>uW^*2cM4rO:[E,FwKeixG_G#.6RkOa[q-TܩtI$ /~ŖEYǠSc>%MͶמ 4ˠ>'=4jGsivXiMvvgAieeimko aR(`8@ P|V7Vc:^wojkߍ<-iy.?AOCVm7Qtɵ/ I5 6y_/'9i$5Zsqwg> s)c*zoO]px_noj}6Yn8]8RFQqeR] %)g)NV|-G<<9Iro2"00Yv)Sc+ FYf]RNzSR'Vj&&uq< ׫)q++ᆛ/Xw3O$%_k3'QiK#F ?Ï |+y>:kkMv/^F$~+z~u,@Q/MZmGX5wZԵZn'5Sbyu;^V5=> [M4/ntORu(གKiWo95=*RGucwouS' JRujKu%)M%yIݻ$I-KC1xF;b:؜Ujj1Vns$#A97F0a$xsA𶁢kLYӴ.HC ~{M>;[yTSMRHV$!\2̳w>x>8u :i^"KK,7LW-|AxUo|_k^)ҵk-vĺ xEi}Q5;m>燼Fs昪Ж 9;5q!008[?f\/O*ժe:ß,ukZ~׿#Y^gIᏌ>#٪[V}7tyydQ$ևnOiQQEƱkX?{'k0oO5?ω/yq]ZZY+b|WMZ}n%qe|6UY6)a)ax) _oC082x*d21ze2>i63<)%ޱh?+_]RyH;ݽxǒx#eQQfý{᎑c]?AM:u⮿[6hh<Ҽ;k}-Nƻu[㭷c54%um46+UW>ឍkOx\ߏUC_^⇊|QL6omWMXGB+'.!62GWXcy v2ী>"`jp zSz흝gk[gccmkK 0BQ W?_h?~Ė>j-/|!?<,β5xc^Ib|?iwȗ*!qX QlnC1fJ=xa42:_Yf8LV MΆ/^Ju⿇>Λ [u~=Λ5k:#4'mkkXX:O:/.>3\k73Rx~꧊c[ kXA7f/χXL3.MʱV3 0x}B 5yULFQS&Y*υf>WkW:mAOCin-/ď>*Mqx@nfdmK| qf=`&k?';[KҮ{ož7:^\xO8q]e&?48k2R &KHr5xw%d9&EGեÚg?cZVa>~tms\άRFӼCGHxԴmRQ,ַPʪ|/5|<[Z|=6qs3ǟ/x"K;k?|Bx[m GI#cbkxӈ,Mbx.#5˳Y6HrqX(PJt CdlҎO09~?` >mn>,ռFP~'??_\F8/x/ hj څҴ?O޻/w4ϋ>v~)K^\-miZݖޙau; )-QeKŸ#T dxܳ+,fYNvS9LvY01zB?wy Y5|E;7-cO}'S<&\xM'KK ;wMsFm7ZaZ5񴾁]jeϕ#y7efdIx;N"9\Lޭl%dY&Ie8hP`;er C 2 a𴡆~|#׭|m |OVsK_Zv?ϊ^3!hQ$4Mf-l&~ȿ |ps6ų\[Ceui? {+kK9|4|Qr:׌1|W|`ТKǾ1hjzƕi~)../4{KZcG?x.ŷz(;OXi^i4;xx{IԵ ǮK^ɦ֯w97/s᥾oZA"4xad)2<X"+TȲ,Np`gR<._x,L?LMe<zx\4il~x;xt_}n¾CoiMa}~-WKM"-y_nRm}S_mSCߎ0Hcj@Ӽa?|1⿋/pwCN|F𦦷Y1'::Dl~m;– 5,t}6GnO5?xZƚ5;{"ZRۋk_qy<۫+ x(OM,=ϋeG5XK %u\Ïxf2 Se|#S*VfAFWb,4gχ?m^4v^.񆵬+N77w'$>+u^z5we嗄6Wh:.s/ Nq|kxSX=׺X<->gL[L/5=I7O"kfg?2fßcT &y<2y-, (et԰X|:R^)_e? `8gAioXk_(xSUW>3׾#ԡEa Z]i<2[~꾄/2q+ RPS*2j U)I˰Sc1xVc303ln;7ͱ8'm[FϏO7ρ;|8W4:#4mcׇ-kx{~ v_խβ}bh((((((((((((((((((( Zo?DGWh_-j_Pw=2C||D֭cicmmw}0^9ÚVeռXo>Cgat^ 6ojZO_<_xgEMZczDShm*ŮOZ\:0/L?=K}_V7?MM'ϬKڴ>O-i5J,äE|_j:: kiױhڎNIm*i׺gxzXӭ/ 3vs[G-ƙ,{~ϓ~ӷo?iؾ > Ӽ/!SZ{}bRu;Nt*:|jQ9JS3rM63&CCeͫGㆌq8,"eB>R6 '*'6߅@-7?a?n#Y.~?14~0uGauc|2wi>1^#oh2}÷ڭ:%vF1WS\)ka*FUItU“ME+ʢy&+| th9JbxU#fG N"ʆ xp2lj~6|@ ?'į^Z-SĚ6{{/g\< .'t?χu ^[ Ŀ𜮍/D~ѿ֡OxU7'Hмu{ l~$i"g ,qu&2_6 ȷ-HU)N0rjK :sO :JQ.WUB>6._Яe40Rj<n9LXi7~-xk3Qeч3m+NiZlg6t kUxG~8m`Gãyq¯o!U  ~" |7xM7>~x:)S-6^e!U2ZZRђ<_ًXc_> iZ 7? tn[|$ҥ𭞫%Ot:;K .#5Љ(1T8)VUƍZpYAU$[(ӲJI_9(YkK/bNi0a!KQQrF4REx/OGVs?Oj׎OZo-j:eayZ5hVѵix&_^kNg3~ƿ.9/ï߳'K^6A|㯅~-hzwеMBox~]#_R tMg`-w2>,F!ENZNHתԭ;BuIJНI/uNf2GQbif渷Ḵ,kU1 |N? UUQF|UUju*Gg~k~Q?Bx7R#vxLf~;O K;oy6"v 7xgIWÿ[> mͦ/It[R)tJӭ̎l!{Ğyq5)*ujJ5J3䔜yJ1[SJ +/1yeEV5k3Uҵ;H/OMK[?P[[YeH. HfvSo]/C4_K]3Cmx>NѴ-+M;JtEL,-U#Rmm|#)0(+EyIݒijy}TϚxs_ԾQi'Ӭ|FťcaXYj7Mjymmi;4"H'GIio|q'n-xG^?:OtKOxk=K2]5/z߄4-R }3Z(T[**.ƣz^KrI+.[{pX8ʙ|O봱SONժ}jWBT ӏsSMN P]x[5k WTЯ4mJT[fuk)U{?Td`g]zFQn2N2N2M4駪~L¥:g:UiΕHItFP$$.с_|ghw+Vx{^wԵw]l#JbQ.--y8јykns]h?BH&C⿀+^n妙j>='Pk{8/@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKh<|T/"<:&i>:tMF|7|~ūshm Z6K}-N!K;}OS>«3W~ԬT'FGxF׭_6ZxV[-Z=:34F0 5٣&OďBZÃTӬ?.{}Nnwyooo/jn/­>hx*n=]o4h:/ ^ڲ&b5 '[О(5 6P|_h^!OemKؗVO/WOоco hڅψ2wlˬ6'cVhGSmq7 lp86愔kuOh Q*F9xߕ뤓>|-/ǻ|\S^ѴI|+O xvn#?ĺƻqGxR[K?jB^%R럳V]{tO|G-ִK✚wj>M z< I|AKW4o#ۢ3,tikQ֭ŷ{H: Bwu!IIRdNĔ0U U28`jNT̩O ]Ԗ3 xWƏ~/O{o ?goSU_6ퟣj% [k7t=sQn߅0k~  j[sxGx6[խ|0j#ӦU< :kZ]EwƧ©ֆiXVן%  ILBiJ\5K$qpρ2iC2+>J7;5Τpr|Lgj]Mb(x'㗂>36< ~G'M?楯 o_x~.xW5]x[ş&,<__7)uj_N/kӼ}kyo#4aFU< ]oM^gZl- [xW4rsS7O BtW:}P7&i\>Go/ג;{+}Zļ&;};LXA\$0ȶm.}PԤ7VHs0~SĞ9aCDImTmFSԯ% fblh2c/xNMQS_#{wm࿎~u+eI4YF}r:PEP|e]mQ5}@>$xG[~xV]"匶2Z ѼE&d%Ek4n{o[ K㯄>LwַZnAWֿg}CogO ˉ|KV[Tͩ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=?"7.CKk,\`u[Ѽ+;X=@=GLJ>4#ТOQ5cb5zv%Ӿ%Zilm)W4:^{Vxw_Ëk--m}/ri5t=.kDuea׼KJӾ!Cqx^/ú-GS҅4}wz4Soi.tV;kk{ZtO/~/ͼ7Oty__h`o?MӢfko|fe!x_^#in4RѼåkLJ|Mc4Pqb2m1b1R!p'M@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<|u[Gum/xYc$rO=G.;5ږr"b9uzm_~_V^Bhu\^jx Z{ʍd oT@񵾫Z[YEpHG5i(n4ȣS]2kB_Lӵ[e-; =B'TYxbY75RU*I"+ PY0]d/vam'ED6)"^k+@1Gw" o]M V ycCƨ\'WĞe C|5]RaZݔv^FYl&#tp8+__I j;n>h~/垧otB:|EL%0}W'{~?ڇgf#\ Eo x\\4o/5?^G%eOOsJYv-(J)T:7үQF=HF]ZSܩ0{О_S.N 2RC˧WT3 BJJZVCoN+WuiMx#ƥc|F}|h:OCmˤx_RVxS/,nhQ +ڿk[9)i SH-_ڛE+Z[,u-kZ5//FѴ;PU-(f1`ib)UUK5Rt6YũFyENj<-ĕV0$#<|tcS ʂQb)N5]Ԣ)m뿴o}Qxr;Ɵ~(kơii5TM\O1|_=gÚuzN~Z~7׀[TSrizw. SŲiZv/oxjoiM5٠W=c $o/!п)O'm߆G=?ž1+?ûmrJ5Fž!,t,:^51&,=\N01QwavMCc9n]*Ic3,(ŽV1J*pPσ>,OIo |KFEu~iV|lvrgҕ4-zZ C>;9mil|Bw xW"44]^AȍZMOZ_`Eg'w-&[,c?c*UBloecL-g OC~h]P' 3Z=:^|)vOg hujL~<7'O+"DFbtv3oRx_1,4ʸs$ u(]IC/<^!񾃨v<ޗM|M݇A}Ϧ=%žS6kOk EO5 a%w:֟ᖹYm:ŝiqikڞz\ܸC^/emLʖ[S W F'rl}<;TJ+iM,zEO_ZԨ/~OtoxG]ǤxOv ^Pj]CFyu-{{ Y,{Y M_LsW?xN_xL> _HGP-si:h2]j,{ -ZD<0-X;pyO8hTqs+/q/J9N5B4qqYcx\Lp%ԌL<6Դ=~%wTx/þ: oĺw84{>/E:{)t|.x/ |QBhm:GO_4 1|+LƩ^^KNY ?wm`[M^[;XIDl&9O/aq3N!f96Gg8rx 7;YFY aepyn314[Fx<7j7:F?=VMyڷmVNm!"[+ˈn`$R G6O )XV];~!xG->_ίãCj/o4~T|c?ܩ8#؜Y 37a8b0TG' gZ٧4*4/>$h,7ÿ_{x/gSx,Oqj}açks5.,ͤV?ˍ>|y /3|7_~V ߝ/r䍴y|1GY" -"#r⟄WoB.V xoBn{]R[x5k[Y"to/.mŊ]⼻72 "x=ɰ1yK6W/<|®kGN jq*3U~|vZW4+Þ52xš&HX =[NM{LѵKI]* m䚧o}0_߂~%%Ӵ(?<{xGl3뚬PmRP -w5~isύ)p-ljyR7*Xyd& 1NJqPԧ(VRf证 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=/>!?us-r.'3F&pXLv&InJ|=zPiT偕og>-!9|OҾ'|2~kMG;ͷah6S5^'4gдn(xGOkF1_/'6?7~Ao>=2R u_|j}-:1)T2)3GRXjuN5F>F*n -)BQ~ *-f9WC?`gqur.?.O3SJZaP,gTʍ:qU[߄᎗ρ2Uwf~ww GOg|$Ru%Mfnn>Dy=Btkm./4ėږo-nuBMJ}bRn.u[+{JZj7ѣQBѨN(N8\*Y}<.Kݎ* NQxgN; t#Fqm+@e _DӼ-? >}+oa v i#e_5 /Gԯ,V߭3[gNB5;;{>Oowew0njh֫KRz!Zj3*jҒ:AtSc8NRZi37|=z'ؼ5;⸼9/oKy^:x|o|1 _:ϊ~#͗)ǟ'kcΝsx+<=qmu_>5OͦzG|%iЫ/W!^S&rwY4) ɲtĔgx08l6F7&Ÿ?ho_5i~5o%;a>Gu/u5uf]gMφuOYM +DwB+7Zw|@/>OOo/g.;xt?13VNy5/+W. ^'p_pj1R252#-VW-ᜋ01V[(dzX㧉4~<%O͡x_MޫH?o6\&mIJ6O޵~-,fYQ᱓axo9rVsaqU)PpOa!F.]`Ղ[fn~,7F;k#oƟ$~iVد.r 붠Vƾ1%>"j3xF7OLu[#OE$ďAÿ> xgö:ƣ-xko_G/>#Oh:)mHk$H(sc<7.> c,2/? +XLe卡G -Z؜!e - ~;x6㯎/3[(?F|hO½[ᄞ?hO1|CnYg>!~zz nCSg_j3)xjڹ?6Or<\&s&3 t)Uwb|FIFs>M:xZ-xgپ*xß~)i?_趿u9KFd~ ]SGߌu-5mCPt [J6O;TǹO7x-NVU"XJJ?ibWSy JUd*`qC:o |U}K_?o(EdVӭ5 [/x"DP n)lO-k$#^)cX+f<=Kp:Ts%` G*y p-ձr1j^!jm=//{to x_ïxz'^Ѵ};LMѴ}V7^&Ii%k Mwpd`r(l2VxbemS)ʔaü%y~6jqyCBVέ)´~(((((((((((((((((((((( Zo?DGWh_-j_PB'|3x{6v/OĵӡYžgۯkxF'S\yh85$Ӽcō[%jvd^/\H-]eh2?Myv -5?kOq}ox]iO&_kwڱJjӵ/'M6kˍ>}B+k-強o4.xu)4#KIsIٜ€k (-xVVr㙕`lF5)dXVIn=;ǩj(x|lZ_Z_E.GKG>}RHW rđI5/ hz>$hq$gĭ//[ +H_ N6mGMVeA=Zݜw6h*k ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@ß|[sh|>:>'VskKy:uXMYtɮ--uASR7UkΛ]?^3Nyuȭ~]h|D0 [B |6~i:-j^?lZ_.?Ŗ݌$ϣj38j50_K'ǂ|/51h/{aL>dHްJV?2MW_PPE utY>-|3;InD}']5=2_:'M/l:ƪIgº-i𮑡B5|^PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<▥Auz@ѵgZLJ~an.m-GoIE\S1CNKg |Yh [+o*ޡXվ|Di{t} Pu;Z߆4h$!5Ms:[M ?;ZI</|,gG}=V? |8a[8]BY^𽧊Vi[%,?F%ݕWVWqxgѨ^ukKemwVx3Ɵ<{ }GǞ^ ^n/| & ?i~RMRϊt׺յAb[. ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ()i+_]ȵ۟@-?ߎjZ_^\j~M#DAmkO dvF[q|'|6NK?'J/07~%9'N'+^ $jQ\ꖚws_k uH[=[Wĭ-^Ɨ}ċMЦ͏V~.LZ~Ko_FV7qiwsspl:w+uPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<+kwX|M~[:ehZfɇBŞ$B4HST B9|o=kÿ u{huC? ,~>$ֆgZ NN?$ PuhVᖑ¿>#[Om<7ki? MϏ{ I~kk:XZ][es'n|7Z7~UdPRKw])r{H{Ez|Z}m{X'X3GA#zs~^7W[O<O|{Ptu-|W蛴[4!bkKK q{)Ԗ~6|V׾[x+D?K⛏?Ljşxug}Rū^O:G_xo׷^Zh>-cԫJTբ,ZD+հܲIbc8p~])ҠB`j`MBcpT3Jf3J2eJ5S8=i?>8v8oy-icׇ{ᨼiៈ߃| kMisY&ԗN_Ym/ +#o_x֡hu{⫏%ᕽiU72$,-obOFhSSuTYQRCtTSRS<^<ҊL<.Uz3_ V8T%vþ%״Y.a_P1]K{]KH |;a-⎧[|;.Ț5x.euDem|[wC> s0,~%/&sw7F5?NEy.5>;5̰~9!ETQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<o)xÞ$O~;υZ`hɨVפ|q/C cgaKl~o߈>`~,J.mnSDzO;P"xB n9;/µ'KtѾp}H}JR ontK WR]-v[˥}A@TK:4[̊'fkyqkF-ZC=3<\wv0|r) H>z/c|c?mCH_/}ށ/> M't.t|$^Kj2C5G0th’g(ye՝ TU'ccRWh&^*̻԰0\MZs*fXKj'ץC9<SVK.u' 9%|N"dk~џ~0i?.C/i_f&D>Լke7~r'+[|-:W䷲D<ϟ-~|PϏ>6|1ŏO?k_2m{ x |+>x;m.Payi}?^,,R)Ֆ"*gUFRsT>eF5^3Rs#|MWp#S4O S= __V-W G>"ӜBjJ3|0t.O_KKh5o h>*5>փs4}/=~0|U2𞜺ݺ\pk߇t[9pn5ѡ[h-l28_k;O<]%<)}LWO7M5/qgſxCTԚ2Ox᭥ $4AEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(>9X᯷Zluq >7Ou_xUE]&]r)׺&j/7~,j>_z7>'w?Xǟn[Kix ȶ=-OR;]Z+b}MKŰ'|S[>$k ՚Og >0]zQXZFKQV]51?RXg=N#ŗWe'mb0\C,+(;K[_MD_PPE xu|otX#o^k}.;Z3/GW jOO5%߅u+o|2 ez%dž|+ ^%nLRK<5jƛ*[R障w2ҔaR(pjQqiIgV>7 _J5QQZ NHtNmBqSڌiŏ z|߱֙O?dž gş~+k /%|tC~ҼGx~)IֺUƛym/v{wm5~_Ze*7/^O)k⯆Z׉tOi1u/Ni{ah,#<)aܩUSV>.Fuǖ8•5EBQtEX^iP['Y^YE*0Q9洧kկF O/5B3MRg6|oς$hf/ 'f/>)nxwY IsCkߴO؟gX~|UG \H|{7友.!^3>$xC~Q@?,zNg ]Ɠux x> ״ƞ*75Ax)/56ih>?k-& gZj6VhVogARLTCޝE%KG Ojiڄn9qf%Ⴍkfw|3&¥ tYF_mʥ<=&'އu]A4)K[z<7r@o SktdXw.DCdc>,xc2x¾ _u-UmuM") Kee`dg]rL^e~ 4xJ40غU8iЯ a:RZQUM£PO~/<9Xsy5뻿|Kd>w*]I6~ΛfJ>%$A4;[FǏxz<_u|Lig?^%m/t!ޛo|FOY_E/ ]~!Դ諣~G<8,[sN-ᬎ9^YW/ȳ<>UfLl\®[6i #ym,S3l69ITbFyiK?s_|aa_3'oor:Ɲs{¾%/Kz'W/|s\xK։sj:/[WoFptj'!xoJK}{<{Mx4ҬVծ,tq>aS>++/g41~aܿh;VX#3l/QW/᪹f3cx%ᦍᯅ|M)eoƫ jzįz? xSg!xNn+m7㎋[+?]fV5<_[K4Q@f4zwjjܾk~[[d&:<:eXN ώsys[⌟ ï% ǮG|6e^OydYMxcaRɪS,+?%i_*>$ӵ?x¾ տ]>W~y=7M,>xO7"˻=Aҵ[JL};?|geho~F{_xrxĶzݶh5h2XđLlM*/;3^`Z 8oq42iWeSa+&ٍj.X2cf&WF4_1'<{AxZ6wigi}iz6iFpz/_>$x?| |G<13>?ҵMh־0x_:7#Xc5׶z^wY[3,W ajd'KE<,3.1y2,iI¬RV6?{:y=OVS4^~߁?Gnui&vĿ">*J]6=/ ~_ 'r.eoX 4o Wϻ_^!'HK}'OӣΓ_jIqn/1:7 eyk6zsͳnܳ8FGa8 AU8|i:(ymHrFen2H~Ⱦ)@; Ѽ'G/ `j8v/ e\UytaO-PƇc.<=9<) F|y +[O |?s8i+PJޝkV<6-ս#S^\𧋴>MaQ'ď>,nu|Iƕs;x 8|55߃.4Vk 賿<+멙gqk̯᷉yr˸O:.qc'V9e,BeON_/?|_Ꮛ*4KM+Xoi~exg>. %ҠZ_ꚥVE]Wş|Qz'|5  ~Et.5 .I{_|FWLz+G1ZI}xjVj5~M=5eô2X(8V{X/Udx 5p&OB\8"p~/tώ~Ŀ|X|)AxE;d'Dz4#@4;MGY??V^i"Rn.82od|Uu]뗶oxw;b@k8s+RGYΝq zh\g9b{'˲N3vIʶMx0-PORtÈ،D VZ!άOY~+^}okAsZG>2^zOmawE&~]ߏr'⿃?>3^>u^ ռ ߈?!h$4Oѭb0 qce K53!^k0&]Vͳ|^sxVq<-y^g,0bkfrjM'5xHо*C|WOW!^+3O<^.|P ]ß</ڤm 8X| O|N_LeO^7մҞ<tU|E)qO՗^æqhp?8c;?hWx!vSqvwٞ{qGhpPC9xbq،x9]<'/u_|-sWHxBoa' ^O>o6={σڎ<;2Yx^;MUu]/~Cl[{-??kگx¯co4O|N_[x;!--K>eaτ\geMl Ꮘ cqnq9dxFs]ᰘyK%Ρ_+HM-SxͭWwݧLeԭR |NQSf<jj)ždjn~xڧÿj,YOwIּ-㟍tӥ[ZW^8fGK?|kRWAD>`t!^“YM|".GᆏK >PЭ |2[G¾:>-@]; \xiK)2N;-β|9c] e]_;N),¶< pU #:Ȫb+TWPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(|_~9tkuNtK?~"x"k]>uW^*2cM4rO:[E,FwKeixG_G#.6RkOa[q-TܩtI$ %CCFl$.\xSĞ(-妁:@:ׇ4 %y웆kѴm+úNhv^Y[fg%ׅHEQYY٘ uPYZj׷!ieȦ=WD.Ȇ53j~ Հ4([ ϊu_kzSbYu-N8'Ntj\tՂQN9iU8=egW0)5'Њҧ\v8h֌:I@٫B|(>!x \gƿ^_C㏈^ %qxoRѼsa{iȑP`꿲' ojv_.|+oh~1౞?f?YiF<ԴH"/t[1sTFؕQX<k'Z4$(sF2xXa\۶gt*{ZS)G<8=<|jSG j9kJYdC%J4g/ C j5-+*i2xc2B6?xM>!&fOI$V,,'{ྵK2"-6QPC'ýKWŶ m,?>#ֿlKO#zv+ RSgfM}B~$q}$23_=̓C@_2cƗ^^KڕSK\՟~͟ <5|=|eh~/6MS-B&.5Oxğ}TI=</oL6xƘ9br 4s~'YopFSByB͕aȲN'/˱dt1n[_2ʱur~ WŞ t=s7-Coi#J?/>3t}2Ou=~Mlnm[h_< _>:gXυagx~&]mi`t|Tϊ|Cv>tbÞ T7@870s>2<3Vzx<$[Ї3x*G rFay~&Q‡ֺ>e[hl:=(0p[-6ہ孤v]#+<C__{࿇pޙixg>.ѵ}>\^j_u|kj]Ww6ޝ+]gKJ{[Ca;ym)Ԯ<5X^x6SdΙ5;Rs=ϟ~_| E+Ş.;_>Lv?á~,ltd|!k,o+ 'úO_N+8G cjrlYwTezX >KSἛ е+t ݟ_Rgt?5A߇,5f J[[;%{ٵ+Y` /n8g YqNUZYo1Ur|"<.ynOpCeYRc* >*6sCڪk|-~{o7R~'? C9㵴h^7җ^i}H;M/ua ?`{is!q=j+MG:^MRt˛-J=_&T,R+G|N>&*y, 37.W2<7 Cꔫ'hN'JRyo\xé|hM:ƕsz6ĝ AEt4K[a?WZޡ :%|L|?+nn m7O|_|5}vvl7V~`3qw<ⱼ=2; \#a؊^A^p\-mF/>aP>Z u?|-|:FNG|) F_>iWO5O|! iv}Q^3U)xR.{[Hw#x:Y>_G^9^LGhٺwڴE!xϛg8/3!2|+fy.Nab̿ig8x+*_gZUі'*bfx Im l4oXyFS򙟋meKfR,Nid<83J<)O3lejf+8p3'3|8qF/|1mk|N1m{N8_,7VDF 3LV,Zֵ}B>~ȟ|H~,xFnjO^!gMKO}?/>Uko ţ[K>UqaO 9#ʸs>||A)pl[K(ͳ3N2i8̣58v+[b)ǀe |T._M]Ʒɣv_7rqCºIok >ݥ|>w[+'&h^'gt?4wiZFC⧊mB6o\y{ix_ֲZڴ&3јY׳f p~up)bnxlc2ǃ\g9lgY~SKkJ.|BKQӾ3|OuYC{:|/guom=I|q^w93\.ܛ%0t~y.L ̶8Mz،vcc3L3*V ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=??xL_ig/ x[Ἒzk){cQ}Dֵ6qJk֗LxGҼE`Ϳ]:~|S/<3jqZVڷ_Oo~$^úN`ӣеKn'蟀%9ń2\Mk氱K 6KK9n<@_PPEῴ;߃><-cGZkk$|i5{oxAOxAK`bxǟ[_`4h>:мOZw4 *燦)xK rn[$g9)-o|A5OxCL>u >&j 4 .V_i)g>𖏦|pkTԬ-|)꺿6_x#ZNMF)MM%oEӧRJ'VI(SN29;F0Sފ)6މ/ G>xv'ux{ux7~>߂7zglA/Z&/|ED^O_/-ӾS:gZΛteo W Koq|̗z}Z *xAO|mSӴ˟k:&h?bbZK6݆-tI%Vۥ~!#B7kO T|]>/ Ӧ|[Vnε{qm\xE;>:|S}:Uϋ|M4VxX^BUm|8ۭZLfN/4/k<᫭Cդd}z|(/>Mh:\smW B\ZO|_h^!OemKؗVO/WOоco hڅψ2wlˬ6'cVhGSmq7 lp86愔kuOh Q*F9xߕ뤓?9jٷZ17"*t_?O|A]2֕O⧊54Mto{H,55 Z)WQuw==kS5Gc |i٧O|G/_ ,|c[=J^mx{l-> ^* z+8xJO4vO U,G4Vq䔜>ip^NQS<{Z|mp>Rf_jyF*~1!4Js_*K O'?iX>K?kO.< ,+:ֽ BxR?+x^UWMKQXZ]"OBPaZ3Ux7RT*Jr N/L ei#y=lڴWUC WqҞV3 <xk+߆_}'ǿu5:on[cǚ/ x5C< |[>6վ+^i;ٟ>R|5ߵg4oawW?|'l|?ajE/4ž8TUũJ˰b_P7(B|'hG92>uQx\+ΰ>66p" ^Ŀ̺⿎>uWZwgkk8~?|BW㷂~=!ռ/s|/| xZmR{sn~/iڟ"uۿOM2m^ÿ/|@>6uSqkqj 6P>IƩ}4jz6]E%[n ZT\DhO VFRB"|rJ41Xyϖ^ΒN~K? 1,x|FQ2B5qUxr+J𥇝LG,βMwO 𘸼. FxZ?Nx3Z_kNmex;5-Fm9-5oxY:J,-RP.SN[[mm5q=Z|4nΉ4+3cI(_i)~^:AqH%fNU':4{]]nlUQU1gVj J SQRNRin⿷o1dsg,IPsh((((((((((((((((((((((((((:Duv g"֥n_k@Ep5Oiuvx:xZ3j@3|i^)4<7ht}"Gw1X,iBx: %*Nux:k*<#Rꊫ̬{K3TrFYOLUxԯ[`Ԏ[1N/9z:x߫P~E`y 3 꺂ۋ_^+ n Z8u[[݈.>x x^+O -/}_Lujڵd5gQյBEY/;ۻyV>B :U?Q%yj8S۫?i9MCec~[nX  ^Xh*c^u1_aah#>2.6(h<#?S<+.t{Mr[u- _h"ГUŵY~}L-~%MYsLonu;[7\ߠ{Kk_7ϿsHľ%C-k[ZfԀ{Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Xו\ZԿKhCGK?z?bX]&|4t hNi|-^uM,Z[XeRy;7 E~}w=~x6-siM/mK:M|'K[ {F,W_ׂ5CΡ?$? |ORG߅A.<<:zjDڌVzYftbx =+5ͬ^=i%$s%ޛ}E.T͢k"x,|B𿀼Fi񦥣yJuh×ŗ<.ebb0c#(9nBO=Z ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=7 >7+g_ *NH{x].%tvkk %-RE1s|_𮙡x;X|Qw >֚% ō%6w:ue\sjz桥iZbw=Skڇ,->M=姄-qY'<])yݼS}t53žQ$Gt gMX ^R<2R'py (RA20F/5{죻doeԮ+ӡT֮{ߏ|+OxF_.Fet-n};U/# W[HJ:8V_߃^ //$Q_~2|wP{+Or_hv q^עht}2'tm?4񎵧:m~U+<-ofO^7+x㶚թNZNu%m$޶MdΌ&xV NPLV"iuFeRQFRNn1QMCX<ii 7? |?xS7uψ:vgv>"|?x>w}+V=kC3F._~" ?.?~.^7Ún#Eԧԧ٥VA,%J*uW_#BRJ.EJU)nT^g{C=hO 𯋩{Lc)R̡aӫ*tCWBU[ %-+SQ||W~:~4&<R_~1Ӿ#x>¾4U'~!e(9O?5fPдi4*x&Y.|Ab'u/:AqÿzGĽ'[t]?Yӭt?w [Ou|?V blu F94SHJim'1Iwcc;=wU:ʤ D\MԌc&"kT't 9f0YfkW'G3x4U5˲miUQa8O'ǚ_xcjZGtCWt <]i=|ho!yYUYul4r=J4?Pᇥ[RӫRa:YBI N4$lt)4;Zӗ7׼oenou_?P󴦚Mw+ƞe7h_^~'6O#OIݶhZA:`/GK_]ݮnH Ag̃(;0l&1aܷ.rL $mfaGGVAU8Fnxg'φ>%"Gº|?i4F6m;V_ Jښ t\-G_!R6ѿ>!x;M}+]gKŚ.{dF&B/"yJ ;WpWhܓ-qB1l`1* 672&|Ӏ1e| G#?o_7U>Y槯[[MqoI|5xWx~ǣxsjFH@ϑh_.x?o_-/[վD];Cէ4}fεgjcϑ"L#1:;{)db8,ZyU:~ox/AuHt; A}zK&&àFXbNxy ZMy}X5W'~ϊ|Y'^;kO\YAgnP4׵mOT=.on~n\!/N6eK-ZxZ96>RB=JƭE jTw?|y{c'º7Mz "K&ZZ}6=WPԭ>gf>ᱹ(plw6E[✷h0*![.gak,jO/Uq񊄂O~]+^'snj5F>(|mxkX5MBuKHtSsg5SĿ 4]*xYIi&xN׮|;ec&szbqq og'dpSUVS湖 cg6 t0EPm`iTxMhUVmxS_Ix wgw=Ĉ)~"3\\x4Z)wokhi$EH 6ףj#5wſhzƋk }O>h-ޓjյ[?RK ẅ^HH56q+r'Uɨg<6G[s:Ye\ (jxPiU5 3>W~(kvƚ7ÿ I .(Ӽ5wz˪hV@Phƞ|Nj%e 08AK88O?b2Tѭ¦J(FR .X8-?Q?_!ZOƗo n| (m Ƣ@u -iX6A>;ف|6S+kߊ[~|@[Ú/5}P$RxS`0̼;&Vr<5K+Us.4 IR+gU1XPʩga:y]Ls ¤% #(Q$xqoN|5ZxÚ^-ˏ ?4ˍW4! j:uƏqjWp6u C`xs2QRy] &PUUn6( W`؀O+>wo?g^PT5=+K֭ j&jvvLۣmu?R,g_Z۴sqjQmI4MwM5i29Ӝ*Sԧ(g ũFpZe$$M&hK/]F5o x;ŏhcM"-7IOtֵuX k>eo{k?ۆf/>:|3|.t_ W3WL zD?j0֛>Ӵ{?v> KMQ{){wZ&o[B>)NuUyx=iJ:mҤpTuvG9+fQb1̫q>Y15cc5*OujT՟;J, wExC>|hZ4_i?h|M->'!uᾃ gX0f NՓU<1oOTЩJ1O:SBqN*0e 1Su0O1nJ߳(gWpn+6ʸ [?aquzy:T2ՔC҅yc8rTiӎ:v% t>&|«5n~xSm=:{=u['Ŀ OPK'*k66+su%x{\l<%^iwxP𮙦$פԵylt;jS6ֺqs^]\׉[ܝJPԣQΗeRNEuu)Bv^Rp0ԝybnޟw:uj}{+嶹74owSSF\=ZX=Z+Щ kQUVեR3Rp$Iq_|Ku?QF|I㯈^;~$㿇> 櫯\ǫxN6`kM9/.!TTs\ R^:mq$Ǽ>3ԡdb10wyC|JiK/ >?{x7TѮc~2? n|5kͥxFmWh_?%^῍2ӾO~85i@x|7|5Xx WAe>9q,l0p?ڹo YIb yF3$q+3yhPE⯆G~2h*)jsǿ]CSnd<y5)&K+)hs?2k¿>/q<ϊ1]⫟{yN~4a'X[Nҵ=?\yu땴_]z&?>#X}(k=oI| :Կd(XBOoiQ/)iokZC]7-/J.t+O[O~ > }o;?k~Z__z{o[~ Dÿ~x_ƍa.-{JזRj RA|. 9Oe8wO1ͳ7'K,LzkW?<x+4' XnXl=L|egmu^Ƒh'~xFIΉaxz _Q^ZM6@"JKqi[5ԥK<OMd!}ď[Ɵ>|)Ϯ_Oxb>+9Vs^4mR>'4OA˯ OV[ZokmϦj20O- ׇ![vXj&ѵ ᦛ*x+Wt ι/H]F|-}[X3 83Iq癵lm41*^;09}\%S7qul?FkRXtf/Z_~+?xúip@4ZGž'Ѭ5/Ŵլ𽗉h^ߣM˭N^qC:o |U}K_?o,En&vib0Xto x_ïxz'^Ѵ};LMѴ}V7^&Ii%k Mwpd߯ɱx^?<^;*]zEEN:ե:S4,#F) (` ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=I xCM1-mVqo|Y.B Iơ'o|I4? j :F֚uޡ\QMJNgbiڽ\Ag鷅 ,@]Dog.^=BxtxVKg5K ]k{.}SIQ۝_OIn,m'Դ{Aowak$ xr#,4+ (-xVVr㙕`lF5)dXVIn=;ǩj(x|lZ_Z_E.GKG>}RHW rđI5/ hz>$hq$gĭ//[ +H_ N6mGMVeA=Zݜw6h*k ( ( ( ( (v67WZ^Yͭݭm ŵͼo<.M :9Ӝ*Sԧ(ΝHIpg EFQN2M4i u=??kQW4t[VMjv>t[FVKۨrZRXӫs3lnmYeUVs1faZ4J5a[U*t*TNO1H + ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( +Z}x=_<9Gŷ:F'!yc:uo86?ïGZeLH]BX~"ּk?xS_=u{ ~u)5[msxV}BK o&KKGg` 7|4¿h"Zj5ftndt=-<kAt[l0O5{?w?x_ƿ{h:^u]S+i/$q034eMqq8Bk+u5PY0ɝwQ'Ey~m澾oٿ&|'g5C֯y?4M3m躿-|1S!Ct?sjisʥ@~~GU_?/R񦉭Myig|A,Gs<+=O ,3\O˯_ZPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz()j^<xG_4 Xux{\ݴMtdXΥ;D:T|ƿIe VExWq7E=}n}Jöqt}2|gyxo (,OGt]9/s]I-"YWZ.}:饞k_e6 UXSB WXRk(.eXVGE^V#3 (ۡo>*YYgoo~|>,m3Jρ?h٣Qѵ뷞,׬O>iaԬ9;7+|g>)\x><;CּWU'_M_~!k~x7.u%kķ]PEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPERa^V":@r3kR?/<[ÿxW/)kDe/ҵ~n4[SGInmR-icQQ]wym_ /|;EElf{D 3MӭlX,^U]}~< }~t+KѬaF4k(kӬUm.k۝KYeF+ (coǟҼM>k:Vvg7ew _ ? +xAфSF"4m;zkjcQJo6z|)}ڔ_uW((((((((((((((((((((((((((((((:Duv g"֥n_k@EyV4 j$:tд?k3kǓ<7I.Gakhiڦw} rJO㟋.do-BRouZN_ĭcöN熴P[jjKkn Oӧ2Cwwdwqi_WX<5[ŚkO:/m 7(\Y]Z b[ irk&`aEn=FW|"Pk:ۯx%oa5|k s^>\1?[%ϟ xĚg_ 'xoךֽ^i~('$Տ"Zń.u[*yo4++_C-C@WQ-Ə^}VO:>C "o0{bn%h3+&RεWxN:O xg6VF5$n̷Z~$|%^fͬ>?1guoՕ㏂z9 mu=OtɂdbxOOW *O>O<=O]Ns]Mм;wZxĚ- 3NEA]z^.ya0հ𗰕 G0knR '^**tdEGyT?WB˪eyfa5yQ*N|2%xlO ΖgURG7qXE:|3)iOzm׿g]FۮW/ \|Z¯Z2R__|`3ii:&-_Id~[4i7^T X_ګQ:  ?g=Qu[:>"_|_Vw{x0MocΖ>UD˕JN5nI`Qy8'j U׻{x򺊛Z*XyeTpW̪:y{fLRBIh/fsIMʔ0~%~5 xuwߋn% 5~<Ǎ|8:/>'<=5|9 Ǭq>?K|)⟅sM djTI`TXG>?pIW;e3z1W #NXwl?F0N*51E(jwxSMZG_.-3í⫏z/;TPT[4}YZvh'fWZO @Ӽ1o>;wýmW|W{Л_ 5yh-xHMNƽOY_Ycɍ^ s%}bN' ԕOcYGzzêXg4վï8\5W#RY*$׆)q񧚩:A@S7Z?>?]l QD_\^&Т4|'s-׈;W4:߈o |P_@rP=cI ZΝR:Y~\cf:IO )ѪNo5CXT֜oR:CJb!W`8brjxpd(b&㡁>ygJ\-JTw(|t|aO_-'~#Ҽ | ᔞ" t:iXKmZ1X)eJgSo/%F B9wK{ē^I}$1<ƽUuOYS^%V=HRMn2msI(̰V]K213昊`9^a -7P7-+ qӯxLTU(}5Oľѵg#}jiu}xFľմf^*񿃧(wx]ʺâs&KÿFto >ӚSk>EojZ5ۭ;CM5.5}sX,"Rd |m>/_ğ?|?? υ> xG@1jo)🉵x;yVѵ #Sng.fIҴ-KΉwD[CӬ.I;[XDu[KǶ4Eg;oNмE-uQucxmekenGK9h /o\Eƽ ~--Y<7r]h>-ŝAChv]4q.L5GJeqᒼ/˯^x|gn㼚,1cOl~ G{KNi}mXXxVy"N3vL9AF*<W57*mWkCҥŕ<.QaO0*a η&[6kÍ?gWپj!htɯ4 Yjz.|@5mD| ׭j> h KŚ.|GcմJaң$|"_ jr=ޱחwSKŤeR)'r6I9JnXSS)%:P|;ʕ<8=?cN8lp:RΣ*ΜgViΥ9W,N%mO3"!~9G{LNiK 4:'-oC?vLχu ,d ooWg~\^JXoSMSĵ"ӟ6^,%V7^UcO3RV*ӭ#7iJ/5寉U[G/ǻf?kqmŏicëZS4GEaOm"A_[:;CNm࿇^-|1Wp7w24KM%OJ,O2C,I|AVituئ3$^~Z k|>"=ŷOX|6;׾=V:xaG֏l`V)u /Mxš?->Asbڂ\G"(0oGvr-$,.=}A@VL1]eIc󼍾gy|'mjg_k5>+S>2֗xCė~ԭ}7/ xźi1Ku,~$֕l~oKjsCʗJQJsTRIF2MŧM&z;ٝXp%|E(סGFj2*F:u#)ӕ9 qN.j2Mg?<+~Zg>"_Zh?5|A|4𗎼 qJkK-'OZiWm- xu޲u։9~*mk[e$>7'k^%⇁{ſ > |kG+]?gƿafY+Oߝ'΅iC~_?bګŞa]W|7s!OCt߇>,G~{w%7Y}GQ𶟭-"Ѥ 8 J)R? ӥ)ѧ[gOS꿮B9')9C<+*9~qb18SQØ|Viy_5'Qt1N~?6,x+mOO]G_kMGWPHk :֒}h|%vXxoMW? |-+^ӼGxƿOj$-ľ֥:VoS8m/X5iXZ ;Z5JU1Sszte.|=5?uQjG9YS̖+ /=a ΂  *Ge~ *; \xz׍t}/.o0ޓ6~*ռ+mO:]ђ-b}MF:߆ SD[]~UԴK [_iWڱ4-..t{k8LKYu1xLuchcp,/pu(CbVᧇB+фJiFU7 BRg>sľcω׮}/ŐjW֧CO35 hw$s:n+H$ZlA|o⏍??</ $}֭3ᥟ xW?Ӡzm=>eZ .PvϡƢR|CouM\7̲lMn88ye\"Vm1s n{٤2崱O(Ͱh%S>&i/uϋ<mM~ſˠuGu ^ ~$|[/_&m_ ώluq/Z%Ν_io 9_Y;ռsGWr-|EYb8ͰKE^6k_cO[S7߆5htX|)g9%MLZ]|L;ihZXߎ:/nįuZH|m/LF\9)yo8;2|',.w=4Uٕz?\Qe5ፆeK&N<R|Ph NGi /Vtgo_i7P'q=?t.Jlu+m2u Ak-|~Ğ4j hZdڵݥ#ZNmXif[[YZ hkQ3QDŽt gTKJ׭5kxgZ|3cQH^zޕgOl>GO8̱\5r̟ Y.Z̸,Ȳ''& JZXxW =[Oh>x~9xG~!Ѻe֝_x[WV4_īm+_t6vn_|6躯񗍿b/|DѼ7?xCGm^>~"Yx_#֧-?N:N}%ź\<+j?-ٮokaRe6͸ril' qSyVC򊹦33|(#Eba ]3 4o o~e]jOnuƝo|Im4z=? u~PӯFF'"㏇_<'[F$|4|>insXS΃jL/$Ʊ{{kcp' qVW5bR~$Ȳ|>˲*mW&1ؼ.qqW ц//ˡ<Cc%x Yo<[~ڟ4o<-ψBO*zw|X.78-4aοgjQ LV4++ȗJíi|jZZJv__|IG&M3\|%Qи|,&|]q_17? ƥi%CeZA7ppwƯ bølic MZ'+ib0[ÙV]2Lcp= rp1bb5#xI>9gƿicUMXo>DӴ@5gPXizUQK9a=ޗ_|2iե&E㯈kg,B=n-Nd:|GMѫɱ|wx(rE~d\4v7q=yn.x @Ubd:V9UxfY~#~>^_~O j ksB~Ko\xރUpkU{~?j; OO3/^i 10g3_^">xO_vy<)XF]%o~(QpA~&]ㅋ>f\Y %O&n3 7<}~ ܎'4yT+b2}z8|S_Ə [|!| <|,<5 Wznj>!|A5+,z6Ky|:eSşt/Y)]i_#¯%VG'R4nK\&kkᛋmJ=/s.Ǝ;R7 Ss\oΟ aYfeR_ Ⲍ&cR#0Ϋdt.~?0GӼ?xTߍ>9ӦO؛Zntx!O$zƧ X5yt&wz}ڬ}?r-׼'%ߊ40Ğ]2 KDӾ,x9eEiZ%ޥAOo'Nfm"ՠAq uxfSYU/Qƿ4;7&o+ekPpyN*>83:o4—_毮xK}/OF>0|(gG㟈>6iIXhR^cx4>ҬtF-m4@|Phwo7zG~j94':G:}MԬMk@uHlb/547:pX+XL?*#q8˅x8YS0ٞYQv!̳,F?9 fn|dx6<K>|uW^*2cM4rO:[E,Fs|Em9.|=Mݟ|}(iX_x"^5(.AqqfBcÝf@B"&ZCmKփ賛xdHӧ<Ť=i^ҴCtIMӬX-lG D*"ݘ嘳H}A@V|VHDwvj)w$ r!oh ڥ6.5` (3W޽}T}+BFwMݽu8lkKeo^3_|L.k>Wzonb5^<4}7K<%5XV]KEyg. ӝ9C/"*5`jxSNpU}N2Ogx{~}x%j xMa`1"㿴Ʈ175'jrNP'jP }B^'Dz>9-/W5=?W1x>/h:}wԴo^`xz}2$T:C[??Z˟x~2ekx,gſ'wm/5-Kk)kx%bVV?a ь1XW(ź-6 ֔mg#N/a)&\=׻Nb2-?+kzg->*?|Iqia[A6 I#Z\.kzBI&}ꃘ^_E%׮9ik}ZԬmxj|Q8k+RСRI$Rӆ[Tτ> RUm[K->ď|c~񞝥O eiz~kao>^wW6r>SX<=W,;8akYnW18 `9y2\r<~ v'T:oه_|߉>_I LGwOk3`P)W,exWᏎ7.#t!9L< Q´eX|^_e5i-m -:\e vyki-`|gb|}/:~Zi^Om_OW7ךƗ+vZzͦxYhdүn&,^[O󼫈,VcsiK-bpb!FuӭG%:><_G>|7࿊>.x8|K־ݯxw);o~/뺕浪Ɩ5_Ǯkp.e~|?QVõt E{.;]'C[1GVwɧXiz{g׶v׶7VPE2}.{gqnijz\Wr˫&]jS~r/]8fR'%GC-Uu,">2|[x}%5+ xo?>(j! ŧY.xq5MNGԳ\os߳/=_xB`o*gi3mS~04K/@4Z 3CIW;4e$~'|Oڦn~ş|eEM=T~ՠ֗|4*]L7Wញ xg|g7u>CG† h7g<]g[e/áx6);-0Gq8L,ˉ9/1Y+VE*ON:Ä18XG _ ~>xcK{]ƚ喽>%x'ExC|7F[|Ciz0[ɤ=\~#7>)n=oLjg~3jn)%V{VF3Җo5R;^91Uus\xF#e<99lVWG'K>-ˣWB, I\z+j;ٻ t®|k>}_!4wh-/-t :t-cCbgԼ]ý n|7/ YRlmJX/FxKۭN}BioVeo0yC9U|֖[~gqrܟ$ȲO(˞[p\9fCa0TʆGZ_ d߆!ws^ä%ԵO#B{8m?Oh,,,g-Ej|Qtˍ FG?!/iׇ>Qφí,X0Ƌf-hcsЯcÿ<x |7<6Vpφ/t3}$H~~k-UԴů|3D؝G_:~7K >xcD:mv\Ycn~$`2Φ3Z2UƦQ[j;#ˇ)_A{ /9Fh |5|V׾}gC:mt~oCៈ|S xOM#HG~F"|gxO඗ kQ{|$|gqKO2--q:yD#ęn*(`Gpy|q鼧p>bcJ9g2=R WL??k">^|ll_Q~ӿKF{kk vėi]xJ ź5Z,/f?š_]6T~+s|_fCgat^ +ŷ^(mn{!/xL/xW.<>埇<]{;=(Y\j>,/[YpVxEqx>5ԗVWt}g%6 d@ԡ3x3:8#OtF2uv ҺW^Vw<+h/w |y[⏆׸H>(+Þ4Ӽ!k]:N񶂞!>.SϦxFN4/.J|>6?eσڷi |5uxiUMy2x-q= wxWƓ[]cö5Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<zgZNO0׳Dn|S93a?5I kg!Es#FR[c^0S`0K_ nݖ(-WW6 ![Sq_|.t^|cOY.(cnl;ڬiwg M,@$G#s ʹ\[EO,3* "c,E"2r#2:0e$hZ (i!Ѿ|iA+Tx_Uw/}2MK?焴}3tkZakMWU_i62/y rj1NRm$mI-[}.:g T:*IB:q91"&QIH k^;"N` #ï VҼMjV KO-gB}F+ OGKx+Am<76/4/x~ ˹|9ZdW7,Ζvy\33J2de(5(;44iꞌ*SFJUiΕZS:FPN$:u!$ IQRM&~>'ƾg%%<OJGwk^w7<=yg][ٚRț춲OӬ B{⵳{kxQy"$i$eE$WPj6˕n-)(;ZM6QIi,.*4XR8JQSJ:ǖRQEMmFVH|x _G>k#×;Ox!7zPЮO%uMGOF-_}Eh |Kk=u#_mEԬ[[mg@ԮmwHiSu{++VNԭ.o" bKEVZ7JNppnԢfMVM6:1Vi ~[  f jptq1R 5TZM3^$6i^ -߃<_#|aosO^7Ym?[]]Z6j7EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP-7Ak#W/?/sZz(?< F6ΉeώCѴ_ j{\%ƛn xS+HmSƑxŵ?G*K߇.cqxR\i>-}OZ\hgZX.;MZ/MіR%oSOfR]:l, xvKVK /мB~:ڗ/.|^{}o}ѵ xN{]_ںk}^/!+π?6&ص|e٭!Y7l#x KcZ|'⿏? |MJķӮ4- ^&}>5x_^ңVҧE+4aI-γ 53<6C/mWO+UWQ2SJSê2\"AL|OD gG KƝo->$VW=#St-=oQ)|s:.7ßX5~:|Y4<[ ˩k^f/i'Ԭ.|g Vḏ=톉g?4xn@ZEѬq$E@OP(((((((((((((((((((((((((((( Zo?DGWh_-j_P _}&^H-/7h^ chi:u36 ;4 s?~'c6hCymVӭ=wyliH{uqYS^ ^ OA~5{SMZt*IRKUr`u5mgJkvʳZ]F[A"$l:2`@ү( ϊV/ N.5y:2 ]Rֵ#;+?+k'V*Mn4 -=E㧀_L|Kro +4mM/ojV?mT5]OEEgw-vwojn46w/iI2!dyq子fU^u)՝:- aYާ=:tW=%ځ&&QYmuG]wkfq= VQ^C3s|cC:sjRα\- WԈs?hO.|McS TSC[?Z덩x{W>z&i=X\,7c"^?f<$&ϲ.'ʪ`>7ȳ<=|*hb2A:'viki:.}jwȶvm-GK42 rJ Ǝ)MXӼC:r/4sM4 ;SCs7Q1OƒQ}K/d{~h[^.Noh߲ܹ9˙J`x OCVmzw}4rMf{|`m_^hZv-܉ B.*XZ1N. ώ *nlN+B5IխB2r 5xw\w;𷇼IKSE:cWu#oklvKa7%$ 'ÿ>+> O # ͡HQzKv[X5 Ξ WV{e̢\M &X^&ⲜNa^l.x^Xƍj8zUajsG.NH((((((((((((((((((((((:Duv g"֥n_k@Exj:YKs5xs᧏{xSBvkKn ψNjib/R-,cm0g/[|#| ^&ѵo-#O|'ox\j^mM=.__k0yb?/ R/G-KqxJMOrkm-6^aow+jzޔ4m_s= |R/]EZ6i"V[Qᑖ6upcA| (dλf6__7ړy>wyښ~ɡkW?_ >/<{N>'>GUw #4_W'|s/F|G.m52c+IhTi!b)K5YsN (ҔS +`#Q3ff,C9F# WWޭzcK^N+O?_ 3X|#!y|jZ]΋~}NGoᙣVW,F-X|>egY~uO%n"?eqL.êqv#-=~cg2ྐྵ_Sྙ~Ȟ*|kOCO_W >E?:_Gº毠X/*h}VM'TZ[?ٿ/!t_=o  %S3>|i< 2f7ǚ~#X=" x?IokxWֵ[lˎG ,׍(xÔ~6=nχ\<G8ڞ#3pax_rleW< ς ~Ͼ~?meo&Eu: :|,6{NNO&w>|,Ҽ+/;H׼Aj~+oxLдSuc6-?O6 Sxe9>7Y_ 42d2~#84˳ &"|=<_qjbrխITsAGοw/>?CS⏊}Iׅn/  P~ x= 4n_KF>ZG{'!5z}.a5K,oI'⿄_%YJזO g)K>sSrfxK+l#Y̖<63~c'o0*o&kK+xZ g2x4HѴ Qmfc[?/iƟ߱?u^b_c+)aM/=]SJ>8🉮!u&k=ԺmqVKx KĞ|hſ[p<49F&C+&4*ɳ1Ǫ,K>Mǂ4[w~ 1⿇?'+.m*|{:Ӽ0!]Oo<4 -cV Z_ُIq3Ghχno <+?Go2ǃ592NZ]ֵ/ Eq?qWe4x Bk3r&cV武MRiCF}૽[[>e{xqlox_I?8oA> u༣(xcN__ٖBúMܺih:U5Կ]/ᗁ $ф/&Rv]:I+.auqθ2ڄsQ^&<8jsfs< <ڷ qG qOrM%G8O4 W &8 u)b)jF$@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@KMuyZEKր<|u[Gum/xYc$rO=G.;5ږr"b9,+źzqVv=jJ|Cfog,.m=ȸIa.㞗mf>5x7-[xJ]τBͫx]'Mhm5CR;;grzVuKK?S;H/F'9m.ḶHf9jQUU* VgFwVөR:VPVJF*(N4iFMpHEfEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPI4=ƚN;i/5<IFYkC -kes[xyijkxÚnj<3Oi[4xN#?m^ {}Ym.fݶ] T!XI/Mhgϋ/T$پ>_ |#=VKY5M+L?چĖMJS8&(ݑH( |_'OhVkSԒh^MKۉs["M/℻ʦ>f<=xM ׈=kOgZ>{09Nִh|][Z ˪#ggaPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPE~x|յ7rHD|U蛎UX?/o?ףP/?/sZz(!x>R=k ;Su'bZЬO{Q5]#NA.9/|M񕿁.!so_JNk$t_>O;|Uúc @?]bʚo4+:>cz:pC,҈.c8  0C1[0A i0( *q"(U*Z((((((((((((((((((((((((((((((_v:=ծFR浣FdL %'K?OԿe^@\ZԿKh ϊ>-4O >~I _׈|x9Хx?DDլ&[,dB%?YxIm?VMoXo@Dм7Ohho; YllL;~.ח]xź׆V|1]VPR:dS<`ӄƚ-nɪMYKicWƝkvT.";}6YW p_( hog.q5\h>(xþӼOۭ7F{( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (?;C!s_P?RMz5{}r3kR?/<▥Auz@ѵgZLJ~an.m-GoIE\S1CNKg>%Z|8~%Xk^ =~ uw)w/':3šך_Wvq\M:oF[Bjl~k <+~[Lj<1MgjVl76:T^9nt6'/mjX"'j>&o2'{-j [i_`>jR_ ,:K]<u-KJD0D1F ,@:Z=ΡY\o.=ǻ˼y]#fX@<7',?*C.W/<)kDeq+\VLյ94>H1.-57w[i[>(> j^Ҵ}3MO4gxY4#Tqskrj[ō=OOſ_{^7Ho? xI&Sw $4Pm+@7FO"zLҶr] ̨FŃpS6ƿ 4!W.nu J&Oÿ Ҙr6hhT`?n G[ Ts EШ@[@^ys "HR=[[CBx7ڱeиGVVtnn D8 JWS hhhT Zʔ`z LoWgik54*$3$u@J<%A˻444*Kɴ~5ƿlmz|k)A@dStskhTD`g@+0g@}Iu/HDCCb܆k; *0$Ш0.<)!jږVf˽54*( xa(8˴!)`Ӡ/4(~4jjM y@.Ɂ\DFS4UYli\Ш$¿(e-=ACC|茽"T"IiOjVeizPA ݂'ъ[Ej_ߞFH444*;蚲5]@+ܯQ!! (š/7424С p$47"a޲4FC89qp#d+@g*UQ w%cx^#}DխQ!wbd,NAĿԞ2 nn LDDo'.E\9,,1,vt%xHT,Ҭ#b y-T! I BP^+(& 4@V栌V̖T;}ʤL?޺G544*xg@s/NΈZ*zL&+g"KRԢLb L$ʩ@5jm"BQ:&H⠿D Bń siP&vc%OUf"'f:lQAzgQaa >#Jn- *(K0xlUI,VEY,Q% HD鐨KRp|&TTeM~S:yKBlR٥8.Z- GBH6P""Dd*6>[! M#8UCCb@~π(lJ❁a_ӈnEC34*HAI΀b()"%55'‰A(tRgK2 ~&JTXa c8fF0#dVMm)QLШH:Q܁ 1E82D`>Jm ag PJʼnCQ$ PEH!trpTUN QM"F?Gh`0JPg$9`f ud7b\jdY8 $ $pXP ̥QN'x//.5_L'(fq@pH6t3`@DgorqXĒ@Jf'I? Gĩ&Ţ"27Z!dxp)pj(d3 ,5*O-DD8544*2 %PpND`0a|e5AtGO1GODgDhN$9ld$ ?j (_krP. "GL֓(sWLMls'`YF ȕ0G #D5u?A>(t$/cH8 4E)~␲D=0(dRR@a$p1EdMAe Y  }TL%xY$x,QQD! Rf*3E   S!WI*y1C:+L ReD Sh85gZ(B<YN$ A,YNGj,PD)QS"qZ5D$ItUQQ_ ΄`.0,ܓQ"r.A| F),d"T>fv!*\ fgSʛyAN0(0jJ,fFld40((DÒK(6E:/ CQ$lTS` khhT㸸xy:xb99ws-ܬ%aԨ믨(HRB^J*ofjUq0qk}5|S-46Ȗ& 0ȈZk5i֢UVڶsÛo1S¤0` zcOشIcE8X//lX`3?Zx*j+AV4Ү`VkD;ik~2h+h s0% f #0'O̘:w S@1MXNlqF!'l[uZl8HP @ T(J9J1S.LF#!Ŕl[$)322N< 8q"33S -Dzi[#3k@-j-[DDDBBG(Ɇix#0(+x`j<7 2A74v䈑$|\}͠ t͐0&9X $\J.XFA,3A-!}f /4J 1m$(%I;m]zՆԵc k)[kI8~غ59`nժ zze#SkXrS4L3{:9i掌1+"2@f+k!bs3jv<ASK#eXdQj!6F$"9_DE!Qi#2q2=ԧ r2:<$A 6:יڤI7mZ؊Nd:%FAZŌHZ1xCEMhgnw?-h ۞R7a4Ce//(#w0&.eh,>yܹn+r_,<n۲3+"#TIÌ]HpITY&90pIb4J Ax%VE??w SR/&rώjذB @5hѸY͛әFMըUeggcYP\iFbcuS$L+,O i!yCq6nM ]N{ZZDh#gBMrԎNGAɧ)Be/H/(q-7O9c:|dzf?>9=&rXm%GD;zo PqUu QƞQFd +"'U8T(=ȍrA 4~ejJ#e xA  , ș 5jhܰaƍVZsN{? )+JQ6ܢvŋ2 À k "@T8(T.;ajk"U /+Mbؗ?mMVNz'bJn0~ 2) DC4` xy*ToWƍOJNvݤhKmpRS+•"O Ωoo3c}HVWA2Y-S9J7ۚ$یLiLD5_QkP{?pY@(ö¡^ \vŃ -ܞv{NV͛8 !IqFs+7Bmo Lja,;R R>iYl?k׮ݽ{css݊ C#7BfV7mUW,[<55u=ǎweGtt4] @;J:k%I T$,T:O`0ƍ7X^=mKn0uc߰q#ie8oܸ ]ggeg>}۶+W-EYNg+`VNY윜Gٳgmje,[|ժ۶m;tPzzF۾ t܂2t+̎cU"֬Ys׮cǎo{ l7 *#;;{ͷ8|o-}酗^<)1) ^efd3GQ!#3kh 7ڵȡC Ջ]^Mڷo׵[ӛơCi^b-֮})R(``,]Nyyy֭um߶݁ԄwZ ??C V/V͚T8.U7nܹcGeNV[Aƍ;ªݻ捒;vܰ~59+xǏGFgsݍ5:)_ٜ9batzMYða?裨(kL-_`衇7S+Qde233]uմӋzTb[7oްa;s'fKHL]nhޱcmTNIQ}Yz[n۳{E\bJ 6iҤc:wmެVc<;sڴȈ- oӺ‘G/zI,/?wdE ݲe-[֯߸{ÒnK%|UU]A-uh߶M2R~9uZeBJ't=h+V._lٙpG*۵k{a߾*|G%dž vuObFmРY]uqM7_.bџ4C & *Nfκ[&w2xŗߘ4111:HXzgyԓ37/V._f1KabT<省n:*!`pť\NzQbn?"oyM78v4)yy-k #ඛo?wn|ރ%##c=u }LtLNkԪoj*d/rի0=bNy |?WA7ܥsG?zݧGOr;f?,;+K#qiS !=hhb u C+ ԠÏ#I1W[oIK;N}#a4dg׻όߏAӹp/-{[rv_Q4U~>))m۷{W]}uՙشy˂ ~_ݹΈHv̎q}$͚lLqX̘gߟM\s6&8Ny^/ OS'=XbvvN|2*+3ՏOƍڅר;KCuKJI:wzW\~٥QQz:7zG-bPWtazu뀌 SÇb٩Aݹ I3>O^0ߗ |+Y~8C^1)CGfkڬU\sU\髯{1X{ 9(v $>,_ M]w=z0DDrPXx9vOg=cǍfPI DM>ß|6.XPUЯDDxǟXE'Q(.`3a.X.P #-?4p ]@hHQQ >l!_~~A˖-j֨T+ j (#GMK2$x,2MQ)av=瓏)#)9d&)/TI@Rk^`|૗to=r1+9=f7((=}m7h@7+J\ ^(oر}:=eèɖ-3BDr[G'sA~>]Հ&JLb1k/͍|)WYd"H(ֹ_ΟijH%p5ɚޔgF߉YIL!(KQ# Q!T8rZCQ5zݞ5IO邶*kav >fgQ&5~ӦL%%?#;mK\w 9e,AmGCg \ӧM_ԭb,9>HX\&r)Z*;#ċ?rjE #H(̞aW_w~NdL'O?¡y0?%F .U}Nhg[vl!=3JkO_0(6 PqDP$QM tL]ڪlʤ?hlԖ=*⯋Tg [%umFطgO\Bd9f)!cѓ e_g7 ΌZTj*l۠ѣ*sMPaf3I$[Ĥc?C,vOLyX5*Ǐۘ9\t Vf>3 n`6(#E@4 aSbAׁBD˙@o\O?ڄqO oLHg>^YyC3nH5b6P6DB#ǾzloaCA#2'ԱPB,R@P(d,uO?,@S6!)kDK;x;!. ~"pNq9sRH yLȬ-&v y n8,޽ҭ;5ޏh"Qzfc9j|糡C|-^LL8D n;"Ѻ]ˮ_ksa@zR.EC/煔dA׮]>HY&Ė0==}UpQ/jQ.4a-ؙ.+W1BTE&g3_]dO)T->t֒=@ulyyy7*:m_}͕^{N>UW*J8ӡ,YBy^o  tV_3+qტ\.Dr!> l$#;۔&$F@6uѣ(4I.\мe-( Ua=Ȉ ζpz\7DSR[qYX6m.O?6U2*;W[}2^Z(W\9.7UzPϣOMh`{m5W8LR֑@An:Q$(#煩=+]Ʒd5;Q,`Lɥ@Ta\6{Nѿ`EP"U]LPf<[fMlL,!0hv2h)ǀt#0>$ߚ&>ikdQ.ӘWN8H2XC ī8v9_]a]I |~2zO>='O4i)/#+W\JAs7kҸQVm[,ڡDr?+ł[=rPKG5VQԪA) 1nB^#bXې?(ٳwgs}[`9?O>'O&&cNsN$@qN uguBԨq#%ʐֱs]:'$&*2 Pz(䉓Yk*2 `: [ uΉOHlּyk?䓯LiSg|i'6t+_~}/f@e)Ųt_x `LujSuNKi/TYsϽ! 1/{Qƍ+B_kv/͙ե1yΣ=&()Rz[n6鉯1eƌ3)/ݧr*9\2 )Mo"Ak@ uA)c ǎz 1r"#DjծݡCԢy5o2)9+|~BD 4Yrm'A3NŹřҽgD@ -7c! JJUd>=#|>}tI6 DD5 \gͪ1f;vِiq&Z?0Cgnsջw]yx`y=s hgY&//+aE5Ղ۷nAg zbVz]wWs'[ysJI㳔36m2y„\36.``+RNQOQg}aWtڭ}9GKۋoKP:|'O^c*(p%c\}wHZV&s='OؿwOaް.Uz;#)aNVGuֿn]tQhv2#cŊU~o-*:FL*byOJ,0{҆NJfPFXn}̏?墇i6z.䑠/a P\V>xpu;u `D䉁G7n ^^2ɀ`11R׮=~\[k۶m*WAF& N*ݷP&>smkO٪_sW^ɡ)g6'O\"ILEPH"iGU)i茹se}>wY?^z;##NZV%Y&$c_|eAyV'NW._/Ѩa;5!3)0>{-|[zzOԥb^@ iV_g]x&Ԯu׿3eZmNV"pQDbc [QF_c>c]t&J\ۦ}Ǎ'>ѽ[bf'Y=Q/:qOccذs:sy9uGe=1YAwni<;e{7ޛIˋ -T5ŏ4mw|{'m2)II}/荺h2PݔB3T8nDd Rbm7lPFרy]wOHPͬ(R[hҼPH֏9.С>sNrz*`T=k+bZD<?l\BB]b`XPȴy!K]ufݡlqsŗ{E+RT=aLŌI*TC|ZCubK~!-𵠧~~=e#|Ղ#?=r##̛MoO?'ұp6n|%uc<ݺ#[E+e5H~8/o(JD"TԨWN4x 0s=rU-˖-8ypM+Pz}c>}bвE`nD"ؘV[/S$.[=vbQJڵjHѶ]FMz26,³19f![Jsg|Wcj0 oظ aA, fλ:v,+boikD΢.qʇpV),1K*" 6E3- lܸWو E_TTt= _ BB|<z0E8N8$ѥK6 vyG0i(u"F۷׮Dgؾ}ۖ-QQnrЮM4iHbhpF)K@ Xv-ܖ288)5UV_qՀX@?~ZZkfTĖTBˍ`TEaz5fOe .9[$ٷ|~:O>={΂?6nڒczzԨAcaWSx< 6nit*>\x٥HTF AڏlªٻwرǏP"Fkj5k|zt2 7mٺ_'|ǟlwgvSOJJZZ TjM!<wвK Du`Gk(ktoۚ&}׼EkgR h߾-<.J*J|[K㨾э^e`v .@4|-n֙Ywy~-GD.nҴ ]yQaIV~]jm#9AbFϸ؏F .O{zyOF5e1wg担Uܻ{Od$Yj_&S1|o*ėТM/A"))g / 2Xd_~?geger]^:]ZJh>{֧+-[t;wE/92޼CÅ_2}t,ZF 1Q~ ~GTb`7&:dָA"Yijժ5hؐ.fԘ7`.$ٳJ2ǭYd3Jnw;=&␢D*:dwMu9D4r,^ÎSaO(zс7ڲq\X&WsX'.Ff[2vܫHϿλ{ӿW}ٳu@{uS E~w`æw c]pddP#CѴ+N<۰X\ڴ3t x2b˦btgK._W`:&r#hBVF=wi P[ VA`#רUk܄ ^Xܻ%5kgf:v!{j0zcb"snJRyys?ߣ2ؼy\@)hٳj,2^ajR hry&0u:st 7M6mO?eĒE-*FƉȦ'4i-BDfإ3 xwKWƍ|X,0&"Q(?k_Vy<e'Q頠˙^>lgsl@ጰ:(ʩ~Wb)J+|{L;)dee=|D`4;zz4.S #NN'G@gk 9Bhey!:FFzFZtʕ^FbG٪M6mVZ3ɀ*4j~ &&×_ҥuT[|* A+Tf&сeՅ(Ep!u9 ' _2y )E)I'?NElh@"ǝ£mUXdP~!2RRz]pko)u61rϮ q -Pͤ,#lQEwHj@yA0@lAOgȧO7wl|t=gqcWo9dSQ4 `艓F) !( ,T, ` Ik>UP@T`W$ U$@~a,GIz$:cFOƲn&dIew1Ď:Y3ca[½~ݗ 1P52"Uթ]J@vjl׮^3nLznԸIx ;YBBIr-FRU2 ʥʼn Ky9g l CIU*l)Q<;+===]y/xࡇ|?/+ALOؾuK,=r> :j9hYF;$ [z(\T4>M IgeZԡ Y$a/J7L?.﫨6܈$Vo]ĒY̎E(ɱ&Xa 55/3Tc)Sa iEQoԢ'%G"d"(ʰ~j4)o[!Oq?]!b:ϴ"M;mݺv-@E-۲y-ȴ[n6hب!;94(Űmۖ._qPZ4 ԴizuK{%AQnam,kS^)*eVTIC~$! V;$TEɶ ~Zp@Qlsz~u܇}Cxdž=צϜS̘gundD'σ?,^D?`"eʶ' }6|mb߉LjsW?S J&bc6 *4Bt3t_͎A}IyNDή]tѵD8~ݻ5KYfE}E,enPZ@ĬjiA 9B Klz" fѓJV* b5 Mą/6&j?:&**Qё%L t",BM!nۦ^`DDF!.` R3ʰʱ8^T%&%]տxQs-|11;wl{J;bc 0nq5jMe=+Ptzp~K@Kcm ǎxaT r+3@1(ed;J_^z'OL4DfF1c |`Hڡ }aX9nKXDP(lP\Iuҹa_c/qא;ۄzU0 KĒ5Ddee4IY_toW0`JpZ6'19yGu+-+R7)4q֨Uk7 wr>zqS mȐ{9#Vr&9}tg*pO`#(lX|niSO֯_0d ,""os뭥[n˱հ[|Vw6mO?Wǡ 1Ͻ?mjd=gP D)*W2uLfXn[W^y"QJQҤQ5k=W^/uom?|4sƉǃ%Э]KT PS]d&084H@Zi]ٯ" 9x!RFM@e9j\jB}_vmiVp[3';)1\ݵt\c Pg: 1Q37 <șڼs7uQ<,W@Rժj^>\FmcI ,֯6ԣP`"Qr쁑k,VͩU\MTv(lؖΠ\{ x3.zWA kA⏲@U_ oebLa&㇏{68хgfw>n"y˨NTZFMX޽k?:%kᤒRj<`*UQz_1g\|4E*k׬Χ7rB,w!,5hA31޼YE֤Yhj(\2TFeI: |BXb%KU Kߠm:)AK [7AHHW /k,#G2[ +1u&|X]dݸ16Wjvn۶MUp|~ 4g}nY}KxFYL5S}㡑_gN7'J7U^)K7!@@tVC@xtSN9B&McG2UEGJzdPJ%dDPvi)p4o A܌$%&:fӆ _-gmڴSg[ȡA*U$ڵQ{ kޣGw-&aEDS`ٲMGD:"*r|S_({ a7Lm6,좾D¨7~AEm)Fj>Eded^\1hT%h@#g&۰(?۴T+03r;-e*YM(J2%orאmں.T"~:ſBq:)/痶_f cCrW-ET@7XjSJ4i,))xDm]sazq/(%/>?YQT'vpiR2@ǂ4d!ީSgz!a~;|ӦNYrPJu7Hшѳ'rI+҆D6 &6]_mڬE Vx6lغM@y(LL gk/3;=_ΛomܼeeOhQіWhXA/Wgeg*i/ 7_SBm޽L:}@uh =+M E~={bTS?ItdK~l+W2ETVlO8Ͽf|* _PJDYj~z+T"pYO~Ћb9Ř&,'Oܻgp޳@0 B>8 )h|gVY3{?b"1c?,*x% ]$4d#8g1)eXOERQb۴k۬y3cͨaEaC\(Ckw1dꔩT,u'Q)$jڼ6m[^C2 *~dX;vQKrQ*|kX ݻO KuOFvڶȨ۷ {п_ozM|wO?VE2m?vЯij"..>*uAQ}1&VEq:a"R]0FI\v{xFF={14-:_'y )-hݦM]' vĸ;=:/(9:iwP`D%߄҉z#/wRЌ҅0dƴ?no۲5W~̛7Q䄰iCB0Q2Cu %9k\2WE G1 >zȰ'e!'O;q+f}0I 6⽔O!Ql]Tcڴn޸2u}?'׏;^,ZnӠQc?OVd5O3UVi"W*"[mcg?n@S=pt1o",1R`ڄpsf2P9a}6&K.TaeIãcbV{y?@"Ѿ_~g%ZUVU,mOIP7ɁK=I":*r*". fs f~ϏX|=ێpz 1j~X!` Q.\ˆ(y0111{wcO 믿ڽ-[̙3ww>qbn~ V0vCTceb4Fv, d$9fھ-*&!Dҳ̛3kn[YN||<|b^^>GҶn۶~kVrCz)c)Pf6mlLB7AjHmu:&&%k bjXJ> N֮]C^_l"% X 5<2"o>p@}֭o֬٫c_!ƕW^ٜi546gH}ߞcF޽{˖aظ8j^VVVځ;\nC16&X,0hU܄"оdݏ=H=5jp8s۶oTқo=t- 0z&C5a}gL{췒O߸a />߳gO%LiqFOti&pz d=z&+bJ+4]b7x3ujd"?IUDV\qsgl(i28yyޯ>kҼyFwm[7gg8hzXF[mZBNNJpB]V \W(+Ӯ]ԮG՗Aru%@Kn`E-bI^D0,"țX[ooÿ́*D/>CjTtT$fed`v+;vj[OHd8`T%&&bEOU^ >ݼ_ja "#*aeu-\Eӄڵk{9nr;"齛kV&;ޛ2e…Nl |RVE^CPhẁ9Ntfb a 1e rQF? :d? 1U@Jr?Bm@SЙӧ˻ ޽kM=bIGlYw} c~kV#2*2$0CKALH\qvKrF|ۏ^/CTmj 1A7N Tmd(7%Z r(d+RRF٨ISz J`gT&܀ ڄp=hвeo12Yx=xz@{t Rvd1DI%!**S%y R!㌠hXX*G]N]U'i%RTF艅Ya]_(_6k޶}{' ,lKYTb*=7R JrYp9! !Nۮ=֯7A O= e4 LUKȈ'xGsNhʤ,lS&HT.ل`*R(LR,F *%>[7_# ʕ*Zzz rY*h`@°0/+Þ$qDiT(5\:TC&&ѤHRR@mDFq#8",rNL'h߮/<_FMsY b*Kbc:uJ_f)TxZj1qCFRU46%b}A åD5kŢGnO?lbrD. [<,\k ^ĭeAD S>ֲ͈F=_uɪ*Geg,,$truy,R#-S;r%;2En:/Jvrrro,aXk# ]~XI4Ҭ, fM_:*/y?W$حY9C zcJ_Rwρ PX$oi 9ěG UdrfC+ ),B!ZA[uZX4T9S}iغoD@~niaa^/gAoR 2mڶƙѴYz^ y^o]+U,7nbIS=\sՋ/gvvvKL%V\(ac/%[ kZn(Z( 4mU8֩3AhJz rH&1sfrYAڨ `Yb}Z#'Y nPř`fu<$]RMp`5B}熛oJ$w@ڎ`-*@}[8P{52[(}sz˺mG5(w9aW_s5"&yEVa=A(q1= yAo)'9A-^rɓGKahD3*zzo EQtc QB2qRbDT'`R4w:彩F]> 6S^s!@]UNVݺs} {iPJݺx&զ_ :srjԬѸI]QQZd@%E8#,ZԨY},F?lRJʜzds}oO ìQP-bfh%`U5U^Fط>T? \rq^zJj( E2Rt(x * \-TB^I I(eK mT#^\gM7zo.GD+'b%ԏ?E(X-FFE/BڵCQt@nW Mԩ[\_O$aa& +a٫MK }1~kD+|衔)_T~8""y"9}/xo\ An8eA9%ѷ1f`ҫt@QPeRTmQҧ s2~ \^W_*.!љMB:p59؋nWǍmڤ ^Dש]wHAzm}$ /,߭/YvmBB&"y߭[7],-ݻA5kgfddêN&WKT\Un~/"Roުw԰a]zIlXءCN]G 9N!+pos{Y9ڵTPH^_ZLȁ6/J6u{q۵㮻 vX,Zjٵ[18]МۏF#`G8Zhy5ר^ػwJۋ ܮ\;) pJA -[P_jv:݀Y>Oo @bBٺm\ѣ|3ZT4G9q=rӷ~[ttԞ={-\+Ģj3""]}^1`[nշo&͛cHGam@=;0u6m衧zeJdӦ`cPZU+u9qz#H^%7 jՄ۰3331 }nV<\#׊+-]#u׿_믁uK;>>_Gvz pq 9Gг~iiy򄇣9;uԈw/c~ϏX(ƲVYQ|s*իWkִIY"vܵrկ_ VdgYv͚5Rץ:B"?nu8P/:u6o٪FjqO'ׯȓ./# ֡|VVM,XVMx_&uK֭]{$- s%0tկp]~%?W!YiÇcElNwd1coТU۷n*6 s@XV?֯Y{x7 N,7iھSgEV:|;10w0B5Zk׵k.;ʣ e֭ eqרQڵ|M[#݋N#j5jjӦY=ڷk08e8. ]]6EP7nܴrJta_Ǝ?//ntSZVmtҵS<{m4YQ&۶mS1Ykצؿ ۷S@`W~lٴؑ#0,AkЮcǞgըQCS}v؉IB-.-!!u9* vi7_+`qP[?`^vkW<~8iv&J)ɭڵRk.r-D#\EsuQ=Ob]SJTrv2>&zX6Iy]r%sːQ ޼cԴGtJJ ƝJr\N,"8|XFFVUBY{28-_ 44444d' @Oz2Г' =hhhhh@CCCCГ 44444d@CCCC#̶rj<""#6iT_[.]xm'_01g!xS#8+fKe^zez c}/>rp5{]E(z5kN&xpقH:Oda߅!mҼG~ܸQ#8~+vu{4l4^G%khhKƆ@"Afg~~ q~;޵cGlllxxxA~~[h444ʂ3`P1H@p>8 Ӈ\{۶^8fӢlْGLeZ8o 'lG%Gr\*$H东NW~ABFFK?d_vޭ5}*k}jʠ=*E ΀FƗ7/Y^?TA{f >S*r嗥$3du\YQ9>^x7_{=!1^ndddfzG}X544c29]wʻ/K~48Řdž>9rHš?[c֍bbc<_[m;cM44LDkcqȿ/5e}͚5yᥗ:upD:"#t+@C0SSEL4Gy}8y3?F=v?ܞg4 C 9R2TDWf_7ﻶ5ժVQT rw%^Ae#@CCo- *FȍTqQ![ࣻEQK׫(dgg;̬=GL @>hӆ+7+;:-0g3 z=iy/*dfg]ÛxU ee䠭PYi/:vZqRAYԙU Wu2 Kb|pcGQ*-Wlׯ( 7XφM8 XFfMvܩmv1ъ?~bT _iݺ ==vs\tvv[nZ[#n֨Q{uYq|VU;(((kP^oܰ!uݺ=w;vt|QIɕT_^˖7i *CyqPڦ׮Mݵ{#G]N'qqTE3Ghݺv¬ Xw4\vgv23MpI'4\~Y iߞGNMXX6Ts4 {k_. ' yr2%{|p:{yw;-?ozҿקDZdkթwYg];`@>\2o䨧Y4- UHNI5<|7vlU d'ON>n\>=wK/4 ##7^ׯR*/+Wzr]͢j@O yW_ "K>_@-Cv 7qk_">YkVD;P4q̀} hrlݺ &]k-SK1رs׼-Zp ؃PqR@ l֢e]^|q{}ܽg/huk4JF-aFnݦm߾}񆺵kq> 61&eq__fxrs=G;r8qsc>k{s{9x0!>! (pDEGq'$$:,{}񅗜Nd, Ǔ=ȑR'U a}9rG@ĆY-[z~yN;%j>@K8~gg?p߽Ç\/6әCU8v14L?y Vλߜ5lŲ(Gl#BMd8AK]2UZI;wڄ RF:Tw(l(9>c3?pkST眹s>x/gL:Q)dUthb|\#<|ƿW_]ȷ,`1jFED$#io>3j6 5]9csrUB #p@<0 WJ6@@/,Z]w 9*!J0!Fe!1)9)'+ÙzAO9%ͬ:vI>୰c^Gs, \Vx= (2֬Y}OpLYjQI͘y]wJVhZb>g?9 aG"A,սJ+yyy&N5|͛07,gv4bFBfef̛3QQi"+;{G<LqdRAA$LH11׮6tos(4bcNB ^sA{mc޼Ǐ(ꉆDDžM`+j|\C$d9Hn@ .|߹m3(Lzw~:*TZxFhѓOQ'3ƏYO> iUM9UQ#Fܾ~!Js^;TYn聵- +/.[.@ȧłs`y TSM.E{YV y< "S^Gefdn􌌑#F?m/?:dY& LGo䎋OpfgO;vڴ3{VC02E5p!N6l.\ڤIy^/֪ a`r\8{t9y^qiS,Y7! @6"X FJvӉ8A=kɘѣ>59@׋n cò K_)2 jm w8 %$kzדU)nԟEGE1&,`ccɤ6zl:yy7&OQC{d5>-[w"ג˖06ن>u##"+ gZfƍбmUTps0(i>9l.Ð{֯[RrrJJʕeǔMVX\׬Y3J|NIOLlզ%\Ygᄀ?{xӀ II:^?p`k–m`?z,''+""ԦE9} 5kСQO?o\NJn[6oʒ=͚.}- #"ܹǎ_%`_-b4N<,Vnڟ}^.ݺoHO^^C㿂syϽ"ohy~ kUwJa7FMY1eu3Zfͯ\ЦUK$ב#~] /蘘fֵ"1?a(!rժa?6laYYA\j֨T?>5 :ܻw= _4qڵ2":[2kVR&x|9bL|ycQl 9;UQ;{[nߕt?d̨3a´!mն]袦olmj՗_ط)@;s{L Og=le%P>:{ 5ƒZO?՞0u}6oL6la;m&{rXO5~뮻6lukjf|~zuUr!lܸoJ;xnsbi}9[nn|G3s͉[IF~G";ihyd@Oz.˜jjͭ x 8XPgu\]rӣGE!1nLuϐ!lQsUyի 0v#t))Ϟ2G}ּXJ(O^ 0@H xyADf/u>h0VZ/./8kH6"֝=wnC5$f͞3J&K:ع˃>rAޅD b Y=ϝ:cz"&^{P8Zx`8g-szF|чbsa&HN4 \s^GuK6iF??~@^aXb_(ulݼitlݼm[L(0ͨylp!^4Pr(C|ͻ'MXLT\1Ϝ|8tpV2E^O,=A=?Ǐ3W>/R13ШagV:LszFi-}sqg  -8?=wj13йS7~r]fv 22r@Fr\:ߺB. R3AXV9h\`-[jFҭe^*Q^aÞ|wڶoWBHMMoF a#1[oVG^"d];/^, 3 c2B00Bmt>@D)Da *:%<6\ P2#FXE*)IC+19<; a?vxS*p{(5V^_YݖUΈQ*WHEc7ta$٢"7_i&F\.j.q Ȓ}rsb /ؼe+$[M~w=v\2ajiи/ԸԏyjEpZnuǖYf3k]ʫ/3/XUɓe(ZK_u͵7<)%஻":aUQ86y,\Tb44N hxCP/Й)BQkw$"Ei ]|1Ae+ $Hj5k=R~cֳY[DHO?& Ճ-hmii""o\6δ]kԪ{qUVIja- WuV#$)z@-Ƶ%ƪyVOۘJK9h&ϫR_8Ju̓'ڸq#]; *LzSBߋ/i߾U?.n(w.gM8=X,z,Iq ReݹG7(QABC͂( (֮ݲM2;GIq@"o*hgJls:GTtt~A?v{ttx:vux͛JGي'Nc.DuXtLmNpP0w0###CBI{-++KqFaL쾵<ޮ|^VȨ1/- J]!tcJYt?Ǣ_Yoοq_"ixOkV:P0" 7JʂL4B+rv$X;^쫹Q2ީQ:/EVRJ=XJ\~-Y@,ɗ32җ۳F}l޼GIHO?.>:(7 n}+Lt,\$~"ŠF6o4*:@i88Tv;8qX(ey'##~gDD>2**"84s_a/DH5|ŀ|[J}CArE,Q6TToydhHHqP%Дf96,}z?|dԝ&DdKIh(Ǐ1'}lm;GYY99t E ƗvGd3DL_A 貢~O`>5Pxԥ"rvc`ͅD [ԙ?p*kYB~:Zx 'A_ #IN:^'~~ۜͧ)BUK|70y˖.V2#y'GBbzՊW_z}!뢷tfUI&)C<[MPEqyꃼE{s3ǃ,C4Z*,XAaƨUV`=gr,L@ho2؊=)WCI]rEfjCDD|p֩W/333.!-1%ׯ[cM4? W|>=ĩ]ͦ/, ),Dr[ICP?h%NAGi ]\)Ӓ,Qψ7{(iV@.v11q8(r11tQuJ0bbPO͝8A>f2ޥcʰEEE f3 A)zƴPjQ63i3g5mn\/}:DÌh'wko'#** lRRy~!6N4:1"=DظȨ(%YCLָ5>6ϗ^qgZjy=q ISޛz(R_?أX:=9>'M8;G(ou9 :rHN/>ߥ]>5>֕;u~璓DxjԨHઆ>Y[K᪼^o*U}yFexMkG:,,f^6|ǣ 9q>O=9TqX9tG8y;S0FX,:,̙S+B#k.Z_vPNva.DEE3uE]H{;ʎ/+Gy֩S[TCłFDe``ԝsV𕽲@ԬU֍* >aO - dV8kvS)`xzI*=Q|:3 5W袾cǾ矿+W_^}7(ONViӳs!OLJNLJ9*EFD=lٲAz&/'t_ZYZSϴ "+귔qb%BCiPV-Lf.E]o;/ kRG|TSB(` W($!Gpn"E u|,Z5k xÔSN>lԨf-[xPQW|TE2DPE/T[jJ xTY(ƥvk1Zst`>J "P46ldԵᴃj 5/Z⎥ҥz0v޻md7SרUvN/d|Ko`kGy^XJE۽b ff+WFE6m@]oTcPPJ!]. RE#FRWUGG_:rƚڢy-e_(㋕ѣG藙!x< 5Q/s/Y.Dzumw ˗XggdrJDTMc˸%- }P]ziPE0`3e/$`zbv gAҬYM;P+Yҥ +L{v%\zdg|7.Wx8_PЪuпυr3Q孀 |ꔅ~-7׫_+w6 qt U9~]%hhF0)7aOg4(8WwS-S֪pg995%rݺw!!Tp:sMS{ RT44ڙ11sٶ}K/rqqq"Y<7%99F|č]V\+7FTVNݺd8x" )fqo54aM}GiQt1t9uc qL;|+80JlaȨ?~mڴrޏT$$G/@_$BĔ HK;?HYz1hLbRJY&==+?bW`ɛ6ig54 fUIT.SqC=q3T_/G !9%zZj%5u8"80}tOe{ű雃\^xf̳U?~w߽Ju#9[I9*@4a1G|xm:I~޻^|9E =ܖZ_ue?)mDBurr&Ow߽O% F*\ /"thd1̳̮/>}ĉ%= y/}Flnԋ<~z1pЙԩY/(1lGόT@?\۶.zj1v˵t޳lڔ쳿k%+P7{-ڨR_'5z }ͭߠ_qE+4G6&5_-^( 40|&M~z֬?fݧr~9mb'{Ν;lo7%R.]/sz]jظX;֊̥˗[+Y-thzgs`ݚccbcеh5EGJܻυ о]BBBr*n?+V~wc\Nia !uhxpe"X0 KM!Md@~$.>iWQ0J3~C0(/dڵ`-tnҠ^3C|{gŲej>d+@JJ۶kب!QQyyYYǎ۹}--C_?<1t,5,zEժ>?MO  ׮S7"2";+s׎GҠ*Ed [ 8i$+ yJEM,}%B&;0Xv#"rVm6iҤvZ))ɱ1gdٻoʕkָs]5 Cˆ_)'ݻ<]۷W y{"1m6 Kɧ(@]Cmݴ +e! O9f@xP_ NwdXo)~g0,Wcժ͛?L/w8nJhAB)a<`N!Fg-{% la"wSp) hH;]r Z.Azu*HmMA6$h#Ž]@RNvVϙ>sF*5 m„IojvX.RŤj[FӤ'ޞ2AEƙ K3 =@A Q @6v2 EFY4wP/ Կ[ĀpQQQp111p6J\۷8ir`hBDEG{'1 q`,wREr&a/@B Kp9so4cNpzFbYHgȀ/ҭK Lh]*(&tBlC`@qlk)~8: 8'PwV*R_ʂ a&#]L` <=#2; CjdDdLtLlt |lc=w4ln^߂(`cH`b:1&ՙ+k0%gQnakbYQ 䲂ѷpo΍7p\NSyn80]˃YΰѣxͦM+1%2F #ܦ8 S*'yngq#uj,M?0ͷ)sW: x3o}pBR2ToUTq t*ʊmfLܹ/޲eK$'&cDdl(sbl9 ĕIDbHLV^zYrYcǎ ɕ*_|%u3+vڽj*hL:$$DFE]tEm۶U"&&^j~#p<ɒJh߾}4k~U-Mcg^ftztn{ɂ'7 Sxn,QUqP;( ]vYk.8to'::ZM6u޹(rs8n;w:t\ KTr56jغU5kȭ֕\>1)))mqR(پc?ciiWRnzZalU)l? ##h/4zdHOO\k-""Js 8#=cΝ[m;cOiqUVUNM۶n]ZUJe;5 v documentation". #html_title = None # A shorter title for the navigation bar. Default is the same as html_title. #html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. #html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. #html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['.static'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. #html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. #html_last_updated_fmt = '%b %d, %Y' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. #html_use_smartypants = True # Custom sidebar templates, maps document names to template names. #html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. #html_additional_pages = {} # If false, no module index is generated. #html_domain_indices = True # If false, no index is generated. #html_use_index = True # If true, the index is split into individual pages for each letter. #html_split_index = False # If true, links to the reST sources are added to the pages. #html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. #html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. #html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. #html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). #html_file_suffix = None # Language to be used for generating the HTML full-text search index. # Sphinx supports the following languages: # 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' # 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr' #html_search_language = 'en' # A dictionary with options for the search language support, empty by default. # Now only 'ja' uses this config value #html_search_options = {'type': 'default'} # The name of a javascript file (relative to the configuration directory) that # implements a search results scorer. If empty, the default will be used. #html_search_scorer = 'scorer.js' # Output file base name for HTML help builder. htmlhelp_basename = 'iLORESTfulAPIdoc' # -- Options for LaTeX output --------------------------------------------- latex_elements = { # The paper size ('letterpaper' or 'a4paper'). #'papersize': 'letterpaper', # The font size ('10pt', '11pt' or '12pt'). #'pointsize': '10pt', # Additional stuff for the LaTeX preamble. #'preamble': '', # Latex figure (float) alignment #'figure_align': 'htbp', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'iLORESTfulAPI.tex', u'iLO RESTful API Documentation', u'Hewlett Packard Enterprise', 'manual'), ] # The name of an image file (relative to this directory) to place at the top of # the title page. #latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. #latex_use_parts = False # If true, show page references after internal links. #latex_show_pagerefs = False # If true, show URL addresses after external links. #latex_show_urls = False # Documents to append as an appendix to all manuals. #latex_appendices = [] # If false, no module index is generated. #latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [ (master_doc, 'ilorestfulapi', u'iLO RESTful API Documentation', [author], 1) ] # If true, show URL addresses after external links. #man_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ (master_doc, 'iLORESTfulAPI', u'iLO RESTful API Documentation', author, 'iLORESTfulAPI', 'One line description of project.', 'Miscellaneous'), ] # Documents to append as an appendix to all manuals. #texinfo_appendices = [] # If false, no module index is generated. #texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. #texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. #texinfo_no_detailmenu = False python-ilorest-7.0.0.0/docs/Frequently-Asked-Questions.rest0000664000175000017500000000272715116322125022370 0ustar zigozigo.. image:: /images/hpe_logo2.png :width: 150pt | .. toctree:: :maxdepth: 1 Frequently Asked Questions ========================== Q1: What is the difference between REST and Redfish API? -------------------------------------------------------- Representational State Transfer(REST) is a web-based software architectural style consisting of a set of constraints that focus on a system's resource. The HPE REST library performs the basic HTTP operations GET, POST, PUT, PATCH and DELETE on resources using the HATEOS (Hypermedia as the Engine of Application) REST architecture. RESTful typically refers to web services implementing REST architecture. Redfish API uses a hypermedia data model OData(Open Data Protocol) v4 represented within a RESTful interface. OData is a specific implementation of REST architecture that allows resources identified using URIs and defined in an abstract data model. Since the Redfish implementation is based on OData v4, it requires the starting metadata OData header to be version 4. Redfish changes the linking between resources. Where the HPE Restful URIs places all link as "href" inside a "links" sub-object, Redfish changes "**href**" to "**@odata.id**", "**links**" sub-objects to "**Links**". For more information on iLO's implementation of Redfish, click `here `_. More information on Redfish can be found on the `DMTF Redfish Website `_. python-ilorest-7.0.0.0/docs/Makefile0000664000175000017500000001700415116322125015750 0ustar zigozigo# Makefile for Sphinx documentation # # You can set these variables from the command line. SPHINXOPTS = SPHINXBUILD = sphinx-build PAPER = BUILDDIR = .build # User-friendly check for sphinx-build ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) $(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) endif # Internal variables. PAPEROPT_a4 = -D latex_paper_size=a4 PAPEROPT_letter = -D latex_paper_size=letter ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . # the i18n builder cannot share the environment and doctrees with the others I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . .PHONY: help help: @echo "Please use \`make ' where is one of" @echo " html to make standalone HTML files" @echo " dirhtml to make HTML files named index.html in directories" @echo " singlehtml to make a single large HTML file" @echo " pickle to make pickle files" @echo " json to make JSON files" @echo " htmlhelp to make HTML files and a HTML help project" @echo " qthelp to make HTML files and a qthelp project" @echo " applehelp to make an Apple Help Book" @echo " devhelp to make HTML files and a Devhelp project" @echo " epub to make an epub" @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" @echo " latexpdf to make LaTeX files and run them through pdflatex" @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" @echo " text to make text files" @echo " man to make manual pages" @echo " texinfo to make Texinfo files" @echo " info to make Texinfo files and run them through makeinfo" @echo " gettext to make PO message catalogs" @echo " changes to make an overview of all changed/added/deprecated items" @echo " xml to make Docutils-native XML files" @echo " pseudoxml to make pseudoxml-XML files for display purposes" @echo " linkcheck to check all external links for integrity" @echo " doctest to run all doctests embedded in the documentation (if enabled)" @echo " coverage to run coverage check of the documentation (if enabled)" .PHONY: clean clean: rm -rf $(BUILDDIR)/* .PHONY: html html: $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." .PHONY: dirhtml dirhtml: $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml @echo @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." .PHONY: singlehtml singlehtml: $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml @echo @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." .PHONY: pickle pickle: $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle @echo @echo "Build finished; now you can process the pickle files." .PHONY: json json: $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json @echo @echo "Build finished; now you can process the JSON files." .PHONY: htmlhelp htmlhelp: $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp @echo @echo "Build finished; now you can run HTML Help Workshop with the" \ ".hhp project file in $(BUILDDIR)/htmlhelp." .PHONY: qthelp qthelp: $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp @echo @echo "Build finished; now you can run "qcollectiongenerator" with the" \ ".qhcp project file in $(BUILDDIR)/qthelp, like this:" @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/iLORESTfulAPI.qhcp" @echo "To view the help file:" @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/iLORESTfulAPI.qhc" .PHONY: applehelp applehelp: $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp @echo @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." @echo "N.B. You won't be able to view it unless you put it in" \ "~/Library/Documentation/Help or install it in your application" \ "bundle." .PHONY: devhelp devhelp: $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp @echo @echo "Build finished." @echo "To view the help file:" @echo "# mkdir -p $$HOME/.local/share/devhelp/iLORESTfulAPI" @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/iLORESTfulAPI" @echo "# devhelp" .PHONY: epub epub: $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub @echo @echo "Build finished. The epub file is in $(BUILDDIR)/epub." .PHONY: latex latex: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." @echo "Run \`make' in that directory to run these through (pdf)latex" \ "(use \`make latexpdf' here to do that automatically)." .PHONY: latexpdf latexpdf: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through pdflatex..." $(MAKE) -C $(BUILDDIR)/latex all-pdf @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." .PHONY: latexpdfja latexpdfja: $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex @echo "Running LaTeX files through platex and dvipdfmx..." $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." .PHONY: text text: $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text @echo @echo "Build finished. The text files are in $(BUILDDIR)/text." .PHONY: man man: $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man @echo @echo "Build finished. The manual pages are in $(BUILDDIR)/man." .PHONY: texinfo texinfo: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." @echo "Run \`make' in that directory to run these through makeinfo" \ "(use \`make info' here to do that automatically)." .PHONY: info info: $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo @echo "Running Texinfo files through makeinfo..." make -C $(BUILDDIR)/texinfo info @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." .PHONY: gettext gettext: $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale @echo @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." .PHONY: changes changes: $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes @echo @echo "The overview file is in $(BUILDDIR)/changes." .PHONY: linkcheck linkcheck: $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck @echo @echo "Link check complete; look for any errors in the above output " \ "or in $(BUILDDIR)/linkcheck/output.txt." .PHONY: doctest doctest: $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest @echo "Testing of doctests in the sources finished, look at the " \ "results in $(BUILDDIR)/doctest/output.txt." .PHONY: coverage coverage: $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage @echo "Testing of coverage in the sources finished, look at the " \ "results in $(BUILDDIR)/coverage/python.txt." .PHONY: xml xml: $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml @echo @echo "Build finished. The XML files are in $(BUILDDIR)/xml." .PHONY: pseudoxml pseudoxml: $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml @echo @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." python-ilorest-7.0.0.0/docs/Monolith.rest0000664000175000017500000003531315116322125017003 0ustar zigozigo.. image:: /images/hpe_logo2.png :width: 150pt | .. toctree:: :maxdepth: 1 The Monolith ============ The monolith is a database of LegacyRest or Redfish responses. The main database class is **RisMonolith** with members being of class **RisMonolithMemberv100**. You can interact with the monolith directly, or with the **RmcApp** class for full convenience functions and monolith interaction. A monolith is automatically created as part of an RmcApp class. Direct Monolith Usage ===================== Direct usage of the monolith can be useful for crawling an entire tree or creating your own app implementation. The first thing we need to do is create a client and login. If you are unfamiliar with clients, please see the `Quickstart section `_. Creating a monolith ------------------- >>> import redfish >>> REST_OBJ = redfish.RedfishClient(base_url=iLO_host, username=login_account, password=login_password) >>> REST_OBJ.login() Then, we need to create a compatibility instance that goes along with this client. For more information on this compatibility class, see `System Compatibility `_. >>> from redfish.ris.gen_compat import Typesandpathdefines >>> COMPAT_OBJ = Typesandpathdefines() >>> COMPAT_OBJ.getgen(url=iLO_host, username=login_account, password=login_password) We now have everything required to build a **RisMonolith** class. Just pass in the client and compatibility instances. >>> from redfish.ris.ris import RisMonolith >>> MONOLITH = RisMonolith(REST_OBJ, COMPAT_OBJ) Building the monolith --------------------- Now that we have a monolith object we can use our client to build the database. There are multiple ways we can add data to the monolith. We can crawl and load the entire tree, load a single path, or add a **RestResponse** or **RisMonolithMember** instance directly. Loading an instance directly **************************** We can load an instance from data we already have with the **update_member** function. A path that already has a member will be updated instead of creating a new instance in monolith. Just include a monolith member instance... >>> from redfish.ris.ris import RisMonolithMemberv100 >>> resp = REST_OBJ.get('/redfish/v1/Systems/1/') >>> member = RisMonolithMemberv100(resp, COMPAT_OBJ.is_redfish) >>> member >>> MONOLITH.update_member(member=member) >>> MONOLITH.paths {'/redfish/v1/Systems/1/': } or the rest response and path. >>> resp = REST_OBJ.get('/redfish/v1/Managers/1/') >>> MONOLITH.update_member(resp=resp, path=resp.path, init=False) >>> MONOLITH.paths {'/redfish/v1/Systems/1/': , '/redfish/v1/Managers/1/': } Loading a single path ********************* We can instruct the monolith to load a single path into the monolith using the client we passed when we created it using the monolith **load** function. Just specify the path and set crawl to **False**. >>> MONOLITH.load(path='/redfish/v1/Systems/', crawl=False) >>> MONOLITH.paths {'/redfish/v1/Systems/1/': , '/redfish/v1/Managers/1/': , '/redfish/v1/Systems/': } Crawling the entire tree ************************ Monolith's main functionality is crawling the entire tree and creating a database from the responses. We need to use the **load** function to crawl. The **directory_load** attribute needs to be set to **False** to load the monolith completely with responses for all members. >>> MONOLITH.directory_load = False >>> MONOLITH.load() >>> len(MONOLITH.paths) 295 >>> member = MONOLITH.path('/redfish/v1/Systems/1/') >>> member.dict['@odata.id'] .. note:: It may take a while for load to perform get responses on all URIs. This is expected with large trees. For systems with a **ResourceDirectory.** type with the **directory_load** flag set to **True** monolith will perform a quick load of all types in the ResourceDirectory, creating monolith members for every item in the **ResourceDirectory.** *Instances* list, but not actually visit that path. This can be useful to get the majority of paths and types available on the system without needed to actually crawl everything. In order to add the members that do not have responses to the monolith the **init** argument must be included with load. >>> MONOLITH = RisMonolith(REST_OBJ, COMPAT_OBJ) >>> MONOLITH.load(init=True) >>> len(MONOLITH.paths) 286 >>> member = MONOLITH.path('/redfish/v1/Systems/1/') >>> member.path u'/redfish/v1/Systems/1/' >>> member.dict AttributeError: 'NoneType' object has no attribute 'dict' .. note:: Any response without a json response will return an **AttributeError** For a full list of options in **load**, see the resource documentation `here `_. RmcApp Usage ===================== The RmcApp class is a convenience class that combines the client, compatibility, validation, caching, and monolith into one class. RmcApp supplies functions for easily interacting with a server and monolith. For full functionality see the reference on RmcApp `here `_. Creating the RmcApp class ------------------------- Creating an RmcApp class will build everything we need to start working with a server. >>> from redfish.ris.rmc import RmcApp >>> APP = RmcApp() Using the RmcApp with a Server ------------------------------ We have an RmcApp, but we haven't connected it to a server yet. We can do that with the **login** function. Include the login/connection information with the login command and the App will use that to create a client, monolith, and compatibility class. >>> APP.login(base_url='https://16.83.62.248', username='admin', password='password') Now that we are logged in we can start performing functions on the server and reading data. If you used the RedfishClient or RestClient you may have noticed we were always working with paths or @odata.ids. The RmcApp generally works with types, or @odata.types. Getting data ************ **getprops** can be used to gather or **GET** data from the server. We specify the type of data we want to gather with the **selector** argument and what properties we want to gather with the **props** argument. If **props** isn't included, the entire dictionary is returned in a list. >>> APP.getprops(selector='ComputerSystem.', props=['AssetTag','Boot/BootSourceOverrideEnabled']) [{u'AssetTag': u'', u'Boot': {u'BootSourceOverrideEnabled': u'Disabled'}}] If there are multiple instances associated with one type, each is returned in the list. >>> APP.getprops(selector='EthernetInterface.', props=['@odata.id']) [{u'@odata.id': u'/redfish/v1/Systems/1/EthernetInterfaces/2/'}, {u'@odata.id': u'/redfish/v1/Systems/1/EthernetInterfaces/1/'}, {u'@odata.id': u'/redfish/v1/Managers/1/EthernetInterfaces/1/'}, {u'@odata.id': u'/redfish/v1/Systems/1/EthernetInterfaces/3/'}, {u'@odata.id': u'/redfish/v1/Managers/1/EthernetInterfaces/2/'}, {u'@odata.id': u'/redfish/v1/Systems/1/EthernetInterfaces/4/'}, {u'@odata.id': u'/redfish/v1/Managers/1/EthernetInterfaces/3/'}] If there are multiple instances associated, but you only want specific instance(s) returned, you can directly choose which monolith instances are searched by **getprops** using **select**, filtering by a key/value pair with the fltrvals argument. **fltrvals** takes a tuple of (Key,Value). You can then pass these instances to **getprops** to use instead of using all instances of a specific type. .. note:: The value can include a (*) which will include all instances that match the Key exactly and with a Value string that starts with the value exactly up to the (*). Anything after is ignored. >>> instances = APP.select(selector='EthernetInterface.', fltrvals=('@odata.id','/redfish/v1/Managers/*')) >>> instances [, , ] >>> APP.getprops(insts=instances, props=['@odata.id']) [{u'@odata.id': u'/redfish/v1/Managers/1/EthernetInterfaces/1/'}, {u'@odata.id': u'/redfish/v1/Managers/1/EthernetInterfaces/2/'}, {u'@odata.id': u'/redfish/v1/Managers/1/EthernetInterfaces/3/'}] Getting schema data ******************* If schema data is available on the system, we can get schema data with the **info** function. Just include the **selector** for the schema you wish to return. .. note:: **info** is optimized for HPE servers, but it should work for any schema which is on the system. If a specific system does not return schema data, please open a GitHub issue. >>> schema = APP.info(selector='ComputerSystem.') >>> schema['AssetTag'] {u'readonly': False, u'etag': True, u'type': [u'string', u'null'], u'description': u'A user-definable tag that is used to track this system for inventory or other client purposes.'} Instead of querying the entire schema, you can get specific schema keys using the **props** argument. >>> assettag_schema = APP.info(selector='ComputerSystem.', props=['AssetTag']) >>> assettag_schema {u'readonly': False, u'etag': True, u'type': [u'string', u'null'], u'description': u'A user-definable tag that is used to track this system for inventory or other client purposes.'} Modifying data ************** **loadset** can be used to set or **PATCH** data to the server. Data modified with **loadset** requires a **commit** to be updated on the server. First we need to get the dictionary we want to modify. We will use **getprops**. >>> system = APP.getprops(selector='ComputerSystem.') >>> system[0]['AssetTag'] u'' >>> system[0]['AssetTag']='newtag' >>> system[0]['AssetTag'] 'newtag' You can also pass partial dictionaries to **loadset**. So you can use **getprops** to only gather the properties that you want to modify. >>> assettag = APP.getprops(selector='ComputerSystem.', props=['AssetTag']) >>> assettag[0]['AssetTag'] u' >>> assettag[0]['AssetTag']='newtag' >>> assettag[0]['AssetTag'] 'newtag' Now that we have a modified dictionary, we can pass it to **loadset** to set patches. Loadset will return a list of changes that occurred. Remember to pass the dictionary, not the list returned from **getprops**. .. note:: **fltrvals**, much like in getprops, can be used to filter out instances of the same type so that you only make changes to specific instances, instead of all instances of a type. >>> APP.loadset(seldict=system[0], selector='ComputerSystem.') [{u'AssetTag': 'newtag'}] You can also use **status** to see all of the pending patches. Even if they are from multiple types. >>> APP.status() [{u'ComputerSystem.v1_4_0(/redfish/v1/Systems/1/)': [{u'path': u'/AssetTag', u'value': 'newtag', u'op': u'replace'}]}] Finally, we apply our pending changes to the server with **commit**. Commit is a generator, so we need to loop through to confirm the settings applied. .. note:: False means no error occurred for that path. True means an error occurred. >>> for commit in APP.commit(): print commit /redfish/v1/Systems/1/ False We can double check our setting applied with another getprops call. .. note:: We don't need to reload the monolith because it knows changes were made and auto reloads the path! >>> assettag = APP.getprops(selector='ComputerSystem.', props=['AssetTag']) >>> assettag [{u'AssetTag': u'newtag'}] Performing Actions ****************** Actions are just **POST** operations. They can be performed with the RmcApp handlers for raw HTTP commands. See the `post_handler `_. HTTP handlers ************* RmcApp supplies handlers for the raw HTTP methods **GET**, **PATCH**, **POST**, **DELETE**, **PUT**, and **HEAD**. On top of standard request and response returns, the handlers also allow for either printing or logging of full error message strings from registries if the registries are available on the system. TODO: ADD info about showwarnings once it's fixed. *********** GET Handler *********** The **get_handler** is the equivalent of HTTP **GET** and returns a **RestResponse** object. Simply add the path to GET as an argument. >>> APP.get_handler('/redfish/v1/systems/1/') ************* PATCH Handler ************* The **patch_handler** is the equivalent of HTTP **PATCH** and returns a **RestResponse** object. Simply add the path to PATCH and the body as arguments. >>> APP.patch_handler('/redfish/v1/systems/1/', {'AssetTag': 'TAG'}) ************ POST handler ************ The **post_handler** is the equivalent of HTTP **POST** and returns a **RestResponse** object. Simply add the path to POST and the body as arguments. >>> APP.post_handler('/redfish/v1/Systems/1/Actions/ComputerSystem.Reset/', {'ResetType': 'On'}) ************** DELETE handler ************** The **delete_handler** is the equivalent of HTTP **DELETE** and returns a **RestResponse** object. Simply add the path to DELETE as an argument. >>> resp = APP.delete_handler('/redfish/v1/systems/1/') .. note:: We did not actually delete /redfish/v1/systems/1/. If you were to read the RestResponse you would see that an error returned. *********** PUT handler *********** The **put_handler** is the equivalent of HTTP **PUT** and returns a **RestResponse** object. Simply add the path to PUT and the body as arguments. >>> APP.put_handler('/redfish/v1/systems/1/', {'test': 'data'}) .. note:: We did not actually PUT to /redfish/v1/systems/1/. If you were to read the RestResponse, you would see that an error returned. ************ HEAD handler ************ The **head_handler** is the equivalent of HTTP **HEAD** and returns a **RestResponse** object. Simply add the path to gather headers from. Note there is no body response of a head. Headers are available by the **getheaders()** function of RestResponse. >>> resp = APP.head_handler('/redfish/v1/Systems/1/') >>> resp.getheaders() {'Content-Length': '0', 'ETag': 'W/"44499A19"', 'Link': '; rel=describedby', 'Allow': 'GET, HEAD, POST, PATCH', 'Date': 'Fri, 03 Jan 2020 19:21:53 GMT', 'OData-Version': '4.0', 'X-Frame-Options': 'sameorigin'} Ending A Session **************** After finishing operations on a server, it's important to logout using **logout** to free sessions. >>> APP.logout() python-ilorest-7.0.0.0/docs/Installation-Guide.rest0000664000175000017500000000341115116322125020700 0ustar zigozigo.. image:: /images/hpe_logo2.png :width: 150pt | ================== Installation Guide ================== The python-ilorest-library supports **Python 2** (Up to 2.7.15, which is the EOL version) and **Python 3** (At present, 3.8). Pip install =========== Standard install ---------------- :: pip install python-ilorest-library With SOCKS proxy support ------------------------ Starting with **version 2.5.0** of the python-ilorest-library, you can include the SOCKS proxy add-on if you need that support. :: pip install python-ilorest-library[socks] Building from Source ==================== Checkout using SVN (Subversion) ------------------------------- Assuming that SVN is already installed in your system and it is already in the system path, run the following command from the directory where you want to copy the source. :: svn checkout https://github.hpe.com/intelligent-provisioning/python-redfish-library.git Clone using GIT --------------- Run the following command from the directory where you want to copy the source. :: git clone https://github.hpe.com/intelligent-provisioning/python-redfish-library.git Building Source --------------- After you have checked out the latest code, run the following commands: :: cd python-ilorest-library python setup.py sdist --formats=zip (this will produce a .zip file) cd dist pip install python-ilorest-library-x.x.x.zip[socks] A successful installation will display that python-ilorest-library-x.x.x and the dependencies have been successfully installed. Building From Source With SOCKS Proxy Support --------------------------------------------- :: cd python-ilorest-library python setup.py sdist --formats=zip (this will produce a .zip file) cd dist pip install python-ilorest-library-x.x.x.zip[socks] python-ilorest-7.0.0.0/docs/Quick-Start.rest0000664000175000017500000002024215116322125017354 0ustar zigozigo.. image:: /images/hpe_logo2.png :width: 150pt | .. toctree:: :maxdepth: 1 =========== Quick Start =========== This will cover object creation, a simple call to the API, and a response object. Scripts of the information provided below are available at: `quickstart_redfish.py `_ and `quickstart_legacy_rest.py `_. For more elaborate examples that use the Redfish API and python-ilorest-library check out the `Examples `_ section. The python-ilorest-library provides support for communication using both remote using HTTPS and local in-band using CHIF. Importing Redfish ================== Make sure that the redfish library is imported. .. code-block:: python import redfish The very first thing that needs to be done for a restful request is to create a **LegacyRestClient** or **RedfishClient** object. A **RedfishClient** is for interacting with a Redfish API and a **LegacyRestClient** is for interacting with HPE's Legacy Rest API. For maximum compatibility between iLOs and other vendor hardware that implements Redfish it is recommended to use the Redfish API whenever possible. .. note:: HPE's Legacy Rest API is available starting in **iLO 4 2.00**. iLO 4 is Redfish conformant starting with **iLO 4 2.30**. In iLO 5 and above the iLO RESTful API is Redfish only. Creating a Remote Object ============================ Creating a remote client requires including the iLO hostname or ip address and credentials. Create a Redfish Object ----------------------- .. note:: *New in version 3.0.0* Creation of a Redfish object instance is done using the **RedfishClient** class instead of the **redfish_client** function. **RedfishClient** takes as parameters iLO hostname/ip address, username, password, and other optional arguments. For a full list of optional arguments see `here `_. .. code-block:: python REST_OBJ = redfish.RedfishClient(base_url=iLO_host, username=login_account, password=login_password) Create a LegacyRest Object -------------------------- .. note:: *New in version 3.0.0* Creation of a Legacy Rest object instance is done using the **LegacyRestClient** class instead of the **rest_client** function. **LegacyRestClient** takes as parameters iLO hostname/ip address, username, password, and other optional arguments. For a full list of optional arguments see `here `_. .. code-block:: python REST_OBJ = redfish.LegacyRestClient(base_url=iLO_host, username=login_account, password=login_password) Creating a Local Object =========================== Requirements ----------------------- * You must be running on a server with iLO and the latest iLO drivers from the SPP. * You will need to download the iLOrest Chif DLL/SO for your corresponding operating system and place it in your working environment path. By downloading, you agree to the terms and conditions of the `Hewlett Packard Enterprise Software License Agreement`_. Windows Download: ilorest_chif.dll_ Linux Download: ilorest_chif.so_ .. _`Hewlett Packard Enterprise Software License Agreement` : https://www.hpe.com/us/en/software/licensing.html .. _ilorest_chif.dll: https://downloads.hpe.com/pub/softlib2/software1/pubsw-windows/p1463761240/v167985/ilorest_chif.dll .. _ilorest_chif.so: https://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1093353304/v168967/ilorest_chif.so Create a Redfish or LegacyRest Object ------------------------------------- If you create a **LegacyRest** or **Redfish** object without a base_url argument it will automatically create an object configured for a local CHIF connection. A username and password may be included in object creation if they are required. For **most** operations in **Production** security mode no credentials are required locally. Some reasons credentials may be required locally: * iLO is operating in a higher security mode (Such as HighSecurity). * Some operations require the credentials of an account with a specific privilege to complete (Even in Production security mode). .. code-block:: python REST_OBJ = redfish.RedfishClient() Create a login session ============================ Next the rest object's **login** method is called to initiate a rest session. The login method takes the credentials specified in the REST object we created. Login also takes an authentication type optional parameter, if the argument is not included the Client will choose an authentication type for you based on the arguments given with `session` being the default. For `session` authentication, a session key is generated through a rest request, the default for username and password arguments. For `basic` authentication, the username and password is base64 encoded and sent in a header for each request. For security, session authentication is preferred. .. code-block:: python REST_OBJ.login(auth="session") Remember to call **logout** method once the session is completed to free up sessions. Perform your first Restful API GET operation ============================================ The following example performs a GET operation on the systems resource (/redfish/v1/systems/1) using the HPE Restful API for iLO. It does an HTTP GET request on the iLO SSL(HTTPS) port (typically 443 but the iLO can be configured to use another port as well). The interface is not available over open HTTP (port 80), so SSL handshake must be used. Perform a HTTP **GET** request by using the **get** method. >>> response = REST_OBJ.get('/redfish/v1/systems/1') Response Object =============== A **Response** object called *response* is now available for us to inspect. The **status** property returns the HTTP response to our request: >>> response.status 200 The **dict** property returns the response json body as a Python dictionary: >>> response.dict The **getheaders()** method returns a dictionary of all http response headers: >>> response.getheaders() {'Transfer-Encoding': 'chunked', 'X_HP-CHRP-Service-Version': '1.0.3', 'ETag': 'W/"0129EA9F"', 'Link': '; rel=describedby', 'Allow': 'GET, HEAD, POST, PATCH', 'Cache-Control': 'no-cache', 'Date': 'Tue, 06 Aug 2019 19:42:26 GMT', 'OData-Version': '4.0', 'X-Frame-Options': 'sameorigin', 'Content-type': 'application/json; charset=utf-8'} You can also print the Response object directly: >>> sys.stdout.write("%s\n" % response) Response status: 200 Response header: | Transfer-Encoding chunked | X_HP-CHRP-Service-Version 1.0.3 | ETag W/"E4BDA463" | Link ; rel=describedby | Allow GET, HEAD, POST, PATCH | Cache-Control no-cache | Date Thu, 01 Aug 2019 19:13:17 GMT | OData-Version 4.0 | X-Frame-Options sameorigin | Content-type application/json; charset=utf-8 The formated Response body (Truncated for size): .. literalinclude:: redfish_quick.json :language: JSON A full description of the Response Object is available in the reference `here `_. Other HTTP Requests ============================ Other HTTP Requests **HEAD**, **PATCH**, **POST**, **DELETE**, and **PUT** are just as simple to use as **GET**. >>> response = REST_OBJ.head('/redfish/v1/systems/1') >>> response = REST_OBJ.patch('/redfish/v1/systems/1', {'AssetTag': 'newtag'}) >>> response = REST_OBJ.post('/redfish/v1/Systems/1/Actions/ComputerSystem.Reset/', {'ResetType': 'ForceRestart'}) >>> response = REST_OBJ.delete(REST_OBJ.session_location) >>> response = REST_OBJ.put('', 'data') Close the login session ============================ Logout of the current session. This is only required for `session` based authentication. .. code-block:: python REST_OBJ.logout() Continued Reading ================= That's it! You're ready to perform some Redfish requests! If you are looking for more advanced topics like *setting timeouts*, more detail on the *response* object, or configuration of the *Redfish* or *LegacyRest* objects check out the `Advanced Usage `_ section.python-ilorest-7.0.0.0/docs/Advanced-Usage.rest0000664000175000017500000002564215116322125017765 0ustar zigozigo.. image:: images/hpe_logo2.png :width: 150pt ============== Advanced Usage ============== The following sections describe advanced usage of the python-ilorest-library. A deeper dive into the Client Classes ===================================== The **RedfishClient** and **LegacyRestClient** are both based on the **RestClient** class. The only difference between the two is that one is configured for *Legacy Rest* and the other one is configured for *Redfish*. So it is possible to directly use the **RestClient** class instead if you want. For other REST APIs, it is even possible to use the **RestClientBase** class as a client. Modifying Remote Connection Settings ------------------------------------ A remote connection eventually turns into a *urllib3* **PoolManager** class. Because of this setting, any extra arguments passed to the Client class that **PoolManager** takes (and any urllib3 adds in the future)are added to the *urllib3* connection. Useful arguments include: * **timeout** (in seconds) * **retries** * **ca_certs** For a full list of arguments possible, see urllib3's `documentation `_. The following example sets a **RedfishClient** with a timeout of 30 seconds and five retries. >>> REST_OBJ = redfish.RedfishClient(base_url=iLO_host, username=login_account, password=login_password, timeout=30, retries=5) Proxy Support ------------- The python-ilorest-library **version 2.5.0 and greater** supports both HTTP and SOCKS proxies. If you are using a socks proxy, you must `install the [socks] add-on `_. >>> REST_OBJ = redfish.RedfishClient(base_url="https://10.0.0.100", username="username", password="password", proxy='http://proxy.proxy.com:8080') SOCKS proxies must start with `socks` >>> REST_OBJ = redfish.RedfishClient(base_url="https://10.0.0.100", username="username", password="password", proxy='socks5://proxy.proxy.com:8080') HTTPS verification ------------------ By default the python-ilorest-library creates an unverified context for HTTPS connections. To verify the HTTPS certificate, pass an optional argument to urllib3 through a Client object, **ca_certs**. >>> REST_OBJ = redfish.RedfishClient(base_url="https://hostname", username="username", password="password", ca_certs='C:\\CA.crt') For a full description of possible arguments in ca_certs, see `urllib3's documentation on the subject `_. A deeper dive into the Response Class ===================================== The **Response** class was already mentioned briefly in the `Quick Start `_ section, but this section provides more details about the useful properties of the Response class. You can use the **getheader()** function to search for a specific header in a response. *getheader is case insensitive* >>> response.getheader('link') '; rel=describedby' The **ori** property returns the response body in its original form, and it is useful for binary responses. >>> response.ori The **obj** property returns the response body in dot notation. >>> resp_obj = response.obj >>> resp_obj.AssetTag u'assettag' For keys with special characters, the dictionary notation still works. >>> resp_obj.Bios['@odata.id'] u'/redfish/v1/systems/1/bios' Response Object --------------- A class has been implemented within the library to handle HTTP response codes from iLO for patch, post and put type requests. HTTP response data is parsed and then combined with the relevant error response resource as associated with the applied properties (categorized by type and MessageId). Error response data is guided by HTTP status codes. See `List of HTTP status codes `_ for more information: * **200** response codes indicate success. Generally these types of responses include simple messages, such as "successful" or "one or more properties have been changed, an ilo reset is required for the properties to take effect" (on some rare occassions no response message or an empty response string will occur). * **400** response codes indicate client failures such as an invalid post or patch, or the resource could not be modified. Additional detailed information will likely accompany the response message. .. note:: Response codes outside of 200 and 400 have not been extensively tested or witnessed. Responses for HTTP response codes under 300 redirects or 500 server errors might be observed; please feel free to note and share the results of such encounters by opening a GitHub issue. Generally 400 error response codes result in a full error response. A response might include the following data; however, the entries are not guaranteed for every response: * An error response message ID ("MessageId"), iLO response error message code identification. * An error response message description ("Description"), essentially a quick synopsis of the issue. * An error response message ("Message") describing the reason for the error in greater detail. The offending properties are noted as per the relevant error response resource. * An error response resolution ("Resolution") describing steps to correct the error. The following is an example response message for an error in the iLODateTime type regarding the property "NTPServers": .. code-block:: TEXT HTTP Response Code: [400] MessageId: iLO.2.8.PropertyNotWritableOrUnknown Description: The request included a value for a read-only or unknown property. Message: The property "NTPServers" is a read-only property and cannot be assigned a value, or not valid for this resource. Resolution: If the operation did not complete, remove the property from the request body and resubmit the request. .. note:: The response data is also available when utilizing the iLO Channel Interface Driver (Chif). Request Object -------------- The **response** property of the Response object returns a **Request** object, which describes the request that generated the response. >>> response.request The **url** property shows the actual system the call was made against. >>> response.request.url 'https://10.0.0.100' The **method** property shows the method applied. >>> response.request.method 'PATCH' The **path** property shows what path the method was made against. >>> response.request.path '/redfish/v1/systems/1' The **body** property shows what body (if any) was passed along with the request. >>> response.request.body '{"AssetTag": "new tag"}' Certificate Based Authentication (HPE iLO Supported Authentication Only) ======================================================================== The python-ilorest-library (**version 3.2.0 and greater**) supports the use of certificate based authentication when accessing an HPE iLO based BMC. Certificate based authentication utilizes Urllib3 TLS certificates passed to the PoolManager when an http client is initialized. >>> REST_OBJ = redfish.RedfishClient(base_url="https://10.0.0.100", username="username", ca_cert_data=) Upon successful login, a session key is provided in return, by iLO, which can be used for all subsequent transactions. >>> REST_OBJ.login(auth="session") .. note:: This feature requires iLO 5 version 2.40 or greater. In addition to the version requirement the iLO internal RTC clock must have the correct date and time (NTP must be configured), have a valid "iLO Advanced Premium Security Edition" license key, have CAC/Smartcard Authentication enabled, incorporate a valid SSL certificate, as well as certificate thumbprint mappings for the relevant iLO management users which can be authenticated by the client certificate(s). Multiple users can share the same certificate, if so configured. The dictionary of certificate data should include: #. iLO User TLS Certificate (.pem suggested) #. iLO User Root CA Certificate (if self signed) (.pem suggested) #. Private Root CA Password (if available) >>> {'ca_certs': , 'cert_file': , 'key_file': , 'key_password': } General steps to create the necessary steps include: #. Generate a root CA private key (.PEM) using RSA. This key can be password protected, which must be supplied in order to be used. Bit encryption level should be consistent. #. Generate a user certificate private key. This key can be password protected, which must be supplied in order to be used. #. Generate a root CA Certificate (.PEM), if using a self signed option. Alternatively this can be generated by a valid, trusted, certificate authority (CA) (IdenTrust, DigiCert, GoDaddy, GlobalSign, and Let's Encrypt just to name a few). #. Configure and set X509 SSL certificate by generating a certificate signing request from iLO (CSR) and signing with the previously generated private root CA key. #. Add X509 SSL certificate to iLO. #. Add root CA Certificate to CAC/Smartcard and enable CAC Smartcard Authentication. #. Generate user certificate. #. Add user certificate mappings to iLO Multi-part Form Data ==================== .. note:: Multi-part Form data is only supported on iLO with a **Remote Object**. Multi-part form data is sent as a list of tuples. Standard fields are a tuple of `(field, value)` >>> ('field1': 'value') Json data is just another value >>> ('jsondata', {'key1': 'value1', 'key2': 'value2'}) Files & binary data are similar to the standard fields, except instead of a value we have another tuple. This value tuple has 2 or 3 items `(filename, filedata)` or optionally include the MIME type explicitly `(filename, filedata , MIME type)` >>> ('filedata', ('filename.data', '', 'application/octet-stream')) So putting it all together in a single form data request: >>> [('field1': 'value'), ('jsondata', {'key1': 'value1', 'key2': 'value2'}), ('filedata', ('filename.data', '', 'application/octet-stream'))] For an example of Multi-part form data in action, see the `example for uploading firmware to the iLO repository `_. Logging ======= Logging of all request and responses is available through the redfish_logger function. First, import the logging and redfish_logger functions. >>> import logging >>> from redfish import redfish_logger Then, specify the logger file name, format of the logger, and the logging level. See the `logging` python documentation for more information on these arguments. >>> LOGGERFILE = "RedfishApiExamples.log" >>> LOGGERFORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" >>> LOGGER = redfish_logger(LOGGERFILE, LOGGERFORMAT, logging.DEBUG) After running some commands, your log file should be populated in the file specified at creation. python-ilorest-7.0.0.0/docs/Client-Quick-Start.rest0000664000175000017500000002072115116322125020572 0ustar zigozigo.. image:: /images/hpe_logo2.png :width: 150pt | .. toctree:: :maxdepth: 1 Client Quick Start ================== This section describes the basic functionality of the library for users, who only need a basic client configured for a LegacyRest or Redfish host. For a convenient class for performing higher level functionality or for users unfamiliar with Redfish implementations, see `RmcApp Usage `_. This Quick Start covers client object creation, a simple call to the API, and a response object. Scripts of the information provided below are available at: `quickstart_redfish.py `_ and `quickstart_legacy_rest.py `_. For more elaborate examples that use the Redfish API and the python-ilorest-library, see the `Examples `_ section. The python-ilorest-library provides support for communication using both remote using HTTPS and local in-band using CHIF. Importing the Redfish Library ============================= Import the Redfish library. .. code-block:: python import redfish The very first thing that needs to be done for a RESTful request is to create a **LegacyRestClient** or **RedfishClient** object. A **RedfishClient** is for interacting with a Redfish API, and a **LegacyRestClient** is for interacting with HPE Legacy Rest API. For maximum compatibility between iLOs and other vendor hardware that implements Redfish, it is recommended to use the Redfish API whenever possible. .. note:: HPE's Legacy Rest API is available starting in **iLO 4 2.00**. iLO 4 is Redfish conformant starting with **iLO 4 2.30**. In iLO 5 and above the iLO RESTful API is Redfish only. Creating a Remote Object ======================== Creating a remote client requires including the iLO hostname or IP address and credentials. Create a Redfish Object ----------------------- .. note:: *New in version 3.0.0* Creation of a Redfish object instance is done using the **RedfishClient** class instead of the **redfish_client** function. **RedfishClient** takes as parameters iLO hostname/IP address, username, password, and other optional arguments. For a full list of optional arguments see `here `_. .. code-block:: python REST_OBJ = redfish.RedfishClient(base_url=iLO_host, username=login_account, password=login_password) Create a LegacyRest Object -------------------------- .. note:: *New in version 3.0.0* Creation of a Legacy Rest object instance is done using the **LegacyRestClient** class instead of the **rest_client** function. **LegacyRestClient** takes as parameters iLO hostname/IP address, username, password, and other optional arguments. For a full list of optional arguments see `here `_. .. code-block:: python REST_OBJ = redfish.LegacyRestClient(base_url=iLO_host, username=login_account, password=login_password) Creating a Local Object =========================== Requirements ----------------------- * You must be running on a server with iLO and the latest iLO drivers from the SPP. * You will need to download the iLOrest Chif DLL/SO for your corresponding operating system and place it in your working environment path. By downloading, you agree to the terms and conditions of the `Hewlett Packard Enterprise Software License Agreement`_. Windows Download: ilorest_chif.dll_ Linux Download: ilorest_chif.so_ .. _`Hewlett Packard Enterprise Software License Agreement` : https://www.hpe.com/us/en/software/licensing.html .. _ilorest_chif.dll: https://downloads.hpe.com/pub/softlib2/software1/pubsw-windows/p1463761240/v167985/ilorest_chif.dll .. _ilorest_chif.so: https://downloads.hpe.com/pub/softlib2/software1/pubsw-linux/p1093353304/v168967/ilorest_chif.so Create a Redfish or LegacyRest Object ------------------------------------- If you create a **LegacyRest** or **Redfish** object without a base_url argument it will automatically create an object configured for a local CHIF connection. A username and password may be included in object creation if they are required. For **most** operations in **Production** security mode no credentials are required locally. Some reasons credentials may be required locally: * iLO is operating in a higher security mode (Such as HighSecurity). * Some operations require the credentials of an account with a specific privilege to complete (Even in Production security mode). .. code-block:: python REST_OBJ = redfish.RedfishClient() Create a login session ====================== Next the rest object's **login** method is called to initiate a rest session. The login method takes the credentials specified in the REST object we created. Login also takes an authentication type optional parameter, if the argument is not included the Client will choose an authentication type for you based on the arguments given with `session` being the default. For `session` authentication, a session key is generated through a rest request, the default for username and password arguments. For `basic` authentication, the username and password is base64 encoded and sent in a header for each request. For security, session authentication is preferred. .. code-block:: python REST_OBJ.login(auth="session") Remember to call **logout** method once the session is completed to free up sessions. Perform your first RESTful API GET operation ============================================ The following example performs a GET operation on the systems resource (/redfish/v1/systems/1) using the HPE RESTful API for iLO. It does an HTTP GET request on the iLO SSL(HTTPS) port (typically 443 but the iLO can be configured to use another port as well). The interface is not available over open HTTP (port 80), so SSL handshake must be used. Perform a HTTP **GET** request by using the **get** method. >>> response = REST_OBJ.get('/redfish/v1/systems/1') Response Object =============== A **Response** object called *response* is now available for us to inspect. The **status** property returns the HTTP response to our request: >>> response.status 200 The **dict** property returns the response json body as a Python dictionary: >>> response.dict The **getheaders()** method returns a dictionary of all http response headers: >>> response.getheaders() {'Transfer-Encoding': 'chunked', 'X_HP-CHRP-Service-Version': '1.0.3', 'ETag': 'W/"0129EA9F"', 'Link': '; rel=describedby', 'Allow': 'GET, HEAD, POST, PATCH', 'Cache-Control': 'no-cache', 'Date': 'Tue, 06 Aug 2019 19:42:26 GMT', 'OData-Version': '4.0', 'X-Frame-Options': 'sameorigin', 'Content-type': 'application/json; charset=utf-8'} You can also print the Response object directly: >>> sys.stdout.write("%s\n" % response) Response status: 200 Response header: | Transfer-Encoding chunked | X_HP-CHRP-Service-Version 1.0.3 | ETag W/"E4BDA463" | Link ; rel=describedby | Allow GET, HEAD, POST, PATCH | Cache-Control no-cache | Date Thu, 01 Aug 2019 19:13:17 GMT | OData-Version 4.0 | X-Frame-Options sameorigin | Content-type application/json; charset=utf-8 The formated Response body (Truncated for size): .. literalinclude:: redfish_quick.json :language: JSON A full description of the Response Object is available in the reference `here `_. Other HTTP Requests =================== Other HTTP Requests **HEAD**, **PATCH**, **POST**, **DELETE**, and **PUT** are just as simple to use as **GET**. >>> response = REST_OBJ.head('/redfish/v1/systems/1') >>> response = REST_OBJ.patch('/redfish/v1/systems/1', {'AssetTag': 'newtag'}) >>> response = REST_OBJ.post('/redfish/v1/Systems/1/Actions/ComputerSystem.Reset/', {'ResetType': 'ForceRestart'}) >>> response = REST_OBJ.delete(REST_OBJ.session_location) >>> response = REST_OBJ.put('', 'data') Close the login session ======================= Logout of the current session. This is only required for `session` based authentication. .. code-block:: python REST_OBJ.logout() Continued Reading ================= That's it! You're ready to perform some Redfish requests! If you are looking for more advanced topics like *setting timeouts*, more detail on the *response* object, or configuration of the *Redfish* or *LegacyRest* objects check out the `Advanced Usage `_ section. python-ilorest-7.0.0.0/docs/iLO_4_REST_API_Data_Model.md0000664000175000017500000000031015116322125021127 0ustar zigozigo# iLO 4 REST API Data Model The data model documentation can be found here. python-ilorest-7.0.0.0/docs/Reference.rest0000664000175000017500000000275715116322125017116 0ustar zigozigo======================= Reference Documentation ======================= redfish.rest --------------- .. automodule:: redfish.rest redfish.rest.v1 =============== .. automodule:: redfish.rest.v1 :members: :show-inheritance: redfish.rest.connections ======================== .. automodule:: redfish.rest.connections :members: :show-inheritance: redfish.rest.containers ======================= .. automodule:: redfish.rest.containers :members: RestRequest, RestResponse :show-inheritance: redfish.ris --------------- .. automodule:: redfish.ris redfish.ris.gen_compat ====================== .. automodule:: redfish.ris.gen_compat :members: :show-inheritance: redfish.ris.ris =============== .. automodule:: redfish.ris.ris :members: :show-inheritance: redfish.ris.ris_threaded ======================== .. automodule:: redfish.ris.ris_threaded :members: :show-inheritance: redfish.ris.utils ================= .. automodule:: redfish.ris.utils :members: :show-inheritance: redfish.ris.rmc =============== .. automodule:: redfish.ris.rmc :members: :show-inheritance: redfish.ris.rmc_helper ====================== .. automodule:: redfish.ris.rmc_helper :members: :show-inheritance: redfish.ris.resp_handler ======================== .. automodule:: redfish.ris.resp_handler :members: :show-inheritance: redfish.ris.validation ======================== .. automodule:: redfish.ris.validation :members: :show-inheritance:python-ilorest-7.0.0.0/docs/make.bat0000664000175000017500000001553015116322125015717 0ustar zigozigo@ECHO OFF REM Command file for Sphinx documentation if "%SPHINXBUILD%" == "" ( set SPHINXBUILD=sphinx-build ) set BUILDDIR=.build set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . set I18NSPHINXOPTS=%SPHINXOPTS% . if NOT "%PAPER%" == "" ( set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% ) if "%1" == "" goto help if "%1" == "help" ( :help echo.Please use `make ^` where ^ is one of echo. html to make standalone HTML files echo. dirhtml to make HTML files named index.html in directories echo. singlehtml to make a single large HTML file echo. pickle to make pickle files echo. json to make JSON files echo. htmlhelp to make HTML files and a HTML help project echo. qthelp to make HTML files and a qthelp project echo. devhelp to make HTML files and a Devhelp project echo. epub to make an epub echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter echo. text to make text files echo. man to make manual pages echo. texinfo to make Texinfo files echo. gettext to make PO message catalogs echo. changes to make an overview over all changed/added/deprecated items echo. xml to make Docutils-native XML files echo. pseudoxml to make pseudoxml-XML files for display purposes echo. linkcheck to check all external links for integrity echo. doctest to run all doctests embedded in the documentation if enabled echo. coverage to run coverage check of the documentation if enabled goto end ) if "%1" == "clean" ( for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i del /q /s %BUILDDIR%\* goto end ) REM Check if sphinx-build is available and fallback to Python version if any %SPHINXBUILD% 1>NUL 2>NUL if errorlevel 9009 goto sphinx_python goto sphinx_ok :sphinx_python set SPHINXBUILD=python -m sphinx.__init__ %SPHINXBUILD% 2> nul if errorlevel 9009 ( echo. echo.The 'sphinx-build' command was not found. Make sure you have Sphinx echo.installed, then set the SPHINXBUILD environment variable to point echo.to the full path of the 'sphinx-build' executable. Alternatively you echo.may add the Sphinx directory to PATH. echo. echo.If you don't have Sphinx installed, grab it from echo.http://sphinx-doc.org/ exit /b 1 ) :sphinx_ok if "%1" == "html" ( %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/html. goto end ) if "%1" == "dirhtml" ( %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. goto end ) if "%1" == "singlehtml" ( %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml if errorlevel 1 exit /b 1 echo. echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. goto end ) if "%1" == "pickle" ( %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the pickle files. goto end ) if "%1" == "json" ( %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can process the JSON files. goto end ) if "%1" == "htmlhelp" ( %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run HTML Help Workshop with the ^ .hhp project file in %BUILDDIR%/htmlhelp. goto end ) if "%1" == "qthelp" ( %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp if errorlevel 1 exit /b 1 echo. echo.Build finished; now you can run "qcollectiongenerator" with the ^ .qhcp project file in %BUILDDIR%/qthelp, like this: echo.^> qcollectiongenerator %BUILDDIR%\qthelp\iLORESTfulAPI.qhcp echo.To view the help file: echo.^> assistant -collectionFile %BUILDDIR%\qthelp\iLORESTfulAPI.ghc goto end ) if "%1" == "devhelp" ( %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp if errorlevel 1 exit /b 1 echo. echo.Build finished. goto end ) if "%1" == "epub" ( %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub if errorlevel 1 exit /b 1 echo. echo.Build finished. The epub file is in %BUILDDIR%/epub. goto end ) if "%1" == "latex" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex if errorlevel 1 exit /b 1 echo. echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdf" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf cd %~dp0 echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "latexpdfja" ( %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex cd %BUILDDIR%/latex make all-pdf-ja cd %~dp0 echo. echo.Build finished; the PDF files are in %BUILDDIR%/latex. goto end ) if "%1" == "text" ( %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text if errorlevel 1 exit /b 1 echo. echo.Build finished. The text files are in %BUILDDIR%/text. goto end ) if "%1" == "man" ( %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man if errorlevel 1 exit /b 1 echo. echo.Build finished. The manual pages are in %BUILDDIR%/man. goto end ) if "%1" == "texinfo" ( %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo if errorlevel 1 exit /b 1 echo. echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. goto end ) if "%1" == "gettext" ( %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale if errorlevel 1 exit /b 1 echo. echo.Build finished. The message catalogs are in %BUILDDIR%/locale. goto end ) if "%1" == "changes" ( %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes if errorlevel 1 exit /b 1 echo. echo.The overview file is in %BUILDDIR%/changes. goto end ) if "%1" == "linkcheck" ( %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck if errorlevel 1 exit /b 1 echo. echo.Link check complete; look for any errors in the above output ^ or in %BUILDDIR%/linkcheck/output.txt. goto end ) if "%1" == "doctest" ( %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest if errorlevel 1 exit /b 1 echo. echo.Testing of doctests in the sources finished, look at the ^ results in %BUILDDIR%/doctest/output.txt. goto end ) if "%1" == "coverage" ( %SPHINXBUILD% -b coverage %ALLSPHINXOPTS% %BUILDDIR%/coverage if errorlevel 1 exit /b 1 echo. echo.Testing of coverage in the sources finished, look at the ^ results in %BUILDDIR%/coverage/python.txt. goto end ) if "%1" == "xml" ( %SPHINXBUILD% -b xml %ALLSPHINXOPTS% %BUILDDIR%/xml if errorlevel 1 exit /b 1 echo. echo.Build finished. The XML files are in %BUILDDIR%/xml. goto end ) if "%1" == "pseudoxml" ( %SPHINXBUILD% -b pseudoxml %ALLSPHINXOPTS% %BUILDDIR%/pseudoxml if errorlevel 1 exit /b 1 echo. echo.Build finished. The pseudo-XML files are in %BUILDDIR%/pseudoxml. goto end ) :end python-ilorest-7.0.0.0/docs/API-Overview.rest0000664000175000017500000001342215116322125017424 0ustar zigozigo.. image:: /images/hpe_logo2.png :width: 150pt | .. toctree:: :maxdepth: 1 ============= API Overview ============= REST API Documentation ====================== For complete documentation of the iLO 4 and iLO 5 REST APIs see the `documentation `_. Why iLO RESTful API? ==================== This HPE RESTful API for iLO is the main management API for iLO and iLO Chassis Manager based HPE servers. Its feature set is becoming larger than the existing iLO XML API (RIBCL) and IPMI interfaces. Using this API, you can take full inventory of the server, control power and reset, configure BIOS and iLO settings, fetch event logs, as well as many other functions. This API follows the trend of the Internet in moving to a common pattern for new software interfaces. Many web services in a variety of industries use REST APIs because they are easy to implement, easy to consume, and offer scalability advantages over previous technologies. HPE OneView, OpenStack, and many other server management APIs are now REST APIs. Most HPE Management software offerings, as well as the entire Software Defined Data Center architecture, are built upon REST APIs. The HPE RESTful API for iLO has the additional advantage of consistency across all present and projected server architectures. The same data model works for traditional rack-mount servers, blades, as well as newer types of systems like Moonshot. This advantage comes because the data model is designed to self-describe the service’s capabilities to the client and has room for flexibility designed in from the start. For full documentation on the iLO 4 and iLO 5 implementations of the API, click `here `_. Redfish =================== Redfish is an open, industry-standard specification and schema, designed to provide simple and secure management of modern scalable hardware. Redfish is based on the tools and scripting environments most users already have, enabling feature-rich remote management compatible with existing toolsets. Redfish was built from the ground up to scale to the modern, multiple-server environments common in today’s enterprise, hyperscale, and cloud infrastructures. Redfish defines the industry standard for the software-defined data center (SDDC), and the effort to modernize heterogeneous data centers. HPE ProLiant servers provide iLO RESTful API extensions to Redfish, allowing you to take advantage of the full range of value-added API features. You can now benefit from adopting the Redfish standard into HPE ProLiant Gen8, Gen9, and Gen10 servers, as well as on other non-HPE server products that implement to the standard. More information on Redfish can be found on the `DMTF Redfish Website `_. Resource operations =================== RESTful APIs are stateless. The resource manager maintains the resource state that is reported as the resource representation. The client maintains the application state and the client might manipulate the resource locally, but until a PATCH or POST is made, the resource, as known by the resource manager, is not changed. +------------------------+---------------------------------+-----------------------------------------------------------+ | Operation | HTTP Verb | Description | +========================+=================================+===========================================================+ | Create | POST resource URI (payload = | Create new resources. A synchronous POST returns the newly| | | resource data) | created resource. | +------------------------+---------------------------------+-----------------------------------------------------------+ | Read | GET resource URI | Returns the requested resource representations. | +------------------------+---------------------------------+-----------------------------------------------------------+ | Update | PATCH resource URI (payload = | Updates an existing resource. You can only PATCH | | | update data) | properties that are marked readonly = false in the schema.| +------------------------+---------------------------------+-----------------------------------------------------------+ | Delete | DELETE resource URI | Deletes the specified resource. | +------------------------+---------------------------------+-----------------------------------------------------------+ Return codes ============ +------------------------+---------------------------------------------------------------------------------------------+ | Return code | Description | +========================+=================================+===========================================================+ | 2xx | Successful operation. | +------------------------+---------------------------------+-----------------------------------------------------------+ | 4xx | Client-side error with error message returned. | +------------------------+---------------------------------+-----------------------------------------------------------+ | 5xx | iLO error with error message returned. | +------------------------+---------------------------------+-----------------------------------------------------------+ python-ilorest-7.0.0.0/docs/index.rst0000664000175000017500000000375115116322125016155 0ustar zigozigo.. iLO RESTful API documentation master file, created by sphinx-quickstart on Fri Mar 11 11:34:15 2016. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. .. image:: /images/hpe_logo2.png :width: 150pt | | Python iLO Redfish Library ========================== The iLO Redfish Library is a python library built for interacting with systems that implement the **Redfish API**, which includes the HPE iLO RESTful API. The library is the platform on which the `RESTful Interface tool `_ was built on. The library can connect **remotely** to any BMC that implements a Redfish API via HTTPS or **locally** to an HPE server using the HPE CHIF interface and implements Redfish or Legacy Rest APIs. On top of this functionality, the library also offers remote and local support for the Legacy HPE iLO RESTful API that was the starting point for the DMTF Redfish standard. For more information on the HPE iLO RESTful API and Redfish see the `API overview `_. .. note:: HPE's Legacy Rest API is available starting in **iLO 4 2.00**. iLO 4 is Redfish conformant starting with **iLO 4 2.30**. In iLO 5 and above the iLO RESTful API is Redfish only. Documentation ------------- .. toctree:: :maxdepth: 1 API-Overview Installation-Guide Client-Quick-Start Advanced-Usage Monolith System-Compatibility Examples Frequently-Asked-Questions Reference Get in touch with the team -------------------------- If you have further questions, please contact the team: * `Matthew Kocurek `_ * `Tony Wang `_ * `Grant O'Connor `_ * `Matthew Whiteside `_ Contributors ------------- Contributors are listed `here `_. python-ilorest-7.0.0.0/Makefile0000664000175000017500000003325315116322125015024 0ustar zigozigoUNZIP=$(shell which unzip) EXPORT=$(shell which export) FIND=$(shell which find) ECHO=$(shell which echo) RM=$(shell which rm) PYTHON=$(shell which python) PYLINT=$(shell which pylint) NOSE=$(shell which nosetests) CREATE_CHROOT := /net/blofly.us.rdlabs.hpecorp.net/data/blofly/iss-linux-sdk/chrootbuilder/create_chroot.sh CHROOT := /net/blofly.us.rdlabs.hpecorp.net/data/blofly/iss-linux-sdk/chrootbuilder/tools/muchroot BUILD_DIR := $(shell pwd)/.blddir SOURCEDIR := $(shell pwd)/ ZYPPER := zypper --non-interactive install TOPDIR:=$(shell pwd)/topdir BUILD_DIR := $(shell pwd)/.blddir SRCROOT := $(shell pwd) CHROOT_LOCAL_DIR:= $(shell pwd) NAME:=ilorest VERSION:=2.4.0 RELEASE:=1 SPHINXBUILD:=$(BUILD_DIR)/pylib/Sphinx-1.0.7/sphinx-build.py BLOFLY := /net #CREATE_CHROOT := /net/blofly.us.rdlabs.hpecorp.net/data/blofly/iss-linux-sdk/chrootbuilder/create_chroot.sh CREATE_CHROOT := $(CHROOT_LOCAL_DIR)/chrootbuilder/create_chroot.sh #CHROOT := /net/blofly.us.rdlabs.hpecorp.net/data/blofly/iss-linux-sdk/chrootbuilder/tools/muchroot CHROOT := $(CHROOT_LOCAL_DIR)/chrootbuilder/tools/muchroot UNAME_SPOOF := /net/blofly.us.rdlabs.hpecorp.net/data/blofly/iss-linux-sdk/chrootbuilder/tools/uname_spoof export CHROOT_DESTDIR=/home ifdef MTX_PRODUCT_VERSION VERSION:=$(MTX_PRODUCT_VERSION) endif ifdef MTX_BUILD_NUMBER RELEASE:=$(MTX_BUILD_NUMBER) endif DEBCHROOTD := $(BUILD_DIR)/chroots/squeeze all: freeze-src rpms rpms: $(call freeze-chroot,x86_64) #$(CHROOT) $(DEBCHROOTD) bash -c 'useradd -m monkey' #cp "$(NAME)-$(VERSION).tar.bz2" $(DEBCHROOTD)/home/monkey #$(CHROOT) $(DEBCHROOTD) bash -c 'su - monkey -c "mkdir -p ~/build && cd ~/build && mkdir -p BUILD RPMS SOURCES SPECS SRPMS"' #echo "export LDFLAGS=-L/usr/local/ssl/lib/" > $(DEBCHROOTD)/home/monkey/c.sh #echo "export SL_INSTALL_PATH=/usr/local/ssl" >> $(DEBCHROOTD)/home/monkey/c.sh #echo "export OPENSSL_FIPS=1" >> $(DEBCHROOTD)/home/monkey/c.sh #echo "export LD_LIBRARY_PATH=/usr/local/ssl/lib/" >> $(DEBCHROOTD)/home/monkey/c.sh #echo "export CPPFLAGS=-I/usr/local/ssl/include/ -I/usr/local/ssl/include/openssl/" >> $(DEBCHROOTD)/home/monkey/c.sh #echo "rpmbuild -ta --define '_topdir /home/monkey/build/' /home/monkey/$(NAME)-$(VERSION).tar.bz2 " >> $(DEBCHROOTD)/home/monkey/c.sh #$(CHROOT) $(DEBCHROOTD) bash -c 'chmod a+x /home/monkey/c.sh' #$(CHROOT) $(DEBCHROOTD) bash -c 'su - monkey -c "/home/monkey/c.sh"' #cp -r $(DEBCHROOTD)/home/monkey/build/RPMS/ . #-find ./RPMS -type f -name '*-debuginfo-*.rpm' -exec rm -f {} \; #-find ./RPMS -type d -empty -exec rmdir {} \; ifdef MTX_COLLECTION_PATH #cp -r ./RPMS $(MTX_COLLECTION_PATH)/ # hpsign will error out if signing not successful hpsign --signonly `find /opt/mxdk/buildagent/work/MTX_COLLECTION_PATH -type f -name '*.rpm'` endif freeze-src: rm -rf hp git clone git@github.hpe.com:ess-morpheus/chrootbuilder.git $(CHROOT_LOCAL_DIR)/chrootbuilder define freeze-chroot rm -rf $(BUILD_DIR)/chroots # create the chroot $(CREATE_CHROOT) -d SLES12SP2 -a $1 -D $(DEBCHROOTD) #import keys cp -r $(CHROOT_LOCAL_DIR)/chrootbuilder/public_keys $(DEBCHROOTD)/ $(CHROOT) $(DEBCHROOTD) mkdir -p /usr/lib/rpm/gnupg/ #$(CHROOT) $(DEBCHROOTD) bash -c 'gpg --import /public_keys/*.asc' $(CHROOT) $(DEBCHROOTD) zypper --non-interactive install zlib-devel libffi-devel openssl $(CHROOT) $(DEBCHROOTD) zypper --non-interactive install libxml2-devel libxslt-devel ncurses-devel expat sqlite3-devel readline-devel bzip2 $(CHROOT) $(DEBCHROOTD) openssl version $(CHROOT) $(DEBCHROOTD) bash -c 'export LC_ALL=en_US.UTF-8' $(CHROOT) $(DEBCHROOTD) bash -c 'export PYTHONIOENCODING=UTF-8' #tar -xvf $(SRCROOT)/packaging/python3/openssl-1.0.2u.tar.gz -C $(DEBCHROOTD) #tar -xvf $(SRCROOT)/packaging/python3/openssl-fips-2.0.16.tar.gz -C $(DEBCHROOTD) #$(CHROOT) $(DEBCHROOTD) bash -c 'cd /openssl-fips-2.0.16 && ./config && make && make install && cd ..' #$(CHROOT) $(DEBCHROOTD) bash -c 'cd /openssl-1.0.2u && ./config fips shared --with-fipsdir=/usr/local/ssl/fips-2.0 -m64 -Wa,--noexecstack threads no-idea no-mdc2 no-rc5 no-krb5 no-ssl2 no-ssl3 enable-asm enable-camellia enable-seed enable-tlsext enable-rfc3779 enable-cms && make depend && make install' #$(CHROOT) $(DEBCHROOTD) /usr/local/ssl/bin/./openssl version #$(CHROOT) $(DEBCHROOTD) ln -s -f /usr/local/ssl/bin/openssl /usr/bin/openssl #$(CHROOT) $(DEBCHROOTD) openssl version #$(CHROOT) $(DEBCHROOTD) mv /usr/lib64/libcrypto.so.1.1 /usr/lib64/old_libcrypto.so.1.1 #$(CHROOT) $(DEBCHROOTD) mv /usr/lib64/libssl.so.1.1 /usr/lib64/old_libssl.so.1.1 #$(CHROOT) $(DEBCHROOTD) cp /usr/local/ssl/lib/libcrypto.so.1.0.0 /usr/lib64/ && \ #$(CHROOT) $(DEBCHROOTD) cp /usr/local/ssl/lib/libssl.so.1.0.0 /usr/lib64/ tar xf $(SRCROOT)/packaging/python3/Python-3.7.3.tgz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /Python-3.7.3 && ./configure --prefix=/usr/local/python3.7 --enable-shared --with-openssl=/usr/local/ssl/' $(CHROOT) $(DEBCHROOTD) make -C /Python-3.7.3 $(CHROOT) $(DEBCHROOTD) make -C /Python-3.7.3 install $(CHROOT) $(DEBCHROOTD) cp /usr/local/python3.7/lib/libpython3.7m.so.1.0 /usr/lib64/ $(CHROOT) $(DEBCHROOTD) cp /usr/local/python3.7/lib/libpython3.7m.so.1.0 /lib64/ #Added external packages $(CHROOT) $(DEBCHROOTD) bash -c '/usr/local/python3.7/bin/python3.7 -m ensurepip --upgrade' mkdir -p $(DEBCHROOTD)/collection/ $(CHROOT) $(DEBCHROOTD) bash -c 'update-alternatives --install /usr/bin/python3 python3 /usr/local/python3.7/bin/python3.7 1 && update-alternatives --config python3 && python3 --version' unzip $(SRCROOT)/packaging/ext/setuptools-50.3.2.zip -d $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /setuptools-50.3.2 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/pyinstaller-hooks-contrib-2020.10.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /pyinstaller-hooks-contrib-2020.10 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/python-dotenv-0.15.0.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /python-dotenv-0.15.0 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/altgraph-0.17.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /altgraph-0.17 && /usr/local/python3.7/bin/python3.7 setup.py install' #tar xfz $(SRCROOT)/packaging/pyinstaller/PyInstaller-3.6.tar.gz -C $(DEBCHROOTD) #$(CHROOT) $(DEBCHROOTD) bash -c 'cd /PyInstaller-3.6 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/jsonpointer-2.0.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /jsonpointer-2.0 && alias python3=/usr/local/python3.7/bin/python3.7 && python3 setup.py install && python3 setup.py bdist_rpm --dist-dir /collection/' tar xfz $(SRCROOT)/packaging/ext/six-1.15.0.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /six-1.15.0 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/ply-3.11.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /ply-3.11 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/decorator-4.4.2.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /decorator-4.4.2 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/jsonpatch-1.26.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /jsonpatch-1.26 && alias python3=/usr/local/python3.7/bin/python3.7 && python3 setup.py install && python3 setup.py bdist_rpm --dist-dir /collection/' tar xfz $(SRCROOT)/packaging/ext/jsonpath-rw-1.4.0.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /jsonpath-rw-1.4.0 && alias python3=/usr/local/python3.7/bin/python3.7 && python3 setup.py install && python3 setup.py bdist_rpm --dist-dir /collection/' tar xfz $(SRCROOT)/packaging/ext/setproctitle-1.1.10.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /setproctitle-1.1.10 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/pyudev-0.22.0.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /pyudev-0.22.0 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/jsondiff-1.2.0.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /jsondiff-1.2.0 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/pyaes-1.6.1.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /pyaes-1.6.1 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/urllib3-1.26.2.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /urllib3-1.26.2 && alias python3=/usr/local/python3.7/bin/python3.7 && python3 setup.py install && python3 setup.py bdist_rpm --dist-dir /collection/' tar xfz $(SRCROOT)/packaging/ext/colorama-0.4.4.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'export LC_ALL=en_US.UTF-8 && cd /colorama-0.4.4 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/tabulate-0.8.7.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /tabulate-0.8.7 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/wcwidth-0.2.5.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /wcwidth-0.2.5 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/prompt_toolkit-3.0.8.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /prompt_toolkit-3.0.8 && /usr/local/python3.7/bin/python3.7 setup.py install' tar xfz $(SRCROOT)/packaging/ext/certifi-2020.11.8.tar.gz -C $(DEBCHROOTD) $(CHROOT) $(DEBCHROOTD) bash -c 'cd /certifi-2020.11.8 && /usr/local/python3.7/bin/python3.7 setup.py install' #cp -r $(MTX_STAGING_PATH)/externals/*.zip packaging/ext #cp -r $(SRCROOT)/*.* $(DEBCHROOTD)/buildpwd #$(CHROOT) $(DEBCHROOTD) bash -c 'cd /' #unzip packaging/ext/python-ilorest-library-$(MX_ILOREST_LIB_VERSION).zip -d $(DEBCHROOTD) mkdir -p $(DEBCHROOTD)/buildpwd/ cp -r $(SRCROOT)/* $(DEBCHROOTD)/buildpwd $(CHROOT) $(DEBCHROOTD) bash -c 'update-alternatives --install /usr/bin/python3 python3 /usr/local/python3.7/bin/python3.7 1 && update-alternatives --config python3 && python3 --version && \ alias python3=/usr/local/python3.7/bin/python3.7 && cd /buildpwd/ && python3 setup.py bdist_rpm --dist-dir /collection/' mv $(DEBCHROOTD)/collection/*.noarch.rpm ${MTX_COLLECTION_PATH}/ endef bdist-rpm: zypper --non-interactive install rpm-build $(eval DIR=$(shell pwd)) $(eval ILOREST=$(DIR)/ilorest/src) $(eval PYTHONPATH=$(ILOREST):$(PYTHONPATH)) mkdir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/setuptools-2.2.tar.gz cd ./setuptools-2.2 && \ $(PYTHON) setup.py install tar xfz ./packaging/ext/PySocks-1.6.8.tar.gz cd ./PySocks-1.6.8 && \ $(PYTHON) setup.py install tar xfz ./packaging/ext/wheel-0.36.1.tar.gz cd ./wheel-0.36.1 && \ $(PYTHON) setup.py install unzip ./packaging/ext/recordtype-1.1.zip cd ./recordtype-1.1 && \ $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/pypandoc-1.4.tar.gz cd ./pypandoc-1.4 && \ $(PYTHON) setup.py install $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/jsonpointer-1.10.tar.gz cd ./jsonpointer-1.10 && \ iconv -f 'UTF-8' -t 'ASCII//TRANSLIT//IGNORE' jsonpointer.py > jp && \ cp -f jp jsonpointer.py cd ./jsonpointer-1.10 && \ rm jp cd ./jsonpointer-1.10 && \ $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/jsonpatch-1.16.tar.gz cd ./jsonpatch-1.16 && \ iconv -f 'UTF-8' -t 'ASCII//TRANSLIT//IGNORE' jsonpatch.py > jp && \ cp -f jp jsonpatch.py cd ./jsonpatch-1.16 && \ rm jp cd ./jsonpatch-1.16 && \ $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/jsonpath-rw-1.4.0.tar.gz cd ./jsonpath-rw-1.4.0 && \ $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/decorator-4.1.2.tar.gz cd ./decorator-4.1.2 && \ $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/six-1.10.0.tar.gz cd ./six-1.10.0 && \ $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/urllib3-1.23.tar.gz cd ./urllib3-1.23 && \ $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ tar xfz ./packaging/ext/ply-3.10.tar.gz cd ./ply-3.10 && \ $(PYTHON) setup.py bdist_rpm --dist-dir ${MTX_COLLECTION_PATH}/python2/ rm -rf ${MTX_COLLECTION_PATH}/*.src.rpm rm -rf ${MTX_COLLECTION_PATH}/python2/*.src.rpm define build-pkg tar xfz $(DEBCHROOTD)/buildpwd/packaging/ext/$1* -C $(BUILD_DIR)/buildpwd/ $(CHROOT) $(DEBCHROOTD) bash -c 'cd /buildpwd/$1 && python3 setup.py bdist_rpm --dist-dir /collection/' rm -r $(BUILD_DIR)/buildpwd/$1 endef #export LC_ALL=en_US.UTF-8 #export PYTHONIOENCODING=utf-8 bdist-rpm-python3: $(CREATE_CHROOT) -d SLES12SP2 -D $(BUILD_DIR) $(CHROOT) $(BUILD_DIR) $(ZYPPER) python3 python3-setuptools mkdir -p $(BUILD_DIR)/buildpwd $(BUILD_DIR)/collection/ cp -a $(SOURCEDIR)* $(BUILD_DIR)/buildpwd $(call build-pkg,recordtype-1.3) $(call build-pkg,pypandoc-1.4) $(call build-pkg,jsonpointer-2.0) $(call build-pkg,jsonpatch-1.26) $(call build-pkg,jsonpath-rw-1.4.0) #$(call build-pkg,decorator-4.1.2) $(call build-pkg,urllib3-1.26.2) $(call build-pkg,ply-3.11) $(call build-pkg,six-1.15.0) #cd $(BUILD_DIR)/collection/ && rename "" python3- *.rpm $(CHROOT) $(BUILD_DIR) bash -c 'cd /buildpwd/ && python3 setup.py bdist_rpm --dist-dir /collection/' #cd $(BUILD_DIR)/collection/ && rename python- python3- *.rpm mkdir ${MTX_COLLECTION_PATH}/python3/ mv $(BUILD_DIR)/collection/*.noarch.rpm ${MTX_COLLECTION_PATH}/python3/ rm -rf ${MTX_COLLECTION_PATH}/*.src.rpm rm -rf ${MTX_COLLECTION_PATH}python3/*.src.rpm python-ilorest-7.0.0.0/.project0000664000175000017500000000057215116322125015031 0ustar zigozigo redfish org.python.pydev.PyDevBuilder org.python.pydev.pythonNature python-ilorest-7.0.0.0/setup.py0000664000175000017500000000210315116322125015064 0ustar zigozigofrom setuptools import find_packages, setup extras = {} setup(name='python-ilorest-library', version='6.3.0.0', description='iLO Rest Python Library', author='Hewlett Packard Enterprise', author_email='rajeevalochana.kallur@hpe.com', extras_require=extras, classifiers=[ 'Development Status :: 5 - Production/Stable', 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', 'Programming Language :: Python :: 3.12', 'Topic :: Communications' ], keywords='Hewlett Packard Enterprise', url='https://github.com/HewlettPackard/python-ilorest-library', packages=find_packages('src'), package_dir={'': 'src'}, install_requires=[ 'jsonpatch', 'jsonpath_rw', 'jsonpointer', 'urllib3', 'six' ]) python-ilorest-7.0.0.0/MakefileSDK.ps10000664000175000017500000000607715116322125016074 0ustar zigozigo$START_DIR = "$(get-location)" $product_version = $Env:MTX_PRODUCT_VERSION if (!"$product_version") { $product_version = "9.9.9.9" } $build_number = $Env:MTX_BUILD_NUMBER if (!"$build_number") { $build_number = "999" } $app = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -match "Python*" } $app.Uninstall() #Get-Package "*python*" | Uninstall-Package -Force -Confirm if ( $LastExitCode ) { exit 1 } #Restart-Computer -Force #Set-Location -Path $START_DIR #if( Test-Path $START_DIR\python39 ) { Remove-Item $START_DIR\python39 -Recurse -Force } #Set-Location -Path $START_DIR #New-Item -ItemType directory -Path .\python39 Set-Location -Path "${START_DIR}\packaging\python3" #Start-Process -FilePath ./python-3.9.5-amd64.exe -ArgumentList "/quiet TargetDir=${START_DIR}\python39 InstallAllUsers=1 PrependPath=1 Include_test=0" -NoNewWindow -Wait & .\python-3.8.6-amd64.exe /quiet TargetDir=${START_DIR}\python39 InstallAllUsers=1 PrependPath=1 Include_test=0 Include_launcher=0 /log "%WINDIR%\Temp\Python39-Install.log" if ( $LastExitCode ) { exit 1 } Start-Sleep -Seconds 120 Set-Location -Path "${START_DIR}" if (-Not (Test-Path "${START_DIR}\python39")) { Write-Host "Python Not Installed" exit 1 } #New-Item -ItemType directory -Path .\lessmsi #& 7z x -y -olessmsi .\packaging\lessmsi\lessmsi-v1.3.zip #if ( $LastExitCode ) { exit 1 } #if( Test-Path $START_DIR\python-2.7.10.amd64 ) { Remove-Item $START_DIR\python-2.7.11.amd64 -Recurse -Force } #& $START_DIR\lessmsi\lessmsi x .\packaging\python\python-2.7.11.amd64.msi #if ( $LastExitCode ) { exit 1 } #$Env:PYTHONPATH="$START_DIR\src" #$PYTHON_AMD64 = "${START_DIR}\python-2.7.11.amd64\SourceDir\python.exe" # Create an exe from the python script $Env:PYTHONPATH="${START_DIR}\python39\Lib\site-packages" $PYTHON_AMD64 = "${START_DIR}\python39\python.exe" $PIP_AMD64 = "${START_DIR}\python39\Scripts\pip.exe" Set-Location -Path $START_DIR Function InstallPythonModuleZip($python, $name, $version) { Set-Location -Path "${START_DIR}" if( Test-Path .\${name} ) { Remove-Item .\${name} -Recurse -Force } New-Item -ItemType directory -Path "${START_DIR}\${name}" & 7z x -y "-o${name}" .\packaging\ext\${name}-${version}.zip Set-Location -Path "${START_DIR}\${name}\${name}-${version}" & $python setup.py install Set-Location -Path "${START_DIR}" } Function InstallPythonModule($python, $name, $version) { Set-Location -Path "${START_DIR}" if( Test-Path .\${name} ) { Remove-Item .\${name} -Recurse -Force } New-Item -ItemType directory -Path "${START_DIR}\${name}" & 7z x -y "-o${name}" .\packaging\ext\${name}-${version}.tar.gz & 7z x -y "-o${name}" "${START_DIR}\${name}\dist\${name}-${version}.tar" Set-Location -Path "${START_DIR}\${name}\${name}-${version}" & $python setup.py install Set-Location -Path "${START_DIR}" } InstallPythonModuleZip "$PYTHON_AMD64" "setuptools" "50.3.2" #InstallPythonModule "$PYTHON_AMD64" "setuptools" "2.2" Set-Location -Path ${START_DIR} & $PYTHON_AMD64 setup.py "sdist" "--formats=zip" Copy-Item ".\dist\*" "$Env:MTX_COLLECTION_PATH" python-ilorest-7.0.0.0/examples/0000775000175000017500000000000015116322125015174 5ustar zigozigopython-ilorest-7.0.0.0/examples/Redfish/0000775000175000017500000000000015116322125016560 5ustar zigozigopython-ilorest-7.0.0.0/examples/Redfish/get_base_registry.py0000664000175000017500000000416315116322125022637 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of getting the base message registry """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError def get_base_registry(_redfishobj): registries_uri = _redfishobj.root.obj['Registries']['@odata.id'] if registries_uri: registries_members = _redfishobj.get(registries_uri).obj['Members'] for registry in registries_members: sys.stdout.write("Registry URI at '%s'\n" % registry['@odata.id']) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() get_base_registry(REDFISHOBJ) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/configure_snmp.py0000664000175000017500000001011415116322125022145 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of configuring SNMP for HPE iLO systems """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def configure_snmp(_redfishobj, read_communities, snmp_alerts): snmp_service_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) snmp_service_uri = managers_members_response.obj.Oem.Hpe.Links['Snmp']['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeiLOSnmpService.' in instance['@odata.type']: snmp_service_uri = instance['@odata.id'] if snmp_service_uri: body = {"AlertsEnabled": snmp_alerts, "ReadCommunities": read_communities} resp = _redfishobj.patch(snmp_service_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #Properties: #read communities array READ_COMMUNITIES = ["public", "", ""] #alerts_enabled primitive (boolean) ALERTS_ENABLED = True # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() configure_snmp(REDFISHOBJ, READ_COMMUNITIES, ALERTS_ENABLED, DISABLE_RESOURCE_DIR) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/change_boot_order.py0000664000175000017500000001177615116322125022611 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of changing the boot order for HPE iLO systems """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def change_boot_order(_redfishobj, bios_password): bios_boot_uri = None bios_boot_response = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) bios_uri = systems_members_response.obj['Bios']['@odata.id'] bios_response = _redfishobj.get(bios_uri) bios_boot_uri = bios_response.obj.Oem.Hpe.Links.Boot['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeServerBootSettings.' in instance['@odata.type']: bios_boot_uri = instance['@odata.id'] break if bios_boot_uri: bios_boot_response = _redfishobj.get(bios_boot_uri) #Bios boot settings URI is needed bios_boot_settings_uri = bios_boot_response.obj['@Redfish.Settings']['SettingsObject']\ ['@odata.id'] #update BIOS password if bios_password: _redfishobj.bios_password = bios_password sys.stdout.write("Rotating the first boot device to the end of the boot order.\n") sys.stdout.write('Current Order:\n') boot_order = bios_boot_response.obj['DefaultBootOrder'] for indx, boot_device in enumerate(boot_order): sys.stdout.write('Pos ' + str(indx) + ' : ' + boot_device + '\n') device = boot_order.pop(0) sys.stdout.write("Rotating device: \'%s\' to the end of the boot order.\n" % device) boot_order.append(device) body = {'DefaultBootOrder': boot_order} resp = _redfishobj.patch(bios_boot_settings_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended Message"\ " Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success! Your system may need to be restarted.\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) else: sys.stderr.write("Unable to find Boot Order URI.\n") if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" BIOS_PASSWORD = None # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() change_boot_order(REDFISHOBJ, BIOS_PASSWORD) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/update_ilo_firmware.py0000664000175000017500000000763315116322125023164 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of updating firmware via HTTP URL """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def update_ilo_firmware(_redfishobj, fw_url, tpm_flag): body = dict() update_service_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI update_service_uri = _redfishobj.root.obj['UpdateService']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#UpdateService.' in instance['@odata.type']: update_service_uri = instance['@odata.id'] break if update_service_uri and fw_url: update_uri = _redfishobj.get(update_service_uri).obj['Actions']\ ['#UpdateService.SimpleUpdate']['target'] body["ImageURI"] = fw_url if tpm_flag: body["TPMOverrideFlag"] = tpm_flag resp = _redfishobj.post(update_uri, body) if resp.status == 400: try: print(json.dumps(resp.obj['error']\ ['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" # firmware file path and filename FIRMWARE_URL = "http://" # If a TPM module (Trusted Platform Module/ Cryptographic Co-processor) is installed/present # onboard then be sure to include this. TPM_FLAG = False # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = True try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() update_ilo_firmware(REDFISHOBJ, FIRMWARE_URL, TPM_FLAG) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/get_license_key.py0000664000175000017500000000767415116322125022301 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of getting an iLO license key for HPE iLO systems """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def get_license_key(_redfishobj): license_uri = None license_data = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) hp_hpe = next(iter(managers_members_response.obj.Oem)) license_collection_uri = managers_members_response.obj.Oem[hp_hpe].Links['LicenseService']\ ['@odata.id'] license_collection_response = _redfishobj.get(license_collection_uri) license_collection_members_uri = next(iter(license_collection_response.obj\ ['Members']))['@odata.id'] license_data = _redfishobj.get(license_collection_members_uri).dict license_uri = _redfishobj.get(license_collection_members_uri).dict['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeiLOLicense.' in instance['@odata.type']: license_uri = instance['@odata.id'] license_data = _redfishobj.get(license_uri).dict break if license_data: try: sys.stdout.write("\n\'License Info\': \'%s\'\n" % \ json.dumps(license_data['ConfirmationRequest']['EON'], indent=4, sort_keys=True)) except KeyError: sys.stdout.write("\n\'License Info\': \'%s\'\n" % \ json.dumps(license_data['LicenseKey'], indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() get_license_key(REDFISHOBJ) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/get_ilo_nic.py0000664000175000017500000001070315116322125021406 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of gathering all available Management NIC Data and parsing 'Interface_Enabled'. """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def get_ilo_nic(_redfishobj, get_enabled): ethernet_data = {} resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) manager_ethernet_interfaces = managers_members_response.obj['EthernetInterfaces']\ ['@odata.id'] manager_ethernet_interfaces_response = _redfishobj.get(manager_ethernet_interfaces) manager_ethernet_interfaces_members = manager_ethernet_interfaces_response.\ obj['Members'] for _member in manager_ethernet_interfaces_members: _tmp = _redfishobj.get(_member['@odata.id']).obj ethernet_data[_member['@odata.id']] = _tmp else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#EthernetInterfaceCollection.' in instance['@odata.type'] and 'Managers' in \ instance['@odata.id']: ethernet_uri = instance['@odata.id'] ethernet_interfaces = _redfishobj.get(ethernet_uri).obj['Members'] for _ethernet_interface in ethernet_interfaces: ethernet_data[_ethernet_interface['@odata.id']] = _redfishobj.\ get(_ethernet_interface['@odata.id']).dict break if ethernet_data: for ethernet_interface in ethernet_data: sys.stdout.write("\n\nShowing iLO NIC Info on: %s\n\n" % ethernet_interface) sys.stdout.write("\n\'Interface_Enabled\': \'%s\'\n" % json.dumps(ethernet_data\ [ethernet_interface][get_enabled], indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #Property InterfaceEnabled (This can be replaced with property key to obtain the #relevant property value. Be mindful of containers) GET_ENABLED = 'InterfaceEnabled' # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() get_ilo_nic(REDFISHOBJ, GET_ENABLED) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/get_ilo_ip.py0000664000175000017500000001042115116322125021242 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of getting the iLO Network Management Interface(s) IP Address(s) """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def get_ilo_ip(_redfishobj, DISABLE_RESOURCE_DIR): ethernet_data = {} resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) manager_ethernet_interfaces = managers_members_response.obj['EthernetInterfaces']\ ['@odata.id'] manager_ethernet_interfaces_response = _redfishobj.get(manager_ethernet_interfaces) manager_ethernet_interfaces_members = manager_ethernet_interfaces_response.\ obj['Members'] for _member in manager_ethernet_interfaces_members: _tmp = _redfishobj.get(_member['@odata.id']).obj ethernet_data[_member['@odata.id']] = _tmp else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#EthernetInterfaceCollection.' in instance['@odata.type'] and 'Managers' in \ instance['@odata.id']: ethernet_uri = instance['@odata.id'] ethernet_interfaces = _redfishobj.get(ethernet_uri).obj['Members'] for _ethernet_interface in ethernet_interfaces: ethernet_data[_ethernet_interface['@odata.id']] = _redfishobj.\ get(_ethernet_interface['@odata.id']).dict break if ethernet_data: for ethernet_interface in ethernet_data: sys.stdout.write("\n\nShowing iLO IPv4 Address Info on: %s\n\n" % ethernet_interface) print(json.dumps(ethernet_data[ethernet_interface]['IPv4Addresses'],\ indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() get_ilo_ip(REDFISHOBJ, DISABLE_RESOURCE_DIR) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/set_bios_iscsi.py0000664000175000017500000001134415116322125022136 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of setting an ISCSI boot instance for HPE iLO systems """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def set_bios_iscsi(_redfishobj, iscsi_properties): iscsi_uri = None iscsi_data = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) bios_uri = systems_members_response.obj['Bios']['@odata.id'] bios_response = _redfishobj.get(bios_uri) iscsi_uri = bios_response.obj.Oem.Hpe.Links['iScsi']['@odata.id'] iscsi_data = _redfishobj.get(iscsi_uri) else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeiSCSISoftwareInitiator.' in instance['@odata.type']: iscsi_uri = instance['@odata.id'] iscsi_data = _redfishobj.get(iscsi_uri) if iscsi_data: for indx, inst in enumerate(iscsi_data.obj['iSCSISources']): if iscsi_properties['iSCSIBootInstance'] == indx: iscsi_data.dict['iSCSISources'][indx].update(iscsi_properties) resp = _redfishobj.patch(iscsi_uri, {'iSCSISources' : iscsi_data.dict['iSCSISources']}) #If iLO responds with soemthing outside of 200 or 201 then lets check the #iLO extended info error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], \ indent=4, sort_keys=True)) except Exception as excp: print(json.dumps(resp.ori, indent=4, sort_keys=True)) sys.stderr.write("A response error occurred, unable to access iLO " \ "Extended Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success! A system reboot will be required to complete the change.\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) break if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #iscsi properties ISCSI_PROPERTIES = {"iSCSIBootInstance": 2, \ "iSCSITargetName": "Target", \ "iSCSIAttemptName": "Empty", \ "iSCSIConnectRetry": 5} # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() set_bios_iscsi(REDFISHOBJ, ISCSI_PROPERTIES) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/flash_firmware_by_uefi.py0000664000175000017500000001516115116322125023631 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of uploading firmware to the iLO Repository for flashing """ import os import sys import json import argparse from random import randint from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError import logging from redfish import redfish_logger from ilorest_util import get_resource_directory LOGGERFILE = "RedfishApiExamples.log" LOGGERFORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s" LOGGER = redfish_logger(LOGGERFILE, LOGGERFORMAT, logging.DEBUG) def upload_firmware(_redfishobj, firmware_loc, comp_type, update_repo=True, update_target=False): resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #resource directory is not available so we will navigate through paths manually update_service_uri = _redfishobj.root.obj['UpdateService']['@odata.id'] else: #obtain all account instances from resource directory for instance in resource_instances: if '#UpdateService.' in instance['@odata.type']: update_service_uri = instance['@odata.id'] print (update_service_uri) update_service_response = _redfishobj.get(update_service_uri) path = update_service_response.obj.HttpPushUri print (path) body = [] json_data = {'UpdateRepository': update_repo, 'UpdateTarget': update_target, 'ETag': 'atag', 'Section': 0} session_key = _redfishobj.session_key #ImageLocation = "c:\\test" #filename = "I41_2.40_08_10_2020.fwpkg" #ImagePath = os.path.join(ImageLocation, filename) #file_name = os.path.basename(firmware_loc) #print (ImagePath) with open(firmware_loc, 'rb') as fle: output = fle.read() session_tuple = ('sessionKey', session_key) parameters_tuple = ('parameters', json.dumps(json_data)) file_tuple = ('file', (filename, output, 'application/octet-stream')) #Build the payload from each multipart-form data tuple body.append(session_tuple) body.append(parameters_tuple) body.append(file_tuple) #print (body) #Create our header dictionary header = {'Cookie': 'sessionKey=' + session_key} print ('Begin upload....please wait...') # We pass the whole list payload to post resp = _redfishobj.post(path, body, headers=header) if resp.status == 400: sys.stderr.write("Failed to upload firmware...") elif not resp.status in [200, 201]: sys.stderr.write("An http response of '%s' was returned.\n" % resp.status) else: print("Upload complete!\n") def create_task(_redfishobj, firmware_loc, tpm_flag=True): session_key = _redfishobj.session_key #Create our header dictionary header = {'Cookie': 'sessionKey=' + session_key} updatable_by = ['Uefi'] task_path = '/redfish/v1/UpdateService/UpdateTaskQueue/' file_name = os.path.basename(firmware_loc) task_resp = _redfishobj.get(task_path) if not task_resp.obj["Members@odata.count"]: print ("No current tasks, proceed to create new task") update_task = {'Name': 'Update-%s-%s' % (str(randint(0, 1000000)), \ file_name), 'Command': 'ApplyUpdate',\ 'Filename': file_name, 'UpdatableBy': updatable_by, 'TPMOverride': tpm_flag} resp = _redfishobj.post(task_path, update_task, headers=header) #print (resp) if resp.status == 400: sys.stderr.write("Failed to create update task queue...") elif not resp.status in [200, 201]: sys.stderr.write("An http response of '%s' was returned.\n" % resp.status) else: print("Task Queue Creation complete!\n") if __name__ == "__main__": # Initialize parser parser = argparse.ArgumentParser(description = "Script to upload and flash NVMe FW") parser.add_argument( '-c', '--component', dest='comp_path', action="store", required=True, help="The path to the firmware file to upload", default=None) parser.add_argument( '-s', '--session_key', dest='session_key', action="store", required=False, help="Http session key for the server", default=None) parser.add_argument( '-i', '--ilo', dest='ilo_ip', action="store", required=False, help="iLO IP of the server", default=None) parser.add_argument( '-u', '--user', dest='ilo_user', action="store", required=False, help="iLO username to login", default=None) parser.add_argument( '-p', '--password', dest='ilo_pass', action="store", required=False, help="iLO password to log in.", default=None) options = parser.parse_args() system_url = "https://" + options.ilo_ip print (system_url) # Upload the firmware file to the iLO Repository update_repo_flag = True # Update the system with the firmware file update_target_flag = False comp_type = 'C' tpm_flag = True # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = True #system_url = "https://" + "15.146.46.49" #session_id = "515b196969f7d879886ee4a2da4ccba8" try: # Create a Redfish client object if options.session_key: redfish_obj = RedfishClient(base_url=system_url, session_key= options.session_key) else: redfish_obj = RedfishClient(base_url=system_url, username=options.ilo_user, password=options.ilo_pass) # Login with the Redfish client redfish_obj.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() upload_firmware(redfish_obj, options.comp_path, comp_type, update_repo_flag, update_target_flag) if comp_type == 'C': create_task(redfish_obj, options.comp_path, tpm_flag) redfish_obj.logout() python-ilorest-7.0.0.0/examples/Redfish/set_bios_password.py0000664000175000017500000001030315116322125022660 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of setting the BIOS password for HPE iLO systems """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def set_bios_password(_redfishobj, new_password, bios_password): bios_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) bios_uri = systems_members_response.obj['Bios']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#Bios.' in instance['@odata.type']: bios_uri = instance['@odata.id'] break if bios_uri: bios_data = _redfishobj.get(bios_uri) bios_change_pass_uri = bios_data.obj['Actions']['#Bios.ChangePassword']['target'] body = dict() body["PasswordName"] = "Administrator" body["OldPassword"] = bios_password body["NewPassword"] = new_password resp = _redfishobj.post(bios_change_pass_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #new BIOS password NEW_BIOS_PASSWORD = "password" #old BIOS password OLD_BIOS_PASSWORD = "password" # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() set_bios_password(REDFISHOBJ, NEW_BIOS_PASSWORD, OLD_BIOS_PASSWORD) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/modify_user_account.py0000664000175000017500000001316015116322125023174 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of modifying a user account """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def modify_ilo_user_account(_redfishobj, username_to_modify, new_loginname, new_username, \ new_password, role_id, privilege_dict): account_collection_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #resource directory is not available so we will navigate through paths manually to obtain #account info account_service_uri = _redfishobj.root.obj['AccountService']['@odata.id'] account_service_response = _redfishobj.get(account_service_uri) account_collection_uri = account_service_response.obj['Accounts']['@odata.id'] #modify role id if role_id: body = {"RoleId": role_id} else: #obtain all account instances from resource directory for instance in resource_instances: if '#ManagerAccountCollection.' in instance['@odata.type']: account_collection_uri = instance['@odata.id'] if privilege_dict: #HPE server, so modify privileges body = {"Oem": {"Hpe": {"Privileges": {}}}} for priv in privilege_dict: body["Oem"]["Hpe"]["Privileges"][priv] = privilege_dict[priv] if new_loginname: #modify login name body["Oem"]["Hpe"]["LoginName"] = new_loginname if new_username: body["UserName"] = new_username if new_password: body["Password"] = new_password #find the account to modify account_uri_to_modify = None account_uris = REDFISHOBJ.get(account_collection_uri) for account_uri in account_uris.dict['Members']: account = REDFISHOBJ.get(account_uri['@odata.id']) if account.dict['UserName'] == username_to_modify: account_uri_to_modify = account_uri['@odata.id'] break if not account_uri_to_modify: sys.stderr.write("Cannot find account to modify") return #modify the account resp = REDFISHOBJ.patch(account_uri_to_modify, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended Message "\ "Info...") elif resp.status != 200: sys.stderr.write("An http response of '%s' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #username of the account to modify USERNAME_TO_MODIFY = "bruce_wayne" #account login name to change the account to NEW_LOGINNAME = "joker" #account user name to change the account to NEW_USERNAME = "joker" #account password to change the account to NEW_PASSWORD = "joker123" #role to change account to ROLE_ID = "ReadOnly" #Administrator, ReadOnly or Operator are available #update HPE account privileges PRIVILEGE_DICT = {"iLOConfigPriv": False, "VirtualMediaPriv": False, "RemoteConsolePriv": True,\ "UserConfigPriv": False, "VirtualPowerAndResetPriv": False, \ "SystemRecoveryConfigPriv": False, "LoginPriv": True, \ "HostStorageConfigPriv": False, "HostNICConfigPriv": False, \ "HostBIOSConfigPriv": False} # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() modify_ilo_user_account(REDFISHOBJ, USERNAME_TO_MODIFY, NEW_LOGINNAME, NEW_USERNAME, \ NEW_PASSWORD, ROLE_ID, PRIVILEGE_DICT) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/ilorest_util.py0000664000175000017500000000456215116322125021657 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of getting the ilo information like ilo generation, version and resource directory for HPE iLO systems """ import sys from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError def get_resource_directory(redfishobj): try: resource_uri = redfishobj.root.obj.Oem.Hpe.Links.ResourceDirectory['@odata.id'] except KeyError: sys.stderr.write("Resource directory is only available on HPE servers.\n") return None response = redfishobj.get(resource_uri) resources = [] if response.status == 200: sys.stdout.write("\tFound resource directory at /redfish/v1/resourcedirectory" + "\n\n") resources = response.dict["Instances"] else: sys.stderr.write("\tResource directory missing at /redfish/v1/resourcedirectory" + "\n") return resources def get_gen(_redfishobj): rootresp = _redfishobj.root.obj #Default iLO 5 ilogen = 5 gencompany = next(iter(rootresp.get("Oem", {}).keys()), None) in ('Hpe', 'Hp') comp = 'Hp' if gencompany else None comp = 'Hpe' if rootresp.get("Oem", {}).get('Hpe', None) else comp if comp and next(iter(rootresp.get("Oem", {}).get(comp, {}).get("Manager", {}))).\ get('ManagerType', None): ilogen = next(iter(rootresp.get("Oem", {}).get(comp, {}).get("Manager", {})))\ .get("ManagerType") ilover = next(iter(rootresp.get("Oem", {}).get(comp, {}).get("Manager", {}))).\ get("ManagerFirmwareVersion") if ilogen.split(' ')[-1] == "CM": # Assume iLO 4 types in Moonshot ilogen = 4 iloversion = None else: ilogen = ilogen.split(' ')[1] iloversion = float(ilogen.split(' ')[-1] + '.' + \ ''.join(ilover.split('.'))) return (ilogen, iloversion) python-ilorest-7.0.0.0/examples/Redfish/get_SmartArray_EncryptionSettings.py0000664000175000017500000001126015116322125026011 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of gathering the smart array encryption settings on HPE iLO systems """ import sys from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def get_SmartArray_EncryptionSettings(_redfishobj, desired_properties): smartstorage_response = [] smartarraycontrollers = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) smart_storage_uri = systems_members_response.obj.Oem.Hpe.Links\ ['SmartStorage']['@odata.id'] smart_storage_arraycontrollers_uri = _redfishobj.get(smart_storage_uri).obj.Links\ ['ArrayControllers']['@odata.id'] smartstorage_response = _redfishobj.get(smart_storage_arraycontrollers_uri).obj['Members'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeSmartStorageArrayControllerCollection.' in instance['@odata.type']: smartstorage_uri = instance['@odata.id'] smartstorage_response = _redfishobj.get(smartstorage_uri).obj['Members'] break for controller in smartstorage_response: smartarraycontrollers[controller['@odata.id']] = _redfishobj.get(controller['@odata.id']).\ obj sys.stdout.write("Encryption Properties for Smart Storage Array Controller \'%s\' : \n" \ % smartarraycontrollers[controller['@odata.id']].get('Id')) for data in smartarraycontrollers[controller['@odata.id']]: if data in desired_properties: sys.stdout.write("\t %s : %s\n" % (data, smartarraycontrollers[controller\ ['@odata.id']].get(data))) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #list of desired properties related to Smart Array controller encryption DESIRED_PROPERTIES = ["Name", "Model", "SerialNumber", "EncryptionBootPasswordSet",\ "EncryptionCryptoOfficerPasswordSet",\ "EncryptionLocalKeyCacheEnabled", "EncryptionMixedVolumesEnabled",\ "EncryptionPhysicalDriveCount", "EncryptionRecoveryParamsSet",\ "EncryptionStandaloneModeEnabled", "EncryptionUserPasswordSet"] # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() get_SmartArray_EncryptionSettings(REDFISHOBJ, DESIRED_PROPERTIES) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/quickstart_redfish.py0000664000175000017500000000146415116322125023035 0ustar zigozigo# -*- coding: utf-8 -*- import sys import redfish # When running on the server locally use the following commented values # iLO_host = "blobstore://." # LOGIN_ACCOUNT = "None" # LOGIN_PASSWORD = "None" # When running remotely connect using the iLO address, iLO account name, # and password to send https requests iLO_host = "https://10.0.0.100" login_account = "admin" login_password = "password" ## Create a REDFISH object REDFISH_OBJ = redfish.RedfishClient(base_url=iLO_host,username=login_account, \ password=login_password) # Login into the server and create a session REDFISH_OBJ.login() # Do a GET on a given path response = REDFISH_OBJ.get("/redfish/v1/systems/1") # Print out the response sys.stdout.write("%s\n" % response) # Logout of the current session REDFISH_OBJ.logout()python-ilorest-7.0.0.0/examples/Redfish/enable_secure_boot.py0000664000175000017500000001065415116322125022757 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of enabling secure boot """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def enable_secure_boot(_redfishobj, secure_boot_enable): secure_boot_uri = None secure_boot_data = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI systems_uri = _redfishobj.root.obj['Systems']['@odata.id'] systems_response = _redfishobj.get(systems_uri) systems_members_uri = next(iter(systems_response.obj['Members']))['@odata.id'] systems_members_response = _redfishobj.get(systems_members_uri) secure_boot_uri = systems_members_response.obj['SecureBoot']['@odata.id'] secure_boot_data = _redfishobj.get(secure_boot_uri) else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#SecureBoot.' in instance['@odata.type']: secure_boot_uri = instance['@odata.id'] secure_boot_data = _redfishobj.get(secure_boot_uri) if secure_boot_data: print("\n\nShowing Secure Boot properties before changes:\n\n") print(json.dumps(secure_boot_data.dict, indent=4, sort_keys=True)) if secure_boot_uri: body = {'SecureBootEnable': secure_boot_enable} resp = _redfishobj.patch(secure_boot_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception: sys.stderr.write("A response error occurred, unable to access iLO Extended " \ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("\nSuccess!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) print("\n\nShowing Secure Boot properties after changes:\n\n") secure_boot_data = _redfishobj.get(secure_boot_uri) print(json.dumps(secure_boot_data.dict, indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #Properties: #secure boot enable property SECURE_BOOT_ENABLE = True # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() enable_secure_boot(REDFISHOBJ, SECURE_BOOT_ENABLE) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/import_ssl.py0000664000175000017500000001133615116322125021331 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of importing an SSL certificate for HPE iLO systems """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def import_ssl(_redfishobj, ssl_file_path): https_cert_uri = None body = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links['SecurityService']\ ['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) https_cert_uri = security_service_response.obj.Links['HttpsCert']['@odata.id'] else: for instance in resource_instances: #Use Resource directory to find the relevant URI if '#HpeHttpsCert.' in instance['@odata.type']: https_cert_uri = instance['@odata.id'] break if https_cert_uri: https_cert_import_uri = _redfishobj.get(https_cert_uri).obj['Actions']\ ['#HpeHttpsCert.ImportCertificate']['target'] body = dict() body["Action"] = "HpeHttpsCert.ImportCertificate" body["Certificate"] = ssl_cert resp = _redfishobj.post(https_cert_import_uri, body) #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) print("\nImporting SSL Certificate may take a few minutes...\n "\ "iLO will reset with new changes.\n") if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" SSL_FILE_PATH = "certificate.txt" # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() with open(SSL_FILE_PATH, 'r') as csr_data: ssl_cert = csr_data.read() csr_data.close() if ssl_cert: import_ssl(REDFISHOBJ, ssl_cert) else: raise Exception("Invalid SSL certificate.\n") REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/generate_csr.py0000664000175000017500000001274715116322125021606 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of generating a certificate signing request for HPE iLO systems """ import sys import json import time from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def generate_csr(_redfishobj, csr_file, csr_properties): csr_uri = None generate_csr_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links\ ['SecurityService']['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) csr_uri = security_service_response.obj.Links['HttpsCert']['@odata.id'] https_cert_response = _redfishobj.get(csr_uri) generate_csr_uri = https_cert_response.obj['Actions']['#HpeHttpsCert.GenerateCSR']\ ['target'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeHttpsCert.' in instance['@odata.type']: csr_uri = instance['@odata.id'] generate_csr_uri = _redfishobj.get(csr_uri).obj['Actions']\ ['#HpeHttpsCert.GenerateCSR']['target'] break if generate_csr_uri: body = dict() body["Action"] = "HpeHttpsCert.GenerateCSR" body["City"] = csr_properties["City"] body["CommonName"] = csr_properties["CommonName"] body["Country"] = csr_properties["Country"] body["OrgName"] = csr_properties["OrgName"] body["OrgUnit"] = csr_properties["OrgUnit"] body["State"] = csr_properties["State"] resp = _redfishobj.post(generate_csr_uri, body) if resp.status in [200, 201]: sys.stdout.write("Generating CSR, this may take a few minutes\n") sys.stdout.write("Sleeping for 5 minutes...\n") time.sleep(600) csr_resp = _redfishobj.get(csr_uri).dict['CertificateSigningRequest'] with open(csr_file, 'wb') as csroutput: csroutput.write(csr_resp) sys.stdout.write("CSR Data saved to file: '%s'\n" % csr_file) else: #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended #info error message to see what went wrong if resp.status not in [200, 201]: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO "\ "Extended Message Info...\n") if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #CSR Dictionary, each value should be updated to reflect the desired CSR CSR_DICT = {"City" : "City", "CommonName": "Common Name", "Country": "US", \ "OrgName": "Organization", "OrgUnit": "Unit", "State": "State"} #After CSR is generated, a file will be created and the CSR will be downloaded CSR_FILE = "csr.txt" # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() generate_csr(REDFISHOBJ, CSR_FILE, CSR_DICT) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/set_ilo_timezone.py0000664000175000017500000001073215116322125022505 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of setting the timezone for HPE iLO systems """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def set_timezone(_redfishobj, timezone): date_time_uri = None resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) date_time_uri = managers_members_response.obj.Oem.Hpe.Links['DateTimeService']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeiLODateTime.' in instance['@odata.type']: date_time_uri = instance['@odata.id'] if date_time_uri: data = _redfishobj.get(date_time_uri) if data.dict.get('TimeZone'): _data = {'TimeZone': {"Name": timezone}} resp = _redfishobj.patch(date_time_uri, _data) else: raise Exception("\'TimeZone\' property is not available/modifyable.\n") #If iLO responds with soemthing outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) print(json.dumps(data.obj.get('TimeZoneList'), indent=4, sort_keys=True)) sys.stderr.write("Check the TimeZone value...\n") except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended " \ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) ntp_data = _redfishobj.get(date_time_uri).dict.get('TimeZone') print("Printing updated NTP Servers:\n") print(json.dumps(ntp_data, indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" #timezone property (review the list of timezones ('TimeZoneList') within the DateTime URI. TIMEZONE = "US/Central" # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = True try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() set_timezone(REDFISHOBJ, TIMEZONE) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/test_ESKM_connection.py0000664000175000017500000001040515116322125023147 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of testing connection to the ESKM system for HPE iLO systems """ import sys import json from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError from get_resource_directory import get_resource_directory def test_ESKM_connection(_redfishobj): eskm_uri = None body = dict() resource_instances = get_resource_directory(_redfishobj) if DISABLE_RESOURCE_DIR or not resource_instances: #if we do not have a resource directory or want to force it's non use to find the #relevant URI managers_uri = _redfishobj.root.obj['Managers']['@odata.id'] managers_response = _redfishobj.get(managers_uri) managers_members_uri = next(iter(managers_response.obj['Members']))['@odata.id'] managers_members_response = _redfishobj.get(managers_members_uri) security_service_uri = managers_members_response.obj.Oem.Hpe.Links['SecurityService']\ ['@odata.id'] security_service_response = _redfishobj.get(security_service_uri) eskm_uri = security_service_response.obj.Links['ESKM']['@odata.id'] else: #Use Resource directory to find the relevant URI for instance in resource_instances: if '#HpeESKM.' in instance['@odata.type']: eskm_uri = instance['@odata.id'] break if eskm_uri: eskm_test_conn_uri = _redfishobj.get(eskm_uri).obj['Actions']\ ['#HpeESKM.TestESKMConnections']['target'] body["Action"] = "HpeESKM.TestESKMConnections" resp = _redfishobj.post(eskm_test_conn_uri, body) #If iLO responds with something outside of 200 or 201 then lets check the iLO extended info #error message to see what went wrong if resp.status == 400: try: print(json.dumps(resp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended "\ "Message Info...") elif resp.status != 200: sys.stderr.write("An http response of \'%s\' was returned.\n" % resp.status) else: print("Success!\n") print(json.dumps(resp.dict, indent=4, sort_keys=True)) if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" # flag to force disable resource directory. Resource directory and associated operations are # intended for HPE servers. DISABLE_RESOURCE_DIR = False try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) # Login with the Redfish client REDFISHOBJ.login() except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() test_ESKM_connection(REDFISHOBJ) REDFISHOBJ.logout() python-ilorest-7.0.0.0/examples/Redfish/sessions.py0000664000175000017500000000606215116322125021004 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of manually managing sessions with Redfish """ import sys import json from six.moves import urllib from redfish import RedfishClient from redfish.rest.v1 import ServerDownOrUnreachableError def sessions(_redfishobj, login_account, login_password): new_session = {"UserName": login_account, "Password": login_password} response = _redfishobj.post('/redfish/v1/Sessions', new_session) if response.status == 201: print("Success!\n") session_uri = response.getheader("location") session_uri = urllib.parse.urlparse(session_uri) sys.stdout.write("\tSession " + session_uri.path + " created.\n") x_auth_token = response.getheader("x-auth-token") sys.stdout.write("\tThis is the session X-Auth Token key " + x_auth_token + ".\n") print(json.dumps(response.dict, indent=4, sort_keys=True)) # Delete the created session sys.stdout.write("\tTerminating this session.\n") sessresp = _redfishobj.delete(session_uri.path) print(json.dumps(sessresp.dict, indent=4, sort_keys=True)) else: sys.stderr.write("ERROR: failed to create a session.\n") try: print(json.dumps(sessresp.obj['error']['@Message.ExtendedInfo'], indent=4, \ sort_keys=True)) except Exception as excp: sys.stderr.write("A response error occurred, unable to access iLO Extended" " Message Info...") if __name__ == "__main__": # When running on the server locally use the following commented values #SYSTEM_URL = None #LOGIN_ACCOUNT = None #LOGIN_PASSWORD = None # When running remotely connect using the secured (https://) address, # account name, and password to send https requests # SYSTEM_URL acceptable examples: # "https://10.0.0.100" # "https://ilo.hostname" SYSTEM_URL = "https://10.0.0.100" LOGIN_ACCOUNT = "admin" LOGIN_PASSWORD = "password" try: # Create a Redfish client object REDFISHOBJ = RedfishClient(base_url=SYSTEM_URL, username=LOGIN_ACCOUNT, \ password=LOGIN_PASSWORD) except ServerDownOrUnreachableError as excp: sys.stderr.write("ERROR: server not reachable or does not support RedFish.\n") sys.exit() sessions(REDFISHOBJ, LOGIN_ACCOUNT, LOGIN_PASSWORD) python-ilorest-7.0.0.0/examples/Redfish/set_snmp_alert.py0000664000175000017500000001426115116322125022155 0ustar zigozigo # Copyright 2020 Hewlett Packard Enterprise Development LP # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # -*- coding: utf-8 -*- """ An example of configuring SNMP alert for HPE iLO systems Usage: python