From 0208dea620680adf4ae04e06a74cbfe22ce02301 Mon Sep 17 00:00:00 2001 From: Takao Sumitomo Date: Tue, 8 Dec 2015 22:42:56 +0900 Subject: [PATCH 1/3] Updated Java D2xx driver and Java IntelHex Parser Library --- LICENSE-d2xx_jar.txt | 209 ++++++++++++++++++ physicaloid/build.gradle | 4 +- physicaloid/physicaloid.iml | 2 +- .../lib/programmer/avr/IntelHexFileToBuf.java | 2 +- .../java/cz/jaybee/intelhex/BinWriter.java | 91 ++++++++ .../jaybee/intelhex/IntelHexDataListener.java | 22 +- .../cz/jaybee/intelhex/IntelHexException.java | 42 ++++ .../cz/jaybee/intelhex/IntelHexParser.java | 136 ++++++++++-- .../jaybee/intelhex/IntelHexParserDemo.java | 148 +++++++++++++ .../jaybee/intelhex/IntelHexRecordType.java | 21 +- .../cz/jaybee/intelhex/MemoryRegions.java | 112 ++++++++++ .../cz/jaybee/intelhex/RangeDetector.java | 60 +++++ .../main/java/cz/jaybee/intelhex/Region.java | 111 ++++++++++ 13 files changed, 922 insertions(+), 38 deletions(-) create mode 100644 LICENSE-d2xx_jar.txt create mode 100644 physicaloid/src/main/java/cz/jaybee/intelhex/BinWriter.java create mode 100644 physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexException.java create mode 100644 physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParserDemo.java create mode 100644 physicaloid/src/main/java/cz/jaybee/intelhex/MemoryRegions.java create mode 100644 physicaloid/src/main/java/cz/jaybee/intelhex/RangeDetector.java create mode 100644 physicaloid/src/main/java/cz/jaybee/intelhex/Region.java diff --git a/LICENSE-d2xx_jar.txt b/LICENSE-d2xx_jar.txt new file mode 100644 index 0000000..1b5c8ca --- /dev/null +++ b/LICENSE-d2xx_jar.txt @@ -0,0 +1,209 @@ + + Driver Licence Terms +IMPORTANT NOTICE: PLEASE READ CAREFULLY BEFORE INSTALLING THE RELEVANT SOFTWARE: This licence agreement +("Licence") is a legal agreement between you ("Licencee" or "you") and Future Technology Devices +International Limited of 2 Seaward Place, Centurion Business Park, Glasgow, Scotland, G41 1HH (UK Company + Number SC136640) ("Licensor" or "we) for use of driver software provided by the Licensor ("Software"). + +BY INSTALLING OR USING THIS SOFTWARE YOU AGREE TO THE TERMS OF THIS LICENCE WHICH WILL BIND YOU. IF YOU +DO NOT AGREE TO THE TERMS OF THIS LICENCE, WE ARE UNWILLING TO LICENSE THE SOFTWARE TO YOU AND YOU MUST +DISCONTINUE INSTALLATION OF THE SOFTWARE NOW. + +1. Grant and scope of licence + +1.1 In consideration of you agreeing to abide by the terms of this Licence, the Licensor hereby grants + to you a non-exclusive, non-transferable, royalty free licence to use the Software on the terms of + this Licence. + +1.2 In this Licence a "Genuine FTDI Component" means an item of hardware that was manufactured for, and + sold by, the Licensor or a member of the Licensor's group of companies. It does not include any counterfeit + or fake products. + +1.3 If you are a manufacturer of a device that includes a Genuine FTDI Component (each a "Device") then + you may install the Software onto that device. If you are a seller or distributor of a Device then + You may distribute the Software with the Device. If you are a user of a Device then you may install + the Software on the Device, or onto a computer system in order to use the Device. + +1.4 In each of those cases you may: + +1.4.1 install and use the Software for your purposes only; and + +1.4.2 only use the Software in conjunction with products based on and/or incorporating a Genuine FTDI Component. + +1.5 The Software will not function properly on or with a component that is not a Genuine FTDI Component. + Use of the Software as a driver for, or installation of the Software onto, a component that is not + a Genuine FTDI Component, including without limitation counterfeit components, MAY IRRETRIEVABLY DAMAGE + THAT COMPONENT. It is the Licensee's responsibility to make sure that all chips it installs the Software + on, or uses the Software as a driver for, are Genuine FTDI Components. If in doubt then contact the Licensor. + + +2. If a custom vendor ID and/or product ID or description string are used, it is the responsibility of + the product manufacturer to maintain any changes and subsequent WHQL re-certification as a result of + making these changes. + + +3. Licensee's undertakings + +3.1 Except as expressly set out in this Licence or as permitted by any local law, you undertake: + +3.1.1 not to copy the Software, except where such copying is incidental to normal use of the Software or + where it is necessary for the purpose of back-up or operational security; + +3.1.2 not to rent, lease, sub-license, loan, translate, merge, adapt, vary or modify the Software or any + part of it; + +3.1.3 not to make alterations to, or modifications of, the whole or any part of the Software nor permit + the Software or any part of it to be combined with, or become incorporated in, any other programs; + +3.1.4 not to disassemble, de-compile, reverse engineer or create derivative works based on the whole or + any part of the Software; + +3.1.5 to keep all copies of the Software secure; + +3.1.6 to include the copyright notice of the Licensor on all entire and partial copies of the Software in + any form; and + +3.1.7 not to provide, or otherwise make available, the Software in any form, in whole or in part (including, + but not limited to, program listings, object and source program listings, object code and source + code) to any person. + + +4. Intellectual property rights + +4.1 You acknowledge that all intellectual property rights in the Software throughout the world belong to + the Licensor, that rights in the Software are licensed (not sold) to you, and that you have no rights + in, or to, the Software other than the right to use them in accordance with the terms of this Licence. + + +5. Warranty + +5.1 To the maximum extent permitted by applicable law, the software is provided "as is". + +5.2 All implied warranties, implied conditions and/or implied licences are excluded from this Licence, + including but not limited to implied warranties of quality and/or fitness for purpose (in all cases) + to the fullest extent permitted by law. + + +5.3 You acknowledge that the Software has not been developed to meet your individual requirements and that + the Software may not be uninterrupted or free of bugs or errors. + + +6. Licensor's liability + +6.1 To the maximum extent permitted by applicable law, in no event shall the Licensor be liable for any: + +6.1.1 special loss or damage; + +6.1.2 incidental loss or damage; + +6.1.3 indirect or consequential loss or damage: + +6.1.4 loss of income; + +6.1.5 loss of business; + +6.1.6 loss of profits; + +6.1.7 loss of revenue; + +6.1.8 loss of contracts; + +6.1.9 business interruption; + +6.1.10 loss of the use of money or anticipated savings; + +6.1.11 loss of information; + +6.1.12 loss of opportunity; + +6.1.13 loss of goodwill or reputation; and/or + +6.1.14 loss of, damage to or corruption of data; + +(in each case) of any kind howsoever arising and whether caused by delict (including negligence), breach +of contract or otherwise. + +6.2 FTDI's total liability to you in relation to the Software shall not exceed 500 US Dollars. + +6.3 Nothing in this Licence limits or excludes liability for death or personal injury or for fraud. + + +7. Termination + +7.1 The Licensor may terminate this Licence immediately if: + +7.1.1 you fail to comply with any of the terms and conditions of the Licence; or + +7.1.2 you commence or participate in any legal proceedings against the Licensor. + +7.2 Upon termination: + +7.2.1 all rights granted to you under this Licence shall cease; + +7.2.2 you must cease all activities authorised by this Licence; and + +7.2.3 you must immediately delete or remove the Software from all computer equipment in your possession + and immediately destroy all copies of the Software then in your possession, custody or control. + + + +8. Transfer of rights and obligations + +8.1 You may not transfer, assign, charge or otherwise dispose of this Licence, or any of your rights or + obligations arising under it. + +8.2 The Licensor may transfer, assign, charge, sub-contract or otherwise dispose of this Licence, or any + of his rights or obligations arising under it, at any time during the term of the Licence. + + +9. Waiver + +9.1 If the Licensor fails, at any time during the term of this Licence, to insist on strict performance + of any of your obligations under this Licence, or if the Licensor fails to exercise any of the rights + or remedies to which he is entitled under this Licence, this shall not constitute a waiver of such + rights or remedies and shall not relieve you from compliance with such obligations. + +9.2 A waiver by the Licensor of any default shall not constitute a waiver of any subsequent default. + +9.3 No waiver by the Licensor of any of these terms and conditions shall be effective unless it is expressly + stated to be a waiver and is communicated to you in writing. + + +10. Severability + +If any of the terms of this Licence are determined by any competent authority to be invalid, unlawful or +unenforceable to any extent, such term, condition or provision will to that extent be severed from the +remaining terms, conditions and provisions which will continue to be valid to the fullest extent permitted by law. + + +11. Entire agreement + +11.1 This Licence constitutes the whole agreement between us and supersedes any previous arrangement, + understanding or agreement between us, relating to the licensing of the Software. + +11.2 Each party acknowledges that in entering into this Licence it does not rely on any statement, representation, + warranty or understanding other than those expressly set out in this Licence. Each party agrees + that it will have no remedy in respect of any statement, representation, warranty or understanding + that is not expressly set out in this Licence. Each party agrees that its only remedy in respect + of those representations, statements, assurances and warranties that are set out in this Licence + will be for breach of contract in accordance with the terms of this Licence. + +11.3 The parties agree that nothing in this Licence will limit or exclude any liability they may have + for fraud. + + +12. Miscellaneous + +12.1 This Licence does not create a partnership or joint venture between the parties to it, nor authorise + a party to act as agent for the other. + +12.2 This Licence does not create any legal rights enforceable by any third party. + +12.3 This Licence may only be varied by express written legal agreement between the parties. + + +13. Law and jurisdiction + +This Licence, its subject matter or its formation (including non-contractual disputes or claims) shall +be governed by and construed in accordance with Scots law and submitted to the non-exclusive jurisdiction +of the Scottish courts. \ No newline at end of file diff --git a/physicaloid/build.gradle b/physicaloid/build.gradle index 66d4ce8..3951af8 100644 --- a/physicaloid/build.gradle +++ b/physicaloid/build.gradle @@ -6,12 +6,12 @@ apply plugin: 'com.github.dcendents.android-maven' apply plugin: 'com.jfrog.bintray' android { - compileSdkVersion 14 + compileSdkVersion 19 buildToolsVersion "23.0.2" defaultConfig { minSdkVersion 14 - targetSdkVersion 14 + targetSdkVersion 19 } buildTypes { diff --git a/physicaloid/physicaloid.iml b/physicaloid/physicaloid.iml index 3d36619..b49164d 100644 --- a/physicaloid/physicaloid.iml +++ b/physicaloid/physicaloid.iml @@ -81,7 +81,7 @@ - + diff --git a/physicaloid/src/main/java/com/physicaloid/lib/programmer/avr/IntelHexFileToBuf.java b/physicaloid/src/main/java/com/physicaloid/lib/programmer/avr/IntelHexFileToBuf.java index 70e1c4b..f5402a4 100644 --- a/physicaloid/src/main/java/com/physicaloid/lib/programmer/avr/IntelHexFileToBuf.java +++ b/physicaloid/src/main/java/com/physicaloid/lib/programmer/avr/IntelHexFileToBuf.java @@ -58,7 +58,7 @@ public void parse(String filePath) throws FileNotFoundException, IOException, Ex public void parse(InputStream is) throws FileNotFoundException, IOException, Exception { ihp = new IntelHexParser(is); - ihpd = new IntelHexParserRun(0, 0xFFFF); + ihpd = new IntelHexParserRun(0, 0xFFFFFF); ihp.setDataListener(ihpd); ihp.parse(); diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/BinWriter.java b/physicaloid/src/main/java/cz/jaybee/intelhex/BinWriter.java new file mode 100644 index 0000000..b7bb1f6 --- /dev/null +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/BinWriter.java @@ -0,0 +1,91 @@ +/** + * @license Copyright (c) 2015, Jan Breuer 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. + *

+ * 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. + */ +package cz.jaybee.intelhex; + +import java.io.IOException; +import java.io.OutputStream; +import java.util.Arrays; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Binary file writer + * + * @author Jan Breuer + * @license BSD 2-Clause + */ +public class BinWriter implements IntelHexDataListener { + + private final Region outputRegion; + private final OutputStream destination; + private final byte[] buffer; + private final MemoryRegions regions; + private long maxAddress; + private final boolean minimize; + + public BinWriter(Region outputRegion, OutputStream destination, boolean minimize) { + this.outputRegion = outputRegion; + this.destination = destination; + this.minimize = minimize; + this.buffer = new byte[(int) (outputRegion.getLength())]; + Arrays.fill(buffer, (byte) 0xFF); + regions = new MemoryRegions(); + maxAddress = outputRegion.getAddressStart(); + } + + @Override + public void data(long address, byte[] data) { + regions.add(address, data.length); + + if ((address >= outputRegion.getAddressStart()) && (address <= outputRegion.getAddressEnd())) { + int length = data.length; + if ((address + length) > outputRegion.getAddressEnd()) { + length = (int) (outputRegion.getAddressEnd() - address + 1); + } + System.arraycopy(data, 0, buffer, (int) (address - outputRegion.getAddressStart()), length); + + if (maxAddress < (address + data.length - 1)) { + maxAddress = address + data.length - 1; + } + } + } + + @Override + public void eof() { + try { + if (!minimize) { + maxAddress = outputRegion.getAddressEnd(); + } + destination.write(buffer, 0, (int) (maxAddress - outputRegion.getAddressStart() + 1)); + } catch (IOException ex) { + Logger.getLogger(BinWriter.class.getName()).log(Level.SEVERE, null, ex); + } + } + + public MemoryRegions getMemoryRegions() { + return regions; + } +} \ No newline at end of file diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexDataListener.java b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexDataListener.java index ea3ab60..a5d709f 100644 --- a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexDataListener.java +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexDataListener.java @@ -1,12 +1,11 @@ /** - * @license Copyright (c) 2012, Jan Breuer - * All rights reserved. + * @license Copyright (c) 2015, Jan Breuer 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 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 @@ -27,13 +26,26 @@ package cz.jaybee.intelhex; /** + * Listener interface to parser events * * @author Jan Breuer * @license BSD 2-Clause */ public interface IntelHexDataListener { + /** + * Every time new data are read from file, this listener method is called + * with appropriate values. Multiple calls of this function may be done + * inside one memory regions but they will not overlap (if they don't + * overlap in original intelhex). + * + * @param address + * @param data + */ public void data(long address, byte[] data); + /** + * After eof is detected in the file, this listener method is called + */ public void eof(); -} +} \ No newline at end of file diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexException.java b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexException.java new file mode 100644 index 0000000..6b34b44 --- /dev/null +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexException.java @@ -0,0 +1,42 @@ +/** + * @license Copyright (c) 2015, Jan Breuer 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. + *

+ * 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. + */ +package cz.jaybee.intelhex; + +/** + * Custom exception to prevent using general Exception + * + * @author Jan Breuer + * @license BSD 2-Clause + */ +public class IntelHexException extends Exception { + + public IntelHexException() { + } + + public IntelHexException(String message) { + super(message); + } +} \ No newline at end of file diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParser.java b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParser.java index 1c4a7ab..2577089 100644 --- a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParser.java +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParser.java @@ -1,12 +1,11 @@ /** - * @license Copyright (c) 2012, Jan Breuer - * All rights reserved. + * @license Copyright (c) 2015, Jan Breuer 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 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 @@ -33,53 +32,100 @@ import java.io.Reader; /** + * Main Intel HEX parser class * * @author Jan Breuer + * @author Kristian Sloth Lauszus + * @author riilabs * @license BSD 2-Clause */ public class IntelHexParser { - private BufferedReader reader = null; + private final BufferedReader reader; private IntelHexDataListener dataListener = null; private static final int HEX = 16; private boolean eof = false; private int recordIdx = 0; private long upperAddress = 0; + private long startAddress = 0; + /** + * Class to hold one Intel HEX record - one line in the file + */ private class Record { int length; int address; IntelHexRecordType type; byte[] data; + + /** + * Convert the record to pretty string + * + * @return + */ + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + + sb.append(type); + sb.append(" @"); + sb.append(String.format("0x%04X", address)); + sb.append(" ["); + for (byte c : data) { + sb.append(String.format("0x%02X", c)); + sb.append(" "); + } + sb.setLength(sb.length() - 1); + sb.append("]"); + return sb.toString(); + } } + /** + * Constructor of the parser with reader + * + * @param reader + */ public IntelHexParser(Reader reader) { - if (reader instanceof BufferedReader) { - this.reader = (BufferedReader) reader; - } else { - this.reader = new BufferedReader(reader); - } + this.reader = (reader instanceof BufferedReader) ? (BufferedReader) reader : new BufferedReader(reader); } + /** + * Constructor of the parser with input stream + * + * @param stream + */ public IntelHexParser(InputStream stream) { this.reader = new BufferedReader(new InputStreamReader(stream)); } + /** + * Set data listener to parsing events (data and eof) + * + * @param listener + */ public void setDataListener(IntelHexDataListener listener) { this.dataListener = listener; } - private Record parseRecord(String record) throws Exception { + /** + * Parse one line of Intel HEX file + * + * @param record + * @return + * @throws IntelHexException + */ + private Record parseRecord(String record) throws IntelHexException { Record result = new Record(); // check, if there wasn an accidential EOF record if (eof) { - throw new Exception("Data after eof (" + recordIdx + ")"); + throw new IntelHexException("Data after eof (" + recordIdx + ")"); } // every IntelHEX record must start with ":" if (!record.startsWith(":")) { - throw new Exception("Invalid Intel HEX record (" + recordIdx + ")"); + throw new IntelHexException("Invalid Intel HEX record (" + recordIdx + ")"); } int lineLength = record.length(); @@ -95,13 +141,13 @@ private Record parseRecord(String record) throws Exception { sum &= 0xff; if (sum != 0) { - throw new Exception("Invalid checksum (" + recordIdx + ")"); + throw new IntelHexException("Invalid checksum (" + recordIdx + ")"); } // if the length field does not correspond with line length result.length = hexRecord[0]; if ((result.length + 5) != hexRecord.length) { - throw new Exception("Invalid record length (" + recordIdx + ")"); + throw new IntelHexException("Invalid record length (" + recordIdx + ")"); } // length is OK, copy data result.data = new byte[result.length]; @@ -113,13 +159,19 @@ private Record parseRecord(String record) throws Exception { // determine record type result.type = IntelHexRecordType.fromInt(hexRecord[3] & 0xFF); if (result.type == IntelHexRecordType.UNKNOWN) { - throw new Exception("Unsupported record type " + (hexRecord[3] & 0xFF) + " (" + recordIdx + ")"); + throw new IntelHexException("Unsupported record type " + (hexRecord[3] & 0xFF) + " (" + recordIdx + ")"); } return result; } - private void processRecord(Record record) throws Exception { + /** + * Process parsed record, copute correct address, emit events + * + * @param record + * @throws IntelHexException + */ + private void processRecord(Record record) throws IntelHexException { // build full address long addr = record.address | upperAddress; switch (record.type) { @@ -139,7 +191,7 @@ private void processRecord(Record record) throws Exception { upperAddress = ((record.data[0] & 0xFF) << 8) + (record.data[1] & 0xFF); upperAddress <<= 16; // ELA is bits 16-31 of the segment base address (SBA), so shift left 16 bits } else { - throw new Exception("Invalid EXT_LIN record (" + recordIdx + ")"); + throw new IntelHexException("Invalid EXT_LIN record (" + recordIdx + ")"); } break; @@ -148,21 +200,57 @@ private void processRecord(Record record) throws Exception { upperAddress = ((record.data[0] & 0xFF) << 8) + (record.data[1] & 0xFF); upperAddress <<= 4; // ESA is bits 4-19 of the segment base address (SBA), so shift left 4 bits } else { - throw new Exception("Invalid EXT_SEG record (" + recordIdx + ")"); + throw new IntelHexException("Invalid EXT_SEG record (" + recordIdx + ")"); } break; - case START_SEG: case START_LIN: - throw new Exception(record.type + " record not implemented (" + recordIdx + ")"); + if (record.length == 4) { + startAddress = 0; + for (byte c : record.data) { + startAddress = startAddress << 8; + startAddress |= (c & 0xFF); + } + } else { + throw new IntelHexException("Invalid START_LIN record at line #" + recordIdx + " " + record); + } + break; + case START_SEG: + if (record.length == 4) { + startAddress = 0; + for (byte c : record.data) { + startAddress = startAddress << 8; + startAddress |= (c & 0xFF); + } + } else { + throw new IntelHexException("Invalid START_SEG record at line #" + recordIdx + " " + record); + } case UNKNOWN: break; } } - public void parse() throws IOException, Exception { + /** + * Return program start address/reset address. May not be at the beggining + * of the data. + * + * @return + */ + public long getStartAddress() { + return startAddress; + } + + /** + * Main public method to start parsing of the input + * + * @throws IntelHexException + * @throws IOException + */ + public void parse() throws IntelHexException, IOException { + eof = false; recordIdx = 1; upperAddress = 0; + startAddress = 0; String recordStr; while ((recordStr = reader.readLine()) != null) { @@ -172,7 +260,7 @@ public void parse() throws IOException, Exception { } if (!eof) { - throw new Exception("No eof at the end of file"); + throw new IntelHexException("No eof at the end of file"); } } -} +} \ No newline at end of file diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParserDemo.java b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParserDemo.java new file mode 100644 index 0000000..89bf16e --- /dev/null +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParserDemo.java @@ -0,0 +1,148 @@ +/** + * @license Copyright (c) 2015, Jan Breuer 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. + *

+ * 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. + */ +package cz.jaybee.intelhex; + +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.OutputStream; +import java.util.logging.Level; +import java.util.logging.Logger; + +/** + * Class to demonstrate usage of Intel HEX parser + * + * @author Jan Breuer + * @license BSD 2-Clause + */ +public class IntelHexParserDemo { + + /** + * Convert Intel HEX to bin + * + * usage: + * + * IntelHexParserDemo {source} {target} + * + * IntelHexParserDemo {source} {target} {address_from} {address_to} + * + * {source} is source Intel HEX file name + * + * {target} is target BIN file name + * + * {address_from} is start address e.g. 0x1D000000 or min + * + * {address_to} is end address e.g. 0x1D07FFFF or max + * + * if no address_from and address_to is specified, maximum range is used + * + * @param args the command line arguments + */ + public static void main(String[] args) { + String fileIn = "Application.hex"; + String fileOut = "Application.bin"; + String dataFrom = "min"; + String dataTo = "max"; + boolean minimize = false; + + if (args.length == 0) { + System.out.println("usage:"); + System.out.println(" hex2bin [minimize]"); + System.out.println(); + System.out.println(" full address range of app.hex"); + System.out.println(" hex2bin app.hex app.bin"); + System.out.println(); + System.out.println(" limited exact address range of app.hex, undefined data are 0xff"); + System.out.println(" hex2bin app.hex app.bin 0x0000 0x1fff"); + System.out.println(); + System.out.println(" limited minimal address range of app.hex, start at 0x0000,"); + System.out.println(" max address is 0x1fff, but can be lower"); + System.out.println(" hex2bin app.hex app.bin 0x0000 0x1fff minimize"); + return; + } + + if (args.length >= 1) { + fileIn = args[0]; + } + + if (args.length >= 2) { + fileOut = args[1]; + } + + if (args.length >= 3) { + dataFrom = args[2]; + } + + if (args.length >= 4) { + dataTo = args[3]; + } + + if (args.length >= 5) { + if (args[4].equals("minimize")) { + minimize = true; + } + } + + try (FileInputStream is = new FileInputStream(fileIn)) { + OutputStream os = new FileOutputStream(fileOut); + // init parser + IntelHexParser parser = new IntelHexParser(is); + + // 1st iteration - calculate maximum output range + RangeDetector rangeDetector = new RangeDetector(); + parser.setDataListener(rangeDetector); + parser.parse(); + is.getChannel().position(0); + Region outputRegion = rangeDetector.getFullRangeRegion(); + + // if address parameter is "max", calculate maximum memory region + if (!("min".equals(dataFrom))) { + outputRegion.setAddressStart(Long.parseLong(dataFrom.substring(2), 16)); + } + if (!("max".equals(dataTo))) { + outputRegion.setAddressEnd(Long.parseLong(dataTo.substring(2), 16)); + } + + // 2nd iteration - actual write of the output + BinWriter writer = new BinWriter(outputRegion, os, minimize); + parser.setDataListener(writer); + parser.parse(); + + // print statistics + System.out.printf("Program start address 0x%08X\r\n", parser.getStartAddress()); + System.out.println("Memory regions: "); + System.out.println(writer.getMemoryRegions()); + + System.out.print("Written output: "); + System.out.println(outputRegion); + + + } catch (IntelHexException | IOException ex) { + Logger.getLogger(IntelHexParserDemo.class.getName()).log(Level.SEVERE, null, ex); + } + } + +} \ No newline at end of file diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexRecordType.java b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexRecordType.java index ac2c866..bdd562d 100644 --- a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexRecordType.java +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexRecordType.java @@ -1,12 +1,11 @@ /** - * @license Copyright (c) 2012, Jan Breuer - * All rights reserved. + * @license Copyright (c) 2015, Jan Breuer 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 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 @@ -27,6 +26,7 @@ package cz.jaybee.intelhex; /** + * Type of one record in Intel HEX file (type of line) * * @author Jan Breuer * @license BSD 2-Clause @@ -46,10 +46,21 @@ public enum IntelHexRecordType { this.id = id; } + /** + * Convert enum value to integer + * + * @return + */ public int toInt() { return id; } + /** + * Convert integer value to enum value + * + * @param id + * @return + */ public static IntelHexRecordType fromInt(int id) { for (IntelHexRecordType d : IntelHexRecordType.values()) { if (d.id == id) { @@ -58,4 +69,4 @@ public static IntelHexRecordType fromInt(int id) { } return IntelHexRecordType.UNKNOWN; } -} +} \ No newline at end of file diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/MemoryRegions.java b/physicaloid/src/main/java/cz/jaybee/intelhex/MemoryRegions.java new file mode 100644 index 0000000..35c6a80 --- /dev/null +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/MemoryRegions.java @@ -0,0 +1,112 @@ +/** + * @license Copyright (c) 2015, Jan Breuer 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. + *

+ * 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. + */ +package cz.jaybee.intelhex; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; + +/** + * Class to hold all memory address regions + * + * @author Jan Breuer + * @author riilabs + * @license BSD 2-Clause + */ +public class MemoryRegions { + + private final List regions = new ArrayList<>(); + + public void add(long start, long length) { + Region prevRegion; + if (regions.size() > 0) { + prevRegion = regions.get(regions.size() - 1); + long nextAddress = prevRegion.getAddressStart() + prevRegion.getLength(); + if (nextAddress == start) { + prevRegion.incLength(length); + return; + } + } + regions.add(new Region(start, length)); + } + + public void compact() { + Collections.sort(regions); + + Iterator iter = regions.iterator(); + Region prev = null; + while (iter.hasNext()) { + Region curr = iter.next(); + if (prev == null) { + prev = curr; + } else { + // check for chaining + if (curr.getAddressStart() == (prev.getAddressStart() + prev.getLength())) { + prev.incLength(curr.getLength()); + iter.remove(); + } else { + prev = curr; + } + } + } + } + + public void clear() { + regions.clear(); + } + + public int size() { + return regions.size(); + } + + public Region get(int index) { + return regions.get(index); + } + + public Region getFullRangeRegion() { + long start = 0; + long length = 0; + if (!regions.isEmpty()) { + start = regions.get(0).getAddressStart(); + Region last = regions.get(regions.size() - 1); + length = last.getAddressStart() + last.getLength() - start; + } + + return new Region(start, length); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + + for (Region r : regions) { + sb.append(r).append("\r\n"); + } + + return sb.toString(); + } +} \ No newline at end of file diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/RangeDetector.java b/physicaloid/src/main/java/cz/jaybee/intelhex/RangeDetector.java new file mode 100644 index 0000000..78d1ede --- /dev/null +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/RangeDetector.java @@ -0,0 +1,60 @@ +/** + * @license Copyright (c) 2015, Jan Breuer 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. + *

+ * 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. + */ +package cz.jaybee.intelhex; + +/** + * First pass listener to calculate data address range for further use + * + * @author riilabs + * @author Jan Breuer + * @license BSD 2-Clause + */ +public class RangeDetector implements IntelHexDataListener { + + private final MemoryRegions regions = new MemoryRegions(); + + @Override + public void data(long address, byte[] data) { + regions.add(address, data.length); + } + + @Override + public void eof() { + regions.compact(); + } + + public void reset() { + regions.clear(); + } + + public Region getFullRangeRegion() { + return regions.getFullRangeRegion(); + } + + public MemoryRegions getMemoryRegions() { + return regions; + } +} \ No newline at end of file diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/Region.java b/physicaloid/src/main/java/cz/jaybee/intelhex/Region.java new file mode 100644 index 0000000..510cfb3 --- /dev/null +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/Region.java @@ -0,0 +1,111 @@ +/** + * @license Copyright (c) 2015, Jan Breuer 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. + *

+ * 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. + */ +package cz.jaybee.intelhex; + +/** + * One memory region + * + * @author Jan Breuer + * @license BSD 2-Clause + */ +public class Region implements Comparable { + + private long addressStart; + private long addressEnd; + + public Region(long start, long length) { + this.addressStart = start; + this.addressEnd = start + length - 1; + } + + /** + * Get length of the region + * @return + */ + public long getLength() { + return addressEnd - addressStart + 1; + } + + /** + * Return last address in memory region + * @return + */ + public long getAddressEnd() { + return addressEnd; + } + + /** + * Set end address + * @param addressEnd + */ + public void setAddressEnd(long addressEnd) { + this.addressEnd = addressEnd; + } + + /** + * Get start address of the region + * @return + */ + public long getAddressStart() { + return addressStart; + } + + /** + * Set start address + * @param addressStart + */ + public void setAddressStart(long addressStart) { + this.addressStart = addressStart; + } + + /** + * Increment length of the region by value + * @param value + */ + void incLength(long value) { + addressEnd += value; + } + + @Override + public String toString() { + return String.format("0x%08x:0x%08x (%dB 0x%08X)", addressStart, addressEnd, getLength(), getLength()); + } + + /** + * Compare, if one region is after another region + * + * @param o + * @return + */ + @Override + public int compareTo(Region o) { + if (this.addressStart == o.addressStart) { + return Long.compare(this.addressEnd, o.addressEnd); + } else { + return Long.compare(this.addressStart, o.addressStart); + } + } +} \ No newline at end of file From a20c74ab81373d5927bfb4e64ecb19202aa4ddeb Mon Sep 17 00:00:00 2001 From: Takao Sumitomo Date: Tue, 8 Dec 2015 22:50:58 +0900 Subject: [PATCH 2/3] Add new d2xx.jar --- physicaloid/libs/d2xx.jar | Bin 86099 -> 131697 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/physicaloid/libs/d2xx.jar b/physicaloid/libs/d2xx.jar index be24cf972770086d5f714c5265746be0aeff9770..aea713f5b63a9bef95e488bf6bbe464a5fa1845c 100644 GIT binary patch delta 112354 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 D?M|jT delta 67053 zcmZs?V|3p^y9L^)v2CYGW7}q98%_SPo%|Zxwr$(Ct;TNLIJte_^Wolg&Yd-Djh;_4 zYwu^x>^(PuFbla*NQ$x$kQiTJU|_zmIP;6dA#p?gx0UsSta11^o+W~$|Ihp_`G3a= zxM0-(?ZoF2rIhW1VK%sf<%0cpCWRpYj3|Kz0s{cq6G&oyX!EYmHEz^b4gBRvCO_=0 zXqt_mfTZCHqoAeJ8XJ!9;!=QV=&%7@Y^AweMUsUGflCua+e1e7`2{X;G4I;%>G3*z zClGudAg2CP09OiL{?zvXQ7Yrk-w;nXw9 zj}|C-d=>xZ^ZR9O?OsulC)L3zn}<3HHo)is%xhR7#oFzA7daq=<&EwT+#Ix~=XbvT z9B-e+(BrkALfhMZqTGzpwq!GJh*+^h1G0aSnY!R)n zjZYt^-pN-T?Ej8HH_$tgFz#A`KKS=hz*{61o|;{{iN6g@!a({fwdOa+BwKZUf;01_} zp^BymfoI?tk8Sf~jk5cxX;u|gK+@UM>yaDgi_6-fX@;psQz%n;;#Ri?PJ!#pju^^I z10_`#j!AifYaN3VsGd=4)%=u8?BwHVao-n{x>c8iqkTJv#L{uxpF1Fz1|AS9PBdjM ze9MLd9QDg*2O|IOO8Bu`EUfB4Z3E>l8&YnQ*@y{0@SQ)J_BJ5boAyYyZTGN(T_#Kw z3^QCCvlNr@3VyW7|916}p{+6yqVegk6@p%uvo>FK21z(X{zl3wcT@ZmpGK{5g>f>d zO>YLZY{c)8<)Vwr&4;Vzh|j#ta9NjB(1V{4EO@EN!|^la3P)^LQ)wE-B@2+~yXl9b z&lBfZ9h}vj6DxVRY=F|5n@~f)%D$tvro&C~&+`vwjJT6oFX({$3%X5n-BtWe4bF_Y z)K=x)^+M$5HK0Z*JHISBNE?-&udA#!r25;E0Sk(vG?*8kiTm(reUAEbP#JC&O@r08 zQHmgA7z`b0U_HVLhG21Rfeo0JaU0KB<{bxT=%g;eZ9#i-lB^;R4)N`XP9fsCn0Pip z^6MADyTsPQx<*x`fIlcv*Mh7!JoW)^NdH1x?zB0L!G8S?el-BmxT8KUPzgKVVHdg& z;XXPTfG{?3NeE6n7*cw77zXV$)H|Euy`NlfN1bpwWuZfa>W(29N&;ZkoQdh4&h7$T zf+5#NelZq3QSX!``Gjw&z5DCJ740Y&6au8z()=51zx^2UgYF&q{AN<0?(<)59JS-( zdzDr(7|i{A3Amj>voo;X`UzGx5YEiz<=ThRevBuJHKmZ2GCzkUt#^*x;S5-A?sbU< z7LK^-ug#*`%JWY~VSycn6DBNE_-+}nuyQNITquK*d3?%RWzMw2GTV{MXsnL+S=(s4 z-?-@C#){fTL!wB}!B{Oa1mnoR2A>oqwKt^v`2qyoeWi~ko4SK#RD|L_ zJF#8j*#W&aaiFq^Myd@^c4#N5sxr=D_FTLRG3%};&dC$9O8j8udiTk%KzuO|GU$a1 zwJ(fdAUNegkZfn`uj^uVWs|V%+m%90-JZIqsP&tzAvqmk>QCD$YgkQPR~|?z3se&Q zaW=)Sn{`&PyAG(HAyikHI1#eB4D_$avu{@RR9BkhM(bGN$YhO->hIG@SdA7Mvu}E& z|H@#JxbkJeTmE6BDHve(PEb*4kUQ`~iMCu*yY|9vTkjiSbl$RR^p2FUe8sHbWgCew zfOLT{wG-tQS3sBO8h0+A$0pnt7Bo*0Gy+p3-`E^N5dbtg41-sQoW0?wz3=lf(dLUp=Ma`WVbjc99_<(eQu`{(3Inw+-I`mRzhk=*pG@9eHiR%NkxdS)T_j-q=TD5KlaSo(m91 zV+7Gm^eA=|*Ibcucs|w#j^j4GuyWqFh4}Wy>nymkdBdV0e)d=HM|_*(K>0B!ZTTv* zu`<0Y_J<8h-ff^DvDSpk&%8A1^y(NCN#+R24`9Ug6pXz<&zU@%Yf6owkBW~3B z9Qt|=oYd)yk9#7nDCJonA_R28wm3i(bmBfXPK>{i@x z83Yt`LX14|@C~i(L;m=UvGeQrSt4^+&ppnrAKBe4HLjx!i{>mUl5O|(i7LAw6UQBD zN4LKPL=~NKLs;H}1L_XFiZ_iFbjhTONgo@4)bGWe=MguU$(LaF4L-R6mv&g!LspvE zBZ$hhe}&!WtNesel!b;t{qg&h1^UaEABbPR{J#nMKM6S@1nGN1FB~jj|Mq=h~lE2$BFuqd`O&)AF9A|n>J7qil@p-xU5d8vDRij3bL^RjyIn7A!PF~ww zjA*2@&!~ZMqpKntWE!^t7F_65I0-hen`>s;kT?NbGnA-t9b@b z#BFd-G{0#D?~nPs4WA?A`J04;F(FvO6bOb3bQTE@Z6NqapW5dduNl`hZKK#mai;r| z>N_B8S30f4@93FHftzqG^KNOT|3c()ZNUj%7#pv^#6IXgJ^qUWjQ2@|7H~xxVM^j4 z^=wOuf?p};W9}X!?l@Wp=N-74McLVRja_1PopmI4#Yg<+|JsF5-ZZXvhyN#Bb;7F9 z-JZdviKj)EZfPP2&8EqFSELMQ$RV^>EVl0VHV!nuDeVu zP~m=2t5Le3$`p|qViV0bPhmUBy$QD;K+$IcJ-kbl)&mm$uR9HQO^4N#;Rp&9PpP|7 z$k>SH2ROk|#rsgJf=l*TIbDz`KSwWkcL-m!yO$R4swaAYD$VR4VNR(^4$-^6ttRn) z25__+Z>^!AdVhR|P#A3B#?wrKsB=ei9TvR%z7C8X;KS0gmP#DsDdu=?qxf4u;RWyN zw*+~+Kf(<@Dxm4vr;7&1aSG>SZQe)Bv(GhTAk3974y;f%mVy%}<*ua0lA{VI z;rk6-y3VTwzgwfWb*s34|7gq#>~$safP!6;(_-N6j?=fWnl_(+eL@w7H;4< z5X#t^FeQ%I%<*jTMSlqgA>M@%T=HuXJjx3@_?L$B#FG*0ths!h+oMbb^93*k*M^~E zn6eS&-vTYj8l%Rn-QmsAb~)yio1%VHo4*2A;mTP+SMmwa36->L;6^ADn8Ww!1z&J; zm$f?JW!w_i;~FwMX$U48XaT!qc%{nrV>QoOMf?#(>5qw`$1l=D>`X->V-b%)&>^R3 z;z+8}N3Zz0)i^p`!nW$ipvJh$rt(KW^0*)vegjxWONX^onb?gMiH{$AB6H-G(y;iR zp#PP?HRX30Ba{}HHL|rAdz#*+z=_5Xi*`R+upYWlksbi-KQP|e&>GEv`10la>;Dgo z?ch>({lJm41g?2;>XC22@kluU750D8HBkR2dfJ63CFc+fA%Pu@7ns(+cjJR4dix?M zQ<)8kEoN_MdH#5&wzTm&LHkRu^5<_$l70 zQs%K_at0B+yA`7~S-t`&a1z5Zf%Lfe(=%4kkUUh88ss*Wv(1$K)p7-&s7CGvAT!#) zyeZ{~*m8*!mIzY010Z$?htxnrJKNcg!PJ|IK}0&WT+#*$g>K+EH?>}497W~6v>0=0hts9IF=nYnrHoGGpaPnP+zSErS_hF_@mcPmEyM?#yN^&bdOzfF_CI4 zXb&$b;*iUKod^sP{B}V5o{DPqyP=iU2o;3TFk^pY6bLvT14bG9;WOE*B`w*^ABjS@ z)`Vc&{BQ)vFJI)0zk^0!5l1m4ypXz@-Xqf(U6<9mpbNW33PtN;@SN?HP@Ogh2E6;V zev=YTMAZjkM*9AvS7?}0o=6{OurFV9!TAt$j_gaa7uYwvL1+VS<~R%QYlx@3 zNT>Cp%8B^d5Z00srw`Viw9}lP9$$#mK1TvMKYhoFVLy%LsDZV86O*K5mjz~e1__NI zpTQwol~lDq4oVTCYOw$hTZ~+RF;8+`8!#%H?LU2X_tFQ3z42GFT1bn$ctDYGf8o7i3P8Bf&SL9@yKS4;-uUheOi*9%Ia;GLn+{CXCt$#e{=RbB2gsD zYj6>vJi12yg3>+!=HM_W2=W$g*jaA}x$8E=h4G5$K(-o1wSq5caPJ^)P(E_lAtF$| zgig1^dXc}w7(-8X0LNAZm!?1KX3wLkh2MyGd2c8I_Is=Lor-b380VwZQhO|eS_%Ox zn52^(T53LXZVB-6`E1sf5b7cvIR0Z?xHA_TcJez8C2(AMl>$FZ@Cg^D`58fdLbXP3 zn>^qU=4IYtTXCr3xKR~>1{h5Ul%(_UP(~CB={ONEsDJ-iH4IA6p~h)|nJlu3l7<|G zxyLCDoZN?W)w~`RGlVQUe*_ig(R>^uW`ub+`q=>#5C6a12%N?~Bv5JlRinxb4;PSK z+;I14{YTWL?e|bwY3FHiInauB5XcU`7Bk^!`!i`M9_zN=~C!chni-`z5gM)-v3LBcGwcY zn8KzIiVyo_KMpz-gqGAO`0f`1rURKoQ6VXE?q3I?UK@XKJ!>~gw*r1QaEZlnU4uQB zhSrymqtS5Nmub|rCu=MT0$bZ)t3#g9i2bh02Ys`}-*JG>b~vO}Z%pmTLM_2Y=v!q< z$J`L{QW-DR!ukNJJWi|>ve7^ysF52$lPY-@@29aUnuXBGuryDVDG_S=-xvQa4@~I- zF;})R6VTHsd|sY%zqL9=f4Kz_nMou1S$naMn~jboqL2;9JW=hH zy9t^Gt(6(tOzPEwW-#0~V2Ry?w|gVP!=w-L%Gd8ds8_3(57oYE%QobM)hC)kTLm6| zPLt5RTfwRKz1|4EM$$K~kvlW#n5;M;JF&k+&+vNt2jO`k<+Qu+?B<_09K@D))cN$$ zm2%InzxbtaUa(z<+jPLqyLGa;#&dzux~uf`R9*6Rn%|$@s(A}N68-1k=FUA_lK$~z z+5h3mgub%>W+?cC7+e?t)?0O{?X$b>aaxXwGd74s6#T1}92IHYP_9uKXCAu;$T8|byv%`G3G3lo2jKQDX=zQww% zbm)f(3EC=7B#)HY_%;C!f@&Z{TomTiIVW_-z8r2>w-g;ws55jL9Nw^QccL_?LVqZ6 zBQ|k2Mp85`3TM3hG(lwV((hVmRys}2wXU^1oTjI}cxq*Hv1z!czG7%&{p9Xdm|s`^*Upob&oDs6E3UQL(C)B&uQJ@|omQw_={E$dGS1I>HTq^SUaLTQhnJRm z88S_N^#Lr9D$T;Ux22)d5KCw1gSbbE@>Px(t99^Ec|U7zteJCMj+}~SW))MvfG;ms zR@*|wVwKdjEpNc!YqV7Lp_XXAeKkl}F*g4O<&K}R(bW{DqEU0}#@^zd0r_oYukvqS zqJCe3rq>4G!@gY|6oFM8*ycSfmf*3DS6hKEdA-cG#L4c)7Nr{rI-M^xYK+?)Drv?m zFRIj`KU$Nl#fEon=VNkAh-}jHwX2w+ts7;c`$CMd?2q`i%~1@Zsk8*lRibj$)j6y1 zxI5~GuAs5L71l~9Ov`5JHWXXAG!W016x*MdzuN%HS!cm<{+8<1H{YP-rFZhDHCE_; zXq}&Hubov@U-{#YTS&8{+xN2mPM+2u^x7FrC3x!i z#}S#riJd%=cMj!^iHqD|O5F@m zUdma@8~k8`c*?FwkZ`?Ou2{gc#J2O{ahcV=am`l9a!w8)A-m!#ah?6bcl$);qLkU4 zyMVPG-q<*~sZ0C!S!R7#8vr!l2(Sbt2WQClj+JiiQX{%W44h^)(2MBW%;ZWUPR;=o z?9i~Sv?Ht)pM?x%6&(99qNtBFfv}DJPB5)2_2EyFDh! zW8Cn1&NO;dkhW+M)w3Xoz7;CYK(fAKzwL)U3mrorF6uK212>XQqR?PS8x}o$5!3}B zEg3836u$U1G4fQ?_{z%pEZ=DmtOi&B;oCsh*3CW(ht>b6bvwC-XeYWKCb>v5xS++g zVS;`~IW>v2(QQnyojsL!K?R2tp_@uo_|A|f<%PW^*TQ81GspiSmt|YD@yq(U(@#hf z(%{D77eD++gdLpGssIT#3#NP_m^TAniprLWHrg%OTs0AMm?%s#;>{o`<{01{WbA@v z^>;8fi!!>)pacRuRt~3%@U({U>>Ty&)tQIlsXvu|t~=ZBPixJ$1YbF1o)a+052@p& zQ&J=B5||euYBY2u7tIp#dzjQ4fdXF9a7G5)t%kM}=9jR5XtG!|JbcGjjfl@keT~#D&yTof(E(5&IlplTKQ>Ub7erFb4ERNZ~&fPH)G!%%+6YV4JKro}hd~s`g ziu4!$GlKi%Dm1rFHVANU`Pm_rH$iY;;}9_cj{Tkx-A6fuY5enstA$;wezjNy87eEX zLONQID0DcYeTbhvym21eh2>@A*;px#x>p<@JkP$iq`Z_0g(m#oPlD$AS%?pr!`-h2 z-TS<2q9cT??EI1;o#JU8b1*38tzL=0%%#lc+#W3Lm9VZ-d)$ERV&Oz!i2l(5UoqUm z^dW5SIGC!3(DH$!Lk3&NpR?xXv-G8H?aBl1tdel|DVY0v)rmBP?7uhSOP+{I3fa-= zmqDI1Uk6AfQz4}70@kv_`La7DG@|#(_6?~fwJ2_!+GRkI83bhAUGhKN3@ zV3za&Cd+(oW~uqfa*E@e4%#bLaY3Vo04B)G-#&_kV7UV-3~Z9D z@b7o*lrNqPyKq@QcA@fT&aNcwLw{XIRWlan7AfclmWhkM2g3-cRaOV?$mc#w(HP$i zlxljnE4VG}Q-^k{9-HMq(R^7SJ0aqCnePbS^AR`1+-(Ffxfrg`^@zhq{YirRxs=;t zor9;B>c@>-5dFunaS;MV=XW8xgnxbiS)w_`ZIKMZX%JLOi>hB?9M>NnR)tTg)Hy~s zd*y*%5tU3>_XD4j=i!V%v%`ir{Wh7i)W+Ty&%Q{rct4>}&q|WM5op@QOMoCYr32F+ z#Oth2tIY*?v8`@!hCZvb7YHY+n}jpg=gn9Ik4$KvK<(@|xO@-*M5Ut8CUtd8JzPy@ z`h=l2mI(I{u}0N(7;@-Hlm^_ub;_n_ht~#@g(j?om;eU3}BJ| zLXF+!bP1%$84Jl|k|fxS$o9N1o%Y#`S!N=Ga5V*JO@l*1c`*`voEf#5qR;tAdPn0( z5oz$jw@y^QiV5~c%1-ba6Wyt2bxUf5VHzwxgMY*;ZB=2Carv0E^e*#VbSL!CDZd2C zVMj;J2d?zT=q(Sc7ZvKYE@}kHZc#0^OC8rNER=#mAykl=h4J2Wcns)nyCIfZq>-2m z%I^TY^}uI-8l*%wf=A(RR&qC5s|wsi^(Z?DtqxZBkqZ1KBpzd<;RyHIXC~8&ac<>R z?_pj`<#RH0yb9*Ley~F}UAJ7G46j`9PL;hf5{G3&-7Y5Bf!r=2_;h=E$=07=(l2>{ z9JgGF2da`#qZ_C_bhyAcBMF4wU+@BTJk$VL0g^iYpbN!hqm)?hx8#yMS{Peqgk=5E>?h&PbOWe964^QVSa$G)xjIMq*wMsbifdb$6D2 z5+6A22#59BeJN{fG`kfK&K*CY(*b6*X+HCd>BY0NLIJnaPRYP*ehk)0!xVA&_C&x3 zP3hq`ZBw778ym%y^T8cJ9a*EH9Ut;0*u)NlEMVUiqN9@WSPtE&3;6tn^tsPly=sJE zHGY#B^)oL&6sXaXV7RHnw_6w!RoZ)|jMgX1Su6<&Yq#{fLPo}|&-hvh~b(8S*=$mE#^WG9HsK=CsM3E(RFqGkaz2IQlnpH2{wOUN1}JRVXLz zi17h*43gsgVUo_DK7TQn`Ew_kjZZKm*xV}J=Z(f0pUf1oX#zQquu)xr_mu8gSJK>M z`}m-9X1^w4y6)u5@QO-{_f=kQW{%ey|7aiV_k?AB7@|`lkmGb11>0}b}-7H|a3egEsBH5J7?bvjN9VdZ;{8N01 z0!k!=^RDm9Fu(H+X?vrSpwBT;`=&xI)S;DPDNs$BRa0QStpL>-AoC2} zm{?Qdxh;ME6ynTql@I^)^@U?ciuXyfF~ctZ_4(%uF7h1X6V?m*jtudQ&53~BG5Ds? z&s*1Q6R+e6o1TKJal#?uKSN*L?**uDqB?`{`Cm`Yri%ymnB`W~%Vml<#E68CtOoAi zLoCdbwrq%t^#C=bmICKg+jR+CTd#c-GrdBG?&O+3Jb(M&$VE+afP=nz{@4sZrm~O= z&sMK4m-Qg2Wz&vK>tG^cCuVBZUYn*?T}r>CbVi*HNyt9p{uN2B)ut?V3Sr@^O=A?Bi+FW~bt;j7P>k#3 zs!bNCeRj;1cG{V@&Dw3&c_T~JdP5Z6#;fQLkqNTw!xveMVR2PJQ8m*DYf ztbND`Y(U?Vs35wW*rfds`-3h6kFs4S#}g_V3V8BMYIUb<2Vs6X@tTFTbYb8Yf3kS= zr%u2x$Uh-l+%eAE5YMRwl}XjjNr!)TV_-4Wrph!)M`0~Q>JQX8fq45s#{HC?4pGi< zyJ1jA^8C9X$QN>wljZ(=qJN~TK|~8aGG7q*`@NPmrs@5{z4rbKFE3K9m6t!Sv^_sr z8gO}h;dN?h^!q(?K{I)zZGaCd2K~A>E&JxegaO?ZtA0zwm1R_;_g%^%-m)X59uvC_ zGwUa{mTIM3@v{sPy|N=Hh$YB-T=k{W5xh#RSSe+%xK>#RLdGZ@@hd$(f+Lu{p=v;z zZfK-!0a|t+tK?cP)H%*fnir^nk8S|Q8z7r+I%anC9Q0$ZADMTFUzMaOA}ES1rag4D z+lnP|6Qe}=EH>QRV(Z<#nRReWn;JrIt{79Nw#l z6{n{q*Y5azN;O#%6#i_=!10JeZAm8moffWnjyq`M#2U32DhOuwJ0|Lx`V>l53UJOd zNcpSES#X9C=jfJCpKCG#{)S^x7U>#9cxG!Nps{AbE03i~FW8%Nijz;^GK6yKU#HBZ z46aK>PbtM=M&6bvpI8(4JMCCG3XQ5}Ub0F?&__RPo?9leJ&8*ZKk-=8+QNnu%cx)h z#ZJEywgxf7FDHh=AjI^`raNX02k^reTOu&hlG;b{4N#wG^p|{=(t}^?CG;wygT0a_+ov_iLpZFkABwO~wVSm*%&;G@ zn?sw;QDTr+>RwkB2v9I7s2VMX+8lmh*`H4FP!~q$9a7z<5@1drHwfY;1MZS0*5_kO z=_i8zBtS8nq;BvAh6i>0y9#{|mpqMwz8d}xy{;cKnQ3+lvJg;N{Br2nI)}-o)fQh& ztw9=EUD)<}N~2mHHr`R?d`wEqt1!=L_8z~T#qCxrIJkL%6crS^?dOGb*FIct^oM7( z^$U9%m_d z-xlHGxbM=GIG+Rb>-&n)*oJaZTT_9md#I}`8EyBugz(f1&e7fD9iW@M)2GZDuTU}!==uK}8 zVNofw2Ra*F%dx>Z7NL9GnOyYGQu3x1T^rbF*3e465-Y*GH_#B3`i<{3upT$qZlV}O zYG|=B4;qIqbq7R0UYUxFQq8lRiPnY4?Ir^xRwg=?EZXnrw!?;JXZNkS z!7t$_t86JG`;g|{V{+l?qUIgD$`?%8;h*i4Ws(@{T^U6dXs*yL_*yb}r{dNPK}0*L zd@*|VYHsyQ00uGK6sFrRa_lesBgX|;NmIl}855>-+s#q+C{b>< z{&MEHR5X^TZHo!Hf310hvt*&p_`WO4juv=Y_-V^TEZrvZH4pMkqb=AB zZY0$^Vc5Cd>94iYC7){cdLdu2s`aeW2{yFJJS2`;069lA=zf)+GFxYF@7|341Oc|} zAg#5z(j~=)V3sBAakX=c;C8t0%O$1k8_HJAMa$M}8>KF1ApazS+J78EvT}KG%Wdk*O-CetHZ!AWE)PljVPK~JJ9L>3Qvc>Ir13OEKF*B zz3+_g?Lmg0`Z|fWgEEC*6)NCBgJ+ude)!D3|0Yvp5^8x^G#b~5!7p)W%iAx5vs*f+ z%xB$*p|W)*AON27JjUVJc1hN8tbg#^I|MhU1BgZ(2v0W?#|S=vofh*YdGM;;Q-krh zqL%GK(!cjfFaDG3afV!~x+M+2q}M3cU5PxI!NE?@I##kF6z5IK(|GJ-Ws<|mh z3Sb3eH4LV#eSV|Meik&k!Kih|)8vDv%ZA2c1dB-V8=~#qV>i5!HN4@eeZs7LqOWy_ z(Cmbz(+9@_AhGNqBHX?W?zR1h8d@+hy7A`0B31|;a-zawq;iDFu{K7^y{WYswXpv^RQco?L0m!v!GsrL8T4Zws$uyNUDrQK?vTyW%mckRLVcN7&pr_Z@@ASwM!Yi-Iyi@-F?-xAx|Yo3^%i;iZ!Njm}Ez-;Sq52uDyO*BW?^AfTqD=3)9Aa7+@$^~Y z5=R94yo${U2FC_zp_8l`6djFHctp(;XjAaZZ|Q(Zb($>Q+-#uDe2Q-R{MDQKM|WR- z#NS^259whbC4B}N?BHrv`kiQ|<=Pu^Mo@Y96Z}8w#GQ{1nHbKOFI1=;|69iWk6TsY z=$~6vhsEfB+^P+|tSw-0|6_dpudfEBm;sPgK^I2(2$ruWt;Q+%tpg!23W3naIrjt^ zC6OmqZ~_`bs#UG;u;sw`9LT`7%jU933NJc5KZ~iqNYmrQF)m^`{d4;9a-PlD;|qLz z%?<7N{(=*H=Gstufcw+P#nGpWX@5!1WSUJ?3@5(gC0*a*WZChb^D}9MKltNklnxMl zsgCef-AIbg&#FkkAr@JmQ{>3Nv3%ir45A72L_cM%;m~Lon~D{jL^X*hKjyy zi}>9bqbwZ@n6+hae2nW}{f$souD62EzQrCy3`xEnzGl2?a4Fv*MzKsG{B`LjO{sKf zh+oZ|g5FG?i;U+R!cg2F$5=4}+HQc>Za%}?JjztDy zK!-yn1tegmatbNI^qnKl2xrndWPEvV6m=p2-FyWdX8?q`-M1_Bn(k~ z8pV;LmoHh^R=zPW11q;z8P59IS-2xRz@1q_lVaUcwh+$nkbBp;{{B%!bO%J_F<7<+ z()ceBhWs?cxnkdHR;(>lCP=|`jVywod5-vQC1sMz^c>N=ZQ){b!I)!CA*y3xwt;y$ zvQHnw=jn&p)kM}6)C{+-ha7d}ZYL059YX|3 zo)xePPvl5Nj+J;8RM{fIwEKy|3*T8ThDb=NNd3*{*Co|+tQ%M@Smg!aH>mTY<_o4^ zd44EmC|M@N*))Ecw-W`J31CPj963m+wA^CRSkg<%MkxAYb1>1Oc7a@qar;tE^?LjY zAx-qpJ{|%?!aU4pO{i0dxlJzw>p;a1+i7du?|4WqmF5oh9Zw=N#_=YK7myx@j5u0S zS*wF(svNhNxlHdH;ZqoOe z_;q97%ga)63;iFUq9r;s8vN6LbN`qA3(han&{qZv`#(3Vt~OXojQ;?if%YjT<# zktw;56u8mMFqu@M8VqDuy|fTk6AuMCjx?3gPjCxN2LtUU7ieAkA$995G{w!cU~LWE z^5x~_E^Qr~_sXgbw`m_cssvO2=9}YA-p6dO>9*tScf=on*G|9}B;}q*VbrgSEo?DX zk(_}eSzJa7#SVZ|3X$NqMp9kk+dc}@9Gp!Qf)$L&O57HUhp@aCF49@u22zYLMwsDc z)Dsy0I_Krxz|H5ZT$dXQuKJ(f^JXrR|A~u{gE2@PO+jy?2W4%t$BUj6#d4%i=~gBY z+M=i;`f$N#$;rivOe|`n^bu9AeXx{w0dc_=vaLp&>xMw1kqHwX-U^luKLac&1ynZ& z8nQTkK)soJjZVB!Cv8VtdlhIazu8^BFt3S{VAl!h+{FYu_|fdtrzvjQ#wSRCn76+l zuI0LJyeH&XVYQ455t}&A!gs~X;W(v5Y$YfkA$6ydYh9T*d?-0^xh2T>rpT%w&ro#5 z%Ko@fZWGvo&8_^I;%rk`XJ#Y|Aq(>6v~+qh5oSWuMGuco#lH&7CXOC58&Tyh9TB!M zb>&+Zqy7_IFi|g{BR{oA8G(iJb?Pe5iJg7K%g`tN7RnoPU@DKgLbFMCW`5XR z&#F{_z&d@(I1)A3d7#eO7W<1t;`#Tp{$%%7W?g{T+0Mj%#wJVg8|c<4e-|#&h_7o_r+%l(b%HN|}^*W=r8=8%Zn3q1IQA zS|3{=?P@R^D>`tW6-GzKYiqf})`RXZ(r?^JN4bpkrfd_!9FC@J8^R2?rmFk7 zIlMfZeVVFIy<`jmxeSm@GeyiheK3*tMx+@lev2f(p#E(SL1e!L@fnQCCocr7VOYeT z1++Ldk|C7(b8Y;?UoYFqK4z}uEq(ac!9ZXm!{EhdMf2}KmfWwjm$-m^2XI<1I*cC= zY9`$=ig4NW1yBo?&<}P_n*k^(v|O2%JH9GJEutj(_8y))l1#f(h_? zwKGpdQwfE^&2{)T*=&6$@Sx9oyF)Z(3S_;4bF*2^ngp1D0_5C$zUnnqVoS_za0@`9 z;^fWqZyN|E6vNo!&abNDK7?qs@2jaE6NU(#iJF4k)@}Tpe~Sfgm%I7~N6x zTGk)`IMDcE&fcn1+`B+a+f~lxOUWJ^F-OA;FOvaM^KWMnD)QU=R^bgdn=j^j*2L3f z2=DsM1exSgbP~!Nv3=t}cEFud-!@QFHuTU1_6CXla;<`NuN@v|Khb)Yu$On%JS?H~ z8ez{Y3Z22m2XA5svRQj$i&bI0cG5i?puE`apkoZ@fXSY)=dRd)TQ8D5ULi1OuvfUG z<9PJF^YT}~jIMUJ$82WVr)Lo_rIv?I%SK)6+3H(r4L)32$HLC8@Ph7|?gNl?XUt7; zm#S>Sh7a>CC(gvQIeA)PIni0vS2!suv+u_hpj(W&a;SB&!|Nq=R+l?@Ffb9HiUKxj zBOYM{x`vPG=+Dav{Esw{d=UjlN;KiHv|1PX^c;UoTTUY`(}!EE(4Aa4%tj+AU{M^2 z>7*x11jK0;j8Zo=CVxhkRRdL+grpY^_Kbf_)FMHiP6hN+6MIq6YV0?pFDXPSTkx`v zyzWApUn@>oXK{vTp~R;g<*r? z#(a>n69>|7612JdeA?Yu8u(a#?4lB9Um`|>@wb{^hlcJ!K{Lv@PXcxp@En9oSk}M4 z465%WN|hNH6Q0sP!W#CFti@;$z9H4ry1EBDKW4|r)Th77BF+5Uing-tSR;9GzUo_B@F@g7t0z-FZR=X2tc`+ zu)J)FV}EVO-1H@59ef(Ztx#(;i7Y8nO-hegjb%2IHPc;jdP1Uu13XeqJ+0fzDfetA zCfal)rNs;;fQ)nL(~xSf-nR*2x{#q|J`hH@qyI*^MtnWPnFew%m)2415O7pk7Ty|t z!zt_IFm2zSLGbv!vyH zLvQdvdXSwC|5|lO9%8bjuSP}!L4cPUZqp=(QzYfYq{syqOG3oF78H|5CjBK<2V94qe%V#txSpY+Rzox}EK~~qitp0Z;FF0Mw zM;79>hN3h^rUPTF+Urh*o3+vUbdwocZK?)#)}q|hK-@$VUS`OqSe9H<3D5tAd;4k(?I=9r-qB(aosz|Te!J_(N`rj+t zi`Yqq+#LZ!rMs1ST?izTCCI!Y;pxph&3w?u=mY zKu5ITfbRyT=fFTr8eDE}WM@wtyOEmj&*nt&VlN5kTaNai}l}&^mZNwffKfn<`b3zVFia^QS)({Tf6~O zMjb%*9x(Rh$*AgVNJNc|S2RwV%b6(2VKo{Gr%`!x7BF)3SQo^$3WK3pj3pYB6ePtU z$~{EOg})AcN{App7)Bv}uaumWxA_irV%#paxmXm~;Ps;nY4zZFmvZNkbH(|OL<%p? zFF%3y`iKk{d@Znc|7N(6jnz$MOh8(Pf(+=>EQPJt0a%JrY+7R0x59_5p7U`2*a| zb!8?#T9orNYBa8BUHUFnY54&{o$~?l^)=sR7s4^Ih+I!Nd2HZhgE4Kaq9Wpb#z$A} zitj-oK6Vd+OE$R9911Y#NGE1qry}XLk_+D)9$*+GPryCb^LFMF;$d#$D|Vf@>g)eq zmB_62GOeFDz7E{%5AAH!|IlE*_Xk8@O*1GlW$6VuB?cU_B0Dc;eLaWB>%;HtU$($r zxVEdlo~X$kAbSqv?JQ)(?~3(1FmyRb>fRf$Y5V>vt3(q4oKNUq5>^&La8AL$iFgI| ztao8P(LFcv+)nhc_J%ELm*f>ZX$)}RUy*!-i0gHq+-*qx6yVEEfJgzy6Tsw!_E=MC z#!_=Ha2I+O{)cV)@(#fZug{rFl5+HXQ|H4p*_+jcK+LkA;}ImLg07Bw&T5lE_Taa& z0r2ITqjqjQvDee7= z4;p1ps8LIJ`_?PyB-i4*r2qrTLA;D6zko0u8FxH-$Lxt4xn5QROcbl5w>Aa>t#1nq z+FR3dyPu(uD?5~5cVukPERP~)64}15F4t1vAUi;HA6kC6yXQqBECWMhTnjLz;A$r- z0Z&I>gTaG8B{9p46(-!z>^c5i2isRt@-Wi5s(Z=VXf+w)?9ZdU5cUBBIWZ#YK(O3OZbnLg!bb|9LaE-GS(7$w*4r~e_WS6d&28`Fy z3xh2V3a4AB>#55n;{p3=8_PAW4VxmEOP)M>i(($j^yx4Pny3*|%isbeS-Gh&*^we< zmxelNp30+QEMXhF$|yD|ACnbM@f3?;k6brclkE+(oXjNHpN84xE{mx1O5?NN$-c1g z?kK^Va`1BN6qr~9&@nhJ8oSA|t)t0XYweZtxXBtXZ}k7lg9NaagB3L*>(f_BD)cy= z=uThqC1v?5FO@PIyv%+!_`aX$WNBVIXm#8dF2}k(!w#kR^S7l{{h~Drpf$QoF%G*X zXM0-brZ+6i{7SRDFG2sgY?#sb)!nkHpr7aItn8O|NxDz?m9c%vYpML8ST%Zr4+Q2v zwWBIiD}sHwW*=Y~@k#Lb9fd}mCLVU5xO8ec`nG^^Xuwz3g&8d*}IYYy`eeB~oW8v<$7^@8anrumzTdk<^yqKhi_N|S? zgI#oDNqsEFa^mPw^PrVo+s18i=?qUm+C;XIdz9dZf=UeG-GB^#rP>PjnJU|uN448O zWR%5lV*>0cZ5aeE4U^J;*uVX2p|n;{OLbJ>9;e;HeTUXca_ox5=E>sj7$mo{zsSRw zxyok1@S?yuWUqIM9cu*fJF;$7C#2}F2h}@x20H7tYfcf7WHGkX|A+#GrSrUYjQu^oW zHK}(2p{l0SfN)C~Pk@7`e{GA2Qi4cr<*3 z0gZ@fvNP@V{D-_YqbyE}iI%#2^GSPp^Ash9K$AMf$r9fc^5PQHZMq}|yFpDYPgkjz zBH0;cj0;<^gS*d6&YNSBr{BkG2t>4y|1uKhsDXj$sX2$^Ju9}y%i0gYB5tMp)OHfDh65c72ooHyx86T!Ts_2jk!W@z#%SG4EP0EQVn8F2x8MzgtP^E~ zOSjCD9Fu0b9th52ywL}{;6x0TBgRAwySwwQbhI^eJzDmlC(%>Ii5MpypE+)vlwFsP z=r6fe)&t;+pWxrzcFhS}jXnH&ddFRGo=J=Ja zIqr+f^|=II%=ZJEeYd9~HwnruU@6E*9ue-lpE^N0m1X}-5yQAnvk{8yZC;W$e-CKH zgk^#SF#d))8f&)?tM4n53`|V$N*4tUkMO-m$_XCJznUJ~^7WuIUeEgiTApiqo{=$+ z;cd_Jdx5AsvM)y zLPuuQB^*Z~?OI@UKZW%WhP8P?J6?nX;Z-}4l|2MmD=NM{db8m-hCxR6k^hIQcZ{+u zXtqU*UADEW%eGxz?6Pg!=I*j>ciFaW+qP}JKIc34-S^HI>&IFdIWprKw{tac) z9#dJ*zVhh#er-(AKGhpecD{{!wrwxm15L+ow>`2pEQa}g_oVCrs|RM?VvgG%ok1L@ zMjw7(VFGjAH<+JLz$48Io1_r81;LK;@Y`(Mu;;~JFM>EC|QzwxFN^~VsMhG7&TXB?o6 zCkrtnJVOcuz7tur5(3jjI0JG`D)ovJ#z%(`)sN`&d8+2nwLjxq-T=sIVhk-q#l1;% zcFTx=#<$_Bgy-*)oCLMIbnPdlBdl&f9acMc(o-q z?Z0{jQrv#)Pi{)(tEsAE42hHz#f-Ts4H9hHSIu(1x6i;7_jN>@4F7aKo87tPonpb6 zVmH@zV?9??ua7s69)_V(BPAs@$a8QbcY`uc*3?(9f+cZ94XB*wkLGbkmbtMf7-o!D zHpQ8z$rcnW)(0Lv3Qd= zQ@Q!^=rq>&O(|INh4l zxKadUC5RuNHg-CL9tS_nySBv+V^tpr`HR!f0lC^wk1w5ZruAy$iy78s)Eehq0XEb5 zR@^7toi!=8v4e1K^D>@36u{Lq@$Oic`3;$7x)cP02dlJ{VcWLyh*{k}NZb=s_BE|l zeP9@EThyfq){oh0ro<~jE;E}XXCyN+0?tTRBfw=ZN&^BlQ^_TLoFeJ`Brd776%-;n83Hg8co zd%z<(%4hAoL2O)&0ze{p5HWyAJA_GD*TQRwySH9dfUv$Zz}3xdm#_f4V!NM9dTZC? zox;J!=!$JJtUuiJzb^aBKnGFAmVFH}?~px;y#~nfH`PoeqoaN@aUl z*wO2%`SPmSLGG_SV3gT^xGmB=g{y4_va2Ql5LcRYSF6KMpAZ9AICEm__#GI-FRnM$ zaepd>KC6Z;t7nAo6F~ijsf3ZMNwwf8)+PTcU;Lq-%WR)HCL+&8RjhfLHC7-F)FAZq zoW6*(+DQ}!o+$bO3-)5DVYhXa9P1$myd%p5O%h1Kzx zF>9&xk6X#5Z&(5=YK?cBC3A2SAZy$)?c})=pc?L_9Wmw*Llo7PGc{}T*R-3GAsdem zsZ9L%-3ZJX7TJ&oW&(M@`| z(Ee1;@Q$MOfueO|`smuzR6tm&KeyI9+(dcx%4hYpsf*F~qEJoks%W_gm2yWB^4KammoOz3eBlRuJBMKfH%!7}43k<`pI8kJTuTG5X4cdX`yXeEt8WeW z+E)q1HqzNmOr>B^4>;{~zyLCql&@Yf3dM@z>C^9qyzIY=eM^cG8=KC-3TwqTn}ukP zWK=21airOC9SsaCMLNn9;X`2nav356aBBpb>s*HSS)i;{F@p<0TJLzLeKN&W5sx&v zpejgCXV~TRkv0!+1=Y3>*+nWGLzTSprk!-tBpU{+D4(VQz3ngtct%g|#F1cO#!Mh> zDhC_Z2LWTU^FS!#&zH;Gp5PuS!8=9z#1ux6HZX4?@iHfdHFSLKi^NbIMqj|3w0{|6 zK7RaXx9;S;_-*5gd9Q6Su~x{t9n#IwEo{mv*&Ca`>; zjS=e$C4Jj!RwtANa>`EhY~ZVl7`c)6NfV83vks$8Bp3Wy&wCBYM?AgV!zq<5*GoYs zA{+fKd5&xs$>bJEA=aTr-iYpaUj}Y8i1TNbMlAmY^peuDvI#IXFX9A$`rDMXX~UNT&^`r zOIIaUi>h&mgE5n00oW@|RG*!ruTNe4P^$XDBAt z20w;3KbwI#5Y-4_EQ*mF_ndJxR6l&y-$IPW6!)BIJTz}D)PTKul4Y%?XXVe}P*EbZ ze2R0QOC~M+GGeZ5)PCGt{w*)6T1~1_Xa*6Gt_M<+6tn%B#94FvsGPij6L83totd^$ zN$%>zJ9KJ6AgAK^?QYktV_UH5^K0x%d7`wQDT}7MW^lOBG_`Q$LkY;VM z?NN@Sb(-=hiJmMtx^8Gteu!*@m0mR3f$ImZntp6;(xDGqFz&K`ivyh)-g553iXSs@ z-?J;A65DDc6lO?xYCL)=W;?~m5b92JmL8*%Dqe6T+_e3;;m(H3tjkWSEIbMQ2>IG^#ZS7F z*^Rhe{yCBP<=q)Yz4)hZASi99>xe0EePwd287kU=kY-y~wF`=A#T}X?DuijvJu&DD z0+H#d7L|W=>=~VAd%nWE+vLzIG3i=Ewd=TM!5uJ+!|=D)9fbn7+MI~a0Vx$-u|9pY zOw5yYTxq~m<&tVIOw&Fu)G9uFDD{J!9%}a2gl3$x+_I#k0VTkGf`8*cVjS zB+b2yN7yLb6@+)B2JI1U_D(xC(;#uU#Ywo+pO~$k98_Odj zglW4z^?G%}4dI?I=9NGGHGA5dLB9)&c{?KYdT`>I_s9$8UT4^w;hhlpuTK#1S$p7d zqPgRI!&dpVLv8r(sHsM0lI8}hv77|%WAM__z%OS%nwxr;$GaVNP(^uFR4Xpc?mn!U zG*hhU(lbgnrB=m`(v{;NWBF-i_qvUZH0 zX(A+Q|8FO7>PZ=FGg~oWQY)m=#Jqw{c9_Qz7iS+Y*8Svt%?dA}cp8>|*elw??HcU8 z5WbmiAligf%}@ur%#lfGhT4v?6OHU{gK2#$fmy2BzVtnA=3r#bq!pGuv2(2lA3cX% zkIK=c=F4y!u{3w?rDZ7=LUXxEHriTM^pfmvv2hP$Lr7CE*%DYF(Pd|$ahIfCX3Xa7 zU}kD`q8?L8l4VlL)>4}UIKiG+2}Ro>!YiiJF=7)@2E#BFGlyNjmgi72IMnSzYTm`( zq;9Ll<)0Xx77KTVhh|Sb4!c1c&ln(-qq|&A-bGx;u_RxL&2^7RHojV-k2jdYQ^(}; zQ}`K#8{T~Nkqrwlyv}D^O5hee;GDY_-m#WZ{HnLkZ0lh5$u3=?;?ZFoUM`4GjT z*Ht3&YVQr@z+iPUWkZBQlqE)73xr~YC1~79tE44L?h#xWC@qt$ zFf4-j2|*-<;g+(Yd?V3CO1MJJH25kz=1%xTD`S^TRkjf7g_w?kbN3{7J4c2OO}1j( z`HA;WIBqGRR26npYhfYu)2_9+t)-&LVF2-}MNksb9i%EQnwtr5o@%Z2ZXDN&J8|%| zjt$MH!qQlS?Zl2C8tfbzz7|uzq!GElLKNGCZpi$cGEqZHe#*+IvXFCy8#hFgM(K@O zDZ$pJjvtxnJwZ9PKu^%pWe!H~l)$KfY4XyenA8RsY|!$?SXtxM#}4U}w(Duy0$Q{f zDs4r_(uwGy3h`Nid7xD}@!<(ylZS0S_=0>cZ{29n(#RAv8Ye*>;w7DqeMV+kaF&oY zEtb{y%Xj!!ic3kb&4`P*m200scb;&Td$B74*GchG;nM9=E42DC(Qw-zt~V+t2M0+N z-jRG@_O$YHDW(oaGr5Ioq4I;Yg-l*v1&nGR+0QE6YUVr%%PWxVD;|ktYrg#dKBA~<5$0zvFKOod9eiUg z%+tz2Kk}p#n#)gUV8qaDfIh^{;2qu*SEsI(vFpI65foK3Y^}fi158{w>URZLi%rl`Flwj6H=%>9s@eiB~Asks1Qwt;GOCA^XOJ2NF*yNMKV z=?!21Zq&jDLUQ4UJ!)n0^fR&+j;WWvkF*^-WKEcH5s;oI#u87FlPmkYV4m(;0BbVx zd`1hGz{f`HA~xrCL3fPm<_$2 z9mwyBQFk%wU1fo-FE=dc^&|YE|HYeyX&^fYRTs}-TC9~1%ILC{%GTU_uMvWJ@wAP} zGJit~R3fW%>du`%h=|k#-*n`wDqbz5uAMYcahlvNKLawafg3U4zE9t7;cRY{__}=yjD-4C$ z9>wMWUUm^xQp>Sx{!UuaBqvt?uPg9U$sxQGr+8J%9?-92kQ0`1QEwmNBO89+#fHO4 zKaWXT^{#fdeDa2thku=Xg7~VTAJUe8kD#E3(meT^;zOV(HD+ZHO#~z0-P|@T+%ofC z`^#1m94E$M!(w|8VZSpHc*{TZBKSsVSHgFuJ9*(VitUhzwGJC;k%bX!>Sp(xCmzD; zMR-1!AiYPmRA{C?pCd)25}P;)8l9%!qg46Wi{N>8pqJ%e`m&Z>*;X z-x{2)+EE2nj0@JAc;vg$(C4zQy}Ym*}GmO@J&kWQ)TV_gRWf_ z%OK#HC+Ult>~QvCF9{%^cI(jbY(m_B{BwR8>(iTy>c_gks5|g6@+yz=VV=Qqz=gLQ zwR%7kTT^@Z5BhR06{btcvC?OdR9&b9Cd+8AbREQN*De+0`5)3zP|NP+792q%4^ocU zYY(`QZWh7m<^rd7k;9)|v!}i#dAf5s4CQLhvIc)OI?HtT<87D)^g=%JTh$ivMqYsb zh3QM(WVuwM00F6y|KHf#gsD2Bl$l4+A1RFYpg-!Tw*|od4})wy;~wgNJ`#SZ0TLMZ z5bGTeLjD8L{Ri3o?*XbK4DkQ(%YtTt0_ycopZ|w$wrB1i-K_p8Qhn%o;QwHHkuM|v zKXd;X5$eZpPXA*}K)$4@-@lXk&weTYy_o#t!~bifO7VFDg{k*^7Wuy()$hC}{b#~| zd9(A1RA2PY`JWx?_r6m9GqKqh6twk!mO;q}#DAkUTY>*$$^DPhJ%*s9DeX|8s6aUF zB$XyTE8w;V2%)1OBLANTMer#U&_`oph!Amr@UJP9oFH+|J_!gO{DG1QDz7NheD$J5 zg!+OImrEiU6J?I_v?ANh?D>sTHn#b83(NFYmga}A=VzZDP-kBb;P&cyfTq55&rpq8w$5r`21CV!C- zjy{?pkV$ds7~O1%u0te2NS6cE7R*L1_37scR2ft(6=qv{OqtX>frB{niLgvQX}eT( z{jy(0?T=Qd)B1T%P^CuJ-xOEpY7yYpvV}Uo6<4Pv*!;uNa@^|tfO@}B^ifLE3jDFr zH#4>17jaiZm;Tblo1~seBd~x`=?=M&UtZHoH^`P0QJ{7~yE$)3O|uYARV5{Pc{ynj zd#Wsmdz(1Y@2#iKQM8OOZ{Z9bMGEF6B(_eyfL9()Lp;*DRZo$8SaA#)_1}f$y>i}R zZ^fxOkr=1KMh!78jMtBl+jqfDS+cT#yoQWGvSocIJ%vlJ9i0=@3tZAyqGT5B3z&m$ zsB0RM=LIW}&i7D8N3x=3Ei1U+$taRBDvGq|qjG~*(ic@CZP{WxKDc7M zGB9WoK=e|tP@s$I1=?r{Gz7TA%4bC-|7-}R*Lh5j5JFIhN}gjT=W*3uLbVRrG^(#N zsw$GDZJ32Enoy#(zMzUuo~MqY{|o2fE@n=wuloDWGRmJ^VsD&W1XqV1$AK-bX(&3lq*~#} z6b3H+$#jjQ7iHVPwdj);o~@yysY=v?n?aMDY>Q-mrK3MMT4eoDrg=f7Xq7|MzYvZQ zJc^GEV+Wt)0u&+6RrR4+wt8@~aQ2^2qO-~RN|rA!uv3qGjxDzDNSjOPJGnlCC1sM<$d~2roFk{}rSyo(A@2dU~24r!Gh~^zd2zgY86dSV$6aDCHWR zL2eL1Ou#|nyEo-I#=$k$*BUutNS}X0n=JsT(b%pC`OOw3o>WWVe&9hV8grwrl)9oK zsdZD_e@ZdS^Us_Jf2K|d-U{7vpRNm-KQQ@#_P zw;WMlvflxjbF9S0jD=aGC~5UyrL*62F`?;234>oPv^aM8`-ESyD1M!9DdMq(_gskxbYu>ve&ma377x!XYUT^SE(6}FWXXgSi6{T>rmZZK`U)u`-0;7JGy zHI;O^OGW1YnlOtyNWhnqN8=mk%8$Kem)&WLB`KBm=iN~;7fhmF>Wp7MS7{D5@6wY~ zQ)CjDu*;`Y=tKv+U$m4P)84Ctknu0=&O=!Psr&1Y9HK8c9S@m={-yhD=(9jLuaeCn z`i&1IcA1swnkEUmHDjo>UudI3s`~7!a(O9Pza7v8LMcGx3YY@iQSHUyv*CHkeh|X( zvi)!alZ)sb1|=j6kOSdo`XL9Ej1pi5CP4Qi2g2JC-k1A^#qfs3PcE#t7%T@fAP16{ z=EwApY_x#(KkY_0r#(*MD*{Hqz)ue*cm5lHY;W=#4U&r-zCK?$cwhD#E~Xc*p5y2h zz1^Bm4W_(nNNwpMyhCkj$OCXued!4YKCvzQkR|a$DZ)95$>D44&zIu;8?)G8x|ctN zIB4deSq$4mf6B~>&{3(C*~Cgzo{f4TC|7gtDHrjh^iIx5fMa**mk~N!gztfEJO;;{m zjZ0T`46bX-m@{QjBn=E;4D4E&c5&HxyX;v)i@`m6Yo>@yzMDI(Yy=a+9~-6SVZ({0 zlZ&i?Ju>bttu~>((FRe9i(B<9RU>|o5CYhWV6gJ3Z4S=fjqA$*2&aBNK*s#h4CAb+ zG%GwGBc+<*2mwB$sHfQN3IQCS1LwFGK@uPO_3wv)Qh*oY0b(mK%K>%b<}cd`2{$+j<7k z7?Z7rNTfd;rn3jcWL5SYxz|Lu>btDpP3E#6SG2Dmio-fe+6SogbVzOt-ru-B?>>7& z_+TvVK7*C@(wH#;$Ql4=|knsOBl?$RH_&0*1klEiCh~s3fcR zE^oG&v;XPJPt@w&+6rx>%+)nTrlI@-VN!f8(F9Kbv2TxWR3(+#eN(ZNzHsqA;DQ~vZODBG;ZRfDH$HIxgkw0mKS2;w zy)uos62*JE$L$owiYI9IOxqHJjR>GCeLyt7ov{M`Lp-*R{DFx1ZjP(Efaw_~vZ(~d zCo=#eef3O==-{tOjI~1?CcUT@FO{7#p)+F2vdY@pw2nZiTD}L4C2O@t>86}l*v}W< z4TZF-oVmNKUz<4-e50lKglN1h>hRCKEIRO)AL50hfg;xDAJQQ{^^N6PMX-&-J3-oG zC~v@u6x2iP_{3@ExMFsmi&$aFmTC2RUeimemyH+GvIhRakhapl_2r)_} z-T-PFrkV~}7K1MFP;#zbsF@>ViGLvZJEZP+pNv@E{4@>j&3Mui+l)5>up`>3hJ0 zf)QOIk}FswTbv6hyzOXBf%ZwfX#mS3SQs z9o=l~dzgc-i0^+M@TbI)$06=vFvevb{VF%XI~1ACY-KacG35lWnFD}G)3i(E@^!%c zX~U*O`uHiYkhsj3LUaF*ZD97wg#;d@l8e@S6X!fFT{f#)Gz&t~E}^)56~3#|1?h(P zMs$mk6XA6s-OK!ugGM5)#R4q*}(}jo|68^fNz_Zb7e4GR+ga84I5X_7^Dp z_wAh{LitEv5vDg7A_sr!)Y3Ez&1q^IeHxdVD0T;YovB+&TwGXDVj!#tYPb+JYIlO| zJ}c>~gLCZgd?zJ2k|Q@?UqT6?=ph<^0{=191BP6F_l<^ojOo09yt%J22aB9pl9@gJ z^qz9|B-(1g@Wd)_(D981FBWQ0=JfGibD-31b$sW=zN78{TuXHMtB`K5Rcp4^ZQk_( zc^4$Z@cJw9)h=dN25|YFZ(|7Q<_G@-3V+|_ht$@<^c~p;vD@vqH&ypo%6&#h(Drf8 zE#a%=S9QWd@%fa5M#JS z?jxNLjp1J57EyqVf5-P0Mu3k0&}>l6Tlym_2aDnb5;919_Jw0i#8)(JxSG1~BVBQ- znugz3xOA^Maqy!Fb!VG;{8h&Uqq~~*7D^HiSR(RDQkWp1O202awR}@NhVYT*hz88P z*cYIIdeu5a1_FzDC$?$CU!V?QzKR_qfy%nO`(sw#LLOSNcX9fMQbdV%fq5S)C1WrK z3j2X7i-9sSD6VWu1EmQ;MY3pNmR;ESnBk<2%A5<-aTQBp=q^dv^-%VEx) zwBMmnaN)Tc$(NSD8G5B9&VoYuHIk3ZSWa5LxPK4t1J46#$CYzs4d!w)k~omFC}$R` zH)6=eFi(_CVDeNjPlU*@nAU^9HmSOVSFiFoU+w?{_E>}W?}m89tr4g%E$YLrtHhy@ zhN#5t5vZc-$b0P(Lpu{&!d45S5}Zjoq0jV=JG8{1Z}gHwRLb|*f>by4J#;5|wPS1# zOgtckKx(K{t_EeD1Lf%1OCmP{!Mdub0}BJ2y@$L5=0lEZd=EUC{A*6 z-b3w0Vptm|$^2Yhn|ZnZDr`vk7SueI?xb`QP5AQAg>V_l@ zsiB31GG2Sc#4IA%QL>|1uDn#(S*qkvMQ%NJ3mkVV zph!^HqDF9UfZQph#PiO}f<64w{EcysG#lnyeXZp8k*k38ym0W1a|dby7N# zpPPyo%9Hb(8nmZrewFOI4TaYN4$l6Ez?;7mm^(Itd*1GO;mWnhAsx`Yn!@{ohWK?k zjsvJ;Xi}x>w8gI{aaIG=?)zYxVY;tiwZZA4;Eh5>N`cPT3%ERZ53(t~Cv!X*v6+?F zDr+Nmbk#ql*F4g%2%I+DWl*S;zc~M@HOhw=-&vdO(;Gd(#vWuS-hWr2h+tYM ziTsQc5`%h*B%otU3=%qFA~LKutdUC~Eo(LP=)|n@8zCcxEF08`7O#Tla6oCFkWZ{Mm2x|;mL%E}z>=Ef%Gsr7|zbny8a$t)dM zDb_)VQb2#&ihdDEGCorU>nSFBAO~wON2ARquTqN)(=yB*E^fwI6MM5;vj{H4eY)H5 z(|{_eQNSn78uRIZKCltZ2~x8puTDrGsF#5)ZEOiiW-^KOvaEk0@qoM7h3MDrVD}Ha zBr$^n6%L`6#jw#ce6*rpvHe>wcWHi(62fTD*zB3GFK6qY=aUz!BU=iM)sutB$)_!-YD}x(Ea0)Bc>ECfH*mbicYw=P zn+H>8h+6F((nZ&B<`}B_-D1{O>~R!Ip<f_ z3#DRKw5O8IC&dE$i8<@y(zN_L4gsEY<0H$W?Lw`D!SbpB{E*V=Z*3Hg^Od~Ns$^$s z{<(~>0StakXK&0(Rt{_9rl!Suus76CFguNV3Mb9Wh!XHi?xr$u0AOSbNHuLdS6a|k zX2ab?gQujn*kv~&-^AnMOq8Pvy%E=?Zf8nrQ;^hj?y~X6Ru`$!M5?G4`$~o)n7On; z-(fWfV-X`vgxd$DkgX_R+`{F6Sh1l6v0qv*BaXZZ4+`TCM!w!K{X8TyYOOKm{aDZ@ zH+_FpM*wr#lS>=ZpG5EqU{Rk_Q?ZrwFtV-TD*P-KH~x8NEg!)-8GfZnnKNB56U~d0 zyQ$BBQ5yDPo4S`Pi5h5q@*)@fT`CJr8})!vX%|0vgblF`V^l!d0gS{~$7DUHwhipi zp3=`~sX~#y{egvoV`q@j9GIv$Fm=^oJ-kgIMu!^*4sj-P>F2!Yo zO9ioZSDJl1+@U$z%Mm*#{xdwfTGrr$clF&lk~)|N?l`#Yay^L#>Es0$P~iRT@sqC8 z{W$c6d!d(!0BP4i*W}y!MpGX1H2j4=5Zg#~d10(2Z52XF%!a1yNmcnkoo1R&ElsLf zQ&&mDz*hQpYz*fdc%eXt88dI49d5Yt+w2|N4{eu~OUkZN7^m)1!l*`|J|gPw$eGxP za`XopYg1j-n>7M|W!Nr9OR@hw)t@Zs_jqqr&TjtsucMGJmp@dG1&pPz~b~NX8?ntl>>@g zfxY^JX{8|y*n=eBMP}Y8mXaefh zyBui{-ReT!O08%)#HgkK3lZKBSn#Ms8X++^+4w{0mpg6qv+=Wxk{8AEuc*Y|tmgaW zT(}KbE651kACW}qUd^JFM3ePY#zyW0*+u#GUUx$5K)Qlg4`cBet9#ClHPWhl5Evee z-ZT>XZJuCa(Q74VwP?UYOA<3K17ZK%->B)qrPxhEWt>bAV&mtvVf}hpbF`)~wl(5x zNll8>E66!w0_(O_xOcj$qx#U%oauMno^{=UV`lVyYTcNa@6XIj(24=a3WMR2T{8o4 zw+#0xAVT@<=<2#~bgx5(2%Q+G{<9$;qGQ>XALEq}+ST!dH#VLF{-k@j@Ga@uEwSs4 z%2Zy?U##wff)_qMPq+YgJgSa}j2pRvTYj<7_)o<@0d>eB10m}LsLfIcSFw*RO6mI;{^uOl1>DlWf zk+=1YYoiDDHOfBUxr@Z+I3QeW&#}W#IL-5fjrP*#ZiYPXVGDfgDZgb+9$C_)Hz{$7 z+n^JJ@=$=`C1{jNI!{OH+ z%bEVTnVzdw3Aq}3l~1@g@Rncj7g_Lxn)-wWOI8d)B7^UPB64Frd{ zJfRW+3#8kg{1Ti|;17Eb0El~lP642Stwm=A`!(mW%O+C6+MwOb7?}gha<#g=Q<*EY z8(F_%&i6LD9IQXkeg5Gnz-0W;v<@KR7}dT=2xS%%CXU5PZs>@wDc83hh)*00Z#l;p z{a|@z4sw3pV23G_~IL=eu@6rycl#v{hun*znu@J{rZ_@DtBPy122LW-g zax%3T+1H*5zNFsg8-#iQ+=>^#;8H_@sCqX;9;ii-*f~+00qrBgou@!=42>zp|#WQNO9`Iyem6?mYJb3)Q0Pmu*w0r7d%eZjOgb%0n z>SS6%_94Aurn`m8&f=0w%|!vD&0?-G#izycq+wM--SV$()yf(;h`&163O^Ed&w^a1 zB^>P#_^I0tOJ{uCSbNRYkQHG)G2&faL@c0KKT>2)c1caws7vRSFK&s^+VEM^zvqHZ z$n$ao!sSkW%sQJ zZquA*R>B)3m)iRjDpfO>S|pgc!6e_A${eh~XD=jJ5SmEvCvwgU6!dhfYeIz##^7=0 zbH_2?^?k>**G0^?n;k*Veals#j6bkjKI=N2EuyeWYEw!|r+BzXsr2;9XtTH|p-911 zD7gkmfmKUmphoTTr0wd?osumr5$lNRN>QGaUaB(TP}xzk?xEBjn0z2l{i=BNapO#$ z!ONCB6&)JI4->tmSZGX6+5p8Iv&medN00HKZm;d1S%K-oabd1n3s)9+Bn>Rhi=myG zJ{d}7S6U)-XIb=D1uRF#t8+xwdDJQ=*x%gltSbziw5VrDNSgZ?Vv02BD<8w#@E1BU zcRP)_a2xh!;#HbE?frq6CcCU#Qdy#Q(pgQD^6XWfMeK%H&a@>T*Ni&7gn?ku(oJSM z8u$hCo^AgNjoV&*&}>IP(*fA2Sb=+*#|Tik)iAK;wo;CWfMn5e7VbM%hCojIyX1WD zZTnBxg>F*f29i1E2otVIG_@uiI(y&Gpt6p$9AiRMm;+)^>x*liQsu~y*gGXW-#wcV zyUP}^UnRNDq-5D6Kjlx{)_uVytXfZ%5Uil*LZ-YLSK<|R~fhE$MiDFKnBE1`- z9Kp%2z!pA16^lj|ds7!~aUe0fQGBoqtm~TZb#Sm369tWIFtaW0yM`+$p6eZskn<+n z(jD%S+R&Jf(moA$r)9@h(O`_qr@%ErqB--!YqKY4C;=*iDS9T3MIwk*| z9GXRe?T#tlss(!UemH9_kqG35yC#a%)`W1h7d2x0G ze{Mxz3&*MTk)XV`x;aqdDRA;8L~&|bkBDUwz42x|w&Xj8KFJSIcxB$l_tr4@VPyg6uog2XQkRWQWM&p;;3mF?k31kb1owVymxEPzeX>PY$*nocAH& zZ|JxpuFj=nnTUCz3AgkgeGyGDeo4JB1>e$(dCYrw|AFxig~MDGR;>kC z$AA9m!T}PgZtRDlm>v$UkIb1KXK}c1QyPms?cu|fF(&)t51E6L#Bhww_cqpOzfy72 zcf^E6s*ro_(WjGq#R5GLuDBY^cpIPOX`h%Rn**p_Hlh;hd+l@jlY>_iniZEr-T{rKlByK{ zBJBCDjA4^V`;H_l5>NXqX3h+CUQ{rz?A_e@QK$RjejBQt+SqOEaN}g+4b5TT@MiY& zG0=oaMQ*-HCYPZQUxn9)zx6~Zd~7gj67k#^3vAnvi|zk>xmBb4C*6U z%YfT1pHP5U=Gr=dbM4PbL1b|2o*Ja6>fXfAyiQ^{h%0)CL;|vyz_b{bl6#Rf^BMAY zFM$Eo%Kom4YVBRJIfPtJD)nKWwzlj_KJZTG;mw$fP`5iExh9pss&{DdMdxj3ov*6U zou@MS(v$a~`{!{A+NJVb-vGkuQ9}QDGY3CxwVhwIrW&wkQ4abWp!N*onWgi<@-#aQ z^Fq=Qs)u~SpmD9I(0;BwG>rMO|LDxoo+o%i-n;Tw0WN=OKBcG)AL80<_!QG!9!Me; zg~-|47?EuC)S~mps{NX~v|+RFiXBvwJ|5J~qpbf&7JaAROwcp~NYu(n)d!?+xc8wOcs3 z=l(L9b*@5mNGP&Wy@Zs}GjZw|QaCz3|7gDNBGZJFp*Di%#@OOAh&$Q2E^H9ZODL|^ zAkLX)#(lV ztkJ+S*qPYh$p#8+=Rn|0K2nvicDs_VXS4Omkho^H0CW-CO~? zx?y+v-4#TEX%KeI0*kx`h0K!)A;(AQUO&Xz+r^Oxxi+|P8z(AYHTte9t3s7v*k;i- zXA{EeJM(Y9PDsFOzxZJkg@jaCb7<5(r*IeQS%L$;*2t7y-Ez3+w|UY-5!~QZLIT5K ztXNGZOyh$C-(L89+b;4kVWyU(>5W85S>KvE4+#^2KgI8<`XQk#S(OdMAxRf3N&?Aq zxwA)cd{~tBgSr03n4Q+JXUm?ZY@ZxyifBFe7|<7Ps0i(okkzZ7vZ)!nlIvC zw6SMtbonE?LH8917qwE}N7Kt!I(;^&!IxrtMVP}HpB(&t`zP?O!9cYBU+>$(>&I=B zR#TlQaL^Z~y~$yRcnutvKNQMhnDt>neoLB3Uaya^yodjV^=0>9^>3Wi;iS4GWdN>_ zkcPw9M6qdn@(lZKZ1_iLyfEA^Dxpflgm;dyU)eeEIQ1g8|^Amfd!k z1yZWRytGFcy8IW@P)hg(GJz+js zU@e6=>ouY4F8mMWn$t7(54UNuC<~f|X$wxcC(%dNeS;a#yS_iA5w=b*BHf8NS{%Bi zh8nz7n{ys^q+%grr9*|05QTq>6$9yRdrWYR>9HEE1ox^bxAAx>kNqbgNX|zqEv(KD$`l zN(aC+6|qG;YaIzYOA{WC5WQ@L|G32|20y3h_k0fH$W7 zOy9qYLrtQpWn+cH7{>QJ5J7K0;O$sw!agF?SUs8ZUR<}>PSYVES@FjY;pYKDV!sCA zD$;H6RIyj{Om0C8!dkC;0F?HMid0FtnT~_xtAm8m)>l~{huFswY;JtKH2Y_;5O)0p z-UyA`jn~%)ZXq_U@vdxZW&R;^K%c>NZ8y*-TMjw0tFzPDCaO*m!oG35tLSF!&Rz`G zg)1+d@DB6~r@%we3wV!%KjON*P;Y#7yzGR@e0A;nM{8b0ufomtH39|pFb^S_)p<{t zEdq0dir@`S72B7v9!jAJ`z^7nzU$=iG zzdsLb^?vE8-%`TK<4fJe*Ewrf9dFJ@lYx~EHrGxt$rl*L?+9iISwMx^qxsU|LU*CO zw*vN_DG?p-f^H}&UU4J?+_BLzZR_!Wr`V%TllVbKN8`D}GZ>{liPr?i>|&fe81JYQ zIN;%A9I;6MgwZa3MS#D>07f7++eh1tpZLUG6B>o{K74b+q?|gWK4tG*{g@WV2@@)Z z9Xk0{l;l7vMYSfSVNTx_=5uUIg3+vW7)qPReSqM8ENWZDMOyuPT)@A;_R9qyKAyMA zPmr;Iy;8sLG8_VYYX+8FPrRICq@v;{MNE{9d3#{fx$WiXj$=;41n_s+$YjDf{`249 zZQeM!`vGEq4dQxx5V^R;@(;Dkd-Fj!^Wg|%=WOXNkx0EENbewoFBQ!;KQ8adBL+jP zok3LKVJ0I9J5VK+`c`eyD<**k>XINIt2QHF*Pd)Fn@cWMa(+M;i3;m2A)8O$0l;t8_DXa(ykWA;YY;_yDb@!dU&O&}DGOho6 zmqdA`fG&<&c}arzN8AE*NyHF5ksDd)PTuAoW&eDQQO4kNADB5n+Q!+W7N}yS&8y4* zWuUzoC2)4fX_MPIzJRQbi45)Zp|i-E7tc;t0-NqlH-VMAE7xi-q0!MWUa5cdy_(d zi!Gy2qBw4#d@z5gElM`0FgHZ_>kFhojfp>jLBnBpzo{?ulG3%of8PUt4_4*X&+h@m z|9{Q*_b>nXi2q+gpZXs{*Mjv_U1)q?O1B`V82QFIN+Ue8NXim|WcdBp?}WHv!yoa` zU|(@U#*v7PASqD4Z$?-uoz@$dv7w7qV(A>ysf9U|-RC#*doSEC^3Qu$RxYZSFRb}E z=v;J9$`1aByUgr-cz)Qlxoo^&{m_TXd0Qe01shKQM}!lS(r~^7#^H}Or^aE+AR*1! z8{OF1-PI?mv}af1If@B-FOV4(3=JQ%n1< zuOG_!f|bmHHm+Swd}XLxxn^CEIZkLR8DL=}GJH_3L2sE$Ln?MN|2m!AeCudd*9heP zm1aR?A4l`~1zHVV_}Ge0i(3F&&-7J;!EGut6Y1!&4o>8})}zE;>*ht_T9l?pw(qWq z{NsbVh<6QuKy+}*Kg|C2S#setimTbukWEX%X7;WITiO0)!)U16);nm7rsnKW>-jXz zFm3xzs`dF^#uLS>Nb*V5=@LU7)`4KODvp`BfI`1x$t?a8wU!yt#NLbICM`9WGIVWY z;)=KuF6`(=js|M?rf~CtL5mQ!JMwn+MslCylRJ0d+`zs-?B$mEZ6e-VY>KH?cxD%F zbv|=_@HA1L?7V1Awqky>U~#|6lNx0M$3gZeor&E;7^;HZiJtqY{N9r|MK;)km8k&V zMlP!a->dSEX+<{;evDOzYldbh<>x3ZZzr?zR5JUWD{RH=!BmcroR%hqYkJu6HvtOM zz)ub31$)|2NM`%oX~xM4j>C~c(Ju5_DjzxhboSvX`fsK9%}4eDA3575I^_(cH@FcT2xF@}|}2lh_3gLt`G_h7`;)K%{|YBR8UCz6@Zw zCes}+EKtLK*223ymHuZdMWGTnQZ!UIm*EI-t}9`vSEi=j@ilta<*1!8qZ%ygrA6Uv zHjfio4S~q3YMSGqOUCu)W2)0yr0v|;<{uu^sGXz3ZCr+F#i}^27x0vehV4-~4&qiK zd?)(lxJ+Y+4LF=+5Yo$sIb_!}M1&*O&3Etdm=)rAWY^P0&agg;!`oekeLDvq(y)NV zG@Q;syS3*2h3qY6C&;b|SY>IBWVgo}!jFr;9!FaWZ)tl>s9OVIIZGJN$&<0}cGfat z$-4MO(y`*NkGz>6RClsMA8erF_MpV8=xj`knA&*Szm?$$U!929CIIw71t!Lb z5U*%;vs{zEM_y0+b-cJcTY1X0oGtT6kla-quMym&vC~+y(Csz zn4Ol{^6}_QjV!v<|2yjNT503fxmC=b(TwsL)fl>qcRoK%%Kvjbgq*RvoM7JE&XIE@ z@38+FmhUM_&^I-oQ0uAW8Ud3ZEZ4~I#g#zDBW8@_+WqplSF1Ehd>umc)^i2l%1`!x zvO_1ZsmDkr(0+!j6kajho)Az>Rm3Cjsu~@CBnYpebG@o)=5yyUj|zdR*Dks8k5Z`ye>T5XpkPW=xH{va%FfzXWr&hSdR4x`3?LI+hnN2-?In z@1rH}%GEdKHTe-!=xkETO$eTMut_0`)7G zPLn)`t+=9jw%vba33dC}1%n#Y>{QjLE$&;TG?bazXGDk1S^?%c-E=GZZV$uhi*`jh zbz4`RW4vv$Z3p<)v2c4>ZTs#aroc$%8-(Oe?DX9t5v=Mf`run;$LUL#hHr0A+Gz-C zerCgcHz#pRH{OuK`c2iaAT6(T8OqpRc%od;ZRS@ZLJCcSvG%#qHLIs1d?0`iU`(32 zIf%1L&vK~a1JI~zU|jvdg8A}=%M}kXodc5{(s?Qav(@t_85#~R;n8b5X!e_5vo0xY z(Y5@~8I0r3Og4@TW((wiIeZ*SA&UW|VkkXY3LfDBkWh3H@;WYcQ$*;t^O?tm$GO3F z);``}znC|iw?SVM{CiwB@zBL|q!f4aK*Ral!T^s`zy)qh1$!DK3Vw!YOy1|t|Mfw( zX;PRhg#~0UfnMLU5@v$n&4l?TThaZ?t0n8Qw-L_|6~hqG`f)Nh{AD`qr4|j5NyZP{ z&NCz&1bei-R}1N2NcS!%ce&^58z_%rq^hgQ5PXzC6*dCbPZkExjJu&6sju~G!WrS2 zGy-e|2s>x~DYI{UmN4d+tQ&5#&#g-n)FL0^*m*Xf0U}uc@lvZp&=Y-w)Lw3RK2V2h3~U(w@!Y!&Dn6Nh1Ulm*QnMt!pFdctwRxklk zfG(ny2h;x-VIovOiI*|ERVzWk*`dUBuY{7{MbM*^OG=04TM`&1=XNP>h=8WDK64rJE zDAjDo42H+W(FVhwjJGPgw9}Ndr<~LCdpUSVRK-#fRA5d7@@qn4>OY5JP4o+VH!|!w zFA8Sh*;V#XfiOY(y-dx`7fVHz>hu~cRqqgL-ThpVFK4FHcKpJuu)zP4vV#g1a8Pbp z4#4-n6bl+1Pao*!G(Wd`&7RzneLpzP5_LcS--juug|U4+nEhg6=a@E!Tt=Ofe%A}} zGrt{cd_k&G9Zn2b2OE<+vJP$$!oB@Qi&%SVJ3el>`4dFu{*}u`RY$*Pl!UcZQ9YBv z@ag+T#dK-Y>(68bTVQywZgu>p8OoZ7J^q3^QVq=ab2ZBHN=8F;ls1~92UWDa;TXku zwfz%#bcoT)g6;2{oc#}jmwZA?F?j-)-}KtSp;E@cHjBbztcPClJ~o30o>NU`%u?i|RLpv#zg4M!D<2H=rqh&bjDfiAPg>@i#W471#J)*mxO+NSO>M;4X#z{)(Ewi%w)31Z;{Q!#v2Xm z_e@bxSOo_!3X5zwF2xw6Nro+}eBv)9Dk+m3T}xKUQB7(qljJ+x!!dS~L^v#}6{E8_ znW!-kvq`h>N{d((ML~N{0)>D<5f4sWDtT6yRXBZ8*4dxpqU18sWyq3*mym1%?fC? zer|TdQH58toeHkt86TDQ}!9k1Ywk4+uL z#cn-U#>;}zV(iT~oM1cB8EL@zJL-0AVs7Us?4Rlywqws|p6TMF47TYSHL_%t6dx1plzb~0Jm*2GX9Fk)!SAGY=E zv@7CGFWRof8O2m(k5-hsQ!C-FY3b-YS9OW2KuKK1sZWjGTo&zq2Pau}rligI(QgF?0SMw!((6qkE_VjE z^WpT9Hnn<(<^(uRdLI3xs!!GM}{MgMq;eS9KOh^C)h4|%5bRA?T|~tOlAXOnIBV6#cM0ue|1gM^f@vv5aTbcp!_ed$%HVPp1s$4b z;@9INC?L$}a`PHS)E8iNQ;TQ+*h(sD0d9+03)$e6PK@z)J>k}JIrfCGuWZ*t8xblxYBlkDPAc)NDnUX%ktBT=CwL>u<;e?11_*z&l!7 z-(gpo)p77@$ih<1rmVS?ibig>E#rDX4$Ju1ls6Mc78YD>fv(n-m?cem-agU{rLb1E zF6DmF9_wPn@9pl)8xd#bOgu5~h1XTv{fqE>Wy!UmbjU2BE z;dUO<$H$5{d?kN3r^oW}?njn9Ksv-}sBJ1C*+PP9@xvau<;A5-SzBZ(ggMABeOb^Y zAt-<)7ogubDK8{&&6|sck9s|?#jjm`*KDh1pRLap&s+|Z0~bMFAjCa@nj(@Yu~;$e z#AVI9p(U(Q*y;;w>+Mf&iO4ids1?1~Z!EKHj5t=I>^1L~y~|6Utd#i&*uhGmB{9aU z#8R?5 zf4Z2=cX7;gl{h;|(nsn5RmwYU)Ft%1b1v8Q{(r%i5~}%t`7SJkr3u1@-R>ZG(m#=W zj`WsRr0CTnI`a1pB)f+0doff4<a@p5 z?BDW4P_pZ6L9}YaeB>9|LMc@H{HPCmKdkf!Wn%9JcUR)0BJO4ZaP`6!S?UdqYR(X$C6?dihh<}IFnan$3;bYf!;s)r=>TbKxcy4<<4aaxQnM1oH`MTr^J6J4U zVNKK9ny=R6^<{%Vg>Xel%ziqo3qJ_!F?;>G$@p|B-R+R5#-sF!r?H)4x5DIj{$q1eYvAXaPi(x(W{N?S zx!~V{#{hdX@9zgQw*Wj9-}mMIt({9L*R78cnynQYrIt28h0b@Nzx)yUw*1oMi7d?{ z<;@?M?3h1@6#6x2&2g#9g&31n0!aO7Hv7F3YE|e=HY(z#5JyP2@HI^k^V#*l@sfn zms%Om_?wLjR#gKQT+sAR!M?g2a(j|9#@<|AsIyamt#VFq0=8D=1IDlmWh%z-p<<5C z51ph#^x<2oT%8}~Z(}g~&hP4I!^ug05H}^1xf;L^hP+n_h#O(=9`O(pvijEi1LK%Q zJQY?rzSpu9*gja@z(vKDBYyJxugS-xe2m0m`_7md&I`uBIq71@(f#) zT_c4aA5rZJc|J>M1KX7==pup(2cg%j6+s{-gNhcm?dd*7-e^D^_q&(I#9#j0qVPGc zU^YN#WA-vo2DYuVaorjxbuw*PURh|!ja%22rz37YSK&^0){V*PPjNXLEBjB7Z&hCF zKi0;8!H^m>n%XEn#V-@zjrnxS2+I;+onqB1jUC;5HZU|jaMF?p`IG7F3wc5m^l zUSD{%ALp(5xG$DQ(_LCUzS*&#r@9zq5+4Gg^PW-*gl{TgDfa%~+uWDe+7uhNUBdrMTt3W)L95*Ro;P&k8C{zvA>{!XS!rC&HJECIE~l9TUG7O-3e`a%b4X9m zc6gCzl`f>wqhs4jtk1$(E}m}yuUQXt*xSJ%?gv!U^bCVZzaM~&H=>6o7f_ZsLdt-z z7JO|X&AZh)gqxg%avqWWvGlFOPQ`P4QIpJle3JjmhLqN+!o*C~kB876Eg zwXc5K4lezM-HIddRZ;fTguDs^;P%3z>Z)6?Rh+*Jfquvj?|G`n?0R`&FbqFj`FTML z#A#d=yy6KYZEcfzp$a54U)6Q=z1;HY2Vd^7J$?1JrZ_??re{Up zUGDkdq0fx%nU;Mccz&XMk0>HE7 z#Xw}v*)-s>HKu5_2@~8g6Pd9)4%%lh+ooNU2#?mjiPX0qJOd>O?|SAPKI?u05pSzX zt}I1w@?GKH(N5LzLwjBTue>hd(ygTf!TCQHM~YbE_T2oj2f=88ZGG0@ZqVBH3*n<_ zZ|p5Yw=-+Ev#J%|JZCW*&uvDwbfHqAoQ*q(tvzWlZ!m39cApJZdar1Zr?Qo(x>d*u zL$TgayPl$YrI59}REw>0C3ESlsMvMK^SGDS--e(&8QpLOFAE1ieDZsV*<~lIGlyjB zE^75aY3&n#cj7I5q1&*bwCslOWG8TaqDx&;ozAAkxn~z@-f~85;n{XO{9@9~WQ6Sv zOkdT@Lls{sNNA~a46Za9AbLhlR`Hz)%u-8W;nm}bAxz0?Q5sQwc~Aa(E7OG6ZNB}H z67X!J-|oPKzIgx$++5x)dgnfjL(!rT-o!jP*bWdPTin>ALWT54Gf@rv8XuZao^&lW z+VfnpO1uUq-wJ-L)s509!s#~N?j{23Ac?$+pO2uI=_ipf>!MA(C8fk1 zCKKf!+wz8%3i|cbp{p)cQjtvG8s+DzIeWu}os5wl_s|-PfPwB*g{kI0y4m zX^c9xO6PzgQh)2{C#Q9g^WDIPk6n@yUAm+q7HRM&@P`sng-TSpqsgqwe-L3vlFReI z!H3$H)EFZ?-Q`YToN^_<(~8AzAKp_&`&_}cBgxk6zeVbOCufqj*ZRJXg#AJ$VegfI z_by%3U6=;&{OMPVM&g3JW%`Lj{qH>lr&{Stu&*~TY@_b} z($;v9r@lu=tys1hf}H20p{?CJi>fWW<=)n)^;-4yO{xREmTv_{c=hxiE` zV=P*e-ls;|zE`_-pqMO)g+?JVb7EM<9g!1P4lWHqX-Cuz+*($1Vp{vX^{EV?b}#v` zZ>HwQ>!(0UN(A zpHW8NhYxKj$WP#K6CqQ=&9p4NwlilzEi?7nxJ&<8dAP zdwQ*x8RDE`xiG^eC0vM4fpgdy`Z3&GGe%Wz?AQ6Zv=Og@)2L#aX1PvvKRu2lSoYh> z6gB-B!UGbH4Q;A3^UPH0e!tLIU zpVGd&{ikH?j)Wzt;U?+_Vj{{Wj&qvQHKjxLkRv^;IG4jLwO1grQ&RILlk$z;`xJne z-2qmeP=cIjfs}g4_+!c>&7~?46DDK*)WWiDGX`92jy@%ky^C$rn$U6Ils0-tz%GMB z7H-Y;q|}(9K+?4~9$}5Nt@T-C?cn42e?r-KA;{Xd&p;Lp^Z(9}*nkem%U|Fa?^u)H z35|l{Z!NslD)XAM$zdS4RE4f>aH&#-A(uR!h@DmfK7_=iDHr>(qg-OquOh*W;sIS4 zBZxVaAA)<+NWxaf+0kzJHTE{`Gj;Y5+^bAjQv?~EAMt0FalBIrLx&&T4=)T`Zy$Gs z0y+G!hD@6-eMF`5aKKsFKc3X6sQGG#Q<&hk&qlC<#&W9Ea}Nriy4+F%!8RNmDzWhGdD*1%y!^7eM6k1YS>0M_WgP&Q5Qq zG?1#014VCbeWAm2t*Po@(b1<=Z6~A$)t+c(aiOU){rgn9xVBxtQdGmhB&wVpQ(ZK% zyGthbyiQah0NO**u4T(KRo`1sN}i zZ!$hd3zaImROwNsikQQ3S7+OmwF2sk-LqG_X8WmGoq>UEC=E-tQ|sn(vU0f$H@dyZ zP{w}dKce(}ambH0)+E=m%sg@Oi3OENQlc#&eUeR!*o@v!bukf^LXH~)HuYf?`p%S`6bxJZtWhRORY6}GaTL6+w!yopTEiboi3EC19?iNtbb=P|NXcX=AXCJ<8l@-xm(;@C0O^i1lgAe_u zFMH`-&z4j2Fm}c?P0(;=rSFeF7_#JWvklCGXg2b`sA0DD+;@c{yH$ptUQrRG$PFZV zP1&&3YNO8`Dh49-%iZM#kJ?E-oPU=m7FUMo&sI+1(CAG)W!V=SJH5BqV#{%2!YOGbwgL{ zcBk&preL@r%Kuq*X*6my8tx}({5u9eN1*<$>JgRJA_T30GI=It=0b}O^VSe9KqIUJ z+#Z#NPoWjsF$Hg$?$(Q0st{~A>`p~0E+Pi|Pxem?SdNQ3FkNE~SSI?d9m=hjDHb~F z{6~$S?E__-4fd8bLPQd>zD_t=6>$vdk2kD!qC|V-7g^#d)cf|R53(d z8)#E-{{~T8^D83mZiveVomX6o9g2XuV}p!GY63&onPRUNF1EDcVvo5$flq9Nn+qeq zR`hLXn2dIb+>+b3HG=&%`un7HSW-soyn~s`WT^&8$O#%j#3cBaQyT1Kz0jyj+fL#J z@UfrND3#^9hnsZ#x{)6*YVEZmP!@2-OpVT_F=i3d*$+6c`01WT1~!=UG?V3 zJHr@Ga3E-;tBaM2HdquK4>^BxPow4yUtCvvx7o3EEbZq(zgE-1s4ta7g1?kIdIxf^ zpf_=O|7PK$arMaSE>JCT#=^=b(;l|QOh=!$pH<8&LY>Fj+NTG%XwM& z*oMaC1C_d>sRNK9b>Z{R4c-}tzT3$9zg?So;1`z0`+biba4WSA24R>B~vkH>ZPWr3g~8CB9FX&Gf)*QJfVx-`My`v7L-eBV9ul_bXA1u z3qF&G-3eRwhyx)mV)d;=hYFlJ3OOQTve}nt*1ie_7fwE%xm(O@%(s@QGM14rzJc@W zuhz7}e1=mvo@L7$mkF=w#xvfK@iApLMTLK*{lPO>@_4?|TlDC0$@DR`&@Nq5C~}0G zfpJJ&UXiNXHU{K*Owi(0HL*HzQ`FMu={#pUT7hA$6?bAD-oI>4WEbA1{Il>Pu(I$kIN1{=Pg?yVlDK${Z%2w*G8q`zj zwn>3i>TZu=K8q=Hpf_Z|CXo13G=UNYI_~sZWdg*u(n=bsylEA1RqncY&$9~<_m3e| z?*8(2nn&=98qrny5=nI%St&tA1v@sXj^n74s6pQpN`@wW+Cs+8M(2fxY# zj{2;RXX8#s zlY6U9Z;vpAf&6~GURn8!8k=zfSHX=zTJ#o{0Y-lc(}mECf9g*7t_|zPGKO&&V;g@r zgbixS&axA2LTyc{w|~DBLV>=^Po>*JI0FXhqiPCq`xp^wPTSBqb|`tud} z|I?>8`?KAQ>mvR~7ctQ~4e~k#zAbIrRoPrJG$m6wb@7G9w=Ye z#_U&&l2l)EC8w>L>fwl^FjoM^6~y8mNRWJ5N`ab`&>dAzEkw0;?wP`Z>345Q7+N7H70=LNBrTt;?7wu3mz(vq$F|OV`!lkB%OH%%+cjhJ-;#Cn$pdY5j z5@RwN(r+PDVV7O(lNVWYi-6V#l&8Sx*EdVS2d%ax#c3tn=M~EyP`$3cijYT*kYQWkX|}M+lu54eZBm^SrK6%!_8(;H4+$&JmAuI*h2T+leQIE`aGW5B0JRt7Ay` zO5zNILfmsSZG3QoIrW$^7Fs9Zr6>VfYXI_HIV&DQwkdX-0`4spwD*V}IdiHU)SUL^ zGE%|y>6hnk{R62WU2>UylR8<9F?8o-+SDK2Mp{Hm!_-!X)fe{!eBS2xDTuuUlS4Q_rZlb)GP*rj&i2EtsSK5CB)t_eLrl}vKcO3sf zw!=sYx{}N-RCQlH?#`^HM=gna4-sir(bPf+zRMlKI9;QD(~2M{2F=q3wO`A$BSqED zzt!t~kEs!SkEH&_EEL%}ny!;m01p(+ZYhl>s_vGFhheo`(&g4Hf>~(tLygT#uZT2ZicWm#nL0=yRH5OnG^eT(J1%mld zTp=5vE9yRZ(c|8K{N~S!GWupTs_vTR07qMGL}_$1+oGCBO*FK6ZOxngssAT0cGV9} z`VD#9cg%u`bM7PIIe#|F+R>JT{<%Y@jVmloW>DGzcpQ`0!}HdIYu2OPZ`wfmI!|U^ zP9;7~-;#mIQBEWa^Q09y*X4`7EZgkNv!m&j3&ins-@Ox(O6j|r`k6mT<-8`JthiFD zigA~UI`F*qcJ?jfgf>-~cDumgYX)esjmCA=gnkY8#IL1RSVL1SlUX{BFXsHUPY6Pz z`P>8Gq4faOx=g7aQ4~*HNxiuF{51EB`^)_o%QMVje90-CSJs6$5XTEHa^I;Uf#Ucj z@ikaLN+nA;G)tUft22o==(LrbVhW?NzVB0q+w@i`%kr!FNu8_o@yFK71Z#BW$iEmn z9Mq*X^7$1}3A?`5W$Mt+yY)p+XY=FTKoS2lXiV8y`F8jTiSHQyCnTnR8h<$eUDc)Z zk1m%>-k*_h!&roQi|VlBVR_8_NElw4;!0@ZzQNnyNn(h%87ZxQJch9$o(5%vkhUw` z_LLoGgr?z`Ok~*M%*olJ-dfMGN+qUkG_+gI+RxeTzE5>}7$Tk9`*-j7SKnq|`X2h= zyIh~L9EMS5hOS65MpxNs3s|`UE%cmL=le}fQZBx1WMphA6bk9O+A3%WY|D~nIR1Rt zBWBX{R9c!!{N2T~?H#|1D>^KjrgXY~hQp@sMrPpX^u7-|CU@tvmx6yEe3nYyQLL%uU!pHkRZw?lPc(7Yl5+}fhRLJ@s!A!fwu6kT zRewwB9}DLEwg}MIWDl!~`;C|~1+Lde;9{=vY)w5Tog#@}R_kD#eXBQOH-fr#%#oaj_8%P` zz1Ej?Aryx5z9H$3>3x|RfE8TZ0s=Q^$G14Cp-xCc2X7gx0)D?(gJ~e8VF5CuPiVa` znw-VYC(n`Tef)vr`SfePgH($G4yNY3DrQ*lo(t>fZ>d^FvkdV$E6Cmgek6Km*3gVa z4anwiKQh$QF3hAUVc8)u8mbJ?zdyZ}~+$tGz2K?vg9P1J%$?jM4bE4?k-r zf=zA4%7}}RIe3X=1JM5weR%g}owoOdU9R7aVrAt^78>IOQtEF3ftnd2MeNTARTTnh zV;Yt4^C4_Ev$~!H6!g|t%{>?SR>z;i{irT>s)I@1LDA7H1Jk_Pc}iS#{YBfOV;Qe* zYGQ((t)^<0s( zFE+jT#gMHMiiM4{#ouln(Kj<9M*qyYkX8#7{)4P`MXHu61kAHFI6d_w3o(K?JoU=O zaYwArH1J^T;m{gGgaZa^_8YAlw5lQ#)$;PKRLn#S6Ms7_94&@LCpX$GLiHIrn7EX8 z6^j(E!TA*h-Pz4qw&z#7{_M)e*&yIrYJBc0pRw07*fD&$m_MTbdt+^p{WM79K9E@qCPkU!w(hvqA1{Fup!!?)Mg@#1U*(_jY=QZsG<$F?As|RenRE~MC5~zt#(E%uBYh@Nh)`^lcn7Mz zzIZsH*D*6&t}-K7Nb(0HH}6K=y8jT(&E@I;0Bg2ZM0Ef zLWro;^A@$fn*YUiDRdKGHEC>=-&{QVu80K|LHwny^wYDu@Kt;6WZ{Z2fd}p9C9WB^ zIKdupNZUTS;_M~_=>7f@Bka{SBW1kPn>%9dFAdov7Og+K;Q%Q}gjSu{^~MpcU#wx6 zG~fQ4N|l1fx5z2Bd-^Cfe*801Y9+=mh4wHPZEz;5gMcH#bhFELR_yAEtM1ze9nn zg{od9X%{S88pPBTX<_wfyQp{?@l>|m;RJQ9 z^e){4#eA#qbk&TgMoYg42i`XJZO)PRQL3bPv9g zC-K#9O5GEgnBMH3P_Z2jFhYXh*f0FdFoY1aWH1U4{M;~vUwv)S-r=|R3a%W$Kh)9q z2_An@zOMDm6l{bINN;&k2Mg-kJO6eVj}zYwVd>$yh(Z~ttAO;8)cjq zN(gc@5sraVw6l4&3wKR7n?8btKM^9PYP{5z92VSa8x?Z1wBc*6u8|Ge1qXjt`7lZb zG$DHy7eTdH<#gQb^$Hz=LmtDOWCYi}^sx(8Y>QtVm-Bn9DQiw%d7c4`(vZxH3z9Vd zwbNQII|O)GyFuZ;>92my5FzV-!>DHeMhsn~U55XK*gQ>h2{XpO&cRwRnfkf@W^WPI zchK-KDB$%Z&I30F%6j`N_4LXi>XL6l^?Au zpXmwRcrCp;{;wgJV_Mz5P{)hM?aIC_`eDa!U2g3W$?njkA&9Uf+c)H5+u~T>KjvaL zvLV!<`0|>;QlMJ_c(^)r75GRdKyq@`Y&kZHmx~SiGf!eZs}wIWB#MlW>2k!RBrbpg za#emjYG_HHj9_z>uPDq7i+0twEjkqC(L-vUfxWsAs}1s}cQ;XvZ#4d#J}MLZt^Vbt zXs(V{=)~%|mbS70g1{Sc<_bnY$YO^fxw0cU2f}oRD@*1O_@d?1#&AsW)0T7W)|J4& zc~A84m}|ZiYdJyo16-T-PWuR)RMqyO`c9>gV1)qULR2r~9d1I$Jwu<8>Q$A>`SFBs9p*ExYlA@hhs33OLX~l;EI(635Rtm|l;8}l zJiLSuYA2HlRG=V_h$-)?sW`{~?w}?+pWg`!B0Uijouwet=OFV-xZx&E9Q5Es`4QG1 z`<*@>+#x+sh7?4H$((9 z*ed=CG~)Tj+|N$b462h$fb#J0GBy=sYSodwz{t*AAj*!y6EHs`)KeHd!Itw*%%o3k z$aMeThZCko<5Q@sWO%V)b+JIzdL!M=o1ya6@WvzU6`$MSuh^=QTnEeh$NdOEKbN9c zOxG@}=Wo(XG)eSjeB*-Aqg~{1jZENg`j?*lExVgfL9SMfcn}*x$==6aW@j;< zkDSka#{F6JvdWJK8CUWXq5Mmap7qP0`y||Lyq_XnY+~+*yb-=I=ImoE`ouw&d9Hc) zU#zJvM^xPQH?i&b?2q@>p%h%etbUn0xd(S59ej?dMhMHwhD}*JS4$U~v!Cx(4hWSwxi(Bj(E-;ij%gU0z8(e_C-b zxq{yN?J;pj6O>LV%YLrWa#r?!n>EBAOiQf^uUU_HN19WY{En>*Tz zoo@_o?PTi?`grntT!RB$sbf$6`u(BHLqncS0+VX5Cir!J{^!a8SX6(Z*OD;i~o+d!9j9Q*^{Z91(b%q&F>cNmm$5scQquU2+ZA z>@$;VVicEX&9~>q9Dv5z&W17J78Syc-md;81;OsyE+-)pMJph~I|4N@=Ud&7=bd5}?e)bxNGKENk;IHcB9Lt;ql>WY9GNa8^9K1D=#u3Pu-JwX<^_QmF zR*^=|RhNE>QvN$dIrdnwd+0K1-Ie$2(W@vLD097n9cA}dS{Y!Vd3j8jo#<92*w#oU zdCj=NGEkSlJq1Rw{YAK@9H<$tbw(9MDs4#czrqV z`L2jRN%&{)(S$9!x>V&6mM!$7!uyfI8?!U8^;_rIS%Ev7%w?J^v^BS9UF7KD2*pth z%!G26XoD1Gp04nCe(tP3Nai3TSrqI5+3a|b4m)+)!ke*8-Q71OCo;^^SRoMtw zE{v!f8yPkF9hh-@MnV!&+pPf@yxRQ?$(_K_=13V7MI4`wIu);SbdH?Q&oO#_rat7L zDqfqUabT(gO-5w1^mnz{%7lVcBWuO@8kJ^~bt8SzWZi-2)|^>`@5^^C>+e`)iUl>Z z-;D~Hdgb>-D=wDdOuo+5vL~I=JeN}u4BSxvc$)2lUGRit+T#qdA~eZ{*!r1p$elVf zHrnUBo}@0>KdV@>=my$Lo))QRgspJR<`E93hX&+krl!9hcc97Mcv0n@G)#6x&6_!& zNgkh=jU{B4IhIwqgjVZ2W}gZqK!wChk`g625{fv{QWS+{I%Xm7qmWpINapJ@WxzOE z-1ci~!)#I;b*vWSKt6P?g1ZKTy4j)2#Mt5`lo{9Myt2|6@w`Bam38b%AfDq6(gB-q_R-(h)~$N!8b zUQXc}#W$eky2^B^u+e(}U8E(??yJA%*iWt&EF?7L@41ZWL)=h~9lzNtwm1&i|1u+o z$4s;&4Oxa`3a%4H07Y7ebXor(L@-?qr> zyeK1F$3MXT>u?svc0A`q`tpSw@Bb`3{C`G~FJDsidcaUVr6Q22s4rmX%}Xv|{{PR0 zqEsz6Fh;=2QD*_2U*l3rAthPV9qDf^M2H~qn9g^hB-$ztF64N+p&OJ6MTwLgJF>cc z-jQ(V%2Po~85tRr)dWGJ{G@3^ZOibl-z<-WwP4JizQT!=jJpJzS^Ie}6qb3_Ei6mLWndge?I6?5qaJ((1RnOe|~K$ynr0EiEO@ zpumho;qj385I2TPI@ho-cdJC3W1$;&HX7*|3~!y9^b1E}uoWd7%aW!a$B>Gvg-en@ z+FinYd(H^rv-5jz>Z(#SF({>(zp$|xWbr@S*_^sI}?IxODT3lE?I^DKW z7rzJM7^Y{J2+pqE9y3}i2_!h&gKy+eqas=k5e#f<=9ZS`Y6g}TCNW2`srn{Pay(Vd zR8i7Ilnk^HWBd5sL}lPT^aTng$Az!`(pI9iNRBSSPxQr8;IB=2RfbB(JM-ou?8Ti` zsEb!63t-P1vgnOTTWQ*0k&+|NT?x3b>7arBMC-L9$L=yW@n=-dO3t_lag+^Yy2-;3 zrAfGfxu}#WzHvzuN=YU+M3VAiabrFzx{%QIe30snH5C&O{@?)) z?!vTnuyy>gBy(}mZtd!fEUyx-B>XB-JX;=oZ25WsHvTVWZCKXKi$6-7r{7zE~p6TIt*rKeY@J z&bxRAa%<1g`ZwXk|yi_r)cZ-!ukR6h8%_^N!6M&xsgG zGUjOMbgGS#+6!*vs(})iM$DyRA@z$-4F|W49^Z79H1eKlKZ`~L*|=*pBlwVFF_-&N zxUS1)6oif2zLV7~WP;8Socc-&T@939BwQt)5f$lO#&Gc>!h?J-qM% zR<>+=>1gKzBti|-6cH+v4n}UCz!+}v|JBx8fVH)3@52Ol4esvlUfkW?U5gbcG`L%_ z;O<_$xJ!$cQYh|D@#661oZjE_Kj+?WCwZQoHSfq;lRbN~*UWl*;I~5Ka_&9mmeGew z)gd1BZ@EDAFiRiJO4v1_@0&nNvY(|13FmO~eo^eei0?yh-aE2SqqLnh&#^TIX**df zXJ7$zQnzxpKXE~s=-*O(tRB^^m$}4wihl8hH(((k1rd%XoQCeZzh%u45kCW#ZTfsC zNF6>ueM92$ZC7%ap}uWSEaAi3M|-N-oTcn*T0hSXC9~E!J=pD}s=~|z6niL<%5y$} zuf)Yy`_VN)pMdnoHY+t{#fAYiDUv+t(^|JPAA7;z2f#y?B!9lA%z@E~7fOqy2NJJf z2H_U58>ngS^xB(-BE?a%lF#07$A7JyX+VV{PmF(SM38~8j)8@Vy0V>(Q6`p9GkZOlxuntqcQqy7}0FUx2hkg_dEsupAb$tSzs+y zkKd!*xLSE3u8m&REB{;_6V90A$J3GX9hGP134h#P!L}cfbD|+6)NWC_7ii0VS4Mx@ z90OW;stZ_B-A@Tm%=C+LUc-Pb9gY2GZfWti*tyjKQGYia?!D5g#g4Ug_ zZF=$@MMr7ySu4Msd_i72MDZgXtiovu*DN;Fc8R`vFy!*A{c&zS7)j0_|06Z3WR8iU zH^R1y!iGXHvRTrN!|>A#9LVA2G1|peau*Z@0L_1r(6encFEh8LV%~$Z{yK@m*|tB4 zZ_y**)&uJ)x7LMtwbga6`Lvl9ekWcc6+jK?xXL~|&X;s8#yp0>3b;oV67W9HXOXn> zil?`m``7_&cu{&=&ogLoxXqGxz|KR>4&}RMi&Z4EAsh3%CxV*0afvJLAABi#Y@j-Z zx`5=W_lmLBLaKP>A_g6^SFmYnv$zROGG67{x-RKu2S<61_c2siWVczlwvpa(ARVOv zuKv*!LGuMfY+fi`lqE1VgA>$=;!G#K&=J&Q>`tM7RSA66z>=fmfE_oB z7(=5>Qq|n%o;=(Is+tC)Y0{CzEGR6cb>m(ZR=RNV+&pyGG3RI8M?$p?AHFdV;-v^~ zPve%#ws+~>`IqDc7C%9YWZl~kJ7mt6!czQZ)W5@DtWr$1Xi&L~ZF|cndl?cd+Ku^! zQ6O-}ZU?~{V^BvbAPU3nQ;+>}MHEEeEW47{vxMU7?~#$u!wf5U+l9X#09MEol%sE9 zpN?ddTMFB7;SKO25L<&&Ap>Pi+IZB|38bp5AbGscNgqs8RhrynJUZEgDG#7lOBI2y zWc$g#nTDaCF}Eco_S`z^y~r3F=qLZ9pdz{l`SlU2jJW@SuAzs}*{u-eP`BcSujJUL zp`CE)8U9vFQTkdaDS~fC8{xVg_h0hK0^Om3zH(^;3odpSG zp=qW7Pjb57i#7VB*yT$%^DC8sn29et?;B#8_3}#PtF`H)2?TekvfiLp5$ug0ORMY4>DbU-C8zH?Jwa=swOX#)I)@RHw3dXUnO+BBK;`qhD zKcO*5l6zRoD~~;^2Dn2?$_v?1D>f08nZM>ax;6NIV$kPL)&~LshyB z!0yahDJmtlI5zgcnOFzW(|-Apqc!7)1mylV39=7KshlNarOMxP3!wF|0{Ny~_(=*S z!Gl@6AB6JqOVZj=qD*1a!I)Fv;1^t)109~P3k@$uGzVxLzDg9o56X8j>&IzJguqFP zMEFRXyPOsqBKDw-nmvK#FR2%g6%9neBvKUBSYwRqnow>5)-e3vOWUQQwNt5J8;i42z|)HII^U6fveVJ zTxaJ@I;uY_-z>6S%}CEUh)Kqp|1^d1K0&lxs6DRHse=JwdosyjtH5F~+A8e&eMafZdpsl3j!MPB9>9kNj@JnK5y;3~!D`=}qr=Z8oQ zXQw-B(V+wiyIZ~{rM6;^sm8k1zIeA>rRdbS&@M0~F(hDIdT-yv7O- zPxEz0bGA1H%6Rz{A2gSiT@0Ew?Gi2v#qQ{cs9phc#U_?DF3KJcb<3Zk1RQ$L2mEjx zW8FcYu|DwQcu5>ENWS=2 zVA7gmnk(T!sxjqGO1nUrsZQ0W5%I$l2&Kg%96h9NlG}nQ_ehOt5SujVA0>4778>$F z7n`l2cxu=i7QwzHkMY4kP0X3X=lgV1)6gO)Q!e6aj4B)CNhT+eXjGa>^n|D*TN7oi ztBlv0ikyLyDMs!H+0v$ul-8taIBfiV{7WU+L|J%|wxki4XNaws#z>*q8TZu6mB@}v zsE_GlyCde8^}H8;_3-rK{9UP^py<$#8HLt#Is;MBDWU^Zry_iP?(V68YxHI5Gj4Iv zbFhgN$j0cvttMW~LgInmseF1-*VclxCMjGW>)86MKEBbE|6;f^ac7*#SKTI4A6k^A z8)soB>xEBvKSo;{NPQt;xx`;$8!7Ru7|XWWo-v87-WG14n*HsrjaQ6p_NBXR&op9hgCKj~W-N?25!55ui#6{i3FwM3stsU1NF6#{kJEWaN2>9_XdP!hfd zY!AGfde43eBLVU|dwJbodz=!yUGe~urr~q7s2x{O7N-{mX;l10})7E{gbkb=^_x}NV{M;f{ zvbtY?9s%QxYXOp~SURiU{Ag|M?_xhPu?64zE}<#}O`@{e7}F7v6>|d6hYMw;SUJZEqPDimoUbpNDj|D%3FIkQOl)`4GvH@Qz;!xL&x6djB#~- zt`#(hNYYb(PI+@R+>u3WMH}u7Bn7Sc@}#3))Se-`uI#u{d z#oaT(u>}bZ2KWZPkITWA9IJA5jh#GmHX&0AqyB1SNz!yNBCljZGdrPAuQHxCNm??i zhD)?W2>e+#m9Ps8uu`k!gA)(zVZ@rf5%?Sr3~lN6qYW?gst9kul~;K@7Xu-)nc+Gq zGc`bsA+(n1e_O^rq*#^30}}aUE2isPP)fcqioNlVw2a=b%cf^Ohq-OBrwCWKb=NpQyi{}{P4Q)i7ungCs}@9umFUAq2czM0 z-GXe4&|6e+7DbC6#>9wUXYVTM4%E(XAEFHhkTu8z*NXJ1!ZdRfagIxOh4;=@_o1C& zi|+dxZN*nRZLtEo#&1}9HG;FXnqPmk zH?|07S|6SP+huY&XFxx2m1r2TINw)8w-GKH#&??p3&%MN44vd6Kdtro^ZsUo`%R>; zs64S&+}AD3SJHUPc#c4Qtke5D2>LOj<Q(}dY^&wV7E7-EuNXgJoM`=Q$1l{# zC;I?G8kCP13<3*WuNBY;^8!|;O(HWt)+!VHjDy7;ulzt<>nR{)k@nhbAdtbUy#cTE^FG#@fGSfq)*02Ud4#uRa(nO5IW6)EVRCvM;vhyi44w&&Y)SJGd;UYIc zrHTV1;_Y0Qaf17C?76Fx%FaT=}$Ln2kUm9n}@vhV*I*!VB(+%g?Qt z#LF(Mgv4#ni!;c{szRd)YAuQN=)a^~durzoonW_E(PS~feopOCv#}O(Pb;B%7iOF& zDKUSHsA{5+f<`KqH7k>Zx+fWn=_<-H0_WXs}P$*JR;C*zKZbeML( z5@~UWQ8(74XxJpxCa5^5o*gVtwF-#asT*ph7o;+@bb*Wk+R+OhL+4QWOnmq(mD=2F zd6gUbB%`$o$a&#*Dd>)7wJcdEl7$1qBo1jE9{!*M#;%-^d+6{LnF&g68SflC7T{S4 zk-_`~9M7_^4}+y#Wh9%JU@rQ0A1a=tuGs0fU>A}SsS!+FL_4B$!~p|%XZjqMKEW`# zfeOkK3X!ECzb6OyiS1E>bNzvBQ~|Jh9w3oEpaY;rk>l29hbcA}M30^4HE`FYN&spF z2`9&b0^TP<@3q3E_>E7p?kEdaqD@={61M@AjW? zp0qqd0-F+>rX}5k8nLgq9p|y>4|2D?L=ktVoDY5?q^Zt{ov)Yw#%PE`zkH*cJ#H9Y zGfBtHPGj55hrK7syPjFWi?KJ?^@gxrHXF2l>G_bC`%AIcQw%B%;oJT=*8;_pp6c_d zIp3+bDEiHQcFs0}g~qe*T;rOI&5F~)C-xOh_|Yt~pwhskU+MU`nf}@YvxNqs8l;B2 zi{B9lQBV2M>W^T;Ie(U5)dtQ`irTuiE;qRWVijOWWoK+)kK@gYv5XyI!KFciD+nNJ zZPG9AL!O zT8)~+iLK2LJ&^CS$6{kh9Z)6)05ixReY{h7>frQBr!iEp07*ul;z4ID*Iu^c32{}#=avM?-6bi z6nYbEwl0%W`-i$}X^`)9PF|DHiyEl%pVdnEPN(dS9l@xv5LdO!dD zrlsp+g3|gI)+3|Ur#ot6MPh#o|^pL{gzVW%1Wp&Yz7hrXM zf94gS2*CfQ;lgIDJZ=F;8^NcDW-?@|Sh>lBICoryY1C8C+tGUx`Rp|w1^s@#|*76MCu9GWokrf9x$8$g~cBPnQi#C zlT3%G__7%X54+Q*59l03R=*`P4n;BNHbq_7LT*Rj_Nq5PS+K%z?yt6Bb`5t~MCkTq zUI}_{F1&`pzxAOVDL;ht4*GhN`P?Z0!F6QN9pwXb=Q+bl%xmy+SlB8Rj4M9%Ci+K| zXG`oS({}U348Xf+>_z4Pkb7H2#QP!Wc0HDGz$|QH)O>@PbJ*yxx4XP^Wce`Zc~?8W zDfZ*$*_PUQ#~pVUrD+8Ju+w?EFa8=H`GD{iVi&Vm=5?5*YHY zNaxWkVbeRnJ7fP16hV}PFCKTAy8XS@P(8`K=kdm<>*I(4?AaR#pwGw&op@a3NO7lQ51t{0K3%RFI7v7*PL^lA)U~NSDlx>)4t-<+3-Xc3j=Km7elP)8a zxhZ^?mj@-@m*`K~kI>%tKW*#nD-xE{A~dZlsfdp8c3 zu{Ij`cjzSTp-PFMjI0-zWC^c~tT&fp$!fY~wpVNP&r9HP6{x9pNb@(<($qE67Um;m zicNKtgx9R=uT=!Sc6;%;N5}H7F04e-INgw#EVFa2YAT&7`98!=_l!QBQ?7PC^5LXH zouT?FaA`dTL5!z^cN{RzR0LU zsI{pdRiv#ke*J;-(3WS;Snt5T!0dQ%Db?|m6kBC7E9RTKMtJ?7Lgz3`li0EZtKJ}Agf@drb`sx8 z8%u#VVfW0j)dpL9;p+w^SAt}Gkjq%F+m2jJ%-_zvWBt{C_V!K2Iff;+ z7zHxuZNB?SffvwZc=cOyTcjdX zVtt9j7EjUvA^9=&7u**xAJ{5w$Go0o_cq>vJaV86XeJt^^>>UvQsN`a)B%4sYVC|M z4>@>bkEIFA^mJ+EP@ZAgeTf{FzAwq3$;Y)D2M_4!T5H|sWwskIQLeK-X z=yBr9X?Q-9`} zUeU}F#`f%Vuu9#H=Wksc0$$1x zDg$?`YE@5BI%;(V5LzIsT5=@l%QQedI3|rB*}v5+!%i%C3rlXdCyZEE9v66GPA^W< z%l!xm{!Hr_^E+K3v69?YSh>umF0@UuHP&cOhx!1SM(OIH%P>o>=F3g0&?x&BSN4K% z6wWb!X4v44Q2X&>N?qt6ou51>CVmj6CxsO3Sk31o`n~>4DnvF7m?mk~)F=*6>f9&C zx{A%e=w>>Zxr}+234b$q~LZOqK0We5AYo9kfg;<=kMkT+>xAZ$2^8HXIBRu7(tgQ2@ z$^6{K(OEiS@lEfY6XDhNV0O&_$YOHU`=n3*sxOJ2ZKoJ)Poc(AoD@4l#f~5&Z4nnW zOT{0o#WM&LQcsW8&7j^=r(PN-b~2BaAJCkIV;(lNFBWqe_MaDS$+D4J`x&%krUqM6 z+zgg*!|^K2HcTEU3FU)+FBi-=A8U(TLNxyl?}a$%NSK*|R_O&iTl9)R_Lnz(R0&tX z7Q&A8mGr;8=_#0HWZ;)aNU*T*lx0_J4PeBpC<)&Tqf5VLSe3n~x?$|^5>a&*Q5u3J zx)zDrXxkvP+z2Vsh_VMd|6Lg0!syx&6!N}Et~yav^>G5X#rHoB9QPZ~<#$>cn-3{f#vyJO;74+8=c*N9D+Q+Xx57Ju4q69G(_lzxy=@vU=ounnPa z?db$ZR+I6uKXv!T51`9c%=K8b|L}_4`NEG_H^UA}>l3nI-J1^AI?nc#pW`B=7(}#K zK`4Vv+HoB1$tm|x0|dJQqnJJ$)lueg{pC8<@kO@C5e%P5xGzFCyO7b%f?VI?ZWEN` zWDT6`@TbllTUP5ZBU*v& z3RPx0o55g-*-8LR+FG#=BQLjntMhY%jgP-jx>sHJWu4b$`i=wc2Zi6drti@E; zXRehz`v#4`YDsGAJ9cY?{ke{mLhau)o*FVxFg)Uq(U{@CSGwUq!lJH-A$&6LLwGcX z8Mt8c_zYz=M1I&bg(SW+69>xqYfQ-N&_taSt$Ip*oGi$ulC#YH@R)6Vn5w18Dc>vc zuteD@X~%GbCRKU&E=(0u<+Cc*qvf!1lAAPKerWcz)Gi9aW^B9sZ+T&CusrFHQ!Yl% z4wJ*n1?L`qT=9NsP$FTHZVxPmnb_c^kAbOilflBt-9>fxi?1zL0!)ftKijL@A7B0NGU1ES0z(a;~&As$&jgyL^)TZBw)O z<&o4zPnM}yj)9GTiyE2{-)3Vf?$$9{{nrMZCfn>9vb1le_RVWm-8Ya-tB}>lA1{#L zc?gK|!c;})&_F1tCAj~&IwH}@zP+>#vnbG)g35LR5Xz<@3PFIOm+KuY}4$khz&As6zWwZEdNTVfFm9 zT;O-z=Z6N2+TYCUf=!7c%IY_xYoEF8rUX6r#P^@}_wZi>uaTh2=j7lu5&b3$TS4E_ zX7NCWM~ue{U^djqtiX>^^!m7H2&julQhM(f{FPwV%$*KHaH|6+H3pLW(7xhL)d{(| z4mSF$%^5@MV1KKY?3e#e9LIJEFBHJX_m+>cseY%?Qel z+FoE9J0|VJTxFBzSEFRREV;H79sO^Zn}|KKVxf-UX~|Q;#&oK zT0VRNFSC1eg?^%BZJ8nd-TGFa?m8uFP@H$Iplu$XjGO+%>=?yKf!rwmfYvYMN(eeQ z10fvd%sB{wx|FJ@?adCM`#2&9m1PQ>^`$}_`2AD*n=c~pS}FRtzP=%x)l+xbKLo?9 zx;_-P`Ngvvp7q9obN$oB4-$1TFJs}+-ds?HbTfV5@*Ie$#G|t!>etoo8nZr8ZF6TD z5#WU3MoYzsz$h9XFvyS@bG?yyM2O+2thhUd)jjzzIN(5VJmjoRxFKZ-x}4uP%777D zB7{&!|7am~VTR@GqDwpw8y&D0kZBto2>3|)rIF-wM!U2sp0P_|*@C&6zRV~zN~t@M zKt9LO4uWCHF)OM}Su^&-aK)OuTtR!Cqq5c3C=|)b>m?p{~=RhBqoYRtQndcVQj1T7aGfD#PcQDS+ktpy-#DsBw^_>G6en{Xj)`tc*%|P zu=NNJ1myF7n=X)lN(^7PfS*oO8p2$ssaj7ibP!E>3S zhPsm}x%xrfQ(t-M7LQB`k&i=#qF-@_Ut7-!#me+wGKR=42 zyryL=m)e$c@@Sz_?KPW~))`o*RHE14^?ez$(5SjD@qvZuSixpQaoZ+!5M)&x6z*bM z_h%cM)c9%gQ;OcS4^Kvlpl^KA{V~*45a3#C*vJY(YhlpZ*U2w(u2TxMejiz-`!P0l zSwxrAojXjBjRh-~N^Z|YWZ-8%xw3N+?nN7XH-MB39c|uIG0|J$gS^*h>Cq1*SfpP^ zDdfOlsQ5;Ep3j0}08q9#liwIOCVbWbFjf^;VxBDK&Pw08XpV(QY5OjTo5PE$f`>CS zhLs6actJ8G@aYy-FTydi1Dh^C%wj6`x4hmXwMHiATuHRH;|xt%xtUv;ObVl(y+GS? zdxR|Hw(1lkV<+Fs-S;-u`>Rlyfp$c`C#;?ywf6*4W+H--&4zNU?bs&|X=vv@1#X9Q z2|Fy+dyge^4Ykr@Yz3`_zHYy)G@T#+t;YD>S6TDLR^S5KS`LVo#&n%T=I8SsK%aF` z9QWOkiAB#L^FN0&igUxM^`W@u??v}!R3fs#zRus-ZFWW+B|)7H2XmoW>Q!c>a(r_7|R; zPR?kv{JtpOYPC{U>z8TsljT^c1(eWV`_eP~27D8-M?@OLF%NpCMeMGlYF7zU9&IcVEZ$0#1 zM13jqyOx?wY?q&K(&u|OyRsBvCoayvsAi#}JZ87Nfb zNvnp<)U(uG>TkZxJ-j~3;-8b3gdwKG)h@=AU-0mCG}2b+aP&G=Ld^qLDN0&sX<2I1 z{&1;M!C`WWd63dgsfiyuUJt|&n=m_viZeO6!(3)e>=XmfJHLIc*HX~^SScf3Yg~dRN#zA%nW|09gA#K!vq0+&2Rh0rkmn#p z>)bcB*qQ8Wv4jPmtOcgo!R3_WXI3e&VmW0Z0Z@ZF05_VgSb}Q=+2Mkn(Bjp|LQlq(+R^;^CUN5-=xj4RQs60Z|I}}q4gzMpr$;mJb$0M00 z6-l--{8PUMy7Z4%3@&D`I@Fmb{SvJ#@Q?hn&@T3h*o^g)6+pfuDkkj}JBVzqB2l|0 z=U>`yIRx6?^_y894`k)_^AS47VnnpBk38FXZDRYdX(odZojTnO#wi1;QHZ6zr1<%K zHamQ;BG{aN4b3b?ueJ*wx7G-wTP#}|$k*CbMIzCqU&)VX%J!8jw%rNxl9Bf83*uA?m5=nw{QsqRmt zO7WcyU)qUDN6?LJS7KF0R975NMpj2c7adOerAACoxXC~xSlbA9l^2K~EKUaNp`G$c}v{auc67o*+ChB1%v{*v+Y328!aKZlqsp12&*YhUGvc#EB&f4^07UVQX>S=^ zs4i|S=+>+TD*ea{x3$}8e+M5rUg4Ci^%3E2o?hmxLmyYAymgCgo9c$NpDs2D7pr%J zH36e+`YR7w{4eh=UXop(Sl4G8ArvyNV-FxOO*}TZxNkUmcW(F-%N=Up+TN-pts=Qsl)C}~196!1MwV|@EqiyZ5nbp*T=#ff-;t!YA+D5 zqL84xQKKrtBEq9kb9aM;7aK)~j7SH-rt8X6t<|8J8>8b0A?tF`uO6`sWg3vxi94S6 zU8$nmaOG8y>q>B9lH(w}Amz#VM9a|0oELi%ut_NKIgSzL-Hg2JxPPlAS&3t<<%EdJ zeLw_1*9RK$QYslS>YLHv+OTCQzXg!b?MZqq%Y2UO;umG3%sJh3*(mg}Awak#=Iwpva^-gbQL zK?5&+{pNcvgw=rSrFHK`J?j3G-(@x8?N6^(;DB@0j$($D*IbUXP^43#xgV&DB7KKo zfs|%?OCRYqam3?*WBx!kd&C7qACXqxROf8S!0jyo*ZRcH!(a@5 z#VPq9Am$$VJE6Ru7N@p~R4bEILRNyYHyw2oNqI$P+=Kx^Jrjpf?qJ2Wd2m*ukT+SD zHg9nwywmr4#A=}cqxtRkRe;+Hlm<1{fyD3O0!2g@HI4%)M^sO;ti#!$Bg?M(^i8W4 zlKe{BMrLv}oqhE>Lz&|5j!fDvJO<(R5su}hOv+-or3FU?-j1v$rF8`=M~WQ^CNf6z zbW3%0r3l||h%P!U8I*O`SCNM1o*^H$s+26qB%#pXm2>Nm&2b|g<}jeUJIJV#K(TF( z%5Y+zD!cW7+mb5M^#{mqDBAd;PK?@NtejZDYX8m4$zyWe-XWqDp~;v~#0Hsip{%RT z4BcL}N60t9-zv>CQ)qV4Dn8d&i^0)aeO!A4_$qqaF87i4GM}4fRys(h4>=7#S2p5| zDt3(L_iE9%OvdjzXu|XD3w1I!w9~v&gbO;@q#FJF{!!(a2l*SQosZy&dDvo-PkEwD zsp&8~^5D``LG!XWBAGRv)ygjk!<;_-H-O|Zy*NO;gc)OwP8jbt#8kr15VCer!{uHm zesRd$S#$G;aR0+M-oaAh*8Gf3#nrFG>cNIN)8;jO9;#V0(ai?sbyg(b@V6*d*{qFM zW3*es=k|0}v)ed90%zvxu7fl!q&7!v+7+Y%daI#^-t0&7sw|qF0^YxdG|8NFI1!Ir^Paq!@j>-5)qzO?}5J zZl;^K$?6RxuOi=`c7D{l!9nZsiGXpl;adGLMe(zS@yEUwNUMg#FuFzx|Xrx+V^u0$pR**#te#t83@^yMIf0DJ!7_t79T&tEjFDq zZ9Ia#(%L2462xC-fYg}Yt2Y;drI~PN7X0CN5!{ghn@X>A*#jaQ41E=u9i)rF6)M@lxZg#Iz;ArQX!G-qfPr)aLJ#*9X(_{HtwK*62Ar@b9Vz z#t{)0LiV0GaUY(M?1%$m8#?Z$i5_Rw=R6ZXVm$H4%6IQC?DbaAlFusMN}ay#NiRl2 zGAm}aqs=f}TVwxp4KR90Vh!v|e_4s;-y32zxB%H)ii-3oTWEpQ4D$>9Xp*p|nUnbp zPgtK_v5&SP5A5XGwtj~ZF_}A*T?B~7t?En{5gEa?u{*J}9e=kvE)(9Va7$O6lJr-1 zRPFzb;}MKN$7;7BXshaE}ns}- z```GgQ@B;c^4SABfc%GP@r8pHhN{Y?7yA13HqyYiw9lmszbm#!WsABN z5%Q^vlntfpV zn9p~Qgrs*?wouBN6X?m`&3Fo$ylg7O$!r|U-Zi{SH^m+=7k#NrLf)EDK9}f<>fNwf z!Nz!IyEnDx>$fn4E&mLZnusOr`%2Kx%rWoWuRIs2NLJ7JT*0l!9rSF^x7_drwP+HR z(z(?t*AJ=3M%F!^a5&x;!IgW#GSZJxX!2{r^b;L=w%!KPl_Cju{Qx&;Zyxm=&3ASs zY&~;f3+-yzce)FmJY!*-eGl!f^PV)oa!sDYjVjWQTX53IADMam+7eTqQp-)`Z7or) zf;_Tbrq?sB(wFCD!#z@ey=kuv6aU0DJKyQOeR4`r?uW#eq3O)_9I=M%?<3O~r+cq3 ze>o;5$6})2Kp1{BS)nlgi{>Y#po9z@*$yB9Ie7wQfTG<$ISwb^kR>5tn)fqw5|1lN z4~Lnr2?>OC$wR@NEw0h0DS0zH{o#VVvdvCY)-u_n zysZ53clT}1d)M2Sm;JeYC^jh~c}`>Zr}-^QeV^E`fyc+gjJv{Ih_*Y$^6;A>^|~co zpd?#+Q#_|4eO%L0-|A+T+?hVCh#w}$$~%5V+G(gGRlD&KRbSjk*7)ByiuSo%duzr^ z$D&RY4f8H|4j!ZaTq(4;_lvl$FiR)=UN|mIoke)$aqovtWj*jl3Z8z(wIF`;nle+_ zs~{y<&su;sRUeJO-}7E{(TZmUm{%b`4-zd~;jOeZBUHpiwRT4~fmh`QzJOArxdpz? zK$d4e7HOxRFJG(1{Kxm zC^;+DW3xF7eWiOi7m`w9Efm1k(PME_4ugac4@=8muy@Pw)w=EM!K;k<{Y^?5j=l0^TrB=A$zS_5evhVAvpixV=){iMwe5~QAt&L(M=sGM4Lycs*&Gq*mphy>2hdqP~D zG$GCkitNYQ&u`M-b2o50Y|wGynHt=?ekKTaZLxpE#cAV^c^BbpI`Oj;)=p}m4)tjv zxs5BMzdhI>V!N~RReLsQ8Fdeqw;-z&JJ8#-m_4H%XM2XQ`d#;3o)6h~QfyEIaGIr_ zWr0xBe{3nTT28~|w^+bfUgiz;?ii9@{<#&7Ck9TYe+&QH77?|o*(yY6LIQUJRWjdK z`Mz#`OoI*^@9Q7bG8oSmZ(a|+&1Mv}VbPtEmHy0KggIal>Hj1-O=pN4K5GAS;DR-0 zW$1Ifz?MjSt-Mx@+Q+^8&?|P(On>hXTw@#kg)h=7ry{*6ok%ineSx5ag~Mf`y@GkSIxi<+BN zT_@r*_JB~^?!2;_6}~-uKFd@}|A_4~AZbk4Bbp_~3$Esq)7C3%!sQvrJp`1<_5#!R zB)4-1?|-Luu$}le&CN2(%_>8DSO65k_`+Rw&)z9y+i1<+s@Yj{C~cs^l_85DQp1Hp<%haL?yvSTLAt)XX#r2G1$NO zx50~B05(|GzfzI60o;FN659ZQKWBm402Q>qa9C;^hg=W}Z#D43Hb4UDFVXt4!B{q! zatDA5oq!DH+y#)N^dTdFjdlR2h<~M1@`1F#ZaV-xXkYZdlflJ10Gz**Dum(!!99N^ zJz@QoM4G~fjm@mC1c10g^yc`-z7ohf1~A7iK%C;QT4s;^ zywdVcj5w%H7#M*&0+ zNH~Lk9OAqwWMyP5|E;(R=^$bsA`}!VgyQYr4LuM5Ll_ZQ|88l;A1Qf^!PR7VZCJNX7l& zr3cBt3(=eFA2mWj3A;ivkfnI+;DJxB0jPhs&;rOAdJRGTfH>CwUHqlnUuZDrH2~*t z~8?rf27Jc5NVn}L`s_S^&A!RzYPs8{0mSU@D~8QbOXTolkMU!DLp9V%?;!KSfDkK zP@4&&(;lRy|L%FwU`PfsaL{i6_TM^r_u@(X|J$l9G-c+V=l|I$x`^F{08*YC;IJbj;z;I3R1fPEEE*;Kdb}=wGfqZ{=y1Qy8S;p72HCU@Qj5>sln^F z0E)lcgqK9_j0nja1-X>z{*|929)hIeVzY9#@bvs|I|)073s^$d50Q~ULDBpxTii$R zxfTE)+=T$Z0I%Nvr{jNRx3bhDLoP~4o_{O!ruYxOfDnKVj{86S;MZeq1xS--Q2qyB z_Xp2<47p{9EOJZnlGTz&{R#r$5j@ZvgWDv*tfndr|xY4F%PR1TJ{|&p`KQ*~_0*FaI8u zY>C0Y9syMU8pHlE7loqySD6K5V7eCoJLO*^>_6{R4F5v0^8>)X?EpqFD&+R?M_GRW zG!cxMFaR983ZMpe0HFUP|MHi-MFareTm#U6QK0`%P7Do^ql*E+LK^^TJar{F$khS` S#SM7@Ac0~;-av*AsQ(Y%q0M*z From 84d00fefc5e4aaf49452a42a9fa98d50bf708f91 Mon Sep 17 00:00:00 2001 From: Takao Sumitomo Date: Tue, 8 Dec 2015 22:52:03 +0900 Subject: [PATCH 3/3] Change to Java 6 syntax --- .../jaybee/intelhex/IntelHexParserDemo.java | 34 +++++++++++++------ .../cz/jaybee/intelhex/MemoryRegions.java | 2 +- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParserDemo.java b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParserDemo.java index 89bf16e..ca7eed1 100644 --- a/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParserDemo.java +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/IntelHexParserDemo.java @@ -42,21 +42,21 @@ public class IntelHexParserDemo { /** * Convert Intel HEX to bin - * + *

* usage: - * + *

* IntelHexParserDemo {source} {target} - * + *

* IntelHexParserDemo {source} {target} {address_from} {address_to} - * + *

* {source} is source Intel HEX file name - * + *

* {target} is target BIN file name - * + *

* {address_from} is start address e.g. 0x1D000000 or min - * + *

* {address_to} is end address e.g. 0x1D07FFFF or max - * + *

* if no address_from and address_to is specified, maximum range is used * * @param args the command line arguments @@ -106,12 +106,14 @@ public static void main(String[] args) { } } - try (FileInputStream is = new FileInputStream(fileIn)) { + FileInputStream is = null; + try { + is = new FileInputStream(fileIn); OutputStream os = new FileOutputStream(fileOut); // init parser IntelHexParser parser = new IntelHexParser(is); - // 1st iteration - calculate maximum output range + // 1st iteration - calculate maximum output range RangeDetector rangeDetector = new RangeDetector(); parser.setDataListener(rangeDetector); parser.parse(); @@ -140,8 +142,18 @@ public static void main(String[] args) { System.out.println(outputRegion); - } catch (IntelHexException | IOException ex) { + } catch (IntelHexException ex) { Logger.getLogger(IntelHexParserDemo.class.getName()).log(Level.SEVERE, null, ex); + } catch (IOException ex) { + Logger.getLogger(IntelHexParserDemo.class.getName()).log(Level.SEVERE, null, ex); + } finally { + if (is != null) { + try { + is.close(); + } catch (IOException ex) { + Logger.getLogger(IntelHexParserDemo.class.getName()).log(Level.SEVERE, null, ex); + } + } } } diff --git a/physicaloid/src/main/java/cz/jaybee/intelhex/MemoryRegions.java b/physicaloid/src/main/java/cz/jaybee/intelhex/MemoryRegions.java index 35c6a80..63aa492 100644 --- a/physicaloid/src/main/java/cz/jaybee/intelhex/MemoryRegions.java +++ b/physicaloid/src/main/java/cz/jaybee/intelhex/MemoryRegions.java @@ -39,7 +39,7 @@ */ public class MemoryRegions { - private final List regions = new ArrayList<>(); + private final List regions = new ArrayList(); public void add(long start, long length) { Region prevRegion;