ufw-kde-0.5.0/0000755000175000017500000000000012270516510012503 5ustar ubuntuubuntuufw-kde-0.5.0/COPYING0000664000175000017500000010451312270515626013553 0ustar ubuntuubuntu GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . ufw-kde-0.5.0/doc/0000775000175000017500000000000012270515626013261 5ustar ubuntuubuntuufw-kde-0.5.0/doc/example-2-ssh.png0000664000175000017500000012240712270515626016362 0ustar ubuntuubuntuPNG  IHDRXsBITO pHYs+(tEXtDescriptionWindow Class: systemsettings= tEXtTitleAdd Rule ? System SettingsIjJIDATxwE}1  $!! 0a<B802m@{av#6❬ʪ[mofes%aye?9&u/+7D6FV.DžZsT +RQD~ͱ$/'YWR9"$2ThOV\ՓIR $+|OY G%NIU[ώÜ@&-_hXzrS?048>LVh6Ɔv^TA:L6&jxhK:"#5.$%hL(T_5e]sClknSTQUF X(Iomjlm܄D!.IJ#6Kjώʔފ;Z:ۺ _RVWGjg `Յ ?twvwA$%z;{{@8PNI%NHP47Џ4K҃HJzh)%IbpxpZСCC# H:thxai9rC`92r谬### ÇG #C&Z" 9ra$8uHG=rccX%;Q~^c??ҟ(9$--Q%LҦ=eO@Ҏ`W?*GA:d|?|fYO:iDؑ|ᄫ'_kI.%z}rpPnnn!!CarSW۸O՛$=}R8H~R.9qC??#ߩX,C ҭadvd#(^5 7i_bhkLRںVWc)+-Fʘ|@1&u2Lcap;G@hH4%(ZډH,κD>KaRAU3G'Xߪ.i+ QP HDA ]'%_A`3 ݉oVVV1;P<fBU c"='=Fb SL~ŸP, e] ION a,< Kj#>BX|de9ǎʌ!D<%"ZPE1J(AS7GOJHN|Ng|Z!.6Bh-3Ⱦc/)(KKAVvPHDK BTw'e@AB-[eQVB5=QXLiiLlT4 ,d5Cc HŴc1pCm)*biKm %@ L,&S6gR]"FF#9{ݚVݟ&:w(rVV'bQ9a{a{ܡqm5A1 Ys eN!fh_%$"CEVX~' ~!0 !R2.†54!A(N2%Eǣ|cEt0?TU|xh94qegj?C4ƾ`Qǥu[-PB y(qU_Uc7 15Qc0|5Qa-d&[<_$p9lA/ ^ ->O8{=[M8`SD G&EM5RP@ `|n r0~7':y9d$ٻw/($Օ-ؠdhh47VW'ca9:jj@)h* ͜ySN+wvahB'Z(YHB`cC=l8FfsclE6Z%5Xgt UWU198= 1tD4%ɞE_]F `ǎq]RAh)T>&Q:DxL,TCOA ˁPt79"*oH!7" }o ='vPc¸<;ȉ67Ml5mmzTS] x㜌Ek*xF<v EMM+ EMH 6+*/_I֏!  ,/-.)u8>LqqQ}bBJSeeRR__O^{z*JKp%:ВSnK;BϴaF--Bi,ޣM1g#e 6m~8SchXZpwgSyK%!"҂Hq)2hcF5zTJƿsf~z-aDar 4;D(::|S!(:ۏz3gnrS&Q:(JWgMD2/Jo*z{seEY"QXq,#a`I%eq5CA@sRKhԸ b-JJ#BΉ b YVRc755%;k~YP{N!\ђ]п;Kԡ30eK!R[ ,ctK!CR喲 kF>Z8 3l/LwFv- #pƩc8hDA3f4jJ4`q#whdjAQ} WR_2a`gBf>#B8G#l֭[r; io@𫣪e }4^3$:JHibi/ѲШ q~_hrγΜ=sinSm5p(0,DJJ s:5K[- *mT=GxjA$jFDWlmeUŷ}ꐣ}`ߞF2Pcm&gt(Ic防м)fި Zt *o=^}*,^M˗:mj 1orLʁVWT`߰a5 ׃駞ԓO̞50aX?#v$mz ` jeMp pr˻ou> P-a͛Axڢ47nlHv8!7+ۍ6 V3ϼpB=goI/;˜OrpgDH]84vAoMt(j->x`±s>>2ɃJ*KKp2{ X~=)}iӧ[,)>27{wJsvOt4Dg $Fc@L;W)]86 ̡^`/Xw TL(r:+oE"VRtD/kZu֏k[ yxF(a)z*IUe%s5Qs3?/tP k @w("h0LbYQ17a tD۷ov7| _ϿKwN*ynXztYy{jwl_Lڵc'~s:s[as )PJAȤq~K˵W/+RJvl+HD4R{[}QΖMƣEmypao(SX (,L#5m/ }gH>kK3܆c*tat\Z RuL&!,շ]py`KBh Λ NFBǙ`7x)6) 6^¡v̀"06H\" wLR!ƑϘy= ѝNo`VݽvVS4IXñoæ%?ISS0~~2fkQkcoj@ CҶ.݃ }Ҟ U#u1pBQMuOaacE03p0ݥ[@^,J`Z 5) 啚2.ӽcK`&9*y%?mPJ@x$To[dIMym77<0ڪϋGBzo2iR|9VSOysy_oRY#裡@a^.}8s=D>ܜxtlݺg7~yd>f!b1F +SBx4l@rΤGrL aRmW]FJSP,5P4uW???#?ird499[!4""FԐ~_7` rg Â:Z[H"ThD3< ~[o?yhg~ZRTt…M/[o^LrqEfmmKtm/,\qӍ{'?_A>,oOrjkokl@/}}ؑm@ۋ#Ҷ !$Pl]Z)9\[@(|DXz4=? ?T?FMZ?.~hW!R`Z (%#"H~Zk@V@ζmd"O"FH+wޱZqޞX(@*_{ڶϾ'ם;\jY]a$QU N:4R0~&1c*R/I*2p MFV0YIvJÍ-=6Or=k&,{9P?6|΄ʱtD B= d AD A0GUɜ5aDzb V}W/*p ᕗ_aRus4TEo+(g]Oר(8ֆH-vvYs@ ٿo矏vbbA=PScž私A r?nw>c0i#P"$)ƨoeiol5}fJ>uu'm'\gaam".`3T%hZfd,^RW[,sW=j%;x*TU~WW_g|?H-[dR8⢯֭ {=5EF _~ #4< )wLEZX Zb|MkaZ #H!ݕ&-1%FYgΆL(?+^zX( yp˙PX $6l+Xd #6w5 _{D<^ф^ވbh4j; VUUl1z̻38}P&wwv~WϿ PG_D$~7x2~p*w8'h>%m[ʓl@8D@M38 ' o@I KN0ᅽ9ٲph0 }N8#RG|>DŽ=6q?K90L,T?^id(/M\GdA(+z=ks_|%P~zJKdfΗ5"xu쌑hfBQP]2^^Rl$R|jѲ}+pǂ~HGM|gEc.e%yu]oYUVT[gf{dLꍓ  vYS-7g[~^k̝Tf Q\_wLTI(IERF EubBIJQ) 蕍($gB =;d:^RDLV H#:f]"*~k;K*%(W'pΘy FۙL:H+˱I^jٮ]7 ?^疛W@5P\Ohߞ=˗^3Θ9[oJonZ 5 m/,<yWٽ29 u'>PJn+8O=v͚CJܾ{nτԶO=u iv(EP\}駝zP- iuM}(InȿASGojHa~ Pu]ŞgGeV[G>(!ogDɼ(FeH,IA- (,Yuh}2_6],m4QT7P&j95.?u(Hzn(+EydÕBItt! ²[^y/^'p >ˡ[qSa*e&w/S{'a릟~(բ,AQf!ӿE9=eIj(-eʽ"Q,Ij(ߠMqNO ;чGc"vybԞxZGՋ9>tظh6CQ<)EM0ؼQG$fka !ɔV~=$dCqLO7 >" h.c҂GG>F>)TKAZ rP05ۛ5>.NB8T1n٫+7nؐe>o ٪*P\^5T[J$#o,#ϥ xoHVS@q*lXɆo*+EA@s~+Ƕl/_~O?OV߿u=w`5LSʭ~0VQ横cQu&UԐP?$OgA 295+lI9rRM[hﰙ> mJUAe:vhD C/:l[n<0Y}C{T[c?w 7]T|y@cs9fl4'23 ;(L.^tYg~8df8'H9(fѰnB!KF@e pp 󴾝*أNf3Ed.4n^:I9mXq~m|0S-,ȃȯO&LH9Kƽn災{ rslG˂ܜ{w{]y|=XBr KA-co|ћoeWî!Sh74?80I[cF@Wb2CC2~i`08$PCP_nDD!d jÏh#v&AQV챡THد@hӑdl>}Rzhg>{K#ý[#= $IjFg< ʝQ5/MQehp_"2c ՜A 1GKn 5z'15!}=5SL`Dʛ[9Fm݆y:,98T.ըph,5k;lаYnv~/M [!Ss"rvC3wQE&|j/`RikHYךx,)AC[FO,{@>~2 jIзY~|u蚫qc?}7!Pi^rAT`!ghO!QP# Z/4:8*2R#ԥUq=Ai0e4eWfl"UK9|n)CDHq-p]yN&fEgEfSѢd $ܑZj0 MPR:\麚-6`CӞUWς|"2HMNQSzָhGMF.#H#F1٧#*t1׀e~޸Cq<.`0ڙ9=AvaH⟌.(0]Pu( LWLMX!YfCFzt1ha=^h1djLԔiGtKQ&j?|ab{\2jhNG= ϔy)ذ3??@@+3ʼ52AÌ;ˌ9 " gi,^:z2ND󨩾}=!⸉J&"x>Yb*46G$wZR2< T<8pi1r ſuNi22!#>ucZyfޞNܨthCn5ncž&c"ϺtɌVBuOaKu(7Q' K.$%RJh>|  )4~񗤔/f4|LxZzY(^Bq <=>ˮFW2P0P2R^3T'-0D֣GUe/PǛ  6?Z˿ȗ(KE=MY6AR5m{FzP ǨYO1 M#tz7 6=1lԻ`B S3+I,sjic$9懭?wFKD1LDDV5S.آ H>D?& 4i@U Nu%yhd%g&L;޿Ŋe4u1aVFHjNSkV u)dv(_/RXˑ{tON=VG54Q3FS'<ʃl?qн^#b>Zo5}IϢ>cA 4'OъH.pcΩgY(ѢHLݚuiAD(|4q[i"kE-oT'5^u}+WS -SCRZe jTdLک0\EPy nzf<ݪz{h~ȃƸ}GRy`>K ?5*i#cĶ1`Hm 8  SƣLD=.@esniw4ꉣAĴ>6H7XRhTZn8ti~`ƉfCvaIwP sFmMG'B H=R7Ym)w9+2eV1Rꦲ1IHLQkziF)qn* ޢt7榖&&'eyүҬ^Ӓ'64-P oZL', )%P>#|iOHKH0 GB@Q~BVpR,BZZ% BX,b#a2Ge8O 1RJ2 ed$Q+NHh2ɉX6 DkhI'pID$ZugL+xPQ%p<]'0)M̟RzsƳ{![fumr괩W\v鮝;M lr:K/ZumW.]ra'eZ3al.MX(k;!]ܜ-]rɼ+.{"O|u5s쪊RH|^J D)S{ĉ{&b[7ozUYN6]pC|4@>))XV SZ Ѫ|GvHp&I"!q6@u &r EV:iڒpU˗.%!.,i>KSMp 琄Q$>1coHHHHHUg[G~rf~mM >h!o͓ՕPk."H( ;wDW_~3g:$#du!!!!Y=]>]S}2G.hZwGV?x3OpU r!" 4$`Ӧ[Y^3_|NsY3EגՅNr5rG9~+o'a,G.YGHHHHH!XVCBAۮMMMBBBBBM])@U ̵BFi;v)P:0U,+\˥-6Q[6N$'b)b)byb]]`TY >$af{aN>>Yҟ}O:Ԡ/)#ƕ_>ی-OQ ½fazU@穮(+ڿOhV:_>HI)>('L6RqF"Ϩ耉-ʼ *ruQcug4 O)ʋdBd,"N,#!?%2S/}N$6/ӌ2M?1r tMĬdc&ϵsE|W;s!4e\[a_JK̟e).g%ZE5dunI+dPيU:꯺#_5v3ϦPz ̠)=o˴ȗ#SdQ-M'2*'G=l_w{UHq: KL5Ćt,3!`l !:3, ѵ$$pK ѰL)Q"F&D ,nI뵥n=[%?IrP֕  DUEi*1fJ  M^¸LqVndrr,q/ MNƌNxUBBB CHHHH  Jgj|ʧ?$NWH(I#8ە i@'N^X${xJtWHHH(/FGS4vwuN G~/BBB';}TtwuwM2vuu,$$$@H@(B}{~;|pG{k{[$ԑ#0ŵ  V022<522(Z 's6,ۅa[KSks{  rcީӦNzysxBBBBc\2L~C>iӧA|oXv=$Ss>kW\vI}8wU0ac}mC]+͜qZuUY3>΄ 1 eKan\ ҐsE:(vϛsn}m[%_D*ϖŋV- !,!tuN R'ݞ /> ?W^|!F |G^GUE,!{@W_ynϯ_|$Xy5L;^}X$KHC= gN=;5O>(<[jmn,.>x=x?P'e %@($$$at4} yJȜu  XBϘqvcp嗕4a]2Qa|ӍÙ!&v,! ?=gz+oǍߓʳ֖܅ 7XBrBB!!!!>sӼ.!@$#JDB77}DTD<j*+M9#iȁ|{NNs u9юŢA3f8l5_xAUEY}x? ~ H3%BBBBBjo{;VN/9^yPh4,-ƙ>UݷSvIƣ `g4sYHy ~󍄴ث/^v z?'t5 tG(k42@X]Qlbg_ zd5}k/M+S A]p{o/7/mvDeY%Uvi!޲'R6OD##& nM\NfW!ӏ ΙIBp$S< p&P5'/˟vE\EI#'N[8N–㩠ww   %gP,n Ȝ~7- SRơLI54CY?uSV?p߁}{p9Zs93+u ljolÚ?\0wN(nN{ac2jNlnj J  j@ A G#P0C;3C%PPXBwHp z\@HEi[of^G_5ac}mC] ENO<k*INUeٲ<ԓ$NPH(cZPI -R@[: 齕q(5 KEpFV}7tˊ=iSNҋO[Uŭ7~$Y|gzjgM6uI DLe˖.J/8څW1tpO]qy~nNJ%jXP3N,f!+/߶-gF?? xLjanX8EמyLX.|_u%/[6Yِ;N?Yπ='g..^t|^ KH/]rn#eBB!&T,4] phÀe^@'(4T¤XaLb0!HaA#~AY"a94'Hlpm]n_ڰ̛<w,Vq+sc/<a i+{oϟw>|uDm"뒄3ߛ<㏮~>*q]xᦁ%=.|g.+-gk\~%V6t<أA Hɔjnl(.:xqҐL}mbxh!҅RCA%KQ|D2?ӿt 8!]|Mr Μ=k&Ҽr:*qk KH3nR p% eoSpz3.;)%CAuup(!!47,\pa iȡ &cBB!P+J(8^P+P9l",C0~0}8,]M˗HYYVԃ1SO#sIUP . ԣ QQ(@ :v`b hLS¿~tP2? ~ H3  qUGIDvS0A;EeLqY3 TÀ_šD$ ‚؂0&+Kכ5{ga9s㨮[r`/|{z~ ˋstj^}Z\um& \Z#&b(dD߇v,L+/{^dun_oeŋ5sm']:;|Og{D,"@($dTGL̃ |'uSP=ZBlI82*a83L4A$'g":u1sL:eSZGB{=Ӧ^S}g>jf|պ9r,ZT>%ס5KWfBSє vkyA{8hby*ʊMVh?sOr )`]k/?  ry$jq:e[@?oI44R֔=J I!E&'jb8p"p7kGe{]>[sռ+Xs4 :@51:4Rު#/h =Y7;qca< MWC"R  ܵ.4@EMGvǶ,\_ : )@ /`Ђ,AR<:K#4㙈8BB߻1vmpp::0. 6(~#Ht 2q 8D#)U*4zΥZq\Lsl'ڂ:im~\\}# (!`$C c8L5dvơy`jS*{!Q;xHd(ۺ?|I/8L8X8p&5M\@|iSYCӟ}8)EiL(R ʮCh8`jc^u8 ,6 +((4)h@ #ׁd)|On2Df Cd%'"4jRɪ :=P:]AkDAw;ˁ_MN0=i:@ 4MSڠ\@ay=8`Na@Bc0k(; (HAL $,Q#-8P0` XpUB-y飄Aqˆ ReYڏ?zoګbbko>D?BY}^p m4a:TA;8hbnVE ܂zľaZ\'`^m%j 2ۯ r?(F!bYfYaBDyA)(ED]p-N|! SATx)q`<80,ۚB~8a7[pVW %8iÍШA(F  bei0M f)By] w< WilokijlnegG+ఫa2+ e{5BN@q[ fj#ʱ;-;1` m fi,ϕB >!@hζZ:jʭ0/^U!mwP@q B'c EA)FVXh B7D0*BR]QP4RWG{GG;XN jw۪& %B>w zPO5nےShi:z4 h@"Q|E3ԅ=uSN9s~(sŒ^V][_08P>:k݃Urp*#ˊlcJ& q3!V& ̆;ngQKߠH)L VXUD!HN?%,^t-,+mkiO\Cy+WaMEYyIrlՐ>oVXjpPB 1ziw}) e3z;1@X8O8>e(++.OUw|Ҥ*$5S ~\mgMvŐ84žh$kUTp9A Ue0r@ Z>(mҰ:,qU8@; +NU `xA·>pm.dH>7ʯJ {Lm'H8 (x D,|Ƽ':>4)D> ɍ&ˁNwwD5=A>us8n }UlI%M Y-j(F0;&@(4Q@g”Z(S 2`& rb% wڽsǷ_M'cQqNq_P"IPS'@(1qQ^(jM4g SwPBD`DDX(UGB!F8@-l^GvF(xu2PbBxeb Nh@o B_EZtBtYhBmz  °a*UUlYo8 ²ナ|ʄ-bsa:җqw!Lр03 EG^שRx0 T@QPea@ba& t%|\PFX۽뗟6~{ݷ߂%!W5p&ex 8Qpskm)A< m3Bh4` lHA Sn,Ln'˨.B娩*/)ڷ=%!x ./uT %8i^]܍B/#{Fe@胣n{A𸁐DD(=`GH1);'Q,k:A^PHCMpѬuXP6)h="*S0P06BB)&z edŀz5,nL7"ԡY@ Q!!;EL V,jOQ>33 }d2Pɜ2=eBB!!!q2㨦pt RYa"Rp43HRFfC]㡧 :HoOFB @Tgf ¬DD(h PzPz SFa=zp`cx,J" fά>t@aP/$$t52@ՓfBLAK|ZCZ(8VQ @A!tqQaxJ/ S n{$`?w""7VIJ [@P8!(^D, Jɇк( u@P99s?WʑcgΉG\ NHݪ:p!v OPLloĿI񯣽=Ev2r0Ee,P+Xi0;] ϫ(}nZ B,vZB 8ÆXn%pN@__wgG[K$PWG@i{84^k(Л6 i'Ч0M ºPIq}p \$ <aIS FA5" ZdBcz)( Fpʮ^x֛ka V0\ݻ 4775 M ƆnL.:q7!-J_aҔVl|A5"74aF 1~Rt6uWZa!y[pM&nnqRk& t5(^'` HnC QB-QDTiRPj)9ݨHa@(neo "e%mm-K\uHd)ac]61>5ܳ-]ۯ|o *vBLgfXt Ȥ2,ƾ`#2|j@HfqQm .)_%}삼H]%_j8 {|RVUOY]Ua"6%'I3ʣ!x˒S3ƀbh6)XHQс8Rio d6*/)z駮]> . omnHbP =$HuuII*=w_{!z/8$;nݷJ}UWe/y'HN}2>AHGG(̣VTB^'h0hЋFо2MC& En2N:.:AvU%c<Wa_H>XNˤNہALD0֜ڱ- TzSMҋN8|,`0>mL Yos>sڔS`uL\tͿy&DHd2c&?94#ݶt;Vß%R6A珶 v*9.GqP-n\V ѯVA,dC(F N[A_! j>*AH WC#%<~ף\ފ,%QAqQ]FNC:ڽj(O5>'~( +Sm wEB.Ƕ^\"E\M@x5T@yX˼\ h?^zW^v34A]n_g?,7{G^[e98zH.{M$UUfuXo!幕[d=k&qWxnUyƬ:j-.:xҐL2&0w#0N_<; )N;'·jvBg*\Ђ5})abւ4iT>VbE᠏VܰcӴ>zl~3U[4(A=ž>EPi2} e3y ҽFO MWkGaO$Vk,Ytj8 ׍[!$#v괩9"W@8LL&`Ћ@#&ŭd$ͭh v_u^Ofڪ*#LB'DM}Pu_@5 M,2!c6bFB. &47 X x4CfFA/V~wUWw`o}ܵ{+K>w}8sy:m@#IXLNNJf:m_%~ǿY.7soaE&Sh6pq U@H1!x}H - Z3\ @(S;nA /$Clj;@ 4UuyuIxc__%Ɂ_~q("ܪNxfϚ>uʂ TW{םg<}Y٫+~\rpf~+/3fθ{uM|7c'7ߍij%n`z1b $ǝA *6ENbN=gGUAh5y~>GgΜ=?=2^A^~?|WaU~@̹zݷgT)7~EFGʹ4#訧Q( 7FJ{uڈ|lhg0LeEAvqQ0 EW MM}K+7$'QV.B6㰙]=dsڅ|߳kBmn܉P9:<FkvvΈhPEڸhYw0⸨EvqQ ƄbLߝcɆ I>$\ k ŬY;[ukV>´ ?z@#}E꣣BGGcaH;aDE z/C?vqі"l#Rh3I[rEjꦪÇ`*>uS ӳT&heŅY{3O:E.oNg@SN̠w,_;:ZnM}tTZbrt-=B*º gр;$ W=B'B_ R\-֬Z?x)M9OR洙3vضUbǏH-G>񎣯6;Cy_ }z95}znV 1"> X{imNX' {lRP_-CR=.]O88(Xv) TqPezɢM/W]࢐SV&°R Zt9-&CEYIA^Q^=Rr(MǩVCI kLi`;,}K,}ˡv\*!WQIbk|j;Fi8O8-LkWQKNj15*8,A9Z>Qخ-_hˊ3}΂ R;.5ܡ&[Pa4"G-%#RǨ-X&"tLlAVDh,D9[kmo"aSވ€\m…ɅJB;\| *B՞|I9b5 "]a(2o|r>wTpY!bMw.%Mج:ii_#)HwN_Z"4Pg  ӂ)yFi\|D,vwԟ -_GFdV~߲SŀWP'K .JzpBS+ŖffBץ`HC.E}&,γ 6 M8871ȯEM slYyvw?"lz TWTc؀xt!kKԛUfJ(HqUfZ…5k:U6zxASzE1[W8=mx"B"t\nַZܨJ|{S''F/a,Pwy$8JHBw ڇըhp+Go)yH-BoVN K@Js[ J=:029&q?XbDx1L;&-B\j"dzU Q]Bi-H:` FB.H*B~Q*" 3 @Xug5P`WUU{؊J=kV^#x B" uMĩt ](tȅ-Ӫ=m -̂`u [1Dx\շO޽9rGL{}뮦/FKTV\(֮^ٹh^Ni(3i !BГ:Y<0bG"h$Bw\u[0<\Ba726VwL~&,1yxS a4%پu͛oMgvp]S7wXMC-逭NzWXfW\.8,,3%92W,[r%XUIkRR˗P!,s˦+#K?Vsjz*W!oqXj1Ӟ] V6RMToܐD V)M95>^A5|߾ !'/Jwd ̈́D]9.tGp!۪*δG㒪Cd~ 8Zb|P{xJբg"?L@HG7gyHirT=h#?h,QJqK"HKsS6$Qbk,IFq޷>qMߝ72ҳfVݒk-/C.DFu;ւxGYcq,*%:=]pZTpE %iԖQGRZtI!oK0rDI\@e!nLugRD>9jN%wll6[-rҪ2Α榃MMŸVNa`Ͽnp/> ;C!bA ,&vdCql7aUyɓlCyLLX5j~}zO8!J1أ L%>&Jɗ_xE.zoD۷4wOrb%HcآL߽VS c'T]v3DzR04:HfZv k#t <@Ņ1} 4([:howτgE贚fC927o9G;\6j$װhBy@x'C儖JaWn.:pD=/ỷrjgXGe`{(|aVeN2g`@?}2=w}&HX*qj}y6EPWqT{T QeF[llK_ng> jgBP  '8G4Xl ߉7^0"Twb,)*@uE5 &p q"^BiKAڙ" a!u;vz[X-(MY5 ơ@mJ}h CB# )Be/ d' wF`DX +S@[Hݎ`Hf㢺0«A BІR6BؔRBEF zlZY=J`h:m֌N^ #:Z _D&;vH? $"tB> ~[)ٿE3|nr"T" [V_.AIla}YZ[A%inɐy( Ux@aU K'*wF:[qFpYS8;@# 81[]2 T#9\ugW]NA([5ˠ jw B ̘bQ|\L10 E(_GeeK(O#ZESy9Fg]U8U;U>p!Bi55p?r3\_-B-BGgZPEaȂ{*-؃DX{:0 qj[Xg?>΁S[@o>S(mSf[frvS@/D/Y|yGːAQj_`` +,@)~h>qٓǏ; SǏ?ѻcO#.P {$O(;]Bf@7NpkP2DZdo13DS"sP_ѣ5.GO|A7\\ [dGY` j^T,v@dYu-3D(#d~}zvMi;E%k} :-cF[xKXLU3﹋_ݘF97^Pɞf䈺/U7p? u{Ç_/4+66fƏ2h ][nؓ%3d"?GqEÊeKv_Z$;sͪ)}ǔINiA|P. s! `=,ԛADUNU%|^;N[PZV4hmze.֭\%o!Q Bf͛؂Gfd໨f6cnݷGzK]TaCˠ3="!;}naMvܳ+/yⱅē/}[Qho<)_iRG2~2^t_E\,+)TMʊ.kBej"v .ϺOtZLN4r)}+SrDe`~hKx~IKs”`l(C~= OvbS)2og(W좚7o^Qv"ºO͠,3OsVZ>iY=Gy'lLI$ d59h6IV貳~2^9{wN#9q-u:G23Ə3}z4 P"q'h.=RޡѪ<d3EOgdw*&AARq]T3E>ZZPBL?xgey pC *-.7Dz Psaa1k؂-EXӝFgo^lVz3{&ˤno^xޞ2.Eax4L/!sӦL9̛Cj4UU],獻}{-0n,G`h(B9wW_~Qp葺Ӫ'B׎cK<$s؟Gqu9s9uXS5^"=Յ5b#m ѻ-,Ұ%tʡ&gIŬXia>˼햛8jftYQL`Ax*&$}L?enMM]Vt=޺yŨ_8C{ܘ,0XK_U3UOFFN9'W$s?vaWyW*5T!c̅W ,BAQXP!“(F=NQ[V.|َㄳD.+r'p!B)8ಙ;MaghZG8v^>YNR*tnT7OE a5TWA@ҡ܈ : f.B @wѡ܈\!//P`C!t;r#r)FS64z" ^SQ\fŲ5֯O޴iƍ)x#azj׬\VYRԾŬ|-T/_d04`Æ n KKx=sa4R-fg} 6lذa5f!%9}|No^8ϟ?6lذa۹s稹T'm綯 2lذa5;XQkF*.Py{fFƚիlӎ~ɖ͛ Ć [\01^wͨק7瑇"4^;rD>M-¿+W,'SSm6?zvGz@۱戢;z}*=-^4eze2giΞe7lg駟lۺ%-ҘAdž !{")GE_Ab鹳gYe1&'I#XLY,",-5Ut"PfO=svId@9&PYDpF};I}Ӧ&^)X,gA臕0BtVEHeL0w Z!)D(w2tJ#9毟}fZvI9$2WiiO8w$C*P8+1AR0p־$Ea7)qb$3|*OT|goog4X"aÆ-Dx3E( Nd|EymLZwwϘ]eWU֪Jn>tۭ ;8<\DȻk\3۶n9p@]~!95 Pid2D'ɧՐB^J)zlo6ڵ _9Y#ϕPTw!I)Y͛6aÆ-NEx\Nk,&Çص=u?e5c.1/{o}XC̛Ņt\~XūDu,#nJQ}{^yyHͺ7<=i8 L۱uI9IO\uEɍ)HK@fFHSN'a]+>g)Acǎ}7͇ 0ɏd[.rt_#8Cd+3)D|lذab9Q#ݷw/)-wys دoDzcoîc9f}G~=t`:θ1*o8uDR/\r٨iI+ʗO4A3ibyQ~GDHb<'lڰ>b9W%mژB35*F%K,̠n_|QYV4Kw)uc*[.Tw[ EQ3L[dFa]ᗏ 6l&ad@"B )v~qĆ >"c}t EŔԮr>|aGgNwhHl- 6lغ_􎊐R^8f}yyQOt?ذa֭6jyࠆRUN ְ*+K e!D[ v72V@SB BZn\پchD55r(DF#!DQ/D@se B#"lf@SEx@kx@ BD]z V3)rBkJ"4B#D͐@!0{e5B#Au!PqYLȕb4E0D"$!B"bh66C BE=MF4Mi@!@k@ BEiFuonD(D"@!M}@{"<! E!п FhP|h"i14 @s@ BE0Т!B!h~h"ahPO C4-B,@"!B_Q'ƒ!P (ͱ}"bh6F>@=BD"D(B4!5;yO@-B РB BhP<"qbeAD(Mh"D"h]y!MO` Q{D(Ph7B'`m"!BE@=M "B)B"g6:@D@&@4(ƒ!"q!͑W@!X= <!P5*B4<4 o,@"<!Bx/v")B"= !ehuh4G!Шq&!YbhEx"bhEyb#D"2941kf'4B B&)@@=@s"C Q{!mC4(B"EQ5!M" 14 "4;4 bD"`(D!BЍQtc^e-6"UƼ B! 6B B (D"ߘ"A6@KD"hv(D"@!-#= BZUvcX^%Ѕsam],[h;ު#llG[=]ҸfSZ""VU+ʎ>PW_k>DC< B[WХ5}362<4Z@}mُ<׫W+BfݴuxuUV\h]vu:H[;.k5W,zg)=^xCZ"=BroڮGk|j'Gk+[_8cGS*&Lɻ 2gKsY \ziM7.t>d)^{dgqŽNin76VPs#=-DaqmC\=p􃣞-TC*d~f_ǹЅ=|. )xtƎCkR,y:{6nm4gyC{xs烜JM-?q{o/Bz1SO>>~}?pCCis; W~rQ: m~ n mǖܰlw܌`׌;D ԪDXk,:QxHy֗w-99X3cI÷~VqJO{eO#l$.ߌ8B і>}mqooZ@ĵԂ]*ƭ/R㥹W_߯~p']jÿo74<1#[o) ?$qRS6L7}#je"&Bis-Qx1&%84g?uKFn#PME)-./M7\}fų>UGr B@ۺ3?SiӣXh_uΓs=;o7>9xBHG,9C ,4YEyS'MVnx㦚-K+۾ Wunyd/P>uwܿ^ANnͪ({IQޔ銨$YQ#31QjՋ\n$Ÿ~Zs+5KN8q[@5{YXbԯO\;[xy0 e/Z0oIde2&ݙ3mfy򎇫xª5b1=PyS#,Qbw},:/PcoT3ڸxi; ?LxDOO{n}HW;IglWUBXyIWDfԍٛjfeFi;Ue6bc3ֹo=r̶]G`ӹGO97HG3h@ƾ{)ʲb*[.|~^NWZ+)!mjf[/͠}[NWsg$9K?lyk9]t3}yA&K}(;5+*+)͵XzI3OwV~ru-xDkfJƗUex7(/^rs#PMEʙ3{952Xf~}fb;n^x{3y҅@vu .Y y4_K߽ʈW iS&WX+h|^ey lk)YY~_{5꟥XzM?77S /'a ѷgU3ڸ~ie=Pe}_gQq:ӝ:]uٗJto$E9rIΞhg4a\O=;v辽{ 2wVHlɺ(,|TQczb;˿ߝww,LpE?N; ^."k%M90O7nm"R֦K#e?K t]~.tFхYKWV="L۾WDx=+[K?ٟE +j(:tQ! iSNtcx R{3(+)X$o.騃яJ&ߑ&ѪYv>7s[k|běѓ~1zu&U\RtMuw Fm+T_t!;mK×֑0:ىMԸތsL}yIQތԍ)e*qiۆwJ^ }iѶԍ'*˨ce]]]EozR3V=" o߼iF\C@BC=ǴuԌwUoY%K s5t t! u6n=xN2*Q%ym][h;ުDX(vDXFu%N_@eN(wz",wxPFFuwP6@kB@@km΀MV0ZVTMa(+lZ-fMzb[ >U](p~sw5@kl/5?ǩ7fsj~ǪKSL+zycY.Ѓ O bkYvIWu,TTQYzu KOe8C",}/#=Gҝ>m 3jcK IENDB`ufw-kde-0.5.0/doc/example-5-samba.png0000664000175000017500000012353512270515626016656 0ustar ubuntuubuntuPNG  IHDRXsBITO pHYs+(tEXtDescriptionWindow Class: systemsettings= tEXtTitleAdd Rule ? System SettingsIjIDATxwu矧Q`DQ@Qs0`b_ `Də]699'ު[|fzgΜgaYz]}I=ϧAE\\\\\\#XOg9I>2kPpho2PL-m~YLYLbyeQ%!Q8UE(m`aNc+*G%՜(fDY1'="uNEBa}4L=Y)уЗjcGUM$1[fih_!P_=^_]Uǣ5b*jT)ZPlubduUB*XVTKۚZi _5[BՊj5T$`5Iujk5x757ÂE5x$DjilhmjlmnD-MHMmM/ Y 5Sjoj Rb: ۺ@(ݠP tuv{:- -'{{>[1+z{{ [;wo@ԱQǎ?.n;~l4pb`"!pĜ8>pq8qqA(p)R'>yR9uS'OS[77ߧ`ďB kcpX Pيwz#v}RCgAp|e?teU.p(\R \n G5&­_a+zUaA>% IJ'nvu©Uw[) cA|pГLtIx ڬ}M=rm V M@EgjGJ%WtU7S~rXC֖DEJ֮dZZkW– H&ҤJD!S4lb" `gdOa,0buJ &$D 1gU,ZUţp A(FQ=CʥǨW[ݨle@A  @KPx$ [TV(rAGD T?P<-<“{F.@D\e,+RCTI ^*^?xRb᱔Xx\ĵP5PK<8q"1OxJMDaKBQFR"MO?&(@|kJz<onoxUŠO@姗~Ư_D ")(IMAl˥'?"S T{+@A B5%RuzOOU5IFD'IUCmHjŕ-$k*ՂbȠu5Y" L,b:C`cRU,BD#9kF=5<+尗"a11a>f)rZ-~ uY1 mF!gc6_%Ay˔Pz ب؅Q(Ivl65)Ko򓏌.,CY=fXj+5jc2 !B$b!X) 1Tq:8$Ó?H" ſ 3sQb%xSNb Rɿ*V B ZPn-"U%.xL i\Ȼ[@P3c*`PAJ ѱ:­%Tbr&xPYOv%Vc0nL{G B(MdvQ"32 xd7aJ 1],DF!z; )m.T!|ެHh4DY(l}P` 㘈"lD$KQl/J&#SӊL)|$d*OU$"F@E10HCPe#Teқ'mQ, G1OAI'A"T2A dEkE,MME69s<(+mbUhc)*XHߒR_  qcc6";;Imn‚6rP )(:t`$I0 AုHl^P (Dc2 m)T|Q⩖B"L_ t:HSfac>RP M/(P UI:<3b "܂qa)Rhs$FśzRrߞRsdnW/P0ODe@Lj E:BSV`"2iCP|Q DnBE xDiC0Mj(:(:< Db/TzN(,dP-GCA`A&%EQ5AAƤ(IQ#1A 2):ZHpfWaFdŋ_EIsp=2vviBG%C$oi>Jx02 "'BGJ8DF! Y^3ҥPaZX4a{a3{陆cG BfDBJiMAW_C)UʂTab؈P\f5W] <~굛7o:EMplp69ь#7-lcjc:/.w|j!"^ TL#TrJ]U/B` `c ē.QUMT3NQ$heqa>;oqS` q\QեD |UXp$a%_|曠ڿ*_3 ! Fv8l\Y0^8PApq_8z80pR@/",曗_z^|qvi X 0` r;DԻ׿b { bn۲E .NA-HSq" \v-pTdC^r{.ܻ/?~O#& -Pq0H$@0d ChDDʂ#@pw;6~?|jumCq&aѠ0@zmXjQ_4)>2nÙqM3?l<|צ]75L # ^ECa߱cǷ+ꫯ>裏?xʕ4 ڞP_ H=|u͛TcPPkx=&^hwF~B#M4T`RIġ,]L#99. *58/޵S`^ Щ AfEX*jG^ @xE lAXyݵ,_`C⎦ǏMI.b,xEve<Иe |pӆ 9Y3o L7ġN`Hpkw‡jpnA 6+M{~BCBbj A0j᝷(i%9ƏʘgT_gX~#ijM:BM"J !hGTz{Ǥ.Ȣ E[uel]?uyϮ mOѪXt8??m^{zGJ~hA;G^<).(R+5c!čP74tEB ,򗢪/Z A756B[a_o{KZ0`Uؚb8C,kO]4?WW[rcc(T` l)/G]KD,!co]vR:0`M'E=?[+c|^buRnJnpuBBO] 'x.+P\T`ww7 $ o82ԇ#G caҥu&E jE0)Cr 2.cKM4TkysfoڰPJ;rPpG^.ͻmvEqwyۡV*h(v $.0R^Oߤ.dY#_^vy:[o1ng=S5춌mj|^׫C #*-R10:L{!L~ T`w(O&Uw%M44!RPEC駞|7+xr j:gd4P 7" !e{vɾ3d&bB]@XW ,K؀!+J?} }U+/8rdM3QO]yŔ{v! N9Z^vԄ4@;X _zq+Ohg[sSmp]]ȐAى< !44ne쯬@(tFwyRZ~$S1p4?&̛ڡjC AfQGD#%ԵHxZdu@|-sO?Ѿ㿅-;g_ gNe)eo(uLepkԘ nRLCT3{Zph,ej0@ LDPk/w GK T P$dHD^d@tK \=e񸡮@%^Am+@C~QY(@'*2KBPX$<Y=3gH8xPqtIAdl ŋO C>& _~iƍ7*g<#:v(ȑƙ>ܶ%wۿ2E"_ac,9GxEC Ԥ /mm.t7_Cх3@}O+OaiQnO}) ϔg?&;iF ՎZ~1KyD)CPzN'~s]?R)-j‚_ԕ<^ݼ+UCjajBQPU݊oQdYQ~7NL8xD w^Q=+s{Nv멫R͝SW%MmEAJk8Bq+J Pu|ko&Ů EZ9 :d;6 lAQ'څ(xVQ"I0B2m&ҬlT%ӱ]+5 ;D:⺠SRLUEDy-[Ru1 ~ЏT{@`0x}awѸ 6 P0L’"T u RQ1릙<RO2n;FNxU2B4񷬃>wEh{r"_~Y0v٬o{n/8mھ{!r\vD OkGr Im^N6i_~iwLn;<8hTn+W~){qM"h_81f¢gθ`9oljHQ?G['4V[+Ļ%6?rFu_7QJ#+.BaK{#@7iy'x[mUP Bfrv*P6dhfm ,ߢB08dlټ_! d+tla!  5D( PFV¡KX&"Ţ*OPMD6יa3>8lOF8$0rR[:("]rMSP|*\yu ;{Ŷ4alqa(&'(r4SplBWa dy@$¯P >*?.{L]iTc:xp}} hts Xv* SC\'l`pz\2Lř̎aW$:xi점YYzDŽCᤄ+&pmmnninnŊ{N|@?;PwoaaOٲG5%?:m>I|Z9Sd P`b6׫l>]#x}p(cr#Z^qm[n)+JuJX D-P3)yU4RQRoFoˊ)z D2٪_)+*AUlۺֽ?* r:!TnOFnX+(U˽Ɂ_s>me%h!G0%gQƶ-әdC&PɗY]=HQZ\AO2Lj$,HP\Xm˟_"n GB$2: tm=rڵ?n/A;tj3{ف_eܷ7;3cͪ] ls2yjpHц¡v {"ozЌ) $akSD4(2MN؍+)Q&5N%:+=uuHkD"6 Ecy:]UսH &ds@(כX_TN5>z'%81Lcnτ̣3|Ftx|Qn^P[͓_ 2QXxԼ`/@:f%ccy9Yk׬n׬͆ 9GNs~\jo`y>& 't )kVL`y`^ ժ4@9r`ߞmXa ax& P}݊/>ahLC;L}(4BO K0MQ&08sykШKP;!XrDw:r$"9 Qۿ&eQNdDDcE,3QgvEn {D# 5Dwti}( KiaOj0Cdؑ7 =:'Mɼף!_|ZOסv4tג&-R6C n/ޠ:R][ڵsUvRp/^}iVV"GC~/ZQV@Xs?K)$),0z f OXΩRV[ h 05 FDԠy.%S 1!Y*&eG"b==aBCju'ynA;L7 dUʖx"6H4v똌tR5ާH٭E 0T+[cV+qj8E?MNKʼ]}TE>*K]-U(QYl`˭Ex9@\RS5/`Ԙ{bʛ[zm&܇8,8oՠph,5j;Q^jvf.&4-L1^SV;b">5y EL)B5$vx4)ˠjN§V-B| ^9Z6{m{yGS6)}-jePO&䟮 T_&f䦪QU(X@k 4@撹Xz((!.!Tfr T444i2/PR8L,MؕȞzՒz"9<١eJi#bj~c1\~AXdrd4i8j$0$A7sd KWe[5l?~/Ϭgm>}fg#pZ⟁ Ը# FL@R]\Wh꺮ڸ;aR$l2@Ɂ0YzR4=K`_jh biRDlD5ȭ )(&qЏL:2mG zbKC/X=5̻YxcW uzǴ3=]og3\ \4a,H(0YP15TWLML_!؆iɑiCJZt1ha_hejהjGDdKa&0Ecc9.0Uh4zƦ$MJeu HA+aAjlbzvsTBcψy3i _i/1gO۪4@axA)R; T2+p(@FfZ/5nA$ۧ&!))ՎHMmj8ĄP,Ef_mfɠ1ulGZ;"%ePjy٥&InbZ˄JRs?hEtBv}87B!ҁ=CnOg?r~RjfgzY7lL W2E$3\,3 k;Ȟ^S# D<vDP=a&^=(XtSH1!12 c/IIlTHP@6fŒ'FrjQӽn::Y&|PG #(('n3oi{2?3]`RhzM3BRU4̌'g>ґ:+@uȏD$l5U[1ZZ ZCZC j) PTF+I+f4T B1Z/W-B1Дx} ɗLIU2ȭ|bF+$%3JmzjJ:cBRH` Bdnꯈe=++}%| N8Dfz23P-Q1 e*6r+K)m~To稦l[Azy7\(?z#\Ա揬TGuLW'TtqSUZx̰>9q.4! B^;k$"Or@""v,V5C%$4~-r%D,֐\$xV5\J/8Ŕdn.j0x35cfS4KSKJ2s\33}O$#^Xː {dON=#Xϋ(I>UO OY3(4$E-|Uy hFhR4c#\[1iJD4i&uY&gF^ h"e,6֒DVًj.v oO"4Fqe|+WSj M֧4 LmkZȔKa$c(>f<٪G[{H|F}GR~`6K?(nj9ÉxDE|ŒHt2&gMǺ+cլn?kϙoQ'vXqn0 `IQnq$ᐭ ꞊'ұCېBdR8Y'}{"4P$#5FJ>eN gF:LԊ9DJT6Dҽ\Iz2bX}4Y <(,F"ޛt%5хcgL>PTKzJjUKۀјǮ4E2agPg j6HY]clНLcWT>Xax|$ba:7U1шhPUV\7J}Dek&mbMZ@;֩&׫&ʬRU}\5rxedL)hpo΄`vlfq-(&QRceaOHD)M@OnaϠ J\ҒӪv?hO GBq6<.c!EamPB+ [m@ }(q(C[ f a~HR, j D6 ކc+`4q0m8@$\b•1aKPJXЯ ϘZ bCpT%6QE«R|Fly[IhJX0UibNaKcH)lM`@ԄNJ|)#}j!_JFsj! %5ܼ+C'Sߢ{>#I婻wĉsj{RRǜcNR>ۓ'NS|˷C5(uv}8=)9Z|B0 ;A $h(ya\\\\\\D=='*yvڭ@Tsqqqqq z{UCF g[kKkK3װԩS*֐F;?~|B'OL&FAH"X$ tyʿ:xJ`&B<3/n`̨K.ܢg>UWL8Au?R-Hns9Tfs;cSCCa SLuJ۹{zy |&\\\\\#L/w.p-8ZQ:o\OC]R wښjɗ_$C93qQ]{?st_?L`E.w=z ƌvI\f7g=y#l~yso۬8MC]m TE  v@HkSpw|$C_A TţV~%J !vͪi])x핧xG=/?U"[....sGMκEO|Bb XfZ))yHU,|@2PlAcFO%{\.#sqqqqjnlΚuӌC& @XWŢ^cFCbp@/~{HjwuΪqe@uk0mMeɓ_XV^ryZqIiaC]m}m ֖6.6mG*pfY6iZv%KB֔DH -EƂL!Jń|su5UXO<= q Yo㘊}qLC]8|߹ZYxfH0!{nBX//~D^9,y|~#!`5Ϲ  |`Q$ <_ ` ayi k׬?>];/<]j-(8r묛}) l! 1@K p!hQWM³9 v+` a=Nxf!sۙLӮ/.8b ªx2A;?[l> ;-!q< zg=+/A۴yP5[C XA%0|P9qn z $&ÊW_1%'c#ae,A%cF 0@='Ls: v؅%O(>ZcT\{Ue%ŗN8]- +/ [#obQB....!tց*# D^0CO~yZp(_1e_}L<;6Kx ǂÇ؇y> ny _|a-zqr57i9D(k4th9 LEI1|'msς5v[o)-`YK A3߸'Q_4}:}KأiǁҢWZ\okOk@xߞ޶e3mTSg¡c\\gb nNZ%o% L} ƙA B0S4 : ġ8h!^}Ŕi]FPp55M #-M55Up\\Ù$""ʉ Nဿȡ;r;ۚ1jjh۱=NNk.(/2+gVO 85r٭[yZZE ''2װB ~!7P,8d0A/(=֊Ft^3Fsq /C# ̙(75ihB6 =.GiQFt8IC0TVF# Ry!rI0(C=t?\\W6?C(Ĝ}4 : (} BSr&aNM....H!j*G82NB.r!ZoṦ\b&B...NA BH&% GEY^R4\d!"ou/t r2*^UEQ`-P&3n}{ }oXc=E6kق1ܱ`Qmo\wgθM6c3;r>qLB8r|xoޜ |vGBxV NSS J/u0!|RPp]h4ҁ" C4 H+ 8jASzV07;pK eprĖb㪠?n>yyqKIQ.9̜yd-pò9Fcx\;rVcn'\o=st/,zIJQ/`{Ph` a.߭쒉E^j崩S'i ~ pʄ)?r묛=-!qX_/8Е.Q  x G4baSEBuz>%yMˣHkl!8l)7$ۈx~Y$baB2 :;|9qxqd dV@8gÕ(-a ."Be 'l_GsCgVkc)KRPYG]wdeBh; a| 1N3g~{ѸѠQSCˀa[8YB..&201 I?u /u`h!Ч/C"ŽA/ Wp(1|vQandhA襅_/+/?S?n+/{?Sk-.\WNןd pɻp`Cp[@. $D2ԓUޢ(w^1?wy"T[kjmn~8L@ʨsASDnl j9PB!7ZF%0WF✍bnHbmAxՔcG;|=ZQ tXʟz.;fmo>]tċ![n"^f!fTV`SΟ{гf@%UAU vk>Eϛ#CIQϙ3-?~ô1 KÊ\L/hh3paTCA}+Ï)38D;BnR4 ػ5a?Bc4:px@x6 JVڽ3zݎWΘ~Cs\2V 8BS!P!'7k*HC} &+H$'-aJaHDaBwVU6{1 0dwnMcM 18qBs0I!ajDPSb( M4 qS ar TF`gi՛f8GAܶCv涵4&w6u{N8>/\\GD z?!(襺ɘ  #A! 2ΥjqXL9Zr2msjjl8bM^NNN}s# ("`(E c8L4ġq`b T_ zf7RVӏk/8M8Y807F4 L@bM>մ)ҬOC#,w  L(J p$B= "jpA8|YqJ ; ')5)h@ !&4؂d(-0 j8Dă/8<,QOpmT#qq%MA#(LD]}^d uTA&f$ D\Cdan/ۑuWAyv쀲؞80H\#Y‚ =hAr$yIkjNIH$ q~ -pt/TP|HŗzFi` :5RAH PPfG]/$ C=4N3pj~;.J"A( t=.e] yөH|̓B W '5%:u=p/7=#prrqqpBKtO e )Уa[=n¡hyуr0.inz59 w𧅋\+S5Mr>Y v@ÄI> „d lpAFDԣ F`" r_!f/4kI.P~8E LQpPR} ݲTEK}!4@ Ņ-~ƕ/ K#Ё$OiiaBD삁(QPR t:^6B Sn[ Y`T_}X?lB|8ܰ܌mE\I .px4%hP@A?4P0)&I&YR rT tG!-m=]M uհmmi,|7/:reJApb5B[P[A `{&BZ6 (h)+ikmԪ< 󲳬e%iL]ꇯ\o?pdɕq>רNCB3, BFx&AQC])/)jinnmi멭RH9Tx Wefls~ן?cBP#q&<=NQM&)QKB Ew0E]} ƌ;+&Mz+Lw|e&S6KyIwWgueX==`@@h)-$ym)TǣHGE;2m۵s "Yz;vf#"B=BA5"tv5EFaR 4BM"N&_TLlv:•}ϝcT̜ٷ2ҢUM u񨱚+QHo. ,>FCEa[yi^NqT߳}\;3˗[*tJD_O{SêVk\!BAu;.kgAsk0%`a 4B|ń^: $N #杅'H57v o ys{sҥuעbń:;jbUj~w~a&?/)()ڵ};&7;ee--dFgmݼW_Y՗+W,_W A@ |ʋ9Bz`AOA&!>BЁ=LAGX*O`y xe||xKy.1l!S*baBڑ UvwCzUœs5mL۳ ,)ȇd9YYvﲗ̌ qj)afp;o??}/gG ,K{7_|9¼rAQS| UXhI @WXZ>qAqJBW #L0&ہVb ;m"m?A;zԕS&? ]hC&I hkiE㑐cѶfH.Px`G$nٴˠ7^{B;[Z`XS!P+] 0  AATXXU X\LB u@cU@e+oKNd0%gs^{E)G2w;wzX8hJ W sLĆ mdFc^sU++G{@uW3s=e|P*(H|nis8*@NEz|%9P%"fI>DPP9~O$菆Haaya=LDPpŐk+p]cP7QY` rpQ өLyI003mV;rpASKclHJ ++<`W( >=7Wio={ Ìk [_s.K`⟟rr A4B;h2NPzp)#F92l(F𕴴 @`~H`<0-Q# !1i8q甑AAun/c8EiUAPwiLf)C=̙Ւuε=\U O0 s+F0CexٷA( ͦBDAKlji(8TQ @!)~QnpJ/X hT>4YNY~3kF0C  j mB52jJ'es a-$Q.BG C` 뱻X` /PG~x[ еA9;cQ?SsK\ vx nsۭp!t! O8O\S5F(Pg;Hn: n[/cjIR$K~6UR xnYɃ) t!"yʜAq&%4)fHgJ*68SP5ӵ7c׭2M(ze5 !0$zd&IA-dpwL[0sA݂S@A&I bqsP<DtX*<.g}]mwWg?t@y¼؂- u5\\#FmmP  {a~],DaDc-I6 NQQP2&=,On/*FCf\kYi[KSwggscC]mumu%l!B3Ym*LϬ1B l!j&ԀPr7!)0o]!҄fKlA#v4aJ 66|9R2UKscWW{yqn(AMДkz{{xC! 4": w_F^INpQbB5  US0u:B4"܄:9MyDK675675j@ʄ>R ڪxMe,2dyÇf͜y'} @!gf4 $R,$` $=|,e%$Pe% T:fBMK B]SF!j#Lm#&`#:Ai*.[ڭí0Rr2+κ_7"Ho|S1JpӆPTyI_>( .a럛ڲy#|"%7NN/O̿}{?Xޓ?ͪ+FO,+m)\A߾k)sdelm[tSdxdC||^|ṻ_^ZcJ >_1B;3DaepWI9HU,tJQqxhaQtZMNE!\nǾ;:۪bx$̺i{)hoo+<1p,D|٥;HOzc?n ǎ>5W-ymd+\w5[ڌ@w3Z0onYi^>X nM(|rҀv+݆>ݳ&K6cF|n6TVH׽܅ kfauWx.7G:l)RIQ3fky6oX?sƍzq>(8yvnڀOX6eޜ ij𼹳mBU-|P;i d؈B'JCqB_)%m >R0|{^G(B1n $ݑ|a g@2w"EH>/|:.v&^^0nq.5$@]3[kۃm!2!ö='8᠀=1̾lUe$Wyn(A ɍ j7߀&i>@Fs٭/쒉G+W\?Z`<,|~9  2r x<أ҄b6mB~qdhe&8Y8s :>'c=wIeŌ;EO?njyi<, M/>#)ҳO[mO}SnȎ VݺUk);B $${f_, PU>j}w̙;w&32~sr̙{ܜ3I7pգFum2dU)f*:1Зj4tFHO)Va=t˖K+-5cz,S<ǎ̠~Hiʑhnj"l\6+(B3L(8 hY_Ws1uZrYָ jkFͳ; 2"?Yz B,"c+aMQ H6Df񸎶iqojC]-?zG&Bz ud8Rb!x_) j lf4' g洩깲] &z֬ZqLI3d*ObZ620 m(K:sh^y)TángC#/Ytt.YMFOZ,1Ҳg5Ǘe `oe%fډPхМ/BW8k?CfAJ\H v"YP|2R s;K r8u'/mGZ?>ؑd[T^Fm[7t]Q`9Y._ OJ{NZXfp=[gL۵c4GVf^6kS̘:efe;zSN)v.Jl8jpXOpUCu콻v2׌IRU,[Fm4$͛swF~hϾ5#m3S4~ rұoP<ǿ[B:O] Lţ۹m+]G3~qN:u HNa@B8%f‰PI,ʾ^#_`T/g}Azog-$B]J$B_38jP"B_C{HwPa#D^c[Jc][àl8AxY+"d#Ebh}&Nr޻0zV2^^1=y̓ԿsLj\睷pԴ9i#ƾX͆W ۻkG'Iڐpwt~7x矋ᅤt/)]uƝ壣,hNaPѻkFD )ŽEEȺ!E>.bh4"F}fĄhk=L6l^`G =pH`'&2T=s2Nk;zaEHlXvV];U<&FңDxM裧 #>.o[ath"izwh'Ba:.^a_ }iVJIZ]YPE JٚL, SMO>~rX']tǣ}֔GG%fGGUEל? X),()N@b?z=p\A>%]@[wn߰nHiʡ|zDR]ir-|^>#çξV}.l.wkyIX;]9㋯R+ާM`ȢBzE/e=ި ->i<ćt҃c(BY+L8Yʢ饡\r>0(H6^[QVRWCʏ쮝n[3>钦 .Z;YL=QK]1 Y>BYv#@p\LD㨑vi 1Ucd?.ұIp Vi|g'p٬,A9ҳsšQ.?KrCpl[ krtbKpƗe"v\lMCQP/KF.QZзM Dق2&Ys;=ntNzEt]Oj"!s!aSBQPBN E _|  +BŞtI9n5[rZĮG0x~zdZk7D>C;갛4>N7a.Ņ=MJ}A8EiЪJh2ISsveD} ٭N%LiD"@RS.i". 2c ).TTUEubAqvK mtX"`@NݏmEha'Sm Ru2-D;*:ыPf1e艦_(Z#t`$D(vvAw)vv=M!NGqttdY4F0FDYKue"dlqQFG%o.2z*C%$F>FJd#Z0Tw]w!zB82 ʺ=]9 Ǎ##[{boY(b+q ]D=9B{>|33%b?$" ⢞PאV5,@Ə=iNYeM,ңcQyvzo9f~Y9i~D!A$й3ģ Yc[bA [eƿC.BbwE(sKɅZN+Nхu=dAbtGlAw :CZoᕋB_&zG^Jq*-v--ͧN'NⱣ#._HY4 nHp .;N_p=i  Q1/D*ohH-rؼo$xυ \=2&v%Qy/^mO{cY炓S>?I/6-M H'Oٌ:{@ܹ5̅lIzeW![e Wt# \(;v6ָB{BU.`(" e" Bpc[)\!eOE0 &oH)[sX&n60 ?}oLJHޟ_+l1,=RLYO ][3uXMHi^FZObiSwN0%+wǵ9i6)M9ː E9춋 .GY cq,I*ͨ=,I<2Bȕ ODi({@| XA'G",W!PXG"a!ѿoߌE|2' <ȢQ)[ņ BNd$"t:kesV>JlMNbdKWPϏ77h˥&U+d ʧg× UlV.FHc]bڴqHiʑp9!.rPeMw^H='q4&t(t-hW y,E+>|PAأEXDaA(2^~*#ϱKF"Bj*&m$)_iׯ[S^\Q'/`5֬\.dPŠ=*ؚU+Xf FNsc}yI1YP[UNiٳN"S_-%lпZ"Tt{-$B::2θan\0߿Szyͨ{vlTK{|@_YaAQB0Vl 2׭YDJ(eݩgxbQgd٫Sd=Re&[]RO @)cۮ K^L{spsSk6Dz_7]J׿`r[]Sl̅ҡ# Ts(vdCq*ҙӦ.2f>erb6 6JNyB/>,ufcI֧Hai"{Jx&OZ}U9Hڸz[6mU^UӳT&yF9JX+NٜI[{綵WR>”L߻&}l##DzS00:fw Bt  C , vZLl'ӁKp,^LzA&]U΁m[6?E΋n֓9ąM( (tx>.rîE)a倿SC:2XVbrމ#]Y4 w #r6y5Aº5VS5.@g!.$ ʱh9*ǃj\vk]vSmP d(˒i{jk"s𡴽{R.7ep}_}Y/׻H]HGFЎEGHA}'}e|\2s;u[^Pz1:otp ^)o[o5(nkkhh% _] AMxX `x6}e=ׯY;oHsEgL\[j6_F:eFld]ZDv5? J{BS  ?GL>(oavDBQ_YRT "1X2.g])NLQc'Ѯ-܂ѡd8i0Ch]zY}N! vS~U -Tw)'΀#~Ex :D;@CB8Hԅ!ޝ *wͽdP4xh"(H![cSJ3 k_/rx#KYKX|>(*aFf8bty2EdN`o"k'B;0xB !0kZ(Fz'BpkFU[h7hgز8t :LB` V{ԶLsNDCa( }7/BnX:iP-T%lh; 2(<w|k8&ׂY,|0"̮?K"q!w_fkP벳({ZD.vb`"Lo7a ddK ħOA@`5|tq)]| ,7…e|.Z҂Ҿ' sTn^$º|BΞY= N'W )3z# sQh?Tp񖿂`3٭E ۱y;>|>d;A8o7& K/a8ö~x8u36>\ǺCB', {٠\Ш`Qf]u'O=3m7t35zE>qe^4Q?u>־ii  u6KLXur85{ v^A/ (Éwr{\.PU~](M#_YR$hH0j jYʨ? B.4xbPv3 a"̅Nc)Zub1bP|`㷠-"lACﶠL\rޚ3u$YbPc]c}-v믫,4]rmtՕϺuYI L;0~옌}i,Ө۩oH㕫B{HuT46B \( _ڻ$ E| ~EE?|_ >/g;-(.+`6I2V琨^z9Hf/X,Y/Q̔&̺joil02"l׸T1{vK9Ľy߹;=RYL5N!}KΣ/XW#pn pcHg]J\ڌzI`M׾)9<0?0%8?PXy'%>{aJA6S!ބT'{hVQ)2o(D138Aj>yI׺j=NggzB3t QG z`jH&N5s:=Rrk!;sQ~Ki&|tG"KZ %“=QC 4iE8h@^%aDXjĵEy=-Lڐsh?-%Lz-KKV|rhɂI)-{A/su.01y[k{蜻^㼹w̻w=K%E7"u;<0Xޟ 3O9;fz7wNpy^`IT_][ *'=.שmOպV`|4wYЮb ""B9%E3N߯iS+KY|9n>Ω^/ %3gNSrXT Oy9Y`B>O)/- .Ӥ] Nwʤ[Z|:!c̅.W,BAQXP&“(˞F}6NV| C=znq @ f_# QGyX Zeva|GK3KިA4jP8؋'N2y`Ĵɓ2dPm=-u?5G^B=f6EBk X0XpJ(/'#=MDiFKs}i{#W#.d:P 1':a$[M:UeA"D2-uǎm[-fSf{' ;MaHgǨ:vN:YW't e:w)QXa5Q ,HҕepFGPjDW ^ h+!FPjD.ŀK?(0¡QzC^v44z'nSQ\nՊuk6mJںu˖-x#Ǟy&j׭^QYR[ nhvq>p*KW.[jaÆ [tZKJbhk.DZa87& ?[lذa#7j :mrRbl|No^0)Ν;=6lذaٳgT'mί6lذݩP*JsHCuy*Xv́Q>ݾma"tN^=j@!fo[j%Aؖb6uէ7SE͇",Ö#FB˩ 6lzs~}~B[J xW]9,sn2>toP %Ŕoϝ;|}MI?S|M1X?@lذŵsjq1eZnu&KWy,/ẽ;Xޡc~}'Mr퓏=:r9syY#_w|! =st|8()9m*S)2魇Dqcnܳs{"$ y/H!>G66lMX`ӟԁۺ%yYX֖];+W_%c6ܦի(2Ϝ9 7´}4z͛XQZ3eJ6K|!+%y3/&>tnN 1>6lذŕyse5Gɟƪ Kϟ;gv>%iㄛƲLrXn>Q_rY *.҂<^LJB ڤz% ߣҜs~gm=R?KIooX(vDu *З (qȑݻR$ lX@]F^ѣӧ?x455Q<|lذa0"bt̉AyGv,gH\a2aCW+*˩EHe+|:!)D(=d}锠Gr>d2ݳrH eԯb%8q\(uB曯ƨIYd5 PySvIO>yy >|lذa+JC3g40_V:y[6nuƴ;f2TUD+BSu%7n/sZL DK+h(G_HlKI+bu|8Ii5z}]pwUrd5̕^(/!Idl׭]mLe{|ذa"<.[5e |'=uY߻n`v./{~}Y ,zB8?W+{ܻjо3se^=rĎɊ/w/=ը{\9OOtDȺk/$'LnJGIuE-ɛIK@fFHSN'a]+zF&mLwھ֖&3iUL| ~ 7|#d{H;wzJ&E_P 6l,´;cSg"kF߷O>Hit/?lN4eNx3~Ű7^1T/yWJ2a\"yMTiSH,sF\E/:i|Yai8SwFd)8A˓z͛)60vj!_-rFۨW_}E/ٳuTe)AQJStNbJkS)߂_BxUPst:Ij|ذao"<)v32Av$/%J8lJjlMMMGlذa/%"lEẋ)ʦvϖ駟_6l9A ƁtȢaÆ [ܾɐYR PU^^l# 6l=jfyVj1vQ[YYR,&ڤ洘U9k:-F@Urf{P9!7kȕOtP=p:Nn>k=BjRJ0U!uCTGN{U!]Y":r!Bom tP9!"tPs&*rk"B#!!BjaݤTG9@mtC Bqhun"W"#vP#!DOnDQ$ !BjͨTEK͠TE"B Bj#"BT/\W+NF@!B BDP-8'x(@ޕe04 @"C!U0׉Q "BT/B܆ E G@C! D@"}T$"jb5*"<@}"<  P-!C94  B(B"Qܡ }"nbh Ex"r! E!B*!VB@d8(@ BEPd&G@#{ !B"QP!B!D@" Bwh3NPd Ex"BT.|":2!gjE%D"g !BT!&PA B:E(KP!euh4G!Pq&!Zbh Ex"bhEPyBD"2941kj'4A B*)@@= D6LG!B-B P!+B PQRM!pC B@C!Ց/4B BftP!B!D@:14 "oh2zXtDPqc^WN F B!Fth"zo P!B"BT;k"B BEPE\!5EWmЕ5tt qx[uoQɬ:PhK[B;XoVkںHьwI^$4E-BSuؑ:O\Cv m]]/k͸n%"xh,`c]:+ s|/K5d|C_j=tPXhC5n1dZg~w=kՋQi{m8kBnr=a^9ЁmC> ڶNF0=;+l왍[4/Jѣ-Kt/;}cE#+ؽc5.ta[~saîQʾ=9Ё;B_ 1u2+e]ʡeϚ-CmYlF9?RRJGRw^|܂- O޵u^I _C:Cwrg۲WM-g6nf~Y^Vwr'W-=|Kw-K/\#d^hU.tXc/w͐ix櫯̶^u[+?ȑ+gG{f*-\V= ¢ȖXgẑ}D>#¦3Ҝ߬72SzKB_wp!B@m?{u=P"I[vM[-^-C[Lۮ~XsxWԆͯߧ}lgGџG 7-?$T=)ɛ'2q@W w>Oz!FVS{aO/1b֋8ׅ -wjnEIG(=P5Й0'gCAg "%V'L˘.ğb}ܵ?`v?Wyss}g[-^-Cl]S7߬ .5'N?eyc~e?hE)ɣFHNJ4ue[6mLs}Zuщa3,0<UWe-;W[w|9ky冪ToE_1F_]mg'r OVEYI! ~TţOU/yRS[~4q?{Ux-_Tuú5aӦQIJ}7F'iU/*BHKH?Üu92܄wQ:SsתKMǏ󄶪\[YË̛~?Aۺ/̼̌xh]Xyշ>cI{ȄkVUòߝ2J}&ˤ =mV7ht})Cj n&/?4M&[)xeJH+61,1tUYaj%"rluax$Ki&e<#.z!4T tB 4_eDeY1 t ! }/^Ej͏~xq⏧_sWS/d^66ߴ¡a/%ތiSX&)T֦)fF۸Exh%ҋ44ųqhwګ}Z4՗jr4tUawj+J(A}Θv 2_6ZBG"&34/EAz|͓>c,/6×O秔sP5#dz'*ʊd1u2mE3 zt?|~^N>IZ(!dmbf[?._)Ƶ5k7YzPV>VS#MDɷL>\杚rڠNLX;cٳfiU]f\?D"|sOz)+ƚߔ}/9_v!T tB̛{yYi,s`~3X];~o t ! NE~89o}/ 9s?k^WY^"m3m"<4ڥu~j'tw9iMk_)h|BԫQ[6mUܜA\ϹyR[YFs=;g;_0m~W:8Lj:MaXx=O2|V/ovKcS\߯契XSO<ƾ.Q7M?~ҁ@:?Xv٤+~#);8nJxƠ'=mUg߿B/54hi kh/֔h4E7@ Ssc1|bsdS'"6ד'`N0_˯6VHUd]}uE<$pШ ?}{^$$ Ӂ@ۺvh+&_?lN[Tjܢ:42P} u]TdP5GsPё'/ʤ^څ=N걈0-unq:"-z쯉w n;c؟V5.AY B@p[WQ['g7Ox- P[80cŲ J:U?I5WgdO` z"r3NPq9Po?׃lVe O&_;BdmtPthu$.lv"i뺢qsj"o9zmUyIQ-ɛd+c8mûU/7Bhgʖ-6j+,52:::(zM[qMx[XDhULݶuoZ\C@BC{@i7n|IԕdeKk@`A@/k:lzM3V=F2j*C:u6n|a;Ql^@m<><8FaՅ@mTX]>VY8Fف@mTY>j6jCgD7q: d*eEF'Bр3@U]|"AԅG44"\n[f6RK in0Lg ~˗RL+)zuE .ЋO8W,/eYo]jd譿 7Ȱ1 DX_?O -z1ۆ>S:f 6ŇIENDB`ufw-kde-0.5.0/doc/example-3-dropbox1.png0000664000175000017500000012253212270515626017323 0ustar ubuntuubuntuPNG  IHDRXsBITO pHYs+(tEXtDescriptionWindow Class: systemsettings= tEXtTitleAdd Rule ? System SettingsIjIDATx E;sofyf}E]qqA6}kv[muTE@ w(j}7{νoddFFFFs8{}cd4LzBBBBBBDZqy呾5tG-{VUԟ+ɋI֕cE4?$@Zo*Z*j8(ICR\eKUsH^ [de숺>j}}$>W9C_ KoֺOYtK_41꧅"qdFXYQZͳ5~GP!P@3Y_]LT'5R*_TTT˪d#!Y]uJVS?˪jyYSU_+/aUTVUF5X(NomTWT_T_PG!P,I #57KjgKSEJjilhmjlmn-MXMmM/ Y `53jojChkO91mmIΎv.twuv@d7ԅ]]ϞNI=zzza 1]}RI uw-@oOO/R_/ CK;wo@ҁI 8ˁ @$ ADK "AiB:$r9|ÇÇK Q~^'X_>%ʄVڵC H:CC> )%WI\J]Rtau ^|v[Z&DHE^kx<觥Oz' g=sENY.VrFtI1 8MWCz}:V In6bv3|RHB)(pVA*XrF*vGPryUe|;mW5tiYOtJҘ*B*I|@2&U2Lcap;G@[hHԩ)(Z:,!ϪD:JRFU=G'W[ݨ.i+Z(P$Bϓ d(+ʃA}3a*x1 dQ) pѥ4 …b\PERow7>(zzBOa,< HRj})Q/8<|Hf !a-ђ -SҬBO?(,B 5^%i 7WǠQHO/M>',-g[yW ~#K!!,7P̋ 8lGjѡ' I< _8 xN-WZ0!i|pzpX3  ^Lr!q!.{E`h1obw+c}:WZZ50sׯKV&#Ν;zxG!D-/-ill$}}8QPTF!N FS]hf(cf*^y @-bւ5 BbHzkka>R\n^_k³D=l}198=:"jlDdKQb/&#Ç9ӋN|4*O"c@G2hCPe#2FJS@(H?)G5NAMA"Ԙ0aA EkLlMM򹮢bĂ9V6 d< 1e!MAݻvA JꥮU4wwtǙLCKFa52 q,jaUaޔ|ɸ94BT6 `. L3ٷ{W2a`gBlfǁpEW~yڵk.]s;F!a+wmp6u춴VjxGi)0[,d ;,4j;C A)kܦnO7vPk )J KeZJJ ҳ j+ g(¹oٴito.(md+{w"DR}T!@ɯ' ƌ:ȒbvHo#ps;^믻voKFÿ}+/,Lvm#µ*cz GE1˹qO7.XkY*;H H=0Zl@ۼiU v!7bamg7j;MCm n!Ӛ4MRńs)ط7/7shkB /kkjlބ u##d"AϜBPj?aޮ/yZ[6sf" M( Mi.*b"8Re2Ѹvj0C155k欻tZfW\vʮ{6P 8HׯE"e^&VUs= P{t(+?{!j_;4nPp\uc ;dӆD4L3nm'5u}~?ukVG 7䭇 <E@pP>RBn vS4 mاB&M4L֐)UTphbR}a^N΃ 4(' :;zT$ڳ{rY/E'n_ Rojl2Z¾fĀZ0`ؚnb$C">ч?S&q(Vض V^IXþ]KvR>0`V I{ZDƀ|~jurnjnpuՈ|`!aT' .à |`(.*Cپu+QEYbOgn~c;E0300ӥw[@/J`Z 5)'5ePj]([udlЗ3MYr@)]>or#y$`1uJEqrV HHo@$Muix;|* }4_CNu2 /;GNY5zk<ܳ6#PnOϚt,CXтTF2 P0ܶ3)ۑSAܡ$>T۔4}pҔ8;KC M ćz K Eڵ?O2Y3$0ե@m` {#DB(} js֭y656jEȊр{" pw~|쑇.`I]-]z~>dp "떦&b6rM{'} ;A{vNnMܻ:![+{2{}A B44֮|$_Y@(|FrѴ[~4S5HVj?.Y;B@K5i; {JhK3Xtӆ|} lmj`3L"Ad0d {Y>3niFgGG, @J`G 2Y鼊WW }MX$DSC07duT)rܤn&=+jYʩ;5Kp1 >@:~6߻ܳςq@ H؀A\=ey@!^L@i+@bPY(@%*6KBPڵډW?C\n13ntc/]CVNy~n3gXQ=P)ǶA`؞WSU8) ®];w^xܶcΈG%d,? t_kqvQ4fMA]Lf O4FJ60vnU0K*Jy-_Z`hlt!8ч #|AJ1rGÐrT57.WGL ֐IMi2SqL82<4W_y+/ 0/ Az9~H Jd c>I_k%];w`6߳k'>]r}vF>n١Vn.>1B`YiڟWC|r܉W^ C>&֯ZvW*Vc2#2v{&q8`3cënH8Sqn|=<~}dD$(?S; G J>;y.)a_o4|pF˖#6cܞS+8Ɵ%ϜM@}s#@/2b:!; 2}_WNz[>q[>R֠Vrkm!(O7 ( JƋX!;x`%_L xC {ZgEBzzM:K'^y~6SYV|??6Z$/7YQ!g݆aJ3vN]YJ@e}up4 RR*&!%k1& i@dk'qPIva=BqzԷȒPL[%<*;E:dDGRtji4j,Qn.sgڑ*e+RH}`؍wSpꌄw1t"HNZ[EŤ뮅`]wBߺ zܷr3jy >*aMߊvm~iO;~;nqcۯiƍڬoC^ބsρ^}۷mȕ+Vs֙@eKOz׈s$X@O?5?;ڱ}}w& >Ý=~Os@/R5a^s1ӦLljHQ?G[WՇ\di-E..~zdΏG[M=`({eQ+yz,=Z쩯[{wT8k}UVKR TT)z>QxQJxTYNT%I)p 6mהUhޝt i[O.BrU*iA\&}!i~0C1/ל)^5 p&U0lp;v89!]GȂhڵkiӦ-s@Y@[uYOd{dIyqoYXE{v۾ v lQV(i_SOI"2$5JP2V q/N D:8lܧIrC FV#b1[DDмK)ԖxZG'W'0xP߸AE}!<)wDM(qzĖD!le5DIEdIT#Ii4}::憆d<>rs1,J9öpjp`ȡÐAlJ# H|rAYʬW~8)tŤmIϿ[xq؁y {O>/-~AkOÐj̿>B  S#^c 绌C#yҕ˗Y/J_Z-N){(-~H y.0*JV|kF X[VTL1! gLuYQae,b x[Qe<矿Z_/mUI膿oz&d (kWooϵ9J7[oy5l*%:tNp654ʳXΩ_9heușIJ64mzׁ+NTunihڢ593whkE2rS\k D zO5CfD7eMc♡zzm8nAarIg~>v G~↔4C-l+uQ3iaNK0nԣx5UNw Q]Lx;vxR=_?FOuh JZgS;~ :Bhܞ5RGfPWZc9k~Lo]SVR;QbpT!9֮Y.z "2jZk;)J rHՈğLD ֬KeR)am2I.nBӱ}۶{,Yeo Qv~=,rp}m׭]O} ܜwlxf 85F8YXkhP?7i Et7D5h*kL#FU I]SLO/qC(UHEf@,.klEMq/3R>@J% NV}ߊƤvw {5G=)v3==S2νG\MҙC1H醟^<}gZ{ hBu2VXϟ> 0ڑdy!⫓ qΪq۹g玼/-ǰYgv!wt} )` @&Ys6 S5@9ös,b'KC s)aYg{ݦ 9̾Hr4Lq&&08$cyШKP!XJTs:'" Q߾&cQMdFDsŘ<3fuEn{D# uDdwt}KaOf0Sdّ7 ='˼ף#_|zOסv6 גG&=26] f/`2[[sUNVh8Z/VU*4No3袙HWV-@ ؐ&$!*me%[bh& ˜13IgDoIVK&3%{ $$5S;n/uLJTaE#ѯ[$IL"ϔPwS,b#2+oJl3#(>ݸ $`4ǡrCgYars5w'4AL͉ENgdF1e.jH'g[[ӘdIWm >lcz]}4dՒʷ٣#̳=8nOkUW~?3% ] 6uݽd7U:JC2EQ]r%2B CA I )F=kwH dS37z'SgLV\C7Y/V7IY>VSkjRQ PkmYok8NcG:ID>[c,SDQ6bAl@1Iζa N :F%:Z?z/; =3e.9SԱT1`^R e6#襛1Zi$0A%:*jZh_)?ӡ71Ѵ TKГ*26zH}):";h,QM]g4Ճ9FoP_"lGY+븮N(*J) kɄi1+$%s2\i$,O[팮)8>c"*\Q7EVSsPlйP$%jg0i)Z[CsYqQYTSFVL/´&fZ,*5SpH-BpJs R=e"uZ4أ[r챏D>H1OS*/ 9㘂ByMÏ_G[YŢ(a|dМV,E+6"JQϲP&E3L=UiA;o"yg8&2bc-MjkBj&QkQܯr1̶/X byjHJ˰LA4ݶL))XfK-<;aS HWXRhTjf8t~`ʉzC;vnI7P+ sFuurG%BH>RבYSrVdTäUe$ËΕd!NwOR -"N VV!VQRSX8"I"iHX$*Gše$2p<U 1R 2 id$Qe4@,Zb 8%Qe"Nx*;(A>8`>&}*%阑,*gdx/]̍I s{ H_p%CJ=ߚ(Zyp2)eyo=S,DRe>r)dVXĨXo0J`:-1*[p0aO ʜd>(N8c0 ~kowwG{QoO J]N{EgGP0ӶBBBBBBåޞ6@p&=v,$$$$$4x:|0 5,upp˦ Clw'$$$$$4<:tPe0:BBh8tE&bQ)uyfЉ,S 0->=My7\w)cFuyP p"a ]:Wo+$$$$ttx\N&px.򳩡!S0MAO8?TW-7k/3:ԓvM.+Jg8gViK k¹غp`)`&=K/_{D_q٥׭# N?nSހl;N3+.߲y !!!!MNcƴ)sf ',̞5cTN4f XOU3?w5@[k+XXXe[[(<UF6hiؘ%X#Oɒ~d'CrЧ$S4_+x%`1ce`<p4AnvyK%4ҴwNVe{)I1{UŤS*طZ߷DegIzZ;iFr鞨z3{FL'dBd,"[GBW%2>'FV4Hx*f-7LD̊|Hf^[i~bQOEyό .cݢPZGe~fcYU8+imu2dܔV6 #뛤u1յ#5 v3Pz ̠Љ);o˴ȗ#S2ٓEh ]f㋣^ .~x'ʳ*$dxBمu^gfCR4,&3!`l !<38,] ѽ$$ݕH ѰH)Q"F&" RI7Uvן{ˤ[9AH(Z :&ia DUEi*]1fN  :~9i2(1,wxEF&ϒ ˜аїQJHH]r xNB!!!!!BH BBBBBBǟri* E~}NGR\!!!!  :Dwqza ~@wwg{[qn@wYHHDaKPL]mmp.  רFpp׎m-͍M ǙZHHHP_;iC@scCSCq&88AQS($$$@xsρanAPX_k; | @9c\x)cF}&<裎RN,] ?/+ l!ZU߯ 1 ]vD:6Sl ҁ70& A[i+/pӍLRfHiC.3{}s&1G&ptoe^Nb*Jf8g&1 u5s4G}n向erc#$yǍM3x!̤$H³L8cFc^ue{wA`LՕ5UIPwکJ<4σ#aGL騸y 8[n avp;L82aK/!gKNcƴ)sf1}n'iA QXZ? =W_ #=(+9ļK7}M -_.qT=뮅 >Ǒ#&p=wb,! 1O}bEX'yc> /\O̳ڂ']#a axBBBBBZFG:AcG O<"Oi,!l38ѹm&+(.kªd2ú[y-,]l> ;b<.X{fς~أ?SuםV gQ s&]w |1C'  !F#O;u dDH ]FՃ2OƢҒ1NHAb ^j.x]Nt`h=Ӌ8l^|QYIg&YWKcO.ڪD\PHHHHBs g]U(ayݳp䩧ݿg7GFPG>SLjއl,GhwߙpH>x݄ǂ=^5N:0kg?SnUäVܤ_U  IQ2hayIpbK/&>cokQV>5!`#x?à?ຉ!ʋh>JϘ> UpH˖, f$aRMeF 3J'5kEx0 _|)g&iǙѰ1x8h"!0z οKq nݴaKScMMH͹X((rcS4,ػ{Ƽ055wtmܐ')Q Z xCYҕ7!<ŵ5 B&@g*-*ܳkq#88)AA!FAUhXJT!i(9swA2H 90fh4*>fyj'\q53:7RA{4@贕_t}I@PWS_[}$.x~ABB!##C*%,)HXpwÆ9#0%hD}Ο ^pؘH鰓u5BBi!PCA(#h2bh$ f~g asM Yi78̋?#RRX{{[6g1g2md#VWT%`_$|驹RSVZ4=4 25BK"|F⦷BheJ} I<3ᜳǎ=i$"&򒢙3C&7͸8r8m<27g]JVW%*X3La䚫ܰ!GF,Աhq^vniq):4K.~Wj_~٥k׬#y=wwO#'g.fLr|^%gLHPz} M0`c8 "7i*rAg F8bSzL0/FF;H qO;u .[9\b[i1we_. ?\qĉ8SO﷕Eޒ1=W^zݰ0Y 9k'^mt!gcaU2Qa$ ~G^3G>>Ve89wګYg 2+;zD/2kk ?"t(6"i_z iNƎ:GyiKm,!̬ x$g&1Jl'gvIb,د,!l A W0 6wI]sӌi0 *1B!H(h`7 W0#8%d:P: &m_ďE.M7HYZAac"G|sIV N ԣ QQ(@:`| HS¿kǏ J&55dPp/!̬ / ^l3`$ u@ cv f }W~1l͟;n{>mxZ RPu03wbC0hӍOAV jY1;&Rͨl#`\c@̋C #/:ѣƎ:0۽mE ]Ǐ3zO=3 G~d΅S0YM9sTԲf@O*AUN{=BG1M>͹sۍxՕcFLXjËECB\/h3qZa\CAc+++8;nR< Ժ5e Bb6Ʌ:px@x,p7eSe{]K-fUY9  ZTE@)oT4,;8LV0INBӔ#,l̫J66ԍ4N:e1 0d7mbM 8qB0i!aľPKb -2 I )0==I4kM3H# n۾;7嵵4צ[w,uCn.8xN0 ! r?`$gf阆`ʑpP`ܔ*EplR8\frm>]65}^8Y8e8qqN܆0TE@ )!VR0Ӑ9 UY.lUD2% n$e_.< ' qMAO3l<7al#*N  $s$IWN(lTA#k0N-C򥳂@Y4eޠϣkLq$OG(!!aPbcb+͠fQ Cn%gpj@DRӗ_ xvq#zܓBո,6*Y3~ 9ʒ 5R dEWkM&{dD9Hrܓs+RsZO{>vMzmOFs0BKR4Qڃ & u(a,X5kD Aw;ہ?M2m:@ 4USZ\@b`ay=`Fa@Bc0i(\ (H ALB0P06߂4}vXw DA[YIoOO[kSmu^m=]eY>Ҹmms>qk@trsē)~רɔѢB+,4 BRGx4AQS])/)jinnmiJRFHiӧ>o믿oֳ>O_xBC$WNB5)xdm[2 -R0MPB ]5aO3z쨓/8<=bJa+/ꬮLЊEBLLO%>VV&8m<̓_E G&ȁgQwIs8_rYVZu?CCO "q5!V& ̆9ncQKsPkB+,Ե*@E~&e訓~/\Y~ӬoL2ljNƱJ 3']ϗJX[]Aw9ymgv5kzСW^z?g9n2foD"7n ?oBX! {]^=ms7栵9R0]Zf!bը#` gpMǍxӌk>k̨R! ܶ*Qa&]w-֫/DkJ ~u ljj:2 yL5W_yIH[bſN<[n1cٳkkk_wyIBYa }.pt/{SL0n9| PSaɴ#S1X}/<4~ι{k/ &)e!lRp6v*QP8r$BpNz!=l2<]!}۶w:=g G݁l5$r$|_|1nĉWJ-'ǟtIAs=BGQ_ pOL=msݎ+h U~UI'4 j4'H8 hz f dđ ▅DهAq!`4p;LL!pwGLX"AcG ?Ou!Kdj`yT%X)}W ~@:okia{{5o:_~I$/<:@w߁/ooӧO ~!  e>lfpԱ0%AO8GSJEѬRBbJjXhBUBOIx$mS,H;ǖt: e}I7W޲1V'0V8x>u|3ʀ a9K ¯Zɼy\l>|p_^^??l9s.))?7nA>{\"ύ U;Q p*@n IۿPO팬Ff6T3Up VM/]')9wH v47U AbhDIΙ7^},,̺ q,! 1kSW¡ޞo?劅p X e;d^.Cg5u[0ȷY )W B O(5@&@hUpeھmͰ0X/a+/.tV %h^]K/2CRa+-rt-d\`4ϕrܙkWæ~*;N;\vej#/£#x nGmUeKc#A,]j.;<#20^X%j%SKP  PvpKAryBۡMˁA+sA/@q؜e+VPWUGUW]Vb {5 7mz=v 3NfOaam!ڂEO-3!6 )H@xA S!eyu]]ˊW%5UiyFjdc;n0s2 YØϢ[a!krRPr=2<a^ #/\Bk6YrյՕpwWGks#! 7~M \HQ<woxȏjBuQ ws|.؅1f MIAkNT=x^9OsfTA*#P*K {:Z+z47vuZa!<9k)M' ^Sȫ& tUb(^'` t+ꐋ؅\j)Mf A3V:°dIŝ핉:;K 5֑WTT__*d>-I~>`/wlټdeKn$ lB)崕L Wc}́Tꪬ: OG YJy&6#/C`ڽ_jH/5Gy+CmEB.džu=ݝD4lXVyC {@dK\~jb0ڱmaۻkDz%q5?Ӫ^VZ#@$RLlِGs3d\~ D:+ʾS&+hyZ@ 'ipZW`( X$^wl8~!#(}n;\E|;8Xs<dz&lnoZƂ0T`q.;@LvD8$$—sQ6 y9k[ZhNTVfyy.iU^RǕ a0-D8>uT0[t4d$ |{ebGnG Y}p#aC ]{Eٲ%z),! 1t vc(qgG&ph$W\8hHܳ>,+|.Ǧ}^0нi J@q2%O Ab?!L_i@ 2v ;9A[E ֦\SLDU]{(Aᶗ3|<|>^y~f-^VD"㯢77ӛ07=S{Y rŷmp#mE`ޛ'IK:-\̌$P ZuUUUo$BQ-B/K5||ps>-Gs%7;E>YXGІ#"Y2b訫qx5<:*eraHiuMm):񲬨;h Z(DτS}ﭩ,gwAUJ6EõatvK=<7IOMMhö]3mc)xt)14-־.lQqQOqQ ?.bh/ Ủ{vZgkȆ ,sgj-&ӞQ*YNpwl-cRB,u"/Oi%@,+.)("57~t6cFD[aV:.Z_e_ ujɨvl߿ӼҒ*z>ʧw_e%GGERG9]̵5UQ'Bu/&=:-1SPt1=B~Un΅%7΂#N6Kn Zn'L>~ V8.Z* z6 IG#~m[~7ҔC.soF:C4OtQUg<3Ӫ蒦 .fzc(ϱrtB3^Hw^3Feg=6wa B;,~P49m:.(/)P@/ M8(WdB-E!B,庰SDhwR(-]蒐_)YkAoA[㺃f.|!;E_z3nc .,ܵ.ОKu  {j>V'Ιu.o -evo]V{bY| {}D:N8<6sγ;]Ug5:wuھxAˣ/Ҭeхv.1cތ2Z,zf.±L"&Br-VN҅e\}Ŷ~[^-ȟBL¯Fej5_xׯ۸d\< ճhB.ܨ#`pWp!):IK gGPN!z"RB-A-;taN2ßD;cxWiVGձcX_z?Q._p\+57=\B \ȚlB$ =;~2I2cvKӅV_.֝)  Yйs!7 !R"t3 Z :gչ腡X%g B}Y=S QmShq6`1 ɉ-=WsnOڝ.֎qXйֽv,hׂfs,ԇMZ/f\\=AI qujj/שq!M# 7QO}#D\o2i\s},N<םa6w9"5[}F1#8Y<Ϭ?;)Q. x GwШ:|0zSёׯ_>S] lm__ڣ:ąW, ~r8)Tp/q.g4 Fӏm~[݂PαcXuYB|KзO"h{ LM%DWBG鮐8N ra4hA[c/aAwwЋYwb9u Pz+D8:uh?rﭦѡ} Z2Ci|,̼ ZvtMJV*QVרU!hKB֬,|`gй"lЅy^; /B?.J"TwJ/ Eo(+s2YvqoG!@&RΙ9sޜY̛jk᪕`QqFg!q|T\Q&6}̉POqb3А ; 8!`o؛sd^gd1h%*i.(1uʤ~}zS7qKr䄰P8N Oi~C#Yv}{w [aUEiEY1j6v9?7Wnfeٽ[Fz*&ry8'+i)F7'ƅwڥ[N 1,s)>lCRΟ8!u҄pJ2sg9 kۧL}(LUY3&=繳gRIPA ]q~}g&"eO^pr<]hBނVvX[҂6K"t[aqXwE` rC7~lB)'#m'SS&7RjPgMϔn(D=@e7#|!ͨ?ʼnaB(1{ƌlcPbm##GPΦ ϾfJ"9+\`1ƵOzl<>Ӥזuj%7w7,Lip?ފ^bɢǨ&x9>JzTd^d٨gJSe*K8FER⎵  wƱ8 * 9mf٨ZFו| C갹(Fyw*"\H,D*!A]_x13I=uիgJ{d= )ٰ]-/-*-3<HݻvPeNXj^%bcBǍĈaCr2ͅ-(AF쭌btڟ;35bG'=Srˊ B\+ʼnxG+omH='nI.tBIڂ{g /BKV-’[$3wbP;Eiٱ};QJe6X^,?>Iiʡ|J|ntǎ H!dPQAйsk7Ts#mΞ6PZny"mSZ-gе"tZCt ud v'„>4;soxꔞ̚2ءܘjzb_1UNV%v JONR9^N8ͯP;r|z#G {OoNF[͆6<3k4Vf(oa\1D(BFr:,ژ=]hfpǏEBr3HM Җa38 nѱh 2:Yʂ(a# p4օN㙅BI_xK>o 0/ZZ ŗ c[B/FD=C62(94 @#H![cSJի k_/h3;"KyXKρ>(*a(t܇a 6BS; S~8c;w[Ť1T^1(?-͟ NЙ:Nuʎ6wP|-B>$|@󆽮U .NTn٤1T cl>2(<8o5:׎1&)0JQ` ϋ02.qDž3eh E6W_˅ PuԘM: ;M`)ђ)‹al1 %iPS)];HˬB2lNZ/4}AO-NY s`m8쵫]z©کq ?eyBGD`XO!c*xY3--fdP}} g CD&qi2p~PlN+՝=SnϝgF\պ7ȅOyB< ѹ9.dtvF{ CMZЂ"FچK B1쌳ugVWsugjk+uZPB0B"$1boQтP^nkpFYwӂmC8‹З{Wkj*M\x BޅvA4@*\ aRkhh9Tf &I(BqQ 2ނ;,XGz:ygkʫ+MW_ A <?B)C~yꐋt-횼4J:-ӈ~lcb&pC6&/{:e^3CzLQaueYey)TU9Dxqe60sQ?T#w}hg8-ztH.TM mP=ۧݱzQIfguG{NP Dء}-7unK*JNOI_t—4je(SQ/+J!B.T;vի a̅VpDUR4(b. vᲠ-"iAu۶H V}4ϸ^aEYqYId s4UO,{tDe^91sf a+F%QCγ--+`6mI2V琨6>YgJ̅sXDVT&„Ngkz㵑ÇN}aYAy]NTh9ļ96mxf13Fj֟HivO1߹| tF)M9ϗ)+.Dx(}1.S.Q 0\ k80=3]X %%1sG8`JA6S!6!’"[ʠ,_f0G:LiQyIO|)7jkND51|<=SrJ Bp"B3s/ P,ShA6Sۖ/FvED%®;Q7NdgM|n)ҏ-|NO *Ҟ%s|rLw~ҢwV1r-B?닰5 Θ٧3iN~>o"[pzaQ sp]iN>~3gM6t<{ |z$QU^դOK>!/]lϟ|Bl6z4؂ZPNvzjظNACdb)I,sİ8doJnM}vei"1>[,:搬T|p\nMPǐ1ʐ"|v1RBI Ġ(,(Qek#dQ5w5 #,ԃL_x" QwEry&nMy1ldlNбё>2I:q ZTUW6B=:6^BC ;XSq 51>DYeViTWSGE\ PB.O4C [l*E(+  E!Bhs"#:^$w}& :U;U>}As!!)g#6oپ 31ufANa~vwnM**AV](ɐ-].pCá2Ha2?35)1iPS;"m5\ح2.RP+7yLq.IpSb7zD9_(Xk]( ϿF ׹r!͚A0(g r",ոס' Kt7idAaAI9Bbhn0y bFP|&?l[(1]۶Ky'oOa5 &Uy^$ۊMaAP65!#[ l泟 'Bz{BXa{@Xg'WA@ҡЈ ^u"@p "( KELy sh"VCވm644z)¸F=Drb g<5=s"tQ9Mk+<ϣ<'RrOTmH,ޥ &:8*:5 |Q\w"żc I%)K @+hrܣܿB{P륊/ &z*Us &<_]j1<&j]Ӵv^ V*BevoP[+<񨮩oݺ_~6n+[n͚5 "7OԱSE 'Ɲlqge߿ۧQ,‡СcvSkkjA;̠d>*?<=L&Ϟ=;""Ɉ[lt\\wֵDF;d$n~}{9~&wqc4(BKQ> [X|ɢE˖.6/BxG@<:N)3<4e>:ib޽:m2v];wiά xDG:!|8JLݺR/vЇ>( '͙ ϣV0rpzyӧQqfe&MЭK.HQ_~%Tv ׭]ޥs6w%r^7goacߥF/GQWW MTWQS[ux4Ѿ}F9xxP Fnݺk'?[!,seEأkFI}Ia{v0k,g<߻A9YEHeT9YPI7kouڅҢ2_gpoSqW?QRvQɓԭ^{U .0f$'3Sl)&RbQϟnB@Iգ;`BX裓&Rf7Vڼ޸۷굒 9//ܹDatTٳ$UDJMG</o`0\vM͛7WVSK.V hVpOIN|},5o̅eS,3.IL;%#Y8䤥NҒ݊>O?bPoxz݌́t泧OzFIϳfL9m>.8XT>3%)lXnθԤfpI z~j+WM}G2Lʜ1}e)sPeKSg >}j'WPHH𘧟ZϿ{qc=kNknbx8`޽;iO!yӆ }z ?]<:tݻ),ru\f%N"<,dD _o@Uox  ͯR}Z,D()}-(0V5U4V5P/5W" sbe2aD"&@di D"]!YO` Q{6Dȉo!yOd!D@ֿBd<4za%D"SD5Z!, B!D@"L@dG D"Dl@ܬQ D@C!F2d( D-k! OZ B"b #2!n"d+B + B!F\!h)@XYqࣩSbZgSԱK!C˖W?~wjLK"p2 :pf[><恇G٫֦^uE$n|FC'RW[M'_ MhD,Șt[kƭQf<лw߽g o~8|kOzEHV`1`''myӑH#ײxv]hVDhr['>RzSu 瞚^9[v}a ۶۲7ϼff߾[|kϴz"YLVVr";.׷{-C/ZOs|C_Q:?iV6"49*_S#[qп4nZ/V(,̿\,bKϼ֖N9?I,&MhoPaK5H=fQUO աg>akE#^-~sC]oXM!m1w]ܖu, =S 7n x7?OͤOo+\0Ҷ jÿ׺ ^IK>,?mF1;uգ6Az"$ Z|b9a;' zʱoLÏ?.[KIzT9 5nOПW{~ۏç~ٶ~sSNvilrI}^-XXc'gN1Yӧ߸5yk<5UZ'?I/n{n$ozM%*3^W9)(i,C o=:23-铏>lNs}Zu͍٨35>xba߁S6ofL^=ڿ2>UOy)dL<CDy{];wk+;3q:w&5y˞T-YY~٫ts^0|Ѳu땫^my9ݺtN:߳{,g6n,rG76n~Zf!2\݊0ERz"}/Gi~։wLVXP(V(7>+>xo==5q|h4|7пSP1TjjMz '/#}_9WцmN)O[fL۾mFўGƗY9O,_:wLIf]&LJOO8wys&<7av᲼#N wAsxַ CNyX&uyj:?'aqlle=PZQXHZKL/TShOP$?Ir'$xj%w1zwFLiIݘ'k 1>j"ldN(}bR=yѾ5|ӫK/:O@5-{.:'r2ӨMn랋p۷+);w=w&?-.1ؓ'o{i3[a!,!j$3۸yj9)'Ic|A䋔W_y6Yw"^HNHi,;5g2i„]!h[UO17UzJK/|'w4q'|ؖ=G3oK= {q #y{OdgQII'։ 7)ԡoG9 !j$3۸yjٱ#G$))WvDo~掲W5W-Y)?U$ܬtɝ3p>wjg7jeޞݻBMoV"ԩ>Xt }g>wc;3y#ߔx>柛>UmTSrfϜ>wFlL$)dt$+v驵ON2q҉@&u"nﶱ}_SMa/LJ񹍬[t1i/'+]yf6qۑӟ&ܦ𓢷V+a_({Ja_ٷH3 E⓫UAA|чʜԤ@\Ϙ:uOdiwO1Q;uT.QVGeK;>_I-דͧۜҝzo{[NZJY3{v)cQ,s%*6rPz+4$8!MnDd_d^)?|ؐ/_y#Drb<Oڹٻm?̴~HPMV(2*T+=Dm[6N\D93gq'Ǎ5cOwGԡ}=^xn6ZTKSEHUe`N]ד x7,m&@"0Dhr[W._n{;x(5n:52P܂oOV(oSĝ)N+J਑)1KgV)"8d5 fD8pt7_x3۳AS_|֊ftR!+jz{?^tk}qgdD5qȬQ(_?0H͂Mh-B27!&h"ͬQyquДM3ޭd'w$7`BE'r:):5<:F 6;u-Ѹ5n7<ܬؓё?9S'2RUy9M8m[UOkoDnF|ч9T2'NNN 6nR3V)"+2OGtǶ-o~)SӡŸ=ʹuԌ7UoY%*Scc"::Xں6ӌ7UoU^)O:?6Ќ7Uw0TH3;Ea*DuFSF;28Ee:ȍl)\@n.̨r#Wov0_gDuJ)BV 7T:S@Vgjt:5jصmKa" /Sai9''35r#"C$ʨ3j5@ s^Fڮm[Gd^*Rb72 a\"fiKszN퍱' G34yJT`qIYDzuY-Œ[ŅmE'=u(=f3nIENDB`ufw-kde-0.5.0/doc/example-4-dropbox2.png0000664000175000017500000014736112270515626017334 0ustar ubuntuubuntuPNG  IHDRXsBITO pHYs+(tEXtDescriptionWindow Class: systemsettings= tEXtTitleAdd Rule ? System SettingsIj4IDATxwuF%F P@(K@$-16`0D&#vPVݳ'N8as*{ntLOOO8sΞVR5?<+!ǨXr!!!!!Xmd_vF5)~#U{2Q/: ͲeE]] 4:](ȴۏEYjRaYUi8R>Vcv5՜ж$@^ĦY1/7bwژ3پ\߫ [>3+igY&k=zF턕&eo>ݛeM1@4>O  %륗;Cv ķRtc}n|qGCڒ"1 ;(uu{a!;Xh ,O9h؂zlҪ|4*%BzM~R4\/H$\UU+EBA_4,/+ p(TA kոQ\@ h(- YZb ipJ _i1֘1G/6VʿQz*ޢB[3oD2!IҮ]?rBZRT~P_[Rx8Hów(40QHhtF!c-:8&BsBbA?l=8Hyp,v#%f}m E@̦!Kih /P&%"&"f)\Eddv bS96K>ǭ3@; 8+Zx2`o/kG֧9B#Ӿl4(_B[(o 컝)j)898p r%5udʄ3'xZs/Z_ Ue245YҒ"lA"\Z\dWɗN2/ Rۑ~e~Q`*E!qcc5+uvV"U{XhC-iչgn%Iich7/uv耷A4dfRhNs-EUK!}}/87-A5 ;hZG8@6W?F.Ǣi"4þ#~+(6R\cmA8nc)rhkdFÛz/z/ο4se^wWWK_M@腘?(sXGh1 L@FA_?ˠQ{yKŶ xDyC0Gl(:>MzɲuJU\\T?eIg9ղ*ŀ1.RcZ Bp'aLܦfk"/f4 rɤ)fYH ^\H]]]*[JJJ**ʓ\Yuj=O[ z3A%wQ8-,d}lK!CbR kFf8 m/Lwb| 'pa$њ R$M_+ .}玴҆CܔH*e,+ 7l3  ^S?7^yetfk/l7Щ 5~]`v%';zrj0D &߻{wKssIqkzUncZiZbqQ![k 2a2t+_}+Ӵ~./) uBfXɗJ>i-/+`^+) %5 9sLx췿K%!PS?=|2="_i1 !ۣSO>c}{~AQqoLnu<2р/8(ѷ| X}E, .Lo㒋9?Ak׬G?΂6Ksi#~U="= P ^?k"+E#|#dxq7^xv\9v(tEO# &M[ !IdbA w&:xT'Pk߾uyP[T'즙: G´nWcCJ~J>X5byvBzk];i&P45sC&+F!;|dYc$+[ly_{VYzj҄*oۼ6.EYܻuͬ͛Qc`jx'f^wF/!^foUضrI3ġ,CLMpb{[Tjp]rkR[S}Vļh)I 3l!BBPPǏ9֛olXvhzєn/c<ԟA5k %Լ۾ g^}UcCCsSnC@ ʩzˀjpr3 Mr. &L_я[s[v$ax= a Q  OEL3_™A!6WT_W휟}׆lP[\PEa A>Z1weY(ߪ۷Yzş} [?m `S4WoB3ytË UC8 |+ӨnI g I۷nfdoM?).z9RU ̜qմ+k ;dcNNBb~PW^yw֯]g<l Xҋ@i6oTb=- H] mTо34e\HI_n17i&afRcL.!,opIP;Bx]C}*ʾޑÇI=I$ԛP):IR+j+{{4#ä*քHRhܷbQ+~Q# 4pw.+)!]K0p~oTdthl'u}7~+OVo6V˭ ,$jKXt\T8C`vuuAP@!; X7g1Xvgq#"89lw:BZƋmE/K`F u)W'53dk](g{8 6T6[E~R~޲)a>J-i&e޼hÇn~ 6*Z;ɒb;o^0nlYIqW{;I^ϗ_d2dM7S??9oX/u+^*w.C XR`y+x\LR!*(B۾3iSAݡ4>ܕ4spҴ8:KٶC] VԓK؅mݺϝOFE@DFDXRv` /HD Bj7_ %ljl͊~D$@˖| }͞5)~'\< VAL`/rnijVks~GUH217h[sSm5bbvutOf>! JoYnkgcWg_2@Z^Wz~Z-?~i 4-֡]:Bs@O-D9w(Aӏ0fu&k lmj`3+u,#i&R8+v.YޮD4H ̳L&~I`ᛯʒB, t6L74@>zmsݘ5;wuɔɤo'!y];ŏA>Y~&98?ٱfgy8/Mwk[`Ќhmdg]c/{\kOe\'+JyOɸxR!QeOJ>(G 3 +ca2 3T{E3 4KG-H?mRQe'~wo~J&Q__vl»Ft ,-.Ϯf>xw,:.2)\s^ h>`&!SѤ3^ܤ^/_kr=hVCTJ|œ'% (8 UQ& iW>'h4b("aG:V>psg_3g]?ݻҋphEC a4n.>3B`qQĢa|dӦF±Q$) imOg\}n'q8sЯR"¹E!k9kX GInxe<(p\a/=b<.E"}>#piR#mm.ë W@#Kp0 W'pEgkqnOg6Ɵ'ϝM@kwS@j/ϵrb:[C  A(8|o e NiY:𹹒[U0M( J%x!jL 2SR t$} U Kdڿ;Pv,,8ު>;|Idq8?8n+k  6mܸ-?P|xVnް~sX(X2͝SBs[,$SV4-Vʐ&!%jL⮷ XVO؎蓍:(]XO"!@gН-c-L/V6fe}(N#VNHM-W3ƶVmn5jqx˨^={@X,v7a7fV!brt ,,( U*P_JKgϚ `٭Jſp Tް:7rUTƴ&do]w\`Q#njyӍ7x/Y5nϟ|хpܫM۹cD~W^0H`=4d3 ~ݔ@H==y"8h8(rt.U%#~Q_"X4)q3a53g9b9- (i,M}ȥIn]ȿ4iHfa~] Pҷ6c(|㟥̳8k/L/PPpofgbj *REm41u^;2U^Mn߶T?T]l i[OBz״r$uS4P2gC%?ϝ0)"U[ր"UdR$`phG2ٴqHǶ ,8x`ݺuW_}W #mQzKk13?)9\_lXX{޿saݚE[XhE\zFrVjjP[ Z/ad}}f"j/hs}G63SV}$m!Cř""hީDFO<3#Pʫ r8v(446@*^ӤEctv &TzEȏ"phU1ף&ŕ;pX^[]@'АP l#<ק  FNޅ'@6CCdv"kcQf|n(S}}pQῥ6 Z[}睛_ ޏ%[gl5e?:m>Ɍ|Zb?vP35)h@\ooq]á^ <_I7_~aeŅ/ZmT—9f+PR*󔪔|/7R'ܠL~t/>/.8T$gho]IUY㏟}ɳ>)Rq&%yն o庘-X`V[Ë۶MyeB歛6q UfH~u,EljlШbA;g~Ac-G3lDDsG:q m՘ރu4m1638hkErrSR1&:j/N2`Ŵ5vNfJæLu.:%+CuwsSX<9gO7ɠ3]ґG[fSqA{ zp%zVxKֽmg:n@yf}܃漝K:<}ͬ oB^c'')NC Z&eM@ϳiĖz&'@Smю~v+(Uف ~|\^ذnmqa2߁MYn횗L6B&P.fy ! K6xaD HX{8.ɡ7&%zr;ݻzP/A[\U]ߋw}n{Z;wl\7`aݞwB<@Cv',h:~"o~Ќ' ,a.khhbm0MN؍'YYN_Pd5}܄X.\;.^cُ,1'48yXLgpt´;L=m3gZqm-f}ayZt#o/n5Ϝ-Q}Zs=_=t~aV2^Xo|` 0 T ?w6oN]H9K%Ԫ~߰?x7`a];*xJgH 1VA&۰~@ U*evq_4P~{w^~ _ψihN~~p1ԓMa +\48pH.֡޿!ݴC@46Flq&ESXǻRE. 3D=9@vY048/ar@:ތ^*v.x{uYg5LN v~ȿl?Z`zU8|ulZ%V,E+}Rʱ꽘J4GVE+&T)J+|63쒹@ Ct'CRs*-)+.-rz4y* N.$5dy^<;\ڥ{JP4y0F8w/IGOf_jZI9D[sGD(!foeH ]&;-4Ǯj9Rv9p o]yZ8gE?KN[j:-c8WZ-}]/.̌e j;QrQ)1ۏ~4' V"\M uzǫg 誼iީУle. N&K;G5 8KkL,ךmx5-.Sw"zMsEȤn,rS{ј̔"\[cw:jg1ɓҼ z4&|Z"t:Xis%oڶG {\1gٸ=5\ms Yli hj@ 8" v\*'rhH`4:Q \=!)u2 ]MZ7(#uJÍMN";<߶C˔#Hq p]<5hEnSѣhd - lGvIݰ=,A9JYp^k:moibkY`6Қ}^cpV㟋 Խ# FL@R]\Vh溮ڽ;Jh ŒEh J.@rNNW:9Kݺ8,5RWѩL3""g#R)׎hFf"f־REW?j4vH+&;-$'ݮtqWg $.;^Whγe9z;'~ZBg {g#r_c]ǘ -"G`ZGh~ 0'9ZY.]i\Zxfd ztz$"5I<81 _x؜=&4 H' Z}SS'%jgu`H+mIZlb~vs\³@ff_zeOת^`?]0]\5s+p0@C:^Zd/uoAdا&-9)׎Mm8ĴP,E۾8Q3Ac::؎#FZHAie,Ei-Ӓ3Cd.֤ζkwi 2/s%[4[~.s18'7.AuV̼NUta eNm8۳k/h2NDw<4!1u],Eߩh}Z_䌋Иc/IlLHP566wƥY q1k7봛6Cy^65hO˘7 ~tc[@\3#yqtdPz&ChDF]iKm ĬZBĴ^S۞5־(N+n9W<{qiwc ?ZϺзӮqZM캃 Jנ0qRbv.yMO3gM5`A\ÍMd/t旁TlO5<@0{AONsh f2!m2Lܧ!'(r-'*j,2sEs%h5mj@fHZq҅V8Дk掲͊={n5`eN;fѢ4s,2|Eeǒ`o16??I[^.0ϋ 4&i!T)ʶ.I#^2:[0--i) P;MVWhf2-&\ ]LKoZ%$ c)lLIU2ح|bF+$e3;ʁmNjʲ:cZ2HvFln柘e=2]VNJ\sn ̜e`gpZ׀]+90lcwÛA[ei-G5Ml۞R:8Kz(TՎhRg7d:WuuBEL2P&լKku$O-/z-I|DmmGQfUۨYbo"].ѼDâƧhm EgE}k3LI;4MtEkfflu51≗^NjJrӚk^ u)+Ȅ=''c1 v%1ԟ1ɧ~ƚq\EafG-Zg϶?~Ǫ4:4@ND/E6i1yjDh&uW3mMeF_ fDXleXm\42ޞth4YxckUn8oAzOIiֳґ);o r>gg66Y=[챭zǐE g^`m>;/- Gx'qic!?SCGIUfgMǎx]7\5oѩ'uXkqn4@2 Ata[h=4Nԣֱз Husj>=8@푖F#%[N EL׊9HJT6Hr I~2fX,ϴ <(*B{o(ۍ0Z MlZSUUZ6y5HY* ,\{K)qہ ӛuj҇5oDLP-qn,GkbEu,ʘ"{lblv hycy`ri8UkFnpO\!<) lǛBqvl{V5qMʎy{/E#Rm̎|T<;q$]ZՐ:MCQmPaBX$:e n4d c1}sŁEBH᠄"I0I,Ed ?dYQ^Ypօ$4"EyŢ3m*sۘ*KSnX\leH[EJ2VN H (rRB1r2lJU 1q {8?Rgc UO3e=[/Mv_:%I@{a~O%e4l_Ne^cH_l XZjdXe@* pEZjAvCh%9Ph[eEj *לL[TuVH>uuu?~NmOzI''==7t{Rlvp.o>JnuιV3Ls'J Th4tu9"$$$$$4D xH2gh(m_p!!!!!ROwב6@`?,$$$$$4x:y$ 5(mJ,}cǎ ߝ`t @ǖŒ)BxdsrP!!!!+S 0#1=Dk0׿oH*6~PuZ*$$$$4x \d_UYAw3!j螻\lo&NAO> KT_i njz2z+KTIGO76 ŋF>w5$J!P+ߐdӮQ#_+dwkǏ3rW_}W']8rpȓDo&+ؾmAϽc٭pva{Dz-W4 uقPNrZ)-Vx>|矋+;Iy!{B$ E^xx )cٻ5kt @}$Oqeݏk9BBBBBg?gX a axB[6pʹ SF $t/otG-YD"F00 k|ҥau>Xu $ hJ]HƏ VUs>$&):ؐqY3,Z[C X52au" _IaQ&Ab @T4۸tğl-!s69! hJ. YOE\BBBBBgZyM'?0kM2!;^Zh]4O/MhbBK/CG#X${ҋ'Öޱ]Eh`R! w=2,8FZ*$$$$tH[08l:f"hx4{l挫 zYӧCWZ|?j#̞E~ݱm+ d7^0~ï:4+|Ə>kfH@0nϝC"m*$$$$tY,׌{-ϕ(xH^3PoJ -4Դo.?c} 9d3:/'_tp^Y{{6bwC2^N6,o`ٕ&!;Al@HP$̒*Eϗ}*k,ŏiN.֟_mh,J/:-"YK~3z(gN Y !.rJ)Ykݬc"SzJ *.?mJ/En($ijy:S}ޞ~1l e,:⾳l?a2bd\ jwZW'cc,n~x7˻*$B[;/33 !CaEn0v[YjnEYu rW^)!WBy$9MM6M)疩r{\t ?ʁBB9FSP\ j4#N,NU;\>)!Bg/G$M5x?]:;A }9A)nй  gj:.$nT)*EB3QpxJ҃S$8vfh1ţFEwnEr4 U;qLTWW'8T" NBGJۏ[\uvµ*$$$B5IEvرc-͍M g?W$a[757645ԟk-BBBB\t!l+e]<| ljkuєIq!%`6(gsţF 9'OKR`[+dʤj!+\H܈l B) 1J4"eEO?% 绤"p1R8us&Eu]Xv]wNc\ѕ߰tqƔ.^1 u5ypEC m3)]C4 V9%xR|đ#^uCvC`ﮝ3_dM*A Ǟ?p¸`D@ŋĖ.Y a7PwI8e%S/ < Ͻ[d` E |4 IQXTpOw޾?? UN |l_\DBSz奿CxN_Vze8a|4$246֛@OV aT\ JBq \3]~m$Q#}!h4Rt|GgL^MY&q`{'_8Qd떼Kq|{8D÷pJ; k \5Ʉm|\  ي'7{Ex0m0\P (GgT9&@($tvOE\$8`/xʴ+.'#(\@55ɦƆ3-M55)B!3,hz9qQU) s^uvHF۳uK~zD576oٜW$ 𓢴i.ڟLH:B~\}8liij9pE'٦Bl5ⱆ1|Q>(ǪWs븟na餉v޴+.ݲ›oH߸ O< '1|4*.ϒ‚ŋ@&K-03cǀy:iy֧au*JD3 ̽v6d6o#R,'~Ht$+^x!uKADΛ;cϧgyz挫!|׭]@U;>fqc·3.͟{m*`^`^N e@J:0L)ܡ6yaH!rc-m`CT @oW;s4ؒ@JēqBUp~3/+$;n?K[lջ\xC!M@+ѕˀLښ͙=W0@l! 1ldB  VQze0"HU 8J,CBpYF3aİ_ف|tU\d;E|Te\~wdB赅 U: Pzs ӫst8muAlPr  ~cs  OGD Hr,AC+(v+ @r,d{bCu8DL" W v:?^hmAx;V}H}+k4:|@s^2yҺgchVwv_ylXv ϝ¸\DB6^tzEh~ }#s\6_o??d8Xmljkm ͍֟$@($d4F]ܝE't{pQY1p8&5S˨fh3ޜ3@̗)N VµE5{=)} < 806CĸFr#´Kt & u(h¬YU~Cl1Hr0CPe8ȧiܞu.ppU>!!EFSWZ+-/- a[^V\+J_d¯˧ Oe_YQiPJ4PZT&V|FΊ9gz.W nHYi v?BWRTV\TtX{12[^!!jki!:QXxֹsCL401[UYXJ `e9QNjRuBMդ:AJ$yզ i 5WcXR5%ݔL*N&NᓏR=)JɸJ;!q]%C%VnT 5ZZXD!!!/jknGSdWTռ *_*_\5ǫ6xU%Q"*TMwVɮ2'vV?ѫe-R@ P%nBW丌8,xnT6B SE?m;[W%MHȻkRPp@!eP! L9(( amd B9}.3P,:L-#Ynݍ=q!!!NBõj25HIqMJYmR/ -xUFSʌedCդk:(I&f=y+2.SH3Rh3r~IK"FG8H*<)B!!B!Wʗ4PYAc ʧ6ߠ A(ق0. 9!< yT]:2[i}dp ZY!7OrJIaf)lݤNJ>MX%J23yrPzM.P4!UT PYhfrWx6BSe T=0 % lA67 eb5F5&Dž<.LXj5jTkT]dU._z򲴭UrTAϭ&av6ϴrt2Qc &wʚ_?V1ՠq9+SpS'D=e_n̙#`V+n~sţF r%?saS&]Ȃ_VrI=NB~_%S&كЛ9P;dB%<@]UUXS).ۯ]rր (S9԰_ WrYQkr vuؖ DUU8 $Aw"B.#+2o&NQ֑#C' b%BF1ɳ O*eʋعFdT:5Pߘ;mec}-^K,0H-70‰#wSaWEï[nF l۲YV]u* EJl}7]= &&Obꦼ*n.d N%рBȁ*ʊj赳?v ӯ1o t*YF **|Ho:s"=qxbaL@eBC=;w}{GA@xɔ׭ n 5n߾9 dʤukB9ޱֿyD4.qu45}U%,h5 ,27GYѸakZA(GBC` ނDP < zAYQ!!=7$̈́x5YwQ(Y"<~IUo:AQ(ըEowAztj̘/F1>x+_>F(kPِ"O`s|y9/S5* qbL  l6,UOQQG!<O*s4@(aRʺ9~6Pqkt+;#(^>NDZi"FPrjwQTCƘ=~87܍IyOb#4܍pڝ?MQB!!sZvFF5Z@?i@` 8ZwS;f.SP$ za -O(S@*@($$@x΁b0F 1 qсjJJT˶,J. B>YS0Zo ğ E: jC:^t3ˈ25HJa&H&[@$V/Y%k\Hy,1 u5@uȃo LE ꍂ2icyK.@H'2YeI[hB_nBpƺ-S@,&)TYi:8vu"a}{T^@!e #Pu0Ȏ̈́*^WN%$5yvBZB70a-xAd8YVhrj:J,BLdܗ)/Vjt ejp)E P1䦃-F&H$^BAId 44K# %VPjSWMM #Ê"YǓ?Qés= QS tK5saYL2E5 D e{@X T h,TtfHA[$ᬂ)dg3Q@ TtQ 4@IFkP񎒵aUZc!Z>*ՅL253)[OKwKF4l uG8`1mN\.rOt(Єvc`[\4A*S\ BTSۀB4;YWj 0IqZ5Jó0-q3d*C Ϋd|RB¨ _(P0\$* !³L%^# %UG *PUbK ' ((El &8BR0{C@ BEtp*5wuvb ^PHl-S(A՚ ] F! Y福-TGۧXgx: [wu4>H#z2g_Je5 i}G%]2+!}ߙ"=k@O!)kF> H{;F !1b;B&,|u2nJe)o myʔ[-/-hijNƭjinl//-, < BjVtBB"'KJ1*>Rĕh5zQGԎ 0f*" b[- ]VeP(u\4e$"JX675XjijAJHjNlH%AUMZ(SL2C90!,t1D4vRH؅uUx!T$41[J8gə;&9d"jVѢTXwPEvVUM1}ͱ6)TBMpܰrد[G'hUWZq,Ύv_Iw2{U5q eJlJ5cAHT"Kx4 JFQMT{O-%$(ˑihTdhƂ$OvBڱLW$R<>Ks(T}2EYBU)XDž5>w-[oY6{ <тys Y*+*J%u5/>N5 UxC_ujiQ5.P|eO9g= 2`AC5 utO-ku4N*J9E$gi#3\~=3Y]A*Mf;21N9JP2Hr%n !' ēnӛpbQ' iHdYQᒅ F>Y9tλꊩ[^VrM7@ݒG|޻]lU6m^߳kLMzuN <x|D~CLf›_:ip]q9ξ[nDwiܥ3EsV:FBr;v O>/I1G۵9 Ďm:"w%_YL8y(po,|>){//.r$4@xfh EA8R$4˔غ"IQ"a_ 2XW 7%8.nj{OP=; ;wl*SB[r90<F2# :A#& ڃ0E+ R.@qn\g<?)$_b4;t0`6wǎŎ{ %1UBtIH z{_5$ы $wF4V{|Μw}{fm[!q˗qcV3ISLpq`!Y!1+?v4;%$…s-MBn8[gr7»VR2j@3k1;Ng+dk h@F{7!ܶ]!S-CDT.$B͋q>c샧*4` U:1ucPR$&dBbf24ǐƀ&Q*1?7{֬z %$^n@+>)ZV3C: p.4ch[7!^ZT 9ahrggݿ|W pYGiˊ੤PJ {-H I)ԫ!r# !엡QO߅>mdV>ē=yiЗLy'M:M! QP_KY W.*Ϟ🤄왎ʲ2 3W6n3;>d-jؑ+d@k !j 1SmW?O?m-C6V }B֔'[O( P P'.[ Zt]3sI&ة˥}{!{4sDRS@h> u!0Lz]Ш@(Rt$mTB!34q۠UqcF;zېƀt<ě'NxBb\`Q#LHB%%dвssG4Do6xp&v3dЖNogk'-u5"TȀ20Fc !S &: ' O?UKD:X8dʤ[>ཞk'ށSnsD F-]*HigtWBH|ѡ&]OQ=BsTX> 723[[ N`HOOϹ{>:hN- ˜1E6˸#8=G=3\)l_Ϧ7=M-M5w_n{Xx`u(~9d,R3eX.0Qn2@[ȜԂ).T.j AWVL-5&0t'S4 #[aSm-&ȡ}O">vB"S/!8@ ʰ;.Pu; ^CNa[D /u2?J_ 3b:ɸE?.!%ha3=QYvྔcǤblk&~K ÷ܳe>B8@1%Q NC3қ@!1T_#7?"ZgD+.$67.:$Ju-]7Dyi&޵kǰ4X߂O$SF+/W ]N``ia7y X vZ,nc2b!j{+tQ=2- jMTif gvGzv;z]fcը tѵG{^jēRRSQ j AWg ^bЫ2'h5v # ˜&xtt_BD^ԓBu #_{]ɨ1#mkbE=㢾#" anFwICvf\ήA).rx\Pw}a"֓bL riz]7Ew =S^ =:Gqasƣ Fazv ]G65AJ@fT7e3P%TB_!DxuAE9v !@j %A MT~JջI;+ zY*ᦂh /nZI5 FI)!,!l:@$$mMcjpzH45S@<<' 'jN7xiwaɣ&ٶPopC.ə/ uk |(BH]:`#83 Hl]5Ī)BA!DBr@w)Xi-FGC aZ%B]vBڜM U=, !BmrFB.=6ui5EŠ--./É Aj&A[A15hw(E:$ćhNMԤ5"ܨD=wzM@k vV>$4QJt;s|x=5;7GFSu]L::̘B !"D /sú/ (je"BmAK=UF9 !]B O&9B)*,z_0jcj茎R/3:J_Rkln. 14FBߣB$~ ߠ'PWێw-AG7.jgמ]{S\pȡOKK8zh:v mjr¾-[uܮPJV)0!tB ZC=|!&&٭f`E>zdL"K${k9ՓbL1%߻{WVFzYq!=۳[9 yQy\`Wa3mSgǩ+/]SXw ۨr;}LQ_v{\p/4*pgDS,+.AʊS\!l_f[6N{ܙ+/hoknkiΞ54=ܜ+W/.t_\ m#$S@^nL(04F.q脰u!~QV^rN`Ν|Ve}mtҋ/0w`|MpVQU^6pbJRq ZB+rhU;Ϟs;Owv'riimY'|rΝ[n}wxm۶mڴiÆ wL=Npbj РVJ|.F$ua1FY]Ϡ+JqE\`rZ).V Smm˖.ILHXC.]"Ƃ}ר#ϝѨb}dݭS&3R 9@>) 8[\z;g]677gRR(!]^^q4y &ژb !H# AcKN,UrB*bDr).Tě6q N Hy澺yL"d읧ښ<B"P~?8ڱ_ ƽIV땕w9#P2;_5c:yh/&O%r7R[[8jŊ?JP~O>YjoACT8)j2DNjH yQF"av4"q'ШPҢk}B:&8lڋ7ӏl'iü9 o*cpeTW]rvy8l(#-\&r"VQ !YcYEׯwm쯾J␇݀|>ힻY7gl&FHn˗.y ||Wȑ#g̘R7k֬{? h!Ǐ?bĈG 1hc-"DIjJ! CZU2 t L,$@TriF9 k*'#yzqĪ:E=nñj*+9{4RM-Yo#[+y!ZN̙Nz̹!4 sg ǻvcn"` !Z[APAVϝC$رssWzp@L/_zɒ%#/]3gάZKvo-0c*#!.A>D1EHL`pF\J]ZETB:Kq$ABn1Veh4vmUUXͦ&d ż@_p떿:V쵘 []'ׯgK[nꫯB?@]A !B8KYY'?Z+W( H춱cW !c*#C=EFl#(v)v"6QdF\>"1+K=XQV~eZ?ʕ˗>rh+/-ت_wC}[:bym` p[yrW=1Λ3T0?Yr'(=.r7oKYt{ x1hc*O*zl#l.&{ʌσ!XW%>"-v1*L:MI-W+gg9l6(f!@4yaXZnŒ} dۣJ35:c 1pK/Y [tV }b̅C^GBB¤IW\_xϛ6҆ ક?" !p`zS\ wT˩IES˥#"BᣑV! 3qF&i5*#208~ !*L:uI :h]]1jnHOkz<. T.V׿oӧjy_geYI@kTҫq* c q(A.;Yt~Ajw-pu9Z:}5K^.LZ<#@8!<?BqL@c!55y`- 33$÷lv٭?qae4 {!Q= 9sv!*LZuI!nNXmt~}݉\8QݳskH-pФ)e&닫W~5 h׮^mr9ULTrڬv6`3=DS\rG| !iF:8ŀ5^f15 QATR NN*\ `Q"n!7kZBnAŀA!%M_q9F!+AW]*7!<BH8. Ua $&B8|c q\6+j&kHć&i7mF5A$LxnvXv}/6_ſfj`TBx6nAP.ZHnZXz@ 3-! UA+RAjTRA.S{-o}BA!<Bv59p'!ĘxkKa< ==]XBE8s /谆6Q/va}c$PI҅k}>b*:!(-ƍv !% ~I=k)5 BQAF]3!1I݄Pt8N8 =qAO-T,AC#Hn!_]2잃 /dbW /o` d Jw#鋣vyh*gfGQ>Im#~ -TA.`8. PB.ꤵf5D vx'i$ dŘB#B<{E^FB)$#Tt-fDt \vNk$H5@_>" ]hVVwLMd7`1MϢ" !h7- ZnBH{\TnRB}PHlF}T5aU,1 lXCIcGZc*qwI HnLwt۶+t>d|f[6aSd4Q ];_(%~Qk#{'؛B\ !I1-/Xjk QBЧZH%Nt\􍉃D9l~ 즂F}B0B8c*:!pƗߩS)vv@v@6ynXw^<LgN1SQ BXlщ/NCz9ڭSGJXpa4 iα q9Qf2 n]f,dOdzI㎏Ⴖ0/NoRqΛ=گe"a_vA!Ę"1M LFRA1]%Ÿ U!83@"a/5n0Gڑ }9Qw·W8f(TT糘f)u7}:zypد*tFDIh1QaP+g6K>:)zȵZVf1:f[Qؿ|5sR x]v*1eLY!t63ސ}PSRYMTaH PHGWw1Ņ8BդQJK R2y6vZkHOMI߂xP-1BbL @Ъ}ÞU.̰Q~³&_bZ:?7v|5v|bn,SÃ`=RDZ~HڦpHc1A0vA17 b q*Ũ( ֐ `bL ZL^C Qb9*cW:mM?E?j1/HL(pMM1 &uzzhAKi$WqHH/Qg'H(}ɰhE = zA8uA{"c* 30}W5Ic>0vBˡ-t[VIl@A1#)+-5QW+O!0!uD詤2J-- SXc{ȼPrL׮yxT8,fCed 궚\B1 ~>Il4:2N̺@̳Hu1#*d^ !^ ”=?ܺ-[>غ-:nmۗG.V10p/1#h+#Sը7z ֐l:TgB!dMKڹC!ǕbL!C'ڭ]21l4hF{ܙ+/`l"cGSK ODZ hEYi(/1mhOm-:MTU|:hmV[ z\~T3gN47y\^֧Zϟ=֦{92?xsdB>Ac c nFmіFRAYZV^!_8{9[[Ο9c%P!F0)-* h-$h!| I߷&#H1#v~)n2*;Y5*oҪ1P1!TK=t0x q4h۶ήkBi FZ.ɩn3rd[RT  uJL,* H!7xBX\Z<{B1SnO 1ۙJHG0"7^mm=WPʥ`hzЩEtZY98,&Xv:ZN92M ݟngL.QUCZk@/M t_M)+eA€B.C@aLq)bFsM^}IƺZFP[k`Dn%oݻr|Jsg''hc ,!Amͨ,?{e:ȸ3[s0-sI$BAȷLQ,<֠VB 5JEJ) VZ(+j |2\0Ҿ ڃbLu h!|*LsꊊN`d2!}u];i׎CSN]*n|hc 8B^ g:frBgШoW)d"B*aOX"ȾJJB:q a[-*q:bQ@ c -Ұ9IV P;PD!:1EBk4~B,ғ'kIcqQ3¤CmGC$-oky?VR{#Wa !Ũhku~p,m-[3{!:[E`~AR˥d髅fQZEuqߒ_ dh8}G mh xc*8 ^b :SkjBҋlyt GɅstl{AsLqGXalը,=j<a8mzQ-s 1d BǮ˧!d+aANFov"ғHUH (!(T8!aƤQ1CC/2d tW:l|50Bf8LGNƁV,lmD| j}Dyzڙ&n c]#0d8Fٞ f2JYB( |#GÞP0dFr BOj5j}PEYo:b}]Cm-bBH]e9_{e2 .Zqu !{ 4cDn6]v%!pmF.+#d[Rp Zr0?&sG)?V>-8"ʸy"RF=iF AE4}jrR6f^L@> aaA@k,=!T '%VSUY KQh$s'TNF"h{Wm2}A锤]e87!<wBhP(M;tel vk \AXbL!5w &/X1v*e9.a1jD}t 䥗bjrJ2'5v|gSʤ͠tf=W W]F JZ6sB11GLE+q%^K$ڊ2XC,MRA jEpSB1 vh#~FɬIOtL  Q)dhTtBBA!DB+ !" !%FZ0\0;FA8y ˜B).TXC-&ɀ GVsB1 S aӤQFV! 7!fQA+ŘB).T2BXn0jQj pZ")B a?b5LtZ !rb*:! {*ikm"kE!ĘBnHLq}D~'Yb5LZ^)(dz}`65Rqk,!Pf~a= !1ZM!85r^lϜx,<.Z BW&;mf1a[BA1S!M(S--g:[ *-͞3mmG8,zmuyi[lԙ ZaN`@;B1 G)ZpWx<&Q.t57h\֤U,8u ^ l n[h!Nx2p1ШBh6ڍXJM^8QuXMhkx M|Z ZՠQ[]q&tb^f=NOj[ay5f[QhUr¯JP[M#IiIuՕQįeoXVR}(I[5e*q_/`ۆ*fbe2@$Bމ"HTڟrTpoD@S‰klfgIR.PD'H Zϴ#,V.`;Q-2p1G1oIa'/91Q,>dn*BDZ!QĄ=!&G`xSs2%B#4fg;0i޽SX/^iqA^αe 4$Fz`a;RZh!N6M˗!|4݃c c ߘBTGNЖh4j:ňfѪT1hUrB*$>XSU|dZE8$i`g{g|HDL !󓺻1$Ɣ~n46@JH|CpE`!ʘB1\ iɂZ\O LZu]eyfˤD|6 ZL(e%%TK|!س2ҳṣYGٶ+r(=Yt`^WՕ$},# ?NH;|j* X]YGU]Q :&wsvσv´I9"))dbj0™3ԣuXAo8zX:&NլӨ#gU r!hE2:N'SvC\Ww,#NZcGӄzb@boKޛUqAC҂ڴ}uUĘv$yϮ=;S7U T-בk!rZyR0t3>B11cLE'vJZNPcV+-MhOO1B:heb>0){+JOUE A+y! hU ˜˜B.PQJQKj+Jt[ ZNCD)I{TrnpjЩzŤsmJ$enCn: _Q l ' 2 `h fh'L ˜˜B.#ncBZ_Uj)C(W"'ki6՚Z 놺ڴC[MyI^NxGf9} Z-YSm>DSS`aCuyGkY%JSGm4XrX\B11cLE'v=h*&oQNW@2!@{N d p | 00).zSBaca#A*`!ĘB~).TY&pYABmB !cLE'Sz<*rL4 *E"HG'bT6\= J&VJEw.aonGǤ;W_S C  !h=tp9|0y.XF:t1#Ⱦ{v8?>̤9{gz!H-b & s%'AyҎvhL(<>`YLZ.A!D$2BºE u`R^7(XC:\0۳O?uJD?ШE"$>BbEy2rxNQA>$ s ͉Tcзbba#$DXCwr7XCaxVfvQ#G ΐ sڑYa#! 3>JA–#FJ֩O?QM0nt8 v˄\<!#HHO=\' A$$IUW@750|[`$R2_'$z.rb4#kHPY=48a ާ[c㨑#rInsأ'!d!OP_vG;Sk*@@ 0.jW'yra1 @b(ĞV hdCxm88m4c}=ǎN8YD ܔ$&W CtnV)E'3_1U HiG"duFz*1KI,/Dc]ucY鼆=Akǝ&v:(}-CT/Of4$~)G%0Mkx'2<Κs/AQ&EB8xM#i()cL$kC%ޙz`cMUV*JR>09KM9rh7A}Mvfޤ=`?|p_&4;Z,]""{BXi'˄BH 뢂P[t"h@-SBAb*3 ax!,Rez2Z%ؗtp޺BFˠPA!a42qɢcѠVI  l̀ڃ:Ć H!)1>'3=A~}I:# uPcPo⠉ CR[Q#t %ڪcGvn` PWPcPoP{؄-!ġZ(4V@u5* H,E+O Gz& 1#U( H !-X HAk!4" 'FBAfA$AA!n4TW$ھoorjꑌG::5];+ ;OFrIn\-2dՠ"kBC!9?E!^v{\-PW2  xp ˗./.,.]zƃ Hl(PۢZ3 kBh=!HyFJuիW>/_t5rQAF7')·NԋO]mm/D?~pڭS{{g,.?3BATw} ao P~)ys ~zO b ܅/\`j**"}hV c YY ˎڛtBU!t@+*ʯ_N"/Z0q@BnuUP'M\?w9G^<=k׮GXC,`G!D$}t8! *A^8S'O`o_#V̝ XC,xAXB>BvzZ\S_URbG,X@/ a9 ᥋G{F< }6!{Zad!dGw-1.EB=2v:!sTWVΛ=kŲ4NAdxa iSdĵIJՏ[+QKEUE(/G-2Ycy5=a#MպNKM 'i۶nY0ǫpT~:܋/Y믾B!D$V2$ϟ9}{g;(mp ! (Ä'k_'r\_N-aA$Ƅ0^CCuIu.ғվK%Ԙ߀AX,BW[%nCu% eA$FQAQABJ( H<_#D!DA{L V QAFBLeFdЀ jǶ Ƞ !#Z*Z:Avb|l 6FPALook.4Ύ| "BxTvnAN>/v 0 j Tb q#5"2BXej:}Tkl ^)D0: wvW_Bh1F2XLzBAEFԏ kMҏBh6Lz a꤉%G pPo 0kGvBAPBAkЩ P;gQWSɶ0i#~/kf,u5˖,~QE!Dd' !!lXhĄ%-43Ǎ=aD02Λ=FJyr2#lA :^"@G;!thcG-Y8ol>FZb9x}YLFZxڇVjڇ,[HT2>P( 6E!zuXkHk~'dF)$۶{#lahԠU V$q%jp[׬zuFL kH3!O-|VObTrIჳ<~pbpO?Xȃ5vGU"B}5qc$` ib:`BOLaBS+5J9I_{( XC:_&BOcvKOϟ;{` iQT!1%!;vpb7f4t6 i NI!Ԫ#?^n=czH *gqKם{Ç -T; ! @ d!%zkH/{eKJqfBr5JJ.!? xg,k\ 2kV=Ϥ>DZ.2qHgGlnom A8B6`*_`QKoO)/!ƙ+1aDcd! I!B*"@&L(.?f4IW,Z0o`&PW2~8Cab6CڡQ\!X+ϕOaN13%DUuCvBAZs$Vx<'‚l^c3Phi/@!DdڈF&n~=Y&aMX-Umy)o).#,7G!?ߟ?.-5uIvm ~zOϰg?/_F!\/5VX㏻ׯוp4OVZ}"޿d IjV._Ży?;N5o,bQ/>d|b\|IF_?wcƍv*aC-SR5VW,^ʰ侅iY7ؙw!'3=*!dCE׭%]7~ֽ3K֬^LJ֬4ٲcnjuU戼d} /\molڸ| ѷ|3aZͻek׺~K"/?kmXp" #-]gϺhi^0o.$ysz7|{n:6\֬T*!k)dQ5 ϚyϘQG&&ucHc$\p%++W… W\lٲuuttBoT/XfӟjhJx T$ ZcDvp{Hpt.-SKUEO>~Эd5A_Ԕ+ y2A >kë|uXkH3B9>ܶ^  (7 >gwҌϿ/8ٺݗ^|1Bx駉1xtXf&b׿,%'O>~H@D~ۭZR AA;Leorҁ&Jz7oxCw9AxWRppņ!_`~ppb=yDjr]3-!\ \pߗ#GΘ1n֬Yˁ~8Az#Fя~2 258w&F#._r߾=R@4/r]= QGHe`2".XC:/ 6s 9thq;p@KDiI ?ZuD)fCb٧Ofo@IxcmG%v- Y NHf[I801 : i\}̄/~_,YK`}̙UVzZB-_'BcWkd#S޷hVOlQ.5rV. -cǐ)!3b!,.*zd!p/!>X,`#[Cn=O:;;# !(ț~!Mi8 P5d$ӧk5"0i(9)pȥ/l\Kƌ/ äWݭ<_~A?.$\p?O~Zʕ+jzG mvرc> aC B콿CMMYG׭@-9q\-VIE,=j*!ڊ 7K)eӆ+W㴩S2SUyJ"5#!k +p|tl֐g];X?GAw|橧#tK7#{g(8?g,>F#Gn:J>B%-55 ~t^~T[Q IJm̌ T6nv s\QM<\- σr9 G#A]N' P!(N--r7oKYt{ ~BO/֩p,HL jVZ|%j{t÷L7:qԂys|2g8O-oŌ>n̝5G!=p Ęk;asF.^0LiOΘ~>awpRU>@f0#sߢ`\zH)1.]xD8-xns_ ͛^~!dpW_|E.wuܘmnҥS&M$ Z>%33P0'NY>vP;\-Ս/|˄b|rsr@ .3!O?OO? u 5P'!(N--#!!aҤ+V./M_~i ~pʟg}Bh6^/wJD{aJPS>b1q,OoއCtJ4~y(a=oΜz9,?mg!"2Mӝ!"ӛ5vaǗP D B aDN6l{Εa: Ad ٷ O6.Д4J-?ي  A+%>( 27ԣ" q-u84 " H" qGэB " 8kA?!t" (( H\Rg¡QAz1Ձ dA!>tAA!D!DAUż  !-&BA$F=(  !" q:4B /E!DAP( HRB " q;kAA!D!DAPQAxB|! 3BXB s0Z!$*P&hi``G 2̎u\n0:aB.g q;UR1F; X6<rT7zBD$ZNoL8~Uڡ"hVQpPP@6TleQpZZ-ʀ T `X%;P9j;2=щ3 8*|ɹ=bl-ho@ܞ[qƿƿЋ[675ג~2AO%7D͍)uo,M+3meqYon-Y)P$g: s?6  jp#7pkpHU$Ҧ-eb余rӶQ%5?E_fm- ]]S/HY%^vf+(˺v 9 N3Ο0rU8s t4`Zȗu^5[qSN!:N ?Gfԫ[}Li՚I8Iѣw)oMj*:y0aFmV=7SHIdpf­#3[f ɿ+k&*RqڒA^US_# @g)1>kDجǜo4oF*0s&Ȩn=t[bn܌i͙<9P*y AX%$n BC.[7?ݘsw6{ke%:3u$V! @g)16ԵI,zKnVS'k84owO:B%Mwz^T}-GR cB&?YY25/ֺW?1+bBC6 4=}G2NGGGL-omyc_M-0SyJ$;^j x^صjcq1U䤓vw\Ǜr]P\]Q7#g. ߜy sZ³=<&nX̓_#=( @g)I=7ƴ5|1 49N+4=9ˏ3xH%Vn&(/ͧ#jwGR(1e?j7*8\[Q-UYa!~#;V4IGRF+7g%$-JjpLxoi'y";g|[^)u3>+Vb{ j^61ifjO&˼o^I~Btvz':& ?H}OwEFLhY).FE DZ>'S*:q9hP@T0z@MeQ6TRW !MO_ T7sչBI/>{攒W.ڶe+/%der/5C޲sA(oꇣ@l;Y#G]}W(0^kV7bV0dB{b2lFv f7rYXD'?O!:NhJ(G刔?jr<[k5ݛt  }< {UNj+7[qX֖!D.@ +s@ qlP>*E9g8"q1Ѷ6sM;?>1{ :uH+L]hog2x"H[Vg*t B2:k%1GqbeutF u,QwfLM+Mp DrE9T^o=.AqF&nkG.x.yxUm57j 7Ak|8@_i9{(7MspJ#4{;!X>dHiݻpLi)յB(/7+BKsc}JWݟαsp^+^SglD/W o-xp#i)\:M\rBP-eR)٩rR/Sr̒ >OzbubsO xo5B7M@q{nu]P,sJ39o[ n7Me@q{nu]XD!QHfp#1׽Tn}F=AH o5{Pn}@= dɮ;`ɚ-k Ha9WZ\I-,(vao$5OP$byW DRX!IZ7*D J$ JX_SW 2!!пW B%N`WJݖ<V W>7I&bQw^WC}zXq-* BbwU/bWX@_}_JKrEJ dӋF0 ЇY#49nc.IENDB`ufw-kde-0.5.0/doc/example-5-samba-module.png0000664000175000017500000017005412270515626020137 0ustar ubuntuubuntuPNG  IHDRݷsRGB pHYs+tIMErbKGDIDATxE޽};;o@a!@ G @ $Aۻv}U[Ԓ`;QU]-Q2)A[XГYU$WMQ?GG*tw 鳛yJȣ["LELJbye^Yx!AeO,v*ɒK}zY9ggTO͈7eǜ䈸>*;i 﫬Gԓb=1}MێhO[ϬktUʚ>YBҺN7 tQF !dO7,/BP-KՂ~3Gg E?P@UHUFA$<j Gáp)j%5q9,75De˒#P9$jilhmjlmnD-MHM\VfeҡVP :~ ,䅶Cm$:B m:۠@ ]'ZեSR7|BIgG)IY.S^:-/t>}GD {z>spO#:rpG#G9GF{ a^(9vѣP(}JtG%cH~"u\qǏK%???7?eo?L~oo̖eSYyNr$ P>΂̌4I3:?^sF73d6۪kjjﲌKN0jmp"CBcCDuC6x8@1v*`O /\I)ZP.nD'^lqPdpQ{ /IC&˨1d$n|SyQځ$@ !h$ D`6rWPn KVӍAawcAX"0yrr@TN%ŀd?^ >,߲ycIIIgWgerTVUWq ݿ'`t8,ݲPҼo.yr:n133PPr $33H@ 2hgPmZ qit9 ;a$(`p F @!sBidž"J0P5iCkY e` @yYj5Q `3CMt{hb.*).RWQVn6 +{w @|4q*(8&:lja* 0ދ(^ /:IT%2t3=a\h!N ߳:Pʍa)+%m_UEͬX y}e%\{s<χ>XnyG|`#1 %z@iH}=/+*.\?Ho;w4! L8 4n&lO~ &'ĤK۵5.(,(o 0*_?믻vǶmq9 ҋy#G|0mXh$F8DX*p,Q9֮70NG{_z~s|W/"K/0bP׏˗#@ZjTVUvT8otɇypvC ;?.da&2׭kG[A1  `7Y*6xwyQ:!X c"dR[ N"tR/]Uq`-DG*7N߄(1Hn1= >8*ںyS&j=.6 F;t 4\+yOMZaj#ngN믽:1ZdĄ _:*KŦMfϙ_|ӧOv\="!F]T P'I\cf$Н5 ֟8# ׀٭@{/+ ;-/- o:Q)lGRTT0+3c+PK3b2¡^%N 3'>t > 4 šի3˱'%!Z瞅&&zDv',cMWg' pʟ BS[WS3d@ Gm}^'c68Ғ#cBGqZС.oAJL$.68{,^#f20r`P!ުJsCbh{E_xLO<Qom<0^1'}LzU+ JPx[&O*-Ȼ;u*=62oάG(+)lkv nz_O *GO¡9[kjBO~:Q&u3F > KP:q|Fw^mRTˆQ=$XJLDM-lauvOE*I^ˁHBHpT\j$zaއ>٬hmjc}9Y%aQW]0j4F͞UZT r$Θgn;f SC~,dl=N͛*KKe%B=YK+f%'Ɵ@~&#SZc h&0J%5 (\ &-C!;PmD%[l|#{= mxٷ{<*h>0:0Ï<Њ?@50`k׬hlh8vc>e2[[P$I"*J!Q)RXPL]e>W_~-p`p֭So_Ǐ )y`rrn;v7q>QݳZԍc| z-8S괵ͽрp>ٓNx,ouԛ)_NU P XDژo6AxTd^$/ *31.7NAV5;d_$a>s͕e[haeimlBLH:'8Jm09> lyWJ']Hy`#!h%7xëoSyl?g$[t`y.^ZOOχI3&g$'?oZ Lʃ&]T6(H Brl d*2 i;HC͎Ofp9ڊSAA^pmq2X~7Yjk]N'%Xvʍ.tRL@ 3mV /\7v,naİu5հv:kk.]v ͜٨8_#{kF9*qڐez=;YYJ 7deBi%)B>yOo0殂)K Yi?eUj 4(M[ r5B)A,%R*(F>PaٟAGS-DoVٕH8J mX2yv=[5|v*ގhA-y #!C<!nUqT[6y~3;:W\ 87~x! =ԓÇ2xXM7ч^2-HrajMJݝcԛ 2twYU?/]z-SQwٍ֏BqcؾHOϪ+.<< @oGG>o7G0dr2 Qv>t0{/5kQ}+@,)=| ?Å2iP9edcN6yFJa)905:t<Y7}kФorO*.1322ƍvʔ)΅ ^6͖=g_=6\-J[[YVg[`,c@Dž? B3mE3xh3;BH%`Q#hj?fQ=곪S0jhi#7G&Q`hU AxhE6ZD_ʫZ/Oixʮ."eJПȕ,RDRRx+W:QeVO0hXK)Y%Fp泋#!~]-Soޘ#>Ӄ 4ɣG GHp:?,ΟGENy#8$ѫ@Ǒvk=?a rVtkk[[3;;gG'H~J , [U1iآU-ZlA<%(^h  aƋWA`h ^cdhV ).'ݖ % /hnWq~˲um|[Rleh@OFTHwu$ܮ%{~a#s?GnMԷX^ oTx9۲!00?-[/BQ2fEhP0mAh?"9F,068ū) W# :|.%βƏPRZ 8t_J !:864H}@}IDnG'wr ^tWQf3d(GffQXV9Wq ̙*IG :\tG2t؄Rwi1[B2AT;n6Dʨ{v;HѥD:Ts  .:/57#R?4 nv2B8-یEcNtAS 7A SU !Bڨ]EBT|""Qz0dj!~%ί[m4#J#ہ 2֭mA9|>l%ŀ܍BRc{,\iV*ܥWUQc[vfo}՗ PDқD 5tsEY3}ƨOF#MA9̆A(nqn(-HZmH^sJ<۴oA "#z m,vt'kƔFC'! KM27vwV\`u-v-A%[sѯʳ?M-~ˆ'*MרCarZ +g)-|P0b}v-*3N!@an#c/" M<.^ o 0XLudáf3X-vlXݼٳO}Pb%ŀčh%ws_gT5΢};8V*JKʊ l'\1C8Lzء捲fɼQ 50pA +J-%LA&оK5цoE6x =,+tx0GW' >:ڠs;Fuz֐%4f`#EK',եs4Lpy".b ] `F@ tZEK"~ 4lJpv$B58tsd0 U0Wsj)eV-ePjإަe%E ˤ㚧0'k#n}'{tz. k'w[V֠~8P@Qz\H8&7f E33gl\ڈ߽a[փ~oź_dIquQϱAm*E!:AoX}9N!X قwI?A3vG4oDx\ဌ؛Q.3nu6/;EQ"x7^^∏S`D1a2\]o3bP ƨ/jPr5ΈDSI1 6cF1 n$| dH'R1sc?bG1#+ҩ5I) !@DZVku4hʴ'x;=B , 3fxGKyRP: +Z iod ݰq.B ٣AFTAp ^p/" 6>b7i0e&0=1DP#f%fZ(58QA96ȡɡa6 Iь@ C1*>bx>ZNPZ"nN(`P .矚p=,LuQpTо UtW N bQUɷx-(0'ufuA4JkVgPNޘfr/ # ^ip-a{1IA QZ~I3C1tlel0J\A6p$P[:bf6>)#sVb`<> >ErXDYr˴N:pϫz$A? 3HI*=1tZCf#P~xق p.u]p##d11#A m -q dlH 5j>cd$mP*oYcz{C; 0vr4'&\0&><i.Bp?{|A[Š2JsA2(T&kz .L>RtTf`A>;N Ѽ (,oADLEH2\nN.^0%gd@ k]:40$|gׄc(sƤ *BmPSS(FL<xs8VF(r,ҡ%BcŤ8{ C-HWsY(D~_„!O$) (ǂh=`aഠ"d"l5Ѕ00['"H\Scv KD@a&<**4(J0y0yk<ǽxbAO IcX<% |pc^) @x#ט[lKjx fs#rWO!tmp sHUpccx| iA:/| H\la&,wׅ޸#k{!BF[\6xOuE)<`o2P826B1#),QO LQ /yo|#}q4oIgԯd` C?xB_YguFB djݵPy7B{A'bx%2!F$a&LDHiؑ49Zy ӂ|F4-ʺ`]u1nN2Dz> 5H,mPꕂ k {O 8d^T2zb+d>ա GL6-E ,M,5C_{l!cN\FI-k¹V$F! &ڹB7[n$nWUh r,M<"g_BD~"E7&0[ $02ٻD@G"\oh R%;oH[tBP;o+-*zQHA(7 ?^8/jE&N0Ayh k0cuZ ]#bEI FSKB28 @ӿ)ɠF72C:NId.S|=/D8,ʖОJBLH "3cZ~bu .@ F4P ' id U~(wTX籈 TפQ6z=&8)"<=兹H~3W?v(wS|U,]رcE_}aaC~Íkݹr˖.Vjx>O\|a0GLGye}el$|W B`A\`pD*!tYS!%LvS> z9tV]d3B*f"FISI!+IM ;AvoifaBSsSi})pCqWR8@o6"2xMD4mp{`iw2o{.zguu ܻm=?=?RM8#4 lLQ6Wm"1ihm[x`A)e Uh3u$[c`& w6<>cUVoiO˰﨩z}vœ~2[Xǫ|ӆöq},^qz2 27霶ZLo 6w[?_~qzm.{{{Nv2:ʏ8g/:9Bw~zW$b2r0Ƈ}3Ӵ`1yAy>xligA@x h'@9bV9#S6yѸODw/x".oxq &+E(O+BgrB]Ђ~! d.#rח}>9;]W |QN 6.\kTWZoٍL]gk<ڷ7BuI J;nߔ}5c h=9kʟc3Լ֗nLV; Ř0Cm`aC0:r#<[ȏ`4a5wh }IM jxlOࣃޥV]Lh'dLpa˜'\G(:sTp][" GA. 喺 /M|ns~l~~K|ckg^='>^W7~xZGK3ikX&25Le?z?>x} %kVH d,^ގK>5eȐ/?}ʜ* Jgo_=~bD" ̧6|BIi7F}uLqwp0c'al;t,yb>HχAX/9,"'Bj&l85ldЁ,@p`)F4CY5&xx%uQGH}bF@PqDoL(,fB I XҁGf7e׾tҲw47N}u͵/=`>\qF_tm[.XaCWUb`+㯨u5Y^Rt-# -?p;;d< B 2"7:> *z'eSj$/lw'G_v8<({ԃzCZGEO7b(!Yk^TQ%Y0&[TR*< 18FWRR +"PtWDY<ERfk*uW*zA'/\2p҇L{?䂛ws/>?;yů|Wzinѳa++.l0[ PkG&OOw9yd%~pIGG1>7j߽YBBƸ7b֬%H ?Qdڻxv%!؝e`ڻ=p?N ϰ#ƍsP)#n  O$h@AA ]XDP \(kbB# )ci"s0!p/ASވwcFhzD$O$ ) tGJ_S ͂U!fd:[ۧ_Wz4s7+ߕҪZ\dxge.~kx5W/[ܾL&|?tӄ8~< Teֺ5ۍs`yт!;3Y?{zz]W?jn3@/C>rǟO7Ky2}^(;}fvk,=),[#sBż֩E .0 q0;Wyg*%RAy>3*(;"hqkԖh0ȯ"Q@f֍Gͷ)Ps3;!.@pIL3Y0B)L:*xG-9Ag0`F"mf:-T ˺{ܫAB;9/37 u ;wp<~3wyH )L:*HR"`oc!4 wuY>~sK]Vt?pO<W{{<\KᛸԹYmM9?._O[ *- ! \Ѹd9bs۠/Lب;'v]Hcd +4PtCm0 ~ɝXXb_f.`IB 0bB<Rp1*Bf<d'@~ѵ?7O[f4o} %z+aZZZݗ}\63_:FͬQpWkD"**zY_Se!L2bl%.l07B4,Y6(>ၧ,(UWHy&a\7zs8sDL0& RjRMD2B gдۛ|5pŵC-vlO:۷fgf:x8 zlw[Emt 02A| y%j,>pߌj 1oZ&, < "5#"[&3RT9˄xY\ yu37\Qҋ'B+bu'eŮHBƦ8)M \];-["e(T,]*~ԗ_|Y_ssZIe&dmtt 1yBlI`#X Li͚8k]BYSrw\ LkZǙئ7:){cL Sry""O$ÄrPfeyB!eL#qK",,WWb~{Ɯ^@-M %§q50y{˥m߶< 6ۙmFKi1 Enڐz3?˫<#LyěgzwY8Wm߲X@섟Hc8yӍoX ` 7bʱaoZhKƔy:?ݧ^() e vк JS\eŠRI%tnl>L;b?㢈饈sT:n{=0GMeEeYj)V:j,Ns45~VdWGƍa!NMAbP^Io|H1k5Du+OLDL0"ەsN{O$ )١Bn !B_]>ό u9 tR'+S׎arpL#3'QhB WKQ̌Y"Ѽ~ ޯ7wݼ T!d #[N-ad's(/g,4P*{u).! c&'-"&> Д,BLf,q;0WIڝ73[_*?(C?20aa-+MD\iӃw!n[<vsp(İ cC e(Gkh)RA2oy/пcy33~rHzKk=1r=c[# ZV=̕ꉩ;#Rx\I+"oI1!t2]az1UA 1c#|= lfVW%|TfjW!D{? 0";1($LS&Ճv6FY/cL 5:2#6Ҽq 0 X>H?킳 q=:q7="7pbOЉ:}/,30Br31gayňK MQfr q(ڣ2N c !!$tg sB7' %:晧 iN$UK la:d?(ϦЙ܅Ud ^ Η0U;pHhIż]O"] f^.~q3ΆЙY2pIϥj`d@"M(hm&ڵ-2IHl $$i7Y(ç'G̡ *|M[W{j_O&}r!.P?A E%x )CUV1bUM/%$$$ CH4fI"kfWa$rqL^q/ J!l(M vw WBBBBBBBI r0.!$$$$$$$eÊ!$$$$$$$ CHHHHHHt  %22vyʊ X? }ʊ1W]115U~npruEHHHHHnݹ~cǎݳ .I2J0_3 3Xᖜs:%%%]YY<ܦ9r/. 2:'Z$ 2uO) "xq`ߞ-[6W;{ݛ23%eiJʊoRKgݕjd;<%]8x^ {C r/ʵʏ JMrvěF 2xǏJ_g2͙} :G%~)B2.A˷MQ#ِ `#y$:յֲڒViK<%ǔ))SRSRM'{n[l޶}'rup'ǓRnzG-rL5<ԓg'„ٱiv̕-\ue6e,RR^QZJRo\~{qpIZ j8lk?IJ))))))E));SRVKi)?;7^ ^r%ZkEHEᅴ7x7j̟ ,]=|[R絛ݶi᧎ pďKV/w]\x`sQ!l ܷ;)3guޭ~)捻|,%eSJJ~JJyJʾ9s}W/jƧOI BˆC5+t(ؿJK,&N>WX|[YV~G:x{vSX۷umP~z^8{.,OP NA}7oNm^= 7~%>/̶N4og2]ޯC`{<+P 7Ÿ`a)R>WÆ ?FIȨ;Fnkƌ:ܒbҋ/< Χ :!!!!!SPfOq)ץ;ʔ?XX2%.~7צ& 5'#=# zmT錏 aff^0sZOi*\{@jk x/\f{UPѣ/- %7J1A@HHHHHϞOy3%u]uX>?RVIko ܅5^q ^i|~Եdº 8F+Vϔ)ogi&AAFq7jALgvqAN/غS[+˯R))%Ϲwބjm_@Y*3oŀY))kd(IIٖ(ܹ~7| 2DDHHHHHRvFE ^O2;%e{ݷ3%, i:{v>fl~4fo_dN o\@Y-G}[oY]SzwMbr7x˖aŅ: UV\ګڝxu4kr #)YXdo7 }a 2 l !!!!!!)IBP2]CHHHHHH(i!$$$$$$Կ!$$$$$$BBBBBBB$.P!$$$$$$ԯ% CHHHHHH(!$$$$$$$ CHHHHHHlW;9hP_+. CHHHHHHH@i9aV a$CF{ Ȁkmj?t^_2.[%kyIEqAÇZ#A֡- ""mFQ^w# Qjkm9 `2j,#_\D!!!!!!!V `9QYReCឞp(E 2NȀBBBBBBBB" p JdL@H:cn~W]q.몭'`/BBB'&d8d H2iA/8o >׍fQ[q$_rEȰV]~hBBg8dO!].=:c:YYQ.- <ݯ9?_JHM%BB5+WzːA,I'1|׏vƍH >Ç9|͓'/`Ѐsf *{Æ O 5BBBdw .:5bPƖ?ӧu:Q!vG]m;+? .[]mY. ?,',SXeXsԈ5UT!דAm^t^q  $p !SSLJO@ưښ6<"?_zL>f-7j=N.x9ASHH贅 .d'$$tjjW]qƜlU]U}O#B0xEL=}t۽Nٳ}96-d upe^KU)da(.ؘ%Al:e|ɢǏ,ua㏣ŠҒۦ 2RV %BϒB׍4\T}%n BBB?d ū[n2t -Sڱ]\!! á@z.JbqH@PBayP6~vO@ЉDžw;)ߞa22$R\i }Kbi) CHHHHH(x=*<VV#jʡTʈ9tABF )u=.u9Z_cWT=-/ P **"Ma'CHHHHH#(u]:Z^GƂau0)S?zbʓh!$$$$$oG<JEUYI`S$?᫆`qAe5`SA=992bC H ZN I` K͍Hi))BK` (NOK"  2\ “q (^W' %$$$dށpkT8𺜀,aA[ օh8FE{D{?e=hmɔ 5LԔ{a;zKOnr CU ,;[S$ A]q[>5 2dd¡R O& WUtw65^=67Bj/.^9ZmgyIi ѐ dH!o6Ʒ\ ;%AO0 dI*/kinjmjƂjMP_\4!!!!J%8 u!1 l6 ;. C82>/  .{w<-g'TWSlb{} ԄtBBBB[xjK99azCo:3"6a r8/8/:kSo?J^~Ex9[7m{j* _x(va :d]>(^ .oۼI R)WVY'xӍ7lٲ)B&XUEj89_Ϻau'mnwy\_զ+rPan h VWh8dP_> Nx5+~|a{^˰^h ·ww.P;}7֫cAc`7n i=?"غeSoeKGB~q9!àeGHFJT8l`BBBB+e+KNE(l a!!@,e[3I7\**" _h@|. 6<‰D P{7dxA8S^M)KVQ\Da`<|1W\^^To:Q#snq ;iWqۭ}*x9nv q *ZHHH()&:UY(<zC@ ]KB g/)_UB(+Ê:l2ڗ1Љ<?X*~Tx /,ҋ'uܽ}a6dp}־ܝP3ޡ.>#UZXA΄믟Pnq\ɓ wjNp} #55D MdP' pښ?F]:PV!ZHHH(lAᅝ^ U 蓇HVgcPXPܑ]""YŌF`S3 h CVz's9PNEF_!.1rWB}USUx 2y"*JOj˗,=;`9;#}54p1佷߂wnG]-^:4i0$7?!#B ܊m9E*^`(UcP|[닃֍+Q}ntmpWNN; HJ҇ u32߿o MM ^8tE "C}XK\:!!/,%E/ rc`P9k++V)0'f3*UʠFZl6 n:ZȐ 𹡅cq6Zi}vJ)iHaf?Ԅ x:>j04%0x<6wMáETxQE,Vm`P\gwUny~2(-A<8 g*A4j@!> M jBA܅`ސ!C "&trTmސlٳ| u&g7BJBBBn'{64j'^`j>D;yB~ KQ#H}]mQfffffffTfXdUʪU"W(++)&ovQe/G>~~D>@"WttSf%:*ac BCxP < e $TX8$ [MuiQ=J#^CHHHt /1AɮQ[[Z$M#:͘D~0T zk{-;7geI /H UX!sFV:ؑdapBہ&[pI?(+Fw@vaqf?r\%BBBBl[uh"S0T ~YgݳtcNazi$آ)efa-z@ Id gnƎ <a 2 %% jB';\v^.³PXkvd]R$lyR$ɧ sVؑSVRµEkӋצM/]^6|mztʵUkӭkӫh rJy y2yS%f]ȒȌN^[BJHN v.96ZSiEK.#pa_8 : Zԉ(O`Uj CQ|nVײkCQvzDQEV5 (/W]v %CVg8j)gBPp1%3 \"uÕSON).^㺨«l2%I>2Xԝ˃ W^^ϲ+;?=@8$ˋvd߃%%RD؜: LuV(/y51r'z=} #:/`M2aPދ}Wydz%{?#*VZK r2K;*)OV~jZAjZajZQjZqjZIjZijZYjZyjZEj%525*5*ZVMjZ-YJ*yEryƋ;-'#o݆٫QZ芺.$v`H> 9V"Z#XgIĒkH ٟUd!$$$$t EI՜|#e0`P^H.(J * gx%ЦL?6 !NQ8/;?cG\N"Q$0jٙap5* d !!!!S3AvcQn]p1 Iւ"+/wTyJ< Aaɪ  y8E#_>A.uBLgpPVDrf 00a-/!NGTInJHH贓8N[]U&q"(yA.$tYerp$;cpQ$aTue?WdU?E'4cߐŀl YՕ&4m_=Gb;=!@GJ?H TVuoId{JB8Ñ}߻cmj-X{ףg4;;;;kk^]Om[XSD2HFK2hɠa9>jK._y!'6 Ek(H~@s'̣bX2NFCc$vjFT*BPQ ejLCtB^(3eF$2 U( evA\4n'V7I X4:&b*%]aRs,J"Ybg1m Vf&Sw\iF((E2KF%-Ԩ\N$}n^<,..vu}whHde|"\AE$w;$gT.ERT!*iTBZ(ZPJ BQ(5 fBcJmBAJ]4nƗDdv&w'E-L4Fz&Zbj][MKIU)ˌ:%6"n0afLop^-ܒq9 9lu ]] ANqއI$et Gl&ɠ6W++Zd2XJHBI+=wsEIsj/`B~dF_Csc}EH"^tŻ%f!KrNYU&ID4Fʽ$)0w8(aFd$Õ &z3?56KF6@Śdqdy몫-)' wj̚>-DgK t?Ú g셍T\*II(m~d%l44147iIΛ4ӧDoC7卲,%Ou} cw =sO=e58nٴiƴFHɈE4d&Z|;k^A${`{u7CsK21faz3;`$d8Vfg3x&3,h hƒaJ2 M ,ݫ/q̊&2}1ϰv*>Ɉ"<}wG2( dgZH4S2Z*K7%#0= C4Şa apJF?3L=%Y3%MO0P2Ā= }u*%5s̆ȓ=zLE}qg\,L&zIO?=V O"=a=I8J12d<} 8)&]`~uE9> mfߕ˖y&V8 @ vD@d AIS2F10*I ci2yF`)ڞ Ӫn.ɨ F2-2zgsbE54/ g)>cC36@#+L) AX 4S|nc{I|x7^-+ę.i5SCﭫ$# >~ %5UgVisGK/bҝ6Z)k&[}]-9; _AB ۛoY, '.8źBGe7zmKidpڛ^"S8`4 #f!y*WxFjyFI^Qd$ƕa9hɐ1ST U쑌rPQ }<nPV2w{g|ijMMD`)~٧.H) CǏESD"m <q٬o3z@2"!(' |w:䇽xZ31v!/>=4;Lqvۤ S}a l>O' m yHQ[ QqG58W}ZV}:yW}zX9]()1kj*L%ݵ.H.,m(T ُd0$ SQ*랢bQtJFʦ;cڝg*rI;B$qq7&=%tu;Zv"D@2s p{ v|I5VY IM)Af A0tId7R%#v_ t š(èVz#N_ĥt5$7"]2xe4%yQQ2sXszGf+ywF9 kפdן*y|lD>z~]۷$ٹ?=vpY3eHרH &#Dnx>7? "J؋2%2qupsf\jV=$q¸uK3D}x=갘)'lD Ah{dfW4\ѧ1 S1 >2e&J':j0:]mWaIs2y3]D4dT/IF-lJ9wZ-qK()WX^7fڝS.I~z8eĕ+1ZdqѠ$ZP*qZ84g=}dyc׭^ER&#l>ٺh4ٞx]k$gI?x`?xƸys璔˗N_V{D_{'Pj dU%C^*iJfD.% D)P %:Pb1 %&PbJB.8'K(qxhB/E ;dҐ]tvXf9g#lmkol?ў< wsABU@ꬥЧQЧ)ON YZI<߿ɸ$jMH8W)Օ.\lKG&:.\8_UQa/^dfH4ɨl)da)vd0U ]c0l!s-zϐ;ˌf-%K4/4r$%cTJ[+KBnoCoګ<BdIGɯTH2,=% f0a{79!jU%e4; n 5}j#A2x$#AHN &CuEٱ#_}LV9!%LtO`#2D,O̫A2%ŒbIsD^,i)(%bXKXb(iLsR,؊%bXqK4/"@ wtZa$0:3 26>}j So(d@g HQݠQ4g'^`s!^F"hV6*a0JJF6R "n@+u{=dnkuuHFg{vg"nɐ6 eY44/Y9@ɸ e%CJObDCHЗ ؊M HPK赟:r fqFа C2 SO aO3dѻ;18-!C-vZɇ?;nV^ 5}jJ݃fQl?\BIFs Q"RlP2A8S3=3-l%Ð& 0{w&47'JU栾5U/Hk@Uט*-*(KlMu4+ɨ䑌p0# H#Ra,R jTX$i*4IE"H,$jMD[$I4#!Hb-؋$"HI4>?M'$LY$I-ն2s@S$|tu$Z! 35}:J96ӧXT!ам< (~ A$%#`<^q?aR}L/QОacI')ls3.nè,A}<0ѫ2vW.-=$OOB@An_z`– Nd0~[ajg=Bf8{fePT%" JFkZjɈEBPAAF ![f醬Yı,CWKne G܍& PB/p}'YאkF5濗kUʤIay۟=]J]gg Oњ\@ ^PAׇo0~R?%d**JTP#mmQO~VSbu{;d{2*k)F,0-`TH ah F2Epc'q dT/qHF -@Err+ochҞ}w[r^VAx wH[5HE"iPiZ@A7hlk=ߞࡣ- m5F$@HI0INq[*szK&!_Z)%$&-$V@H>}^r9S8>Is*? %%Q@u؍k׾IH^v/+ &)Ki3Rj!钡(l Wv&d HFElyyc5fN6vf= ^@|~8F2nx5}ZJdDQ2R2|N[ӱ%4̒*{S$ξW!qLg,R}@g2Xl|F{" Z݆a !HFad}7Qd̾qy >c9!2;~5B̜1 Awc$# GA")8ĩǘx6 :AMIkFy d %#?cD!`$x`@F5[CxqSMpӪA (7H`W[掠%"X*Vz& F"^$C*/*kI21IiyɨJ2na>)|Zݷ5U#o⹿%ow%Q=_@Bp7ђF~wܹmۙJkzFyz%V7[<Ϥ@)ɨYԧet?Y{D! zT]\)M@'xFB:seQ&v)Ƣ LlJyO9Π匥Jg=Ac҉d'ϪOzL!SW 2z/\%IH!R?;Ѓ٠ۺyӸϩ,/e3ysLW;o`i6_ ۸~KK)f6ٵs⸂'^"W._6eĂ̯(+)a&ClDn~ۙ*۰n ,Rs-ВrDXW] C/n5O?NO=N6T/}@ (]_}8EE.ZO))2#ٵOsٔ#?ne33[3D(3|oɢ=aZJ@eFD9qm }'瞁-:5Sxh*J/]ax83Z2*2 0%3&Җbnа k-`g{YCyFd=xr1W4  MdX6'X2l&c%BF6mw~)]/g+}.Ȥ:&5#:2q\nMY 0qrebYƄSY2 FHFZ!;?C Cd`"PA^ q;L76@etj}ޣlikdLvm8z+l (U2< fQ3&t&rThN#dsm*{s4hkf v˥⛆I 3K2t\-p}+!7dpN2J酟6;C6ݳ{TLs5AI_xGރ$NW@Jg9]_v_{v ٶ^~ \l@~,sV0ģ{~qHdW/xOަ#~sفiwz6 _ 2 l;sۖ^ya5[I~˗,޺yğ{˗}x4p.]8v:/tvo x(U21ci2`xM,d\ ֧"Y.%#uW/֮Z7 Q9+=k9NP4X4%- p.(I28jƤYq'3U KT1Dk 7JUI`0R18|ajuYJ[2@ErZQY^~-8H5QQF{eE$Knj0ErE B RҨ"@^ 2$SbuQDP7ζD?!OJR0 DN+h K rDv&Yl&HWCGMCS> 4> ctЀ}jKP2rڕDEv-9^6 /( } f`L%ˋ=C d蒞aLvԼIqLT;}5 OQoDHN'as.nIunH$b\! τGrTv?ܗ@+i ?҃ %nH^e0A"z]$P$/( EBP.i EBP/ EFUGKTES;x6F>[TQL EBK݅"WY(r["KȜ<*J-) t>I.z${A?-b (Cqu0`#鿗F-H܌g%JAFfrixwPRLb)A FK8ڞ)p"% Q_?rK$ߒF2|2IF# HZfc~fsP^(lQ( BP)j BPh( BD' mɥF8u/!76HTPP. ~x :U(t B{V($aQ&JWP\n3J$yMJ 2 ^30xՊ4H F2,4I)fx/j15"`t~m$ Ú,>M2=$*K>%:m CmGv%(QR%Vk.}5XbNZ)H1 gO 6!Sݹڿv*E Ad4彬)+3u3&} BP085` 3% 1U0,0 cP~ c0%S28G2D(9ߕ 3 f0CIFg%Uq䜡Vj3X za1$C,LJc,IF%J\W."R"2lLz}XQʌ ,N&fbMdiJP=k -#UQJKFt-HA.7/loGsu^PA %><@by*h*5P{Z;-ԟN BiLlj:'l:N $$nH &}]6Y T*܏a hjAZ8drIFddd%(.]mmJ ,&ѐf=$#K0,(N2HZ[/2eja$%׷UJHFn>h+[cX$F׾ gA~ן2t3b!Whs>? sSbW=sH 0zǚ1n :BV$j Qbކ~ And0t婒ڤgc)YzaH.< ^1A2n>:5NˡV{oZ_[37~̩QR"U+2MޠCs;Պ~ Zmeuy6=^laR 瘔P% IrDOЋ3bE̼ :afOFLg!9?ž"aϒd(oDI%'~.*u1|vC72ߡ< |c?wNy@R͙3a\;o%eЂgGRvOϼb)&2~iwmXI jaZ˦N?v̜/E͝3[TTv>a\V\RI(|҄uϮ9~09$?B=!1AIƅd$6mH:j3}͝SZ"%3-I x".Z8]Z?L֬ڹ}٨ kVYLF&Oa$!2 S̲ fQSO`d3 fH#z {PHf@C澒!8?Pɰ ЉMЏ3V|E NR2zR)[hI|#^ym+SvdӦN!q'l{S 6Mj}GFJ$z%d QWġ?e N\p!@ ? 7^{~˗>f^!) x(ϨJ`': %i%P-7%#O y] vZ2&*ό:g'9%3 )$%uf;u$x fAq=~=CZngLqT#%si#_A)3)3S@2+L&}EمI0.pRa.IO||O=(iЛ%۷՗=+ڱg^n͛^}ns K;ns[pGK8l`La5ϽNsjLB6޹=5Jb?SgK"/< ߘM.ўt N?$xDyL]:i3ت)\L]Q'">8+J2=%;>l(c?kt8⚕+$3O>yɰ/|WfׯY[v5C22-g^eG\^^ OA*,Χ~+9$eUbȞ]5e&ЋGvB_˗D> %43˙[A2*VAnN8) [NuHdJCr,hr*? I4ב/>cVrZˠ<۶<ğHfÿ aԩ?2q,( `F! ==ѽX)32^ : #[ɨdV/֬\Y_[3q3͝R*:lph{f͸35&QN8 AF`btX V34&8U28Ucz4 84$y'dP2rp#N%CjO$JdC1 W 3&N3dDqʾ^Hph7d&]\!-̳ϐ]DT\xd4F#@<ͭW/j"2D 1v3bE!Cat?shђ!䒌%Í92W_~Ѿs9H1~$+8fDrc}wk ,I' :l${%c/% #3e`=n&ׁTB4gj\4;(CgH' ,vEl}>D9̲uȂEyRB hSPTdо eMx:Q2Ax)[3=YQ[ (0`2,`1 @2t J 2zӤ^AyNL>qDQԽPCy رBCUE aX~T{DO( d0F= -ԯF{( n(ϠjThJD AMZ2@o̕Ru6( A=#}exЫAvS^ʥJ HuC6{0j0C2( h }֓&zlm^EMhQpX NS$ً4ai<~%%b h3hAdtӧ{ZARjPnѻqZ!n[@Bn.4vzQ^)_9<ӒQ%YH[2Hn1jA3S֤dОe8,q^;B=ܜ c8[,;.AD4Fk{=A["Fsw&E54̬! ., 3E!Fad+2qH(q9V"A;q ?hr%%QҬUL`$A֢W3I@7gp5j0z]qk3a}gfɰ'. d0%^K2$ ~)#gԦ-ML~5}9&%uӒ!O7AFycL6пgr@P?wIuJ_kǶ &Oj2D˖L8 oXU,'27=u7wr{i{9*dNLV4u59Q4CDj9c:deWʛ)fiݚU;o5^wn߶~*{ (!3)v }M2@^}v^!NOX :A™w/ϳKzevvN% @ʳO?{BdC3Oc!D2N;3Swmʋ qHOx?D>9Qޘ;@hyLsN$P*ZV._c{Z5BR s9P2QQ*(R [UyIeYInE'׮5'7j^ ^!NLS{]8#@14[rvՊsu$۩Gag@D'f f^gjɀs,AdoJø.vuV-U]._xт<(g a3F %AdpBGW+:oZb<`Xgb?6*FdD~U ?AF:9"@g{/K$bW[b|֘L,ʉg teP^%=EłӧNH(Dj4#:^%3G[k/G >?ɾwMI0AFTыd#!lj4AdFz %PAALUs22IF$CA$Q.U:Kۉ͇  H&TvpZ| d"*AAR%J  C tIAAݎ  CODQ2A|XwQ2A4XOD@Adh$ AAJJ  C U8]  `JF[R2\9&Wc.W rRM^|sO?j m,8l9 p%0xkp/_ r{M{C{,겙X{-*|tsH2?#AR22L\|) M[E"fH A;@>p?5?8AdtSAMAwp?cErHF<B<F@An5Azt+6C*EBp+DC A䶓 7t ZQUut}!'W( ,m$èQT- V.!'q :fL:s]+6d  d$z u0;/=K{ǯ|YJ"@z63rP2A%d@OmiLយ3sڴw,K3V~tz3iSlڸ2)& @q3sV@P2Aۍl~j U6U5*uG#b~%A}%2O% )0,nժ2Γ=č֬]W6M?)dXS2@zM7@L -T8IQ8Ic0ӉMDv9憔mǎnX7lB@AnGpJ[24a*rṳ"o{KD&W]&M)J\kV.߰nut J2T밥 TqQ!qaͯQ;m!wn:Yar.Yཷ N_ȞEl?SMTB5U R*u٧  d8QtdhRnIƏDE_87_{YUF~s)uMm=WUj8[.."[%'!P0.?/@d$j®nuYM)BAJ"P@ g׮ZQnʖs$Q%oܾ!q˗,"bysA&O|b~; QwM4Z|)ٺb)oFJ@ا  (dd{cG͹'r[_xI7صm =/[l]h!sʤ_~1HFO,N1Wح( ',$C!dfِ+m A*g[&+(Cƕ".iqYڏ}]V3J !& j-' Y 8zd8A+8-F AK8$âKApkT"{QCl7)@oAM9UrʕG@?I"9)ǀ FA=p k?~! ۍ[b$# (  YHt#v-1AAI"/^u'd|vp?O  ß~B& Wƅ8=  p}e3  PJ-( U2P2AZtY:ݿ? =xCmC8]dV{o'.# [@xCMHß* AAr ?!Nu0kUL2|~H^A$G~rnzWW\֛o d$ǎT-xA$G~zbْ͛/>d ?( X|K^xU+<  Ȁ$CZ,XjSO<ٖ޿-Ȟk׬Q2(fuPWP[xG~a4g USH^#b9qA.<䖇6wPR~R25c\cfN{*'{ǯ<6dRToXgͤ>;nI:rxJS'Oz=/ן5}Zrhtz b uv (SJ Cg3R$#%.Iq[MxkdT)&ҤQ5Ug֮\~`H?Mwn۪l<o׮6z4nǎ~;44濧hA)s$wj{߽wYr[|`MrG\N Ћ^LA &S4σ7w߽:5VWW6&ҿqf2{wM-c &SCwI|NJ!_b>lWC C z0@SXx .Nѩuۙ9);{? H? ;- goyh¸IƯXdKn` #ɮ-|-8cʤ s(tI?>0i+)H"|B"EJ9B^'3L٦Lvاp0>z 7o`cxaf|Il+ȾJ=m'0*ƫ//Y(P~nx5t ҋ HvJ ArqdDdwBƏ# l87Vk6r6e9qO|%dv =n??*]\*مdY>I(Pm&bP 7ϵ.a{v$:,ợaXAnNhM/72fMv#&luOwxMgjz9 d.O: a/}r﬙ǏU-E_BsgjEmE O[3SHud|tΊ7^y)S޴q~Iƻ xƸsgC|vcU%wgJ'/Ť7 #L&.q\UYCuycMCL() cuĀ |FѰf'Ģ!ȏ P20vⰚq,]m¦ (zv-Y?=:bh~rxDdoN:7$ '(蜬&٠b # 0 d|}y+uqJ٠}OQ26=H"?~לs&ȃ^G 0`nx)VaJƃ7|`j o )rt9ys /ဏS2V$f`F2{tq ٖHDHI_3/ߨS . # 0 dDBNp٭ I/$ƆsX'ᠿ5n? a/l:0`0l qJ@~0L*ϓ{z5䁜 # 0 d$bNx.ApƍkWZ,'eB :bpJF[<)!%#~B:bKFG[S2 JFnd# 0lo㔌hx`ሡd` dDk_C P2(ɸxS2: .p h2؊x1`H8%?:qM^ ]XgG#E"]¶ /\).dTt-vk&ZaӖ 9$W\ᔌ˗.a\1a W& "AOk4 !?6^G 0`Nɸv*d|sʀ$Ɓ%CΎ6}2Q??^lO@~ # 0 d\[Nڵ~HF%c.noOڭfȉA޻{ג yG[# 0 d8%J`~@uyc{K/^vɣh6_?vSof5Y͆t,& ==ӎ[b p$#U2 /ܸqK[IhP)ו+W*m9Y7=ukMj # 0 d ! &<߶uKcCvN6A)o<> @ϴb钆g+2vNx1`a%cp.aI3>qƍWؿCHq׿sv+ڹ}l>tB@*9mH/9uĀᗌ}NF-a\& vlr I_;'Qo4B$Y㴙Z` _2Ͷxh4J>qFlnO˖,?453. B2K%&d2ξ67Ͻo6ׯ_a]٠5 Ӧ6|$2V:bK MɨɀP"ZīV,[?v̝Ssۅt\=YM_yN?Y$"!i9uĀᔌ6Nh#%X! K"oh8Q,FC(3 -!E#¦ &mqNɈ{8J~d25ӁtFy 'F )mdv JІ7n\zbT8~,@Nȏ S2dH%cx~B:bKFk$)^cEbuĀ["PS2\vk$# 0dP8%n5H2j{W# +w=8){8%j6X%C&w7?ɒҏ A:Bݨ [S2$%_[K6:"X{{=E"C A"<ހk5F2twV3dzY20^ /H6/[뉶C!ݚ ަ ?6 2D@8#'|O8fkR$C!o}{)|{iTLi73NvgOZ9y)S6ng=ٟ?{&CɈ*q4Y$\!zc ?faJ( m@\d9yq?w-EdD&WdD=.($Z2tg @kC#c6iּŀN m٩{/}]{9sͷҥg?}f͚O㼟+[2.  yg~1\,#Au5dD<,r +`ܡ0a(ٛ17sh٪B}:$OͱPz?Qs~t[c|~*R^m O(yrC "Ed2<U@Lwd&C?- +J}Q&p!!7LFgw7Y ^ CϞ>ٳ[WcTrB *OGPN޽\X4n܄uz Y؜sTInR=cSrk&_9tLk^Z\,3bO~' gGRȡQB^(AedT}P}\) +$3m>yiԨ-/ˠS-!G>Gg ޟ-C)T{. {`|܋xd2D0"&2ztkb*@&Q5/dDib2Hdl)sGL_tZ}zxSs+*p>MhencaK3O]bvQ6k8m߉mÍv nЖ|ƈaCFS& %AuZ77~jf29e}H@\Æ 4mߥ`&sqזFm 3- :$MuΛvFL:v]g揞YT[}ɷAxDDtM~h0!䅄 ׬ &!*6NAui24+i7_r9,5Q&勥7kX_WgؐLE6Fz:G ֠"&w?hI4MRB|Ld@AdHSա4, /%9!V ,DҸ$/0tAP7ޑI0ZUvvP(twsߊ C VEdA'YYb u^*C%< ɀ*3rrr2KR/Ke0 c2|`2Ko߾-Q/OBAP50AAALR4n9E{ ATL% LFuLg݌Ԕ;iwdHR2b!jɸ~'LUTT.K{'=%)!JD*&4#ALT?NIJLIF IMNHNRy  &*GR4NzdH"#$Ө<EcFaNG "PRRRZZѣ=jL|?9Jֵ$PRf (E0AudH*k2t~~Lu&C]ɺDk vtԧgKq%2 ?dT())?s֭cFRa2Tc)\3ۻBфqcgO٭+|1*BL9tAy 6-;}Q ?$PI*AG y RYhLFH'%X_R&çr&nz&m۬^2++=lcF9Nv&&+~^.KM2t`*ТyU+WpkpaMXTM:i2^D _efEL$jLF()))--}v5=ygNT\\|~ k-[܌ev | AA0jƍ`|\D$q. 8ty .24l:??@OS&O2lROݺv?)=J_WwєfdarTSgJ\Ο4a<Q]6k=8bON" #A07&`ܿmVr L˗/(ɓ'缹s-((-PYLxu tʃ._e…<?Fp&ALFk2"dz:MM׬^Ÿ CФQ/)A[J3*Ud44WDu*۬$Pn S 7G`2>dT{2T.P$7*;q3ӏ W:]]\&Ǥrr3r* N"A Ap&ALF>]P}&cY(Ν341nJJJ2339mOڴn"66ߡP((**zί~A!G 8dy ^ gWM7<5rQ#=|dz{_4ncSİXSϝ]tirr^/ }zc[4oxBj6ѱђ$i?4( GpGɘ?gֈ=0 ܇ h< L/VzTRR&$'$ފ#Q$tATm&C 1AORz°J *;;[(BoߌQ!TJf_a!dEIkAWiKiʡ|MLFDLF5IVX,pw;isBPI*Ad޻^ 2a!> Rð:Ni?]>.;leV)T1Q' ) z޹xJpvzLTYJe>wpmYJb-bmFGB1 gļǏ:9^pqd}vcgfA[l,>xbK["&:Sv'+d ;#ܶ>gm`9gOY v>gܜ,˘ {\ l"Z5"T hdq q$&Z00ЮɈMpvo6z͆=边묽S.:2{}|<}1JuVǬs@>% 09?Zڟf_-c,oZ 7mk~\t`VR}sQ|Lf,3"5S;w\dF,?vWXr>f}iW]&`WZ84~\&vq%-[T ?!x<%+t?aIZ431nCvlgZd~<Ӝo^x}MyM*h2>m_k2jt`j*6t꠮1\Чw !AmZ[^+5#6|zC꤀0nL\m_\3#fzΜ1sMpS 5nט׮\k`pBqq1 EEL~Ƈ7ieV-+Ly/{v3iKs|"HѼk-/᠚ [׭ְ5e qC}] gggԺY%v;_$ 6(L}5m*>%aLTBv!{wngQnNY_ [k.Tr5t1ٝ|9)xg~be ?Cû幃/gC?|,Ǻ*c-]_dÇ1Əee?]M8^e`dC Ϟ:|5Iشnm%#.k2yyy~> X5Wg2B_v~#VѣqcgL|ݕ6QqІ +-.z[\TZTXRXPW&/絺;'δsvt1GʣAgGY8v=gl)sgq ;}ıF\pq[7?7&m7e3?ʷԖ懺wcL9{Eiw'LhK! \xd.+̿`aOڬI#dzʍT>|NZy'2Ն\" ` )R8le=S y&\*[]ڕ+֬XFL4wN}8ASC ٺ/g_ _u_eZt9$2 1#-7c[~kP]|8d԰܍W>_!(~] oK=jՙ-E>"\QqІ8x&)4[g>ȊJ)Jx[ıY"!9RcG1s3kTfɮYY6*=soMd^kݲ|qϟ=y?g GO˖14C$<84jP梜X4M(1o֌['OJ`T>BZ4+{gWzЗ_L⋕_}ӗy'_ rXw05qsr`+d2TR枏6EY*Kl,MY a[u&LL,Gd{Z𶤨 ~|/z_ }2w=M7R7G*G2}<ݛ7-Jv-0O P*iLN?N>g9LP}F6l)xI2dx:uʟ/(9s 3Aq[!P>)l;GcGPw^ |Ŵw嚩~HԵBNtmd<nv*N_ Tlc;pp V9bʇՃÇ7ߟg|,?ۑ_/v}7_߻zqK{NqU[cm [%{ORZIGPyÙ+635!lE]31qYӦx{Μ6܃@ɱ qhԤg\iZP g,_PyUEt1Ù+g%ꦠ\K@̿&w[ó?8C?vpj8mR[=];_nXݵ}KoRRhݪ%ٳ"&C!r?vt`*7^n筏_JdPIIIRTngmIC`/9 –_ֳg8ht}zy颏ܜ׎g(I 6]OwxbҸn߂TΑ8eeIȦ7Rg)}ZiqE(1Rf5 6FW}I+ޗ7?2([U a-OQVq tMM(ta:Vw|vE3 =4\mP6iEujNI** ֳ@O&]>ek٩`;x**u[~٠< gn#p-Y),deZӢᄆGo8~oVѵn?7nC.38xNv_~{#11V;;֥Ӡ;:xPn]54.DvLKM]zU-vW.] YPW)24c@> ']~_S輢6??CL7{;5GuRW.?5R ¼6[Q@S n|qn~^ODBANNΊeKkE:S0JB+.84F |gm|oMuZhpߍDg3]^W]gK1,,W/5G7"oJㄵuJB|:Zi2lܼgϞ,_l _ Ј >긬&~Iߚ,m;kT_ϡ tMoi~Jwc xmYX}#&q)d@;k2$0% 0ЪTɈ hcMFd&dd@&_ohLj2"`2Pu&#b&#V|zZZ 5>AZ߼=*`2/L$I%Z u,{8zP{Z%$'?\ψLF\LTBMttt|AԱ'w=&V|tXXT{wڬYݦ-oȷѼK -1 Y*]BҸӏT ޼yc,uTXp~!oԮaߥ7EuHq=ryx1"zIG֊>8kwg9 ^0"''ś2Q1 0̧Kniz.(3oۤcs Kn1 |Ea_(SU۰UOe2Μ}EfKodp\ޕPAa!:؟ҩ.ma|`2T٧K$Ub2#aA+=|ݶ}ҷomqCAk\ՠ[^9߫%a7inSIVu!Ot=l2`R~޾{7JF%qFma"~ZhqR=t &@01&UkKay0ecWӟCRo>l]wlgʮdգI;Zw2ִI]4'm1gacvz2tޛԅ}4d:yBmO<:xwOYLoe@){ waldh׫Gw 5d̝C&_:LGoc~$UIŏd(7fA= kˣ:wV7:jdXj2~  wO<ۿs;H1&ڐDuwI[+u=CY]&TڢY cɐ/[s&&=.̰yİlVxZlG9ф߮hp'IQB^x5Jjd[IԌ7g ݑ l7]fYW> uc)z&i;wCloټYƍTڈCx\sLL,<ao:\H>I{50s9 _ `LƑ > p=d?=Cc_f5Lv1xiƎv7Q-T.鰴82Cd&c,2:M;]a5>yXfmYΛ40ǎ8~tsf ]bgN_ţӪ=?Y,׵Zzڟҷo{r(=p. }cӆ-7s5TTd?xֹ Ӧu+c1;n.N `2t1gL2- f_]bB~N7YFz{~Xd֥߷?~&QՒd.]n61jj҄q ʔ{02[H>n{S&̩; 6nԣ{W1ۻ˰uK:c=]=w-5ݰn L0ojn2fFF݇/8-q’w^c9UށfMyyy YQ%Fdqxw+u@c> QnѦg;7^($v~Z0" ur8~,77 ? Q\TGW{/Ko> d->0@y]\lw-n}~5v́$ wk@QPG:p4uJ2X*ㄕ%Oٜ%j{r!kdx<%Ξ:y8%D@9۾ROgnZ|0"^BmپeS`_ޏՍVp`2y8j :. d&1pSPf2f;]a8PU_ "M@U=+Y&jK| *-%I<_Z)\.r&ЄxE?9 V\C"4`y,MeɱIENDB`ufw-kde-0.5.0/doc/example-6-ktorrent.png0000664000175000017500000012306012270515626017435 0ustar ubuntuubuntuPNG  IHDRXsBITO pHYs+(tEXtDescriptionWindow Class: systemsettings= tEXtTitleAdd Rule ? System SettingsIjsIDATxw[wu b̊" ќP9aQElT`2C3LsޓsN{׺kOwuWWWWg CڵkWTx8dsv.....1dz$ {wPh_2}PL-mYLYLbyeQ!AQ8UMjH60\0UE1RxX#osjOH[a3" ׇjeM"!˰\e Wd>OXuK[5i1⣉*qtTzXٮRح4߯(oVjZ1PWn5T#z1@ EBj!Ym5|l`ojkmmuC-EuUEkB u q<ZDaA-M Q<"E65574&fՌ"Z(uZi loG)1]ΎA PW'ŏ]D[}=pOO?lz߇}}}- ?6?(c cdž!I!CCs|hD [A?14$#?Iꄠ_'N1'OuIx$` "l_QPam [!*[qNO|$ N?8ԿNH,N/>}, J.xK*\At+_­AHآ&D+l[* Pb8zRv)q}6ZO1zGM jWpQHXHQP&VwگNkڲHڕuU1QKKvQ]زADT0d bMLal}= F[^IAЄ<Ekx !*j`Huj,}((P@Aqʓ/#dt*e9M.0*gQx'Yxc(薫 =rBPz*ba?kRևR'O #B,< H\k !\ ă 1'D$%hh$u+x_$!hm A&ꫤw=SLA7]U 4KX~wEnʶ\[ z"C!"PxXO@uQZ  TIQK(U\,l$TUT_)hAH{"{Ze9*V\"Lz*^#( *\W59 @X#B"7 m-6*U"H4RF?lcYÃбA]{YiI,s;m y=.R ]&a{o0aH|QGL jP.M]H;dFas2 Q+?(8kBX`.<&b!D""@P/CiC:#՛ uPPPU;  QC3!F$(J.d2;y?ȔrGOq-T.P5N.b? |Z C4[6 9B[&HQ2Qɲ)ypspt-B9+D A_ʪXRYܬ++[ocHP9#fV%_YVa?~QEz- eEMP755h3)/)oԖH?@Ph-+)*'H!1mҋ/ DTnwP#t`!(HۏR$ P*]#JiH;EAYm$[ŷDvueűpHf!j9 c 2)-.Ƥ! B0&EHZMi ^̀eIG3}3$,_\}}}u,JwWTT8hiڥ5 A`-8* KP hj(LRږB& I)RHT.RffzHBBiaa >҄텉hLûgN?.  2 )=hg^{ ⯾} 7MRp"EMDFD-Tu뮺ru\[rQcsSMnn4T-#\^t B-~EيN O ?DD2(Y 8$;B%tÚZ+P@"`&;Ơ]0Yh(H<TdL1Uz9 MV9ګW\6PEU]JWEGVPǣz ) B>R(T#Q&`Q9@ ʤx$D|gpEܶ[@F7xvQY*V &0uVKRRG5,Lg N5 `CGJۅ:!+f:evjHPaPZRat^4TϿ*m mTE8D 5J#-R8];wY++ [J1: 5N>~\IŔ42r6p9~\qc]G1A<攧W!eQ#lQvzh+PBbTt52)w(#J5*ik<l=r3nuX~vڬ_|i|og{EnjD@|)jT:4(>rXK HBpc2y'_x*7ּkIrAHxƛ55P#_xŵkהOGD7Ap5!%83C)  =HGƝH^ԤiVa믽e&NXxs 2f20 %%*_~yMsڿ*_3! Fv8lK/,]8 {h?oyI\GҢ?}dגbݚƝŊѤ8k9gMsf/x8W^y5grp^0If( i-B$_| G{~~׫>`՚4 ڑP H=|uwMp$X Q m/4;#?!fnU0[ ޤIPr._zIaܜi\Õ_g+jkw)0/FB 3",@5,A[A  ꫾Z `ᎦC䎦$e{1]87x*GhغPDeݷr2gp}SccKs3nC]]@ kZCn@Z(۬pjP7ae\;Zqmnjk=!#7^@N.Y7;p$eee.HVVƍpF pFx. =B&-Ф#$ޡT0F}D\wL, QTTޥmK|q#Y?ٕEwǙ<% o:x\wycHwWE#-&޹<_uS1>"пR3v"I~cMo~u@1gsGn,$M Bdn7׻bŊUVen G?^8pп#73qZ~4yّ_{>RB wT 1 qSq&c&j*c484Ig07+Ӡ"+ *w#@AT(' :"ބzKQՉ-~ᇛέтE`@]0r lM uH!A]0<]_Wzyc(T` l@]KE,!cBo]vR/:0`[6 O{G߸A fk򁅄P?"'g/x@N]W *Hdߞ=pF!?G(AO$ÐKMh*[@/L`R 5)!W+51dPk]z)'{ @hϋ/R~rhGC\ 0{^|ʒn%V*h(v $U+/2RQ OߴK.dY#_^vy:5k:i℧|&%O'7+3k tm_~%+ϗ #F[u$[H}baH u(BfߙHPMJi8\OiBjdۡ =k%|-#cۂhzA$nD@ CzT{ }L C.+s;X0$ȳ7+BVU >>kV[x9Q⦍/lƝqA`/RnmnVkGnm.E ?H4rhH]w2rkiν u"{'OA F\&3c犮΁*YKgtm].Uρ~G;?wJcϼ ʪ>jLdvܡxDOa^`:wRI?l,}{vqJZ\}{ve^|}gRW;QªXdnpPcRƅY\yОJ)_yګjx`?|5M~|7OY_o; s..,~ÆUYTǹqZH 7FhbzR昊&1&53P.|iHZ #)O!ٕ&)1!7eӧU)!07_-}>`^0R$|#q@u+@|չsooǢ#~~0}}1:{=ԳCi"]|Rge۶>x|nY3g"F¾B~7x 8ȡN]x, yrqx2o `h>/O?c@؏~@^pz5 {G{K.^PtLCAgi#=l1>?agv9|T /F~)gh eJ؉?l?uVONi)TPϗEuXJR#(TђfHA$G*..{}K[>!l#gU7Lh ?+fT<tQy∷&Q%z*+o!g"j )T >GErTGTY oog^ h2΂6BG 322n [@Y;Usu '%ſc?->`.$ËCGH [uXȂBM!8'Ip(Fʓ;8TQ*- &qBO1чEV}" y\)=8&W^] ccؖ&(_i2xM"GJ1&TzFGDb! ˰k!cM/Vb/HL/CoilGK-ܑ`940 T~ ~H'lpp:$bLfǰ+4vPȬMȬOc!pRd8|j]'>(~l䣚Gz6$F> mke)TMA j 2(S01[T6.HK81\g(/Y۷mϖR/ZT!,+헟t3+yKY TL Be^T)b`nLfˏ?UEB s~˪Fow}hEp_? !|3o2cѮKiyg^?? cVĐY(:I2(b;'~e+6"c-')QѴS֠ .;QTi@dΠ?MvCe ( LVлр}^ÜMU3+\TSu4 KMmðxPΝ:eWNePGԑOZfҀ JمjJF}Du+<%^MŶ\C{eWV ^^Z;pSrgl I6d|yI15[e%E@O0c@ ϤH‚%E۷%2)ڙ+x$D)3Bݶo#oذ>uk ڹmV<,|p.྽ٙ|/aqh>ȠpHSCu6c0yӃfLlP$qHC4\fAٿnJun"_Q8L5t*Q^S& E^#HMeE-ӑ%Fj0/%FF'V/Ĥzw TG>)vC3=2μGLMҩyjGzuCWl5OlɨkGcᩞ/R󞊂 :뙕6y\dmXU__&/7b &3@ :u;ZvͪmnV4I%H [2mNV}{T6ˁ}{3nW_~[C 3)aoV}E3d a CzVZ*ir 21![Fe_11:8$֓#a5)wf#"ۈDdzPT>{+e,b.h؛$t٣!"ݿ[CYXJ |T Ǝd)T9xL%^ z4Ӛ}*WN~˿T?4i Av{pH Ԯp([mJ؆~buKc~8a<{7rŠF 5\2H?$Ig31e0kxrNR؂-1GaD`0"-+p)ĞR5U8Ry4);= KU;#p "ahE4$CR۽A@Gd4ȕ]U>E.R_Qz_1S9-Hi:p]R-֌,q;"$Tgݸ d4ơ|CgQa Rs s'4mAdLE`dF6)̃enbJ7gG]œI^Ou>2mcx}$$Ւȷ٫m3=nOk4W+F~?3!t]265ý$7U2BZ]RU^[2C EA q z4=koX 4J,ߪa[OM}AxfM=mȗ3 ?hRn \aP5bd⢽BSu5aP@&B e#Jt*-8suYRCQL""e#b)Վ;v~Vl J!oaj^)m#4PX4;"eq "E>5 HyMvDjjS)e&&"e)2'nS4DM c;2G4vڑ))Rn55IZ&$ewJPG8/Ҥ\ʶɾ Ϩ͏v{-?SG 4?˺a+`r^P9("Qwт@mg^ۡG8F,5Ko 2]h5ն#ү!D 3QAREڸ 騎]|QMJ ݄eB'$`f0f< 6S@u#שLɚ6I^*c}çf̃?X$"lf@ :Rc$ ^mCg$dB 5M4d5/v&^w$}"gJ]"sigxՅVoweO ?(voU h?ϿZ&`jAv1VVgACCY15ijDԫٳ^]f",5(kdk"zddAcJtLHUƤ^ݭ%Kj_iإCGc%'c#FuM׊D)Ks{ vJ#Q\YS}T2z'U?SIh &y/)ia d]i$"s`~=irf">%Aj _QɎ6ZcQ=ԗ[m/+&ȔYAGLfҀZ*8JДabfE<Cm3~B 璧hQY{ >\PIo'i#:>bG= Gy>q˟yO i̸@k&¾Oaf<9#8DQ\ E~$"a1ůފ"j "b]TKaׇ4ZIJ^1\JpтxY 4-jq-cOdJDAnC30&-0_W:lSVBct"sTE,둼XY+Kq:&80[XAjh-P[YJ&o -z>Gd۞R2(5Kz@yԫ 5d:Wc:2ӚPcլ̉py@fZ]S&Q|Df(jj .!بqkKT/%OgDU" HųᢼUz)$ $wS^vQ[7 MvcYj&ਞZS?%@{J'y"eZT#{rbE]$z^Gp-LzZ~ʚqTEy&E-Zn#ǬHd}G0::@hLD3(*QOP"I3Lꤠ\7?3b`E)c$b^TsQKx{Qe5*[[☢V[wi>%iX&fn[JDԔ] #%y_ uG1Om)7i=&V=#G|4S=˶X_B).(EqUNT7c&*$G磄 fDzGU09k*8XauådH_+OtSz=q4:sI4Kr# l]TT8 Đz؆ݐ$;( R96zi#$Ȭ4R)s93eVR⦲EHJғ{ -ZF)`1 uޤ(ٍ.x~ Mk`ZSרZOHjVPCCW0;VVX-D@P$CX D dPV0 UP h8_6E[10m$ѷ( nh$"(<$ [2RbUŢ8~U xԂUHנ j((^dhh3=eM|wEJFTĂ.'D6H#p [CJ`k <8ڧ&LV?....1{ۖ:c,[h/,X3=)i߳P`-L8~ܵW_;̾qL`.t#P?{]Mu޵&Ͷx7G>p}bYqTA魎*@Hkkuuoz(  A:]K/Z^Z ̼Z ,N/>8?*ض7if:{PXX0o|,8 `j@#UY^ܳ<~P$DBQ>Lw.qM|*b u֪1';k.^[C X2{aM<^R x=M0=O"!R^YU_ nܰԷU$A-M"_meoݚ^sW8];C~{U{PM,*8 G>Y@#\\\\\g:;=.WGkx4)fc0Y s Ӻ z'.zξqGnW8j`䖕ȷ^mN@c?BH)]:A ԕy Ne...B BU)ܿwhhq N!8A8M~89٭;w456761I  B...±^[re3NAXPg._BB....PV U_vބǟ{>L/s[Zۯ8>R+٨H+ \\\\4%Dho)+~W.Z`22 <;wjkXc`TqT.Y_1"s4G}ieer"=8'M Ru"S)qҿҋ/x_wMё8|`ߍ7a]MUmu)L>REy)Q%n[sUWڭBi^6}ZMU 6K5W_3O6^xⅷحVX88xKt!eGK?в}͠ [<#҈ ?x}'G0An!m\nт[ {׬EŽ\;oGBBb_uk!nw=gW~^řKM uG͝a axB\\\\jG;AǏbgzZQS.8mB 'l295# Ǫb;o>ukC#* Bԓ޻lgF556dg͝s#1C&rrqqq 9 FN>aC ,ɰbخjAX#aPeYq"$ 1/v v"a}хSJ,W_yEyiS/ x='iWkS㪯V7nXaXKBq |{-aPM~P}֥}ILcCdw <?oi}{vs{ar4k9D(k4t恰x Lei |'mO5qy7͖|V0e% A؈ٳnxGQ͙5 o&@Y o++)Biӆu޷g'o6B3c1B.3F1x7'~Wo !o)rrqqP6glkF#( @gڪƱj8AB.?s@bq_UDh{p_xΎF0ƌ:;w i{5zPYtLPIaF.57;c?|>Okk3y]UDd/&l9ZY_}kh.eb"!z9"7 ́0;Af(+.:|pߘ h iF ߪh$PJ"4לT.96t9Jǀk٦gŐ\\\\g/t$Y(yJ^ ̉t5#"d[ @=TEi]HEXn8]><۔K,Au)dBɄ:gT qYH0T!0B>O`A(gvM5 :аU@D B(BMJ\\\\EŁL@S4 2 iAhJP8^iӄw+dR0,>nqj|tD@XUg4 I*r&!uvyuvD5B (H#°v_&=[Mk@P8nc]m-c^pǎ x.8q~҉@w%!jC-)dH=8̉trZ^xN}.4BޡB2CA(+XфOpnR7Y)%@]jAQ8o榆DMppp pq* $~`$}0;L0n,_AHhM"c*.ܳ9N xyƆDM }pp pqKxb%z@811 zC9#0!HJD8U\!TM?q8@ԓ?z~o|aBkӒ' jq GN^~oz[+m6 iTmV+)(E`#PbR$LמsL jYIO K/;?/?a]MUmu g_.V% 8+eJ[ׄZ 3yG+PkO aqRn;n;nvEƝ;ګᣥ;o;>fg4>_~'_hʳx⅐ŋ "ͽy:9Y AXS"A(0(ocG }2X=.D6k%n](.p2|7gx[? &7 , /^a o[-8MmM+9P&KAwQ`H(  nD,d0",=OG.LG:IWpX*[JCܿi_̚6KėȇXoA-PVꒋ@x3̎{?L‚#y<.l! 1TG Z/w#ِ ,kZER&^;d G܌Gd?OYx!FPK 0ivqȩS&,3'c 090Do8\zdÊ#~]N` as0( 6#mJ*56dgΝs ` a!T#\\!SP*JBo /q[v,ɀ?Q`d'>6p: \zKHYV|GBE? @E/ FQ WȰpx[AtE? &M%V}(qzSrrq1IH2S0}~wC>}vzC3 s## ˆF/+*_^z]y |{a[E9\ߣy'\~oI|? cpVw{o w ̟XDpY '8-@w~u+ϙ3;z5ǹ.2Iz\&WHKT(:4;E! xNƦ{^),rqheT peh/Ιh 憔)FW̘>qhݣEBⱇ>u'eاSO^pLRPi,á c^pp\cTQ pmLS0-`iMұ 3ѠaPHDUӔ)%/@n 4J(QӀP.LhJlDLD= b a.Nbz~B!PS) շ MI-L%k[}G H!ӤkYɇ|&~'}oKÕ@L-L@u:-  L }2 I DZ+P0-8zA]& nasZ+a+4<)SQR/\Iן櫕pyi9"?d; 4R0M LAм]H\"]0% Q N܋Fa s0]6 lz{ +'~17c{qa{EWR8OLr k4B V(`B,tZ|x*G#IPWp얊ض6[[m Hc>!+ ȋ%pOmnwgBm{(KA< kvL~ڇOpJޞ,βr1U^|tÚlV?m %+ D}:QuEA)FGfXB't0]RQZ\[S{kKkk rAަk237~8BQǙns R8E6e`F .}*:ku3Λ0~s/6'4݁bLv,=]5U1cQX S$+3APS"3oߵ3_֭}};s!\Rx{-Ba5"tv5EFaR 4BM"N&_TtLv;o•},Y15U͍5ZQHo. ,9ZFCEa[EY^NqTV߳}\ٙoڷ_ܸvM,-ގ5߬z핗9Blv]֤Aț`JdAh Fu@HE ;O3 8pᚃ#LB|0~ 9ȑ{0; U6 ?~ İ0Ni, ~ w+?/8W &9j ܷgwIaXZXre(CRѬ7^}~|ŧ} hO~ ,{okxrθuEM%Tbu.%es8-f r喤܄""*UzTn`>g(^ay j b) ]1.\g0)XCSnZ)kL!hqϘ̓O M|0Lf@G{kku,U@tVp,%v;r,p/<_K`EXۦj\igx &5,LB z%ªRBbBXB0B/ ^y]T*7.[0H, @+!L9sn,۹;?cᠱj|^7_%97+3! 8t`?r9cۋ˟}^izkVW|%0;+\Q!{pEUQ BpT zKs@JE̾3|*79sH nס{"sx!רW|ƠnᎣ;Ry8±ݷހ+ ӶJQa`ڬ {r[qASkSlHJ +/:`W䨬 >#7Wio={ Ìk kWs3`7}Ϗ8 YP!ڭ!1nM` RS9PBh (H㱧nDA]ڕUDA}lhL0~E̔ׯ1҉-?ʲͿjclo˯@z3Gnٙvȇ;3/#i)+AfgdWFJ0#޿W_ݷQQAիe8B4:5 @G@סYTمS+p о];aSuU& 9ժGA?| RBz ɽ] {<4+U^2Q5apDA5 )sP}#B.dM:z4 6Q0nN涍ָZ@^8 aq9֮4dB3/5 A{]Pe&􃐤G4YvZ޹Bt0AHpo,9|ͯ\r0 TWh?- hDڻ+emjfq٬v%k8 &$5Q+W !VƠjlf慹k쳄Y4Y\\\/#6/AGYƝ#AAyDL @= h5uւ#4P%/#a נQjld=*[MI~35uq&/ T Beji)JR㵧FAL Q!SF @A5J&ZctU5@ LG4E gfQBh(c4]\\\gwqmw #JZZh Z0A$PTÁJ4J8s l :1VƢ*0@h\4&B ҡ`QjɃP: - *l?C\\c@PHC{ϰe< fS! %6 X4)z t [p4 @H,Ԏ\\#*WX,¿ `~լZ.1 (P`CyFqP#;pĥ Eu\EXI)%@P(ozn.غ&C 8ԑ_-9~%Vptm-dNX`Tϔ|ܩk&WC^"v+\v(efS/S-G_7tvrq5wv 6o(20˘Zu ` Baw>gć[V 8m lH^2yI MY/_7tw676pqv(k |4?($AuLJ>aޤAvY (HB8IR~ $ @PT#0%"s BT00JP_50 몯8o,/`[kKc}-טQ{[KK{o(g6BG_F$ QQ0tKR,BSThTأ#͝={_ yiz_ńKzfcT d6񌽣 Fq>RwTLGTGw s/ 0Ahf(+ꨊEH>*қaMUst9?l~a.u_rLqߞ]wqK. 28]5p #Nog+$YmXF{݆3 nYvvgDid)/'(/V㏵3Pd҂xÔQS H ؈Ndc!AAPZ< B˖vhk L-ka⼹s^{%0q|SCm,7*[.Q7-h("iCp3Oaۉ\zEY[ȷoD7 v_p+.UJ2*aF9K zp_~٩s>}K*ʊqLiQE _~yS $>AQ ~TB^'?y-!mAivEAd_tEv۝^#!97"?p<m~e'a<EHP]v_~h8o*ˋ.^xބK,0N0.0ܙ^h,;'1/' d7]8n~fnN&u K-~ч^ګ_fxAm.Yj.2 Gw$`K.he͓ϟt=a2-@kqjoSyY1!\o#ǖr٬ / a ,e G[4 v*.F-Np JBSK`!-|`+$@QcQbH#Al#H cUQe.E|^up ~QeI]F/M`Z]jH.5<)vCe.B^mGNfoOpPM {WUPOW'_[ HOn7^gN}0-q2YKzM}0̚[Uh=(M2D˦O+H"Wܲ Ro_O>uk}~3O<l M =ЃOr2ymTnÌ48N^v=&ܣy8yvKENIjӥ‚#΁wڬ0@gΜs9szGqwhoިyPGz==~OSփwA[EdlTb ۭ.oJg^D 0зu0@uYcU{^3N~WkkxіnX>2[7ɠVrޔR:WRS/+ FvP_2GO)Qv xq먓wBU^ҝHX$Sv1Gv0tPyZMF*Vx+W6SZꡆl5lm L*P(\Hcmg,V i.]Q> V6Y&7ž"BJ|ybngIa~N6Hg|٧;Olڿӻ"![وAxŻW/W Ce肣~J;|Efv[VR\o9b]geytĬvw+OecGZf%o)LAulh4HLINf[ϛsC}Vg2e9ayz +/F 64SPwmF{&g>r>u"%Ɛe€p"K̄et;oyy,MK7mE,33=m-cnj޿ooWȗ<'Hlf#Kꡔ9i8 ƈ1cQv̡*$<:f/6dYA[A<&OP3ݷ u=|ʍ]Q3-1:jtT1H]]6"5 U"-(bYQow[=r\"gB0;qKBKSS3{wiP㖄MTG(B6;V ^=lbo?.Y Q⡦AUJ <Ɯ壣,hNaPwa׌R퍋uC |\+lOhDXqqNrlHZ*{fn[Oed{ۧIo=}hKl5sU cn!z>NCʤ*5$;rtyE+ F.Nv'pw6"t_H~ mElߗ~ꤤmUuG`ʤmOR2J?ԝ䓏ር߇c-|StyE"[SqH-Y0xDԧN0`AwN1pBЛLGПb,?c+{o#)U*ɮnwJ}׫7:s^x𩳯U .o+,v^VoyWv{)Ԉ:ED(0bŵa2AoT~Qn4|CzAҹN_,|ދ*%Nhzi($" Rͨזf#);]%et~ ^]tIӅMwC,m},}Kv\wXI 8^FI&D㨑i 1Ucd?/ҹS%4vZEͳ$\6+KPV{584 u&\y:۶lv8eA@Pa8j'D#¶˒ cԅ}Ƃ2:'BL;" z"jN-86^t%]ۓZE\D:;d'{E(sKta'|  +BŞtI9f5 " ]a(2|o|r >wa79d3h|881of]։ O{IiGs*]vTA2n+mȠ e$;M7ڕM-f:mV3e=DHM+лwʌ-CPQ9+g4gǸF%B DۊVVh`CP訓nA&BQ!)e\vq E zľ`ΰ;>ئ;.%êi/1D@(zGG}ANvިEOTclDT\t]wP&Bv/@atTN!'Ku_B~acdA6"Cu]:AowP'BfAYw0QPudvku]- %X %nub`남#'0RhӇof$t]{\BA\\jrڪwb< iwmqecXԄ$p݀8:^aO!v/H"j EڷČz3ʌ=\):8 *3PB ˵VR jŅ{Ȃ'ڽ,؂t ?;yo+# Bυ> J_}[*ō47:y8lf7\< ճhB1f<\("v zhn/Ub=v_#"Pa~`>pvZx<DbxA]4X ¬sɮCCߟդ榦: $“'ZmF.!s.dM6s![?qٕDVq]Bg8θ nnAБ};Y0R`XbV?pYi5G/ ";?Çnⷡ@5FFKNo] ɉ-=Qv`z|.׎Zз)vtFj6A7F6Aj=RFN+Z,6U+ޏÓǩq!؂MbFhSH)QFe/G3lަ8\#j/hm|h0TGЧ>H:"Lr\64Q.q)z #`NMؙ5/'eQf}lH9fϠābL۳;yGϴ=ڱ-c^De U,5%9eI S2xPW$lLIa3ҔC PaZ*a]Tt! *melC\2s=iAkRFjjeB6_OֿZL.AɂA.BC;zDqwPjX<|CM_QoOʆk{- TWTcjR2)3`$%sgz%{H!EEHP::TQ/9`3exNB@Y mF}Eqa~N+1X2.g])NtLQc'Ѯ-܂ѡdiv:@Bt yPB /mNYw8T)\R™ 0Fj. lD48dP;h%C!t`56+T;C-v.7akZY냢rfchl֌#J^ #Z ^D&;贊? (6"C> ^[)w-<n-hCbRB [VNAIla}A\[JA){iNɀy( Ex@U K' * [qa7ڬu{q;mcVkAv,R>dsf՝%;/35DnqY=_}-"Z 1d0ȂRJQc4R2%bS vYEpv\{ &:k~fBл υBG֮/ +€[C|' Am=q3ϞU8U;U>@3Sf|)Ffv Y3-q3f[ 6c,vmmȠw7pn2xO7M] pЗm7ϝcG[@qx빳glf}Au!7̅^OXByB> ۹2 qҽ!LvQjAf6#Cu]yI뱣';Ǐ=B_C;!U !EkA-苚d BݮBd` JOʖB_vni>rfȅ;K_}ALP).8RB_(ڽ]Ck)Ъw،bȼ6IR*V1r ``!D`FꞳgNnl>sgW_ A,<$?B )!_:#Ki'um> {٠\9Ш`*f]U'CzFj t35xEB_D2ADŨszB:k_y4NrɅ:%*:zKjaz v^A/ ,Ӊurz^.ܛûP2F\{MqAJKH0j+ *YҨM !e 1(҅0|BDbQ߾:q (Y0[ w[P&SsB.X͙:y,a1{ExAzoSYQ&i!?nUU[gxyNcC".@xx,Ş6oI mG+:}o cѶG*j)(6;~;~Y`!.ZaeiS7k4JLCU{ 8`UL&p҄î<_1nNݽ+[ˆà='H7sXB5s:fPeN4aؐƎ/eUwy;2SՃjw=sY5#gMjXxĖ R0@{dȃЙ|~GKTP祱쀹eEl3ݦ7P:YbUVK?0, YŠ3-҄YW崘{ͱ`fS^Q j7c|ܺ;fϮv ̟{wX8o}A/s!h#w eoھ 31r :j D~P[^vo pv|tAou'CKhZ;`@ Ђ2Z&:mia^nmPS{"5\ح2.V΢׊t&mrmw`"_xʟ(]28؍v>Q dWK"f TC~ѡb_, ɷ@5[Pa D=ƅ\Vl$,]Sݤ 1i+"(t0iuU r{1$#(&'T72y f݊冺f.|r v| M2Ԣ"̔И%ٻؤg1 Rv9ZI'nuL6e#ޞ+Swa &myte(Jઓ pAm"(JȥbvF84 @!7"b(x1ۡFODU}m`ʋ ֯^~ ۶mݺ5x#lL5++ kͪ>NEqѪlذa#7Vj(q,DMF?6lذȍhN];]}<!Ls~ 6lzvYj;/UIM_"Æ QC];/au׏0T_?؟ѡ7~٧;o_ 6lbZYΉGo@[E-+a0bqݵ*Y glOJ2M׿[LMꥢ‚Cb;F˩_ 6lzs;WfXޔn21t~'S'OlW %Eoϝ;B}ݖ ?/ m?~ذaifWs$/6k&KWyۭ_M2?x;o҄q,j>أ#2gN2}k߷W)'N2x3GW^#;Ӧ1̜>,>zU;fɂB^_|)Ȇmq zzJm[׭]yhinޝii_}Y;wl'mN$q][[[)̙3p}]/LۇJKMMܲu{Lцz˙>b&ndGgڹ-ԘA6 6l1%B#wYET䩱DYjݨOJ4,adG,~`ὕEYw//hŅOY[eV>҅Q<iwܳ6)_㤏{7,"Lڶ\K}8zHdId@97Q6lذ]vbt̉xGv,gΈ_a2aCV*BU!WQBTުkW@(A䘿}dܻ'rH eeԯb%SS8q\(u\曯ƨI™d{Me#oO%%;3>0X"aÆ-Dx+E(ΜdIJQVkmmo[̤{`[[ %%;Bܹsd5W1)׿:}lذafbDvu+5o9|@!r/K[0ؐ7e9ix*|xc,[ J8nL"?iSH,s#_Go:i|iAތi8SuFd)8A͕z-%60n!_ٶvFۨW_}E/٫557>* S:"uN:^nL| ~ V&;BA) YNݻwOcÆ [xD (m)ݳ566_aÆ-/G"T3u÷(=[vV槟~?!lذv]24"~2f#Æ 6l=po&CVFZgEH)h/CeYYaGX}6lzF'yVjUQQ[QQ\(&ڤ괘U9k:-F@UpfyZP!7k@mH'PT,B1TՉgG@=BJ f#*$Cnn+B*+@TGD"-0U!1T> !B!zE>0UXkTP!jDD"]cvP(8@ШݨTEDGF*rQ㠳"bh:F>@=BD"E(@T!5;PO@-B PC ݎ\Py!D@"2T(!P,PDPs!B,d@]C!U]!PPo!uOT!D@տBT<4zaD"SD"mBuUMP!B!D@" B#,Q#T+B,@} B8kTxh"1Y Ex"B)B_bDSD@}"t@ BL֡@!z B@"m@jEQ*!DQ*a.D@} !+P(G"ĬQ,!B$ B&FTՉm#[B: BWYP!BnGF@jF!B#Oh@!EuP B!D@814 "oh@ud@M=B, "U1/+B'D@C!CT:4 7P !!B5 !B!D@"B.|{EWe*ו4t t"qx[uo!}Y[y֘Τ_;״u4nVPhMUcGk=1 Bf::)Buq Zc7op.aCyjkz\a3}+4}Fifn ŲskVqϱKZu ~pK8aÇm+ua\]&۰~qJ~93͉PPAۺiO%ou׳oq&]z&ɼwϹ{3ƭ/TeoW_'}@ܼQ jvk4E+I#OL7uEy[7oLs}ZufYax&뮿}wn'vc9zz_ P9%Ev+qosI4ptm?N n~O?T'=e\GM7ثSo xVyK cCAfrUE*ϝ1u2rƍ፛bfGO4y'rM MAM:_H[,mn8T{ŝ̘>uaӦQIJ}#G oqaj ъn1 ax$Ÿ7w2gqNt,=7]oT0{ܵzrrsG<,V>?N5u[.>w^\ +f_5}Ks`!o\Xqs=|S&MwoL mE]qShᩕڧh9&o?w3~٧ُ>MTi4)Obψ)2?mIWV]"N . ]xv;%@5*gA\ET2q҉@ۺxhVh4k4??w]%|ŵuƕO+_N=̞9cً/Pߛ1m $T4̎6nZEq7??wHI[;UJ>x귮4UWh5 ;!*4DRys}YfL[z%/LUz#ZZLz= KEr>ݟ1Vc˧S>:~J9. :P9aPDyi t"! NƿmdFVoeJI+%P>3MShi+3ǎh ~qywƚx ִxJFk ~_T+d ԇ ӼS]=\tUqfL:֙ajգ٠%W% ^Jo7%21>0Tys^0FfF*4TVlsO?y?N:u['?{"eKïڠ`OgNǗ_bK*ʊM_pfGO)g(燚?y ݝ?8f(Jf$L{ {U1[VQZur&TLonהd])h of'+;zW͟;G\?uD<)7{u¸fW^~)LUzɺ0,}Hnl[ʾ_ߟ^' HQumЖJM?r^ЯqЩ-]rIFCMڿk.դAFG7 3ziL;٪G#NHOW&-bO9/]`IAථN[y seƽ Ty3(-.H_Ae]VP'?)W_!M4 FѪwX]eNƾ 5è Su 7޾lΪ&En8c'a>P}щ޵NN ඎхN$m]W4nP[8G,+.ܟ5-q|}UEֵmxE,)ܕuMڊRŘFWQJ'BC'|@i7n|-۷Y7^iDtg5m]ƭ75oգ!D]YqAvfԘNNƭ4oգ!ê*c:z_[a ηpPEZKըjAuPe6OeV(|":QFف6*-fЙm>MfT7[|"4LB[Zh4}"4 b݊na". craig.p.drummond@gmail.com"> ]>
The Firewall Handbook &Craig.Drummond; &Craig.Drummond.mail; 2011-06-02 0.4.0 KDE KControl ufw firewall Introduction This module allows you to control the settings of the Uncomplicated FireWall (UFW), which is a command line frontend to the default &Linux; firewall (IP-Tables). How Firewall Works As firewalling is a really complex topic, I'd like to give you a briefly introduction about what firewalls are and how they work. When you think of a firewall most people would say firewalls just restrict the network traffic, but a modern firewall has more to do that just restricting the traffic (which is, of course, it's main task). You can filter by having a look at the packet headers that store information about where the packet comes from, which protocol is used etc. The second important feature a firewall has to provide is the possibility to log the network traffic. This is a much more important part of it than you may think. Logfiles are give you a good view about the activities in your network, like who did what and when. Logs are also really important when the firewall got cracked and you want to know how. In that you would have a much harder life if you hadn't activated the logging functions so that you can see what has happened and how the configuration could be improved. Most people think about firewalls as just being used to block traffic from the Internet to your host, but you may also configure your firewall to restrict the Internet access. For example you may block some well known porn sites on your Children's PC, or you just want to allow email and Web browsing in your office but you don't want your employees to be able to download files via &FTP;. All the things described are really easy to implement with UFW once you have understood how it works. Configuration Default Policies UFW can be configured as to what the default policy should be for incoming, or outgoing traffic. After you set the default policy, you can provide exceptions for it with custom rules. These default policies may be set to: Allow - accepts connections to or from the computer. Deny - blocks access to or from the computer. Reject - similar to Deny, but lets the sender know when traffic is being denied, rather than simply ignoring it. IPv6 Support To enable support for rules based upon IPv6 addresses, you should enabled the IPv6 support setting. Logging The general logging of the firewall may be set using the Logging level setting. This can be set to one of the following values: Off - disables logging. Low - logs all blocked packets not matching the default policy (limiting the number of duplicate access attempts logged), as well as packets matching logged rules. Medium - as per Low, plus all allowed packets not matching the default policy, all invalid packets, and all new connections. All logging is done limiting the number of duplicate access attempts logged. High - as per Medium (without limiting), plus all packets with (with limiting). Full - log everything, without limiting. Levels above Medium generate a lot of logging output, and may quickly fill up your disk. Medium may generate a lot of logging output on a busy system. Rules UFW functions by being provided a list of rules as to which ports/services show be allowed or blocked. Rules provide exceptions to the default policies. For example, you may want to configure your computer to not be accessible from the Internet in case it connects directly to the world wide web with a public IP address, but you may want the computer to be open to all connections from local intranets and also to allow for ssh connection from anywhere (both local and internet). In such a case you will want to set default policy to 'deny', but then add rules to allow incoming ssh connections and connections from the default local network address spaces. Rule ordering is important and the first match wins. Therefore when adding rules, add the more specific rules first with more general rules later. Rules may be re-ordered via the Move Up / Move Down buttons, or by drag-n-drop of the entries in the rules list. Adding and Editing Rules There are two modes to add, and edit, rules: Simple - allows controlling of arbitrary port numbers. These may be set via a list of predefined services/applications, or entered manually. Advanced - allows complete control of source/destination address and port numbers. Only the fields that you require need to be filled in. The following is a list of features that are common to both: Policy controls how connections are handled. Allow - accepts access to the specified ports/services. Deny - blocks access to the specified ports/services. Reject - similar to Deny, but lets the sender know when traffic is being denied, rather than simply ignoring it. Limit - enables connection rate limiting. This is useful for protecting against brute-force login attacks. The firewall will deny connections if an IP address has attempted to initiate 6 or more connections in the last 30 seconds Direction - indicates the direction of the connection. Port - this is used to define the port, or ports, to be controlled. There are two options for this: Manually entering a port number. There is a text field that allows you to enter one, or more, port numbers - or a range of port numbers. (Ranges are of the form from:to, ⪚ 123:456) Below the text field, there is a drop down box containing a set of pre-defined services, applications, and UFW application profile names. Protocol - sets the type of port that will be controlled. (This setting is only applicable when the port number is to be entered manually) Any TCP UDP Logging - controls per-rule logging None - no logging is performed when a packet matches a rule. New connections - will log all new connections matching a rule. All packets - will log all packets matching a rule. Description - a textual description of the rule. The Advanced mode will allow you to specify any combination of; source address, source port, destination address, and destination port - as well as specifying the network interface (⪚ wlan0, eth0, &etc;) to apply the rule on. Addresses may be either; an IP address (⪚ 192.168.1.100), or subnet (⪚ 192.168.1.0/24). IPv6 Rules When IPv6 support is enabled, there are in effect two firewalls - one for IPv4 connections, and one for IPv6 connections. This may cause some unexpected behavior. Editing Each time you create a rule the firewall may create a corresponding IPv6 rule. ⪚ if you create a rule to block port 22 (and do not specify an IPv4 address), the firewall will create two rules - one for IPv4 connections, and one for IPv6 connections. If you now edit the IPv4 version of this rule, and change its port number, then the IPv4 rule will be updated, a new IPv6 rule will be created, and the old IPv6 rule will still exist. Therefore, after editing the IPv4 rule you would need to delete the old IPv6 rule. Ordering In the list of rules, IPv6 rules are always grouped after the IPv4 rules, and it is not possible to re-order an IPv6 rule to be before an IPv4 rule. This is because the IPv6 rules are only applied to IPv6 connections, and therefore, intermingling them with IPv4 rules makes no sense. Modules UFW supports loading of IP-Tables kernel modules to improve its functionality. The currently supported modules on your system will be listed in the Modules section. Each enabled module is indicated with a checkmark. There are two types of modules: Connection tracking - is the ability to maintain connection state information (such as source and destination address/port, protocol, etc.) in memory. Using these modules makes the firewall more secure. NAT (Network Address Translation) - Where any form of NAT (SNAT, DNAT, Masquerading) on your firewall is involved, some commands and responses may also need to be modified by the firewall. This is the job of the NAT modules. NOTE: If you are using the corresponding Connection Tracking module, then you should also enable the module. Profiles The current configuration of your firewall may be saved in a profile. These will contain your rules, the default settings, and the list of active IP-Tables modules. Using profiles allows you to easily switch between firewall settings. The profile functions can be accessed via the menu button in the lower-right of the main window. Log Viewer If you have enabled logging, then the firewall will log any connections to the system log file. To view these entries, a simple log viewer is included. The log viewer is activated via the menu button in the lower-right of the main window. Example: configuring a firewall for your computer Describing the situation Let us imagine you have a workstation computer at home that is connected into a closed network with your neighbours, maybe 15 computers in all. You do not know if what neighbours are using as their primary OS'es, you also are not sure that their computers are well attended, virus and spyware free. So, though your network is behind a router with a firewall, you do not trust your network too much. You do not run any server or anything like that on your workstation, but sometimes you send and get files via bittorrent network using KTorrent. To make that process efficient, you have forwarded the router ports 6881/TCP and 4444/UDP to your workstation. You also connect to your workstation from outside using ssh, and to make that possible, the router is forwarding to your workstation the port 22. To make the forwarding possible, the router reserves to your workstation IP address 192.168.1.122. You also have a laptop that you connect to this network once in a while, but you also connect to other networks and to broadband at your mother's house. So it needs to be flexible about network configuration possibilities and secure at the same time. When you are connected to the home network, the router gives your notebook a reserved address 192.168.1.111. You use Dropbox on your workstation and your laptop to sync files. You also share files using Samba (&Windows; networking). You want both your computers to have samba shares open to your friend, whose computer has a static IP address 192.168.1.133. Configuring Setting general policies So, how do you go about figuring your firewall, if you need to stay secure, but still be able to use KTorrent, Dropbox, ssh, and Samba? First of all, you will need to set a default policy preventing other hosts access to any services on your computers. This is common to both of your computers, so let us do it now: - tick the tickbox "Firewall status" to enable firewall; - set "Default outgoing policy" to "Allow"; - set "Default incoming policy" to "Deny"; - set "Logging level", "Low", unless you know why you need a different level. General configuration settings After setting the general policy, you will need to make some exceptions to this policy. To enable access to Samba and ssh services on your computers, you will need ssh and Samba ports to be opened. In order to use Dropbox and KTorrent you generally do not need any ports to be opened, but it can help a great deal, if you are using lansync on Dropbox (and you will, since you synchronize files between the workstation and laptop, and it is much quicker using lansync), and if you want better rating on bittorrent network while sharing files with KTorrent. Let us start with your workstation. On the workstation we need to open access to ssh, Dropbox lansync, Samba, and KTorrent. Ssh Click button Add, select rule type Simple, and then fill in: Policy: Allow; Direction: Incoming; Port: Secure Shell. As for the logging, you can choose to log New connections. The Description field is optional, and useful only when you enter some rule including port numbers and IP addresses that you can forget the meaning of. Once you have done all of this, click Add. Now you have the first rule in place! The dialog remains open so you can start filling the next rule right away. Adding SSH rule Dropbox To add Dropbox LAN sync service to the list, look at the list of pre-defined services in the dialog. It is not there. So you will have to find out yourself which port needs to be opened for Dropbox to function properly. Just google for "Dropbox LAN sync port", and you will find that it is 17500 TCP/UDP ports that need to be opened. Alternatively, you can get the ports needed for a program by starting the program and then running $ sudo netstat -ap | grep dropbox | grep "*:*" | grep -iE "(TCP|UDP)" in the &konsole; window (change dropbox to the program you are investigating). To open Dropbox LAN sync ports, click the button Add, select the type Simple, and fill in: Policy: Allow; Direction: Incoming; Protocol: Any; Port: 17500. Then select the desired logging level, enter a description that will help you recognize the rule in the future, like "Dropbox LAN sync" and add the rule. Adding Dropbox LAN sync rule Now, you can also get extra security by restricting the access to the Dropbox LAN sync port to only your laptop, which, remember, is constantly given the same IP address 192.168.1.111 by the router. So, you can choose to limit access to that particular IP address. In that case, choose the rule type Advanced, and fill in: Policy: Allow; Direction: Incoming; Protocol: Any; Source: [Address] 192.168.1.111: [Port] 17500; Description: "Dropbox LAN sync / one address" Adding more secure Dropbox LAN sync rule Samba To add Samba, go the same route as with ssh. Make a new rule of type Simple and fill in: Policy: Allow; Direction: Incoming; Port: Samba; Adding Samba rule Now, Samba is a service that likes to open quite random ports on each connection, so you will probably need to enable advanced functionality in the firewall – &ie; the NetBIOS (which is a subset of Samba) kernel module. To do so, click the Modules tab and check the check box Connection Tracking for NetBIOS. For an explanation of what a module does, see the Modules section of this handbook. Enabling the NetBios kernel module (for Samba file sharing) You can also further modify the rules that were added for Samba, to make your Samba shares only possible to access from your notebook computer. In order to do that, you need to open the two rules that were created by the previous action (separate rules were created for TCP and for the UDP ports), change the rule type to Advanced, and enter the IP address of your laptop (192.168.1.111) to the Source [Address] field (just like we did with Dropbox LAN sync rule, only here we have to modify two rules). KTorrent To have KTorrent operational, you will have to add a new rule of type "Simple" and fill in: Policy: Allow; Direction: Incoming; Port: KTorrent; Adding ktorrent rule Two rules for TCP and UDP ports will be added as the result. As an end result, we will have 6 rules in the firewall: The final configuration Notebook case When configuring the notebook, you will need to mirror the configuration you have created, changing just minor details – the IP addresses in the Dropbox and Samba rules from 192.168.1.111 to 192.168.1.122. So, to make things simple, you can export the rules from workstation to a file (use the Profiles menu), and then import the rules to the notebook and edit the above mentioned IP addresses. Now you have a configuration for your home network. What about the other locations, like the network at your workplace, or the broadband connection you have when you visit your mother? If you, for example, want a very different configuration at a different place, do you have to manually delete and add rules each time? That would be tedious, so you have an option to save the home configuration into a profile (lets call it "Home") and then create another configuration for "Work" and still another for "Mum's home". You can also create profiles for different activities you might engage in, like gaming (opening selected ports for games). To create and switch profiles, you can use the options available under the Profiles menu. That makes switching profiles when moving around or changing activities quite easy. Further reading For more details on using UFW please see man ufw. For more details on using IP-Tables based firewalls please see man iptables.
ufw-kde-0.5.0/doc/example-7-all-rules.png0000664000175000017500000022620412270515626017472 0ustar ubuntuubuntuPNG  IHDRݷsRGB pHYs+tIMEmbKGD,IDATxE޽};;o@a!@ ޻`h@8!! ykIm]˫վ{oJf>ɌʬȈȬjȎʌ4眈ȉ)2ݾŕ*4\7yczM#yγW]Ni!RtIRG$%,$[_VI կB= bR-J^PE :&^詊 E%ib3ȉ'Z__Jsv} TQļ%$iW=~ӏ' =zS6ꢛ&$MYS5+G$W7|Ñ vc LQ8C PP &.BZ,V83P˭ qpskaAB(lB[kgG[DuHlkh P%.wv ۻೳC:;:t :tv<%|#]]G:z[#GE=zcgѣǎ> pX7?}1(>u :~ıcq?:!'NӉϟ~B|Ÿ?òP?O7?7OaXKeSVܵ'& H<?8ԟO$K8eteʠ\/pI ݍ3\ŗ~A~5GRP>;;ş^q3-]-QhK]3ybqxc'orD%A|pГLJ,c|fs#x䛥@lW\5,vFlvOdhdS7S~QUekHou1J'(֘ͻ6hMBд)HQipw&/ݞ ?ޫ{ < R!# IPL2E3eHD4\xf #a( C~bgU*"GG LH2F e[#CF&2dNZUIE!mc3ڥDށ5gtHNy!aZH,t!8hFqL,-`;1T [{xjD~˴6O8@c0)`*X`l !x!EH\UR D)۠K"?$h݁m8a$$Ľ-툰!?"^K ăaȐDL`D3r9)^% C!*"H>UnlAޒ=?C~/) |AW 2! v}fl@bWRYU/@Ɠ%n‡q9466 e}ck++Z ՕPs g dT9>pfA~xdȨS|!^'SvZ(ң^gΌĻHŸ!93O3'ؤV93dɨ!Cg K;e3hQ3"΀B>D'ؼ(j4TPjl3N?Y1 ?18!S?¾:!߰d?< tT8[P`#+,\5G׿ ~OȐ0wT{g;y1 [ZeB~(7F҇Qh7n A7;"84_1+4bRp/]˘ΖjnXD0R \SUi3`̦ yCFV )b"S+]wCWWWyysˢ‚@0vKJv8Vm(+C.<]]«ޑX6 )h83ʙVHKR9303I ™шKFEf-@ z/d:&K!3&]]d~5:"/9rDҀ;si(,htUϪ ;c2m Kц·##য়lA _S!B"4X("J8X ">BQÓՅ;0ğH"8"d jLDID %!}=# N(A<Cd(rcB1MJ7#Vrc$HBN1RJRM:U,jJ6XY1. 2|; F\Klho;wzvr;KwCҒTk+<{--:qs̠\ff$)3 OFFrӀy8A9 {km&d~̆ .B՚x\dN8rpssP>|Ih/A]9cC>K.\hkXr9,o52٧X] wj=P[CE9Ivɼf~(?&zfqѢ t+LT"o}q '#-"*5 6$w[H%a0cx] Em¸mXI}tU€6~\u睷O4D%gNpʊh7./>n%p_2gy:i|o.0 yjuojWSxS8k5Vセ( z裢yڨmMk*Օ25k f%'ǟA~&#ZS(fJe54(\ *-C;ҝPm$%[l|#mٻk'e?j`VZ P_Wwر{KED5pI$i&Q1P"!Ed 񔲃)ݵs'GS>/Q w߾}Cp(oȏ%s<20q}q߆|'sfۭ#1ݻںnhPCl!-§NKΒ+.(g=āWҿ۷MUiI B!B*?2&[0a7avҹG :́!k'a0 zj/I0Ϡϳm˦j-^0}7&8a0 l?=jc@J ÑM^ګEǡyg4*I U/^{y;w߻,{䴚;)9#;=ך`zB'zА A, h]DdcC?m Sqل"!eB#өSZ>E k!ԉBIķAEQJTZAyDW iqT h}#4ޔP" ,R#Di)EHr;ۚPSmǎC ڐ>%oGӠ<!c<aikU@N㰘Mw9IqYL ~u~?o,GB~}/ݷ^g~jq0xS?ˆ]8Y.lI2:;KoxnلcœnnXn%9rmGV,[v,?V G~:ٳ=*CF( +/8gַeqÉwS!_Kr`"dBX#G|hPƍ(l(.H<,$AC&gmR+0Ҟ~K0ѩHIX#uv(,ڱLXn[`| 7xW+"Գ G-|AF|`HFC'b"6 "ubM(AK26oh][DK(&ZlQhq@`fqXp/SB>ܫ4땄n ys tUD 2J5 &̞5 .Uђ΂_];G+JdqյՕwݾ ׬oaX7"ʟlm$ G &gg7wx AFU/GaL>R;p8z<6Kmu:uu(MѣhQ1!8pbcQu#'8bQ9$-@⸲Nb?aĬXZ9lƦogμ;3KץlH~HH , LHDާ=bfuhb>0x$ ^H/ _#Ej@ 7/fPhqp91"a0i$y(-]tIao+"G,S^I2a8IIA7oE selC;WB|++uiKH]TuN<c~Zfvӝl4#J#ہ e׬&mzA9|K>leŀJT!l4l߶mY{ݴviٯ(Y}p&CuEys{06>jҨ!sFd.j=ԅx0rӀ%p0sEn)DGzՊF hCPS!&ߢ|Tf`Sjh 栱S?y]4E> aXD##iœ~Y:S G}D1fTacohO!aS_, bh,oĤ kP`A8- +f)Ml0`}z-"3N @1f#/ MyMUޔ8ax֙ G2lٹ}[qafϘ5|/+VvZ[Sҽ;nT#X1TUVW',C K. b_i4RΕp@JbG2o7!jH$j`RbH0thƎ Tmh6iPŲOWXN9)H;AG;EdbØ6x %ŀٚҨD 6:TN &OUSTA+,Z&XN Uho!?M4[d캠)rAt!9^hER 0W?fJx!J۫AzVUW',㶏izÀJ |K{/\:,WDO孬@ i;"E6({ߔ1 Rx9cF @b'V,*mC1lPIJPH sƛ("Ֆj_1b#p:z]ROF]A 'fQwy VS&`=.gs@Q.g\;2œ ټĢ(F kRG %F|Bv`hOd&N=ɕ`8M o42GOpF ftQC#QpFRx>0aZvPJ"C38@@jin# >5az&h },H B}rV*B oAFXD;5#Z Q\*rƴГ{//GJtn@\ [ jPB{$41MdžZƆFI6߆I!6-6xy#Ft]á94c+)ILjA#Hee,"mҡiա[=jcaI0O0yBRF@2 mE D'Dŝ!Q~t0.u]0##dhщ)#F e -4 dlH ?cCgE'm"oYcj{C9vr4f:\ &><i] $\Xm}n1+(=VɃ|9mxOQ!4L<L uAv4r@D& =x"p]hDF=G4R;xA[!^␑5:ǫ=IήP360PMID$ JAx8Rp )CAPYMI$KI!mi*u C-pWuYDz_ MRhRV Qz,4BiADD| b =la9ԷJEz:Jxѓp LxTV|jOtHV fE?mhGR FEސ21<=,Q14"$M( Blp36&=*U%D4lSWjLxm-ʯm*},tMuq4@AmzRlRbHu`)*7<) =L4 jHK6)É ǟ1LQ1);!MʘZ~m&4lf&97'sVێ ƕA륻o|>wzn}o<+/0ݾ >o;/Yr?qDWWW[[[KK |2W® {BL5yRaeਣ«4pE4S؁q8|$-sHl .h$6y( cu5]#դEI FQSSFQs͠ R`gPF!]N`Ix)[] ,z^G s(*)_z ICO kE0PP.8XbNh{[hS/8UWaƐa8z/7659YyZ*ٸ>5С XwO?ojygٕwM/>2O ZZ Gwt6?'}$g$hC{C؇ÁG B Qi#s(CySa!'m2鬖}[Bz>t*U ")$Pn))ZB{&XQG'P+76A{)HgQ^ *p_@P<U<)":M*i!ʑQ6:4BE6!C$vnxaKJjgo~pbT[j2.^_|u~Ys7 ۱|CK/ka? E|.8#G#<ԲJ龲l(d$|`W aၥ\9KtcAP;{ɮҧCLH$ث|c{Yuu| HɤV1M#I5KJKR\Irml ~x# 7) oQ<%37ܕT~`8k6""2xcaED"4aL71T0AFȨ'n]b}6nп oW=׿vmSa3]?^sՕ a9w3דQq0?{]S/k)nyHcG?w8~W68BؐEt')9&pjOvrD.x=9qi`sL¦A`u%Z(QeJaFnd>ZTOYEcFP> fvֽ≴ǁ5^ {^UGY~ ]e>%Xh;-?"9"o9adW>ݐʑ/1sǜ5 j.ZoYѶt 7X٫˧/;xt%Ǐ_j',6a,2XOX%GqѰXV?A+E[RXCBJU!cۖMU'Nx?9zɡI+n~¢ؤy1s1dN3^3^6Ȑnz'<-{v'u? {2У5C `TpH  'G$X uc:aI#bjB-`<( ^@5)cҖ{Ar&9d}yCWh82\ u!PP׫jب4I0n %Lh;R(!'pTӆwUFB),'h*` Ii1"g 7ox~36N]P}_(zv"˼b+|)0}0}e0ei*0.M^y9΄eXI wlr5נVD,C/>?w,XXrynַ<W^|!+vp(ul/!_Ç2{@gk{_/ha];d E%۶^7⚰ғ ?Ǚ z9~'6/0錭0]4v$#V13>pχ"۔O\l!;F# a'ʵlɚĤǦ4P j 6:]+ m$؞ &Lh󄚋? )z" L vW0%Sav@F/KRBF>極c_+_홛>[ɢX媚kL3,3,g˪ޜkG>6^~Xꞻ[D>2d$L;?ЃSz?> %V, d,>3 4xF|ᾟ5a Jyv?ys1O'~R ̥ᰘds8i;9tV4c+ڮؑ.LA.H!&PA#E"@D",aDhB ٤^!F_zYr? t -  ~Jumdքk k)# zB;'!}3O`C,@~>Y)k_b|{V|jwV16L|mOK./h͗^|,CɠMj|[$寈\vEÆT_6RcUŐAK_rхn tz---4d,-d<6yx<.=2kH9V8;2< [vu<^P GE$O$7UbYi^ "K$aY1,L3s5\YY9a$^:SWK}%]*pEA85616 lW'R(2C lQE vREB- ԅK:R@.qyހ _~wW^S?f2*A/*n?-.[-s7?_\y|ʁs;+ LKǎy`{M>d?QJȘUlZ*qF@ ͺ#-OPK&Zt^Jy]'I vr$CPa"3C?vMx\8ΚZ7 gp0' IEEi.(mbB\F\ھ|C`(a^%7 aN1J{#꿾ݢ}anc<-S+;=tW(T1s8 ۮu{.cʕ~}|Ova]՛ ,6#3_{ 7?߯x݅uF^׿_믻vɢrm[d'nӿoG!XYjͪuŰ`\X^_T-@]]]q 1>w?US f~? ؿm&6t<),Cr;lQ#bN}bUy(RpЯ BAO,ա;RYTJY|5`?Ԍ ;N Ja??%J@ prtvIWQ@zMGŷ)r3\vB!X L`Ѐ j^<=XRtTtBQsW g dxuCd<MrOo-AEWQϯ KٻsBM J;zBԄs( AQDFJF N*IXE= {GIyz2'VߗC#hPw©„2OdLGEʼPq}d_Z~Ϗ~?[f]7> i,°---MMMkK}W|R=s_M 0#!\2խk8x8a^=ftXMN j CvAȃUs{xhG QbeشDZ!`JulT><}Cw)Ҹn23M9'˩ ' PK$lPYnη>zO}٬MHk3EnlRT! ?<}G!o·8>Aa]+S#= k3zOў& +ؼAh枱jYB4!<-.MET 6\@u>9}3%^Ou)RhCY "a2粢7ġGƦ4i)p{S<#}? `(:RKѺو[cc:nrH.ᓑyojϸC2J • -]@Z~˅wʒ?+/СƆ]Sc׽s% 8ֺ:@hX`>|iqW^z㰽s}aSTVmA;FGrh)TFK~?bFOK"qƔִYJ#&P(5w人}U>I)=S^mbМ7aj$&.iQ'"O(^t>x:Rh$*Q(vdVbyģ_䬼@M uj`=/\mCMM$ Õ֯ݜiucUyڬqL?JpW^MۑJw/}^}Gox븱{>;wWضyB@줟H},RTXp7_W\ >fxEcCۡZ1۵і)t~h?POPjSʨuW6ˢA==ͣpKlЈw&~EK%hyp su%|Y9q\`kXUa6͵n?W uxSCvnt/jjة=4<eD>Vc$mLa`E)qp<'&"%CL9'='2|9IpTiKBFn .dϳt"@nfy)vi )й8#3'hBwF1XH(YZffȢUWMȌEkHw^\VxWLu dCZy/^rN4a f s\2RZenO~)^,ttm İ&=y <\uڤz0Φ(bC!FG}$Lۆ7a5C]06a]4_'B `Gdi:\g.AEX&YQΜt&44hq=9tpBZ? {eQ1zn1:ݳ@tQ>SτmӆƴR'g% ڜu4tgls2/|˘*8$e+P߮gzFI^ .~q=Ά*2pNIϥjIgOL+P]ufڵe[d4*׹KǥP,OKCksfk-]ewZS32u 6~9z Jt|(IRIˊg28Ti+&]lR\\\2`FIi:BdtuL ;L.%. 2|<\uN S^י"_ ......^ ŕE x\\\\\\\\YQ>8\\\\\\\2p W !\2 5U,لC0⚫F^;j2%w˘ p.\\\\\\.gɎ흝/?~|]PpI?Bhю $ ,lh/>W_Zwʊ4ph!dk-Ƞ=iu7o^osX<}K˙8'gYNη9 :+* YjyZ{>e\ܿF^ TUw}M닡+mO| o \u%|;~-C߯ͣG gθ z!iIop}@% Q}{c|ᰡܿ{,d_ c1KBɠ4wg2~37_{!Pb_~eqFg9L2cW^G~P# s3 Vo M}5h@t?^`,_0lC$$v 2Xc׍!0KRBƲ/K. NCY]n y#'Ϟpnrjs>| 1=?gyN9'_o`ɜ^d*4a :X K·?O_|Qk=1pMe$kF{K/;g~ ֮y5Ç#_]2*Ja6mb(i(x%1뛏V~V n8_Oa9+\'>7_3 k5wdǭ ufe|';mBג1kƜ@Y?s,~;mgL~/ 2ZOKLaC;a۷ ufiM?,[ǥOLFȘP8a}կlz1sһeV? .....sT>iSne99Dٚ Y9zV9dp ׹[ko>MΌ⠟ MX]& .~ܑt'[oNm˜l`Ѣ|4Vȸr\\\\\\oeZL)2e}7᫞\+/49_{m箒P(o)XEv~YƒE x/oX OuNgJdx8dpqqqqqqeME2\%6~9^\\\\\\\ n\\\\\\\.KrpqqqqqqeK^\\\\\\\ 2\\\\\\\2<(⃖sqqqqqqqDa9dpqqqqqqq:c X2N..32< " 驕˗]sՕ>T[\X{)L{=أB02^N~=ǽw.p̍7Θrd#_quADqrqqiAF+N;.ŴP %:mtтG/taOBCU変BM4VWB`K[x!geya 9nۼi3lqa0k v*aɢˇ_ [M0DqrqqC] H(=*G:7gz~X7 CW 6aJ2d......,K܇9dpqqqqqq&dhKѠ+E> g9dpqqqqqlB>!39ACWG x\Loq8PC2y8dpqqqqqe/d s9z!T+j2bqFO!# DqqqqqqqB~o x>VⰚ\k5B V`e6͡ *jOsqOWGP#q\Yf!l&M 2kd6CU?z˓QnŕnGnaGx!ix$\4ģHu1'|U ^X6 j@UP=99C2ZRCpqqqqqHp٭vj2@ H.X_P/K.`5X Q PTBy$2Z 6\k5,&Ep Ix[PTB (NOK  <\ ܓq (pXM-/~(Vt;N n1 0 ^ J*Q4lPGӓBw dڣq^Ps5^䗋+B氘,L,5cHAu, _ɫ5%6}P!T .`G;sMb H'Hq EP X8X_4.... sl/.y-y-jr
x6 ׍+ 0|!4Jv mEHh(=|0:b&ˊDwmy-ˊ ߿) V&!VO U^'pF4 >` Gh6AaÆSAW/ u)83 CjAq(YGz~y?=p6.Bxwg Sx;;~cu4*Ԇ rm{]?qƖnx+,/Y0 yֆ BӁ.I?t@A5vիx!NrfMZh2pP ȱkI.]e:(LE%+Æ9TRՌ%ELt! p&568)858A8Mtq%cAC"dǞӟFw؇ coW_~i[`|ڶ-v ྽%;`ҽ{Jl8q阿n9dpqq[x`mi4j/B`!%1,{ͻj%D J0ڀ͡JaD  n 'PNFFO!.1rVB|e5>?^0tH~}' jK-%a(?}5owwކwn&/ȕ /rg|P8qx um8zH(6d[ƨU~q۷l|pwV'O i6TT_ >lż)/'5n̓xKL5Տ< lgčuFAn`[^E`k-F>aanP,"BF4 3 %I٢RT%T.ۀJv8*"ҍI >0PP'(bZN; ȑ* P龽֯olhE.&.tȪG6[Vqqqkx!^xQ%4Xnx?+ 1dHrX}oYe?zcaZ^ ^_CZTWCUPa Tn:J w91IkEԐs5z 58d[j㺢s-Z!iHa?-&kqqqx:Ŏ/b xw9lFd 2鳖Y+/(8&I2^TKxaeTʀцKlͺ2> Ľ0  7jh.衁S{Ь&drۭl&|2h13HAM닗,?cWjoaX֧+!b%RĄ_^..Z!G"qĨv8Q\TS /=G3#sG 4S11A"jDqAB!UӸ5`nBeUչ5|ZQ&Q 5Ub%bmb :D~HaiĨH>N𢶺XUM0ߊ8њ08Z(\4`(]C6TA?@LD2ֹs88; #^L -^xv4(bBxj,L#1͘@!0!# <{;6T  /p Y)S*9l hqm$L& _(dh [˓G!jC9dǻr892V...Ӷw]sHmjF}ۇ ܙ zU OMF-J8jhrF ;=`esw"Pș av7YƬJ V!RK;6P]. (ytE{u9=NaTj3kkAȘv0N +KB%`("H/B~Ri-i^\VWZyeWUΫ\W:zu^<1($E,)1('ĠzbH XVbN :AK XV+ܬbjSzX.Ʋp.HRq2+cq¤C0.ap䕈|$Mw] I؂.%Gs\[upy A`CH!ϕWX2ЬJ**%U3 Mm\RRa-.$ t&baij +sۤ]d,/Fː[iud4~r}o$:;uȨsF2&#v a4b1°7aD2ˌqg-QqF c١2T Y* 2*o eՊ_{l>/B}?wK%bvkAqkK!4Bq(^ 1*ub3dL1cC h" v3a h2l;ᶛƈF[8 }3dDF3Axn2D^Al22cs7|BFY)y{yjtuBy^*_^u宝;y{kQ}w^=^{!ps^ȇD(;?]4d,VZY|ːM=vM7NF7^ vߍwm"hMZUhd| 7RȠzKf2DDa"ןpv4[ 4Nc⌦Ɍ31NfH'3rF&5E!7CD ХM3^\c bnq+!:"O#Xg?0ڻh0ҙ مJI䙦̛ B?F+jpPn`W<"` V'@t&t)tlጫq\2@bbLF0@?֖W_ q5W'MF~.s[o)+x KRSM@Ѷ/޳C$|ۂ|lu+"P@R\T7!=աFV`׎H׿嗽ic_¦Hhc/Q&oTTTX5qeYȪx \';Yav$rjZ>Va6mK %C35gOCZ)K:d4 ?3$P&*]ıS<|B t)t,to䌫֗d 64Dw.d4]Z*Wݳ ayj1صsG@o'10R UAH8֔D;{J=d,VKrk哆xK.Z,5 1 **.!^` dp*rn0ln 2Nhh_IgV [(˜%s~~XMmE+dt0$8d(QȋC ::T! 2W~X2@\_^s^$_yo7k/侻4%.,/CxIbn֗~CxAh o}k?p'{?P|>myW*eEI hndRJX- m2=Ud@mGBV~D`!SO~#Ϻ n!U[-WBmA3& &8md9 }9v+&M4Z(AœsCkG|P4咑\:(ikȋ<#w9E3Х:z%dLVcθʈ6U|ֹ!q";$_ڹMyǮݗoF==*ߺ ?³) n(m=?rv]Iݍ@\RqnfryyȡJw.--BzmZ(K/g\s _Obq۞ wU<裎ȯ+ٍ|Ǟ}ҋ/&ؿ\ G[Fã:l2)lCRX]O 9 Xa8MrT>*$RL"&R\"'RB"%bI$R*HXF"e&RV"ec9HyX~"`DP9JCH,"8Oe$w:xhCǎ>|hRdB$"uD,&Cd f9Y`R@@Y-pLN`LRr&֖ M 1N"֜04jR?~rO {ĭ@mҢw$v$7McqLX~+=3y$ CBb?孞R%2IUE-l%J<^ڦ?tR1]yaVW%eXMy 7$N2aD7 ¨C BM9cN8xp ȡp8dꐑ&& #"28I` dpL^@>9LBS7ʁoci\R[YPmS-KVwV.Fij 22ѱ1ivUJ!挢f[# %Ff n0xg'[(JP·{iYoҬ9x {vRy9(K p8B}2c0a'Z  !s,@A]  -H64 ****X E/p-PUYX:io@VA]e 2"Yi*I!ژ7Jf //@K%:^!o#FiY+ql'I<+#>!9RXVKҀ M 2Z9L,KWsqE1u1ώCF2 L=d1Ȑ64aԖKGݜ;?gX4h@VQk(NޭjeqyzB@0sb/M02FtV+A2rSnD%!tICD. BC턌K YϑDB2a9m& d 6h~6 C9q2͐FYX[[l2A^ph+ qB(75@]%9xpٮhSahm/]@47Ɗ[KbY l`_Х2F<0X ȐO s¤ 6 CVh$19_ЍЙХбmcŖK&qnԤ#GvSn_~4m`,~?]6OxAW6UeX &gzv2H)זprqљd3gD0lD0ZX[[+ڴ9V1ax-LFf%C #6p_Ѝ]Хi%ω3! rD]T ̛C+oh}TTTDv}7M[STق38fhC}K1Q&"ۛ6)gΆUc;j,SZ2ޔߛ**jCZ1$Lm9gUV搥goJEt"^tUM)7&]^Rh2#+1D6L>nΌvj c(  *7=>׿7h >V**@F)xAG3h("O@Ȳa,V l/kgʋ !tSր3С$gl&Q-%n衵K5Y' l2"h h?‹9U0dxWȲ lF;E8;3cÃtîgw=o]kҳ3]iAӫK4VZ_YAEE%d,Ul:qr"چF݀rຮ^Pέ![Z.`B q+9Vr0,#VJơejcu0p&DM4F2 qZuOc c22 E4BD-@ƵW_u 0~ca kp?)ќ9qҙؚz+dzqd,/./V#EbPgM,H **.#"2x2LEVxN`0ZVL܍7ъ OfDA8ߘ SY[u 0jP{GfVWG8KA՚Ԇg0l&PNB3J rlD2B cWd ]Mw e +I5<7/tnj ]Ih8LΨN׺yuzCbuZ=CO'}\{¿~6#ȘYC -cCLqbY.OƆ䖮2dZ9'Z9fCZ~hh}c 嚜mtǫĠ_b98[ GVsML 4Q 2i kg+zN\6 ih~˗IP;n|uQH$} [G#ix߽wCqwέ)О|=xMq-7862!HwU!e7D0vq= ] go% M%ZV s1}ۈvj{'?|-7w'^k/g}.K!}S3,@2B׿ 6}mwj| '/~~`>d@B7BgBv+ `CHL_H%(ճL ( oфkW? Z#n |B"ALMi9(nԺV$ʰR."M+@o|>)ɨ'o;~n 52&C>! {a<Ѓ賟s~e~r:262|mw0*E Т"3KŒii*rUѱ4+ĐUf42ĘgHǬV3WPRGdΚ.+aXX #N!8ŏ JFWpw.4rU\%hdA/_16qhF6 [Uk8hNZ3sͰ3 ͧ5<(.Ka$+GS5:CF% Й@'!!LD  ݗ\\f29&٥An99O_~ ᦫR@!B94_9W.9#瘄 \k#hŤ1 RCxӼ__[ YPy'R9|p9Ң7 Z!ÈA2:d@iE07q.4rdk f[Ay_~٥33O>g4|!dOOU~/GQ vy{HBq6G7=ȤqZ3yus3Qvē׿u(%joǞ}!js^Vڈ 7'y7Bxo'vڙ{_]Kygzo}!>q=ԓҩ;~pJQȠzKe` 4 Eyg0T]3)3$<7F7 gNn \05gLJMQlf 2:`Ș 2:-v^ W2EQ]iErdI@` $N2r:<a E>ӗ^g d'?θ`Lr %w$k?o@Uo{9xM5QDBvwP%Cn{oƝvē[ޡӟe^վK !@P>4 ~wS {.4T) 0w탊s`?.I'pN]KrRPȠz˓aвb_1i G'SL&Z Cˁ3AïXYk6-60<a; max%|^ J\śW7Aq: Z^9-LA3+?5<3 b8}u=?#=!MwƐ'Wo#TTT]%/N\d ͳ xRtF(pFyQف|l2mrc8G(F 3׎\?Z[ *vΘK (#6DqO=F&дqZYxw]g*vgUL RuO M {3酌kΐ1;9X]_Y֐qpmeVPȠ2jaPfD9&.:$nš|dF|P{3S!뫕ZMaDsMmM>[06CƤ0HU d'd6Ak%ƾC/Yje\.E=vlG.=rxld-KJaY* \h2F33ē,3B/&9,7)&ޤԛTzjC !eXg4@EI7&KX(&ޤߛt{NoMZ8ޛp5d\7דoTŭ-xD&!p"l-9"(.4:˧\B!c1dc@y[}: V@[zkK8k$,#* V2\(9mpF2ghO(#ǭ.>V Xqodˆ 20LRkN+du`Q9y^Y4ј2<"sӠd@(t0d >᩶Eߐ/QPs?vDJEEսjawr MEcB>MUvL eŖMm<$ =IIr=I')$Şԓ{JORIjSF)o\R=ai|x}Z7:4ۏ d'Y q8I=I'VOIҕz<*&z9/I%0&Qxj@ 2>Y.^2 @">Z.&(rBv 2$_ݎȹ*% **I{n*s|!r"Z:(6 gF%g;8d)(~u_3eӏ2o"& acc#m v2!Cl,H[1ޤkJUIb&D7QƂ@؛(H7&\M :H>֫b(22d^9eBf@wU[R2JǷrSQQQQQmUA%KV ^uYM͵Mߵ $3Nz $Г{ROBI(= '$HgH#///WEB{InAˤ 3db$D'QƂ@ؓ(H'$ܞӓ{f +jJ<ר*64!#J2T"M%,6,d+}%EQ]i'K֐qB9(5˾WtW.s\>el@PlaZOh2Lg$^ #P"8Z,$H8Va52'@ 2S"/J4 <1.dž:~>eȨj"6/^* [QuUMˍs!Ȱ=- qf8df΀{'QWV0*yma0RDxDf m ecKӒ*b 286r62ڐJ"R Ș(F!\y2c"ᘫa-36+&o3,QP=#(8a10alƐ:McCJMJB_7[s'K!cNj#I W9elGㆩNq2~OS056u!^<-ϧD'h8d8#C Lr3 /!4F;Hq4Fk%7`0?9SƈAF $6 cBƹr# ϡLf`dFNãk~lŤxo! e|2u2#n|d{%icbcK$]k%Pa6d%+a l}SIק1O4qot c"]L!#m︖o~ȡkQ>P**V5E/l6,MVEN`_m+2'3ºo.@ u I4x`W<%^Mȯ&W Մjx5ab8FZ&Wޫ !!wlLT\3pXzPU0kdd4#,ԧ1dSI]]t*=T-d0`^@b|csF:~@[:Ȩr@2QQ&<0hh2#p ]r:q0L NjC#d@U)Q+( "¨C3V**Y1!?MUVt Ha R}\Ð1<-:ӝOEEunxwt ͐Ec\y@oE }39tW\P\_y.,JBR^IXel-$V GEHѤJP9eB a"Wd}#-³|">؝zZ,'%!ګ` ?gs󳝋~JKB>]ҙ6tYjga?k&zq 8CkڕGiK<+ \S"}])dPQQF]۷ KSTF\2݀b5#p/_~| ?JG#n;l0 M&.h7YLH`/gxevH,00A nw~<뮽k֛od_O7c`{vߵJB>C5Zڄw]!;426NEqZ ʡO HXS놇$2TA`~nov2u{aC+|BM]TdXMmz"{L{YuExgr l>#m 58en+,S#EiLF|2#ψ4["D3晌dT)cLFAUyhv'k%x6жBvE(\m+9u-V $&JN2lCAajmӓQF.Kتa4PgG/zM$}>  lD |'])^{.C `}|9֖iZ[}/awpU3 TTT3Т Yɚċlc6ʼ+ NQ1dVԈFg5ք3*rƬ&0i,gf1?塙ŧx4Fq2w_:56L.=cy)]Kkq @8T-:Y 2>jD\a5<> \'y߿k>Dk)pɶ%#p_}ч>ܡQ;7 ̭7||`Qtm "jcݗ ȥ'{'uLmav*J>O| ?޷KǎwKEϦ%TTT] :j("͢E& c^}2 )78X"Ayd+ΈF[h$# cHHad袡LgYmUh 4AiN\r̷, rL$xݵGyjaf*d(Gzҋڹ}wH %g 3#1CxdxE6/ ]So~uC9^DtK/{]D{`?T޻8mo{gIt#z .:T#jr&P _wgS4x o@DS|ǧFKO?%6 uDW9iQ -jj#Il02LM!G2Lv~V@b@`ts\g^moRacAPtC2T x" %l>!޷Ё &CɾӨšJͱq dP5ivj: ó rO~ƒ|4YmRȠ:O3 E" sl.+e=5P-#p"6Ycv=glEĝ0P(Z8ÔL]6T@F}*_U4Ʀmg0BI/ܵt`߾3 \g:CH-,,NWkd.תB!LLf/3j(q,Fnagi9N(~)t=sdoqx ( UްdPLM1T J14sQ,Bسqnũβʾ[̍^_[^zth}}dh-L-:VP(l; z~`8oxgۉ{jͤ;|VW]޴eTmC0dChBc#-d sxj>yoDqԷ,MN%0dUY#xv#dϫ./VקkPW+JEEu&Tp TDGY slvAWP= rI 2Kg =mj[k:2ch!cd1_B1% 4  fBcP7.2dK\CFTpRmw"7:'?vJEEu&D]˳d&}2s\>ch&x_ J -i 6lG[#UmtZmCtd]TI{9,4>LƜnuhB9NoGA͡0gY*rȬ!; \P%NJ4A{L2j)eGP\>oj'xB"Bp0ݵd(*k3; :F獅3hہxV#f TPB7(ڠ0t+tC&P{acLc u{O(/Ae]Bd &gG;@%2!yh}׎a?7>z6rO1ՙPs"pF3f@L.c @a>#9T!FPm^2S&I̳JAc8aM%oȘP8ئ+?vx}muy\,M6MEEu8% 5Y &8#h**33' 9Yl]mp1%.4]F1 rl>PUsPtJv AFcd2<Z\R 4sۚx0/U瞖k?v- )DM4Ր3ОBfaafzfb<;7+SU hx%`acY$,`aB.a@{V5esYRhfv* 0*AŠzPI*TQb2 $qBƹ!LvRX=g~ZJ7 G Ex&~vrbnjdti>}pq#J8aB ܋ A10aB~aAPt0O'A '#x\(nNrC#rXm52UJ2Y l6;7 131<[4 @4jqhQa60akr( շat #e(@ 9]_Ncn]rCY鐃g21OY"[Y)g р ˤzgDS?eH@@fvF@G<;t:<{ݐ⣯EU߁[>baf86p#2'Z2@"d]xT>w*p׾;.y66ȈA(}#v֧??p/v>D12Rs/1A;j.2l!3"e8 pGQ @n" Ul/^B9 AqP( j@S-z `myw]sǽw0TEG}\;DFq/ٳ{׎o}VF A ׽w(9u^6M<]SŐ/ o{@bjC@䙽W\NHhUcgNs`c<|y Mk@ZzeRQQm]+ΰ +"r2dhnaW&r*;Z T1c8`U]d ܎2dl!sҦɈ0lytK;8N =%x a?ɏlRtKx G?ޭ7<ÿ˞&'?MӶ9AA(L#_ֆOÇ>E쥟8]4(⏟ǚ=sZV8wm3@ a(Mw)dPQQs9~mC5UI#SLD16<8963YgT05U<\Ιɉѡ:^LO۳-dE@APv#AƑ-!TıԛK9m-4*oxυ(@>!L"/ٳ[昦[F]yyni a"roC wO6M<#6FřD> AA>! ?Ї!Ѓ>'!tRmldn a'ˤ^*:V` bak!K!+|PC1#!$pK/2TU} őrG}o`0;@Dr ˟\].*)B@y2閶Қ e%.ґ|BmyFr nA(Lt dp4!I»/(3;} {Uw_r1iӽgZW_K@o!t5p, h#ˤv 3pM4! l~?Bn~fav 0hbtD $ĹYnL +M` aiJ d K&GhlkQysc=x=a|߾HtK@ I9'=rCi>׶iy{S润 $av0_55bs3 y޽N n? <6?Q&gYoZ:@ZzeRQQmkN|Biʦ,"pBg\63, AB$\ -p#8s dmى׎-;erd0<_[nCIsvA=7ɽ繿>>ItD.EDibW===vE, EJ `.k=_dٙ9s;g|c#m8y-֩F9m&2.F\(/-TU)EFmueEi # AMjȪ ee?[UDLj!/~k?^ANHIdEY ?^n*-.W gإ&E]o彪]UM a zDlZGlrŎŅW/7`hyQ؟D'j{`uECADo/m]dЋ K ܾ=έ[Ң*AXĕ0 S/|lnl{n߸â|:/AQQd^~r PWڋ;7oܼ~j'Wb (uBQˍ͍(267=yjBu%Os}ݣcAˈE\Y`}!tM6]j/=z5@X.4VEBSׯC"  ?=Hd4TuH!^pqE,vH <~ 5cCA(U(2jk.UUu5U TώBq~A"Tv W|o=ʊ!T#>v .AA:+"H%&zMck*d!7 咻 dAĕ6)233166޷wsy\`s ,ӻ ÷6=+j"A""Q]^ZU*tCT sW/_:ۓG63÷̀ġ ss2倭ݹC S3œSrpX(2AFT 2K*K$r@K"scL<.{XScGG{8116rsun$Ud3xYrvKzRb=Ff fg@APxLJ\Q&.eg_}_.M&Mt೧]NsSԄҢdꆪJ"m>+]c'0o 3gx@b"FBp&D_p> CC= 'Mب^ 4Tb9(2A.(2Z%rI㒌eg~>N; ⃺R)ȡPfVr( 5r+%,bQNZ,!M8}GZd18CNTRdLmc 4p_8w"W< HWq%"H%6dԄGb@.472*-.:ur ъ!l%)&q 'Ad'A&f MNXWV*^#~='#Uby9Y(2A.'22"PEc%)9%NKoQ yLSZ6e i|6K\ LOI M SL*@}*Aΐ6 /׮!-CIHO4ŐG@$@:d%9eI:~>Gy}"wA. Y&T 9!A-"C\TR$E@|ܿgСs<:Ç9߮Y(ɞ9mшÈo\] նM_S7 "9AT)/'3!T),4$? iXB<- a+,椧҄sҸ fd%'d&9ڴ~7=E R $ ԉc!ķΝaFr#dЁ^T  (+.e":A%rNW b"F}ĘH™3 y[Y˃K-47c&'^:q<((ʼnv#iea+(2A%2[Ea{QZ\H#24"CoA ti/mV$2J EJi. I/)* {e\(2A"CZ ,|B.-!5BmQd  xFdڱbѣgxtM "gg" HeP>WQǕfhhhhhhhzcwnݒ]y -' Mu?|X(rٌ"C_o  4޼~' AAT~t#yl"E  j? & RdAA'2Qd  ] ]BPJdz o緛^lf.qK\(#)&E :|rSD b|0n+2ғvzPAi_?^)#1^`s/75VUW!R"rsXaDd?tB9vFj>  G+?|VdR++j*+ˤzl `vz CAAF_nj(Jڒ@QdjbxZtƕF0*sN✢ MA͍%2iq[2=ktXK{W DrSDRg|E %D\{ʁimiC Ƞ%"-1 m'w$[j>{).%BRX**'#վOonV:IWnoj|t.dl. EX$.Nggfʭ%b $Zfl+Y\PȔI'4ޗ[*.3 *JjBJ9y¸c|&˼n'>԰t&Q E|N>i^VڸV8BKEFqQ~Q@.Y;ieyE  '?ecov71'c<'E%8, 3+K NN&HKfjl4Sw*2t'22vO;.kYD>ېc0s5RpB#ᱳ4(Ȁ'e@ KHc׮pa,~H=4k qC7Czh:- `pyw.Cw60NK[IMȶU:Y eEdƌ~}aR —D;ӯX%^[>LdtOMNL3ñayO$hO"̔xBnYg|L -,Qn\AmzO(sw@^dT& 7 VuRnv$7D|ɣG"u٪P3W'%[tޠK_Zg<ݿ%$&Op6+ ֩; zz$2&v2V%D_A&O:0lڴa=$OCp̅:&ӧO;ʂ *޽{}ĭ Qâi޽ljkk;P5_U4(2T}s7o~6nXԭkEd=szD%_NLLؿsygt碅 Ξ=\m԰teaO?uѕ6 È>JJJd63:9/^lۺ2v?Η#'Jc:Qn#J$*1PC>'{.Ta]@csS<,-<(8nݚ0~pnݼIޮϯ 7n@WD{*aaťaP6ڪaa{vrsE <(WfC_`(oB-ɱuP%(8UYp< 8zJ >1ut!i+\ąP,|=>  ]?;QK2jSVd)q`gɓ'/!!WpJ6ȶqÆ+߹sFׯ_cs۷od4Vϝ# 23# ӦLЍp?ؘ>! z}{|DTdd>Őذ~+Fs*A:͛7z|2aNC(eK@Ş>} D!ȕ r礿?qqر1Qq*+hq?TQ?T2w1lV PNhJƭ7&Oʐ&rS1$ v! gϞ^z/2h@7X[ǔ!βgsjànK~ #NVEFa!ӿk1Qq+h'V,[*.(64<ǓvC>C[u;'g҄ aO"T]Q~T;C<]=oFły|DVWVB$Addgn߾ 訨ŋt=%˗YΝ;0ܿv˕#BsE]>mi [=bjl$}&c-rۥuvg2Ncۋ<˜T@mpϛ>5,̟Gރp*޸a]màݖ"c{vzKZB[͛\Jμ ʴ ݐ}_P ! QМ hbd=|;6"TRV"O3T C[XZӚ$ijEƺk`bԽĝ/_ذ;ǏZ YRRbcSrWN{"-d0! Ww 1ZgGwɈ᮫W$? Pqca=X^^~RR"kjj -T v[~(s0Vj) mB(n1Qq+h{)64<ǓvCP7{>!-D:x3Xք E7ࠦ2TR;Naɝ{!?z;MMMIKD@!rb-& %C'+Xuu5_~O>x"B81^GCC[=ePw?"{0.?ybw+NY[[s[utԸ3:.(вu7~v>cbdB[wpprJ MoET\$).'ȸ~ O<} 6Uu?jcppuB\zӻ,yl{>}ŋG׳pu=ؾ[7}Qˣ-f%'eۖeCw/He(A5DHT\ ǎ@5}Pϟ?_IO?ľ$yyyWThMP3" E(./ t"ɇk0=jٮ6̅orNrO @ PМl%aVygzo{Я48 WZРyZ9 PO Z"a>#[DƋ/n7$Gimm묞ڰaCjjjQQQEM47J@&- r:/"CRȀ!-Pi3=-58&&(Ώ?y@["#"4XR$*ȸzO/}jm;ʤbq"Hv6zT}h[I逷KpwnxGFF|xB5 Ar)_UuwmmH܋H[xO7ջK5u$گCSVyЮ ή k@m{3i„~#"!5T:hEdĘ窫KE>WG$9x8v7 St/rI!za!AI/׭1[TX(Iûa>pnߺu \}-MS*2Yf%'@ٶu x䲑Tr/Zxqc :0χ9;9*SrS+a[rӶ6=Jivgd޹gN8rPCO84"Bąpg'B*jN m4}njl41M(oټuXP`(,2NVzH3<6 *|6 1HV)()SMM`@ M6m {vODӅT* PІ'N/+Co6s;ṼtL8KKK|PC?E?O҇991}_VWQHG'4)N0?w7EXv +~Ei # ^= ]/_۷U=hKd\VjRhكvغ QDbT^d$I*2t4;Z{mŋ N t?;3-!..*QD0Pda: EwpprJEAA.W qSRhhhhhߔA"iG!mD"ўh@"ѭh%jVO}%C:ni~Dpw444&K4BCݬzj>5ɓ^=ɷ8S޾m[>9xi h皗5%ˡ[h砒s2gOhqd6pwYéPd ꈌ$DEy{ŧD3/ZHiApM&s͓|9}ڵk'Wթ>޽ؿM <{F8ջzǩ:е3UѾ$!vFc۫Dx; bjlDL^IS!m8_>G~~0r26ڹIS͙$Wթ>79ia̤8ջzǩ:ȀN-ǹT]TQXMuǡ_+ȀS<aDwߒ28777gae&VL-4l죞4yْ%0$o Po  N+֩>WLST9i瀆jljS+ zǩ:rVsc}mMeUE)*u5U!I.i=|n17t36=aCZ[vbj9޽c>iہgz#5ɗZ 66duP&,ՇvNdڙ߾}$8ջ6NzGh"T]Q~TGmueUy)DR!֪1"1?5te h{>ZJW2H;F#;׼'_j9}cz=Z'm}֬^%[9"y>H;2W2pwDǩqw4hyr\Qvbj9IN+7u Gk]PɝZkhoK<6^ȴs@+]%SSu,=eQRI"#IZ) --5uG[ Ѷ+R ޓ zGC"C*. !*2$Xd?/ZyeUHuZN֕EP\(IQ_813626ngk;w̜ fH4.ACCCCCs!.5 GA @b`Pi`Pg`pgwǎ2nBR2R-Ya}*.DdxJp'  H{qZ#蕘EFqa~H ݺI.-9v̦3Μy?-^\Wy˰z=瘙鬌1>LD8.jŲCpCdHHr&'C"-5գ0_^ÄڧU5<AAڋ{A,2Da&&M*8~„˾WG2zt Ȉgaqΰ: X2Ӓ׬\1b84a܁}|NcNC9ٙ\;XH׏\ky<6,! sgغmiE% oH5E?VrmmAi7wBtgfQ'5! !i`g`j`m`70(00(1020h裊/1dGzJ"47#ƆD"C:xcnZ9Y鐀%!p( oOwPJV"C8oE>vCi kZ!FP:R]W]yD84d]C{pmA}#蕘EH+D\AEG-LSeV!L4$@iz.VTz@TN#Qz DHc#++ NU?~O^Iy K=zXfXV>}V!" X%O vv!2e/z}'5e)]f"3>ÒSȑRyO_Kwu =D \Fz{NJ,F8w80ppK#qv%$s9@p{^ICb([坭U WiEQ"#?'s3vm/FG@zS'OHMsb"i|ǬZfr¸sP,,%DE+/>v?\HjzWrdp NHȰe+WXUա,Vn-GC"T^<˶iCfn~no@'ww OL5?s)}R4жc>p:M'^L8Wl6(XhʔƯ SkNE튡ow*bAKE4EQ"C~mC"#-y꤉V0>̙6;ҭeL6<9" $>Җ=EFA QtUF 7'S 4IAfw#>:{262?h9712r8@t8nE^QT(߃QDz䘉[O\Kos8}$Ygx~Ӑa#SjeV~~}r}_ER1lb;v^(hKX G2 7=e6ᤖCMd-Y '2n '-XmP\f٢Fxv{GWl Ca}vvtB"nL/3Vlq+kkE.N\pĨɳ63G8F/~s<p(w;(ƣӖ )$@p$[y ?Xؤh[J" AR9l1ң3j>eB2;`@aGD특}NeBT4&Dm(: cχ nm‘NG "#"4XR$*VP2X\(H'2Թ]¿b3y5e:jm2ķd">DttC8e17 rH`ؚ'jKO_YeI'x v2T{O@W/_Q~WCa.,c%-,,tLc28fĘɋ+$`Is{PqĽ&͜0o߲ 8cGp mHDd=XZYoU-Z,-C ):J:;pnU0)Y]_$l0vjl[JZUۆN u>\uUyH rOW}TLZ HB<u ΕQOd 116ew[2"d"C_+.!q!K=6oNE9,vj ]6?o|/re®*Pmsss"}Z+kzjyMI-࡭ԍ|p aҟ'9_?p`eݓqE{(&$mԊh535&QV=;2z"Q~{-g/pH-H@C2 Ѷ+ۧow*l:6tnc4lK"pCϜ Y 4UY=!DR.Jd:",1)0ٟ,`݀a7(^( EiH>[t{ Nj9$Ξcdz=SxC]$Z2V~C\`gKh?ȑp|6Ka2n:!'Y_}>a&(׺`Ѷ#={-Dg055=Y)<{pa9yŃ9~:'.rp3s3'!e'iE ߎ7mo!?$K-JԜp>Ӷބ"3e6t(r͟q]=0+rUթ|( >I ~BWKΪjt?b">t;nBTуB$U? ςJcahێH>x< bvyZ4ćaf&gpR!Yyb㧛A>U~K+ku#l˺WoU.Z0tr?Gosa@w3 -,-zc#'݄̂a-B`8{(pOr{ 9xg@ᐘzE@m2q8}LK==a77dAD176A𝷚hB]FNmڊ7t0Q&;PJG=߅5n.O9d(r`p<2b_jvj9ߪT)R`U=^'~5}e<ͻ Z8Ad: GUʋ ./9IpӒ16Br4,gͱ~g#SWPo]8y9ǂ;.^|Wt"_V8A:!?WOY r">Q2?PYdp<~Pr2r%2fo׼2Xe "C{׎픸x.a@s]\nVEuޓ!@dx*$8 Ҟ?H,H^z hhhhhh(2HF"ўϮ 2W,[MչpӤ!SO"fV.ݿãu]6ېV" o|tNN%K[pRi'Ozee~SeCfÇu8v PoeiA];O Ф# PϧOʂJ={9m_EC@?N;h]Md\ٙ@h_,)_[͛v9 1lӋ-$%]Pd[ )|5jzn߾./?/왶}.Z`պF KWP!O(2:ȀN-ǹT]TQXMuǡʈ6oݲ_e8޺ukqƆ'47 81Vbbo/FݻRtd8_>GW,_"q`PH1ܕ9yĘh&@@ŋ۶ncذ;Tp03531f?~lnjŃ gza :sL FauhQ(+Ch{pݼ%_,&;žVm㌍30jHdPn}*!azp8(j*К߼y~>WO˗/C64t2Zd T e"W28tcGc{ YQ#o"ǛML\dh>ZWKRD=j+K!j "ȐbD 1,!M%}lUA0I5P ޽#0jlhsÇNiS3,4L:isRQM{X*Z!2Щ@m }#!q16FDefd̟;sf雯!={L+KȠ807Pc޽u~氐%T3z$9;1s#g." ²}6涡΢NdرM 奒1M I~j,2D|#z# "̔x.DVFd@7n0IaHYCi]awilh NJŭYH X$F_ɸu&ty~jM=|Ϟ=^zv_~4mSar5864Lɇj[LñP R9&k+^"B2 v Mw"AM ueRqQ^sc=DRNLȀ7o۷xB?ϛ y`]X.?OEp:w{e}_P*ڵkrO !|NW(Ü66M~dBܹ#BZ0;wlM?pd^*2iҩȘ575&h߲%K<=a7nE0sOV"c{v_tU(,%oټuXP``1]F(O;ϟCC%=/})2,j{%ViRI"CR&$oܰAщ F0ЯVEƃ/]jeikўuFG5v?<}dSc#,--! ]Z۷ohC[Ǐn g YP v gdpիVgv cq ×; 隚H DmpZm*j~(k|!H9&iG`nj҇A"C*.hNxJseƁ)R`@*.TYdH$2ޓ]^U:eodtׯ@ !jn/^N\@CC[!).4˲Xnǣ?tYTe2U"7Qs$E q=Smn}}VD^#C`ʊ mq(/V444"QqP 5ہKs 8[]ۋEz8ٙޞ=5 :Cg2q4444N,2 EMqygɗl48Ɔ/Z0̟7<&FdF#! }!Yic|FAAmT.f&'aeE s"@6[O{wV,vv/ |v ˙ׅ.fx{]"Fyz8'2L0ny<6,! sgغmi"ρ}|NcNCP7AeӜl:H'3T(2к( r1}ui"\]mm DDOfXz࠳ǎ > ,r!KHC"Q"tUAƆݩH&ج d@CCCCCA/2D\!|T VF+SVNdjբ0 9}br"b#!q^~"ivV:$XiD.7WOs4'%)^&zX&䦉D+(Y= z* q-NMS~w{>ҟg?qwF EF~O]3}vxtda+#_+w3_}3׸=}xh0$O4,! H&Yb)͂qc 点KNdDmb꤉3fdM&MginLK!74tpK#'Ū"CLvڵ);ջ=MS+,2pw-2`8:"C+@Ydt͙$MCTݿyTvÝtl8ջaqw'2"B%E2I1 )Ņ"zdv N˯4H0;NRXpw u>\uUyH1_BUR2i1D/,$" TZdiMdtM%&"ͯaw'Sl8ջaThAd3gyl DUlDbm4;dX)7;:ɹ4GvzW/,qw JM :{p[7!qA !#2wmHT#Ͼ~3\o trN}zW),8;yzG("̴DU n=PVdkTZԩKJJ\]\ }˓p vޜ9axӃ,g{ǩU NNNցDAA.W qSRBSCSpw4..2"K,6{m zGCC@CCCCCCiDN"ўH@CCCCC@CCCCCCDFEZg">6~v&*7ڗd(L 4444N,2Sq.UW67_FT"VS])q2B?%hhhhhSdl~QˍC*" 4444N.2X)I嗪+*JzVWVB$Qd|;6"TRV"Fw" TVdQdujࠦ2TRD")'&ɒK(2:ȀD\Ȁ U s9RI 44444"C*.0`<>{<88h Aȿ /^̈́ tJB DEZgBq/eܝ+SWNdaepe` 50(7$@TE%vrNy`ޮ/jdf$Eb|& k q@LxB.ub\/چ$`f~auk+o/nNdgz{znuJz0?@囍zZE]V PJ' kBU{wV,0w`KΈ4,ʈv?h<3l3ӓ=Gyz4xMNDZjR{Hdey$!qϮF{{1LǶWt"Azj2!W&FC d޵|MD.ACCCC"H$(*&;5IOv~bpꊠxlŘHx1*b ~"ä VXc?w!m&ط[84du9ٙf ;{]Cbow > ]7gQ.so8d0@"^d|eC?^_@Op"t)AgǏa :xOd47J,! GA@TvnB#iafL qc}fNpH}!٢li 2x 3 0W#b{Ǐ~͟d+tqظ~h/OH_?AvV:$XiD.7WOs4'%)awpNNu˄}zZYr,䊥C"^d|ƞ2[eߋ񨒫@Wܲ铐%i"1V,Y0n,\0w]o[X'O?u$>';.&<HRM7X[ d(|꤉.C98AdQ2DOK:r{V;voU>8sJ BI#\M݆''\$a!AnjdPVm0g@vckڔIW8 ۳ηȝcdmekμk=ߓ" s rsi"2v Z"QڔIBDE91QCUWJ|n{AgDvI!za!AIG EJ v{߾A}7ؽ+)E uF˛=#A81a3RabzO,\ G_DyRen`8AA  ^&A  .EFJq5AA.A  NE.AADKėPd  Q"AA݊ A5M:h߼ly=3b&%G`:+gN8~UoԠ@шU~gs#n|D@y޼b}K~Xx4lg?t:.'Ŝ=ySGw-9=iO+tmKAT\qc+wёg~Ѽt1Ϟx/ׯ_>qK5#@C9tʭkō׊Gx]xɛ?%o@Q a.}k m/,6}Ե_f|ɼdCQa&Op2HBzԢ=(BA"??5:s!lߴ^=_jWϟ?~pٕ_<=>z/:iz 2c#'hr2RX˥L+ /F{ E LOՙZ!bY)cFytAA&Q !ݖߜ93fڬq|jIBto#\66m\plBm=3JQeƥh2O|pnAԫSmVjҊG-d8Ǎְi(#gh7Xt&5la_:E}hQc}|jf%F/7{ W]o B5g;h\B<)H=J gO峧=} ^=JBxDW{vmS1ޞ&衭eK֯]2x{ be ,H#=mڰ^γgٱeSŘ|[㮕) Ji_qgcf;IH~dh4$uss}v!.{rh0>Jf&iՌ;(}7^oi\ Eޕ" *6DE%FA(ޤH]X`]E@ `L B/dݝV\4w߳3FW3A̙9lDUEYz$yx~gx~8K/|r da Dy%^[Cɫj;EqsUU@GzVt Ƞt,z4s99ؑc ENsD 0;;%FD]-+*5Aq<%d$ NaA(!& 'OÃ5HW޼_/G|bπ{ <-wK0uk䀑01FР;Y b-N`ydSΎd1o↧iIa*]0ݔ~{-z~2wKa{+~eտ>c{uvޟtjWfM] پe2%D ]83gu5VPF #'(()z^Š L2"hnnnyP=HKJ04FkE:kVG;@&@ xuvU7hhn' 'M4ֺ s ` qQΐ>uFfAkV,jR\p7?JEg\j,|w'ޥv?@4z!HyO 72vgV.CNwLʎ $9ɗC0/L'$%䤥8:j)G#D7ʾ(Gܠ{wy1LagsR`mM`>gwđC{QNr<|d89Y2_^f,s|et\9xZoyYYY~0:z^=/8ĽF1\j%ʄ"a DEge?֖=/ڛT _ N9G޸`gmb`Z לlEco^ޒpEFL}=~p6ڸQ6m YX8Fٱ_GhijPv45۟ZE,cMfSǎr';HqZX򌓿w$vm{Ϟ1ȄU12C.׭^em~ҳ}Qsfɏ>Sq0OY@q2W ?7i)'A&|n)=_9diAQQNAg[yD֊>]q`x,N~$5`?o2 q}TU98!zX-2@R }fD b!eMkWg{gkKͣ1ע"#"#bܿq #Jo@fTXtq1!WS6$F+tsn:y0$ 8rM LTUYF3B PN5ݳ뜕 !ΉpM'D irwlBn3=  nJW7gH+~Ͻ),#s7vN"t_1!77w]f0UW x[{"oː<(z{ru! Wd Dέ0^ OdYnnMdhІuk ~>a DY?>n,-_WKWg=}zʺmFCb=:K#Jo[9kTbpzX-Yݧ)Z-%?O7ʒEt Z<ƝXk91# /Ž"Cv$5?oǵi(+&DG > {#)!NdS  CSJw9hXB8![F\E[o)e_tbh0 xB[;WM7x2e{%tS , y(?՟?a?C/{䕡#moIsW/2 x,jL@a ^SB02gDdPV3>N2i ~#2 q޽򲲲J?HN+X1Z_C G#*(fr7{.7ilomjx9uuuoO>.򀞮NQz㊓##yjZJTaC5oz3G1lcQqQ@a\rv]"xE ךڊ۷ѴgV"#E H`W ToQۉ w?D1˃ܫM+v`8Z%K  3(2A(2APKAǝ AA♌||&AA  "AATAA~@Ad@EF>d$q5`w.Aay} 6YwJK~[qo]V ð AAT~f9I*JJoԀ *0ۃRm&w! H~3 ֵȲ[wJoݺQĀQQ?\Dt tچ13)-)-FR + xG5V*u JetF ]>{gE23Ѐ!VQ`Z,|<?~qMMm]]]}}'O>}s_c] "#3%n7 n30oIeegQ27|@8HH\U6engC~x5RQ5yA5v܅  Bo2`hbR7|(Ի?7AD~uҭ:=[J^ 47 EFWjjkP ECChƦWss3{A EF~)(*+a`nĄ;5o68|O`!ʾm"HkcnGpVQA.`4;-=\od'i]]l~jmkbBcڔɒb>] "ЯK  l5 "c=Ή^|iӏk)zy4gH/Hׂب}~¼>DN\UP[$Ori_k;t/$;;1u*YL&'YFWa'Nflw㞔՗6#eO 5,vT'.~z}#<3#A$ b)Ib|lxX nUAI ADy37+=;fÍ 2>WCyw[6>4ZXH3Vj );$Dy 6+J2 a̖^-Hxo6hSUzWjSW[#"CK٬x1ԉqr2Rt c-԰5?w! DFvfZ&|pSJJuVmVM|:ѳHkb!]kW鎒$Vd',2-6~9O2⋒ܸΆ暿z+W?_WA,5?}rׂXJ 3V=599fѹE\tTFknO8:ij,ZBATX2`D$N{lY-'!/Ѵ;qt (Yjn\t$'91,؟#)OpKIJemq!"R[G8s;LtϟԼx񢫫+%Ԯ{UvvS,:KSi)IWC7NN <aS9r؉d& .N`P-!?w! DFfZ E6m"Crܴ. 8q7}4hDFlKJWGVZJRB|Dv-c$%BӦ!s#B 0 fK!TsYN=olxFT9ל!hoK׈xIq1 1Q z+u|Cxრ3F9W.O HK͚9?VǏ͞M=soBA7qyD,j!2ɠ[dH)rDtp6g/'{N?,xa0Ydi)||ssSs6Rd4fMv5 :w! @"#Wd$^y7 ʳ56:x 8v+H`P~E͢l0_dotⅦ֖6DFG{[{d?Ê0AD@ZĜ<Dz9>^e738)t>x@}ƂTM-dəmY)J! t4zKIIb8_tq撓#\Je'2}7 ]tBAA`\" W._vfAp,0>lK߁AOrzEFrN!lN +:ʼn5`Q] ')9"#5;Nb|LxXXLCBcq 0+28Y9 rR9Ƀ0A|Kw! ^@ADX"##3݁  pb33zEFVF:zAA`geq0Wd$N  FA^qn! ׏"AAᕐn+99AA9 xOIQ-8Gx}c}-u  WYPn-Be$d$pY sJʼҍr_Sѯ^ AAp 4o3LIENDB`ufw-kde-0.5.0/doc/CMakeLists.txt0000664000175000017500000000014312270515626016017 0ustar ubuntuubuntukde4_create_handbook(index.docbook INSTALL_DESTINATION ${HTML_INSTALL_DIR}/en SUBDIR kcontrol/ufw) ufw-kde-0.5.0/doc/example-1-general.png0000664000175000017500000020341412270515626017177 0ustar ubuntuubuntuPNG  IHDRݷsRGB pHYs+tIMEN`bKGDIDATxE޽};;o@a!@ ޻`h@8!! ykIm]˫վ{oJf>ɌʬȈȬjȎʌ4眈ȉ)2ݾŕ*4\7yczM#yγW]Ni!RtIRG$%,$[_VI կB= bR-J^PE :&^詊 E%ib3ȉ'Z__Jsv} TQļ%$iW=~ӏ' =zS6ꢛ&$MYS5+G$W7|Ñ vc LQ8C PP &.BZ,V83P˭ qpskaAB(lB[kgG[DuHlkh P%.wv ۻೳC:;:t :tv<%|#]]G:z[#GE=zcgѣǎ> pX7?}1(>u :~ıcq?:!'NӉϟ~B|Ÿ?òP?O7?7OaXKeSVܵ'& H<?8ԟO$K8eteʠ\/pI ݍ3\ŗ~A~5GRP>;;ş^q3-]-QhK]3ybqxc'orD%A|pГLJ,c|fs#x䛥@lW\5,vFlvOdhdS7S~QUekHou1J'(֘ͻ6hMBд)HQipw&/ݞ ?ޫ{ < R!# IPL2E3eHD4\xf #a( C~bgU*"GG LH2F e[#CF&2dNZUIE!mc3ڥDށ5gtHNy!aZH,t!8hFqL,-`;1T [{xjD~˴6O8@c0)`*X`l !x!EH\UR D)۠K"?$h݁m8a$$Ľ-툰!?"^K ăaȐDL`D3r9)^% C!*"H>UnlAޒ=?C~/) |AW 2! v}fl@bWRYU/@Ɠ%n‡q9466 e}ck++Z ՕPs g dT9>pfA~xdȨS|!^'SvZ(ң^gΌĻHŸ!93O3'ؤV93dɨ!Cg K;e3hQ3"΀B>D'ؼ(j4TPjl3N?Y1 ?18!S?¾:!߰d?< tT8[P`#+,\5G׿ ~OȐ0wT{g;y1 [ZeB~(7F҇Qh7n A7;"84_1+4bRp/]˘ΖjnXD0R \SUi3`̦ yCFV )b"S+]wCWWWyysˢ‚@0vKJv8Vm(+C.<]]«ޑX6 )h83ʙVHKR9303I ™шKFEf-@ z/d:&K!3&]]d~5:"/9rDҀ;si(,htUϪ ;c2m Kц·##য়lA _S!B"4X("J8X ">BQÓՅ;0ğH"8"d jLDID %!}=# N(A<Cd(rcB1MJ7#Vrc$HBN1RJRM:U,jJ6XY1. 2|; F\Klho;wzvr;KwCҒTk+<{--:qs̠\ff$)3 OFFrӀy8A9 {km&d~̆ .B՚x\dN8rpssP>|Ih/A]9cC>K.\hkXr9,o52٧X] wj=P[CE9Ivɼf~(?&zfqѢ t+LT"o}q '#-"*5 6$w[H%a0cx] Em¸mXI}tU€6~\u睷O4D%gNpʊh7./>n%p_2gy:i|o.0 yjuojWSxS8k5Vセ( z裢yڨmMk*Օ25k f%'ǟA~&#ZS(fJe54(\ *-C;ҝPm$%[l|#mٻk'e?j`VZ P_Wwر{KED5pI$i&Q1P"!Ed 񔲃)ݵs'GS>/Q w߾}Cp(oȏ%s<20q}q߆|'sfۭ#1ݻںnhPCl!-§NKΒ+.(g=āWҿ۷MUiI B!B*?2&[0a7avҹG :́!k'a0 zj/I0Ϡϳm˦j-^0}7&8a0 l?=jc@J ÑM^ګEǡyg4*I U/^{y;w߻,{䴚;)9#;=ך`zB'zА A, h]DdcC?m Sqل"!eB#өSZ>E k!ԉBIķAEQJTZAyDW iqT h}#4ޔP" ,R#Di)EHr;ۚPSmǎC ڐ>%oGӠ<!c<aikU@N㰘Mw9IqYL ~u~?o,GB~}/ݷ^g~jq0xS?ˆ]8Y.lI2:;KoxnلcœnnXn%9rmGV,[v,?V G~:ٳ=*CF( +/8gַeqÉwS!_Kr`"dBX#G|hPƍ(l(.H<,$AC&gmR+0Ҟ~K0ѩHIX#uv(,ڱLXn[`| 7xW+"Գ G-|AF|`HFC'b"6 "ubM(AK26oh][DK(&ZlQhq@`fqXp/SB>ܫ4땄n ys tUD 2J5 &̞5 .Uђ΂_];G+JdqյՕwݾ ׬oaX7"ʟlm$ G &gg7wx AFU/GaL>R;p8z<6Kmu:uu(MѣhQ1!8pbcQu#'8bQ9$-@⸲Nb?aĬXZ9lƦogμ;3KץlH~HH , LHDާ=bfuhb>0x$ ^H/ _#Ej@ 7/fPhqp91"a0i$y(-]tIao+"G,S^I2a8IIA7oE selC;WB|++uiKH]TuN<c~Zfvӝl4#J#ہ e׬&mzA9|K>leŀJT!l4l߶mY{ݴviٯ(Y}p&CuEys{06>jҨ!sFd.j=ԅx0rӀ%p0sEn)DGzՊF hCPS!&ߢ|Tf`Sjh 栱S?y]4E> aXD##iœ~Y:S G}D1fTacohO!aS_, bh,oĤ kP`A8- +f)Ml0`}z-"3N @1f#/ MyMUޔ8ax֙ G2lٹ}[qafϘ5|/+VvZ[Sҽ;nT#X1TUVW',C K. b_i4RΕp@JbG2o7!jH$j`RbH0thƎ Tmh6iPŲOWXN9)H;AG;EdbØ6x %ŀٚҨD 6:TN &OUSTA+,Z&XN Uho!?M4[d캠)rAt!9^hER 0W?fJx!J۫AzVUW',㶏izÀJ |K{/\:,WDO孬@ i;"E6({ߔ1 Rx9cF @b'V,*mC1lPIJPH sƛ("Ֆj_1b#p:z]ROF]A 'fQwy VS&`=.gs@Q.g\;2œ ټĢ(F kRG %F|Bv`hOd&N=ɕ`8M o42GOpF ftQC#QpFRx>0aZvPJ"C38@@jin# >5az&h },H B}rV*B oAFXD;5#Z Q\*rƴГ{//GJtn@\ [ jPB{$41MdžZƆFI6߆I!6-6xy#Ft]á94c+)ILjA#Hee,"mҡiա[=jcaI0O0yBRF@2 mE D'Dŝ!Q~t0.u]0##dhщ)#F e -4 dlH ?cCgE'm"oYcj{C9vr4f:\ &><i] $\Xm}n1+(=VɃ|9mxOQ!4L<L uAv4r@D& =x"p]hDF=G4R;xA[!^␑5:ǫ=IήP360PMID$ JAx8Rp )CAPYMI$KI!mi*u C-pWuYDz_ MRhRV Qz,4BiADD| b =la9ԷJEz:Jxѓp LxTV|jOtHV fE?mhGR FEސ21<=,Q14"$M( Blp36&=*U%D4lSWjLxm-ʯm*},tMuq4@AmzRlRbHu`)*7<) =L4 jHK6)É ǟ1LQ1);!MʘZ~m&4lf&97'sVێ ƕA륻o|>wzn}o<+/0ݾ >o;/Yr?qDWWW[[[KK |2W® {BL5yRaeਣ«4pE4S؁q8|$-sHl .h$6y( cu5]#դEI FQSSFQs͠ R`gPF!]N`Ix)[] ,z^G s(*)_z ICO kE0PP.8XbNh{[hS/8UWaƐa8z/7659YyZ*ٸ>5С XwO?ojygٕwM/>2O ZZ Gwt6?'}$g$hC{C؇ÁG B Qi#s(CySa!'m2鬖}[Bz>t*U ")$Pn))ZB{&XQG'P+76A{)HgQ^ *p_@P<U<)":M*i!ʑQ6:4BE6!C$vnxaKJjgo~pbT[j2.^_|u~Ys7 ۱|CK/ka? E|.8#G#<ԲJ龲l(d$|`W aၥ\9KtcAP;{ɮҧCLH$ث|c{Yuu| HɤV1M#I5KJKR\Irml ~x# 7) oQ<%37ܕT~`8k6""2xcaED"4aL71T0AFȨ'n]b}6nп oW=׿vmSa3]?^sՕ a9w3דQq0?{]S/k)nyHcG?w8~W68BؐEt')9&pjOvrD.x=9qi`sL¦A`u%Z(QeJaFnd>ZTOYEcFP> fvֽ≴ǁ5^ {^UGY~ ]e>%Xh;-?"9"o9adW>ݐʑ/1sǜ5 j.ZoYѶt 7X٫˧/;xt%Ǐ_j',6a,2XOX%GqѰXV?A+E[RXCBJU!cۖMU'Nx?9zɡI+n~¢ؤy1s1dN3^3^6Ȑnz'<-{v'u? {2У5C `TpH  'G$X uc:aI#bjB-`<( ^@5)cҖ{Ar&9d}yCWh82\ u!PP׫jب4I0n %Lh;R(!'pTӆwUFB),'h*` Ii1"g 7ox~36N]P}_(zv"˼b+|)0}0}e0ei*0.M^y9΄eXI wlr5נVD,C/>?w,XXrynַ<W^|!+vp(ul/!_Ç2{@gk{_/ha];d E%۶^7⚰ғ ?Ǚ z9~'6/0錭0]4v$#V13>pχ"۔O\l!;F# a'ʵlɚĤǦ4P j 6:]+ m$؞ &Lh󄚋? )z" L vW0%Sav@F/KRBF>極c_+_홛>[ɢX媚kL3,3,g˪ޜkG>6^~Xꞻ[D>2d$L;?ЃSz?> %V, d,>3 4xF|ᾟ5a Jyv?ys1O'~R ̥ᰘds8i;9tV4c+ڮؑ.LA.H!&PA#E"@D",aDhB ٤^!F_zYr? t -  ~Jumdքk k)# zB;'!}3O`C,@~>Y)k_b|{V|jwV16L|mOK./h͗^|,CɠMj|[$寈\vEÆT_6RcUŐAK_rхn tz---4d,-d<6yx<.=2kH9V8;2< [vu<^P GE$O$7UbYi^ "K$aY1,L3s5\YY9a$^:SWK}%]*pEA85616 lW'R(2C lQE vREB- ԅK:R@.qyހ _~wW^S?f2*A/*n?-.[-s7?_\y|ʁs;+ LKǎy`{M>d?QJȘUlZ*qF@ ͺ#-OPK&Zt^Jy]'I vr$CPa"3C?vMx\8ΚZ7 gp0' IEEi.(mbB\F\ھ|C`(a^%7 aN1J{#꿾ݢ}anc<-S+;=tW(T1s8 ۮu{.cʕ~}|Ova]՛ ,6#3_{ 7?߯x݅uF^׿_믻vɢrm[d'nӿoG!XYjͪuŰ`\X^_T-@]]]q 1>w?US f~? ؿm&6t<),Cr;lQ#bN}bUy(RpЯ BAO,ա;RYTJY|5`?Ԍ ;N Ja??%J@ prtvIWQ@zMGŷ)r3\vB!X L`Ѐ j^<=XRtTtBQsW g dxuCd<MrOo-AEWQϯ KٻsBM J;zBԄs( AQDFJF N*IXE= {GIyz2'VߗC#hPw©„2OdLGEʼPq}d_Z~Ϗ~?[f]7> i,°---MMMkK}W|R=s_M 0#!\2խk8x8a^=ftXMN j CvAȃUs{xhG QbeشDZ!`JulT><}Cw)Ҹn23M9'˩ ' PK$lPYnη>zO}٬MHk3EnlRT! ?<}G!o·8>Aa]+S#= k3zOў& +ؼAh枱jYB4!<-.MET 6\@u>9}3%^Ou)RhCY "a2粢7ġGƦ4i)p{S<#}? `(:RKѺو[cc:nrH.ᓑyojϸC2J • -]@Z~˅wʒ?+/СƆ]Sc׽s% 8ֺ:@hX`>|iqW^z㰽s}aSTVmA;FGrh)TFK~?bFOK"qƔִYJ#&P(5w人}U>I)=S^mbМ7aj$&.iQ'"O(^t>x:Rh$*Q(vdVbyģ_䬼@M uj`=/\mCMM$ Õ֯ݜiucUyڬqL?JpW^MۑJw/}^}Gox븱{>;wWضyB@줟H},RTXp7_W\ >fxEcCۡZ1۵і)t~h?POPjSʨuW6ˢA==ͣpKlЈw&~EK%hyp su%|Y9q\`kXUa6͵n?W uxSCvnt/jjة=4<eD>Vc$mLa`E)qp<'&"%CL9'='2|9IpTiKBFn .dϳt"@nfy)vi )й8#3'hBwF1XH(YZffȢUWMȌEkHw^\VxWLu dCZy/^rN4a f s\2RZenO~)^,ttm İ&=y <\uڤz0Φ(bC!FG}$Lۆ7a5C]06a]4_'B `Gdi:\g.AEX&YQΜt&44hq=9tpBZ? {eQ1zn1:ݳ@tQ>SτmӆƴR'g% ڜu4tgls2/|˘*8$e+P߮gzFI^ .~q=Ά*2pNIϥjIgOL+P]ufڵe[d4*׹KǥP,OKCksfk-]ewZS32u 6~9z Jt|(IRIˊg28Ti+&]lR\\\2`FIi:BdtuL ;L.%. 2|<\uN S^י"_ ......^ ŕE x\\\\\\\\YQ>8\\\\\\\2p W !\2 5U,لC0⚫F^;j2%w˘ p.\\\\\\.gɎ흝/?~|]PpI?Bhю $ ,lh/>W_Zwʊ4ph!dk-Ƞ=iu7o^osX<}K˙8'gYNη9 :+* YjyZ{>e\ܿF^ TUw}M닡+mO| o \u%|;~-C߯ͣG gθ z!iIop}@% Q}{c|ᰡܿ{,d_ c1KBɠ4wg2~37_{!Pb_~eqFg9L2cW^G~P# s3 Vo M}5h@t?^`,_0lC$$v 2Xc׍!0KRBƲ/K. NCY]n y#'Ϟpnrjs>| 1=?gyN9'_o`ɜ^d*4a :X K·?O_|Qk=1pMe$kF{K/;g~ ֮y5Ç#_]2*Ja6mb(i(x%1뛏V~V n8_Oa9+\'>7_3 k5wdǭ ufe|';mBג1kƜ@Y?s,~;mgL~/ 2ZOKLaC;a۷ ufiM?,[ǥOLFȘP8a}կlz1sһeV? .....sT>iSne99Dٚ Y9zV9dp ׹[ko>MΌ⠟ MX]& .~ܑt'[oNm˜l`Ѣ|4Vȸr\\\\\\oeZL)2e}7᫞\+/49_{m箒P(o)XEv~YƒE x/oX OuNgJdx8dpqqqqqqeME2\%6~9^\\\\\\\ n\\\\\\\.KrpqqqqqqeK^\\\\\\\ 2\\\\\\\2<(⃖sqqqqqqqDa9dpqqqqqqq:c X2N..32< " 驕˗]sՕ>T[\X{)L{=أB02^N~=ǽw.p̍7Θrd#_quADqrqqiAF+N;.ŴP %:mtтG/taOBCU変BM4VWB`K[x!geya 9nۼi3lqa0k v*aɢˇ_ [M0DqrqqC] H(=*G:7gz~X7 CW 6aJ2d......,K܇9dpqqqqqq&dhKѠ+E> g9dpqqqqqlB>!39ACWG x\Loq8PC2y8dpqqqqqe/d s9z!T+j2bqFO!# DqqqqqqqB~o x>VⰚ\k5B V`e6͡ *jOsqOWGP#q\Yf!l&M 2kd6CU?z˓QnŕnGnaGx!ix$\4ģHu1'|U ^X6 j@UP=99C2ZRCpqqqqqHp٭vj2@ H.X_P/K.`5X Q PTBy$2Z 6\k5,&Ep Ix[PTB (NOK  <\ ܓq (pXM-/~(Vt;N n1 0 ^ J*Q4lPGӓBw dڣq^Ps5^䗋+B氘,L,5cHAu, _ɫ5%6}P!T .`G;sMb H'Hq EP X8X_4.... sl/.y-y-jrx6 ׍+ 0|!4Jv mEHh(=|0:b&ˊDwmy-ˊ ߿) V&!VO U^'pF4 >` Gh6AaÆSAW/ u)83 CjAq(YGz~y?=p6.Bxwg Sx;;~cu4*Ԇ rm{]?qƖnx+,/Y0 yֆ BӁ.I?t@A5vիx!NrfMZh2pP ȱkI.]e:(LE%+Æ9TRՌ%ELt! p&568)858A8Mtq%cAC"dǞӟFw؇ coW_~i[`|ڶ-v ྽%;`ҽ{Jl8q阿n9dpqq[x`mi4j/B`!%1,{ͻj%D J0ڀ͡JaD  n 'PNFFO!.1rVB|e5>?^0tH~}' jK-%a(?}5owwކwn&/ȕ /rg|P8qx um8zH(6d[ƨU~q۷l|pwV'O i6TT_ >lż)/'5n̓xKL5Տ< lgčuFAn`[^E`k-F>aanP,"BF4 3 %I٢RT%T.ۀJv8*"ҍI >0PP'(bZN; ȑ* P龽֯olhE.&.tȪG6[Vqqqkx!^xQ%4Xnx?+ 1dHrX}oYe?zcaZ^ ^_CZTWCUPa Tn:J w91IkEԐs5z 58d[j㺢s-Z!iHa?-&kqqqx:Ŏ/b xw9lFd 2鳖Y+/(8&I2^TKxaeTʀцKlͺ2> Ľ0  7jh.衁S{Ь&drۭl&|2h13HAM닗,?cWjoaX֧+!b%RĄ_^..Z!G"qĨv8Q\TS /=G3#sG 4S11A"jDqAB!UӸ5`nBeUչ5|ZQ&Q 5Ub%bmb :D~HaiĨH>N𢶺XUM0ߊ8њ08Z(\4`(]C6TA?@LD2ֹs88; #^L -^xv4(bBxj,L#1͘@!0!# <{;6T  /p Y)S*9l hqm$L& _(dh [˓G!jC9dǻr892V...Ӷw]sHmjF}ۇ ܙ zU OMF-J8jhrF ;=`esw"Pș av7YƬJ V!RK;6P]. (ytE{u9=NaTj3kkAȘv0N +KB%`("H/B~Ri-i^\VWZyeWUΫ\W:zu^<1($E,)1('ĠzbH XVbN :AK XV+ܬbjSzX.Ʋp.HRq2+cq¤C0.ap䕈|$Mw] I؂.%Gs\[upy A`CH!ϕWX2ЬJ**%U3 Mm\RRa-.$ t&baij +sۤ]d,/Fː[iud4~r}o$:;uȨsF2&#v a4b1°7aD2ˌqg-QqF c١2T Y* 2*o eՊ_{l>/B}?wK%bvkAqkK!4Bq(^ 1*ub3dL1cC h" v3a h2l;ᶛƈF[8 }3dDF3Axn2D^Al22cs7|BFY)y{yjtuBy^*_^u宝;y{kQ}w^=^{!ps^ȇD(;?]4d,VZY|ːM=vM7NF7^ vߍwm"hMZUhd| 7RȠzKf2DDa"ןpv4[ 4Nc⌦Ɍ31NfH'3rF&5E!7CD ХM3^\c bnq+!:"O#Xg?0ڻh0ҙ مJI䙦̛ B?F+jpPn`W<"` V'@t&t)tlጫq\2@bbLF0@?֖W_ q5W'MF~.s[o)+x KRSM@Ѷ/޳C$|ۂ|lu+"P@R\T7!=աFV`׎H׿嗽ic_¦Hhc/Q&oTTTX5qeYȪx \';Yav$rjZ>Va6mK %C35gOCZ)K:d4 ?3$P&*]ıS<|B t)t,to䌫֗d 64Dw.d4]Z*Wݳ ayj1صsG@o'10R UAH8֔D;{J=d,VKrk哆xK.Z,5 1 **.!^` dp*rn0ln 2Nhh_IgV [(˜%s~~XMmE+dt0$8d(QȋC ::T! 2W~X2@\_^s^$_yo7k/侻4%.,/CxIbn֗~CxAh o}k?p'{?P|>myW*eEI hndRJX- m2=Ud@mGBV~D`!SO~#Ϻ n!U[-WBmA3& &8md9 }9v+&M4Z(AœsCkG|P4咑\:(ikȋ<#w9E3Х:z%dLVcθʈ6U|ֹ!q";$_ڹMyǮݗoF==*ߺ ?³) n(m=?rv]Iݍ@\RqnfryyȡJw.--BzmZ(K/g\s _Obq۞ wU<裎ȯ+ٍ|Ǟ}ҋ/&ؿ\ G[Fã:l2)lCRX]O 9 Xa8MrT>*$RL"&R\"'RB"%bI$R*HXF"e&RV"ec9HyX~"`DP9JCH,"8Oe$w:xhCǎ>|hRdB$"uD,&Cd f9Y`R@@Y-pLN`LRr&֖ M 1N"֜04jR?~rO {ĭ@mҢw$v$7McqLX~+=3y$ CBb?孞R%2IUE-l%J<^ڦ?tR1]yaVW%eXMy 7$N2aD7 ¨C BM9cN8xp ȡp8dꐑ&& #"28I` dpL^@>9LBS7ʁoci\R[YPmS-KVwV.Fij 22ѱ1ivUJ!挢f[# %Ff n0xg'[(JP·{iYoҬ9x {vRy9(K p8B}2c0a'Z  !s,@A]  -H64 ****X E/p-PUYX:io@VA]e 2"Yi*I!ژ7Jf //@K%:^!o#FiY+ql'I<+#>!9RXVKҀ M 2Z9L,KWsqE1u1ώCF2 L=d1Ȑ64aԖKGݜ;?gX4h@VQk(NޭjeqyzB@0sb/M02FtV+A2rSnD%!tICD. BC턌K YϑDB2a9m& d 6h~6 C9q2͐FYX[[l2A^ph+ qB(75@]%9xpٮhSahm/]@47Ɗ[KbY l`_Х2F<0X ȐO s¤ 6 CVh$19_ЍЙХбmcŖK&qnԤ#GvSn_~4m`,~?]6OxAW6UeX &gzv2H)זprqљd3gD0lD0ZX[[+ڴ9V1ax-LFf%C #6p_Ѝ]Хi%ω3! rD]T ̛C+oh}TTTDv}7M[STق38fhC}K1Q&"ۛ6)gΆUc;j,SZ2ޔߛ**jCZ1$Lm9gUV搥goJEt"^tUM)7&]^Rh2#+1D6L>nΌvj c(  *7=>׿7h >V**@F)xAG3h("O@Ȳa,V l/kgʋ !tSր3С$gl&Q-%n衵K5Y' l2"h h?‹9U0dxWȲ lF;E8;3cÃtîgw=o]kҳ3]iAӫK4VZ_YAEE%d,Ul:qr"چF݀rຮ^Pέ![Z.`B q+9Vr0,#VJơejcu0p&DM4F2 qZuOc c22 E4BD-@ƵW_u 0~ca kp?)ќ9qҙؚz+dzqd,/./V#EbPgM,H **.#"2x2LEVxN`0ZVL܍7ъ OfDA8ߘ SY[u 0jP{GfVWG8KA՚Ԇg0l&PNB3J rlD2B cWd ]Mw e +I5<7/tnj ]Ih8LΨN׺yuzCbuZ=CO'}\{¿~6#ȘYC -cCLqbY.OƆ䖮2dZ9'Z9fCZ~hh}c 嚜mtǫĠ_b98[ GVsML 4Q 2i kg+zN\6 ih~˗IP;n|uQH$} [G#ix߽wCqwέ)О|=xMq-7862!HwU!e7D0vq= ] go% M%ZV s1}ۈvj{'?|-7w'^k/g}.K!}S3,@2B׿ 6}mwj| '/~~`>d@B7BgBv+ `CHL_H%(ճL ( oфkW? Z#n |B"ALMi9(nԺV$ʰR."M+@o|>)ɨ'o;~n 52&C>! {a<Ѓ賟s~e~r:262|mw0*E Т"3KŒii*rUѱ4+ĐUf42ĘgHǬV3WPRGdΚ.+aXX #N!8ŏ JFWpw.4rU\%hdA/_16qhF6 [Uk8hNZ3sͰ3 ͧ5<(.Ka$+GS5:CF% Й@'!!LD  ݗ\\f29&٥An99O_~ ᦫR@!B94_9W.9#瘄 \k#hŤ1 RCxӼ__[ YPy'R9|p9Ң7 Z!ÈA2:d@iE07q.4rdk f[Ay_~٥33O>g4|!dOOU~/GQ vy{HBq6G7=ȤqZ3yus3Qvē׿u(%joǞ}!js^Vڈ 7'y7Bxo'vڙ{_]Kygzo}!>q=ԓҩ;~pJQȠzKe` 4 Eyg0T]3)3$<7F7 gNn \05gLJMQlf 2:`Ș 2:-v^ W2EQ]iErdI@` $N2r:<a E>ӗ^g d'?θ`Lr %w$k?o@Uo{9xM5QDBvwP%Cn{oƝvē[ޡӟe^վK !@P>4 ~wS {.4T) 0w탊s`?.I'pN]KrRPȠz˓aвb_1i G'SL&Z Cˁ3AïXYk6-60<a; max%|^ J\śW7Aq: Z^9-LA3+?5<3 b8}u=?#=!MwƐ'Wo#TTT]%/N\d ͳ xRtF(pFyQف|l2mrc8G(F 3׎\?Z[ *vΘK (#6DqO=F&дqZYxw]g*vgUL RuO M {3酌kΐ1;9X]_Y֐qpmeVPȠ2jaPfD9&.:$nš|dF|P{3S!뫕ZMaDsMmM>[06CƤ0HU d'd6Ak%ƾC/Yje\.E=vlG.=rxld-KJaY* \h2F33ē,3B/&9,7)&ޤԛTzjC !eXg4@EI7&KX(&ޤߛt{NoMZ8ޛp5d\7דoTŭ-xD&!p"l-9"(.4:˧\B!c1dc@y[}: V@[zkK8k$,#* V2\(9mpF2ghO(#ǭ.>V Xqodˆ 20LRkN+du`Q9y^Y4ј2<"sӠd@(t0d >᩶Eߐ/QPs?vDJEEսjawr MEcB>MUvL eŖMm<$ =IIr=I')$Şԓ{JORIjSF)o\R=ai|x}Z7:4ۏ d'Y q8I=I'VOIҕz<*&z9/I%0&Qxj@ 2>Y.^2 @">Z.&(rBv 2$_ݎȹ*% **I{n*s|!r"Z:(6 gF%g;8d)(~u_3eӏ2o"& acc#m v2!Cl,H[1ޤkJUIb&D7QƂ@؛(H7&\M :H>֫b(22d^9eBf@wU[R2JǷrSQQQQQmUA%KV ^uYM͵Mߵ $3Nz $Г{ROBI(= '$HgH#///WEB{InAˤ 3db$D'QƂ@ؓ(H'$ܞӓ{f +jJ<ר*64!#J2T"M%,6,d+}%EQ]i'K֐qB9(5˾WtW.s\>el@PlaZOh2Lg$^ #P"8Z,$H8Va52'@ 2S"/J4 <1.dž:~>eȨj"6/^* [QuUMˍs!Ȱ=- qf8df΀{'QWV0*yma0RDxDf m ecKӒ*b 286r62ڐJ"R Ș(F!\y2c"ᘫa-36+&o3,QP=#(8a10alƐ:McCJMJB_7[s'K!cNj#I W9elGㆩNq2~OS056u!^<-ϧD'h8d8#C Lr3 /!4F;Hq4Fk%7`0?9SƈAF $6 cBƹr# ϡLf`dFNãk~lŤxo! e|2u2#n|d{%icbcK$]k%Pa6d%+a l}SIק1O4qot c"]L!#m︖o~ȡkQ>P**V5E/l6,MVEN`_m+2'3ºo.@ u I4x`W<%^Mȯ&W Մjx5ab8FZ&Wޫ !!wlLT\3pXzPU0kdd4#,ԧ1dSI]]t*=T-d0`^@b|csF:~@[:Ȩr@2QQ&<0hh2#p ]r:q0L NjC#d@U)Q+( "¨C3V**Y1!?MUVt Ha R}\Ð1<-:ӝOEEunxwt ͐Ec\y@oE }39tW\P\_y.,JBR^IXel-$V GEHѤJP9eB a"Wd}#-³|">؝zZ,'%!ګ` ?gs󳝋~JKB>]ҙ6tYjga?k&zq 8CkڕGiK<+ \S"}])dPQQF]۷ KSTF\2݀b5#p/_~| ?JG#n;l0 M&.h7YLH`/gxevH,00A nw~<뮽k֛od_O7c`{vߵJB>C5Zڄw]!;426NEqZ ʡO HXS놇$2TA`~nov2u{aC+|BM]TdXMmz"{L{YuExgr l>#m 58en+,S#EiLF|2#ψ4["D3晌dT)cLFAUyhv'k%x6жBvE(\m+9u-V $&JN2lCAajmӓQF.Kتa4PgG/zM$}>  lD |'])^{.C `}|9֖iZ[}/awpU3 TTT3Т Yɚċlc6ʼ+ NQ1dVԈFg5ք3*rƬ&0i,gf1?塙ŧx4Fq2w_:56L.=cy)]Kkq @8T-:Y 2>jD\a5<> \'y߿k>Dk)pɶ%#p_}ч>ܡQ;7 ̭7||`Qtm "jcݗ ȥ'{'uLmav*J>O| ?޷KǎwKEϦ%TTT] :j("͢E& c^}2 )78X"Ayd+ΈF[h$# cHHad袡LgYmUh 4AiN\r̷, rL$xݵGyjaf*d(Gzҋڹ}wH %g 3#1CxdxE6/ ]So~uC9^DtK/{]D{`?T޻8mo{gIt#z .:T#jr&P _wgS4x o@DS|ǧFKO?%6 uDW9iQ -jj#Il02LM!G2Lv~V@b@`ts\g^moRacAPtC2T x" %l>!޷Ё &CɾӨšJͱq dP5ivj: ó rO~ƒ|4YmRȠ:O3 E" sl.+e=5P-#p"6Ycv=glEĝ0P(Z8ÔL]6T@F}*_U4Ʀmg0BI/ܵt`߾3 \g:CH-,,NWkd.תB!LLf/3j(q,Fnagi9N(~)t=sdoqx ( UްdPLM1T J14sQ,Bسqnũβʾ[̍^_[^zth}}dh-L-:VP(l; z~`8oxgۉ{jͤ;|VW]޴eTmC0dChBc#-d sxj>yoDqԷ,MN%0dUY#xv#dϫ./VקkPW+JEEu&Tp TDGY slvAWP= rI 2Kg =mj[k:2ch!cd1_B1% 4  fBcP7.2dK\CFTpRmw"7:'?vJEEu&D]˳d&}2s\>ch&x_ J -i 6lG[#UmtZmCtd]TI{9,4>LƜnuhB9NoGA͡0gY*rȬ!; \P%NJ4A{L2j)eGP\>oj'xB"Bp0ݵd(*k3; :F獅3hہxV#f TPB7(ڠ0t+tC&P{acLc u{O(/Ae]Bd &gG;@%2!yh}׎a?7>z6rO1ՙPs"pF3f@L.c @a>#9T!FPm^2S&I̳JAc8aM%oȘP8ئ+?vx}muy\,M6MEEu8% 5Y &8#h**33' 9Yl]mp1%.4]F1 rl>PUsPtJv AFcd2<Z\R 4sۚx0/U瞖k?v- )DM4Ր3ОBfaafzfb<;7+SU hx%`acY$,`aB.a@{V5esYRhfv* 0*AŠzPI*TQb2 $qBƹ!LvRX=g~ZJ7 G Ex&~vrbnjdti>}pq#J8aB ܋ A10aB~aAPt0O'A '#x\(nNrC#rXm52UJ2Y l6;7 131<[4 @4jqhQa60akr( շat #e(@ 9]_Ncn]rCY鐃g21OY"[Y)g р ˤzgDS?eH@@fvF@G<;t:<{ݐ⣯EU߁[>baf86p#2'Z2@"d]xT>w*p׾;.y66ȈA(}#v֧??p/v>D12Rs/1A;j.2l!3"e8 pGQ @n" Ul/^B9 AqP( j@S-z `myw]sǽw0TEG}\;DFq/ٳ{׎o}VF A ׽w(9u^6M<]SŐ/ o{@bjC@䙽W\NHhUcgNs`c<|y Mk@ZzeRQQm]+ΰ +"r2dhnaW&r*;Z T1c8`U]d ܎2dl!sҦɈ0lytK;8N =%x a?ɏlRtKx G?ޭ7<ÿ˞&'?MӶ9AA(L#_ֆOÇ>E쥟8]4(⏟ǚ=sZV8wm3@ a(Mw)dPQQs9~mC5UI#SLD16<8963YgT05U<\Ιɉѡ:^LO۳-dE@APv#AƑ-!TıԛK9m-4*oxυ(@>!L"/ٳ[昦[F]yyni a"roC wO6M<#6FřD> AA>! ?Ї!Ѓ>'!tRmldn a'ˤ^*:V` bak!K!+|PC1#!$pK/2TU} őrG}o`0;@Dr ˟\].*)B@y2閶Қ e%.ґ|BmyFr nA(Lt dp4!I»/(3;} {Uw_r1iӽgZW_K@o!t5p, h#ˤv 3pM4! l~?Bn~fav 0hbtD $ĹYnL +M` aiJ d K&GhlkQysc=x=a|߾HtK@ I9'=rCi>׶iy{S润 $av0_55bs3 y޽N n? <6?Q&gYoZ:@ZzeRQQmkN|Biʦ,"pBg\63, AB$\ -p#8s dmى׎-;erd0<_[nCIsvA=`>Jlb^ݱsѹ3dZ~(F"d43ЂNDJוll N8K^G1_5Rَ_cLg0pMD;{,\73TRazRB z.+=w[&.!O6ɰR Jtjf#/1tʌgN$e2lM(¦ƆJ&й줘O[&d8} (QH &C)<^_EyQxx= QRTtX= $x/WRRjNa( 'm|'Ο/3茿 n45Xo ?Sr4W|٧} \svMFVFgK/RK,en\8\өҎ٦Sf eLF2NK3N+Ξ>uj Z%us pg|B-0 {&dcScý d[7W*NRå~sɨk2N66h8v8 Ie,Jo]dԘOԷGj'oj%ۤRYh.XpWM2ZjVÆ8Gh$FW; FEw%挓&c̣#ٳ{GyZa?54r(C82عj0ɨ9gdi|ñ B#k ϵ.c^c+7dqMZ:Cօm]z,)0zӎhF\6]e2:M%z1DzSL_ϣGճnjiSDdhd"DhϞ%asy9sf:huaP;ʁV&ЕM钆*榅9̝ڊ2B}f2ϷHU+U&DM8ۻ T"(>PCmɠa[#Zг{P^xYj!¬g֫͘G3Q,J=}*eN0d 4(\8oQ1aL{tP:֔I,d&̝MF}ue]e4,?_-e,a"Od>xѢƒ|Xʆɐ0T`q;oLiqk.Y-)d>p_ĨpMO.G)E|%0ɨ23&ZzkD,K_tJBE2q}g4l>zy-[W=ի4 iE^X\l-͢>zXFhj m :\Vj"%͞}[ ̦tVJb9UO !/L&91/Iu ,2)N8Z* 3sy-6($l, +f&TUĸQQV]f@z=u2uǨU(eϯZ9^={̜>:c*?d޵>Y:1 I%rV*E JӒҔ[.^WbZR\Ԓ/>/-*ylɉJXlIV, eO sT"~Nj"5->g%'âa̝ Jɨ-7U ڊ2[&La@dϚ>S 3⼬'- ѷw)3a* 6߷_(,]l)(jڔI֩&Rxg;0hɨ)+,+jM6L†d&#=Qm2:_9aiWZ Rbai2Jzd6FBMXľZ .a2* %F݅ #y VYâSʙ.P521 FeoNFَi2tAu}&fفM52:gNxIWW)8MFG.@L>D/~&~tŋ¾ɨϰ ʂ30pt dd"5*{Nj|w;Xb%Xby4x46s4Ԫ 4ZEFi0K5B^{bCR{ G4* 8 F.;w kAk9bNkRpKKWxDRHM!-?v 8 rɻa2db ШoO$'=ܙcUu5wʠE#mHZ&U&#>2) @M6S67UWVM,Ln =|vwig3L.a2h, H{9ϔ|g C;= 0MFueYUEݤw_CN m?{9bP3ۗJLFE-WUrԈ*aqƻ ݡN+ns:dT*ˌMwȱvcM"‚?@[iݯ{d2ogQID^5&@? TÇ xi䰡ng3,,}=^Vp{vգ;ϯ^g︮1[nsrcIRBAf> }?=S z_(z}Q}G%,_K/}Vq0}!(h/~ڼoaO?teO-׍jNNCFiP+yvl:h`zR]n^{:6eRKC6ֽ]I+^5<*65J&٫Aӛ_T0?\dEsgݳt&CkMFL`NKϝ=ҸgU3_Hd(_7lȠ^={̝9"6΄h&ȁ}F MdqG3CrOaTo͕yY[*ZFeՊϫ濡njROZ1^ ^gNFK>|%[zCQ$3]GY {M:}<^Μ6K/:/n ϭzFR\hPJ 2m#R w8~\.asȄ-1]}{ ͤ4OOsoKlv^|^#"v .n0_fQL{^ s䦧PdE~E%W֭]i~aLFTq);޹yw} ͟B7ѧ$OIې~d|AقajX8ow6SY&jI)Ǒ:Lƒd2J)n@%q0]m߲Gid8{WcbslJttqg,rLli4+{x^b .n6_fn2(exsgxț:dRO'{aԠ5w??W0rjl)/*.Sʡ|:R!SLAH&OoQw.aYF[^錱~GGJ*yl*tǑKњ.4fk.-vi.6]rs` yKaԨƒ͞h<Xh2_܌0]bԩZ(zñHwo6dN`V͝Xl(BLLfu %[Dehygtɮ4b?Rl׎xv]%).4j\faCc#s8 rgsp"U]v]l.Y8MuJYNZ2Lnas7.¼=ly3,[2aA`'G +wL7HOn~cŋ2w߰G{)?aV=îy݉QBP\E}z&0[mf^2t1gt+Q_]ݿ{3L?7x`^=l1l(0pf;G%Koϔlmq~9a섎Lnas>]atލFz &HzR]MD t{o"1yxpάdk/Qy=#1P71. YI%yaD=VpL'%TUUy??1yWn2++J)B 2OݳAɉN`2`2eavfjRjZU[vVhOIHR<[m2 `2hyVW"L Өuu ,_j2Pi`ddpOa$s%yy߻ EbHtdno\ thTg2yy頵P(z%m0Lqa.Qd00ߑcZo2*[m2_Au ѨtGɀ `2+LF~LAdTɀ `2LAdd@ALLLA&èQЦAk GM AuAV!(oG3JbC\W@>bHxd@A0؆R֨Ӹ|N46QB&XmB&ݷg{;wjTبBj,@K\LnC#P:ץb1h50AP0%jV%w);sd#3Qrx1Ny۲22VJKIWyCX.Nɀ `2l RQ\Gfjg0w2ΐhudcɘua!b!0_9}lsSZr1Xgx WQHa2  &C)($"בptew6# SS##$"N1 iIj `-- X'\J.iɨlɀ d("X:RΜn"aЕ&'yz Y!A hӉ ёA1XgDE$FKRa1[MfQBXT)e֛&  K D(]GrBӧj*B~^NVa~B&)5Ex}LdDQ~G _ae2EŅ~>^~ޞalI&XhHK{ `20]AɐRaHin:Zn*m:yViR#2\ZVA&#=)^јڻ`2*LD0t:"(t A&èQdg&TUJX"E4nҵi2aq;Oq]_,0h$jɀ dJ016*"4X,䗗[0t|) (zCEl2. d5* o.Z(n=!Eqɀ d0>C# 2@kQLAqRʨQBqR  &  &CQ Ad3a2  Z &d& .0<  ȭMQM#Bq#w0Lg! 54icu-cيemEF!8LA&CR($ڪrs )w LA&CR̫*3Tu9gT(00A[ ZX_WfЙ%9gP )O'L)  L g) uzQa2hR$-8Au A#D Tqd'A&àU5*ukM & &CQԊQɝ:ۡ=w Vt A&DЪmWߞ<8raϣG|d/hQQJR|TxXs7i.ɀ *-9x =5%%)159)-% Yɉ ё>`*NjI0_oϐ  ]ӒB ؽ"B)32<ҔC[B>%d"%*y[LK  w64R咶p訄8DPQ_o/9v'$%'D0ёy*VH#Q:7+=$0"RR-)M9Iq1YHCz & &C-pRw}{߿w}{y>ȡe%sN%*"T*,f}7Y 6MM^24% ZJDr && rgI=͉DQ~nH`ϬxE K^R!4%baOqA-)mfP%LA%LBJðBMf )!d"W`]f::2,91vetd8MҒYYs(e"  &öɐK4CfPB/>h]fZXTLS,ϡdVm y< AɐRa1pDZQ>AHOi4&^iLNH:g20]A0jٙ1URF!̿aνjO0h$aq & rgA(%ب`_^jldX(Q )udK  75FJ%Ezz۽ EbHl`& rW L/LFѳv w A&T2jP셔dLLA&;\QAd  ɀɀ  O  &O  &d` roaԨhhĠPlH AɠAMT7kV,k+5 ɀ Ы dŜ)B3]AɐL5eeFpe&S&& rCaP+rS :8 !E?a2  w44$6ՖF8ɠm8VK00ALF-um:zMLF% rgaЪU9tŅRaXnɨɀ k:("}}vlJ Zud/yCmo{նc*`2*`2  w6%jV%o#ޞa!~>۹on_oG WlR& i{UpFіg2`2  w6Z\Ȉ?_rCawܑܤ86')>r|=UXHjdx()'8_*SB&P)FeBC\  "b#}/Qɝ7 ȽMjiR#BdطЁMҐD|QJI CKJSNR\LVF*%r2R)}Ld^vJ&焆Z*%Z:zr|l\t*e7'a2 .a2r)Q蟕B#xz :Xű;aqqA^LT8Ғ_G9%#DTx(//)CYasM94 )LAad(eD"~ga~^FZj\LtxhHP#)ׇ@#)I(-(*uTȧ-)M XCfPKK"U/"?IHEfP%60AP0 )'  c ޞG=bLF_/mWíg2(Qu&YJ3#Òd">-#Ù̄@_Z21QqQb x1Uiv8j;7ʓ0A DHós}G8vo1CLZXT}4<4LfQ~NEaVBr~T,,$Т6ED<С /8TAd62.d2ڥDAdXgI:Ƥd8ɠiIɀɀ d5ʂؘ S^ 2_ oRk1h$aq & rgA(%ب`_^jldX(Q )ɀ 0jT>/).c]P(zC$LAa3421 //3 Ea8j2+`2  5 ZQf/&O  Mhw`2  AA0f2%ALh?ɀ `2LAdt>QTA0jT4idbZ(n6$g2`2  764icu-cيemEF!?o@Ai2*B"j*/7Akl1g "q& rs!)Uj*ʌ:3*LI  &6"'=̠3KsϠR$)  ȭM g) uzQa2hR$-̄C&LA&FJCFyGX[Rd@A0MAkTEGFx{z!BhkBl w=nDQAk:T/egf$%ķX`rd8[  bj:ZmI9}h  KU37&d@A]dZࠜ䤄_GrN%*"\)9J8*"4率v+(e20+=5WW4d@A]dhrBvGR($%FGF8|먇' 紉{_rEI qlNR|,z{2r02,V#C)M9R!2L0* X|5/+GŕC}ZswD%ot A&FJ\0j: aTxϣU0*"T)Q>S 6: ВҔJTJ*y9!և0_UJ~>^*OJ-iG>/@鉷D9;(;=%,8kZ & ɰm2r) uwط.ًm /&*Vi/̣g zJВҔ(&#BP^^SʳX|U!ɰWyANfldKK#cc[Z^e^B"> &%A; LBEywyEC)I(-(*uO ZRr0χ| -)͔s|5;=-QlV. QAy&q1}dd^E֨  &öPHiD8N^VơogNfz&#yYiEiʡ4S :2,91N&2:2L%!𨘀W`}&!**HI rTr@ܢ*M2Q[LK  w6rVrkvcmI9ϤEGC)d紸fU/$gMB-j#;I)Y\nYyAN&Ltq~.3֚k ɀɀ d8B"ht A&#=)^јZx1t:" AdƨQdg&TUJXp0=lt SBl4Eϊd@Anh2DdX//5`2`R,P(IrF  MQyIqѾvFѣR$a2  KyyiP(zQ. d0jUFr=Qa c&Adv4Ld@A0& `2:g! jAdv30ALpWb f2t w2c5AtEGKƨ߁LF&C)esM-K,{./(d46a&u%F& { O+`.qd&30p`0pO0sL:ͅ%t pTd 9uө vMQ,HOO4cҩ,'k󬴔֙_ܒ㢓j>HXb%]ug~Xb%-ĸw`2TPyhnHBLEg2X˞YNO(D|g~'ÜRʨQ@8|F0*a2JQ\~@Md&%h钊0p(kMF%L8I/eK=b)GL=q SE켢tD] tF hof}_~hMhD]g >/%{??ݩEy1 PN~VײS!~bu'{:ڵMK韫WI_|C S?}_z_K[&wͺucF=ڧWρ-Z0o淸m~6I[GݎO!ܼyYk׮]~-Q&渟q-?t,[McF{6^u}Y}쓪> viNFzR2hడC_ro#sd(ϡV0iS]њvn|yy r{fϻ;_{e};6ƺgW`W}to%aW)xjK:<s%DM3aI=p~N֜%KL~Oo=h0'^ܾmc-PC~A;q?xQ^2Țt1?ܸ~럜v+o\r ׯ^w'cޞP]dx:NkϟbKmmڸ}f{fYa KC+D6];w{ }A%oW tŧ1u$I#voIߣxəG?XAߡ\b:Qr"+%-Y0}c=}dr'&Ob+=jd޽('-1& 'gXt.{d(-7__goXA͇RG ~om2 ё~QK#>s|Gq %V?|Ѐ~ŪÿxUAR,:x%d"{8G|Mivn>y./ͦҳ#FZtzMX.G޳{7E;-n޼ÆUq9f0%)g`[YA矣Z1bY^8*LOgw9zh?sp;vx;wףYӧee{ U^1al?9`3ǚߓMO/="c7s? shC;矶>Ǎ}ͱoq~ΦW^^xjr: sgW9Z8asQ#'F4#RbmmqYϸz[~> D3Z0;c,oG˗œ,ZR;l8dn޸WwƏ7o_kW._tޝ谐ctYGqeD8zpn$DPо^Zm2lgW.{jI~f\oߛw6G`?oTQfϢ3 o?aUkbG(̯˟~r1?d@6+.O-ZHx8˜ `[h5E54XYL#rG`\a2|âN~ym'u_Vǥ'? ?|D<:!O/YܹYsLɮs e&1d*8Mk-̟ /ݻ֭zi4eo~ccXAX8w.g왁>^O-^\7ۻk'%^^⡽{^x;-i}t$[6MO:iI6ouJ+YDz* gNJ-dWSc{w=Z<۟2~}Bй~(>sfw'AׄͲ _zusݷ?/1奒H+;ΗGE<1ftvZ2; 2vi~t&(kWǒPsAq L3"0c!-[a2d?}unpL/. DBg~J2w=Gf4((/gЀ~->:B!X\ ͪ H]byΫ>%h߿=6<)Q/<aL]$ݶ-?/}KCmsfGfF=J5rϻeczl s7룛7<[/\4 O4r0lkJBh߰ wckG+ˢ,x;w٣C}i_vP63S~s-rsf-v'F bJ}~yxÃ}9_O5|Es_ڛ=_qa=~OIŰC1sTGL]Չ=& ;#"$p-&Ν;yǛO3uJ}g9žww_gu$6↗۴tS?~7]t1%)r曓v}TZKĪ˲SF6JȦ2Rz|JfU 2QƏe= 1z䈢_N!AoOԫ݉ɠ.~3{GW)1&?F J:D@g>لA.^Գ{7J[ߦ>y(7qGG5뚙JW=k"5,dX2ן;{{N/(oQwmpܻ쑟*OiS9v!߹u|ϻ;OCs6h;/73Wb0Mo|OW̟<4*c=19݆ڷx?o~[3G1N<`_:NK#2"Ã[ ׯr_ZvW=M&%(kǾV>UkO5j- B|DbL$.kɨ@;N4d&%hGQ;p3x&04& &.5B[]샟 0p(k2^%ĝu;ӻ.dd`cP+O4ԟ=tBo<^W+;b=k6ԫls j:5ԅsMWO;}OۅS\g9ɐ;pXM^|[n6y!]9PPWCrDH$مR{vqd2 jENz3j*k+8x|׬kSq5ԑsgNSkHIJŗ_o..^$.]Lmg].&C$ĝ9}ӧzbMzv}_.fQ$z!WC9DxI q_|id`te*vo;pf2h0q ,c}f>vWtɚ ˿fULČ7q55e&=%ckc/wq%իTvuZi2왌R^}dg9Hۗ}*ŧ}{}Uvw=3|'0q 2Z&|5FIf^߽[eY5m]~KO&۫GwZ:> p%rS^&`m}O?y|4i_Ľu =O{?jȿV{Tdp4aEoZ4/|v\pGdQ3<_7nܼy3>6f%GݳQ#ܳm&N!8S6>6wv3eR=lXO&݆ ["9_jzCOk›)p{hPc[A'i뇜V>go|kgsữdDkPR :x`fZ2A{t{ l| wv3&ɨ`ˌ:ryM O6liB{5 vr$"E cc,N6}{Zl\*ngm2{uӛΟ|ҙ׈ .Y9Wy|'7O#HO9p<09O<6OサݺB6mȡF ճǴ) n&̨i6_G&/݆YX +g~Ǥ}BfiƏg˳ RVH7iedp4tː7|{|÷>QM>WzPMR|K2bnJL#=eyY.`{!Hky΅ p#~ %F׿D&o=OxfϋQ3lJ/|ꚨϟ9(WrڎݻYle Jr:m2{VUݚL)ÑC 8__ u`/?_or3΅ h7akjZL?^k2x /ƕ\~=ShY塲Wrh .&Rn'udp4>~^{It~s(yҧ/2*6&ʑ9|`9a@~)Ij';RH텥GGt_D ;{ n&P^ֿLFO,{;|kRbGm-9_,W rV,[rrQә>zd3ŒTr[Ep yi=|k·=}TT%4Da Zk!&r"2d2R4 )?iLf9lhTx /ٔD3z\v3zEֽLF!V&={ ooW3 V._6_^={L:ܴ}%B*6i84{¼vRGMwOi(!{櫪?c2JʼnJI*9|X{v6bU,HMb7Ed=?>f4=ǩN<">^G68cTfɓvn\֙ Q1{&.ji|`wůH~O_Y=puAe8p; z+_Κk_ne֘AGE{p Sm!)6I erLȩz/:qW?N2&dNY{zgrʥk_q:A&~qS@OX#\#m2dیeavfJR񆺚rFe{Iы=s&<^ 2W8ZhȤ$'Qk{Z]J. o!2<ұQj{߻v Wp -m2U֛ablttDZ!SQH#{. #Ҫ&CYZi٨QI?/{vuj uʽ{zUim6,AcF&ewj !mzzwp6n \Ve(;5G"=1o ހp(aMNC8>s%Ra^wdt%څ/&Cŝ 5euƚ S&Fdm>٥-UQGMEk٥1z'ԻX'[ZJx'c5zNiD'Wi,9cǓ$%Lrf>a2?@BIENDB`ufw-kde-0.5.0/README0000664000175000017500000000270112270515626013374 0ustar ubuntuubuntuIntroduction ============ This is a KDE control center module to configure and control the Uncomplicated Firewall, as shipped with Kubuntu 11.04. The following features are supported: 1. Enable/disable firewall 2. Configure firewall default settings 3. Add, edit, and remove rules 4. Re-order rules via drag'n'drop 5. Creation, and basic manipulation, of firewall profiles 6. Import/export of firewall profiles 7. Setting of some IP tables modules Components ========== The code is split into 3 main parts: 1. GUI - this is the main control module 2. KAuth helper - kcm_ufw_helper. This a simpe C++ application that receives instructions (via KAuth) from the control module - it then invokes the appropriate commands on the python helper. 3. UFW interface - kcm_ufw_helper.py. This performs all the actions upon UFW. Its written in Python to take advantage of UFW's python API. It should be possible to merge both helpers into a single KDE4 based python helper. Installation ============ To build and install: 1. mkdir build 2. cd build 3. cmake .. -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` 4. make 5. sudo make install The following options may be passed to CMake: -DUFW_TRANSLATIONS= Builds and installs the selected translations. Supported values are en, es, fr, lt, and all. Entries should be separated with a semicolon (";") e.g. -DUFW_TRANSLATIONS="es;fr;lt" Default: all ufw-kde-0.5.0/TODO0000664000175000017500000000034012270515626013201 0ustar ubuntuubuntu* KAuth calls should be asynch - KAuth seems to be broken! * Allow multiple item selection - Allow multiple move and delete * Rule editing with ipv6 enabled * Better, more descriptive, error messages for add/edit dialog? ufw-kde-0.5.0/AUTHORS0000664000175000017500000000005412270515626013563 0ustar ubuntuubuntuCraig Drummond ufw-kde-0.5.0/.git/0000755000175000017500000000000012270517172013351 5ustar ubuntuubuntuufw-kde-0.5.0/.git/config0000644000175000017500000000035212266616526014551 0ustar ubuntuubuntu[core] repositoryformatversion = 0 filemode = true bare = false [remote "origin"] fetch = +refs/heads/*:refs/remotes/origin/* url = http://anongit.kde.org/ufw-kde.git [branch "master"] remote = origin merge = refs/heads/master ufw-kde-0.5.0/.git/HEAD0000644000175000017500000000002712266616526014004 0ustar ubuntuubunturef: refs/heads/master ufw-kde-0.5.0/.git/logs/0000755000175000017500000000000012266616526014325 5ustar ubuntuubuntuufw-kde-0.5.0/.git/logs/HEAD0000644000175000017500000000026112266616526014750 0ustar ubuntuubuntu0000000000000000000000000000000000000000 f3d815e8dec37988f67376a91149621699fb5ede Commit Hooks 1390091606 +0000 clone: from /srv/git/repositories/ufw-kde.git ufw-kde-0.5.0/.git/logs/refs/0000755000175000017500000000000012266616526015264 5ustar ubuntuubuntuufw-kde-0.5.0/.git/logs/refs/remotes/0000755000175000017500000000000012266616526016742 5ustar ubuntuubuntuufw-kde-0.5.0/.git/logs/refs/remotes/origin/0000755000175000017500000000000012266616526020231 5ustar ubuntuubuntuufw-kde-0.5.0/.git/logs/refs/remotes/origin/HEAD0000644000175000017500000000026112266616526020654 0ustar ubuntuubuntu0000000000000000000000000000000000000000 f3d815e8dec37988f67376a91149621699fb5ede Commit Hooks 1390091606 +0000 clone: from /srv/git/repositories/ufw-kde.git ufw-kde-0.5.0/.git/logs/refs/heads/0000755000175000017500000000000012266616526016350 5ustar ubuntuubuntuufw-kde-0.5.0/.git/logs/refs/heads/master0000644000175000017500000000026112266616526017565 0ustar ubuntuubuntu0000000000000000000000000000000000000000 f3d815e8dec37988f67376a91149621699fb5ede Commit Hooks 1390091606 +0000 clone: from /srv/git/repositories/ufw-kde.git ufw-kde-0.5.0/.git/packed-refs0000644000175000017500000000013612266616526015470 0ustar ubuntuubuntu# pack-refs with: peeled f3d815e8dec37988f67376a91149621699fb5ede refs/remotes/origin/master ufw-kde-0.5.0/.git/refs/0000755000175000017500000000000012266616526014320 5ustar ubuntuubuntuufw-kde-0.5.0/.git/refs/remotes/0000755000175000017500000000000012266616526015776 5ustar ubuntuubuntuufw-kde-0.5.0/.git/refs/remotes/origin/0000755000175000017500000000000012266616526017265 5ustar ubuntuubuntuufw-kde-0.5.0/.git/refs/remotes/origin/HEAD0000644000175000017500000000004012266616526017703 0ustar ubuntuubunturef: refs/remotes/origin/master ufw-kde-0.5.0/.git/refs/heads/0000755000175000017500000000000012270515626015376 5ustar ubuntuubuntuufw-kde-0.5.0/.git/refs/heads/master0000644000175000017500000000005112266616526016616 0ustar ubuntuubuntuf3d815e8dec37988f67376a91149621699fb5ede ufw-kde-0.5.0/.git/refs/tags/0000755000175000017500000000000012266616522015252 5ustar ubuntuubuntuufw-kde-0.5.0/.git/FETCH_HEAD0000664000175000017500000000013412270517172014706 0ustar ubuntuubuntuf3d815e8dec37988f67376a91149621699fb5ede branch 'master' of http://anongit.kde.org/ufw-kde ufw-kde-0.5.0/.git/branches/0000755000175000017500000000000012266616522015142 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/0000755000175000017500000000000012266616526015012 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/f3/0000755000175000017500000000000012266616526015322 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/f3/d815e8dec37988f67376a91149621699fb5ede0000444000175000017500000000025512255446547022374 0ustar ubuntuubuntux 1@aϩbPm-L&w7KbKac`qsܬU3.]A hbČVMTel&i&w 1g(Zo"Ʉ !LnT*T_OSe 9KE ,M|B`Qɿ:Ph:z"]U:ufw-kde-0.5.0/.git/objects/52/0000755000175000017500000000000012266616526015240 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/52/f8c495d657c83c641ccfb531a7011d5326f7010000444000175000017500000000166312232634706022227 0ustar ubuntuubuntux+)JMU0421a040031QpMN,.)+(apO͡m*Re?&I݂L,(((OI-K.(`Hٻd%-=_\i۰(`zaó/nLX̙nUZ6OWϝSghܷw4e KWۑֽӾi>ƨ U_6Afk.o *,H|# 1' &:0? PmQ\AzDK/ܚ_d0oFȣW%2F r2RSS2K17䥿].%NޞDWpɏV2p?3su0Ueк ǹS?70nwBEn >2hdNw^?yz^i)`p?i|F< 3٣m5***Iwз;JSxriW1d5 ]L'_gFR6k^ 7}0ߊH7'(za`\n'T?g winARWL`Y>l$aRmE 3lf>op(A#4 )+LIO-+d`M`dBG^ K ;],wf4yPL*7mǪ8zOVy GJKJa\,U4F6n3_~xX BM}a$Mrd/\YQf^:$C־kcUyNJ)h2>x'g΋J* E[<ћ,% a nO[ųwwJJRRK 6K,q9:g:12`$\7~YSBs>dDufw-kde-0.5.0/.git/objects/c0/0000755000175000017500000000000012266616526015314 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/c0/c4f11c98c5ff64deb11977d8778925225551110000444000175000017500000000264612235071501022161 0ustar ubuntuubuntux=s7SWS%NZ6L&Xh8<4HV>Se4ؓqq9J8:JJ;bx{wCx϶dDh/=^u3j㶅ӆf"rQ :ID3ajդš,~Nϳ3#!{-׼k}:,?V@WvnYض VrG rZn,r'} bgb'rv<#>aE;Nhx3,D^qs p9ݏ?#r6DK*FU<~z̈́~axs@[q^g14QoNjw2GQ,\}G1Qg?HD*WՆ 뱿ne!nɀ~쥴C5Z_ j[:xݠ4[XQ @ECGv٫I4V4X֕,U7;LK\O\Crwˠ5f@'Қ).?ˢ*-n&|WP%H>k:Xg9:_:j2P|f::Q0V4vqu6lƐJ^fTr ;WG;vow?6<M3sˑ,4[)kRMlr[ߠϣ80g>oplf% "&{1ufw-kde-0.5.0/.git/objects/f0/0000755000175000017500000000000012266616526015317 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/f0/afa789dd534e1040b6c3cbc51e26997505fb8f0000444000175000017500000000063012230713421022515 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS3v4LLTߎ8o5+ו Y SVpqȍ"şgv]rU7@22s~d`.mcg>+SbH41d=iΎcH)H-bm~qЂoϞfeɹ }꽿Xaufw-kde-0.5.0/.git/objects/59/0000755000175000017500000000000012266616526015247 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/59/6d2d107988136cd5c70bdd8f540848498c2bec0000444000175000017500000000027712232634706022340 0ustar ubuntuubuntuxJ1@S*‘l6Y@9Ifre$_/^E@cQ3ޣq8NCpӐ$0 6X6v@9i8!9YcҜLdɥdL>TBu:<ʲ+ arx?{忽:?N 2@, w,iɃTRufw-kde-0.5.0/.git/objects/59/69c51a74bd69681f52515af0d85f86b1079f6e0000444000175000017500000000063012230733054022251 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS3v4LLTߎ8o5+ו Y SVpqȍ"şgv]rU7@22s~d`.mcg>+SbH41d "U ޓ;:_H)H-bm~qЂoϞfeɹ }꽿XaUEEufw-kde-0.5.0/.git/objects/b3/0000755000175000017500000000000012266616526015316 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/b3/18a7ff682af1b9f19c670fca8999c94ac2b9e30000444000175000017500000000122712232634706022637 0ustar ubuntuubuntux}MkA=[.E(,{Ij{B('%03z*ī izYO[[mff#=Sv)~7grnzsIcԙD:LXD>X^)w" z'j99Vt SnE,Dh< "RS,rL=hk{ 8&滁/'>].rYNw͘mT:E\j;靓, ^;ZQ `T EohKP*b,Td,;ǥ8qДGL*dXb0܏lcl)ٹN%֩":e1Q̈l bw;uR 7^_v5W"D߈ o&m[vF)3>#Cե/b:.B,.\~m˖d707 Ico»]>gh\T[fpSo=\ ve8jPBw^!oomNDt. hAF} ]̟% pT.NGL2A Z|l{N%(|7Spp2UYl._ufw-kde-0.5.0/.git/objects/2f/0000755000175000017500000000000012266616526015321 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/2f/4c8a92c10dd2661c9a86657905cad2b731d5790000444000175000017500000003026412255446547022331 0ustar ubuntuubuntux}SIEl잽b`/x0c1;A>ju6wv~/-!7'@WUVVVfV>FU߿_Ϟ$ϒ?$ovq5-Fb8ex͒br?on/_&~~Mgwwxlwo7殟znXc~=d2-n^O,)cJY2菓i6j_ͪ,ɫ? fa6M,]ǷGɷ8Gj|,k)oar%p5q838$ Wy1~d9ʧɇlZkۇS"+b>M u}2-۴7g~$ #Hc>%WY2+h$_';G?%?윞 هLAwQvt;4' "y}p~v>>Mv݋Ýl$g _,MdU'Ll F!p'%cQ1aGvd䧃ou2.4Ua,`<&<aJ*p`ί(2 eUW;ɋ_|/^&g;'ǃl%m'x1*n>lB9ykHXde2iW|f ܲׯ7-9,Qx6+MMQt2AULŨ n&ט=ux*tOFnRL{oe`ᄅogU6jyF!dUKQQLbv aUZxEm޽B9־ϳOymXr/gU9em00YQͮ?iMýRʞ<9OG,*glbyx3N.xr|zn -SA 1,'AɯOdٝYUxC]^݇tov.OwvvΟUUe}.v9K 1#~ AɦldVW=|B*y ('O'Ўћ)Lʗuq*((8t*gU*U75i|wXƂ7 @EWQ:Rv9ͪtDp-&=Uw+i֖%_E"tdWZrnRݧSI_ G7n;l,$]Ư%~aa7X0Hv)7i)H43bkkFK`قظw>~ƽi6e/9 O4(MezP\5]A7^cZ0]PZٟ*ʭwZ:j$r}?κ=6'4B~&v)i{t$76v)F^j$?7Pۍ'7dar/@KfvX WPUy^yz9LiPeMuvM4+`u8꺠xa$4tB23C%pL P c4ej䩙'$: ŵgd~KXR!9ܩ6$ eB66> A~WVԠ|9g1tX&ȁ2cazXP3'Xa`e?̀c%7"ml 8]"x#i1>Mmo4.ҴqTͰ\~Vva!e]$vDC$w2yfPӼ]&FiW@ҊHSwc1_O6B4O1Z W8dvB&&A8/N2}aj!8*FH7 Q2.M]g#rpG& M"~Bjb5yz 8Ho)#Xۋ0a1H!NiC4BHO+JwƆ\~{rLw4ɪN / !:"љxƑqm3Cn`)be ;1ÌK<ٔU3ʩtn'%E2noTR Fw*;mnlQvv[T)&V?g}6ԍV> Rd9C Q p͸?0sfɝ$vA& mJ)2#y&Ij\$I^  Ek8t^e ˡʊ1?_a2wva8dS0]6Li6#P ŜAPH}n~1!2nVEV vYHi)I) $ &? fHPQHACZ# ɰFray( и!0ZTWXv&0\*!t"894}GűV鸘!"Nbg6TD4a#-T@ !pm;/%>۶m~YuIQ~,фZ&\kb:I&) +&uF>uf-F#LcN1#Mj4vǷd}FG"UIR> ))gl"2{>)!R2dِzWl:EUݭdՙT9u%lq*CFskcmMTsO ˩ #A.QcŇ7NX/ma4@@'tw :$6t.NZ^OGhSs/誈a`#kMLV|3B}wgDɦ=HubA3S|Tqp IhT2Z#OV]M)qϻ4j_d{X뗷iٺׯ>QzA$ & jȄbѾb,^ҽ#vGԾd 2%%-\^R`؅M2 W#˄UX" 鵆P aHfo0aB1K4tk*& AKpaq#e4O4k]...啞s;R-.l|rڶJ=lj! WqO8H(69)&Gy_#>+HWstO tJ&B|Ϫⷙd@#>tHĢ5'I1+%.%e *NdC4&ت_v$iMۭ\5:G4'-3LwJm |12m-}+9\EUpfaWP6CMRiͤ:+$I=p=16Sc4 ((2|`S F]DրoSjNv&:#ȞP. I ~hAfХ,=bFgf4c̛yc*QqkD'E(6`&$UKg}dҟed:ZH:C$ a3KdHʌxzLCl(MlIY֊m]sDe jm}E!,S3R8^" Isc܇\6ۺ)cؑ &EedQMgfX :0=! 8aR*(rG$]D"@jsպX83vv\I\ԞLnڢ.%p\{ *9hRtLwHմzb2&6}96D&kњ{gpX6ALS'R8yh*-;Gg{.ۖpLz!qrS娨x F\Ak>+ßy1@/YPI6G$y2,e+N 8+#n5Dfh1n ,dpA_[`؅W `dCg1pfiM< PM ̗K3IXkvU[Amz]\EUjퟓX} !3d^CFƾpcoDa#-:ĻɊ7XU E{Q~ddqnlÉۇkISH/9+1R0e{ИJ ޭ& BZH r= 6=6DoXxq}~BՀ!hπo{p.Hn0eb8k(࠻{gH}A[p'98!'ԜW$:ӜwZʃx4p'e+WdIȾ+J~+ٿz0IESM@wC~7MNGǀzi5V̫qE+=$h#3^Y9Y_s8?ʩ F4_+W/qƕ;-Sde?_~a•t҃Uք yYF"olzUh_F 4h4GxҢmsmIBp{nA3{>v!K/='I  jpJH`#7[ݢӻc\q+Z.7$cIR ~VPx^ t'W'y+;%bƼ2}jΑFξd|l:}oq]Apj g8RL`IC6(}tWDп7'"CvLĚ>=2`2c_ [,"+مc7pV]D뇧*' \`eDeyy 5|,<YjD#\$@k&H_SZV}tzR:\~ܺ,[pD0\qPC f\q&OM0֔7wk\da2iIG,cnԩ`IǤg1%]u_!S6BY&щZ[| cA#_)q6Óû Eps$yt>!؍6(}H+>KZс`ɰoi6!usQ?&6" \YMxG|ph,'7Tc~H#ԁI0 6~xn#ؘfCp"]ppg4:J| V:gQ^^Xh] 1} V^ ئ0Ptd5Aʛh|?g\!@N$T°2ug2 WD^ c O|OQ̹#$V)* %<8Aa0K nVU+vmR[KtLgka𧙕9ΗwXio0}:c#76 W VYi AGWVZȅs \oY ,0fn氝XQ~ַ٦ ރRwaw(YHl5MZkF*fds':훨uGq_B#v?_Bcպɤ#hڲsZء%Ao D>b20O+`cS4RY63p=E!(3-]6S=͑ <"hW AX56gqM?w.zqt(zYK)J+T0(fyK2&Js ݞO!na׵H+&'Fxo&g63u%bx慜ό׀{73$g}\)eO8 6)A3Ŀ }k)2WߎJTPSʷ =xx#f`+[F$47Onuw_^ozQU*k9Kn ߷xge3pU_A 6a-)k-Aw*9eB'ێ~Ōu3Iu"^Vz;?!ApIRl=7ĺ_:z.-3죾wjnӞuy%8fe/[\Eιsrۜ@'N W;C!قG[#l[PJ*D {WLmYz<f;n1ݍˇCl?E32c.WOkUF'e Ғ7rsb` "8 o!A1WK v!Rv ?`c@՘gh狳yJhĎ/_Z mbMHVW7-מ,@N'^=`Ce`{`i,eejh.k5>pO8yNaFs/oU6}Fb#P }#vF4Qdy5YXX ok ȳwpXLZ98(qm6i>*F"隩%|sa7%Ok xܔkɿ40URHx lh 7T!Kjva7vwܗWşDz?l,С1F1i10kZCܓ;F0`HZĐ\="ٗ#njG -nb('c5)ס<|Fa77-&=ׇ]R8~2F\ӂV[ z <;"_nEޡHe׀i@b23iUk (MDt"by׭L0O Ōy 3R@U> | !͵tC("7!udgC.0ƚ&-ĥkN~!4T.ڈ[` * ,9V8_P16*F|[k*[ը/mu:~nmb m[FhDiXrK>󼱡bz{?x@O<mxf(+`27{g[W[M^tXϸҰe!O_cwj˝~<UaG.3t*!vEDzauHӱABF > b>)#^ 5H3|,RF-TY_vkAX5A8H;2vr q %9j2/k'|v?~ oϚ}*/q.mƄ#?]ON(9D~rxsg{㳧젅-ˑPY-K2,/g*ٓK-}w7㈰<#(Fj@k?4e=rL9F!)A{j}+}[+0`@^d8 c5Hؼ>:>\>&I#Kfa0dy@0[^D^d򶘍pjҜ =aT"s$i_m%m4p vɬ;_n=fVn7 ͧ`ޛmq܍փo{.T%az^ u~MIC4cc2e]`#`iwe+pxsW^D XDZEI`VFӨ&06 x?"Yy4ԃ%]uGRHp`nwhR MBFF[rts+[wj+d"AERxI\Ӹ9C! ,&Pk؈Lܬ99#jDd)2f"iޥ7KbkFRo0uAF :OQm4OFSi1TuMl_q ؚ3"&`2lmZsD7Zv ʅUKP]ybv` OK||ݸuP NHE $&D#G]:Vm(Y)1ȡ K60w]ل )&B6KChLS?]9(S؂9 oyIFB7>_$>&pZ^Dpۑ%4k2$59;|ƈ˪vPLglLI3$2NPwb$ 8_IN{\vOlnSkZ#|5D?CWpӐdE={P|s'ګѢBS!ՑZ&t>0^b@xY˒Yqݳ9WʴI2q'?`IZEF wAsֻE"͇Ʉ pQhϿF`12n1#ohq`@"$XWE {1y1r%r/|nC̋V{49-^&BPscAc)#w3,M)8̆Y5z. |00n`/@qbD! ʴ aMO#aT N;紫*ELx$>|HqEXjv^$>mϏaE;)M֬]%ËIg,nF.[I}?qV0dōA9|mPP} aD' 1+釠ַsD*4e632>b@<4` ‘c8յ/t,IL8ET Uх%!3Dq(, Jm_gxJ s9C<|p/[@蜪y(r`C>a]7x"1f8i!+ XovŒkcl7ZŒ 2\YYFڒ mZRTMR^Ckr,H5`4y?dz' .C ufw-kde-0.5.0/.git/objects/1d/0000755000175000017500000000000012266616526015316 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/1d/30db2bdd3c254c3a756b6489d7fe2c66a90c940000444000175000017500000000272012230713421022513 0ustar ubuntuubuntuxW[oG3∾4m#Z XYzvf;;k~gXq쇢Hw9㹶sz~jn_˥5YM6.esiS76]:ijML7f\^s Me_gKS‰5qRRnN^ CN*N /Iy&nYGUp0t䗒tiN6 ?>n4 M7\*&$K<\ôW\TA6GAq1'sl5i6heLʄ6CGKD+5%L d }>ogd._ZܕrJVhu5Wxa0tJztӛބnn'7Uh!0_ĈKltLK p$j^> ښEhxtAyY[` %27hh- ٠wmpB{ H@JZ``soM{t>~{n-jYh9 晌T¼ͬy+ΛÇ{?Jϵ|X Kho\uAZ1&[.OՒDts D4ȉ`@2&0Q=9ɫ aR<#@Z$k~ƠU< I3H٤`ߨrGj{~=(%P&4w0x lv} `Рrr%`y0^-HgA 8v\ZZ2h.]P@on[ 8"W;=N+".jvBCWw*ES {|'IV=d`/pOx mòa0%#̄e" KC6T"+U\9ۡkj#bB#`M;hɮ^Q5+ u4dfjPM1 >:G#ng ? )lްyV̟_h]Մ.Xfu[CyP uX^S$-0hu;o"+TBEN,WME9A0cD=?)_pt{LLlf-lB8ޭGTmU!bM QojؽhUa唄=b> ]QЋyc"^ɄthcOp4cgUAfԜ!}^Nr93я#Tep{CJ] n;[?C@ufw-kde-0.5.0/.git/objects/91/0000755000175000017500000000000012266616526015243 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/91/29ba187a31559ef2f456d7ffc142e3fad210ae0000444000175000017500000000025312230571510022510 0ustar ubuntuubuntuxA!Eg)jo2)nc\U8dZ z~o0x%? FW)@4;9N˒Ȋ*Hod6zK¤!%V8~+ &İ~ĝWsC;=~~9u ;!!4w]5TG].KZufw-kde-0.5.0/.git/objects/e0/0000755000175000017500000000000012266616526015316 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/e0/cb25f0c8f9727df116474e2233d27199827fac0000444000175000017500000000166312227656137022332 0ustar ubuntuubuntux+)JMU0421a040031QpMN,.)+(apO͡m*Re?&I݂L,(((OI-K.(`Hٻd%-=_\i۰(`zaó/nLX̙nUZ6OWϝSghܷw4e KWۑֽӾi>ƨ U_6Afk.o *,H|# 1' &:0? PmQ\AzDK/ܚ_d0oFȣW%2F r2RSS2K17䥿].%NޞDWpɏV2p?3su0Ueк ǹS?70nwBEn >2hdNw^?yz^i)`p?i|F< 3٣m5***Iwз;JSxriW1d5 ]L'_gFR6k^ 7}0ߊH7'(za`\n'T?g winARWL`Y>l$aRmE 3lf>op(A#4 )+LIO-+d`M`dBG^ K ;],wf4yPL*7mǪ8zOVy GJKJa\,U4F6n3_~xX BM}a$Mrd/\YQf^:$C?֚~qt+|W,a߾{rxZ4LΣxwXr(`VdeK]<[g?oz4\/%8$aʑge/]y$2`$\7~YSBs>%qufw-kde-0.5.0/.git/objects/e0/d55f4c8162a52aa49567468f6d504fd33b824c0000444000175000017500000000024012230755776022317 0ustar ubuntuubuntuxA 0= mD?x$,ҴD->a`2SՈtEDGcP%e`K>t I8X (j"y#;c2d\[WGm]Gufw-kde-0.5.0/.git/objects/8b/0000755000175000017500000000000012266616526015323 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/8b/74132af5755daf70cd26598a49a329cdd5ba0c0000444000175000017500000000041712235071501022515 0ustar ubuntuubuntux+)JMU04e040031QpMN,.)+(ahzq,CγrBU%3پqE0GMu2?TMFjNAj^rAv6{c2 TU =;^&Rnf{ySDYsSSҴxzɹ@2d&3b|d~Ez)z@mzũEeɩPM 2Lny"Ԕ'8?F坪Jqufw-kde-0.5.0/.git/objects/f1/0000755000175000017500000000000012266616526015320 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/f1/74f6a4d2e0e2fd927d3303de577e103105ae820000444000175000017500000002130112230755776022361 0ustar ubuntuubuntuxrWZO cSiKVٲ {v`4m{.¿Nϫ8=r{0:ľ[NLNʋ=b$JJ=did0z>~by(9_}p&ly?uUvvу ҧҗrVg8lfl?dN\}f^VgU^/Lyn|`\zz {ulU*Weu^iUEh o[Ѹ&* VE z\j;0U"GŌՏv}tȮ9ϯ9Λșj{p\6Uꮯ߷E28QԒ:4~;*t=i`))Ы=9\eUv! n2Q:4%³xټAju(gaZ-I~\bH'RJڻ&lj^LAqE̥H&/6>MY^4ri[fE^?=ܳ#`9{άSwW,&)"n')[XYѝ*d"}rULë/u\ğq0 g\ݗK庁 YӮ9bA,G?h^,%] A FTBkPgoKH V*&{734U6=e ЛIEj4Ϥ6͙,+IqŰD-'庪P4_NV,Co;Ϩ A(1.zl}V&KC:@c1$m$})e+ڪ`rV+/OЙ7=C5E$6hcԙ /IkNԟKLbs6 5:eI^׻eYc&3vjEtUNl",g`.ԧ|^,U?+["I\OX̤S>?F:|RRД`gΡXBu Y2#Z1,OwogD!ӼTX2r9"E~WE3x8 b 02 )=ho}n\IPU# 1=n?P`U❱`zS/{FHa^"@'735ס'eP LxR>`7< " pmN$$?N YG^O`a < _f )|¡~G_/Fo"j!Bj1f " Xap]6k|y 0ӓ={E*,9'kb1$e큁<#4_t;|8$E- {7 u,; ]t|/IVMe\Vؿg".7 RC5pWgNy'8ܡ|?n6s`njK'hd/eb_`-iAR%ˈHĨKf +XPF}#qeqZ(Y4׿dvpj ôv;Ӫ\ɬE| {FHv7.w̿_p/v `}7+SVNEW Dh5G:>5W;L]d+襊TČ]El!b>EIb>JM55a+Qݯo<^fBeU*i'8[:X inҴj]..GC6P;w%d .Q:;ZaπޡpשBDUvY"@go`iT8%=#7dޭ6֛z,Knh:EcY=Sը-g`ݣL T%[g'o  !7"t2^[  <@/gOcޕ<77y$8m6'9D۪3e8Ŭ٣7s~~4Ӈr9 O>4xEHS˫7_vvq G('x}G{_fvba6(eܒuZyOfl$G$Hfv̜&Eh~s㷏߶EQCvj d:ezz \+ee5LGS[ڍ,=Nۘi{0-?)$ EF٧)YĄN7MRt\iD>C36wϨ*E{/L#–<4@u6<%ɗJZ Ⲫha䑢?E,^ `{htcJ\qthھF ^k,~l#jE毬zn&7 U].r^ߤʔڵ.aYcʮ`Q4GADT*‹[W=?%Yص2qwSf]$+5k M|q`w 'h^&jȦxĹ76y{ ։WIp Sce_hNE7NG k- 5T=. ݤz$n- rX-> Z:~o$HJĩzEd#%| m5m fw3ӋvD-s$ GK˺>76:ѧi[Ɉ oߝx ~1ӯ(艄qHv0:d7$AA1!A[h /7+ R$5Y~UPaV񫒮@Œ$HUjXyy`2WkXq 5 KZp6/Ky4Dg$܆!3ϧ]7i[ƆB9yt^@>h ux?Q4 =J|FS~4ۮ1653 g&hB\V3M*☭`ٽΨR1XPA²pzŐ82Vv@ЌlƟVJ wfͬ,nL"=$NJ_V]s*O=]'v{\߿*3-eXHϮ7ppmb@U[| Us)rgÿ()[h(Fl;;QwwWY?Xgo qռbOqB?YU)G~Kno1?o6 ,g4d>%5hރ2( \]t\[&u/oKWU#~Ww%#ÑDMh>jDi/V hF>;20 [:qBa=0օs@.-{Jd@8NN£M36*̩kbcG\"}9z E܉8ڡf {o pK}0@3_ԩAibd+ࡼEX G0Iz|{I8\tR?&jSi){2/lO\WND1JϞ>"ۑbҷE1nE~](9i0mZ,ZT& !7<̿ȃ^Gu[8$P^=3DvUwyQ?GG黝Emq"pt#qQHm+_oȟB a+d>Qy{ęn n"%+wKot OI?\|:92pS@t""pEuSe4E[6̔g$i}ֻ.!6edBnr}6'k'vn?;x,LwQ+,л=0U*ƕd]x%&nPbN7,x%zʕ*XdU7qAF7 U\S M^z ӊLRMF#k2\*hjN$ iگ{Oބ{A<! 7?3&:)Tnɦz} J7cyUeh!<\oUn4 =41qiv Pu:ގ7;yN?1P.Ld'` 'Ь ?HTs-#+I/-)]M8H˦HR O? _8iۼջQv=0Tp8b5”JcѻdM&Ȉm뿩VHQ4C qԣ[DXߑ` Ak].{i>*hK?(~;#AٜtQʃHn{ߍF?W3_=ɩEY)W>,㧔b_,"IOeg .Ab (-n4bzJ.t]tD]6!RulXBdK 0I8=kYcp[u.˕);D14P̕Sa(9` utl z/6P:q[He''{\F4C0^ܾRS&HY;y@|%@H|r?8Mⴜ7zv*/ؼ6T"v:gLEWrsC >?pE-XQl}{xZ[}6uIE‹"LGʂL A4h`9c^C(~8;nJfOC+B%Exvlζ-/kCj}$,TI};!# ulp)^5[-`iG'!,:YRg0F33ē0īkO`"z#*m0GjnS@ -8_8I!a@azdM;jCޗ|t-MO^63/x-հw-NF@3m36?>i4I2,!vŁ9ф GMEH1\JSR?X'ڒE\8 6Dwa/uXzcWA*`pi>l)/^yB3=\7j= X>D,.Qz@7oẗ1)Ťm'6#@.x'+f䣨;Ezcr0ֺ0p'.#cGח1v)O/!|[STDpmYĺZAd'{czto^6mёJ:UIXO^r4eW` ý[.>z_\dbufw-kde-0.5.0/.git/objects/d3/0000755000175000017500000000000012266616526015320 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/d3/ecd2cb13ac4389393969646f8b022d54ddb0ba0000444000175000017500000000025012230755776022527 0ustar ubuntuubuntuxK 0@]d_SCN'DŃ< M-" z3u^۱Gy#YI=H 89-5!|o}~rhdeE^VVKzQ^ne3AcpEXXߵWe%.OKufw-kde-0.5.0/.git/objects/6b/0000755000175000017500000000000012266616526015321 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/6b/6e1a9436af94a816eda7da629784589f65ef120000444000175000017500000000227212232634706022423 0ustar ubuntuubuntuxVo69o99@Q`7_֤5FA[O ktIʱuʒwkOCYlу;Q,Jn7||}|X/a~>ʳk,g2.]<R0H(~/uJAޞ}{c<>I"h^wt<.Y9_=uK* 3QUIl/)&ٻ(r.ta~1?Ҝ?̵0s:?kʜ̏]v4(~:mot@A"uX+d1 `# 7^' gvߍ[6ΎSZ ,`~(i9JbM% *ܜ{a}UiA|Ϸ(}SR<mz0E  -^XM #GtD „ 1!< F7YY&Jf; JS("&&bsFhyqw@x0fqLB7-r*"]BK}:΂ eokuJmCԘ.렝߂b18]xi>FzzK?&SʂhHm:;@mTLiiW 9T XDŤb)N;?Tis:-0jζZ E<TWow@UZBI}3v=q:!AaȸnH-^ ˀ+6 FydzJ֔Yn%צE;n/eƎUJ-)0ňJל Z6\6#'Tsqz ^Նd> }h7sJ}cAh07-P6U1,rf|/9|ƜǞo#wiEd$7BE*y1tQ۝Dɥ ZpZ+@#n%X|j}*ҡT*Vgg?@gߛjqO1] `r^7ƽ8-s5Mk[DS>. Z.tǗ%C糬`LKAUO`7WǻS%c~ }&p)YHͪ}"_>#4׉7eYm;Jwq̱<|Nbd׋eT&z% Fn ufw-kde-0.5.0/.git/objects/c3/0000755000175000017500000000000012266616526015317 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/c3/d2a43f7c98bff65ab463bcc3fa0ef3a0a8dcca0000444000175000017500000000027612251511525023224 0ustar ubuntuubuntux=K1@+T#_ۀ לdfre$+|ͫ<,l07bI>cImd@dd 9IYq,w +j R ڲ xӅeWC^o @$nw,2yʝT5ufw-kde-0.5.0/.git/objects/db/0000755000175000017500000000000012266616526015377 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/db/3dbadf7352a0f6f1cdca133e9630aa8490ebe00000444000175000017500000000041712230650576023000 0ustar ubuntuubuntux+)JMU04e040031QpMN,.)+(ahzq,CγrBU%3پqE0GMu2?TMFjNAj^rAv6{c2 TU =;^&Rnf{ySDYsSSҴxzɹ@2d&3b|d~Ez)z@mzũEeɩPM 2Lny"Ԕ'ƨ U_6Afk.o *,H|# 1' &:0? PmQ\A>]^JՖZzvëHJ2xD|y#ѫ}YP9y)%`X}wێ{oO`8vm|+e Y:rhhd o{aܩL`PPT7ۻ \~!gT42uY'uuG/#녙}@椂 ;xs%)v<\4 avٮZjՍ3~#HLO5/FloEۓS0Uf0|iP\]޳;4 +n߬zfka?0V)a6k"  m6378 sUIw|{gf2h&0M2{g!#{TuMP%U .f3Ҽvmi@͛cU`D'~i+^?xO #%ŰT.w#/WuT?<~, CaCC {&W O&dhh92(3/e nkߵQ*NO'm%4e |umܓ3wPE%Тagrݭp Mmƒ EQ'-];yK;P%iz)% y|S,2`$\7~YSBs>:2ufw-kde-0.5.0/.git/objects/37/0000755000175000017500000000000012266616526015243 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/37/8eac25d311703f3f2cd456d8036da525cd03660000444000175000017500000000002512230571510022256 0ustar ubuntuubuntuxKOR0cH*Iufw-kde-0.5.0/.git/objects/97/0000755000175000017500000000000012266616526015251 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/97/d05519c377a5788d6a6d0b0a497eade90649920000444000175000017500000000041712231123022022236 0ustar ubuntuubuntux+)JMU04e040031QpMN,.)+(ahzq,CγrBU%3پqE0GMu2?TMFjNAj^rAv6{c2 TU =;^&Rnf{ySDYsSSҴxzɹ@2d&3b|d~Ez)z@mzũEeɩPM 2Lny"Ԕ'_OZgjO.v%Rufw-kde-0.5.0/.git/objects/a2/0000755000175000017500000000000012266616526015314 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/a2/ff99c56d41d9f969ae11f6f611f5c4cc9856d70000444000175000017500000000135312235071501022557 0ustar ubuntuubuntux}Uo0朿"^Ck Bijr7ڕt W41Ӥ(ڠp {~>)w?sr0%әc9Ĕs$̗8Q7$9L&?bJvXDg<v|~{EgXG@)T]ufw-kde-0.5.0/.git/objects/6e/0000755000175000017500000000000012266616526015324 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/6e/e222a1559a485c7a8811e6f802de081402731d0000444000175000017500000000141412251511525022130 0ustar ubuntuubuntux}Ao09S„ڡʁ4HS5Fuv|I+IPA߈8 {< ;l9`1ltiѝb#1wgOx,SwGA:>ǍN+mN m!9 "0 .7c݁ӸOu#CSp<hG1Lj|u^m' 6 0Ct7ĉىH ȬI;{*DE, cVˣuڙmh0Σl1CLsiL 8P5S7P5_ԕX@.ith*hSv2(-yv"fNXT6j-nL0aj%{H8&_vaQp4>KA8FhG G~}NcޔRTKggd2;lhs6-W֍OG5 4U\'lTfb G疝B!;ĭUÁRINDYb8+G]Dͬ۰X2@x?nUr|5=mҲ>FKnP 41%-5FdC̚U5/ONXk:fa9jIj,"#@qZj//2Dw5k=|h]k? ln(^Z%$a ^G\NHǎZ|/]yKQ,ԡ Esᕡؗު?ufw-kde-0.5.0/.git/objects/22/0000755000175000017500000000000012266616526015235 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/22/698b6cd59ebcafc0c06a00ebc65b048a1fac880000444000175000017500000000041712232634706022731 0ustar ubuntuubuntux+)JMU04e040031QpMN,.)+(ahzq,CγrBU%3پqE0GMu2?TMFjNAj^rAv6{c2 TU =;^&Rnf{ySDYsSSҴxzɹ@2d&3b|d~Ez)z@mzũEeɩPM 2Lny"Ԕ'2 ORK)/)B+ЊtؖB ?|!)Y }ϡ0ȵ5-}XBZ ^1aaN3_/4Ng~e kufw-kde-0.5.0/.git/objects/06/0000755000175000017500000000000012266616526015237 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/06/ccc0d6e38886156473de6bb572febda1eb3b350000444000175000017500000000063012232634706022602 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS34& n3eHYA. o,ROSFn EP!. O==ݯ* #sk>_0eC('3EYYt%r)H)H-bPι:o^f_Qk'lRdo5\(ؠufw-kde-0.5.0/.git/objects/1b/0000755000175000017500000000000012266616526015314 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/1b/e337ee052ad1a1a52579f0e8fefec82293aa210000444000175000017500000000166212230650576022574 0ustar ubuntuubuntux+)JMU0421a040031QpMN,.)+(apO͡m*Re?&I݂L,(((OI-K.(`Hٻd%-=_\i۰(`zaó/nLX̙nUZ6OWϝSghܷw4e KWۑֽӾi>ƨ U_6Afk.o *,H|# 1' &:0? PmQ\AzDK/ܚ_d0oFȣW%2F r2RSS2K17䥿].%NޞDWpɏV2p?3su0Ueк ǹS?70nwBEn >2hdNw^?yz^i)`p?i|F< 3٣m5***Iwз;JSxriW1d5 ]L'_gFR6k^ 7}0ߊH7'(za`\n'T?g winARWL`Y>l$aRmE 3lf>op(A#4 )+LIO-+d`M`dBG^ K ;],wf4yPL*7mǪ8zOVy GJKJa\,U4F6n3_~xX BM}a$Mrd/\YQf^:$C?֚~qt+|W,a߾{rxZ4LΣxwXr(`VdeK]<[g?oz4\/%8$A󩠋U Ҧm , '")F¥H1%;u?+ٿ1ufw-kde-0.5.0/.git/objects/46/0000755000175000017500000000000012266616526015243 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/46/5b6caca979a00bda9741a467df9d0bc4991d020000444000175000017500000000056412230775031022522 0ustar ubuntuubuntux+)JMU01d040031QpMN,.)+(ax/y|鋇j><;:TejEbnANnzj^jQb^A^:C4󅆫o4vf=# yӛt5^xQ.-.95rΛmͭh:usrtN*k9g&{i]M.ZyBN%3/%B/%?9)??§f]:Bz[:O &μufw-kde-0.5.0/.git/objects/6a/0000755000175000017500000000000012266616526015320 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/6a/b95624ecf97b73d7abfe53ef8b21d3d2f02f970000444000175000017500000000056212230571510022675 0ustar ubuntuubuntux+)JMU0d040031Qp  fXwuόov mטU웘Y\RWRQ൜?x޺?q5sg-EdȅOo}Sꓟ`qT7JI3[,lkX|SS3v4LLTߎ8oU,)+8ոnF^U`Ͽ3;.9*`yizzɹ@?20h￶13y Sv1$BJ~2uclN6 QJꮮff1W,Ծ᱓\3N?Q?j?)_*T/ufw-kde-0.5.0/.git/objects/94/0000755000175000017500000000000012266616526015246 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/94/c46891cd4bc5326a8fa04b1b5da40809c460d60000444000175000017500000000107512227656137022366 0ustar ubuntuubuntux}Oo09S a( 8 U&nj5#i[|+&qB* ~:iE~?~~~ȧ;DNOQ)Q nN$rLF3Y/I wLHFĔy:]w2{ V>t^1=bXoha^c=|wW]VzꅧWG0Qo-!J_# F!NJD\Px^*>}3,`hoSZQ n*ψ[…烑@)3N;*+'s,FdK6<iNS條N9H6rpFC8)Gc^=. p Q-Gyl uF3>V7:Nufw-kde-0.5.0/.git/objects/a6/0000755000175000017500000000000012266616526015320 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/a6/cdebd901527f15d3324cca6d3bff10ed9a998c0000444000175000017500000000062712251511525022741 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS34& n3eHYA. o,ROSFn EP!. O==ݯ* #sk>_0eC('3EYYt%r)H)H-bh6?fI/Bd'2󓉖3Y0O5gYJufw-kde-0.5.0/.git/objects/3d/0000755000175000017500000000000012266616526015320 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/3d/fb4f5f1cc0c4fe1fc5ef054da1b02715faf7980000444000175000017500000002130012230733054023004 0ustar ubuntuubuntuxrusͧ؞J$ЅQCBP(TdErzf6p"'ȋ/'w0Rl{uױ{ϊy`b-;ۓ|ǯҸҿl:-lF/o/NE=7^}w|d-N0*r1 ?ܻk}.}!}Y,NJ MY^U~l1é˸o*WK~rِ)OµKOw|xNl- [^eY՟A~N<4W-ph ryUnfv5.R<Ǘa%i2΋Zm<ÈO=~߾|t]:Edži{vwMl5ogÓN7^:󼾿cGrv Y82+/YLR<3DJjR5Ӻݕ;UɮDr<4岘lg?-.r`Upu_.!6dM:DЫ_Q}?.Y8@v%Y7Q uOC]J,!)X*4EhTI1[6p T$NLjݜy*q$W IyR: E9d"4Y}v3:Nb.H%fمV\>2 pAhՍ(T禫-ʽhA˪lI9 fru09N(ΗeeYX,[|QL!KDBw ލy\vM Q0!}Јd爾lW)Ҵ4\ed)P"13D^L]䶙޺sy]sf?ݺؐ3M_#̩لNr)œl ۷(m̙eJ'.e([h8*>&uv])]cHHS\HWUIq\kn̶s>Eg^ dϢqRp`6zK$Vs?@R1 l\ V0&;Ҷm[拫NfWPۥ.΋yVi}`19\!)\h ȧ#&,tQVfm߹.^cR \ţ>|w(r|\|aP%?0alj @"{_׮QvQ)^OGG x*~*FI|eH)ퟮ8ĵ<ȉe cP-#q=I)kH/*wҺ٦~1{ip]!%aRB8fK oYQ[yy QگDbu>F-9tsWx*!wР^[QPg2W?!*[JOۓVOjK]@(^  u%WC:,w'rafC ?˩=Y, _`>;I ~g5w=|Z(t\B76rrfX$qwfp$8xaNť|A5>IpȤLXʭ, )? іqItؕeb}$_ThT]YEux5>ʞU^ P1wҔklpXLAZڔdo.hEY3<קjpd!E%47JBzjn skݭ~g"# dng1K[Z\:h_Ju+0|N,wqiT_#БEНTψ 5p#W7rEI2SsYcf(_+7H K׈]A|&:s*ͪ-2d5}59J,#&"U^j.-`[C뻥ic\C%%) *;ZlMr)1Q?#}} ܑ3~6?Ńz#`saO&M[7S[LP:"8]kJմ\2vU5d*Sa>3j\`w}-m% Uj mg=LV^j-V~x{X"v0*3it?4w`%M(cxPIϧJbqpgC9Xvuܙa'^`5fbY4 G8Z(yr 7ef,?}//ߪ.k'Ⱥ;,7ۙ-Q>0+/DF],AA?*DP:TjaѾU{.7WT0̷Lq,}&~xe.m+'Tk__$}wr,?{X~wE击+J""j2i:p7+ xu& ئ)Dy!ôvE]4MzYʷuC?~ߧ,B홪FmK$|h8=dR*Q7.@:>O|^xH+PZW4\ߟ3zy$]9xMQ=wa@a~nJ*pB6 /5{fϘfxr_.GɁه7(S˫'ע_u_wv&v};{{#;EO5ynH:4{ƌ@3nG$\ON,MT A9՞ڲnD)wDWރiqII3>M %&4i2V ЙRxhƷ)E%hE,)^ؐfH%(c@W\V%-`j LK)(Za͕%3a7DžTL XE\]%ߦ9mGԎ)T垊8EY>9;Ϙp|OͲF-['z1{Nher{t`Y7ҧƆlt2q ASmGg?#"UIdx|E"x*IʵQvAup-m#G~xJc@[EC/ml< #~nC:bB{_4Sd rQtR#^{0hq AxD=P <m|#珓sv#C?/8fe=0?ΨnFOlׂtv53=Ƭ{>6]s %F%aP&pf!Kw۸G.Am%4- $ywm&BvXy2d3鴩 惐?k無F!G\EV*x)udC 4H(!Ֆ?UufQck7}<&sO?gLx{qQ{.VeG X/S| 4T4s/KB?̰'tPثG2^oV3艟Vaީe SX[>Kf}U ; ^"VS ϐTo"5 TJiϔX p YIɥ[;"gg*L xv]hvɁRvZ:$j aЮ{{y3zZ {ٯO*QPgpQT"KWZR\Ng.tF@Uq)P0# GVyv\`v `j%j@z`4< =Ri?)M;) /dƤ0,BklfMGVzPl]W0P"ozE;COh#ϟ5={U>0` ,u_1K*HX_?#sB"=G&YJw'ѷhru6D1{hm}6K>.d' A5:&%C=Qk3+855yHlw,:hҖ=ls* c2E wwo⺊2Cpa&$ 5(VVy3l2Kb.z(mc76cwM ` #qnȮ=.@-&e!?=BI}ރ m,Iyg18Ιxiq(2Kz蠻5_~<@x}օfdt~-07hTIh$bUK.<$md .jb&qh/l gK-c|؁Q QD9On#sIْ :`C!CQt({-/V#7פ<` cB ~8wzꑀ&&ɟ=g]0:O?Ƿ{FO5[3Z_RLǎ{ǪiY9#Daz_Uj#ݭKLϬjF;3\H]rV1Sx8,ê#lz7׀^跘7#2Os9Ua. SG.CmF XS ^S7MNCK:JȫAHb&4Z_ W4KLTU 4z#divc @8AM9P/kȡM sؑ:&qAizf޼qcwrhkk\F_- ubPyJGl)k.6x(/{Vƒ?vT3_ef=KYoo@2RR&T 2\i(Y &1@b˻Zk|r0Plj=#x<9B9*/ϲITZ)J9|D4vp7׻a,וS=QҮ'v柬mk䢩.b [*iQ?a_+JN:1Uҟtʨ,Mi=DKK^'aqFPc#鶀ĵEyց~诌S 1#;r?22Fɦ}N#rNya뱼Wx^z^.طHM7MlM |Ba4`;o f'jG:/GG-<~Lu(wB&{YyH`rYhOyņ$Fb摕Kǔ&UcMmeS$)K_/x7߼|{Խ1JԮF gVARSi#ޞ.9Hyɍ_Ѩ[jsf#95(|†8ʇbҹCCwE$IɼɪjhP"fXcJ9Ͷ9G2K]ݳ=PlMT?ْ)7{F38.&GrAOZFre~9QG M7=~3sg}l0jʩ0SأB߹0;%ދ~v/ElkI^+&W o& Ap:ѾJ}y58jJT+*Q{X89)wR6UOȬ;O@m%}*$_ 2寜8-Mު5ʋ}d@!6o1SUsx. &4S䕺0o(aٳ'2 6]S4t>jooRU|kt֦= :=H@x^TUtHYI6Ғ r4g̋z(Pb0CvMCR {Ь)vȀkQώty yB*Ik'bs@At-.eۀFb,H5E@ݳp K hyxrxu }@DxS/s~D1qZݷUZq !s Z狂:)>u4 ];WizGmwpx(2҃na}f9pЈ5~Uqf6 v&G3&IPf5Ю8y@5'0} 8KIΆ ]j_^B[ G2AֆxcμK/*HLN3 <+Oh"K^M'aˇ(ޝ%#Jfu5\w205F:$fX9dÌ|z'H/LZeW1s T"Ʈ0)DX{zBʖH,XUs2lxWL-ػ:RI ߾~7 KOSw C:˥MbZufw-kde-0.5.0/.git/objects/de/0000755000175000017500000000000012266616526015402 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/de/8dd42534b29f99c7a0a73bf001f23ed867ec2e0000444000175000017500000000063112230755776022622 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS3v4LLTߎ8o5+ו Y SVpqȍ"şgv]rU7@22s~d`.mcg>+SbH41d;%zN-}pSilFjNAjm]|x4U-^?(NeHƨ U_6Afk.o *,H|# 1' &:0? PmQ\AzDK/ܚ_d0oFȣW%2F r2RSS2K17䥿].%NޞDWpɏV2p?3su0Ueк ǹS?70nwBEn >2hdNw^?yz^i)`p?i|F< 3٣m5***Iwз;JSxriW1d5 ]L'_gFR6k^ 7}0ߊH7'(za`\n'T?g winARWL`Y>l$aRmE 3lf>op(A#4 )+LIO-+d`M`dBG^ K ;],wf4yPL*7mǪ8zOVy GJKJa\,U4F6n3_~xX BM}a$Mrd/\YQf^:$C־kcUyNJ)h2>x'g΋J* E[<ћ,% a nO[ųwwJJRRK )- S!=bY$eH)ovdg27|j\ufw-kde-0.5.0/.git/objects/96/0000755000175000017500000000000012266616526015250 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/96/23bd86f2e26653ca964ba0087829fe18e954bf0000444000175000017500000000062712235071501022330 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS34& n3eHYA. o,ROSFn EP!. O==ݯ* #sk>_0eC('3EYYt%r)H)H-b.ZZdbͳWw@d'2T`-`S*9j cK6ufw-kde-0.5.0/.git/objects/16/0000755000175000017500000000000012266616526015240 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/16/d0145061177a6033538d4b92238888cfd21f9f0000444000175000017500000000056412230733054022010 0ustar ubuntuubuntux+)JMU01d040031QpMN,.)+(ax/y|鋇j><;:TejEbnANnzj^jQb^A^:C4󅆫o4vf=# yӛt5^xQ.-.95rΛmͭh:usrtN*k9g&{i]M.ZyBN%3/%B/%?9)??́#䏾g]A] ufw-kde-0.5.0/.git/objects/03/0000755000175000017500000000000012266616526015234 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/03/2f4a9b78324467c42aff49c9277423f1551c810000444000175000017500000000027712227656137022110 0ustar ubuntuubuntuxJ1E]+Rʼ$d@MVvh3 pRy *N5#+;)CuP$V_yD&SЁɒӀ0lAiG-g 7sYQOr+ NS8l}qz?~d2~]{Y!7~)9Rufw-kde-0.5.0/.git/objects/e5/0000755000175000017500000000000012266616526015323 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/e5/f9228253779d67b52b1f101c9a952528125c8c0000444000175000017500000000116012230571510022064 0ustar ubuntuubuntuxTM09¢=6=lU!Nʆ8uGʇVU1)Inxf]F_+s0 2iBe!"+е5.A)*^a{ߦΊO o{kJǸ\SݿO͈G(fK q ܠAq^: t0Dt I,>\dl#qs H_@ |_>r<z,h^z v uY>Ya& dbA5>_O񮗪A'-]jY~&ێs~Wa&őVtykvEkTr2I }nabE|F )v(Y,7u!x,a֣Ռ&cx~o'qE"0oX/=d' 4@ 3=p`q=?AF;"L |4"J~βo(3U &hUx: ;ևOK)} 2B$)Q^RGͤ".4T(JCS'7FyX*;VW*YY s&ǁ;ϰ6a%ufw-kde-0.5.0/.git/objects/9d/0000755000175000017500000000000012266616526015326 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/9d/66e566c1207ae9e2658fd5582039955f4ddd8f0000444000175000017500000000056212230571510022342 0ustar ubuntuubuntux+)JMU0d040031Qp  fXwuόov mטU웘Y\RWRQ`6OcGM CmW5`9Dz3LY"LBToiŒݧ>ꓟ`qT7JI3[,lkX|SS3v4LLTߎ8oU,)+8ոnF^U`Ͽ3;.9*`yizzɹ@?20h￶13y Sv1$BJ~2uclN6 QJꮮff1W,Ծ᱓\3N?Q?j?)_*Tufw-kde-0.5.0/.git/objects/02/0000755000175000017500000000000012266616526015233 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/02/2dff019332e28da53c18d339e4b1143ff8cf2c0000444000175000017500000000167112227656137022444 0ustar ubuntuubuntuxo1ǙWxH1dҪ9W+;}ileBR+(k8#×^v{|/̀7O=/.1Z h +%*dޒ2$,BRGQ"ۢlYFM6dSOW,yDfy܆]e~V"{)0ё-BBg[[_]_s x^K}CȮd0jDg5IZj8E:|#a{g~;$br~m \E#$9V`\p-O]2Xq&@a0*g "C*1b<KsID>@{韀F{8^WB'6qLp.v1k6$Vt#t9 &,E,f('䭗r-=<@3[8ߵ@׫b(RiTu LVHZnvj6.Mv4(ֆDά!TX@J}Jvoyܗp*4'0:;7"a6" "hP<2 ͖8M$X*9XjøuFpx 4瓹\/*޷p{:61$|PmL6ŝ`TK5 +:F bTXgੲUd֧V19s- u[tS{͒KnI=`]q%DMEP0nfF-fIRTzK_D'pA_f[70O4LjɭP1ft5 RUX"ǰ >#kM%U&;-}LĒ/: :s$Sw$ PmmbKY@ \ufw-kde-0.5.0/.git/objects/24/0000755000175000017500000000000012266616526015237 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/24/58d57bb887188ccaa1fbc19446027df01b41580000444000175000017500000000056412230755776022323 0ustar ubuntuubuntux+)JMU01d040031QpMN,.)+(ax/y|鋇j><;:TejEbnANnzj^jQb^A^:C4󅆫o4vf=# yӛt5^xQ.-.95rΛmͭh:usrtN*k9g&{i]M.ZyBN%3/%B/%?9)??cɷ%<;֘^x!&<ufw-kde-0.5.0/.git/objects/90/0000755000175000017500000000000012266616526015242 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/90/8580773d6beb56128d23b972de4ce1b2dac1440000444000175000017500000000025112230571510022347 0ustar ubuntuubuntuxAn1 9W!Pu`ŲAZ~\f~`B`ig\)3"IsTR&>|FRΙ#;֨Ԃ9R v,ca{6WBdĐ E轫??`^?0Lm1us/JAufw-kde-0.5.0/.git/objects/0d/0000755000175000017500000000000012266616526015315 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/0d/b4fd2e7226a7b3def151bd929a49e854492a030000444000175000017500000000031312230713421022425 0ustar ubuntuubuntuxJ1=)H~f&Y=zI:;ad ԡC}TV,;P4rFO:.ɥfv z.&Mp^;Dv3#i_/q"L!ɇ)e>Qh/jti ơ3:o^;U(z2ư&7,(g(}l$R Ex[ufw-kde-0.5.0/.git/objects/fc/0000755000175000017500000000000012266616526015402 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/fc/5ec8cc0d7da56305db82ae00db310c240b0f040000444000175000017500000000063012255446547022626 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS34& n3eHYA. o,ROSFn EP!. O==ݯ* #sk>_0eC('3EYYt%r)H)H-bh6?fI/Bd'2=դo5n8<~fƠufw-kde-0.5.0/.git/objects/pack/0000755000175000017500000000000012266616526015730 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/pack/pack-f31eb6ff4c36aeedd6767829846b565d05d031a5.pack0000444000175000017500000267047112226624701025166 0ustar ubuntuubuntuPACKxxAJ1E}BLR%"n=DR4x}GaҪCw8&Npݶ"%BmI`l^r ೋ*(xf HOž٪`uǸ^z^fxǺ[GjO@)2 !!N2ެMpZ{yh_=}Y>xN0yL1N !rᆐx[QqqG3͖J#2M2Dє1LQI 05`Fn2rH4 fƸ\bS ozg߯W}LLQ:H(!޻R/12;btG8Ф%vV6"T+R5 tD.?=d0X!HPy1?ڠH}ݚr{$*xJ1{bLi6^<KūL2viYx|wGh:3ٔ$D&agklFM}D-:[P'"eH9:E_Z5$S[O~o,.Ϡ';;#R-eCrzB,PwH=KA^S?P;x˱j0]OqcC!HE:C)Y:J;'&e$u۷7|߫*pbx&NAP=M#8X7 ,!E$Un "`Db h'dd kpwvaeuxxݗzy7"GI%wo2B rם/hOx˽ 0@=OqGE6 8⢸JԢiJ^7,tZA-Nh)*Ht N ȜUHBF{{.dt0 /`{\2l økXoߟpܟ.\@HXb>Z!O\:O xK 0}N1{d& "nf4=UGy2&Y2X1[٬iofW-P`gC-ۃk-!S[bKC7 h0" t{C6 ]%@s]IQ6LE6D*hBZot*5yPܺ"٧i}RM; dzkw>N[۵[b qV!H{ꚬR鉋U.gMF?`GB>8cm^6nr )6[Z@BħI3yT8 `ɶےvnk+z@Zڬ2@@bf}Ưu,W߰ cK)VɎ7 xxR k6 h08OAfЙhZiT P߭iٓHDB' u7B&)VX2<[x}ĒMG1fGE?F♈:n`[ tXJ*3 g7}_7& Wƫ]vB,Z }"#%pYS^YM7 XS,k\<ĥm: B_%F*EYt E[bb $ϋH, ,gd̼l-i h:pIfmgt-dB*wBOMNJ&d{PC,^򕳪,l"*QsfUm6k:wxgW$ "=X8HÄJ *C&Rtd&HM&p~[ɂ+<di-z(*lwU~Ohy^ݨHwgĮxΙLKZ!#??=y@ b#ӵCpiv˂ SQpE˧%?w6;y7WS&:V B _ 19rƇI,TSȞdPx7[v1PZB$V+Z._铸2;[&GOvLSZ ,luiWoz>P26^^3֋P|L)ȍÂ~mawsxCi = *deYhrl= V &G;1u '^^&;VӨЦ,kpH{Y~@n %;XzިWIzB_(Df:pea)X5x ZHe#uT؝^>_q+iV VC|H"s[Ad8O ""WXN,cCmh &%y INUő ?or[–1A),˲`{- =LլɓCZx=BFi;L]æ ɔ#<=@.[H*X~V;$fe_f>ڶJJ3{1ƲMM͒Uŋ["=7DP&PvTQ>T[)1uiϲs۹CBECrA[(Bc_KWuYT &mq9i [K`u & ?9$0, @$PD"(ـj;J́Gac_2gK%D|VPC)i< -KJX6g`,= Tl_qn!h/n#!Ѕ0^֍r'f NLT4XPo!( %bjf])UIrˎ|E]^k uV[EkH;]]  Tvۨ7U C#& 2%J_Ce h!HlO("j6pڋ/;NgĚZAU\28SYBi$C4.+LN0D<5BΆeA¯p2xJr%s 'ֶ 9\aҹȉ#U聾F.$D:PC3do4+{̚D lm)bKC\P5p\ X`GC,ƥVl9ȵ)@Z;2h-.{0W(T aXϒUN&^7_(Nz ֲ;uӻ%>R#qx z[ahC 4 - %̇a(v}aW&biPw40tXW wRsc Χp"5TFI!"Hg D)LG4򶅃4ߵQ:|ܸfd*N/<,,D_!N82H=U>22ˆ%!b!>b9֩d:}OsB%G^02A$TQBoCIP,FFMJ'R~Q0 r{H۰ eX˼x8B){mV.$Rx.J}#3,($WYцr@ŠzLZ+0MXꋵGzL 6k$t="3?9cr+ڪkLddJ`I(dN :NVK#Ɣf2 W.mEǗ)@!R;d1=NrF_eHrW-@Fzm]i$ݞ✆3!b*$Vu~ܙ $SGU ,8H괢#Cz 'Z0EJ(ˬeLQԑ@`A*,bWK؏/:3#$?/]t1;)%3qzIq;ǹn WJ2l|2R6g UV}#AQTNR`2WnGh^N<3$a%=$) I埰wrJL"C"X!?5Xxk+B(_q"uq~n{ mƫJ5 BR'K(l!$`g_O7 nFї1/4JԲ*#[Pdہ7*ؓ\s\pkm_˗9 :$^ @E%#anK(bŠ]kl\#1+!k"(?I8Qh,$I z]Dv>̦¨ xaС%\;q2J'ӡWOMŽ4<3K̠&֫aҥن4n6uM';wɫ6h@9)oVe $ Ģ+.CQA8 ܢRCfz(opuV}Rm:y=\ȖGm *jE%Vp{d2@Ԡt-ۊTy2""em.oކ$Pp3zԠA)Wd#Ϛy+LʎC7#}h D &PykZP(@+^mrE@5㠦ͬ0: p%\vAŢ 9iz"yAGڶo $ޗEg!*dvf4UaW,G e8 -$Rk)]V*sIi6a>@&"jDDeuB_=>l'i*gݴ A/[$mqVhha`p(kHyN뫶nR#4 o!lY9Od [sTɹmT%.lS<^HqDGz8c9T᮫ZHow &I!{F4Mby0΅{,;]Pts_Q~XKۑ] ",a lDG[t*)xj.lQ( ej"PT\B !ˬCbqR"}FSQ܈LJK)zƕ*PU-mㅴD^p58yy3_1eܘH2>]0lƅss$!zц(fL}'[\$Ӑy.:~hkl\zzk;j=tTH VV~^H]@Ιf4&$'lF4ir d6K3M\\N;yBUk(F"߮J=y[ml:ǁlʇ|qM`M*yI" <sܱdA VZeoY-JsAR_f8-qvJy.jv5_T zNάc88CNPL5wq9aݨiVkNW~qAʸ"8ԱG]j8e`Giyp[YA1,S?;-Hboҕ_ Έ1)W5"6yw6KBvSv['B O~/{ԨOdݝ;[<ȶ"qu9YA`ydl]~y5oD)`ǢmY?tܞQ#0㶽60K(9]^6uJ\a*?$ϳ.>8ldQFX 2lrfpLٲBxFYZ[5ѱc%QR>f 3x۸`q3g|>P|/`R.! hPp3$!uvY\2EdP6 +zQ3d]á6*xr6W3{-k#'H4kq5@J vPJq0 jts0@dL{J:,Z0]醶]7"NSHLqW]Vhր%\0[DXo@lLJ(w?CvZ3#%`1"/|n* e s@9說r?ƞ d@jtqf4g)t̠m+c4 CU&ÓGmk /!DHtp$mtgI VEʖbcLN5~G+AqCnpz?kqDkE_uDi7O~BHew*x-;^5ィ[n]ƨ?HGۨ]N]6$.̥\JIqZ-InfRr4MfBd.E0N?I,ÛX{pac)jy衸Z8rX~|LH j'x2p'}7R\pq~Ǝ LS-`BV˸!-+ptűJP HE<1.J pҹ8Ǒ`n"v)*N&#xr=3;wU]Pru`6 sąj]M }sԒ} hu MXLm}VjJ{+2l}|bLL 9R "ZJ{J>{tN u}8IJ^HnXK7rcL\dO.qGJ:L7s&pr(ַa6ahp% &qc {HOa815K6!chGONCR)M9t;PbߦNS`xg o 7%ӫ1qpPz5-6FJjQe'AJ[8āW>PE$ | .sFwfIȮG| TI{g:22kzؔ9jyRf \H ¸02҂pR\.,ƾTgL]~0$?Q-B:uѧ"$ zjtJE'7/Cq@K*Tveg~\V>uJ{G{U&^D<{\N'~A ? SgKˑFrBPsW`)6xut,N 7$bXF)g`MO[W۞Wm2jyJ $!`:PEp4*}u b'Jg@ӑuPd8BGEV$|luD~{~;D2A"n)c{D9&7Gf4$2Fdir1LVᛢ}zh$5#%:hZFH|ϝ]` 9}C.E3)YT(rXTGzL/Zd[4 vwCi|-zB=uuClUoB M=o:B% hG!l!e `8W^n!9SG:#`HSJ=w'y:G2<_ڱ"uzy bGgT䭗P4,G=\ rTi$C1IRsFsM XZD9N>!Vl::$tT M:$p/*VF3km^TH;xM-)&餇Ra؉7iVwΤ~Ѿ/ɨ\8Jgڳ~Mu2GX)r JAX:.s?[1k4W_.h(;5x\Q;(D偟lr|f0W\ SHyqǙNwPl 1 2W^o6'!\%g?qv=OtFd?`bCC^,}YXm"n ~"'h*uk-kM_vNTL܈)H= .@|ÌCEN& 9q]'߮K=F8?M ߂-g-0HQ)v$Ɵѕ.X.8'V X3]ڰy,f Tt+ߥƒ<)7Hqph O=YgOLl4rY7x 2" .-tBָZWk}hӥ'~zml/.bIAEǥJoɝ&?Kt[R٪]M? c\0}ꋅgHp_pH8BۍÄmW}ԋ@)Ex!GGIБϙFbQɑ'F&jDc2\k@5KaGWfu<?p)!b<'>+r|b (Ѝ tsXmv!FwBr],[O>s j!<@{"ndy=CXB ]=?~j0eX5L4%Qީ;A p>FB>j$Pk~oD\Bײ@G*\2) > a2 JvBJ_8\D܇,'7ɗkHnn~LyCr;8xK~5۫,~u9}H|]'7X~?L:r7_ ^~|z7/Tvz0wd2''ɗÇOxss~.Mfs^hۻ=@k?3;%M 7՜NF=ܤnuC]~oWs>~pM[0姫靹tw{s?H!n~τNOSa8ă M|s_ %fgϳO6>^]%׳Kwz5}_2ftyswUn~rrU"1AAϠOW?>YA%ɐJ#: eNϙur8 G_."$&Xy;b`9 P~|Hm>eaҼ"YpRR"l`ڝ@{p_ T])۩ώqL˲NP4|o$1E[b~F/2H$B!7(4 ڝ%zP~GIۏǺNSFs=Pyd*mA/ _%v i͐9ϱ%]koGfFNfpou_y3Og9ğDhT'1/9}$kRUg k򖿫 sV8 oodQIEevELF3áļ/eMcgm e $ۚ:/9vO6U ݌/Zn'ҥMaWȠd~8/~שD:k%gІ6|ܘBagsqUk\{buTZ\q&W  ~a%mWcˋ{Juo .!n|DL׾yXYwza+" w6mu__vUQ7\ǫ )Jt6O{(|+$ۢr+mju[R'V2(ƕ FvmYM/shfէؓywיt{"/^\Tr[b L؛WnM>&n"zEӅ ao+ǝÁ'IrbC't[ _&Y8j?>cs!DtO|ݤ̵(]-uGEƫWls5]oIp8 H2̑K&!ǺcŠ{S2|9Xhz՞mbRL*g$H[<,D|?29lKF\P cZ^d/uG"H A [Î*4 ]z!PJVw,)Ξ&H`03ΝOhFg}pv}nΞOvJv*iL%={{:{]^En)]`wU:t8&n[kR47XcyfBVQ!/_rųFm_Fś2K#Gm_%N߼z_U?\NMaMٕ؃W;VyR~c,W}&DdrK+c9Fl] d\Ɂg5NUyWFpiFc˂x!h_`+@1X cLr*G 1!CH$T!v1s}H܁1t lAX5!"L aMAW=zRe P2 ’G[84Ɣ[^0wZN SGUkeK]p8T)?n ůVH"t C6˜%r*+SZc yD}V+MQ?1uSoL읚2FLEc ~%+&8Њ<,M;dPQ'#[>=cxi*ՠ9~i Ͽ [Ɯ' jog,h EGAyПnpuȢa(B0 &:l-s(K <\€LdKؓKXPӨaۿ;eMXRʾ[A+]De#RoMC+TOq+ԫ)ϥHBwڔh{C# z)$۟L bK"ϓ-A=yr*c*4Bh%Ms]Ka렣 P7x!h KյM'"s!L$HU8\/PРi$+S]yoRC`IE +$+ 9˸Qำ# d "Ĥ{S i,ޗI"ȵqzDC%H2P$nL).X AFx*&P"<甓#ݙVuKU؃~ȁdDH Vv.ZlYs/.v{?IpBKS/M K 4 ʗ Hfx…]bnbl=TV[%- ǠiwtE Y\W鏇0{g/ǟYu:m>A:z"(XqϹw+ 7s ~#eӠb)1VJBq!{Oyf= ygr1MoY0LRIfFJoN*5,~\M[ƅGXðfdNP\%t] owi TINw ԟvNhldpYczGX1KN`b33#tbo[94_b̙[S>5 8YP]+Ԣrp18n_xs"$}7!H zlm݆/ G4. sX u2zn@TAn'r>ܷJ-66nrQm@ S>0 s[s҉ڹ Hqc mmYyA 9j bu> g nGcR=VP?4?:Z.Q䔐9O͌&1P PyvV z}ڞ; v9~ѭz7;.J_ *۷~+)7L%!GRs[Տ10,Fȶٖ:R*\eŸ\G4pkî"SVͲ| m1?| e!y+;`&BHD!{o?@APyНU2 ]HCI%m8Bǟo!8Ժ^F"SЀݬG=Ė,.S}) !IobvMzbBN,*ь;4*TA+;fDv;s6PΨ~k=zzҬ6Ml X]Up) ^Ϳnbvw|x)5|>k.pm}@?9T=Oﲸ~Q Z>4\.gOwEaxRm̜čЉ^JRUaN>c.XsU'ՁR_&/:ȍ5lN.N-'/p1*/RSGo몰x]n0 Dwu Rtkl]ld} SG޽w<)lifDG|k#۫{cNeSU q KGtA9cwY\C╬iT~34.;`ﭣ,4H9Ɛ%iAMfxU; 0S7F5&&/UvC:}=Z-: SFnE *R_H&rhW4K%S}:c. 'x340031QpMN,.)+(aa|؋UGMy01<p6lvە]],fPz-#O5 ؽD%H xLSu w r q RĔҤ̢J<;!DejEbnANnzj^jQb^A^:C4󅆫o4vf=# yӛt5^xQ.-.95rΛmͭh:usrtN*k9g&{i]M.ZyBN%3/%B/%?9)??!-GPTDS- %ϬNYD x}N0 {!6!*E\%JӸJ2(B;E&`rrEYY˵0J(,/iZެg˂?fpyWɌʬȈȬjȎʌ4眈ȉ)2ݾŕ*4\7yczM#yγW]Ni!RtIRG$%,$[_VI կB= bR-J^PE :&^詊 E%ib3ȉ'Z__Jsv} TQļ%$iW=~ӏ' =zS6ꢛ&$MYS5+G$W7|Ñ vc LQ8C PP &.BZ,V83P˭ qpskaAB(lB[kgG[DuHlkh P%.wv ۻೳC:;:t :tv<%|#]]G:z[#GE=zcgѣǎ> pX7?}1(>u :~ıcq?:!'NӉϟ~B|Ÿ?òP?O7?7OaXKeSVܵ'& H<?8ԟO$K8eteʠ\/pI ݍ3\ŗ~A~5GRP>;;ş^q3-]-QhK]3ybqxc'orD%A|pГLJ,c|fs#x䛥@lW\5,vFlvOdhdS7S~QUekHou1J'(֘ͻ6hMBд)HQipw&/ݞ ?ޫ{ < R!# IPL2E3eHD4\xf #a( C~bgU*"GG LH2F e[#CF&2dNZUIE!mc3ڥDށ5gtHNy!aZH,t!8hFqL,-`;1T [{xjD~˴6O8@c0)`*X`l !x!EH\UR D)۠K"?$h݁m8a$$Ľ-툰!?"^K ăaȐDL`D3r9)^% C!*"H>UnlAޒ=?C~/) |AW 2! v}fl@bWRYU/@Ɠ%n‡q9466 e}ck++Z ՕPs g dT9>pfA~xdȨS|!^'SvZ(ң^gΌĻHŸ!93O3'ؤV93dɨ!Cg K;e3hQ3"΀B>D'ؼ(j4TPjl3N?Y1 ?18!S?¾:!߰d?< tT8[P`#+,\5G׿ ~OȐ0wT{g;y1 [ZeB~(7F҇Qh7n A7;"84_1+4bRp/]˘ΖjnXD0R \SUi3`̦ yCFV )b"S+]wCWWWyysˢ‚@0vKJv8Vm(+C.<]]«ޑX6 )h83ʙVHKR9303I ™шKFEf-@ z/d:&K!3&]]d~5:"/9rDҀ;si(,htUϪ ;c2m Kц·##য়lA _S!B"4X("J8X ">BQÓՅ;0ğH"8"d jLDID %!}=# N(A<Cd(rcB1MJ7#Vrc$HBN1RJRM:U,jJ6XY1. 2|; F\Klho;wzvr;KwCҒTk+<{--:qs̠\ff$)3 OFFrӀy8A9 {km&d~̆ .B՚x\dN8rpssP>|Ih/A]9cC>K.\hkXr9,o52٧X] wj=P[CE9Ivɼf~(?&zfqѢ t+LT"o}q '#-"*5 6$w[H%a0cx] Em¸mXI}tU€6~\u睷O4D%gNpʊh7./>n%p_2gy:i|o.0 yjuojWSxS8k5Vセ( z裢yڨmMk*Օ25k f%'ǟA~&#ZS(fJe54(\ *-C;ҝPm$%[l|#mٻk'e?j`VZ P_Wwر{KED5pI$i&Q1P"!Ed 񔲃)ݵs'GS>/Q w߾}Cp(oȏ%s<20q}q߆|'sfۭ#1ݻںnhPCl!-§NKΒ+.(g=āWҿ۷MUiI B!B*?2&[0a7avҹG :́!k'a0 zj/I0Ϡϳm˦j-^0}7&8a0 l?=jc@J ÑM^ګEǡyg4*I U/^{y;w߻,{䴚;)9#;=ך`zB'zА A, h]DdcC?m Sqل"!eB#өSZ>E k!ԉBIķAEQJTZAyDW iqT h}#4ޔP" ,R#Di)EHr;ۚPSmǎC ڐ>%oGӠ<!c<aikU@N㰘Mw9IqYL ~u~?o,GB~}/ݷ^g~jq0xS?ˆ]8Y.lI2:;KoxnلcœnnXn%9rmGV,[v,?V G~:ٳ=*CF( +/8gַeqÉwS!_Kr`"dBX#G|hPƍ(l(.H<,$AC&gmR+0Ҟ~K0ѩHIX#uv(,ڱLXn[`| 7xW+"Գ G-|AF|`HFC'b"6 "ubM(AK26oh][DK(&ZlQhq@`fqXp/SB>ܫ4땄n ys tUD 2J5 &̞5 .Uђ΂_];G+JdqյՕwݾ ׬oaX7"ʟlm$ G &gg7wx AFU/GaL>R;p8z<6Kmu:uu(MѣhQ1!8pbcQu#'8bQ9$-@⸲Nb?aĬXZ9lƦogμ;3KץlH~HH , LHDާ=bfuhb>0x$ ^H/ _#Ej@ 7/fPhqp91"a0i$y(-]tIao+"G,S^I2a8IIA7oE selC;WB|++uiKH]TuN<c~Zfvӝl4#J#ہ e׬&mzA9|K>leŀJT!l4l߶mY{ݴviٯ(Y}p&CuEys{06>jҨ!sFd.j=ԅx0rӀ%p0sEn)DGzՊF hCPS!&ߢ|Tf`Sjh 栱S?y]4E> aXD##iœ~Y:S G}D1fTacohO!aS_, bh,oĤ kP`A8- +f)Ml0`}z-"3N @1f#/ MyMUޔ8ax֙ G2lٹ}[qafϘ5|/+VvZ[Sҽ;nT#X1TUVW',C K. b_i4RΕp@JbG2o7!jH$j`RbH0thƎ Tmh6iPŲOWXN9)H;AG;EdbØ6x %ŀٚҨD 6:TN &OUSTA+,Z&XN Uho!?M4[d캠)rAt!9^hER 0W?fJx!J۫AzVUW',㶏izÀJ |K{/\:,WDO孬@ i;"E6({ߔ1 Rx9cF @b'V,*mC1lPIJPH sƛ("Ֆj_1b#p:z]ROF]A 'fQwy VS&`=.gs@Q.g\;2œ ټĢ(F kRG %F|Bv`hOd&N=ɕ`8M o42GOpF ftQC#QpFRx>0aZvPJ"C38@@jin# >5az&h },H B}rV*B oAFXD;5#Z Q\*rƴГ{//GJtn@\ [ jPB{$41MdžZƆFI6߆I!6-6xy#Ft]á94c+)ILjA#Hee,"mҡiա[=jcaI0O0yBRF@2 mE D'Dŝ!Q~t0.u]0##dhщ)#F e -4 dlH ?cCgE'm"oYcj{C9vr4f:\ &><i] $\Xm}n1+(=VɃ|9mxOQ!4L<L uAv4r@D& =x"p]hDF=G4R;xA[!^␑5:ǫ=IήP360PMID$ JAx8Rp )CAPYMI$KI!mi*u C-pWuYDz_ MRhRV Qz,4BiADD| b =la9ԷJEz:Jxѓp LxTV|jOtHV fE?mhGR FEސ21<=,Q14"$M( Blp36&=*U%D4lSWjLxm-ʯm*},tMuq4@AmzRlRbHu`)*7<) =L4 jHK6)É ǟ1LQ1);!MʘZ~m&4lf&97'sVێ ƕA륻o|>wzn}o<+/0ݾ >o;/Yr?qDWWW[[[KK |2W® {BL5yRaeਣ«4pE4S؁q8|$-sHl .h$6y( cu5]#դEI FQSSFQs͠ R`gPF!]N`Ix)[] ,z^G s(*)_z ICO kE0PP.8XbNh{[hS/8UWaƐa8z/7659YyZ*ٸ>5С XwO?ojygٕwM/>2O ZZ Gwt6?'}$g$hC{C؇ÁG B Qi#s(CySa!'m2鬖}[Bz>t*U ")$Pn))ZB{&XQG'P+76A{)HgQ^ *p_@P<U<)":M*i!ʑQ6:4BE6!C$vnxaKJjgo~pbT[j2.^_|u~Ys7 ۱|CK/ka? E|.8#G#<ԲJ龲l(d$|`W aၥ\9KtcAP;{ɮҧCLH$ث|c{Yuu| HɤV1M#I5KJKR\Irml ~x# 7) oQ<%37ܕT~`8k6""2xcaED"4aL71T0AFȨ'n]b}6nп oW=׿vmSa3]?^sՕ a9w3דQq0?{]S/k)nyHcG?w8~W68BؐEt')9&pjOvrD.x=9qi`sL¦A`u%Z(QeJaFnd>ZTOYEcFP> fvֽ≴ǁ5^ {^UGY~ ]e>%Xh;-?"9"o9adW>ݐʑ/1sǜ5 j.ZoYѶt 7X٫˧/;xt%Ǐ_j',6a,2XOX%GqѰXV?A+E[RXCBJU!cۖMU'Nx?9zɡI+n~¢ؤy1s1dN3^3^6Ȑnz'<-{v'u? {2У5C `TpH  'G$X uc:aI#bjB-`<( ^@5)cҖ{Ar&9d}yCWh82\ u!PP׫jب4I0n %Lh;R(!'pTӆwUFB),'h*` Ii1"g 7ox~36N]P}_(zv"˼b+|)0}0}e0ei*0.M^y9΄eXI wlr5נVD,C/>?w,XXrynַ<W^|!+vp(ul/!_Ç2{@gk{_/ha];d E%۶^7⚰ғ ?Ǚ z9~'6/0錭0]4v$#V13>pχ"۔O\l!;F# a'ʵlɚĤǦ4P j 6:]+ m$؞ &Lh󄚋? )z" L vW0%Sav@F/KRBF>極c_+_홛>[ɢX媚kL3,3,g˪ޜkG>6^~Xꞻ[D>2d$L;?ЃSz?> %V, d,>3 4xF|ᾟ5a Jyv?ys1O'~R ̥ᰘds8i;9tV4c+ڮؑ.LA.H!&PA#E"@D",aDhB ٤^!F_zYr? t -  ~Jumdքk k)# zB;'!}3O`C,@~>Y)k_b|{V|jwV16L|mOK./h͗^|,CɠMj|[$寈\vEÆT_6RcUŐAK_rхn tz---4d,-d<6yx<.=2kH9V8;2< [vu<^P GE$O$7UbYi^ "K$aY1,L3s5\YY9a$^:SWK}%]*pEA85616 lW'R(2C lQE vREB- ԅK:R@.qyހ _~wW^S?f2*A/*n?-.[-s7?_\y|ʁs;+ LKǎy`{M>d?QJȘUlZ*qF@ ͺ#-OPK&Zt^Jy]'I vr$CPa"3C?vMx\8ΚZ7 gp0' IEEi.(mbB\F\ھ|C`(a^%7 aN1J{#꿾ݢ}anc<-S+;=tW(T1s8 ۮu{.cʕ~}|Ova]՛ ,6#3_{ 7?߯x݅uF^׿_믻vɢrm[d'nӿoG!XYjͪuŰ`\X^_T-@]]]q 1>w?US f~? ؿm&6t<),Cr;lQ#bN}bUy(RpЯ BAO,ա;RYTJY|5`?Ԍ ;N Ja??%J@ prtvIWQ@zMGŷ)r3\vB!X L`Ѐ j^<=XRtTtBQsW g dxuCd<MrOo-AEWQϯ KٻsBM J;zBԄs( AQDFJF N*IXE= {GIyz2'VߗC#hPw©„2OdLGEʼPq}d_Z~Ϗ~?[f]7> i,°---MMMkK}W|R=s_M 0#!\2խk8x8a^=ftXMN j CvAȃUs{xhG QbeشDZ!`JulT><}Cw)Ҹn23M9'˩ ' PK$lPYnη>zO}٬MHk3EnlRT! ?<}G!o·8>Aa]+S#= k3zOў& +ؼAh枱jYB4!<-.MET 6\@u>9}3%^Ou)RhCY "a2粢7ġGƦ4i)p{S<#}? `(:RKѺLu\T6Lwt7 ! ҝttנt4HwHݝzϻ#>k^}s qYZ ;msE'&^-:M4KK{؍$ G# OZG>.<g6^^״[hwG'|I1ʻ-YDžڨ0fkenGNY$d(@Yy> +|[b7 &Oo3}kV&VJb]$Ļ\j71\6 -=1*S]#bQ1w>? R♯=mտiB)%,K?n.ԅ'O -i,0Z+)z_K4egp'qEte!m23Cl´R}՜o͟G)BkFXfXzc N6u0=}4۽=9"W$}µH܋YfU9*/V0'NO?Ǻ˻dd!I9Q.bcRpZUqB(*X[OmztKf"9Eʞ=' =cEelc Jaĵj;򒞴-ǭ'ϤѠ;q׺*wC+{yKJ ]yOtЙ4N/3 OaՔ'/}sw7"Ъ܍^5 :GBQLH<<P)j^7FH(;gv .zS:HQh#Õ\8-:Sߩ(-u\G=]+A`i/@[QQPz6ozew6`MkR8HZOs;&j !g>G.Wos 0. xZ$_NGfIs馯?oSZsTHȉt2bL"#Nz%YW'O22Aû nK~c< w~g{ O>jWb$tjC{J vqջ 'WaaMڈ6%J`MY-"E:F*Ő~'䝟3f,{Sم)r@S:g({1Q_毨F=KsuN/c*﷨{S@)dNSgȘ[Uc8&lVt4~d!c `dt IVBxv/okL]ǸK~8[nx{0wh"چj1ĉp|Zxj?E ܌Ԅx+n3gEF3{|OK|o?8~=8:ɾyLxJ4+v@];DqX*osmƝvhs~N|-#VuVHWH^Hh[HHM78kXIMXçvX? M?)ph˯_c'n8Ho.w)qQtT^ ; T-?@vz.rhTn2zs*DI(xӘ.p;.z8d ʾ4QRrsJٚ:KOք|)Vba~5< {PP _RJ(4ͽ/g]_(^x[xG\VZvME^hsbí+u>oxgS~.6\y:MQ[\Eƙ[Eʍ[ u*g-tGpQy@Aڪ46ql3d6S.ZtPϲs!q(qB16`vq1f.xėq"g]#8P/G13,p '6g| ehڨxvxndG͂Z_')ܥ.硧!H0*VtrW~ϔ8ES(|jv{hMQ?YF?.;X0=?[&̏:Kq8'#\8J!pxFkӈdtVH77hwrs/ȼ+gq|~FZm?uw/AsEQkg}D5r gX8PM)W,\P|equ> m) 'U;GηpާpO;@,ܵR7gl5.reKH} :k\P?_h)*xj$nf,2ʺҡx8as"cܿ8\I8~8`4lrjN8ۓ|it3*Ejvꄿ[iUhШ̜M{= 8X/ϙ5fP)Lw>3`Ez!sc֫ Ln^Ad\r:cã=mAQЈb Go]Td)^[+9i/&Kܨ~Xo92ғU]Wc XEFX]e$Tn aKB=rko3j3c00xԅ|6y03ÚJQfl΀]ã?>8.pU'.Ѧ2gW <,^?)d>CUxz= [  ["DԕHk?4͑d.2OpYu}L[W2yŪRa*famuY%L$=n6'cVg,z.WtM^RM 1GF#ݡc ts70?[Gh1^۟Ti5(wW3tStXvLqy g(Is#CZ m0ah Jk+cdCTpOw1($>P mi5z.I>|;)ۨ8&J3KC 3ZD+Ec S{q_bokh4|?zBPZX4$7֐DAF._0vi?fHvFT2hƇ,<!ÇΈ2P>ޓMdĵV%*-$4АFNW/O .?*퀡pHAgp?Lfg98 o1 P椶K|花 Noڻ>bVoW-1t.uiC S >o!87otnU^%d*FhD5b&=3^Nh!SPt(Qz=DT0q"(3fL0#X o ;׿IG3>,a# ]s¤R2 $~+oQI}(YݩIck@J'Ufk볔eHzcSk'rixb@34٨S+ꔘ+z؇Dzu*v~dP[F0Zz  &LGH*ҌW;Wa-ubzr>އ?a&X|nǺRJ@Bi[&ⷰHL!,R M7 k63yN1c5sOndԈ9simhv$U;|Dx &hG{VJX/Ld?"=9)u@ dS[Fɩ)q47!lj[iNF؆ڊC۽ۘ܇Y? ܺv)"|@JBBqcфn& 40,ײ?0{-1DZES׈Ŝv#3DlDضȟZZYv;)|k'+w^DXPi]Ҿ2I&Z"8YH۸o4V\ڝT:h.y톉^ S1"׋"Q_bl%"' Jp,J$HnWjgOFn/ަ [Ϸ?yLM/#=ݎt,&O۴U-s\n}ђawփ?~jy$L zȦ&Ŭ', jn6CR8 P¹%kXiw+֏ 6v@!hW)8ps00;YRnx'騒kw^J'kL">2xğsʝtTDon19S&Hj{'oӵ",CB¦a H5:/fƓjK1o7)F8g͗?_Mj@Gʕ}߾UQ۾1XS{2bz|SX$>F+:]Yw赚>"")/5 ,nCg~ϸ)cdN>lm\X_R3!y7 ݕ }U5d>vꊳ["DӨI!~LsA=\&@MG[!\t#:L0{I :F$ƐB&Ȭݩ+ߡ',BH/{ci+ԖGuwJ7BW&KɬYϷ+9A& `|8bd8Lɓ4th-~i۞u׎dch~fEC!#yÈWNļ0{Γi7iTk$HPb]ђj9ʔecX{#k470xaajH0]Q%U<:]-%һ43ra$ދQh'aۺOf?O1H'_:B+EƦnNZ^/jl@XWw{$ f!V>\ tRP)9"-;H"j 6\ u8%x8>f g9edv0RfpHԟ{ u(C0l5~c욈`dZJ?q-;`s^!bBpߐsv^(RPuxxivkځ#o7'<(n!CCS"f^_6oa;t [ފ-zԴ9 }uyd]pW.^+g3h?j޹^d-79`!xL"u0RؒkEkߵme{̜3|NǠ*?*k2wTɺ/~r(ђXqONfW&fe rc;ab#3(N`u6)9^T@4*IV2}deBG!|rI zt<HHuj~faqeE3F1Y«E (XʰèpCko;3竝lJd9Q69[&(>ox;\G߰·pݐě[0@2)56bEA+n^tLEpVFGyȋ*VGeŅm4P3W٫>!8[b{ 9ՂpЁ=5RoY9H&ZJ>8VZ#S`OJycC<(!z 0Y_"{jIm8C4OVE2^}VC\P |⑗&;)S9Ke|еVj zpS?7 sP@]x_iWI[bW=Z%{oxQh߄RnkrqKɄJ~D]7b$errOrrr?rr_Xjm'ƈF$EC zb0ɕLo*'vmfC<&sO)[]RǗF&M^TF׽3,"-$`fSt7bht^s҂8Dq'm^Xɔ1/#k@\kw ^EϢ"$s3XQl_o"XKD8(&`Yqy)o좖.[qLP0QW%5BGfRj͂pv8HĘF`nDn@+4G/ڿsvUaczw e0Ս:EOqqBi@(H"1lON uAUyX;;;ɻ;[;;;;ڻ;s[;KpoCo:&%O*x34#lUFN68_X+X9=Ե4{˯AnfҎ>3NR(K& Ep8Qܗ*U3P)ٍu -"q9RRg7DC]78t3v鑖+f " } 6{v܇.NK-G=iLE{jzRwKm7Sa#Ϟ(jx3]y`DO k5*_W튆3݃~)'xNhU o ^M@xdP<2P*-AK ūދPPb̨gx>;!1ݦQ+?m}I~Y/Ux )˞^77E H D"CZ nD4F#+ 93FC$e/69)FĢ$P⽆5D}/hz@^D}+7W[Ȫ2\~ A2,Q|I-8z638|9DxIE6Tۇ(lQ9==NnTaK hFu4Yamc~Z*9Kȱ朰f%j˅Ktʑ.q_'xS8{xF,A|+yr'ʁB\h1ٸ*tZ/b3m| 3m lY1K?j+$iMv ^P%TG%HBBy_bIMo `o{I`ސ!aц')R&+^U`6bk:1o^/t\w UQs$3b T:jUt/e0Ms~π$&D$ĈܗA2bR#CObRC8FxT AVub.XxWq$^ }`UL4뀥ksfB鈭 .|-% f+9ڟnK۸ ]g1k0'#C OF.C8f}ԛkz$ תeETA~Nj^:;MSBKHFIY5u!7YǤ05d2aZ-d%[ h,?O7@3f~SgVd6dqЏϖHI[>>8OtT1tdlUkpDG-#% lWByiI+{"'_ɭ!s!~Aś)Knik?P :{fF]fB^G{o>%̕Xb-漘>e#~2KDGY\aa!4`PFE-G>@ҡ Lï/f3z$q)?=4PB7j.?d(2ex6Wp.#l]h]h3^fR̠0 ߿ouS?G}Y"3%P br8vTq?̓7ޠ1YRϦ[zѸ3 8c`¨% aTWrL[ ;ҤN sxDN-e-[+o+ ƕU:3++ ear 9dt=TLZQ^R$ cUFyD0+_t31 xunJtnvd-/  }_yw@:5f"OF əH MocT>J^q0$b"wPuذT~s|(fnk|>3CϿ?L*8F!- @璂@p䎈P<6, 2iΛnAS#@.v(6Qpkd#u4{hWq$| ?R `qn+2b{ydA s&Tj"ۜ)@~^2y JjD{+d62N<-x@ܖ!C64^<ј=6́h|9!a\ϒ䀏S3(c t,"O|}:z<{.HmRl<.xnWeܬ缽 6%69Je{89e۩ JP%Ȅ/IBN(Vc@WVСxst_'ޏ46UC*֛0.mEp?P^A{%H;O9Bn2n+ogCM^Uˤ p08'{I|&#ϒgtJY4ZD `01 âw ۉ8ߕ(H>C^xB7bx. \E [3Ѥv'~||}5Ts}VZ2s# B16ץk#4]t)2螐#_r^ |&\~ +VJ(΁z< B'g|p l6A$+{=N+ Z\1.C4QT.;FWk4muBŊc]SrEH\x}bIrv.Nf]׉e4f:k sH P]e\Zc OD%RŌZ?Ā| n8jk9.L;>ݓ *r!؁8/]5Ȱ#qEgAq_Y}Уc+mkh &HL5r&M X:C+1QiTݠU<&@-2?$jRn~;SM7KShXseTl8*S=,+ءYuT#ƫZ䲼=}s/̟n- *?SHx 3S'@Q<_~ЩG0İ|1.Ai뫅\K/Gy8o+SpAp!}2 ^cݶ:3Th~=;7ΧQ'nO4ziKc՟ˣ 4 dDEc4V[Gd V0H 8ɋoe=5ɥ% ^ۂS+!Tϲ1US25Wo8ɲBMҔ:6A#eFR _U"NIHJ۠x&ʲW+:xOf<ض]'VGї;on0|Qjќ;7_k=ovvv ʙ.8ᬍj1L,nV]sнa_~8TtJ|#?gyg0'`g:3rQ5‚aX(1;Hukl'&̨oQ=Sn7 &|vK`Pg0gԐPIiX1hXY $eȔͪCP\[MӣrN;{Jz/Az+16 P$C*3FfE\t/t hHH5>l`wQV5@ޢwΗ]?߱Q>W gq]j f|K;lpkN]mL-<?JUhVەі*,;.|yBB XHH@wC(G$r1(UCd]Nrzg_il8٘HWYB*_eeB9*z3+rY ~(u[u(E* [KXꋊ#+! [m,395T1mƀIr%.;~fR XCبk۝oK7Y61Z1T}Dj@mA+8ZVTJTThIt (7>"$_pkhz43JёX:/zSa/A, #%h7%Ϳ ~NT;i)wwT.Q(e5A)hQw2O,3KC??PˌAL? v,.&B*+Tt%ls!}yo-xm"=h}w@>"Pe}Sq2*\  '-fuXk__ӳ0֯1HBm"mv12?>Y4YK,?[ ZX>a1րH(JUEUS ٢gVχifj?|"Sr(_3jc]Pa6!:3JiirKrYS4mI  eTT K]'-UJ9柵(Ғ%SPkjN^.a)]:G‡"Zs:Xt;~ GQyĭb. YfqoIQX>xma- $ŵPtc onF4k*m9DOnԅ~SC`*ؘRm G̦,s~Aw Zr({[g>x5KDZoFb@'=* J_\}KIpm-9Tfari:i8q㬒@RH7fLT[a%=ǩ5)[ B%H3n/X O!I%D,?7kgI(j(>M۵(`bsH*7p6BY.}Z>_OԽʃ'E$ ?C5) _W/&1A HғQx_X7f1J_ȵ\u:%L\gl>6SeJ0 QA? ˏ*́=$sZGNc^cJ$QfPL j~̖joUَ9Eg5dq邩MSoBX|ز~ENɧׅ,:,U -v! w,J!?<ȐxJc̠x^<4%aa{>SBkХkSI7-3MsDOQbA\Ff?Ӿz[ɴ=9/יOGR%צ9&Cu{/ry,m<ϱ^,57ש+P6O( 9A g`ĠKB):{> ?W3ѧHGFSNMl1<׵"c-A s҇AAΓD6 M Q1 !'kXEu%oGnik~,gn3[GjuYF͋uV۱-jn~&d.fib'Mjs4QٱeQȺ!C[gRd(Tx"I6>Pigdi60ְ~g+}Z-?AUYw'* +)||S5oWKeɄ8Ib {X`didfa[>ZLJr_Hnk}$1\eJ }fM8G~R{\ehDN查хX;0߲?D8l7*A.1VJ 4=6!6G=qB\Jk<ݡ-Ȑnr"C"<ްPk}}$iwb_:]1Ʊ=BL,)WjjEc`9z[J~p?[$RƲj0mD}7rr`:-Ѐ,H ȕB(Gar8 t;EGqg ڪnҳ˅AFR;+DB|LxYR %Z/PdUAP.1Рk=Nâa:r.iAJpIiAnPA:E9纾g,i뱳흷/Jք>Nf=V6L/d|\Cr>r2\^v"wuDZhDe"ۨUpV+'gwE2C^'`Uy]/u3 J,1a [h23⵵LZ8d= @F9[߰C("g W,/k]Wx9O*͘ G/ u PGYVvuŏ[dHڰ[- KL%q@hT5m6T酘P1 ^O{'N 5VY&NQ+SG4#ŇrOW'ŮQ2$WX7N"06;}~?v F1Ȋ)ڮSHdk\.[)_g/Tko!4","HY]ɶe [BYfd9Ç*3M[bzB 'n05U‚Q1ޛE:iR/`umd]Ս?  %OI@WZ؍x ~wEԼSd USMy=0|9k M55XD}8aE?[&\.

"); } QString logLevelInformation() { return i18n("

    " "
  • Off disables logging.
  • " "
  • Low logs all blocked packets not matching the default policy (with rate limiting), " "as well as packets matching logged rules.
  • " "
  • Medium as per Low, plus all allowed packets not matching the default policy, " "all invalid packets, and all new connections. All logging is done with rate limiting.
  • " "
  • High as per Medium (without rate limiting), plus all packets with rate " "limiting.
  • " "
  • Full log everything, without rate limiting.
  • " "

" "

Levels above Medium generate a lot of logging output, and may quickly fill up your disk. " "Medium may generate a lot of logging output on a busy system.

"); } QString loggingInformation() { return i18n("

Per rule logging." "

  • None no logging is performed when a packet matches a rule.
  • " "
  • New connections will log all new connections matching a rule.
  • " "
  • All packets will log all packets matching a rule.
  • " "

    "); } QString ruleOrderInformation() { return i18n("

    Rule ordering is important and the first match wins. Therefore when adding rules, add " "the more specific rules first with more general rules later.

    "); } } } ufw-kde-0.5.0/kcm/rulewidget.ui0000664000175000017500000005607412270515626016014 0ustar ubuntuubuntu RuleWidget 0 0 499 420 0 Policy: Direction: Logging: Qt::Vertical 20 40 Protocol: -1 0 0 false 0 0 64 0 Port number true Port: 0 0 true true QComboBox::AdjustToContents Policy: Direction: Source 5 Address: Any address true false false false 0 0 IP address true Any port true false Port: false false 0 0 64 0 Port number true false false QComboBox::AdjustToContents 0 0 Destination QFormLayout::ExpandingFieldsGrow 5 Address: Any address true false false false 0 0 IP address true Any port true false false false 0 0 64 0 Port number true false false QComboBox::AdjustToContents 0 0 Port: Protocol: Interface: Logging: Qt::Vertical 20 87 true KSqueezedTextLabel QLabel
    ksqueezedtextlabel.h
    KLineEdit QLineEdit
    klineedit.h
    UFW::ComboBox QComboBox
    combobox.h
    1
    UFW::LineEdit KLineEdit
    lineedit.h
    1
    UFW::StackedWidget QStackedWidget
    stackedwidget.h
    1
    ruleType simplePolicy simpleDirection simplePortRadio simplePort simpleProfileRadio simpleProfile simpleProtocol simpleLogging advancedPolicy advancedDirection advancedSrcAnyHostRadio advancedSrcHostRadio advancedSrcHost advancedSrcAnyPortRadio advancedSrcPortRadio advancedSrcPort advancedSrcProfileRadio advancedSrcProfile advancedDestAnyHostRadio advancedDestHostRadio advancedDestHost advancedDestAnyPortRadio advancedDestPortRadio advancedDestPort advancedDestProfileRadio advancedDestProfile advancedProtocol advancedInterface advancedLogging simplePortRadio toggled(bool) simplePort setEnabled(bool) 92 106 152 108 simpleProfileRadio toggled(bool) simpleProfile setEnabled(bool) 102 138 135 141 advancedSrcHostRadio toggled(bool) advancedSrcHost setEnabled(bool) 87 164 164 172 advancedSrcPortRadio toggled(bool) advancedSrcPort setEnabled(bool) 87 222 120 226 advancedSrcProfileRadio toggled(bool) advancedSrcProfile setEnabled(bool) 89 255 148 258 advancedDestHostRadio toggled(bool) advancedDestHost setEnabled(bool) 328 158 357 162 advancedDestPortRadio toggled(bool) advancedDestPort setEnabled(bool) 332 219 375 221 advancedDestProfileRadio toggled(bool) advancedDestProfile setEnabled(bool) 331 249 360 251
    ufw-kde-0.5.0/kcm/statusbox.h0000664000175000017500000000245612270515626015502 0ustar ubuntuubuntu#ifndef UFW_STATUS_BOX_H #define UFW_STATUS_BOX_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include namespace UFW { class StatusBox : public QGroupBox { public: StatusBox(QWidget *parent=0); StatusBox(const QString &title, QWidget *parent=0); virtual ~StatusBox() { } void setStatus(bool on); void paintEvent(QPaintEvent *ev); private: void init(); private: bool current; QPixmap pixmaps[2]; }; } #endif ufw-kde-0.5.0/kcm/blocker.cpp0000664000175000017500000000264012270515626015415 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "blocker.h" #include namespace UFW { void Blocker::add(QObject *object) { object->removeEventFilter(this); object->installEventFilter(this); } bool Blocker::eventFilter(QObject *object, QEvent *event) { if(active && (QEvent::MouseButtonPress==event->type() || QEvent::MouseButtonRelease==event->type() || QEvent::MouseButtonDblClick==event->type() || QEvent::KeyPress==event->type() || QEvent::KeyRelease==event->type())) return true; return QObject::eventFilter(object, event); } } #include "blocker.moc" ufw-kde-0.5.0/kcm/logviewer.h0000664000175000017500000000325112270515626015443 0ustar ubuntuubuntu#ifndef UFW_LOG_VIEWER_H #define UFW_LOG_VIEWER_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include #include class QTreeWidget; class KAction; using namespace KAuth; namespace UFW { class Kcm; class LogViewer : public KDialog { Q_OBJECT public: LogViewer(Kcm *p); virtual ~LogViewer(); public Q_SLOTS: void restoreState(); void refresh(); void toggleDisplay(); void queryPerformed(ActionReply reply); void createRule(); void selectionChanged(); private: void setupWidgets(); void setupActions(); void parse(const QString &line); private: Kcm *kcm; Action viewAction; QString lastLine; QTreeWidget *list; KAction *toggleRawAction, *createRuleAction; bool headerSizesSet; }; } #endif ufw-kde-0.5.0/kcm/logviewer.cpp0000664000175000017500000002732012270515626016001 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "logviewer.h" #include "types.h" #include "rule.h" #include "kcm.h" #include #include #include #include #include #include #include #include #include #include #include namespace UFW { enum Columns { COL_RAW, COL_DATE, COL_ACTION, COL_FROM, COL_TO }; #define CFG_GROUP "KCM_UFW_LogViewer" #define CFG_LIST_STATE "ListState" #define CFG_SHOW_RAW "Raw" #define CFG_SIZE "Size" static int strToMonth(const QString &str) { static QMap map; if(map.isEmpty()) { map["Jan"]=1; map["Feb"]=2; map["Mar"]=3; map["Apr"]=4; map["May"]=5; map["Jun"]=6; map["Jul"]=7; map["Aug"]=8; map["Sep"]=9; map["Oct"]=10; map["Nov"]=11; map["Dec"]=12; } return map.contains(str) ? map[str] : -1; } static QString parseDate(const QString &monthStr, const QString &dayStr, const QString &timeStr) { int month=strToMonth(monthStr), day=-1, h=-1, m=-1, s=-1; if(-1!=month) { day=dayStr.toInt(); h=timeStr.mid(0, 2).toInt(); m=timeStr.mid(3, 2).toInt(); s=timeStr.mid(6, 2).toInt(); if(s>-1) { QDateTime dateTime(QDate(QDate::currentDate().year(), month, day), QTime(h, m, s)); if (dateTime.isValid()) return KGlobal::locale()->formatDateTime(dateTime, KLocale::ShortDate, true); } } return monthStr+QChar(' ')+dayStr+QChar(' ')+timeStr; } LogViewer::LogViewer(Kcm *p) : KDialog(p) , kcm(p) , headerSizesSet(false) { setupWidgets(); setupActions(); refresh(); // Can't restore QHeaderView in constructor, so use a timer - and restore after eventloop starts. QTimer::singleShot(0, this, SLOT(restoreState())); KConfigGroup grp(KGlobal::config(), CFG_GROUP); QSize sz=grp.readEntry(CFG_SIZE, QSize(800, 400)); if(sz.isValid()) resize(sz); } LogViewer::~LogViewer() { KConfigGroup grp(KGlobal::config(), CFG_GROUP); grp.writeEntry(CFG_LIST_STATE, list->header()->saveState()); grp.writeEntry(CFG_SHOW_RAW, toggleRawAction->isChecked()); grp.writeEntry(CFG_SIZE, size()); } void LogViewer::restoreState() { KConfigGroup grp(KGlobal::config(), CFG_GROUP); QByteArray state=grp.readEntry(CFG_LIST_STATE, QByteArray()); if(!state.isEmpty()) { list->header()->restoreState(state); headerSizesSet=true; } toggleRawAction->setChecked(grp.readEntry(CFG_SHOW_RAW, false)); toggleDisplay(); } void LogViewer::refresh() { QVariantMap args; args["lastLine"]=lastLine; viewAction.setArguments(args); viewAction.execute(); } void LogViewer::toggleDisplay() { list->setColumnHidden(COL_DATE, toggleRawAction->isChecked()); list->setColumnHidden(COL_ACTION, toggleRawAction->isChecked()); list->setColumnHidden(COL_FROM, toggleRawAction->isChecked()); list->setColumnHidden(COL_TO, toggleRawAction->isChecked()); list->setColumnHidden(COL_RAW, !toggleRawAction->isChecked()); } void LogViewer::queryPerformed(ActionReply reply) { QStringList lines=reply.succeeded() ? reply.data()["lines"].toStringList() : QStringList(); if(!lines.isEmpty()) { QStringList::ConstIterator it(lines.constBegin()), end(lines.constEnd()); for(; it!=end; ++it) { parse(*it); lastLine=*it; } if(!headerSizesSet && list->topLevelItemCount()>0) { list->header()->resizeSections(QHeaderView::ResizeToContents); headerSizesSet=true; } } } void LogViewer::setupWidgets() { QWidget *mainWidget=new QWidget(this); QVBoxLayout *layout=new QVBoxLayout(mainWidget); KToolBar *toolbar=new KToolBar(mainWidget); KAction *refreshAction=new KAction(KIcon("view-refresh"), i18n("Refresh"), this); toggleRawAction=new KAction(KIcon("flag-red"), i18n("Display Raw"), this); toggleRawAction->setCheckable(true); createRuleAction=new KAction(KIcon("list-add"), i18n("Create Rule"), this); connect(toggleRawAction, SIGNAL(toggled(bool)), SLOT(toggleDisplay())); connect(refreshAction, SIGNAL(triggered(bool)), SLOT(refresh())); connect(createRuleAction, SIGNAL(triggered(bool)), SLOT(createRule())); toolbar->addAction(refreshAction); toolbar->addAction(toggleRawAction); toolbar->addAction(createRuleAction); toolbar->setSizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed)); list=new QTreeWidget(this); QTreeWidgetItem *headerItem = list->headerItem(); headerItem->setText(COL_RAW, i18n("Raw")); headerItem->setText(COL_DATE, i18n("Date")); headerItem->setText(COL_ACTION, i18n("Action")); headerItem->setText(COL_FROM, i18n("From")); headerItem->setText(COL_TO, i18n("To")); list->setRootIsDecorated(false); list->setItemsExpandable(false); list->setAllColumnsShowFocus(true); layout->addWidget(toolbar); layout->addWidget(list); setMainWidget(mainWidget); setCaption(i18n("Log Viewer")); setButtons(KDialog::Close); connect(list, SIGNAL(itemSelectionChanged()), SLOT(selectionChanged())); selectionChanged(); } void LogViewer::setupActions() { viewAction=KAuth::Action("org.kde.ufw.viewlog"); viewAction.setHelperID("org.kde.ufw"); #if KDE_IS_VERSION(4, 5, 90) viewAction.setParentWidget(this); #endif // queryAction.setExecutesAsync(true); connect(viewAction.watcher(), SIGNAL(actionPerformed(ActionReply)), SLOT(queryPerformed(ActionReply))); } void LogViewer::parse(const QString &line) { // Apr 6 11:42:41 kubuntu-10 kernel: [36122.101381] [UFW BLOCK] IN= OUT=eth0 SRC=1.2.3.4 DST=1.2.3.4 LEN=76 TOS=0x00 PREC=0x00 TTL=64 ID=0 DF PROTO=UDP SPT=1 DPT=1 LEN=56 QString l(line); l=l.replace("[UFW ", "[UFW_"); l=l.replace("\n", ""); QStringList parts=l.split(' ', QString::SkipEmptyParts); if(parts.length()>11) { QStringList::ConstIterator it(parts.constBegin()), end(parts.constEnd()); QString destAddress, sourceAddress, destPort, sourcePort, interfaceIn, interfaceOut, action, date=parseDate(parts[0], parts[1], parts[2]); Types::Protocol protocol=Types::PROTO_BOTH; for(; it!=end; ++it) { if((*it).startsWith(QLatin1String("IN="))) interfaceIn=(*it).mid(3); else if((*it).startsWith(QLatin1String("OUT="))) interfaceOut=(*it).mid(4); else if((*it).startsWith(QLatin1String("SRC="))) sourceAddress=(*it).mid(4); else if((*it).startsWith(QLatin1String("DST="))) destAddress=(*it).mid(4); else if((*it).startsWith(QLatin1String("PROTO="))) protocol=Types::toProtocol((*it).mid(6).toLower()); else if((*it).startsWith(QLatin1String("SPT="))) sourcePort=(*it).mid(4); else if((*it).startsWith(QLatin1String("DPT="))) destPort=(*it).mid(4); else if((*it).startsWith(QLatin1String("[UFW_"))) { if(QLatin1String("[UFW_BLOCK]")==(*it)) action=Types::toString(Types::POLICY_DENY); // i18n("Block"); else if(QLatin1String("[UFW_ALLOW]")==(*it)) action=Types::toString(Types::POLICY_ALLOW); // i18n("Allow"); else { action=(*it).mid(5); action.replace("]", ""); } } } l=l.replace("[UFW_", "[UFW "); // Revert! new QTreeWidgetItem(list, QStringList() << l << date << action << Rule::modify(sourceAddress, sourcePort, QString(), interfaceIn, protocol, true) << Rule::modify(destAddress, destPort, QString(), interfaceOut, protocol, true)); } } void LogViewer::selectionChanged() { createRuleAction->setEnabled(1==list->selectedItems().count()); } void LogViewer::createRule() { QList items=list->selectedItems(); QTreeWidgetItem *item=items.count() ? items.first() : 0L; if(item) { QString l(item->text(COL_RAW)); l=l.replace("[UFW ", "[UFW_"); QStringList parts=l.split(' ', QString::SkipEmptyParts); QStringList::ConstIterator it(parts.constBegin()), end(parts.constEnd()); QString destAddress, sourceAddress, destPort, sourcePort, interfaceIn, interfaceOut, action; Types::Protocol protocol=Types::PROTO_BOTH; Types::Policy pol=Types::POLICY_DENY; for(; it!=end; ++it) { if((*it).startsWith(QLatin1String("IN="))) interfaceIn=(*it).mid(3); else if((*it).startsWith(QLatin1String("OUT="))) interfaceOut=(*it).mid(4); else if((*it).startsWith(QLatin1String("SRC="))) sourceAddress=(*it).mid(4); else if((*it).startsWith(QLatin1String("DST="))) destAddress=(*it).mid(4); else if((*it).startsWith(QLatin1String("PROTO="))) protocol=Types::toProtocol((*it).mid(6).toLower()); else if((*it).startsWith(QLatin1String("SPT="))) sourcePort=(*it).mid(4); else if((*it).startsWith(QLatin1String("DPT="))) destPort=(*it).mid(4); else if((*it).startsWith(QLatin1String("[UFW_"))) { // Invert rule type - as we are creating the inverse of what the log says! pol=QLatin1String("[UFW_BLOCK]")==(*it) ? Types::POLICY_ALLOW : Types::POLICY_DENY; } } kcm->createRule(Rule(pol, interfaceOut.isEmpty(), Types::LOGGING_OFF, protocol, QString(), QString(), sourceAddress, sourcePort, destAddress, destPort, interfaceIn, interfaceOut)); } } } #include "logviewer.moc" ufw-kde-0.5.0/kcm/stackedwidget.h0000664000175000017500000000227212270515626016264 0ustar ubuntuubuntu#ifndef UFW_STACKED_WIDGET_H #define UFW_STACKED_WIDGET_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include namespace UFW { class StackedWidget : public QStackedWidget { public: StackedWidget(QWidget *parent=0); virtual ~StackedWidget() { } void paintEvent(QPaintEvent *ev); private: QPixmap pixmap; }; } #endif ufw-kde-0.5.0/kcm/lineedit.h0000664000175000017500000000234712270515626015242 0ustar ubuntuubuntu#ifndef UFW_LINE_EDIT_H #define UFW_LINE_EDIT_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include class QRadioButton; namespace UFW { class LineEdit : public KLineEdit { public: LineEdit(QWidget *parent=0); virtual ~LineEdit() { } bool event(QEvent *ev); void setRadio(QRadioButton *r) { radioButton=r; } private: QRadioButton *radioButton; bool mousePressed; }; } #endif ufw-kde-0.5.0/kcm/rule.h0000664000175000017500000001424112270515626014410 0ustar ubuntuubuntu#ifndef UFW_RULE_H #define UFW_RULE_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "types.h" #include class QDomElement; namespace UFW { class Rule { public: static int getServicePort(const QString &name); static QString protocolSuffix(Types::Protocol prot, const QString &sep=QString("/")); static QString modify(const QString &address, const QString &port, const QString &application, const QString iface, const Types::Protocol &protocol, bool matchPortNoProto=false); Rule(); Rule(QDomElement &elem); Rule(Types::Policy pol, bool in, Types::Logging log, Types::Protocol prot, // const QString &descr=QString(), const QString &hsh=QString(), const QString &srcHost=QString(), const QString &srcPort=QString(), const QString &destHost=QString(), const QString &destPort=QString(), const QString &ifaceIn=QString(), const QString &ifaceOut=QString(), const QString &srcApp=QString(), const QString &destApp=QString(), unsigned int i=0) : position(i), action(pol), incoming(in), v6(false), protocol(prot), logtype(log), destApplication(destApp), sourceApplication(srcApp), destAddress(destHost), sourceAddress(srcHost), destPort(destPort), sourcePort(srcPort), interfaceIn(ifaceIn), interfaceOut(ifaceOut) // , description(descr), hash(hsh) { } QString toStr() const; QString fromStr() const; QString actionStr() const; QString protocolStr() const; QString ipV6Str() const; QString loggingStr() const; QString toXml() const; Types::Policy getAction() const { return action; } bool getIncoming() const { return incoming; } bool getV6() const { return v6; } const QString & getDestApplication() const { return destApplication; } const QString & getSourceApplication() const { return sourceApplication; } const QString & getDestAddress() const { return destAddress; } const QString & getSourceAddress() const { return sourceAddress; } const QString & getDestPort() const { return destPort; } const QString & getSourcePort() const { return sourcePort; } const QString & getInterfaceIn() const { return interfaceIn; } const QString & getInterfaceOut() const { return interfaceOut; } Types::Protocol getProtocol() const { return protocol; } Types::Logging getLogging() const { return logtype; } // const QString & getDescription() const { return description; } // const QString & getHash() const { return hash; } void setPosition(unsigned int v) { position=v; } void setAction(Types::Policy v) { action=v; } void setIncoming(bool v) { incoming=v; } void setV6(bool v) { v6=v; } void setDestApplication(const QString &v) { destApplication=v; } void setSourceApplication(const QString &v) { sourceApplication=v; } void setDestAddress(const QString &v) { destAddress=v; } void setSourceAddress(const QString &v) { sourceAddress=v; } void setDestPort(const QString &v) { destPort=v; } void setSourcePort(const QString &v) { sourcePort=v; } void setInterfaceIn(const QString &v) { interfaceIn=v; } void setInterfaceOut(const QString &v) { interfaceOut=v; } void setProtocol(Types::Protocol v) { protocol=v; } void setLogging(Types::Logging v) { logtype=v; } // void setDescription(const QString &v) { description=v; } // void setHash(const QString &v) { hash=v; } // 'different' is used in the EditRule dialog to know whether the rule has actually changed... bool different(const Rule &o) const { return logtype!=o.logtype /*|| description!=o.description*/ || !(*this==o); } // bool onlyDescrChanged(const Rule &o) const // { // return (*this==o) && logtype==o.logtype && description!=o.description; // } bool operator==(const Rule &o) const { return action==o.action && incoming==o.incoming && v6==o.v6 && protocol==o.protocol && //logtype==o.logtype && destApplication==o.destApplication && sourceApplication==o.sourceApplication && destAddress==o.destAddress && sourceAddress==o.sourceAddress && (destApplication.isEmpty() && o.destApplication.isEmpty() ? destPort==o.destPort : true) && (sourceApplication.isEmpty() && o.sourceApplication.isEmpty() ? sourcePort==o.sourcePort : true) && interfaceIn==o.interfaceIn && interfaceOut==o.interfaceOut; } private: int position; Types::Policy action; bool incoming, v6; Types::Protocol protocol; Types::Logging logtype; QString destApplication, sourceApplication, destAddress, sourceAddress, destPort, sourcePort, interfaceIn, interfaceOut; // description, // hash; }; } #endif ufw-kde-0.5.0/kcm/types.h0000664000175000017500000000456012270515626014610 0ustar ubuntuubuntu#ifndef UFW_TYPES_H #define UFW_TYPES_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include namespace UFW { namespace Types { enum LogLevel { LOG_OFF, LOG_LOW, LOG_MEDIUM, LOG_HIGH, LOG_FULL, LOG_COUNT }; enum Logging { LOGGING_OFF, LOGGING_NEW, LOGGING_ALL, LOGGING_COUNT }; enum Policy { POLICY_ALLOW, POLICY_DENY, POLICY_REJECT, POLICY_LIMIT, POLICY_COUNT, POLICY_COUNT_DEFAULT=POLICY_COUNT-1 // No 'Limit' for defaults... }; enum PredefinedPort { PP_AMULE, PP_DELUGE, PP_KTORRENT, PP_NICOTINE, PP_QBITTORRNET, PP_TRANSMISSION, PP_IM_ICQ, PP_IM_JABBER, PP_IM_WLM, PP_IM_YAHOO, PP_FTP, PP_HTTP, PP_HTTPS, PP_IMAP, PP_IMAPS, PP_POP3, PP_POP3S, PP_SMTP, PP_NFS, PP_SAMBA, PP_SSH, PP_VNC, PP_ZEROCONF, PP_TELNET, PP_NTP, PP_CUPS, PP_COUNT }; enum Protocol { PROTO_BOTH, PROTO_TCP, PROTO_UDP, PROTO_COUNT }; extern QString toString(LogLevel level, bool ui=false); extern LogLevel toLogLevel(const QString &str); extern QString toString(Logging log, bool ui=false); extern QString toString(Policy policy, bool ui=false); extern Policy toPolicy(const QString &str); extern QString toString(PredefinedPort pp, bool ui=false); extern PredefinedPort toPredefinedPort(const QString &str); extern QString toString(Protocol proto, bool ui=false); extern Protocol toProtocol(const QString &str); } } #endif ufw-kde-0.5.0/kcm/combobox.cpp0000664000175000017500000000460412270515626015606 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "combobox.h" #include #include #include #include namespace UFW { ComboBox::ComboBox(QWidget *parent) : QComboBox(parent) , radioButton(0L) , mousePressed(false) { } bool ComboBox::event(QEvent *ev) { if(!isEnabled()) { switch(ev->type()) { case QEvent::MouseButtonPress: mousePressed=true; break; case QEvent::MouseButtonRelease: if(mousePressed && radioButton && !radioButton->isChecked() && rect().contains(((QMouseEvent *)ev)->pos())) { radioButton->setChecked(true); setFocus(); QMouseEvent *thisEvent = (QMouseEvent *)ev, *press = new QMouseEvent(QEvent::MouseButtonPress, thisEvent->pos(), thisEvent->button(), thisEvent->buttons(), thisEvent->modifiers()), *release = new QMouseEvent(thisEvent->type(), thisEvent->pos(), thisEvent->button(), thisEvent->buttons(), thisEvent->modifiers()); QCoreApplication::postEvent(this, press); QCoreApplication::postEvent(this, release); } mousePressed=false; break; default: break; } } return QComboBox::event(ev); } } ufw-kde-0.5.0/kcm/ruledialog.h0000664000175000017500000000323512270515626015571 0ustar ubuntuubuntu#ifndef UFW_RULE_DIALOG_H #define UFW_RULE_DIALOG_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include #include "rule.h" #include "kcm.h" #include "ui_rulewidget.h" namespace UFW { class RuleDialog : public KDialog, public Ui::RuleWidget { Q_OBJECT public: RuleDialog(Kcm *parent, bool isEditDlg); virtual ~RuleDialog(); void reset(); void setRule(const Rule &rule); bool ipV6Enabled() const { return kcm->ipV6Enabled(); } private Q_SLOTS: void update(); void setRuleType(); void showError(const QString &err); void controlSimpleProtocol(); void controlAdvancedProtocol(); private: Kcm *kcm; bool isEdit; Rule editingRule; QMap simpleIndexToPredefinedPort, advancedIndexToPredefinedPort; }; } #endif ufw-kde-0.5.0/kcm/appprofiles.cpp0000664000175000017500000000537312270515626016326 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "appprofiles.h" #include #include #include namespace UFW { namespace AppProfiles { Entry::Entry(const QString &n, const QString &p) : name(n), ports(p) { ports.replace('|', ' '); // bool hasUdp=ports.contains("/udp"), // hasTcp=ports.contains("/tcp); // // protocol=hasUdp==hasTcp ? Types::PROTO_BOTH // : hasUdp // ? Types::PROTO_UDP // : Types::PROTO_TCP; } const QList & get() { static QList profiles; static bool init=false; if(!init) { static const char * constProfileDir="/etc/ufw/applications.d/"; QStringList files(QDir(constProfileDir).entryList()); QStringList::ConstIterator it(files.constBegin()), end(files.constEnd()); for(; it!=end; ++it) if((*it)!="." && (*it)!="..") { KConfig cfg(constProfileDir+(*it), KConfig::SimpleConfig); QStringList groups(cfg.groupList()); QStringList::ConstIterator gIt(groups.constBegin()), gEnd(groups.constEnd()); for(; gIt!=gEnd; ++gIt) { QString ports(cfg.group(*gIt).readEntry("ports", QString())); if(!ports.isEmpty() && !profiles.contains(*gIt)) profiles.append(Entry(*gIt, ports)); } } qSort(profiles); } return profiles; } Entry get(const QString &name) { QList::ConstIterator it(get().constBegin()), end(get().constEnd()); for(; it!=end; ++it) if((*it).name==name) return *it; return Entry(QString()); } } } ufw-kde-0.5.0/kcm/ruleslist.h0000664000175000017500000000303512270515626015466 0ustar ubuntuubuntu#ifndef UFW_RULES_LIST_H #define UFW_RULES_LIST_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "rule.h" #include class QDropEvent; namespace UFW { class RulesList : public QTreeWidget { Q_OBJECT public: enum Columns { COL_ACTION, COL_FROM, COL_TO, COL_IPV6, COL_LOGGING // COL_DESCR }; RulesList(QWidget *parent); virtual ~RulesList(); void resizeToContents(); QTreeWidgetItem * insert(const Rule &rule); void dropEvent(QDropEvent *event); public Q_SLOTS: void restoreState(); Q_SIGNALS: void dropped(const QTreeWidgetItem *item); private: bool headerSizesSet; }; } #endif ufw-kde-0.5.0/kcm/types.cpp0000664000175000017500000001310312270515626015134 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "types.h" #include #include namespace UFW { namespace Types { QString toString(LogLevel level, bool ui) { switch(level) { case LOG_OFF: return ui ? i18n("Off") : "off"; default: case LOG_LOW: return ui ? i18n("Low") : "low"; case LOG_MEDIUM: return ui ? i18n("Medium") : "medium"; case LOG_HIGH: return ui ? i18n("High") : "high"; case LOG_FULL: return ui ? i18n("Full") : "full"; } } LogLevel toLogLevel(const QString &str) { for(int i=0; i * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include namespace UFW { class Blocker : public QObject { Q_OBJECT public: Blocker(QObject *parent) : QObject(parent), active(false) { } virtual ~Blocker() { } void add(QObject *object); bool eventFilter(QObject *object, QEvent *event); void setActive(bool b) { active=b; } bool isActive() const { return active; } private: bool active; }; } #endif ufw-kde-0.5.0/kcm/ufw.ui0000664000175000017500000002257212270515626014436 0ustar ubuntuubuntu Ufw 0 0 614 569 Configuration false Firewall status: Enabled IPv6 support: Enabled Default outgoing policy: Default incoming policy: Logging level: 0 22 22 Rules false true false true false Action From To IPv6 Logging Add... Edit... Remove Move Up Move Down Qt::Vertical 73 10 Modules false true false true true false 64 Protocol Connection Tracking NAT true Refresh Qt::ToolButtonTextBesideIcon true Profiles Qt::ToolButtonTextBesideIcon true Show Log... Qt::ToolButtonTextBesideIcon true KSqueezedTextLabel QLabel
    ksqueezedtextlabel.h
    KPushButton QPushButton
    kpushbutton.h
    UFW::RulesList QTreeWidget
    ruleslist.h
    UFW::StatusBox QGroupBox
    statusbox.h
    1
    ufwEnabled ipv6Enabled defaultOutgoingPolicy defaultIncomingPolicy ufwLoggingLevel tabWidget ruleList addRuleButton editRuleButton removeRuleButton moveRuleUpButton moveRuleDownButton modulesList refreshButton profilesButton logButton
    ufw-kde-0.5.0/kcm/statusbox.cpp0000664000175000017500000000473412270515626016036 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "statusbox.h" #include #include #include #include namespace UFW { static const int constIconSize = 160; static const int constBorder = 8; StatusBox::StatusBox(QWidget *parent) : QGroupBox(parent) , current(true) { init(); } StatusBox::StatusBox(const QString &title, QWidget *parent) : QGroupBox(title, parent) , current(true) { init(); } void StatusBox::init() { QImage off=KIcon("security-low").pixmap(constIconSize, constIconSize, QIcon::Normal).toImage(), on=KIcon("security-high").pixmap(constIconSize, constIconSize, QIcon::Normal).toImage(); KIconEffect::deSaturate(off, 0.8); //KIconEffect::deSaturate(on, 0.1); KIconEffect::semiTransparent(off); KIconEffect::semiTransparent(off); KIconEffect::semiTransparent(off); KIconEffect::semiTransparent(on); KIconEffect::semiTransparent(on); pixmaps[0]=QPixmap::fromImage(off); pixmaps[1]=QPixmap::fromImage(on); setContentsMargins(0, 0, 0, 0); resize(constIconSize, constIconSize); setStatus(false); } void StatusBox::setStatus(bool on) { if(current!=on) { current=on; update(); } } void StatusBox::paintEvent(QPaintEvent *ev) { QGroupBox::paintEvent(ev); QRect r(rect()); QPainter painter(this); painter.drawPixmap(Qt::RightToLeft == layoutDirection() ? r.left() + constBorder : r.right() - constIconSize + constBorder, r.top() + constBorder, pixmaps[current ? 1 : 0]); } } ufw-kde-0.5.0/kcm/kcm.h0000664000175000017500000001143612270515626014216 0ustar ubuntuubuntu#ifndef UFW_KCM_H #define UFW_KCM_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include #include #include #include #include #include #include "types.h" #include "rule.h" #include "profile.h" #include "blocker.h" #include "ui_ufw.h" class QDomNode; using namespace KAuth; namespace UFW { class LogViewer; class RuleDialog; class Kcm : public KCModule, public Ui::Ufw { Q_OBJECT public: explicit Kcm(QWidget *parent=NULL, const QVariantList &list=QVariantList()); virtual ~Kcm(); bool addRules(const QList &rules); void createRule(const Rule &rule); void editRule(Rule rule); // void editRuleDescr(const Rule &rule); bool ipV6Enabled() { return ipv6Enabled->isChecked(); } bool isActive() { return blocker->isActive(); } Q_SIGNALS: void status(const QString &msg); void error(const QString &msg); protected Q_SLOTS: void defaults(); void queryStatus(bool readDefaults=true, bool listProfiles=true); void setStatus(); void setIpV6(); void createRules(); void editRule(); void removeRule(); void moveRuleUp(); void moveRuleDown(); void moveTo(const QTreeWidgetItem *item); void setLogLevel(); void setDefaultIncomingPolicy(); void setDefaultOutgoingPolicy(); void queryPerformed(ActionReply reply); void modifyPerformed(ActionReply reply); void ruleSelectionChanged(); void ruleDoubleClicked(QTreeWidgetItem *item , int col); void moduleClicked(QTreeWidgetItem *item , int col); void saveProfile(); void loadProfile(QAction *profile); void removeProfile(QAction *profile); void importProfile(); void exportProfile(); void loadMenuShown(); void deleteMenuShown(); void displayLog(); private: QString getNewProfileName(const QString ¤tName, bool isImport); void listUserProfiles(); QAction * getAction(const QString &name); QAction * getCurrentProfile(); void saveProfile(const QString &name, const Profile &profile); void refreshProfiles(const QMap &profileList); bool profileExists(const QString &name); void addProfile(const QString &name, const Profile &profile, bool sort=true); void sortActions(); void deleteProfile(QAction *profile, bool updateState=true); void deleteProfile(const QString &name); void moveRulePos(int offset); void moveRule(int from, int to); void showCurrentStatus(); void setupWidgets(); void setupActions(); void addModules(); void setStatus(const Profile &profile); void setDefaults(const Profile &profile); void setModules(const Profile &profile); void setRules(const Profile &profile); QSet modules(); private: RuleDialog *addDialog, *editDialog; Action queryAction, modifyAction; QList currentRules; QSet otherModules; unsigned int moveToPos; QMenu *loadMenu, *deleteMenu; QAction *noProfilesAction; QMap profiles; bool loadMenuWasShown; QString loadedProfile; bool activeAction; Blocker *blocker; QSet existingProfiles; LogViewer *logViewer; }; } #endif ufw-kde-0.5.0/kcm/ufw.desktop0000664000175000017500000000333512270515626015466 0ustar ubuntuubuntu[Desktop Entry] Exec=kcmshell4 ufw Icon=security-high Type=Service X-KDE-ServiceTypes=KCModule X-DocPath=kcontrol/ufw/index.html X-KDE-Library=kcm_ufw X-KDE-ParentApp=kcontrol Name=Firewall Name[cs]=Firewall Name[de]=Firewall Name[es]=Cortafuegos Name[fr]=Pare-feu Name[gl]=Devasa Name[hu]=Tűzfal Name[nl]=Firewall Name[pt]='Firewall' Name[pt_BR]=Firewall Name[sk]=Firewall Name[sv]=Brandvägg Name[tr]=Güvenlik Duvarı Name[uk]=Брандмауер Name[x-test]=xxFirewallxx Comment=Firewall settings Comment[cs]=Nastavení firewallu Comment[de]=Firewall-Einstellungen Comment[es]=Preferencias del cortafuegos Comment[fr]=Paramètres du pare-feu Comment[gl]=Configuración da devasa Comment[hu]=Tűzfalbeállítások Comment[nl]=Firewall-instellingen Comment[pt]=Configuração da 'firewall' Comment[pt_BR]=Configurações do firewall Comment[sk]=Nastavenia firewallu Comment[sv]=Brandväggens inställningar Comment[tr]=Güvenlik duvarı ayarları Comment[uk]=Параметри брандмауера Comment[x-test]=xxFirewall settingsxx X-KDE-Keywords=ufw,firewall X-KDE-Keywords[cs]=ufw,firewall X-KDE-Keywords[de]=ufw,firewall X-KDE-Keywords[es]=ufw,cortafuegos X-KDE-Keywords[fr]=ufw, pare-feu X-KDE-Keywords[gl]=ufw,firewall, devasa X-KDE-Keywords[hu]=ufw,tűzfal X-KDE-Keywords[nl]=ufw,firewall X-KDE-Keywords[pt]=ufw,firewall X-KDE-Keywords[pt_BR]=ufw,firewall X-KDE-Keywords[sk]=ufw,firewall X-KDE-Keywords[sv]=ufw,brandvägg X-KDE-Keywords[tr]=ufw,güvenlik duvarı X-KDE-Keywords[uk]=ufw;firewall;брандмауер;файрвол;фаєрвол;мережа;міжмережевий екран X-KDE-Keywords[x-test]=xxufw,firewallxx Categories=Qt;KDE;X-KDE-settings-system; X-KDE-System-Settings-Parent-Category=network-and-connectivity ufw-kde-0.5.0/kcm/stackedwidget.cpp0000664000175000017500000000356012270515626016620 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "stackedwidget.h" #include #include #include #include namespace UFW { static const int constIconSize = 192; static const int constBorder = 0; StackedWidget::StackedWidget(QWidget *parent) : QStackedWidget(parent) { QImage img=KIcon("security-high").pixmap(constIconSize, constIconSize, QIcon::Normal).toImage(); KIconEffect::deSaturate(img, 0.5); KIconEffect::semiTransparent(img); KIconEffect::semiTransparent(img); KIconEffect::semiTransparent(img); KIconEffect::semiTransparent(img); pixmap=QPixmap::fromImage(img); } void StackedWidget::paintEvent(QPaintEvent *ev) { QStackedWidget::paintEvent(ev); QRect r(rect()); QPainter painter(this); painter.drawPixmap(Qt::RightToLeft == layoutDirection() ? r.left() + constBorder : r.right() - constIconSize + constBorder, r.top() + constBorder, pixmap); } } ufw-kde-0.5.0/kcm/lineedit.cpp0000664000175000017500000000332412270515626015571 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "lineedit.h" #include #include #include namespace UFW { LineEdit::LineEdit(QWidget *parent) : KLineEdit(parent) , radioButton(0L) , mousePressed(false) { } bool LineEdit::event(QEvent *ev) { if(!isEnabled()) { switch(ev->type()) { case QEvent::MouseButtonPress: mousePressed=true; break; case QEvent::MouseButtonRelease: if(mousePressed && radioButton && !radioButton->isChecked() && rect().contains(((QMouseEvent *)ev)->pos())) { radioButton->setChecked(true); setFocus(); } mousePressed=false; break; default: break; } } return QLineEdit::event(ev); } } ufw-kde-0.5.0/kcm/ruledialog.cpp0000664000175000017500000010735112270515626016130 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "ruledialog.h" #include "appprofiles.h" #include "types.h" #include "strings.h" #include "combobox.h" #include #include #include #include #include #include #include #include #include #include #include #include namespace UFW { static const int constPartStart=1<<16; enum RuleType { RT_SIMPLE, RT_ADVANCED }; enum Direction { DIR_IN, DIR_OUT }; struct PredefinedPort { PredefinedPort(Types::PredefinedPort v) : val(v), str(Types::toString(v, true)) { } bool operator<(const PredefinedPort &o) const { return str.localeAwareCompare(o.str)<0; } Types::PredefinedPort val; QString str; }; static void addRuleTypes(QComboBox *combo) { combo->insertItem(RT_SIMPLE, i18n("Simple")); combo->insertItem(RT_ADVANCED, i18n("Advanced")); } static void addPolicies(QComboBox *combo) { for(int i=0; iinsertItem(i, Types::toString((Types::Policy)i, true)); } static void addDirections(QComboBox *combo) { combo->insertItem(DIR_IN, i18n("Incoming")); combo->insertItem(DIR_OUT, i18n("Outgoing")); } static void addLogging(QComboBox *combo) { for(int i=0; iinsertItem(i, Types::toString((Types::Logging)i, true)); } static void addProtocols(QComboBox *combo) { for(int i=0; iinsertItem(i, Types::toString((Types::Protocol)i, true)); } static void addPredefinedPorts(QComboBox *combo, QList &sortedPp, QMap &map, bool splitMulti) { map.clear(); QList::ConstIterator it(sortedPp.constBegin()), end(sortedPp.constEnd()); for(int index=combo->count(); it!=end; ++it) { if(!AppProfiles::get().contains((*it).str) && !AppProfiles::get().contains((*it).str.toUpper()) && !AppProfiles::get().contains((*it).str.toLower())) { QString ports=Types::toString((*it).val, false); bool isMulti=ports.contains(" "); if(isMulti && splitMulti) { QStringList split(ports.split(" ")); QStringList::ConstIterator sIt(split.constBegin()), sEnd(split.constEnd()); for(int part=1; sIt!=sEnd; ++sIt, ++part) { combo->insertItem(index, (*it).str+QLatin1String(" (")+(*sIt)+QChar(')')); map[index++]=(*it).val+(part<<16); } } else { combo->insertItem(index, (*it).str+QLatin1String(" (")+ports+QChar(')')); map[index++]=(*it).val; } } } } static void getPredefinedPortAndProtocol(QMap &map, int index, QString &port, Types::Protocol &prot) { int value=map[index], part=(value&0xFFFF0000)>>16, entry=value&0xFFFF; QStringList ports(Types::toString((Types::PredefinedPort)entry).split(" ")); QStringList::ConstIterator it(ports.begin()), end(ports.end()); for(int p=1; it!=end; ++it, ++p) if(0==part || p==part) { port=*it; prot=Types::PROTO_BOTH; for(int i=0; i profiles(AppProfiles::get()); QList::ConstIterator it(profiles.constBegin()), end(profiles.constEnd()); for(; it!=end; ++it) combo->insertItem(index++, (*it).name+QLatin1String(" (")+(*it).ports+QChar(')')); } static QString getProfileName(const QString &text) { int index=text.indexOf(" ("); return -1==index ? text : text.left(index); } static QString getProfilesPorts(const QString &text) { int start=text.indexOf('('), end=text.indexOf(')'); return -1==start || -1==end ? text : text.mid(start+1, (end-(start+1))); } static void setRulePort(const QString &port, Types::Protocol prot, QRadioButton *portRadio, QRadioButton *profileRadio, QRadioButton *anyRadio, QComboBox *profileCombo) { if(anyRadio && port.isEmpty()) anyRadio->setChecked(true); else portRadio->setChecked(true); if(port.isEmpty()) return; QString portAndProt=port+Rule::protocolSuffix(prot); int index=0, numItems=profileCombo->count(); for(; indexitemText(index))==portAndProt) { profileRadio->setChecked(true); profileCombo->setCurrentIndex(index); return; } } static void addInterfaces(QComboBox *combo) { QList interfaces(QNetworkInterface::allInterfaces()); QList::ConstIterator it(interfaces.constBegin()), end(interfaces.constEnd()); combo->insertItem(0, i18n("Any interface")); for (; it!=end; ++it) combo->insertItem(combo->count(), it->name()); } static QString portInformation() { return i18n("

    Enter one or more port numbers (e.g. 20,22), " "a service name (e.g. ssh), " "or a port range (e.g. use 20:30 for ports 20 to 30)

    "); } static QString hostInformation() { return i18n("Enter an IP address (e.g. 192.168.1.100), or subnet (e.g. 192.168.1.0/24)"); } static QString ifaceInformation() { return i18n("Enter a network interface (e.g. eth0), or leave blank to apply to all interfaces"); } #define CFG_GROUP isEdit ? "KCM_UFW_EditRuleDialog" : "KCM_UFW_RuleDialog" #define CFG_RULE_TYPE "RuleType" #define CFG_SIZE "Size" class PortValidator : public QValidator { public: PortValidator(QObject *parent) : QValidator(parent) { } State validate(QString &input, int &) const { int colonCount(0); for(int i=0; i1) return Invalid; if(input.contains(",,")) return Invalid; if(input.endsWith(':')) return Intermediate; return Acceptable; } }; class IpAddressValidator : public QValidator { public: IpAddressValidator(RuleDialog *parent) : QValidator(parent) , dlg(parent) { validV4Chars << '0' << '1' << '2' << '3' << '4' << '5' << '6' << '7' << '8' << '9'; validV6Chars=validV4Chars; validV6Chars << 'A' << 'a' << 'B' << 'b' << 'C' << 'c' << 'D' << 'd' << 'E' << 'e' << 'F' << 'f' /*<< '.' << ':' << '/'*/; } State validate(QString &input, int &) const { int dotCount(0), colonCount(0), slashPos(-1); bool allowV6(dlg->ipV6Enabled()); for(int i=0; i-1 || ++dotCount>3) return Invalid; } else if(allowV6 && QChar(':')==input[i]) { // Can't have ':' after '/', or more than 7 colons! if(slashPos>-1 || ++colonCount>7) return Invalid; } else if(QChar('/')==input[i]) { // Can't have two or more slashes! if(slashPos>-1) return Invalid; slashPos=i; } else if((allowV6 && !validV6Chars.contains(input[i])) || (!allowV6 && !validV4Chars.contains(input[i]))) return Invalid; // IPv4 cant have just dots if(input.contains("..")) return Invalid; // Can't mix IPv4 and IPv6 if(input.contains(".") && input.contains(":")) return Invalid; if(input.endsWith('.') || input.endsWith('/')) return Intermediate; return Acceptable; } private: QSet validV4Chars, validV6Chars; RuleDialog *dlg; }; class IfaceValidator : public QValidator { public: IfaceValidator(QObject *parent) : QValidator(parent) { } State validate(QString &input, int &) const { for(int i=0; i0 && (3!=numDots || numColons>0)) return false; QByteArray addr(str.contains('/') ? str.split('/').first().toLatin1() : str.toLatin1()); unsigned char dest[16]; return inet_pton(numColons ? AF_INET6 : AF_INET, addr.constData(), dest)>0; } static bool checkPort(const QString &str) { if(str.isEmpty()) return true; if(str.startsWith(':') || str.startsWith(',') || str.endsWith(':') || str.endsWith(',')) return false; bool range(-1!=str.indexOf(':')); QStringList parts(str.split(QRegExp("(:|,)"))); QStringList::ConstIterator it(parts.constBegin()), end(parts.constEnd()); for(; it!=end; ++it) { bool ok; (*it).toUShort(&ok); if(!ok && (range || 0==Rule::getServicePort(*it))) return false; } return true; } static void setProfileIndex(QComboBox *combo, const QString &str) { if(str.isEmpty()) return; int index=0, numItems=combo->count(); bool haveSep=false; for(; indexitemText(index))==str) { combo->setCurrentIndex(index); return; } else if(combo->itemText(index).isEmpty()) haveSep=true; if(!haveSep) combo->insertSeparator(index++); combo->insertItem(index, str); combo->setCurrentIndex(index); } RuleDialog::RuleDialog(Kcm *parent, bool isEditDlg) : KDialog(parent) , kcm(parent) , isEdit(isEditDlg) { QWidget *mainWidet=new QWidget(this); if(isEdit) { setButtons(Help|Ok|Cancel); setCaption(i18n("Edit Rule")); setHelp("add_and_edit_rules", "ufw"); } else { setButtons(Help|Apply|Close); setButtonText(Apply, i18n("Add")); setButtonIcon(Apply, KIcon("list-add")); setCaption(i18n("Add Rule")); setHelp("add_and_edit_rules", "ufw"); } setupUi(mainWidet); setMainWidget(mainWidet); addRuleTypes(ruleType); addPolicies(simplePolicy); addDirections(simpleDirection); addLogging(simpleLogging); addProtocols(simpleProtocol); addPolicies(advancedPolicy); addDirections(advancedDirection); addLogging(advancedLogging); addProtocols(advancedProtocol); addInterfaces(advancedInterface); if(AppProfiles::get().count()) { addProfiles(simpleProfile); simpleProfile->insertSeparator(simpleProfile->count()); addProfiles(advancedSrcProfile); advancedSrcProfile->insertSeparator(advancedSrcProfile->count()); addProfiles(advancedDestProfile); advancedDestProfile->insertSeparator(advancedDestProfile->count()); } else { simpleProfileRadio->setVisible(false); simpleProfile->setVisible(false); simplePortRadio->setVisible(false); advancedSrcProfileRadio->setVisible(false); advancedSrcProfile->setVisible(false); advancedSrcPortRadio->setVisible(false); advancedDestProfileRadio->setVisible(false); advancedDestProfile->setVisible(false); advancedDestPortRadio->setVisible(false); advancedSrcProfileRadio->setEnabled(false); advancedDestProfileRadio->setEnabled(false); } QList sortedPorts; for(int i=0; isetCurrentIndex(Types::PROTO_BOTH); advancedProtocol->setCurrentIndex(Types::PROTO_BOTH); controlSimpleProtocol(); KConfigGroup grp(KGlobal::config(), CFG_GROUP); int rt=grp.readEntry(CFG_RULE_TYPE, (int)0); ruleType->setCurrentIndex(RT_SIMPLE==rt || RT_ADVANCED==rt ? rt : RT_SIMPLE); setRuleType(); simplePort->setValidator(new PortValidator(this)); advancedDestPort->setValidator(new PortValidator(this)); advancedSrcPort->setValidator(new PortValidator(this)); advancedDestHost->setValidator(new IpAddressValidator(this)); advancedSrcHost->setValidator(new IpAddressValidator(this)); advancedInterface->setEditable(true); advancedInterface->setEditText(advancedInterface->itemText(0)); advancedInterface->setValidator(new IfaceValidator(this)); simplePolicy->setToolTip(Strings::policyInformation()); advancedPolicy->setToolTip(Strings::policyInformation()); simpleLogging->setToolTip(Strings::loggingInformation()); advancedLogging->setToolTip(Strings::loggingInformation()); simplePort->setToolTip(portInformation()); advancedSrcPort->setToolTip(portInformation()); advancedDestPort->setToolTip(portInformation()); advancedSrcHost->setToolTip(hostInformation()); advancedDestHost->setToolTip(hostInformation()); advancedInterface->setToolTip(ifaceInformation()); simplePort->setRadio(simplePortRadio); simpleProfile->setRadio(simpleProfileRadio); advancedSrcHost->setRadio(advancedSrcHostRadio); advancedSrcPort->setRadio(advancedSrcPortRadio); advancedSrcProfile->setRadio(advancedSrcProfileRadio); advancedDestHost->setRadio(advancedDestHostRadio); advancedDestPort->setRadio(advancedDestPortRadio); advancedDestProfile->setRadio(advancedDestProfileRadio); QButtonGroup *advancedSrcHostGroup=new QButtonGroup(this), *advancedSrcPortGroup=new QButtonGroup(this), *advancedDestHostGroup=new QButtonGroup(this), *advancedDestPortGroup=new QButtonGroup(this); advancedSrcHostGroup->addButton(advancedSrcHostRadio); advancedSrcHostGroup->addButton(advancedSrcAnyHostRadio); advancedSrcPortGroup->addButton(advancedSrcPortRadio); advancedSrcPortGroup->addButton(advancedSrcProfileRadio); advancedSrcPortGroup->addButton(advancedSrcAnyPortRadio); advancedDestHostGroup->addButton(advancedDestHostRadio); advancedDestHostGroup->addButton(advancedDestAnyHostRadio); advancedDestPortGroup->addButton(advancedDestPortRadio); advancedDestPortGroup->addButton(advancedDestProfileRadio); advancedDestPortGroup->addButton(advancedDestAnyPortRadio); connect(simplePolicy, SIGNAL(currentIndexChanged(int)), advancedPolicy, SLOT(setCurrentIndex(int))); connect(advancedPolicy, SIGNAL(currentIndexChanged(int)), simplePolicy, SLOT(setCurrentIndex(int))); connect(simpleDirection, SIGNAL(currentIndexChanged(int)), advancedDirection, SLOT(setCurrentIndex(int))); connect(advancedDirection, SIGNAL(currentIndexChanged(int)), simpleDirection, SLOT(setCurrentIndex(int))); connect(simpleLogging, SIGNAL(currentIndexChanged(int)), advancedLogging, SLOT(setCurrentIndex(int))); connect(advancedLogging, SIGNAL(currentIndexChanged(int)), simpleLogging, SLOT(setCurrentIndex(int))); // connect(simpleDescription, SIGNAL(textEdited(const QString &)), advancedDescription, SLOT(setText(const QString &))); // connect(advancedDescription, SIGNAL(textEdited(const QString &)), simpleDescription, SLOT(setText(const QString &))); connect(simpleProfileRadio, SIGNAL(toggled(bool)), SLOT(controlSimpleProtocol())); connect(advancedSrcAnyPortRadio, SIGNAL(toggled(bool)), SLOT(controlAdvancedProtocol())); connect(advancedDestAnyPortRadio, SIGNAL(toggled(bool)), SLOT(controlAdvancedProtocol())); connect(advancedSrcProfileRadio, SIGNAL(toggled(bool)), SLOT(controlAdvancedProtocol())); connect(advancedDestProfileRadio, SIGNAL(toggled(bool)), SLOT(controlAdvancedProtocol())); // // connect(simplePort, SIGNAL(textChanged(const QString &)), advancedDestPort, SLOT(setText(const QString &))); // connect(advancedDestPort, SIGNAL(textChanged(const QString &)), simplePort, SLOT(setText(const QString &))); connect(ruleType, SIGNAL(currentIndexChanged(int)), SLOT(setRuleType())); if(isEdit) connect(this, SIGNAL(okClicked()), SLOT(update())); else connect(this, SIGNAL(applyClicked()), SLOT(update())); connect(kcm, SIGNAL(error(const QString &)), SLOT(showError(const QString &))); connect(kcm, SIGNAL(status(const QString &)), statusLabel, SLOT(setText(const QString &))); QSize sz=grp.readEntry(CFG_SIZE, QSize(160, 240)); if(sz.isValid()) resize(sz); advancedPolicy->adjustSize(); simplePolicy->adjustSize(); int width=advancedPolicy->size().width()size().width() ? simplePolicy->size().width() : advancedPolicy->size().width(); simplePolicy->setMinimumWidth(width); simplePolicy->setMaximumWidth(width); advancedPolicy->setMinimumWidth(width); advancedPolicy->setMaximumWidth(width); simpleProfile->adjustSize(); simplePort->setMinimumWidth(simpleProfile->size().width()); } RuleDialog::~RuleDialog() { KConfigGroup grp(KGlobal::config(), CFG_GROUP); grp.writeEntry(CFG_RULE_TYPE, ruleType->currentIndex()); grp.writeEntry(CFG_SIZE, size()); } void RuleDialog::reset() { // simpleDescription->setText(QString()); // advancedDescription->setText(QString()); // simpleDescription->setText(QString()); simplePolicy->setCurrentIndex(Types::POLICY_DENY); simpleDirection->setCurrentIndex(DIR_IN); simplePort->setText(QString()); simpleProtocol->setCurrentIndex(Types::PROTO_BOTH); simpleLogging->setCurrentIndex(Types::LOGGING_OFF); advancedPolicy->setCurrentIndex(Types::POLICY_DENY); advancedDirection->setCurrentIndex(DIR_IN); advancedSrcHost->setText(QString()); advancedSrcPort->setText(QString()); advancedDestHost->setText(QString()); advancedDestPort->setText(QString()); advancedProtocol->setCurrentIndex(Types::PROTO_BOTH); advancedLogging->setCurrentIndex(Types::LOGGING_OFF); advancedInterface->setEditText(advancedInterface->itemText(0)); simpleProfileRadio->setChecked(true); advancedSrcAnyPortRadio->setChecked(true); advancedDestAnyPortRadio->setChecked(true); advancedSrcAnyHostRadio->setChecked(true); advancedDestAnyHostRadio->setChecked(true); controlSimpleProtocol(); controlAdvancedProtocol(); if(RT_SIMPLE==ruleType->currentIndex()) simplePolicy->setFocus(); else advancedPolicy->setFocus(); } void RuleDialog::setRule(const Rule &rule) { editingRule=rule; // simpleDescription->setText(rule.getDescription()); // advancedDescription->setText(rule.getDescription()); // simpleDescription->setText(rule.getDescription()); simplePolicy->setCurrentIndex(rule.getAction()); simpleDirection->setCurrentIndex(rule.getIncoming() ? DIR_IN : DIR_OUT); simplePort->setText(rule.getDestPort()); simpleProtocol->setCurrentIndex(rule.getProtocol()); simpleLogging->setCurrentIndex(rule.getLogging()); advancedPolicy->setCurrentIndex(rule.getAction()); advancedDirection->setCurrentIndex(rule.getIncoming() ? DIR_IN : DIR_OUT); advancedSrcHost->setText(rule.getSourceAddress()); advancedSrcPort->setText(rule.getSourcePort()); advancedDestHost->setText(rule.getDestAddress()); advancedDestPort->setText(rule.getDestPort()); advancedProtocol->setCurrentIndex(rule.getProtocol()); advancedLogging->setCurrentIndex(rule.getLogging()); QString iface(rule.getIncoming() ? rule.getInterfaceIn() : rule.getInterfaceOut()); advancedInterface->setEditText(iface.isEmpty() ? advancedInterface->itemText(0) : iface); if(rule.getDestApplication().isEmpty()) { setRulePort(rule.getDestPort(), rule.getProtocol(), simplePortRadio, simpleProfileRadio, NULL, simpleProfile); setRulePort(rule.getDestPort(), rule.getProtocol(), advancedDestPortRadio, advancedDestProfileRadio, advancedDestAnyPortRadio, advancedDestProfile); } else { simpleProfileRadio->setChecked(true); setProfileIndex(simpleProfile, rule.getDestApplication()); advancedDestProfileRadio->setChecked(true); setProfileIndex(advancedDestProfile, rule.getDestApplication()); } if(rule.getSourceApplication().isEmpty()) { setRulePort(rule.getSourcePort(), rule.getProtocol(), advancedSrcPortRadio, advancedSrcProfileRadio, advancedSrcAnyPortRadio, advancedSrcProfile); } else { advancedSrcProfileRadio->setChecked(true); setProfileIndex(advancedSrcProfile, rule.getSourceApplication()); } ruleType->setCurrentIndex(!rule.getDestAddress().isEmpty() || !rule.getSourceAddress().isEmpty() || !rule.getSourceApplication().isEmpty() || !rule.getSourcePort().isEmpty() || !rule.getInterfaceIn().isEmpty() || !rule.getInterfaceOut().isEmpty() ? RT_ADVANCED : RT_SIMPLE); simpleProfileRadio->setVisible(simpleProfile->count()); simpleProfile->setVisible(simpleProfile->count()); simplePortRadio->setVisible(simpleProfile->count()); advancedSrcProfileRadio->setVisible(advancedSrcProfile->count()); advancedSrcProfile->setVisible(advancedSrcProfile->count()); advancedSrcPortRadio->setVisible(advancedSrcProfile->count()); advancedDestProfileRadio->setVisible(advancedDestProfile->count()); advancedDestProfile->setVisible(advancedDestProfile->count()); advancedDestPortRadio->setVisible(advancedDestProfile->count()); advancedSrcAnyHostRadio->setChecked(rule.getSourceAddress().isEmpty()); advancedDestAnyHostRadio->setChecked(rule.getDestAddress().isEmpty()); advancedSrcHostRadio->setChecked(!rule.getSourceAddress().isEmpty()); advancedDestHostRadio->setChecked(!rule.getDestAddress().isEmpty()); controlAdvancedProtocol(); controlSimpleProtocol(); setRuleType(); if(RT_SIMPLE==ruleType->currentIndex()) simplePolicy->setFocus(); else advancedPolicy->setFocus(); } void RuleDialog::update() { if(kcm->isActive()) return; QList rules; // Set blank fields to 'Any'... if(Types::PROTO_BOTH!=simpleProtocol->currentIndex() && simpleProfileRadio->isChecked()) simpleProtocol->setCurrentIndex(Types::PROTO_BOTH); if(advancedSrcHostRadio->isChecked() && advancedSrcHost->text().isEmpty()) advancedSrcAnyHostRadio->setChecked(true); if(advancedDestHostRadio->isChecked() && advancedDestHost->text().isEmpty()) advancedDestAnyHostRadio->setChecked(true); if(advancedSrcPortRadio->isChecked() && advancedSrcPort->text().isEmpty()) advancedSrcAnyPortRadio->setChecked(true); if(advancedDestPortRadio->isChecked() && advancedDestPort->text().isEmpty()) advancedDestAnyPortRadio->setChecked(true); if(Types::PROTO_BOTH!=advancedProtocol->currentIndex() && !advancedDestPortRadio->isChecked() && !advancedSrcPortRadio->isChecked()) advancedProtocol->setCurrentIndex(Types::PROTO_BOTH); if(!advancedInterface->currentText().isEmpty() && advancedInterface->currentText()!=advancedInterface->itemText(0)) { // For some reason, the Validator seems to stop working occasionaly!!! So, just check the contents here, and // remove invalid characters... QString iface(advancedInterface->currentText()); for(int i=0; isetEditText(iface.replace(" ", "")); } if(advancedInterface->currentText().isEmpty()) advancedInterface->setEditText(advancedInterface->itemText(0)); switch(ruleType->currentIndex()) { default: case RT_SIMPLE: if(simpleProfileRadio->isChecked() && simpleIndexToPredefinedPort.contains(simpleProfile->currentIndex())) { if(simpleIndexToPredefinedPort[simpleProfile->currentIndex()]>=constPartStart) { QString port; Types::Protocol protocol; getPredefinedPortAndProtocol(simpleIndexToPredefinedPort, simpleProfile->currentIndex(), port, protocol); rules.append(Rule((Types::Policy)simplePolicy->currentIndex(), DIR_IN==simpleDirection->currentIndex(), (Types::Logging)simpleLogging->currentIndex(), protocol, // simpleDescription->text(), editingRule.getHash(), QString(), QString(), QString(), port)); } else { QStringList ports(Types::toString((Types::PredefinedPort)simpleIndexToPredefinedPort[simpleProfile->currentIndex()]) .split(" ")); QStringList::ConstIterator it(ports.begin()), end(ports.end()); for(int p=1; it!=end; ++it, ++p) { QString port(*it); Types::Protocol protocol=Types::PROTO_BOTH; for(int i=0; icurrentIndex(), DIR_IN==simpleDirection->currentIndex(), (Types::Logging)simpleLogging->currentIndex(), protocol, // simpleDescription->text(), editingRule.getHash(), QString(), QString(), QString(), port)); } } } else { QString port=simplePortRadio->isChecked() ? simplePort->text() : QString(), app=simpleProfileRadio->isChecked() ? getProfileName(simpleProfile->currentText()) : QString(); if(port.isEmpty() && app.isEmpty()) KMessageBox::error(this, i18n("No port defined.")); else if(!port.isEmpty() && !checkPort(port)) KMessageBox::error(this, i18n("Invalid port.")); else if(!port.isEmpty() && (port.contains(":") || port.contains(",")) && Types::PROTO_BOTH==simpleProtocol->currentIndex()) KMessageBox::error(this, i18n("Port ranges can only be used when either TCP or UDP are explicitly selected.")); else rules.append(Rule((Types::Policy)simplePolicy->currentIndex(), DIR_IN==simpleDirection->currentIndex(), (Types::Logging)simpleLogging->currentIndex(), (Types::Protocol)simpleProtocol->currentIndex(), // simpleDescription->text(), editingRule.getHash(), QString(), QString(), QString(), port, QString(), QString(), QString(), app)); } break; case RT_ADVANCED: { bool srcIsPreDefined=advancedSrcProfileRadio->isChecked() && advancedIndexToPredefinedPort.contains(advancedSrcProfile->currentIndex()), destIsPreDefined=advancedDestProfileRadio->isChecked() && advancedIndexToPredefinedPort.contains(advancedDestProfile->currentIndex()); QString srcApp=!srcIsPreDefined && advancedSrcProfileRadio->isChecked() ? getProfileName(advancedSrcProfile->currentText()) : QString(), destApp=!destIsPreDefined && advancedDestProfileRadio->isChecked() ? getProfileName(advancedDestProfile->currentText()) : QString(), srcHost=advancedSrcAnyHostRadio->isChecked() ? QString() : advancedSrcHost->text(), srcPort=!srcIsPreDefined && advancedSrcPortRadio->isChecked() ? advancedSrcPort->text() : QString(), destHost=advancedDestAnyHostRadio->isChecked() ? QString() : advancedDestHost->text(), destPort=!destIsPreDefined && advancedDestPortRadio->isChecked() ? advancedDestPort->text() : QString(); Types::Protocol prot=(Types::Protocol)advancedProtocol->currentIndex(), srcProt=Types::PROTO_BOTH, destProt=Types::PROTO_BOTH; if(srcIsPreDefined) { getPredefinedPortAndProtocol(advancedIndexToPredefinedPort, advancedSrcProfile->currentIndex(), srcPort, srcProt); prot=srcProt; } if(destIsPreDefined) { getPredefinedPortAndProtocol(advancedIndexToPredefinedPort, advancedDestProfile->currentIndex(), destPort, destProt); prot=destProt; } if(!kcm->ipV6Enabled() && ((!destHost.isEmpty() && isV6Address(destHost)) || (!srcHost.isEmpty() && isV6Address(srcHost)))) KMessageBox::error(this, i18n("You can only use IPv6 addresses, if IPv6 support is enabled."), i18n("IPv6 Support Disabled")); else if(destIsPreDefined && srcIsPreDefined && srcProt!=destProt) KMessageBox::error(this, i18n("Selected pre-defined ports for 'Source' and 'Destination' use different protocols."), i18n("Mixed Protocols")); else if(srcHost.isEmpty() && srcPort.isEmpty() && destHost.isEmpty() && destPort.isEmpty() && srcApp.isEmpty() && destApp.isEmpty()) KMessageBox::error(this, i18n("No hosts or ports defined.")); else if(!checkAddress(srcHost)) KMessageBox::error(this, i18n("Invalid 'Source' address.")); else if(!checkAddress(destHost)) KMessageBox::error(this, i18n("Invalid 'Destination' address.")); else if(!srcIsPreDefined && !checkPort(srcPort)) KMessageBox::error(this, i18n("Invalid 'Source' port.")); else if(!destIsPreDefined && !checkPort(destPort)) KMessageBox::error(this, i18n("Invalid 'Destination' port.")); else if(Types::PROTO_BOTH==prot && (srcPort.contains(":") || destPort.contains(":") || srcPort.contains(",") || destPort.contains(","))) KMessageBox::error(this, i18n("Port ranges can only be used when either TCP or UDP are explicitly selected.")); else rules.append(Rule((Types::Policy)advancedPolicy->currentIndex(), DIR_IN==advancedDirection->currentIndex(), (Types::Logging)advancedLogging->currentIndex(), prot, // advancedDescription->text(), editingRule.getHash(), srcHost, srcPort, destHost, destPort, DIR_IN==advancedDirection->currentIndex() && advancedInterface->currentText()!=advancedInterface->itemText(0) ? advancedInterface->currentText() : QString(), DIR_IN!=advancedDirection->currentIndex() && advancedInterface->currentText()!=advancedInterface->itemText(0) ? advancedInterface->currentText() : QString(), srcApp, destApp)); } } if(rules.count()) { if(isEdit) { /*if(rules.first().onlyDescrChanged(editingRule)) kcm->editRuleDescr(rules.first()); else*/ if(rules.first().different(editingRule)) kcm->editRule(rules.first()); } else if(!kcm->addRules(rules)) KMessageBox::error(this, i18n("Rule already exists!")); } } void RuleDialog::setRuleType() { switch(ruleType->currentIndex()) { default: case RT_SIMPLE: stackedWidget->setCurrentIndex(RT_SIMPLE); simplePort->setText(advancedDestPort->text()); break; case RT_ADVANCED: stackedWidget->setCurrentIndex(RT_ADVANCED); advancedDestPort->setText(simplePort->text()); break; } } void RuleDialog::showError(const QString &err) { KMessageBox::error(this, i18n("

    Failed to insert rule.

    %1

    ", err)); } void RuleDialog::controlSimpleProtocol() { bool fixedProto=simpleProfileRadio->isChecked(); simpleProtocol->setEnabled(!fixedProto); if(fixedProto) simpleProtocol->setCurrentIndex(Types::PROTO_BOTH); } void RuleDialog::controlAdvancedProtocol() { bool selectableProto=(advancedSrcPortRadio->isChecked() || advancedDestPortRadio->isChecked()) && !(advancedSrcProfileRadio->isChecked() || advancedDestProfileRadio->isChecked()); advancedProtocol->setEnabled(selectableProto); if(!selectableProto) advancedProtocol->setCurrentIndex(Types::PROTO_BOTH); } } #include "ruledialog.moc" ufw-kde-0.5.0/kcm/appprofiles.h0000664000175000017500000000257712270515626015776 0ustar ubuntuubuntu#ifndef UFW_APP_PROFILES_H #define UFW_APP_PROFILES_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include namespace UFW { namespace AppProfiles { struct Entry { Entry(const QString &n, const QString &p=QString()); bool operator<(const Entry &o) const { return name.localeAwareCompare(o.name)<0; } bool operator==(const Entry &o) const { return name==o.name; } QString name; QString ports; // Types::Protocol protocol; }; extern const QList & get(); extern Entry get(const QString &name); } } #endif ufw-kde-0.5.0/kcm/CMakeLists.txt0000664000175000017500000000120612270515626016025 0ustar ubuntuubuntuinclude_directories(${KDE4_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_BINARY_DIR}) set(kcm_ufw_SRCS kcm.cpp ruledialog.cpp types.cpp strings.cpp rule.cpp ruleslist.cpp profile.cpp appprofiles.cpp statusbox.cpp stackedwidget.cpp combobox.cpp lineedit.cpp blocker.cpp logviewer.cpp) kde4_add_ui_files(kcm_ufw_SRCS ufw.ui rulewidget.ui) kde4_add_plugin(kcm_ufw ${kcm_ufw_SRCS}) target_link_libraries(kcm_ufw ${KDE4_KIO_LIBS}) install( TARGETS kcm_ufw DESTINATION ${PLUGIN_INSTALL_DIR} ) install( FILES ufw.desktop DESTINATION ${SERVICES_INSTALL_DIR} ) #kde4_install_icons( ${DATA_INSTALL_DIR}/kufw/icons ) ufw-kde-0.5.0/kcm/rule.cpp0000664000175000017500000002404412270515626014745 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "rule.h" #include "appprofiles.h" #include #include #include #include #include #include #include namespace UFW { // Keep in sync with kcm_ufw_helper.py static const char * ANY_ADDR = "0.0.0.0/0"; static const char * ANY_ADDR_V6 = "::/0"; static const char * ANY_PORT = "any"; static const char * ANY_PROTOCOL = "any"; // Shorten an IPv6 address (if applicable) static QString shortenAddress(const QString &addr) { if(!addr.isEmpty() && addr.contains(":")) { QByteArray bytes(addr.toLatin1()); unsigned char num[16]; if(inet_pton(AF_INET6, bytes.constData(), num)>0) { char conv[41]; if(NULL!=inet_ntop(AF_INET6, num, conv, 41)) return QLatin1String(conv); } } return addr; } static QString addIface(const QString &orig, const QString &iface) { return iface.isEmpty() ? orig : i18nc("address on interface", "%1 on %2", orig, iface); } static QString getServiceName(short port) { static QMap serviceMap; if(serviceMap.contains(port)) return serviceMap[port]; struct servent *ent=getservbyport(htons(port), 0L); if(ent && ent->s_name) { serviceMap[port]=ent->s_name; return serviceMap[port]; } return QString(); } static QString formatPort(const QString &port, Types::Protocol prot) { return port.isEmpty() ? Rule::protocolSuffix(prot, QString()) : port+Rule::protocolSuffix(prot); } // Try to convert 'port' into a port number, not a service name... static QString getPortNumber(const QString &port) { if(-1==port.indexOf(':')) { bool ok; int num=port.toInt(&ok); if(!ok) // 'port' is not a number... { num=Rule::getServicePort(port); if(0!=num) return QString().setNum(num); } } return port; } static QString modifyAddress(const QString &addr, const QString &port) { if(addr.isEmpty() || ANY_ADDR==addr || ANY_ADDR_V6==addr) { if(port.isEmpty()) return i18n("Anywhere"); else return QString(); } return shortenAddress(addr); } static QString modifyPort(const QString &port, Types::Protocol prot, bool matchPortNoProto=false) { if(port.isEmpty()) return port; // Does it match a pre-configured application? Types::PredefinedPort pp=Types::toPredefinedPort(port+Rule::protocolSuffix(prot)); // When matchin glog lines, the protocol is *always* specified - but dont alwys want this when // matching names... if(matchPortNoProto && Types::PP_COUNT==pp) pp=Types::toPredefinedPort(port); if(Types::PP_COUNT!=pp) return i18nc("serice/application name (port numbers)", "%1 (%2)", Types::toString(pp, true), port+Rule::protocolSuffix(prot)); // Is it a service known to /etc/services ??? bool ok(false); QString service; short portNum=port.toShort(&ok); if(ok) service=getServiceName(portNum); if(!service.isEmpty()) return i18nc("serice/application name (port numbers)", "%1 (%2)", service, formatPort(port, prot)); // Just return port/sericename and protocol return formatPort(port, prot); } static QString modifyApp(const QString &app, const QString &port, Types::Protocol prot) { if(app.isEmpty()) return port; AppProfiles::Entry profile(AppProfiles::get(app)); return i18nc("serice/application name (port numbers)", "%1 (%2)", app, profile.name.isEmpty() ? formatPort(port, prot) : profile.ports); } int Rule::getServicePort(const QString &name) { static QMap serviceMap; if(serviceMap.contains(name)) return serviceMap[name]; QByteArray l1=name.toLatin1(); struct servent *ent=getservbyname(l1.constData(), 0L); if(ent && ent->s_name) { serviceMap[name]=ntohs(ent->s_port); return serviceMap[name]; } return 0; } QString Rule::protocolSuffix(Types::Protocol prot, const QString &sep) { return Types::PROTO_BOTH==prot ? "" : (sep+Types::toString(prot)); } QString Rule::modify(const QString &address, const QString &port, const QString &application, const QString iface, const Types::Protocol &protocol, bool matchPortNoProto) { if((port==ANY_PORT || port.isEmpty()) && (address.isEmpty() || ANY_ADDR==address || ANY_ADDR_V6==address)) return addIface(i18n("Anywhere"), iface); bool isAnyAddress=address.isEmpty() || ANY_ADDR==address || ANY_ADDR_V6==address, isAnyPort=port.isEmpty() || ANY_PORT==port; QString bPort=application.isEmpty() ? modifyPort(port, protocol, matchPortNoProto) : modifyApp(application, port, protocol), bAddr=modifyAddress(address, port); return addIface(isAnyAddress ? isAnyPort ? i18n("Anywhere") : bPort : bAddr.isEmpty() ? bPort : bAddr+QChar(' ')+bPort, iface); } Rule::Rule() : position(0) , action(Types::POLICY_REJECT) , incoming(true) , v6(false) , protocol(Types::PROTO_BOTH) , logtype(Types::LOGGING_OFF) { } Rule::Rule(QDomElement &elem) { QString val=elem.attribute("position"); position=val.toUInt(); val=elem.attribute("action"); action=Types::POLICY_ALLOW; if(!val.isEmpty()) for(int i=Types::POLICY_ALLOW; i * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "kcm.h" #include "logviewer.h" #include "ruledialog.h" #include "config.h" #include "types.h" #include "strings.h" #include "statusbox.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define EXTENSION ".ufw" #define FOLDER "kcm_ufw" K_PLUGIN_FACTORY(UfwFactory, registerPlugin(); ) K_EXPORT_PLUGIN(UfwFactory("kcm_ufw")) namespace UFW { enum ModuleCol { MOD_COL_NAME, MOD_COL_CONN_TRACK, MOD_COL_NAT }; enum ModuleState { MOD_STATE_CONN_TRACK_ENABLED = 0x01, MOD_STATE_NAT_ENABLED = 0x02 }; struct KernelModule { KernelModule(const QString &p, const QString &c=QString(), const QString &n=QString(), const QString &t=QString()) : protocol(p), conntrack(c), nat(n), tooltip(t) { } bool operator<(const KernelModule &o) const { return protocol.localeAwareCompare(o.protocol)<0; } bool operator==(const KernelModule &o) const { return protocol==o.protocol || (!conntrack.isEmpty() && conntrack==o.conntrack) || (!nat.isEmpty() && nat==o.nat); } QString protocol, conntrack, nat, tooltip; }; static QString kernerlName() { struct utsname un; return 0==uname(&un) ? QString::fromLatin1(un.release) : QString(); } QSet getModuleNames(const QString &kernel, const QString &subDir, const QString &filter) { QStringList entries=QDir(QString("/lib/modules/")+kernel+subDir).entryList(QStringList() << filter+"*.ko"); QSet names; QStringList::ConstIterator it(entries.constBegin()), end(entries.constEnd()); for(; it!=end; ++it) names.insert((*it).left((*it).length()-3) // Remove ".ko" .mid(filter.length())); // Remove nf_XXX_ return names; } static void addOtherModules(QList &modules) { QString kernel(kernerlName()); if(!kernel.isEmpty()) { QSet conntrack=getModuleNames(kernel, "/kernel/net/netfilter/", "nf_conntrack_"); QSet nat=getModuleNames(kernel, "/kernel/net/ipv4/netfilter/", "nf_nat_"); QSet names=conntrack+nat; QSet::ConstIterator it(names.constBegin()), end(names.constEnd()); QMap stdNames; stdNames["amanda"]=i18nc("kernel module name", "Amanda"); stdNames["h323"]=i18nc("kernel module name", "H.323"); stdNames["netlink"]=i18nc("kernel module name", "NetLink"); stdNames["proto_dccp"]=i18nc("kernel module name", "Proto DCCP"); stdNames["proto_gre"]=i18nc("kernel module name", "Proto GRE"); stdNames["proto_sctp"]=i18nc("kernel module name", "Proto SCTP"); stdNames["proto_udplite"]=i18nc("kernel module name", "Proto UDP Lite"); stdNames["slp"]=i18nc("kernel module name", "SLP"); stdNames["snmp_basic"]=i18nc("kernel module name", "SNMP Basic"); stdNames["tftp"]=i18nc("kernel module name", "TFTP"); for(; it!=end; ++it) { KernelModule mod(stdNames.contains(*it) ? stdNames[*it] : *it, conntrack.contains(*it) ? "nf_conntrack_"+(*it) : QString(), nat.contains(*it) ? "nf_nat_"+(*it) : QString()); if(!modules.contains(mod)) modules.append(mod); } } } static QString moduleTooltip(const QString module, const QString &tt=QString()) { return tt.isEmpty() ? i18n("

    Enables the %1 kernel module

    ", module) : i18n("

    Enables the %1 kernel module (for %2)

    ", module, tt); } static void addModule(QTreeWidget *tree, const KernelModule &mod) { QTreeWidgetItem *item=new QTreeWidgetItem(tree, QStringList() << mod.protocol+QString(" ")); if(!mod.conntrack.isEmpty()) { item->setCheckState(MOD_COL_CONN_TRACK, Qt::Unchecked); item->setData(MOD_COL_CONN_TRACK, Qt::UserRole, mod.conntrack); item->setToolTip(MOD_COL_CONN_TRACK, moduleTooltip(mod.conntrack, mod.tooltip)); } if(!mod.nat.isEmpty()) { item->setCheckState(MOD_COL_NAT, Qt::Unchecked); item->setData(MOD_COL_NAT, Qt::UserRole, mod.nat); item->setToolTip(MOD_COL_NAT, moduleTooltip(mod.nat, mod.tooltip)); } } static inline QString profileFileName(const QString &name) { return KGlobal::dirs()->saveLocation("data", FOLDER"/", KStandardDirs::NoDuplicates)+name+EXTENSION; } static inline QString profileName(const QAction *profile) { return profile->data().toString(); } Kcm::Kcm(QWidget *parent, const QVariantList&) : KCModule(UfwFactory::componentData(), parent) , addDialog(0L) , editDialog(0L) , moveToPos(0) , logViewer(0L) { setButtons(Help|Default); KAboutData *about = new KAboutData("kcm_ufw", 0, ki18n("UFW Settings"), VERSION, ki18n("GUI front-end for Uncomplicated FireWall"), KAboutData::License_GPL, ki18n("(C) Craig Drummond, 2011"), KLocalizedString(), QByteArray(), "craig.p.drummond@gmail.com"); about->addAuthor(ki18n("Craig Drummond"), ki18n("Developer and maintainer"), "craig.p.drummond@gmail.com"); setAboutData(about); setupUi(this); setupWidgets(); setupActions(); QTimer::singleShot(0, this, SLOT(queryStatus())); } Kcm::~Kcm() { // Disconnect from KAuth signals, as there might be an action in flight - and we can no longer handle this, due to // being terminated!!! disconnect(queryAction.watcher(), SIGNAL(actionPerformed(ActionReply)), this, SLOT(queryPerformed(ActionReply))); disconnect(modifyAction.watcher(), SIGNAL(actionPerformed(ActionReply)), this, SLOT(modifyPerformed(ActionReply))); } bool Kcm::addRules(const QList &rules) { QVariantMap args; QList::ConstIterator it(rules.constBegin()), end(rules.constEnd()); args["cmd"]="addRules"; args["count"]=rules.count(); for(int i=0; it!=end; ++it, ++i) { if(currentRules.contains(*it)) return false; args["xml"+QString().setNum(i)]=(*it).toXml(); } modifyAction.setArguments(args); statusLabel->setText(rules.size()>1 ? i18n("Adding rules...") : i18n("Adding rule...")); emit status(statusLabel->fullText()); blocker->setActive(true); modifyAction.execute(); return true; } void Kcm::createRule(const Rule &rule) { if(!addDialog) addDialog=new RuleDialog(this, false); addDialog->setRule(rule); addDialog->showNormal(); } void Kcm::editRule(Rule rule) { QList items=ruleList->selectedItems(); QTreeWidgetItem *item=items.count() ? items.first() : 0L; if(item) { QVariantMap args; args["cmd"]="editRule"; rule.setPosition((unsigned int)item->data(0, Qt::UserRole).toUInt()); args["xml"]=rule.toXml(); modifyAction.setArguments(args); statusLabel->setText(i18n("Updating rule...")); emit status(statusLabel->fullText()); blocker->setActive(true); modifyAction.execute(); } } // void Kcm::editRuleDescr(const Rule &rule) // { // QVariantMap args; // args["cmd"]="editRuleDescr"; // args["xml"]=rule.toXml(); // modifyAction.setArguments(args); // statusLabel->setText(i18n("Updating rule...")); // emit status(statusLabel->fullText()); // blocker->setActive(true); // modifyAction.execute(); // } void Kcm::defaults() { if(KMessageBox::Yes==KMessageBox::warningYesNo(this, i18n("Reset firewall to the default settings?"), i18n("Reset"))) { QVariantMap args; args["cmd"]="reset"; modifyAction.setArguments(args); statusLabel->setText(i18n("Resetting to system default settings...")); blocker->setActive(true); modifyAction.execute(); } } void Kcm::queryStatus(bool readDefaults, bool listProfiles) { QVariantMap args; args["defaults"]=readDefaults; args["profiles"]=listProfiles; queryAction.setArguments(args); statusLabel->setText(i18n("Querying firewall status...")); blocker->setActive(true); queryAction.execute(); } void Kcm::setStatus() { QVariantMap args; args["cmd"]="setStatus"; args["status"]=ufwEnabled->isChecked(); modifyAction.setArguments(args); statusLabel->setText(ufwEnabled->isChecked() ? i18n("Enabling the firewall...") : i18n("Disabling the firewall...")); blocker->setActive(true); modifyAction.execute(); } void Kcm::setIpV6() { if(!ipv6Enabled->isChecked()) { bool haveV6Rule=false; QList::ConstIterator it(currentRules.constBegin()), end(currentRules.constEnd()); for(; it!=end && !haveV6Rule; ++it) if((*it).getV6()) haveV6Rule=true; if(haveV6Rule && KMessageBox::No==KMessageBox::warningYesNo(this, i18n("Disabling IPv6 support will remove any IPv6 rules.\nProceed?"), i18n("Disable IPv6 Support"))) { ipv6Enabled->blockSignals(true); ipv6Enabled->setChecked(true); ipv6Enabled->blockSignals(false); return; } } QVariantMap args; args["cmd"]="setDefaults"; args["ipv6"]=true; args["xml"]=QString("isChecked() ? "yes" : "no")+QString("\" />"); modifyAction.setArguments(args); statusLabel->setText(i18n("Setting firewall IPv6 support...")); blocker->setActive(true); modifyAction.execute(); } void Kcm::createRules() { if(!addDialog) addDialog=new RuleDialog(this, false); addDialog->reset(); addDialog->showNormal(); } void Kcm::editRule() { QList items=ruleList->selectedItems(); QTreeWidgetItem *item=items.count() ? items.first() : 0L; if(item) { if(!editDialog) editDialog=new RuleDialog(this, true); editDialog->setRule(currentRules.at((unsigned int)item->data(0, Qt::UserRole).toUInt()-1)); editDialog->exec(); } } void Kcm::removeRule() { QList items=ruleList->selectedItems(); QTreeWidgetItem *item=items.count() ? items.first() : 0L; if(item) { QVariantMap args; args["cmd"]="removeRule"; args["index"]=QString().setNum((unsigned int)item->data(0, Qt::UserRole).toUInt())/*+ QChar(':')+ currentRules.at((unsigned int)item->data(0, Qt::UserRole).toUInt()-1).getHash()*/; modifyAction.setArguments(args); statusLabel->setText(i18n("Removing rule from firewall...")); blocker->setActive(true); modifyAction.execute(); } } void Kcm::moveRuleUp() { moveRulePos(-1); } void Kcm::moveRuleDown() { moveRulePos(1); } void Kcm::moveTo(const QTreeWidgetItem *item) { if(blocker->isActive()) return; QList items=ruleList->selectedItems(); moveRule(items.count() ? items.first()->data(0, Qt::UserRole).toUInt() : 0L, item ? item->data(0, Qt::UserRole).toUInt() : ruleList->topLevelItemCount()+1); } void Kcm::setLogLevel() { QVariantMap args; args["cmd"]="setDefaults"; args["xml"]=QString("currentIndex())+QString("\" />"); modifyAction.setArguments(args); statusLabel->setText(i18n("Setting firewall log level...")); blocker->setActive(true); modifyAction.execute(); } void Kcm::setDefaultIncomingPolicy() { QVariantMap args; args["cmd"]="setDefaults"; args["xml"]=QString("currentIndex())+QString("\" />"); modifyAction.setArguments(args); statusLabel->setText(i18n("Setting firewall default incomming policy...")); blocker->setActive(true); modifyAction.execute(); } void Kcm::setDefaultOutgoingPolicy() { QVariantMap args; args["cmd"]="setDefaults"; args["xml"]=QString("currentIndex())+QString("\" />"); modifyAction.setArguments(args); statusLabel->setText(i18n("Setting firewall default outgoing policy...")); blocker->setActive(true); modifyAction.execute(); } void Kcm::queryPerformed(ActionReply reply) { QByteArray response=reply.succeeded() ? reply.data()["response"].toByteArray() : QByteArray(); blocker->setActive(false); if(!response.isEmpty()) { Profile profile(response); setStatus(profile); setDefaults(profile); setModules(profile); setRules(profile); } showCurrentStatus(); if(reply.succeeded() && reply.data().contains("profiles")) refreshProfiles(reply.data()["profiles"].toMap()); } void Kcm::modifyPerformed(ActionReply reply) { QString cmd(reply.data()["cmd"].toString()); blocker->setActive(false); emit status(QString()); // Clear add dialog status... if(reply.succeeded()) { if("setProfile"==cmd) { QAction *currentProfile=getCurrentProfile(); loadedProfile=currentProfile ? profileName(currentProfile) : 0L; } queryPerformed(reply); moveToPos=0; if("saveProfile"==cmd || "deleteProfile"==cmd) refreshProfiles(reply.data()["profiles"].toMap()); } else { if("addRules"==cmd) emit error(QString(reply.data()["response"].toByteArray())); else if("removeRule"==cmd) KMessageBox::error(this, i18n("

    Failed to remove rule.

    %1

    ", QString(reply.data()["response"].toByteArray()))); else if("saveProfile"==cmd) KMessageBox::error(this, i18n("

    Failed to save profile.

    %1

    ", QString(reply.data()["name"].toString()))); else if("deleteProfile"==cmd) KMessageBox::error(this, i18n("

    Failed to delete profile.

    %1

    ", QString(reply.data()["name"].toString()))); // Refresh list... moveToPos=0; queryStatus(true, false); showCurrentStatus(); } } void Kcm::ruleSelectionChanged() { QList items=ruleList->selectedItems(); bool enable=1==items.count(); int index=enable ? items.first()->data(0, Qt::UserRole).toUInt() : 0; editRuleButton->setEnabled(enable); removeRuleButton->setEnabled(enable); moveRuleUpButton->setEnabled(enable && index>1); moveRuleDownButton->setEnabled(enable && index>0 && indextopLevelItemCount()); } void Kcm::ruleDoubleClicked(QTreeWidgetItem *item , int col) { if(blocker->isActive()) return; Q_UNUSED(col) if(item) { if(!editDialog) editDialog=new RuleDialog(this, true); editDialog->setRule(currentRules.at((unsigned int)item->data(0, Qt::UserRole).toUInt()-1)); editDialog->exec(); } } void Kcm::moduleClicked(QTreeWidgetItem *item, int col) { // This slot get called if any part of row is clicked - even if checkbox does not change state. // So, to prevent bogus calls - need to check that a state change has occured. if(!item || MOD_COL_NAME==col || (item->data(0, Qt::UserRole).toInt()==( (item->data(MOD_COL_CONN_TRACK, Qt::UserRole).toString().isEmpty() || Qt::Unchecked==item->checkState(MOD_COL_CONN_TRACK) ? 0 : MOD_STATE_CONN_TRACK_ENABLED) + (item->data(MOD_COL_NAT, Qt::UserRole).toString().isEmpty() || Qt::Unchecked==item->checkState(MOD_COL_NAT) ? 0 : MOD_STATE_NAT_ENABLED)) ) ) return; if(blocker->isActive()) { modulesList->blockSignals(true); item->setCheckState(col, Qt::Unchecked==item->checkState(col) ? Qt::Checked : Qt::Unchecked); modulesList->blockSignals(false); } QVariantMap args; Profile profile(ipv6Enabled->isChecked(), (Types::LogLevel)ufwLoggingLevel->currentIndex(), (Types::Policy)defaultIncomingPolicy->currentIndex(), (Types::Policy)defaultOutgoingPolicy->currentIndex(), currentRules, modules()); args["cmd"]="setModules"; args["xml"]=profile.modulesXml(); modifyAction.setArguments(args); statusLabel->setText(i18n("Setting firewall modules...")); blocker->setActive(true); modifyAction.execute(); } class ProfileNameValidator : public QValidator { public: ProfileNameValidator(QObject *parent) : QValidator(parent) { } State validate(QString &input, int &) const { for(int i=0; iisChecked(), (Types::LogLevel)ufwLoggingLevel->currentIndex(), (Types::Policy)defaultIncomingPolicy->currentIndex(), (Types::Policy)defaultOutgoingPolicy->currentIndex(), currentRules, modules()); saveProfile(name, profile); } } void Kcm::loadProfile(QAction *profile) { if(!loadMenuWasShown || profile==getCurrentProfile()) return; Profile p=profiles[profile]; if(!(p.hasModules() || p.hasDefaults() || p.hasRules())) return; QVariantMap args; args["cmd"]="setProfile"; if(p.hasModules()) args["modules"]=p.modulesXml(); if(p.hasDefaults()) args["defaults"]=p.defaultsXml(); if(p.hasRules()) { args["ruleCount"]=p.getRules().count(); QList::ConstIterator it(p.getRules().constBegin()), end(p.getRules().constEnd()); for(int i=0; it!=end; ++it, ++i) args["rule"+QString().setNum(i)]=(*it).toXml(); } modifyAction.setArguments(args); statusLabel->setText(i18n("Activating firewall profile %1...", profileName(profile))); loadedProfile=QString(); blocker->setActive(true); modifyAction.execute(); } void Kcm::removeProfile(QAction *profile) { if(loadMenuWasShown) return; QString name=profileName(profile); if(KMessageBox::Yes==KMessageBox::questionYesNo(this, i18n("

    Remove %1?

    ", name), i18n("Remove Profile"), KStandardGuiItem::yes(), KStandardGuiItem::no(), QString(), KMessageBox::Notify|KMessageBox::Dangerous)) { Profile p=profiles[profile]; if(p.getIsSystem()) { QVariantMap args; args["cmd"]="deleteProfile"; args["name"]=name; modifyAction.setArguments(args); statusLabel->setText(QString("Deleting firewall profile ")+name+"..."); blocker->setActive(true); modifyAction.execute(); } else if(QFile::remove(p.getFileName())) { deleteProfile(profile); if(name==loadedProfile) { loadedProfile=QString(); showCurrentStatus(); } } else KMessageBox::error(this, i18n("

    Failed to remove %1

    ", name)); } } void Kcm::importProfile() { KUrl url=KFileDialog::getOpenUrl(KUrl(), i18n("*.ufw|Firewall Settings"), this); if(!url.isEmpty()) { QString tempFile; if( KIO::NetAccess::download(url, tempFile, this)) { QFile file(tempFile); Profile profile(file); if(profile.hasRules()) { QString name=getNewProfileName(url.fileName().remove(EXTENSION), true); if(!name.isEmpty()) saveProfile(name, profile); } else KMessageBox::error(this, i18n("

    %1 is not a valid Firewall Settings file

    ", url.prettyUrl())); KIO::NetAccess::removeTempFile(tempFile); } else KMessageBox::error(this, KIO::NetAccess::lastErrorString()); } } void Kcm::exportProfile() { KUrl url=KFileDialog::getSaveUrl(KUrl(), i18n("*.ufw|Firewall Settings"), this, QString(), KFileDialog::ConfirmOverwrite); if(!url.isEmpty()) { KTemporaryFile tempFile; tempFile.setAutoRemove(true); if(tempFile.open()) { QTextStream stream(&tempFile); Profile profile(ipv6Enabled->isChecked(), (Types::LogLevel)ufwLoggingLevel->currentIndex(), (Types::Policy)defaultIncomingPolicy->currentIndex(), (Types::Policy)defaultOutgoingPolicy->currentIndex(), currentRules, modules()); stream << profile.toXml(); tempFile.close(); if(!KIO::NetAccess::upload(tempFile.fileName(), url, this)) KMessageBox::error(this, KIO::NetAccess::lastErrorString()); } else KMessageBox::error(this, i18n("Failed to create temporary file.")); } } void Kcm::loadMenuShown() { // 'Load' sub-menu has been shown - so triggered actions will be loads... loadMenuWasShown=true; } void Kcm::deleteMenuShown() { // 'Delete' sub-menu has been shown - so triggered actions will be deletes... loadMenuWasShown=false; } void Kcm::displayLog() { if(!logViewer) logViewer=new LogViewer(this); logViewer->showNormal(); } QString Kcm::getNewProfileName(const QString ¤tName, bool isImport) { QString name=currentName; ProfileNameValidator validator(this); bool promptForName=!isImport; while(true) { if(promptForName) { name=KInputDialog::getText(i18n("Profile Name"), i18n("Please enter a name for the profile:"), name, 0, this, &validator); name.trimmed().simplified(); } if(name.isEmpty()) return QString(); else { bool exists=profileExists(name);; if(!exists ||(!isImport && name==loadedProfile)) return name; else switch(KMessageBox::warningYesNoCancel(this, i18n("

    A profile named %1 already exists.

    Overwrite?

    ", name), i18n("Overwrite Profile"))) { case KMessageBox::Cancel: return QString(); case KMessageBox::Yes: return name; case KMessageBox::No: promptForName=true; continue; // Prompt for new name... } } } } void Kcm::listUserProfiles() { QStringList files(KGlobal::dirs()->findAllResources("data", FOLDER"/*"EXTENSION, KStandardDirs::NoDuplicates)); QStringList::ConstIterator it(files.constBegin()), end(files.constEnd()); for(; it!=end; ++it) { QString name(QFileInfo(*it).fileName().remove(EXTENSION)); if(!name.isEmpty() && !profileExists(name)) { QFile file(*it); addProfile(name, Profile(file), false); } } if(0==loadMenu->actions().count()) { loadMenu->addAction(noProfilesAction); deleteMenu->addAction(noProfilesAction); } sortActions(); showCurrentStatus(); } QAction * Kcm::getAction(const QString &name) { QList actions=loadMenu->actions(); QList::ConstIterator it(actions.constBegin()), end(actions.constEnd()); for(; it!=end; ++it) if(profileName(*it)==name) return *it; return 0L; } QAction * Kcm::getCurrentProfile() { if(profiles.count()>0) { Profile current(ipv6Enabled->isChecked(), (Types::LogLevel)ufwLoggingLevel->currentIndex(), (Types::Policy)defaultIncomingPolicy->currentIndex(), (Types::Policy)defaultOutgoingPolicy->currentIndex(), currentRules, modules()); QList actions=loadMenu->actions(); QList::ConstIterator it(actions.constBegin()), end(actions.constEnd()); for(; it!=end; ++it) { Profile p(); if(profiles[*it]==current) return *it; } } return 0L; } bool Kcm::profileExists(const QString &name) { return getAction(name); } void Kcm::saveProfile(const QString &name, const Profile &profile) { QVariantMap args; args["cmd"]="saveProfile"; args["name"]=name; args["xml"]=profile.toXml(); modifyAction.setArguments(args); statusLabel->setText(i18n("Saving firewall profile %1...", name)); blocker->setActive(true); modifyAction.execute(); } void Kcm::refreshProfiles(const QMap &profileList) { QSet listedProfiles=profileList.keys().toSet(); QSet newProfiles=listedProfiles, deletedProfiles=existingProfiles; newProfiles.subtract(existingProfiles); deletedProfiles.subtract(listedProfiles); existingProfiles.clear(); // Remove any deleted profiles... QSet::ConstIterator it(deletedProfiles.constBegin()), end(deletedProfiles.constEnd()); bool changed(false); for(; it!=end; ++it) { QString name(QFileInfo(*it).fileName().remove(EXTENSION)); if(!name.isEmpty()) { QAction *action=getAction(name); if(action) { Profile p=profiles[action]; if(p.getIsSystem()) { deleteProfile(action, false); changed=true; } } } } // Add any new profiles... it=newProfiles.constBegin(), end=newProfiles.constEnd(); for(; it!=end; ++it) { QString name(QFileInfo(*it).fileName().remove(EXTENSION)); if(!name.isEmpty()) { QAction *action=getAction(name); if(action) { Profile p=profiles[action]; if(p.getIsSystem()) continue; else if(QFile::remove(p.getFileName())) deleteProfile(action, false); else continue; } existingProfiles.insert(*it); changed=true; addProfile(name, Profile(profileList[*it].toByteArray(), true)); } } if(changed) { if(0==loadMenu->actions().count()) { loadMenu->addAction(noProfilesAction); deleteMenu->addAction(noProfilesAction); } sortActions(); showCurrentStatus(); } } void Kcm::addProfile(const QString &name, const Profile &profile, bool sort) { QAction *action=new QAction(name, this); action->setData(name); loadMenu->addAction(action); deleteMenu->addAction(action); profiles[action]=profile; loadMenu->removeAction(noProfilesAction); deleteMenu->removeAction(noProfilesAction); if(sort) { sortActions(); showCurrentStatus(); } } struct ProfileAction { ProfileAction(QAction *a) : action(a), name(profileName(a)) { } bool operator<(const ProfileAction &o) const { return name.localeAwareCompare(o.name)<0; } QAction *action; QString name; }; void Kcm::sortActions() { if(loadMenu->actions().count()>1) { QList actions=loadMenu->actions(); QList::ConstIterator it(actions.constBegin()), end(actions.constEnd()); QList profiles; for(; it!=end; ++it) { profiles.append(ProfileAction(*it)); loadMenu->removeAction(*it); deleteMenu->removeAction(*it); } qSort(profiles); QList::ConstIterator pro(profiles.constBegin()), proEnd(profiles.constEnd()); for(; pro!=proEnd; ++pro) { loadMenu->addAction((*pro).action); deleteMenu->addAction((*pro).action); } } } void Kcm::deleteProfile(QAction *profile, bool updateState) { if(profile) { QMap::iterator entry=profiles.find(profile); if(entry!=profiles.end()) profiles.erase(entry); loadMenu->removeAction(profile); deleteMenu->removeAction(profile); delete profile; if(updateState) { if(0==loadMenu->actions().count()) { loadMenu->addAction(noProfilesAction); deleteMenu->addAction(noProfilesAction); } showCurrentStatus(); } } } void Kcm::deleteProfile(const QString &name) { deleteProfile(getAction(name)); } void Kcm::moveRulePos(int offset) { QList items=ruleList->selectedItems(); if(1==items.count()) { int from=items.first()->data(0, Qt::UserRole).toUInt(); if((-1==offset && from>1) || (1==offset && fromtopLevelItemCount())) moveRule(from, from+offset); } } void Kcm::moveRule(int from, int to) { if(blocker->isActive()) return; if(from && to && from!=to) { QVariantMap args; args["cmd"]="moveRule"; args["from"]=from; args["to"]=to; moveToPos=to; modifyAction.setArguments(args); statusLabel->setText(i18n("Moving rule in firewall...")); blocker->setActive(true); modifyAction.execute(); } } void Kcm::showCurrentStatus() { QString proName=loadedProfile; QAction *currentProfile=getCurrentProfile(); if(currentProfile) { loadedProfile=profileName(currentProfile); proName=QString(" (")+loadedProfile+QChar(')'); } else if(!proName.isEmpty()) proName=QString(" (")+proName+QString("*)"); if(ufwEnabled->isChecked()) statusLabel->setText(0==ruleList->topLevelItemCount() ? i18n("Firewall is enabled, and there are no rules defined.%1", proName) : i18np("Firewall is enabled, and there is 1 rule defined.%2", "Firewall is enabled, and there are %1 rules defined.%2", ruleList->topLevelItemCount(), proName)); else statusLabel->setText(0==ruleList->topLevelItemCount() ? i18n("Firewall is currently disabled, and there are no rules defined.%1", proName) : i18np("Firewall is currently disabled, and there is 1 rule defined.%2", "Firewall is currently disabled, and there are %1 rules defined.%2", ruleList->topLevelItemCount(), proName)); ruleSelectionChanged(); } void Kcm::setupWidgets() { for(int i=Types::LOG_OFF; iinsertItem(i, toString((Types::LogLevel)i, true)); for(int i=Types::POLICY_ALLOW; iinsertItem(i, toString((Types::Policy)i, true)); defaultIncomingPolicy->insertItem(i, toString((Types::Policy)i, true)); } ufwLoggingLevel->setToolTip(Strings::logLevelInformation()); defaultOutgoingPolicy->setToolTip(Strings::policyInformation(false)); defaultIncomingPolicy->setToolTip(Strings::policyInformation(false)); ruleList->setToolTip(Strings::ruleOrderInformation()); ruleList->setColumnHidden(RulesList::COL_IPV6, true); connect(ufwEnabled, SIGNAL(toggled(bool)), SLOT(setStatus())); connect(ipv6Enabled, SIGNAL(toggled(bool)), SLOT(setIpV6())); connect(ufwLoggingLevel, SIGNAL(currentIndexChanged(int)), SLOT(setLogLevel())); connect(defaultIncomingPolicy, SIGNAL(currentIndexChanged(int)), SLOT(setDefaultIncomingPolicy())); connect(defaultOutgoingPolicy, SIGNAL(currentIndexChanged(int)), SLOT(setDefaultOutgoingPolicy())); connect(addRuleButton, SIGNAL(clicked(bool)), SLOT(createRules())); connect(editRuleButton, SIGNAL(clicked(bool)), SLOT(editRule())); connect(removeRuleButton, SIGNAL(clicked(bool)), SLOT(removeRule())); connect(moveRuleUpButton, SIGNAL(clicked(bool)), SLOT(moveRuleUp())); connect(moveRuleDownButton, SIGNAL(clicked(bool)), SLOT(moveRuleDown())); connect(refreshButton, SIGNAL(clicked(bool)), SLOT(queryStatus())); connect(logButton, SIGNAL(clicked(bool)), SLOT(displayLog())); connect(ruleList, SIGNAL(itemSelectionChanged()), SLOT(ruleSelectionChanged())); connect(ruleList, SIGNAL(itemDoubleClicked(QTreeWidgetItem *, int)), SLOT(ruleDoubleClicked(QTreeWidgetItem *, int))); connect(modulesList, SIGNAL(itemClicked(QTreeWidgetItem *, int)), SLOT(moduleClicked(QTreeWidgetItem *, int))); addRuleButton->setIcon(KIcon("list-add")); editRuleButton->setIcon(KIcon("document-edit")); removeRuleButton->setIcon(KIcon("list-remove")); moveRuleUpButton->setIcon(KIcon("arrow-up")); moveRuleDownButton->setIcon(KIcon("arrow-down")); refreshButton->setIcon(KIcon("view-refresh")); profilesButton->setIcon(KIcon("document-multiple")); logButton->setIcon(KIcon("text-x-log")); QMenu *profilesMenu=new QMenu(this); noProfilesAction=new QAction(i18n("No Saved Profiles"), this); noProfilesAction->setEnabled(false); profilesMenu->addAction(KIcon("document-save"), i18n("Save Current Settings..."), this, SLOT(saveProfile())); loadMenu=profilesMenu->addMenu(KIcon("document-open"), i18n("Load Profile")); deleteMenu=profilesMenu->addMenu(KIcon("edit-delete"), i18n("Delete Profile")); profilesMenu->addAction(KIcon("document-import"), i18n("Import..."), this, SLOT(importProfile())); profilesMenu->addAction(KIcon("document-export"), i18n("Export..."), this, SLOT(exportProfile())); profilesButton->setMenu(profilesMenu); ruleList->setDragEnabled(true); ruleList->viewport()->setAcceptDrops(true); ruleList->setDropIndicatorShown(true); ruleList->setDragDropMode(QAbstractItemView::InternalMove); listUserProfiles(); profilesButton->setPopupMode(QToolButton::InstantPopup); connect(loadMenu, SIGNAL(triggered(QAction *)), SLOT(loadProfile(QAction *))); connect(deleteMenu, SIGNAL(triggered(QAction *)), SLOT(removeProfile(QAction *))); connect(loadMenu, SIGNAL(aboutToShow()), SLOT(loadMenuShown())); connect(deleteMenu, SIGNAL(aboutToShow()), SLOT(deleteMenuShown())); connect(ruleList, SIGNAL(dropped(const QTreeWidgetItem *)), SLOT(moveTo(const QTreeWidgetItem *))); addModules(); blocker=new Blocker(this); blocker->add(ufwEnabled); blocker->add(ipv6Enabled); blocker->add(ufwLoggingLevel); blocker->add(defaultIncomingPolicy); blocker->add(defaultOutgoingPolicy); blocker->add(addRuleButton); blocker->add(editRuleButton); blocker->add(removeRuleButton); blocker->add(moveRuleUpButton); blocker->add(moveRuleDownButton); blocker->add(refreshButton); blocker->add(profilesButton); blocker->add(logButton); } void Kcm::setupActions() { queryAction=KAuth::Action("org.kde.ufw.query"); queryAction.setHelperID("org.kde.ufw"); #if KDE_IS_VERSION(4, 5, 90) queryAction.setParentWidget(this); #endif // queryAction.setExecutesAsync(true); connect(queryAction.watcher(), SIGNAL(actionPerformed(ActionReply)), SLOT(queryPerformed(ActionReply))); modifyAction=KAuth::Action("org.kde.ufw.modify"); modifyAction.setHelperID("org.kde.ufw"); #if KDE_IS_VERSION(4, 5, 90) modifyAction.setParentWidget(this); #endif // modifyAction.setExecutesAsync(true); connect(modifyAction.watcher(), SIGNAL(actionPerformed(ActionReply)), SLOT(modifyPerformed(ActionReply))); } void Kcm::addModules() { QList modules; modules.append(KernelModule(i18nc("kernel module name", "FTP"), "nf_conntrack_ftp", "nf_nat_ftp")); modules.append(KernelModule(i18nc("kernel module name", "IRC"), "nf_conntrack_irc", "nf_nat_irc")); modules.append(KernelModule(i18nc("kernel module name", "NetBIOS"), "nf_conntrack_netbios_ns", QString(), "Samba")); modules.append(KernelModule(i18nc("kernel module name", "PPTP"), "nf_conntrack_pptp", "nf_nat_pptp", "VPN")); modules.append(KernelModule(i18nc("kernel module name", "SANE"), "nf_conntrack_sane")); modules.append(KernelModule(i18nc("kernel module name", "SIP"), "nf_conntrack_sip", "nf_nat_sip")); addOtherModules(modules); qSort(modules); QList::ConstIterator it(modules.constBegin()), end(modules.constEnd()); for(; it!=end; ++it) addModule(modulesList, *it); modulesList->header()->resizeSections(QHeaderView::ResizeToContents); modulesList->sortItems(MOD_COL_NAME, Qt::AscendingOrder); QTreeWidgetItem *headerItem=modulesList->headerItem(); if(headerItem) { headerItem->setToolTip(MOD_COL_CONN_TRACK, i18n("

    Connection tracking is the ability to maintain connection state " "information (such as source and destination address/port, protocol, etc.) " "in memory.

    " "

    Using these modules makes the firewall more secure.

    ")); headerItem->setToolTip(MOD_COL_NAT, i18n("

    NAT (Network Address Translation). " "Where any form of NAT (SNAT, DNAT, Masquerading) on your firewall is involved, " "some commands and responses may also need to be modified by the firewall. This " "is the job of the NAT modules.

    " "

    NOTE:If you are using the corresponding Connection Tracking " "module, then you should also enable the NAT module.

    ")); } } void Kcm::setStatus(const Profile &profile) { if(!profile.hasStatus()) return; if(ufwEnabled->isChecked()!=profile.getEnabled()) { ufwEnabled->blockSignals(true); ufwEnabled->setChecked(profile.getEnabled()); ufwEnabled->blockSignals(false); } configBox->setStatus(profile.getEnabled()); } void Kcm::setDefaults(const Profile &profile) { if(!profile.hasDefaults()) return; if(profile.getIpv6Enabled()!=ipv6Enabled->isChecked()) { ipv6Enabled->blockSignals(true); ipv6Enabled->setChecked(profile.getIpv6Enabled()); ipv6Enabled->blockSignals(false); } if(ruleList->isColumnHidden(RulesList::COL_IPV6)==profile.getIpv6Enabled()) { ruleList->setColumnHidden(RulesList::COL_IPV6, !profile.getIpv6Enabled()); if(profile.getIpv6Enabled()) ruleList->resizeColumnToContents(RulesList::COL_IPV6); } if(ufwLoggingLevel->currentIndex()!=(int)profile.getLogLevel()) { ufwLoggingLevel->blockSignals(true); ufwLoggingLevel->setCurrentIndex(profile.getLogLevel()); ufwLoggingLevel->blockSignals(false); } if(defaultOutgoingPolicy->currentIndex()!=(int)profile.getDefaultOutgoingPolicy()) { defaultOutgoingPolicy->blockSignals(true); defaultOutgoingPolicy->setCurrentIndex(profile.getDefaultOutgoingPolicy()); defaultOutgoingPolicy->blockSignals(false); } if(defaultIncomingPolicy->currentIndex()!=(int)profile.getDefaultIncomingPolicy()) { defaultIncomingPolicy->blockSignals(true); defaultIncomingPolicy->setCurrentIndex(profile.getDefaultIncomingPolicy()); defaultIncomingPolicy->blockSignals(false); } } void Kcm::setModules(const Profile &profile) { if(!profile.hasModules()) return; QSet mods=profile.getModules(); modulesList->blockSignals(true); for(int i=0; itopLevelItemCount(); ++i) { QTreeWidgetItem *item=modulesList->topLevelItem(i); if(item) { QString connTrack=item->data(MOD_COL_CONN_TRACK, Qt::UserRole).toString(), nat=item->data(MOD_COL_NAT, Qt::UserRole).toString(); int state=0; if(!connTrack.isEmpty()) { bool checked=mods.contains(connTrack); item->setCheckState(MOD_COL_CONN_TRACK, checked ? Qt::Checked : Qt::Unchecked); if(checked) { mods.remove(connTrack); state+=MOD_STATE_CONN_TRACK_ENABLED; } } if(!nat.isEmpty()) { bool checked=mods.contains(nat); item->setCheckState(MOD_COL_NAT, checked ? Qt::Checked : Qt::Unchecked); if(checked) { mods.remove(nat); state+=MOD_STATE_NAT_ENABLED; } } item->setData(0, Qt::UserRole, state); } } // Store list of other IP tables modules that are not explicitly handled - that way if we make modifications, // they will also be added. otherModules=mods; modulesList->blockSignals(false); } void Kcm::setRules(const Profile &profile) { if(!profile.hasRules()) return; // First off all, save previous list state - so that this can be restored afterwards. // This helps to hide the fact that the list is regenerated. unsigned int prevCount=ruleList->topLevelItemCount(), prevSelected=0, prevTop=0; bool hadSelectedItem=false; if(prevCount>0) { if(moveToPos) { prevSelected=moveToPos; hadSelectedItem=true; } else { QList selectedItems=ruleList->selectedItems(); if(1==selectedItems.count()) { prevSelected=selectedItems.first()->data(0, Qt::UserRole).toUInt(); hadSelectedItem=true; } } QTreeWidgetItem *topItem=ruleList->itemAt(QPoint(0, 0)); if(topItem) prevTop=topItem->data(0, Qt::UserRole).toUInt(); } ruleList->clear(); currentRules=profile.getRules(); if(currentRules.count()>0) { QTreeWidgetItem *topItem=0L, *selectedItem=0L; unsigned int index=0; QList::ConstIterator it(currentRules.constBegin()), end(currentRules.constEnd()); for(; it!=end; ++it) { QTreeWidgetItem *item=ruleList->insert(*it); item->setData(0, Qt::UserRole, ++index); if(prevTop>0 && index==prevTop) topItem=item; if(prevCount>0 && hadSelectedItem) if(index<=prevSelected) selectedItem=item; } ruleList->resizeToContents(); // Restore top and selected items if(topItem) ruleList->scrollToItem(topItem); if(selectedItem) selectedItem->setSelected(true); } } QSet Kcm::modules() { QSet mods; for(int i=0; itopLevelItemCount(); ++i) { QTreeWidgetItem *item=modulesList->topLevelItem(i); if(item) { QString connTrack=item->data(MOD_COL_CONN_TRACK, Qt::UserRole).toString(), nat=item->data(MOD_COL_NAT, Qt::UserRole).toString(); if(!connTrack.isEmpty() && Qt::Checked==item->checkState(MOD_COL_CONN_TRACK)) mods.insert(connTrack); if(!nat.isEmpty() && Qt::Checked==item->checkState(MOD_COL_NAT)) mods.insert(nat); } } // Add other modules not handled by this KCM - otherwise they will be removed!!! QSet::ConstIterator it(otherModules.constBegin()), end(otherModules.constEnd()); for(; it!=end; ++it) mods.insert(*it); return mods; } } #include "kcm.moc" ufw-kde-0.5.0/kcm/strings.h0000664000175000017500000000224112270515626015127 0ustar ubuntuubuntu#ifndef UFW_STRINGS_H #define UFW_STRINGS_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include namespace UFW { namespace Strings { extern QString policyInformation(bool withLimit=true); extern QString logLevelInformation(); extern QString protocolInformation(); extern QString loggingInformation(); extern QString ruleOrderInformation(); } } #endif ufw-kde-0.5.0/.gitignore0000664000175000017500000000000612270515626014500 0ustar ubuntuubuntubuild ufw-kde-0.5.0/helper/0000775000175000017500000000000012270515626013773 5ustar ubuntuubuntuufw-kde-0.5.0/helper/org.kde.ufw.service.cmake0000664000175000017500000000011412270515626020561 0ustar ubuntuubuntu[D-BUS Service] Name=org.kde.ufw Exec=@LIBEXEC_INSTALL_DIR@/kcm_ufw_helper ufw-kde-0.5.0/helper/kcm_ufw_helper.py.cmake0000775000175000017500000004576612270515626020443 0ustar ubuntuubuntu#!/usr/bin/env python3 # # UFW KControl Module # # Copyright 2011 Craig Drummond # #------------------------------------------------------------------- # Some of the code here is taken/inspired from ufw-frontends, # Copyright notice for this follows... #------------------------------------------------------------------- # # frontend.py: Base frontend for ufw # # Copyright (C) 2010 Darwin M. Bautista # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . import os import sys import locale import gettext import getopt import shutil import hashlib import io from xml.etree import ElementTree as etree from copy import deepcopy import ufw.common import ufw.frontend from ufw.util import valid_address from ufw.common import UFWRule ANY_ADDR = '0.0.0.0/0' ANY_PORT = 'any' ANY_PROTOCOL = 'any' OLD_DESCR_FILE = "/etc/ufw/descriptions" DESCR_FILE = "/etc/kcm_ufw/descriptions" DEFAULTS_FILE = "@DATA_INSTALL_DIR@/kcm_ufw/defaults" ERROR_FAILED_TO_SET_STATUS = -1 ERROR_INVALID_INDEX = -2 ERROR_INVALID_XML_NO_RULE = -3 ERROR_INVALID_XML_NO_ACTION_XML = -4 ERROR_INVALID_XML_NO_DEFAULTS = -5 ERROR_INVALID_XML_NO_MODULES = -6 class UFWFrontend(ufw.frontend.UFWFrontend): def __init__(self, dryrun): ufw.frontend.UFWFrontend.__init__(self, dryrun) # Compatibility for ufw 0.31 # This is a better way of handling method renames instead of putting # try/except blocks all over the whole application code # Ref: http://code.google.com/p/ufw-frontends/issues/detail?id=20 try: self.backend.get_default_policy except AttributeError: self.backend.get_default_policy = self.backend._get_default_policy try: self.backend._is_enabled except AttributeError: self.backend._is_enabled = self.backend.is_enabled def localizeUfw(): # Ref: http://code.google.com/p/ufw-frontends/issues/detail?id=19 locale.setlocale(locale.LC_ALL, 'C') gettext.install(ufw.common.programName) #define looad descriptions file # descrsChanged=False # def moveOldDescrFile(): # try: # if os.path.exists(OLD_DESCR_FILE) and os.path.isfile(OLD_DESCR_FILE): # shutil.move(OLD_DESCR_FILE, DESCR_FILE) # except Exception as e: # return # Old file does not exist, or is not a file!... # # def loadDescriptions(): # moveOldDescrFile(); # try: # global descrs # descrs={"a":"b"} # descrData=open(DESCR_FILE).read() # descrs=eval(descrData) # except Exception as e: # return # # def removeDescriptions(): # try: # os.remove(DESCR_FILE) # descrsChanged=False # except Exception as e: # return # # def saveDescriptions(): # global descrsChanged # if descrsChanged: # try: # if ("a" in descrs): # del descrs["a"] # if len(descrs)>0: # descrFile = open(DESCR_FILE, 'w') # descrFile.write(repr(descrs)) # descrsChanged=False # else: # removeDescriptions() # except Exception as e: # return # # def getDescription(hashStr): # if (hashStr in descrs): # return descrs[hashStr] # return '' # # def removeDescription(hashStr): # if (hashStr in descrs): # del descrs[hashStr] # global descrsChanged # descrsChanged=True # # def updateDescription(hashStr, descrStr): # if ((hashStr in descrs)==False) or (descrs[hashStr]!=descrStr): # removeDescription(hashStr) # descrs[hashStr]=descrStr # global descrsChanged # descrsChanged=True def loadDefaultSettings(ufw): try: defaultsFile=open(DEFAULTS_FILE) while 1: line = defaultsFile.readline() if line == '': break parts=line.split('=') if len(parts) == 2: value=parts[1].replace('\n', '') if parts[0] == 'incoming': ufw.set_default_policy(value, 'incoming') elif parts[0] == 'outgoing': ufw.set_default_policy(value, 'outgoing') elif parts[0] == 'loglevel': ufw.set_loglevel(value) elif parts[0] == 'ipv6': ufw.backend.set_default(ufw.backend.files['defaults'], 'IPV6', value.lower()) elif parts[0] == 'modules': ufw.backend.set_default(ufw.backend.files['defaults'], 'IPT_MODULES', '"' + value + '"') except Exception as e: return # Localise UFW, and init the 'frontend' localizeUfw() ufw=UFWFrontend(False) def getProtocol(rule): """Determine protocol of rule. Taken from ufw.parser.UFWCommandRule.parse """ # Determine src type if rule.src == ANY_ADDR: from_type = 'any' else: from_type = ('v6' if valid_address(rule.src, '6') else 'v4') # Determine dst type if rule.dst == ANY_ADDR: to_type = 'any' else: to_type = ('v6' if valid_address(rule.dst, '6') else 'v4') # Figure out the type of rule (IPv4, IPv6, or both) if from_type == ANY_PROTOCOL and to_type == ANY_PROTOCOL: protocol = 'both' elif from_type != ANY_PROTOCOL and to_type != ANY_PROTOCOL and from_type != to_type: err_msg = _("Mixed IP versions for 'from' and 'to'") raise ufw.common.UFWError(err_msg) elif from_type != ANY_PROTOCOL: protocol = from_type elif to_type != ANY_PROTOCOL: protocol = to_type return protocol def insertRule(ufw, rule, protocol=None): if protocol is None: protocol = getProtocol(rule) rule = rule.dup_rule() # Fix any inconsistency if rule.sapp or rule.dapp: rule.set_protocol(ANY_PROTOCOL) if rule.sapp: rule.sport = rule.sapp if rule.dapp: rule.dport = rule.dapp # If trying to insert beyond the end, just set position to 0 if rule.position and not ufw.backend.get_rule_by_number(rule.position): rule.set_position(0) ufw.set_rule(rule, protocol) # Reset the positions of the recently inserted rule(s) if rule.position: s = rule.position - 1 e = rule.position + 1 for r in ufw.backend.get_rules()[s:e]: r.set_position(0) return rule def getRulesList(ufw): app_rules = [] for i, r in enumerate(ufw.backend.get_rules()): if r.dapp or r.sapp: t = r.get_app_tuple() if t in app_rules: continue else: app_rules.append(t) yield (i, r) def encodeText(str): str=str.replace("&", "&") str=str.replace("<", "<") str=str.replace("\"", """) str=str.replace(">", ">") return str def ruleDetails(rule): xmlStr = io.StringIO() xmlStr.write("action=\"") xmlStr.write(rule.action.lower()) xmlStr.write("\" direction=\"") xmlStr.write(rule.direction.lower()) xmlStr.write("\" dapp=\"") xmlStr.write(rule.dapp) xmlStr.write("\" sapp=\"") xmlStr.write(rule.sapp) xmlStr.write("\" dport=\"") xmlStr.write(rule.dport) xmlStr.write("\" sport=\"") xmlStr.write(rule.sport) xmlStr.write("\" protocol=\"") xmlStr.write(rule.protocol.lower()) xmlStr.write("\" dst=\"") xmlStr.write(rule.dst) xmlStr.write("\" src=\"") xmlStr.write(rule.src) xmlStr.write("\" interface_in=\"") xmlStr.write(rule.interface_in) xmlStr.write("\" interface_out=\"") xmlStr.write(rule.interface_out) xmlStr.write("\" v6=\"") if rule.v6: xmlStr.write('True') else: xmlStr.write('False') return xmlStr.getvalue() # def detailsHash(details): # ruleHash = hashlib.md5() # ruleHash.update(details.encode('utf-8')) # return ruleHash.hexdigest() # Convert a rule to an XML string... def toXml(rule, xmlStr): xmlStr.write("") # Create rule from XML... def fromXml(str): elem = etree.XML(str) if elem.tag != 'rule': error("ERROR: Invalid XML, expected \'rule\' element", ERROR_INVALID_XML_NO_RULE) action=elem.get('action', '').lower() if action == '': error("ERROR: Invalid XML, no action specified", ERROR_INVALID_XML_NO_ACTION_XML) protocol=elem.get('protocol', ANY_PROTOCOL).lower() rule = UFWRule(action, protocol) rule.position=int(elem.get('position', 0)) rule.direction=elem.get('direction', 'in').lower() rule.dapp=elem.get('dapp', '') rule.sapp=elem.get('sapp', '') rule.dport=elem.get('dport', ANY_PORT) rule.sport=elem.get('sport', ANY_PORT) rule.dst=elem.get('dst', ANY_ADDR) rule.src=elem.get('src', ANY_ADDR) rule.interface_in=elem.get('interface_in', '') rule.interface_out=elem.get('interface_out', '') rule.logtype=elem.get('logtype', '').lower() rule.v6=elem.get('v6', 'False').lower() == "true" return rule def getStatus(ufw, xmlStr): xmlStr.write("") def setEnabled(ufw, status): if status.lower() == "false": stat=False else: stat=True if stat != ufw.backend._is_enabled(): ufw.set_enabled(stat) if ufw.backend._is_enabled() != stat: error("ERROR: Failed to set UFW status", ERROR_FAILED_TO_SET_STATUS) def getDefaults(ufw, xmlStr): conf = ufw.backend.defaults xmlStr.write("") def setDefaults(ufw, xml): elem = etree.XML(xml) if elem.tag != 'defaults': error("ERROR: Invalid XML, expected \'defaults\' element", ERROR_INVALID_XML_NO_DEFAULTS) enabled=ufw.backend._is_enabled() if enabled: ufw.set_enabled(False) ipv6=elem.get('ipv6', '').lower() if ipv6 != '': del ufw ufw=UFWFrontend(False) ufw.backend.set_default(ufw.backend.files['defaults'], 'IPV6', ipv6) del ufw ufw=UFWFrontend(False) policy=elem.get('incoming', '').lower() if policy != '': ufw.set_default_policy(policy, 'incoming') policy=elem.get('outgoing', '').lower() if policy != '': ufw.set_default_policy(policy, 'outgoing') loglevel=elem.get('loglevel', '').lower() if loglevel != '': ufw.set_loglevel(loglevel) if enabled: ufw.set_enabled(True) def getRules(ufw, xmlStr): xmlStr.write("") for i, data in enumerate(getRulesList(ufw)): idx, rule = data toXml(rule.dup_rule(), xmlStr) xmlStr.write("") # def updateRuleDescription(rule, xml): # elem=etree.XML(xml) # descr=elem.get('descr', '') # oldHashCode=elem.get('hash', '') # if descr != '': # details=ruleDetails(rule) # hashStr=detailsHash(details) # # For an update, we should be passed old hash code - if so, remove old entry... # if oldHashCode!= '': # removeDescription(oldHashCode) # updateDescription(hashStr, descr) # else: # if oldHashCode!= '': # removeDescription(oldHashCode) def addRule(ufw, xml): rule=fromXml(xml) inserted=insertRule(ufw, rule) # updateRuleDescription(inserted, xml) def updateRule(ufw, xml): rule=fromXml(xml) deleted=False try: prev=deepcopy(ufw.backend.get_rule_by_number(rule.position)) ufw.delete_rule(rule.position, True) deleted=True inserted=insertRule(ufw, rule) deleted=False # updateRuleDescription(inserted, xml) except Exception as e: if deleted: insertRule(ufw, prev) # def updateRuleDescr(ufw, xml): # rule=fromXml(xml) # details=ruleDetails(rule) # hashStr=detailsHash(details) # updateRuleDescription(rule, xml) # Remove a rule. Index is either; just the index, or : def removeRule(ufw, index): parts=index.split(':') try: if 2==len(parts): idx=int(parts[0]) else: idx=int(index) if idx<1 or idx>(ufw.backend.get_rules_count(False)+ufw.backend.get_rules_count(True)): error("ERROR: Invalid index", ERROR_INVALID_INDEX) # if 2==len(parts): # removeDescription(parts[1]) # else: # rule=ufw.backend.get_rule_by_number(index) # if rule: # details=ruleDetails(rule) # hashStr=detailsHash(details) # removeDescription(hashStr) ufw.delete_rule(idx, True) #except ufw.common.UFWError as e: #error("ERROR: UFW error", e.value) except ValueError: error("ERROR: Invalid input type", ERROR_INVALID_INDEX) def moveRule(ufw, indexes): idx=indexes.split(':') if 2!= len(idx): error("ERROR: Invalid number of indexes", ERROR_INVALID_INDEX) fromIndex=int(idx[0]) toIndex=int(idx[1]) if fromIndex == toIndex: error("ERROR: Source and destination cannot be the same", ERROR_INVALID_INDEX) rule=ufw.backend.get_rule_by_number(fromIndex).dup_rule() ufw.delete_rule(fromIndex, True) rule.position=toIndex insertRule(ufw, rule) def reset(ufw): loadDefaultSettings(ufw) clearRules(ufw) ufw.reset(True) if ufw.backend._is_enabled(): ufw.set_enabled(False) ufw.set_enabled(True) def clearRules(ufw): # removeDescriptions() count=ufw.backend.get_rules_count(False)+ufw.backend.get_rules_count(True) for num in range(0, count): try: ufw.delete_rule(1, True) except ufw.common.UFWError as e: pass def getModules(ufw, xmlStr): xmlStr.write("") def setModules(ufw, xml): elem = etree.XML(xml) if elem.tag != 'modules': error("ERROR: Invalid XML, expected \'modules' element", ERROR_INVALID_XML_NO_MODULES) modules=elem.get('enabled', '').lower() modules = '"' + modules + '"' ufw.backend.set_default(ufw.backend.files['defaults'], 'IPT_MODULES', modules) # def getProfiles(ufw, xmlStr): # xmlStr.write("") def error(str, rv): print >> sys.stderr, str #sys.exit(rv) def main(): try: # opts, args = getopt.getopt(sys.argv[1:], "hse:df:la:u:U:r:m:tiI:x", # ["help", "status", "setEnabled=", "defaults", "setDefaults=", "list", "add=", # "update=", "updateDescr=", "remove=", "move=", "reset", "modules", "setModules=", "clearRules"]) opts, args = getopt.getopt(sys.argv[1:], "hse:df:la:u:U:r:m:tiI:x", ["help", "status", "setEnabled=", "defaults", "setDefaults=", "list", "add=", "update=", "remove=", "move=", "reset", "modules", "setModules=", "clearRules"]) except getopt.GetoptError as err: # print help information and exit: print >> sys.stderr, str(err) # will print something like "option -a not recognized" usage() sys.exit(1) # loadDescriptions() returnXml = False xmlOut = io.StringIO() xmlOut.write("") for o, a in opts: if o in ("-h", "--help"): usage() sys.exit() elif o in ("-s", "--status"): getStatus(ufw, xmlOut) returnXml=True elif o in ("-e", "--setEnabled"): setEnabled(ufw, a) elif o in ("-d", "--defaults"): getDefaults(ufw, xmlOut) returnXml=True elif o in ("-f", "--setDefaults"): setDefaults(ufw, a) elif o in ("-l", "--list"): getRules(ufw, xmlOut) returnXml=True elif o in ("-a", "--add"): addRule(ufw, a) elif o in ("-u", "--update"): updateRule(ufw, a) # elif o in ("-U", "--updateDescr"): # updateRuleDescr(ufw, a) elif o in ("-r", "--remove"): removeRule(ufw, a) elif o in ("-m", "--move"): moveRule(ufw, a) elif o in ("-t", "--reset"): reset(ufw) elif o in ("-i", "--modules"): getModules(ufw, xmlOut) returnXml=True elif o in ("-I", "--setModules"): setModules(ufw, a) elif o in ("-x", "--clearRules"): clearRules(ufw) else: usage() # saveDescriptions() if returnXml: xmlOut.write("") print (xmlOut.getvalue()) def usage(): print ("Python helper for UFW KCM") print ("") print ("(C) Craig Drummond, 2011") print ("") print ("Usage:") print (" "+sys.argv[0]+" --status") print (" "+sys.argv[0]+" --setEnabled ") print (" "+sys.argv[0]+" --defaults") print (" "+sys.argv[0]+" --setDefaults ") print (" "+sys.argv[0]+" --list") print (" "+sys.argv[0]+" --add ") print (" "+sys.argv[0]+" --update ") # print (" "+sys.argv[0]+" --updateDescr ") print (" "+sys.argv[0]+" --remove ") print (" "+sys.argv[0]+" --remove ") print (" "+sys.argv[0]+" --move ") print (" "+sys.argv[0]+" --reset") print (" "+sys.argv[0]+" --modules") print (" "+sys.argv[0]+" --setModules ") print (" "+sys.argv[0]+" --clearRules") if __name__ == "__main__": main() ufw-kde-0.5.0/helper/defaults0000664000175000017500000000016412270515626015526 0ustar ubuntuubuntuincoming=allow outgoing=allow loglevel=off ipv6=false modules=nf_conntrack_netbios_ns nf_conntrack_pptp nf_nat_pptp ufw-kde-0.5.0/helper/helper.cpp0000664000175000017500000002463712270515626015772 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "helper.h" #include "config.h" #include #include #include #include #include #include #include #include #include #include namespace UFW { #define FILE_PERMS 0644 #define DIR_PERMS 0755 #define KCM_UFW_DIR "/etc/kcm_ufw" #define PROFILE_EXTENSION ".ufw" #define LOG_FILE "/var/log/ufw.log" static void setPermissions(const QString &f, int perms) { // // Clear any umask before setting file perms mode_t oldMask(umask(0000)); ::chmod(QFile::encodeName(f).constData(), perms); // Reset umask ::umask(oldMask); } static void checkFolder() { QDir d(KCM_UFW_DIR); if(!d.exists()) { d.mkpath(KCM_UFW_DIR); setPermissions(d.absolutePath(), DIR_PERMS); } } ActionReply Helper::query(const QVariantMap &args) { qDebug() << __FUNCTION__; ActionReply reply=args["defaults"].toBool() ? run(QStringList() << "--status" << "--defaults" << "--list" << "--modules", "query") : run(QStringList() << "--status" << "--list", "query"); if(args["profiles"].toBool()) { QDir dir(KCM_UFW_DIR); QStringList profiles=dir.entryList(QStringList() << "*"PROFILE_EXTENSION); QMap data; foreach (const QString &profile, profiles) { QFile f(dir.canonicalPath()+QChar('/')+profile); if (f.open(QIODevice::ReadOnly)) { data.insert(profile, f.readAll()); } } reply.addData("profiles", data); } return reply; } ActionReply Helper::viewlog(const QVariantMap &args) { qDebug() << __FUNCTION__; QString lastLine=args["lastLine"].toString(), logFile=args["logFile"].toString(); QFile file(logFile.isEmpty() ? QLatin1String(LOG_FILE) : logFile); ActionReply reply; if(file.open(QIODevice::ReadOnly|QIODevice::Text)) { QStringList lines; while (!file.atEnd()) { QString line(file.readLine()); if(line.contains(" [UFW ")) { if(!lastLine.isEmpty() && line==lastLine) { lines.clear(); continue; } lines.append(line); } } reply.addData("lines", lines); } else { reply=ActionReply::HelperErrorReply; reply.setErrorCode(STATUS_OPERATION_FAILED); } return reply; } ActionReply Helper::modify(const QVariantMap &args) { qDebug() << __FUNCTION__; QString cmd=args["cmd"].toString(); // QProcess converts its args using QString().toLocal8Bit()!!!, so use UTF-8 codec!!! QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8")); if("setStatus"==cmd) return setStatus(args, cmd); else if("addRules"==cmd) return addRules(args, cmd); else if("removeRule"==cmd) return removeRule(args, cmd); else if("moveRule"==cmd) return moveRule(args, cmd); else if("editRule"==cmd) return editRule(args, cmd); // else if("editRuleDescr"==cmd) // return editRuleDescr(args, cmd); else if("reset"==cmd) return reset(cmd); else if("setDefaults"==cmd) return setDefaults(args, cmd); else if("setModules"==cmd) return setModules(args, cmd); else if("setProfile"==cmd) return setProfile(args, cmd); else if("saveProfile"==cmd) return saveProfile(args, cmd); else if("deleteProfile"==cmd) return deleteProfile(args, cmd); ActionReply reply=ActionReply::HelperErrorReply; reply.setErrorCode(STATUS_INVALID_CMD); return reply; } ActionReply Helper::setStatus(const QVariantMap &args, const QString &cmd) { return run(QStringList() << "--setEnabled="+QString(args["status"].toBool() ? "true" : "false"), QStringList() << "--status", cmd); } ActionReply Helper::setDefaults(const QVariantMap &args, const QString &cmd) { QStringList query; query << "--defaults"; if (args["ipv6"].toBool()) query << "--list"; return run(QStringList() << "--setDefaults="+args["xml"].toString(), query, cmd); } ActionReply Helper::setModules(const QVariantMap &args, const QString &cmd) { return run(QStringList() << "--setModules="+args["xml"].toString(), QStringList() << "--modules", cmd); } ActionReply Helper::setProfile(const QVariantMap &args, const QString &cmd) { QStringList cmdArgs; if(args.contains("ruleCount")) { unsigned int count=args["ruleCount"].toUInt(); cmdArgs << "--clearRules"; for(unsigned int i=0; i0) { QStringList cmdArgs; for(unsigned int i=0; i * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include #include class QStringList; class QByteArray; using namespace KAuth; namespace UFW { class LogLister; class Helper : public QObject { Q_OBJECT public: enum Status { STATUS_OK, STATUS_INVALID_CMD = -100, STATUS_INVALID_ARGUMENTS = -101, STATUS_OPERATION_FAILED = -102, }; public Q_SLOTS: ActionReply query(const QVariantMap &args); ActionReply viewlog(const QVariantMap &args); ActionReply modify(const QVariantMap &args); private: ActionReply setStatus(const QVariantMap &args, const QString &cmd); ActionReply setDefaults(const QVariantMap &args, const QString &cmd); ActionReply setModules(const QVariantMap &args, const QString &cmd); ActionReply setProfile(const QVariantMap &args, const QString &cmd); ActionReply saveProfile(const QVariantMap &args, const QString &cmd); ActionReply deleteProfile(const QVariantMap &args, const QString &cmd); ActionReply addRules(const QVariantMap &args, const QString &cmd); ActionReply removeRule(const QVariantMap &args, const QString &cmd); ActionReply moveRule(const QVariantMap &args, const QString &cmd); ActionReply editRule(const QVariantMap &args, const QString &cmd); // ActionReply editRuleDescr(const QVariantMap &args, const QString &cmd); ActionReply reset(const QString &cmd); ActionReply run(const QStringList &args, const QString &cmd); ActionReply run(const QStringList &args, const QStringList &second, const QString &cmd); private: LogLister *lister; }; } #endif ufw-kde-0.5.0/helper/ufw.actions0000664000175000017500000001064112270515626016160 0ustar ubuntuubuntu[Domain] Name=Uncomplicated Firewall Name[cs]=Nekomplikovaný firewall Name[de]=Unkomplizierte Firewall Name[es]=Cortafuegos simple Name[fr]=Pare-feu simplifié Name[gl]=Devase sen complicacións Name[hu]=Egyszerű tűzfal Name[nl]=Eenvoudige firewall Name[pt]='Firewall' Simplificada Name[pt_BR]=Firewall descomplicado Name[sk]=Nekomplikovaný firewall Name[sv]=Okomplicerad brandvägg Name[tr]=Karmaşık Olmayan Güvenlik Duvarı Name[uk]=Нескладний брандмауер Name[x-test]=xxUncomplicated Firewallxx Icon=security-high [org.kde.ufw.query] Name=Query Firewall Name[cs]=Dotázat se firewallu Name[de]=Firewall abfragen Name[es]=Consultar el cortafuegos Name[fr]=Interroger le pare-feu Name[gl]=Consultar a devasa Name[hu]=Tűzfal lekérdezése Name[nl]=Firewall afvragen Name[pt]=Consultar a 'Firewall' Name[pt_BR]=Pesquisa no firewall Name[sk]=Dotaz na firewall Name[sv]=Fråga brandvägg Name[tr]=Sorgu Güvenlik Duvarı Name[uk]=Надіслати запит до брандмауера Name[x-test]=xxQuery Firewallxx Description=Query firewall status Description[cs]=Dotázat se na stav firewallu Description[de]=Firewallstatus abfragen Description[es]=Consultar el estado del cortafuegos Description[fr]=Interroger le pare-feu sur son état Description[gl]=Estado da consulta á devasa Description[hu]=Tűzfalállapot lekérdezése Description[nl]=Status van firewall afvragen Description[pt]=Consultar o estado da 'firewall' Description[pt_BR]=Status da pesquisa no firewall Description[sk]=Dotaz na stav firewallu Description[sv]=Fråga om brandväggens status Description[tr]=Sorgu güvenlik duvarı durumu Description[uk]=Стан запиту до брандмауера Description[x-test]=xxQuery firewall statusxx Policy=yes Persistence=session [org.kde.ufw.viewlog] Name=View Firewall Logs Name[cs]=Zobrazit záznamy firewallu Name[de]=Firewall-Protokolle anzeigen Name[es]=Ver los registros del cortafuegos Name[fr]=Afficher les messages du pare-feu Name[gl]=Ver os rexistros da devasa Name[hu]=Tűzfalnaplók megtekintése Name[nl]=Firewall-logs bekijken Name[pt]=Ver os Registos da 'Firewall' Name[pt_BR]=Exibir os registros do firewall Name[sk]=Zobraziť záznamy firewallu Name[sv]=Visa brandväggens loggar Name[tr]=Güvenlik Duvarı Günlüklerini Görüntüle Name[uk]=Переглянути журнал брандмауера Name[x-test]=xxView Firewall Logsxx Description=View firewall logs Description[cs]=Zobrazit záznamy firewallu Description[de]=Firewall-Protokolle anzeigen Description[es]=Ver los registros del cortafuegos Description[fr]=Afficher les messages du pare-feu Description[gl]=Visualiza o historial da devasa Description[hu]=Tűzfalnaplók megtekintése Description[nl]=Firewall-logs bekijken Description[pt]=Ver os registos da 'firewall' Description[pt_BR]=Exibe os registros do firewall Description[sk]=Zobraziť záznamy firewallu Description[sv]=Visa brandväggens loggar Description[tr]=Güvenlik duvarı günlüklerini görüntüle Description[uk]=Переглянути журнал роботи брандмауера Description[x-test]=xxView firewall logsxx Policy=yes Persistence=session [org.kde.ufw.modify] Name=Modify Firewall Name[cs]=Upravit firewall Name[de]=Firewall bearbeiten Name[es]=Modificar el cortafuegos Name[fr]=Modifier le pare-feu Name[gl]=Modificar a devasa Name[hu]=Tűzfal módosítása Name[nl]=Firewall wijzigen Name[pt]=Modificar a 'Firewall' Name[pt_BR]=Modificar o firewall Name[sk]=Zmeniť firewall Name[sv]=Ändra brandväggen Name[tr]=Güvenlik Duvarını Değiştir Name[uk]=Змінити параметри брандмауера Name[x-test]=xxModify Firewallxx Description=Modify firewall settings Description[cs]=Upravit nastavení firewallu Description[de]=Firewall-Einstellungen bearbeiten Description[es]=Modificar las preferencias del cortafuegos Description[fr]=Modifier les paramètres du pare-feu Description[gl]=Cambia a configuración da devasa Description[hu]=Tűzfalbeállítások módosítása Description[nl]=Firewall-instellingen wijzigen Description[pt]=Modificar a configuração da 'firewall' Description[pt_BR]=Modificar as configurações do firewall Description[sk]=Zmeniť nastavenia firewallu Description[sv]=Ändra brandväggens inställningar Description[tr]=Güvenlik duvarı ayarlarını değiştir Description[uk]=Змінити параметри роботи брандмауера Description[x-test]=xxModify firewall settingsxx Policy=auth_admin Persistence=session ufw-kde-0.5.0/helper/CMakeLists.txt0000664000175000017500000000166212270515626016540 0ustar ubuntuubuntuinclude_directories(${KDE4_INCLUDES} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_BINARY_DIR}) set(kcm_ufw_helper_SRCS helper.cpp) kde4_add_executable(kcm_ufw_helper ${kcm_ufw_helper_SRCS}) set_target_properties(kcm_ufw_helper PROPERTIES OUTPUT_NAME kcm_ufw_helper) target_link_libraries(kcm_ufw_helper ${KDE4_KDECORE_LIBS}) configure_file(kcm_ufw_helper.py.cmake ${CMAKE_BINARY_DIR}/kcm_ufw_helper.py) install(TARGETS kcm_ufw_helper DESTINATION ${LIBEXEC_INSTALL_DIR}) install(PROGRAMS ${CMAKE_BINARY_DIR}/kcm_ufw_helper.py DESTINATION ${LIBEXEC_INSTALL_DIR}) configure_file(org.kde.ufw.service.cmake ${CMAKE_CURRENT_BINARY_DIR}/session/org.kde.ufw.service) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/session/org.kde.ufw.service DESTINATION ${DBUS_SERVICES_INSTALL_DIR}) install(FILES defaults DESTINATION ${DATA_INSTALL_DIR}/kcm_ufw) kde4_install_auth_helper_files(kcm_ufw_helper org.kde.ufw root) kde4_install_auth_actions(org.kde.ufw ufw.actions) ufw-kde-0.5.0/CMakeLists.txt0000664000175000017500000000040312270515626015251 0ustar ubuntuubuntuproject(kcm_ufw) cmake_minimum_required(VERSION 2.6.0) find_package(KDE4 REQUIRED) configure_file(config.h.cmake ${CMAKE_BINARY_DIR}/config.h) add_subdirectory(helper) add_subdirectory(kcm) add_subdirectory(doc) #kde4_install_icons( ${ICON_INSTALL_DIR} ) ufw-kde-0.5.0/Messages.sh0000775000175000017500000000022112270515626014615 0ustar ubuntuubuntu#! /usr/bin/env bash $EXTRACTRC `find . -name \*.rc -o -name \*.ui` >> rc.cpp $XGETTEXT rc.cpp */*.cpp */*.h -o $podir/kcm_ufw.pot rm -f rc.cpp ufw-kde-0.5.0/ChangeLog0000664000175000017500000001107512270515626014272 0ustar ubuntuubuntu0.5.0 ----- 1. Convert to Python3, for compatability with Ubuntu 12.10 2. Remove support for descriptions, seems to be a bit fiddly with Ubuntu 12.10 ufw, and was a bit hacky anyway! 0.4.3 ----- 1. Actually get this to work with Kubuntu 12.04!!! 0.4.2 ----- 1. Add support for UFW 0.31 - thanks to ufw-frontends author Darwin Baustista for very kindly supplying a patch. 0.4.1 ----- 1. Fix loading of profiles. 0.4.0 ----- 1. Add a simple log file viewer. 2. Save profiles into /etc/kcm_ufw - this way they are system-wide. 3. Store rule descriptions in /etc/kcm_ufw, as they are part of this kcm, not ufw itself. 4. Block further actions, until current one is complete. 5. Set size of policy combos in simple and advanced pages to the same size - to mimimize flicker. (Not sure why they have different sizes.) 6. Make text field of simple port the same size as the combo. 7. Change column order of rules list to "Action, From, To, ..." 8. Make 'Add Rule' dialog non-modal, so that 'Log Viewer' and 'Add Rule' can be used concurrently. 9. Shorten IPv6 address - if possible. 10. Fix selection of host radio when editing rules. 11. Fix installation of JPEG files for Spanish documentation. 12. Default to installing all translations. 0.3.0 ----- 1. Add support for UFW application profiles. 2. Remove Service and Application sections from "Add Rule" dialog. Merge the entries with UFW application profiles. 3. Add more documentation, thanks to Donatas Glodenis. 4. Clear all rules before resetting firewall. 5. Use QDebug and not KDebug in helper. 6. Show IPv6 in a separate column. Hide column if IPv6 support is disabled. 7. Warn when disabling IPv6 support, and there are some V6 rules defined, that these will be removed. 8. Can only define one interface per rule - not seperate source and destination. 9. Double click rule to edit. 10. Add a semi-transparent icons to kcm (to better indicate current firewall status), and as a background pixmap in add/edit dialog. 11. Only set rules list column sizes after first non-empty list. 12. Add a cmake option UFW_TRANSLATIONS, used to specify which translations should be built and installed. e.g. -DUFW_TRANSLATIONS="es;fr;lt" 0.2.1 ----- 1. Fix updating of rule log level. 2. Fix setting of firewall defaults when firewall is enabled. 3. Fix toggling of IPv6 disabling firewall. 0.2.0 ----- 1. Add support for saving/loading of profiles. 2. Fix 'Move Up' and 'Move Down' Lithuanian translation. 3. Add French translation. Thanks to Sergio Guibert 4. Allow all settings to be changed, even when firewall is enabled. For certain settings the backend will disable the firewall, set the options, and then re-enable the firewall. 5. Save order of rules columns, so that these are restored when the kcm is reloaded. 6. Move module into "Network and Connectivty" top level category. 7. Better matching of rule port number to application/service name. 0.1.1 ----- 1. Fix bug when checking to/from address validity. 2. Add Lithuanian translation. Thanks to Donatas Glodenis 0.1.0 ----- 1. Fix installation of Spanish translation. 2. Add Up/Down buttons to allow rule moving via keyboard. 3. Indicate, in tooltips, that netbios_ns kernel module is for Samba, and pptp modules are for VPN 4. Build list of installed netfilter modules, by scanning /lib/modules/`uname -r`/kernel/net/netfilter/nf_conntrack_*.ko /lib/modules/`uname -r`/kernel/net/ipv4/netfilter/nf_nat_*.ko 5. Adjust size of application/service combo when changed. 6. Added option to give each rule a description. 7. Fix setting of 'outgoing' rules. 8. Reset contents of 'Add Rule' dialog before it is shown. 9. Install a config file listing the default settings to be for; policies, logging, ipv6, and ipt modules. 10. Provide some simple documentation. 11. Move module into "Network Settings" category. 0.0.4 ----- 1. Fix kcm_ufw.pot to contain translatable strings from UI files. 2. Fix duplicate 'Allow' label in default incoming policy combo. 3. Fix setting of default outgoing policy. 4. 'Limit' is not applicable to default incoming/outgoing policies. 5. Add Spanish translation - thanks to "Kubuntu-es.org forum users" 0.0.3 ----- 1. Add install instructions. 2. Add import/export of rules. 3. Add ability to set some IP tables modules. 0.0.2 ----- 1. Don't call 'ufw' executable, use its Python API instead. 2. Allow editing of rules. 3. Allow rules to be re-ordered via drag'n'drop. 0.0.1 ----- 1. Initial version - tested against UFW on Kubuntu 10.10 Uses 'ufw' executable in the background, and parses its output.

    7}?SU"Ƈ#"l>q;Cw/O,~>3Ur{ibm~vX} SlxÁ~ h$?Xi҂P5sz{$Ά /lTqB5Ad3x~86X"[w9KT}r ܂ucY702Md*#EKua@+H6?#HVNS 2g_@32K:jCNvP@"AwHi 0_f$ >?/Qm'ڄy+ex\d0NR* hNZ(;fJ~[f.%hh#bV$YfcH]y!aZJK-7oȫƾVRNfv)m/16NKb ~a@XݫZx!ZxfyS|:,tgqo&bYSíLCno]N3G8XrGYJxY ?ͩEw:.u%#׌Jh1GJJ,l9E3I> ʯ)h)u:7Ww 3miL@[Xt΁Աb(݉+հت}=uD;uH=3Yp8ʔH<5 ffu aiqL93 uO{^7_!b zьQ8a#jɱ9QN(` Gೱ"D`3*Ԋm؉ 5#NXF28d8|ib=}Y3P=xkh֖3 s_G*Oc݋נ;>zޕ6JS> ˖oPxkQp1!U>2P9TњJ*+r^lj)>́|/9Jpr!!3#oe \Y3N`/q?vɘa} v=ְX\b?~N9}D⬰ɰ=#< $°t)QCfuo >8oU ҆A"@A̹`awӞd?C#`ulij/8S jEm-s,m}yAv*ZS^JX_1V+&ʁZWr!k晵й B4"ǹICDzFkE!0=sd&Uk5r!`L-.Kfji-8U-H*- {Yk>|HP*ɎHUNuUNFDP < u-GCzt$ԉf:Q0BlAA{zc-q)}Hb.orB'}o^Vbldɿd *VGnãWS#/H9f?18GOƲyɸ:X.IضlQ#/ccWko1q rBH8 LΪ$=,*a%{1ҩ^ s3(*#vBp07~]pH݅bU?0l4DŽ *9T=_?L膚7H5cδJ~̒*einKX˒3Aů vL$@M:ji#ntZq8.pMȠXKfޓw򦤰{;z'o伞ڿ#f%Leld:,,&X3WKsehěFlxWg&F@h.n^.8jIJߵViO9W{*ϟ!NP8[̚+lqa3U ;!ܯ\-Kf*tg6E,β4J-dQ-X9 /b.`d[nt&`b\㥋r,p/0p)Jmdu^6:荀K_o LBfd d"Zi @&LFAZ,b\׋أ2yO O"jP6;~2}):FVG ?:B. |(Y&`XY0I4K Lg=xX~ZJ#|b]ܩh-qAƪMոt *[R:!#˚C_7Ih<#<난jfAiW86'n)k𰑕2ZR:3`&j$=ŸGv^/-@ (Yj=µJ.HZ,N޶Q(?壆N="Y );h)ee##R!"e#whs!BxJM2,|-[àn 4-D[W}xUiDeD_]b}Og--a!im 5%C4΅W"h( C6 od`Ū- eڜ8{}ʰ)CБM`kVjXz-&$/]<2}ݚ.{fwE1z$ I.3©WFT#a8r'@=$ӳIeZGhؒNYƌ} >@Meqͭ )J7Dllt7d_5UGe_OEP h8 ʽn"aZ92X*ZA2FN#6-LG1;)4mp8y`rCזD;Enٲ>t h(͙n.Zۓſ><]ݐd[jJ4wâWܚ1ik4pNgup&njKOFKpkiN{smաp&^( 1Q*{KgȨ{z5H!R,"oQ*b%3]1h^FQm\$NyÀѝașVI1288 7 `!}TM?~/:AfTQ񶍋`gIH&fe<0bX!.݂t@1&#:1A6L:)Ԝj#ngZwDM·-* SǝW<+GϾKTaQc;!Ga -\2f7?:]lӬ,38OrP1\ӱY[AD!eiosX9Ɍ"I^kzNqSeozQLoR;ϏC溆^bVqo .b.~8Y)g:npJ& "0q<?\(z/E?YǑh%N*+I+zr<SϷJR`s0$>io $V =`*梳,7HeJ1j&?e 9=4rL9Q7f%ٯbx[W+ބ:OEpQ!\"Aq2\Rӌʮ$@52{o >mU]~ilU|%Ih1lh0 7JۑVIǏvmhj)l0<}]AUywnjfn)i\_0ĭo" ] {lHM|:|AM;&)_'KOD+L2#,7GK=tP&1)Yr\^\# 0I20-A4 sA=' 0Kۊ3c-usTW.F5!{PݙisyŮG1 MyLOGxo a.(+}O$BP[o%1J'w5La6Q2WMq>Q[X)!B73o-zbQ$*Xֻ {?Il^Vm>B.M#L Η~+䚉/6s>M"oY#-2}%Eu1i'P`E8hLӕ"q4ZsJiPZiS/aW= !X coB^ OȌjYaFc.|pDpE*ٶ160,ɪ!@x40}~LñB#@Rz:u% v2ze6ng=3foseߺ] S0Q4w fm^Bx ˷w&`mk=:%NB:'1#jrlp_i.Dc&}~ \wx r[d;C\&iX:ki U5>m A=7<6N/x q\KoX\<*SCZPCm [z%o%Z G8'/J(_vߋ6_ey! Kr\.ײٱ7yvӏs9LE :/E@˃0^VR4<_oHpY#{gV[.ղ>b=P47yJ0,SaP+bWkD#BDƵ}m…Y>ArL12pBe,5Sb@$BGRDJz!Ѵ3ʟxUM}\S:ȗIH8_ HҖ"yȫo93ad]"ެa/: 2q}`hQ 8^[)rѧ@)x{?MF-q:dmk̠(p)qdT$'0d L2w|hMi(zL@Gގ,%ƪՀY;1Js&Xs$/jg g.g%0cNo/5}ܻ%BxШg=rd4.'Z\)4펵ܢ {hםlDF-˴jTi1Jk1dmrhSgJ{]B+h-iGN]-5J[RdiQ< /*Zu\p!{cX.7`#n|]zYhՁ4$EvFpی_8~)bMme*`Hm?3Kd漳|$)7u2m0J;Ou8)v܆yo1Qb4|+K154?-blE)j1;lIOb"Ȇg?~ÙFUkz⏕{Jmbv#ϯaT80͐ RjU}I`U15!%j:~\=cuy= ;[_\a(G*?N<7K>Y1wYA:^) v3*@q_0+PU$[W<4vEýÃJ(`  JD@ʛb3ӼyytFsRg%<(0?e>E>[}\,,"'NK!zT-G@;-Ћ Rq( hL`R܍,Cƽg+4vZ^Pv遼Je7S`rL-Kҿnj!Mq['O@`L#My|x>sfP{;`xH"g 9wUe TH؜hRs%O:ל Zߜt{6/5˓ @, ^?ZIYv?!QN24u|^zQ:D /a||b8RYAv(.3͓x1Ӛ]I0`Xl3;6h{:ЊukC&P#lT}Eq㵫,ɣ~XOp-_k'%l 6gf̬@_ʛ1d6rWCɐ`))kƒЎ`}BA";.D8āv;Z\KQ@81ͭfIAǫƵnC_=iyY멎6jy[~)Zsg|ܹS_rnsڣtYWOְ_gT`ގ~7TCkQ ox0BP&}p,ۯrevҿ+RڒXQ^w3{$V4<\QGB{2Vo45I9jqA9]{$Tz̮/K ڎӺ)svhr,ot!Ag80"$==ԁέ>jd81;]%\^=X#ui%$y=)¡썻2 Zf7Ӄݑx]̑,ۤxAjM"U0iA;VՋSuŹ[rew38Pݰ {$uAOt}ĠEZ .W'(&,"ͯeb`J0Rhkc,}8j24>_DuAsW^JZ΃90simdU9$s`wk`BSý%&4JUoINkAxksՖZ3`A_`XMpFo$&"N&B.Kc=ߏ}Ǡoo 7q ?!%0Pd.kIkQ`nMRM+/<ܹX89895dfі @[ aq˯e 5jpn߹SKAW̢2Hѕq`={^*)7F"|)Hi "\|:Oa:xvhVpGl>>olHN@(]Ro;O'+KA}.unZ=M]M1@K5}"ED™3`wV>G,PL@/~(krpif; rrh o!xJW3;""n{mNVu ǁ5T_E< ƠHsvB$~5i|;],(>͜U"V^~ t\X+҉GC܎'JMjc/3$E\f:,BMλ] ObQ?Ow]IaH^G}ZuYuZB1G#ZU a/6e~ Ӝ>t]51bWWt+I %YhK`v02\ +qs aDn0Yl7VL0)&~ű'ߖt/V>O/7njF.?I+$``߳ pӅ3@ Ynx8eϴ B]Z{?n [56|V'A${u)@tŪ FA倵:>9O郡Bq4faaip`jq V'>| 1j ;rq_Bh~k׾ĵĵR;Qܻh C񫔲((qyNZ"ceCn"{x5i~1iߌ6c ݫ\As "`n#VVmI6yV0(jv ++TtDaC<\] .?!h^^Z]^ ) Ɣ4y ÙX(f7pJZaS6AըCsoN՞LV.! +U@\cW@PBn8\UceFQL*Ɲdb)MH8kxq!-,ܪ{zH/\&|oc@ L/f>S@KM& {pM߳it~| WY* 4x0%Tpn.UHuy(f2sbϯlPROr۔k+A~QaSQ-.C&b{*X+-cUSHe?7@{M1zf_oh!OzMMHIvv= 2=rBN+Tv,z'c^S/ iCX=\-($}Of'Qrv7rij!:^DBF{N.(ajv<??zK]-0#'8sF.=Y4iyFtvM]9y'Xgbwjˁ갂+utH?)Vj_l.ɸw@B+(Z5'ogWMgCtڰ  n8*Y􅭊ݩLC/2, RG!gtBviI!?Y |w'(xy涏mopv 8h=_ଚnOkn G~~>^@=]6LpVc*Jy4?y77n`j&to֭[V` ڴo**RTJ-+rUĸ}VhY y*p ZxᒏOC{ F\~/ 4$4*l[+]7X,jXͽ^Tl kIdfeScھ4Wٔ[D-' xK1ePM+q&e sgx72z6G c\˾,yS64^R4 mdV gf9Sg @֘,8&K:L-1jgl҄/Cq/Vv-ZE 7+8À̔TG9=ڳ_s&1oᓐ(P~Җ [,OҰueŻސPpE` "B|T7rҩ d U~Q=rMD¡9gd {$PRՉ ȅiP1-Z8 k/ō^+ ] މ~Ji\R#&gp&$tLlg]&pNRYϥ) U,H)0,Z58pؠVO`I^9.Yt-EGH,"0}Fw<2"`ri`M$/iz?υJ\DCqb&F*T+Ѡ3[j WPňVmZέwUh{jt~Dx] Y :|5&s: Y B)Lut&,U(iDjD)2 ,)[A+1zOinsҏ'M1^kclIsiaL(tٔO"q(EPEWuD 8V$EMFnE:v66j K#p1DxXSе8O(%޽!zĺߧMrrvBݦZ갭!L,Rx*t*!q97uf,[Autͤca=%  pgN"k&ڢ`>vU?\n禮?M7Hz %.fw_âV,,R'Ӳ,f.a1u+ce6;u㑖ȰsΪ|? LnH *GM@240Rd/:I=}xG]F2;?@}%6hbDOꖕѿ@g${MSpEJ.dK^ hˆ)r~crƆٛzxCDmC}|@Md\]J(CejR%}߲ ]Nf g|tm!RsoBy9^2& s?ҿy:;1 A.1ELq2c{mjjY~sf í52K01􁕁Y Yї䧫61EjEe/޴Ie- vNN44O2؄$Qm]h.%@nJ(P(^ 8ťE y/c$;kkɜkĹgrJKS;DmzYgdG L*r"#&c%Cԋdb>Zjq%{VL̃a^ï` 6U c7/՗}C{'[&Ϊ1>)Y~.N_uRx01ғ%pϑ\#^\(>wHrItX$?D&SEQHj{G ;g{Q+_tP!UZQO5P3۠nmт'RiTdؚ}[_ن?'ك04 ? *<ꐬG+Yl uw<­R& +4: j`Bjl1rxX&!Ng4 \dW'i- 5bU}'7s~!"cej:ccg 2 4&[I[*Д$["W3ݣ.huLezo"F@&3RhRзb`/Zw[ IRliX"h`t]~yE | / LAT`7 ~Coxp,\Rhma' :} >YTa-&ru^ [Rj"Ir, owGrQ$Ba8LV@RwNSDC5f3ׁWû>M{Q7]!6lݝAтXxZxsΏ<: IZUMXxĈ 1Ԙ)ȚNWK!u'rY "?ܲ;,cy'7@#0yC-{?SǝE3FūcDomn&ܚv&I MT!6¾?={WCv9:PVT kOeZfBeꮡoߞp%/q4CaMcIQCh2]HZRftv.$HӠCqU-K>xpK(D ]I煶.:v}u:[ҷR•q]6t `ڬ ԯ=`T/&=S͇u={UlPG,b=8hpzrrq"n Y2_\ȂȯH1 zĎf)相̡LaH'H{ il0wͽ.iZD0ȄcI :Erщ F"l%_òin>SS:A}(DM];F8G̟GU/"E9R.t-}V A+-:j*l ?hpv*f(Ю†Qz4 &ThJ<*"&҇w;M Sft: *$|tRko47oc)h J$dZKv%@\,HUhU8/, lUDA|5B 1f6Q;D|KaޯȿHS:ttozg2\*[b\*`f,[8<< pk-"/)a6͞$?0x}//u2oW^.e]Z& 78 Zhh-G6_=&  {k+[C)Ʊ ;Cш_}>̡>0Q,vke&\ăVo+HtծKV+kkG*M{ә,8{~Ҩ];v @Ϩ[Ù"KQPaID2yPs%%FwEAD^^{qUp !'$&do3ߌ$!qNax,H)؋7Lkm&E'"O$ðM#ߤp_YwG\n+iZi,J 饊'4>;qm)o뫳О_rLTxJBMFLZݎɄG?Rë50_vJW55p./]UR5ku60)cQ7cD9yPaiDDĄpUH Zo oة.wyBd+Lw "nO#4l.{N艂w!S/{b3))UyT0yWH^;W?|nqlFD#FGE|keu Ec X$ƷuYs 7P2)$E9J*ޗ洝.?S7ĩZl1(7',wer,ݤÄv@ly]]J0bHRgTodl̀) mO9>_) E:Ň&gJti'W͇INA}A]L$ Y%?_-oC 6Tu=G GVUqة㑆Qq˧B$}tK.~OfXG&їE۫kŗ${ҡ`l?K2%Q7!dxXݤE3l}-%jxlvbK[rN93ϯԐr} r6U4Ӕ~ʣLKQڎh*e ꤤ.p ZUEӸi~j%HD#`Av*SƗO<K_IMFn> ㈽h!LW1ߛ@5\mlՕm0W9JtV%-SjB5tg %ucE >"S,/@ohQ>10Z|<ZL+4 Uss5JoAa1†"2>{d"JLk3wr#E/^mu&W gq,6 &,H>>:KZ`|\M7 umU<0L9e5,p(RɅC(6S~RIB2!mWbRV.xݞm~SHDtJ%N[0E@@'$)oTO8 \0u=416(Gr U c4}pH+yD/jZ o41QZA:z[܉;aK>]S.\gma5;c ݨyr`smzoL^Ctr!yڇsr SuBqz%olVuEG[ a*v£{xS1%  hЊōu9ooO~০FomeEɊZPOw|ÑulնVۮSo yC`̌j {3@Rn]"oJ x|ҩ&=͋ە삐f`qZREIFѢ7P]z8I^K]Nz%wJ%/S9}e%8HD+31븺D%b)6zRIs MC`DU0׏Z9 <>3W0%XƘ7Zz&zNn\I_WN!oFc/Qc 3}yI51w\Y>;8JDyLx@=$Q sN΁^V7lx.ϧ^,Qӵ_okN\DfgoۓO|[USX;oW~ cH3O15dB!$0z i0${!U!fƄܶ2Xw[C2moOOPm X[*\2_.i>F!vuyP>٩Ip6,VPCU+,3sUΝ` e|$~ݓ =}LjyQa 뀾r"%Z kkF\ޟ+/2j4~;}g7W\K?<`si^aLeL 6)^gl 7ik# z 1/J7|0+g/U^tyl@ Dn3UDA&*ʧw:E-Q(^N\|SjCЙ zF tW$ ocQVWRԱ+ʓBOB1#T4)OM2ek0MegǫVWyB?8漦.=p {ou="Р07 }K;22>UcǒH@X!!EEcqdŤc4^[J~7}te GSy5 DΜzu\mq]_AA!{' G$&s/ P;ϜEP@Y[Uvm+n7pJ%D)bE|ҥAO: n觇%Pwy#Qz20=}H9!lR{|4 ,Fgݎg_`Z:&(Xp~AދXWPLK)8QL 'cJ8T9&_^O@`4v6e :U ؀?j8˷*[W}tVCZPK*jn6 :,͍oPHj-{YӦѺ.lƱ6<|[L%|i~ԑ:Jk~$\\>Heo$6PPwwskڒSo#ݺmN!X|sD~)g5%/@5IpvA-7g7#ԾutRG. _n;PLh8:nZ{_QHC&;?P]X?\[]/9P`]nu[ّqpA H/#_߭@~G LE-;AP`yn0^^tmyo/82u = Tx.hͷtMJO^o-@D[[W3M7Rj?%}89x\H͐K-fE嵁dB24B?}MD0l}' Z $+T B3Q 0Gh&B:ȳ8L*8ZqH_ф 83sh {-gjt~CliPqLD)adk6ੜz dp [-S*];u)@QB WޚJb/U6USa'pzaa:Gy4 jYTcSj ʗSb>sE{VfM^`XV}_7ԟGkx܊`a?ԩ {#Y'}ϐb?K5FMrGM#t:[tcjhKchP) Kqd:$b'"4mXt֜.C$J70cɩa(xvB~O|/I^ g>k зՁI0#?)0V4V17vs7Xf7sx.v~PKbܭ00-Ix;\ަƅ2DPl,dhvSeMrd!rli5n[C\鞏pb Vwv=ﳞ{E݈dnEr򘐘T?+WuJNA!C`kIAHN @Ԭ˔fFH}5~>Wd:,O lk~ri>fnx<]0 Mgk87]fp5d!зGg($6}: gue"/21c /#6=yY3o͡lh)MWh,˃K~>rڶ=w_w^1QMb9:Gdz42725Q䰸ɋ`,h'^my YNN {vm Sa;<0"+Gkae}_ HkEJ*@',Q0dT7Պ k/ ^{JMsW *Awi%|C 5T ;CʹBkƩ:qӊG_Yya%jiT{_h(@Tя K03&a+i,N˻SN{#݋IAKּͦoVPFYoj:S t77<9v/ς7.?#RsewO_A<[/][QgDP dRHoYZe9hi'j׷aZ>0%尚ږg5Xd04b1 +s7Pj.VTAy@Vq͹zuQOo^UBƪ`玅YZh IUKlOgfu3"vzW:+}{ BjkƬݹssY4rewUHFJwqEgqn^<}{bwѝi4>w=J^5LӼmts/?\`'PT < rwkGԫhȟоӊ'c\JKCT]5e&P_1s˵KD,((u'l^ Y# `q7]0 0kk davy=xU50Tg6R p6^*;{MĚШ[QiQanO 4Bf1~9 *\][ 觤W].S:Y碮1dKi8dĄr{X|gtQO夶&/vidgQR_#yj|Nj}y_%9O-ߟLlܤ!/Y ](>tQv֮5!'`3 ɡ @?w :*f2gs#d<e˷6aIi7\$I3wعl.2'Ҕ NOkxI1 \'iHoCebG&9 80~ivJg ˙H*CC;p$N4H z9؉ZILg&B_:;8B"='Q-l8vD?57dToK&7gWU:h+?S2>leD1- š *(a^EIDJXǀl pɰ!W\x F~ 80L]&%2O0{@9{ƿf2T[e((loԚ1xܡWnK5[ĵٍ:~ Ym-etZ\]?vG6tcW0O 5tVqnaߴ\{oV_ |+R n?̚ B|#8 _J*cG58'/[ot1V im9Bܦm._f!zCi!yNǰvbѰp]E/ \5=kenף:)jjCCVYID+q8p29q7$ .a~7bLS3F?sN&ExYpQ7 yIcRggFO|vٝ:+:0UNm}+V0C"'<GYWr'8fg1}7 $qX66[_p.a-h Sժ)zR-{-&#;ȞʊOc̛/E"&Fw Δ&_B q#lWRrciHfãłAS,ekpf-㱴-tTU1oe8Ew>G{ Q4mxmD {Y$N_9݅~ɼ1y ЪK)ZAXmZ{vol}$i7 HUPk{,jBx0lv#&$].!dWq+( `>ۓӉW{<3IMTfU,іl{쩆hX'D'G;fW .!N? g8bTp2o9kN0R9E R8. "vAMNGrҶ(To'8D$I 좏|1.;0YH:F{ .S;48"䨠c}9#AmJqq{ҳ|C zaZjDjhuf`- сi 3&0Mkc;\Q,HM^Xæ?i>-Ú$Joz3f:4+ٙu.GNmzh0]Mji,-a t/} "Cn‡u x&tq$řZ+p5z|BPGiζn."υcGTH%ImH:竕 y]KNp7d WWr%F`hdO ޽ڠq{3?bߪof}3[$XAYIXE(o5"N*v&B;9;Mtf1]5u(F]XސyMS[BmN#-WHTbδOzuQETrcQb*`b D t'1݃}t`P"^9*5h{:0&k+o&XX7pv]Pp뚲OGW2nP3qdXdC[bN ([q"Z0defc͢_08950_D5Lqz^-'sݿ=+/pw>V+7yah>O}.JJWt +j ^g1ff~GfXB\6;؛YJ, )g` *g?ո%$})#&o> j3"$ M\V")Y*L\wnfS_DFq98 xoT;Mf u"SaVw7 9Q?-MVOۗ: ItyşOvml)b'ϾlzGۿvFe *TAOʌQ.@9bX};mo_jyʽ~ć|xOv&"V`ڇ#[2-M͍x5~Gm#rb>c"΅ϵ=zhS" vMg i8D_]sppqd<=w} Yf&~tJ"p?MMYҗ>U8l%~[c4ȸhCoc8sʉi&ب:}ysƇssv3Uث7Upc*0XR>[/ uWPT X>ώ#AdRUcIdMXeiic"uMiNWnkăl9rN1&m?F7ӻoxRwOY*dͽN_HmsMNv*Պ7Gp;C6u$JGJNNFmAX6Q Aϖ*.uu>>Tx a)mߴ|W4glgw:J& |,YO:5Pq&6 ]l-byc)>0"7Y5"zR%~ʎF,%񿊷c]:v7_{Ğ\ַuh\ooiRu:J Csi;U В yzZszLDK2.@ş_wdߜڋ Ya㈹#g^#INCtFI:A 4Ȕxo pػZ`>!zĬX^$Z:_e[sd5$[g|[F?ʜֵ~n;y!t@T50TKZrJоF>OZ*] !+sMJguc 2 ؟\6ѥ4olH"mI£0yK:cosnFuzi;chPAJ~]uH\rO/^·}?x(=߮2xQ8U+)!K5<#u(`6赔&HI8?̺eXX0Y /o`hչ0?Й.0j178Ēh[tDt'P B <d.ͿEk؀XA1 ,wS釭/d$0YJ!*ņMO]o;&F$^zjQf^?7\&,d0;lmG6Mm^)# j-u7E@[$et8܅z?c꼑L.af5 sn*I\b>W%@?Nj.XY-ePۘM٠II,&IxwgELo+Æ~ٱ4v@/# {~!mIK/_ƭI:` /@kRD̡g1%# >xЂ4h߂91n<;97Tq]]g*.CW^n EFwٮ]S><7΅C;-1F1ǵ,(Wkf {v;%UU<7J̯i_Z _Oh <#1绢:$!ٚޓZ,-- a7,aC$nb+\K6')D$\" ox+*nZQ)"TJJ[lϪ!Bu8Rq,͉ Iz0[ C-e&&'آ !!cr;}8 -#S1}}zãܽ+O+{ٯg=@}ȧUӢRqm2r8K.eR-*v,:8 ʤbgQ BlÅI6d~)@3@[4.)뫣xiiEjHQBT!ARnBJkZo:sY8;ξwY#_EpزjyKI|m,/6WD~᥼Nh82༶R׹`ZZmT hΞJ6Wfu߈rh4k5'^ZӨ BIE:%mLpc<đN8i%+ړ$fP&W?,ڵ"+5E,󅱩nJ }ЈOG7Lpu̿4)^yl4A'և˰!S3`)cvIof.zέ67㋯7QY u 9kr::1Ƃ ̚!axC2! 6Fí:l$(oPufb|_aY3=;{S ;,,X^Zsi;÷nŰB +gC%%2ٚ:^U y:3D'PN&=뭔Ip>RKm'JbLNbJlNs}$S399*DR P%#q''hQ)T;%+rЍsIicM{5yj'LQ7.ͤm_@ {l]`E{] B 'J|og}%eOZbfH%z OASxl<2 j!''vR#s׃eWb3NNxTh&=z^r!llSJ9 =Uq3xjÕxgb8?ao,%- ~qRA 1F3?>FP=@{>Wb+.9!C!ENj8~3eRl^@xı(fNMig Mᆄ>7 0"P?̴=]B:eܘ^Y,2^8AϞ0fo|9 ds(n=g"˗ a_ \p0`󯳾QWa~2:sޔKqj'6TC0 Z}w*ǭF'S֫l:pYK}gƪL{&%T ШWړ{Ξ} LMg-QAq(+uHV3zC"z邍6h>6b'* O$g3\ҦrdEݟ[0"U9!@WTT'} I0Ԣ3Hy䶘X=*|0u15tW7fR@,V6ݻMN"yqrc͆hȤ~ wm1} Rz(m_ŘuPxNf7SM=~OVYofFĥ vMMBu]v PT!vއnVg7N&)@ &wjl.b-Nڦ27DhmC^ywn8yBJ*B,{짚((7{kQ<۸`kiytD (0-b֜bM9i{d㲞6n|ʡQQeF>ް%|KSniT/8,B/ ЈE qbht mqAgB{hf*G%B>л]!4]!-ЎKq$BI W ~/F-m!=O3Ud0Q]>q4ihY ̔ Vd}1K .3Q;M)v8>J,=GRDFxoQuqw0?ff}3O؆\FEǙsR:9ed/2]b)r͛XSCMi,#NaإtUQ><*0ڽX_t4 Zùu.\ۅF(7@oá^Ln G.Vkl[]Ù-Z]'chL7jKXjWB?[ĎI:G`7il3?wmCk%xKpьYy}uy!eιF듲$܈fS}jt^z3oqi~{ŵ??[= P\d_ 28mnJ*ȇbräpoerDi:DC1]*k\?l,LLO,͌MҮt=-TJĝp<cWT$)\6f΅{)iElo*%>~{G_KW:p, G/'cna+'lF")>xlNgPHG+ RG͈\ξ~ 8WP:WH)캞Eo~E&6ъ8HP]۵ijoA05EEKȁ]5):6YX"wam=PkT>SUUk1\dGINBp/u.K!^&T>k?cǸrEPT9Dw2ٯab}Gtc/InH32{DJJw6 wJ %}0lb`-7(o'j^345?nʁmYC+Ut ~rzΩ-+NcZ-QoJ+vS㻎;Ps(Pp@J[hwixnֳugB ޷:-85;z>1SGp [V |eMH*PqHFt>g9e%ٺNQ8m'8/V>X#njP6dw ~Qă u (Pœ):xL5e@3:pgu*@ =!4tĸO|:hӆ#Hs̅ s ǃEM*ƿFlKm͇]!& >Tmc SƝBUYCy2Wi3$,a[WhJy֯O|V7 aL%Z?S>^]T3/QH%;ean|LN<"UJYv6)%\QqU؝TY1H\救 W mS(l;.4?zہY@zh2{@7dtgGLSSx&Wy{v -l,V\\\kfTn #O>+͓zbpIAKoK&\}yfM̟4KD)A UU wHqzH#.l}Wʃ6\|;RiC bVUlJװ!#]9VbpM9GF^xp<gcdwe?f_uw'o y%)ۛoI%^!,/ea ƑӂXTJZyHVQ";F6<|0P~+rFhQIJ^(=K{4"!=i^)ܯ7}vc. ߴzGgeи=}78@UO]nU;?Gc %Afj8虚gߑ3] dMrv!zd17 w)^Q04SӖY#k,IaaHލ"w7JJ6:::>>XZta=޵SfV.IePQ'Ք@ޞ}(pt[ Vx?&&9fTy"f.ʾ}bbk /[XNʅ3c_ !իGN\db5vqw=&%!<;@ɉ+QkRҾi7![qRg`KvUM*P}fXfM2ޅ=luU1 ~5Мή1-bE44}N~oQ譥Uxl+Y1<~'p:" nÚk۷sBaغ]^Xxzp^ɲ̽*lE7 K"W*$"i Ot_4LO'b/hoaɹ0ӦN7gZ:Qs47}ڗ}; uZN6&j3lHCק]dLfi^~;rJy,o^?U;v P{S5оsY^FoLM*a>A˵}kULخS4"Ee{r<DMM.iRZ=1]ᡔ,+Ȱ56j o"6֗Rz"^2Չi1{zi PLoBnjHH᜛Gd*T  8+j%ݻ;P1VqĬFMBSǻeIɓ6󈸼S}'=+ DLZ J/>TWER pLDZx@5a Ns"KUYC8H`syCCW%Jh؀Qfcm5=x<0}4x5q:"=-0zOxS3?-w,U ͐^]3m1B^HO6$q $jv"꓂~ qOœ[׵m}dx@S6C^S#2K= À0;mss]1 za!V2J?j?(%poe#ŵލ98#t~bTUE4:VZQGKJ~W\˻,# ͏RNvͲ7\klGƄQ?nߪY ˒! Jx\mdd`p~UFr'FEHo$##xc_SC}_<n:R'^zVe3’qcc߁"~O A~6>U>QZz&J @T9b'f&,YNX|he&2ja;{?%N7\B“2P_~WM3'x6 A|ԥ=&Yf&M-J]V%ei1]}[pdTпLJYѶ8J^m>-‡"ZQQ^]+ClÄw5R|5dY#&H-axEIJ=퇵2m'Fѯzj#%_2M {24N$ONJYX\ķ xuXT]6J 2t))=4tsTJ:))fo|~o\7ϙ9{k}? U$Õ#%ECCЗEA}k`h0-~7jh蛩Ǫp/SN ?|Ǧh6WLZ UC:ZZ.QJA%m%o OuJΞ$c'F|=Z5S{!: 3ZM/ߧj"Yqx3[qG?\Uݠ>=bx~9 16ʈ{+jbd<ݝW uk|?(,8w*",NjZH``z`3Ul{T9yW}A9"N ~?^xMNO*,. r<۔ҞW:Aоq)Ԗ4<2kc4_G9*\=sW:Q34^lW M xypDѩiW’Q :.+;@cė !M ->R polyhh'F({WOo;,' 0%+jO}4-cw@A_J;O}## 57)I{ZFɓeT_jш<" HmP)j+vE/$r24>XVa=D"<-uw;Ztvа jΧcwy~|?atjY2PW_?*RC_W8u OgQLKSp[~bHEnqGf?!PyQskzLWڣk .+^f {f*X .U##vP$6 wgktTIn{ktpVc2֧] 8A\TjVQB76Ϩ8ᵪngcYp}̲tɏ]PMY _uQo\5IA$J1p&O?>r{2Ij/ύpʈUAjIg ApdMNk@7,ՠ8[JQ9s&\ ylz,+8 jlXz69 }VNjVe <;HjWj YHE^+ ]lN0q(S.iXtɄN[h5@cW.?8$8j%0!#[ 5HW*S"2eQ{gNٖ1Hb 'Qj2RSw .a>S+ao=^H\v&y? "[r54-Ïϡ p9dk-WIK^*m 4U*J:Le&_VzhzlOym$+'NU PN)33θۙ8).w80T+*Hpl,WD5I% "eed=M"^ܥ~0i!d+f8O6LmRrIlh g<};#"^Ɍݩp$ifd#)7Bga:| S3lِ <*Xԗ~F]`J֭O[հ=s(< ]Pd:)Mٟɶ ȳTe`=>c;Z&K):5JBT,!L@~lbڑnͶ^w~AAk.@H8="!vMa)3꾝%)T> %e0ձk$6ތes le(OJ@dC8@`d̔)Va,AN&\j ?b` T=EtE5A_C)z0U1tв=~,f$DŽ]nc۾3.bi7;kLLN\BϗPD68'Ƞ7' Ӯ/!4'N0ksM#sw> }= {az @~3@Sʂ>l?EC "h0=SHђVM*- O˪,6jĠLRaġ=)#^!Hy'R UScY. C3[aŒX){@R?J$8Шt,%A14HUt[R5UGV\". zDY=v \y=@9e [DB0St[._ʐhkD@#p 76pX.:l4_|QCG\It=f34 zͦ=qӃLD.ܕ~H %+v'8 aI[s!n9|IicމS2uMSz. {LQ([\[[ džQimE*iyo6!UPƟ~=AuP%rF6)IVYul۪ovzj٬1 a}aу0U;sxf1$RO(pSlrYq{CbkS:"rqluWTD#1fr6x9FwZR c'[>xƎ#dCݶ-V/ ߪ _ ^5U d[ +JӦ" aO!9n)w*1],JfT2rz%ymag(?hP;oƏ욟mm %wޖ^`Ϧ MO*_ &l/`t͞%.=L:0(VelkRz%V߰{Vz!q%-HL$/Tfj(<7=fF%78&7uL.&n T|&.JZ[]( AK>%Jg;"dwpMVID+m7'[{C\DR౼:يPb]S5¥6;% l]9DXeVڇ8G4>k6 |~~YqEj@-[j!qq7PǛ[Ŋ!e ^9!ADD6VdVe6xp:+8h 3hMrlMCmO/G :+}|=M',ԚX"# O\WzJ늼l>wV/%&dԨ7<?[K>%5M5*w#)mJ_c9_41`%v՜\D3^%shI>9?u8hq0Ѡ;;Y)XaU{ \ĕ>( ֤{Gq 4JO.wx<>$ٶy 1'h/̹J ZeI[GKn4y$˘#,t}d\Wzzkg|;j13K*A [:FKب:\UuizT+N_h_2]uvu<q> O^JO@pmط{zfjm4tڎL~nuBakP)%RӀTt|ْaI9AO[`gycä<W@N"{#Wi=2]|}0@ 5|(hvJd<=w`һ]Qh~l;L!y1w$ cӴ4b7n[{ ̗6-$ԄkMչpz^;h 5Z?c_b:f'D0@[^"]mUG1jai & 6-g{9$R] ~WҼB)zVl/2G\qa NAPkԒ*vP:óaY%^A9p}΂#9C{8S ~Ʈ ͨlN}=Wg!H2!Yd=իv)@adN߆foL>zKB >ЅBH ̔.Z:4>6/h:x DM%)4-!XEYe YEZ&0(8g ;~& !?eng~齴_mn>uvޜIO&.̮q=aU;/1<;;Ǯ%)Lһ .ClIk=Tec (ho5а0"SwMpKbq$`)Z)/_? JF܃H5y J>9둂2/`d+f5O Ñ!;ńC݉3NE^aasBî-ߞMhg( :*+1a.d^yARyLN(An WxFiDo7\/7m@\%7Et?>(2<5`Ij:F?h6BJP%pJ맊|q__AOӝn-5T3=P{Ѳ%ɝ|,)WԔ6%MD18>e_ _ HX|^\8D)Cy[XD ,b 1 D\l[XzsH#7278-q*Kjmq_䨴}+Vk5.%4C3(*\PQf$ 0>qw$\\2{>8Hج0my_鲏2DhzgF2D}v.w䭨 #l Z3oZG5~u( Mf՚S#{܆a[7DI)d⧒&%-Sm5dVK,q ~(}02d3y BzҭʝV Fd[ruGyͽNKykqajjx˯ߞ?^{K}(w'ɴf|/-nmm}?|'V:x^${Q,\$T;5>0x@Y17OQ- ڧA 1Ϩ;&^迨f)[*k|!mcW3>?sB4?LE`/G">  3F,:rmlc++мNcOL%͞&l03c!b1Dd[|rrJN]6˧НK`:grB%+L[' iH? ݝC 1 nL8Kނoo.QXy$5( GLJ{|;Ti~)؞*kj&ZЛh^-0{7E;WO)vylV[z$([&9%|E)%NjdL X:¯q;--;/3ml?2~}axjɫaئɎ66d{_8Oh}{p5/ -#{Q&?BD3CXJ}/ckhYS#S4#7S)w)ʘlѦSo _*VuXIyZl{NK'͖1clL4XWD,2gWh ^x6RCÏPcf啴fWD!eKɋ(s`Y,yX 6䇻LWw6grʛO 3im7j2Rgd2ڿrz]P l7mH霴X%9RHo\7'71DH}]~QHXN ݓuSc m۩R23X( h [?j,"Kh~~@A@GBxJ]EUWkԈbhC";􇫗RrDHULQFG A(=$%7AN 7 Xw,@$ z2?vH.8r82^6qE'b"-yT~%A}uh4 cY8·"K&#N{Nqg[anwAٖ^Oe컄kWDAbB Sʊdc0-]2"y.JP9n tދk*O1cf`%p''gm>S$ECtV Z]4mMHWH^det/n:(Uڻ^3}O㢲0_!$n(7DF?>Ab~ ~؀;+2crm[,FPYU)4,,ARV~EݣTɋrEԍ[/E*;{IO#D>ʨ3@d>R/T ˌ|.6nF ^n ̢aV _GE="#^ur!?>>|LΧ k.:׳~-)׉!=9CH͈ K}D T6R 1ˉM@ ER{Dyhk}s2y妏Ɨa`f=b͡ijCR$i_!۲"fڳZvMViʚBqg!0_Y&=~ܠsx:IBJ_FQ:x4F%nx$~Xj.`N\u2w3_P kSi~7NB@!$p7O!E"{Qn2ݱVB!ޢhOI4@y+I;0E2o@ghL.rv?ېebĔ9_pC_e|d`f[dzkv9++Ǔ[1g$ЈTL{D{#trpZU(mb8wKFFڻ)JQ"?M( lL^sipЩU462z S05)`7*#Yk[ f|2+1ʨ2kt&sI I~!)8.?^"wUő%;Kli*)y7lILB!~ Iz\]O^{z [8 |+/s"Uvd']id746zITk Ӧz1nFLe$\MZ1 P:0 5FA8VHFhD6FdB|elrfbj6ųYЉYEM9J$@R+˃zgV}sJOjJ* 0 v@S>%x.[FoH4ݓ~:6hbUrJnLK.KF?K6a_w:a~^_D!ɪ.!%[QZo_qJE63T+~]F){O:6$e RT~-k7?FH K|/5H|ƛ/)/d~(%ZS AB`5 \QޟL<8k"KTZy;o?ڑb"b,ү9+1AڙFnuzt_ %}gF/{WA[W٧/CEo,4} R 45Caڑ%*Cq2drz9xSL, t?'TSC)i?=n ])iH+ 0Ê*,eOB93ܡPHEEޙi\]LVrFqՓ.`|ogZp1NL_؁yY:]n9В s1ѭם?#.;ct&Ra fyyg nhٟ=ϲP?כ*GOW;^oBI#+DSn9|BC[ߜ8D/+y(/з?s?/9zS~gz|{=Sb֓~3yW~sTf>Cjj(o&cz%(w9̗gAUk?<:= &uIU՗ku{~WixAV׷.֗ul-2=5¼MsQ̗̚bMՄMrׇWQO7gOT!nm@\K.§h1W"{p#}^yYc1`987P\"lTsj0V{jEգ`3P@aɬB)ƛ$R]Zٚ'}Yˡ>,TF?\y 'J'xoVh&K?6'k, ˜Dpc .˝x%z\Ցk!#[ZDˮ9<̾e$Cp%޻/M.ޯAI+ju>E$R{QmJLE}>5W~̝l>-u X^H Z7]CO#/7Tgtjv ,^z::VjRUłQ{\XmeߜnhοQ41/#(?motUqQ:gZ6mz!M:'+P[͹ui'`n{JL~>ntH=]Xv;( 5u'y򋘵+3)EM.F]۟{. jT,Aӥ?Mk p~F\d[jF2֝4N` Ty<2Ǝ.&Bc]ßw;,-8W9V5d>2!B^6*NiktXB,0UY\$=~}lf⩐6M"XWyx`ԓzy[Ć>9Qq },-)My1jz|ݽgvi?T)YҀipwi]f})? :t5gaMJbm㪱X8{N)PrK4W;v{^wǩWJ"Ww <{FhzJHC9~}gaÆ=^/7zrU+<;xBF8MC g].(WX6rvߟ{kg24T  ؜.G=[#*a-Hi.8[jt94IdhԪ~Uqd^P*-Ϭ1uD9|Jk'𣌧WF~3,l*+3$齺88:9zUB^Ro-c2b*>z dc,mv: h~MK!{_<ܷ{=.̓ cmAWqd ;Kǥqۣ)`dVh k {lw "wGJa7sЀ85P^=;y*Ykx̮-m7g5ϯNBeZ(8l/5 _2!wVO. kOeca _#YT!QS"i8#NRzVc$2 WufWRӪѯr=5a@A:jX F֯SgB!;u"_|l$O0ZZ+O;mouKD7w$}ߩ̯->H}VOt ʗ@i1ptR2Usϔ{<:KztLa#fܲߎ=ۛ1Td]pO'Y2C+p&^gtjw}S* =}sY(/38Q٤!auK$Qx\;*4-@zY}{ULy-`J~rz Cw,(BOj/flDEǗ-3tQ<$e*P"|%#ho\v|I'?6dItw>_`\\.) wu$ipVT8 睖[ϹX{z~d[" kJR#n\tCV{ֺߪl?W{:oF y]=}ЪcejS{ vwאo](QmֈsQJeNB"K]ܤs>`}\(F<,~Os%}탮GuhVyK{S~d_ {}|QHLjL׿Ƃc^oYIJs&\y%i U̽r X+$\{Lq5HhU}IhKϿ''6+x򅧁|ZË陪DnȊ@#@6wI1?K$@uAOvSnT;Yo8/f B.xOh'|CVӠt9Ur|1N.!yhc%i:A0aCLSm!qr qBR]YYV4]Q\|Kk}wD&:uś7$Ac;fat vcK@Ss(=5TUU-S˙#G%Td1PI%_-ΨF(Cި6lcƽj#)_==Ҕw|7l+y)sQ}ӄuq,_R_n嗋l;00`L3h wr8i8w\ aWg7=Ovmr֒6H[S"}{/~jb./Ј)W@< \`ǀpBW9s5siɹA唗yU'f|\޶]:<r /gyTy}7duhiV|.&f7k_.[BxfTEm~eyޥ.W*vsxƑahmy/0,[R.?ܰ 5S6>x')uuO kj'vj//HX!a~ɢU+ӼmiERMrX0)ƛi |ZW$x!X@azv8Pia[iB6csKp3e+iWu'"7n&ݷN5g]'/>D$]9: sCwˆ,}H f .qIxxʙ\ zFPR#ѿLZMI8jF-nL`7>L =\ u?r&t4ՙj9]w-J>]{lzVp>j*[js8|< U䀽ѹ^${i3 -G>4ugUv(r/`<܂ +Qd!D-J - =S>O4wwx3tB\3@+t逼yC`o86НnnAda{׏]*BdJnG^`* OYyR124a~ꞏpXt)]a/:=5HT!:c$ gQ1 ki4mvj()mZͥ!ǐKvQؙ9<}}"C52rU)ӟY\wd8JU?iB^&k"m >[:@kc$2$)_{*tD)Ph H^.Dxjb ~28~ҸoR#cS߯~@(姆i-DHl>& u:}'.HQ=U6ߥ+Z-eͼ9oNq_BkB}&d)(/i!rU"K;xXoLݢX }Sgyag\k v6khZgH':Jb n2>HryW}[^  `4K߻NF YSmͺ_|^z) 8&q+}8`8iuA!ّ8y]I谶mZQ m:ۀ~~wcj(Q NBmtr"v@s۶}.s8ꦦo}h)dƮ(%nr@p2CfF쨕~K>4$7z!?Dfk?DJ^EWZDk!FsJ'$.sW;W 7O28๵Ƕ!&:{].)6$zyV. `*`٣geZ>ٝMI_ƎTS2<_C<}W)5[хb ^x>:?0KftBC>NmTBb+;2.#B:z)$@WXOEqx5 &qG-=xWxx_9ܽڐO@f6NKa$[Xixd^Umg TS ٦(Q@IworMOD%Z?2].J4`ʭ) TP]rhQہ %(*%w-G/ov#b{e{מuL6 MJ1Qo1/0d>7,R;K9뤀({6)덊iGNґ]%n^.\.7N60b,) d0n=hs6B4"]F:`h]K!b S i}.ΏO]x,{t%Musb۶mMl';Ll3m۶yoys*JHx```H2j``:``33w(!E_;HW1Y IF yx =2I7I7 sWSk'7kG0mk3GOq;WW>W/W7s{Ws77kK.H_ k7;s0Q335w;sa%QeeLJj\'|:~ZC"f ARt|C %Ce^N오@xXE:۷׷|RM<ȹrǾPd_ў1un!Ȥp\7,?P5_3CWֹ%¹"Z`gQgN]5>'T%'j)Ðuk-y")4rY+Gk~_L@U&J8=SE>To6{(Y?1[~ߟ-RsHuX05FXsni2^ +\rʒqzX#Њb 5Af! \+p-/S`< I?K[$[$mdZUY0͹Л7 47p+uHNQj*֨TՌBҡ*or/]XYXY]#\`#on咷}}mBK^][]Z[}Ͽ޶Nb-ݞcc wf0,|u)چMAӖ&3;"R!Vzx| @~x,TSXY枉ȏ^'΅@d˻!V00 0?~:ܠ |'"#Y<1u90es9N ''쏐&9M @#!!uy1 v?). &K̚7|Q_U?s ?M?υ끠б\Mo#/#*B\iI \,aاv0g(16onSōn26_МDfJonh?ԗJYl4&DoY',p7DҷؾS-gnDŽ,Nm Yh~j@d-&^osY9oe8›: MhA0ops5& ffx4J׹G7k~|÷]UU[k6gĿKǸMEarGgS-66rn|Z;yT|94xș3.ZZ?T+Ίy&>u&UO>ywH]+H, 0P[))&7^.W*šiG 0[siPƒrȂ%!t~|ƃFx% `A 66G>CzIHT"q^C_dh[U1pQo7$-ZXC3wކp& e:fc/ &1e ] 쀹C&gnUHhn"a55MHX9_&fr0 `S Q`:ډ1 tmb!!3 >nZRyDWف2V@KISI*rG U<5NuH,waAoJnHl>ZAeUVWz񎮙Q{d3'P/|aYɏ0AiN6E{x2ôI>+CCV_Q:7)YmܣHX7ŊpNgMy~_ZBIrAorsAf+4/‹`+/L1Ad)xX2l W;Z ˆ<*mU>A q=chxHA*ndt2dcoEE$~eψ 3s<`ũ# y&P?\Q8`ǹhon׽pb?;ZҶnTWin\~! 8L_7$CA2s :#@BfF&Zw[ggՀbr)jjFFq[}(g KŲ0LjLJvnZ1."Y-wJ3[GQx@M xV:xz7N;^GPYSd0s2/ΡlVŝR8rGCDKAތ/I=u &W%M\H>894||4#|sq#8gזD.곗ThKh|4rȅږMal̸-r#'t0>1撺dx:#ΰ &ѲK{78CE?E]Ւ勭^QϘ$7&lR,{*edÊi7'"^_᧳ q]%RBL7TAo䅂gd2syRds} Ŧn1sjx$sRBx&%1+lzJmy3/; Ưy3n$.E H>A| ɿbSH4ZITավE1C9whLcnva~! ͣ 1ZMfY8vQ2ksNk{{nD;8 } /]kʿ. \ӧXVklnLFx56^%En\y?j(ECQٵ9y> }w%Ұ[p$Er $9{Za>T\`lEL#Vk 0b21HϪ@C3K5]@05fG51֒o$k~ Cv >9X, 3׈PFV;x.m9S]9hXV%H{\{>@P($tۈR,HIt>j ɭ{r,,sHF@z7̚S֔VjwK1@:f6ŋq9:b7PiA&R>V  C(1I JE m24 Pni ZZ_5nca!ܺəbmm)$Fm>jYP sB.J"OX4/'$zbJp, <ˉ 3){lS{"7t*:8En;vB uTMΖ&Jj D&rLbq;إ@E racPk:.o.ا;9 ̍=iweA,KQpYXt: $ pxf;n)]l~LC5|7<;?{b{l yN/ku/lJg)C]{:/g} Lqm]TxabjkTQ[m}v"r_ թyaF \{~{nz_]:[ZV(~k"#գ}biZya @:e;#LO(Z/h_3%^mɓRRxq꟠A%  j-2=>Mku9/TxXߟthҠzW4kv>~p.=IL"b7/Q{ի{ͣRSG"h ڛ;#<-O-\+H][0OǙuV6=4Bh]ŒdhiZjn̶%5zsKq'{[~W4mECIet^ bBvz;.d5)11\9 T] 0v#2^Z#TjmpͿDJ=iɬX~<r_&I` 8{]ޗso#4Lw_m ׂ7L$|'PUto+gM.M>M_"`%YNW,%(q" rQz$ȜĴ)xlL0TtO^s@"˰WdO@ ֓uG.3YES{@nʄ(i1oGX6k5߷ۈlu-yHm/)g#GC&?nٛDPvF6g-W^fva۲J]fv"dAڱ u5o^ >I?Fl'HE+Tt4\D"D^{VJN}OdSU['jZVE* z|t88f 'M #C[o[2 F :n\GYx.p`|z24$^-4.*V=3 w#\Fv%- !;ǬUP ?pO`EAʭ.6v"~~+ "+Q!s-0*cGv'z Dh}%Zuv9#"rс9sRzqLVP]ڏA33jHk 2%9YmNՊVyHT }^֬2Y/Dkzϭ?zw[:4"tA=a$t51HuX/?PE "UPہluî}(>Æ5ZiH"8PEGQi ޠ{!#`g{@ZKt r5]!UM8%\5ް7b?utjtlNHRZ,r1is]AjLA[*C0/ tu*t!r`YQ "|Y{h v OtD eG\P3|43W#w؆B(?mϸ:'ݔ4U v|Wr*T#=M er9#n 61OR8.aGiƻ+$g^v`Hjuq^ܻ*)i3hӾ㲠<ћ$"ِia~[Kd56C+mPS9dcwg߇(6SnHo/Ý{E_)ˑYW¿({siQ@vIVXizDf w籗x? մ\^?Fm([C]=jku|W2`sOF>3d5ƽºAI) #Pr$ZOI)$=M#&_C~!sz;@BJ>΃ ܻ}ѵ W7xա Jpg Ppa똑 qy~EF>-׆h(W۰ӇiwO[Zqc%|DSn.r{O qY{^\5(qT& 9;)' e6n6:s,+!J{'౤;ltE@ijj{GYDy%ݰݥF '+,$X.%º`ri_P2la<+a Z 0*~FE2#}uUпz |$4O"S{ɛYNaptoNH| SU1`34T -RIT׿y(D5%ktW$(JLVI6=6$%&R,xJ0lpܰ4GmE"7%&&PA q1B/ n6Z>#-rav˭Gho=Q;]L}E4si ˋHOR} |2Yht3! j_ԏPܟq(qǩY"97ky*sP5V۹iCS-_R(WߴׅșsW+W@/N|nq6R1ltZ"@?s9,1).X3Z:4|/ubF*:wxx,KUc._А+heS3@w#ݢ62\IR8z[{{b;ĜA`>&R<*hKKU: Rh4̲:UjcfI < |A&Ah# Ênyôkog_8[BWAA =ɶjF! ųM4/'хQ1M ڃjpN@(@/ụC1p77|RĽVCoQ̆N$Ӟ' ?> o??Lr{^<Ǚw^S Wԛ|wMK_i  ck`DU-HK3$xwdmRi :C2dFDl_N*b9()!&F`"WF$K yU\#r!At b / ymnfo/dU߉(C'A,+[vĬ db-AW3D4D )p|B<G{š}n&| ldkɩ2N)9yÉIS$E{!YL݊*>~JUH^Iy"TNxZSӓ26"1qU{M}i\pڎ4aPgP!}\.(n j 'z1I uEkGa`a%c[4i{N{!gYrwP߲Fg~c,t }‹wInph_!tv:]t51Ѣ8"1-v[7f#CeaVگnͧOO}NlF(̍,Ϯ?,ZG啁[q˟-T/*5oyT(-{Dضy9acbex]ԲЛ 30zwP5seezXJL] 3%D۽`;Ą _C>UL4M= `5&NJ}DL]x-8@l =`H ~&C/imI6๣ 5[QS gL^j "@$|~i+犀nH b$iāqyQhȷ#`_3oߊ틏-pnU-Js ac[sĪ.Ȃ*TZ%7N|z2g<l{ `y ^ʽ"wryhndXo AK7.$s "wԗ,nVY& އt_7JEJTfM(d,_8;i:TisI|ly~l+ zg<l'{ #'c;po2q*'"0p !)=ƻhRE^A]9l#!U\;_ }(,,N3ccD1EN hEФ$2^81`"'O=Q(M= VUл0W'i;<$Sp(Ya2:[TṌuq8kÊEײ/Ÿ0KﮑI<.=(@/źzz^}WW0B0RL*s[%?pbw)M܅2Bx {笡?({ h}z0tAS[ZS[:&WVl|?u\HEB <_l#p޼T Yъ{c['LVߴJj@Ox8[Z+rٳ5ٰ1 JS8ƵʩQ^ÚDDqͶ/+rc*2#Mv!? joy}fL>HŚQ"7$2I1%lJ{oPF.'YIHuǔbm { n9FPR銘dWW~QHM+6pV%j"a BPafUyνG x}I2׎ٴYu쑄aQ>vͨ}vϞ/=ʫ,=4 \ɔ 'm +֯"xɘLFȓ)OyVdVUA7jq2zKY"c3EX%a>w Bf$TW0B畲 I eH 9`Z,wBg巛u=߉gV<%9GGJRT1p!٩-Ik\yoQjmK Mr9'^ms(½Tr'Oc?1⑍uK#~y'̪EgdSpawbĀpR]CJdRy,+ #t\pLUrx^"f>:T5噅MAQ]zsm< ;5#M4<_7xq2o5 NO^JT0 cif(}iPM=D Ep5%mg+\@\ڈ2\M7_{iJ=ŖO43px},JtdU5v855UE(P.XiCxDCRi/T8O=:0sʎp0 Ef]:Q[}yEa2HAo\녟MB غ?8J) @A9&g% DC'68٢ca8tWoEzޓú4b@gDW!xmԂ6I U5 7*!%`[M-°T1@byV-iT 2uv3qq<+_Xob$eV^LpbGQ+V#hR퓀iG*[d\l_JJv MȽ^U"jЎe,N)j_ &D5;zQ#)u,/NJ Q{].HTPR|^ #VH+AL$N)YCPr2~Rm~>hU\$u6"efEZG 51bVOqSV |J>U-`{S~] ~r.4!!7[2:!{;]x*t`pP~S'dr2ԥ-̒WtMxߔ!HpǷ&[J2b7;k4Q4,z@kFv׆TXz|}$a\SW 7)mi0S@]` ,y{x罟`!:k1pJe4Q Ea>j}0}7x,`OnUd#w d;n>/~iqVg5EIm!W^oTgpL/ۼm9etd?hk62D8=z1ewl,xB.m>$>ڟ~nNN7=r3m9]a-kN[#@v8e†"v~& (NoDRjT Su'"mDZlCerП*]R}k`Ϗ*q##56l<~6֦gkB.M{D|}~8qSIapD#49h_x?̲ [,౥,Y,Y}\u8?ތHKV7A tIt,oEt*1NY8\89F\I{0\f&0KtH [V7) O9؂ÙyyH̉&aF) AS>4ꥧKpͣ ?ЃÔC0l4GH^++|4c?MCB'zN'SRjgӣ? HPX( 2#0GխYV0]"FƂK8#mIDe.lL zzly( BϩYܠ6ˍ)Cz?pQH1'ܸ7tTsbKf}0,\_[VBˈz$ej*..:u^wHe 8U/}VV53MB[w'z(dor9kqZor\䱙zXd3oBmmbDXCSoA 2fL3pg9 ;&+;Qqe]TV{"hKOk†RCף1*FBjbʤcۻ[sE縢~[٪tS+(5/SHFvV|F+Oy\ꨛpc$0qcmn#q}ns~S.<Ly0b!Vm@v0HNz.HK5 *fS{fvAtT>yieaJ5蚾$t]=qJ1e~]̤(zSNy"| ג}.:j K_e~Qs/㬮܈ }mTśd"O(`{#xH: BQu ^'$`n66ٳ4GSf,ܙ/ACas1^ǀNZ9alO}e!7bml%E2$;ghSUsɤ02 I%Uωi.M!*K)ؗ$;M7IpɽtU9r_bP cK* B8k-80;3)*AB~j~LK! ʃ*A3}ʄ)`oeh;dyNS+m-BaCt~~)熽, si}t:&3%] rYŸ WO~n-lϏ}࿫4UDFFoǟIG`!q* }T;00 1*#$gBhTd)ŧ3/mG[N?u^9Y<0v:LK&51`Se; |?9Ϩ' b EjJ jlz wlNSzC Y D w2^ z= CZ#v.7w9JߚnT }"/49.HoRR>k;ɮ;l`W1n?cljmSTSU4gJuUQa0+%ʽJ0VŊq(cZug/;CEpƖ%l'[<}Lh)Js7abZgn{?1MSjYNg" -1O 0 )CIfUU,bPWNVE.tg(fErȟd*OBc]?Uф"Kb< U=Y/ -5m64_mRƱCb4)9ABp'(W74Ęl@mDP /4E(̟nd^iCj%_1 t\𸞌-W A&D~-)i]ɷ( g$Jθ)O%0;ep}vC| H(v2=AgJH}+(a>-WxVzl㓓=HT=3EjH/ o0&> TJW H{ /u}d1rtRRk%r bB3hlp_& b#P?S2Q\GCsHaݤuQo0qg@'= ShXؗHx??}X~+N`m20iП tX)7jȸ9!KQNvs]¹>(n2D4oLڡK $eb_+nQ`jFϨ"tYҝVwY _]݈_d `$ R UW@!g젳GWl(,+|cKK31C)E j 0컑t%WC޻w=z g=qv\_2j~ҘWeo̵^}\qcqړ#Yba9KaJS2  2|`d!GdE1pbZM{ùeviF7 vK5u?giؔtl~ TP (X A85c^}4ZoO`QƐuXZɿ j'zk8|LpAKa2f]H*Z0ÃAbz0Z_v޿~(Uə!N }N5)ts宾k4;x踩ScoUkN;TRǯdj8}M%ЂUZ?&py3pom<;J_smjc!̭vgi^C$ʊ\>\m>kL&Xy=!q6R̨,Q 'Kn @>B:6>Ob ›;̊M3.g&f{V/NIF"zV|*7uS=^{YmsQ_X`:\>B>z6[8!yʺEa|7xYfIJo6IDV] {옔m2̈s6>L|s3d~-v>/I8)ʩVw=&Qo T\,AN0hK2&5Oр3T1E-+Zb̏%cOt]X-A%c1&]ۧ Y{Dy~r@Y^IN/w8SBH&联FŝO`XtAV~(6WZLAwFYi-?9EYc(C 2gdYhjh)f7v(y42!.!FkT4MPDؙ.b]f?X^'(5B=*fr9:R40oTdj{(@09hӱ5p,R"q>c*ZݝKw͝_r %?;vwS/[0AI-,S :UzZtZn=Z#HDɇKUFk֋!:?f x8-"Tx9xY ziΜk4pm=UY0!ً[1/RǙEӠ}@a q۞!=ɒ:4W6 >uSYTNqJ2t4O㒙[Mo_5[fy-"Tv˟e鞻JBy|@$M-H(`\gHzi^p ! yif;:(wt=:sW%W.E L^qTiVгC)j};2;*.6@bqE@X/5ܤ5"3Zςt{ڶ:}KjhUٱ&{o+DYXMJ$_C wp2#Q$%Z\䷯k 7`9?l[(RP;]t$}ͷ:'D{C #ϙ54"QJ#@y"+e%(\4qQoDC<2Z*",>e?`bꑡRibjh8-LH5m梣(7@gf'rCPI?Uz#E]?0&^4qP"04ę+g;VCt6,4},):uu_s٠tssP F#PA]c^/~<^S~_Fv5t@lhkF 1ɈUt(nPZ;*jQ;oyM|߯럍})"2WA sM\ j;=%}4|!lsl ku:lJN joP#݅$gᩃ?rh;U9eI[#h2, 8ȕ7R% k^ QHuDYE D퀏&~"(BZe9l2'4 )=;Ǿ#4+>կ]/X0]}{XAܙ, _-4јXY51 ISx Fjq,;],Ù^XPzKB/ZIPp2P? B#P 7;&&|I|J6LɲЛ&sFfYsߑ‰  2ܣ0wl1ΩVo)K:g Vf$B4NCy8Ǫ=b}(@P@ޝ!DI>}#|l*?뭫R<|']['/6k?΅-m8CR暝P|Yb%9,S!fmcT"|U*B0ׯ9.Q~ ܿ]'!,(/bcI"6+xE۝sU'@X8ǡU{%Tn|ˢkž{o?KՏn{'T4wdrwR11Xǩ.D *vR4{6wv՚uТ373)0Bcn>IF?H4o7pZ:Vhx|w3JwrU<0zz(wI8GO/ jdkbgNJ$`1v T]XǗ~i~ eϞjjk^^ӌ?{.8u#zG{Kګ5`dwhٰZ/o?ضt0Y0;GDF⟙7J+t'ѭ NA_d`q!"i:;ʏ̘ Xy& ^*ž}HxidKDW-.\gqe-bo[Tl"xw_"ZG=h&8&-2IFB/:8_+r,4cբx?&̿Hh"ϛI-&typ",? r%NdEQ8>ur9Oي'\u81n=WSWTQ yY  AHToB"b:%4m7b 00Oby3"Bpqǖc&tc!*wݨAt*W淋ɝ/`n%TWFe~)33_;#ـ)K}w\|'|4sf Sb̵U4#;60bW0c$! +=NQS:vdTTPsx&{u^IAJ7|XrhKf%P5":O^Znwب!« k\03_ZXAM,Xqh[?eCVLf,0:ѽو6Ynm3F`q!cE,^|Q)AEp\xX{}$; Ha y20J>LKC~ 0ܲq`gVYՒ,ί(Da\KO7]}wGR 1ŭ-;]O=V4~xz=X`6T*CAЙ8 hj;DĆkBY3%E )6n/`(4Tcc+coEzʤ!#!pT;1hXxtՍmO0gGE y?P^aNX@7б3kDJ9>Јu,ZF?>sLutOSsZ&ЪA%9v^!3oNPZjƸw%hFXir9HbB$ұAVGd`cQYJApć68A0# ,G,{ɺJI*> M[H3d3V`\}n4UItsqUa Yy#AiGů?̃`H o;{N/Vtϙ=wF%p9*rc+~ꠛ"4 9.AfE ^ |iEԢ0T_SuC{x%S#s?Fُȇwx2L4rj""{Dy(s2hS~g~`(zrVZ2\ֹ*"{6vl#fN{%2ZXa2YMe 97 CMAL[m?iҀثvgq?Sl):Nk*+Lɿ7sڧߍ޿,ˑ@  6!{--g(w9Y1)uruxuR%׫ [,۪H0 faE`v^~84 !L"!AIDUisi`~*ʿ 3n]^9)Xt}g8_td7)zι!#Tگ(+ =>u›ut;zRB**L1SRL?~VBPc}?taNfPE\fPwr6m&VSN3KyT0'v&x}kr6-ALLF-^^\?y;yZ0+yׇ>JtvD0< pEUڳɌ בs_wx:Ke..>gW[|R1a]AB]mqHm%".RJKV66[}IƹǫN_o<7#,䘴Jj5 ~@)vG M\$^\u**.} ,U$7ʿ"#tZ!/47 |7JP;}=4p`=C*9kV?1#⦱VB`$PH0t*IlK!:i+Z^]KPL!д/EԶ);/*(XX`)ZNape$A>Sit!@'M{>%wrEeCC}w-=lZXSLwa6sE8wՎG fQ2CW /mC˾w^uƭl3rQD@z)@# *F 3}YӸٯ-7=x~T)c ;u|>' :w Y %+crgDeR̰۟Bo&(]t1y`tCX\N`̏=,X{gMHu&\2%JRÔ՜dHg]> ] !0ً;,lE, s(.1_[–sv++`q6:Q>6jYmw&1գw1B< PSL<&O5D?@<kpe=Z^TPn6@@3*ML&F,;丬 |7-WpZ|%D6ѱs5^;&J[sWsZ2&\ApbDפ:NpY_?.S7q,fAy.,3C?ޑ`K f`db9mDٿXMGwVi&(֚(jb-~Cl 3[_4k쟰fYuN/wFbY]h\e3 (Cl}!tff!#;.{I^9_&EW6/Yi>LB+SeR(Bxki]!`bomI$VcIļoJ϶_$ƌSj[mnb*U3#Ҩw#nm{$ۖ3Z9#0&Ol-l?[* I3kxl[(g1E _цȨհs?Uq)[[AxE0t1!VVγ Vzdӟɥowqn1yi;p<̥3to[=7__dIX8O'^]F1^$MX %fvμMcԚ=^ݖSҗ7a)D}W&F,,3bܞs>-FICpOEGɲ!Ѥ0ոݹٺQ65 W. _Z$IE dh(C%L%>2sW1go,t?;VQp܊  P}L W/^0J0L7ҒI  ph_l,OjUg¨h%XRh Ӭۻ;+LK 3g[3-37+3J-0[rNŝZRTVZtR7p[/M|d"犵>XN^XbRdWNam񏙹gԄ.$}&^iק*IX>+qPu/[;S ,ň;tMm5e'+ٽ-b"7|I> - ;:Z\ُH @|&'ƶB#@qO 4^~r9OWdSE> R" $d9|ֹ'OKr(nrht>+6|gxt{=\+tGA\"A ^y@Vl6ϊӉVJ]=";8,u}y؏7#驠BܼRoVIKMB$&x/qf#Bۭs6shӂ0Iެw:Lmw3*`!0%8y_pcB IV*THx-cW@](1+"k#1m<pM)ŵ0qeE]͆Lgl;+o<Izt7d>lHX<Ϫϥh/h aSųW_=3UW;m1[L~c!g2v+0NyД4ޭ_'D44C0<^146e_%=螑'bFkvP\unOVBʴ/f ٸ흞Y?˒XSZsJ*CҁN\lOZbq`-;j:+.Fz붋.hJ%:a1"r Hnᜭ0fth'U0oiTn٢kVm ԝ"Ի菛bh׆̱ٚO? gXKzZ9wAژۏ*T)+Wy~N1s.b lPRZkA-uʢwzSS t-dqc?}m [QiiCI))PQii$:zB;gwf=usk} <^I !JvhW?!EdQiiꅽ#ЧT(օvmt[U w&Pe^dx 9s G^A0GJF{=pfjIiX̉Zb"]'#ۡdqh9,| sOa>2į40P1M$sw 7q@ҧ鰧E+M;ܧu(>wn [[ S!E%SDZxB^|4<^H<%'@)jCff;f9d3BnLu|y|L237WQ"p))/,^%.D^!4鏼 +p͘&iA)aG+Ge_7m6EgXU+RIBfL2}Qi f8wɪޫ!^[?=wvr^r_ѻ3{ 67cNM=5V /'={nq<znM!1TLy/)J>p@?ZR7^?z{gI;_"7J/$b-s t@nb `0"SAķ;)y+FfjhʝlżPg}ľL{gpXw5xv"o *X]*ܿ/7(^cHy22\]>(8Qnb"vW`u쟪?̿+WOkj'̍<_TJ~?ߜ|OF򲚲uIJca ei2ASlmLKR/+iD^JԴhp#=yTm"@m 6w;H^otVړקML”vHʅ`6g~H(:oї{g}LϤ%LGz{t w0$%:k! \ꕮz+Cx@q0JzU8РF9(bقSϽO@?yNd/I!Qf*'}vOE9-+xg)2b+ݹX*|e&GB>͔ĭu~3Okgtp t𴡳Q1rwQ]j1JY:GG+˴j+8ud8늤;s=^bx5pX[gqg*v(F~Ҿ8gI\Pލ4n57`ŝPkcrج^?FQM@EA=~;9d<ũ~x1Yr7h?ݛ4v;(d5`Q9tPq[UO"JǛl""CTBTy?3ij:H |H<} EPHFx%(^R&#(Mn џv`9[£fpr3Fi㜝LHsʒJ,|j9د_o2Ka@m sz_JqN4HV & {a7[+(F7 : U/ pM-.8ZV p,} 5Yӽe%슡{n!"(vݓLW} 歹|?R:K $Ⱦ%a =ANh8ӫ͚ymyLտ!a$g{zZ~Qf6^S UߐFQ{M8U#Ƅײg2:{ݚ69n(r]O'%0~9q YKyO Gӂ6?TyJ.xqP5jI6>bjN2qcbbdC0ws]\])ł8ߐٌt@$Il܄Eoݺϛ歰ĨWRn0ٷJ =S~Ӳ|ayrIV %>Qv}>^f-*l~67헜͇sM5΄f# /Դ%n:iVɏouC&Gao.?b0Il%HebW[hӣn~wYo1,o%B4 U͌֫Qg8MK NpGJ+~[3:HdKaN8Nnݹ9~ndey:冪Y8<n*sOs]ÞπUSa{G9N]_̭PZvSS"WQl~j7[_2j<2o̿Ep*S356 8~y0":/ vXŎ7Dj+8瑺N Y>iy)g݂uɅgOyDDGtti#uJd=/O3Œڝ%0L_eŸޝ 2h]^RfEL U6BӤF]Á1FN)E@gh(͑-Y9 - X8ݿ1#T}CvY:`D=q%pG\SQncV.a9 "CMY\4)u 0Jv 4 tsc?_kF>mX7ƋQ&!I{"|w>Ak)8>zDQ?KD;Mx}@I  "66DTwM(a9S0bL>wɦ hS2pkb1ngαhfM3AmrX* 5]ӝ(-XJqdiҐQ=|.Oya67~(AR[[N݆$l0d6NtDV 5cP][tf:ژGCA;]UuKB,Kĕ#&4WSG ŋCnVL;a0B $%;|QS[Qic?wzujJ2Qhc,0K&~Rl`Kvr=Q7ZaK6ؤtاӠZ>wIg~2=,n y!) Xi; etvJu: `_=^ok` _ ï'$ A=ݟ:5mrF,-\9heHQk0C0lUѽtͰ^`h{!Ԯ(a{tSFbֈxGlaP4-ZececYKL^S)P)YǟxND 3cwjKJֶDx 0AL]Z/\}*F1n!{\ ʫ4s,@xC}<6SػwԴxr;lɈc7fb CQr} 5_>jQͰVYp([ KކIf@c~kChl'`o;#1}ؘK&*zWh} n"񰎏܏' ͐<5=A/7mli%䚗}1HIG3x:Z}.' ~zשЁ #aKz}K>xɈ0Ƞf. Wmh}6\&Zv≩[L>g cpUl;7p.CPX ZaPfMAY81-ġ괼a ~Z˟-}̯D0YK7aO8'Y .`KNn@qKV2BUjT"}KGvŜ7?)!M stZ {UM!)2^3'Kb7l+@P,PDb6+Z~[8f=7ud8C\Vb[Vyr{6X:[A5}yX9K&EAEѸw-;gK0!z`C{v~TK#]v}ܧ4n3HشLhE r;1-N}{%\9_ݥ>йୠ>]3eٹK&!NBm3 JL槖lG&b(XHV-,Ɍq:[uYJQ9٬_kUy^'c7 Z2~GE|MlO .Ɩqt!:AvnJ Cm- KS`Kjt7sK }3!A,gqD\O`{w2[{Rj>c)PjvA#TJiV5clచ@egʕ>PsQm%O`WTLP3sI)N]Sq}|ʙIc+qPGbA, VbN䈑תO=wUZZd}kq t{u.ԍXXFPNģPAT "S.>)'x4t&6ضƶm{c۶mv߯3sKWp9qXXI %0 Y[IHR|?Kh: w&"~rp1q2rwQ5s#6pr"rpr6q2qv5sO }T,M@\MJx%[-A@%EUλ`E3zL/=L[Eumb z[ mh4 "@TQY4\{osTxMw})=3>>-ӘMi0K4RG0p~}xxߝ<~(ވA6{tVI;)l$M/eWMpOJ2"~@X)IG6rvIyX;$䢥7Z:Oa3=i!yMg,i= `cM1 BEU-3թqHb3VM=r}vfrSph l`RbMt)5eH KMeU=ZF" 5@1v ꐲ:?6* *z*z { tҖ7fQ)K ksKkzh)Y)Y c9̟bM}vVK;ȦZKSs+> 66KIעf s1GYb0NLN\ $ogGg{ 󦎷RkK)$̓S_} 4}/##ŕ4[^'$4=1aR 84"<'Ȅ?x`=""44No_`thQ 4"n`e`LJ10ԁPāкO >/'_zi|!AAcjkM ¡Ex0\H·|pwH}ݿRu ]Bui^!kuPl&K~Nl,[@{S†!n;.=h3:݋9K2ߞuq>{zsTXAmqmZĐ*5}`k,c`+)܉<6 .Xƹ%+%SmgT caF)1EsI҆C7zHu鑠q\ ĂwǻWGb%hc{a ?׎ +P D:{G%=lzogT5nF\s++ZZLN+5j; "~+P]d==͝Eؑy5H[ *brDbI:hTFQ4L4z B`n$vQ!CL7O+ X`//^`===zV8 "!ؼ;}[̐?9Wy°H,Ep" )H!kB/Dʕ[FC8 t{ 6ƬMdx{5Vh7'Edy{ z?S}oޙ_.hg<-"YL ,b2|ə,zf_V)3h~ +zV]Љl苻7;R-) K1Sd "R֚C$X^<ֺrLIUxCr^31,љ3/6XVzu_08 )QtZ\]}朄v9~,#,-f\qL00N_PCa Z[ ~4Oy8*&D8" 9㢪PsϬ\)lF<.Ň%PHț߈s+ v0;V_ 3AD /n~ qu`qԣ8+Lh'g sIujyhF]JO|0Zړs6t2/0ȃ5f5&+̉tKH/aƮ';h 9 $ ]2VG?1ѭ]nPV8m[yxxɷLTFo1z!J?;ֵfBH-lW-niVuZzʣ&Vxqq4Ijųqjil&ͬ\ v!Fb$EƃaQ$pݴ=P7箶 UT[Ħ8a*. ,IpD֬*R9_?GL0|솪B#Q-ԕ! )Sqh3y}݄[JSkwv>cj msj[ـ$C7/l2MDu9⢶?&)023CHl*jQytziڸ?yxc}=!uc Lm6_oT ]%AVRoP۱zXMDeW Y02@ֿ-^,fPB֦7#aK>wgךRtĈG hlp*+]Λ2cK-C-?O,K0qB6JlC'q9\OM ۅije^0)|PCdD%"h2tFDY%%Y@Zez$E#%vʤSR_* ڴW婈 ?OTF4|&OP(-_S̞eӰIeZh`MP"SRka,KA!UFơR˧ .J\t\s7 ;\rӹ:7'\"d 5FS\h~q)]lRB!l!=+u/@G`_m0MOZǂ& r;ve%Us\͎\Fs ͱmPNYQEMV,?MfuTցzg M04V;I [t5=ߓ!LBѭm~lʔ\&i YԂ]σi+UNSCi#`$~n}tXx'#3yB BIxUDyN|D ߕ+"QR(]5-SL^E/ueYB10D?E8Bƞ{m?,_Vo+z˺f*zHf3>_6{$IV``\B$qDvbe1hc B mۗmCu)\PהY\I )߇>-ĹG߈}$0<U)[DcV~gA~oߙvji+RfP=kѴz~{x!SM֦Pzvvb60T/>*q);oDtD ^7~OiU6v5dP-hlfTBvMf9ZM~Z{@Wnu:0jc2r +, S o 3&u\qHV7@-:E {1toM I w5#JG\Rz3ˬgSgXKd5>u&g ;fFHw__)0!Hoxr Hqs~%^$`(Dݶ|pLJb24Pwx'ZN]Ctr-8ճ*g;%۴tUGM_рU-/c?`;[N=@6WO3\*X˦c\Ղ{؝2*W?Wek5PC4{vTAw}M4+DBox4kK"AWAc9S1 f[m8Q~Nw8QIg`E] T6BLD( j\ӻ6_'r( 7`VQhiD㬪e1k{+lGFl7١,vۈ%#sˆ.-$)~)=k([oݼ7;GOqNrWsՕU!@9cbtt?!6QFH5]a{tYzD/@WE$}йHK,+`iQ_6TLiLw+ҩ4RozZe+oSĄלsWO/_a6 `1ذ }M$d8C ֛ؑsfw3>cejjB1]/b+ҭF4^Vt|?\fx6ޟ5~=h)0iI=R{\_W^t4eq$T+8@Jq:Gy2Cxf Nr~M$޼< P S%=-vh-,beBabă#T?DT.eL4b5!4lUCWmB Vi|:7Юb|lژBck տ/7uña(0!>>kz\AivվXHCY]?>(P8{ YZlN%8![xGy#|@cEȰ Q*s0jaz1ZV׾/D,C5 *{~U+F9ʴ_ùo3Y˲NiQ3bY\&rUqñ{ʡ]|ybkռ9ka)-}ǥ;vX#QsLLajr7~kdka#p܅npqq}n D<Þ\;w(u=|~|)i5j>/Ovpqtt>;XOl`SS-*) `풼eĆ0LC@AL^| u+4Wpɰ`kn +@h[|vOcM.}M6~_\gr4 LAC%A)*:΍qznny^{n| %!6W,pӻٿؗXw0?Y.[^z$&Ӫe9-G4ƀJS\p?Ffn@Ghמӱ%+Ty^OXZϹ:%R/7Ó-SxorSh0%۩c|O>EЀ rwE)\lw͢$&xrIY G6+I377[/; B'4_%(P,}jJJ__zW^PtRV`)TL~?uGj}֚j_+,JߝZ_Sg.+=kki^Ƶsvcwݢ^p׻H۾OE֊jyT qz$Y,dR I),jSwEr0M"I\%UϒW°pbj㤆ڡ"")Zx}yהꔧw@ϓO[EA1ˊzy@"P݆OEbdn"< SEPr'LVE%E_$;TI%-ؼ_ފzCByOp~4[>@녂BlN"M'}-I;^1~7:I!Y%&j3-ilşVNm7tZ;g!+[(cAF+xSLOZyS6ZSCPH߽|Oϴ|N $mA"I5/>,W(xq[6WQkŽGEVl T9=T5mb;꺜bN/j:;wGYhQ0G /F}9$;P*O+׬mF9; K|# 8ZNTZ]ks觕K۷*uՔ qU F.Wk~0dyBX6kZqQKE]9J,- ċ@D-W~"?J(R#Bذ`K61؂.y7wy=iޚ^-߁=E|)v<^L9z<ڜTt^GyOld5uYCsqijLX(lCq[ :s$2/Ak*;,!={EU )TN_ct?Q푈5Ce8[ʎNu`dU :H"+ P*/ގ.ruA[b/w \eͪUf=ٚu+6>")Lxw[tRWBl=[b.QԘ嫅e:k}<_l09= ~8# 0]PfvәňI56R;9bvZ3A__ S N?0)@Q;9R{@ϖf凳eW>RK ?D]iPbvY Rsy_n?pP҈&@AtIfq6[6$] 24Bp0BU)I6)d׌DpxX.ŷQC^"1D."n'e'YɦL8aSx(קb':kW IZb~{6&?fYIߢbCtlXT!1:aŨJ&d:z\HESOj;G]уO#' Q@bCɒ+AwOhmLk! c)Әf"<998 *ZTؤxRWp ͔$7s tlnJ8"ެs! 5^ (~bF-crD줽s!IPAԙLhN9Ku ǻ uڻZBj׬_^Gpd d] cܶ1oe.M2R*os5ed`2$3IPQ. HYhX+H.&7[aȮ'F knD?869PVk }ȸ=En@33޸c~** 4f@.L6k\H3,φRAA{F829f{7ƎZJo[XN:[Vi+jNU^++NP.ch.2>a\E #|Wvzƭ4('ѥ|Ez^,+\(#$LTLʦ/JHkJ.^}`>4\TkU Z.J¢\B<~!^6=tjg7)@G-ûh2HM,Z]m }YVX.hTTu6>~,'?ޟq8镯Ow =HhR!/bad"W.>օy|]b'T^AfFqg / kcy~3P|ZM CAI03[-~/7DHR`IjJh{rB=lt߳~ZA Ѻ Vm{ԣ̘H;oSJ.̻Lgy͗n¡f#/cZ|I ٲ^Ҭ< O٩ba`SaLoDR_E{%ޒX Nr^x"]FN>0^?G/ n F+Ñ~Z~B4b?}ݮ~z/Z7Ҁao~Gyo5䫔xzГev%+O4G_0#H5H/^M r_)?MaO!,mjFjSni(I| MrDߺvݼD90|lPfY8~x.1򸔒lz-L~TO-nx^Vɟʋu <^>knM%p4>v1w7FK })r^i=ʾ̬d)f}ܛӔH; 7 ()rȄ;Գɫh՘pqJ\Fzda6tF*̓ >ӪS$eQju,JX6Zy] mةAs&&NBV_4_ <4= XB@&4*ԱGr!XI:nD&z+$bһO,\"Q43Ӌ"@)/nX %GEc. 0;IJ\W_o3RifC:TG"X\kyxcWJt>D0cjHD}&VD} OtXan~;$lVˊ|D40ށy+ |wX^,P%EbtJ9|*9̅ JHȯ&?H3,ɘBɹZ/h,b&9Tfo iX~xKx`wROpݒ.pw=\)ʢ괘-{_+S%/)ߏ&,Y{Z-GuL(VJ oP?dLEFt8@tCN 3"M!:`=@@nYcdQJ-Ut䠨YQ*VQ#Q[UUBa٦Ew3Oîl(A=&4}Bh/4O)o'qeX+mP.][ 9T]3 c='فذX{#·Ľܡ7XH~Yajt?HP7w֤g( DY'qex3T-H<̒z9)X e- Ro -(S7j&4 =,%&je6S#dҩ5:LﺏyNqc rϕ yK[[W 4bIm<h5}wKTq||eG<9hPI,?Z, P?QT۝af؏-Yx1yv~,wc /*\[>͂QP2W+7t+(Dv]Gi*8Ĺ8n7 K)kVM(_8N4 - DM'C=ɹɟe>.+8/{&z= ˵3ǭ/މ!Qqi4POH]70=xPUVsB+I[4) T* Dv-LfmšĚ2lmPjF`?!UV+seW"]Xrs/[pSXAEO+ʼ'w to4767?Z1m}{M b226(rJJk?p!WP^0Uk\&HfΞ7U`-vܿdRkWXkѢb>"x>9<k5w?5b5Ū%e" NZFI,`z A 2X {UTi%^XcH}N "6XtZء0E&$r`h%eT`|( |iI3h84'its4f(;:Omɓà/qN^)ezAoXR'}˼דg@ē +p{j8{;^e: "#`F`]SԴ>} 3M{}y ?S @͍0]zw`-MXj@w\xgw@X.Aݐ{ <~^_xj1hg$&gMܫ#?(#AIyC+0-4i⭜KK~/#wLy~t.Au%nǀƃ P0+a* Vs:bR*BPyvVo@t!DL><_nFb.'= D!1H ҉:QǶOs/9{Mۆ|bH&Y`B<k%}&GU1#,+27qM/&nN2FJmq~媕YIlbv7TX'C-RSJ3~nyMT۾*^mmX#MsaV2l{vS>\p#6:.%dѫJ<)l*OR,pu5ZFQ!0Є]U s?dnr y0P}79UOEW2=5Wdinsesҥ?洴dZw}U $"ړm7@z٧d, *( z.v%PDޱXO)g~zː `EZ3FmunEgmBXQ?c"YW&{x`IQZ(k-m,xv4ePṯ m1Pb&)C ]Ӡ0 }x> Ǘ4oxy "ŅDߞIإ'1ԘXMaN$b[hO{0ct~Xe*8@qMٰڊ9oRuyZ |xx_K3v?'մᮿ/ ۮтۂȄ^&Bbv?oE#7рWWV+m4(H;/$Y`* EVCYv.n$+(DFG'Zdvű6R5cO`-{xF.Mmm*,"U|ډVrs4NcwI | ?)gKȔh ZfN/&PL ?j'Myx1.xE6$㹚gb|$3*Pذ2jKhVQWvˈ=I*侧VcINٮWfXDU1P1vвz9Wy*(^I.[D)=LdDhah[]M4 1yDm|dħ50fAhVx)f1ڱ' K5eÍ$cD- gE.KMMOaW% DyuQԇܑovʕ,e)%Et LQ# u{|)hȌAc[薘 +QWO[7r.D_uM_%! 7%``zj$ RsH)+I`J$96U]rWr&. JPi^qQY$ÈffTX<'d0TDQ|~fԣ [PU2cE(0Ggfo`Ӿyv.uNqFJBb/Hgw/dA _$ߩ\ xFƯpiȑA\б=1e"nʱ)dΎCaΫ@U0*ıA߬cD}ceaɾ̦NM}(@ؕ2o \B)Y"D Ԡ'- ?8=V ^_'#ae rPNAEet)4_npe{4+gUp7Ý  ~ArX|[HT ˜[¤Z)b@u÷Mb_wQ#cZ!"gk[_/)t!׏UDHd-J& abP!JR[%wG1ut~2 BFj=$CāL`v@En6旔ԗ>H+ʢgIpM)" }̆F0rKcpٗݜm6)ԗMqx;0Z_;r ;C(߬*S%7@d'mƼUਘ,G!0j?OCO`@ʉlVamv]Kq+w+iiq(R$@"ݥhyɵk%,22dh=ͳKCʹwyN̵"507O5ͳ}FsdgrٛDL!Z_kP"2 In8ТSPO&NUA?'bswW\s|'K(Ŀ%1;FCp 1& z9^%ӭ ʴCJ o"->ZɔMkIr 'KΞʷp7a14he)NP~$y+W& b&``F;1K;*_x@^bjhzBTo:.L;0I@=31J̰AnXjUQŪ-ԊcH)她X3'"ءsja¯`rpL@~y֛%Ԃ.|NھePUadgg$j}OF* 7X,h@ ӠаGdhJi"Tx#(E bc `K"p$ҨE:%'~2hP#ͩ18% i',‚{m#M[?*RJƢNNJAq??b?;E|̠U-ڪdW辟 VNLwcm;$}C4~>QJ! ~t =ee-] ' $P~0PzP =h@67+q 1qu0bE0o:7##ŘxgfY̼IrEPZJumMu }?OuB%x\RY{ÆO%?xlʩ3XTY=OͿOhdej)#xS7H1BP#FQSԇ1p'@HR::οe9\CxݎlA,-'+::N>_NK\3i/dE -ICzU6~tP UN&gkZUkjnc?7d1SECŜӶHJtź!'$iqoM# dN htLW)Y|LBx30$`7`b6LQŸɮ[%QT aopL,2xI ܙgI_gKAmϞ3"WRuk#}H_"f4Xg{I!JGpW @#w1տFRp[d~"|"rb% Cꀥ  TRxSS*Lx & $NSk'n; NZSϵ'u5 S^ڳx‘'pm 2t{6 JW;+jMǟK|xp{O|.ǹ+!|.wRuSdNؔ1YEa4fm /X `\)%G..w⇝pBdP+#F}-FdD? s̎:ΐQUE ߥɨ8] { uE '$ VQ2żG'Cnupr_cp 1QwGDXy}m5ru¨̉AGmHrPo^]{T^2w:k*pRbv$*Ƀ ap<ߌ!D Cmq⠢Z4XL,v'R'I83ÎՅ@JF?d~X){)'k}nko1K ~ƙ޵ < -Vj[}pI|sA$ 0?jKqѩyWE" <5Wf@YS/=hjb?uٟ)7EIc܌Mj+zs0sG"<.92^Td/A[ Tڙvi/›-R/J#I{~u=H~^vHNLo"d91ٽV(CdJ7_b:f'uj2nJ=vYo[! ֵqΛ*uN}+>YrS\!~s)CyHAl;aZ؂LlX"'~/Ʀr .L=nUTX@֫س󉹑DJ7qG$&hv+^>LEgrEx=olnj7ʤ? iN*KƤ"NvQ^H\J*>O1i!._26lIlluıw ŧ gFzC?=`Bv#vT9&DĖ;mN8I ܏p~.?*vX$rښ"JY#o<6KG,B\'*U4EVyhmFǭԱoЅ=PVn'$$ Z֤ʘ;,~cn Pr\:_G4@߽kbB{--K&~ =->4c?uMb|‰Kd8qȎϊ<̌A(KЊ\Md#ynD"A?v8^|~ƕ+OEechnx ҟ"Xi\pS%`EUqVŒR$t˝n1`T3ENѫ -f^S] );UcjL0HMy`>=V%ԕ4R2LROLg+8<1i6hHP̣V72Kd^.r7xEX2}#~b#xE[nx,}Ưk\f*ll`/@Z+XImKQ0+dŭ17vK q5ˏGgz虖6p}Bv*`T !lj8c5lӶ%k*xF+#O( M?#7ONߨ)xH ^8{jOr-Hɴqnɘ-4CݜU K !ɟd)nh;G 1*̐ά◷t%uPaPiBIV,J1H8oس:po+zqؾ0?߫^r8n|tqI3+B!x3M m9s01|%$&Rl9λEPH`~aqIcyqv>]UBݫ:xXP2x>yLskq' 6"CgƎ} ~ f9#&.n>%n5kfDv?2$̶yKz.܎I#{=% ]ED^*vg`T4fcG`ueHjuXXݜ*+T+jJ:JJt/R:͕I^#S=_}x<{s4-t3i?{,`t_\':bV8E%$Vb:<;U}iF3&I"6Q/򘊃LOg= wϟW/a FM5>/dۚp#z 3LĈdhzioa->؋=F&0SCL.} }z8~?]-7*չJcAo*_[׭){1*&cf2~yS"9_G~9,/ d^O恇/R"kmAY]ؿ|7B(nNON_~nK{hT!MyLyE$S dlOa]P<%BF,g;xs7eQ%sA.S.u':ݴ֎VV8}&3?*>-ʔ\$VLHS7vWgl^ SZ$h& ?km< ,_M...a///~ʩ_-ghՏ .+ +}F&Qq  Ein@{V?? Fp?_Nu-pa}%1PV &fx "nkk b@C=@uÁ]]f$͇߭]~碇&吇A BpL&057'E0O*aU7ho6/GgÞe2s&$j r`Ƨm<͏$;j퐠w󂦬%̌;v=*pZ=x;:p|$anK=s+#.si[nW,.L&$FZ<N.`=فJ)B `<p ˑ^#I_9 `\PM%UiPmc嘜/T/gQɊ!72dfB ,,vҟ#3HaA@. OڦohOsrq6͌%j'M,ôJ?Ғ>T uMptw;өɜor5fUb? 4. aI1O47*& 8~NFIO͉9)<96j"Meb5vƔU>nsō .׳XouZgGT ~y=x+8۰w`)dq~APSbG5#1 FH/|PdlT>f==N_k8^ƣ-fbC/$v B{gv?EGza\bUlQq9eIβa>&ܣmAVb`q)& [s͟pPN41//Y2G ,Nwfx:G'No4vG23/_\&S;iA6xx.$^(caL؊~:洙\"r/!_/$0)̕MNkWN7u=]Cgx,:̙Pt2޶9 TOPG-3*pl %i}egC"#lZz}EdsyVSjQ u'|{2a w1Eo[ 1. :">a7&aRH.FR`ff`n8w5EM…!|ە` Ql=zYO;Ne1l"AU |*Ȭ \O#^Jw gL.yLx\ om{aIDZ(|[)Qb+mx@ Grp->(R{ p\?KE1f29e- \7@_YD)v$o801@SVZ42t~AgqYd*W%os,2EgˊC?7eɔ%tҝ,d4V6Hn 1S_`rAz."znwE7=;U WfΕݜbԐaƜp(a#șQڠEM@3%(S@J'^HxLL&tfپ7"6ҳ!e-ϊѐ!9}Ŀ քp (E/BȆ %| 0fAH|PM+lBmjZJf8 HGVEI~Rx .Vo}Zr_^z.Xsa'׀@@/)"\ӖfT쨌=3 vCSl7\0]hbEB!\G6e=D!/G<+ ͪbdZvS\SRD`ee!gE_rO%߯Mڵc&8)>h~^YZ`app2{cue. wK"^ w2@JHp+`\#S8 _ק+ 8A%& =$-"\w;79sYgD[KKohSbg8B[v T&d N!z U\{w0҅ڍi: 5 <͏F^ %tJjI&q|ɣluȈg׵mL1f$[i'dʗ~ꃨvE0[3;:ET? ޽?.zO[lo<]K6s(Wl6J[rA\uΐ۩o3P"E6wWb$ lLD$#8=x1<)H J0Y0"AwT S>qi+*8`hAkpSC)W)Iz+MZjFF;U^>Y7脁RǁO:,1ǶC۝)(6!'sQHz!z.Q(Bw&ӂ1*p1FL)v4bvQ$71- D= %|ઐ[8+s * ev#Ӟ9GbV}$r;]k gdil/ITLCO Ys45Xridlz<-1/[7L!@ ]lJRspOgz#'6{-u짾5$͓Z!{ uǚ%h`r%-DAMH.m2%G #oΌɈ6<hClL$Ɇ#,x4|:q&Iw 1 `t\UwF*_sՑ bbr8.^0N|xq*3i~Ib[q p DNKK6InL=g ڷnV+ЍB.=ݝy[ɞaPD sK 鍔2*צˠCbeo SG#AJFSG%&ɃD$v6@0gHiE97i[gR3 L3vXƺRdLIk׷C쏈 y*]LP6lٴoZ> 'rzfYAk=D%֯|_%.C9 F' YBB=s9BEE/'AFx8Q ~uxл[╊w;XZ P\bңX1._86iiv*^QfuW#+ߋpx{08>&xb 7nO8TczAJ8εX4~x^s}^4H+8Ygv)Ҩ(Bm>7NϺL BE9-% ݟ}]7^线}MY9b \{=+|ncWʨ(X hE4h~0{:M >jc nOE3F MEjU!wުI47P)9Yv!4/ʙ7;s8Sn&O5BYi7^rEgdo4ɴ.s)9s בE6 #z͕ͣ"2Α%0b웡Z"Cngqc\,Z\Xe߀DF~GiŸ . V=;6,^ Jm4qv2]]!gRmw.%^jaYNW8}.ĺ1‘[ZbS9ĩC'|0jSH| W!I+pwȳ3A? @&WKN/1  OӾEϙO^Xn2iOssؙ͈֥i[MN'S7ctK5H[ .JֽIs[Ah`W\[s•i|T .#UhT 39ǁ.$E`3ݱךLUź;rQ_ M8YGejR#B'%}G}ꢫ/}a/`Fz FIo0~''zDĺ-, 0O?oҏ$ȪU/ 5(q Ny%MAxf& +3駻_l\MktЛ[yj.D{/k  0!VAyzG.Lv:<ѽx-[JN}PŨlF\ &#%769u1&6[M^t_T" '$4j@>xϓy[ٵ5fIYJ8( ?&4ӂH)c:w;uG^u9QR-^IY=ȼ_1 P66-ȓZs'D@ $j܎{gG]moK|0аKJ$NeeE|87R޷%crحnO#L2ӧ ڳ7 bPDqr4j(A(SMo`bHfz~>+/q2E\KaCvH3 <6jxqCs?s& 6 vv#8v?!?/&"&s Mx 1t\~Ukl)ᐠ8 Xt[CT_-ߧx0E[bi:VVr(Qlq7m`]WNחy G̥ 1عUZ+<5P>9|&l' Vl +3,+EǦ)E,שJJ S0l=p+X2+xm|QT;a's;,DgFd@-!T6LgO 4uX:B^:Ѐs[5:&szQtɭXѳeOɒG#2؉W&J.|OCXGXbO/R-zc %@./2petϰq_Uߪ*qX6F;Q4mXE;|jTI[s`|C-ck+l]9U6rF2 y Ϊ~؁k k`Qk:Re}q4j ϐ񬈔PA}Q] JJ@VObp߲9) F;_)1ܛ!kfzgyܗtѩ3 PirIqxts,u[-$m*$DO~GNr l34,(āiN| 8J}x=Rf7d6R,A5$0)ȯF l1U޷P p<[z셝,$ܤuyˡ<^}:؝YqylwXU:=N>8f6q\V`fϔ6Y3ZmnkWZSӽVUozDL-y~M hK/eqf&wwFxFͩ럅#Li"*g0w{(杶ɿXUu(Zh@EPqGёY۱E{~'2g1e;qQXGj3L@Jr0VIBZr4^QeN ۆ\]Wk]Zv΅攌6/%d?=LFGOrP0<(ߜ|n>C]OI(.RL,z+Dtv$MI{x21lZY>UQA}AT.Sk-y_ !b-*EyvxOcWRNc`&ewJpH |brLX1[^RL8\օ}ʣoH)u#$oJ:_-t(n?ZrJ }/{c$ba ~;ɑ?:8~s?={N ;_Ff:V&ZOYtiG1vbhj}% &w76tQ\#OxvN+RCuBpie:"VГfKd̾8#&{K_ӫPQDaCG}փUڱqz3¡|\ZUIzM"[XDt(.Sf0SG:<+XtugTB71>ĥqk:mGfr}v2\VQfjF!N-X` P=8i=V>F72x p9mB}Q_-,oFI7 kHE7'Z^M߂}o9򟔨wrY>%xQ~hƇĤo~{) wA\$>]7ktzNEEe!I jR}6+Eyɻ‹itN)HLٔf9Y۲m%mX$7 {Y0TQ(m`m5רN` pc--)FuO| z_ѰBwP>׶vvw9'H463%37g}Яud~0B"vQ,t[09VC_DC (;a3Ek;~3󛔁 Dgv#0g/YSdmW[nH>о܈Yf "0* !lܰ-CPd35lZ|&҅7 TaU/Syy5aP,~TF 48)L,b Ԇaz1Q\_IsTVl+J-l m P pЂ%7̰H]G"Aj*ÚOMs/8ZE-M))H!=59(=);p%(ah1F>LOI}k6ЊR˽Lc[AЁ+h,ypdE# 1Lt@xW>nW%'|H3=ȵe>d]/WU#0W,jIWT /?4=/ n{ t ׬K[A#jEaՃIfVb+D9old GẇzV6:O#gh aB@@d^-,BiE5QCΜy]*' 'j27&J#%wX23$z旭<$DE@g^Ԗbsfhsi%h+2^mqjK b,d3)H, +dؒ+9cVn 2 ٜxu{FxUĘ|"ӥ1Ö́FSz @3s݄NZͺV)+V*<Rv`E9D9#MMV{#U0U${E[79! o ׷CطrL5+SNZ#{]S5Hrq̝d:A!74`3I(v4G',0-iK=PI5 n9qsK4`M>SK 9^>.l>@2?2nH%as}9 Wx&RܽC!& OsnAh\Ҡ}*J~S"ID 3:$/Jf:aZ( g_Eʤ |=ZlݰO,JJprեrm_* C')EEx N64l()Л4{{_%!^|..&ChX0+֏(jgWv#PmG.;49޸VOH\@7wG~! s9YJo 'V$~ϭ5\O6I }aAyZr.RSeU'{yT޲OlǬJ{m\ |'FXPZSLDf{P 3wni#j*hCl,A$@ BFٱ?0PHdd%ois EC߳EHd򾒳3Ow]KvՈO_GF_PKJK6_g0TlgX폗W>@s̭1uM[b1ɽt|C[=_|%HGΑ0-{,nW ϵb'Y8QRM&KbIEFsAVNVN 2A apBOu}$dAM<JΨT!](䈐Uf3ֺ!wHFs,_v% Z ; F`Р(ҩ[$` uc_ӪMaQl:0dx ycѲPM2H[~RKQAi"kְSN3SJ D#ae#p%y(a;AƛoVF =2gf.Dw4 /<\)œׯkSp}."4x"7:+G'Sx_n+䱨Meaܑfk_!MѺ_ӵDZ?blQ soH03|ab\R<T_MjhAHAާ?KPNgC#+qEwUqM.M=JH@@ HWH HA:BH/*A !@PUz'HEZ&^;33Z!b;͟9Mb&:2vvaU6*U_%#?SK2mpU0 ~Wa|?I@~Ӱo_=hw fec%bhc4*WSJ)Li{fyUmV#|CWGA~7Yikwa wJ1~݇1WC<7?*w.˵%\Y "I\E_^EuGiҶ@8VLS^#)}(-ߍ^0kDm5Ř}oG*gd9L_ W^bĮN3`#S!`-MhǬ- m V%|n3O"r!Og50$&2Ҷ9e+MzҾJ.FEa$T|L=-W'EB49]fk/8kG.U6|TY?]@^" JQL<ċ󺶧k a]=SUӱtݏ5Oyz}M(kO`V|(k*A5UT#+]2]ҥ(;q-fi 5؊|ؗ2iycR ((̵ ayEj+:*Jloo#3ȫWﵢfk&,Pwiyɨ)ss*o(/fo/ҟ$ꛏ88lö Et4o]yEI(99ܤt7 .c)I{iȇ{tZ2E .ENc(O"ӑM􂞏'ܻZ[ǒ V[}lޥbb34ތj`v5KfVQ9# }aTx)^mj VW '7cڒr SÙMh `}ZMO5wq ,c$)-hHHSyv{Udz%{9 p)2O2} H Iu&B YT큮ĭy߬6KD7ǚVȍxt%eFj F^mʪ|ML9'Wqv#hԢ-`8Qa& 7Ǘ39ي%!)cKoCB '^>Bac=MC=+bL5W7]QٞWt=,-1YH߉PqkKh8άu3EK¯H:=)Ψ< JEi~I˹Or;|_վC\gr+vƑZX굜0!l+Bl9ou1|<4#[:O3)i a pqL6jӁrw=~^-+haLߝagsw泱ӝEA&jfŜǏ;T9w'(n"8#Р7YKtnΧ+-r\B(J搫7WQ/7uϯL"ڻ2NdCc#o:4)io',tpѤU, C?;SYސ* v؉=d\aHFƺl{+3;<.k#e¯`%~YJ(g^TI}^R3]{9zhB[z7sXf(@g~1_F\ez*Rx\ C){Q.Qa2Mlyh«|e޷ꌽyf woxT.5JLv1m3l~Q0 )V::r逸mG9>sPni1LH.8,{Bp˳ْ>te]UZy!Z"4ZHhxFo;8>Zƭ{R-]x"c޽zuB.f*3zꈴJ+FD2J L M{ Χ9M|_{Ѹ I:!rSbyT>11zK(Gfo)(=hdYg 4h,~xN{VV/ LR6xx_OUJј&J$ܳ!xEIӜڥt͆vՁ\09#4浝ٔj@iPNeW$>f|b ?e$[!~7^V{ 3G_^4J{i`ДAFqPuQ!${WL=E6a3HTSnL8/jų/WHgʏϗfFc;^E+2pV 4( zd;3E.O7 (u\rtzbj!Qj%s>,8B>d\cf3p?~J/O Q VY=oL݃7Ұ夕k zsHۓGzNj)<坶mG|on-`%o[ڿ8㶀"/_b`oimfi;Ǚ~Ǟ $_12PN)bAzH7%d{(C`c~n>9>UvWm! - CݤS|^嵺 AүفUKcd~+zqᷗ,^*,~1Z30_DnMQW{IɰRybmMW4(?#cs&<{dO0 ~2Lπv'/ ='Näu"1OsuRu # 0nۭS]7*[w\1̧gNRR򰆥a3 G6 ].9L5b7kL`~I>aFeMR˸̵{U羂 Bơ`~ U ڒ+sGsrgCf}pJ>)ݤk>sv:aRŒB~%8`ƳBmȝ.ˍB0P|ÞfSDJ*ϙWV&EAZ艌MV6o۶'mTJ\f!,ng uXsS~f8<LOgB~>)Cvw&dwg-^C\"whA &+|o.+Y'8wIl}hgD.Ef7;F/i|LpPNrc"?K AJŮ-<0 Y3vQPm7i}nF^K|3xrm4젣N[Ȁ& M)WGIf,3/e0>T5hdqTg/Uh:'F9vr#!] ;wEc?̦ $>أq5 #aԤdJl+M7 7ݑԙy Y/+StĂ!6f2؆1BD@]kB/Xe'I~0NOT Uܺc*/%:q!yMOt`6ݙ+h7:)P/+]|ӹm˶D-4Q):U[*`%9AY9,S9 ئCDJς}b8釅UBK< ٵx?R~ߙ ed@.~v4/:l (VpTnb.>:4|ڦB\\ĝI; > K&N;||nt WNdD1H$%=էT+35ә908_ԇzHNj[y̔֯pi/{c}B UMݸƦ9lۡXRˢ%իť|kscm<'h+cZ :!](;-W r(ꩼn: Zi+ü-1ϨfdX2PȷB5!|\3N>-"|3I7t]E沩 ɞZzk,FsqG3!'87sh?Ƈ#G@o" [}hɡE&@,4nQft5AbV<_6}#"oQgY擩y'RQ ƚtfw)zccgR׃?Uj(c6Oy>pk?9U椪Bee>N^%r7le:҅C1ت sMu|8̴/-S3Z¥GÇ4Wv݂,~*5! IF-4|rzغ"VײɞYe,qI֓um nH~ `^oYFkBle<_#D\;Sq^@F ' ]IWTYâ}+u~e+wn~y?'ȕ fK(>S~S9p$ԟnӂ359=B-m!Ȣ/&B@~ӑ}oJhItg?b+S ¼Ѫ'Kuוfc ?n}|?,][g&J./.YEGzY"3v}ʬ)צ{>Z> u(ͧ0W=N/<Ǧt#4oƷQM㧳Fkc|y/ܺWOݹ+z!ߎxj26COF-n {c>Qt>c7/ ,Ǵ}Nt?H*+ A O3~1µ4"!wg7ui)dJbL&Yg4+VI~L^pE_QρK[NF  I\s% AP\ nn}l}hq?'9؛:XYڸ Y;8p998Y99:Y8t H%3GK#0CC"'K#">"N%Rsś'&X (uD<_>V:m>F=f5CD$CP#"z|}e4#F.QwryRCa`fˣz(%++0PvrV({03s՟׬# bU. h_jõ%rhS _T7kS(WTά(5TU7pfOj$/,Ro!`br|%eKf$]3,(ɬ D‚g̽Ky`BoMUSiHg9J8Ggǝ zrrkmum1  mcM㋋S̼SIQЋ{{}Շ&S9t^%wh`wU`UKL$!8b9T^eSS@ /w?F<>pDp}?o8RbC|.ޛ%;U4W[-WۚBSRTf8gQ q[I0'hȖAmc2ta/GSPQA0ʯ)޿|aNr"Pɗow2=y\!lG¦]Oo]5GX0εs֧6dJj\cb -Q@crσ6 DPAE7++ص#sV!d0|1Ż} ~.Y">XBr9! -Wᢻ]g:z/Iaпfx1e8M# ,gJ=XSi܋;O0K^ˮXàjȴ/hÄCtYi`!kl0{-偡`ZT~D_fn` [x]3~ B2Y/c;]}qrK}y}cc#7WPf'3L6_ߛu X FƆ梜+Gi_߷ y/ӎ"X_n9S~/nQV%w~swΉo*j,ĉ{Y! ^^^ %LK3G 2`B(IzB)pcHq΅ o>)pbJf U\r½rFi_00ZvD8Ig;-Yt5l2ͩ999l3`¦ gFY`)]55t+YO[gbIV-Hhih'a3 3C(c"@x7ztA_:9׾CHjQB7II3dGkriq3t=lN΍M'GM-eWSX эWLdE; '+K{y0r^MT4#ʆriQ\W-ss_>)0nJRU 167 0KsÞgtcd=t7"qQVKnꂰ %^R9䩉~v xU `.h|u[SYۑ@#BO7oxET\0õN@< fIN'`f!O@c /nK9/gјq~8k X<Rr,4cֳ6MeCDkk H\:2S97:O&;K9SAp%$M> >+R8Lz-[ H1f-BULԦ/ ]$"Y۽+Z("ef8&tHK|([TZowAZ%~zx h..) AL ;OfXZ G 6!"C fN'%m.̔f$+ǚhN4pwMCdl,́wֻEv8ȕсO)z8$gŨRu KXPk~E9?r=Nu4pˋ:eji)\k}G2 J#ͦ}u76㹄O1bGoŸX(9fVHs@NʖFj;j #&mZ$5tyヿtu*tܱ?6#|SdKkfo#7~%!87@Oh#rI5Dr:0){dt|.W Dz8+LA"V5Hxc7=nJUcVu,nA50MیB2a_bo0DS/2= ՛'rf [h05-@M Y>U>oe*346%9 kmiayN4ym)sXWJL FbP NjR#}8K]TQ/$qp_&-rEUbתJi} %*&1A05r\Pn{ABn,3sfay{n~V1k8{6J`͢|qDK@HA-:P(1zk$|&p2iÞH:6߾ Cj+Oj:JAD?ҵ0 F WI8 LYHn7C< \UIE7<=+cvm`12JNmjhORRxJ?I7W?Ψ-Z=d4S0v> dyi}[!(b6٬ 9a!(' q y^5Y› 6YOίH!cpT~OH (isv[ s6|m9A}{#wvP irc # /rbFf&,Ҍ}F)=쓘*T' kqw3B}LSF%=q3A \!?4#1}!5G`Yi 9{ \!_7tG؝h tKanieW}ϒN%ԌBI۴<Ġ>7QM nn (EQ]W_\\{?/V1+K ܲOIDx/Q܆4^ JN\;/ը=bbf(Aded}'ڨ5"1" ~-% o<5gf-%rnp[NJ()CChޱ> uXso0beG(GR,Hh*b&y,EbGn՜ʚ}#G{xFkp2=%  Px2[]5ubz0)Khgh pǩ͵یOrT7{`s?#;}. x9M vJZrXOa+AWW].Wm({ pQx'·ս)89kEo&qn.zSᨦV{/&zmpF:z!Y g2ZCf< Jy/(a# b2sE[>sk:t:Twr0_<kdl(}պ|Mˀw. ~'<{D^^o'+[.}>@Q B:ЕGt3,C[V~|ZN0 .=i*czѝND\_rb@%9Z^PHҟpT/J~[W;y(7x5y>E ِpIV 2glؿFC8uVDdPq<=yl_wN'e~r]¢i)DDd Eq%0gNRTH@@>95lz!(#92u!J q1Fce&cF]{,G:G%#EZ|'jPrR%! zacPJ-yـ^qV}h׫*6IfT%|Y&XY~E%lQ *ɚfD'£?Uytwbe_M1>DttTD4`r龺&pmzM]bx;OʗJ@6 fdyҡpوP /Y@, ۵"؟޷X:ŞOxXw sXP^xZo7xJI8^L9^6I_u|IXv,=l,&88א0cJ||[餽7Zgi"rɺ5Vb&fUu|[{ !"1Inu c쩂` s7 {.!TQ.O.hcclR7 P!kDʊu)F{Y3Q''E:2zdqXHS lKSLpcޞI wClk\B [9dz7jep_h_X2=[BSQz;=F":WV'U][ՎG5H3ם壗 |7I> 4U>jN},]K5Z'F.jvze#V4L0&)pDG ywy\&R~F!zر׌Wz19W(;˅>w2;BߚԚ HsӍş"?XHgG 9>7g[84#:sP)`Qs0DCJ=yF!IJ&FmMC(N+wblqfu4C)VWצ,'FI,," $ȼcoP.l#g EݡO:Ƿ [wxZSܢF*yyEnw!iimzfUcmDFkUXADs%[} {b?42M9ʱ@ARg.i>/9щA +>]׻E *inK11=+tW @CwSeKy;222p+KM'lŕAQY^/uwe]_ |#ȇusۦr5y^-[OR/(f#|PU Cz_>yW6vZ٧ Ψ?SM /E+X,5tY*oZAj%jEOnYqbb ec@0ϽPTcJex'ìuܾ8P,m|+Wu.Vʉ$+uVAquIGl0g,v|i환ZQMP,ؖ;GJBQ-R5Nd#5ʤ%!yպw+t-=#cLr(rIAJjh!"s 4dYyF{2_*u:ۙJyb׷R-qgSgn[) u/GzX<5I]Bn!͍(:芘h@=U'^X?T ZہCpN3;79zд\=Of~:VEʆh^Zzf&~!LJZSӾ).>o9?t %pЭ@֥[d"(K1Bԁq2E8 +;rl^18akj Z5C a':qQtL0%nIUjR(&8YݶCa܃R4zxtxРga Uuj6]z0n ۑ^]6^PmCdbs#7mۻ(|.y]J!ޯPT(W'+' iތڜVP6u>Uf/5@rEx^7~2,C˱Wr(8Hߣ`Z8o=[b9GQ "]Yjx'uz]Ҏ"7#JXQnM<\xdg>'zˣ7A,=J~pK%ƱQ:捓_6T bsY,w߮D3>zd?)aeO=Kh r :aQZIGI'kʔ0-*'0Z  DKYl ?P"#&6PBp-oH =5-C =ϝ H3A4&:Lf[k pCb\u{ GKIcsLqԼƺ8!OM`=hO,X6 5FbHy`Cg楏 Μ1X6oA>wqn&|2E ,UХA=v77o`}'17o%O͔ :JLRFr%}q=$gBQiYMFITeŠ E67(^+ ]bjFk}R!>Aхd]|E8oi5"t2(FDX< פyRḙvDV Oeɡ{(g ړYCryMJh!vj`F*I}-b9EAKy1?ItK Dє %=zk?ÙV$!3dHw*RBs`[ Fx܊B1[Elhua5#XqyۦІ8=pi%\AV6>f,nٳgRt " l}T=s C E,Y/TjNJW1=h\G@5E }>G5 A `?QM@\oxcۀzWP.ib!!1!U^41&i2],N^PV3a]^p;'.x\tSm2A"en_Q-?I7\3:t箣jO> ˯M=LFH}t _ +|SR}}VBQ= QB@}27J8m3- $cC"ww2CT3{ Lhm5KX<b3^]&(Nzbi_5,yW8g8h-b<AgަNowO? jz3\90sR~.jx0 D9-tg(g:CTdX ls[072t*iB\˄TM'ܹYrkꥡv<yhZƘ*>SWc)%-7}ݽζU0Ϟ >XN4d7qj>]O} d"; }t5kM3_ Bf燼刃ud!^ J!<0})m־ʐB/ (f}9}wǠRP km޽UoAK{,VlRX1Jdž2+pzhJ#\_YdQ^U|."u u-؏ɱQ0}ID>֩/>v>>_ 4ZZ?ZΑw+$څT+Trf= &"h"Ȇ,3IF?-uq5bL'FSE`Y}Y;)j󱷂m4nCUW :ٍYI ߖ'X( @J#g[k :*!.cϞ5TTA>TeQ#޾ȭqKΨc2Sh6hcHIhmDS`[/J%+3/U4z7 k3$,d˰12heBp>?J6aNVvk!;t[G"'-fk.j/r~4hj wIKȃ32e\͜U@?vzW:4V0cQZU$($utY\ސ)DS9_(iqpy <3__У{.A"oZ+``&Da'zpV_"S+Qa`^a/;)qn֛5{ea cͭcK'6յI:%)y2:DI0NYԠޣ2 +y))>J nv粘JOSۍE5L6{&On'JAQ9\G2?spcQ͘N0ޙR8$[-J"OP,7fU5sμhʪڀi`R(lǬǷp/?hVP7C]eԋd,$fbb7لž^yVS0!c'_G܊{+>'Pt7&l Xz^ $*ll"76ڠ]kp¦r}2)cEz ,'V occ&-"O\BMTS&Xc4XSy@ *yLߘ)f֊ ѡ0rN1M%v1v5q/jgt?fiҒ zTQFtVD #X?xWLU^TNӸ߀ap{`-SAkF `LuٹPvO|=8^LК d pYx41.JB:?p?f{]{˞m>YֵEQ07,T1䧉E, N8i1p2%ϛ{6m4gD}8\L:Ҹ7[ urr$󖱒=ڎ;HFso x迎9n`9l`߄߽/a4ѢB8&u@9 (q@T`ʊ@IBXͮ#B2,TuS%[ﵕYŘFvyu兕ȇrr!ˆe :=0D̈gSz+ǝ~8U5UuCqfiicR Oog]/i6Kb4OrN4tAbkm* 6X332.:-Gmz!(QJeF? F6 I2I)>i[lz'm(|b۽V07&>wV4)];ؿ]a"ؼ.ld-;7aarm;7ц;򤺠CZCt(|US/_U(?B9mxQJ[iU6'p@oaӶg}ULdՋiV$ec{ z@YJV3yq7uaVE8m2R0 R8Eǵǵ vfq7aG' ʎWE[V6h=ʢ28[D✢-<"#5!mEnPlO?IzDc}kXٝ)6;.E9M#tCJDj F!(F:QRWb|4&3uD: 0MbZ2B߉$Ou</"~ dXV j3zvV} 1 ΉCQ=G60f@X+mFΦ۩te_G ibNW@NmVדQFN_1/%^o 2?~-JVMvszIq7Fٗx٨ю6{j>́M,S?"rɓJ%K49ff,Jrz#HM]Y+<,}6wgU52F嫿͆ 2Fruf|WR\R?{;9`>Xd"ܜ)>Lg3ѽ@C 5 -;a//G68K#54HcM1Si&pլkf:L'1uOO,N{ܤ#KM= !!fIݢe D=(Sjn楉J'Vغj,/܍kE+{#)kYgw05Kȼa@ivfMg]}vlLAs 9gwBhG (l9(Z3S=]~Ž*e" A2aQPiiZhhmq ;.ЏGK#TnF,BS;;+\Ve*}?<i9[Ҿ%i(("4/(rDz#&+qA$|m}?Dy ܦ0OΩll 6G!|{Łlڊ/,uU׮ZWW6jP_& A#ahYrö1[&f'J aIK5Um5O (Վv-UX :[󘐜ذlQ20YFYT"8! 0} \w 3`}Y1h:NsB g! B}ޕCit$ءLf=ߟ~-]wRc?AQSh|OJe׮\s+2~ @ۨd-pdE(_+ś&@y5%۫(W'6γ>>|^"OmhHW!vL}Kh+滹OxA=8۰(> (Qm~etj. F.nΦo7%w /?x@7f/`ԇQ*q}4e4Dteմz]wzN@kcd7 _bKP݂(pPc0IMIX@Me.mF8ۡv;]UR gF#qIZCJo<>+̠Q&A&'+:3Ȫ _,*iao A@Vae7ȊSs\{=nM=/*8ܩ5:_ԑ^U+/O5||9Mlx:TxE[RS =2:v2ۆe!? zDS ko%#i\Ŏ~zRf_xTTKcū{nr`{^q8=-U;;stPƎUl7;wUM~"$|Bw1>ϙ&[O YnkAbJ|$?}{$~kShmBkFG%gRIOE-!E͡9\Gi(If؆ Yp#ب1?1Cwoi'OpqrA>[?:{4#7B@;N#iidt*-t@DKi x[9u=x{R\W=_^#f➧59}YP-\EBC~Hɘ(gdfS.BṂ'SPe /Tyu!U# Eˍ7+BLFrpjd3H/-|" zW%REZJ]zXp6 ۪kDRrtcO cu:Yq$2ЗD(Gjq/OAlqĝ:u 5l5Hx^ȋ`Ll䧣e0u+12bKJSUsVc|"o-0*[UC,y;f.>RUU7}iRu}qa:Qb2 PPK@) r>g 3D&;xf7ƌ-ggV9v&;,Sr $?[^] kﮇۡ[YHXtb`Pq3`bbxڏ%x/E5x1 XB1I I%xZje @4eECs1L.ngGGx1g¥7*X.+-Q 8E &d<81Q!Lp}ֽgMELaAL+VShPlʐq6Jn7:pUu t1v I`]7DqEx23FsmnLE;sn0o&z1G%\8[]O seMc4KoO^T+T)},5L4E{Hd˲MWJwCwOx@9iĈ2 &)hT ڴeȖLwb R7p^kF]YuaSm3&P&bW"E4M[t𭘛}}{Z .p&DXY~JDr?n nтot/Ѧhw?R1=jn{PG@鿊l1+ };U&Z Jpѵen w'7|G&'|n8'UVj% RY ex XA;BվdwZ@>hS ϓ)u! zQSb{%~(&rC5NIF"}fr}001\ ^sM-y=rįZ0FU~K4EbܣAIq Gu!rJP.&)dyE>`A 3<]e ߝ߬sGn;͖n qqf *ރ64wOg2zaUeso&e"1~~ר{F_6:ppl Uo%mܑi\Y! Ŗ6h5L ?MWjScrCV4 ৈ͑ mFdϤhȅܸV)At_)J>usJbcnaq=yamI* ؑ/hfθwuCW\h$tCf ?"J`,AiF/`6b< EƝT[s~ixfc' HWn{4xp>x;CfE7GU<fK?+V}ӍK @v7~ob?YQ o=04߫zM^C RhZR&Py95$ۡPJ`f0ƢSI/[u;mso~K-~)<=PY~\Nv!zh%4hdd]D]@4\x-V>dUs7Tީb}-1piv93-ӲXؒhy+{ nhI.8Xh7YmFM*c3_4LPDam,/ {bR=%6D(֧g)y3  XDLlۺ)t'ԉx&+ik_ s7f'yw?4/'0v61/ts0/2ˊ8iz[./7R7QHH <,$H%K?#9Ռ<0|e\\bB(9 ېǷ3^< <`xc"q-OF-_z_)eS]/H÷PE ."ADo ňxkQg,r'r}h*=5fܼיwxVF#߭[>ig8t[:nnԿS03(l:c9ek AvQTc01 3aez_rS3@T4bg`dkkB[?!O SaXGU vquHM\η+kEPAsC++s&R26 eZ.iq9z~%U_[>X%38enUۙQVoghpi5im%5rG[SՓNAT/*(Q"4cqbzL1;78J,'~Wh(sdsi~䲦ⲶNV|3d-ezwoYE4 7 j4IHLuzd :sۭ QO<ȵw+ݥ̍IY5UG:]t< o@: F p  >ni=#Dr,U8B(QlD1XZI%BFTY +$ZVkTRxכ߂W 4TяKHpo$U"^RrI+ѫma'ٓYn!>.R'Saju/2K[1TKnq~wy72EtLvcIbk<|0O3T؉$ RARx sP{OgfD[U :U&mlDu"L[W9n+%Z[r&ԅ6Ú"OOu4sWju.6?ă ?l:u6.@V/ nAwrDO}}PXI&1<*>adTe4vL\D] \ -O[ nȬnhlփ 03441d+=M7y& nSgCroލXl ~/"ώgW:Yx\Od3vfntXlZdW)DUÊg/Xр5wEwX9XAh#6Wػ6${>Y)H̵,wV =/2y`Ī$s^8dqoH7F?7%T^{ݩ5zPSw#B Ez6q0F6l/:<:wuGb Dp}' 77~9EuNʧ໻bX>A1lYI*cYWr)`=s/A[ʨT#\d+Xl G;YH29@T /8SD\ewlӟLGVKj}KamaMˌ\c3,Ր7[M6bFQ0 ᓳs{H~O67ޞG:ɚᚬt@Hoh$ZBh(͏ڨ:tQo$,b+sI`bKW{d}E2 :)`{!;>Ҧz<ggdIEIm-P+i+J@FBo?ovFM/ Sw' @yZ /JEAA,ܳr'6GA b^X524F T1nk.s7Z;̋]oF.^A= ,J `7}\JUq`80o8}&| F'N+ r4A 6kFK_'s{Sooxر_Zez#[qP=<β,nP1`=_kuX8, pu *+/*?Ih< x1t̐k mZ7z'mI( >2 4Gʹڦ9cc@~.͒"{p2UhRoDN1# ZW9>&<jJIڠeҳL?Lq6&1E~yR͐u%T ƺI|8%R~=qW; 䎵&Sp=K1Tm&B_!ʅ[AهE><|&3aZKTXx/ !Qk|+\}G8J䴆]24СšuS/\F1(eJ/'b'W(~T'ҶX25p\vC5 }/I:yeFU쯢/%1S;_=(T>IFKZסb ƴU{9W)NEk/ Tx^3I2ubBK^6.DT_kƁ5 ʛRx]`XRVdU?W%g,W]|`+ߏ+P񛲺6YF{bQi$25Fr a"TCBҋ:d1~`j<0uP3wX#g,P;,I~O[T$i󖔄mhrK "{):@e#'a\VƩ}Z _,Acxެ% w#ƄGZ:oZ>r&'`( _.%#ex:e*l]U,V0ZL=ȋ fV|tcM M9Hxh S)p1>IJuS ڗq}_~!]5X\c+8QrzF%t\`B 9AI$0މ*|dziJ(| wIQn=rBUU2\/iuROm<14UcUqm|jM&sFkxR$vK<])BнrPbo[۷󯶳1?YsX;EhÅ/# "= STM|l53QF^L/a{.Eͩj7YzSX{QTXl|wm6`XsXBX5f lQbfVg\ɝP×/~د88% Dz!@jŃ|J.#:D9ܗg1?˫-O/uTx8sp,''2hL*ry)KH 6𼧢(2k6qHgOJԞz)s@_˗9U`r@ܔu(u"ssVK!:޲bP\ZZv2STZ r_!VTL¹+bTM1 l !(V b.t/A/hwg9#_7?[Zq:KG;9Th պ8{3܏Aj߻1!s㤵OBp\ rEz 'Ѣ*̙`js mPWhpwL/1RyYJtJ8>uZ8fIJØ MEM(J\]0a.Zn+pf*Y~y̔P8mbg(j7/RP 0&2ꯗ ];0 ,楁 XKWEW%G$\F3E$9?Mt)7zٿ4C'8 2R dO4ܳ'aW)>?_gWc/Of{k5G!o!0,CQ/2gGAlMQ;00.!C# Eq:fCdrAJ><9;,D`xJzsӬE3;?XgR?{ޮ'.OqGwr(ܿb RqlLGxmڴX]*ΪLR jSpLYDDq .\V]?T(_dT罏$eq z2l~X~"Z\eDGg#ad)䦖`MRWYBЙ <z㝎5B{A\:{~=8-Wv0`N\J< _bb'9ڛnF{/tcB.現DSuVF +Ͼ9_ȴq؎5ĉbyssmI2mUW!ٞh܆ ò?u5^Vii?U|~ zu(m|c*I)r?YK9obzfYzIMun{(8S/v-u=] >96u?Rh ~TDGu <-:e uE2,bHypma5?'Ks  tu F>^ #v"wY\gԢ ;Zs;mhXoj9OIjo$p ޻vtHX*fM4$8&<_y2-Hʙ/ʛ dEdN!UFS2X"YEc<E0t_SlqLڷėY%*6-dO{Fg[V]:-u}2`{g7$d0sTz }(e$ƕNp#Rq HazH{hx&SXooyοyiy,{_Ehhh|&m( oe4V0¡?WCEYfᵲ'?<잼WY6 {3%3zn*n9k{lfmךt -I=hkݨs#"fe#A+h]SJ3mDccC}1I>)J1*%c B1hq yd HoPTPpi\_3k7j˷+?qU+5 MLnM&̧gӛLӦl ѡ4UsL/S!:_Ka^5΅PȌ ڙ¨S"IV:=n5HXMƗ]N]$m6;/[DG*F0V'͇sv'<,ۊHqA6|V メaOH^ݚ*!5hkߌˍaty>jPY+6pZ ˞^N.y2 g{bpf rmˍ.{# ! ? F-'l* L:DtQ q@vw+Bb~Kq*" fhkP b~ U:1m֟^m*mg)r |3*WB𳗠BnߜN]Y!sMHWkHcO:(Z ~5owVUY@Z^L$.r#߁s?[DT }dw-E?nfD_aGS⬰~[ Xͥ ApoBf-G+gW]_&R|nuw03خ{1T`E+4 ~wlM+4&י4Kgٙm5qV䲙+;MRt>=j?*ɩSjoI{|EB078AapB)d`u}~΢Q|qqx`<69 &(J+7rnt)a|_KsD)qV\q6$IPuE>h2c2N+&}lT}9 :c)ډM&.ZdR{Io_=Qb3)R9Ji.LQsvV0iN Lm?s__}!p&MNZ]zo:)"i5LG=ވF[p )ʾ%hy5O=ks,>Jcw/S(ҋ.xe8#Ⱥbll e͇%Zq6Xؼh;p%w&㱾I@G4 oPj] _zj<?(7F&xR0X=-J}}d_љ҉Ej<-g#?鵫3*}o@t_d_a9?_'n|wVOo{}? €EFVmZ6SoRjd8l;X=Y}snkh%vR\o݋ )R'0\q_ |ʥMboggwnoͿxn%//69G? Ղyta! aoTXNau~*QYN}%^JTUmUBm Ȍ;ч8[?'?i#3,$w7ˡ?*Rwg*" {ᄒ>~VMTGRA4Wbt21AڱƲCL\G==b%F[YlY/@Ѫ_qvs/x +!\/?#!c (AKT:䅫ŘZyTd_#C"bH2Ne*lw'_NJ)FՌw\edH21$I`=Y=I;mܬgi獰~Y37O˒p'Kj]:>Sex{-guM0@q@(B*Ԧ4E좊KRd[-Ŏ䑊d:EP׏󐞏RlnQLKrclplyye!so$;Aٿ#& R ɭ'.uF?`oܗrHփdj*?5{>)=}$Ȭ~<4ƣhip513j`g*Z5#;﷏OD}Ж  zq\ONb <*{0ԃ=p㲂>"u)I\"yRH톢Y]S,~;;mޣGAn$̰^ ?N:L0즎M~| u!:{h^}`39f%MٚIAinl*|tAJq2ߴ_4IavBw .s '1ȿex+Hd cB%Tzҥ"eFa(Kތۦwo$[I}pv/A^؁*Խ2@{}K%dȵȕf;,f#wL+h"[ )&l54NpY?]S tAhf뀄Oa,G nz}|?<2'&4O7)znw".-1j̚"^d_>q 2@|!9%h`2P5CڦoOf u,ǭR4٭rD*Ë *C !H4vpλ7Lͳ>^Vv|>S<#Uc4xܜNh~e .[(`?8]# u당sϱPHB4GaJH ^{.+$xU)qKp1r;Av\KPD;*N3rP']&s3S@1PuU,a/?LtfsBh#=1)VWԉ+lv)@1ɼ\e.wO󠿿wR׿x74ޢN V nMoGy=M";Z?Qv?%MlD='#JԗLD])Ntc:Lp񱅌%$OG҃31&Ƭya;.44j0y %8Z)ĶNuzf?/4WRtvx)/(?v;3M5k }6HaEK+Q#1xZ:<y`|\ʐ9̈́bx&V',b +J D(Lc┌6#6 y:=)L@| OmGr;R0⛋GE혪H 387 ~<-_|+??Kw9L\Q{ #10 `Y^\ě)ex /X8Ovm$xi%`X9{'h)}4Gҏ/Gw|ef2 Ք  yȾºFcgɾت1hNT4ȆWXx?J{VQV"C@Y W]䄏&ji|&{㟆Li҃QkϤK/ЕN ݕFI \U#1yo=%8fپ6yK'8E㓕$09(4-f;{?h!f#LU"C2q78^fʦGh)j(nn5\ p HpUU:EF]jWnڡ[a )N̘Vx`7+j֟X X ^Ԓ*bn0͒pkchT$z.qlA* Duߩ 1o.l1lK*-` @rP~1cWePA$P# xј+`]e7y`g`(= vbRO?.M(d? AY@=KJAY@ [tFb,l]e:WH ܧd?fr.O+N6*] NZlTpK.)P~?鏆q@o+e]7P8DSq!)Qd] 2% V`: doZPFYı 8WwȀExKY5$ddi)t\ w?f u#㾿@Rt-=68sk9 Rp9fGV˩auO1c"Rr `>D 8*%NIFGaI3eB-z |O?X: I> s̰.rLrU^ P _da111*Fi7+*u‘S Fe;QBc G^K>]&`;i=g!صQ)ê!( ǡ^o,d!T'XWP>1ĽZmuCP5S(.=O(=!4K"J5qx-ZjyUy;[`>Ĝ3bKkh7k[]W\db,@j4W'y/L>-"TЄ(E5S=iY,\&EG)aVB%A'0T0?fhH P&oRs__D,($鋕LؓcV-=3Ҵ㚚`T(#k WF]Z^ 3T <% ٯ=lY8;ǡ摧uz8p(ֲ wt;&&Oq/p.q'jfཾ4ל;^9K*5J(X7aB. iQz-_&PCN,Yj jd8LsʵdG.2(_z"PB\VkKUZTХD5ZQ)/e?Iz.qNbuy> ;85PLWe]g૮IzSA;2آΥ؏u.E{Vco C1t7JݍtH]R- ) 4Ҽ~`8{uyg \Dĝݻ=i[{`x> ~O~I ^|3YCtk7 d0L1yyÕ6a$YB98z@&^9ԝ1#ؠlk[Vu~6:׹O#AEEO4x#xr+2w4_'Ћg;UV3 XYnѪlͅ&0rBzJ(IHLA矖FgwdzZ"M.Rv$+9*:>"2Z{ypFyBO4?F6Cm-մ#R|T3SIÙRZ?s{^ZR}iǛua-8E1$sw2 %eqWřB ,* N^$[>bӸ0B;`OR{cnUX=*Ab)޾L*g 9.:rp!RVK=ZNUR:=> mfqۭC&-cPc YGH8p]|;Bb)zۜLR4{Max5?ץpɕ`N ²=+>NDcĀexχ\k?#BSf&eu?uPm`[W!1Xi,X5;./,G阧cu^W1^@?O4>Axp\{n+İ&P3ץGZ:@ea_^ l`$N>%9eGQ|53kjށ:y^iK//Eۓ~u7G&ח$b ݆K߬๾mrcEq<cjIm>Sk+a 4y}QmnleUdžM2eeԃol<@1TQ1ZxFOxg'Hj: 9җhRZ&w)9ų*r( \EP*֣e3* j-Ch+g8e)]dyp׭iִ`,8*8юCn8nsWM@S{w߿|oθԜ0( 2:JTTx8"Al9'Jv'uy7k % a+;rPQΌ+@NzgpO*RdiT !4(`K^Rگ B>)!b?.-?93 CBgJ5uӓ2AT*!|FkбG zmFዊ}3OgfpUxeiDe41'#9>(ߦ딨_@N1sء/SpVLt"k(sюwx:EjSiU£Y*`r'IUd*UOx#ɦ|Wϔ:)6,,MgG ;t%35xK @8[fƳE'(,ܲf 2#S[j &C$F_GF|\} c+^T8wx bT TJMUiH.H7PA %qp9m-/#Ŭ {)z hw?o-yxfLd +<OD+~Dl۬#3) QSA]mϒŪ?DtJch /Ƴ+]YʠuFV&4KVK7ڋy 2'k[~tWut\e bn4!t 89:Us<ӯWK3~a7`m}Iݷ^ WmN *3gZbg==_e8 l#Zwk v^X`#?Ǎy"LnK6LNХi /+fsU(ˢ_Zdʥ .C[?}t92~9~ Qm ~_o0JǾ]뾖L2}ֱe,snW|]Q S0LZIdn*g h,@X}˃^TrJnIle؆~f[Z~t=MW/;Fz˿^3^8! ˌ0з_5WsKQDlsP%J+J ْ5H X־h"[2rI~/LWEbbk~B&dXI`\ = |0ԫTpS ݹpyO-i޷ zjqMS髬`s }Ǜoa707)/0[M(_[A0y#Ug˥x[(b$5'Ga,%M UdLR[Oi٬!icR}~ZKWk4Ƽf27'zhҲ.9ӻms nįS17r_hrЀqzCcC]O{G tћ VQNMhEJ*FOKWۡvPQZ۩'HlIS0U D]aFF%=?Nt@ڬ>`N&n^-'P6K-0d(#%7HǦMQ#mhuO n i6HreSKC8TY͂rZ`Y5{ }mmlE<,ݶjs--|g܂\0}`j!q]mR=gvjvQ`o&S2KT t_:+đ7J@__ِ_%Rp,yâ|U_Fj<\X[Mc̿V*@o P`dXeGZP)JMCL؝ffۚ( Tі?ңB.y<c hI/8Ieg 5Ԙ[b<#F򣢷? |=7~:vҲT't}tC؁@q!cո1(b9.U2}\(rPm`,!eSQC_Œ@c 'nBu+LHk۫(j}{WzXT4t2fSGcFA9AO4<`GnYΩT~r'I'[SuL|5=MBlGmcpUE>pA9.\5RW(+d&c9nbvY!JU/rEZd@= ly ZHi ,]C\o#6X꓌~~}(! k1d܆mvcy@=V][`Op@JHTyF^4=jEDM ^H󭄧1ᅨ ?h•,ś`\xCE=psrW>^ ΐ̐{됴\9zkR. /~eY 7z^@\j|1Fj+A@I0*g8r82}A_=z2?f+ nbs43#EcZ?D%WNSV>-V]iTv b-h!LrH ,rq?`[זp)>hJp;A-Rj/ 4$+ >sZzQ҈m<[˥ry/ ZG>*VM3\C`@fOKDMJe8o 27 pb?kDno\e"X݉#%p3T4P+&C&^"US׷i]QET9}3H9㜸0e|xN8!rj p$I&.ǹo!?c))gw}MI0*H%&9Bb.iQC_QWM@4h̉JLUGrd0e5&-Ͷm/N=H%Nkj i[s^}Ֆ\h0FO8W|8a9i&NkL*&c i|K%MMYj%a(iWxFs.$8%+Gr_"Ge?lJ#GS@F\qtx)H/B)}u08+鹅'E}}2e*Ƞ0pll 1U m벩TݳO|U{VP_I]9ͤdw)R#:"2,IΚ= hfV^4zi bs5ę?%-|KR 2X>T\N"YL6ۉJ~G? {D&G?ޞqnk֚r9w">d{H N;LS+V: ii1+tr &?_ghvb;[Lܹ DV c jtcuiHY?YOqb{4;=`7ϙ!, h25C [U.eBwH(%_Q6 # V/$Rw%<={^F ̊>U{X$b ]7qD wjԵ43lk K(`|cVlVD>7WWW;w6sI%jJW1Kbq]oz& 팞S7*df[B)~6p-j2/}yXdi2!pya+C@U2ַTA\%F@*icJ .r9m'|#8M&ԉ-+ib|QۋD4L^n8iƃGeGMmjf[EpO.v)ZF'VmY)! Mnt<0w :Rm@kp yE`'ѩ!~수;8JB:;,^@& }+AaӶ$lOT҇9kb Ubb2w'lS׉rĴ3IkHИ` "kڕA / "5J, \o _DW<&ҋ27C2 LH-(i6j=J9~ enr\+' uikI@ Zu.PRY4^~欅'}y<Eϫ7Ŏ5lj) wQubsYPv>ԤEQ]uwC]K"k94 Ԏ}J{#9 Zk`KNQI2!my<ٔH.6#)dNł-_{JL<9)ؗrG_J V _Em&Kg-UԆ8 /pݦҜŕo3m.QJtG@ߴ,S X!<;HDB ;\D>9ۂbn*z?b ލKa^ľڎw̩3Ŗbi@)G?DŽ%&tMW}vuw΂$+t[,j&ZCBXڤչ_-  \O-Bmi| Rz@I΀E̸SП ^P-gr4gP~UjҜ:>OZ;\Η{^HʣHs?aXSo4LaI՝d6j7uX5u3Tij;7 Uqv>d4FV&o9!>%yB"DDWAf^ q0P eH%T!4mp[SŸMWUE:D*2 q8"4!}c MI4u{_$ѠxUp) >$;./e8rϬ"(Y6%)Kz~a`Vx׏/ׇ^9>Gsc ^4Y6f,6E\0s6By:bolXq0-Zg?"?|%{|FLmFO{}*rJKAi~m̜f fAjLT؆(DydSXt90k"Vz1W|I2IM^-[B}y6D򴒱-'mA58!IW1D)|Ȼ>z!'pc)7gDEuwR;D[_nAtʢ%["pzХFje'z\ZasaQ|%c2\ޕ:tJg~k4r%|}>mgʁØHmZ hgYOjkhj+o(sxuNt%] $nk /nb z~3pbNF| o-yxIȿLZ#l7 ~ 40Y"ՠFx5QYu{e-цD] O_pk``#ioJOЙDׁ>+'P@^?:x}ZĀ|$-'DLf *[Ӻgv( rعj\5^?sAlEk?荒w;,@_X]gE"į5CoQ82rdLݥޘг{e7m\ZZ旹UWP\ ^^vw.d4v܍y~X,{hYҡ3S NfśH`ıg#fN=IcQ y8}-z-a;˗j-&0:vEljR %A}Mg7[++擓sxJBBSgFnb YºLKVGޫ=ER^kzwMf&I2888] Gi"!զDncLbj!Z,u0߫;㮭~鼉@j_H s&ٳDp0|;]q$2Wn2:WsXd]֑OClH?.5{fh\>7~,ԅksc3+_DN"m{l(ZÑSXQXL4g[Zpسta#lz8^z̾Yxi!Z{}\)7*l͞&)TN!hݷ}*Rtt똮#GҦ]p4P/9ef>꼛 Fqpl~ޡ]k>p{w7} ʺSӠ&]&'9<{=IG9A̽hZI×;j¬wFg&9.كKt uBbצ @4[F?ν^ne݄8 gy tlx */z&:[~xpܟ9/N:1\.Lnk;#Y JUO}V^g甊 6|w xu?LW.{~w*OMAZI)O0! :#_o&BXNaEQ$ZJ Al[^/\sZ_/8f~>EbR=\, 5%**onO Q:(EYz%2|!ΛXԧ\dnh BVW}" SLaс+{-K1M(|$7mQP,ЃMgnl>6ZFi"(}W>:A4ِY!qZ;x q/(a<}$twhDG&f!ߨJ@Pk(wtPx`ՋtA|skFsx9]lKL a0TV~^ف1V_x @k⭡/QT?# +,/?[%DA݊ўwR(n?M7ʄQ+')iMj;;>)|F΁|X"+>+&.A KP܅5(q)b<#ÇYf-0Cr50RǯV"h&oYe{_j cgQB6l^+(ݯ"] 'Z}*|{;u絼`#ZO|YehNz{;9;C-%b>}VyTRAGqE%&T#2*gd;:boU0Euxd{o;IV܋8fKsY"Rvd/Hj}d:3!Zl_jḲlepU>V01c`<*m?pgy~/"kl{,@PM3A0t4;W;L5f<J* g$(P l,: Wx@]y>*(, &bTl$,1ň,6>傶]xh~sobL߶#+ĕ/}U ˿Olp^4E@.keEOʿ'gewltܺG a]Z)BcM*)LjkT3`}GPeʿ{>F9 W.5i/RooTs,.h(+##*2Jh>]|{bc\0sD;}TGA U# I@_bl=:W'|NzƗ\*LM\xeew?8~G Q4NAh[ɺɎb"1s#1yg 7t k[{2կuҾxh= ]a]rV^㯁Ω ܁N_zĕ'FVWWcq5."RF|,f՞ftvX!t+N w퇐PθZ{-%Lpe_~WW w!wC"9ՏQ"۬|k(rq &0IZeøIv{tC= -龜a-+JBHHjWW-:wn #-nǕwȊ1;N_257/]3xrtR] x+9*``Egʪ|䛭fӓFd2jebL>Wf$a,ywh[9/8{S&-Kd6phSg[9 p'MK#]0jR!u%<;yFNa/D틖y+$Z8fJ/&H\o6M­bc:)2yg^O}.V0_%ZVfo=^_sL|tw;]v+m(e$ŏ%2_yrq\#Zn |H*@Pr(Iޜ~7kDcSAruWSvɋ2DQ7Me?SqW"|".s>?wbXy\O mS2nn),dַchZE(^]x(0+W{${N*H+ U_}w*5"yDNڗ^yZfWR6E@ŁY;x?e&¯O|]"YWꋥ#/b{G yi`}z~$#` &C΂^kC4B!ޟ_ք){hL#S ؊&cgb3x_ 96N6.+Z3A2C|#GU?VG ,͠):+P*p]H΁U4&jor|tkk yh0hm"bYom%۹Sz? @:rjo$54 ~„Mڴ4(&0IVۇ-{`ΈW v=ᚪQZM-е%[p&Sjk U 1,] AdA,Dz 5HWT`eEzED#iM +Uk3wλ3g_Hqܩv Nxi9s0< "Z|#G GӟA͍N2-sCUٲ󳆎"?W٩/\"@Ђԥ2f׿j8ajױLJ.z6IOhuM7GZ0Qu&3~5,cEG>p}uN Z6ڣaVA](h/8{F]>/!h@@GVkz} 50,#ngX8SנD(Oz{d}ۛ,$1^DGO/ Șd-r=%F\OĸI9y(V*a#Wѻ?&O;:|e&kKQe`QPfeUSo{OpVΪs:-fA eOrN4MW~_twlJ-S4!$hLu 8-H&$E*_f \ DР@BJY;5voKnu|1:?[_'fPC@ǽDfqse-`(p;T$FpHy:!-6/\Uni!Dk죓M$T'>pM0㐹˅s:i@E.sy'5/,0Űwx}.@elM Bkkٿ)^@[+Гs`UkIe}sR$ [V/g۪(GnQn_.ЦGP썮2MʽFK`SmVL(AoTb`w^=|&H4uQ]698 $r|ūfCY'c3Dyx#]6A8vL{mWZ5qCUA5iovֈ= . y_K b_k#&sO4: W[Ԧ<Cӝ2vg0 )f%ԑE6YqѾMCxćNT)z=f{%ݑփʂ vp/E,<0MfЀ~_j<1&ulTb֙t BWxz.*\" J=^UkM!݀'b@Liq YPF9WO&RcZᚩ(ULLh@H>> _1GnY/?zp{0ɽ\QBw uXk*$fca@oTHx@qPNG  IHDRݷsRGB pHYs+tIMErbKGDIDATxE޽};;o@a!@ G @ $Aۻv}U[Ԓ`;QU]-Q2)A[XГYU$WMQ?GG*tw 鳛yJȣ["LELJbye^Yx!AeO,v*ɒK}zY9ggTO͈7eǜ䈸>*;i 﫬Gԓb=1}MێhO[ϬktUʚ>YBҺN7 tQF !dO7,/BP-KՂ~3Gg E?P@UHUFA$<j Gáp)j%5q9,75De˒#P9$jilhmjlmnD-MHM\VfeҡVP :~ ,䅶Cm$:B m:۠@ ]'ZեSR7|BIgG)IY.S^:-/t>}GD {z>spO#:rpG#G9GF{ a^(9vѣP(}JtG%cH~"u\qǏK%???7?eo?L~oo̖eSYyNr$ P>΂̌4I3:?^sF73d6۪kjjﲌKN0jmp"CBcCDuC6x8@1v*`O /\I)ZP.nD'^lqPdpQ{ /IC&˨1d$n|SyQځ$@ !h$ D`6rWPn KVӍAawcAX"0yrr@TN%ŀd?^ >,߲ycIIIgWgerTVUWq ݿ'`t8,ݲPҼo.yr:n133PPr $33H@ 2hgPmZ qit9 ;a$(`p F @!sBidž"J0P5iCkY e` @yYj5Q `3CMt{hb.*).RWQVn6 +{w @|4q*(8&:lja* 0ދ(^ /:IT%2t3=a\h!N ߳:Pʍa)+%m_UEͬX y}e%\{s<χ>XnyG|`#1 %z@iH}=/+*.\?Ho;w4! L8 4n&lO~ &'ĤK۵5.(,(o 0*_?믻vǶmq9 ҋy#G|0mXh$F8DX*p,Q9֮70NG{_z~s|W/"K/0bP׏˗#@ZjTVUvT8otɇypvC ;?.da&2׭kG[A1  `7Y*6xwyQ:!X c"dR[ N"tR/]Uq`-DG*7N߄(1Hn1= >8*ںyS&j=.6 F;t 4\+yOMZaj#ngN믽:1ZdĄ _:*KŦMfϙ_|ӧOv\="!F]T P'I\cf$Н5 ֟8# ׀٭@{/+ ;-/- o:Q)lGRTT0+3c+PK3b2¡^%N 3'>t > 4 šի3˱'%!Z瞅&&zDv',cMWg' pʟ BS[WS3d@ Gm}^'c68Ғ#cBGqZС.oAJL$.68{,^#f20r`P!ުJsCbh{E_xLO<Qom<0^1'}LzU+ JPx[&O*-Ȼ;u*=62oάG(+)lkv nz_O *GO¡9[kjBO~:Q&u3F > KP:q|Fw^mRTˆQ=$XJLDM-lauvOE*I^ˁHBHpT\j$zaއ>٬hmjc}9Y%aQW]0j4F͞UZT r$Θgn;f SC~,dl=N͛*KKe%B=YK+f%'Ɵ@~&#SZc h&0J%5 (\ &-C!;PmD%[l|#{= mxٷ{<*h>0:0Ï<Њ?@50`k׬hlh8vc>e2[[P$I"*J!Q)RXPL]e>W_~-p`p֭So_Ǐ )y`rrn;v7q>QݳZԍc| z-8S괵ͽрp>ٓNx,ouԛ)_NU P XDژo6AxTd^$/ *31.7NAV5;d_$a>s͕e[haeimlBLH:'8Jm09> lyWJ']Hy`#!h%7xëoSyl?g$[t`y.^ZOOχI3&g$'?oZ Lʃ&]T6(H Brl d*2 i;HC͎Ofp9ڊSAA^pmq2X~7Yjk]N'%Xvʍ.tRL@ 3mV /\7v,naİu5հv:kk.]v ͜٨8_#{kF9*qڐez=;YYJ 7deBi%)B>yOo0殂)K Yi?eUj 4(M[ r5B)A,%R*(F>PaٟAGS-DoVٕH8J mX2yv=[5|v*ގhA-y #!C<!nUqT[6y~3;:W\ 87~x! =ԓÇ2xXM7ч^2-HrajMJݝcԛ 2twYU?/]z-SQwٍ֏BqcؾHOϪ+.<< @oGG>o7G0dr2 Qv>t0{/5kQ}+@,)=| ?Å2iP9edcN6yFJa)905:t<Y7}kФorO*.1322ƍvʔ)΅ ^6͖=g_=6\-J[[YVg[`,c@Dž? B3mE3xh3;BH%`Q#hj?fQ=곪S0jhi#7G&Q`hU AxhE6ZD_ʫZ/Oixʮ."eJПȕ,RDRRx+W:QeVO0hXK)Y%Fp泋#!~]-Soޘ#>Ӄ 4ɣG GHp:?,ΟGENy#8$ѫ@Ǒvk=?a rVtkk[[3;;gG'H~J , [U1iآU-ZlA<%(^h  aƋWA`h ^cdhV ).'ݖ % /hnWq~˲um|[Rleh@OFTHwu$ܮ%{~a#s?GnMԷX^ oTx9۲!00?-[/BQ2fEhP0mAh?"9F,068ū) W# :|.%βƏPRZ 8t_J !:864H}@}IDnG'wr ^tWQf3d(GffQXV9Wq ̙*IG :\tG2t؄Rwi1[B2AT;n6Dʨ{v;HѥD:Ts  .:/57#R?4 nv2B8-یEcNtAS 7A SU !Bڨ]EBT|""Qz0dj!~%ί[m4#J#ہ 2֭mA9|>l%ŀ܍BRc{,\iV*ܥWUQc[vfo}՗ PDқD 5tsEY3}ƨOF#MA9̆A(nqn(-HZmH^sJ<۴oA "#z m,vt'kƔFC'! KM27vwV\`u-v-A%[sѯʳ?M-~ˆ'*MרCarZ +g)-|P0b}v-*3N!@an#c/" M<.^ o 0XLudáf3X-vlXݼٳO}Pb%ŀčh%ws_gT5΢};8V*JKʊ l'\1C8Lzء捲fɼQ 50pA +J-%LA&оK5цoE6x =,+tx0GW' >:ڠs;Fuz֐%4f`#EK',եs4Lpy".b ] `F@ tZEK"~ 4lJpv$B58tsd0 U0Wsj)eV-ePjإަe%E ˤ㚧0'k#n}'{tz. k'w[V֠~8P@Qz\H8&7f E33gl\ڈ߽a[փ~oź_dIquQϱAm*E!:AoX}9N!X قwI?A3vG4oDx\ဌ؛Q.3nu6/;EQ"x7^^∏S`D1a2\]o3bP ƨ/jPr5ΈDSI1 6cF1 n$| dH'R1sc?bG1#+ҩ5I) !@DZVku4hʴ'x;=B , 3fxGKyRP: +Z iod ݰq.B ٣AFTAp ^p/" 6>b7i0e&0=1DP#f%fZ(58QA96ȡɡa6 Iь@ C1*>bx>ZNPZ"nN(`P .矚p=,LuQpTо UtW N bQUɷx-(0'ufuA4JkVgPNޘfr/ # ^ip-a{1IA QZ~I3C1tlel0J\A6p$P[:bf6>)#sVb`<> >ErXDYr˴N:pϫz$A? 3HI*=1tZCf#P~xق p.u]p##d11#A m -q dlH 5j>cd$mP*oYcz{C; 0vr4'&\0&><i.Bp?{|A[Š2JsA2(T&kz .L>RtTf`A>;N Ѽ (,oADLEH2\nN.^0%gd@ k]:40$|gׄc(sƤ *BmPSS(FL<xs8VF(r,ҡ%BcŤ8{ C-HWsY(D~_„!O$) (ǂh=`aഠ"d"l5Ѕ00['"H\Scv KD@a&<**4(J0y0yk<ǽxbAO IcX<% |pc^) @x#ט[lKjx fs#rWO!tmp sHUpccx| iA:/| H\la&,wׅ޸#k{!BF[\6xOuE)<`o2P826B1#),QO LQ /yo|#}q4oIgԯd` C?xB_YguFB djݵPy7B{A'bx%2!F$a&LDHiؑ49Zy ӂ|F4-ʺ`]u1nN2Dz> 5H,mPꕂ k {O 8d^T2zb+d>ա GL6-E ,M,5C_{l!cN\FI-k¹V$F! &ڹB7[n$nWUh r,M<"g_BD~"E7&0[ $02ٻD@G"\oh R%;oH[tBP;o+-*zQHA(7 ?^8/jE&N0Ayh k0cuZ ]#bEI FSKB28 @ӿ)ɠF72C:NId.S|=/D8,ʖОJBLH "3cZ~bu .@ F4P ' id U~(wTX籈 TפQ6z=&8)"<=兹H~3W?v(wS|U,]رcE_}aaC~Íkݹr˖.Vjx>O\|a0GLGye}el$|W B`A\`pD*!tYS!%LvS> z9tV]d3B*f"FISI!+IM ;AvoifaBSsSi})pCqWR8@o6"2xMD4mp{`iw2o{.zguu ܻm=?=?RM8#4 lLQ6Wm"1ihm[x`A)e Uh3u$[c`& w6<>cUVoiO˰﨩z}vœ~2[Xǫ|ӆöq},^qz2 27霶ZLo 6w[?_~qzm.{{{Nv2:ʏ8g/:9Bw~zW$b2r0Ƈ}3Ӵ`1yAy>xligA@x h'@9bV9#S6yѸODw/x".oxq &+E(O+BgrB]Ђ~! d.#rח}>9;]W |QN 6.\kTWZoٍL]gk<ڷ7BuI J;nߔ}5c h=9kʟc3Լ֗nLV; Ř0Cm`aC0:r#<[ȏ`4a5wh }IM jxlOࣃޥV]Lh'dLpa˜'\G(:sTp][" GA. 喺 /M|ns~l~~K|ckg^='>^W7~xZGK3ikX&25Le?z?>x} %kVH d,^ގK>5eȐ/?}ʜ* Jgo_=~bD" ̧6|BIi7F}uLqwp0c'al;t,yb>HχAX/9,"'Bj&l85ldЁ,@p`)F4CY5&xx%uQGH}bF@PqDoL(,fB I XҁGf7e׾tҲw47N}u͵/=`>\qF_tm[.XaCWUb`+㯨u5Y^Rt-# -?p;;d< B 2"7:> *z'eSj$/lw'G_v8<({ԃzCZGEO7b(!Yk^TQ%Y0&[TR*< 18FWRR +"PtWDY<ERfk*uW*zA'/\2p҇L{?䂛ws/>?;yů|Wzinѳa++.l0[ PkG&OOw9yd%~pIGG1>7j߽YBBƸ7b֬%H ?Qdڻxv%!؝e`ڻ=p?N ϰ#ƍsP)#n  O$h@AA ]XDP \(kbB# )ci"s0!p/ASވwcFhzD$O$ ) tGJ_S ͂U!fd:[ۧ_Wz4s7+ߕҪZ\dxge.~kx5W/[ܾL&|?tӄ8~< Teֺ5ۍs`yт!;3Y?{zz]W?jn3@/C>rǟO7Ky2}^(;}fvk,=),[#sBż֩E .0 q0;Wyg*%RAy>3*(;"hqkԖh0ȯ"Q@f֍Gͷ)Ps3;!.@pIL3Y0B)L:*xG-9Ag0`F"mf:-T ˺{ܫAB;9/37 u ;wp<~3wyH )L:*HR"`oc!4 wuY>~sK]Vt?pO<W{{<\KᛸԹYmM9?._O[ *- ! \Ѹd9bs۠/Lب;'v]Hcd +4PtCm0 ~ɝXXb_f.`IB 0bB<Rp1*Bf<d'@~ѵ?7O[f4o} %z+aZZZݗ}\63_:FͬQpWkD"**zY_Se!L2bl%.l07B4,Y6(>ၧ,(UWHy&a\7zs8sDL0& RjRMD2B gдۛ|5pŵC-vlO:۷fgf:x8 zlw[Emt 02A| y%j,>pߌj 1oZ&, < "5#"[&3RT9˄xY\ yu37\Qҋ'B+bu'eŮHBƦ8)M ȿ"ϔ8>-$=n9GptZkEڿ5l*RnRVYښlT];."KmmtUCMU9{VE+2ȷ`1ާ?O$+Z?fmPoL- u@H4Jj}0Wt0O/ - |÷{JM{=Fq6A[~;dMÆ[f4uv >]2m&[h J߾"ۘIvU,uW+תpA4Z}]n( ls3x)% Ӆ-F~ss[sJ _֭ޡs㘿I3ԏn  e|b1ղXEn3:/`g"1eSuEP<]rНO.UHD7wyH, p4h LTXH3rw΋&<eU׻t *ޓ=i?*m3}? >7ו;7 < R=; k  f##} ޟ%bW̘bCI/1F<{ƛ1i2c=ћGů EF{gGq7$r# "IJ4Jcdו#Թ>rzj-gmY}ޞVOxM}fqz7;/i^!W5e_lFRwDže*b3ů>v]+p:} ϗa: VWU ]J3~rV!Ը^v]xrs[ 1]QC[ ѦH am~$yDK?Yj@-a?:4fW Ϙ˘tj'?gL8ќIlkh;P)CSf<L#`$'|,ZVBq6$󔻤 @6H.D} UV &ζe2X 22=˪(k}o7U&gL< ОjoV2L3hH/Ah:ޞ1b O Gfle((9m=;IȻĬf:F#K=ky(v-Rf~Jm}szu <ߧŅҼRZrK"bp[ݢ}a"dk;Wbt ZW]Hh#\ިC#p8Ѻ)#ٺx໥ݎym ,{#']6na[L6Q#jV!4q4Km?}p/` J) +P\Q:Z~8 H|s opiXiH9 A^\G`tcC=5ۧc柈/}Ii,W!ėM]#p oI S;tB4#xHlOF9GGxwn==mlLЉ*ـ !Vt,D˻$fq$ 0@D9t 0pB>6;Iq/"K\! n2S9s:Xhkfm*ԛ\ DۗJ t|v.&8oZ 1隳ĀI7taX>N:{1_Gkz1-lrl&͸N;ԛXLv}%_K k6^ǻќG&6Wyq!@P]uQw],*lMݛg 4GXae uy<(KûWˡ|fףKwۑA{0st AW*@i,!(!z *%%ܸ麷G=RE*Rh.0Yp ]SX^b|:\LV jqa5>\2ߌ6dih}O70RϤaYG+ l9_L:6Y?6%{grVYoG/n{΋S8>6k;z [3lSc3;2~jh]Wsp7Au͊zGbpReoo(ѿs`\.U/f< ??!>z=z";Q-0W7A=ݟO~qP;BE8yIQ 4CP[v]PmGx`5 ;HM*h 28Q_D*6/]shIL XH*+XE8 !Ok_R/1kIT7%>1rsD1n'GkKE&67wpX~-O舿r8rgcsѨ];BUMWAA-`L_AR( _J=%]7iuUI!Q͸9G--r8c13d"|a?y?N \?9Cs̖poAJZ=ē/A$/ OJ{ˌ3Oٵ ྴ[>o!iq fCvhj{GF|a[laZ&9~oIQVL@ObD,izzt%9!C9:CB[bۤNv^Mu1=e촊Y#sd$Ob#[mAX,,մdT;Q,k~2;m&Ǣi}pYYk¾ BKj?%| %@}Ȋ>M9]CŎH9!˸(ea'R|RbBBݸ72aS^{ jSzNxOsPZ`o#xxlHd_XS;Gu ۽AYYq}nΨڗa i!KE"eӊaM+%X:+YEg1֦KMw_VN㚮QtW?!-oP-@u|a3S_cߜ7 e^9}VmυN@! 4JM0D@Rx\p$Hb) =r_OX s޿J?<<h:cedq` 9138Λ}?.O28k::_?5JWJHZL )%{桝| ܠDpiku134 "6W`O J{+46z1K>q}iPӗV2ʶt|. >!%A( 2:E^ZU_ԡ,u&d@( D5̮ZLyҞxu8=1*Ag8XB3HE瑷-.\.!r:.....»-mo}"Tny "SDA=+2{xSPivEѦ!p|跃3!0[fU-e5`! R&5]IЎ7Yo}Ɏ2kis>8$`/R#LG ;H\NO.)8\.p jl6N2!(i&Z6[Ll8{^íobfn^EνuiF9ݮLufŏm DO⣌efJ뷍=[mC{ΩpYY#$Ǧɭ؃[_w2Yh XK#dʥ)`QŽa pA6!..Z..A.PcSV__8csME嵅~>ϸQ}m#̶-gh9t׺F R!UY;5P]MbWnGW\nBpdq1T Ș.S[_}7> ьRgf-( zhVPx5Ǖq_+si#i {c×u[h xK-7Bvw.(@Tݞ7AvODHחֽzZ FJ{Ӳ('9 ˦ro6}p~mnA* |ݡnzG5/&'e6^|p?0f7ujy8/pƨ3tyGAX9"icU ktt~_X ݔT1٨OP +? S ̨G5сsvg ;v \a 4t(pVzr̢)Nw-j]#Yu\At0|l,+S:Ps9Ӷ i>0C#o]Ap2RN9" 맪*t I}\7R_?d M_DC- $wuωp8fe1!X6Z:W\L84k;-i4OX_OqO#X2PGO6[2qFuv~Jv 6ee/ j3/Xt.9u J C4 !PJ.%@Kp].-ZbZÄ4%`ؖhã?Q*LTdӖeX/$M(@ÞDOj9" `zA#EtNb*EON0m+ ݫԣgFʳ-[f 8)"_ң6at Xs$' r&a A AMBMBMBMBNDw[2@ϔ̚wݶT`e3^ϯ$\:0(CF/"6S+[nYA1ކ|눰seCt#F:l1|:R@z4bX.睙󒞖PW 7\_*r4_}Ke~ V٨aJm{+5K„-ݎbTHҰ8f'0  ItE$- pй3(0 HftૈAU=F&b♖gQהU[aPHTnQa]/yt>NkJfVeWݞT\ar*iY=G'ËCu{SSe3oC1*ꔼ1ڠsmS@ڭF\eв ϠCj#ʶY#mo( rʨĸtM.8ɂ #6OG0}Un:GAj}tn.kqY]ECԔ#0q7zvQSwdºlIm5c\A0nP.bTmq >r9\Y¬oo$eodioiojohodgodhomo$g Ud)3S7b#5Q-\pCA8$LHn% aLnT 8@Hψ6A1pLX w]Nq}&#]5WBG1~( ֫ t0^xMx428"Q͏&OM&)"az#iפ< @V3>˾(0t!Ųb/ 3*U&Rm"gRULE/yMAgtRDQR,K07⽳ū[vO8)=Tl]4Iew"lF-9i OC^n(:/+K#5cS xO MEM wLRUg +wz\E/K`.()!:$5 90] 5Vak,V޻ĝ@ GL&|475b؉nQ1(JH*"Mf%y( 9!:z!W IJ낍֚f' F}3lyE^,5tBF#Sl.CA>P"-L?Tմp iN#ѡI`ӑ.1bA+0"(%V’.dC/ə"Tr.{ٝ?KK>A<>0-/?415'%45FVUP,e-M%Oq沴QɎ|bL\ avf E8"…z mUbBȰuHmj ^#92P fO볲A? a yib âS>5ľ7*{yg4j R۰y~0)f! Q@SUҜ-.W8l9ul!M Y0qzY#"yC }um6ˏek͠ne75C]d4YC \, ݉ >aa<|wIe#k$&%AiYe{]!36#%f(5H8hr$5HTahNѬ KA$JBE&A$H+cM ﷫t^tލ;4ީ٬w2;5lm(?̃#j-a򇱕 U1_b|ss 7+<#Gx! Fyaq"'Gfj(p}-|Q<dS?)kc Hl,}HxD-胏1)=jb[0d|gr!P([& m2i@ K&7&73Po$/£" 6DU ԓpOƖ4_{ڨj=X@-| 9xRs?l%]aUg'JU:qXs:hAojKٟӂJO'YiJh"$$xJ/ @kb!'/ppd8NlJ@`تө'XC[ąPäV_vN?)ϽƲXDGmuk@2w3HST(|Dv g$t\v4./8ӯ;[悈mN~Il֊Jf U*[Ҥ.mƏοO|~)~0 `߽`IIh&ܷ#8(ˡ#A͡t_R$zeT/.y2 h#v}c?SvٳI@\'qR\v-Utvti ,YPmhYoP~C4* T},>7rktb~i41`g~@BG=0BLJ3_۟Uþ7RQΣPZ`>[(&P`h "di)Ӝ{E#q]q?];鈒00c|(eýIKs).X)R:z칔A(^M=MBc.Lum y'g4'Sk)d Kgb[t]gQMޤslP *pas2`-|plmk4Y2sh6P*Z̰-e ܄Vu%]*Pv?CoJ1]ܐO-a$Ǹ_ޢyLx~OP3 JS,ReH$jb+B@ti7ϩ1ǨۺR໋|{ % \њy:_&IaF&8wcv'uϓ?6]Ǝ[~ 5>a9C沢o[Y/n>j6e{qg|VgL~lhE kt4)tT+`2]fCѼ$i/Sc棋z +4&н&^o7N޵CGǩ鎡%\)ܐT׾Ih>o t x+G;L):$ݐX6+>srJxLCey :X5jaFpUuhMAZv~2WAl3oZo8?A'{YQ SWF@#A^[/~ \,cB[ɅL4/?kavoU$,$x%$'}n7|Ũ1&`dz0~=aHgK9Nqs@IRj&G#;#G98N#7g$Lڪ&@ZO\:2#A01Vumt$gd5Hbb>fC6ѾDi(H)i]~yxQ^xs:P-0zi`F񝊢OkU䃍+[DU 3&k9Lu5,9[^XL5yfVwؑB t&2`3ߕPy3K ூ'z ,+Fjfs"?8U,nn]0f*=^ ջ_(TeUQ:OtY9{TF&}qf3p0\b?IY,owV56&Ҋ蛚@uG 0.tTpPGggcs efP|z> 10*n; Tp<ѝtddW\t~e,ގq"C PۼтYN԰kaaL۱x`I l(z{R8Yc BK^RX oai#6 [xI%T;UN#TdKGi|AoE K/!V&*Z6С9~,oMe&7\~E#ɠhYk2{S gfCxb#3б}y%Gswq(h~dDY 8S+.FTP)|[W-yj)̜c˄%{#&niA_>4@k Ċiq"-5n(܎f擀JMzuL>ZЀzH/_(l {ɤlO*9[S^-`@wa4<˝F;%ʷjOu@Mʟ5R1v.LRd D0P'G6F?'bnrZK%HEK"/ʬt/V`[*˸n&f-|(|a9e:+Ә~8͸","dŵ1Or p-4=o{(APRUp8fo ce -`uu`.aFn&2 i?VEQIZ }rayZ'zZĎ}A'N/ kğ+f踄\ n!H8( Tj6MI&kW?l`Qj ,g}}%^$S[ԟh/%}ʈmbd T46&:4,cIU{Sɭ 1EAPAeO{+}N3՗雼抭_{bi Iy&G\Y GvM̓|"^4n74GSXZJ>))GΖE0v-_^LPKE2LO`𞉏999wKYb0]JS[^Sf&qqz.<WάIX `aRKczIS}TO oދ % ǰ80ȳQqmU[(`}KP-2c"F] : ɞ97d7ֹwUuVo'3#><齸÷sc>9Z;";#$PC'bk9yN|q=y$dW \jƱA,+Q> =[4eIF{P/z{v}i \ +U80#{+BӝK[QX{![c,D:2U*fP 6;ko|RP=ή[4`aꖏޛ˰p8(sk)Ζ7a)[~4ҽz7BQ)f>6 I 4s?qOjvn-dqR |XLo)DKRP|ސ@CX#`qY!pзPfscj|:1+%Ot(=+n9yLڗ=.4STh+־,eU]7 `+U(R)ܿ,w q M@; {4Zc"8ƅ&Eqw3Vi}Mx*$" ^ZLc/5S)+3/Թo6r:4}s-hu9jh'!&b_fslo*cjg|ƀJU_a87^}Sx 0b[(EUy͒e~Pm *BΗeMM"T 㔢)Q"M#=W_~{ K 3_j4ump^Vj)BFC+pzA1Ӓ`!uQ 㭣QJrHnF$)Fz)n~u}}s>5?k h<aJؿhեx+*'H CÏ3IJ @1GŦR6=pȔ3=:,}uh;L T 0W㤇vF8BGs347͕{hHh\D;CnbirIN>dlhlGmA ʢh<5z+gڥ=@1)¡[,:\CRa02|VA%0هMΙXsu93'VdqբHU 2s9 O{r=Odڷ--*KPiW>s~7[]yN/>Pr(W'J1t3'}0eyOVыC/W9.[6#gvG/kʛϩ PpYc*L5 vEė-Q}Vj64*1rm2 tAœ^w* j/VoF$dod+gɪwT^mvrnn ɛyǮˁ69(V*6@u׮mOmɻI:ͩčp]z{צs)P_piUPHQ#:IUi&{|qWqZ/AyFZ-6(r^i)@fkD&IaǬ( ;#SEF9m^NA ].NZNܮ|EմE,7 ؐ -eV}j'ĨҮxɿyCm[rPy 6$lboj,)B-[M75)tz:2Z娍2b42Z`5紩3b}Id(*:X@åÖxydӂ4;l7AOk "bt$$ }XCk][SMD^dTuTfF6M)I՟gșR:3ė *{ pɍ1=[g} Gobm)Tt`a%P-2ɢPC/]ѹ5k"˪*:dFt3,ؼZPR#ϫ(2ʾmDPi|5%>,6η;GTD0/Kmb7[0s}IĊrq$|Һ|;zmz 0-p\hd@@}\hGx(egUCTNSJn 삾oNdA,=^={lQEțZo,}!&$,P9i:βmm ? ⰻW{X'<iDR8\cq'i|4?9傹Hy[$䠾_cy3_֤ζ_lD\߳=T[=2HԃnģyɃ?CџQ`AtAh5m\%jၬMp0eA:Ĕs*+B5JYkW o@%)7W GGXL`D+2]&E_u5:\a8h'Fk!/ 9 M?ME%*r;K}9&C AwZ J\ilEu|Y^!K&w#ٽ "bx@c`1pD>7pfQ9k0]tzC1ޭ(_EjԹZAJIK#e}o&^.ycZzVtvR#Take{0h;9^#dp'g+R1Ι7`|<Ղ"`d\K*=HW&[˪\ 6C7/yA90JOLex舨P /tFdԝUFZƙc)_Ggwpibc.3O| \xċ8Jl fOǕLs>-l߹]~xIH/|X~Zq!*$H\oPȟ&x0zGNo5H N ]jN9g8]t tE*7zc[QW=2EnBv4 5TVH{?F+8O4ݧ 1<PWPYSф69ODZ=Q&>,xyš }]yX䞡tb(R@ÿXAHu} Gcwe*+NGF~ v9riy{%Ȉ 0NR<1\ W;')DqS=r~-Uũ(Z&R,yo IW8T8L1O #opTdGqOXe0BRZ$j,ogF2 O h݅V2K5qbŦ}(K2o}*Ks~#t%a cù!g*MKsI|$+0A$Xlb#WA޼/%s,׉^ls|;>O9GgcX Dsƛ9mz={{^#$k^(ŊisFЗ#g)<ch R=|O_cp{yNb>-{,+zܯnk +UmSeKM ~tpr31 oP޴JoqL$gSM]JQ-Q0)VX2` ,YфBg{yNOIə 81xIdЦ~o@S9TCU3ݙ|DDT-pֈ.0ȗϩȏ9@/tj 'ohrX׏rJ~󱠾/9υV%lۄO-t%M 1BtǷBb1z@H`nPLܒ itմ4 F`ExY%`/g窠;<6hHOf#cPP].i,5QGXlht3fggf@>f>~L8;Uoj tSK F0nd(T~bFJ:Yc"hAKE!\LosCspFe_:&ʫvL)|9_/ߏhm0xyn\{V>?17kWq}ӳq9e=4qWrIHZԂҲInqL>/j½7yLdb\=\=ֱqN ț7SLhE%$^ Q J Q'>oHLpytkB=@Zl+%zޅ=}ZѬUurIF%@Ǒ8H"S܄JԢZ;@OMZ1yʫWIac䷢WYn{a_iIT=1nN]w:' \-VSc.)cRi}ґٕ"A/!3eQ8(^IͨQ㑔b|Fa`s6j\qO%LyH?i e_`Y&[+ >įSC%6~W:aI,B<>~q3 Ѹ S7U=\B=!-LHүO'NN ,Mϩ*lvqJ(-*wlEqjKZnH?Iqj\Fz_% '< 졵TJ$LߴjE_QK CH'39 e6,)s)lkgP_\<@p ~ӽ-(vJ1U7FbYˆH]FB6FҴCBo]4X-YA:=O/k̶/Z= (7,Qe⁦di~dz?Ӱu]ۜ8<]gmG,Tl`,,$ æD( c#,Hqi~;<5$Jr:4I.帥,*#1mń/³4A?҅2K7:O}DP.co+MdhdHlmdx "#ȣu7Fn9;-c2@e^ë;1k{FYJҋ;o^#hlAG_o )Iԭ6yu'Hf"@<8W`I-?,xŗF%XOqA 5@Jc@kWx'3l:Ye l! 'ՠbC\!A$&YFα ՖcA%|h%aL, Dx:@L38jKVgGL_^l{l`R! qbMp$'Mӷ%D ii]tD+ / P>=Рjv;Cmu#f=`8fX^OеHPRrK( KC{ohe?J?"|_ޫI=|6q]#gA@Se ?_(ANB( f(=vTD|},.fFYul7O8"\-lOb˧)<="|%c{_nhؿw "-6fikqg0 m[ccҖ7 $äMYכ T91y1or-ͤͻā![s.<'66b]Q@j pr蕯FN1l(Ф}mq,PN)@b{UB!&+s'E dy;x'Fvt92xͳ^'k d*Iqա.evv-ITOr:Yb, B%g<.uXE "^֥ OkυU1`Z,Z+9Hyeeb$4\6tv&察S+Eɤ4gK])(L1 LB5 'Del?@:=ڤ/gW#Ii&ػ4zκTL,6S `pyƢP\O8%mt%|{ _ˑiэeH-جh|Mr%j|r(&ay(~MsJ7[[}Q6rx[M|p(4ptg((KGbV[>Bۀ^I~Qg'2<ږ+ln1A=PTM(F4QԨzDMJpYS5w@N=NJk#ff1>uu_N3I E45ֱNՙ |4D15lR=ۆD7Ā:Z>uPEV-:k!m2 >=66j= *"U6{Q0-EWdIGc5O\ ڪ}f3ej1Y6jt_~]S=Lb7^rsKWI5\yM!Rۏ?R W]8*5?;z--O&6o;q$oc2nlPc^&CD׭]罼YEEXߣBzUVMTy3߬J<5Khϖ'O',TnpCi\kylG'i~ @>v:^8| Ȯla Va{oiX5& hM$BZ6)l, q5<Ւ$JxwL'_p2BFJ?Hye:EDFH!ڞ<`Z>#}E٤5aL].FJ|ǫn\YG MH{s)+QUP'82=mEU"#C<ԝ}W)N jWmwx}OQWGaS{$X?5]SRV^$PqrBz<#U~??B/`[|k{əw_^=M's*4%ѝE!$f&& { 9*e'K(OoYCo]?qٹvt@"A Chi7 ΰ ߃D9IyFp$Cׇ9׉D1/.V*sKK7QU hi{Œ^ĵ{UN̷FGZV-ƽl!M1f'G7C#y]a9x޷wnٻJS嬋n O:"i\6ž [XѺ`% r"6a'N~ܾ#4o=.D0}~n$<6aw9@u7+̸GIq%0"6۰zMoiGr*d}|[ZϞԭƨ]fZƽr1N9q@8# s'̷kKF]zin ɼ[8,yvƉ^e.x'?YS< Ü1wlpEHD [3:!rA5 hSM,4}Jg3Zp>g"m~Njs'zKl PR> }䩕3?E%3 !6`6;яhR-cə'Js )k) zN p|ᯱkknLiK5vg %j_'\\Hc*ms(7D]vV^Lv$76!9Tܘm ڝg@q.?sbDwX#ݼP@U,EnV%֩p!|'o9mzBVIuR1DyIΖk Ey(v볋ùyg3ĕD+}pqJӔ]MPsx:^qXaCD-.*}k>~}RMy_ }nT\70H" A_9p'q*dTeÎ 4vu6t$LI$(22 Ω@ ~kf kJdh W7x'& a巬Rvk/ |¨+_x 2  JE&$U 4k3^-?/?R}&=ܳ <5]uy"V@kHɲp鵱 -oTёn >44xALߜԧV:tW7;0K\mU$7(ig'Ct5P``}pF/dހdBmffDQ_CCmN_Ff\Y'-CKԓ8~Ap lmpϔ\I~Oo\׉xIPɩ$i?0ܨT_aW2c1gӲ>gwgLbGsԙ=R2")"7plzν ٻBh ,a{W80]׸E9Cza2aq'}\zq0ƿ=&.^8e{=fԫC|CxdEʳ+srfssamLwF/yc=֣?HA r^!e!Չc\W[yi=^& U;. MA.Kc!gԱ^[Me{;E&X}Y6wY +G+?>@% pFhk[H`9Lۼ> 6+|t%չ"vJdžXadU KQGu ~1ҟ#/$硑ui~j(<0ْ^7ר"14:*+ ~_j|`ž#Lkz">jK.Bl4*29^ : p (Gm@D0JE{+ ?J?^)|ts:E/*5isab%K3 ,7W>sm5nlY[i`IIQas$4wʜCAFA l0Ԕ[g(ؑ^&JV--OZ/.J2%T$֞dC(n>>M:Y*f Y/X2<\%`IDYZp~ FY@H.$h5YLl،9C!vP..'m9HL{J.nFoVD•cDD~=*OjRD4+ܿ@@U&Ň#Ǘoվp'F}\`-g&pv B ˪ 84H9p]ti0j&$2 #\{(l$=^>E]@;}74vYW;93'祈Δ?7F1~zy?'fϓ ڻ򀹯-$CRǕVcKqǿɓ`ϐWtg>T%j_r1| 5 FM]?ߝ*P1#BR+@d`LlRItTuHfm G'ߋN0(!)awdi1@%F/cZ1{G؉~qf|R78k* (-dt&fI4L2KAI24 >G U;[|.l*犏ۆWdqv|x~Suޭ]l Mȸʡ?Yq]#Bf/ƣS|Kc^b>5tė nN!'zp4tʯۛW.H!/yB{x|kC"axDF4|,ϸAQm.q N)|+.t@m>>7C<$zau$ S1f痖R±pS h*YOBV*a%Y䄞^8,ǟ"<\7;p"8k˫OkF3S^}>׉Lr|tq CiR+< >Zxa{}m^ fz[syu!fp};Û6zh6~r5i{1|Ig(EԲHFd/f?:pwu\z xlgz2u{XJg̨QDQT%ݟy8Tt3ݺ.^jD exK| Ba߸ti  )MoEL237wd֢y3;5N֎S)\ԁ$XR #n=lt}, ze2qI391yof\;}P} xWPJruzKUAql|,pa37,4qb5:!|]^K 47R;'.#:j41xg.mp ./\q8+vZP% _ս=N$Aecɒgԙ7a5$կX6jO"MxM% i!"! d(Q%GEX(_W,_{ WϾ_2knV6vǚmebj];[.=}t%p^-kS)QOA| _dgSukDG[ =q+-~➬B!!É\f?/7p/V+lMRn1sދbw"1) 'Q7ۏ`&sx~ӟ\/n(i\Ob?/xΨey3Cb2)_wІrY },de\.XfiCݞ5C^ŽZb=Df`; 砦[ [碴2 LqW-@Y2l ?h]?KFYŻƷerQਛKu77pzVV|~SZ!jPj}ɼQ; y~ZE,e_rܐ߼sY+t%f4ѳ7H"9:秴=O>x-LAe?>zʊwG&ה?aqY/}wIƆ.^lsf45YmJ[N}i{f][љ-:gDz}^ AgbJTAX3?b[qT<ʯ yC=q-p;`,xXW|1#wP<84  J 7@ĢF7R[f[L<n}6P`bll|P?{M_OJL)|8hi  ǭӴgsIn( 'B$U5TG)3T}SA).O^Ao u E OsA)WQ[lk1f2>g dꠣx(b@U)-Mx6V!:&*y ILS.= /RѲ*re9yE9t0Vr!ŠB/Ɩ(t$MU c jbɚqss{5o թc++$SK"e8B"|-,Ria"co>g>\mZ+sO%{PR%qhnⅤg9b45?蝪6]xkj$%|gx7y?ʚ !p X)fkmF }Gek!$IJ C!ogx5񧛷#ff".$4LR26S(Cz\+3-4ʱޑ盢%'ޞB4m̟iߍ]pZl釦ܯEcؒR)g%<_9 N5NQ9PBH Fx։L0pk=tDn݈lS$P%#qH9񹜮CV 8fl`RG&>U-Y?H\0JP=}b{<+66V(w>6q]ݴޏb-lmw#LD0ptE\_ ȦDc )t/䡗g+gY###/+7s܇L HG7\k_mϫhͨX-vz%T_#Mue_!r_xx K7|HD?KFf FD]G oz5 =E0_M<׸;;; Pj>, N9n;kP;G!YRY.=xhïs--$ؼ.5h&2=RЉAr-*+.6jP)+C" w^oДI5;[ԅE59Z*D[%)7R$ KҶ9 &?D= z-kl՝Pj:_aF =zer hyQqʙ =;l؏"o)u0~ˇE-rf&,JAMj$xYv(TJDXZq6X^-# ?ʂgnL<^=\ &Ͻ4I鈇RRWUjz q=y -X '4*¨;I?uAD'a԰N K.(WR5ouJ7zN]*4# jQ^1SpV칹+Gl!Jeצ/9!81 +*5HFR P3 ~OߡړTbs\Ne{(h& y_CrGj :k?dGDFFR(3{qZZ@8\VvօCyy^2p+hvf.TmN&"# # 5~= : 3}SR7u*Ԑ&u^ 3PPPp'֭= j46.]A$͢}%}n D#ojہ>w姥^g@)5)rmbIem]r!#pF%# g&K$m5 (>æR=݄ 6g3NFM!'7zc\BsDEem.E/,TZ!꾂QD|=/^N|[j\q:F-))ϒ"m&PݜJ9FzE dZ&hYx54'_s?߮NE?4~l̦J˜J%^d]eT{i3Jh2ddZHWW Q1?ؖƼy^?lVO]aiI)2-Z–R3WjAS' >0UQ_|@w c5ŻR籞y/ /iYc=1M3+kyHh4k-D).<<="IN1yԴ.0dvgy$AVlMg;k' +&E km\H.10wN(qPMxx[}Ff~+D^O,ᒔ4X'ٵw܆Ԭ[͒t+]+;X/|wjbS(Z=++Lv[*Edп~AsL_>]*Pvn.5FB& l[wG@oe5{ϩ}S &;%%#,tl-oz(;z@ d~f"H65=«qo%\޳^,E#UCq-__J|_]ˠ.Q,f2<ɴNT5? r4"S%$f-v+}l!G"07*JƱaP(b*pLdIVpӜ郎J gC1N1;-2b Ik(~ iP%R2*E$Xw8Qqe |{_ý)TFc%•Vyd!fr& tC"aTX]6AfLyC)IWL]]![vcV9Mۚt<W#5Z;-5k 5tQtt]iQ4n!鱭geH!6X&`E;U(ly[uXw}H}Q 5*1'E \<&Cf K-ж0cxWtvՐҤU5YԪ3)E9!qOhydT#^;76m7wLz0lYoGԺ.0H||Mf·wi6#kjkke}[vh*0^EdST L@lϬt ̾us\ sI&V0vvia\2BC(J :K5xn1?WЈiKH躸/񌼍'{M+IR/E{Tcl{_+ B}#JdLV͐1Z>ov44jBNUSQe>G9KN?~A Gsu,?RU$ yE/H_?;k 5|72,5S:aRjo*)e`-f'df'fV+w 'rgu"?^xVy̓*j5: 0CAʳ[sQz2Efl(=bBN[4{UMbqiۉ<28c_ ż怜BF0ʁcR8^F;`ZQiv'׍4iWBjhf()n[u`4ܛ 0m/BȤ^ߛP~!'w5T1!# ̗4} NF=q1B&:Yc߶B2Ac|rdԓ* ϩE8b tOT"REoVOݖO~vziU΀Z,E,9( 7u깍x>h|Y\<):ϥ9v~}ylԍUo"} g?#NG/Rp4e4S轩?l}8;/091͠Ɉ2)"oUZĀˢ4rfABs6"?DKf_ÝD&>}C+ OiZ\@xm*ӈP~LfOm yP&[hdcD29:N67Aת&2tq|wF82Q6 >Jw10NՐᬰ߽KF*N"-?jxS`:<'1 *-^{ƓhHC3M*уkJcLYM K]Δ /aᄊ-f]g۳1f|NL/-6.,\76Ĩn\SNrcTl@e4V9{:_]\⎆wxD{s\Ȇ"a/6{4C \e#`4˷n M$ddݓ~DOg*W{X-Tkr{B]dp ?9 ~$ Rg 3H 1ijH<gϯN xt?#~"!~F#[8ڍ4ܶ/rF+?τh+O|:axbmPNh̦VaN HH( Ƃ:/-mh]PL:f?kAdsG4ͪ4t2nO~|ƶ9II4 l=,\lϢ<׌+bGrh[i# I3GjE'-*Nb;kߜd+׹F57R.QJItrYrT'nsVIIIP;!qV`աU);:|cT?&*`%=b;ؕWn>#/ݚ/Asiq0cYHIzIˑ 䰘qO^ƥ熢N9*V>nZ 'SE/]HLpa6F2`4|>;4Ls]KF5M#mA"Nų3,/8JKAwBwZi+4J Dlzmղ;/N'*ǟ'LdVvK[- Ӆ4^\-p1zFӟaI7\Z}gAw;*pvKSXӆ~/`Q8Q.WPl˫N<ė摀@LMHn W$3$4M1Bg?爑UZ^>5ɡ4(FŒr.,ʐS0|0 y]̅ , 9]X.\(rQ؎yP7NUX&" ͦ'q1ů!c6_S5V*vtt&1x?QO`R, mbcB _`D3~ǁ+ N篜-[LMz-&׶a*z|,5NԨjweYN* C5PWӹ9`FnNٷjfP87V,pX iwdV;wFM&Gyr|kh`Q?Qp9睿6I;C}!s '."mn6xUPMi5>1DnR<5Zl*ܔ.,_2BsYPl? ܗkC|Ő>)뾆lq`cBS? mSoۦnnnk~YO*p3@|on9V(6s_fTk 4>YJtD2:w~V5Z٬^f;Wϔ教ʰ]f&z-X Z1Q _a~'|:78S ri=`W:v76U,{[5oc͔ uj(HFܗ'59!K󠇸lv(L랠*Ilz)’Çm!u,ÿMMuPJhn | AR&oS'v9 {eŊFxڗ.DI@[*EWܯnroЉZ=nЮ7{^ShP{Fdht|r\vv$eel[2 .'EG+}tɪ|TDZl_]rw dF<)TfdOTP+?qYmly>!~oYgmY5Z5`7ۻ޻soMsspI~O,KI| 9y>H5`8ph?ɲOtO]LAhCp~ApMcb_+3*NxdȠ<[xFf7iu< 8xey8KrWFej+Plrէ ي22l}Rv۠^Rl#'blJB0cf[ֵԋaD=~ӂY\!Fnzhn0;L8ܡT}d *n- ]'ܺ|nw;{)m+iqڏ*:,EP+ +!:OB}@TY_~mޭCnM= &~ךhx<^MI,M}nAUn% i%:aUDݷ05/sR}9L;J?= &@uvq 'j fB ;[a*&hάхxy ou .l0W {>yyޡh;;_Xp+~}UyEr$l'i2> %=LoA{0܆@$ {z{>e: ܷWA尯.g*t݃*EZ_ Co/__&7^'bDQWQSKn;~;TȮ89>ʏbf"#/zMM3'k+o`gh7_m1Zz׸.h{qW VV= E~Ѡ?%6l$#j1.qPO\|s {YJL:vi'bjFAM)W&1B4txJ,0ڐS,r8K3 벡,*Dw!L&iZ=}H`qbk$a"*&q' i|^M?z;HT!%U`l^$%/pOB DYO 4qHkYQa>NuMEe+} jUwZ!'IHrnU/AJ&6`)]oجLx1h+.ab6pI{$# w^dHGh"سꢨmw{x18_}F5+!/gq9JLCT=̒'Lj-_ڐ._沋Mcj/uyo4e&M#z' aR?w3o{/C X1I;>N} d#%k{WmtS % 1]HH`=z& N0Ԡ]5AE*7PYj2h%oO9 ;L'kJL]k)ͿF$i~ٓG.ֿ"')ƻ[PVqvrQl18/b;ex& {4htwH㆙^^YYYW36`bߎޖˈOCƁg]PK #J(>`X5'Ni#5=ܽ,#gqI rdbE٫ۛy^2 viD3g/zS?ӣ vuF}@)yW&M5,"66ljz'0/u#@?tvz|O/YfUd˿XZxv 5//~D܈85Aջ]KtRHwTSp+bj@pA}k;"Fφ*̳,Db"π sdHn~򞑟s.0̘Q#=80(C%=a 7w67233Om/cb߲t^ǃYM޶B$xEbTS"D{?)wgvB7E%Ј-XpI,xxKs1o oYT=kj3'?6c6N 3IGH+urADD{(Q5tGww3j/sM~HOM=GꕕFH8M a.wgZDSr4bO8Ըpavi~Mgp) bEdpy pJL@.I.hpxlwpϜwx"IŠ6ÆEADe^;,DL!5oU3`N"/#][Mǹ~w֧momy*jj)+;ؙȶ.s ,/x'N+*XR-)(uwRu M֙#)S$꣆״/#&܄F%0+U) q|S*HCcn` XϮaOE# ËvJV\[MݞڀF&ɛj =9DC%ZhwKߗ-E%%{%66GXhAޞgTX l4cf*PE,6?74R{-eFD,/Mc )tsLst7/ANcWetQ_\flU41PH"@.rmĴf˚t?HsZp|I ךpmVi=Vr y?Mxr eӔ<4~74|_#Ta!v)y.|U\ŖlxhV0 ƣWá @\xÈp P\125PȚ,y˾k Wvj֭iݭԶ4r:G)j 'vk}"!V%ZF'IaT-vS;k6S,#ɷ Xdu\٪pJUݻ m%t=0LQHPd?w`pq-h+HNQDm)LrD hh,CRB:nf:Z9xZ}n``l[oYA0sO7oG{ μ\n8v<m=;mx^h3D%:kX2,]X}BcNMd AZġ&ۺ:dX n Hu Xm% `!:ۊ}» ~U}1BoYÅoYÍѻ /CfR? 7uڟZؐlj!;#tb-Lewf` {ڐ?Z(_q2`]/ bv9\)pYx_,|ڼږ<]AۣAGK!ˋzuIJ,$8[\}DC&sy?j[ Ӯ蚯IR)qb7+$|֑x |j5.OHiev)Kz.OI4zpi'*,g)2]0)@B d-2VYO\ kg`0 ȭgVgwjRmFm?U#î-:'EK_NķlD}$iY$PKZGNX|cnij ^DwP;_1,њ4bØCK0@'"XG ?t{M* D(!ڎr29Q$R27 hV9\m& >nŴXCC8ψdVS3:B?~h,/;n!Mѫ–ޞ![3H^0ښ[g ։tUe_SL'q/pAR]kxvRl /kk2%*Z<@PJ E۽rb0U!nn_vPPj&x"jؗYTk//RXEFpkC.:r (e+Xc(qLbl)CR!{i=s{bB5\jѾrXv~џdyj l/<@xnUamcy%gxQTue)XōQ;,TcX:zsZvml)f*E IDp\ㆨ([hB)6U7f'Ee- ^\y?/3|AU}7jn4 $eE5'`D 1L/[/(9CfƜkx Namr B?05HOj,C4蟎G(  sAwhG}F?#?JBtYp ȊcsctyƜ4roORTI-{vՐ02v""aEG{:^QвG[2[?qR2KyGISo5ڋ⛙4a Cݷ} rwHgF=>irgŸ2 {.-Mgƅ3!5 \D$ zw ,Wj`UD"ݧ/zf7v#ޝזuʺ5K#C^]#!{BiJI0 ~ix8x6lLJ|i篽{Im_>@ʘo"KFCd_vme<Vq,͏ֽ4l^ee(Emd{yS2zƗ,w,zٌC_O5F.:ގߘlJoDm窆wİPUKDlIf-MԂXY^׈'k̈t__Ye;  'ǀ_\c]0Z Dy`ODK~9$}cq(n U55@{䖸q#AYc@n 륔mQ9l>*ͻqs^'6́'чLfAzŭ=C1+1 I."M_K9x"س{..]ij&$y@0S%vOl6@w QmXl!RT Ư]ׅ0/@&+(D5bx0 IC>g;Pv~JY΋|\S2P}8|\z{]8 :ದmw."laDWF럣R 4co 6"5-V`Y6B^: zP2<$p:WPPjq@V:0ǒFl<%钤tP?sIj6;i@Yjw[#a G̘9 Fn݉h kR֝1ZZ+ D5vf Y,'gVN?b_x?Bjǖ`?uҾb$95c2>u"/==G>oO~.A$?Ƚ8 W OLZx)z|N¼R{kQ(ca[Jp;zkȐ`'!f?/Ǿmp Uu^>>ί'N; udO{*b~H,kMDڋ0c? ~P[gjgjTz Bzȟ!C]G66^g-y ? a jnh cymd q4ozȿ ւ:$TU> FMT-/e6Z7Wlsd]d?GLoc͌09IjJ׃vv &l%h㧲(ȵ /5h땖'sO(m/o|B1vZ̅h)IDZmwW]6ڄ~axH1X&dƬLDaHW;F:oDV_b仨Og ds/CVoIf(\^rl=΁N>+IHY\#ȸk oõM,)KRV=L ǘgYZ~ zt̗x:Pf=VE$'e*0 IL)v]*3'R+RŢ'XO9xN՚o+ZJrD!ߖsU:J&B?>KoH :D@ \?Y;_R!.x Oj]}%}QgW[m?.*{Nf9 >]'E٘SKճҘ) 40eͤт4j"t@i%Mm@oE@~׫e8gizhVeBOF3-#ZJ =dt{*x\/f{"Xza5aHaubX;հcl _b{X^KT qEG@A9lau2%I\S(e*Ure|ap)sɑ/AFo*0WkƠ}2sW;Mw3zK0`ӳ0GG3}v#ed;  i8NLp{g+ ۞鮁KNݡmE,}]4FH7ǻ0Fdϻ_ok,oc~!b9|>˨rͬ %Z$x:>'?ewr`>\"bP7bPq^GjʯJ+&J/ߖō>VKd}PŠVŸDIbxŋSr?9[<УY)ey*Fdܳ 5NnE>f-j!B1[Vqwk!ƕ'a!>%4M^ 4dҴ만Cz\F۵t\v˵n4" {}+QRb,J{U߅իfHBr{pKp3Tn>QNjrm> E.)0ѿL{QE)#֤HҐ\@ GT̯҅ch+?'OFvXqq/օiNףYe.xRzRy*j-㡖3K" a!or#m:i>)ܹx}? v>z稏^"Wtp4ף_#TYfe ͦ4Exv*GҁZ6<iZxsY)UWZV2]'rKذSuU> FE P rU$yTO-J3sR_$p2̍fY>|)^$+;R:5Y۫+cJ\!Շ)mw/Kquڏv'MuOo6۴)yTF) =B ދoVR0RV :FbBT'999-HY<>+,&e6xſx"Q~ZX4Ŏ2,kϦ!-DdK1.r˘ӂ6+uZ䋓qcZ"ƊNbn"ҏp{92.)!ےL dYYf N=\4~ď0@)f;+m *%/]Gb/j;{@@k~`$k zN(Up> %MOYA\IEq)C婠܆z:q?1i06RQ5rbpH,Yׄ\)cF?\<R8tw8qbg}Wa/Y/ɟߤ kX5>^barTmn "Q,X Yj;%OXƇ%.$ZJ_˵fM4tJUEdNc%R3,Ïox(V]K2r!IN0^XZz:.]&NMy<.rXj-jYGf]s+7V8bw>p3)$Ț,\"M+E s?l,7y z}6`I]04)iLK2qcYp?BDiiK>̱⛽ ePlbcG.?ހ a#Ν*/SM >QαR#Y225U֪] mBwfjWiO]$i%v[7^a~E`oZ,(֚7h!Gy7'," hDGi!sI+͉@BJ4vy4*W[JlXJDPŘy3%Hb>9ml[?]j/8GP Т(lV}w._"G0t<伊tGCV(9 o'X7͇dUyrbSցgR7,\V=v@E5?[5#OT$g2{c-2Hdk.=2[ڪVE&1gjya]f\1AGއ WTOmzHBs*juF98y@y)eƘcFw E;LOKSV8N~'.4\DV\bYq~ʫ »KH)i+w..JҾg⧲RJEtpBm#FnXBZyo,}}{ `?WsO.Że5α(:3"[.C1\Hj]ZlٚAAbbU 7`TIFaFSY4l@xȀ‚L88lo}/e؇뼋 %i8dC3l<-dkyD㕥у0EmI+L }hQ@By6 aL=GفGLJl rOm܎r ;6]RU_Ņ+3Z"!$_c~ySiVŔͨJ]SuNrh^WQ לqJKN@ljF36&wf^j2B15Qru3vw.ej܏L4ӊ"caKܿsi'6ʲ'ڱ2[޸!qp/᫴qʍ#̩ɲ9]"ߌP8|GGU_>e-J8rX}2'Q{kb3cO(=gsU"7[Z9kjY$( 7P4!Uvh/+iAzDm&UmNi{>^R%3tNZ&]o2De2rgHa%caV~J3|(1 '#Y,r("~d\`s˔~l * }$R_&#N>Y~] ?pHCxzN9퉒u/f'5S( l!g4+mJJ;?9L=)Ut?^`J G՗Vunي-Gkz8̌ ; &Zmk [|SAE ^OM42m*.->֖a7T'9㼫@㟣G,CZMZ=5;Le_b6N&/V=lT˜]JēH*d76ߙ,_[rKkaZX01$XX:5p6k1vV 6Ծ io.7$1̋W) E/A](9)SVNr zu7LG3/M@~wNX90o**e֘(JW0( *6tOfdOCp3PRPYb(JJ4.{!ҨBч][c>J**=*),R4 0VRnNGTYnBRj#Nh#>b Y06Qp(aOXlDO%3ybxN+>G[PbTw4YdKe0MGg̚9nl:.DWXE6!79\#i|k"P}YH`9|Xp|8,UTa%E^覬$)2Β"oUV(VwMK*FL&.LPovKZ[ݶ,1'}V$\IAQ.KT8{tno2,6D#-(!rݯtb9\38 @bu!W!4jX5ԉHEL oS)*ϬsK;\iZ(Ax8,knL<;i޷fǚmE1e[q9%28YoZ,k8?гN!gonbʢRC-tB?@>$eHv|bR$j\w,7d~ ')DćƉ% EDoEQBCYQ@,L iSf0PZ-1*7G7> c-e$Hs%6B2j-m'\fz{b0=1?st'$` Y}cKU'&YġDzc`/tnL?{8"ڬ߇qk_,Ǣ{W9v|_ț%tݻ{{R(E8?ɺsS{Zizjy2 Áxݔy?WFR1i\N`r*SG[dbbbOH "2?mEıd po@0b4"$5ΖTkGg@7LT.h1*l՘=ӇV hQZiAXm4Ǝ,(eeMiiU~/ lm:7/o Lj }2lΐaahs$Fw הX}[?Vpu*bIծ&uKEP&^ݽ€qڃXG6Ftȕ@ [{*&!c0IY"la) D~(d>JG `?C\D2MOEp"[Eutx@~*uceN\7Uc4->O1^0Dr-Jʃhff6(/* g*Hwh$cwPg2wq<4aSs ŋ,)Uu??h/j[dƲ?ۯ1JzPfWܚ%oa4t1FmN+ёOo&]v9$+ޑ*'13%w7eY>_a!6eOu0F0(۳\xF~ ! Bw!M+go9VN:v)qIW2]QxI۠^n>q*DpZaK3t)MNrV/i\\M(t3 D0sene#2e|]>Ybth!N6,&7L &$> ܉-});$c^XVbHQ>lHǪm;-o[pzw]hǛyn`e涹do[AϢV+MMN-|bHxWt9#SY@>a<[sl?;3c rS?¥;chq5Z~5Q8 / !hjcED?u0n_׮=Kピ$l$ '𺎙XB$_b1*+(+Bμ ˜cжW4~*bڞaEedVZ%hʐys|Sp Wd3șq`m yX\Y-t E ]BΡI,p:eL{ k t6`̌p=@s{d wC!6lu+m͕}t6QS fC{;H~@V- . _.\O@3 П BQr B |5#xYfdF>]A<J:*$:¨3Ɵkm(F[EM C(} h`8"W@n(bbY NM`H  "& Q׍ M6͛|h _,ZOTRC%Ly><.]*4r8][b;Vb?C> &Y/%D'V',_owAC\^̣)ZUJ``o !$B/;m @J6evub ?/gZq:T囿~-Fa>;i:l͸# p |r.ֲdxh`ҟ֐Fy(hw@DD9}x}-s֑BhjM۽X} VZv7pL؄ Wb̢ Qm=kagҀ+6|REEYa{a7*$;mޣMGs`$Pק?݄FJ ''N00 L \\jߛGO74LBkmwnd9-YZ3_ a\GłUNxa+d|A0 Y p9.7/+M4/+htEHtCgQP./E痜p 1bzeY /M镒9ۧ,"VcL>"h0DŽ,acr?"2'4ŋ'{q.AB Rܝ^;y׽g73kk㔳؈xkК( "nj$CN۹[>x]Jg: TQ4 )eJQl xD1x:E~N̄dZ8?%OM@d&W./OCZ0q v=6phndA?[bZ~ Mg`lGHт$_R䰅b0)*4>aCl$et$B3(kT6@EY-fxa(0<+: 9,|*RxPn1ll-##;9p 8)v;5ՍP\xheAY^Hςv5 ZYH7%%0S]A=IzxHѡEwڑwǫ4UTv)F QF,I*r꺳5fgN!sr1tV4IxG`$ŌWxS`igvjSrV D~YAz{{P{֡qliPGx &=m>6Zy82>˺%PG>^ҁfKRLBhӇ 曃ǩh5%}en׶RLnf^}mm x|$oHWEhA^fb&)G{Օ7w4q;}! &c`F_W|$qnU]NjycC&a)u&^솠X rH2) =oͨaN.ۛW?挞_>|D=.`D+z$^sFܴrGqY^@ϯ-_rPتZZT{/ MTw~0MaIEg`gб`q-[܂Q"yuJֵ7D_ܛzLY?_o=K8*;D绯~Vgk'0E+RrOMeggvK<_#w4>˴j1F3QKzG'2A!rsD1Ncl(@A[;{ikMǟ>DMw~h`A^p%*0uP?#J7ݾ녘re eLapVj4c01|aQCr(|Z#/2Зuv}y6|K)qxzuCL0Q쿤s,>\ ʨwbKuvIJڻyL> [A@+#:Yfv|'uJxbU\]H{6:Hbj3=BkszLwn@Divf$Q':CvǗ!&ϢRϼ]fԽ-=9{}0e.[j^WWdsBufbH'WHZɇ0oD(]Knu*+V8#{;S忒XSwF^=!::s|ͯ#8 |.d0%)W1fsbAD4 a>u((({oV>*Upoy+R@dj'ݡl2ȇOޥ:0k֖d.OJAH rÓnC}@iuGE{W*BiĹ^ɑJb= K!ІD} ʈF +҉RBFƺ_i9]dMY a٣vA>!F$ UbU2쵠 FzI ]r ePH/6mfA]S moC\&8Szt×3.!!}nAfY>4\eI ?uSe!5)zmlu N BG>q: hiP1ʇe:{APۼ"6ɚ&Z1& &md=fF)m @ p/+V,TYܯq(QDҽ\BjNI9Enn*|zYTXI7t)^1-i =R&\̘p&12+s&*ѥx7yt ~ǡ5߄Bucމ@Nݗ@ s v'okA 8n/;8i⭿m\7҉'@w)vf8?@]tw_&$fN.[]FC!>+1hѡ1"ߒ9sP ,`G1NkclbЗ:W73 5:Ʀ*|@&jvCkW'i#.u3ƄwDl!Ƿ693VPBwHRzΩ)x}Ct2fF1?t(.IQW=<]>1?cҵ׽+l Y0@l>5+\CS'DOy|IPB~  Z;Q`7*L %HpFm猞Kw9/xζů#]\<v  W ܜtþí-_3`<3>p=.qeT)2 )VRF5 p!ּou]j(Gi \xMZ [OK};;=D?7`xTX~O C1BM=nH_7h_h=Mm8Z0L~ٴtГcz4Fhen9I>dH|ua7s8gJs)"4+ܑϵrOĴuv11\?UNNv u;QYe\׃uK!P Yam-dwdqAskp]kJw98W̔7/ž-fSN#2n=4*"Qzаgui( ,N5W2ew=3?7@ > ]eVhHur9;;ٕ=Q^\TD5z/p{F:+ݳq|3_Qk[sۖPO_wcB/QAb *dL%(p%4h. \-cO-rƤY̦쓗xoͤB%zTOL E$i{x/ډt=P /'pJ%z .]t'}1MsȢ =iҴ-)$3#bț]F\UC2RL);z'FiD4Acs{9/ڣ <4ߦ !&EIWC- y]O`v9dS0Șٙ⥭hǸ=uN=[}\ BO1Mo{;^nbnϭZVOwD`6@!^"˜Sy ܌f5`1h`̤@0C͉aO%荃{咋e3"6c(=\>Y(y4EXNuL}fI2ups2|=h$c )ca]Icʰvk'MݴF26D봁88<%S6m훍AF!GL⤝kh퉰 1eH } rŹ_,:M`FҪ[Gx7(4/ЮŔ%Q :TI>Rw:N0eRmk&u0ꝾYMzzh<ΐ=뀹Ͷ" IH_quQ}QaJM_ޡveV4@41ulD%,Q+(UJÍ8?[aiԴiר⤕dX]z BI hnPѓzW_v X%ŭ"Nt{NLD>j3&mc"1(.m~l$WZN6|.&#e%2.vHH:_GMUïfKzZhĴlkp Q ٿj TVj`P"l/}:al.JTwg>| I@<Ȑ2YrCy~% -[E#P͗̇&<)YAsMÅ#>`TD^uy xm C%,&qP{rs:1+,#~5TDh?i?kxaȅآt+EF\Eh0[&j/{PpЉJ)9v KI w( +b WexP툚NZ/C<7hϗWjɄSYpӓn/!wv7{7S܄І'(=GVrtnZ~?셣.w,I%،Շfܡhd}A7H]\߆Qve|mN]q;֔g?m3`W>s3/HZ,+4>S0-4yɎ(`Oؓ` GcuWm[9 T "8sL„JIbPg:y$9- :5 u<ԉb9>az KJI܀_9 e/&v9{i4>}=rP]'o+ʅ q"$2@Ѣqad VA vhyDv(q6ER]3b>aIH׋t[Ֆqrvn=PBD65ɆqKDf}5⻽xa9p4 * !Tr$Z xeo"M}0/uί6\I’~66GiWV6PM:-uN0h/~2tEfTb&9G1C:'tS.ii/TB!FrQu+ZWrjuum߻s.dzHCzˍ * M⊏J_p39K y_hbu i(!Z˓{Qff&ojdY"#8Haέ\(0{L&úRxd@[Da:ELlձ=?LgCn@&F>֯#6><)iB4>xXJ;y9y1:.\\Ay),cs- 1+j7֞i&T})]u=v|%;@*vo QU)!}'_.qaaw1ͪªE?-m-:jZrr>Tϳ[yhv]ͩ0B?~g93zLFˏAT,/u$@vkskY?}M4%lhɦ1,=i:=pʧHT4EB#_9 Q=-羘tYG|TJln!ϙȻj7uF*NGL#UeLPaTei3gkQn!`Ə>0|QPUK~3e? IcuM_*jd)nKٜvX2!g:X<ҭ _Z<7F(~ZmHen4f,и&>ݴퟋtJ䐗R:>ua]W᝼I"oߘn[u:<]sfYү M X1*|rX^\*He]UءO}܂ۺD^ElUJ \(i[OS@w'19ܾ sk Q<_ﯓ xB41ޮ~ng}q=lڛq=*Bll_"VOWj__1) V[b:1v/ʷo ε]!Ev ]Y1K)r\vRXؑ5\SAk[UCȳGqԖx6(_蓟wbښO9m[kčAD΁3wi[TX<船O,9]!C_YZ3 {lO ę-|VgDɨI4;ٷo]\)'"GpKb1S7\G*r%ֺd#%|ƕ%Zi58p?#7N:֐+>e۪׸E =bGn@uhԼ[rN,{M I) @7}(>8%̖. ]0ϖd\l>cxH%k=^҆ܭpzA"Vj9п/|$bRlLT\"剨B6d wg_LCfL )[,r+)1) hh٬TX985 @L<͝ggټ{!M a d׼0xtXmޜ& yHGjoy%&\̳mK=~KV,v#ѧd6Qώ\ :ۯ[q4JOhHv6=9VfEFz@o$/=?6Q֟;^ɎFnPWS^abQJGSaC, پQ9kMb H?Д\4%6?U> KsK,7F䘠^VB'x(Ǭi]߿$Em$817|حQCy\cT?[fFp[aͩEe~OLw!N!g%a۳]?V!HXD>aK?3>hR_E jA8ܠ:=mT|فt5vDŽz:*Fŏꓑ53\ur!j- ~He )<ʍ7)* (5sbԛTǞ_'ٸe~P^{oor(0X[s?¬x#r3g{`*(d:>`# ZsGyE4LWi3cQw_[T2&.H3Ms֨{1gU@!]q0oqy@GbjirE,o:oD5o=g֔㮄-T:5[j' 0xazgZ$QD2իH(GVgW;43u / b;BƢ6tqZ䘏]x~\}ˍۈ,,広R,䝡{ev 'h۪jTlr~aN엉lA<|$j(N+ yX텡:) 8曘ᤉ͸^Ǚ523h,y/:,;5>={0ϿֹY=ez*W/(ƿti44!x޷ݦ;%#GiectS s.惦Xc+/AvG+ fC epT*.|UfOw.9ת8QYR O, 7wLu 2^L(̦1,\4ːeK`'mO~ zc"{O&*5VA*f(=q$sВn VkMՒ'r|eb;h簈"KW,9] [rpA:'Н\<5%$XPfnjTRw|–㊜/ yŷHڑZ2>}<3hI|WP2&{t@G_< T 9^5(rt|} e¯JRݖ_o,ұz<<蚪Vp~owgׅ2vȻEP@\ckHV;\uek:5]c+) ͦzi*0ĥ$YAb0xB=, X硊ؼd׏x97{.Q"#Oˤ{ٯБzо6ڿn\d9b* -jRb*\ssê0A';|=*+7M_i Úp7 DG@rq;f?J'M\# "}~mk0y["ČapiPB+ [ttYzfs{,!yu҇mL"-F.G4 [<~d!EGM}f.9y};\dGRت]j~ߏ*Kן~ywYo7&@ݱ]n0<$A)a97j[ТNmhI+ ſQYPFe&ʰx"Ww U~NF&xmvYA.NVZ{9B|R49.7&= 2˭ pxssR3nV ЗGfeI1k]qN9A"bv7K5NQrI'q)=oYsosa=n<QQoD3yc0j\uEsL8}8_c/>ATO.S10;QyZͥm]Rfe|%^61K#;^XiTUw^A 4٢~r2M>֘/hpҴPxR2u  &>QcK\^XCxMr0E@XފG#"0+̴0F`Jf*_RA,Vܝ3/ODԅHu["NNPJ?xYY&+b8 (҃ޓ k{b:6ey4^dL,V}w.2ˬGvYAoZ'&YI~Ka`cr jN;{|tm_b\-U&Qޟc}x|NtyӍ: qU&'{q>^O˾ts!`ePZ^C ;ACL' * 5CSWqߴdlB+^ǺmcCΐ(ôU>7p3?0ppOxRq\}ʜft0!پQQjT fA-sôm E \ }Cɟ>YYR~)ЋrRG{iv[\??`3pd<9?4`s%`(`6G%'*(UOlh48< a705ܼЌ7A2U`s9:ls?x̃&x{MB7DrR%=nӑ΀yDE,⮹5˖S0V2#c5}Fn,]&UTzLd}!܏Jܾ(+Rʏv9]`kl,>WW<4}bKOѬZ]ٲK"7c[<ܧ|]̉@m5ʻdlœ[[0gnԡ Ģ7SG+ԉ&@ӦդX V$gzfotz1yrt NܵxrĞ aƥ̟f6¥&Z1y uKx+qTQȴ}ɣVMKWO",y7RYf3\'S0gOd-,ܞg2 > fJ[cϠ[( ''Ab nh/}PfmbAoo+z*eYє;@ζFE5ag==u4wr8)0ʎ_>?4Z~bK-s`jwo"P퍼ANh`+(Ѣt;N]\JC!mDϏ줇ٽ#Q#"(J_{ܝ/4_8Y-e -Osϵ'uWN$N=`!TȟF?&(C[k0xMrƁVGxb #!IH=CYYJJ-Ql@2ֹd}"@n %J$$:7ZtSQZi:fhEt. Xzj$M@`:gA+IVqmF-vݑ󁜠֩<2+bem.P.hnMECobӪ4sVގG?=V/GD$l@KgxShB9zR/?b5Eq  Y~SF\h!+aw]uCAyޒW/EQZvpQܨ#$LhduJ۝X_w2?z }e@"]Q}#vPwr);2l.^Zf  ]v;áŮ95B ]"\~S۽[ F( !FMꋬۜBe5Ț}PbSϋRs>m o'ugfԴҤGf6j?6R;ۿd~0>!jK$ A@ũ'?U]u\mǂ)N@$Fww(F iFSZAztJMn}/~+ι`6Ik$}pd`ؽYNLo_/!zS\dCa3SM˞/ypx|K o8 -Tc5KB):2asXncshl)gm빫3 Phj] c?nN^ÓM~umnc[q 1m 2#%޼^Q\Л?y BF\ ;:n6=6?b`aFMX&d.#NBj6Cwbu')s> rBsY^ȞͲB=.*#.*8, ɠ9 8"'NA0 nD|Ŕs6w!̒Ek#,F7iDA{U_ns9֪ڛ^RH  ^}_,iO=KFE _WqH}|lXFZ3Kd0Ÿ"qKQȅVJG[7$y!c#Ӎ/e(+ؾ2W2b#~aM&Y S`luoy#=D:Yuӫƞ&Y0S˖AXzX8h~s]bEΓño$Zi^J~6zw !DŽ:}eծyj lRaծ{GJϺSuga9ꢠQ=]ڐw5?!2R3LQ R;?$Q]}_L]σПnJ4ksT|JW3zpe %Au'yE \TVф@bdXD3*x a)JCgNuqӛ!ܽIE?HbUy:<ذ{B$䜩AEpV&E.&S*ud?<][T ۦ( x&o-cHemTZoYsG槇ѽSVbtʞ_tǝ.7MIG2|&VځE(@I2a cqdMy7lF־4_Ylw5|vQq/.$L}'4! $6^xwui`lc)']^`&=m)ASwB M4ހ柷m^ rm`Q5;RC}/sV~5ւag?V~Θf]gtbsvUU6w0S n SoLˌ-b x7y$v+RĪ)kՖ2Xu _TB$sfgR0`"K׆fBI$8wsnD1&x~DŽ"/9uVS>!еʽ !L8B*V]u}î .EؖKnuuLd㓜<=~IEy]#Quuh8WسT o܊ؠPe1^dm=DqJ:jzc z%ݸgs3,- V*O3[o|}T|w*܎t:p&ҧ-m2I[qKItZم7es!#Svغ&]/ ĥnzo0[D;f!$O-*˛cW7fh4}쟙:_XzL0'TU#xgssG(WNj[KJ9cMU(8]OKxex;4}FJiE~nq؇ߨv>NjO%r8GĐ%\h>yOzgᣧJBVsˮ٢t6ДJe'=@ Ĕ'J:ݒlY%-Y!9jsJ<WF;[cR 1%NcJvˡ㇛_<{0β^pRhXFfLWW ^/96zm/9&t^*`Р/KtUhnV'0ye֘c$p.CHܿ_Cb4afPJXp)!{r,1AUVӦ_L#t 3w_\[-1mxw P3EJ3Z|Y_͐sEof-8wR//[эi+ȯ̒X\I)KRHmݦucfr'NewGBk94N<@(30mM"eUMRn&a Y-vpSK[YRB9VY.x\EO/ޚxC: x*GT`"oyw,yxu0bÓn㦸`&dPs߲MFJTYeG 3f Q+tZ$M!jCƺ,ȼP)Y0Aӻ1潯jJ+D Mƌ#DKo~fn\axn],Ke"Jm]r94[8\Jw;Mgwy .ݞ!`j9xAAqlXJ"Cړ$VSU +)L={Vdsb sLOO\L?Ceӯb{MA4!qEzEI2^99!r(NN6[5x$ G!s)(Q̮Յjw%"(3ǡث%S<45 iUf)SQQ"uP0?P8ԛ:z`@s%UJ"qx?0_Y'4l YcOdjҼ>գiNumc]mqK8 "1:qB{@W"{^&=2G% T'"K EL] fpAVd!|5}?|S'@}-#hϖ Itw'. H;AS*AԖ@D Rd'"OMB BoZr^@[F4%5jLa_G?vьcns]H/چЌ^ %'hx(|3"q. $ GnM dVܞsc14)]6Zl[h0"נ|58Ð@x5xe"QdJ23_ѢHy~AqbkP fˬ9~%f(w;SO|ch{vt}qo>Β)fI MP[܅YrC2S{$ {. %;s1jS [[f<ȑF8V>4C{PS`5T6 wC`sS0J޹kfR")\tc#Y;ͬ Cd܉b8-QgPu/mZ'!CH  >l3WenzǠC9)iR> dHEWgsH&p4[XԸr)Sj0ௐn\־E>C^οJB|M(.  U#оuMF}+z&O_ 0/(Sc'6ZR=@M%<Ě\%C-'k8?GpآV %m?MAk{x~*Q3*@b;_WPԻlݚB毛Ggoщ'@orB dGئO> s!oޛZ[il n@|btam|l '=Q&֬!)-4 g*OQ5\ņ|Kn4O#%cΟj6ha5=1u^f^J,|ݢFdt.#CDWTUoŰ Ј$Vɣ;"KLSX'kTU\}Aォ ;NW"7_OoyQ6g?>V^?4:',rz$m}`IP0q4_6Ƥ+ w.V#Ͼ3$Rn7NV3s]*MYVQTɣo}k/VҧuZܜ "_";npƍ%%PEu6ǎ^ޙyi38޺RTvs%3<5`>5in9}>/@[FJ^d?g'z#={>16A#KM/`Hgc=ts@[Ti`ë(1ÈNBU59SsCy:"۲"=a~JUҖ%pnF,‹)NW"v|+JJDw߲O#$j݉ iJQ@YUe) 8M@y_=g'xY ܖb3ȯl=˖?3edm1EƄCh}Üa?0q&udήg`|v'w_#[MfHcЀw{ J-a`S|B>LjWS9ן)tm6_.` ;25Yt4$/y)Y |qo!W67w&TƉo ܗ-;Hyw8I֢FXb8.Iӗ`ToWN 1u_M >R16yB=8ǭ+;$r@R#qk^2>I^&G_[6q] H;)[2w'0?ʠoG6zL9 YZLoegɸ[ bFBk7;DZ%w.=my}>v\:=vNy9⢽lbV eho9)HuiZXR:9+i5g]t'^_:l N`>.Eg<ސ{ ": ף:OXh*Wx}xDmal:[RM*ftYs '@w?X]GTGVeﺲI"N9G0q%5yiGp2Q'd>=[07H$&Mɴܙ\גz =YI \&Qm K:qJ@DKd5Wa$T;|{P:_ vl 8LPE޴¿<򯍾pk9xjLiToLc+~F{,(({ \8ifpq:,_Q=H܅5lhFL5Zbpd5㕁lNHJP\ΌP Wf)P4_,bW .KYWs'x#tZ@W?绯\IIq4 ~շcmvsV4Մ;[4*3rUbSj.}G{eDʹdMe>J9ϛw+,-?̸s5X(~y&R +xkdvEwO@6w\Q:NJD5 ߬xf~f{?441 oU  PY>Hja!~n(aXAݠeUq)d)qE[7_\1M.6pU7f ,AnNlVưťznQ(ɍzp07x:@dDv"8P^qiN ~unG WQ.|xx,[T\Y|q)HRZܽ,Vwww;ݥwן?'9M̝;̓$M  MJRT F %AXJ,ool%5{Љ /S)j`honJ$+᧱ϟ֦|kl1H1H_UוjwRvY:nsN{<{:Zs.o9}zxpL! Mܦ\)`SgbpXw6 >l&.wm"cKjWʏ.!7F CgNLl69;~7wykv80 l=)2ZEBk j/^~Oq5NU%RɭTLbeQ eUtQMq4`.CK'Ŝn0. 6FS3z'*,IWwܗ4?b ꦾXDLP^ѱ^ )*Uؚd[s`)S6^ " 0xeQb[Շ.8Q r,kGCOX`.k8Ψgn7=R*9}@ /? .)/[5F0<|~R)j\ p-0e[b\0 <5%^'$,^ImK'6J}GR(kJͬ(NGX3*ǸCM={x3+߭!d@/P3a)ęoLYŃ&iNr (/f'=Ȇ ^C+ EU)E )J.LG(p'Xa YzAa;a2(ALG?g;(`Xb T1ּ_d+й?Ֆ9j_ WC852y]? <9[dVl@3}4(ʶ82[`}wnُN7gVlEbieG*>DRJt$H!fES#b$9  eFM?/$=1^6cnI1#qY%g.>TЀf Rmam%I {45Y-ۋo-qڛD6Q^d*d_gqoKُRZP `"_"<n&6d-=qLcQhpyAx W5&(_Ǡ?޼D@ 3 ͱ +!($gSJ2 aAu &أI\1>+39߾0}Fxh‘!TudqiqjQ-J*zRIIj2Е8@2N'0 '~ a&@ ҫA/.QUԘ\)+:b`ڱ1L1Qd |'ban8 G1_I0gNN3v:f $IA0&#=Q21pZw_f"Wjj~8,o/t8+LxT,GA]bp4A m]§Mdk`L*-d|c<'ɦo&Yǔ(}P%K6/$k>lh`1QZfr+{*NƐ$@qn) bo'R4{ G'dVoSʷdȃsDBS?$L"EF($ +3)@L$DŽ NCd{ZZa!D߈70AlXt|fhh[aw랍ymhBm (pDEC A[AG[/OgZQG Jҳ 䢬9".kS(u 3z ,N,ˣ j!qS/2|x+P/ghD5J`/+IJn㨸}@ QMxBvT OHסwJ`^@Q鐣hCuS"*P)|Dlr z<FVݿz]iᅪ%ݩ\PADR4 TaD90{?pGfpBgۮ벐IЂ"<0%ݽ^K_&ֽ^0g29HΖb($|1ayίS{r%նTE( (V<&OD%*,Zhk-}R7SAWJzyz"qOb)á 3pJI [p,@(P+\hazwl6ki+Gӿ|ی*؉*7vg ~FO*a6Ќ; 3[mm\a3]T24q`OYDDhx\9E,!jC88kk-IS\fklpf\dge}8DdaGZZYNEWYY Q6ַq[*cc(&IUH[q44[gCvX>T?*q~➢βa'~H;fnO˳Vd<:(51G9v<~DzDwv^w}2,yϿb ꓵqzގJ)'S/):ٝR+Y/mZV=AA֠C OTɘrF$֯'[[#KT ra}.Vbh+?—bl{H7bϭ3v[? +nsD).ڐzb:ް ]ʴ3Qt6,=`CP(Q& kEZރlc2 cLf_i~Uyb:$P,%h?}%ɓGnvuXZw'xuԖ^] 'i{KoVQ }Z$_7^޷ wRdʢv"r~+Ѿ$D7i]pxYAH\X9 G PИv41!6 Bc|{Pˆ4P23I%3lwwkȋ0"/$iȈp.ZzberfZI3A]tNR:r5KNV#𪥎>Z`/?s>5^#f"]ϭH,{g#q-' óTҏh@qT}* il kӋHu2LwdةFu=zNx_9/,+ۿofzR}d hEH1|v<tJ'ݩHU%@ ё6Vd=5E;L)Wr*jέ-o.LlooSqC6#pjg I$@vRv;F@A|4/V318'AP . ҃ !kz{4oz-U\vW**?qЮ%F0\Yʺ_(RԪI a=5޶\Hbp$t-+J1ZZPk)14+!POxv 5S믿a%[2?uT&&|w%1xp1}c_^ /'ZH|K0,0eFNQ(y^Ea_H =q( au*H(5:45yZҪDTNFF{u]"҅":TSMJ䜝n)@VoT|8R[k:L~J̆Z/=c(H0 S^ov^`m2m;c{q~Cl~ڠk0XCz>H1+jHX<qPl R+o?;GL-ChV!M 6&̒@C$S=  )5kȇ7ӳ1zk]tU3/K,ͅ]=r22ů%_, z?DK! ,^13{Zv(ۢDm4~^k8ipwM\[ ޯ$YCA'uFkE^yjWv,ZА;ȁNN :^ lwphi7 ^dI~Ѻ$'L/4SrYh{q-vrQQ)𩐊S݅tfv^{!6u_׃̓´s[QG Dh:v< e^;]R:'3!J.~^`5E?Y74I$=|YCuZkrhn೼k@ϛE(ЁӽWOPrvoUMIDf݈R Ԝ`&Mv&Z*)Aq/b"5,+9B xruzތĀ{O~}]ϵ"`G&pdz:6iW6U^^,=/YbԊPx(}w `]*=.5M)Ļۡ`@B*O> s{?cFl | ֩w%ٽ5 .D>{ F=cֿNva8Q%ܟ]asSx{("50`ZgNuC "9-t n)K⑳tqe4%3nB~hssS?+͜N<]-v~^,M8U+ٞ 4'('bb1qK]oT:+)MgK-ki(@ jumsnT/&ެSm/B>b $U&P݋J?ΞW+O)lLy'""W?g\OGM1'MaNzB6L!'1hCs3TfX埫[Lw^Q1(K7^nh,d U-uJ lh G?~߅T~CV}Fwѥrs' iU'G\+}: H <4}kH>+ uUԲ56ۛuoP(a2[Fͦ +j]-M/tZ%͸cLw|Mms|T́+ۼ9;RBe=RδPݳ0N2nmdGͣ]CƐPj7+^;WC] 1qQYwzjA璧4 8Pt! 6mM1T+V[TH)t i~TKQ2]ڐRX ])1K7Ḧٟ(K(k lؘVh%AX'qߝM^P;;|y{2-ܒRM҇8*/!Y0ȸ_ 0Q@ ;u#< ^V P*ewmM.a?t5ApV뒑C .? ! L>+\-KSǝCS"۔hK{"^]4ǭ@͈vCm $ϊ CEH/OUh@ ismƦ㻘ơ&&Slf-$QGD~ 7gs󡐐gmnV*r%HBE<;Rer_zIl+7ǬzYR6hdvK?GD JlЉ(Ja3&9_-A.W@‚-Y*,V'`Yָ`|ۀa7f4,b7.w8MC}]]CGŬN: ?WY0IQKcUUŝ8 77*q~pogKt:e9!$_ d6  +2Sdk woXrfƚVo#I]̚yʅmN~c2h )_" D*'=cm,_n}#`Z6\D $㫈 ?"nFJlo_ "ZƝ= Jl;0^'N=gpl`k ȼ'+Ze̫[q]MuoA˪x5/1i#_gЖCe]u7EaHO:Y[Ti.eG!1eT$ϼtIht<[:M.&;)+"b *٧EU]2{19Г-7 <ĀQtLY:,#gS~Cj|١Vy.1[#i2D"hQ+-~y/Z fXWaZ[нXM;&z(6n3]2.7B?}d[Je@\vCc/N^m9[ ưYpFZmU5|>Öfm1f6hgR7m+9,XŅ^oȲ:o"Le'.±f+o-mMP-Y|~RAX酺EFr ZR.ĸSit:" 14Sa7 $'e"~X'vض|lDkr.]-6$E~pgzx*]7,dV C>JM J(CpՎAkd޸N?j&ee-Jsq<164VR`e .hJ nc'$*ćBꞯ/r)5 tr {c@U=KŞ؍W oqEb 1qܦT5Al>9}#ZmzXK88c:&U5c7{pL n 9IS4d(3ALWeJEe-`axƒn?bQ .GGiPi²AyX b/MAGoQlduZ4X̍8]o[ѨqHwi̒ϱ:})b]6 G"\z6+L.PaTTqV=|%/)5Cǖj 0^Koo?u⸠9{ڨ> wi)dje±%MĄ00ѐZp8,lA|ҍW߸naS :ΙҤcYv(:g?RXLw9_DWde)g zP|R([fgzq9?hU^y e⹘a#Y]U&9fG'4S,,~,y㼡jg9`%oe7 +;rE# M|cʘ(i؟>6Rg'4J_E`*1[d)()WFFZ3a{ EyMŚ(BWX\ 1LFk=Z5Hy 22 xhwv4;Fuɔ8~w=H4 ]H8ef5G` .@L,'<֟l.A)hŶ|ҏE/91ʷn0FHD,N:W$}z%3GOyRմYBaCXGbb[5N6e>P7s#Lk%g [A6clo&b4 Ωm.Agn3cF˙kl;2n3$ȐLNoj_srKFn2KʦAeטGy18@LM QVҁ5ǰh,fjCI(mhRAL+ŎYAg=S~6auqa]ewcΰzz=[)Z3su5թM⬵E fqFu)?ᑢ8F&dH[c|6/磾T[ZX؁ $>V⋻ixPOc'#S$ߐ~^bo^7*D'?OBe%.܋:ncOOo(7>mPRP20ᔓh?t:0g'A1Q$n A1>T<ZŁ/m\nǔ90Tńeq7t0_ا6sUG1 j0N$c0{. 1jn".:߭Ai#sګ3v\`ArJi3E5~^'bD$K^fLSppZ 鵉=efAɵBlEmDjIiѬ! T3j.hb{ DN($ c,9ȷP[)]!~y -UH4RZ6 O:cӌ tC0U .3n8s.1-VeHNtd#-Ⱥ b ]]/K ڥQE?ML\ڇ_`PHO[e4jtk>g/^U<$*}(磌DSV#%IE%ַDᆃ]*Uݩ " +{PHjDI^+blb2 *m5\hwS0P o_e}f7] R0U4|||4Y*{q^; 474hk;Z$By ='yCr9_-|\V \">('G[ ^Ew1^uɦs{ԫ=񜍶Tʦ3\{@\w+G8V.-c .]ψ7%m<׾7jإ?6+ Gac JVX&&~iHu|qxp'>"e~%թ}\aNՄD;mL}x~8;ÍO/VUL7pSyds?Ϭ̀YlN 3=>m\uua/{gPibJ ە ަc/ ]T ^_)N=wPDx߻8ΕXHf{ p1% WDv{7^Xt =_\ ~E݂U,QڰWWlRE=XrA%xG$7E7{gkc6; 5G;?]GxW=7v4VFn$_bZgIM24ͅhb΢DvDnFqatoZ@P[;I89VV nb:IB j;rob(A@P e 4/7X>J 'v +J 6"1SrDD'rjG} ʶF$::c0%KP'8RCAttfr|Fg%6HB5'hy(:DX1/unF彿U= ;_/QgKzK5C_$7̕e3-OصHGqK31(ɡ7@ncTHf^UY* ڶyXQ/Q*~a:\Ifbɯ`.u!S~=Sw1PUQQF*C;1""aU&H^Hܭz.E(ԅ=KkM]S [r$Llt1⡏0Q`2#g@JLLɋI7j%6(3M[*4>1>Bר^;Gm rK {~j$fx1!ʑ5цYri!'KbG0EؔVi ~ I*N~*"-T(#߃$k_xbs;I81\1`RKU8,RpY@6,aPXܵȼn=cm/ çc#2 yR\}#up-{I40cX]=]4~"lvte#BhaXd _p0&f:!KmSO/3$s:JMbw" e^8)jA󫽝ѼW#ë̬4jyAgN@35ym-yŅ-mmhb֍#]UHl̬>8]ҷ rn!n9w_<;u\"Xѻ.u]M U8fk̾\haE}}lM8͔)*XuzS%Yi-{ }`R+˼ K)ԬYV޲p\ɍ;_'UԹN}c#! L=S8ђy{T+[7/PF10Pbo,j; %A h aD|6rT@Ub^jjnΠдcke.9T5Pcq:-Db(A)#trv5ul?[kik)ɵcd:@FPC{!PfĿ{-HBt&& -T܄XS5RPPYNHЛ&N @%(OjzbC}J̨.|4jJ%01 € ;_Ƣa=!~_;[CܮԸCa`>h| n>\k4 hy!%\Rƾmgc*Y]?x5&5vQy;ϊ#Bv/[`b.@)&Ge8%-`ߨj% nO 9 ~?Sg m;\v?GG"ʳ|Ӎm~>ӄ [! |^:6Cgjc<'/oi^4|x ٘؉T8F;w8a)? q?Άn^o<R0q,u6|h wK[Gm̗[h$g`髇YYaQ~_CH)0CJwwwH7 CwH)1t %-]!勿|?\}k#P4u^D?4ÿ^K`/wWJg_3)a?7쁃9)h{$@=-KC%T~4Xw.m,H5@oc+HL##7Hd"g& 7=L_T'GY6XhW))2^2 簡b$ϻprCIË, , ۩喙#mK m=FIXs"| In$U֜g5WM]?qZy}M_ io.cd`9pF~Ql(~N܏ʏ%%!\5wБ5]& 01;\}MJ.+iDSfc~<|Qv\5cc ó  #c;XZir#Q#³ xp F5(8@$Tl\+1"jeIڙ>Ꟁ1CI!$7[\;Oؐ%]hj\ckjd@(Ч( | m]ػrKYEMXb>BltytL^P765esoTJ$-q7mMC)agƑ %vX|d u~6穴3̘wyKN{1 jf)3쮂/u]=YלEvAJ%Td* Sat4,'f$TL5ΦCL;)_*:6uԀgn9obL y.iMxf^&ޘ! IW`Ԡr&#V*X3IJ̭A;39|%e]1%w%Sg"bN4op@@NmG)[Q#Ӄ D_#w"mښxz v Jvkx@Hm9A%QliƄ 27~?\ykQݻG R LB?agػܝ'f)ȴ؛ϜTo)_ND{4fQLʐ>?MܽExr,iY'2 P@By FG4Wq?gAlƣJ2+yE _wͨՕ5 dpZة  # [#ȵW5&3]Z r2amON6~g}[" h8; [I1xPNBB8o}h,&hgs/[csB2cp;pU ÅY o|ټT̏6e)K.RDW$,Ja3&<U04]Hs8i1`*|`(An!UQyL' yw^m&T$>fk0QE3!J]է/"<4)@>{O&6D }jhؖ{Ƚ^<,}`F:y%rٟ6^CtD: cM N- ʕ'xʗ`u$| _J~YR#Rl8wM R4 U%KPtlW2i+帉q@R}:<ʟƠdHRLo?'QR4yGWHS^+=~!b"*Qe#$Cȷ@ _b\qJI=0MX,v<7;ÃyY٬i@8&XNd$h+mf"P׈"(lwދljc`Lbͯ4/jNIh9CgN|i"&sv׈n ~m;xhRӒt_@I4Drr14:2$_CEAfxspE7UU: ؑLyy\,GYmOWKИ>k4Xqwn&~>iܹ e^pe۝ pDL+(%BYtt1^ .f mh4X G`y?o!`=Y?DzJ_}e0_ je:ܪ0 IcѰ'S'NZw%J~TzC0~IPGcKʄg!KL0-($`LA8,keʎ b4$˜T+֏ƻyhGcr&t ȰE)+!GcWɻ&U 2#>22{ݷH޴>+X޻Cρ~ցIk_8!1N"E! 6=k*F2LW wLr 6o0*_4 ~2#K󟖌JuVўr~G[8E?ViH(HEK †"JpCw1;PKhb>5UN=uS a&hλJM\$NW6O'j4le{QeFBQV6=n`fBpm0G.*AH?MRf92;磤ZdAahSi$ni%tfp{yh AUW< /i1vH#Vt&"㗅/i\#d@{'f4D}G P~|Mzil\. ʍF>UBTL|l;S&w_(.JX 6X{ t.%! ں5ߜ}"vaaGt Rn z]6Z CTB-@TTVt{E,VtXTŌt'KBW@ {&KNsh4vd/?:G.r6j>Rƚ6U.iCɭKNq'K̸8"6o,jL\,{FnMD@Aw1mL'ۙ KZ53gŖ Qnz@bCf/"~0 &PLRw&su/]827tl[6.K\s&\cKŁB :)V4xcɒ_CaB tdE+/1kpA=ZT4I kVz1٩lDBIS,gJJ{ FbhzҬ3->1ӆ]/*'EO.ToHr1#*0,`/F!:9e5vP6]-S8ʹ -gˈݒNuG[Sr|;Wر_ =w?@pܡKQCꧺLMciMy@X4Xp5ulQ\dSAlgwKWŖfAdecc,,EkɁatv@_Y$pG:6gu@G+~@ıG.O.Ũ{ʺj[[?ה+}nZ+=zNx1m!+M+]`[(=)% c;.Xv-DF3;xߌ$U^3ć2ےNa?M j~'x5]xQ&j*iK QV/c2t}\QMBOg_z3m?zZ9N ᧐c1F:-{N-ZiUا=:FzK~|;$^x6[$DENΗC&E[(}8EcvH+&ɁPcS#EЀHFN^ץARU2c5R_xVrP||uVYX}K<~{^[2(Xê98ך12 Qr'۹އ|WzwNs󵆫$p'i^M.}3/27|A ޹NCEexRbYT(}Ĥ$]wBq۾<5Ǐ1?v)Z ah~<sZWZ^["? ih>^eI%'OߞՊ^-ds&,>x0A= B〟>k]s+o&ڶF}(Tu|0h*z s!Z|Uں?.&bKqۙ&蒴gGY`9!c[~~a4}>o@-aZTwf{m4:[ɜ u|g?3_d' RrvH'%HyGLMxQ9}OpDxfs>%5G;W --//9#`6 <abp<Z (Ʋ* +(์fPDrc> px<3F7KTDVR8zŤXo8U Ƙ3h-('F$oRH^NVb9鈁x47J>Bf;Ld1Ф4z&xELź]R"fv=t`Wʄ^%`6r!*[D:\dj @qV?򪨍Gl-To:܊>m& QwTh ףc[m] g^~~=?5gIh4T D xcG ⢈߫ eߩF"lb?plw?y$R=œqI6kH ck,;{'B!w)*@?8AQ@ @-[a1\ЀE"h_ )N%bv}-Fb Zz[/ *kB\.*yBGerQc 㶿rD6>>Zou̹"SpCYf@%sdeڑ~9ЗWaR$Xmռܠ7>>oiOT(*%]G,(ʮx4mdDB&u{|GS;Kmj&̒AdTp/404mڶO>vYC"<2]TlVB\i"5lV/:@(CWj((S$دԏTsSmI:oO06 $=2Sr&?uڦAʶ;x7W S 8xedjiQ! E$hhpoJGÐEwe" 㵽&ox(0uZn6krb9P.u6wf$0f8 /ۧƘ^4k[؉u*( ^>aеqJ^.VS@".n[a#O0M:$uHxCA,DdcsQV4*P{}+x Tiqþ6,A[6LyME?Bp@^Sԏ\%e8O ];^lvC,Ui Y伖?u)+M!8FN䈆 hCҋ GI},D# ^h7ypْ:f)Ͻ V7G3@ E)}*};@\XJDIIƉצ`S N&,q*4/[\l$ٌTŇ~WM'>7*X'sj;x̪5\!)KQB=D+Ж!=@H@ڛJWNR7) V)T³#<B+&X/3 LK{^0*9Αx /4 u 9$)T2~*cah^+*=&MiٽIegy6~9Eɺ?Gw`+;m$bp 52:* D[iS-10ldVoQ3yf(EXȜ]ȟR=) bIMcF0:ˆ$z}Ow6KN$y[bGǯ³i"4zQ]S9mԎ' n-tNf߮|pJgҗ)oF1?-Ymc96:1ͳZ}onx&! $vg)!LËXMr- aD#ƼM@B_,$ P Ο+0W4j}.,Tט p@yof8s+ofA!AͭW,-ܨ`~E}*DJQk}_C\E(pL8.&7(; ݊FƩ3lS102x*NOJ$ uRʷ 3Ǵ %Gi!e褴c0 \+IE 1J{ R!$XH~:F5X,شL< Hr7%CRypխCꪦMtTèxTA;ߐ.DjS&:p>,6] ]3@~Ro:lȃtܢBFWti #~KjW\8\vP8QwKxL-ԧWʼnb CGBI xDХ9׀}p@s :`A8O\4IR?uXV/ 0A .=VFf>:8SBd+XD6RU{E$l`S%!--rbL- 7gWT.= LV=foݳ>1 ;BO+g)W˭^sǞ=1奡A|j4y\ w׷^ıÆ;9"Y/k;yޖ1csԌ]jSo0cJm  #b, ([VyhʤᬎJ|-KK][]^fA?y=e\9#.^D+47v%ڑh?!,TȣW~o9^Gdx&gHn9xB׼􀝫U7,R|M/[|WX?C~|ho 6⨹.m@MR~]"9!ZZ }3%]5$x|ו\'̄뜉tG/\E"*atܛ65.7z{uҰ!!)YjjTPTftKqd9iUUyYp{۷l.35r6'Pg+J٧GOb̧mƅL͹uڹ1(r.^%!}kvcc}n?extSEzKe^r|xdw_iDۘR^4Λ5ڞuc眴YO'wWTt&rcf'Q)M*{Qc",6 az(mTR/4M;]ق3e\jg/饴fٲ&jDtЯ`M4ѯwiur,lv[}`{TDAhEb%R*:,n5qUPsW';B|XvJ]:w+~V}8$dfų: {4*7n<. Em5o:$[ q~̢K~.\sY00#퟇w{(W~%|zBBŖU%Q]ƞ8U۲6/Fe{"qȴR'@8=WyPTMLYAf3~KQ00,sN;N*^р16U"<,` qQ\vf{3fdŸ0'v!few+PSa廇f=B8EงdZxz z u /͹瞖[;pbYǀOxxӡvUMiW<,{mRVl BLg>!ŹffG$0zPP1E{cAqPy>HXUibdnk埇FZ7-qc4KΌIäƒ{߆Iaxr#X<(oX= ͣz㙛G6$#c6XlxШy>T bGkH <:gCopk9Q8.9;+7aËIqYxb/i?$Ÿ^ ZZO?ʀ c# P Ƈأ=_Y~rX9n+O\0$%$3p?TϡtW&CֳAfa)|jWO߳* $y +Fެemiƈk }BW!r9!޽Z#`c)-Kĕü' ꬚۾x8>yVf҆|y5W1|]/w%F@HUMrgl~]?@$8mt}X$D I\ Z\pZPuh\eE](^W|v}֋v"Bj%S n J}Vn-C#P+Ԛvʮ>]?(Pw_-'3 T?ݶ'sLw>+b$#gWk2p':mLco|de>SgcmBQcoAV-ȚϽ˝"MWA|*K좍nOj=ʑ ѳ*byx1:[(S_Lu]A]|I[Tm~80ʃ~Gy NH7 _ E%è)C0JwZw(4# B4J2@Jp]Rrs29HiO5:&֨ݕXiP.=|8:Ν)גrt\o@SG_EM ׶y'A^^zw/iM1ǀMXjбmܟv>> 1Βn믉k9cSYC̷.v 4ϗ*SA's{(5M1˃mQYn*Aӝmr1RF*::j:ϢDn9`h)Aw0>Ήm+0oWk'CLMh߁t/9Y 5W%ޘ'nC x<|A~aYpUQ ^]|Rgy0)E:H9µjI[(?Z*R⳻C?KJ8ީY k_SY.$޽ ӂ'%'`$'`ްSN9$%6uyz}_z㲨(-i?ͮ-%XݶҦ3hfuDH͕׬nw~3k7_`ڠLh)۱dZ7G%3r4aX%%)\ji}~ #v"ACٔzvGAiIW> yUqZxJR?fv2R>l~ZAYs>CC IY4/s<[SRkG9;j yeg+>X@~ŀGL]|5}R?U_I޾kf>PsKh潛RHdBQf)OkuqW|f[5#szyuX6{YT(Grsku<dYJz7rFڌAB\%3t{r9#x-- IsC#KV4.%=U\&#ٵ&:jLl[O>Ѽ 7C2~=헴L-Q^PI$tBI( QF$VuB2t,\{FU7!veZ=gO`ͥWӺ6_O-Y ߷Tnq Fr^ЄZٙd:8I7]nAXrFF+ @MJ[:X2_8ӉY[z(O!DC0^QfhK}S[f z4dUeNUp Fr&òdĢZl*у0XޖQŀ`̦Tv`G"WfÁz֨wqcMS@,HHWu#=qOobp$f-DmQI^mۙaQvVb>}!=|uc>(q.:bS=~ZzJtYi*ꪗg[ZO$ BB"@UTm/laO M,tjh4/m2%F?x_׃n94ZeHHo5Z+3S[W LГM)֣6X;L5{;o~HNQG;dʑ6 -~I #iM 1~:a;N؅fcwkn/Ʀt m1/ur'/~HRb0b2J[o~y1`RUb_kPh{ḯ4)MT.vUB&F+ʹ qZz_iRZb7nݒDMJw1m7k}Mت$hn5)[Δڣ񇴚VWaWz}ȬΕR얗0_g0ʣpсlT h<0BI'q =SilCb-  h=BʣpQjV줏Z,I 3j a%&w\ Pï:Ih+k >q 겯‹=_?\WyE,T~]Yɿs8{M[vȪy|XX>&NҧpV~[uKT$ڄi׉iŁd5āg30Uq+ypT,T|wی]w?~^:Y`Dߔ8HqshuJ9>+ǭ)ȧrM»- 87V @9Bo[,6tA9?3KrVlW^&0 (M{usZpbUQX˹htxc>+72qW<??={=sj)W&Nʹ͕JsW?G8wxhv}\(U}`mѣu:)bA:S7o:8`ԭ`RKEjRFQ*EyUEf1)4~gZ}MN}a@ӎ9e6ӈYqR. qgZ#ac ˘A-n-y_f]WS:ͶQu}2AKo5 cmkz ), -Ԍa o  Sq k?.xU&yKO ^ƲO -Y}NaKszHˊ/4TWovLد]:AɊB/> 8)Ƃx/_>Ҿ\w6 ,Qiiv&7(>ᖐl$O&pUwztd8CE2OL2Z[vlۺo= ^Jx:/L0iT.踯6=3V̤aUi1+_B;Sߒ-4bf $50s`qyG{еͼlͧi*RN/ͰυA]b5(~iJq!3%gvYX}0wMI+TS2z4Ҙm<&\|+I2AD&˓5ᯅVjbn7smj#F#K̵dї˦_=$V*ˍb MWEk/$~/sZɦdږcr0.-SI?9kkyz͒r?m:SONT2bl5Aϛ tJH>CTРY'"8yMQ1ZIbO) \CI?u\ġj ôKWUUnRoƽm<)x{׫-oLt>9(leq0ł.{5a}?[ ;rd/mcqijx0NM2bO ~US{7jM.xe)!.s2GQqBRJlwNeK.{­mvVjgO˷f`UծlA2Ϧ;=>nf>|a248NJvp8>5OȇV|B2'>,-g Ǜ}pX`QWnγ@# ϱ_΁'k /F|[7f 7$^いts4st\/A3uPGi򕧈{*^M!d?9T (qi4GJuiԔ_ЛlKE՚{MgsFaGF[ދ$z/]1u? = ը{B|;T3&AM^|jr4Ybn?#]ɅsE_F]7cdqL  "<3 X^#&ӑ. q:t4Jvo#Y;#!u'2(i pdp/ 7"!eo$q̌X3@(}?>m%r҈oQqVZda jtjcw1j@ːF*d5hrsQx$$/8~*ƅ)3㲵F-a{Y -U]3< 0&\{2V!Z$d 6^vsCxHHimb|n? 3%C8I:p^ ô4[%FxV poQa]^Ij,JGII4jؙ$$}O;hT'λ(]idP5#YfCn\%<~MVQuut%k6oX/cwJ|0S>lmq<qz(S#.8|{\o]`BknSB/&MSٮB;g֟[=] C'3en J-ѐbux⽛FIt 0tTKŦW:rPKLC͑kd.ĢItQc$XtkH y6Ш՚9Rr(j56P}s4 jt7A(o7E[(lBFQiXbn@܀e,u8/NU-&Z w"`KL@K}I2 ,塅AAZ+,RGnV~9/5]I 9uμQx|],P.5UԢ.TFf=P +C=7_ \\R+K@NƋ:o7,mI}V-ة2,kFNo}{Yۘys7k(`SCy7+o SS.)8vTMW.W^bmI)^tNOGB+VeV=ğD=Yz yfό&H0[~L^7Pv\рtʂ+-hHL{&#.E2yUiQmt (Rt# R҂0tI ( C3H%n}gkmVWK<1qYIN#Ir«IcPhlM,b ii.͸_Š+`|$^諀S-x:?}8= ڥU'W4HتK>ݰ$0g}cYϰ 3!Yf걗9ʇN}&D6-&P-;3O;K>>o}:QsCwbħafP K:Hx~h.ByR^_.Rn<5{'Gi;6^5Rimlw`.é|lvjA7אqU.ɬIڹI̼bq=8\I^A_PSxfK) ںIJ fMm)ߘ1|f .I(Q+J ?d>WNA'Ѫ *7Z{|$? FHNob ;\qV/V 2{U! :-hߊڶ5QzMt' EvOK`G6;Isu_"rSx˔Kqt T &5*\mhM0 }pQ7e(Bž8>[Ol|zVY+qgF@c(ޤ !%]&}. Z>V&=è&8 ݙ /n! U-DmiLXƗ>1|9)QZ'\%ĎDLn\L=_k(em,_$gOE^~uq1DbI' 0p r.U}IR3w /tgEy,5ێ }M`=q dt57 ̥b r\>)#d7 *Գm?'f|Xa OFEAB=9IeQh¾a-q{Hbb3J=~)U ~3 !teQִx"usiEJx28ڥѰjo~oP!<'6 ^5iRz6fmDRPwu$sX [^N3RT6k0THTmБW&Lkuut<=⿐͇6!Ws BRz͛`( (vO:U:%KMVɨIdBhɁWͬt ժ0[MJYiZ xJaO2/8@E4 @˲7i4cf\' jϳff:8]v7fm@,i 8L8v<6>Vi^0D)q<\o ,\f #H!7xK=ٚTu.|вae9J&KJw4_/2z&{uy1s~gK+ű۶z ::: _<')Sd2qJ3ݳܺÄ+i[M;Uͣ,7CqoZo5f#] \R-t)$Iuh5XO(Ɏq3GD.$I0{~Ҋw9籱y(A@Z:&B*O{ΦJR0 23Oaܩ?\8&: ) 4Mǣi9$[@=`aa|fiZx,QC>M}\ᖤ!K(bHRш{>4tQ3 ~|\Y[\{OW LUٯ_ri3D#i$$!h6Do3 i"z܎k/xhdQ[&Ư3.1ru.b^ZP L0W}WlMh m3\tGnd9jvȘW4 7Œ:mN*#,ɜ%Mɘe˃.6x]#؅˗uC'U?z'Z>+'ܴ:-賵vuZYy5J{ί=l1Xqh QMV% ӥoޔ9|%[t"|j5qNJJĈ A'lg0 @=.[d@1˓D-Zq )mSw flD&ZZ)ENj)Uwxy?$Doһf:erX/*i8f& /uD`bO4TƗֈyhf{`!fKc# ;#פH8Tw ÷QߟQA᳽$V^a'Y BDYBAeT@Fxy'AYGj] @|-lL VV IoI# H[?)2mg_C25+b;$ 4.%bܽhbI !k[\ mÓ9B Il=oLDuTD,Θ̋8c CDmkw8.*[h;e""ITOsq|0‚kE]·ط(8H. _@eXPnxHCpN)|jC,bm G`t#͕ I2uK'B }S͔"wAA+]5hHД#\LDEM^98GƴI"פw7S+ ow+1G?@z>+ ecu"JVxMkjLbO"K5w Ԗb;`] L.h,3gϻ{"JQ !8ʤnB7'4dӷr?L]x\ߑF ̃hE>%cjMR%yJ9a""'T1=# ZkHe9o- @¾.(_aM"LWdzou,qL$sTnFN cm r| q4ox=v沪n"FS3ֿ2]_ l4GI-s 粮K'ލШS6*BSPǯ>$HY+Yl3Gp{"VX^#IS7֗ڀG5X͋aAԵXY7<6n2ygkݦanӒ潻X vbxRj d"CV?|:bm,/,:/kqЪ *ڗ'܅,¡do!+x31\SŹ]*lvfyٶ15oIX0L٬}{{z"6vaE?/[lR ,y+\ $hJ0kv ? ₳\ۋ :Rz1cj,eth^y5bk]l^8#NlP9pb gPP//ab.}Ӷ s"'kt5/ BΙ>6_Qzu T5T\9z?]ʼnsO㬎wV9VsO-?C5-Myh@w~}  Ui(ü p%t;2Y&&GIc͆c99.X@۴Y1ލ@\`RyNw{㭛fʤArThW+gxEl !X@a&|֛Jjt8& <^7cyM6O\4N\>oCiGPч@R;udvGr;ܶD#4)\tv Ә ]CE U0[mZz_E/&w 9.^&.4MfȖvz\Hc,N\X clYxay|>qn0U ݫt\eiѳM<V{2Uj^`gP.}x gԈ؋x| 冟uNKqXㅎ+ aUs: &&\ǥ(9_njTi2Znf&mJ7^M >ѫU2CGtDv47>Q*M/gNxxUʼn¶Zy WUl,R~a*ƑKZ*lU(ȂB5cY1jA. nƖNɕ׫VBzI.N7 '"s!V5?SRv H."bO\:.c4̸>s ^g 87j Zp^zDDbp#؝w6Dv+jѱ\ݡo)ڒ7ૌ!< idt*eNg]6* &5Jΰ2v$bcR{\niu*^ų'Ϊó-6@[ W ,' ?k|VO}{Z^7vK@@ 4^lT(5X6j<>՘cۙ=az, 1͙8v {滆,9%l)#sOIqkϴc|t(cVWoE0}`]R}M|"HwBS_iϿ GļZ՗ .8۬څ*9IwSҮR]d\7Gj=G^J®ەŠ|;/[8NJrߦކFQGy5VMT2U50ʟj#ZG5;Ek/aY@^g,tk}R?my(0뿽Y.(WMzGvVb}>%,Czv2R7  X3n)a!Rd</8 Oǡ4MCKɊ5ށF*Φ5Kig`Ǒ?Xnqe+@X'8_* qk?h8VSp~brг38]lWF->f4R8:(G-csS6䡷ngz9c[@i%/So:xK&? +{m͔'# +PP?L񥕞&u2܀0^|f&)pJB7QYDWuIr+ز I됟9 Se+ qR*tbt _QD 7xrwQTC:&+󵊯yI9e⠬q[靵p/& $lE+Cq>TLr!e𨚡%kH_>Dq3!4\HDu_?6Mnkf%}le?hhEThWVUƧ^ ĝFl0Z9N/JpwRJ͕ \*mƕAE,M/[gVa#;nVߺzə4*weY[LAtOŒ?Ј4GհL&a%z9z›ֳk:)L7?xr,neVQWC3|cƉꀥ͸ohrvy'ADwʶ5gRQ)۟GVEFRQ@Qg x\rƕϧLZdj.$%+^CT5ED^W* hRO/"${n}f(kssm~q{Sٴȿ w{껣ߝ^r}tŲ_`4l4:=USBj?^[tV? FV/]b>=guRt6<ŢȓBфDqbq8'zGaU:I&Q?]^?k=gYjpYO j2̨ n4ȳʨh/G[[ ̷ܣo`nN΍zVfLd :Mx kyQͪ)邻rU)oWp$󻸒.kS?K5u/ξPDMbj w+O\hIQt6a*5lww}nW4"(AC'_J?/o߸*]ݽ.ЭdDX;|5=ŗ;'B\8=['E^WEf|csr,nj.  >f{j> a~4W$CI1-є n&9l]!MxK'Q|}miI5zOɷ94$ yt=RWoAYҪU <UYUL9({b3BmxN_-dN ,ȏ, w^8&E7bl_n83vgx8":a#Z* PwQӼ vDZfEN W1 L˹002d&Җ:jKr[&,(N0"3|gpWiVϥYQ$48G9w9((Pt8uBNGSzhE͋3L8)0{4mrNlE:qRP"NYSxM1 lIw3#H-$$0Ίrm:A ;b ?y^m4X;To ,F#2-4G- 8Jش)DzNiT&M>hZX2/ ȕDlƀ`rzeWmw+VƐ`xZYvU>pӾglpO@nc'U:FIB"78 xbD@FCi$)ruKzG슈:v _ߧ/o~TlD e~WN$2ͱRv$06 8G <+ 8;"#4Z߫HqbJL_x=ѯ3vB"5&>A $ j3T&m4X:v"9I'c.H&ڒ9V}%B]^ݞ 5^y` v#M VwAoM:<0$.N]YX6~7q=^XO e,~Sǐ}(HѿN!Rc)X$ ARsq c!;ֳa¢~~ U!1s9vK>1c9eᖂ@GIP=5κ(:6gh s&~)(V"CF+3Mѳtp7%SzZf Oɽ?ٴ\\m|Ht3VHNR4Y^²rSUaPCAxNl$4 L[OyCWXd)U҂! \Y70דfS@`|P$=g\wni!X3m27\x3 6\ nN( 8;̐aƢmd G%ūguLs  ~CV5tPZZ/w`X=:D=<@$qO8kVT&̮Z_W-aTCPT/mTDA c@>)E&#ǚaXU0woa9kbl[@xΥyj+wzE~T@n\*}v l }1ǭ_xLdtIe8?IV'X%(=BD&O7 zj$5RfNM i [Iym820|<|/ED .? vDVzkOtQy 61JrL&E.:t.'kS (8JResU+Kt^YE}T%&:cҖۙX\ZLDIGKqs2bba]cʂ I=҂yLgᨠD_Xq-&Onr;KX҉$|Tp&VP4q;i5r̅ۮ5K!uba|e K(K#5[nL+~R!uO$ j#kuCvbX'lp7nszkc =Z ])BEد~L#öUl5C^ھD< u ͈c?ހD!)l })Nۿ5"'"G%k,eg%N( \PXp=̧B-&3#BR*iqRD$+P.]PIV:icl}ǥD4/NKU)w|#HԄ)&aJ]ݼpsx(eJhü5@pV C-WK|`Zhf~E88Oʮ@66/]DK]aqk(]I90]t^kExr6K,h0*3SGd!בŒ/څ4#*Ѥpdu #؋|7{ۓk}8~ SaLsAcRh%0ϟ 0{یe7B,L@c+2!f2: 8Ca9j&sHk$Jfc\Ѓ/ ?FW|4 = >3(ipHoteF<QE:?EDlc$V4 ԏθi&m:FxUQ@d'P9^5v[Fm5PM $a`a!T^3aׇo[,r.cgK%q# ׾z -M ELc˙5ŮDk " `m}Mߩh.)ݖ20 Τnx&.;d7'l~߇]\0t,MOX_A4!Ahx@(^X⪀uԠ^i )0mXqF9e"ԶOHlwN|ګwk979tȋo9%eA%w0,+>aB47YG 1 d29a8,𘜥"OEs2l#$_XtkylQhƐ|Fv$ [F::[.X畫-C ->@4fˈH=$&ccCd] š NbI}}=\Q.uS1XpS؁"{T@nla3Ɂao-CYs] ;i6hmbݐ=NfO@ +R:(3t.w82fC.яN>LN SʉN|N&]zJbE@ڹ(=hVUfzb~G<DDU\![$ܸɡQ]/*i ϵ{sX$qˆquz8dVژNGkm6.;;0T`bYc= FvRG6.u JKSe`YQ2Vc xzg{zwWAJQNAa!Lu:/{BFjg^p9~%Cd](?闗Sp'Zeo{bË>x%}}d4FV]-,{ =SmX?`;Ñ Adx*6эږh*^3i~S>]WLAG6jwGO| phKM e/[m)n3rC|lŴ)њ(8]/{_k;\d. :H8*"Vi 0Hzl>Z"ÕΈMvb^"9Qޞ+q6󌿬;p"U6I aM ~6c靦%;;(-bsۓދXܣQiCevǑq|?VVHG΍b~=O{˭H@8L:mrW`FAΣ3AOR6'!4iĹ.7DveFs7QK;?JǸ$-q_NߜA$jZ4\ݲZ\ށ點4eƍ^^<$[fly=wܹ}>1ğ2*6}Ari|qm;Iå_[)3TB74/_kpT SA_h;00[^ b qcr7Mʠ*w,}mgc%MWix&3[M?c!C3V**ևK`0Ghiي: J&+iU >{ pHBvx/1N3Kv?a$ypZQԮ3s/gwŸi&DM`n %6ku\SWZfv\+MQ?-E_2L;p8׌ Wҩ+}L+@҉J;ryԬYԦrw')(篱|ձڋ"(zX;H(}.gZ}m(]2sI3Sei/)@ymNN#V~z;AB)wc}{]T)\uw͂:`СjyC2ooK6(1l~*Ef P ep1iqwW+I\;SwZT߃ʓSO_wڤN׵4vCE"/x!~5p (eoׄ5'{+;X+r)zayI]&M}=5:oFt9f8{?ES[Q g ݵpԤeMD$K\_E>?bTx340031QpMN,.)+(apZ8uOV㹸5Ү* !*S+s rRu uSRs vu䭳~_RH8d[&X[Qnp.4ƺ)EI`)O&W~5hQƖzttul>Sr~):lߢ SܤDҜT=GyX֬`N-Ǯ |g}JF;z~Kb4f%EEy%`Bt|`߻0M-:mūU\hk&Ad楤V''g3̞ߩx`J}xP_.J)mRXK-  .EK@wACp w .-ܴw̙;w/g?+]5<@}]lLs>.!{OL1111 9 %5--=== StL@:z?F0Uq޿OHGJLJ?~3p .l#6;w{{.6]{Ij>u#S0S]3zL.(%_*+o>\G~ 0f̰Vƨx1acù{?8. c'2Ǟ39q hyWQyxۦXWҘ\Ym@\-H;~5ve-3211]_Yf^i^}>],34%xW'zs]!S'r-_/ENU*&d J;z3/$*-ioO~׉ Wb,̕>bW:w.r䶃 @SG_H3vg~]R,|LkS`'v#k<|I6g^{Z,HsLОEm=NmOr6I=8;hnY)pO8_ekmK 7i= ~x͸gӇczw׀MYGLmܑ/K?qW3@ j[b.GAǺkHMw{y w6j'.?0zfwv[bӿD5h$/0wȚ_x&vL&<-VۍIC3zBvҳҘaſ.4北)oW] =w?~Ԭq3%-O~Y8Nճ}٘^q+iJo>7eBxFBթ XmX~:3ruO|,DˆVUC\Sypظa-^-*Pt@ٹUuq-ʈr#P@ZX iHC`j>:~R=C!*rΣb`lSRf`9oIRvH|mbo ;) g~ ՘Lhj+rZ&wy!Q^Qw?exޏ}C\Vc&v[%yG 㠬;&"{o.R.k;!6}ؘ[΀ $2Swx,=-߀*ϣ죣AuSa?kRʛ8.E6̿tKZćL9XbdRjȢ  *K^ Vt;yZO">7a@Egq˧̳8OH9_Qӌ(nA16sJrRcĎ.;ㆄqRި!h#v C7S7=&J{^2D'V]l^͹OHl( s,$VLPZU;1 9ݻ2IDKjXnۣق"VN.SzΙ&V *M`aA4 e|[ʎ?hKuOsV`hDNF|iҰo*YabCU.=4׎g:2H@LrO #Anij_\x3:0]rV$\t[ \[? 0ތ=*;I_`tK@!ᄭΨ^2 1wTmMN))yĚZK)!PcֵeKqKy犻@q$9K;< \Pw:=!Ȉ!k3k?HL1zTKzNnbO%+]B3|vΙ!{-4ͨŷci͇Nh6ؖ 0;-eqCPe뷬o^K]mwDM\ztelk) ZSKB&~e|Ӛ M0K.Y,\%:x.{=yN7l3r&=> UWt;CB"oyT\-ڛh_+; 鱿'k!r\_-{.ҩli,!0C3.5\ڂc,eALX6&`c:T:+Jܺ׾ x1G K᧎~JW#GL ^!/׋&}b\KjViɈ֐w֛c*b+#c+hh.Hp"=tn-2#Xŀ9$>3}(Muzdq0{j*i29H M{?F* CC?&&qȫיL@)^MPtf ̀s-a+Lu7m˫Q0  9JFCJ@ZHRT$ߑܬ8S#\Z=mmmJŝK7{OgK䉳k(B~CN2)uaO~?ZNvX'͘3m%w1}7z `3s:7aMF rH] Ec(cW&]%ԍ')Z5vG?E4 ;?a;Ywy%2sZf~#{uDbCѼ\r 6vU%W`૴iɗ[D:g ͤ6~Ŝ.:8m!NUI''+ 9a9#D:~Enu4HUadYx:k>oN(yV Ot?*,)=mdZ C9cmq m+}2Fe_̕/2,%?271QC#K'Hu>a}[? 1?Sv W3lWfǘl')%Vt7f˱1ߋm8Бe ~ 7̕EwECPv`V3AG7X"YVҁJʣ~aߥ>DZ&qK%Q0_: _j G_dUSH9ymGnf4T7J335X=@tp+A~%䘑6Kz2umØ9}dEFD\#3d' حZrIiD)^HHwwMPo0'kyP`EEppELS~ωI| e9§z!/g3iJ 'p8~ ͇pYc-c9x̗3:2>bGLSK;m%$/O֭ʞiPCWe84!C)~)ޏ#0d⫼?(NǞ3d|8U +X>1}.{x:՟q8쫾y6,lC& W[ p,bxHYwKZ̀K-n @"05ע0y=˨#6=XK&\=-*;L9xSÊ=qk&#φC̮Md$o?D9Ndqf (Rts=#<-̫6+B,Z;5"@NUׁ^g2S(uIjb5UY_d#+w{󂲰Y1njuY#1ũ.Uh 8dZqM4^0J@Eߩm*"5*Ա=%UJ2G}QzަP5tIoMt3cyk@ /bLzbmR4>^55 alrYB𞮆R4@j2-PhU Lv2[-:Zڈ$g,wlk:c_RƛE#cޯ1o1ɛ%Rc|?\rŅ҆1FEqQ %*0UkETFZr3M%nMiy^l]*swXN$ Q9%)]Ja1E\dvun v0p%ΚRoG`Z7qD.QNo}mOLQ?H@hˇKLzX8ȅ9NÑB2˨'A-gށb1[#y7gS_b![%;F`6]kj=#~xx؟ án'ŅK)rnrⓀ " #~2ΤoD; 4 0d%-`7R^teoD|Zr%*߈+Tu`i'L|hHͳ϶Ǜ<+h=":3'Ѯd 5|_} M#Q䴻rY_QRyƻ4ㅷw{g( 8(vͮ5\̚=HT龌:iUno3n)I}Ku ASnXe1nλ6,ޭ\7FGe/ۚsy9G 7KGs @ߢ HO =2]Jq.UGl<㩄Y6l&JT}@Y6`$7 a xݮSN׽m!5e_{ʙ=e/4R^-0V"d-@-?)*盂B_"=~ms}<^p өQY/2]} vPI̅+2oL RL3hb8H[9S-A?Hj$gd e]Y&vaYvScB*xŞT ؑy1=1Qu=[Wڴl!ڶidp+%׼ޭ=xس"7o*wyx_'>|}O+&C A%2)_9y*P X,)-]egSXSEZpY55aS8X++)E'knUK.9-{mWs⤻?\Q܆w%Dewn7'Mf{g;4^Yio"w2^M·>8d5fǃwT8Yj,ը ; OoJbQR*7iI@V,al/,õ4aMiUtW\kV4o(X-H[?2!?o^8kjrP/n-zqz_qZ2$XMqE^YɫmC<=$S6%GTp3dי%!;P{'{6gU!u!27*JG@rQ'1)%1gG/ꘆմ՗$-DZշ%'ί89u:P>ObFA&0܍^ج;Nc.Mx 79ti/d|ښW{ЮKjÙ*L~8gjnd! [CLPtwKGKFR8z=[o~:[Lr=dK@ ?qx*SM"*|4D%:Vác6;m̊zW")l}7ma jaU|O"h&7!W `K0p=2fn{yڅ^p6dXxn/ fj/ %Z |z XՇMRyB8'Eܕ$d59x[oXpUN Dn5*ϝrp.$4ޯH +YK*gH!\exy\O=]k-,[WH_$?RuY(5v)@]n!ߥ!%v zNt5Y,NbQ|VW'k+(M} 8ţb̬ @if mӎՋu?um ͯE_]B>L#b5VL7'3Қ\Z/ɛ7[iy[@aˈ 푟%~濬7O7wtd+ťf qd~[9cK4?}12e \Ӽ={;lyIڸ=6*?[8 u ZhZK&>M:^`>Q _DɲGdnɏ~HK`}JڒfZ0!n-oB2 E8KrbUC2> |楈xہe#-}]!"'}S۴&_]~˼ϋ0Hj̮eڽ(f<('rd~cuZY8-/Az?FSaU/o0"bƏƺzw`X uu6> 3ʛEm Z/ `ɻɋ57.^vxLV _L;&(n?V@>eC5i`ʵQZ&SWψ),h:l7eyqYa>WACI1tJWgjz)xYJ_`QX YJ!@z$V@SzB߶#aGsDZ.qLzg93Մn&i%S].ň!@UoK8=*(9-\RNFr=IXvJ^ۉP@|903L18+X})VF8( }\GSaJNU\U_sr%tg4GQ[+܍R߽W'SKƯ6'(\4LX|!MZD=K&uE~U#X2YjPjT\3c}h.Xo\̯=Ln1"UQ_*mTN PihhԢVO[c!KOܫ8z>1=( Y#\RfMpWG9B`,4y熙9DV&5a*`OZ oҢ3PN.MAlI s/\9JDSU2HvqbUbmW"O7D_7rk|J(iNtcX\VxL^yְq۸&w'IXԟ;s6@1]u"yۻ&啯~Bԣw,k V ] uC+3I6+S,$%ͅP s*u'r F׏M˫_-LDorJWp^X!wW5*W',jFCF,IDKaΓp\J&+M 1C/u=cmLM4it V5/)v :\*`U#{T1~Zz (\ݾaAcQ2B tz,j7ѿ.(OV>&ИI91j49&[>WSэqF0~iȾ^e'MŁ?Hۓ0*d$QLw0՘oֿq0,=DF*:LЈ]$=evhH}PرKr>O۵۪ە45e|-Mإ?dpQ(,Ni.BM:^:݋jXhW c+p8l@hK>b9‰0"d[B^ݮhjthA] 0Yf7Of/ut޴ d4\X,NӸB44}$O JQ{A8zs%8`~=ް@{\Ev:{v~>xqD+"r^ϱ(>TyՅ+Xֵf0e9pfF% n? Q[;矻/\;02>^F,8NojIbbloOܙSUR(Ƿxeֵ{jnQP0:qO-6֓')N8=2us 3\q|v@P:duwX j]d+WV7*>;BTc#@]T"jS9ׯ91fv-:-d$e0{ro.X5,4M$y#%27(;G:O,,h-csgY:%1PV|9{ԯM"b2."3K=V5oT%ͫCچaaI]Ҋ9?n_ Iϔofx'?[!%ׅd @@YL|/\p9Iڐ=8=͍9|laL)Vlkv؆B@cKoV"U6cWnڲ91W>d <+aVbe?-@ޞ~-re`YF td8ě=I֦q ) 0=)M+j8~ H |> |)jaIeN",T؁V;89?7NOO~1ͰQ=(׸4ѕCumHUc/D؏Cuܣ6\Lp~T4/grU-3MM>>5V-{ mlwCv fg&G.K萘xmr|{֒<(G0 XN <֕MÃ}V:;-a{"uwY\0w+W #Eˬ$'"A YpSV)Q7yFg̸5t:܉yOlbsND#Y:@ "ߚP~M^Iv{X ٳBo'ٺd1%7gѢ~8Gqک[Ng.{AiC|RbKSU ՐD/10iM.^]vqخ ,~dKS.b]?6i] I \'G+xʁ%^{)ĞWE rh*%6Dd \xXQ#.e>]:Xm804|#*$NX؃d,ddXIXws4 8IMaaܻG(iW»4ܱq4)m]!Q  ˕$ׁXWP_ꮋlYMgd袛4` µ FLV6,/jLԻ1:WVv] _U;6μ:իk4QP8M~dߓ˵HXϪ[fJEQԻac['#.ڪ{dnoPX\h { j0Yɾ~K>CM[:c Rj}F%(z#!8ukEOJ<57QlzT\;xJLqhdp)x{Ssan~,!{Wu5J̐K'5!\ -)Y۫]|-"K =^_{{{PV̆Ly}M"2@g綃.щ)^s(XUcBRt$4܍zQ.-Az6a&,lHsWa"W5?悚H`yY7]67Ǹ4؞2`ߊ'%܎2@xȞjZ*A) id!\ =4cZ]wd>mҋ7䦤8.Cd5"D\! 4U .؁[@`/mL,)%f5o}}ӥN~. t3/vӖ~:IL#vLk 7%ʾ4dq'l{*{cՇ{FJwueXUrgCZP])9ͥ嵻CX?fqx3Fq6= BRArCoyBk3nOS f7*´ iq{z]Q]En1Z\?U5S@,ssi%P4U-UdސG[ b" s2ڌ=؞rVbbBA\Orgi}Sl'@ 'D_Ƃ"߬n5s7eVߏG;e}Ș.Aa4dB@[瓜3 m!Xfhfޜ"qq Ķ =]䨼+|^H8;֔QFDz[j< KVvYEyt4(/>/D[Ty&N;Up +(qYvrD(:/f~أx]N3ﰎ4IJܧrW["6`qXS7ˤNYI"8k<sվa94ZZYt |3)Q&L+i֔V?\3){ݢ掭Ylmeqkbt$bo爏{'S9+X L /p\QX?o4QP&2gIǔf ZP9+sL&XS9||qs&ײ_X(3q-FQʞ*4 !n]/mtɲM"Vp/=cP67Kk_Y.mG4iv- pdJ7o)b/k)6-q~aZ/+et*Rv d+5BnKBU{hsK?+"5W #Ηrn\Lɣz{ /u֔=sʗEmtn*UVo V)l0R>[Ϯ%K(ݔ_ D̾hBDmY?NǢHySs˰m%@ rjZ \oQ]3nC(qU1{^fs 8}t㕯Tik+`>Ti 5?tz 4e++Osp v{׼)xKmlO#rKYcX5lĪOh⷗;>i~p+SE+A2mMyI.Z7Zz7꟏z }):SA T-HY\ǰ [\w qNMޝr 8 %|ʢ|[U}mGBDNni)MmRrMiMwwtwwI7P_<9=k11=b͹e값&ehHJ4F uyN/C\UΠe?VENDEA#WkS914˽H UPp10 Ƶp-[ɸNJ%I|7@p4 Fg,R#Dlk:4P}aQH}T:H" Ԃd0GXb9\ZZ NI@&~&8ܫ:_6UY[`T5~dN*=[ <ŠL~#a -P[pbԃ`8Ry΍n ~50x^ߎƙJDY2%M4jM'Sjx&C0o:j߅ d$zdEsqY5'.ۃ?J63m0Yjd8drX+Y#eػrh5{fN@{)- LbqW>3)ﶹLhأ A ƾPg(:xvfbF@G0}I$( =YJA>If* [ge WKFfH9ұcV]Р-{flO9b] H=1M. )lR1dq푋diN3eX0lm{Ty? 59~kn$4۱.LWh!". p[*we|ўx&4wg9%ډr\Ȉ6j߮Gў9&3K&ԆZ90azfh%Bmz>;w]ťt7޳qhhtp5گjI9$f5ׂWҦQ3I'bp)AjSÞeyHXpYy™LYiW#0o$ffv@3m&K!Zd?MX9zpUjPd&(_Ht7 JoC9,"XBtǑk:Fc'5;mNHnF\c;S[2֘^b -nVE9obЃQ|}. }SjIlI&}'m&- e4 3p*ˇ%5MS{=8L ?RTPz2 hD xS|a+_T}NؑR& ~i$kk^AB1o0f 1R(nIuS$*AVW%.lw= +~XZx! -@4q2Ek5tIJ,li6]vіCmOL)|17/ '*!d_K$edS*(ǨORmM1v 4=JT/1'Ԅn%7£w޺!93ʂ`Y@nI8Cx6^gVzH鹮vh&)N~jPr8H3(*@hS%BX脷HqKa5v>OZ/7K\7H}壡9f%)Q :re% 7f%~5K!A VfO7s,Y2fGy0Ϥ ʸ!2Ʃ3ZmL/lBYkxiJ7UG})v:>Wf/Uhw8 s%G&yI=Nsgߔo@b>H`c%cꗗćy|GW޸.) ~ wxu?(Rp|&Un(pjm=εd.K'oġ{ 2G"+Bu*DZ׷K󓈧s& ~]:~iÏΥjRډ[v&`NtѳpmUS4nhrg~u ;3pLzݟ6BGUmBnXr\ɢҶҖOb%wPkwAvy_٬+iM& K=C Gzʩ?,x)rѳ)Q?C nәz w<_xg1r՘.*3vГ..w~8{()غc\R9d1 ΟX zҬ|*`b=&Nh\25cg帾zoHfԧlqyW7վ0X3 k&fgdִbj'[&h@щ+ƐؚIX6*.Ùr >m53DL\0Sl0gƒ]ײ7 ߀I :O:-O`=܀y;S"4Vs*d8$2Rrc>,ZA4xP^Miˋp|Ӵ^b%fUP95רQ <^AYjE2I4^fE e:k021lCSi;cL籒5[%aGD#ϣqn%dAl㔛,U,| k+9&uS;WLDp³}#ܡ =l%7] mb])u /ʧ6=w!BN-m_ۡMgǚ׊ʀVH.U4d$1 WB { 7muBIA7^2 il}'!QOVI{VId,::+I_[ڐ ]vN uj7q_WP$f* ts Tpp.;͇ & \&- nxCE{TV:]v3pIW(MSSleQh̪pw' (v1T-fssq[<9GMhz*}8~|Xg"ccy]E^!G}Qxu2o +ҕWqPE`^Kt*}WXc`׻'gS}mEf P]M (B(δ$%`H׍S@ٜٶI?:*; Gn#KaRdc΋nXNlɵm-6ߢ T1j_now*46'R peμ}eѼ̑ҕF5]_opݐf[f{?=A}.#(ZѹӨg_%E`7*NMJ( I nG-.k7߳ئT( 5;o7.c;4ԐyxH:HWOX_ b\If\q4YkS :mc˃D5a'N>܂H#b=)acm۽fjqų~^ֹ8x= %BǑV3kn}uWwL*ؤuZvJĭR%Hb高; l[OT /SxLw# iWRA$9H9[Rkt\S66 bϘv>5AGҤ% fx9RQb8bz(jd?t!;lM gE+ NLՕ%LΫ֙Kza7q- }~ kEBe9{ўXf@ izB="A$)nq[ʲ\?_6y /TY!} YΌߚr17LW֎qu&=H:&.Lj־WήPyTk= Zpc?2A&%rK*B3-'=Mf( I®ֵe YC:. vX}u/CQcH< zMj|62ng9(}Q׸uVV̧@!!pmɎ{L|A͉j) F6$vﲤMŇ0mNNJL^ Pypd*~sH2LpqOʼnH{Rz,V3]LvԲX·W^kT5r'YQkT노< +{=mx8Ь"y]PQZ:Z̍] 7*RoО^nܧہ k 9$LB}4U+IH#;e0[ww 9*\>VdT ?dXId(udbF%l*Ev(KxIa"DFe~R PKԴˈ:-`Gtfs5g+G*4S]SmfKV9<,uOSaN EeؖI.V25WV㈤o\#V ҽ]yfC<}9ykQE:Re mfYڐ~xyhp,1Z^+g|^yOҶ8(\J_0/nYh1G5UEiS#L9E~dQ+ !e-At}$-T鶝|+1RW)7#,PN3LLAGfb/s-i79yD^nn _}~#Ɔ(sPK%5 i%\ilSI6$<_[zCFQtϴ$+iȅ=3Oᨃ<n.ǿWlWd `sP|[[>zPE~zE~k?kCFLL# vW+e3FLSMb3s<6*9Nl7I5-ˌOuqy!%/ď)vAwKyo_QB4aظ(/iJO;QV8BvZFF<|qfݼwØZ?|#xJlVΦ-rlnܫ^t߼DYёSЋ<5?Cb !qyVMhVmdI5α|JVl'FlI+e* 0t6o}ߧM/%[ idU^"zó=Tڟz9qn%y=':R11Rx:CwY/l4U _iFd E&(m:qg?^ ]%{疓$G~\J+~tDHDʊx Y}%(dSw{s(VY >_طt[7" 7}Y~\;jL9 ..?jN8XV!h1}BQdWkxUa̱@.&^lo^uU&Je[_k1W0?uM1fHyVbՊȗ)ip>13%M46gs6U7g C|8HEq:pUC jD2[B|PHrm"2\/czeze&t[I{3ʷM]mAksDpZs0h8|&!m*!(Հ7K7%PUf|+),D`rmK#rܗ ʠBnϝ`M|ߊ:',,2D7}Z u1Ll{.۸}+%. ʸ&] }a'/7Q ef]qL\wkUɏ +|Ȃ"޽Śhҗ4TFL$_h6jq4l°_װ;Ᾰ#2ӽxxtQalډf8A10=^!hʰhmsY('.ϯgC/ lW'rWP{Vg$u]wxXzқ\?~k%W-S>_<!2炃@I7??W_'6[j>ް398pR]%:a- .7mRCLNf񔻯ǾUA4JDߠrt^0'iZ_ BO;^- F~b: ;fz֯"GM**$v™GQh:.亩o`fY[.&OAˌT}/27Jxx:XPMo%e߾I%QB@5TH3i:+\妜]|χ3)l#HP5K*{8*5֩(晝_lƼ bH_S"K*ڪ4Vxx]ƽ&kFEc>ļEITv]bd]l  p?kޝ|`ҺϾ(r{6guݥui\ `~?2ZaUE^mXh)r!J^31Ū{ڕR7\O`5_rŢ)ff6ybe-fM iD4:ռ"}_qm,#$^OMUy/8"oVMQcSLu|abbTfew7_,Qj:#3e lXߡ}O-NM WTU7I&vSvH7 ~J8?f`ӔkYa!v&[ ~92{B |,]Dtz-(ߖ8_*u.6l^R>e߅ 57}o玬a zgo!p~ŵLi0x-~ {[8Iv6}Z*ίEu2Kn&-F߀br?ܨpP$G^_g?5Xa'T*+Z| ~eO71P%Xb4q@+ 2v_IUAp/c\(iw}w o#*}JI`qgo\aȭ7l=?/>$=ҾLnI??"bG5^}%3G+_සUa@~g\osb~G/cWqo 5<&~*K,斂C,_u*6ao=;/Z#_n/bҧn3xMs׊dE,F7ST{$3>rXuW۴<]V4㟲]Zw5csrOED~-{[\UIO~0[UĮFNp^A &OV'*OgaBD(ةINuw-gc\ma&Y|4:P3 ]y\9ZP< irSQHރ/]X`H A[D6?s<m~ &Բ+ZnV{:V@)UPUl>]z~X 6"F&=dFh=7HL=k#ΑAkcIKPnw(\{ͯnFa`'/1EgG>)7CH: v}Tpx /Q ^?Rz96puj.9jȤ%s1eW}]_*rL^\͞Ȥ#6ʈai ;^?XxwQ]iB![0niV\zN֎%?'Kxן~ ;\?ԃ:}Hgl̴,Ee&?9ނ%>/'_7|WG*l"XO'W0 C+FCIߵ</sM!O>NhPn$ Tʿ&oU`!7ń;['<ܧ.wVҞ=J(uFX/]TRsW %z{v_ы !"d&=7G\ Vն^,raӼ|vtN;>&nGj_TD3D&Ym~ ( 9fm]iR_|m6Q}ĸ_+;C=Iz%컜r;SD#_POR| ۫?PT0$Ո|cEYMiyB!38E^{Vdray&Q `9\յ$w}Qtg]o(VǦ߲ F9IxY>\>Ԕ\/EDy0w= ^xwn`v$֖#y{{o Kfk'{sJm9/dTOdљ2E29Bc;%gtx *e[=xa@0ZυFcji6R$7gÌ'qL.VS  XYu@ nEdcLfM&gzy2j(  %⋑w&8]d-XRTD&ق}>2e!_%r@[H$fzaQ7rٜ[ko-i+AQ|+Pcˉ-\Jउ+=7bHZAFL6*趐o6,졼L' dDzb]+_~ ٷ^tZ${Y%N2C*&,z}1L )MM-J,9]SV)vc-BknwGZ7plȲʂN??vƽ%BۺpMt;#4J0eUsmR.}(f8fQJE!ַdw*UdW{t%9[ѱMbw 8W>-`c> h#TRj>)LˈfkaMCưR 2HٿQPj \0+Pȋq!0ۀDޕLEF>vzQuL<.b#p|yffqd XI/z(me&`kF.uNa允eLȂNFFfcdH$H6a`aۋsjx3tx_Zw L 4a:Җ]EJġݠ.nA(uͳ\,ps`H69!oET#+ߪ٢^j=ɜ{2Rb$àftЂ4@?k[ެvQ>M7y9a% ;'ʫ}%(qW Z#Zaڃyy,YO~KԖw&Ybs@4H&48_0\-&VB*|FDL zdODL{WF)]RwP>VI"tm8Z ]WkeZOGd4iU|0C*բ )%)q~1h+ҢM7ZDHSS#Fe{ j>c>'u'qd3Bۨ33ٖtt:b?:RpP\Pe"'s% 1c9 y=7w4Z~b=G!ၥlH赣%bS |r N0 zOߒX]6r5+dZhZ2]NF54^cGBR|BI^T,~r[)k#{%^/I0IBqD6mFSӱ]0"A_C=\Rx5&C@SAqڬ]P |ervxX>Ǽ˨VnndGo1Ye]yϨ<} “ "j٣} D{֎ڂ8vM>e WF\˟ 5  d$ **K=?tSMV!9OFDD3@,ad&A-=gG# T3Le@;,__rJ))k XM/!Ȧw2"hMەd ?n"d@_]w7^/8?3a~e)7sQgr8O{JݟO>cR0C5K -"Gl_};!a,M#bHO9!I Z'H8^l͟Ȏ,׊G .Ֆ}HQ}וeX2ƚ7дM33f$i<$S tΒ6//##;*ʀ(^D֬~n%0VeTQ?5) .~;2{&3YOlƧ@i 1e PP50񬏆ddm9 U7Yt bSjhB ob(JǑD$jm/;?~{yJO<5,DMGRQ"'.kGlJDG]:7 >E:V'wSxWVɋk@l`.N<-k` Gfц]P&]I:!ʢk% RU 2PXK(IOZ|K=v+8n;+z8eۑ?bP='SQ,7;{͊,jEn8V5إ2~xkElZdQCE j_d)~/ۺG_FM%"EJ S;tbe HS4O H*%kirAfb)7'f(JܚQ]?se(~߼{j" k( Ei?NPEQED6{v|F )4z)\,q۫uW|{ӊ"pq1~N8m웘7U?xx#iդ^+qH"$çpeImG3>۹=X(^;d5k}[zB.!> ttDKSh=l&! #H@^s<0ֲ"rZ*%}W[_`<_Ƣi-ҿrT{>K[cdR)C?ee'1]K/ >1F8PeC Yhf ɰ4Ac@J]oO,ɁK nC)ACJSY /L V:+_M]$dBMO.٘V%Wd^|.}adRPY܄a.oz~+U`ʔ$8¢#-O.p h nrcG X IJX~zz\䷧) .">C]*M'85Ypy^q- dB9 ^w!NKSbPFaO$f.%b7E|OdHK:HؿT+:m;`yEv='ySᆣ1I鉼O_V|qVǃ/Gz}=WKO=z)tEJdXȃ^ >3|({}%W#,sJ ا4JtwL]ܰh+7-$8jgk;|=rۦnL\}%'N' 攬Yc}Iq D3 fEDo6x+JeA#sPl (c+?~z #4X%3ݯ +1ZE*E 0~j,rk`١^2[$,ejqf), BC4"҅ [ sD RWZ)!2+:E*߈̄bOdt͔XX5x}]8LpCHu;ŷY{`VX+gXwtu /-4Q)9!E/ҢlR.^3`MEi1MI^ZoB+v8Y,|6ll[q:V+As}SMon[ۘ3?DL@L:j{BKĐKPTr"MOψeIe.N\BrcҷsŐ3p̓vMW[f?+ydVmI PFm,0Jz'ex)C)  :/LmNpƢd{?'ʁ˵!_@o(o~gZst~f؜V =\yiO#=5&?E66ۈ8lM?'.רGZhW-q4DCpR޹> ᒁ Y'T_W-7#Cz1He:r(*O'lvI];# d%Dvͼ[Z1fR0)oR^@+kSaCmcI{-ZЪ5_= 6r\h4'3?]B`WaEt؜|US>Ck%8Zphlˀ|Y_xY5r*CP1{m#xn`VkKak#Ns._%`S8}'f?ݽVrYƴۣ'7)5l(U8%#>Z;NBޕ_HYnOoKB LBL;12ǀznK}i_Pnx~H F<2M^.,<6UGGy)?sL8|m"6{1-u( 3`8d_dRk〸֥4Þmi5Uﯖ)ABT֙яv1ҫ bmua"9< RE 6Z#8:vi^[lLkrdQq xT߷& N HӸ4 6 @H~̽y5ͼ5ZuԮ}[+B)gK3;lE++v7" ޟPQQб1<,,LlGSґSQD2.$(#= CF}DGZl Y}֓Y6=#dµNe jz> H̒p(u.Ly@2/BE0]$BGrA9{iy7./r1f+oJ " iHZH+!pe ĥ֜E(/'w"ks-& ycjE [t8:.$Bչ,l4|U&3=%6Hʢh/ˣR835PDGqX푮Lٔč~f V?njߡBUt!3kh"(yGfJ}a.,ݛ=qbðŔ[4zg )]t8[L+{|;\ D^z$;^j, ]= NV%XxBR6X4Xmkq ݄5yc_B-ɦ`],]he'fo[؜_:tJVQ7&P.>3'&ߒEm[pO|Rlu7('h#/~\?b T)L9| {n?Xlu DE @b@)zp8vsrBVb8LNc9ih`]Hdznb:ZY+f[L(|g?+h+Ѭl |9!Kc]<:Bxx7[ZZ(C"0Ke ]qPye^hV .ǟOç0{ ,m` /*!kz聧>RQ.fFVEF ̭ B,FI6 kͭ2)+Vd=>FN%ќcOv)lB pK ";c6[۷ Z9,9E=9VKIȃKI3P̋ I4mme[WPb#V5H֣4= W!ͪ@u3q@~Ē +1 _G :8*KF[ۉ7^6c_9pܴ wڳ  C褭I=³vyx{1 $$bͭF]}dКqvD߾촣WxZ.Vt,.?)ne2q(:mzDmw8]P%LiiS,ߖπCeWC#E+x36ӘߦPUb :DP;[oB*'C\ xyms2& ='vHww=R YUnqe O3)@Q>;M+ECGi1( ΕP)|'"iZRH67/Ls* ۮ {8FĐ[qP)#AG %%lnSTlJJgR\ЗT(ݑOԇg`eC.E6sx,+{ibCnp2vqnJHbu e é0KWew)hrn;Ty&mn36]:!umk]ZBp~[3:e@?oeC8H69z=3>5_)Ƀ-TK*a% X>씁> N?W|VTFʶ4=\b_'y+@+[;į^X,9o7bMIкIdAaphhv~Е-jg.0iSeEteIA[ayyQ~JFCzqT%B0)Jhy3!Z :?S?qqe,RmkY~7qj2 K 4u#cQ+f+jL :.J-6I&f&.H!%0+]ԨӨ:m[%ke.XLo99c1uO=q%)@T{ K{v :RbnF|6mJT)VNn cҺ-ܦ6g@h^x>Dt\U",rMjةkt l}ZӃl`慮h#Ds Ů}6zj :A\/yTLQ͙kE.ZkduBu)'MLDֺUmLU+%>7ĵI=D>y@4ƀ"")FaH\n0ܜMy˂2cN\7ך ~ .790r-l*&B^۽qP8m/մK(f Ab,ID[RaĽ?Z-&?܎Wxw7wc줿k𢠺%,5ߥ6Ob1*za@DXǸ}wMuc\"\&M NT]6yЬeK৻6z5@ ֝]ʏ>fB3!j\H\׏Ni2$6AVm&=^EW s\~Q3M۲qٙK׸DtniA *wpS)?cfd7 !bT^Y[ E Afh6s gJpHv>OW \QJǡ먲5ɃS\9o[5" 'gxg祩 y-994]Gߤo) n>M\Z/! a%& AȨwh"NcFոgP]o>T#(SS3ZMg-(Q  l59]=EV $;{G-ze1k"nRM WǑ+՝& 2 uܵ9﬎vƼv0EJ~0Tt:ptu%oԭ4TBcۃq^?)h[\rٳ ؐm_.Cɨ>ߗM̫W ^dny񉕉V䳲EYY#O+uM!8א:x!穿$ %G㏥B5 4FH- B5ϘB_6yӲU>y^^鳍{{Q~+p<`Lk5e]?V WfCb7p! n^$j!A~xo-ҿXakeNEbFM= 7sX __7UQ$qυi,m1Y"# 3l<қ<2Qs[$N{w_g"M~Htk2v?T6xH;/DNKq#= ʚ1ҌM{*c}U|?2ΣcoQ?9PRt].aNgÛz9Ք~/ITqf< bYE6p (F"SBU(_OacnhR4UtLUP8mr\a\.]dYèfEUhYAwmCZ ,r i@hr/HxY4 AmlPXO-anw/Xإhc%i3\Yk E̝'seML~Xp~NUO>ks⸒0?4t Xt9px흺u=Ħ:rjNIֻ9l\b @UFbp~Qqinhۮ<_tv3 U1Zk  !u τTIn!zm@!GZ.%$.֩>?G|Ҟ!|N S/DQ-V 92O+[  4 ,Q3p #q#-?hRh #Yt5$2*yWz!V_y? |.@L[$)PIr(D Grf5]UJ9>P-7gxcrs7s@WnCZs$?Ghnn'U{խxpJgnҷc_Y|w`h^kn\$Нi5#bc_7Yl2Hˬ%J˔z*2(v-bv˞průCj̖QBn0US/,v5_V#i߄p ,Ί$uPzS!=ʥ]_[fǼ[x0BO?{ޣ7ۡ6-_|Mͧud%Ȁ/7]B&ͫTd;ϊ!<)T#ps4bj&vMLw0lb/iѐ'i6X1ҋ!3n /e !0X~I:<)U lI6{F{qI>*Hىf<>r:ggpz9b`5]!V4D:s\vg7^%2⮖,)@Aآ {։Y[`蚼H5}f)pF˪Y3abLGhށpϝڊ;@CXvvuf3>=h%bu>bzm% PP .be5$l?X8+4@L&;h_yhpAyMљzpBpS9<\c} jȒNiSBQ,F7/G,uߟA\ծyJذ&7I%a01AS{#qUXM\_!) cN^xoYm)EeF4an.x%iΊre\s0Zƨ..E}\9umewIzp`E%y~b=X?!` h}snv@6g3$myU|ó66B >BUޡ]ϻP2'7a.is.S+S5'KL 2fsoo A&z3#fᦉB̌ي0t{05'JYݧyᦪt5 sTFWyE9ndґZg'XZ%pJk # w9Ѵb+tkl3~jv|>-Kepo]cMBؖޔpҰ~>4&E왟 +4=rJJPB]l!y!^+:QG0{_5(jJ :HHdM |v'U1;GI#4 6QZcc~Yj]a>,cuN=!4hh괱#idoϭ؟Pr\p'і9mr \~ ZK h!)M,ր)3T!?{f'T-HiA[O?̯donH܆b| L&{]&RY7Oyc@o@UjA~>osORwEXnc~.Zd>9kJ\gxI当sS^gN@˪V izLyܮ5rjmPM0PMBHxЛz9%/r~{t=J-+T)օ;vUψD86/Ϻ sI`:V\ќ~SK] ~]b9o}7L;8 K5e̖sJ5G#y]$xsg;*N=%  <;ZK{uCUk '2KyG2[BY/O%6~-췆#͘O"wzo5Gײ+DQv}Cieo4Uǩ>O|jj.((6!F5ĺ^m:?͠]3HKOX$O$\~}Y? ժRAKIƖQڇ6تiХTR| mv54>|X F#VrYnl_QTF.X4ti6!6׷ntlk!Ji_q>mYV=nD1Z[J3azG{TO#S&E4^!g㋕Vs-[,Qb7/_gWe1ы 8)Dbicʏ -x=cޠ% xHφje8! 5EhqՌ<*^kJH?zrm2.Ώ`#>i| kN (:KJXVq9Čmť|%o;TI 9EjKV)C~H,Tnq79zG+[dj\! UmJc>hƃE\Dm>Q{LKs\~F$ՇуC7&Xذ6%:cbAi!xM06xt˩F}r-Jzpp6l9"9 Ҳ<"QI#X1&N;aQ\a|)0ԉ0ʔe/<겶t~r~_Awd=\ilLFh7v1|qva-AyͮF'eMR)Ĩ;uc <ٌ$TD3ݬS*C<ؗ<=Z2d~"q$hj[mLRTJ_@{ :cw:Xa^ 3]dA18<^0&-n=HEY\Y/"} 3+ Gg g ߐ' M,r9,ZXDaQ f` w&4/3JԋGN7pgJG4eOp8RW-]rΛS0x3"}r/ٗhAj1Ci.vzkՒ DKP⥝NyH:rnHxZC| ;2K[s22*)+oVim"=+Tw-,PbI6Ŏ(/g̓-_O]_H1o>Ep˝K6>bfV9h! N}ZaܞkQSFMOخ#!||!jY 0'([9#og3zpz8C_Fk6Ku^ϯ:ٖ>Jz9xde%&_"ԷȺwJu,"pp㇢]]K"-w1v)1"Y5:GKA Ǖ.9"z\?9xM k!ŖGuLbi4s_[$>D>)#Q^lb%ل v<I'ijaOFWH.. F-.X]sfj__|4m^ EHRƶ_ːo6=1td ZV&CŒ{+{[WI*e;'? QGs^k"yTWi]L4JJ$qUAn'KO"|3א[\'jX"5BQ!P\ˢz"e_H}8Fk43vA1BI>A_XgI*Y?95zqtdQ4fN|!¢He?+ 6C- J턻 ̆R`+1l0dZo㷤|l((=D)f*lqn0=^Df6j u 0\D2~qw~~)'i|OS42~' pv~a)òׇFM 5:MwrcEZc,n!YF_~0>lRHg2^If _ R]-QrWtJ$I仒Ք'C4֊?(-_+:Ky*-R3%5t8i6:{;s[5PsJ;<@CZ7] %`ս=Oʽ^۾6p-3 &1"~;)~X*=}i¹WG_#6ZowM%7lJmg6#md_|gklLENqlECWHAlψb֒0&X4yC{H^=݈t }M4[azr9i¡`tAdڻcᆁs޿ !mg=Q_b}$.PZd Sq ;k"KJYIݽ{:915p9CRѦC1l٫%m7lK(>:*.CW@R7j&wY N-U% !wƔjJ)~psNb>膒 F>h`m S9O6=[Ćsخ l?)wS,NU gf0k&'ȝk,Gjp.KodI؍%GMr.p ,>cSUa@:k.H# B70X1̆!JOK.-Ul9RlQJ05UR-xH358h!Pnt@ى;mm1ߡ>1ezOQ2}zy/ʵ^8xG~0[QȆߣ y.P\Uwr%L4U^aظ@'ul s*͇ h?`䓃[ЀvznN|bQ :=Ǝ׮FdLUU/xڑEo,lc&u\`SguDuv gQDx-4E .\{{6Iy{uy1s±` 8vNO݂>CB+?L;&ηU1aR78AHn cJP7{Fgq*i6/ˎRh.>dD&C`U56J#P=Ý!vS{wvK뽺OΒq_8$$4iɯi>2SPڱta0h3܃MH׮;A}U9 Ngu$"24Gm BVs~-K5GWW\j$ + 5RQb[ TZNVo9Tڮ^c,x_ln8}Hj&j{yA#oaUVh^fGoEGJt^uam.W&%/Spz`~2.z,G3QaIWZtf(^ت:+4EOAXL*\4`"KҮLNxأHlc[/J5y *|E}uH*ԍT:jڢU|OѲN0U-ZB1|{Ì 3CE܆s'x/ ƱEy\䱱Tk6wKsv.ƛ^dlp_H OW$On̐ Rt)1ԱePt̊ xVU2pN ; 4Y]C!%UTuDOnarcS(j}YΑ8fdtπ.wXw;d;q^=Xݷ3OXv)j,^ 5`:OåEB3OMbsl߸Ԙ7+}R8|:><My@hj1jS:O 'ߴCɊa6V8QanW_'+KɃ#Hv)VC Y~GΗd&ANEsFR =^hP"%z @ygV_AXO1yW")Th!J IV:Ѽ |*nbkݰSV_"C$:YգߖpHJwֆm!Z=n9STfXc9 E! ǭ9j_UU<8_'> tn~) FSk^\d,H.{_|Sùt隺>INk-fBS?xH3ڒ15Yw {YS@W[*ޝmrdS93Y$Dž+խKa!]M t5峴nz>zXjѦ H8J~j@Q`Bh92ѫ)ʤOqsAzdEnqABh~KP̻?_Sx!Y'{V||xqg"4]z@~)ʠlͲcd`)(ZҢ"+t!4rS.j2=qj=`,p ʵdDfe,Nl—†L f mA)".0.25a"tS,k==@ۑf>vHЖZ:,mVͣ#%M36$F6@_)J+(T y䜦`=v5-_]KN?ip03srBͽlpJvXj.M !ݬIME]0Z*.Ӈ'3md_MϞȏ"35LU-6a5YF<כ.U}`at|plDhaso\pc/ ڲG+Rȴ]菶ܨҟ;BVkCNO#<]{شƫD-a*v0IHl<`W\¶~hV TDg‚=v[缂nIۥ<1&J8{\/bHNe}qg=>Gf)l_"W|o촕Ae4LSwpɾO$gQM,YH H:Y FwGuJv(za M%N2}" Sc b*r%_^*U8eJD=2R)Ύ%tk&g"f7M,*W!^;A:e_UNgG]2|*Ћ,"7$xmIȟe-bէ ǣH'T_pё.\8.t\;^?3HzB{NP7L@@U6٦jbFmNrRE<yz w~S( ΉD!otg"D>V[=ˇלQP]+\ty1dm%̜߄,ZhS4vi˹0"HK{\tc7b8\潢(9/+jUZbӞxkb#\jtڅbIҺQGKG'_MmIs-Y/{(M&ԸwI.)J Pɧ]a¡cx j޶, qUa*9 LNfhND`}_\ b<jeODS?v9YpI V*Uk2? _?]F_x*?Ց {hS,K{u#8emI^d)@ϏJM56-Dyt>22Z¹vzoo i6'"+wKa4t$W%+Jy9}9 ;'2zM4DtG~k^NΟ&՛K9G>}){x;^?9E9!t<2`za9축ƻѨ jxOM&_4ā^Lܣ$mU$|.@^ ./VEc{+)(v@ܿj)/sLThn䢹/'ь# 7&#<ݺ zH` o,Gp#e嶄IQҩGuKQTX$"S+~oTl,$,ϫ:x+;FTGe>~'`ىr tqO/FZ&pCQK1aaE4p9D:jT}lF\ ܈Vt\f+7M7*X:KI&mF0d.?wu2-_i{ˏk<KATzv9LܒK #;Q2\l)c=>y۬~sّl.7z+>})-iٮlLbԙx"%Oa~30frm8t~:wVZ1aQ㓓**on㽬EnUI+)(N\* Ӕ4*Dʒ5.1 pXRJB\"JUЮRAଉR눘9]TЗ&B\}}y^ayD[E5yq6ҡŕ sf{2AldelQ1f99/}1; RS(?4Bބm'Q11S&]ȥ=R;u*-_,1~jx>-05vlWҝ̌N|˶CRz#Lvae H(>1$o|Z@a\`:/,N[пt,DwS?}bMtn{^pwJf~ս8Ӵ0b؂C4(M&UW?O8}e\ ̑ ! 4P#$2e1qK /"anNp>Iu< ׯ2^lAny:HZV\_fnVp _8wZM{T=څW{E7LX9v.f*/a|%e6j{636 <>Vț7J),}ޣDSvqDxّji]qV4)MYXSk ,\KpLMsNӿͨˇx#ڮV.Ey1E-fl[m8*,[u8j(7qvZAWe_;v;1-NJ{ JZ E8V/?=]WPGUoBTX.xs?d~qiI*RԎ]9Y%(xLL/~xAbqqs|E4Av裑3gvɉB9#9_M8%&P?ᘟG Lٙ  O˟Nl _AOK`Q{څJyV\F_7MO-юZ-хEȣgEl X]`o<<:M^V;qJⅽZ#>pri9aC}и <Ue6ǟȿXOV[~ͦ'$"Qc"3Ba7Zo#G2pWZ#FjjrVO~];i >7^9]ag?O:í _ӥ4<WOqߦ_97'r hKq+zk7W bZyFr6g"Io$΢z{Ԓ_Y~yċB;& L0yWf~Ko2hAsh66bzvpGNjfᑁ~Ѱ]fIj59(dlƴ@r0U,7AN($Y&~;>05TV6o+pgZBu՗]N1+*)@oJlӪa3l1^ķo6]$#b!^(IypsE7}Ph&\e4(%]e5}Z/DƟ򊷜#nch4]g1RM,I2TCG^+ݬuPٓqS\P^)BS@oYj$S1V[*:y=8+6wܩf&W1Yu>wL6y MVsc獔Al]޲A< :KD@KgcFL/,4h&.ےe{Q*AsFʡ]Q&fQQ  D EuMcjfIiiiF5#hX@<+<)ep[q6=bn} B,(b#>rzͭ\>$tӒgVe>fz@W: k%!h9BBEKHQk#NoL$ids*7ɩ (ssBWmGXo@=Yl1;Gc!i=>[5 gONPA|ȀWܸ^lQMB嵈"T.uϷ`77 BTb@]Z%t;4fQrgէ;)-?V lvT,mDFdz Xq7Vo:Z{p( 5V5F&/]@O;J Mp\xW ߀5@3Lhࡕ Ih-I?b CF|PnIc0;&U+kp*.' WSA~(6B1Bd7iw f5y-q A9)@= z(uN O3>7BkyO\'%mq300mi:)SNӋuJ"ed/*)R~v/s@v~*6_%LoxrBfz.`)^dɓ'-URCܛ%IrF^ߺj1{.Ƚ,!\ QW_;+.u0O۶wr"흉}1'ڮ.uz  e$H ĜS´'|)隼?3{sqw^k_"5hL'nS丧:PV&ũ*rFXvxӲK3115ƵU}`CNgz@eR'=G_-ZeKr6Uno1=_I+ܟ烰s ۳j:dHڕ֙ekh3nNdɟ҇Ƥ1 ]ϴJ&O?Lk`aHjsr:_\*6u"{b….PF%b2-0q684./l*d]p\5sW FX0+~zV=<7m-PiPhkDIyQ+o[nMCD)ˠ!iq5ܚV < PvClwzo>ܵ)_j[psSb* ,|i06ԧ7jFhk4bl]S1';~<*]ra;83,$xLNwpS8 ᕵ^z~316=\ ׉tю\* Tz\/άIR妖nSS Oiljco hSW5&]RiٚBi#Z{Bj\ZVd.GNLLӭ>DD( >.mHXTJsDQDP/fJ7ʫsͦʗ]~BuE(v&谵7"3({䢈l?0g7*Mϧ5]~i{9ׅ`hVP;]e8RwڕfdAm & xP\Ϸ.:`5B!@p`\I4@$sw޻޺LZݻ{_< LwT^6TҲ* 2""  @}J$zOJKLMLJNNII3 Z %/(hh."3#\D\/ ~=BF@DBAE{hU@@D ?CUC4qz<8a=fK+q: 4N"Zzn P-kHI!AGMG(Ȉp!Ssp{gF}dELv翰t1;=C=5m~Y:`ylb^dYNV"{.!ދ$ar:Ix!VH[ͫz b'\8t}@}i=6 ybB2Sڥ ,.?>^|c.F䐓0ti!?KYjzPfVph{aOzylyw\S9;<}`2nyT?NSJfFx_zOɤ`Ň1 /$Қȏ?)*5'|hd]J$~8XԔ8%[)T|{Sn7JUMW} cI5։5m&SDd;5翙Y'"rfH5_RFH/w "?`$2>t&|7OIݎpmzIN4'V^X CA=se@v"\. /ZveZ>Uovle,U'M>iHFc"ފ[\xf7LЦaM̈́n"73>KT,'!Z\]m,yWuX47ϛ ٽ~vbFB @-%' .- 8fsƎa3QG D\)d0"ܨԷu r:Ү (U۝8 p}Z3&lBvg>}ϩ!fޕ׻ EL:{s52V yeVP(IJN"PIe;y4Ud3H ~}nJ<{J8L#cÉڻEt2bdE6zEn"h?5nkcH_χ RY.H^ >\4ϡ4йyQQQSB]([˕>\_@R0͘_ O1b;&n<8=^qD"΅Vk19CvCfݵL}ˤ ,iږoɝ 1Ӣ_\}mOei/Dg&y*[5-l '&SٞCRbQ6yUZ56/+uN$6L`smsl {D?4DS] Tվ0CsKAPrEQnqU$5`dO{jM:O7݃6=)I]>!?A$l|&ҡFybcˬHVfGqx=JoRvche 6`t<б(rpn2wԏèB9zY 4H q)H"#t `AB2PfKxO^؈?if!!/fw޿N%?'fLJ{:-"U_FYӍ;(&UB:&G /-v+Bee%$JgfKuykd6gIL5(;颐RCUQ.Ns/]N3y{oRrRcNr0D >puC[ߨޑ[VOR%W7H}aͬ0O.qaZmH4-g*ED:&TNbioLL%hiE=A?B)y?UIJݱ-jJYzjLLf NX]]I\x>!.:S?m{!h:!x(Q#XƧAeܜ[S[)/=!ᖃ4pyHZ@l2)W&Aʧhã_%- ,epw~34[ M[ibyToLYa> Y*i|\ڟ ,Pteɧ@HI5)%Y% ӗFB/ݳ^; ،aڔ9j8oYŧУzw %*Z*S8=؊uWT֦Y[ObN(r4Sǵʺ%495& T5wހ#9߾p=6Qq-T9ig2ͺ϶J[8NB8: "z>~-ja9y0zY!^}aW|M7#̑FɩH(fk8D=RMLF' ܓL(Sf>!weˆs N7Il$ʹY]r&B~NV/ilaŎjhf 昃uLXv- #CI7o>iF_;Zy5Lꦼ*ϛ#7FuJ,]psi4T͠Ϩӷ -)d0+84RSchf̸.c,삒dv\x$we@+5CkRj.THg%B1TQ놄ӶwBd)}dJo#^^./!ƀulG#<n,av6 ysO`#.k67@7&l^c,ca+B-_%w7A}DIe<*!PvYid~֛HUujnZ%E:IϷ\4f[(9ej(J93xS;"!(ZԃG7%3qNٞ΃1b|KF1Wn3$|g a0xP7;SU/ˋʿ+ ACH^o`d1^hj=4qvcąaN^ς$ ΎbwUqD^7MnfxR6b10=r4Qs5t+T?:Rݻy̛`0S"+~ْS-8j %~D8)y B(U:fLjl3m ۭ$tb@v>h"[W4BL*VGRCQy Y$Sĥft f}|F8f Ms&YL7L W p4F['~Nk#vu3u˭bVQCnv`up4yky>, /muXkM#`>"f+' $ -c2[˘q5L wZ\J_e~dqU/b#4d9HG{ODAvl{;ۮq k٥b3G '' +x_}?"? m,'tZb՞;:c(MQ?  \WwLy? ٗ-%}7.E/hI0kw[a.T܌Li ׺llCIv'w!9x +i&~L&"G{-kvezНX*d퐳6譌p&&lg.e ē&?rOXu9cY/;qr&\]>Li,AiGvڻa?FZ:b]o27= _#`l#r}Fߜ(8 /k&#8V{`ie' g31~)[EN &+1y.P!pSGa FRzPrw Đ;~g})#C2h;㉭hb&b S*\O|5 (\%^yeokZ;DB$N^* 0Qv̏b\%xDd}K[< ?x9:"k@X|Zİt c5)!yv;?oj/eٮٿwUm % ")N0*lo?X B"&krC3lܸ+`::$X's֬F=gK=!>O]8Rԩݺ{wcRzL.dFec=B;ZsH'[=3$l%Ȓs΄ljN927Y#+h9ռtYZ#Rξ-ksn.֑oǟ|Tf>aJ}n~N;t3#]fo6laW?Vml?!0cog}fmam;'ߥ*KȣXQ}8eNx%;M7o!P1yXF(us{0Odd!6i'{*rT{&Y/"?W?r҄ S^wDJu] dz7k47qNs%sӄCהvV~{^ m 6\*alb%K15( 5ԨWNәvt9]Oo˔3c3_.'=4`L͡zH/4ài(d@Ep2{CЮ,jtBxT}Ғ9jVE,-h#x[̍+9'ycˏ"kFiwliあnƨE~"bU+w]ucZ=E@ 0Kc@Shzmc4[c-_Yd)zHGRgAmb?LҖ/vd+)vX x)N**{蝻?ΊJǜ< Iw҄+M̓fً׳\ f ā+L1qJgؚX/wok!~N3cɚIBE7aq/SDZNЮxwqAW]&&3Tܿ DK&?ze_ibc)vh fCt'=y ct_ {)FOB2~~@'$ {dx{`sܾ"C.|5[*LׄY;4-'>UQt kE(epәfH,xMlRlL=OBIy3ӝ,R\ F .ԪOuڳ#`lp>"_'4683A2fӖ'(߂;j麒&`%Xp7ui;+w Mb J|>CSM3V.c;a<Ɔ[YFBFk~h[?^Sstzxi}.Y%%%%!t`094sk_,s's)9>x-"nѮwS8l*xӇȫ%&c''>Ά@󵳼V_aTǥ9+0Zû֕oe?k` /}@t+1j*fzrL D:;̉%5k삠x$>GTWR>qokn} caߔe^îd*ۦ:I'ԈdXgkz|z*m[l:!,yҶ Z\I`b[(j, Y G|?`ޡYȇKėƳL]?(Dbx_B%;iQYTVRt &GQWY }CePgzT5^aqhi60ϫ&H?TKIuu@JT}z93ԅX$D=7'^mč6's+vdzGqM=W :TX>ԋjHԙB}?gJ!uh&-%/JP%!SօA M*K&( }RײoaH&0KyH{}wn' ZraRYX6kZ̗V~3.p.LN} ދz)^t+1yB@n,kk)?@iaNF΀>}r)DP7)'׮5 [(DQ"ԭ^_ <$:?t&}7|taux kOZ? PdmKG0гeLrҶX7bTPׅ\xt`Pe o`.lphrN6y?-N/zpC9d'q7^"+[uRܙS]ȊtȲe%xTjzvq*p%F[ˮ b'YA")?Fp]z 5<Ǫ/vtla[V淫.% 0R\WFƌ4Ş[l6ՠ]Ѕ17kѪ[ K3%I Ud]SUA8ͷ0(b~n߄\#T:VϙnljJE7ݮ\4x{fb^cUD@6;%pSZӫYՖY&yM &jl0&gK;I|sZS6,mDT,9W,hJi4NF0lMh7*:f L rqfx gwTVEV5AA^uK}ٜկ)б;rLi[5Ԕf~$s;Υ d{w;a%]k>=Jc|tܭ(ͭOx3hڔHׇ~wCF5G9A0`nS%tMfɹ}"2~|MPGTű*joQ{,"{[j樗(7Oki?} /tm]nfm; oO`AN M۱~*C::nzh 1 >ߗoVѐ]EVӲ\=!Py-saa$1T3.MI392{,( TZgY WQ- 03H) 2 DX rt8tF~_,v; WYx^(\E"]YGEHtx͑^;@KM<^U.¦6LXC3o9\K~3B2Yc ta/b,/>ǁ }sz/|k$YbYG3+|_2`.b14u.Uja5I j>)f&2H[ HVy977,qfQTAZ4h cp8(ހd򂿪<줕3-F~[HOdkjru0nFRTIq4Psj/SӁj4z9B=W/!-r0z^% M~>CU),`{&%?2l&'_p0ܡ_Y  xiHٷDI."oSg3} Iz3ey䕨12ye0WU}FB"}͏SK_nEX_yQ:,7h1n@5!_4Ad d`),lFQU(7}]Wi.UUY=ˈ4 (W>׊fnYt[0T4n+\ 61, >=$K\E.WҭSwɉRv %!$( @@m B_Io '̬,c uCO!zK=cJ`rwm>?'wO-r%YPo՟5ŧ9V%5.XX\vŎT|rM|7p0x"zs:{-L_hҧk@O"RBZHD[vSߙP|ֻzobcj/x0)V $ }6=Xa\N:bU8N4T-GiD'iu\:=p.9mmsa!{al> 3=!_wHrsy #4;1/G:RYDŽ4=6X'w+%K]oLP he<H+O lacbzt<ʸ33ytu5&(>b*} W 7%%yOV"w1]m Fyb tX^0!;8H`莽ϳЄ(rfDRnH`bAN.Wʮx\rٔ33i џmFm-@ŠgM{\{4*2O9׍2;xks;ǟ[YCm¯fT֮t)m^mdYo»e;#:$mdv{̳E1~9*HԶ6GeN45~Kwc5f?=3'ϭE6Ujm,gV4)~ީdv>xaENUjw@8G:OO+xJ}Ńһ2N'L+?IUX'dG3P(rlJ,b+z3&a9dkmh>}i5ws5x|Rci1}1^kҫHq&vG+yĚ==u*@Gecdn3wesPO{['oRb~bND f`㯋q^z ; 5 Ώ߻yW&QaFJ̹=p]Jįu`Esh#I9PW8cvn/m8pCfTr}|l\W-lHCI9 /j^xO䡝&uvV7`D/I4z9fXpv^J@vЪ!#sڮ. t=> Bu11v,Cju v=!liVSyY;Q)1|ٷm,!)bt X#tl9RYHS0Rr_2Jdl,ioF=0^MvEԋ}=C Uuĺ)oIpټνc.U 9t$rDQJykN;a!֎kM=_^A,fn]0) 3WHKrM*9[iv8#Es-6m.&DܝM Pvs&Mjŧ%E{;gw7sof{XvHM 9iib]FQ=Akk8gX") Dm-b2Y{SIN  9ja7MD|K9Ik!JQ*7M/ـGӎiMJ?*a7ojӲ< uU=낸c)/$ q h9Y=D>=Ý,,\ԝϼOn$n9?0+.M<8;lҦkT]AYz$B/*-9)V⢨#TٮY[@O 1Ӑ/."D?r<6J-;F};kv&EKl+!YVݾ[ DzN:= ]aHաc36]5у@ 2s1MU"ŒʭlaXY8F\hvq{k]\K"$R[dcgi&vh6~Ʌ1+RhXwcrtxhμ<3d yRAԎ!\)l1 n>ov ~$E)Ts栈, %$5 ge"_'Tc韅ò"?1Xcf`uD6Yja^ul(%xsMhOƥ6b)= xMCP9? ,Y^=vH_-Hm3ֶ˺%E2p.mEscx1e$Rӥȶ66ÜSt1V>)r4gEk5}6T9uҬ n3 fQ? Ǽ 㸑1ANAIK0b:W`mE^O 9}=]3є}7\2_Hng3 zJd}(PNd;pd}k,5l; [`1I]⢴؉ Ï:E^H+&6GJwY"R,ڛԥ|S){Rx܎$|9AڗzfKn0a+SմIIcuCEdCxm/?a׻b{FEQ{sD!SuY۶Me9BeItZTud!DO[ 6PCЅHVw =ӡ]mBݣ x/?'fP2B&T"^\؈sCB%N #FLŅcne\ÃLI]Zx8ӌ+ҍXdLj}4;]$ "WG"c;BȲPJ>SF10Äa>C]@KOkl_]aΕЊnt> `zIk }I#K! BG< Ռi^5*ۯ?wi28Fd]i2oJ b)zuV^EE>ʕ QH킱%ZՊצW {" YMt#rr#B]&?-P`pWS(ADc¹C4L;xsj_? hZDL{m50uN4Rd%  A`ބKB FY\wt,\^>_{TUa-*gk!wm8HPu4SG|W.2c:/y+%glP4nQe},f_[GdI< G,WI@AG۽MlWf.+=,n4d}Pk<uNCx*+[dwtvV8~Hy9=rh~KH'_bgYcMs oK+a1 `֧!~~%MlM5eZc9i# $[`>8+4E 7 bB狴׺keN-X4WzĐi1_!|, e 6\*+=AHw#oBv/K?963a<1ۙet) >C5&T9.I{~-bK!{B{qFj?YI;Ϥ, qfx\؎eR?b4Q{J'r*L,@t~O區<qg#{oqyڥ7͓6yn@..nR^hɝqP  ޹BUHX"njچj];Y(?W4INoj3NSl64^KG3:&Hi׫[\R V. mfiiv.Q:o_ڬfhkm mWWZ)1t0,^sc)xֿ]Xhgʿh%eąΩs:}mb:#=jgyP[@J odʭdk3gGJMـVԿ J/Ls{= wwNN<-.[@~OO-J Jwr%!S5]ʒ"3ua3-CC5r?TSmhzÊ&G8[귋SRLror.ޤʇ{[8j̨\Ok"LB 3mk=tṚoq㦅E7?$z.wօvyO/Ykz` ,֌jd(bc \e}mw) !OJmnNӈB]ᇻn%m@$G\4\f)vk m~Sc*'iZ-sfΖ. 7v<\0ʨL=KPe\IN};oxەLI|Q~*N0MXZh#4J&M9,`Lh^>>z|N€O&MS9gjaY&i,m:y(T}E&g \wx<廓(=U/FmXJ%4ِI%-S-Q~O;Me%lu1B{qRquZSoshCC"eyQ HfkLbH j&`̑u5a(* R<<[+1\mE+٥Y?$0)̨-{sfpa!Oo 5K rbkGtwh(zؐ I9ʈɡ6$TTt(+f=m&C\YgX=tgj_kw;ü U|>HOONOBY2 `^8ϮF[DZ41]i>lsh'Z5V:O.(Ʀm[+Q@VVfoF} ZU]ݣŖ7pR|Z;R{A4xQ;!ACm{7+#_'IŤ|"lwO:5Z!>TV]ƾ}ZZ*nW7*Q1%>B?m.K cc=ĘĀ@Ɇ=l:з,n$uXجS0Bx!7ĵjG"޿YX=ՠD <|+?>j]VڹΨm$R HU HEPDzEBBS*(R$@ "H. ދTνogcf}{9kegGhj^yby B՚F$=+@uñ1vô4FC)8+.+/ J Z-ϲ|6hua9I=41:3WOaN8c'7e7lli1F gK 7NNN)Z_ ')DD]ńIz[%g/Z~g`儿uIzLb Z{Zէ#ujqMkK5}\^zr݌ڃsS- 2+oOjʝI^*U1]ަqcXWaȽetg9;٩FtA錣 gbDjEѾyϋᰳ~=\$S*Ci(ߨ#%Z{:a- >e559-U}sDÐeNn-a6A˫x:]1e-seSxw7WJRF ZؒENjI-☹3Ϳ+k:̔GjLpӫMj6*؏)[&w Sf(f!p܊H9b|yet*"3َ8ŝ@z;Nouoj_y1ݓcŹmҧV+RCLu+!ǸB=\#Rĉ.۬ݰc\ 2-ƠOx.G77v"R6Țb-)g$*sJfit^S_Уڸ(cHc0srpɷy?KVKX/.^TzW '&$ny=WDTP+^,)Y sJ\s5`U~edRH+s @lS6O<1w<4C]/ߝ0 L~a\h7˸bZWpC#Υե/>pT'E)&f>2Pw6lq5 A7\.v !b☧WC|x`KVbSΜN~4S! ǭY l0/?CV .y!Q;MhjفCf" a+ ZFkM1MBoJ7Š->[\LSq׬1F,zeTLժƇ rߜ7~5)VB "!M6+PZs%()anY-LϙQvCuvd#t`##}'{h] bjv)H :K9 \Ohb0$gTSna*Q=΂nK碋 v5೟:,Qmjrԁ5%n30iV!P`3/Wq2J~*q9q-AY-CrP3|(uD}-Txٜgz% hP~*dP^m<)WWfQ7S< w5uSSc|k;6?N[ pPpStc*Χ/A;iۄ(]]1Ȳ-ئ!WTM湑Yi^;a}%z*#>X>޸ I,EUȄ#U9Pߺ5黱m̢kboluԜ1{ayjrЖsWHrd\Ŵ33]/{5gp< ^aɼL.c' &"or<<8댫풏j_lRn蝷r\Roϥ)A}=.T9FG4v8(;SS?SS?}9gN OPmxrl7ZWl. d ]fS:8.=)%`$[bl`Ǜc<8ٶX8B&,~wP]uIㅻSilzpnWBM}\WYqpWpC&[H<^;DW* V5D-FKs%5/_T+WZZ#*P_ ?s3 k'aQ<+0WAD:^Q Nr?p_*e.MUX`C`#D -1nIs/TU]s|W$L2J1>//Rw`0Yhjg*?•)OSޏ7y4d!~%.%zm.;&::J\k0j}(&93II]">H鹅4iӐNDPT$=/7S?n0ږ?;T~1A(hATTU9Jv#+_8Mpk#\&R tۻJbD7!c%mt nC>X.8!/ Zru! ŢuۑpR*R8^:&L"Ɗ5 rK'#kԱڙ\'RTY6{+ s" ͢I mKnXVqõp+h!;^RŁ7e 'e.!uNV$w<@O[} N(N/kXk[ʖk,P;sßZ_A;<,V-%d|rU1X䣩mk]Zn/vopb2jƌJskQ΁^PIºtw=rLSb`r/q~*^> ;`JbN؁_Ώ~ɜU[^XTai,+NBF0 k L?o)dA?4s&\B{ G?ש]FvgB'ٍdJP0vƚPz m?'>WVm̡m~&dǺJڈHwT~:ƌv,pfA`:PbT~)DZ~xO]?7zJ{,L1<0=92ޣpʷځBYSaGZM+V9.RӣÙxԾd~) 7 N' !GE-l\l$x ue3)Ɇ( /beuu:â+E>=I./8ĎFb'*<CjCt6Hf|v.VJ@pp%s̾0ɚlsMŎ)kR wKMɦFzdE6v"F<$p^sj G= =zفrg/;BeeuqծVﳤYap^ucaρ䒒 %B6JJ8,q/kmދW1Jr wlw5 Է5]j;a63ʔ[1$bUPil]. ҝ!s&^$}'ޢ}kelЙ$p4i4Q%?G_i}kr՞_[I뒼es28KS͝{TIE=D+{k埙@Y\o>ٹzI#tv ̬tMȃH R svwo=r)؊=&W nu#ڨUsܵoQP:W%sI(m9P,T 5t#x[?,Zy7tpR,&||HnY˵O[BC5:qmE l!xwTSo/z H*E i' Фn脎;T( ?f͚5w'kO~v\E ~7׀; ,6,`54@s{#ǻȈ)())((0޽CEOMAAJKt޽;w31fqS<\`n. L,l\<[*CCĽJ%e:GMs_N[G0) q˫bsq;Ls<<{׮>Zl ID l }A ƥ>| ps+I~4uC^&`l˛5^d uWB;[#p= יekk葽e0tzr<<;p`YzTjrxJW39gQcVx _w{+bSSA$ >xKե|/t:~sYPԿ+݃C^;:y\&"6ۙHe̿^R oc:wmH5N{>T G9%Uϛ쥥pEb8yi/3F~sWtl9B[{`.6|θ/R>Ma`,f,Y/Wfy֢ǗRDLUi.g$sXɇ"<%ݨs%=ꆭb[f돐Hg.U ChlS?Y!NexQyru 2yA,i S! +g?N4\2eu9)|<* v< Ux-E'\̗ԉzӟ2;P OE*4iii^*\`p_.SI5w5qTݎtWS QK+5m爧ww؍}@NHhR3M|-<\K C>< IU\Xq$HJɑz[c.ퟮZVXWNXLqsIّ`:-_.ygrf\Cy5l?d'# iU 7xJ]JU7Of_L'UwP 41dq)_j/uzU^jo #zEz+'o,ϒ:kBhbɁK(/v0fk|:|!"#5WF﷍ Jb_&E;8)إ`~bnT14<j`iSs[6kv3 K`F M>avC)!uO7KcCZ_!."(C{FǕ-FXK66&~[jOգ:[*W9>;.^J?DΘ71N(קlՖHJ2lI2RGMݲOѣl8-aDų?~eq e- 8<,+~T3ռ"Gbߦ& 6??C5!9=GqUy Yݺ.ޙ5("uʧLj'It1 .Vzi{rbO }c%MNޛYxY/W/WOGpT/FyEG//".&qMF(^tM.#U># F/RT7kyX Mg/ZjD`dKbeHd#1`QS*6m^{c>uv﬑V2"cr" 6kU'5eҸz8T+mE:&\ne ޙ÷C?}ai}{8i##Yrr 2z6.ܽa٬_٪PݑnT Z؁zZP.āF!.V%qxȍXWk_i3gtc6L(Sھg3-YENd.͛!3/f*i_ / G*H־Y!{RBZb%̈́ yrB:ٻg.f^lČYBW}S;^ OcnY5ei6iB<"wR(Q' m#8?O+wgvΫ g4Q9  h陎#úQG$E5)Y$r A-X|| ߶x"m co=O&AΫPnڙ Aخ/kRw>]"y*!HOkחM %*JGgC- _ՕGS&8-Qh,KVkGIa]0ds†0Ds3,^J؉H$_H?fI݀g =yl\.Zf֦8k 'em Vfƭ ?(UxI'b2ݍ>)þR eL`hP@U^A}4EC < %TL9=v4@Hl;3.%.@7v D %ђ[6N[{pJM+ ,cv BaS0iφX"jI1dFQޣи 5E/㑅 e_OEu4v/3Ee$>M>\Ȼ@: {& 'bC}TTjtn%6m,y Q4Gab2JBL]p2z=+i[^tɩw:_0Mx4D h,4YIQaXL8upz20O0ÌsݎdK\N`}J.xf LU8].`,کA)8["vۗg0GM~7&7/;aY['09+D#ʚB uUu~?ݞ$vOȣZ.sGMr kͧՋO e>%O|Yf( f(\,@zKgՅ?1=n!^lyvC%Õw%dpQ]~?PR~DpEVFқgʤ+L"go;ƲObDJL~d_~u[7rn ‹D3//j=z2$}O?g`ZzPr;'h!t{^tPgᑍӕJZ3(pLoL$L$bܮ(~G9ttqhX9,WIN&[(D]QHQВd8kD| Nɫ#2kݘ.E9v#gs,KV[q3QVDIR @;lY+0Dî} hAoN*P92jC]LSLvJm?$lT6lU-6hJ) rꝧi\ ܹ_ʲLj7[ UWp(bYVpyB=mv]Fa\3M2i&KDU<.跁ψ$(23j3NJ=EVf0&Dq=4t,Kh3ߞ؅/ҥ H:8kҐ;'׾v*olasԙ LF|JNTx̕6uL֓a?1$֧T&8G[[{(YEnJ3q%l٘xc*W #0{fжΔhQDonwJ*9!1-ڑNl >L ofcJ̊|rYzո WYףۇ&.?K9|Σ3$l[Ozߣ{rEqUl&xB73yb~QĮkwGzl?Eж; j;z=W".U4|j\QSVRQu1?']mKrot9j˺ 6i橍~^({\-jk>}l5a!O, 4A`pIݭ2d?I>:H~5d}ͻ0#e^L#%OfU~" D|͆d?/k‚NE)]`duGYUt}eL, DՕwyxcT4HحF6V|'7`͓ۭ3#/{gVݑts_hdCJ Ҹd, C0f2tE\-WR B-À4O{vHmdbOCsYqhdmd%G+aEo]- $uԍy aiՄ\yg}4wBFA]S?t r8tŨZx8*'Y)9S6cYGl||"S48w $4a#1«ao&pt@; zZ mt}4pp?2@s ds$;GBs 􋘝Xn\C4 WrL0b6P c*ԅijOstXZ&ŵH0'cg툀-lP2E+'}P2F/Ȋ9W?F/g4NPoe*R|gm>^#0ύXf͖y0,|~TԾLb- @le +V8T=Q}w*6C#U ;L6*ucۚ</ X 8< fq^L7_,QBwbUm^,MBZM{cX2zمNUz_%Zs-ps s;忺Tl6h%=HapduHcڎc)%b䘡ai(P)7`M%hXJ\|⯛r V%/'rƒξ}~$`{w`d1tRAxCG-$M5_zP%X)1Fd9IEzJvXM-\5LYH'+C]CVQkTM0X ?6޿:VVB7 /,Y!g6:3:IkTZi6AAZH \2F7!tZن](T(i#ߍM~~KoKd|8,ܾSb!/Gߓ~X8[;Yӝ?ݜ4}UlN<#Q?[l3_Y# .yB+FxsnvǑW.M32Z@覝<9!ONp܍)볕Q8z7ɠTckgFKH센1w{l=ț! hp+rc Ś>\`*)όz`~_p$ x2^J3[Ýq,/, whTn^,`']PCRtq@Xn_qWѲ3_[>F!#\!ㆶg'a~.0ݟ#y$=. XGNO.W=2J+]#JS9l7@K,ʢ;WCEId2ZKꛊܱ흝 !qd\uO[n<oBƗ""$:6 LzW@ך ̬B׶aSpfo\@/eZ7ܝv=eav6IuY aZr9g'*uv@mpjSy w&ߊ̢QuStq|gG'kӇoNu?ǗeSԊ?`ahBȍy:eHvЇazvUky/iEQk_y@'V~|v1-7kuE:(6So`k_8.Q x4#˯?V1QZطb`O r,\[VƖbaõ3GOߛy =xNrqf '_3c;j-KnYf!xH]z]o[КZerzlU;x8=T\o6, 2$Oڪ't ! k6*w.g`}լMDB1\fUԩR:X_D~̱HB2m-Ruhf2e=SOJ[;B/|ci~IB닔b}++p[~dQ>4n-4TQȫ&PmZIbUA5$@#C([8kaE}],Ue A&H%L)D-rP(sA9iUP&0YQ);J=G}uU<ı"g^>Tr5R x n\Y鰯^e"UD!glt Sx:P/DgL-&.Au ;HrQ]ɱ1M6f3򐺳W̩Ad[^[szY[5azpS*JowMEx(՟iX~h^9"xzHBo@nc_b:,TZ!8كd"ԧ:QRT!-|xP t ;OOI|^ bi& .G|oYӔ6lIǵ x?xh3 *e▻_ɩz Eԍey׹ldGzo'zCxrǯf^o!ou@IY's I¸!UlYm/t~H]'R5gՆ`5+oyBkg]b 2I/aat'ꚸ)oRi =ؖyK<z}o"K ũ3>xP0R>zt%cd8VH2k oS<}o'5D~:URBx[ߵf1whο.yW66>{d%1b2me}"_p֡2KJK'e앚is4޶)2T˽J2K 5xgУ1NLn߮C+e](s^-1cmA1&*ibL8)q,Ew{6* wu0X[&iA;&J(J5e9@geM mIJfU Iw0d1vnٛ%6)ǰY}5HZ؍$e Pa ֜e.L7xŁ0 "0}uV'yUJiCֿ{rhoT'D?6O sTXSXpK/WKVDZ󃰳ښY n@QI GȌVޝ ΟX8Ҳ_fz[gw~ CgHJ {qO%g`ܺOd}&)IOE% X@?I0懺ӟJ?z;(fV#B<5\$ԛjkzm0eyxn]M0b- i#&\^knd^$cx+ګ {ac01(ɖ@CzOc^A@9=A*e3Ys"Vμ4Ԃ;fp 4;6n<(=:ZɩX}tv?C_77D0=S>%wTԡ{8ϭ07*eU#[(8.@Ui^,$<백4xmEJf{m)57+6iiT3%,s\q7@3%veۍ'ƁA}EA KpPg>7Ώwri#6VFݫt\[XKڽh{%t) c0: MRFcaFG10ɘr|./wzoּJ|4fX3/T'JC[]f c)֥;0^Q9|3շ]I8W NE;|[[H>0eY,R!žR 5|uuPͫ` ^JWTEBhrj@mvxh'UzQNS/ C? 43Tr,Km4YM QHA".$SLx=zLWiJ0eC=90K/Uճ%UyR%N, ñl| 3 >ڲ:e x :?Ӭ@.qww;E}sz,:v\}xxu?x ͡E~53Oсk\ ,`HX]W"O EXgAk7%gbLf\[0t.NS%( ^\xͣ)+#/~G~Ugo#5nT9iF *R׍bIgc4k:B2q׶еn%ZE*}IiXj:@|@ {9;鄘xeОumȭk#iݸX9+c}0[$P$a8G҃ѭys_N%HHB$͕_.# x1DŽrM7Jx) v{E)A8GZOY7JhD.)=4G%^_yN\@HL*!j ^* ,;)]yeKVV&]܉3JI@tvd<+7a<7YXpN+H:B3S)i`>Su `U35hխ{vm^s@_FLOIO>n3W  (ldnndȳXbN"kPa/s*D-BP&9n~PQ%I搜exP},iDѵ"34ĶN^M:)%2avN!QZ|$F|zrٽׂlp&.L_{C:@$IB77B@6‹sڎ?13(3x8+  V1#_{$Ehֶׇq!WрCb!BIXh]G};GiyDaE / c"KGJqgGg+TcI22'le9Sl k,^XBq}D.R'4Z -~}c0~=vMlEvs{Q4|L!|þφP r?SLQgy$I6[A `h9\xyϚ|*\V'"g.+Z|jǃMoIS?~U+"Ķ,޴4\+3=gO4M ``(]iHп=Gq\C㕞ԸnkCajttЋ&`rJNiמ fj,E#=u ˅kazn;PnR-H:-0UËA_~M\{U&.WRUKӧՕ` ٧y- Än6@I"0K =S!I֕h jQN3T  KHR9?}@RWMSK_B Q%BѦ#ѶdBz/S [#B0'"0t&!d"'~Wn\h4gFOA0cq&b}ds'7˥T'Su̩@NӮEaknYX 4;I"N,S@ix >bDɔ>iCNOj̘hJ+ΘȜPZjDB;p8VW-̢wfPLknǾ_;Ro"@#2*rO) tn*qE62ļZyW ڌɰ8-_%!*4cF:bōa !GZ.mںP<{?"/YN}o\iz_ޑ,Zϳuĥ&H^]qxoݠ5d(^/ H],#$+#PqW‚zv z ]ֵ6P 9ޱ_hUr|!"ZTu/L%׊P#ki=Kw!x4 !/ީpN6|Nv#+ZvNPEdxrn݄a4kf.+DA7ZGX"Ȧ=i_̈.Τ=Dž%ݥG<,pE ڏUyhgӷs`ČsS xB * \;o{k_O (TÜY8J^j)dtHyrfcq `ffGHOXDJږ&לܐN\% SpaM_R̥AדƁuˌڬZo!F#mbyS:!$&27B:&Ru}MCb~hvW ^>aG2NI[vo8 ;ӢҴp@rX=`n0lY Qމ]$W4uS접RN7#Eܔܖiګl"Mp3I6#wȭaťvvY6)[qt/ڎGYS$fqyiڣMP G O1mWd*ȧN.JIŴ[с5A:U7 ۦHEY4]uQ7=.dYP}%O/&] KsGͼb]n4bגcȫk+Vl-lmzMekuqAeɃRY!{C*)T?KDm^c#WQRWa]E7ǐaY;DyC;6l34.no,_|E T̐pHo4AZW%] vnI(cq`g0=5RNߌjevn8M)}K ׇL^6;;ej;3H VUloB6n_$ܚdO vo04ޙGB~yݾSNg;=u+ӵ ZG$lgr65kUϮ^)xA71NY 9Z@fͨ -kI{ )/Z YH&T́_`0-I;Z ݊zbÿOuggA 1L6IzIX@/eʢ[nVupw4Ƹ <7Uoi{^ E .۠G$rg>vU'1SYFy2my&!0Z$lq/ќjYFC"] H[@JQz tN E^T4= ]ȇϣ{ww;Yk֚sUfw랄n(79u0-)ttDVe:atG\ݓ:I=W{wV>PyI6T] A/njKQaY7A%Z%kZLVp)D]ў\ tv ,lXƪCkZUd]azMťBva{/9h ' Eh: WHP Rvӧ-͌ȋ`l\"u9F`g |k. Bʂ uD9pc: cX]AOG`U{z)[o >D @W&1[.-5QŃͥ%ZI,-gЅ Jf/14LXONLZLʥܰ ދ'=xõi^߉-<:4@O5s*L[A`qVy)J1Ox' 7Ä3T fa\N^:>0ZOUΙl "O|dk,lu5'GK@Yfah_[ɍ)R[D0*G^g`NۧݯX@\>귛(ȾJ^qr7׹aVVnV(?.Bc$8o^qE<:<[z@ßo,AnImj/>i0Ԫ`j}fQ mWgOvHƛz;o 9ג\{Pj2JYswXh~, z[_ WA+S)hs>gp2YˎS89{b$(@IK)ggv:<ɪsN5FT˄\ر՟>Z-}{Kh^fuHz7}=wE9\ )[Y܍fMTv02٥]Mwзd]dVEXmzWސ@{W=h7:#i ؈d՗G'Sv4N~U&qH@DP%@kuo˗ @)wC5)?`unoT7=]47o$I^+)-O*;?HBg"[ wV;K\Dmo[p!~.S`: ~z7GY@6vga.ȇῑ~馆šeSj#{>,YDJg@ Kn QP8X&lK0{aW^ᣵ?35^ɼw#Qf޹>S։c(w#Dfi%FCRYJZ*-t:rmOG*k~Z 4g߽; 4fE>epm^2Wjqh._=W+x137ٌ%F~v $L4tiv^N %}!<<%8&;nǪ$&/HhC%^䈐 .> R8E <^.no?ȇX30[М/iI^ge8z`pEC_yu;ó'x!>_SIFvsw=%j  ]vn|0 WUؑuG֥R*jssvS9uu76F>Hm$6; ²brs%nc bie2~@Ve.w.jKȷ+)㫱Mg@<,IrJ_ntX%/Mٞl+2nbC̉MGH~ <*y;>bI^S\_!Ͻx<< @^|f~ (]sӷJzaN#aLO!glH,q ԓg@ Z"^=Ed$bc^v2PDIpxfG,KIx˜jlƭ;+-wlv4V.9ۍR TeԱ55m6˪I2ՐMbRij-, (cDmdO[{;;qy%Pbe՚ʅtGVV͏(np)ޑ}E10d2}jQut76m<$e9䙋GׄA^{77.5)/ZOV&p~lF*M V}hZ:$/ny|2<3ޜ!>I  z_;*:ޖEҕ:]iWqÂJnPDH<ʓ(!jDۓoQ#yA5-jWI_p_}_3Ѫ{z`F_z)|.L Se&;b@7`ۗ+"9%+$ӛR`u濦o%XDZfF̶DhQ2J^@eEQD濈qj wZcVTUM\qv(gdRKCu=WrZ(/"YlAĪ_;V=yKM #/))t\5!lsBnւa[trMSV'2B !DH\À):IsF $ Jv1W,f7\@" ienwP-[7lt.k\ј Y@)06}fȡ+;6$0i:(O'mti\"5x[h VU +.p#3f֚7ENV{^L<O~ JBV}Qk1'<1?XvX.rq}7]N{}(: zOuinu9ǧ1{eP*^^̓Ud~Ԗ-1:.n{2u7,Kj@ <;vޛLH Io\}p[6E 资#/|?lD?4ӷ+ w_ruP (ejNxL&umw-? >LiXɣq\]{Ms%8+NF* W" 5W,\*rw`8^Φ#o~LajeE1iE{w^w^X'^+vI 'J#T0yxl=NڛqEk솾woKދ.գM;v}AFb^a&pt%Wa8k %T)شN+sf^tXZ&VoCIvH[8d<2B 1#,FK@[+~8οtN|MB$晅w_$uNH'ӓh/dȇlTn4&CuH39cXgHE`?PȑUz ̮i[0;D|Va1rL+YRx !'jV>)ۨmnRU(瘔 @{``V!ݮSb_xNݤCtޓ}ϙeK'v1c9}^E36$!vWKTCTv@͒9I wy<>'0QtHn'ii~~cƦDKR?*Ꝥ%߉Nz ЌEmH0 ge\UUDee v;X9De ^RP¼Jth,"ba Zb~/<(*-iEEiܡX\zf+zB`k%h\ gYo7{AʌJL]/ 4Q smģj{wZRџ /W`Eo'}r l?a1Us*v h2HT}z.]ҏMʿ&E:]mkgc/_C:=BA)Zqڄ5dg˓q>;c^&IX^u b:u9uˉF^Ge+Awh1H|Zj^ un qG,P`p%}f?x+F^`DX!V9z[i]Jsfv>i#TqE$8"}ވ[?Ubh{$uoΜ8xqʲi•'CW)+i_~wq9Lh& RDB$Q;!ywJ ]|ao̒fwGyjF& +Ժ*SR_ {J0P8{OWً?!&^BҊa%%7I)a ҟ'38V7`y0$[rlOi'A=VO%$X=,̧A롋Oc}~ݤ[G"w/~IF~)qFza.jLCKj;/),LZˠ%(w>e%JQ> ^]GDs85ih`.%;+0F_WזiLޕd3|sfKjb{)Wg ,Hbg ރSgq'?e6 `5\&0_;!CgWI^`L?M ;JU\Pr.g:Dlɬ==oΔ {a­2w/҂مZ䊅uKo럓hu@{ 7Rz} _u,TM瘇8AGC5򲾊`Zk6M\,@7qOqN$@֠:y VS0_"9,4c(Zf=+3r4߆2Sem|Xlqt Q#:ߜ?[R73Mo' }p] ߟσHc%U=Őr|a2"$0!0tkO oG|@@>s롁bގ'% kD,,'ú.r;/jJAںZAMeNW/UJc&Z`- =r!77fIk&X (?N ed |qVT3ap냦|d$#C=!')L!bѢC(;#YArTw^YWɢMLm'(:ݪCק4}Bh vn̹eQ"*Nu~kfi'm__嵯kٶ77~-t8\X _lдzE͘?beodz9&t+fЕ4}hFO757/$ON@8B/$ M9p[/:(/zϲ0Z_,/ag0 'C)ʎ4Z-VBm=eU{˗kE^X2|ҷC@- |VoQ/ץP4[$Q]\) lew\gЄJq6 xzV&6FS|:e Jc Hlq\JȤǂaKLj(][Cszs\Sw8U6W6$bAP)^14&"f*M\1m!gGdhWς"yfCۏvu,X>v"W Ǽ^-š|(+-5eo[A@RI'MËPuޙw旀:xHi lI*U*\rYsxbIzJ1[ =rI1UsRafW60tkf~-:RL4σdJ.v, >' A_eP6n*@qY ĝG_Ec%ˉ^WݨO0OSĐh6ZO||^Oy4Neף0Y5frKEM \CޛIb[5 SYiG&X 4Pbxto(!*i] \U, Qk/$є`GԲsI$4BQ2Mp%7,%dJkoAa*CVgf$q>9salf⽁?l ywT-Q)o6!>8!$ڴ'3&3-|]FvMMV-%|jM*3 MF_ q}SqlrM U6GZt<^J2kz) 1#mWn؈NS&F0GO^=i/ zP5zd!@cA3{0ku $UMnܿb!3IL ӥ9vH=JmY3%oΓvfgYA!.w ==@u:'<9Œh(d[*}ryzx3!m|D ){)h*Cаh#bK GP9JhF9<'ˁP":5OʨGdCԅJ- Ak! \,JZ׭I):;c@ Z ɀD|gl{o^хHEj:b4Om螛!8(bb -]V֯XbQ NF p|yds Wk*)ڏ 쉏7o9% p4-B0Rx/ĩ7(!dy{*^g-w;b rT!EK44p18,+__l!-ErtjOҦ%@;MIRrbkz`m>3>[Ky' HFNFf kІ뒯K1GB݂ oϻhh A}$%,agv;(4E-%6wĻsn׳r~/%}Ɋ*v.(?tpbq{;:25\eRJsݢZOlQnRX|Q9 eeSkN+QNyb?! bָ^mBKd@ݡfsTVnߎnT:yIljr!`ul^!F:4m@bX5'GY!`GN\N(ԒG" e 1a"K>3^)gpRna[u[}a:%\bo 2 fhTE K׋]-]h"e-n-gyW8~p{n FXxAĀR/pHp2E읃+G=Z`땒!|`9J/h(utMk$R+mϭX`,91f{ܝu243)oKoy=r[g[6'G_ȗĪ=ɥ eW8_ >= +'c-ڪIXcL';+CN,ݞ")8uIcr4h}yBŦpL#4:Atw^u{Z@7/2?r7#s]]jhl=:w4ޭeJ'-BJ_aD%WަERp+?RP,.az|*1hX>ӷ05&"(5 ?ű<1{;>^EPUZ~ ̓/sGcHq~>{,7(ct R-wR%XB> HI!K] gK-融P)K2)+)7F??zwgϤ$.=?2 3Hn=HPt6E=cCZ$?T\?a[]^U D@j;aUAF$W4* {!/T h S" ir2?dP|iYDG+rA!о랝WkHhf lfX:"G j,ed%kn7%ZcPD?o~bP,AkJϖH,@{2@DRQoqmv+okxRyS,8,**7cu]i݌1Ϛ{* ~o ׈ؗr;kg̖"#Ȫ*R9)~xql;?u-ᅵRJYkzҐ_a ԧGA))m7:/4LjUݱLfZќ+FΏI 5(~NYd&5<QSl Ϊkpld؏J^2fY1^nzCv/KN C5.[uxboQeI|-U`K` <]׭o트+;ۍD{*ւB Em|akjcK-C*-k-fM?)&/a1caaSCH!!4GY)i3N3[-R#6a$$(*6L>c=_Oݧ']wjݬV6S`(S]3(&Wѧ@?1RDW?Pژyi5›NrfR–;3e JUP$H \%,a÷N >Z>H^zN6Y~XEKz BQ8HNg$`EM^bDvϏ7&:dՍ `;UmgA1iyo1"\x*vG:?k6`1#?eVQ+a]%Y"*`j,uf|j@"T[#!J $\bǺ=#rR jmC֩AU}j)Hp֟hVz8>sJ l?0 8۲+eeaN0b|0V;V7.Ρ$a'&/R17^c>CUBvS*orGoޒ̜-$;`g"EI%78&-X#H%ּ|S0+0#{Ȋp`Z :,Y8©_<.#Ps2Fr^F3[4>WZEȂ"SPueEmdSkA! ̅ENu|T;\UOf Xd 2DW<|2.TV_\ca@PW02f-`g8͠zLiP7ǭ-֦ٶ3;*]:X8+#UL= \A#\ሢYPB3sR~" iدc{Ye=䶜/gO(ef{IeF.88Zmԁw|IA5Um6!^p*f, %lD?2o#eh Ґ%o~#Uؖبe' N|zrDU3{&X(1@ nFSE! "-H{{Qaέ6\zs^\-}HmVUISLWںg'U۳ iTC℮&w=Nh)yH23]y1 N[tNCE'AUE?.531N6,^m߭[r3cn㾄2~eȌ0@N0ӝEfR{k~wb җOXF T _@OB$BZ=`ޡLbR&g̮C`Y_-XP{N6- C(DtDM {UΏ/wS=SǻZ1!CL,G{E uѩx0%$Zrb5)be [8iS;4qF_ZS - [a kxX7M-7)PqƧQu9Wˮtk9Y̺@3Iܛ+sſ$~]n:*?罳wQѣXiE#>ɀh/BKƺ&ܼr^3PuR2SE|Hץr}7OQdmjFxee,fs H7H.2| (, /ظ!*޽wےUPpWϱwU™ [?~#݇=ЦKJ+Bsp)GtF2lW J c&͸[c:<@32xu_;Edh6c}Gt^JmvoK[Ft>VP2$ۮPdpU x 9XxƵe4L֥HE1)H8pLm-z9θng}FɟJP(!E62_#Lg~!xDEIjQV쌙sڲ*2.$w#0&{ѧGGjx=*lػ)< D -2H\@%6 3iZ{XNv@ Ǎn}X.-_\خUsi0xZԁ:%5i7wb5#Vn8oR&\vhpXÉZGSM,=-"]k25}4g}^9ʰд+D ԕ̑a# 7 ?>x"8;Y*A J3F^X*R\:?5]9=toc*[ {jm{W8H4/xՓ='#ð@e}B>Tmu,4ƼF s#[zɌ/WmȖzD')8! צ1p݊x|&}HUŔN)S?ٳ̍'UC8' PD^U(˘!^rwx[)$_z狩8zG}xGPT@ZYE6NqR#h\CC|Ήi}j{[ptNyhrPTq2&VVއK. ԤUqso}CԲϺsG_'c20REz M=Ltmm O*d8+^`?,w!vxnVpg7|-F57G_zSgX/GiB98 W`7cn*1w\V! wm֩͘m0Jĩ_2(hZw-hxL,//x/.Z޺uiقots@,f0-ntU=V P1'mIoà^eTTD eu=t:W\8A,G_9`\\]337_/UCIj1ji}.zj F}i_S=VLŵy}̈́߼FDp|&Frr|g[Ѳb'ڰ%OASľ (O4ޠw !3^(BtCx!d8OB= oZW{f2XvZ:7!Q88h4>"d%ѧ/DGnV\f{CV9(όz[}F/~{^ض` fڨ0L,2u3a*=R.!+[ڜ2kR I#خ3utFVאlff*"N-T/QC# 2Ѱ{t " Ex4۟\lG{W ۷' )KRJa2m 2cO!(kc7`#-d:APdRSsNw}su{}Ϲ}s󭐰Ȉq}p k|GO$gn#*.Ii֍^En4TgW@`{LtuGcIrJx YK]Unyri@R,}£a&@1#aˍ(DUgzZ{3Bޣ/6YI\}hg/fhsp58_KK끣3A(:1oҭbRx2@eUf@}X0=ڡ8)%)iyڼ]Tr -D=wQ+YsU>6_+yع2b**zj232:P.+/#XfsѷB )m&c1VIr;tʩnW*+q4*Iu˰~e56a0X!c0-s>)̈_GA9zU~d_},u0aEi1q}*)h^0|NCG/wI=2! uzlY9> U~ #'OP.^YG˨851my))32LU̱+ICn.!GM *Q.)p.3xs LIpy 椐?qwKA"EIa JlT[OrMon`sĴP H;gLn68G"[(ԓ.']1n~>_Bg9lGR7:ST#AjoJ%_.|h~}/& ilvpIPNHL$ꭊ]EݻK P >AurRʕ/nHYbL Ǖ04I#L9n뉳/h-07Ri9>#W5un|w|~?s/Ua:q2a$;`=a`Y NbrQCӋ itlN/O룃LL% A?!R[T75x4)Geu3:_2:w7v;l$ l/xLl<'_ΤYp%֗" G!!]w۔=wݟ0dV2?h2&[ݛy"Lw #5_8ni2M}M FU9l^ݯ 'Ŀj.INS WZ˚{^D'a hoP^36hs": k7O$Lʪd?A-h_a$ZԊG)96rd|~AK 25Q5Ѧ3#RjvZϕ;"o,tȵԩFWw"4%M&o\ YS#>y9yG~ ^G²XCuqYcK~jMmS%ǣ1[NwQu;pǾqz eu}M脏:GַbBӾI-SK~3Yz¾! )&n゚o0 vKJ#/[>FԷ>z;Yk9JzwH""uHZK\s2}|Y:iP_&f1T5(`& %w=H#I 6NY̵pEÔ?1^SXmrIPVH"A#f]ES15~cuUeiɯKq)>ƭO `(rrT/!4CO[NE]m!asD, |fȻ3!5C6_pK[*Dj xe^WQQ Oڬ/M;nI5m02}B{s{"Y./4!䋳(.;ZDĴP Eq*lru+ۡf5qx7'͘kglwa^Z8Q߫5yknv4Q$e&ldb.ROwPD*S> Yyb9Z3.9)l?ߤ&5?G$M^Ց*J=AE•!QC ɏÌ=ak 1C y F!fAy\=j`}}"3v󷚚ƕLsm no̰TBUL 7Oc:nڠ襃WlSL$>wIv>/MDNBբ 4D~>J1I=I#RM_AFbN9J#' OGFV9v1?CШX4sIOfVVOsNDvOp7蠖!pW|S-|k1T`\(O͡o+w:$ΚS :yܟg-WdlTY}~JG \hśܩhW+{2Bp]b~F1L`Hx'):j8Ȫ=j{?ON7u7-Wnaa2zc%Lv#k{v)uXklv6rvyN^ڛ;8]QţOw=BjYeoqA'J.Sj1a"}>9BA@2GK+dmr- F>j)gAKZ75 0^_x싧Fɘ,Z]yN>ٚ[D`n/\ބa4$Ҭp( [6,+Su1Hs^kG:d.5'aOE Iko_2#n ɮ| $7$e\bK>wv$Q6§2CY X"QDoL+m< Lĝ9>H$*`@" ^be}(W=LrdLx Pd} >=JI:!oIR0󣀠ԙNcs)B0 bR%C@-A!r[]&K~Z>Xuxc>2JC8MaqQ9kYΒťQ… "!%F[tA7Z|̦dxN=&`>pon-^ub[?{CHĐlHM? $KT׸V*}wƫM d$4=iWyٗ.w.#_H}ۄijaj+ά֍H< T b)մf9^Bh|5z8ԠUraكËPpM;zюSGg5g8:W :2UcX˧'HƉK {{gTx#; ƃ4,-a['>#Z ZĊu{?9bAgԔ F]EhEXUV16e%7:dі}P,R 6̾npRPvPWMbɾ?yƶ2җ% Y)cU&_eXz|?)}DzC$ N4R [ &T&uby}LD4[|KGRsTކH24u*v9͙}Ln^F&'5+jEؘ_Irw,ڐҝThtk 8@AN1ZI#4ZuRw(JgU-F}Lk=~%/Ħkۗ}\&KMEw~eӸrؿ!(Es:+%_d2ʛ18fl͔榾hd^#ug`oF'xT\]&ܸ FKp'Hn' 4. o܂[pm!}Y3̚T]U{>mH J`% xfƚÎYuP`a`bbb`aaaa<Ź >zHNKAJJBM#88DD).Ghhhwz ~ vac`bk Hhhbbbc+Xd,)u_x*yUz?u:AۜcCF\L-ád`602oWi%||n;RntFkj()I|^l轟()af݋~&io2uu?} ^%XA6yum.k,kI=3[@>HbXUI;V_rڀs03Cb"2wEY] g5j45οs?H"ى#{Bʼ̈?Zg\Aw=d;W,%:L.uu4{L4 ۗHkLV(+To-`Q感Uk-…+?^x]Q.GA -]:._2˚]y6=9yѷC ϕR0*VWćU$>O9a5hl-+A}ڛ0"d9 fWoehJ&OYy0e,jr h[q fIks[jiy'q#_ss1'ڽJ?bydԪӇÖ@gf:B ΫdYcI;M%쵬݅Ǫ3ɂ5$v㐈D`D\a#VG¶i3`F^o \Pl)^dQ RX#=8,VqwUʧh}v# 'RMgNǴ^g}RmL"ŋ$ "+БY-wàE꾁lٞ_󖛨GQvmfc1bEv7;BP HV*ð2W᫢$@-U`,1 8)֕Kؔ|"#B|JG|NGjpplfKE7"EcDǾ]B;UG9}dzzI~3E4 dOVH߄S0>E^?v=dtye;#LxǗte|X2Eq I!}b&^(v:woTn|6+ߧZ?>UΖޤ1J̙7T|wPzv+uHlFBa~l'="fvπϵvR=W,淁bD%DRϮbhSB![ExR*z5D[H*@!VTw^߶}:L-&=nTz|bܔa:"jɠrӸGMxj&r=bxbQ`f8YI0n1&g 녟7p<`ĄP=. y_ky2):'E 9!^?/QAc#܎&5$:/A_O$@_vW3z&' k;O5fsZH 4ѪϷA>Fg z↋I"?N{x'22&.BAxZ <1;%Gf~)@tIumR:>H-0%֑1bި J׺omݒtMb6WЗ}^נQ o#AD#C+*AqX/ܵ{V,exhB6 ފ\txl~6x1"A$d;,=rJ-J̬ɋpjOW3 <q}gN1GRJKIM/`1x Zxbu@LdFOPdox5V/GD \4)(N8y쨥1GAzIVqdxC 3RV|<̄j p{yo 7 >6D(T8pWqmi| huIϳ$!^dn3\9%i7&bbb#vb]?XTȬ=,D1LP#U,!qē-;[~dlY ؃u(v(_ g]JsR5yc﮹BB (CG8y`䑄e]<|VTx2|c KӨsjqr  )ioq\SxtD$fMsl9HWòěrZ"۴u}x;=^|T|=Сo ˰J`CR $wt<(*g[#cWzL d{VfOQpW])cjf{s̻+{1߃F׼1aǯ) _AY_9c}9n; 1+ ׸ul_H!} Wo/i$Ư ))C= o/ZOK߭]mcmS7gu|?-\S4dP(9:s׽/ISA[)y~eHN+]ysx}i}ԃP¾ۍJ_﯄gS.}lJwӪ;ge?+X;$B2Y+ ;}ozH1S^YuN/uY9}c!S6iXmR3X=AE-kO;X:/r:j1 p }?Dn . ~/*JƧ/I'X,<ѩ?I _N~ĘE@~ 4x ׾dَkG-OZXFBkzŹy5LA{ BTZ\Hk}=6͐i'(k>H>j4)֬:Z]ޔ|$4r5e>=C[xjcQueQfEz0ښ;r懰 8xȿ]5h\_w?+Ai2n|V%50]yq8uOS;*9VrsS ++<(a%6CW'Ҋa3DNU)"\pcmcpԗ_:ZZx% 約$%An>+އ@yT?~W?hn-⬄8(X+}jxķ@ Vp?q *Uw̚x2h6?iIpu~ "ڥ UŌ(m+|rWŕ::9״Gl"xf*k@#L':/1UdB%#+K`f!'&BlMvO4KIaݾ '^G tM!& WњdZf4l웾[l* ;jQ @:ahɢ H0?2Bde4=ҀmȻ(b(:MM VJM7-5|-B(>AytQlYqe8 _#rƹih,t=3۔It%jkl|kh]D>qUBRJJY?deˊd3z4r3X^@3)fReÎ7Ţtͬi id;\FUDN^HkK3T{43x2Kd4It^h߻1 LTaLnwx|squ= 5ZK oJlD뷦 ,܍W[a7\!akӾX? $SY-5?ܹ%ͧ@fM$EFr -s8""툹t_[:}(K̰~,?- Gak>'6Y.=+ &}])+1^I8;hlz,ɬ$)P.0&6 [)!nM&B%U c!^̇fN8Ԙ*ǡp)1:sO汶U[cטj1Mqy$+3SA#m#j;{) ,|?)-&(xSp (ܤoQr=ՕS`l'v_Snp/X}O\Ng @H ̥ӺڳӇQ5+ôɗ/(d*hwxүIbr ~IJ88ÇA5.FDyN`?G^Uߔ._-gĵ5}ȱ*ޭo(\#:f7xD$d -L; DKFM6C]k_VOp lhesRz7/,k(s yxtj> O8LBuЗ#~*%??g~OG)xkw<lюK "{cFb`(S~05e7}5_siòAFۤmrLiMޱ#wc-a=gaWx`>K{`b'M{ ǚQ/1?ܾFW]̘ $>?1',Jp5:dFsu9LԽYUEVsz0HdT5^nEݭ ߵI 9H{7q:u)#&ܻ~"'GPe4K+Yœc,uy#D +g\[f?y$u-O}x#h!)?1[NKi/̔9.\$ F\ 9j3 kzBX _;8Uʧͻ6ܬX{]4D02wJhC5>uf/2۴oAwvYP$g<lݘ,N8rL|=cƁɫsc)dFnuS+Ua&3 Z--|sr8TźG -C d} +c&"lRG{}5~E-Ȋബcj.8U5DY@궈iT6|3xM.8řl+L-­-zzɛx2ɋUqO9LU9ݑ@@>.>Acųѝloc_rn򨞴ߵY)9kO#.36 4IE WɔO,QT)m n~/vd[ŝeU0lаį[ ϶Ko@VI[;?f]*D6,*iO# t"1捈%$ \R E9 G N_wxQ#lԺ\𢼁nՖ *M-%5Wgbmzfv⺺%K ՞|.;3rWfT<1fFFG&凓Uuxt6e/Ktz$RVV T_tm$!UR~bR{@(4/Z8AI>$>/(#y!jM:D'/ k*9vƛVY2kY{]'[ۑWYr艑nv&YSLJR넽dܙwTcnǛ6z|d˃yt=~2ar2mQZekju,Oi);Obòtx9@z<&GT9KQ!:.G5ZI'N5Pq'g)l NsıhM&7bYUDAp0a+@b-o[v=_䋤R{1Ɂ>P[ ^rJ[-538OO+l$]ktMvʛ qZMEFwHsد+m3v^7tZ?O"ҡh24'v*7Vmz0t<),L=|kLmZ\;z"Lxz4 p6Co̫Ry.z#WC=gc9jM~Be=P.??h@?ls/ -a,hٔ"Yo6^6>vP~KppJ4MǤ,v!f_7 s2u~^1z}~6eqYqT 7qA6<ԵJA4(?.XjɤF76f cҁ+&LGIAuƚBE'"~piU? 1*7 h$?cH*aN 9\Y%zS`V%pJSvb&4C!}f[K\m!|E: zM#˥[ xK=!kdkEK+FpW0xN^)uW_gҫ ٫Mݭ_$@Ak~Rd,@Idt21YrÑ(2>ce;aN[8|۸ÑjimTxS6 b"4j>̜-zX}QMүuXe5+QMR{|wۉ:>3FDߴX"{a =Do#azz\.v51v% \ _,>Kt`uP-R%a%L a\: }.z}mĖ'nXtLa`H>+f~^R@ )%{q&tV~-z%{zcZiu5:N )_}d3x9'咼=Xg%h=MWش2}6PQw5>eʆ'S>o,\4(B#ze,M$h-hv2G,-Ǡ\v׵%0?TFٵ(hc.\>V J౺i5rRN;uYӂy\J掖V2-'Uw>+(5'*warw.|iqxΩ:RJ&@T><'\/=)r\V;P?驫VvURnx(/T" pNߜ&TeͳP®͊3U "ߝj*4Gƅ6XS–<7r4`>{{FӼQovR$d@]=߷RMr`&# Jȓc,<(cT2".w%A eɣ rW,0p,,6w-7ϖѹ @0P h]uF6]{a;tqz`qeekv7UX\a{|j9/>p]c:IE )X 9rnN ;,n0> R"2`jgm r:OfOZ[Hbd:Mn|wn"pȯ:Gh~JlPU楋WId-U]!:$&4*9ŠTk(XFڛl\xR/h ʴt A\s YQ}'<&|ƜM-[w,_~QH8@cssねɖb #HeHNvvr `|5sg'$LH4` &l#g"?2XXev=1u@&5LV)J=7U +q5,AXL2zy7H:njiuRM ,'k{ Me_O6T5[9'-P&0HHxo% 1dcXgCdbAkӰ>6OTnxwR3*F33?otٜz:nG']c$K]0? x9|v=Nu;Fh%^4/ yCvxġ+н]{H HKe[,%p(Khv y2P s'|m%zr=fU@d+y6&>;ѳyl's89 holgňpNa ֦L V4z 5skQH|Q=<<z%a7كb"8lG3δɌs}@0CoCGKū.,M i&G;q /Я8ocx7c|<}2i{ kC,;lˬ늞Ga)@~T6n+<$j#&fجø=5RZB`^Ε!n[S*[{cK}6\ҹ&]{Sm/sۑ!xjި.SjM2# ,5y]rYη*nr FC)^L ]Pvv?eqv 7#W 'ςNЭ15Y1;A/<!핲pv+FFtf{1+s-UKz׀,>dT6wx\mMoA0BеTsx@=HV^'.◦L)d$v5/33#LUTHzt##2lmYtG.)~Y]T̠qD-"ҏߏ.UtUs֨~,.Kc5 u)LxgOh5B`K,[y wS]KOn-/<|bgDv`htѥx`EJMiջB;UI0OhcAYu`n~gV߾LL3ѧO|rӘui.M YQ2A rJU:{02&Fˣf n |Ǹm+v^Gs]<ԓҸ?R&Y|={qe~6f*.ў T.HFOpPCA|ƪ2N:++/\- \)w2L3w ֳPa 2-_2Uޥ{Sz;ל*#X.H- Ŧci>.[Iqx;jE܆N9dbh}d:F5˨t$sءe%cȬq]'\f$ر-@F2j2 lu#z2&6q4n:Y$mķfWݴ=Y=AM^CNFݴ1*J+8}3]EWo^[fsHMGOUvriL7sxi]-˴ yu'nB h:b4iH:qnNU'#>rDY4LS+m*ޢIXuSZ&*&lca+30)z"eE,lT!9ƤQc#>y@Z(wAޡ{ߘHCabZE pW Οۜ߶tjyW%}2m.~&v?23_ CbKhQ{F~7&FjO ޔ7v3MdE[ 2nc:LDCQh|2Q 辷W4Td ^AZL  ӹ%s*P׉=~d\?~ԗŬu'0O&)l[Ef|rBw~V(^#ZسʸþJ2O.G$MAhm +ߐR3 N9l w{{gֺl}a4'QOr z.hl0ZU t* =`(x q['o'{uIHR\r|d"dGb($ xVoLl:Zs0^1}Nߥ ѥ$*%e;Mi1xq4jX5(XRegFS_@ B㥂/9EFBJx.WE:^K:TMvdSi-P5>2={e$*G|Jha/|HY&K9O<>ut%eS뛮`IOFQ d\`I&-{:#g n@0tAy)tuTz$zѠ`TYGu¡FqT' ҊdLr00ݸ֝XT]]oa8OvpYOUb^ΤM&DhjbY G-(? mWr~;ۧ81Cs)^s*W uX%m=CSy o#K Ԏ3ռv2Go6bAeUcz%4W+y:VK63c.&D]/$|l۪NPρk@h@)Sޱ2ݰb'&k϶ȉwFzSTXHWFe>ySLߚ5 X pTZ>b> zm<>T{[Sw3{T= Ty1'in͘1+6UaFoaVx Xnc5,]T "6U3rFi=gN(\0/%t"Xl,!Cv/g!Jqyb!o4JdT AaÞ{h',|ű-9 ׮`N$uD}ȳJ rj8a_t͐j7j[uU]X^~m:,U#rnIG8 25.{XC~5'F0̏XFݠ*8{pfʽ{؈oziG- ozMrVkXʝiuv5N f2J^0+B>):U=W3/:WA5ЮŞ*CC`VTIRv3e[:1ibwK5S]owzsDrr i%3o>l*iviRmXaa+%@L6X0pa|ؘ}r0?~QD/vE_L$թ/Y>T˨c>}^䊿L;tiɦg$S|opλtelƮ,(}2fC0U$c5sh:~Y%1.~FLbFNW61 /i~ Y-(3,fz>=/9/c-J;~o^W|ڊLb{JD\mjؼKX;H\9ˢmu21\$ twY`ZeԒBGIWdؽVͣ(:Ǽ%!$=S{YCCYrvOndvf@G\i=)-ݘD=-QJG}+Aj(N = ƴ̂웒Yn-=3IiBh҅D`(Ъ|AƳр:`f9g0iZRYGL}ֽ4BΣ6ڃN0SbQ~ZT#=>ff+IUYg~ j08M&֭?MH-[%2Hp⭵J~FV1I ҞÐ|Z8^~]ERR׼KUf²5ronDaR:JNQц@ʕ"ԙ lr;QYA'<Bmڴv&N)۱p^BqA2ӵ hO)"INyX0le.JoX)cb8N.r GUT؟tTIiXHFꌚx%:4 u>ap,*NG7T9fTr'gx+e1Zk22: ÊnJU8oqY+_Ќ,arIsfk H{c LK\b ` Xl/5%}ZnX-&&%Ff)%,g:z}[ѫx2YU >ՎN'cyYŧ1巣zaxC P=_x2NذPi }=gRx'!̲[d2 CrdQVqQq3QKH@ ;n/:T ؉pQwڸ֩z+ߟ^#PU.܀NS{YGbϾaݱ Yd.iUՆ|>٣ 4/`͚KMDŽ[Mr鳕cN*= ?5>6nl # "l/ʏ <=Mh%zUb!6N^l{1ܞG H49a|?vr64a /H]N?S֔vQPt4rAzLi4l2fQ,Q{YSס䔦.5FXGU%k'q,>y7y 'O׼%lsg7SuZ@ݶ>g+-(Zȼt3+'[IX^3eJ VU^(sE/9c6.өE^nURqM_Jr $Ȅ=R ϫ | N̋l  a+.F.gl(,Ul poh{uӛmJ2 ri Dn1 X~Mϟa?2$?uSj],*i)h?"֋R(X(nbT[V\hWTiF+zdQ5Sӿ}- fP9g::[͇΃0=wN+]l]o@h]ڿ_~ZΊ`Ʊ"z]N[r=!fo%r&y*o@TS*[F0gJpD,Q G>QF80klfR>8RJj gsFgHN@ v/c߲e+b5RG.9WDEmsikĺSL!HIݝ C!GIzUI1hS"O?L,ku$0:S2%: 2MQȩ'ȓ3%kIBUj1cj+iNX݀Ӱq c_缋 rBYJMRżh?Z뚔{63zA6h9+7x\ t' >cr3wxGb*M~Xz>]EcCSg{{5_MʺO%fwRi7u??Y4+?=L0:"sM_Ui82)Ja4q,tk v=kOڙ7fB1]E@<o4~si~d^/yvz'pt[J1FS籡2'ӗpDkHq qEGbvɂ 9X>yOqqU@Y:r$$A z4.Η9ҍڸ% G [5u^#224ű~x87RZ狧 Y㈏f8$,}C+’G+v%M:(cz OY Jc ?-@E-͸ytr,NTG| puZԃj0d} Q ^ ºg)ԦI̻i .V֝.f'v}rž$do(3tωjj(>:hPJ?e="ݚ^X%<ۥ۟4v"yARn#D9_b;mV"#pRhS~Eö^?ȕ]~:7WRnb7'qA}KBm䓲^``Ō@袢I#F6Z=٣K׀M 6:^QlO*\ &Aʐi @X уG/_n}al-qL y: $LuHaz&BqLprSRlPnv [pQQx]Eٰ]Ԇo1UDPNEBJ=u!^K`[CCy/@x j6B ֒;X20ʤ2ݚ*.ϒ7^ѳgn܃q`=_W`:;shxTdSrNfA/w O")'RHfq (Wk?Ƞ{k 758R4<縤AEgY9j{; ׀'202PBJT JNy+[MoZWjW˩8}`' /'olA fl>4;ab-uAdml[NXyFx%8 +EzPQ1k G}mBɳH&+{#= q>nHOojrxfI"6tPJt-_"Qy<3vjD:l "#~Z-8s[1[m>K#cr̀*b(_ 3XDӹOpܿooG7jg.a)k%% l)#h넠$+e؀?@vV+O%y%8APeY+dz;7 #Z&)"'|=CwNǓ2VX6Y?#Y!p(k:lJYt>}OP~𠓵o Vh<17 Rڷ|,+Ϩ0P-Xsumg(kX08'h: KOAm?[X;ĆeYF*}!T}43LNo&DOP<ӫk刯տ(uth0k$fGEϽj]Y,|'f>lN7S;]t^T\[k>^ ep)_W,cWSm(,߶W}?Qf,.кCrrq/uz.Wa 9p \daPlj"ٓ\S 4 ^T؇Cn [_tytF&+z7A/_QWwD{uWM14IAjC%(Ֆaa}%Z'*4!3[4ݺ}SDyj;Y"jH73";j ǵg2b?ΆAIhl|\$]O;'Șu5~o7~[3U^ x'5GI|d}Q'RaM77aT OҽЫq?.8/Bg&arA2!q$MXZ3K_`u2| ʞ,u*u 4_/_MAfw.M5٧"*.DtGܗQ"7[m͵uL5\/QU=3N嶿JD_h6ϯ+r3}SK< F^Y|2bA p } @d=Tk>Jm1&ĪSNЅjL˥ YӍ?ۗϥ): DÖ=М,!#I~oP=0<O29 d fih?|<(cʴfez [*Z=tY\9Ǚ.lf|&z8+m&_bFjncbe&ݧ V'Xe*e_vN. k#n>"iq/e؀ '\e׀6g{Z F%O2؟chd )>"kdV"0_c: S1JShb)(\ț+b 1\+o{yBp:dž4+ܤ.˽@\+*³`u*!EhxuZ5(9d/s槁1u#B^ͬUVR=wh/.TXTa`/ɭ:t^):zyQ3W6nՋ׀K#H5@{n3y_̏gWM.ezxȅB<-ɸ*?>W_]~kyR~)y p<7Lų/s,9ay4KbRDלB;Aˊ(nPgg.!w⨷1-F4&}eW]uT`$yIpc+QVwXDW& f[95 5- 0wJw5@fBg> 7>vn ;y(NIRVB#+( Kc-Nj Hnjۡ[#,0#Q74($Q 40GSV Yy%ӟ}i|C31֤2G$ Ԫ= ;@{Egt~E;U=+!hڷ"ѽLKQfHSqL!uFG[eT:栣ji($.ھ[&omOV.h Gg"K#Tс_;N-vTO;3zm๯J9(Qq?0#|RW633ylk@q5!}gg+!W\2xUr$]Cf֚x>+o&!F>y+\sTُJmMտ 󗭺h-LVW{DZuy-yOLtE^'59$.0ׅ 齷ԙb"+#Ziᩡu&GIM4^|1z<"5J&v R8#=MeUpug3CYKryn؏ySY?}1ق)jg8(zgIa]AwS,JWko|dsYq60o%,7K#%: sPɰM͚'Y.H<.)єY{#P51UdtaD%\ZXXb1w4\[cax-ʷ:lTwK$GMpLZA>2ZCo<蟓"(=|UmCլy.3g%aH ['NEek}%ͮ0gdzg˗=T1Fs̚mlV%Y"Υ^xuw &Q@W~f, GOxoOl9*cLS}.PPV(s PBx෪M̈́fݗ3Oo\qSV~4Lg,@ÜIiW,`z69IRKdnFI]_;9moM%1'Tu(N99F,MyG{GѲ~}%foѽWL.Y8/9PJ7QOQR$1ƋeJ74qq_o!DH~ٱ4F蚷'_r^n4FG4DcTg W4py?uШɒJV !NgDYW;[ŠC[͇;7K]îm[gWIJmm|M #d >J?Jqj/ǟS{|eV/]wA/Yy~ۅ&C:Y%|B$}S dz%n#=9ƌy4Sv{ nz#Խp/JIqtc}x([熓K78v "]:3il_AuF_5f[@ADxˁ% !>MUˑ6vMƳwMҬdszFD4|ef-&l1>*= :j<9-Lvݠ%qREYAuj1W6k:=10Z@?'*f*W 3fFeUYm7j]!:H #+L:KigOU0WhM{KG*{zC8k|wӲr>>Z<Ӕ] 6 9?ŵqF4I $ D 9$oʰ:lc'v\|7Ƥ!e6"7R{ Vt<9fO",5B\9O6(^ǜ<+QgW NZ^R=L C-@fWcVbÕ)cWyS| r+(xRcf^r܆{wG4 Vq߿c.UU@|c-Ij<_O{՚31ukjPTǍ3M%rigt;8HؒT@}i2oi]~p4XYy:E,2BfEs&3yb9> J[OHt:9"hYO?g @#0=/?BM »%Ӵ1 {ccFF vZVi^;;+©zCdSY vG;0 >LY,w (m'KfR:5'/Z ^X\ֱ N.kiN#m^-} 2@6VKɺ{Xzcխ+ yck_`c]2P*3ӞjI㺨}MB|i}C>"gW YZQza)GLW)|ϕ^* ~l}G;]r|­O~,#9S33aO 툒z`u] !v;A4J(b =XV8Ըa$x?>0r~S_2S|'sT]M^h7Cfe?9$GV N9w6g;I~Pdb>#M0뱾xa$_TA;](5GV򀅱?ѫu಄`Nj |^\d/]S3R!ʪ&4KTʹL;1 cُJ+Į^lLz4P\W1Mؙ[Xʨkw5/}7So5y_hOLM8UgG/(O'aj[lO3qV!1j_P$_4g:G8Դ0a=`Y TjE0j\5A'X F8kIj{%),P~B+Zfl X93ڻ;zo ;X@2ӄY~~`HV{I ܢP6A[x7˪MYrHQE>#\s{sahx,$]l '(P%Co'%jQYr;޲;ܮC);ER7I-P ` E܅58}xVX@zGʗ)(3́78KҬU` o:śGAKiB܏xdS0%&פ_,β2G4 .Uvh> (Ge[uGϒ~nZ.Or:|/klk;usdl3^rFRuz+K!F*!އx/Wgǭ5L)2c7)Y,D$ԯxREOB>O w[waX=и׭>eşDōg;&ZŐq['_gI1EeGeŎik~-`$f5-%&gqXw>j]{%d<:1hoxTh:zs+SnCSzfV/BO3kŵ~oFlHUxbL7ˆ'0BbEU)[ұwRa E]JZ[bztfN?'Fx!&g!5|Vxa8W(mؔ}.q0 jz,ϭD)¸a/+$;ER/k]߰YOPv+'46Z0X:Y /鹳թ? +OFv92!5$T ج~ qkǒ&QbbtC1qB7i`RZ,zA3/B˶==AѴߟK Hk`)B{$'ᵸMsTcUw;!GgYB4niS,KEj_Edt]K1ZŐ5qspVbtaޛ|xZ1lLx8+Ĥ?+5Mh/"ae=} hx=PtTm/(:⹴&8ߍePլmV9Į|j&"%oV#rXR '؉ l%Mt37qXc3f~'4*)M2*濉r׼պ[%MCz_X'w?vՖꉁ+8%2ǀ)=M0tpe TvCSGM7 1*PUkNk!u &k`®5l.mJ~؏)|T fzS[;: NU7UR")ҡ a4d@iȽLRΎL9a<3,f) 4N|ì5&dYʧp /αpSel2/r[t=&VTh-%^nVn@{CfL0Mb˞m2Ʃ1biM~ ϝ^\s7, Ql!/lowZW"ů>BBHܠ=ᩫM' ܙhwQ4"L)ub\f`ui+>/Z>tğSk"pUک|\p0jz6y !(0>٥ޤqjNȭ@IA\T5IlV (67yIP0n94v̘XCb=a釿<-d=\7/;6S)hT7# L لZZ@ Tێ̚O@D>=e*hCC5!G!JP&=4*G^ݟ"(Gc5)|熦54FZfIθFdD0;[MI J`ŹbdnueBAul %?Q 4b3kY1[â1Nz?sZ2F4#,(hv<뾸9W0U M ՛d,ur(hHV,{[2i^1nڜ~b3Rkɨ' S? D3P5\nGI$W6þw^hci=Rkǯ$ A#qLIbWY/cfJ{Nղ7G"V遭Y#5R,x' ~e/)d'u']YҘ47Zy l s~vkQWV6|* nT=m3O`YiMksâ=Y1PId\D̩Tz ԟ.Oז"R\yͱO67KqnjZyO_6hN䌾.fht/>Q4 @U12_{ l[#t ӎi׾G(;Rgp!R(@ގIT'>" ^7%>QibfS_FLi)Ǖe ߂ݵeWIDmMlۅW?ܺ ~p0#:m_eȒ]^ý!JS>OIQ$ȢO,?C9xS%A97 +l PE`<[e\ҕ'.ʩ-?sBϔ CSy6!/R *)^JЛMP֦HsRWuɉC 9Ii>O$1W?\L4ɫ;/TK23U!_jiA*~v/׳<,ki`ﻒh⺤gF[clu^a(\NaɀPkye=FPxclX*^g:jMǯd?4[mτZkyHod}yF%[ 9j'"s]#{Wu"%*|2۞dgJ6NJ= rtP92N{ۍ+;g+=ؗ~A-&Hd񆕵ΚqUW\8멤Dpòâ.SϪݳh18fbDٲVITnxJ+_3٘}`jxG-tɌWJ5# y}2`}ж+kJ*H†L{WR:f}e:d^+g ">G/nԎQ왃w|n}d6+y8:FΠ7ޢu{5{)ajګ~_9{&_EY͚T"J`|ytg͕_^|u-=pc}ޫT`"u=0WŚt~2D|]kVt覗-dYPAR$>+#9eaָ m7Ovכ.5醅 Ѥ ں[irhI2FQ9=[S_؇ԴMׄ" 1'xf]z=pzCHF {R(ؓӂ&5"C؝xxmQ2p2݁1Loz5ܑ0n@{ELe*gESkBxE,025|^18}s,L-Uh~mv>.9 獦(܀D\% u<IafD/CU[au{lbakR?&" xgW]{:N$ WQ=Њy]+!4y}8Cv I/p֎B^\{AMsԪUmԴZ>6 k7|X=bT I'~B.Nl;Ⲽž 7<02*fU\T\uK%e(N>Lt% vVJCx<}uwݛ@S7b釂`TcOqw럀ğGߍPJ%[7/T)KkwQŚ݉ 9ŽHlI8tUMг,]#J\S)$;rO,kLm`Na3 $SNxti s˩*Bo}S̽VFfxTYc%.qSsTwdHN÷n3_z|@Y+tͪk'#Z@F)Vռ(V6^xTi<̥+{jnVʦI߷ ݬ|.5j\O$S>#|i,(d5`|I n߿gMQq'aAfe2΋:s`(د*}~l]Sl WMw(#':9i=sO\c *<'jCfS=+[q{Bo1KS'(%Xƫ*3\#Ѿ@/Uher]CExs<,Bph/utx_`ʹJ🀏6VtBچFp2·,-w/etW'֔/l!Y!^ v,41Qq% d[[ƺYwZω湗?~-VZN8D9A]?<1pczK3}p폫0k2NRnPis7501OO6N`kK^#nO?1@ Ϗ!?OCUMՅ ĭLi.r/EKO@70s~Ǡ<{jK/8ת&'=Zé FpE%2no{|CQPDث(Wj^00+w췍n\}6ZJ,NǚWBbys_ _Z0#d913|#ƐAG}]4DPsԬqVUtSZWfiz4Cɀ |mkV^:)[ֽ97PtBUvo,Ʀ_a?O&\7 `hvڜ1hElݣ;WJ/eO?W۞#Ւ /ͣҩNZ3o/l\{4Yo3<<")% |3o|P{Y鸣t խK$ f4'~ۼ{m2eT*ֹ:3,=_B"?ƶpWEiuPI-\#C> z- ;y |TV;sZ'?-w[7R] G[<}yzQV|x.r[.F Q<Z (Q `b^ckdƧpF:KB䱉;_XU7* #H@%dVR&lgZeARc ||k}'2{<%!VsHwïx!̍V9)l/˄G1 2Rɟ` Eq:T҇M$Y6i<..v;ڸ94KlF @} @΍m#4{4z{zfRz \ FirP9LƆBlweLЦWtҦ³3(*@Tq>hhb7*`q&:̹Y0ݘ?1f0i V؍F7 O5c|Ys51214e)uNzZg00~hR_lh#e=U( w&i_n PW;aJ10O 3]7‡%X4 .u6+`\|𢶦t7j3m Bn詢8&w~OG:n) 3~sy5 U4тlg„3aů~@5e av6Lﲦ\>K{7_ ^SZLdûn1tʃb-ڠ9XBţf@76i.t-W; ڊ~~&EE*V)?-GgӜerkrmE)u =BX4!:"0gǐf%}[Lm{89-?%u&k@Qwݫ܋:OjO@&Noq& z8luϪcj̷!X1 cs4oE%O Ht[360.x#6dK&6by@<8{9=lrs,0kpB^#.$pZv|gfZ8V#1&BT^ .RMkaS1zsU!צ?~ ݦeD8U+d0Og`WGlV1Ms[@cJ`~fTR& ,,iݸmI R=ݴj&]45mDlLzD60t\Ԫm5FҵUĞxJ 4ز>g^HL6Lfdd9F r|G N)(+%ܱ^.rnQqDЬ抉bEEjՔӚ 3)J-QS^V%doQ#J>˧)t.TzV/Z3IdW9EZgٕoupaqlٴi1)KxA$bfOI!nH& w)6]+i,Dn$h/s['Gw4!"4,cr$w\;t=a'Ŷ]*w\u shVq:Dsg>! QHKB DgkJJ HJ\ZءmLU#gs1ue=V؉#/A&?7󔓽.# s9IӔuFPژ )պhwb>{Ę}HA!AɶU E9#O#Ƶ$Э~972 \uQcoSU}YW ȇ)D4,XNPRj"JGuDq!P #VJ Œ|V6h#h\Z Fz.9+BtqSyk*l>Ɖ.zĥrf[X}ݭݑ-ӳ)*/)uOO`UmlD^NYxY`pF+}~K1MSX4g=B@p>G-p7LnZ'3(Ӈd5+T&^4":SD3EAlZ (1x'+onMՒ{ҋ-л(eu$?5dcN \L*<+ef0bu/ cnLiNJ&5̫dX稩V_QD͟1Mf ;Qӊ"J&>ȃ~> nX)i"DŽHaeAH1@&Q8ioHUL/>G#iaQyhi ZJ=1og\Ma=-Źt~K|m:4P &NM<,OjH Q]q$+q"> YPݱRdB=~S~]m?>ft2^sDN5\}z;*&y)dSouq*i#t-X1܋0I rpk{)ʛu6sԲ;",.?Rz0#vzbǾbop|1ZsiTb*"Al#u 9T=nSuP*$݂)eQKS7ĻbK@YCv}-J&~`l/?gEw'Pht?.s6ȭ?Kf\#uħ)7HPwb/ #X+R,{S& h)8,cuDc|vrv=9'{tNC+{P+-!jj$CFȘ|usΊ̠+B?YeO$v˭4 +Gk̷Z 卼郋甕h2Sg",2SgF7sƿ=+wsDSS:Wࡁ;9˾T]^ȍi1KS̘ <8Q/BrؽMݹgl/ Dlu˺+ 4un~l3w([{OɠOw#l*nIT8[eF%vw کS@=^w+E:Ǿ/]h/"0uyq$^co54$·II+2]!1#Q=XeC}44Q;x@j>: d `Wx+!ϼQwSo%.B_;v]Y7^${-[T7f<_7m"?Q=Fh_b>dԟC;qĶ}~A]1ڍDTZ 87xd?z;ޛCʩyHR}Ka7m{uȲe#AD~eOʋ!#~M׶eI) _4=JaݭttM3ot2x|ЎA~a3K{L#C Tܻl신QߴH?O*T> hP ނg0gQ'Y$/8aĂ;ӣʃ03^Z@ib{Rpϛ S\}qa܀?PUۓ,3{Ǥ7k?¦vN 4ۅ^|YўHI7+ւojت ^̙AcWOhs:WZ-yҰI `_3> 40U93B3(],!̻uo2yۻGSLX+p%ktԑtppUmҮhT{福JB<&$ @i,8wm^E{wCX?`Id4s:Sڀ }-CdSLvsÑV r,k'AyFi;A6C_'wO YMW c%hYVjN(s+Ýn-Wi <͉9EUB@+_Qu\G5v`i9,uNߖ?bѠ`12+"]&'٬Y^bqu+OisہY`qSzU]tF-X;,]a8x~߁{@kn{@nwѱyá5fM6TTa\wg2<8qҞiTe_aGe.g>o]Ƴ4 \+4v=5fq|x^B"vn xΊSv@.NCɫy2uD /Z[$kAEeˡL^|[i~ Y ~d0zL|G/eDv `nVQH];՝F[yv1qnI)4qP-~$=mCD1#cmuCN#;@]nF. ےmy5l\='hW<^_JQjgu*҂Q(twyN0 <ۭB^pei+J*;ɦcت7w͊%Dme_o$Sq)E1sJ`(mcw,n %|9%%R6W9{Ǎ5@k<'1-~_ʦ3pU/߳6$Ls]my^} |r2l}*|`oyp؛bmp",d9N]d~9md Xh:[Z>l}-NlwE[-[SOzgâ ͙U句3utqkU0~#7o,>4B60,x,e_ip &Զm$+}LՊ+OoT=I[֝kМ>jQ7TC ^4=7 ouҎHP쮢6LJ&aƏ$,it7#$ 湙Q3JV2ȫc("O;fmveP?N1}l)@{\8YYDqW-zynR/AWNI'wIɵ(3'}VHiFK|NtQv8Rz֙yL,ai`es9|&oBЗ>"Swf\T)Sze#9)L8b,̎rNRRB{\N/n7PzlU+`qǼ7eȶ5vBk$P¼eqP8ǟ]}U/ ޡ5 7`HJ)_6g|"Vdr*ykj@,7;%a_O[ⷭ7FpS6ʩ>_lTIV4~ 3V~y/)R2q'uWp=z^- kr ?5'#eQ*!{;3+km!4wUBMXfl6)6}%Y$T7kɺUR٫܎{ڧy{ (K}Yͅ"T/ͽx|oDa,/}R_63Ru|)/g}+\#6C߃2=I!oK=ěu_x*uk2߸ F8Pm<<yObsa=GװH;8#2|mcs?b[tpC/Ied޺{_&;|뚩Vy+buԩ٭w֟:$gh_G%#5z%Ӌ{!P>kytwӚy-${)[& ~QG3).Mw$/s\YRǺ6"##hxnn%Z}M[RZ[X\$YOj7Z5c{~݁ 7>Pj2(N:},i/8׆{NHN;/Մ9[AE~9e`dQm">s&i=ʳэuP\r-"{}8qs{n2xKS\Iyίgl C9 (? HMgt꟩W?_5C*7x,Ey\b(NA@8+yvWV!k"US6kd>nӡE썯 g:=*Jf?tqHaJw }r/p󍔔sn!ۯ? jIh8MRWb'f(bG{)8.ȻRU-P 67_cϐ]24a%C nE^,v>A ֛xn".3$D ia+0u(ʐ_9*3"T*XU}K4-N]qԔN\- #͜Y(qP֎ek;|N{Qt,W up<{T ZX0U).ӄWݛ@nEjK19=.SN,}R"qg*u?(ž|\RkڷHвt}]E'5C N ZRreVSuaqfdF7]Vc[>@2VrJ'+Өob4\\ǽB?Wi j%U1Q@{iӺ Cм$Q^iR UB w>Z%Ϫ3QfN[ĤV&6 >  yFQ_۫1n0ʊ:lJOY,[7cԼ\ >[xb¬? Q"yح}h<q d[^wZ}׶~y'xǽB/#,~EPDj*޶8cd{_m#SZj fG &K]=IXdbb2|*=9K(Ҥ!:d9aA2')*,ܴ US>|.Fv`x{wV''}؜GooΥɿ%|m\53aU}J;g(RC ,$C㺅˞S~ ؏ 2:\Ϯ#Ո>+ΠŨB[0; ; ,?`\CQ *)dmѬ~$Yx&4.:{r#١"Aof`1c|Wjݏ? ?>_{hhVjx P8Z~UFDΨxhx/z&`G!߁򷚤?0xwGg|{- 8Y\+`VΠE0(O~q>~/hc'_Vwl\K"FR,L\j9Y}{`+wgdm|i3 Mz`!\ Lz/*',HɮT @olk.=,j`)-IM蚪IH|ZpD C=sYa+vhoo\"6ujrö["o%~"̱Ωpvi> qE@6uIZZwNa> 8h>i`|Ih,!a}m QZ' Bl\/Q]{'G q2z9}Q3źr%2Ѷғ7 NʞB9u:DZ 2r@ADfIe@DWǶF!%*zYZ RԄݬ<(ICcYccdY_: *ßa0<+ǩw136i'=0uqN̻6 \wt TvFcmrJ̩g\\QGA#-RSuQ]P𚙜4YVbYW#!PVLSbQC$AI4qq/[&rauzk{MQ1 Z YAt#\V {73{*8+h^PʜZɀZ|VS šR4==}z#CµzMOf$nm&eb!*u'_" =ØӜԵ55H)23+2$T;a;#ӗ8]m+F=r|/5P%egstvܙwDD hwJcG !JX$4ˮ@WT.6GgIOn[YTaa@etrđ1'CC9(lr +H(I>+HY`ӗY1ZRζW|.?8ɺҶ= bl Z9`.͂AlؤΖ.O|*e"+쐪!#'^)J[yBnŮ4 pyaBlO:j͜B=u0ŏH=l@ L)+=(tc4FNWdMyrA{TT2 x';`qHqwhC&S+7RHwZ{̏_sA B4xu^7*>ȋWd\1$COHcq<ۃn$rS7 ʠڵWCa_%:!҉F{'Q={0\-h::J6D:}wM<#SD ,tG ΪDv-6x\]%CPSfTv"~Vb:;nICct|qѮWުj=ZaeQ"TW_0\%F%̑LJbeyKmʰ3D̿Wo;:l80ayBg )|=ʀ;2.~ TNMhՊ_~H\o]}PUO[Kdb4Ag;\!rgFrm7;ekK5^R<]zwk$c nj9p n]t{|)yXޒBgoj==.>Kw"E )rG]bjGOx1cyr+7e0-`nzi/lm+n^0OI3άx9";|z 4زVPQ@BG Ms#N .6x!$S0 Bw*.fF(INUhmXVJY5b*{lf=DJ;W|jNJ#/W8sz~5' =q@=#q^/?шI$isp_tGbe+ ڪtŽ|St8^vTw } p%\qQ\{G.j.j KbDV|=LJf3^?CB6cʛhNwbma. xl?=pS;~4(,/U t1aMrRXA aķԉ47Kh[s"EkO}j=_m?nԻEmjoM|L9 m96~OЦ驛[ -腰SN4j{SzMV&az'H.Suyāyj }}|@I*4}Uf+QߺÕy`P=~a V㴦Ef,5 + $}ի.mX?u7@ws#Rֳnό f{mJ֧m)q ?mٳƏ[ᯜmc_ ȏ[ fDɝbe+tjeVa koL/yAطB[qLL *j2 r7q_IWQɣ 3&, ,[TORj HHiHӐV ȨBZ fyD31. `-shj7G ڦWx6ӡe;և;Œ64'5`6Y`!产C¯E SsqG"6 \^M2|o #Q8^;C*OSK~:7@v1 i& +!hD()Y?Ӱ2NH}^:0f$|{[wܢ{Z8)b\.d6oi1R9ȻwiF޵u8VQѭoSG$,%ީѥO$׬,au^M*qz 6]f@ O7Kc8޸&HZNJ0Ya!۸}V9W_;ԟE+v7*[a3INh}֨}JE>h4]N%b2o<K'Ji j̤r|AeW l@gSv7C^f)0Wx5wP2$!r[G^7uRǥ=7[R[IDܢ^jʨJgn?D+N ~rLUQIB%UW?q68eXXvSx2CL{e9VqA @`+T[PB_!ĖIdp2U.UI%6#-[eP4a0$lxY^IVۡp(d;Xh-x*ix3}?2Qtbٞ`Y#f`6A5X@J9G!G?,U,QIF~^̻74P}KL >t^ p9 x8LlY"xяyیG2?]~48wfcú,,&,V3EX54rWIj-<,55J& Pk䩘Ğl HЖIA&L4-fZ 1SɞgJfłU`Lxg~$̑*DV'%AZVnB 9?ʟװڂG>:憎dnXnSD-{3lYQc,?oZf~PJBI+KJK < n;E׉o9$e=[&d0ze`T<+ Fv ]r+>UeLA>NvͥG?oMyˋc Ju6?OV-Y7s€׀iY߲Yn͕HF,΂ҥJ& h_1U?UR%Ko+u-SKB俩9m'mʇ~ŭ._FCZP-KQ04iZQ6A; @ B\qyZE2~i?2̟펇iJ[+gWe/ɖDe5}˅A"Lr6 9D7ʷ{`dܚZ1ٴ^v麔2=!r F.hYJS I'ϒ .AӁ$o4yh4~pR2Z_ڲimEb{(^i߱,q35@[I=[fZA6>,v4K ug*syp7TVDaɡDNAf>cO2_R^ Ζ9_t(K|c֑)>tHV~Ma+% N0z|nM!D"ig7Sۣ,%#ۦ8wSYNep|'﶑Nu9v uF:K^Y0l:[/f&ni-^W4vfǛ2O&c5 bzMX>TigsiSb{ʒ.-{ߗޙ'OW%Jk,ub [\A;t`7LB ~@)Ȳ)=;}00h9'|(Iuܛ\ʛS0xd^UwBBG L,WU4mIU*~lPNyגq}3+eHB/0gB҃ȵby!\ c`?bch7tqŭnywCn\K029p>oHWK3Ϧ$Ś -Fox\V~փm% 4T(t 9 !Yv ǽx#1j,R*tF(Oh53$ ^OE/i Ȩ4J񟁛VެDB-":/1SȺ #kFLVN%%q)ayۯ|ݟa56&,#&g'WTm:U,4r|2V}i۔,)7G0%ӥT%˭Kٗ,];m~RW[PMV9~kx:%5Q'fj~MDJ]YMh3rZ@=yJA T_sFN_SFoEJKqpQD֟Ov/j>UA6)*)Xw'3g^}wcm2?dV!85+hkLAsm.eIx"7bʔ_i 8I%>+L (56ͅ(??$g`e4 dX2߶Pl3K m?=<#/ "H:x @7O Db` B66+;F=+b"V#bcWKG#~`jS%dȬF@}bbTV@TjǩGOG-5 @7gr5|BgZV+6_8\Ⳟn!\jLO.3x&\ܠT́y4P,zc_;3(3aئkEޫf6IhobmReznY$RF4,Ct~̧W6۽g|\uL5 E0;Ө('o䮮zܲ`W*~:Rf0/K}JXWòeֱ5eF%|,|PE^dlA*j`30пI!Jf3XW26عH21GGとn;HPH%xAh>1Nɒ{A  YsTҳvt,Te(#y]>?9t893'=d٠׃T2whN*ߴ }Ǫ\i+RoQ*3!RB:ƉIQ ϙz =Y~"=kM6;h|f}Yܗ/&aC'qM|Z|XF jmqVm*,8Մ&eﬦ cICkR} HtӑO-_hw4u,ٗtnA#m|# wI]'L@•c8;|$>9$Lmß%ED7Kԡ3HS Ndi~\*=b_~̓x(o@>f߬7"Q8^-xd[x(\*s fg^{nnXZBJ0nb&&TnT`)9Ży q=zGxxD@b|2B<<$d %%%>15-5-{U t \LL\ <]Yt@@ ܇  㞩@} 0*Jj1p "jQ8CW:72t䪭:y$)ҟ_!!ܳ~?##BCF'xʮdJ-e ows{9d<<#9nsJLg*>}wlTˁ#uG{$jrx7):4Xn\p_k1 J--0&pRw>=Mw Yʹʵ|wdÞ:6;,}hnÕK(YkgQrp,nˠ$/՞ 6;֚rk.g)=oIq7=E)W! rq;[zߎ6Ӈt ;wCg3YSzK6as@ t;2zϛl?6/%V&3V;C0gQW1ɨ@#aѩ +qlt74KugӶ,83:;ZV6 7o33"hI=m=ĉ8_v3lء96֯:UXlv,Q\qM4M?bwd2Y=+1, &9@6?ЁC%>u}_:uspVpnNws8f=m쓗| ޸8'lt7D(|6s.s렁o.7*ȋ/: K%y6 1Nm?t=Zw9VU4[ybZ1I.F)69XX?_YL&Ɂ@TE脸:3(Cy<:Fz4Y%ڴj7~^J'kaGWL8LM,I,D((1<'%Y!.Ư(- :(ĽԾʏrJ>*NXs֋AK-@ZL6Nbl[$ŤG*:&=}Pf z]OִAütIWj0ebVhlXeE^4Q, ɻKfRёHxR}VFNd*t)AͣEބy<c[=v} m.\O#gL)W6ojFÅVH.~(g)y 9#}]0i3x&Lql*yrI wI/} ?vOy'F yǧqXAKa֓jrh4m A88:lEIG6֯%O2cbRí٧T+uJ9YhTJ^-B-[9C-d0waIIia˒8HH5/)(~Έ7yu^ZY c* Ͻ[F#1g\lh^⃎9UUv\i%͓.NEP{c^Jͧ7g"s\y,sL¹uJ4HT\K\! A@ XY5 ;35tr/5=z PB͓TcXtrTUju` 1NC*%) ̅f ؤJA<-uC1֫eFE9RxI\Ó%$ qMz{l'q2*.}q=~ISL!eҧأ4Yڲtk6lu=|`H|OlN, oFW E`F*M$9w?I0>AI0YAU fqXnd=Ï-8!hsvhq/{F %򲪩Cٟ(u$=>zGT>U-0i5y_TE\saj&>,.9_i}Lp\\<xq+x'ѓByR6;V G ܀j􁄏N(|aĽsቅs/wv֥Yr/<vd`I2s];#U0(%wS֛/F쌆r]T-uw%Ӫ geom0*~z3FC17.lRqlXP KS%S3EybDWU!bN}qߴM-PtZn6QJ#v˜t޼bO^aÈ(>}m v5\6:]ͽI"ҧtɠ|djN" \QҢѴ8 4-lp3ߍJ.݌;!v]<9NXiXغ)MqRZ-{WT2q+<*b@fM(V8Nu[hlKt'!=by͋j ' ZC+$!h$r3XK|t|*tߴD+^>U~t΅XfBMzeY֬]}. #Rd?wqWݙӰgߨXS> oTmJl`8dGuzR旟?=s)r^,QUH! ӨyѠ얮.r?o6@eB` UVWc[KBZz8vMܟw|f,6mٯ]-*g[ś@.wpVrqGïyC,?ů98<O(D|n4tc.9w%N!qy.ڑ_-ƯowkiVb7|vHj$x#"X:j2&nY9= p#L3)ѫ|hS2)veJ]R8hP4?ɝj)둛f5Rgq-:0ZrXllSa'1:#N^{B3/ *C^bnK3kfӈCtz_}vi-l؎PъwݟdC9'/&' QVcZYwg-(YSzi12lѷ"-b(Uc^P1nZ,'֒Gٖ//=u|u˵\Vr*SNwftvlW^9;ݏ{OB-bldN4 :c:J.O-q)zxCLݻ-˞́v0_%DC~>k n0^M)3irB,W!4zTWίF}}T+i:.6ى2k~s{L bWe3׽N3o3Ac;2(ɮY[Ŧ/ʞzd: ɎLQ||7_b|R;OJ\H.|mYwrʿa]Ʈ nl1dl#p®<ϪDY/_7:I[6 [Mt=_F4BVXHqp/ֺ%2D{r'+OW>E&Ab}d{ ;k(_gP-1K\ޛi ekk|max;63jNX^In.F%7Dv.Pn#F_2$^}\`'rg}t`{N&=tؐ_t`/y#pEYy~Fed'v!a%ׂwDt/'[n$ НIJX>(xM|׃o;@h;Hǖ- g%Pïv{m-׃ FCGo?m]~m+({{I.{߱14A;?BƏC\ *|%D)vj F~{v3Q??M!JVS4ETν&'TW|_-"q tD;CZ1|EǗrJcU@ԯUj;B> b˻/6]ǿawV^Ό{0ޟ"d@]- OO3]XEޯ#]e֊ܿ-&]wvLj+`-! h>WY6g/ѹ7J_WX/n {JGG߳bwyRkAP9:O& ssI0Do~R:jQ'z*RczX\?,%x[9C`j-3WH{Tsh~΄d6&aVG}˻TG IEq^%Ym8dX/ic&9r*B_VP|[tf·!z^눯8Ze&ѯ,6,Hpl<t/tTv]>c ׾z;Ls{p5n7U;7=N4r"j磙wԮqo\ɴI:sZպ&k]!Zw=5ؑvVNALݏ>>T;,Ci$hvߎ3rV8;9@J|{:8pY"~]' "^PB4|.5Ț?F]9ܟ5Ǹ%N.m$tKB[с{;7/g?es{e%<*va,$*'4k,?~,^:x3F҈^ɭйH?@:Ͻ~X+݊G0@_>FAØ\q`iETG֗1S;$9*as(L Œ]/p֟Fi&&Xd>3SeA: ь8Xx;Jv=Rױ!fUREAyZn jPr#ɖJv#*J^[/qD+rḪIZpiٖkM~SҊk!F%>!öuYZO?03܊Ͼy7P.zYCpBC[#IdhuG^)甞D3Q'm(^O4GeȰkf1Qo;0[Qoe+!#U*]csmoں/E4/KXi;+{&)9Ɔ4v2,Ɇ|U!=c{^VtLb27gx"ܰӷ:vDÅ<^B͏m5OCQ#%~|8+ksI<#qIEMy.iĹWl.&p炙d ug_㋜Dnu`lq!R:OoEaU¹Y%Sk=ÝkϭB t@\QIGo&ɪ c]Odn5;D:, 6#Ya~0}?ޢS9n FC%)bgM/V6r B$ɣ(-hh}AYK:ۨ)nl7Νyj9[}U 74$ѓ`ޣ'xjBtrG.6Zr ͵"vH3[Um,]G)Qs3y%(!E}),Z7}KD_>㚳|Į涉7QȮidUr%Cz&7VY#K?g]` 8J q)q{HSuǒI.{|(*`LNuH)>6{ <ե ~|, jq9ۑ4t2rjΕf>H]ҙLiq"1u"v!{5*TFWjM-\OF4(0YZ0隵(ɦ؛˻FʎE'}+.dWV.ttV++11D~n7"=G6Aja6h⥅`%HNƻu' ]!e ZluNiR8e3ZhGyvv(ufoط57DY}^&FsviI:ܘٍQ4\58Ҫ2AY&N^h._y@ ˿ ߇eG>m=bB ٌaD ~ 0&bToeyQz;=uC03- PaJ}Кi/("Т*9?Tq*g)Nr[t)3- ݟvX8% Z9Q\iPsh9Ү5{xm,%f>u_ɇ厕_?ռxl2.G{Z`B$cQN$g tĺ<̃8&1'+ܮfJ U0A3Z9R)HƛXqMnTqYMYJ4 z]RpZԈdIur9dV`P8D>U \\9bNig$o+JJa"Pj":+ QGnxȹχ paHRo'ˠ'K(Ij fo^ۈMך~X;יv{ɷO 4L ;L%ReZ nlyQpd~cB֨zڨloW-.{5sc\؟-b9 TsưE'V⼺9M IosPA+|piU}@mr/ IWcWL@Zarz8mҏCgk!T~qn]6F:Z[PA:Q+=sf+T4! Wr\0W||z uʐmr}gE&~ܘ\~-rck^ጢn?!(}9(wG׾85tU>ւAhpVjv9slmQPd E^dQ$=m_>O9ouCFA8饍ORs{Xȼ+Ͽx8:|gLPRQv"X2lIUdb1WRî㼤z'<\t#;Sj߹v6Fm_j 2dJHV1% fRE;]H\SGմζš3ZiAJsm3W`+S#wfз`nȃ<ի}Y9xo}nZLC&D/< SMFW2H.|.+uU,c}Bm ^Fߏ%TIcq&TZeL ?mI1ڢ1P˱8j|í=dӼJbNBث>sgŨyjlm|bcPb7&rW:2g-D,Vc+vj^dVUcJg&TDbz y 31,-Vs;X@7L[MO g էr 67Br-5/ւ nn~HBnr0wVȁMrݽ[?Pb&@Ỹr]bT>411k|r%{Bl+##<1a*Ml,!O!NʮztXg4Sl_f%pD@.Pavu[P #rE*{Ucqw3:aԩ ;v%nJ]oa2Z)Oa%!ںB2,2 6Ps@^'{;СԹ( 3la dٰ&Ô,T`)T?8"KPב"x-t#4Wpn NWV{y/ThmQ׹`7KKڣSesR f[WBu(P37]u2̅JE3bso*֩66iq&sy+vnз]g1[)T]0Ƅ?ox e I傞lȐ'~DreOf+ty`SO:tyOBLr߸1 +/btɪc]HNt4X_1+ 3R2p3ҩ,Zƒh̅8x[!(۔M*RT"ULts 5B=i˗vE/6ȋx%[/@HuAuJ!zD4qS$ T]mQBFv,|hA=]G_WK_KqL/M=2i b $r*r9ƙ8zJ1E  _Yľ ֡bOƾXXitx[ᝅ,5܏|q MIJM4%p!OK[e WF1-}9f}sфUe-Yknk^7|͑LLZ.Y4#:k#|ȴe(.gANQ:Xp'O̙޿U`;t~ŧo8*f#bAe"+SW@fev UfE3O*b@V|\%adBg X /2~n=K^KΒuNEs#%h+d'p;H`P,wDUl&Pz NV~siQDZ=9 njj/Y >SuǨOq$07oc4P$!,3aVr}'-3tOcA\:'VFڈZ$S`m^^k*ì_T[̶=Q\y^Wۘds[P=DqVJ6Tք[ǻ)r %}Ͼ<Y~X|P9̭ YI'*>^4#/ݼ)$\%QjQdiS-%!F2f B|eē~3Dnf$M`䢥g\hڀj bV?/Ϯ]z|W;4+9*3U$n{`V! '$34!q7JD 9zz>0N[ȄC!17Bn/;()]L!Oqa9xhª@&QX''#+ۘw#1}*繭Rގ o~`ʓ+VқZ&N!n{EasLtR62{͓Oҳsǥ56 K+NT\Z eIS~i{htZ5] -rȾX~KoUꅶxhB9@㨒w,u/m͞-IɹƉ>r(ɨҋNma;l*|>[zɅr>[C n>JC{m@`B%ѵb4nỒYՈg_'s>6g&zΗwHʟ}E%;RSpe*/vq K9#YZavsؖW7>I}ꉥ7+!Wb~0}S*2:YwMZrhPaLv^Z-641] Aj U*ɘX?> @Y0]-ȟȟneJih{ˁ6ݡZOe}S]3+,upu &KGhg;yO-c xEjlQ!krF{Ǣ濾O8>`is*3OOHz;X:`wT?.b@Y2R0..B0-nҌ1G=B 4IN"YZ܊0wF >V蠋< M6|}ԴJ,B9Ipb#䠽_ .ϤY c- |D0]RGheUJѶǪ I6TJbT 'B8PYl f <<Bآ*0&Dzl)r$UNfqX{^#BQ* {;_SŤ%r;z_$≮M-M.|Ԁ8$PBn0Y22T&y"|,m7w p쉶{mBC9>bf guV>~b*3S^AKH v/%⼈e\w,;@-µ-+Kmbj0sxK>F^5HKc7r5iI2238 갓SKCw]OLoM~E-B{>U`@mceuJvk=+7yW'h_{YPH=^ՄӋDqt:/-~w9]Fi~q!,i) dg|.QGjM[<2~*='[E#iA.z5Y%]QR20rNx(፣Qٶ \ݍG%X㿕I0y ƎE=*`.ZZx$T;+- d)d^H p:ok7G:mbY`|js&ߔ'R2o@\uAJEl~Ȓr7ϔ:C#ӪE@)oZ\lC1e)O=aoBR$-bCr&_L: wCT>2.F> O[e yQ/Ug̃+Yt[!f QYOۢx]xl\jJ#>ZzGL1R6H3BC)}Ψ% zş}lTիlIL.& ?xp4&܍dF!9%b$hXc:b@ *4+a;[.t67 9Wac <9Wa$fêv6mYRy#> wmS+kn7ۼoLܝ\ɤ&QP<4UCP)5EՔxpk_oи<#$8ï%i17G ~քG g6U#luXʳ.UK^壶Mx]BJO2bn'fT{̄`NN57ᒵy/}6Ohwu*6P[cIM6$`qk1vdʳQط(Vgɷ^Oߚq7 bZ c[WqK]QC'.d_wUo4,+>ڧCT"V.5G +'4O#&qP<'D4pOkaR&ҘTa.CU< ʔS7 gPJMZJ·[FRKC5W,a Y[_jU]hL#gj|T<T_؅B9<XFk&B"ì%;@y$ĢiKIp!!Pwv Gc1\Riz=_/` Թhm)F:`bĔ@^Α"v"1%HdIlq߄ 7ɂ2LZLRizdPOXiB^Ulq0o^?PύI0z 1&#ɛhͲ|kƭpqV&&6ن"((!}j}dE(PÄ 5( a K?l|WSc]NbsN3ʸi 4!좘g\zt\lyT5R}lހff*uF5u("EAzK" "D@CIhBGPIbAD zy/woZ3}~y9g?u V784C~R_ViY$~-Vy-4X{!:r`L쏉q$}݆'^ClS.$h1qnHzIbt|/4^^n$/;UQ2UW3/|h[~~]RFqK׳9L`d'b\tx"#XJ=ilYfVc[B_P+H*-Lj5 6j$ciC?J`#Bï/q0I<]uʿ㷼ҍ@7 shŞ;%Ahp.J"ښig\b% :>1;x#s'C5Ї%x^8,99rAښ-N M#ƒA,ơx|(V W߷+=޴׸9g,z9xVP>/_1F@ڗhktidVLݷC4ʓ)TIjDA}/[ ` j g<V`jZV&Br\aYC*[[!U\) \cKE ࿯^ 0e${\F>\x2vϿnѢHOQGB9OgynG_>Y+/dV+fk kNb**3A1n4[CUN։y8 b*p PfO.֖Ut-Tdn G3Qx\D(1Ɋx>G= d=yzDfB2i(]!@4ލX3=#DcvgvٺQkصY6Dǎ;=qFڔgHuTsJfBQ/ Ty rWKgqC"9[S\^KwC ju{s(΋o@U },.~MvKw#T%DTե>QYx*r= { V/ ݺ1Gk`\+"~{LAMØB apOwE?y597wyJW*ͯ]j)&?.84-0b;q+h_yZueUnT)s#*v?^TNeo\L]kV?I"WZ{:sU4fH?FLR||'nPiE|&(OY2=:Y+)y+B4NPP:.Xm)3Q=7 LnP#;SS 8*ރkO{h}-yR RH3>\R@:i1G0KC}J43"v@oRW<~œWxcE dǹޔP3y!3]摞#&;ځ#C#| qũKfvۊϜqÊfo !̊M pI!2 `}8bx7/8x0zm O Q}ibF/|0L փ3֖X;gن"^J&~2˳<|x;Y`w]A|)Oxa)K[R-sjƇ< rhy򝼀g<1xuP@w.rh|&fs۸㴏B6ł[u ~ V|Zeek NMq׋b2e7Txjɩw$pLW"o*> |I^+;M뀇F*}y`^V#U B ΘX7@/XYj\\o6+ RB+ *PfKܰRLYl*WD^ҡɘ:|: J=KJu{ru^^,DR<34$A>@+tGƲd?Ix=Өf'˸_")&"SZTsE u =d _%bب?n!< ]8L|m@HMpU}Mc^Z̲ NQ 'qHA]NŨFpEU"VtGJcnr1ި“buB>*5W3vږraQ"u._/5r_v$t糡Z9ZO;Y>8e{{_[AU(ͥ}M>. ǗGve/}ͬbDD ҵh,x/=/oBR;6lFqquUs^_.KgR+1aϹgm|[4k㫸o%\M `5wߑU:zAAޙq4z8x7Es}?H?#8#ES.CD- *v(1.`@@n^\Nrm7F1YUv(ng$'x M:ƣ%2 7&.ewo^Ŀ|&컣[ `f&oݣoz7{[W bʔl{bb bnĂjwaGc'=&r/& *ՅW0\t3Kd{{2^~9h K*$D]쑨wSU]SGM{lmO(7ٵV96m$<|[4ݬzQQϚP: Ǔ^3RndIn^\=ݠ;ZR%?Ĺ"d'G^m{k@e?3GR }VȢם }k~=T8r@3+JnEzW7M[W G>4m"#o;t005v,udSv0xj DNƃ=a,rY1^tG4)# ]lMUçtV%+Fؠu|o]Gx?fh畜hE.v*{bbh4Ʊ,3'N$Jpd'LMڑѬ^:#8ʉ6HnNRzEp#5 ˊ,(ZVz8B]'e"/=z[}34{+j@M|/|JPH_LFmbN'R=i upɯJ=iTIsz!@L qĶ}堽]vcHW9$=g?-^6܏V}ounݻhaqv?鲗7͊;%iMBTn0F4U".dJRzz}P(_R2OF$(zϷmqdtlMI"x sRܖL0o֞$Mk{Pnjp0ʡJmmk#[QnpUvț&,֗$mEU.;+lF7v;Hgw0ԼRLn_YZ-nFP f @cXE=".d̒tW"Ab35$S Cz)`@q䊂 ;1?tClMoZ3ohnHɦo崝2r*΃0WVo>H%xH::PI^}]&/\rFckU ^ s/X98&\,>Zf붧X 3Ɇ>++Hhj18sH~i |Z7|vbS.(&3E7G 9du'ݘ2) ^|X; Rv1"bowm(s:XrEi{GHo._oΞ݁K'<؄4ҙk +޶W?g[D9#7?& &]xPS_4Az)A KU:$j@RBh{'H *{UA,o{9;wSwfg' T \~ռm}\| zj"bbb" қd-JJ򛴷ho3q031Ҳqr޾}'צ7HȨho>h xD-AH@|$ٵԄ@@DDHHLNFr!1=)8-&ibIOL3q@T| $e}k;:ֿkد_eGDܸI^'DHx?4! %2"g%2ڡ'H$TjHuY$")"ZѬS"3s|<+u1vC086,RܽTH"^6 sA86[EZ[!l6P@Kt85>Lį:d.VVVz^Gk  ?{pm”CweR{-gV@.?Y| Kq(zLʗy|HV0~u+(GG wӥoesZBIn&Z:9a@V`\CV/ oZ(}ƌqbH Ú^[aЃ]SǝE%#}HR_W=zivV[uߓ5%㈏Zˠw핿WKZYZ_&MʹZa2ף<ԵD{Gl!g4\֐ڳ[\~)-59=uߥ'L;Л?7zؗߩx?7m+kOi]4TCK=5V!9xSe7uH n`oH4aUPU䔾AeK^G/=. 65M3e1 S>u.^i, }j+D~b(, H`ܪ$ 9'/biXSje v!0'qr¡7ʣCO0/uKAuKiS@R־EΙ:fاn/@VNB7Tǀ堭m,O,nhe|O%&,4,Id3yy>@#˞nCUPgF<!6ntPX#'LjM$W}M| 2V)pmu&:,vDckwSILe" %uD_#VBR7G]ÌCj+ Cn1E{*׷KWs5Xw3ѱW|% wucJL!32&Gcsg? 媱:pc_Lwn7kD̀3[􏼥g1A N%ĉ-%X:j[اjxaׯE Ku'NU4Ԅz[Ac\.B8F{mکE}Zꅊksw$5L_w -z[/mBl]Q`t9d["Sa٬ݨiPf L.`a ?3}'_ɄeXI/LLL3=kcMK4Zv"O}dx[o\lѤw-fΒ-2%e:uOC  G<#W[*qҋt=H*U(e;<>6t{I:! 韓@xHr9%fWȅ+OļKtv1vKF͕7w"T{+c>}@[M-#lLq*L+ZM.!zozT䃮U2pLQMl!s(s3{軎 o,(!~~a:c FlWg=1-F!$9jI7?{u?/hL̀~Qz y}Fn6W +)r !m" U%*,{;w7xڌϳ+2t\QCח:fJ'ܼ@1u}7d$68__͹~ϯ?z%NQ='N=uirM!cd#GRD :DD)eRt^BB'(NG*0yRIqȨs0=nuXNGyiٵ)dcyyPLxzYξVS}#K ^Z;N|!{HH0WFSDyƢO0jzvL`x?y%;%m]X{3H%2V#m5̅zUb#k=E?in@:7r7ekCY>rA5!ߑT[A+2CzG~BM,7[瓌~#{z ,{i-f+^hY!tgixݖϘiSt 7."<!1JаuZ,(cP,: YEjסgd-;O&=^9E,CƸ{x@ӽ _^9|G͐L\4lSP½R8`X>Gm`P+8%r(kL#!s_%#GuU\P<쪓?w=E$@&jqprl72zHbҮBI\F2f=΍/T? B5 ^XHdHY:уe8G_µ-Sμ5hSs%}C.ڨW0bJ˛0iqS#ɪФ;q3 Βl0Ũ#)Ŧ?>[}6]埍=o:7`e h>h⋍upϗhHP;#m9a[g'̌cU!ҥ >nHGG#auEG/IAo ׹̽ƥkb2e|>0ehU=YbhEbtxX'ჿKOJaYV)y@N~qo;;7DO?)oY\?Aϣ=d9U"!5.+/>j}m'£r_bi@NB& eEBu!˅;/-71AgxFT. R,bh0Yhgmbtq+[~([ߗz\0{g)3xZmG4wbyňYXo "9n7h!aS i $Lߤ!;3)]UՅ3h28Nl:3zwe;vډ ɘLL=/p1׏HMhOGz`g[:4:+S:-ጉAގM7˸m#m5C/P..5ka4d0 ,`(7Ez8rB nv@WU,GrQ{%NvwpW j ]f>mhILʦ2d>V%F +2]Vps* ))l>_"zyV?nKb!+n1H\xh50J`KXX0N夺ʫ ,yQXC`8Lf  7p4C6+^%ilvK*NPF (:(9q4T\|19A *x 4@ ]^l}{ϴ9y\TE"}߲K418<KSpC'o+Ɠr4FW:5:ي5+46hOu 6sc9T3et k&՗ӡbbro25ћu764}НAMZ$4Ƿ71EP[X`$?1d4H4+o+4!͢'SinNT݄/n>^(c>Cz9,}K; -> %3Ń>^oT oeUoxa uVCbocWhf߈F.iuEE$ K&`|JXj]<}?E^omĔ㡝|~jt^]m.lw(x}p#\L_Z8>X" +rk[U,-e,ZniWe,g7\FMtiYcoyUìuSţziʿ.dkc#PTkdŽ&#_UP'KAf9E璹wE j/(}^ͪl0H6MqnO4Io}#~ ]Z.`]"؍X)e!f֪,NN1j]ݟײn"ޓ<z 56!"\w!|6 ()oy1_]`Q י.01\qeVD촤hIV#B#fwuc(6|SMJkg[ޞ?p??cSғ-rX!t^6C. 6ccgϵ%$i.Ĕ|aD]KfLTHP ~_Gri&Ӎ܃(NCoM<;[ћف޲y1w,EP)=NP鞱_)?c?dݒHA kwSٚɌ.* n|%`Psqe!d-v+z.Y_XE E*Ƕo*ϿijPO:0l^cIOdߐpSm-kݠmsXj(z(TNxp4<:5SX8Όcxd9 Va9:oZLI򱣧ONGI֯mt,;w\ب"`柎Sow%9ߌ Wun9G8.aUj쁣W]~LtF n27 _}sON(-:&~;?i~3(Ѐ7cu_tmHX {{Z4CidO^]59~[+##>bHrr fdS[:|Ψo_ЗLOi7ٍWWN[C"|1*Q~6\q.B&3 Z_Le6n SC크yrpj! shLjߐF ϾeLĝRŬm'g>f]}._5vGO F|@_]*gfz#) +-q| )G9^Ļnn$3+F$pN&M7e6@U*bY7#+-wIT5h~Wٱ}ӄIvʓ)$?,# X欣أ1ŋ+HXWX0QAl5.sil]35Di^uhH[Pdj]]-i!9%tsD)'ni$ Sy;MTɉa\1_ ᢷe֨[RV9i/ożx}f|óúնrh:J 5qգ80N=}^|1eC!N3 )`Qg^B%Nol%'u3H9V \"ڳ؋l"GzSvbES AX1йzWz+.ŤwF;Yԁ}rS7J ;FJ ˾\V5-`MVLwCpK/k8jg+If9Yeva03 ĊOv?R>>HɠRݙLU+R"kjNK.9rSGA'J?öfOH%!./=%ζʯ^²be~qn% 3C;BԿ 2۶ R( ]Z޴?|l,N9hn0?ٙdȉ{I*ǚ܍) ,uQ_} o Xh0?q.u4*=o=OX];eL=me*:uؒi1 aB ǕU! cx%Ɣ?+KLV%,'/x~VU$xU1(筴>dppAQ߲`cmo Xb˟C\l% ZR+SHU„LeqdhҮg ~"%`-Oau(]MF)gXM*>H.0F`0qq;ݚЃ]fQ$C !; BW7;ؽ[fYh{LN»턔 ' }ح.0CGon ¿RYBLbnӲn?yD=_B_5K=~sFM>U49P؜ߞeGA^+WWOqfI(/ 60AsZS,xі};:,Ea!#|!5ڑk6a ARMǾ+z營Xc6dDi9%B#!خ݇{H#Tԯ_zj鈈焤ڗ;\p.+/nӆ W!y3i8f^s?6Q zZťkddrQg)DۻF<k=}tp8~~~q<نŪʝ?+p}\m` q~gP^sfo!c{=~7ɳ6t b+UeH(m+="EZ\G zj%.Hmm} x+6ԍs)HdJ@=t}M⢻01 LQv!/N)]\WLp]77o1RgP1hsDbRc&s P@"ܸv8&]7)1 &ԧHo3nfkm_ԕ%t{z(J>HE*xPb]N,+/gr3O_Peт8P'ѤєLbUվwPϑ`܍[V¢ )m:U[s?LN{eŜU߱e fd{ak.~=`fZz{R3VvZ$}JƝNe`_ _DSV1')?>돸=iZA"+v@ߒ+y2OR@_ "$6 V&m|e B=[ٲ22,!蛪qK9[sƷ9T/jzhךּ#ϊ8 tt2mfZ4i+c7U_~Tm] 7X-Vy#E;@ eBXhk֥Esdw3 gQ1Qk4y6GsX_*5ixE&Xa~! (7[Ilx< kI+Y:S "TXɘ+FK,!>9HxB-q#Zy3=aAL="!N7眔.ZDҝ)-LhھrvYfUy*ыC$=h~4lz4%1G]𫾗8ĴTJW%/6F$!O'/3]~.H(&%uXfWmoSe;p?܎M_+\[oյ}S+CGGQ' Meϵ/(m1ՠ3*RQs34mOr bPZLI95eޫ'c~F˄uESZd!g:"6\F"Bp EWQA|dszY@!_B.Gw5PF*ѫ8ũ"0LxJUp$0j#ȉW9]+K; i?CG;xqrlcy,1%{ JQp2~r򏱂,LKZ8DX.J8V;LNM볔@ԋ) ?_թJR CTW'9Q?}E@z$ .OaaϷ:9^t{S ,*BfieI{KsV֓pKw<11í?O"Tgi8q)B ѫ`Y`6ds:;.e]n/Lc*P\_Yv mrAQcB+*j;Pjc-FԍXXWtP[}4\<:j.5Lp V,OťWpB7=h1b(d{kbFVj{yX9,Z !^N,cĖpSd ٦Fjbb!d]r THKB[TKьمmre?E8'{9YrQ)'kw^}U88r<0\`2ȅ0Ԃ G#ω])G$jُzRx՝'|ԘNT1 9g Xܝ:HzoOo-ir|KN1&EA0cL_ wA~/s+v ,XH"Y& hr}ԗu7t4!v~JxH/\n4aA懂6kVmMc7&eP |Iψ=C!9hP%czp$zug+LH1.e(3+;=Aץ1t|4DybI /Ir9Z)Fdw"baFe?$Lre6!ΰ:=Nִk@iZ:9 vs:5\b e X%n_^;И63 ]H-e:r4 ;G O 5U+hJ%<;OP0( wEU *W7!+X4O*AƝw yLvUf*c*0* *K&PBgD{tRY{b# MJe@F%ZnV܋yK>V<4+ToQiČWU M$CcQ`D2.[V&@zW~Ŷ~V HM>GpѰ@! Os)p{BPr$ .Vxf ~Ťx%öꬮ=:+W"a28UD(lyHݢۚ0P}(*(jyH4jV,P2&saOZD˘m)eLjل]"A'΁wM_1po*_^ ëg<wCGg@: 9zC%YcO~2wLNi2\LU TQllg&$qӟt"nʢŝsכ_v@5^]|Ψ700cc{oFLVˉI2?)ΐKٛ6#,mӒ7;{Lž!ƦD@)3+f*!EKh,"p;G^VǶ T$wmԅt5܂?oo|&( 'iB߉U-[W+ã"bSGޖ6[P\$j.jZ]TIhƴT6 k%jAIqjHU"Z!g^S Aץ2׌uaW]\^oq/nLd.;ZnYW?}*;[#i kYIMOjj ɺ8@.-՗> 4j?胳Q׻#~^;4ȟN> ykɽ :I OOo-E$켾p_/Cxfym0⓪#9_LYg])7ck@©c3[p2Pfߋ.PO̲gJÛ+e&v-yit9 C-4YCA:bJkJSy@F( 8oRTyrJ6xe Ngs!C! mm-Lzͪc;,Cl]y跔 1A3ng>)/`ϘO'u ph=;-+7?'D%UT2 ꗰ7y)_J359"J)hg,HB^B*󒶫Mo,*\[K\{*lv:14(|J%Q֩벋)1WPºK}YJX #V[F=eYEW&;vSJVcm)TG I64i3b8~qSR6Z /fM' Wةy5ɵ -yG,cg*G:vs=|%-]^?,ٗ)tIi;a*);^>>_H-.~*2w\*NUϏ['S[Tcߗ/J 8lByoϻ&]o:eez ; JN[Kn2ӽ PL=Dݏ{#O25G8RbE{1.NgU/'3+[ ݚ4.gΦ4C&iw,ҲݢڏQwx]M|=Rh \\vA4n"ـsbCq/w@NSHمuKe~0()?,y[C=E%Vs~9Lnxe'oc1mhZjpƨ ᾅ%Vr'$zL#.Ֆ~o X!,Ko]w![`,D67>tn}O"{yBVۣJ$g%eDQBUb~j%ށhGv&//>S״~9kԮp] 2F/)I%X3[hjjeO<~6fX.=C<}z H)L4#xܱnǤB`ӲX̔&Mz3fm?Iu4uj%zjn,N*ڗ3n$ >(b8z^ԮZ5+1?ˋ-6,а#efji! : mmjw|zJ3իr"W+naWb3M"8V٨٬楶?-3^(MEz~7^2 ef=@1S*)ReJ}W'I♔ E\_Lk:S\P<*l:aG1VcAA ]6P奴yM~G0߮гlTE1PV XSW֦*Z<@hgdBE,xHhjhgJXioŃ+ƅn!-h:Bm{ Dw>?%1UU6+geU}17~Fn"#w@d `kѭ?ˉ˲(QFucw8vAR-YB>7V6e4 $3~h+yCu,sdRw/Dž}zEpH$dc:B)gzp{+IYu9dFؑ_D@V߬`|Maa WbĚP^  ;Bepm^poz6}*+% "PІB XdQ0.h|)E&9푪t݄9fpn:`-K'bDw-o;tР7Kr:#B†vY_Tu jRJII^BJAz "RC[BQzM:; >;3{̚{޹f>|>=߶떂5vO u9hȔ ٖ} ^򕦢O j}0?w.H%M0,(\&V2xkQמCTlf{n;e$Pf+A?0K<,4,Zt1Pѐ5"J#933iTY>Ȇ3ΰ=ɷd]s#^A&WhwZӊ]k LIM\$trbrd$V$/ 5\@nD]ڎtGpcêfS@,w3Dˢ} ݅j=BU,pA?Y*J#M98b*vm5@;K*#&>>PHҡ3ys[xAn)LB& 7ZF>- Ͽ{.S+]e&5 ֧y,ݣ`S mXwo&^=ZͣpD$RsQ9H.͗1'Qy)9t߉9GSWi}(iP iPR:y 9z}߉(8I)A[0:qwŔA2U&f^Η׾N/;AװQTߢ'9E4`|(jrmRiGk`Y"|{]B9Y>Ҳ;'I7O)cx^m |4R s5?~ @lMHFuc.7܏+gyr1b:F}j*$'mNc9#lfnuz2J]v.$77WDUz?}wvGǡl֏'oDԘIA0TWpiS<5%@oCG#D.A/ CǟYjEoi $ k*XH$f{*T\(y!IԪO~b<ϱTh9˷ P5;g2{qk{M$tFb#l{ˆJ8޻V(.i'fw}= Xc)lJRb BOD)ƵIXP74Ts4\2H!fAHr ̬ Zc| _.ģO3:_j ;ɽ=@wpX>>TYI,^}̥ l`g Ѡ H$V?>ʝ`za[i?ygS2%#{!,)UM7j}ץ >q9xBwoy~UxuO4ǎ{u>Pv7qZ }!.tL 2Vʉ)wWUbԻ`=kQ-g/ڏw.yϼwUt!K?#*b"uY?EM78D/_ZJaa ]ӌA$1sȮ$$Aj;8 $b"j/>ksb }Mw@_M6ꌃ7bzc扱ΘBӸ pFVZ.l82LռЙ_6)N 3S:d ϻ'~O+I\cwe!p벍D4gCY>v^}|CXxPa?\o=Q@l `E}+#{R'Aa~uW;΅c`S߂ zH7ש\g 0<=H04@S[$y0Yv:Z!'B@9D,:%ZҌ? Cѣ@[ YC v%70RfA9OՐ/IWWn1XھvnZQL' H:CEo=dJ$4ͭTË[j]\* M7 Bv̈́;6W { >/O_'6 U10*0&Oq{ț(.uK0B_O0kjaPb3PKy'މ%5!A, T|s3> 'V&&rG1@ՙHOs|3{5sxhb,\Sd.cCp&ˌϪ!}W=r!ɽI5HT"]V?&9SZoBWE~gϋqջ }i"{V?0>7Hi)3^/BrWW^})_2vXXD#R }^9.N|z7-ɧ uwدdWŶԤn"h1m5-S~^Q?.D:D nOx>HXTb/D֡ޤRa-. E4q`D_"g%E/R.w@D.+_R_z_qs}>X0/8f40{COy2fHՑy 3选֘YoMqEXc]u6ʦ3:ˇ]hQR3` ~9Y3n6TkP!xa@T\Bأآ`K{ignꇣֶ ֖C%-;ƹd/fzorx5.gcJgoo؄2P#MGyKd>6r K'FS^[)L`F_eVyܳ*"JnmMI<68{*#R6yާk1 =`#D4`P[Cp[PbpD9HWQ$+mx) 49r3F{ʗӺ %&|z+rhIV"m6~*/RK_H8Qfz}^3Px&fRgFoFyiF]r{X?澕w# 9LN)T+hۻgY^q.4"˚A,q Z]ʣ%DӒ/bu9(e+;?V(n!g1o <4ES%]]$t" {)_Zw5F^^Hv j в`F]YsF7&^sGzB7>/+l3KNo| +{RVyhbV}Dmyǡ FAOMҶvРe^&JhrF>Om謌oީ?v-[w4߀/F7@,=Hlow&HgyJl޿壽?10? Pfwx`n5_oy?ULϸyל.ـac@\Z0}0{䢽`v"~LqDmf ӟW,nkU&|s@*˲T'nϋZM6&epW.I1t/+g ՏJ@l^z1%ӏNľ[֦GVJggM z["6wop$RF8nz?|%y#An_iqsꖎD)]*_Jnl''3KR@[mt/>uPlֳph7%,Q=Q{_[#=xǼ)7bðW[AdD&Yf37߰XF+sM}!"Ëj58q9`+.mo4xX9 ?ю!7z&ޑHrHKF`htHNM _wƦ=\êž9PUŪ(3,7oVO|dMj>chk\i3O9b̚ߚw7# zP"2]"9>D"`;*g_l)b_Ƞ͢ɑ}o5Tg-:b-ZЎ]J}A,6CRҢ{v mHb2,fdKCnjSW q_G߂.UwBΑj7HØC(G9SϿ!{Қa/F#VȻ.(xbׇ0Yk^ 9_$d)O;ƕ<&Ws-$B;f a[R􊋌1.) Ǧ`~TY&I43+AtԶh_6u]Qxް6 P |却M; ?@'G +ISb2ŒYo:*efiϕ>xmF v*p ȷOeTSWH6ٗT"@),ao`5qsѥ%k""DZ]Eft)wcP5 tdܨa<)O/̜xT~>F`713R7z7Qi+⨊3t-ég86S%ۼoZ._yn}4-XoNBBN/bf;sM f3*feov8ˋsc+=EKnF$Ri2 F0߀#]tҮ ɜpxiGۜ/_b\y蕅 ɜd>D}` \ؓEebBHl}.\]>?97tR5]W{'7|6iqϞx;!+mdHfĒHx:#^%5^,.e1k(9d F-,݉T2Tå D' -̔ءmc"Ϯ֣>ľ/(;^]e$= RRfCm&djV XE_U |Lx{l s3''kT"Pm=vRS-aBttSKqccW&( ;kR')Hx?@d1vēVdo֡\oeدx +X,GT@Wm aFe( b Lfxx_ׁjVˎEmtJcS*\ˀ2շ_/&o~GPPe[8gP #A(=.W*Hӿ18[rD^W(_hŵܢ>Ǔ->Zrw[ꠚn}͚ C1Ʀ'&&qӮ<.#-m6y-RX7] 9#{q$kq@!SYjx~y;:ϫ{jFy1$u n_^P;w\{7jG }޸)ٶi1,JNꗋv ?IY٦+ L5R5m%0F𺸴ҧw>< /x=>*z>̌ZA2*0_,3V42ɕ@LXAձs6L͠O%E1 k۷1zľ"G}ʸ7AO<Θ'¢Q9tÝ+ f {2>a\fg12vY4:CǣZGyOTP!U꿰 64։ɲ)u I u2⯟}+1s~eFGA,tfQ걝Qg5w,pqٳ性o# }C-FnR Eo sriN֔Ln?W}5[i^2R mmAB"lM~k V2k,XX_yUY,t @Txf*d.EsfM1%2ᖄy{%=D!qGgؔEMCM>%aD{2%__2:$?$T#,U\Pgt8g^ .^ZK)gHIgowŀOj|AK`(ծLKunyHphe1bVQ&yh 84 0LM˰+x2mBjU,r6gE ,*ôlO l-v =ma H|vi95Ì6l|U<7\W.MU*7!Nj?Yr*X*i!0~TlT'yWx Y*qTKE1clo&$N&][wwkB~5@PZ/9M*v={m.VézJ  wTrPNU~mC0O T뼮go'f:T&$D"3HB_֔BE_4w~Ɇt'a\-}10c80yG_MWlqL~ 'Ҡh2gAȏi4Zcd.=4ΰXQELgeZ\aRDśljIG,\zV)Q CDQ{_=>lW7v+~%a7Z=LP&91pm)q=[$!Fhmedzukt^"h k9|.|D+. l+e94Y̹Ʉrr5n]ؠ?B@"->O2*{|<꘿y> P* ]RHC D[ O ZeK\ .A?ʹme*s_2_ȇ%]y3a[4*\gYZ|w(lbW-;ZtϤ'b溾9 "ঁGs2h* 7 +yʳX)v*9N=wWȳ5 =JO p3Iυ"궝fOEËVȆ`fGVKYcU ƪyrm|kkv+ kp\]/s[ ĆnYyknU2&2/<4Hgۢ+ |A\wqH Z9n1]<{eDs>M ,^GmzKp_r 2nD8U]-25ߠ PTsB'1$a Bpx^*"r:\HE}W!9e2\-&3]3폽#gph\IU{ IDv2=YB`߬O&PnvtyK&nwق63i/+"*ԻqiXld9duD{Z詗 ,4e.OO,`0]"~SBjg:!t#D"k"?qJ&fi@BJÓG8s-ypX1ty[j9QA@I ,g\mʝmZc0]̅_]T7tеZ`%8{"mĽfLAs0D?NF(/ι>~q51Z{k6!X;CMߴ6hig1F!],:p M8jN]YYb=&0Y?/"Q`VZ`@3`z􄪡Gc+5hF"ۤ6UL~ŐQTe>88x(Ֆ>s%]A/CbI]2>cqkl ca;]HLkcYLt?+ki8J==K ;ESC ԖL> jrEy<[:"àxIbqT9B&ɉ#Nܩ>ͮ/9I8B7X,Ĩ#@@$Phl%hT*r\.6U) }D& MpTYi +iKW` >,[O/h;7<7Ŵ!:ʼnoO̠ZvJ L'1pfI*_@ pFJerW3K-:1o7-G<wœȯbgN9 ~Wٽ=7|ClJ>ŎF]>hYm!c:j($\K(R]!erhg͙Bsf!iYm(n}ث'(+Qۖg'W)g;Et sAzkʉx>bDkoJ{g}9OUՉĂe *ƱZEW0XIѪdS鎃:K Ek|oOPy8 Q"5u 5VedT-Ե\@{6cg[@QgyS͕BHxpcS9dGZUZ26)_(IuOB?veu>ĆU3 G5ve𣳞Co9COT!/aɝIuA/A6e<S#b I5XccVe8qشgP8df!%&43r7bkPۿqvߣ\rYĨSE)2۶pn\d V--\X`uq@C}DDҐcX3BADlR^Zm@J{ry:2( ^f p7=[[H6KJJ!*)A3<ٳMUH4jGu/e8ŹbM| eoqpn7)뀌/Zy'H ٶq -,4#Dǧed ~zr +,-e fŘ/G٬=FS9I\lmi;}M;V~--,!]FB˨X$likȑ5YfSwɼq=&6~~%<|at/X|C>y~~mnxa&BklF8Ҁȑ6/7|mYw5lǶ0)g8!Ch E@<q7|IB[f+kRkj7WCФ}[&WPZ.VjO^ӒC#aW$K Ʈ"&$, XEL.|߳J?Aƴ,ԱƏ]OIkê=uUv "<)G;a"7{5[Soh{y56vdik\ɯR@boDTZG yAf@41 KrƲtj1l9jJ/C!Wgѣl;R&^ VR:;t\f|="/3<2~O%)F߁F·HDS~Tra5yKt~ >gYt sdZ=&>KPq!,Toq9zS0b|ƞ*.ťw-fPqh2'0ĭbzb.idV.5W(v8~CN"Nwķk3Zn /ID.CH=51P;: rdTj ӎNEq-^L,{Y\><ظAb7H>Hہ\X l` U,CiXlQT$?w_!ref_7Z^|a|r=ekn6֝'VE6%a/*Q>gD2)誄cmjitTi.%<DeUf6 Z4TG߬^s$ջ(s/nYkS2):RU, #g)z2)5jFծ!]7.d_.ݔ^*faCe+ 0~77Nk` n^uuO;i)(TG8 `z=;q~!M2Hm\^ Ǥ뉆0-\kQ Uʝx#AQk V'Nd$ /xŪAP|Z^G)M9re Y_r^r)٭PzM,.1V{<"yND5ɯf]MXkxJPoH23+RCȓ3v2m ע:nv YJ@>+s>,$vJ,Rl#BgnlWX -ͥ["cӈKJαw^P!ԑ<ydHjf}e.tZpR|򆮗//7[ѝޛR* 2T̨2Ǭ^F͔s!5.j~C)HnU_ 3E,i4)9isD7cyT]$1*'9Fiz%so< %*wT)7b 7s%'u >;Y)2NM3IϦ~?94GOa8}E^<@%>+O ݏ8ز+T՚R-Þ8'R%uؕ*.}[ӊLۀEx q&q&W⋆)>6 Sdkv9H5ӌvkd5ᑓ*$ q)56&;\2 zPB'#?MGb4 hQ5%5ޓJeV 1klM@[EucuE]N u稬#v[?9aI&EnHlK<{B߲0gɛh!q HDc}UwjTLzpão½".HrkW͆>-.z7 gV24W?+T :>Ɂ7zA a:?$ /37,dW`Qi/Gb'WhޘZJO^߀A8-5p/%BVXe彵|^ZjAʜ7}d_(Ȱ0s(I ϖڐ{N5:n!S7scoE5,D(Qw8mbu,mϐy_%*54:͗7-8~ڹRPO$ʨOk/ _+ȁCZF@W΁B'vkV0de-/9RQ4z}d犂0hNM0+Uɍ{tE݁/X$F;@Յ%OH@~ISS,*WyFX_v,3Ui<}NoT.EWm @{?-v$\8t(-T`_ImM$ >'c[fmB/-\߰ͅFU~LXJ{& egΌSh|AlE7Acsسizeq9m\$B#[\0Hь,܅l؆ݴI'h'ӃiŖ3n`ʧBǪg h|8Hʜ_=B ߵ9 06CE7wP}p.$Ps~>rZZ8wڽmi[wa9ĬT2J1P FTkzޮ#m_/|}TH(p:@)=P< /*8{i<;cQ6~ZT=D,]1eDt,1}rH7Sr'@TE|^&ǯ'%u&aw5S|  M$i]˵)wXMcc_T+tE;/܎m`rF3za%XUau}=h?&h5HȒB@Q@p#g§pAnq.TT=~ˡ̓aoxiʅ# 嫗w|4:|oZZB賕@c>Ԗ&gTV-.+0}^X/θ7`س@V40ͮ e`Q} %-ZwPL/lW%O\^eh)mȪ*ΤwXm= gO<Pէ׽s a^g_jݓۭ3=,[*Ai, Ȋewdzա| :;DqeT *y(P4)õLɲD"٧nJV$Y$|ZEzCi䤔 )*Ty1sDu,nO9 4./r6-A3u> _e+˱ _ uLA;:>/y#CWSJ2c9jXN|B1c?t%}Vt2׽Rz^yi,h~#e"fmzh5pI=c QlN^xuU"8j1e`2y`E+uw+=oGԩ(mop8XBah@F0i3{͌^%nPLGЗxkڅ qQj<4_Z:.? [? >3 +@{?05&+n"i^蝗ܲqj\ w5jS+Ll+>h TqF%Ql~( H*aq4M4Qq,&U{N>6UZ*52r;un p fqCe߅%;4k@G?xVK=_~X=H]S8d nzi,P^؂h[$V},fS^+_MNQDgAa+1Px;,_F47ϋ>Ai <}te;$8# pòa '"S 9s3%jdGK#u>Y?[Epէ`_kr.!H>){;)CޗNF`k>DY<"cl~ s[Z;(QXmTnGh>V, tYvf3,D WzӲ}]:<0SRd&9kl7%Bz~7czI|plO{VoQy P+ Ba^gSdSs0.}x}<~h8$S^INĤ~a{O%;_,;n!%Ny_c[{n\A>VhsE\)Ik³2q: (ҹK煮nH&P Q{NZ_QXrrն4kЧK$o3HW߾? <`oO 5 /4J0ԱWND{1c%5؄X8,NEit0{~64aѭhƇ22*p1[9 :5}_Bc]ۆI'ݤzW02 ˢhR_H>3_J6ձזw6Tz2ϟˏyZ%.pļ@8,hxS=)g&QưjIĢNG5~.Go:gwc~EW)c+P f(嬋|;R-KU HN w` v/ۙ?R) -9Z}͹yliZ|R oNY= WU{q.-º0,O)CJh_-7_G)XU/ >V 'tT꛰y|\?yx =;}B:Ks' TbEu>I  ~3TJC; TJ"sMdf<w#mF[?3|!z&]OMwe !Ӯtn Gms ٍP/ 7u?rZ k1Y(Om{"ܿg]ѷ 0+R:JZ ɽzm;%l0 +<ۆN 'bv&`eK0UtKKQH&A?x.qχBzl4iW3 *T6C97*ƦSВB/AyBk )H ^jiA^7d*T+>?G%ֳi:iU4kc̩qԦfi V݅A{P؏GcqIEeT}J 0SbՕ̚'>9YQKF;*MgιJ~e.l*bH?ơ.adq蜈7۰>/Â~gz{{늵8Gh ıGj) "T:!d[g>*ݼp?ZWuuF4@jXlstcMd)iH3G~j\/(dlPn^`t<rgzk/3U얮Qf̬ӱ߫~f ^MnjOUiD|f~t%i/ :UoGe#'R^Cg%3((lj}I4V&C <"t}w׌@Aڟ%*ѢZ;Mh] .٣_R^Ti.d_pf]ÐFOpU~@U*{jwףycG7avBn G{H{F6s#~;u~M"Vէu5Ol>LJ,34豆 nZGugG0X<*+B`[C`ڐLpUzC{Af $c/9{w)2qS>.Q/Oﺜyu~;z}Ћ1[.^]9/4\4ZϺM _w2hIwVВ΀&$}AEܼ `7geMxbgCInc\~yV'G1khX!`iei:+q|tEoRJwyĮ0H s}f&3DHZSϔup$UW@N5/- 4_->^RY NL<_˹6KC#ueaJk)F+N#UחӲ UP*fr Klr0TڟyȺVeϩPU[\z (}תFZܔ#֭g+]ي[L8=wAP8״ѫ|DvHllG8眦njb' Z/lGNvc[4YeS;˙Rr2͗ {g`FY8@oMtWYhțݗ:ZG]EOF4{Õ.n R %u٪teɞ)54Y5=j >tHӦh@@åNr:"w>UyUt(0rDLhĢbjJ vv>#8^|P(%J{) e>1Jۈ-wF9u%\o륎J2?oHHD{dT@SE".{LhW';䏺K ‚v:u&kAGq-cD*"RJAfçJenR+Ժ9sˇ}9` hf״9Ar7S) %Jv 7*%}|uc'Â4y|42aKax2zGO֣UܯQ{ 6ܓ}G "ygbWjVÆ,Z⋮ODyU[Ng6Xmm,'7:S6*YC∳Qf< i btje?QDĝa?RXU(O8~vOd{+B- 8w=v8SYhao{+VflV~FuY'dv[4p,}D#`=d`!1.ɋTjbwyu S]I|κV9RκwF褂X>o4VLؤ_ uwդHbtRt doh|H%Ü.-}R,Gz %+MIbc[w˷ѪΆ w'r Xe#| g:F4װc. Hu]*ӓr QvcrGvb4„0!҇σ-6wrHtRԒs r?v&}DCjr4F13ᶘI 7}F 3MSI G6gش <EbVc Upɍ,P:KܻnPPIM`@+-lҼb!~*Au]aJE:T7جtȩ 5}VeռεDdrc!*VD$=#V8"YxȄGHMgv^~]TjjeA%iD67,\D\g-!9,%} $ދݕ[Lb]^ꖌ05a$@2`b&I}Gj7jUhB9 u#>؛$F>_LFj4=w=e4QDF͟ףRv7%@9L ot '}Må; FB @yuΞ '6HT)YB]zH/ ݟ%.Ƨ9` F̏5^$.e~& ( =y5N! @U=<5+{\XV#)2\cDx:wݟ #"[*ONcIw$:)7 Ѐ Ǖ?T-&G'9[` C>Gg*sdD{Yl1LX)mJat\X'I LbbC*>b=.Ex@Щu< sR<ԍ#av%PHaYem:I~׫˹Ówd WIoݴ w`~ EQp4P4e> !@8JiGQl^4zzz§MvѬEb؉ڏ$$X}fKWka'/8++]8nNUzi`6+ yD= ה>ݨ828i %3#&9ԃkkqAW)Rwo Z>3fӛf%~x [W3_I|_ԌDI[Kc2箞&*ٶI-yG{#ԓ6uMc&&e}]$(!Oʭ4dwl,- cVӋRS8jCzrvʱ3y'iMB dx7`XOdĝ$襬89Y1U`Or,;J8'G';\j8V/@['+mˆğ \='9RU8u@s"I(z &r QV,rA´Գ:*`]؏9"D2MhهDI{;r-7=|HdXc:VMEcTl2n07>Nw[H#ST3?Bs>^AvrłlFN wH$af 6y>o>6CkKش) *(%.LOϴx=Z9+V h\I30p'bSy7 6-_Nsr3V&!f΋J$CJ轾q9},2&1!v#}WZ$¤?5ZfX[d?2j XLN-x 鯅|gOVSNR]gT 4CQB[ga6>mUN)"e_MwMJ*/E^5tY4j$;6">+2aRoxIfm#z{t;mܖ Csp~dm5QBBO7W D/ڟ. ɢp+mAȷpcbBgd~c)D4]T\w<A_keQLȺomCA&/f:|x0C9^T-L\4߃ESJ^F% Κy=S(0\o뾌 ; g#.3i:ulY={) }4AV{Kc};,#ýͫ-k4ӓ)IZ!hqpR+Mzx_[}txcF&0pCSnj.匯rqCDĩ^S;IRX7xA1*i%i2`(=9G±2xQb3shoF8 ٬(N%tj lnN6Y;qyi0#Қ8CCOM?O `-9!$S=R6 0i3L%7Rt_.$ L~4-qc&Plcw@2gb6|1:/Ϥqo*y[VSM^4ɞ6ڋjKU΁2˯WD{VHE9i\.zDoMoQ.J]voܔ@ $bʽ 252j/2k-^ OLC{a p@9HKg[_xxM, ȍ}`970<8;9A(LAϮEkxƢ.GfĐ`{Oߴڦꅢ(ǾP+U ~%=997bcUW@0mOycYVdKBΓ5,bGIJ2}v3n>:RBF|tp:Q 11po(r8}m-R,:tz#:$fMn8%8iة @Pҗ4UA$goaT u|"Dg-;U,7p:SrF05:F0%P&AhX;~e0p{CN.nrb@ nc6^ _zxx]\p9iG`pCѸa6v%oCTk%oOIs7|^dp3y+6uN{]fQ%Jjƻe?pʿCes@z74j1 8qIJ'Otew踬D>]9ypv Ypk^ tdWt3aH^A5Y>;dKE.7yWXzT喯BWTL<&9ૹ]|vGfM ig6l RJ?O~JEWO{$HAF|ŐF:ݰtV[C{PW~@:JT0 RR %D`S7-]72H Mͼm=|g&fI+y:\u_'iśOO14fv(F>OGqKNGzsΉ. "3?C3?CՁ[ ܤSy&Ȝ.^(HF)A=OWehSǯW,H*ұPNI(ԟshV<\~8a ΥLF)8*c;q-P\([8xקMl7}?; A~ #~0Ysi:5L+FUQɨf3<&o Z@zI zEQd 事5bN]O(uġq ޓO 1b? f_@Ӕ%x%u댿dx+@{X{L.j5F($'Ty!UB)l$*s{mBkœJz^1xK\ڢvD%eHP+E`N0hUJ,ФYhn.ahrj@+a1ur(!^/zFq<cIpނSIO1i=k&&K;qObQz".ثOB}uYeE_~vEV4֟W{F}raC I\* kۦ8X5RW7w%7n2v`$er#WɉpJ-k^2Ǣ3x0WyvOg /e=,J$$9m{V#zxIR/W"Z]^br=d0gS]N^wl;8O/a]R*/7`=(ߘq(u)JK/g ! DG%(LKmoմ~&'V z? \~ro,߆ T]y3gZ50r8t I^I"5ۘ |IXwJ>AlrB\GnZl97w)/8uŖzA\laQg'7MG2c?pwNѨ+j{Qh'w׋|W.1Yt$WT 4yKx>tsk +Saᦆq6W<$OQpu9_o]lQ,rETӽ9:p@5GqE7rщ.\S$|Nh8z?zX(8jī`v)h |fv<GYv.bLME9᱆b"lڸq#?Ͱ#1@RWG.UF15$\U򮡎~2}sX%J龀%#^fN0b{}ڈFV:@BE,^0jIs1ݰo=1 F`~dR$kƊ 4w]<'TafrLѸ01> (gfnn3_e;] *um)s?[R(jǪRW)Hx)C$4\ ۣ5z gAu0LJP/FF3/V\$f7:i(<=st;-$s=D:#K\ ȣxf; QZwj;D$pNF" "$bM75 c^G+> g Vdik_oTE C>qm-?y~(E|K†GjNꀇRV :}(Sq}FO@ dZDB h;^UOaOzvy6}MQ3d oYkFnE &Tf|uukk̐D$]xmMBئWs◑sv |N#5i.P .LX4ƨM9P1-f[o~TEoz$ VIcn6$M<vP'Bj>(O'[< /~N]+B|r|-<-1D d8O_{}K Y_C|sS TFϰ|٫gyau1@־X\D}p]4{6?h0CYk-v}RC%ȳ[3#{fO1zI:8XQQ [RZXCY}S C{&/!dƼiQ)=yhDZ颤.Hg`F$Op:'A\Ŝ4kL}_"%BdUmDQMV)Er؉5 cE0Ne,DTfSdSs^멿<<ϟ|?K}! -8e'w9ߦ :9KfGS:V!w孞q'c#qOnc%7_eߢ FZj1Bp`yo)r5'>2fNcbj6-jr+qsf}$(ϳyB{[`\/2 5?}K&FKiJ=qFݦO:U wwA-Xܸ3 ["~V-Dh6MzCK ܩ*&i~p*-z!DQ#tbgd憜zCzJ]ŷr=l ([M%W$zCO-L=m{)QTL5TBDj]4.4!0}~wO{mpxF15h0KV H-iTZ+HlWrpO&Yv:4 ϏE>^Xyrp~͓|MOFB\MrxG'u8d˥50l>'aĴ¡6k|6Ʌ@ȺwӠb`gI8@} ?+KܠaKꄝTsÙT(,'ddkQ[W <&ץw/hk(cs}(Mlo笫(\7 QvQT4uNYTLI~l›ߛO&=f<9Ӟş5Q]K߾-$Ɨ`"5V,֐i7M 8>hWʷ@CM혖?  H0+S6xI?^Ǣ!UvTm?Nb)dJʘO/(l_ 3aޕ?Hpd(m3`KftB:cPwk'h1|cUYNb5H~ؼ 쪞}Ԧc#BGǧ7޴?n3KA(70c^p8KGw`,eVI=ηgef(xȾj4MDyzhWQoMVx~j! W-Zy;@(6kN`#XW^cH=kxQGA!p J*9L^bwjj]qx\mn2%WAw,\&RW\}vKgCU/xz7DgАq' _5)(JJJ mim̈́# ^(jǫg,+I%2i^@&o-C:ocHdhP2QZW&4~}6Z\ju5ZqmDAiH"su@m9W mG|^yn&] m%1v^rٛnDnܽH26Z*C9$,+@^yzcyxb:fɬt-)ܣو~&VL_UOz_,1HR屃c nf(cX&mwR!k'0*RlH-1-05MdFrSҜݜBT>Hc#KMEh=kTn{4zVtME1{R+^7ixN-ő\d`{=”UfO{t7OnputYgIn?:S\sk_{X}}opLeZ}}88/.{;N/Szz0ͣ?RgyfH3wbӄ\ TYDvQ_=Y~nJ#h_%v,ɴˬfʾ::88ڇ>9>Z)gYR4 <{xy}o~-}}kwEKTpɐ~K `popp2 {^%8L- NAtOKҙ-ۮ7W.927GfCqXD zftJs2]=UVqMME4R0ca5?hLtΣ~w_G|D}R>TYi/CJMBH~OՏE 's]Ӌ6j1mr@Hdৄ KЯ IS7yJ?ϳD袸~P>⛽U)4(S|Ca4Olp 2"Km+e)~N?a/<Ί}tGɐ61% PX\9[8j+ K Mgk`@$x.iM5KED2/@=1jT.W?HQiFe!TeW4&1uH, R.rg^=Zh}௚Ub7A#W4 )wu>k,,KBź\g%fk > FljyVz[) @4GVF2$&U3o6ۇO 3[OCm"s&Nc`,K`DpSG&1&IdaQW@ Z-g:d#<" `uvA 3$nd kkҏ"հ2IЮP) Gv(qdF0'mE{1ThDSRԛ R&hɣ qw>BTd G`BRk=~#hq%LIb* eT܂ t´Kbf8E$C?i]}H| Dx"l bw<@9T L$s xjcBB:I%2Ը~pɗ.'0W񋛫&VTQnshp/}_a 0$~aen ))CBDyr g>D-Dzm-W4#rXDc!aLs0JC$]LHWD\~kjf2\ֶR dM Q] aY&rG&ag27̨S,P^+Yh 5xD*G0[Ƞ+1R }Sqten-de_`H-P-CN][MuU"W P;vP,GdAN)tj|f/"߰0MvA$3q  {)cDȻPz/K?,XQ2j<$ xMa]\dH*:'؏ 1h多Mz+9F+! LՀ 4*iXN .&ό.*e{ , qJ?[䜩KS%>dsc Nr,\e^+ZWg٦aO@A=NP]Us" tQ!( ̖Ѝ]X0H0(А9 $M9a$xbƦD DKN1Ǔ`0pV,Vosxu+3) Ϙo'a^Nn[/pr?3[E!kը˧7), AIUk'cYz}qAZuy%M`Sn iVq `nz;)bly +A%,&Txn'6ҏ Y`i7h~U)[Q;- E\Q*LX~nt )BFXu3D ue]\3Cq$z_Qr*0zt櫟I& *\?Z+p HJEF\|!kq=,+α rUƥ;%t*o0eۅ4q$&5\ 4K{wu Sb2I,+Շ]~fem(=)/QYc/ȉD #O/<+xgpS2b&b>E'0 p䂮1 eK4tc`lq6!,UL HhSe=6+4mYE7W?u6HVY]55aVQIߥ;Z+RHt06qeu WR:\%ˊ1c[BgA< 7 / jf`[aa)j0C1ob onLO@XNwG>%F,DeȻTsp*zulm뚲F%)ԄOThĞ宂۱r]fo;]n] -!kvrq> ~*:X8rREg* cƶ/R!c"RN&Wmx-Fam'9OÃ=Lf^=ZmH9ү;$vmT -cYcA&\hQZk}EbmIr,Ww8dhITWB,uB e4ik 01!A~j$f*^N ! 5"GGjc@׫{{k+ѨWBpM36^]O-wBջ(rʾ2m0jΓ,]'hЧl O!zRI #^ [.)2t OErB%4(&@&m4[dr,Oxx_l* yQ-VAvr=up`˗Ҡ$&d4fs{m ɘ7bo%cPj$$9" _IBxE,n[ C77vؾr-,kb?cAJ drp*R0?Ś -HkO]`a 7Uk8A[orp.i wuJ˜T!!(]d-:qH?׉CP, Z " 1$G[MuFkޚCW^p+ͨO鹾q)SI^ƬA[7jWWn ѯr\"ikb(|o~7R`([ȭ͛=$8}ÈGXƹKN A]esRg-B;֭x6fcrW'&ZM[7(*FH*7.nHe>bMU$^I%d$>^+. c7S-]yQ $K0eWNҦ]`M)$R24&:M_ PdSmu&'ql!؜p5k3 ;oG~"ؾiRّ%̀W?fD2-cRUoL uݞX?裺'}r;Yd$l Ta#/6t+qM \Otmu(B(.WA;﵌P P&o0zДF0|$=7ƝOuqJ]k2 V&Ohhr. !GMd<@Bmd:KSOpM#{#te-0`sEV6-OPcl2 9p&ۺl QJe*]L(S oVLDϥ$MU ]0];@xe Ubt=sg`I.(xNpN䇰Q kU"!kmm/$MfZm`18Y;WX}; \0RQ e2[&vQ­e,26"dFX:t؃:zǝvZ ;ga<~/$+w {>E.%t@Q]@hSE]VDVG?Sw tV| ٟ&*!]V,0sA:,ڑc-QW TDz7'/<t,ha8badYXF04UU#|EvzOuҟ^ G0p zn=/A^_/bp KރgK5>!*/IO !]G"9Otש0/C-Z`[FGf`6?ش.r1-4r CɞKJj<қNL[B8QD54Q ilP>,᥺^ -g7}wbpƾI^W'1n\Lq_x+r*:ˬÈW|wl֙z'|Q|snV'{dшU iw$Y&i{`$iBWarHrb1.ɛPJJ^HCSMrfЎՅ;;V&iSH $~t$qX3[#z * |sꅐ(~,{X~mwF1bO'Αm-;8'l` 0lRHUjyt؎QA:.b(~TCp;Ԃ 4lW,~J[ȆwQqV%NjD;|eds3A=1q6˻iv⡆ַZ v!*}@j9} o5QUz):V²DS[['lƸVlL n= -eþ{-f&Ss^߿B`}|pnήHQ'?wsC٧L%^J0Ym]9'P0_v펞&+$$Rji.^k ?b̏48l™VxL5ΨX؊bT]C Ă/u<'H{wCH۹s@5;Wu6W]oܛ7ha&l`׵IťYB 5E7"6`fFv*1VFS1I^59mm=pსr=&z~KVd]"\bu2ax~ܾO;P`Uuf=j -pa& +RGѮ rؙzg-Ê*SU07TNJ`KDž=Fwwe}PxkY>[[Y>4 "Nν|7wLi,̨]`ٰz{{mχ,*usTz7̜I$ yۋ_r[Y<MpH\ZH)r$lp)B[TŘa!aU O%ĥ/c~^n3D3 WW,q8Ai EN' $ rױ)o;nzJeoņ`Iw/81xR/oYpϿ%4yVTM86U9+ɰ|2+8AOvѝV&Unx,/׌xo~ڰPOv8Azx340031QpMN,.)+(ahzq,CγrBT%3پqE0GMu2?TMFjNAj^rAv6{c2 TU =;^&Rnf{ySDYsSSҴxڂJ\K2vVe>^eCm tT=6ԢT&qQ&WsjSql'THqbrIf~^1-ō^~7~W_K6q޲;x͎0< /Й4"LfVM-EH['f}QIl i{s5\\*Ma9Ig%aH]$@o4rv9fZ=U+(m9e.9wm*1Hϧ'(|PF vӌ3B`[s*Yv(FX}&v Sh G 픠S_>߳Re4k]ZVUSg@@k{A,4H+ж +nm}KPߑyilHE/f`&Zdb^`iE! M9? :;1!몦1H=GsMF6xUA =8 A,X)x}nUIhU̸|(L#gWu>GԽ bgLGUMho>,xZ{o8ߟԸrkv=ױ[bq0Ȣm )ivvpBHysrY=CG.^ˑ[9Y87G% \tg{e?oÖ5stAC%[B{IY N\ N#Anqd.EK8 1O=[}t]A!AHpA\tp䌁ay@XPt0!< &sJγ5Ȧ5gR {V  A{蚠($^7%uGxM?uX,;Cʧ rq5/.;}3<N?h0 \Q]uaovrҷWԨSV5D!ph!xm< }(18Sd7.> Go塇&Sp#vc7ѫc & `فWfxB!g\tы?:n٤+En5G.AƂ+텑{ɿ; zև3rݼx \W ^q02(g $A9j|;8UgWu u% W!2'5*],5<ϯ //_gqqիt}bs Fu,woWKR_h2!._Kt@ü峛h4 "\ @l)\Q"S٠&3FrӳlشNǘ1(Kᷢ΂8&LĒ\3g Fg6 ^sd_!!^9 Kz7lבQ?&+ީ m_'s oRBԴ Qo n2yX.?s0{p-|J(_!f.ŌϥO)~M$KFJ*~) /3],!$dy cS^c(A:r_+69|flkLw'5S{FqF% ; TKD3&/1l`jPRdڝ&Kذ*J]Gg0}vtup])!)5}!41! 90A T~ppЄ6P9h6<ɪā1 in݀q@TAc((SL[)a-)zVcV#$,D5A=b-pL\qFB'@Km hV%0fVLgITk҄~m R-& ro ` ;P2zD*j =rZ}>~潋$òIcMT۔_ +Uf}In.|JCP=eȖ:Qm>B|smCu_n::"-+]SUS(xK{ڭ$/hڮ]$] /6c2;=(3 7:|Il6 ZbU[b2 Zi,B&ZAE%s(Z, usWrB^\isV(;X2.Q z$]GӉ)<ê- g?ZF&sm=qXW:geǛ:ۂ+ZAfu6݃J\CDwB:K$FF8V?!K],[ yOY4Wl=PYHj(ҳkvjNs3&Gv+iYheחҰjQ<,XG|) U@?0nkavw%}p($w8nzNrѶb)Wmw _2BePc{?w ώ(^/ \OAǒ\Z ׊8[:|~zXU\5ASDsł|_;\B$ ~IK2{V"kXs_qaJmlǞU'9}zDTǺLyPex $昛IWQ>ل4ε$MU,tܞO[YLȻ^%5 |?ZGhH~2׿(ZV1wU_S> w0>07:u\VN>SyE*G]eRi(bZ֒w1>S'CɤI8cmsOr4"4]Ϧ]0i!*12) _L}L?+Әv[ eq\,w}їJY7ʇ,|2p]Q[ yxrm *~fe[^޷Nf\ϱ]O'r{2\_< "QVx; h@Ye3o"~yGdBPJb!v9G-""][ N8d\ܴ&,á(Sѱao͸%y!_&~NG* hzi1&D'A'TDifnP;zWf:W NN'7@7JLmpsީw:YrxE#:zNstq1&>3[܆#hhơoX`9$9;C0mP%X$E_Q0eX4\QMyAAuQ`4yA@ZFe` g¤ /l(Á]" EM#b`Jy1F &d ~EC81Ub93*O ثP08-m's)0!WgfatP͍C現oܑ,ҘN`.{ڕb|2F2PNd&0g u"NOA4] spzDgpֽr; #984h' S ,"s b#|U4T@F>_.lk6I&dP!oDX,敬3f&-n]6 _,,DWo-;``Y^ qdY.W*tUkaIkT DiWV}j尚\5>:vK?>hƠlMeoAmcGg4gzVF&ꚶ{q$g`Y|= f|Wm-W خ`5Ug._1͕Eܟ55sHӚhQU*+4հ4nHj`uwJ *Gܧu -G5 DXKl{(j,b !+Bu@!wu`t$@>~$Q)W*ೠ5NhKbھ5>MSAjȾz*3z 64ya* &'qooAO]'UUWY+U!VR)RL_A+NӦW#:hWbkftZCxiĐaO5Et+nO_ٓ(6/J9_4Uپ0QxxLZSMos#kpe(&Jy`d=,B"Sl&OmP.ɿ֠@;3 3 M棶 BMzkb$o';nޟ1Ej=؜R`!<-gBQ5IY^޷V/XG>+;ոtLsBUW V< *qY?w4 q_AAdmrDHa$:O5TP#p},Bg]=4T3>>˂?zKP6q$ ' aI,.Lء*iD,7ŲKe^8Ca) B<%8>y$AI^d^B / C:-`eD[kXǷ/.Ͷf-cduo|ET [mޗ޼/m3Y₉ hc&+ТV WMuPPu&dDeb)Y&^Zҧ(^P0,ݠce7L rqaD9G(ǖh $˴`8]RG5kVY֮6&n+Q*ES 80RVw*&Љu@YDZ!R!qx-0ݦ. ؓb(Țhg҄@zxK+vED]'ǦCrd C+A>TWNܘvY]6S'5-ÁxӨ YNgl{In(!SߗWVGF`}k ,S+e:)#*jc-4p3*k0,%Yجqh%\]븚@{uV\4^qiXiW浆wEX̃Yy.:v\Xg~k9׹\[8ŹQBRZ&aY:QST-hvX3uuV8Bɋk.Qt/Sʵ[t},I͇\jNrkp> -ާ*Vj9E[lK_oî-ؑ#綐5 6yZjBZoqfeZڐ)EUx:F7=:^xZ4Um20)}RFONWnUr%^9Q՟8g(J5Ϊ{5Ga"&^vjt[ % ݒXfâp(-Xli"f`q"i*S™t?;7'|VȒSh,8I=+avG.` { Go,?@Nr,!2ƞ]'s ?ʗ.;+J(N0ʣҍ G:+]hH4bI%nӃɤ#¾3[֍CyiJao&UV>!ϫ) JrDR֚܍іa/'q,R֦P"GouxI{!y<}N?U"\}iO>7W4{2D lWln|-[|G_{(5dRUpS(,{xф(" c (z2VdngF k.['8U/)@?WU QꥀH[Z廫HB|ݶ2OhL<\&Vْ5u[Qy㠚 6rDe3j/eTPlP;(]cbU蔶$BA>:>.MS~ԡUR Őj!Y/TBC9[ hr5Fڢ~}H>-ĸLw;,vTqU!U *bK>[/ Ӄs8Sߗ$悿:U]ӯ5rƑT)Ss;&DՀŅ Fnm T[&y$d ./s |C{o ˎ$C6\ r_/>%MrkbJ^YhyYSvrKbA9uJ@ rf,i~$[d+B 1~_bV̹D f`k|(v&߬xwgV))L/xM}βEF^Spa_ 3*v52u@/EYuYmwY_ yq~rOޏG`*b∦%>%%JzW]b;%qNeaTf] ˆ3UsS= [$"+urkG%_E|2UTD*\'׭5lCSko-KsQJ.t3y ͽFW+4b]U6$+ n MZ:jɥo~54yjܶ'ȲDMɠRpi;$sی,|UެEf9lޭ;CQ&lcCWy?DG#J#ޚ[&wPc^k ;-niF˻M!`^V 3`:DH+&R@z!C6NrΰvJ+ N+ FơӉ`84)+өN#Iݼxvu VN-*LNKM/JNI+M+rHMutrpu qw rN΍*H)H-QxOO0qoH6ցaBn&vJwciBZA|IO9v 2ެmQoy[x=l2 u= 8ߍG B٫â{Ytݬ"5;IDu-H>عSTY EZr;Nq \sc懙k'֌%K~`P`0h ^W%s:=!k}vN)%-[Rxw5a[ԁ%\ׅ#i M\8t'"+$kb~{suWJ͌WF^X[z!draDi}M$)l.J<!B bv;ɞQ̮ϥd \0}eqxRI9Cv'2owX5@*46Jy_ ]LŧyKEkWRh Pd*X+MrE+u_zG4wS_D=a1{֭_UT*MT44Rj<دܒy?4%VDh)ʂɅ[4Φ-fJ Ƒ8ZsĊFg?f/i-6Yrͧ9::i%.G e?X}Y1R驯;/uMGMx340031QpMN,.)+(apO͡m*Re?&I2L,(((OI-K.(`Hٻd%-=_\i۰(`zaó/nLX̙nUZ6OWϝSghܷw4e KWۑֽӾi>ƨ U_6Afk.o *,H|# 1' &:0? PmQ\AzDK/ܚ_d0oFȣW%2F r2RSS2K17䥿].%NޞDWpɏV2p?3su0Ueк ǹS?70nwBEn >2h MuY'uuG/#녙}@B ;xs%)v<\4 avٮZjՍ3~#HLlּnaolONQT0Bs Nv~zϚ܂8~}"HX=ڬ݋0f0|P GW%iARVZWɠdWc7읅؏Q=׽6A$Sl T-r]oi^4b ӁM۱*`^vpw^'ҒbX*K;̗}?0Pz_؅'Io24 WV폵~_{ܥ/J2ߕ&)`|طCol垜9/d**, ;n(]p|Foj7\(2>/=YnR[ށ*)M+KI-./`A?Mo#γ]CRKbo/KvV(c'xsm(xeQKn0s fA6& FV( T #l7޽SC>,Ќ3DWK8ebQ:X\1PFI_\phTҜnqwc{/=Osf$|hVuRƵU kt+ڸQLHS;J<>mJcu>'Dzn9; ѠVJ]a):H%pP͇[z-Z2FbPpN/Y mDwſ2" Ӵs绘@ubR~iׇsH!LJI)$aa-gqzukT?׃AP{rMNTԪ0gu kmxUmO8_1$H!PNܕB@KjŧIֺ7v6w{g^;p 7\Kyl-bՂ$lW2_<2qybEXGbuQ|S~K b! 3~!v`-rIcdO4BJ,YyL%%MJHp}?kʩ$)LEp"͍Z, e.J2U>J@4 .ц&]CJA(c`b/E-c|ai OrE< *÷Qx3лow>vPY/gZ@U2DƸ$z `ڿAv>b0 )`қ7|:>*)Nl01  ]Ò^QM̉E*v{fV:-Z~" IN|!{0vii1 |(@uBӃ12@Ackqk{l0psX *䲏9fz`4?lβN>2'ɴcv_aޜZdi}\x+=_3vMf0 _<0v u2L.һ 5]x-\93-/%5M!-<1 > 58ރK(MkC<̜,>%0eOά+\\RT\WRTUͥ_3kBihjZEs RKl45 |jԒҢHeA\f,s2viQEˌ" b|I>B1B2܏? 7Ƌ)XXB4K8!S\ !v0 fx `8Z9 fЃIo7L|P#kAIqTT.л%!lT1>.a"LR'z- Bn0_QB62{0A݃?ZcB%R&!0ReX4/Zf{r޳!77.$$җ?SUt췗Qܱu}qƾXUn5uKQg,@;γ-+=WhQZ8]m*y͡$& ЍXB_Ǘ؆5n jY_'P)_h vq]M;c%FY·EJ]/ʱs+dO9a$:uCzoSi_ε.GBV4hB{PPkLjJKɍ]G4?i '/GЖK8a띵?\f^CpzuN)\~TODʦ9lO.wͣn]˃z3/uԜ<1FtX~\+{hF;=|q!5xJ0/FZF3.柛!:{DBq7A_`;"δn>~:x  L9 NȴHɨ4%/iuU\gp!LSa$XjֲY0gd-HC*99 H*[,V |s+D,-bczK)?mcZb$v(J7~E8:|s*.ҩ\NMx=kWȒm @27d g Ι#lt%$0oߪ~HdɉMwףK+9:D~O"K">̣f?I /7~7 fI~ \dyCИ|:~&..N/?oC6>`Yq#? rt|yz8 G..N.O(|CS:J IPa`s.[>=1W!?JMh\ r䜷id;`xJ葯YjT$M##߂&~| h 8)=$6 xG6_nmmz#W=x'Y`*MB`*i =@sxH"TF+)v\'ߔҝ(ܕ~98= oe<5Eɵ'؏xF mMP>QBN2Ky4P$0Xa(7<ZgƬx%gAF4+ht2avgŨ[;;[WVx>#0@ <_FO{Ͻ{+?Aa/0ic `);9Oèrj)##M4+U%GF?:'q 4ϒ.NbHQMR>Ttw69}GGhV`kD6$2ɽ8M@-s:a\!8.W {#jc,`&~<&yF-a ,A0/gWd}= \=v%HX"̅v4qmg&&O' c1{KMR'y.R6OO4,PRQoC.1 tG䏒t8:{iz& >9PF=#* .t|@HXG{h&G~|C;AR$dUP1q@쑬r?,U`ߑ \1hj^T% ЬPmBF>;C$J)B|,UGJYp!ʰJhu?¤]뮹3Wp}aGNNJ BSKvjK}}v˾Ѝ+LRլYmfi~z4}fҡ `ò;5*5U6=v&<ݭ׍A\dCVql󗎅].5y.uY lC3QY 4kpb$߿C:EU-FBCP/Upl/gΈxuLH]$lz@y`/ݶ&Ԥb70Hl<-b#,[c2׍.Nϭ60GFYQaw-f%],l-"/^\DkduqXuaqOXYbIm)hi#[a ׳)Ȥ7/CZKl c ӂu9 4LDU%V)4)h\B?_?? pƿ} ҅? !ϱ%-0*|xSU ?~Ȫ)1+3oꉶFR懳x$#ڼ؅`mſ(bk-(AbXDZS^G)h>ˋ* /ALRo˙4.km99l;2XᏑ^9dYvt[nf\Jo<Q$R b+huL6fN1Fp/v{vCZt{bTcI Ipd9XM섻/7{/_l@zݪ.A*|f}8W0.`zaD!F)F$]6r t1&z%>i]i?(2cpƻ}ƫh_`E; N.ƛ?6XvTޓMo+qL{q\x°4\_e6#!'**FjFrg:`OB+ -WL=6Cҫ&H%/6,+{d(Q| G+';;dms~l}}f`d~MqeB&~[q>ǘ} 8d8b5rkр}l=LBemWVܞ'bKh`nkNYXwOUs{A} COQ]:tY/na{E Iޱ[Z_}5`c'%j-(?UTt?dT]=S報;3@0 tLĎl6*_ uL,?94|eO9AժW+A-?׵VzɺU ^jl^=ZО/FpvMɊJ&ys[^х]|iV:Fo#Ox>nHDTI򮆢c# *҃miR\g_+JnL|UЌujٕhOW`+8Mޫΐ w%z>}(,/ܓz@w7Lbauh~r_gML`Luojon+{G_O/_fGb&~c1vw7zf > JֳVkP2qxoyh<U2=Xx{Hnު7v[<`H=YT֒IVHYrUNrGg l,{#iZ,-3Pϣ,.jf,Dp S:1 :L8δCNLǏJĽG;6#M wx#n 5>U|qR̉(ˠ=73T߽_3JFـ 3k9CIyS8q&gXWQaζ8rh}BO QDNIiCS+@ Qx`k< &c=:~'L;"77{%JTي*mS%NtXS̠Mi:|j_ Uk=+kiVoTNmi,O5-R֠,ڈ4O@d]V KNB<< ѤѤt`$E<&Q۫ 9O?)k\n ZڶLIȬ4ڴ#y~T&4R,XcIM-cgW[SjnOPjѢЅb!i<Gֹ5SKB\ G~\_#l% lO&ZJ]DlUj+#h% % Ԡzi+ܥFt|5ܷ}rP.S9׳Mz`L+pZj $Ɋ!1O9+ny(o-e I/Т7@ <Dz]<Te<.`';Ԅ,,Rܸ-M$[taSf%uD-ngư*Nezl uJ>Hs:T[ /5ZFu@N @FZJ(3O˯H¨.ZZkj@W6OdLĭ*Ow99n^%5!Rɗ1a=Ĺ,cǓĦ`.x, CK5k݋NU@kT4Ӷ*G7Nu|iB މ7[RP|QR]]3E FRku,]*/JZc 4y\{XsȢ][ݢ,L1 ~B:^ixnC6u# 0Ҏ(r~+|-.hƮ'FO~ca(LbkrᚔIiЊ"SGlX lڱL}yrkME)n)Q)XZV뛽%jkkǺG&Xy 98]4HP9YxbAmIR3f3i҃;1qepjIe`47^?X/JA&$/>u,6d60qSё[up:oW BkЅJ5Vr1^ǑMM\w,ۡ/-7wHG(YhXZqtp?7T6A{qgȐ0F7A!U3uKҫ7rol(N\<~k+qL Ak+]F++DT_PB-"2red̳q RM HmAqQ2-s(Ms0mm8KӢkzFc}䪌FRb& 1?% s(zĔ{[Dː}bDf.WAr;'͆iI֚Dcܢ,empD-m=F4uK ^Ί*{w Hjy%S;8VUգ㰏x 8U,RDT[X)Uƒ!S琋 Mwa0kJ]-`TD1xG v=FAy#GN [Y~,}GMp5,f"<^t7v>pIJ[.]r^AFA/}A4ʗ5P~/P8 7Z,a5p_D16;x czmfKh:`564A29n1U[14~414PZ 557vZ1/4 R]sKMjl]+Y8 Jfs~y̨ȋ$%xDNCF;ӫ;Zc`+'AOdY0K΅=Lr7u]7/tبpHWӋ[QW*UiHY1LU\6Vȯa1J&ԟGŠ,*y aŨKkӫ2t;JɈʯ(\/0גH.O](,kkhES8x_P}%FÎM<,9Q? EzC*dU`O߶Ph_ql>0JG_s_:SsZO-8)ןזˏ}.qY mXv={KՅçZD]~L;\'+#<>H>G;䋀F Rv(LxuVɸS^&~}NUyKRd)nӄ]C׶utL:յEla_ŬȢ0(џPKFVlm, ÆRByrۢI=ԜA,~r9:8'7< hrn FX?vO tB$ղj˱åjgZ\qWs%!sE n3ꔶK/f<2^#<=X:`KV4-[+]Fuql"jX΂Cg]e&k{'aq9)(y;+=4]ܤX'Gz$^di؜jײ&L1e C{Z4kg&Ɩ2bFѸD-4[Ss:1RS{:(zam1:b|AhA&^$7oе ~tOQ_ ٔn œG:aN 'U86c`\:܈0r SWTعz #i$NԒrK]~~dB sgggZhW J.ě{{} ޹g;r/܌\墔!-j-MYQf|@pɆmjI|ez*scWL/}}{9Sw{n]Y|*vdőu#G}q%mYy[-DR-Mh#&+CuQt_bY6 E[X-~s@\4C,:Y4S9J!c^l~!0 87xZ`Cw:R&K{q,R"'f䅏avrEڈ/sm5av 8)͠c\+/kN{nqcz_R"T?H~Hur>ht ZtdK⯲vS!RRdLm{|!uEF(8s͑"ۦz:a)93-1z+L5%ebxo]8Oj:ҟ%ՕY8K ax=\ k&IjmΕ؛q~ɻsy&c0 y7'[ne߬hȸ9(M2&xJMߏ}G+^ö`5 \ڟ#wO~֑ɤ5ٿIK f`JlvMco5Jx]J0AA$Ao@eիlUP*ǒSfے, ;Z$g|αê fYxDwCvCb5ew9?OefпBƝ|]t0^Lw0ʯ%981@W/lȖbCʶų$KD>-Хo1wp4@1ilK2\Jm4΃q˹k6c%"k{.845E5m`_QTcZ=[ѐnLtZIѕclVje_;T,ȖtZj85-bVY|F@A;bE!xuJ@ {@.Eo i F%; 9ijøM0Ź 33_B梀,M&Wi-JW`"œx\)Gjl7&BͳVe%7d m%fuڡx 8ּ.O)i*l>n{Ɗ,/uuwVԉ\nnHQG kN"lePWw.\ny:{E&d1๝Ôb䭝>q줕S^IIm-1,gMJ{{x0,}7$ %EZy2pTfc-%Y~9:cCu-kNAe 2!̣8/jC>fy?":سS^F3}fo? oxI#Gd&10Qy} [_?/D/]8%_͋a<޶c<NؚENxn58씵:CKg]0)o՛Axvkp5~,3zs{toGP󳋡` tbXLiOg<WA vr}zhJ韝^/o7õ/8਒/#듣Cca;.!?*s6*[vgP .%/xvAl0I7\.kAB-G`.{*.yOubЪ2^BV' ڛm3.$TgG  /rmͳY Za-h3g>{!I`"K<E~55ێ3l9,x%JyjAt_WV E˴O ^)8 5=\,j5rQ[n4!sp/Tp.~k[HGX-R@2Z .c yp aFO h4]K~|ۜ/<8Ũ\p.FrI$^E˓dt2 xsJz!Ť s%'k&Y T8N jkF? &eJȨ`C3in)+0`Se TԴ$Qm(][yuҫ? [ih?0d7?J@{7m3a/  oD˶oa Q$n$Z8^C`/(-P~0a,U PUz^6sLE͊=4Awa2<19$ n7"B`Њ09ZivO,WP4W+4]d/eLG62ގ&N ޫɉsZj SaZzAeorRWΖnwVwBM_@߂ģtPfYl\THZ|=+K/'χ|ΒR^'1Uz`qitৣ  jhMMX A |M F8aWMT]韾~s~ mgdN=\G.\Eռ">CgXɌC~ p,p5XԸ\șMUTpoibb4v V/2G@l}KrtɩQfa\@bTaE| iAͮD`q %oi8S= &\vhM8E[__H# yK9I p890G(xc]'ECAINU @€Fz)ȴ&}nR~*JUcJ]\ѱbԳ*o$:5YZB#ŽmG֖q0(/l5e[kؘW@$ii5݁v:qp/$K-c1Nv6DaJ3vK*?* ނutZm9!I\,I%U&@e b92 G3P|dRԡ4(ĢD<jFKh$x\+l̤[˽Naf\+Lq5r ` a!sm%^}B'q#e'y51\_o*FL [0KQ~y'iL۶~|~5HK˳TM1_Dh R?WżI=VŸ?A1#-ҲBBrYV[̲p3}DlkrFB-Ch0OqI!zws? ԛH5/;%"@x,P=p'3|5 H H!@iJJ@* ˫T4Rm@3H[ES[i4}Ց5Daih"`"TT $,+Y @nhs?.V"IugUո]M5;$E>+f0SNFߦ!uBXlu8;C G@+XWbǩն{smEwMΩ^V6xIFa@ٹ$Q&<( yl;":mix ?02Hf"7Ges4Qm\fxgd+aJ jX)`(݅`<: =_`>ֽ^`[t$, hX@oNwLnOˋީrUy@݋GiQҳW&ǐ&XTĹ"rWOE΄6_Ɉ1^8fWyfy3"u@)O!//1c,^yGTt^!`:Ma{3*_膮$l&:θdw jͬ@#Gx}%]wcxu[Ɠ-K͆Dc(l.V ɬH),#XeAH߈>enZa,`ۇc?4.a4VM2gBcl|rvsclJeVfB)\vt DŜEełوimyPT OP(vQcWDMI"늕8]ꙈWj 4#H4U/5ĄOne؜a\vDuIn+:IPDz-;:lcz9'ӑuo{W0#H焯I2ϔߩ*56V_?B|sf.ؼ )Q獳.jȳ_°kt ܑjIc! #03u D2v_>-۫{LSƞ/HaEaXB5:֍h K%׫<\-ÂF8~ȧ2h[ Cr, eAE<{o ߱ :0ccil<UoY+vRtT[ڴ(&"j n)pa JǫUQd}2{e(L2SQc!\(Ye5*o~}wF9|E/癄a LjZ2!U dHqF>k*N ~ez%T*v]~2 2Y= @ϝ Yn !ڠXģ-{LZu899C&*ׇGW'&J@n=]z='\vCzlCGo>o釞}QL ‹iCr{HfYgys_w,M()=}S3Bg'׃󟾷o=LqU1 Zq=gevZW s a.g\5s^O!cb@# p $3Jr*rDziz@L8 a"繆d}kK]<*JGEZ_6iCrho-w߄"#kdf(t%oZ3 YfV <{؜Mk5xe:x@Z?l"-"do&U4ꔠ3o~܄՛ѫ݆^м5aEz3'MlLwLdMQ(`.Kq'NIܘ]qEj裿*'˜ Z뼯J˸j+S֌uWz:-]nQ=J·SA)r0EX/=<\^˷ƃ`SwwS,1 AՃN#.tdgy.z V9QkzSdt!-[c!!e߾ iIemŽ'"o_af-0B8 Z(M :;q9m4,Wr?ENvWs׃z[)/o⬸NTM (9ZT?:?/N-aʟә"6QtNkŹa-8Q]x9aQz8RcRWhw 7 \ 팔f˷&5tAzJ@B>%[p ckрuRjxa`U ʳCH6ôHdmβYli8&E_RCﻰ@#Dn3G1?u%W_"p>p4 # "obyh?+/b;~W%V㌽ӳQwof0FоL1 .}B1{ dMtp<4K"A*+8 *G"/yLJ{^wawLÉ} +EYy^pl 9#t:HG\ ώHY_RE. 7=9܄BStƷ ^Gpz2kzn[Jv!˂+=ڦ31v`jf&XK]ic~yDhއo"E. a.MSSDžu oֺ}}[i"K c5=7VP˦N@Uu xbVmdghҙd 9xW[O8~8$TPv(\Rz2IkYi=N^ i]?TsǃWϷ=$ ܶDNi$6;-,$L5|9>9d|mF}8s=V$b<{":iٿ)WH1,HDP"s& bs%I5bHHσ!YJIS2R 7kQK=rcFKcN\4qӾJEŽ@HReX.A$z+/}q= y4%Hq^RA )cgts?A=5HYO s(%!'dKX/|pw9hБE=p.C@we`k@JBdY0 sȺЇ)!%C>#xT^g@X(I&)em xк?uzdr'X%2bWkЉz ~?!&e¸*BfiJwM8rrrMQc/L}ZRkWi}.z- u%딓@O)z'HPէDݔPM7/^Qn Ss#x!S " J8e1fyM Ww+&8Q6`@v9¤tnNc~z: /l*Sr?wڎܟÄ$_{nF+ ߘQ]j_'B_EՃF8RT@eA\Cj3#9}W턊B/tލ]AZ͋MF} rgTھRLrv>2 ,Ffٵ}؋N_H^6w ߖ߉POrzØ*/$6zxk»!#'3/55%dr-̎>@WZUXWɥV 0EuX9`,7'?hBZԪZiUD2*r Px{SW93-/%5M!-<53$ރK(*Q7U(皒Y2y9`PPRƢ>-xZ[SJ~Wt&#b_ۄf)JHc[bvnȥ!z ROwOOO_lEN: Ζf=Nx <& h{`sÜHB`Kl\|]1sY0o,S3gD̀$d4kɝ`&{y>~n"?S&Іq{2t. /&ѴW2lp\`F/#nY, 7XggM#%ŝX&2<?mnZ :1<Ãy&Q ^7Mdќ[ d 3soqm8~@mh6F6-sѭ`PW_V2`2?O0[,a~:i봌5sHss|];f\,%ǡ2094l=0?.5m r43_[om1'bY tFI|t۳^?_榃?>. IgǕp0]Og8TBe~tI摶vWTS+nt1X?sVS7FO5]4^#C5@?\AB{jUPzpS/ͩ\yj u@=<.P.QxWH}SlkT  -PEHh&rqu]9ZcA9ĀR 9Bz*젮dq5g] ٴQ€&4i Xg v2eN3$;g- VZ AfֺmJu&;1.?iVBj&=}*!h|QIUU=<T)՚m։)if ӃkƌYhkDQTUUeTb 63QVԪt=P YƂ@ygy//fe)kE&MUWDa,D}yd5U,E="OY5gIB#] xM61ċ2| :"@:6cl噦ApJ8 E!ޠEzC28]*^@EU1,n( `:͔Hqf(,k#ܠ1%.+jAWѩ&\,WԕtJS򧺢(9DoD>͌E3ccnJ9/WS1}q=pŒl+%SQm⽕+!D1JFؗ JQ*P>.zt'@ܾtB]KG9K 2c+8DJ}A"+KږݑyϦu"~}q4Ӥ­;*'WJhCtwVMy ^/ [V)KO5p#NDp& s`XOk|H҉UU~|;϶x}Mm6+ Ykwg$ų8:JՊOu$ qS%]9Bwc@G*||lhKR_}nzmc s϶': 7邾_y7 m<$.3ɴSBÿ/44 M@ &ć;cP'pG?%k+~=ic,b[;b?.lYgף~?R2@&`a}A9\zP]eO?^/&]cxVmoFίR)g(%UP)ZYZk"zJ{gm N}vyfƴrx7}h)"~!/ҭZYӁd<+űH|fw˜鉸8gꮹTP5Ds؊ yj[#t0Q$9k6$q4Ɛt0B2\ ͉[gN{Ӏc[ʯݿZ{,U|0wIor7`P9Ha25V ,H283tHh3| ZEf֨+! Ndi3^ Ԧ)XvOViԵv 9VV;<emLݮ;Z 3}@|k/9j=EX摧qXcL}ipb:LH4{NB@| ڹa}5FcHͪ?U9ې$4I+xJ~Dpq&&t˪F9ǟ*" ->_H!1jTBI zhq`0=hԾy`rx:}Z$t],^;fV77FPJMj*EQ1}M\EN{PB( #ֻ풟˭Fl9f}H8DK'?jxOCfi,j?C/%x#Ct(dKv"pJnnbcwG)%xuRAK0>( "eA`v[.UOR4Ggx3 !}kcƆw!0F52蓮MOFxea3&BIKv.j 1,NLQ)HI-%xaA_tlZ2^-b̥+?a^ԲCWn߿"_ݻ*hv}5fSOX89뇍RD0+d/ [pM?T3WN2ɟX nDD 4uz-XK:~ h=\?Պ %Mtѥ!R_ʪjʟ 02V:YV!_|B≄6< .DcA [!eԃ8pibIAЏ?kАx0=6 @hIԅGGJt cmt8*&(C~kFwZax(DHC+)砹؉V(KB}|bc,UfN> h95 ,tMU_y 5_! ͗nڣi{t:I=Cg0& I55G0q04W*9\E at,R1Z繰$kQF0^TB<,yDڶ9(nM! O!4*e! ܌::lvے@Qמ/ֿO}Z%Ob'"+3v xO,@˥}{ \SK8&CV=?)`0\ZyN?t&D ,[bwGQipz6L}^;d mF,W ^#"$EEL-%lnUӔig ,,V֒Ƀu✚FowRpOk41]5֍רj|Sm찱ß7;Ӓ_>[olSKǩVYf:ƨkr(̴,N/]Y,$Yή¢>^M;W׌(~6f56Jj4aQG^t)P!Bϰ%o4[ڂ "! 2f'=˳z O}5tKzF]}OxYUQ۾aUbIBArErM߭yXnٌ3KNxd+"X؛QrOUj%[l٪:{*R9R3}H>٠^;io둺^yv([t5^|UI{U<e𜶿C`Ƙdq”)dPZir misd߈xq.O_yyO6~gMr ű` /e޳xW[o8~ϯ8JZZHJ@}ĀNlāC}._-Ҙ.`|{Lp4xNRZzg=lOOZ "8Ez+rӁ$l }%Hc̹nǖ2!#X/vb R,%I I)(ЯDR" i̔%gBB"beLE~}-M$& gXDSE Eh /9 D3@%lTxB&r bmN-pw{KsXG+D_B!St@a6ݍ3>>(kۂq ip& ݂Wɰ8 Ө݂?:(B8$([g.U(m4p~vi<<b W9{մ8#=U'm^}PvM!y'JcAC_$}e My)IZ(ޏRe"W"ѥh%;υYp0?OAhpPcAw>ξ {κyXsaNolni\(zVqb$Ra-h|Ox ^E­.<0-jdr$#l[hiX! $Y3M\M*n!wTG,].=*q2ĭiM7ɸ> 5=o饨zVMI~ǨfbkbiM '$Zk$PhZJ3V]F;Ĝ0:NѪ2y$Bq!QS߄7m8_Z3ŭ̾Y+yuX7?ܨ#6}k܍\N݆<jwc._foc V#Q(ܰ2Bp4z Y;ȒrPó]Y1%9> ^ `cvx9jph7Zj!vʋx}kd|WF+ĉF,SߥV=KNmgC=_:wVjeAUJ%%7a]솿~]&<<0'4:]6xY{sHߟb"Q\W%G#l6ެ+bFv|랇4zT4zG^ӯsEiB!exeJۤx'ՊE3fܜ-V^6}z9Y [$ފyB)l>x [ߋHBgO`N) REKȊ͂:фKJR8aspv~MhD/$4 |2 |qJ<8WTASJ@NҀE]BO=M8< %!,A! a15@ 4gmn1?rFH^,ZH!C2d|:(zBz7kw>qdK0`WEG _N.q0Lnr:\]%qr2_{d|}9]4 Tlq\D 8)d׆@`9hһ`G|HǃBE a&t!%fp~*$bC(e!o:?m Br18 piX"9vM߇m\_޿3JJ/AwԖ6}>>i}2 {c"O[_n&=nsBh* [luRs3l\K^{6py/VǞOkjϔƘ|2Fwv=]0I3C#%H%Kæ:;o8NrECYMF0D,I) Gě990BzӐ6 puI%[OR04oW0UnyR-4"muFCPKQǧ)O7Hh/!yPY yo}ӹ|kvPFތr][S+/ҥ``5Mi%-l65y80OÕT\[ N+FDV^A.F)Fj)gB]IcT:Mۥ?s]3W`r4@N1U~m˶z/ ikꊯ4^]:tdAKLls45BprQx[*JPh, T9#~,^tF0fcќcWme?Rں@K@BS-P\5/V+/|6197v0XaO!>BI_ue>ŞMGȠGL6F@I~A0x}e,Ju? ʖ] /ou ֫]'0*FD#ה)zRF׸FH_UScDb J, &]H"ksq&xp32S@>ґ>Iבf}"K5$/> ׂqKod<5 _< ˓OMD>[a_K-)duJxSvtze^x}I^R;N{/tq5mi,Qzj5x;U_Bߐ[tLo8}f @ 6䠖5wA1mTz[i ߕP6iBⲼW5 VY{Fy{C 0għA-$ZӒ-<Xg[rgySoWb ̪>#5j\O=Ւ~ ̹5d<\}1{qmbF8d -8#g|a^3,p\ x{rz ܡK0d\O  \o𧛋M lɝsB axv8:pDp TyC!d7RX 0_u>>gp>ԅ(!r$YԸ6̵ pE# 9 OoKr,z=4w#vw^z@#b1zBH<HA_B0|.0}lrxX1%kA0("_܉͗_.gר28. .n/s'f2r0'WWY0zD`$GLl56\,ɓ NrwAmi@qzM1чgNۗ>L#wЇ?OQĉ~@aĸ>.{0U>DH/8y{zz><'e R$vCハ +h޲I I$F9!IbUܙ[ =T'脋e$dD _cˢD^$voT3ST\Sߧ iU}%$}0<5#gjy$I 3FkNfRK4Z?G><1쇎pW2bLɌ}'Hdr2N #Y5(֍a˥1`~6kk8ls#jZ%¬p˹%dL^6=hRp*yӨMIܥ/BC?&qǴ+S#9Oz9&7*mpggvVP|ٲ},6Wm{[Q#3%Ź̿zl&7ijTBi Yl.&G=jVIV6lVL`ص{YF >g,I{r2="AH ODEOrPmd){# VS!e %0ہɊWT)X_ym?e٦7Hɲm~vdg{kPNŠ=8oP^$ɢTBT=0ɴ;d6uEj;Gt-A ݜKȈtc]Kll9P Z3kAMk+#l6a1l4TVGo9(چiH0F}V׬RK% p[e:LT@:أ9ٓI -sIMOb9э-GSMh=耐т-qF#*"٢oHJ."Β0R(:Hnԕc>ty-E#ĥG|€Gѽ{ 3<""eGTS'6ஜhI`.kh bJa}2=.{p)[u`>/L|,c1cXQEl5Hr鬒z+$l[s1:%&(/Mwx[3gDY.}}pwq vj&o`?y2kX(,$Պk23  x\Y8~ϯx1q*lRIL F^;~%$ 5qԴ?[ z##]/X]>}zx>z|`^N4Dv-?>+1m]ߓ###7r?A6[=^('%W[Xٓ=rvqa%m^oF8ej;8S{4c >m:a2zlrI?٤ BLQ5OW_kd;߀#qN @R  ="Q`k@Q ۼ%}jn[xˌ$)K|( @`[=gB"irӧVĬPD4l}@b&R=V=n`.eiv6:ZaiO;K =z[2O,03-_R*Qg5HԴ4Vߟa@n (@eo+%z4BD#z8"Ȇp([Gg'MM~^PbC4~i'!D79, OďkyycNk&~@Mg^56[cNwUi$^S%`M!SUL],BtxptI&粗ěq]y; Cnf-w! z >s>!|p=Er^R !1a2RzGHnc4OE_,(G / EJpIjTISꥎfVn~Bف{)'0;ZZ [j%K0k a-bvL29[6?0YENW n Jm Z8 VbsQtY8~ 2GmHBR[N[IN.y_HnA7l Cc4 & 7Ž|s8 uVjJ5OOwvy:MEm,3!p> O>iԄVZՀU^R+6DbC&y^34GXoVlQQ`P]l8  tK%i}a5 ]еżqqRԬ(Y}u5RPuo.Dh8FC1B~!%SMHA2ގ4J3 (Y0ZZ2;kU_[MSZf:cLp-zZ(`.|QOݐTkxM77zTژkrq6]dP2  J~DI.7(dF=,/NiU`/M5+xwTH-qZ3.F;F,"Qe|.!-/&ɮhW4?uL.3rDn\dw.cG/#8 kp匯ey"1 tγ=+-.!!&["$u[EvgJLh#<9I=NG`P/x`N8v}bEv<GŔ t.z݅c:ļ\}Gr^3Sf S9B]8I,`x{sq l99L\6?c|/橡&4Ax#oC23orvjJyfJzj^Ff -̖F֓2OcV0 .I) +BNvdU+@ ĢԼMj.tgnbzBfnu%@ZG@t6f HkZudV&i+\5\\e) NPE\Q_8S Wx[ǵ\93-/%5M!-<>8%>5$ރK(Er~63opIbrvjJxfJzjEfJBAiRNfB \H\>,<! MjZSY2+r  5W5W-rj^Jf ? xWko6_q}IR׎[lÛƭlE>esHbΥGɀ "q{ȴΎn5YM76-0\bbyMN}re[R'fLPؼ[SΖS‰9),%%y$@¤-(֌ҤQXJ l?>o4 MrUB*K0#~)SGgԷAYsARaуtnclu r"{I|&]))@DK@"ƕҚJ/R7`et;&pvwai1+dB+ #.'LX}F\~`v ? S&ԣqo2\^&4Gӫ&TM~g%1U7߁XtJK Ap"|^&Af]"/׾eJKpyA+PFDx&i66sA4`10*پE>ZxMߵo 8Q,>ͮ> mTiʣobC@ g;3 YcLTq< v~j}в{tdD.}!t̓TTX$}=yx2NU8bd(zqvJ=>}G5ӪoimWּi.$E ( 붰.5pI}mr?O2 [xp-ccIe\uED`Ѣ:uoVKL' }0YH r" BI-LP;}dKߞmCF̵(?c*KyL6+¯ңhӈ6P;H[lCi@ыhbh_'WBJ/0AY`e0&^B-)8_h#Q+N?iLöOg-tCU`?BhaTMRP?*QmQR &劾EB-\PPOH=((ub=ơ#+ | [\6.i\|#@D`.F-X G>Þ<hk$1r_PMm'5~@`ds6 w0|Z9:pRtЛAr`fAs[.>\7 9X_JJYT54}P[/Y"(54w>oyMA1^/$CזcK&"珨j^P"*43w j^==~"/A>ip&νu q⺀;t,|B8lɌ*i2JYTKj}5N/;q5/"8 ux;.SW93-/%5M!-<>8$=8ރK(&ʵ!YB93/94%U&9(U?0(3/}fMԊԢ<ɬ,Ѷ%E\P12tԲϼĒ< LUE%8TMD XsqՂrj^JfIexXms8ίV],C0/&k eʱX>[L-ɹ,=\~*' "F,؄Jۄ.WuM~%%E|{-˵GÚ_ CwESL5p)[/!]ز ^ h(/ .YkV& H|Ed[d/ ID/9>X'QJãL";B+<ۃ]9bIWP%Z,b"dKeR=eUYD(=r'mmyf?7!FPgBېzsJH`]ݦ#s:5[V.!隦p6Xiˆ&~U "ൌ So=%7~XWQԔx 772ı3n(֕58g輫źcChgXo8꣞~Nko)+Z]՚7VUO+_+t:=rR-!yHZCh-=,6O8)ioRu+{ h|d pzŢ8폥-#F,3ٝ@Ȳ79PzMzg֝Hn'p6 $ȇe']~綳u|ٛ#szDxV[oH~W)6'b6-p} hAÐZpsn"fW4-BoFB䌓$xPEe,%uFnVTV8=],@== |<+gIu#bu7xuVPrvQxrBbx8Y‰GpJpX T@T$s!g MOr5VA  XڂšGcFc0iL@:[Cor@g( ʊ%>F'(u$9{ :PXehĊ(5>,GuE: 4l0V<vK4G䉼HѼ(*c]<* o,S7袬 vXF`kn蹎|B6"ZS6&D.w8 8FOE(cš-F.rKiF@uܝa1e# 9m$د.Q3\ITH|ƨcÊU}X,>.d})y.IW:!AؑJp8;I*TeGTwJT E:Lte:뽣Lg;K7Bkc, PuB;/@L{j [۞Te^ {t]4]1;#<giXF6?t%4OSf9 ޘ4MAՙf$e|.e\{ MMѽf~ ӆlܽmN`أ#[<ԾeiX{C}jySfkZSS6;nW8*\p%ߚdAVʈpV5Q[{Ӗu5SW3b֟sgr>t՝;7|a.^u!kexd4*vٻf{O\Ǭ Fm&dp1%ߗesѻ_@Y^znQψߌW`? ݙ wďJ)oSFx}T@`\pIPtHgOUhw]$ڀ&/~#fxsIP<ȩ3wȔΰ0L Md< 9 $'j+ yCocDs<<'*+SPA0QY~F|ijs"dzvH*`Nֺ`癩q\wyr(b ¢b}ǭ/GP/R?^^h)X,Leya6+A)b!;]{CʤBs3F sA__7ml+nݎkf3")Qb|KtMo4e?ب0ܡouoB饍:TJ}՜H X1܈wo4;F1Zŋ#o3]{t"]տhFۅ^zF [ Y7ǯ6~[bv(x/1~}OVxco8M*`C-_p{ KQXS}g&"1 LJPk4+JËbX=QtvM,?FU ASJQ Тܸ4!*ڐ\``4S,PZSmVDFܤIMêx(Hc GG A> ,Rzì0DA D% NL&Ҫ4Ƃ=g;fPiv0vb=oe`J]⧇uI-/{"LE+f9?#[w)f|HfZޣW!S9wm~V_KL&BX\pͬ^[̯ 8==54h$`'{P& @Q֓TrxTf s/zN̊uGC{ 蘏rl)\P ZU n_]}S[1?xe)w$ [V*>Ṣ6sP5ĺzgU MIHJ7PƩR`̭nLē˺SaQu4@Wⲗ:_^Na)|ޒ8ba qvx"EιL! \e,W'kB/5T@5j;Tm3&[^)*hLJKN){n$ |tR1_4/L`^tgH1qP?XoLvVR(+3Nd:!V pvq)")!t*蹬>֍7{SnF_h0 vvzqmf?57 ~^?aDIZN7"Pl;/ 3pI +Up?;õtm iܨxv2W/5IZHܪ~벾Uy.()[T7Esb1׫o9 I-Wc= ZE*xk5Ex&qsOv`枼_Py3{5 $ x340031QpMN,.)+(a;ֵrmx|txnd!Dej^A>CfU=&;oC\,å{KDM uQsSSԼԢĒT k3z>߇6 ۡd'Ɨ +aZTuM1鶢MO*)YW/}|F\6ϻ=Ծ .#[_xTA0+^XhX jM6, 0s0-" az0~^TDPȤrc);l);ln)Z yy5( ǥ0j,B;owKS G̀(J(=2 ᐊ GȮJ?2@D90g= Dz9"QЪ"ŝaQ9>Ar5Cb@ vq"M?6qMD0ap͉lhjms0ɬcg~_៞n>y @ x\mw8޿BS}Twf(B&R5scӶIœ{dK21>w?TKdvs= Y:̇d>'}ow]H7%2}t|]g~gdm;ߕ؇tE$$8%VEdg- ѯٜno7wy9fJh%_^W^M|tgvHf.ҝk(of^ s iU(WeIL[jTQ>؁ldoʗ=`Qz݌ ܷBш{G=p<ֶKF[诎]M]Dz nT8} v0Oαl?ίd[$uM]z+tI{a|޷o.qwkp<|L ?`U]רx)$Rldy/qok+K]HJͬeմ4}6T] d6e?Fk@0d5 Zn/'dd48у_O{+h*]V6kIؽl$gk'\@Bf4 ]>kR`I;:+ۧ_,Ɇpeoȥn=wUb9;wOvtI"[!~fwpnxT*:5VCne0ZmJ;# }E9ZѵwBD"hmۉb48!>7gj5FT XzG`@^N$0h!6Ƨ[)"}-)]eQl' fZ7݌LX3o\yK,h18ކ8y0bnmYBzp#"+ I$LјÏomfwyƽ1S1 w1 @+對f$GO\2$HDymԫbɛ=;#gvjV_V-UbvxfB~^H,`96 L,2.1-lX!eVKF848Ԃ! Xt3Z¡2Ze#[}9>DʹBjtzf=LjCbmW׈Ua!, C/`wvhI![U^gFD'^@QT3Oh|mhYtF˽$:,6ia!(,3Lǐ[򟝬DH(sRݨGQ:#*1yE^B͆[ʈ ,}ѫ䥷FG3spK17,Z$wrzeYo]1:z%0 rjqs]& }ky{ft]v5hRvD]pv[V%g~yKwEPZ4.PJ=Bo9%Bep4x?6#pQ G %P0"8PsBXY*5tIp@^lb~{kJY e_=<+{k6W 䩋r>K64$g߇ ^dX& {#:օߚ&e@pLyBNG~BW<~Y8fU~ܔ?$m^}v`!kyotfrhQ3Zڱ7$=1e@"/8h8%i\DsUB(wI݃@[8WM)pG,hߕb' ynPvl ]зk{ 6fŬZx(Xb!߈Q@M.kzP4>(Y3;̘D6=)߇ ?]b!b(u = 7@ 1vD!yMv, V=5 ^{GYZp-*78 r+6 Gfz@m<@ "G2aaR\`;1m_Ρ ;nt*uyAb8Tgp14~A^)lXkLaƠi&ģ<^J,ϲܼt SK::74i+mjuԢX ^JvBXp['2x"(AqKSsgYꀩYm_"1E4הw♸B^/aG"y*"]~ lq :󷇭Ru0. CS['<^KU<:^(g "O:SwPD$O#t%Q&8WVqgyUSI5DyH9/%L0zk>Hh-$qqvU-~kF^j6Mх_svd{V-r|QЯ47ٹYR'm|Joz W2A$0i3\L[ Pԏ97.<_T{i1aIcQW8ENT.GurϱJP}t#곊eѐ-hT%A,OsҘm$i&!_R o$N4ttI//;E߁u 4e\xJ* ]6ٔwo&] RIs m{yfʋԮM=7Wd>gf:oZwy  nK*dKy4{{&0ZvqTxZ}luEGD")Eǻ#%9%HJ2-t"Oǐ:nt(>è6uSXi H@ qX4-"HТHݿZS$F{{';3o޼yyo>^fo TnrlnU x-'#,ǣoͺ=;:D|2x$6=C0G3:W75}\)j9e4$;/̗, |VGтy 9V8JKq6blC8qւ'8:LS~]@lh@;>rd{r*y- iju=ێ5&\rjӶ'Ʃ_hSJ1 5O㡴MS-i-f$bt|zb[߸e̫*):S5[)i95ְWy@+ jNnK>^.qCXt2Ƈ"DUQXa-Nz1ob^rW)u~aG[nspa73|NnwZ)WZ6gًЎ>?qqWKŽTݏEHtǑd\[ h7aj;!]]yJӄZ(d <*wa1vx|ův?pԺ[E2`R=42 #0ݎ; v7$mbɰ$ U[шZ/Xg5HʳB8gՎ! 1J+7&.L*]%Ww-(ʇxĴ#վrk\zs4՘t!`W +H|f3yH!"@Jh}BlXxk[[ ~P7Ј9{/[PFP< sJN^F#p@QBPMfZ8]@\92>~&@,חtr1INR887djF#qꑈ+% ǚp줺SHd}&Vno ֟wwۧ{,zaTn8_Xtb+nXӽ+U {zDvn{{|Eyho{ߨkra@w)PlJ@'f כ`tx(1Ճ]MA-L;Ig`w_wXdc6;жhe+oդCPq1^}[Wz펐­a`}/ 3 :c d0ȅ]y"I$#&յ%?RKهMK{2TnDI`Q4Em*:#`3n V!2eFzkU/|8 * \cN1G-TI`q;\Iwprg No\ġE~-k_?4緊sD=hC!v =T{šBbSKpwbח\yφfښx}3uL8d#((" ,#rx\#(cR AK-Ed[~ _uo,*~`XWDA[UVN()CXYy t& [ Ăh),@B NeBA|r EYžЁbĒսXjfW|w1<Ђ1 ;9tTFl^V/q+'e* %6gDJB202!2=4T0Qhp Y*j8DD].GehC\:Pem|FuoǸ+fs;ЦMY6{!k[1Y stِ>je_^LNލs/_ÐavIƬ z%6 BLޢU'^Զ(}@ Ơ3ѶF%}\Y q%ːhzI4!,Db؉ $ӏOD.fYe8DTĺ(y6=[,)`Ѫ!-p!_6P֦j7^S_k5dž+T}W++2F@b>6f2PC67]m!`KchT_F*B P Ul/C,s"@Dؒ(ɜko͛x9@Qy@/hצL|WM6J~:B ^4,$1ݩHT<IY+H jT't+o o ;ßSڛ~ ЖSzqTW^h|B.?>RvtRtƻSBπ0Ix{b@ѲDkJ*, $q%uNн pbSR}`e1s ;5 5owoqK:͏;OGxG F5J(f*ڻ3{=݀BoE) j4ڽ<[7;~:L@XA+c=2[cnE69erB;Xd*(:mS VN6be4]WT::Rb+:I/֗givzX/ :O^|qԼfڟ/i8J eH.*˖0@0!)_%>85ƻ/8W:Hl_%݋`R^Z<Bh.DW,}?6iEז5*uM4fЦh.f/iGC1GkF9~kK.Y:Sגv^&ckPcu$׵%Mߛl֚,IĶm{39k7u5Dy-_nkw*Y͹)m[Hwf0p$SgYל?^xM=; ӟN`=JuTy|ⵦ ܸzř.~XO61{ۥK콼]ڛd=Y-~y7Еh\Ng$>Ϡov̼ʖo_CjRR\%R U=6μڎʝ*#gF(%Ik?yսX}ȫS_nvB~9i7nk_oR?{Fo;+a;“ޏ ZVAϽtWHPhUV4r"g((Y8Ъ”/jԜn j1VJLM{N =i% {_3VZ=˚ZV*|z_oV^+jmtUM PU)Fj]&YsX3}U,+)L܇ Os@ֺJ$('`ٙo,ѱ 6}UjwbAnX˾4X 2Bb{VQAC-+ho-ƻl#Sh`դG&Z'l:ΪzQ>@']2pR*TehˠolؽzqYU3V|5Z&t+x^JO[s2@sr+)34;A4*kZGe&>)'-AԵ# GPDdM@d6x[lUkY1į^{׉IvH7vJij3y!,DRVDGmTCӢи*~PT(G;3;됨{y?<͒z{)G.j 3ޕHHm{]lohdYf^jRNE`rޫ< VuRv%⍵rS;Qd$pZ^9?-EMKb#lؾ%q(t{2E؇W,֒{<"GM 4 a 0]X_ԹAZ'EW 3q~hQ~Eﶜ~.%nOR)ʞ^M:@2FH%HjI88@J4B&a8KєagrU6̔+#C@$b]6RX6դ;!}PM6dC'X'T|[= @hA!7::RTTy&gLaS(Knl}7G3@,tQAN[M#Fh& ) a=E,RPe-tHsU؜9F/KexV$ h"ujԔdEh,LM-e(*okUr٘4 O32A%$h&EmB=vdr`7*֦-8`iv CQr)tWבyxR`Gógof^mF leC7-W+(mc4Js;tPFm`۞Xv{ ~!ood-5Jqب%O{Ãg:њO.t,2ϝܳeJI-{yK}ɄFΖ'TZl^>j<ں|E?y%%~Jf4X s7SĶ `˸RL$:: s*y,k75>CVݽ=H{DwNi`й %z,1QTmroT"!||V|W"==ț Jx`w yJ"S{F RHD^*fP5aS 5L٣[ײ7T)̀ڎI%sC sؿQ*ϐn>(CԼ4`>y^2a|4) :leQ` r\x,,"դv eytywUf_=br!)1@"1ʈMaKXJ&m14e:6S-<ulF!t`26> 5U,YZj a l]miu%0=HFvdC'PF.?qsꆐYy^K_[ڃoD6XY-XWʔOQdyB0UT#0߀+^SQKʳӀw,hdg|hER̬;tXU t\gBeff 3R)%'{T=z @T9=6q9:Pgn/fHŐ(=A!$ήrpRe^4GU1`Au wV6W4#(IwD^/,❅G 'K9Hvg_2,KoLsLSNJbRrjbZ" zN{<e*tcaP^o 76iska#CƌY1LE@sN/ 1$M5EMW?3JI|;m|&u@1܃<<^9^ʋ&5)7Aヵ{5#<#be肸0PC?i(7 /Z=R(g2zpLO3T8lC淗0e"\dOl~Bl l|PWVh&4wݧ@]_}BH߹xӒ11憄J-fְ/dC~ G7/޿NɾЪ`w ag8#egC&fUMaZ޷C`hgWYj.2g1qvY?fόUEH?r.ǎV sj$.{Ϝ&)UexeYj#gV-agkC;-^XjΞfPsff־dZ (XϚ.\M'Gk<c[@bqxYolgډر&_coֻvb,$uu&܍w]3;?[;mIH /QZтqNCUDZ;KhUztzC❙g{̧?^=wkRMhFjzs_:u4>M&3bc8KIgevIeUzSuEvwW7vP"eJJrZڂ?ks9Tad}lo!&yaZw#:9 4%O= tդzFJQեEY^iZ./7O Ty Ir p~} 2AJR Kai(M#45xN6()L6P{R4;qmJk#Mʧ!N팄<^k C9#k: YMYRLeN:< z_Ɩa;kY@iJO +=צja Η RG\JcV>\3˅5%byǑHdʪE;͝=;eqkl؉ Hõh^MnN$H Îڑ։'dK}ɶ#׺gNk &ᶬƄJ7?F9pgh߷]3~>ZHӔǨi>ݾMdhV"u-#+^ ~l|(|G,R" BƽNG1ʙqyp_+!9s0cPjʺe!}߉1{} v~(xL<0xm6?K05CA,dԺL9$ѧH\Ѯ1!`B^vvx4/NfO'{kuI!^*dEWy NؾuU@+oWI bm_ΎUB͂Sd`&owt,{U۷v8A{rJX:/A܃!yjV/C#.V,Tގ`eB[D"Tf@>Y\\GMNy"~:@.lo=QzԿGn۾;jbb_?ܷ ٓv"FmN#Tf9r6Vzqrաœ\yzP|Nq5\a`OTK)لAn3萴9 2DV3sS"Τhr`&1bcIt{=͹El0Ptk0 Aa1l2${rʃ:Uv+Fzi`<*.K:D+GM+(h~D7 !"ru|a2F@+IdJ? X>qR)7_;B֦` E< (,=Fz횢`s-VEpb{nP#+Ɛs d幈$!@VB C6&'aq,}К(&Č7X x&OkVJ/N؛ӻ>'9t!ҚlLPl g|@hKP ."n~2p7#:du1|g DvO[pd \c P ؋JٙbB\cTI( _TC# /Q1đ'-?pܖ |eRLPn{m2*Hj8 `cOJ;$ebxw7v{~`7S~`=@`E~+Q)^3xm}7ց톃_Ok\d,{6X'+<{eW MY`:~@ΆA _.}+$UKW0>˫@<=VW}@r[ǷiεKۻ$fNgCo%;Vh|/ԋgS-:C0bܵ׳ pl;)5o 4 x`+W+.6{ݕwW&#^6ǞWn| d|#{I}>Ƅ\[ڵUÍΗǖ% ~c ?gM}ۻs=pAݑRpw)wk͕x Ei]+}x~Zvp݆;ǟpNCxVFUp1`q zn# {mnMGtTij_gIJo,,w3mgV4+n}0 bkl#ޏ&5?I) \{g8n,7n"y/X*F X.ȃh|h"A:8[zzCZeE9ʗ Hpp)T?xj77Z[IƤ捩"NR;zcb7"NFn̦5(ԛa89} 5]'N9: PV[Colԭq[_č )0SIѩ í.njbS44q♒Uίح͊}1&n $DAJt=ߧ~-b0؈gtxuU_S6קi;i :! w@$77w(b[I&@{W 6߮~.d5KBbjƭIHBfLDD~K8v*ЍS7/N/{p;\/*ڥ_*dzCUB, $7z"$R j0n 8PQŀA&e-RF C?y?XkB7-,Ӈh͈^!b="J DR*- Tp nKPK@i0>"mUҥ&\,/2+iUbBkX9D|B,0_B;@]6qҁ٥jSi,0Աi yQ`,*g)+`J;TY wc\|:,8 \i nncDdL߳9uWG/~kq Kl{B,$?)7:UT%4skI522OH?ͯ!U$rWQ?9⼷;ߜէ?EMdW,*p@oq;Mwה" 5`o am|)͒5YQcOa&Z#q)b"M Z .>l 9Ka SK-~Lg x4qItE}q>~{gܡG:U?x:Yqir*{C]3פ~jTOC#`0,we4gDgZH߿- ) Dfx[̼yCOmM7)MS .S 7x{*M7$9it)6kF*jm \·-z#x0cOMڠRwXVd yGL `GoSxvO3A*\܍[(٧ƮDulq MDg1,Ip+-5<ܴC$RH8qa`+d2\Ҹ3_ruܸt:FПݏn+tolMm4[K7^Uf C23-E.f.rQW95KB"&~Ymsbo B  +nűS aB^t`k*5equ< ~>Yi:DAWl#xM[I~@ o/9,;w4^9FQs\ 8b'?vl{뒪k+*n@,7۾LATsq|,Creq6@70s7l ilM[q.lχ\ĸ?~ck菇3 ayS/+5Rr%t`YPg:?pL|iI&h~,³{,BL!Z^;+nBL^uPd}ϠcY fCDlP2UTj^WGvx؎vRTR[p,%!xys:̉RKpG"v+540031QN`/y U#969WD._}u'žqPE9@,f]_6kZ*ѓbSFR\P{zD.ݢn6&۔=,\]>(,.ڔ_f3Ʌ_CRVZWɰ[>[9|]?es8s!K/#7Ø.c2v,x]!$ "/ p*L"3o"jD_!`+ Y# +!:/q!@!/TxN!Lx6[m,oR؞44Gx[09`CbbDX'OܼO>}ғ#&KkyRx[h`1l1*LgK6O2y2&^77=L>+$+PSUYlkiͥ`k2#¢6O2 i"{%Di)gx[̼yC7.6:2wR1 PNeTk_W|{cӼ#Qق|3k~-QYٗ⚛;u) #x[δi0HiFǶ>7V1 9|x F+З'b0y6r˓"S)x{1cɂ6 1q3neVcT`nx[̼yC'˸s IR(d'2tvabk=OO! gHv[㋣r/57w#~x[δi0j/?N5fd7A DWx ǁ׶E𵌗F" Wx{qi>IԼ[̢ĜԒ̼ɽL3gR>@ox[̼yCaKƒV޹--Ù5R}ݖ⨬Kq͝5x P 1 Y5"0C{ h֩I.ؙufw-kde-0.5.0/.git/objects/pack/pack-f31eb6ff4c36aeedd6767829846b565d05d031a5.idx0000444000175000017500000001052012226624701025011 0ustar ubuntuubuntutOc  "#$$$$%%%&&'()*+++++++++++,,./001113334466677777888999:::::;;;<==>?@@BCCCCCCDDDEFGGHIJKKLMMMMPPPPPQQQQRRRRSTVVVWWXXYYYZZ]^_bbbbbccdddefffffghhhijkklmmnnoooooooooopppppppppqqqqrrrsstuvvvvwxxxxӲU&hrAgngLh[ݶtBp+ֱQN7oX a6צJ}O$[]e V0=6&LoM ]ӌlPi ޽9Txt2Kj,M33QhG$Dk+Ӕ SMӿepȁp@W]wFe. ;ۙ骋L{f-+ C5,Uh/rxMGDF@9Js+Aȇy"hbGݔ|g Kf$G$@bhT,i\l"$mK|BLaT%|/oʁe2REiݿĻ'.u?ά8/;(`>|>68]ZJ(^Zh4մDn#ƹ)N %aI&mM+vB#Ӽg}8ԓ=4'4ߎwTg4ᠺ8-ZGIjdc97)֥UFQx; z!b!t~ի;&NfOSi=4~~h؈wQ-Z>$l< sYo?̸ALPyAV/f!zi5{SqAHh_ 6]?޵0BA\*T^_YE$C\Vg_.Gb+58yJ`WnƓJr{L><߀!beє7Hd ˅R2h`)#gU\ۘ; fisG3V7 fic7,{i@}dl-p .Ƴ6(~q6q82f2ƴh o]!dtGv7C%Ĭlѽ_wb5`U;a@*"SK&|-iY NTZ8k(^k݉I+Հ|q) {VbĐ R@lndX0Yo!<}֧fEbOxfK:Km I- K4<0`4zb܀MձA%™JdВ*vu^""ȓ6!A7ç4ې%al+)KCCZҎ"D  osM^yCNpo]زZM8Yy6.Yh˵╏9lxѦ%cXì&VLΛچ.i-tMraq \yr4:&)>-`B>eN.`ܞ)e'Tҳ&(NlE^5 P]㶷+F/ǰ_hF/0VMxYطcd!J䊁f^cen/wYσč3>k>c8"eKgSB}H}Kƒ/*caBzc`d=BY^5\ZYt!Y=wR=IUExC m9Klwzc՝jXOy.M՗ 8'5chZ8 U<*M/٠ f D nZ     ^ j1 B fb X 88  E T C p GD _ \TG g n k 7& luc a] D| D f+ o O 0! 6% h p D EF b CW w n oq m gT h f $  b9 n pL p#Ȭ mY h%@L x7 " Ѩ e hH' X 5  oH Y:  p{ f R% Y@ f v e  oEYXvC{ h֩I.ؙ8t ((ufw-kde-0.5.0/.git/objects/25/0000755000175000017500000000000012266616526015240 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/25/1f78a12bd26ce1e1c6c90a98c9504e6dc14fc20000444000175000017500000000041712227656137022526 0ustar ubuntuubuntux+)JMU04e040031QpMN,.)+(ahzq,CγrBU%3پqE0GMu2?TMFjNAj^rAv6{c2 TU =;^&Rnf{ySDYsSSҴxzɹ@2d&3b|d~Ez)z@mzũEeɩPM 2Lny"Ԕ')HKOOg8%$-d5 ,PEʼnz ;C&NG*ofȷ* rutuexfq|zj\7r#np/wg{|y~ Pt \ _ їKLsCB:[`mlV&*y,3SƧAm-q݀&#r0/^wMΓedw; ?p&B$R>Zbdd-*qS;ʂJ[!kD(E*m-X*3ٯ7cA\H7b(so7\7i(J LTuk&}6I%ו4Qb Bh۽40fa?bufw-kde-0.5.0/.git/objects/58/0000755000175000017500000000000012266616526015246 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/58/fedd47671120d4e5f22dfc8e776588eb0032460000444000175000017500000002132012230713421022307 0ustar ubuntuubuntuxrWvsF%5ųeDȢ4VSԔ4hL7@SswEr7/'wҖdWT34 t^{u=ð`w?||..AgGoYȪe1w_|4 vv=zstrey:ﳪγ׃;rs6o >yqcxZeQ:?/󬘅A8~ox{TQWŜ?~YgYQOӗ=pVMif\eRgWaWy:;wt͗9gp_ ޫ;ϗON޼;Nץ]l8gpwook}`,Ywlt?k+v-˪jryW"l(jA{9(j}ҧ@/:w`Uڅ8Ϲ D:\,×H>Y1?v =fi럟)aVs)|>I-ݗ|q/ndY^>ر-`9;],&)u"n)[XI<;UήDb<,E1 /ig?-.r`UO+ 6dfu +W x[{I; .->a]Db~&dJ^bD%Աj6uv*`uˊ˪^VhiK=3,l2)F;~&Bo&ɫyi&nGK)vxY>(MiYE_Fƈ (W#B$fӵrȋ+6[WW{VOKn56$ 2lB;GaH ݅[StB6L % lEl<"ks\ OIPج+s I¨ %'rB!O=-*c&Xt:u Y9j <Ɖs lfb!PUCfl4z;E(451LqN=GΓ̮3=)ow_8/fY|Y%CR9"y7GMKY鼬p` :sdK1s.{pZIA@험„%eu^EQDz /cl*oA6Mn)fwr]_RJt+;gq0/rsYSDw3['OkNJYDzVy}1}CYm%aBK"+7n$˖ n,B%U"<5_|>jh)J" (UDQ'22i7zG,J)նzc-f2idh%I2ʇ"Gʐx[9qH̸a9A'[B;l>&o V3迉~gDhWXQiVe 1nll̰Ù͛)9n*9rP;QBަ73cu*7(L D%YcW)|HI>_VTY`]oN= /mHDA#%KW_W E8 bJKkCfA-*"Rj8ykkUfNNMx"mRcw1zBi%>h/r*oxꂨ0UYPuD|b2SZ!mgVc7sץjpd!B 44 iСnNJck~g6""ng1[[+|ˊ/r=a]!.4s< P"kZRHVrU?zR-A?XfyqF.6eBOY]կ%i۶ >IwBpfAsulfՔz R_TžNј[ҌJ3*ߊa-5V4FmI0껅bcZ#%%) *;ݚor!1Q?#}} =~.{>(g\]Þ.*1vWuBp*BkL<u{dLdRfU1T*SA>3jX`w}-M~I%$*4҈ڵ&+qD+~x1͓EFq`|&TGAh'5gJ+Q$IbeigC9߶u_ۚa+NJ`5fb3 GZ(yr -$p7?}у//ߪ.k$Ⱥ,7۞-Q= 0+/UlDF],AA*DP:TaўU;ml% hw_^Q J0j3jƉ Zզ?n4P h~z|)^-'cĂ_/=F/Sm)LŘ|G:PudS}" \"V<ߐaZx{Vzhm5vTx\/9ܸ1NggJPSiYk̀CYJ ܫf' O& עq-Jb[ Ps&</'cޖyBV6t\7Vr_] *ݟ(Vb:KY7=cڣ|.YsIEH}E|+i?/W)72ΫKXƘ.:%6[bxj>R,{0~IwՏJrmoPgbDّ׋}xCc<NHQCd*M@ls}pd?_e_W5HwMf*֐&Wr@ݦdUa+!7u9DtK x#).Zѧ C̩EdDnoctv;L̢'y-M\Z ܘNgʬ=1MuBcx .G8 4xRQeNltˣ 䞦a$Z1nqpg ͤݦB2W@!6Q-? hCaqKl?u\ivVPBL5Z-? uFi\QNiH8RDUOLOFN\M 6aU T(1_M8 he>c9]D!h-{Q|Laiq?G,S$ 5\e}v˶Kl4vR $cƥ8ϐTg4iR*kBL"óJI[rn ʑ\=a!%s$vGLH6ac9~ Ol&-L>G ~pj1 NoZͪC M,Iz18֙tKTq8-ҌK:@/UdkiέpFFQwy)EJBK$Zp6251Wd^0ܦ~pPx4R&~E̠}BvKʖG  V94۝wPNW%0dOQg5rsM}2[nax:b)zsU41qHk`QX-YfwQG-JyV? m3`Ǘwfҗ&7I[GR*/USI{?`͗-˵Qb볭*2qղ,r\q YX`*_xՃ3s͈D-gH"Gq  W:1`fƔ:S7S2RPOu'l_<>Pq=[9*_>y!pt ^SnjOMaTrNkQ`V!Gs%7N<Ա!*SBp/ 3`$ kv)Hctx9lגd)^$M.9?Lז$uY(b2*O+m]@ yrT%qNa9rQs#gp}XoS" ["]tHn*;)NZXƟG]"Ww8[Pd؈MSi74qjHM5ӾQԠRD@,ގ.[Uzǻ*y;tAyجͯ1-K=PDS"$="ἒvT-Mᓸi UOVz E|sÚ Ð~u߯pޯ5}q:j"]T LR %Yk0kE) b (=c@QgZU7*\H*/yaG|- NG?:W9/X׉RvS #P(Ai1QJñ3 kIZvNj~+~Ŗٯ1#ýnBd2~]Y2m@}/< 51˱t$`^YzN<}hT-j3#95(|†8ʧEVhJ^I2/;YUpQ j~LjL@Y8ǠN 6̟:An{vyUH~ -y(|'ɺX43_rĪ3[7\+SDw4ˎ=bhjw=C43W*I1z?=*o*ͱk|nhno-[w$u {G2)(+ ֢!mqm\r$4nt\g]&պ//K^q\œ1so^sRͿژJT=&>9y@|%@H|r9Iⴜ7zv+/ؼѱOT"ϱ1.. &4S%Pd^~?'+Eʓhr)Iֵשh1 g:kSi]$ tiI7Ι- 0F%PáqTt}?(TRg񝅻%qy DP/#aoRbџKٲ7;vzZ#Qha=ǖ*(9:spֺԋ<8~4㛉q*vCS<9TEK:*o6ƫW5fz4͠ߔh|G7=eC^M| )X>nbfK5 )$}B@@ټb &xS7vq ?}/1t}jun,#M".E[<&ys^U .fj <+Oh"KR]5;aʧ"ӳ[KFfUYd`j ->1i{K#@y]*f䣪'W>GbM͌XU\Q@cJSRr_C [TD`eYĪAdG;ypomґJ:A]rt橜`գ_;koԼeb>ufw-kde-0.5.0/.git/objects/40/0000755000175000017500000000000012266616526015235 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/40/6e71f21e07cf836bc067cf6ec493560d826ced0000444000175000017500000000211612231123021022432 0ustar ubuntuubuntuxMo7{'(ҫ.@ C!kF+R!k[r* r*u9,z],7833Xȃ_|`WL)í't |,`)d'悘?EvBM's24ˉ,vo$iHbX8QD$9j^&iX \0Rܢ D=XN *Jo$'Hnd^,6(uAhJ-k8n<[ZgwBk/\-/p-KP[ SPJaW49gp~U$E\Y~'p&+)eŨC})8B p z=Ib"LNvgY>$lP4dނXnmۥ_{RNzZܘbDXg;E͹\f? q\S巹T`khMEމ7JLou ;mmn~|+;A7[;1͍k'mQS?*j>tb/V@1R9-^w{ǂ];qmҩ)pm&m՚ԫ7*{mB'c {n&OM-enњ^;_{{㜏mDSEfBx?0hOaߵb/L@mB YH~HyyzMsQ=PV/fִ"p8x<7v%N}S;Rbufw-kde-0.5.0/.git/objects/d0/0000755000175000017500000000000012266616526015315 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/d0/f2888314ba472cb055e0aae5f10b1b6e2307c10000444000175000017500000002130712230775031022403 0ustar ubuntuubuntuxrWZO 1cSޝ{~HƕGȦbC՟޾b٢|_Q8N̳Y\gR.aWy9zG&&oG_K򄐾,?aS4tE_eE![NppϿ2[7:J}1dp=_ ޫ%z7.ymX& V^\Dx/oZʙ}VbQG?.1$)J ~b%]~|p5/&s ֿ@S¢XRe>MY^4ri[fE^?=ܳ-`9{]wW,&)"n')[XY>;UήEj<4媘lW_j繈?+.s`Uϸ/u]s" (^K~KѼXK Y:X/ή%]sYMUL2oTlVLm8L*WILjy*$W [IۢyR:E%d24Y}=:NY$Rga!U696 Q(K.LW[ {w!qfIEWUٔr!:6`)OG:XU#5˳f-YXB/@vy 7?DƄ0F|- %@d7.`[T,ȯ"cDP\MՈv-#bJ,B%w6Օ'G^%:gѭ[ I9Y5œMh'W(9_b nx}kRƜyVP;3hM_na0L4[/ 5R:ǐ ;Nq/#]Vl]~ݘ^Hy3TQ@bbZKLs̿% -dL?co'5,Myi) Q(^BN!kQfD+fExymH5$4wדKXNT_"Ud/rthǖ!P,7u\DVF&u8u+ ʴjtD[<{׸ J3l^/w}e^i=KhPq&f{uIAYD92 fp<\m۾ %|0x<gE;Oy}0)YvB:Jp׋#[%rZYg傦6VXf)09k|y{`'{%NADBx3uԚnM>-֔h: U!HLaX;3,?3}3m'ЍR]]$`jb8JBdԻv&N@}NIh˸$:e2E>Q/*rUL-"A]<ec}ƪv˜;i 68& -mJ7xp9q+E' Ʀ;VU8LQ`MX_3u{i7jXAPϋx,#dRg1B1Pc T[qd%A7 VQ<EPqg7o Uiݦ^z.XOA:S%҉& m0֦0dBh(EI`#mWJ˯<Z TV0̨>קjpd!E%47JBzjn skݭ~g&# dng1KZZ\:h_Iu+0|I,woqiT 7БEНTψ 5p#W񻷔r?&#ϋsUvy/Ϣ J,[EFAj^F 4 }7g;T9ʑ%O l ;2Y&7ˢIΞ}䭖%ϑE>*IKR i{T]\8.4=xC%|oOY"O.C< ~fCvEu*\/Q0b\QGP#RG"ʵC|7mT49o\xSϸ%ݜL_)"Y4s-q.Mq=ku2uv2~ (AmƗ(SэQškfd n,U@ ét7:&G$=H-4nuK~OmnRTS{JT"cx֑>6o3ٻpy;ɖ9#ХeLsT-kM=Kx9ǟp Њ\1f)r݇EN~L8$)FyK.@9z3GT8U#pJZ/,"itdCYlws;7Y5݇ꤙd'Sr޶;eR޴pЇDK x#j)5>:ѧC̴EdDnN_{+9gH7 *GE|MϕX x Zma3© ‚Qoue7g&f6UHRa#VtLನ4$DRĬR\.G@U}WQMqF+m5n<0T 5,8LԈݥOIi-8vay^٥U'I2ΓQcĂgnq?(䊆ͬ,pL'rjV-:hҘg خ*슮>]'{\߿3-eXHHЮ7,Q$$g~2[?M@Ǒm&v @yS4)Ikgx%Ŵ,HwzpR_wM%%B;y|ñcʹX‰ dKK%`)4 |kGIq (\C/) CR<0r Bh78Aq66-Ip# V=4PZ1T0rWIo5sM/2kv0=Tv#s]51wHlq<-Z~÷oifqm;$ֿVC ݥ-v1?%6.-96E1I ­*>ˎ7մ]q|u:` mŘmg' S 4k R!zW)'*/c5-j2f8!(yE9T.svQН:vn3nFZl535~x(Rw~ _}]Hm#qsQ1rym.놏+Uy*a2Ў4< 1VNĠPXu3ſ$|O Mx\I;vhzx ͳH{@tdP B7kX̝#0mfۺG-׻W $9E&FFn[Z=*̱~^ |Nj 9) IRIO?"BDJ5uf;ѕpRM#تYD[ޗrD3iRN<{'ßsJn~M&RL)d^#% 3gblvUU?|E# P5eok_ M5t1c0RI]89j?DJOW1uʨ`}9o; Ma[esnwP?6~R%#i{?EIZc\"_0ER Yj=I[27T=gs6 Pգ{.-'F?~Q =8:4E /{mAD'/If7>pQĄYUU T u4}.`XɵL@Oo8̿ Yu[8$P^=3DvUWyS?GF黝Em&pt#.JW8oȟBJa+esN-ręn n"E+wKot OI?\|:92pS@t""pEu Se4E[6f3 VT>[u 22K!_79_!߉z!q:&j.#]T zLڅt%Yk^E) b(@] fZ[V7* m^,I-nz%Trhbmʵw[o_#,&MU#Gd4:=Tф;b՜XwI'<'Ҩ_7`; :xrC4!|)@nHfLuRߩ65M4E, J7cyUeh!u<\oUn@z yu4d;o fngjG/H{<~Lu(wB&;܉,=Xdq0, 맼f\Sf~KJR 16Ixl$z{K3ޝto r(mplj)5ΣwЛ4%BM66{ZYw#E/inEcZM?d/AZR:Yz6 /( 8 89钣;~*O\|Wm$&ve=O\Pb:wh~$?Gd^vZ9֘6pA=C$?uR]RHEl cb'[P fOu7hgU\.X۪sYL/;J 5\;YPw.-L^֠b3źwK[*(}R~WlDC[58IitcRs_^:JޕKOZL(ν{cy,Aox;BsRdV7g w>iOWI&UoUݎ@S>47Gva㙪T9l - T4yE7@}n0;I<Ť/paf/vcQևMmj*oB}'Zg /0r) 2)]ZҠZ zj CLfi>@*{>Ҏj!@G*)³cs ˜P#aJG!Q]cK7HzZ#vr"L<Ȓ?ۆ1y,܇9~/^}{C <8vq*v"Dvc<9TۂeS.NLnĮƫWBfz4;8ܔh}G>ec^|tJh*Dv;ia$SbqxH(hWDMx iBR'ndRF?X'ڒE\8 6F M:f, 0]845ӣ#~ iTw;+O\:x~˥mG"!cufw-kde-0.5.0/.git/objects/f4/0000755000175000017500000000000012266616526015323 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/f4/904c4b0ee14c2f79001f41ac72af0a378549530000444000175000017500000000166212231123022022255 0ustar ubuntuubuntux+)JMU0421a040031QpMN,.)+(apO͡m*Re?&I݂L,(((OI-K.(`Hٻd%-=_\i۰(`zaó/nLX̙nUZ6OWϝSghܷw4e KWۑֽӾi>ƨ U_6Afk.o *,H|# 1' &:0? PmQ\AzDK/ܚ_d0oFȣW%2F r2RSS2K17䥿].%NޞDWpɏV2p?3su0Ueк ǹS?70nwBEn >2hdNw^?yz^i)`p?i|F< 3٣m5***Iwз;JSxriW1d5 ]L'_gFR6k^ 7}0ߊH7'(za`\n'T?g winARWL`Y>l$aRmE 3lf>op(A#4 )+LIO-+d`M`dBG^ K ;],wf4yPL*7mǪ8zOVy GJKJa\,U4F6n3_~xX BM}a$Mrd/\YQf^:$C־kcUyNJ)h2>x'g΋J* E[<ћ,% a nO[ųwwJJRRK s[nx&0O^엍U"#R˒ߘ <ufw-kde-0.5.0/.git/objects/11/0000755000175000017500000000000012266616526015233 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/11/c71023a7021873f2ffe648987f8fc267b594a90000444000175000017500000000063112230650576022171 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS3v4LLTߎ8o5+ו Y SVpqȍ"şgv]rU7@22s~d`.mcg>+SbH41dp6lvە]]H)H-bm~qЂoϞfeɹ ҏ߱j]\TËN(M^訥ufw-kde-0.5.0/.git/objects/00/0000755000175000017500000000000012266616526015231 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/00/e90b24bf81cce9e336be4612917e73327cb45d0000444000175000017500000000300512251511525022350 0ustar ubuntuubuntuxo6w_[N.0l;5PlkfQ<[Z"]rldݺkP F[.G{R$2ϿODV@D@D @Sc@fk[>l}(s,P K8yօ2˃< #'_'gcC6$kZx`kz1'}oxNj}4ٵ[&Mu2i/dr xWA,vY%dpg;sEL4'{Q^CȚ 4֩Ltl#0xY/!.Y0C +\Rb- RJR2a놐X%%A n&GңH<ZbOؠE.K[CfCs '°o?}@{;[C+ 鱍^J` l`='Jk[u(Z5k댔(8n]!O`]p{3BT,$GxZ@7 w!'8$%a#D,aL1׸ }_QQFFr2EI9JUtYZRmJ!uU3 ׵'TVy{1TjϘ&38Ѵ,iu6b(B*3'FðJ`p56xh;*&yv/_/M٪y$1=԰xgar6 d[>2&LLOӓ|o5-Ŏz^e!AIIq;5]p9؈;n))̀( 4]ٵw$Im 4]3P)oR*O#Z3Zײo!(. #y2/*Qj#1 JAHU]qAGA٧ U.38/Ų_ri(O θp"IvY%CLZe1(ֳa0{.׈ 5zq.42Cl|>X >,i>!P NdɩnQ}4/_-._Z3ޢ{E9MyYg[|K rISÇfve0~|@eO H6X,%d߬7kaӒ&MsOqibJ]&8ڸߓpiܬ`ŔOM&C39. Y)hv ڊ%߻+'~A|4}w^b Y_;b@ufw-kde-0.5.0/.git/objects/5d/0000755000175000017500000000000012266616526015322 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/5d/f66f30f2c7700bfa62d2065c37d5de1cb29dc80000444000175000017500000000024512230775031022574 0ustar ubuntuubuntuxA 0E]$ͤi "kr&bS7xy~\"]p;-[bdF!ƌ&j"BD E?bÍκɳ6&6FLznk,M ZB($zc<FU]X]sےa?R_wKBufw-kde-0.5.0/.git/objects/81/0000755000175000017500000000000012266616526015242 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/81/fe03efe6e5292e14861b6b5d6e030d7bb74f580000444000175000017500000000056412230713421022450 0ustar ubuntuubuntux+)JMU01d040031QpMN,.)+(ax/y|鋇j><;:TejEbnANnzj^jQb^A^:C4󅆫o4vf=# yӛt5^xQ.-.95rΛmͭh:usrtN*k9g&{i]M.ZyBN%3/%B/%?9)??!]tA+O?+Ox`&>ufw-kde-0.5.0/.git/objects/3b/0000755000175000017500000000000012266616526015316 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/3b/4d6046069e2b88b87c7c0050e857a586d528000000444000175000017500000000115712230571510022065 0ustar ubuntuubuntuxTM0_a=æ+e&%V݋\AUU;NlP~yfQFw>K w~co'x,1įRf"пZ C%6g\=1qMj-IJ 1xF85h{JxN є8bH] ;m6,*?B7!%] gZRO$X>ǏJ Q_̅ðɐffܠqVq裯w>obOFT1̜;ozt³TFJN'+VVe۰zo*˓LDXh:qs\7%u]6or%ޭ ʠ17Aq:oP#1T=_ǺAo ƨ U_6Afk.o *,H|# 1' &:0? PmQ\AzDK/ܚ_d0oFȣW%2F r2RSS2K17䥿].%NޞDWpɏV2p?3su0Ueк ǹS?70nwBEn >2hdNw^?yz^i)`p?i|F< 3٣m5***Iwз;JSxriW1d5 ]L'_gFR6k^ 7}0ߊH7'(za`\n'T?g winARWL`Y>l$aRmE 3lf>op(A#4 )+LIO-+d`M`dBG^ K ;],wf4yPL*7mǪ8zOVy GJKJa\,U4F6n3_~xX BM}a$Mrd/\YQf^:$C־kcUyNJ)h2>x'g΋J* E[<ћ,% a nO[ųwwJJRRK ? X*m*ݦ"2`$\7~YSBs>Fufw-kde-0.5.0/.git/objects/2b/0000755000175000017500000000000012266616526015315 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/2b/f3ca52d17a80051b35130bee873c703970ff610000444000175000017500000000114312230650576022261 0ustar ubuntuubuntux}n@9)|SPY>$H(P)=qVqvub"P ) Z\7b_M]wό">?<7耜*]D6)ԟ Dc;/g>g?Te΄uwbN}8N)OF^IdDM0& <:G>YTz?#ADf2E>ԓ8S2) Q6nhڴPd@eתbWMo9s3z'` 5A+a+GڽݲPSGĄiZeLSg3~-A)BY)yqD*2jʓ`VKTظjS|_OlFlLDgnnUI[uXm׀qy԰ o P)b{E IQG~Bɾů+[\jk؀?A"zjZމCi!to Qb?dbpԑqܪ-܊?=6X,Z+Wova:V\J_ۨ*zd}ӴZ+(ŽƑ-'MT9Bq(@app?1㖳/ufw-kde-0.5.0/.git/objects/cf/0000755000175000017500000000000012266616526015402 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/cf/83517711cceac754a8117108098b2ea9477fbf0000444000175000017500000000062712231123022022356 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS34& n3eHYA. o,ROSFn EP!. O==ݯ* #sk>_0eC('3EYYt%r)H)H-b~!TpҊެ\n.Ϻ/<'Ad'2|GAqMz.V`Fܝufw-kde-0.5.0/.git/objects/53/0000755000175000017500000000000012266616526015241 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/53/5624f7f9430ea642ca68906c260cf96c8019040000444000175000017500000000056212230571510022067 0ustar ubuntuubuntux+)JMU0d040031Qp  fXwuόov mטU웘Y\RWRQ°|WwZHO_''? ϝaʷLfzK#f>LIFb^zO~:Q(Y&qwϬo)'i`*M-.NLO-+`01u?R~;7@}TY+6槬T㺑!t{TE?=Sgϫe+o'ee%\@|W"*LŐhb ) mv;4D+"SZĠ*_PRÇNr8{DAvr.ÃӪN,(d|pfSmPufw-kde-0.5.0/.git/objects/2a/0000755000175000017500000000000012266616526015314 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/2a/58af68aea4ad07a1df89e76966903e3205481f0000444000175000017500000000200712230650576022400 0ustar ubuntuubuntuxo7;F"C-@ ⡂P3c@"P$܁ dGwX+»LkcN=4ҞHFAV @{)ra\I|D'ufw-kde-0.5.0/.git/objects/e7/0000755000175000017500000000000012266616526015325 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/e7/0b39b0e6175e209e4e1f1ecdf4b17a1451db5a0000444000175000017500000000116312231123022022544 0ustar ubuntuubuntux}TM@_[/EBn[AKu=,m:4)36-\$TKN6Jo~>;Ⱦ;ȩs˔HV7ߛ39(zh̓ǂԙpbNXP7Nu _ ~ XGG{5t$HM3S3'z2W X(ʬ/7>m.r6WCUfo^suv({7w, 0CcvzzWwz;Q `j g%(EY(K$HE_qE\9ԧwIR,V:ƀH;km 9E*즖PlLXgnnmu5`e^Pv)-I"Qe 6[<]۾(zUE+Sɀo钋@z\6LCnt2x]30Ƴ}qG5 _|& <ݽGQ;kS\}ăQ4ZcЕkF,;AP[/ͻ/#SB3HxYK)c < ܜ?=qufw-kde-0.5.0/.git/objects/info/0000755000175000017500000000000012266616526015745 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/info/packs0000644000175000017500000000006612255446553016772 0ustar ubuntuubuntuP pack-f31eb6ff4c36aeedd6767829846b565d05d031a5.pack ufw-kde-0.5.0/.git/objects/87/0000755000175000017500000000000012266616526015250 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/87/e0d0f01202f209eb02eba80265fcf6f88774660000444000175000017500000000023712230571510022276 0ustar ubuntuubuntuxA E]sٛ 1.{ h[x707qwhښzrBCɱhbܠd7c fHBGY,DG~[\#õ. _YkN`l@4YF. SuZ&aEufw-kde-0.5.0/.git/objects/87/e69f6d37e32983c018ad5f0d624fc27b2a23d10000444000175000017500000000041712251511525022366 0ustar ubuntuubuntux+)JMU04e040031QpMN,.)+(ahzq,CγrBU%3پqE0GMu2?TMFjNAj^rAv6{c2 TU =;^&Rnf{ySDYsSSҴxzɹ@2d&3b|d~Ez)z@mzũEeɩPM 2Lny"Ԕ'+SbH41dp6lvە]]H)H-bPX})c'f = ;9i'~~sS2T8~ B禗ufw-kde-0.5.0/.git/objects/4d/0000755000175000017500000000000012266616526015321 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/4d/361c78b8057006219512ff836fd56f4de478330000444000175000017500000000166312235071501022101 0ustar ubuntuubuntux+)JMU0421a040031QpMN,.)+(apO͡m*Re?&I݂L,(((OI-K.(`Hٻd%-=_\i۰(`zaó/nLX̙nUZ6OWϝSghܷw4e KWۑֽӾi>ƨ U_6Afk.o *,H|# 1' &:0? PmQ\AzDK/ܚ_d0oFȣW%2F r2RSS2K17䥿].%NޞDWpɏV2p?3su0Ueк ǹS?70nwBEn >2hdNw^?yz^i)`p?i|F< 3٣m5***Iwз;JSxriW1d5 ]L'_gFR6k^ 7}0ߊH7'(za`\n'T?g winARWL`Y>l$aRmE 3lf>op(A#4 )+LIO-+d`M`dBG^ K ;],wf4yPL*7mǪ8zOVy GJKJa\,U4F6n3_~xX BM}a$Mrd/\YQf^:$C־kcUyNJ)h2>x'g΋J* E[<ћ,% a nO[ųwwJJRRK y4u߾ ~=rfFu$eH)ovdg27|k4ufw-kde-0.5.0/.git/objects/ee/0000755000175000017500000000000012266616526015403 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/ee/873d1624b70254b2c9e38c1ac806cee3096e0a0000444000175000017500000000063012230755776022446 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS34& n3eHYA. o,ROSFn EP!. O==ݯ* #sk>_0eC('3D\.sjSܘj?H;F@d3Rs Rn_dzjDAvr.C'-yrs~z/}b}Zufw-kde-0.5.0/.git/objects/28/0000755000175000017500000000000012266616526015243 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/28/915045276613c416d941073c900fbf798eab590000444000175000017500000000020612230755776022026 0ustar ubuntuubuntuxKOR041ePVT/-.OO+SHJ,Rq rt rVHHKQSKMU+JVGpK3 T"]CBڡ ZZ 0ҩRY_VW_U3-ufw-kde-0.5.0/.git/objects/1c/0000755000175000017500000000000012266616526015315 5ustar ubuntuubuntuufw-kde-0.5.0/.git/objects/1c/6b56e57394b4ab3bb3eabde32293eafbca8dfb0000444000175000017500000000063012230775031023141 0ustar ubuntuubuntux+)JMU012g040031QK,L/Je0[zY^J ܥgӠCC<3]b3۽b|g5A8&fdT0,hո@&{ݽ sg-EdȅOo}Sꓟ`qT7JI3[,lkXMM|SS34& n3eHYA. o,ROSFn EP!. O==ݯ* #sk>_0eC('3EYYt%r)H)H-bm~qЂoϞfeɹ }꽿Xa6ufw-kde-0.5.0/.git/description0000644000175000017500000000011112266616522015614 0ustar ubuntuubuntuUnnamed repository; edit this file 'description' to name the repository. ufw-kde-0.5.0/.git/ORIG_HEAD0000664000175000017500000000005112270515626014615 0ustar ubuntuubuntuf3d815e8dec37988f67376a91149621699fb5ede ufw-kde-0.5.0/.git/hooks/0000755000175000017500000000000012266616522014500 5ustar ubuntuubuntuufw-kde-0.5.0/.git/hooks/prepare-commit-msg.sample0000755000175000017500000000232712266616522021422 0ustar ubuntuubuntu#!/bin/sh # # An example hook script to prepare the commit log message. # Called by "git commit" with the name of the file that has the # commit message, followed by the description of the commit # message's source. The hook's purpose is to edit the commit # message file. If the hook fails with a non-zero status, # the commit is aborted. # # To enable this hook, rename this file to "prepare-commit-msg". # This hook includes three examples. The first comments out the # "Conflicts:" part of a merge commit. # # The second includes the output of "git diff --name-status -r" # into the message, just before the "git status" output. It is # commented because it doesn't cope with --amend or with squashed # commits. # # The third example adds a Signed-off-by line to the message, that can # still be edited. This is rarely a good idea. case "$2,$3" in merge,) /usr/bin/perl -i.bak -ne 's/^/# /, s/^# #/#/ if /^Conflicts/ .. /#/; print' "$1" ;; # ,|template,) # /usr/bin/perl -i.bak -pe ' # print "\n" . `git diff --cached --name-status -r` # if /^#/ && $first++ == 0' "$1" ;; *) ;; esac # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" ufw-kde-0.5.0/.git/hooks/pre-applypatch.sample0000755000175000017500000000061612266616522020642 0ustar ubuntuubuntu#!/bin/sh # # An example hook script to verify what is about to be committed # by applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. # # To enable this hook, rename this file to "pre-applypatch". . git-sh-setup test -x "$GIT_DIR/hooks/pre-commit" && exec "$GIT_DIR/hooks/pre-commit" ${1+"$@"} : ufw-kde-0.5.0/.git/hooks/update.sample0000755000175000017500000000703312266616522017173 0ustar ubuntuubuntu#!/bin/sh # # An example hook script to blocks unannotated tags from entering. # Called by "git receive-pack" with arguments: refname sha1-old sha1-new # # To enable this hook, rename this file to "update". # # Config # ------ # hooks.allowunannotated # This boolean sets whether unannotated tags will be allowed into the # repository. By default they won't be. # hooks.allowdeletetag # This boolean sets whether deleting tags will be allowed in the # repository. By default they won't be. # hooks.allowmodifytag # This boolean sets whether a tag may be modified after creation. By default # it won't be. # hooks.allowdeletebranch # This boolean sets whether deleting branches will be allowed in the # repository. By default they won't be. # hooks.denycreatebranch # This boolean sets whether remotely creating branches will be denied # in the repository. By default this is allowed. # # --- Command line refname="$1" oldrev="$2" newrev="$3" # --- Safety check if [ -z "$GIT_DIR" ]; then echo "Don't run this script from the command line." >&2 echo " (if you want, you could supply GIT_DIR then run" >&2 echo " $0 )" >&2 exit 1 fi if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then echo "Usage: $0 " >&2 exit 1 fi # --- Config allowunannotated=$(git config --bool hooks.allowunannotated) allowdeletebranch=$(git config --bool hooks.allowdeletebranch) denycreatebranch=$(git config --bool hooks.denycreatebranch) allowdeletetag=$(git config --bool hooks.allowdeletetag) allowmodifytag=$(git config --bool hooks.allowmodifytag) # check for no description projectdesc=$(sed -e '1q' "$GIT_DIR/description") case "$projectdesc" in "Unnamed repository"* | "") echo "*** Project description file hasn't been set" >&2 exit 1 ;; esac # --- Check types # if $newrev is 0000...0000, it's a commit to delete a ref. zero="0000000000000000000000000000000000000000" if [ "$newrev" = "$zero" ]; then newrev_type=delete else newrev_type=$(git cat-file -t $newrev) fi case "$refname","$newrev_type" in refs/tags/*,commit) # un-annotated tag short_refname=${refname##refs/tags/} if [ "$allowunannotated" != "true" ]; then echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2 echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2 exit 1 fi ;; refs/tags/*,delete) # delete tag if [ "$allowdeletetag" != "true" ]; then echo "*** Deleting a tag is not allowed in this repository" >&2 exit 1 fi ;; refs/tags/*,tag) # annotated tag if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1 then echo "*** Tag '$refname' already exists." >&2 echo "*** Modifying a tag is not allowed in this repository." >&2 exit 1 fi ;; refs/heads/*,commit) # branch if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then echo "*** Creating a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/heads/*,delete) # delete branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a branch is not allowed in this repository" >&2 exit 1 fi ;; refs/remotes/*,commit) # tracking branch ;; refs/remotes/*,delete) # delete tracking branch if [ "$allowdeletebranch" != "true" ]; then echo "*** Deleting a tracking branch is not allowed in this repository" >&2 exit 1 fi ;; *) # Anything else (is there anything else?) echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2 exit 1 ;; esac # --- Finished exit 0 ufw-kde-0.5.0/.git/hooks/pre-rebase.sample0000755000175000017500000001144212266616522017735 0ustar ubuntuubuntu#!/bin/sh # # Copyright (c) 2006, 2008 Junio C Hamano # # The "pre-rebase" hook is run just before "git rebase" starts doing # its job, and can prevent the command from running by exiting with # non-zero status. # # The hook is called with the following parameters: # # $1 -- the upstream the series was forked from. # $2 -- the branch being rebased (or empty when rebasing the current branch). # # This sample shows how to prevent topic branches that are already # merged to 'next' branch from getting rebased, because allowing it # would result in rebasing already published history. publish=next basebranch="$1" if test "$#" = 2 then topic="refs/heads/$2" else topic=`git symbolic-ref HEAD` || exit 0 ;# we do not interrupt rebasing detached HEAD fi case "$topic" in refs/heads/??/*) ;; *) exit 0 ;# we do not interrupt others. ;; esac # Now we are dealing with a topic branch being rebased # on top of master. Is it OK to rebase it? # Does the topic really exist? git show-ref -q "$topic" || { echo >&2 "No such branch $topic" exit 1 } # Is topic fully merged to master? not_in_master=`git rev-list --pretty=oneline ^master "$topic"` if test -z "$not_in_master" then echo >&2 "$topic is fully merged to master; better remove it." exit 1 ;# we could allow it, but there is no point. fi # Is topic ever merged to next? If so you should not be rebasing it. only_next_1=`git rev-list ^master "^$topic" ${publish} | sort` only_next_2=`git rev-list ^master ${publish} | sort` if test "$only_next_1" = "$only_next_2" then not_in_topic=`git rev-list "^$topic" master` if test -z "$not_in_topic" then echo >&2 "$topic is already up-to-date with master" exit 1 ;# we could allow it, but there is no point. else exit 0 fi else not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"` /usr/bin/perl -e ' my $topic = $ARGV[0]; my $msg = "* $topic has commits already merged to public branch:\n"; my (%not_in_next) = map { /^([0-9a-f]+) /; ($1 => 1); } split(/\n/, $ARGV[1]); for my $elem (map { /^([0-9a-f]+) (.*)$/; [$1 => $2]; } split(/\n/, $ARGV[2])) { if (!exists $not_in_next{$elem->[0]}) { if ($msg) { print STDERR $msg; undef $msg; } print STDERR " $elem->[1]\n"; } } ' "$topic" "$not_in_next" "$not_in_master" exit 1 fi <<\DOC_END This sample hook safeguards topic branches that have been published from being rewound. The workflow assumed here is: * Once a topic branch forks from "master", "master" is never merged into it again (either directly or indirectly). * Once a topic branch is fully cooked and merged into "master", it is deleted. If you need to build on top of it to correct earlier mistakes, a new topic branch is created by forking at the tip of the "master". This is not strictly necessary, but it makes it easier to keep your history simple. * Whenever you need to test or publish your changes to topic branches, merge them into "next" branch. The script, being an example, hardcodes the publish branch name to be "next", but it is trivial to make it configurable via $GIT_DIR/config mechanism. With this workflow, you would want to know: (1) ... if a topic branch has ever been merged to "next". Young topic branches can have stupid mistakes you would rather clean up before publishing, and things that have not been merged into other branches can be easily rebased without affecting other people. But once it is published, you would not want to rewind it. (2) ... if a topic branch has been fully merged to "master". Then you can delete it. More importantly, you should not build on top of it -- other people may already want to change things related to the topic as patches against your "master", so if you need further changes, it is better to fork the topic (perhaps with the same name) afresh from the tip of "master". Let's look at this example: o---o---o---o---o---o---o---o---o---o "next" / / / / / a---a---b A / / / / / / / / c---c---c---c B / / / / \ / / / / b---b C \ / / / / / \ / ---o---o---o---o---o---o---o---o---o---o---o "master" A, B and C are topic branches. * A has one fix since it was merged up to "next". * B has finished. It has been fully merged up to "master" and "next", and is ready to be deleted. * C has not merged to "next" at all. We would want to allow C to be rebased, refuse A, and encourage B to be deleted. To compute (1): git rev-list ^master ^topic next git rev-list ^master next if these match, topic has not merged in next at all. To compute (2): git rev-list master..topic if this is empty, it is fully merged to "master". DOC_END ufw-kde-0.5.0/.git/hooks/pre-commit.sample0000755000175000017500000000325012266616522017762 0ustar ubuntuubuntu#!/bin/sh # # An example hook script to verify what is about to be committed. # Called by "git commit" with no arguments. The hook should # exit with non-zero status after issuing an appropriate message if # it wants to stop the commit. # # To enable this hook, rename this file to "pre-commit". if git rev-parse --verify HEAD >/dev/null 2>&1 then against=HEAD else # Initial commit: diff against an empty tree object against=4b825dc642cb6eb9a060e54bf8d69288fbee4904 fi # If you want to allow non-ascii filenames set this variable to true. allownonascii=$(git config hooks.allownonascii) # Redirect output to stderr. exec 1>&2 # Cross platform projects tend to avoid non-ascii filenames; prevent # them from being added to the repository. We exploit the fact that the # printable range starts at the space character and ends with tilde. if [ "$allownonascii" != "true" ] && # Note that the use of brackets around a tr range is ok here, (it's # even required, for portability to Solaris 10's /usr/bin/tr), since # the square bracket bytes happen to fall in the designated range. test $(git diff --cached --name-only --diff-filter=A -z $against | LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0 then echo "Error: Attempt to add a non-ascii file name." echo echo "This can cause problems if you want to work" echo "with people on other platforms." echo echo "To be portable it is advisable to rename the file ..." echo echo "If you know what you are doing you can disable this" echo "check using:" echo echo " git config hooks.allownonascii true" echo exit 1 fi # If there are whitespace errors, print the offending file names and fail. exec git diff-index --check --cached $against -- ufw-kde-0.5.0/.git/hooks/commit-msg.sample0000755000175000017500000000160012266616522017757 0ustar ubuntuubuntu#!/bin/sh # # An example hook script to check the commit log message. # Called by "git commit" with one argument, the name of the file # that has the commit message. The hook should exit with non-zero # status after issuing an appropriate message if it wants to stop the # commit. The hook is allowed to edit the commit message file. # # To enable this hook, rename this file to "commit-msg". # Uncomment the below to add a Signed-off-by line to the message. # Doing this in a hook is a bad idea in general, but the prepare-commit-msg # hook is more suited to it. # # SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p') # grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1" # This example catches duplicate Signed-off-by lines. test "" = "$(grep '^Signed-off-by: ' "$1" | sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || { echo >&2 Duplicate Signed-off-by lines. exit 1 } ufw-kde-0.5.0/.git/hooks/post-update.sample0000755000175000017500000000027512266616522020157 0ustar ubuntuubuntu#!/bin/sh # # An example hook script to prepare a packed repository for use over # dumb transports. # # To enable this hook, rename this file to "post-update". exec git update-server-info ufw-kde-0.5.0/.git/hooks/applypatch-msg.sample0000755000175000017500000000070412266616522020640 0ustar ubuntuubuntu#!/bin/sh # # An example hook script to check the commit log message taken by # applypatch from an e-mail message. # # The hook should exit with non-zero status after issuing an # appropriate message if it wants to stop the commit. The hook is # allowed to edit the commit message file. # # To enable this hook, rename this file to "applypatch-msg". . git-sh-setup test -x "$GIT_DIR/hooks/commit-msg" && exec "$GIT_DIR/hooks/commit-msg" ${1+"$@"} : ufw-kde-0.5.0/.git/index0000664000175000017500000001152312270517166014412 0ustar ubuntuubuntuDIRC:R⛖R⛖Vx7%p??,Vm%f .gitignoreR⛖R⛖Vy,_hմ?L͇(AUTHORSR⛖R⛖Vz5JlKݽ8ggTCMakeLists.txtR⛖R⛖V{KM8Yy6.Yh˵COPYINGR⛖R⛖V|=8-ZGIjdc ChangeLogR⛖R⛖V}(PE'fA<yY Messages.shR⛖R⛖V~8ǚ'`d & mX READMER⛖R⛖V?̸ALPyTODOR⛖R⛖Vp+ֱQN7oX aconfig.h.cmakeR⛖R⛖VcMH7_|I͜ydoc/CMakeLists.txtR⛖R⛖V [CЀQ( UF̑?doc/example-1-general.pngR⛖R⛖V䊁f^cen/doc/example-2-ssh.pngR⛖R⛖VZ %;w2 4Idoc/example-3-dropbox1.pngR⛖R⛖Vwb5`U;a@*"SK&doc/example-4-dropbox2.pngR⛖R⛖V, 8N擀)ꜴPLoZdoc/example-5-samba-module.pngR⛖R⛖V]-+ C5,Udoc/example-5-samba.pngR⛖R⛖V0&ܘb}kT~Kdoc/example-6-ktorrent.pngR⛖R⛖V,ik5qκբD=doc/example-7-all-rules.pngR⛖R⛖V^@G,U n#doc/index.docbookR⛖R⛖VR@lndX0Yohelper/CMakeLists.txtR⛖R⛖Vt^=SXI<{c6'/*helper/defaultsR⛖R⛖V)+vB#Ӽg}8ԓ=helper/helper.cppR⛖R⛖V isG3V7 fhelper/helper.hR⛖R⛖VKic7,{i@}dhelper/kcm_ufw_helper.py.cmakeR⛖R⛖VL(^Zh4մDn#ƹ helper/org.kde.ufw.service.cmakeR⛖R⛖V $6F~s2|]helper/ufw.actionsR⛖R⛖VGb+58ykcm/CMakeLists.txtR⛖R⛖V gU\ۘ; fkcm/appprofiles.cppR⛖R⛖VаF===ԅ4kcm/appprofiles.hR⛖R⛖Vs+Aȇykcm/blocker.cppR⛖R⛖V]u$݈oޗ- kcm/blocker.hR⛖R⛖V ӲU&hrAkcm/combobox.cppR⛖R⛖Vpȁp@W]wFkcm/combobox.hR⛖R⛖VN/L feyҷ1y kcm/kcm.cppR⛖R⛖V ޽9Txt2Kj kcm/kcm.hR⛖R⛖VgngLh[ݶtBkcm/lineedit.cppR⛖R⛖Vq1 ~9kcm/lineedit.hR⛖R⛖V.WxA64(kcm/logviewer.cppR⛖R⛖V|-iY NTZ8kcm/logviewer.hR⛖R⛖Vݺ,ecO$)kcm/profile.cppR⛖R⛖VAHh_ 6]?޵0 kcm/profile.hR⛖R⛖V($ONMٔ";oᩥP kcm/rule.cppR⛖R⛖V V0=6&Lo kcm/rule.hR⛖R⛖V_hF/0VMxYطcd!Jkcm/ruledialog.cppR⛖R⛖V)>-`B>eN.`ܞ)kcm/ruledialog.hR⛖R⛖V :΄8ol]"`+kcm/ruleslist.cppR⛖R⛖V<0`4zb܀Mkcm/ruleslist.hR⛖R⛖V\<(`>|>68]ZJkcm/rulewidget.uiR⛖R⛖Vp97)֥UFQxkcm/stackedwidget.cppR⛖R⛖V;&NfOSikcm/stackedwidget.hR⛖R⛖V e. ;ۙ骋L{fkcm/statusbox.cppR⛖R⛖V.|q) {VbĐ kcm/statusbox.hR⛖R⛖V 0+<%L:ukd,f kcm/strings.cppR⛖R⛖VM ]ӌlPi kcm/strings.hR⛖R⛖VCc~W !pǘe9 kcm/types.cppR⛖R⛖V pVsۓuDIk_ kcm/types.hR⛖R⛖Vn"UH\zskcm/ufw.desktopR⛖R⛖V%zYO7?cBil kcm/ufw.uiTREEs58 3 ^ }cۂ1 $ doc10 0 F[ly ڗAgߝ ękcm32 0 '] :9A(Chelper7 0 m7)_ bO{*#фԍbcV=y H+ufw-kde-0.5.0/.git/info/0000755000175000017500000000000012266616522014310 5ustar ubuntuubuntuufw-kde-0.5.0/.git/info/exclude0000644000175000017500000000036012266616522015663 0ustar ubuntuubuntu# git ls-files --others --exclude-from=.git/info/exclude # Lines that start with '#' are comments. # For a project mostly in C, the following would be a good set of # exclude patterns (uncomment them if you want to use them): # *.[oa] # *~ ufw-kde-0.5.0/config.h.cmake0000664000175000017500000000020612270515626015207 0ustar ubuntuubuntu#ifndef __CONFIG_H__ #define __CONFIG_H__ #define VERSION "@KCM_UFW_VERSION_FULL@" #define HELPER_DIR "@LIBEXEC_INSTALL_DIR@" #endif ufw-kde-0.5.0/kcm/0000775000175000017500000000000012270515626013266 5ustar ubuntuubuntuufw-kde-0.5.0/kcm/ruleslist.cpp0000664000175000017500000000527412270515626016030 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include "ruleslist.h" #include #include #include #include #include #include #include namespace UFW { #define CFG_GROUP "KCM_UFW_RulesList" #define CFG_STATE "State" RulesList::RulesList(QWidget *parent) : QTreeWidget(parent) , headerSizesSet(false) { // Can't restore QHeaderView in constructor, so use a timer - and restore after eventloop starts. QTimer::singleShot(0, this, SLOT(restoreState())); } RulesList::~RulesList() { KConfigGroup grp(KGlobal::config(), CFG_GROUP); grp.writeEntry(CFG_STATE, header()->saveState()); } QTreeWidgetItem * RulesList::insert(const Rule &rule) { static const QString pad(" "); // Add some padding so that when re-size treeview, there's a bigger gap return new QTreeWidgetItem(this, QStringList() << rule.actionStr()+pad << rule.fromStr()+pad << rule.toStr()+pad << rule.ipV6Str()+pad << rule.loggingStr()+pad/* << rule.getDescription()+pad*/); } void RulesList::resizeToContents() { if(!headerSizesSet && topLevelItemCount()>0) { header()->resizeSections(QHeaderView::ResizeToContents); headerSizesSet=true; } } void RulesList::dropEvent(QDropEvent *event) { emit dropped(itemAt(event->pos())); event->ignore(); } void RulesList::restoreState() { KConfigGroup grp(KGlobal::config(), CFG_GROUP); QByteArray state=grp.readEntry(CFG_STATE, QByteArray()); if(!state.isEmpty()) { header()->restoreState(state); headerSizesSet=true; } } } #include "ruleslist.moc" ufw-kde-0.5.0/kcm/combobox.h0000664000175000017500000000235112270515626015250 0ustar ubuntuubuntu#ifndef UFW_COMBO_BOX_H #define UFW_COMBO_BOX_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include class QRadioButton; namespace UFW { class ComboBox : public QComboBox { public: ComboBox(QWidget *parent=0); virtual ~ComboBox() { } bool event(QEvent *ev); void setRadio(QRadioButton *r) { radioButton=r; } private: QRadioButton *radioButton; bool mousePressed; }; } #endif ufw-kde-0.5.0/kcm/profile.h0000664000175000017500000000734312270515626015106 0ustar ubuntuubuntu#ifndef UFW_PROFILE_H #define UFW_PROFILE_H /* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include #include #include "rule.h" #include "types.h" class QFile; class QDomDocument; namespace UFW { class Profile { public: enum Fields { FIELD_RULES = 0x01, FIELD_DEFAULTS = 0x02, FIELD_MODULES = 0x04, FIELD_STATUS = 0x08 }; Profile() : fields(0), enabled(false), ipv6Enabled(false) { } Profile(const QByteArray &xml, bool isSys=false); Profile(QFile &file, bool isSys=false); Profile(bool ipv6, Types::LogLevel ll, Types::Policy dip, Types::Policy dop, const QList &r, const QSet &m) : fields(0xFF), enabled(true), ipv6Enabled(ipv6), logLevel(ll), defaultIncomingPolicy(dip), defaultOutgoingPolicy(dop) , rules(r), modules(m), isSystem(false) { } bool operator==(const Profile &o) const { return ipv6Enabled==o.ipv6Enabled && logLevel==o.logLevel && defaultIncomingPolicy==o.defaultIncomingPolicy && defaultOutgoingPolicy==o.defaultOutgoingPolicy && rules==o.rules && modules==o.modules; } QString toXml() const; QString defaultsXml() const; QString modulesXml() const; bool hasRules() const { return fields&FIELD_RULES; } bool hasDefaults() const { return fields&FIELD_DEFAULTS; } bool hasModules() const { return fields&FIELD_MODULES; } bool hasStatus() const { return fields&FIELD_STATUS; } int getFields() const { return fields; } bool getEnabled() const { return enabled; } bool getIpv6Enabled() const { return ipv6Enabled; } Types::LogLevel getLogLevel() const { return logLevel; } Types::Policy getDefaultIncomingPolicy() const { return defaultIncomingPolicy; } Types::Policy getDefaultOutgoingPolicy() const { return defaultOutgoingPolicy; } const QList & getRules() const { return rules; } const QSet & getModules() const { return modules; } const QString & getFileName() const { return fileName; } bool getIsSystem() const { return isSystem; } private: void load(const QDomDocument &doc); private: int fields; bool enabled, ipv6Enabled; Types::LogLevel logLevel; Types::Policy defaultIncomingPolicy, defaultOutgoingPolicy; QList rules; QSet modules; QString fileName; bool isSystem; }; } #endif ufw-kde-0.5.0/kcm/profile.cpp0000664000175000017500000001333512270515626015437 0ustar ubuntuubuntu/* * UFW KControl Module * * Copyright 2011 Craig Drummond * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ #include #include #include #include #include #include #include #include "profile.h" namespace UFW { Profile::Profile(const QByteArray &xml, bool isSys) : fields(0) , enabled(false) , ipv6Enabled(false) , logLevel(Types::LOG_OFF) , defaultIncomingPolicy(Types::POLICY_ALLOW) , defaultOutgoingPolicy(Types::POLICY_ALLOW) , isSystem(isSys) { QDomDocument doc; doc.setContent(xml); load(doc); } Profile::Profile(QFile &file, bool isSys) : fields(0) , enabled(false) , ipv6Enabled(false) , logLevel(Types::LOG_OFF) , defaultIncomingPolicy(Types::POLICY_ALLOW) , defaultOutgoingPolicy(Types::POLICY_ALLOW) , fileName(file.fileName()) , isSystem(isSys) { QDomDocument doc; if(file.open(QIODevice::ReadOnly)) { doc.setContent(&file); load(doc); } } QString Profile::toXml() const { QString str; QTextStream stream(&str); QList::ConstIterator it(rules.constBegin()), end(rules.constEnd()); stream << "" << endl << ' ' << defaultsXml() << endl << " " << endl; for(; it!=end; ++it) stream << " " << (*it).toXml(); stream << " " << endl << ' ' << modulesXml() << endl << "" << endl; return str; } QString Profile::defaultsXml() const { return QString(""); } QString Profile::modulesXml() const { return QString(""); } void Profile::load(const QDomDocument &doc) { QDomNode ufw=doc.namedItem("ufw"); if(!ufw.isNull()) { QDomElement elem=ufw.toElement(); bool isFull=elem.attribute("full")=="true"; QDomNode status=ufw.namedItem("status"); if(!status.isNull()) { QDomElement elem=status.toElement(); enabled=elem.attribute("enabled")=="true"; fields|=FIELD_STATUS; } QDomNode rulesNode=ufw.namedItem("rules"), defaultsNode=ufw.namedItem("defaults"), modulesNode=ufw.namedItem("modules"); if(!rulesNode.isNull()) { QDomNodeList nodes=rulesNode.childNodes(); fields|=FIELD_RULES; if(nodes.count()>0) { for(int i=0; i * * ---- * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; see the file COPYING. If not, write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301, USA. */ /** * NOTE: *Most* of the information/strings in this file come from the UFW manpage. */ #include "strings.h" #include namespace UFW { namespace Strings { QString policyInformation(bool withLimit) { return QString("